WO2003100751A1 - Dispositif et procede de conversion de donnees - Google Patents

Dispositif et procede de conversion de donnees Download PDF

Info

Publication number
WO2003100751A1
WO2003100751A1 PCT/JP2003/002689 JP0302689W WO03100751A1 WO 2003100751 A1 WO2003100751 A1 WO 2003100751A1 JP 0302689 W JP0302689 W JP 0302689W WO 03100751 A1 WO03100751 A1 WO 03100751A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
data
input
selector
conversion
Prior art date
Application number
PCT/JP2003/002689
Other languages
English (en)
French (fr)
Inventor
Tomomi Kasuya
Mitsuru Matsui
Tetsuya Ichikawa
Original Assignee
Mitsubishi Denki Kabushiki Kaisha
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
Application filed by Mitsubishi Denki Kabushiki Kaisha filed Critical Mitsubishi Denki Kabushiki Kaisha
Priority to EP03755263.5A priority Critical patent/EP1507247B1/en
Priority to ES03755263.5T priority patent/ES2565816T3/es
Priority to US10/514,637 priority patent/US7639800B2/en
Priority to CN038088339A priority patent/CN1647139B/zh
Priority to CA2485943A priority patent/CA2485943C/en
Priority to AU2003211779A priority patent/AU2003211779A1/en
Priority to DK03755263.5T priority patent/DK1507247T3/en
Priority to KR1020047018842A priority patent/KR100806468B1/ko
Publication of WO2003100751A1 publication Critical patent/WO2003100751A1/ja
Priority to NO20045596A priority patent/NO337611B1/no

Links

Classifications

    • 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
    • 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
    • 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

  • the present invention relates to a data conversion device and a data conversion method for performing data encryption or data decryption.
  • FIG. 56 is a configuration and operation diagram of a related data conversion device.
  • the data conversion device that performs the block cipher processing includes a key generation unit 20 and a data agitation unit 30.
  • the key generation unit 20 is a key generation unit that generates a key for performing data encryption and Z decryption.
  • the data agitating unit 30 is a unit that encrypts or decrypts the input data.
  • the key generation unit 20 includes an intermediate key generation unit 40 and a key schedule unit 210.
  • the intermediate key 'generating unit 40 is a unit that inputs a secret key and generates an intermediate key (key KL) and an output key (key KA) from the input secret key.
  • the key schedule unit 210 inputs the intermediate key (key KL) and the output key (key KA) generated by the intermediate key generation unit 40 (key KLL, key KLH, key KAL, key KAH), and The keys to be supplied from each key to the mixer 30 are scheduled.
  • the intermediate key generation unit 40 and the key schedule unit 210 perform key generation and key scheduling.
  • the data agitation unit 30 When P (plaintext) is input, the data agitation unit 30 performs data conversion for encrypting the data, and outputs the converted data as C (ciphertext). When P (encrypted text) is input, the data agitating unit 30 performs data conversion for data decryption, and outputs the converted data as C (decrypted text). As described above, the data agitation unit 30 performs data encryption processing and data decryption processing.
  • the main conversion section 320 and the sub-conversion section 330 are serially connected.
  • the main conversion unit 320 is a unit that performs non-linear conversion of data. That is, the main conversion unit 320 has one or more stages of the F function for performing non-linear conversion of data, or has a part of the F function, and has the F function or a part of the F function. To perform an overnight nonlinear transformation. In FIG. 57, the main conversion section 320 has one or more stages of the F function.
  • the sub-conversion unit 330 is at least one of a data normal conversion unit (FL) that performs linear conversion of data and a data inverse conversion unit (FL " 1 ") that performs reverse conversion of the data normal conversion unit (FL).
  • FL data normal conversion unit
  • FL " 1 " data inverse conversion unit
  • This is a unit that linearly converts data input using a data normal conversion unit (FL) or a data reverse conversion unit (FL) using an input key.
  • the selector 310 is a selector that selects one signal from the input signals using the main conversion unit 320, the sub-conversion unit 330, P (plaintext or ciphertext), and the key as input signals.
  • the selector 310 shown in FIG. 56 has three selectors that select one output signal from four input signals and output one output signal from two input signals in terms of a 2-1 selector.
  • the arithmetic register 350 is a memory for holding data output as the main conversion unit 320 and the sub-conversion unit 330 and C (encrypted or decrypted text) for a predetermined period. 02689
  • the data agitating section 30 alternately repeats a plurality of times that the input data P (plaintext or ciphertext) is non-linearly converted by the main converting section 320 and linearly converted by the sub-converting section 330. And then decrypt the data and output it as C (encrypted or decrypted).
  • P plaintext or ciphertext
  • main conversion section 320 The internal configuration of main conversion section 320 will be described.
  • FIG. 57 shows an example of the internal configuration of main conversion section 320.
  • main conversion section 320 is composed of six F function sections.
  • the F function part is composed of a circuit that performs one stage of F function processing
  • the main conversion unit 320 shown in FIG. 57 performs nonlinear data conversion processing using six stages of F functions.
  • the main conversion unit 320 may have six F function processing circuits, or may have one F function processing circuit and repeat the processing by the F function six times. May perform data processing using a six-stage F-function.
  • the higher-order data divided from the input data is input to the F function unit 321a.
  • the key 1 scheduled by the key schedule unit 210 is also input.
  • the F function part 32 la as described above, the higher-order input data is nonlinearly transformed using the key.
  • the EXOR circuit 322a performs an exclusive OR operation on the non-linearly converted data and the lower input data.
  • the data output from the EXOR circuit 322a becomes the input data of the F function part 321b.
  • the F function unit 32 lb performs a non-linear conversion process in the same manner as the F function unit 32 la, and the exclusive OR of the data converted by the EXOR circuit 322 b and the higher-order input data is obtained.
  • the data output from the EXOR circuit 322b becomes the input data of the F function unit 321c.
  • the same processing as the processing by the F function unit 321 a and the EXOR circuit 322 a is performed by the F function unit 321 b and the EXOR circuit 322 a.
  • the transformed data is output.
  • FEI STEL structure As typical structures for randomizing data, there are the above-mentioned FEI STEL structure and SPN (Substi tut i on P er mu t a t i ot Ne two rk) structures.
  • the main conversion unit 320 having the SPN structure is said to be excellent in parallel processing.
  • the main converter 320 having the FEI STEL structure is said to be excellent in reducing the size of hardware.
  • the SPN structure does not split the input data, as in the FEI STEL structure, but has a structure in which the F function consisting of the S layer (non-linear layer) and the P layer (linear layer) is repeated. .
  • sub-conversion section 330 The internal configuration of sub-conversion section 330 will be described.
  • FIG. 58 is a diagram showing a circuit constituting the sub-conversion unit 330.
  • the data normal conversion unit 50 the logical product of the upper 32 bits data and the key 1 of the 64 bit data input by the AND circuit 54 is taken, and the result is cyclically shifted left by 1 bit, and the EXOR circuit 55 The exclusive OR with the lower 32 bits of the input data is obtained, and the result is output as an output signal of the lower 32 bits and input to the OR circuit 57.
  • the OR circuit 57 the logical sum with the key 2 is calculated, and in the EXOR circuit 56, the exclusive OR with the upper 32 bits of the input data is calculated, and the result is output as the upper 32 bits output signal. Is output. In this way, the input data of 64 bits is linearly converted and output as a 64 bit output signal.
  • the OR of the lower 32 bits data of the 64 bit data input by the OR circuit 74 and the key 3 is obtained, and the EXOR circuit 75 outputs the upper bit of the input data.
  • An exclusive OR with 32 bits is obtained, and the result is output as an output signal of the upper 32 bits and input to the AND circuit 77.
  • the AND circuit 77 the logical AND with the key 4 is obtained, the result is cyclically shifted one bit to the left, and the exclusive OR with the lower 32 bits of the input data is obtained by the EX ⁇ R circuit 76, The result is output as the lower 32 bits output signal.
  • the 64-bit input data is linearly converted by the data normal conversion unit 50 and the data inverse conversion unit 70, and is output as a 64-bit output signal.
  • the keys 1 to 4 are supplied from the key schedule unit 210.
  • FIG. 59 is a diagram showing, as another example of the sub-conversion unit 330, a circuit in which the data normal conversion unit 50 and the data reverse conversion unit 70 are shared.
  • Selector 99a selects input signal A from input signal E and input signal A, outputs it as output signal B, ANDs with key 1 by AND circuit 101, and cyclically shifts one bit to the left After that, the exclusive OR with the lower 32 bits of the input data is taken by the EXOR circuit 91 and output as the lower 32 bits output signal, and the input signal C is input to the 2-1 selector 99b. Is done.
  • the 2-1 selector 99b selects the input signal C from the input signal C and the input signal F and outputs it as the output signal D.
  • the OR circuit 92 the output signal D and the key 2 are ORed, and the EXOR circuit 93 performs the exclusive OR operation with the upper 32-bit data of the input data, and is output as the upper 32-bit output signal. You.
  • 2-1 Selector 99b selects input signal F from input signal C and input signal F, outputs it as output signal D, ORs with key 2 by OR circuit 92, and inputs by EXOR circuit 93
  • the exclusive OR is calculated with the upper 32 bits of the data, output as the upper 32 bits output signal, and input as the input signal E to the 2-1 selector 99a.
  • the 2-1 selector 99a selects the input signal E from the input signal A and the input signal E and outputs it as the output signal B.
  • the AND circuit 101 the logical sum of the output signal B and the key 1 is obtained, and after a cyclic shift to the left by 1 bit, EXO
  • the exclusive OR with the lower 32 bits of the input data is obtained by the R circuit 91 and output as a lower 32 bits output signal.
  • FIG. 60 is a diagram showing a data conversion device in a case where the main conversion unit 320 has a 1Z2 X (x ⁇ l) F function for processing less than one stage of the F function, in contrast to the data conversion device shown in FIG. 56. It is.
  • the main conversion unit 320 has, for example, a 1/2 F function
  • the main conversion unit 320 has a 2F path via the sub conversion unit 330, the selector 310, and the operation register 350 to the main conversion unit 320.
  • the cycle process By performing the cycle process, the process of nonlinearly converting the data by the F function can be performed once.
  • the data conversion device shown in FIG. 60 is different from the data conversion device shown in FIG. 56 in that a path from the operation register 350 to the selector 310 is added.
  • FIG. 61 illustrates the internal configuration of the main conversion section 320.
  • the main conversion section 320 is composed of, for example, a 12-stage F function section (1Z2 F function) for performing 1/2 F-function processing for processing less than one stage of F function.
  • the data conversion using the F function section 32 1 a of the main conversion section 320 of FIG. 57 and the EXOR circuit 322 a is performed by the F function section 1 32 1 a and the F function section 1 32 1 b and EXOR circuit 1322a and EXOR circuit 1322b.
  • the upper data divided from the upper input data is input to the F function section 1321a.
  • a key 1 H composed of upper bits of the key 1 scheduled by the key schedule unit 210 is also input.
  • the F function unit 132 la performs the above non-linear conversion using the key 1H.
  • Translated data 8 is input to the EXOR circuit 1322a, and the exclusive OR of the lower input data and the divided upper data is obtained.
  • the data output from the EXOR circuit 1322a is held as an intermediate data in the arithmetic register 350 until the data is processed in the EXOR circuit 1322b.
  • the divided lower data of the upper input data is input to the F function section 1321b. Also, a key 1 L composed of lower bits of the key 1 scheduled by the key schedule section 210 is input.
  • the F function section 1322b performs a non-linear conversion of the lower data using the key 1L.
  • the converted data is input to the EXOR circuit 1322b.
  • the intermediate data which is the output data from the EXOR circuit 1 322a held in the arithmetic register 350 previously, to the EXOR circuit 1 322b. Therefore, a path from the operation register 350 to the selector 310 is required. That is, by using the path from the operation register 350 to the selector 310, the intermediate data held in the operation register 350 can be input to the selector 310.
  • the selector 310 selects the input intermediate data.
  • the intermediate data is input to the main conversion section 320 via the arithmetic register 350, and is subjected to an exclusive OR operation with the output data of the F function section 1321b by the EXOR circuit 1322b.
  • the data output from the EXOR circuit 1 322 b becomes the input data of the F function section 1 321 c.
  • EXOR circuit 1 32 21 This is performed as processing. In this way, after performing the non-linear transformation of the data by the F function part in 12 stages (or 12 times), the transformed data is output. Challenge 1.
  • the key generation unit 20 uses a part of the main conversion unit 320 and a part of the sub-conversion unit 330 to generate a key used for data encryption / decryption. .
  • Part of the main conversion unit 320 and part of the sub conversion unit 330 are used for key generation in order to reduce the size of the entire data conversion device.
  • the main converting section 320 and the sub-converting section 330 are serially connected. Therefore, the operating frequency is univocal due to the path from the main conversion section 320 to the sub-conversion section 330, the selector 310, the operation register 350, and the return to the main conversion section 320. And the improvement of the operating frequency was hindered. Therefore, it has been desired to increase the operating frequency by shortening the maximum path for data processing in the data agitating section 30 and to dramatically improve the processing speed.
  • the data conversion device since there is no path for inputting the data output from the selector 310 and the arithmetic register 350 to the sub-converter 330 without passing through the main converter 330, the data conversion device has an internal path. The system could not respond flexibly to configuration changes, resulting in a lack of flexibility in the operations that could be performed as a whole.
  • the data to be converted in one cycle is a part of the input data. 1) 2). For this reason, some conversion data of the input data is held in the arithmetic register 350, and A path for sending the data to the sub-conversion unit 330 later is provided in the data agitation unit 30 or a transfer for transferring the main conversion unit 320 and sending it to the sub-conversion unit 330 after a certain period of time. A path had to be provided in the main converter 320.
  • An object of the present invention is to reduce the size of a data conversion device.
  • Another object of the present invention is to improve the operating frequency of the data conversion device. Disclosure of the invention
  • a data conversion device is a data conversion device that inputs a key and data, and performs at least one of data encryption and decryption of input data using the input key.
  • the data conversion device includes a data agitation unit for converting data, a control unit for controlling a transfer signal instructing to transfer any of the input key and the input data,
  • the controller outputs a transfer signal when transferring either the key or the data
  • the data agitation unit converts at least one of data encryption and data decryption by converting the data using the input key, and transmits the transfer signal output by the control unit. If you enter In this case, a sub-conversion unit for transferring at least one of the input key and the input data without performing data conversion is provided.
  • the data agitator further includes:
  • It has a main conversion unit that inputs data and converts the input data to non-linear data.
  • the controller outputs a data transfer signal as a transfer signal when transferring data
  • the sub-conversion unit receives the data transfer signal output by the control unit and the data converted by the main conversion unit, and transfers the input data according to the input data transfer signal. It is characterized by doing.
  • the data conversion device further comprises:
  • a key generation unit that generates a key
  • the controller outputs a key transfer signal as a transfer signal when transferring the key
  • the sub-conversion unit receives the key transfer signal output by the control unit and the key generated by the key generation unit, and transfers the input key according to the input key transfer signal.
  • the key generation unit further includes:
  • An intermediate key generation unit that inputs a secret key and generates an intermediate key from the input secret key
  • the sub-conversion unit transfers the intermediate key generated by the intermediate key generation unit according to the input key transfer signal to the main conversion unit,
  • the main conversion unit repeats at least one of converting and outputting the intermediate key transferred by the sub-conversion unit,
  • the sub-transformation unit repeats at least one of converting and outputting the intermediate key output by the main conversion unit
  • At least one of the main conversion unit and the sub conversion unit repeats one or more times of converting and outputting the intermediate key
  • the main conversion unit outputs an intermediate key output by at least one of the main conversion unit and the sub conversion unit as an output key
  • the intermediate key generation unit is characterized in that, by inputting the output key output by the main conversion unit, an expanded key including the intermediate key and the output key is generated.
  • the intermediate key generation unit selects a key from the input six keys and a key KL register that holds one key selected from the sixty-one KL selector and one key selected from the 6-1 KL selector as an intermediate key.
  • the 6-1 KL selector inputs a secret key, and inputs the secret key, the intermediate key held by the key KL Regisu, and the four different shifts from the intermediate key held by the key KL Regisu Enter six keys consisting of four keys, each of which is cyclically bit-shifted by a number, select one key from the six keys entered,
  • the key KL register holds the key selected by the 6-1 KL selector
  • the sub-transformer when receiving the key transfer signal output from the controller, inputs the key held in the key KL register as an intermediate key and transfers the input intermediate key. And
  • the above intermediate key generation unit selects one key from the four input keys, and selects one key from the three input keys.
  • the three-key selector and the three-key selector select A key KL register for holding one selected key as an intermediate key,
  • the four-one selector inputs four keys that are cyclically bit-shifted by four different shift numbers from the intermediate key held by the key KL Regis, and selects one key from the four input keys.
  • the above 3-1 KL selector inputs the secret key, and the three keys consisting of the input secret key, the one key selected by the 411 selector and the intermediate key held in the key KL register are entered. Enter, select one key from the three keys entered,
  • the key generation unit further includes:
  • the expanded key generated by the intermediate key generation unit and a predetermined constant are input, and any of the expanded key and the predetermined constant input according to predetermined conditions is at least one of the main conversion unit and the sub conversion unit.
  • the sub-conversion unit includes at least a data normal conversion unit (FL) that performs linear data conversion and a data inverse conversion unit (FL- 1 ) that performs data conversion reverse to the data normal conversion unit (FL).
  • At least one of the data normal conversion unit (FL) and the data inverse conversion unit (FL) performs data conversion, and if the control unit outputs a trans-transmission signal, A transfer signal output by the control unit is input, and at least one of data and a key is transferred without data conversion according to the input transfer signal.
  • a key transfer signal which is a key transfer signal, and a mask signal are output as transfer signals to be transmitted.
  • At least one of the data normal conversion unit (FL) and the data inverse conversion unit (FL) is input when the key transfer signal and the mask signal output by the control unit are input.
  • the input unit invalidates the input data by the received key transfer signal, and transfers the key by passing the input key by the input mask signal.
  • a data transfer signal which is a data transfer signal, is output as a transfer signal for transferring data,
  • At least one of the data normal conversion unit (FL) and the data inverse conversion unit (FL) receives the data transfer signal output by the control unit when the input data transfer signal is input.
  • the sub-transformer performs a linear data transformation of the data and invalidates the key inputted by the sub-transformer, and transfers the data by passing the inputted data. It has 12 sub-transformers that share the same circuit to perform data inverse transforms that perform data transforms that are the reverse of data normal transforms. — If the control unit outputs a transfer signal while the evening is converted to the data, the transfer signal output by the control unit is input, and at least one of the key and the data is transmitted according to the input transfer signal. Characterized by transferring
  • the sub-conversion unit has a data normal conversion unit (FL) for performing linear data conversion of data and a data inverse conversion unit (FL- 1 ) for performing reverse data conversion of the data normal conversion unit (FL). And the data normal conversion section (FL) and the data reverse conversion section (FL) are arranged in series,
  • Either the data normal conversion unit (FL) or the data inverse conversion unit (FL) is either the data normal conversion unit (FL) or the data inverse conversion unit (FL " 1 "). Enter the converted data, the transferred key, the transferred data, or the data converted by the other, and enter the converted data, the transferred key, or the transferred data It is characterized in that either data conversion, key transfer or data transfer is performed by using either of the above data.
  • the data conversion method according to the present invention is characterized in that a key of any one of the bits is input and data input is converted using the input key. Use the key to enter at least the encryption and data
  • the data conversion method described above instructs that, when transferring either the key or the data, either the input key or the input data is transferred. Output the transfer signal
  • a data conversion program includes a key and data, and a data conversion that performs at least one of data encryption and data decryption using the input key.
  • the data conversion program outputs a transfer signal instructing to transfer either the input key or the input data when transferring the key or the data. Processing,
  • a computer-readable recording medium on which a data conversion program according to the present invention is recorded is provided with a key and data, and at least one of data encryption and data decryption using the input key.
  • a computer-readable recording medium storing a data conversion program for performing the data conversion
  • At least one of data encryption and data decryption is performed by converting data using the input key, and if the output transfer signal is input, it is input. It is a computer-readable recording medium storing a data conversion program for causing a computer to execute a process of transferring at least one of a key and input data without data conversion.
  • the data conversion device further comprises:
  • a key generation unit that generates a key
  • the key generation unit further includes:
  • An intermediate key generation unit that inputs a secret key, generates an intermediate key from the input secret key, and generates an output key from the generated intermediate key using the main conversion unit and the sub conversion unit. I do.
  • the intermediate key generator inputs six keys and selects one key from the input six keys, and intermediately selects one key selected from the 6-1 KL selector.
  • the above 6—1 KL selector inputs the secret key, and the entered secret key, the intermediate key held in the key KL Regis, and the intermediate key held in the key KL Regis Input 6 keys consisting of 4 keys each of which is cyclically bit-shifted by the number of shifts, select one key from the input 6 keys, PC leak 89
  • the 6-1 KA selector inputs an output key generated using the main conversion unit and the sub conversion unit, and outputs the input output key, the output key held in the key KA register, and the key From the output key held in the KA register, input four keys that are cyclically bit-shifted by four different shift numbers and six keys consisting of, and select one key from the input six keys.
  • the key KA registry stores the key selected by the 6-1 KA selector as an output key.
  • the above-mentioned intermediate key generation unit selects one key from two keys, 2-1 selector, one key from four keys, four selectors, and one key from three keys.
  • the 2-1 selector selects one key from the intermediate key held in the key KL register and the output key held in the key KA register, and the 4-1 selector selects the 2-1 selector Enter the four keys, each of which is cyclically bit-shifted by four different shift numbers from the key selected by, select one key from the input four keys,
  • the 3-1 KL selector inputs a secret key, and the three keys consisting of the input secret key, the key selected by the 4-1 selector, and the intermediate key held by the key KL REGISTER And select one of the three keys you entered,
  • the key KL register is selected by the 3-1 KL selector Keep the key as an intermediate key
  • the 3-1 KA selector inputs an output key generated using the main conversion unit and the sub-conversion unit, outputs the input output key, the key selected by the 4-1 selector, Key KA Regis Input three keys consisting of the output key held in the evening, select one key from the three input keys, and set the key KA register to the key selected by the 3-1 KA selector. Is held as an output key.
  • the intermediate key generation unit includes a 2 ⁇ 1 KL selector for selecting one key from two keys, a key KL register for holding a key selected from a 2 ⁇ 1 KL selector, and Select one key 2 — 1 KA selector, 2 — 1 KA selector holding key selected from KA selector, 2 — 1 selector to select one key from 2 keys, and 8 keys Choose one key from 8 — 1 selector and
  • the 2-1 KL selector inputs a secret key, selects one key from the input secret key and the key held in the key KL register,
  • the 2-1 KA selector inputs an output key generated using the main conversion unit and the sub-conversion unit, and selects one key from the input output key and the key held in the key KA register. And select
  • the 2-1 selector selects one key from the two keys selected by the 2-1 KL selector and the 2-1 KA selector,
  • the 8-1 selector inputs eight keys that are cyclically bit-shifted by eight different shift numbers from the key selected by the 2-1 selector, and selects one key from the input eight keys It is characterized by the following.
  • a data conversion device provides a data conversion device that converts data all at once.
  • the data agitation unit includes a main conversion unit that inputs data and performs non-linear data conversion of the input data and a sub-conversion unit that linearly converts the input data.
  • the main conversion unit inputs the key and the data, and nonlinearly converts the input data based on the F-function, which is a function for performing non-linear data conversion using the input key. And outputs the non-linearly transformed data,
  • the sub-transformation unit inputs the key and the data, linearly converts the input data using the input key, and outputs the linearly converted data.
  • the main conversion unit and the sub-conversion unit repeatedly perform data conversion by the main conversion unit and data conversion by the sub-conversion unit so that at least one of data encryption and data decryption is performed. It is characterized by performing conversion.
  • the main conversion unit includes an F function unit that performs nonlinear data conversion of input data using the input key based on an F function and outputs the converted data a plurality of times. I do.
  • the F function section repeats 2 X times to perform non-linear data conversion of the input data using the input key based on the 1 2 X F function (X ⁇ 0) and output the data converted data.
  • Non-linear data conversion based on the F function is performed multiple times by repeating the non-linear data conversion based on the F function for one time and outputting the completed data multiple times.
  • the above-mentioned F function part is for data divided into upper data and lower data. Either one of them is input, the input data is non-linearly converted, one of the upper data and lower data is output, and one of the output upper data and lower data is output and the upper data and lower data are converted.
  • Exclusive OR operation with one of the data and the exclusive OR operation is performed, and the upper data or lower data not input to the above-mentioned F function part is compared with the other. It is characterized in that the output is switched.
  • the data conversion device further comprises:
  • a key generation unit that generates a key
  • the key generation unit further includes:
  • An intermediate key generation unit that inputs a secret key, generates an intermediate key from the input secret key, and generates an output key from the generated intermediate key using the main conversion unit and the sub conversion unit. I do.
  • the key generation unit further includes:
  • the intermediate key, output key, and predetermined constant generated by the intermediate key generation unit are input, and the main conversion unit and the sub conversion unit are input from the input intermediate key, output key, and predetermined constant according to predetermined conditions.
  • a key scheduler that schedules the key used for line-to-line conversion.
  • the sub-conversion unit and the main conversion unit input the keys scheduled by the key schedule unit, respectively, and perform data conversion of the data input to each based on the input keys. I do.
  • the intermediate key generator inputs six keys and selects one key from the input six keys, and intermediately selects one key selected from the 6-1 KL selector. Key to hold as key KL Regis Yu and six keys JP03 / 02689
  • a key KA register for holding one key selected from the 6-1 KA selector as an output key.
  • the 6 _ 1 KL selector inputs a secret key, and shifts the input secret key, an intermediate key held in the key KL register, and an intermediate key held in the key KL register in four different shifts. Enter six keys, each consisting of four keys cyclically bit-shifted by a number, select one key from the six keys entered,
  • the key KL register holds the key selected by the 6-1 KL selector as an intermediate key
  • the 6-1 KA selector inputs an output key generated by using the main conversion unit and the sub conversion unit, and outputs the input output key, the output key held in the key KA register, Keys KA Regis Enters six keys, consisting of four keys, each of which is cyclically bit-shifted by four different shift numbers from the output key held in the evening, and one key from the input six keys. ,
  • the key KA register holds the key selected by the 6-1 KA selector as an output key.
  • the above-mentioned intermediate key generation unit selects one key from two keys, 2-1 selector, one key from four keys, four selectors, and one key from three keys.
  • the 2-1 selector selects one key from the intermediate key held in the key KL register and the output key held in the key KA register,
  • the four-to-one selector inputs four keys that are cyclically bit-shifted by four different shift numbers from the key selected by the two-to-one selector, and selects one key from the four input keys
  • the 3-1 KL selector inputs a secret key, and the three keys consisting of the input secret key, the key selected by the 4-1 selector, and the intermediate key held in the key KL register are entered. Enter, select one key from the three keys entered,
  • the key KL Regis holds the key selected by the 3-1 KL selector as an intermediate key
  • the 3-1 KA selector inputs an output key generated using the main conversion unit and the sub-conversion unit, outputs the input output key, the key selected by the 4-1 selector, Key KA Regis Input three keys consisting of the output key held in the evening, select one key from the three input keys, and set the key KA register to the key selected by the 3-1 KA selector. Is held as an output key.
  • the intermediate key generation unit selects a key from two keys, a KL selector for holding a key selected from a 2-1 KL selector, and a KL register for holding a key selected from a 2-1 KL selector. Select one key 2-1 KA selector, 2-1 KA register holding key selected from 2-1 KA selector, and select one key from two keys 2-1 Selector, 8 8-1 selector to select one key from the keys,
  • the above 2-1 KL selector inputs the secret key, selects one key from the input secret key and the key held at the key KL REGISU,
  • the 2_1 KA selector inputs the output key generated using the main conversion unit and the sub conversion unit, and stores the input output key and the key KA register.
  • the 2_1 selector selects one key from the two keys selected by the 2-1 KL selector and the 2-1 KA selector
  • the 8-1 selector inputs eight keys that are cyclically bit-shifted by eight different shift numbers from the key selected by the 2-1 selector, and selects one key from the input eight keys It is characterized by doing.
  • the sub-conversion unit is at least one of a data normal conversion unit (FL) for linearly converting data and a data reverse conversion unit (FL- 1 ) for performing a conversion reverse to the conversion of the data normal conversion unit (FL).
  • the data conversion is performed by at least one of the data normal conversion unit (FL) and the data inverse conversion unit (FL- 1 ).
  • the sub-conversion unit includes a 1/2 sub-conversion unit that performs the data normal conversion for linearly converting data and the data reverse conversion for performing the reverse conversion of the data conversion by sharing the same circuit.
  • a data conversion method according to the present invention is arranged in parallel to a sub-conversion unit that converts data into linear conversion, inputs a key and data, and performs non-linear data conversion using the input key. Based on the F function, which is a function of 03 02689
  • a data conversion program is provided with a function for inputting a key and data, and performing a non-linear data conversion using the input key, the data conversion program being arranged in parallel in a sub-conversion unit that converts data into linear conversion.
  • the main conversion unit which converts the input data to non-linear data based on the F-function, is used to convert the input data to non-linear data and output the non-linearly converted data.
  • the process of linearly converting the data input using the key by the sub-transformer arranged in parallel with the main transformer and outputting the linearly-converted data is repeatedly performed, thereby at least encrypting the data. It is characterized by causing a computer to execute any one of the data decoding processes for data decoding.
  • a computer-readable recording medium on which a data conversion program according to the present invention is recorded is arranged in parallel in a sub-conversion unit that converts data into linear conversion, and inputs a key and a data.
  • the F function which is a function for performing non-linear data conversion using, the input data is converted to non-linear data by the main conversion unit, which performs non-linear data conversion. Processing to output
  • the key and the data are input, and the input data is linearly converted by the sub-transformer arranged in parallel with the main convertor using the input key.
  • the input data is linearly converted by the sub-transformer arranged in parallel with the main convertor using the input key.
  • FIG. 1 is a configuration diagram of the data conversion device according to the first embodiment.
  • FIG. 2 is a diagram showing an operation in which the intermediate key generation unit 40 generates an output key from the intermediate key in the case of a 128-bit key.
  • FIG. 3 is a diagram showing the internal configuration of the key schedule unit 210 and its operation.
  • FIG. 4 is a diagram illustrating the operation of the data encryption / decryption processing of the data agitation unit 30.
  • FIG. 5 is a diagram showing the internal configuration and operation of the F function unit 3221.
  • FIG. 6 is a configuration diagram of a data conversion device in which the main conversion unit 320 and the sub conversion unit 330 of FIG. 1 are arranged in reverse.
  • FIG. 7 is a configuration diagram of a data conversion device in which a main conversion unit 320 and a sub conversion unit 330 are arranged in parallel.
  • FIG. 8 is a diagram showing the internal configuration of the 6-1 KL selector 222 and the 6-1 KA selector 230 of the intermediate key generation unit 40.
  • FIG. 9 is a diagram showing another configuration example of the intermediate key generation unit 40.
  • FIG. 10 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function.
  • FIG. 11 is an internal configuration diagram of the sub-conversion unit 330 when the data inverse conversion unit 70 has a key transfer function.
  • Figure 12 shows that the data normal conversion unit 50 and the data inverse conversion unit 70 are key transfer functions.
  • 30 is an internal configuration diagram of the sub-conversion unit 330 in the case of having.
  • FIG. 13 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 according to the second embodiment has a data transfer function.
  • FIG. 14 is an internal configuration diagram of the sub-conversion unit 330 when the data inverse conversion unit 70 has a data transfer function.
  • FIG. 15 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 have a data transfer function.
  • FIG. 16 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function and a data transfer function and the data inverse conversion unit 70 has a key transfer function in the third embodiment. It is.
  • FIG. 17 is an internal configuration diagram of the sub-conversion unit 330 when the data reverse conversion unit 70 has a key transfer function and a data transfer function, and the data conversion unit 50 has a key transfer function.
  • FIG. 18 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 have a key transfer function and a data transfer function.
  • FIG. 19 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function and a data transfer function.
  • FIG. 20 is an internal configuration diagram of the sub-conversion unit 330 when the data inverse conversion unit 70 has a key transfer function and a data transfer function.
  • FIG. 21 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function and a data transfer function, and the data inverse conversion unit 70 has a data transfer function.
  • FIG. 22 is a configuration diagram of the sub-transformer 330 when the data reverse converter 70 has a key transfer function and a data transfer function, and the data corrector 50 has a data transfer function.
  • FIG. 3 is a configuration diagram of a sub-conversion unit 330 when 0 has a key transfer function.
  • FIG. 24 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function and the data reverse conversion unit 70 has an overnight transfer function.
  • FIG. 25 shows a case where the data reverse conversion unit 70 and the data conversion unit 50 are serially connected, and the data normal conversion unit 50 and the data reverse conversion unit 70 each have a data transfer function.
  • 3 is a configuration diagram of a sub-conversion unit 330.
  • FIG. 26 is a configuration diagram of the sub-conversion unit 330 when the data conversion unit 50 and the data inverse conversion unit 70 in FIG. 25 are switched upside down.
  • FIG. 27 shows a serial connection of a data conversion unit 50 and a data conversion unit 70 in serial.
  • the data conversion unit 50 has a key transfer function and a data transfer function.
  • FIG. 3 is a configuration diagram of a sub-conversion unit 330 when 0 has a data transfer function.
  • FIG. 28 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 in FIG. 27 are switched upside down.
  • FIG. 29 is a configuration diagram of a sub-conversion unit 330 having a data transfer function.
  • FIG. 30 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 in FIG. 29 are switched upside down.
  • FIG. 31 is a configuration diagram of sub-transformer 330 when a key transfer function and a data transfer function are added to 1/2 sub-transformer 90 in the fourth embodiment.
  • FIG. 32 is a configuration diagram of the sub-conversion unit 330 when a data transfer function is added to the 12 sub-conversion unit 90.
  • FIG. 33 is a configuration diagram of the sub-conversion unit 330 when a key transfer function is added to the 1Z2 sub-conversion unit 90.
  • FIG. 34 is a diagram showing a data encryption process in a CAMEL LIA data conversion device using a 128-bit key.
  • FIG. 35 is a diagram showing a data decryption process in a CAMEL LIA data conversion device using a 128-bit key.
  • FIG. 36 is an internal configuration diagram of the F function in the CAMEL LIA data converter.
  • FIG. 37 is a diagram showing the overall configuration and operation of the fifth embodiment.
  • FIG. 38 is a diagram showing the overall configuration and operation of the sixth embodiment.
  • FIG. 39 is a diagram showing the overall configuration and operation of the eleventh embodiment.
  • FIG. 40 is a diagram showing the overall configuration and operation of Embodiment 12.
  • FIG. 41 is a diagram showing the overall configuration and operation of the thirteenth embodiment.
  • FIG. 42 is a diagram illustrating the overall configuration and operation of the fourteenth embodiment.
  • FIG. 43 shows an overall configuration and operation of the fifteenth embodiment.
  • FIG. 44 shows an overall configuration and operation of the sixteenth embodiment.
  • FIG. 45 shows an overall configuration and operation of the seventeenth embodiment.
  • FIG. 46 is a diagram showing the overall configuration and operation of the eighteenth embodiment.
  • FIG. 47 is a diagram showing the overall configuration and operation of the seventh embodiment.
  • FIG. 48 shows an overall configuration and operation of the eighth embodiment.
  • FIG. 49 shows the overall configuration and operation of the ninth embodiment.
  • FIG. 50 shows an overall configuration and operation of the tenth embodiment.
  • FIG. 51 is a diagram showing the overall configuration and operation of Embodiment 19.
  • FIG. 52 shows the overall configuration and operation of the twentieth embodiment.
  • FIG. 53 is a diagram illustrating an operation in which the intermediate key generation unit 40 generates an output key from the intermediate key in the case of a 192 or 256 bit key.
  • FIG. 54 is a diagram showing a data encryption process in a CAME LLIA data conversion device using a 192, 256-bit key.
  • FIG. 55 is a diagram showing a data decryption process in the CAM ELLIA data conversion device using the 192- and 256-bit keys.
  • FIG. 56 is an example of a configuration and operation diagram of a related data conversion device.
  • FIG. 57 shows an example of the internal configuration of the main conversion section 320.
  • FIG. 58 is a diagram showing a circuit constituting the sub-conversion unit 330.
  • FIG. 59 is a diagram showing a circuit in which the data normal conversion unit 50 and the data inverse conversion unit 70 constituting the sub conversion unit 330 are shared.
  • FIG. 60 is another example of a configuration and operation diagram of a related data conversion device.
  • FIG. 61 shows another example of the internal configuration of main conversion section 320.
  • FIG. 21 is a configuration diagram of a sub-conversion unit 330 in the case.
  • FIG. 63 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 in FIG. 62 are switched upside down.
  • FIG. 64 is an example of the internal configuration of the main conversion section 320 of CAMELLIA. BEST MODE FOR CARRYING OUT THE INVENTION
  • a data conversion device described in the present embodiment will be described. Data converter.
  • FIG. 1 is a configuration and operation diagram of a data conversion device according to the present embodiment.
  • the intermediate key (key KL) output from the key KL register 240 is not directly input to the selector 310, and is transmitted from the key KL register 240 to the key schedule unit 210. It is input to the sub-transformer 330 via the key scheduler 210 using the conventional path.
  • main conversion section 320 It has a “data conversion mode” and a “key or data transfer mode”.
  • key When a key is input, the mode is switched to the “key or data transfer mode” and the input key is selected by the selector.
  • the data that has been nonlinearly converted by main conversion section 320 is not directly input to selector 310, but is input to sub conversion section 330.
  • the sub conversion section 330 switches the mode to the "key or data transfer mode", and switches the input data to the selector 310. Forward.
  • FIG. 2 shows an operation in which the intermediate key generation unit 40 generates an output key from the intermediate key.
  • the secret key is input to the intermediate key generation unit 40, and the key is output to the key KL register 240 through the 6 ⁇ 1 KL selector 220. It is stored as an intermediate key (key KL).
  • the secret key held in the key KL register 240 is input to the main conversion unit 320 via the key schedule unit 210 as an intermediate key (key KL).
  • the upper bits of the input intermediate key (key KL) are nonlinearly converted using the constant ⁇ 1 output from the key schedule section 210, and EXOR The circuit 322a performs an exclusive OR operation with the lower bits of the intermediate key (key KL) and inputs the result to the F function part 32 lb.
  • the key output from the EXOR circuit 322 a is nonlinearly transformed using the constant ⁇ 2 output from the key schedule section 210 in the F function section 321 b, and the intermediate key (key) is output by the EXOR circuit 322 b.
  • Exclusive OR with the lower bit of KL As a result, the output key is set as the upper bits of the key, and the key output from EXOR circuit 322a is output to sub-converter 330 as the lower bits of the key.
  • the sub-conversion unit 330 inputs these data, and the two exclusive OR (EXOR) units included in the data conversion unit 50 of the sub-conversion unit 330
  • the exclusive OR operation is performed on the upper bits of the key and the lower bits of the key using two exclusive OR units (EXOR) included in the data inverse converter 70 of the converter 330, and the result is output.
  • the input data is input to the main conversion unit 320 again.
  • the main conversion unit 320 like the processing using a part of the main conversion unit 320 described above, connects the F function unit 321a and the EXOR circuit 322a and the F function unit 321b of the main conversion unit 320 to the EXOR circuit 322. Performs a two-stage conversion process including b and exchanges the upper and lower bits of the converted key and outputs the result.
  • the output data is input to the 6-1 KA selector 230 of the intermediate key generation unit 40, and is held in the key KA register 250 as an output key (key KA).
  • the intermediate key generation unit 40 uses the part of the main conversion unit .320 and the part of the sub conversion unit 330, which are components for performing the encryption Z Generate the output key (key KA) from KL).
  • the two keys are input to the key schedule section 210 and are used as keys for encrypting and decrypting data (referred to as extended keys). Further, by using the output key (key KA) and the intermediate key (key KL) generated in this manner, a new intermediate key and an output key are generated at predetermined intervals by the same processing. Key schedule.
  • FIG. 3 is a diagram showing the internal configuration and operation of the key schedule unit 210.
  • the intermediate key (key KL) output from the intermediate key generation unit 40 is divided into a high-order key KLH and a low-order key KLL, and is input to the 4-1 selector 2 16 and the 4 11 selector 2 17 You.
  • the output key (key KA) output from the intermediate key generation unit 40 is divided into a key KAH and a key KAL and input to the 411 selector 211 and the 411 selector 217.
  • 4-1 selector 2 16 and 4-1 selector 217 select one key from these four keys.
  • the key schedule unit 210 does not always perform the process of cyclically shifting right by one bit, but considers the number and direction in which the cyclic shifter of the sub-transformer 330 cyclically shifts the signal.
  • the input key may be previously cyclically shifted by the number of times the cyclic shifter of the sub-conversion unit 330 cyclically shifts in the direction. Therefore, the 2-1 selector 2 14 and the 2-1 selector 2 15 select a signal related to one key from these two signals, but output the key to the sub-converter 330 when the output key (key KA) is generated. In this case, a key in which predetermined bits are cyclically shifted is always selected and output to the sub-transformer 330.
  • the keys output from the 2-1 selector 214 and the 2-1 selector 2 15 are input to the sub-conversion unit 330 when the sub-conversion unit 330 is used when generating the output key (key KA), and the output key ( Key KA)
  • the key is input to the 2-1 selector 2 12, and the key shifted cyclically right or left by 1 byte is input to the 2-1 selector 212.
  • the key that is cyclically shifted to the right or left by 1 byte is input to the 2-1 selector 2 1 2 because the F function part is less than 1 such as 1 or 2 or 1Z4 or 1Z8 during data encryption / decryption processing. This is necessary if it is composed of a part that processes data. Details will be described later.
  • the 8-1 selector 2 1 3 inputs the constants ⁇ 1 to ⁇ 4 divided into upper data and lower data, selects one signal from these 8 input signals, and selects the 2-1 selector 2 1 Input to 1.
  • the 2-1 selector 2 1 1 selects one signal from the two input signals and outputs the selected signal to the main converter 320 as a key. Data encryption / decryption processing.
  • FIG. 4 is a diagram showing the operation of the encryption / decryption processing of the data agitation unit 30.
  • P plaintext or ciphertext
  • P plaintext or ciphertext
  • the input data P is input to the EXOR circuit 3 la, input to the key generation unit 20, and is exclusive with the secret key (128-bit length) output through the intermediate key generation unit 40 and the key schedule unit 210.
  • the logical sum is taken.
  • the secret key is first input to the intermediate key generation unit 40, selected by the 6-1 KL selector 220, and held in the key KL register 240 as an intermediate key (key KL). Is input to the key schedule section 210.
  • the EXOR circuit 3 la and the EXOR circuit 3 lb use an exclusive logical operation unit of the sub-conversion unit 330. That is, as shown in FIG. 58, the input data is divided into the upper data of the upper pit and the lower data of the lower pit, and each of the divided data and the input key are divided by the data conversion unit 50.
  • the exclusive OR is calculated by the EXOR circuit 55 and EXOR circuit 56 of the OR or the EXOR circuit 75 and the EXOR circuit 76 of the data inversion unit 70, and the output data is output from the key schedule unit 210.
  • Data conversion is performed by main conversion section 320 and sub-conversion section 330 using any of the expanded keys.
  • data conversion is performed alternately by a main conversion unit 320a, a sub-conversion unit 330a, a main conversion unit 320b, a sub-conversion unit 330b, and a main conversion unit 320c.
  • the data converted in this manner is exclusive-ORed with the key output from the key schedule unit 210 by the EXOR circuit 31b of the sub-conversion unit 330, and is obtained as C (ciphertext or decrypted text). Output.
  • Main conversion unit 3 performed in data agitation unit 30 in CAMEL LIA
  • the data output from the EXOR circuit 31a is divided into upper data and lower data, and each is input to the main converter 320a.
  • the main conversion unit 320a nonlinearly converts each input data, and uses the converted lower data as upper data, and the converted upper data as lower data, that is, as shown in FIG.
  • the high-order data and the low-order data are exchanged and input to the sub-conversion unit 330a.
  • the sub-transformer 330 a linearly transforms the input data.
  • the main conversion section 320b and the sub conversion section 330b repeat the processing of the main conversion section 320a and the sub conversion section 330a, and the main conversion section 320c again executes the main conversion section. Repeat the same process as for 320a.
  • the output data from the main conversion unit 320c is obtained by taking the exclusive OR of the output data after the repetition by the EXOR circuit 311b and the key data output from the key schedule unit 210, and outputting the result as C. Power.
  • 31b uses an exclusive logical operation unit included in the sub-conversion unit 330, like the EXR circuit 31a.
  • the main conversion section 320a, main conversion sections 320b and 320c perform data conversion by repeating the processing using the same main conversion section 320.
  • the main conversion section 320a, the main conversion section 320b, and the main conversion section 320c having the same internal configuration are separately provided. The same applies to the sub-conversion units 330a and 330b.
  • the main conversion unit 320 has a one-stage F function processing part, and when performing data conversion processing using six stages of F functions as shown in FIG. By repeating the processing by 6 times, it is possible to complete the data conversion processing by the 6-stage F function.
  • FIG. 1 the path from the main converter 3 2 0 through the selector 3 1 0 and the arithmetic register 3 5 0 to return to the main converter 3 2 0 is used six times repeatedly to use the main converter 3 2 0 Means that the data conversion processing by the six-stage F function is completed. Therefore, in the related art shown in FIGS. 56 and 60, a “path for inputting output data from the main conversion unit 320 to the selector 310” was required.
  • the sub-conversion unit 330 since the sub-conversion unit 330 has a transfer function as described later, the output data from the main conversion unit 320 is To be input to the selector 310. Therefore, in the data conversion apparatus of the present embodiment, by using “the path in which the output data from the main conversion unit 320 is transferred by the sub-conversion unit 330 and input to the selector 310”, The "path for inputting output data from the main converter 320 to the selector 310" becomes unnecessary. Main conversion processing-Main conversion unit 3 2 0.
  • main conversion section 320 The internal configuration and operation of main conversion section 320 have been described above with reference to FIGS. 57 and 61.
  • the structure of the main conversion unit 320 that is, the input data is divided into upper data of the upper bit and lower data of the lower bit, and the divided upper data and lower data are divided. Either one is nonlinearly transformed by the F-function, and the data to be input to the F-function is generated from either the upper-order data or the lower-order data and the other one of the upper-order data and the lower-order data that are nonlinearly transformed
  • the FEISTEL structure is called a FEISTEL structure, which divides the generated data into upper data and lower data as the input data and repeats the conversion using the F function.
  • FIG. 5 is a diagram showing the internal configuration and operation of the F function unit 3221.
  • the input data is exclusive-ORed with the expanded key by the EXOR circuit 323, divided into eight, and input to the S function 324.
  • the expanded key is a key obtained by combining the output key (key KA) and the intermediate key (key KL) generated from the secret key by the intermediate key generation unit 40. If the private key is 1 2 8 bits long In the case of CAMELL IA, the expanded key is 256 bits.
  • the intermediate key (key KL) is divided into the upper bit key KLH and the lower pit key KLL.
  • the output key (key KA) is divided into the upper bit key KAH and the lower bit key KAL.
  • the S function 324 is a function (S i to S 4 ) obtained by combining the inverse operation of GF (2 8 ) and the affine transformation, and performs non-linear conversion in byte units.
  • the converted and output data is input to the P function 325, which is output after the data is agitated by the P function 325 which performs linear conversion.
  • the part where the F function part processes 1/2 of the F function consists of the EXOR circuit 3 2 3 and four S boxes from S 4 324 e to 324 h and the P function part of about half of Fig. 5. . From these configurations, first, 1Z2 processing of data conversion processing for one stage of the F function is performed. Next, the same processing is performed again to complete the processing for one stage of the F function. In the first process, as described above in the key scheduler 210, a key and data that are cyclically shifted one byte to the right or left are used. A key and data that cyclically shifting the 1-byte left or right, the same effect as the shifting one byte the S box without changing the arrangement of S-boxes that are arranged from S E to S 4 be able to.
  • FIG. 6 shows a data converter in which the main conversion unit 320 and sub conversion unit 330 in FIG. 1 are arranged in reverse. It is a structure and operation
  • the sub-converter 330 has a transfer function. Then, the data is transferred to the main conversion unit 320 by transferring the data. Using such a path, the main conversion unit 320 can complete the overnight conversion process using the six-stage F function. Therefore, the “path for inputting the output data from the sub-conversion unit 330 to the selector 310” shown in FIGS. 56 and 60 is unnecessary.
  • the intermediate key (key KL) output from the key KL register 240 is not directly input to the selector 310, and the path from the key KL register 240 to the key schedule section 210 is not transmitted. And is input to the sub-conversion unit 330 via the key schedule unit 210. When the key is input, the sub-transformer 330 transfers the input key to the main converter 320 using the transfer function.
  • FIG. 7 shows that the main conversion unit 320 and the sub conversion unit 330 are compared with FIG. 1 and FIG. It is a diagram showing a data conversion device that is different in that it is arranged in parallel and that there is a selector 340 for selecting one output signal from two input signals. The same is true.
  • the main conversion unit 320 and the sub-conversion unit 330 are arranged in parallel, so that the data is output from the main conversion unit 320 and the sub-conversion unit 330.
  • a selector 340 for selecting one of the signals is required. The signal selected by the selector 340 and passed through the arithmetic register 350 and the P (plaintext or ciphertext) is selected by the selector 310 into the main converter 320 and the sub-converter. Input to the section 330.
  • the output key (key KA) is generated, the intermediate key (key KL) output from the key KL register 240 is not directly input to the selector 310, and the output from the key KL register 240 is not performed.
  • the path to the key schedule section 210 it is input to the sub-transform section 330 via the key schedule section 210.
  • the sub-transformer 330 transfers the input key to the main converter 320 using the transfer function. Therefore, the "path for inputting the intermediate key (key KL) output from the key KL register 240 to the selector 310" shown in FIGS. 56 and 60 can be eliminated.
  • FIG. 8 shows the intermediate key generation unit 40 6-1 selectors 220 and 6-1 K
  • FIG. 3 is a diagram showing an internal configuration of an A selector 230.
  • the intermediate key (key KL) held in the key KL register 240 in the intermediate key generation unit 40 is output to the key schedule unit 210 and again input to the 611 KL selector 220.
  • the 6-1 KL selector 220 has a 6-1 selector 221 therein.
  • the input intermediate key (key KL) is input to the 6-1 selector 221, and the intermediate key (key KL) is cyclically shifted by four different shift numbers. Input four signals to 6-1 selector 22 1.
  • the intermediate key is 17 bits to the left, 15 bits to the left, 17 bits to the right, and 15 bits to the right. Conceivable.
  • the 6-1 selector 221 selects one output signal from the six input signals and outputs the selected output signal. Have the signal stored at Key KL Regis 240 as a new intermediate key (Key KL).
  • the method of generating a new output key (key KA) from an output key (key KA) is exactly the same as the method of generating a new intermediate key (key KL) from an intermediate key (key KL).
  • FIG. 9 is a diagram illustrating another configuration example of the intermediate key generation unit 40.
  • the selector shown by 4-1 selector 223 is shared as compared with FIG. That is, the intermediate key (key KL) output from the key KL register 240 and the output key (key KA) output from the key KA register 250 are input to the 2-1 selector 224, and the 2-1 selector 224 One key is selected from the keys, the selected key is cyclically shifted by four different shift numbers to generate four signals, and the four signals are input to the 411 selector 223.
  • 4-1 Selector 223 outputs 1 Select one signal and output it to the 3-1 KL selector 222 or 3-1 KA selector 232.
  • the 3-1 KL selector 222 selects one key from the key selected by the 4-1 selector 223, the secret key, and the intermediate key (key KL) held in the key KL register 240, and generates a new intermediate key. And stored in the key KL register 240.
  • the IKA selector 232 determines one key from the key selected by the four-one selector 223, the generated output key (key KA), and the output key (key KA) held in the key KA register 250. Select and store it in the key KL register 240 as a new output key (key KA).
  • FIG. 8 requires 10 in terms of a 2-1 selector
  • the configuration shown in FIG. 9 requires only eight 2-1 selectors, so the intermediate configuration shown in FIG. Compared with the key generation unit 40, two 2-1 selectors can be reduced. In this way, it is possible to reduce the circuit scale.
  • the configuration of the intermediate key generation unit 40 shown in FIG. 8 can be applied to the data converter of all the embodiments. Further, the configuration of the intermediate key generation unit 40 shown in FIG. 9 can also be applied to the data conversion devices of all the embodiments.
  • Sub-conversion processing-sub-conversion unit 330 can be applied to the data conversion devices of all the embodiments.
  • FIG. 10 is a diagram showing the internal configuration and operation of the sub-conversion unit 330.
  • the transfer signals for transferring the key or data and the transfer signals The accompanying circuit has been added.
  • the data normal conversion unit 50 has a function of transferring an input key.
  • a transfer signal for transferring the key to the data normal conversion unit 50 is input, and the data normal conversion unit 50 to which the transfer signal is input transfers the input key according to the transfer signal.
  • an FL key transfer signal and an FL mask signal are output.
  • the data conversion unit 50 receives the FL key transfer signal and the FL mask signal output by the control unit 5.
  • the FL key transfer signal is set to 0 and input to the AND circuit 51.
  • the data to be encrypted and decrypted is also input to the AND circuit 51.
  • the input data is suppressed by the AND circuit of the AND circuit 51 and becomes invalid. That is, no matter what value the input data takes, the output data of the AND circuit 51 becomes 0.
  • the FL mask signal is input to the NOT circuit 52.
  • the control unit 5 sets the FL mask signal to 0, so that the output signal of the NOT circuit 52 becomes 1, and the output signal of the R circuit 53 sets the input signal to 0 and 1, Outputs 1.
  • the AND circuit 54 Since the AND circuit 54 inputs the value 1 output by the OR circuit 53 and the information of the key 1, the output data of the AND circuit 54 always becomes the key 1 itself.
  • the key 1 output by the AND circuit 54 is cyclically shifted left by one bit and input to the EXOR circuit 55. Since the key 1 itself has been cyclically shifted right by one bit in advance in the key schedule unit 210 shown in FIG. 3, the key 1 output by the AND circuit 54 is transferred by being cyclically shifted left by one bit. The value of the original key 1 should be.
  • the key 1 itself is output by the operation of the EXOR circuit 55. This is the lower bit of the output signal. Therefore, the data normal conversion unit 50 can output the key 1 as an output signal as it is by the FL key transfer signal and the FL mask signal. Similarly, the key 2 can be output by the FL key transfer signal and the FL mask signal. Are transmitted as output signals as they are. This operation will be described below.
  • the FL mask signal is 0 as described above. Therefore, 0 and the key 1 output by the EXOR circuit 55 are input to the AND circuit 58, and 0 is always output.
  • the key 2 is input to the EXOR circuit 56, and the exclusive OR with the upper data 0 output by the AND circuit 51 is obtained, so that the output is always the key 2. This is the upper bit of the output signal.
  • the control unit 5 which controls the FL key transfer signal and the FL key mask signal, which are transfer signals, is not shown in FIGS. 11, 12, and 14 to 33, but is similar to that of FIG. This is controlled by the control unit 5.
  • Sub-conversion processing 1 Sub-conversion unit 3 30-When the data inverse conversion unit 70 has a key transfer function.
  • FIG. 11 is a diagram showing a case where the data reverse conversion unit 70 has a key transfer function.
  • the AND circuit 71 receives the FL- 1 key transfer signal and data.
  • the FL- 1 key transfer signal holds 0, so the data input to the AND circuit 71 is suppressed and invalidated, and the output data of the AND circuit 71 is Fixed to 0.
  • the signals input to the AND circuit 73 are both 0, and the output data of the AND circuit 73 is fixed at 0.
  • the OR circuit 74 outputs the key 3 because the output data 0 of the AND circuit 73 and the key 3 are input signals.
  • the EXOR circuit 75 outputs the key 3 to input the upper bit 0 of the output data 0 from the AND circuit 71 and the key 3. This is the upper bit of the output signal.
  • the value 1 obtained by inverting the FL- 1 mask signal 0 by the NOT circuit 72 and the key 3 are input, so that the OR circuit 78 outputs 1. Since the AND circuit 77 inputs the output data 1 and the key 4 from the OR circuit 78, the output of the AND circuit 77 becomes the key 4. Chain 4 is cyclically shifted left by one bit and input to EXOR circuit 76. Here also, key 4 is cyclically shifted to the right by 1 bit in advance by key schedule section 210 and input to data inverse transform section 70, so that it is cyclically shifted to the left by 1 bit to obtain the original key 4 Value.
  • the EXOR circuit 76 receives the lower order pit of the output data of the AND circuit 71 .0 and the key 4, so that the EXOR circuit 76 outputs the key 4. This is the lower bit of the output signal.
  • the data reverse conversion unit 70 keeps the input keys (key 3, key 4) as they are. It is possible to output.
  • Sub-conversion processing One sub-conversion part 330
  • One data normal conversion part 50 and data reverse conversion part 70 have a key transfer function.
  • FIG. 12 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 have a function of transferring a key.
  • the data normal conversion unit 50 has the same configuration and the same operation as the data normal conversion unit 50 of FIG. Therefore, the internal configuration and operation are omitted.
  • the key path from the register 240 to the selector 310 is not required, and the key is input from the key KL register 240 to the sub-transformer 330 via the key scheduler 210 and the key is transferred.
  • the transfer signal to be transmitted is input to the sub-conversion unit 330, and the key can be transferred to the selector 310 by the sub-conversion unit 330.
  • the data converter can reduce the number of selectors as a whole.
  • the data conversion device uses a function for generating an expanded key by the intermediate key generation unit 40, a main conversion unit 320, and a sub-conversion unit 330, in order to reduce the size.
  • the function for performing the de-conversion is shared, but at this time, as shown in Fig. 56 and Fig.
  • the key KL register 240 is input to the selector 310,
  • the path of the intermediate key (key KL) input to the main conversion unit 320 through the operation register 350 is described as follows:
  • the key schedule unit 210 is transmitted from the key L register 240
  • the path of the intermediate key (key KL) which is transferred to the selector 310 by the sub-transformer 3330 via the sub-transformer 3350, An increase in the number of selectors can be suppressed.
  • the input keys input in FIGS. 10 to 33 may be different keys or the same key.
  • the FL key transfer signal and the FL- 1 key transfer signal may be the same signal.
  • the FL mask signal and the FL- 1 mask signal may be the same signal.
  • FIG. 13 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a function of transferring data.
  • the control unit 5 inputs an FL data transfer signal to the data normal conversion unit 50 as a signal for transferring data.
  • the FL data transfer signal input to the data normal conversion unit 50 has a value of 0. This signal is input to the AND circuit 59 and the AND circuit 60.
  • the AND circuit 54 the upper bit of the input data and the key 1 are input to the AND circuit 54.
  • the output data of the AND circuit 54 is unspecified depending on the value of the input data. However, even if data obtained by circulating the output data one bit to the left is input to the AND circuit 60, the other signal, the FL data transformer, is output. Since the spha signal has a value of 0, the output signal of the AND circuit 60 is 0 regardless of the value of the output signal of the AND circuit 54.
  • the output data 0 of the AND circuit 60 is input to the EXOR circuit 55. Is exclusive-ORed with Since the output of the AND circuit 60 is 0, the EXOR circuit 55 outputs the lower bits of the input data and outputs the lower bits of the output signal.
  • the output data of the EXOR circuit 55 becomes the input signal of the OR circuit 57 together with the key.
  • the output signal of the OR circuit 57 is unspecified, but since the FL data transfer signal is fixed at 0, the output data of the AND circuit 59 is 0, and the EXOR circuit 56 outputs the upper bit of the input data. Since the exclusive OR with 0, which is the output data of the AND circuit 59, is taken, the upper bits of the input data are output and output as the upper data of the output signal.
  • the data normal conversion unit 50 can output the input data as it is regardless of the key input.
  • the data inverse transform unit 70 in FIG. 13 has the same configuration as the data inverse transform unit 70 shown in FIG. 57, and thus the description is omitted.
  • Sub-conversion processing One sub-conversion unit 330-When the data inverse conversion unit 70 has a data transfer function.
  • FIG. 14 shows an internal configuration diagram of the sub-conversion unit 330 when the data inverse conversion unit 70 has a data transfer function.
  • the data reverse conversion unit 70 inputs an FL- 1 data transfer signal for transferring data.
  • the AND circuit 79 outputs "0" regardless of the value of the output signal of the OR circuit 74. Therefore, in the EXOR circuit 75, the upper bits of the input data are output as they are, and become the upper data of the output signal. Further, since the FL- 1 data transfer signal is input to the AND circuit 80, the output signal of the AND circuit 80 becomes 0 regardless of the value of the output signal of the AND circuit 77. Therefore, the lower bits of the input data are output as they are by the EXOR circuit 76 and become the lower bits of the output signal. In this way, the data inverting section 70 transfers the data as it is as the output signal be able to.
  • Sub-conversion processing 1-sub-conversion unit 3 3 0--when data normal conversion unit 50 and data reverse conversion unit 70 have a data transfer function.
  • FIG. 15 is an internal configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data inverse conversion unit 70 have a data transfer function.
  • the configuration of the data normal conversion unit 50 is the same as that of the data normal conversion unit 50 in FIG. 13, and the configuration of the data inverse conversion unit 70 is the same as that of the data inverse conversion unit 70 of FIG. It is. Therefore, the data normal conversion unit 50 and the data inverse conversion unit 70 shown in FIG. 15 can directly output the data input to each.
  • the sub-conversion unit 330 has a function of transferring the input data as it is and inputting it to the selector 310, so that the output data of the main conversion unit 320 shown in FIG. No path to transfer to 0 is required.
  • the non-linearity of one stage of F functions is As described above, it is necessary for the arithmetic register 350 to hold the intermediate data for a certain period in order to perform the conversion. This means that the main converter 320 needs its own loop path.
  • the intermediate data output from the main converter 320 passes through the selector 310. This corresponds to a loop path output to the operation register 350.
  • the above-mentioned loop path becomes unnecessary. That is, the intermediate data output from the main conversion unit 320 is transferred by the sub conversion unit 330, input to the selector 310, and the selector 310 selects the input intermediate data. Is sent to the main converter 320.
  • the number of input signals to the selector 310 can be reduced compared to the number of input signals to the selector 310 shown in FIGS. Can be reduced or reduced.
  • the data converters shown in FIGS. 6 and 7 do not require a path from the main converter 320 to the selector 310, which can reduce the size of the device and reduce the number of selectors. Power consumption can be reduced.
  • the FL data transfer signal and the FL- 1 data transfer signal may be the same signal. Embodiment 3.
  • FIG. 10 is an internal configuration diagram of the sub-transformer 330 when the data forward converter 50 has a key transfer function and a data transfer function, and the data inverse converter 70 has a key transfer function.
  • the configuration and operation of the data inverse transform unit 70 are the same as those of the data inverse transform unit 70 having the key transfer function shown in FIG. 11, and thus the description is omitted here.
  • the configuration of the data normal transform unit 50 The operation is a combination of the data normal conversion unit 50 having the key transfer function shown in FIG. 10 and the data normal conversion unit 50 having the data transfer function shown in FIG.
  • the FL key transfer signal has a function of suppressing and invalidating the input data
  • the FL mask signal has a function of passing the input key
  • the FL data transfer signal has a function of invalidating the input key and passing the data through the data.
  • the FL key transfer signal and the FL mask signal hold 0 as the transfer signal for transferring the key, data transfer cannot be performed, and the FL data transfer signal is used to transfer the data. 0 cannot be held as the transmission number.
  • the FL data transfer signal holds 0 as a transfer signal for transferring data, the key cannot be transferred, so the FL key transfer signal and FL mask signal transfer the key. 0 cannot be held as a transfer signal.
  • the data forward transform unit 5 0 The data reverse conversion unit 70 performs linear conversion processing of input data that should be performed originally. First, the operation of the data normal conversion unit 50 for transferring a key will be described. The data normal conversion unit 50 outputs 0 as the FL key transfer signal, Input 0 as the lock signal. Since the data is not transferred overnight, the FL data transfer signal remains at 1.
  • the AND circuit 51 suppresses the data with the FL key transfer signal and invalidates the data.
  • the key 1 passes through the AND circuit 54 as it is, is cyclically shifted left by one bit, and is input to the AND circuit 60. Since the FL data transfer signal is 1, key 1 passes through the AND circuit 60 as it is, and in the £ 1 circuit 55, the key 1 and the lower bit of the output data 0 output from the AND circuit 51 are exclusive. Key 1 is output as lower-order data of the output signal to obtain the logical OR.
  • the key 2 passes through the OR circuit 57 with the 0 output from the AND circuit 58, passes through the AND circuit 59 with the FL data transfer signal, and outputs the output data 0 output from the AND circuit 51 with the EX EXR circuit 56. Since the exclusive OR with the upper bit is obtained, it also passes through the EXOR circuit 56 and becomes the upper data of the output signal. In this way, the data normal conversion unit 50 can transfer the keys (key 1 and key 2) as they are.
  • the input signal of the FL data transfer signal is 0.
  • the FL key transfer signal and the FL mask signal keep “1”.
  • the AND circuit 51 passes the data, and the lower bits of the passed data are input to the EXOR circuit 55.
  • the output of the AND circuit 60 since the input FL data transfer signal is 0, the output of the AND circuit 60 becomes 0. It is output as lower data of the signal.
  • the output of the AND circuit 59 becomes 0 because the FL data transfer signal is 0, and the higher-order bit of the data input to the EXOR circuit 56 is output. Is output as higher-order data of the output signal through the EXOR circuit 56. In this manner, the data normal conversion unit 50 can transfer the data as it is.
  • the key transfer signal which is an FL key transfer signal or FL- 1 key transfer signal
  • the mask signal consisting of the FL mask signal and the FL- 1 mask signal transfer the key
  • the FL data transfer signal is the data transfer signal. Transfer evening.
  • Sub-conversion processing One sub-conversion unit 3 3 0 -Data normal conversion unit 50 has a key transfer function, and data reverse conversion unit 70 has a key transfer function and a data transfer function.
  • FIG. 7 is an internal configuration diagram of a sub-conversion unit 330 of a conversion unit in which the conversion unit 50 has a key transfer function and the data inverse conversion unit 70 has a key transfer function and a data transfer function.
  • the configuration and operation of the data normal conversion unit 50 are the same as those of the data normal conversion unit 50 having the key transfer function shown in FIG. Performs the same operation as the data normal conversion unit 50 shown in FIG. 16, and the details of the operation have already been described, and thus will be omitted.
  • FIG. 18 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 each have a key transfer function and a data transfer function.
  • the transfer operation performed by the data normal conversion unit 50 and the data inverse conversion unit 70 Is omitted because it has already been described.
  • the data conversion device since both the data normal conversion unit 50 and the data reverse conversion unit 70 have a key transfer function and a data transfer function, the data conversion device performs advanced key and data transfer processing. be able to.
  • the data conversion unit 50 has a key transfer function and a data transfer function
  • the data inverse conversion unit 70 has a configuration of the sub-conversion unit 330 when neither of these transfer functions is provided.
  • Sub-conversion processing-sub-conversion section 330-Data normal conversion section 50 has key transfer function and data transfer function
  • data reverse conversion section 70 has data transfer function.
  • the data normal conversion unit 50 has both a key transfer function and a data transfer function
  • the data reverse conversion unit 70 has only a data transfer function.
  • 26 is a configuration diagram of a sub-conversion unit 330 in the case of FIG.
  • FIG. 9 is a configuration diagram of a sub-conversion unit 330 when the normal conversion unit 50 has a data transfer function and the data reverse conversion unit 70 has a key transfer function and a data transfer function.
  • Sub-conversion processing One sub-conversion part 330
  • One data normal conversion part 50 has a data transfer function
  • data reverse conversion part 70 has a key transfer function.
  • FIG. 23 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a data transfer function and the data reverse conversion unit 70 has a key transfer function. Each operation has been described above and will not be described. When the sub-conversion processing sub-conversion unit 330 and the data normal conversion unit 50 have a key transfer function and the data reverse conversion unit 70 has a data transfer function.
  • FIG. 24 is a configuration diagram of the sub-conversion unit 330 when the data normal conversion unit 50 has a key transfer function and the data inverse conversion unit 70 has a data transfer function. Each operation has been described above and will not be described.
  • Sub-conversion processing sub-conversion unit 3 3 0 1 data inverse conversion unit 7 0 and data normal conversion unit 5 0 is serially connected-when the data conversion unit 50 and the data conversion unit 70 have a data transfer function.
  • the data reverse conversion unit 70 and the data normal conversion unit 50 are serially connected, the data reverse conversion unit 70 has a data transfer function, and the data normal conversion unit 50 also has a data transfer function.
  • FIG. 25 the data reverse conversion unit 70 and the data normal conversion unit 50 are serially connected, the data reverse conversion unit 70 has a data transfer function, and the data normal conversion unit 50 also has a data transfer function.
  • the data transferred by the data reverse conversion unit 70 is input to the data normal conversion unit 50, and is output as an output signal further transferred by the data normal conversion unit 50.
  • this configuration is effective when data conversion is desired to be performed only by the data normal conversion unit 50 or only the data inverse conversion unit 70. Such an effect can be similarly exerted in the sub-conversion unit 330 shown in FIGS. 26 to 30 described later.
  • Sub-conversion processing Sub-conversion unit 3 3 0 One-data normal conversion unit 50 and data inverse conversion unit 70 are serially connected One data normal conversion unit 50 and data inverse conversion unit 70 have a data transfer function If you have.
  • FIG. 26 shows the configuration of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 in FIG. 25 are switched upside down.
  • FIG. 27 is a configuration diagram of a sub-conversion unit 330 in which a key transfer function is further added to the data normal conversion unit 50 of FIG.
  • FIG. 28 shows the sub-conversion unit 33 when the data normal conversion unit 50 and the data inverse conversion unit 70 in FIG. 27 are switched upside down. The configuration of 0 is shown.
  • FIG. 29 is a configuration diagram obtained by adding the key transfer function of the data inverse conversion unit 70 to the configuration shown in FIG.
  • the configuration and operation of the data normal conversion unit 50 and the data inverse conversion unit 70 have been described above, and will not be described.
  • Sub-conversion processing-sub-conversion unit 3 3 0 serial connection of data inverse conversion unit 70 and data normal conversion unit 50-data normal conversion unit 50 has data transfer function, data reverse conversion unit 70 Has a key transfer function and a data transfer function.
  • Fig. 30 shows the sub-conversion unit 33 0 when the data normal conversion unit 50 and the data reverse conversion unit 70 in Fig. 29 are switched upside down. Is shown.
  • the FL key transfer signal and the FL- 1 key transfer signal have a function of suppressing and invalidating input data, and the FL mask signal and the FL- 1 mask signal pass the input key. Has functions.
  • the FL data transfer signal and the FL- 1 data transfer signal have a function of invalidating an input key and passing data.
  • the above six signals are all transfer signals, and when these transfer signals are not input, as shown in the related art, the data normal conversion unit 50 and the data inverse conversion unit 70 are inherently Perform a linear transformation of the data to be performed.
  • Sub-conversion processing One sub-conversion part 3 3 0
  • One data normal conversion part 50 and data reverse conversion part 70 are serially connected
  • One data normal conversion part 50 and data one-time reverse conversion part 70 have key transfer function and If you have a data transfer function.
  • FIG. 62 includes the configuration of the data normal conversion unit 50 shown in FIG. 27 and the configuration of the data inverse conversion unit 70 shown in FIG. That is, the serially connected data normal conversion unit 50 and data inverse conversion unit 70 both have a key transfer function and a data transfer function.
  • Sub-conversion processing Sub-conversion unit 3 3 0 One data inverse conversion unit 70 and data normal conversion unit 50 are serially connected-Data overnight conversion unit 50 and Data overnight conversion unit 70 are keys When it has a transfer function and a data transfer function.
  • FIG. 63 shows the configuration of the sub-conversion unit 330 when the data normal conversion unit 50 and the data reverse conversion unit 70 in FIG. 62 are switched upside down.
  • Embodiment 4 The internal configuration and operation are omitted because they have been described above. Embodiment 4.
  • Sub-conversion processing sub-conversion section 330-1/2 When sub-conversion section 90 has a key transfer function and a data transfer function.
  • FIG. 31 is a configuration diagram of the sub-conversion unit 330 when a key transfer function and a data transfer function are added to the 1Z2 sub-conversion unit 90.
  • the switching signal is a signal for switching between the data normal conversion unit 50 and the data inverse conversion unit 70.
  • the A signal is selected by the switching signal from the A signal and the E signal input to the 2_1 selector 99a, output as the output signal B, and the C signal and the F signal input to the 2-1 selector 99b.
  • the C signal is selected by the switching signal from The sub-conversion unit 90 performs the same data conversion as the data conversion unit 50.
  • the conversion unit 90 performs the same data conversion as the data inverse conversion unit 70.
  • the operation shown in FIG. 31 is the same as the operation of the data normal conversion unit 50 shown in FIG. 18 . That is, the key transfer signal corresponds to the FL key transfer signal in Fig. 18, the mask signal corresponds to the FL mask signal in Fig. 18, and the data transfer signal corresponds to the FL data transfer signal in Fig. 18. I do.
  • the 1/2 sub-conversion unit 90 can exhibit the function of the data normal conversion unit 50 in FIG.
  • the keys key 1 and key 2
  • the keys can be transferred by using the input key as an output signal. Note that these operations are the same as those of the data normal conversion unit 50 in FIG.
  • the operation shown in FIG. 31 is the same as the operation of the data inverse conversion unit 70 shown in FIG. Becomes That is, the key transfer signal is It corresponds to the FL- 1 key transfer signal, the mask signal corresponds to the FL- 1 mask signal in Fig. 18, and the data transfer signal corresponds to the FL- 1 data transfer signal in Fig. 18.
  • each circuit 98 corresponds to the AND circuit 71 (FIG. 18), 91 corresponds to the £ 0 shading circuit 76 (FIG. 18), 95 corresponds to the AND circuit 80 (FIG. 18), 10 1 is an AND circuit 7 7 (Fig. 18), 94 is an OR circuit 78 (Fig. 18), 96 is an AND circuit 73 (Fig. 18), 92 is an OR circuit 74 (Fig. 18), 97 is an AND circuit 7 9 (FIG. 18) and 93 correspond to the circuit 75 (FIG. 18).
  • the 1Z2 sub-conversion unit 90 can exhibit the function of the data inverse conversion unit 70 in FIG. That is, when a key transfer signal is input while performing the inverse conversion of data, the key (key 3, key 4) can be transferred by using the input key as an output signal. Note that these operations are the same as those of the data inverse conversion unit 70 in FIG.
  • Sub-conversion processing One sub-conversion unit 330-1Z 2 When the sub-conversion unit 90 has a data transfer function.
  • FIG. 32 is a configuration diagram of the sub-conversion unit 330 when a data transfer function is added to the 1/2 sub-conversion unit 90.
  • the 1/2 sub-converter 90 when the A signal is selected by the 2-1 selector 99a and the C signal is selected by the 2-1 selector 99b, the 1/2 sub-converter 90 outputs the data of FIG. It has the same function as the normal conversion unit 50. In this case, the data transfer signal corresponds to the FL data transfer signal.
  • the E signal is selected by the 2-1 selector 99a according to the switching signal.
  • the 1Z2 sub-converter 90 has the same function as the data inverse converter 70 in FIG. In this case, the data transfer signal corresponds to the FL- 1 data transfer signal.
  • the 1/2 sub-conversion unit 90 converts the data and outputs the data without conversion when a transfer signal for transferring the data is input. This makes it possible to perform transfer processing.
  • Sub-conversion processing One sub-conversion unit 330-1/2 When the sub-conversion unit 90 has a key transfer function.
  • FIG. 33 is a configuration diagram of the sub-conversion unit 330 when a key transfer function is added to the 1/2 sub-conversion unit 90.
  • the 1Z2 sub-converter 90 performs the data normal conversion shown in FIG. It has the same function as the unit 50.
  • the key transfer signal and the mask signal correspond to the FL key transfer signal and the FL mask signal.
  • the 1Z2 sub-conversion unit 90 When the E signal is selected by the 2_1 selector 99a and the F signal is selected by the 2-1 selector 99b by the switching signal, the 1Z2 sub-conversion unit 90 performs the data inverse conversion of FIG. It has the same function as the part 70.
  • the key transfer signal and the mask signal correspond to the FL- 1 key transfer signal and the FL- 1 mask signal.
  • the data conversion unit 50 and the data inverse conversion unit 70 are configured as a shared circuit.
  • the 1Z2 sub-conversion unit 90 functions to transfer the key and transfers the data.
  • the size of the sub-converter 330 can be reduced, and the increase in the number of selectors can be prevented by eliminating the need for the key path and data path as described above.
  • the data conversion apparatuses that perform block ciphers disclosed in Embodiments 1 to 4 have been described centering around the configuration of CAMELL IA.
  • the sub-converter 330 having the transfer function described above can be applied to a data converter that performs block encryption, such as CAMELL IA, MISTY, and KASUM I.
  • the number of 2-1 selectors constituting the selector 310 can be one or two.
  • 310 requires four 2-1 selectors to select one output signal from five input signals. Become.
  • the data conversion device shown in FIG. 1, FIG. 6, or FIG. 7 it is possible to reduce the number of selectors constituting the data agitation unit 30 as compared with the data conversion device according to the related art. Furthermore, in the data conversion device shown in FIG. 7, one selector 340 is required because main conversion unit 320 and sub-conversion unit 330 are arranged in parallel.
  • the selector 340 is composed of one 2-1 selector that inputs two output signals output from the main converter 320 and the sub converter 330 as input signals and selects one input signal from the two input signals. Have been. Therefore, in FIG. 7, the number of 2-1 selections required for the selector 310 and the selector 340 is two.
  • CAMELL IA has a block length of 128 bits and a key length of 128 bits, 192 bits, and 256 bits can be used.
  • the configuration of the algorithm is a FEI STEL structure having the above-mentioned features, and the encryption and decryption processes can be basically realized by the same hardware or software.
  • the F function depends on the key length. For a 128-bit key, 18 stages (6 stages of the main conversion unit 320 in FIG. 34 X 3), and for 192 bits and 256 bits, FIG. 54 and FIG. As shown in the figure, there are 24 stages. 54 and 55 will be described later.
  • FIG. 34 is a diagram showing an encryption process in the case of CAMEL LIA with a 128-bit key. That is, in Fig. 34, the main conversion unit 320 Then, data conversion (data encryption) is performed by the and the sub-conversion unit 330, and C ( ⁇ symbol) is output. In FIG. 34, FL (data normal conversion function) and FL- 1 (data reverse conversion function) are inserted every six stages of the F function.
  • FIG. 34 The left side of FIG. 34 is the same as the operation described by the data agitating unit 30 of FIG. That is, the EXOR circuit 31 a and the EXOR circuit 3 lb in FIG. 4 correspond to the EXOR circuit 600 and the EXOR circuit 601 in FIG. 34, and are actually processed by the EXOR included in the sub-conversion unit 330.
  • all the keys shown in FIG. 34 are keys that are scheduled and output by the key schedule unit 210 and input.
  • FIG. 34 The right side of FIG. 34 is the same as the diagram shown in FIG.
  • FIG. 35 shows a decryption process in the case of CAMEL LIA with a 128-bit key.
  • FIG. 35 data conversion (data decryption) is performed on C (cipher text) by main conversion section 320 and sub-conversion section 330, and P (decrypted text) is output.
  • C cipher text
  • P decrypted text
  • FIG. 36 is an internal configuration diagram of the F function of CAMELLIA.
  • the inside of the F function of C AME LLIA has a SPN structure, and its data processing is basically performed in 8-bit units from input data (1) to input data (8), and from the S box It is formed by a linear transformation using exclusive OR (EXOR) called S function 324 and P function 325.
  • EXOR exclusive OR
  • input data (1) to input data (8) are input in units of 8 bits, and the input 64-bit input data is input in 8 bits from the key (1) to the key (8).
  • the exclusive logic of the 64-bit key is output.
  • the output data is input to S function 324 and G Non-linear conversion is performed in byte units by the S function 324 that combines the inverse operation of F (2 s ) and the affine transformation.
  • the data is linearly converted by an exclusive OR by the P function 325, and the data is agitated through such an operation, and then output as output data (1) to output data (8).
  • the data width of the F function of C AME LLIA is 64 bits.
  • two sets of S boxes of S i to S 4 are added to the S function 324 (one set of S 2 , S 3 > S 4 from the bottom of FIG. 36 and S 2 , S 3 , S 4 , a set)
  • F function EXOR of the key and the input data Isseki (exclusive OR), 4 types of S function (3 1 to 3 4) twice, and by calculation that by the P function 325 It realizes a non-linear conversion over time.
  • C AME LLIA A typical operation of C AME LLIA is S BOX (inverse circuit + affine transformation on GF (2 8 )) S function 324 from Si to S 4 , P function 325, data normal transformation (FL) and data transformation Even inverse transformation (Since it is a FL function, it can be realized by a simple combination of Boolean algebras.
  • FIG. 37 is a diagram showing the overall configuration and operation of CAMELL IA. If the input secret key is a 128-bit key, CAMELL IA internally expands it to 256 bits, and performs data encryption / decryption processing using the expanded key.
  • the input secret key is a 192-bit or 256-bit key, it is internally expanded to 512 bits and used for data encryption / decryption. It will be described later.
  • the entire algorithm of CAMELLIA is realized by the main conversion unit 320 repeatedly performing the same F function.
  • the F function has the configuration shown in FIG.
  • the data agitating section 30 performs an exclusive OR operation (EXOR) between the input data and the output data and the key, as shown in the EXOR circuit 31a and the EXOR circuit 31b in FIG. This is called wh i t e n i n g.
  • EXOR exclusive OR operation
  • a sub-conversion section having a data normal conversion (FL) and a data reverse conversion (FL- 1 ) is provided for each main conversion section 320 having six F-functions.
  • a data conversion device that realizes the CAM ELL IA algorithm from the sub-conversion unit 330 with data normal conversion (FL) and data reverse conversion (FL- 1 ), P function 325, and four types of S-boxes You can see what you can do.
  • the description transformation of z5 to z8 as zz2, zz3, zz4, zz1 is as follows.
  • z 2 z 1-z 2 + z 4 + z z 1 + ⁇ ⁇ 2 + ⁇ ⁇ 4
  • the P function can be configured with about half the circuit.
  • a data conversion device using CAMELL IA will be described with reference to FIG. 37.
  • a main conversion unit 320 and a sub-conversion unit 330 are arranged in parallel.
  • the sub-conversion unit 330 has a data normal conversion unit 50 and a data reverse conversion unit 70.
  • the main conversion section 320 has an F function section composed of a 1Z2 F function. If the main transform unit 320 is composed of an F function less than the F function, that is, a 1Z2 X (x ⁇ 1) F function, as described using the 1/2 F function in FIG. 61 as an example, one step Must hold the output result of the EXOR circuit 1 322a, which is the intermediate result between the processing by the F function part 1321a and the processing by the F function part 1321b.
  • the circuit scale of the F function becomes Although decreasing, the number of circuits such as control circuits for controlling the loop and selectors for inputting keys to each F function increases.
  • the circuit scale for the F function and the circuit scale for controlling the loop have a trade-off relationship.
  • CAMELL IA In the case of CAMELL IA, as described above, a part of the main conversion unit 320 of the data agitation unit 30 is used for a function used to generate an output key (key KA). Therefore, also in this case, it is necessary to sufficiently consider the influence of the selector and the like added to use the F function of the data agitating unit 30, as described with reference to FIG. 36, the F function of the CAMELL IA is using twice the S box of four is used for 8-bit input and output (S ⁇ S 2, S 3 , S 4). Here, it is necessary to consider whether to implement eight S BOXes or four S BOXes and repeat twice.
  • the circuit will be smaller by mounting 4 mm and repeating twice, rather than mounting eight S boxes.
  • the F function part 321 of the data converter of CAMEL LIA can perform one data conversion by mounting eight S-boxes, but it can perform two data conversions by mounting four S-boxes. By repeating the data conversion, it is possible to perform the data conversion overnight, and any of them may be used. However, considering the circuit scale, it is preferable to repeat the data conversion twice.
  • this sequence allows data to be encrypted and decrypted in 40 cycles of the intermediate key generation unit. realizable.
  • Step 1 the sub-transformation unit 330 is used to calculate W i t e n i n g.
  • step 2 the 1Z2 processing (1Z2 F function) of the F function is calculated using the main conversion unit 320.
  • step 3 the main conversion unit 320 is used to calculate the 1-by-2 processing of the remaining F function (1/2 F function).
  • steps 4 to 13 steps 2 to 3 are performed five times.
  • step 14 data conversion is performed by calculating the data normal conversion (FL) and data reverse conversion (FL-1) functions of the sub conversion unit 330. Further, steps 2 to 14 are repeated in steps 15 to 27.
  • steps 28 to 39 steps 2 to 13 are repeated.
  • Step 40 the same Witennig as in Step S1 is calculated.
  • Step 1 shows the operation by the EXOR circuit 31a in FIG. 4
  • Step 40 shows the operation by the EXOR circuit 31b in FIG. That is, the EXOR circuit 3 la and the EXOR circuit 3 lb perform an operation using EXOR provided in the data normal conversion unit 50 and the data reverse conversion unit 70 provided in the sub conversion unit 330.
  • the main conversion unit 320 Performs data conversion using a single F-function. The specific operation of this data processing will be described with reference to FIGS. 37 and 64.
  • FIG. 64 is different from FIG. 61 in that a lower key is input first as an input key, and an upper key is input next to realize processing.
  • the input data P (plaintext or decrypted text) is selected by the 2-1 selector 31 1 and divided into upper data and lower data.
  • the upper data is Wh by the data normal conversion unit 50 of the sub conversion unit 330.
  • the lower-order data is input to the data inverse converter 70 of the sub-converter 330, and is similarly whitened.
  • the high-order data and low-order data that have been Whiten input are input to the 2-1 selector H340 and the 3-1 selector L342 of the 2-1 selector 340.
  • the input data is selected by the 2-1 selector H 341 and the 3-1 selector L 342, and is held in the operation register H 351 and the operation register L 352.
  • step 2 Next, the operation of step 2 will be described.
  • the upper bit of the upper data held in the arithmetic register H 35 1 is input to the 2-1 selector 312, and the lower pit of the upper data is rotated by one byte and input to the 2-1 selector 3 1 2 Is done.
  • the 2-1 selector 3 12 selects the lower-order bit that is rotated and shifted from the two pieces of input data, and outputs it to the main converter 320.
  • each input data (5) to (8) can be applied to each S box and input as shown in FIG.
  • the main conversion section 320 the upper half data conversion of the first stage shown in FIG. 64 is performed by the F function section 321 having the 1/2 F function.
  • FIG. 64 In the data conversion by the F function part 1 321a shown in the following, the lower half bits of the input upper data are converted using the key 1L, and the converted data is sent to the EXOR circuit 1322a. Output.
  • the EXOR circuit 1322a inputs the converted data output by the F function section 1321a, and performs an exclusive OR operation with the input lower data. That is, the output data (intermediate data) is input from the main converter 320 to the 3-1 selector L 342, and is held in the arithmetic register L 352.
  • the upper data of P held in the arithmetic register H 351 passes through the 2-1 selector 3 1 1, and uses the data transfer of the sub conversion unit 330, for example, the data normal conversion unit 50. Then, the data is transferred overnight, and is passed through the 2-1 selector H341 from the arithmetic register H351 to the arithmetic register H351 again.
  • step 3 Next, the operation of step 3 will be described.
  • the overnight processing by the F function section 1321b in FIG. 64 is realized by the second cycle processing by the main conversion section 320 in FIG. That is, the 2-1 selector 312 selects the upper bit of the higher order data input to the 2-1 selector 312 without shifting by one pilot bit, and outputs it to the main converter 320.
  • the data of the upper half of the higher-order data is nonlinearly converted by the F function part 1321b and output to the EXOR circuit 1322b.
  • the main conversion section 320 outputs in the first cycle, and the intermediate data held in the arithmetic register L 352 is input to the main conversion section 320, so that Input to circuit 1322b.
  • the output data after the exclusive OR is obtained by the EXOR circuit 1 322 b is selected by the 2-1 selector H 341 and held in the operation register H 351.
  • the upper data of P is held in the calculation register L 352 via the 3-1 selector L 342. Obedience Therefore, the upper and lower data used for the second-stage data conversion process performed by the main conversion section 320 of FIG. 64 are held in the operation register H 351 and the operation register L 352. It will be.
  • steps 4 to 13 steps 2 to 3 are performed five times. That is, the data conversion of the second stage is performed by the F function section 1 3 2 1 and the EXOR circuit 1 3
  • the processing performed in two cycles that is, one cycle with 22c and one cycle with the F function part 1321d and the EXOR circuit 1322d corresponds to the processing of step 4 and step 5.
  • the processing from the third stage to the sixth stage is performed in the same manner, but this corresponds to the processing from step 6 to step 13.
  • step 14 The function of 3 2 1 1 is the same as the function of the F function section 3 2 1 in FIG. 37. Next, the processing of step 14 will be described.
  • the high-order data and the low-order data after the processing of step 13 held in the arithmetic register H 3 51 and the arithmetic register L 3 52 are input to the 2-1 selector 3 1 1, selected, and The high-order data is input to the data normal conversion unit 50, and the low-order data is input to the data reverse conversion unit 70.
  • the data normal conversion unit 50 and the data inverse conversion unit 70 linearly convert each input data, and the conversion data by the data normal conversion unit 50 is output to a 2-1 selector H 3 41.
  • the converted data from the data inverse converter 70 is input to the 3-1 selector L 3 42, selected, and held in the operation register H 3 51 and the operation register L 3 52, respectively.
  • step 15 to step 27 corresponds to the processing of the main conversion unit 320 and the processing of the sub conversion unit 330 in FIG.
  • the processing from step 28 to step 39 corresponds to the processing of the main conversion unit 320 in FIG.
  • step 40 as in step 1, W hiten inn is performed using the EXOR of the sub-conversion unit 330.
  • the main conversion unit 320 and the sub-conversion unit 330 are arranged in parallel, so that they are arranged in series. As compared with, the cycle time of one cycle can be reduced, and the operating frequency can be improved.
  • the data conversion device using CAMELLIA in which the main conversion unit 320 and the sub conversion unit 330 are arranged in series, as described above, when performing one data conversion by the F function in a plurality of cycles as described above, Since the data to be converted in one cycle is a part of the input data, a part of the converted data of the input data is held in the arithmetic register 350 and is sent to the sub-converter 330 after a certain period of time. Path in the data agitation unit 30 or a transfer path for transferring the main conversion unit 320 and sending it to the sub-conversion unit 330 after a certain period of time. Had to be provided.
  • main conversion section 320 and sub conversion section 330 are arranged in parallel. Since they are arranged in a row, it is not necessary to add the above-described path or the transfer path function of the main conversion unit 320, and it is possible to suppress an increase in the circuit scale of the device. Furthermore, when the shared circuit of the data normal conversion unit 50 and the data inverse conversion unit 70 shown in FIG. 59 is used, the path of A ⁇ B ⁇ C ⁇ D ⁇ E ⁇ B ⁇ C It becomes a circuit. For this reason, when implementing an actual LSI, it is necessary to devise a device that does not become a transmission circuit due to the effects of signal racing and noise due to the difference in the propagation delay of the switching signal. Also, a circuit having such a loop circuit (FEEDBACK-LOOP circuit) has a problem that a logic synthesis tool cannot cope with it and logic synthesis is not performed efficiently.
  • FEEDBACK-LOOP circuit has a problem that a logic synthesis tool cannot cope with it and logic synthesis
  • the data normal conversion unit 50 and the data reverse conversion unit 70 of the sub conversion unit 330 are provided separately. For this reason, it has become possible to construct a data conversion device that does not cause the above-mentioned problems such as lasing.
  • the key path from the key KL register 240 and the data path from the main conversion section 320 are unnecessary by using the key and data transfer function of the sub conversion section 330. can do. Therefore, it is possible to further reduce the size and power consumption of the data conversion device that performs the block processing of CAMELL IA.
  • Embodiment 6 the key path from the key KL register 240 and the data path from the main conversion section 320 are unnecessary by using the key and data transfer function of the sub conversion section 330. can do. Therefore, it is possible to further reduce the size and power consumption of the data conversion device that performs the block processing of CAMELL IA. Embodiment 6.
  • FIG. 38 is a configuration diagram of a CAMELL IA data conversion device according to the sixth embodiment.
  • sub-conversion unit 330 is configured by a 1/2 sub-conversion unit 90 in which the data normal conversion unit 50 and the data inverse conversion unit 70 are shared circuits. For this reason, the 2-1 selector 2 15 and 4-1 selector in Figure 37 2 17 is unnecessary.
  • the four selectors required for the 2-1 selector 215 and the 411 selector 217 and the key output by the 2_1 selector 215 are used as sub-selectors.
  • the path input to the conversion unit 330 is not required. For this reason, the configuration of the key schedule unit 210 can be simplified, and the size of the data converter can be further reduced.
  • FIG. 47 is a configuration diagram of a CAMEL LIA data converter according to the seventh embodiment.
  • This embodiment is different from the configuration diagram of FIG. 37 in that the F function section 321 of the main conversion section 320 is composed of a 1-8 F function. That is, in the present embodiment, main conversion section 320 performs data conversion of one F function in eight cycles. Therefore, as compared with FIG. 37, the 2-1 selector 3 12 in FIG. 37 is changed to the 8-1 selector 3 15. Other configurations are the same as those in FIG. Embodiment 8.
  • FIG. 48 is a configuration diagram of a CAMEL LIA data converter according to the eighth embodiment.
  • the present embodiment is different from the embodiment shown in FIG. 47 in that 330 includes 12 sub-transformers 90. Therefore, the 2_1 selector 2 15 and the 4 ⁇ 1 selector 2 17 shown in FIG. 47 are not required.
  • FIG. 49 is a configuration diagram of a CAMEL LIA data converter according to the ninth embodiment.
  • the present embodiment is different from FIG. 37 in that the F function section 32 1 of the main conversion section 320 is composed of 14 F functions. Therefore, the 2-1 selector 3 12 in FIG. 37 is a 4-1 selector 3 16 in FIG. 4 — 1 Selector 316 Using the 16-bit input data selected by 316, the main conversion unit 320 performs data conversion of one cycle by performing 4-cycle data conversion by the F function unit 321. .
  • Other configurations are the same as in FIG. Embodiment 10
  • FIG. 50 is a configuration diagram of a CAMEL LIA data converter according to the tenth embodiment.
  • sub-conversion section 330 includes 1/2 sub-conversion section 90. Therefore, as compared with FIG. 49, the 2-1 selector 2 15 and the 4_1 selector 2 17 are not required. Other configurations are the same as in FIG. Embodiment 1 1.
  • FIG. 39 is a configuration diagram of a CAMEL LIA data converter according to the eleventh embodiment.
  • the main conversion section 320 is configured by an F function section 321 having one F function. Accordingly, the main conversion unit 320 can perform the processing of one stage of the F function in one cycle, and thus the 2-1 selector 312 which is present in FIG. 37 is not required. Also, the 2-1 selector in Figure 37 The 2-1 selector 213 selects one constant from the four constants, and the 2-1 selector 213 has changed to the 4-1 selector 218. Embodiment 1 2.
  • FIG. 40 is a configuration diagram of a CAME LLIA data converter according to the twelfth embodiment.
  • a 2-1 selector 3 13 is added. This is because, because the sub-transformer 3 30 is composed of the 1Z2 sub-transformer 90, either the upper data or the lower data is selected from the data selected by the 2-1 selector 31 1. To do that.
  • the 2-1 selector 312 is not required as in FIG. Further, the 2-1 selector 215 and the 4-1 selector 217 in FIG. 39 are not required.
  • FIG. 41 is a configuration diagram of a CAMEL LIA data converter according to the thirteenth embodiment.
  • the main conversion unit 320 does not repeat the F function unit 321 six times, but the main conversion unit 320 has six stages of F function units 321 in series and performs data conversion. Different in that. Therefore, in the present embodiment, the output signal of main conversion section 320 is increased by one. This is because the output data of the second-stage F function of the main conversion unit 320 is input to the 3-1 selector H343 and the 4-1 selector L344, and is output by the arithmetic register H351 and the arithmetic register L352. It is for holding. For this reason, the 3-1 selector H 343 There are three signals, and four-one selector L344 has four input signals.
  • FIG. 42 is a configuration diagram of a CAMEL LIA data converter according to the fourteenth embodiment.
  • FIG. 42 differs from FIG. 40 in that the main conversion section 320 includes an F function section having six stages of F functions in series, similarly to FIG. For this reason, as in the case of FIG. 41, the input signals of the 3_1 selector H 343 and the 4-1-1 selector L 344 are increased by one, and the 4-1-1 selector 500 and the 4-1-1 selector are different from those of FIG. It is necessary to provide four sets of selectors 501.
  • the key scheduler 210 is also configured to supply the keys to the sub-transformer 330 and the main transformer 320 from the other selectors 411 and 3-1 selectors 502 and 504. I have. Note that three input signals are input to the 3_1 selector 504. Embodiment 1 5.
  • FIG. 43 is a configuration diagram of a CAMEL LIA data converter according to the fifteenth embodiment.
  • the present embodiment is different from FIG. 41 in that main conversion section 320 has F function section 321 having two stages of F functions. Therefore, as compared with FIG. 41, the 3-1 selector H343 and the 4-1 selector L 344 are replaced with the 2-1 selector H34 1 and the 3-1 selector L 342, and the 4-1 selector 500 and the 4-1 selector 501 are replaced. Eliminates the need for four sets of selectors
  • FIG. 44 is a configuration diagram of a CAMEL LIA data converter according to the sixteenth embodiment.
  • This embodiment is different from the embodiment of FIG. 42 in that F function section 321 provided in main conversion section 320 is composed of two-stage F functions. Therefore, the 3-1 selector H343 and the 4-1 selector L 344 in FIG. 42 are replaced by the 2-1 selector H 341 and the 3-1 selector L 342, and the 4-1 selector 500 and the 4-1 selector 501 are replaced with each other. Four sets of selectors are not needed.
  • FIG. 45 is a configuration diagram of a CAMEL LIA data converter according to the seventeenth embodiment.
  • F function section 321 of main conversion section 320 has three stages of F functions. Therefore, as compared with FIG. 41, four sets of selectors including the 411 selector 500 and the 411 selector 501 become unnecessary, and a 411 selector 505 is added instead. 4-1 The signal selected by the selector 505 is input to the main converter 320.
  • Embodiment 1 8.
  • FIG. 46 is a configuration diagram of a CAME LLIA data converter according to the eighteenth embodiment.
  • the F function unit 321 of the main conversion unit 320 has three stages of F functions.
  • sub-converting section 330 includes 1/2 sub-converting section 90 in the present embodiment.
  • Other configurations are the same.
  • FIG. 51 is a configuration diagram of the CAME LLIA data converter according to the nineteenth embodiment.
  • the configuration of the intermediate key generation unit 40 is different from that of FIG. Since the configuration of the intermediate key generation unit 40 shown in the present embodiment is equivalent to the configuration of the intermediate key generation unit 40 shown in FIG. 37, the intermediate key generation unit 40 shown in FIG. It can be replaced with part 40.
  • the 2-1 KL selector 29 1 inputs the input secret key and the intermediate key (key KL) held in the key KL register 240, selects one signal from the two input signals, The key is stored in the KL register 240.
  • the 2-1 KA selector 292 inputs the output key generated by the intermediate key generation unit 40 and the output key (key KA) held in the key KA register 250.
  • the 2-1 KA selector 292 selects one signal from the input two input signals, and the key KA register 250 holds the selected signal.
  • 2-1 Selector 227 consists of key KL register 240 and key KA register 2
  • One key is selected from the intermediate key (key KL) and the output key (key KA) held in 50 and output to the 8-1 selector 228.
  • the 8-1 selector 228 converts the key selected by the 2-1 selector 227 into eight bits of 0, 15, 30, 30, 45, 60, 77, 94, and 1 1 as shown in FIG. To shift right or left cyclically. That is, if the number of cyclic shift pits is 0, no data is shifted. If the number of cyclic shift bits is 15, the 15-bit data is cyclically shifted right or left. Others are the same. As described above, eight signals are generated by cyclically shifting data, and the eight-to-one selector 228 selects and outputs one signal from the eight signals.
  • the function similar to the function of the intermediate key generation unit 40 in FIG. 37 can be performed by the intermediate key generation unit 40 having the configuration of the present embodiment.
  • the high-order half bits are KLH and the low-order half bits are KLL, and the key scheduler unit 210 2 ⁇ ;! Selectors 510 and 2-1 Input to selector 5 1 1.
  • the 4-1 selector 216 and the 4-1 selector 217 in FIG. 37 can be replaced with the 2-1 selector 510 and the 2-1 selector 511 in the present embodiment.
  • the intermediate key generation unit 40 shown in FIG. 52 requires 10 2-1 selectors in the same manner as the intermediate key generation unit 40 shown in FIG. 37, but the 2-1 selector 510 and 2-1 Since only two 2-1 selectors are required for the selectors 5 1 and 1, the 2-1 selector required for the intermediate key generators 40 and 2-1 selector 5 10 and the 2-1 selector 5 1 1 Is 12 in total.
  • 10 2 _ 1 selectors are required, and 4 1 1 selectors 2 16 and 4 ⁇ ⁇ ⁇ ⁇ 1 selectors 217 require 6 ⁇ 1 1 selectors. Therefore, the intermediate key generator 40 and the 4-1-1 selector
  • the 2-1 selectors 216 and 4-1 selectors 2 17 need to be provided with a total of 16 selectors.
  • the data converter of the present embodiment can reduce four 2-1 selectors as a whole.
  • FIG. 52 is a configuration diagram of a CAMEL LIA data converter according to the twentieth embodiment.
  • sub-conversion section 330 includes 1Z2 sub-conversion section 90. Therefore, the 2-1 selector 2 15 and the 2-1 selector 5 11 shown in FIG. 51 are unnecessary in the present embodiment.
  • Other configurations are the same as in FIG.
  • the number of rotate shift bits shown in FIGS. 51 and 52 is the same as the number of cyclic shift bits. Embodiment 21.
  • FIG. 34 and FIG. 35 shown in the description of the fourth embodiment show a process of performing an encryption process and a decryption process by CAMEL LIA using a key having a length of 128 bits.
  • the configuration diagram of the data conversion device for all the embodiments is as follows.
  • the present invention can also be applied to a CAME LLIA data conversion device that performs encryption / decryption processing based on not only a 28-bit key but also a 192-bit key and a 256-bit key.
  • FIG. 53 is a diagram showing a process of generating a 192 pit key.
  • keys KL and KR are intermediate keys, and keys KA and KB are output keys. Furthermore, since the key KL, key KR, key KA, and key KB are all 128 bits, they are added up to generate an expanded key of 512 bits.
  • the key KL is 128 bits of the upper half bit of the input secret key
  • the key KR is lower 128 bits.
  • the key KL and the key KR are exclusive-ORed and input to a part of the main conversion unit 320 as shown in FIG.
  • FIG. 53 corresponds to the right part of FIG. 2 showing a method of generating an extended key when the secret key is 128 bits long.
  • the method of generating the output key KA from the input key on the left side of Fig. 53 is the same as the method of generating the output key KA shown in Fig. 2, except that the exclusive OR of the key KL and the key KR becomes the input key. It is.
  • the process of generating the output key KB from the key KR on the right side of FIG. 53 does not exist in FIG. Therefore, the method of generating the output key (key KB) will be described.
  • the lower 128 bits are used as the input key (key KR) and input to the main converter 320.
  • the upper bit of the lower 128 bits uses the F function part 321a located at the first stage of the main converter 320. Is nonlinearly converted by the constant ⁇ 5 and output.
  • the output data is exclusive-ORed with the lower bit of the input key (key KR) by the EXOR circuit 322a, and is input to the F function section 321b.
  • the data is nonlinearly converted again by the constant ⁇ 6, and the exclusive OR is performed by the EXOR circuit 322 b between the converted data and the upper bits of the input key (key KR). The sum is taken.
  • the converted data after the operation by the EXOR circuit 322 b is output as the upper 64 bits of the output key (key KB), and the data obtained by the operation by the EXOR circuit 322 a is the lower 64 bits of the output key (key KB). Output as evening.
  • the output key (key KA and key KB) and the input key (key KL and key KR) generated in this way are converted from the intermediate key generation unit 40 to the key schedule unit 2 as a 512-bit expanded key.
  • the key is sent to the key schedule section 210, and the key is scheduled by the key schedule section 210, which is used for data encryption / decryption.
  • the secret key is 192 bits
  • the upper 128 bits of the input secret key will be the key KL.
  • the lower 64 bits of the input secret key are the upper 64 bits of the key KR.
  • the lower 64 bits of the key KR are the upper 64 bits of the key KR, that is, the inverted lower 64 bits of the input secret key.
  • the other key generation methods are the same as in the case where the secret key is 256 bits, and a description thereof will be omitted.
  • FIG. 54 is a diagram showing the encryption processing of the 192 bit key and the 256 bit key CAMEL LIA.
  • FIG. 55 is a diagram showing a CAME LLIA decryption process for a 192 pit key and a 256-bit key.
  • Fig. 35 shows the CAMEL LIA decryption process for a 128-bit key.Comparing with Fig. 35, the number of main conversion units 320 and sub-conversion units 330 is increased to three. As in the case, the F function has 24 stages. The other configuration is the same as that of the CAMELL IA decryption process for the 128-bit key, and thus the description is omitted.
  • All the embodiments described above can be applied to a 128-bit key data converter, a 192-bit key data converter, and a 256-bit key data converter.
  • each operation of each component is related to each other, and the operation of each component can be replaced as a series of operations while taking into account the relation of the operations described above. . Then, by substituting in this way, an embodiment of the method invention can be obtained.
  • an embodiment of a computer-readable recording medium recorded on the program can be provided.
  • Embodiment of a program and computer reading recorded in the program All of the embodiments of the recording medium that can be used can be constituted by a program that can be operated by a computer.
  • Each process in the embodiment of the program and the embodiment of the computer-readable recording medium on which the program is recorded is executed by the program.
  • This program is recorded in the recording device, and is stored in the recording device. (CPU), and each flowchart is executed by the central processing unit.
  • the recording device and the central processing unit are not shown.
  • the software and programs of each embodiment may be realized by firmware stored in a ROM (READ ONLY MEMORY).
  • the functions of the above-described program may be realized by a combination of software, firmware, and hardware.
  • the size of the device can be reduced.
  • power consumption can be reduced by reducing the number of gates in the entire circuit.
  • the operating frequency can be improved.
  • the sub-transformer can transfer the input data or the input key.
  • One of the data normal conversion unit 50 and the data inverse conversion unit 70 can perform data data conversion, and the other of the data normal conversion unit 50 and the data inverse conversion unit 70 can transfer the input data or key.

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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Holo Graphy (AREA)
  • Document Processing Apparatus (AREA)

Description

明細書 デ一夕変換装置及びデー夕変換方法 '技術分野
本発明は、 デー夕の暗号化またはデー夕の復号を行うデー夕変換装置 及びその方法に関するものである。 背景技術
関連する技術について説明する。
図 56は、 関連するデータ変換装置の構成及び動作図である。
図 56に示すように、 ブロック暗号処理を行うデータ変換装置は、 鍵 生成部 20とデータ攪拌部 30とから構成される。
鍵生成部 20は、 データの暗号化 Z復号を行うための鍵を生成する鍵 生成部である。
データ攪拌部 30は、 入力されたデ一夕を暗号化または復号する部で ある。
鍵生成部 20は、 中間鍵生成部 40と鍵スケジュール部 210とから 構成される。 中間鍵'生成部 40は、 秘密鍵を入力し、 入力した秘密鍵か ら中間鍵 (鍵 KL) と出力鍵 (鍵 KA) とを生成する部である。 鍵スケ ジュール部 2 10は、 中間鍵生成部 40によって生成された中間鍵 (鍵 KL) と出力鍵 (鍵 KA) とを入力し (鍵 KLL、 鍵 KLH、 鍵 KAL 、 鍵 KAH) 、 入力した各々の鍵からデ一夕攪拌部 30へ供給すべき鍵 をスケジュールする。 このように、 鍵生成部 20では、 中間鍵生成部 4 0と鍵スケジュール部 2 1 0とにより鍵の生成と鍵のスケジュールを行 つている。 データ攪拌部 3 0では、 P (平文) を入力した場合には、 データを喑 号化するデータ変換を行い、 変換されたデータを C (暗号文) として出 力する。 また、 データ攪拌部 3 0は、 P (暗号文) を入力した場合には 、 データ復号するデータ変換を行い、 変換されたデータを C (復号文) として出力する。 このように、 データ攪拌部 3 0は、 データの暗号化処 理と復号処理とを行う。
データ攪拌部 3 0では、 主変換部 3 2 0と副変換部 3 3 0とが、 シリ アルに接続されている。
主変換部 3 2 0は、 データの非線形変換を行う部である。 即ち、 主変 換部 3 2 0は、 データの非線形変換を行う F関数を 1段又は複数段有す るか、 又は、 F関数の一部を有し、 F関数又は F関数の一部を用いてデ 一夕の非線形変換を行う。 図 5 7では、 主変換部 3 2 0は、 F関数を 1 段以上有している。
副変換部 3 3 0は、 データの線形による変換を行うデータ正変換部 ( F L ) とデータ正変換部 (F L ) とは逆の変換を行うデータ逆変換部 ( F L "1) との少なくともいずれかを有し、 データ正変換部 (F L ) 又は データ逆変換部 (F L—り を用いて入力されたデ一タを入力された鍵に よつて線形変換する部である。
セレクタ 3 1 0は、 主変換部 3 2 0と副変換部 3 3 0と P (平文又は 暗号文) と鍵とを入力信号として入力信号から一つの信号を選択する選 択器である。 図 5 6に示すセレクタ 3 1 0は、 4つの入力信号から 1つ の出力信号を選択するセレクタを 2つの入力信号から 1つの出力信号を 出力する 2― 1セレクタ換算で 3個持っている。
演算レジス夕 3 5 0は、 主変換部 3 2 0及び副変換部 3 3 0及び C ( 暗号文又は復号文) として出力するデータを所定期間保持するメモリで ある。 02689
3 このように、 データ攪拌部 30では、 入力データである P (平文又は 暗号文) を主変換部 320によって非線形変換し、 副変換部 330によ つて線形変換することを複数回交互に繰り返すことによりデ一夕の暗号 化ノ復号処理し、 C (暗号文又は復号文) として出力する。
主変換部 320の内部構成について説明する。
図 57は、 主変換部 320の内部構成の一例である。 図 57では、 主 変換部 320は、 6個の F関数部から構成されている。 ここでは、 F関 数部が一段の F関数処理を行う回路から構成されていると仮定すると、 図 57に示す主変換部 320では 6段の F関数による非線形データ変換 処理を行うこととなる。
6段の F関数処理回路について、 主変換部 320は、 6個の F関数処 理回路を持っていてもよいし、 1つの F関数処理回路を持ち、 6回 F関 数による処理を繰り返すことによって、 6段の F関数によるデータ処理 を行ってもよい。
主変換部 320では、 まず、 入力デ一夕のうち分割された上位データ が F関数部 32 1 aに入力される。 また、 鍵スケジュール部 210によ つてスケジュールされた鍵 1も入力される。 F関数部 32 l aでは、 前 述したとおり、 鍵を用いて上位入力データを非線形変換する。 EXOR 回路 322 aでは、 非線形変換されたデータと下位入力データとの排他 的論理和がとられる。 EXOR回路 322 aから出力されたデ一夕は、 F関数部 32 1 bの入力データとなる。 F関数部 32 l bは、 F関数部 32 l aと同様に、 非線形変換処理を行い、 EXOR回路 322 bによ つて変換されたデ一夕と上位入力データとの排他的論理和がとられる。 EXOR回路 322 bから出力されたデータは、 F関数部 321 cの入 力データとなる。 このように、 F関数部 321 a、 EXOR回路 322 aによる処理と同様の処理が、 F関数部 32 1 bと EXOR回路 322 b、 F関数部 32 1 cと EXOR回路 322 c、 F関数部 32 I dと E XOR回路 322 d、 F関数部 32 1 eと EXOR回路 322 e、 F関 数部 32 1 f と EXOR回路 322 f により行われる。 このようにして 、 F関数部によるデータの非線形変換を 6段 (又は 6回繰り返し) 行つ た後、 変換されたデータを出力する。
このように、 上位データと下位デー夕とに分割されたデータのいずれ か一方を入力し、 入力したデータを非線形によりデータ変換し、 データ 変換した上位デ一夕と下位データのいずれか一方を出力し、 出力した上 位デ一夕と下位データのいずれか一方と上位データと下位データのいず れか他方とを排他的論理和演算し、 排他的論理和演算したデータと、 上 記 F関数部に入力されなかった上位デ一夕と下位データとのいずれか他 方とを入れ替えて出力することにより上位データと下位データとを入れ 替えて出力することを特徴とする非線形変換処理構造を FE I STEL 構造と呼ぶ。
データをランダム化する代表的な構造としては、 上記 FE I STEL 構造と S PN (S u b s t i t u t i on P e r mu t a t i o n Ne two r k) 構造とが存在する。 S P N構造をもつ主変換部 320 は、 並列処理に優れているといわれている。 一方、 FE I STEL構造 をもつ主変換部 320は、 ハードウェアの規模を小型化することに優れ ているといわれている。
なお、 S PN構造は、 FE I STEL構造のように、 入力データを分 割することはせず、 S層 (非線形層) と P層 (線形層) で構成される F 関数を繰り返す構造を持つ。
副変換部 330の内部構成について説明する。
図 58は、 副変換部 330を構成する回路を示す図である。
図 58の副変換部 330は、 データ正変換部 50とデータ逆変換部 7 0とを有している。
データ正変換部 5 0では、 A N D回路 5 4によって入力された 6 4ビ ットデータのうち上位 3 2ビットデータと鍵 1との論理積がとられ、 1 ビット左に巡回シフトされ、 E X O R回路 5 5によって入力データの下 位 3 2ビットとの排他的論理和がとられ、 その結果が下位 3 2ビットの 出力信号として出力されるとともに、 O R回路 5 7に入力される。 O R 回路 5 7では鍵 2との論理和がとられ、 E X O R回路 5 6によって入力 データの上位 3 2ビットデ一夕との排他的論理和がとられ、 その結果が 上位 3 2ビットの出力信号として出力される。 このようにして、 6 4ピ ットの入力デ一夕が線形変換され、 6 4ビットの出力信号として出力さ れる。
デ一タ逆変換部 7 0では、 O R回路 7 4によって入力された 6 4ビッ トデータのうち下位 3 2ビットデ一夕と鍵 3との論理和がとられ、 E X O R回路 7 5によって入力データの上位 3 2ビッ卜との排他的論理和が とられ、 その結果が上位 3 2ビットの出力信号として出力されるととも に、 A N D回路 7 7に入力される。 A N D回路 7 7では鍵 4との論理積 がとられ、 1ビット左に巡回シフトされ、 E X〇R回路 7 6によって入 力データの下位 3 2ビットデ一夕との排他的論理和がとられ、 その結果 が下位 3 2ビットの出力信号として出力される。 このようにして、 6 4 ビッ卜の入力データがデータ正変換部 5 0とデ一夕逆変換部 7 0とによ り線形変換され、 6 4ビットの出力信号として出力される。 なお、 鍵 1 〜鍵 4は鍵スケジュール部 2 1 0から供給される。
図 5 9は、 副変換部 3 3 0の他の一例として、 データ正変換部 5 0と データ逆変換部 7 0とを共用した回路を示す図である。
図 5 9では、 データ正変換部 5 0とデータ逆変換部 7 0とを切り換え る切換信号を入力することにより、 データ正変換部 5 0とデータ逆変換 9
6 部 70とが切り換わる。 即ち、 図 59に示す共用回路では、 切換信号を 入力することにより 2— 1セレクタ 99 aが入力信号 Aと入力信号 Eと を切り換え、 2— 1セレクタ 99 bが入力信号 Cと入力信号 Fとを切り 換える。
まず、 共用回路がデータ正変換部 50として動作する場合を説明する
2一 1セレクタ 99 aが入力信号 Eと入力信号 Aとから入力信号 Aを 選択し、 出力信号 Bとして出力し、 AND回路 10 1によって鍵 1との 論理積をとり、 1ビット左に巡回シフトした後、 EXOR回路 9 1によ つて入力データの下位 32ビットとの排他的論理和がとられ、 下位 32 ビットの出力信号として出力されるとともに、 入力信号 Cとして 2— 1 セレクタ 99 bに入力される。 2— 1セレクタ 99 bでは、 入力信号 C と入力信号 Fとから入力信号 Cを選択し、 出力信号 Dとして出力する。 OR回路 92では、 出力信号 Dと鍵 2との論理和がとられ、 EXOR回 路 93によって入力データの上位 32ビットデータとの排他的論理和が とられ、 上位 32ビットの出力信号として出力される。
次に、 共用回路がデータ逆変換部 70として動作する場合を説明する
2— 1セレクタ 99 bでは入力信号 Cと入力信号 Fとから入力信号 F を選択し、 出力信号 Dとして出力し、 OR回路 92によって鍵 2との論 理和がとられ、 EXOR回路 93によって入力データの上位 32ビッ卜 との排他的論理和がとられ、 上位 32ビットの出力信号として出力され るとともに、 入力信号 Eとして 2— 1セレクタ 99 aに入力される。 2 一 1セレクタ 99 aでは、 入力信号 Aと入力信号 Eとから入力信号 Eを 選択し、 出力信号 Bとして出力する。 AND回路 1 0 1では、 出力信号 Bと鍵 1との論理和がとられ、 1ビット左に巡回シフトした後、 EXO R回路 9 1によって入力データの下位 32ビットとの排他的論理和がと られ、 下位 32ビットの出力信号として出力される。
図 60は、 図 56が示すデータ変換装置に対し、 主変換部 320が 1 段未満の F関数を処理する 1Z2X (x≥l) F関数を有している場合 のデータ変換装置を示す図である。
主変換部 320は、 例えば、 1/2 F関数を有している場合、 主変換 部 320から副変換部 330とセレクタ 3 1 0と演算レジスタ 350と を経て主変換部 320に至るパスによって 2サイクルの処理を行うこと により、 データを F関数によつて非線形変換する処理が 1回可能となる 。 このような処理を行うために、 図 60に示すデータ変換装置では、 図 56に示すデータ変換装置と比較し、 演算レジスタ 350からセレクタ 3 1 0へのパスが付加されている。
演算レジス夕 350からセレクタ 31 0へのパスを利用した主変換部 320の動作について説明する。
図 61は、 主変換部 320の内部構成について説明する。
図 61に示すように、 主変換部 320は 1段未満の F関数を処理する 一例として 1/2の F関数処理を行う 1 2段の F関数部 (1Z2 F関数 ) から構成されている。 図 6 1の主変換部 320では、 図 57の主変換 部 320の F関数部 32 1 aと EXOR回路 322 aとを用いたデータ 変換を F関数部 1 32 1 aと F関数部 1 32 1 bと EXOR回路 1 32 2 aと EXOR回路 1 322 bとを用いて行う。
図 61の主変換部 320では、 まず、 1段目の処理を説明する。 上位 入力データのうち分割された上位データは、 F関数部 1 32 1 aに入力 される。 また、 鍵スケジュール部 2 10によってスケジュールされた鍵 1の上位ビットからなる鍵 1 Hも入力される。 F関数部 132 l aは、 鍵 1 Hを用いた上記上位デ一夕の非線形変換を行う。 変換されたデータ 8 は、 EXOR回路 1322 aに入力され、 下位入力データのうち分割さ れた上位デー夕との排他的論理和がとられる。
EXOR回路 1 322 aから出力されたデータは、 EXOR回路 1 3 22 bでのデ一夕処理がなされるまで、 演算レジス夕 3 50に中間デー 夕として保持しておく。
次に、 2段目の処理を説明する。 上位入力デ一夕のうち分割された下 位データが F関数部 1 32 1 bに入力される。 また、 鍵スケジュール部 21 0によってスケジュールされた鍵 1の下位ビットからなる鍵 1 Lも 入力される。 F関数部 1 32 l bは、 鍵 1 Lを用いた上記下位データの 非線形変換を行う。 変換されたデータは、 EXOR回路 1322 bに入 力される。
ここで、 先程演算レジス夕 3 50に保持した EXOR回路 1 322 a からの出力データである中間データを EXOR回路 1 322 bに入力す る必要が生じる。 そこで、 演算レジスタ 350からセレクタ 3 1 0への パスが必要になる。 即ち、 演算レジスタ 350からセレクタ 3 10への パスを用いることによって演算レジス夕 350に保持された中間データ をセレクタ 3 10に入力することが可能となる。 セレクタ 3 1 0は、 入 力された中間データを選択する。 中間データは、 演算レジス夕 350を 経て主変換部 320に入力され、 EXOR回路 1 322 bによって、 F 関数部 1 32 1 bの出力データとの排他的論理和がとられる。 EXOR 回路 1 322 bから出力されたデータは、 F関数部 1 321 cの入力デ 一夕となる。
このように、 F関数部 1 32 1 a、 EXOR回路 1 322 a、 F関数 部 132 1 b、 EXOR回路 1 322 bによる処理と同様の処理が、 F 関数部 1 32 1 c、 EXOR回路 1 322 c、 F関数部 132 1 d、 E XOR回路 1 322 dによる処理、 F関数部 1 32 1 e、 EX〇R回路 9
1 322 e F関数部 1 321 f 、 E X O R回路 1 322 f による処理 、 F関数部 1 321 g、 EXOR回路 1 322 g、 F関数部 132 1 h 、 EXOR回路 1322 hによる処理、 F関数部 1 32 1 i、 EXOR 回路 1 322 i、 F関数部 132 1 j、 £ 0 回路1 322 j による 処理、 F関数部 1321 k、 EXOR回路 1 322 k、 F関数部 1 32
1 1、 EXOR回路 1 322 1による処理として行われる。 このように して、 F関数部によるデータの非線形変換を 1 2段 (又は 12回繰り返 し) 行った後、 変換されたデータを出力する。 課題 1.
図 56及び図 60に示すデータ変換装置では、 鍵生成部 20がデータ の暗号化/復号に使用する鍵を生成するために主変換部 320の一部と 副変換部 330の一部を使用する。 鍵生成に主変換部 320の一部と副 変換部 3 30の一部を使用するのは、 デ一夕変換装置全体の小型化を図 るためである。
この鍵生成動作の詳細は後述するが、 このように主変換部 320の一 部と副変換部 330の一部を使って鍵を生成するために、 図 56に示す ように鍵 KLレジス夕 240から出力した中間鍵 (鍵 KL) をセレクタ 3 1 0に入力させるパスが必要となる。 従って、 鍵 KLレジスタ 240 からセレクタ 3 10へのパスが増えることにより、 データ変換装置の小 型化が阻害されていた。
また、 鍵 KLレジスタ 240からセレクタ 3 1 0へのパスを用いたセ レク夕 3 10への入力信号数が増え、 セレクタ 3 1 0を構成するセレク タ数を増加させる要因となっていた。 このため、 その点においてもデー 夕変換装置の小型化を阻害していた。
また、 上述したように複数サイクルで F関数による 1回のデータ変換 を行う場合には、 一定期間保持した中間データを主変換部 3 2 0に入力 する必要がある。 従って、 中間データを演算レジスタ 3 5 0からセレク タ 3 1 0へ送るパスが増えることによりデータ変換装置の小型化が阻害 されていた。
また、 演算レジスタ 3 5 0からセレクタ 3 1 0へのパスを用いたセレ クタ 3 1 0への入力信号数が増えるため、 セレクタ 3 1 0を構成するセ レクタ数を増加させる要因となっていた。 従って、 その点においてもデ 一夕変換装置の小型化を阻害していた。 課題 2 .
図 5 6と図 6 0に示すデータ変換装置のデータ攪拌部 3 0では、 主変 換部 3 2 0と副変換部 3 3 0とがシリアルに接続されていた。 従って、 主変換部 3 2 0から副変換部 3 3 0を経た後にセレクタ 3 1 0を経て演 算レジス夕 3 5 0を通り主変換部 3 2 0へ戻るパスによって、 動作周波 数が一義的に決定され、 動作周波数の向上を阻害していた。 そのため、 データ攪拌部 3 0中でのデータ処理のための最大パスを短くすることに より動作周波数を上げ、 処理スピードを飛躍的に向上させることが望ま れていた。
また、 主変換部 3 2 0を通過せずにセレクタ 3 1 0及び演算レジス夕 3 5 0から出力したデータを副変換部 3 3 0に入力させるパスが存在し ないため、 データ変換装置の内部構成変更に柔軟に対応できず、 全体が 行える動作に柔軟さが欠如する結果となっていた。
また、 上述したように複数サイクルで F関数による 1回のデータ変換 を行う場合には、 1サイクルで変換対象となるデータは、 入力データの 一部である (1 / 2 F関数では、 入力データの 1ノ 2 ) 。 このため、 入 力データの一部の変換データを演算レジスタ 3 5 0に保持し、 一定期間 後に副変換部 3 3 0に送るためのパスをデータ攪拌部 3 0中に設けるか 、 または、 一定期間後に主変換部 3 2 0を転送して副変換部 3 3 0に送 るための転送パスを主変換部 3 2 0中に設ける必要があった。
さらに、 図 5 9に示すデータ正変換部 5 0とデータ逆変換部 7 0との 共用回路を用いた場合には、 A→B→C→D→E→B→C · · ·のパス がループ回路に相当する。 このため、 実際の回路にするときに、 切換信 号の伝搬遅延の差による信号のレーシング、 ノイズなどの影響により、 発信回路にならないような工夫が必要となる。 た、 このような上記ル —プ回路 (F E E D B A C K— L O O P回路) を持った回路には、 論理 合成ツールが対応できず、 効率よく論理合成が行われない、 という問題 が生じていた。
本発明は、 データ変換装置の小型化を目的とする。
また、 本発明は、 データ変換装置の動作周波数の向上を目的とする。 発明の開示
この発明に係るデータ変換装置は、 鍵とデータとを入力し、 入力した 鍵を使用して入力したデータの暗号化とデータの復号の少なくともいず れかのデ一夕変換を行うデータ変換装置であって、
上記データ変換装置は、 データを変換するデータ攪拌部と入力した鍵 と入力したデータとのいずれかを転送することを指示している転送信号 を制御する制御部を備え、
上記制御部は、 鍵とデータとのいずれかを転送する場合に、 転送信号 を出力し、
上記データ攪拌部は、 入力した鍵を使用してデ一夕を変換することに より少なくともデータの暗号化とデータの復号のいずれかのデータ変換 を行うとともに、 上記制御部によって出力された転送信号を入力した場 合には入力した鍵と入力したデータの少なくともいずれかをデータ変換 せずに転送する副変換部を備えることを特徴とする。 上記データ攪拌部は、 さらに、
データを入力し、 入力したデータを非線形にデータ変換する主変換部 を備え、
上記制御部は、 データを転送する場合には転送信号としてデータ転送 信号を出力し、
上記副変換部は、 上記制御部によって出力されたデータ転送信号と上 記主変換部によってデ一夕変換されたデータとを入力し、 入力したデ一 夕転送信号に従つて入力したデータを転送することを特徴とする。 上記データ変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記制御部は、 鍵を転送する場合には転送信号として鍵転送信号を出 力し、
上記副変換部は、 上記制御部によって出力された鍵転送信号と上記鍵 生成部によって生成された鍵とを入力し、 入力した鍵転送信号に従って 入力した鍵を転送することを特徴とする。 上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成する中間鍵生成部 を備え、
上記副変換部は、 上記制御部によって出力された鍵転送信号を入力し た場合には、 入力した鍵転送信号に従って上記中間鍵生成部が生成した 中間鍵を上記主変換部に転送し、 上記主変換部は、 上記副変換部によって転送された中間鍵を変換して 出力することを 1以上繰り返し、
上記副変換部は、 上記主変換部によって出力された中間鍵を変換して 出力することを 1以上繰り返し、
上記主変換部と上記副変換部との少なくともいずれかは、 上記中間鍵 を変換して出力することを 1以上繰り返し、
上記主変換部は、 上記主変換部と上記副変換部との少なくともいずれ かによつて出力された中間鍵を出力鍵として出力し、
上記中間鍵生成部は、 上記主変換部によって出力された出力鍵を入力 することにより、 中間鍵と出力鍵とからなる拡大鍵を生成することを特 徵とする。 上記中間鍵生成部は、 入力された 6つの鍵から 1つの鍵を選択する 6 一 1 K Lセレクタと 6— 1 K Lセレクタから選択された 1つの鍵を中間 鍵として保持する鍵 K Lレジス夕とを有し、
上記 6— 1 K Lセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 K Lレジス夕によって保持された中間鍵と、 上記鍵 K Lレジス夕 によって保持された中間鍵から 4つの異なるシフト数で各々巡回ビット シフトさせた 4つの鍵からなる 6つの鍵を入力し、 入力した 6つの鍵か ら 1つの鍵を選択し、
上記鍵 K Lレジスタは、 上記 6— 1 K Lセレクタによって選択された 鍵を保持し、
上記副変換部は、 上記制御部から出力された鍵転送信号を入力した場 合には上記鍵 K Lレジス夕に保持された鍵を中間鍵として入力し、 入力 した中間鍵を転送することを特徴とする。 上記中間鍵生成部は、 入力された 4つの鍵から 1つの鍵を選択する 4 一 1セレクタと入力された 3つの鍵から 1つの鍵を選択する 3— 1 K L セレクタと 3— 1 K Lセレクタから選択された 1つの鍵を中間鍵として 保持する鍵 K Lレジスタとを有し、
上記 4一 1セレクタは、 上記鍵 K Lレジス夕によって保持された中間 鍵から 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を 入力し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 K Lセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 4一 1セレクタによって選択された 1つの鍵と上記鍵 K Lレジスタに保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 K Lレジス夕は、 上記 3— 1 K Lセレクタによって選択された 鍵を保持し、
上記副変換部は、 上記制御部から出力された鍵転送信号を入力した場 合には、 上記鍵 K Lレジスタに保持された鍵を中間鍵として入力し、 入 力した中間鍵を転送することを特徴とする。 上記鍵生成部は、 さらに、
上記中間鍵生成部によって生成された拡大鍵と所定の定数とを入力し 、 所定の条件に従って入力した拡大鍵と所定の定数とのいずれかを上記 主変換部と上記副変換部の少なくともいずれかへ出力する鍵をスケジュ —ルする鍵スケジュール部を備えることを特徴とする。 上記副変換部は、 データの線形によるデータ変換を行うデータ正変換 部 (F L ) と上記データ正変換部 (F L ) と逆のデータ変換を行うデー 夕逆変換部 (F L—1) との少なくともいずれかを有し、 上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 デ一夕変換を行うとともに、 上記制御部が転送信 号を出力した場合には、 上記制御部が出力した転送信号を入力し、 入力 した転送信号にしたがってデータと鍵との少なくともいずれかをデータ 変換せずに転送することを特徴とする。 上記制御部は、 入力された鍵を転送する転送信号として鍵転送信号で ある鍵トランスファ信号とマスク信号とを出力し、
上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 上記制御部によって出力された鍵トランスファ信 号とマスク信号とを入力した場合には、 入力した鍵トランスファ信号に よって入力されたデータを無効とするとともに、 入力されたマスク信号 によって入力された鍵を通過させることで鍵を転送することを特徴とす る。 上記制御部は、 入力されたデータを転送する転送信号としてデータ転 送信号であるデータトランスファ信号を出力し、
上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 上記制御部によって出力されたデータトランスフ ァ信号を入力した場合には、 入力したデータトランスファ信号によって 入力された鍵を無効とするとともに、 入力されたデータを通過させるこ とでデータを転送することを特徴とする。 上記副変換部は、 データの線形によるデータ変換を行うデータ正変換 と上記データ正変換とは逆のデータ変換を行うデータ逆変換とを同一の 回路を共用して行う 1 2副変換部を有し、 1 Z 2副変換部によってデ —夕をデ一夕変換するとともに、 上記制御部が転送信号を出力した場合 には、 上記制御部が出力した転送信号を入力し、 入力した転送信号にし たがって鍵とデ一夕の少なくともいずれかを転送することを特徴とする
上記副変換部は、 データの線形によるデータ変換を行うデータ正変換 部 (F L ) と上記データ正変換部 (F L ) と逆のデータ変換を行うデー 夕逆変換部 (F L—1) とを有し、 上記データ正変換部 (F L ) と上記デ 一夕逆変換部 (F L—り とを直列に配置し、
上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り とのい ずれか一方は、 上記データ正変換部 (F L ) と上記デ一夕逆変換部 (F L "1) とのいずれか他方によってデータ変換されたデータか、 転送され た鍵か、 転送されたデータか、 のいずれかを入力し、 入力したデータ変 換されたデ一夕か、 転送された鍵か、 転送されたデータか、 のいずれか を使用してデータ変換か鍵の転送かデータの転送のいずれかを行うこと を特徴とする。 上記データ変換装置は、 1 2 8ビットか 1 9 2ビットか 2 5 6ビット のいずれかの鍵を入力し、 入力した鍵を使用して入力したデータをデ一 タ変換することを特徴とする。 この発明に係るデータ変換方法は、 鍵とデータとを入力し、 入力した 鍵を使用して少なくとも入力したデ一夕の暗号化とデータの復号のいず れかのデータ変換を行うデータ変換方法であって、
上記デー夕変換方法は、 鍵とデ一夕とのいずれかを転送する場合に、 入力した鍵と入力したデータとのいずれかを転送することを指示してい る転送信号を出力し、
入力した鍵を使用してデータを変換することにより少なくともデータ の暗号化とデータの復号のいずれかのデータ変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデータの 少なくともいずれかをデータ変換せずに転送することを特徴とする。 この発明に係るデータ変換プログラムは、 鍵とデータとを入力し、 入 力した鍵を使用して入力したデータの暗号化とデータの復号の少なくと もいずれかのデー夕変換を行うデー夕変換プログラムであって、 上記データ変換プログラムは、 鍵とデータとのいずれかを転送する場 合に、 入力した鍵と入力したデータとのいずれかを転送することを指示 している転送信号を出力する処理と、
入力した鍵を使用してデータを変換することにより少なくともデータ の暗号化とデータの復号のいずれかのデ一夕変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデ一夕の 少なくともいずれかをデータ変換せずに転送する処理とをコンピュータ に実行させることを特徴とする。 この発明に係るデータ変換プログラムを記録したコンピュータ読み取 り可能な記録媒体は、 鍵とデータとを入力し、 入力した鍵を使用して入 力したデ一夕の暗号化とデータの復号の少なくともいずれかのデ一タ変 換を行うデータ変換プログラムを記録したコンピュータ読み取り可能な 記録媒体であって、
上記デ一夕変換プログラムを記録したコンピュータ読み取り可能な記 録媒体は、 鍵とデータとのいずれかを転送する場合に、 入力した鍵と入 力したデータとのいずれかを転送することを指示している転送信号を出 9
18 力する処理と、
入力した鍵を使用してデータを変換することにより少なくともデ一タ の暗号化とデータの復号のいずれかのデ一夕変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデータの 少なくともいずれかをデ一タ変換せずに転送する処理をコンピュータに 実行させるためのデータ変換プログラムを記録したコンピュータ読み取 り可能な記録媒体であることを特徴とする。 上記データ変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成し、 生成した中間 鍵から上記主変換部と上記副変換部とを用いて出力鍵を生成する中間鍵 生成部を備えることを特徴とする。 上記中間鍵生成部は、 6つの鍵を入力し、 入力した 6つの鍵から 1つ の鍵を選択する 6— 1 K Lセレクタと、 前記 6— 1 K Lセレクタから選 択された 1つの鍵を中間鍵として保持する鍵 K Lレジス夕と、 6つの鍵 から 1つの鍵を選択する 6— 1 K Aセレクタと、 6— 1 K Aセレクタか ら選択された 1つの鍵を出力鍵として保持する鍵 K Aレジス夕と、 を有 し、
上記 6— 1 K Lセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 K Lレジス夕に保持された中間鍵と、 上記鍵 K Lレジス夕に保持 された中間鍵とから 4つの異なるシフト数で各々巡回ビットシフトさせ た 4つの鍵とからなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの 鍵を選択し、 PC漏藤 89
19 上記鍵 KLレジス夕は、 上記 6— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 6— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記鍵 KAレジスタに 保持された出力鍵と、 上記鍵 KAレジスタに保持された出力鍵から 4つ の異なるシフト数で各々巡回ビットシフトさせた 4つの鍵と、 からなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの鍵を選択し、
上記鍵 KAレジス夕は、 上記 6— 1 KAセレクタによって選択された 鍵を出力鍵として保持することを特徴とする。 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1セレク 夕と、 4つの鍵から 1つの鍵を選択する 4一 1セレクタと、 3つの鍵か ら 1つの鍵を選択する 3— 1 KLセレクタと、 3— 1 KLセレクタから 選択された鍵を中間鍵として保持する鍵 KLレジス夕と、 3つの鍵から 1つの鍵を選択する 3— I K Aセレクタと、 3— I K Aセレクタから選 択された鍵を出力鍵として保持する鍵 K Aレジス夕とを有し、
上記 2— 1セレクタは、 上記鍵 K Lレジスタに保持された中間鍵と、 上記鍵 KAレジスタに保持された出力鍵とから 1つの鍵を選択し、 上記 4一 1セレクタは、 上記 2— 1セレクタによって選択された鍵か ら 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を入力 し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記 4_ 1セレクタによって選択された鍵と、 上記鍵 KLレジス夕に保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 KLレジスタは、 上記 3— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 3— 1 K Aセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記 4一 1セレクタに よって選択された鍵と、 上記鍵 K Aレジス夕に保持された出力鍵とから なる 3つの鍵を入力し、 入力した 3つの鍵から 1つの鍵を選択し、 上記鍵 K Aレジスタは、 上記 3— 1 K Aセレクタによって選択された 鍵を出力鍵として保持することを特徴とする。 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1 K Lセ レクタと、 2— 1 K Lセレクタから選択された鍵を保持する鍵 K Lレジ ス夕と、 2つの鍵から 1つの鍵を選択する 2 — 1 K Aセレクタと、 2— 1 K Aセレクタから選択された鍵を保持する鍵 K Aレジス夕と、 2つの 鍵から 1つの鍵を選択する 2— 1セレクタと、 8つの鍵から 1つの鍵を 選択する 8 — 1セレクタとを有し、
上記 2— 1 K Lセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 鍵 K Lレジスタに保持された鍵とから 1つの鍵を選択し、
上記 2 — 1 K Aセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と上記鍵 K Aレジスタに保 持された鍵とから 1つの鍵を選択し、
上記 2— 1セレクタは、 上記 2— 1 K Lセレクタと上記 2— 1 K Aセ レクタとによって選択された 2つの鍵から 1つの鍵を選択し、
上記 8— 1セレクタは、 上記 2— 1セレクタによって選択された鍵か ら 8つの異なるシフト数で各々巡回ビットシフトさせた 8つの鍵を入力 し、 入力した 8つ鍵から 1つ鍵を選択することを特徴とする。 この発明に係るデータ変換装置は、 データをデ一夕変換するデータ攪 拌部を備えるデータ変換装置であって、
上記データ攪拌部は、 データを入力し、 入力したデータを非線形にデ 一夕変換する主変換部と入力したデータを線形にデータ変換する副変換 部とを並列に備え、
上記主変換部は、 鍵とデ一夕とを入力し、 入力した鍵を使用して非線 形にデータ変換を行うための関数である F関数に基づいて入力したデー タを非線形にデータ変換し、 非線形変換したデータを出力し、
上記副変換部は、 鍵とデ一夕とを入力し、 入力した鍵を使用して入力 したデータを線形変換し、 線形変換したデ一夕を出力し、
上記主変換部と上記副変換部とは、 上記主変換部によるデー夕変換と 上記副変換部によるデータ変換とを繰り返し行うことにより少なくとも デ一夕の暗号化とデータの復号のいずれかのデータ変換を行うことを特 徵とする。 上記主変換部は、 入力した鍵を使用して入力したデータを F関数に基 づいて非線形にデータ変換し、 データ変換したデータを出力することを 複数回繰り返す F関数部を備えることを特徴とする。 上記 F関数部は、 入力した鍵を使用して入力したデータを 1 2 XF 関数 (X≥0 ) に基づいて非線形にデータ変換し、 データ変換したデー タを出力することを 2 X回繰り返すことにより F関数に基づいた非線形 データ変換を 1回分完了し、 完了したデータを出力することを複数回繰 り返すことにより F関数に基づいた非罈形データ変換を複数回行うこと を特徴とする。 上記 F関数部は、 上位データと下位データとに分割されたデータのい ずれか一方を入力し、 入力したデータを非線形にデータ変換し、 データ 変換した上位データと下位データのいずれか一方を出力し、 出力した上 位データと下位データのいずれか一方と上位データと下位デ一夕のいず れか他方とを排他的論理和演算し、 排他的論理和演算したデータと、 上 記 F関数部に入力されなかった上位データと下位データとのいずれか他 方とを入れ替えて出力することを特徴とする。 上記データ変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成し、 生成した中間 鍵から上記主変換部と上記副変換部とを用いて出力鍵を生成する中間鍵 生成部を備えることを特徴とする。 上記鍵生成部は、 さらに、
上記中間鍵生成部によって生成された中間鍵と出力鍵と所定の定数と を入力し、 入力した中間鍵と出力鍵と所定の定数とから所定の条件に従 つて上記主変換部と上記副変換部とが行ぅデ一夕変換に用いる鍵をスケ ジュールする鍵スケジュール部を備え、
上記副変換部と上記主変換部とは、 上記鍵スケジュール部によってス ケジュールされた鍵を各々入力し、 各々入力した鍵に基づいて各々に入 力されたデータのデータ変換を行うことを特徴とする。 上記中間鍵生成部は、 6つの鍵を入力し、 入力した 6つの鍵から 1つ の鍵を選択する 6— 1 K Lセレクタと、 前記 6— 1 K Lセレクタから選 択された 1つの鍵を中間鍵として保持する鍵 K Lレジス夕と、 6つの鍵 JP03/02689
23 から 1つの鍵を選択する 6— 1 K Aセレクタと、 6— 1 K Aセレクタか ら選択された 1つの鍵を出力鍵として保持する鍵 KAレジスタと、 を有 し、
上記 6 _ 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 KLレジス夕に保持された中間鍵と、 上記鍵 KLレジスタに保持 された中間鍵とから 4つの異なるシフト数で各々巡回ビットシフトさせ た 4つの鍵とからなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの 鍵を選択し、
上記鍵 KLレジスタは、 上記 6— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 6— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記鍵 KAレジス夕に 保持された出力鍵と、 上記鍵 KAレジス夕に保持された出力鍵から 4つ の異なるシフト数で各々巡回ビットシフトさせた 4つの鍵と、 からなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの鍵を選択し、
上記鍵 KAレジスタは、 上記 6— 1 KAセレクタによって選択された 鍵を出力鍵として保持することを特徴とする。 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1セレク 夕と、 4つの鍵から 1つの鍵を選択する 4一 1セレクタと、 3つの鍵か ら 1つの鍵を選択する 3— 1 KLセレクタと、 3— 1 KLセレクタから 選択された鍵を中間鍵として保持する鍵 KLレジスタと、 3つの鍵から 1つの鍵を選択する 3— I K Aセレクタと、 3— 1 K Aセレクタから選 択された鍵を出力鍵として保持する鍵 K Aレジス夕とを有し、
上記 2— 1セレクタは、 上記鍵 KLレジスタに保持された中間鍵と、 上記鍵 KAレジス夕に保持された出力鍵とから 1つの鍵を選択し、 上記 4一 1セレクタは、 上記 2— 1セレクタによって選択された鍵か らから 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を 入力し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記 4_ 1セレクタによって選択された鍵と、 上記鍵 KLレジスタに保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 KLレジス夕は、 上記 3— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 3— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記 4一 1セレクタに よって選択された鍵と、 上記鍵 K Aレジス夕に保持された出力鍵とから なる 3つの鍵を入力し、 入力した 3つの鍵から 1つの鍵を選択し、 上記鍵 KAレジスタは、 上記 3— 1 KAセレクタによって選択された 鍵を出力鍵として保持することを特徴とする。 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2一 1 KLセ レク夕と、 2— 1 KLセレクタから選択された鍵を保持する鍵 KLレジ ス夕と、 2つの鍵から 1つの鍵を選択する 2— 1 KAセレクタと、 2— 1 KAセレクタから選択された鍵を保持する鍵 KAレジス夕と、 2つの 鍵から 1つの鍵を選択する 2一 1セレクタと、 8つの鍵から 1つの鍵を 選択する 8— 1セレクタとを有し、
上記 2— 1 KLセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 鍵 KLレジス夕に保持された鍵とから 1つの鍵を選択し、
上記 2 _ 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と上記鍵 K Aレジスタに保 89
25 持された鍵とから 1つの鍵を選択し、
上記 2 _ 1セレクタは、 上記 2— 1 K Lセレクタと上記 2 — 1 K Aセ レク夕とによって選択された 2つの鍵から 1つの鍵を選択し、
上記 8— 1セレクタは、 上記 2— 1セレクタによって選択された鍵か らから 8つの異なるシフト数で各々巡回ビットシフトさせた 8つの鍵を 入力し、 入力した 8つ鍵から 1つ鍵を選択することを特徴とする。 上記副変換部は、 データを線形変換するデータ正変換部 (F L ) と上 記データ正変換部 (F L ) の変換とは逆の変換をするデータ逆変換部 ( F L — 1 ) との少なくともいずれかを有し、 上記データ正変換部 (F L ) と上記データ逆変換部 (F L—1) との少なくともいずれかによつてデ 一夕をデータ変換することを特徴とする。 上記副変換部は、 データを線形変換するデータ正変換と上記デー夕正 変換とは逆の変換をするデータ逆変換とを同一の回路を共用して行う 1 / 2副変換部を有し、 1 / 2副変換部によってデータをデータ変換する ことを特徴とする。 上記データ変換装置は、 1 2 8ビットか 1 9 2ビットか 2 5 6ビット のいずれかの鍵を入力し、 入力した鍵を使用して入力したデータの暗号 化とデ一夕の復号のいずれかのデータ変換することを特徴とする。 この発明に係るデータ変換方法は、 データを線形変換にデータ変換す る副変換部に並列に配置され、 鍵とデータとを入力し、 入力した鍵を使 用して非線形にデータ変換を行うための関数である F関数に基づき、 非 線形デ一夕変換する主変換部によって、 入力したデータを非線形にデー 03 02689
26 夕変換し、 非線形変換したデータを出力することと、
鍵とデータとを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によって線形変換し、 線形変 換したデータを出力することを、 繰り返し行うことにより少なくともデ 一夕の暗号化とデータの復号のいずれかのデータ変換を行うことを特徴 とする。 この発明に係るデータ変換プログラムは、 データを線形変換にデータ 変換する副変換部に並列に配置され、 鍵とデータとを入力し、 入力した 鍵を使用して非線形にデータ変換を行うための関数である F関数に基づ き、 非線形変換にデータ変換する主変換部によって、 入力したデータを 非線形にデータ変換し、 非線形変換したデータを出力する処理と、 鍵とデータとを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によって線形変換し、 線形変 換したデータを出力する処理とを、 繰り返し行うことにより少なくとも データの暗号化とデータの復号のいずれかのデ一夕変換を行う処理をコ ンピュー夕に実行させることを特徴とする。 この発明に係るデータ変換プログラムを記録したコンピュータ読み取 り可能な記録媒体は、 データを線形変換にデータ変換する副変換部に並 列に配置され、 鍵とデ一夕とを入力し、 入力した鍵を使用して非線形に データ変換を行うための関数である F関数に基づき、 非線形にデ一夕変 換する主変換部によって、 入力したデータを非線形にデ一夕変換し、 非 線形変換したデータを出力する処理と、
鍵とデ一夕とを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によって線形変換し、 線形変 換したデータを出力する処理とを、 繰り返し行うことにより少なくとも データの暗号化とデー夕の復号のいずれかのデータ変換を行う処理をコ ンピュ一夕に実行させるためのデータ変換プログラムを記録したコンビ ユー夕読み取り可能な記録媒体であることを特徴とする。 図面の簡単な説明
図 1は、 実施の形態 1のデ一タ変換装置の構成図である。
図 2は、 1 2 8ビット鍵の場合、 中間鍵生成部 4 0が中間鍵から出力 鍵を生成する動作を示す図である。
図 3は、 鍵スケジュール部 2 1 0の内部構成とその動作を示す図であ る。
図 4は、 データ攪拌部 3 0のデータ暗号化 Z復号処理の動作を示す図 である。
図 5は、 F関数部 3 2 1の内部構成及び動作を示す図である。
図 6は、 図 1の主変換部 3 2 0と副変換部 3 3 0を逆に配置したデー 夕変換装置の構成図である。
図 7は、 主変換部 3 2 0と副変換部 3 3 0が並列に配置されたデータ 変換装置の構成図である。
図 8は、 中間鍵生成部 4 0の 6— 1 K Lセレクタ 2 2 0及び 6— 1 K Aセレクタ 2 3 0の内部構成を示す図である。
図 9は、 中間鍵生成部 4 0の他の構成例を示す図である。
図 1 0は、 データ正変換部 5 0が鍵転送機能を有する場合の副変換部 3 3 0の内部構成図である。
図 1 1は、 デ一夕逆変換部 7 0が鍵転送機能を有する場合の副変換部 3 3 0の内部構成図である。
図 1 2は、 データ正変換部 5 0とデ一夕逆変換部 7 0とが鍵転送機能 を有する場合の副変換部 3 3 0の内部構成図である。
図 1 3は、 実施の形態 2におけるデータ正変換部 5 0がデータ転送機 能を有する場合の副変換部 3 3 0の内部構成図である。
図 1 4は、 データ逆変換部 7 0がデータ転送機能を有する場合の副変 換部 3 3 0の内部構成図である。
図 1 5は、 データ正変換部 5 0とデータ逆変換部 7 0がデ一夕転送機 能を有する場合の副変換部 3 3 0の内部構成図である。
図 1 6は、 実施の形態 3におけるデータ正変換部 5 0が鍵転送機能と データ転送機能、 データ逆変換部 7 0が鍵転送機能を有する場合の副変 換部 3 3 0の内部構成図である。
図 1 7は、 データ逆変換部 7 0が鍵転送機能とデータ転送機能、 デー 夕正変換部 5 0が鍵転送機能を有する場合の副変換部 3 3 0の内部構成 図である。
図 1 8は、 データ正変換部 5 0とデータ逆変換部 7 0が鍵転送機能と デ一夕転送機能を有する場合の副変換部 3 3 0の内部構成図である。 図 1 9は、 データ正変換部 5 0が鍵転送機能とデータ転送機能を有す る場合の副変換部 3 3 0の内部構成図である。
図 2 0は、 データ逆変換部 7 0が鍵転送機能とデ一夕転送機能を有す る場合の副変換部 3 3 0の内部構成図である。
図 2 1は、 データ正変換部 5 0が鍵転送機能とデータ転送機能、 デー 夕逆変換部 7 0がデータ転送機能を有する場合の副変換部 3 3 0の構成 図である。
図 2 2は、 デ一夕逆変換部 7 0が鍵転送機能とデータ転送機能、 デー 夕正変換部 5 0がデータ転送機能を有する場合の副変換部 3 3 0の構成 図である。
図 2 3は、 データ正変換部 5 0がデータ転送機能、 データ逆変換部 7 0が鍵転送機能を有する場合の副変換部 3 3 0の構成図である。
図 2 4は、 データ正変換部 5 0が鍵転送機能、 データ逆変換部 7 0デ 一夕転送機能を有する場合の副変換部 3 3 0の構成図である。
図 2 5は、 データ逆変換部 7 0とデ一夕正変換部 5 0とをシリアルに 接続し、 データ正変換部 5 0とデータ逆変換部 7 0とが各々データ転送 機能を有する場合の副変換部 3 3 0の構成図である。
図 2 6は、 図 2 5のデ一夕正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成図である。
図 2 7は、 デ一夕正変換部 5 0とデータ逆変換部 7 0とをシリアルに 接続し、 データ正変換部 5 0が鍵転送機能及びデータ転送機能を有し、 データ逆変換部 7 0がデータ転送機能を有する場合の副変換部 3 3 0の 構成図である。
図 2 8は、 図 2 7のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成図である。
図 2 9は、 データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに 接続し、 データ正変換部 5 0がデータ転送機能を有し、 データ逆変換部 7 0が鍵転送機能及びデータ転送機能を有する場合の副変換部 3 3 0の 構成図である。
図 3 0は、 図 2 9のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成図である。
図 3 1は、 実施の形態 4における 1 / 2副変換部 9 0に鍵転送機能及 びデータ転送機能を付加した場合の副変換部 3 3 0の構成図である。 図 3 2は、 1 2副変換部 9 0にデータ転送機能を付加した場合の副 変換部 3 3 0の構成図である。
図 3 3は、 1 Z 2副変換部 9 0に鍵転送機能を付加した場合の副変換 部 3 3 0の構成図である。 図 34は、 128ビット鍵を用いた CAMEL L I Aのデータ変換装 置におけるデータ暗号化処理を示す図である。
図 35は、 12 8ビット鍵を用いた CAMEL L I Aのデータ変換装 置におけるデータ復号処理を示す図である。
図 36は、 CAMEL L I Aのデータ変換装置における F関数の内部 構成図である。
図 37は、 実施の形態 5の全体構成及び動作を示した図である。 図 38は、 実施の形態 6の全体構成及び動作を示した図である。 図 39は、 実施の形態 1 1の全体構成及び動作を示した図である。 図 40は、 実施の形態 1 2の全体構成及び動作を示した図である。 図 41は、 実施の形態 1 3の全体構成及び動作を示した図である。 図 42は、 実施の形態 14の全体構成及び動作を示した図である。 図 43は、 実施の形態 1 5の全体構成及び動作を示した図である。 図 44は、 実施の形態 1 6の全体構成及び動作を示した図である。 図 45は、 実施の形態 1 7の全体構成及び動作を示した図である。 図 46は、 実施の形態 1 8の全体構成及び動作を示した図である。 図 47は、 実施の形態 7の全体構成及び動作を示した図である。 図 48は、 実施の形態 8の全体構成及び動作を示した図である。 図 49は、 実施の形態 9の全体構成及び動作を示した図である。 図 50は、 実施の形態 1 0の全体構成及び動作を示した図である。 図 5 1は、 実施の形態 1 9の全体構成及び動作を示した図である。 図 52は、 実施の形態 20の全体構成及び動作を示した図である。 図 53は、 1 92、 256ビット鍵の場合、 中間鍵生成部 40が中間 鍵から出力鍵を生成する動作を示す図である。
図 54は、 1 92、 256ビット鍵を用いた CAME L L I Aのデ一 夕変換装置におけるデータ暗号化処理を示す図である。 図 5 5は、 1 9 2、 2 5 6ビット鍵を用いた C AM E L L I Aのデ一 夕変換装置におけるデータ復号処理を示す図である。
図 5 6は、 関連するデータ変換装置の構成及び動作図の一例である。 図 5 7は、 主変換部 3 2 0の内部構成の一例である。
図 5 8は、 副変換部 3 3 0を構成する回路を示す図である。
図 5 9は、 副変換部 3 3 0を構成するデータ正変換部 5 0とデータ逆 変換部 7 0とを共用した回路を示す図である。
図 6 0は、 関連するデータ変換装置の構成及び動作図の他の一例であ る。
図 6 1は、 主変換部 3 2 0の内部構成の他の一例である。
図 6 2は、 データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに 接続し、 データ正変換部 5 0とデータ逆変換部 7 0が鍵転送機能及びデ 一夕転送機能を有する場合の副変換部 3 3 0の構成図である。
図 6 3は、 図 6 2のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成図である。
図 6 4は、 C A M E L L I Aの主変換部 3 2 0の内部構成の一例であ る。 発明を実施するための最良の形態
実施の形態 1 .
本実施の形態に記載するデータ変換装置ついて説明する。 データ変換装置.
図 1は、 本実施の形態のデータ変換装置の構成及び動作図である。 本実施の形態では、 図 5 6及び図 6 0で示した 「鍵 K Lレジスタ 2 4
0から出力した中間鍵 (鍵 K L ) をセレクタ 3 1 0に入力させるパス」 「主変換部 3 2 0から出力したデータをセレクタ 3 1 0に入力させるパ ス」 が存在しない。 本実施の形態の副変換部 3 3 0には、 本来有するデ —夕変換機能に加え、 鍵及びデータを転送する機能が追加されているた めである。
以下、 副変換部 3 3 0が有する鍵及びデ一タを転送する機能を用いた 鍵生成及びデータの暗号化ノ復号について説明する。 他の構成及び動作 は、 図 5 6及び図 6 0を用いて説明したものと同様であるので、 説明を 省略する。
本実施の形態では、 鍵 K Lレジスタ 2 4 0から出力された中間鍵 (鍵 K L ) は、 直接セレクタ 3 1 0に入力されず、 鍵 K Lレジスタ 2 4 0か ら鍵スケジュール部 2 1 0への従来のパスを利用して、 鍵スケジュール 部 2 1 0を経由して副変換部 3 3 0に入力される。 副変換部 3 3 0は、
「データを変換するモード」 と 「鍵またはデータを転送するモード」 を 持っているので、 鍵を入力すると 「鍵またはデータを転送するモード」 にモードを切り換え、 入力された鍵をセレクタ 3 1 0に転送する。 また、 本実施の形態では、 主変換部 3 2 0によって非線形変換された デ一夕は、 直接セレクタ 3 1 0に入力されず、 副変換部 3 3 0に入力さ れる。 副変換部 3 3 0は、 主変換部 3 2 0によって非線形変換されたデ 一夕を入力すると 「鍵またはデータを転送するモード」 にモードを切り 換え、 入力されたデータをセレクタ 3 1 0に転送する。
このような転送動作を副変換部 3 3 0にさせることにより、 図 5 6及 び図 6 0に示した上記 2つのパスを不要とすることができる。
なお、 前述したように、 主変換部 3 2 0が複数サイクルで F関数によ る 1回のデータ変換を行う場合には、 一定期間保持した中間データを主 変換部 3 2 0に入力する必要があるため、 図 1では点線で示す 「中間デ —夕を演算レジス夕 3 5 0からセレクタ 3 1 0へ送るパス」 が存在する が、 主変換部 320が 1サイクルで F関数による 1回のデータ変換を行 う場合には、 点線で示した 「演算レジスタ 350からセレクタ 31 0へ のパス」 は必要ない。 後述する図 6の点線で示したパスについても同様 である。 鍵生成方法.
次に、 中間鍵生成部 40によって行われる中間鍵及び出力鍵の生成方 法について説明する。
図 2に、 中間鍵生成部 40が中間鍵から出力鍵を生成する動作を示す まず、 中間鍵生成部 40に秘密鍵が入力され、 6— 1 KLセレクタ 2 20を経て鍵 KLレジス夕 240に中間鍵 (鍵 KL) として保持される 。 鍵 KLレジスタ 240に保持された秘密鍵は中間鍵 (鍵 KL) として 、 鍵スケジュール部 210を経由して主変換部 320に入力される。 主 変換部 320の 1段目の F関数部 321 aでは、 入力された中間鍵 (鍵 KL) の上位ビットが、 鍵スケジュール部 2 10から出力された定数∑ 1を用いて非線形変換され、 EXOR回路 322 aによって中間鍵 (鍵 KL) の下位ビットとの排他的論理和がとられ、 F関数部 32 l bに入 力される。 F関数部 32 1 bでも同様に、 EXOR回路 322 aから出 力された鍵が、 鍵スケジュール部 2 10から出力された定数∑ 2を用い て非線形変換され、 EXOR回路 322 bによって中間鍵 (鍵 KL) の 下位ビットとの排他的論理和がとられる。 その結果、 出力された鍵を鍵 の上位ビットとし、 EXOR回路 322 aから出力された鍵を鍵の下位 ビットとして副変換部 330へ出力する。
副変換部 330は、 これらのデータを入力し、 副変換部 330のデー 夕正変換部 50に含まれる 2つの排他的論理和演算器 (EXOR) と副 変換部 330のデータ逆変換部 70に含まれる 2つの排他的論理和演算 器 (EXOR) を用いて鍵の上位ビットと鍵の下位ビットとを各々排他 的論理和演算をとり、 その結果、 出力されたデータを再び主変換部 32 0に入力する。
主変換部 320は、 前述した主変換部 320の一部を使用した処理と 同様に、 主変換部 320の有する F関数部 321 aと EXOR回路 32 2 a、 F関数部 321 bを EXOR回路 322 bとを含んだ 2段の変換 処理を行い、 変換された鍵の上位ビットと下位ビットを入れ替えて出力 する。
出力されたデータは、 中間鍵生成部 40の 6— 1 KAセレクタ 230 に入力され、 鍵 KAレジスタ 250に出力鍵 (鍵 KA) として保持され る。 このようにして、 中間鍵生成部 40は、 デ一夕の暗号化 Z復号処理 を行う構成部分である主変換部.320の一部と副変換部 330の一部を 用いて中間鍵 (鍵 KL) から出力鍵 (鍵 KA) を生成する。 生成された 中間鍵 (鍵 KL) の上位ビットからなる鍵 KLHと下位ビットからなる 鍵 KLLと、 出力鍵 (鍵 KA) の上位ピットからなる鍵 KAHと下位ビ ットからなる鍵 KALとの 4つの鍵は鍵スケジュール部 21 0に入力さ れ、 データの暗号化及び復号のための鍵 (拡大鍵という) として使用さ れる。 また、 このようにして生成されたと出力鍵 (鍵 KA) と中間鍵 ( 鍵 KL) とを用いて同様の処理により、 所定期間毎に新たな中間鍵及び 出力鍵が生成される。 鍵スケジュール.
鍵スケジュール部 21 0の内部構成とその動作について説明する。 図 3は、 鍵スケジュール部 21 0の内部構成及び動作を示した図であ る。 中間鍵生成部 40から出力された中間鍵 (鍵 KL) は、 上位ビットの 鍵 KLHと下位ビットの鍵 KLLに分割され、 4— 1セレクタ 2 1 6と 4一 1セレクタ 2 1 7に入力される。 中間鍵生成部 40から出力された 出力鍵 (鍵 KA) も同様に、 鍵 KAHと鍵 KALに分割され、 4一 1セ レク夕 2 1 6と 4一 1セレクタ 2 1 7に入力される。 4一 1セレクタ 2 1 6と 4一 1セレクタ 2 17は、 これら 4つの鍵から 1つの鍵を選択す る。 4一 1セレクタ 2 1 6と 4— 1セレクタ 2 1 7により選択された信 号と選択された信号を 1ビット右に巡回シフトさせた信号とを 2— 1セ レク夕 2 14と 2— 1セレクタ 2 1 5に入力する。 信号を 1ビット右に 巡回シフトさせるのは、 中間鍵生成部 40による出力鍵 (鍵 KA) 生成 時、 副変換部 330を使用することは前述したが、 この時、 副変換部 3 30に含まれる巡回シフト器によって信号が 1ビット左に巡回シフトさ れるので、 予め 1ビット左に巡回シフトされることを予想して、 結果に 巡回シフトの影響が及ばないように 1ビット右に巡回シフトさせたもの である。 従って、 鍵スケジュール部 2 10は必ず 1ビット右に巡回シフ トする処理を施すのではなく、 副変換部 330の巡回シフト器が信号を 巡回シフトする数と方向と考慮し、 その方向と逆の方向に副変換部 33 0の巡回シフト器が巡回シフ卜する数だけ予め入力鍵を巡回シフトさせ ておけばよい。 よって、 2— 1セレクタ 2 14と 2— 1セレクタ 2 1 5 は、 これらの 2つの信号から 1つの鍵に関する信号を選択するが、 出力 鍵 (鍵 KA) 生成時に副変換部 330へ鍵を出力する場合には、 必ず予 め定められたビットを巡回シフトさせた鍵を選択して、 副変換部 330 に出力する。
2— 1セレクタ 214と 2— 1セレクタ 2 1 5から出力された鍵は、 出力鍵 (鍵 KA) 生成時に副変換部 330を用いる場合に副変換部 33 0へ入力されるとともに、 出力鍵 (鍵 KA) 生成時に主変換部 320を 用いる場合とデータの暗号化 Z復号処理時に 2— 1セレクタ 2 1 2に入 力され、 また、 1バイト右又は左に巡回シフトさせた鍵を 2— 1セレク 夕 21 2に入力する。 1バイト右又は左に巡回シフトさせた鍵を 2— 1 セレクタ 2 1 2に入力するのは、 データの暗号化/復号処理時に F関数 部が 1 2や 1Z4や 1Z8等、 1未満の F関数を処理する部分から構 成されている場合に、 必要になるためであるが、 詳細は後述する。
2 12は、 これらの 2つの鍵から 1つの鍵を選択し、 選択した鍵を 2 一 1セレクタ 2 1 1に入力する。 8— 1セレクタ 2 1 3は、 定数である ∑ 1から∑ 4を上位データと下位データに分割したものを入力し、 これ ら 8つの入力信号から 1つの信号を選択し、 2— 1セレクタ 2 1 1へ入 力する。 2— 1セレクタ 2 1 1は、 入力された 2つの信号から 1つの信 号を選択し、 選択した信号を鍵として主変換部 320へ出力する。 データの暗号化処理/復号処理.
次に、 データ攪拌部 30によって行われるデータの暗号化 Z復号処理 について説明する。
図 4は、 データ攪拌部 30の暗号化 Z復号処理の動作を示す図である まず、 P (平文又は暗号文) が入力される。 ここでは、 P (平文又は 暗号文) を 128ビット長と仮定する。 入力データ Pは EXOR回路 3 l aに入力され、 鍵生成部 20に入力され、 中間鍵生成部 40と鍵スケ ジュール部 210とを経由して出力された秘密鍵 (1 28ビット長) と 排他的論理和がとられる。 なお、 秘密鍵は、 中間鍵生成部 40にまず入 力され、 6— 1 KLセレクタ 220によって選択され、 鍵 KLレジスタ 240に中間鍵 (鍵 KL) として保持された後に、 中間鍵 (鍵 KL) と して鍵スケジュール部 2 1 0に入力される。 共通鍵ブロック暗号処理を行う CAMELL I A (カメリア) では、 EXOR回路 3 l aと EXOR回路 3 l bとは、 副変換部 330の有す る排他的論理演算器を用いている。 即ち、 図 58に示すように、 入力デ —夕を上位ピットの上位デ一夕と下位ピットの下位データとに分割し、 分割された各々のデータと入力された鍵とをデータ正変換部 50の E X OR回路 55及び EXOR回路 56又はデータ逆変換部 70の EXOR 回路 7 5及び EXOR回路 76によって排他的論理和をとり、 出力する 出力されたデータは、 鍵スケジュール部 2 1 0から出力された拡大鍵 のいずれかを用いて主変換部 320と副変換部 330とによりデータ変 換される。 図 4では、 主変換部 320 a, 副変換部 330 a, 主変換部 320 b, 副変換部 330 b、 主変換部 320 cというように交互にデ —タ変換されている。
このようにして変換されたデータは、 副変換部 330の EXOR回路 3 1 bによって鍵スケジュール部 2 10から出力された鍵との排他的論 理和をとり、 C (暗号文又は復号文) として出力する。
CAMEL L I Aにおけるデータ攪拌部 30で行われる、 主変換部 3
20と副変換部 330によるデータ変換処理の動作の詳細について図 1 と図 4を用いて説明する。
EXOR回路 31 aから出力されたデータは上位データと下位データ に分割され、 各々主変換部 320 aに入力される。 主変換部 320 aで は、 入力された各々のデータを非線形変換し、 変換後の下位データを上 位データとして、 また、 変換後の上位データを下位データとして、 即ち 、 図 4に示すように上位データと下位データを入れ替えてから副変換部 330 aに入力する。
副変換部 3 30 aでは、 入力データを線形変換する。 変換したデータ は、 図 1に示すようにセレクタ 3 1 0に入力され、 演算レジスタ 3 5 0 に保持され、 主変換部 3 2 0 (図 4では主変換部 3 2 0 bで表されてい る) に入力される。
主変換部 3 2 0 bと副変換部 3 3 0 bでは、 主変換部 3 2 0 a、 副変 換部 3 3 0 aの処理を繰り返し、 主変換部 3 2 0 cで再度主変換部 3 2 0 aと同じ処理を繰り返す。 主変換部 3 2 0 cからの出力データは、 E X O R回路 3 1 bによって繰り返した後の出力データと鍵スケジュール 部 2 1 0から出力された鍵データとの排他的論理和をとり、 Cとして出 力する。 C A M E L L I Aでは、 3 1 bは E X〇 R回路 3 1 aと同様に 、 副変換部 3 3 0に含まれる排他的論理演算器を使用する。 また、 C A M E L L I Aでは、 主変換部 3 2 0 a , 主変換部 3 2 0 b、 3 2 0 cは 、 同一の主変換部 3 2 0を用いて処理を繰り返すことによってデータ変 換を行う。 ただし、 同一の内部構成を持つ主変換部 3 2 0 aと主変換部 3 2 0 bと主変換部 3 2 0 cとを別々に持つ構成とすることもできる。 副変換部 3 3 0 aと副変換部 3 3 0 bも同様である。
ここで、 主変換部 3 2 0が 1段の F関数処理部分を有する場合であつ て、 図 5 7に示すように 6段の F関数によるデータ変換処理を行う場合 、 主変換部 3 2 0による処理を 6回繰り返すことで 6段の F関数による デ一夕変換処理を完了することができる。 これは、 図 1では、 主変換部 3 2 0からセレクタ 3 1 0と演算レジスタ 3 5 0を通過して主変換部 3 2 0に戻るパスを 6回繰り返し利用して主変換部 3 2 0が 6段の F関数 によるデータ変換処理を完了することを意味する。 従って、 図 5 6や図 6 0に示す関連技術では、 「主変換部 3 2 0からの出力データをセレク タ 3 1 0へ入力させるためのパス」 が必要であった。
しかし、 本実施の形態では、 副変換部 3 3 0が後述するような転送機 能を有するため、 主変換部 3 2 0からの出力データは、 副変換部 3 3 0 を転送させてセレクタ 3 1 0へ入力させることが可能となる。 よって、 本実施の形態のデータ変換装置では、 「主変換部 3 2 0からの出力デー 夕を副変換部 3 3 0によって転送させてセレクタ 3 1 0へ入力させるパ ス」 を用いることにより、 「主変換部 3 2 0からの出力データをセレク 夕 3 1 0へ入力させるためのパス」 が不要となる。 主変換処理一主変換部 3 2 0 .
主変換部 3 2 0の内部構成及び動作については、 図 5 7、 図 6 1を用 いて前述した。
前述したように、 主変換部 3 2 0が持つ構造、 すなわち、 入力デ一夕 を上位ビッ卜の上位データと下位ビッ卜の下位デ一夕とに分割し、 分割 した上位データと下位データのいずれか一方を F関数によって非線形変 換し、 非線形変換した上位データと下位データのいずれか一方と、 上位 デ一夕と下位デ一夕のいずれか他方とから F関数に入力するデータを生 成し、 生成したデータを上記入力データとして上位データと下位デ一夕 に分割し、 F関数を用いて再度変換することを繰り返すことを特徴とす る非線形変換処理構造を F E I S T E L構造と呼んでいる。 主変換処理一主変換部 3 2 0— F関数部 3 2 1 .
次に、 主変換部 3 2 0に含まれる F関数部 3 2 1の内部構成及び動作 について説明する。
図 5は、 F関数部 3 2 1の内部構成及び動作を示した図である。 まず、 入力データは、 E X O R回路 3 2 3によって拡大鍵との排他的 論理和がとられ、 8分割されて、 S関数 3 2 4に入力される。 拡大鍵と は、 秘密鍵から中間鍵生成部 4 0によって生成される出力鍵 (鍵 K A) と中間鍵 (鍵 K L ) とを合わせた鍵をいう。 秘密鍵が 1 2 8ビット長の CAMELL I Aの場合には拡大鍵は 2 5 6ビットになる。 中間鍵 (鍵 KL) を上位ビットの鍵 KLHと下位ピットの鍵 KLLに分割し、 同様 に、 出力鍵 (鍵 KA) を上位ビットの鍵 KAHと下位ビットの鍵 KAL に分割し、 それら 4つの鍵から鍵スケジュール部 2 1 0によってスケジ ユールされた 1つの鍵が EXOR回路 3 2 3に入力される。 S関数 32 4は、 GF (28 ) の逆元演算とァフィン変換を合成した関数 (S iか ら S4) であり、 バイト単位の非線形変換が行われる。 変換され出力さ れたデータは P関数 32 5に入力され、 線形変換を行う P関数 3 2 5に よってデータの攪拌が行われた後に出力される。
次に、 F関数部が F関数の 1/2を処理する部分 (1/2 F関数) か ら構成されている場合についてその動作を説明する。
F関数部が F関数の 1/2を処理する部分は、 EXOR回路 3 2 3と S4 3 24 eから 3 24 hの 4つの Sボックスと図 5の約半分の P 関数部から構成される。 これらの構成から、 まず、 上記 F関数 1段分の データ変換処理の 1Z2の処理を行う。 次に、 もう一度同じ処理を行つ て、 F関数 1段分の処理を完了する。 1度目の処理では、 鍵スケジユー ル部 2 1 0で前述したように、 1バイト右又は左に巡回シフトさせた鍵 とデータとを用いる。 鍵とデータとを 1バイト右又は左に巡回シフトさ せることで、 Sェから S 4に配置された Sボックスの配置を変更せずに Sボックスを 1バイト分ずらすのと同様の効果を奏することができる。 即ち、 図 5に示すように、 S4 3 24 eから St 3 2411で示す31、 S 2、 S3、 S4に配置された Sボックスの配置を変えずに、 1バイト巡回 シフトさせておいた鍵とデータとを入力することで、 3 24 aから S4 3 24 dで示す S2、 S3、 S4、 S丄に Sボックスを配置したのと 同様の処理が可能となる。
このような操作により、 2サイクルで F関数 1段分の処理が完了する 主変換部 3 2 0と副変換部 3 3 0を逆に配置したデータ変換装置. 図 6は、 図 1の主変換部 3 2 0と副変換部 3 3 0を逆に配置したデ一 夕変換装置の構成および動作図である。
主変換部 3 2 0と副変換部 3 3 0を逆に配置したデータ変換装置の場 合も図 1に示すデータ変換装置の場合と同様に、 副変換部 3 3 0は、 転 送機能を用いてデータを転送することによって主変換部 3 2 0に出力す る。 このようなパスを利用して主変換部 3 2 0は 6段の F関数によるデ 一夕変換処理を完了することが可能となる。 従って、 図 5 6や図 6 0に 示す 「副変換部 3 3 0からの出力データをセレクタ 3 1 0へ入力させる ためのパス」 が不要となる。
また、 鍵 K Lレジス夕 2 4 0から出力された中間鍵 (鍵 K L ) は、 直 接セレクタ 3 1 0に入力されず、 鍵 K Lレジスタ 2 4 0から鍵スケジュ ール部 2 1 0へのパスを利用して、 鍵スケジュール部 2 1 0を経由して 副変換部 3 3 0に入力される。 副変換部 3 3 0は、 鍵を入力すると転送 機能を用いて入力された鍵を主変換部 3 2 0へ転送する。
このような転送動作を副変換部 3 3 0にさせることにより、 図 5 6及 び図 6 0に示した 「鍵 K Lレジス夕 2 4 0から出力した中間鍵 (鍵 K L ) をセレクタ 3 1 0に入力させるパス」 と、 「主変換部 3 2 0から出力 したデータをセレクタ 3 1 0に入力させるパス」 または 「副変換部 3 3 0から出力したデ一夕をセレクタ 3 1 0に入力させるパス」 、 の 2つの パスを不要とすることができる。 主変換部 3 2 0と副変換部 3 3 0を並列に配置したデータ変換装置. 図 7は、 図 1、 図 6と比較すると主変換部 3 2 0と副変換部 3 3 0が 並列に配置されている点と 2つの入力信号から 1つの出力信号を選択す るセレクタ 3 4 0が存在する点で異なるデータ変換装置を示す図である その他の構成は、 図 1、 図 6と同様である。
このような構成をとるデータ変換装置では、 主変換部 3 2 0と副変換 部 3 3 0が並列に配置されているので、 主変換部 3 2 0と副変換部 3 3 0とから出力された信号のいずれかを選択するセレクタ 3 4 0が必要に なる。 そして、 セレクタ 3 4 0が選択し、 演算レジス夕 3 5 0を経由し た信号と P (平文又は暗号文) とからセレクタ 3 1 0が選択した信号が 、 主変換部 3 2 0と副変換部 3 3 0とへ入力される。
しかし、 出力鍵 (鍵 K A) 生成時、 鍵 K Lレジス夕 2 4 0から出力さ れた中間鍵 (鍵 K L ) は、 直接セレクタ 3 1 0に入力されず、 鍵 K Lレ ジス夕 2 4 0から鍵スケジュール部 2 1 0へのパスを利用して、 鍵スケ ジュール部 2 1 0を経由して副変換部 3 3 0に入力される。 副変換部 3 3 0は、 鍵を入力すると転送機能を用いて入力された鍵を主変換部 3 2 0へ転送する。 このため、 図 5 6及び図 6 0に示した 「鍵 K Lレジスタ 2 4 0から出力した中間鍵 (鍵 K L ) をセレクタ 3 1 0に入力させるパ ス」 を不要とすることができる。
また、 「主変換部 3 2 0から出力したデータをセレクタ 3 1 0に入力 させるパス」 または 「副変換部 3 3 0から出力したデータをセレクタ 3 1 0に入力させるパス」 、 の 2つのパスを不要とすることができる。 中間鍵生成部 4 0の内部構成.
次に、 中間鍵生成部 4 0の 6 _ 1 K Lセレクタ 2 2 0及び 6 - 1 K A セレクタ 2 3 0の内部構成について説明する。
図 8は、 中間鍵生成部 4 0の6— 1 しセレクタ2 2 0及び 6— 1 K Aセレクタ 2 30の内部構成を示した図である。
中間鍵生成部 40において鍵 KLレジスタ 240に保持された中間鍵 (鍵 KL) は、 鍵スケジュール部 2 10に出力されるとともに、 再び 6 一 1 KLセレクタ 220に入力される。 6— 1KLセレクタ 220は、 内部に 6— 1セレクタ 22 1を持っている。
6一 1 KLセレクタ 220では、 入力された中間鍵 (鍵 KL) を 6 _ 1セレクタ 2 21に入力するとともに、 中間鍵 (鍵 KL) を任意の異な る 4つのシフト数で巡回シフ卜させた 4つの信号を 6— 1セレクタ 22 1に入力する。 例えば、 図示していないが、 中間鍵を左に 1 7ビット、 左に 1 5ピット、 右に 1 7ビット、 右に 1 5ビット、 各々巡回シフトさ せた 4つの信号を入力する塲合が考えられる。 これら中間鍵 (鍵 KL) と巡回シフトさせた 4つの信号と秘密鍵とを 6つの入力信号として、 6 - 1セレクタ 22 1は、 6つの入力信号から 1つの出力信号を選択し、 選択した出力信号を鍵 KLレジス夕 240に新たな中間鍵 (鍵 KL) と して保持させる。
出力鍵 (鍵 KA) から新たな出力鍵 (鍵 KA) を生成する方法も、 中 間鍵 (鍵 KL) から新たな中間鍵 (鍵 KL) を生成する方法と全く同様 である。
図 9は、 中間鍵生成部 40の他の構成例を示す図である。
図 9では、 図 8と比べ、 4— 1セレクタ 223で示すセレクタの共有 化が図られている。 即ち、 鍵 KLレジスタ 240から出力された中間鍵 (鍵 KL) と鍵 KAレジスタ 250から出力された出力鍵 (鍵 KA) と を 2— 1セレクタ 224に入力し、 2— 1セレクタ 224がこの 2つの 鍵から 1つの鍵を選択し、 選択された 1つの鍵を 4つの異なるシフト数 で巡回シフトさせて 4つの信号を生成し、 それら 4つの信号を 4一 1セ レクタ 223に入力する。 4— 1セレクタ 223は、 4つの信号から 1 つの信号を選択して、 3— 1 KLセレクタ 222又は 3— 1 KAセレク 夕 232に出力する。
3— 1 KLセレクタ 222は、 4— 1セレクタ 223によって選択さ れた鍵と秘密鍵と鍵 KLレジスタ 240に保持された中間鍵 (鍵 KL) とから 1つの鍵を選択し、 新たな中間鍵として鍵 KLレジスタ 240に 保持する。
3— I K Aセレクタ 232も同様に、 4一 1セレクタ 223によって 選択された鍵と生成された出力鍵 (鍵 KA) と鍵 KAレジスタ 250に 保持された出力鍵 (鍵 KA) とから 1つの鍵を選択し、 新たな出力鍵 ( 鍵 KA) として鍵 KLレジスタ 240に保持する。
図 8に示す構成では 2— 1セレクタに換算すると 1 0個必要であった のに対し、 図 9に示す構成では、 2— 1セレクタが 8個のみ必要なため 、 図 8に示す構成の中間鍵生成部 40に比べ、 2— 1セレクタを 2個削 減することができる。 このようにして、 回路規模の削減を図ることが可 能である。
なお、 図 8に示す中間鍵生成部 40の構成は、 全ての実施の形態のデ 一夕変換装置に適用することができる。 また、 図 9に示す中間鍵生成部 40の構成も全ての実施の形態のデータ変換装置に適用することが可能 である。
更に、 後述する図 5 1に示す中間鍵生成部 40の構成も全ての実施の 形態のデータ変換装置に適用することが可能である。 副変換処理一副変換部 330.
次に、 副変換部 330の内部構成及び動作について説明する。
本実施の形態では、 データ正変換部 50又はデータ逆変換部 70の少 なくともいずれかが鍵転送機能を有する場合を説明する。 副変換処理一副変換部 330—データ正変換部 50が鍵転送機能を有す る場合.
図 10は、 副変換部 330の内部構成及び動作を示した図である。 本実施の形態では、 図 58を用いて説明した関連技術に関するデータ 正変換部 50とデ一夕逆変換部 70の構成図に比べ、 鍵又はデータを転 送する転送信号とこれらの転送信号に伴う回路が付加されている。
図 10では、 データ正変換部 50が入力鍵を転送させる機能を有して いる。
即ち、 データ正変換部 50に鍵を転送させる転送信号を入力し、 転送 信号を入力されたデータ正変換部 50は、 転送信号に従って入力された 鍵を転送する。
具体的には、 制御部 5によって転送信号が制御され、 鍵を転送させる 場合には、 FL鍵トランスファ信号と FLマスク信号とを出力する。 デ 一夕正変換部 50は、 制御部 5によって出力された FL鍵トランスファ 信号と FLマスク信号とを入力する。
これらの転送信号を用いたデータ正変換部 50による鍵の転送処理に ついて、 具体的に説明する。
鍵を転送する場合、 FL鍵トランスファ信号は 0にセットされ、 AN D回路 5 1に入力される。 AND回路 5 1には、 暗号化ノ復号の対象と なるデータも入力される。
FL鍵トランスファ信号が 0であるため、 入力されたデータは、 AN D回路 5 1の AND回路により抑止され、 無効となる。 即ち、 入力され たデータがどんな値をとつていても、 AND回路 5 1の出力デ一夕は 0 となる。
0の値を持つ AND回路 5 1の出力データの上位ビットは OR回路 5 3に、 下位ビットは EXOR回路 5 5に入力される。
一方、 FLマスク信号は、 NOT回路 52に入力される。 鍵を転送さ せる場合、 制御部 5は、 FLマスク信号を 0にセットするため、 NOT 回路 52の出力信号は 1となり、 〇R回路 53の出力信号は入力信号を 0と 1とするため、 1を出力する。
AND回路 54は、 OR回路 53によって出力された値である 1と鍵 1の情報を入力するため、 AND回路 54の出力データは、 必ず鍵 1そ のものになる。
AND回路 54によって出力された鍵 1は、 左に 1ビット巡回シフト され、 EXOR回路 55に入力される。 鍵 1自身は、 図 3で示す鍵スケ ジュール部 2 10において予め 1ビット右に巡回シフトされているため 、 AND回路 54によって出力された鍵 1が左に 1ビット巡回シフトさ れることで転送すべき本来の鍵 1の値となる。
EXOR回路 55には、 AND回路 5 1から出力された 0の値を持つ 下位ビットが入力されるため、 EXOR回路 55の演算によって出力さ れるのは、 鍵 1そのものである。 これが出力信号の下位ビットなる。 よって、 データ正変換部 50は、 FL鍵トランスファ信号と FLマス ク信号とにより、 鍵 1をそのまま出力信号として出力することができる 鍵 2についても同様に、 FL鍵トランスファ信号と FLマスク信号と によって、 そのまま出力信号として転送される。 この動作について、 次 に説明する。
FLマスク信号は、 前述したとおり 0である。 よって、 AND回路 5 8には 0と EXOR回路 5 5によって出力された鍵 1が入力され、 必ず 0が出力される。
〇 回路57は、 鍵 2と 0を入力するため、 その出力値は必ず鍵 2と なる。
鍵 2は、 EXOR回路 56に入力され、 AND回路 5 1が出力した上 位データである 0との排他的論理和がとられるため、 出力は必ず鍵 2と なる。 これが、 これが出力信号の上位ビットなる。
以上のようにして、 FL鍵トランスファ信号と FLマスク信号を入力 し、 鍵 1と鍵 2とをそのまま転送することが可能となる。 転送信号であ る FL鍵トランスファ信号と FL鍵マスク信号を制御する制御部 5は、 図 1 1、 図 1 2、 図 14〜図 33には図示されていないが、 図 1 0と同 様に、 制御部 5によって制御されているものである。 副変換処理一副変換部 3 30—データ逆変換部 70が鍵転送機能を有す る場合.
次に、 データ逆変換部 70が入力鍵を転送する機能を持っている場合 を説明する。
図 1 1は、 データ逆変換部 70が鍵転送機能を有している場合を示し た図である。
AND回路 7 1には、 FL—1鍵トランスファ信号とデータが入力され る。
前述した FL鍵トランスファ信号と同様に、 FL—1鍵トランスファ信 号は 0を保持しているため、 AND回路 7 1に入力されるデータは抑止 されて無効となり、 AND回路 7 1の出力データは 0に固定される。 前述した FLマスク信号と同様に、 FL—1マスク信号は 0であるため 、 AND回路 73に入力される信号は両方とも 0になり、 AND回路 7 3の出力データは 0に固定される。
OR回路 74は、 AND回路 73の出力データである 0と鍵 3とを入 力信号とするため、 鍵 3を出力する。 EXOR回路 75は、 AND回路 7 1からの出力データ 0の上位ビッ ト 0と鍵 3とを入力するため、 鍵 3を出力する。 これが出力信号の上位 ビッ卜なる。
また、 〇R回路 7 8では、 NOT回路 72によって F L—1マスク信号 0が反転された値 1と鍵 3とが入力されるため、 OR回路 78は 1を出 力する。 AND回路 77は、 OR回路 78からの出力データ 1と鍵 4を 入力するため、 AND回路 77の出力は鍵 4となる。 鏈 4は、 1ビット 左へ巡回シフトされ、 EXOR回路 76に入力される。 ここでも、 鍵 4 は鍵スケジュール部 2 10によって予め 1ビット右へ巡回シフトされて デ一タ逆変換部 70に入力されるため、 ここで 1ビット左へ巡回シフト することにより本来の鍵 4の値となる。
EXOR回路 76には、 AND回路 7 1の出力デ一夕の下位ピットで ある.0と鍵 4とが入力されるため、 EXOR回路 76は鍵 4を出力する 。 これが出力信号の下位ビットなる。
このようにして、 データ逆変換部 70は、 FL—1鍵トランスファ信号 と FL—1マスク信号を転送信号として、 転送信号を入力した場合には、 入力した鍵 (鍵 3、 鍵 4) をそのまま出力することが可能となる。 副変換処理一副変換部 330一データ正変換部 50とデータ逆変換部 7 0とが鍵転送機能を有する場合.
次に、 データ正変換部 50とデータ逆変換部 70とが入力鍵を転送す る機能を持っている場合を説明する。
図 1 2は、 データ正変換部 50とデータ逆変換部 70とが鍵を転送す る機能を有する場合の副変換部 330の内部構成図である。
データ正変換部 50は図 10のデ一夕正変換部 50と、 また、 データ 逆変換部 70は図 1 1のデータ逆変換部 70と同一構成及び同一動作で あるため、 内部の構成及び動作については省略する。
このように、 デ一夕正変換部 5 0及びデ一夕逆変換部 7 0の少なくと もいずれかに鍵を転送させる機能を備えることにより、 図 5 6及び図 6 0で示した鍵 K Lレジスタ 2 4 0からセレクタ 3 1 0への鍵のパスを不 要とし、 鍵 K Lレジスタ 2 4 0から鍵スケジュール部 2 1 0を経て鍵を 副変換部 3 3 0に入力するとともに、 鍵を転送させる転送信号を副変換 部 3 3 0へ入力して、 副変換部 3 3 0により鍵をセレクタ 3 1 0へ転送 させることが可能となる。
このようなパスによる鍵の転送を可能とすることで、 データ変換装置 は、 全体として、 セレクタの数を削減することができる。 即ち、 本実施 の形態のデータ変換装置は、 小型化を実現するために、 中間鍵生成部 4 0によって拡大鍵を生成するための関数と主変換部 3 2 0及び副変換部 3 3 0によるデ一夕変換を行う関数とを図 2に示すように共用している が、 このとき、 図 5 6及び図 6 0に示す、 「鍵 K Lレジスタ 2 4 0から セレクタ 3 1 0へ入力され、 演算レジスタ 3 5 0を経て主変換部 3 2 0 に入力される中間鍵 (鍵 K L ) のパス」 を、 本実施の形態では、 「鍵 Lレジス夕 2 4 0から鍵スケジュール部 2 1 0を経て副変換部 3 3 0に よってセレクタ 3 1 0に転送し、 演算レジス夕 3 5 0を経て主変換部 3 2 0に入力される中間鍵 (鍵 K L ) のパス」 を利用することにより、 セ レクタの増加を抑止することができる。
このようにして、 ブロック暗号処理を行うデータ変換装置のデータ攪 拌部が有するセレクタの増加を抑止し、 回路全体のゲート数を減少させ ることにより、 回路チップ全体の小型化及ぴ消費電力の低減を図ること ができる。 このため、 小型化と低消費電力が強く望まれる携帯電話など のモパイル機器にも本実施の形態によるブロック暗号処理を行うデータ 変換装置を有効に実装することが可能となる。 なお、 図 10から図 33で入力される入力鍵は、 それぞれ異なる鍵で も、 同一鍵でもよい。 また、 FL鍵トランスファ信号と FL—1鍵トラン スファ信号は、 同一信号でもよい。 また、 FLマスク信号と FL—1マス ク信号は同一信号でもよい。 実施の形態 2.
本実施の形態では、 データ正変換部 50又はデータ逆変換部 70の少 なくともいずれかがデータ転送機能を有する場合を説明する。 副変換処理一副変換部 330—データ正変換部 50がデータ転送機能を 有する場合.
本実施の形態では、 副変換部 330がデータを転送する機能を備えた 場合のデータ変換装置について説明する。
図 1 3は、 データ正変換部 50がデータを転送する機能を有する場合 の副変換部 330の内部構成図である。
制御部 5は、 データを転送する信号として FLデータトランスファ信 号をデータ正変換部 50に入力する。 データ正変換部 50に入力される FLデータトランスファ信号は、 0の値を持っている。 この信号は、 A ND回路 5 9と AND回路 60に入力される。
AND回路 54では、 入力データの上位ビットと鍵 1とが AND回路 54に入力される。 AND回路 54の出力データは、 入力データの値に よって不特定であるが、 出力データを左に 1ビット巡回させたデータを AND回路 60へ入力しても、 もう一方の信号である FLデータトラン スファ信号は、 0の値を持っているため、 AND回路 60の出力信号は AND回路 54の出力信号の値に関わらず 0となる。 AND回路 60の 出力データ 0は EXOR回路 55へ入力され、 入力データと下位ビット との排他的論理和がとられる。 AND回路 60の出力が 0であるため、 EXOR回路 55では入力されたデ一夕の下位ビットが出力され、 出力 信号の下位データとして出力される。
一方、 EXOR回路 55の出力デ一夕は、 鍵とともに OR回路 5 7の 入力信号となる。 ここで、 OR回路 57の出力信号は不特定だが、 FL データトランスファ信号が 0に固定されているため、 AND回路 5 9の 出力データは 0となり、 EXOR回路 56では入力されたデータの上位 ビットと AND回路 59の出力データである 0との排他的論理和がとら れるため、 入力されたデ一夕の上位ビットが出力され、 出力信号の上位 データとして出力される。
このように、 データ正変換部 50は、 FLデータトランスファ信号を 転送信号として入力することにより、 入力されたデータを鍵の入力によ らず、 そのまま出力することが可能となる。
なお、 図 1 3のデ一夕逆変換部 7 0は、 図 57で示すデータ逆変換部 70と同一構成を持っているため、 説明を省略する。 副変換処理一副変換部 330—データ逆変換部 70がデータ転送機能を 有する場合.
図 14は、 データ逆変換部 70がデータ転送機能を有する場合の副変 換部 330の内部構成図を示す。
データ逆変換部 70は、 データを転送する FL—1データトランスファ 信号を入力する。 デ一夕を転送する場合、 FL—1データトランスファ信 号は 0を有するため、 OR回路 74の出力信号の値に関わらず、 AND 回路 79は 0を出力する。 このため、 EXOR回路 75では、 入力され たデ一夕の上位ビットがそのまま出力され、 出力信号の上位データとな る。 また、 F L—1データトランスファ信号は A N D回路 8 0に入力される ため、 A N D回路 7 7の出力信号はいかなる値をとつても、 A N D回路 8 0の出力信号は 0となる。 このため、 入力されたデータの下位ビット は E X O R回路 7 6でそのまま出力され、 出力信号の下位デ一夕となる このようにして、 データ逆変換部 7 0は、 データをそのまま出力信号 として転送することができる。 副変換処理一副変換部 3 3 0—データ正変換部 5 0とデータ逆変換部 7 0がデータ転送機能を有する場合.
図 1 5は、 データ正変換部 5 0とデ一夕逆変換部 7 0とがデータ転送 機能を有する場合の副変換部 3 3 0の内部構成図である。
データ正変換部 5 0の構成は、 図 1 3のデータ正変換部 5 0と同一構 成であり、 データ逆変換部 7 0の構成は、 図 1 4のデータ逆変換部 7 0 と同一構成である。 従って、 図 1 5に示すデータ正変換部 5 0とデータ 逆変換部 7 0とは、 各々に入力されるデータを各々そのまま出力するこ とが可能である。
このように、 副変換部 3 3 0が入力データをそのまま転送してセレク タ 3 1 0へ入力させる機能を有することにより、 図 5 6に示す主変換部 3 2 0の出力データをセレクタ 3 1 0へ転送するパスが不要となる。 また、 図 6 0に示すとおり、 主変換部 3 2 0が 1段分以下の F関数を 有する場合のデータ暗号化 Z復号処理では、 主変換部 3 2 0によって 1 段分の F関数の非線形変換を行うために、 演算レジスタ 3 5 0が、 一定 期間中間データを保持する必要があることは前述した。 これは、 主変換 部 3 2 0が自分自身のループパスを必要とすることを意味する。 図 6 0 では、 主変換部 3 2 0から出力された中間データがセレクタ 3 1 0を経 て演算レジスタ 3 5 0へ出力されるループパスがこれに当たる。
しかし、 本実施の形態のように、 副変換部 3 3 0のデータを転送させ る機能を用いれば、 上記ループパスが不要となる。 即ち、 主変換部 3 2 0から出力された中間データは、 副変換部 3 3 0によって転送され、 セ レクタ 3 1 0に入力されて、 セレクタ 3 1 0が入力された中間データを 選択することによって、 主変換部 3 2 0に送られる。
このデータパスを用いることによって、 図 5 6や図 6 0に示すセレク タ 3 1 0への入力信号数と比べ、 セレクタ 3 1 0への入力信号数を減少 させることができるため、 セレクタの増加を抑止、 減少させることが可 能となる。
図 6、 図 7に示すデータ変換装置でも同様に、 主変換部 3 2 0からセ レク夕 3 1 0へのパスが不要となり、 装置の小型化が図れ、 また、 セレ クタ数の減少による低消費電力化を図ることが可能となる。
なお、 F Lデータトランスファ信号と F L -1データトランスファ信号 は、 同一信号でもよい。 実施の形態 3 .
本実施の形態では、 データ正変換部 5 0又はデータ逆変換部 7 0の少 なくともいずれかが鍵転送機能及びデータ転送機能を有する場合を説明 する。 副変換処理一副変換部 3 3 0—データ正変換部 5 0が鍵転送機能及ぴデ 一夕転送機能を有し、 データ逆変換部 7 0が鍵転送機能を有する場合. 図 1 6は、 データ正変換部 5 0が鍵転送機能とデータ転送機能とを備 え、 データ逆変換部 7 0が鍵転送機能を備えた場合の副変換部 3 3 0の 内部構成図である。 データ逆変換部 7 0の構成及び動作は、 図 1 1で示した鍵転送機能を 備えたデータ逆変換部 7 0と同様であるため、 ここでは説明を省略する データ正変換部 5 0の構成及び動作は、 図 1 0で示した鍵転送機能を 備えたデータ正変換部 5 0と、 図 1 3で示したデータ転送機能を備えた データ正変換部 5 0とを組み合わせた構成である。
データ正変換部 5 0では、 F L鍵トランスファ信号は、 入力されたデ —夕を抑止し、 無効とする機能を有し、 F Lマスク信号は、 入力鍵を通 過させる機能を有する。
また、 F Lデータトランスファ信号は、 入力鍵を無効にし、 デ一夕を 通過させる機能を有する。
従って、 F L鍵トランスファ信号と F Lマスク信号とが鍵を転送させ る転送信号として 0を保持している場合には、 データの転送を行うこと はできないので、 F Lデータトランスファ信号はデータを転送させる転 送信号として 0を保持することはできない。 同様に、 F Lデータトラン スファ信号がデー夕を転送させる転送信号として 0を保持している場合 には、 鍵の転送を行うことはできないので、 F L鍵トランスファ信号と F Lマスク信号は鍵を転送させる転送信号として 0を保持することはで きない。
また、 F L鍵トランスファ信号と F Lマスク信号と F Lデータトラン スファ信号と F L—1鍵トランスファ信号と F L—1マスク信号とがすべて 転送信号として 0を保持しない場合には、 データ正変換部 5 0とデータ 逆変換部 7 0とは、 本来的に行うべき入力データの線形変換処理を行う まず、 データ正変換部 5 0が鍵を転送する動作について説明する。 データ正変換部 5 0は、 F L鍵トランスファ信号として 0、 F Lマス ク信号として 0を入力する。 デ一夕は転送しないので、 FLデ一タトラ ンスファ信号は 1のままである。
まず、 AND回路 5 1は、 FL鍵トランスファ信号によりデータを抑 止し、 無効とする。 鍵 1は、 AND回路 54をそのまま通過し、 1ビッ ト左へ巡回シフトされた後、 AND回路 60に入力される。 FLデータ トランスファ信号は 1であるため、 鍵 1は AND回路 60をそのまま通 過し、 £ 〇1 回路55では、 鍵 1と AND回路 5 1から出力された出 力データ 0の下位ビットとの排他的論理和をとるため、 鍵 1が出力信号 の下位データとして出力される。
鍵 2は、 AND回路 58から出力された 0により OR回路 57を通過 し、 FLデータトランスファ信号により AND回路 59を通過し、 EX 〇R回路 56で AND回路 5 1から出力された出力データ 0の上位ピッ トとの排他的論理和をとられるため、 EXOR回路 56も通過して、 出 力信号の上位データとなる。 このようにして、 デ一タ正変換部 50は、 鍵 (鍵 1、 鍵 2) をそのまま転送させることができる。
次に、 データ正変換部 50がデータを転送する場合の動作を説明する
FLデータトランスファ信号は、 入力信号を 0とする。 FL鍵トラン スファ信号と FLマスク信号とは、 1を保持したままである。
AND回路 5 1は、 データを通過させ、 通過したデ一夕の下位ビット は EXOR回路 55に入力される。 AND回路 60では、 入力される F Lデータトランスファ信号が 0であるため、 AND回路 60の出力は 0 となり、 £ 〇1 回路55に入力されたデータの下位ビットは EXOR 回路 55を通過して、 出力信号の下位データとして出力される。
同様に、 AND回路 59の出力は FLデータトランスファ信号が 0で あるため 0となり、 EXOR回路 56に入力されたデ一夕の上位ビット は E X O R回路 5 6を通過して出力信号の上位データとして出力される このようにして、 データ正変換部 5 0は、 データをそのまま転送させ ることができる。
このように、 F L鍵トランスファ信号や F L—1鍵トランスファ信号で ある鍵トランスファ信号と、 F Lマスク信号と F L—1マスク信号とから なるマスク信号は、 鍵を転送し、 F Lデータトランスファ信号は、 デー 夕を転送する。 副変換処理一副変換部 3 3 0 -データ正変換部 5 0が鍵転送機能を有し 、 データ逆変換部 7 0が鍵転送機能及びデータ転送機能を有する場合. 図 1 7は、 データ正変換部 5 0が鍵転送機能を備え、 データ逆変換部 7 0が鍵転送機能とデータ転送機能とを備えた楊合の副変換部 3 3 0の 内部構成図である。
データ正変換部 5 0の構成及び動作は、 図 1 0で示した鍵転送機能を 備えたデータ正変換部 5 0と同様であるため、 ここでは説明を省略する データ逆変換部 7 0の動作は、 図 1 6で示したデータ正変換部 5 0と 同様の動作をするため、 動作の詳細については既に述べたので省略する
副変換処理 -副変換部 3 3 0—データ正変換部 5 0とデータ逆変換部 7 0が鍵転送機能及びデータ転送機能を有する場合.
図 1 8は、 データ正変換部 5 0とデータ逆変換部 7 0とが各々鍵転送 機能とデータ転送機能を有する場合の副変換部 3 3 0の構成図である。 データ正変換部 5 0とデータ逆変換部 7 0とが行う転送の動作につい ては、 既に説明したので省略する。 ここでは、 鍵転送機能とデ一夕転送 機能をデータ正変換部 5 0とデ一夕逆変換部 7 0とがいずれも有するの で、 データ変換装置は、 高度な鍵及びデータ転送処理を行うことができ る。 副変換処理一副変換部 3 3 0—データ正変換部 5 0が鍵転送機能及びデ 一夕転送機能を有する場合.
図 1 9では、 データ正変換部 5 0が鍵転送機能とデータ転送機能とを 備え、 データ逆変換部 7 0はこれらの転送機能のいずれも備えていない 場合の副変換部 3 3 0の構成図である。
データ正変換部 5 0及びデータ逆変換部 7 0の動作については、 前述 したので省略する。 副変換処理—副変換部 3 3 0—データ逆変換部 7 0が鍵転送機能及びデ 一夕転送機能を有する場合.
図 2 0では、 データ逆変換部 7 0が鍵転送機能とデータ転送機能とを 備え、 データ正変換部 5 0がこれらの転送機能のいずれも備えていない 場合の副変換部 3 3 0の構成図である。
データ正変換部 5 0とデ一夕逆変換部 7 0の具体的動作については、 前述したので省略する。 副変換処理一副変換部 3 3 0—データ正変換部 5 0が鍵転送機能及びデ 一夕転送機能を有し、 データ逆変換部 7 0がデータ転送機能を有する場 合.
図 2 1では、 データ正変換部 5 0は、 鍵転送機能とデータ転送機能の いずれをも有し、 データ逆変換部 7 0がデータ転送機能のみを有する場 合の副変換部 3 3 0の構成図である。
データ正変換部 5 0とデータ逆変換部 7 0の各々の動作については、 前述したので省略する。 副変換処理一副変換部 3 3 0 -データ逆変換部 7 0が鍵転送機能及びデ 一夕転送機能を有し、 データ正変換部 5 0がデータ転送機能を有する場 図 2 2は、 データ正変換部 5 0がデータ転送機能を備え、 データ逆変 換部 7 0が鍵転送機能とデータ転送機能とを備える場合の副変換部 3 3 0の構成図である。
データ正変換部 5 0とデータ逆変換部 7 0の各々の動作については、 前述したので省略する。 副変換処理一副変換部 3 3 0一データ正変換部 5 0がデータ転送機能を 有し、 データ逆変換部 7 0が鍵転送機能を有する場合.
図 2 3は、 データ正変換部 5 0がデータ転送機能を備え、 データ逆変 換部 7 0が鍵転送機能を備えた場合の副変換部 3 3 0の構成図である。 各動作については、 前述したので省略する。 副変換処理一副変換部 3 3 0一データ正変換部 5 0が鍵転送機能を有し 、 データ逆変換部 7 0がデータ転送機能を有する場合.
図 2 4は、 データ正変換部 5 0が鍵転送機能を備え、 データ逆変換部 7 0がデータ転送機能を備えた場合の副変換部 3 3 0の構成図である。 各動作については、 前述したので省略する。 副変換処理一副変換部 3 3 0一データ逆変換部 7 0とデータ正変換部 5 0とをシリアルに接続—デ一夕正変換部 5 0とデータ逆変換部 7 0がデ 一夕転送機能を有する場合.
図 2 5は、 データ逆変換部 7 0とデータ正変換部 5 0とをシリアルに 接続し、 データ逆変換部 7 0がデータ転送機能を備え、 データ正変換部 5 0もデータ転送機能を備えた場合の構成図である。
それぞれの内部動作は、 前述したので省略する。
図 2 5に示す構成では、 データ逆変換部 7 0によって転送されたデー 夕がデータ正変換部 5 0に入力され、 データ正変換部 5 0によって更に 転送される出力信号として出力される。
このように、 データ逆変換部 7 0とデータ正変換部 5 0とをシリアル に配置し、 接続することによって、 データ正変換部 5 0とデータ逆変換 部 7 0とによるデ一夕の線型変換だけでなく、 データ逆変換部 7 0のみ 又はデータ正変換部 5 0のみによるデータの線型変換が可能である。 即 ち、 データ逆変換部 7 0によってデータの線型変換したデ一夕をデータ 正変換部 5 0に入力し、 データ正変換部 5 0では、 入力したデータを線 形変換することなく転送することが可能である。 また、 データ逆変換部 7 0で、 入力したデータをデータ正変換部 5 0に転送し、 データ正変換 部 5 0でのみデータを線型変換することが可能である。
従って、 データ正変換部 5 0のみ又はデータ逆変換部 7 0のみでデ一 夕の変換をしたい場合に有効な構成である。 このような効果は、 後述す る図 2 6〜図 3 0で示す副変換部 3 3 0でも同様に奏することができる
副変換処理一副変換部 3 3 0一データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに接続一データ正変換部 5 0とデータ逆変換部 7 0がデ 一夕転送機能を有する場合. 図 2 6は、 図 2 5のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成を示す。
動作及び効果は、 図 2 5に示す副変換部 3 3 0と同様であるので省略 する。 副変換処理一副変換部 3 3 0—データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに接続 -データ正変換部 5 0が鍵転送機能及びデータ転 送機能を有し、 データ逆変換部 7 0がデータ転送機能を有する場合. 図 2 7は、 図 2 6のデータ正変換部 5 0に更に鍵転送機能を付加した 副変換部 3 3 0の構成図である。
データ正変換部 5 0とデータ逆変換部 7 0の内部構成及び動作は、 前 述したので省略する。 副変換処理一副変換部 3 3 0一データ逆変換部 7 0とデータ正変換部 5 0とをシリアルに接続 -データ正変換部 5 0が鍵転送機能及びデータ転 送機能を有し、 データ逆変換部 7 0がデータ転送機能を有する場合. 図 2 8は、 図 2 7のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成を示す。
データ正変換部 5 0とデータ逆変換部 7 0の内部構成及び動作は、 前 述したので省略する。 副変換処理一副変換部 3 3 0—データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに接続一データ正変換部 5 0がデータ転送機能を有し、 デー夕逆変換部 7 0が鍵転送機能及びデータ転送機能を有する場合. 図 2 9は、 図 2 6に示す構成にデータ逆変換部 7 0の鍵転送機能を追 加した構成図である。 データ正変換部 5 0とデ一夕逆変換部 7 0の構成及び動作は、 前述し たので省略する。 副変換処理一副変換部 3 3 0—データ逆変換部 7 0とデータ正変換部 5 0とをシリアルに接続一データ正変換部 5 0がデータ転送機能を有し、 データ逆変換部 7 0が鍵転送機能及びデータ転送機能を有する場合. 図 3 0は、 図 2 9のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成を示す。
内部構成及び動作は、 前述したので省略する。
このように、 F L鍵トランスファ信号及び F L—1鍵トランスファ信号 は、 入力されたデータを抑止し、 無効とする機能を有し、 F Lマスク信 号及び F L—1マスク信号は、 入力鍵を通過させる機能を有する。
また、 F Lデータトランスファ信号と F L—1データトランスファ信号 とは、 入力鍵を無効にし、 データを通過させる機能を有する。
以上の 6つの信号は全て転送信号であり、 これらの転送信号が入力さ れない場合には、 関連技術に示すとおり、 データ正変換部 5 0とデータ 逆変換部 7 0とは、 本来的に行うデ一夕の線形変換を行う。 副変換処理一副変換部 3 3 0一データ正変換部 5 0とデータ逆変換部 7 0とをシリアルに接続一データ正変換部 5 0とデ一夕逆変換部 7 0が鍵 転送機能及びデータ転送機能を有する場合.
図 6 2は、 図 2 7に示すデータ正変換部 5 0の構成と、 図 2 9に示す デ一タ逆変換部 7 0の構成からなる。 即ち、 シリアルに接続されたデー 夕正変換部 5 0とデータ逆変換部 7 0とは、 両方とも、 鍵転送機能及び データ転送機能を有している。
データ正変換部 5 0とデータ逆変換部 7 0の構成及び動作は、 前述し たので省略する。 副変換処理一副変換部 3 3 0一データ逆変換部 7 0とデータ正変換部 5 0とをシリアルに接続ーデ一夕正変換部 5 0と、 デ一夕逆変換部 7 0が 鍵転送機能及びデータ転送機能を有する場合.
図 6 3は、 図 6 2のデータ正変換部 5 0とデータ逆変換部 7 0とが上 下入れ替わつている場合の副変換部 3 3 0の構成を示す。
内部構成及び動作は、 前述したので省略する。 実施の形態 4 .
本実施の形態では、 デ一夕正変換部 5 0とデータ逆変換部 7 0とを共 用の回路とした 1 Z 2副変換部 9 0に鍵及びデータの転送機能を付加し た構成及びその動作について説明する。 副変換処理一副変換部 3 3 0 - 1 / 2副変換部 9 0が鍵転送機能及びデ 一夕転送機能を有する場合.
図 3 1は、 1 Z 2副変換部 9 0に鍵転送機能及びデータ転送機能を付 加した場合の副変換部 3 3 0の構成図である。
関連技術で示した図 5 9に対し、 鍵トランスファ信号、 マスク信号、 デ一夕トランスファ信号が付加されている。 また、 これらの転送信号の 入力に伴い、 鍵とデータとを転送するための回路が付加されている。 まず、 切換信号は、 データ正変換部 5 0とデータ逆変換部 7 0とを切 り換える信号である。 2 _ 1セレクタ 9 9 aに入力された A信号と E信 号から切換信号によって A信号が選択され、 出力信号 Bとして出力され 、 2— 1セレクタ 9 9 bに入力された C信号と F信号から切換信号によ つて C信号が選択され、 出力信号 Dとして出力された場合には、 1ノ 2 副変換部 90は、 データ正変換部 50と同様のデータ変換を行う。
一方、 2— 1セレクタ 99 aが切換信号により出力信号 Bとして E信 号を選択し、 2— 1セレクタ 99 bが出力信号 Bとして切換信号により F信号を選択した塲合には、 1 2副変換部 90は、 データ逆変換部 7 0と同一のデータ変換を行う。
切換信号によって 1Z2副変換部 90がデ一夕正変換部 50として機 能する場合、 図 3 1に示された動作は、 図 1 8に示されたデータ正変換 部 50の動作と同様となる。 即ち、 鍵トランスファ信号は、 図 18の F L鍵トランスファ信号に対応し、 マスク信号は、 図 1 8の FLマスク信 号に対応し、 データトランスファ信号は、 図 1 8の FLデータトランス ファ信号に対応する。
また、 各回路の対応としては、 98は AND回路 5 1 (図 1 8) に対 応し、 9 1は EX OR回路 55 (図 1 8) 、 95は AN D回路 60 ,、 (図 1 8) 、 1 0 1は AND回路 54 (図 18 ) 、 94は OR回路 53 (図 1 8) 、 1 00は NOT回路 52 (図 18) 、 96は AND回路 58 ( 図 18) 、 92は OR回路 57 (図 1 8) 、 97は AND回路 59 (図 18) 、 93は£ 0 回路56 (図 1 8) に対応する。
このように対応することで、 1/2副変換部 90は、 図 18のデータ 正変換部 50の機能を発揮することができる。 即ち、 データの正変換を 行うとともに、 鍵転送信号を入力した場合には、 入力した鍵を出力信号 とすることによって、 鍵 (鍵 1、 鍵 2) を転送することが可能となる。 なお、 これらの動作については、 図 1 8のデータ正変換部 50と同様で あるので説明を省略する。
1Z 2副変換部 90が切換信号によってデ一夕逆変換部 70として機 能する場合には、 図 31に示された動作は、 図 1 8に示されたデータ逆 変換部 70の動作と同様となる。 即ち、 鍵トランスファ信号は図 1 8の FL—1鍵トランスファ信号に対応し、 マスク信号は図 18の FL— 1マス ク信号、 データトランスファ信号は図 18の FL—1データトランスファ 信号に対応する。
また、 各回路の対応としては、 98は AND回路 7 1 (図 1 8) に対 応し、 9 1は£ 0尺回路76 (図 18) 、 95は AND回路 80 (図 18) 、 1 0 1は AND回路 7 7 (図 1 8) 、 94は OR回路 78 (図 1 8) 、 96は AND回路 73 (図 1 8) 、 92は OR回路 74 (図 1 8) 、 97は AND回路 7 9 (図 1 8) 、 93は£ 〇 回路75 (図 18) に対応する。
このように対応することによって、 1Z 2副変換部 90は、 図 1 8の データ逆変換部 70の機能を発揮することができる。 即ち、 データの逆 変換を行うとともに、 鍵転送信号を入力した場合には、 入力した鍵を出 力信号とすることによって、 鍵 (鍵 3、 鍵 4) を転送することが可能と なる。 なお、 これらの動作については、 図 1 8のデータ逆変換部 7 0と 同様であるので説明を省略する。 副変換処理一副変換部 330 - 1Z 2副変換部 90がデータ転送機能を 有する場合.
図 32は、 1/2副変換部 90にデータ転送機能を付加した場合の副 変換部 330の構成図である。
図 3 1と同様に、 2— 1セレクタ 99 aによって A信号が選択され、 2— 1セレクタ 99 bによって C信号が選択された場合には、 1/2副 変換部 90は、 図 13のデータ正変換部 50と同様の機能を有する。 こ の場合、 データトランスファ信号は、 FLデータトランスファ信号に対 応する。
また、 切換信号によって 2— 1セレクタ 99 aでは E信号が選択され 、 2— 1セレクタ 99 bでは F信号が選択された場合には、 1Z2副変 換部 90は、 図 14のデータ逆変換部 70と同様の機能を有する。 この 場合、 データトランスファ信号は、 FL—1データトランスファ信号に対 応する。
このような 1Z 2副変換部 90の構成により、 1/2副変換部 90は 、 データを変換するとともに、 データを転送する転送信号を入力した場 合には、 データを変換せずに出力することによって、 転送処理を行うこ とが可能となる。
なお、 これらの動作については、 前述したので説明を省略する。 副変換処理一副変換部 330 - 1/2副変換部 90が鍵転送機能を有す る場合.
図 33は、 1/2副変換部 90に鍵転送機能を付加した場合の副変換 部 330の構成図である。
図 3 1と同様に、 2— 1セレクタ 99 aによって A信号が選択され、 2— 1セレクタ 99 bによって C信号が選択された場合には、 1Z2副 変換部 90は、 図 10のデータ正変換部 50と同様の機能を有する。 こ の場合、 鍵トランスファ信号及びマスク信号は、 FL鍵トランスファ信 号及び FLマスク信号に対応する。
また、 切換信号によって 2 _ 1セレクタ 99 aでは E信号が選択され 、 2— 1セレクタ 99 bでは F信号が選択された場合には、 1Z2副変 換部 90は、 図 1 1のデータ逆変換部 70と同様の機能を有する。 この 場合、 鍵トランスファ信号及びマスク信号は、 FL—1鍵トランスファ信 号及び F L—1マスク信号に対応する。
このような 1Z 2副変換部 90の構成【こより、 1 2副変換部 90は 、 データを変換するとともに、 鍵を転送する転送信号を入力した場合に は、 鍵を変換せずに出力することによって、 転送処理を行うことが可能 となる。
なお、 これらの動作については、 前述したので説明を省略する。
本実施の形態で示すように、 デ一夕正変換部 50とデータ逆変換部 7 0とを共用の回路として構成する 1Z 2副変換部 90が鍵を転送する機 能とデ一夕を転送する機能とを備えることにより、 副変換部 330の小 型化と前述したような鍵のパス及びデータパスを不要とすることによる セレクタの増加防止により、 データ変換装置全体を小型化することがで さる。
以上、 実施の形態 1から実施の形態 4に開示したブロック暗号を行う データ変換装置は、 CAMELL I Aの構成を中心に説明した。 しかし 、 上記で説明した転送機能をもつ副変換部 330は、 CAMELL I A や M I STY (ミスティ) や KASUM I (カスミ) など、 ブロック暗 号を行うデータ変換装置に適用することができる。
以上に説明した図 1または図 6または図 7に示すデータ変換装置では
、 セレクタ 3 10を構成する 2— 1セレクタを 1つ又は 2つとすること が可能である。
これと比較して、 前述した関連技術を示すデータ変換装置では、 図 5 6に示すように、 4つの信号から 1つの出力信号を選択するために、 2 一 1セレクタが 3つ必要となる。
さらに、 図 60によって示される 1/2 F関数を用いたデータ変換装 置では、 3 1 0は、 5つの入力信号から 1つの出力信号を選択するため に、 4つの 2— 1セレクタが必要となる。
従って、 図 1または図 6または図 7に示すデータ変換装置によれば、 関連する技術によるデータ変換装置に比べ、 データ攪拌部 30を構成す るセレクタの数を減少させることが可能となる。 さらに、 図 7に示すデータ変換装置では、 主変換部 320と副変換部 330とを並列に配置したために、 セレクタ 340が 1つ必要となって いる。 セレクタ 340は、 主変換部 320と副変換部 330から出力さ れた 2つの出力信号を入力信号として入力し、 2つの入力信号から 1つ の入力信号を選択する 2— 1セレクタ 1つから構成されている。 よって 、 図 7では、 セレクタ 3 1 0とセレクタ 340とに必要な 2— 1セレク 夕は 2つとなる。
従って、 図 7に示すデータ変換装置においても、 関連する技術による データ変換装置に比べ、 データ攪拌部 30を構成するセレクタの数を減 少させることが可能となる。 実施の形態 5.
本実施の形態では、 ブロック喑号処理を行う CAMEL L I Aにおい て、 主変換部 320と副変換部 330とを並列に実装した CAMEL L I Aについて説明する。
CAMELL I Aは、 ブロック長が 128ビットであり、 鍵長は 1 2 8ビット, 192ピット, 256ビットが利用できる。
アルゴリズムの構成は、 上述した特徴を持つ FE I STEL構造であ り、 基本的に暗号化及び復号処理は、 同一のハードウェアまたはソフト ウェアで実現可能である。
F関数は、 鍵長に依存し、 1 28ビット鍵の場合は 1 8段 (図 34の 主変換部 320の 6段 X 3) 、 1 92ビット及び 256ビットの場合は 、 図 54及び図 55に示すように 24段となる。 図 54及び図 55につ いては後述する。
図 34は、 128ピット鍵の CAMEL L I Aの場合の暗号化処理を 示す図である。 即ち、 図 34では、 P (平文) に対して主変換部 320 と副変換部 3 30とによるデータ変換 (データの暗号化) を行い C (喑 号文) を出力する。 図 34では、 F関数 6段ごとに FL (データ正変換 関数) と FL— 1 (データ逆変換関数) とが挿入される。
図 34の左側は図 4のデータ攪拌部 30による動作として記載されて いるものと同様である。 即ち、 図 4の EXOR回路 3 1 aおよび EXO R回路 3 l bは、 図 34の EXOR回路 600と EXOR回路 60 1に 対応し、 実際には、 副変換部 330に含まれる EXORによって処理さ れる。 また、 図 34に示されるすべての鍵は、 図 4で示すように、 鍵ス ケジュール部 21 0によってスケジュールされ、 出力された鍵を入力す るものである。
また、 図 34の右側は図 57で示す図と同様である。
図 3 5は、 128ビット鍵の CAMEL L I Aの場合の復号処理を示 す図である。
図 3 5では、 C (暗号文) に対し主変換部 320と副 換部 330と によるデータ変換 (データの復号) を行い、 P (復号文) を出力する。 なお、 図 34と図 35に示す動作は、 前述したので省略する。
C AME L L I Aの F関数の内部について詳細を説明する。
図 36は、 C AME L L I Aの F関数の内部構成図である。
C AME L L I Aの F関数の内部は、 S PN構造になっており、 その データ処理は基本的に入力データ (1) から入力デ一夕 (8) の 8ビッ ト単位で行われ、 Sボックスからなる S関数 324と P関数 325と呼 ばれる排他的論理和 (EXOR) による線形変換により構成される。
F関数部 32 1では、 まず、 8ビットずつの入力データ (1) 〜入力 データ (8) を入力し、 入力した 64ビットの入力データに鍵 (1) か ら鍵 (8) まで 8ビットずつの合計 64ビットの鍵との排他的論理を各 々とり出力される。 出力されたデータは、 S関数 324に入力され、 G F (2s ) の逆元演算とァフィン変換を合成した S関数 324によりバ ィト単位に非線形変換される。
次に、 P関数 325によってデータを排他的論理和による線形変換し 、 このような動作を通じてデータを攪拌した後、 出力データ (1) 〜出 力データ (8) として出力する。
C AME L L I Aの F関数のデータ幅は、 64ビットである。 図 36 では、 S関数 324に S i〜S4の Sボックスを二組 (図 36の下から Sい S 2、 S 3> S4の一組とその上の、 S2、 S3、 S4、 の一組) 用意している。
従って、 図 36に示すように、 まず、 入力データ (1) から入力デ一 夕 (4) についてのデータ変換を行い、 次に、 残りの入力デ一夕である 入力デ一夕 (5) から入力データ (8) のデータ変換を行うことで処理 することも可能である。 この場合、 前述したように、 2回目のデータ変 換では、 S iから S 4に順に配置された Sボックスを構成する回路をそ のまま活用するために、 データを 1バイト予め巡回シフトさせておき、 巡回シフトさせた入力データ (5) から入力データ (8) を入力するこ とにより、 S関数 324の構成を変えずに、 データと S iから S4の S ボックスを対応させることができる。
このように、 F関数は、 鍵と入力デ一夕との EXOR (排他的論理和 ) 、 4種類の S関数 (31から34) の 2回、 及び、 P関数 325によ る演算によってデ一夕の非線形変換を実現している。
C AME L L I Aの代表的な演算は、 S BOX (GF (28 ) 上の逆 元回路 +ァフィン変換) Siから S4の S関数 324と、 P関数 325 及びデータ正変換 (FL) 及びデ一夕逆変換 (FL 関数であるた め、 簡単なブール代数の組み合わせで実現できる。
次に、 CAMELL I Aの全体構成及び動作を詳しく説明する。 図 37は、 CAMELL I Aの全体構成及び動作を示した図である。 CAMELL I Aは、 入力される秘密鍵が 128ビット鍵の場合は、 内部で 256ビットに拡大し、 拡大された拡大鍵を用いてデータの暗号 化/復号処理を行う。
入力される秘密鍵が 1 92ピット及び 256ビット鍵の場合は、 内部 で 5 12ピッ卜に拡大して、 データの暗号化/復号に用いるが、 1 92 ビット及び 2 56ビット鍵の場合については後述する。
まず、 CAMELL I Aの構造的な特徴を述べる。
C AME L L I Aのアルゴリズム全体は、 主変換部 320によって同 様の F関数を繰り返し演算することで実現している。 また、 F関数は、 図 36に示す構成をとる。
また、 データ攪拌部 30では、 図 4の EXOR回路 3 1 aと EXOR 回路 3 1 bに示すように、 入力データ及び出力データと鍵との排他的論 理和演算 (EXOR) を行う。 これを wh i t e n i n gと呼ぶ。
また、 データ攪拌部 30では、 F関数 6段を有する主変換部 320ご とにデ一夕正変換 (FL) とデータ逆変換 (FL—1) を有する副変換部
330が揷入されている。 これは、 図 34及び図 35に示されている。 また、 前述したとおり、 拡大鍵 (中間鍵 +出力鍵) は、 図 2に示すよ うに、 生成される。
以上のことから、 データ正変換 (FL) とデータ逆変換 (FL—1) を 有する副変換部 330、 P関数 325、 4種類の Sボックスから CAM ELL I Aのアルゴリズムを実現するデータ変換装置を構築できること がわかる。
また、 P関数 325は、 「12 8ビットブロック喑号 C ame 1 1 i aアルゴリズム仕様書」 に示される表現方法に従って、 表現することに より小型化が可能である。 具体的には、 上記仕様書により、 P関数は、 以下のように表現できる z 1 ' =ζ 1 + ζ 3 + ζ 4 + ζ 6 + ζ 7 + ζ 8
z 2 ' =ζ 1 +ζ 2 + ζ 4 + ζ 5 + ζ 7 + ζ 8
z 3 ' = z 1 + ζ 2 + ζ 3 + ζ 5 + z 6 + z 8
z 4 ' =z 2 + z 3 + z 4 + z 5 + z 6 + z 7
z 5 ' = z 1 + z 2 H-z 6 + z 7 + z 8
z 6 ' =z 2 + z 3 +z 5 + z 7 + z 8
z 7 ' =z 3 + z 4 +z 5 + z 6 + z 8
z 8 ' =z l + z 4 +z 5 + z 6 + z 7
上記の z 1 ' 〜z 8 ' を求める式の 「 +」 は、 排他的論理和演算を示 す。
z lから z 8は、 各々 mS l, S 2 , S 3, S 4, S 5 (= S 2) , S 6 (=S 3) , S 7 (= S 4) , S 8 (=S 1) からの出力である。 ここで、 z 5から z 8を z z 2, z z 3, z z 4, z z 1と記述変換す ると、 以下のようになる。
z l ' =ζ 1 + ζ 3 + ζ 4 + ζ ζ 1 + ζ ζ 3 + ζ ζ 4
z 2 = z 1 - z 2 + z 4 + z z 1 + ζ ζ 2 + ζ ζ 4
z 3 ' =z l + z 2 + z 3 + z z l + z z 2 + z z 3
z 4, = z 2 + z 3 + z 4 + z z 2 + z z 3 + z z 4
z 5 ' =z l + z 2 +z z l + z z 3 + z z 4
z 6 ' = z 2 + z 3 +z z l + z z 2 + z z 4
z 7 ' = z 3 + z 4 +z z l + z z 2 + z z 3
z 8 ' =z l + z 4 + z z 2 + z z 3 + z z 4
これにより、 S Iから S 4を Z lから Z 4を出力させる演算及び z z 1から z z 4を出力させる演算というように、 2クロックかけて演算す ることで、 P関数も約半分の回路で構成することが可能である。
CAMELL I Aによるデータ変換装置を図 37に基づいて説明する 図 37に示す CAMELL I Aのデータ変換装置では、 主変換部 32 0と副変換部 330が並列に配置されている。
副変換部 330は、 データ正変換部 50とデータ逆変換部 70とを有 している。
主変換部 320は、 1Z 2の F関数から構成される F関数部を有して いる。 主変換部 320が F関数未満の F関数、 即ち、 1Z2X (x≥ 1 ) F関数で構成され場合は、 図 61の 1/2 F関数を例に挙げて説明し たように、 1段の F関数を F関数部 1 32 1 aによる処理と F関数部 1 32 1 bによる処理の中間結果である EXOR回路 1 322 aの出力結 果を保持しなくてはならない。
一般的に、 実装する F関数の個数を減らし、 1段の F関数によるデ一 夕変換処理を複数回のル一プアーキテクチャで実現する方法を採用して いくと、 F関数分の回路規模は減少していくが、 ループを制御する制御 回路や各 F関数に鍵を入力させるためのセレクタ等の回路は増加する。 このように、 F関数分の回路規模とループを制御するための回路規模と は、 卜レードオフの関係にある。
従って、 CAMELL I Aのデータ変換装置の小型化を考えた場合、 実装する F関数の個数及び繰り返しの回数を検討する必要がある。 即ち 、 F関数を主変換部 320に 1つ実装した CAME L L I Aのデータ変 換装置を実現するか、 又は、 F関数内の S BOXの実装する数を削減し 、 1段分の F関数によるデータ変換を数サイクルで演算させるのか等を 充分に検討する必要がある。 これは、 1段未満の F関数から F関数部を 構成することにより削減される回路規模とループを構成するためのセレ クタ等の増加による回路規模増加とのトレードオフの検討を意味する。 また、 CAMELL I Aの場合、 前述したとおり、 出力鍵 (鍵 KA) を生成するために用いる関数は、 データ攪拌部 30の主変換部 320の 一部を用いる。 よって、 この場合にも、 データ攪拌部 30の F関数を利 用するために追加されるセレクタ等の影響を充分に検討する必要がある 図 36を用いて説明したように、 CAMELL I Aの F関数は、 8ビ ット入出力を行う 4種類 (S ^ S 2, S 3, S4) の Sボックスを 2回 ずつ使用している。 ここでは、 S BOXを 8個実装するか、 又は、 4つ 実装して 2回繰返すか等の検討が必要である。
200 1年暗号と情報セキュリティシンポジウム予稿集に記載された 「 1 28 b i tブロック暗号のハードウエア実装について ( 1 1 1) 」 より、 Sボックス 1つの回路規模は、 約 200ゲートであり、 Sボック スを 8個から 4個に 4個削減すると、 約 800ゲートの削減になる。 一方、 これとトレードオフの関係にある繰り返しを行うための 2— 1 セレクタが、 少なくとも 32個 (約 NAND回路 100ゲート) 必要と なる。
これにより、 Sボックスを 8個実装するより、 4偭実装して 2回繰返 すことにより回路が小さくなることが予想される。
従って、 C AMEL L I Aのデータ変換装置の F関数部 32 1は、 S ボックスを 8個実装して 1回のデータ変換を行うことが可能であるが、 Sボックスを 4偭実装して 2回のデータ変換を繰り返すことにより、 デ 一夕変換を行うことも可能であり、 いずれを用いてもよい。 ただし、 回 路規模を考慮すれば、 2回のデータ変換を繰り返す方が好ましい。 図 37に示す CAMELL I Aのアルゴリズムを用いた場合、 このシ 一ケンスにより、 中間鍵生成部 40サイクルでデータの暗号化 復号を 実現できる。
以下に、 中間鍵生成部 40サイクルの処理過程を示す。
'まず、 ステップ 1では、 副変換部 330を用いて、 Wh i t e n i n gを演算する。
次に、 ステップ 2で、 主変換部 320を用いて、 F関数の 1Z2の処 理 (1Z2 F関数) を演算する。
同様にステップ 3で、 主変換部 320を用いて、 残りの F関数の 1ノ 2の処理 (1/2 F関数) を演算する。
ステップ 4〜ステップ 1 3では、 ステップ 2〜ステップ 3を 5回行う 。
ステップ 14では、 副変換部 330のデータ正変換 (FL) とデータ 逆変換 (FL— 1) 関数を演算することによりデータの変換を行う。 さらに、 ステップ 1 5〜ステップ 27で、 ステップ 2〜ステップ 14 を繰り返す。
さらに、 ステップ 28〜ステップ 39で、 ステップ 2〜ステップ 1 3 を繰り返す。
最後にステップ 40で、 ステップ S 1と同様の Wh i t e n i n gを 演算する。
ここで、 ステップ 1は、 図 4の EXOR回路 3 1 aによる演算を示し 、 ステップ 40は図 4の EXOR回路 31 bによる演算を示している。 即ち、 EXOR回路 3 l aと EXOR回路 3 l bとは、 副変換部 330 に備えられたデータ正変換部 50とデータ逆変換部 70の有する EXO Rを使用して演算を行う。
なお、 鍵生成部 20の構成及び動作は、 前述したと同様であるので説 明を省略する。
上述したステップ 2及びステップ 3では、 主変換部 320により 2サ ィクルで 1つの F関数によるデータ変換を行う。 このデータ処理につい て、 図 37と図 64とを用いて、 具体的な動作を説明する。
図 64は、 図 6 1と比較すると、 入力鍵として下位の鍵が最初に入力 され、 上位の鍵が次に入力されて処理が実現される点で異なる。
まず、 ステップ 1の具体的動作について説明する。 入力データである P (平文又は復号文) は、 2— 1セレクタ 31 1により選択され、 上位 データと下位データとに分割されて、 上位データは、 副変換部 330の データ正変換部 50によって Wh i t e n i n gされ、 下位データは、 副変換部 330のデータ逆変換部 70に入力されて、 同様に、 Wh i t e n i n gされる。 Wh i t e n i n gされた上位データと下位データ とは、 2— 1セレクタ 340の 2— 1セレクタ H341と 3— 1セレク 夕 L 342に入力される。 各々入力されたデータは、 2— 1セレクタ H 341と 3— 1セレクタ L 342により選択され、 演算レジスタ H 35 1と演算レジスタ L 352に保持される。
次に、 ステップ 2の動作について説明する。
演算レジスタ H 35 1に保持された上位データの上位ビットが、 2— 1セレクタ 31 2に入力されるとともに、 上位データの下位ピットが 1 バイトローテートシフトされて、 2— 1セレクタ 3 1 2に入力される。 2— 1セレクタ 3 12は、 2つの入力データからローテートシフトされ ている下位ビットを選択し、 主変換部 320へ出力する。 選択された下 位ビットを 1バイトローテ一トシフトすることによって、 図 36に示す ように、 各入力データ (5) から (8) を各 Sボックスに適用させて入 力させることができる。 主変換部 320では、 1/2 F関数を持つ F関 数部 32 1により、 図 64に示す 1段目の上半分のデータ変換が行われ る。 ここで、 図 37の F関数部 32 1と図 64の 1 2 F関数からなる F関数部 1 32 1 a〜F関数部 1 32 1 1は、 同一構成をとる。 図 64 に示す F関数部 1 321 aによるデ一夕変換は、 鍵 1 Lを用いて、 入力 された上位データのうち、 下位半数ビットをデータ変換し、 変換後のデ —タを EXOR回路 1322 aに出力する。 EXOR回路 1322 aは 、 F関数部 1 32 1 aによって出力された変換後のデータを入力すると ともに、 入力された下位データとの排他的論理和をとられる。 即ち、 出 力されたデータ (中間デ一夕) は、 主変換部 320から 3— 1セレクタ L 342に入力され、 演算レジス夕 L 352に保持される。 これと同時 に、 演算レジスタ H 35 1に保持されていた Pの上位データが 2— 1セ レクタ 3 1 1を通り、 副変換部 33 0の、 例えば、 データ正変換部 50 のデータ転送を利用してデ一夕転送を行い、 2— 1セレクタ H34 1を 経由して、 演算レジスタ H 35 1から、 再び演算レジスタ H 3 51に保 持される。
次に、 ステップ 3の動作について説明する。
図 64の F関数部 1 32 1 bによるデ一夕処理は、 図 37の主変換部 320による 2サイクル目の処理で実現される。 即ち、 1パイトロ一テ —トシフトさせずに、 2— 1セレクタ 3 1 2に入力した上位デ一夕の上 位ビットを 2— 1セレクタ 3 1 2が選択し、 主変換部 320に出力する 。 このような適用により、 上位データの上位半数ビットのデータが F関 数部 1 32 1 bにより非線形変換されて EXOR回路 1322 bへ出力 される。 EXOR回路 1 322 bでは、 もう一方の入力信号として、 1 サイクル目で主変換部 320が出力し、 演算レジス夕 L 352に保持さ れた中間データを主変換部 320に入力することにより、 EXOR回路 1322 bへ入力する。 EXOR回路 1 322 bで排他的論理和がとら れた後の出力データは、 2 - 1セレクタ H 341に選択されて演算レジ スタ H 3 5 1に保持される。 この時点で、 Pの上位データは、 3— 1セ レクタ L 342を経由して演算レジス夕 L 352に保持されている。 従 つて、 図 6 4の主変換部 3 2 0で行われる 2段目のデータ変換処理に用 いられる上位データと下位データとが演算レジスタ H 3 5 1と演算レジ スタ L 3 5 2に保持されていることとなる。
ステップ 4〜ステップ 1 3では、 ステップ 2〜ステップ 3を 5回行う 即ち、 2段目のデータ変換を F関数部 1 3 2 1 と E X O R回路 1 3
2 2 cとで 1サイクル、 F関数部 1 3 2 1 dと E X O R回路 1 3 2 2 d とで 1サイクル、 合わせて 2サイクルで行う処理がステップ 4、 ステツ プ 5の処理に相当する。 3段目から 6段目の処理も、 同様に行うが、 こ れが、 ステップ 6〜ステップ 1 3の処理に相当する。
なお、 前述したように、 図 6 4の F関数部 1 3 2 1 aから F関数部 1
3 2 1 1の関数は、 図 3 7の F関数部 3 2 1の関数と同一の関数である 次に、 ステップ 1 4の処理について説明する。
これは、 図 3 7の副変換部 3 3 0による処理を示すものである。
まず、 演算レジスタ H 3 5 1と演算レジスタ L 3 5 2に保持されたス テツプ 1 3の処理後の上位データと下位データとは、 2— 1セレクタ 3 1 1に入力され、 選択されて、 上位データをデータ正変換部 5 0へ下位 デ一タをデータ逆変換部 7 0へ入力する。
データ正変換部 5 0とデータ逆変換部 7 0とでは、 入力された各々の データを線形変換し、 データ正変換部 5 0による変換デ一タは 2— 1セ レクタ H 3 4 1へ、 データ逆変換部 7 0による変換データは 3— 1セレ クタ L 3 4 2へ入力され、 各々選択されて、 各々演算レジス夕 H 3 5 1 、 演算レジス夕 L 3 5 2に保持される。
ステップ 1 5からステップ 2 7の処理は、 図 3 7の主変換部 3 2 0の 処理と副変換部 3 3 0の処理に該当する。 ステップ 2 8からステップ 3 9の処理は、 図 3 7の主変換部 3 2 0の 処理に該当する。
ステップ 4 0では、 ステップ 1と同様に、 副変換部 3 3 0の E X O R を用いて W h i t e n i n を行う。
これらの中間鍵生成部 4 0ステップを経て、 入力データ Pが平文の場 合には、 暗号化処理により暗号文 Cが出力され、 入力データ Pが暗号文 の場合には、 暗号化処理と同一回路によって復号処理が行われ、 復号文 Cを出力することが可能となる。
このように、 図 3 7に示す C AM E L L I Aを用いたデータ変換装置 では、 主変換部 3 2 0と副変換部 3 3 0とを並列して配置したことによ り、 直列に配置した場合に比べて、 1サイクルのサイクル時間を短縮で き、 動作周波数の向上を図ることができる。
また、 主変換部 3 2 0と副変換部 3 3 0とを並列して配置したことに より、 主変換部 3 2 0を通過しないで副変換部 3 3 0に信号を入力でき るパスと、 副変換部 3 3 0を通過しないで主変換部 3 2 0に信号を入力 できるパスが存在することとなったため、 将来的に行われる他の構成や 他の動作の付加、 削除等の変更に対し、 柔軟に対応できる。
また、 主変換部 3 2 0と副変換部 3 3 0とを直列に配置した C A M E L L I Aを使用したデータ変換装置では、 上述したように複数サイクル で F関数による 1回のデータ変換を行う場合には、 1サイクルで変換対 象となるデータは、 入力データの一部であるため、 入力データの一部の 変換データを演算レジスタ 3 5 0に保持し、 一定期間後に副変換部 3 3 0に送るためのパスをデータ攪拌部 3 0中に設けるか、 または、 一定期 間後に主変換部 3 2 0を転送して副変換部 3 3 0に送るための転送パス を主変換部 3 2 0中に設ける必要があった。
しかし、 本実施の形態では、 主変換部 3 2 0と副変換部 3 3 0とを並 列に配置したため、 上記パスの付加や主変換部 320の転送パス機能の 追加を不要とし、 装置の回路規模の増加を抑止することが可能となる。 さらに、 図 59に示すデータ正変換部 50とデ一夕逆変換部 70との 共用回路を用いた場合には、 A→B→C→D→E→B→C · · · のパス がループ回路となる。 このため、 実際の L S Iにするときに、 切換信号 の伝搬遅延の差による信号のレーシング、 ノイズなどの影響により、 発 信回路にならないような工夫が必要となる。 また、 このような上記ルー プ回路 (FEEDBACK— LOOP回路) を持った回路には、 論理合 成ツールが対応できず、 効率よく論理合成が行われない、 という問題が 生じていた。
そこで、 図 37では、 副変換部 330のデ一タ正変換部 50とデータ 逆変換部 70とを別々に設ける構成とした。 このため、 上記レ一シング などの問題を生じないデー夕変換装置の構築が可能となった。
さらに、 前述したように、 図 37では、 副変換部 3 30の鍵及びデー 夕の転送機能を用いることで、 鍵 KLレジスタ 240からの鍵のパスと 主変換部 320からのデータパスを不要とすることができる。 このため 、 CAMELL I Aのブロック処理を行うデータ変換装置の更なる小型 化と低消費電力化を図ることができる。 実施の形態 6.
次に、 実施の形態 6について説明する。
図 38は、 実施の形態 6の CAMELL I Aのデータ変換装置の構成 図である。
図 3 7比べ、 副変換部 3 30が、 データ正変換部 50とデータ逆変換 部 70とを共用回路とする 1/2副変換部 90により構成されている点 が異なる。 このため、 図 37の 2— 1セレクタ 2 15、 4一 1セレクタ 2 1 7が不要となる。
このように、 本実施の形態のデータ変換装置では、 2— 1セレクタ 2 1 5、 4一 1セレクタ 2 1 7に必要な 4つのセレクタと 2 _ 1セレクタ 2 1 5によって出力された鍵を副変換部 330へ入力するパスが不要と なる。 このため、 鍵スケジュール部 2 10の構成が簡略化でき、 データ 変換装置の更なる小型化を図ることができる。 実施の形態 7.
図 47は、 実施の形態 7を示す CAMEL L I Aのデータ変換装置の 構成図である。
本実施の形態は、 図 37の構成図と比較し、 主変換部 320の F関数 部 32 1が 1ノ8の F関数から構成される部分が異なる。 即ち、 本実施 の形態では、 主変換部 320は、 8サイクルで F関数 1つのデータ変換 を行うこととなる。 従って、 図 37と比べ、 図 3 7の 2— 1セレクタ 3 1 2が 8— 1セレクタ 3 1 5に変更されている。 他の構成は、 図 37と 同様である。 実施の形態 8.
図 48は、 実施の形態 8を示す CAMEL L I Aのデータ変換装置の 構成図である。
本実施の形態では、 図 47で示す実施の形態と比べ、 330は1 2 副変換部 90を備える点で異なる。 従って、 図 47に示す 2 _ 1セレク 夕 2 1 5と 4— 1セレクタ 2 1 7が不要となる。 実施の形態 9.
本実施の形態を、 図 49に示す。 図 49は、 実施の形態 9を示す CAMEL L I Aのデータ変換装置の 構成図である。
本実施の形態では、 図 37と比べ、 主変換部 320の F関数部 32 1 が 1 4の F関数から構成される点で異なる。 従って、 図 37の 2— 1 セレクタ 3 1 2が図 49では、 4— 1セレクタ 3 1 6になっている。 4 — 1セレクタ 31 6により選択された 1 6ビットの入力データを使用し て、 F関数部 32 1により主変換部 320は 4サイクルのデータ変換を 行うことで 1つの F関数に対するデータ変換を行う。 他の構成は、 図 3 7と同様である。 実施の形態 1 0.
図 50は、 実施の形態 1 0を示す CAMEL L I Aのデータ変換装置 の構成図である。
図 49に示す実施の形態と比べ、 副変換部 330が 1/2副変換部 9 0を備える点で異なる。 従って、 図 49と比較して、 2— 1セレクタ 2 1 5と 4_ 1セレクタ 2 1 7が不要となる。 他の構成は、 図 49と同様 である。 実施の形態 1 1.
次に、 実施の形態 1 1について説明する。
図 3 9は、 実施の形態 1 1を示す CAMEL L I Aのデータ変換装置 の構成図である。
図 3 7との違いは、 主変換部 320が F関数を一つ持つ F関数部 32 1により構成されている点である。 従って、 主変換部 320は、 F関数 1段の処理を 1サイクルで行うことができるため、 図 37に存在してい た 2— 1セレクタ 312は不要となる。 また、 図 37の 2— 1セレクタ 2 12が不要となり、 8— 1セレクタ 21 3が 4つの定数から一つの定 数を選択する 4一 1セレクタ 2 1 8に変わっている。 実施の形態 1 2.
次に、 実施の形態 1 2について説明する。
図 40は、 実施の形態 12を示す CAME L L I Aのデータ変換装置 の構成図である。
図 40では、 2— 1セレクタ 3 1 3が付加されている。 これは、 副変 換部 3 30が 1Z2副変換部 90によって構成されるために、 2— 1セ レク夕 31 1によって選択されたデータから、 その上位データか下位デ 一夕のいずれかを選択するためである。 本実施の形態では、 主変換部 3 20による処理を 1サイクルで行うため、 図 39と同様に 2— 1セレク タ 3 1 2は不要となる。 また、 図 39の 2— 1セレクタ 2 1 5と 4一 1 セレクタ 2 1 7とが不要となる。 実施の形態 1 3.
次に、 実施の形態 1 3について説明する。
図 41は、 実施の形態 13を示す CAMEL L I Aのデータ変換装置 の構成図である。
図 3 9と比較すると、 主変換部 320が F関数部 32 1を 6回繰り返 すのではなく、 主変換部 320が F関数部 32 1を 6段直列して持ち、 データの変換を行う点で異なる。 従って、 本実施の形態では、 主変換部 320の出力信号が 1つ増えている。 これは、 主変換部 320の 2段目 の F関数の出力データを 3— 1セレクタ H343と 4— 1セレクタ L 3 44とに入力し、 演算レジスタ H 35 1と演算レジス夕 L 352とによ り保持させるためである。 このため、 3— 1セレクタ H 343は入力信 号が 3つとなり、 4一 1セレクタ L 344は入力信号が 4つとなってい る。
また、 4一 1セレクタ 500と 4一 1セレクタ 501を 4組備え、 そ れらから選択された 4つの鍵を主変換部 320に入力するセレクタが増 えている。 また、 鍵スケジュール部 2 1 0の他のセレクタである 4 - 1 セレクタ 502と 4— 1セレクタ 503からも副変換部 33 0と主変換 部 320に鍵が供給される構成となっている。 実施の形態 14.
次に、 実施の形態 14について説明する。
図 42は、 実施の形態 14を示す CAMEL L I Aのデータ変換装置 の構成図である。
図 42は、 図 41と同様に、 6段の F関数を直列に備えた F関数部を 主変換部 320が備える点で、 図 40と異なる。 このため、 図 41の場 合と同様に、 図 40と比べ、 3 _ 1セレクタ H 343と 4一 1セレクタ L 344の入力信号が 1つずつ増え、 また、 4一 1セレクタ 500と 4 一 1セレクタ 50 1を 4組備えることが必要となる。 また、 鍵スケジュ —ル部 2 1 0の他のセレクタである 4一 1セレクタ 502と 3— 1セレ クタ 504からも副変換部 330と主変換部 320に鍵が供給される構 成となっている。 なお、 3 _ 1セレクタ 504には、 3つの入力信号が 入力される。 実施の形態 1 5.
本実施の形態を、 図 43に示す。
図 43は、 実施の形態 1 5を示す CAMEL L I Aのデータ変換装置 の構成図である。 本実施の形態では、 図 41と比べ、 主変換部 320が F関数を 2段備 えた F関数部 321を有する点で異なる。 よって、 図 41と比べ、 3— 1セレクタ H343と 4一 1セレクタ L 344が 2— 1セレクタ H34 1と 3— 1セレクタ L 342に置き換わり、 かつ、 4一 1セレクタ 50 0と 4一 1セレクタ 501を備えた 4組のセレクタが不要となっている
実施の形態 16.
本実施の形態を、 図 44に示す。
図 44は、 実施の形態 1 6を示す CAMEL L I Aのデータ変換装置 の構成図である。
本実施の形態では、 図 42の実施の形態と比べ、 主変換部 320が備 える F関数部 32 1が 2段の F関数からなっている点で異なる。 従って 、 図 42の 3— 1セレクタ H343と 4一 1セレクタ L 344が 2— 1 セレクタ H 341と 3— 1セレクタ L 342に置き換わり、 また、 4_ 1セレクタ 500と 4一 1セレクタ 50 1とからなる 4組のセレクタが 不要となる。 実施の形態 1 7.
図 45は、 実施の形態 1 7を示す CAMEL L I Aのデータ変換装置 の構成図である。
本実施の形態では、 主変換部 320の F関数部 32 1が 3段の F関数 を有している。 従って、 図 41と比較すると、 4一 1セレクタ 500と 4一 1セレクタ 501とからなる 4組のセレクタが不要となり、 その代 わりに、 4一 1セレクタ 505が付加されている。 4— 1セレクタ 50 5によって選択された信号が主変換部 320に入力される。 実施の形態 1 8.
図 46は、 実施の形態 1 8を示す CAME L L I Aのデータ変換装置 の構成図である。
図 45で示す実施の形態と同様に、 主変換部 320の F関数部 32 1 は 3段の F関数を有している。 図 45と比較して異なる部分は、 副変換 部 330が本実施の形態では、 1/2副変換部 90を備えていることで ある。 他の構成は同様である。 実施の形態 1 9.
図 5 1は、 実施の形態 1 9を示す CAME L L I Aのデータ変換装置 の構成図である。
本実施の形態では、 まず、 中間鍵生成部 40の構成が図 37等と比べ て異なっている。 本実施の形態で示す中間鍵生成部 40の構成と図 37 等で示す中間鍵生成部 40の構成は等価であるため、 図 37等の中間鍵 生成部 40は、 図 51で示す中間鍵生成部 40に置き換えることが可能 である。
図 5 1の中間鍵生成部 40の構成について、 説明する。
まず、 2— 1 KLセレクタ 29 1は、 入力された秘密鍵と鍵 KLレジ スタ 240保持された中間鍵 (鍵 KL) とを入力し、 この 2つの入力信 号から 1つの信号を選択し、 鍵 KLレジスタ 240に保持する。 また、 2 - 1 KAセレクタ 292は、 中間鍵生成部 40が生成する出力鍵と鍵 KAレジスタ 250に保持された出力鍵 (鍵 KA) を入力する。 入力さ れた 2つの入力信号から 2— 1 KAセレクタ 292は、 1つの信号を選 択し、 選択された信号を鍵 KAレジス夕 250が保持する。
2— 1セレクタ 227は、 鍵 KLレジスタ 240と鍵 K Aレジスタ 2 50に保持された中間鍵 (鍵 KL) と出力鍵 (鍵 KA) から 1つの鍵を 選択し、 8— 1セレクタ 228に出力する。 8— 1セレクタ 228は、 2— 1セレクタ 227によって選択された鍵を、 図 5 1に示すように、 0, 1 5, 30, 45, 60, 77, 94, 1 1 1の 8つのビット数で 右または左に巡回シフトさせる。 即ち、 巡回シフトピット数が 0の場合 には、 データをシフトしない。 巡回シフトビット数が 1 5の場合には、 右又は左へ 1 5ビットデータを巡回シフトさせる。 他も同様である。 こ のように、 データを巡回シフトさせることにより 8つの信号を生成し、 8つの信号から 8— 1セレクタ 228は 1つの信号を選択し、 出力する 。
このような動作により、 図 3 7の中間鍵生成部 40の機能と同様の機 能を本実施の形態の構成を持つ中間鍵生成部 40が果たすことが可能と なる。 このようにして、 中間鍵生成部 40から出力されたデータのうち 、 上位半数ビットを KLH、 下位半数ビットを KL Lとして、 鍵スケジ ユール部 2 1 0の 2—;!セレクタ 51 0と 2— 1セレクタ 5 1 1に入力 する。 このように、 図 37の 4一 1セレクタ 21 6と 4一 1セレクタ 2 1 7は、 本実施の形態では、 2— 1セレクタ 51 0と 2— 1セレクタ 5 1 1に置き換えることができる。
従って、 図 52に示す中間鍵生成部 40では、 2— 1セレクタが図 3 7で示す中間鍵生成部 40と同様に 1 0個必要であるが、 2— 1セレク 夕 5 10と 2— 1セレクタ 5 1 1とに必要な 2— 1セレクタは 2つのみ 必要であるため、 中間鍵生成部 40と 2— 1セレクタ 5 10と 2— 1セ レクタ 5 1 1とで必要な 2— 1セレクタは、 全体で 12個となる。 図 37に示す中間鍵生成部 40では、 10個の 2 _ 1セレクタが必要 であり、 かつ、 4一 1セレクタ 2 16と 4一 1セレクタ 21 7に 6個の 2一 1セレクタが必要であるため、 中間鍵生成部 40と 4一 1セレクタ 216と 4— 1セレクタ 2 1 7とが備える必要のある 2 - 1セレクタは 、 合計で 1 6個となる。
従って、 図 37に示すデータ変換装置と比較して、 本実施の形態のデ 一夕変換装置は、 全体として 4つの 2— 1セレクタを削減することがで さる。
よって、 本実施の形態では、 セレクタの削減による小型化とセレクタ の削減によるゲート数の減少に伴う低消費電力化を図ることができる。 なお、 本実施の形態で示した中間鍵生成部 40の構成は、 他の全ての 実施の形態における中間鍵生成部 40の構成として用いることが可能で ある。 実施の形態 20.
図 52は、 実施の形態 20を示す CAMEL L I Aのデータ変換装置 の構成図である。
図 5 1と比較し、 本実施の形態では、 副変換部 330が 1Z2副変換 部 90を備える点で異なる。 よって、 図 5 1に示す 2— 1セレクタ 2 1 5と 2— 1セレクタ 5 1 1が、 本実施の形態では不要となる。 他の構成 は、 図 5 1と同様である。
なお、 図 51と図 52で示されるローテートシフトビット数は、 巡回 シフトビット数と同義である。 実施の形態 21.
実施の形態 4の説明の中で示した図 34と図 35とは、 1 28ビット 長の鍵を用いた CAMEL L I Aによる暗号化処理及び復号処理を行う 処理を示していた。
しかし、 全ての実施の形態についてのデータ変換装置の構成図は、 1 28ビット長の鍵だけでなく、 192ビット長の鍵及び 256ビット鍵 の全てに基づいた暗号化/復号処理を行う CAME L L I Aのデータ変 換装置にも適用することができる。
図 53は、 1 92ピット鍵の生成過程を示した図である。
前述した 1 28ピット鍵の場合には、 拡大鍵として 256ビット長の 鍵を生成したが、 入力する秘密鍵が 192ビットの場合及び 256ビッ トの場合には、 拡大鍵は 5 12ビット長となる。
図 53では、 鍵 KLと鍵 KRが中間鍵であり、 鍵 KAと鍵 KBとが出 力鍵である。 更に、 鍵 KL、 鍵 KR、 鍵 KA、 鍵 KBは、 全て 128ビ ットであるので、 これらを合計して拡大鍵 5 12ビットが生成されるこ ととなる。
入力される秘密鍵が 256ビットの場合には、 鍵 KLは、 入力された 秘密鍵の上位半分ビットの 128ビットとなり、 鍵 KRは、 下位 1 28 ピットとなる。
鍵 KLと鍵 KRとは、 排他的論理和をとられ、 図 53に示すように、 主変換部 320の一部に入力される。
図 53は、 秘密鍵が 1 28ビット長の場合の拡大鍵の生成方法を示し た図 2の右側の部分に対応している。
図 5 3の左側の入力鍵から出力鍵 KAを生成する方法は、 鍵 KLと鍵 KRとの排他的論理和が入力鍵となる点を除き、 図 2に示す出力鍵 KA の生成方法と同様である。 図 53の右側の鍵 KRから出力鍵 KBを生成 する過程は、 図 2に存在しない。 従って、 出力鍵 (鍵 KB) の生成方法 について説明する。
入力された鍵が 256ビットの場合には、 下位 1 28ビットを入力鍵 (鍵 KR) とし、 主変換部 320に入力する。 下位 128ビット中の上 位ビットが主変換部 320の 1段目に位置する F関数部 321 aを用い て定数∑ 5により非線形変換され、 出力される。 出力されたデ一夕は、 入力鍵 (鍵 KR) の下位ビットとの間で EXOR回路 322 aにより排 他的論理和がとられ、 F関数部 32 1 bに入力される。 F関数部 3 21 bでは、 定数∑ 6によって再びデ一夕が非線形変換され、 変換後のデー 夕と入力鍵 (鍵 KR) の上位ビットとの間で EXOR回路 322 bによ り排他的論理和がとられる。 EXOR回路 322 bによる演算後の変換 データが出力鍵 (鍵 KB) の上位 64ビットデ一夕としてとして出力さ れ、 EXOR回路 322 aによる演算結果のデータが出力鍵 (鍵 KB) の下位 64ピットデ一夕として出力される。
このようにして、 生成された出力鍵 (鍵 KA及ぴ鍵 KB) と入力鍵 ( 鍵 KL及び鍵 KR) とは、 5 1 2ビットの拡大鍵として中間鍵生成部 4 0から鍵スケジュール部 2 10へ送られ、 鍵スケジュール部 2 10によ つて鍵のスケジュールが行われ、 データの暗号化 復号に用いられる。 秘密鍵が 1 92ビットである場合には、 入力された秘密鍵の上位 12 8ビットが鍵 KLとなる。 また、 入力された秘密鍵の下位 64ビットが 鍵 KRの上位 64ビットとなる。 鍵 KRの下位 64ビットは、 鍵 KRの 上位 64ビット、 即ち、 入力された秘密鍵の下位 64ビットを反転させ たものである。 その他の鍵生成方法については、 秘密鍵が 256ビット の場合と同様であるので説明を省略する。
図 54は、 1 92ビット鍵及び 2 56ビット鍵 CAMEL L I Aの暗 号処理を示す図である。
1 28ビット鍵 CAMEL L I Aの暗号化処理を示す図 34と比較し た場合、 主変換部 320が 3つから 4つに増加し、 副変換部 330が 2 つから 3つに増加している。 従って、 1 92ビット鍵及び 256ビット 鍵の暗号化処理では、 全体で 24段の F関数による暗号処理が行われる 。 他の構成は、 図 34に示す 1 28ビット鍵の場合と同様であるので説 明を省略する。
図 55は、 1 92ピット鍵及び 256ビット鍵の CAME L L I Aの 復号処理を示す図である。
128ビット鍵の CAMEL L I Aの復号処理については図 3 5に示 したが、 図 3 5と比較すると、 主変換部 320が 4つ、 副変換部 330 が 3つと増加しており、 暗号化処理の場合と同様に F関数が 24段とな つている。 その他の構成は、 128ビット鍵の CAMELL I Aの復号 処理と同様であるので説明を省略する。
なお、 1 28ビット鍵及び 192ビット鍵及び 1 56ビット鍵のプロ ック暗号 CAMELL I Aルゴリズムの詳細は、 「128ビットブロッ ク喑号 CAMELL I Aアルゴリズム仕様書」 に記載する。
以上に記載したすべての実施の形態は、 1 28ビット鍵のデータ変換 装置、 1 92ビット鍵のデータ変換装置、 2 56ビット鍵のデータ変換 装置に、 採用することができる。
また、 全ての実施の形態で、 副変換部 330が備える鍵転送及びデー 夕転送機能を用いることが可能である。
すべての実施の形態では、 各構成要素の各動作はお互いに関連してお り、 各構成要素の動作は、 上記に示された動作の関連を考慮しながら、 一連の動作として置き換えることができる。 そして、 このように置き換 えることにより、 方法の発明の実施形態とすることができる。
また、 上記各構成要素の動作を、 各構成要素の処理と置き換えること により、 プログラムの実施の形態とすることができる。
また、 プログラムを、 プログラムを記録したコンピュータ読み取り可 能な記録媒体に記憶させることで、 プログラムに記録したコンピュータ 読取り可能な記録媒体の実施の形態とすることができる。
プログラムの実施の形態及びプログラムに記録したコンピュータ読取 り可能な記録媒体の実施の形態は、 すべてコンピュータで動作可能なプ ログラムにより構成することができる。
プログラムの実施の形態およびプログラムを記録したコンピュータ読 取り可能な記録媒体の実施の形態における各処理はプログラムで実行さ れるが、 このプログラムは、 記録装置に記録されていて、 記録装置から 中央処理装置 (CPU) に読み込まれ、 中央処理装置によって、 各フロ 一チャートが実行されることになる。 なお、 記録装置、 中央処理装置は 図示していない。
また、 各実施の形態のソフトウェアやプログラムは、 ROM (READ ONLY MEMORY) に記憶されたファームウェアで実現されて いても構わない。 あるいは、 ソフトウェアとファームウェアとハードウ エアとの組み合わせで前述したプログラムの各機能を実現しても構わな い。 産業上の利用可能性
セレクタの増加を抑止し、 削減することにより、 装置の小型化を図る ことができる。
また、 回路全体のゲート数を減少させることにより、 低消費電力化を 図ることができる。
また、 動作周波数を向上させることができる。
副変換部は、 入力データまたは入力鍵を転送できる。
装置の構成変更に柔軟に対応できる。
データ正変換部 50かデータ逆変換部 70の一方でデータのデータ変 換をし、 データ正変換部 50かデータ逆変換部 70の他方で入力された データまたは鍵を転送することが出来る。
主変換部からセレクタへのパスが不要となり、 装置の小型化が図れ、 また、 セレクタ数の減少による低消費電力化を図ることが可能となる

Claims

請求の範囲
1 . 鍵とデータとを入力し、 入力した鍵を使用して入力したデ 一夕の暗号化とデータの復号の少なくともいずれかのデータ変換を行う データ変換装置であって、
上記データ変換装置は、 データを変換するデータ攪拌部と入力した鍵 と入力したデータとのいずれかを転送することを指示している転送信号 を制御する制御部を備え、
上記制御部は、 鍵とデータとのいずれかを転送する場合に、 転送信号 を出力し、
上記デ一夕攪拌部は、 入力した鍵を使用してデータを変換することに より少なくともデ一夕の暗号化とデ一夕の復号のいずれかのデータ変換 を行うとともに、 上記制御部によって出力された転送信号を入力した場 合には入力した鍵と入力したデ一夕の少なくともいずれかをデ一夕変換 せずに転送する副変換部を備えることを特徴とするデ一夕変換装置。
2 . 上記データ攪拌部は、 さらに、
データを入力し、 入力したデ一夕を非線形にデータ変換する主変換部 を備え、
上記制御部は、 データを転送する場合には転送信号としてデータ転送 信号を出力し、
上記副変換部は、 上記制御部によって出力されたデータ転送信号と上 記主変換部によってデータ変換されたデータとを入力し、 入力したデー 夕転送信号に従つて入力したデータを転送することを特徴とする請求項 1に記載されたデータ変換装置。
3 . 上記データ変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記制御部は、 鍵を転送する場合には転送信号として鍵転送信号を出 力し、
上記副変換部は、 上記制御部によって出力された鍵転送信号と上記鍵 生成部によって生成された鍵とを入力し、 入力した鍵転送信号に従って 入力した鍵を転送することを特徴とする請求項 1に記載されたデータ変
4 . 上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成する中間鍵生成部 を備え、
上記副変換部は、 上記制御部によって出力された鍵転送信号を入力し た場合には、 入力した鍵転送信号に従って上記中間鍵生成部が生成した 中間鍵を上記主変換部に転送し、
上記主変換部は、 上記副変換部によって転送された中間鍵を変換して 出力することを 1以上繰り返し、
上記副変換部は、 上記主変換部によって出力された中間鍵を変換して 出力することを 1以上繰り返し、
上記主変換部と上記副変換部との少なくともいずれかは、 上記中間鍵 を変換して出力することを 1以上繰り返し、
上記主変換部は、 上記主変換部と上記副変換部との少なくともいずれ かによつて出力された中間鍵を出力鍵として出力し、
上記中間鍵生成部は、 上記主変換部によって出力された出力鍵を入力 することにより、 中間鍵と出力鍵とからなる拡大鍵を生成することを特 徵とする請求項 3に記載されたデータ変換装置。
5. 上記中間鍵生成部は、 入力された 6つの鍵から 1つの鍵を 選択する 6— 1 KLセレクタと 6— 1 KLセレクタから選択された 1つ の鍵を中間鍵として保持する鍵 KLレジス夕とを有し、
上記 6— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 KLレジスタによって保持された中間鍵と、 上記鍵 KLレジスタ によって保持された中間鍵から 4つの異なるシフト数で各々巡回ビット シフトさせた 4つの鍵からなる 6つの鍵を入力し、 入力した 6つの鍵か ら 1つの鍵を選択し、
上記鍵 KLレジスタは、 上記 6 - 1 KLセレクタによって選択された 鍵を保持し、
上記副変換部は、 上記制御部から出力された鍵転送信号を入力した場 合には上記鍵 KLレジスタに保持された鍵を中間鍵として入力し、 入力 した中間鍵を転送することを特徴とする請求項 4に記載されたデ一夕変
6. 上記中間鍵生成部は、 入力された 4つの鍵から 1つの鍵を 選択する 4— 1セレクタと入力された 3つの鍵から 1つの鍵を選択する 3— 1 KLセレクタと 3— 1 KLセレクタから選択された 1つの鍵を中 間鍵として保持する鍵 KLレジスタとを有し、
上記 4_ 1セレクタは、 上記鍵 KLレジスタによって保持された中間 鍵から 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を 入力し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 KLセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 4一 1セレクタによって選択された 1つの鍵と上記鍵 KLレジス夕に保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 K Lレジス夕は、 上記 3 _ 1 K Lセレクタによって選択された 鍵を保持し、
上記副変換部は、 上記制御部から出力された鍵転送信号を入力した場 合には、 上記鍵 K Lレジス夕に保持された鍵を中間鍵として入力し、 入 力した中間鍵を転送することを特徴とする請求項 4に記載されたデータ
7 . 上記鍵生成部は、 さらに、
上記中間鍵生成部によって生成された拡大鍵と所定の定数とを入力し 、 所定の条件に従って入力した拡大鍵と所定の定数とのいずれかを上記 主変換部と上記副変換部の少なくともいずれかへ出力する鍵をスケジュ —ルする鍵スケジュール部を備えることを特徴とする請求項 4に記載さ れたデータ変換装置。
8 . 上記副変換部は、 データの線形によるデータ変換を行うデ 一夕正変換部 (F L ) と上記データ正変換部 (F L ) と逆のデータ変換 を行うデータ逆変換部 (F L—り との少なくともいずれかを有し、 上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 データ変換を行うとともに、 上記制御部が転送信 号を出力した場合には、 上記制御部が出力した転送信号を入力し、 入力 した転送信号にしたがってデータと鍵との少なくともいずれかをデータ 変換せずに転送することを特徴とする請求項 1に記載されたデータ変換
9 . 上記制御部は、 入力された鍵を転送する転送信号として鍵 転送信号である鍵トランスファ信号とマスク信号とを出力し、 上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 上記制御部によって出力された鍵トランスファ信 号とマスク信号とを入力した場合には、 入力した鍵トランスファ信号に よって入力されたデータを無効とするとともに、 入力されたマスク信号 によって入力された鍵を通過させることで鍵を転送することを特徴とす る請求項 8に記載されたデータ変換装置。
1 0 . 上記制御部は、 入力されたデ一夕を転送する転送信号と してデータ転送信号であるデ一タトランスファ信号を出力し、
上記データ正変換部 (F L ) と上記データ逆変換部 (F L—り との少 なくともいずれかは、 上記制御部によって出力されたデ一夕トランスフ ァ信号を入力した場合には、 入力したデータトランスファ信号によって 入力された鍵を無効とするとともに、 入力されたデータを通過させるこ とでデータを転送することを特徴とする請求項 8に記載されたデータ変
1 1 . 上記副変換部は、 データの線形によるデ一夕変換を行う デ一夕正変換と上記デー夕正変換とは逆のデー夕変換を行うデー夕逆変 換とを同一の回路を共用して行う 1 / 2副変換部を有し、 1 / 2副変換 部によつてデータをデ一タ変換するとともに、 上記制御部が転送信号を 出力した場合には、 上記制御部が出力した転送信号を入力し、 入力した 転送信号にしたがって鍵とデ一夕の少なくともいずれかを転送すること を特徴とする請求項 1に記載されたデータ変換装置。
1 2 . 上記副変換部は、 データの線形によるデータ変換を行う データ正変換部 (F L ) と上記データ正変換部 (F L ) と逆のデータ変 換を行うデータ逆変換部 (F L—1) とを有し、 上記データ正変換部 (F L ) と上記デ一夕逆変換部 (F L—り とを直列に配置し、
上記データ正変換部 (F L ) と上記データ逆変換部 (F L— 1) とのい ずれか一方は、 上記データ正変換部 (F L ) と上記データ逆変換部 (F L一1) とのいずれか他方によってデータ変換されたデータか、 転送され た鍵か、 転送されたデータか、 のいずれかを入力し、 入力したデータ変 換されたデータか、 転送された鍵か、 転送されたデータか、 のいずれか を使用してデータ変換か鍵の転送かデータの転送のいずれかを行うこと を特徴とする請求項 1に記載されたデ一夕変換装置。
1 3 . 上記データ変換装置は、 1 2 8ビットか 1 9 2ビットか
2 5 6ビットのいずれかの鍵を入力し、 入力した鍵を使用して入力した データをデータ変換することを特徴とする請求項 1に記載されたデータ
1 4 . 鍵とデータとを入力し、 入力した鍵を使用して少なくと も入力したデータの暗号化とデータの復号のいずれかのデータ変換を行 うデータ変換方法であって、
上記データ変換方法は、 鍵とデータとのいずれかを転送する場合に、 入力した鍵と入力したデータとのいずれかを転送することを指示してい る転送信号を出力し、
入力した鍵を使用してデータを変換することにより少なくともデータ の暗号化とデータの復号のいずれかのデ一夕変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデータの 少なくともいずれかをデータ変換せずに転送することを特徴とするデー 夕変換方法。
1 5 . 鍵とデータとを入力し、 入力した鍵を使用して入力した データの暗号化とデータの復号の少なくともいずれかのデータ変換を行 うデータ変換プログラムであって、
上記データ変換プログラムは、 鍵とデ一夕とのいずれかを転送する場 合に、 入力した鍵と入力したデータとのいずれかを転送することを指示 している転送信号を出力する処理と、
入力した鍵を使用してデータを変換することにより少なくともデータ の暗号化とデータの復号のいずれかのデータ変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデータの 少なくともいずれかをデータ変換せずに転送する処理とをコンピュータ に実行させることを特徴とするデータ変換プログラム。
1 6 . 鍵とデータとを入力し、 入力した鍵を使用して入力した デー夕の暗号化とデータの復号の少なくともいずれかのデータ変換を行 うデータ変換プログラムを記録したコンピュータ読み取り可能な記録媒 体であって、
上記データ変換プログラムを記録したコンピュータ読み取り可能な記 録媒体は、 鍵とデータとのいずれかを転送する場合に、 入力した鍵と入 力したデータとのいずれかを転送することを指示している転送信号を出 力する処理と、
入力した鍵を使用してデータを変換することにより少なくともデータ の暗号化とデータの復号のいずれかのデータ変換を行うとともに、 上記 出力された転送信号を入力した場合には入力した鍵と入力したデータの 少なくともいずれかをデー夕変換せずに転送する処理をコンピュータに 実行させるためのデータ変換プログラムを記録したコンピュータ読み取 り可能な記録媒体。
17. 上記デ一夕変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成し、 生成した中間 鍵から上記主変換部と上記副変換部とを用いて出力鍵を生成する中間鍵 生成部を備えることを特徴とする請求項 1に記載されたデータ変換装置
18. 上記中間鍵生成部は、 6つの鍵を入力し、 入力した 6つ の鍵から 1つの鍵を選択する 6— 1 KLセレクタと、 前記 6 _ 1 KLセ レク夕から選択された 1つの鍵を中間鍵として保持する鍵 KLレジスタ と、 6つの鍵から 1つの鍵を選択する 6— 1 KAセレクタと、 6— 1 K Aセレクタから選択された 1つの鍵を出力鍵として保持する鍵 K Aレジ ス夕と、 を有し、
上記 6— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 K Lレジス夕に保持された中間鍵と、 上記鍵 K Lレジス夕に保持 された中間鍵とから 4つの異なるシフト数で各々巡回ビットシフトさせ た 4つの鍵とからなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの 鍵を選択し、
上記鍵 KLレジスタは、 上記 6— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 6— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記鍵 KAレジス夕に 保持された出力鍵と、 上記鍵 KAレジス夕に保持された出力鍵から 4つ の異なるシフト数で各々巡回ビットシフトさせた 4つの鍵と、 からなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの鍵を選択し、
上記鍵 K Aレジス夕は、 上記 6— 1 K Aセレクタによって選択された 鍵を出力鍵として保持することを特徴とする請求項 1 7に記載されたデ 一夕変換装置。
19. 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1セレクタと、 4つの鍵から 1つの鍵を選択する 4 _ 1セレクタと 、 3つの鍵から 1つの鍵を選択する 3— 1 KLセレクタと、 3— 1 KL セレクタから選択された鍵を中間鍵として保持する鍵 KLレジスタと、 3つの鍵から 1つの鍵を選択する 3— IK Aセレクタと、 3 _ 1 KAセ レク夕から選択された鍵を出力鍵として保持する鍵 K Aレジスタとを有 し、
上記 2— 1セレクタは、 上記鍵 KLレジス夕に保持された中間鍵と、 上記鍵 KAレジスタに保持された出力鍵とから 1つの鍵を選択し、 上記 4一 1セレクタは、 上記 2— 1セレクタによって選択された鍵か ら 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を入力 し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記 4一 1セレクタによって選択された鍵と、 上記鍵 KLレジスタに保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 KLレジスタは、 上記 3— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 3— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記 4— 1セレクタに よって選択された鍵と、 上記鍵 K Aレジスタに保持された出力鍵とから なる 3つの鍵を入力し、 入力した 3つの鍵から 1つの鍵を選択し、 上記鍵 KAレジスタは、 上記 3 _ 1 KAセレクタによって選択された 鍵を出力鍵として保持することを特徴とする請求項 1 7に記載されたデ 一夕変換装置。
20. 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1 KLセレクタと、 2— 1 KLセレクタから選択された鍵を保持す る鍵 KLレジスタと、 2つの鍵から 1つの鍵を選択する 2— 1 KAセレ クタと、 2— 1 K Aセレクタから選択された鍵を保持する鍵 K Aレジス 夕と、 2つの鍵から 1つの鍵を選択する 2— 1セレクタと、 8つの鍵か ら 1つの鍵を選択する 8— 1セレクタとを有し、
上記 2— 1 KLセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 鍵 KLレジスタに保持された鍵とから 1つの鍵を選択し、
上記 2— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と上記鍵 K Aレジス夕に保 持された鍵とから 1つの鍵を選択し、
上記 2— 1セレクタは、 上記 2一 1 KLセレクタと上記 2— 1 KAセ レクタとによって選択された 2つの鍵から 1つの鍵を選択し、
上記 8— 1セレクタは、 上記 2— 1セレクタによって選択された鍵か ら 8つの異なるシフト数で各々巡回ビットシフトさせた 8つの鍵を入力 し、 入力した 8つ鍵から 1つ鍵を選択することを特徴とする請求項 17 に記載されたデータ変換装置。
2 1. データをデータ変換するデータ攪拌部を備えるデータ変 換装置であって、
上記データ攪拌部は、 データを入力し、 入力したデータを非線形にデ 一夕変換する主変換部と入力したデータを線形にデータ変換する副変換 部とを並列に備え、
上記主変換部は、 鍵とデータとを入力し、 入力した鍵を使用して非線 形にデータ変換を行うための関数である F関数に基づいて入力したデ一 タを非線形にデ一夕変換し、 非線形変換したデータを出力し、
上記副変換部は、 鍵とデータとを入力し、 入力した鍵を使用して入力 したデータを線形変換し、 線形変換したデータを出力し、
上記主変換部と上記副変換部とは、 上記主変換部によるデータ変換と 上記副変換部によるデータ変換とを繰り返し行うことにより少なくとも データの暗号化とデータの復号のいずれかのデータ変換を行うことを特 徵とするデータ変換装置。
2 2 . 上記主変換部は、 入力した鍵を使用して入力したデ一タ を F関数に基づいて非線形にデータ変換し、 データ変換したデータを出 力することを複数回繰り返す F関数部を備えることを特徴とする請求項 2 1に記載されたデータ変換装置。
2 3 . 上記 F関数部は、 入力した鍵を使用して入力したデータ を 1 Z 2 XF関数 (X≥0 ) に基づいて非線形にデータ変換し、 データ 変換したデータを出力することを 2 X回繰り返すことにより F関数に基 づいた非線形データ変換を 1回分完了し、 完了したデータを出力するこ とを複数回繰り返すことにより F関数に基づいた非線形データ変換を複 数回行うことを特徴とする請求項 2 2に記載されたデータ変換装置。
2 4 . 上記 F関数部は、 上位データと下位データとに分割され たデータのいずれか一方を入力し、 入力したデータを非線形にデータ変 換し、 デ一夕変換した上位データと下位データのいずれか一方を出力し 、 出力した上位データと下位データのいずれか一方と上位データと下位 データのいずれか他方とを排他的論理和演算し、 排他的論理和演算した デ一夕と、 上記 F関数部に入力されなかった上位デ一夕と下位データと のいずれか他方とを入れ替えて出力することを特徴とする請求項 2 2に 記載されたデータ変換装置。
2 5 . 上記データ変換装置は、 さらに、
鍵を生成する鍵生成部を備え、
上記鍵生成部は、 さらに、
秘密鍵を入力し、 入力した秘密鍵から中間鍵を生成し、 生成した中間 鍵から上記主変換部と上記副変換部とを用いて出力鍵を生成する中間鍵 生成部を備えることを特徴とする請求項 2 1に記載されたデータ変換装
2 6 . 上記鍵生成部は、 さらに、
上記中間鍵生成部によって生成された中間鍵と出力鍵と所定の定数と を入力し、 入力した中間鍵と出力鍵と所定の定数とから所定の条件に従 つて上記主変換部と上記副変換部とが行うデータ変換に用いる鍵をスケ ジュールする鍵スケジュール部を備え、
上記副変換部と上記主変換部とは、 上記鍵スケジュール部によってス ケジュールされた鍵を各々入力し、 各々入力した鍵に基づいて各々に入 力されたデータのデ一夕変換を行うことを特徴とする請求項 2 5に記載 されたデータ変換装置。
27. 上記中間鍵生成部は、 6つの鍵を入力し、 入力した 6つ の鍵から 1つの鍵を選択する 6 - 1 KLセレクタと、 前記 6 _ 1 KLセ レク夕から選択された 1つの鍵を中間鍵として保持する鍵 KLレジスタ と、 6つの鍵から 1つの鍵を選択する 6— 1 KAセレクタと、 6— 1 K Aセレクタから選択された 1つの鍵を出力鍵として保持する鍵 K Aレジ ス夕と、 を有し、
上記 6— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記鍵 K Lレジス夕に保持された中間鍵と、 上記鍵 K Lレジスタに保持 された中間鍵とから 4つの異なるシフト数で各々巡回ビットシフトさせ た 4つの鍵とからなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの 鍵を選択し、
上記鍵 KLレジスタは、 上記 6— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 6— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記鍵 KAレジス夕に 保持された出力鍵と、 上記鍵 KAレジスタに保持された出力鍵から 4つ の異なるシフト数で各々巡回ビットシフトさせた 4つの鍵と、 からなる 6つの鍵を入力し、 入力した 6つの鍵から 1つの鍵を選択し、
上記鍵 K Aレジス夕は、 上記 6— 1 KAセレクタによって選択された 鍵を出力鍵として保持することを特徴とする請求項 25に記載されたデ 一夕変換装置。
28. 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1セレクタと、 4つの鍵から 1つの鍵を選択する 4— 1セレクタと 、 3つの鍵から 1つの鍵を選択する 3— 1 KLセレクタと、 3— 1 KL セレクタから選択された鍵を中間鍵として保持する鍵 KLレジス夕と、 3つの鍵から 1つの鍵を選択する 3— 1 KAセレクタと、 3 _ 1 KAセ レクタから選択された鍵を出力鍵として保持する鍵 K Aレジス夕とを有 し、
上記 2— 1セレクタは、 上記鍵 KLレジス夕に保持された中間鍵と、 上記鍵 KAレジス夕に保持された出力鍵とから 1つの鍵を選択し、 上記 4一 1セレクタは、 上記 2— 1セレクタによって選択された鍵か らから 4つの異なるシフト数で各々巡回ビットシフトさせた 4つの鍵を 入力し、 入力した 4つの鍵から 1つの鍵を選択し、
上記 3— 1 KLセレクタは、 秘密鍵を入力し、 入力された秘密鍵と、 上記 4_ 1セレクタによって選択された鍵と、 上記鍵 KLレジス夕に保 持された中間鍵とからなる 3つの鍵を入力し、 入力した 3つの鍵から 1 つの鍵を選択し、
上記鍵 KLレジスタは、 上記 3— 1 KLセレクタによって選択された 鍵を中間鍵として保持し、
上記 3— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と、 上記 4一 1セレクタに よって選択された鍵と、 上記鍵 K Aレジス夕に保持された出力鍵とから なる 3つの鍵を入力し、 入力した 3つの鍵から 1つの鍵を選択し、 上記鍵 K Aレジスタは、 上記 3— 1 K Aセレクタによって選択された 鍵を出力鍵として保持することを特徴とする請求項 25に記載されたデ 一夕変換装置。
2 9. 上記中間鍵生成部は、 2つの鍵から 1つの鍵を選択する 2— 1 KLセレクタと、 2— 1 KLセレクタから選択された鍵を保持す る鍵 KLレジスタと、 2つの鍵から 1つの鍵を選択する 2— 1 KAセレ クタと、 2— 1 KAセレクタから選択された鍵を保持する鍵 KAレジス 夕と、 2つの鍵から 1つの鍵を選択する 2— 1セレクタと、 8つの鍵か ら 1つの鍵を選択する 8— 1セレクタとを有し、
上記 2— 1 KLセレクタは、 秘密鍵を入力し、 入力した秘密鍵と上記 鍵 KLレジス夕に保持された鍵とから 1つの鍵を選択し、
上記 2— 1 KAセレクタは、 上記主変換部と上記副変換部とを用いて 生成された出力鍵を入力し、 入力した出力鍵と上記鍵 K Aレジス夕に保 持された鍵とから 1つの鍵を選択し、
上記 2— 1セレクタは、 上記 2 _ 1 KLセレクタと上記 2— 1 KAセ レクタとによって選択された 2つの鍵から 1つの鍵を選択し、
上記 8— 1セレクタは、 上記 2 _ 1セレクタによって選択された鍵か らから 8つの異なるシフト数で各々巡回ビットシフトさせた 8つの鍵を 入力し、 入力した 8つ鍵から 1つ鍵を選択することを特徴とする請求項 25に記載されたデータ変換装置。
30. 上記副変換部は、 データを線形変換するデータ正変換部 (FL) と上記データ正変換部 (FL) の変換とは逆の変換をするデー 夕逆変換部 (FL— ^ との少なくともいずれかを有し、 上記データ正 変換部 (FL) と上記データ逆変換部 (FL—1) との少なくともいずれ かによつてデータをデータ変換することを特徴とする請求項 2 1に記載 されたデータ変換装置。
3 1. 上記副変換部は、 データを線形変換するデータ正変換と 上記データ正変換とは逆の変換をするデータ逆変換とを同一の回路を共 用して行う 1Z2副変換部を有し、 1/2副変換部によってデータをデ 一夕変換することを特徴とする請求項 2 1に記載されたデータ変換装置
3 2 . 上記データ変換装置は、 1 2 8ビットか 1 9 2ビットか 2 5 6ビットのいずれかの鍵を入力し、 入力した鍵を使用して入力した データの暗号化とデータの復号のいずれかのデータ変換することを特徴 とする請求項 2 1に記載されたデータ変換装置。
3 3 . データを線形変換にデータ変換する副変換部に並列に配 置され、 鍵とデータとを入力し、 入力した鍵を使用して非線形にデータ 変換を行うための関数である F関数に基づき、 非線形データ変換する主 変換部によって、 入力したデータを非線形にデータ変換し、 非線形変換 したデータを出力することと、
鍵とデータとを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によつて線形変換し、 線形変 換したデータを出力することを、 繰り返し行うことにより少なくともデ 一夕の暗号化とデータの復号のいずれかのデータ変換を行うことを特徴 とするデータ変換方法。
3 4 . データを線形変換にデ一夕変換する副変換部に並列に配 置され、 鍵とデータとを入力し、 入力した鍵を使用して非線形にデータ 変換を行うための関数である F関数に基づき、 非線形変換にデ一夕変換 する主変換部によって、 入力したデータを非線形にデ一夕変換し、 非線 形変換したデータを出力する処理と、
鍵とデ一夕とを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によって線形変換し、 線形変 換したデータを出力する処理とを、 繰り返し行うことにより少なくとも データの暗号化とデータの復号のいずれかのデータ変換を行う処理をコ ンピュー夕に実行させることを特徴とするデータ変換プログラム。
3 5 . データを線形変換にデータ変換する副変換部に並列に配 置され、 鍵とデータとを入力し、 入力した鍵を使用して非線形にデ一夕 変換を行うための関数である F関数に基づき、 非線形にデータ変換する 主変換部によって、 入力したデータを非線形にデータ変換し、 非線形変 換したデータを出力する処理と、
鍵とデータとを入力し、 入力した鍵を使用して入力したデータを上記 主変換部に並列に配置された上記副変換部によって線形変換し、 線形変 換したデータを出力する処理とを、 繰り返し行うことにより少なくとも デー夕の暗号化とデータの復号のいずれかのデー夕変換を行う処理をコ ンピュ一夕に実行させるためのデータ変換プログラムを記録したコンビ ユー夕読み取り可能な記録媒体。
PCT/JP2003/002689 2002-05-23 2003-03-07 Dispositif et procede de conversion de donnees WO2003100751A1 (fr)

Priority Applications (9)

Application Number Priority Date Filing Date Title
EP03755263.5A EP1507247B1 (en) 2002-05-23 2003-03-07 Data conversion apparatus and data conversion method
ES03755263.5T ES2565816T3 (es) 2002-05-23 2003-03-07 Aparato de conversión de datos y método de conversión de datos
US10/514,637 US7639800B2 (en) 2002-05-23 2003-03-07 Data conversion device and data conversion method
CN038088339A CN1647139B (zh) 2002-05-23 2003-03-07 数据变换装置和数据变换方法
CA2485943A CA2485943C (en) 2002-05-23 2003-03-07 Data conversion apparatus and data conversion method
AU2003211779A AU2003211779A1 (en) 2002-05-23 2003-03-07 Data conversion device and data conversion method
DK03755263.5T DK1507247T3 (en) 2002-05-23 2003-03-07 Data converter and data conversion method
KR1020047018842A KR100806468B1 (ko) 2002-05-23 2003-03-07 데이터 변환 장치, 데이터 변환 방법 및 데이터 변환 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
NO20045596A NO337611B1 (no) 2002-05-23 2004-12-22 Fremgangsmåte og anordning for omforming av data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002148786A JP4128395B2 (ja) 2002-05-23 2002-05-23 データ変換装置
JP2002-148786 2002-05-23

Publications (1)

Publication Number Publication Date
WO2003100751A1 true WO2003100751A1 (fr) 2003-12-04

Family

ID=29561194

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/002689 WO2003100751A1 (fr) 2002-05-23 2003-03-07 Dispositif et procede de conversion de donnees

Country Status (12)

Country Link
US (1) US7639800B2 (ja)
EP (1) EP1507247B1 (ja)
JP (1) JP4128395B2 (ja)
KR (1) KR100806468B1 (ja)
CN (1) CN1647139B (ja)
AU (1) AU2003211779A1 (ja)
CA (1) CA2485943C (ja)
DK (1) DK1507247T3 (ja)
ES (1) ES2565816T3 (ja)
NO (1) NO337611B1 (ja)
TW (1) TWI229299B (ja)
WO (1) WO2003100751A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335985B (zh) * 2007-06-29 2011-05-11 华为技术有限公司 安全快速切换的方法及系统
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7760874B2 (en) 2004-07-14 2010-07-20 Broadcom Corporation Method and system for implementing FI function in KASUMI algorithm for accelerating cryptography in GSM/GPRS/EDGE compliant handsets
US7623658B2 (en) * 2004-08-23 2009-11-24 Broadcom Corporation Method and system for implementing the A5/3 encryption algorithm for GSM and EDGE compliant handsets
US7627115B2 (en) * 2004-08-23 2009-12-01 Broadcom Corporation Method and system for implementing the GEA3 encryption algorithm for GPRS compliant handsets
US7627113B2 (en) * 2005-02-08 2009-12-01 Broadcom Corporation Method and system for hardware accelerator for implementing f8 confidentiality algorithm in WCDMA compliant handsets
WO2006098015A1 (ja) 2005-03-16 2006-09-21 Mitsubishi Denki Kabushiki Kaisha データ変換装置及びデータ変換方法
JP2007199156A (ja) * 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP4790541B2 (ja) * 2006-08-25 2011-10-12 日本電信電話株式会社 ハッシュ関数回路及びその演算方法
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5223245B2 (ja) * 2007-06-25 2013-06-26 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8619976B2 (en) 2007-12-13 2013-12-31 Nec Corporation Encryption method, decryption method, device, and program
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US9729316B2 (en) 2008-02-27 2017-08-08 International Business Machines Corporation Unified broadcast encryption system
JP5200949B2 (ja) * 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
JP5605197B2 (ja) 2010-12-09 2014-10-15 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
WO2012141189A1 (ja) * 2011-04-11 2012-10-18 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US10148430B1 (en) * 2013-04-17 2018-12-04 Amazon Technologies, Inc Revocable stream ciphers for upgrading encryption in a shared resource environment
US9684580B2 (en) * 2013-11-05 2017-06-20 Ixia Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks
JP2015130580A (ja) * 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
JP6187624B1 (ja) * 2016-03-17 2017-08-30 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
US10404459B2 (en) * 2017-02-09 2019-09-03 Intel Corporation Technologies for elliptic curve cryptography hardware acceleration
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10698839B2 (en) * 2017-12-12 2020-06-30 Western Digital Technologies, Inc. Seed scrambling
US10635400B2 (en) 2017-12-12 2020-04-28 Western Digital Technologies, Inc. Seed generation
CN112805769B (zh) * 2018-10-04 2023-11-07 日本电信电话株式会社 秘密s型函数计算系统、装置、方法及记录介质
US11240022B1 (en) 2019-04-11 2022-02-01 Wells Fargo Bank, N.A. Passive encryption rotation keys
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
CN114282469B (zh) * 2021-12-24 2024-08-13 中国人民解放军国防科技大学 一种Camellia算法P函数的硬件电路及优化方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10172298A (ja) * 1996-12-05 1998-06-26 Mitsubishi Electric Corp 半導体記憶装置
GB2321728B (en) * 1997-01-30 2001-12-19 Motorola Inc Apparatus and method for accessing secured data stored in a portable data carrier
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
SG124294A1 (en) * 2000-03-09 2006-08-30 Mitsubishi Electric Corp Block cipher apparatus using auxiliary tranformation
JP4457474B2 (ja) * 2000-04-04 2010-04-28 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
DK1376922T3 (da) * 2001-04-03 2014-10-27 Mitsubishi Electric Corp Krypteringsindretning
JP2003067340A (ja) * 2001-08-28 2003-03-07 Mitsubishi Electric Corp 認証の選択システム、認証システム
US7986820B2 (en) * 2001-10-19 2011-07-26 Mitsubishi Electric Research Laboratories, Inc. Method for comparing features extracted from images of fingerprints

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
AKASHI SATOH ET AL.: "128 Bit block ango Camellia no kogata hardware architecture", 2002 NEN ANGO TO JOHO SECURITY SYMPOSIUM YOKOSHU, vol. 2, 29 January 2002 (2002-01-29), pages 595 - 598, XP002970445 *
AKASHI SATOH ET AL.: "PARALLEL AND DISTRIBUTED PROCESSING AND APPLICATIONS: SECOND INTERNATIONAL SYMPOSIUM, WA 2004 PROCEEDINGS, HONG KONG, CHINA", 1 January 2001, SPRINGER, article "A Compact Rijndael Hardware Architecture with S-Box Optimization", pages: 239 - 254
AOKI K ET AL.: "THE 128-BIT BLOCK CIPHER CAMELLIA", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, ENGINEERING SCIENCES SOCIETY, TOKYO, JP, vol. E85-A, no. 1, 1 January 2002 (2002-01-01), pages 11 - 24
KAZUMARO AOKI ET AL.: "128 Bit block ango Camellia no jisso hyoka", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, GIJUTSU KENKYU HOKOKU (ISEC 2000-68 TO 78), vol. 100, no. 324, 22 September 2000 (2000-09-22), pages 131 - 138, XP002942211 *
See also references of EP1507247A4
TETSUYA ICHIKAWA, TOMOMI KASUYA, MITSURU MATSUI: "128 Bit block ango Camellia no kogata hardware jisso ni okeru ichihoho", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, GIJUTSU KENKYU HOKOKU (SST 2001-160 TO 217), vol. 101, no. 730, 12 March 2002 (2002-03-12), pages 121 - 126, XP002970446 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335985B (zh) * 2007-06-29 2011-05-11 华为技术有限公司 安全快速切换的方法及系统
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Also Published As

Publication number Publication date
DK1507247T3 (en) 2016-03-29
JP4128395B2 (ja) 2008-07-30
JP2003345244A (ja) 2003-12-03
US20050226407A1 (en) 2005-10-13
US7639800B2 (en) 2009-12-29
KR20050004187A (ko) 2005-01-12
EP1507247B1 (en) 2016-02-24
NO337611B1 (no) 2016-05-09
CN1647139B (zh) 2011-09-14
NO20045596L (no) 2005-02-18
CA2485943A1 (en) 2003-12-04
AU2003211779A1 (en) 2003-12-12
KR100806468B1 (ko) 2008-02-21
CN1647139A (zh) 2005-07-27
EP1507247A4 (en) 2011-01-19
EP1507247A1 (en) 2005-02-16
ES2565816T3 (es) 2016-04-07
TWI229299B (en) 2005-03-11
CA2485943C (en) 2011-04-19
TW200307226A (en) 2003-12-01

Similar Documents

Publication Publication Date Title
JP4128395B2 (ja) データ変換装置
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
KR100435052B1 (ko) 암호화장치
JP2007041620A5 (ja)
JP4025722B2 (ja) データ暗号化のための方法および装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
JP5605197B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
RU2359415C2 (ru) Способ криптографического преобразования блоков цифровых данных
KR20160108861A (ko) 경량 블록암호 lea 기반 암호화 및 복호화 장치
JP5929757B2 (ja) 暗号処理装置および暗号処理方法
JP3748184B2 (ja) 秘話通信装置
KR20010107089A (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JPWO2002058037A1 (ja) 暗号回路
JPH0385835A (ja) 巡回符号理論を用いた暗号化方式
JPH10301489A (ja) データ変換装置
JP2009003312A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 20038088339

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2485943

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 10514637

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2003755263

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020047018842

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020047018842

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2003755263

Country of ref document: EP