JP7244060B2 - Block cipher device, block cipher method and program - Google Patents

Block cipher device, block cipher method and program Download PDF

Info

Publication number
JP7244060B2
JP7244060B2 JP2019028896A JP2019028896A JP7244060B2 JP 7244060 B2 JP7244060 B2 JP 7244060B2 JP 2019028896 A JP2019028896 A JP 2019028896A JP 2019028896 A JP2019028896 A JP 2019028896A JP 7244060 B2 JP7244060 B2 JP 7244060B2
Authority
JP
Japan
Prior art keywords
round
key
blocks
sub
processing
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.)
Active
Application number
JP2019028896A
Other languages
Japanese (ja)
Other versions
JP2020134730A (en
Inventor
照夫 齊藤
真紀 茂
博靖 久保
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2019028896A priority Critical patent/JP7244060B2/en
Publication of JP2020134730A publication Critical patent/JP2020134730A/en
Application granted granted Critical
Publication of JP7244060B2 publication Critical patent/JP7244060B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、平文を暗号化するブロック暗号装置およびブロック暗号方法に関し、さらには、これらを実現するためのプログラムに関する。 The present invention relates to a block cipher apparatus and block cipher method for encrypting plaintext, and further to a program for realizing these.

ブロック暗号に対する解読法の一つとして中間一致攻撃が知られている。中間一致攻撃とは、ブロック暗号を二つのsub-cipherに分割し、平文側から計算した中間値と暗号文側から計算した中間値uの一致を確認することで鍵の候補を絞り込む解読法である。近年、中間一致攻撃はハッシュ関数への原像攻撃として応用され、著しく改良が進んでいる。従来の中間一致攻撃の改良手法として、Biclique Cryptanalysisと呼ばれるものがある(例えば、非特許文献1参照)。Biclique Cryptanalysisは、秘密鍵をBicliqueと呼ばれる特性を満たすグループに分け効率的に中間一致攻撃を行う攻撃である(例えば、非特許文献2参照)。 Match-in-the-middle attack is known as one of cryptanalysis methods for block ciphers. Match-in-the-middle attack is a cryptanalysis method that divides a block cipher into two sub-ciphers and narrows down the key candidates by confirming that the intermediate value calculated from the plaintext side and the intermediate value u calculated from the ciphertext side match. be. In recent years, match-in-the-middle attacks have been applied as preimage attacks to hash functions, and have been remarkably improved. As an improvement method of the conventional match-in-the-middle attack, there is a method called Biclique Cryptanalysis (see, for example, Non-Patent Document 1). Biclique Cryptanalysis is an attack that divides a private key into groups that satisfy characteristics called Biclique and efficiently performs middle match attacks (see, for example, Non-Patent Document 2).

A. Bogdanov, D. Khovratovich, and C. Rechberger,’Biclique Cryptanalysis of the Full AES,’ASIACRYPT 2011, LNCS 7073, pp.344--371, Springer (2011)A. Bogdanov, D. Khovratovich, and C. Rechberger,’Biclique Cryptanalysis of the Full AES,’ASIACRYPT 2011, LNCS 7073, pp.344--371, Springer (2011) W. Diffie, M. E. Hellman: Exhaustive Cryptanalysis of the NBS Data Encryption Standard. Computer 10 (6): 74-84.W. Diffie, M. E. Hellman: Exhaustive Cryptanalysis of the NBS Data Encryption Standard. Computer 10 (6): 74-84.

しかしながら、これまでに、Biclique Cryptanalysisに対して安全なブロック暗号を構成する手法は提案されておらず、安全なブロック暗号を構成することができていなかった。 However, until now, no method has been proposed to configure a block cipher that is secure against Biclique Cryptanalysis, and a secure block cipher could not be configured.

そこで、本発明の目的の一例は、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができるブロック暗号装置、ブロック暗号方法およびプログラムを提供することにある。 SUMMARY OF THE INVENTION Accordingly, one example of an object of the present invention is to provide a block cipher apparatus, a block cipher method, and a program capable of constructing a block cipher that is safe against Biclique Cryptanalysis.

上記目的を達成するため、本発明の一側面におけるブロック暗号装置は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵
サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記暗号化部において、
1ラウンドの第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、ことを特徴とする。
To achieve the above object, a block cipher device according to one aspect of the present invention is a block cipher device that encrypts a plaintext with a block length of b bits using a secret key with a key length of b bits,
a plaintext splitting unit that splits the plaintext into d n-bit data sub-blocks;
a key splitting unit for splitting the private key into d n-bit key sub-blocks;
an encryption unit that repeats r rounds of a first process using a round function on the d n-bit data sub-blocks;
a key schedule processing unit that repeats r rounds of a second process using a bijective function on the d n-bit key sub-blocks;
a calculation unit that calculates the output of the encryption unit and the output of the key schedule processing unit and outputs a ciphertext;
with
In the key schedule processing unit,
In a second process of the first round, the d n-bit key sub-blocks generated by the key dividing unit are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In the encryption unit,
In the first processing of one round, each of the d n-bit data sub-blocks generated by the plaintext dividing unit and each of the d n-bit key sub-blocks generated by the key dividing unit are The result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
The round function is a d×d matrix formula that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks. .

また、上記目的を達成するため、本発明の一側面におけるブロック暗号装置は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記暗号化部において、
1ラウンド目の第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンドの前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
In order to achieve the above object, a block cipher apparatus according to one aspect of the present invention is a block cipher apparatus that encrypts a plaintext with a block length of b bits using a secret key with a key length of b bits,
a plaintext splitting unit that splits the plaintext into d n-bit data sub-blocks;
a key splitting unit for splitting the private key into d n-bit key sub-blocks;
an encryption unit that repeats r rounds of a first process using a round function on the d n-bit data sub-blocks;
a key schedule processing unit that repeats r rounds of second processing using a round function on the d n-bit key sub-blocks;
a calculation unit that calculates the output of the encryption unit and the output of the key schedule processing unit and outputs a ciphertext;
with
In the key schedule processing unit,
In a second process of the first round, the d n-bit key sub-blocks generated by the key dividing unit are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In the encryption unit,
In the first process of the first round, each of the d n-bit data sub-blocks generated by the plaintext dividing unit and each of the d n-bit key sub-blocks generated by the key dividing unit is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i = 2 to r) round first process, the output of the first process of (i-1) round and the output of the second process of (i-1) round are calculated, The result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences. do.

また、上記目的を達成するため、本発明の一側面におけるブロック暗号方法は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法
であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、することを特徴とする。
In order to achieve the above object, a block cipher method according to one aspect of the present invention is a block cipher method for encrypting plaintext with a block length of b bits using a secret key with a key length of b bits,
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a bijective function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
with
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
wherein the round function is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks. do.

また、上記目的を達成するため、本発明の一側面におけるブロック暗号方法は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンドの前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンドの第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の
出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
In order to achieve the above object, a block cipher method according to one aspect of the present invention is a block cipher method for encrypting plaintext with a block length of b bits using a secret key with a key length of b bits,
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
with
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first round of processing, each of the d n-bit data sub-blocks generated in step (a) and each of the d n-bit key sub-blocks generated in step (b). is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences. do.

また、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、することを特徴とする。
In order to achieve the above object, a program according to one aspect of the present invention causes a computer to encrypt plaintext with a block length of b bits using a secret key with a key length of b bits, comprising:
to the computer;
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a bijective function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
and
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
wherein the round function is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks. do.

更に、上記目的を達成するため、本発明の一側面におけるプログラムは、コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
Furthermore, in order to achieve the above object, a program in one aspect of the present invention causes a computer to encrypt plaintext with a block length of b bits using a secret key with a key length of b bits, comprising:
to the computer;
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
and
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences. do.

以上のように本発明におけるブロック暗号装置、ブロック暗号方法及びプログラムによれば、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができる。 As described above, according to the block cipher apparatus, block cipher method, and program of the present invention, a block cipher that is safe against Biclique Cryptanalysis can be constructed.

図1は、本発明の実施の形態1におけるブロック暗号装置の構成図である。FIG. 1 is a configuration diagram of a block cipher apparatus according to Embodiment 1 of the present invention. 図2は、本発明の実施の形態1におけるブロック暗号装置でのアルゴリズムを説明する図である。FIG. 2 is a diagram explaining an algorithm in the block cipher device according to Embodiment 1 of the present invention. 図3は、本発明の実施の形態1におけるブロック暗号装置の動作を示すフロー図である。FIG. 3 is a flow chart showing the operation of the block cipher device according to Embodiment 1 of the present invention. 図4は、Biclique特性の構成方法を説明するための図である。FIG. 4 is a diagram for explaining a configuration method of Biclike characteristics. 図5は、図4での差分の重なりが遷移する状態を示す図である。FIG. 5 is a diagram showing transition states of overlapping differences in FIG. 図6は、本発明の実施の形態1におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 6 is a diagram showing that the Biclike property does not hold in encryption by the block cipher apparatus according to Embodiment 1 of the present invention. 図7は、本発明の実施の形態1におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 7 is a diagram showing that the Biclike property does not hold in encryption by the block cipher apparatus according to Embodiment 1 of the present invention. 図8は、変形例による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 8 is a diagram showing that the Biclike property does not hold in the encryption according to the modification. 図9は、変形例による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 9 is a diagram showing that the Biclike property does not hold in the encryption according to the modification. 図10は、本発明の実施の形態2におけるブロック暗号装置でのアルゴリズムを説明する図である。FIG. 10 is a diagram explaining an algorithm in the block cipher device according to Embodiment 2 of the present invention. 図11は、本発明の実施の形態2におけるブロック暗号装置の動作を示すフロー図である。FIG. 11 is a flow chart showing the operation of the block cipher apparatus according to Embodiment 2 of the present invention. 図12は、本実施の形態2におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 12 is a diagram showing that the Biclike property does not hold in encryption by the block cipher apparatus according to the second embodiment. 図13は、本実施の形態2におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 13 is a diagram showing that the Biclike property does not hold in encryption by the block cipher apparatus according to the second embodiment. 図14は、変形例による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 14 is a diagram showing that the Biclike property does not hold in the encryption according to the modification. 図15は、変形例による暗号化では、Biclique特性が成り立たないことを示す図である。FIG. 15 is a diagram showing that the Biclike property does not hold in the encryption according to the modification. 図16は、本発明の実施の形態1、2におけるブロック暗号装置を実現するコンピュータの一例を示すブロック図である。FIG. 16 is a block diagram showing an example of a computer that implements the block cipher apparatus according to Embodiments 1 and 2 of the present invention.

(実施の形態1)
以下、本発明の実施の形態1におけるブロック暗号装置およびブロック暗号方法について、図1~図9を参照しながら説明する。
(Embodiment 1)
A block cipher apparatus and a block cipher method according to Embodiment 1 of the present invention will be described below with reference to FIGS. 1 to 9. FIG.

[装置構成]
図1は、本発明の実施の形態1におけるブロック暗号装置の構成図である。
[Device configuration]
FIG. 1 is a configuration diagram of a block cipher apparatus according to Embodiment 1 of the present invention.

ブロック暗号装置1は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いてブロック暗号化する装置である。図1に示すように、ブロック暗号装置1は、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。 The block cipher device 1 is a device that block-ciphers a plaintext with a block length of b bits using a secret key with a key length of b bits. As shown in FIG. 1 , the block cipher device 1 includes a plaintext division unit 2 , a key division unit 3 , an encryption unit 4 , a key schedule processing unit 5 and a calculation unit 6 .

平文分割部2は、ブロック暗号装置1に入力されたbビットの平文を、d個のnビットのデータサブブロックに分割する。 The plaintext dividing unit 2 divides the b-bit plaintext input to the block cipher device 1 into d n-bit data sub-blocks.

鍵分割部3は、ブロック暗号装置1に入力された秘密鍵をd個のnビットの鍵サブブロックに分割する。 The key division unit 3 divides the secret key input to the block cipher device 1 into d n-bit key sub-blocks.

暗号化部4は、平文分割部2によって生成されたd個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す。 The encryption unit 4 repeats r rounds of the first process using the round function on the d n-bit data sub-blocks generated by the plaintext division unit 2 .

鍵スケジュール処理部5は、鍵分割部3によって生成されたd個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返す。この鍵スケジュール処理部において、1ラウンド目の第2処理では、鍵分割部3により生成されたd個のnビットの鍵サブブロックを全単射関数の入力とする。また、i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の第2処理の出力を、全単射関数の入力とする。 The key schedule processing unit 5 repeats r rounds of the second processing using the bijective function on the d n-bit key sub-blocks generated by the key dividing unit 3 . In the second process of the first round in this key schedule processing unit, the d n-bit key sub-blocks generated by the key dividing unit 3 are used as inputs of the bijective function. In addition, in the i-th (i=2 to r)-th round second processing, the output of the (i-1)-th round second processing is used as the input of the bijective function.

演算部6は、暗号化部4の出力と、鍵スケジュール処理部5の出力とを演算して、暗号文を出力する。 A calculation unit 6 calculates the output of the encryption unit 4 and the output of the key schedule processing unit 5, and outputs a ciphertext.

暗号化部4において、1ラウンド目の第1処理では、平文分割部2により生成されたd個のnビットのデータサブブロックそれぞれと、鍵分割部3により生成されたd個のnビットの鍵サブブロックそれぞれとを演算する。この演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とする。また、i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の第1処理の出力と、鍵スケジュール処理部5で実行された(i-1)ラウンド目の第2処理の出力とを演算する。この演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とする。 In the encryption unit 4, in the first process of the first round, each of d n-bit data sub-blocks generated by the plaintext division unit 2 and d n-bit keys generated by the key division unit 3 are Compute each sub-block. A result obtained by performing nonlinear transformation processing on the calculation result is used as an input of the round function. In addition, in the i (i=2 to r) round first process, the output of the (i−1) round first process and the (i−1) round and the output of the second process. A result obtained by performing nonlinear transformation processing on the calculation result is used as an input of the round function.

この暗号化部4の第1処理で用いられるラウンド関数は、入力されるnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させる行
列演算式である。また、暗号化部4の第1処理で実行される演算は、算術加算、算術減算または排他的論理和のいずれかである。
The round function used in the first processing of the encryption unit 4 is a matrix operation formula that causes the influence of the rounding difference of 1 in the input n-bit data sub-block to affect all other data sub-blocks. Further, the calculation executed in the first process of the encryption unit 4 is either arithmetic addition, arithmetic subtraction, or exclusive OR.

この、本実施の形態1のブロック暗号装置1は、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができる。 The block cipher apparatus 1 of the first embodiment can construct a block cipher that is safe against Biclique Cryptanalysis.

続いて、図2~図9を用いて、実施の形態1のブロック暗号装置1の構成について具体的に説明する。 Next, the configuration of the block cipher apparatus 1 according to the first embodiment will be specifically described with reference to FIGS. 2 to 9. FIG.

図2は、本発明の実施の形態1におけるブロック暗号装置1でのアルゴリズムを説明する図である。ブロック暗号装置1は、上述した、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。ブロック暗号装置1には、図2に示すように、平文と秘密鍵とが入力される。実施の形態1では、平文のブロック長はbビットである。また、秘密鍵は、平文のブロック長と同じbビットの鍵長を有する。 FIG. 2 is a diagram explaining an algorithm in the block cipher device 1 according to Embodiment 1 of the present invention. The block cipher device 1 includes the plaintext division unit 2, the key division unit 3, the encryption unit 4, the key schedule processing unit 5, and the calculation unit 6 described above. Plaintext and a secret key are input to the block cipher device 1 as shown in FIG. In Embodiment 1, the plaintext block length is b bits. Also, the private key has a key length of b bits, which is the same as the plaintext block length.

平文分割部2は、ブロック暗号装置1に入力された平文を、d個のnビットのデータサブブロックに分割する。また、鍵分割部3は、ブロック暗号装置1に入力された秘密鍵をd個のnビットの鍵サブブロックに分割する。 The plaintext division unit 2 divides the plaintext input to the block cipher device 1 into d n-bit data sub-blocks. The key dividing unit 3 also divides the secret key input to the block cipher device 1 into d n-bit key sub-blocks.

鍵スケジュール処理部5は、全単射計算部51を有する。全単射計算部51は、d個のnビットの鍵サブブロックに対して、全単射関数を用いた計算を行う。鍵スケジュール処理部5では、全単射計算部51が行う計算処理を第2処理として、この第2処理をrラウンド繰り返す。 The key schedule processing unit 5 has a bijection calculation unit 51 . The bijection calculator 51 performs calculation using a bijection function on d n-bit key sub-blocks. In the key schedule processing unit 5, the calculation processing performed by the bijection calculation unit 51 is defined as the second processing, and this second processing is repeated r rounds.

1ラウンド目の第2処理では、鍵分割部3により生成されたd個のnビットの鍵サブブロックが、全単射計算部51に入力される。2ラウンド目以降の第2処理では、直前のラウンドにおいて全単射計算部51により計算された結果が、全単射計算部51に入力される。 In the second process of the first round, d n-bit key sub-blocks generated by the key division unit 3 are input to the bijection calculation unit 51 . In the second process from the second round onward, the results calculated by the bijection calculator 51 in the previous round are input to the bijection calculator 51 .

暗号化部4は、論理演算部41と、S層部42と、行列演算部43とを有している。 The encryption unit 4 has a logic operation unit 41 , an S layer unit 42 and a matrix operation unit 43 .

論理演算部41は、入力されるd個のnビットのデータサブブロックと、d個のnビットの鍵サブブロックとの排他的論理和を演算する。なお、論理演算部41が行う演算は、算術加算または算術減算であってもよい。 The logical operation unit 41 performs an exclusive OR operation on the input d n-bit data sub-blocks and d n-bit key sub-blocks. The operation performed by the logic operation unit 41 may be arithmetic addition or arithmetic subtraction.

S層部42は、論理演算部41の出力に対して非線形変換を行う。S層部42は、共通鍵暗号におけるSボックス(Substitution Box)として機能する。例えば、S層部42は、記憶した変換テーブルに基づいて非線形変換を行う。 The S layer section 42 performs nonlinear conversion on the output of the logical operation section 41 . The S layer part 42 functions as an S box (substitution box) in common key cryptography. For example, the S layer section 42 performs nonlinear conversion based on a stored conversion table.

行列演算部43は、d×dの行列を用いた演算処理を行う。行列演算部43は、MDS(Maximum Distance Separation)変換によるデータ撹拌として機能する。MDS変換は、MDS行列を用いた変換である。行列演算部43におけるMDS変換では、入力されるデータサブブロックの1つに、2つのデータの排他的論理和差分の影響があると、その差分の影響が、出力されるデータサブブロックすべてに波及する。行列演算部43におけるMDS変換は、以下の式で表される。

Figure 0007244060000001
The matrix calculator 43 performs arithmetic processing using a d×d matrix. The matrix calculator 43 functions as data agitation by MDS (Maximum Distance Separation) conversion. MDS transform is transform using an MDS matrix. In the MDS conversion in the matrix calculator 43, if one of the input data sub-blocks is affected by the exclusive OR difference between the two data, the effect of the difference spreads to all the output data sub-blocks. do. The MDS transform in the matrix calculator 43 is represented by the following equation.
Figure 0007244060000001

暗号化部4は、論理演算部41と、S層部42と、行列演算部43とによる処理を1つの第1処理として、この第1処理をrラウンド繰り返す。 The encryption unit 4 sets the processing by the logical operation unit 41, the S layer unit 42, and the matrix operation unit 43 as one first process, and repeats this first process for r rounds.

1ラウンド目の第1処理では、論理演算部41には、平文分割部2によって生成されたd個のnビットのデータサブブロックと、鍵分割部3によって生成されたd個のnビットの鍵サブブロックとが入力される。そして、論理演算部41は、2つの入力データの排他的論理和を演算する。 In the first process of the first round, the logical operation unit 41 receives d n-bit data sub-blocks generated by the plaintext dividing unit 2 and d n-bit keys generated by the key dividing unit 3. A sub-block is entered. Then, the logical operation unit 41 computes the exclusive OR of the two input data.

2ラウンド目以降の第1処理では、論理演算部41には、直前のラウンドにおいて行列演算部43により演算された結果、および、直前のラウンドにおいて全単射計算部51により計算された結果が入力される。 In the first process from the second round onwards, the result calculated by the matrix calculator 43 in the previous round and the result calculated by the bijection calculator 51 in the previous round are input to the logical calculator 41. be done.

演算部6は、暗号化部4の出力と、鍵スケジュール処理部5の出力との排他的論理を演算する。演算部6が行う演算は、算術加算または算術減算であってもよい。暗号化部4の出力は、最終ラウンド(rラウンド)の第1処理の行列演算部43の出力である。また、鍵スケジュール処理部5の出力は、最終ラウンド(rラウンド)の第2処理の全単射計算部51の出力である。この演算部6の出力が、ブロック暗号装置1によりブロック暗号化された平文の暗号文である。 The calculation unit 6 calculates exclusive logic between the output of the encryption unit 4 and the output of the key schedule processing unit 5 . The calculation performed by the calculation unit 6 may be arithmetic addition or arithmetic subtraction. The output of the encryption unit 4 is the output of the matrix calculation unit 43 of the first process of the final round (r round). Also, the output of the key schedule processing unit 5 is the output of the bijection calculation unit 51 of the second process of the final round (r round). The output of the computing unit 6 is the plaintext ciphertext block-encrypted by the block cipher device 1 .

[動作説明]
次に、本発明の実施の形態1におけるブロック暗号装置1の動作について図3を用いて説明する。図3は、本発明の実施の形態1におけるブロック暗号装置1の動作を示すフロー図である。以下の説明においては、適宜図1および図2を参酌する。また、本実施の形態1では、ブロック暗号装置1を動作させることによって、ブロック暗号方法が実施される。よって、本実施の形態におけるブロック暗号方法の説明は、以下のブロック暗号装置1の動作説明に代える。
[Description of operation]
Next, the operation of the block cipher device 1 according to Embodiment 1 of the present invention will be explained using FIG. FIG. 3 is a flow chart showing the operation of the block cipher device 1 according to Embodiment 1 of the present invention. In the following description, FIG. 1 and FIG. 2 are appropriately referred to. Further, in the first embodiment, the block cipher method is implemented by operating the block cipher device 1 . Therefore, the description of the block cipher method in this embodiment is replaced with the description of the operation of the block cipher device 1 below.

まず、前提として、ブロック暗号装置1には、ブロック長がbビットの平文と、平文のブロック長と同じbビットの鍵長の秘密鍵とが入力されるものとする。 First, it is assumed that the block cipher apparatus 1 is supplied with a plaintext with a block length of b bits and a secret key with a key length of b bits, which is the same as the block length of the plaintext.

上述の前提において、図3に示すように、平文分割部2は、bビットの平文を、d個のnビットのデータサブブロックに分割する(S1)。鍵分割部3は、bビットの秘密鍵をd個のnビットの鍵サブブロックに分割する(S2)。 On the above premise, as shown in FIG. 3, the plaintext dividing unit 2 divides b-bit plaintext into d n-bit data sub-blocks (S1). The key dividing unit 3 divides the b-bit secret key into d n-bit key sub-blocks (S2).

1ラウンド目において、暗号化部4の論理演算部41は、S1で生成されたd個のnビットのデータサブブロックと、S2で生成されたd個のnビットの鍵サブブロックとの排他的論理和を演算する(S3)。次に、暗号化部4のS層部42は、S3の排他的論理和の演算結果に対して、記憶した変換テーブルに基づいて非線形変換を行う(S4)。そして、暗号化部4の行列演算部43は、S4の非線形変換に対して、d×dの行列を用いたMDS変換を行う(S5)。また、鍵スケジュール処理部5の全単射計算部51は、S2
で生成されたd個のnビットの鍵サブブロックに対して、全単射関数を用いた計算を行う(S6)。
In the first round, the logical operation unit 41 of the encryption unit 4 performs exclusive processing on the d n-bit data sub-blocks generated in S1 and the d n-bit key sub-blocks generated in S2. A logical sum is calculated (S3). Next, the S layer section 42 of the encryption section 4 performs non-linear conversion on the calculation result of the exclusive OR in S3 based on the stored conversion table (S4). Then, the matrix calculator 43 of the encryption unit 4 performs MDS conversion using a d×d matrix on the nonlinear conversion of S4 (S5). Further, the bijection calculation unit 51 of the key schedule processing unit 5 performs S2
Calculation using a bijective function is performed on the d n-bit key sub-blocks generated in (S6).

S3~S6の処理が、最終ラウンドであるrラウンド目の処理でなければ(S7:NO)、S3~S6の処理が繰り返される。2ラウンド目以降において、暗号化部4の論理演算部41は、S5の変換結果と、S6の計算結果との排他的論理和を演算する(S3)。また、鍵スケジュール処理部5の全単射計算部51は、直前ラウンドでのS6の計算結果に対して、全単射関数を用いた計算を行う(S6)。 If the processing of S3 to S6 is not the processing of the r-th round, which is the final round (S7: NO), the processing of S3 to S6 is repeated. From the second round onwards, the logical operation unit 41 of the encryption unit 4 computes the exclusive OR of the conversion result of S5 and the calculation result of S6 (S3). Also, the bijection calculation unit 51 of the key schedule processing unit 5 performs calculation using a bijection function on the calculation result of S6 in the previous round (S6).

S3~S6の処理が、rラウンド目の処理であれば(S7:YES)、演算部6は、最終ラウンドでのS5の変換結果と、最終ラウンドでのS6の計算結果との排他的倫理和を演算する(S8)。 If the processing of S3 to S6 is the rth round processing (S7: YES), the calculation unit 6 performs the exclusive ethical sum of the conversion result of S5 in the final round and the calculation result of S6 in the final round. is calculated (S8).

[実施の形態1による効果]
以上の構成のブロック暗号装置1により、Biclique特性が成り立たないように、平文を暗号化することができる。以下の説明では、上記アルゴリズムにより、Biclique特性が成り立たないように、平文を暗号化することができたことを示す。まず、Biclique特性の構成方法について説明する。
[Effects of Embodiment 1]
The block cipher apparatus 1 configured as described above can encrypt plaintext such that the Biclike property does not hold. In the following description, it will be shown that the above algorithm was able to encrypt plaintext such that the Biclike property does not hold. First, a method for configuring the Biclike characteristics will be described.

図4は、Biclique特性の構成方法を説明するための図である。図4は、平文に対して秘密鍵との排他的論理和を算出して、「SB」、「SR」、「MC」の各処理を行った際の、データの差分(色または斜線のあるブロック)が遷移する状態を示す。差分とは、2つの平文データの差のことであり、排他的論理和による差分が用いられることが多い。図4では、差分はnビット単位の丸め差分で扱っている。「SB」は、非線形な変換を行う処理である。「SR」は、順序の入れ替えを行う処理である。「MC」は、線形変換を行う処理である。また、図4の(1)は、順方向(入力から出力方向)にデータの差分が遷移する状態を示す。図4の(2)は、逆方向(出力から入力方向)にデータの差分が遷移する状態を示す。 FIG. 4 is a diagram for explaining a configuration method of Biclike characteristics. FIG. 4 shows the difference in data (colored or shaded block) transition state. A difference is a difference between two plaintext data, and a difference based on exclusive OR is often used. In FIG. 4, the difference is treated as a rounding difference in units of n bits. "SB" is a process for performing non-linear conversion. "SR" is a process of changing the order. “MC” is a process for performing linear conversion. Also, (1) in FIG. 4 shows a state in which the data difference transitions in the forward direction (from the input to the output direction). (2) in FIG. 4 shows a state in which the data difference transitions in the reverse direction (from the output to the input direction).

図4(1)において、鍵サブブロックに差分を入れる(図4(A))。そして、順方向に暗号化処理を行う(図4では2ラウンド)。図4(B)は、2ラウンド処理を行った後の差分の伝搬結果を示す。図4(2)において、図4(B)に示す鍵サブブロックの差分と重ならないように、鍵サブブロックの空き領域に差分を入れる(図4(C))。そして、逆方向に暗号化処理を2ラウンド行う。図4(D)は、逆方向に2ラウンド処理を行った後の差分の伝搬結果を示す。なお、図4において、差分がどのように波及するかは、アルゴリズムに依存して決まる。 In FIG. 4(1), the difference is entered in the key sub-block (FIG. 4(A)). Then, encryption processing is performed in the forward direction (two rounds in FIG. 4). FIG. 4B shows the propagation result of the difference after two rounds of processing. In FIG. 4(2), the difference is put in the free area of the key sub-block so as not to overlap with the difference of the key sub-block shown in FIG. 4(B) (FIG. 4(C)). Then, two rounds of encryption processing are performed in the opposite direction. FIG. 4D shows the propagation result of the difference after two rounds of processing in the reverse direction. In FIG. 4, how the difference spreads depends on the algorithm.

図5は、図4での差分の重なりが遷移する状態を示す図である。図5に示すように、データサブブロックには差分の重なりがあるブロックがない。 FIG. 5 is a diagram showing transition states of overlapping differences in FIG. As shown in FIG. 5, the data sub-blocks do not have blocks with overlapping differentials.

差分はブロック暗号の安全性を評価する上で、重要な指標として用いられる。差分に偏りがあると、そのブロック暗号は、2つの平文を簡単に見つけることができるとして安全ではないと評価される。一方、2つの平文を見つけることが困難であると、そのブロック暗号は安全であると評価される。なお、差分がどのように伝播するかは、アルゴリズムに依存して決まる。つまり、図5に示すように、データサブブロックには差分の重なりがないと、Biqlique特性が成り立ち、安全ではないブロック暗号であると評価される。 The difference is used as an important index in evaluating the security of block ciphers. If the difference is skewed, the block cipher is rated as insecure as the two plaintexts can be easily found. On the other hand, if the two plaintexts are difficult to find, the block cipher is rated as secure. It should be noted that how the difference is propagated depends on the algorithm. In other words, as shown in FIG. 5, if the data sub-blocks do not have overlapping differences, the Biqlike property holds and the block cipher is evaluated as being insecure.

図6および図7は、本発明の実施の形態1におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。図6の(1)は、順方向に
データの差分が遷移する状態を示す。図6の(2)は、逆方向にデータの差分が遷移する状態を示す。
6 and 7 are diagrams showing that the Biclike property does not hold in encryption by the block cipher apparatus according to Embodiment 1 of the present invention. (1) in FIG. 6 shows a state in which the difference in data transitions in the forward direction. (2) in FIG. 6 shows a state in which the data difference transitions in the opposite direction.

図6(1)において、鍵サブブロックに差分を入れる(図6(A))。なお、鍵サブブロックの差分が、必ずデータサブブロックに影響するように、鍵サブブロックの鍵長は、データサブブロックのブロック長と同じである必要がある。実施の形態1では、MDS変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図6(B)に示すように、データサブブロックのすべてのブロックに、差分が伝搬する。 In FIG. 6(1), the difference is entered in the key sub-block (FIG. 6(A)). Note that the key length of the key sub-block must be the same as the block length of the data sub-block so that the difference of the key sub-block always affects the data sub-block. In Embodiment 1, since MDS conversion is performed, when the second round of encryption processing is performed in the forward direction, the difference propagates to all blocks of the data sub-blocks as shown in FIG. 6B.

これにより、図6(C)に示す鍵サブブロックの差分と重ならないように、鍵サブブロックに差分を入れ(図6(D))、逆方向に暗号化処理を2ラウンド行った場合に、データブロックのすべてに差分がなくても(図6(E))、図7(A)に示すように、データサブブロックには差分が重なるブロック(図7での黒ブロック)が存在する。つまり、上記のブロック暗号装置1では、1ラウンドの処理で、Biqlique特性が成り立たない、ブロック暗号が行われることが分かる。 As a result, when the difference is inserted into the key sub-block so as not to overlap with the difference of the key sub-block shown in FIG. Even if there is no difference in all the data blocks (FIG. 6(E)), as shown in FIG. 7(A), there are blocks (black blocks in FIG. 7) where the difference overlaps in the data sub-blocks. In other words, it can be seen that the above-described block cipher apparatus 1 performs block ciphers in which the Biqlike property does not hold in one round of processing.

以上のように、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができる。 As described above, a block cipher that is secure against Biclique Cryptanalysis can be constructed.

[プログラム]
本実施の形態1におけるプログラムは、コンピュータに、図3に示すステップS1~S8を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1におけるブロック暗号装置1とブロック暗号方法とを実現することができる。この場合、コンピュータのプロセッサは、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6として機能し、処理を行なう。
[program]
The program in the first embodiment may be any program that causes a computer to execute steps S1 to S8 shown in FIG. By installing this program in a computer and executing it, the block cipher apparatus 1 and the block cipher method according to the first embodiment can be realized. In this case, the processor of the computer functions as a plaintext division unit 2, a key division unit 3, an encryption unit 4, a key schedule processing unit 5 and a calculation unit 6, and performs processing.

また、本実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6のいずれかとして機能しても良い。 Also, the program in the first embodiment may be executed by a computer system constructed by a plurality of computers. In this case, for example, each computer may function as one of the plaintext division unit 2, the key division unit 3, the encryption unit 4, the key schedule processing unit 5, and the calculation unit 6, respectively.

(変形例)
ここで、本実施の形態1における変形例について説明する。本変形例では、行列演算部43は、係数に0を持たないd×dの行列を用いて、S層部42での非線形変換に対して行列変換する。行列演算部43における行列変換では、入力されるデータサブブロックの1つに、論理演算部41による排他的論理和差分の影響があると、出力されるデータサブブロックすべてに必ず差分がでる。行列演算部43における行列変換は、上記の式と同様に表される。
(Modification)
Here, a modification of the first embodiment will be described. In this modification, the matrix calculator 43 uses a d×d matrix that does not have 0 in the coefficients to perform matrix conversion for the nonlinear conversion in the S layer section 42 . In the matrix conversion in the matrix operation unit 43, if one of the input data sub-blocks is affected by the exclusive OR difference by the logic operation unit 41, all the output data sub-blocks will always have a difference. Matrix conversion in the matrix calculator 43 is expressed in the same way as the above equation.

[変形例による効果]
図8および図9は、本変形例による暗号化では、Biclique特性が成り立たないことを示す図である。図8の(1)は、順方向にデータの差分が遷移する状態を示す。図8の(2)は、逆方向にデータの差分が遷移する状態を示す。
[Effects of modified example]
8 and 9 are diagrams showing that the Biclike property does not hold in the encryption according to this modified example. (1) in FIG. 8 shows a state in which the difference in data transitions in the forward direction. (2) in FIG. 8 shows a state in which the data difference transitions in the opposite direction.

図8(1)において、鍵サブブロックに差分を入れる(図8(A))。本変形例では、係数に0を持たないd×dの行列で行列変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図8(B)に示すように、データサブブロックのすべてのブロックに、差分が伝搬する。 In FIG. 8(1), the difference is entered in the key subblock (FIG. 8(A)). In this modification, since matrix transformation is performed using a d×d matrix that does not have 0 in the coefficients, when the second round of encryption processing is performed in the forward direction, data sub-blocks as shown in FIG. The difference propagates to all blocks of .

これにより、図8(C)に示す鍵サブブロックの差分と重ならないように、鍵サブブロックに差分を入れ(図8(D))、逆方向に暗号化処理を2ラウンド行った場合に、データブロックのすべてに差分がなくても(図8(E))、図9(A)に示すように、データサブブロックには差分が重なるブロック(図9での黒ブロック)が存在する。つまり、上記のブロック暗号装置1では、1ラウンドの処理で、Biqlique特性が成り立たない、ブロック暗号が行われることが分かる。 As a result, when the difference is added to the key sub-block so as not to overlap with the difference of the key sub-block shown in FIG. Even if there is no difference in all data blocks (FIG. 8(E)), as shown in FIG. 9(A), data sub-blocks include blocks (black blocks in FIG. 9) where differences overlap. In other words, it can be seen that the above-described block cipher apparatus 1 performs block ciphers in which the Biqlike property does not hold in one round of processing.

(実施の形態2)
次に、本発明の実施の形態2における、ブロック暗号装置、ブロック暗号方法、及びプログラムについて、図10~図16を参照しながら説明する。
(Embodiment 2)
Next, a block cipher apparatus, a block cipher method, and a program according to Embodiment 2 of the present invention will be described with reference to FIGS. 10 to 16. FIG.

[装置構成]
図10は、本発明の実施の形態2におけるブロック暗号装置1Aでのアルゴリズムを説明する図である。ブロック暗号装置1Aは、上述した、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。実施の形態2では、暗号化部4におけるラウンド関数、および、鍵スケジュール処理部5での処理が、実施の形態1と相違する。以下、その相違点を中心に説明する。
[Device configuration]
FIG. 10 is a diagram explaining an algorithm in the block cipher device 1A according to Embodiment 2 of the present invention. The block cipher device 1A includes the plaintext division unit 2, the key division unit 3, the encryption unit 4, the key schedule processing unit 5, and the calculation unit 6 described above. The second embodiment differs from the first embodiment in the round function in the encryption unit 4 and the processing in the key schedule processing unit 5. FIG. The difference will be mainly described below.

鍵スケジュール処理部5は、d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返す。鍵スケジュール処理部5において、1ラウンド目の第2処理では、鍵分割部3により生成されたd個のnビットの鍵サブブロックをラウンド関数の入力とする。また、i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の第2処理の出力を、ラウンド関数の入力とする。 The key schedule processing unit 5 repeats r rounds of the second process using the round function for d n-bit key sub-blocks. In the second process of the first round in the key schedule processing unit 5, the d n-bit key sub-blocks generated by the key dividing unit 3 are used as the input of the round function. In addition, in the i (i=2 to r)th round second process, the output of the (i−1)th round second process is used as the input of the round function.

鍵スケジュール処理部5は、S層部52と、行列演算部53とを有している。 The key schedule processing section 5 has an S layer section 52 and a matrix calculation section 53 .

S層部52は、d個のnビットの鍵サブブロックに対して非線形変換を行う。S層部52は、共通鍵暗号におけるSボックス(Substitution Box)として機能する。例えば、S層部52は、記憶した変換テーブルに基づいて非線形変換を行う。 The S-layer unit 52 performs a non-linear transform on the d n-bit key sub-blocks. The S layer part 52 functions as an S box (substitution box) in common key cryptography. For example, the S layer section 52 performs nonlinear conversion based on a stored conversion table.

行列演算部53は、d×dの行列を用いた演算処理を行う。行列演算部53は、MDS(Maximum Distance Separation)変換によるデータ撹拌として機能する。MDS変換は、MDS行列を用いた変換である。 The matrix calculator 53 performs arithmetic processing using a d×d matrix. The matrix calculator 53 functions as data agitation by MDS (Maximum Distance Separation) conversion. MDS transform is transform using an MDS matrix.

暗号化部4の行列演算部43は、d×dの行列を用いた演算処理を行う。 The matrix calculation unit 43 of the encryption unit 4 performs calculation processing using a d×d matrix.

暗号化部4の行列演算部43と、鍵スケジュール処理部5の行列演算部53とで用いられるd×dの行列は、実施の形態1で説明したBiqlique特性が成り立たないようにする組合せが適宜設定される。実施の形態2では、行列演算部53で用いられるd×dの行列を、MDS行列としてある。 The d×d matrix used in the matrix calculation unit 43 of the encryption unit 4 and the matrix calculation unit 53 of the key schedule processing unit 5 can be appropriately combined so that the Biqlike characteristic described in the first embodiment does not hold. set. In the second embodiment, the d×d matrix used in the matrix calculator 53 is the MDS matrix.

[装置動作]
次に、本実施の形態2におけるブロック暗号装置1Aの動作について図11を用いて説明する。図11は、本発明の実施の形態2におけるブロック暗号装置1Aの動作を示すフロー図である。また、本実施の形態2では、ブロック暗号装置1Aを動作させることによって、情報処理方法が実施される。よって、本実施の形態2におけるブロック暗号方法の説明は、以下のブロック暗号装置1Aの動作説明に代える。
[Device operation]
Next, the operation of the block cipher apparatus 1A according to the second embodiment will be explained using FIG. FIG. 11 is a flow chart showing the operation of the block cipher device 1A according to Embodiment 2 of the present invention. Further, in the second embodiment, the information processing method is implemented by operating the block cipher apparatus 1A. Therefore, the description of the block cipher method in the second embodiment is replaced with the description of the operation of the block cipher apparatus 1A below.

まず、前提として、ブロック暗号装置1Aには、ブロック長がbビットの平文と、平文のブロック長と同じbビットの鍵長の秘密鍵とが入力されるものとする。 First, it is assumed that the block cipher apparatus 1A is supplied with a plaintext with a block length of b bits and a secret key with a key length of b bits, which is the same as the block length of the plaintext.

上述の前提において、図11に示すように、平文分割部2は、bビットの平文を、d個のnビットのデータサブブロックに分割する(S21)。鍵分割部3は、bビットの秘密鍵をd個のnビットの鍵サブブロックに分割する(S22)。 On the above premise, as shown in FIG. 11, the plaintext dividing unit 2 divides the b-bit plaintext into d n-bit data sub-blocks (S21). The key dividing unit 3 divides the b-bit secret key into d n-bit key sub-blocks (S22).

1ラウンド目において、暗号化部4の論理演算部41は、S21で生成されたd個のnビットのデータサブブロックと、S22で生成されたd個のnビットの鍵サブブロックとの排他的論理和を演算する(S23)。次に、暗号化部4のS層部42は、S23の排他的論理和の演算結果に対して、記憶した変換テーブルに基づいて非線形変換を行う(S24)。そして、暗号化部4の行列演算部43は、S24の非線形変換に対して、d×dの行列を用いた行列変換を行う(S24)。また、鍵スケジュール処理部5のS層部52は、S22で生成されたd個のnビットの鍵サブブロックに対して、非線形変換を行う(S26)。そして、鍵スケジュール処理部5の行列演算部53は、S26の非線形変換に対して、d×dの行列を用いたMDS変換を行う(S27)。 In the first round, the logical operation unit 41 of the encryption unit 4 performs exclusive processing on the d n-bit data sub-blocks generated in S21 and the d n-bit key sub-blocks generated in S22. A logical sum is calculated (S23). Next, the S layer section 42 of the encryption section 4 performs non-linear conversion on the calculation result of the exclusive OR in S23 based on the stored conversion table (S24). Then, the matrix calculator 43 of the encryption unit 4 performs matrix conversion using a d×d matrix for the nonlinear conversion of S24 (S24). Further, the S layer section 52 of the key schedule processing section 5 performs non-linear transformation on the d n-bit key sub-blocks generated in S22 (S26). Then, the matrix calculation unit 53 of the key schedule processing unit 5 performs MDS conversion using a d×d matrix on the nonlinear conversion of S26 (S27).

S23~S27の処理が、最終ラウンドであるrラウンド目の処理でなければ(S28:NO)、S23~S27の処理が繰り返される。2ラウンド目以降において、暗号化部4の論理演算部41は、S25の変換結果と、S27の変換結果との排他的論理和を演算する(S23)。また、鍵スケジュール処理部5のS層部52は、直前ラウンドでのS27の変換結果に対して、全非線形変換を行う(S26)。 If the processing of S23 to S27 is not the processing of the r-th round, which is the final round (S28: NO), the processing of S23 to S27 is repeated. From the second round onwards, the logical operation unit 41 of the encryption unit 4 computes the exclusive OR of the conversion result of S25 and the conversion result of S27 (S23). Also, the S layer section 52 of the key schedule processing section 5 performs full non-linear transformation on the transformation result of S27 in the previous round (S26).

S23~S27の処理が、rラウンド目の処理であれば(S28:YES)、演算部6は、最終ラウンドでのS25の変換結果と、最終ラウンドでのS27の変換結果との排他的倫理和を演算する(S29)。 If the processing of S23 to S27 is the r-th round processing (S28: YES), the calculation unit 6 performs the exclusive ethical sum of the conversion result of S25 in the final round and the conversion result of S27 in the final round. is calculated (S29).

[実施の形態2における効果]
図12および図13は、本実施の形態2におけるブロック暗号装置1Aによる暗号化では、Biclique特性が成り立たないことを示す図である。
[Effects of Embodiment 2]
12 and 13 are diagrams showing that the Biclike property does not hold in encryption by the block cipher apparatus 1A according to the second embodiment.

図12(1)において、鍵サブブロックに差分を入れる(図12(A))。実施の形態2では、鍵サブブロックに対してMDS変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図12(B)に示すように、鍵サブブロックのすべてのブロックに、差分が伝搬する。 In FIG. 12(1), the difference is entered in the key subblock (FIG. 12(A)). In Embodiment 2, since the MDS transformation is performed on the key sub-blocks, when the second round of encryption processing is performed in the forward direction, as shown in FIG. , the difference propagates.

これにより、図12(C)に示すように、鍵サブブロックに差分を入れ、逆方向に暗号化処理を2ラウンド行った場合に、データブロックのすべてに差分がなくても(図12(D))、図13(A)に示すように、鍵サブブロックには差分が重なるブロック(図13での黒ブロック)が存在する。つまり、上記のブロック暗号装置1Aでは、1ラウンドの処理で、Biqlique特性が成り立たない、ブロック暗号が行われることが分かる。 As a result, as shown in FIG. 12(C), when a difference is added to the key sub-block and two rounds of encryption processing are performed in the opposite direction, even if there is no difference in all data blocks (FIG. 12(D) )), and as shown in FIG. 13A, there are blocks (black blocks in FIG. 13) where the difference overlaps in the key sub-blocks. In other words, it can be seen that the above-described block cipher apparatus 1A performs block ciphers in which the Biqlike property does not hold in one round of processing.

[プログラム]
本実施の形態2におけるプログラムは、コンピュータに、図11に示すステップS21~S29を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2におけるブロック暗号装置1Aとブロック暗号方法とを実現することができる。この場合、コンピュータのプロセッサは、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6として機能し、処理を行なう。
[program]
The program in the second embodiment may be any program that causes a computer to execute steps S21 to S29 shown in FIG. By installing this program in a computer and executing it, the block cipher apparatus 1A and the block cipher method according to the second embodiment can be realized. In this case, the processor of the computer functions as a plaintext division unit 2, a key division unit 3, an encryption unit 4, a key schedule processing unit 5 and a calculation unit 6, and performs processing.

また、本実施の形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータ
が、それぞれ、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6のいずれかとして機能しても良い。
Also, the program in the second embodiment may be executed by a computer system constructed by a plurality of computers. In this case, for example, each computer may function as one of the plaintext division unit 2, the key division unit 3, the encryption unit 4, the key schedule processing unit 5, and the calculation unit 6, respectively.

(変形例)
ここで、本実施の形態2における変形例について説明する。本変形例では、行列演算部53は、係数に0を持たないd×dの行列を用いて、S層部52での非線形変換に対して行列変換する。行列演算部53における行列変換では、入力されるデータサブブロックの1つに、排他的論理和差分の影響があると、出力されるデータサブブロックすべてに必ず差分がでる。行列演算部43における行列変換は、上記の式と同様に表される。
(Modification)
Here, a modification of the second embodiment will be described. In this modified example, the matrix calculator 53 uses a d×d matrix with no coefficients of 0 to perform matrix conversion for the nonlinear conversion in the S layer section 52 . In the matrix conversion in the matrix calculator 53, if one of the input data sub-blocks is affected by the exclusive OR difference, all the output data sub-blocks will always have a difference. Matrix conversion in the matrix calculator 43 is expressed in the same way as the above equation.

[変形例による効果] [Effects of modified example]

図14および図15は、本変形例による暗号化では、Biclique特性が成り立たないことを示す図である。図14(1)において、鍵サブブロックに差分を入れる(図14(A))。実施の形態2では、係数に0を持たないd×dの行列で行列変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図14(B)に示すように、データサブブロックのすべてのブロックに、差分が伝搬する。 14 and 15 are diagrams showing that the Biclike property does not hold in the encryption according to this modified example. In FIG. 14(1), the difference is entered in the key sub-block (FIG. 14(A)). In the second embodiment, matrix transformation is performed using a d×d matrix that does not have 0 in the coefficients. Differences are propagated to all blocks of blocks.

これにより、図14(C)に示すように、鍵サブブロックに差分を入れ、逆方向に暗号化処理を2ラウンド行った場合に、データブロックのすべてに差分がなくても(図14(D))、図15(A)に示すように、データサブブロックには差分が重なるブロック(図15での黒ブロック)が存在する。つまり、上記のブロック暗号装置1Aでは、1ラウンドの処理で、Biqlique特性が成り立たない、ブロック暗号が行われることが分かる。 As a result, as shown in FIG. 14(C), when a difference is added to the key sub-block and two rounds of encryption processing are performed in the opposite direction, even if there is no difference in all data blocks (FIG. 14(D) )), and as shown in FIG. 15(A), data sub-blocks include blocks (black blocks in FIG. 15) where differences overlap. In other words, it can be seen that the above-described block cipher apparatus 1A performs block ciphers in which the Biqlike property does not hold in one round of processing.

なお、暗号化部4の行列演算部43と、鍵スケジュール処理部5の行列演算部53とで用いられるd×dの行列は、第1処理および第2処理を順方向に行ったときの、nビットのデータサブブロックおよびnビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて第1処理および第2処理を逆方向に行ったときのnビットのデータサブブロックおよびnビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在するように、適宜設定すればよい。 Note that the d×d matrix used by the matrix calculation unit 43 of the encryption unit 4 and the matrix calculation unit 53 of the key schedule processing unit 5 is obtained when the first process and the second process are performed in the forward direction. n-bit data sub-blocks, n-bit key sub-blocks, and n-bit data sub-blocks when the first and second processes are performed in the opposite direction by putting the difference into the empty areas of the n key sub-blocks. and n-bit key sub-blocks are appropriately set so that overlapping rounding differences always exist.

(物理構成)
ここで、実施の形態1、2におけるプログラムを実行することによって、ブロック暗号装置を実現するコンピュータについて図16を用いて説明する。図16は、本発明の実施の形態1、2におけるブロック暗号装置を実現するコンピュータの一例を示すブロック図である。
(physical configuration)
Here, a computer that realizes a block cipher apparatus by executing the programs in Embodiments 1 and 2 will be described with reference to FIG. FIG. 16 is a block diagram showing an example of a computer that implements the block cipher apparatus according to Embodiments 1 and 2 of the present invention.

図16に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていても良い。 As shown in FIG. 16, computer 110 includes CPU 111 , main memory 112 , storage device 113 , input interface 114 , display controller 115 , data reader/writer 116 and communication interface 117 . These units are connected to each other via a bus 121 so as to be able to communicate with each other. The computer 110 may include a GPU (Graphics Processing Unit) or an FPGA (Field-Programmable Gate Array) in addition to the CPU 111 or instead of the CPU 111 .

CPU111は、記憶装置113に格納された、実施の形態1、2におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、実施の形態1、2におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお
、実施の形態1、2におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
The CPU 111 expands the programs (codes) according to the first and second embodiments stored in the storage device 113 into the main memory 112 and executes them in a predetermined order to perform various calculations. The main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory). Also, the programs in Embodiments 1 and 2 are provided in a state stored in computer-readable recording medium 120 . The programs in Embodiments 1 and 2 may be distributed over the Internet connected via communication interface 117 .

また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。 Further, as a specific example of the storage device 113, in addition to a hard disk drive, a semiconductor storage device such as a flash memory can be cited. Input interface 114 mediates data transmission between CPU 111 and input devices 118 such as a keyboard and mouse. The display controller 115 is connected to the display device 119 and controls display on the display device 119 .

データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。 Data reader/writer 116 mediates data transmission between CPU 111 and recording medium 120 , reads programs from recording medium 120 , and writes processing results in computer 110 to recording medium 120 . Communication interface 117 mediates data transmission between CPU 111 and other computers.

また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))およびSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体が挙げられる。 Specific examples of the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital); magnetic recording media such as flexible disks; An optical recording medium such as a ROM (Compact Disk Read Only Memory) can be used.

なお、実施の形態1、2におけるブロック暗号装置は、プログラムがインストールされたコンピュータではなく、各部に対応したハードウェアを用いることによっても実現可能である。更に、ブロック暗号装置は、一部がプログラムで実現され、残りの部分がハードウェアで実現されていてもよい。 It should be noted that the block cipher apparatus in the first and second embodiments can also be realized by using hardware corresponding to each part instead of a computer in which a program is installed. Furthermore, the block cipher device may be partly realized by a program and the rest by hardware.

上述した実施の形態1、2の一部又は全部は、以下に記載する(付記1)~(付記8)によって表現することができるが、以下の記載に限定されるものではない。 Part or all of the first and second embodiments described above can be expressed by the following (Appendix 1) to (Appendix 8), but are not limited to the following descriptions.

(付記1)
ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記暗号化部において、
1ラウンドの第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の
出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。
(Appendix 1)
A block cipher device that encrypts plaintext with a block length of b bits using a secret key with a key length of b bits,
a plaintext splitting unit that splits the plaintext into d n-bit data sub-blocks;
a key splitting unit for splitting the private key into d n-bit key sub-blocks;
an encryption unit that repeats r rounds of a first process using a round function on the d n-bit data sub-blocks;
a key schedule processing unit that repeats r rounds of a second process using a bijective function on the d n-bit key sub-blocks;
a calculation unit that calculates the output of the encryption unit and the output of the key schedule processing unit and outputs a ciphertext;
with
In the key schedule processing unit,
In a second process of the first round, the d n-bit key sub-blocks generated by the key dividing unit are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In the encryption unit,
In the first processing of one round, each of the d n-bit data sub-blocks generated by the plaintext dividing unit and each of the d n-bit key sub-blocks generated by the key dividing unit are The result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
The round function is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks.
A block cipher device characterized by:

(付記2)
ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記暗号化部において、
1ラウンド目の第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンドの前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号装置。
(Appendix 2)
A block cipher device that encrypts plaintext with a block length of b bits using a secret key with a key length of b bits,
a plaintext splitting unit that splits the plaintext into d n-bit data sub-blocks;
a key splitting unit for splitting the private key into d n-bit key sub-blocks;
an encryption unit that repeats r rounds of a first process using a round function on the d n-bit data sub-blocks;
a key schedule processing unit that repeats r rounds of second processing using a round function on the d n-bit key sub-blocks;
a calculation unit that calculates the output of the encryption unit and the output of the key schedule processing unit and outputs a ciphertext;
with
In the key schedule processing unit,
In a second process of the first round, the d n-bit key sub-blocks generated by the key dividing unit are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In the encryption unit,
In the first process of the first round, each of the d n-bit data sub-blocks generated by the plaintext dividing unit and each of the d n-bit key sub-blocks generated by the key dividing unit is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i = 2 to r) round first process, the output of the first process of (i-1) round and the output of the second process of (i-1) round are calculated, The result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences;
A block cipher device characterized by:

(付記3)
付記2に記載のブロック暗号装置であって、
前記第2処理のラウンド関数は、入力されるd個のnビットの鍵サブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。
(Appendix 3)
The block cipher device according to appendix 2,
The round function of the second process is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit key sub-blocks to be input to all other data sub-blocks,
A block cipher device characterized by:

(付記4)
付記1から付記3のいずれか一つに記載のブロック暗号装置であって、
前記暗号化部の第1処理で行う演算は、算術加算、算術減算または排他的論理和のいず
れかであり、
前記演算部で行う演算は、算術加算、算術減算または排他的論理和のいずれかである、
ことを特徴とするブロック暗号装置。
(Appendix 4)
The block cipher device according to any one of appendices 1 to 3,
The operation performed in the first process of the encryption unit is either arithmetic addition, arithmetic subtraction or exclusive OR,
The operation performed by the operation unit is either arithmetic addition, arithmetic subtraction or exclusive OR,
A block cipher device characterized by:

(付記5)
ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号方法。
(Appendix 5)
A block cipher method for encrypting plaintext with a block length of b bits using a secret key with a key length of b bits,
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a bijective function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
with
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
The round function is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks.
A block cipher method characterized by:

(付記6)
ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンドの前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンドの第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号方法。
(Appendix 6)
A block cipher method for encrypting plaintext with a block length of b bits using a secret key with a key length of b bits,
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
with
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first round of processing, each of the d n-bit data sub-blocks generated in step (a) and each of the d n-bit key sub-blocks generated in step (b). is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences;
A block cipher method characterized by:

(付記7)
コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、全単射関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックを前記全単射関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、前記全単射関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記ラウンド関数は、入力されるd個のnビットのデータサブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするプログラム。
(Appendix 7)
A program that causes a computer to encrypt plaintext with a block length of b bits using a private key with a key length of b bits,
to the computer;
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a bijective function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
and
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to the bijective function,
In the i (i = 2 to r) round second process, the output of the (i-1) round second process is used as the input of the bijective function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
The round function is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit data sub-blocks to be input to all other data sub-blocks.
A program characterized by

(付記8)
コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするプログラム。
(Appendix 8)
A program that causes a computer to encrypt plaintext with a block length of b bits using a private key with a key length of b bits,
to the computer;
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating a first process using a round function for r rounds on said d n-bit data sub-blocks;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
and
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When comparing the n-bit data sub-block and the n-bit key sub-block when the first process and the second process are performed in reverse, there is always an overlap of rounding differences;
A program characterized by

以上のように、本発明によれば、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができる。 As described above, according to the present invention, a block cipher that is secure against Biclique Cryptanalysis can be configured.

1、1A ブロック暗号装置
2 平文分割部
3 鍵分割部
4 暗号化部
5 鍵スケジュール処理部
6 演算部
41 論理演算部
42 S層部
43 行列演算部
51 全単射計算部
52 S層部
53 行列演算部
1, 1A block cipher device 2 plaintext division unit 3 key division unit 4 encryption unit 5 key schedule processing unit 6 operation unit 41 logic operation unit 42 S layer unit 43 matrix operation unit 51 bijection calculation unit 52 S layer unit 53 matrix Operation part

Claims (4)

ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記暗号化部において、
1ラウンド目の第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンドの前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在するように設定されている
ことを特徴とするブロック暗号装置。
A block cipher device that encrypts plaintext with a block length of b bits using a secret key with a key length of b bits,
a plaintext splitting unit that splits the plaintext into d n-bit data sub-blocks;
a key splitting unit for splitting the private key into d n-bit key sub-blocks;
an encryption unit that repeats one of arithmetic addition, arithmetic subtraction, and exclusive OR using a round function for r rounds of the d n-bit data sub-blocks as a first process;
a key schedule processing unit that repeats r rounds of second processing using a round function on the d n-bit key sub-blocks;
a calculation unit that calculates the output of the encryption unit and the output of the key schedule processing unit and outputs a ciphertext;
with
In the key schedule processing unit,
In a second process of the first round, the d n-bit key sub-blocks generated by the key dividing unit are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In the encryption unit,
In the first process of the first round, each of the d n-bit data sub-blocks generated by the plaintext dividing unit and each of the d n-bit key sub-blocks generated by the key dividing unit is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i = 2 to r) round first process, the output of the first process of (i-1) round and the output of the second process of (i-1) round are calculated, The result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
Furthermore, each of the round function of the first process and the round function of the second process is
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When the n-bit data sub-block and the n-bit key sub- block are compared when the first process and the second process are performed in the reverse direction, an overlap of rounding differences always exists. there is
A block cipher device characterized by:
請求項に記載のブロック暗号装置であって、
前記第2処理のラウンド関数は、入力されるd個のnビットの鍵サブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。
The block cipher apparatus of claim 1 , comprising:
The round function of the second process is a d×d matrix equation that propagates the effect of a rounding difference of 1 in d n-bit key sub-blocks to be input to all other data sub-blocks,
A block cipher device characterized by:
コンピュータが、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンドの前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンドの第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在するように設定されている
ことを特徴とするブロック暗号方法。
A block cipher method in which a computer encrypts plaintext with a block length of b bits using a secret key with a key length of b bits,
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating, as a first process, one of arithmetic addition, arithmetic subtraction, and exclusive OR, using a round function, on the d n-bit data sub-blocks for r rounds;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
with
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first round of processing, each of the d n-bit data sub-blocks generated in step (a) and each of the d n-bit key sub-blocks generated in step (b). is calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
Furthermore, each of the round function of the first process and the round function of the second process is
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When the n-bit data sub-block and the n-bit key sub- block are compared when the first process and the second process are performed in the reverse direction, an overlap of rounding differences always exists. there is
A block cipher method characterized by:
コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在するように設定されている
ことを特徴とするプログラム。
A program that causes a computer to encrypt plaintext with a block length of b bits using a private key with a key length of b bits,
to the computer;
(a) dividing the plaintext into d n-bit data sub-blocks;
(b) dividing the private key into d n-bit key sub-blocks;
(c) repeating, as a first process, one of arithmetic addition, arithmetic subtraction, and exclusive OR, using a round function, on the d n-bit data sub-blocks for r rounds;
(d) repeating a second process using a round function for r rounds of the d n-bit key sub-blocks;
(e) computing the output of step (c) and the output of step (d) to output a ciphertext;
and
In step (d),
In a second process of the first round, the d n-bit key sub-blocks generated in step (b) are input to a round function,
In the i (i = 2 to r) round second processing, the output of the (i-1) round second processing is used as the input of the round function,
In step (c),
In a first process of the first round, each of the d n-bit data sub-blocks generated in step (a) and the d n-bit key sub-blocks generated in step (b) are calculated, and the result of performing nonlinear transformation processing on the calculation result is used as the input of the round function,
In the i (i=2 to r)th round first process, the output of the (i−1)th round first process and the (i−1)th round output of the second process are calculated. , the result of performing nonlinear transformation processing on the operation result is used as the input of the round function,
Each of the round function of the first process and the round function of the second process is a d×d matrix operation formula,
Furthermore, each of the round function of the first process and the round function of the second process is
The n-bit data sub-block and the n-bit key sub-block when the first processing and the second processing are performed in the forward direction, and the difference are stored in the free areas of the n key sub-blocks, and the When the n-bit data sub-block and the n-bit key sub- block are compared when the first process and the second process are performed in the reverse direction, an overlap of rounding differences always exists. there is
A program characterized by
JP2019028896A 2019-02-20 2019-02-20 Block cipher device, block cipher method and program Active JP7244060B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019028896A JP7244060B2 (en) 2019-02-20 2019-02-20 Block cipher device, block cipher method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019028896A JP7244060B2 (en) 2019-02-20 2019-02-20 Block cipher device, block cipher method and program

Publications (2)

Publication Number Publication Date
JP2020134730A JP2020134730A (en) 2020-08-31
JP7244060B2 true JP7244060B2 (en) 2023-03-22

Family

ID=72262977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019028896A Active JP7244060B2 (en) 2019-02-20 2019-02-20 Block cipher device, block cipher method and program

Country Status (1)

Country Link
JP (1) JP7244060B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072054A (en) 2004-09-03 2006-03-16 Sony Corp Encryption processing device, encryption processing method, and computer program
JP2015191107A (en) 2014-03-28 2015-11-02 ソニー株式会社 Encryption processing device, encryption processing method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072054A (en) 2004-09-03 2006-03-16 Sony Corp Encryption processing device, encryption processing method, and computer program
JP2015191107A (en) 2014-03-28 2015-11-02 ソニー株式会社 Encryption processing device, encryption processing method, and program

Also Published As

Publication number Publication date
JP2020134730A (en) 2020-08-31

Similar Documents

Publication Publication Date Title
JP4961909B2 (en) Cryptographic processing apparatus, cryptographic processing method, and computer program
JP4787519B2 (en) Data encryption processing apparatus to which masking method is applied, AES encryption system, and AES encryption method
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
JP5268609B2 (en) Cryptographic processing apparatus and calculation method
KR102397579B1 (en) Method and apparatus for white-box cryptography for protecting against side channel analysis
JP6575532B2 (en) Encryption device, decryption device, encryption processing system, encryption method, decryption method, encryption program, and decryption program
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
US20130243191A1 (en) Encryption key generating apparatus
US8526602B2 (en) Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium
JP5852518B2 (en) Authentication encryption device, authentication decryption device, and program
US20080192924A1 (en) Data encryption without padding
Arshad et al. New extension of data encryption standard over 128-bit key for digital images
WO2020110800A1 (en) Encryption system, encryption device, decoding device, encryption method, encryption method, decoding method, and program
US8538017B2 (en) Encryption device
JP5202350B2 (en) Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program
CN112740618A (en) Signature device, verification device, signature system, signature method, signature program, verification method, and verification program
EP3483867A1 (en) Secret computation system, secret computation device, secret computation method, and program
JP7244060B2 (en) Block cipher device, block cipher method and program
WO2022254511A1 (en) Encryption apparatus, method, and program
JP6890589B2 (en) Computational devices and methods
JP6203387B2 (en) Encryption device, storage system, decryption device, encryption method, decryption method, encryption program, and decryption program
JP5354914B2 (en) Encryption processing device, decryption processing device, and program
JP5578422B2 (en) ENCRYPTED COMMUNICATION SYSTEM, TRANSMISSION DEVICE, RECEPTION DEVICE, ENCRYPTION / DECRYPTION METHOD, AND PROGRAM THEREOF
WO2022254513A1 (en) Cryptographic device, method, and program
WO2022239163A1 (en) Authenticated encryption device, authenticated decryption device, authenticated cryptograph system, method and computer readable medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230302

R151 Written notification of patent or utility model registration

Ref document number: 7244060

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151