Encryption method, decryption method, encryption/decryption method, cryptographic communications system, and computer usable medium
AssigneeMurata Kikai Kabushiki Kaisha
InventorsMasao Kasahara, Yasuyuki Murakami
Life of this patent
Estimating the term…
Abstract
An encryption/decryption method applicable to product-sum cryptosystem. This method enables highspeed decryption. A ciphertext C=m0B0+m1B1+ . . . +mK−1BK−1 is produced from a scalar product of a plaintext vector m=(m0, m1, . . . , mK−1) and a base vector B=(B0, B1, . . . , BK−1).
Claims24
An encryption method comprising the steps of:
- providing a plaintext vector m=(m0, m1, . . . , mk−1), which divides a plaintext into K parts;
- providing a base vector B=(B0, B1, . . . , Bk−1) by setting Bi (0≦i≦K−1) to B1=b0bi . . . bi using an integer bi;
- and
- producing a ciphertext C=m0b0+m1b1+ . . . +mK−1BK−1 using the plaintext vector m and base vector B, wherein the ciphertext C=m0v0B0+m1v1B1+mK−1vK−1BK−1 is produced by further using a random number vector v=(v0, v1, . . . , vk−1).
A decryption method for decrypting a ciphertext C, which is encrypted according to an encryption method shown below, the encryption method including the steps of:
- providing a plaintext vector m=(m0, m1, . . . , mk−1), which divides a plaintext into K parts,
- providing a base vector B=(B0, B1, . . . , Bk−1) by setting Bi (0≦i≦K−1) to Bi=b0 b1 . . . bi using an integer bi, and
- producing a ciphertext C=m0b0+m1b1+ . . . +mK−1BK−1 using the plaintext vector m and base vector B, wherein the ciphertext C=m0v0B0+m1v1B1+mK−1vK−1BK−1 is further produced by using a random number vector v=(v0, v1, . . . vk−1);
- the decryption method comprising the steps of:
- determining plaintext vector m=(m0, m1, . . . , mk−1) from the ciphertext C according to the algorithm below:
- Step 0
- C0=C/b0
- m0=C0 (mod b1)
- Step i (i=1, 2, . . . , K−2)
- Ci=(Ci−1−mi−1)/bi
- mi=Ci (mod bi+1)
- Step K−1
- mK−1=(CK−2−mK−2)/bK−1;
- and
- obtaining the original plaintext from the plaintext vector m.
An encryption method comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mk−1), which divides a plaintext into K parts;
- providing base vector B=(B0, B1, . . . , Bk−1) by setting Bi (0≦i≦K−1) to Bi=v1b0bi . . . bi using integer bi and random number vi;
- and
- producing ciphertext C=m0b0+m1b1+ . . . +mK−1BK−1 using the plaintext vector m and base vector B.
An encryption/decryption method for converting a plaintext to a ciphertext, and for converting said ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mk−1), which divides a plaintext into K parts;
- providing base vector B=(B0, B1, . . . , Bk−1) by setting said Bi (0≦i≦K−1) to B1=b0bi . . . bi using integer b1;
- selecting w, which satisfies w<P (P:
- prime number), and determining public-key vector c=(c0, c1, . . . , cK−1) according to Formula (a);
- ci=wBi (mod P) (a)
- preparing ciphertext C shown in Formula (b) according to the scalar product of plaintext vector m and public-key vector c;
- c=m0b0+m1c1+ . . . +mK−1cK−1 (b)
- determining an interim decrypted text M for ciphertext C as described in Formula (c);
- M=w−1C(mod P) (c)
- determining plaintext vector m=(m0, m1, . . . , mk−1) by decrypting this interim decrypted text M according to the algorithm below:
- Step 0
- M0=M/b0
- m0≡M0(mod bi)
- Step i (i=1, 2, . . . , K−2)
- M1=Mi−1−mi−1)/bi
- mi≡Mi(mod Bi+1)
- Step K−1
- mK−1=MK−2−mk−2)/bK−1;
- and
- obtaining the original plaintext from the plaintext vector m.
An encryption/decryption method for converting a plaintext to a ciphertext, and for converting said ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mK−1), which divides a plaintext into K (K is a number to the power of 2) parts;
- providing base vector B=(B0, B1, . . . BK−1) by setting said Bi (0≦i≦K−1) to Bi=b0bi . . . bi using integer b1;
- selecting w, which satisfies w<P (P:
- prime number), and determining public-key vector
- c=(c0, c1, . . . , cK−1) according to Formula (d);
- ci≡wBi(mod P) (d)
- preparing ciphertext C shown in Formula (e) according to the scalar product of plaintext vector m and public-key vector c;
- c=m0b0+m1c1+ . . . +mK−1cK−1 (e)
- determining an interim decrypted text M for ciphertext C as described in Formula (f);
- M≡w−1C(mod P) (f)
- determining plaintext vector m=(m0, m1, . . . , mK−1) by decrypting this interim decrypted text M according to the algorithms below:
- Two-part algorithm:
- First Step
- ML≡M(mod BK/2)
- Second Step
- MR=(M−ML)/BK/2
- Highspeed algorithm:
- The two-part algorithm is applied once again to ML, MR. The two-part algorithm is once again applied to each of the four parts of the interim decrypted text. This kind of process is repeated;
- and
- obtaining the original plaintext from the plaintext vector m.
An encryption/decryption method for converting plaintext to a ciphertext, and converting said ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mK−1), which divides a plaintext into K parts;
- providing base vector B=(B0, B1, . . . , BK−1) by setting said Bi (0≦i≦K−1) according to Formula (g);
- Bi=v0b0b1 . . . bi (g)
- Provided that:
- vi:
- random number
- bi:
- integer
- gcd (vi, bi+1)=1
- selecting w, which satisfies w<P (P:
- prime number), and determining public-key vector c=(c0, c1, . . . , cK−1) according to Formula (h);
- Ci=wBi(mod P) (h)
- preparing ciphertext C shown in Formula (i) according to the scalar product of plaintext vector m and public-key vector c;
- C=m0b0+m1c1+ . . . +mK−1cK−1 (i)
- determining an interim decrypted text M for ciphertext C as described in Formula (j);
- M=w−1C(mod P) (j)
- determining plaintext vector m=(m0, m1, . . . , mK−1) by decrypting this interim decrypted text M according to the algorithm below:
- Step 0
- M0=C/b0
- m0≡M0v0−1(mod b1)
- Step i (i=1, 2, . . . , K−2)
- Mi=Mi−1−mi−1vi−1)/bi
- mi=Mivi−1(mod bi+1)
- Step K−1
- MK−1=MK−2−mK−2vK−2)/bK−1
- mK−1=MK−1/vK−1;
- and
- obtaining the original plaintext from the plaintext vector m.
An encryption/decryption method for converting plaintext to a ciphertext, and converting said ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mK−1), which divides a plaintext into K parts;
- providing prime numbers P, Q;
- providing two base vectors B=(B0, B1, . . . , BK−1) by setting first base vector BPi (0≦i≦K−1) to BPi=bP0 bP1 . . . bPi using integer bPi and second base vector BQi (0≦i≦K−1) to BQi=bQ0bQ1 . . . bQi using integer bQi;
- using the Chinese Remainder Theorem to introduce a minimum integer Bi so that the remainders resulting from P, Q constitute BPi BQi, respectively;
- selecting w, which satisfies w<N (N=PQ), and determining public-key vector c=(c0, c1, . . . , cK−1) according to Formula (k);
- ci=wBi(mod N) (k)
- preparing ciphertext C shown in Formula (l) according to the scalar product of plaintext vector m and public-key vector c;
- C=m0c0+m1c1+ . . . +mK−1cK−1 (l)
- determining interim decrypted texts Mp, MQ with moduli P, Q for ciphertext C as described in Formulas (m), (n) respectively;
- MP=w−1C(mod P) (m)
- MQ=w−1C(mod Q) (n)
- determining plaintext vector m=(m0, m1, . . . , mK−1) by decrypting these interim decrypted texts MP, MQ according to the algorithm below:
- Step 0
- MP0=MP/bP0
- MQ0=MQ/bQ0
- M0(P)=MP0(mod bP1)
- M0(Q)=MQ0(mod bQ1)
- m0 is determined according to the Chinese Remainder Theorem,
- Step i (i=1, 2, . . . , K−2)
- MPi=MPi−1−mi−1/bPi
- MQi=(MQi−1−mi−1/bQi
- Mi(P)=MPi(mod bPi+1)
- Mi(Q)=MQi(mod bQi+1)
- m1 is determined according to the Chinese Remainder Theorem,
- Step K−1
- mK−1=MPK−2−mK−2/bPK−1
- or
- mK−1=MQK−2−mK−2/bQK−1;
- and
- obtaining the original plaintext from the plaintext vector m.
A cryptographic communications system for carrying out data communications between a plurality of entities using ciphertext, the cryptographic communications system comprising:
- an encryptor for preparing a ciphertext from a plaintext using the following encryption method;
- the encryption method including the steps of:
- providing a plaintext vector m=(m0, m1, . . . , mK−1), which divides a plaintext into K parts,
- providing a base vector B=(B0, B1, . . . , BK−1) by setting Bi (0≦i≦K−1) to Bi=b0b1 . . . bi using an integer bi, and
- producing a ciphertext C=m0B0+m1B1+ . . . +mK−1 BK−1 using the plaintext vector m and base vector B, wherein the ciphertext C=m0v0B0+m1v1B1+ . . . +mK−1vK−1BK−1 is produced by further using a random number vector v=(v0, v1, . . . , vK−1);
- a communications channel for sending a prepared ciphertext from one entity to another entity;
- and
- a decryptor for decrypting a sent ciphertext to an original plaintext.
A cryptographic communications system for carrying out data communications between a plurality of entities using ciphertext, the cryptographic communications system comprising:
- an encryptor for preparing a ciphertext from a plaintext using the following encryption method;
- the encryption method including the steps of:
- providing plaintext vector m=(m0, m1, . . . , mK−1), which divides a plaintext into K parts,
- providing base vector B=(B0, B1, . . . , BK−1) by setting Bi (0≦i≦K−1) to Bi=vib0b1 . . . bi using integer bi and random number vi and
- producing ciphertext C=m0B0+m1B1+ . . . +mK−1BK−1 using the plaintext vector m and base vector B;
- a communications channel for sending a prepared ciphertext from one entity to another entity;
- and
- a decryptor for decrypting a sent ciphertext to an original plaintext.
An encryption method for producing a ciphertext from a plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts;
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1), which is set to Bi=b0b1 . . . bi using integer bi (0≦i≦K−1);
- and
- producing ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 from the plaintext vector m, arbitrary random number vector r, and base vector B.
A decryption method for decrypting ciphertext C, which is encrypted according to an encryption method shown below,
- the encryption method including the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts,
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1),
- providing a base vector B=(B0, B1, . . . , BK−1),
- which is set to using integer Bi=b0b1 . . . bi using integer Bi (0≦i≦K−1), and
- producing ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 from the plaintext vector m, arbitrary random number vector r, and base vector B;
- the decryption method comprising the steps of determining plaintext vector m=(m0, m1, . . . , mJ−1) from the ciphertext C according to the algorithm below and obtaining the original plaintext from the plaintext vector m:
- Step 0
- C0=C/b0
- m0≡C0(mod b1)
- Step i (i=1, 2, . . . , J−1)
- Ci=(Ci−1−mi−1/bi
- mi≡Ci(mod bi+1).
An encryption method comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts;
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1), which is set to Bi=v1b0b1 . . . bi using an integer bi and random number vi (0≦i≦K−1), and
- producing ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 from the plaintext vector m, arbitrary random number vector r and base vector B.
An encryption/decryption method, which encrypts a plaintext to a ciphertext, and decrypts an encrypted ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts;
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1) by setting said Bi (0≦i≦K−1) to Bi=b0b1 . . . bi using an integer bi;
- selecting w, which satisfies w<P (P:
- prime number), and determining public-key vector c=(c0, c1, . . . , cK−1) according to Formula (m);
- c=wBi(mod P) (m)
- preparing ciphertext C shown in Formula (n) according to the scalar product of plaintext vector m, random number vector r, and public-key vector c;
- C=m0c0+m1c1+ . . . +mJ−1cJ−1+rJcJ+rJ+1cJ+1+ . . . +rK−1cK−1 (n)
- determining an interim decrypted text M for ciphertext C as described in Formula (o);
- M=w−1C(mod P) (o)
- determining plaintext vector m=(m0, m1, . . . , mJ−1) by decrypting this interim decrypted text M according to the algorithm below:
- Step 0
- M0=M/b0
- m0=M0(mod b1)
- Step i (i=1, 2, . . . , J−1)
- Mi=(Mi−1−mi−1/bi
- mi=Mi(mod bi+1);
- and
- obtaining the original plaintext from the plaintext vector m.
An encryption/decryption method, which encrypts a plaintext to a ciphertext, and decrypts an encrypted ciphertext to an original plaintext, comprising the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1) which divides a plaintext to be encrypted into J parts;
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1) by setting said Bi (0≦i≦K−1) according to Formula (p);
- Bi=vib0b1 . . . bi (p)
- Provided that:
- Vi:
- random number
- bi:
- integer
- gcd (vi, bi+1)=1
- selecting w, which satisfies w<P (P:
- prime number), and determining public-key vector c=(c0, c1, . . . , cK−1) according to Formula (q);
- ci=wBi(mod P) (q)
- preparing ciphertext C shown in Formula (r) according to the scalar product of plaintext vector m, random number vector r, and public-key vector c;
- C=m0c0+m1c1+ . . . +mJ−1cJ−1+rJcJ+rJ+1cJ+1+ . . . +rK−1cK−1 (r)
- determining an interim decrypted text M for ciphertext C as described in Formula (s);
- M≡w−1C(mod P) (s)
- determining plaintext vector m=(m0, m1, . . . , mJ) by decrypting this interim decrypted text M according to the algorithm below:
- Step 0
- M0=C/b0
- m0=M0b0−1(mod b1)
- Step i (i=1, 2, . . . , J−1)
- Mi≡(Mi−1−mi−1vi−1)/bi
- mi=Miv1−1(mod bi+1);
- and
- obtaining the original plaintext from the plaintext vector m.
A cryptographic communications system for carrying out data communications among a plurality of entities using ciphertext, comprising:
- an encryptor for preparing a ciphertext from a plaintext using one of the following two encryption methods:
- the first encryption method including the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts,
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1), which is set to Bi=b0b1 . . . bi using an integer bi (0≦i≦K−1), and producing ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 from the plaintext vector m, arbitrary random number vector r, and base vector B, and the second encryption method including the steps of:
- providing plaintext vector m=(m0, m1, . . . , mJ−1), which divides a plaintext to be encrypted into J parts,
- providing an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- providing a base vector B=(B0, B1, . . . , BK−1), which is set to Bi=v1b0b1 . . . bi using an integer bi using integer and random number vi (0≦i≦K−1), and
- producing ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 from the plaintext vector m,
- arbitrary random number vector r and base vector B;
- a communications channel for sending a prepared ciphertext from one entity to another entity;
- and
- a decryptor for decrypting a sent ciphertext to an original plaintext.
A computer readable medium, which stores a program for producing by computer a ciphertext from a plaintext, the computer usable medium comprising:
- first program coding means for causing said computer to produce a plaintext vector m=(m0, m1, . . . , mJ−1) by dividing a plaintext to be encrypted into J parts;
- second program coding means for causing said computer to produce an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- third program coding means for causing said computer to produce a base vector B=(B0, B1, . . . , BJ−1), which is set to Bi=b0b1 . . . bi using integer bi (0≦i≦K−1);
- and
- fourth program coding means for causing said computer to produce a ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 using said plaintext vector m, random number vector r, and base vector B.
A computer readable medium, which stores a program for producing by a computer a ciphertext from a plaintext, the computer usable medium comprising:
- first program coding means for causing said computer to produce a plaintext vector m=(m0, m1, . . . , mJ−1) by dividing a plaintext to be encrypted into J parts;
- second program coding means for causing said computer to produce an arbitrary random number vector r=(rJ, rJ+1, . . . , rK−1);
- third program coding means for causing said computer to produce a base vector B=(B0, B1, . . . , BJ−1), which is set to Bi=vib0b1 . . . bi using integer bi and random number vi (0≦i≦K−1);
- and
- fourth program coding means for causing said computer to produce a ciphertext C=m0B0+m1B1+ . . . +mJ−1BJ−1+rJBJ+rJ+1BJ+1+ . . . +rK−1BK−1 using said plaintext vector m, random number vector r, and base vector B.
Dependencies are inferred from the claim text.