US 7212633 B2 Abstract An expansion key generating device that receives encryption key data as input, and outputs plural expansion key data, comprising: a data dividing unit operable to divide the encryption key data into plural part key data; and plural key conversion units being connected in series, which output the plural expansion key data. Each of the plural key conversion units includes: an output calculation unit operable to receive the plural part key data or plural output data from a preceding key conversion unit as plural input data, which executes a fixed conversion process for each of the plural input data in so that each bit value of each of the plural input data does not interfere each other, and further outputs plural output data to a subsequent key conversion unit; and an expansion key calculation unit operable to combine plural input data and calculate the expansion key data.
Claims(10) 1. An expansion key generating device operable to receive encryption key data as an input and operable to output a plurality of expansion key data comprising:
a data dividing unit operable to receive the encryption key data, operable to divide the encryption key data into a plurality of part key data, and operable to output the plurality of part key data; and
a plurality of key conversion units connected in series, each operable to receive the plurality of part key data as an input, and operable to output the expansion key data, wherein each of the plurality of key conversion units includes:
an output calculation unit operable to
receive as a plurality of input data, either the plurality of part key data or a plurality of output data from a preceding key conversion unit as a plurality of input data;
execute a fixed conversion process for each of the plurality of input data such that each bit value of each of the plurality of input data does not interfere with each other, wherein said output calculation unit is operable to execute a rotation shift operation to at least one of the plurality of input data, where the bits of at least one of the plurality of input data are shifted according to a specific number; and
subsequently output a plurality of output data to a subsequent key conversion unit; and
an expansion key calculation unit operable to receive and combine the plurality of input data, and operable to generate and output the expansion key data.
2. The expansion key generating device according to
3. The expansion key generating device according to
4. The expansion key generating device according to
5. An expansion key generating device operable to receive encryption key data as an input and operable to output a plurality of expansion key data comprising:
a data dividing unit operable to receive the encryption key data, operable to divide the encryption key data into a plurality of part key data, and operable to output the plurality of part key data; and
a plurality of key conversion units connected in series, each operable to receive the plurality of part key data as an input, and operable to output the expansion key data, wherein each of the plurality of key conversion units includes:
an output calculation unit operable to:
receive as a plurality of input data, either the plurality of part key data or a plurality of output data from a preceding key conversion unit as a plurality of input data;
execute a fixed conversion process for each of the plurality of input data, such that each bit value of each of the plurality of input data does not interfere with each other; and
subsequently output a plurality of output data to a subsequent key conversion unit; and
an expansion key calculation unit operable to:
receive the plurality of input data;
substitute at least one of the plurality of input data according to a specific substitution table;
combine the plurality of input data; and
generate and output the expansion key data,
wherein said expansion key calculation unit includes:
a first combining unit operable to combine at least two of the input data from the plurality of input data, and generate a first combined data;
a data substituting unit operable to execute a substitution process to the first combined data according to the specific substitution table, and operable to output substituted data;
a second combining unit operable to combine the substituted data and at least one of the input data from the plurality of input data, and operable to generate a second combined data; and
an expansion key generating unit operable to receive as a data input at least said second combined data, and operable to generate the expansion key data.
6. An expansion key generating device operable to receive encryption key data as an input and operable to output a plurality of expansion key data comprising:
a data dividing unit operable to receive the encryption key data, operable to divide the encryption key data into a plurality of part key data, and operable to output the plurality of part key data; and
a plurality of key conversion units connected in series, each operable to receive the plurality of part key data as an input, and operable to output the expansion key data, wherein each of the plurality of key conversion units includes:
an output calculation unit operable to:
receive as a plurality of input data, either the plurality of part key data or a plurality of output data from a preceding key conversion unit as a plurality of input data;
execute a fixed conversion process for each of the plurality of input data, such that each bit value of each of the plurality of input data does not interfere with each other;
subsequently output a plurality of output data to a subsequent key conversion unit; and
an expansion key calculation unit operable to:
receive the plurality of input data;
substitute at least one of the plurality of input data according to a specific substitution table;
combine the plurality of input data;
concatenate the result of the substitution process and the result of combining the plurality of input data; and
generate and output the expansion key data according to the concatenation result.
7. An encryption device operable to encrypt plain text data using encryption key data comprising:
an expansion key generating device operable to receive encryption key data as an input, and operable to output a plurality of expansion key data; and
a data scrambling device operable to encrypt the plain text according to the plurality of expansion key data output by said expansion key generating device, and operable generate and output ciphertext data;
wherein said expansion key generating device includes:
a data dividing unit operable to divide the encryption key data into a plurality of part key data, and operable to output the plurality of part key data; and
a plurality of key conversion units connected in series, each operable to receive the plurality of part key data as an input, and operable to output the expansion key data, wherein each of said plurality of key conversion units includes:
an output calculation unit operable to:
receive as a plurality of input data either the plurality of part key data or a plurality of output data from a preceding key conversion unit;
execute a fixed conversion process for each of the plurality of input data such that each bit value of each of the plurality of input data does not interfere with each other, wherein said output calculation unit is operable to execute a rotation shift operation to at least one of the plurality of input data, where the bits of at least one of the plurality of input data are shifted according to a specific number; and
subsequently output a plurality of output data to a subsequent key conversion unit; and
an expansion key calculation unit operable to receive and combine the plurality of input data, and operable to generate and output the expansion key data.
8. The encryption device according to
9. A decryption device operable to decrypt ciphertext data using encryption key data comprising:
an inverse expansion key generating device operable to receive encryption key data as an input, and operable to output a plurality of expansion key data in the reverse order of an expansion key generating device; and
an inverse data scrambling device operable to decrypt the ciphertext data according to the plurality of expansion key data output by said inverse expansion key generating device, and operable to generate and output decryption text;
wherein said inverse expansion key generating device includes:
a key modification unit operable receive the encryption key data, operable to divide the encryption key data into a plurality of part key data, operable to arrange the position of each of the plurality of part key data according to a predefined rule, and operable to subsequently output the plurality of part key data; and
a plurality of inverse key conversion units connected in series, each operable to receive as a plurality of input data either the plurality of part key data output from said key modification unit or a plurality of output data from a preceding inverse key conversion unit, operable to generate the expansion key data in a reverse order of the expansion key generating device, and operable to output data to a subsequent inverse key conversion unit, wherein each of said plurality of inverse key conversion units includes:
an output calculation unit operable to:
receive the plurality of input data received by said inverse key conversion unit;
execute a fixed conversion process for each of the plurality of input data such that each bit value of each of the plurality of input data does not interfere with each other, wherein said output calculation unit is operable to execute a rotation shift operation to at least one of the plurality of input data, where the bits of at least one of the plurality of input data are shifted according to a specific number; and
subsequently output a plurality of output data to a subsequent inverse key conversion unit; and
an expansion key calculation unit operable to receive and combine the plurality of input data, and operable to generate and output the expansion key data.
10. The decryption device according to
Description (1) Field of the Invention The present invention relates to an encryption system. More specifically, the present invention relates to an encryption system which has a decreased difference between encryption time and decryption time, and is capable of generating a highly random expansion key. (2) Description of the Related Art Due to a rapid spread of digital communication in recent years, a data encryption method for securing data confidentiality through communication is highly demanded for the purpose of protecting privacy and the development of sound industries. In order to realize an encryption method, a speedy encryption process, and easy implementation, and a high security level are required. In a generic structure of such an encryption method, the data subject for encryption is divided into blocks of a specific size, a data scrambling process is executed to each block based on a specific encryption key, and then a ciphertext is generated. (First Related Art) As one of such encryption methods, there is Rijndael encryption which is established as the Advanced Encryption Standard (AES). The AES is the next generation standard of encryption in the United States. The expansion key generating unit The expansion keys output from the key conversion units The data scrambling unit Each of the key conversion units Each of the key conversion units Each of the key conversion units The following briefly describes the encryption process of the Rijndael encryption method executed by the encryption device Data entered into the data conversion unit Each of the data conversion units Each of the key conversion units Each of the exclusive-OR operation units The data concatenation unit Each of the key conversion units The expansion key inverse generating unit Since the specific operation executed by the key conversion units However, the key conversion units The expansion key inverse generating unit Each of the expansion keys output from the key inverse conversion units The data inverse scrambling unit The data inverse scrambling unit Each of the key inverse conversion units Each of the key inverse conversion units Each of the key inverse conversion units The following briefly describes the decryption process of the Rijndael encryption method executed by the decryption device A key conversion unit Next, the following describes details of a process executed in the data inverse scrambling unit The following describes the key inverse conversion process executed in each of the key inverse conversion units Each of the exclusive-OR operation units The data rotation unit The exclusive-OR operation unit The data concatenation unit Each of the key inverse conversion units As shown in (Second Related Art) The U.S. standard known as the Data Encryption Standard (DES) is the second related art. The following describes actions of the key conversion unit According to the encryption device in the DES method the same expansion key generation process can be applied to generate the expansion key both at the encryption process and at the decryption process because generating the expansion key is basically realized by a data shift process and a data extraction process. Accordingly, there is no difference between the encryption and the decryption processes regarding the processing workload necessary for generating the expansion key. The above mentioned inventions as well as other related inventions contain deficiencies. In regards to the encryption method of the first related art, the time required to execute the generating process for the expansion key at the decryption stage is greater than the time required at the encryption stage. These timing differences occur for the following reasons. As shown in On the other hand, as indicated in When the above-described time gap is significantly large, the following problems arise. Consider, for example, a communication system where data is exchanged in a real time manner between a receiving device and a sending device. If the encryption device Also, as shown in On the other hand, the problem of the first related art, being “the time required to generate the expansion key at the decryption takes longer than the time at the encryption”, is resolved in the second related art. However, the second related art still contains a problem where the expansion key is not sufficiently at random. In the second related art, data is treated as an expansion key wherein a certain number of bits at a specific position are extracted from the concatenated data after a rotation bit shift is applied. Since a data combining process or a substituting process is not used for a process to generate the expansion key, the expansion key is not adequately random. Regarding the generation process of the expansion key in the second related art, the key cannot maintain a high security level. This is typically called a “weak key”. The weak key in the DES method is described, for example, in “Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, “Handbook of Applied Cryptography”, CRC Press, 1997, pp. 256–pp. 259”. In view of the above problems identified in the prior art, the present invention aims at providing an encryption system that reduces the time gap between encryption time and decryption time. 1. Additionally, the present invention also provides an encryption system that is capable of generating an expansion key with a high level of randomness and security. In order to achieve above objectives, this invention specifies an expansion key generating device which receives encryption key data as an input and it is operable to ouput plural expansion key data comprising: a data dividing unit operable to divide the encryption key data into plural part key data; and plural key conversion units, which are connected in series, operable to receive the plural part key data as input and output the plural expansion key data. Further, each of the plural key conversion units includes: an output calculation unit operable to receive the plural part key data or plural output data from a preceding key conversion unit as plural input data, execute a fixed conversion process to each of the plural input data in a way each bit value of each of the plural input data does not interfere each other, and output plural output data into a subsequent key conversion unit; and an expansion key calculation unit operable to combine the plural input data, and generate the expansion key data. As mentioned above, because the output calculation unit can be separated from the expansion key calculation unit, and the process at the output calculation unit is a fixed conversion process for each of the input data such that each bit value of each input data does not interfere each other, it is possible to have a processing unit equivalent to what is resulted by executing processes at a specific number of stages in the output calculation unit. Therefore, once data is generated in the above equivalent processing unit at the time of decryption, it is possible to sequentially generate the expansion keys used for decrypting the ciphertext data by sequentially executing the inverse conversion processes of the processes executed by the key conversion unit. Accordingly, there is no need to execute the processes at a specific number of stages in the output calculation unit at the decryption, and thereby the time gap between the encryption and the decryption can be reduced. Also, the expansion key calculation unit can provide a highly random and secure expansion key, because it combines plural part data when calculating the expansion key data. For example, the output calculation unit executes a rotation shift operation by a specific number of bits to at least one of the plural input data, and the specific number of bits is not a measure of a number of bits of the input data, which the rotation shift operation is executed to. Since the number of bits for the rotation shift operation is not made to a measure of the input data which the rotation shift rotation is executed to, it becomes hard to generate the same input data as the original input data even if the plural rotation shifts are executed to the input data. Therefore, a highly random and secure expansion key with a high level of security can be provided. Also, the expansion key calculation unit executes a substituting process to at least one of the plural input data based on a specific substitution table in a halfway process of combining the plural input data. The expansion key with a high level of randomness and security can be provided by inserting a non-linear process, such as the substituting process. The present invention is not limited to an embodiment as such an expansion key generating device, but may also embody an encryption device equipped with such an expansion key generating device, and as a decryption device which decrypts a ciphertext data encrypted by an expansion key generating device. The present invention may also embody an encryption system comprised of an encryption device, a decryption device, and an expansion key generating method or a program having a computer function which operates as an expansion key generating device. Such a program may be widely distributed through a recording medium such as a Compact Disk-Read Only Memory (CD-ROM) or a transmission medium like the Internet. These and the other objects, advantages and features of the invention will become apparent from the following description thereof taken in conjunction with the accompanying drawings which illustrate a specific embodiment of the invention. In the drawings: The following specifically describes an encryption system related to the present invention based on an embodiment with reference to drawings. The encryption system is comprised of an encryption device and a decryption device, which are explained later. A data encryption unit The data scrambling unit Each of the data conversion units The expansion key calculation unit The expansion key calculation unit An output calculation unit The expansion key calculation unit The structures of the exclusive-OR operation units The following describes actions taken by the encryption device The following explanation is for an overall process flow of the encryption device shown in A data dividing unit The data conversion unit The key conversion unit The data conversion unit The same processes are executed in the key conversion units The data conversion unit The following describes a data conversion process executed by each of the data conversion units The exclusive-OR operation unit The data dividing unit The data dividing unit According to the following formula (15), the data substituting unit Sbox here indicates a substitution table. As shown in That is to say, Sbox [B The substitution table Sbox used here is the one described in “S-box design considering the security against known attacks on block ciphers”, Technical Report of IEICE, Vol. 98 No. 48, ISEC98-13, (in Japanese), (July, 1998) written by Shiho Moriai, Kazumaro Aoki, Masayuki Kanda, Youichi Takashima, and Kazuo Ohta. However, the substitution table Sbox is not limited to this, and may be something else. The data substituting units A data concatenation unit The following describes the key conversion process executed in each of the key conversion units The following explains the expansion key calculation process executed in the expansion key calculation unit The exclusive-OR operation unit A data substituting unit Data values, which are obtained by dividing the data A by each 8 bits from its upper level, are respectively treated as A The exclusive-OR operation unit The exclusive-OR operation unit The exclusive-OR operation unit The data concatenation unit The following describes a process (an output calculation process) to calculate the first˜fourth output data Y The data rotation units ROTR The following describes the final key conversion process executed by the final key conversion unit The data decryption device The data inverse scrambling unit Each of the data inverse conversion units The expansion key calculation unit The expansion key calculation unit The output inverse calculation unit The final key conversion unit The following describes actions taken by the decryption device An overall process flow of the decryption device The key modification unit The key inverse conversion unit The data inverse conversion unit The key inverse conversion unit The data inverse conversion unit The same operation is executed in the key inverse conversion units The data inverse conversion unit The following describes the inverse data conversion process executed in each of the data inverse conversion units The data dividing unit The data dividing unit The data inverse substituting unit InvSbox here indicates an inverse substitution table that executes an inverse substitution of the substitution table Sbox explained above. The inverse substitution table consists of arrays having 256 elements as shown in That is to say, InvSbox [A The inverse substitution table InvSbox used here is the one created based on the substitution table Sbox used by the data substituting units In short, the relationship indicated in the following formula (29) is established between the substitution table Sbox and the inverse substitution table InvSbox.
Each of the data inverse substituting units The data concatenation unit The following describes the key modification process executed by the key modification unit Each of the data rotation units ROTR Finally, the key modification unit The following describes a meaning of a shift volume in the data rotation unit If the first˜fourth output data Y If the same process is executed to the key conversion units
Although Also, the number of the rotation bit shifts in the data rotation units The following describes the key inverse conversion process executed by the key inverse conversion units The following describes the expansion key calculation process executed in the expansion key calculation unit The exclusive-OR operation unit The data substituting unit The data is divided by each 8 bits from its upper level of the data A is supposed to be A The exclusive-OR operation unit The exclusive-OR operation unit The exclusive-OR operation unit The data concatenation unit The following describes a process (a data conversion process) that calculates the first˜fourth output data Z The data rotation units ROTL The following describes an effect of the encryption system in the embodiment explained above in comparison with conventional technologies. As shown in However, as shown in In the first related art, to execute the process of the key conversion unit one time requires 5 times of the exclusive-OR operation, once of the substituting process and once of the data rotation process. Therefore, if this is executed 9 times, 45 times of the exclusive-OR operation, 9 times of the substitution process and 9 times of the data rotation process are required as the overhead. On the other hand, in the decryption device That is to say, the overheads of the present invention are much less than the ones of the first related art. This is realized by separating the expansion key calculation unit Also, since the data rotation process can be realized by arranging a distribution pattern of signal lines when it is installed in hardware, it does not cause data delay. Because of this, when the decryption device Next, the randomness of the expansion key generated in the system is examined. At the time of encryption, the output of the data substituting unit Furthermore, each of the data rotation units The data rotation process is executed to all of the 32-bit data blocks in the output calculation unit Besides, rather than the data rotation process, the output calculation unit Because each bit value does not interfere each other with such a conversion, it is possible to create the key modification unit such as the one indicated in Also, the bit reversing unit With such a conversion, it is possible to create the key modification unit indicated in Also, though the present embodiment uses the structure shown in Furthermore, the sizes of the plain text and the ciphertext are set to 64-bit, the size of the encryption key is 128-bit and the size of the expansion key is 64-bit in the present embodiment, but they are not limited to these data sizes. Also, the number of stages for the data conversion process in the data scrambling unit In addition, though the exclusive-OR operation unit Moreover, the exclusive-OR operation unit Additionally, the exclusive-OR operation units As clarified from the above explanation, rather than using the method in the first related art in which the expansion key generating process and the process for getting an input for the subsequent expansion key generating process are executed by sharing a part of the same processing circuit, the processes in the encryption system related to the present invention are separated into the expansion key calculation unit and the output calculation unit, and executed. The expansion key calculation unit combines plural data, and calculates an expansion key. The output calculation unit uses a data rotation process that can convert a process, which is repeated n times (n is a natural number), to a simple equivalent process. In this way, the overhead process at the time of decryption does not get so much bigger than the process at the time of encryption like the first related art. Therefore, it is possible that the time taken for the decryption process does not have so much difference from the time taken for the encryption process. The expansion key calculation unit uses a complicated process of a non-linear substituting process combined with a data combining process through a substitution table, rather than a simple bit replacing process like the second related art. Accordingly, the non-linear process using the substitution table has an influence on all of the expansion keys. Further, besides when the encryption key is changed, it has a feature where all of the expansion keys generated are affected by the change. Therefore, the present invention can realize a highly random expansion key generating process. As mentioned above, according to the encryption system related to the present invention, the issues of the first and the second related arts can be resolved. According to the encryption system related to the present invention, it is possible to provide an encryption process, and an authentication process and the like, which are high speed and achieve a high security level. Therefore, practical value of the present invention is extremely high when used by a system or the like, where it is required to meet high standards in terms of execution speed and security level. Patent Citations
Referenced by
Classifications
Legal Events
Rotate |