JP2002023623A - Device and method for deciding parameter, ciphering device, and deciphering device - Google Patents

Device and method for deciding parameter, ciphering device, and deciphering device

Info

Publication number
JP2002023623A
JP2002023623A JP2000212175A JP2000212175A JP2002023623A JP 2002023623 A JP2002023623 A JP 2002023623A JP 2000212175 A JP2000212175 A JP 2000212175A JP 2000212175 A JP2000212175 A JP 2000212175A JP 2002023623 A JP2002023623 A JP 2002023623A
Authority
JP
Japan
Prior art keywords
parameter
matrix
candidate
evaluation value
determining
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2000212175A
Other languages
Japanese (ja)
Other versions
JP4216445B2 (en
Inventor
Hirobumi Muratani
博文 村谷
Fumihiko Sano
文彦 佐野
Kenji Okuma
建司 大熊
Shinichi Kawamura
信一 川村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000212175A priority Critical patent/JP4216445B2/en
Publication of JP2002023623A publication Critical patent/JP2002023623A/en
Application granted granted Critical
Publication of JP4216445B2 publication Critical patent/JP4216445B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To solve the problem that an S-box and an MDS matrices comprised in a ciphering device as the system components offset their effects against each other in spite of the X-box and the MDS intended to realize optimal complexity according to the design policies independent of each other, therefore, the ciphering device has had a probability of being rather unsafe. SOLUTION: By evaluating complexity of a result of multiplication of each candidate of MDS matrix elements by the matrix elements of a given S-box; evaluating, based on a evaluation result of this complexity, the complexity of the combinations of the matrix element candidates composing the MDS matrix; further, evaluating similar complexity also of an inverse matrix to this MDS matrix; and based on the evaluation results of the complexity of these matrices, a method for determining an MDS matrix giving the optimal complexity in the combination with the S-box, and a ciphering device adopting the MDS matrix obtained by the method are provided.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、秘匿のためにデジ
タルデータを暗号化する暗号化装置、及び、必要に応じ
て復号するために用いる復号装置に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to an encryption device for encrypting digital data for secrecy, and a decryption device used for decrypting as necessary.

【従来の技術】[Prior art]

【0002】暗号系には、メッセージの暗号化と復号に
おいて同じ鍵を用いる秘密鍵暗号系と暗号化と復号で異
なる鍵を用いる公開鍵暗号系がある。最も良く知られて
いる秘密鍵暗号は、DES(Data Encrypt
ion Standard)と呼ばれる米国標準ブロッ
ク暗号である。暗号解読は、平文(暗号化前のメッセー
ジ)と暗号文(暗号化後のメッセージ)の対の集合から
暗号化に用いられた鍵を求めることである。暗号解読に
は、平文がもともと持っていた冗長性(rendund
ancy)が利用されることが多い。
[0002] The encryption system includes a secret key encryption system that uses the same key for encrypting and decrypting a message, and a public key encryption system that uses different keys for encryption and decryption. The best-known secret key cryptosystem is DES (Data Encryption).
ION Standard). Decryption is to obtain a key used for encryption from a set of pairs of a plaintext (message before encryption) and a ciphertext (message after encryption). Decryption requires the inherent redundancy of plaintext (endund
ancy) is often used.

【0003】Claude Elmwood Shan
nonは、 “Communication Theo
ry of Secrecy Systems”(Be
llSystem Technical Journa
l、28巻4号、1949年、656−715)という
論文の中で、平文(暗号化前のメッセージ)が持ってい
る冗長性を見えにくくする技法を、confusion
とdiffusionの2つの基本的な技法に分類し
た。
[0003] Claud Elmwood Shan
Non is "Communication Theo
ry of Security Systems "(Be
llSystem Technical Journal
1, Vol. 28, No. 4, 1949, 656-715) describes a technique to make the redundancy of plaintext (messages before encryption) less visible.
And diffusion.

【0004】confusionとは、平文と暗号文の
間の関係を見えにくくすることで、暗号文の冗長性や統
計的パタンを観測することで解読を行うことを難しくす
る。例としては、平文のアルファベットの各文字を暗号
文のアルファベットの各文字に対応付ける換字表を鍵と
して1字1字変換する方法、換字(substitut
ion)、がある。diffusionとは、平文の冗
長性を暗号文全体に広げることである。例としては、平
文の文字の順序を置き換える転置(transposi
tion)がある。
[0004] Confussion makes it difficult to decipher by observing the redundancy and statistical patterns of ciphertext by making the relationship between plaintext and ciphertext invisible. As an example, a method of converting each character of the plain text alphabet into each character by using a substitution table associating each character of the alphabet of the cipher text with a key, a substitution (substitution)
ion). Diffusing is to extend the redundancy of the plaintext to the entire ciphertext. An example is transposition, which replaces the order of plaintext characters.
).

【0005】先ほど述べたDESにおいても、暗号化処
理は、S−boxと呼ばれるconsufionの処理
とP−boxと呼ばれるdiffusion処理を基本
的な処理として含んでいる。
[0005] Even in the DES described above, the encryption processing includes, as basic processing, a confusion processing called an S-box and a diffusion processing called a P-box.

【0006】近年、DESの後継暗号として、AES
(Advanced Encryption Stan
dard)と呼ばれる次世代の米国標準ブロック暗号の
仕様策定の作業が進められている。そこに提案された暗
号は、DES以降の蓄積された暗号解読法の知見を反映
して、confusionとdiffusionにも新
しい考え方が持ち込まれている。
[0006] In recent years, AES
(Advanced Encryption Stan
Work on the specification of a next-generation U.S. standard block cipher called "dard" is underway. The cipher proposed there reflects new knowledge of cryptanalysis since DES, and new concepts have been introduced into confusion and diffusion.

【0007】例えば、diffusionの働きをする
設計上の構成要素としては、線形変換の層が採用される
ことが多い。しかも、できるだけ効率良く拡散を行ため
MDS(Maximal Distance Sepa
rable)符号を利用した線形変換層が提案されてい
る。(Vincent Rijmen、Joan Da
emen、“The Cipher SHARK”、F
ast Software Encryption、L
NCS 1039、99−112、1996。)
For example, a linear conversion layer is often employed as a design component that functions as a diffusion. Moreover, in order to perform diffusion as efficiently as possible, MDS (Maximum Distance Sepa) is used.
A linear transformation layer using a (ramble) code has been proposed. (Vincent Rijmen, Joan Da
emen, "The Cipher SHARK", F
ast Software Encryption, L
NCS 1039, 99-112, 1996. )

【0008】このMDS符号を利用した線形変換層は、
活性S−box数の下限を保証する性質があるため、そ
の事実を利用して、差分解読法と線形解読法に関する強
度を証明することができるという特長がある。
[0008] A linear conversion layer using the MDS code is as follows.
Since it has the property of guaranteeing the lower limit of the number of active S-boxes, there is a feature that the fact can be used to prove the strength of the differential cryptanalysis and the linear cryptanalysis.

【0009】差分解読法と線形解読法以外の主な解読法
に対する対策は、換字層において行われており、線形変
換層に対する新たな制約とはならない。
[0009] Measures against major decoding methods other than the differential decoding method and the linear decoding method are performed in the substitution layer, and do not become a new constraint on the linear conversion layer.

【0010】例えば、差分解読法、線形解読法、高階差
分解読法、補間攻撃法に対して安全となるよう、S−b
oxを有限体上のベキ関数やその和として設計する方法
が提案されている。(盛合志帆、「差分/線形/高階差
分/補間攻撃に対して強いS−boxの一構成法」、1
998年暗号と情報セキュリティシンポジウム、2.
2.C、1998年。)
For example, S-b is secured against differential cryptanalysis, linear cryptanalysis, higher-order cryptanalysis, and interpolation attack.
A method of designing ox as a power function on a finite field or its sum has been proposed. (Shiho Moriai, "One construction method of S-box strong against differential / linear / higher differential / interpolation attack", 1
1. 998 Cryptography and Information Security Symposium,
2. C, 1998. )

【0011】また、補間攻撃に対して安全にするため、
有限体上のベキ関数と剰余類環上のアフィン変換によっ
てS−boxを構成する方法が提案されている。(M.
Kanda et al.、“E2−A New 12
8−Bit Block Cipher”、IEICE
Trans. Fundamentals.、E83
−A、1、48−58、2000。)
Further, in order to secure against interpolation attacks,
A method of constructing an S-box by a power function on a finite field and an affine transformation on a coset ring has been proposed. (M.
Kanda et al. , "E2-A New 12
8-Bit Block Cipher ", IEICE
Trans. Fundamentals. , E83
-A, 1, 48-58, 2000. )

【0012】つまり、現在の暗号設計の流儀では、差分
解読法と線形解読法に対する対策としては、S−box
の適切な選択とMDS符号を利用した線形変換層の採用
が行われるものの、差分解読法や線形解読法以外の解読
法に対する対策としては、主として、S−boxの適切
な選択によってのみ行われており、MDS符号としてど
のようなものを採用すべきか積極的な選択指針が与えら
れていない。
That is, in the current cryptographic design style, as a countermeasure against the differential cryptanalysis and the linear cryptanalysis, the S-box
Although the appropriate selection of and the adoption of the linear transformation layer using the MDS code is performed, as a countermeasure against the decoding methods other than the differential decoding method and the linear decoding method, mainly, only by appropriate selection of the S-box, Therefore, no aggressive selection guide has been given as to what MDS code should be adopted.

【0013】MDS符号を利用した線形変換層を行列と
して表現した場合、それをMDS行列と呼ぶことにす
る。MDS行列の行列要素を決定する主な設計方針とし
て、現在までに提案されているものの例は、AES候補
であるRijndael暗号における設計方針として
は、MDS行列をテーブルルックアップで実装する場合
のテーブルサイズを小さくすること、MDS行列の行列
演算を8ビットプロセッサで処理する場合に効率的に処
理できること、がある。また、同じくAES候補である
Twofish暗号における設計方針としては、MDS
行列の直後で用いられているPHT(Pseudo−H
adamard Transformation)との
関係から、MDS行列が折角保証しているブランチ数を
その直後のPHTが小さくしてしまう確率を小さくする
よう行列要素を決定している。
When a linear transformation layer using an MDS code is expressed as a matrix, it is called an MDS matrix. Examples of the main design policy for determining the matrix element of the MDS matrix up to now include, as an example, the design policy in the Rijndael cipher which is an AES candidate is the table size when the MDS matrix is implemented by table lookup. , And that the matrix operation of the MDS matrix can be efficiently processed when it is processed by an 8-bit processor. In addition, the design policy of Twofish encryption, which is also an AES candidate, is MDS
PHT (Pseudo-H used immediately after the matrix)
The matrix element is determined from the relationship with the “Adamard Transformation” so as to reduce the probability that the PHT immediately following the number of branches guaranteed by the MDS matrix is reduced.

【0014】つまり、従来、MDS行列の行列要素の選
択基準は、処理効率や実装コストの観点によるものが主
である。例外は、PHTなど、他の特殊なプリミティブ
との関連から差分解読法や線形解読法に対する安全性を
極力下げないようにするというものであった。Rijn
dael暗号の設計方針が言うように、8ビットプロセ
ッサ上では、行列演算をテーブルルックアップではな
く、プロセッサの算術演算や論理演算によって実装する
ため、タイミング攻撃に結びつく恐れもちろんあるた
め、行列要素を慎重に選択する必要があるという主張も
あるのだが、特殊なプラットフォームに限定された問題
と言える。
That is, conventionally, the selection criteria for the matrix elements of the MDS matrix are mainly based on the viewpoints of processing efficiency and mounting cost. The exception was to minimize security against differential and linear cryptanalysis in relation to other special primitives such as PHT. Rijn
As the design policy of the dael cryptography says, on 8-bit processors, matrix operations are implemented not by table lookup but by arithmetic or logical operations of the processor. Some argue that there is a need to choose, but this is a problem limited to special platforms.

【0015】従来のように、S−boxとMDS行列を
別々の設計方針で設計すると、S−boxが折角安全性
を高めるための設計をされているにもかかわらず、MD
S行列がその効果を相殺するような設計になってしまう
恐れがある。
If the S-box and the MDS matrix are designed according to different design principles as in the prior art, the S-box is designed to enhance the security, but the MD
There is a risk that the S matrix may be designed to offset its effect.

【0016】例えば、S−boxを出来るだけ複雑な関
数として実現することで安全性を高めようとする場合を
考える。例えば、nビットの入出力を持つS−boxの
場合、入出力をGF(2)の元とみなし、S−box
をGF(2)からGF(2 )への関数とするとき、
その表現が単純な関数、具体的には、項数の少ない多項
式や、分子の多項式の項数と分母の多項式の項数の和が
小さい有理式、であるときには、補間攻撃が有効である
ことが知られている。(盛合志帆、下山武司、金子敏
信、「SNAKE暗号の補間攻撃」、1998年暗号と
情報セキュリティシンポジウム、7.2.C、1998
年。)補間攻撃とは暗号化関数を未知の係数を持つ多項
式や有理式で表現し、平文−暗号文の対を複数与えるこ
とで、これらの係数をラグランジュの補間法などによっ
て決定する解読法である。
For example, an S-box is defined as a complex
When trying to increase security by realizing as a number
Think. For example, an S-box having n-bit input / output
In this case, input and output are GF (2n) And S-box
To GF (2n) To GF (2 n)
A function whose expression is simple, specifically a polynomial with a small number of terms
Or the sum of the number of terms in the numerator polynomial and the number of terms in the denominator polynomial is
When it is a small rational expression, interpolation attack is effective
It is known. (Shiho Moriai, Takeshi Shimoyama, Satoshi Kaneko
Shin, "SNAKE Cryptography Interpolation Attack", 1998 Cryptography
Information Security Symposium, 7.2. C, 1998
Year. ) Interpolation attack is a polynomial encryption function with unknown coefficients
Expressions and rational expressions, giving multiple pairs of plaintext-ciphertext
These coefficients are determined by Lagrange interpolation, etc.
It is a decoding method determined by

【0017】補間攻撃を避けるために、S−boxを構
成する際に、単純なべき乗関数だけでなく、GF
(2)の代数構造に合わない処理、例えば、ビットの
置換や別の代数構造における演算を利用する場合があ
る。この場合、S−boxは、複数のべき乗関数による
多項式として表現しなおすことができる。つまり、GF
(2)の代数構造とは異質な演算を組み合わせること
で、実質的に、多項式の項数を増やした効果を得てい
る。
In order to avoid an interpolation attack, when constructing an S-box, not only a simple power function but also GF
In some cases, processing that does not conform to the algebraic structure of (2 n ), for example, bit substitution or operation in another algebraic structure is used. In this case, the S-box can be re-expressed as a polynomial using a plurality of power functions. That is, GF
By combining operations different from the algebraic structure of (2 n ), the effect of substantially increasing the number of terms in the polynomial is obtained.

【0018】この場合、S−boxに続くMDS行列
が、その入力の表現として、S−boxの出力のGF
(2)の表現と同じ表現を採用する場合には、MDS
行列の行列要素が乗算される影響は、S−boxを表現
しているべき乗関数の多項式の各項に対して、定数の乗
算を行うに過ぎないので、S−boxで項数を増やした
効果を相殺するものとはならない。
In this case, the MDS matrix following the S-box is represented by the GF of the output of the S-box as a representation of the input.
If the same expression as (2 n ) is adopted, MDS
The effect of multiplying the matrix elements of the matrix is merely to multiply each term of the polynomial of the power function expressing the S-box by a constant, and therefore the effect of increasing the number of terms by the S-box Does not cancel out.

【0019】ところが、MDS行列の入力の表現が、S
−boxの出力のGF(2)の表現とは異なる場合、
例えば、ビット位置の役割が両表現で異なる場合や、M
DS行列の入力において意図的にビット置換が行われる
場合などがそうであるが、この場合、折角S−boxに
おいて項数を増やすために行われた異質な演算の組合せ
の効果が、MDS行列の演算において相殺されてしまう
可能性がある。
However, the expression of the input of the MDS matrix is S
If the output of the box differs from the expression of GF (2 n ),
For example, if the role of the bit position is different in both representations,
This is the case, for example, when bit substitution is intentionally performed at the input of the DS matrix. In this case, the effect of the combination of different operations performed to increase the number of terms in the S-box is due to the effect of the MDS matrix. There is a possibility that they will be canceled in the calculation.

【0020】つまり、上の説明は、従来のように、S−
boxとMDS行列が、それぞれ、別個の設計方針で、
独立に補間攻撃への対策を採ってしまうと、逆に、それ
らが相殺する恐れがあることを指摘するものである。
In other words, the above explanation is similar to the prior art,
The box and the MDS matrix are each designed separately,
He pointed out that taking independent countermeasures against interpolation attacks would conversely offset them.

【0021】次に、関数の複雑さを表す別の指標とし
て、S−boxの出力ビットを入力ビットの論理式で表
した場合の項数も考えられる。この指標は、厳密な証明
を与えることは難しいが、我々は、アバランシュ性の目
安になると考える。
Next, as another index indicating the complexity of the function, the number of terms when the output bit of the S-box is represented by a logical expression of the input bit can be considered. Although this index is difficult to give a rigorous proof, we believe it is a measure of avalanche.

【0022】アバランシュ性とは、入力が変化した場合
に、その影響が出力の一部ではなく、できるだけ、広く
影響する性質のことである。ビットの論理表現による項
数が多ければ、出力ビットは、入力ビットに関して規則
的な構造や、単純な表現となっていないと期待されるの
で、入力ビットの変化は、出力ビットに多様な変化をも
たらすことで高いアバランシュ性を実現できるのではな
いかと期待される。
The avalanche property refers to a property that, when the input changes, the influence is not a part of the output but affects as widely as possible. If the number of terms in the logical representation of bits is large, the output bits are not expected to have a regular structure or simple expression with respect to the input bits. It is expected that high avalanche property can be realized by bringing it.

【0023】この場合においても、S−boxとMDS
行列が、それぞれ独立に、ビットの論理表現を複雑にす
るよう設計された場合に、その効果が相殺する場合があ
る。
Also in this case, the S-box and the MDS
If the matrices are independently designed to complicate the logical representation of the bits, the effects may cancel.

【発明が解決しようとする課題】本発明は、S−box
とMDS行列が別々の設計方針で設計されるために、折
角S−boxがある評価値で見たとき、安全性を高める
設計をされているにも関わらず、MDS行列がその効果
を相殺するような設計になってしまうという課題があっ
た。
SUMMARY OF THE INVENTION The present invention provides an S-box
And MDS matrices are designed according to different design principles, so when viewed at a certain evaluation value, the MDS matrix cancels out the effect, despite the fact that it is designed to enhance security. There was a problem that such a design would result.

【0024】本発明は、このような問題点に鑑みてなさ
れたものであり、暗号化装置または復号装置に適用する
際に換字処理および拡散処理をできるパラメータ決定装
置、パラメータ決定方法、暗号化装置、および復号装置
を提供することを目的とする。
The present invention has been made in view of the above problems, and has a parameter determining device, a parameter determining method, and an encrypting device capable of performing a substitution process and a spreading process when applied to an encryption device or a decryption device. , And a decoding device.

【課題を解決するための手段】上記目的を達成するため
に、本発明の請求項1のパラメータ決定装置は、第1パ
ラメータにより平文の各文字を別の文字にそれぞれ変換
する換字処理と、第2パラメータにより平文の各文字間
を置換する拡散処理とを行う装置の、該拡散処理の前記
第2パラメータを決定するためのパラメータ決定装置で
あって、該換字処理に用いられる決定済みの第1パラメ
ータを入力する入力手段と、該拡散処理に用いられる第
2パラメータ候補を逐次生成する第2パラメータ候補生成
手段と、該入力手段によって入力された第1パラメータ
と、該第2パラメータ候補生成手段によって逐次生成さ
れる各第2パラメータ候補とに基づいて、所定の方法に
よって評価値を逐次計算する計算手段と、前記計算手段
によって逐次計算され、得られた評価値から最適な評価
値を決定し、この決定した評価値に対応する第2パラメ
ータ候補を前記装置の第2パラメータと決定する最適パ
ラメータ決定手段とを備えた。
In order to achieve the above object, a parameter determining apparatus according to a first aspect of the present invention includes a character conversion process for converting each character of a plaintext into another character using a first parameter; A parameter determining device for determining the second parameter of the diffusion process, wherein the first parameter is used for the substitution process. Input means for inputting a parameter, and a second
A second parameter candidate generating means for sequentially generating two parameter candidates; a first parameter input by the input means; and a second parameter candidate sequentially generated by the second parameter candidate generating means, Calculating means for sequentially calculating an evaluation value by the method described above, and an optimum evaluation value is determined from the obtained evaluation values sequentially calculated by the calculating means, and a second parameter candidate corresponding to the determined evaluation value is determined by the apparatus. And an optimal parameter determining means for determining the second parameter.

【0025】また、本発明の請求項2のパラメータ決定
装置は、第1パラメータにより平文の各文字を別の文字
にそれぞれ変換する換字処理と、第2パラメータにより
平文の各文字間を置換する拡散処理とを行う装置の、該
換字処理の前記第1パラメータを決定するためのパラメ
ータ決定装置であって、該換字処理に用いられる第1パ
ラメータ候補を逐次生成する第1パラメータ候補生成手
段と、該拡散処理に用いられる決定済みの第2パラメー
タを入力する入力手段と、該第1パラメータ候補生成手
段によって逐次生成される各第1パラメータ候補と、該
入力手段によって入力された第2パラメータとに基づい
て、所定の方法によって評価値を逐次計算する計算手段
と、前記計算手段によって逐次計算され、得られた評価
値から最適な評価値を決定し、この決定した評価値に対
応する第1パラメータ候補を前記装置の第1パラメータと
決定する最適パラメータ決定手段とを備えた。
The parameter determining apparatus according to the second aspect of the present invention is a character conversion process for converting each character of a plaintext into another character by a first parameter, and a diffusion process for replacing a space between each character of a plaintext by a second parameter. A parameter determining device for determining the first parameter of the substitution processing, the first parameter candidate generating means for sequentially generating a first parameter candidate used for the substitution processing, Input means for inputting the determined second parameter used for the diffusion processing, based on each first parameter candidate sequentially generated by the first parameter candidate generation means, and the second parameter input by the input means Calculating means for sequentially calculating an evaluation value by a predetermined method; and determining an optimum evaluation value from the obtained evaluation values sequentially calculated by the calculating means. The first parameter candidate corresponding to the evaluation value this decision and a optimum parameter determining means for determining the first parameter of the device.

【0026】また、本発明の請求項3のパラメータ決定
装置は、第1パラメータにより平文の各文字を別の文字
にそれぞれ変換する換字処理と、第2パラメータにより
平文の各文字間を置換する拡散処理とを行う装置の、該
換字処理の前記第1パラメータを決定するためのパラメ
ータ決定装置であって、該換字処理に用いられる第1パ
ラメータ候補を逐次生成する第1パラメータ候補生成手
段と、該拡散処理に用いられる第2パラメータ候補を逐
次生成する第2パラメータ候補生成手段と、該第1パラメ
ータ候補生成手段によって逐次生成される第1パラメー
タ候補と、該第2パラメータ候補生成手段によって該拡
散処理部行列候補生成手段によって逐次生成される第2
パラメータ候補とに基づいて、所定の方法によって評価
値を逐次計算する計算手段と、前記計算手段によって逐
次計算され、得られた評価値から最適な評価値を決定
し、この決定した評価値に対応する第1パラメータ候補
および第2パラメータ候補をそれぞれ前記装置の第1パラ
メータおよび第2パラメータと決定する最適パラメータ
決定手段とを備えた。また、本発明の請求項4のパラメ
ータ決定装置は、行列により平文の各文字間を置換する
拡散処理を行う装置の、該拡散処理の前記行列を決定す
るために前記行列に最適な共通因子を決定するパラメー
タ決定装置であって、該拡散処理に用いられる決定済み
の行列を入力する入力手段と、該拡散処理の行列に対
し、括り出し可能な共通因子の候補を生成する共通因子
候補生成手段と、該共通因子候補生成手段によって逐次
生成される共通因子候補によって該拡散処理の行列を括
り出した後の行列に基づいて、所定の方法によって評価
値を逐次計算する計算手段と、該計算手段によって計算
された評価値から最適な評価値を決定し、この決定した
評価値に対応する共通因子候補を共通因子とする最適共
通因子決定手段とを備えた。
According to a third aspect of the present invention, there is provided a parameter determining apparatus for performing a substitution process for converting each character of a plaintext into another character by using a first parameter, and a diffusion process for replacing each character of a plaintext by using a second parameter. A parameter determining device for determining the first parameter of the substitution processing, the first parameter candidate generating means for sequentially generating a first parameter candidate used for the substitution processing, A second parameter candidate generating means for sequentially generating a second parameter candidate used for the diffusion processing; a first parameter candidate sequentially generated by the first parameter candidate generating means; The second sequentially generated by the submatrix candidate generating means
Calculating means for sequentially calculating the evaluation value by a predetermined method based on the parameter candidates; and calculating the optimum evaluation value from the obtained evaluation values sequentially calculated by the calculation means, and corresponding to the determined evaluation value. Optimum parameter determining means for determining a first parameter candidate and a second parameter candidate to be performed as a first parameter and a second parameter of the device, respectively. The parameter determination device according to claim 4 of the present invention is a device for performing a diffusion process of replacing each character of a plaintext with a matrix, wherein an optimal common factor for the matrix is determined in order to determine the matrix of the diffusion process. An input means for inputting a determined matrix used for the diffusion processing, and a common factor candidate generating means for generating a common factor candidate that can be squeezed out of the matrix of the diffusion processing. Calculating means for sequentially calculating an evaluation value by a predetermined method based on a matrix after extracting the matrix of the diffusion processing by common factor candidates sequentially generated by the common factor candidate generating means; and And an optimal common factor determining unit that determines an optimal evaluation value from the evaluation values calculated by the above and sets a common factor candidate corresponding to the determined evaluation value as a common factor.

【0027】本発明の請求項5のパラメータ決定方法
は、第1パラメータにより平文の各文字を別の文字にそ
れぞれ変換する換字処理と、第2パラメータにより平文
の各文字間を置換する拡散処理とを行う装置の、パラメ
ータ決定方法であって、該換字処理と該拡散処理との組
み合わせによって定まる所定の方法にて計算された評価
値が最適にするように第1パラメータあるいは第2パラメ
ータあるいはそれら両方のパラメータを決定するように
した。
According to a fifth aspect of the present invention, there is provided a parameter determining method comprising: a substitution process for converting each character of a plaintext into another character by a first parameter; and a diffusion process for replacing each character of the plaintext by a second parameter. A parameter determining method of a device for performing the first parameter or the second parameter or both such that an evaluation value calculated by a predetermined method determined by a combination of the substitution processing and the diffusion processing is optimized. Parameters were determined.

【0028】また、請求項8の暗号化装置は、平文を暗
号化するために、平文の各文字を別のものに変換する複
数の換字処理部と、平文の各文字間を置換する拡散処理
部とを備える暗号化装置であって、前記拡散処理部は、
該換字処理部に用いられる決定済みの第1パラメータ
と、逐次生成される該拡散処理に用いられる第2パラメ
ータ候補とに基づいて、所定の方法によって評価値を逐
次計算して得られた評価値の中から最適な評価値を決定
し、この決定した評価値に対応する第2パラメータ候補
を平文の各文字間の置換のために用いられるようにし
た。
Further, the encryption device according to the present invention is characterized in that a plurality of substitution processing units for converting each character of the plaintext into another one for encrypting the plaintext, and a diffusion process for replacing between each character of the plaintext. And an encryption device comprising:
An evaluation value obtained by sequentially calculating an evaluation value by a predetermined method based on a determined first parameter used in the substitution processing unit and a second parameter candidate that is sequentially generated and used in the diffusion processing. The optimal evaluation value was determined from among the above, and the second parameter candidate corresponding to the determined evaluation value was used for replacement between each character in the plaintext.

【0029】また、請求項9の復号装置は、暗号文を復
号するために、暗号文の各文字を別のものに変換する複
数の換字処理部と、暗号文の各文字間を置換する拡散処
理部とを備える復号装置であって、
Further, the decryption device according to the ninth aspect of the present invention provides a plurality of substitution processing units for converting each character of the ciphertext into another character in order to decrypt the ciphertext, and a diffusion unit for replacing between each character of the ciphertext. A decoding device comprising: a processing unit;

【0030】前記拡散処理部は、該換字処理部に用いら
れる決定済みの第1パラメータと、逐次生成される該拡
散処理に用いられる第2パラメータ候補とに基づいて、
所定の方法によって評価値を逐次計算して得られた評価
値の中から最適な評価値を決定し、この決定した評価値
に対応する第2パラメータ候補を平文の各文字間の置換
のために用いられるようにした。
[0030] The diffusion processing unit is configured to determine a first parameter used in the substitution processing unit and a second parameter candidate that is sequentially generated and used in the diffusion processing.
An optimum evaluation value is determined from evaluation values obtained by sequentially calculating evaluation values by a predetermined method, and a second parameter candidate corresponding to the determined evaluation value is replaced for each character in plain text. To be used.

【0031】これにより、暗号化装置または復号装置に
適用する際に、性能の良い換字処理および拡散処理を有
する暗号化装置および復号装置が提供できるようになっ
た。
As a result, when applied to an encryption device or a decryption device, it is possible to provide an encryption device and a decryption device having high-performance substitution processing and diffusion processing.

【発明の実施の形態】(第1実施形態)DESCRIPTION OF THE PREFERRED EMBODIMENTS (First Embodiment)

【0032】以下、図面を参照しながら発明の実施の形
態を説明する。本実施形態では、与えられたS−box
に対して、最適な組合せのMDS行列を決定する装置を
示す。まず、本実施形態の基本的な構成例について説明
する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the present embodiment, the given S-box
In the following, an apparatus for determining an optimal combination of MDS matrices will be described. First, a basic configuration example of the present embodiment will be described.

【0033】図1に、本発明の一実施形態に係る、与え
られたS−boxに対して最適なMDS行列を決定する
装置の構成を示す。
FIG. 1 shows a configuration of an apparatus for determining an optimal MDS matrix for a given S-box according to an embodiment of the present invention.

【0034】図1に示されるように、本最適MDS行列
決定装置は、S−box付与手段(101)とMDS行
列候補生成手段(102)と組合せ評価値計算手段(1
03)と最適MDS行列決定手段(104)とからな
る。
As shown in FIG. 1, the optimal MDS matrix determining device includes an S-box providing means (101), an MDS matrix candidate generating means (102), and a combination evaluation value calculating means (1).
03) and the optimal MDS matrix determining means (104).

【0035】図2は、本実施形態による装置が行う処理
の流れを表している。
FIG. 2 shows a flow of processing performed by the apparatus according to the present embodiment.

【0036】まず、S−box付与手段は、本決定装置
以外の装置によって決定された、あるS−boxを指定
する情報を受け入れる(201)。
First, the S-box providing means receives information specifying a certain S-box, determined by a device other than the present determination device (201).

【0037】S−boxは、一般には、mビット入力n
ビット出力の写像である。S−boxの記述は、どのよ
うな入力値に対してどのような出力値を持つかを示す表
として記述することも可能であるし、関数として簡潔な
表現が可能であるならば、関数の形で記述することも可
能である。ここでは、いずれにせよ、S−boxを一意
に特定できる情報が与えられるものとする。
The S-box is generally an m-bit input n
This is a mapping of bit output. The description of the S-box can be described as a table showing what input values have what output values, and if a simple expression is possible as a function, the function It can also be described in the form. In this case, in any case, information capable of uniquely specifying the S-box is provided.

【0038】次に、MDS行列候補生成手段は、当該付
与されたS−boxと組み合わせるMDS行列の候補
を、逐次、生成する(202)。次に、組合せ評価値計
算手段は、当該付与されたS−boxと当該生成された
MDS行列候補の組合せの複雑度(評価値)を計算する
(203)。次に、今計算したMDS行列候補が最後の
候補であるか否かを判定する(204)。もし、まだ、
新たな候補が存在する場合には、201の処理に戻り、
新たなMDS行列の候補を生成する。こうして、逐次生
成された、複数のMDS行列候補に対して同様の処理を
繰り返し、その各々に対して組合せの複雑度を求める。
Next, the MDS matrix candidate generating means sequentially generates MDS matrix candidates to be combined with the assigned S-box (202). Next, the combination evaluation value calculation means calculates the complexity (evaluation value) of the combination of the assigned S-box and the generated MDS matrix candidate (203). Next, it is determined whether or not the currently calculated MDS matrix candidate is the last candidate (204). If still,
If there is a new candidate, the process returns to 201,
Generate a new MDS matrix candidate. In this way, the same process is repeated for a plurality of MDS matrix candidates sequentially generated, and the complexity of the combination is calculated for each of the MDS matrix candidates.

【0039】ここで、組合せの複雑度とは、S−box
とMDS行列候補の組合せに対する複雑度の意味で、S
−box単体、MDS行列単体の複雑度ではなく、その
両者の組合せを一体として評価した場合の複雑度であ
る。具体的に、評価値である複雑度の例としては、S−
boxがnビット入出力の場合、S−boxの入出力を
GF(2)の元として表現するとき、S−boxの入
力で表現したMDS行列候補の出力の項数によって定義
することができる。
Here, the complexity of the combination is S-box
In terms of complexity for the combination of
This is not the complexity of the box alone or the MDS matrix alone, but the complexity when the combination of both is evaluated as one. Specifically, as an example of the complexity as the evaluation value, S-
When the box is an n-bit input / output, when the input / output of the S-box is expressed as an element of GF (2 n ), it can be defined by the number of terms of the output of the MDS matrix candidate expressed by the input of the S-box. .

【0040】別の複雑度の例としては、GF(2)の
元としてではなく、ビット毎に晴らしてみた場合、S−
boxの入力ビットによる論理式でMDS行列候補の出
力ビットを表現した場合の項数をとる場合もある。20
4において、新たな候補が存在しない場合には、最後
に、最適MDS行列決定手段は、こうして求めた、当該
付与S−boxと当該生成された複数のMDS行列候補
の各々の組合せの複雑度を元に、最適な組合せの複雑度
を持つ組合せを決定し、そのMDS行列候補を最適なM
DS行列として決定する(205)。この場合、評価値
が複雑度である場合には、その値として項数が最大のも
のを選択する。
As another example of the complexity, when clearing bit by bit rather than as a source of GF (2 n ), S−
In some cases, the number of terms in the case where the output bits of the MDS matrix candidate are expressed by a logical expression using the input bits of the box is used. 20
In No. 4, if there is no new candidate, finally, the optimal MDS matrix determining means determines the complexity of each combination of the assigned S-box and the generated plurality of MDS matrix candidates thus determined. The combination having the optimal combination complexity is determined based on the MDS matrix candidate, and
It is determined as a DS matrix (205). In this case, if the evaluation value is the complexity, the value having the largest number of terms is selected as the value.

【0041】ここでは、評価値として項数を例に挙げた
が、それ以外の評価値を用いても同様の処理によって最
適なMDS行列を決定する装置を実現することは容易で
ある。
Here, the number of terms is taken as an example of the evaluation value, but it is easy to realize an apparatus that determines an optimal MDS matrix by the same processing using other evaluation values.

【0042】図3は、より詳細に本実施形態の処理の流
れを表す図である。まず、S−boxの入力が行われる
(301)。この入力されたS−boxにおける出力を
入力で表した多項式を求める(302)。次に、MDS
行列の行列要素候補として取りうる値を生成する(30
3)。MDS行列の行列要素候補とは、MDS行列がG
F(2)上の行列であれば、GF(2)の元を順々
に生成すればよい。0は、GF(2)の元であるが、
これを行列要素とすると行列はMDS行列にはなり得な
いので、0を最初から除外して生成してもよい。
FIG. 3 is a diagram showing the processing flow of the present embodiment in more detail. First, an S-box is input (301). A polynomial expressing the input output in the S-box by the input is obtained (302). Next, MDS
A value that can be taken as a matrix element candidate of a matrix is generated (30
3). The matrix element candidates of the MDS matrix are as follows.
In the case of a matrix on F (2 n ), elements of GF (2 n ) may be generated in order. 0 is an element of GF (2 n ),
If this is assumed to be a matrix element, the matrix cannot be an MDS matrix, so 0 may be excluded from the beginning and generated.

【0043】次に、S−boxの出力に、この行列要素
候補を乗算した結果について、S−boxの出力を入力
で表した多項式を求める(304)。この多項式に基づ
き、S−boxとこの行列要素候補の組合せに対する複
雑度を計算する(305)。
Next, a polynomial is obtained from the result of multiplying the output of the S-box by this matrix element candidate by expressing the output of the S-box by the input (304). Based on the polynomial, the complexity for the combination of the S-box and this matrix element candidate is calculated (305).

【0044】複雑度としては、S−boxの入力やS−
boxの出力と行列要素候補の乗算結果をGF(2
の元とみなして、S−boxの入力の多項式として表現
された乗算結果の項数を用いる。この項数による複雑度
の定義については、後で、図4および図5によって詳細
に説明する。もちろん、項数による複雑度の定義は、複
雑度の一例であって、様々な理論的根拠や経験的ヒュー
リスティックスによって別の複雑度の定義を用いても良
い。例えば、多項式の次数にもとづいて複雑度を定義し
ても良い。また、別の、複雑度の例としては、有限体の
元としてではなく、ビット単位で、出力ビットを入力ビ
ットの多項式で表現した場合の項数によって複雑度を定
義しても良い。その際、項数は、すべての次数の項数を
同じ重みで数えてもよいし、多項式に含まれる項の次数
に応じて重み付きで数えても良い。さらには、最適化が
どのような攻撃法に対する安全性を達成することを目的
としているかによっては、複雑度以外の評価値を定義し
ても良い。
As the complexity, input of S-box or S-box
GF (2 n )
And the number of terms of the multiplication result expressed as a polynomial of the input of the S-box is used. The definition of the complexity based on the number of terms will be described later in detail with reference to FIGS. Of course, the definition of the complexity by the number of terms is an example of the complexity, and another definition of the complexity may be used based on various theoretical grounds or empirical heuristics. For example, the complexity may be defined based on the degree of a polynomial. Further, as another example of the complexity, the complexity may be defined by the number of terms when the output bits are represented by a polynomial of the input bits in units of bits, not as an element of the finite field. At this time, the number of terms may be counted with the same weight as the number of terms of all orders, or may be counted with weight according to the order of terms included in the polynomial. Furthermore, an evaluation value other than the complexity may be defined depending on what kind of attack method the optimization aims to achieve.

【0045】次に、まだ別の行列要素候補が存在するか
否かを判定する(306)。まだ、別の候補が存在する
場合には、303の処理にもどり新たな候補を生成して
同様の処理を繰り返す。別の候補が存在しない場合に
は、行列要素候補の中から必要な個数の候補を選択し、
MDS行列候補を生成する(308)。
Next, it is determined whether another matrix element candidate still exists (306). If another candidate still exists, the process returns to step 303 to generate a new candidate and repeat the same process. If another candidate does not exist, select the required number of candidates from the matrix element candidates,
An MDS matrix candidate is generated (308).

【0046】この際、全ての行列要素候補の組合せによ
ってMDS行列候補を生成すると、非常に多くの組合せ
の数があるため、すべてのMDS行列候補に対する複雑
度の計算を行うことが非現実的となることがある。その
場合には、305で計算した複雑度に従って、複雑度の
大きないつくかの行列要素候補の集合の中から選ばれた
行列要素候補によってMDS行列候補を生成すること
で、効率良く複雑度の大きなMDS行列を探索すること
も可能である(307)。この場合、MDS行列候補の
生成は、この絞り込まれた行列要素候補の中から行列要
素を選択することによって生成される(308)。
At this time, if MDS matrix candidates are generated by combinations of all matrix element candidates, it is impractical to calculate the complexity for all MDS matrix candidates because there are a very large number of combinations. May be. In that case, according to the complexity calculated in 305, MDS matrix candidates are generated by matrix element candidates selected from a set of matrix element candidates having relatively low complexity, thereby efficiently increasing the complexity. It is also possible to search the MDS matrix (307). In this case, an MDS matrix candidate is generated by selecting a matrix element from the narrowed-down matrix element candidates (308).

【0047】次に、こうして生成されたMDS行列候補
が、実際に、MDS行列となっているか否かを判定する
(309)。この判定は、MDS行列候補に対して、そ
のすべての小行列式が非零であることを確認することに
よって行われる。行列候補がMDS行列とならない場合
には、308の処理にもどり、次の行列候補を生成して
同様の処理を繰り返す。行列候補がMDS行列となって
いる場合は、行列の複雑度の計算を行う(310)。
Next, it is determined whether or not the MDS matrix candidate thus generated is actually an MDS matrix (309). This determination is made for the MDS matrix candidate by confirming that all the minor determinants are non-zero. If the matrix candidate does not become an MDS matrix, the process returns to step 308 to generate the next matrix candidate and repeat the same process. If the matrix candidate is an MDS matrix, the complexity of the matrix is calculated (310).

【0048】行列の複雑度は、306において求めたS
−boxと行列要素候補の組合せに対する複雑度を元
に、MDS行列候補に属する行列要素候補の各々に対す
る複雑度を足し合わせたものとして定義する。
The complexity of the matrix is calculated by
Based on the complexity for the combination of the box and the matrix element candidate, the complexity is defined as the sum of the complexity for each of the matrix element candidates belonging to the MDS matrix candidate.

【0049】次に、逆行列を求める(311)。そし
て、逆行列に対しても310と同様にS−boxと行列
の組合せの複雑度を求める(312)。
Next, an inverse matrix is obtained (311). Then, for the inverse matrix, the complexity of the combination of the S-box and the matrix is obtained in the same manner as in 310 (312).

【0050】この場合、想定している暗号化処理や復号
処理によっては、逆行列との組合せに用いるS−box
は、もとのS−boxの逆となるようにする変形例も可
能である。
In this case, the S-box used in combination with the inverse matrix may be used depending on the assumed encryption processing and decryption processing.
Is also possible to have a modified example in which the reverse of the original S-box is achieved.

【0051】こうして求めた、MDS行列候補の複雑度
とその逆行列の複雑度から、ともに、その複雑度が大き
な候補を選択することで、最適なS−boxとMDS行
列の組合せを決定する(313)。
From the complexity of the MDS matrix candidate and the complexity of its inverse matrix obtained in this way, by selecting a candidate having a large complexity, an optimal combination of the S-box and the MDS matrix is determined ( 313).

【0052】上の例では、S−boxと逆行列の組合せ
に関する複雑度まで評価したが、これを省略する変形例
も可能である。その場合、311と312の処理は省略
でき、313では、S−boxとMDS行列の組合せの
複雑度のみから最適な組合せを決定する。
In the above example, the complexity related to the combination of the S-box and the inverse matrix has been evaluated, but a modification in which this is omitted is also possible. In that case, the processing of 311 and 312 can be omitted, and in 313, the optimal combination is determined only from the complexity of the combination of the S-box and the MDS matrix.

【0053】図4は、S−boxと行列要素候補の組合
せにおいて、出力を入力の多項式で表したときの複雑度
を説明する図である。S−boxの入出力が8ビットの
場合の例である。401のS−boxへの入力ビットを
i0、i1、…、i7で表す。402の行列要素候補を
S−boxの出力に乗算した結果の出力ビットをo0、
o1、…、o7と表す。入力と出力を有限体GF
(2)上の元と見なし、ベクトル表現によって、それ
ぞれ、i=i+i+i+i
+i+iz+i、o=o+o
+o+o +o+o+o
z+o、と表現する。ここで、zは原始多項式x
+x+x+x+1=0の根であるとする。評価値で
ある複雑度は、例えば、oをiの多項式として表現した
場合における多項式の項数として定義される。別の定義
としては、oをiの有理式として表現した場合における
分子の多項式の項数と分母の多項式の項数の和として定
義することも可能である。これらの複雑度は、補間攻撃
に対する耐性の目安となることが知られている。
FIG. 4 shows a combination of S-box and matrix element candidates.
The complexity when the output is represented by the input polynomial
FIG. 8-bit input / output of S-box
This is an example of the case. The input bits to the S-box of 401
.., i7. 402 matrix element candidates
The output bit of the result of multiplying the output of the S-box is represented by o0,
.., o7. Input and output finite field GF
(28) And consider it as an element on
I = i7z7+ I6z6+ I5z5+ I4z4+
i3z3+ I2z2+ I1z + i0, O = o7z7+ O
6z6+ O5z5+ O 4z4+ O3z3+ O2z2+ O
1z + o0, And express. Here, z is a primitive polynomial x8
+ X6+ X5Assume that it is the root of + x + 1 = 0. With evaluation value
A certain complexity, for example, expressed o as a polynomial in i
Is defined as the number of terms in the polynomial in the case. Another definition
In the case where o is expressed as a rational expression of i
Defined as the sum of the number of terms in the numerator polynomial and the number of terms in the denominator polynomial
It is also possible to justify. These complexity factors are
It is known to be a measure of resistance to

【0054】また、複雑度の別の定義としては、出力ビ
ット、o0、o1、…、o7、をビット毎に見て、それ
ぞれ、入力ビットi0、i1、…、i7の論理式で表現
した場合の項数をすべての出力ビットに関して和をとっ
たものとして定義される。これは、この入出力間のアバ
ランシュ性の目安となると思われる。また、間接的に、
補間攻撃への耐性の目安にもあると思われる。
Another definition of the complexity is that the output bits, o0, o1,..., O7, are viewed bit by bit, and are expressed by logical expressions of input bits i0, i1,. Is defined as the sum of all the output bits. This seems to be a measure of the avalanche between the input and output. Also, indirectly,
It may also be a measure of resistance to interpolation attacks.

【0055】図5は、S−boxとMDS行列の組合せ
における複雑度の説明をする図である。
FIG. 5 is a diagram for explaining the complexity in the combination of the S-box and the MDS matrix.

【0056】501はS−box、502はMDS行列
で表現された拡散層を表している。例えば、GF
(2)上のMDS行列の例で説明すると、その行列要
素は、有限体GF(2)の元である。各S−boxの
出力は、この拡散層を通過することによって、MDS行
列の行列要素が乗算され、その結果を行方向に加算した
ものが拡散層の出力として現われる。この行列要素の乗
算の部分だけを見ると、ちょうど、図4で説明した、S
−boxと行列要素候補の組合せとなっていることがわ
かる。そこで、S−boxとMDS行列候補の組合せの
複雑度を、図4を用いて説明したS−boxと行列要素
候補の組合せにおける複雑度を元に、MDS行列候補の
全ての行列要素に対して、この複雑度の求め、その結果
を足し合わせたものとして定義する。この定義を用いる
と、S−boxと行列要素候補の組合せの複雑度が求ま
っていれば、S―boxとMDS行列候補の組合せに対
する複雑度も求めることができる。
Reference numeral 501 denotes an S-box, and 502 denotes a diffusion layer expressed by an MDS matrix. For example, GF
Explaining the example of the MDS matrix on (2 8 ), the matrix element is an element of the finite field GF (2 8 ). The output of each S-box is multiplied by the matrix element of the MDS matrix by passing through this diffusion layer, and the result of addition in the row direction appears as the output of the diffusion layer. Looking at only the multiplication part of this matrix element, just as shown in FIG.
It can be seen that the combination of -box and matrix element candidate is obtained. Therefore, the complexity of the combination of the S-box and the MDS matrix candidate is calculated for all the matrix elements of the MDS matrix candidate based on the complexity of the combination of the S-box and the matrix element candidate described with reference to FIG. , This complexity is determined, and the result is defined as a sum. Using this definition, if the complexity of the combination of the S-box and the matrix element candidate is determined, the complexity for the combination of the S-box and the MDS matrix candidate can also be determined.

【0057】S−boxとMDS行列の組合せの複雑度
に関するこの定義も、理論的根拠や経験的ヒューリステ
ィックスによって異なる複雑度の定義を用いても良い。
さらに、想定する攻撃法によっては、別の評価値の定義
を用いて良い。
This definition of the complexity of the combination of the S-box and the MDS matrix may use a different definition depending on the rationale or empirical heuristics.
Further, another definition of the evaluation value may be used depending on the assumed attack method.

【0058】ここで述べた複雑度の定義は例であって、
これら以外にも、想定する攻撃法に応じて、理論的根拠
と経験的ヒューリスティックスに基づいた多様な複雑度
や評価値を定義して用いる場合にも、本発明を適用でき
る。例えば、コストや速度や他の攻撃に対する安全性の
目安となる量を採用したとしても、換字層(S−bo
x)と拡散層(MDS行列)の組合せでもって、その評
価値を最適化することによって、拡散層のパラメータを
最適となるよう決定するという変形例も可能である。
The definition of complexity described here is an example,
In addition to the above, the present invention can be applied to a case where various complexity and evaluation values based on theoretical grounds and empirical heuristics are defined and used according to an assumed attack method. For example, even if an amount that is a measure of security against cost, speed, and other attacks is adopted, the substitution layer (S-bo
A modification example in which the parameters of the diffusion layer are determined to be optimal by optimizing the evaluation value using a combination of x) and the diffusion layer (MDS matrix) is also possible.

【0059】図6は、以上に説明した装置によって、あ
るいは、別の方法や装置によって決定されたMDS行列
による拡散層を極力小さな実装コストで実現したり、高
速に動作するようにするために、MDS行列の一部を括
りだす装置の構成を示している。図7は、この装置の処
理の流れを表している。
FIG. 6 is a diagram showing a method for realizing a diffusion layer based on the MDS matrix determined by the above-described apparatus or another method or apparatus at a minimum mounting cost or operating at high speed. 2 shows a configuration of a device for extracting a part of an MDS matrix. FIG. 7 shows a processing flow of this apparatus.

【0060】ここで、括りだしとは、MDS行列の同一
行や同一列の属する行列要素から共通の因子を取り出す
処理のことである。例えば、GF(2)上の4行4列
MDS行列の第i列の行列要素が、a1i、a2i、a
3i、a4iであるとすると、これから共通因子a(こ
こで、aはGF(2)の非零元とする。)を括りだす
とは、これらの行列要素に対して共通因子aによる除算
を行い、b1i、b2i、b3i、b4iとすることで
ある。ここで、b1i=a1i/a、b2i=a2i/
a、b3i=a3i/a、b4i=a4i/aである。
このようにある列から共通因子を括り出すと行列が元の
行列とは変ってしまうが、この共通因子aをMDS行列
の直前に置かれたS−boxに対して繰り込むことで、
S−boxと行列全体としてみると、括りだし前と後は
同じ処理となっている。
Here, the summarization is a process of extracting a common factor from matrix elements belonging to the same row or the same column of the MDS matrix. For example, the matrix elements in the i-th column of the 4-row, 4-column MDS matrix on GF (2 8 ) are a1i, a2i, a
3i and a4i, the common factor a (where a is a non-zero element of GF (2 8 )) is to be defined from this by dividing the matrix elements by the common factor a. And b1i, b2i, b3i, b4i. Here, b1i = a1i / a, b2i = a2i /
a, b3i = a3i / a and b4i = a4i / a.
When the common factor is extracted from a certain column in this way, the matrix changes from the original matrix. However, by renormalizing this common factor a to the S-box placed immediately before the MDS matrix,
When looking at the S-box and the entire matrix, the same processing is performed before and after squeezing.

【0061】ここで、因子aをS−boxに繰り込むと
は、もともとのS−boxが入力xを出力y=f(x)
に変換する写像であるとすると、aを繰り込んだS−b
oxは入力xを出力y’=a×f(x)に変換する写像
に変えることである。
Here, to factor the factor a into the S-box means that the original S-box outputs an input x and outputs y = f (x)
S-b that renormalizes a
ox is to transform the input x into a mapping that converts it to the output y '= a * f (x).

【0062】括りだしによって実装コストが小さくなる
理由について説明する。MDS行列のある列から括りだ
された共通因子は、その列に入力しているS−boxに
対応している。そこで、ある列から括りだされた共通因
子を、そのS−boxに繰り込むことができる。S−b
oxはテーブルルックアップによって実現されることが
多い。この場合、この共通因子の繰り込みは、テーブル
の値を変更するだけで済むので、テーブルの大きさを変
えず、実装コストには影響しない。
The reason why the mounting cost is reduced by the summarization will be described. The common factor extracted from a certain column of the MDS matrix corresponds to the S-box input to that column. Then, the common factor extracted from a certain column can be renormalized into the S-box. S-b
ox is often realized by table lookup. In this case, the renormalization of the common factor only requires changing the value of the table, so that the size of the table is not changed and the mounting cost is not affected.

【0063】一方、MDS行列は、一般に、テーブルサ
イズが大きくなるため、テーブルルックアップによって
実現されるとは限らない。ハードウェアによる実装なら
ば結線によって、ソフトウェアならば命令の組合せによ
って実現することになる。この結線のコストや命令の組
合せのコストは、共通因子括りだし後のMDS行列の行
列要素の値に依存する。例えば、GF(2)上の4行
4列のMDS行列において、行列への入力をx1、x
2、x3、x4、行列の出力をy1、y2、y3、y
4、行列要素をaijとする。yi=ai1×x1+a
i2×x2+ai3×x3+ai4×x4である。例え
ば、ai1が値として1を取るとき、ai1×x1の乗
算は、x1の各ビットの値がそのままai1×a1の各
ビットの値になるため、この乗算に相当するハードウェ
アはビット間の排他的論理和を行うための配線が不要で
ある。同様にこの乗算に相当するソフトウェア命令の組
合せもビット間の排他的論理和を行うためのビットシフ
ト命令やマスク命令は不要である。つまり、ai1が値
1をとるときの実装コストは小さい。一般のai1の値
ではai1×a1は、ビット間の排他的論理和を行う必
要があり、その必要な回数はai1の値によって異な
る。したがって、実装コストは、行列要素の値によって
ことなる。このことから、共通因子の括りだしによっ
て、実装コストの小さな行列要素からなるMDS行列へ
の変換ができると、行列全体の実装コストは小さくて済
む。
On the other hand, since the MDS matrix generally has a large table size, it is not always realized by table lookup. In the case of implementation by hardware, it is realized by connection, and in the case of software, it is realized by combination of instructions. The cost of this connection and the cost of the combination of instructions depend on the values of the matrix elements of the MDS matrix after the common factors have been factored out. For example, in an MDS matrix of 4 rows and 4 columns on GF (2 8 ), inputs to the matrix are x1, x
2, x3, x4 and the output of the matrix are represented as y1, y2, y3, y
4. Let the matrix element be aij. yi = ai1 × x1 + a
i2 × x2 + ai3 × x3 + ai4 × x4. For example, when ai1 takes 1 as a value, in the multiplication of ai1 × x1, since the value of each bit of x1 becomes the value of each bit of ai1 × a1, hardware corresponding to this multiplication is exclusive between bits. No wiring is required for performing a logical OR operation. Similarly, a combination of software instructions corresponding to the multiplication does not require a bit shift instruction or a mask instruction for performing an exclusive OR operation between bits. That is, the mounting cost when ai1 takes the value 1 is small. For a general value of ai1, ai1 × a1 needs to perform an exclusive OR operation between bits, and the required number of times depends on the value of ai1. Therefore, the implementation cost depends on the value of the matrix element. From this fact, if the conversion into the MDS matrix composed of the matrix elements having a small mounting cost can be performed by categorizing the common factors, the mounting cost of the entire matrix can be reduced.

【0064】結線やソフトウェア命令の組合せによって
実現する場合のコストに対する評価値として、ファンイ
ンを定義する。ファインインは、行列要素の乗算におい
て、乗算後の各ビットが乗算前の何個のビットの排他的
論理和で表現されているかを数え、その結果をすべての
行列要素について足し合わせたものとする。ファンイン
は、MDS行列の行列要素の値によって決まるので、共
通因子の括りだしによって、括りだし後の行列がファン
インが小さな行列となっているならば、括りだした共通
因子はS−boxに繰り込み、残された行列を実際に結
線やソフトウェア命令の組合せによって実現することで
実装コストを小さくすることができる。
A fan-in is defined as an evaluation value for the cost in the case of realizing by a combination of connection and software instructions. Fine-in counts how many bits before multiplication are represented by exclusive OR of each bit after multiplication in matrix element multiplication, and sums the results for all matrix elements. . Since the fan-in is determined by the values of the matrix elements of the MDS matrix, if the matrix after squeezing has a small fan-in matrix by squeezing the common factor, the squeezed common factor is the S-box. The implementation cost can be reduced by realizing the renormalized and remaining matrix by actually connecting and combining software instructions.

【0065】図6が示すように、本装置は、MDS行列
付与手段(601)と共通因子候補生成手段(602)
とコスト評価値計算手段(603)と最適共通因子決定
手段(604)とからなる。
As shown in FIG. 6, the present apparatus has an MDS matrix adding means (601) and a common factor candidate generating means (602).
And cost evaluation value calculation means (603) and optimum common factor determination means (604).

【0066】図7は、このような最適な共通因子を見つ
け出す装置の処理の流れを表している。まず、MDS行
列付与手段によって、MDS行列が入力される(70
1)。次に、共通因子生成手段によって、括りだすべき
共通因子の候補が生成される(702)。コスト評価値
計算手段によって、この共通因子を括りだした後のMD
S行列が計算される(703)。得られたMDS行列の
コスト評価値が計算される(704)。コスト評価値と
しては、例えば、先に述べたファンインがある。実装の
方法によっては、別のコスト評価値を用いても良い。次
に、括りだし後のMDS行列の逆行列を求める(70
5)。逆行列のコスト評価値を求める(706)。次
に、まだ、別の共通因子の候補があるか判定する(70
7)。別の共通因子の候補がある場合には、702に戻
り、新たな候補を生成し、以下同様の処理を行う。別の
共通因子候補が無い場合には、最適共通因子決定手段
が、それまでに求めたコスト評価値をもとに、最適な共
通因子を決定する(708)。
FIG. 7 shows a processing flow of the apparatus for finding such an optimum common factor. First, an MDS matrix is input by the MDS matrix providing means (70).
1). Next, a common factor candidate to be squeezed is generated by the common factor generation means (702). MD after enumerating this common factor by cost evaluation value calculation means
An S matrix is calculated (703). A cost evaluation value of the obtained MDS matrix is calculated (704). The cost evaluation value includes, for example, the fan-in described above. Depending on the mounting method, another cost evaluation value may be used. Next, an inverse matrix of the MDS matrix after the summarization is obtained (70
5). A cost evaluation value of the inverse matrix is obtained (706). Next, it is determined whether there is another common factor candidate (70).
7). If there is another common factor candidate, the process returns to 702 to generate a new candidate, and the same process is performed. If there is no other common factor candidate, the optimal common factor determining means determines an optimal common factor based on the cost evaluation values obtained so far (708).

【0067】図7の例では、共通因子をMDS行列で括
りだし、その括りだしの結果から逆行列のコスト評価値
を計算したが、MDS行列と逆行列でそれぞれ独立に共
通因子のくくりだしを行うような変形も可能である。こ
れは、暗号化の際のS−boxと復号の際のS−box
には、それぞれ、独立の共通因子を繰り込むことが可能
であるからである。
In the example of FIG. 7, the common factors are grouped by the MDS matrix, and the cost evaluation value of the inverse matrix is calculated from the result of the grouping. However, the common factor is independently extracted by the MDS matrix and the inverse matrix. Modifications to be made are also possible. This is the S-box for encryption and the S-box for decryption.
In this case, independent common factors can be renormalized.

【0068】また、共通因子は、MDS行列のすべての
行列要素に共通の因子でも良いし、列毎あるいは行毎に
異なる共通因子としても良い。
The common factor may be a factor common to all matrix elements of the MDS matrix, or a different common factor for each column or each row.

【0069】これまでは、MDS行列として最適なもの
を決定する装置の例を説明したが、図8は、MDS行列
が与えられた場合に、それと最適な組合せのS−box
を決定する装置の構成を表している。図9は、その装置
の処理の流れを表している。図10は、より詳細にその
装置の処理の流れを説明している。
An example of an apparatus for deciding an optimum MDS matrix has been described above. FIG. 8 shows an S-box of an optimal combination with an MDS matrix when given.
Is shown. FIG. 9 shows a processing flow of the apparatus. FIG. 10 illustrates the processing flow of the apparatus in more detail.

【0070】本装置は、MDS行列付与手段(801)
とS−box候補生成手段(802)と組合せ評価値計
算手段(803)と最適S−box決定手段(804)
とからなる。
This apparatus is an MDS matrix providing means (801)
And S-box candidate generating means (802), combination evaluation value calculating means (803), and optimal S-box determining means (804)
Consists of

【0071】まず、MDS行列付与手段は、本決定装置
以外の装置によって決定された、あるMDS行列を指定
する情報を受け入れる(901)。次に、S−box候
補生成手段は、当該付与されたMDS行列と組み合わせ
るS−box候補を、逐次、生成する(902)。次
に、組合せ評価値計算手段は、当該付与されたMDS行
列と当該生成されたS−box候補の組合せの複雑度
(評価値)を計算する(903)。次に、今計算したS
−box候補が最後の候補であるか否かを判定する(9
04)。もし、まだ、新たな候補が存在する場合には、
901の処理に戻り、新たなS−box候補を生成す
る。こうして、逐次生成された、複数のS−box候補
に対して同様の処理を繰り返し、その各々に対して組合
せの複雑度を求める。もし、904において、新たな候
補が存在しない場合には、最適S−box決定手段は、
それまでに求めたMDS行列とS−box候補の組合せ
の複雑度をもとに、最適な組合せを決定する(90
5)。
First, the MDS matrix providing means receives information specifying a certain MDS matrix determined by a device other than the present determination device (901). Next, the S-box candidate generating means sequentially generates S-box candidates to be combined with the assigned MDS matrix (902). Next, the combination evaluation value calculation means calculates the complexity (evaluation value) of the combination of the assigned MDS matrix and the generated S-box candidate (903). Next, the calculated S
Determine whether the box candidate is the last candidate (9
04). If there are still new candidates,
Returning to the process of 901, a new S-box candidate is generated. The same process is repeated for a plurality of S-box candidates that are sequentially generated in this way, and the complexity of the combination is determined for each of the S-box candidates. If there is no new candidate in 904, the optimal S-box determination means
The optimal combination is determined based on the complexity of the combination of the MDS matrix and the S-box candidate obtained so far (90
5).

【0072】より詳細に処理を説明する。まず、MDS
行列付与手段によって、MDS行列の入力が行われる
(1001)。MDS行列は各行列要素の値を与えるこ
とで一意に特定できる。
The processing will be described in more detail. First, MDS
An MDS matrix is input by the matrix providing means (1001). The MDS matrix can be uniquely specified by giving the value of each matrix element.

【0073】次に、S−box候補生成手段によって、
S−boxの候補の生成を行う(1002)。
Next, by the S-box candidate generating means,
An S-box candidate is generated (1002).

【0074】ここで、S−box候補の生成方法の例と
しては、S−boxが入力値に対する出力値を表す表と
して記述できることより、相異なる値を持つ表を順次生
成する方法がある。一般に、入出力のビット数が大きく
なると、この方法で生成されるS−boxの総数は非常
に多くなるため、すべての可能性を生成することは非現
実的となる。そこで、別の生成方法の例としては、生成
されるS−boxとして何らかの制約を課したものに限
る方法がある。例えば、入力と出力をGF(2 )の元
とみなしたとき、S−boxを入力xのベキ乗関数xk
や異なるべきを持つべき乗関数の和Σck×xとして
表現できるものに限定して生成する方法も可能である。
さらに、もう少し生成される個数を増やすならば、べき
乗関数の和の前や後にビットの入れ替えを行ったものに
制限して生成する方法も可能である。他には、アフィン
変換などを組み合わせてもよい。
Here, an example of a method of generating an S-box candidate and
Then, a table in which the S-box represents the output value with respect to the input value is
Tables with different values can be created sequentially.
There is a way to do this. Generally, the number of input / output bits is large.
Then, the total number of S-boxes generated by this method is very
Generating all possibilities is obsolete
Be practical. So, as an example of another generation method,
S-boxes with some restrictions imposed
There is a method. For example, if the input and output are GF (2 n)
, The S-box is a power function xk of the input x
Or the sum of power functions with different powers Σck × xkAs
It is also possible to use a method that generates only those that can be expressed.
In addition, if you want to increase the number generated a little more,
Bit swapped before and after the sum of the multiplicative functions
It is also possible to use a method of generating with restriction. Other, affine
Conversion and the like may be combined.

【0075】次に、組合せ評価値計算手段は、生成され
たS−box候補における出力を入力で表した多項式を
求める(1003)。次に、S−box候補とMDS行
列の行列要素を乗算した結果について、S−box候補
の入力による多項式を計算する(1004)。この多項
式に基づき、S−box候補と与えられたMDS行列の
組合せに対する複雑度を計算する(1005)。次に、
MDS行列の逆行列を求める(1006)。
Next, the combination evaluation value calculation means obtains a polynomial in which the output of the generated S-box candidate is represented by an input (1003). Next, with respect to the result of multiplying the S-box candidate by the matrix element of the MDS matrix, a polynomial based on the input of the S-box candidate is calculated (1004). Based on this polynomial, the complexity for the combination of the S-box candidate and the given MDS matrix is calculated (1005). next,
An inverse matrix of the MDS matrix is obtained (1006).

【0076】1006について、MDS行列が与えられ
た1001において、一度、逆行列を計算しておいて、
あとで、その結果を繰り返し用いるような変形も可能で
ある。
For 1006, the inverse matrix is calculated once in 1001 given the MDS matrix,
Later, a modification in which the result is repeatedly used is also possible.

【0077】次に、S−box候補とこの逆行列に対し
て、多項式の計算を行う(1007)。次に、S―bo
x候補と逆行列の組合せの複雑度を計算する(100
8)。次に、まだ別のS−box候補が存在するか否か
を判定する(1009)。まだ、別の候補が存在する場
合には、1002の処理にもどり新たな候補を生成して
同様の処理を繰り返す。別の候補が存在しない場合に
は、最適S−box決定手段は、こうして求めた、S−
box候補とMDS行列の組合せの複雑度、S―box
候補とその逆行列の組合せの複雑度から、ともに、その
複雑度が大きな候補を選択することで、最適なS−bo
xとMDS行列の組合せを決定する(1010)。
Next, a polynomial is calculated for the S-box candidate and its inverse matrix (1007). Next, S-bo
Calculate the complexity of the combination of x candidate and inverse matrix (100
8). Next, it is determined whether or not another S-box candidate still exists (1009). If another candidate still exists, the process returns to the process of 1002, a new candidate is generated, and the same process is repeated. If another candidate does not exist, the optimal S-box determining means determines the S-box
Complexity of combination of box candidate and MDS matrix, S-box
From the complexity of the combination of a candidate and its inverse matrix, by selecting a candidate having a large complexity, an optimal S-bo
The combination of x and the MDS matrix is determined (1010).

【0078】この場合において、1006から1008
の処理を省略し、1010において、MDS行列とS−
boxの組合せの複雑度のみから最適なS−boxを決
定する変形例が可能である。
In this case, 1006 to 1008
Is omitted, and at 1010, the MDS matrix and S-
A modification is possible in which an optimal S-box is determined only from the complexity of a combination of boxes.

【0079】図3では、S−boxは他の装置により決
定されたものを入力するとしたが、S−boxについて
も、複数の候補のうち最適の組合せとなるものから選択
する装置として実現する変形例も可能である。
In FIG. 3, it is assumed that an S-box determined by another device is input. However, the S-box is also modified as a device that is selected from a plurality of candidates that are the most suitable combination. Examples are possible.

【0080】図11は、図3の例に対して、S−box
まで含めて最適な組合せを選択するように変形した装置
の構成例を表す図である。図12は、その処理の流れを
表す図である。図13は、さらに詳細にその処理を説明
した図である。
FIG. 11 shows an S-box for the example of FIG.
FIG. 10 is a diagram illustrating a configuration example of a device modified so as to select an optimal combination including the above. FIG. 12 is a diagram showing the flow of the processing. FIG. 13 is a diagram illustrating the processing in more detail.

【0081】本変形例の装置は、S−box候補生成手
段(1101)とMDS候補生成手段(1102)と組
合せ評価値計算手段(1103)と最適S−boxおよ
びMDS行列決定手段(1104)とからなる。
The apparatus of this modification includes an S-box candidate generating means (1101), an MDS candidate generating means (1102), a combination evaluation value calculating means (1103), an optimal S-box and MDS matrix determining means (1104). Consists of

【0082】S−box候補生成手段は、S−boxの
候補を生成する(1201)。次に、MDS行列候補生
成手段は、当該生成されたS−box候補と組み合わせ
るMDS行列の候補を、逐次、生成する(1202)。
次に、組合せ評価値計算手段は、当該生成されたS−b
ox候補と当該生成されたMDS行列候補の組合せの複
雑度(評価値)を計算する(1203)。次に、今計算
したMDS行列候補が最後の候補であるか否かを判定す
る(1204)。もし、まだ、新たな候補が存在する場
合には、1202の処理に戻り、新たなMDS行列候補
を生成する。こうして、逐次生成された、複数のMDS
行列候補に対して同様の処理を繰り返し、その各々に対
して組合せの複雑度を求める。もし、1204において
新たなMDS行列候補が存在しないと判定した場合は、
次にS−box候補として新たな候補が存在するか判定
する。もし、また、新たな候補が存在する場合には、1
201に戻り、新たなS−box候補に対して同様の処
理を繰り返す。もし、1204において新たなS−bo
x候補が存在しないと判定した場合には、最適S−bo
xおよびMDS行列決定手段は、これまでに求めたMD
S候補とS−box候補に対する複雑度をもとに最適な
MDS行列とS−boxの組み合せを決定する(120
6)。
The S-box candidate generating means generates an S-box candidate (1201). Next, the MDS matrix candidate generation means sequentially generates MDS matrix candidates to be combined with the generated S-box candidates (1202).
Next, the combination evaluation value calculation means calculates the generated Sb
The complexity (evaluation value) of the combination of the ox candidate and the generated MDS matrix candidate is calculated (1203). Next, it is determined whether the currently calculated MDS matrix candidate is the last candidate (1204). If a new candidate still exists, the process returns to 1202 to generate a new MDS matrix candidate. Thus, a plurality of MDSs sequentially generated
The same processing is repeated for the matrix candidates, and the complexity of the combination is determined for each of them. If it is determined in 1204 that there is no new MDS matrix candidate,
Next, it is determined whether a new candidate exists as an S-box candidate. If there are new candidates, 1
Returning to 201, the same processing is repeated for a new S-box candidate. If at 1204 a new S-bo
If it is determined that there is no x candidate, the optimal S-bo
x and the MDS matrix determining means calculates the MD determined so far.
An optimal combination of the MDS matrix and the S-box is determined based on the complexity of the S candidate and the S-box candidate (120).
6).

【0083】より詳細に処理を説明する。まず、S−b
ox候補生成手段によって、S−boxの候補の生成が
行われる(1301)。組合せ評価値計算手段は、この
生成されたS−box候補における出力を入力で表した
多項式を求める(1302)。次に、MDS行列候補生
成手段は、MDS行列の行列要素の候補として取りうる
値を生成する(1303)。組合せ評価値計算手段は、
S−box候補の出力に、この行列要素の候補を乗算し
た結果について、S−box候補の入力による多項式を
計算する(1304)。この多項式に基づき、S−bo
x候補とこの行列要素の候補の組合せに対する複雑度を
計算する(1305)。複雑度としては、GF(2
の元とみなして、入力で表現した出力の多項式の項数を
用いる。もちろん、項数を求める代わりに、多項式の次
数によって複雑度を定義しても良い。また、別の、複雑
度の例としては、出力ビットを入力ビットの多項式で表
現した場合の項数で定義しても良い。その際、項数は、
すべての次数の項数を同じ重みで数えてもよいし、次数
に応じて重み付きで数えても良い。次に、まだ別の行列
要素の候補が存在するか否かを判定する(1306)。
まだ、別の候補が存在する場合には、1303の処理に
もどり新たな候補を生成して同様の処理を繰り返す。別
の候補が存在しない場合には、行列要素の候補の中から
必要な個数の候補を選択し、MDS行列の候補を生成す
る(1307)。
The processing will be described in more detail. First, S-b
An ox candidate generation unit generates an S-box candidate (1301). The combination evaluation value calculation means obtains a polynomial in which the output of the generated S-box candidate is represented by an input (1302). Next, the MDS matrix candidate generation means generates a value that can be taken as a candidate for a matrix element of the MDS matrix (1303). Combination evaluation value calculation means,
With respect to the result of multiplying the output of the S-box candidate by the matrix element candidate, a polynomial based on the input of the S-box candidate is calculated (1304). Based on this polynomial, S-bo
The complexity for the combination of the x candidate and this matrix element candidate is calculated (1305). The complexity is GF (2 n )
And the number of terms of the output polynomial expressed by the input is used. Of course, instead of finding the number of terms, the degree of complexity may be defined by the degree of the polynomial. Another example of the complexity may be defined by the number of terms when the output bits are represented by a polynomial expression of the input bits. At that time, the number of terms is
The terms of all orders may be counted with the same weight, or may be counted with weights according to the order. Next, it is determined whether or not another matrix element candidate still exists (1306).
If another candidate still exists, the process returns to step 1303 to generate a new candidate and repeat the same process. If another candidate does not exist, a required number of candidates are selected from the matrix element candidates, and MDS matrix candidates are generated (1307).

【0084】実際、この候補がMDS行列となっている
か否かを判定する(1308)。この判定は、MDS行
列の候補が、すべての小行列式が非零であることを確認
することによって行われる。行列候補がMDS行列とな
らない場合には、1307の処理にもどり、次の行列候
補を生成して同様の処理を繰り返す。行列候補がMDS
行列となっている場合は、行列の複雑度の計算を行う
(1309)。これは、1305において求めたS−b
ox候補と行列要素の候補の組合せに対する複雑度を元
に、行列候補に属する行列要素の候補に対する複雑度を
足し合わせることで計算する。次に、逆行列を求める
(1310)。
In practice, it is determined whether or not this candidate is an MDS matrix (1308). This determination is made by the candidate of the MDS matrix confirming that all the minor determinants are non-zero. If the matrix candidate does not become the MDS matrix, the process returns to 1307 to generate the next matrix candidate and repeat the same process. Matrix candidate is MDS
If it is a matrix, the complexity of the matrix is calculated (1309). This is the Sb obtained in 1305.
The calculation is performed by adding the complexity of the matrix element candidates belonging to the matrix candidate based on the complexity of the combination of the ox candidate and the matrix element candidate. Next, an inverse matrix is obtained (1310).

【0085】そして、逆行列に対しても1309と同様
に行列の複雑度を求める(1311)。次に、S−bo
x候補としてこれが最後であるか否かを判定する(13
12)。もし、まだ新たなS−box候補が存在する場
合には、1301に戻り新たなS−box候補を生成し
て、同様の処理を繰り返す。最後のS−box候補の場
合には、最適S−box及びMDS行列決定手段は、S
−box候補とMDS行列候補の組合せのうち、S−b
ox候補とMDS行列の組合せの複雑度と、S−box
と逆行列の組合せの複雑度のいずれもが大きな複雑度と
なるものを最適なS−boxとMDS行列の組合せと決
定する(1313)。 (第2実施形態)
Then, for the inverse matrix, the complexity of the matrix is obtained in the same manner as in 1309 (1311). Next, S-bo
It is determined whether this is the last x candidate (13).
12). If there is still a new S-box candidate, the process returns to 1301 to generate a new S-box candidate, and the same processing is repeated. In the case of the last S-box candidate, the optimal S-box and MDS matrix determination means
S-b among combinations of box candidates and MDS matrix candidates
ox candidate and MDS matrix combination complexity and S-box
A combination having a large complexity in any of the combinations of the matrix and the inverse matrix is determined as an optimal combination of the S-box and the MDS matrix (1313). (2nd Embodiment)

【0086】次に、図14は、以上に述べたS−box
とMDS行列の最適な組合せを与える装置によって決定
されたS−boxやMDS行列を採用する暗号化装置の
構造を表す図である。1401は、暗号化装置のデータ
攪拌を行う部分を表しており、平文を入力して暗号文を
出力する。1401は、その構造の一部として、例え
ば、複数のS−boxによって構成される換字層140
3と、例えば、MDS行列によって構成される拡散層1
404を持つ。拡散層804は換字層803に直列に接
続している。1402はデータ攪拌部のうち1403と
1404以外の残りの暗号化処理部分である。1402
の中にも1403と1404と同じ構造が含まれていて
も良い。
Next, FIG. 14 shows the S-box described above.
FIG. 10 is a diagram illustrating a structure of an encryption device that employs an S-box or an MDS matrix determined by a device that provides an optimal combination of the MDS matrix and the MDS matrix. Reference numeral 1401 denotes a portion of the encryption device that performs data agitation, and inputs a plaintext and outputs a ciphertext. 1401 is a substitution layer 140 constituted by a plurality of S-boxes as a part of the structure.
3 and a diffusion layer 1 composed of, for example, an MDS matrix.
It has 404. The diffusion layer 804 is connected to the substitution layer 803 in series. Reference numeral 1402 denotes an encryption processing portion other than 1403 and 1404 in the data agitating portion. 1402
May also include the same structure as 1403 and 1404.

【0087】ここで、換字層1403と拡散層1404
は、その一方もしくはその両方が、第1実施形態におい
て説明されたS−boxまたはMDS行列またはその両
方を決定する装置によって決定されたパラメータを持
つ。これにより、1401のデータ攪拌文は、補間攻撃
に対する安全性に優れたものであったり、アバランシュ
性の良いものであったり、第1実施形態において選択し
た評価値の定義が意図していた望ましい性質に関して最
適なS−boxとMDS行列の組合せを与えるものとな
っている。
Here, the substitution layer 1403 and the diffusion layer 1404
Has parameters determined by the device that determines one or both of the S-box and / or MDS matrices described in the first embodiment, or both. As a result, the data agitation statement 1401 has excellent security against interpolation attacks, has good avalanche properties, and has desirable properties intended by the definition of the evaluation value selected in the first embodiment. , The optimal combination of the S-box and the MDS matrix is given.

【0088】このデータ攪拌部1401の動作について
説明すると、平文が1401に入力されると、その入力
は各種の変換を受けつつ、やがて、1402から換字層
1403へと入力が渡される。換字層1403は、複数
のS−boxで構成されており、各S−boxは受け取
った入力に対して換え字を行った結果を出力する。S−
boxの出力は、次の拡散層へと入力される。拡散層1
404はMDS行列として表現され、拡散層1403か
らの入力に対して行列演算を施した結果を出力し、その
出力を残りの暗号化処理部1402に返す。残りの暗号
化処理部は、拡散層1404から受け取ったデータに対
してさらなる変換を行い、最終的には暗号文として出力
する。
The operation of the data agitation unit 1401 will be described. When a plain text is input to the 1401, the input is subjected to various conversions, and is eventually passed from the 1402 to the substitution layer 1403. The substitution layer 1403 is composed of a plurality of S-boxes, and each S-box outputs a result obtained by performing substitution on the received input. S-
The output of the box is input to the next diffusion layer. Diffusion layer 1
Reference numeral 404 denotes an MDS matrix, outputs a result of performing a matrix operation on the input from the diffusion layer 1403, and returns the output to the remaining encryption processing unit 1402. The remaining encryption processing unit performs further conversion on the data received from the diffusion layer 1404, and finally outputs the data as cipher text.

【0089】ここでは、残りの暗号化部1402は、ひ
とつの部分からなる構造として表現されているが、換字
層1403より前の部分と拡散層1404より後の部分
の2つに分離した構造をしていても良い。また、その一
方は、無くてもよい。
Here, the remaining encryption section 1402 is expressed as a structure composed of one part. However, a structure separated into two parts, a part before the substitution layer 1403 and a part after the diffusion layer 1404, is shown. May be. One of them may not be provided.

【0090】さらに、説明では換字層1403と拡散層
1404は直結していたが、両者の間に例えば、拡大鍵
加算のような別の処理が挟まっていても良い。拡大鍵加
算は、拡散層1404と順序を交換することで、線形変
換によって得られる別の値の拡大鍵を1404の後に加
算するのと同等であるからである。
Further, in the description, the substitution layer 1403 and the diffusion layer 1404 are directly connected. However, another processing such as, for example, expansion key addition may be interposed between the two. This is because the extended key addition is equivalent to adding an extended key of another value obtained by linear transformation after the 1404 by exchanging the order with the diffusion layer 1404.

【0091】なお、以上の実施形態の説明においては、
換字層の後に拡散層が続く例によって最適な組合せを決
定する方式を例にとって説明を行ったが、拡散層の後に
換字層が続く場合や、複数の換字層が続く場合、複数の
拡散層が続く場合、換字層と拡散層が任意の順で任意の
数ずつ交互に積み重なる場合、などにおいても、同様
に、組合せの評価値を求めて最適化を行う変形例も可能
である。
In the above description of the embodiment,
The method of determining the optimal combination by an example in which a diffusion layer follows a substitution layer has been described as an example.However, when a substitution layer follows a diffusion layer, or when a plurality of substitution layers follow, a plurality of diffusion layers are used. In the following case, even in the case where the substitution layer and the diffusion layer are alternately stacked by an arbitrary number in an arbitrary order, a modification example in which the optimization value is obtained by calculating the evaluation value of the combination is also possible.

【0092】本発明の各実施形態は、装置による実施形
態を述べたが、汎用のコンピュータ上で動作するソフト
ウェアプログラムとしても実現可能である。
Although the embodiments of the present invention have been described with reference to the apparatus, they can be realized as software programs operating on a general-purpose computer.

【発明の効果】【The invention's effect】

【0093】以上説明したように本発明によれば、従
来、S−boxとMDS行列を構成要素に含む暗号化装
置において、S−boxとMDS行列が、それぞれ、独
立な設計方針により最適な複雑さを実現しようとしてい
るにもかかわらず、相互に効果を相殺するで、かえって
より安全ではない暗号化装置となってしまう恐れがあっ
たが、MDS行列要素の各候補に対して、ある与えられ
たS−boxに行列要素の乗算を行った結果の複雑さを
評価し、この複雑さの評価結果に基づき、MDS行列を
構成する行列要素候補の組合せに対する複雑さの評価を
与え、また、このMDS行列に対する逆行列に対しても
同様の複雑さの評価を与え、これらの行列に対する複雑
さの評価結果に基づき、ある与えられたS−boxと組
合せにおいて、最適の複雑さを与えるMDS行列を決定
することによって、互いの効果が相殺しない最適な組合
せを決定することができるようになり、ひいては、その
ように決定されたS−boxやMDS行列を採用したよ
り安全な暗号化装置を与えることができる。
As described above, according to the present invention, conventionally, in an encryption device including an S-box and an MDS matrix as constituent elements, the S-box and the MDS matrix are each optimized by an independent design policy to optimize the complexity. Despite trying to achieve this, there was a risk that the effects would offset each other, resulting in a less secure encryption device. The complexity of the result of multiplying the S-box by the matrix element is evaluated, and based on the result of the complexity evaluation, the complexity of a combination of matrix element candidates constituting the MDS matrix is evaluated. A similar evaluation of complexity is given to the inverse matrix for the MDS matrix, and based on the result of the evaluation of the complexity for these matrices, the optimal S-box and combination give By determining the MDS matrix that gives the complexity, it becomes possible to determine the optimal combination in which the effects of each other do not cancel each other, and thus more secure using the S-box or the MDS matrix determined as such. A simple encryption device.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明における与えられたS−boxに対して
最適な組合せのMDS行列を決定する装置の構成を表す
図。
FIG. 1 is a diagram showing a configuration of an apparatus for determining an MDS matrix of an optimal combination for a given S-box in the present invention.

【図2】本発明における与えられたS−boxに対して
最適な組合せのMDS行列を決定する装置の処理を表す
図。
FIG. 2 is a diagram showing processing of an apparatus for determining an MDS matrix of an optimal combination for a given S-box according to the present invention.

【図3】本発明における与えられたS−boxに対して
最適な組合せのMDS行列を決定する装置の処理の詳細
を表す図。
FIG. 3 is a diagram showing details of processing of an apparatus for determining an MDS matrix of an optimal combination for a given S-box according to the present invention.

【図4】S−boxと行列要素候補の組合せにおける複
雑度を表す図。
FIG. 4 is a diagram showing a complexity in a combination of an S-box and a matrix element candidate.

【図5】S−boxとMDS行列の組合せにおける複雑
度を表す図。
FIG. 5 is a diagram showing a complexity in a combination of an S-box and an MDS matrix.

【図6】本発明における与えられたMDS行列に対して
最適な共通因子を決定する装置の構成を表す図。
FIG. 6 is a diagram illustrating a configuration of an apparatus for determining an optimum common factor for a given MDS matrix according to the present invention.

【図7】本発明における与えられたMDS行列に対して
最適な共通因子を決定する装置の処理を表す図。
FIG. 7 is a diagram showing processing of an apparatus for determining an optimum common factor for a given MDS matrix according to the present invention.

【図8】本発明における与えられたMDS行列に対して
最適な組合せのS−boxを決定する装置の構成を表す
図。
FIG. 8 is a diagram illustrating a configuration of an apparatus for determining an S-box of an optimal combination for a given MDS matrix according to the present invention.

【図9】本発明における与えられたMDS行列に対して
最適な組合せのS−boxを決定する装置の処理の詳細
を表す図。
FIG. 9 is a diagram showing details of processing of an apparatus for determining an S-box of an optimal combination for a given MDS matrix according to the present invention.

【図10】本発明における与えられたMDS行列に対し
て最適な組合せのS−boxを決定する装置の処理の詳
細を表す図。
FIG. 10 is a diagram showing details of processing of an apparatus for determining an S-box of an optimal combination for a given MDS matrix according to the present invention.

【図11】本発明における最適なS−boxとMDS行
列の組合せを決定する装置の構成を表す図。
FIG. 11 is a diagram illustrating a configuration of an apparatus that determines an optimal combination of an S-box and an MDS matrix according to the present invention.

【図12】本発明における最適なS−boxとMDS行
列の組合せを決定する装置の処理を表す図。
FIG. 12 is a diagram showing processing of an apparatus for determining an optimum combination of an S-box and an MDS matrix according to the present invention.

【図13】本発明における最適なS−boxとMDS行
列の組合せを決定する装置の処理の詳細を表す図。
FIG. 13 is a diagram showing details of processing of an apparatus for determining an optimum combination of an S-box and an MDS matrix according to the present invention.

【図14】本発明における最適なS−boxまたはMD
S行列またはその両方を用いた暗号化装置を表す図。
FIG. 14: Optimal S-box or MD in the present invention
FIG. 2 is a diagram illustrating an encryption device using an S matrix or both.

【符号の説明】[Explanation of symbols]

101 S−box付与手段 102 MDS行列候補生成手段 103 組合せ評価値計算手段 104 最適MDS行列決定手段 401 S−box 402 行列要素候補 501 S−box 502 MDS行列 601 MDS行列付与手段 602 共通因子候補生成手段 603 コスト評価値計算手段 604 最適共通因子決定手段 801 MDS行列付与手段 802 S−box候補生成手段 803 組合せ評価値計算手段 804 最適S−boxおよびMDS行列決定手段 1101 S−box候補生成手段 1102 MDS行列生成手段 1103 組合せ評価値計算手段 1104 最適S−boxおよびMDS行列決定手段 1401 暗号化処理部(データ攪拌部) 1402 その他の暗号化処理部 1403 S−box 1404 MDS行列 101 S-box providing means 102 MDS matrix candidate generating means 103 Combination evaluation value calculating means 104 Optimal MDS matrix determining means 401 S-box 402 Matrix element candidates 501 S-box 502 MDS matrix 601 MDS matrix providing means 602 Common factor candidate generating means 603 Cost evaluation value calculation means 604 Optimal common factor determination means 801 MDS matrix addition means 802 S-box candidate generation means 803 Combination evaluation value calculation means 804 Optimal S-box and MDS matrix determination means 1101 S-box candidate generation means 1102 MDS matrix Generating unit 1103 Combination evaluation value calculating unit 1104 Optimal S-box and MDS matrix determining unit 1401 Encryption processing unit (data stirring unit) 1402 Other encryption processing units 1403 S-box 1404 MDS matrix

───────────────────────────────────────────────────── フロントページの続き (72)発明者 大熊 建司 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 (72)発明者 川村 信一 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝研究開発センター内 Fターム(参考) 5J104 AA41 JA09 JA17 NA08 NA10 ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Kenji Okuma 1 Toshiba R & D Center, Komukai, Saiwai-ku, Kawasaki City, Kanagawa Prefecture (72) Inventor Shinichi Kawamura Komukai, Saiyuki-ku, Kawasaki City, Kanagawa Prefecture No. 1 Toshiba Town F-term in Toshiba R & D Center (reference) 5J104 AA41 JA09 JA17 NA08 NA10

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 第1パラメータにより平文の各文字を別
の文字にそれぞれ変換する換字処理と、第2パラメータ
により平文の各文字間を置換する拡散処理とを行う装置
の、該拡散処理の前記第2パラメータを決定するための
パラメータ決定装置であって、 該換字処理に用いられる決定済みの第1パラメータを入
力する入力手段と、 該拡散処理に用いられる第2パラメータ候補を逐次生成
する第2パラメータ候補生成手段と、 該入力手段によって入力された第1パラメータと、該第2
パラメータ候補生成手段によって逐次生成される各第2
パラメータ候補とに基づいて、所定の方法によって評価
値を逐次計算する計算手段と、 前記計算手段によって逐次計算され、得られた評価値か
ら最適な評価値を決定し、この決定した評価値に対応す
る第2パラメータ候補を前記装置の第2パラメータと決定
する最適パラメータ決定手段とを備えたことを特徴とす
るパラメータ決定装置。
1. An apparatus for performing a substitution process for converting each character of a plaintext into another character by a first parameter and a diffusion process for replacing each character of the plaintext with a second parameter. A parameter determining device for determining a second parameter, comprising: input means for inputting a determined first parameter used in the substitution process; and a second parameter generation unit for sequentially generating a second parameter candidate used in the diffusion process. Parameter candidate generating means; a first parameter input by the input means;
Each second sequentially generated by the parameter candidate generation means
Calculating means for sequentially calculating the evaluation value by a predetermined method based on the parameter candidates; and determining the optimum evaluation value from the obtained evaluation values sequentially calculated by the calculating means, and corresponding to the determined evaluation value. A parameter determining device for determining a second parameter candidate to be performed as a second parameter of the device.
【請求項2】 第1パラメータにより平文の各文字を別
の文字にそれぞれ変換する換字処理と、第2パラメータ
により平文の各文字間を置換する拡散処理とを行う装置
の、該換字処理の前記第1パラメータを決定するための
パラメータ決定装置であって、 該換字処理に用いられる第1パラメータ候補を逐次生成
する第1パラメータ候補生成手段と、 該拡散処理に用いられる決定済みの第2パラメータを入
力する入力手段と、 該第1パラメータ候補生成手段によって逐次生成される
各第1パラメータ候補と、該入力手段によって入力され
た第2パラメータとに基づいて、所定の方法によって評
価値を逐次計算する計算手段と、 前記計算手段によって逐次計算され、得られた評価値か
ら最適な評価値を決定し、この決定した評価値に対応す
る第1パラメータ候補を前記装置の第1パラメータと決定
する最適パラメータ決定手段とを備えたことを特徴とす
るパラメータ決定装置。
2. The apparatus according to claim 1, further comprising a substitution process for converting each character of the plaintext into another character using a first parameter, and a diffusion process for replacing each character of the plaintext with a second parameter. A parameter determining device for determining a first parameter, a first parameter candidate generating means for sequentially generating a first parameter candidate used for the substitution process, and a determined second parameter used for the diffusion process. Based on input means for inputting, each first parameter candidate sequentially generated by the first parameter candidate generating means, and the second parameter input by the input means, sequentially calculating an evaluation value by a predetermined method Calculating means, which is sequentially calculated by the calculating means, determines an optimum evaluation value from the obtained evaluation value, and a first parameter corresponding to the determined evaluation value. That complement and a optimum parameter determining means for determining the first parameter of the device parameter determining apparatus according to claim.
【請求項3】 第1パラメータにより平文の各文字を別
の文字にそれぞれ変換する換字処理と、第2パラメータ
により平文の各文字間を置換する拡散処理とを行う装置
の、該換字処理の前記第1パラメータを決定するための
パラメータ決定装置であって、 該換字処理に用いられる第1パラメータ候補を逐次生成
する第1パラメータ候補生成手段と、 該拡散処理に用いられる第2パラメータ候補を逐次生成
する第2パラメータ候補生成手段と、 該第1パラメータ候補生成手段によって逐次生成される
第1パラメータ候補と、 該第2パラメータ候補生成手段によって該拡散処理部行
列候補生成手段によって逐次生成される第2パラメータ
候補とに基づいて、所定の方法によって評価値を逐次計
算する計算手段と、 前記計算手段によって逐次計算され、得られた評価値か
ら最適な評価値を決定し、この決定した評価値に対応す
る第1パラメータ候補および第2パラメータ候補をそれぞ
れ前記装置の第1パラメータおよび第2パラメータと決定
する最適パラメータ決定手段とを備えたことを特徴とす
るパラメータ決定装置。
3. An apparatus for performing a substitution process for converting each character of a plaintext into another character by using a first parameter and a diffusion process for replacing each character of a plaintext by using a second parameter. A parameter determining device for determining a first parameter, a first parameter candidate generating means for sequentially generating a first parameter candidate used for the substitution processing, and a second parameter candidate for sequentially generating a second parameter candidate used for the diffusion processing A second parameter candidate generating means, a first parameter candidate sequentially generated by the first parameter candidate generating means, and a second parameter candidate sequentially generated by the diffusion processing unit matrix candidate generating means by the second parameter candidate generating means. Calculating means for sequentially calculating an evaluation value by a predetermined method based on the parameter candidates; and Optimal parameter determining means for determining an optimal evaluation value from the evaluation value, and determining a first parameter candidate and a second parameter candidate corresponding to the determined evaluation value as a first parameter and a second parameter of the device, respectively. A parameter determining device.
【請求項4】 行列により平文の各文字間を置換する拡
散処理を行う装置の、該拡散処理の前記行列を決定する
ために前記行列に最適な共通因子を決定するパラメータ
決定装置であって、 該拡散処理に用いられる決定済みの行列を入力する入力
手段と、 該拡散処理の行列に対し、括り出し可能な共通因子の候
補を生成する共通因子候補生成手段と、 該共通因子候補生成手段によって逐次生成される共通因
子候補によって該拡散処理の行列を括り出した後の行列
に基づいて、所定の方法によって評価値を逐次計算する
計算手段と、 該計算手段によって計算された評価値から最適な評価値
を決定し、この決定した評価値に対応する共通因子候補
を共通因子とする最適共通因子決定手段とを備えたこと
を特徴とするパラメータ決定装置。
4. A parameter determination device for performing a diffusion process of replacing each character of a plaintext with a matrix, wherein the parameter determination device determines an optimal common factor for the matrix in order to determine the matrix of the diffusion process. Input means for inputting a determined matrix used for the diffusion processing; common factor candidate generation means for generating common factor candidates that can be grouped out with respect to the matrix of the diffusion processing; Calculating means for sequentially calculating an evaluation value by a predetermined method based on a matrix obtained by extracting the matrix of the diffusion processing by a sequentially generated common factor candidate; A parameter determining device for determining an evaluation value, and an optimum common factor determining means for setting a common factor candidate corresponding to the determined evaluation value as a common factor.
【請求項5】 第1パラメータにより平文の各文字を別
の文字にそれぞれ変換する換字処理と、第2パラメータ
により平文の各文字間を置換する拡散処理とを行う装置
の、パラメータ決定方法であって、該換字処理と該拡散
処理との組み合わせによって定まる所定の方法にて計算
された評価値が最適にするように第1パラメータあるい
は第2パラメータあるいはそれら両方のパラメータを決
定することを特徴とするパラメータ決定方法。
5. A parameter determining method for an apparatus for performing a substitution process for converting each character of a plaintext into another character by using a first parameter and a diffusion process for replacing each character of the plaintext by using a second parameter. Determining a first parameter or a second parameter or both parameters such that an evaluation value calculated by a predetermined method determined by a combination of the substitution processing and the diffusion processing is optimized. Parameter determination method.
【請求項6】 第1パラメータにより平文の各文字を別
の文字にそれぞれ変換する換字処理と、行列により平文
の各文字間を置換する拡散処理とを行う装置の、該拡散
処理の前記行列を決定するためのパラメータ決定装置で
あって、 該換字処理に用いられる決定済みの第1パラメータを入
力する入力手段と、 該拡散処理に用いられる行列の一要素である第2パラメ
ータ候補を逐次生成する第2パラメータ候補生成手段
と、 該入力手段によって入力された第1パラメータと、該第2
パラメータ候補生成手段によって逐次生成される各第2
パラメータ候補とに基づいて、所定の方法によって評価
値を逐次計算する計算手段と、 前記計算手段によって逐次計算され、得られた評価値か
ら最適な評価値を決定し、この決定した評価値に対応す
る第2パラメータ候補を前記行列の一要素の第2パラメー
タと決定する最適パラメータ決定手段とを備え、 前記行列の全ての要素を決定することを特徴とするパラ
メータ決定装置。
6. An apparatus for performing a substitution process for converting each character of a plaintext into another character according to a first parameter and a diffusion process for replacing a space between each character of the plaintext with a matrix. A parameter determining device for determining, comprising: input means for inputting a determined first parameter used in the substitution processing; and sequentially generating a second parameter candidate which is an element of a matrix used in the diffusion processing. A second parameter candidate generating unit; a first parameter input by the input unit;
Each second sequentially generated by the parameter candidate generation means
Calculating means for sequentially calculating the evaluation value by a predetermined method based on the parameter candidates; and determining the optimum evaluation value from the obtained evaluation values sequentially calculated by the calculating means, and corresponding to the determined evaluation value. A parameter determining unit that determines a second parameter candidate to be determined as a second parameter of one element of the matrix, and determines all elements of the matrix.
【請求項7】 前記最適パラメータ決定手段は、更に、
得られた評価値から所定数の適した評価値を決定し、こ
の決定した評価値に対応する第2パラメータ候補を前記
行列の他の要素のパラメータ候補とすることを特徴とす
る請求項6のパラメータ決定装置。
7. The optimal parameter determining means further comprises:
7. A method according to claim 6, wherein a predetermined number of suitable evaluation values are determined from the obtained evaluation values, and a second parameter candidate corresponding to the determined evaluation value is set as a parameter candidate for another element of the matrix. Parameter determination device.
【請求項8】 平文を暗号化するために、平文の各文字
を別のものに変換する複数の換字処理部と、平文の各文
字間を置換する拡散処理部とを備える暗号化装置であっ
て、 前記拡散処理部は、 該換字処理部に用いられる決定済みの第1パラメータ
と、逐次生成される該拡散処理に用いられる第2パラメ
ータ候補とに基づいて、所定の方法によって評価値を逐
次計算して得られた評価値の中から最適な評価値を決定
し、この決定した評価値に対応する第2パラメータ候補
を平文の各文字間の置換のために用いられるようにした
ことを特徴とする暗号化装置。
8. An encryption device comprising: a plurality of substitution processing units for converting each character of a plaintext into another one for encrypting a plaintext; and a diffusion processing unit for replacing a space between each character of the plaintext. The diffusion processing unit sequentially calculates an evaluation value by a predetermined method based on the determined first parameter used in the substitution processing unit and a second parameter candidate that is sequentially generated and used in the diffusion processing. An optimal evaluation value is determined from the evaluation values obtained by calculation, and the second parameter candidate corresponding to the determined evaluation value is used for replacement between each character in plain text. Encryption device.
【請求項9】 暗号文を復号するために、暗号文の各文
字を別のものに変換する複数の換字処理部と、暗号文の
各文字間を置換する拡散処理部とを備える復号装置であ
って、 前記拡散処理部は、該換字処理部に用いられる決定済み
の第1パラメータと、逐次生成される該拡散処理に用い
られる第2パラメータ候補とに基づいて、所定の方法に
よって評価値を逐次計算して得られた評価値の中から最
適な評価値を決定し、この決定した評価値に対応する第
2パラメータ候補を平文の各文字間の置換のために用い
られるようにしたことを特徴とする復号装置。
9. A decryption apparatus comprising: a plurality of substitution processing units for converting each character of a ciphertext into another for decrypting a ciphertext; and a diffusion processing unit for replacing a space between each character of the ciphertext. The diffusion processing unit, based on the determined first parameter used in the substitution processing unit, and a second parameter candidate used in the diffusion process sequentially generated, the evaluation value by a predetermined method The optimal evaluation value is determined from the evaluation values obtained by the successive calculation, and the optimal evaluation value corresponding to the determined evaluation value is determined.
A decoding device wherein two parameter candidates are used for replacement between each character of a plaintext.
JP2000212175A 2000-07-13 2000-07-13 Parameter determining device, parameter determining method, and encryption / decryption device Expired - Lifetime JP4216445B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000212175A JP4216445B2 (en) 2000-07-13 2000-07-13 Parameter determining device, parameter determining method, and encryption / decryption device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000212175A JP4216445B2 (en) 2000-07-13 2000-07-13 Parameter determining device, parameter determining method, and encryption / decryption device

Publications (2)

Publication Number Publication Date
JP2002023623A true JP2002023623A (en) 2002-01-23
JP4216445B2 JP4216445B2 (en) 2009-01-28

Family

ID=18708127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000212175A Expired - Lifetime JP4216445B2 (en) 2000-07-13 2000-07-13 Parameter determining device, parameter determining method, and encryption / decryption device

Country Status (1)

Country Link
JP (1) JP4216445B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005107078A (en) * 2003-09-30 2005-04-21 Sony Corp Encryption processing system, encryption processing method, and computer program
WO2006025416A1 (en) * 2004-09-03 2006-03-09 Sony Corporation Encryption device, encryption method, and computer program
JP2006301567A (en) * 2005-03-25 2006-11-02 Sony Corp Encryption processing device, encryption processing method, and computer program
CN114389791A (en) * 2021-12-21 2022-04-22 中国电子科技集团公司第三十研究所 MILP (linear diffusion layer) based method for rapidly calculating branch number of linear diffusion layer

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102457166B1 (en) * 2020-11-23 2022-10-20 부산대학교 산학협력단 Hardware module and its control method with a 32bit instruction extension for processor supporting ARIA encryption and decryption

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622222B2 (en) * 2003-09-30 2011-02-02 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
US9083506B2 (en) 2003-09-30 2015-07-14 Sony Corporation Cryptographic processing apparatus and cryptographic processing method, and computer program
US8666069B2 (en) 2003-09-30 2014-03-04 Sony Corporation Cryptographic processing apparatus and cryptographic processing method, and computer program
US8306217B2 (en) 2003-09-30 2012-11-06 Sony Corporation Cryptographic processing apparatus and cryptographic processing method, and computer program
JP2005107078A (en) * 2003-09-30 2005-04-21 Sony Corp Encryption processing system, encryption processing method, and computer program
US8031866B2 (en) 2003-09-30 2011-10-04 Sony Corporation Cryptographic processing apparatus and cryptographic processing method, and computer program
US7747011B2 (en) 2004-09-03 2010-06-29 Sony Corporation Encryption device, encryption method, and computer program
JP4561252B2 (en) * 2004-09-03 2010-10-13 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
US8275127B2 (en) 2004-09-03 2012-09-25 Sony Corporation Cryptographic processing apparatus, cryptographic processing method, and computer program therefor
JP2006072054A (en) * 2004-09-03 2006-03-16 Sony Corp Encryption processing device, encryption processing method, and computer program
US8767956B2 (en) 2004-09-03 2014-07-01 Sony Corporation Cryptographic processing apparatus, cryptographic processing method, and computer program therefor
WO2006025416A1 (en) * 2004-09-03 2006-03-09 Sony Corporation Encryption device, encryption method, and computer program
US9240885B2 (en) 2004-09-03 2016-01-19 Sony Corporation Cryptographic processing apparatus, cryptographic processing method, and computer program therefor
JP4622807B2 (en) * 2005-03-25 2011-02-02 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
JP2006301567A (en) * 2005-03-25 2006-11-02 Sony Corp Encryption processing device, encryption processing method, and computer program
CN114389791A (en) * 2021-12-21 2022-04-22 中国电子科技集团公司第三十研究所 MILP (linear diffusion layer) based method for rapidly calculating branch number of linear diffusion layer

Also Published As

Publication number Publication date
JP4216445B2 (en) 2009-01-28

Similar Documents

Publication Publication Date Title
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
JP4882598B2 (en) Cryptographic processing apparatus, cryptographic processing algorithm construction method, cryptographic processing method, and computer program
Daemen et al. The design of Rijndael
KR100389902B1 (en) Fast block encryption method guaranteeing security for differential cryptanalysis and linear cryptanalysis
JP4967544B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP5023624B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
US20080292100A1 (en) Non-linear data converter, encoder and decoder
JP2001324924A (en) Device and method for ciphering, device and method for deciphering, and arithmetic operation device
WO2006098015A1 (en) Data converting apparatus and data converting method
JP4783382B2 (en) Montgomery method multiplication remainder calculator
TW201044334A (en) Encryption device, encryption method, and computer program
KR20050078271A (en) Hardware cryptographic engine and method improving power consumption and operation speed
Saha et al. Symmetric random function generator (SRFG): A novel cryptographic primitive for designing fast and robust algorithms
Bakhtiyor et al. Algebraic Cryptanalysis of O'zDSt 1105: 2009 Encryption Algorithm
JP2002023623A (en) Device and method for deciding parameter, ciphering device, and deciphering device
JP2001282103A (en) Ciphering method
Wood et al. Constructing large S-boxes with area minimized implementations
Nga et al. On the improving diffusion layer and performance of AES algorithm
JP5500277B2 (en) Encryption device and built-in device equipped with a common key encryption function
Malik et al. Dynamic MDS matrices for substantial cryptographic strength
Luong et al. The preservation of the coefficient of fixed points of an MDS matrix under direct exponent transformation
JP2000089667A (en) Algorithm generation type secret key encryption system
JP3145363B2 (en) Function randomness evaluation device and evaluation method, random function generation device and generation method, and recording medium recording a program for implementing these methods
Luong et al. Generating key-dependent involutory MDS matrices through permutations, direct exponentiation, and scalar multiplication
l Morawiecki et al. ICEPOLE v2

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050414

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050816

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060424

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060515

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060602

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081106

R151 Written notification of patent or utility model registration

Ref document number: 4216445

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 5

EXPY Cancellation because of completion of term