Abstract:
Instead of immediately encrypting a plain text, a n-bit plain text is first converted to a m-bit of expanded plain text in order to limit the weight of the plain text to w, and that expanded plain text is then encrypted. By first converting the plain text to the expanded plain text wherein the weight has been limited, a smaller modulus can be used, and therefore the rate (or encryption efficiency) rises.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an encryption method for converting plain text to cipher (or encrypted) text, and a code -communications system using that method. 
     2. Description of the Related Art 
     In our modern society, which is called a high-level information society, important business textual and graphic information is exchanged in communications and processed as electronic information through computer network infrastructure. One characteristic of such electronic information is that it can easily be duplicated, whereupon it becomes very difficult to distinguish the duplicate from the original. Hence the problem of information security is seen to be critical. This is especially true in view of the fact that the implementation of computer networks that support features such as “computer resource sharing,” “multi-access,” and “wide area operations” is indispensable to the realization of the high-level information society, but these features involve aspects that are inconsistent with the protection of information exchanged between authorized participants. In this context, attention is now being drawn to coding technologies that in the past have been employed primarily in military and diplomatic communications. 
     Coding is exchanging of information in such a way that its meaning cannot be understood by anyone other than the authorized parties. In coding operations, the conversion of the original text (plain text) that anyone can understand to text (cipher text) the meaning of which cannot be understood by a third party is called encryption, and the restoration of that cipher text to plain text is called decryption. The overall system wherein this encryption and decryption is performed is called a cryptosystem. In the processes of encryption and decryption, respectively, secret information called encryption keys and decryption keys are employed. A secret decryption key is necessary at the time of decryption, wherefore only a party knowledgeable of that decryption key can decrypt the cipher text. The confidentiality of the information is accordingly maintained by the encryption. 
     Cryptosystems can be subsumed under two broad categories, namely common key cryptosystems and public key cryptosystems. In a common key cryptosystem, the encryption key and the decryption key are identical, and coded communications are conducted by having both the sending party and receiving party hold the same key. The sending party encrypts plain text based on the common secret key and send it to the receiving party, whereupon the receiving party uses the same key to decrypt the cipher text and restore it to the original plain text. 
     In contrast thereto, in a public key cryptosystem, the encryption key and decryption key are different. In conducting coded communications in this cryptosystem, the sending party encrypts the plain text with the public key derived from a receiving party, and the receiving party decrypts that cipher text with his or her own secret key. The public key is used for encryption, and the secret key is a key for decrypting the cipher text converted by the public key. The cipher text converted by the public key can only be decrypted using a secret key. 
     One example of such a public key cryptosystem is seen in the conventional knapsack coding schemes wherein safety is based on the knapsack problem. However, almost all of the knapsack coding schemes now being proposed exhibit either linearity or super-increasing, wherefore it has been demonstrated that they can be decrypted using the Shamir attack method and Lenstra-Lenstra-Lovasz (LLL) algorithms. To overcome this shortcoming, multiplication knapsack coding schemes have been developed which employ power operation over modulo-calculation, an example whereof is seen in the Morii-Kasahara cryptosystem (Masakatsu Morii and Masao Kasahara: “Denshi Joho Tsushin Gakkai [Electronic Information Communications Society],” Vol. j71-D, No. 2 (1988)). This Morii-Kasahara cryptosystem (hereinafter referred to as the MK cryptosystem) is now described. 
     In this description, the following three definitions are given. 
     (Divisibility Discriminator Symbol) 
     A divisibility discriminator symbol &lt; &gt; for determining whether or not b is evenly divisible by a is defined below.          〈     b   a     〉          =   def          {         0         (     when                 b                                is                 not                 evenly                 divisible                 by                 a     )             1         (     when                 b                 is                 evenly                 divisible                 by                 a     )                                   (Scalar exponentiation)  C=A   e   
     If A and C are vectors and e is a scalar, then scalar exponentiation is defined as follows. 
     
       
         (Scalar exponentiation)  C=A   e   
       
     
     
       
         
           c 
           ij 
           =a 
           e 
           ij 
         
       
     
     
       
         (Matrix right exponentiation)  C=A   B   
       
     
     If A, B, and C are vectors, then right exponentiation of matrix is defined as follows.                  (     matrix                 right                 exponentiation     )                   C     =     A   B                   c   ij     =       ∏   k                     a   ik     b   kj                                      
     (Key Generation) 
     In the MK cryptosystem, the secret and public keys are generated as follows. 
     
       
         
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Secret key 
                   
               
               
                   
                 secret vector a 
                 vector a =  t (a 1 , a 2 , . . . , a n ) 
               
               
                   
                   
                 gcd (a i , a j ) = 1 (i ≠ j) 
               
               
                   
                 encryption key e 
                 gcd (e, p MK  − 1) = 1 
               
               
                   
                 decryption key d 
                 ed = 1 (mod p MK  − 1) 
               
               
                   
                 Public key 
               
               
                   
                 modulus (prime) p MK   
                 to satisfy Condition 1 below 
               
               
                   
                 public vector c 
                 vector c = vector a e  (mod p MK ) 
               
               
                   
                   
               
             
          
         
       
     
     Condition 1:               p   MK     &gt;       ∏     i   =   1     n                     a   i               (   1   )                                
     (Encryption) 
     Treating the plain text as the vector x= t (x 1 , x 2 , . . . , x n ), the sending party creates the cipher text C by the following equation and sends it to the receiving party.              C   =       c       x           t     =       ∏     i   =   1     n                       c   i   xi                     (     mod                   p   MK       )                                                    
     (Decryption) 
     The receiving party, using the following equation, raises the received cipher text C to the power of d and converts it to A. 
     
       
           A=C   d =( t   c   x ) d = t   a   edx = t   a   x (mod  p   MK ) 
       
     
     Then, as represented in the following equation, divisibility determination is performed on A using the components of the secret vector a, whereby decryption can be done to obtain the original plain text vector.        x   =           t          (       〈     A     a   1       〉     ,                〈     A     a   2       〉     ,   …              ,     〈     A     a   n       〉       )                              
     Specific examples involving this MK cryptosystem are described next. 
     (Key Generation) 
     Secret key 
     vector a= t (13, 9, 25, 16, 7, 17) 
     e=1501, d=11131 
     Public key 
     p MK =5569211 to satisfy Condition 2 below                vector                 c     =                vector                   a                      =                      t          (       13   1501     ,     9   1501     ,     25   1501     ,     16   1501     ,     7   1501     ,     17   1501       )                   =                      t          (     5097951   ,   4832634   ,   2171018   ,   2905496   ,                                    1517072   ,   319194     )                     (     mod                 5569211     )                                  
     Condition 2: 
     
       
           p   MK =5569211&gt;Π i=1   6   a   i =5569200  (2) 
       
     
     (Encryption) 
     Encryption is performed, treating the plain text as the vector              x   =             t          (     1   ,   0   ,   1   ,   1   ,   1   ,   0     )       .                 C   =     5097951   ·   2171018   ·   2905496   ·   1517072                 =     5328558                   (     mod                 5569211     )                                    
     (Decryption) 
     After raising the cipher text C to the power of d to obtain A, the original plain text vector x is obtained by performing divisibility determination on A using the components of the secret vector a, as in Equation 3 below. 
     
       
           A=C   d =5328558 11131 =36400(mod 5569211) 
       
     
     
       
         
           
             
               
                 
                   
                     
                       
                         x 
                         = 
                         
                           
                               
                             t 
                           
                            
                           
                             ( 
                             
                               
                                 〈 
                                 
                                   36400 
                                   13 
                                 
                                 〉 
                               
                               , 
                               
                                 〈 
                                 
                                   36400 
                                   9 
                                 
                                 〉 
                               
                               , 
                               
                                 〈 
                                 
                                   36400 
                                   25 
                                 
                                 〉 
                               
                               , 
                               
                                 〈 
                                 
                                   36400 
                                   16 
                                 
                                 〉 
                               
                               , 
                               
                                 
                                   〈 
                                   
                                     36400 
                                     7 
                                   
                                   〉 
                                 
                                  
                                 
                                   〈 
                                   
                                     36400 
                                     17 
                                   
                                   〉 
                                 
                               
                             
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         = 
                         
                           
                               
                             t 
                           
                            
                           
                             ( 
                             
                               1 
                               , 
                               0 
                               , 
                               1 
                               , 
                               1 
                               , 
                               1 
                               , 
                               0 
                             
                             ) 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
           
         
                 
         
             
         
      
     
     The MK cryptosystem described in the foregoing is thought to provide a high degree of safety, but has problems, namely that the cipher text rate is low relative to the plain text rate, and that encryption efficiency is poor. If we here represent the size of the plain text and cipher text as n bits and k bits, respectively, we can define the encryption efficiency as the rate η by the Equation 4 below. 
     
       
         η= n/k   (4) 
       
     
     In MK encryption, the plain text is divided into n-bit block units, so the size of the plain text becomes a constant (n bits). The size of the cipher text, on the other hand, is determined solely by the size of the modulus p MK . Accordingly, the following Equation 5 is established for the rate η MK  in the MK encryption.                η   MK     =         n       log   2          p   MK         &lt;     n       log   2            ∏     i   =   1     n                     a   i             =     n       ∑     i   =   1     n            log   2          a   i                     (   5   )                                
     Thus, in the MK cryptosystem, it is necessary to make the modulus a prime number that is larger than the product of all a i  (see Equation 1), wherefore the value of the rate η MK  is not always high. Even if the average size of a i  is made 10 bits, for example, in Equation 5, the upper limit of the rate η MK  will be no more than 0.1 or so. And even if prime numbers are used in order beginning from the smallest, as in vector a= t (2, 3, 5, 7, . . . ), the rate η MK  will be around 0.156 when n=60. There is also a problem of the value of the modulus being too high, resulting in low practicality. 
     SUMMARY OF THE INVENTION 
     The present invention was devised in view of the circumstances described in the foregoing. 
     An object of the present invention is to provide an encryption method which can greatly improve the rate in comparison with conventional MK cryptosystems, together with a code communications system using that method. 
     Another object of the present invention is to provide a practical encryption method which is executable with a modulus of small value. 
     The encryption method according to one aspect of the present invention is an encryption method for converting binary sequence plain text into cipher text, wherein the plain text is converted into binary sequence expanded plain text having a larger number of bits than the original plain text, and that expanded plain text is encrypted into cipher text. 
     The conversion of the plain text into the expanded plain text may be performed so as to limit the weight of the plain text. If the number of bits in the plain text and the expanded plain text is expressed by n and m (where n&lt;m) respectively and the weight of the plain text is limited to w, m may be determined so as to satisfy the relationship  m   C   w ≧2 n . When converting the plain text to the expanded plain text, a Schalkwijk decoding algorithm may be used. 
     When the number of bits of the plain text and the expanded plain text is n and m (where n&lt;m) respectively and the weight of the plain text is limited to w or lower, m may be determined satisfy Condition A shown below. 
     Condition A:                  ∑     k   =   0     w          C   k           m           ≥     2   n             (   A   )                                
     When converting the plain text to the expanded plain text, an extended Schalkwijk decoding algorithm may be used. 
     According to another aspect of the present invention, there is provided an encryption method for converting a binary sequence of n bits of plain text to cipher text comprising the steps of: finding m (where n&lt;m) which satisfies the condition  m C w ≧2 n , in order to limit the weight of the n bits of plain text to w; converting the n bits of plain text to a binary sequence of m bits of expanded plain text by a Schalkwijk decoding algorithm while assuming that the n bits of plain text be an integer and this integer be an index; and producing cipher text using the expanded plain text and a public key. 
     According to the third aspect of the present invention, there is provided an encryption method for converting a binary sequence of n bits of plain text to cipher text comprising the steps of: finding m (where n&lt;m), which satisfies Condition A noted below, in order to limit the weight of the n bits of plain text to w; converting the n bits of plain text to a binary sequence of m bits of expanded plain text by an extended Schalkwijk decoding algorithm while considering that the n bits of plain text be an integer and this integer be an index; and producing cipher text using the expanded plain text and a public key. 
     Condition A:                  ∑     k   =   0     w          C   k           m           ≥     2   n             (   A   )                                
     According to the fourth aspect of the present invention, there is provided an encryption/decryption apparatus which comprises: an encryptor for producing cipher text from plain text using one of the encryption methods described above; and a decrypter for decrypting the cipher text so produced back into the original plain text. 
     According to the fifth aspect of the present invention, there is provided a code communications system for communicating information based on cipher text between a plurality of entities, comprising: an encryptor for producing cipher text from plain text using one of the encryption methods described above; a communication path for transmitting the cipher text from one entity to another entity; and a decrypter for decrypting the cipher text so transmitted back into the original plain text. 
     The concept underlying the encryption method of the present invention is now described. 
     FIG. 1A of the accompanying drawings illustrates the concept underlying a conventional MK cryptosystem and FIG. 1B illustrates the encryption method of the present invention. 
     In the conventional MK cryptosystem, the number of bits having weight (the number of  1 s) cannot be limited, wherefore the prime number p MK  that becomes the modulus must be determined in consideration of the product of all of the secret vector components so that decryption can uniquely be done even when all of the components of the plain text are  1 s. Accordingly, that prime number p MK  always ends up being a large number. As a result, as diagramed in FIG. 1A, the number of bits in the cipher text becomes large, so that only a low rate can be obtained. 
     If the plain text is converted to a binary sequence with a limited weight prior to the encrypting conversion, and that binary sequence is treated as plain text and subjected to MK encryption, unique decryption can be guaranteed without using the large modulus. The present invention takes advantage of this principle. Specifically, the binary sequence plain text is first converted to binary sequence plain text having limited weight (expanded plain text), and then that expanded plain text is encrypted. This two-step (conversion-encrypting) process is diagramed in FIG.  1 B. Conversion to the expanded plain text is done first, wherefore the bit count increases to a certain extent at that point, but the weight has been limited so that in the subsequent encryption a smaller modulus can be used than in the conventional MK cryptosystem. As a result, the number of bits in the cipher text can be made smaller than conventionally. Consequently, the rate can be sharply improved. 
     As a procedure for converting plain text to expanded plain text of limited weight, either a Schalkwijk algorithm or an extended Schalkwijk algorithm (which will be defined below) obtained by extending that Schalkwijk algorithm can be used. Hereinafter, the encryption method of the present invention which uses a Schalkwijk algorithm is called the first invention, and the encryption method of the present invention which uses an extended Schalkwijk algorithm is called the second invention. These are now described in more specific terms. 
     First Invention 
     A brief description is first given here of the Schalkwijk algorithm. Let us consider a set S(m,w) of binary vectors containing size bits m and constant weight value bits w. The Schalkwijk algorithm is a known procedure for making a definitive (or one-to-one) association between any vector s belonging to S(m,w) and an index i from 0 to  m C w −1. When a Schalkwijk encoding algorithm is employed, the index i corresponding to an arbitrary vector sεS(m,w) can be found. Conversely, when a Schalkwijk decoding algorithm is employed, the vector sεS(m,w) corresponding to a given index i can be found. (Schalkwijk encoding algorithm) 
     To find an index i from a sequence vector s having a size of m bits and a weight of w bits (s=(s 1 , . . . , s m )εS(m,w)): 
     
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Schalkwijk Encode (s) 
               
               
                   
                 { 
               
               
                   
                   j &lt;− 0;   h &lt;− 0; 
               
               
                   
                   for (k = 1 to m) 
               
               
                   
                     if (s k  = 1) 
               
               
                   
                       {h &lt;− h + 1;  j &lt;− j +  k − 1 C h } 
               
               
                   
                   i &lt;− j; 
               
               
                   
                   return (i); 
               
               
                   
                 } 
               
               
                   
                   
               
             
          
         
       
     
     (Schalkwijk Decoding Algorithm) 
     To find a size m bit and weight w bit sequence vector s=(s 1 , . . . , s m )εS(m,w) from an index i: 
     
       
         
               
             
           
               
                   
               
             
             
               
                 Schalkwijk Decode (i,m,w) 
               
               
                 { 
               
               
                   j &lt;− i;   h &lt;− w; 
               
               
                   for (k = 1 to m) 
               
               
                     if (j ≧  m − k C h ) 
               
               
                       {j &lt;− j −  m − k C h ;  h &lt;− h − 1;  s m − k + 1  &lt;− 1;} 
               
               
                     else 
               
               
                       s m − k + 1  &lt;− 0; 
               
               
                   return (s); 
               
               
                 } 
               
               
                   
               
             
          
         
       
     
     The encryption and decryption procedures in the first invention are now described. In the first invention, using the Schalkwijk algorithms described in the foregoing, the original plain text is converted to expanded plain text wherein the weight value is limited to w, and that expanded plain text is encrypted as in the conventional MK cryptosystem. In FIG. 2 of the accompanying drawings is given a flowchart for the encryption processing procedure, while in FIG. 3 is given a flowchart for the corresponding decryption processing procedure. When the sizes of the expanded and original plain texts are m bits and n bits, respectively, the difference (m−n) is defined as the expanded bit count. 
     &lt;&lt;Encryption&gt;&gt; 
     (Expanded Plain Text Conversion) 
     In order to limit the plain text weight to w, the size m of the expanded plain text which satisfies Condition 6 below is found (step S 1 ). Treating an n-bit plain text vector x as an integer, and taking this integer as the index i, we use the Schalkwijk decoding algorithm to convert the plain text vector x to the expanded plain text vector sεS(m,w) (step S 2 ). 
     Condition 6: 
     
       
           m   C   w ≧2 n   (6) 
       
     
     (Encrypting Conversion) 
     A prime number p A  which satisfies Condition 7 below is found (step S 3 ). 
     Condition 7:                p   A     &gt;       Max     s                 ε                   S        (     m   ,   w     )                (     a         s                        t     )               (   7   )                                
     The symbol Max ( ) indicates the maximum value in the parentheses ( ), and the vector a is a secret vector comprised of m components. 
     The receiving party determines e and finds d using p A −1 as the modulus. A public vector c is generated as in the conventional MK cryptosystem. The sending party generates cipher text C, as follows, using the public vector c and the expanded plain text vector s of the receiving party (step S 4 ). 
     
       
           C=   t   c   s (mod p A ) 
       
     
     &lt;&lt;Decryption&gt;&gt; 
     (Decrypting Conversion) 
     The cipher text C is decrypted as in the conventional MK cryptosystem, and the expanded plain text vector s belonging to S(m,w) is found (step S 11 ). 
     (Plain Text Conversion) 
     The expanded plain text vector s is decrypted using the Schalkwijk decoding algorithm and thereby converted to the index i (step S 12 ). This is treated as an n-bit binary number and the original plain text vector x is obtained (step S 13 ). 
     Second Invention 
     A brief description is first given of the extended Schalkwijk algorithm as defined by the inventors with reference to Schalkwijk. A set T(m,w) of binary vectors having a size of m bits and a weight of w bits at most is posited. Specifically, the following conditions are satisfied.          T        (     m   ,   w     )       =       ⋃     0   ≦   j   ≦   w            S        (     m   ,   j     )                                
     Here, the extended Schalkwijk algorithm is defined as an operation for definitively associating any vector s belonging to T(m,w) with an index i given by Equation 8 below.              0   ∼         ∑     g   =   0     w          C   g           m           -   1             (   8   )                                
     Using the extended Schalkwijk encoding algorithm, we can find the index i associated with an arbitrary vector sεT(m,w). Conversely, using the extended Schalkwijk decoding algorithm, we can find the vector sεT(m,w) corresponding to a given index i. 
     (Extended Schalkwijk Encoding Algorithm) 
     To find the index i from a sequence vector s=(s 1 , . . . , s m )εT(m,w) having a size of m bits and a weight of w bits or less (where w(s) is the weight of the vector s):        Extended                 Schalkwijk                   Encode        (   s   )                            {     
                       i   ⇐       SchalkwijkEncode        (   s   )       +       ∑     g   =   0         w        (   S   )       -   1                       C   g           m               ;     
                     return        (   i   )       ;          
                }                            
     (Extended Schalkwijk Decoding Algorithm) 
     To find the sequence vector s=(s 1 , . . . , s m )εT(m,w) having a size of m bits and weight of w bits or less, from the index i:        Extended                 Schalkwijk                   Decode        (     i   ,   m     )                            {     
                         w   ′     ⇐   0     ;     
                       while                   (       i   -       ∑     g   =   0       w   ′                       C   g           m             ≥   0     )          {         w   ′     ⇐       w   ′     +   1       ;     }          
                   w     ⇐       w   ′     -   1       ;     
                       i   ′     ⇐     i   -       ∑     g   =   0     w            C   g           m              
                   s         ⇐       SchalkwjkDecode        (       i   ′     ,   m   ,   w     )            
                     return        (   s   )           ;          
                }                            
     The procedures for encryption and decryption in the second invention are described next. In the first invention, the rate is improved by converting the plain text to expanded plain text having its weight limited to the constant value w, prior to encryption conversion, using a Schalkwijk algorithm. In the second invention, the extended Schalkwijk algorithm described earlier is used to allow the weight of the expanded plain text to have a value equal to or lower than w, and thereby improving the rate even further than in the first invention. FIG. 4 of the accompanying drawings depicts a flowchart for the encryption procedure according to the second invention and FIG. 5 depicts a flowchart for the decryption procedure. 
     &lt;&lt;Encryption&gt;&gt; 
     (Expanded Plain Text Conversion) 
     In order to limit the plain text weight to w or lower, the size m of expanded plain text that satisfies Condition 9 below is sought (step S 21 ). 
     Condition 9:                  ∑     k   =   0     w          C   k           m           ≥     2   n             (   9   )                                
     Treating an n-bit plain text vector x as an integer and taking this integer as the index i, we use the extended Schalkwijk decoding algorithm to convert the plain text vector x to the expanded plain text vector sεT(m,w) (step S 22 ). 
     (Encrypting Conversion) 
     A prime number p B  which satisfies Condition 10 below is found (step S 23 ). 
     Condition 10:                p   B     &gt;       Max     s                 ε                   T        (     m   ,   w     )                (     a         s                        t     )               (   10   )                                
     The receiving party determines e and finds d using p B −1 as the modulus. A public vector c is generated as in the conventional MK cryptosystem. The sending party generates cipher text C, as follows, using the public vector c and the expanded plain text vector s of the receiving party (step S 24 ). 
     
       
           C=   t   c   s (mod p B ) 
       
     
     &lt;&lt;Decryption&gt;&gt; 
     (Decrypting Conversion) 
     The cipher text C is decrypted as in the conventional MK cryptosystem, and the expanded plain text vector s belonging to T(m,w) is found (step S 31 ). 
     (Plain Text Conversion) 
     The expanded plain text vector s is decrypted using the extended Schalkwijk decoding algorithm and thereby converted to the index i (step S 32 ). This is treated as an n-bit binary number and the original plain text vector x is obtained (step S 33 ). 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1A diagrams the concept of encryption in a conventional example; 
     FIG. 1B diagrams the concept of encryption in the present invention; 
     FIG. 2 is a flowchart for encrypting procedures in the first invention; 
     FIG. 3 is a flowchart for decryption procedures in the first invention; 
     FIG. 4 is a flowchart for encrypting procedures in the second invention; 
     FIG. 5 is a flowchart for decryption procedures in the second invention; 
     FIG. 6 is a model diagram representing information communications between two entities; 
     FIG. 7 is a graph plotting the relationship between expanded bit count and weight in the first invention; 
     FIG. 8 is a graph plotting the relationship between expanded bit count and rate in the mode  1  in the first invention; 
     FIG. 9 is a graph plotting the relationship between expanded bit count and rate in the mode  2  in the first invention; 
     FIG. 10 is a graph plotting the relationship between expanded bit count and weight in the second invention; 
     FIG. 11 is a graph plotting the relationship between expanded bit count and rate in the mode  1  in the second invention; 
     FIG. 12 is a graph plotting the relationship between expanded bit count and rate in the mode  2  in the second invention; 
     FIG. 13 is a graph plotting the relationship between expanded bit count and weight in the first and second inventions; and 
     FIG. 14 is a graph plotting the relationship between expanded bit count and rate in the first and second inventions. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Embodiments of the present invention are now described in reference to FIGS. 6 through 14. 
     Referring to FIG. 6, illustrated is a simplified example of communications wherein the encryption method of the present invention is used for information communications between two entities a and b. In the diagramed example, one entity, namely entity a, encrypts plain text x into cipher text C with an encryptor  1 , sends that cipher text C to another entity, namely entity b, via a communications network  3 , and entity B decrypts the cipher text C back to the original plain text x with a decrypter  2 . 
     First Embodiment 
     A first embodiment according to the present invention, which will be described below, is based on the first invention described earlier. In this first embodiment (the first invention), the number of bits in the plain text vector x is set at 6 (n=6), and the weight to which the plain text is limited is set to 3 (w=3). Accordingly, the number of bits in the expanded plain text vector s is determined at 9 (m=9) to satisfy Condition 6 (specifically  m C 3 ≧2 6 ). 
     The secret key and the public key are generated as follows. 
     
       
         
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Secret key 
                   
               
               
                   
                 secret vector a 
                 vector a =  t (a 1 , a 2 , . . . , a 9 ) 
               
               
                   
                   
                 gcd (a i , a j ) = 1 (i ≠ j) 
               
               
                   
                 encryption key e 
                 gcd (e, p A  − 1) = 1 
               
               
                   
                 decryption key d 
                 ed = 1 (mod p A  − 1) 
               
               
                   
                 Public key 
               
               
                   
                 modulus (prime) p A   
                 p A  &gt; a i  · a j  · a k   
               
               
                   
                   
                 (a i , a j  and a k  are three largest 
               
               
                   
                   
                 components in vector a.) 
               
               
                   
                 public vector c 
                 vector c = vector a e  (mod p A ) 
               
               
                   
                   
               
             
          
         
       
     
     As specific examples, the secret and public keys are generated as follows. 
     vector a=t(13, 9, 25, 16, 7, 17, 11, 19, 23) e=69) d=317 
     Public key 
     p A =109371&gt;25·23·19=10925               vector                 c     =                vector                   a                      =                      t          (       13   69     ,     9   69     ,     25   69     ,     16   69     ,     7   69     ,     17   69     ,     11   69     ,     19   69     ,     23   69       )                   =                      t          (     35   ,   5987   ,   2161   ,   4402   ,   711   ,   5002   ,   2522   ,   1259   ,   7774     )                                (     mod                 10937     )                                  
     At the entity a end, the plain text is made the vector x= t (1,0,1,1,1,0)=46 and expansion-converted by Schalkwijk decoding to vector s=(0,1,0,0,0,1,0,1,0), and that expanded plain text vector s is encrypted to yield the coded text C. This coded text C thus produced is transmitted over the communications network  3  from entity a to entity b (FIG.  6 ).              C   =     5987   ·   5002   ·   1259                 =     10796                   (     mod                 10937     )                                    
     On the entity b end, the received cipher text C is raised to the power of d to convert it to A, a divisibility determination is made on A using the components of the secret vector a, and the expanded plain text vector s is obtained. 
     A=C d =10796 317 =2907 (mod 10937)              s   =                      t          (       〈     2907   13     〉     ,     〈     2907   9     〉     ,     〈     2907   25     〉     ,     〈     2907   16     〉     ,     〈     2907   7     〉     ,     〈     2907   17     〉     ,                                    〈     2907   11     〉     ,     〈     2907   19     〉     ,     〈     2907   23     〉       )               =                      t          (     0   ,   1   ,   0   ,   0   ,   0   ,   1   ,   0   ,   1   ,   0     )                                    
     From the expanded plain text vector s is obtained, by employing Schalkwijk encoding, the plain text vector x46=(1,0,1,1,1,0). 
     Whereas in the conventional MK encryption method described earlier we had a modulus p MK =556921 and a rate η MK ≈0.26, in this first embodiment described above we have a modulus p A =109371 and a rate η A ≈0.43. Hence, with only a 3-bit plain text expansion, we can realize a rate nearly double the conventional rate. 
     Let us now consider how this first invention may be evaluated. For the rate η A  in this first invention, we may derive Equation 11 below from Equation 7 noted earlier.                η   A     =       n       log   2          p   A         &lt;     n       log   2          {       Max     s                 ε                   S        (     m   ,   w     )                (     a       s           t     )       }                   (   11   )                                
     Whereas the rate is dependent only on the vector a in the case of the conventional MK encryption method, in the case of the first invention, the rate is dependent on the weight w as well as on the vector a. 
     The relationship between the weight w and the expanded bit count m−n calculated using Condition 6 noted earlier, in cases where the size of the plain text is n=60, 80, and 100 bits, respectively, is graphed in FIG. 7, with the expanded bit count plotted on the horizontal axis and the weight plotted on the vertical axis. As understood from FIG. 7, although it is difficult to limit the weight below a constant value as the expanded bit count becomes larger, when the expanded bit count is small, the weight can be severely limited. 
     From Equation 11 it is seen that the rate is dependent also on the secret vector a and not only on the weight W. We now consider the rates in two modes, respectively, which are defined as follows. 
     Mode  1 : Size of all components in the secret vector a is made k bits. 
     Mode  2 : Prime numbers up to the m&#39;th prime number are used in the components of the secret vector a. 
     For mode  1 , considering the cases where n=60, 80, and 100 bits and k=10, 20, and 30 bits, the expanded bit count m−n and the rate η are plotted on the horizontal axis and vertical axis, respectively, in the graph in FIG.  8 . In FIG. 8, it is assumed that an infinite number of k-bit primes exist. In actuality, however, only a finite number of such primes exist, wherefore FIG. 8 contains in part a range which cannot be represented. 
     For mode  2 , in cases where n=60, 80, and 100 bits, the expanded bit count m−n and the rate η are plotted on the horizontal and vertical axes, respectively, in the graph in FIG.  9 . In mode  2 , when the expanded bit count and the weight are equal, it is seen from Equation 7 that the modulus becomes the smallest, and the rate increases as compared to mode  1 . 
     In order to obtain an El Gamal code rate, that is, a rate of 0.5 or higher, for a plain text n=60 in mode  2  in the first invention, an expanded bit count of only m−n=115 is needed. This means that the El Gamal code rate can be achieved by increasing the key number from 60 bits to 175 bits. This key number is a key number having a practical size. When the expanded bit count is further increased, a higher rate than the El Gamal code rate can be achieved. 
     Second Embodiment 
     A second embodiment will be described based on the second invention described earlier. In the second embodiment (the second invention), the number of bits in the plain text vector x is set at 6 (n=6) , and the weight to which the plain text is limited is set to 3 (w=3). Accordingly, the number of bits in the expanded plain text vector x is determined at 7 (m=7) to satisfy Condition 9. 
     The secret and public keys are generated as follows. 
     
       
         
               
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Secret key 
                   
               
               
                   
                 secret vector a 
                 vector a =  t (a 1 , a 2 , . . . , a 7 ) 
               
               
                   
                   
                 gcd (a i , a j ) = 1 (i ≠ j) 
               
               
                   
                 encryption key e 
                 gcd (e, p B  − 1) = 1 
               
               
                   
                 decryption key d 
                 ed = 1 (mod p B  − 1) 
               
               
                   
                 Public key 
               
               
                   
                 modulus (prime) p B   
                 p B  &gt; a i  · a j  · a k   
               
               
                   
                   
                 (a i , a j  and a k  are three largest 
               
               
                   
                   
                 components in vector a.) 
               
               
                   
                 public vector c 
                 vector c = vector a e  (mod p B ) 
               
               
                   
                   
               
             
          
         
       
     
     As specific examples, the secret and public keys are prepared as follows. 
     vector a= t (13,9,25,16,7,17,11) 
     e=15, d=907. 
     Public key 
     p B =6803&gt;25·17·16=6800               vector                 c     =                vector                   a                      =                      t          (       13   15     ,     9   15     ,     25   15     ,     16   15     ,     7   15     ,     17   15     ,     11   15       )                   =                      t          (     131   ,   6363   ,   3747   ,   3633   ,   3956   ,   1672   ,   3868     )                                (     mod                 6803     )                                  
     At the entity a end, the plain text is made the vector x= t (1,0,1,1,1,0)=46 and expansion-converted by extended Schalkwijk decoding to vector s=(0,1,0,0,1,1,0) and that expanded plain text vector s is encrypted to yield the cipher text C. This cipher text C thus produced is transmitted over the communications network  3  from entity a to entity b (FIG.  6 ).              C   =     6363   ·   3956   ·   1672                 =     532                   (     mod                 6803     )                                    
     On the entity b end, the received cipher text C is raised to the power of d to convert it to A, a divisibility determination is made on A using the components of the secret vector a, and the expanded plain text vector s is obtained. 
     A=C d 532 907 =1071(mod 6803)              s   =           t          (       〈     1071   13     〉     ,     〈     1071   9     〉     ,     〈     1071   25     〉     ,     〈     1071   16     〉     ,     〈     1071   7     〉     ,     〈     1071   17     〉     ,     〈     1071   11     〉       )                   =           t          (     0   ,   1   ,   0   ,   0   ,   1   ,   1   ,   0     )                                    
     From the expanded plain text vector s is obtained, by employing extended Schalkwijk encoding, the plain text vector x=46=(1,0,1,1,1,0). 
     Whereas in the conventional MK encryption method described earlier we had a modulus p MK =556921 and a rate η MK ≈0.26, in the second embodiment described above we have a modulus p B =6803 and a rate η B ≈0.46. Hence, with only a 1-bit plain text expansion, we can realize a rate nearly double the conventional rate. In order to achieve the same rate level for plain text of the same size, a 3-bit plain text expansion is needed in the first embodiment, but in the second embodiment, only a 1-bit plain text expansion suffices. In other words, the second embodiment (second invention) can achieve the same rate level as the first embodiment (first invention) with a smaller number of expansion bits. 
     Let us now consider how this second invention may be evaluated. For the rate η B  in this second invention, we may derive Equation 12 below from Equation 10.                η   B     =       n       log   2          p   B         &lt;     n       log   2          {       Max     s                 ε                   T        (     m   ,   w     )                  (     a       s           t     )         }                   (   12   )                                
     Whereas the rate is dependent only on the vector a in the case of the conventional MK encryption method, in the case of the second invention, as with the first invention, the rate is dependent on the weight w as well as on the vector a. 
     The relationship between the weight w and the expanded bit count m−n calculated using Condition 9, in cases where the size of the plain text is n=60, 80, and 100 bits, respectively, is graphed in FIG. 10, with the expanded bit count plotted on the horizontal axis and the weight plotted on the vertical axis. By substituting x=y=1 in the binomial theorem in Equation 13 below, Equation 14 is arrived at, from which Equation 15 below is derived. It is understood from Equation 15 that simply performing a 1-bit expansion on the plain text provides the weight as shown in Equation 16. 
     
       
         ( x+y ) n = n   C   0   x   n + n   C   1   x   n−1   y + . . . + n   C   n   y   n   (13) 
       
     
     
       
         2 n = n   C   0 + n   C   1 + . . . + n   C   n   (14) 
       
     
     
       
         
           
             
               
                 
                   
                     2 
                     n 
                   
                   = 
                   
                     
                       
                         1 
                         2 
                       
                        
                       
                         
                           ∑ 
                           
                             j 
                             = 
                             0 
                           
                           
                             n 
                             + 
                             1 
                           
                         
                          
                         
                           C 
                           j 
                             
                             
                           
                             n 
                             + 
                             1 
                           
                             
                         
                       
                     
                     = 
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           0 
                         
                         
                           ⌈ 
                           
                             n 
                             2 
                           
                           ⌉ 
                         
                       
                        
                       
                         C 
                         j 
                           
                           
                         
                           n 
                           + 
                           1 
                         
                           
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
             
               
                 
                   ⌈ 
                   
                     n 
                     2 
                   
                   ⌉ 
                 
               
               
                 
                   ( 
                   16 
                   ) 
                 
               
             
           
         
                 
         
             
         
      
     
     A characteristic of the second invention, particularly when the size of the plain text is an even number of bits, is that the weight of the expanded plain text becomes exactly half that of the original plain text with only a 1-bit expansion. This means, in other words, that the rate in the second invention after the 1-bit plain text expansion is improved to roughly twice the conventional rate. 
     In the second invention also, as in the first invention, modes  1  and  2  are established, and the rate is considered in each mode below. 
     For mode  1 , considering the cases where n=60, 80, and 100 bits and k=10, 20, and 30 bits, the expanded bit count m−n and the rate η are plotted on the horizontal axis and vertical axis, respectively, in the graph in FIG.  11 . For mode  2 , in cases where n=60, 80, and 100 bits, the expanded bit count m−n and the rate η are plotted on the horizontal and vertical axes, respectively, in the graph in FIG.  12 . 
     A comparison of the first invention and the second invention is now discussed. The results of calculating the weights and rates in the first and second inventions are plotted in FIG.  13  and FIG. 14, respectively. In these figures, the solid-line curves represent the first invention and the dotted-line curves represent the second invention. 
     When the plain text and the expanded bit count are the same, a smaller modulus is used in the second invention than in the first invention, so a higher rate can be realized in the second invention. When the expanded bit count is small, i.e., when it is between 1 and several bits, no or little improvement can be made on the rate with the first invention, but with the second invention, a high rate can be achieved that is roughly double the rate with conventional MK coding. It should be noted, however, that when the expanded bit count becomes large, the difference between the rates realized with the first and second inventions becomes small. It will be practical to use the first invention when high-speed processing is wanted, and to use the second invention when wanting to make the number of keys smaller. 
     The limiting rate values in the present invention are now considered. In determining the rate limits the more efficient mode  2  is used. Thereupon, when the weight is limited to w=1, the rate η(n), from Equation 12, is given by Equation 17 below.                η        (   n   )       =     n       Max     1   ≤   i   &lt;   m            (     a   i     )                 (   17   )                                
     At this time, the largest component a i  will be the m&#39;th (i.e. the 2 n &#39;th) prime number. Here, from the prime number theorem, the 2 n &#39;th prime≈2 n  ln 2 n , so the rate η(n) can be estimated at approximately 1, as indicated in Equation 18 below.                      η        (   n   )       ≅                n   /     {       log   2          (       2   n        ln                   2   n       )       }                   =                n   /     {     n   +       log   2          (     ln                   2   n       )         }                     (   18   )                                
     In the case where the size of the plain text is n=100, for example, we have η(n)=0.94. Moreover, when the limiting value of the rate is found on the basis of Equation 18, Equation  19  below is obtained, whereupon it is seen that the encryption efficiency converges to 1.                  lim     n   →   ∞            η        (   n   )         =   1           (   19   )                                
     In the examples described in the foregoing, either a Schalkwijk algorithm or an extended Schalkwijk algorithm is used as the procedure for limiting the weight of the plain text, but it is of course permissible to use some other procedure for this. 
     Moreover, the examples described in the foregoing assume applications of the present invention in a multiplication MK cryptosystem, but that is only a suggestion, and the present invention can be employed in all encryption schemes involving rate improvement by the limitation of the weight. 
     As set forth in the foregoing, in the present invention, the plain text is first converted to the expanded plain text with the limited weight, and this expanded plain text is then encrypted. A small modulus can therefore be used, as a consequence of which the rate can be sharply improved as compared to conventional methods. As a result, the present invention is able to contribute greatly to opening avenues for achieving practicality in various encryption schemes heretofore considered very difficult to employ practically. 
     The encryption method described above is disclosed in Japanese Patent Application No. 10-211353 filed Jul. 27, 1998 in Japan and the subject application claims priority of this Japanese Patent Application, entire disclosure of which is incorporated herein by reference.