JP7317261B2 - 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム - Google Patents
暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム Download PDFInfo
- Publication number
- JP7317261B2 JP7317261B2 JP2023512624A JP2023512624A JP7317261B2 JP 7317261 B2 JP7317261 B2 JP 7317261B2 JP 2023512624 A JP2023512624 A JP 2023512624A JP 2023512624 A JP2023512624 A JP 2023512624A JP 7317261 B2 JP7317261 B2 JP 7317261B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- bit
- generate
- plaintext
- generated
- 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 62
- 230000001174 ascending effect Effects 0.000 claims description 14
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 116
- 230000015654 memory Effects 0.000 description 48
- 238000003860 storage Methods 0.000 description 18
- 238000012986 modification Methods 0.000 description 15
- 230000004048 modification Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 238000001514 detection method Methods 0.000 description 13
- 239000000243 solution Substances 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
暗号化関数Encは、秘密鍵Kと、ナンスNと、公開データAと、平文Mとを入力とし、暗号文Cと改ざん検知用の認証子Tagとを出力する関数である。なお、ナンスNは、暗号化毎に異なる値が用いられ、秘密鍵Kを変更しない限り同じ値は用いられない。
復号関数Decは、秘密鍵Kと、ナンスNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tagとを入力とし、入力値が改ざんされていない場合、平文Mを出力し、改ざんされている場合、偽造されていることを示す値を出力する。以降、偽造されていることを示す値をrejectと書く。
送信者Aliceは、秘密鍵Kと、ナンスNと、公開データAと、平文Mとを入力として、暗号化関数Encを計算することにより、暗号文Cと改ざん検知用の認証子Tagとを生成する。送信者Aliceは、ナンスNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tagとを受信者Bobに送信する。
受信者Bobは、秘密鍵Kと、ナンスNと、公開データAと、暗号文Cと、改ざん検知用の認証子Tagとを入力として、復号関数Decを計算することにより、改ざん検知されていないことを判定し、改ざんされていない場合は平文Mを生成する。
なお、公開データAは公開してもよい値である。また、送信者Aliceは、暗号化毎にナンスNを別の値に設定し、同じ値は使用しない。
秘匿性は、暗号文から平文が漏れないことを定義した安全性である。秘匿性の安全性ゲームでは、攻撃者が、認証暗号アルゴリズムの暗号化関数Encと、乱数を出力するオラクルとのどちらか一方にアクセスし、どちらにアクセスしているかを識別する。攻撃者が識別する確率を識別確率と呼ぶ。識別確率が低いほど秘匿性の安全性が高い。
完全性は、公開データ又は暗号文が改ざんできないことを定義した安全性である。完全性の安全性ゲームでは、攻撃者が認証暗号アルゴリズムの暗号化関数Encと復号関数Decとにアクセスし、復号関数Decに偽造した公開データと暗号文と認証子とを入力し、改ざんチェックに合格することを目指す。改ざんチェックに合格する確率を偽造確率と呼ぶ。偽造確率が低いほど完全性の安全性が高い。
ブロック暗号は、暗号化関数Eと復号関数Dとから構成される。暗号化関数Eは、kビットの鍵Kと、nビットの平文ブロックMとを入力とし、nビットの暗号文ブロックCを出力する関数である。これをC=E(K,M)と書く。ブロック暗号の復号関数Dは、kビットの鍵Kとnビットの暗号文ブロックCとを入力とし、nビットの平文ブロックMを出力する関数である。これをM=D(K,C)と書く。平文ブロックM及び暗号文ブロックCのサイズnをブロックサイズと呼ぶ。ブロック暗号の暗号化関数E及び復号関数Dは、鍵Kを固定するとnビットの置換関数になる。
秘匿性についての識別確率は、認証暗号の暗号化関数Encでのブロック暗号の呼び出し回数qと、攻撃者の計算量pとを用いて導出される。攻撃者の計算量pは、ブロック暗号1回の計算量を1とする。すなわち、攻撃者はブロック暗号をp回計算することができる能力を持つことになる。
完全性についての偽造確率は、認証暗号の暗号化関数Encでのブロック暗号の呼び出し回数と復号関数Decでのブロック暗号の呼び出し回数との和Qと、攻撃者の計算量pとを用いて導出される。
オンライン計算の安全性レベルは、識別確率が1となるqの値をq’とし、偽造確率が1となるQの値をQ’とすると、log2q’とlog2Q’との最小値である。ここで、オンライン計算の安全性レベルの単位はビットである。
オフライン計算の安全性レベルは、識別確率が1となるpの値をp1とし、偽造確率が1となるpの値をp2とすると、log2p1とlog2p2との最小値である。ここで、オフライン計算の安全性レベルの単位はビットである。
非特許文献4に記載された認証暗号アルゴリズムの安全性レベルは、オンライン計算の安全性レベルとオフライン計算の安全性レベルがともにnビットであり、最適である。しかし、メモリサイズは、特許文献1に記載された認証暗号アルゴリズムよりもnビット多い、3nビットであり、最小ではない。
平文Mを順にnビット毎に分割して値M[1],...,値M[m]を生成する分割部と、
nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,mの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、前記分割部によって生成された値M[i]とから値C[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成する暗号要素生成部と、
前記暗号要素生成部によって生成されたi=1,...,mについての値C[i]を結合して暗号文Cを生成する暗号文生成部と、
値H[m]と値B[m]とから前記暗号文Cの改ざんを検知するための認証子Tagを生成する認証子生成部と
を備える。
***構成の説明***
図1を参照して、実施の形態1に係る暗号化装置10の構成を説明する。
暗号化装置10は、コンピュータである。
暗号化装置10は、プロセッサ11と、メモリ12と、ストレージ13と、入出力インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ13には、暗号化装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、暗号化装置10の各機能構成要素の機能が実現される。
復号装置30は、コンピュータである。
復号装置30は、プロセッサ31と、メモリ32と、ストレージ33と、入出力インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ストレージ33には、復号装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、復号装置30の各機能構成要素の機能が実現される。
図3から図18を参照して、実施の形態1に係る暗号化装置10及び復号装置30の動作を説明する。
実施の形態1に係る暗号化装置10の動作手順は、実施の形態1に係る暗号化方法に相当する。また、実施の形態1に係る暗号化装置10の動作を実現するプログラムは、実施の形態1に係る暗号化プログラムに相当する。
実施の形態1に係る復号装置30の動作手順は、実施の形態1に係る復号方法に相当する。また、実施の形態1に係る復号装置30の動作を実現するプログラムは、実施の形態1に係る復号プログラムに相当する。
暗号化装置10は、認証暗号アルゴリズムにおける暗号化アルゴリズムEncを実現する。また、復号装置30は認証暗号アルゴリズムにおける復号アルゴリズムDecを実現する。
集合Nsetは、ナンスNの集合である。
ブロック暗号は、暗号化関数Eと復号関数Dとから構成される。暗号化関数Eは、k(=n)ビットの鍵Kと、nビットの平文ブロックMとを入力とし、nビットの暗号文ブロックCを出力する関数である。これをC=E(K,M)と書き、図3のように表す。つまり、2つの入力値のうち、黒塗りになっている部分に入力される入力値が鍵であり、他方の入力値が暗号化される値である。
実施の形態1に係る認証暗号アルゴリズムでは、nビットの値を入力とし、nビットの値を出力する置換関数P,F,Gとブロック暗号Eとを用いた以下の基本処理が用いられる。基本処理は2つのnビットの値X及び値Yを入力として、2つのnビットの値Z及び値Wを出力する。
(基本処理)
(1)値Yを鍵として値Xをブロック暗号Eによって暗号化し、置換関数Gで変換されて値Zが生成される。
(2)値Yを置換関数Pで変換した値P(Y)と、値Zを置換関数Fで変換した値F(Z)との排他的論理和をとって値Wが生成される。
(3)値Zと値Wとが出力される。
図5から図13を参照して、実施の形態1に係る暗号化装置10の動作を説明する。
暗号化装置10は、分割処理と、初期値生成処理と、公開データ処理と、暗号文生成処理と、認証子生成処理とを順に実行する。
図5を参照して、実施の形態1に係る分割処理を説明する。
(ステップS101)
分割部21は、秘密鍵Kと、ナンスNと、公開データAと、平文Mとを取得する。
具体的には、分割部21は、ストレージ13に記憶された秘密鍵KとナンスNと公開データAとを読み出す。また、分割部21は、入出力インタフェース14を介して接続された入力装置から入力された平文Mを取得する。
秘密鍵Kは、nビットの鍵であり、事前に暗号文Cの送付先と共有された鍵である。ナンスNは、集合Nsetにおけるnビットの値である。ナンスNは、暗号化毎に異なる値が用いられ、秘密鍵Kを変更しない限り同じ値は用いられない。公開データAは、公開してもよい値であり、任意のビット長の値である。平文Mは、暗号化する対象の値であり、任意のビット長の値である。
分割部21は、公開データAを予め決められた順に2nビット毎に分割して値A[1],...,値A[a]を生成する。ここでは、分割部21は、公開データAを先頭から順に2nビット毎に分割して値A[1],...,値A[a]を生成する。したがって、値A[1],値A[2],...,値A[a-1]はそれぞれ2nビットの値であり、値A[a]は1ビット以上2nビット以下の値である。また、公開データAは、値A[1],値A[2],...,値A[a]をビット結合した値である。
分割部21は、平文Mを予め決められた順にnビット毎に分割して値M[1],...,値M[m]を生成する。ここでは、分割部21は、平文Mを先頭から順にnビット毎に分割して値M[1],...,値M[m]を生成する。したがって、値M[1],値M[2],...,値M[m-1]はそれぞれnビットの値であり、値M[m]は1ビット以上nビット以下の値である。また、平文Mは、値M[1],値M[2],...,値M[m]をビット結合した値である。
図6及び図7を参照して、実施の形態1に係る初期値生成処理を説明する。
初期値生成処理では、置換関数Gとして、恒等写像、つまりG(X)=Xが用いられる。
初期値生成部22は、ナンスNを関数Initに入力してnビットの値Init(N)を生成する。初期値生成部22は、秘密鍵Kを用いて値Init(N)をブロック暗号Eによって暗号化して値E(N)を生成する。初期値生成部22は、値E(N)を値Tmpに設定する。
初期値生成部22は、秘密鍵Kを置換関数Pで変換した値P(K)と、値Tmp(=値E(N))を置換関数Fで変換した値F(Tmp)(=値F(E[N]))とから値IVtを生成する。具体的には、初期値生成部22は、値P(K)と値F(Tmp)との排他的論理和を計算して、値IVtを生成する。
置換関数Fとしては、nビットの値Sと、変数Zとに対して、数3がZについて唯一の解を持つような置換関数が用いられる。
例えば、置換関数Pと置換関数Fとはガロア体GF(2n)上の生成元との掛け算を用いることができる。すなわち、生成元をuとすると、P(Y)=u・Y、F(Z)=u・Zとなる。
初期値生成部22は、公開データAと平文Mとに応じて値idを設定する。
具体的には、初期値生成部22は、公開データAのビット長が0であり、かつ、平文Mのビット長が0である場合には、const[1]を値idに設定する。初期値生成部22は、公開データAのビット長が0でなく、かつ、平文Mのビット長が0である場合には、const[2]を値idに設定する。初期値生成部22は、公開データAのビット長が0であり、かつ、平文Mのビット長が0でない場合には、const[3]を値idに設定する。初期値生成部22は、公開データAのビット長が0でなく、かつ、平文Mのビット長が0でない場合には、const[4]を値idに設定する。
初期値生成部22は、値Tmp(=値E(N))と、値idとから値IVbを生成する。
具体的には、初期値生成部22は、値Tmpと値idとの排他的論理和を計算して、値IVbを生成する。
初期値生成部22は、値IVt及び値IVbを出力する。
図8及び図9を参照して、実施の形態1に係る公開データ処理を説明する。
公開データ処理では、ステップS124においては、置換関数Gとして、恒等写像、つまりG(X)=Xが用いられる。ステップS126においては、置換関数Gとして、置換関数Qが用いられる。
また、公開データ処理では、置換関数Pは、初期値生成処理と同じ関数が用いられる。また、置換関数Fとしては、初期値生成処理で用いた置換関数Fと同様に、nビットの値Sと、変数Zとに対して、数3がZについて唯一の解を持つような置換関数が用いられる。
公開データ処理部23は、初期値生成処理で生成された値IVt及び値IVbを取得する。公開データ処理部23は、値IVtを値T*[0]に設定し、値IVbを値B*[0]に設定する。
公開データ処理部23は、公開データAのビット長が0であるか否かを判定する。
公開データ処理部23は、公開データAのビット長が0である場合には、処理をステップS131に進める。一方、公開データ処理部23は、公開データAのビット長が0でない場合には、処理をステップS123に進める。
公開データ処理部23は、図5のステップS102で公開データAが分割された数である分割数aが1であるか否かを判定する。図5のステップS102では、公開データAが値A[1],...,値A[a]の“a”個に分割された。分割数aは、この“a”個を表す。
公開データ処理部23は、分割数aが1である場合には、処理をステップS125に進める。一方、公開データ処理部23は、分割数aが1でない場合には、処理をステップS124に進める。
公開データ処理部23は、i=1,...,a-1の各整数iについて昇順に、(1)から(4)を実行する。
(1)公開データ処理部23は、値T*[i-1]を鍵として値B*[i-1]をブロック暗号Eによって暗号化して値E(B*[i-1])を生成する。
(2)公開データ処理部23は、値A[i]のうち予め決められた位置のnビットを値A[i,t]に設定し、値A[i]のうちの値A[i,t]以外のnビットを値A[i,b]に設定する。例えば、公開データ処理部23は、値A[i]のうち先頭nビットを値A[i,t]に設定し、残りnビットを値A[i,b]に設定する。
(3)公開データ処理部23は、値T*[i-1]を置換関数Pで変換した値P(T*[i-1])と、値E(B*[i-1])を置換関数Fで変換した値F(E(B*[i-1]))と、値A[i,t]とからnビットの値T*[i]を生成する。具体的には、公開データ処理部23は、値P(T*[i-1])と値F(E(B*[i-1]))と値A[i,t]との排他的論理和を計算して、値T*[i]を生成する。
(4)公開データ処理部23は、値E(B*[i-1])と、値A[i,b]とからnビットの値B*[i]を生成する。具体的には、公開データ処理部23は、値E(B*[i-1])と値A[i,b]との排他的論理和を計算して、値B*[i]を生成する。
公開データ処理部23は、値T*[a-1]を鍵として値B*[a-1]をブロック暗号Eによって暗号化して値E(B*[a-1])を生成する。
公開データ処理部23は、値A[a]のビット長が2nである場合には、値E(B*[a-1])を置換関数Qを1回適用して変換した値Q[1](E(B*[a-1]))を値Q(E(B*[a-1]))として生成する。一方、値A[a]のビット長が2nでない場合には、値E(B*[a-1])を置換関数Qを2回適用して変換した値Q[2](E(B*[a-1]))を値Q(E(B*[a-1]))として生成する。
公開データ処理部23は、関数padにより、値A[a]にビットをパディングして得られた2nビットの値A’[a]を生成する。つまり、公開データ処理部23は、A’[a]=pad[2n](A[a])を計算する。
公開データ処理部23は、値A’[a]のうち予め決められた位置のnビットを値A’[a,t]に設定し、値’A[i]のうちの値A’[a,t]以外のnビットを値A’[a,b]に設定する。例えば、公開データ処理部23は、値A’[a]のうち先頭nビットを値A’[a,t]に設定し、残りのnビットを値A’[a,b]に設定する。
公開データ処理部23は、値T*[a-1]を置換関数Pで変換した値P(T*[a-1])と、値Q(E(B*[a-1]))を置換関数Fで変換した値F(Q(E(B*[a-1])))と、値A’[a,t]とから値T*[a]を生成する。具体的には、公開データ処理部23は、値P(T*[a-1])と値F(Q(E(B*[a-1])))と値A’[a,t]との排他的論理和を計算して、値T*[a]を生成する。
例えば、置換関数Q[1]と置換関数Q[2]とは、ガロア体GF(2n)上の掛け算を用いる方法がある。すなわち、ガロア体GF(2n)上の0と1以外で異なる2つの値をu,vとし、Q[1](Z)=u・Z、Q[2](Z)=v・Zとする。
公開データ処理部23は、値Q(E(B*[a-1]))と、値A’[a,b]とから値B*[a]を生成する。具体的には、公開データ処理部23は、値Q(E(B*[a-1]))と値A’[a,b]との排他的論理和を計算して、値B*[a]を生成する。
公開データ処理部23は、値T*[a]を値Htに設定し、値B*[a]を値Hbに設定する。そして、公開データ処理部23は、値Ht及び値Hbを出力する。
なお、公開データAのビット長が0である場合には、値T*[0]が値Htに設定され、値B*[0]が値Hbに設定される。
図10及び図11を参照して、実施の形態1に係る暗号文生成処理を説明する。
暗号文生成処理では、ステップS144においては、置換関数Gとして、恒等写像、つまりG(X)=Xが用いられる。ステップS146においては、置換関数Gとして、置換関数Rが用いられる。
また、暗号文生成処理では、置換関数Pは、初期値生成処理と同じ関数が用いられる。また、置換関数Fとしては、初期値生成処理で用いた置換関数Fと同様に、nビットの値Sと、変数Zとに対して、数3がZについて唯一の解を持つような置換関数が用いられる。
暗号要素生成部24は、公開データ処理で生成された値Ht及び値Hbを取得する。暗号要素生成部24は、値Htを値T[0]に設定し、値Hbを値B[0]に設定する。
暗号要素生成部24は、平文Mのビット長が0であるか否かを判定する。
暗号要素生成部24は、平文Mのビット長が0である場合には、平文Mを空列として、処理をステップS151に進める。一方、暗号要素生成部24は、平文Mのビット長が0でない場合には、処理をステップS143に進める。
暗号要素生成部24は、図5のステップS102で平文Mが分割された数である分割数mが1であるか否かを判定する。図5のステップS102では、平文Mが値M[1],...,値M[m]の“m”個に分割された。分割数mは、この“m”個を表す。
暗号要素生成部24は、分割数mが1である場合には、処理をステップS145に進める。一方、暗号要素生成部24は、分割数mが1でない場合には、処理をステップS144に進める。
暗号要素生成部24は、i=1,...,m-1の各整数iについて昇順に、(1)から(3)を実行する。
(1)暗号要素生成部24は、値T[i-1]を鍵として値B[i-1]をブロック暗号Eによって暗号化して値B[i]を生成する。
(2)暗号要素生成部24は、値M[i]と値B[i]とから値C[i]を生成する。具体的には、暗号要素生成部24は、値M[i]と値B[i]との排他的論理和を計算して、値C[i]を生成する。
(3)暗号要素生成部24は、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、値B[i]を置換関数Fで変換した値F(B[i])と、値C[i]とからnビットの値T[i]を生成する。具体的には、暗号要素生成部24は、値P(T[i-1])と値F(B[i])と値C[i]との排他的論理和を計算して、値T[i]を生成する。
暗号要素生成部24は、値T[m-1]を鍵として値B[m-1]をブロック暗号Eによって暗号化して値B[m]を生成する。
暗号要素生成部24は、値M[m]のビット長がnである場合には、値B[m]を置換関数Rを1回適用して変換した値R[1](B[m])を値R(B[m])として生成する。一方、値M[m]のビット長がnでない場合には、値B[m]を置換関数Rを2回適用して変換した値R[2](B[m])を値R(B[m])として生成する。
暗号要素生成部24は、値R(B[m])の予め決められた位置の|M[m]|ビットを抽出して値B’[m]に設定する。例えば、暗号要素生成部24は、値R(B[m])のうち先頭の|M[m]|ビットを値B’[m]に設定する、あるいは、値R(B[m])のうち後ろの|M[m]|ビットを値B’[m]に設定する。
暗号要素生成部24は、値M[m]と値B’[m]とから値C[m]を生成する。具体的には、暗号要素生成部24は、値M[m]と値B’[m]との排他的論理和を計算して、値C[m]を生成する。
暗号文生成部25は、i=1,...,mについての値C[i]を結合して暗号文Cを生成する。例えば、暗号文生成部25は、C=C[1]||C[2]||...||C[m]を計算することにより、暗号文Cを生成する。ここで、||は結合を表す。
暗号要素生成部24は、値C[m]にビットをパディングして得られたnビットの値C’[m]を生成する。つまり、暗号要素生成部24は、C’[m]=pad[n](C[m])を計算する。
そして、暗号要素生成部24は、値T「m-1]を置換関数Pで変換した値P(T[m-1])と、値R(B[m])を置換関数Fで変換した値F(R(B[m]))と、値C’[m]とから値T[m]を生成する。具体的には、暗号要素生成部24は、値P(T[m-1])と値F(R(B[m]))と値C’「m]との排他的論理和を計算して、値T「m]を生成する。
暗号要素生成部24は、値T「m]を値Etに設定し、値R(B[m])を値Ebに設定する。そして、暗号要素生成部24は、値Et及び値Ebを出力する。
なお、平文Mのビット長が0である場合には、値T[0]が値Etに設定され、値B[0]が値Ebに設定される。
図12及び図13を参照して、実施の形態1に係る認証子生成処理を説明する。
認証子生成処理では、置換関数Gとして、恒等写像、つまりG(X)=Xが用いられる。
認証子生成部26は、暗号文生成処理で生成された値Et及び値Ebを取得する。認証子生成部26は、値Etを値T+[0]に設定し、値Ebを値B+[0]に設定する。
認証子生成部26は、値T+[0]を鍵として値B+[0]をブロック暗号Eによって暗号化して値B+[1]を生成する。
認証子生成部26は、値T+[0]を置換関数Pで変換した値P(T+[0])と、値B+[1]を置換関数Fで変換した値F(B+[1])とからnビットの値T+[1]を生成する。具体的には、認証子生成部26は、値P(T+[0])と値F(B+[1])との排他的論理和を計算して、値T+[1]を生成する。
認証子生成部26は、値T+[1]を認証子Tagに設定する。
なお、認証子生成部26は、値B+[1]を認証子Tagに設定してもよい。この場合には、ステップS163の処理は不要である。
図14から図18を参照して、実施の形態1に係る復号装置30の動作を説明する。
復号装置30は、分割処理と、初期値生成処理と、公開データ処理と、平文生成処理と、改ざん検知処理とを順に実行する。
但し、初期値生成処理において、値idを設定する際、初期値生成部42は、平文Mに代えて暗号文Cを用いる。つまり、初期値生成部42は、公開データAのビット長と、暗号文Cのビット長とに応じて値idを設定する。
図14を参照して、実施の形態1に係る分割処理を説明する。
(ステップS201)
分割部41は、秘密鍵Kと、ナンスNと、公開データAと、暗号文Cと、認証子Tagとを取得する。
具体的には、分割部41は、ストレージ33に記憶された秘密鍵Kを読み出す。また、分割部21は、入出力インタフェース14を介して接続された入力装置から、暗号化装置10によって出力されたナンスNと公開データAと暗号文Cと認証子Tagとを取得する。
(ステップS202)
分割部41は、図5のステップS102と同様に、公開データAを予め決められた順に2nビット毎に分割して値A[1],...,値A[a]を生成する。
分割部41は、暗号文Cを予め決められた順にnビット毎に分割して値C[1],...,値C[c]を生成する。ここでは、分割部41は、暗号文Cを先頭から順にnビット毎に分割して値C[1],...,値C[c]を生成する。したがって、値C[1],値C[2],...,値C[c-1]はそれぞれnビットの値であり、値C[c]は1ビット以上nビット以下の値である。また、暗号文Cは、値C[1],値C[2],...,値C[c]をビット結合した値である。
図15及び図16を参照して、実施の形態1に係る平文生成処理を説明する。
平文生成処理では、置換関数Pと、置換関数Fと、置換関数Rとは、暗号文生成処理と同じ関数が用いられる。
平文要素生成部44は、公開データ処理で生成された値Ht及び値Hbを取得する。平文要素生成部44は、値Htを値T[0]に設定し、値Hbを値B[0]に設定する。
平文要素生成部44は、暗号文Cのビット長が0であるか否かを判定する。
平文要素生成部44は、暗号文Cのビット長が0である場合には、暗号文Cを空列として、処理をステップS251に進める。一方、平文要素生成部44は、暗号文Cのビット長が0でない場合には、処理をステップS243に進める。
平文要素生成部44は、図14のステップS202で暗号文Cが分割された数である分割数cが1であるか否かを判定する。図14のステップS202では、暗号文Cが値C[1],...,値C[c]の“c”個に分割された。分割数cは、この“c”個を表す。
平文要素生成部44は、分割数cが1である場合には、処理をステップS245に進める。一方、平文要素生成部44は、分割数cが1でない場合には、処理をステップS244に進める。
平文要素生成部44は、i=1,...,c-1の各整数iについて昇順に、(1)から(3)を実行する。
(1)平文要素生成部44は、値T[i-1]を鍵として値B[i-1]をブロック暗号Eによって暗号化して値B[i]を生成する。
(2)平文要素生成部44は、値C[i]と値B[i]とから値M[i]を生成する。具体的には、平文要素生成部44は、値C[i]と値B[i]との排他的論理和を計算して、値M[i]を生成する。
(3)平文要素生成部44は、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、値B[i]を置換関数Fで変換した値F(B[i])と、値M[i]とからnビットの値T[i]を生成する。具体的には、平文要素生成部44は、値P(T[i-1])と値F(B[i])と値M[i]との排他的論理和を計算して、値T[i]を生成する。
平文要素生成部44は、値T[c-1]を鍵として値B[c-1]をブロック暗号Eによって暗号化して値B[c]を生成する。
平文要素生成部44は、値C[c]のビット長がnである場合には、値B[c]を置換関数Rを1回適用して変換した値R[1](B[c])を値R(B[c])として生成する。一方、値C[c]のビット長がnでない場合には、値B[c]を置換関数Rを2回適用して変換した値R[2](B[c])を値R(B[c])として生成する。
平文要素生成部44は、値R(B[c])の予め決められた位置の|C[c]|ビットを抽出して値B’[c]に設定する。例えば、平文要素生成部44は、値R(B[c])のうち先頭の|C[c]|ビットを値B’[c]に設定する、あるいは、値R(B[c])のうち後ろの|C[c]|ビットを値B’[c]に設定する。
平文要素生成部44は、値C[c]と値B’[c]とから値M[c]を生成する。具体的には、平文要素生成部44は、値C[c]と値B’[c]との排他的論理和を計算して、値M[c]を生成する。
平文生成部45は、i=1,...,cについての値M[i]を結合して平文Mを生成する。例えば、平文生成部45は、M=M[1]||M[2]||...||M[c]を計算することにより、平文Mを生成する。ここで、||は結合を表す。
平文要素生成部44は、値C[c]にビットをパディングして得られたnビットの値C’[c]を生成する。つまり、平文要素生成部44は、C’[c]=pad[n](C[c])を計算する。
そして、平文要素生成部44は、値T「c-1]を置換関数Pで変換した値P(T[c-1])と、値R(B[c])を置換関数Fで変換した値F(R(B[c]))と、値C’[c]とから値T[c]を生成する。具体的には、平文要素生成部44は、値P(T[c-1])と値F(R(B[c]))と値C’「c]との排他的論理和を計算して、値T「c]を生成する。
平文要素生成部44は、値T[c]を値Etに設定し、値R(B[c])を値Ebに設定する。そして、平文要素生成部44は、値Et及び値Ebを出力する。
なお、暗号文Cのビット長が0である場合には、値T[0]が値Etに設定され、値B[0]が値Ebに設定される。
図17及び図18を参照して、実施の形態1に係る改ざん検知処理を説明する。
ステップS261からステップS264の処理は、図12のステップS161からステップS164の処理と同じである。つまり、認証子生成部46によって、図12のステップS161からステップS164の処理と同じ処理が行われ、認証子Tagが生成される。ここで生成された認証子Tagを認証子Tag’と書く。
認証子生成部46は、図14のステップS201で取得された認証子Tagと、ステップS264で生成された認証子Tag’とが一致した場合には、平文生成処理で生成された平文Mを出力する。一方、認証子生成部46は、図14のステップS201で取得された認証子Tagと、ステップS264で生成された認証子Tag’とが一致しない場合には、“reject”を出力する。
以上のように、実施の形態1に係る暗号化装置10及び復号装置30は、認証暗号アルゴリズムを実現する。この認証暗号アルゴリズムでは、内部で更新されるメモリのサイズが2nビットである。これにより、この認証暗号アルゴリズムは、オンライン計算の安全性レベル及びオフライン計算の安全性レベルがともに最適のnビットであり、メモリサイズが最小である2nビットとなるブロック暗号を用いた認証暗号アルゴリズムとなっている。
図4に示す処理の開始時において、値Yが格納されているメモリをメモリ1、値Xが格納されているメモリをメモリ2とする。
まず、U=E(Y,X)が計算される。すると、メモリ1には、値Uが格納され、メモリ2には、アップデートされた値Yが格納される。ここで、暗号化関数Eの内部のメモリサイズは2nビットであり、メモリ2の値を巻き戻して元の値Yを復元可能であるという条件が成立するものとする。この条件は、AESといった現在提案されているほぼすべてのブロック暗号のアルゴリズムが満たしている条件である。
次に、メモリ2の値から元の値Yが復元される。すると、メモリ1には、値Uが格納され、メモリ2には、元の値Yが格納される。次に、置換関数Pを用いて値Yを変換した値P(Y)が計算され、置換関数G及び置換関数Fを用いて値Uを変換した値F(G(U))が計算される。すると、メモリ1には、値F(G(U))が格納され、メモリ2には、値P(Y)が格納される。次に、値P(Y)と値F(G(U))との排他的論理和が計算され、値Wが得られる。すると、メモリ1には、値Wが格納され、メモリ2には、値P(Y)が格納される。最後に、値F(G(U))から置換関数Fの逆の計算がされ、値Z=G(U)が復元される。すると、メモリ1には、値Wが格納され、メモリ2には、値Zが格納される。
以上のように、図4の処理は、サイズが2nビットのメモリを用いて計算が可能である。実施の形態1では、認証暗号アルゴリズムは、図4の処理を繰り返し実行することにより実現される。したがって、認証暗号アルゴリズムは、サイズが2nビットのメモリを用いて計算が可能である。
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
各機能構成要素がハードウェアで実現される場合には、暗号化装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
各機能構成要素がハードウェアで実現される場合には、復号装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
例えば、図21に示すように、暗号化装置10は、電子回路15として、ブロック暗号Eを計算するブロック暗号プロセッサと、分割処理を行う分割処理プロセッサと、初期値生成処理を行う初期値生成処理プロセッサと、公開データ処理を行う公開データ処理プロセッサと、暗号文生成処理を行う暗号文生成処理プロセッサと、認証子生成処理を行う認証子生成処理プロセッサとを備える構成とすることが考えられる。同様に、図22に示すように、復号装置30は、電子回路35として、ブロック暗号Eを計算するブロック暗号プロセッサと、分割処理を行う分割処理プロセッサと、初期値生成処理を行う初期値生成処理プロセッサと、公開データ処理を行う公開データ処理プロセッサと、平文生成処理を行う平文生成処理プロセッサと、改ざん検知処理を行う改ざん検知処理プロセッサとを備える構成とすることが考えられる。
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
Claims (18)
- 平文Mを順にnビット毎に分割して値M[1],...,値M[m]を生成する分割部と、
nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,mの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、前記分割部によって生成された値M[i]とから値C[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成する暗号要素生成部と、
前記暗号要素生成部によって生成されたi=1,...,mについての値C[i]を結合して暗号文Cを生成する暗号文生成部と、
値T[m]と値B[m]とから前記暗号文生成部によって生成された前記暗号文Cの改ざんを検知するための認証子Tagを生成する認証子生成部と
を備える暗号化装置。 - 前記暗号要素生成部は、i=1,...,m-1の各整数iについて昇順に、前記値B[i]と前記値M[i]との排他的論理和を計算して前記値C[i]を生成し、前記値B[m]を置換関数Rによって変換した値R(B[m])から前記値M[m]のビット長|M[m]|だけ抽出した値B’[m]と前記値M[m]との排他的論理和を計算して値C[m]を生成する
請求項1に記載の暗号化装置。 - 前記認証子生成部は、前記値T[m]を鍵として前記値B[m]をブロック暗号によって暗号化してnビットの値B[m+1]を生成し、前記値T[m]を置換関数Pで変換した値P(T[m])と、値B[m+1]を置換関数Fで変換した値F(B[m+1])とから前記認証子Tagを生成する
請求項1又は2に記載の暗号化装置。 - 前記認証子生成部は、前記値T[m]を鍵として前記値B[m]をブロック暗号によって暗号化してnビットの値B[m+1]を生成し、前記値B[m+1]を前記認証子Tagに設定する
請求項1又は2に記載の暗号化装置。 - 前記分割部は、公開データAを順に2nビット毎に分割して値A[1],...,値A[a]を生成し、
前記暗号化装置は、さらに、
nビットの値IVtを値T*[0]とし、nビットの値IVbを値B*[0]として、i=1,...,a-1の各整数iについて昇順に、値T*[i-1]を鍵として値B*[i-1]をブロック暗号によって暗号化して得られた値E(B*[i-1])と、値A[i]のうちのnビットの値A[i,b]とからnビットの値B*[i]を生成し、値T*[i-1]を置換関数Pで変換した値P(T*[i-1])と、値E(B*[i-1])を置換関数Fで変換した値F(E(B*[i-1]))と、値A[i]のうちの前記値A[i,b]以外のnビットである値A[i,t]とからnビットの値T*[i]を生成し、値T*[a-1]と値B*[a-1]と値A[a]とから前記値Htと前記値Hbとを生成する公開データ処理部
を備える請求項1から4までのいずれか1項に記載の暗号化装置。 - 前記公開データ処理部は、前記値T*[a-1]を鍵として値B*[a-1]をブロック暗号によって暗号化して得られた値E(B*[a-1])を置換関数Qによって変換した値Q(E(B*[a-1]))と、前記値A[a]にビットをパディングして得られた2nビットの値A’[a]のうちのnビットの値A’[a,b]とから前記値Btを生成し、前記値Q(E(B*[a-1]))を置換関数Fで変換した値F(値Q(E(B*[a-1])))と、値A’[a]のうちの前記値A’[a,b]以外のnビットである値A’[a,t]とから前記値Htを生成する
請求項5に記載の暗号化装置。 - 前記暗号化装置は、さらに、
nビットの鍵Kを用いて、nビットのナンスNをブロック暗号Eによって暗号化して得られた値E(N)と、前記公開データAと前記平文Mとに応じた値idとから前記値IVbを生成し、鍵Kを置換関数Pで変換した値P(K)と、前記値E(N)を置換関数Fで変換した値F(E[N])とから前記値IVtを生成する初期値生成部
を備える請求項5又は6に記載の暗号化装置。 - 暗号文Cを順にnビット毎に分割して値C[1],...,値C[c]を生成する分割部と、
nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,cの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、前記分割部によって生成された値C[i]とから値M[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成する平文要素生成部と、
前記平文要素生成部によって生成されたi=1,...,cについての値M[i]を結合して平文Mを生成する平文生成部と、
値T[c]と値B[c]とから前記平文生成部によって生成された前記平文Mの改ざんを検知するための認証子Tag’を生成する認証子生成部と
を備える復号装置。 - 前記平文要素生成部は、i=1,...,c-1の各整数iについて昇順に、前記値B[i]と前記値C[i]との排他的論理和を計算して前記値M[i]を生成し、前記値B[c]を置換関数Rによって変換した値R(B[c])から前記値C[c]のビット長|C[c]|だけ抽出した値B’[c]と前記値C[c]との排他的論理和を計算して値M[c]を計算する
請求項8に記載の復号装置。 - 前記認証子生成部は、前記値T[c]を鍵として前記値B[c]をブロック暗号によって暗号化してnビットの値B[c+1]を生成し、前記値T[c]を置換関数Pで変換した値P(T[c])と、値B[c+1]を置換関数Fで変換した値F(B[c+1])とから前記認証子Tag’を生成する
請求項8又は9に記載の復号装置。 - 前記認証子生成部は、前記値T[c]を鍵として前記値B[c]をブロック暗号によって暗号化してnビットの値B[c+1]を生成し、前記値B[c+1]を前記認証子Tag’に設定する
請求項8又は9に記載の復号装置。 - 前記分割部は、公開データAを順に2nビット毎に分割して値A[1],...,値A[a]を生成し、
前記復号装置は、さらに、
nビットの値IVtを値T*[0]とし、nビットの値IVbを値B*[0]として、i=1,...,a-1の各整数iについて昇順に、値T*[i-1]を鍵として値B*[i-1]をブロック暗号によって暗号化して得られた値E(B*[i-1])と、値A[i]のうちのnビットの値A[i,b]とからnビットの値B*[i]を生成し、値T*[i-1]を置換関数Pで変換した値P(T*[i-1])と、値E(B*[i-1])を置換関数Fで変換した値F(E(B*[i-1]))と、値A[i]のうちの前記値A[i,b]以外のnビットである値A[i,t]とからnビットの値T*[i]を生成し、値T*[a-1]と値B*[a-1]と値A[a]とから前記値Htと前記値Hbとを生成する公開データ処理部
を備える請求項8から11までのいずれか1項に記載の復号装置。 - 前記公開データ処理部は、前記値T*[a-1]を鍵として値B*[a-1]をブロック暗号によって暗号化して得られた値E(B*[a-1])を置換関数Qによって変換した値Q(E(B*[a-1]))と、前記値A[a]にビットをパディングして得られた2nビットの値A’[a]のうちのnビットの値A’[a,b]とから前記値Btを生成し、前記値Q(E(B*[a-1]))を置換関数Fで変換した値F(値Q(E(B*[a-1])))と、値A’[a]のうちの前記値A’[a,b]以外のnビットである値A’[a,t]とから前記値Htを生成する
請求項12に記載の復号装置。 - 前記復号装置は、さらに、
nビットの鍵Kを用いて、nビットのナンスNをブロック暗号Eによって暗号化して得られた値E(N)と、前記公開データAと前記暗号文Cとに応じた値idとから前記値IVbを生成し、鍵Kを置換関数Pで変換した値P(K)と、前記値E(N)を置換関数Fで変換した値F(E[N])とから前記値IVtを生成する初期値生成部
を備える請求項12又は13に記載の復号装置。 - コンピュータが、平文Mを順にnビット毎に分割して値M[1],...,値M[m]を生成し、
コンピュータが、nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,mの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、値M[i]とから値C[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成し、
コンピュータが、i=1,...,mについての値C[i]を結合して暗号文Cを生成し、
コンピュータが、値T[m]と値B[m]とから前記暗号文Cの改ざんを検知するための認証子Tagを生成する暗号化方法。 - 平文Mを順にnビット毎に分割して値M[1],...,値M[m]を生成する分割処理と、
nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,mの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、前記分割処理によって生成された値M[i]とから値C[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成する暗号要素生成処理と、
前記暗号要素生成処理によって生成されたi=1,...,mについての値C[i]を結合して暗号文Cを生成する暗号文生成処理と、
値T[m]と値B[m]とから前記暗号文生成処理によって生成された前記暗号文Cの改ざんを検知するための認証子Tagを生成する認証子生成処理と
を行う暗号化装置としてコンピュータを機能させる暗号化プログラム。 - コンピュータが、暗号文Cを順にnビット毎に分割して値C[1],...,値C[c]を生成し、
コンピュータが、nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,cの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、値C[i]とから値M[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成し、
コンピュータが、i=1,...,cについての値M[i]を結合して平文Mを生成し、
コンピュータが、値T[c]と値B[c]とから前記平文Mの改ざんを検知するための認証子Tag’を生成する復号方法。 - 暗号文Cを順にnビット毎に分割して値C[1],...,値C[c]を生成する分割処理と、
nビットの値Htを値T[0]とし、nビットの値Hbを値B[0]として、i=1,...,cの各整数iについて昇順に、値T[i-1]を鍵として値B[i-1]をブロック暗号によって暗号化してnビットの値B[i]を生成し、値B[i]と、前記分割処理によって生成された値C[i]とから値M[i]を生成し、値T[i-1]を置換関数Pで変換した値P(T[i-1])と、前記値B[i]を置換関数Fで変換した値F(B[i])と、前記値C[i]とからnビットの値T[i]を生成する平文要素生成処理と、
前記平文要素生成処理によって生成されたi=1,...,cについての値M[i]を結合して平文Mを生成する平文生成処理と、
値T[c]と値B[c]とから前記平文生成処理によって生成された前記平文Mの改ざんを検知するための認証子Tag’を生成する認証子生成処理と
を行う復号装置としてコンピュータを機能させる復号プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/015013 WO2022215249A1 (ja) | 2021-04-09 | 2021-04-09 | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2022215249A1 JPWO2022215249A1 (ja) | 2022-10-13 |
JP7317261B2 true JP7317261B2 (ja) | 2023-07-28 |
Family
ID=83545298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023512624A Active JP7317261B2 (ja) | 2021-04-09 | 2021-04-09 | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230388103A1 (ja) |
JP (1) | JP7317261B2 (ja) |
CN (1) | CN117083834A (ja) |
DE (1) | DE112021007029T5 (ja) |
WO (1) | WO2022215249A1 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019043921A1 (ja) | 2017-09-01 | 2019-03-07 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3324660A4 (en) | 2015-08-21 | 2018-07-04 | Huawei Technologies Co., Ltd. | Communication control method and apparatus, terminal, and network platform |
-
2021
- 2021-04-09 DE DE112021007029.0T patent/DE112021007029T5/de active Pending
- 2021-04-09 WO PCT/JP2021/015013 patent/WO2022215249A1/ja active Application Filing
- 2021-04-09 CN CN202180096330.3A patent/CN117083834A/zh active Pending
- 2021-04-09 JP JP2023512624A patent/JP7317261B2/ja active Active
-
2023
- 2023-08-08 US US18/231,626 patent/US20230388103A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019043921A1 (ja) | 2017-09-01 | 2019-03-07 | 三菱電機株式会社 | 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム |
Non-Patent Citations (2)
Title |
---|
CHAKRABORTI, Avik et al.,From Combined to Hybrid: Making Feedback-based AE even Smaller,IACR Transactions on Symmetric Cryptology, [online],Volume 2020, Special Issue 1,2020年06月22日,pp. 417-445,[retrieved on 2021.06.30], Retrieved from the Internet: <URL: https://tosc.iacr.org/index.php/ToSC/article/view/8626> <DOI: 10.13154/tosc.v2020.iS1.417-445> |
IWATA, Tetsu et al.,CLOC and SILC, [online],2016年09月15日,pp. 1-25,[retrieved on 2021.06.29], Retrieved from the Internet: <URL: https://competitions.cr.yp.to/round3/clocsilcv3.pdf> |
Also Published As
Publication number | Publication date |
---|---|
WO2022215249A1 (ja) | 2022-10-13 |
JPWO2022215249A1 (ja) | 2022-10-13 |
CN117083834A (zh) | 2023-11-17 |
DE112021007029T5 (de) | 2023-12-14 |
US20230388103A1 (en) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI734368B (zh) | 實現隱私保護的數據同態加解密方法及裝置 | |
JP6144992B2 (ja) | 検索可能暗号処理システム及び方法 | |
JP6386198B1 (ja) | 暗号化装置及び復号装置 | |
WO2019102624A1 (ja) | 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム | |
EP3661115B1 (en) | Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program | |
JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
JPWO2016088453A1 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
JP2015526757A (ja) | 特定フォーマットを有する代替データの生成および検証 | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
WO2018131129A1 (ja) | 暗号化タグ生成装置、検索クエリ生成装置及び秘匿検索システム | |
US11876888B2 (en) | Encryption device, decryption device, encryption method, decryption method, and computer readable medium | |
JP7317261B2 (ja) | 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム | |
JP7325689B2 (ja) | 暗号文変換システム、変換鍵生成方法、及び、変換鍵生成プログラム | |
JP6797337B2 (ja) | メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム | |
JP6203387B2 (ja) | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム | |
JP2015082077A (ja) | 暗号化装置、制御方法、及びプログラム | |
US11522675B2 (en) | Apparatus and method for encryption and decryption based on tweak converter to which key table is applied | |
JP7126635B2 (ja) | 再暗号化装置、暗号システム、再暗号化方法及び再暗号化プログラム | |
JP6949276B2 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
Vincy et al. | Encryption Model Converting Secret Message to a Single Character | |
JP2022053676A (ja) | 情報処理システム及び情報処理方法 | |
JP2023184198A (ja) | 連合学習システム及び連合学習方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230322 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230322 |
|
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: 20230620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7317261 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |