JP2014002230A - 認証暗号化装置、認証復号装置、およびプログラム - Google Patents

認証暗号化装置、認証復号装置、およびプログラム Download PDF

Info

Publication number
JP2014002230A
JP2014002230A JP2012136546A JP2012136546A JP2014002230A JP 2014002230 A JP2014002230 A JP 2014002230A JP 2012136546 A JP2012136546 A JP 2012136546A JP 2012136546 A JP2012136546 A JP 2012136546A JP 2014002230 A JP2014002230 A JP 2014002230A
Authority
JP
Japan
Prior art keywords
extension field
field
authentication
unit
calculation unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012136546A
Other languages
English (en)
Other versions
JP5852518B2 (ja
Inventor
Miki Yasuda
幹 安田
Kazumaro Aoki
和麻呂 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012136546A priority Critical patent/JP5852518B2/ja
Publication of JP2014002230A publication Critical patent/JP2014002230A/ja
Application granted granted Critical
Publication of JP5852518B2 publication Critical patent/JP5852518B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】演算効率のよい認証暗号技術を提供する。
【解決手段】平文情報P[i](i=1,・・・,p)を暗号化し、暗号文C[i](i=1,・・・,p)を得る。暗号文C[i]から得られる拡大体GF(2)の元CN[i]、拡大体GF(2)の元である秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得る。(×)は拡大体GF(2m[j])(m[j]<n)上の乗算演算子を表す。拡大体GF(2)の元を或るS[0]とし、i=1,・・・,pについて拡大体演算部の処理を行って得られた元S[p]に対応する認証子Tを得る。
【選択図】図1

Description

本発明は、暗号技術に関し、特に暗号文の認証子を用いる認証暗号技術に関する。
認証暗号の暗号化アルゴリズムεは、秘密鍵K、ナンス値IV、平文メッセージP、および付加データAを入力とし、暗号文C、および認証子Tを出力する。これを数式で書けば以下のようになる。
Figure 2014002230

ここでナンス値とは暗号化の度に変化する値であり、決して同じ値を繰り返さないという要件を満たすものである。ナンス値は秘密である必要もないしランダムである必要もない。付加情報とは平文メッセージに付随するデータであるが暗号化されずにそのまま送信ないし保存されるものである。
認証暗号の復号アルゴリズムDは、秘密鍵K、ナンス値IV、暗号文C、認証子T、および付加データAを入力とし、平文メッセージPないし不正エラーを示す特別シンボル⊥を出力する。これを数式で書けば以下のようになる。
Figure 2014002230
上記2つのアルゴリズムは健全性を満たさねばならない。すなわち、式(1)を満たすときには必ず式(3)を満たさず、なおかつ、式(2)を満たすものとなっていなければならない。
認証暗号の方式としてEncrypt-then-MACに基づくものがある。例えば、非特許文献1に基づく方式の暗号化アルゴリズムでは、まず平文メッセージPをビット長nごとに分割してブロックP[1],・・・,P[p]を得る(ただし、n,pは1以上の整数)。平文メッセージPのビット長がnの整数倍である場合には、ブロックP[1],・・・,P[p]のビット長はすべてnである。そうでない場合には、ブロックP[1],・・・,P[p−1]のビット長はすべてnであり、ブロックP[p]のビット長はn未満である。ブロックP[1],・・・,P[p]は、秘密鍵Kおよびナンス値IVを用いたブロック暗号のCTRモードによって暗号化され、暗号文C[1],・・・,C[p]が得られる。平文メッセージPのビット長がnの整数倍である場合には暗号文C[1],・・・,C[p]のビット長はすべてnである。そうでない場合には、暗号文C[1],・・・,C[p−1]のビット長はすべてnであり、暗号文C[p]のビット長はn未満である。さらに、ビット長nの秘密情報W、付加データAを分割して得られたビット長nまたはn未満の付加情報A[1],・・・,A[a]、暗号文C[1],・・・,C[p]を用い、多項式ハッシュ関数によって認証子Tを得る。従来の多項式ハッシュ関数の演算では、ビットを有限体GF(2)の元とし、ビット長nの情報を拡大体GF(2)の元とした拡大体GF(2)上での乗算が実行される。
NIST: Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC, NIST Special Publication 800-38D, November, 2007.
非特許文献1に基づく認証暗号方式では、多項式ハッシュ関数の演算を行うために、拡大体GF(2)上での乗算を行う。通常、nがα倍になると拡大体GF(2)上での乗算の演算量はαとなる。そのため、多項式ハッシュ関数の演算のために拡大体GF(2)上での乗算を行ったのでは、nの増加に伴って演算効率が著しく低下してしまう。
本発明はこのような点に鑑みてなされたものであり、演算効率のよい認証暗号技術を提供することを目的とする。
本発明では、n,qが2以上の整数であり、pが1以上の整数であり、m[j](j=1,・・・,q)がm[1]+・・・+m[q]=nを満たす正整数であり、GF(2)が位数2の有限体であり、GF(2)が有限体GF(2)をn次拡大した拡大体であり、GF(2m[j])(j=1,・・・,q)が有限体GF(2)をm[j]次拡大した拡大体である。またXがX[1],・・・,X[q]からなり、X[j]が拡大体GF(2m[j])の元であり、YがY[1],・・・,Y[q]からなり、Y[j]が拡大体GF(2m[j])の元であり、X(+)YがXとYを被演算子とした拡大体GF(2)上での加算であり、X(×)YがXとYを被演算子としてX[1]・Y[1],・・・,X[q]・Y[q]からなる値を得る演算であり、X[j]・Y[j]がX[j]とY[j]を被演算子とした拡大体GF(2m[j])上での乗算である。
認証暗号化では、平文情報P[i](i=1,・・・,p)を暗号化し、暗号文C[i](i=1,・・・,p)を得る。また、暗号文C[i]から得られる拡大体GF(2)の元CN[i]、拡大体GF(2)の元である秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得る。さらに、拡大体GF(2)の元を或るS[0]とし、i=1,・・・,pについて拡大体演算部の処理を行って得られた元S[p]に対応する認証子Tを得る。
認証復号では、暗号文C[i](i=1,・・・,p)から得られる拡大体GF(2)の元CN[i]、拡大体GF(2)の元である秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得る。また、拡大体GF(2)の或る元をS[0]とし、i=1,・・・,pについて拡大体演算部の処理を行って得られた元S[p]に対応する検証用認証子VTを得、検証用認証子VTと入力された認証子Tとが等しいかを判定する。
本発明では、拡大体GF(2m[j])(ただしm[j]<n)上での乗算によって多項式ハッシュ関数の演算を行うため、従来よりも演算効率がよい。
実施形態の認証システムの構成を例示したブロック図。 実施形態の認証暗号化方法を説明するためのフロー図。 実施形態の認証復号方法を説明するためのフロー図。 認証子生成処理の具体例を説明するための図。
以下、図面を参照して本発明の実施形態を説明する。
<定義>
本形態で使用する用語や記号を定義する。
n,qは2以上の整数であり、a,pは1以上の整数であり、m[j](j=1,・・・,q)はm[1]+・・・+m[q]=nを満たす正整数である。一例を挙げると、nが偶数、q=2、m[1]=m[2]=n/2である。
GF(2)は位数2の有限体であり、GF(2)は有限体GF(2)をn次拡大した拡大体であり、GF(2m[j])(j=1,・・・,q)は有限体GF(2)をm[j]次拡大した拡大体である。GF(2)の例はビット∈{0,1}であり、GF(2)の例はn個のビットからなるビット列∈{0,1}であり、GF(2m[j])の例はm[j]個のビットからなるビット列∈{0,1}m[j]である。
X(×)Yは、XとYを被演算子としてX[1]・Y[1],・・・,X[q]・Y[q]からなる値を得る演算である。ただし、X[j]・Y[j]は、X[j]とY[j]を被演算子とした拡大体GF(2m[j])上での乗算であり、XはX[1],・・・,X[q]からなり、X[j](j=1,・・・,q)は拡大体GF(2m[j])の元であり、YはY[1],・・・,Y[q]からなり、Y[j](j=1,・・・,q)は拡大体GF(2m[j])の元である。例えば、nが偶数、q=2、m[1]=m[2]=n/2の場合、X(×)YがXとYを被演算子としてX[1]・Y[1],X[2]・Y[2]からなる値を得る演算であり、X[j]・Y[j]がX[j]とY[j]を被演算子とした拡大体GF(2n/2)上での乗算であり、XはX[1],X[2]からなり、X[j](j=1,2)は拡大体GF(2n/2)の元であり、YはY[1],Y[2]からなり、Y[j](j=1,2)は拡大体GF(2n/2)の元である。特に断りのない限り、X(+)Yは、XとYを被演算子とした拡大体GF(2)上での加算である。拡大体GF(2m[j])上の演算は、例えば、被演算子である拡大体GF(2m[j])を多項式表現し、m[j]次の既約多項式を法とし、これらの多項式間で剰余演算(剰余乗算や剰余加算)を行うことで実現できる。拡大体GF(2m[j])上での演算結果は、この剰余演算で得られた多項式の係数からなる。
<構成>
図1に例示するように、本形態の認証システム1は、認証暗号化装置100および認証復号装置200を有する。認証暗号化装置100および認証復号装置200は、例えば互いに通信可能に構成され、それぞれ以下の機能構成を有する。
認証暗号化装置100は、例えば、入力部101、初期値生成部102、初期拡大体演算部103、付加情報分割部104、付加拡大体演算部105、平文分割部106、暗号化部107、拡大体演算部108、暗号文連結部109、認証子生成部110、出力部111、制御部113、および記憶部114を有する。認証復号装置200は、例えば、入力部201、初期値生成部202、初期拡大体演算部203、付加情報分割部204、付加拡大体演算部205、暗号文分割部206、復号部207、拡大体演算部208、平文情報連結部209、認証子生成部210、出力部212、制御部213、および記憶部214を有する。
認証暗号化装置100および認証復号装置200は、それぞれ、CPU(central processing unit)やRAM(random-access memory)等を有する公知または専用のコンピュータに所定のプログラムが読み込まれることで構成される特別な装置である。認証暗号化装置100は、制御部113の制御のもとで各処理を実行し、認証復号装置200は、制御部213の制御のもとで各処理を実行する。証暗号化装置100への入力情報や証暗号化装置100の各部から出力された情報は、逐一、記憶部114に格納され、必要に応じて読み出されて各部の入力とされる。認証復号装置200への入力情報や認証復号装置200の各部から出力された情報は、逐一、記憶部214に格納され、必要に応じて読み出されて各部の入力とされる。
<認証暗号化>
図2および図4を参照して、本形態の認証暗号化方法を説明する。
まず、認証暗号化装置100の入力部101に、共通鍵暗号方式の秘密鍵K、ナンス値IV、平文メッセージP、および付加データAが入力される。これらはいずれも有限体GF(2)上の拡大体の元である。例えば、有限体GF(2)が排他的論理和演算の定義されたビット集合{0,1}、nが偶数、q=2、m[1]=m[2]=n/2の場合(以下「具体例」と呼ぶ)、K∈{0,1}(ただしkは1以上の整数)、IV(≠0)∈{0,1}n/2、P∈{0,1}*、A∈{0,1}*である。ただし{0,1}χはビット長χのビット列の集合を表し、{0,1}*は任意長のビット列の集合を表す(ステップS101)。
初期値生成部102は秘密鍵Kを入力とし、秘密鍵Kに対応する拡大体GF(2)の元である秘密情報Wを生成して出力する。例えば、初期値生成部102は、秘密鍵Kを用いて所定の値βを暗号化して秘密情報W=E(β)を得る。βの具体例は0である。なお「E(ω)」は、秘密鍵Kを用い、所定の共通鍵暗号方式に則ってωを暗号化する処理を意味する。「具体例」の場合、W=(H|L)と表現する。HはWの上位n/2ビットを表し、LはWの残りの下位n/2ビットを表し、「γ|δ」はγとδとのビット結合(「ビット連結」ともいう)を表す(ステップS102)。
初期拡大体演算部103にはナンス値IVおよび秘密情報Wが入力される。初期拡大体演算部103は、ナンス値IVから得られる拡大体GF(2)の元である初期値Iおよび秘密情報Wを用い、演算U[0]=(I)(×)Wを行い、拡大体GF(2)の元U[0]を得て出力する。「具体例」の場合、初期拡大体演算部103は、演算U[0]=(IV|IV)(×)(H|L)を行い、元U[0]を得て出力する(ステップS103)。
付加情報分割部104は、付加データAを入力とし、付加データAを構成する有限体GF(2)の個数(「具体例」の場合にはビット長)L=Len(A)を得て出力する。さらに付加情報分割部104は、付加データAから拡大体GF(2)の元である付加情報A[1],・・・,A[a]を得て出力する。「具体例」の場合には、A[d]∈{0,1}(ただしd=1,・・・,a)を得て出力する。
以下に付加情報A[1],・・・,A[a]の具体例を示す。
付加データAを構成する拡大体GF(2)の個数がnの整数倍である場合、付加情報分割部104は、A=(A[1],・・・,A[a])を満たす付加情報A[1],・・・,A[a]を得る。例えば「具体例」の場合、付加情報分割部104は、A=A[1]|・・・|A[a]を満たすA[1],・・・,A[a]を得る。
付加データAを構成する拡大体GF(2)の個数がnの整数倍でない場合、付加情報分割部104は、A=(A[1],・・・,A[a])を満たすA[1],・・・,A[a]を得、A[a]に所定の拡大体GF(2)の元を追加して拡大体GF(2)の元としたものを新たなA[a]とし、A[1],・・・,A[a−1]および新たなA[a]を付加情報とする。例えば「具体例」の場合、付加情報分割部104は、A=A[1]|・・・|A[a]を満たすA[1],・・・,A[a]を得、A[a]に所定のビット(例えば「0」)を追加してビット長nとしたものA[a]|0*∈{0,1}を新たなA[a]とし、A[1],・・・,A[a−1]および新たなA[a]を付加情報とする(ステップS104)。
付加拡大体演算部105は、付加情報A[d]、秘密情報W、および拡大体GF(2)の元U[i−1]を入力とし、演算U[d]=(U[d−1](+)A[d])(×)Wを行い、拡大体GF(2)の元U[d]を得て出力する。付加拡大体演算部105は、d=1,・・・,aについてこの処理を実行し、元U[a]を得て出力する(ステップS105)。
以下にステップS105の具体例を示す。
≪S105−1≫
付加拡大体演算部105は、d=1に初期化する。
≪S105−2≫
付加拡大体演算部105は、U[d]=(U[d−1](+)A[d])(×)Wを計算する。
≪S105−3≫
d<aであればd+1を新たなdとしてS105−2に戻り、d=aであれば付加拡大体演算部105がU[a]を出力する(ステップS105の具体例の説明終わり)。
平文分割部106は、平文メッセージPを入力とし、平文メッセージPから平文情報P[1],・・・,P[p]を得て出力する。本形態の平文分割部106は、P=(P[1],・・・,P[p])を満たす平文情報P[1],・・・,P[p]を得て出力する。例えば、P[1],・・・,P[p−1]は拡大体GF(2)の元であり、P[p]は拡大体GF(2)の元、またはn個未満の有限体GF(2)の元からなる値である。「具体例」の場合、平文分割部106は、P=P[1]|・・・|P[p]を満たす平文情報P[1],・・・,P[p]を得て出力する。これらは、P[1],・・・,P[p−1]∈{0,1}、およびP[p]∈{0,1}*を満たす(ステップS106)。
暗号化部107は、秘密鍵Kを用いて平文情報P[i](i=1,・・・,p)を暗号化し、暗号文C[i](i=1,・・・,p)を得て出力する。拡大体演算部108は、暗号文C[i]から得られる拡大体GF(2)の元CN[i]、秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得て出力する。拡大体演算部108は、S[0]=U[a]とし、i=1,・・・,pについて、この処理を行って元S[p]を得て出力する(ステップS107)。
以下にステップS107の具体例を示す。
≪S107−1≫
暗号化部107は、i=1に初期化する。
≪S107−2≫
i≦p−1であればS107−3に進み、i=pでればS107−6に進む。
≪S107−3≫
暗号化部107は、秘密鍵K、平文情報P[i]、およびナンス値IVを入力とし、秘密鍵Kを用い、平文情報P[i]およびナンス値IVに対応する暗号文C[i]∈GF(2)を得て出力する。「具体例」の場合、暗号化部107は、C[i]=E(IV|<i−1>n/2)(+)P[i]によって暗号文C[i]∈{0,1}を得て出力する。ただし<i−1>n/2は、整数(i−1)のn/2ビット表現値である。次にS107−4に進む。
≪S107−4≫
拡大体演算部108は、暗号文CN[i]=C[i]、秘密情報W、および拡大体GF(2)の元S[i−1]を入力とし、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得て出力する。「具体例」の場合、拡大体演算部108は、演算S[i]=(S[i−1](+)CN[i])(×)(H|L)を行い、S[i]∈{0,1}を得て出力する。次にS107−5に進む。
≪S107−5≫
i+1を新たなiとしてS107−2に戻る。
≪S107−6≫
暗号化部107は、秘密鍵K、平文情報P[p]、およびナンス値IVを入力とし、秘密鍵Kを用い、平文情報P[p]およびナンス値IVに対応する暗号文C[p]を得て出力する。ただし、暗号文C[p]は有限体GF(2)を基礎体とした拡大体の元である。「具体例」の場合、暗号化部107は、C[p]=msbLen(P[p]){E(IV|<p−1>n/2)}(+)P[p]によって暗号文C[p]∈{0,1}Len(P[p])を得て出力する。ただし、msbLen(P[p]){E(IV|<p−1>n/2)}(+)P[p]は、msbLen(P[p]){E(IV|<p−1>n/2)}とP[p]を被演算子とした拡大体GF(2Len(P[p]))上での加算である。msbι(Ψ)はΨの最左(最上位)のι個の元(ビット)を表し、Len(P[p])はP[p]のビット長を表す。次にS107−7に進む。
≪S107−7≫
拡大体演算部108は、暗号文C[p]、秘密情報W、および元S[p−1]を入力とし、暗号文C[p]から得られる拡大体GF(2)の元CN[p]を用いて演算S[p]=(S[p−1](+)CN[p])(×)Wを行い、拡大体GF(2)の元S[p]を得て出力する。「具体例」の場合、拡大体演算部108は、CN[p]=C[p]|0*∈{0,1}として演算S[p]=(S[p−1](+)CN[p])(×)(H|L)を行い、S[p]∈{0,1}を得て出力する(ステップS107の具体例の説明終わり)。
暗号文連結部109は、暗号文C[1],・・・,C[p]を入力とし、C[1],・・・,C[p]からなる出力暗号文Cを得て出力する。「具体例」の場合、暗号文連結部109は、C=C[1]|・・・|C[p]を出力暗号文として出力する。また暗号文連結部109は、出力暗号文Cを入力とし、出力暗号文Cを構成する有限体GF(2)の元の個数(「具体例」の場合には出力暗号文Cのビット長)L=Len(C)を得て出力する(ステップS109)。
認証子生成部110は、S[p]に対応する認証子Tを得て出力する。認証子生成部110は、例えば、S[p]、LおよびLに対する像(関数値)である認証子Tを得て出力する。一例を挙げると、認証子生成部110は、S[p]、LおよびLを入力とし、S*=S[p](+)(<Ln/2|<Ln/2)を得、認証子T=msb(E(S*))を得て出力する。「具体例」の場合にはT∈{0,1}となる。ただし、tは1以上の整数である(ステップS110)。
出力部111は、出力暗号文Cおよび認証子Tを出力し、認証暗号化処理を終了する(ステップS111)。
<認証復号>
図3および図4を参照して、本形態の認証暗号化方法を説明する。
まず、認証復号装置200の入力部201に、出力暗号文Cおよび認証子T、並びに認証暗号化で用いられたものと同一の秘密鍵K、ナンス値IVおよび付加データAが入力される。これらはいずれも有限体GF(2)上の拡大体の元である。「具体例」の場合、C∈{0,1}*、T∈{0,1}、K∈{0,1}、IV(≠0)∈{0,1}n/2、およびA∈{0,1}*である(ステップS201)。
初期値生成部202は秘密鍵Kを入力とし、認証暗号化時と同じ方法で秘密鍵Kに対応する拡大体GF(2)の元である秘密情報Wを生成して出力する。例えば、初期値生成部102は、秘密鍵Kを用いて所定の値βを暗号化して秘密情報W=E(β)を得る。βの具体例は0である。「具体例」の場合、W=(H|L)と表現する(ステップS102)。
初期拡大体演算部203にはナンス値IVおよび秘密情報Wが入力される。初期拡大体演算部203は、ナンス値IVから得られる拡大体GF(2)の元である初期値Iおよび秘密情報Wを用い、演算U[0]=(I)(×)Wを行い、拡大体GF(2)の元U[0]を得て出力する。「具体例」の場合、初期拡大体演算部203は、演算U[0]=(IV|IV)(×)(H|L)を行い、元U[0]を得て出力する(ステップS203)。
付加情報分割部204は、付加データAを入力とし、付加データAを構成する有限体GF(2)の個数(「具体例」の場合にはビット長)L=Len(A)を得て出力する。さらに付加情報分割部204は、認証暗号化時と同じ方法で、付加データAから拡大体GF(2)の元である付加情報A[1],・・・,A[a]を得て出力する。「具体例」の場合には、A[d]∈{0,1}(ただしd=1,・・・,a)を得て出力する。
以下に付加情報A[1],・・・,A[a]の具体例を示す。
Len(A)がnの正整数倍である場合、付加情報分割部204は、A=(A[1],・・・,A[a])を満たす付加情報A[1],・・・,A[a]を得る。例えば「具体例」の場合、付加情報分割部204は、A=A[1]|・・・|A[a]を満たすA[1],・・・,A[a]を得る。
Len(A)がnの正整数倍でない場合、付加情報分割部204は、A=(A[1],・・・,A[a])を満たすA[1],・・・,A[a]を得、A[a]にGF(2)の所定の拡大体の元を追加して拡大体GF(2)の元としたものを新たなA[a]とし、A[1],・・・,A[a−1]および新たなA[a]を付加情報とする。例えば「具体例」の場合、付加情報分割部204は、A=A[1]|・・・|A[a]を満たすA[1],・・・,A[a]を得、A[a]に所定のビット(例えば「0」)を追加してビット長nとしたものA[a]|0*∈{0,1}を新たなA[a]とし、A[1],・・・,A[a−1]および新たなA[a]を付加情報とする(ステップS204)。
付加拡大体演算部205は、付加情報A[d]、秘密情報W、および拡大体GF(2)の元U[i−1]を入力とし、演算U[d]=(U[d−1](+)A[d])(×)Wを行い、拡大体GF(2)の元U[d]を得て出力する。付加拡大体演算部205は、d=1,・・・,aについてこの処理を実行し、元U[a]を得て出力する(ステップS205)。
以下にステップS205の具体例を示す。
≪S205−1≫
付加拡大体演算部205は、d=1に初期化する。
≪S205−2≫
付加拡大体演算部205は、U[d]=(U[d−1](+)A[d])(×)Wを計算する。
≪S205−3≫
d<aであればd+1を新たなdとしてS205−2に戻り、d=aであれば付加拡大体演算部205がU[a]を出力する(ステップS205の具体例の説明終わり)。
暗号文分割部206は、出力暗号文Cを入力とし、出力暗号文Cから暗号文C[1],・・・,C[p]を得て出力する。本形態の暗号文分割部206は、C=(C[1],・・・,C[p])を満たす暗号文C[1],・・・,C[p]を得て出力する。例えば、C[1],・・・,C[p−1]は拡大体GF(2)の元であり、C[p]は拡大体GF(2)の元、またはn個未満の有限体GF(2)の元からなる値である。「具体例」の場合、暗号文分割部206は、C=C[1]|・・・|C[p]を満たす暗号文C[1],・・・,C[p]を得て出力する。これらは、C[1],・・・,C[p−1]∈{0,1}、およびC[p]∈{0,1}*を満たす(ステップS206)。
復号部207は、秘密鍵Kを用いて暗号文C[i](i=1,・・・,p)を復号し、平文情報P[i](i=1,・・・,p)を得て出力する。拡大体演算部208は、暗号文C[i]から得られる拡大体GF(2)の元CN[i]、秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得て出力する。拡大体演算部108は、S[0]=U[a]とし、i=1,・・・,pについて、この処理を行って元S[p]を得て出力する(ステップS207)。
以下にステップS207の具体例を示す。
≪S207−1≫
復号部207は、i=1に初期化する。
≪S207−2≫
i≦p−1であればS207−3に進み、i=pでればS207−6に進む。
≪S207−3≫
復号部207は、秘密鍵K、暗号文C[i]、およびナンス値IVを入力とし、秘密鍵Kを用い、暗号文C[i]を復号して平文情報P[i]∈GF(2)を得て出力する。「具体例」の場合、復号部207は、P[i]=E(IV|<i−1>n/2)(+)C[i]によって平文情報P[i]∈{0,1}を得て出力する。次にS207−4に進む。
≪S207−4≫
拡大体演算部208は、暗号文CN[i]=C[i]、秘密情報W、および拡大体GF(2)の元S[i−1]を入力とし、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得て出力する。「具体例」の場合、拡大体演算部208は、演算S[i]=(S[i−1](+)CN[i])(×)(H|L)を行い、S[i]∈{0,1}を得て出力する。次にS207−5に進む。
≪S207−5≫
i+1を新たなiとしてS107−2に戻る。
≪S207−6≫
復号部207は、秘密鍵K、暗号文C[p]、およびナンス値IVを入力とし、秘密鍵Kを用い、暗号文C[p]を復号して平文情報P[p]∈GF(2Len(C[p]))を得て出力する。「具体例」の場合、復号部207は、P[p]=msbLen(C[p]){E(IV|<p−1>n/2)}(+)C[p]によって平文情報P[p]∈{0,1}Len(C[p])を得て出力する。次にS207−7に進む。
≪S207−7≫
拡大体演算部208は、暗号文C[p]、秘密情報W、および元S[p−1]を入力とし、認証化暗号化時と同じ方法で暗号文C[p]から得られる拡大体GF(2)の元CN[p]を用いて演算S[p]=(S[p−1](+)CN[p])(×)Wを行い、拡大体GF(2)の元S[p]を得て出力する。「具体例」の場合、拡大体演算部208は、CN[p]=C[p]|0*∈{0,1}として演算S[p]=(S[p−1](+)CN[p])(×)(H|L)を行い、S[p]∈{0,1}を得て出力する(ステップS207の具体例の説明終わり)。
平文情報連結部209は、平文情報P[1],・・・,P[p]を入力とし、P[1],・・・,P[p]からなる平文メッセージPを得て出力する。「具体例」の場合、平文情報連結部209は、P=P[1]|・・・|P[p]を平文メッセージPとして出力する。また平文情報連結部209は、出力暗号文Cを入力とし、出力暗号文Cを構成する有限体GF(2)の元の個数(「具体例」の場合には出力暗号文Cのビット長)L=Len(C)を得て出力する(ステップS209)。
認証子生成部210は、S[p]に対応する検証用認証子Tを得て出力する。認証子生成部210は、例えば、S[p]、LおよびLに対する像(関数値)である検証用認証子Tを得て出力する。例えば認証子生成部210は、S[p]、LおよびLを入力とし、S*=S[p](+)(<Ln/2|<Ln/2)を得、検証用認証子T=msb(E(S*))を得て出力する。「具体例」の場合にはT∈{0,1}となる。ただし、tは1以上の整数である(ステップS210)。
判定部211は、認証子Tおよび検証用認証子Tを入力とし、認証子Tと検証用認証子Tが等しいかを判定する(ステップS211)。T=Tである場合、出力部212が平文メッセージPを出力し、認証復号処理を終了する(ステップS212)。T≠Tでない場合、出力部212が不正エラーを示す特別シンボル⊥を出力し、認証復号処理を終了する(ステップS213)。
<特徴>
本形態では拡大体GF(2m[j])(ただしm[j]<n)上での乗算によって多項式ハッシュ関数の演算(例えば、ステップS107,S207)を行うため、拡大体GF(2)上での乗算によって多項式ハッシュ関数を行う従来方式よりも演算効率がよい。特に、nが偶数、q=2、m[1]=m[2]=n/2である場合には、従来方式から安全性を低下させることなく、演算効率を向上させることができる。nが偶数、q=2、m[1]=m[2]=n/2の場合の共通鍵暗号方式の例としては、ブロックビット長n=128のAESがある。この場合に使用できる既約多項式の例は、x64+x+x+x+1である。
<変形例等>
本発明は上述の実施形態に限定されるものではない。例えば、m[1],・・・,m[q]がすべて等しくてもよいし、そうでなくてもよい(m[1],・・・,m[q]の少なくとも一部が他と異なっていてもよい)。また、X(×)Yの演算量がXとYとの拡大体GF(2)上での乗算の演算量よりも少ないのであればnやqの値に限定はない。また、認証暗号化装置100と認証復号装置200とが通信可能に構成されるのではなく、可搬型記録媒体を介して情報をやり取りしてもよく、あるいは、認証暗号化装置100と認証復号装置200とが同一筺体内に構成されてもよい。また上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
認証システム1
認証暗号化装置 100
認証復号装置 200

Claims (8)

  1. n,qが2以上の整数であり、pが1以上の整数であり、m[j](j=1,・・・,q)がm[1]+・・・+m[q]=nを満たす正整数であり、GF(2)が位数2の有限体であり、GF(2)が前記有限体GF(2)をn次拡大した拡大体であり、GF(2m[j])(j=1,・・・,q)が前記有限体GF(2)をm[j]次拡大した拡大体であり、
    XがX[1],・・・,X[q]からなり、X[j]が拡大体GF(2m[j])の元であり、YがY[1],・・・,Y[q]からなり、Y[j]が拡大体GF(2m[j])の元であり、X(+)YがXとYを被演算子とした拡大体GF(2)上での加算であり、X(×)YがXとYを被演算子としてX[1]・Y[1],・・・,X[q]・Y[q]からなる値を得る演算であり、X[j]・Y[j]がX[j]とY[j]を被演算子とした拡大体GF(2m[j])上での乗算であり、
    平文情報P[i](i=1,・・・,p)を暗号化し、暗号文C[i](i=1,・・・,p)を得る暗号化部と、
    前記暗号文C[i]から得られる拡大体GF(2)の元CN[i]、拡大体GF(2)の元である秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得る拡大体演算部と、
    拡大体GF(2)の元を或るS[0]とし、i=1,・・・,pについて前記拡大体演算部の処理を行って得られた元S[p]に対応する認証子Tを得る認証子生成部と、
    を有する認証暗号化装置。
  2. 請求項1の認証暗号化装置であって、
    nが偶数、q=2、m[1]=m[2]=n/2である、
    ことを特徴とする認証暗号化装置。
  3. 請求項1または2の認証暗号化装置であって、
    aが1以上の整数であり、付加情報A[d](d=1,・・・,a)が拡大体GF(2)の元であり、初期値Iが拡大体GF(2)の元であり、
    前記初期値Iおよび前記秘密情報Wを用い、演算U[0]=(I)(×)Wを行い、拡大体GF(2)の元U[0]を得る初期拡大体演算部と、
    前記付加情報A[d]、前記秘密情報W、および拡大体GF(2)の元U[i−1]を用い、演算U[d]=(U[d−1](+)A[d])(×)Wを行い、拡大体GF(2)の元U[d]を得る付加拡大体演算部と、
    をさらに有し、
    前記元S[0]は、d=1,・・・,aについて前記付加拡大体演算部の処理を行って得られた元U[a]である、
    ことを特徴とする認証暗号化装置。
  4. n,qが2以上の整数であり、pが1以上の整数であり、m[j](j=1,・・・,q)がm[1]+・・・+m[q]=nを満たす正整数であり、GF(2)が位数2の有限体であり、GF(2)が前記有限体GF(2)をn次拡大した拡大体であり、GF(2m[j])(j=1,・・・,q)が前記有限体GF(2)をm[j]次拡大した拡大体であり、
    XがX[1],・・・,X[q]からなり、X[j]が拡大体GF(2m[j])の元であり、YがY[1],・・・,Y[q]からなり、Y[j]が拡大体GF(2m[j])の元であり、X(+)YがXとYを被演算子とした拡大体GF(2)上での加算であり、X(×)YがXとYを被演算子としてX[1]・Y[1],・・・,X[q]・Y[q]からなる値を得る演算であり、X[j]・Y[j]がX[j]とY[j]を被演算子とした拡大体GF(2m[j])上での乗算であり、
    暗号文C[i](i=1,・・・,p)から得られる拡大体GF(2)の元CN[i]、拡大体GF(2)の元である秘密情報W、および拡大体GF(2)の元S[i−1]を用い、演算S[i]=(S[i−1](+)CN[i])(×)Wを行い、拡大体GF(2)の元S[i]を得る拡大体演算部と、
    拡大体GF(2)の或る元をS[0]とし、i=1,・・・,pについて前記拡大体演算部の処理を行って得られた元S[p]に対応する検証用認証子VTを得る認証子生成部と、
    前記検証用認証子VTと入力された認証子Tとが等しいかを判定する判定部と、
    を有する認証復号装置。
  5. 請求項4の認証復号装置であって、
    nが偶数、q=2、m[1]=m[2]=n/2である、
    ことを特徴とする認証復号装置。
  6. 請求項4または5の認証復号装置あって、
    aが1以上の整数であり、付加情報A[d](d=1,・・・,a)が拡大体GF(2)の元であり、初期値Iが拡大体GF(2)の元であり、
    前記初期値Iおよび前記秘密情報Wを用い、演算U[0]=(I)(×)Wを行い、拡大体GF(2)の元U[0]を得る初期拡大体演算部と、
    前記付加情報A[d]、前記秘密情報W、および拡大体GF(2)の元U[i−1]を用い、演算U[d]=(U[d−1](+)A[d])(×)Wを行い、拡大体GF(2)の元U[d]を得る付加拡大体演算部と、
    をさらに有し、
    前記元S[0]は、d=1,・・・,aについて前記付加拡大体演算部の処理を行って得られた元U[a]である、
    ことを特徴とする認証復号装置。
  7. 請求項1から3のいずれかの認証暗号化装置としてコンピュータを機能させるためのプログラム。
  8. 請求項4から6のいずれかの認証復号装置としてコンピュータを機能させるためのプログラム。
JP2012136546A 2012-06-18 2012-06-18 認証暗号化装置、認証復号装置、およびプログラム Active JP5852518B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012136546A JP5852518B2 (ja) 2012-06-18 2012-06-18 認証暗号化装置、認証復号装置、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012136546A JP5852518B2 (ja) 2012-06-18 2012-06-18 認証暗号化装置、認証復号装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2014002230A true JP2014002230A (ja) 2014-01-09
JP5852518B2 JP5852518B2 (ja) 2016-02-03

Family

ID=50035464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012136546A Active JP5852518B2 (ja) 2012-06-18 2012-06-18 認証暗号化装置、認証復号装置、およびプログラム

Country Status (1)

Country Link
JP (1) JP5852518B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015156020A1 (ja) * 2014-04-10 2015-10-15 富士電機株式会社 情報処理装置、プログラム及び記憶媒体
JP2016157052A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157053A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法
JP2016157054A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
CN111758127A (zh) * 2018-02-20 2020-10-09 日本电信电话株式会社 秘密计算装置、秘密计算认证系统、秘密计算方法以及程序
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024826A1 (en) * 2007-07-16 2009-01-22 Ming Zhang Galois-based incremental hash module

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090024826A1 (en) * 2007-07-16 2009-01-22 Ming Zhang Galois-based incremental hash module

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7015001654; David A. McGrew and John Viega: The Security and Performance of the Galois/Counter Mode of Operation (Full Version) , 2004, pp. 1-21 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015156020A1 (ja) * 2014-04-10 2015-10-15 富士電機株式会社 情報処理装置、プログラム及び記憶媒体
JP6044738B2 (ja) * 2014-04-10 2016-12-14 富士電機株式会社 情報処理装置、プログラム及び記憶媒体
US10044499B2 (en) 2014-04-10 2018-08-07 Fuji Electric Co., Ltd. Information processing apparatus, program, and storage medium
JP2016157052A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157053A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法
JP2016157054A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号プログラム
JP2016157055A (ja) * 2015-02-26 2016-09-01 日本電信電話株式会社 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
CN111758127A (zh) * 2018-02-20 2020-10-09 日本电信电话株式会社 秘密计算装置、秘密计算认证系统、秘密计算方法以及程序
CN111758127B (zh) * 2018-02-20 2023-08-08 日本电信电话株式会社 秘密计算装置及其方法、秘密计算认证系统以及记录介质

Also Published As

Publication number Publication date
JP5852518B2 (ja) 2016-02-03

Similar Documents

Publication Publication Date Title
JP5852518B2 (ja) 認証暗号化装置、認証復号装置、およびプログラム
US9413729B2 (en) Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium
JP6083234B2 (ja) 暗号処理装置
US20100020964A1 (en) Key generation method using quadratic-hyperbolic curve group
JP2007139895A (ja) 暗号装置、復号装置、プログラム及び方法
JP4282546B2 (ja) 暗号装置、復号装置、鍵生成装置、プログラム及び方法
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP7323196B2 (ja) 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
JP2018502320A (ja) 公開鍵暗号化システム
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
JP5273141B2 (ja) 調整値付きブロック暗号装置、暗号生成方法および記録媒体
JP6059347B2 (ja) 復号装置、復号能力提供装置、それらの方法、およびプログラム
Hodowu et al. An enhancement of data security in cloud computing with an implementation of a two-level cryptographic technique, using AES and ECC algorithm
JP6006809B2 (ja) 復号サービス提供装置、処理装置、安全性評価装置、プログラム、および記録媒体
JP6266130B2 (ja) 暗号システム、マスター鍵更新装置及びマスター鍵更新プログラム
Kanda et al. Hardware architecture design of AES cryptosystem with 163-bit elliptic curve
JP2007187908A (ja) サイドチャネル攻撃に耐性を有するモジュラーべき乗算計算装置及びモジュラーべき乗算計算方法
US20220150064A1 (en) Encryption device, decryption device, encryption method, decryption method, and computer program products
JP5679344B2 (ja) 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム
JP7371757B2 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
JP6203387B2 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
WO2024028961A1 (ja) 暗号システム、方法及びプログラム
JP2017038336A (ja) 復号方法
JP2019200382A (ja) 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム
AU2021106274A4 (en) A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140924

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150716

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: 20151201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151204

R150 Certificate of patent or registration of utility model

Ref document number: 5852518

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150