Method and apparatus for symmetric-key encryption
First Claim
1. A symmetric-key encryption method performed by a computer comprising the steps of:
- dividing plaintext composed of a message and redundancy data added to the message to generate a plurality of plaintext blocks each having a predetermined length, wherein the redundancy data is added to detect whether a ciphertext obtained from said plaintext has been altered;
generating a first random number block and a second random number block both corresponding to each of said plurality of plaintext blocks based on a secret key that is an input value;
performing encrypting operations for producing ciphertext blocks each corresponding to each of said plurality of plaintext blocks; and
concatenating the series of said ciphertext blocks one after another sequentially to output said series as said ciphertext,wherein one of said encryption operations for producing the ciphertext block i corresponding to the plaintext i (2≦
i≦
a number of plaintext blocks) comprises;
a first operation step for performing an arithmetic computation on said plaintext block i and said first random number block corresponding to said plaintext block i,a second operation step for performing an arithmetic computation on a result of said first operation step performed on said plaintext block i and said second random number block corresponding to said plaintext block i, anda third operation step for performing an arithmetic computation on a result of said second operation step performed on said plaintext block i and a result of said first operation step performed on said plaintext block i−
1, to produce said ciphertext block i, andwherein either said first random number or said second random number is generated in complete isolation from any one of said plurality of plaintext blocks or the result of said second operation step.
1 Assignment
0 Petitions
Accused Products
Abstract
A symmetric-key cryptographic technique capable of realizing both high-speed cryptographic processing having a high degree of parallelism, and alteration detection. The invention includes dividing plaintext composed of redundancy data and a message to generate plaintext blocks each having a predetermined length, generating a random number sequence based on a secret key, generating a random number block corresponding to one of the plaintext blocks from the random number sequence, outputting a feedback value obtained as a result of operation on the one plaintext blocks and the random number block, the feedback value being fed back for using in the operation on another plaintext blocks, and performing an encryption operation using the one plaintext blocks, random number block, and feedback value.
65 Citations
22 Claims
-
1. A symmetric-key encryption method performed by a computer comprising the steps of:
-
dividing plaintext composed of a message and redundancy data added to the message to generate a plurality of plaintext blocks each having a predetermined length, wherein the redundancy data is added to detect whether a ciphertext obtained from said plaintext has been altered; generating a first random number block and a second random number block both corresponding to each of said plurality of plaintext blocks based on a secret key that is an input value; performing encrypting operations for producing ciphertext blocks each corresponding to each of said plurality of plaintext blocks; and concatenating the series of said ciphertext blocks one after another sequentially to output said series as said ciphertext, wherein one of said encryption operations for producing the ciphertext block i corresponding to the plaintext i (2≦
i≦
a number of plaintext blocks) comprises;a first operation step for performing an arithmetic computation on said plaintext block i and said first random number block corresponding to said plaintext block i, a second operation step for performing an arithmetic computation on a result of said first operation step performed on said plaintext block i and said second random number block corresponding to said plaintext block i, and a third operation step for performing an arithmetic computation on a result of said second operation step performed on said plaintext block i and a result of said first operation step performed on said plaintext block i−
1, to produce said ciphertext block i, andwherein either said first random number or said second random number is generated in complete isolation from any one of said plurality of plaintext blocks or the result of said second operation step. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A symmetric-key encryption apparatus comprising:
-
a circuit for dividing plaintext composed of a message and redundancy data added to the message to generate a plurality of plaintext blocks each having a predetermined length; wherein the redundancy data is added to detect whether a ciphertext obtained from said plaintext has been altered; a random number generation circuit for generating a first random number block and a second random number block both corresponding to each of said plurality of plaintext blocks based on a secret key that is an input value; an encryption operation circuit for performing encryption operations to produce ciphertext blocks each corresponding to each of said plurality of plaintext blocks; and a circuit for concatenating the series of said ciphertext blocks one after another sequentially to output said series as said ciphertext, wherein said encryption operation circuit for producing the ciphertext block i corresponding to the plaintext i (2≦
i≦
a number of plaintext blocks) comprises;a first circuit for performing a first operation on said plaintext block i and said first random number block corresponding to said plaintext block i, a second circuit for performing a second operation on a result of said first operation performed on said plaintext block i and said first random number block corresponding to said plaintext block i, and a third circuit for performing a third operation on a result of said second operation performed on said plaintext block i and a result of said first operation performed on said plaintext block i−
1, to produce a result of said third operation as said ciphertext block i, andwherein either said first random number of said second random number, which is generated by said random number generation circuit, is generated in complete isolation from any one of said plurality of plaintext blocks or the result of said second operation step. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A medium storing a program for causing a computer to perform a symmetric-key encryption method, wherein said program is read into said computer, said program when executed causes said computer to perform the steps of:
-
dividing plaintext composed of a message and redundancy data added to the message to generate a plurality of plaintext blocks each having a predetermined length, wherein the redundancy data is added to detect whether a ciphertext obtained from said plaintext has been altered; generating a first random number block and a second random number block corresponding to each of said plurality of plaintext blocks based on a secret key that is an input value; performing encryption operations for producing ciphertext blocks each corresponding to each of said plurality of plaintext blocks; and concatenating the series of said ciphertext blocks one after another sequentially to output said series as said ciphertext, wherein one of said encryption operations for producing the ciphertext block i corresponding to the plaintext block i (2≦
i≦
a number of plaintext blocks) comprises;a first operation step for performing an arithmetic computation on said plaintext block i and said first random number block corresponding to said plaintext block i, a second operation step for performing an arithmetic computation on a result of said first operation step performed on said plaintext block i and said second random number block corresponding to said plaintext block i, and a third operation step for performing an arithmetic computation on a result of said second operation step performed on said plaintext block i and a result of said first operation step performed on said plaintext block i−
1 to produce said ciphertext block i, andwherein either said first random number of said second random number is generated in complete isolation from any one of said plurality of plaintext blocks or the result of said second operation step. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A program product for causing a computer to perform a symmetric-key encryption method, wherein said program product is read into said computer, said program product comprising:
-
code for causing said computer to divide plaintext composed of a message and redundancy data added to the message, to generate a plurality of plaintext blocks each having a predetermined length, wherein the redundancy data is added to detect whether a ciphertext obtained from said plaintext has been altered; code for causing said computer to generate a first random number block and a second random number block both corresponding to each one of said plurality of plaintext blocks based on a secret key that is an input value; code for causing said computer to perform encryption operations for producing ciphertext blocks each corresponding to each of said plurality of plaintext blocks; and code for causing said computer to concatenate the series of said ciphertext blocks one after another sequentially to output said series as said ciphertext, wherein one of said encryption operations for producing the ciphertext block i (2≦
i≦
a number of plaintext blocks) comprises;a first operation step for performing an arithmetic computation on said plaintext block i and said first random number block corresponding to said plaintext block i, a second operation step for performing an arithmetic computation on a result of said first operation step performed on said plaintext block i and said second random number block corresponding to said plaintext block i, and a third operation step for performing an arithmetic computation on a result of said second operation step performed on said plaintext block i and a result of said first operation step performed on said plaintext block i−
1, to produce said ciphertext block i, andwherein either said first random number of said second random number is generated in complete isolation from any one of said plurality of plaintext blocks or the result of said second operation step, and wherein said program product is stored in a medium readable by said computer for embodying said codes.
-
Specification