WO1999038143A1 - Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees - Google Patents

Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees Download PDF

Info

Publication number
WO1999038143A1
WO1999038143A1 PCT/JP1999/000337 JP9900337W WO9938143A1 WO 1999038143 A1 WO1999038143 A1 WO 1999038143A1 JP 9900337 W JP9900337 W JP 9900337W WO 9938143 A1 WO9938143 A1 WO 9938143A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
key
linear
conversion
sub
Prior art date
Application number
PCT/JP1999/000337
Other languages
English (en)
French (fr)
Inventor
Masayuki Kanda
Youichi Takashima
Kazumaro Aoki
Hiroki Ueda
Kazuo Ohta
Tsutomu Matsumoto
Original Assignee
Nippon Telegraph And Telephone Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP10147479A external-priority patent/JP2934431B1/ja
Application filed by Nippon Telegraph And Telephone Corporation filed Critical Nippon Telegraph And Telephone Corporation
Priority to EP99901884A priority Critical patent/EP1052611B9/en
Priority to DE69931606T priority patent/DE69931606T8/de
Priority to CA002319135A priority patent/CA2319135C/en
Priority to US09/600,955 priority patent/US6769063B1/en
Publication of WO1999038143A1 publication Critical patent/WO1999038143A1/ja

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/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • 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 recording medium on which a program for executing the same is recorded.
  • the present invention relates to a data conversion device used for an encryption device for concealing data in data communication or storage, and in particular, encrypts or decrypts data in units of blocks under control of a secret key.
  • the present invention relates to a data conversion device suitable for an encryption device using a common key cryptosystem and a recording medium storing a program executed by the data conversion device.
  • data to be encrypted is divided into blocks of an appropriate length, and encryption is performed for each data block.
  • a block cipher uses a data spreading unit to disturb the input data to be encrypted and a secret common key (hereinafter, this key is referred to as the primary key) input to the device, and the data is spread.
  • a key schedule part for generating a series of sub-keys used by the part.
  • a typical symmetric key cryptosystem used in such a data conversion device for concealing data is the US Federal Standard Encryption Standard Data Encryption Standard (DES).
  • FIG. 1 shows the functional configuration of DES ⁇ .
  • the DES encryption uses a 64-bit secret key (of which 8 bits are used for parity), and performs encryption or decryption in units of 64-bit data blocks.
  • the data spreading section 10 converts 64 bits of plaintext M by initial transposition in the initial transposition section 11, and then performs block data every 32 bits.
  • a function operation unit also called a round function
  • represents exclusive OR.
  • the two block data L ( ,, R.) are input and the operation unit 12 and the exclusive OR circuit 13 are replaced with data.
  • R 1 + 1 L i ef (R i , k,)
  • the final transposition unit 15 converts it by final transposition and outputs the ciphertext 64 bits.
  • the unit 15 corresponds to the inverse transformation of the initial transposed unit 11.
  • the procedure is the same as for the encryption process, except that you must enter them in this order.
  • the swap output R lfi of the final round processing unit 14 15 to be further swapped as shown in the figure, the ciphertext is input to the initial transposition 11 in the decryption processing, and FIG. By executing the processing, the plaintext is obtained as it is in the output of the final transposition 15.
  • the key schedule unit 20 divides 56 bits, excluding the 8-bit parity bit from the 64-bit primary key, into key data of left and right 28 bits each in the extended key generation routine 16,
  • the right and left key data is rearranged in 16 stages, and the left and right key data (total of 56 bits) resulting from the rearrangement process in each stage is given to the corresponding round of the data spreading unit 10 by contracted transposition.
  • the processing inside the function operation 12 is performed as shown in FIG. First, the 32-bit block data is converted into 48-bit data E (R) by the extended transposition unit 17.
  • the exclusive OR with the sub-key ki is taken by the X0R circuit 18, and the 48-bit data E
  • the data is divided into eight sub-blocks of 6 bits each.
  • Subblock data is input to a different S-box S " ⁇ S 7 respectively, each of which obtain the output of 4 bits.
  • Differential cryptanalysis for the DES encryption uses the difference between two data X and X *.
  • R 16 L ls ®f (R 15 , k 15 )
  • AR 16 AL I5 ®f (L lfi , k 15 ) ef (L lfi eAL lfi) k I5 )
  • L 1S, delta and 1B, AR 1B is information already obtained since the data obtained from the ciphertext. For this reason, if the reader can correctly find m R H , only k ls is an unknown constant in the above equation, and an exhaustive search for k and 5 is performed using the obtained plaintext / ciphertext pair. By doing so, the reader can always find the correct k, 5 . Therefore, once been obtained is sub-key k 15, the remaining 8 (i.e. 56 - 48) bits would easily determined waiting in brute.
  • ⁇ ( ⁇ ) represents a vector for selecting a specific bit position of X, and is called a mask value.
  • the role of the linear approximation formula is to approximately replace the inside of the cryptographic algorithm with a linear expression and separate it into a part related to a plaintext / ciphertext pair and a part related to a subkey.
  • the exclusive OR of the value of the specific bit position of the plaintext and the value of the specific bit position of the ciphertext becomes a constant value, and the value is the subkey specification. It is equal to the exclusive OR of the value of the bit position of. Therefore, the decipherer
  • each S-box can be represented linearly with probability p si .
  • P si the probability of difference mask values in the S-box.
  • the S-box S 4 when the input mask value of "010000", the output mask value with a probability of 3/16 This is because "111 1 ( 2 )" is predicted.
  • each round with a probability P i can linear representation of the input mask value and the output mask value, by gradually connecting the linear representation for each round, gamma , R (L l fi , R 16 ), r (k., K Opera ⁇ ⁇ ⁇ , k 15 ) are probabilities
  • the subkey of the final round is obtained.
  • the primary key is easily obtained therefrom, so that the correspondence between the sub-key and the primary key in the key schedule unit 20 is further complicated.
  • Figure 3 shows the basic configuration.
  • the sub-key is generated from the primary key using the data spreading unit (fk).
  • the sub-key is obtained from the main key using the data spreading unit (fk). We hope that the primary key will not be easily obtained.
  • the extended key generation routine 21 is a key spreading unit 22.
  • To 21/2 ", consisting of the key processing section 21j (j 0, 1, ⁇ ' ⁇ , ⁇ / 2 - 1).
  • Diffuse processes the input left and right key data of each 3 2 bits given, The output left and right key data are swapped for left and right and input as left and right key data to the next-stage key processing unit 21 j + 1
  • Each key processing unit 21 excluding the first stage has an exclusive OR unit 23 ”
  • the exclusive-OR operation is performed on the input left key data and output left data of the preceding key processing unit 21j_, and the operation result is provided to the key spreading unit 22 ".
  • the input left key data of the key processing unit 21j is spread by the output of the exclusive OR 23 in the key spreading unit 22 '' and output as the input right key data of the next stage, and the input right key data of the key processing unit 21 '' is It is output as the input left key data of the stage.
  • the 6-bit primary key is divided into left and right key data of 32 bits each.
  • the key spreading unit 22 converts the left key data into right key data in step 22. Then, the left and right sides of the diffused left key data and the right key data are exchanged and given to the next key processing unit 21 as left and right key data.
  • each key spreading unit 22 is a function for generating and outputting a pair of key data (subkey", Q 2j + 1 ) from two input data. If one of the two input data and the output data is known, then the other input data can be known.
  • the output ( subkeys Q 2j + 2 , Q 2j +: s ) of the key spreading section 22 j + 1 in the j + 1-th stage is one input de - data (sub-key 3 ⁇ 4, Q 2j -,) since it is known, it is possible to obtain the other input data (i.e., output data of the exclusive OR unit 23 j + 1), the From the obtained data and the subkeys Q 2j and Q 2j , which are one input data of the exclusive OR unit 23 J + i , the data of the previous stage (the j-th stage) which is the other input data of the exclusive OR unit 23 j input of the key diffusion part 22 ", that is, three-stage before the key diffusion part of the (first j_2 stage) 22", which is the _ 2 of the output sub-key Q 2
  • all subkeys can be determined by analyzing only the data in the key schedule unit 20 without analyzing the data in the data spreading unit 10.
  • a first object of the present invention is to secure security without significantly increasing the number of rounds (the number of stages) by making the round function ⁇ (function operation unit) a structure that satisfies both security and high speed at the same time.
  • Another object of the present invention is to provide a data conversion device capable of performing high-speed encryption processing and a recording medium storing a program for performing the data conversion.
  • a second object of the present invention is to provide a key schedule in which even if some sub-keys are known, other sub-keys and a primary key cannot be easily obtained simply by analyzing the key schedule part. It is to realize the joule part.
  • a first key-dependent linear function for performing a linear transformation on input data of the non-linear function part based on the first key data stored in the key storage part, particularly in the non-linear function part.
  • a transformation unit a division unit that divides the output data of the first key-dependent linear unit into ⁇ sub data, a first non-linear transformation unit that performs a non-linear transformation on each of these sub-data, and a first non-linear transformation second Kagide for each of output subdata parts - first performed and the second key-dependent linear transformation part that performs linear transformation based on the data, the non-linear conversion to an output subdirectory one data of the second key-dependent linear transformation part (2)
  • a non-linear transformation unit and a coupling unit that combines the output sub-blocks of the second non-linear transformation unit to generate output data of the non-linear function unit
  • the second key-dependent linear conversion means includes a linear conversion unit that performs an exclusive OR operation on the input as defined by
  • the difference probability and the linear probability in the first and second nonlinear transform units are p ( ⁇ 1)
  • the difference probability and the linear probability when approximating each stage are P i ⁇ p 2
  • the difference cryptanalysis guarantees that the input difference to the function f (nonlinear function part) is not 0, and the linear cryptanalysis guarantees that the output mask value of the function f is not 0).
  • the function f is bijective and the number of stages of the encryption device is 3 1 ", the probability of being an encryption device is?
  • the dependent linear transformation unit has a structure that calculates all combinations of three selected from four subdata and one exclusive OR of four divisions of key data
  • the probability of approximating each stage is Pi ⁇ p
  • the probability as a cryptographic device is ⁇
  • the second key-dependent linear transformer selects 6 or 5 selected from 8 sub-data and 1 of 8 divisions of key data if it has a structure for calculating all combinations of bracts of the exclusive OR, probability Pi ⁇ p 5 next time that approximates remarkably, the probability of a cryptographic device ⁇ ⁇ ⁇ ⁇ 1 ( '" ⁇
  • the first and second nonlinear conversion units are arranged so that their respective means can be completely processed in parallel. Because, contributing to speeding.
  • a key spreading unit (using a G function unit having the same function as a function, and an L component output from the G function unit is temporarily stored in a storage unit)
  • an H function unit having a data extraction function for generating a sub-key by extracting necessary information as uniformly as possible from each L component is provided.
  • FIG. 2 is a diagram showing a specific functional configuration of an f function operation unit 12 in FIG.
  • FIG. 3 is a diagram showing a configuration example of an extended key generation routine 21 in FIG.
  • FIG. 4 is a diagram showing a functional configuration of the first embodiment of the present invention.
  • FIG. 5 is a diagram showing a detailed functional configuration example of the nonlinear function unit 304 in the first embodiment.
  • FIG. 6 is a basic configuration diagram of a nonlinear function section for determining an optimal linear conversion section in FIG.
  • FIG. 7 is a diagram showing a specific example of the second key-dependent linear conversion unit 347 in FIG.
  • FIG. 8A is a diagram showing an equivalent functional configuration of the nonlinear conversion unit 343 in the second embodiment.
  • FIG. 8B is a diagram showing an equivalent functional configuration of the nonlinear conversion unit 344 in the second embodiment.
  • FIG. 8C is a diagram showing an equivalent functional configuration of the nonlinear conversion unit 345 in the second embodiment.
  • FIG. 8D is a diagram showing an equivalent functional configuration of the nonlinear conversion unit 346 in the second embodiment.
  • FIG. 9 is a diagram illustrating a functional configuration of a second key-dependent linear conversion unit 347 according to the second embodiment of the present invention.
  • FIG. 10 is a diagram illustrating a functional configuration of a nonlinear function unit 343 according to the third embodiment.
  • FIG. 11 is a flowchart showing a processing procedure for executing data conversion processing by a computer.
  • FIG. 12 is a flowchart showing a detailed processing procedure of step S3 in FIG.
  • FIG. 13 is a diagram showing a functional configuration of a fourth embodiment of the present invention.
  • FIG. 14 is a diagram showing a functional configuration of the nonlinear function unit 304 in FIG.
  • FIG. 15A is a diagram showing a linear conversion unit having a limited configuration to reduce search operations.
  • FIG. 158 is a diagram showing a configuration of one conversion box in FIG. 15A.
  • FIG. 16 is a diagram showing a configuration example of a linear conversion unit 344A determined by a search algorithm.
  • FIG. 17 is a diagram showing an example of a functional configuration of the second key-dependent linear conversion unit 344 in FIG. 14 in the fourth embodiment.
  • FIG. 18 is a diagram showing another functional configuration of the second key-dependent linear conversion unit 344 in FIG. 14 in the fourth embodiment.
  • FIG. 19 is a diagram showing still another functional configuration of the second key-dependent linear conversion unit 344 in FIG. 14 in the fourth embodiment.
  • FIG. 20A shows a nonlinear conversion unit 343 in the fifth embodiment.
  • FIG. 20A shows a nonlinear conversion unit 343 in the fifth embodiment.
  • FIG. 20B is a diagram showing a functional configuration of the nonlinear conversion unit 343, ′.
  • FIG. 20C is a diagram showing a functional configuration of the nonlinear conversion unit 343 7 ′.
  • FIG. 21 is a diagram illustrating a functional configuration of a second key-dependent linear conversion unit 344 according to the fifth embodiment.
  • FIG. 22 is a diagram showing a configuration for executing a data processing procedure program recorded on a recording medium.
  • FIG. 23A is a block diagram showing the principle function configuration of the key generation schedule according to the present invention.
  • FIG. 23B is a block diagram showing the principle function configuration of another key generation schedule according to the present invention.
  • FIG. 24 is a block diagram showing a functional configuration example of the intermediate key generation unit 230 in FIG. 23A or 23B.
  • FIG. 25 is a block diagram showing the functional configuration of the G function part 22 in FIG. 24 when the present invention is applied to the key schedule part in FIG.
  • FIG. 26 is a block diagram showing a functional configuration of a sub-key generation unit 240 in FIG. 23A in a case where the present invention is applied to the key schedule unit in FIG.
  • FIG. 27 is a block diagram showing an example of a functional configuration of the sub-key generation unit 250 in FIG. 23B when the present invention is applied to the key schedule unit in FIG. 3 (in this embodiment, the sub-key generation unit is (Includes the H function part with extraction function)
  • FIG. 28 is a block diagram showing a functional configuration of the G function unit 22 in a case where the present invention is applied so that it can be applied to Feistel-type encryption in which 128 bits constitute one block.
  • FIG. 4 shows a functional configuration of an encryption processing procedure in a data conversion device according to an embodiment of the present invention.
  • the data conversion device comprises a data spreading unit 10 and a key schedule unit 20.
  • the data spreading unit 10 converts the input data into left and right block data. , R.
  • the key schedule section 20 is composed of a key input section 320, a key data generation section 321 and a key storage section 322.
  • the key schedule section 20 is based on data (primary key K) input from the key input section 320 in advance.
  • a plurality of key data (subkeys) are generated by the generation unit 321
  • the input plaintext data M is converted by the initial key-dependent conversion unit 302 using the key data fk stored in the key storage unit 322, and is then harmed to the left and right block data L fl and R embarkby the initial division unit 303.
  • 64 bits of data are divided into 32 bits of block data and divided into R.
  • Linear transformation such as bit rotation (bit rotation) of input data M by logical OR or key data fk, or non-linear transformation combining multiplication is performed.
  • Right block data R Is the key data k stored in the key storage unit 322. () , K 01 , are input to the non-linear function section 304 characteristically constructed according to the present invention, and the non-linear function section 304 performs the data Y by the non-linear conversion processing. Is converted to Data Y. And left block data. Is the data L which is linearly operated by the linear operation unit 305. Converted to *. Data L. * And data R. Are exchanged (swapped) in the data position in the exchange unit 306. Then, —, —, R réelle, R, ⁇ are input to the next first-stage round processing unit 38,.
  • the same processing as described above is repeatedly performed for two input block data. That is, left, and right block data R;.
  • the key data k ⁇ ki ,, k which is stored in the key storage unit 322 2 with the input to the nonlinear function part 304, a non-linear function unit 304 Non-linear conversion processing is performed and converted to data Yi.
  • data Yi and data is-determination in the linear operation section 305
  • the data position is exchanged between the data * and the data in the exchange unit 306, and the data * and the data are exchanged in the following manner.
  • the linear operation unit 305 performs, for example, an exclusive OR operation.
  • the result of the repetition processing by the round processing unit ⁇ ⁇ ⁇ ⁇ is left and right.
  • Block data is obtained, and R is obtained.
  • the data and R are combined at the final combining unit 307, that is, for example, each of 32 bits, and R are bit-combined into 64 bits of data, and then stored in the key storage unit 322.
  • the final key-dependent conversion unit 308 converts the output data C as cipher text from the output unit 309 using the key data ek.
  • plaintext M is obtained from ciphertext C by following the reverse of the encryption procedure.
  • the ciphertext data is input instead of the input data in FIG. ek, k (,-,).
  • K (,, k (, - .. 1) 2, ⁇ ⁇ ⁇ , k 10, k u, k 12, k 0 o, k ,, k 2, fk may be sequentially Ataere a.
  • FIG. 5 shows an extracted functional configuration inside the nonlinear function section 304.
  • the incoming data R, of the i-th round processing unit 38j is input data to the non-linear function unit 304 together with the key data k i ( , k n , k i2 stored in the key storage unit 322.
  • the lock data is subjected to, for example, an exclusive OR operation by the first key-dependent linear conversion unit 341 using the key data k i0, Is linearly transformed to Next, the converted data I is divided into four data in, for example, 8 bits in a dividing unit 342.
  • the second key-dependent linear transformation unit 344 performs linear processing (exclusive OR) on the data mid 0 (1 , mid 01 , mid 02 , and mid n: i ) among the four data systems and performs new processing.
  • Data of four systems, and the data of those systems are divided into four parts of key data k. Each of them is subjected to linear processing (exclusive OR), and outputs data of four systems, mid 1 () , mid, ,, mid ,,, mid 1: ,.
  • These four data are converted by the non-linear converter 345. , 34 ⁇ 345 ,, 345 : i and are respectively set as data out 0 , out ,, out 2 , out :.
  • the nonlinear function section 304 shown in FIG. 5 has a basic configuration as shown in FIG. 6, it is composed of n nonlinear conversion sections (S-boxes) to which m-bit input data are respectively given. From the first non-linear converter 343, the linear converter 344A that linearly converts the n outputs, and the n non-linear converters (S-b ox) that non-linearly convert the n m-bit outputs.
  • the second nonlinear transform unit 345 determines the safety.
  • the linear conversion unit 344A is connected to the nxn on ⁇ 0, 1 ⁇ . It is expressed as a matrix P, and the elements of the matrix P are determined so that the maximum difference probability ⁇ the linear probability P, q is minimized, thereby forming an optimal linear transformation unit 344A.
  • conversion unit by the sub-key k u contained in dependent linear transformation part 344 thereof will be added as key-dependent transformation unit 344B as shown in FIG. 7 with respect to the linear transformation part 344A determined by the matrix P.
  • optimum means that among the linear transformation unit 344A having the above-mentioned structure, the resistance to differential decoding ⁇ linear decoding is the strongest, and it is not necessarily the case that other indices, such as avalanche property, are optimal. Does not mean However, empirically, in general, simply increasing the number of rounds (rounds) can easily evade attacks other than differential cryptanalysis' linear cryptanalysis. Unless the characteristics are considered, it is not clear whether the attack can be evaded simply by slightly increasing the number of stages. Reading ⁇ The most important is the resistance to linear decoding, and the optimal linear conversion unit 344A is obtained.
  • the linear conversion unit 344A is defined as an ⁇ matrix ⁇ ⁇ on ⁇ 0, 1 ⁇ as described above in FIG. Express.
  • the robustness of the round function to differential cryptanalysis and linear cryptanalysis can be determined from the minimum number of active s-boxes n d , n, and these values are determined when the matrix P is determined (see Appendix). .
  • an S-box with a nonzero input difference value ⁇ is called an active s-box
  • an s-box with a nonzero output mask value ry is called an active s-box.
  • the configuration of the corresponding linear transformation unit 344A Exist because the matrix P only represents the relationship between the input data and the output data of the linear conversion unit 344A, and does not specify the specific configuration of the linear conversion unit 344A. Even if the configuration of the linear conversion unit 344A is different, if the matrix P representing the relationship between the input data and the output data of the linear conversion unit 344A is the same, it can be determined that they have the same characteristics. Therefore, in the following, the configuration of the linear transformation unit 344A will be determined after determining a matrix P that is highly resistant to differential and linear decoding and that has good avalanche properties. This is because the linear conversion unit 344A having the optimum characteristics can be found more efficiently than checking whether or not each configuration of the linear conversion unit 344A has the optimum characteristics and selecting the same. .
  • the elements of the nxn matrix P are determined by the following search algorithm paying attention to the difference characteristics.
  • Step 1 Set the security threshold T (T is an integer 2 ⁇ T ⁇ n).
  • Step 2 Prepare a set C of column vectors whose Hamming weight is T-1 or more. Specifically, n or more n-dimensional column vectors with the number of “elements” of T-1 or more are prepared.
  • Step 3 select a set P e of the n-number of column base-vector from the set C. The following process is repeated until all sets of inspections are completed.
  • Step 3-1 Obtain n d for the set of column vectors P c . This is denoted as n d (P c ).
  • Step 3-2 If n d (P c ) ⁇ T, the matrix P c composed of the ⁇ column vectors is adopted as a candidate matrix.
  • Step 4 Among all candidate matrices, output the values of matrices P and n d (P) that give the maximum value of ⁇ ,,.
  • n d has a value of T or more.
  • Step 3-2 execution is performed up to Step 3-2 to obtain a matrix where n d (P c ) ⁇ T Or c, or execute Step 1, select n vectors whose Hamming weight is T-1 or more at St mark 2, and define the matrix Pc It may be used as the target matrix P, 3
  • the input mask value of the linear conversion unit 344A can be expressed by an exclusive OR of the output mask value of the linear conversion unit 344A, it can be expressed as a matrix as in the case of the difference characteristic.
  • Prediction 1 Assume that the linear transformation unit 344A is given by the ⁇ ⁇ ⁇ matrix P on ⁇ 0, 1 ⁇ . This and can input the difference value delta Zeta output difference value delta zeta linear transformation unit 344Arufa 'relationship (difference value path) and is given by the matrix [rho, an input mask value gamma zeta output mask value gamma zeta' with The relation (mask value path) is given by the transposed matrix ⁇ ⁇ . That is,
  • Prediction 2 The minimum number n d of active s-boxes in the difference value path using the matrix ⁇ and the minimum number n of act i ve S -boxes in the mask value path using the transposed matrix ' 1 P of the matrix P are the same It is.
  • n also has a value of T or more.
  • T the matrix of T or more.
  • Step 1 Select two rows in matrix P and add one row (row a) to the other row (row b) (this is called basic operation).
  • Step 2 Using only basic operations, select rows until the matrix P becomes the unit matrix I, repeat the basic operations, count the number of basic operations performed at that time, and minimize the number of basic operations A matrix transformation procedure that satisfies
  • Step 3 To configure the linear transformation unit 344A, in the reverse order of the transformation procedure obtained in Step 2, connect the X0R connection with the A and B lines corresponding to the a and b rows selected in the basic operation at that time. Do.
  • FIG. 7 shows a specific example of the second key-dependent linear conversion unit 344 having the linear conversion unit 344A determined in this way, for example.
  • the data "mid. Mid 02 and mid o ;! are respectively input to the processing system 30. to 30 : ⁇ , and the exclusive OR of mid 00 and mid 01 is processed by the processing system 30.
  • the X0R circuit 31. taken in, also the exclusive OR of the output of the processing system 30 2 mid 02 and XOR circuit 31. is taken at X0R circuit 31 2, and the output of the circuit 31 2 processing system 30, the X0R circuit 31 1 ⁇ 01. Exclusive OR with 1 is taken.
  • Processing system 30 XOR circuit 31 at i . Output and mid.
  • the exclusive OR with : i is taken by the X0R circuit 31 : ⁇ , and the exclusive OR of the output of the X0R circuit 3 and the output of the XOR circuit 31 3 in the processing system 30 is taken by the X0R circuit 32, Processing system 30.
  • exclusive OR of the output of the X0R circuit 32, and the output of the X0R circuit 31 n it is taken in X0R circuit 32 ".
  • X0R circuit 32 (,, 32 "31" 31: each output a sub-key data k i l0 of, k ni, k U2, k il each exclusive OR X0R circuit key-dependent conversion unit 344B with :! 35 (, 35:! at being taken, respectively, and outputs the m id, 0, mid ,,, mid 1, mid it respectively, in other words data mid, mid m, mid 02, mid:.., is mutually
  • a linear transformation is performed depending on the 8-bit sub-key data k, k i , k, l 2 , k li:! , Respectively .
  • the sub-key k is composed of - as shown in FIG. 5, then these data mid 1 (,, mid u, mid 12, mid, :, , in which Resona 'Re nonlinear conversion unit 345 0, 345 ,, 345, 345 :, after being non-linear conversion to the data out, out ,, out 2, ou ,. at the junction 346, the. end coupled to one data ⁇ .
  • s, 345 (the 1-345 respective ;, are those such as, for example, DE S encryption of S-box, for example, configured by R_ ⁇ M Are, respectively receives the input data as an address is for reading the corresponding data.
  • the nonlinear conversion unit 343. 343 3 are arranged four parallel, the conversion process because it does not relate to each other, it can be executed in parallel. The same can be said for the non-linear converters 345 n to 345 : ,. Therefore, each of these nonlinear transformations can be executed in one step (two steps in total as the nonlinear function section 304). Furthermore, the nonlinear conversion unit 343 "343: the differential probability" linear probability of ,, 345. ⁇ 345 3 and p, when used as shown in FIG. 7 to the second key-dependent linear transformation part 344, a nonlinear function differential probability of a whole section 304 'linear probability is P' is one.
  • key data fk, k 00, k () "k () 2, k 10, k,” k 12, ⁇ , k (N - 1) 0, k (, - mountain, k (, - 1 ) 2, ek is converted by the key data generation unit 321 from Shukagi information K ey input from the key generation scheduling part 2 0 of the key input unit 320 in FIG. 4, a data stored in the key storage unit 322.
  • key The generation of key data by the data generation unit 321 is based on the DES encryption May be configured in the same way as the expanded key generation routine 21 of FIG. 3, or may be configured similarly to the expanded key generation routine 21 of Miyaguchi et al. Shown in FIG.
  • the nonlinear conversion unit 343 in FIG. , 343 ,, 343 > 343 3 instead of, for example, an 8-bit input in ( 32-bit expanded data MID for 1 to in 3 ; 0 , MID n personallyID 02) MID 0; i 8A to 8D equivalently, a non-linear conversion unit 343 that outputs by non-linear conversion, using 'to 343 :,', and the key-dependent linear conversion unit 344 shown in Fig. 9 is used.
  • the data is the key data ki stored in the key storage unit 322 as shown in FIG. , Ku , and k i2 together with the input data to the nonlinear function section 304.
  • Data is key data.
  • the data ⁇ ⁇ is calculated by, for example, exclusive OR. Is linearly transformed to Next, the data I is divided into four data iniller, in ,, in 2 and in : i in the dividing section 342. The four data in., In ,, in 2 and in :, are respectively shown in FIG.
  • Non-linear conversion units 343 shown in A to 8D are nonlinearly converted into data MID 00 , MID 01 , MID 02 , and MID ra in ', 343,', 343; to conversion unit 343 0 m bit input in n, whereas the output data mid .. of m bits, wherein the non-linear conversion section 343. 'is shown in FIG. 5 of the first embodiment The same m-bit as the nonlinear transform unit 343. It has an S-box configured to output the data mid (m is output as the upper m bits and the fixed data "0...
  • 0 () is output as the lower m bits, and the upper m bit data mid, ,,, are output to the three systems by wiring, and m bits of “00 ⁇ 0 ⁇ ” are output, that is, the nonlinear conversion unit 343.
  • outputs m-bit data in. 4m bit data
  • nonlinear conversion units 343, 343;, 343, are in, in 2 , in 3 respectively.
  • MID 0 and MID 0I are exclusive- ORed by the X0R circuit 41, and ID 2 and MID. 3 exclusive OR taken in X0R circuit 42, exclusive OR between the output of the X0R circuit 41, 42 is taken at X0R circuit 4 3, exclusive of the output and the key data k u of X0R circuit 4 3 target logical sum is taken by the X0R circuit 4 4.
  • X0R circuit 4 fourth output MID, the output mid ",, mid ,,, mid 12 of the m bits, mid, and output is bit-sliced to.
  • the second key-dependent linear transformer 344 becomes
  • the input is linearly transformed by the operation of.
  • mid 12 mid 00 ®mid 01 ®mid () 2 ®k i l2 (10-3)
  • the data mid in , mid,,, mid, 2 , mid ! are respectively subjected to the nonlinear conversion unit 345 in the same manner as shown in FIG. , 345 ,, 345 2 , 345 : Data out. , Out ,, out 2 , out 3 , and then four data out in the combining unit 346. , Out ,, out 2 , out : i are combined into one data ⁇ ,. *.
  • the data Y is linearly converted to data Y i by, for example, a left rotation of k i2 bits in a third key-dependent linear conversion unit 347 using the key data k i2 , and output data ⁇ ,. Is done.
  • the nonlinear conversion section 343 of FIGS. 343 : i is composed of only S-boxes each outputting 8-bit data ⁇ to ⁇ as in the first embodiment, and the wiring shown in FIGS. 8A to 8D and the 8-bit " A register that outputs 00 'and' 0 'is provided in the key-dependent linear conversion unit 344 in Fig. 9, and the data MID is included in the register. (, ⁇ MID
  • the nonlinear conversion unit 343. 343 :, and 345. ⁇ 345 3 are arranged in parallel one by 4, the non-linear transformation processing because not related to each other, these are all capable of parallel execution. Furthermore, the non-linear conversion units 343 0 to 343 :! , 345. ⁇ 345: differential probability & linear probability of the is P, differential probability and wire form probabilities in the entire non-linear function unit 304 becomes P 4.
  • the key data k i stored in the key storage unit 322 (), k n, with k i2 is input into the nonlinear function part 304.
  • the data is linearly converted to data I-R, .®! ⁇
  • a first key-dependent linear conversion unit 341 using key data k in for example, by exclusive OR.
  • the data I is divided in the dividing section 342 into four data of, for example, 8 bits in (,, in ,, in 2 , in : i .
  • Non-linear converter 343. In, for example, as shown in FIG. Is also for example two 4-bit sub-blocks in. After being divided into ( ) and in Q , in. n is converted into data mid, by the sub-nonlinear converter 51, and in. The exclusive OR with,, is taken by the X0R circuit 52, and its output in () ( , @ in threatenis converted to data mid., By the sub-nonlinear converter 53. Then, these outputs mid The exclusive OR of () 00 and mid 001 is obtained by the R0R circuit 54, and the output of the X0R circuit 54 is integrated with mid ⁇ and converted to mid.
  • the nonlinear converters 343, 343 2 each having two nonlinear converters and two exclusive OR circuits and having the functional configuration shown in FIG. , with 343 3, data mid 01, mid mid 0; converted to i.
  • the converted data mid. ( ,, Mid 01 , mid 02 , and mid 03 are input to the second key-dependent linear conversion unit 344 using the key data k ⁇ ⁇ shown in Fig. 7.
  • the conversion unit 344 uses the above-described equation (7-1). (7-4) are performed.
  • data mid ,. Is also further divided into two sub-blocks mid 100 and mid IOi by the same functional configuration as shown in FIG. 10, for example, in the nonlinear conversion unit 345 n , and m id 1 () .
  • the data mid and mid 1 () 1 exclusive OR is taken by the X0R circuit 5 2
  • the output mid 1M @mid im is converted into data outw by the nonlinear conversion unit 5 3.
  • the nonlinear conversion unit 343 is used. 343 3, 345.
  • the input data therein each of which is non-linear transformation by the two sub-nonlinear transformation part is divided into two data (in FIG. 1 0 5 1, 5 3).
  • the nonlinear conversion unit 343 increases the double bit length that each of the 16 nonlinear conversion units can perform. 343 3, 345.
  • the sub-nonlinear conversion units 51 and 53 are 8-bit S-boxes
  • the non-linear conversion unit 343 is used.
  • 343 3, 345. 345 Each input data to i is 16 bits long, and input data to the non-linear conversion function 304 is 64 bits long.
  • the block length can be 128 bits as a data conversion device having the configuration of FIG.
  • each corresponding to the sub-nonlinear conversion units 51 and 53 is arranged in parallel, and since the non-linear conversion processes are not related to each other, all of them can be executed in parallel. Further, the sub-nonlinear conversion unit 5 1, 5 3 differential probability-linear probability result and p, differential probability & linear probability in the entire non-linear function unit 304 becomes p 4.
  • the first key-dependent linear transformation unit 341, the second key-dependent linear transformation unit 344, and the third key-dependent linear transformation unit 347 do not necessarily depend on the key, that is, without inputting key data, May be performed.
  • Fig. 11 shows a main chart of the processing procedure as a front chart.
  • Fig. 11 shows the processing procedure corresponding to the entire processing in Fig. 4c Step S 1: A variable i representing the number of processing repetitions is initialized to 0.
  • Step S2 Initially convert the input plaintext and divide it into left and right block data Li, ( .
  • Step S3 The right block data is processed by a non-linear function using the subkey to generate block data Y
  • Step S4 Generate block data i by linearly processing the left block data with the block data.
  • Step S5 The right block data is set as new left block data 1 ⁇ , and the block data is set as new right block data.
  • Step S6 Increment i by 1.
  • Step S7 It is determined whether i has reached N, and if not, the process returns to step S3, and the same processing steps S3 to S7 as described above are repeated.
  • Step S8 If it is determined in the previous step S7 that i has reached N, the left and right data are combined; and are output, and the final conversion result is output as spread data C. Details of the processing in step S3 in FIG. 11 correspond to the processing by the nonlinear function unit 304 in FIG. 5, and the processing procedure is shown in FIG.
  • Step S31 Perform first key-dependent linear transformation on the right data to obtain data.
  • Step S33 Data in. , In ,,..., in n _, each with data mid from each of the n first S-boxes. 0, mid 0 "..., mid () reads the (n _ 0.
  • Step S34 The data mid d ⁇ mid ⁇ -D is subjected to a key-dependent linear transformation using the sub-key k to generate data raid 10 to mid 1 (n- !).
  • Step S35 Data mid ,. ⁇ mid 1 (n - ⁇ pieces of the second S-box force data from out upsilon as addresses respectively 0 ⁇ out n -, read out.
  • Step S36 Data out. ⁇ Outmony—, are combined to obtain data ⁇ .
  • Step S37 Data ⁇ , is subjected to a third key-dependent linear transformation to obtain data Y, Generate and output.
  • step S34 may be performed by the formulas (7-1) to (7-4), or by the formula (9) using the definitions of the formulas (8-1) to (8-4). It may be an operation.
  • FIG. 11 shows a case of a processing procedure in which steps S3 to S7 are repeatedly executed by the number of rounds. Each process may be directly converted into a program to realize the data diffusion of the present invention.
  • the basic linear transform unit 344A described in FIG. 6 that constitutes the second key-dependent linear transform unit 344 of the nonlinear function unit 304 is a 4 ⁇ 4
  • the linear transformation unit 344A is represented by an 8 ⁇ 8 matrix
  • FIG. 13 shows a functional configuration of an encryption processing procedure in a data conversion device according to a fourth embodiment of the present invention.
  • This configuration itself is the same as that of the first embodiment shown in FIG. 4. The difference is in the number of data bits and the number of data divisions n in the nonlinear function section 304.
  • the input data M is converted by the initial key dependent conversion unit 302 based on the key data fk stored in the key storage unit 322, and then left and right block data by the initial division unit 303.
  • R is converted by the initial key dependent conversion unit 302 based on the key data fk stored in the key storage unit 322, and then left and right block data by the initial division unit 303.
  • R is converted by the initial key dependent conversion unit 302 based on the key data fk stored in the key storage unit 322, and then left and right block data by the initial division unit 303.
  • R takesFor example, 128-bit data is divided into block data of 64 bits each, and is divided into R 0.
  • the initial key-dependent conversion unit 302 divides the key data fk into the input data M Linear transformation such as exclusive OR or bit rotation (bit rotation) of input data M by key data fk, or non-linear transformation using a combination of multiplication and the like is performed.
  • Right block data R Is the key data k stored in the key storage unit 322. . , K 01 , and k 02 are input to the non-linear function part 304, and the non-linear function part 304 performs a non-linear conversion process to obtain the data ⁇ .
  • L. Is linearly operated by the linear operation unit 305 to obtain data. * Can be converted. Data. * And data R.
  • the exchange of data position is carried out by the exchange unit 3 06, L- R (,, R , - teeth is a, L had R, but the input to the first stage round function module 381 of the next Is done.
  • the same processing as described above is repeatedly performed on the left and right block data LritaR. ,., I
  • the right block data is input to the non-linear function part 304 together with the key data k i () , k, and k i2 stored in the key storage part 322, and the non-linear function part 304 performs the non-linear conversion processing.
  • the block data Yi is calculated by the linear operation unit 305 and converted into data.
  • the data and data are exchanged by the exchange unit 306.
  • R i +, - tooth;. * is exchanged as linear operation unit 3 05 performs a XOR operation for example.
  • the left and right block data, R, and R are obtained as a result of the repetition processing.
  • These block data combines the R N at the final coupling portion 307, i.e. for example to block data for each 6 4-bit ,, R, bonded to the a 128-bit data, thereafter, Kagiki ⁇
  • the final key-dependent conversion unit 308 converts the key data ek stored in 322 into a final key dependent conversion unit 308, and outputs the spread data C as cipher text from the output unit 309.
  • plaintext M is obtained from ciphertext C by following the reverse of the encryption procedure.
  • the final key-dependent transforming unit 308 is the inverse of the initial key-dependent transforming unit 302
  • the ciphertext data is input instead of the input data in Fig. 13 and the key data is inverted to, ek, k (N - ⁇ , k (_ 0 "k (N-1) 2, ⁇ ⁇ ⁇ , k 10, k," a k 12, k () 0, k 01> k 2, fk. It may be given sequentially.
  • FIG. 14 shows an extracted functional configuration inside the nonlinear function section 304.
  • the right block data together with the key data k i0 , k u , and k i2 stored in the key storage unit 322 serve as input data to the nonlinear function unit 304.
  • the right block data is converted into a first key-dependent linear transform unit 341 using the sub-key data k in , for example, Linearly converted to Ri4 ki 0 .
  • Each of the eight data in G to in 7 is a non-linear converter 343. ⁇ 343 7 in the data mid 00 ⁇ mid 07 After that, the data is input to the second key-dependent linear transformation unit 344 using the key data k nourish.
  • the second key-dependent linear transformation unit 344 performs linear processing (exclusive OR) between the data mid n (l , mid 01 , mid 0 , ⁇ , mid. 7 ) input from the eight data systems. Then, new eight sets of data are obtained, and the data of those series are linearly processed (exclusive OR) with the eight parts of the key data k n to obtain eight sets of data mid 1 ( ,, mid ,,, mid 12 ,..., mid 17. These eight data are input to the non-linear converter 345., 345 ,, 345,..., 345 7 and the data out 0 , out 2 , respectively. , Out 7. These eight output data are combined into a data ⁇ by a combining unit 346, and a third key-dependent linear transformation unit 347 performs a linear process on the data ⁇ and the key data k i2. Generates and outputs data by.
  • an 8 ⁇ 8 matrix P that maximizes n d is obtained in the same manner as described in the first embodiment.
  • Step 1 Set the safety threshold T (T is an integer 2 ⁇ T ⁇ n).
  • Step 2 Prepare a set C of column vectors whose Hamming weight is T-1 or more.
  • Step 3 Select a set Pc of eight column vectors from the set C. At this time, if rank (P c ) ⁇ 8, the P c is not a candidate.
  • Step 3-1 Obtain n d for P t as follows.
  • n d0 2 + min # ⁇ (tia, t ib )
  • ndi 3 + min # ⁇ (ti a , t)
  • n d2 3 + min # ⁇ (t ia , t ib , t ic )
  • n d5 4+ min # ⁇ (t ia , t ib , tic , t id )
  • n d6 + min # ⁇ (t ia , t ib , tic , t id ) i (o, o, o, o), (i, o, o, i), excluding (o, i, i, i),, i, i, o), 0 ⁇ i ⁇ 8 ⁇
  • n d8 4 + min # ⁇ (t ia , t ib , ⁇ , ⁇ )
  • n d9 4 + min # ⁇ (t ia, t ib, t ic, t id)
  • n d min ⁇ n di
  • the expression n d . ⁇ n d9 when active s-box number of the first nonlinear transformer 343 (the first term on the right side) have been determined, the minimum number or more in the second nonlinear transformer 345 (right side second term) s- The box becomes active, and the number of active s-boxes at that time becomes more than (the left side). For example, if there are two activ es s-boxes in the first nonlinear transform unit 343, their difference values can be represented as ⁇ 8 and ⁇ resort, respectively.
  • n d the minimum number of active s-boxes in this case.
  • Fig. 15A four conversion boxes B1 to B4 are inserted alternately for the four lines on each of the left and right, but these lines are arbitrarily selected and the remaining four lines are determined. Good. Each conversion box is given input from the four lines into which it is inserted, and input from the remaining four lines, and outputs the conversion results to the former four lines.
  • FIG. 16 shows a configuration example of the linear conversion unit 344A using this matrix together with the nonlinear conversion units 343 and 345.
  • four conversion boxes B1 to B4 are alternately inserted into four lines on the left and right of eight lines from eight S-boxes constituting the first nonlinear conversion unit 343.
  • two X0R circuits are inserted in each line.
  • the linear transformation part 344A that is configured in FIG. 1 6, by configuring the linear path by using the shown to concatenation rules in Theorem 2 in Appendix, the matrix 1 P with respect to the mask value path is determined as follows.
  • FIG. 17 shows a specific example of the second key-dependent linear conversion unit 344 including the linear conversion unit 344A determined as described above and a key conversion unit 344B.
  • the key conversion unit 344B performs an exclusive OR operation of the key data k il (> , k i U , k i l2 , ⁇ , k i l7 and the output of the linear conversion unit with an X0R circuit 63 resort, 63, 63 63, 63 7 and output data mid 1 ( ,, mid, ,, mid ,,,,,
  • mi d,., mid Q0 ®mid n, ⁇ id n 0.2®, mid Interview "0 4 .1®, mid nR ®mid n7 ®k (15-4)
  • mi d,;. mid O (1 0m id n, 0mi d n ⁇ mid ns ®mid oe ®k (15-6)
  • mid, 7 mid n ( , emi d (1. , ®mi d 03 ®mid 01 ®mid 07 ®k, i l7 (15-8)
  • data mid ,. , Mid ,,, mid 12) ..., mid 17 are generated.
  • m id 0 . ⁇ ! nid. 7 are input to the respective pathways 60 u to 60 7.
  • System channel 60 60 , 60 5, 60 6, 60 7 on the X0R circuit 61 61 5, 61 6, 61 7, respectively Rnido, a mid (). , Mid 05 and mid (ll , mid. H and mid. 2 , mid. 7 and mid. : ,, And each exclusive OR operation is performed.
  • Route 60. , 60 ,, 60 60 X0R circuit 61 on the i (
  • circuit 62 In the circuit 62 ,, 62 5, 62 B, 62 7 of the system channel 60 ,, 60 5, 60 6, 60 on 7, respectively X0R circuit 61 3 and the output of 6, X0R circuit 61.
  • 61 5 each output, X0R circuit 61, and 61 each output 6, exclusive summing of the outputs of the X0R circuit 61 2 and 61 7 is made.
  • Route 60. 60 "60 2, 60 :, on X0R circuit 62., 62" 62 2, 62 3, respectively X0R circuit 61. And 62.
  • Each output of X0R circuit 61, and 62 5 of the outputs and X0R circuit 61 2 and 62 ⁇ of the outputs and each output exclusive summing the X0R circuit 61 :, and 62 7 are made.
  • Route 60 X0R circuit 63 on 60 7 () in to 63 7, X0R circuit 62.
  • To 62 7 exclusive summing the respective output and Kagide over data k ilu to k IL7 of taken each system channel 60.
  • Output mid 10 ⁇ mid 17 respectively from 60 7 is output.
  • the outputs mid 10 to mid 1 :! are exclusive ORed with the key data and the six selected from the inputs mid 0 ⁇ ⁇ to mid 07
  • the outputs mid H to mid 17 are the inputs mid.
  • Exclusive OR of the key data with the five selected from nid fl7 is performed.
  • the data mid lu , mid ,,,, mid 12 ,..., Mid 17 are shown in FIG. , 345 ,, 345 2, ⁇ ⁇ , in 345 7, data out. , Out ,, out 2> ⁇ , out ?, at the combiner 346, the eight data out. , Out ,, out 2> ..., Out 7 are combined into one data ⁇ .
  • the data ⁇ is linearly transformed into data Yi by, for example, bit left rotation in a third key-dependent linear transformation unit 347 based on the key data k i2 , and output data Y from the nonlinear function unit 304 is generated. .
  • the ⁇ 345 7 each, for example, like a S- box of DES encryption, for example, constituted by ROM, enter each input data as address is for reading the corresponding data.
  • the nonlinear conversion unit 343
  • This is equivalent to more than 60 rounds when converted to DES encryption, and is a data conversion device that is sufficiently secure against differential cryptanalysis and linear cryptanalysis.
  • a linear conversion means other than that shown in FIG. 17 can be used as the second key-dependent linear conversion section 344. An example is shown in Figure 18. In this case, the following calculation is performed.
  • mi d 10 mi d 01 ®mi d 02 ⁇ mid 01 ®mi d 05 ®mi d 06 ⁇ mi d o7 0k no (16-1)
  • mid 12 mid 00 ®mid 01 ®mid o: i ⁇ mid 04 @mid 05 €> mid 06 4 ki ⁇ 2 (16-3)
  • mid 13 mid 0Q ®mid o; i ⁇ m id 0 ignore8 mid d n6 ⁇ mid 07 ®ki 13 (1-4)
  • mid 12 mid 00 ®mid 02 ®mid 01 ⁇ mid 06 ®mid 01 ®ki 12 (17-3)
  • mid 15 mid 01 ®mid 02 ®mid 03 ®mid 04 ®mid O6 0mid 07 ⁇ kn 5 (17-6)
  • mid l lfi mid 00 ®mid 01 ®mid 02 ®mid 01 ⁇ mi d 05 Smi d 07 ⁇ k f 16 (17-7)
  • mid I 7 mid () ( , ®mid Q2 ⁇ rai d O3 ®mid o1 0mid 0 , -®mid d ft6 ⁇ kn 7 (17-8)
  • the second key-dependent linear transformation unit 344 has eight input data mid, as is clear from the calculations in FIGS. . , Mid 01 , mid 02 , ⁇ ⁇ ⁇ , mid. Out of 7 , 4 output data generated from 6 input data each and 4 output data generated from 5 input data each, total 8 output data midw, mid ,,, mid 12 ,..., mid 17 Is a key-dependent linear transformation that produces, and each of the eight input data mid. Q , mid. Mid 02 , ⁇ , affect output data of at least four or more other systems (for example, in the example of Fig.
  • the input data mid 00 has six output data, mid u and mid 12 , mid 13 , mid 14 , mid 15 , and niid 17 ), the difference probability and the linear probability of the entire nonlinear function part 304 are calculated as described in the example of FIG. the p 5.
  • Key data ⁇ fk, k. . , K. I k. 2 , k 10) ku , k 12 ,..., k (N _ 1) 0 , k (N — blue k ( N — 1) 2 , ek ⁇ are the key information.
  • the data is input to the generation unit 321, converted by the key data generation unit 321, and stored in the key storage unit 322.
  • the generation of the key data by the key data generation unit 321 may be configured in the same manner as the extended key generation routine unit 21 of the DES II shown in FIG. 1 or as described in US Pat. No. 4,850,019.
  • the configuration may be similar to that of the illustrated expanded key generation unit.
  • the initial key-dependent conversion unit 302, the final key-dependent conversion unit 308, and the key-dependent linear conversion units 341, 344, and 347 are linear conversion means depending on the key, they can be used for decryption methods other than the differential decryption method and the linear decryption method. It is a data conversion device that also has sufficient security.
  • the fourth embodiment is not limited to this example.
  • the initial key-dependent conversion unit 302, the final key-dependent conversion unit 308, and the key-dependent linear conversion units 341 and 344, Regarding 347 it is possible to delete any of them or to change to a key-independent conversion means.
  • the encryption processing speed can be improved without significantly lowering the security of the differential cryptanalysis and the linear cryptanalysis.
  • the right block data is input data to the nonlinear function unit 304 together with the key data k i0 , k, and k i2 stored in the key storage unit 322.
  • the data is converted into key data k,... In the first key-dependent linear transformation unit 341 in the same manner as shown in FIG. For example, exclusive OR is taken, Is linearly transformed to Next, the data R is divided into eight data in in the division unit 342. , In ,, in 2 ,..., In 7
  • the eight data in () , in ,, in 2 ,..., in 7 are the nonlinear conversion units 343, respectively.
  • 343 ;, 343,..., 343; are nonlinearly converted to MID MID 01 ( MID. 2 ,..., MID 07.
  • Non-linear converter 343. in (, is 8 Xm bit data
  • the non-linear conversion unit 343, ' has an S-box that outputs data mid 01 in the high-order m bits and outputs “00 ⁇ 0 ( 2 ) ⁇ in the low-order m bits, the wiring to output data mid 0) the branches to 6 strains, forces out by branching the m-bit data "00 ... 0" into two systems.
  • the nonlinear conversion unit 343 2 '343 7 ' is also similarly configured
  • nonlinear variable section 343 7 in FIG. 2 0 C' shows the structure of, and a description thereof will be omitted.
  • these non-linear transformation section 343, 'to 34 3 / each data in, ⁇ in 7 is converted to the following data MIDw MIDn?
  • ID 01 [mid 01 , 00 ⁇ 0 (2) , mid. Not mid. Not mid. Not mid. Not mid. Not mid. Not mid. Not mid. Not mid. I 00 ... 0 ⁇ ] ( 18-2 )
  • MID 5 [mid 05 , mid () 5) 00 ⁇ ⁇ ⁇ 0 (2 ), mid 05) mid 05 , mid 5 , 00 ⁇ ⁇ 0), 00 ⁇ 0 (2 )] (18-6)
  • MID 06 [mid 0fi, mid ofi, mid 0fi, 00 ⁇ 0 (2), 00 ⁇ ⁇ 0 (2), mid 06, mid 06, 00 ⁇ ⁇ ⁇ 0 ( 2) ] ( 18-1 7)
  • MID n7 [00 ⁇ '0 (2) , mid 0Y , mid 07 , mid 07 , 00 ⁇ 0 (2) , 00 ⁇ 0 (2) , mid 07 , mid 07]..
  • data MID as shown in Figure 21. . ⁇ MID. 7 is input to the second key-dependent linear transformation unit 344 using the key data kamba.
  • the second key-dependent linear transformation unit 344 performs an exclusive OR operation on the input data two by two, X0R circuit, ⁇ ⁇ . , and, exclusive of the X0R circuit 42 ,, 42 2 twos their outputs the exclusive OR to each other, and X0R circuit 4 3 taking their exclusive, and its output and the key data k u And an X0R circuit 44 that takes the logical OR.
  • mi d n mid on emi d () i emi d 02 emi d oi emi d 05 emi d 07 eki ,; i (20-4) nii di.i dMiSki H (20-5)
  • mid 15 mid on ⁇ mid 0 , ⁇ id 02 ®mid O5 0m id n6 ®kj 15 (20-6)
  • mi di 7 mid no 0mid 02 9mid 0; i ®mid ni ⁇ mi d O7 0k i l7 (20-8)
  • data mid ,. , Mid ,,, mid 12 , ⁇ , mid, 7 are the nonlinear transformers 345 in Fig. 14, respectively. , 345 ,, 345 2, ..., in 345 7, data out 0, out ,, out ... after being converted non-line-shaped on the out 7, the coupling portion 346, eight data out. , Out ,, out, ⁇ , out 7 are combined into one data Yi *.
  • the data Yi * is linearly converted to data Yi by, for example, a left rotation of k i2 bits in a third key-dependent linear conversion unit 347 using the key data k i2 , and output data Yi from the nonlinear function unit 304 is generated. .
  • the number of exclusive ORs is eight, and the linear transformation equivalent to FIG. 17 is performed. (In FIG. 17, the number of exclusive ORs is 24. ), Conversion can be performed at a higher speed than in the fourth embodiment.
  • the non-linear conversion section 343 (> '343 7' and 345 () ⁇ 345 7 are arranged in parallel one by 8, the non-linear transformation processing are not related to each other Therefore, all of them can be executed in parallel.
  • the difference probability and the linear probability of 'to 343 7 ' are p
  • the difference probability in the entire nonlinear function unit 304 is' the linear probability is p 5 .
  • the second (key-dependent) linear conversion section 344 may use the exclusive OR in the input sub-data without using the key.
  • X0R63 in Figure 17.
  • 1 8 and the corresponding this, 1 9 be omitted 2 1 path portion good les.
  • the first key-dependent linear conversion unit 341, the second key-dependent linear conversion unit 344, and the third key-dependent linear conversion unit 347 are not necessarily key-dependent, that is, input key data. Instead, a linear transformation within the sub-data may be performed.
  • the data diffusion processing according to the fourth and fifth embodiments described above may be realized by executing a program representing the processing procedure on a computer. The processing procedure in that case is the same as that shown in FIGS. 11 and 12, and a description thereof will be omitted.
  • FIG. 22 shows a configuration example in which a program representing the data diffusion processing procedure described in the first to fifth embodiments is recorded in a recording medium in advance, and the program is read to perform the data diffusion of the present invention.
  • Central processing unit (CPU) 110 Central processing unit (CPU) 110, read-only memory (ROM) 120, random access memory (RAM) 130, storage device (for example, hard disk HD) 140, I / O interface 150, and bus 160 connecting these to each other Constitutes a general computer 100.
  • a program for performing the data diffusion processing according to the present invention is stored in, for example, a hard disk 140 as a recording medium.
  • Each S-box is stored in the ROM 120 as a table.
  • a program for executing the data diffusion processing may be stored in an external storage device 180 as a recording medium.
  • the program can be temporarily transferred from the external storage device 180 to the hard disk 140 via the driver 170 and then transferred to the RAMI 30 for use.
  • the output spread data C is not shown, if it is transmitted through, for example, a communication line or the Internet, only a person having a common key can decrypt the spread data c. Since the data c spread according to the present invention has a strong resistance to the differential cryptanalysis and the linear cryptanalysis, more secure transmission of information can be realized.
  • the key generation schedule unit is configured in the same manner as in FIG. 3, the sub-keys used as kj and k i + l in the data spreading unit 10 are the keys in the key schedule unit 20.
  • the sub-keys that are likely to be obtained by the differential cryptanalysis or the linear cryptanalysis are k, k, and _, so by combining these data with the data spreading unit, it is easy to obtain other sub-keys.
  • the key generation algorithm performed by the key generation scheduler 20 for generating the sub-key is made more complicated. Solve this problem.
  • the at least, even been obtained is sub-key and k vl, in order to prevent leakage lot of information about the output of the other data diffusion part, the key spreading unit 22 (FIG illustrated in FIG. 3
  • the L component output from the G function part is temporarily stored in the storage part.
  • an H function unit having a data extraction function for extracting necessary information from each L component as uniformly as possible and generating a subkey is provided.
  • partial information to be used as respective subkeys is extracted from the L component output from the G function part by the H function part, stored in the storage part, and extracted from the required number of L components.
  • a sub-key is generated by extracting information.
  • the sub-key was generated simply by exchanging the bit positions of the primary key, so that the key schedule processing was fast.
  • the key schedule processing was fast.
  • the partial information of the sub-key is known, the corresponding information of the primary key is immediately known.
  • the data diffusion function G function is constructed by using the F function or the subroutine that constitutes the F function (hereinafter, these functions are referred to as f), and the G function is repeatedly called, that is, by using repeatedly. , Generate a plurality of intermediate values L.
  • the G function operates by two input components ( ⁇ , V) and generates three output components ( ⁇ , ⁇ , V).
  • the number of bits of the Y component is equal to or larger than the number of bits of the primary key K.
  • the G function is called repeatedly as many times (M times) as necessary to supply the subkey to the data spreading unit, and generates M L components (0 ⁇ j ⁇ M-1). If the output of the G function called at the jth time is expressed as (L), Yj, vj), part of this value will be called at the (j + 1) th time. G function input (Y j + I ( Where Y is the
  • the value that contains ⁇ in the part, and ⁇ composer is a predetermined value (for example, 0).
  • the H function inputs the subkey i of the subkey and the M L components which are the outputs of the function G, and extracts the information of the bit position determined by i as needed from each of the functions. Things.
  • FIG. 23A shows the principle configuration of the key generation schedule unit of the sixth embodiment applied to the key generation schedule unit 20 shown in FIG.
  • the primary key K is input to the intermediate key generation unit 220.
  • the intermediate key generation unit 220 has a plurality of (M stages) G function parts that operate in cascade, generates an intermediate key, and generates an intermediate key. Are stored in the storage unit 230.
  • the subkeys are generated by the subkey generation unit 240 based on the H function part for the intermediate keys L and M stored in the storage unit 230. The configuration and operation of each part will be specifically described below.
  • each Q component is represented as Q ".
  • Each "Q" is 16 bits.
  • the sub-key generation unit 240 generates a sub-key k from the value of the first bit of each Q; component. , And the sub-key k, is constructed from the value of the second bit of each component.
  • the sub-keys are constructed from the value of the i-th bit of each component. That is, the i-th bit of the Qj component is Q "[i] When expressed, the subkey is expressed by the following equation.
  • ki_, (Q, [i], Q 2 [i], ⁇ , Qj [i],..., Q 16 [i]) (24)
  • is a value of 64 bits, Y ; L is the value of the upper 32 bits of ⁇ ”, and Y / is the value of the lower 32 bits of ⁇ ”.
  • the subkey is i and is expressed by the following equation as a function of.
  • This H function is obtained by subdividing each sub-key by dividing each sign into bits ( ⁇ ⁇ , t 2) ,-, t i2) )
  • the configuration of the intermediate key generation unit 220 shown in FIG. 23A will be described with reference to FIG.
  • the G function parts 22-1 to 22-8 are cascaded, and the primary key K is Y in the G function part 22-1 at the first stage.
  • Step 1 ⁇ ”and V, are input to the G function part 22- (j + 1), and are divided into two blocks (Y, Y /) using the data division device 221 in FIG.
  • Step 2 Output Y as v j + 1 . Also, “Y” L is input to the data spreading section (f k ) 222.
  • Step 3 Input Y to the data exchanger 224. Also, Y / and are input to an exclusive OR circuit 223 to calculate ⁇ / ® ⁇ ”, and the result is input to a data diffusion unit (f k ) 222.
  • Step 4 Y and
  • the data spreading unit f k 222 When receiving as an input, the data spreading unit f k 222 outputs the calculation result as L j + 1 , and at the same time, inputs the calculation result to the data exchanger 224.
  • the eight pieces output by the G function sections 22-1 to 22-8 are temporarily stored in the storage section 230 (FIG. 23A).
  • the H function unit 240 executes the following after reading out the eight L components from the storage unit 230 and ⁇ L plausible.
  • Step 1 Read each word from the storage unit 230 and input it to the bit divider 241. Each bit is read one bit at a time.
  • Step 2 (t, "), t 2 (i) , t 2 (ls + i) ,..., t 8 (i) , t K (' fiii) ) are input to bit combiner 242,
  • k s (t, (i) ) ⁇ , (1 ⁇ + ⁇ ) , t 2 (i) , t 2 (lfi + i) ( ..., t 8 (i ), t 8 (lfi + )
  • FIG. 23B Seventh embodiment Another embodiment that outputs the same subkey as the sixth embodiment will be described with reference to FIGS. 23B, 24, 25, and 27.
  • FIG. 23B Seventh embodiment Another embodiment that outputs the same subkey as the sixth embodiment will be described with reference to FIGS. 23B, 24, 25, and 27.
  • the intermediate key generation unit 220 generates a plurality of intermediate keys.
  • the intermediate key generation unit 220 is the same as that of FIG. 23A, that is, is composed of a plurality of G function units 22 as shown in FIG. Every time an intermediate key is generated by the G function part 22, the intermediate key is generated by the sub-key generation part 250.
  • the information on the bit position determined by the sub-key i and the bit position q is Is selected as the information k iq of the bit position q and stored in the storage unit 260.
  • Step 1 When Yj and are input to the G function part 22-(j + 1), ⁇ ”is divided into two blocks (Y, Y) using the data dividing device 221.
  • Step 2 Output Yj 1 as v j + 1 . Also, Y is input to the data spreading section (fk) 222.
  • Step 3 Input Y to the data exchanger 224. Further, Y and ⁇ ”are input to the exclusive OR circuit 223, and after obtaining Y / ⁇ ”, they are input to the data diffusion unit (f k ) 222.
  • Step 4 Receiving ⁇ ⁇ and Y ® Vj as inputs, data spreading section (f k ) 222 inputs the calculation result to sub-key generation section 250 (FIG. 23B) as L j +
  • Step 6 The sub-key generation unit 250 inputs “as shown in FIG. 27” to the bit splitter 251 and outputs
  • Step 7 Information divider 252 input bit sequence to (tj (1), t / 2); ..., t 2)) bits of to determined by the bit position q of the relative path lame one s i ' If the location information is And the information of bit position q of
  • Equation (43) [i + D ⁇ V0 + (imod2) 'l 2+ (imod2) - "' l 30+ (imod2) / uu, 'l0)," defined as.
  • [i / 2] in Equation (43) represents.
  • Step 1 Only the bit width of f, sets 0123456789abcdefl01112 .... upper or al same number of bits taken out value of (hex) as v n.
  • Step 2 Primary key K is Y. Set to.
  • Step 1 Input ⁇ ”is equally divided into four (Y 0 , Y 2 ), Yj (3) , ⁇ ” ( ' 1) ).
  • Step 3 Vj and L j + 1 ( ( ') are identified .
  • Step 5 Equate Y j + I with (Y j + I ('), Y jt , ⁇ 2) , Y j + i ( :! ), Y J + i (')).
  • Step 6 L J + 1 and (L J + 1 (1) , L j + 1 (2), L 3), equate the teeth ')).
  • Step 7 v j + , far.
  • the above embodiment is not limited to the above example.
  • the calculation result is stored in the corresponding bit position of in the storage unit 260 each time one intermediate key is generated without generating all the intermediate keys. It can be executed as such.
  • the intermediate key generation section 220 and the sub key generation sections 240 and 250 may read and execute the program by the computer shown in FIG.
  • a data conversion device used for an encryption device for concealing data has a structure that satisfies both security and high speed at the same time.
  • a data conversion device that ensures security without greatly increasing the number of stages and that enables high-speed encryption processing. This is useful for an encryption device using a common key cryptosystem that encrypts or decrypts data in block units under control of a secret key.
  • ⁇ and ⁇ represent the input difference value and the input mask value of the linear conversion unit
  • ⁇ ′ and ⁇ ′ represent the output difference value and the output mask value of the linear conversion unit
  • the resistance of the round function to the differential cryptanalysis and the linear cryptanalysis can be determined from the minimum number n d , of the active s-box.
  • linear transformation represented by the matrix [rho E is because it is bijective, ⁇ ⁇ ) 2 If ⁇ "( ⁇ ') is ⁇ 1, Therefore, the number of active s-boxes cannot be 2 and therefore n d 3.
  • n, 3, q ⁇ q.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Storage Device Security (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

明細書
データ変換装置及びそれを実施するプログラムが記録された記録媒体 技術分野
この発明は、 データの通信または蓄積において、 データを秘匿するための暗号 化装置に用いられるデータ変換装置、 特に、 秘密鍵の制御のもとでデータをプロ ック単位で暗号化または復号を行う共通鍵暗号方式による暗号化装置に適するデ 一タ変換装置及びそのデータ変換装置により実行するプログラムを記録した記録 媒体に関する。
従来の技術
高速かつ安全な共通鍵暗号を構成するために、 暗号化対象のデータを適当な長 さのプロックに分割し、 そのデータプロック毎に暗号化する方法をプロック暗号 と呼ぶ。 通常、 ブロック暗号は、 暗号化の対象である入力データを攪乱するため のデータ拡散部と、 喑号装置に入力された秘密の共通鍵 (以降ではこの鍵を主鍵 と呼ぶ) を入力としてデータ拡散部が利用する一連の副鍵を生成するための鍵ス ケジュール部とから構成されている。 データを秘匿するためのこのようなデータ 変換装置に使用される代表的な共通鍵暗号方式には、 米国連邦標準暗号である D E S (Data Encryption Standard) 暗号力ある。
図 1は、 D E S喑号の機能構成を示す。 D E S暗号では、 6 4ビッ トの秘密鍵 (うち 8ビッ トはパリティに用いられる) を用い、 6 4ビッ トのデ一タブロック 単位に暗号化または復号を行う。 図 1において、 暗号化処理は、 データ拡散部 1 0において平文 Mの 6 4ビットを初期転置部 1 1において初期転置で変換した後、 3 2ビットごとのブロックデータし。, R。に分割される。 次に、 ブロックデータ R0は 図 2の第 iラウンド処理部 1 4; (i-0, 1, · · ·, 15) に示すデータ変換部である関数 演算部 (ラウンド関数とも呼ばれる) 1 2へ入力され、 4 8ビットの副鍵 k。の制御 のもとに f (R0, k()) に変換される。 この変換データ f (R。, k0) とブロックデータ L0 との排他的論理和を X O R回路 1 3でとり、 更に、 その出力値とブロックデータ R„ とを入れ替えて、 次のブロックデータし,, R,とする。 即ち、
R, -L()®f (R„, k。) L| =R()
である。 ここで Θは排他的論理和を表わすものとする。 このように 2つのブロック データ L(,, R。を入力として演算部 12と排他的論理和回路 1 3とデータの入れ替え
(スワップ) とにより L,, R,を出力する第 0段ラウンド処理部 14。 が構成され、 同じようなラウンド処理部 14,〜14|5 が縦続的に設けられる。 第 i段ラウンド処理 部 14 ; による処理を第 i段のラウンド処理と呼ぶことにする。 ただし、 i=0, 1, ···, 15 である。 つまり各ラウンド処理部 14 , (0≤ i≤ 15) では、
R1+1 =Lief(Ri, k,)
Li+1 =
の処理が行われ、 最後に Rlfi, し1(¾を統合して64ビッ トにした後、 最終転置部 1 5 において最終転置で変換して暗号文 64ビットを出力する。 なお、 最終転置部 1 5は初期転置部 1 1の逆変換に相当する。
復号処理においては、 関数 f (関数演算部 12) に入力する副鍵 k。, k,,---^,,, k15の順序だけを逆転させて、 k15, kH, ···, k,, k。の順に入力するようにする点を除 けば、 暗号化処理と同じ手順で実行できる。 その場合、 最終段ラウンド処理部 1415 のスワップ出力し Rlfiを、 図に示すように更にスワップするように構成すること により、 復号処理において暗号文を初期転置 1 1に入力して図 1の処理を実行す ることにより、 最終転置 1 5の出力に平文がそのまま得られる。 鍵スケジュール 部 20は、 拡大鍵生成ルーチン 1 6で 64ビッ トの主鍵から 8ビット分のパリテ ィビッ トを除いた 56ビッ トを左右 28ビッ トずつの鍵データに分割し、 それら 各 28ビットの左右鍵データに対し 1 6段の並び替え処理を行い、 各段の並び替 え処理結果の左右鍵データ (計 56ビット) を縮約転置によりデータ拡散部 1 0 の対応するラウンドに与える 1 6個の 48ビッ卜の副鍵 k。, k„ ···, k,„ kisとして 生成する。
関数演算内部 1 2の処理は、 図 2に示すように行われる。 まず、 32ビッ トの ブロックデータ は拡大転置部 1 7で 48ビットデータ E(R に変換される。 こ れに副鍵 kiとで排他的論理和を X0R回路 1 8で取り、 48ビットデータ E(Ri)eki に変換した後、 8個の 6ビッ トごとのサブブロックデータに分割する。 この 8個 のサブブロックデータはそれぞれ異なる S-box S„〜S7に入力され、 各々が 4ビッ トの出力を得る。 なお、 この S- box Sj (j=0, 1, ···, 7) は 6ビッ トの入力データか ら 4ビットの出力データに変換する非線形変換テーブルであり、 DE S暗号の本 質的な安全性を担っている部分である。 S-box S()〜S7の 8つの出力データは、 再 び連結されて 32ビットデータになった後、 転置変換部 1 9を経て、 図 2に示さ れるように関数演算部 1 2の出力 , ) となる。 この出力は、 図 1に示され るように、 L,と排他的論理和されて Ri+1となる。
次に、 暗号解読法について述べる。 DE S暗号を始めとする従来の共通鍵暗号 方式についてはさまざまな方面から暗号解読が試みられており、 そのなかでも、 極めて効果的な解読法は、 E. Biham および A. Shamirによって "Differential Cr yptanalysis of DES- like Cryptosystems, Journal of Cryptology, Vol.4, No. 1, pp.3-72に提案された差分解読法と、 松井によって "Linear Cryptanalysis Me thod for DES cipher, Advances in Cryptology - EUROCRYPT 93 (Lecture Notes i n Computer Science 765), pp.386-397 に提案された線形解読法である。
DES暗号に対する差分解読法は、 2つのデータ X, X*の差分を
ΔΧ = ΧθΧ*
としたとき、 解読者が入手している平文 ·暗号文の 2組を以下の式に適用して、 最終ラウンド 141Sにおける副鍵 kl5 を求めることを目的としている。 図 1の暗号化 処理において、 第 1及び第 2平文を入力したときの各ラウンド処理部 14; での入 カブロックデータを(し R , (じい )とする。 上記差分の定義により次式
厶し1 = ©
ARi=RjeR*i
が成立する。 図 1において、 し : RH,
Figure imgf000005_0001
なので次式
R16=Lls®f(R15, k15)
R*lfi=L*15ef(R*15, k15)
が成立し、 これら 2つの式の両辺の排他的論理和をとると次式
AR16=ALI5®f(Llfi, k15) ef(LlfieALlfi) kI5)
が得 れ その両辺と ΔΙ^=Δί15との排他的論理和をとることにより次の式が得ら れる :
f (Llfi, kl5) ©f (L16eAL,B, k15) = ARlfi®A R,,
このとき、 L1S, Δし 1B, AR1B は暗号文から得られるデータであるので入手済みの情 報である。 このため、 解読者が厶 RH を正しく求めることができるならば、 上式は kls のみが未知定数となり、 入手済みの平文 ·暗号文の組を用いて k,5 に関する全 数探索を行うことで、 解読者は必ず正しい k,5を見つけだすことができる。 従って、 副鍵 k15が求まってしまえば、 残り 8 (即ち 56- 48) ビットは総当たりでも簡単に求 まってしまう。
一方、 ARH についてみてみると、 この値は中間差分値であるため、 一般には求 めることが困難である。 そこで、 第 0ラウンドから最終ラウンドの一つ前までの 第 1 4段ラウンドまでにおいて、 各ラウンド (段) が確率 P iで次式
△ Ri+ 1 = l i ®A {f ( AR j ) }
△ Li+1 = ARi+1
のように近似されるとおく。 ここでのポイントは、 ある Δ が入力されたとき、 副鍵 k ,の値に関わらず、 確率 で Δ ^ ( Δ )}を予測できるということにある。 こ のように近似できるのは、 非線形な変換である S - box において、 入力差分によつ ては差分出力の分布に極めて大きな偏りが生じるためである。 例えば、 S-box S(1で は、 入力差分" 110100 'のとき、 1/4 の確率で出力差分" 0010(2) "に変換されるため である。 そこで、 各々の S- box が確率 psi で入力差分と出力差分との関係が予測で きるとおき、 これらを組み合わせることで各ラウンドの近似を求める。 更に、 各 ラウンドでの近似を連結していくことで、 ΔΙ^ は確率 P=ni=(l Ki P i で AL(,, A R() ( Δ L„, ΔΙ^は平文から得られるデータであるので入手済みの情報である) から求めら れることになる。 なお、 この確率 Ρが大きいほど、 暗号解読が容易である。 この ようにして、 副鍵 k15が求められると、 今度は 1段少ない 1 5段 D E S暗号とみな して、 同様の手法で、 副鍵 kMを求めていくということを繰り返して、 最終的に副 鍵 k。まで求めていく。
この解読法による暗号解読が成功するかどうかは確率 Pに依存し、 この値が大 きいほど成功しやすい。 Bi ham らによると、 この解読法では、 2 '17組の解読者が選 択した既知平文 ·暗号文の組を入手できれば D E S暗号を解読できるとしている。 また、 D E S暗号に対する線形解読法は、 以下の線形近似式を構成し、 解読者 が入手している平文 ·暗号文の組による最尤法を用いて副鍵を求めることを目的 としている。
(し'), R。) r (L。, R0) ®(Llfi, R,«) Γ (L16( R16)
= (k(), k , , ···, k ) Γ (k0, k , , ···, k,s)
ただし、 Γ (Χ) は Xの特定のビッ ト位置を選択するベク トルを表し、 マスク値と いう。
線形近似式の役割は、 暗号アルゴリズム内部を線形表現で近似的に置き換え、 平文 ·暗号文の組に関する部分と副鍵に関する部分とに分離することにある。 つ まり、 平文 ·暗号文の組に関して、 平文の特定のビット位置の値と暗号文の特定 のビッ ト位置の値との全ての排他的論理和が一定値となり、 その値は副鍵の特定 のビッ ト位置の値の排他的論理和に等しくなることを表している。 従って、 解読 者は
(し。, R。) r (し。, R0) e(Llfi, R16) r (Llfi) R16)
の情報から
(kfl, k„ · ··, kl5) Γ (k(), k„ ···, k ) ( 1 ビット)
の情報が得られるということになる。 このとき、 (し。, R。), (Llfi, R16)はそれぞれ平 文 ·暗号文のデータであるので入手済みの情報である。 このため、 解読者が r (L0, R。), Γ (L16, R16) , T (k。, k„ ···, k15) を正しく求めることができるならば、 (k0, k„ ···, kls) Γ (k0, k„ ·'·, k,5) ( 1 ビット) を求めることができる。
D E S暗号では、 非線形な変換が起きる部分は S- box しかないため、 S-box に ついてのみ線形表現ができれば、 容易に線形近似式が構成できる。 そこで、 各々 の S- box が確率 psi で線形表現できるとおく。 ここでのポイントは、 S - box に対す る入力マスク値が与えられたとき、 確率 Psi でその出力マスク値を予測できるとい うことにある。 これは、 非線形変換テーブルである S - box において、 入力マスク 値によっては差分マスク値の分布に極めて大きな偏りが生じるためにおこる。 例 えば、 S-box S4では、 入力マスク値" 010000 'のとき、 3/16の確率で出力マスク値 " 111 1 (2) "が予測されるためである。 これら S- box におけるマスク値を組み合わせ ることによって、 各ラウンドが確率 P iで入力マスク値と出力マスク値との線形表 現ができ、 各ラウンドでの線形表現を連結していくことで、 Γ (し。, R。), r (Ll fi, R 16), r (k。, k„ · · · , k15) は確率
Figure imgf000008_0001
で求められることになる。 なお、 この確率 Pが大きいほど、 暗号解読が容易であ る。
松井によると、 この解読法で、 2 '13組の既知平文 '暗号文の組を用いて、 D E S 喑号の解読に成功している。
さて、 上記の解読法に対抗するためには、 確率 Pが十分に小さくなればよい。 このため、 確率 Pを小さくするための提案がさまざま行われており、 なかでも従 来の暗号方式において、 もっとも簡単に安全性を高めるための方法がラウンド数 (段数) を増やすことであった。 例えば、 D E S暗号を 3つつなげた Triple - DES 喑号は、 実質的に D E Sのラウンド数を 1 6段から 4 8段に増やした暗号方式で あり、 確率 Pは、 D E S喑号よりもはるかに小さレ、。
しかし、 上記の解読法に対抗するための対策として、 ラウンド数 (段数) を増 加させることは、 暗号化速度を犠牲にすることになる。 例えば、 ラウンド数を 3 倍に増やせば、 暗号化速度は 1 /3 になる。 つまり、 現在の D E S暗号の暗号化速 度は Pentium PCクラスで約 1 O Mbpsであるため、 Triple— DES 暗号ともなると約 3. 5Mbps まで暗号化速度が低下する。 一方で、 ネットワークやコンピュータなどは 年々高速化しており、 データ変換装置もそれらの高速化に対応したものが望まれ ている。 このため、 従来のデータ変換装置では、 それらの高速化の要求に対して、 安全性と高速性を同時に満たすことはきわめて困難な状況になっている。
また、 上述のように、 差分解読法や線形解読法では最終ラウンドの副鍵が求め られる。 D E S暗号の場合、 最終ラウンドの副鍵が求められてしまうと、 そこか ら容易に主鍵が求められてしまうという欠点があるため、 鍵スケジュール部 2 0 の副鍵と主鍵の対応関係を更に複雑にすることで、 安全性を向上する方法が米国 特許 No. 4, 850, 019に提案されている。 その原理的構成を図 3に示す。 上記米国特 許では、 データ拡散部(fk)を用いて主鍵から副鍵を生成することで、 例えばデー タ拡散部(fk)を用いて主鍵から副鍵を生成することで、 例えば副鍵が求まつたと しても簡単には主鍵が求まらないことを期待している。
上記米国特許で示されている鍵スケジュール部 2 0の概要を図 3を参照して次 に説明する。拡大鍵生成ルーチン 21はそれぞれ鍵拡散部 22。〜22、/2 を有する N/2 (例 えば N=16) 段の鍵処理部 21。〜21、/2„,から成る。 各鍵処理部 21j (j=0, 1 , · ' ·, Ν/2 - 1) は与えられた各 3 2ビットの入力左右鍵データを拡散処理し、 その出力左右鍵デ ータは左右が入れ替えられて次段の鍵処理部 21j+1 に左右鍵データとして入力され る。 初段を除く各鍵処理部 21」 は排他的論理和部 23』 を有し、 前段の鍵処理部 21j_, の入力左鍵データと出力左データの排他的論理和を演算し、 その演算結果を鍵拡 散部 22」 に与える。 鍵処理部 21jの入力左鍵データは鍵拡散部 22」 で排他的論理和 2 3」 の出力により拡散され次段の入力右鍵データとして出力され、 鍵処理部 21」. の 入力右鍵データは次段の入力左鍵データとして出力される。 各鍵拡散部 22」 の出力 はビット分割されて 2つの副鍵 Q2j, Q2j+1 (即ち k,., ki+1)として図 1の対応する第 i= 2jラウンド処理段と第 i+l=2j+lラウンド処理段に与えられる。
6 4ビッ トの主鍵はそれぞれ 3 2ビットの左右鍵データに分割され、 初段の鍵 処理部 21。 において左鍵データを右鍵データで鍵拡散部 22。 により拡散して拡散左 鍵データとし、 この拡散左鍵データと右鍵データの左右を入れ替えて左右鍵デー タとして次段の鍵処理部 21, に与える。 鍵処理部 21。〜21Ν/2— ,の鍵拡散部 22„〜22N/2— ,の出力は副鍵 kQ 〜! として図 1に示したデータ拡散部 1 0の対応するラウンド 1 4。〜 1 4 N_,に与えられる。
しかしながら、 図 3の拡大鍵生成ルーチン 21において、 各鍵拡散部 22」· は 2つの 入力データから 1対の鍵データ (副鍵 」·, Q2j+1) を生成出力する関数であり、 これ ら 2つの入力データの一方と、 出力データとが判明すれば、 他方の入力データを 知ることができる性質を備えているとき、 仮に 3対の副鍵 Q2j2, Q2J -, ; Q2J, Q , ; Q 2jt2, Q2j+3 が判明したと仮定すると、第 j+1段の鍵拡散部 22j+1において、その出力(副 鍵 Q2j+2, Q2j+:s) と、 一方の入力デ―タ (副鍵 ¾ , Q2j-,) がわかっているので、 他の 入力データ (即ち排他的論理和部 23j+ 1の出力データ) を求めることができ、 その 求めたデータと排他的論理和部 23J+iの一方の入力データである副鍵 Q2j, Q2j とか ら排他的論理和部 23j の他方の入力データである前段 (第 j段) の鍵拡散部 22」の 入力、 即ち、 3段前 (第 j_2段) の鍵拡散部 22」_2の出力である副鍵 Q2j_,, Q2j_3 が求 まる。 この様な操作を順次繰り返すことで、 データ拡散部 1 0におけるデータを 解析すること無しに、 鍵スケジュール部 2 0におけるデータのみを解析すること で全ての副鍵を決定できてしまう。 ここでは連続した 3段分の副鍵が求まると全 ての副鍵が求まることを指摘したが、 連続 2段分の副鍵を知っている場合には、 隣接する他の 1段分の副鍵を総当たりで推定することでも、 攻撃に成功する。 図 1のラウンド処理の最終段を i=N とすると、 差分解読法及び線形解読法では、 副鍵 kN,kwが求まりやすい。 それらを使って上述のように鍵スケジュール部 21にお ける鍵データの解析を行うことにより全ての副鍵が求まる可能性がある。
この発明の第 1の目的は、 ラウンド関数 ί (関数演算部) を安全性と高速性を 同時に満たすような構造にすることによって、 ラウンド数 (段数) を大幅に增加 させることなく安全性を確保し、 かつ高速な暗号化処理が可能となるようなデー タ変換装置及びデータ変換を実施するプログラムを記録した記録媒体を提供する ことにある。
この発明の第 2の目的は、 一部の副鍵が知られた場合においても、 鍵スケジュ —ル部を解析するだけでは他の副鍵及び主鍵が簡単には求まらないような鍵スケ ジュール部を実現することである。
発明の開示
この発明の第 1の目的を達成するため、 特に非線形関数部において、 非線形関 数部の入力データに対し鍵記憶部に蓄積された第 1鍵データに基づいて線形変換 を行う第 1鍵依存線形変換部と、 その第 1鍵依存線形部の出力データを η個のサ ブデータに分割する分割部と、 これらの各サブデータに非線形変換を行う第 1非 線形変換部と、 その第 1非線形変換部の各々の出力サブデータに対し第2鍵デ— タに基づいて線形変換を行う第 2鍵依存線形変換部と、 その第 2鍵依存線形変換 部の出力サブデ一タに非線形変換を行う第 2非線形変換部と、 その第 2非線形変 換部の出カサブブロックを結合して非線形関数部の出力データとする結合部とを 備えており、 上記第 2鍵依存線形変換手段は、 その入力に対し n X n行列で規定 される排他的論理和を行う線形変換部を含んでいることを特徴とする。
この発明によれば、 第 1及び第 2非線形変換部における差分確率 ·線形確率が p ( < 1 ) であるとき、 各段を近似するときの差分確率 ·線形確率は P i≤p2 (た だし、 差分解読法では関数 f (非線形関数部) への入力差分が 0でないとき、 線 形解読法では関数 f での出力マスク値が 0でないとき) となることが保証される。 また、 闋数 f が全単射であるとき、 暗号装置の段数を 3 1 "とすると、 暗号装置と しての確率は?≤ ≤ となる。 更に、 特に n = 4の場合の第 2鍵依存線形変換 部が 4つのサブデータから選んだ 3つと鍵データの 4分割の 1つの排他的論理和 の全ての組合せを演算する構造を有するならば、 各段を近似するときの確率は Pi≤ p 暗号装置としての確率は Ρ≤ρΛ≤ρ となる。 η = 8の場合の第 2鍵依存線形変 換部が 8つのサブデータから選んだ 6つ又は 5つと、 鍵データの 8分割の 1つと の排他的論理和の全ての組み合わせを演算する構造を有するならば、 格段を近似 するときの確率は Pi≤p5となり、 暗号装置としての確率は Ρ < ρ^< ρ1('"·となる。 また、 第 1および第 2非線形変換部はそれぞれの手段が完全に並列処理できる ような配置となっているため、 高速化に寄与する。
ゆえに、 差分解読法や線形解読法に対する安全性を有した高速な非線形関数を 構成でき、 安全性と高速性を両立させたデータ変換装置を提供することが可能に なる。
この発明の第 2の目的を達成するため、 鍵スケジュール装置において、 鍵拡散 部 (関数 と同様の働きをする G関数部を用い、 G関数部の出力である L成分 が記憶部に一旦記憶され、 必要な個数だけ L成分を求めた後に、 それぞれの L成 分から出来るだけ均一に必要となる情報を抽出して副鍵を生成するデータ抽出機 能を備えた H関数部が設けられる。 更に、 G関数部の出力である L成分からそれ ぞれの副鍵として使用される部分情報が H関数部で抽出され、 記憶部に記憶され、 必要な個数の L成分から部分情報を抽出することで副鍵が生成される。 図面の簡単な説明 図 1は従来の D E S暗号装置の機能構成を示す図。
図 2は図 1中の f 関数演算部 1 2の具体的機能構成を示す図。
図 3は図 2における拡大鍵生成ルーチン 21の構成例を示す図。
図 4はこの発明の第 1実施例の機能構成を示す図。
図 5は第 1実施例における非線形関数部 304 の詳細な機能構成例を示す図。 図 6は図 5における最適線形変換部を決めるための非線形関数部の基本構成図。 図 7は図 5中の第 2鍵依存線形変換部 347 の具体例を示す図。
図 8 Aは第 2実施例における非線形変換部 343 の等価的機能構成を示す図。 図 8 Bは第 2実施例における非線形変換部 344 の等価的機能構成を示す図。 図 8 Cは第 2実施例における非線形変換部 345 の等価的機能構成を示す図。 図 8 Dは第 2実施例における非線形変換部 346 の等価的機能構成を示す図。 図 9はこの発明の第 2実施例における第 2鍵依存線形変換部 347 の機能構成を 示す図。
図 1 0は実施例 3における非線形関数部 343 の機能構成を示す図。
図 1 1はデータ変換処理をコンピュータで実施する処理手順を示すフローチヤ ―ト。
図 1 2は図 1 1におけるステップ S 3の詳細な処理手順を示すフローチャート。 図 1 3はこの発明の第 4実施例の機能構成を示す図。
図 1 4は図 1 3における非線形関数部 304 の機能構成を示す図。
図 1 5 Aは探索演算を削減するため限定した構成の線形変換部を示す図。
図 1 5 8は図1 5 Aにおける 1つの変換ボックスの構成を示す図。
図 1 6は探索アルゴリズムにより決定した線形変換部 344Aの構成例を示す図。 図 1 7は第 4実施例における図 1 4中の第 2鍵依存線形変換部 344 の機能構成 例を示す図。
図 1 8は第 4実施例における図 1 4中の第 2鍵依存線形変換部 344 の他の機能 構成を示す図。
図 1 9は第 4実施例における図 1 4中の第 2鍵依存線形変換部 344 の更に他の 機能構成を示す図。 図 2 0 Aは第 5実施例における非線形変換部 343。'の機能構成を示す図。
図 2 0 Bは非線形変換部 343,'の機能構成を示す図。
図 2 0 Cは非線形変換部 3437'の機能構成を示す図。
図 2 1は第 5実施例における第 2鍵依存線形変換部 344 の機能構成を示す図。 図 2 2は記録媒体に記録されたデータ処理手順プログラムを実行する構成を示 す図。
図 2 3 Aはこの発明による鍵生成スケジュールの原理機能構成を示すプロック 図。
図 2 3 Bはこの発明による他の鍵生成スケジュールの原理機能構成を示すプロ ック図。
図 2 4は図 2 3 A又は 2 3 B中の中間鍵生成部 230 の機能構成例を示すプロッ ク図。
図 2 5はこの発明を図 3の鍵スケジュール部に適用した場合の図 2 4中の G関 数部 2 2の機能的構成を示すプロック図。
図 2 6はこの発明を図 3の鍵スケジュール部に適用した場合の図 2 3 A中の副 鍵生成部 240 の機能的構成を示すブロック図。
図 2 7はこの発明を図 3の鍵スケジュール部に適用した場合の図 2 3 B中の副 鍵生成部 250 の機能的構成例を示すブロック図 (この実施例では副鍵生成部がビ ット抽出機能をそなえた H関数部をその一部に含む)
図 2 8はこの発明を 1 2 8ビットを 1つのプロックとする Feistel型暗号に適用 できるように応用した場合の G関数部 22の機能的構成を示すプロック図。
発明を実施する最良の形態
第 1実施例
以下、 この発明の一実施例を図面を用いて説明する。
図 4は、 この発明の一実施例を示すデータ変換装置における、 暗号化処理手順 の機能構成を示したものである。 データ変換装置は、 データ拡散部 1 0と鍵スケ ジュール部 2 0とから構成され、 この発明によるデータ変換装置においても、 デ ータ拡散部 1 0には入力データを左、 右ブロックデータし。, R。に分害 ijし、 それらを 順次ラウンド処理する N段に縦続接続されたラウンド処理部 38。〜38\_,が設けられ、 各ラウンド処理部 38 (1=0, 1,···, N-1)は図 1のラウンド関数部 1 2に対応する非線 形関数部 304 と、 図 1の X0R回路 1 3に対応する線形演算部 305 と、 交換部 306 とから構成されている。
平文に相当する入力データ Mを入力部 301 から暗号装置内に入力する。 鍵スケ ジュール部 2 0は、 鍵入力部 320 と、 鍵データ生成部 321 と、 鍵記憶部 322 とか ら構成され、 予め、 鍵入力部 320 から入力されたデータ (主鍵 K ) に基づいて鍵 データ生成部 321 により複数の鍵データ (副鍵)
{ fk ; k00, k01, k02 ; k10, kn, k1; · · ' ; k(N1)0, k( _]) p ^(N D2 ; ek }
が生成され、 鍵記憶部 322 に保持される。 入力平文データ Mは、 鍵記憶部 322 に 蓄積されている鍵データ fkによる初期鍵依存変換部 302 で変換された後、 初期分 割部 303 で左、 右ブロックデータ Lfl, R„に分害リされる。 例えば 6 4ビッ トのデータ が 3 2ビッ 卜ずつのブロックデータし。, R。にビット分割される。 初期鍵依存変換部 302 では、 例えば鍵データ fkと入力データ Mとの排他的論理和や鍵データ fkによ る入力データ Mのビッ トローテーション (ビット回転) などの線形変換、 もしく は乗算などを組み合わせた非線形変換が行われる。
右ブロックデータ R。は、 鍵記憶部 322 に蓄積されている鍵データ k。(), k01 , と ともにこの発明により特徴的に構成された非線形関数部 304 に入力され、 非線形 関数部 304 で非線形変換処理によりデータ Y。に変換される。 データ Y。と左ブロック データし。は線形演算部 305 で線形演算されてデータ L。*に変換される。 データ L。*と データ R。は交換部 306 でデータ位置の交換 (スワップ) が行われ、 し,— R„, R,— とされ、 L,, が次の第 1段ラウンド処理部 38, に入力される。
以下、 第 i段ラウンド処理部 38i (i=0, 1, · ' ·,Ν- 1)において、 2つの入力ブロック データし について上記と同様の処理を繰り返し行う。 即ち、 左、 右ブロックデ ータし R;について、 データ は、 鍵記憶部 322 に蓄積されている鍵データ k^ ki,, k.2 とともに非線形関数部 304 に入力され、 非線形関数部 304 で非線形変換処理が 行われて、 データ Yiに変換される。 データ Yiとデータし ;は線形演算部 305 で演算さ れてデータし に変換される: デ一タ * とデータ は交換部 306 でデータ位置の交 換が行われ、 しい,— , Rw—し のように交換される。 線形演算部 305 は例えば排 他的論理和演算を行うものである。
暗号化を行うためのデータ変換装置としての安全性を確保するための適切な操 り返し回数 (ラウンド回数) を Nとすると、 ラウンド処理部 Βδ^ βδ^による繰り 返し処理の結果、 左、 右ブロックデータし、, R、が得られる。 このデータレ, R、を最 終結合部 307 で結合し、 つまり例えば 3 2ビットの各し、, R、をビッ ト結合して 6 4 ビットのデータとし、 その後、 鍵記憶部 322 に蓄積されている鍵データ ekによる 最終鍵依存変換部 308 で変換し、 出力部 309 から暗号文として出力データ Cを出 力する。
復号については、 暗号化処理手順と逆の手順をたどることによって、 暗号文 C から平文 Mが得られる。 特に、 最終鍵依存変換部 308 、 初期鍵依存変換部 302 の逆変換になっているならば、 図 4において入力データの代りに暗号文データを 入力し、 鍵データを図 4とは逆に、 ek, k(、— ,)。, k (、— , k (、― 1) 2, · · · , k10, ku, k12, k0 o, k。,, k。2, fkを順次与えればよい。
次に、 非線形関数部 304 の内部を詳細に説明する。 図 5は、 非線形関数部 304 の内部の機能構成を抜き出して示したものである。
第 i段ラウンド処理部 38j の入カブ口ックデータ R,は、 鍵記憶部 322 に蓄積され ている鍵データ ki(,, kn, ki2 とともに非線形関数部 304 への入力データとなる。 ブ ロックデータ は、 鍵データ ki0 による第 1鍵依存線形変換部 341 により例えば排 他的論理和がとられてデータ
Figure imgf000015_0001
に線形変換される。 次に、 この変換され たデータ I は分割部 342 において例えば 8ビットづつの 4つのデータ in。, in,, i n„ in:,にビット分割される: 4つのデータ in„, in,, in2, in3は、 それぞれ非線形 変換部 343(,, 343,, 3432, 343:,において、 データ midm), mid。い mid02, mid。:!に非線形 変換された後、 第 2鍵依存線形変換部 344 に入力される。
第 2鍵依存線形変換部 344 では、 4つのデータ系統から入力されたデータ mid0(1, mid01, mid02, midn:iを系統間で互いに線形処理 (排他的論理和) して新たな 4つの 系統のデータとし、 更にそれらの系列のデータを鍵データ k の 4つの部分により それぞれ線形処理 (排他的論理和) して 4つの系統のデータ mid1(), mid, ,, mid,,, m id1:,を出力する。 これら 4つのデータは非線形変換部 345。, 34δ 345,, 345:iに入力 され、 それぞれデータ out0, out,, out2, out:,とされる。 これら 4つの出力データ は結合部 346 で結合されてデータ Υ,·* とされ、 更に第 3鍵依存線形変換部 347 にお いてデータ丫 と鍵データ ki2 との線形処理によりデータ を生成して出力する。 上述の第 2鍵依存線形変換部 344 は、 データ mid。„, mi d01, mi d。2, mi dMに対応し て設けられたデータ処理系統 30。, 30„ 30„ 30:, 間でこの発明によるアルゴリズム に従ってデータの排他的論理和をとることにより、 図 4のデータ変換装置のラウ ンド数を増やさずに安全性を高めるよう構成される。 図 4のデータ拡散装置の差 分解読及び線形解読に対する安全性は、 各ラウンドの非線形関数部 304 の構成に 依存し、 特に図 5に示す非線形関数部 304 のが図 6に示すような基本構成のとき、 mビットの入力データがそれぞれ与えられる n個の非線形変換部 (S- box) から成 る第 1非線形変換部 343 と、 それらの n個の出力を線形変換する線形変換部 344A と、 その n個の mビット出力をそれぞれ非線形変換する n個の非線形変換部 (S - b ox) から成る第 2非線形変換部 345 とによって安全性が決まる。 特に、 いかにし て差分解読及び線形解読に対する耐性が強い最適な線形変換部 344Aを構成するか が重要である。 この発明によれば、 線形変換部 344Aを {0, 1 }上の n x n行列 Pとし て表現し、 その行列 Pの要素を最大差分確率 '線形確率 P、 qが最小となるよう に決定していくことにより、 最適な線形変換部 344Aを構成する。 ただし、 第 2鍵 依存線形変換部 344 に含まれる副鍵 kuによる変換部は行列 Pにより決定した線形 変換部 344Aに対し図 7に示すように鍵依存変換部 344Bとして付加することとする。 なお、 " 最適である" とは、 上記の構造を有する線形変換部 344Aの中で差分解 読♦線形解読に対する耐性が最も強くなるということであり、 必ずしも他の指標、 例えばァバランシュ性などについても最適であることを意味するわけではない。 し力 し、 経験的にいえば、 一般に段数 (ラウンド数) を増やすだけでも差分解読 ' 線形解読以外の攻撃を容易に回避できる—方、 差分解読 ·線形解読については注 意深くラウンド関数の特性を検討しなければ段数を多少増やしただけで攻撃を回 避できるかどうかはわからない。 そこで、 この発明では、 ラウンド関数の差分解 読 ·線形解読に対する耐性を最も重視し、 最適な線形変換部 344Aを求める c この発明によれば、 図 6において上述のように線形変換部 344Aを {0, 1}上の ηχ η行列 Ρとして表現する。 この行列 Ρは、 mビッ ト単位での線形変換であり、 そ の線形変換部 344Aが排他的論理和 X0R だけで構成できることを意味する。 即ち、 この変換を次式 z'i=㊉ (1)
j=0 で表すことができる。 特に、 m= 8の場合はバイ ト単位での線形変換となり、 ヮ ード幅が 8ビッ ト以上のいずれのプラットフオームにおいても効率的な実装が可 能となる。
例えば n = 4の場合の具体例として、 次式
Figure imgf000017_0001
で表される 4x4行歹 IJP,.: を説明する。 行列 PE を用いて構成したラウンド関数は 以下の性質を有する。 ただし S - box は全単射であると仮定する。 上記行列式によ り規定される ζ'。, ζ' „ ζ' 2, ζ , はそれぞれ以下の演算を表している。
ζ' 0 = 0·ζ0θ1·ζ,Θΐ·ζ2Θΐ·ζ:) = ζ1Θζ2Θζ3 (3—1)
ζ' ,= 1·ζ0Θθ·ζ,θ1·ζ2Θΐ·ζ:) = ζ0θζ,θζ;! ό~2)
ζ' 2= 1·ζ0θ1·ζ1Θΐ·ζ2Φθ·ζ:, = ζ0€)ζ1φζ2 (3-3)
ζ';, = 1 ·ζ0θ1 ·ζ , θΐ -ζ.,θΐ ·ζ;, = ζ0θζ, φζ2θζ:! (3-4)
差分解読及び線形解読に対するラウンド関数の耐性は、 active s-box の最少個 数 nd, n, から決めることができ、 これらの値は行列 Pを決定した時点で決まる値 である (付録参照) 。 差分解読法では入力差分値 Δχが非零である S- box を active s-box と呼び、 線形解読法では出力マスク値 ryが非零である s- box を active s - box と呼ぶ。
一般に、 ある行列 Pが与えられたとき、 それに対応する線形変換部 344Aの構成 は複数存在する: なぜなら、 行列 Pは線形変換部 344Aの入力データと出力データ との関係を表しているだけであり、 線形変換部 344Aの具体的構成を規定している わけではない。 線形変換部 344Aの構成が異なっても、 線形変換部 344Aの入力デー タと出力データとの関係を表す行列 Pが同じであるならば、 それらは同じ特性を 持つものと判断できる。 従って、 以下では差分解読及び線形解読に対する耐性が 高く、 かつァバランシュ性がよくなるような行列 Pを決めた後に線形変換部 344A の構成を決めることにする。 その方が、 線形変換部 344Aの個々の構成について最 適な特性を有するかどうかを調べて選択していくより効率よく、 最適な特性を有 する線形変換部 344Aを見つけることができるためである。
n x n行列 Pの要素は、 差分特性に注目して以下の探索アルゴリズムによって決 定される。
Step 1 :安全性閾値 T (Tは 2≤T≤nなる整数) を設定する。
Step 2:ハミング重みが T-1 以上となる列べク トルの集合 Cを用意する。 具体 的には要素" の数が T-1 以上の n次元列べク トルを n個以上用意する。
Step 3:集合 Cから n個の列べク トルの組 Peを選択する。 全ての組の検査を完了 するまで以下の処理を繰り返す。
Step 3- 1 :列べク トルの組 Pcについて、 ndを求める。 このことを nd (Pc)と表 す。
Step 3-2: nd (Pc)≥T ならば、 その η個の列べク トルで構成される行列 Pc を候補行列として採用する。
Step 4:全ての候補行列の中で、 最大の η,,の値を与えた行列 Pと nd (P)の値を出 力する。
上記探索アルゴリズムによる候補行列を採用するならば、 ndが T以上の値を持つ ことが保証される。 ndが最大となるような行列 Pを求めるには上記探索アルゴリズ ムを実行する毎に Tを T=n, η - 1 , · · · , 3, 2 の順に 1ずつ減らしていくことで、 効 率よく行列 Ρを発見できる。
上記探索アルゴリズムにおいて、 差分解読及び線形解読に対しある程度満足い く耐性が得られるのであれば、 Step 3 - 2まで実行して nd (Pc)≥Tとなる行列を目的 とする行列 Pとして使用してもよレ、 c あるいは、 Step 1を実行し、 St印 2でハミ ング重みが T - 1以上となるベタ トルを n個選択し、 それにより構成した行列 Pcを目 的とする行列 Pとして使用してもよレ、 3
線形変換部 344Aの入力マスク値は、 線形変換部 344Aの出力マスク値の排他的論 理和によって表現可能であるので、 差分特性の場合と同様に、 ある行列として表 現できる。 幾つかの線形変換部 344Aの構成について、 差分特性に注目した行列と 線形表現に注目した行列との関係を調べた結果、 以下の 2つの予測ができた。
予測 1 :線形変換部 344Aが {0, 1 }上の η χ η行列 Pで与えられたとする。 このと き、 線形変換部 344Αの入力差分値 Δ Ζと出力差分値 Δ ζ'との関係 (差分値パス) は行列 Ρで与えられ、 入力マスク値 Γ ζと出力マスク値 Γ ζ' との関係 (マスク値パ ス) は転置行列 ΤΡで与えられる。 即ち、
Figure imgf000019_0001
と表すことができる。
予測 2 :行列 Ρを用いた差分値パスにおける active s- boxの最少個数 ndと行列 P の転置行列'1 Pを用いたマスク値パスにおける act i ve S-boxの最少個数 n】は同じであ る。
上記予想 2から、 前述の探索アルゴリズムによる候補行列を採用するならば、 n, も T以上の値を持つ。 例えば先の行列 PRの場合、 差分値パスに対する行列 PEと、 マ スク値パスに対する行列 は以下のようになる。
Figure imgf000019_0002
この 2つの行列について、 それぞれ nd=3, 1^=3であることを証明することができる (付録参照) 。
行列 pが与えられたとき、 それに対応する線形変換部 344Aの構成を決めるアル ゴリズムを以下に示す。 ここでは、 (1) 排他的論理和(XOR) の個数を最少にする、 又は
(2) 同じような副構成が繰り返し現れる、
を満たすようにする。
Step 1 :行列 Pにおいて、 2つの行を選択し、 一方の行 (a行) にもう一方の 行 (b行) を加える (基本演算と呼ぶ) 。
Step 2:基本演算のみを用いて、 行列 Pが単位行列 Iになるまで行を選択し、 基本演算を行うことを繰り返し、 そのときに行った基本演算の回数を数え、 基本 演算の回数が最少となるような行列変形手順を求める。
Step 3:線形変換部 344Aを構成するために、 Step 2で求めた変形手順の逆順に、 そのときの基本演算で選択した a行、 b行に相当する Aライン、 Bラインとの X0R 結線を行う。
この様にして決められた線形変換部 344Aを有する第 2鍵依存形線形変換部 344 の具体例を例えば図 7に示す。 線形変換部 344Aにおいて、 データ " mid。 mid 02, mido;! はそれぞれ処理系 30。 〜30 に入力され、 処理系 30。 で mid00 と mid01 との 排他的論理和が X0R回路 31。 でとられ、 また処理系 302 で mid02 と XOR回路 31。の出 力との排他的論理和が X0R回路 312 でとられ、 更にその回路 312の出力は処理系 30, の X0R回路 311で1^ 01。1 との排他的論理和がとられる。
処理系 30:i で XOR回路 31。 の出力と mid。:i との排他的論理和が X0R回路 31でとら れ、 処理系 30, で X0R回路 3 の出力と XOR回路 313 の出力との排他的論理和が X0R 回路 32, でとられ、 処理系 30。で X0R回路 32, の出力と X0R回路 31n の出力との排他 的論理和が X0R回路 32„ でとられる。
X0R回路 32(,, 32„ 31„ 31:,の各出力と副鍵データ ki l0, kn i, kU2, ki l:!との各排他 的論理和が 鍵依存変換部 344Bの X0R回路 35(,〜35:!でそれぞれとられて、 それぞれ m id,0, mid,,, mid1 , mid iを出力する。 つまりデータ mid, midm, mid02, mid。:,は相 互に関連づけられた後、 それぞれ各 8ビットの副鍵データ k , ki , k,l 2, kl i:! に 依存した線形変換が行われる。 論理式で示すと下記の論理演算がなされる。
mid1()=midooemido20mido:ieki ui (7-1)
midn
Figure imgf000020_0001
(7 - 2)
Figure imgf000021_0001
なお、 副鍵 k,,は 4つのデータ kil(l, kjM , kil , kil:iで構成されている- 図 5に示したように、 次に、 これらデータ mid1(,, midu, mid12, mid,:,は、 それそ' れ非線形変換部 3450, 345,, 345 , 345:,において、 データ out。, out,, out2, ou に 非線形変換された後、 結合部 346 において、 一つのデータ丫 に結合される。 つま り例えば 4つの 8ビッ卜のデータが 1つの 3 2ビットデータにビット結合される。 最後に、 データ Y は、 鍵データ ki2による第 3鍵依存線形変換部 347 において、 例 えばデータ Yi* を ki2ビッ ト左ローテーションによりデータ に線形変換され、 非線 形関数部 304 からの出力データ が生成される。 非線形変換部 343。〜343:s, 345(1 〜 345;, のそれぞれは、 例えば DE S暗号の S-box のようなものであり、 例えば R〇 Mにより構成され、 それぞれ入力データをアドレスとして入力し、 対応するデー タを読み出すものである。
ここで、 非線形変換部 343。〜3433は 4つ並列に配置されており、 その変換処理は 相互に関連していないため、 これらは並列実行が可能である。 また、 非線形変換 部 345n〜345:,についても同様のことがいえる。 このため、 これら両非線形変換はそ れぞれ 1ステップ (非線形関数部 304 としては合計 2ステツプ) で実行すること ができる。 また、 非線形変換部 343„〜343:,, 345。〜3453の差分確率 '線形確率が p とすると、 第 2鍵依存線形変換部 344 に図 7に示したものを用いた場合、 非線形 関数部 304 全体における差分確率 '線形確率は P'1 となる。 従って、 データ変換装 置全体では段数 (ラウンド数) を 3rとして確率 P≤p8l_で近似表現でき、 例えば r = 4 (段数 1 2段) とすると P≤p:i2である。 これは D E S暗号に換算すると 4 8段以 上に相当し、 差分解読法および線形解読法に対して十分安全なデータ変換装置と なる。
なお、 鍵データ fk, k00, k()„ k()2, k10, k,„ k12, ···, k(N1)0, k (、—山, k (、― 1)2, ek は 図 4において鍵生成スケジュール部 2 0の鍵入力部 320 から入力された主鍵情報 K ey から鍵データ生成部 321 によって変換され、 鍵記憶部 322 に蓄積されたデータ である。 鍵データ生成部 321 による鍵データの生成は、 図 1に示した D E S暗号 の拡大鍵生成ルーチン部 21と同様に構成してもよいし、 あるいは図 3に示した宮 口らの拡大鍵生成ルーチン部 21と同様に構成してもよレ、。
図 4に示した初期鍵依存変換部 302 、 最終鍵依存変換部 308 、 及び図 5に示し た各非線形関数部 304 内の鍵依存線形変換部 341, 344, 347 は鍵に依存する線形 変換部であるため、 差分解読法および線形解読法以外の解読法に対しても十分な 安全性を兼ね備え、 最も安全性を重視した暗号装置である。
なお、 この発明はこの例に特定されるだけでなく、 例えば高速性を望むのであ れば、 これら初期鍵依存変換部 302 、 最終鍵依存変換部 308 、 鍵依存線形変換部 3 41 , 344, 347 については、 そのいずれか 1つを削除する、 又は鍵に依存しない変 換手段に変更することが可能である。 この場合、 差分解読法および線形解読法に 対する安全性をそれほど低下させることなく暗号化処理速度の向上が望める。
第 2実施例
図 4に示した第 1実施例と同様の構成を有するデータ変換装置において、 図 5 に示す非線形関数部 304 として他の機能構成を用いた別の実施例を説明する。 こ の実施例は、 図 5における非線形変換部 343。, 343,, 343 > 3433の代わりに、 それ ぞれ例えば 8ビットの入力 in(1〜in3に対して 3 2ビットの拡大データ MID。0, MIDn„ ID02) MID0;iを非線形変換により出力する等価的に図 8 A〜 8 Dで示す非線形変 換部 343。'〜343:,'を使用し、 鍵依存線形変換部 344 として図 9に示すものを使用す る。
図 5に示したのと同様にデータ は、 鍵記憶部 322 に蓄積されている鍵データ ki 。, ku, ki2と共に非線形関数部 304 への入力データとなる。 データ は、 鍵データ 。による第 1鍵依存線形変換部 341 で、 例えば排他的論理和によりデータ θΐ^。に線形変換される。 次に、 データ I は分割部 342 において 4つのデータ in„, in,, in2, in:iに分割される。 4つのデータ in。, in,, in2, in:,は、 それぞれ図 8 A 〜 8 Dに示す非線形変換部343。', 343,' , 343; , 343; において、 データ MID00, MI D01, MID02, MIDraに非線形変換される。 第 1実施例では、 非線形変換部 3430が mビ ット入力 innに対し、 mビットのデータ mid。。を出力したのに対し、 ここでは、 非線 形変換部 343。'は、 第 1実施例の図 5における非線形変換部 343。 と同じ mビットの データ mid(m を上位 mビットとして出力すると共に、 下位 mビッ トに固定データ" 0 0· · ·0( を出力するよう構成された S - box を有し、 その上位 mビッ トデータ mi d,,,, を布線により 3系統に出力すると共に mビットの" 00· · ·0ω"を出力するよう構成さ れている。 即ち、 非線形変換部 343。'は mビットのデータ in。 を 4mビットのデータ
MID00= Lmid00, 00· ··0(2), mid00, mid0()] (8-1)
に変換する手段である。 同様に、 非線形変換部 343, 343; , 343, はそれぞれ in, in2, in3
MID0I― L00- - -0(2), mid01, mid01, mid01] (8-2)
MID0 = [mid02, mid02, mid02, 00- ··0(2)] (8-3)
ID(I3= [mido:i, mid0;j, 00· · ·0(2), mid()3] (8-4)
に変換する手段である。 式(8-1 )で表されるデータ MID。。 の決め方は、 予め図 7の 線形変換部 344Aにおいてデータ midM 以外のデータ mid01, mid02, mid0;! 全てをそれ ぞれ" 00· · ·0(2)〃とおいた場合に線形変換部 344Aの出力 4系統に得られるデータ全体 を MID。。 とすればよい。 以下同様にして式 (8-1) , (8-2) , (8-3) で表されるデータ MID01) MID()2, MIDo:! についてもそれぞれ容易に決めることができる。 これら非線形 変換部 343„' 〜3433'はそれぞれデータ in。, in,, in2, in3 をアドレスとし、 デ一タ M ID, MID0„ MID ID(), を直接読み出す変換テーブルとしてメモリにより構成し てもよい。
次いで、 これらデータ MID。。〜MID。3は図 9に示す鍵データ k„による第 2鍵依存線 形変換部 344 に入力される。 MID。0と MID0Iは X0R回路 41で排他的論理和がとられ、 ID。2と MID。3は X0R回路 42で排他的論理和がとられ、 X0R回路 41, 42の両出力の排他 的論理和が X0R回路 4 3でとられ、 X0R回路 4 3の出力と鍵データ kuとの排他的論 理和が X0R回路 4 4でとられる。 X0R回路 4 4の出力 MID,は各 mビットの出力 mid„,, mid,,, mid12, mid ,にビット分割されて出力される。 結局、 この第 2鍵依存線形変 換部 344 は次式
Figure imgf000023_0001
の演算で入力を線形変換する。
この線形変換演算による出力 MID,二 [mi d,0, midn, mid12, mid13]の成分はそれぞ れ次式で表される :
m 1 d , 0 = m 1 d00 em i d02 ©m 1 dfl;! ek j ( 10-1)
Figure imgf000024_0001
mid12=mid00®mid01®mid()2®ki l2 (10-3)
midi:i=midoo0mi doi®mido 0ki i:i (10-4)
これは、 図 7における線形変換式 (7- 1)〜(7- 4)と等価な線形変換である。 このよ うにして第 1実施例と同じデータ mid1(,, midu, mid1 , mi d13が生成される。 なお、 k„は 4つのデータ ki l0, ki n, ki , ki l3で構成されている。
次いで、 データ midin, mi d, ,, mid,2, mid !は、 図 5に示したのと同様にそれぞれ 非線形変換部 345。, 345,, 3452, 345:! において、 データ out。, out ,, out2, out3に 非線形変換された後、 結合部 346 において、 4つのデータ out。, out,, out2, out:i が 1つのデータ Υ,.* に結合される。 最後に、 データ Y は、 鍵データ ki2による第 3 鍵依存線形変換部 347 において、 例えば ki2ビット左ローテーションによりデータ Y iに線形変換され、 非線形関数部 304 力 の出力データ Υ,.が生成される。
図 8 A〜8 D、 9に示した第 2実施例において、 図 8 A〜 8 Dの非線形変換部 3 43。〜343:i は第 1実施例と同様にそれぞれ各 8ビッ トのデータ^ 〜^^ を出力 する S- box のみで構成し、 図 8 A〜 8 Dで示した布線と 8ビットの" 00' · '0"を出力 するレジスタを図 9の鍵依存線形変換部 344 内に設け、 その中でデータ MID。(,〜MID
03 を生成するようにしてもよレ、。
この第 2実施例における第 2鍵依存線形変換部 344 では、 図 9に示したように 4つ排他的論理和により図 7と等価な線形変換 (図 7では排他的論理和の個数は 1 0個) を実現しているため、 第 1実施例より高速な変換が可能になる。
また、 第 1実施例と同様に、 非線形変換部 343。〜343:, と 345。〜3453 は 4つずつ 並列に配置されており、 その非線形変換処理は相互に関連していないため、 これ らはすべて並列実行が可能である。 更に、 非線形変換部 3430〜343:!, 345。〜345:! の 差分確率 ·線形確率が Pとすると、 非線形関数部 304 全体における差分確率 ·線 形確率は P 4 となる。
第 _3実施例 第 1実施例と同様に、 図 4に示す機能構成を有するデータ変換装置において、 その非線形関数部 304 の内部の機能構成として更に別のものを用いた実施例を説 明する。
図 5に示したように例えば 3 2ビッ卜のデータ は、 鍵記憶部 322 に蓄積されて いる鍵データ ki(), kn, ki2 とともに非線形関数部 304 へ入力される。 データ は、 鍵データ kin による第 1鍵依存線形変換部 341 で、 例えば排他的論理和によりデー タ I -R,.®!^ に線形変換される。 次に、 データ I は分割部 342 において例えば 8 ビットの 4つのデータ in(,, in,, in2, in:iに分割される。
非線形変換部 343。 において、 例えば図 1 0に示すように、 in。は更に例えば 4ビ ットの 2つのサブブロック in。()と inQ,に分割された後、 in。nはサブ非線形変換部 5 1によりデータ mid,に変換され、 また in。,との排他的論理和が X0R回路 5 2でとら れ、 その出力 in()(,@in(„はサブ非線形変換部 5 3によりデータ mid。。,に変換される。 ついで、 これら出力 mid()00と mid001の排他的論理和力 ¾0R回路 5 4でとられ、 その X0R 回路 5 4の出力と mid^を統合して mid。。に変換する。 つまり、 非線形変換部 343。は 入力 in。を 2つのサブブロックに分割し、 これら 2つのサブブロックについて、 そ れぞれ線形変換と非線形変換を行い、 その 2つの出カサブブ口ックを統合して非 線形変換部の出力とする。 同様に、 in, in2 in:,についても、 それぞれ 2つの非線 形変換部と 2つの排他的論理和回路とよりなる図 1 0に示した機能構成の非線形 変換部 343,, 3432, 3433 を用いて、 データ mid01, mid mid0;i に変換する。
変換されたデータ mid。(,, mid01, mid02, mid03は、 図 7に示した鍵データ k„による 第 2鍵依存線形変換部 344 に入力される。 この変換部 344 によりそれぞれ前述の 式(7-1)〜(7-4)の演算が行われる。
次いで、 データ mid,。は、 非線形変換部 345n においても、 例えば図 1 0に示した のと同様の機能構成により、 更に 2つのサブブロック mid100と midIOiに分割され、 m id1()。はサブ非線形変換部 5 1によりデータ out0。に変換され、 一方、 データ mid と mid1()1は X0R回路 5 2により排他的論理和がとられ、 その出力 mid1M@midimは非線形 変換部 5 3によりデータ outwに変換される。 ついで、 データ out。。と outo,の排他的 論理和が X0R回路 5 4によりとられ、 その出力 out00®out01と out01 ^統合して out() に変換する。 同様に、 mi du, mi d12, mi d1:,についても、 それぞれ 2つのサブ非線形 変換部 5 1, 5 3と 2つの排他的論理和回路 5 2, 5 4とよりなる図 1 0に示し たのと同様の機能構成の非線形変換部 345,, 345 , 3453 によりデータ out out2, out;1に変換される。
これら非線形変換された 4つのデータ out。, out ,, out2, out3は、 結合部 346 に おいて一つのデータ Yi* に結合される。 最後に、 データ Y は、 鍵データ ki 2による 第 3鍵依存線形変換部 347 において、 例えば ki2ビット左ローテーションによりデ 一タ丫1に線形変換され、 非線形関数部 304 力^の出力データ Yiが生成される。
この様に、 この第 3実施例においては、 非線形変換部 343。〜3433, 345。〜3453で は、 それぞれその内部で入力データが 2つのデータに分割されて 2つのサブ非線 形変換部 (図 1 0では 5 1 , 5 3 ) により非線形変換される。 このため、 これら 1 6個の各非線形変換部がそれぞれ极うことのできる 2倍のビッ ト長を、 非線形 変換部 343。〜3433, 345。〜3453 への入力データとすることができる。 例えば、 サブ 非線形変換部 5 1 , 5 3を 8ビット長の S-box とすると、 非線形変換部 343。〜3433, 345。〜345:i への各入力データは 1 6ビット長となり、 非線形変換関数 304 への入 力データは 6 4ビット長となる。 これにより、 図 4の構成を有するデータ変換装 置として、 ブロック長を 128 ビットとすることができる。
また、 サブ非線形変換部 5 1 , 5 3対応のものは 8つずつ並列に配置されてお り、 その非線形変換処理は相互に関連していないため、 これらはすべて並列実行 が可能である。 更に、 サブ非線形変換部 5 1, 5 3の差分確率 ·線形確率が pと すると、 非線形関数部 304 全体における差分確率 ·線形確率は p 4 となる。
上述において第 1鍵依存線形変換部 341 , 第 2鍵依存線形変換部 344 及び第 3鍵 依存線形変換部 347 は必ずしも鍵依存とすることなく、 つまり鍵データを入力す ることなく、 サブデータ内での線形変換を行ってもよい。
前述の各実施例ではハ一ドウエア構成として説明したが、 そのデータ処理をプ ログラムに従って実行するソフトウェアにより実現してもよレ、。 例えば、 その処 理手順の要部をフ口一チャートとして図 1 1に示す。 図 1 1は図 4の処理全体に 対応する処理手順を表している c ステップ S 1 :処理繰り返し回数を表す変数 iを 0に初期化する。
ステップ S 2 :入力平文を初期変換してから左右ブロックデータ Li, ( に分割 する。
ステップ S 3 :副鍵 を使って非線形関数により右プロックデータ を処理して ブロックデータ Y|を生成する。
ステップ S 4 :左ブロックデータ をブロックデータ で線形処理してブロック データじ i を生成する。
ステップ S 5 :右ブロックデータ を新しい左ブロックデータ 1^とし、 ブロック データ を新しい右プロックデータ とする。
ステップ S 6 : iを 1だけインクリメントする。
ステップ S 7 : iが Nに達したか判定し、 達してなければステップ S 3に戻り、 前述と同様の処理ステップ S 3〜S 7を繰り返す。
ステップ S 8 :前ステップ S 7で iが Nに達していると判定されると、 左右デ ータし;, を結合し、 更に最終変換した結果を拡散データ Cとして出力する。 図 1 1のステップ S 3の処理の詳細は図 5の非線形関数部 304 による処理に対 応し、 その処理手順を図 1 2に示す。
ステップ S 3 1 :右データ に対し第 1の鍵依存線形変換を行い、 データ と する。
ステップ S 3 2 :データ を mビットずつ n分割してデータ in。, inい…, inn_, を生成する (例えば m=8, rv=4である) 。
ステップ S 3 3 :データ in。, in,, …, inn_, をそれぞれア ドレスとして n個の 第 1の S-box からそれぞれデータ mid。0, mid0„ …, mid()(n_0 を読み出す。
ステップ S 3 4 :デ一タ mi d^ mid^-D に対し副鍵 k を使った鍵依存線形変換 を行い、 テータ raid10〜mid1 (n—!)を生成する。
ステップ S 3 5 :データ mid,。〜mid1 (nυ をそれぞれアドレスとして η個の第2の S-box 力 らデータ out0〜outn— , を読み出す。
ステップ S 3 6 :データ out。〜out„— , を結合してデータ Υ を得る。
ステップ S 3 7 :データ Γ, に対し、 第 3の鍵依存線形変換を行ってデータ Y,を 生成し、 出力する。
上記ステップ S 3 4の演算は、 式(7- 1)〜(7 - 4)による演算でもよいし、 又は式(8 - 1)〜(8- 4)の定義を使った式(9) による演算でもよい。 更に、 図 1 1ではステツ プ S 3乃至 S 7をラウンド数だけ繰り返し実行する処理手順の場合を示したが、 図 3に示した N段のラウン
Figure imgf000028_0001
それぞれの処理をそのままプログ ラム化してこの発明のデータ拡散を実現してもよい。 第 4実施例
前述の図 4に示した第 1実施例は、 その非線形関数部 304 (図 5 ) の第 2鍵依 存線形変換部 344 を構成する図 6で説明した基本線形変換部 344Aを 4 x 4の行列で 表す場合 (即ち、 4入力、 4出力の場合) の実施例であつたが、 以下に示す第 4 実施例では、 線形変換部 344Aを 8 X 8行列で表す場合について説明する。
図 1 3は、 この発明の第 4実施例を示すデータ変換装置における、 暗号化処理 手順の機能構成を示したものである。 この構成自体は図 4に示した第 1実施例の ものと同じである力 異なる点は、 データのビット数と、 非線形関数部 304 にお けるデータの分割数 nである。
入力データ Mは、 鍵記憶部 322 に蓄積されている鍵データ fkによる初期鍵依存 変換部 302 で変換された後、 初期分割部 303 で左、 右ブロックデータし。, R„ に分 割される。 例えば 128 ビットのデータが 6 4ビットずつのブロックデータし。, R0 に分割される。 初期鍵依存変換部 302 では、 例えば鍵データ fkと入力データ Mと の排他的論理和や鍵データ fkによる入力データ Mのビットローテーション (ビッ ト回転) などの線形変換、 もしくは乗算などを組み合わせた非線形変換などが行 われる。
右ブロックデータ R。は、 鍵記憶部 322 に蓄積されている鍵データ k。。, k01, k02 と ともに非線形関数部 304 に入力され、 非線形関数部 304 で非線形変換処理が行わ れてデータ γ。に変換される。 データ γ。とデータ L。は線形演算部 305 で線形演算され てデータし。 *に変換ざれる。 データし。 *とデータ R。は交換部 306 でデータ位置の交換 が行われ、 L— R(,, R,—し とされ、 Lい R,が次の第 1段ラウンド処理部 381 に入力 される。
以下、 第 i段ラウンド処理部 38; (i=0, 1 , ' · ·, Ν- 1)において、 左右ブロックデータ L„ R,について上記と同様の処理を繰り返し行う。 即ち、 左右ブロックデータし,., i について、 右ブロックデータ は、 鍵記憶部 322 に蓄積されている鍵データ ki(), k , ki2と共に非線形関数部 304 に入力され、 非線形関数部 304 で非線形変換処 理が行われて、 プロックデータ Υ,·に変換される。 ブロックデータ Yiと は線形演算 部 305 で演算されてデータし に変換される。 データし とデータ は交換部 306 で データ位置の交換が行われ、 し Ri+,—し;*のように交換される。 線形演算部 3 05 は例えば排他的論理和演算を行うものである。
データ変換装置としての安全性を確保するための適切なラウンド繰り返し回数 を Nとすると、 繰り返し処理の結果、 左右ブロックデータし、, R、が得られる。 こ れらのブロックデータ , RNを最終結合部 307 で結合し、 つまり例えば各 6 4ビ ットのブロックデータし、, R、を結合して 128 ビットのデータとし、 その後、 鍵記 憶部 322 に蓄積されている鍵データ ekによる最終鍵依存変換部 308 で変換し、 出 力部 309 から暗号文として拡散データ Cを出力する。
復号については、 暗号化処理手順と逆の手順をたどることによって、 暗号文 C から平文 Mが得られる。 特に、 最終鍵依存変換部 308 が初期鍵依存変換部 302 の 逆変換になっているならば、 図 1 3において入力データの代りに暗号文データを 入力し、 鍵データを図 1 3とは逆に、 ek, k(Nυο, k( _0„ k(N-1)2, · · ·, k10, k,„ k12, k()0, k01 > k。2, fkを順次与えればよい。
次に、 非線形関数部 304 の内部を詳細に説明する。 図 1 4は、 非線形関数部 304 の内部の機能構成を抜き出して示したものである。
右ブロックデータ は、 鍵記憶部 322 に蓄積されている鍵データ ki0, ku, ki2と 共に非線形関数部 304 への入力データとなる。 右ブロックデータ は、 副鍵データ kinによる第 1鍵依存線形変換部 341 、 例えば排他的論理和によりデータ
Figure imgf000029_0001
Ri④ ki 0に線形変換される。 この変換されたデータ I は分割部 342 において例えば n = 8個のデ一タ in。, in,, in2, …, in7 に分割される。 8つのデータ inG 〜in7 は、 それぞれ非線形変換部 343。〜3437において、 データ mid00〜mid07 に非線形変換さ れた後、 鍵データ k„による第 2鍵依存線形変換部 344 に入力される。
第 2鍵依存線形変換部 344 では、 8つのデータ系統から入力されたデータ midn(l, mid01, mid0, ··■, mid。7を系統間で互いに線形処理 (排他的論理和) して新たな 8 つの系統のデータとし、 更にそれらの系列のデータを鍵データ kn の 8つの部分に よりそれぞれ線形処理 (排他的論理和) して 8つの系統のデータ mid1(,, mid,,, mid 12, …, mid17を出力する。 これら 8つのデータは非線形変換部 345。, 345,, 345 , ···, 3457に入力され、 それぞれデータ out0, outい out2, ···, out7とされる。 これ ら 8つの出力データは結合部 346 で結合されてデータ丫 とされ、 更に第 3鍵依存 線形変換部 347 においてデータ丫 と鍵データ ki2 との線形処理によりデータ を 生成して出力する。
第 2鍵依存線形変換部 344 は、 図 6で説明したと同様に ηχη行列で表される線 形変換部 344Αを含んでおり、 この第 4実施例では η = 8である。 ただし、 線形変 換部は全単射であると仮定する。 即ち、 mnk(P)=8である。 以下に、 第 1実施例で 説明したと同様に、 ndが最大となるような 8x8行列 Pを求める。 ここでは、 安全 閾値 Tを T=8, 7, .... と順次減らし、 各値毎に以下のアルゴリズムを実行する。
Step 1 :安全閾値 T (Tは 2≤T≤nなる整数) を設定する。
Step 2:ハミング重みが T-1以上となる列べク トルの集合 Cを用意する。
Step 3:集合 Cから 8個の列べクトルの組 Pcを選択する。 このとき、 rank(Pc)≠ 8ならば、 その Pcは候補としなレ、。
Step 3-1 : Ptに対する ndを以下のようにして求める。
•任意の 2列 (a,b列) について
nd0=2 + min#{(tia,tib) | tia① tib≠ 0, 0≤i<8}
(a,b)
•任意の 3列 (a, b,。列) について
ndi =3+ min #{(tia,t )|tia®tib®tic≠0,0≤iく 8}
(a, b, c) nd2=3+ min #{(tia, tib, tic) | (0,0,0),(1,U)を除く, 0≤i<8}
(a,b,c) •任意の 4列 (a, b, c, d列) について
(0.0,0,1), (0,0,1,0), (0,1,0,0), (1,0.0.0) 0 <:<8i nd3 = 4+ min ^(( , , ) (0,I,1
fa, b, c,d) ,1),(I,0,U),(1,1,0,1),(1,I,1,0) , = nd4 =4+ min #{(tia, tib, tic,tid)|(o,o,o,o),(i,i,o,o),(o,リ, ι),(ι,ο,ι,ι)を除く,0≤i<8}
(a,b, c,d) nd5 = 4+ min #{(tia, tib, tic,tid)|(o,o,o,o)'(i,o,i,o),(o,i,リ) ,αι,ο,ι)を除く ,0≤i<8}
(a, b, c, d) nd6 = + min #{(tia, tib, tic,tid)i(o,o,o,o),(i,o,o,i),(o,i,i,i), ,i,i,o)を除く ,0≤i<8}
(a, b, c, d) nd7 =4+ min ^( ,^,^, ^(。'。,。,。 。 ^'( 丄り, ,リを除く ,0≤i<8}
(a, b, c,d) nd8 =4+ min #{(tia, tib, ^,^)|(ο,ο'ο,ο),(ο,ι,ο,ι),(ι'ο,ι,",(ι,ι,ι,ο)を除く,0≤i<8}
(a, b, c,d) nd9 = 4 + min #{(tia, tib, tic,tid)|(o,o,o,o),(o,o,i,i), ( ,ο,ι), ι,ι,ο)を除く,0≤i<8}
(a, b, c,d)
• nd = min{ndi |0≤i≤9}
直感的にいえば、 式 nd。〜nd9 は、 第 1非線形変換部 343 の active s- box の個数 (右辺第 1項) が決められたとき、 第 2非線形変換部 345 で最小いくつ以上 (右 辺第 2項) の s- boxが activeになり、 そのときの active s- box の合計がいくつ以 上 (左辺) になるのかを表している。 例えば、 第 1非線形変換部 343で 2つの acti ve s - box がある場合、 その差分値をそれぞれ Δζ8, Δζ„ と表すことができる。 こ のとき、
[厶 z' i] = [tiilAza®tihAzh] (0≤i<8) (11)
となる。 特に、 Aza=Azh とすると、
[厶 z'
Figure imgf000031_0001
(0≤i<8) (12)
となる。 従って、 この場合の active s - box の最少個数は nd。 で与えられることに なる。
上述の探索アルゴリズムにより、 行列 Pを探索した結果、 nd 6=Tとなるような 行列は存在せず、 また、 nd=5 ^となる行列は 10080個存在した。 その結果、 これら の行列 Pを用いたラウンド関数の差分解読法に対する耐性は p≤p となる。 また、 線形解読法に対する耐性も q≤qs 5 となる。
上記の 10080 個の行列 Pについて、 その構成を決める。 全数探索的に構成を決 めることは例えば 1 6個の X0R結線を使うとして、 (8 Χ 7) 1(^ 2 程度の計算量が必 要であり、 実行不可能である。 そこで、 図 1 5 Αに示すように、 線形変換部 344A の内部が 8入力 4出力のボックス B1〜B4で構成される構造に限定する。 各ボック スの内部構成は図 1 5 Bに示すように、 4つの X0R回路で構成されており、 全ての 入力ラインが 1回ずつ X0R回路を通過するのもとする。 従って、 線形変換部 344A全 体では、 1 6個の X0R回路で構成されることになる。 このとき、 (4 X 3 X 2 X 1 ) 1 21 8程度の計算量となり、 十分に全数探索が実行可能となる。
図 1 5 Aでは左右各 4系統のラインに対し 4つの変換ボックス B1〜B4が交互に 揷入されているが、 これらのラインは任意に選択した 4ラインと、 その残りの 4 ラインに決めてよい。 各変換ボックスにはそれが挿入されている 4ラインからの 入力と、 残りの 4ラインからの入力が与えられ、 変換結果を前者の 4ラインに出 力する。
上述の探索アルゴリズムにより得た 10080個の行列のうち、 図 1 5の構造を満 たしつつ、 1 6回の基本演算 (X0R)で単位行列 I となるものがあるかどうかを探 索した結果、 5 7個の構成が見つかった。 その中の 1つの行列 Pを次に示す。
P 二 (13)
Figure imgf000032_0001
この行列を使用した線形変換部 344Aの構成例を非線形変換部 343, 345 と共に図 1 6に示す。 図に示すように、 第 1非線形変換部 343 を構成する 8個の S- box から の 8ラインの左右 4系統のラインに対し、 4つの変換ボックス B 1〜B4が交互に揷 入されており、 その結果、 各ラインには 2個の X0R回路が挿入されている。 第 1実施例において 4 X 4行列の場合に与えたと同様の予測、 即ち図 1 6で構 成された線形変換部 344Aにおいて、 マスク値パスに対する行列が行列 Pの転置行 列となっていること、 及び n,=5 となることが正しく成立するかを以下のように確 認することができる。 図 1 6で構成された線形変換部 344Aに、 付録に定理 2で示 す concatenation rules を用いて線形パスを構成することによって、 マスク値パ スに対する行列1 Pは以下のように求められる。
Figure imgf000033_0001
このことから、 行列 TPが行列 Pの転置行列となっていることがわかる。 更 acti ve s-box の最少個数を調べると、 n,=5となることが確認できる。
図 1 7は、 上述のようにして決定された線形変換部 344Aと、 更に鍵変換部 344B とを含む第 2鍵依存線形変換部 344 の具体例を示す。
鍵変換部 344Bは鍵データ ki l(>, ki U, ki l2, · · ·, ki l7と線形変換部の出力との排他的 論理和演算を X0R回路 63„, 63,, 63„■··, 637で行い、出力データ mid1(,, mid, ,, mid,,,
…, mid17を出力するように構成されている。 例えば、 図 1 7に示すような機能 的構成により、 次の演算がなされる。
mid]()=mid01®mi d02®mi d03®mi d0il®m i do50m ι d06Sk j , 0 (15-1)
mid,, =mi don®midO20mi d0:i®mid05®mi d0fi®mi d07®ku , (15-2)
mi dl2 = mi d00®mi dol0mi d03®mi d0i)®mi d06®mi d07®ki l2 (15-3)
mi d , ., = m i dQ0®m i dn , Θηι i dn 0.2®、 m i dュ„ 04.1®、 m i dnR®m i dn7®k (15-4)
mid,, =mid0(1®mi dn,®mi dn:i®mi dn o,r®mid05®k (15 - 5)
mi d , ; = m i dO(10m idn,0mi dn.©m i dns®m i doe®k (15-6)
mi d,« = mi dn,©mi d J n02 mi d0,®mi d0B®mi d07®k (15-7)
mid,7=midn(,emi d(1.,®mi d03®mi d01®mi d07®k 、i l7 (15-8) この演算により、 データ mid,。, mid,,, mid12) …, mid17を生成する。 なお、 副鍵 kuは 8つのデータ kil0, kiU, kil2, ···, kil7で構成されている。 図 1 7において、 m id0。〜! nid。7はそれぞれ系路 60u〜607に入力される。
系路 60,, 605, 606, 607上の X0R回路 61 615, 616, 617でそれぞれ rnido,と mid()。、 m id05と mid(ll、 mid。Hと mid。2、 mid。7と mid。:,との各排他的論理和算がなされる。
系路 60。, 60,, 60 60:i上の X0R回路 61(|, 61,, 612, 61:,でそれぞれ mid。。と X0R回路 61fiの出力、 mid0,と X0R回路 617の出力、 mid,)2と X0R回路 614の出力、 mid():iと X0R回路 6 15との出力の各排他的論理和算がなされる。
系路 60,, 605, 606, 607上の回路 62,, 625, 62B, 627で、 それぞれ X0R回路 613と 6 の各出力、 X0R回路 61。と 615の各出力、 X0R回路 61,と 616の各出力、 X0R回路 612と 617 の各出力の排他的論理和算がなされる。
系路 60。, 60„ 602, 60:,上の X0R回路 62。, 62„ 622, 623で、 それぞれ X0R回路 61。 と 62.,の各出力、 X0R回路 61, と 625の各出力、 X0R回路 612と 62^の各出力、 X0R回路 61:,と 627の各出力排他的論理和算がなされる。
更に、 系路 60。〜607上の X0R回路 63()〜637で、 X0R回路 62。〜627の各出力と鍵デ ータ kilu〜kil7との排他的論理和算がそれぞれとられ、 系路 60。〜607からそれぞれ 出力 mid10〜mid17が出力される。 つまり出力 mid10〜mid1:!は、 入力 mid0„〜mid07力 ら選んだ 6つと鍵データとの排他的論理和算がなされ、 出力 midH〜mid17は入力 mi d。。〜! nidfl7から選んだ 5つと鍵データとの排他的論理和算がなされる。
次いで、 データ midlu, mid,,, mid12, ···, mid17は、 図 1 4でそれぞれ非線形変換 部 345。, 345,, 3452, ■··, 3457において、 データ out。, out,, out2> ···, out?に非 線形変換された後、 結合部 346 において、 8つのデータ out。, out,, out2> ···, ou t7は 1つのデータ丫 に結合される。 最後に、 データ丫 は、 鍵デ一タ ki2による第 3 鍵依存線形変換部 347 において、 例えば ビット左ローテーションによりデータ Yiに線形変換され、 非線形関数部 304 からの出力データ Y,が生成される。
非線形変換部 343。〜3437, 345。〜3457のそれぞれは、 例えば D E S暗号の S- box のようなものであり、 例えば ROMにより構成され、 それぞれ入力データをアド レスとして入力し、 対応するデータを読み出すものである。 ここで、 非線形変換部 343(|〜3437は 8つ並列に配置されており、 その非線形変換 処理は相互に関連していないため、 これらはすべて並列実行が可能である。 また、 非線形変換部 345。〜3457についても同様のことがいえる。 このため、 非線形変換は それぞれ 1ステップ (合計 2ステツプ) で実行することができる。
また、 非線形変換部 343。〜3437の差分確率 ·線形確率が pとすると、 第 2鍵依存 線形変換部 344 に図 1 7に示した線形変換を用いた場合、 非線形関数部 304 全体 における差分確率 ·線形確率は P5となる。 従って、 データ変換装置全体では段数を 3 rとして確率 P≤ で近似表現でき、 例えば !· = 4 (段数 1 2段) とすると P≤p '1()である。 これは D E S暗号に換算すると 60段以上に相当し、 差分解読法お よび線形解読法に対して十分安全なデータ変換装置となる。 なお、 第 2の鍵依存 線形変換部 344 として図 1 7に示したもの以外の線形変換手段を用いることもで きる。 その例を図 1 8に示す。 この場合は下記の演算がなされる。
mi d10 = mi d01®mi d02©mid01®mi d05®mi d06©mi do70kno (16-1)
midH
Figure imgf000035_0001
d02®mi d0:!㊉ m i dM® i dofi0kj , , (16 - 2)
mid12=mi d00®m id01®mi do:i©m i d04@m i d05€>m i d06④ k i { 2 (16-3)
mid13=mi d0Q®m i do;i©m id0„8mi dn6©m i d07®ki 13 ( 1り - 4)
m i d , .j = m i d00©m i d02®m i d0:t®m i d05em i d0B®m i d07®kj , (16-5)
mi d 15 = mi d00®mi doiemi dO20mi d05©m i d06®k{ 15 (16-6)
mid16=mi d00®mi d0l®mi d02©mi do;!0mi dM®mi do70ki (16-7)
mid17=mi d00®ra i d02®m i d i®m i d05®m i do70k s , 7 (16 - 8)
あるいは、 図 1 9に示す回路構成としてもよく の場合は下記の演算がなさ れる。
mid10=mi d00®mi d01®mi d0i]©mi d05®mi d06©kuo (17-1)
midu =mid01®mi do;!®mi d01®mi d05®mi dO70kn , (17-2)
mid12=mi d00®mid02®mi d01©mid06®mi d01®ki 12 (17-3)
raid, .¾ = 1111 d02©m i dn:(®mi dos®m i d0fi©rai d07® k (17-4)
raidH=mi don0midol®mi d®mi d05©mi dO60mi d07®ki (17-5)
mid15=mid01®mi d02®mi d03®mid04®mi dO60mi d07©kn 5 (17 - 6) mi dlfi=mid00®mid01®mi d02®mi d01©mi d05Smi d07©k f 16 ( 17-7)
midI 7=mi d()(,®midQ2©rai dO3®mido10mi d0,-®mi dft6©kn 7 ( 17-8)
第 2鍵依存線形変換部 344 は図 1 7〜1 9の演算から明らかなように、 8つの 入力データ mid。。, mid01, mid02, · · ·, mid。7のうち、 それぞれ 6つの入力データから 生成した 4つの出力データと、 それぞれ 5つの入力データから生成した 4つの出 力データの合計 8つの出力データ midw, mid,,, mid12, …, mid17を生成するような 鍵依存線形変換であり、 かつ 8つの各入力データ mid。Q, mid。い mid02, · · ·, が 少なくとも 4つ以上の他の系統の出力データに影響を与える (例えば図 1 7の例 であれば、 入力データ mid00は 6つの出力テ一タ midu, mid12, mid13, mid14, mid15, niid17に影響を与える) ような線形変換であれば、 図 1 7の例について述べたと同 様に、 非線形関数部 304 全体における差分確率 ·線形確率は p 5となる。
鍵ァータ {fk, k。。, k。い k。2, k10) ku, k12,… , k(N_1)0, k(Nυい k(N1)2, ek}は、 王 鍵情報 k e yが入力部 320 より鍵データ生成部 321 に入力され、 この鍵データ生 成部 321 によって変換され、 鍵記憶部 322 に蓄積されたデータである。
鍵デ一タ生成部 321 による鍵データの生成は図 1に示した D E S喑号の拡大鍵 生成ルーチン部 2 1と同様に構成してもよいし、 あるいは米国特許 Νο· 4, 850. 019 に示されている拡大鍵生成部と同様に構成してもよい。
また、 初期鍵依存変換部 302 、 最終鍵依存変換部 308 、 鍵依存線形変換部 341, 344, 347は鍵に依存する線形変換手段であるため、 差分解読法および線形解読法 以外の解読法に対しても十分な安全性を兼ね備えたデータ変換装置である。
なお、 第 4実施例はこの例に特定されるだけでなく、 例えば高速性を望むので あれば、 これら初期鍵依存変換部 302 、 最終鍵依存変換部 308 、 鍵依存線形変換 部 341, 344, 347について、 そのいずれかを削除する、 または鍵に依存しない変換 手段に変更することが可能である。 この場合、 差分解読法および線形解読法に対 する安全性をそれほど低下させることなく、 暗号化処理速度の向上が望める。 第 5実施例
図 1 3に示した第 4実施例と同様の構成を有するデータ変換装置において、 非 線形関数部 304 の機能構成の変形例を用いた実施例を説明する。 第 5実施例の基 本構成は、 図 1 3に示した第 4実施例と同様である。 異なる点は、 その非線形関 数部 304 を示す図 1 4において、 非線形変換部 343。〜3437の構成を、 図 8A〜8 D に示した第 2実施例における非線形変換部 343。', 343/, 343; , 343; 等と同様に 変形し、 拡大データを出力する構成とした点である。 また、 第 2鍵依存線形変換 部 344 の構成を、 図 9に示したものと同様の構成としている。
図 1 3に示したように、 右ブロックデータ は、 鍵記憶部 322 に蓄積されている 鍵データ ki0, k , ki2 と共に非線形関数部 304 への入力データとなる。 データ は、 第 1鍵依存線形変換部 341 において、 図 1 4で示したのと同様に鍵データ k,.。と例 えば排他的論理和がとられ、
Figure imgf000037_0001
に線形変換される。 次に、 データ R は分割部 342 において 8つのデータ in。, in,, in2, ···, in7 に分割される。 8つの データ in(), in,, in2,…, in7 は、 それぞれ非線形変換部 343。', 343;, 343;, ···, 343; において、 データ MID MID01( MID。2, ··', MID07に非線形変換される。 非線形 変換部 343。'は、 mビッ トのデータ in(, を 8 Xmビットのデータ
MID(m= [00···0(2), mid()0, mid00, mid00, mid00, mid00, 00···0(2), mid00] (18-1) に変換するよう構成されている。 即ち、 非線形変換部 343。'は、 例えば図 2 OAに 示すように、 上位 mビットに第 4実施例の図 1 4における非線形変換部 343(1と同じ mid。。を出力し、 下位 mビットに" 00···0(2)〃を出力する S - box 343(,を有し、 布線によ りデ一タ midQ„を 6系統に分岐して出力すると共に、 〃00 0(2)"を 2系統に分岐して 出力する。
非線形変換部 343, 'は図 20 Bに示すように、 上位 mビットにデータ mid01を出力 し、 下位 mビットに" 00···0(2)〃を出力する S- box を有し、 布線によりデータ mid0)を 6系統に分岐して出力すると共に、 mビットデータ" 00···0"を 2系統に分岐して出 力する。 以下、 非線形変換部 3432'〜3437'も同様に構成され、 図20 Cに非線形変 換部 3437'の構成を示すが、 その説明は省略する。 これらの非線形変換部 343,'〜34 3/は、 それぞれデータ in,〜in7を以下のデータ MIDw MIDn?に変換する。
ID01=[mid01, 00···0(2), mid。い mid。い mid。い mid。い mid。い 00···0ω] (18 - 2)
MID(12= [mid。2, mid02, 00···0(2), mid02, 00···0(2), mid02, mid。2, mid02] (18 - 3) MIDo;i= [mido:s, mid。3, mid。3, 00···0(2), mido:i, 00···0(2), mido;i, mid0J (18 - 4) MID0 )= [mid0 l, 00· · ·0(2), mid01, mid01> mid0.„ 00· · ·0(2), 00· · ·0(2), mid0.,] (18—5) MID。5= [mid05, mid()5) 00· · ·0(2), mid05) mid05, mid。5, 00· . ·0 ), 00〜0(2)] (18-6) MID06= [mid0fi, midofi, mid0fi, 00···0(2), 00·· ·0(2), mid06, mid06, 00· · ·0(2)] (18一 7) MIDn7= [00· · '0(2), mid0Y, mid07, mid07, 00·· ·0(2), 00· · ·0(2), mid07, mid07] (18 - 8) これらのデータ MID。n〜MID。7は、 第 2実施例において式 (8-1)〜(8-4)について説 明したと同様な手法により予め決めることができる。 即ち、 データ MID。oは、 図 1 7に示す線形変換部 344Aにおいて、 データ mid。。 以外の全てのデータ mic^ mic^を それぞれ" 00···0(2)〃と設定した場合に、 線形変換部 344Αの 8系統 60。〜607の出力に 得られるデータのセットである。 データ MID。,は、 データ midni以外の全てのデータ m id0。, mid。2〜mid。7をそれぞれ" 00·· ·0 と設定した場合に、 線形変換部 344Αの 8系 統 60。〜607の出力に得られるデータのセットである。 以下、 データ MID。2〜MID。7につ いても同様である。 これら非線形変換部 343。'〜343/はそれぞれデータ in()〜in7を アドレスとし、 データ MID()(,〜MID。7を直接読み出す変換テーブルとしてメモリによ り構成してもよい。
次いで、 図 2 1に示すように、 データ MID。。〜MID。7は鍵データ k„による第 2鍵依 存線形変換部 344 に入力される。 第 2鍵依存線形変換部 344 は、 入力データを 2つずつ互いに排他的論理和をとる X0R回路 ,〜^.,と、 それらの出力を 2つ ずつ互いに排他的論理和をとる X0R回路 42,, 422と、 それらの排他的論理和を とる X0R回路 4 3と、 その出力と鍵データ kuとの排他的論理和をとる X0R回路 4 4とから構成されている。 これにより、
MID^MIDooeMIDo.eMIDo^MIDo^MIDo.eMIDoseMIDoeeMIDn^ki, (19) が演算される。 この出力 MID,は 8個のブロックに分割され、 データ mid,。, mid,,, m id12,••'. mid として出力される。 結局、 第 2鍵依存線形変換部 344 による線形変換 は、 mビットのサブブロック単位として表すと次のようになる :
mid10=midoiemi d。20mi do;!0mi dol®mido50mi d06®ki l() (20— 1 )
mi d, ! =mid00®mi d02®mi d03®mi d05®mid06®mid07ekn , (20—2)
Figure imgf000038_0001
(20一 3)
mi d n = mi donemi d()iemi d02emi doiemi d05emi d07eki , ;i (20—4) nii di.i
Figure imgf000039_0001
dMiSki H (20 - 5)
mi d 15 = m i don©m i d0 , Θπι i d02®m i dO50m i dn6®k j 15 (20-6)
midHi = mi d0 , ©m i do20m i do:i®m i dofi0m i dn70ki l6 (20 - 7)
mi di7 = midno0mi d029mi d0;i®midni©mi dO70ki l7 (20-8)
これは図 1 7で説明した線形変換を表す式(15- 1)〜(15-8)と等価な線形変換であ る。 これにより、 第 4実施例と同じデータ mid,,, mid12, · · ·, mid17を生成す る。 なお、 副鍵データ kuは 8つのデータ ki in, k , ki l2, · · ·, ki l 7で構成されてい る。
次いで、 データ mid,。, mid,,, mid12, · · ·, mid,7は、 それぞれ図 1 4中の非線形変 換部 345。, 345,, 3452,…, 3457において、 データ out0, out,, out …, out7に非線 形変換された後、 結合部 346 において、 8つのデータ out。, out,, out , · · ·, out7 が 1つのデータ Yi*に結合される。 最後に、 データ Yi*は、 鍵データ ki2による第 3鍵 依存線形変換部 347 において、 例えば ki2ビット左ローテーションによりデータ Yi に線形変換され、 非線形関数部 304 からの出力データ Yiが生成される。
図 2 1に示すように、 第 2鍵依存線形変換部 344 では、 排他的論理和の個数が 8つで図 17と等価な線形変換 (図 1 7では排他的論理和の個数は 2 4個) を実現 しているため、 第 4実施例より高速な変換が可能になる。
また、 第 4実施例と同様に、 非線形変換部 343(>'〜3437'と 345()〜34578つずつ 並列に配置されており、 その非線形変換処理は相互に関連していないため、 これ らはすべて並列実行が可能である。さらに、非線形変換部 343。'〜3437'の差分確率 · 線形確率を pとすると、 非線形関数部 304 全体における差分確率 '線形確率は p 5 となる。
なお上述において、 第 2 (鍵依存) 線形変換部 344 は鍵 ことなく、 この入力 サブデータ内の排他的論理和等によってもよい。 つまり図 1 7の X0R63。〜637、 こ れと対応する図 1 8, 1 9, 2 1路部分を省略してもよレ、。
また、 上述において、 第 1鍵依存線形変換部 341, 第 2鍵依存線形変換部 344 及 び第 3鍵依存線形変換部 347 は必ずしも鍵依存とすることはなく、 つまり、 鍵デ ータを入力すくことなく、 サブデータ内での線形変換を行ってもよい。 上述の第 4及び第 5実施例によるデータ拡散処理は、 その処理手順を表すプロ グラムをコンピュータで実行することにより実現してもよい。 その場合の処理手 順は図 1 1及び 1 2に示すものと同様なので説明を省略する。
図 2 2は、 第 1〜第 5実施例で説明したデータ拡散処理手順を表すプログラム を予め記録媒体に記録しておき、 そのプログラムを読み出してこの発明のデータ 拡散を実施する構成例を示す。 中央演算装置 (C P U) 110 、 リードオンリーメ モリ (R OM) 120, ランダムアクセスメモリ (R AM) 130, 記憶装置 (例えば ハードディスク H D) 140, I/Oインタフェース 150, 及びこれらを互いに接続する バス 160 は一般的なコンピュータ 100 を構成している。 この発明によるデータ拡 散処理を実施するプログラムは、 例えば記録媒体としてのハードディスク 140 に 格納されている。 R OM120 にはそれぞれの S- box が表として格納されている。 データ拡散処理を実行する際に、 R AM130 にそのプログラムをハードディスク 1 40 から読み込み、 インタフェース 150 を介して平文 Mが入力されると C P U 110 の制御のもとにプログラムが実行され、 生成された拡散デ一タ Cがインタフエ一 ス 150 を介して出力される。
データ拡散処理を実行するプログラムは記録媒体としての任意の外部記憶装置 1 80 に格納したものを使用してもよい。 その場合、 ドライバ 170 を介して外部記憶 装置 180 からプログラムをハードディスク 140 に一旦移して使用する力 \ R AMI 30 に転送して使用することができる。
出力された拡散データ Cは、 図示してないが、 例えば通信回線やインターネッ トを介して送出されると、 共通鍵を有している者のみがこの拡散データ cを復号 することができる。 この発明により拡散されたデータ cは差分解読法及び線形解 読法に対し強い耐性を有しているので、 より安全な情報の送信が実現できる。 ところで、 前述の各実施例において、 鍵生成スケジュール部を図 3と同様に構 成すると、 データ拡散部 1 0で kjと ki+l として使用する副鍵が、 鍵スケジュール部 2 0中の鍵拡散部 21jの出力 ¾と +, (ただし i=2jとする) になっていた。 一方、 差分解読法や線形解読法で求まる可能性の高い副鍵は k、と k、_,であるから、 これら の情報を用いてデータ拡散部を組み合わせることで、 他の副鍵を求めやすくなつ ていた。
そこで、 前述の各実施例を代表する図 4のデータ変換装置において、 以下の実 施例では副鍵を生成する鍵生成スケジユール部 2 0で実施される鍵生成アルゴリ ズムを、 より複雑にすることでこの問題を解決する。 以下の実施例では、 少なく とも、 副鍵 と kvlが求まっても、 他のデータ拡散部の出力に関する多くの情報が 洩れないようにするために、 図 3に示した鍵拡散部 22 (図 3中の関数 f J と同様 の働きをする G関数部を用いることのほかに、 鍵生成についての第 1の観点によ れば、 G関数部の出力である L成分が記憶部に一旦記憶され、 必要な個数だけ L 成分を求めた後に、 それぞれの L成分から出来るだけ均一に必要となる情報を抽 出して副鍵を生成するデータ抽出機能を備えた H関数部が設けられる。 また、 第 2の観点によれば、 G関数部の出力である L成分からそれぞれの副鍵として使用 される部分情報が H関数部で抽出され、 記憶部に記憶され、 必要な個数の L成分 から部分情報を抽出することで副鍵が生成される。
D E Sの場合、 主鍵のビット位置を入れ換えるだけで副鍵を生成していたので、 鍵スケジュール処理は高速であった。 しかし、 副鍵の部分情報が知られると、 直 ちに主鍵の対応する情報が分かってしまう問題があった。
主鍵と副鍵の関係を複雑にするために、 鍵スケジュールの処理量が大幅には増 加しないように、 かつ鍵スケジュール部のプログラム規模が増加しないようにす るために、 デ一タ拡散部で使用する F関数あるいは F関数を構成するサブルーチ ン (以下ではこれらの関数を f と書く) を利用することでデータ拡散関数 G関数 を構成して、 G関数を繰り返し呼び出す、 つまり繰り返し用いることで、 複数個 の中間値 Lを生成する。
G関数は、 2つの入力成分 (Υ, V)によって動作し、 3つの出力成分(し, Υ, V)を 生成することとする。 Y成分のビット数は主鍵 Kのビット数と一致するか、 それ よりも大きいものとする。
G関数は、 データ拡散部に副鍵を供給するために、 必要な回数 (M回) 繰り返 し呼び出されて、 M個の L成分を生成する (0≤ j ≤M-1) 。 j回目に呼び出され た G関数の出力を (L」, Yj, vj) と表すと、 この値の一部は(j+1) 回目に呼び出さ れる G関数の入力 (Yj+I
Figure imgf000042_0001
) として利用される ( で、 Y。 はその
—部に Κを含んだ値であり、 ν„ は予め定められた値 (例えば 0) とする。
与えられた主鍵 Κに対し、 副鍵 ki ( i =0, 1, 2, ···, N-l) を以下のように定め る。
(しい (Y„ v,))=G(Y0, v。) (21)
( ,, (Yj+い vj+,))=G(Yj) Vj)
= 2, ···, M-l) (22)
k; =H(i, L„ L2) ···, LM )
( i =0, 1, 2, ···, N - 1) (23)
ここで、 H関数は、 副鍵の添字 iおよび関数 Gの出力である M個の L成分を入力 して、 それぞれのし」から必要に応じて iによって決められたビット位置の情報を 抽出するものである。
第 6の実施例
図 23 Aに図 4で示した鍵生成スケジュール部 20に適用する第 6実施例の鍵 生成スケジュール部の原理構成を示す。 主鍵 Kは中間鍵生成部 220 に入力され、 中間鍵生成部 220 は縦続的に動作する複数 (M段) の G関数部を有し、 中間鍵し, 〜し M を生成し、 これら中間鍵は記憶部 230 に記憶される。 記憶部 230 に記憶され た中間鍵 L, 〜し Mは副鍵生成部 240 で H関数部にもとづき副鍵 が生成される。 各 部の構成作用を以下に具体的に説明する。
この例では、 先に指摘した宫口らの米国特許で示されているデータランダム化 部を利用することを想定して、 先に示した図 8の鍵スケジュール部の安全性を高 める装置である。 宫口らの米国特許で示されている鍵スケジュール部 (図 3) で N =16の場合にこの実施例を適用する場合について説明する。
図 3では 8 (=N/2)段のデータ拡散部によって 1 6個の Q成分を入手する。 ここ では、 それぞれの Q成分を Q」 と表わす。 各 Q」は 1 6ビットである。 副鍵生成部 24 0 ではそれぞれの Q;成分の第 1ビット目の値から副鍵 k。 を構成し、 それぞれの 成分の第 2ビット目の値から副鍵 k, を構成し、 一般にそれぞれの 成分の第 i ビ ット目の値から副鍵 , を構成する。 すなわち、 Qj成分の第 iビット目を Q」[i] と 表すと、 副鍵 は次式で示される。
ki_, = (Q,[i], Q2[i], ···, Qj[i], …, Q16[i]) (24)
ここで、 1 ≤ i , j ≤ 1 6に注意。
先に示した G関数、 H関数の枠組で、 ここに述べた処理方法を見直すと以下の とおりである。 ここで、 Υ」 は 6 4ビッ トの値であり、 Y; L は Υ」 の上位 3 2ビッ ト の値、 Y/ は Υ」.の下位 3 2ビットの値を表している。
入力(Υ」, v」)に対する G関数の出力を
(L (Yj ))
Figure imgf000043_0001
Vj) (0≤ j ≤7) (25)
と表すと、 その出力結果( ,,(Yj+1, ν^))は次式により得る c
(26)
Figure imgf000043_0002
副鍵 は i とし, 〜 の関数として次式で示される。
k l =H (i, L„ L2, ···, L8) (29)
この H関数は、 各し」 をビットごとに分割して(ΐ ω, t 2), -, t i2))と表したとき 副鍵 を
(ί)
k, = (t t8 (i), M+i))
( 1 ≤ i ≤16) (30)
と構成する。
なおこの方法では、 最大 1 6個の副鍵が得られるので、 宮口らの米国特許で示 されている喑号アルゴリズムでは、 8段の F関数から構成した場合にまで対応で さる。
図 2 3 Aの中間鍵生成部 220 の構成を図 2 4を用いて説明する。 G関数部 22 - 1 〜22 - 8が縦続的に構成され、 その初段の G関数部 22 - 1に主鍵 Kが Y。 として、 また 定数 ν。 が入力され、 各 j段目の G関数部 22 - jは、 Yj— , と Vj— , が入力され、 Υ,— , が 攪乱されて、 出力し」 , Υ」 , を出力し、 し」が中間鍵として出力され、 Y」, vj が 次段の G関数部 22 -(j+l)へ供給される。 つまり Y0 =Κ、 ν() = 0と設定した後に G 関数部 22を 8回呼び出す。 G関数部の構成を図 2 5に示す。 .この構成に対し、 以 下の処理を j = 0カゝら j = 7まで繰り返す。
ステップ 1 : Υ」 と V, を G関数部 22 -(j+1)に入力すると、 図 25中のデータ分割 装置 221 を用いて を 2つのブロック(Y , Y/)に分割する。
ステップ 2 : Y を vj+1 として出力する。 また、 Y」L をデータ拡散部(fk) 222 に入 力する。
ステップ 3 : Y をデータ入換器 224 に入力する。 また、 Y/ と を排他的論理 和回路 223 に入力して Υ/®ν」 を演算し、 その結果をデータ拡散部(fk) 222 に入力す る。
ステップ 4 : Y と
Figure imgf000044_0001
を入力として受けとるとデータ拡散部 fk 222 は、 その 計算結果を Lj+1 として出力すると同時に、 データ入換器 224 に入力する。
ステップ 5 :データ入換器 224 は、 Y とデータ拡散部(fk) 222 の計算結果 Lj+1 を入力として受けとると、 を Yj+1 L 、 Lj+, を Yj+,K とし、 YJ+1 = (Yj+1 L, )と連結 して出力する。
G関数部 22-1〜22- 8が出力した 8個のし」 を、 一旦、 記憶部 230 (図 23 A) に 記憶する。
次に、 副鍵生成部 240 としての H関数部の構成を図 26を用いて説明する。 H 関数部 240 は、 記憶部 230 から 8個の L成分し, 〜L„ を読みだしたのちに以下を実 行する。
ステップ 1 :記憶部 230 から各し」 を読みだしてビッ ト分割器 241 に入力してそ れぞれ、 各 1ビットずつ
t 2), ···, t ))=Lj (j = l, 2, …, 8) (31)
に分割する。
ステップ 2 : (t,"),
Figure imgf000044_0002
t2 (i), t2 (ls+i), ···, t8 (i), tK('fiii))をビッ ト結合器 242 に入力して副鍵
ks =(t,(i) ) ΐ,(1β+ί), t2 (i), t2 (lfi+i) ( ···, t8 (i), t8 (lfi+ )
2, ···, 16) (32) を得る。
第 7の実施例 上記第 6実施例と同じ副鍵を出力する別の実施例を図 23 B、 図 24、 図 25、 図 27を参照して説明する。
図 2 3 Bに示すように、 中間鍵生成部 220 で複数の中間鍵し」 が生成される。 中 間鍵生成部 220 は図 2 3 Aのそれと同様であり、 つまり図 2 4に示したように複 数の G関数部 22よりなる。 この G関数部 22で中間鍵し」 が生成されるごとに、 その 中間鍵し」 は、 副鍵生成部 250 で、 副鍵 の i と のビッ ト位置 qとにより決まる ビット位置の情報が、 のビット位置 qの情報 kiqとして選出され、 記憶部 260 に 記憶される。
つまり中間鍵生成部 220 と副鍵生成部 250 とにより以下のステップ 1からステ ップ 7までを、 j=0から j=7まで繰り返すことになる。
ステップ 1 : Yj と を G関数部 22 -(j+1)に入力すると、 データ分割装置 221 を 用いて Υ」 を 2つのブロック(Y , Y )に分割する。
ステップ 2 : Yj1 を vj+1 として出力する。 また、 Y をデータ拡散部(fk)222 に 入力する。
ステップ 3 : Y をデータ入換器 224 に入力する。 また、 Y と ν」 を排他的論理 和回路 223 に入力して Y/㊉ ν」 を入手後にデータ拡散部(fk)222 に入力する。
ステップ 4 : ¥ · と Y ®Vj を入力として受けとるとデータ拡散部(fk)222 は、 そ の計算結果を Lj+| として副鍵生成部 250 (図 2 3 B) に入力すると同時に、 デー タ入換器 224 に入力する。
ステップ 5 :データ入換器 224 は、 Y/ とデータ拡散部(fk) 222 の計算結果 Lj+I を入力として受けとると、 Y/ を Yj+1' LJ+1 を Y とし Yj+1 = (Yj, ', Yj )と連結し て出力する。
ステップ 6 :副鍵生成部 250 は図 2 7に示すようにし」 をビッ ト分割器 251 に入 力して下記のように 1ビットごとに
(1 '>, tj(2), ···, ί/3 )) =^ ( j =1, 2, ·'·, 8) (33)
に分割して、 情報分配器 252 に入力する。
ステップ 7 :情報分配器 252 に入力されたビッ ト列(tj(1), t/2) ; …, t 2))はパ ラメ一々 iに対して のビッ ト位置 qにより決まるし」 のビット位置の情報が、 のビット位置 qの情報とされ、
k, =(t,(i), t,06*0, t2 ), t2 (lfi+i), '··, t«(i), tK (,B+i)) (34) となるように、 副鍵 ごとに 1 6個に分割された記憶部 260 にし」 ごとに記憶する。 ステップ 8 :それぞれのお に 1 6ビッ トの情報が設定されると、 つまり副鍵 が生成されるとその値を出力する(i = l, 2, ···, 16)。
第 8実施例
この実施例では鍵スケジュールを構成する際に、 装置規模またはプログラムス テツプ数削減のため、 暗号化で用いられている関数 ίを用いる方法を説明する。 この例でも先に示した G関数、 Η関数の枠組で、 説明する。
G関数に入力(Y」, Vj)が与えられたときの出力を
(Lj+1, (Yj+1> ν^,))=0(Υ^ V (0≤ j ≤7)
と表し、 その出力を
((Y 1), Yj(2), Υ 3), Yj")), Vj)→
T(l) T(2) T(3) T(4) X Γίγ '((11)) γ γ((22)) γ(3) Υ( )Λ V . ΐΛ ) ^ j+1, j+1 'し j+1,し j+1 Yjj++11'' +1, +Ι' +1リ, vj+iJ (35 とする。 ここで、
Figure imgf000046_0001
l, 2, 3, 4) (36) τ( )
V; (37)
¾ = f(r;;»)eY;;i (i = l, 2, 3, 4) (38)
v = L(4) (39) と定める。 また、
ki =H(i, しい L2, ···, L8) (40)
においては、 qi+4j =I^) (i = 0, 1, 2, 3) (41)
(t 0), 1),…, 7)) = qi (i=0, 1, ···, 31) (42) . , _ (t([>/2]) t([i/2]) t([i/2]) ) i = 0 ! ... ] -) (4 )
K(i+D ~ V0+(imod2)' l2+(imod2)-"' l30+(imod2)/ u u, ' l0) 、" と定める。 ただし、 式 (43)における [i/2]は を表すものとする。
この手順を図 2 8及び図 2 6を使って説明する。 ステップ 1 : f のビット幅だけ、 0123456789abcdefl01112.... (hex) の上位か ら同一ビット数取りだした値を vn として設定する。
ステップ 2 :主鍵 Kを Y。 に設定する。
中間鍵生成 以下の手順を j = 0, 1, 2, ···, 7について繰り返す。
ステップ 1 :入力 Υ」 を 4つに等分割し(Y 0, Y 2), Yj(3), Υ」('1))とする。
ステップ 2 :データ拡散器 611〜614を用レ、 i = l, 2, 3, 4 に対して、 Yw(i) = f(Y をそれぞれ算出する。
ステップ 3 : Vj と Lj+1((') を同一視する。
ステップ 4 :データ拡散器 621〜624を用い i = 2, 3, 4, に対して、 f(Lj+I (i— ") を演算し、 その演算結果を排他的論理和回路 63i に入力して Yj+1 (i)との排他的論理 和演算を行ってし f ( , '))ΘΥ " を得る。
ステップ 5 : Yj+I と(Yj+I('), Yjt,<2), Yj+i(:!), YJ+i('))を同一視する。
ステップ 6 : LJ+1 と(LJ+1 (1), Lj+1(2), L 3), し '))を同一視する。
ステップ 7 : vj+,
Figure imgf000047_0001
とおく。
副鍵生成: 第 6実施例と同様にして、 式(43)を実現し、 k,, k2, ···, k、 ( ≤16) を得る。
なお、 上記実施例は上記例に囚われることなく
(1) YQ のサイズが、 Kより大きい場合は、 Y。 の一部を Κとし、 残りを定数で埋 める。
(2) ν() として、 任意の定数とする。
(3) それぞれの文字のビット幅を整合性が取れる範囲で任意に設定する。
(4) f を暗号化に用いるのに利用した関数以外のものを使う。
(5) Hを計算する際にし i の一部を使わない、 つまり副鍵 ^ の数が少なく、 L」 の ビッ ト数が多い場合は、 そのような状態になる。
(6) Hを計算する際に、 第 6実施例と同様のものを使う。
(7) Gを計算する際に第 6実施例と同様のものを使う。
(8) 第 7実施例と同様にして、 中間鍵の全てを生成することなく 1つの中間鍵 が生成されるごとに記憶部 260 の の対応ビット位置に計算結果を格納する。 などとしても実行可能である。
中間鍵生成部 220 、 副鍵生成部 240 、 250 は図 2 2に示したコンピュータによ りプログラムを読出し実行するようにしてもよレ、。 発明の効果
以上、 詳細に説明したように、 この発明によれば、 データを秘匿するための暗 号化装置に用いるためのデータ変換装置について、 安全性と高速性を同時に満た すような構造にすることによって、 段数を大幅に増加させることなく安全性を確 保し、 かつ高速な暗号化処理が可能となるようなデータ変換装置を提供すること ができる。 これにより、 秘密鍵の制御のもとでデータをブロック単位で暗号化ま たは復号を行う共通鍵暗号方式による暗号化装置に有用である。
また、 この発明による鍵生成スケジュールによれば、 第 6および第 7の実施例 では、 k6, k7, k8) kfl) kI(), k,,が判明した場合でも、 それぞれの L」成分の 1 2ビッ ト分 (例えば、 第 6, 7, 8, 9, 10, 11 , 22, 23, 24, 25, 26, 27ビット目) が求 まっただけであるから、 D E Sおよび宮ロらの米国特許で示されている鍵スケジ ユール部の安全性に関する問題は解決されている。 付録
# {a i cond} :条件 condを満たす集合 aの個数。
厶 χ, Γ χ : χの差分値、 Xのマスク値。
a*b: aと bのビット毎の論理積に対する偶数パリティ値。
線形変換部: Ρ = [ΐ,Ί], tij e {0, 1 }, 0 < i, j < n - 1 線形変換部の入力 : ζ = τ[ζ(,, ···,Ζ ], ZieGF(2つ, 0≤i≤n- 1
線形変換部の出力 : ζ' =τ[ζ' ·',ζ'
Figure imgf000049_0001
z' ieGF(2つ, 0≤i≤n - 1
[定義 1 ] Δχ, Δγ, Γχ, ry が与えられたとき、 s - box の差分確率 DPs(Ax→ Δγ)と線形確率 LPs(ry→rx)を以下のように定める :
DPs(Ax→Ay) -#{xeGF (2 | s (x) +s (χ+ Δ x) = Δ y } IT
LPs(ry→rx) = (2x#{xeGF(2") ix»rx = s(x).ry}/2m-l)2
[定義 2] s-box の最大差分確率 psと最大線形確率 qsを以下のように定める。
ps= max DPs(Ax→ Ay)
Δχ≠0,Δν qs= max LPs(ry→ Fx)
Tx,ry≠0
[定義 3] 差分解読法では入力差分値 Δχ が非零である s- box 、 線形解読法で は出力マスク値 ry が非零である s - box のことを active s-bo と呼ぶ。
[定義 4] 2 - round SPN構造で構成されるラウンド関数において、 Δχ, Ay, Γ χ, ry が与えられたとき、 差分確率 ρ(Δχ→Δγ)と線形確率 q(ry→rX)を以下の ように定める。 ρ(Δχ→ Δν) q(ry→ Γχ)
Figure imgf000049_0002
ここで、
Figure imgf000049_0003
…, Δχη— であり、 Δγ, Γχ, Γγ も同様である。 更に、 ρ (厶 z→Az' i)は、 各 iに対して、 Δζ が線形変換部によって
Figure imgf000049_0004
に変換されることを 表しているものとする。 即ち、 全ての iに対して、 ョ厶 ζ' ,. s. ΐ.ρ(Δζ→·Δζ' i)= 1である。 ρ(Γζ'→Γζ も同様である。
[定義 5] 2-round SPN構造で構成されるラウンド関数の最大差分確率 Pと最大 線形確率 qを以下のように定める。
= max ρ(Δχ - Ay)
Δχ≠0,Δ>' q = max q(ry→ Γχ)
「x,「y≠0
[定義 6] 2 - round SPN構造に対して、 全ての s - box が全単射である時、 差分解 読法と線形解読法における active s-box の最少個数 nd, n,は以下のように与えら れる。
nd -min[Hw(Az) + Hw(Az')]
Figure imgf000050_0001
η, = min[Hw(rz) + Hw(rz')]
Figure imgf000050_0002
ここで、
Hw(z) =#{0≤i<n! Zi≠0}
とする。 また、 Δζ, Γζ は線形変換部の入力差分値と入力マスク値を表し、 Δζ', Γζ' は線形変換部の出力差分値と出力マスク値を表す。
[定理 1 ] 2 - round SPN構造のラウンド関数における最大差分確率 pと最大線形 確率 qは以下の関係式を満たす。
P≤Ps"d 及び q≤qs n|
[Proof sketch]
差分解読法の場合について考える。 定義 2と定義 3より、 active s-box におけ る差分確率は ps以下である。 従って、 ある Δχ, Δγ における active s-box の個数 を ndz とすると、 そのときのラウンド関数の差分確率は、 定義 4より、 ps n'lz以下と なる。 一方、 ndを active s-box の最少個数とすると、 全ての Δχ, Ay に対して ≤ndz) ps≤lであるから、
Vndzp dz ≤ Ps"d
となる。 従って、 このラウンド関数における最大差分確率 Pは、 p≤p dである。 同様のこと力;、 線形解読法の場合についてもいえ、 q≤qs nlが導かれる。
じ疋理 2] Concatenation Rules
Χ-Ι (γ, Ζ)を、 データ Xがデータ Υとデータ Ζの 2つのデータに同じく複製され ることを表すとする。 即ち、 Χ = Υ = Ζ が成立する。 このとき、 以下の関係が成立 する :
Χ = ΥΘΖ → ΔΧ=ΔΥ®ΔΖ, ΓΧ=ΓΥ=ΓΖ (XOR operation)
ΧΗ (Υ, Ζ) → ΔΧ=ΔΥ=ΑΖ, ΓΧ= ΓΥΘΓΖ (Branch operation)
[差分解読法及び線形解読法に対する耐性]
定理 1の式で示したように、 差分解読法及び線形解読法に対するラウンド関数 の耐性は、 active s-box の最少個数 nd, から決めることができる。 例えば、 行 列 ΡΕが表す線形変換は全単射であるので、 Η Δζ) 2ならば Η„(Δζ' )≥1であり、
Figure imgf000051_0001
ることから、 active s-box の個数が 2にな ることはあり得ないので、 nd 3となる。 ところで、 例えば、
Figure imgf000051_0002
Δζ,=
Figure imgf000051_0003
となり、 active s— box の個数は、 Η (Δζ)+Η Δζ' )=3である。 従って、 nd=3となるので、 定理 1より このラウンド関数の耐性は p p である。 また n,についても同様の議論ができ、 n,= 3, q≤q であることが示せる。

Claims

請求の範囲
1 . 複数の鍵データを保持する鍵記憶手段と、 上記複数の鍵データが与えられ、 それぞれ鍵依存の非線形変換を行う非線形関数部をそれぞれ含む縦続接続された 複数のラウンド処理部とを含み、 入力データを鍵データに依存して別のデータに 変換するデータ変換装置であり、 各上記ラウンド処理部の上記非線形関数部は: 上記ラウンド処理部への入力データを、 上記鍵記憶手段に蓄積された第 1鍵デ ータに基づレ、て線形変換を行う第 1鍵依存線形変換手段と、
上記第 1鍵依存線形変換手段の出力データを η個のサブデータに分割する分割 手段と、 ηは 4以上の正数であり、
上記 η個のサブデータのそれぞれに非線形変換を行う第 1非線形変換手段と、 上記鍵記憶手段に蓄積された第 2鍵データと、 上記第 1非線形変換手段の各々 の出力サブデータとで線形変換を行う第 2鍵依存線形変換手段と、
上記第 2鍵依存線形変換手段の η個の出力サブデータのそれぞれに非線形変換 を行う第 2非線形変換手段と、 及び
上記第 2非線形変換手段の η個の出力サブデータを結合して上記非線形関数手 段の出力とする結合手段、
とを含み、 上記第 2鍵依存線形変換手段は、 その入力に対し η X η行列で規定さ れる排他的論理和を行う線形変換層を含んでいる。
2 . 請求項 1記載のデータ変換装置において、
上記入力データを二つの部分データに分割する初期分割手段と、
上記部分データの一つを入力とする上記非線形関数手段と、
上記非線形関数手段の出力データを残りの部分データの一つに作用させる線形 演算手段と、
二つの部分データを一つの出力データに結合する最終結合手段、
とを備える。
3 . 請求項 2に記載のデータ変換装置において、
上記入力データに変換を行って上記初期分割手段へ供給する初期変換手段を備 えることを特徴とするデータ変換装置。
4 . 請求項 2又は 3に記載のデータ変換装置において、 上記最終結合手段の 出力データに変換を行って上記データ変換装置の出力データとする最終変換手段 を備えることを特徴とするデータ変換装置。
5 . 請求項 3又は 4に記載のデータ変換装置において、 上記初期変換手段及 び上記最終変換手段の少くとも一方は、 上記鍵記憶手段に蓄積された鍵データに 基づいて変換を行う鍵依存変換手段であることを特徴とするデータ変換装置。
6 . 請求項 1乃至 5のいずれか 1つに記載のデータ変換装置において、
上記非線形関数手段は、 上記鍵記憶手段に蓄積された第 3鍵データにより上記 結合手段の出力データを線形変換して上記非線形関数手段の出力とする第 3鍵依 存線形変換手段を備えることを特徴とするデータ変換装置。
7 . 請求項 1乃至 6のいずれか 1つに記載のデータ変換装置において、
上記第 1鍵依存線形変換手段、 上記第 2鍵依存線形変換手段、 上記第 3鍵依存 線形手段のいずれかは、 固定された線形変換を行う線形変換手段であることを特 徴とするデータ変換装置。
8 . 請求項 1乃至 7のいずれか 1つに記載のデータ変換装置において、
上記第 1非線形変換手段及び上記第 2非線形変換手段は、 その各入力サブデー タを、 二つのサブブロックに分割する手段と、 その分割された二つのサブブロッ クに対し、 それぞれ線形変換を行う手段と、 非線形変換を行う手段とを縦続的に 行う手段と、 その縦続的に行う手段の各変換出カサブブ口ックを統合して対応入 力サブデータに対する非線形変換出力サブデータとする手段を備えていることを 特徴とするデータ変換装置。
9 . 請求項 1乃至 8のいずれか 1つに記載のデータ変換装置において、 上記 n X n行列は、 予め決定した安全性閾値 Tに対し、 それぞれがハミング重み T-1 以 上となる n個の列べクトルから構成されている。
1 0 . 請求項 9に記載のデータ変換装置において、 上記行列は、 上記ハミング 重みが T-1 以上となる列ベクトルから構成された複数の行列の候補から、 最大の n dを与えるものとして選択されたものであり、 上記 ndは active s - boxの最少個数で ある。
1 1. 請求項 1乃至 1 0のいずれか 1つに記載のデータ変換装置において、 上 記 n X n行列は 4 X 4行列である。
1 2. 請求項 1 1に記載のデータ変換装置において、
上記第 2線形変換手段は、 上記第 1非線形変換手段よりの 4つの出力 Al, A2, A
3, A4を入力して、
Β1=Α1ΘΑ3ΘΑ4
Β2=Λ2ΘΑ3ΘΑ4
Β3=Α1ΘΑ2ΘΑ3
Β4=Α1ΘΑ2ΘΑ4
をそれぞれ演算して、 データ , Β2, Β3, Β4を出力する手段であることを特徴と するデータ変換装置。
1 3. 請求項 1 2に記載のデータ変換装置において、
上記第 2線形変換手段は鍵依存線形変換手段であつて、 上記鍵記憶手段よりの 鍵データ k2=[k21, k22, k23, k24] も入力され、 上記 Bl, B2, B3, B4を得る演算 に、 それぞれ k21, k22, k23, k24も排他的論理和算されることを特徴とするデー タ変換装置。
14. 請求項 1 1に記載のデータ変換装置において、
上記第 1非線形変換手段は上記分割手段よりの 4個の各 mビットのサブデータ i nl, in2, in3, in4の inlを 4mビットの MI1 = [Al, 00···0(2), Al, Al]に変換する手 段と、 in2を 4mビットの ΜΙ2=[00···0(2), Α2, Α2, Α2]に変換する手段と、 in3を 4m ビットの MI3=[A3, A3, A3, 00··'0(2)〕に変換する手段と、 in4を 4mビットの MI4= [A
4, Α4, 00〜0ω, Α4]に変換する手段とよりなり、
上記第 2線形変換手段は、上記第 1非線形変換手段よりのデータ Mil, MI2, MI3, MI4を入力して、 Β = ΜΙ1®ΜΙ2ΘΜΙ3ΘΜΙ4を演算し、 Β=[Β1, Β2, Β3, Β4]を出力す る手段であることを特徴とするデータ変換装置。
1 5. 請求項 1 4に記載のデータ変換装置において、
上記第 2線形変換手段は鍵依存線形変換手段であって、 上記鍵記憶手段よりの 4 mド トの鍵データ k2も入力され、 上記 Bの演算に k2も排他的論理和算される ことを特徴とするデータ変換装置。
1 6. 請求項 1乃至 1 0のいずれか 1つに記載のデータ変換装置において、 上 記 n X n行列は 8 X 8行列である。
1 7. 請求項 1 6に記載のデータ変換装置において、
上記第 2線形変換手段は、 その 8つの出力サブデータ B1〜B8を、 上記第 1非線 形変換手段の 8つの出力サブデータ Λ1, Α2, ···, Α8のうち、 6つのサブデータの 排他的論理和算により 4つの出力サブデータ Bl, Β2, Β3, Β4を得、 上記 8つの出 力サブデータ中の 5つのサブデータの排他的論理和算により 4つの出力サブデー タ Β5, Β6, Β7, Β8を得る手段であることを特徴とするデータ変換装置。
1 8. 請求項 1 7に記載のデータ変換装置において、 上記第 2線形変換手段は 鍵依存線形変換手段であって、 上記鍵記憶手段に蓄積された鍵データ k2=[k21, k 22, k23, k24, K25, k26, k27, k28]も入力され、 上記出力サブデータ [Bl, B2, B 3, B4, B5, B6, B7, B8]を得る排他的論理和算にそれぞれ、 鍵データ k21, k22, k 23, k24, k25, k26, k27, k28が排他的論理和されることを特徴とするデータ変換
1 9. 請求項 1 6に記載のデータ変換装置において、
上記第 1非線形変換手段は、 上記分割手段よりの 8個の各 mビットのサブデー タ inl〜in8をそれぞれ 8mビットのデータ
ΜΙ1 = [00···0(2), Λ1, Al, Al, Al, A1, 00···0(2), Al]、
ΜΙ2=[Α2, 00···0(2), Α2, Α2, Α2, Α2, Α2, 00···0(2)]、
ΜΙ3=[Α3, A3, 00···0ω, A3, 00···0(2), A3, A3, Α3]、
ΜΙ4=[Α4, Α4, Α4, 00···0(2), Α4, 00···0(2), Α4, Α4]、
ΜΙ5=[Α5, 00···0(2), Α5, Α5, Α5, 00···0(2), 00···0(2), Α5]、
ΜΙ6二 [Α6, Α6, 00···0(2), Α6, Α6, Α6, 00···0(2), 00···0(2)]、
ΜΙ7=[Α7, Α7, Α7, 00···0(2), 00···0(2), Α7, Α7, 00·'·0(2)]、 及び
Ι8=[00···0<2), Α8, Α8, Α8, 00···0(2), 00···0(2), Α8, Α8]
に変換する手段であり、
上記第 2線形変換手段は、 上記第 1非線形変換手段よりのデータ ΜΙ1〜ΜΙ8を入 力して、 Β = ΜΠ®ΜΙ2®ΜΙ3ΦΜΙ4㊉ ΜΙ5ΦΜΙ6㊉ ΜΙ7ΦΜΙ8を演算し、 Β= [Β1, Β2, Β3, Β 4, Β5, Β6, Β7, Β8]を出力する手段であることを特徴とするデータ変換装置:
2 0 . 請求項 1 9に記載のデータ変換装置において、
上記第 2線形変換手段は鍵依存線形変換手段であつて、 上記鍵記憶手段の 8mビ ットの鍵データ k2も入力され、 上記 Bの演算に k2も排他的論理和算されることを 特徴とするデータ変換装置。
2 1 . 鍵記憶手段に保持された複数の鍵データが与えられ、 それぞれ鍵依存の 非線形変換を行う非線形関数処理を含むラウンド処理を複数回縦続して実行する ことにより、 入力データを鍵データに依存して別のデータに変換するデータ変換 プログラムが記録された記録媒体であり、 各上記ラウンド処理の上記非線形関数 処理は:
上記ラウンド処理部への入力データを、 上記鍵記憶手段に保持された第 1鍵デ ータに基づいて線形変換を行う第 1鍵依存線形変換ステツプと、
上記第 1鍵依存線形変換ステツプによる出力データを n個のサブデータに分割 する分割ステップと、 nは 4以上の整数であり、
上記 n個のサブデータのそれぞれに非線形変換を行う第 1非線形変換ステップ と、
第 2鍵データと、 上記第 1非線形変換ステップの出力サブデータとで線形変換 を行う第 2鍵依存線形変換ステップと、
上記第 2鍵依存線形変換ステツプによる n個の出力サブデータのそれぞれに第 2の非線形変換を行う第 2非線形変換ステップと、 及び
上記第 2非線形変換ステップによる n個の出力サブデータを結合して上記非線 形関数処理結果として出力する結合ステップ、
とを含み、
上記第 2鍵依存線形変換ステップは、 その入力に対し n X n行列で規定される 排他的論理和を行う排他的論理和線形変換ステップを含んでいる。
2 2 . 請求項 2 1に記載の記録媒体において、 上記データ変換プログラムは、 ヒ記入力データを二つの部分データに分割する初期分割ステップと、 δδ 上記部分デ一タの一つを入力とする上記非線形関数処理を行うステップと、 上記非線形関数処理ステップの出力データを残りの部分データの一つに作用さ せる線形演算ステップと、
二つの部分データを一つの出力データに結合する最終結合ステップ、 とを含む。
2 3 . 請求項 2 2に記載の記録媒体において、 上記データ変換プログラムは、 上記入力データに変換を行って上記初期分割ステップへ供給する初期変換ステツ プを含む。
2 4 . 請求項 2 2又は 2 3に記載の記録媒体において、 上記データ変換プログ ラムは 上記最終結合ステップの出力データに変換を行って上記データ変換出力 データとする最終変換ステップを含む。
2 5 . 請求項 2 3又は 2 4に記載の記録媒体において、 上記データ変換プログ ラムの、 上記初期変換ステップ及び上記最終変換ステップの少くとも一方は、 鍵 データに基づいて変換を行う鍵依存変換ステップである。
2 6 . 請求項 2 1乃至 2 5のいずれか 1つに記載の記録媒体において、
上記非線形関数処理ステップは、 上記鍵保持手段に保持された第 3鍵データに より上記結合ステツプの出力データを線形変換して上記非線形関数処理ステツプ の出力とする第 3鍵依存線形変換ステップを含む。
2 7 . 請求項 2 1乃至 2 8のいずれか 1つに記載の記録媒体において、
上記第 1鍵依存線形変換ステップ、 上記第 2鍵依存線形変換ステップ、 上記第 3鍵依存線形変換ステップのいずれかは、 固定された線形変換を行う線形変換ス テツプである。
2 8 . 請求項 2 1乃至 2 7のいずれか 1つに記載の記録媒体において、
上記第 非線形変換ステツプ及び上記第 2非線形変換ステツプは、 その各入力 サブデータを、 二つのサブブロックに分割するステップと、 その分割された二つ のサブプロックに対し、 それぞれ線形変換を行う処理と、 非線形変換を行う処理 とを縦続的に行うステップと、 その縦続的に行うステップの各変換出カサブブ口 、ソクを統合して対応入力サブデータに対する非線形変換出力サブデータとするス テツプを含む。
2 9 . 請求項 2 1乃至 2 8のいずれか 1つに記載の記録媒体において、 上記 n X n行列は、 予め決定した安全性閾値 Tに対し、 それぞれがハミング重み T - 1 以 上となる n個の列べク トルから構成されている。
3 0 . 請求項 2 9に記載の記録媒体において、 上記行列は、 上記ハミング重み カ^- 1 以上となる列べク トルから構成された複数の行列の候補から、 最大の ndを 与えるものとして選択されたものであり、 上記 ndは acti ve s- boxの最少個数であ る。
3 1 . 請求項 2 1から 3 0のいずれかに記載の記録媒体において、 上記 n X n 行列は 4 X 4行列である。
3 2 . 請求項 3 1に記載の記録媒体において、
上記第 2線形変換ステップは、 上記第 1非線形変換ステップょりの 4つの出力 A 1, A2, A3, A4を入力して、
Β1 =Α1ΘΑ3ΘΑ4
Β2 =Α2ΘΑ3ΘΑ4
Β3 = Α1θΑ2ΘΑ3
Β4 = Α1ΘΑ2ΘΑ4
をそれぞれ演算して、 データ Bl, Β2, Β3, Β4を出力するステツブである。
3 3 · 請求項 3 2に記載の記録媒体において、
上記第 2線形変換ステップは鍵依存線形変換ステップであつて、 上記鍵記憶手 段よりの鍵データ k2= [k21, k22, k23, k24] も入力され、 上記 Bl, B2, B3, B4を 得る演算に、 それぞれ k21, k22, k23, k24も排他的論理和算される。
3 4 . 請求項 3 2又は 3 3に記載の記録媒体において、
上記第 1非線形変換ステップは上記分割ステップよりの 4個の各 mビッ トのサ ブデータ inl, in2, in3, in4の inlを 4mビッ トの Mi l = [Α1, 00· · ·0(2), Al, Al ]に変 換するステップと、 in2を 4mビッ トの ΜΙ2= [00·· ·0(2), Α2, Α2, Α2]に変換するステ ップと、 in3を 4mビットの ΜΙ3= [Α3, A3, A3, 00· · ·0(2) ]に変換するステップと、 in 4を 4mビ、、ノ トの MI4= [A4, A4, 00· · '0(2), Α4]に変換するステップとよりなり、 上記第 2線形変換ステップは、 上記第 1非線形変換ステップよりのデータ Mil, MI2, I3, MI4を入力して、 Β = ΜΙ1ΘΜΙ2®ΜΙ3®ΜΙ4を演算し、 Β=[Β1, Β2, Β3, Β4] を出力するステップである。
35. 請求項 34に記載の記録媒体において、
上記第 2線形変換ステップは鍵依存線形変換ステップであって、 上記鍵記憶手 段よりの 4mビットの鍵データ k2も入力され、 上記 Bの演算に k2も排他的論理和算 される。
36. 請求項 2 1乃至 30のいずれか 1つに記載の記録媒体において、 上記 n
X n行列は 8 X 8行列である。
37. 請求項 36に記載の記録媒体において、
上記第 2線形変換ステップは、 その 8つの出力サブデータ B1〜B8を、 上記第 1 非線形変換ステップの 8つの出力サブデータ Al, A2, ···, A8のうち、 6つのサブ データの排他的論理和算により 4つの出力サブデータ Bl, B2, B3, B4を得、 上記 8つの出力サブデータ中の 5つのサブデータの排他的論理和算により 4つの出力 サブデータ B5, B6, B7, B8を得るステップである。
38. 請求項 37に記載の記録媒体において、 上記第 2線形変換ステツプは鍵 依存線形変換ステップであって、 上記鍵記憶手段に蓄積された鍵データ k2=[k21, k22, k23, k24, K25, k26, k27, k28]も入力され、 上記出力サブデータ [Bl, B2, B3, Β4, Βδ, Β6, Β7, Β8]を得る排他的論理和算にそれぞれ、 鍵データ k21, k22, k23, k24, k25, k26, k27, k28が排他的論理和される。
39. 請求項 37又は 38に記載の記録媒体において、
上記第 1非線形変換ステップは、 上記分割ステップよりの 8個の各 mビットの サブデ一タ inl〜in8をそれぞれ 8mビットのデータ
ΜΙ1 = [00···0(か Al, Al, Al, Al, A1, 00···0(2), Al]、
ΜΙ2=[Α2, 00···0( )) Α2, Α2, Α2, Α2, Α2, 00···0(2)]、
ΜΙ3=[Λ3, A3, 00···0(2)> A3, 00···0(2), A3, A3, A3],
ΜΙ4=[Α4, Α4, Α4, 00···0(2), Α4, 00···0(2), Α4, Α4]、
ΜΙ5=[Α5, 00-·0ω, Α5, Α5, Α5, 00···0(2), 00···0(2), Α5]、 MI6=[A6, A6, 00···0( ), A6, A6, A6, 00···0(2), 00···0(2)]、 Ι7=[Α7, Α7, Α7, 00···0(2), 00···0(2), Α7, Α7, 00···0(2)]、 及び ΜΙ8=[00···0(2), Α8, Α8, Α8, 00···0(2), 00···0(2), Α8, Α8]
に変換するステップであり、
上記第 2線形変換ステップは、 上記第 1非線形変換ステップよりのデータ Mil〜
MI8を入力して、
Β = ΜΙ1ΘΜΙ2ΘΜΙ3ΘΜΙ4ΘΜΙ5ΘΜΙ6ΘΜΙ7ΘΜΙ8
を演算し、 Β=[Β1, Β2, Β3, Β4, Β5, Β6, Β7, Β8]を出力するステップである。
40. 請求項 39に記載の記録媒体において、
上記第 2線形変換ステップは鍵依存線形変換ステップであつて、 上記鍵記憶手 段の 8mビットの鍵データ k2も入力され、 上記 Bの演算に k2も排他的論理和算され る。
41. 請求項 1乃至 20のいずれか 1つのデータ変換装置において、 更に、 主鍵 Kが入力され、 縦続的に動作する M段からなり、 各段より中間値し j+1 (j =
0, 1, ···, M-l) 成分を生成する G関数手段と、
その G関数手段の出力である各中間値し」.成分を一旦記憶しておくための中間値 記憶手段と、
複数個のし」成分から N個の副鍵を生成し、 上記鍵記憶手段に上記複数の鍵デー タとして記憶する部分情報抽出機能を備えた H関数手段、
とを含み、
上記 G関数手段は、 上記主鍵 Kを、 Y。 の少なくとも一部として取り込み、 j+1 段目が (j = 0, 1, ···, M-l) j段目の出力 (し j, Yj , ν」) 中の Υ」 と ν」 を入力し、 その入力を拡散して、 Lj+,, Yjt| , vjt, を出力し、 を Kとする手段であり、 上記 H関数手段は、 i (i = l, 2, ···, N) と上記中間値記憶手段のしい 12, ···, LM とを入力とし、 iによって決められたビット位置の情報を , …, より抽出 する副鍵 ki を出力し、 上記副鍵は上記複数の鍵データとして上記鍵記憶手段に蓄 積される。
42. 請求項 1乃至 20のいずれか 1つに記載のデータ変換装置において、 更 主鍵 Kが入力され、 縦続的に動作する Μ段からなり、 各段より中間値 (j = 0, 1, …, M-1) 成分を生成する G関数手段と、
その G関数手段で生成された複数個の L」成分から副鍵を生成する部分情報抽出 機能を備えた H関数手段と、
その H関数手段の出力を副鍵 に対応する値として記憶しておくための中間値 記憶手段、
とを含み、
上記 G関数手段は、 上記主鍵 Kを、 Y。 の少なくとも一部として取り込み、 j+1 段目が j段目の出力 (L」, Υ」, v」) 中の Y」, Vjを入力し、 その入力を拡散して Lj+,, Yj+1, vj+I を出力する手段であり、
上記 H関数手段は、 i, q, Lj ( 1≤ i≤N , 1≤ j ≤M, l q ki のビッ ト数) を入力として、 し」から、 iと qによって決められたビット位置情報を抽出 して、 副鍵 のビット位置 qの情報とする手段であり、 上記副鍵は上記複数の鍵 データとして上記鍵記憶手段に記憶される。
4 3 . 請求項 4 1又は 4 2に記載のデータ変換装置において、 上記 G関数手段は、 入力された Υ」を 2つのブロック(Y , Y )に分割し、 Yj1'を vj+1として出力するデ一タ 分割手段と、
上記 Y と上記 とから Y/®Vjを演算する排他的論理和手段と、
上記 Y と上記排他的論理和手段の出力とがあたえられ、 それらを互いに拡散し た結果を Lj+ として出力するデータ拡散手段と、
上記 Y を Yj+1 Lとし、 上記 ,を Y とし、 これら Yj+1 Lと Y を互いに連結して Yj+ I=
(Yj+1 L, Yj+l R)として出力するデータ入れ換え手段、
とを含む。
4 4 . 請求項 4 1に記載のデータ変換装置において、 上記 H関数手段は、 上記中間値記憶手段から読み出した各し」を各 1ビットずつ
"j"), t 2), ·· ·, t ))= し」 ( 1,2, ·'·,Μ)
に分割するビット分割手段と、 得られた( ω, t,( +i), t2 (i), t2(、+i), ···, t"(i) Cを結合して副鍵
1, ― (i) (N+i) + (i) f (N+i) ... (i)
l\i I 1 2 M M
(i = l,2, ·'·,Ν)
を出力するビット結合手段、
とを含む。
45. 請求項 42に記載のデータ変換装置において、 上記 Η関数手段は、 上記各し」を各 1ビッ トずつ
(tj(1), ί 2), …, t;2)) = L. (j=l,2, ·'·,Μ)
に分割するビット分割手段と、
上記ビッ ト( (1), t 2), ··', t から iに対して のビット位置 qにより決ま るし」のビット位置の情報が、 のビット位置となるよう結合して副鍵
=(^ tt +i), ... t、,(i)t +i))
(i = l,2, '··,Ν)
を出力するビット結合手段、
とを含む。
46. 請求項 4 1又は 42に記載のデータ変換装置において、
上記 G関数手段は次の演算処理、
(Lj+1, (Yj+1,
Figure imgf000062_0001
v」) (0≤ j ≤M- 1) において、 出力結果を
((γ (1), γ (2), γ (3), ν,) „ 1¾,1^),[( , ,^), +1]) ここで、
Figure imgf000062_0002
l, 2, 3, 4)
Lし( j0+)i = v vJ
Lし Ί ( ii++ )l1
Figure imgf000062_0003
l, 2, 3, 4)
v Vj+l一 - ^ L(j4+)I
を実行する手段であり、
上記 H関数手段は次の演算処理
=H(i, L„ し 2, ···, LM) において、
q l44i,++jl =Lつ(; +++1;) (i=0, 1, 2, 3)
(t[°),t ),...,t )) = qi (i = 0, 1, 31) k/. - (t([i/2]) ([i/2]) ([i/2]) ) - n , ... N_
K(i+1) - \l0+(imod2)'L2+(imod2)'-'l30+(imod2)/ "一り' 丄' ' を実行する手段である。
47. 主鍵から副鍵をスケジュールする装置であって、
主鍵 Kが入力され、 縦続的に動作する M段からなり、 各段より中間値 L」 (j = 0, 1, …, M-1) 成分を生成する G関数手段と、
その G関数手段の出力である各中間値し」成分を一旦記憶しておくための中間値 記憶手段と、
複数個のし」成分から N個の副鍵を生成する部分情報抽出機能を備えた H関数手 段、
とを含み、
上記 G関数手段は、 上記生鍵 Kを、 Y。 の少なくとも一部として取り込み、 j+1 段目が (j = 0, 1, ···, M-1) j段目の出力 (1^, Yj, ν 中の と Vj を入力し、 その入力を拡散して、 し j+1 , Yj+, , vj+1 を出力し、 を Kとする手段であり、 上記 H関数手段は、 i (i = l, 2, ···, N) と上記中間値記憶手段の L L2, ···, LM とを入力とし、 iによって決められたビット位置の情報をし,, …, LM より抽出 する副鍵 を出力する手段であることを特徴とする暗号鍵スケジュール装置。
48. 主鍵から副鍵をスケジュールする装置であって、
主鍵 Kが入力され、 縦続的に動作する M段からなり、 各段より中間値し」 (j = 0, 1, ···, M-1) 成分を生成する G関数手段と、
その G関数手段で生成された複数個のし」成分から副鍵を生成する部分情報抽出 機能を備えた H関数手段と、
その H関数手段の出力を副鍵 k,. に対応する値として記憶しておくための中間値 記憶手段、 とを含み、
上記 G関数手段は、 上記主鍵 Kを、 Y„ の少なくとも一部として取り込み、 j +1 段目が j段目の出力 (し」, Υ」, Vj) 中の , Vjを入力し、 その入力を拡散して Yj+ vj+1 を出力する手段であり、
上記 H関数手段は、 i q L」 ( 1≤ i≤N, 1≤ j ≤M, l ^q ^k; のビッ ト数) を入力として、 し」 から、 i と qによって決められたビッ ト位置情報を抽出 して、 副鍵 のビット位置 qの情報とする手段であることを特徴とする暗号鍵ス ケジュール装置。
49. 請求項 47又は 48に記載の装置において、 上記 G関数手段は、
入力された Υ」を 2つのブロック , Y/)に分割し、 YjLを vj+1として出力するデータ 分割手段と、
上記 Y/と上記 Vjとから Y/eVjを演算する排他的論理和手段と、
上記 Y と上記排他的論理和手段の出力とがあたえられ、 それらを互いに拡散し た結果を Lj+,しとして出力するデータ拡散手段と、
上記 を Yw1'とし、 上記し j+1を Y とし、 これら Yj+1 Lと Υ」 を互いに連結して Yj+1=
(Yj+1 L, Υ」 )として出力するデータ入れ換え手段、
とを含む。
50. 請求項 47に記載の装置において、 上記 H関数手段は、
上記中間値記憶手段から読み出した各 Ljを各 1ビットずつ
(t 1), t 2), ···, ΐ/2Ν)) = し」 (j=l,2, ·'· Μ)
に分割するビット分割手段と、
得られた "), t,( +i), t2 (i), t '·) C tM (、'+i>)を結合して副鍵
(i) (N+i) i) N+i
k,= (t,(i), t (N+i)
M M
(i = l 2, '··,Ν)
を出力するビット結合手段、
とを含む。
51. 請求項 48に記載の装置において、 上記 Η関数手段は、
上記各 を各 1ビットずつ (tj(1), t 2), ···, t 2 )) = LJ (j=l,2, ---,M)
に分割するビット分割手段と、
上記ビッ ト (t 1), t 2>, ···, (2、)) 力、ら iに対して のビッ ト位置 qにより決 まるし jのビット位置の情報が、 ^のビット位置となるよう結合して副鍵
(t,(i), t,<N+i), t2 (i), t2(、+i) ·'· tM (i), tM (N+i))
(i = l 2, ·'·,Ν)
を出力するビッ ト結合手段、
とを含む。
5 2. 請求項 47又は 48に記載の装置において、
上記 G関数手段は次の演算処理、
(Lj+1, (Yj+
Figure imgf000065_0001
ν」) (0≤ j ≤M- 1 ) において、 出力結果を
( ), Υ」(2), Υ
( (1) τ(2) τ(3) T(4)U Y(1) γ(2) γ(3) γ(4) ·,) \^Lj+l, Lj+いし j+1, Lj+】), l( Yj+1 ' Yj+1 ' Yj+1, Yj+1 V j+1 i) ここで、 Y =f(Y;り) (i = l, 2, 3, 4)
L (i)
つ' i1++l1 =一 f(L( j;:+il))ノ®Y 'J^+l (i = l 2, 3. 4)
v = L(4) を実行する手段であり、
上記 H関数手段は次の演算処理
^ =H(i, しい し 2, ···, LM)
において、 ( =0, 1 2
Figure imgf000065_0002
いi: , 3) (t;0),t ),...,ti7)) = qi (i = 0 1 31) レ 一 it([iZ2]) t([i/2]) t([i/2]) ) (i=Q } ... N_1} (i+1) -\t0+(imod2)'l2+(imod2)'-'l30+(imod2)/ を実行する手段である。
5 3 . 主鍵 Kを入力して複数の副鍵 ki ( i = 1 , · · ·, N) を生成する暗号鍵ス ケジュール装置をコンピュータにより実行させるためのプログラムを記録した記 録媒体であって、
上記プログラムは、 Y。 としての主鍵 Κと定数 ν。 とを入力として入力を拡散処理 することを縦続的に複数回繰返し、 各拡散処理ごとに中間鍵し」 (j = l, 2, · · · , M) を出力する中間鍵生成処理と、
上記各生成された中間鍵し」 を記憶部に記憶する処理と、
上記記憶部に所定数の中間鍵 L, 〜LM が記憶されると、 副鍵 ki の iによって決 まる各ビッ ト位置の L, 〜LM における情報を抽出して副鍵 ^ を生成する副鍵生成 処理と、
を上記コンピュータにより実行させることを特徴とする記録媒体。
5 4 . 主鍵 Kを入力して複数の副鍵 (i = l , 2, · · ·, N) を生成する暗号鍵ス ケジュール装置をコンピュータにより実行させるためのプログラムを記録した記 録媒体であって、
上記プログラムは、
Y0 としての主鍵 Κと定数 ν。 とを入力として、 入力を拡散処理することを縦続的 に複数回繰返し、 各拡散処理ごとに中間鍵 (j = l, 2, · · ·, M) を出力する中間 鍵生成処理と、
上記各中間鍵 が生成されるごとに、 副鍵 の i と、 k; のビット位置 qとに より決まるし」 のビット位置の情報を k,. のビット位置の情報として抽出して、 記憶 部に記憶する処理と、
上記記憶部内の各副鍵 ^ の各ビット位置の情報が決まると、 その副鍵 ki を出力 する処理と、
を処理.コンピュータにより実行させることを特徴とする記録媒体。
PCT/JP1999/000337 1998-01-27 1999-01-27 Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees WO1999038143A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP99901884A EP1052611B9 (en) 1998-01-27 1999-01-27 Data converter and recording medium on which program for executing data conversion is recorded
DE69931606T DE69931606T8 (de) 1998-01-27 1999-01-27 Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
CA002319135A CA2319135C (en) 1998-01-27 1999-01-27 Data transformation device and recording medium having recorded thereon a program for implementing the same
US09/600,955 US6769063B1 (en) 1998-01-27 1999-01-27 Data converter and recording medium on which program for executing data conversion is recorded

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP1357398 1998-01-27
JP10/13573 1998-01-27
JP10/13572 1998-01-27
JP1357298 1998-01-27
JP10/147479 1998-05-28
JP10147479A JP2934431B1 (ja) 1998-05-28 1998-05-28 暗号鍵スケジュール装置、およびそのプログラム記録媒体

Publications (1)

Publication Number Publication Date
WO1999038143A1 true WO1999038143A1 (fr) 1999-07-29

Family

ID=27280324

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/000337 WO1999038143A1 (fr) 1998-01-27 1999-01-27 Convertisseur de donnees et support d'enregistrement sur lequel est enregistre un programme d'execution de conversion de donnees

Country Status (5)

Country Link
US (1) US6769063B1 (ja)
EP (1) EP1052611B9 (ja)
CA (1) CA2319135C (ja)
DE (1) DE69931606T8 (ja)
WO (1) WO1999038143A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891950B1 (en) 1999-08-31 2005-05-10 Kabushiki Kaisha Toshiba Extended key generator, encryption/decryption unit, extended key generation method, and storage medium

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1302022A2 (en) * 2000-03-31 2003-04-16 VDG Inc. Authentication method and schemes for data integrity protection
US7305085B2 (en) * 2000-06-30 2007-12-04 Kabushiki Kaisha Toshiba Encryption apparatus and method, and decryption apparatus and method based on block encryption
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US20020116624A1 (en) * 2001-02-16 2002-08-22 International Business Machines Corporation Embedded cryptographic system
US7885896B2 (en) 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
US7681245B2 (en) 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US7966520B2 (en) 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7698225B2 (en) * 2002-08-30 2010-04-13 Avaya Inc. License modes in call processing
US7707116B2 (en) * 2002-08-30 2010-04-27 Avaya Inc. Flexible license file feature controls
US7890997B2 (en) * 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
US7613295B2 (en) * 2004-02-18 2009-11-03 Harris Corporation Cryptographic device and associated methods
US7599490B2 (en) * 2004-03-03 2009-10-06 Harris Corporation Method and apparatus for data encryption
US7707405B1 (en) 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7747851B1 (en) 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US7814023B1 (en) * 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
EP1934883A4 (en) * 2005-10-10 2011-05-04 Nds Ltd BLOCK ENCRYPTION ENCRYPTION METHOD AND SYSTEM
US7870399B2 (en) * 2006-02-10 2011-01-11 Arxan Defense Systems Software trusted platform module and application security wrapper
US8036379B2 (en) * 2006-03-15 2011-10-11 Microsoft Corporation Cryptographic processing
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8687800B2 (en) * 2006-08-15 2014-04-01 Alcatel Lucent Encryption method for message authentication
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8213607B2 (en) * 2006-10-18 2012-07-03 Qualcomm Incorporated Method for securely extending key stream to encrypt high-entropy data
WO2009075337A1 (ja) * 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US8098816B2 (en) * 2008-10-17 2012-01-17 Qualcomm Incorporated Apparatus and method for evaluating a cipher structure's resistance to cryptanalysis
WO2011036745A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 鍵スケジュール装置および方法
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
US9294266B2 (en) * 2013-06-27 2016-03-22 Qualcomm Incorporated Method and apparatus to encrypt plaintext data
US9774443B2 (en) * 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes
US10608814B2 (en) * 2015-05-17 2020-03-31 Gideon Samid Equivoe-T: Transposition equivocation cryptography
US10742405B2 (en) * 2016-12-16 2020-08-11 The Boeing Company Method and system for generation of cipher round keys by bit-mixers
CN107465505B (zh) 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4850019A (en) 1985-11-08 1989-07-18 Nippon Telegraph And Telephone Corporation Data randomization equipment
JPH08179690A (ja) * 1994-12-22 1996-07-12 Nec Corp プロダクト暗号装置

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
DATABASE SCISEARCH 1 January 1900 (1900-01-01), KANDA M., TAKASHIMA Y., MATSUMOTO T.: "A ROUND FUNCTION STRUCTURE CONSISTING OF FEW S-BOXES (PART II).", XP002920164 *
KANDA M., ET AL.: "A NEW 128-BIT BLOCK CIPHER E2.", IEICE TECHNICAL REPORT, DENSHI JOUHOU TSUUSHIN GAKKAI, JP, vol. 98., no. 227., 30 September 1998 (1998-09-30), JP, pages 13 - 24., XP002920163, ISSN: 0913-5685 *
KANDA M., ET AL.: "A ROUND FUNCTION STRUCTURE CONSISTING OF FEW S-BOXES (PART III).", IEICE TECHNICAL REPORT, DENSHI JOUHOU TSUUSHIN GAKKAI, JP, vol. 98., no. 48., 15 May 1998 (1998-05-15), JP, pages 21 - 30., XP002920165, ISSN: 0913-5685 *
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., XP002920167, ISBN: 978-3-540-24128-7 *
RIJMEN V., ET AL.: "THE CIPHER SHARK.", 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 99 - 111., XP002920166, ISBN: 978-3-540-24128-7 *
See also references of EP1052611A4 *
SHIMIZU A., MIYAGUCHI S.: "FAST DATA ENCIPHERMENT ALGORITHM FEAL.", SECURITY IN COMMUNICATION NETWORKS : THIRD INTERNATIONAL CONFERENCE ; REVISED PAPERS / SCN 2002, AMALFI, ITALY, SEPTEMBER 11 - 13, 2002, SPRINGER VERLAG, DE, vol. 304., 1 January 1987 (1987-01-01), DE, pages 267 - 278., XP002920168, ISBN: 978-3-540-24128-7 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6891950B1 (en) 1999-08-31 2005-05-10 Kabushiki Kaisha Toshiba Extended key generator, encryption/decryption unit, extended key generation method, and storage medium

Also Published As

Publication number Publication date
EP1052611B1 (en) 2006-05-31
CA2319135C (en) 2003-06-17
EP1052611A1 (en) 2000-11-15
US6769063B1 (en) 2004-07-27
EP1052611B9 (en) 2007-02-14
DE69931606T2 (de) 2007-03-08
DE69931606T8 (de) 2007-06-28
EP1052611A4 (en) 2003-08-06
CA2319135A1 (en) 1999-07-29
DE69931606D1 (de) 2006-07-06

Similar Documents

Publication Publication Date Title
WO1999038143A1 (fr) Convertisseur de donnees et support d&#39;enregistrement sur lequel est enregistre un programme d&#39;execution de conversion de donnees
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
Shah Kruti et al. New approach of data encryption standard algorithm
JPH11509940A (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
NO337611B1 (no) Fremgangsmåte og anordning for omforming av data
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
US20090080646A1 (en) Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
CN111431697B (zh) 一种新型轻量级分组密码corl的实现方法
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JP2015191106A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
WO2015146430A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
CN114866224A (zh) 一种基于改进Feistel结构的文本轻量级加密方法
Liu et al. Improved results on impossible differential cryptanalysis of reduced-round Camellia-192/256
CN107248914B (zh) 一种iOS设备上新型对称加密系统及加密方法
Kumar et al. Image encryption using simplified data encryption standard (S-DES)
CN116980194A (zh) 一种基于云边端协同的安全高效数据传输方法及其系统
US20050147244A1 (en) Method for cryptographic transformation of binary data blocks
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
KR20010034058A (ko) 이진 데이터 블록의 암호 변환 방법
WO1999000783A1 (fr) Dispositif de chiffrement
Abdulwahed Chaos-Based Advanced Encryption Standard
JP2004004603A (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
JPH1124558A (ja) 暗号装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA 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

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
ENP Entry into the national phase

Ref document number: 2319135

Country of ref document: CA

Ref country code: CA

Ref document number: 2319135

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1999901884

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09600955

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1999901884

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1999901884

Country of ref document: EP