JP6273224B2 - 暗号化システム、暗号化装置、復号装置、暗号化方法 - Google Patents
暗号化システム、暗号化装置、復号装置、暗号化方法 Download PDFInfo
- Publication number
- JP6273224B2 JP6273224B2 JP2015036190A JP2015036190A JP6273224B2 JP 6273224 B2 JP6273224 B2 JP 6273224B2 JP 2015036190 A JP2015036190 A JP 2015036190A JP 2015036190 A JP2015036190 A JP 2015036190A JP 6273224 B2 JP6273224 B2 JP 6273224B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- authentication data
- additional authentication
- tag
- block
- 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
- 238000000034 method Methods 0.000 title claims description 81
- 238000012795 verification Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 14
- 238000012986 modification Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Description
SPONGEWRAPの暗号化関数は、ステートと呼ばれるbビットのデータを、bビットの置換f:{0,1}b→{0,1}bと入力データ(N,A,M)と鍵Kを用いて繰り返しアップデートを行いながらCとTを計算する。またbビットのステートは、レートと呼ばれるrビットと、キャパシティと呼ばれるc(=b−r)ビットに分割される。暗号化関数の計算の際、ステートの値は予め定められた初期値IVと呼ばれるbビットの値に初期化され(例えばIV=0)、fによりbビットの置換が行われ、ステートが更新される。暗号化関数の具体的な計算手順は以下の手順1から手順4で説明される通りである。図1に、SPONGEWRAPの暗号化での計算構造を示す。
鍵Kをr−1ビット毎に分割する。最終ブロックでは10*パディングと呼ばれるパディング処理を施す。具体的には、最終ブロックのビット長がr−1ビットより短い場合には、1ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。最終ブロックのビット長が丁度r−1ビットの場合には、次のブロックの先頭のビットとして 1 ビットの値“1”を与し、その後r−1ビットになるまでビット“0”を付与する。
ナンスNと追加認証データAを連結し、r−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。NとAの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“0”とし、最終ブロックのみフレームビットを“1”とする。bビットのステートのうち、レート部分のrビットに対し、NもしくはAとフレームビットを連結した rビットの値との排他的論理和を計算し、置換fを計算する。fの出力を新たなステート値とする。この操作をN,Aの最終ブロックが排他的論理和されるまで続ける。
メッセージMをr−1ビット毎に分割する。最終ブロックに対しては10*パディングを施す。Mの連結をr−1ビット毎に分割したそれぞれの値に、1ビットのフレームビットを連結し、rビットにする。具体的には、最初のブロックから最終ブロックの一つ手前のブロックまではフレームビットを“1”とし、最終ブロックのみフレームビットを“0”とする。
bビットのステートのうち、レート部分のrビットをタグのrビットとして出力する。ステートに対し置換fを計算し、fの出力を新たなステート値とする。この操作をタグのビット数に達するまで続ける。タグ長がrの倍数でない場合、最後のrビットの出力を必要な端数に切り捨ててタグの出力とする。
SPONGEWRAPの復号関数は、暗号化関数とほぼ同様の計算を行う。図2に、SPONGEWRAPの復号での計算構造を示す。ステートはIVに初期化され、暗号化関数の手順1,2同じ処理を行う。手順3は暗号化関数と異なっており、bビットのステートのうち、レート部分のrビットとCのrビットの排他的論理和をとり、パディングやフレームビット付与の逆手順を通した値をM’のr−1ビットとする。bビットのステートのうち、レート部分のrビットをCのrビットに置き換え、置換fを計算する。fの出力を新たなステート値とする。この操作をCの最終ブロックが排他的論理和されるまで続ける。Cの最終ブロックのサイズがrの倍数でない場合、端数分のみをM’の生成とステートの置き換えに利用する。手順3終了後、暗号化関数の手順4と同じ処理を行い、タグT’を得る。計算したT’と受け取ったTを比較し、同じ値であればM’を復号されたメッセージとして出力する。一致しなかった場合は、復号に失敗したという結果を出力する。
非特許文献2に示されたdonkeySpongeは、SPONGEWRAPの追加認証データ処理部分を利用してメッセージ認証コードを計算する方法である。図3にdonkeySpongeの計算構造を示す。メッセージ認証コードを生成する目的では、鍵Kおよび入力Aをbビットステートの全ビットに排他的論理和をしても安全性を損なうことが無く、効率的に入力データを処理することができる。
非特許文献2に示されたmonkeyDuplexは、SPONGEWRAPのKとNの処理方法に工夫を加え、より効率的な計算を可能にする方法である。Kのcビットまでを、IVのcビットのキャパシティ部分とする。もしくは、Kのcビットまでと、別に定義されたcビット定数との排他的論理和をIVのcビットのキャパシティ部分とする。いずれの方法も、暗号化関数,復号関数で手順 1(Kの処理)におけるfの計算関数を少なくすることができるため、計算効率が上昇する。なお、Kがcビットに満たない場合、適切なパディングによりIVのcビットがすべて定義されるようにする。
暗号化用追加認証データトレイラ計算部は、追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す。
復号用追加認証データトレイラ計算部は、追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す。復号用タグ計算部は、S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める。検証部は、タグTとタグT’とを比較する。
暗号化装置100は、初期値設定部110、追加認証データヘッダ分割部120、メッセージ分割部130、追加認証データトレイラ分割部140、追加認証データヘッダ計算部150、暗号化部160、追加認証データトレイラ計算部170、タグ計算部180、出力部190を備える。初期値設定部110は、Nを選択し、NとKを用いてbビットの初期値を生成し、初期値をfにより置換した結果をステートとする(S110)。例えば、初期値設定部110は、初期値として、レート部分にNを埋め込み、キャパシティ部分にKを埋め込めばよい。「埋め込む」とは、例えば、Nのビット数がrより小さいときはパディングによってrビットにした上でレート部分にすることを意味している。また、Nのビット数がrよりも大きい場合はNからrビットを切り出す、もしくはハッシュ関数などを用いてrビットに変換してレート部分にしてもよい。fはSPONGEWRAPで説明した置換と同じであり、あらかじめ暗号化装置100と復号装置200との間で定めておく。図6では、110を付した点線で囲まれた部分が初期値設定部に相当する。
復号装置200は、入力部290、初期値設定部210、追加認証データヘッダ分割部220、暗号文分割部230、追加認証データトレイラ分割部240、追加認証データヘッダ計算部250、復号部260、追加認証データトレイラ計算部270、タグ計算部280、検証部285を備える。入力部290は、C,T,A,Nの組を取得する(S290)。
実施例1の暗号化システムでは、キャパシティ部分に対して排他的論理和の演算を行っても、その結果を分からない状態にすれば暗号化の安全性を確保できることに着目している。そして、暗号化部160と復号部260の(2)の処理でgの演算を行うことなどによって結果が分からないようにしている。よって、追加認証データAの処理においてはbビットごとの排他的論理和(トレイラ全体との排他的論理和)を行うことができる。そして、フレームビットを省略できない場合でも、追加認証データAとステートとの排他的論理和の演算を、b−1ビットごとに処理できるので、置換演算fの回数を少なくできる。さらに、追加認証データヘッダ分割部120,220と追加認証データトレイラ分割部140,240のパディングにおいて、10*1パディングを用いればフレームビットが不要にできるので、追加認証データとステートとの排他的論理和の演算をbビットごと、メッセージとステートのレート部分との排他的論理和の演算をrビットごとに処理できる。したがって、置換演算fの回数を少なくできる。
図10に本変形例の暗号化システムの機能構成例を示す。図11は本変形例の暗号化での計算構造の例を示す図、図12は本変形例の復号での計算構造の例を示す図である。また、図13は本変形例の暗号化装置の処理フロー、図14は本変形例の復号装置の処理フローを示す図である。本変形例の暗号化システムは、ネットワーク800を介して接続された暗号化装置300と復号装置400で構成される。
暗号化装置300は、初期値設定部110、追加認証データ分割部320、メッセージ分割部130、追加認証データ計算部350、暗号化部160、タグ計算部180、出力部190を備える。初期値設定部110は、Nを選択し、NとKを用いてbビットの初期値を生成し、初期値をfにより置換した結果をステートとする(S110)。図11では、110を付した点線で囲まれた部分が初期値設定部に相当する。
復号装置400は、入力部290、初期値設定部210、追加認証データ分割部420、暗号文分割部230、追加認証データ計算部450、復号部260、タグ計算部280、検証部285を備える。入力部290は、C,T,A,Nの組を取得する(S290)。
本変形例の暗号化システムも、キャパシティ部分に対して排他的論理和の演算を行っても、その結果を分からない状態にすれば暗号化の安全性を確保できることに着目し、実現している。よって、実施例1と同様の効果が得られる。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
110,210,310,410 初期値設定部
120,220 追加認証データヘッダ分割部
130 メッセージ分割部
140,240 追加認証データトレイラ分割部
150,250 追加認証データヘッダ計算部
160 暗号化部
170,270 追加認証データトレイラ計算部
180,280 タグ計算部 190 出力部
200,400 復号装置 230 暗号文分割部
260 復号部 285 検証部
290 入力部
320,420 追加認証データ分割部
350,450 追加認証データ計算部
800 ネットワーク
Claims (8)
- 暗号化装置と復号装置を有する暗号化システムであって、
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Q,Uを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、uを1以上U以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置は、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定部と、
追加認証データAのヘッダA’を、パディングを用いてbビットごとの追加認証データブロックa1’,…,aQ’に分割する暗号化用追加認証データヘッダ分割部と、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割部と、
追加認証データAのトレイラA”が存在する場合は、追加認証データAのトレイラA”を、パディングを用いてbビットごとの追加認証データブロックa1”,…,aU”に分割する暗号化用追加認証データトレイラ分割部と、
ステートに対して追加認証データブロックaq’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す暗号化用追加認証データヘッダ計算部と、
(1)ステートのレート部分に対してメッセージブロックmpとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対してメッセージブロックmPとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算結果に置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化部と、
追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す暗号化用追加認証データトレイラ計算部と、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算部と、
C,T,A,Nの組を出力する出力部と、
を備え、
前記復号装置は、
C,T,A,Nの組を取得する入力部と、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定部と、
追加認証データAのヘッダA’を、パディングを用いてbビットごとの追加認証データブロックa1’,…,aQ’に分割する復号用追加認証データヘッダ分割部と、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割部と、
追加認証データAのトレイラA”が存在する場合は、追加認証データAのトレイラA”を、パディングを用いてbビットごとの追加認証データブロックa1”,…,aU”に分割する復号用追加認証データトレイラ分割部と、
ステートに対して追加認証データブロックaq’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す復号用追加認証データヘッダ計算部と、
(1)ステートのレート部分に対して暗号ブロックdpとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対して暗号ブロックdPとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号部と、
追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す復号用追加認証データトレイラ計算部と、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算部と、
タグTとタグT’とを比較する検証部と
を備える
暗号化システム。 - 暗号化装置と復号装置を有する暗号化システムであって、
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Q,b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置は、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定部と、
追加認証データAを、パディングを用いてbビットごとの追加認証データブロックa1,…,aQに分割する暗号化用追加認証データ分割部と、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割部と、
ステートに対して追加認証データブロックaqとの排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す暗号化用追加認証データ計算部と、
(1)ステートのレート部分に対してメッセージブロックmpとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対してメッセージブロックmPとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算結果に置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化部と、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算部と、
C,T,A,Nの組を出力する出力部と、
を備え、
前記復号装置は、
C,T,A,Nの組を取得する入力部と、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定部と、
追加認証データAを、パディングを用いてbビットごとの追加認証データブロックa1,…,aQに分割する復号用追加認証データ分割部と、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割部と、
ステートに対して追加認証データブロックaqとの排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す復号用追加認証データ計算部と、
(1)ステートのレート部分に対して暗号ブロックdpとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対して暗号ブロックdPとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号部と、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算部と、
タグTとタグT’とを比較する検証部と
を備える
暗号化システム。 - 請求項1記載の暗号化システムであって、
追加認証データAのヘッダA’とトレイラA”に対するパディングは10*1パディングである
ことを特徴とする暗号化システム。 - 請求項2記載の暗号化システムであって、
追加認証データAに対するパディングは10*1パディングである
ことを特徴とする暗号化システム。 - 請求項1から4のいずれかに記載の暗号化システムが有する暗号化装置。
- 請求項1から4のいずれかに記載の暗号化システムが有する復号装置。
- 暗号化装置と復号装置を用いる暗号化方法であって、
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Q,Uを1以上の整数、b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、uを1以上U以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置が、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定ステップと、
追加認証データAのヘッダA’を、パディングを用いてbビットごとの追加認証データブロックa1’,…,aQ’に分割する暗号化用追加認証データヘッダ分割ステップと、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割ステップと、
追加認証データAのトレイラA”が存在する場合は、追加認証データAのトレイラA”を、パディングを用いてbビットごとの追加認証データブロックa1”,…,aU”に分割する暗号化用追加認証データトレイラ分割ステップと、
ステートに対して追加認証データブロックaq’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す暗号化用追加認証データヘッダ計算ステップと、
(1)ステートのレート部分に対してメッセージブロックmpとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対してメッセージブロックmPとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算結果に置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化ステップと、
追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す暗号化用追加認証データトレイラ計算ステップと、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算ステップと、
C,T,A,Nの組を出力する出力ステップと、
を実行し、
前記復号装置が、
C,T,A,Nの組を取得する入力ステップと、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定ステップと、
追加認証データAのヘッダA’を、パディングを用いてbビットごとの追加認証データブロックa1’,…,aQ’に分割する復号用追加認証データヘッダ分割ステップと、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割ステップと、
追加認証データAのトレイラA”が存在する場合は、追加認証データAのトレイラA”を、パディングを用いてbビットごとの追加認証データブロックa1”,…,aU”に分割する復号用追加認証データトレイラ分割ステップと、
ステートに対して追加認証データブロックaq’との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す復号用追加認証データヘッダ計算ステップと、
(1)ステートのレート部分に対して暗号ブロックdpとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対して暗号ブロックdPとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号ステップと、
追加認証データAのトレイラA”が存在する場合は、ステートに対して追加認証データブロックau”との排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、u=1からu=Uまで繰り返す復号用追加認証データトレイラ計算ステップと、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算ステップと、
タグTとタグT’とを比較する検証ステップと
を実行する
暗号化方法。 - 暗号化装置と復号装置を用いる暗号化方法であって、
Kを前記暗号化装置と前記復号装置の両方で共有する秘密鍵、Aを追加認証データ、Mをメッセージ、Cを暗号文、Tをタグ、K,A,Mをビット列、Nをすべてのビットが“0”のビット列を除くビット列、r,c,b,P,Q,b=r+c、pを1以上P以下の整数、qを1以上Q以下の整数、Sをあらかじめ定めた1以上の整数、sを1以上S以下の整数、fをbビットの置換演算、gを0〜2c−1の整数からなる有限体の元と0と1以外のあらかじめ定めた定数との有限体上での乗算とし、
ステートを、あらかじめ定められたrビットがレート部分、cビットがキャパシティ部分であるbビットのビット列とし、
前記暗号化装置が、
Nを選択し、NとKを用いてbビットの暗号化用初期値を生成し、前記暗号化用初期値をfにより置換した結果をステートとする暗号化用初期値設定ステップと、
追加認証データAを、パディングを用いてbビットごとの追加認証データブロックa1,…,aQに分割する暗号化用追加認証データ分割ステップと、
メッセージMを、パディングを用いてrビットごとのメッセージブロックm1,…,mPに分割するメッセージ分割ステップと、
ステートに対して追加認証データブロックaqとの排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す暗号化用追加認証データ計算ステップと、
(1)ステートのレート部分に対してメッセージブロックmpとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdpとするとともに、ステートのレート部分を当該計算結果に置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対してメッセージブロックmPとの排他的論理和を計算し、計算結果をrビットの暗号ブロックdPとするともに、ステートのレート部分を当該計算結果に置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)暗号ブロックd1,…,dPの結合処理を用いて暗号文Cを求める
暗号化ステップと、
S=1の場合はステートのレート部分からタグTを求め、S≧2の場合は、ステートのレート部分をタグブロックt1とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックtsとする処理をs=2からs=Sまで繰り返し、タグブロックt1,…,tSを用いてタグTを求める暗号化用タグ計算ステップと、
C,T,A,Nの組を出力する出力ステップと、
を実行し、
前記復号装置が、
C,T,A,Nの組を取得する入力ステップと、
NとKを用いてbビットの復号用初期値を生成し、前記復号用初期値をfにより置換した結果をステートとする復号用初期値設定ステップと、
追加認証データAを、パディングを用いてbビットごとの追加認証データブロックa1,…,aQに分割する復号用追加認証データ分割ステップと、
暗号文Cを、rビットごとの暗号ブロックd1,…,dPに分割する暗号文分割ステップと、
ステートに対して追加認証データブロックaqとの排他的論理和を計算し、さらにfにより置換した結果を新たなステートとする処理を、q=1からq=Qまで繰り返す復号用追加認証データ計算ステップと、
(1)ステートのレート部分に対して暗号ブロックdpとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmp’とするとともに、ステートのレート部分を暗号ブロックdpに置き換えた上でfにより置換した結果を新たなステートとする処理を、p=1からp=P−1まで繰り返し、
(2)ステートのレート部分に対して暗号ブロックdPとの排他的論理和を計算し、計算結果をrビットのメッセージブロックmP’とするともに、ステートのレート部分を暗号ブロックdPに置き換え、キャパシティ部分のcビットを0〜2c−1の整数からなる有限体として扱ってgによる乗算を行った上で、fにより置換した結果を新たなステートとする処理を行い、
(3)メッセージブロックm1’,…,mP’からパディングで付加されたビットを取り除いた結合をしてメッセージM’とする
復号ステップと、
S=1の場合はステートのレート部分からタグT’を求め、S≧2の場合は、ステートのレート部分をタグブロックt1’とし、さらに、ステートをfにより置換した結果を新たなステートとしてレート部分をタグブロックts’とする処理をs=2からs=Sまで繰り返し、タグブロックt1’,…,tS’を用いてタグT’を求める復号用タグ計算ステップと、
タグTとタグT’とを比較する検証ステップと
を実行する
暗号化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036190A JP6273224B2 (ja) | 2015-02-26 | 2015-02-26 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036190A JP6273224B2 (ja) | 2015-02-26 | 2015-02-26 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016157053A JP2016157053A (ja) | 2016-09-01 |
JP6273224B2 true JP6273224B2 (ja) | 2018-01-31 |
Family
ID=56826081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015036190A Active JP6273224B2 (ja) | 2015-02-26 | 2015-02-26 | 暗号化システム、暗号化装置、復号装置、暗号化方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6273224B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3661115B1 (en) * | 2017-09-01 | 2024-01-17 | Mitsubishi Electric Corporation | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program |
CN108900869B (zh) * | 2018-05-04 | 2021-02-02 | 烽火通信科技股份有限公司 | 一种通信组信息加解密方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005114870A (ja) * | 2003-10-03 | 2005-04-28 | Japan Science & Technology Agency | 暗号通信システム |
WO2006019152A1 (ja) * | 2004-08-19 | 2006-02-23 | Hitachi, Ltd. | メッセージ認証装置及び認証暗号装置 |
EP1995710A1 (en) * | 2006-03-14 | 2008-11-26 | NEC Corporation | Information processing system, information processing method, and information processing program |
WO2012154129A1 (en) * | 2011-05-10 | 2012-11-15 | Nanyang Technological University | Devices for computer-based generating of a mixing matrix for cryptographic processing of data, encrypting devices, methods for computer-based generating of a mixing matrix for cryptographic processing of data and encrypting methods |
JP5852518B2 (ja) * | 2012-06-18 | 2016-02-03 | 日本電信電話株式会社 | 認証暗号化装置、認証復号装置、およびプログラム |
TWI510046B (zh) * | 2013-07-04 | 2015-11-21 | Univ Nat Cheng Kung | 認證式加解密方法 |
-
2015
- 2015-02-26 JP JP2015036190A patent/JP6273224B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016157053A (ja) | 2016-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110348231B (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
JP5710460B2 (ja) | 暗号化鍵生成装置およびプログラム | |
EP2526505B1 (en) | Device and method for obtaining a cryptographic key | |
CN105721156B (zh) | 对数据进行编码和数字签名的方法和相关设备 | |
JP6305642B2 (ja) | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム | |
US9762384B2 (en) | Generation and verification of alternate data having specific format | |
JP6884284B2 (ja) | キー付きメッセージ認証コードのホワイトボックス計算 | |
US10417187B2 (en) | Secure compression | |
CN107534549B (zh) | 可读存储介质、用于数据流字块加密的方法及系统 | |
JP6273226B2 (ja) | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 | |
US20200186328A1 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
JP6273224B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法 | |
RU2710310C2 (ru) | Электронное устройство формирования | |
CN109951275B (zh) | 密钥生成方法、装置、计算机设备及存储介质 | |
WO2020188906A1 (ja) | 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム | |
JP6059159B2 (ja) | シェア変換システム、シェア変換方法、プログラム | |
JP6797337B2 (ja) | メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム | |
JP6273225B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム | |
JP6532843B2 (ja) | 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム | |
JP6273223B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム | |
JP6305643B2 (ja) | メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム | |
CN111052206B (zh) | 秘密计算装置、秘密计算方法以及记录介质 | |
JP6180375B2 (ja) | コミットメント方法、コミットメントシステム、送信者装置、受信者装置及びプログラム | |
Gorke et al. | Cloud storage file recoverability | |
CN111325545B (zh) | 基于区块链的密钥管理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170302 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171211 |
|
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: 20171226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180105 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6273224 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |