Patent Publication Number: US-2002003877-A1

Title: Encryption method, decryption method, cryptographic communication method, cryptographic communication system, memory product and data signal embodied in carrier wave

Description:
BACKGROUND OF THE INVENTION  
       [0001] The present invention relates to public-key cryptosystems for transforming plaintext into ciphertext by using a public key, and more particularly relates to product-sum type cryptosystems.  
       [0002] In the present society called highly information-oriented society, on the basis of computer networks, important business documents and image information are transmitted/communicated in the form of electronic information and processed. Such electronic information has characteristics that it can be easily copied and it is hard to distinguish between the copies and the original, and thus the problem of information security is regarded as an important issue. In particular, the realization of computer networks satisfying the elements “sharing computer resources”, “multi-access”, and “wide area network” is indispensable for establishment of the highly information-oriented society, and this includes elements that contradict the maintenance of information security between the concerned parties. As the effective means for solving such controversy, cryptographic techniques which have been used mainly in the military and diplomatic fields in the past human history are attracting attentions.  
       [0003] Cryptography is to transform information so that the meaning of the information is not understandable by parties who are not concerned. In cryptography, a process of transforming the original text (plaintext) which is understandable by everyone into a text (ciphertext) whose meaning is not understandable by the third party is encryption, a process of returning the ciphertext into the plaintext is decryption, and the entire processes of encryption and decryption are called a cryptosystem. Secret information called an encryption key and a decryption key is respectively used in the encryption process and the decryption process. Since the secret decryption key is necessary for decryption, only the party who knows this decryption key can decrypt the ciphertext, and thus the secrecy of the information is maintained by encryption.  
       [0004] The encryption schemes are mainly classified into two types: common-key cryptosystems; and public-key cryptosystems. In the common-key cryptosystems, the encryption key and the decryption key are identical, and the sender and the receiver perform cryptographic communication by possessing the same common key. The sender encrypts the plaintext based on a secret common key and transmits the ciphertext to the receiver, while the receiver decrypts the ciphertext into the plaintext by using this common key.  
       [0005] By contrast, in the public-key cryptosystems, the encryption key and the decryption key differ from each other, and the sender encrypts the plaintext with the receiver&#39;s publicized public key and the receiver decrypts the ciphertext by its own secret key to perform cryptographic communication. The public key is a key for encryption and the secret key is a key for decrypting ciphertext which was transformed by the public key, and the ciphertext transformed by the public key can be decrypted only by the secret key.  
       [0006] As one scheme of public-key cryptosystem, a product-sum type cryptosystem has been known. This is an encryption scheme in which one entity as the sender creates ciphertext C−m 1 c 1 +m 2 c 2 + . . . + m k c k  by using a plaintext vector m=(m 1 , m 2 , . . . , m k ) obtained by dividing the plaintext into K parts and a base vector c=(c 1 , c 2 , . . . , c k ) as the public key, while the other entity as the receiver decrypts the ciphertext C into the plaintext vector m by using the secret key to obtain the original plaintext.  
       [0007] Regarding such product-sum type cryptosystems using an operation over an integer ring, while novel schemes and attacking methods have been proposed one after another, there is a demand for particularly encryption/decryption techniques that enable high-speed decryption so as to process a large volume of information in a short time. Accordingly, the present inventor et al. propose an encryption method and decryption method according to a product-sum type cryptosystem, which enable high-speed parallel decryption processing by using the Chinese Remainder Theorem (Japanese Patent Application Laid-Open No. 2000-89669). This encryption method is characterized by modulo-transforming the components c i (i=1, 2, . . . , K) of the base vector c based on bases D i  which are set such that D i =d/d i  (where d=d 1 d 2  . . . d k ) by using mutually prime K integers d i , or based on bases V i  which are set such that V i =(d/d i )v i  by using mutually prime K integers d i  and random numbers v i (gcd(d i , v i )=1). Thus, since the ciphertext is decrypted in parallel ways using the Chinese Remainder Theorem, it is possible to perform high-speed decryption.  
       [0008] In this scheme, however, since the density is low unless the number of public keys is made extremely large, there is a problem that this scheme is sometimes weak against the low-density attack which directly finds the plaintext from the public keys and the ciphertext by using the LLL (Lenstra-Lenstra-Lovasz) algorithm, and thus there is a demand for a further improvement in its security aspect.  
       BRIEF SUMMARY OF THE INVENTION  
       [0009] An object of the present invention is to provide an encryption method and decryption method, which are invulnerable to the low-density attack and capable of improving the security, by improving the above-mentioned conventional examples, and also to provide a cryptographic communication method and cryptographic communication system using this encryption method, and a memory product/data signal embodied in carrier wave for recording/transmitting an operation program of this encryption method.  
       [0010] In the present invention, ciphertext is created by giving redundancy to plaintext, i.e., reducing the plaintext. In other words, a composite vector is created by adding a random number vector consisting of random number components, which have no need of transmission of information particularly, to a plaintext vector obtained by dividing the plaintext to be encrypted, and the ciphertext is created using this composite vector and a publicized public-key vector. More specifically, the product-sum operation result of the components of the composite vector and the components of the public vector, or a remainder obtained by dividing the product-sum operation result by a modulus, is made the ciphertext.  
       [0011] In the present invention, since a redundant portion (reduced portion) which needs not be encrypted is added, the density of the ciphertext becomes higher. Moreover, since a very large number of composite vectors, i.e., a very large number of ciphertext, exist for a single plaintext vector, it is extremely difficult to make the low-density attack based on the LLL algorithm. As a result, the security is improved.  
       [0012] For example, ciphertext is created using a third vector (extended plaintext vector) formed by combining a first vector (plaintext vector) obtained by dividing plaintext to be encrypted and a second vector (pseudo plaintext vector) consisting of random number components which have no need of transmission of information particularly, and one or a plurality of fourth vector (base vector) whose components are respectively set such that D i =d/d i  or V i =(d/d i )·v i . More specifically, the ciphertext is created by a product-sum operation result of the components of the third vector (extended plaintext vector) and the components of the public-key vector modulo-transformed based on one or a plurality of fourth vector (base vector), or by a remainder formed by dividing the product-sum operation result by a modulus.  
       [0013] Moreover, the positions of the components of the plaintext vector as a plaintext portion which is intended to be encrypted or the positions to which the components of the random number vector as a redundant portion (reduced portion) are not fixed, and can be arbitrarily set by an entity as the sender or an entity as the receiver. Accordingly, since the position of the plaintext portion or a position to which the redundant portion (reduced portion) is added is not fixed and is arbitrarily set, such a position is not known by the attacker, thereby further improving the security.  
       [0014] Furthermore, information indicating this set position may be transmitted publicly or secretly from an entity who set the position to the other entity. In the case where an entity as the sender sets the position, the information indicating the set position may be sent to an entity as the receiver together with the ciphertext by including this information in the ciphertext, or sent to the entity as the receiver via a course different from the transmission of the ciphertext.  
       [0015] More specifically, in the case where the information indicating the set position is sent by including the information in the ciphertext, the ciphertext is created using a publicized fifth vector (public-key vector) and a fourth vector (extended plaintext vector) formed by combining a first vector (plaintext vector) obtained by dividing plaintext to be encrypted, a second vector (pseudo plaintext vector) consisting of random number components which have no need of transmission of information particularly and a third vector (position indicating vector) indicating the positions of the components of the first vector or the second vector. More specifically, the ciphertext is created by a product-sum operation result of the components of the fourth vector (extended plaintext vector) and the components of the fifth vector (public-key vector) modulo-transformed based on one or a plurality of sixth vector (base vector), or by a remainder formed by dividing the product-sum operation result by a modulus. In this case, the positions of the components of the third vector are publicized. This positional information is included as the third vector (position indicating vector) in the ciphertext and transmitted to the entity as the receiver. Since the position of each component of the third vector is publicized, the entity as the receiver can decrypt the components of the third vector, know the positions of the components of the first vector (plaintext vector) based on the decryption result, and decrypt the ciphertext into the plaintext. 
     
    
    
     [0016] The above and further objects and features of the invention will more fully be apparent from the following detailed description with accompanying drawings.  
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS  
     [0017]FIG. 1 is a schematic diagram showing a communication state of information between two entities; and  
     [0018]FIG. 2 is an illustration showing the structures of embodiments of a recording medium. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
     [0019] The present invention will be described in detail below with reference to the drawings illustrating some embodiments thereof.  
     [0020]FIG. 1 is a schematic diagram showing a state in which an encryption method according to the present invention is used for information communication between entities a and b. FIG. 1 shows an example in which one of the entities, a, encrypts plaintext x into ciphertext C by an encryptor  1  and transmits the ciphertext C to the other entity, b, through a communication channel  3 , and the entity b decrypts the ciphertext C into the original plaintext x by a decryptor  2 .  
     [0021] (First Embodiment)  
     [0022] The secret key and public key are prepared as follows.  
     [0023] Secret key: {d i }, {d i ′}, {v i }, P, w  
     [0024] Public key: {c i } 
     [0025] Let e&gt;e′, the normal bases d i  and reduced bases d i ′ are defined as the bases satisfying (1) and (2), respectively. 
       d   i =2 e +δ i (1&lt;&lt;δ i &lt;&lt;2 e )  (1) 
       d   i ′=2 e′ +δ i ′(1&lt;&lt;δ i ′&gt;&gt;2 e′ )  (2) 
     [0026] (k+n) bases consisting of mutually prime numbers are determined. Here, among them, k bases corresponding to i∈I are normal bases, and n bases corresponding to i∈I′ are reduced bases. Here, each of I and I′ is an index-set, I={1, 2, . . . , k}, I′={k+1, k+2, . . . , k+n}, and I″=I∪I′. Note that, in the first and second embodiments, unless otherwise specified, i⊂I″. Next, a base-product D i  is calculated according to (3) below.  
               D   i     =     {                 d   1                   …                   d   k          d     k   +   1     ′                   …                   d     k   +   n     ′       di          (     i   ∈   I     )                       d   1                   …                   d   k          d     k   +   1     ′                   …                   d     k   +   n     ′         di   ′            (     i   ∈     I   ′       )                       (   3   )                       
 
     [0027] Moreover, (k+n) random numbers {v i } (where gcd(d i , v i )=1) are generated, and a transformed base-product V i  is calculated by (4) below. 
       V   i   =D   i   v   i   (4) 
     [0028] The entity a divides the plaintext x, which is to be encrypted and transmitted to the entity b, into k parts so as to obtain a plaintext vector g=(g 1 , g 2 , . . . , g k ) whose components are respectively e bits. Further, a pseudo plaintext vector g′=(g k+1 , g k+2 , . . . , g k+n ) whose components are respectively e-bit random numbers, which needs not to be particularly transmitted to the entity b, is obtained. For example, this pseudo plaintext vector g′ can be obtained by dividing plaintext (redundant text) which need not to be particularly transmitted to the entity b into n parts. By coupling these plaintext vector g and pseudo vector g′, an extended plaintext vector g″=(g 1 ″, g 2 ″, . . . , g k+n ″) having (k+n) components is obtained. Here, the components of this extended plaintext vector g″ are respectively defined as shown in (5) below.  
               g   i   ″     =     {           g   i           (     i   ∈   I     )               g   i   ′           (     i   ∈     I   ′       )                     (   5   )                       
 
     [0029] With the use of the extended plaintext vector g″ and the transformed base-product V i , the product-sum plaintext M is defined as shown in (6) below. 
       M=g   1   ″V   1   +g   2   ″V   2   + . . . +g   k+n   ″V   k+n   (6) 
     [0030] For any extended plaintext vector g″, a prime number P satisfying M&lt;P is generated and used as a modulus. A random number w smaller than the prime number P is determined, and a public-key vector c as shown in (8) below is obtained according to (7) below and publicized. 
       C   i   =wV   i  mod  P   (7) 
     vector  c= ( c   1   , c   2   , . . . , c   k+n )  (8) 
     [0031] The entity a calculates the inner-product of the extended plaintext vector g″ and the public-key vector c as shown in (9) below to obtain the ciphertext C. The created ciphertext C is transmitted from the entity a to the entity b through the communication channel 3. 
       C=g   1   ″c   1   +g   2   ″+c   2   + . . . +g   k+n   ″C   k+n   (9) 
     [0032] The entity b performs the decryption process as follows.  
     [0033] From the ciphertext C, the product-sum plaintext M can be computed as shown in (10) below. 
       M=w   −1   C  mod  P   (10) 
     [0034] In the extended plaintext vector g″, for the indexes corresponding to the normal bases, i.e., i∈I, (11) shown below is established, thereby enabling decryption of the plaintext vector g. 
       g   i   =MV   i   −1  mod  d   i   (11) 
     [0035] Besides, for the indexes corresponding to the reduced bases, i.e., i∈I′, decryption is not necessary. Further, even when an attempt to perform decryption according to (12) below is made in the same manner as in (11) above, since there is a relationship shown in (13) below in the number of bits due to the effect of reduction, the pseudo plaintext vector g′ can not be accurately decrypted. 
       g   i   ′″=MV   i   −1    mod d   i ′  (12) 
       g   i   ′&gt;d   i   ′&gt;d   i ′″  (13) 
     [0036] Note that, while gcd(V i , d i )=1 in the above example, it is also possible to make gcd(V i , d i )=A i . In this case, the processes are performed in the same manner by letting V i ′=V i /A i , d i ′=d i /A i,  and gcd(V i ′, d i ′)=1. Furthermore, in the above example, while random numbers {V i } are added to the base-product D i , the base-product D i  shown in (3) above may be used as it is without adding such random numbers.  
     [0037] (Second Embodiment)  
     [0038] The secret key and public key are prepared as follows.  
     [0039] Secret key: {d i   (P) }, {d i   (Q) }, {d i   (P)′ }, {d i   (Q)′ }, {v i   (P) }, {v i   (Q) }, P, Q, N, w  
     [0040] Public key: {c i } Note that, N may be publicized.  
     [0041] Let P and Q be prime numbers satisfying the conditions described later. Let e&gt;e′, the normal bases d i   (P) , d i   (Q)  and the reduced bases d i   (P) ′, d i   (Q) ′ are defined as the bases satisfying (14) and (16), respectively. 
       d   i   (P)   d   i   (Q) =2 e +δ i (1&lt;&lt;δ i &lt;&lt;2 e )  (14) 
       d   i   (P)′   d   i   (Q)′ =2 e′ +δ i ′(1&lt;&lt;δ i ′&lt;&lt;2 e′ )  (15) 
     [0042] For the modulus P and modulus Q, like the first embodiment, two sets of bases {d i   (P) }, {d i   (P)′ } and {d i   (Q) }, {d i   (Q)′ } (where, when i ≠ j, gcd(d i   (P) d j   (P) )=1 and gcd(d i   (Q) d j   (Q) )=1) are generated. Here, (16) and (17) shown below are satisfied for any i∈I″. 
       gcd ( d   i   (P)   , d   i   (Q) )=1  (16) 
       gcd ( d   i   (P)′   , d   i   (Q)′ )=1  (17) 
     [0043] Next, for the modulus P and modulus Q, like the first embodiment, two sets of random numbers {v i   (P) } and {v i   (Q) } (where gcd(d i   (P) , v i   (P) )=1, gcd(d i   (Q) , v i   (Q))= 1) are generated, and {V i   (P) } and {V i   (Q) } are given by calculations similar to (3) and (4) shown above.  
     [0044] For the extended plaintext vector g″ constructed in the exactly same manner as in the first embodiment, the product-sum plaintext M P  and the product-sum plaintext M Q  in modulo P and modulo Q are defined as (18) and (19), respectively. 
       M   P   =g   1   ″V   1   (P)   +g   2   ″V   2   (P)   + . . . +g   k+n   ″V   k+n   (P)   (18) 
       M   Q   =g   1   ″V   1   (Q)   +g   2   ″V   2   (Q)   + . . . +g   k+n   ″V   k+n   (Q)   (19) 
     [0045] Furthermore, the prime numbers P and Q are generated to satisfy the conditions M P &lt;P and M Q &lt;P for any extended plaintext vector g″, and the product of them are defined as N. A minimum V 1   (N) (&lt;N) which causes the remainders by P and Q to be V 1   (P)  and V 1   (Q) , respectively, is calculated using the Chinese Remainder Theorem, and defined as the transformed base-product.  
     [0046] With the use of the extended plaintext vector g″ and the transformed base-product V 1   (N) , the product-sum plaintext M is defined as shown in (20) below. Here, it is not necessary to satisfy M&lt;N. 
       M=g   1   ″V   1   (N)   +g   2   ″V   2   (N)   + . . . +g   k+n   ″V   k+n   (N)   (20) 
     [0047] A random number w smaller than N is determined, and the public-key vector c as shown in (22) below is obtained according to (21) below and publicized. 
       c   i   =wV   i  mod  N   (21) 
     vector  c= ( c   i   , c   2   , . . . , c   k+n )  (22) 
     [0048] The entity a calculates the inner-product of the extended plaintext vector g″ and the public-key vector c as shown in (23) below to obtain the ciphertext C. The created ciphertext C is transmitted from the entity a to the entity b through the communication channel  3 . Besides, in the case where N is publicized, the remainder formed by dividing the C shown in (23) below by N is made the ciphertext. 
       C=g   1   ″c   1   +g   2   ″+c   2   + . . . +g   k+n   ″c   k+n   (23) 
     [0049] The entity b performs the decryption process as follows.  
     [0050] The product-sum plaintext M satisfies (24) below. Therefore, the product-sum plaintext M P  and M Q  in modulo P and modulo Q can be computed as shown in (25) and (26) below. 
       M≡w   −1   C (mod  N )  (24) 
       M   P   =M  mod  P   (25) 
       M   Q   −M  mod  Q   (26) 
     [0051] In the extended plaintext vector g″, for the indexes corresponding to the normal bases, i.e., i∈I, since 2 e &lt;d i   (P) d i   (Q) , (g i   (P) , g i   (Q) ) are calculated by (27) and (28) below, and (29) shown below is established using the Chinese Remainder Theorem, thereby enabling decryption of the plaintext vector g. 
       g   i   (P)≡   M   P   V   i   (P)−1 (mod  d   i   (P) )  (27) 
       g   i   (Q)≡   M   Q   V   i   (Q)−1 (mod  d   i   (Q) )  (28) 
     [0052]               g   i     ≡     {               g   i       (   P   )            (     mod                     d   i       (   P   )         )                     g   i       (   Q   )            (     mod                     d   i       (   Q   )         )                       (   29   )                         
     [0053] Besides, for the indexes corresponding to the reduced bases, i.e., i∈I′, like the first embodiment, decryption is not necessary and the pseudo plaintext vector g′ can not be accurately decrypted.  
     [0054] Note that, in the above example, while the random numbers {v i   (P) }, {v i   (Q) } are added to two sets of bases {d i   (P) }, {d i   (Q) }, a base-product obtained without adding such random numbers may be used.  
     [0055] Next, the following description will explain that a high density exceeding 1 is realized by the schemes as described in the first and second embodiments so as to have a strong resistance to the low-density attack based on the LLL algorithm. For a general product-sum type cryptosystem that is not reduced, the ciphertext density σ, the scheme density ρ, and the rate η are respectively defined as shown in (30), (31), and (32) below. Note that C is the number of bits of the ciphertext, C max  is the possible maximum number of bits of the ciphertext, k is the number into which the plaintext is divided, and e is the number of bits of the divided plaintext.  
             σ   =         ∑     i   =   1     k            log   2          g   i             log   2        C               (   30   )               ρ   =     ke       log   2          C   max                 (   31   )               η   =     ke          C   max                    (   32   )                       
 
     [0056] Further, for a product-sum type cryptosystem that is reduced like the first and second embodiments, the ciphertext density σ and the scheme density ρ′ are respectively defined as shown in (33) and (34) below. Note that the rate is the same as (32) above.  
               σ   ′     =         ∑     i   =   1       k   +   n              log   2          g   i   ″             log   2        C               (   33   )                 ρ   ′     =         (     k   +   n     )        e         log   2          C   max                 (   34   )                       
 
     [0057] The density in the first embodiment will be considered. Let the random number v i  be s bits. In order to make the density as large as possible, when the possible maximum product-sum plaintext is denoted as M max , the bit-size of the modulus P should be set such that |P|=|M max |. In this case, the scheme density ρ 1  and the rate η 1  according to the first embodiment satisfy the conditions of (35) and (36), respectively.  
                     ρ   1     =                      (     k   +   n     )        e       e   +       log   2        P     +       log   2          (     k   +   n     )           &gt;                                  (     k   +   n     )        e           (     k   +   2     )        e     +       (     n   -   1     )          e   ′       +   s   +     2          log   2          (     k   +   n     )         +   1                     (   35   )                       η   1     =                  ke     e   +       log   2        P     +       log   2          (     k   +   n     )           &gt;                              ke         (     k   +   2     )        e     +       (     n   -   1     )          e   ′       +   s   +     2          log   2          (     k   +   n     )         +   1                     (   36   )                       
 
     [0058] In order to avoid attacks for finding the secret key from the public key (Kiyoko Katayanagi, Yasuyuki Murakami, Masao Kasahara: “Study on the product-sum type cryptosystem”, reference material in The 1999 Symposium on Cryptography and Information Security, disclosed in B43 January 2000), the bit-size of the random number v i  needs to be ¼ or more of the bit-size of the modulus P. In order to satisfy this condition, when calculation is performed by supposing that the bit-size of the random number v i  is s=(¼)log 2 P+1, the scheme density ρ 1  and the rate η 1  satisfy the conditions of (37) and (38), respectively.  
               ρ   1     &gt;       3        (     k   +   n     )        e           (       4      k     +   7     )        e     +     4        (     n   -   1     )          e   ′       +     7          log   2          (     k   +   n     )         +   7               (   37   )                 η   1     &gt;       3      ke           (       4      k     +   7     )        e     +     4        (     n   -   1     )          e   ′       +     7          log   2          (     k   +   n     )         +   7               (   38   )                       
 
     [0059] In this condition, since the random number v i  is extremely large, if the condition e′&lt;e/2 or k&lt;n is met, a parameter satisfying ρ i &gt;1 exists.  
     [0060] The density in the second embodiment will be considered. Let the product of the random numbers v i   (P)  and v i   (Q) , i.e., v i   (P) v i   (Q) , be s bits. When a modulus N is not publicized, in order to make the density as large as possible, if the possible maximum product-sum plaintext is denoted by M Pmax  and M Qmax , then the bit-size should be set such that |P|=|M Pmax |, |Q|=|M Qmax |. In this case, the scheme density ρ 2  and the rate η 2  according to the second embodiment satisfy the conditions of (39) and (40), respectively.  
                     ρ   2     =                      (     k   +   n     )        e       e   +       log   2        N     +       log   2          (     k   +   n     )           &gt;                                  (     k   +   n     )        e           (     k   +   3     )        e     +       (     n   -   1     )          e   ′       +   s   +     3          log   2          (     k   +   n     )         +   1                     (   39   )                       η   2     =                  ke     e   +       log   2        N     +       log   2          (     k   +   n     )           &gt;                              Ke         (     k   +   3     )        e     +       (     n   -   1     )          e   ′       +   s   +     3          log   2          (     k   +   n     )         +   1                     (   40   )                       
 
     [0061] In the second embodiment, since multiplexing is employed, it is not necessary to make the random numbers very large. Therefore, even when the conditions are e′=e/2 and k=n, it is possible to readily achieve the scheme density ρ 2 &gt;1 and the rate η 2 &gt;½. For example, in the above conditions, when the divided number is k=8 and each of the bases d i   (P) , d i   (Q)  and the random numbers v i   (P) , v i   (Q)  is 32 bits, η 2 =1.0174, η 2 =0.5087, and thus the above conditions (ρ 2 &gt;1, η 2 &gt;½) are realized with such small parameters. However, there is a security problem with small parameters, and therefore it is practical to use parameters of, for example, around k=100, e=64, and e′=32.  
     [0062] Moreover, when the modulus N is publicized and the remainder of dividing C by N is made the ciphertext, the scheme density ρ 2  and the rate η 2  according to the second embodiment respectively satisfy the conditions of (41) and (42) below.  
                     ρ   2     =                      (     k   +   n     )        e         log   2        N       &gt;                                  (     k   +   n     )        e           (     k   +   2     )        e     +       (     n   -   1     )          e   ′       +   s   +     2          log   2          (     k   +   n     )         +   1                     (   41   )                       η   2     =                  ke       log   2        N       &gt;                              Ke         (     k   +   2     )        e     +       (     n   -   1     )          e   ′       +   s   +     2          log   2          (     k   +   n     )         +   1                     (   42   )                       
 
     [0063] As described above, when the modulus N is publicized, both of the scheme density ρ 2  and the rate η 2  are improved as compared with those when the modulus N is not publicized.  
     [0064] By the way, it is possible to set the random number components in the pseudo plaintext vector g′ completely independently of the plaintext vector g. Therefore, the random number components of the pseudo plaintext vector g′ can be set so that the scheme density of the created ciphertext C becomes higher. Moreover, there is an effective technique in which, after creating the ciphertext C by setting a certain random number sequence as the pseudo plaintext vector g′, the scheme density of the ciphertext C is calculated and, when the calculated value does not exceed 1, the ciphertext C is recreated by setting a different random number sequence for the pseudo plaintext vector g′, or, when the scheme density exceeds 1, the ciphertext C is transmitted to the entity as the receiver.  
     [0065] In the schemes of the above-described first and second embodiments, the positions (reduced positions) of the random numbers of the pseudo plaintext vector, which need not to be particularly encrypted and transmitted to the entity b, in the extended plaintext vector are fixedly set by the entity b as the receiver, and information indicating the positions is publicized.  
     [0066] On the other hand, if the positions (reduced positions) of such random number components or positions (normal positions) of the components of the plaintext vector to be encrypted can be arbitrarily set, a further improvement in security can be expected. The third embodiment given below explains the case where such reduced positions or normal positions are arbitrarily set by the entity a as the sender and the ciphertext including therein the information indicating the positions is transmitted to the entity b.  
     [0067] (Third Embodiment)  
     [0068] First, some definitions used for explaining the third embodiment will be described. In the third embodiment, the plaintext to be encrypted is also divided into some divided plaintext. Each divided plaintext is treated as a message vector m′. The message vector m is extended into a vector m′ by extension-transformation to be defined below. This vector m′ is referred to as the “extension message vector”. The sum of the bit-size of the components of these vector m and vector m′ is ε (bits) and ε′ (bits), respectively (where ε≧ε′). Moreover, let the possible maximum bit number of the ciphertext be C max .  
     [0069] &lt;Definition 1 (Density)&gt; 
     [0070] The scheme density ρ is defined as shown in (43) below.  
             ρ   =       ɛ   ′         log   2          C   max                 (   43   )                       
 
     [0071] Definition 2 (Rate)&gt; 
     [0072] The rate η is defined as shown in (44) below.  
             η   =     ɛ          C   max                    (   44   )                       
 
     [0073] Let the vector a=(a 1 , a 2 , . . . , a w ) be a w-dimensional vector and the vector c=(c 1 , c 2 , . . . , c n ) be an n-dimensional vector. Moreover, let the vector b=(b 1 , b 2 , . . . , b n ) be an n-dimensional binary vector of weight w. Here, the conditions shown in (45) below are satisfied.  
                       b     i   1       =       b     i   2       =     …   =       b     i   w       =   1                       i   1     &lt;     i   2     &lt;   …   &lt;     i   w             }           (   45   )                       
 
     [0074] &lt;Definition 3 (Index-Set)&gt; 
     [0075] The index-set I=Ind(vector b) is defined as shown in (46) below. 
       I={ ( i   1   , i   2   , . . . , i   w )}  (46) 
     [0076] &lt;Definition 4 (Vector Expression)&gt; 
     [0077] The index-set I is a subset of {1, 2, . . . , n}, and the vector d=Vec(I, n) is defined as a vector expression as shown in (47) below. Here, the vector d=(d 1 , d 2 , . . . , d n ), and, for example, when I=Ind(vector b), vector b=Vec(I, n).  
               d   i          {         1         (     i   ∈   I     )             0         (     i   ∉   I     )                     (   47   )                       
 
     [0078] &lt;Definition 5 (Extension)&gt; 
     [0079] The n-dimensional vector c extended from the vector a by the vector b is expressed as vector c=vector a{vector b}, and defined as shown in (48) below. For example, if vector a=(a 1 , a 2 , a 3 ) and vector b=(1, 0, 1, 1), then vector a{vector b}=(a 1 , 0, a 2 , a 3 ).  
             {               c     i   j       =     a   j                               c   k     =   0           (       in                 case                 of                   b   k       =   0     )                
          (       j   =   1     ,   2   ,              …              ,   w   ,     k   =   1     ,   2   ,              …              ,   n     )               (   48   )                       
 
     [0080] &lt;Definition 6 (Extraction)&gt; 
     [0081] The w-dimensional vector a extracted from the vector c by the vector b is expressed as vector a=vector c{vector b}, and defined as shown in (49) below. For example, if vector c=(c 1 , c 2 , c 3 , c 4 ) and vector b=(1, 0, 1, 1), then the first, third and fourth components are extracted, so that vector c{vector b}=(c 1 , c 3 , c 4 ). 
       {right arrow over (a)} =( c   i     1     , c   i     2     , . . . , c   i     w   )  (49) 
     [0082] Next, a specific scheme of the third embodiment will be explained.  
     [0083] &lt;Dividing Plaintext&gt; 
     [0084] The plaintext x is divided into a plurality of ek-bit blocks. Each block is expressed by the message vector m as shown in (50) below. Note that m i (i=1, 2, . . . , k) are e-bit integers. 
     vector  m =( m   1   , m   2   , . . . , m   k )  (50) 
     [0085] &lt;Extension Transformation&gt; 
     [0086] Let the message vector m be a k-dimensional vector whose components are e-bit integers and the random number vector r be an n-dimensional vector whose components are e′-bit integers. Here, e&lt;e′. Moreover, let a vector s be a (k+n)-dimensional binary vector of weight k. This vector s will be referred to as the “position indicator”.  
     [0087] Set h as shown in (51) below and let a vector s′ be an arbitrary (he-(k+n))-bit binary padding vector. An he-dimensional binary concatenate vector [vector s|vector s′] can be divided into h-dimensional vectors t whose components are e-bit integers as shown in (52) below. 
       h =┌( k+n )/ e┐   (51) 
       {right arrow over (t)}= ( t   1   , t   2   . . . , t   h )  (52) 
     [0088] Let K=k+n+h, and the index-sets I N , I R  and I L  are respectively defined as shown in (53), (54) and (55) below. Here, a vector s bar represents a bit complement of the vector s. 
       I   N =Ind( {right arrow over (s)} )  (53) 
       I   R =Ind( {right arrow over (s)} )  (54) 
       I   L   ={k+n+ 1 , k+n+ 2 , . . . , K}   (55) 
     [0089] Note that while the components of the index-set I L  are the last h components in the above example, the location of these components may be decided arbitrarily. In this case, the conditions of (56) and (57) below are satisfied, and the vector m′ and vector s are respectively expressed as shown in (58) and (59) below. 
       I   N   ∪I   R   ∪I   L ={1, 2 , . . . , K}   (56) 
       I   N   ∩I   R   =I   R   ∩I   L   =I   L   ∩I   N =φ  (57) 
       {right arrow over (m′)}={right arrow over (m)} ={Vec( I   N   , K )}+{right arrow over (r)}{Vec( I   R   , K )}+ {right arrow over (t)} {Vec( I   L   , K )}  (58) 
       {right arrow over (s)} =Vec( I   N   , K ) [{overscore (Vec( I   L   , K ))}]  (59) 
     [0090] The message vector m is transformed into the extension message vector m′=(m 1 ′, m 2 ′, . . . , m k ′) as shown in (60) below. In this case, each component of this vector m′ has a size shown in (61) below. 
       {right arrow over (m′)}=[{right arrow over (m)}{{right arrow over (s)}}+{right arrow over (r)}{{right arrow over (s)}}|{right arrow over (t)}]   (60)                     m   i   ′          =     {         e         (     i   ∈       I   N     ⋃     I   L         )               e   ′           (     i   ∈     I   R       )                     (   61   )                         
     [0091] &lt;Key Generation&gt; 
     [0092] The secret key and public key are prepared as follows.  
     [0093] Secret key: {d i   (P) }, {d i   (Q) }, {v i   (P) }, {v i   (Q) }, P, Q, N, w (where i=1, 2, . . . , K)  
     [0094] Public-key vector c=(c 1 , c 2 , . . . , c k ), I L , e, e′ Note that, the N may be publicized.  
     [0095] First, for any i and j (where I≠j), two sets of bases {d i   (P) }, {d i   (Q) } satisfying the conditions shown in (62) to (65) below are generated. 
       gcd ( d   i   (P)   , d   j   (P) )=1  (62) 
       gcd ( d   i   (Q)   , d   j   (Q) )=1  (63) 
       gcd ( d   i   (P)   , d   i   (Q) )=1  (64) 
       d   i   (P)   d   i   (Q) =2 e +δ i (1&lt;&lt;δ i &lt;&lt;2 e )  (65) 
     [0096] Let v i   (P) , v i   (Q)  be randomly selected integers, and V i   (P) , V i   (Q)  are calculated as shown in (66) and (67) below. Here, v i   (P)  and v i   (Q)  satisfy the conditions shown in (68) and (69) below.  
                 V   i       (   P   )       =             d   1       (   P   )              d   2       (   P   )                     …                     d   k       (   P   )             d   i       (   P   )                v   i       (   P   )                 (   66   )                   V   i       (   Q   )       =             d   1       (   Q   )              d   2       (   Q   )                     …                     d   k       (   Q   )             d   i       (   Q   )                v   i       (   Q   )                 (   67   )                       
  gcd ( d   i   (P)   , v   i   (P) )=1  (68) 
       gcd ( d   i   (Q)   , v   i   (Q) )=1  (69) 
     [0097] Next, for any extension message vector m′, large prime numbers P and Q satisfying the conditions M P &lt;P, M Q &lt;Q are set. Note that M P  and M Q  are respectively defined as shown in (70) and (71) below. 
       M   P   =m′   1   V   1   (P)   +m′   2   V   2   (P)   + . . . +m′   K   V   K   (P)   (70) 
       M   Q   =m′   1   V   1   (Q)   +m′   2   V   2   (Q)   + . . . +m′   K   V   K   (Q)   (71) 
     [0098] Then, set N=PQ, and calculate V i (0≦V i &lt;N) by (72) shown below according to the Chinese Remainder Theorem.  
               V   i     =     {             V   i       (   P   )             (     mod                 P     )                 V   i       (   Q   )             (     mod                 Q     )                     (   72   )                       
 
     [0099] Each component of the public-key vector c is computed by (73) shown below. Here, w is a random number arbitrarily selected from Z n *. 
       C   i   =wV   i  mod  N   (73) 
     [0100] &lt;Encryption&gt; 
     [0101] The entity a (sender) arbitrarily generates the vector s as the above-described position indicator. In other words, the entity a as the sender arbitrarily selects an index-set I N  that indicates the location related to the message vector m. Next, the entity a (sender) generates an n-dimensional vector r whose components are arbitrarily selected e′-bit integers. A high density is realized by this random number vector r. In other words, by adding the random number vector r as a redundant portion (reduced portion), the density becomes higher as to be described later.  
     [0102] The entity a (sender) transforms the message vector m into the extension message vector m′ by the vector s and vector r. Then, the inner-product of-.this extension message vector m′ and the public-key vector c is calculated as shown in (74) below to obtain the ciphertext C. The created ciphertext C is transmitted from the entity a to the entity b through the communication channel 3.  
                   C   =                    m   ′     →     ·     c   →                   =                    m   1   ′          c   1       +       m   2   ′          c   2       +   …   +       m   k   ′          c   k                       (   74   )                       
 
     [0103] In this encryption, the message vector m obtained by dividing the plaintext to be encrypted is transmitted at the positions indicated by the index-set I N , and the information about the index-set I N  is transmitted by the vector s at the positions indicated by the index-set I L .  
     [0104] &lt;Decryption&gt; 
     [0105] The entity b (receiver) performs the decryption process as follows.  
     [0106] The intermediate massage M satisfies (75) shown below. Therefore, the intermediate messages M P , M Q  in modulo P and modulo Q can be computed as shown in (76) and (77) below. 
       M≡w   −1   C (mod  N )  (75) 
       M   P   =M  mod  P   (76) 
       M   Q   =M  mod  Q   (77) 
     [0107] Then, (m i   (P) , m i   (Q) ) are obtained by (78) and (79) below, and (80) shown below is established by applying the Chinese Remainder Theorem, thereby enabling decryption of the message vector m″=(m 1 ″, m 2 ″, . . . , m k ″). 
       m   i   (P)   ≡M   P   V   i   (P)     −1   (mod  d   i   (P) )  (78) 
       m   i   (Q)   ≡M   Q   V   i   (Q)     −1   (mod  d   i   (Q) )  (79)                m   i   ″     ≡     {             m   i     (   P   )            (     mod                   d   i     (   P   )         )                   m   i     (   Q   )            (     mod                   d   i     (   Q   )         )                       (   80   )                         
     [0108] Since e′&gt;e, from (61) above, each component of the decrypted message vector m″ satisfies the conditions shown in (81) below.  
             {             m   i   ″     =     m   i   ′             (     i   ∈       I   N     ⋃     I   L         )                 m   i   ″     ≠     m   i   ′             (     i   ∈     I   R       )                   (   81   )                       
 
     [0109] According to the index-set I L , the vector t is extracted from the decrypted vector m″ as shown in (82) below. 
     [0110]               t   →     =         m   ″     →          [     Vec        (       I   L     ,   K     )       ]               (   82   )                         
     [0111] By regarding the vector t as the he-dimensional binary vector [vector s|vector s′], the entity b (receiver) can rebuilt the (k+n)-dimensional binary vector s of weight k. It is therefore possible to finally obtain the message vector m as shown in (83) below. 
     [0112]               m   →     =         m   ″     →          [     s   →     ]               (   83   )                         
     [0113] Note that, in a general case where the components of the index-set I L  are arbitrarily selected, by substituting the vector m″ in (83) above with one shown in (84) below, the message vector m is obtained. 
     [0114]                 m   ″     →          [       Vec        (       I   L     ,   K     )       _     ]             (   84   )                         
     [0115] Next, the security of the encryption scheme of the third embodiment as described above will be explained. It has been known that the low-density attack using the LLL algorithm is a very effective attack method with respect to the product-sum type public-key cryptosystems when the density is small. For example, it has also been known that the knapsack cryptosystem which is a typical one of the product-sum type cryptosystems is broken by the low-density attack when the density is smaller than 0.9408. In the encryption scheme of the above-described third embodiment, a high density exceeding 1 is realized, which means that this scheme is safe from the low-density attack.  
     [0116] If each of the random numbers v i   (P) , v i   (Q)  is an f-bit number, the density ρ in the above-described encryption scheme of the third embodiment satisfies the condition shown in (85) below. Here, K=k+n+h, and e′&gt;e.  
               m   i   ″     ≡     {             m   i       (   P   )             (     mod                     d   i       (   P   )         )                 m   i       (   Q   )             (     mod                     d   i       (   Q   )         )                     (   80   )                       
 
     [0117] For example, when f=e and e′=2e are set for simplicity, since n satisfies the condition shown in (86) below, ρ&gt;1 is realized. As a practical example, when e=32, it will be understood that ρ&gt;1 can be realized by making n=7 for all k. 
     ( n− 6) e&gt; 3 log 2    n+ 1  (86) 
     [0118] Moreover, in the encryption scheme of the third embodiment, a high rate can also be realized. The rate η in the above-described encryption scheme of the present invention satisfies the condition shown in (87) below.  
             η   =       ke     ⌈       e   ′     +       log   2        N     +       log   2        n       ⌉       &gt;     ke     Ke   +     (       3        e   ′       -   e     )     +   f   +   1   +     3        log   2        n                   (   87   )                       
 
     [0119] Here, when f=e and e′=2e are set for simplicity, since n and k satisfy the condition shown in (88) below, η&gt;0.5 is realized. As a practical example, when e=32, it will be understood that η&gt;0.5 can be realized by making n=7 and k&gt;14. For instance, if k=57, then η≈0.7884. Thus, from the viewpoint of the rate, the scheme of the third embodiment is efficient.  
                 (     k   -   n   -     ⌈       k   +   n     3     ⌉     -   6     )        e     &gt;       3        log   2        n     +   1             (   88   )                       
 
     [0120] Since the encryption scheme of the third embodiment can realize a high density, it is sufficiently safe from the low-density attack. Moreover, the entity as the sender can freely decide the positions of reduced bases. Therefore, even if the attacker tries to make an effective attack on the encryption scheme of the third embodiment based on the reduced bases whose positions are known, it is difficult for the attacker to identify the positions of the reduced bases. Accordingly, the characteristic feature of the third embodiment that the positions of the reduced bases are not fixed and can be arbitrarily decided by the sender means that this scheme is also safe from attacks which are effective when the positions of the reduced bases are known.  
     [0121] The following description will explain other examples of the third embodiment. In the above-described example, while the location of I L  is fixed (the last end) in every block, the location of this I L  may be different between the respective blocks. As such an example, the following are given.  
     FIRST EXAMPLE  
     [0122] For the first block, the location of I L  is fixed (for example, at the last end like the above-mentioned example), and this I L  is publicized. Then, for the second block and following blocks, the location of I L  in each block is decided by the message vector of a block that comes one block before. Therefore, the location of I L  varies from the second block. Accordingly, even when the entity as the sender arbitrarily decides the positions of the reduced bases, since the I L  in the first block is publicized and the location of I L  in the second block and the following blocks is known from the message vectors of the previous blocks, the entity as the receiver can decrypt the ciphertext into the plaintext like the above-mentioned example. In this first example, since the location Of I L  is varied in each block, it is possible to achieve an improvement in the security.  
     SECOND EXAMPLE  
     [0123] For the first block, the position of I L  is fixed (for example, at the last end like the above-mentioned example), and this I L  is publicized. Then, for the second block and the following blocks, the term of I L  is not provided, and the h-dimensional vector to be allocated to the term of I L  is allocated to a message obtained by dividing the plaintext. Then, for the second block and the following blocks, the positional information indicating the positions of the reduced bases of each block is decided from the message of a block that comes one block before. Therefore, I L  does not exist in the second block and the following blocks. Accordingly, even when the entity as the sender arbitrarily decides the positions of the reduced bases, since the I L  in the first block is publicized and the positions of the reduced bases in the second block and the following blocks are known from the message vectors of the previous blocks, the entity as the receiver can decrypt the ciphertext into the plaintext like the above-mentioned example. Moreover, in the second block and the following blocks, since portions to be allocated to the message is increased from k terms to (k+h) terms, the volume of message that can be included in a single block is increased, thereby enabling a further increase in the rate.  
     [0124] Note that, in the above example, while the information (index-set I L ) indicating the positions (index-set I N ) of the components of the message vector m obtained by dividing the plaintext to be encrypted is transmitted, it is certainly possible to transmit information indicating the positions (index-set I R ) of the components of the random number vector r to be added.  
     [0125] Moreover, in the above example, while the random numbers {v i   (P) }, {v i   (Q) } are added to two sets of bases {d i   (P) }, {d i   (Q) }, it is also possible to use a base-product obtained without adding such random numbers.  
     [0126] Furthermore, in the above example, as shown in (74), the inner-product value (product-sum operation result) of the extension message vector m′ and the public-key vector c is made the ciphertext C as it is, but one obtained by transformation of the inner-product value (product-sum operation result) modulo N, i.e., the remainder formed by dividing C in the above-mentioned (74) by N, may be made the ciphertext. 
       C =( m   1   ′c   1   +m   2   ′c   2   + . . . +m   k   ′c   k ) mod  N   (89) 
     [0127] In the case where the ciphertext is expressed as shown in (74), the ground of security is based on the difficulty of specifying a real solution among a plurality of solutions of the linear Diophantine indefinite equation for finding unknown numbers x 1 , x 2 , . . . x n  when a 1 , a 2 , . . . , a n  and C are known integers in the equation shown in (90) below. On the other hand, in the case where the ciphertext is expressed as shown in (89), since the product-sum operation is performed and the product-sum value is transformed modulo N, the ground of security is based on the difficulty in the prime factorization of N. In this case, since N is publicized, the quantity of the information provided to the attacker is increased, but the attacker can only know the remainder of the product-sum operation result rather than the result of the product-sum operation, and therefore the difficulty of solving the linear Diophantine equation is enhanced. 
       C=a   1   x   1   +a   2   x   2   + . . . +a   n   x   n   (90) 
     [0128] (Fourth Embodiment)  
     [0129] Note that, in the third embodiment, while the information indicating the positions of the components of the message vector or the components of the random number vector in the extension message vector which are arbitrarily set by the entity as the sender is included in the ciphertext, it is also possible to send the information indicating such positions from an entity as the sender to an entity as the receiver, independently of the transmission of the ciphertext.  
     [0130] (Fifth Embodiment)  
     [0131] Note that, in the third and fourth embodiments, while the positions of the components of the message vector or the components of the random number vector in the extension message vector are arbitrarily set by an entity as the sender, it is also possible to arbitrarily set such positions by an entity as the receiver.  
     [0132] (Sixth Embodiment)  
     [0133] Moreover, in the third to fifth embodiments, while the multiplexed schemes in which two sets ({d i   (P) }, {d i   (Q) }) of the set of bases {d i } consisting of k elements are generated are explained, it is certainly possible to similarly apply these third to fifth embodiments to a scheme in which one set of bases {d i } is used like the above-described first embodiment.  
     [0134]FIG. 2 is an illustration showing the structures of embodiments of a memory product of the present invention. The programs illustrated as examples here include a process of obtaining the extended plaintext vector g″ or the extension message vector m′ according to the procedure of the above-described encryption scheme and a process of creating the ciphertext C by calculating the inner-product of the obtained extended plaintext vector g″ or extension message vector m′ and the public-key vector c, and are recorded on the memory product explained below. Note that a computer  10  is provided for the entity as the sender.  
     [0135] In FIG. 2, a memory product  11  to be on-line connected to the computer  10  is implemented using a server computer, for example, WWW (World Wide Web), located in a place distant from the installation location of the computer  10 , and a program  11   a  as mentioned above is recorded on the memory product  11 . The program  11   a  read from the memory product  11  via a transmission medium  14  such as a communication line controls the computer  10  to create the ciphertext C.  
     [0136] A memory product  12  provided inside the computer  10  is implemented using, for example, a hard disk drive or a ROM to be installed in the computer  10 , and a program  12   a  as mentioned above is recorded on the memory product  12 . The program  12   a  read from the memory product  12  controls the computer  10  to create the ciphertext C.  
     [0137] A memory product  13  used by being loaded into a disk drive  10   a  installed in the computer  10  is implemented using, for example, a removable magneto-optical disk, CD-ROM, flexible disk or the like, and a program  13   a  as mentioned above is recorded on the memory product  13 . The program  13   a  read from the memory product  13  controls the computer  10  to create the ciphertext C.  
     [0138] In the present invention, as described above, since the ciphertext is obtained using a publicized public vector and a composite vector produced by adding a random number vector whose components are a plurality of arbitrarily selected random numbers to a plaintext vector obtained by dividing the plaintext to be encrypted, a redundant portion (reduced portion) consisting of random numbers which need not to be encrypted is added, thereby increasing the density of the ciphertext, enhancing the invulnerability to the low-density attack based on the LLL algorithm and improving the security. Moreover, since the positions of the components of the plaintext vector or random number vector in the composite vector can be arbitrarily set by an entity as the sender or an entity as the receiver, it is difficult for the attacker to find the positions, thereby enabling a further improvement in the security. As a result, the present invention can greatly contribute to opening the door to practical applications of product-sum type cryptosystems.  
     [0139] As this invention may be embodied in several forms without departing from the spirit of essential characteristics thereof, the present embodiments are therefore illustrative and not restrictive, since the scope of the invention is defined by the appended claims rather than by the description preceding them, and all changes that fall within metes and bounds of the claims, or equivalence of such metes and bounds thereof are therefore intended to be embraced by the claims.