JP7244060B2 - ブロック暗号装置、ブロック暗号方法およびプログラム - Google Patents
ブロック暗号装置、ブロック暗号方法およびプログラム Download PDFInfo
- Publication number
- JP7244060B2 JP7244060B2 JP2019028896A JP2019028896A JP7244060B2 JP 7244060 B2 JP7244060 B2 JP 7244060B2 JP 2019028896 A JP2019028896 A JP 2019028896A JP 2019028896 A JP2019028896 A JP 2019028896A JP 7244060 B2 JP7244060 B2 JP 7244060B2
- Authority
- JP
- Japan
- Prior art keywords
- round
- key
- blocks
- sub
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
前記平文を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の行列演算式である、ことを特徴とする。
前記平文を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)前記平文を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)前記平文を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)前記平文を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)前記平文を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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、することを特徴とする。
以下、本発明の実施の形態1におけるブロック暗号装置およびブロック暗号方法について、図1~図9を参照しながら説明する。
図1は、本発明の実施の形態1におけるブロック暗号装置の構成図である。
列演算式である。また、暗号化部4の第1処理で実行される演算は、算術加算、算術減算または排他的論理和のいずれかである。
次に、本発明の実施の形態1におけるブロック暗号装置1の動作について図3を用いて説明する。図3は、本発明の実施の形態1におけるブロック暗号装置1の動作を示すフロー図である。以下の説明においては、適宜図1および図2を参酌する。また、本実施の形態1では、ブロック暗号装置1を動作させることによって、ブロック暗号方法が実施される。よって、本実施の形態におけるブロック暗号方法の説明は、以下のブロック暗号装置1の動作説明に代える。
で生成されたd個のnビットの鍵サブブロックに対して、全単射関数を用いた計算を行う(S6)。
以上の構成のブロック暗号装置1により、Biclique特性が成り立たないように、平文を暗号化することができる。以下の説明では、上記アルゴリズムにより、Biclique特性が成り立たないように、平文を暗号化することができたことを示す。まず、Biclique特性の構成方法について説明する。
データの差分が遷移する状態を示す。図6の(2)は、逆方向にデータの差分が遷移する状態を示す。
本実施の形態1におけるプログラムは、コンピュータに、図3に示すステップS1~S8を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態1におけるブロック暗号装置1とブロック暗号方法とを実現することができる。この場合、コンピュータのプロセッサは、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6として機能し、処理を行なう。
ここで、本実施の形態1における変形例について説明する。本変形例では、行列演算部43は、係数に0を持たないd×dの行列を用いて、S層部42での非線形変換に対して行列変換する。行列演算部43における行列変換では、入力されるデータサブブロックの1つに、論理演算部41による排他的論理和差分の影響があると、出力されるデータサブブロックすべてに必ず差分がでる。行列演算部43における行列変換は、上記の式と同様に表される。
図8および図9は、本変形例による暗号化では、Biclique特性が成り立たないことを示す図である。図8の(1)は、順方向にデータの差分が遷移する状態を示す。図8の(2)は、逆方向にデータの差分が遷移する状態を示す。
次に、本発明の実施の形態2における、ブロック暗号装置、ブロック暗号方法、及びプログラムについて、図10~図16を参照しながら説明する。
図10は、本発明の実施の形態2におけるブロック暗号装置1Aでのアルゴリズムを説明する図である。ブロック暗号装置1Aは、上述した、平文分割部2と、鍵分割部3と、暗号化部4と、鍵スケジュール処理部5と、演算部6とを備えている。実施の形態2では、暗号化部4におけるラウンド関数、および、鍵スケジュール処理部5での処理が、実施の形態1と相違する。以下、その相違点を中心に説明する。
次に、本実施の形態2におけるブロック暗号装置1Aの動作について図11を用いて説明する。図11は、本発明の実施の形態2におけるブロック暗号装置1Aの動作を示すフロー図である。また、本実施の形態2では、ブロック暗号装置1Aを動作させることによって、情報処理方法が実施される。よって、本実施の形態2におけるブロック暗号方法の説明は、以下のブロック暗号装置1Aの動作説明に代える。
図12および図13は、本実施の形態2におけるブロック暗号装置1Aによる暗号化では、Biclique特性が成り立たないことを示す図である。
本実施の形態2におけるプログラムは、コンピュータに、図11に示すステップS21~S29を実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態2におけるブロック暗号装置1Aとブロック暗号方法とを実現することができる。この場合、コンピュータのプロセッサは、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6として機能し、処理を行なう。
が、それぞれ、平文分割部2、鍵分割部3、暗号化部4、鍵スケジュール処理部5および演算部6のいずれかとして機能しても良い。
ここで、本実施の形態2における変形例について説明する。本変形例では、行列演算部53は、係数に0を持たないd×dの行列を用いて、S層部52での非線形変換に対して行列変換する。行列演算部53における行列変換では、入力されるデータサブブロックの1つに、排他的論理和差分の影響があると、出力されるデータサブブロックすべてに必ず差分がでる。行列演算部43における行列変換は、上記の式と同様に表される。
ここで、実施の形態1、2におけるプログラムを実行することによって、ブロック暗号装置を実現するコンピュータについて図16を用いて説明する。図16は、本発明の実施の形態1、2におけるブロック暗号装置を実現するコンピュータの一例を示すブロック図である。
、実施の形態1、2におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
ブロック長が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の行列演算式である、
ことを特徴とするブロック暗号装置。
ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号装置。
付記2に記載のブロック暗号装置であって、
前記第2処理のラウンド関数は、入力されるd個のnビットの鍵サブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。
付記1から付記3のいずれか一つに記載のブロック暗号装置であって、
前記暗号化部の第1処理で行う演算は、算術加算、算術減算または排他的論理和のいず
れかであり、
前記演算部で行う演算は、算術加算、算術減算または排他的論理和のいずれかである、
ことを特徴とするブロック暗号装置。
ブロック長が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の行列演算式である、
ことを特徴とするブロック暗号方法。
ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするブロック暗号方法。
コンピュータに、ブロック長が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の行列演算式である、
ことを特徴とするプログラム。
コンピュータに、ブロック長が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ビットの鍵サブブロックとを比較すると、丸め差分の重なりが必ず存在する、
ことを特徴とするプログラム。
2 平文分割部
3 鍵分割部
4 暗号化部
5 鍵スケジュール処理部
6 演算部
41 論理演算部
42 S層部
43 行列演算部
51 全単射計算部
52 S層部
53 行列演算部
Claims (4)
- ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号装置であって、
前記平文をd個のnビットのデータサブブロックに分割する平文分割部と、
前記秘密鍵をd個のnビットの鍵サブブロックに分割する鍵分割部と、
前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返す暗号化部と、
前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返す鍵スケジュール処理部と、
前記暗号化部の出力と、前記鍵スケジュール処理部の出力とを演算して、暗号文を出力する演算部と、
を備え、
前記鍵スケジュール処理部において、
1ラウンド目の第2処理では、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記暗号化部において、
1ラウンド目の第1処理では、前記平文分割部により生成された前記d個のnビットのデータサブブロックそれぞれと、前記鍵分割部により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンドの前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、を比較すると、丸め差分の重なりが必ず存在するように設定されている、
ことを特徴とするブロック暗号装置。 - 請求項1に記載のブロック暗号装置であって、
前記第2処理のラウンド関数は、入力されるd個のnビットの鍵サブブロックにおける1の丸め差分の影響を、他の全データサブブロックに波及させるd×dの行列演算式である、
ことを特徴とするブロック暗号装置。 - コンピュータが、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化するブロック暗号方法であって、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を備え、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンドの前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンドの第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、を比較すると、丸め差分の重なりが必ず存在するように設定されている、
ことを特徴とするブロック暗号方法。 - コンピュータに、ブロック長がbビットの平文を、鍵長がbビットの秘密鍵を用いて暗号化させるプログラムであって、
前記コンピュータに、
(a)前記平文をd個のnビットのデータサブブロックに分割するステップと、
(b)前記秘密鍵をd個のnビットの鍵サブブロックに分割するステップと、
(c)前記d個のnビットのデータサブブロックに対し、ラウンド関数を用いた、算術加算、算術減算、排他的論理和のいずれかを、第1処理として、rラウンド繰り返すステップと、
(d)前記d個のnビットの鍵サブブロックに対し、ラウンド関数を用いた第2処理をrラウンド繰り返すステップと、
(e)前記ステップ(c)の出力と、前記ステップ(d)の出力とを演算して、暗号文を出力するステップと、
を実行させ、
前記ステップ(d)において、
1ラウンド目の第2処理では、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックをラウンド関数の入力とし、
i(i=2~r)ラウンド目の第2処理では、(i-1)ラウンド目の前記第2処理の出力を、ラウンド関数の入力とし、
前記ステップ(c)において、
1ラウンド目の第1処理では、前記ステップ(a)により生成された前記d個のnビットのデータサブブロックそれぞれと、前記ステップ(b)により生成された前記d個のnビットの鍵サブブロックそれぞれとを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
i(i=2~r)ラウンド目の第1処理では、(i-1)ラウンド目の前記第1処理の出力と、(i-1)ラウンド目の前記第2処理の出力とを演算し、演算結果に対して非線形変換処理を行った結果を、ラウンド関数の入力とし、
前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、d×dの行列演算式であり、
更に、前記第1処理のラウンド関数、および、前記第2処理のラウンド関数それぞれは、
前記第1処理および前記第2処理を順方向に行ったときの、前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、差分をn個の鍵サブブロックの空き領域に入れて前記第1処理および前記第2処理を逆方向に行ったときの前記nビットのデータサブブロックおよび前記nビットの鍵サブブロックと、を比較すると、丸め差分の重なりが必ず存在するように設定されている、
ことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019028896A JP7244060B2 (ja) | 2019-02-20 | 2019-02-20 | ブロック暗号装置、ブロック暗号方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019028896A JP7244060B2 (ja) | 2019-02-20 | 2019-02-20 | ブロック暗号装置、ブロック暗号方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020134730A JP2020134730A (ja) | 2020-08-31 |
JP7244060B2 true JP7244060B2 (ja) | 2023-03-22 |
Family
ID=72262977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019028896A Active JP7244060B2 (ja) | 2019-02-20 | 2019-02-20 | ブロック暗号装置、ブロック暗号方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7244060B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072054A (ja) | 2004-09-03 | 2006-03-16 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2015191107A (ja) | 2014-03-28 | 2015-11-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
-
2019
- 2019-02-20 JP JP2019028896A patent/JP7244060B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006072054A (ja) | 2004-09-03 | 2006-03-16 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2015191107A (ja) | 2014-03-28 | 2015-11-02 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2020134730A (ja) | 2020-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4961909B2 (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
US8504845B2 (en) | Protecting states of a cryptographic process using group automorphisms | |
JP5268609B2 (ja) | 暗号処理装置及び演算方法 | |
KR20050092576A (ko) | 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법. | |
KR102397579B1 (ko) | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 | |
JP6575532B2 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
WO2020110800A1 (ja) | 暗号システム、暗号化装置、復号装置、暗号方法、暗号化方法、復号方法及びプログラム | |
US9565018B2 (en) | Protecting cryptographic operations using conjugacy class functions | |
US8526602B2 (en) | Adjustment-value-attached block cipher apparatus, cipher generation method and recording medium | |
US20130243191A1 (en) | Encryption key generating apparatus | |
US20080192924A1 (en) | Data encryption without padding | |
JP5852518B2 (ja) | 認証暗号化装置、認証復号装置、およびプログラム | |
Arshad et al. | New extension of data encryption standard over 128-bit key for digital images | |
JP5202350B2 (ja) | 暗号処理装置及び暗号処理方法及び暗号処理プログラム | |
US8538017B2 (en) | Encryption device | |
CN112740618A (zh) | 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序 | |
JP7244060B2 (ja) | ブロック暗号装置、ブロック暗号方法およびプログラム | |
JP7622834B2 (ja) | 暗号装置、方法、及びプログラム | |
JP6890589B2 (ja) | 計算デバイス及び方法 | |
JP6203387B2 (ja) | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム | |
JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
KR20210067961A (ko) | 완전동형암호 기법으로 암호화된 데이터의 연산을 위한 장치 및 방법 | |
JP7529154B2 (ja) | 暗号装置、方法、及びプログラム | |
KR101971001B1 (ko) | 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치 | |
KR20170108595A (ko) | 논리적 보수 관계값을 이용한 부채널 분석 방지 암호화 장치 및 방법 |
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 |