説明

認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体

【課題】鍵を1つだけ必要とし、ブロック暗号復号関数が不要な確定的認証付き暗号技術を提供する。
【解決手段】暗号化:入力p,qに対してブロック暗号EKの出力L,Uを求め、付帯データHと平文Mとを入力として、ユニバーサルハッシュ(UH)関数FL,Uとブロック暗号EKとで構成されるMACの出力(認証子T)を求め、認証子Tと出力Uとの混合データT#Uと平文Mとを入力としてブロック暗号利用モードを実行するBCMの出力(暗号文C)を求める。復号:p,qに対してブロック暗号EKの出力Lw,Uwを求め、認証子Tと出力Uwとの混合データT#Uwと暗号文Cとを入力としてブロック暗号利用モードを実行するBCMwの出力(平文Mw)を求める。付帯データHと平文Mwとを入力として、UH関数FL,Uとブロック暗号EKとで構成されるMACwの出力Twを求め、出力Twと認証子Tとが一致するか否かを検証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証付き暗号技術に関り、詳しくは、暗号化対象のメッセージに対して、当該メッセージの認証子を生成し、当該メッセージの一部(もしくは全部)を暗号化して暗号文を生成する暗号化技術と、(暗号化されないメッセージ部分と)認証子と暗号文の組を検証し、この組から元の暗号化対象であるメッセージを復号する復号技術に関する。
【背景技術】
【0002】
一般的に秘密鍵(共通鍵)暗号技術では、暗号化処理や復号処理には「鍵」と呼ばれる秘密情報を用いる。このため、予め、暗号化装置(送信者装置)と復号装置(受信者装置)の間で同じ鍵を共有しておく。
【0003】
暗号化対象であるメッセージは、暗号化されずにそのまま復号装置へ送信もしくは保存される部分と、暗号化されてその結果が復号装置へ送信もしくは保存される部分に分かれる。前者を「付帯データ」、後者を「平文」と呼ぶ。付帯データが無い場合も許容され、この場合メッセージ全体が平文である。平文を暗号化した結果を「暗号文」と呼ぶ。
【0004】
いわゆる認証付き暗号では、暗号化処理によって、暗号文の他に「メッセージ認証子(MAC:Message Authentication Code)」と呼ばれる固定長のデータが生成される。以下、「メッセージ認証子」を単に「認証子」と呼称する。また、本明細書では、慣用的表現に従い、表記「MAC」が固定長データではなく、認証子を生成するアルゴリズムや関数を意味する場合がある。
【0005】
認証付き暗号のうち、暗号化関数の出力が鍵と付帯データと平文のみによって決定的であるようなもの、すなわち1つの鍵と1つの付帯データと1つの平文の組み合わせに対して認証子と暗号文が一意に定まるようなものを「確定的認証付き暗号」という。確定的認証付き暗号は暗号化関数Encと復号関数Decの組(Enc,Dec)として構成される。
【0006】
暗号化関数Encの動作は次の通りである。鍵Kと付帯データHと平文Mを入力として、認証子Tと暗号文Cの組(T,C)を出力する。これを数式で表すと、(T,C)←EncK(H,M)となる。矢印は代入の操作を表す。
【0007】
復号関数Decの動作は次の通りである。鍵Kと付帯データHと認証子Tと暗号文Cを入力として、検証と復号を行う。検証に失敗した場合にはそれを意味する情報⊥を出力する。検証に成功した場合には、復号の結果得られた平文Mを出力する。これを数式で表すと、M←DecK(H,T,C)となる。検証に失敗した場合にはM=⊥となっている。
【0008】
確定的認証付き暗号が正しく動作するためには、暗号化関数Encと復号関数Decの間に整合性(完全性)が必要である。すなわち、任意の鍵Kと任意の付帯データHと任意の平文Mに対し、(T,C)←EncK(H,M)、M'←DecK(H,T,C)を計算したとき、常にM'=Mとなっていなければならない。
【0009】
確定的認証付き暗号の例として、SIVと呼ばれる暗号方式(非特許文献1参照)およびHBSと呼ばれる暗号方式(非特許文献2参照)がある。
【0010】
SIVは、CMAC(可変長メッセージに対するCBC MAC)およびCTRと呼ばれる暗号アルゴリズムを含むアルゴリズム構成を持つ。CBC(暗号ブロック連鎖モード)およびCTR(カウンタモード)はブロック暗号利用モード(Block cipher modes of operation)であり、CMACおよびCTRはブロック暗号の暗号化関数EKを含むアルゴリズム構成を持つ(非特許文献3参照)。CMACおよびCTRではそれぞれ独立の鍵が使用される。
【0011】
ブロック暗号とは、固定長nの平文Mおよびこれとは別に定められた長さの鍵Kを入力として(平文Mと同じ)固定長nの暗号文Cを出力する暗号化関数EK:M→Cと、固定長nの暗号文Cと鍵Kを入力として固定長nの平文Mを出力する復号関数EK-1:C→Mの組で表される暗号方式である。ここで、同一の鍵Kによって平文Mを暗号化した結果を復号すれば元の平文Mに戻るようになっている。
【0012】
HBSは、ユニバーサルハッシュ関数で構成されているMACと、ブロック暗号の暗号化関数EKを要素に持つCTRを含むアルゴリズム構成を持つ。ユニバーサルハッシュ関数においてブロック暗号の暗号化関数EKによる特別な暗号文を鍵として流用することによって、HBS全体の鍵はブロック暗号の暗号化関数EKの鍵Kのみになっている。また、CTRの初期値にはユニバーサルハッシュ関数の出力計算結果Sを用いている。認証子Tは、計算結果Sを入力とするブロック暗号の暗号化関数EKの出力で与えられる(T←EK(S))。
【0013】
ユニバーサルハッシュ関数の種類はいくつかあるが、HBSは有限体上の多項式による方法を採用している。
【先行技術文献】
【非特許文献】
【0014】
【非特許文献1】Phillip Rogaway and Thomas Shrimpton, "A Provable-Security Treatment of the Key-Wrap Problem," EUROCRYPT 2006.
【非特許文献2】Tetsu Iwata and Kan Yasuda, "HBS: A Single-Key Mode of Operation forDeterministic Authenticated Encryption," FSE 2009.
【非特許文献3】Morris Dworkin, "Recommendation for Block Cipher Modes of Operation Methods and Techniques," NIST Special Publication 800-38A 2001 Edition
【発明の概要】
【発明が解決しようとする課題】
【0015】
このようにSIVでは、鍵が2つ必要であった。他方、HBSでは、鍵は1つで足りるものの、復号処理において、認証子Tからユニバーサルハッシュ関数の出力計算結果Sを得るためにブロック暗号の復号関数EK-1を必要とし、さらに付帯データHの個数の上限を予め定めておかなければならないという制約が存在した。
【0016】
そこで本発明は、鍵を1つだけ必要とし、ブロック暗号の復号関数が不要な、確定的認証付き暗号技術を提供することを目的とする。
【課題を解決するための手段】
【0017】
付帯データHが存在する場合:
本発明は、暗号化技術に関して、異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求め(鍵生成処理)、暗号化されない付帯データHと平文Mとを入力として、出力Lおよび出力Uを鍵とするユニバーサルハッシュ関数FL,Uとブロック暗号EKとで構成される演算MACの出力を認証子Tとして求め(認証子生成処理)、認証子Tと出力Uとの混合データT#Uと平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める(暗号化処理)。なお、演算MACの出力は、付帯データHと平文Mとを入力とするユニバーサルハッシュ関数FL,Uの出力Sに対するブロック暗号EKの出力EK(S)である。
また、復号技術に関して、上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求め(鍵生成処理)、上記認証子Tと出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求め(復号処理)、上記付帯データHと平文Mwとを入力として、出力Lwおよび出力Uwを鍵とする上記ユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する(検証処理)。なお、演算MACwの出力Twは、上記付帯データHと平文Mwとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である。
【0018】
付帯データHが存在しない場合:
本発明は、暗号化技術に関して、異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求め(鍵生成処理)、平文Mを入力として、出力Lを鍵とするユニバーサルハッシュ関数FLとブロック暗号EKとで構成される演算MACの出力を認証子Tとして求め(認証子生成処理)、認証子Tと出力Uとの混合データT#Uと平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める(暗号化処理)。なお、演算MACの出力は、平文Mを入力とするユニバーサルハッシュ関数FLの出力Sに対するブロック暗号EKの出力EK(S)である。
また、復号技術に関して、上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求め(鍵生成処理)、上記認証子Tと出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求め(復号処理)、平文Mwを入力として、出力Lwを鍵とする上記ユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する(検証処理)。なお、演算MACwの出力Twは、平文Mwを入力とする上記ユニバーサルハッシュ関数FLの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である。
【0019】
また、本発明の暗号システムは、上記認証付き暗号化装置と上記検証付き復号装置を含んで構成される。
【0020】
また、認証付き暗号化装置としてコンピュータを機能させるプログラムによって、コンピュータを認証付き暗号化装置として作動処理させることができる。このようなプログラムを記録した、コンピュータによって読み取り可能なプログラム記録媒体によって、他のコンピュータを認証付き暗号化装置として機能させることや、プログラムを流通させることなどが可能になる。同様に、検証付き復号装置としてコンピュータを機能させるプログラムによって、コンピュータを検証付き復号装置として作動処理させることができる。このようなプログラムを記録した、コンピュータによって読み取り可能なプログラム記録媒体によって、他のコンピュータを検証付き復号装置として機能させることや、プログラムを流通させることなどが可能になる。なお、一つの記録媒体に、これらのプログラムを記録することができる。
【発明の効果】
【0021】
本発明に拠れば、異なる二つの入力p,qそれぞれに対するブロック暗号EKの出力L,Lw,U,Uwが鍵として使用されるから、ブロック暗号EKの鍵Kだけを必要とし、また、復号処理にて認証子Tをブロック暗号利用モードの初期値(鍵)の一部に使用するから、ブロック暗号の復号関数が不要な確定的認証付き暗号を実現できる。また、付帯データHが存在する場合、付帯データの個数の上限を決める必要がない。
【図面の簡単な説明】
【0022】
【図1】本発明による実施形態の認証付き暗号化装置の機能構成例を示す図。
【図2】本発明による実施形態の認証付き暗号化処理を実施する処理フローを示す図。
【図3】2変数ユニバーサルハッシュ関数のスキーム。
【図4】本発明による実施形態の認証付き暗号化装置の機能構成例(変形例)を示す図。
【図5】本発明による実施形態の検証付き復号装置の機能構成例を示す図。
【図6】本発明による実施形態の検証付き復号処理を実施する処理フローを示す図。
【図7】本発明による実施形態の検証付き復号装置の機能構成例(変形例)を示す図。
【図8】本発明による実施形態の暗号システムの構成例を示す図。
【発明を実施するための形態】
【0023】
図面を参照して、本発明の実施形態を説明する。
実施形態で説明する本発明の細部においては、数値計算処理(特に有限体上の演算)が必要となる場合があるが、数値計算処理自体は、従来的な技術と同様にして達成されるので、その演算処理方法などの詳細な説明は省略する(この点の技術水準を示す数値計算処理が可能なソフトウェアとしては、例えばPARI/GP、KANT/KASHなどが挙げられる。PARI/GPについては、例えばインターネット〈URL: http://pari.math.u-bordeaux.fr/〉[平成21年7月30日検索]を参照のこと。KANT/KASHについては、例えばインターネット〈URL: http://www.math.tu-berlin.de/algebra/〉[平成21年7月30日検索]を参照のこと。)。
また、この点に関する文献として、参考文献1を挙げることができる。
(参考文献1)Alfred Menezes, Ian Blake, Shuhong Gao, Ron Mullin, Scott Vanstone, and Tomik Yaghoobian, "Applications of Finite Fields," Kluwer Academic Publishers, 1993.
【0024】
≪暗号化処理EncK(H,M)≫
図1は、認証付き暗号化装置100の機能構成図を示している。
認証付き暗号化装置100は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、CPU(Central Processing Unit)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(Random Access Memory)やROM(Read Only Memory)、ハードディスクである外部記憶装置、並びにこれらの入力部、出力部、CPU、RAM、ROM、外部記憶装置間のデータのやり取りが可能なように接続するバスなどを備えている。また必要に応じて、認証付き暗号化装置100に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0025】
認証付き暗号化装置100の外部記憶装置には、認証付き暗号化処理のためのプログラム並びにこのプログラムの処理において必要となるデータなどが記憶されている〔外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。〕。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。以下、データやその格納領域のアドレスなどを記憶する記憶装置を単に「記憶部」と呼ぶことにする。
【0026】
認証付き暗号化装置100の記憶部には、異なる二つの入力それぞれに対して鍵Kのブロック暗号EKの出力L,Uを求めるためのプログラムと、付帯データHと平文Mとを入力として、出力Lおよび出力Uを鍵とするユニバーサルハッシュ関数FL,Uとブロック暗号EKとで構成される演算MACの出力(認証子T)を求めるためのプログラムと、認証子Tと出力Uとの混合データT#Uと平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力(暗号文C)を求めるためのプログラムが記憶されている。
【0027】
認証付き暗号化装置100では、記憶部に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAMに読み込まれて、CPUで解釈実行・処理される。この結果、CPUが所定の機能(鍵生成部、認証子生成部、暗号化部)を実現することで認証付き暗号化処理が実現される。
【0028】
次に、実施形態として、図2を参照しながら、認証付き暗号化装置100による認証付き暗号化処理の流れを叙述的に説明する。
【0029】
なお、本発明では復号処理においてブロック暗号の復号関数EK-1が不要であり、詳しくは後述するが、復号処理においてもブロック暗号の暗号化関数EKを用いる。よって、敢えてブロック暗号の暗号化関数と復号関数を区別する必要は無いので、暗号化処理および復号処理で用いられるブロック暗号の暗号化関数EKを単にブロック暗号EKと云うことにする。このブロック暗号EKは予め定められたビット長の秘密鍵Kを用いて、入力されたnビットのデータに対してnビットのデータを出力する。なお、暗号学的安全性の観点から、ブロック暗号EKとして暗号学的に安全と信じられているブロック暗号を用いればよい。現在、安全とみなされているブロック暗号には、例えばAES(Advanced Encryption Standard)の128ビット鍵版、Camellia(登録商標)の128ビット鍵版などがある。秘密鍵Kは認証付き暗号化装置100と後述する検証付き復号装置200とで共有される。
【0030】
鍵生成部101は、0nを入力とするブロック暗号EKの出力L(L←EK(0n))と、1nを入力とするブロック暗号EKの出力U(U←EK(1n))を求める(ステップS1e)。ここで0nは0のnビット2進数表記であり、1nは1のnビット2進数表記である。この出力Lと出力Uが後述するユニバーサルハッシュ関数FL,Uの鍵として使用される。
【0031】
次に、認証子生成部102は、暗号化対象であるメッセージを構成する平文Mと付帯データHを入力として(但し、付帯データHが無い場合も許容される。)、ユニバーサルハッシュ関数FL,Uとブロック暗号EKで構成される演算MACKL,U(H,M)の出力である認証子Tを求める(ステップS2e)。
【0032】
付帯データHは、dを2以上の予め定められた整数として、(d−1)個の部分付帯データHj (j=0,1,…,d-2)の集まりとする。例えば、付帯データHおよび部分付帯データHjがそれぞれバイナリ系列であるとして、付帯データHが(d−1)個の部分付帯データHj (j=0,1,…,d-2)のビット結合H0‖H1‖…‖Hd-2で表される場合も許容される。ビット結合x‖yは、バイナリ系列xとバイナリ系列yの結合であり、例えば、(0110)‖(101)=(0110101)である。
【0033】
ここで説明の便宜から記号を導入する。d次元ベクトルX=(X0,X1,…,Xd-2,Xd-1)を考える。ただし、Xi∈{0,1}* (i=0,1,…,d-2,d-1)とする。ここで{0,1}*は任意のバイナリ系列であり、{0,1}*=∪k≧0{0,1}kである。このベクトル記法に倣い、(d−1)個の部分付帯データHj (j=0,1,…,d-2)の集まりである付帯データHをH=(H0,H1,…,Hd-2)とベクトル表記する。また、(d−1)個の部分付帯データHj (j=0,1,…,d-2)の集まりである付帯データHと平文Mから構成されるメッセージを(H,M)=(H0,H1,…,Hd-2,M)とd次元ベクトル表記する。但し、付帯データHが無い場合、(H,M)は1次元ベクトル(M)を意味するものとする。
【0034】
認証子生成部102による具体的な処理内容は次のとおりである。まず、認証子生成部102は、式(1)に基づき、2変数ユニバーサルハッシュ関数FL,U(H,M)の出力Sを求める。図3は2変数ユニバーサルハッシュ関数FL,U(H,M)のスキームを示している。なお、付帯データHが無い場合は、式(1a)に基づき、1変数ユニバーサルハッシュ関数FL(M)の出力Sを求める。この場合の1変数ユニバーサルハッシュ関数FL(M)のスキームは、図3に示す2変数ユニバーサルハッシュ関数FL,U(H,M)の最下段のスキームである。
【数1】

【0035】
式(1)に現われる記号"・"は2n個の元からなる有限体上の乗算(後述する。)を表し、記号"+"の丸囲い文字はビット単位の排他的論理和+XORを表す。式(1)または式(1a)に現れる関数fL(X)は式(2)で与えられる。
【数2】

【0036】
式(2)に現われるxは式(3)で与えられる。式(3)に現われる|X|は、データX(各部分付帯データHjまたは平文M)をバイナリ系列で表したときのビット長である。X[g] (g=0,1,・・・,x-1)はデータXをx分割した場合の先頭からg番目の部分データである。つまり、データXおよび部分データX[g]がそれぞれバイナリ系列であるとして、データXは部分データX[g] (g=0,1,・・・,x-1)のビット結合X[0]‖X[1]‖…‖X[x-1]で表される。このとき、|X[0]|=|X[1]|=・・・=|X[x-2]|=nであり、1≦|X[x-1]|≦nである。
【数3】

【0037】
式(2)に現われるπ(X[x-1])は式(4)で与えられる。π(X[x-1])は、部分データX[x-1]のビット長がnになるようにするためのパディング処理を行うパディング関数を表している。つまり、|X[x-1]|=nの場合、そのままX[x-1]を出力し、1≦|X[x-1]|≦n−1の場合、nビットのバイナリ系列X[x-1]‖1‖0n-1-|X[x-1]|を出力する。0n-1-|X[x-1]|は、0を(n-1-|X[x-1]|)個並べたバイナリ系列である。
【数4】

【0038】
また、式(2)に現われるδ(X[x-1])は式(5)で与えられる。2nは2のnビット2進数表記である。δ(X[x-1])は、|X[x-1]|=nであるか否かを識別するための識別関数である。
【数5】

【0039】
<2n個の元からなる有限体上の乗算>
ここで有限体上の多項式による演算について、ビット列Aとビット列Bとの足し算は論理的排他和XORにより行い、ビット列Aとビット列Bとの乗算は例えば以下のように行う。まず固定長nビットのビット列を一変数多項式に変換する。n=128の場合を例として、例えばビット列101201001001を多項式x127+x6+x3+1に対応させる(0120は0を120個並べたビット列を表す。)。このようにnビットのビット列A,Bをそれぞれ最大次数nのxに関する一変数多項式に対応させて、多項式の(二元体の上での)乗算を行う。この積を、予め固定された既約多項式、例えばx128+x7+x2+x+1で割り、剰余を求める。この剰余は高々(n−1)次の多項式であるから、この剰余をビット列に変換(上述のビット列から多項式への変換の逆変換)して、有限体上での積の結果に対応するnビットのビット列を得る。例えば剰余がx50+x4+x+1であればこの変換で得られるビット列は077104510011である。既約多項式は暗号化処理と復号処理にて同一のものを使う必要がある。なお、この演算方法に限定されず、その他の演算方法であってもよい。
【0040】
続いて認証子生成部102は、式(1)に基づく2変数ユニバーサルハッシュ関数FL,U(H,M)の出力S、または、式(1a)に基づく1変数ユニバーサルハッシュ関数FL(M)の出力Sを入力とするブロック暗号EKの出力T(T←EK(S))を求める。この出力Tが演算MACKL,U(H,M)の出力であり、認証子Tでもある。
【0041】
次に、暗号化部103は、平文MとT#Uを入力としてCTR(ブロック暗号EKとmsb(Most Significant Bit)演算とで構成されている。)を実行する演算CTRKT#U(M)の出力である暗号文Cを求める(ステップS3e)。この場合、T#UはCTRのカウンタに相当する。T#UはTとUとの混合データを意味し、通常の繰り上がり算術加算+でもよいし、ビット単位の排他的論理和+XORでもよいし、バイナリ系列であるTとUをそれぞれ部分バイナリ系列Tr (r=0,1,・・・,s)とUr (r=0,1,・・・,s)に分割し(ただし、|Tr|=|Ur|)、部分バイナリ系列TrとUrとの加算を行い、T+Uを求める多分割バイナリ算術加算でもよい。ここではCTRの情報理論的安全性と演算負荷のバランスを考慮して、s=1の場合の2等分割バイナリ算術加算を例示説明する。以下、演算#は2等分割バイナリ算術加算であることを表す記号"+"の四角囲い文字であるとする。
【0042】
暗号化部103の具体的な処理内容は次のとおりである。まず、暗号化部103は、式(6a)に従ってmを求める。
【数6】

【0043】
そして、暗号化部103は、式(6b)に従って部分データR[g] (g=0,1,・・・,m-1)を求め、さらに、これら部分データR[g] (g=0,1,・・・,m-1)のビット結合R[0]‖R[1]‖…‖R[m-1]を求める。なお、式(6b)において、ブロック暗号EKの入力は、演算#が通常の繰り上がり算術加算+の場合はT+U+gとなり、演算#が排他的論理和の場合は、2g・(T +XORw)となる(記号“・”は有限体での乗算を表す。)
【数7】

【0044】
さらに、暗号化部103は、式(6c)に従って暗号文Cを求める。式(6c)に現われる演算msb(|X|,Z)は、バイナリ系列Zの上位|X|ビットを抜き出す処理を表す。
【数8】

【0045】
このような処理で暗号文Cを求めることに限定されず、例えば次のようにして暗号文Cを求めてもよい。暗号化部103は、平文Mが部分データM[g] (g=0,1,・・・,m-1)のビット結合M[0]‖M[1]‖…‖M[m-1]で表されているとして(ただし、|M[0]|=|M[1]|=・・・=|M[m-2]|=nであり、1≦|M[m-1]|≦nである。)、式(6d)に基づき、部分データC[g] (g=0,1,・・・,m-1)を求め(ただし、|C[0]|=|C[1]|=・・・=|C[m-2]|=nであり、1≦|C[m-1]|≦nである。)、C[g] (g=0,1,・・・,m-1)のビット結合C[0]‖C[1]‖…‖C[m-1]を暗号文Cとして出力する(図4参照)。なお、ここでは、C[g] (g=0,1,・・・,m-1)のビット結合C[0]‖C[1]‖…‖C[m-1]を暗号文Cとしたが、C[g] (g=0,1,・・・,m-1)の組(C[0],C[1],…,C[m-1])を暗号文Cとしてもよい。
【数9】

【0046】
暗号化処理EncK(H,M)の擬似コードを表1に示す。
【表1】

【0047】
以上の暗号化処理によって、認証付き暗号化装置100は、付帯データH(但し、付帯データHが存在する場合である。)と認証子Tと暗号文Cを出力する。付帯データH(但し、付帯データHが存在する場合である。)と認証子Tと暗号文Cは、図示しない通信路を経由して、あるいは、記録媒体に保存されて、検証付き復号装置200に送られる。
【0048】
≪復号処理DecK(H,(T,C))≫
図5は、検証付き復号装置200の機能構成図を示している。
検証付き復号装置200は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、CPU(Central Processing Unit)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(Random Access Memory)やROM(Read Only Memory)、ハードディスクである外部記憶装置、並びにこれらの入力部、出力部、CPU、RAM、ROM、外部記憶装置間のデータのやり取りが可能なように接続するバスなどを備えている。また必要に応じて、検証付き復号装置200に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
【0049】
検証付き復号装置200の外部記憶装置には、認証付き暗号化処理のためのプログラム並びにこのプログラムの処理において必要となるデータなどが記憶されている〔外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。〕。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。以下、データやその格納領域のアドレスなどを記憶する記憶装置を単に「記憶部」と呼ぶことにする。
【0050】
検証付き復号装置200の記憶部には、異なる二つの入力それぞれに対してブロック暗号EKの出力Lw,Uwを求めるためのプログラムと、認証子Tと出力Uwとの混合データT#Uwと暗号文Cとを入力としてブロック暗号利用モードを実行する演算BCMwの出力(平文Mw)を求めるためのプログラムと、付帯データHと平文Mwとを入力として、出力Lwおよび出力Uwを鍵とするユニバーサルハッシュ関数FL,Uとブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと認証子Tとが一致するか否かを検証するためのプログラムが記憶されている。なお、以下の説明では、記号に附された上添え字と下添え字では添え字wを省略している。
【0051】
検証付き復号装置200では、記憶部に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてRAMに読み込まれて、CPUで解釈実行・処理される。この結果、CPUが所定の機能(鍵生成部、復号部、検証部)を実現することで検証付き復号処理が実現される。
【0052】
次に、実施形態として、図6を参照しながら、検証付き復号装置200による認証付き暗号化処理の流れを叙述的に説明する。
【0053】
なお、既述のとおり、復号処理において使用されるブロック暗号EKは、暗号化処理において使用されるブロック暗号EKと同一である。従って、復号処理のために復号関数EK-1を準備する必要がないことが本発明の特徴の一つである。
【0054】
鍵生成部201は、0nを入力とするブロック暗号EKの出力Lw(Lw←EK(0n))と、1nを入力とするブロック暗号EKの出力Uw(Uw←EK(1n))を求める(ステップS1d)。ここで0nは0のnビット2進数表記であり、1nは1のnビット2進数表記である。この出力Lwと出力Uwが復号処理におけるユニバーサルハッシュ関数FL,Uの鍵として使用される。
【0055】
次に、復号部202は、認証付き暗号化装置100から送られた暗号文Cと、認証付き暗号化装置100から送られた認証子Tと鍵生成部201が求めた出力Uwとの混合データT#Uwとを入力としてCTR(ブロック暗号EKとmsb(Most Significant Bit)演算とで構成されている。)を実行する演算CTRKT#U(C)の出力である平文Mwを求める(ステップS2d)。この演算CTRKT#U(C)は、入力が暗号文Cであること以外は、暗号化処理EncK(H,M)で説明した演算CTRKT#U(M)と同じである。ここでの演算#は、暗号化処理EncK(H,M)での演算CTRKT#U(M)の演算#と同じである。
【0056】
復号部202の具体的な処理内容は次のとおりである。まず、復号部202は、式(7)に従ってmを求める。
【数10】

【0057】
そして、復号部202は、式(8)に従って部分データRw[i] (i=0,1,・・・,m-1)を求め、さらに、これら部分データRw[i] (i=0,1,・・・,m-1)のビット結合Rw[0]‖Rw[1]‖…‖Rw[m-1]を求める。なお、式(8)において、ブロック暗号EKの入力は、演算#が通常の繰り上がり算術加算+の場合はT+Uw+iとなり、演算#が排他的論理和の場合は、2g・(T +XORw)となる(記号“・”は有限体での乗算を表す。)。
【数11】

【0058】
さらに、復号部202は、式(9)に従って平文Mwを求める。
【数12】

【0059】
ここでは認証付き暗号化装置100から送られた暗号文Cが、C[g] (g=0,1,・・・,m-1)のビット結合C[0]‖C[1]‖…‖C[m-1]である場合の処理の一例を示した。例えば暗号文CがC[g] (g=0,1,・・・,m-1)の組(C[0],C[1],…,C[m-1])である場合には、次の処理を行うことで平文Mwを得ることができる(図7参照)。
まず、復号部202は、式(10)に従ってmを求める。次に、復号部202は、式(11)に基づき、部分データM[i] (i=0,1,・・・,m-1)を求め、Mw[i] (i=0,1,・・・,m-1)のビット結合Mw[0]‖Mw[1]‖…‖Mw[m-1]を平文Mwとして出力する。
【数13】

【0060】
次に、検証部203は、ステップS2dの処理で得られた平文Mwと認証付き暗号化装置100から送られた付帯データHを入力として(但し、付帯データHが無い場合もある。)、ユニバーサルハッシュ関数FL,Uとブロック暗号EKで構成される演算MACKL,U(H,Mw)の出力T'を求め、出力T'と認証付き暗号化装置100から送られた認証子Tとが一致するか否かを検証する(ステップS3d)。この演算MACKL,U(H,Mw)は、暗号化処理EncK(H,M)で説明した演算MACKL,U(H,M)と同じである。
【0061】
検証部203による具体的な処理内容は次のとおりである。まず、検証部203は、式(12)に基づき、2変数ユニバーサルハッシュ関数FL,U(H,Mw)の出力Swを求める。なお、付帯データHが無い場合は、式(12a)に基づき、1変数ユニバーサルハッシュ関数FL(Mw)の出力Swを求める。
【数14】

【0062】
式(12)または式(12a)に現れる関数fL(X)は式(13)で与えられる。
【数15】

【0063】
式(13)に現われるxは式(14)で与えられる。式(14)に現われる|X|は、データX(各部分付帯データHjまたは平文Mw)をバイナリ系列で表したときのビット長である。
【数16】

【0064】
式(13)に現われるπ(X[x-1])は上記式(4)で与えられる。また、式(13)に現われるδ(X[x-1])は上記式(5)で与えられる。
【0065】
続いて検証部203は、式(12)に基づく2変数ユニバーサルハッシュ関数FL,U(H,Mw)の出力Sw、または、式(12a)に基づく1変数ユニバーサルハッシュ関数FL(Mw)の出力Swを入力とするブロック暗号EKの出力T'(T'←EK(Sw))を求める。この出力T'が演算MACKL,U(H,Mw)の出力である。
【0066】
もし、T'=Tならば検証成功であり、検証部203はステップS2dの処理で得られた平文Mw(=M)を出力する。T'≠Tならば検証失敗であり、検証部203は検証失敗を意味する情報Mw(=⊥)を出力する。
【0067】
復号処理DecK(H,(T,C))の擬似コードを表2に示す。
【表2】

【0068】
上記実施形態では、認証付き暗号化装置100の鍵生成部101と検証付き復号装置200の鍵生成部201では、いずれも、0nを入力とするブロック暗号EKの出力L,Lwと、1nを入力とするブロック暗号EKの出力U,Uwを求めたが、入力は0nと1nに限定されない。予め定められた異なる二つの入力p,qそれぞれに対して、ブロック暗号EKの出力L←EK(p),Lw←EK(p),U←EK(q),Uw←EK(q)を求めればよい。ただし、入力となるpとqは、認証付き暗号化装置100の鍵生成部101と検証付き復号装置200の鍵生成部201とで同じでなければならない。
【0069】
また、上記実施形態では、ブロック暗号利用モードとして情報理論的安全性や演算効率などの観点からCTRを用いたが、これに限定されない。CTRに替えて、CBC(暗号ブロック連鎖モード)、CFB(暗号フィードバックモード)、OFB(出力フィードバックモード)など初期値(CTRのカウンタやCBCの初期化ベクトルに相当する。)入力型のブロック暗号利用モードを用いることができる。なお、本発明では、暗号化処理においてブロック暗号利用モードの出力に初期値を含める必要が無い。この初期値は、復号処理において、認証付き暗号化装置100から送られた認証子Tと検証付き復号装置200の鍵生成部201で得られる鍵Uから生成できるからである。
【0070】
なお、上記各擬似コードに現れるBTM(Bivariate Tag Mixing)は本発明の略記号である。
【0071】
≪システム≫
本発明の実施形態である暗号システム300は、図8に示すように、複数のクライアント装置10を含んでいる。これらの各装置は、例えばインターネットである通信網5を介して相互に通信可能とされている。
【0072】
クライアント装置10は、処理目的に応じて、メッセージを暗号化する認証付き暗号化装置100として、あるいは暗号文Cを復号する検証付き復号装置200として機能する。認証付き暗号化装置100と検証付き復号装置200の詳細は既に説明したとおりである。なお、暗号システム300は、認証付き暗号化装置100としてのみ機能するクライアント装置および/または検証付き復号装置200としてのみ機能するクライアント装置を含んでもよい。
【0073】
以上の実施形態の他、本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
【0074】
また、上記各装置における処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における処理機能がコンピュータ上で実現される。
【0075】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0076】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0077】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0078】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本発明の各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

【特許請求の範囲】
【請求項1】
異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成手段と、
暗号化されない付帯データHと平文Mとを入力として、上記出力Lおよび上記出力Uを鍵とするユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成手段と、
上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化手段と
を含み、
上記演算MACの出力は、上記付帯データHと上記平文Mとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Sに対する上記ブロック暗号EKの出力EK(S)である
認証付き暗号化装置。
【請求項2】
異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成手段と、
平文Mを入力として、上記出力Lを鍵とするユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成手段と、
上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化手段と
を含み、
上記演算MACの出力は、上記平文Mを入力とする上記ユニバーサルハッシュ関数FLの出力Sに対する上記ブロック暗号EKの出力EK(S)である
認証付き暗号化装置。
【請求項3】
請求項1に記載の認証付き暗号化装置において、
上記付帯データHが、dを2以上の予め定められた整数として、(d−1)個の部分付帯データHj (j=0,1,…,d-2)の集まりであり、上記ブロック暗号EKがnビットのブロック暗号である場合に、上記ユニバーサルハッシュ関数FL,Uが式(c1)
【数17】

で与えられる認証付き暗号化装置。
【請求項4】
請求項2に記載の認証付き暗号化装置において、
上記ブロック暗号EKがnビットのブロック暗号である場合に、上記ユニバーサルハッシュ関数FLが式(c2)
【数18】

で与えられる認証付き暗号化装置。
【請求項5】
請求項1から請求項4のいずれかに記載の認証付き暗号化装置において、
上記ブロック暗号利用モードは、初期値入力型のブロック暗号利用モードであり、上記混合データT#Uが当該ブロック暗号利用モードの初期値として用いられる
認証付き暗号化装置。
【請求項6】
鍵生成手段が異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成ステップと、
認証子生成手段が、暗号化されない付帯データHと平文Mとを入力として、上記出力Lおよび上記出力Uを鍵とするユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成ステップと、
暗号化手段が、上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化ステップと
を有し、
上記演算MACの出力は、上記付帯データHと上記平文Mとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Sに対する上記ブロック暗号EKの出力EK(S)である
認証付き暗号化方法。
【請求項7】
鍵生成手段が、異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成ステップと、
認証子生成手段が、平文Mを入力として、上記出力Lを鍵とするユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成ステップと、
暗号化手段が、上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化ステップと
を有し、
上記演算MACの出力は、上記平文Mを入力とする上記ユニバーサルハッシュ関数FLの出力Sに対する上記ブロック暗号EKの出力EK(S)である
認証付き暗号化方法。
【請求項8】
[1]異なる二つの入力p,qそれぞれに対して求められた鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を鍵とするユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACの、暗号化されない付帯データHと平文Mとを入力としたときの出力(ただし、当該演算MACの出力は、上記付帯データHと上記平文Mとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Sに対する上記ブロック暗号EKの出力EK(S)である。)を認証子Tとし、[2]上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力である暗号文Cの復号を行う検証付き復号装置であり、
上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成手段と、
上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号手段と、
上記付帯データHと上記平文Mwとを入力として、上記出力Lwおよび上記出力Uwを鍵とする上記ユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証手段と
を含み、
上記演算MACwの出力Twは、上記付帯データHと上記平文Mwとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
検証付き復号装置。
【請求項9】
[1]異なる二つの入力p,qそれぞれに対して求められた鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)のうち、Lを鍵とするユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACの、平文Mを入力としたときの出力(ただし、当該演算MACの出力は、上記平文Mを入力とする上記ユニバーサルハッシュ関数FLの出力Sに対する上記ブロック暗号EKの出力EK(S)である。)を認証子Tとし、[2]上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力である暗号文Cの復号を行う検証付き復号装置であり、
上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成手段と、
上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号手段と、
上記平文Mwを入力として、上記出力Lwを鍵とする上記ユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証手段と
を含み、
上記演算MACwの出力Twは、上記平文Mwを入力とする上記ユニバーサルハッシュ関数FLの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
検証付き復号装置。
【請求項10】
請求項8に記載の検証付き復号装置において、
上記付帯データHが、dを2以上の予め定められた整数として、(d−1)個の部分付帯データHj (j=0,1,…,d-2)の集まりであり、上記ブロック暗号EKがnビットのブロック暗号である場合に、上記ユニバーサルハッシュ関数FL,Uが式(c3)
【数19】

で与えられる検証付き復号装置。
【請求項11】
請求項9に記載の検証付き復号装置において、
上記ブロック暗号EKがnビットのブロック暗号である場合に、上記ユニバーサルハッシュ関数FLが式(c4)
【数20】

で与えられる検証付き復号装置。
【請求項12】
請求項8から請求項11のいずれかに記載の検証付き復号装置において、
上記ブロック暗号利用モードは、初期値入力型のブロック暗号利用モードであり、上記混合データT#Uwが当該ブロック暗号利用モードの初期値として用いられる
検証付き復号装置。
【請求項13】
[1]異なる二つの入力p,qそれぞれに対して求められた鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を鍵とするユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACの、暗号化されない付帯データHと平文Mとを入力としたときの出力(ただし、当該演算MACの出力は、上記付帯データHと上記平文Mとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Sに対する上記ブロック暗号EKの出力EK(S)である。)を認証子Tとし、[2]上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力である暗号文Cの復号を行う検証付き復号方法であり、
鍵生成手段が、上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成ステップと、
復号手段が、上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号ステップと、
検証手段が、上記付帯データHと上記平文Mwとを入力として、上記出力Lwおよび上記出力Uwを鍵とする上記ユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証ステップと
を有し、
上記演算MACwの出力Twは、上記付帯データHと上記平文Mwとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
検証付き復号方法。
【請求項14】
[1]異なる二つの入力p,qそれぞれに対して求められた鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)のうち、Lを鍵とするユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACの、平文Mを入力としたときの出力(ただし、当該演算MACの出力は、上記平文Mを入力とする上記ユニバーサルハッシュ関数FLの出力Sに対する上記ブロック暗号EKの出力EK(S)である。)を認証子Tとし、[2]上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力である暗号文Cの復号を行う検証付き復号方法であり、
鍵生成手段が、上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成ステップと、
復号手段が、上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号ステップと、
検証手段が、上記平文Mwを入力として、上記出力Lwを鍵とする上記ユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証ステップと
を有し、
上記演算MACwの出力Twは、上記平文Mwを入力とする上記ユニバーサルハッシュ関数FLの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
検証付き復号方法。
【請求項15】
平文の暗号化と認証子の生成を行う認証付き暗号化装置と、暗号文の復号と認証子の検証を行う検証付き復号装置とを含む暗号システムであって、
上記認証付き暗号化装置は、
異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成手段と、
暗号化されない付帯データHと平文Mとを入力として、上記出力Lおよび上記出力Uを鍵とするユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成手段と、
上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化手段とを含み、
上記検証付き復号装置は、
上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成手段と、
上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号手段と、
上記付帯データHと上記平文Mwとを入力として、上記出力Lwおよび上記出力Uwを鍵とする上記ユニバーサルハッシュ関数FL,Uと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証手段とを含み、
上記演算MACの出力は、上記付帯データHと上記平文Mとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Sに対する上記ブロック暗号EKの出力EK(S)であり、
上記演算MACwの出力Twは、上記付帯データHと上記平文Mwとを入力とする上記ユニバーサルハッシュ関数FL,Uの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
暗号システム。
【請求項16】
平文の暗号化と認証子の生成を行う認証付き暗号化装置と、暗号文の復号と認証子の検証を行う検証付き復号装置とを含む暗号システムであって、
上記認証付き暗号化装置は、
異なる二つの入力p,qそれぞれに対して、鍵Kのブロック暗号EKの出力L←EK(p),U←EK(q)を求める鍵生成手段と、
平文Mを入力として、上記出力Lを鍵とするユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACの出力を認証子Tとして求める認証子生成手段と、
上記認証子Tと上記出力Uとの混合データT#Uと上記平文Mとを入力としてブロック暗号利用モードを実行する演算BCMの出力を暗号文Cとして求める暗号化手段とを含み、
上記検証付き復号装置は、
上記p,qそれぞれに対して、上記ブロック暗号EKの出力Lw←EK(p),Uw←EK(q)を求める鍵生成手段と、
上記認証子Tと上記出力Uwとの混合データT#Uwと上記暗号文Cとを入力として上記ブロック暗号利用モードを実行する演算BCMwの出力を平文Mwとして求める復号手段と、
上記平文Mwを入力として、上記出力Lwを鍵とする上記ユニバーサルハッシュ関数FLと上記ブロック暗号EKとで構成される演算MACwの出力Twを求め、当該出力Twと上記認証子Tとが一致するか否かを検証する検証手段とを含み、
上記演算MACの出力は、上記平文Mを入力とする上記ユニバーサルハッシュ関数FLの出力Sに対する上記ブロック暗号EKの出力EK(S)であり、
上記演算MACwの出力Twは、上記平文Mwを入力とする上記ユニバーサルハッシュ関数FLの出力Swに対する上記ブロック暗号EKの出力EK(Sw)である
暗号システム。
【請求項17】
請求項1から請求項5のいずれかに記載された認証付き暗号化装置および/または請求項8から請求項12のいずれかに記載された検証付き復号装置としてコンピュータを機能させるためのプログラム。
【請求項18】
請求項17に記載されたプログラムを記録した、コンピュータが読み取り可能な記録媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−40932(P2011−40932A)
【公開日】平成23年2月24日(2011.2.24)
【国際特許分類】
【出願番号】特願2009−185626(P2009−185626)
【出願日】平成21年8月10日(2009.8.10)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(504139662)国立大学法人名古屋大学 (996)
【Fターム(参考)】