WO2001067425A1 - Systeme de chiffrage de blocs utilisant la conversion auxiliaire - Google Patents

Systeme de chiffrage de blocs utilisant la conversion auxiliaire Download PDF

Info

Publication number
WO2001067425A1
WO2001067425A1 PCT/JP2001/001796 JP0101796W WO0167425A1 WO 2001067425 A1 WO2001067425 A1 WO 2001067425A1 JP 0101796 W JP0101796 W JP 0101796W WO 0167425 A1 WO0167425 A1 WO 0167425A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
key
conversion
bit
unit
Prior art date
Application number
PCT/JP2001/001796
Other languages
English (en)
French (fr)
Inventor
Mitsuru Matsui
Toshio Tokita
Junko Nakajima
Masayuki Kanda
Shiho Moriai
Kazumaro Aoki
Original Assignee
Mitsubishi Denki Kabushiki Kaisha
Nippon Telegraph And Telephone Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to AU41058/01A priority Critical patent/AU767323B2/en
Priority to KR10-2004-7008596A priority patent/KR100465071B1/ko
Priority to AT01912172T priority patent/ATE545991T1/de
Priority to KR10-2004-7008607A priority patent/KR100465075B1/ko
Priority to DK06010074T priority patent/DK1686720T3/da
Priority to KR10-2004-7008598A priority patent/KR100468338B1/ko
Priority to KR10-2004-7008602A priority patent/KR100465072B1/ko
Priority to EP01912172A priority patent/EP1193665B8/en
Priority to DK06010077T priority patent/DK1689114T3/da
Priority to ES01912172T priority patent/ES2382454T3/es
Priority to JP2001565161A priority patent/JP4127472B2/ja
Priority to DK01912172.2T priority patent/DK1193665T3/da
Priority to KR10-2004-7008595A priority patent/KR100465070B1/ko
Priority to MXPA01011323A priority patent/MXPA01011323A/es
Application filed by Mitsubishi Denki Kabushiki Kaisha, Nippon Telegraph And Telephone Corporation filed Critical Mitsubishi Denki Kabushiki Kaisha
Priority to KR10-2004-7008606A priority patent/KR100465074B1/ko
Priority to DK06010073T priority patent/DK1686719T3/da
Priority to CA002373432A priority patent/CA2373432C/en
Priority to US09/959,853 priority patent/US7864950B2/en
Priority to KR10-2004-7008605A priority patent/KR100465073B1/ko
Publication of WO2001067425A1 publication Critical patent/WO2001067425A1/ja
Priority to NO20015461A priority patent/NO333209B1/no
Priority to AU2003213312A priority patent/AU2003213312C1/en
Priority to AU2003213317A priority patent/AU2003213317B2/en
Priority to AU2003213315A priority patent/AU2003213315B2/en
Priority to AU2003213318A priority patent/AU2003213318B2/en
Priority to US11/260,111 priority patent/US7697684B2/en
Priority to US11/260,126 priority patent/US7760871B2/en
Priority to US11/260,129 priority patent/US7822196B2/en
Priority to US11/260,110 priority patent/US7760870B2/en

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • Computer-readable recording medium storing a program to be executed by a block cipher device using assistive conversion
  • the present invention relates to a data conversion device, a data conversion method, and a recording medium on which a data conversion method for encrypting and decrypting digital data, spreading data, and the like for protecting digital information in information communication and the like.
  • Figure 25 is a diagram showing the cryptographic functions used in the conventional DES ciphers described in “Modern Cryptography Theory” (The Institute of Electronics, Information and Communication Engineers, published on January 15, 1997, page 46). It is.
  • FIG. 25 shows eight S boxes. Each of these eight S boxes is a different table. Each table outputs 4-bit output data from 6-bit input data.
  • Figure 26 shows the non-linear conversion function described in “Specificationof E 2-a 1 28-bit B lock C ipherJ FIG.
  • each S function section is provided with eight S boxes.
  • a plurality of S boxes are provided. Ah In different ciphers, different tables are prepared, so the storage capacity increases compared to using one S-box. In another cipher, only one S-box is used. There is a problem of lowering.
  • the encryption unit and the decoding unit have the same configuration.
  • the encryption unit and the decoding unit have the same configuration.
  • a complicated operation was required to generate a more secure expanded key.
  • the number of bits of key data input as a value had to be constant.
  • the present invention makes the circuits for encryption and decryption the same, reduces the circuit scale, program size, and memory capacity used for nonlinear function calculation, and generates an expanded key with a simple configuration.
  • the purpose is to provide a system that can generate it. Disclosure of the invention
  • a data conversion device is a data conversion device including a data processing unit that receives key data and performs at least one of data encryption and data conversion.
  • the data processing unit divides data to be subjected to data conversion into first data (L) and second data (R) and performs data conversion,
  • the data processing unit includes: A data normal conversion unit (FL) for converting the first data (L) and a data reverse conversion unit (FL) for converting the second data (R) in the reverse conversion to the conversion of the data normal conversion unit (FL). FL— 1 ) and
  • the data processing unit has a first input, a second input, a first output, and a second output,
  • the data normal conversion unit (F L) outputs the converted data to a first input of the data processing unit
  • the data inversion unit (F L ⁇ ) converts data output from the second output of the data processing unit and outputs the converted data.
  • the data processing unit has a first input, a second input, a first output, and a second output,
  • the data normal conversion unit (F L) outputs the converted data to a second input of the data processing unit
  • the data conversion unit (FL-) converts the data output from the first output of the data processing unit and outputs the converted data.
  • the data conversion device according to the present invention A data conversion device having a data processing unit for performing at least one of data decoding and data decoding.
  • the data processing unit includes a non-linear conversion unit that performs non-linear conversion of data.
  • a part of the data to be converted is input as the first partial data, the first partial data is converted using the conversion table T which converts the value of the input data to another value and outputs the converted data, and converts the converted data.
  • Data of at least another part of the data to be converted is input as the second partial data, the second partial data is converted using the conversion using the conversion table T and the second partial operation, and the converted data is converted.
  • a second conversion unit (s 2 ) that outputs
  • the data processing unit further includes:
  • a part of the data to be converted that is different from the first partial data and the second partial data is input as the third partial data, and a part of the data that is different from the first partial data, the second partial data, and the third partial data is input.
  • the conversion using the conversion table T and the second partial operation of the second conversion unit (s 2 ) are different from the third partial operation and the fourth partial operation, respectively. by the use operation, wherein the third partial data and the fourth partial data converted respectively, and a third conversion unit (s 3) and the fourth conversion unit and outputs the converted data (s 4)
  • the data conversion device receives the key data and In a data conversion device provided with a data processing unit for performing either data encryption or data decryption,
  • the data processing unit inputs the data to be converted, regards the input data as an element of a certain field (fieId), converts the data using an inverse element circuit using the subfield, and outputs the converted data.
  • a sub-body conversion unit converts the data to be converted, regards the input data as an element of a certain field (fieId), converts the data using an inverse element circuit using the subfield, and outputs the converted data.
  • the data on GF ( 2N ), which is converted to at least one of the former stage and the latter stage of the subfield conversion unit, is regarded as a source of GF (2) n with a natural correspondence, and the vector on GF (2) is It is characterized by having an affine transformation unit for the space GF (2) n .
  • X X for N (N is an even number) bits of data X. + ⁇ X, ( ⁇ 0 , ⁇ ⁇ : element of the subfield, ⁇ : element of the original field)
  • Yi 1 / (X.
  • the data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data conversion;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • the data processing unit includes a multi-stage nonlinear data conversion unit connected to a plurality of stages for performing an nonlinear conversion by inputting an expanded key for each stage,
  • the key generation unit may generate at least one of key data and data dependent on key data generated from the key data when generating an expanded key to be supplied to each stage of the plurality of stages of nonlinear data conversion units.
  • a key shift unit that generates
  • the key shift unit The key shift unit,
  • a cyclic shift register that performs a cyclic shift of (Z i + 1 — Zi) bits (B bits) in one operation;
  • the cyclic shift register is a circuit that performs a cyclic shift of Z i + 1 — Zi bits (B bits) in one clock cycle of an operating clock supplied to operate the cyclic shift register. .
  • a data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data decryption;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • the data processing unit includes a multi-stage nonlinear data conversion unit connected to a plurality of stages for performing an nonlinear conversion by inputting an expanded key for each stage,
  • the key generation unit cyclically shifts certain key data by a predetermined number of bits (B bits) in order to generate an extended key to be supplied to each stage of the plurality of stages of nonlinear data conversion units.
  • B bits a predetermined number of bits
  • the key shift unit does not generate an expanded key by ignoring some of the data cyclically shifted by B bits in order, and generates an expanded key from the remaining data.
  • a data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data decryption;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • a data conversion device provided with
  • the key generation unit includes:
  • a first G-bit key conversion unit that inputs and converts G-bit G-bit key data and outputs first G-bit conversion key data of G bits;
  • the second G-bit that receives the first G-bit conversion key data output from the first G-bit key conversion unit, converts it, and outputs the G-bit second G-bit conversion key data Conversion part and
  • the key generation unit receives the G-bit key data K
  • the G-bit key data K is input to the first G-bit key conversion unit, converted, and output by the first G-bit key conversion unit. And outputs the converted first G-bit conversion key data as converted G-bit key data.
  • the key generation unit receives the 2 G-bit key data K
  • the G-bit key data generated by generating the G-bit key data from the 2 G-bit key data K is input to the first G-bit key conversion unit. And outputs the first G-bit conversion key data 1 ⁇ , and inputs the first G-bit conversion key data to the second G-bit conversion unit and converts it to obtain the second G-bit conversion key data. and outputs the converted ⁇ data kappa 2, the first G-bit transformation key data output by the first G-bit key transformation unit kappa: a second G-bit output by the second G-bit transformation unit
  • the conversion key data 2 is concatenated and output as converted 2 G-bit key data (Ki, K 2 ).
  • the first G-bit key conversion unit
  • a two-stage nonlinear data converter for nonlinearly transforming G-bit key data, and G-bit key data in the middle of conversion output from the second-stage nonlinear data converter;
  • a logical operation unit that performs a logical operation on the G-bit key data input by the first G-bit key conversion unit;
  • the key generation unit further includes a bit length conversion unit that converts the Q-bit key data into 2 G-bit key data when Q-bit (G ⁇ Q ⁇ 2G) key data is input.
  • a data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data decryption;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • a key function part that performs a logical operation on the data to be converted and the key data; an S function part that replaces the data that is to be converted with another data;
  • a data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data decryption;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • a data conversion device provided with
  • a key function part that performs logical operation on the data to be converted and the key data; an s function part that replaces and converts the data that is to be converted with other data;
  • the non-linear function part (F) is characterized in that the key function part is arranged either before or after both the S function part and the P function part.
  • the S function part is
  • a part of the data to be converted is input as the first partial data, the first partial data is converted using the conversion table T which converts the value of the input data to another value and outputs the converted data, and converts the converted data.
  • Data of at least another part of the data to be converted is input as the second partial data, and the second partial data is converted and converted using the conversion table T and the second partial operation.
  • Second conversion unit that outputs data
  • a data conversion device is a data conversion device including a data processing unit that performs at least one of data encryption and data decryption.
  • the P function part inputs eight 4 ⁇ ( ⁇ is an integer of 1 or more) bit data of Z l , ⁇ 2 , ⁇ ⁇ ⁇ , ⁇ 8 ,
  • a cyclic circuit that performs a cyclic shift on U x ,
  • a data conversion method according to the present invention is directed to a data conversion method for executing data processing of inputting key data and performing at least one of data encryption and data decryption.
  • the above data processing divides the data to be converted into first data (L) and second data (R),
  • the data processing includes a data normal conversion processing (F L) for converting the first data (L),
  • the data reverse conversion process (FL- 1 ) which performs the reverse conversion of the second data (R) on the data normal conversion process (FL)
  • the data conversion method according to the present invention includes the steps of: In a data conversion method of performing data processing of performing data conversion of either data encryption or data decryption,
  • the data processing includes a non-linear conversion process for non-linearly converting data.
  • a part of the data to be converted is input as the first partial data
  • the first partial data is converted using the conversion table T which converts the value of the input data to another value and outputs the converted data, and converts the converted data.
  • the first conversion process () to output
  • a data conversion method is directed to a data conversion method for executing data processing of inputting key data and performing at least one of data encryption and data decryption.
  • a part that inputs data to be converted regards the input data as an element of a certain field (iie 1d), converts the input data using an inverse element circuit using the partial field, and outputs the converted data Body conversion processing,
  • the data on GF ( 2n ), which is converted to at least one of the pre-processing and post-processing of the above-mentioned subfield conversion processing, is regarded as a natural element of GF (2) n , and the data on GF (2) It is characterized by having one of the affine transformation processing of the beta space GF (2) n .
  • the data conversion method according to the present invention is a data processing method for inputting key data and performing at least one of data encryption and data decryption.
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • the data processing includes a multi-stage nonlinear data conversion process that is connected in multiple stages and performs nonlinear conversion by inputting an expanded key for each stage.
  • Z i + is obtained by the cyclic shift processing.
  • Z i + 1 bit cyclic tour Kai shift processing to shift the given key data by operating I times IX (Z i + 1 _Zi) bit ( I XB bits) to perform a cyclic shift to generate key data that is Z i +2 bits cyclically shifted by the cyclic shift processing.
  • a data conversion method includes: a data processing of inputting key data and performing at least one of data encryption and data decryption;
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • the data processing includes a multi-stage nonlinear data conversion process that is connected in multiple stages and performs nonlinear conversion by inputting an expanded key for each stage.
  • a data conversion method includes: a data processing of inputting key data and performing at least one of data encryption and data decryption;
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • the key generation process is as follows:
  • the second G-bit that receives the first G-bit conversion key data output from the first G-bit key conversion process, converts it, and outputs the G-bit second G-bit conversion key data Conversion process and
  • the key generation unit receives the G-bit key data K
  • the G-bit key data K is input to the first G-bit key conversion unit, converted, and output by the first G-bit key conversion process. And outputs the converted first G-bit converted key data 1 ⁇ as converted G-bit key data.
  • a data conversion method includes: a data processing of inputting key data and performing at least one of data conversion and data conversion;
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • Key function processing for performing logical operation on data to be subjected to data conversion and key data; S function processing for replacing data for data conversion with other data; P function processing that performs logical operation between data to be converted and
  • the non-linear function processing (F) is characterized in that the key function is operated between the S function processing and the P function processing.
  • a data conversion method according to the present invention includes: a data processing of inputting key data and performing at least one of data encryption and data decryption;
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • the nonlinear function processing (F) is characterized in that the key function processing is operated either before or after both the S function processing and the P function processing.
  • a data conversion device is a data conversion device including a data processing unit that inputs key data and performs at least one of data encryption and data conversion.
  • the data processing unit includes:
  • a first input data normal conversion unit for converting data input to the first input unit
  • a second output data inverse conversion unit that receives data output from the second output unit and performs a conversion reverse to the conversion of the first input data normal conversion unit;
  • the first input data and the second input data are non-linearly converted using the encryption key data to generate first converted data and second converted data, and convert the first converted data into the first converted data.
  • Output from the output unit is non-linearly converted using the encryption key data to generate first converted data and second converted data, and convert the first converted data into the first converted data.
  • the first conversion data is input from the second input unit,
  • the second converted data is input from a first input unit, the first converted data and the second converted data are non-linearly converted using the decryption key data, and the first output data and the second output Generate data and
  • the first input data and the second output data are the same, and the algorithm is such that the second input data and the first output data are the same.
  • the data processing unit further includes: A second input data normal conversion unit that converts data input to the second input unit;
  • a data conversion device includes: a data processing unit that inputs key data and performs at least one of data encryption and data decryption;
  • a key generation unit that generates key data used by the data processing unit and supplies the key data to the data processing unit;
  • the data processing unit includes a non-linear function unit (F) for performing non-linear conversion of data to be subjected to data conversion,
  • F non-linear function unit
  • a data conversion method includes a data processing of inputting key data and performing at least one of data conversion of data encryption and data decryption;
  • Key generation processing for generating key data used in the data processing and supplying the key data to the data processing
  • the data processing includes a non-linear function processing (F) for performing non-linear conversion of data to be subjected to data conversion
  • the key generation process involves processing key data to be supplied to the non-linear function process (F), supplying the processed key data to a process other than the non-linear function process (F) in the data process, and calculating the data.
  • the present invention is a computer-readable recording medium recording a program for causing a computer to execute the data conversion method.
  • the present invention is also a program for causing a computer to execute the data conversion method.
  • FIG. 1 is a diagram showing an encryption data conversion device 100 and a decryption data conversion device 400.
  • FIG. 2 is an explanatory diagram of symbols and symbols.
  • FIG. 3 is a configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 4 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 5 is a configuration diagram of the data normal conversion unit (FL) 25 1.
  • Figure 6 shows the configuration of the data inverse converter (FL-271).
  • FIG. 7 is a diagram illustrating a part of a conventional encryption unit and a part of a decryption unit.
  • FIG. 8 is a diagram showing a part of an encryption unit 200 and a decryption unit 500.
  • Figure 9 is a diagram showing a data forward conversion unit (FL) 25 1 and a data inverse conversion unit (FL-271) placed in point symmetry.
  • FIG. 10 is a diagram showing a relationship between a point-symmetric data forward conversion unit (FL) and a data inverse conversion unit (FL ′ 1 ).
  • FIG. 11 is a diagram showing a nonlinear function part F.
  • FIG. 12 is a configuration diagram of the S-box first conversion unit 13 and the S-box second conversion unit 14.
  • FIG. 13 is a configuration diagram of the S-box converter 21.
  • FIG. 14 is a configuration diagram of the linear conversion unit 85.
  • FIG. 15 is a configuration diagram of the linear conversion unit 87.
  • FIG. 16 is a configuration diagram of the key generation unit 300 or the key generation unit 600.
  • FIG. 17 is an explanatory diagram of the operation of the bit length converter 310.
  • Figure 18 shows the configuration of shift register A341.
  • FIG. 19 is a configuration diagram of a control table of the shift control section 345.
  • FIG. 20 is an explanatory diagram of the operation of shift register A 341 and shift register B 342.
  • Figure 21 shows the correspondence between shift register A 341 and shift register B 342 and the expanded key.
  • FIG. 22 is an explanatory diagram of the operation of the shift register A 341 to the shift register D 344.
  • Figure 23 shows the correspondence between shift register A 341 to shift register D 344 and the expanded key.
  • FIG. 24 is a diagram showing a computer in which the encryption data converter 100 and the decryption data converter 400 are mounted.
  • Figure 25 shows the configuration of a conventional DES cryptographic function.
  • FIG. 26 is a diagram showing a nonlinear function of the conventional 128-bit block cipher E2.
  • FIG. 27 is a diagram illustrating another example of the S-box conversion unit.
  • FIG. 28 is a diagram showing a non-linear function part F using the S box first to fourth conversion parts.
  • FIG. 29 is a diagram in which the arrangement of the key function unit 25 is changed.
  • FIG. 30 is another diagram in which the arrangement of the key function unit 25 is changed.
  • FIG. 31 is another configuration diagram of the P function unit 30.
  • FIG. 32 is another configuration diagram of the P function unit 30.
  • FIG. 33 is a diagram showing the configuration and operation of S1 to S4 in FIG.
  • Figure 34 is an explanatory diagram of non-existence proof of an equivalent key.
  • Figure 35 is an explanatory diagram of non-existence proof of the equivalent key.
  • FIG. 36 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 37 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 38 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 39 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 40 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 41 is another configuration diagram of the encryption unit 200 or the decryption unit 500.
  • FIG. 42 is a diagram showing a case where FIG. 39 and FIG. 40 are combined.
  • FIG. 43 is a configuration diagram when the non-linear function unit F shown in FIG. 28 is used for the encryption unit 200 or the decryption unit 500 shown in FIG.
  • FIG. 44 is a diagram illustrating a case where a non-linear function part F ′ obtained by removing the key function part 25 from the non-linear function part F illustrated in FIG. 43 is used.
  • FIG. 45 is a diagram showing a case in which the operation of the white Jung extended key is further performed with the extended key in the configuration of FIG. 44.
  • Figure 46 shows the case where the nonlinear function part F has the configuration shown in Figure 29.
  • Figure 47 shows that when the nonlinear function part F has the configuration shown in Fig. 30, the key function part 25 is deleted from the nonlinear function part F, and the expanded key k, which has been nonlinearly transformed, is replaced by the XOR The figure which shows the case where it supplies to the circuit 298.
  • FIG. 1 is a diagram showing an encryption data converter 100 and a decryption data converter 400 of this embodiment.
  • the encryption data conversion device 100 is, for example, an encryption device that inputs a 128-bit plaintext and outputs a 128-bit ciphertext.
  • the decryption data converter 400 is a decryption device that inputs a 128-bit ciphertext and outputs a 128-bit plaintext.
  • the encryption data converter 100 is composed of an encryption unit 200 and a key generation unit 300.
  • the encryption unit 2000 is an encryption data processing unit that performs plaintext encryption.
  • the key generator 300 inputs the 128-bit, 192-bit, or 256-bit key data, and expands a plurality (n) of 64 bits or 128 bits using the constant Vi. A key is generated and supplied to the encryption unit 200.
  • the data conversion device for decryption 400 includes a decryption unit 500 and a key generation unit 600.
  • the decryption unit 500 is a decryption data processing unit that inputs an encrypted text and decrypts the encrypted text.
  • the key generation unit 600 is the same as or similar to the key generation unit 300 described above. The same unit can be used for the encryption unit 2000 and the decryption unit 500. In the figure, the encryption unit 200 and the decryption unit 500 are shown separately. , One circuit or one program. Similarly, the key generation unit 300 and the key generation unit 600 can be shared by one circuit or one program. That is, the same data conversion device 100 and the same data conversion device 400 can be shared by the same circuit or the same program.
  • FIG. 2 shows the meaning of symbols used in the following figures and explanations.
  • the left data is referred to as left data L
  • the right data is referred to as right data R in the figures.
  • non-linear The data to be input to the shape data converters 210, 220, 230, 240 are called input data
  • the data for the nonlinear data converters 210, 220, 230, 240 internal data is referred to as intermediate data, it will be referred to as the data output from the non-linear data transformation unit 2 1 0, 2 2 0 2 3 0, 24 0 and output data 0
  • FIG. 3 is a diagram illustrating an example of the encryption unit 200 or the decryption unit 500.
  • FIG. 3 shows a case where a six-stage nonlinear data converter 210, a six-stage nonlinear data converter 220, and a six-stage nonlinear data converter 230 are cascaded. Between the six-stage nonlinear data converter 210 and the six-stage nonlinear data converter 220, a data forward converter (FL) 251 and a data inverse converter (FL-271) are provided. In addition, between the six-stage nonlinear data converter 220 and the six-stage nonlinear data converter 230, there are a data forward converter (FL) 253 and a data inverse converter (FL- 1).
  • FL data forward converter
  • FL-271 data inverse converter
  • the two-stage nonlinear data converter 210 is provided with a six-stage nonlinear data converter.
  • one nonlinear data converter 280 is It is composed of a non-linear function part F and an XOR (exclusive OR) circuit 290.
  • XOR exclusive OR
  • the non-linear data conversion unit 210 is configured to output any two right input data R. And the left input data L Q. Is subjected to a first non-linear conversion using a first expanded key l ⁇ , and the output data subjected to the first non-linear conversion and the right input data R described above.
  • a first non-linear data converter 280 that outputs an exclusive OR of the input data as first left intermediate data and outputs the left input data L Q as first right intermediate data;
  • the intermediate data is subjected to a second non-linear transformation using the second expanded key k 2 , and the exclusive-OR of the output data subjected to the second non-linear transformation and the first right intermediate data 1 ⁇ is calculated as a second non-linear transformation.
  • the first a left intermediate data the second right intermediate data a second example Bei a non-linear data transformation unit 2 8 1 for outputting as R 2
  • a first non-linear data transformation unit 28 from 0 cascaded non-linear data transformation unit 2 8 5 sixth, the final right intermediate data R 6 and the left intermediate data L 6 is to output data after conversion.
  • a data forward conversion unit (FL) 255, a data reverse conversion unit (FL- 1 ) 275, and a six-stage nonlinear data conversion unit 240 are added to the encryption unit 200 of FIG.
  • the figure shows a case where conversion is performed by a total of 24 stages of nonlinear data converters.
  • FIG. 5 is a diagram showing the data normal conversion unit (FL) 251.
  • the input data of the data normal conversion unit (FL) 251 is divided into left input data 51 and right input data 52, and after performing a logical operation, left output data 60 and right output data 6 1 shows the case where output data is created.
  • the left input data 51 is ANDed with the expanded key 53 in the AND circuit 54, and thereafter, in the 1-bit cyclic left shift section 55, a 1-bit cyclic shift to the left (together with the circular shift) is performed. Is performed.
  • the exclusive OR with the right input data 52 is calculated by the XOR circuit 56.
  • the output of the XOR circuit 56 becomes the right output data 61, and the OR circuit 58 adds the logical sum with the expanded key 57, and the result is further input to the XOR circuit 59 to output the left input data 5 An exclusive OR operation with 1 is performed, and the left output data 60 is obtained.
  • FIG. 6 is a diagram showing the data inverse conversion unit (F L- 1 ) 271.
  • Figure 6 shows a case where input data is divided into left input data 71 and right input data 72, and after performing logical operation, output data is created from left output data 80 and right output data 81. ing.
  • the right input data 72 is ORed with the expanded key 73 in the OR circuit 74. Then, the exclusive OR with the left input data 71 is calculated by the first circuit 75. As a result, the output from the XOR circuit 75 becomes left output data 80, and the logical product with the expanded key 76 is obtained in the AND circuit 77, and the left direction is output in the 1-bit cyclic left shift unit 78. Is shifted left by one bit, and the result is further XORed with the right input data 72 in the XOR circuit 79 to become the right output data 81 .
  • the data normal conversion unit (FL) 251 shown in FIG. 5 and the data inverse conversion unit (FL- 1 ) 271 shown in FIG. 6 perform operations in the opposite direction. Therefore, by making the output data Y in FIG. 5 into the input data Y in FIG. 6 under the same expanded key, the input data in FIG.
  • a relationship in which one input data can be obtained as the other output data is referred to as a relationship between a forward transform and an inverse transform.
  • the data normal conversion unit (FL) 25 1 and the data reverse conversion unit (FL 1 ) 27 1 are circuits that perform such normal conversion and reverse conversion.
  • the 1-bit cyclic left shift unit 55 in FIG. 5 and the 1-bit cyclic left shift unit 78 in FIG. 6 both shift left, but both may shift right.
  • the data normal conversion unit (FL) 251 and the data reverse conversion unit (FL- 1 ) 271 may have other configurations as long as they perform normal conversion and reverse conversion. For example, the number of cyclic shifts may be changed.
  • an AND circuit containing not, an OR circuit containing not, and an XOR circuit containing not may be further added. That is, if the AND circuit containing not, the OR circuit containing not, and the XOR circuit containing not are represented as andn, orn, and xorn, respectively, the definitions are as follows. xandny: (notx) andy
  • Some recent CPUs have an d, or, and xor instructions that also include not. These instructions can be executed at a similar cost as the and, or, and xor instructions.
  • FIG. 7 shows a conventional encryption unit 201 and a conventional decryption unit 501.
  • the conventional encryption unit 201 two data normal conversion units FL are provided. For this reason, in order to perform the reverse operation, two decoding units FL- 1 must be provided in the decoding unit. Therefore, the configurations of the encryption unit and the decryption unit generally differ, and the encryption unit and the decryption unit cannot be formed in the same circuit.
  • the data normal conversion unit (FL) 251 and the data reverse conversion unit (FL-271) are arranged side by side. Therefore, decoding can be performed with exactly the same configuration in the decoding unit 500.
  • the right data R is converted by the data normal conversion unit (FL) 251, to obtain the left data L '
  • the left data L is 'when obtaining the left data L' inverse data varying section (FL- 1) 2 7 1
  • right data is converted by the R by'll by inputting data inverse converting portion (FL- 1) 2 7 1
  • the right data R can be obtained, and the left data L can be obtained by inputting the right data R 'to the data normal conversion unit (FL) 251.
  • the encryption unit 200 and the decryption unit 500 can be realized with exactly the same configuration, and the encryption unit 200 and the decryption unit 500 can be used in common.
  • Figure 9 shows the data normal conversion unit (FL) 251 and the data reverse conversion unit (FL- 1 )
  • FIG. 10 shows the correspondence between the data normal conversion unit (FL) and the data inverse conversion unit (FL- 1 ) located at point-symmetric positions.
  • the data normal conversion unit (FL) 25 1 and the data inverse conversion unit (FL- 1 ) 273 are point-symmetrical with the six-stage nonlinear data conversion unit 220 as the center. It is shown that it is arranged at the position of.
  • FIG. 36 shows a case where an encryption unit 200 is configured by using a six-stage nonlinear data converter 210, a six-stage nonlinear data converter 220, and a six-stage nonlinear data converter 230. I have.
  • the six-stage nonlinear data converter 210, the six-stage nonlinear data converter 220, and the six-stage nonlinear data converter 230 are circuits that can be used for both encryption and decryption.
  • the six-stage nonlinear data converter 210, data forward converter (FL) 250, and data inverse converter (FL- 1 ) 271 constitute a forward / reverse data converter 211.
  • the forward / reverse data conversion unit refers to a circuit that can be used for both encryption and decryption. That is, by using one output data as the other input data, the forward / reverse data converter performs one normal conversion and one inverse conversion that can obtain one input data as the other output data. Circuit.
  • the forward / reverse data converter 2 21 is composed of 5 1 and the data reverse converter (FL-273).
  • a six-stage nonlinear data conversion unit 230, a data normal conversion unit (FL) 253, and a data reverse conversion unit (FL-275) constitute a normal / reverse data conversion unit 231.
  • the forward / reverse data converter 2 11 1, the forward / reverse data converter 2 21, and the forward / reverse data converter 2 31 are connected in tandem to form an encryption unit 200.
  • This encryption unit 2000 can also be used as the decryption unit 500.
  • the nonlinear data conversion unit 1 210 is a circuit that can be used for both encryption and decryption.
  • the non-linear data converter 1 210, the data normal converter (FL) 250 and the data inverse converter (FL-273) constitute a normal / inverse data converter 1 211.
  • the six-stage nonlinear data converter 220, the six-stage nonlinear data converter 230, the data forward converter (FL) 253, and the data inverse converter (FL- 1 ) 273 are non-linear. If the data conversion unit is regarded as 1 220, the non-linear data conversion unit 1 220 and the data normal conversion unit (FL) 251 and the data reverse conversion unit (FL- 1 ) 275 perform normal / reverse data conversion. Part 1 2 2 1 is constituted.
  • the forward / reverse data converter 1 2 1 1 and the forward / reverse data converter 1 2 2 1 can also be used for the decoding unit 500.
  • the nonlinear data conversion unit 220 Circuit that can be used for both is there.
  • non-linear data conversion section 2 210 the data normal conversion section (FL) 250 and the data reverse conversion section (FL— 1 ) 2 75 constitute the forward / reverse data conversion section 2 2 1 1 I have.
  • the forward / reverse data converter 2 211 can also be used for the decryption unit 500
  • the encryption unit 200 or the decryption unit 500 is configured by cascading a plurality of forward / reverse data converters. By doing so, it can be configured.
  • the encryption / recovery unit 2000 or the decryption unit 500 / can include a forward / reverse data conversion unit in the forward / reverse data conversion unit, thereby forming a hierarchy of the forward / reverse data conversion unit.
  • FIG. 37 illustrates an example in which the encryption unit 200 and the decryption unit 500 having the six-stage nonlinear data conversion unit 210 have the same configuration.
  • the six-stage nonlinear data converter 210 of FIG. 37 has an even-number nonlinear data converter 280 as shown in FIGS.
  • the data A is converted into data A 'by the first input data normal conversion unit 256, and is input to the first input unit 261, and the data A' input from the first input unit 261 is It is output as data A from the first output unit 263.
  • the data B input from the second input unit 262 is output as data from the second output unit 264.
  • the data 1 output from the second output unit 264 is converted by the second output data inverse conversion unit 279 and output as data ′.
  • the data output from the first output unit 263 of the encryption unit 200 is input to the second input unit 262 of the decryption unit 500 as data A.
  • the data output from the second output data reverse conversion unit 279 of the encryption unit 200 is transmitted to the first input data normal conversion unit 258 of the decryption unit 500. 'Input and output as data.
  • the non-linear data converter 210 inputs data and outputs data B. Further, the non-linear data converter 210 inputs data and outputs data A ′. The second output data inverse converter 279 inputs the data A, and outputs the data A.
  • the odd-numbered stage nonlinear data converter 219 has an odd-numbered stage nonlinear data converter 280. Therefore, the data A ′ input from the first input unit 26 1 is output as data from the second output unit 264, converted by the second output data inverse conversion unit 27 9, and the data ⁇ ′ is output. Is output as The data ⁇ input from the second input unit 262 is output as data from the first output unit 263.
  • Data B 1 output from the first output portion 2 6 3 of the encryption unit 2 0 0 is input as data to the second input section 2 6 2 decoding unit 5 0 0.
  • the data A "output from the second output data inverse conversion unit 279 of the encryption unit 200 is input as the data ⁇ 'of the decryption unit 500, and the first input data normal conversion unit 257 Is input to
  • the encryption unit 200 and the decryption unit 500 have the same configuration, and can perform encryption and decryption.
  • the second input section 262 has a second input data normal conversion section 257
  • the first output section 263 has a first output data reverse conversion section 278. The case is shown.
  • a first input data inverse converter 276 is provided in the first input unit 261
  • a second output data normal converter 259 is provided in the second output unit 264. The case is shown.
  • Figure 41 shows the input / output sections 26 1, 26 3 on the left side, and the data normal conversion section 25 6,
  • FIG. 42 shows a case where FIG. 39 and FIG. 40 are combined.
  • FIG. 37 and FIG. 39 may be combined. Further, FIG. 38 and FIG. 39 may be combined. Although not shown, the six-stage (even-numbered) non-linear data converters 210 in FIGS. 37 and 39 to FIG. 42 can be replaced by odd-numbered non-linear data converters 219. Good. 39 to 42 can also be realized by the same configuration of the encryption unit 200 and the decryption unit 500.
  • FIG. 11 is a configuration diagram of the nonlinear function unit F of the nonlinear data conversion unit 280.
  • Non-linear function part F receives F-function input data 10, performs non-linear conversion, and outputs F-function output data 40.
  • 6 4-bit F-function input data 10 has eight data points. "The data is processed as 8-bit data. Each 8-bit data is input to the eight XOR circuits 12 of the key function part 25, exclusive-ORed with the expanded key 11, and the permutation is performed in the S function part 20. After that, the P-function part 30 performs an operation on the 8-bit data by 16 XOR circuits 8 15 as shown in the figure, and outputs the 64-bit F-function output data. The output is 40.
  • the S function part 20 is provided with four S box first conversion parts 13 and four S box second conversion parts 14.
  • FIG. 12 is a diagram illustrating an implementation example of the S-box first conversion unit 13 and the S-box second conversion unit 14.
  • a conversion table T is provided inside the S-box first conversion unit 13.
  • the conversion table T stores in advance the values of 0 to 255 that are arbitrarily (randomly) associated with the values of 0 to 255, and inputs the values of 0 to 255. Output a value (0 to 255) corresponding to each value. Pull. For example, when 1 is input, 7 is output from the conversion table T.
  • the conversion table T performs non-linear conversion in consideration of safety such as bijection and whether the maximum difference probability is sufficiently small.
  • the S-box second conversion unit 14 includes the S-box first conversion unit 13 and the 1-bit cyclic left shift unit 2 2 (the “KUKUKU” in “KUKUKU 1” in the figure is a cyclic left shift , And “1” indicates one bit).
  • the 1-bit cyclic left shift unit 22 performs a 1-bit cyclic left shift on the output of the S-box first conversion unit 13. For example, when 1 is input, the S-box first conversion units 13 to 7 are output, and the 1-bit cyclic left shift units 22 to 14 are output.
  • the 1-bit cyclic right shift unit (the S box in FIG. 27 By providing ">>>>1") of the three conversion units 15, the same effect as in the case of providing a further different conversion table T can be obtained.
  • a 1-bit cyclic left shift unit (“Kuku 1” of the S-box fourth conversion unit 16 in FIG. 27) is provided for the input data y to shift the input data y first. After that, conversion may be performed using the conversion table T.
  • FIG. 28 is a diagram showing the S function unit 20 using the four S box first to fourth conversion units 13, 14, 15, and 16 shown in FIG. 27.
  • FIG. 31 shows another configuration of the P function section 30.
  • the exclusive OR with the result of the OR operation is taken by the circuit 917 and output as Z l , ⁇ 2 ′, ⁇ 3 ′, ⁇ 4 ′, and the exclusive OR from the circuit 913 A one-byte cyclic shift is performed on the left side of the operation result (in Fig.
  • the 32-bit data ⁇ 2 , ⁇ 3 , and ⁇ 4 are obtained by referring to S 5, S 6, S 7, and S 8, respectively. These are subjected to an exclusive OR operation by the circuit 933, and the operation result ⁇ is output from the circuit 933.
  • the input data y 5 8-bit, y 6, y 7, the y 8, respectively S 9, SA, SB, data Z 5 reference to 3 2-bit to SC, Z 6, Z 7, Z 8 are output, and these are subjected to an exclusive OR operation by the circuit 936, and the operation result B is output from the circuit 936.
  • the operation result B is cyclically shifted right by one byte by the circuit 937 (in FIG.
  • the operation result D is circulated upward (left) by the circuit 941 by two bytes, and the output of the circuit 939 and the exclusive OR operation are performed by the circuit 942.
  • the calculation result E is one bar in (right) by the circuit 943.
  • the circuit 944 performs an exclusive OR operation with the output of the circuit 941.
  • Output F is Z l ,, z 2 ,, ⁇ 3 of the circuit 944 ', z 4, and, the output of circuit 94 3 z 5', z 6 ', z 7', z 8, is output as.
  • S 5 and SC are logical shifts with the S box first conversion unit 13
  • S 6 and S 9 are logical shifts with the S box second conversion unit 14
  • S 7 and 3 are 3 box third conversions
  • the unit 15 and the logical shift are used, and S8 and SB are configured using the S-box fourth conversion unit 16 and the logical shift.
  • the logical shift is used to output 8-bit output data from each conversion unit to a predetermined position in the 32-bit output data, and is 0 for S5 and SA, 1 byte for SB, 1 byte for SB, and 7 and SC are set to shift left by 2 bytes, and S8 and S9 are set to shift left by 3 bytes.
  • a permutation table of 8 bits input and 32 bits output calculated to directly output a predetermined output may be prepared.
  • the S-box first conversion unit 13 and the S-box second conversion unit 14 shown in FIG. 12 are required to input eight 8-bit data in a time-division manner.
  • the conventional eight individual S boxes can be replaced with only the S box first conversion unit 13 and the S box second conversion unit 14 shown in FIG.
  • FIG. 13 is a diagram showing another example of the S box of the S function unit 20.
  • the S-box converter 21 receives 8-bit data and outputs 8-bit data.
  • the N-bit linear conversion unit 17 performs 8-bit operation.
  • the subfield conversion unit 18 performs an operation using only the 4 bits that are the elements of the Galois field GF (2 4 ).
  • the N-bit linear conversion unit 19 performs an 8-bit operation.
  • the linear conversion unit 85 of the N-bit linear conversion unit 17 is a circuit that performs a linear conversion as shown in FIG.
  • the linear conversion unit 87 is a circuit that performs a linear conversion as shown in FIG.
  • Linear transformation unit 8 5 8 performs bit conversion data (X), without the data of 8 bits obtained (X ') regarded Galois field GF (2 8), X, upper from 4 bits and lower 4 bits of data and X. ) Are regarded as elements of the subfield GF (2 4 ), and are output to the subfield conversion unit 18.
  • the subfield GF (2 underlying 4) is expressed as [1, shed, shed 2, shed 3], G and used to Element X of F (2 4 ).
  • a inverse element circuit using a configured subfield based on circuit. as the operation result of this inverse element circuit, each GF (2 4) based on the considered upper 4-bit data and the lower 4 bits of data ( Y 1 and Upsilon.) is output to the linear transformation section 8 7 as force GF (2 8) of the 8-bit original can be regarded on the data Y. from where, ⁇ ⁇ . +] is 3 ⁇ 1. above,
  • the operation speed may be reduced by operating only 4 bits, but there is an advantage that the scale of the entire circuit can be made much smaller than using an 8-bit operation element.
  • the S-box converter 21 is implemented using the sub-field converter 18, the size of the entire circuit becomes smaller and the structure becomes simpler than when a conversion table T that stores random values is used. It has the advantage that it can be used, but on the contrary, it may reduce security. Therefore, a linear transformation or an affine transformation is performed on both sides of the subfield conversion unit 18 so as to eliminate the decrease in security due to the use of the subfield conversion unit 18.
  • the subfield conversion is performed.
  • the linear transformation is performed on both sides of the unit 18, it may be provided on only one side. Alternatively, linear transformation may be performed on one side and affine transformation may be performed on the other side.
  • FIG. 29 shows the key function part 25 shown in FIG. 11, that is, the key function part 25 before the S function part 20 and the P function part 30, and the S function part 20 and the P function It is arranged after part 30.
  • FIG. 30 shows the key function unit 25 arranged between the S function unit 20 and the P function unit 30.
  • FIG. 43 is a diagram corresponding to the encrypting unit 200 or the decrypting unit 500 shown in FIG. 29 is a configuration diagram when the nonlinear function unit F shown in FIG. 28 is used.
  • FIG. 43 is a diagram corresponding to the encrypting unit 200 or the decrypting unit 500 shown in FIG. 29 is a configuration diagram when the nonlinear function unit F shown in FIG. 28 is used.
  • the left data is input to the nonlinear function part F as the F function input data 10 and the F function output data 40 is output.
  • the F function output data 40 is subjected to an exclusive OR operation with the right data, and the result becomes the left data of the next stage.
  • the left data is input to the nonlinear function part F as F function input data 10 and used as the right data of the next stage.
  • the operation of the key function part 25, the S function part 20, and the P function part 30 is performed in the non-linear function part F, so that the operation load in the non-linear function part F is large. It will be.
  • An example in which the processing load is speeded up by distributing and executing the calculation load in the nonlinear function unit F will be described below with reference to the drawings.
  • FIG. 44 shows a case where a non-linear function part F ′ obtained by removing the key function part 25 from the non-linear function part F shown in FIG. 43 is used.
  • the expanded key 1 ⁇ is the left data L in the XOR circuit 891.
  • an exclusive OR operation is performed.
  • it extended key k 2 is exclusive ORed with the right data R Q at the XOR circuit 29 7 is performed.
  • the left data is input to the non-linear function part F ′ as F function input data 10, and undergoes conversion between the S function part 20 and the P function part 30.
  • An exclusive OR operation is performed on the output of the XOR circuit 297 and the F function output data 40 in the XOR circuit 290, and the left data is output.
  • the key generation unit 300, 600 performs exclusive OR operation between enlarged keys and k 3, and outputs an expanded key + k 3 this to processed.
  • the output of XOR circuits 8 9 1 and extended key + k 3 is, exclusive OR operation Te XOR circuit 2 98 smell is performed, and outputs the right data.
  • the key generation unit 300, 60 by processing the expanded key, l ⁇ + ks, k 2 + k 4, k 3 + k 5, ⁇ ⁇ ⁇ , and generates a k 16 + k 18 outputs.
  • the key generation units 300 and 600 supply the expanded key obtained by the calibration to processing other than the non-linear function processing (F) and transmit the data. Is calculated. As a result, the same data as in the case of FIG. 43 is obtained as the left data L 18 and the right data R 18 .
  • the calculation of the S function part 20 and the P function part 30 in the non-linear function part F ' is performed.
  • the calculation with the key data can be performed outside the nonlinear function part F, that is, ⁇ 1 circuits 297, 298, and the calculation of the key function part 25 disappears from the nonlinear function part F.
  • the load on section F is distributed, enabling high-speed mounting.
  • FIG. 45 shows a case where the operation of the whitening expanded key k Wl is further performed on the configuration of FIG. 44 together with the expanded key.
  • the key generation unit performs an exclusive OR operation of a part of the white Jung expanded key kw lhigh and the first expanded key in advance (that is, the key generation unit processes the expanded key ),
  • the XOR circuit 891 is shown.
  • the key generation part is a part of the whitening expanded key k Wll .
  • the key generation unit uses a part kw 21 of the expanded white key kw 2 .
  • the exclusive OR operation of w and the expanded key k 17 is performed (that is, the key generation unit processes the expanded key), and the result is supplied to the XOR circuit 299.
  • the key generation unit performs an exclusive OR operation on the other portion kw 2high of the expanded white key and the expanded key k 18 (that is, the key generation unit processes the expanded key). To supply.
  • Fig. 46 shows the case where the nonlinear function part F has the configuration shown in Fig. 29.
  • the key function part 25 is deleted from the nonlinear function part F, and the key generation part supplies the expanded key k to the XOR circuit 298 instead.
  • Fig. 47 shows that when the non-linear function part F has the configuration as shown in Fig. 30, the key function part 25 is deleted from the non-linear function part F, and the key generation part is nonlinearly converted instead.
  • the case where the extended key k ′ P (k) is supplied to the XOR circuit 298 is shown.
  • the same operation as the operation by the P function processing is performed on the key data to generate the non-linearly converted key data, and the non-linearly converted key data is used as the key data used in the above data processing.
  • the figure shows a case where the data is supplied to a process other than the nonlinear function process (F) of the data process and is operated on. In both cases of FIGS.
  • the key function part 25 is deleted from the non-linear function part F, so the calculation load of the non-linear function part F is reduced, and the calculation load of the non-linear function part F is reduced. Since the operation of the 0 13 ⁇ 4 circuit 298 outside the nonlinear function part F can be performed, high-speed processing can be performed.
  • FIG. 16 is a configuration diagram of the key generation unit 300 (or the key generation unit 600) shown in FIG.
  • the chain generation unit 300 includes a bit length conversion unit 310, a first G-bit key conversion unit 320, a second G-bit key conversion unit 330, and a key shift unit 340. Have been.
  • the key generation unit 3 0 0, 1 key data 2 8-bit or 1 9 2-bit or 2 5 6 bits are inputted, 1 2 8-bit key data and 1 2 8-bit key data K 2 is Generated and multiple 64 bit expanded keys are output.
  • the bit length conversion unit 310 even if key data with different numbers of bits is input, conversion is performed so that the bit length of the output key data is constant. That is, the bit length converter 310 internally generates the upper 128- bit key data SK high and the lower 128- bit key data SK 1 () W internally.
  • the former is output to the first G-bit key converter 320 and the key shifter 340.
  • the latter is output to a second G-bit key conversion section 330 and a key shift section 340. Also, it outputs the 128-bit key data obtained by taking the exclusive OR of the former and the latter to the first G-bit key converter 320.
  • FIG. 17 is a diagram showing the internal operation of the bit length conversion unit 310.
  • the input key data is output as it is as the upper 128- bit key data SK high .
  • the lower 128- bit key data SKLOT is set to 0 and output.
  • the upper 128-bit data of the input key data is directly changed to the upper 128-bit linked data SK. Output as high .
  • the lower 64 bits of the input 192-bit key data and the inverted 64-bit data obtained by inverting the lower 64 bits of data are concatenated to form the lower 128 bits of the key data.
  • Key data SK lQW is generated and output.
  • the first G-bit key converter 320 receives the exclusive OR of 128- bit key data SK high and SK lQW from the bit length converter 310 , and performs a two-stage nonlinear conversion. After receiving the key data, exclusive OR is performed with the high- order 128-bit key data SK high. The data is further subjected to two-stage nonlinear conversion, and the 128-bit key data 1 ⁇ is output.
  • the key data of 128 bits output from the first G-bit key conversion unit 320 Key shift section 340 is expanded using the original key data Generate a large key.
  • the length of the key data input to the bit length conversion unit 310 is 192 bits or 256 bits
  • the 1 2 0 output from the first G-bit key conversion unit 320 is used.
  • the 8-bit key data is further input to the second G-bit key conversion unit 330, which performs an exclusive OR operation with the lower-order 128-bit key data SK low to perform a two-stage nonlinear conversion. after, and it outputs the key data K 2 1 2 8-bit.
  • the key shift unit 340 contains two 128-bit key data output from both the first G-bit key conversion unit 320 and the second G-bit key conversion unit 330.
  • the key shift unit 340 generates an extended key using both the output and the input original key data.
  • the key shift section 340 is composed of shift register A 3 4 1 and shift register B 3
  • the shift controller 345 outputs a select signal 346 to each shift register to control the operation of the shift register.
  • FIG. 18 is a diagram showing a configuration of the shift register A341.
  • the shift register A 348 has a selector A 347 having a switch group of 128 bits and a register A 348 of 128 bits.
  • the select signal 346 includes a switch signal indicating that all switches of the selector A 347 are simultaneously connected to either the A side or the B side.
  • the figure shows the case where the switch group of the selector A 347 selects A by the select signal 346.
  • the register A 348 cyclically shifts to the left by 17 bits. Shows the case.
  • the switch group connects B it indicates that register A shifts cyclically to the left by 15 bits. This 15-bit shift or 17-bit shift is performed in one clock cycle.
  • the number of shifts (15, 17) of the cyclic shift is an example, and other shifts are different. It can be any number.
  • FIG. 19 is a diagram showing a part of the control table stored in the shift control section 345.
  • This control table is a table that stores how many bits the register is shifted for each session. For example, the register A control table indicates that the shift is performed by 15 bits at the first clock. It also indicates that the data is shifted further by 15 bits at the second clock. Similarly, the third and fourth clocks are shifted by 15 bits. The fifth to eighth clocks indicate that each shift is performed by 17 bits.
  • FIG. 20 is a diagram illustrating a result of the shift control unit 345 controlling each shift register using the table illustrated in FIG. 19 when generating an expanded key from 128-bit key data. .
  • 128-bit key data Ki output from the first G-bit key conversion section 320 is set.
  • the shift register A 341 and the shift register B 342 operate according to the control table shown in FIG. In FIG. 20, the hatched portions are ignored and indicate that no output is made. Other unhatched parts are output as expanded keys as shown in Figure 21.
  • FIG. 21 is a diagram showing the correspondence between register values and extended keys.
  • FIG. 20 shows a case where a shift is performed by 15 bits every clock for four times, and a shift is performed by 17 bits every clock from the fifth clock.
  • FIG. 22 shows a case where an extended key is generated from 192-bit or 256-bit key data.
  • the upper 128- bit key data SK high input from the bit length converter 3110 is set in the shift register A341
  • the lower 128- bit key data SK10ff is set in the shift register B342 .
  • the first G-bit key conversion unit 320 sets the output of the 128-bit key data output from the first G-bit key conversion unit 320 into the shift register C 343, and the second G-bit key conversion unit 330 into the shift register D 344. shows a case of setting a 28-bit key data kappa 2 outputted from.
  • the hatched portion indicates a key that is not used as an expanded key.
  • FIG. 23 is a diagram showing the correspondence between register values and extended keys.
  • the control table in the above-described control unit also stores keys that are not used as extended keys and correspondence between the values of the registers shown in FIG. 23 and the extended keys.
  • the reason for returning the total number of shifts to the initial state as 128 bits (the number of bits in the register) is that if the next processing is performed on the register in the initial state, the next processing can be started as it is Because. Also, when performing the reverse conversion process (decryption), the process for generating the extended key starts from the same initial state. Therefore, by setting the initial state, the conversion process (encryption) is performed. ) And inverse transformation (decoding) can be performed.
  • the reason why the sum of the number of shifts is not larger than 128 bits (the number of bits of the register) is, for example, a 2-bit cyclic shift of 128 bits or less (the number of bits of the register) and 128 bits (the number of bits of the register).
  • the difference between the number of shifts is 15 bits and 30 bits.
  • the number of shifts (30 bits or 34 bits) that is an integral multiple (2 times 1) of the number of shifts (15 bits and 17 bits) at one time. I do.
  • the shift amount is only 1-bit soil for multiples of 8, for example, a CPU that has only a 1-bit shift instruction must perform higher-speed processing than a 3-bit or 5-bit shift. May be possible.
  • this shift processing is performed using hardware that can shift only one bit, high-speed processing can be applied similarly.
  • bit length conversion unit 310 In the above description of the bit length conversion unit 310, the case of inputting key data having three types of bit widths has been described. Even if key data having a bit length Q between 56 bits (2 G bits) Q (G ⁇ Q ⁇ 2 G) is input, 256 bits of key data are input using some algorithm. Key data can be decompressed to the same size as that of the key data. In other words, when chained data having a length Q between G bits and 2 Gbits is input, the bit length conversion unit 310 converts the Q bit key data into 2 Gbit key data. Can be converted.
  • ⁇ ⁇ ⁇ 0 is output for the input of ⁇ ⁇ 0, so if “at least ⁇ ⁇ 0 or AB ⁇ 0” For example, “at least ⁇ ⁇ 0 or AD ⁇ 0”. Therefore, it means that it is impossible to output the same data from SK l high and SK 2 high by two-stage nonlinear transformation, which proves that there is no equivalent key.
  • a general nonlinear transformation outputs equivalent SK1 from different SK1 and SK2, that is, there is a possibility that an equivalent key exists.
  • the two-stage nonlinear transformation described in Sec. Can prove that there is no equivalent key.
  • FIG. 24 is a diagram illustrating a computer on which the data conversion device for encryption 100 or the data conversion device for decryption 400 is mounted.
  • the data converter for encryption 100 or the data converter for Z and decryption 400 is connected to the bus as a print circuit board.
  • This print circuit board is provided with a CPU, a memory, and a logic circuit element.
  • the encryption data conversion device 100 or the decryption data conversion device 400 can be realized by using all hardware. Further, the data conversion device for encryption 100 or the data conversion device for decryption 400 can also be realized as a data conversion method using software. That is, the above-described operation can be performed using a program stored in a magnetic disk device or a flexible disk device. Alternatively, although not shown, hardware and software may be combined to realize the above-described operation. Also, it is not necessary to realize all the operations described above with a single computer, the force S (not shown), and the above-described distributed system such as a server and a client, or a host computer and a terminal computer. Operation may be achieved.
  • bit lengths of the plaintext, ciphertext, key data, and expanded key change, the bit length of each part, each process, and each process changes according to the bit length.
  • a data normal conversion unit (FL) 251 and a data reverse conversion unit (FL- 1 ) 271 are provided so that encryption and decryption can be performed by the same algorithm. Therefore, the encryption unit 200 and the decryption unit 500 can be used in combination.
  • the configuration is simplified. effective.
  • the configuration is simplified, and the linear conversion section 85 and the linear conversion section 87 are provided. Safety is improved even when the converter 18 is used. You.
  • the shift control unit 345 operates the shift register an integer number of times, so that the number of non-constant shifts of only 15 bits ⁇ 17 bits (for example, 30 bits or The key data can be shifted using (3 4 bits), and the security can be improved. Further, according to the embodiment of the present invention, since the case where the data shifted in the shift register is not used as an extended key is provided, the security can be further improved.
  • bit length conversion section 310 even when key data having a different number of bits is input, it is converted into key data of a fixed length by bit length conversion section 310, so that flexible key generation is possible. Operations can be performed.
  • first G-bit chain transformation unit 320 since two stages of nonlinear transformation are used in first G-bit chain transformation unit 320, it can be proved that there is no equivalent key for Performance can be improved. Further, according to the embodiment of the present invention, the arrangement position of key function section 25 is changed, so that high-speed processing can be performed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Lock And Its Accessories (AREA)
  • Prostheses (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Studio Circuits (AREA)
  • Materials For Medical Uses (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Communication Control (AREA)
  • Document Processing Apparatus (AREA)
  • Complex Calculations (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Burglar Alarm Systems (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Description

明 細 書
捕助変換を用いたブロック暗号装置 タに実行させるプログラムを記録したコンピュータ読み取り可能な記録 媒体 技術分野
本発明は、 情報通信等において、 デジタル情報を保護する暗号化と復 号及びデータ拡散等のためのデータ変換装置とデータ変換方法及びデー タ変換方法を記録した記録媒体に関するものである。 背景技術
図 2 5は、 「現代暗号理論」 (社団法人電子情報通信学会、 平成 9年 1 1月 1 5日発行、 46頁) に記載された従来の DE S暗号に用いられ る暗号関数を示す図である。
図 2 5に示すように、 8個の Sボックスが設けられている。 この 8個 の Sボックスは、 それぞれ異なるテーブルである。 各テーブルは、 6ビ ットの入力データから 4ビットの出力データを出力するものである。 図 26は、 「 S p e c i f i c a t i o n o f E 2 ― a 1 28— b i t B l o c k C i p h e rJ (N i o n T e l e g r a h a n d T e l e p h o n e C o r p o r a i o n, J u n e 14, 1 9 9 8、 1 0頁) に記載された非線形変換関数を示す 図である。
図 26に示すように、 各 S関数部には、 8個の Sボックスが設けられ ている。
従来の暗号装置においては、 複数の Sボックスが設けられている。 あ る暗号では、 それぞれ異なるテーブルが用意されているため、 記憶容量 が 1つの Sボックスを使う場合に比べて増大し、 また、 別の暗号では、 1つの Sボックスしか使っていないため、 安全性が低下するという問題 がある。
また、 図 7に示すように、 暗号化部にデータ正変換部 (F L ) 2 5 0 を設けた場合には、 復号部にデータ逆変換部 (F L— 2 7 0を設けな ければ復号することができない。 データ正変換部 (F L ) 2 5 0とデー タ逆変換部 (F L— 2 7 0は、 一般には、 異なる回路であるため、 暗 号化部と復号部を同一の構成にすることができないという課題があった また、 拡大鍵を生成する場合に、 より安全性の高い拡大鍵を生成する ために複雑なオペレーションが必要であった。 また、 拡大鍵を生成する に当たり、 初期値として入力される鍵データのビット数が一定値でなけ ればならないという課題があった。
この発明は、 暗号化用と復号用の回路を同一にするとともに、 非線形 関数計算のために用いられる回路規模、 プログラムサイズ、 メモリ容量 を削減し、 拡大鍵を生成する場合に、 簡単な構成で生成できるシステム を提供することを目的とする。 発明の開示
この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部を備えたデータ変換装置において、
上記データ処理部は、 データ変換を行うデータを第 1のデータ (L ) と第 2のデータ (R ) に分割してデータ変換するとともに、
上記データ処理部は、 第 1のデータ (L ) を変換するデータ正変換部 (F L ) と、 第 2のデータ (R ) を上記データ正変換部 (F L ) の変換とは逆の変 換をするデータ逆変換部 (F L—1) と
を備えたことを特徴とする。 上記データ処理部は、 第 1の入力と第 2の入力と、 第 1の出力と第 2 の出力とを有し、
上記データ正変換部 (F L ) は、 変換したデータをデータ処理部の第 1の入力へ出力し、
上記データ逆変換部 (F L— は、 データ処理部の第 2の出力から出 力されたデータを変換して出力することを特徴とする。
上記データ処理部は、 第 1の入力と第 2の入力と、 第 1の出力と第 2 の出力とを有し、
上記データ正変換部 (F L ) は、 変換したデータをデータ処理部の第 2の入力へ出力し、
上記データ逆変換部 (F L— は、 データ処理部の第 1の出力から出 力されたデータを変換して出力することを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ 一タの喑号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部を備えたデータ変換装置において、
上記データ処理部は、 データを非線形変換する非線形変換部を備え、 非線形変換部は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Tを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換部 (s ! ) と、
変換するデータの少なくとも他の一部分のデータを第 2部分データと して入力して上記変換テーブル Tを用いた変換と第 2部分用演算とを用 いて第 2部分データを変換し、 変換したデータを出力する第 2変換部 ( s2 ) と
を備えたことを特徴とする。 上記第 1変換部 (st ) は、 変換テーブル Tにデータ yi を入力して データ S l (y i ) を出力させ、 このデータをデータ z丄 = s i (y! ) として出力し、
上記第 2変換部 (s2 ) は、 変換テーブル Tにデータ y2 を入力して データ S l (y2 ) を出力させ、 データ S l (y2 ) を巡回シフト処理 したデータ (r o t ( S l (y2 ) ) ) をデータ z2 = r o t ( s i ( y2 ) ) として出力することを特徴とする。 上記データ処理部は、 更に、
変換するデータの第 1部分データと第 2部分データとは異なる一部分 のデータを第 3部分データとして入力し、 第 1部分データと第 2部分デ 一タと第 3部分データとは異なる一部分のデータを第 4部分データとし てそれぞれ入力して、 上記変換テーブル Tを用いた変換と、 第 2変換部 (s2 ) の第 2部分用演算とはそれぞれ異なる第 3部分用演算と第 4部 分用演算とにより、 第 3部分データと第 4部分データとをそれぞれ変換 し、 変換したデータを出力する第 3変換部 ( s3 ) と第 4変換部 (s4 ) とを備えたことを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部を備えたデータ変換装置において、
上記データ処理部は、 変換するデータを入力し、 入力したデータをあ る体 ( f i e I d) の元と見なし、 その部分体を用いた逆元回路を用い て変換し、 変換したデータを出力する部分体変換部と、
上記部分体変換部の前段と後段との少なくともいずれか一方に変換す る GF ( 2N ) 上のデータを自然な対応で GF ( 2 ) n の元とみなし、 GF ( 2 ) 上のベク トル空間 GF ( 2) n のァフィン変換部を備えたこ とを特徴とする。 上記部分体変換部は、 N (Nは偶数) ビッ トのデータ Xを X = X。 + β X, (Χ0 , Χχ :部分体の元、 β : もとの体の元) となる上位の Ν / 2ビッ トのデータ XL と下位の NZ 2ビッ トのデータ X。 に等分して 、 Y = Y。 + ]3 Yi = 1 / (X。 + ]3 Χ1 ) (伹し、 Χ= 0のとき Υ二 0 ) となる上位の Ν/ 2ビットのデータ と下位の NZ 2ビッ トのデ 一タ YQ をそれぞれ NZ 2ビット単位で演算してデータ Yを求める複数 の NZ 2ビット演算器のみを有することを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、 ·
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 各段ごとに拡大鍵を入力して非線形変換をする 多段に接続された複数段の非線形データ変換部を有し、 上記鍵生成部は、 上記複数段の非線形データ変換部の各段毎に対して 供給する拡大鍵を生成するにあたり、 鍵データと鍵データから生成され た鍵データに依存するデータとの少なくともいずれかを入力して予め定 められたビット数 , Z2 , · · · , Zm (ここで、 i , j , kは 1 〜mのいずれか 1つの値とし、 Zk —Ζ』 = I X (Ζί+1 -Zj ) = I X Β ( Iは整数、 B = Zi+1 — Zi ) ) だけ、 巡回シフトして、 この巡回 シフ トした鍵データから各段の非線形データ変換部の拡大鍵を生成する 鍵シフト部を有するとともに、
上記鍵シフト部は、
1回の動作で (Zi+1 — Zi ) ビット (Bビット) の巡回シフ トをす る巡回シフトレジスタと、
Zi ビット巡回シフトされた鍵データに対して巡回シフトレジスタを 1回動作させて (Zi+1 -Zi ) ビット (Bビット) の巡回シフトを行 わせることにより、 巡回シフトレジスタに Zi+1 ビット巡回シフトされ た鍵データを生成させ、 Zi+1 ビッ ト巡回シフ トされた鍵データに対し て巡回シフトレジスタを I回動作させて I X (Zi+1 一 Zi ) ビット ( I XBビット) の巡回シフトを行わせることにより、 巡回シフトレジス タに Zi+2 ビット巡回シフ トされた鍵データを生成させる制御部と を有することを特徴とする。 上記巡回シフトレジスタは、 巡回シフトレジスタを動作させるため 供給されている動作クロックの 1クロックサイクルで Zi+1 — Zi ビッ ト (Bビット) の巡回シフ トをする回路であることを特徴とする。 上記巡回シフ ト回路は、 (Zi+1 — Zi ) ビッ ト (Bビッ ト) の値と して、 Bi - S X Ji + l ( J , =0以上の整数) ビットと、 Β2 = 8 X J 2 - 1 ( J 2 = 1以上の整数、 J\ と J 2 は無関係、 即ち、 ≠ J
2 又は = J 2 ) ビットとのいずれかの値を選択するセレクタを備え たことを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 各段ごとに拡大鍵を入力して非線形変換をする 多段に接続された複数段の非線形データ変換部を有し、
上記鍵生成部は、 上記複数段の非線形データ変換部の各段毎に対して 供給する拡大鍵を生成するにあたり、 ある鍵データを予め定められたビ ット数 (Bビット) だけ順に巡回シフトして、 この巡回シフトした鍵デ ータから各段の非線形データ変換部の拡大鍵を生成する鍵シフト部を有 するとともに、
上記鍵シフト部は、 Bビットだけ順に巡回シフトしたデータのうち、 一部のデータを無視して拡大鍵を生成せず、 残りの他のデータから拡大 鍵を生成することを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と を備えたデータ変換装置において、
上記鍵生成部は、
Gビットの Gビット鍵データを入力して変換し、 Gビットの第 1の G ビット変換鍵データを出力する第 1の Gビット鍵変換部と、
上記第 1の Gビット鍵変換部から出力された第 1の Gビット変換鍵デ ータを入力し、 更に変換して Gビットの第 2の Gビット変換鍵データを 出力する第 2の Gビット変換部と
を備え、
上記鍵生成部が Gビット鍵データ Kを入力した場合は、 Gビット鍵デ ータ Kを第 1の Gビット鍵変換部に入力して変換し、 第 1の Gビット鍵 変換部により出力された第 1の Gビット変換鍵データ を変換された Gビット鍵データとして出力し、
上記鍵生成部が 2 Gビット鍵データ Kを入力した場合は、 2 Gビット 鍵データ Kから Gビット鍵データを生成して生成した Gビット鍵データ を第 1の Gビット鍵変換部に入力して変換して第 1の Gビット変換鍵デ 一タ1^ を出力し、 第 1の Gビッ ト変換鍵データ を第 2の Gビッ ト 変換部に入力して変換して第 2の Gビット変換鏈データ Κ2 を出力し、 第 1の Gビット鍵変換部により出力された第 1の Gビッ ト変換鍵データ Κ: と、 第 2の Gビット変換部により出力された第 2の Gビット変換鍵 データ Κ2 とを連結して、 変換された 2 Gビット鍵データ (Ki , K2 ) として出力することを特徴とする。 上記第 1の Gビット鍵変換部は、
Gビット鍵データを非線形変換する 2段の非線形データ変換部と、 2段目の非線形データ変換部から出力された変換途中の Gビット鍵デ ータと、 第 1の Gビット鍵変換部が入力した Gビット鍵データとの論理演算を 行う論理演算部と
を備えたことを特徴とする。 上記鍵生成部は、 更に、 Qビット (G < Q < 2 G ) の鍵データを入力 した場合、 Qビットの鍵データを 2 Gビットの鍵データにするビッ ト長 変換部を備えたことを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
データ変換を行うデータと鍵データとを論理演算する鍵関数部と、 データ変換を行うデータを他のデータへ置換変換する S関数部と、 データ変換を行うデータ同士で論理演算する P関数部と
を有する非線形関数部 (F ) を備え、
非線形関数部 (F ) は、 鍵関数部を S関数部と P関数部の間に配置し たことを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と を備えたデータ変換装置において、
データ変換を行うデータと鍵データとを論理演算する鍵関数部と、 データ変換を行うデータを他のデータへ置換変換する s関数部と、 データ変換を行うデータ同士で論理演算する P関数部と
を有する非線形関数部 (F) を備え、
非線形関数部 (F) は、 鍵関数部を S関数部と P関数部との両者の前 と両者の後とのいずれかに配置したことを特徴とする。 上記 S関数部は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Tを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換部 (s 丄 ) と、
変換するデータの少なくとも他の一部分のデータを第 2部分データと して入力して、 上記変換テーブル Tを用いた変換と第 2部分用演算とを 用いて第 2部分データを変換し、 変換したデータを出力する第 2変換部
"2 ) と
を備えたことを特徴とする。 この発明に係るデータ変換装置は、 少なくともデータの暗号化とデー タの復号とのいずれかのデータ変換を行うデータ処理部を備えたデータ 変換装置において、 データ変換を行うデータ同士で論理演算する P関数 部を有する非線形関数部 (F) を備え、
上記 P関数部は、 Z l , ζ2 , · ■ ■ , ζ8 の 8個の 4 η (ηは 1以 上の整数) ビットデータを入力し、
上記 Z l , ζ2 , ζ3 , ζ4 の 4個のデータのうち、 少なくとも 2個 以上のデータ排他的論理和演算を行って 4 nビットの結果 1^ を得る回 路と、
上記 z5, ζ6 , z7 , z8 の 4個のデータのうち、 少なくとも 2個 以上のデータ排他的論理和演算を行って 4 nビットの結果 U2 を得る回 路と、
Ux と U2 との排他的論理和演算を行って 4 nビッ トの結果 U3 を得 る回路と、
Ux に対して巡回シフトをする巡回回路と、
上記巡回回路の出力と U3 との排他的論理和演算を行って結果 U4 を 得る回路と
を備え、
上記 U3, U4 を z , ζ2' , ■ ■ ·, ζ8 'として出力することを特 徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理を実行するデータ変換方法において、
上記データ処理は、 データ変換を行うデータを第 1のデータ (L) と 第 2のデータ (R) に分割するとともに、
上記データ処理は、 第 1のデータ (L) を変換するデータ正変換処理 (F L) と、
第 2のデータ (R) を上記データ正変換処理 (F L) の変換とは逆の 変換をするデータ逆変換処理 (F L—1) と
を備えたことを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理を'実行するデータ変換方法において、
上記データ処理は、 データを非線形変換する非線形変換処理を備え、 非線形変換処理は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Tを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換処理 ( ) と、
変換するデータの少なくとも他の一部分のデータを第 2部分データと して入力して、 上記変換テーブル Tを用いた変換と第 2部分用演算とを 用いて第 2部分データを変換し、 変換したデータを出力する第 2変換処 理 (s 2 ) とを備えたことを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理を実行するデータ変換方法において、
上記データ処理は、 変換するデータを入力し、 入力したデータをある 体 (i i e 1 d ) の元と見なし、 その部分体を用いた逆元回路を用いて 変換し、 変換したデータを出力する部分体変換処理と、
上記部分体変換処理の前段処理と後段処理との少なくともいずれか一 方に変換する G F ( 2 n ) 上のデータを自然な対応で G F ( 2 ) n の元 とみなし、 G F ( 2 ) 上のベタ トル空間 G F ( 2 ) n のァフィン変換処 理とのいずれかを備えたことを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 各段ごとに拡大鍵を入力して非線形変換をする多 段に接続された複数段の非線形データ変換処理を有し、
上記鍵生成処理は、 上記複数段の非線形データ変換処理の各段毎に対 して供給する拡大鍵を生成するにあたり、 鍵データと鍵データから生成 された鍵データに依存するデータとの少なくともいずれかを入力して予 め定められたビッ ト数 , z2 , · · · , Zra (ここで、 i , j , k は、 1〜mのいずれか 1つの値とし、 Zk _ Zj = I X (Zi+1 -Zj ) ( Iは整数、 B = Zi+1 — Zi ) ) だけ、 巡回シフ トして、 この巡回シ フトした鍵データから各段の非線形データ変換処理へ供給する拡大鍵を 生成する鍵シフト処理を有するとともに、
上記鍵シフ ト処理は、
1回の動作で (Zi+1 _Zi ) ビット (Bビット) の巡回シフトをす る巡回シフト処理と、
Zi ビット巡回シフトされた鍵データに対して巡回シフト処理を 1回 動作させて (Zi+1 _Zi ) ビット (Bビット) の巡回シフトを行わせ ることにより、 巡回シフ ト処理により Zi+1 ビット巡回シフ トされた鍵 データを生成させ、 Zi+1 ビッ ト巡回シフ トされた鍵データに対して巡 回シフ ト処理を I回動作させて I X (Zi+1 _Zi ) ビット (I XBビ ット) の巡回シフトを行わせることにより、 巡回シフト処理により Zi+2 ビッ ト巡回シフトされた鍵データを生成させる制御処理と
を有することを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 各段ごとに拡大鍵を入力して非線形変換をする多 段に接続された複数段の非線形データ変換処理を有し、
上記鍵生成処理は、 上記複数段の非線形データ変換処理の各段毎に対 して供給する拡大鍵を生成するにあたり、 ある鍵データを予め定められ たビット数 (Bビット) だけ順に巡回シフトして、 この巡回シフトした 鍵データから各段の非線形データ変換処理へ供給する拡大鍵を生成する 鍵シフト処理を有するとともに、
上記鍵シフト処理は、 Bビットだけ順に巡回シフトしたデータのうち 、 一部のデータを無視して拡大鍵を生成せず、 残りの他のデータから拡 大鍵を生成することを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記鍵生成処理は、
Gビットの Gビット鍵データを入力して変換し、 Gビットの第 1の G ビット変換鍵データを出力する第 1の Gビット鍵変換処理と、 上記第 1の Gビット鍵変換処理から出力された第 1の Gビッ ト変換鍵 データを入力し、 更に変換して Gビットの第 2の Gビッ ト変換鍵データ を出力する第 2の Gビット変換処理と
を備 、
上記鍵生成部が Gビット鍵データ Kを入力した場合は、 Gビット鍵デ ータ Kを第 1の Gビット鍵変換部に入力して変換し、 第 1の Gビット鍵 変換処理により出力された第 1の Gビット変換鍵データ 1^ を変換され た Gビッ ト鍵データとして出力し、
上記鍵生成部が 2 Gビット鍵データ Kを入力した場合は、 2 Gビット 鍵データ Kから Gビット鍵データを生成して生成した Gビット鍵データ を第 1の Gビット鍵変換部に入力して変換して第 1の Gビット変換鍵デ 一タ1^ を出力し、 第 1の Gビッ ト変換鍵データ を第 2の Gビット 変換部に入力して変換して第 2の Gビット変換鍵データ Κ2 を出力し、 第 1の Gビット鍵変換処理により出力された第 1の Gビット変換鍵デー タ と、 第 2の Gビット変換処理により出力された第 2の Gビット変 換鍵データ K2 とを連結して、 変換された 2 Gビット鍵データ (Κ^ , Κ2 ) として出力することを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ 一タの喑号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
データ変換を行うデータと鍵データとを論理演算する鍵関数処理と、 データ変換を行うデータを他のデータへ置換変換する S関数処理と、 データ変換を行うデータ同士で論理演算する P関数処理と
を有する非線形関数処理 (F ) を備え、
非線形関数処理 (F ) は、 鍵関数を S関数処理と P関数処理の間に動 作させることを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
データ変換を行うデータと鍵データとを論理演算する鍵関数処理と、 データ変換を行うデータを他のデータへ置換変換する S関数処理と、 データ変換を行うデータ同士で論理演算する P関数処理と
を有する非線形関数処理 (F ) を備え、
非線形関数処理 (F ) は、 鍵関数処理を S関数処理と P関数処理との 両者の前と両者の後とのいずれかで動作させることを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデ タの復号とのいずれかのデータ変換を行うデータ処 理部を備えたデータ変換装置において、
上記データ処理部は、
第 1の入力部と、
第 2の入力部と、
第 1の出力部と、
第 2の出力部と データの暗号化とデータの復号とを同一のアルゴリズムで行う非線形 変換部と、
第 1の入力部に入力されるデータを変換する第 1入力データ正変換部 と、
第 2の出力部から出力されるデータを入力して上記第 1入力データ正 変換部の変換とは逆の変換をする第 2出力データ逆変換部と
を備えたことを特徴とする。 上記非線形変換部は、
第 1の入力データを第 1の入力部から入力し、
第 2の入力データを第 2の入力部から入力し、
第 1の入力データと第 2の入力データとを暗号化用鍵データを用いて 非線形変換し、 第 1の変換データと第 2の変換データとを生成し、 第 1の変換データを第 1の出力部から出力し、
第 2の変換データを第 2の出力部から出力し、
上記第 1の変換データを第 2の入力部から入力し、
上記第 2の変換データを第 1の入力部から入力し、 第 1の変換データ と第 2の変換データとを復号用鍵データを用いて非線形変換し、 第 1の 出力データと第 2の出力データとを生成し、
第 1の出力データを第 2の出力部から出力し、
第 2の出力データを第 1の出力部から出力した場合に、
第 1の入力データと第 2の出力データとが同一となり、 第 2の入力デ 一タと第 1の出力データとが同一となるアルゴリズムを備えたことを特 徴とする。 上記データ処理部は、 更に、 第 2の入力部に入力されるデータを変換する第 2入力データ正変換部 と、
第 1の出力部から出力されるデータを入力して、 上記第 2入力データ 正変換部の変換とは逆の変換をする第 1出力データ逆変換部と を備えたことを特徴とする。 この発明に係るデータ変換装置は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 データ変換を行うデータを非線形変換する非線 形関数部 (F ) を備え、
上記鍵生成部は、 非線形関数部 (F ) に供給する鍵データを加工して 、 加工した鍵データをデータ処理部の非線形関数部 (F ) 以外の部分に 供給してデータと演算させることを特徴とする。 この発明に係るデータ変換方法は、 鍵データを入力して少なくともデ ータの暗号化とデータの復号とのいずれかのデータ変換を行うデータ処 理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 データ変換を行うデータを非線形変換する非線形 関数処理 (F ) を備え、 上記鍵生成処理は、 非線形関数処理 (F) に供給する鍵データを加工 して、 加工した鍵データをデータ処理の非線形関数処理 (F) 以外の処 理に供給してデータと演算させることを特徴とする。 また、 この発明は、 上記データ変換方法をコンピュータに実行させる プログラムを記録したコンピュータ読み取り可能な記録媒体であること を特徴とする。 また、 この発明は、 上記データ変換方法をコンピュータに実行させる プログラムであることを特徴とする。 図面の簡単な説明
図 1は、 暗号化用データ変換装置 1 00と復号用データ変換装置 40 0を示す図。
図 2は、 符号及び記号の説明図。
図 3は、 暗号化部 200又は復号部 500の構成図。
図 4は、 暗号化部 200又は復号部 500の他の構成図。
図 5は、 データ正変換部 (F L) 2 5 1の構成図。
図 6は、 データ逆変換部 (F L— 2 7 1の構成図。
図 7は、 従来の暗号化部と復号部の一部を示す図。
図 8は、 暗号化部 200と復号部 500の一部を示す図。
図 9は、 点対称におかれたデータ正変換部 (F L) 2 5 1とデータ逆 変換部 (F L— 2 7 1を示す図。
図 1 0は、 点対称となるデータ正変換部 (F L) とデータ逆変換部 ( F L'1) の関係を示す図。
図 1 1は、 非線形関数部 Fを示す図。 図 1 2は、 Sボックス第 1変換部 1 3と Sボックス第 2変換部 1 4の 構成図。
図 1 3は、 Sボックス変換部 2 1の構成図。
図 1 4は、 線形変換部 8 5の構成図。
図 1 5は、 線形変換部 8 7の構成図。
図 1 6は、 鍵生成部 3 0 0又は鍵生成部 6 0 0の構成図。
図 1 7は、 ビッ ト長変換部 3 1 0の動作説明図。
図 1 8は、 シフ トレジスタ A 3 4 1の構成図。
図 1 9は、 シフト制御部 3 4 5の制御テーブルの構成図。
図 2 0は、 シフ トレジスタ A 3 4 1 とシフ トレジスタ B 3 4 2の動作 説明図。
図 2 1は、 シフ トレジスタ A 3 4 1 とシフ トレジスタ B 3 4 2 と拡大 鍵の対応図。
図 2 2は、 シフ トレジスタ A 3 4 1〜シフ トレジスタ D 3 4 4の動作 説明図。
図 2 3は、 シフ トレジスタ A 3 4 1〜シフ トレジスタ D 3 4 4と拡大 鍵の対応図。
図 2 4は、 暗号化用データ変換装置 1 0 0と復号用データ変換装置 4 0 0が実装されたコンピュータを示す図。
図 2 5は、 従来の D E Sの暗号関数の構成図。
図 2 6は、 従来の 1 2 8ビットプロック暗号 E 2の非線形関数を示す 図。
図 2 7は、 Sボックス変換部の他の例を示す図。
図 2 8は、 Sボックス第 1〜第 4変換部を用いた非線形関数部 Fを示 す図。
図 2 9は、 鍵関数部 2 5の配置を変更した図。 図 3 0は、 鍵関数部 2 5の配置を変更した他の図。
図 3 1は、 P関数部 3 0の他の構成図。
図 3 2は、 P関数部 3 0の他の構成図。
図 3 3は、 図 3 1の S 1〜S 4の構成と動作を示す図。
図 3 4は、 等価鍵の非存在証明の説明図。
図 3 5は、 等価鍵の非存在証明の説明図。
図 3 6は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 3 7は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 3 8は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 3 9は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 4 0は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 4 1は、 暗号化部 2 0 0又は復号部 5 0 0の他の構成図。
図 4 2は、 図 3 9と図 4 0とを併せた場合を示す図。
図 4 3は、 図 3に示した暗号化部 2 0 0又は復号部 5 0 0に対して図 2 8に示した非線形関数部 Fを用いた場合の構成図。
図 4 4は、 図 4 3に示した非線形関数部 Fの中から鍵関数部 2 5を削 除した非線形関数部 F ' を用いる場合を示す図。
図 4 5は、 図 4 4の構成に対して更にホワイ トユング拡大鍵の演算を 拡大鍵とともに行う場合を示す図。
図 4 6は、 非線形関数部 Fが図 2 9に示したような構成をとる場合に
、 非線形関数部 Fから鍵関数部 2 5を削除し、 代わりに、 拡大鍵 kを X
O R回路 2 9 8に供給する場合を示す図。
図 4 7は、 非線形関数部 Fが図 3 0に示したような構成をとる場合、 非線形関数部 Fから鍵関数部 2 5を削除し、 代わりに、 非線形変換され た拡大鍵 k,を X O R回路 2 9 8に供給する場合を示す図。 発明を実施するための最良の形態
実施の形態 1 .
図 1は、 この実施の形態の暗号化用データ変換装置 1 0 0と復号用デ ータ変換装置 4 0 0を示す図である。
暗号化用データ変換装置 1 0 0は、 例えば、 1 2 8ビットの平文を入 力し、 1 2 8ビッ トの暗号文を出力する暗号装置である。 復号用データ 変換装置 4 0 0は、 1 2 8ビットの暗号文を入力し、 1 2 8ビットの平 文を出力する復号装置である。 暗号化用データ変換装置 1 0 0は、 暗号 化部 2 0 0と鍵生成部 3 0 0から構成されている。 暗号化部 2 0 0は、 平文の暗号化を行う暗号化用データ処理部である。 鍵生成部 3 0 0は、 1 2 8ビット又は 1 9 2ビット又は 2 5 6ビットの鍵データを入力し、 定数 Vi を用いて複数 (n個) の 6 4ビット又は 1 2 8ビットの拡大鍵 を生成して暗号化部 2 0 0に供給する。 復号用データ変換装置 4 0 0は 、 復号部 5 0 0と鍵生成部 6 0 0を備えている。 復号部 5 0 0は、 暗号 文を入力し、 暗号文の復号を行う復号用データ処理部である。 鍵生成部 6 0 0は、 前述した鍵生成部 3 0 0と同じもの又は同様のものである。 また、 暗号化部 2 0 0と復号部 5 0 0は、 同一のものを用いることがで き、 図においては、 暗号化部 2 0 0と復号部 5 0 0に分けて図示してい るが、 1つの回路又は 1つのプログラムで兼用することができる。 同様 に、 鍵生成部 3 0 0と鍵生成部 6 0 0も 1つの回路又は 1つのプログラ ムで兼用することができる。 即ち、 暗号化用データ変換装置 1 0 0と復 号用データ変換装置 4 0 0は、 同一の回路又は同一のプログラムで兼用 することができる。
図 2は、 以下の図及び説明において用いる記号の意味を示している。 以下、 図 3以降の各図において、 左側のデータを左データ Lと呼び、 図において、 右側のデータを右データ Rと呼ぶものとする。 また、 非線 形データ変換部 2 1 0, 2 2 0 , 2 3 0 , 2 4 0へ入力するデータを入 力データと呼び、 非線形データ変換部 2 1 0 , 2 2 0 , 2 3 0 , 2 4 0 の内部のデータを中間データと呼び、 非線形データ変換部 2 1 0, 2 2 0, 2 3 0 , 24 0から出力するデータを出力データと呼ぶものとする 0
図 3は、 暗号化部 2 0 0又は復号部 5 0 0の一例を示す図である。 図 3は、 6段の非線形データ変換部 2 1 0と 6段の非線形データ変換 部 2 2 0と 6段の非線形データ変換部 2 3 0が縦続接続されている場合 を示している。 6段の非線形データ変換部 2 1 0と 6段の非線形データ 変換部 2 2 0の間には、 データ正変換部 (F L) 2 5 1とデータ逆変換 部 (F L— 2 7 1が設けられている。 また、 6段の非線形データ変換 部 2 2 0と 6段の非線形データ変換部 2 3 0の間には、 データ正変換部 (F L) 2 5 3とデータ逆変換部 (F L—1) 2 7 3が設けられている。 6段の非線形データ変換部 2 1 0の中には、 6段の非線形データ変換部 が設けられている。 例えば、 1つの非線形データ変換部 2 8 0は、 非線 形関数部 Fと XOR (排他的論理和) 回路 2 9 0から構成されている。 このようにして、 図 3においては、 全部で 1 8段の非線形データ変換部 が設けられている。
非線形データ変換部 2 1 0は、 任意の 2つの右入力データ R。 と左入 力データ LQ に対し、 上記左入力データ L。 を第 1の拡大鍵 l^ を用い て第 1の非線形変換し、 該第 1の非線形変換された出力データと上記右 入力データ R。 との排他的論理和を第 1の左中間データ として出力 し、 上記左入力データ LQ を第 1の右中間データ として出力する第 1の非線形データ変換部 2 8 0と、 上記第 1の左中間データ を第 2 の拡大鍵 k2 を用いて第 2の非線形変換し、 該第 2の非線形変換された 出力データと上記第 1の右中間データ 1^ との排他的論理和を第 2の左 中間データ L2 として出力し、 上記第 1の左中間データ を第 2の右 中間データ R2 として出力する第 2の非線形データ変換部 2 8 1とを備 え、 第 1の非線形データ変換部 28 0から第 6の非線形データ変換部 2 8 5を縦続接続して、 最終の右中間データ R6 と左中間データ L6 を変 換後の出力データとするものである。
図 4は、 図 3の暗号化部 200に対して更にデータ正変換部 (F L) 25 5とデータ逆変換部 (F L—1) 2 7 5と 6段の非線形データ変換部 240を追加し、 全部で 24段の非線形データ変換部により変換を行う 場合を示している。
図 5は、 データ正変換部 (F L) 25 1を示す図である。
図 5においては、 データ正変換部 (F L) 25 1の入力データを左入 力データ 5 1と右入力データ 5 2に分け、 論理演算を行った後、 左出力 データ 6 0と右出力データ 6 1により出力データを作成している場合を 示している。 左入力データ 5 1は、 AND回路 54において、 拡大鍵 5 3との論理積がとられ、 その後、 1ビット巡回左シフ ト部 5 5において 、 左方向への 1ビットの巡回シフト (サーキユラシフ トともいう) が行 われる。 シフト後は、 右入力データ 5 2との排他的論理和が XOR回路 56により演算される。 X OR回路 56の出力は、 右出力データ 6 1に なるとともに、 OR回路 5 8において、 拡大鍵 5 7との論理和がとられ 、 その結果は、 更に、 XOR回路 5 9において左入力データ 5 1と排他 的論理和の演算が行われ、 左出力データ 60となる。
図 6は、 データ逆変換部 (F L-1) 2 7 1を示す図である。
図 6においては、 入力データを左入力データ 7 1と右入力データ 72 に分け、 論理演算を行った後、 左出力データ 80と右出力データ 8 1に より出力データを作成している場合を示している。
右入力データ 7 2は、 OR回路 74において、 拡大鍵 7 3との論理和 がとられ、 更に、 〇1 回路7 5にぉぃて、 左入力データ 7 1との排他 的論理和がとられる。 その結果、 X OR回路 75からの出力は左出力デ ータ 80になるとともに、 AND回路 7 7において、 拡大鍵 76との論 理積がとられ、 1ビット巡回左シフト部 78において、 左方向への 1ビ ットの巡回左シフトが行われ、 その結果は、 更に、 X OR回路 7 9にお いて右入力データ 7 2と排他的論理和がとられ、 右出力データ 8 1とな る。
図 5に示したデータ正変換部 (F L) 25 1と図 6に示したデータ逆 変換部 (F L-1) 2 7 1は、 正逆反対のオペレーションをするものであ る。 従って、 同一の拡大鍵のもとで図 5の出力データ Yを図 6の入力デ ータ Yにすることにより、 図 6の出力データ として図 5の入力データ
Xを得ることができる。
このように、 一方の出力データを他方の入力データとすることにより
、 一方の入力データを他方の出力データとして得ることができる関係を 正変換と逆変換の関係にあるという。 データ正変換部 (F L) 2 5 1と データ逆変換部 (F L 1) 27 1は、 このような正変換と逆変換を行う 回路である。
なお、 図 5の 1ビット巡回左シフト部 5 5と図 6の 1ビット巡回左シ フト部 7 8はともに左シフトをするが、 両方とも右シフトを行うように してもよい。 また、 データ正変換部 (F L) 25 1とデータ逆変換部 ( F L-1) 27 1は、 正変換と逆変換を行うのであれば、 他の構成でもよ レ、。 例えば、 巡回のシフト数を変えてもよい。 また、 n o tを含んだ A ND回路、 n o tを含んだ OR回路、 n o tを含んだ XOR回路を、 更 に付加してもよい。 即ち、 n o tを含んだ AND回路、 n o tを含んだ OR回路、 n o tを含んだ XOR回路を、 それぞれ a n d n, o r n, x o r nと表した場合、 定義は以下の通りである。 x a n d n y : (n o t x ) a n d y
x o r n y : (n o t ) o r y
x x o r n y : (n o t ) a n d y
最近のいくつかの C PUでは、 n o tも含んだ a n d, o r , x o r 命令を備えているものがある。 これらの命令は、 a n d, o r , x o r 命令と同様のコストで実行可能である。
図 7は、 従来の暗号化部 20 1と従来の復号部 50 1を示している。 従来の暗号化部 20 1においては、 2つのデータ正変換部 F Lが設け られている。 このため、 この逆のオペレーションをするためには、 復号 部に 2つのデータ逆変換部 F L—1をおかなければならない。 従って、 暗 号化部と復号部の構成が一般的には異なってしまい、 暗号化部と復号部 を同一回路にすることができない。
一方、 図 8に示すように、 この実施の形態では、 暗号化部 200にお いて、 データ正変換部 (F L) 2 5 1とデータ逆変換部 (F L— 2 7 1を隣り合わせに配置しているため、 復号部 500においても全く同じ 構成で復号を行うことができる。 例えば、 右データ Rをデータ正変換部 (F L) 2 5 1で変換して左データ L' を得、 左データ Lをデータ逆変 換部 (F L—1) 2 7 1で変換して右データ R' を得た場合、 左データ L ' をデータ逆変換部 (F L—1) 2 7 1に入力させてやることにより右デ ータ Rを得ることができ、 右データ R' をデータ正変換部 (F L) 2 5 1に入力させてやることにより左データ Lを得ることができる。
このようにして、 暗号化部 200と復号部 500は、 全く同じ構成で 実現することができ、 暗号化部 200と復号部 5 00を兼用して用いる ことができる。
図 9は、 データ正変換部 (F L) 25 1とデータ逆変換部 (F L一1)
2 7 1を非線形データ変換部 28 0を中心にして点対称となる位置にお いた場合を示している。
このように、 非線形データ変換部 280を中心にしてデータ正変換部 (F L) 2 5 1とデータ逆変換部 (F L— 27 1を点対称の位置にお いた場合に、 同一構成により暗号化と復号を行うことができる。
図 1 0は、 点対称の位置におかれたデータ正変換部 (F L) とデータ 逆変換部 (F L—1) との対応を示している。
図 1 0に示すように、 図 3においてはデータ正変換部 (F L) 2 5 1 とデータ逆変換部 (F L—1) 2 73が 6段の非線形データ変換部 2 20 を中心とした点対称の位置に配置されていることを示している。
なお、 図 3, 図 4, 図 8, 図 9において、 データ正変換部 (F L) と データ逆変換部 (F L— の位置は逆でもよい。 また、 図 3, 図 4, 図 8, 図 9において、 右データ Rと左データ Lは逆でもよい。
図 36は、 6段の非線形データ変換部 2 1 0と 6段の非線形データ変 換部 220と 6段の非線形データ変換部 23 0とを用いて暗号化部 20 0を構成した場合を示している。
6段の非線形データ変換部 2 1 0と 6段の非線形データ変換部 2 20 と 6段の非線形データ変換部 2 30とは、 暗号化と復号との両方に用い ることができる回路である。
ここで、 6段の非線形データ変換部 2 1 0とデータ正変換部 (F L) 25 0とデータ逆変換部 (F L-1) 27 1とにより正逆データ変換部 2 1 1を構成している。 ここで、 正逆データ変換部とは、 暗号化と復号と の両方に用いることができる回路のことをいうものとする。 即ち、 正逆 データ変換部は、 一方の出力データを他方の入力データとすることによ り、 一方の入力データを他方の出力データとして得ることができる正変 換と逆変換とを行う 1つの回路である。
また、 6段の非線形データ変換部 220とデータ正変換部 (F L) 2 5 1 とデータ逆変換部 (F L— 2 7 3とにより正逆データ変換部 2 2 1を構成している。
また、 6段の非線形データ変換部 2 3 0とデータ正変換部 (F L ) 2 5 3とデータ逆変換部 (F L— 2 7 5とにより正逆データ変換部 2 3 1を構成している。
これら正逆データ変換部 2 1 1 と正逆データ変換部 2 2 1 と正逆デー タ変換部 2 3 1とを縦列に接続して暗号化部 2 0 0が構成されている。 そして、 この暗号化部 2 0 0は、 復号部 5 0 0としても用いることがで きる。
また、 6段の非線形データ変換部 2 1 0と 6段の非線形データ変換部 2 2 0とデータ正変換部 (F L ) 2 5 1 とデータ逆変換部 (F IT1) 2 7 1 とを非線形データ変換部 1 2 1 0と見なせば、 非線形データ変換部 1 2 1 0は、 暗号化と復号との両方に用いることができる回路である。 ここで、 非線形データ変換部 1 2 1 0とデータ正変換部 (F L ) 2 5 0 とデータ逆変換部 (F L— 2 7 3とにより正逆データ変換部 1 2 1 1 を構成している。
また、 6段の非線形データ変換部 2 2 0と 6段の非線形データ変換部 2 3 0とデータ正変換部 (F L ) 2 5 3とデータ逆変換部 (F L—1) 2 7 3とを非線形データ変換部 1 2 2 0と見なせば、 非線形データ変換部 1 2 2 0とデータ正変換部 (F L ) 2 5 1とデータ逆変換部 (F L一1) 2 7 5とにより正逆データ変換部 1 2 2 1を構成している。
正逆データ変換部 1 2 1 1と正逆データ変換部 1 2 2 1とは、 復号部 5 0 0にも用いることができる。
また、 6段の非線形データ変換部 2 1 0から 6段の非線形データ変換 部 2 3 0までを非線形データ変換部 2 2 1 0と見なせば、 非線形データ 変換部 2 2 1 0は、 暗号化と復号との両方に用いることができる回路で ある。
ここで、 非線形データ変換部 2 2 1 0とデータ正変換部 (F L ) 2 5 0とデータ逆変換部 (F L—1) 2 7 5とにより正逆データ変換部 2 2 1 1を構成している。
正逆データ変換部 2 2 1 1は、 復号部 5 0 0にも用いることができる 以上のように、 暗号化部 2 0 0又は復号部 5 0 0は、 正逆データ変換 部を複数縦続接続することにより構成することができる。
また、 暗号化部 2 0 0又は復号部 5 0 0は、 正逆データ変換部の中に 正逆データ変換部を含ませることにより、 正逆データ変換部を階層化し て構成することができる。
図 3 7は、 6段の非線形データ変換部 2 1 0を備えた暗号化部 2 0 0 と復号部 5 0 0とが同一構成となる例を示している。
図 3 7の 6段の非線形データ変換部 2 1 0は、 図 3, 図 4に示すよう に、 偶数段の非線形データ変換部 2 8 0を有している。 データ Aは、 第 1入力データ正変換部 2 5 6により変換されデータ A ' となり、 第 1の 入力部 2 6 1に入力され、 第 1の入力部 2 6 1から入力されたデータ A ' は、 第 1の出力部 2 6 3からデータ A として出力される。 また、 第 2の入力部 2 6 2から入力されたデータ Bは、 第 2の出力部 2 6 4か らデータ として出力される。 第 2の出力部 2 6 4から出力されたデ 一タ 1 は、 第 2出力データ逆変換部 2 7 9により変換されデータ ' として出力される。
暗号化部 2 0 0の第 1の出力部 2 6 3から出力されたデータ は 、 復号部 5 0 0の第 2の入力部 2 6 2にデータ A として入力される 。 暗号化部 2 0 0の第 2出力データ逆変換部 2 7 9から出力されたデー タ は、 復号部 5 0 0の第 1入力データ正変換部 2 5 6にデータ ' として入力され、 データ として出力される。
非線形データ変換部 2 1 0は、 データ を入力してデータ Bを出力 する。 また、 非線形データ変換部 2 1 0は、 データ を入力してデ ータ A ' を出力する。 第 2出力データ逆変換部 2 7 9は、 データ A, を 入力してデータ Aを出力する。
図 3 8では、 奇数段の非線形データ変換部 2 1 9が奇数段の非線形デ ータ変換部 2 8 0を有している。 従って、 第 1の入力部 2 6 1から入力 されたデータ A ' は、 第 2の出力部 2 6 4からデータ として出力 され、 第 2出力データ逆変換部 2 7 9により変換され、 データ Α ' と して出力される。 また、 第 2の入力部 2 6 2から入力したデータ Βは、 第 1の出力部 2 6 3からデータ として出力される。
暗号化部 2 0 0の第 1の出力部 2 6 3から出力されたデータ B 1 は、 復号部 5 0 0の第 2の入力部 2 6 2にデータ として入力される。 暗 号化部 2 0 0の第 2出力データ逆変換部 2 7 9から出力されたデータ A " は、 復号部 5 0 0のデータ Α ' として入力され、 第 1入力データ正 変換部 2 5 6に入力される。
図 3 7, 図 3 8の場合は、 いずれも、 暗号化部 2 0 0と復号部 5 0 0 とが同一構成で、 暗号化、 復号ができる。
図 3 9は、 第 2の入力部 2 6 2に第 2入力データ正変換部 2 5 7を設 け、 第 1の出力部 2 6 3に第 1出力データ逆変換部 2 7 8を設けた場合 を示している。
図 4 0は、 第 1の入力部 2 6 1に第 1入力データ逆変換部 2 7 6を設 け、 第 2の出力部 2 6 4に第 2出力データ正変換部 2 5 9を設けた場合 を示している。
図 4 1は、 左側の入出力部 2 6 1 , 2 6 3にデータ正変換部 2 5 6 ,
2 5 8を設け、 右側の入出力部 2 6 2 , 2 6 4にデータ逆変換部 2 7 7 , 2 7 9を設けた場合を示している。
図 4 2は、 図 3 9と図 4 0とを併せた場合を示している。
図示していないが、 図 3 7と図 3 9を併せてもよい。 また、 図 3 8と 図 3 9とを併せてもよい。 また、 図示していないが、 図 3 7, 図 3 9か ら図 4 2の 6段 (偶数段) の非線形データ変換部 2 1 0を奇数段の非線 形データ変換部 2 1 9としてもよい。 図 3 9から図 4 2の場合も、 暗号 化部 2 0 0と復号部 5 0 0との同一構成で実現できる。
実施の形態 2 .
図 1 1は、 非線形データ変換部 2 8 0の非線形関数部 Fの構成図であ る。
非線形関数部 Fは、 F関数入力データ 1 0を入力し、 非線形変換を行 つて F関数出力デ^ "タ 4 0を出力する。 6 4ビットの F関数入力データ 1 0は、 8つのデ^"タに分けられ、 8ビッ トのデータとして処理される 。 各 8ビットのデ^"タは、 鍵関数部 2 5の 8個の X O R回路 1 2に入力 され、 拡大鍵 1 1との排他的論理和がとられ、 S関数部 2 0において、 置換を用いた非線形変換を受ける。 その後、 P関数部 3 0において、 8 ビットのデータ同士で図に示すような 1 6個の X O R回路 8 1 5により 演算が行われ、 6 4ビットの F関数出力データ 4 0が出力される。 S関 数部 2 0には、 4個の Sボックス第 1変換部 1 3と 4個の Sボックス第 2変換部 1 4が設けられている。
図 1 2は、 Sボックス第 1変換部 1 3と Sボックス第 2変換部 1 4の 実現例を示す図である。
Sボックス第 1変換部 1 3の内部には、 変換テーブル Tが設けられて いる。 変換テーブル Tは、 0〜 2 5 5の値に対して任意に (ランダムに ) 対応させた 0〜2 5 5の値を予め記憶しておくものであり、 0〜2 5 5の値を入力し、 各値に対応した値 (0〜2 5 5の値) を出力するテー プルである。 例えば、 1が入力された場合には、 変換テーブル Tから 7 が出力される。 変換テーブル Tは、 全単射であるかどうか、 最大差分確 率が十分に小さいかなどの安全性が考慮された非線形変換を行うもので める。
Sボックス第 2変換部 1 4は、 Sボックス第 1変換部 1 3を含むとと もに、 1ビット巡回左シフト部 2 2 (図の 「くくく 1」 の 「くくく」 は 巡回左シフトを示し、 「1」 は 1ビットを示す) を有している。 1ビッ ト巡回左シフト部 2 2は、 Sボックス第 1変換部 1 3の出力に対して 1 ビッ トの巡回左シフ トを行う。 例えば、 1が入力された場合には、 Sボ ックス第 1変換部 1 3から 7が出力され、 1 ビッ ト巡回左シフ ト部 2 2 から 1 4が出力される。
Sボックス第 1変換部 1 3と Sボックス第 2変換部 1 4を図 1 2のよ うに構成すると、 変換テーブル Tを 2種類持つ必要がないにも関わらず 、 2種類の変換テーブル Tを設けた場合と同じような効果を得ることが できる。 変換テーブル Tを 1つしか持たないことにより、 変換テーブル Tを記憶するメモリ容量を少なく し、 回路全体を小さくすることができ る。
また、 図 2 7に示すように、 1ビット巡回左シフ ト部 2 2の代わりに 、 或いは、 1ビット巡回左シフト部 2 2の他に 1ビット巡回右シフト部 (図 2 7の Sボックス第 3変換部 1 5の 「> > > 1」 ) を設けることに より、 更に異なる変換テ一ブル Tを設けた場合と同じ効果を得ることが できる。 また、 入力されたデータ yに対して 1ビット巡回左シフト部 ( 図 2 7の Sボックス第 4変換部 1 6の 「くくく 1」 ) を設けて、 入力さ れたデータ yを先にシフトしてから変換テーブル Tにより変換してもよ い。 図 2 7においては、 s ( y ) ' s ( y ) <くく 1, s ( y ) > > > 1, s ( yくくく 1 ) の場合を示したが、 s ( y > > > 1 ) でもよいし 、 s (y < < < 1 ) < < < 1 , s (y < < < 1 ) > > > 1 , s (y >> > 1 ) くくく 1, s (y > > > 1 ) 〉>> 1の場合でもよい。 シフト量 を 1ビッ トにすることにより、 例えば、 1ビットシフト命令しか持たな い C PU等においては、 3ビットや 5ビットシフトするよりも、 高速処 理を行うことが可能な場合がある。 また、 このシフト処理を 1ビットシ フトしかできないハードウェアを用いて行う場合にも、 同様に、 高速処 理を適用することができる場合がある。 更には、 1ビットシフトではな く、 2ビット、 3ビット等の任意ビットのシフトでもよく、 任意ビット のシフトを行うことにより、 更に、 異なる種類のテーブルを付加したの と同じ効果を得ることができる場合がある。
図 28は、 図 2 7に示した 4つの Sボックス第 1〜第 4変換部 1 3, 1 4, 1 5, 1 6を用いた S関数部 20を示す図である。
また、 P関数部 30の他の構成を図 3 1に示す。
8ビッ トの入力データ yi , y2 , y3 , y4 から、 それぞれ S 1,. S 2 , S 3, S 4を参照して 3 2ビットのデータ , Z2, Z3, Z4 を求め、 これらの排他的論理和を回路 9 1 3で求め、 また、 8ビット の入力データ y5 , y6 , y7 , y8 から、 それぞれ S 2, S 3, S 4 , S 1を参照して 3 2ビッ トのデータ Z5, Z6, Z7 , Z8 を求め、 これらの排他的論理和を回路 9 1 6により求め、 これらの排他的論理和 演算結果 U2 と前記排他的論理和演算結果 との排他的論理和が回路 9 1 7でとられて Z l,, ζ2', ζ3', ζ4 'として出力され、 また、 回路 9 1 3よりの排他的論理和演算結果 に対し、 左に 1バイ ト巡回シフ ト (この図 3 1では、 「くくく 1」 は 1ビットではなく、 1バイ トの巡 回シフトを示す) が回路 9 1 8で行われ、 回路 9 1 7の出力と回路 9 1 9で排他的論理和演算が行われて ζ5', ζ6', ζ7', ζ 8 'が得られる。 ここで、 図 3 3の (a) 〜 (d) に示すように、 S 1は Sボックス第 1変換部 1 3を、 S 2は Sボックス第 2変換部 1 4を、 S 3は Sボック ス第 3変換部 1 5を、 S 4は Sボックス第 4変換部 1 6を用いて構成さ れており、 それぞれの変換部からの 8ビット出力データを 4つコピーし て 3 2ビットデータとし、 更に、 そのうち 3つのデータ (24ビット分 ) だけを出力するように、 マスクをかけて 3 2ビットデータを出力する なお、 上記回路 9 1 8の 1バイ トの巡回シフトは、 Sボックスが処理 するビット長 (8ビット = 1バイト) 単位でシフトするものである。 図 3 2は、 図 3 1と等価な構成であるが、 実装方法が異なる P関数部
30を示している。
8ビッ トの入力データ , y2 , y3 , y4 から、 それぞれ S 5 , S 6, S 7 , S 8をそれぞれ参照して 3 2ビッ トのデータ , Ζ2, Ζ3 , Ζ4 が出力され、 これらは回路 9 3 3により排他的論理和演算が 行われ、 その演算結果 Αが回路 9 3 3から出力される。 また、 8ビッ ト の入力データ y5, y6 , y7 , y8 から、 それぞれ S 9, S A, S B , S Cを参照して 3 2ビッ トのデータ Z5 , Z6, Z7 , Z8 が出力さ れ、 これらが回路 9 3 6により排他的論理和演算が行われ、 その演算結 果 Bが回路 9 36から出力される。 演算結果 Bは、 回路 9 3 7により右 に 1バイ ト巡回シフト (この図 3 2では、 図 3 1と同じく、 1ビット単 位ではなく、 Sボックスが処理するビット長単位 (1バイ ト単位) のシ フトをする) されるとともに、 回路 9 3 8で演算結果 Aと排他的論理和 演算される。 この演算結果 Cは、 回路 9 3 9により上 (左) に 1バイ ト 巡回されるとともに、 回路 93 7の出力との排他的論理和演算が回路 9
40で行われる。 その演算結果 Dは、 回路 94 1により上 (左) に 2バ ィ ト巡回されるとともに、 回路 93 9の出力と排他的論理和演算が回路 94 2で行われる。 その演算結果 Eは、 回路 943により (右) に 1バ ィ ト巡回されるとともに、 回路 94 1の出力と排他的論理和演算が回路 944で行われる。 回路 944の出力 Fが Z l,, z 2,, ζ 3' , z 4,とし て、 回路 94 3の出力が z 5' , z6', z7', z8,として出力される。 ここで、 S 5, S Cは Sボックス第 1変換部 1 3と論理シフトを、 S 6 , S 9は Sボックス第 2変換部 1 4と論理シフトを、 S 7, 3 は3 ボックス第 3変換部 1 5と論理シフトを、 S 8, S Bは Sボックス第 4 変換部 1 6と論理シフトを用いて構成されている。 論理シフトは、 各変 換部からの 8ビット出力データを 3 2ビット出力データ中の所定の位置 に出力するために利用され、 S 5, SAでは 0, S 6, S Bでは 1バイ ト、 S 7, S Cでは 2バイ ト、 S 8, S 9では 3バイ ト左シフトするよ うに設定されている。 即ち、 変換部における 8ビットの出力を zとする と、 3 2ビッ トの出力は、 S 5 , 3 では [0, 0, 0, z] (0は 8 つの各ビットが 0であることを示す) 、 S 6, 3 では [0, 0, z , 0 ] 、 S 7 , S Cでは [0, z, 0, 0] 、 S 8 , S 9では [ z, 0, 0, 0] となる。
なお、 実装上は、 直接所定の出力を出すように計算された 8ビット入 力、 3 2ビット出力の置換表を用意してもよい。
図 3 1 , 図 3 2の場合は、 図 26に示した従来の E 2暗号で使われて いた置換処理よりも高速で、 かつ、 柔軟な実装が可能となる装置を提供 できる。
図 1 1において、 S関数部 20にある Sボックスを全種類異なる Sポ ッタスで個別に構成した場合には、 8個の変換テーブル Tが必要になる のに対し、 図 1 2のような構成にすることにより、 少なくとも変換テー ブル Tを記憶する全体の記憶容量を 1 / 2にすることができる。
また、 図 1 2に示した Sボックス第 1変換部 1 3、 Sボックス第 2変 換部 14に対して、 8個の 8ビットデータを時分割に入力させることに より、 従来の個別の 8個の Sボックスを、 図 1 2に示した Sボックス第 1変換部 1 3と Sボックス第 2変換部 14のみで代替えすることができ る。
図 1 3は、 S関数部 20の Sボックスの他の例を示す図である。
具体的な構成に関しては、 松井, 桜井 「ガロア体除算回路及び乗除算 共用回路」 (特許登録番号 264 1 28 5 [H9. 5. 2] ) に詳しく 述べられている。
Sボックス変換部 2 1には、 8ビットのデータが入力され、 8ビット のデータが出力される。 Sボックス変換部 2 1は、 N (ここでは、 N = 8 ) ビット線形変換部 1 7と部分体変換部 1 8と Nビット線形変換部 1 9から構成されている。 Nビッ ト線形変換部 1 7は、 8ビットのォペレ ーシヨンを行う。 部分体変換部 1 8は、 ガロア体 GF (24 ) の元であ る 4ビッ トのみのオペレーションを行う。 Nビッ ト線形変換部 1 9は、 8ビットのオペレーションを行う。 Nビット線形変換部 1 7の線形変換 部 8 5は、 図 14に示すような線形変換を行う回路である。 また、 線形 変換部 8 7は、 図 1 5に示すような線形変換を行う回路である。
なお、 線形変換部 8 5の代わりに、 ァフィン変換 (なお、 線形変換は 、 ァフィン変換の一態様であると考えられる) を行う回路を用いても構 わない。 或いは、 線形変換部 8 7の代わりに、 ァフィン変換を行う回路 を用いても構わない。 線形変換部 8 5は、 8ビッ トのデータ (X) に変 換を行い、 得られた 8ビッ トのデータ (X' ) をガロア体 GF (28 ) の元とみなし、 X, から上位 4ビットと下位 4ビッ トのデータ と X。 ) を、 それぞれ部分体 GF (24 ) の元とみなし、 部分体変換部 1 8に出力する。 ここで、 例えば、 GF (28 ) の元 ]3を既約多項式 X8 +X6 +X5 +X3 + 1 = 0の元とし、 α = ]3238 とすると、 部分体 GF (24 ) の基底は、 [1 , ひ, ひ 2 , ひ3 ] と表され、 これを用いて G F ( 24 ) の元 X。 , と表すと、 X' =X。 + ]3 という関係にな る (詳細は、 「ガロア体除算回路及び乗除算共用回路」 (特許登録番号 264 1 2 8 5 [H 9. 5. 2] 参照) 。 部分体変換部 1 8は、 4ビッ トの演算を行う演算器のみで構成されている。
ここで、 「部分体」 のとり方としては GF (2n ) に対して、 n= 2 mとなる部分体 GF (2™ ) が考えられ、 ここでの例は、 n = 8, m = 4となる。
部分体変換部 1 8は、 「ガロア体除算回路及び乗除算共用回路」 (特 許登録番号 2 64 1 28 5 [H9. 5. 2] で示された n = 8 , m=4 の時の回路を基に構成される部分体を用いた逆元回路である。 この逆元 回路の演算結果として、 各々 GF (24 ) の元とみなせる上位 4ビット のデータと下位 4ビッ トのデータ (Y1 と Υ。 ) 力 GF (28 ) 上の 元とみなせる 8ビットのデータ Yとして線形変換部 8 7に出力される。 ここで、 Υ = Υ。 + ]3Υ1 である。 以上より、 この逆元回路は、 Y = Y。 + i3Y1 = 1/ (X。 ) を演算する回路である。 また、 この逆 元回路の 「有限体」 の元の表し方 (基底の取り方) には 「多項式基底」 や 「正規基底」 というように、 「基底」 の取り方はいくつか考えられる 図 1 3の Sボックス変換部 2 1において特徴となる点は、 非線形変換 を行うために入力されたデータのビット幅 (8ビット) の半分のビット 幅 (4ビット) で演算を行う点である。 即ち、 逆元回路においては、 4 ビットのオペレーションのみが行われている点が特徴である。
このように、 4ビットのみオペレーションを行うことにより演算速度 は遅くなるかもしれないが、 回路全体の規模は、 8ビットの演算素子を 用いるよりも遙かに小さくすることができるという利点がある。
そして、 Sボックス変換部 2 1の次の特徴は、 前述した部分体変換部 1 8の両側に N = 8ビットの Nビット線形変換部 1 7と Nビッ ト線形変 換部 1 9を設けている点である。 Sボックス変換部 2 1を部分体変換部 1 8を用いて実現すると、 ランダムな値を記憶した変換テーブル Tを用 いる場合に比べて、 回路全体の規模が小さくなつたり、 構造が簡単にな るという利点があるが、 逆に、 安全性が低下する可能性がある。 そこで 、 部分体変換部 1 8の両側で線形変換又はァフィン変換を行い、 部分体 変換部 1 8を採用したことによる安全性の低下をなくすようにしている なお、 図 1 3において、 部分体変換部 1 8の両側において線形変換を 行っているが、 片側だけに設けても構わない。 或いは、 片側で線形変換 し、 別側でァフィン変換を行っても構わない。
図 2 9は、 図 1 1に示した鍵関数部 2 5を、 即ち、 S関数部 2 0と P 関数部 3 0の前にある鍵関数部 2 5を、 S関数部 2 0と P関数部 3 0の 後に配置したものである。
また、 図 3 0は、 鍵関数部 2 5を S関数部 2 0と P関数部 3 0の間に 配置したものである。
図 2 9又は図 3 0のような構成にすることにより、 図 1 1に示した構 成に比べて、 実装上高速になることが多いという効果が得られる。 更に 、 拡大鍵の生成を補正することにより、 図 2 9又は図 3 0の構成で、 同 一の入力から図 1 1の構成と同一の出力を得ることができる。 図 2 6に 示した従来の F関数においては、 2つの S関数があり、 それぞれ最初に 拡大鍵との演算を行い、 次に、 S関数による演算を行っている。 それに 対し、 図 2 9に示す場合は、 ひとつの鍵関数部 2 5を F関数の最後に配 置している。 また、 図 3 0の場合は、 ひとつの鍵関数部 2 5を S関数部 2 0と P関数部 3 0の間に配置している。
図 4 3は、 図 3に示した暗号化部 2 0 0又は復号部 5 0 0に対して図 28に示した非線形関数部 Fを用いた場合の構成図である。
左データが F関数入力データ 1 0として非線形関数部 Fに入力され、 F関数出力データ 40が出力される。 F関数出力データ 40は、 右デー タと排他的論理和演算が行われ、 その結果が次の段の左データとなる。 また、 左データは、 F関数入力データ 1 0とレて非線形関数部 Fに入力 されるとともに、 次の段の右データとして用いられる。 図 43に示す構 成においては、 非線形関数部 Fの中で鍵関数部 2 5と S関数部 20と P 関数部 30との演算が行われるため、 非線形関数部 Fにおける演算の負 荷が大きなものとなる。 この非線形関数部 Fにおける演算の負荷を分散 させて実行することにより、 処理の高速化を図る例について、 以下に図 を用いて説明する。
図 44は、 図 4 3に示した非線形関数部 Fの中から鍵関数部 25を削 除した非線形関数部 F' を用いる場合を示している。 拡大鍵 1^ は、 X OR回路 8 9 1において左データ L。 と排他的論理和演算が行われる。 また、 拡大鍵 k2 は、 XOR回路 29 7において右データ RQ と排他的 論理和演算が行われる。 左データは、 F関数入力データ 1 0として非線 形関数部 F' に入力され、 S関数部 20と P関数部 3 0との変換を受け る。 XOR回路 2 9 7の出力と F関数出力データ 40とは、 XOR回路 29 0において排他的論理和演算が行われ、 左データ を出力する。 一方、 鍵生成部 300, 600は、 拡大鍵 と k3 との排他的論理 和演算を行い、 この加工された拡大鍵 + k3 を出力する。 XOR回 路 8 9 1の出力 と拡大鍵 + k3 とが、 XOR回路 2 98におい て排他的論理和演算が行われ、 右データを出力する。 鍵生成部 300, 60 0は、 拡大鍵を加工して、 l^ + ks , k2 + k4 , k3 + k5 , · · · , k16+ k18を生成して出力する。 鍵生成部 3 00, 600は、 カロ ェされた拡大鍵を、 非線形関数処理 (F) 以外の処理に供給してデータ と演算させる。 この結果、 左データ L18と右データ R18とは、図 4 3の場 合と同じものが得られる。
加工された拡大鍵を、 非線形関数処理 (F) 以外の処理に供給してデ ータと演算させることにより、 非線形関数部 F' において、 S関数部 2 0と P関数部 30との計算をしている間に、 非線形関数部 F, の外部、 即ち、 〇1 回路2 9 7, 2 98で鍵データとの計算ができ、 鍵関数部 25の計算が非線形関数部 Fからなくなり、 非線形関数部 Fの負荷が分 散され、 高速実装が可能となる。
図 45は、 図 44の構成に対して更にホワイ ト ング拡大鍵 k Wl の 演算を拡大鍵とともに行う場合を示している。 図 4 5においては、 鍵生 成部がホワイ トユング拡大鍵の一部 k wlhighと第 1の拡大鍵 との排 他的論理和演算を予め行い (即ち、 鍵生成部が拡大鍵を加工して) 、 X OR回路 8 9 1に供給している場合を示している。
また、 鍵生成部がホワイトニング拡大鍵の一部 k Wllwと第 2の拡大鍵 k2 との排他的論理和演算を予め行い (即ち、 鍵生成部が拡大鍵を加工 して) 、 XOR回路 2 9 7に供給している場合を示している。
このようにして、 図 44に示した X OR回路 2 9 3の演算をなくすこ とができる。 また、 図 45の場合は、 鍵生成部がホワイ トエング拡大鍵 k w2 の一部 k w21wと拡大鍵 k17との排他的論理和演算を行い (即ち、 鍵生成部が拡大鍵を加工して) 、 XOR回路 2 9 9に供給している。 ま た、 鍵生成部がホワイ トユング拡大鍵の他の部分 k w2high と拡大鍵 k18 との排他的論理和演算を行い (即ち、 鍵生成部が拡大鍵を加工して) 、 01 回路8 92に供給している。
このようにして、 図 44に示した X OR回路 2 96の演算をなく して いる。
図 46は、 非線形関数部 Fが図 2 9に示したような構成をとる場合に 、 非線形関数部 Fから鍵関数部 2 5を削除し、 代わりに、 鍵生成部が拡 大鍵 kを X O R回路 2 9 8に供給する場合を示している。
また、 図 4 7は、 非線形関数部 Fが図 3 0に示したような構成をとる 場合、 非線形関数部 Fから鍵関数部 2 5を削除し、 代わりに、 鍵生成部 が非線形変換された拡大鍵 k ' = P ( k ) を X O R回路 2 9 8に供給す る場合を示している。 図 4 7の場合は、 P関数処理による演算と同一の 演算を鍵データに対して施して非線形変換された鍵データを生成し、 非 線形変換された鍵データを上記データ処理が用いる鍵データとして、 デ ータ処理の非線形関数処理 (F ) 以外の処理に供給してデータと演算さ せる場合を示している。 図 4 6及び図 4 7のいずれの場合も、 鍵関数 部 2 5を非線形関数部 Fから削除しているので、 非線形関数部 Fの演算 負荷が減少し、 非線形関数部 Fの演算と平行して非線形関数部 Fの外に ぁる 0 1¾回路2 9 8の演算を行うことができるため、 高速処理を行う ことが可能になる。
実施の形態 3 .
図 1 6は、 図 1に示した鍵生成部 3 0 0 (又は鍵生成部 6 0 0 ) の構 成図である。
鏈生成部 3 0 0は、 ビット長変換部 3 1 0と第 1の Gビッ ト鍵変換部 3 2 0と第 2の Gビット鍵変換部 3 3 0と鍵シフト部 3 4 0から構成さ れている。 鍵生成部 3 0 0には、 1 2 8ビット又は 1 9 2ビット又は 2 5 6ビッ トの鍵データが入力され、 1 2 8ビットの鍵データ と 1 2 8ビッ トの鍵データ K2 が生成され、 複数の 6 4ビッ トの拡大鍵が出力 される。 ビット長変換部 3 1 0において、 ビット数の異なる鍵データが 入力されても、 出力される鍵データのビット長が一定になるように変換 している。 即ち、 ビット長変換部 3 1 0は、 内部において上位 1 2 8ビ ットの鍵データ S Khighと下位 1 2 8ビットの鍵データ S K1()W を生成し 、 前者を第 1の Gビット鍵変換部 3 2 0と鍵シフト部 3 4 0に出力する 。 また、 後者を第 2の Gビット鍵変換部 3 3 0と鍵シフト部 3 4 0に出 力する。 また、 前者と後者の排他的論理和をとつた 1 2 8ビッ トの鍵デ 一タを第 1の Gビット鍵変換部 3 2 0に出力する。
図 1 7は、 ビット長変換部 3 1 0の内部動作を示す図である。
ビット長変換部 3 1 0に 1 2 8ビッ トの鍵データが入力された場合に は、 その入力された鍵データがそのまま上位 1 2 8ビットの鍵データ S Khighとして出力される。 また、 下位 1 2 8ビッ トの鍵データ S KlOT は 、 0に設定されて出力される。
次に、 ビット長変換部 3 1 0に 1 9 2ビットの鍵データが入力された 場合には、 入力された鍵データの上位 1 2 8ビットのデータがそのまま 上位 1 2 8ビットの鏈データ S Khighとして出力される。 また、 入力さ れた 1 9 2ビットの鍵データの下位 6 4ビットのデータと、 その下位 6 4ビットのデータが反転された 6 4ビットの反転データとが連結され、 下位 1 2 8ビットの鍵データ S KlQW が生成され出力される。
次に、 2 5 6ビットの鍵データが入力された場合には、 入力された鏈 データの上位 1 2 8ビットが S Khighとして、 下位 1 2 8ビットが S K l0 w として出力される。
第 1の Gビット鍵変換部 3 2 0には、 ビット長変換部 3 1 0から 1 2 8ビッ トの鍵データ S Khighと S KlQW の排他的論理和が入力され、 2段 の非線形変換を受けた後、 上位 1 2 8ビットの鍵データ S Khighと排他 的論理和がとられ、 更に 2段の非線形変換を受け、 1 2 8ビットの鍵デ 一タ1^ が出力される。
ビット長変換部 3 1 0に入力された鍵データの長さが 1 2 8ビッ トの 場合には、 第 1の Gビッ ト鍵変換部 3 2 0から出力された 1 2 8ビット の鍵データと入力された元の鍵データとを用いて鍵シフト部 3 4 0が拡 大鍵を生成する。 ビット長変換部 3 1 0に入力された鍵データの長さが 1 9 2ビッ ト又は 2 5 6ビッ トの場合には、 第 1の Gビット鍵変換部 3 2 0から出力された 1 2 8ビットの鍵データを更に第 2の Gビット鍵変 換部 3 3 0に入力し、 下位 1 2 8ビットの鍵データ S Klow と排他的論 理和をとり、 2段の非線形変換を行った後、 1 2 8 ビッ トの鍵データ K 2 を出力する。 鍵シフト部 3 4 0には、 第 1の Gビット鍵変換部 3 2 0 と第 2の Gビット鍵変換部 3 3 0の両方から出力された 2つの 1 2 8ビ ットの鍵データが出力され、 両者と入力された元の鍵データとを用いて 鍵シフト部 3 4 0が拡大鍵を生成する。
鍵シフ ト部 3 4 0は、 シフ トレジスタ A 3 4 1とシフ トレジスタ B 3
4 2 とシフ トレジスタ C 3 4 3 とシフ トレジスタ D 3 4 4とシフ ト制御 部 3 4 5を備えている。 シフト制御部 3 4 5からは、 セレク ト信号 3 4 6が各シフトレジスタに出力され、 シフトレジスタの動作を制御してい る。
図 1 8は、 シフ トレジスタ A 3 4 1の構成を示す図である。
シフトレジスタ A 3 4 1は、 1 2 8ビット分のスィツチ群を持ったセ レクタ A 3 4 7と、 1 2 8ビットのレジスタ A 3 4 8を有している。 セ レク ト信号 3 4 6は、 セレクタ A 3 4 7の各スィツチを A側又は B側の いずれかに全て同時に接続することを指示するスィツチ信号を含んでい る。 図においては、 セレク ト信号 3 4 6によりセレクタ A 3 4 7のスィ ツチ群が Aを選択した場合を示しており、 この場合には、 レジスタ A 3 4 8が 1 7ビット左側に巡回シフトする場合を示している。 また、 スィ ツチ群が Bを接続した場合には、 レジスタ Aが左側に 1 5ビット巡回シ フトすることを示している。 この 1 5ビットシフト、 或いは、 1 7ビッ トシフトは、 1クロックサイクルで行われる。
なお、 巡回シフ トのシフ ト数 (1 5 , 1 7 ) は一例であり、 他のシフ ト数でも構わない。
図 1 9は、 シフト制御部 3 4 5に記憶されている制御テーブルの一部 分を示す図である。
この制御テーブルは、 各ク口ック毎にレジスタを何ビットシフトさせ るかを記憶しているテーブルである。 例えば、 レジスタ A制御テーブル においては、 1クロック目で 1 5ビットシフトさせることを示している 。 また、 2クロック目で更に 1 5ビットシフトさせることを示している 。 同様に、 3クロック目、 4クロック目も 1 5ビットシフトさせること を示している。 5クロック目〜 8クロック目は、 それぞれ 1 7ビットシ フトさせることを示している。
図 2 0は、 1 2 8ビットの鍵データから拡大鍵を生成する場合に、 シ フト制御部 3 4 5が図 1 9に示すテーブルを用いて各シフトレジスタを 制御した結果を示す図である。
シフトレジスタ A 3 4 1には、 ビット長変換部 3 1 0から入力した上 位 1 2 8 ビッ トの鍵データ S Khighが設定される。 シフ トレジスタ B 3
4 2には、 第 1の Gビット鍵変換部 3 2 0から出力した 1 2 8ビッ トの 鍵データ Ki が設定される。 このような状態で、 図 1 9に示す制御テー ブルに従って、 シフトレジスタ A 3 4 1とシフトレジスタ B 3 4 2が動 作する。 図 2 0において、 斜線を引いた部分は無視され、 出力されない ことを示している。 それ以外の斜線が引かれていない部分は、 図 2 1に 示すように、 拡大鍵として出力されるものである。
図 2 1は、 レジスタの値と拡大鍵の対応を示す図である。
図 2 0においては、 1クロック毎に 1 5ビットずつ 4回シフトし、 5 クロック目からは 1クロック毎に 1 7ビットシフトする場合を示してい る。 シフ トレジスタ A 3 4 1とシフ トレジスタ B 3 4 2から上位 6 4ビ ット及ぴ下位 6 4ビットを拡大鍵として出力するかしないかの判断、 或 いは、 その出力する順番は、 図示していない制御テーブルに記載されて いるものとし、 その制御テーブルに基づいて、 セレク ト信号 346に出 力指示信号を含ませてシフトレジスタに出力することにより、 各シフト レジスタから拡大鍵が 64ビットずつ出力されることになる。
図 2 2は、 1 9 2ビット又は 25 6ビットの鍵データから拡大鍵を生 成する場合を示している。
即ち、 シフトレジスタ A 34 1にビット長変換部 3 1 0から入力した 上位 1 2 8ビットの鍵データ S Khighをセッ トし、 シフ トレジスタ B 3 42に下位 1 28ビットの鍵データ S Kl0ff をセットし、 シフトレジス タ C 34 3に第 1の Gビット鍵変換部 3 20力、ら出力した 1 2 8ビット の鍵データ をセットし、 シフトレジスタ D 344に第 2の Gビット 鍵変換部 3 3 0から出力した 1 28ビットの鍵データ Κ2 をセットする 場合を示している。
斜線部分は、 拡大鍵として使用しない鍵を示している。
図 2 3は、 レジスタの値と拡大鍵の対応を示す図である。
拡大鍵として使用しない鍵や図 2 3に示すレジスタの値と拡大鍵との 対応も前述した制御部にある制御テーブルが記憶しているものとする。 図 1 9に示すように、 シフト制御部 345は、 シフトレジスタ A 34 1に設定された鍵データをシフトするビット数を記憶している。 即ち、 シフトレジスタ A制御テーブルに示すように、 シフトレジスタ A34 1 に設定された鍵データを Z。 = 0ビッ ト、 Z1 = 1 5ビット、 Z2 = 4 5ビット、 Z 3 = 6 0ビット、 Z 4 = 7 7ビット、 Z 5 = 94ビット、 Z6 = 1 1 1ビット、 Z7 = 1 28ビット移動させることにより、 拡大 鍵を次々と生成することになる。
各シフ ト数の和は、 1 5 + 1 5 + 1 5 + 1 5+ 1 7 + 1 7+ 1 7 + 1
7= 1 2 8となり、 1 28ビットのレジスタを 1 28ビッ ト巡回シフト することにより、 レジスタは初期状態に戻ることになる。
このように、 シフ ト数の総和を 1 28ビット (レジスタのビット数) として初期状態に戻す理由は、 初期状態のレジスタに対して次の処理が あった場合に、 そのまま次の処理が開始できるからである。 また、 逆変 換処理 (復号) を行う場合にも、 拡大鍵を生成するための処理の開始が 同じく初期状態のままから開始するため、 初期状態をセットすることに より、 変換処理 (暗号化) と逆変換処理 (復号) のどちらも行うことが できる。 また、 シフ ト数の総和を 1 28ビット (レジスタのビット数) より大きくしていないのは、 例えば、 1 28ビット (レジスタのビット 数) 以下の 2ビット巡回シフトと 1 28ビット (レジスタのビット数) より大きい 1 30ビット巡回シフトは同一値になってしまい、 一巡回以 上のシフ ト ( 1 2 8ビット以上のシフト数) としてしまうことによるシ フトレジスタ内の状態として、 同じ値の発生を防止するためである。 レ ジスタ A制御テーブルは、 レジスタを一巡回させるに当たり、 その途中 でできるだけ不規則なシフト数になる値を設定することが望ましい。 し かし、 シフ トレジスタの構成を簡単にするには、 なるべく限られたシフ ト数でシフトするようにしたい。 そこで、 レジスタを 1個 (1クロック ) で 1 5ビットと 1 7ビットとの 2種類のシフトができるように構成し 、 この 2種類のシフ トを用いて、 更に、 以下のようにして、 異なる数の シフトを実現している。
Zx — Z。 = 1 5 (ここで、 1、 一 Z。 = とする) ヽ Z2 - Zl = 30 (即ち、 Z2 — Zi ^ S Bi ) であり、 Z2 — Zi = 2 (Zx -Z0 ) という関係にする。 また、 シフ トレジスタ B制御テーブルに示すよう に、 Z5 — Z4 = 34 (ここで、 Z5 — Z4 = 2 B2 とする) 、 Z6 - Z 5 = 1 7 (即ち、 Z6 — Z5 =B2 ) であり、 Z5 — Z4 = 2 (Z6 -Z5
) という関係にする。 即ち、 シフ ト数の差分を 1 5ビットと 30ビッ ト又は 1 7ビットと 34ビットとし、 1回のシフト数 ( 1 5ビットと 1 7ビッ ト) の整数倍 (2倍= 1倍) となるシフ ト数 (30ビット又は 3 4ビッ ト) とする。
このように、 シフト数の差分を 1回のシフト数又は 1回のシフト数の 2倍以上の整数倍 ( I倍、 Iは 2以上の整数) のいずれかとすることに より、 シフ トレジスタ A 34 1を 1回又は 2回 ( I回) 動作させること により、 制御テーブルに記憶したシフト数のオペレーションを容易に実 現することができる。 2回 ( I回) 動作させるということは、 シフ トレ ジスタ A 34 1を動作させるために供給されている動作クロックの 2ク ロック ( Iクロック) サイクルでシフト動作が終了することを意味して レ、る。
ここで、 I回 (2回) シフトさせる場合、 I一 1回 (2— 1 = 1回) 目までのシフトしたデータは上位のデータも下位のデータもともに無視 し、 拡大鍵として使用しない。 例えば、 図 1 9の Z1 = 1 5から Z2 = 4 5ヘシフ トする場合は、 1 = (Ζ2 -Ζ ) / (1回のシフ ト数) = (45 - 1 5) /1 5 = 2となり、 1— 1回目 (2— 1 = 1回目) のシ フト後のデータは、 上位のデータも下位のデータもともに無視し、 拡大 鍵として使用しない。 これは、 図 20では、 k e y [8] と k e y [9 ] に斜線が引かれている通り、 拡大鍵として使用しないとして示されて いる。 そして、 I回目 (2回目) のシフト後のデータの上位のデータと 下位のデータのいずれか又は両方を拡大鍵として用いる。 これは、 図 2 0では、 k e y [1 2] と k e y [1 3] とが拡大鍵として出力される ことが示されている。
このように、 2以上の整数倍のシフトを行うのは、 1 5ビット又は 1 7ビットのみのシフトだけでなく、 30 (= 1 5 X 2) ビット又は 34 (= 1 7 X 2) ビット (又は、 45 (= 1 5 X 3) ビット又は 5 1 (= 1 7 X 3 ) ビット等) のシフトも行えるようにし、 シフト数を変化させ 、 安全性をより高めるためである。 また、 前述した拡大鍵として使用し ない場合を設けているのも、 同様に、 より安全性を高めるためである。 拡大鍵として使用しないデータ (図 2 0と図 2 2において、 斜線を引 かれた拡大鍵として使用しない鍵) は、 例えば、 ハードウェアの処理、 或いは、 プログラムの処理が一連に連続して行われないような場合に発 生させることが望ましい。 例えば、 図 3において、 データ正変換部 (F L) とデータ逆変換部 (F L-1) のオペレーションを行うとき、 或いは 、 その前後、 或いは、 プログラムにおいて関数呼び出し、 或いは、 サブ ルーチンコール、 或いは、 割り込み処理を行う場合等の処理の切れ目、 或いは、 処理の変化時に行うようにするのが望ましい。
また、 図 1 9に示した制御テーブルの特徴は、 BL = 8 X 2 - 1 = 1 5 (B, = 8 X J , - 1 , ここで、 は 1以上の整数) ビッ トのシフ ト数と、 B2 = 8 X 2 + 1 = 1 7 (B2 = 8 X J 2 + 1、 ここで、 J 2 は 0以上の整数、 = J 2 又は ≠ J 2 ) ビッ トのシフト数を指定 していることである。 シフトの量を 8の倍数に土 1とすることにより、 奇数ビッ トのシフトを行うことになり、 拡大鍵のデータ処理部への作用 が 8ビッ ト単位、 即ち、 偶数単位であることから、 偶数ビットだけシフ トするよりも安全性が高まる。 また、 シフト量として 8の倍数に 1ビッ トの土を行っているだけなので、 例えば、 1ビットシフト命令しか持た ない C P U等においては、 3ビットや 5ビットシフトするよりも、 高速 処理を行うことが可能な場合がある。 また、 このシフ ト処理を 1ビット シフトしかできないハードウェアを用いて行う場合にも、 同様に、 高速 処理を適用することができる場合がある。
前述したビット長変換部 3 1 0の説明においては、 3種類のビット幅 の鍵データを入力する場合を示したが、 1 2 8ビット (Gビット) と 2 56ビッ ト (2Gビッ ト) の間のビッ ト長 Q (G< Q< 2 G) を持つ鍵 データが入力された場合も、 何等かのアルゴリズムを用いて 256ビッ トの鍵データが入力された場合と同様のサイズに鍵データを伸長させる ことができる。 即ち、 Gビッ トと 2 Gビッ トの間の長さ Qを持つ鏈デー タが入力された場合、 ビッ ト長変換部 3 10によって Qビットの鍵デー タを 2 Gビッ トの鍵データに変換することができる。
次に、 図 34を用いて等価鍵の非存在証明の説明をする。
以下の図 34の説明では、 「十」 で排他的論理和演算を意味するとす る。
ここで、 2つの 1 28ビットの鍵データ S K 1と S K 2 (S K 1≠ S
K 2) とを入力するものとし、 ビッ ト長変換部 3 10力 SK 1から S K lhish= S K 1 = (S KH 1 I S KL 1) を、 また、 SK2力 ら SK 2high= S K 2 = (SKH2 I SKL 2) を出力するものとする。 ここ で、 SKH i ( i = l, 2) は S K iの上位 64ビッ トのデータであり 、 SKL i ( i = l, 2) は S K iの下位 64ビッ トのデータである。
SKH 1と SKH2との排他的論理和を Δ Aとし、 SKL 1と SKL 2との排他的論理和を ΔΒとすると、 S K 1≠ S K 2であるから、 「少 なく とも、 厶 ≠0又は厶8≠0」 が成り立つ。
図 34に示すように、 この Δ Aと Δ Bが 2段の非線形変換を受けてい くことによって、 ΔΑ+AD, ΔΒ + Δ〇に変化する。 このことは、 S Klhishと SK2highとの排他的論理和 (ΔΑ | ΔΒ) 力 S Κ 1 highから 2段の非線形変換を受けたデータと S K 2highから 2段の非線形変換を 受けたデータとの排他的論理和 (ΔΑ+AD I ΔΒ + ΔΟ に変化した ことを意味する。 従って、 この 2段の非線形変換を受けたデータが、 排 他的論理和回路 9 99でそれぞれ S K lhigh, S K 2 highと排他的論理和 演算されると、 この 2つのデータの排他的論理和は (AD I Δ C) にな る。 さて、 ここで、 非線形変換が全単射関数であれば、 ΔΧ≠0の入力 に対して、 Δ Υ≠ 0を出力することから、 「少なく とも、 ΔΑ≠0又は AB≠0」 であるならば、 「少なくとも、 Δ〇≠0又は AD≠0」 とな る。 故に、 2段の非線形変換によって SK lhighと SK2highから同じデ ータを出力することはあり得ないことを意味しており、 等価鍵の非存在 証明となる。
一方、 図 3 5に示すように、 2段の非線形変換ではなく、 3段の非線 形変換を行う場合について考えてみる。 「少なくとも、 ΔΑ≠0又は厶 Β≠0」 が成り立つのであるから、 ΔΑか ΔΒのいずれかが 0である場 合があり得る。 もし、 Δ Α= 0であるとすると Δ C = 0となり、 また、 上記と同じ議論により、 SKlhighと SK2highとの排他的論理和 (0 I 厶 B) 力 SKlhighから 3段の非線形変換を受けたデータと、 SK 2hi から 3段の非線形変換を受けたデータとの排他的論理和 ( Δ B +厶 E I ΔΌ) に変化する。 従って、 この 3段の非線形変換を受けたデータが 、 排他的論理和回路 9 99でそれぞれ S K lhigh, S K 2highと排他的論 理和演算されると、 この 2つのデータの排他的論理和は (ΔΒ + ΔΕ I 厶 B + AD) になる。 さて、 ここで、 ΔΒ = Δϋ = ΔΕ≠0が成り立つ と仮定すると、 (ΔΒ + ΔΕ I Δ Β+ AD) = (0 | 0) となる。 つま り、 この 3段の非線形変換を受けたデータが、 それぞれ SK lhish, S K2highと排他的論理和演算すると、 その演算結果が一致することを意 味する。 即ち、 SK lhighと SK2hishから同じデータを出力することを 意味し、 暗号の安全性上問題が多い等価鍵が存在することになる。
以上述べた 3段の非線形変換のみならず、 一般的な非線形変換では異 なる SK 1と SK 2から等価な を出力する、 即ち、 等価鍵が存在す る可能性があるが、 本実施の形態で述べる 2段の非線形変換なら等価鍵 が存在しないことを証明できる。 また、 等価鍵の非存在証明が付けられるのは、 この 2段の非線形変換 以外にもあると思われるが、 2段の非線形変換を行う場合は、 等価鍵の 非存在証明を付けることができる上、 簡単な構成であるため、 2段の非 線形変換をするのが望ましい構成である。
図 2 4は、 暗号化用データ変換装置 1 0 0又は復号用データ変換装置 4 0 0が実装されるコンピュータを示す図である。
暗号化用データ変換装置 1 0 0又は Z及ぴ復号用データ変換装置 4 0 0は、 プリントサーキットボードとしてバスに接続される。 このプリン トサーキットボードには、 C P Uやメモリや論理回路素子が備えられて おり、 前述してきた動作を行うことにより C P Uから供給される平文を 暗号文にし、 C P Uに返送する。 或いは、 C P Uから送られてきた暗号 文を平文に復号し、 C P Uに返送する。
暗号化用データ変換装置 1 0 0又は復号用データ変換装置 4 0 0は、 このように、 全てハードウェアを用いて実現することが可能である。 ま た、 暗号化用データ変換装置 1 0 0又は復号用データ変換装置 4 0 0は 、 全てソフトウエアを用いてデータ変換方法としても実現することも可 能である。 即ち、 磁気ディスク装置やフレキシブルディスク装置に記憶 されたプログラムを用いて前述した動作を行わせることができる。 或い は、 図示していないが、 ハードウェアとソフトウェアを組み合わせて前 述した動作を実現させるようにしても構わない。 また、 図示していない 力 S、 1台のコンピュータで前述した動作全てを実現する必要はなく、 サ ーバとクライアント、 或いは、 ホス トコンピュータと端末コンピュータ のように、 分散されたシステムで前述した動作を達成するようにしても 構わない。
前述した図 1〜図 4 7の図中に矢印が記載されている図面は、 矢印の 方向が動作の流れを示しており、 前述した図 1〜図 4 7の図中に矢印が 記載されている図面は、 データ変換装置のブロック図でもあり、 かつ、 フローチャート図でもある。 そして、 前述したブロック図における 「何 々部」 と記載されている部分は、 「何々工程」 又は 「何々処理」 と読み 換えることにより、 データ変換方法を示す動作フローチャート又はプロ グラムフローチャートとなる。
なお、 前述した実施の形態では、 1 2 8ビットの平文と暗号文の場合 を示したが、 2 5 6ビットの平文と暗号文やその他のビット数の平文と 暗号文の場合でもよい。
また、 前述した実施の形態では、 1 2 8 , 1 9 2 , 2 5 6ビッ トの鍵 データと 6 4ビットの拡大鍵の場合を示したが、 その他のビット数の場 合でもよい。
平文と暗号文と鍵データと拡大鍵のビット長が変わった場合には、 も ちろん、 そのビット長に対応して、 各部や各工程や各処理の処理するビ ット長も変わる。 産業上の利用可能性
この発明の実施の形態によれば、 暗号化と復号とが同一のァルゴリズ ムで行えるように、 データ正変換部 (F L ) 2 5 1とデータ逆変換部 ( F L—1) 2 7 1を備えているので、 暗号化部 2 0 0と復号部 5 0 0を兼 用して用いることができる。
また、 この発明の実施の形態によれば、 変換テーブル Tを兼用して S ボックス第 1変換部 1 3と Sボックス第 2変換部 1 4を構成しているの で、 構成が簡単になるという効果がある。
また、 この発明の実施の形態によれば、 部分体変換部 1 8を用いてい るので、 構成が簡単になるとともに、 線形変換部 8 5と線形変換部 8 7 を設けているので、 部分体変換部 1 8を用いた場合でも安全性が向上す る。
また、 この発明の実施の形態によれば、 シフト制御部 3 4 5がシフト レジスタを整数回動作させることにより 1 5ビットゃ 1 7ビッ トのみの 一定値でないシフト数 (例えば、 3 0ビットや 3 4ビット) を用いた鍵 データのシフトを行うことができ、 安全性を向上させることができる。 また、 この発明の実施の形態によれば、 シフトレジスタにおいてシフ トされたデータから拡大鍵として使用しない場合を設けているので、 更 に、 安全性を向上させることができる。
また、 この発明の実施の形態によれば、 ビッ ト数の異なる鍵データが 入力された場合でも、 ビット長変換部 3 1 0により一定長の鍵データに 変換するので、 柔軟性のある鍵生成オペレーションが行える。
また、 この発明の実施の形態によれば、 第 1の Gビット鏈変換部 3 2 0の中で 2段の非線形変換を用いていることにより、 について等価 鍵が存在しないことが証明でき、 安全性を向上させることができる。 また、 この発明の実施の形態によれば、 鍵関数部 2 5の配置位置を変 更したので、 高速処理が可能になる。

Claims

請求の範囲
1. 鍵データを入力して少なく ともデータの暗号化とデータの 復号とのいずれかのデータ変換を行うデータ処理部を備えたデータ変換 装置において、
上記データ処理部は、 データ変換を行うデータを第 1のデータ (L) と第 2のデータ (R) に分割してデータ変換するとともに、
上記データ処理部は、
第 1のデータ (L) を変換するデータ正変換部 (F L) と、 第 2のデータ (R) を上記データ正変換部 (F L) の変換とは逆の変 換をするデータ逆変換部 (F L—1) と
を備えたことを特徴とするデータ変換装置。
2. 上記データ処理部は、 第 1の入力と第 2の入力と、 第 1の 出力と第 2の出力とを有し、
上記データ正変換部 (F L) は、 変換したデータをデータ処理部の第
1の入力へ出力し、
上記データ逆変換部 (F L— は、 データ処理部の第 2の出力から出 力されたデータを変換して出力することを特徴とする請求項 1記載のデ ータ変換装置。
3. 上記データ処理部は、 第 1の入力と第 2の入力と、 第 1 の出力と第 2の出力とを有し、
上記データ正変換部 (F L) は、 変換したデータをデータ処理部の第 2の入力へ出力し、
上記データ逆変換部 (F L—1) は、 データ処理部の第 1の出力から出 力されたデータを変換して出力することを特徴とする請求項 1記載のデ ータ変換装置。
4. 鍵データを入力して少なくともデータの暗号化とデータの 復号とのいずれかのデータ変換を行うデータ処理部を備えたデータ変換 装置において、
上記データ処理部は、 データを非線形変換する非線形変換部を備え、 非線形変換部は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Tを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換部 (s L ) と、
変換するデータの少なくとも他の一部分のデータを第 2.部分データと して入力して、 上記変換テーブル Tを用いた変換と第 2部分用演算とを 用いて第 2部分データを変換し、 変換したデータを出力する第 2変換部 "2 ) と
を備えたことを特徴とするデータ変換装置。
5. 上記第 1変換部 (S l ) は、 変換テーブル Tにデータ yi を入力してデータ S l (Yl ) を出力させ、 このデータをデータ Z l == S l (y i ) として出力し、
上記第 2変換部 (s2 ) は、 変換テーブル Tにデータ y2 を入力して データ S i (y2 ) を出力させ、 データ S l (y2 ) を巡回シフト処理 したデータ (r o t ( S i (y2 ) ) ) をデータ z 2 = r o t ( s i ( y2 ) ) として出力することを特徴とする請求項 4記載のデータ変換装
6. 上記データ処理部は、 更に、
変換するデータの第 1部分データと第 2部分データとは異なる一部分 のデータを第 3部分データとして入力し、 第 1部分データと第 2部分デ 一タと第 3部分データとは異なる一部分のデータを第 4部分データとし てそれぞれ入力して、 上記変換テーブル Tを用いた変換と、 第 2変換部 (s2 ) の第 2部分用演算とはそれぞれ異なる第 3部分用演算と第 4部 分用演算とにより、 第 3部分データと第 4部分データとをそれぞれ変換 し、 変換したデータを出力する第 3変換部 ( s3 ) と第 4変換部 (s4 ) とを備えたことを特徴とする請求項 4記載のデータ変換装置。
7. 鍵データを入力して少なくともデータの暗号化とデータの 復号とのいずれかのデータ変換を行うデータ処理部を備えたデータ変換 装置において、
上記データ処理部は、 変換するデータを入力し、 入力したデータをあ る体 (f i e 1 d) の元と見なし、 その部分体を用いた逆元回路を用い て変換し、 変換したデータを出力する部分体変換部と、
上記部分体変換部の前段と後段との少なくともいずれか一方に変換す る GF (2n ) 上のデータを自然な対応 GF (2) n の元とみなし、 G F (2) 上のべク トル空間 GF (2) n のァフィン変換部を備えたこと を特徴とするデータ変換装置。
8. 上記部分体変換部は、 N (Nは偶数) ビットのデータ Xを X-Xo + jS Xi (X。, X :部分体の元、 |3 : もとの体の元) とな る上位の ビットのデータ XL と下位の NZ2ビットのデータ X。 に等分して、 Y = Y。 + 0 = 1/ (X。 + β X, ) (但し、 Χ= 0 のとき Υ= 0) となる上位の Ν/ 2ビットのデータ と下位の N/2 ビッ トのデータ YQ をそれぞれ N/ 2ビット単位で演算してデータ Yを 求める複数の N/2ビット演算器のみを有することを特徴とする請求項 7記載のデータ変換装置。
9. 鍵データを入力して少なくともデータの暗号化とデータの 復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 各段ごとに拡大鍵を入力して非線形変換をする 多段に接続された複数段の非線形データ変換部を有し、
上記鍵生成部は、 上記複数段の非線形データ変換部の各段毎に対して 供給する拡大鍵を生成するにあたり、 鍵データと鍵データから生成され た鍵データに依存するデータとの少なくともいずれかを入力して予め定 められたビット数 Zi , Z2 , ■ · · , Zffl (ここで、 i, j, kは、 1〜! nのいずれか 1つの値とし、 Zk — Zj = I X (Zi+1 -Zj ) = I XB ( Iは整数、 B = Zi+1 — Zi ) ) だけ、 巡回シフトして、 この巡 回シフトした鍵データから各段の非線形データ変換部の拡大鍵を生成す る鍵シフト部を有するとともに、
上記鍵シフト部は、
1回の動作で (Zi+1 — Zi ) ビット (Bビット) の巡回シフトをす る巡回シフトレジスタと、
Z; ビット巡回シフトされた鍵データに対して巡回シフトレジスタを 1回動作させて (Zi+1 — Zi ) ビット (Bビット) の巡回シフ トを行 わせることにより、 巡回シフトレジスタに Zi+1 ビット巡回シフトされ た鍵データを生成させ、 Zi+1 ビッ ト巡回シフ トされた鍵データに対し て巡回シフトレジスタを I回動作させて I X (Zi+1 — Zi ) ビット ( I XBビット) の巡回シフトを行わせることにより、 巡回シフトレジス タに Zi+2 ビット巡回シフトされた鍵データを生成させる制御部と を有することを特徴とするデータ変換装置。
1 0. 上記巡回シフ トレジスタは、 巡回シフ トレジスタを動作 させるために供給されている動作クロックの 1クロックサイクルで Zi+1 一 Zi ビット (Bビット) の巡回シフ トをする回路であることを特徴 とする請求項 9記載のデータ変換装置。
1 1. 上記巡回シフト回路は、 (Zi+1 — ビット (Bビ ッ ト) の値として、 Bi - S X JL + l (J, = 0以上の整数) ビッ ト と、 B2 = 8 X J2 — 1 ( J2 = 1以上の整数、 と J2 は無関係、 即 ち、 ≠ J2 又は = J2 ) ビッ トとのいずれかの値を選択するセ レクタを備えたことを特徴とする請求項 9記載のデータ変換装置。
1 2 , 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 各段ごとに拡大鍵を入力して非線形変換をする 多段に接続された複数段の非線形データ変換部を有し、
上記鍵生成部は、 上記複数段の非線形データ変換部の各段毎に対して 供給する拡大鍵を生成するにあたり、 ある鍵データを予め定められたビ ット数 (Bビット) だけ順に巡回シフトして、 この巡回シフトした鍵デ ータから各段の非線形データ変換部の拡大鍵を生成する鍵シフト部を有 するとともに、
上記鍵シフト部は、 Bビットだけ順に巡回シフトしたデータのうち、 一部のデータを無視して拡大鍵を生成せず、 残りの他のデータから拡大 鍵を生成することを特徴とするデータ変換装置。
1 3. 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、 上記鍵生成部は、
Gビットの Gビット鍵データを入力して変換し、 Gビットの第 1の G ビット変換鍵データを出力する第 1の Gビット鍵変換部と、
上記第 1の Gビット鍵変換部から出力された第 1の Gビット変換鍵デ ータを入力し、 更に変換して Gビッ トの第 2の Gビット変換鍵データを 出力する第 2の Gビット変換部と
を備え、 上記鍵生成部が Gビッ ト鍵データ Kを入力した場合は、 Gビ ット鍵データ Kを第 1の Gビット鍵変換部に入力して変換し、 第 1の G ビット鍵変換部により出力された第 1の Gビット変換鍵データ を変 換された Gビット鍵データとして出力し、
上記鍵生成部が 2 Gビット鍵データ Kを入力した場合は、 2 Gビット 鍵データ Kから Gビット鍵データを生成して生成した Gビット鍵データ を第 1の Gビット鍵変換部に入力して変換して第 1の Gビット変換鍵デ 一タ1^ を出力し、 第 1の Gビッ ト変換鍵データ を第 2の Gビット 変換部に入力して変換して第 2の Gビッ ト変換鍵データ K2 を出力し、 第 1の Gビット鍵変換部により出力された第 1の Gビット変換鍵データ Κ, と、 第 2の Gビット変換部により出力された第 2の Gビッ ト変換鍵 データ Κ2 とを連結して、 変換された 2 Gビット鍵データ (Κ^, Κ2 ) として出力することを特徴とするデータ変換装置。
1 4 . 上記第 1の Gビット鍵変換部は、
Gビッ ト鍵データを非線形変換する 2段の非線形データ変換部と、 2段目の非線形データ変換部から出力された変換途中の Gビット鍵デ ータと、
第 1の Gビット鍵変換部が入力した Gビット鍵データとの論理演算を 行う論理演算部と
を備えたことを特徴とする請求項 1 3記載のデータ変換装置。
1 5 . 上記鍵生成部は、 更に、 Qビット (G < Q < 2 G ) の鍵 データを入力した場合、 Qビットの鍵データを 2 Gビットの鍵データに するビット長変換部を備えたことを特徴とする請求項 1 3記載のデータ
1 6 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
データ変換を行うデータと鍵データとを論理演算する鍵関数部と、 データ変換を行うデータを他のデータへ置換変換する S関数部と、 データ変換を行うデータ同士で論理演算する P関数部と
を有する非線形関数部 (F ) を備え、
非線形関数部 (F ) は、 鍵関数部を S関数部と P関数部の間に配置し たことを特徴とするデータ変換装置。
1 7 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
データ変換を行うデータと鍵データとを論理演算する鍵関数部と、 データ変換を行うデータを他のデータへ置換変換する S関数部と、 データ変換を行うデータ同士で論理演算する P関数部と
を有する非線形関数部 (F ) を備え、
非線形関数部 (F ) は、 鍵関数部を S関数部と P関数部との両者の前 と両者の後とのいずれかに配置したことを特徴とするデータ変換装置。
1 8. 上記 S関数部は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Tを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換部 (s 丄 ) と、
変換するデータの少なくとも他の一部分のデータを第 2部分データと して入力して、 上記変換テーブル Tを用いた変換と第 2部分用演算とを 用いて第 2部分データを変換し、 変換したデータを出力する第 2変換部 ( s2 ) と
を備えたことを特徴とする請求項 1 6記載のデータ変換装置。
1 9. 少なく ともデータの暗号化とデータの復号とのいずれか のデータ変換を行うデータ処理部を備えたデータ変換装置において、 デ ータ変換を行うデータ同士で論理演算する P関数部を有する非線形関数 部 (F) を備え、
上記 P関数部は、 ζ2 , · · ■, ζ8 の 8個の 4 η (ηは 1以 上の整数) ビットデータを入力し、
上記 Z l , ζ2 , ζ3 , ζ4 の 4個のデータのうち、 少なくとも 2個 以上のデータの排他的論理和演算を行って 4 ηビットの結果 を得る 回路と、
上記 ζ5 , ζ6 , ζ7 , ζ8 の 4個のデータのうち、 少なくとも 2個 以上のデータの排他的論理和演算を行って 4 ηビットの結果 U2 を得る 回路と、
U, と U2 との排他的論理和演算を行って 4 nビッ トの結果 U3 を得 る回路と、
に対して巡回シフトをする巡回回路と、
上記巡回回路の出力と U との排他的論理和演算を行って 4 nビット の結果 U4 を得る回路と
を備え、
上記 U3 , U4 をそれぞれ 4個に分割して Ζ ι', ζ2', ' ' · , ζ8' の 8個の ηビットのデータとして出力することを特徴とする請求項 16 記載のデータ変換装置。
20. 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理を実行するデータ変 換方法において、
上記データ処理は、 データ変換を行うデータを第 1のデータ (L) と 第 2のデータ (R) に分割するとともに、
上記データ処理は、 第 1のデータ (L) を変換するデータ正変換処理 (Fし) と、
2のデータ (R) を上記データ正変換処理 (F L) の変換とは逆の 変換をするデータ逆変換処理 (F L—1) と
を備えたことを特徴とするデータ変換方法。
21. 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理を実行するデータ変 換方法において、
上記データ処理は、 データを非線形変換する非線形変換処理を備え、 非線形変換処理は、
変換するデータの一部分のデータを第 1部分データとして入力して、 入力したデータの値を他の値に変換して出力する変換テーブル Τを用い て第 1部分データを変換し、 変換したデータを出力する第 1変換処理 ( S l ) と、
変換するデータの少なくとも他の一部分のデータを第 2部分データと して入力して、 上記変換テーブル Tを用いた変換と第 2部分用演算とを 用いて第 2部分データを変換し、 変換したデータを出力する第 2変換処 理 ( s2 ) とを備えたことを特徴とするデータ変換方法。
2 2. 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理を実行するデータ変 換方法において、
上記データ処理は、 変換するデータを入力し、 入力したデータをある 体 ( i i e 1 d) の元と見なし、 その部分体を用いた逆元回路を用いて 変換し、 変換したデータを出力する部分体変換処理と、
上記部分体変換処理の前段処理と後段処理との少なくともいずれか一 方に変換する GF (2n ) 上のデータを自然な対応で G F (2) n の元 とみなし、 GF (2) 上のベタ トル空間 GF (2) " のァフィン変換処 理を備えたことを特徴とするデータ変換方法。
2 3. 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 各段ごとに拡大鍵を入力して非線形変換をする多 段に接続された複数段の非線形データ変換処理を有し、
上記鍵生成処理は、 上記複数段の非線形データ変換処理の各段毎に対 して供給する拡大鍵を生成するにあたり、 鍵データと鍵データから生成 された鍵データに依存するデータとの少なく ともいずれかを入力して予 め定められたビット数 , Z2, ■ ■ ·, Ζ„, (ここで、 i , j, k は、 1〜mのいずれか 1つの値とし、 Zk — Zj = I X (Zi+1 -Zi ) ( Iは整数、 B = Zi+1 — Zi ) ) だけ、 巡回シフトして、 この巡回シ フトした鍵データから各段の非線形データ変換処理へ供給する拡大鏈を 生成する鍵シフト処理を有するとともに、
上記鍵シフト処理は、
1回の動作で (Z i+1 — Z i ) ビット (Bビット) の巡回シフトをす る巡回シフト処理と、
Z i ビッ ト巡回シフ トされた鍵データに対して巡回シフ ト処理を 1回 動作させて (Z i+1 — Z i ) ビット (Bビット) の巡回シフ トを行わせ ることにより、 巡回シフト処理により Z i+1 ビット巡回シフトされた鍵 データを生成させ、 Z i+1 ビット巡回シフ トされた鍵データに対して巡 回シフ ト処理を I回動作させて I X ( Z i+1 — Z i ) ビット ( I X Bビ ット) の巡回シフ トを行わせることにより、 巡回シフ ト処理により Z i+2 ビット巡回シフトされた鍵データを生成させる制御処理と
を有することを特徴とするデータ変換方法。
2 4 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 各段ごとに拡大鍵を入力して非線形変換をする多 段に接続された複数段の非線形データ変換処理を有し、
上記鍵生成処理は、 上記複数段の非線形データ変換処理の各段毎に対 して供給する拡大鍵を生成するにあたり、 ある鍵データを予め定められ たビット数 (Bビット) だけ順に巡回シフトして、 この巡回シフトした 鍵データから各段の非線形データ変換処理へ供給する拡大鍵を生成する 鍵シフト処理を有するとともに、
上記鍵シフト処理は、 Bビットだけ順に巡回シフトしたデータのうち
、 一部のデータを無視して拡大鍵を生成せず、 残りの他のデータから拡 大鍵を生成することを特徴とするデータ変換方法。
2 5 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記鍵生成処理は、
Gビットの Gビット鍵データを入力して変換し、 Gビットの第 1の G ビッ ト変換鍵データを出力する第 1の Gビット鍵変換処理と、
上記第 1の Gビット鍵変換処理から出力された第 1の Gビット変換鍵 データを入力し、 更に変換して Gビットの第 2の Gビット変換鍵データ を出力する第 2の Gビット変換処理と
を備え、
上記鍵生成部が Gビット鍵データ Kを入力した場合は、 Gビット鍵デ —タ Kを第 1の Gビット鍵変換部に入力して変換し、 第 1の Gビット鍵 変換処理により出力された第 1の Gビット変換鍵データ を変換され た Gビッ ト鍵データとして出力し、
上記鍵生成部が 2 Gビット鍵データ Kを入力した場合は、 2 Gビッ ト 鍵データ Kから Gビット鍵データを生成して生成した Gビット鍵データ を第 1の Gビット鍵変換部に入力して変換して第 1の Gビット変換鍵デ 一タ1^ を出力し、 第 1の Gビッ ト変換鍵データ を第 2の Gビット 変換処理に入力して変換して第 2の Gビット変換鍵データ K2 を出力し 、 第 1の Gビット鍵変換処理により出力された第 1の Gビッ ト変換鍵デ 一タ1^ と、 第 2の Gビッ ト変換処理により出力された第 2の Gビッ ト 変換鍵データ Κ2 とを連結して、 変換された 2 Gビット鍵データ (1^ , Κ2 ) として出力することを特徴とするデータ変換方法。
2 6 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と ―
を実行するデータ変換方法において、
データ変換を行うデータと鍵データとを論理演算する鍵関数処理と、 データ変換を行うデータを他のデータへ置換変換する S関数処理と、 データ変換を行うデータ同士で論理演算する P関数処理と
を有する非線形関数処理 (F ) を備え、
非線形関数処理 (F ) は、 鍵関数を S関数処理と P関数処理の間に動 作させることを特徴とするデータ変換方法。
2 7 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
データ変換を行うデータと鍵データとを論理演算する鍵関数処理と、 データ変換を行うデータを他のデータへ置換変換する S関数処理と、 データ変換を行うデータ同士で論理演算する P関数処理と
を有する非線形関数処理 (F ) を備え、
非線形関数処理 (F ) は、 鍵関数処理を S関数処理と P関数処理との 両者の前と両者の後とのいずれかで動作させることを特徴とするデータ 変換方法。
2 8 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部を備えたデータ変 換装置において、 上記データ処理部は、
第 1の入力部と、
第 2の入力部と、
第 1の出力部と、
第 2の出力部と
データの暗号化とデータの復号とを同一のアルゴリズムで行う非線形 変換部と、
第 1の入力部に入力されるデータを変換する第 1入力データ正変換部 と、
第 2の出力部から出力されるデータを入力して上記第 1入力データ正 変換部の変換とは逆の変換をする第 2出力データ逆変換部と
を備えたことを特徴とするデータ変換装置。 '
2 9 . 上記非線形変換部は、
第 1の入力データを第 1の入力部から入力し、
第 2の入力データを第 2の入力部から入力し、
第 1の入力データと第 2の入力データとを暗号化用鍵データを用いて 非線形変換し、 第 1の変換データと第 2の変換データとを生成し、 第 1の変換データを第 1の出力部から出力し、
第 2の変換データを第 2の出力部から出力し、
上記第 1の変換データを第 2の入力部から入力し、
上記第 2の変換データを第 1の入力部から入力し、 第 1の変換データ と第 2の変換データとを復号用鍵データを用いて非線形変換し、 第 1の 出力データと第 2の出力データとを生成し、
第 1の出力データを第 2の出力部から出力し、
第 2の出力データを第 1の出力部から出力した場合に、
第 1の入力データと第 2の出力データとが同一となり、.第 2の入力デ 一タと第 1の出力データとが同一となるアルゴリズムを備えたことを特 徴とする請求項 2 8記載のデータ変換装置。
3 0 . 上記データ処理部は、 更に、
第 2の入力部に入力されるデータを変換する第 2入力データ正変換部 と、
第 1の出力部から出力されるデータを入力して、 上記第 2入力データ 正変換部の変換とは逆の変換をする第 1出力データ逆変換部と を備えたことを特徴とする請求項 2 8記載のデータ変換装置。
3 1 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理部と、
上記データ処理部が用いる鍵データを生成してデータ処理部に供給す る鍵生成部と
を備えたデータ変換装置において、
上記データ処理部は、 データ変換を行うデータを非線形変換する非線 形関数部 (F ) を備え、
上記鍵生成部は、 非線形関数部 (F ) に供給する鍵データを加工して 、 加工した鍵データをデータ処理部の非線形関数部 (F ) 以外の部分に 供給してデータと演算させることを特徴とするデータ変換装置。
3 2 . 鍵データを入力して少なくともデータの暗号化とデータ の復号とのいずれかのデータ変換を行うデータ処理と、
上記データ処理が用いる鍵データを生成してデータ処理に供給する鍵 生成処理と
を実行するデータ変換方法において、
上記データ処理は、 データ変換を行うデータを非線形変換する非線形 関数処理 (F ) を備え、
上記鍵生成処理は、 非線形関数処理 (F ) に供給する鍵データを加工 して、 加工した鍵データをデータ処理の非線形関数処理 (F ) 以外の処 理に供給してデータと演算させることを特徴とするデータ変換方法。
3 3 . 上記請求項 2 0記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プロダラムを記録したコンピュータ読み 取り可能な記録媒体。
3 4 . 上記請求項 2 1記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
3 5 . 上記請求項 2 2記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
3 6 . 上記請求項 2 3記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
3 7 . 上記請求項 2 4記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
3 8 . 上記請求項 2 5記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
3 9 . 上記請求項 2 6記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
4 0 . 上記請求項 2 7記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プログラムを記録したコンピュータ読み 取り可能な記録媒体。
4 1 . 上記請求項 3 2記載のデータ変換方法をコンピュータに 実行させるプログラム又は上記プロダラムを記録したコンピュータ読み 取り可能な記録媒体。
PCT/JP2001/001796 2000-03-09 2001-03-08 Systeme de chiffrage de blocs utilisant la conversion auxiliaire WO2001067425A1 (fr)

Priority Applications (28)

Application Number Priority Date Filing Date Title
KR10-2004-7008606A KR100465074B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
KR10-2004-7008596A KR100465071B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
KR10-2004-7008607A KR100465075B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
DK06010074T DK1686720T3 (da) 2000-03-09 2001-03-08 Blokkrypteringsanordning og blokkrypteringsfremgangsmåde, der indbefatter planlægning af en nögle med variabel længde
KR10-2004-7008598A KR100468338B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
KR10-2004-7008602A KR100465072B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
EP01912172A EP1193665B8 (en) 2000-03-09 2001-03-08 Block encryption device using auxiliary conversion
DK06010077T DK1689114T3 (da) 2000-03-09 2001-03-08 Blokchiffer-apparat, hvortil der anvendes hj lpetransformation
ES01912172T ES2382454T3 (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloques que utiliza una transformación auxiliar
JP2001565161A JP4127472B2 (ja) 2000-03-09 2001-03-08 データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
DK01912172.2T DK1193665T3 (da) 2000-03-09 2001-03-08 Blokkrypteringsindretning, som anvender hjælpekonvertering
KR10-2004-7008595A KR100465070B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
MXPA01011323A MXPA01011323A (es) 2000-03-09 2001-03-08 Aparato de cifrado en bloque usando transformacion auxiliar.
AU41058/01A AU767323B2 (en) 2000-03-09 2001-03-08 Block encryption device using auxiliary conversion
AT01912172T ATE545991T1 (de) 2000-03-09 2001-03-08 Blockverschlüsselungseinrichtung unter verwendung von hilfsumwandlungen
DK06010073T DK1686719T3 (da) 2000-03-09 2001-03-08 Blokkrypteringsapparat
CA002373432A CA2373432C (en) 2000-03-09 2001-03-08 Block cipher apparatus using auxiliary transformation
US09/959,853 US7864950B2 (en) 2000-03-09 2001-03-08 Block encryption device using auxiliary conversion
KR10-2004-7008605A KR100465073B1 (ko) 2000-03-09 2001-03-08 보조 변환을 이용한 블럭 암호 장치
NO20015461A NO333209B1 (no) 2000-03-09 2001-11-08 Blokkryptogram-apparat som benytter hjelpetransformasjon
AU2003213312A AU2003213312C1 (en) 2000-03-09 2003-07-08 Block cipher apparatus using auxiliary transformation
AU2003213317A AU2003213317B2 (en) 2000-03-09 2003-07-08 Block cipher apparatus using auxiliary transformation
AU2003213315A AU2003213315B2 (en) 2000-03-09 2003-07-08 Block cipher apparatus using auxiliary transformation
AU2003213318A AU2003213318B2 (en) 2000-03-09 2003-07-08 Block cipher apparatus using auxiliary transformation
US11/260,111 US7697684B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation
US11/260,126 US7760871B2 (en) 2000-03-09 2005-10-28 Block cipher using auxiliary transformation
US11/260,129 US7822196B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation
US11/260,110 US7760870B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000-064614 2000-03-09
JP2000064614 2000-03-09

Related Child Applications (5)

Application Number Title Priority Date Filing Date
US09959853 A-371-Of-International 2001-03-08
US11/260,126 Division US7760871B2 (en) 2000-03-09 2005-10-28 Block cipher using auxiliary transformation
US11/260,110 Division US7760870B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation
US11/260,111 Division US7697684B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation
US11/260,129 Division US7822196B2 (en) 2000-03-09 2005-10-28 Block cipher apparatus using auxiliary transformation

Publications (1)

Publication Number Publication Date
WO2001067425A1 true WO2001067425A1 (fr) 2001-09-13

Family

ID=18584290

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2001/001796 WO2001067425A1 (fr) 2000-03-09 2001-03-08 Systeme de chiffrage de blocs utilisant la conversion auxiliaire

Country Status (16)

Country Link
US (5) US7864950B2 (ja)
EP (7) EP1686721B1 (ja)
JP (3) JP4127472B2 (ja)
KR (8) KR100468338B1 (ja)
CN (5) CN100392688C (ja)
AT (3) ATE545991T1 (ja)
AU (5) AU767323B2 (ja)
CA (5) CA2449665C (ja)
DE (3) DE60139280D1 (ja)
DK (7) DK1689113T3 (ja)
ES (7) ES2616544T3 (ja)
MX (1) MXPA01011323A (ja)
NO (1) NO333209B1 (ja)
SG (4) SG124291A1 (ja)
TW (1) TWI275049B (ja)
WO (1) WO2001067425A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2007324733A (ja) * 2006-05-30 2007-12-13 Mitsubishi Electric Corp データ変換装置
JP2008058828A (ja) * 2006-09-01 2008-03-13 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP2008145791A (ja) * 2006-12-11 2008-06-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2012155349A (ja) * 2012-05-22 2012-08-16 Sony Corp 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP2014041389A (ja) * 2013-12-02 2014-03-06 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100468338B1 (ko) * 2000-03-09 2005-01-28 니뽄 덴신 덴와 가부시키가이샤 보조 변환을 이용한 블럭 암호 장치
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
JP3503638B1 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
DE10345457A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver- und Entschlüsselung
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
JP3933647B2 (ja) * 2004-05-10 2007-06-20 シャープ株式会社 消費電力解析防止機能つき半導体装置
US7885405B1 (en) 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
JP4129280B2 (ja) * 2004-09-14 2008-08-06 松下電器産業株式会社 バレルシフト装置
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
CN100436555C (zh) * 2006-09-06 2008-11-26 深圳市永仁包装印刷材料有限公司 一种水溶性金银墨及其制备方法
US8036377B1 (en) 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
JP4857230B2 (ja) * 2007-03-30 2012-01-18 株式会社日立製作所 疑似乱数生成装置及びそれを用いた暗号化処理装置
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
CN100495961C (zh) 2007-11-19 2009-06-03 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理方法
CN100581101C (zh) * 2007-11-19 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理设备
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US20090186966A1 (en) * 2008-01-22 2009-07-23 Sabic Innovative Plastics Ip B.V. Thermoplastic polyestercarbonate composition
JP5200949B2 (ja) * 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
JP5296217B2 (ja) * 2009-09-24 2013-09-25 株式会社東芝 鍵スケジュール装置および方法
JP2011130340A (ja) * 2009-12-21 2011-06-30 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
FR2966953B1 (fr) 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
CN105215593A (zh) * 2014-07-01 2016-01-06 长治市澳瑞特欣鑫健身器材有限公司 一种篮圈焊接模具
CN104917610B (zh) * 2015-06-15 2018-03-06 上海交通大学 基于量子真随机数的通信中继服务器安全系统及方法
KR20170002836A (ko) 2015-06-30 2017-01-09 주식회사 피엔아이티 Nfc를 이용한 미아방지용 캐릭터 목걸이.
EP3391583B1 (en) 2015-12-15 2019-07-24 Koninklijke Philips N.V. A computation device and method
US10157289B2 (en) * 2016-09-26 2018-12-18 Bank Of America Corporation Progressive key rotation for format preserving encryption (FPE)
EP4280574A3 (en) * 2018-10-10 2024-01-03 Nippon Telegraph And Telephone Corporation Secure right shift computation system, secure division system, methods therefor, secure computation apparatus, and program
CN109756231B (zh) * 2018-12-27 2023-01-31 北京思朗科技有限责任公司 循环移位处理装置及方法
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
KR20230110668A (ko) 2022-01-16 2023-07-25 주식회사 네이처라인즈 반려동물용 휠 운동장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997009705A1 (fr) * 1995-09-05 1997-03-13 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees
JPH09269727A (ja) * 1996-03-29 1997-10-14 Toshiba Corp 暗号化方法および暗号化装置
JPH1152849A (ja) * 1997-08-07 1999-02-26 Nec Corp 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2641285B2 (ja) 1988-05-23 1997-08-13 三菱電機株式会社 ガロア体除算回路及び乗除算共用回路
JPH0651698A (ja) * 1992-06-03 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> データ攪拌装置およびデータ攪拌方法
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5594797A (en) * 1995-02-22 1997-01-14 Nokia Mobile Phones Variable security level encryption
JP2772937B2 (ja) * 1995-07-11 1998-07-09 太陽誘電株式会社 チップ型電子部品の製造方法
JPH0990870A (ja) * 1995-09-27 1997-04-04 Nec Corp 基本変換方法、暗号化方法、基本変換回路および暗号装置
KR100473536B1 (ko) * 1996-05-22 2005-05-16 마츠시타 덴끼 산교 가부시키가이샤 기기간통신의안전성을확보하는암호화장치및통신시스템
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
JP3515306B2 (ja) * 1997-01-29 2004-04-05 日本電信電話株式会社 逆元演算装置
US6459792B2 (en) * 1997-04-23 2002-10-01 Matsushita Electric Industrial Co., Ltd. Block cipher using key data merged with an intermediate block generated from a previous block
US6510228B2 (en) * 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US6269163B1 (en) * 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000066586A (ja) 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
TW556111B (en) * 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
KR100468338B1 (ko) * 2000-03-09 2005-01-28 니뽄 덴신 덴와 가부시키가이샤 보조 변환을 이용한 블럭 암호 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997009705A1 (fr) * 1995-09-05 1997-03-13 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees
JPH09269727A (ja) * 1996-03-29 1997-10-14 Toshiba Corp 暗号化方法および暗号化装置
JPH1152849A (ja) * 1997-08-07 1999-02-26 Nec Corp 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Applied cryptography", 1995, JOHN WILEY & SONS, INC., XP002942209 *
FUMIHIKO SANO ET AL.: "Kakucho feistel gata angou kei ni okeru random kansuu ichi to shoumei kanou anzensei no kankei ni tsuite", 1997 NEN, ANGOU TO JOHO SECURITY SYMPOSIUM, SCIS97-24C, 31 January 1997 (1997-01-31), pages 1 - 15, XP002942208 *
KAZUMARO AOKI ET AL.: "128 Bit block angou camellia no jissou hyouka", DENSHI JOHO TSUSSHIN GAKKAI GIJUTSU KENKYU HOKOKU (ISEC2000-73), vol. 100, no. 324, 22 September 2000 (2000-09-22), pages 131 - 138, XP002942211 *
KAZUMARO AOKI ET AL.: "128 Bit block angou camellia", DENSHI JOHO TSUUSHIN GAKKAI GIJUTSU KENKYU HOKOKU (ISEC2000-73, vol. 100, no. 76, 18 May 2000 (2000-05-18), pages 47 - 75, XP002942210 *
MATSUI M: "FAST SOFTWARE ENCRYPTION. 4TH INTERNATIONAL WORKSHOP, FSE '97 PROCEEDINGS", 1997, SPRINGER-VERLAG BERLIN, article "New block encryption algorithm MISTY", pages: 54 - 68

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP2007324733A (ja) * 2006-05-30 2007-12-13 Mitsubishi Electric Corp データ変換装置
JP2008058828A (ja) * 2006-09-01 2008-03-13 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US8577023B2 (en) 2006-09-01 2013-11-05 Sony Corporation Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
US8787568B2 (en) 2006-09-01 2014-07-22 Sony Corporation Data transformation apparatus, data transformation method, and computer program
TWI447683B (zh) * 2006-09-01 2014-08-01 Sony Corp Information processing device
US9363074B2 (en) 2006-09-01 2016-06-07 Sony Corporation Encryption processing apparatus, encryption processing method, and computer program
JP2008145791A (ja) * 2006-12-11 2008-06-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8737603B2 (en) 2006-12-11 2014-05-27 Sony Corporation Cryptographic processing apparatus, cryptographic processing method, and computer program
JP2012155349A (ja) * 2012-05-22 2012-08-16 Sony Corp 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP2014041389A (ja) * 2013-12-02 2014-03-06 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
MXPA01011323A (es) 2003-08-01
EP1689114B1 (en) 2009-07-15
ES2327263T3 (es) 2009-10-27
ES2319560T3 (es) 2009-05-08
EP1686719A1 (en) 2006-08-02
JP4127472B2 (ja) 2008-07-30
US7760871B2 (en) 2010-07-20
EP1193665A4 (en) 2006-06-14
EP1689113B1 (en) 2013-03-06
ATE545991T1 (de) 2012-03-15
ES2405942T3 (es) 2013-06-04
EP1193665B8 (en) 2012-07-11
AU2003213317A1 (en) 2003-08-14
AU767323B2 (en) 2003-11-06
CN1808526A (zh) 2006-07-26
CN100557663C (zh) 2009-11-04
US7864950B2 (en) 2011-01-04
KR100468338B1 (ko) 2005-01-28
CA2449665A1 (en) 2001-09-13
KR20040066876A (ko) 2004-07-27
CA2449665C (en) 2005-06-21
KR100465074B1 (ko) 2005-01-13
US20060050874A1 (en) 2006-03-09
ES2382454T3 (es) 2012-06-08
DE60137269D1 (de) 2009-02-12
EP1686722B1 (en) 2016-12-07
ATE431983T1 (de) 2009-06-15
KR20040066874A (ko) 2004-07-27
SG124291A1 (en) 2006-08-30
DK1193665T3 (da) 2012-04-02
CA2449669A1 (en) 2001-09-13
SG124294A1 (en) 2006-08-30
KR100465070B1 (ko) 2005-01-13
KR20040066877A (ko) 2004-07-27
JP5242642B2 (ja) 2013-07-24
EP1689113A3 (en) 2006-08-30
EP1686719B1 (en) 2008-12-31
DE60139280D1 (de) 2009-08-27
AU2003213317B2 (en) 2004-04-01
CN100583192C (zh) 2010-01-20
JP2011018065A (ja) 2011-01-27
CN100392688C (zh) 2008-06-04
EP1686722A1 (en) 2006-08-02
DE60138773D1 (de) 2009-07-02
KR20040066870A (ko) 2004-07-27
SG124293A1 (en) 2006-08-30
KR100465075B1 (ko) 2005-01-13
JP2007041620A (ja) 2007-02-15
DK1686719T3 (da) 2009-03-30
US7697684B2 (en) 2010-04-13
DK1689114T3 (da) 2009-09-07
EP1193665A1 (en) 2002-04-03
NO20015461L (no) 2002-01-07
KR20040066872A (ko) 2004-07-27
KR20040066875A (ko) 2004-07-27
AU2003213318A1 (en) 2003-08-14
CA2449672C (en) 2005-05-17
US20060045265A1 (en) 2006-03-02
US20060050872A1 (en) 2006-03-09
EP1689113A2 (en) 2006-08-09
AU2003213312B2 (en) 2004-03-25
EP1686721B1 (en) 2013-03-06
CA2449672A1 (en) 2001-09-13
AU2003213315B2 (en) 2004-04-01
CN1734526B (zh) 2013-09-18
EP1689114A2 (en) 2006-08-09
US20020159599A1 (en) 2002-10-31
KR100465072B1 (ko) 2005-01-13
SG124292A1 (en) 2006-08-30
US20060050873A1 (en) 2006-03-09
AU2003213318B2 (en) 2004-07-15
NO20015461D0 (no) 2001-11-08
AU4105801A (en) 2001-09-17
NO333209B1 (no) 2013-04-08
ATE419692T1 (de) 2009-01-15
JP4598744B2 (ja) 2010-12-15
EP1686720A1 (en) 2006-08-02
CN1734527A (zh) 2006-02-15
US7822196B2 (en) 2010-10-26
EP1193665B1 (en) 2012-02-15
EP1686721A1 (en) 2006-08-02
ES2616544T3 (es) 2017-06-13
CN1364284A (zh) 2002-08-14
KR100465073B1 (ko) 2005-01-13
CA2449669C (en) 2005-02-15
ES2407463T3 (es) 2013-06-12
CA2373432C (en) 2005-02-08
KR20040066871A (ko) 2004-07-27
DK1686721T3 (da) 2013-03-25
CN1734526A (zh) 2006-02-15
CN1737880A (zh) 2006-02-22
KR100465071B1 (ko) 2005-01-13
CA2373432A1 (en) 2001-09-13
CA2449662A1 (en) 2001-09-13
DK1689113T3 (da) 2013-03-25
ES2329819T3 (es) 2009-12-01
TWI275049B (en) 2007-03-01
AU2003213312A1 (en) 2003-08-14
DK1686720T3 (da) 2009-07-20
EP1689114A3 (en) 2006-09-06
EP1686720B1 (en) 2009-05-20
AU2003213315A1 (en) 2003-08-14
AU2003213312C1 (en) 2004-11-25
CN1734527B (zh) 2011-04-06
DK1686722T3 (en) 2017-02-20
KR20020016624A (ko) 2002-03-04
CA2449662C (en) 2004-08-17
US7760870B2 (en) 2010-07-20
KR100449594B1 (ko) 2004-09-22

Similar Documents

Publication Publication Date Title
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
JP2007041620A5 (ja)
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
JPWO2002058037A1 (ja) 暗号回路

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 01800470.9

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA CN JP KR MX NO SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2373432

Country of ref document: CA

Ref document number: 2373432

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: PA/a/2001/011323

Country of ref document: MX

Ref document number: 2001912172

Country of ref document: EP

Ref document number: 41058/01

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2001 565161

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020017014247

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09959853

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1020017014247

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2001912172

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1020017014247

Country of ref document: KR