WO1998054687A1 - Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique - Google Patents

Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique Download PDF

Info

Publication number
WO1998054687A1
WO1998054687A1 PCT/JP1998/001898 JP9801898W WO9854687A1 WO 1998054687 A1 WO1998054687 A1 WO 1998054687A1 JP 9801898 W JP9801898 W JP 9801898W WO 9854687 A1 WO9854687 A1 WO 9854687A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
circuit
processing
register
exclusive
Prior art date
Application number
PCT/JP1998/001898
Other languages
English (en)
French (fr)
Inventor
Mitsuru Matsui
Toshio Tokita
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 US09/214,271 priority Critical patent/US6466669B1/en
Priority to CA002261161A priority patent/CA2261161C/en
Priority to AU70811/98A priority patent/AU717746B2/en
Priority to DE69840014T priority patent/DE69840014D1/de
Priority to EP98917672A priority patent/EP0923062B1/en
Publication of WO1998054687A1 publication Critical patent/WO1998054687A1/ja
Priority to NO19990429A priority patent/NO326299B1/no
Priority to HK00100190A priority patent/HK1021585A1/xx

Links

Classifications

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

Definitions

  • the present invention relates to a cryptographic processing device, and particularly to a small-sized cryptographic processing device used for an IC (Integrated Circuit) card and the like.
  • DES Detailed processing contents of DES are described in, for example, Hans Eber 1 "AH igh—speed DE SI mp le mentationforetwork Ap plications, Ad vancesin Crypto 1 ogy -CRYPTO '92, Lecture N otesinc omp uter Science 740, S pringer — described in Verlag.
  • FIG. 18 is a flowchart of the DES encryption algorithm.
  • reference numerals 1001 to 1004 denote operations by a function F for performing data conversion processing, and 101 1 to 11014 denote exclusive OR operations for each bit.
  • the initial transposition and final transposition are omitted.
  • Input data 1 050 of 2 X n bits (2 X 3 2 bits in the case of DES) is divided into two n-bit data 1051, 1052.
  • n bits The data 1051 is output as it is as n-bit data 1053, and is input to the function F1001 for data conversion.
  • the data output from the function F 1001 is subjected to an exclusive OR operation for each bit by the exclusive OR operation 1 0 1 1 and the other n bit data 1 0 5 2, and the n bit data 1 0 54 is output.
  • FIG. 19 is an example of a signal processing device that realizes data conversion processing equivalent to the DES encryption flowchart shown in FIG.
  • 1101 and 1102 are registers A and B for holding data
  • 1103 and 1104 are selectors A and B for selecting data
  • 1105 is data for Function F operation circuit that calculates function F as conversion
  • 1106 is exclusive OR circuit
  • 1202 are 11-bit input data A
  • B, 1203, 1204 are n-bit output data A and B.
  • the input data of 2 X n bits (2 X 32 bits in the case of DES) is divided into two n-bit input data A 1201 and input data B 1202.
  • the two input data are selected by the selector A 1103 and the selector B 1104, respectively, and are held in the register A 1101 and the register B 1102.
  • the data held in the register A1101 is fed back to the selector A1103 and the selector B1104, and is input to the function F operation circuit 1105 to be converted.
  • the data held in the register B1102 and the exclusive OR circuit 1106 Exclusive OR operation is performed. This result is fed back to the selector A 1103 and the selector B 110.
  • the result of the exclusive OR circuit 1106 is selected in the selector A 1103, and the data held in the register A 1101 is selected in the selector B. It is newly held in 1001 and register B1002.
  • the functions F 1 0 2, 1 0 0 3, 1 0 4 4 in FIG. 18 and the exclusive OR operation 1 0 1 2, 1 0 1 3, 1 0 1 4 as many times as necessary The processing is looped, and output data A 1 203 and output data B 1 204 are output. In the case of DES, it is 16 times.
  • the present invention has been made to solve the above problems, and has a configuration in which a function F having a similar configuration is repeatedly processed, and the function F has a repetitive structure of a smaller processing element therein. If you have The purpose of the present invention is to obtain a cryptographic processing device that can efficiently configure a processing device and reduce the circuit scale and power consumption. Disclosure of the invention
  • the cryptographic processing device is a cryptographic processing device that performs a first data conversion process on input data a plurality of times by a first calculation circuit, wherein the first calculation circuit further includes a second data conversion process.
  • the loop processing circuit forms a processing loop by a second arithmetic circuit, a data holding circuit, and a selection circuit,
  • the second arithmetic circuit performs the second data conversion process, and the data holding circuit temporarily holds the data subjected to the second data conversion process,
  • the selection circuit selects whether to end or continue the second data conversion processing by the loop processing circuit.
  • the second arithmetic circuit includes:
  • a data dividing circuit for dividing the data input to the second arithmetic circuit into first divided data and second divided data
  • a third arithmetic circuit that converts the first divided data, an exclusive OR circuit that performs an exclusive OR operation on the output data of the third arithmetic circuit and the second divided data for each bit,
  • a data combining circuit for combining output data of the exclusive OR circuit and the second divided data.
  • the selection circuit inputs data to be subjected to a first data conversion process by a first arithmetic circuit and data to be held by a data holding circuit, and when the data holding circuit continues processing by the loop processing circuit, the data holding circuit Data to keep Is selected.
  • the selection circuit selects data on which a first data conversion process is performed by a first arithmetic circuit.
  • the cryptographic processing device further comprises:
  • a register A and a register B alternately holding data for performing the first data conversion processing by the first arithmetic circuit
  • Two exclusive-OR circuits for performing an exclusive-OR operation for each bit of the data subjected to the first data conversion processing in the first arithmetic circuit and the data held in the register A and the register B; ,
  • Register A selects either the input data, the data on which the first data conversion processing has been performed by the first operation unit, or the data on which the exclusive OR operation has been performed by the exclusive OR circuit. And selector B and selector B held in register B
  • the selection circuit alternately selects a register A and a register B and starts processing by the processing loop circuit.
  • the first arithmetic circuit further performs, on the data subjected to the second data conversion processing by the processing loop unit, data conversion different from the second data conversion processing, and outputs the data. .
  • the second arithmetic circuit includes:
  • the cryptographic processing device It is characterized by having.
  • the cryptographic processing device
  • a function operation unit that performs data conversion on the data output from the selection circuit
  • a selector for inputting the data calculated by the function calculation unit and the data output from the selection circuit, and outputting one of the data.
  • the cryptographic processing method is the cryptographic processing method of performing the first data conversion process on input data a plurality of times in the first arithmetic step, wherein the first arithmetic step further includes a second data conversion process. It has a loop processing step that performs the conversion process multiple times,
  • the loop processing step includes:
  • the second calculation step includes:
  • An IC card is an integrated circuit (IC) card for communicating data with a reader / writer. It has a data receiving circuit for receiving the data from the reader / writer, a data transmitting circuit for transmitting the data to the reader / writer, and a cryptographic processing device of the present invention for encrypting the data. .
  • IC integrated circuit
  • An IC card according to the present invention is an IC card for performing data communication with a reader / writer
  • It has a data receiving circuit for receiving the data from the reader / writer, a data transmitting circuit for transmitting the data to the reader / writer, and a cryptographic processing device of the present invention for encrypting the data.
  • FIG. 1 is a diagram showing an encryption algorithm according to Embodiment 1 of the present invention.
  • FIG. 2 is a diagram showing a configuration of a function used for the encryption algorithm according to the first embodiment of the present invention.
  • FIG. 3 is a block diagram showing a basic configuration of the cryptographic processing device according to Embodiment 1 of the present invention.
  • FIG. 4 is a flowchart showing an example of the basic operation of the cryptographic processing device according to Embodiment 1 of the present invention.
  • FIG. 5 is a flowchart showing an example of the basic operation of the cryptographic processing device according to Embodiment 1 of the present invention.
  • FIG. 6 is a diagram showing a configuration of a function used for the encryption algorithm according to the first embodiment of the present invention.
  • FIG. 7 is a diagram showing an encryption algorithm according to Embodiment 1 of the present invention.
  • FIG. 8 is a diagram showing a configuration of a function used for the encryption algorithm according to Embodiment 1 of the present invention.
  • FIG. 9 is a block diagram showing a configuration of the second arithmetic circuit according to Embodiment 1 of the present invention.
  • FIG. 10 is a diagram showing an encryption algorithm according to Embodiment 2 of the present invention.
  • FIG. 11 is a diagram showing a configuration of a function used for an encryption algorithm according to Embodiment 2 of the present invention.
  • FIG. 12 is a block diagram showing a basic configuration of a cryptographic processing device according to Embodiment 2 of the present invention.
  • FIG. 13 is a flowchart showing an example of the basic operation of the cryptographic processing device according to Embodiment 2 of the present invention.
  • FIG. 14 is a flowchart showing an example of the basic operation of the cryptographic processing device according to Embodiment 2 of the present invention.
  • FIG. 15 is a flowchart showing an example of the basic operation of the cryptographic processing device according to Embodiment 2 of the present invention.
  • FIG. 16 is a block diagram showing a basic configuration of a communication system according to Embodiment 3 of the present invention.
  • FIG. 17 is a block diagram showing a basic configuration of an IC according to Embodiment 3 of the present invention.
  • FIG. 18 is a diagram illustrating an encryption algorithm according to the related art.
  • FIG. 19 is a block diagram illustrating a basic configuration of a signal processing device according to the related art. BEST MODE FOR CARRYING OUT THE INVENTION
  • FIG. 1 shows a flowchart of a cryptographic processing algorithm in a cryptographic processing apparatus according to an embodiment of the present invention.
  • 101 to 104 are operations by a function F for performing data conversion processing
  • 111 to 114 are exclusive OR operations for each bit.
  • Figure 2 shows the structure of the operation using function F.
  • the three functions f f
  • n-bit input data 150 is divided into upper and lower two n-bit data 151, 152.
  • the n-bit data 151 is output as it is as n-bit data 153, and data is converted by the function F101.
  • the data output from the function F101 is exclusive ORed with the other n-bit data 1522 and the exclusive OR operation is performed for each bit in the exclusive OR operation 1111, and the n-bit data 154 is output. Is done.
  • the function F after the operation by the functions f201 to 203 is repeated three times, the operation by the function g211 is performed and output.
  • the operation is repeated up to the function F 102, 103, 104, and the exclusive OR operation 112, 113, 114, and n-bit data 150 5, 15 6 Is output.
  • the two n-bit data are combined, and 2 n-bit data 157 is output.
  • Fig. 3 shows a schematic configuration diagram of an encryption processor that realizes the data conversion algorithm described in Figs.
  • reference numerals 301, 302, and 303 denote registers A, B, and C for holding data
  • 31, 11, 31, and 31 denote selectors A, B, and C for selecting data.
  • 321 and 322 are exclusive OR circuits for each bit
  • 323 is a function f operation circuit which is one of the components for performing the function F
  • 324 is a component for performing the operation of the function F This is a function g operation circuit that is one of the above.
  • the first arithmetic circuit 100 is configured by the register C 303, the selector C 3 13, the function f arithmetic circuit 323, and the function g arithmetic circuit 324.
  • the loop processing circuit 200 is configured by the register C303, the selector C313, and the function f operation circuit 323.
  • FIGS. 4 and 5 are flowcharts illustrating the operation of the circuit of FIG. The operation will be described with reference to FIGS.
  • the calculation by the function F is performed by performing the processing by the function f calculation circuit 3 2 3 times and the processing by the function g calculation circuit 324 once.
  • the first-stage data conversion process in FIG. 1 will be described.
  • the 2 X n-bit input data is divided into two n-bit data and input as input data A 351 and input data B 352.
  • the input data is selected by the selector A311 and the selector B312, and held in the register A301 and the register B302, respectively (step 4_1).
  • step 412 it is determined whether the process is an odd-numbered stage or an even-numbered stage (steps 412), and the data held in the register A 301 is selected (step 412). 1-4)
  • the selected data is subjected to data conversion by the function f operation circuit 3 23 (step 4-16).
  • the data output from the function f operation circuit 323 is held in the register C303 (steps 417). This completes the first processing by the function f operation circuit. Complete.
  • the selector C 3 13 the data held in the register C 3 0 3 is selected (step 4-8), and the selected data is converted by the function f operation circuit 3 2 3 (step 4). One 6).
  • the data output from the function f operation circuit 323 is held in the register C303 (step 4-7). This completes the second processing by the function f operation circuit.
  • the data held in the register C303 is selected in the selector C313 (step 4-8). Then, the selected data is subjected to data conversion by the function f operation circuit 323 (steps 416), and the output data is held in the register C303 (steps 4-7). Thus, the third processing by the function f operation circuit 3 2 3 is completed.
  • step 4-9 the data held in the register C303 is selected by the selector C313 (step 4-9).
  • the selected data is converted by the function g operation circuit 324 and output (step 4-10). This completes the operation using the function F.
  • step 4-11 it is determined whether the process is an odd-numbered stage or an even-numbered stage (steps 4-11), and the data output from the function g arithmetic circuit 324 is fed back and held in the register B302.
  • the exclusive OR is calculated in the exclusive OR circuit 3 2 2 with the data thus obtained (steps 4 1 to 4 4).
  • the output data is selected by the selector B312, and the selected data is held in the register B302 (step 4-15).
  • step 4-2 It is determined that the process is an even-numbered process (step 4-2), and the selector
  • the data held in register B302 is selected (Steps 4-1-3).
  • the selected data is subjected to data conversion by the function f operation circuit 323 (step 416), and the output data is held in the register C303 (step 407).
  • the first processing by the function f operation circuit is completed.
  • the selector C 3 13 the data held in the register C 3 ⁇ 3 is selected (step 4-8), and the selected data is converted by the function f arithmetic circuit 3 2 3 (step 4). Step 6), the output data is held in the register C303 (step 417). This completes the second processing by the function f operation circuit 3 2 3.
  • the data held in the register C303 is selected by the selector C313 (steps 418).
  • the selected data is subjected to data conversion by the function f operation circuit 323 (steps 416), and the output data is held in the register C303 (steps 4-7).
  • the third processing by the function f operation circuit 3 2 3 is completed.
  • Step 419 the data held in the register C303 is selected by the selector C313 (steps 419), and the selected data is converted by the function g arithmetic circuit 324. (Step 4-10). This completes the operation using the function F.
  • step 411 it is determined that the process is an even-numbered process (step 411), and the data output from the function g arithmetic circuit 324 is fed back to the data held in the register A301.
  • An exclusive OR operation is performed in the exclusive OR circuit 321 (step 411).
  • the output data is selected by the selector A311, and the selected data is held in the register A301 (steps 4-13).
  • the data conversion processing of the second stage is completed.
  • the data held in the registers A301 and B302 are output as the output data A353 and the output data B354 (step 4—19).
  • the register C303 and the selector C3 are identical to the register C303 and the selector C3
  • one function f operation circuit 3 2 3 as a component is used repeatedly, so it is sufficient to have one function f operation circuit 3 2 3 and three function f operation circuits 3 2 3 Since there is no need to have it, the circuit scale can be reduced.
  • the function F (function function g) used for the data conversion in the cryptographic processing has a very complicated configuration because a function having a high encryption strength is used. The effect of the reduction is extremely large.
  • the register A301, the register B302, the register C303, the selector A311, the selector B3112, and the selector C313 need to operate at all times. However, since it is possible to realize the processing if it operates as needed, it is possible to reduce the power consumption of the device.
  • the present invention when used as a small device such as an IC card, a particularly great effect can be obtained.
  • the present invention can be used not only for IC cards but also for IC card readers and writers.
  • the function F is not limited to the above configuration.
  • the function F is composed of only the repetition of the function f as shown in FIG. 6, the function g is not necessary in FIG. 3, and the selector C 3 13 is selected as shown in FIG. What is necessary is just to feed back the data obtained.
  • the function f operation circuit 323 is configured by m (m is one or more) functions in an arbitrary order, as shown in FIG.
  • the above-mentioned m functions are arranged in parallel, and the data from the selector C 3 13 is input to each of them, and their outputs are input to m inputs.
  • One input is used as the input of the selector that selects the output, one suitable output data is selected and held in the register C303, and this is repeated by the above-mentioned m functions in an arbitrary order. It is also possible.
  • FIGS. 1-10 A cryptographic processing apparatus according to another embodiment of the present invention will be described with reference to FIGS.
  • FIG. 10 shows a flowchart of the MISTY encryption algorithm.
  • 501 to 506 are operations by the function FL
  • 51 1 to 51 4 are operations by the function FO
  • 52 1 to 524 are exclusive OR operations.
  • the configuration of the operation by the function FO 511 to 5 14 at 0 is shown.
  • FIG. 12 shows an embodiment of a cryptographic processing apparatus in which the MISTY data conversion processing shown in FIGS. 10 and 11 is configured using the present invention.
  • 2 ⁇ n-bit input data 550 is divided into upper and lower n-bit data, which are input as input data A 551 and input data B 552.
  • n 32.
  • the n-bit input data 551 is subjected to data conversion by the function FL501, then output as it is as n-bit data 553, and data is converted by the function FO511.
  • the data processed by the function FO 511 is the same as the output data of the other n-bit input data 5 52 converted by the function FL 5 02, and the exclusive OR operation 5 2 1
  • An exclusive OR operation is performed every time, and n-bit data 554 is output.
  • the function FO an operation is performed by the functions FI 61 1 to 63 and the exclusive OR operation 61 1 to 61 3. That is, the input 2 m-bit data (n bits) 65 0 is divided into two m-bit data 65 1 and 65 2.
  • the exclusive OR operation is performed for each bit by the exclusive OR operation 611 and the data 652, and the result is output as the data 653 .
  • Data 652 is output as it is as data 6554. Thereafter, the same operation is repeated in all three stages, and the two m-bit data are combined and output as 2 m-bit (n-bit) data 6555.
  • the first-stage output data 5 5 4 is output as it is, and at the same time, the function
  • the data is converted by the FO 5 12.
  • the output data of the function FO512 is exclusive-ORed with the other n-bit data 553, and the exclusive-OR is calculated for each bit and output.
  • FIG. 12 is a schematic configuration diagram of a cryptographic processing device that realizes the data conversion algorithm described in FIGS. 10 and 11.
  • 701, 702, and 703 are registers A, B, and C, and 711, 712, 713, 714 are selectors A, B, C, and D.
  • 7 2 1, 7 2 2, 7 2 3 are exclusive OR circuits
  • 724 is a function FI operation circuit that performs data conversion
  • 725 is a function FL operation circuit that performs data conversion
  • 715 is input data A and 752 are input data 8
  • 753 are output data A and 754 are output data B.
  • register C 70 3 selector C 7 13, function F I operation circuit 7
  • a first arithmetic circuit 101 for performing the first data conversion is constituted by the exclusive OR circuit 723. Further, a loop processing circuit 201 is configured by the register C703, the selector C713, the function FI operation circuit 724, and the exclusive OR circuit 723.
  • FIGS. 13 to 15 are flowcharts illustrating the operation of the cryptographic processing device shown in FIG.
  • 2 ⁇ n-bit input data is divided into two n-bit data, and input as input data A751 and input data B752.
  • n 32.
  • the input data is selected by the selectors A711 and B712, and held in the registers A701 and B702, respectively (step 8-1).
  • the selector C 713 determines whether the processing is an odd-numbered step or an even-numbered step (step 8-2), and selects the data held in the register A701 (step 8—). 3) Next, the selected data is subjected to data conversion in the function FL operation circuit 725 (step 8-4) and output.
  • the input data is selected by the selector D714 (steps 8-5). Further, the selected data is selected by the selector A711 (step 8-6), and held in the register A701 (step 8-7).
  • the selector C 713 the data held in the register B 702 is selected (step 8-8).
  • the selected data is converted in the function FL operation circuit 725 (steps 8-9), and the output data is selected in the selector D 714 (steps 8-10).
  • the selected data is selected by the selector B 712 (step 8-11) and held in the register B (step 8-12).
  • the selector C 713 the data held in the register A 701 is selected (step 8-13).
  • the selected data (2 Xm bits) is divided into m bits, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to the 'function FI operation circuit 724, where the data is converted.
  • the data held in the register C 703 is selected (steps 8-16).
  • the selected data (2 X m bits) is divided into m bits each, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to a function FI operation circuit 724, where the data is converted, and then, in an exclusive OR circuit 723, the other m-bit data and an exclusive OR operation for each bit are performed. These two output data are combined (Step 8-14) .
  • the output data is held in the register C 703 (steps 8 to 15). As a result, the processing centered on the second function FI operation circuit 724 is completed.
  • the data held in the register C 703 is selected (steps 8-16).
  • the selected data (2 X m bits) is divided into m bits each, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to a function FI operation circuit 724, where the data is converted, and then, in an exclusive OR circuit 723, the other m-bit data is subjected to an exclusive OR operation for each bit with the other m-bit data.
  • These two output data are combined (steps 8-14).
  • the output data is held in the register C703 (steps 8 to 15). This completes the third processing centered on the function FI operation circuit 724.
  • the data held in the register C 703 is selected (steps 8-16), and the selected data is selected in the selector D 714 (step 8). 8—18).
  • it is determined whether the processing is an odd-numbered step or an even-numbered step (steps 8 to 19).
  • the selected data is fed back, and the data held in the register B702 and the exclusive logic are processed.
  • an exclusive OR operation is performed (steps 8 to 20).
  • the output data is selected by the selector B712 (step 8-21), and the selected data is held in the register B702 (step8-22).
  • the selector C 7 13 determines that the process is an even-numbered stage Then, the data held in the register B702 is selected (step 8-2).
  • the selected data (2 X m bits) is divided into m bits, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to the function FI operation circuit 724 and converted, and then, in the exclusive OR circuit 723, the other m-bit data and the exclusive logic for each bit are output. A sum operation is performed, and these two output data are combined (steps 8 to 14).
  • the output data is held in register C703 (steps 8 to 15). As a result, the processing centered on the first function FI operation circuit 724 is completed.
  • the data held in the register C703 is selected by the selector C713 (steps 8-16).
  • the selected data (2 X m bits) is divided into m bits, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to a function FI operation circuit 724, where the data is converted, and then the exclusive-OR circuit 723 performs an exclusive-OR operation for each bit with the other m-bit data. Then, these two output data are combined (steps 8-14).
  • the output data is held in the register C703 (steps 8 to 15). As a result, the processing centered on the second function FI operation circuit 724 is completed.
  • the data held in the register C703 is selected by the selector C713 (steps 8-16).
  • the selected data (2 X m bits) is divided into m bits, and one m-bit data is output as it is as output data.
  • the other m-bit data is input to a function FI operation circuit 724, where the data is converted, and the exclusive-OR circuit 723 then performs exclusive-OR operation for each bit with the other m-bit data. And these two output data are combined (steps 8-14).
  • the output data is held in the register C 703 (steps 8 to 15). This completes the third processing centered on the function FI operation circuit 724.
  • the data held in the register C 703 is selected (steps 8 to 16), and the selected data is selected in the selector D 714 (step 8). 8—1 8).
  • the process is an even-numbered process (steps 8-19), and the selected data is feed knocked, and the data held in the register A 701 and the data are excluded.
  • the exclusive OR operation is performed for each bit in the OR circuit 721 (steps 8 to 25).
  • the output data is selected by the selector A711 (steps 8 to 26), and the selected data is held in the register A701 (steps 8 to 27).
  • MI STY performs up to the point where the processing equivalent to the conversion processing in the eighth stage is performed.
  • Steps 8 to 28 execute the above steps 8 — 3 to 8 — 12.
  • the data held in the register A 701 is selected by the selector C 713 (step 8-3).
  • the selected data is subjected to data conversion in the function FL operation circuit 725 (step 8-4), and output data is selected in the selector D 714 (step 8-5).
  • the selected data is selected in the selector A711 (step 8-6), and held in the register A701 (step 8-7).
  • selector C 713 the data held in register B 702 Data is selected (steps 8-8).
  • the selected data is converted in the function FL operation circuit 725 (steps 8-9), and the output data is selected in the selector D 714 (steps 8-10). Further, the selected data is selected by the selector B 712 (step 8-11) and held in the register B (step 8-12).
  • the data held in the registers A701 and B702 is output as output data A735 and output data B754 (steps 8 to 29).
  • the functions F I and FL have very complicated configurations because they use functions with high encryption strength. Therefore, the effect of the circuit scale reduction based on the present invention is very large.
  • the registers A to C and the selectors A to D do not always need to operate, and if they operate as necessary, the processing can be realized. It is possible. This has a very significant effect in realizing low power consumption.
  • the present invention when used as a small device such as an IC card, a particularly large effect can be obtained.
  • the present invention can be used not only for IC cards but also for IC card readers and writers. It is possible.
  • FIG. 16 and FIG. 17 show schematic configuration diagrams of a communication system according to an embodiment of the present invention.
  • 91 is a reader / writer
  • 92 is an integrated circuit (IC) card
  • 93 is an IC card 92 I. It is.
  • IC 9 3 Components, 94 cormorants transceiver circuit line transmission and reception of communication data, 9 5 C PU for controlling of the apparatus (Central. Process ashing. Units), 9 6 data, program and the like stored
  • Reference numeral 97 denotes an encryption processing device for performing encryption / decryption processing of communication data.
  • the IC 93 includes a transmission / reception circuit 94, a CPU 95, a memory 96, and a signal processing device 97 as constituent elements.
  • the cryptographic processing device 97 the cryptographic processing device described in the first or second embodiment is used.
  • decoded data is transmitted. That is, the IC card 92 transmits the data encrypted by the encryption processing device 97 to the reader / writer 91 by the transmission / reception circuit 94. Further, data transmitted from the reader / writer 91 is received by the transmission / reception circuit 94, and the received data is decrypted by the encryption processing device 97 to perform communication.
  • Communication between the reader / writer 91 and the IC card 92 may be either contact or non-contact.
  • the circuit size and power consumption of a cryptographic processing device can be reduced. Can be realized.
  • an efficient IC can be configured, and an IC card with a reduced circuit scale and reduced power consumption can be obtained.

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)
  • Credit Cards Or The Like (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Description

明 細 書 暗号処理装置、 I Cカード及び暗号処理方法 技術分野
この発明は、 暗号処理装置に関するものであり、 特に、 I C (インテ グレーテッド ·サーキット) カード等に用いられる小型暗号処理装置に 関するものである。 背景技術
この発明の従来の技術として、 秘密鍵 (共通鍵) 喑号系のブロック喑 号である米国商用暗号の D E S (D a t a E n c r y p t i o n S t a n d a r d) を用いて説明する。
D E Sの詳細な処理内容は、 例えば、 H a n s E b e r 1 "A H i g h— s p e e d DE S I mp l e me n t a t i o n f o r e t w o r k Ap p l i c a t i o n s 、 Ad v a n c e s i n C r y p t o 1 o g y -CRYPTO ' 92、 L e c t u r e N o t e s i n c omp u t e r S c i e n c e 740、 S p r i n g e r— V e r l a g. に記載されている。
図 1 8は、 DE S暗号アルゴリズムのフローチャートである。
図 1 8において、 1 00 1〜 1 004はデータ変換処理を行う関数 F による演算、 1 0 1 1〜 1 0 1 4はビット毎の排他的論理和演算である 。 尚、 初期転置、 最終転置は省略してある。
動作について説明する。
2 X nビッ ト ( D E Sの場合 2 X 3 2ビッ ト) の入力データ 1 050 が 2つの nビットデータ 1 0 5 1, 1 05 2に分割される。 nビッ トデ ータ 1 0 5 1は、 そのまま nビッ トデータ 1 0 5 3として出力されると ともに、 関数 F 1 00 1に入力され、 データ変換される。 関数 F 1 00 1から出力されたデータは、 他方の nビッ トデータ 1 0 5 2と排他的論 理和演算 1 0 1 1によりビッ ト毎に排他的論理和演算され、 nビッ トデ —タ 1 0 54が出力される。
以下同様に、 関数 F 1 002, 1 003, 1 004、 排他的論理和演 算 1 0 1 2, 1 0 1 3, 1 0 1 4まで演算処理が繰り返され、 出力デー タ 1 0 5 5, 1 056が出力される。 この 2つの nビッ トデータは合成 され、 2 nビッ トデータ 1 05 7として出力される。
図 1 9は、 図 1 8で示された DE S暗号フローチャートと同等なデー タ変換処理を実現する喑号処理装置の一例である。
図 1 9において、 1 1 0 1及ぴ 1 1 02はデータを保持するレジスタ A及びレジスタ B、 1 1 0 3及び 1 1 04はデータを選択するセレクタ A及びセレクタ B、 1 1 0 5はデータ変換として関数 Fを演算する関数 F演算回路、 1 1 06は排他的論理和回路、 1 20 1, 1 202は11ビ ッ ト入力データ A, B、 1 203, 1 204は nビッ ト出力データ A, Bである。
動作を説明する。
2 X nビッ ト (D E Sの場合 2 X 3 2ビッ ト) の入力データが、 nビ ッ トの 2つの入力データ A 1 20 1, 入力データ B 1 202に分割され る。 2つの入力データは、 それぞれセレクタ A 1 1 03及びセレクタ B 1 1 04によって選択され、 レジスタ A 1 1 0 1及びレジスタ B 1 1 0 2に保持される。 次に、 レジスタ A 1 1 0 1に保持されたデータは、 セ レクタ A l 1 03及びセレクタ B 1 1 04にフィードバックされるとと もに、 関数 F演算回路 1 1 05に入力されデータ変換された後、 レジス タ B 1 1 02に保持されたデータと排他的論理和回路 1 1 06において 排他的論理和演算される。 この結果は、 セレクタ A 1 1 0 3及びセレク タ B 1 1 0 4にフィードバックされる。
次に、 セレクタ A 1 1 0 3においては排他的論理和回路 1 1 0 6の結 果が選択され、 セレクタ Bにおいてはレジスタ A 1 1 0 1に保持されて いたデータが選択され、 それぞれレジスタ A 1 0 0 1及びレジスタ B 1 0 0 2に新たに保持される。 以下同様に、 図 1 8における関数 F 1 0 0 2, 1 0 0 3, 1 0 0 4力、ら排他的論理和演算 1 0 1 2, 1 0 1 3, 1 0 1 4まで必要回数だけ処理がループされ、 出力データ A 1 2 0 3及び 出力データ B 1 2 04が出力される。 尚、 D E Sの場合は、 1 6回であ る。
尚、 本従来技術の詳細については、 例えば、 H a n s E b e r 1 A H i g h— s p e e d D E S I mp l e m e n t a t i o n f o r N e t w o r k A p p l i c a t i o n s " , Ad v a n c e s i n C r y p t o l o g y— C RY P TO ' 9 2、 L e c t u r e N o t e s i n c o mp u t e r S c i e n c e 7 4
0、 S p r i n g e r— V e r l a g . に記載されてレ、る。
上記のような方式による暗号処理装置は、 同様な構成を持つ関数 Fが 繰り返し処理される構成を持つ場合、 1つの回路を繰り返し利用するこ とで実現処理回路を効率的に構成することができる。 そのため、 回路規 模を削減することが可能となり、 低消費電力化も可能であった。 しかし 、 関数 Fがその内部により小さい処理要素の繰り返し構造を持つ場合に は、 これまでの暗号処理装置の構成では、 回路規模の削減やそれに伴う 低消費電力化には効率的ではないという問題があった。
この発明は、 上記のような問題を解決するためになされたもので、 同 様な構成を持つ関数 Fが繰り返し処理される構成を持ち、 かつ、 関数 F がその内部により小さい処理要素の繰り返し構造を持つ場合に、 喑号処 理装置を効率的に構成し、 回路規模の削減や消費電力の低下が可能とな る暗号処理装置を得ることを目的としている。 発明の開示
この発明に係る暗号処理装置は、 入力データに対して第 1の演算回路 により第 1のデータ変換処理を複数回行う暗号処理装置において、 前記第 1の演算回路は、 更に第 2のデータ変換処理を複数回行うルー プ処理回路を有し、
前記ループ処理回路は、 第 2の演算回路、 データ保持回路、 選択回路 により処理ループを構成し、
前記第 2の演算回路は、 前記第 2のデータ変換処理を行い、 前記データ保持回路は、 前記第 2のデータ変換処理が行われたデータ を一時的に保持し、
前記選択回路は、 当該ループ処理回路による第 2のデータ変換処理を 終了させるか継続させるかを選択することを特徴とする。
前記第 2の演算回路は、
前記第 2の演算回路に入力されたデータを第 1の分割データと第 2の 分割データに分けるデータ分割回路と、
前記第 1の分割データをデータ変換する第 3の演算回路と、 前記第 3の演算回路の出力データと前記第 2の分割データをビット毎 に排他的論理和演算する排他的論理和回路と、
前記排他的論理和回路の出力データと前記第 2の分割データを結合す るデータ結合回路を有することを特徴とする。
前記選択回路は、 第 1の演算回路による第 1のデータ変換処理を行う データと、 データ保持回路が保持するデータとを入力し、 当該ループ処 理回路による処理を継続させる場合にデータ保持回路が保持するデータ を選択することを特徴とする。
前記選択回路は、 当該処理ループ回路による処理を開始する場合に、 第 1の演算回路による第 1のデータ変換処理を行うデータを選択するこ とを特徴とする。
前記暗号処理装置は、 更に、
第 1の演算回路による第 1のデータ変換処理を行うデータを交互に保 持するレジスタ Aと レジスタ Bと、
第 1の演算回路で第 1のデータ変換処理が行われたデータと、 レジス タ Aとレジスタ Bに保持されたデータをそれぞれビッ ト毎に排他的論理 和演算する 2つの排他的論理和回路と、
入力データと、 第 1の演算部で第 1のデータ変換処理が行われたデー タと排他的論理和回路で排他的論理和演算が行われたデータとのいずれ かを選択して、 レジスタ Aとレジスタ Bに保持するセレクタ Aとセレク タ Bと
を備え、
前記選択回路は、 レジスタ Aとレジスタ Bを交互に選択して当該処理 ループ回路による処理を開始することを特徴とする。
前記第 1の演算回路は、 処理ループ部により第 2のデータ変換処理が 行われたデータに対して、 更に、 第 2のデータ変換処理とは異なるデー タ変換を行い出力することを特徴とする。
前記第 2の演算回路は、
選択回路から同一のデータを入力する m ( m≥ 1 ) 個の関数演算回路 と、
m個の関数演算回路で演算されたデータを入力して 1つを選択する m 入力 1出力セレクタと
を備えたことを特徴とする。 前記暗号処理装置は、
前記選択回路から出力されたデータに対してデータ変換を行う関数演 算部と、
前記関数演算部で演算されたデータと選択回路から出力されたデータ とを入力して、 いずれか一方のデータを出力するセレクタを備えたこと を特徴とする。
この発明に係る暗号処理方法は、 入力データに対して第 1の演算ステ ップにより第 1のデータ変換処理を複数回行う暗号処理方法において、 前記第 1の演算ステツプは、 更に第 2のデータ変換処理を複数回行う ループ処理ステップを有し、
前記ループ処理ステップは、
前記第 2のデータ変換処理を行う第 2の演算ステップと、
前記第 2のデータ変換処理が行われたデータを一時的に保持するデー タ保持ステップと、
当該ループ処理ステップによる第 2のデータ変換処理を終了させるか 継続させるかを選択する選択ステップを有することを特徴とする。 前記第 2の演算ステップは、
前記第 2の演算ステップに入力されたデータを第 1の分割データと第 2の分割データに分けるデータ分割ステップと、
前記第 1の分割データをデータ変換する第 3の演算ステップと、 前記第 3の演算ステップの出力データと前記第 2の分割データをビッ ト毎に排他的論理和演算する排他的論理和ステップと、
前記排他的論理和ステップの出力データと前記第 2の分割データを結 合するデータ結合ステップを有することを特徴とする。
この発明に係る I Cカードは、 リーダー · ライターとデータの通信を 行う I C (インテグレーテッ ド 'サーキッ ト) カードであって、 前記リーダー · ライターから前記データを受信するデータ受信回路と 前記リーダー · ライターに前記データを送信するデータ送信回路と、 前記データを暗号処理する前述したこの発明の暗号処理装置を有する ことを特徴とする。
この発明に係る I Cカードは、 リーダー · ライターとデータの通信を 行う I Cカードであって、
前記リーダー · ライターから前記データを受信するデータ受信回路と 前記リーダー · ライターに前記データを送信するデータ送信回路と、 前記データを暗号処理する前述したこの発明の暗号処理装置を有する ことを特徴とする。 図面の簡単な説明
図 1は、 本発明の実施の形態 1に係る暗号化アルゴリズムを示す図で める。
図 2は、 本発明の実施の形態 1に係る暗号化アルゴリズムに用いられ る関数の構成を示す図である。
図 3は、 本発明の実施の形態 1に係る暗号処理装置の基本構成を示す ブロック図である。
図 4は、 本発明の実施の形態 1に係る暗号処理装置の基本的動作の一 例を示すフローチヤ一ト図である。
図 5は、 本発明の実施の形態 1に係る暗号処理装置の基本的動作の一 例を示すフローチャート図である。
図 6は、 本発明の実施の形態 1に係る暗号化アルゴリズムに用いられ る関数の構成を示す図である。 図 7は、 本発明の実施の形態 1に係る暗号化アルゴリズムを示す図で ある。
図 8は、 本発明の実施の形態 1に係る暗号化アルゴリズムに用いられ る関数の構成を示す図である。
図 9は、 本発明の実施の形態 1に係る第 2の演算回路の構成を示すブ 口ック図である。
図 1 0は、 本発明の実施の形態 2に係る暗号化アルゴリズムを示する 図である。
図 1 1は、 本発明の実施の形態 2に係る暗号化アルゴリズムに用いら れる関数の構成を示す図である。
図 1 2は、 本発明の実施の形態 2に係る暗号処理装置の基本構成を示 すブロック図である。
図 1 3は、 本発明の実施の形態 2に係る暗号処理装置の基本的動作の 一例を示すフローチヤ一ト図である。
図 1 4は、 本発明の実施の形態 2に係る暗号処理装置の基本的動作の 一例を示すフローチヤ一ト図である。
図 1 5は、 本発明の実施の形態 2に係る暗号処理装置の基本的動作の 一例を示すフローチヤ一ト図である。
図 1 6は、 本発明の実施の形態 3に係る通信システムの基本構成を示 すブロック図である。
図 1 7は、 本発明の実施の形態 3に係る I Cの基本構成を示すブロッ ク図である。
図 1 8は、 従来の技術における暗号化アルゴリズムを示する図である 図 1 9は、 従来の技術における喑号処理装置の基本構成を示すブロッ ク図である。 発明を実施するための最良の形態
実施の形態 1 .
この発明の一実施の形態である暗号処理装置について、 図 1〜図 3を 用いて説明する。
図 1は、 この発明の一実施の形態である暗号処理装置における暗号処 理アルゴリズムのフローチヤ一トを示したものである。
図 1において、 1 0 1〜 1 0 4はデータ変換処理を行う関数 Fによる 演算、 1 1 1〜1 1 4はビッ ト毎の排他的論理和演算である。
図 2は、 関数 Fによる演算の構成を示したものであり、 3つの関数 f
2 0 1〜 2 0 3と 1つの関数 g 2 1 1による演算により構成される。 動作について説明する。
2 X nビッ トの入力データ 1 5 0が上位と下位の 2つの nビッ トデー タ 1 5 1, 1 5 2に分割される。 nビッ トデータ 1 5 1は、 そのまま n ビッ トデータ 1 5 3として出力されるとともに、 関数 F 1 0 1によりデ ータ変換される。 関数 F 1 0 1から出力されたデータは、 他方の nビッ トデータ 1 5 2と排他的論理和演算 1 1 1においてビッ ト毎に排他的論 理和演算され、 nビッ トデータ 1 5 4が出力される。 関数 Fにおいては 、 関数 f 2 0 1〜2 0 3による演算が 3回繰り返された後に、 関数 g 2 1 1による演算が行われ出力される。
以下同様に、 関数 F 1 0 2, 1 0 3 , 1 0 4、 排他的論理和演算 1 1 2, 1 1 3, 1 1 4まで演算が繰り返され、 nビッ トデータ 1 5 5, 1 5 6が出力される。 この 2つの nビッ トデータが合成され、 2 nビッ ト データ 1 5 7が出力される。
図 3は、 図 1, 図 2で説明したデータ変換アルゴリズムを実現する暗 号処理装置の概略構成図を示したものである。 図 3において、 30 1 , 302及び 30 3はデータを保持するレジス タ A, レジスタ B, レジスタ C、 3 1 1, 3 1 2及び 3 1 3はデータを 選択するセレクタ A, セレクタ B, セレクタ C、 3 2 1 と 3 22はビッ ト毎の排他的論理和回路、 3 23は関数 Fの演算を行う構成要素の 1つ である関数 f 演算回路、 3 24は関数 Fの演算を行う構成要素の 1つで ある関数 g演算回路である。
レジスタ C 303、 セレクタ C 3 1 3、 関数 f 演算回路 32 3、 関数 g演算回路 3 24により第 1の演算回路 1 00を構成する。 レジスタ C 3 0 3、 セレクタ C 3 1 3、 関数 f 演算回路 3 2 3によりループ処理回 路 200を構成する。
図 4, 図 5は、 図 3の回路の動作を説明するフローチャートである。 図 4, 図 5を用いて動作を説明する。
関数 Fによる演算は、 関数 f 演算回路 3 2 3による処理を 3回、 関数 g演算回路 3 24による処理を 1回行うことによりなされる。
図 1における第 1段目のデータ変換処理について説明する。
2 X nビッ トの入力データは、 2つの nビッ トデータに分割され、 入 力データ A3 5 1及び入力データ B 3 5 2として入力される。 入力され たデータは、 セレクタ A3 1 1セレクタ B 3 1 2において選択され、 そ れぞれレジスタ A 30 1及びレジスタ B 3 0 2に保持される (ステップ 4 _ 1 ) 。
次に、 セレクタ C 3 1 3において、 奇数段目の処理か偶数段目の処理 かが判断され (ステップ 4一 2) 、 レジスタ A 3 0 1に保持されたデ一 タが選択され (ステップ 4一 4) 、 この選択されたデータは関数 f 演算 回路 3 2 3によりデータ変換される (ステップ 4一 6) 。 関数 f 演算回 路 3 23より出力されたデータは、 レジスタ C 3 03に保持される (ス テツプ 4一 7) 。 これにより、 関数 f 演算回路による処理の 1回目が終 了する。
つづいて、 セレクタ C 3 1 3において、 レジスタ C 3 0 3に保持され たデータが選択され (ステップ 4— 8 ) 、 この選択されたデータが関数 f 演算回路 3 2 3により変換される (ステップ 4一 6 ) 。 関数 f 演算回 路 3 2 3より出力されたデータは、 レジスタ C 3 0 3に保持される (ス テツプ 4— 7 ) 。 これにより、 関数 f 演算回路による処理の 2回目が終 了する。
更に、 セレクタ C 3 1 3において、 レジスタ C 3 0 3に保持されたデ ータが選択される (ステップ 4— 8 ) 。 そして、 この選択されたデータ は、 関数 f 演算回路 3 2 3によりデータ変換され (ステップ 4一 6 ) 、 出力データがレジスタ C 3 0 3に保持される (ステップ 4— 7 ) 。 これ により、 関数 f 演算回路 3 2 3による処理の 3回目が終了する。
次に、 セレクタ C 3 1 3において、 レジスタ C 3 0 3に保持されたデ ータが選択される (ステップ 4— 9 ) 。 この選択されたデータは関数 g 演算回路 3 2 4によりデータ変換されて出力される (ステップ 4— 1 0 ) 。 以上で、 関数 Fによる演算が終了する。
次に、 奇数段目の処理か偶数段目の処理かが判断され (ステップ 4一 1 1 ) 、 関数 g演算回路 3 2 4から出力されたデータがフィードバック され、 レジスタ B 3 0 2に保持されたデータと排他的論理和回路 3 2 2 において排他的論理和が演算される (ステップ 4一 1 4 ) 。 その出力デ ータがセレクタ B 3 1 2において選択され、 この選択されたデータがレ ジスタ B 3 0 2に保持される (ステップ 4 _ 1 5 ) 。 以上で、 第 1段目 のデータ変換処理が完了する。
次に、 第 2段目のデータ変換処理について説明する。
偶数段目の処理であることが判断され (ステップ 4— 2 ) 、 セレクタ
C 3 1 3において、 レジスタ B 3 0 2に保持されたデータが選択される (ステップ 4一 3 ) 。 次に、 この選択されたデータは、 関数 f 演算回路 3 2 3によりデータ変換され (ステップ 4一 6 ) 、 出力データがレジス タ C 3 0 3に保持される (ステップ 4— 7 ) 。 これにより、 関数 f 演算 回路による処理の 1回目が終了する。
つづいて、 セレクタ C 3 1 3において、 レジスタ C 3◦ 3に保持され たデータが選択され (ステップ 4— 8 ) 、 この選択されたデータは関数 f 演算回路 3 2 3によりデータ変換され (ステップ 4一 6 ) 、 出力デー タがレジスタ C 3 0 3に保持される (ステップ 4一 7 ) 。 これにより、 関数 f 演算回路 3 2 3による処理の 2回目が終了する。
更に、 セレクタ C 3 1 3において、 レジスタ C 3 0 3に保持されたデ ータが選択される (ステップ 4一 8 ) 。 次に、 この選択されたデータは 、 関数 f 演算回路 3 2 3によりデータ変換され (ステップ 4一 6 ) 、 出 力データがレジスタ C 3 0 3に保持される (ステップ 4— 7 ) 。 これに より、 関数 f 演算回路 3 2 3による処理の 3回目が終了する。
次に、 セレクタ C 3 1 3において、 レジスタ C 3 0 3に保持されたデ ータが選択され (ステップ 4一 9 ) 、 この選択されたデータは関数 g演 算回路 3 2 4によりデータ変換される (ステップ 4— 1 0 ) 。 以上で、 関数 Fによる演算が終了する。
次に、 偶数段目の処理であることが判断され (ステップ 4一 1 1 ) 、 関数 g演算回路 3 2 4より出力されたデータがフィードバックされ、 レ ジスタ A 3 0 1に保持されたデータと排他的論理和回路 3 2 1において 排他的論理和演算がなされる (ステップ 4一 1 2 ) 。 その出力データが セレクタ A 3 1 1において選択され、 この選択されたデータがレジスタ A 3 0 1に保持される (ステップ 4一 1 3 ) 。 以上で、 第 2段目のデー タ変換処理が完了する。
以下、 この第 1段目のデータ変換処理及び第 2段目の変換処理と同等 な処理を交互に必要段数繰り返す。
最後に、 最終段目のデータ変換処理の結果として、 レジスタ A 3 0 1 及びレジスタ B 3 0 2で保持されているデータを出力データ A 3 5 3, 出力データ B 3 5 4として出力する (ステップ 4— 1 9 ) 。
以上のように、 この発明によれば、 レジスタ C 3 0 3とセレクタ C 3
1 3を用いることにより、 構成要素としての 1つの関数 f 演算回路 3 2 3を繰り返し使用するので、 関数 f 演算回路 3 2 3を 1つ持てばよく、 関数 f 演算回路 3 2 3を 3つ持つ必要がないので、 回路規模を削減する ことが可能である。
特に、 暗号処理のデータ変換に用いられる関数 F (関数 関数 g ) は、 暗号強度の高い関数が用いられるため、 非常に複雑な構成をとるこ とが知られており、 本発明に基づく回路規模の削減の効果は非常に大き くなる。
また、 この発明によれば、 レジスタ A 3 0 1, レジスタ B 3 0 2 , レ ジスタ C 3 0 3, セレクタ A 3 1 1 , セレクタ B 3 1 2, セレクタ C 3 1 3は、 常に動作する必要はなく、 必要に応じて動作すれば処理を実現 することが可能であるため、 装置の低消費電力化を実現することが可能 となる。
従って、 本発明を I Cカードのような小型の装置として使用する場合 に、 特に大きな効果を奏することが可能となる。 尚、 本発明は、 I C力 一ドのみならず、 I Cカードのリーダー · ライターにも利用することも 可能である。
尚、 関数 Fは、 上記の構成に限定されるものではない。 例えぱ、 関数 Fが図 6に示すように、 関数 f の繰り返しのみで構成されている場合は 、 図 3において関数 gは必要がなく、 図 7に示すように、 セレクタ C 3 1 3で選択されたデータを直接フィードバックすればよい。 また、 図 8に示すように、 関数 f 演算回路 3 23が m個 (mは 1つ又 はそれ以上) の関数により、 任意の順で構成されるような場合は、 図 9 に示すように、 図 3における関数 f 演算回路 3 2 3に相当する部分に、 前述の m個の関数を並列にならべ、 そのおのおのにセレクタ C 3 1 3か らのデータを入力し、 それらの出力を m入力 1出力の選択を行うセレク タの入力とし、 適切な 1つの出力データを選択してレジスタ C 3 03に 保持させ、 これを前述の m個の関数の任意の順に相当するだけ繰り返す ことによって構成することも可能である。
実施の形態 2.
この発明の他の一実施の形態である暗号処理装置について、 図 1 0〜 図 1 4を用いて説明する。
図 1 0は、 M I S TY暗号アルゴリズムのフローチヤ一トを示してい る。
M I S TYの処理の詳しい内容については、 例えば、 松井 充 "プロ ック暗号アルゴリズム M I S TY" 、 電子情報通信学会、 信学技報 I S EC 9 6— 1 1 ( 1 9 9 6 - 07) に詳細が記載されている。
図 1 0において、 5 0 1〜506は関数 F Lによる演算、 5 1 1〜5 1 4は関数 FOによる演算、 5 2 1〜5 24は排他的論理和演算である 図 1 1は、 図 1 0における関数 FO 5 1 1〜5 1 4による演算の構成 を示している。
図 1 1に示してあるように、 M I S T Yでは関数 F O 5 1 1〜 5 1 4 の処理として、 関数 F I 6 0 1〜603と排他的論理和演算 6 1 1〜6 1 3を中心とした変換処理を 3段繰り返すようになっている。
図 1 2は、 図 1 0及ぴ図 1 1で示される M I S T Yのデータ変換の処 理を本発明を用いて構成した暗号処理装置の一実施の形態である。 次に、 図 1 0, 図 1 1における暗号アルゴリズムの動作を説明する。 まず、 2 X nビッ トの入力データ 5 5 0が上位と下位の nビッ トの 2 つのデータに分割され、 入力データ A 5 5 1及び入力データ B 5 5 2と して入力される。 M I S T Yの場合は、 n = 3 2である。 nビッ ト入力 データ 5 5 1は、 関数 F L 5 0 1によりデータ変換されて後、 そのまま nビッ トデータ 5 5 3として出力されるとともに、 関数 F O 5 1 1によ りデータ変換される。 関数 F O 5 1 1により演算処理されたデータは、 他方の nビッ ト入力データ 5 5 2が関数 F L 5 0 2によりデータ変換さ れた出力データと、 排他的論理和演算 5 2 1においてビッ ト毎に排他的 論理和演算され、 nビッ トデータ 5 5 4が出力される。 関数 F Oにおい ては、 関数 F I 6 0 1〜6 0 3と排他的論理和演算 6 1 1〜6 1 3によ り演算がなされる。 即ち、 入力された 2 mビッ トデータ (nビット) 6 5 0が 2つの mビッ トデータ 6 5 1 と 6 5 2に分けられる。 データ 6 5 1は、 関数 F I によりデータ変換されて後、 データ 6 5 2と排他的論理 和演算 6 1 1によりビッ ト毎に排他的論理和演算され、 データ 6 5 3と して出力される。 データ 6 5 2は、 データ 6 5 4としてそのまま出力さ れる。 以下同様の動作を全部で 3段繰り返し、 2つの mビッ トデータを 併せ、 2 mビッ ト (nビッ ト) データ 6 5 5として出力される。
次に、 2段目の処理について説明する。
第 1段目の出力データ 5 5 4は、 そのまま出力されると同時に、 関数
F O 5 1 2によりデータ変換される。 関数 F O 5 1 2の出力データは、 もう一方の nビッ トデータ 5 5 3と排他的論理和演算 5 2 2において、 ビッ ト毎に排他的論理和が演算され出力される。
以下 1段目と 2段目と同様なデータ変換が必要段数繰り返され、 nビ ッ トデータ 5 5 7, 5 5 8が出力され、 最後に、 また F L関数 5 0 5, 5 0 6により変換され、 上位、 下位が入れ換えられて、 この 2つの nビ ッ トデータが合成され、 2 nビッ トデータ 5 5 9が出力される。
図 1 2は、 図 1 0, 図 1 1で説明したデータ変換アルゴリズムを実現 する暗号処理装置の概略構成図を示したものである。
図 1 2において、 7 0 1, 702, 703はレジスタ A, レジスタ B , レジスタ C、 7 1 1 , 7 1 2, 7 1 3, 7 1 4はセレクタ A, セレク タ B, セレクタ C, セレクタ D、 7 2 1 , 7 2 2, 7 2 3は排他的論理 和回路、 7 24はデータ変換を行う闋数 F I演算回路、 7 25はデータ 変換を行う関数 F L演算回路、 7 5 1は入力データ A、 7 5 2は入力デ 一タ 8、 7 5 3は出力データ A、 7 54は出力データ Bである。
ここで、 レジスタ C 70 3, セレクタ C 7 1 3、 関数 F I演算回路 7
24、 排他的論理和回路 7 2 3により第 1のデータ変換を行う第 1の演 算回路 1 0 1を構成する。 また、 レジスタ C 703, セレクタ C 7 1 3 、 関数 F I演算回路 7 24、 排他的論理和回路 7 2 3によりループ処理 回路 20 1を構成する。
図 1 3〜図 1 5は、 図 1 2に示された暗号処理装置の動作を説明する フローチヤ一トである。
図 1 3〜図 1 5を用いて動作を説明する。
まず、 2 X nビッ トの入力データは、 nビッ トの 2つのデータに分割 され、 入力データ A 7 5 1及び入力データ B 75 2として入力される。 M I STYの場合は、 n= 3 2である。 入力されたデータは、 セレクタ A 7 1 1 , セレクタ B 7 1 2において選択され、 それぞれレジスタ A 7 0 1及びレジスタ B 702に保持される (ステップ 8— 1 ) 。
次に、 セレクタ C 7 1 3において、 奇数段目の処理か偶数段目の処理 かが判断され (ステップ 8— 2) 、 レジスタ A 70 1に保持されたデー タが選択される (ステップ 8— 3) 。 次に、 この選択されたデータが関 数 F L演算回路 7 25においてデータ変換され (ステップ 8— 4) 、 出 力データがセレクタ D 7 1 4において選択される (ステップ 8— 5) 。 更に、 この選択されたデータがセレクタ A 7 1 1において選択され (ス テツプ 8— 6) 、 レジスタ A 70 1に保持される (ステップ 8— 7) 。 次に、 セレクタ C 7 1 3において、 レジスタ B 7 0 2に保持されたデ ータが選択される (ステップ 8— 8) 。 この選択されたデータが関数 F L演算回路 7 2 5においてデータ変換され (ステップ 8— 9) 、 出力デ ータがセレクタ D 7 1 4において選択される (ステップ 8— 1 0) 。 更 に、 この選択されたデータがセレクタ B 7 1 2において選択され (ステ ップ 8— 1 1 ) 、 レジスタ Bに保持される (ステップ 8— 1 2) 。 次に、 セレクタ C 7 1 3において、 レジスタ A 7 0 1に保持されたデ ータが選択される (ステップ 8— 1 3) 。 次に、 この選択されたデータ (2 Xmビッ ト) は、 mビッ トずつに分けられ、 一方の mビッ トのデー タは、 そのまま出力データとして出力される。 他方の mビッ トデータは 、' 関数 F I演算回路 7 24に入力されデータ変換されて後、 排他的論理 和回路 7 2 3において、 もう一方の mビッ トデータとビット毎の排他的 論理和演算され、 これら 2つの出力データが合成される (ステップ 8—
1 4) 。 出力データは、 レジスタ C 7 03に保持される (ステップ 8—
1 5) 。 これにより、 1回目の関数 F I演算回路 7 24を中心とした処 理が完了する。
次に、 セレクタ C 7 1 3において、 レジスタ C 703に保持されたデ ータが選択される (ステップ 8— 1 6) 。 この選択されたデータ (2 X mビッ ト) は、 mビッ トずつに分けられ、 一方の mビッ トのデータは、 そのまま出力データとして出力される。 他方の mビッ トデータは、 関数 F I演算回路 7 24に入力されデータ変換されて後、 排他的論理和回路 7 2 3において、 もう一方の mビッ トデータとビッ ト毎の排他的論理和 演算され、 これら 2つの出力データが合成される (ステップ 8— 1 4) 。 出力データは、 レジスタ C 703に保持される (ステップ 8— 1 5) 。 これにより、 2回目の関数 F I演算回路 7 24を中心とした処理が完 了する。
次に、 セレクタ C 7 1 3において、 レジスタ C 703に保持されたデ ータが選択される (ステップ 8— 1 6) 。 この選択されたデータ (2 X mビッ ト) は、 mビッ トずつに分けられ、 一方の mビッ トのデータは、 そのまま出力データとして出力される。 他方の mビッ トデータは、 関数 F I演算回路 7 24に入力されデータ変換されて後、 排他的論理和回路 7 2 3において、 もう一方の mビッ トデータとビッ ト毎の排他的論理和 演算され、 これら 2つの出力データが合成される (ステップ 8— 1 4) 。 出力データは、 レジスタ C 70 3に保持される (ステップ 8— 1 5) 。 これにより、 3回目の関数 F I演算回路 7 24を中心とした処理が完 了する。
次に、 セレクタ C 7 1 3において、 レジスタ C 7 03に保持されたデ ータが選択され (ステップ 8— 1 6) 、 この選択されたデータがセレク タ D 7 1 4において選択される (ステップ 8— 1 8) 。 次に、 奇数段目 の処理か偶数段目の処理かが判断され (ステップ 8— 1 9) 、 この選択 されたデータがフィードバックされ、 レジスタ B 7 02に保持されたデ ータと排他的論理和回路 7 22において、 排他的論理和演算を取られる (ステップ 8— 20) 。 その出力データがセレクタ B 7 1 2において選 択され (ステップ 8— 2 1 ) 、 この選択されたデータがレジスタ B 70 2に保持される (ステップ 8— 22) 。 以上で、 第 1段目のデータ変換 処理が完了する。
次に、 図 1 0における 2段目のデータ変換処理に相当するデータ変換 処理を行う。
まず、 セレクタ C 7 1 3において、 偶数段目の処理であることが判断 され (ステップ 8— 2 ) 、 レジスタ B 7 0 2に保持されたデータが選択 される (ステップ 8— 2 4 ) 。
この選択されたデータ (2 X mビッ ト) は、 mビッ トずつに分けられ 、 一方の mビッ トのデータは、 そのまま出力データとして出力される。 他方の mビッ トデータは、 関数 F I演算回路 7 2 4に入力されデータ変 換されて後、 排他的論理和回路 7 2 3において、 もう一方の mビッ トデ ータとビッ ト毎の排他的論理和演算され、 これら 2つの出力データが合 成される (ステップ 8— 1 4 ) 。 出力データは、 レジスタ C 7 0 3に保 持される (ステップ 8— 1 5 ) 。 これにより、 1回目の関数 F I演算回 路 7 2 4を中心とした処理が完了する。
次に、 セレクタ C 7 1 3において、 レジスタ C 7 0 3に保持されたデ ータが選択される (ステップ 8— 1 6 ) 。 この選択されたデータ (2 X mビッ ト) は mビッ トずつに分けられ、 一方の mビッ トのデータは、 そ のまま出力データとして出力される。 他方の mビッ トデータは、 関数 F I演算回路 7 2 4に入力されデータ変換されて後、 排他的論理和回路 7 2 3において、 もう一方の mビッ トデータとビッ ト毎の排他的論理和演 算され、 これら 2つの出力データが合成される (ステップ 8— 1 4 ) 。 出力データは、 レジスタ C 7 0 3に保持される (ステップ 8— 1 5 ) 。 これにより、 2回目の関数 F I演算回路 7 2 4を中心とした処理が完了 する。
次に、 セレクタ C 7 1 3において、 レジスタ C 7 0 3に保持されたデ ータが選択される (ステップ 8— 1 6 ) 。 この選択されたデータ (2 X mビッ ト) は mビットずつに分けられ、 一方の mビッ トのデータは、 そ のまま出力データとして出力される。 他方の mビッ トデータは、 関数 F I演算回路 7 2 4に入力されデータ変換されて後、 排他的論理和回路 7 2 3において、 もう一方の mビッ トデータとビッ ト毎の排他的論理和演 算され、 これら 2つの出力データが合成される (ステップ 8 _ 1 4) 。 出力データは、 レジスタ C 703に保持される (ステップ 8— 1 5) 。 これにより、 3回目の関数 F I演算回路 7 24を中心とした処理が完了 する。
次に、 セレクタ C 7 1 3において、 レジスタ C 70 3に保持されたデ ータが選択され (ステップ 8— 1 6) 、 この選択されたデータがセレク タ D 7 1 4において選択される (ステップ 8— 1 8) 。 次に、 偶数段目 の処理であることが判断され (ステップ 8— 1 9) 、 この選択されたデ ータがフィードノくックされ、 レジスタ A 70 1に保持されたデータと排 他的論理和回路 72 1においてビッ ト毎に排他的論理和演算される (ス テツプ 8— 2 5) 。 その出力データがセレクタ A 7 1 1において選択さ れ (ステップ 8— 26) 、 この選択されたデータがレジスタ A 70 1に 保持される (ステップ 8— 2 7) 。 以上で、 第 2段目のデータ変換処理 が完了する。
以下、 この第 1段目のデータ変換処理及び第 2段目の変換処理と同等 な処理を交互に必要段数繰り返す。 M I STYは、 第 8段目の変換処理 と同等な処理を行うところまで行う。
次に、 ステップ 8— 28の処理を行う。 ステップ 8— 28は、 上記ス テツプ 8 _ 3〜8— 1 2を実行する。 まず、 セレクタ C 7 1 3において 、 レジスタ A 70 1に保持されたデータが選択される (ステップ 8— 3 ) 。 次に、 この選択されたデータが関数 F L演算回路 7 2 5においてデ ータ変換され (ステップ 8— 4) 、 出力データがセレクタ D 7 1 4にお いて選択される (ステップ 8— 5) 。 更に、 この選択されたデータがセ レクタ A7 1 1において選択され (ステップ 8— 6) 、 レジスタ A70 1に保持される (ステップ 8— 7) 。
次に. セレクタ C 7 1 3において、 レジスタ B 702に保持されたデ ータが選択される (ステップ 8— 8 ) 。 この選択されたデータが関数 F L演算回路 7 2 5においてデータ変換され (ステップ 8— 9 ) 、 出力デ ータがセレクタ D 7 1 4において選択される (ステップ 8— 1 0 ) 。 更 に、 この選択されたデータがセレクタ B 7 1 2において選択され (ステ ップ 8— 1 1 ) 、 レジスタ Bに保持される (ステップ 8— 1 2 ) 。 最後に、 レジスタ A 7 0 1及びレジスタ B 7 0 2で保持されているデ ータを出力データ A 7 5 3, 出力データ B 7 5 4として出力する (ステ ップ 8— 2 9 ) 。
本実施の形態によれば、 各段の関数 F O 5 1 1〜 5 1 4が図 1 1に示 されるような構成を持つ場合であっても、 関数 F I演算回路を 3つ、 排 他的論理和回路を 3つ持つ必要がなく、 関数 F I演算回路を 1つ、 排他 的論理和回路を 1つ持てばよいので、 回路規模を削減することが可能と なる。 また、 暗号化アルゴリズムが図 1 0に示されるような構成を持つ 場合であっても、 関数 F L 5 0 1〜5 0 4を実現する回路部分を複数持 つ必要がなく、 関数 F L演算回路を 1つ持てばよいので、 同様に回路規 模の削減が可能となる。
本実施の形態である M I S T Yの場合、 関数 F I , 関数 F Lは、 暗号 強度の高い関数を用いるため、 非常に複雑な構成をとる。 従って、 本発 明に基づく回路規模の削減の効果は非常に大きなものとなる。
また、 本実施形態の動作の説明で明らかなように、 レジスタ A〜レジ スタ C、 セレクタ A〜セレクタ Dは、 常に動作する必要はなく、 必要に 応じて動作すれば、 処理を実現することが可能である。 これは、 低消費 電力化の実現においても非常に大きな効果を奏する。
従って、 本発明を I Cカードのような小型の装置として使用する場合 に、 特に大きな効果を奏することが可能となる。 尚、 本発明は、 I C力 一ドのみならず、 I Cカードのリーダー · ライターにも利用することも 可能である。
実施の形態 3.
図 1 6と図 1 7は、 この発明の一実施の形態である通信システムの概 略構成図を示したものである。
図 1 6と図 1 7において、 9 1はリーダー ' ライター、 9 2は 1 じ ( インテグレーテッ ド ·サーキッ ト) カード、 9 3は I Cカード 9 2の I 。である。 I C 9 3は構成要素として、 94は通信データの送受信を行 う送受信回路、 9 5は装置の制御等を行う C PU (セントラル .プロセ ッシング .ユニッ ト) 、 9 6はデータ、 プログラム等が記憶されるメモ リ、 9 7は通信データの暗号 ·復号化処理を行う暗号処理装置である。 I C 9 3は構成要素として、 送受信回路 94、 C PU 9 5、 メモリ 9 6 、 喑号処理装置 9 7を有する。
暗号処理装置 9 7には、 実施の形態 1又は実施の形態 2に記載された 暗号処理装置が利用される。
この通信システムの通信においては、 喑号化されたデータが通信され る。 即ち、 I Cカード 9 2は、 暗号処理装置 9 7により暗号化されたデ ータを送受信回路 94により リーダー ' ライター 9 1に送信する。 また 、 リーダー · ライター 9 1から送信されたデータを送受信回路 94によ り受信し、 この受信データを暗号処理装置 9 7で複号化することにより 通信を行う。
尚、 リーダー ' ライター 9 1 と I Cカード 9 2の通信は、 接触 ·非接 触のどちらであってもよレ、。 産業上の利用可能性
以上のように、 この発明によれば、 暗号化されたデータを通信する通 信システムにおいて、 暗号処理装置の回路規模の削減及び低消費電力化 を実現することが可能となる。
また、 更に、 I Cカードに、 この発明の喑号処理装置を用いることに より、 効率的な I Cの構成が可能となり回路規模の削減及び低消費電力 化の実現された I Cカードを得ることが可能となる。

Claims

請求の範囲
1 . 入力データに対して第 1の演算回路により第 1のデー タ変換処理を複数回行う暗号処理装置において、
前記第 1の演算回路は、 更に第 2のデータ変換処理を複数回行うルー プ処理回路を有し、
前記ループ処理回路は、 第 2の演算回路、 データ保持回路、 選択回路 により処理ループを構成し、
前記第 2の演算回路は、 前記第 2のデータ変換処理を行い、 前記データ保持回路は、 前記第 2のデータ変換処理が行われたデータ を一時的に保持し、
前記選択回路は、 当該ループ処理回路による第 2のデータ変換処理を 終了させるか継続させるかを選択することを特徴とする暗号処理装置。
2 . 前記第 2の演算回路は、
前記第 2の演算回路に入力されたデータを第 1 の分割データと第 2の 分割データに分けるデータ分割回路と、
前記第 1の分割データをデータ変換する第 3の演算回路と、 前記第 3の演算回路の出力データと前記第 2の分割データをビット毎 に排他的論理和演算する排他的論理和回路と、
前記排他的論理和回路の出力データと前記第 2の分割データを結合す るデータ結合回路を有することを特徴とする請求項 1記載の暗号処理装
3 . 前記選択回路は、 第 1の演算回路による第 1のデータ 変換処理を行うデータと、 データ保持回路が保持するデータとを入力し 、 当該ループ処理回路による処理を継続させる場合にデータ保持回路が 保持するデータを選択することを特徴とする請求項 1記載の暗号処理装
4 . 前記選択回路は、 当該処理ループ回路による処理を開 始する場合に、 第 1の演算回路による第 1のデータ変換処理を行うデー タを選択することを特徴とする請求項 3記載の暗号処理装置。
5 . 前記暗号処理装置は、 更に、
第 1の演算回路による第 1のデータ変換処理を行うデータを交互に保 持するレジスタ Aとレジスタ Bと、
第 1の演算回路で第 1のデータ変換処理が行われたデータと、 レジス タ Aとレジスタ Bに保持されたデータをそれぞれビッ ト毎に排他的論理 和演算する 2つの排他的論理和回路と、
入力データと、 第 1の演算部で第 1のデータ変換処理が行われたデー タと排他的論理和回路で排他的論理和演算が行われたデータとのいずれ かを選択して、 レジスタ Aと レジスタ Bに保持するセレクタ Aとセレク タ Bと
を備え、
前記選択回路は、 レジスタ Aとレジスタ Bを交互に選択して当該処理 ループ回路による処理を開始することを特徴とする請求項 4記載の暗号 処理装置。
6 . 前記第 1の演算回路は、 処理ループ部により第 2のデ —タ変換処理が行われたデータに対して、 更に、 第 2のデータ変換処理 とは異なるデータ変換を行い出力することを特徴とする請求項 1記載の 暗号処理装置。
7 . 前記第 2の演算回路は、
選択回路から同一のデータを入力する m ( m≥ 1 ) 個の関数演算回路 と、
m個の関数演算回路で演算されたデータを入力して 1つを選択する m 入力 1出力セレクタと
を備えたことを特徴とする請求項 1記載の暗号処理装置。
8 . 前記暗号処理装置は、
前記選択回路から出力されたデータに対してデータ変換を行う関数演 算部と、
前記関数演算部で演算されたデータと選択回路から出力されたデータ とを入力して、 いずれか一方のデータを出力するセレクタを備えたこと を特徴とする請求項 2記載の暗号処理装置。
9 . 入力データに対して第 1の演算ステップにより第 1の データ変換処理を複数回行う暗号処理方法において、
前記第 1の演算ステップは、 更に第 2のデータ変換処理を複数回行う ループ処理ステップを有し、
前記ループ処理ステップは、
前記第 2のデータ変換処理を行う第 2の演算ステップと、
前記第 2のデータ変換処理が行われたデータを一時的に保持するデー タ保持ステップと、
当該ループ処理ステップによる第 2のデータ変換処理を終了させるか 継続させるかを選択する選択ステップを有する暗号処理方法。
1 0 . 前記第 2の演算ステップは、
前記第 2の演算ステツプに入力されたデータを第 1の分割データと第 2の分割データに分けるデータ分割ステップと、
前記第 1の分割データをデータ変換する第 3の演算ステップと、 前記第 3の演算ステツプの出力データと前記第 2の分割データをビッ ト毎に排他的論理和演算する排他的論理和ステップと、
前記排他的論理和ステップの出力データと前記第 2の分割データを結 合するデータ結合ステップを有することを特徴とする請求項 9記載の暗 号処理方法。
1 1 . リーダー · ライターとデータの通信を行う I C (イン テグレーテッ ド ·サーキッ ト) カードであって、
前記リーダー · ライターから前記データを受信するデータ受信回路と 、
前記リーダー · ライターに前記データを送信するデータ送信回路と、 前記データを暗号処理する請求項 1に記載の暗号処理装置を有するこ とを特徴とする I cカード。
1 2 . リーダー · ライターとデータの通信を行う I Cカード であって、
前記リ一ダー ' ライターから前記データを受信するデータ受信回路と 前記リーダー · ライターに前記データを送信するデータ送信回路と、 前記データを暗号処理する請求項 2に記載の暗号処理装置を有するこ とを特徴とする I Cカード。
PCT/JP1998/001898 1997-05-30 1998-04-24 Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique WO1998054687A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
US09/214,271 US6466669B1 (en) 1997-05-30 1998-04-24 Cipher processor, IC card and cipher processing method
CA002261161A CA2261161C (en) 1997-05-30 1998-04-24 Cipher processing apparatus, ic card and cipher processing method
AU70811/98A AU717746B2 (en) 1997-05-30 1998-04-24 Cipher processing apparatus, IC card and cipher processing method
DE69840014T DE69840014D1 (de) 1997-05-30 1998-04-24 Chiffrierprozessor, IC-Karte und Chiffrierverfahren
EP98917672A EP0923062B1 (en) 1997-05-30 1998-04-24 Cipher processor, IC card and cipher processing method
NO19990429A NO326299B1 (no) 1997-05-30 1999-01-29 Apparat for chifferprosessering, IC kort og fremgangsmate for chifferprosessering
HK00100190A HK1021585A1 (en) 1997-05-30 2000-01-12 Cipher processing apparatus, ic card and cipher processing method.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP09141328A JP3088337B2 (ja) 1997-05-30 1997-05-30 暗号処理装置、icカード及び暗号処理方法
JP9/141328 1997-05-30

Publications (1)

Publication Number Publication Date
WO1998054687A1 true WO1998054687A1 (fr) 1998-12-03

Family

ID=15289394

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/001898 WO1998054687A1 (fr) 1997-05-30 1998-04-24 Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique

Country Status (12)

Country Link
US (1) US6466669B1 (ja)
EP (1) EP0923062B1 (ja)
JP (1) JP3088337B2 (ja)
KR (1) KR100360957B1 (ja)
CN (1) CN1186901C (ja)
AU (1) AU717746B2 (ja)
CA (2) CA2261161C (ja)
DE (1) DE69840014D1 (ja)
HK (1) HK1021585A1 (ja)
NO (1) NO326299B1 (ja)
TW (1) TW375720B (ja)
WO (1) WO1998054687A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710603B1 (ko) 1999-04-07 2007-04-24 소니 가부시끼 가이샤 메모리 카드용 보안 유닛
US8335313B2 (en) 2008-01-18 2012-12-18 Fujitsu Limited Encryption device, encryption method and storage medium storing its program

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6920221B1 (en) 1999-08-29 2005-07-19 Intel Corporation Method and apparatus for protected exchange of status and secret values between a video source application and a video hardware interface
US7068786B1 (en) * 1999-08-29 2006-06-27 Intel Corporation Dual use block/stream cipher
US6731758B1 (en) 1999-08-29 2004-05-04 Intel Corporation Digital video content transmission ciphering and deciphering method and apparatus
US7212631B2 (en) 2001-05-31 2007-05-01 Qualcomm Incorporated Apparatus and method for performing KASUMI ciphering
KR100423811B1 (ko) * 2001-12-12 2004-03-22 한국전자통신연구원 카스미 암호화 알고리즘을 응용한 암호화 장치
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
JP4150886B2 (ja) 2002-04-19 2008-09-17 ソニー株式会社 暗号化復号化演算装置およびデータ受信装置
JP2005031471A (ja) * 2003-07-07 2005-02-03 Sony Corp 暗号処理装置、および暗号処理方法
EP1860630B1 (en) * 2005-03-16 2018-12-26 Mitsubishi Electric Corporation Data converting apparatus and data converting method
JP4783104B2 (ja) * 2005-09-29 2011-09-28 株式会社東芝 暗号化/復号装置
FR2878390A1 (fr) * 2005-11-24 2006-05-26 Samsung Electronics Co Ltd Systeme et procede cryptographiques pour chiffrer des donnees d'entree
WO2009090688A1 (ja) 2008-01-18 2009-07-23 Fujitsu Limited データ変換関数の処理装置
JP5338327B2 (ja) * 2009-01-16 2013-11-13 富士通株式会社 暗号処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0364788A (ja) * 1989-07-25 1991-03-20 Philips Gloeilampenfab:Nv 暗号化で防護されたデータの非正規置換の実行方法
JPH04256195A (ja) * 1991-02-08 1992-09-10 Toshiba Corp データ通信方式
JPH04365240A (ja) * 1991-06-13 1992-12-17 Mitsubishi Electric Corp 暗号化方式
WO1997009705A1 (fr) * 1995-09-05 1997-03-13 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6037586A (ja) 1983-08-09 1985-02-26 富士通株式会社 Des暗号装置鍵誤り検出方式
JPS61117940A (ja) 1984-11-13 1986-06-05 Hitachi Ltd デ−タ保護方式
JP2760799B2 (ja) 1988-04-28 1998-06-04 株式会社日立製作所 暗号方式
JP2825205B2 (ja) 1989-07-20 1998-11-18 日本電信電話株式会社 暗号装置
JP3053106B2 (ja) 1990-11-02 2000-06-19 株式会社日立製作所 暗号化処理装置、及び復号化処理装置
JPH0535448A (ja) 1991-07-26 1993-02-12 Matsushita Electric Ind Co Ltd 有限体における乗算器
JPH0588849A (ja) 1991-09-26 1993-04-09 Matsushita Electric Ind Co Ltd 正規基底を用いた乗算器の構成法
US5317638A (en) 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
JPH07191603A (ja) 1993-12-24 1995-07-28 Canon Inc 暗号装置及びこれを用いた秘匿・認証通信システム
JPH08179690A (ja) * 1994-12-22 1996-07-12 Nec Corp プロダクト暗号装置
JPH0990870A (ja) 1995-09-27 1997-04-04 Nec Corp 基本変換方法、暗号化方法、基本変換回路および暗号装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0364788A (ja) * 1989-07-25 1991-03-20 Philips Gloeilampenfab:Nv 暗号化で防護されたデータの非正規置換の実行方法
JPH04256195A (ja) * 1991-02-08 1992-09-10 Toshiba Corp データ通信方式
JPH04365240A (ja) * 1991-06-13 1992-12-17 Mitsubishi Electric Corp 暗号化方式
WO1997009705A1 (fr) * 1995-09-05 1997-03-13 Mitsubishi Denki Kabushiki Kaisha Appareil de conversion de donnees et procede de conversion de donnees

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
HASSEI AKIYAMA: "CIPHER PROCESSING HARDWARE", JOHO SHORI - JOURNAL OF THE INFORMATION PROCESSING SOCIETYOF JAPAN., JOHO SHORI GAKKAI, TOKYO., JP, vol. 25, no. 06, 1 June 1984 (1984-06-01), JP, pages 566 - 574, XP002917219, ISSN: 0447-8053 *
MATSUI M, ET AL.: "NEW PRACTICAL BLOCK CIPHERS WITH PROVABLE SECURITY AGAINST DIFFERENTIAL AND LINEAR CRYPTANALYSIS", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS), XX, XX, 1 January 1996 (1996-01-01), XX, pages 01 - 14, XP002917216 *
MATSUI M.: "NEW STRUCTURE OF BLOCK CIPHERS WITH PROVABLE SECURITY AGAINST DIFFERENTIAL AND LINEAR CRYPTANALYSIS.", SECURITY IN COMMUNICATION NETWORKS : THIRD INTERNATIONAL CONFERENCE ; REVISED PAPERS / SCN 2002, AMALFI, ITALY, SEPTEMBER 11 - 13, 2002, SPRINGER VERLAG, DE, vol. 1039., 1 January 1996 (1996-01-01), DE, pages 205 - 218., XP002914985, ISBN: 978-3-540-24128-7 *
MATSUI M: "BLOCK ENCRYPTION ALGORITHM MISTY", IEICE TECHNICAL REPORT, DENSHI JOUHOU TSUUSHIN GAKKAI, JP, vol. 96, no. 167, 1 July 1996 (1996-07-01), JP, pages 35 - 48, XP002917217, ISSN: 0913-5685 *
MORITA H., YAMANE M.: "HARDWARE APPROACH TO FAST ENCIPHERMENT PROCESSING AND ITS IMPLEMENTATION.", IEICE TRANSACTIONS., INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO., JP, vol. E74., no. 08., 1 August 1991 (1991-08-01), JP, pages 2143 - 2152., XP002914986, ISSN: 0917-1673 *
See also references of EP0923062A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100710603B1 (ko) 1999-04-07 2007-04-24 소니 가부시끼 가이샤 메모리 카드용 보안 유닛
US8335313B2 (en) 2008-01-18 2012-12-18 Fujitsu Limited Encryption device, encryption method and storage medium storing its program

Also Published As

Publication number Publication date
NO990429L (no) 1999-01-29
KR20000029634A (ko) 2000-05-25
NO990429D0 (no) 1999-01-29
EP0923062B1 (en) 2008-09-17
EP0923062A1 (en) 1999-06-16
DE69840014D1 (de) 2008-10-30
US6466669B1 (en) 2002-10-15
EP0923062A4 (en) 2004-10-06
TW375720B (en) 1999-12-01
CA2372915A1 (en) 1998-12-03
AU7081198A (en) 1998-12-30
AU717746B2 (en) 2000-03-30
CA2372915C (en) 2002-09-24
NO326299B1 (no) 2008-11-03
CA2261161C (en) 2002-09-17
JPH10333569A (ja) 1998-12-18
CN1228183A (zh) 1999-09-08
HK1021585A1 (en) 2000-06-16
JP3088337B2 (ja) 2000-09-18
CA2261161A1 (en) 1998-12-03
CN1186901C (zh) 2005-01-26
KR100360957B1 (ko) 2002-11-18

Similar Documents

Publication Publication Date Title
EP1271839B1 (en) AES Encryption circuit
KR100435052B1 (ko) 암호화장치
WO1998054687A1 (fr) Processeur cryptographique, carte de circuits integres et procede de traitement cryptographique
JP6406350B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
US20050089161A1 (en) Data converter and method thereof
WO2003100751A1 (fr) Dispositif et procede de conversion de donnees
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US20050190923A1 (en) Encryption/decryption system and key scheduler with variable key length
JPH11136229A (ja) 暗号鍵の生成方法および装置
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
US20040252831A1 (en) Key expander, key expansion method, and key expansion program
EP0719007A2 (en) Small size product cipher apparatus
US20100257373A1 (en) Cryptographic processor and ic card
US7257229B1 (en) Apparatus and method for key scheduling
CN112134691B (zh) 一种部件可重复的nlcs分组密码实现方法、装置及介质
JP2004054128A (ja) 暗号化装置
JP2003084668A (ja) 乱数生成装置、乱数生成方法及び乱数生成プログラム
EP1629626B1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
JP3992888B2 (ja) 暗号処理装置
US20020181704A1 (en) Data encryption circuit pre-holding next data to be operated in buffer
US20180054307A1 (en) Encryption device
CN220323878U (zh) 一种面向加密芯片的通用原型验证平台装置
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
JP4790541B2 (ja) ハッシュ関数回路及びその演算方法
JP2005529365A (ja) Aesミックスカラム変換

Legal Events

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

Ref document number: 98800708.8

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

WWE Wipo information: entry into national phase

Ref document number: 1998917672

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09214271

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 70811/98

Country of ref document: AU

ENP Entry into the national phase

Ref document number: 2261161

Country of ref document: CA

Ref document number: 2261161

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1019997000703

Country of ref document: KR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1998917672

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1019997000703

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 70811/98

Country of ref document: AU

WWG Wipo information: grant in national office

Ref document number: 1019997000703

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1998917672

Country of ref document: EP