Key distribution system for distributing a cipher key between two subsystems by one-way communication
BACKGROUND OF THE INVENTION 
     This invention relates to a key distribution system for distributing a cipher key between two subsystems via a communication channel by one-way communication. 
     Various key distribution systems are already known. By way of example, a key distribution system is disclosed in a paper which is contributed by W. Diffie and M. E. Hellman to the IEEE Transactions on Information Theory, Vol. IT-22, No. 6, pages 644-654, November issue, 1976, under the title of &#34;New Directions in Cryptography&#34;. The key distribution system according to the Diffie et al paper is called the Diffie-Hellman public key distribution system. The Diffie-Hellman public key distribution system comprises a public file or directory in which public information for each of users or conversers is stored. It will be assumed that two conversers are named A and B. Let p be a large prime number of about 256 bits in binary representation, which is publicly known. Let α be a fixed primitive element of the finite field GP(p), i.e. an integer such that its successive powers modulo p (α, α 2  (mod p), α 3  (mod p), . . . ) fill the finite field GP(p) except zero, where a (mod b) means a remainder of division of the number a by the number b. The public file stores public information Y A  of the converser A and public information Y B  of the converser B. The public information Y A  and Y B  are selected so as to be equal to α X .sbsp.A (mod p) and α X .sbsp.B (mod p), respectively, where X A  and X B  represent secret numbers of the conversers A and B that are chosen uniformly from the set of integers {1, 2, . . . , (p-1)}. Before the converser A sends enciphered messages to the converser B, the converser A prepares an enciphering key K A  generated from the public information Y B  and the secret information X A . The enciphering key K A  represents a number obtained by calculating Y B   X .sbsp.A (mod p). The converser B also prepares an enciphering key K B  in accordance to Y A   X .sbsp.B (mod p) in a similar manner. Inasmuch as the enciphering keys K A  and K B  are equal to each other, they will therefore be their common cipher key. 
     However, the Diffie-Hellman public key distribution system is disadvantageous in that a third party or an eavesdropper may possibly impersonate one of the conversers A and B by doctoring or tampering with the public information. 
     Another key distribution system is disclosed in U.S. Pat. No. 4,876,716 issued to Eiji Okamoto. The key distribution system according to Okamoto&#39;s U.S. Patent is referred to as an identity-based key distribution system. This is because a cipher key is generated by using each converser&#39;s identification information instead of the public file used in the Diffie-Hellman public key distribution system. The identification information may be any information such as a converser&#39;s name and address. There is no fear that tampering with the public information will occur. This is because the identification information is used as the public information. 
     The identity based key distribution system comprises a first subsystem, a second subsystem, and an insecure communication channel such as a telephone line which connects the first subsystem with the second subsystem. It is assumed that the first and the second subsystems are used by users or conversers A and B, respectively. Let n be a modulus of size at least 512 bits which is a product of two sufficiently large prime numbers p and q, let e and d be two exponents such that exd=1 (mod (p-1)×(q-1)). Let α be an integer which is both a primitive element in the finite fields GP(p) and GP(q). It will also be assumed that conversers A and B are assigned with identification information ID A  and ID B , respectively. In this event, the conversers A and B have or know secret integer numbers S A  and S B  which are defined as numbers obtainable from ID A   d  (mod n) and ID B  (mod n), respectively. 
     When the conversers A and B wish to obtain a work or session cipher key K, i.e. a key which is randomly chosen at each communication, the first subsystem of the converser A generates a random number γ and sends the second subsystem of the converser B a first key distribution code X A  representative of a number obtained by computing S A  xα.sup.γ  (mod n). The second subsystem of the converser B also generates a random number t and sends the first subsystem of the converser A a second distribution code X B  representative of a number obtained by calculating S B  xα t  (mod n). Then, the first subsystem of the converser A calculates (X B   e  /ID B ).sup.γ  (mod n) and keeps the resulting number as the work cipher key K. Similarly, the second subsystem of the converser B calculates (X A   e  /ID A ) t  (mod n) and the resulting number as the work cipher key K. 
     As described above, the identity-based key distribution system must carry out mutual or two-way communication between the first and the second subsystems in order to distribute or exchange the work cipher key K. As a result, the identity-based key distribution system is defective in that communication overhead increases in a known electronic mail system which can transmit messages enciphered with the work cipher key K via the insecure communication channel. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of this invention to provide a key distribution system and a method of distributing a cipher key between two subsystems, wherein it is possible to distribute the cipher key between these two subsystems by one-way communication. 
     It is another object of this invention to provide a key distribution system and a method of distributing a cipher key between two subsystems, wherein it is possible to easily manage secret information. 
     It is still another object of this invention to provide a key distribution system and a method of distributing a cipher key between two subsystems, wherein there is no fear that the key is breakable by a user&#39;s conspiracy attack. 
     It is yet another object of this invention to provide a key distribution system and a method of distributing a cipher key between two subsystems, which is operable with a high degree of security. 
     Other objects of this invention will become clear as the description proceeds. 
     On describing the gist of an aspect of this invention, it will be understood that the key distribution method is for distributing a cipher key between a first subsystem for a first converser and a second subsystem for a second converser via a communication channel by using a public file which stores public information corresponding to identification information assigned to conversers. The first and the second conversers are assigned with first and second identification information, respectively. The first and the second identification information correspond to first and second public information, respectively. The first and the second subsystems have first and second secret information, respectively. 
     According to an aspect of this invention, the above-understood key distribution method comprises the following steps: (a) accessing, in the first subsystem, the public file by the second identification information to read the second public information; (b) generating, in the first subsystem, a random number; (c) generating, in the first subsystem, a first cipher key by applying a first predetermined transformation on the second public information and the second identification information on the basis of first and second constants and the random number; (d) generating, in the first subsystem, a key distribution code by applying a second predetermined transformation on the first public information and a third constant on the basis of the first constant, the first secret information, and the random number; (e) transmitting, as distribution information, the key distribution code and the first identification information from the first subsystem to the second subsystem via the communication channel; (f) receiving, in the second subsystem, the distribution information from the first subsystem; and (g) generating, in the second subsystem, a second cipher key by applying a third predetermined transformation on the key distribution code and the first identification information on the basis of the first and the second constants and the second secret information, the second cipher key being equal to the first cipher key. 
     On describing the gist of another aspect of this invention, it will be understood that the key transmitting subsystem is for use in a key distribution system. The key transmitting subsystem is for transmitting distribution information to a key receiving subsystem of the key distribution system via a communication channel. The key receiving subsystem is for receiving the distribution information to generate a cipher key. The key transmitting subsystem is in use by a transmission converser while the key receiving subsystem is in use by a reception converser. The key distribution system comprises a public file which stores public information corresponding to identification information assigned to conversers. The transmission converser is assigned with transmission identification information corresponding to transmission public information while the reception converser is assigned with reception identification information corresponding to reception public information. 
     According to another aspect of this invention, the afore-understood key transmitting subsystem comprises: accessing means supplied with the reception identification information and connected to the public file for accessing the public file by the reception identification information to read the reception public information; random number generating means for generating a random number; constant holding means for holding first through third constants; secret information holding means for holding secret information for the transmission converser; public information holding means for holding the transmission public information; identification information holding means for holding the transmission identification information; cipher key generating means connected to the accessing means, the random number generating means, and the constant holding means for generating the cipher key by applying a first predetermined transformation on the reception public information and the reception identification information on the basis of the first and the second constants, and the random number; code generating means connected to the random number generating means, the secret information holding means, the constant holding means, and the public information holding means for generating a key distribution code by applying a second predetermined transformation on the transmission public information and the third constant on the basis of the first constant, the secret information, and the random number; and transmitting means connected to the code generating means and the identification information holding means for transmitting, as the distribution information, the key distribution code and the transmission identification information to the key receiving subsystem via the communication channel. 
     On describing the gist of still another aspect of this invention, it will be understood that the key receiving subsystem is for use in a key distribution system comprising a key transmitting subsystem for transmitting distribution information to the key receiving subsystem via a communication channel. The key receiving subsystem is for receiving the distribution information to generate a cipher key. The key transmitting subsystem is in use by a transmission converser while the key receiving subsystem is in use by a reception converser. The key distribution system comprises a public file which stores public information corresponding to identification information assigned to conversers. The transmission converser is assigned with transmission identification information corresponding to transmission public information whilst the reception converser is assigned with reception identification information corresponding to reception public information. 
     According to still another aspect of this invention, the above-understood key receiving subsystem comprises: receiving means connected to the key transmitting subsystem via the communication channel for receiving, as the distribution information, a key distribution code and the transmission identification information from the key transmitting subsystem via the communication channel, the distribution code representing a number generated by using the transmission public information; constant holding means for holding first and second constants; secret information holding means for holding secret information for the second converser; and cipher key generating means connected to the receiving means, the constant information holding means, and the secret information holding means for generating the cipher key by applying a predetermined transformation on the key distribution code and the transmission identification information on the basis of the first and the second constants and the secret information. 
    
    
     BRIEF DESCRIPTION OF THE DRAWING 
     FIG. 1 is a block diagram of a key distribution system according to a preferred embodiment of the instant invention; 
     FIG. 2 shows a flow chart for use in describing the operation of issuing various information used in the key distribution system illustrated in FIG. 1; and 
     FIG. 3 is a block diagram of a subsystem used as the first and the second subsystems in FIG. 1. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1, the description will begin with a key distribution system according to a preferred embodiment of the invention. The key distribution system comprises a first subsystem 11, a second subsystem 12, and a public file 13. The first subsystem 11 and the second subsystem 12 are connected each other via first and second insecure communication channels 16 and 17 each of which may be a telephone line. The first subsystem 11 and the public file 13 are connected to each other via a connection line 18. 
     In the manner which will later become clear, the first subsystem 11 transmits distribution information to the second subsystem 12 via the first insecure communication channel 16. The second subsystem 12 receives the distribution information to generate a cipher key. Therefore, the first subsystem 11 is called a key transmitting subsystem whilst the second subsystem 12 is referred to a key receiving subsystem. The key transmitting subsystem 11 is in use by a first or transmission converser A while the key receiving subsystem 12 is in use by a second or reception converser B. 
     The public file 13 stores public information corresponding to identification information assigned to conversers. The transmission converser A is assigned with first or transmission identification information ID A  corresponding to first or transmission public information X A  while the reception converser B is assigned with second or reception identification information ID B  corresponding to second or reception public information X B . 
     The key transmitting subsystem 11 comprises an input unit 21 and a reading unit 22. The input unit 21 inputs the reception identification information ID B  to provide the reading unit 22 with the reception identification information ID B . The reading unit 22 is connected to the public file 13. Responsive to the reception identification information ID B , the reading unit 22 reads the reception public information X B  out of the public file 13. The reading unit 22 produces the reception identification information ID B  and the reception public information X B . Therefore, a combination of the input unit 21 and the reading unit 22 serves as an accessing arrangement supplied with the reception identification information ID B  and connected to the public file 13 for accessing the public file 13 by the reception identification information ID B  to read the reception public information X B . 
     The key transmitting subsystem 11 further comprises a random number generator 23, a first constant register 24, a first secret information register 25, a public information register 26, and an identification information register 27. The random number generator 23 generates a random number r. The first constant register 24 holds first through third constants n, t, and α which will later become clear. The first secret information register 25 holds first or transmission secret information r A  for the transmission converser A. The public information register 26 holds the transmission public information X A . The identification information register 27 holds the transmission identification information ID A . 
     The key transmitting subsystem 11 furthermore comprises a first cipher key generator 28, a distribution code generator 29, a transmitting unit 30, and an enciphering unit 31. The first cipher key generator 28 is connected to the reading unit 22, the random number generator 23, and the constant register 24. In the manner which will later be described, the first cipher key generator 28 generates a first cipher key K A  by applying a first predetermined transformation on the reception public information X B  and the reception identification information ID B  on the basis of the first and the second constants n and t, and the random number r. The distribution code generator 29 is connected to the random number generator 23, the first secret information register 25, the first constant register 24, and the public information register 26. In the manner which will later be described, the distribution code generator 29 generates a key distribution code Y A  by applying a second predetermined transformation on the transmission public information X A  and the third constant α on the basis of the first constant n, the first secret information r A , and the random number r. The transmitting unit 30 is connected to the distribution code generator 29 and the identification information register 27. The transmitting unit 30 transmits, as the distribution information, the key distribution code Y A  and the transmission identification information ID A  to the key receiving subsystem 12 via the first insecure communication channel 16. The enciphering unit 31 is supplied with transmission messages and is connected to the first cipher key generator 28. The enciphering unit 31 enciphers the transmission messages with the first cipher key K A  to produce enciphered messages. The enciphered messages are delivered to the key receiving subsystem 12 via the second insecure communication channel 17. 
     The key receiving subsystem 12 comprises a receiving unit 32, a second constant register 33, and a second secret information register 34. The receiving unit 32 is connected to the key transmitting subsystem 11 via the first insecure communication channel 16. The receiving unit 32 receives, as the distribution information, the key distribution code Y A  and the transmission identification information ID A  from the key transmitting subsystem 11 via the first insecure communication channel 16. The second constant register 33 holds the first and the second constants n and t. The second secret information register 34 holds second or reception secret information r B  for the second converser B. 
     The key receiving subsystem 12 further comprises a second cipher key generator 35 and a deciphering unit 36. The second cipher key generator 35 is connected to the receiving unit 32, the first constant register 33, and the second secret information register 34. The second cipher key generator 35 generates a second cipher key K B  by applying a third predetermined transformation on the key distribution code Y A  and the transmission identification information ID A  on the basis of the first and the second constants n and t and the second secret information r B . In the manner which will later become clear, the second cipher key K B  coincides with the first cipher key K A . The deciphering unit 36 is supplied with the enciphered messages via the second insecure communication channel 17 and is connected to the second cipher key generator 35. The deciphering unit 36 deciphers the enciphered messages with the second cipher key K B  to produce reception messages which coincide with the transmission messages. 
     Referring to FIG. 2, description will be made as regards operation of issuing the first through the third constants n, t, and α, an i-th identification information ID i , an i-th subsidiary secret information s i , an i-th secret information r i , and an i-th public information X i , where i represents a positive integer. In the example being illustrated, the positive integer i is one selected from one and two. In the manner which will later be described, a key distribution center 37 distributes the first through the third constants n, t, and α, the i-th identification information ID i , and the i-th subsidiary secret information s i  to an i-th subsystem 38, like the first and the second subsystems 11 and 12 in FIG. 1. 
     At first, the key distribution center 37 generates two sufficiently large prime numbers p and q (a step S1) and then calculates the first constant, i.e. a module n which is a product of the two prime numbers p and q (a step S2). For instance, the two prime numbers p and q may be of size at least 256 bits. The second constant t is selected as an exponent such that exd=1 (mod (p-1)×(q-1)) and the third constant α is selected as a positive integer which is both a primitive element in finite fields GP(p) and GP(q) (a step S3). The third constant α is less than the first constant n. 
     The i-th subsystem 38 issues a subscriber&#39;s request to the key distribution center 37 (a step S4). The i-th subsystem 38 judges whether the subscriber&#39;s request is present or absent (a step S5). The i-th subsystem 38 applies for the i-th identification information ID i  therefor (a step S6). When the subscriber&#39;s request is present (YES of the step S5), the key distribution center 37 sets the i-th identification information ID i  on applying for the i-th identification information ID i  (a step S7). At a step S8, the key distribution center 37 calculates the i-th subsidiary secret information s i  on the i-th identification information ID i  by using the first and the second constants n and t as follows: 
     
         s.sub.i =(ID.sub.i).sup.-(1/t) (mod n).                    (1) 
    
     That is, the first and the second identification information ID A  and ID B  are related to first and second subsidiary secret information s A  and s B  by using the first and the second constants n and t as follows: 
     
         s.sub.A =(ID.sub.A).sup.-(1/t) (mod n);                    (2) 
    
     and 
     
         s.sub.B =(ID.sub.B).sup.-(1/t) (mod n).                    (3) 
    
     Subsequently, the key distribution center 37 secretly distributes the first through the third constants n, t, and α, the i-th identification information ID i , and the i-th subsidiary secret information s i  to the i-th subsystem 38 (a step S9). The i-th subsystem 38 receives the first through the third constants n, t, and α, the i-th identification information ID i , and the i-th subsidiary secret information s i  from the key distribution center 37 (a step S10). The i-th subsystem 38 generates a random number as the i-th secret information r i  (a step S11). Therefore, the first and the second conversers A and B have the first and the second secret information r A  and r B , respectively. At a step S12, the i-th subsystem 38 calculates the i-th public information X i  on the i-th subsidiary secret information s i  and the third constant α by using the first constant n and the i-th secret information r i  as follows: 
     
         X.sub.i =s.sub.i ×α.sup.r.sbsp.i (mod n).      (4) 
    
     That is, the first and the second public information X A  and X B  are represented by using the first and the second subsidiary secret information s A  and s B , the first and the third constants n and α, and the first and the second secret information r A  and r B  as follows: 
     
         X.sub.A =s.sub.A ×α.sup.r.sbsp.A (mod n);      (5) 
    
     and 
     
         X.sub.B =s.sub.B ×α.sup.r.sbsp.B (mod n).      (6) 
    
     At a step S13, the i-th public information X i  is stored into the public file 13 (FIG. 1) on a designated address which coincides with the i-th identification information ID i  and into an i-th public information register, like the public information register 26 (FIG. 1). Subsequently, the i-th subsystem 38 stores the i-th secret information r i  into an i-th secret information register, like 25 and 34 in FIG. 1, stores the first through the third constants n, t, and α into an i-th constant register, like 24 and 33 in FIG. 33, and stores the i-th identification information ID i  into an i-th identification information register, like 27 in FIG. 1 (a step S14). The i-th identification information ID i  represents herein a number obtained by considering as a numeric value a code obtained by encoding the address, the name and so on of the i-th converser. 
     Turning to FIG. 1, description will be made as regards operation of the key distribution system. It will be assumed that the first (key transmitting) subsystem 11 of the first (transmission) converser A accesses the public file 13. 
     In the first subsystem 11, the reception identification information ID B  is supplied to the reading unit 22 through the input unit 21. The reading unit 22 accesses the public file 13 by the reception identification information ID B  to read the reception public information X B . The reception public information X B  and the reception identification information ID B  are supplied from the reading unit 22 to the first cipher key generator 28. The first cipher key generator 28 is also supplied with the random number r generated by the random number generator 23 and with the first and the second constants n and t which are held in the first constant register 24. The first cipher key generator 28 generates the first cipher key K A  by applying the first predetermined transformation on the reception public information X B  and the reception identification information ID B  on the basis of the first and the second constants n and t, and the random number r. The first predetermined transformation is represented by: 
     
         K.sub.A =(X.sub.B.sup.t ×ID.sub.B).sup.r (mod n).    (7) 
    
     Incidentally, the following relationship is satisfied. That is: 
     
         X.sub.B.sup.t =s.sub.B.sup.t ×α.sup.r.sbsp.B.sup.xt =(ID.sub.B).sup.-1 ×αr.sbsp.B.sup.xt.         (8) 
    
     To substitute the equation (8) into the equation (7), the first cipher key K A  is represented by using the third constant α, the second secret information r B , the random number r, and the second constant t as follows: 
     
         K.sub.A =α.sup.r.sbsp.B.sup.xrxt.                    (9) 
    
     The random number r is also supplied to the distribution code generator 29. The distribution code generator 29 is supplied with the first secret information r A  from the first secret information register 25, with the first and the third constants n and α from the first constant register 24, and with the transmission public information X A  from the public information register 26. The distribution code generator 29 generates, as an intermediate cipher key, the key distribution code Y A  by applying the second predetermined transformation on the transmission public information X A  and the third constant α on the basis of the first constant n, the first secret information r A , and the random number r. The second predetermined transformation is represented by: 
     
         Y.sub.A =X.sub.A ×α.sup.r-r.sbsp.A (mod n).    (10) 
    
     The key distribution code Y A  is supplied to the transmitting unit 30. The transmitting unit 30 is also supplied with the transmission identification information ID A  held in the identification information register 27. The transmitting unit 30 transmits, as the distribution information, the key distribution code Y A  and the transmission identification information ID A  to the key receiving subsystem 12 via the first insecure communication channel 16. 
     In the key receiving subsystem 12, the receiving unit 32 receives, as the distribution information, the key distribution code Y A  and the transmission identification information ID A  from the key transmitting subsystem 11 via the first insecure communication channel 16. The key distribution code Y A  and the transmission identification information ID A  are supplied to the second cipher key generator 35 from the receiving unit 32. The second cipher key generator 35 is also supplied with the first and the second constants n and t held in the second constant register 33 and with the second secret information r B  held in the second secret information register 34. The second cipher key generator 35 generates the second cipher key K B  by applying the third predetermined transformation on the key distribution code Y A  and the transmission identification information ID A  on the basis of the first and the second constants n and t and the second secret information r B . The third predetermined transformation is represented by: 
     
         K.sub.B =(Y.sub.A.sup.t ×ID.sub.A).sup.r.sbsp.B (mod n).(11) 
    
     Incidentally, the following relationship is satisfied. That is: 
     
         Y.sub.A.sup.t =s.sub.A.sup.t ×α.sup.rxt =(ID.sub.A) .sup.-1 ×α.sup.rxt.                                   (12) 
    
     To substitute the equation (12) into the equation (11), the second cipher key K B  is represented by using the third constant α, the second secret information r B , the random number r, and the second constant t as follows: 
     
         K.sub.B =α.sup.r.sbsp.B.sup.xrxt                     (13) 
    
     As apparent from the two equations (9) and (13), the second cipher key K B  coincides with the first cipher key K A . As a result, it is unnecessary for the second (key receiving) subsystem 12 to send distribution information to the first (key transmitting) subsystem 11. This is because the second or reception public information X B  for the second or reception converser B is stored in the public file 13 and the first subsystem 11 can access the public file 13 by the second or reception identification information ID B  to read the reception public information X B . Accordingly, the first subsystem 11 for the first converser A can distribute the cipher key to the second subsystem 12 for the second converser B in spite of presence or absence of the second converser B. In addition, the first subsystem 11 can transmit, to the second subsystem 12, the enciphered messages as well as the key distribution code Y A  and the transmission identification information ID A . 
     Furthermore, an i-th converser assigned with the i-th identification information ID i , in general, has the i-th secret information r i  which is held in the secret information register, like 25 and 34 in FIG. 1 and which is used as secret information for transmission and secret information for reception in common. As a result, it is possible to easily manage the secret information. 
     In order to impersonate the i-th converser by tampering with the i-th public information X i , an eavesdropper must find the i-th public information X i  and the i-th secret information r i  which satisfy the following relationship: 
     
         X.sub.i.sup.t ×ID.sub.1 =α.sup.txr.spsb.i (mod n).(14) 
    
     However, it is difficult for the eavesdropper to find the i-th public information X i  and the i-th secret information r i  by a converser&#39;s conspiracy attack. This reason will be described more in detail in a reference, for example, an article contributed by Eiji Okamoto to &#34;Advances in Cryptology-CRIPTO &#39;87&#34;, pages 194-202, under the title of &#34;Key Distribution Systems Based on Identification Information&#34;. This reference describes that the subsidiary secret information s i  and the i-th secret information r i  are not revealed although the i-th public information X i  is opened to the public. 
     Referring now to FIG. 3, description will be made as regards a subsystem, like the first and the second subsystems 11 and 12 in FIG. 1. The subsystem comprises a terminal unit (TMU) 41, a read only memory unit (ROM) 42, a random access memory unit (RAM) 43, a random number generator (RNG) 44, a common bus 45, and a signal processor (SP) 46. The terminal unit 41 may be a personal computer equipped with communication processing functions. The common bus 45 interconnects the terminal unit 41, the read only memory unit 42, the random access memory unit 43, the random number generator 44, and the signal processor 46. 
     The random number generator 44 may be the key source disclosed in U.S. Pat. No. 4,200,770 issued to Hellman et al. The signal processor 46 may be a processor available from CYLINK Corporation under the trade name CY 1024 KEY MANAGEMENT PROCESSOR. 
     The random number generator 44 generates the random number r in response to a command given from the signal processor 46. Therefore, the random number generator 44 acts in cooperation with the signal processor 46 as the random number generator 23 in FIG. 1. The read only memory unit 42 stores the first through the third constants n, t, and α, the i-th subsidiary secret information s i , the i-th secret information r i , and the i-th identification information ID i . The read only memory unit 42 is therefore operable as the constant register, like 24 or 33 in FIG. 1, the secret information register, like 25 or 34 in FIG. 1, and the identification information register, like 27 in FIG. 1. Instead of storing the i-th secret information r i  into the read only memory unit 42, the i-th secret information r i  may be stored in the random access memory unit 43 from the terminal unit 41 everytime conversers or users communicate. The random access memory unit 43 stores the i-th public information X i . Therefore, the random access memory unit 43 acts as the public information register 26 in FIG. 1. 
     The read only memory unit 42 also stores a program which is divisible into a first subprogram for transmission and a second subprogram for reception. The random access memory unit 43 is used to temporarily store intermediate calculation results. According to the first subprogram stored in the read only memory unit 42, the signal processor 46 serves in cooperation with the random access memory unit 43 as the first cipher key generator 28 and the distribution code generator 29 in FIG. 1. According to the second subprogram stored in the read only memory unit 42, the signal processor 46 acts in cooperation with the random access memory unit 43 as the second cipher key generator 35 in FIG. 1. The terminal unit 41 is operable as either the transmitting unit 30 in FIG. 1 or the receiving unit 32 in FIG. 1. 
     Each of the first and the second subsystems 11 and 12 may be a data processing unit such as a general purpose computer and an integrated circuit (IC) card.