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

Block cipher device, block cipher method, and program Download PDF

Info

Publication number
JP2020134730A
JP2020134730A JP2019028896A JP2019028896A JP2020134730A JP 2020134730 A JP2020134730 A JP 2020134730A JP 2019028896 A JP2019028896 A JP 2019028896A JP 2019028896 A JP2019028896 A JP 2019028896A JP 2020134730 A JP2020134730 A JP 2020134730A
Authority
JP
Japan
Prior art keywords
round
key
subblocks
bit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019028896A
Other languages
Japanese (ja)
Other versions
JP7244060B2 (en
Inventor
照夫 齊藤
Teruo Saito
照夫 齊藤
真紀 茂
Maki Shige
真紀 茂
博靖 久保
Hiroyasu Kubo
博靖 久保
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

Abstract

To provide a block cipher device, a block cipher method and a program with which it is possible to construct a safe block cipher for biclique cryptanalysis.SOLUTION: Provided is a block cipher device for encrypting a plain text in block length of n bits using a secret key in key length of b bits. A first process using a round function is repeatedly performed r rounds, by an encryption unit 4, on n-bit data subblocks into which the plain text is divided. A second process using a bijective function is repeatedly performed r rounds, by a key scheduling unit 5, on d n-bit key subblocks into which the secret key is divided. The output of the encryption unit 4 and the output of the key scheduling unit 5 are computed, and a cipher text is outputted. The round function is a d×d matrix arithmetic expression with which the influence of a rounding difference of 1 in the inputted d n-bit data subblocks is spread to all other data subblocks.SELECTED DRAWING: Figure 2

Description

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

ブロック暗号に対する解読法の一つとして中間一致攻撃が知られている。中間一致攻撃とは、ブロック暗号を二つのsub−cipherに分割し、平文側から計算した中間値と暗号文側から計算した中間値uの一致を確認することで鍵の候補を絞り込む解読法である。近年、中間一致攻撃はハッシュ関数への原像攻撃として応用され、著しく改良が進んでいる。従来の中間一致攻撃の改良手法として、Biclique Cryptanalysisと呼ばれるものがある(例えば、非特許文献1参照)。Biclique Cryptanalysisは、秘密鍵をBicliqueと呼ばれる特性を満たすグループに分け効率的に中間一致攻撃を行う攻撃である(例えば、非特許文献2参照)。 Meet-in-the-middle attack is known as one of the decryption methods for block ciphers. A meet-in-the-middle attack is a decryption method that divides a block cipher into two sub-ciphers and narrows down key candidates by checking the match between the intermediate value calculated from the plaintext side and the intermediate value u calculated from the ciphertext side. is there. In recent years, met-in-the-middle attacks have been applied as preimage attacks on hash functions and have been significantly improved. As an improved method of the conventional met-in-the-middle attack, there is a method called Biclique Cryptanalysis (see, for example, Non-Patent Document 1). Biclique Cryptanalysis is an attack in which a private key is divided into a group satisfying a characteristic called Biclique and an intermediate match attack is efficiently performed (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, so far, no method for constructing a secure block cipher for Biclique Cryptanalysis has been proposed, and it has not been possible to construct a secure block cipher.

そこで、本発明の目的の一例は、Biclique Cryptanalysisに対して安全なブロック暗号を構成することができるブロック暗号装置、ブロック暗号方法およびプログラムを提供することにある。 Therefore, an example of an object of the present invention is to provide a block cipher device, a block cipher method, and a program capable of constructing a secure block cipher for 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の行列演算式である、ことを特徴とする。
In order to achieve the above object, the block cipher device in one aspect of the present invention is a block cipher device that encrypts a plaintext having a block length of b bits using a private key having a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the bijective function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key division unit are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In the encryption unit
In the first process of one round, each of the d n-bit data subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit are combined. The result of calculation and non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks. ..

また、上記目的を達成するため、本発明の一側面におけるブロック暗号装置は、ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
Further, in order to achieve the above object, the block cipher device in one aspect of the present invention is a block cipher device that encrypts a plaintext having a block length of b bits using a private key having a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the round function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key dividing unit are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round 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 subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit. Is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences. To 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の行列演算式である、することを特徴とする。
Further, in order to achieve the above object, the block cipher method in one aspect of the present invention is a block cipher method for encrypting a plaintext having a block length of b bits and using a private key having a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is characterized in that it is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks. To 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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
Further, in order to achieve the above object, the block cipher method in one aspect of the present invention is a block cipher method for encrypting a plaintext having a block length of b bits and using a private key having a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of one round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b), respectively. And the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences. To 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の行列演算式である、することを特徴とする。
Further, in order to achieve the above object, the program in one aspect of the present invention is a program that causes a computer to encrypt a plaintext having a block length of b bits and a private key having a key length of b bits.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is characterized in that it is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks. To 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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
Further, in order to achieve the above object, the program in one aspect of the present invention is a program that causes a computer to encrypt a plaintext having a block length of b bits and a private key having a key length of b bits.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences. To do.

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

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

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

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

ブロック暗号装置1は、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いてブロック暗号化する装置である。図1に示すように、ブロック暗号装置1は、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。 The block cipher device 1 is a device that blocks-encrypts a plaintext having a block length of b bits using a private key having 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 division unit 2 divides the b-bit plaintext input to the block cipher device 1 into d n-bit data subblocks.

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

暗号化部4は、平文分割部2によって生成されたd個のnビットのデータサブブロックに対し、ラウンド関数を用いた第1処理をrラウンド繰り返す。 The encryption unit 4 repeats the first process using the round function for r rounds with respect to the d n-bit data subblocks 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 the second processing using the bijective function for r rounds with respect to the d n-bit key subblocks generated by the key dividing unit 3. In this key schedule processing unit, in the second processing of the first round, d n-bit key subblocks generated by the key dividing unit 3 are input to the bijective function. Further, in the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.

演算部6は、暗号化部4の出力と、鍵スケジュール処理部5の出力とを演算して、暗号文を出力する。 The 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 first round of the encryption unit 4, in each of the d n-bit data subblocks generated by the plaintext division unit 2 and the d n-bit keys generated by the key division unit 3. Calculate with each subblock. The result of performing non-linear conversion processing on this calculation result is used as the input of the round function. Further, in the first process of the i (i = 2 to r) th round, the output of the first process of the (i-1) th round and the (i-1) th round executed by the key schedule processing unit 5 are performed. The output of the second process is calculated. The result of performing non-linear conversion processing on this calculation result is used as the 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 spreads the influence of the rounding difference of 1 in the input n-bit data subblock to all other data subblocks. The operation 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 device 1 of the first embodiment can configure a block cipher that is secure against Biclique Cryptanalysis.

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

図2は、本発明の実施の形態1におけるブロック暗号装置1でのアルゴリズムを説明する図である。ブロック暗号装置1は、上述した、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。ブロック暗号装置1には、図2に示すように、平文と秘密鍵とが入力される。実施の形態1では、平文のブロック長はbビットである。また、秘密鍵は、平文のブロック長と同じbビットの鍵長を有する。 FIG. 2 is a diagram illustrating an algorithm in the block cipher device 1 according to the first embodiment of the present invention. The block cipher device 1 includes the above-mentioned plaintext division unit 2, a key division unit 3, an encryption unit 4, a key schedule processing unit 5, and a calculation unit 6. As shown in FIG. 2, a plain text and a private key are input to the block cipher device 1. In the first embodiment, the plaintext block length is b bits. The private key has a b-bit key length that 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 subblocks. Further, the key dividing unit 3 divides the private key input to the block cipher device 1 into d n-bit key subblocks.

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

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

暗号化部4は、論理演算部41と、S層部42と、行列演算部43とを有している。 The encryption unit 4 has a logical 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 calculates the exclusive OR of the input d n-bit data subblocks and the d n-bit key subblocks. The operation performed by the logical operation unit 41 may be arithmetic addition or arithmetic subtraction.

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

行列演算部43は、d×dの行列を用いた演算処理を行う。行列演算部43は、MDS(Maximum Distance Separation)変換によるデータ撹拌として機能する。MDS変換は、MDS行列を用いた変換である。行列演算部43におけるMDS変換では、入力されるデータサブブロックの1つに、2つのデータの排他的論理和差分の影響があると、その差分の影響が、出力されるデータサブブロックすべてに波及する。行列演算部43におけるMDS変換は、以下の式で表される。
The matrix calculation unit 43 performs calculation processing using a d × d matrix. The matrix calculation unit 43 functions as data agitation by MDS (Maximum Distance Separation) conversion. The MDS transformation is a transformation using an MDS matrix. In the MDS conversion in the matrix calculation unit 43, if one of the input data subblocks is affected by the exclusive OR difference of the two data, the effect of the difference spreads to all the output data subblocks. To do. The MDS conversion in the matrix calculation unit 43 is expressed by the following equation.

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

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

2ラウンド目以降の第1処理では、論理演算部41には、直前のラウンドにおいて行列演算部43により演算された結果、および、直前のラウンドにおいて全単射計算部51により計算された結果が入力される。 In the first processing after the second round, the logical operation unit 41 inputs the result calculated by the matrix operation unit 43 in the immediately preceding round and the result calculated by the bijection calculation unit 51 in the immediately preceding round. Will be done.

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

[動作説明]
次に、本発明の実施の形態1におけるブロック暗号装置1の動作について図3を用いて説明する。図3は、本発明の実施の形態1におけるブロック暗号装置1の動作を示すフロー図である。以下の説明においては、適宜図1および図2を参酌する。また、本実施の形態1では、ブロック暗号装置1を動作させることによって、ブロック暗号方法が実施される。よって、本実施の形態におけるブロック暗号方法の説明は、以下のブロック暗号装置1の動作説明に代える。
[Operation description]
Next, the operation of the block cipher device 1 according to the first embodiment of the present invention will be described with reference to FIG. FIG. 3 is a flow chart showing the operation of the block cipher device 1 according to the first embodiment of the present invention. In the following description, FIGS. 1 and 2 will be referred to as appropriate. 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 the present embodiment will be replaced with the following description of the operation of the block cipher device 1.

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

上述の前提において、図3に示すように、平文分割部2は、bビットの平文を、d個のnビットのデータサブブロックに分割する(S1)。鍵分割部3は、bビットの秘密鍵をd個のnビットの鍵サブブロックに分割する(S2)。 Under the above premise, as shown in FIG. 3, the plaintext division unit 2 divides the b-bit plaintext into d n-bit data subblocks (S1). The key division unit 3 divides the b-bit private key into d n-bit key subblocks (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 is exclusive with the d n-bit data subblocks generated in S1 and the d n-bit key subblocks generated in S2. The logical sum is calculated (S3). Next, the S-layer unit 42 of the encryption unit 4 performs non-linear conversion on the operation result of the exclusive OR of S3 based on the stored conversion table (S4). Then, the matrix calculation unit 43 of the encryption unit 4 performs the MDS conversion using the d × d matrix with respect to the non-linear conversion of S4 (S5). Further, the bijective calculation unit 51 of the key schedule processing unit 5 is S2.
A calculation using a bijective function is performed on the d n-bit key subblocks 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 rth round which is the final round (S7: NO), the processing of S3 to S6 is repeated. In the second and subsequent rounds, the logical operation unit 41 of the encryption unit 4 calculates the exclusive OR of the conversion result of S5 and the calculation result of S6 (S3). Further, the bijective calculation unit 51 of the key schedule processing unit 5 performs a calculation using the bijective function with respect to the calculation result of S6 in the immediately preceding round (S6).

S3〜S6の処理が、rラウンド目の処理であれば(S7:YES)、演算部6は、最終ラウンドでのS5の変換結果と、最終ラウンドでのS6の計算結果との排他的倫理和を演算する(S8)。 If the processing of S3 to S6 is the processing of the rth round (S7: YES), the arithmetic 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特性の構成方法について説明する。
[Effect of Embodiment 1]
With the block cipher device 1 having the above configuration, plaintext can be encrypted so that the Biclique characteristic is not established. In the following description, it is shown that the plaintext can be encrypted so that the Biclique characteristic does not hold by the above algorithm. First, a method of configuring the Biclique characteristic 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 method of configuring the Biclique characteristic. FIG. 4 shows the difference (color or diagonal line) of the data when the exclusive OR with the private key is calculated for the plaintext and each processing of “SB”, “SR”, and “MC” is performed. Indicates the state in which the block) transitions. The difference is the difference between two plaintext data, and the difference by exclusive OR is often used. In FIG. 4, the difference is treated as a rounded difference in n-bit units. “SB” is a process of performing a non-linear conversion. "SR" is a process of changing the order. "MC" is a process of performing a linear conversion. Further, (1) in FIG. 4 shows a state in which the data difference transitions in the forward direction (from the input direction to the output direction). FIG. 4 (2) 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), a difference is inserted in the key subblock (FIG. 4 (A)). Then, the encryption process is performed in the forward direction (two rounds in FIG. 4). FIG. 4B shows the propagation result of the difference after performing the two-round processing. In FIG. 4 (2), a difference is inserted in the free area of the key subblock so as not to overlap with the difference of the key subblock shown in FIG. 4 (B) (FIG. 4 (C)). Then, the encryption process is performed in the opposite direction for two rounds. FIG. 4D shows the propagation result of the difference after performing the two-round processing in the opposite direction. In FIG. 4, how the difference spreads depends on the algorithm.

図5は、図4での差分の重なりが遷移する状態を示す図である。図5に示すように、データサブブロックには差分の重なりがあるブロックがない。 FIG. 5 is a diagram showing a state in which the overlap of the differences in FIG. 4 transitions. As shown in FIG. 5, there are no blocks with overlapping differences in the data subblocks.

差分はブロック暗号の安全性を評価する上で、重要な指標として用いられる。差分に偏りがあると、そのブロック暗号は、2つの平文を簡単に見つけることができるとして安全ではないと評価される。一方、2つの平文を見つけることが困難であると、そのブロック暗号は安全であると評価される。なお、差分がどのように伝播するかは、アルゴリズムに依存して決まる。つまり、図5に示すように、データサブブロックには差分の重なりがないと、Biqlique特性が成り立ち、安全ではないブロック暗号であると評価される。 The difference is used as an important index in evaluating the security of the block cipher. If the difference is biased, the block cipher is evaluated as insecure as the two plaintexts can be easily found. On the other hand, if it is difficult to find the two plaintexts, the block cipher is evaluated as secure. How the difference propagates depends on the algorithm. That is, as shown in FIG. 5, if there is no overlap of differences in the data subblocks, the Biqlique characteristic is established, and it is evaluated as an insecure block cipher.

図6および図7は、本発明の実施の形態1におけるブロック暗号装置による暗号化では、Biclique特性が成り立たないことを示す図である。図6の(1)は、順方向に
データの差分が遷移する状態を示す。図6の(2)は、逆方向にデータの差分が遷移する状態を示す。
6 and 7 are diagrams showing that the Biclique characteristic does not hold in the encryption by the block cipher device according to the first embodiment of the present invention. FIG. 6 (1) shows a state in which the data difference changes in the forward direction. FIG. 6 (2) 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), a difference is inserted in the key subblock (FIG. 6 (A)). The key length of the key subblock must be the same as the block length of the data subblock so that the difference between the key subblocks always affects the data subblock. In the first embodiment, since the MDS conversion is performed, when the second round of encryption processing is performed in the forward direction, the difference propagates to all the blocks of the data subblocks as shown in FIG. 6B.

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

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

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

また、本実施の形態1におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータが、それぞれ、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6のいずれかとして機能しても良い。 Further, 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 example)
Here, a modified example of the first embodiment will be described. In this modification, the matrix calculation unit 43 uses a d × d matrix having no coefficient of 0 to perform a matrix conversion for the non-linear transformation in the S layer unit 42. In the matrix conversion in the matrix operation unit 43, if one of the input data subblocks is affected by the exclusive OR difference by the logical operation unit 41, the difference always appears in all the output data subblocks. The matrix transformation in the matrix calculation unit 43 is expressed in the same manner as the above equation.

[変形例による効果]
図8および図9は、本変形例による暗号化では、Biclique特性が成り立たないことを示す図である。図8の(1)は、順方向にデータの差分が遷移する状態を示す。図8の(2)は、逆方向にデータの差分が遷移する状態を示す。
[Effect of modification]
8 and 9 are diagrams showing that the Biclique characteristic does not hold in the encryption according to this modification. FIG. 8 (1) shows a state in which the data difference changes in the forward direction. FIG. 8 (2) 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), a difference is inserted in the key subblock (FIG. 8 (A)). In this modification, since the matrix conversion is performed with a d × d matrix having no coefficient 0, when the second round of encryption processing is performed in the forward direction, as shown in FIG. 8B, the data subblock The difference propagates to all blocks of.

これにより、図8(C)に示す鍵サブブロックの差分と重ならないように、鍵サブブロックに差分を入れ(図8(D))、逆方向に暗号化処理を2ラウンド行った場合に、データブロックのすべてに差分がなくても(図8(E))、図9(A)に示すように、データサブブロックには差分が重なるブロック(図9での黒ブロック)が存在する。つまり、上記のブロック暗号装置1では、1ラウンドの処理で、Biqlique特性が成り立たない、ブロック暗号が行われることが分かる。 As a result, when a difference is inserted in the key subblock so as not to overlap with the difference of the key subblock shown in FIG. 8 (C) (FIG. 8 (D)) and the encryption process is performed in the opposite direction for two rounds, Even if there is no difference in all of the data blocks (FIG. 8 (E)), as shown in FIG. 9 (A), there are blocks in which the differences overlap (black blocks in FIG. 9). That is, it can be seen that in the above-mentioned block cipher device 1, block cipher is performed in one round of processing, in which the Biqlique characteristic is not established.

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

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

鍵スケジュール処理部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 the second process using the round function for r rounds for d n-bit key subblocks. In the second processing of the first round in the key schedule processing unit 5, d n-bit key subblocks generated by the key dividing unit 3 are input to the round function. Further, in the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.

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

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

行列演算部53は、d×dの行列を用いた演算処理を行う。行列演算部53は、MDS(Maximum Distance Separation)変換によるデータ撹拌として機能する。MDS変換は、MDS行列を用いた変換である。 The matrix calculation unit 53 performs calculation processing using a d × d matrix. The matrix calculation unit 53 functions as data agitation by MDS (Maximum Distance Separation) conversion. The MDS transformation is a transformation 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 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 appropriately combined so that the Biqlique characteristic described in the first embodiment is not satisfied. Set. In the second embodiment, the d × d matrix used in the matrix calculation unit 53 is used as the MDS matrix.

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

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

上述の前提において、図11に示すように、平文分割部2は、bビットの平文を、d個のnビットのデータサブブロックに分割する(S21)。鍵分割部3は、bビットの秘密鍵をd個のnビットの鍵サブブロックに分割する(S22)。 Under the above premise, as shown in FIG. 11, the plaintext division unit 2 divides the b-bit plaintext into d n-bit data subblocks (S21). The key division unit 3 divides the b-bit private key into d n-bit key subblocks (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 is exclusive with the d n-bit data subblocks generated in S21 and the d n-bit key subblocks generated in S22. The logical sum is calculated (S23). Next, the S-layer unit 42 of the encryption unit 4 performs non-linear conversion on the operation result of the exclusive OR of S23 based on the stored conversion table (S24). Then, the matrix calculation unit 43 of the encryption unit 4 performs a matrix conversion using a d × d matrix with respect to the non-linear conversion of S24 (S24). Further, the S-layer unit 52 of the key schedule processing unit 5 performs non-linear conversion on the d n-bit key subblocks 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 with respect to the non-linear 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. In the second and subsequent rounds, the logical operation unit 41 of the encryption unit 4 calculates the exclusive OR of the conversion result of S25 and the conversion result of S27 (S23). Further, the S layer unit 52 of the key schedule processing unit 5 performs all non-linear conversion on the conversion result of S27 in the immediately preceding round (S26).

S23〜S27の処理が、rラウンド目の処理であれば(S28:YES)、演算部6は、最終ラウンドでのS25の変換結果と、最終ラウンドでのS27の変換結果との排他的倫理和を演算する(S29)。 If the processing of S23 to S27 is the processing of the rth round (S28: YES), the arithmetic 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特性が成り立たないことを示す図である。
[Effect in Embodiment 2]
12 and 13 are diagrams showing that the Biclique characteristic does not hold in the encryption by the block cipher device 1A in the second embodiment.

図12(1)において、鍵サブブロックに差分を入れる(図12(A))。実施の形態2では、鍵サブブロックに対してMDS変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図12(B)に示すように、鍵サブブロックのすべてのブロックに、差分が伝搬する。 In FIG. 12 (1), a difference is inserted in the key subblock (FIG. 12 (A)). In the second embodiment, since the MDS conversion is performed on the key subblock, when the second round of encryption processing is performed in the forward direction, as shown in FIG. 12B, all the blocks of the key subblock are displayed. , 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 inserted in the key subblock and the encryption process is performed in the opposite direction for two rounds, even if there is no difference in all of the data blocks (FIG. 12 (D). )), As shown in FIG. 13A, there is a block in which the differences overlap (black block in FIG. 13) in the key subblock. That is, it can be seen that in the above-mentioned block cipher device 1A, block cipher is performed in one round of processing, in which the Biqlique characteristic is not satisfied.

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

また、本実施の形態2におけるプログラムは、複数のコンピュータによって構築されたコンピュータシステムによって実行されても良い。この場合は、例えば、各コンピュータ
が、それぞれ、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6のいずれかとして機能しても良い。
Further, 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 example)
Here, a modified example of the second embodiment will be described. In this modification, the matrix calculation unit 53 uses a d × d matrix having no 0 in the coefficient to perform matrix conversion for the non-linear transformation in the S layer unit 52. In the matrix conversion in the matrix calculation unit 53, if one of the input data subblocks is affected by the exclusive OR difference, the difference is always generated in all the output data subblocks. The matrix transformation in the matrix calculation unit 43 is expressed in the same manner as the above equation.

[変形例による効果] [Effect of modification]

図14および図15は、本変形例による暗号化では、Biclique特性が成り立たないことを示す図である。図14(1)において、鍵サブブロックに差分を入れる(図14(A))。実施の形態2では、係数に0を持たないd×dの行列で行列変換を行うため、順方向に2ラウンド目の暗号化処理を行うと、図14(B)に示すように、データサブブロックのすべてのブロックに、差分が伝搬する。 14 and 15 are diagrams showing that the Biclique characteristic does not hold in the encryption according to this modification. In FIG. 14 (1), a difference is inserted in the key subblock (FIG. 14 (A)). In the second embodiment, since the matrix conversion is performed with a d × d matrix having no coefficient 0, when the second round of encryption processing is performed in the forward direction, as shown in FIG. 14B, the data sub Differences propagate to all blocks of the block.

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

なお、暗号化部4の行列演算部43と、鍵スケジュール処理部5の行列演算部53とで用いられるd×dの行列は、第1処理および第2処理を順方向に行ったときの、nビットのデータサブブロックおよびnビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて第1処理および第2処理を逆方向に行ったときのnビットのデータサブブロックおよびnビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在するように、適宜設定すればよい。 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 the same as when the first processing and the second processing are performed in the forward direction. An n-bit data subblock and an n-bit key subblock, and an n-bit data subblock when the first and second processes are performed in the opposite directions by putting the difference in the free area of the n key subblocks. And when comparing with the n-bit key subblock, it may be set appropriately so that the overlap of the rounding difference always exists.

(物理構成)
ここで、実施の形態1、2におけるプログラムを実行することによって、ブロック暗号装置を実現するコンピュータについて図16を用いて説明する。図16は、本発明の実施の形態1、2におけるブロック暗号装置を実現するコンピュータの一例を示すブロック図である。
(Physical configuration)
Here, a computer that realizes a block cipher device by executing the programs of the first and second embodiments will be described with reference to FIG. FIG. 16 is a block diagram showing an example of a computer that realizes the block cipher device according to the first and second embodiments 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, the computer 110 includes a CPU 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. Each of these parts is connected to each other via a bus 121 so as to be capable of data communication. The computer 110 may include a GPU (Graphics Processing Unit) or an FPGA (Field-Programmable Gate Array) in addition to the CPU 111 or in place 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) of 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 operations. The main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory). Further, the programs according to the first and second embodiments are provided in a state of being stored in a computer-readable recording medium 120. The programs in the first and second embodiments may be distributed on the Internet connected via the communication interface 117.

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

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

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

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

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

(付記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 that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the bijective function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key division unit are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In the encryption unit
In the first process of one round, each of the d n-bit data subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit are combined. The result of calculation and non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A block cipher device characterized by that.

(付記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 that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the round function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key dividing unit are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round 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 subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit. Is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A block cipher device characterized by that.

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

(付記4)
付記1から付記3のいずれか一つに記載のブロック暗号装置であって、
前記暗号化部の第1処理で行う演算は、算術加算、算術減算または排他的論理和のいず
れかであり、
前記演算部で行う演算は、算術加算、算術減算または排他的論理和のいずれかである、
ことを特徴とするブロック暗号装置。
(Appendix 4)
The block cipher device according to any one of Supplementary note 1 to Supplementary note 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 calculation unit is either arithmetic addition, arithmetic subtraction, or exclusive OR.
A block cipher device characterized by that.

(付記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 that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A block cipher method characterized by that.

(付記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 that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of one round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b), respectively. And the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A block cipher method characterized by that.

(付記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.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A program characterized by that.

(付記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.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A program characterized by that.

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

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

Claims (8)

ブロック長が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の行列演算式である、
ことを特徴とするブロック暗号装置。
A block cipher that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the bijective function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key division unit are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In the encryption unit
In the first process of one round, each of the d n-bit data subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit are combined. The result of calculation and non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A block cipher device characterized by that.
ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号装置。
A block cipher that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
A plaintext division unit that divides the plaintext into d n-bit data subblocks,
A key dividing unit that divides the private key into d n-bit key subblocks,
An encryption unit that repeats the first process using a round function for r rounds on the d n-bit data subblocks.
A key schedule processing unit that repeats the second processing using the round function for r rounds for the d n-bit key subblocks.
An arithmetic 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 the second process of the first round, the d n-bit key subblocks generated by the key dividing unit are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round 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 subblocks generated by the plaintext division unit and each of the d n-bit key subblocks generated by the key division unit. Is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A block cipher device characterized by that.
請求項2に記載のブロック暗号装置であって、
前記第2処理のラウンド関数は、入力されるd個のnビットの鍵サブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。
The block cipher device according to claim 2.
The round function of the second process is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit key subblocks to all other data subblocks.
A block cipher device characterized by that.
請求項1から請求項3のいずれか一つに記載のブロック暗号装置であって、
前記暗号化部の第1処理で行う演算は、算術加算、算術減算または排他的論理和のいずれかであり、
前記演算部で行う演算は、算術加算、算術減算または排他的論理和のいずれかである、
ことを特徴とするブロック暗号装置。
The block cipher device according to any one of claims 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 calculation unit is either arithmetic addition, arithmetic subtraction, or exclusive OR.
A block cipher device characterized by that.
ブロック長が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の行列演算式である、
ことを特徴とするブロック暗号方法。
A block cipher method that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). The result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A block cipher method characterized by that.
ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号方法。
A block cipher method that encrypts plaintext with a block length of b bits using a private key with a key length of b bits.
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
With
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of one round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b), respectively. And the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A block cipher method characterized by that.
コンピュータに、ブロック長が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の行列演算式である、
ことを特徴とするプログラム。
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.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the bijective function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the bijective function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the bijective function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function is a d × d matrix operation formula that spreads the influence of the rounding difference of 1 in the input d n-bit data subblocks to all other data subblocks.
A program characterized by that.
コンピュータに、ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするプログラム。
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.
On the computer
(A) A step of dividing the plaintext into d n-bit data subblocks, and
(B) A step of dividing the private key into d n-bit key subblocks, and
(C) A step of repeating the first process using the round function for r rounds on the d n-bit data subblocks.
(D) A step of repeating the second process using the round function for r rounds for the d n-bit key subblocks.
(E) A step of calculating the output of the step (c) and the output of the step (d) and outputting a ciphertext.
To execute,
In step (d)
In the second process of the first round, the d n-bit key subblocks generated in the step (b) are used as the input of the round function.
In the second process of the i (i = 2 to r) round, the output of the second process of the (i-1) round is used as the input of the round function.
In step (c)
In the first process of the first round, each of the d n-bit data subblocks generated in the step (a) and the d n-bit key subblocks generated in the step (b). Each of them is calculated, and the result of performing non-linear conversion processing on the calculation result is used as the input of the round function.
In the first process of the i (i = 2 to r) round, the output of the first process of the (i-1) round and the output of the second process of the (i-1) round are calculated. , The result of performing non-linear conversion processing on the operation result is used as the input of the round function.
The round function of the first process and the round function of the second process are d × d matrix operation expressions, respectively.
When the first process and the second process are performed in the forward direction, the n-bit data subblock, the n-bit key subblock, and the difference are put in the free area of the n key subblocks. Comparing the n-bit data subblock and the n-bit key subblock when the first process and the second process are performed in the opposite directions, there is always an overlap of rounding differences.
A program characterized by that.
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 true JP2020134730A (en) 2020-08-31
JP7244060B2 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
JP7244060B2 (en) 2023-03-22

Similar Documents

Publication Publication Date Title
JP5402632B2 (en) Common key block encryption apparatus, common key block encryption method, and program
US9515818B2 (en) Multi-block cryptographic operation
JP5229315B2 (en) Encryption device and built-in device equipped with a common key encryption function
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
JP5268609B2 (en) Cryptographic processing apparatus and calculation method
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
RU2603550C2 (en) Data processing device, data processing method, and program
KR102397579B1 (en) Method and apparatus for white-box cryptography for protecting against side channel analysis
US9692592B2 (en) Using state reordering to protect against white box attacks
WO2016088453A1 (en) Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
US20120307997A1 (en) Encryption device
CN111066077B (en) Encryption device, encryption method, decryption device, and decryption method
US20130243191A1 (en) Encryption key generating apparatus
US8526602B2 (en) Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium
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
WO2015146430A1 (en) Encryption processing device, and encryption processing method and program
JP6187624B1 (en) Information processing apparatus, information processing method, and program
WO2022254511A1 (en) Encryption apparatus, method, and program
JP7244060B2 (en) Block cipher device, block cipher method and program
JP6203387B2 (en) Encryption device, storage system, decryption device, encryption method, decryption method, encryption program, and decryption program
KR101971001B1 (en) A method of generating random number based on block cipher with whitebox encryption and apparatus thereof
JP5354914B2 (en) Encryption processing device, decryption processing device, and program
WO2022254513A1 (en) Cryptographic device, method, and program
JP5500277B2 (en) Encryption device and built-in device equipped with a common key encryption function

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