Block encryption device using auxiliary conversion
AssigneesMitsubishi Denki Kabushiki Kaisha, Nippon Telegraph and Telephone Corporation
InventorsMitsuru Matsui, Toshio Tokita, Junko Nakajima, Masayuki Kanda, Shiho Moriai, Kazumaro Aoki
Life of this patent
Estimating the term…
Abstract
It is desired to share one circuit by an encryption unit 200 and a decryption unit 500. A normal data transformation unit (FL) 251 and an inverse data transformation unit (FL−1) 273 are located at point symmetry on a non-linear data transformation unit 220, and a normal data transformation unit (FL) 253 and an inverse data transformation unit (FL−1) 271 are located at point symmetry on the non-linear data transformation unit 220. Therefore, the encryption unit 200 and the decryption unit 500 can be configured using the same circuits.
Claims41
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing unit divides data to be transformed into first data (L) and second data (R) and performs a data transformation, and
- wherein the data processing unit comprises:
- a normal data transformation unit (FL) for transforming the first data (L);
- and
- an inverse data transformation unit (FL−1) for transforming the second data (R) by performing an inverse transformation of a transformation by the normal data transformation unit (FL).
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing unit comprises a non-linear transformation unit for performing a non-linear transformation of data,
- wherein the non-linear transformation unit includes:
- a first transformation unit (s1) for inputting a part of data to be transformed as first partial data, transforming the first partial data using a transformation table T, which inputs data, transforms a value of the data into another value and outputs the data, and outputting transformed data;
- and
- a second transformation unit (s2) for inputting at least another part of the data to be transformed as second partial data, transforming the second partial data by a transformation using the transformation table T and an operation for second part, and outputting transformed data.
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing unit comprises:
- a subfield transformation unit for inputting data to be transformed, assuming the data as an element of a field, transforming the data by an inverse element circuit using a subfield of the field, and outputting transformed data;
- and
- an affine transformation unit for vector space GF(2)n on GF(2), provided at at least one of a former round and a latter round of the subfield transformation unit, for assuming data on GF(2)n to be transformed as an element of GF(2)n which corresponds naturally.
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- wherein the data processing unit comprises a non-linear transformation unit having cascaded plural rounds, each of the plural rounds inputs an extension key and performs a non-linear transformation,
- wherein the key generating unit includes a key shifting unit for inputting at least one of the key data and data generated from the key data and depending on the key data, performing a rotational shift by a predetermined number of bits Z1, Z2, . . . , Zm (where each of i, j, k is one of 1 through m, Zk−Zj=I×(Zi+1−Zi)=I×B (I is an integer, B=Zi+1−Zi)), and generating an extension key for the each of the plural rounds of the non-linear transformation unit from the key data on which the rotational shift is performed, and
- wherein the key shifting unit includes:
- a rotational shift register for performing a rotational shift by (Zi+1−Zi) bits (B bits) at one operation;
- and
- a controller for operating the rotational shift register 1 time on the key data, on which the rotational shift is performed by Zi bits, to perform the rotational shift by (Zi+1−Zi) bits (B bits), making the rotational shift register to generate the key data which is performed the rotational shift by Zi+1 bits, and
- operating the rotational shift register I time(s) on the key data, on which the rotational shift is performed by Zi+1 bits, to perform the rotational shift by I×(Zi+1−Zi) bits (I×B bits), and making the rotational shift register to generate the key data which is performed the rotational shift by Zi+2 bits.
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- wherein the data processing unit comprises a non-linear transformation unit of cascaded plural rounds, each of the plural rounds inputs an extension key and performs a non-linear transformation,
- wherein the key generating unit comprises a key shifting unit for rotationally shifting key data by a predetermined number of bits (B bits) successively on generating the extension key to be supplied to the each of the plural rounds of the non-linear transformation unit, and generating an extension key used for the each of the plural rounds of the non-linear transformation unit from key data,
- wherein the key shifting unit does not generate the extension key by ignoring certain data among the key data being rotationally shifted by B bits successively, and generates the extension key from other remaining data.
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- wherein the key generating unit comprises:
- a first G-bit key transformation unit for inputting G-bit key data having G bits, transforming the G-bit key data, and outputting first G-bit transformed key data having G bits;
- and
- a second G-bit transformation unit for inputting the first G-bit transformed key data output from the first G-bit key transformation unit, transforming the G-bit key data, and outputting second G-bit transformed key data, and
- wherein the key generating unit, in case that the key generating unit inputs G-bit key data K, inputs the G-bit key data K to the first G-bit key transformation unit to transform and outputs G-bit transformed key data K1 output from the first G-bit key transformation unit as G-bit key data transformed, and
- wherein the key generating unit, in case that the key generating unit inputs 2G-bit key data K, generates G-bit key data from the 2G-bit key data K, inputs the G-bit key data generated to the first G-bit key transformation unit to transform, and outputs first G-bit transformed key data K1, inputs the first G-bit transformed key data K1 to the second G-bit transformation unit to transform, and outputs second G-bit transformed key data K2, concatinates the first G-bit transformed key data K1 output from the first G-bit key transformation unit and the second G-bit transformed key data K2 output from the second G-bit transformation unit, and outputs a concatinated result as transformed 2G-bit key data (K1, K2).
A data transformation apparatus having:
- a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data;
- and,
- a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- the data transformation apparatus comprising a non-linear function unit (F) including:
- a key function unit for performing a logical operation of data to be transformed and the key data;
- an S function unit for converting data to be transformed into other data;
- and
- a P function unit for performing a logical operation among pieces of data to be transformed, and
- wherein the key function unit is placed between the S function unit and the P function unit in the non-linear function unit (F).
A data transformation apparatus having:
- a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- the data transformation apparatus comprising a non-linear function unit (F) including:
- a key function unit for performing a logical operation of data to be transformed and the key data;
- an S function unit for converting data to be transformed into other data;
- and
- a P function unit for performing a logical operation among pieces of data to be transformed, and
- wherein the key function unit is placed one of before the S function unit and the P function unit and after the S function unit and the P function unit in the non-linear function unit (F).
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, the data transformation apparatus comprising
- a non-linear function unit (F) including a P function unit which performs a logical operation among pieces of data to be transformed, and
- wherein the P function unit inputs eight pieces of 4n-bit data (n is an integer greater than 1) Z1, Z2, . . . , Z8 and includes:
- a circuit for performing an XOR operation of at least two of the four pieces of data Z1, Z2, Z3, Z4 to obtain 4n-bit operation result U1;
- a circuit for performing an XOR operation of at least two of the four pieces of data Z5, Z6, Z7, Z8 to obtain 4n-bit operation result U2;
- a circuit for performing an XOR operation of U1 and U2 to obtain 4n-bit operation result U3;
- a rotational circuit for performing a rotational shift on U1;
- and
- a circuit for performing an XOR operation of output from the rotational circuit and U3 to obtain 4n-bit operation result U4, and
- wherein the data transformation apparatus divides U3 and U4 into four pieces of data, respectively, and outputs eight pieces of n-bit data z′1, z′2, . . . , z′8.
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing process divides data to be transformed into first data (L) and second data (R) and performs data transformation, and
- wherein the data processing process comprises:
- a normal data transformation process (FL) for transforming the first data (L);
- and
- an inverse data transformation process (FL−1) for transforming the second data (R) by performing an inverse transformation of a transformation of the normal data transformation process (FL).
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing process comprises a non-linear transformation process for performing a non-linear transformation of data,
- wherein the non-linear transformation process includes:
- a first transformation process (s1) for inputting a part of data to be transformed as first partial data, transforming the first partial data using a transformation table T, which inputs data, transforms a value of the data into another value and outputs the data, and outputting transformed data;
- and
- a second transformation process (s2) for inputting at least another part of data to be transformed as second partial data, transforming the second partial data by transformation using the transformation table T and an operation for second part, and outputting transformed data.
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data, wherein the data processing process comprises:
- a subfield transformation process for inputting data to be transformed, assuming the data as an element of a field, transforming the data by an inverse element circuit using a subfield of the field, and outputting transformed data;
- and
- an affine transformation process for vector space GF(2)n on GF(2), provided at at least one of a former round and a latter round of the subfield transformation unit for assuming data on GF(2)n to be transformed as an element of GF(2)n which corresponds naturally.
A data transformation method for executing a data processing process for performing at least one of encryption of data and decryption of data, and a key generating process for generating key data to be used by the data processing process and supplying the key data to the data processing process,
- wherein the data processing process comprises a non-linear transformation process having cascaded plural rounds, each of the plural rounds inputs an extension key and performs a non-linear transformation,
- wherein the key generating process comprises a key shifting process for inputting at least one of the key data and data which is generated from the key data and depending on the key data, performing a rotational shift by a predetermined number of bits Z1, Z2, . . . Zm (where each of i, j, k is one of 1 through m, Zk−Zj=I×(Zi+1−Zi) (I is an integer, B=Zi+1−Zi)), and generating an extension key for the each of the plural round of the non-linear transformation process from the key data on which the rotational shift is performed, and
- wherein the key shifting process includes:
- a rotational shifting process;
- and
- a control process for operating the rotational shifting process 1 time on the key data, on which the rotational shift is performed by Z1 bits, to perform the rotational shift by (Zi+1−Zi) bits (B bits), making the rotational shifting process to generate the key data which is performed the rotational shift by Zi+1 bits, and operating the rotational shifting process I times on the key data, on which the rotational shift is performed by Zi+1 bits, to perform the rotational shift by I×(Zi+1−Zi) bits (I×B bits), and making the rotational shifting process to generate the key data which is performed the rotational shift by Zi+2 bits.
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating process for generating key data to be used by the data processing process and supplying the key data to the data processing process,
- wherein the data processing process comprises a non-linear transformation having cascaded plural rounds, each of the plural rounds inputs an extension key and performs a non-linear transformation,
- wherein the key generating process comprises a key shifting process for rotationally shifting key data by a predetermined number of bits (B bits) successively on generating the extension key to be supplied to the each of the plural rounds of the non-linear transformation process, and generating an extension key used for the each of the plural rounds of the non-linear transformation process from key data being rotationally shifted,
- wherein the key shifting process does not generate the extension key by ignoring certain data among the key data being rotationally shifted by B bits successively, and generates the extension key from other remaining data.
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating process for generating key data to be used by the data processing process and supplying the key data to the data processing process,
- wherein the key generating process comprises:
- a first G-bit key transformation process for inputting G-bit key data having G bits, transforming the G-bit key data, and outputting first G-bit transformed key data having G bits;
- and
- a second G-bit transformation process for inputting the first G-bit transformed key data output from the first G-bit key transformation process, transforming the G-bit key data, and outputting second G-bit transformed key data, and
- wherein the key generating process, when the key generating unit inputs G-bit key data K, inputs the G-bit key data K to the first G-bit key transformation unit, transforms the G-bit key data K, and outputs G-bit transformed key data K1 output from the first G-bit key transformation process as G-bit key data transformed, and
- wherein the key generating process, when the key generating unit inputs 2G-bit key data K, generates G-bit key data from the 2G-bit key data K, inputs the G-bit key data generated to the first G-bit key transformation unit to transform and outputs the first G-bit transformed key data K1, inputs the first G-bit transformed key data K1 to the second G-bit transformation process to transform and outputs second G-bit transformed key data K2, concatenates the first G-bit transformed key data K1 output from the first G-bit key transformation unit and the second G-bit transformed key data K2 output from the second G-bit transformation unit, and outputs a concatenated result as transformed 2G-bit key data (K1, K2).
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating process for generating key data to be used by the data processing process and supplying the key data to the data processing process, the data transformation method comprising a non-linear function process (F) including:
- a key function process for performing a logical operation of data to be transformed and the key data;
- an S function process for converting data to be transformed into other data;
- and
- a P function process for performing a logical operation among pieces of data to be transformed, and
- wherein the key function process is placed between the S function process and the P function process in the non-linear function process (F).
A data transformation method for executing a data processing process for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating process for generating key data to be used by the data processing process and supplying the key data to the data processing process, the data transformation method comprising a non-linear function process (F) including:
- a key function process for performing a logical operation of data to be transformed and the key data;
- an S function process for converting data to be transformed into other data;
- and
- a P function process for performing a logical operation among pieces of data to be transformed, and
- wherein the key function process is placed one of before the S function process and the P function process and after the S function process and the P function process in the non-linear function process (F).
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data,
- wherein the data processing unit comprises:
- a first input port;
- a second input port;
- a first output port;
- a second output port;
- a non-linear transformation unit for performing data encryption and data decryption using same algorithm;
- a first input normal data transformation unit for transforming data input to the first input port;
- and
- a second output inverse data transformation unit for inputting data output from the second output port and performing an inverse transformation of a transformation by the first input normal data transformation unit.
A data transformation apparatus having a data processing unit for inputting key data and performing at least one of encryption of data and decryption of data, and a key generating unit for generating key data to be used by the data processing unit and supplying the key data to the data processing unit,
- wherein the data processing unit comprises a non-linear function unit (F) for performing a non-linear transformation on data to be transformed, and
- wherein the key generating unit processes the key data to be supplied to the non-linear function unit (F), supplies a processed key data to make an operation with data to a part other than the non-linear function unit (F) in the data processing unit.
A data transformation method for executing a data processing process of inputting key data and performing at least one of encryption of data and decryption of data, and a key generating process of generating key data which is used by the data processing process and supplying the key data to the data processing process,
- wherein the data processing process comprises a non-linear function process (F) for performing a non-linear transformation of data to be transformed, and
- wherein the key generating process processes the key data to be supplied to the non-linear function process (F), supplies a processed key data to make calculate data to a part other than the non-linear function process (F) in the data processing process.
Dependencies are inferred from the claim text.