JP2009005163A - メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 - Google Patents

メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 Download PDF

Info

Publication number
JP2009005163A
JP2009005163A JP2007165141A JP2007165141A JP2009005163A JP 2009005163 A JP2009005163 A JP 2009005163A JP 2007165141 A JP2007165141 A JP 2007165141A JP 2007165141 A JP2007165141 A JP 2007165141A JP 2009005163 A JP2009005163 A JP 2009005163A
Authority
JP
Japan
Prior art keywords
padding
bit
bit string
key
message authenticator
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
JP2007165141A
Other languages
English (en)
Other versions
JP4886614B2 (ja
Inventor
Miki Yasuda
幹 安田
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 JP2007165141A priority Critical patent/JP4886614B2/ja
Publication of JP2009005163A publication Critical patent/JP2009005163A/ja
Application granted granted Critical
Publication of JP4886614B2 publication Critical patent/JP4886614B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】本発明は、安全性を証明でき、鍵が1つでよく、計算量の少ないメッセージ認証子生成技術を提供することを目的とする。
【解決手段】本発明のメッセージ認証子生成装置は、パディング部と付加ビット生成部とハッシュ部を備える。パディング部は、第1パディングP、第2パディングP、第3パディングPを定める。付加ビット生成部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、ハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する。ハッシュ部は、 鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列をハッシュ関数で変換した結果を、メッセージ認証子τとして出力する。
【選択図】図1

Description

本発明は、データに対する認証子を生成または検証するための、メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびそれらの方法を用いたプログラムと記録媒体に関する。
メッセージ認証では、メッセージ認証コードGは、kビットの鍵Kと任意のビット長のデータMからメッセージ認証子τを生成する(τ←G(M))。送信者と受信者、またはデータ作成者とデータ利用者とは、メッセージ認証コードGと鍵Kとを共有することで、次のように認証やデータ内容の検証を行うことができる。
送信者またはデータ作成者は、メッセージ認証子生成装置で、鍵KとデータMからメッセージ認証子τを生成する。そして、データMとメッセージ認証子とを送信または保存する。受信者またはデータ利用者は、メッセージ認証子検証装置で、鍵KとデータMからメッセージ認証子τ’を生成する。そして、τとτ’とを比較する。τ=τ’ならば、送信者またはデータ作成者の認証、およびデータ内容の整合性が検証されたとする。τ≠τ’ならば、送信者またはデータ作成者の詐称、もしくはデータの改ざんがあると判断する。
メッセージ認証コードGは、ハッシュ関数Hを用いて鍵KとデータMからメッセージ認証子τを生成することが多い。また、ハッシュ関数Hは、マークル・ダンガード強化関数Πとマークル・ダンガード反復による関数Fから構成されるものがある。マークル・ダンガード強化関数Πは、任意のビット長のビット列(“0”または“1”が並んだ列)をあらかじめ定めたブロック長dの整数倍に変換する。マークル・ダンガード反復による関数Fは、圧縮関数fを繰り返し用いることでブロック長dの整数倍のビット列を、あらかじめ定めたビット長nのビット列に変換する。具体的には、以下のような関数である。
v←H(D) (1)
D‖π←Π(D) (2)
v←F(D‖π) (3)
←f(vi−1‖m) (4)
ただし、vはハッシュ関数Hの出力であって、nビットのビット列である。Dはハッシュ関数への入力であって、任意のビット長のビット列である。“‖”はビット列の結合を意味する記号、πはビット列の長さを調整するために付加される付加ビットである。vはnビットのビット列であって、圧縮関数fをi回繰り返したときの圧縮結果である。mはビット列M‖πをdビットずつ区切った場合のi番目のビット列を示しており、dビットのビット列である。ビット列M‖πのビット長がdのL倍とすると、式(4)をL回繰り返したときの圧縮結果vが式(3)の出力vとなる。なお、初期のビット列vには、あらかじめ定めた初期ベクトルVが用いられる。つまり、式(3)は式(4)をL回繰り返すことで実現できる。また、式(2)と(3)との組合せによって、ハッシュ関数Hが構成される。
従来のメッセージ認証コードには、ハッシュ関数Hを2回適用して安全性を高めたもの(非特許文献1)、2つの鍵を用いてハッシュ関数Hは1回適用したもの(非特許文献2)、その2つの鍵を同一のものとし、ハッシュ関数は1回適用したもの(非特許文献3)などがある。
非特許文献1のメッセージ認証コードG(M)は、次式のようにメッセージ認証子τを求める。
Figure 2009005163
ただし、IPADとOPADは、dビットのあらかじめ定められた定数である。このメッセージ認証コードは、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能である(非特許文献4)。
非特許文献2のメッセージ認証コードGK,K’(M)は、次式のようにメッセージ認証子τを求める。
τ←H(K‖P‖M‖K’) (6)
ただし、Pはあらかじめ定められたパディング定数である。このメッセージ認証コードは、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能である(非特許文献5)。しかし、鍵を効率的に回復される攻撃法が知られており、ぜい弱である(非特許文献6)。
非特許文献3のメッセージ認証コードG(M)は、次式のようにメッセージ認証子τを求める。
τ←H(K‖P‖M‖K) (7)
ただし、Pはあらかじめ定められたパディング定数である。
M. Bellare, R. Canetti, H. Krawczyk, "Keying hash functions for message authentication," CRYPTO 1996, LNCS vol.1109, pp.1-15, Springer, Heidelberg (1996). G. Tsudik, "Message authentication with one-way hash functions," ACM Computer Communication Review 22(5) pp.29-38 (1992). P. Metzger, W. A. Simpson, "IP authentication using keyed MD5," RFC 1828, IETF (1995). M. Bellare, "New proofs for NMAC and HMAC: Security without collision-resistance," CRYPTO 2006, LNCS vol.4117, pp.602-619, Springer, Heidelberg (2006). M. Bellare, R. Canetti, H. Krawczyk, "Pseudorandom functions revisited: The cascade construction and its concrete security," IEEE Symposium on Foundations of Computer Science, pp.514-523 (1996). B. Preneel, P. C. van Oorschot, "On the security of two MAC algorithms," EUROCRYPT 1996, LNCS vol.1070, pp.19-32, Springer, Heidelberg (1996).
非特許文献1のメッセージ認証コードは、鍵は1つだけでよく、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対しても安全である。しかし、圧縮関数を用いる繰り返し回数が、3回分増える(圧縮関数を用いる計算が3回分追加される)。また、ハッシュ関数を2回呼び出さなければならないという問題があった。
非特許文献2のメッセージ認証コードは、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、圧縮関数を用いる計算の追加は1〜2回で済み、ハッシュ関数の呼び出しも1回でよい。しかし、鍵を2つ必要とし、鍵回復攻撃に対して安全でないという問題があった。
非特許文献3のメッセージ認証コードは、鍵は1つでよく、圧縮関数を用いる計算の追加は1〜2回で済み、ハッシュ関数の呼び出しも1回でよい。しかし、耐偽造安全性の証明は知られていない。また、鍵回復攻撃に対して安全でないという問題があった。
このような状況から、本発明の目的は、鍵が1つでよく、圧縮関数を用いる計算の追加は1〜2回で済み、ハッシュ関数の呼び出しが1回でよいメッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法を実現することである。
本発明のメッセージ認証子生成装置は、少なくともパディング部と付加ビット生成部とハッシュ部を備え、鍵K(ビット長k)とデータM(ビット長m)とを入力、メッセージ認証子τ(ビット長n)を出力とする。パディング部は、第1パディングP(ビット長p)、第2パディングP(ビット長p)、第3パディングP(ビット長p)を、少なくとも1つは鍵KまたはデータMを用いて定める。付加ビット生成部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、当該メッセージ認証子生成装置で使用するハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する。ハッシュ部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列をハッシュ関数で変換した結果を、メッセージ認証子τとして出力する。
なお、「付加ビット生成部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、当該メッセージ認証子生成装置で使用するハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する。」とは、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列を、実際に作成するものに限定されない。例えば、付加ビット生成部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングPのビット長の情報だけから付加ビットπを求めればよい。また、「ハッシュ部は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列をハッシュ関数で変換した結果を、メッセージ認証子τとして出力する。」も、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列を、実際に作成するものに限定されない。例えば、ハッシュ部は、ビット列取り出し手段と圧縮手段とを備えればよい。この場合、ビット列取り出し手段は、結合したビット列を作成せずに、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番でdビットずつ取り出せばよい。また、圧縮手段は、取り出したビット列と、初期ベクトルVまたは前回の圧縮関数fによる圧縮結果とを入力として、圧縮関数fによる圧縮結果を求めればよい。そして、ビット列取り出し手段でのビット列の取り出しと圧縮手段での圧縮を繰り返し、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπのすべてのビット列が圧縮に使用されたときの圧縮結果をメッセージ認証子τとすればよい。このような処理によって、実際には結合したビット列を作成しなくても、結合したビット列をハッシュ関数で変換した結果を得ることができる。
パディング部は以下に示す条件の中からいくつかの条件を満足するように、第1パディングP、第2パディングP、第3パディングPを定める。
(1)データMに第2パディングPを結合したビット列から、データMを一意に求めることができるという条件。
(2)k+p+m+pがdの倍数であるという条件。
(3)k+pがdであるという条件。
(4)第1パディングPがいかなる付加ビットπとも異なり、第3パディングPをなしとするという条件。
(5)第1パディングPのビット列が第3パディングPのビット列の一部または全部とならない、かつ、第3パディングPのビット列が第1パディングPのビット列の一部または全部とならないという条件。
(6)データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、鍵K、第3パディングP、前記ビット列M、付加ビットπを結合したビット列のビット長がd以下となるビット長mの最大値を最大ビット長mLmaxとし、あらかじめ定めた0以上mLmax以下の整数を整数Σとする。また、いかなる付加ビットπおよびいかなるビット列Mに対しても、第1パディングPは、第3パディングの第1候補P’と付加ビットπとを結合したビット列とは異なる、かつ、第1パディングPは、第3パディングの第2候補P”とビット列Mと付加ビットπとを結合したビット列とは異なるように、第1パディングPと第3パディングの第1候補P’と第3パディングの第2候補P”とを定める。そして、ビット長mが整数Σより大きい場合には、第1パディングP、第2パディングPを用いると共に、第3パディングPとして第1候補P’を用いる。ビット長mが整数Σ以下の場合には、第1パディングPを用いると共に、第2パディングPをなしとし、第3パディングPとして第2候補P”にビット列Mを結合させたビット列を用いるという条件。
(7)第1パディングPと第3パディングPとが異なるという条件。
また、本発明のメッセージ認証子検証装置は、前述のメッセージ認証子生成装置と比較部とを備える。メッセージ認証子検証装置内のメッセージ認証子生成装置は、データMと鍵Kからメッセージ認証子τ’を生成する。比較部は、メッセージ認識子τとメッセージ認証子τ’とを比較してデータMの検証結果を出力する。
本発明のメッセージ認証子生成装置はこのような構成なので、鍵が1つでよく、圧縮関数を用いる計算の追加は原則1〜2回で済み、ハッシュ関数の呼び出しが1回でよい。
さらに、第1パディングP、第2パディングP、第3パディングPを、上述のいくつかの条件を満たすように決定すれば、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対する安全性を確保できる。例えば、(1)〜(4)の条件を満たせば、演算量を少なくしながら、安全性を確保できる。(1)と(2)と(5)の条件を満たせば、さらに演算量を少なくできる。(1)〜(3)と(6)の条件を満たせば、さらに圧縮率の低い圧縮関数を用いることができる。(1)〜(3)と(7)の条件を満たせば、(1)〜(4)の条件を満たす場合と同等の効果が得られる。このように、これらの条件は組み合わせることができる。
[第1実施形態]
第1実施形態では、本発明のメッセージ認証子生成装置とメッセージ認証子生成方法を示す。図1に本発明のメッセージ認証子生成装置の機能構成例を示す。また、図2に本発明のメッセージ認証子生成装置の処理フローを示す。メッセージ認証子生成装置100は、パディング部110、付加ビット生成部120、ハッシュ部130、記録部190を備え、鍵K(ビット長k)とデータM(ビット長m)とが入力、メッセージ認証子τ(ビット長n)が出力である。
パディング部110は、第1パディングP(ビット長p)、第2パディングP(ビット長p)、第3パディングP(ビット長p)を定める(S110)。付加ビット生成部120は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、使用するハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する(S120)。ハッシュ部130は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列をハッシュ関数で変換した結果を、メッセージ認証子τとして出力する(S130)。記録部190は、鍵K、データM、第1パディングP、第2パディングP、第3パディングP、付加ビットπなどを記録する。なお、記録部190を備えず、その他の構成部でこれらの情報を記録してもかまわない。
なお、付加ビット生成部120とハッシュ部130は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列を作成するとは限らない。例えば、付加ビット生成部120は、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングPのビット長の情報だけから付加ビットπを求めれば、結合したビット列を作成する必要は無い。また、例えば、ハッシュ部130に、図1に点線で示すように、ビット列取り出し手段131と圧縮手段132とを備えさせる。この場合の処理フローを、図2に点線で示す。この処理では、ビット列取り出し手段131は、結合したビット列を作成せずに、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番でdビットずつ取り出す(S131)。圧縮手段132は、取り出したビット列と、初期ベクトルVまたは前回の圧縮関数fによる圧縮結果とを入力として、圧縮関数fによる圧縮結果を求める(S132)。そして、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπのすべてのビット列が圧縮に使用されたかを確認する(S133)。ステップS133がNoの場合は、ビット列取り出し手段131でのビット列の取り出しと圧縮手段での圧縮を繰り返す(ビット列取り出し手段131で次のdビットを取り出し、処理を続ける)。ステップS133がYesの場合は、このときの圧縮手段132の圧縮結果をメッセージ認証子τとする。
図3に、あらかじめ定めた条件にしたがって第1パディングPを定めるステップ(S111)、第2パディングPを定めるステップ(S112)、第3パディングPを定めるステップ(S113)を示した処理フローの例を示す。パディング部110は、例えば、以下に示す条件の例の中からいくつかの条件を満足するように、第1パディングP、第2パディングP、第3パディングPを定める。
(1)データMに第2パディングPを結合したビット列から、データMを一意に求めることができるという条件。
(2)k+p+m+pがdの倍数であるという条件。
(3)k+pがdであるという条件。
(4)第1パディングPがいかなる付加ビットπとも異なり、第3パディングPをなしとするという条件。
(5)第1パディングPのビット列が第3パディングPのビット列の一部または全部とならない、かつ、第3パディングPのビット列が第1パディングPのビット列の一部または全部とならないという条件。
(6)データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、鍵K、第3パディングP、前記ビット列M、付加ビットπを結合したビット列のビット長がd以下となるビット長mの最大値を最大ビット長mLmaxとし、あらかじめ定めた0以上mLmax以下の整数を整数Σとする。また、いかなる付加ビットπおよびいかなるビット列Mに対しても、第1パディングPは、第3パディングの第1候補P’と付加ビットπとを結合したビット列とは異なる、かつ、第1パディングPは、第3パディングの第2候補P”とビット列Mと付加ビットπとを結合したビット列とは異なるように、第1パディングPと第3パディングの第1候補P’と第3パディングの第2候補P”とを定める。そして、ビット長mが整数Σより大きい場合には、第1パディングP、第2パディングPを用いると共に、第3パディングPとして第1候補P’を用いる。ビット長mが整数Σ以下の場合には、第1パディングPを用いると共に、第2パディングPをなしとし、第3パディングPとして第2候補P”にビット列Mを結合させたビット列を用いるという条件。
(7)第1パディングPと第3パディングPとが異なるという条件。
第1パディングP、第2パディングP、第3パディングPを、上記のいくつかの条件を満たすように決定すれば、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対する安全性を確保できる。
条件の組み合わせの例1
1つ目の組み合わせの例は、(1)〜(4)の条件を満たすことである。この例では、データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とする。この条件の具体例としては、第1パディングPを(d−k)個の“0”が並んだビット列、第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、第3パディングPをなしと定める例がある。
この例のイメージを図4に示す。圧縮手段132は、図1に示したように1つであるが、図4では繰り返し回数が分かるように、圧縮手段132を繰り返し回数だけ並べて示している。なお、圧縮手段を示す番号の添え字は、何回目の繰り返しに相当するのかを示している。繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPを結合したビット列(dビット)とが、圧縮手段132に入力される。そして、繰り返しの2回目では、1回目の圧縮結果(nビット)と、データMをdビットずつに区切った最初のビット列Mとが、圧縮手段132に入力される。このように繰り返し処理が行われ、L+1回目の繰り返しでは、L回目の圧縮結果(nビット)と、ビット列Mと第2パディングPを結合したビット列(dビット)が、圧縮手段132入力される。L+2回目の繰り返しでは、L+1回目の圧縮結果(nビット)と、鍵Kと付加ビットπを結合したビット列(dビット)が、圧縮手段132入力される。そして、L+2回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。
このように、(1)〜(4)の条件を満たせば、鍵は1つでよく、圧縮関数を用いる計算の追加は2回で済み、ハッシュ関数の呼び出しも1回でよい。また、この条件の組み合わせの場合は、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対しても安全である。
条件の組み合わせの例2
2つ目の組み合わせの例は、(1)と(2)と(5)の条件を満たすことである。この例では、鍵K、第1パディングP、データMを結合したビット列を、dビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とする。この条件の具体例としては、次のような定め方がある。第1パディングPを“0”とする。第2パディングPを、(k+1+m)がdより小さいときは“1”と(d−k−m−2)個の“0”が並んだビット列、(k+1+m)がd以上のときは“1”と(d−m−1)個の“0”が並んだビット列とする。第3パディングPを“1”とする。
この例のイメージを図5に示す。図5の(a)は、(k+1+m)がdより小さいときの処理を示している。この場合は、繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPとデータMと第2パディングPを結合したビット列(dビット)とが、圧縮手段132に入力される。繰り返しの2回目では、1回目の圧縮結果(nビット)と、鍵Kと第3パディングPと付加ビットπが結合したビット列(dビット)が、圧縮手段132入力される。そして、2回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。
図5の(b)は、(k+1+m)がd以上のときの処理を示している。この場合は、繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPとデータMの最初の(d−k−1)ビットMを結合したビット列(dビット)とが、圧縮手段132に入力される。繰り返しの2回目では、1回目の圧縮結果(nビット)と、データMの次のdビットMとが、圧縮手段132に入力される。このように繰り返し処理が行われ、L回目の繰り返しでは、L−1回目の圧縮結果(nビット)と、ビット列Mと第2パディングPを結合したビット列(dビット)が、圧縮手段132入力される。L+1回目の繰り返しでは、L回目の圧縮結果(nビット)と、鍵Kと第3パディングPと付加ビットπを結合したビット列(dビット)が、圧縮手段132入力される。そして、L+1回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。
このように、(1)と(2)と(5)の条件を満たせば、鍵は1つでよく、圧縮関数を用いる計算の追加は1回で済み、ハッシュ関数の呼び出しも1回でよい。したがって、1つ目の組み合わせの例よりも、さらに演算量を少なくできる。また、この条件の組み合わせの場合も、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対しても安全である。
条件の組み合わせの例3
3つ目の組み合わせの例は、(1)〜(3)と(6)の条件を満たすことである。この例では、データMを結合したビット列を、dビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とする。この条件の具体例としては、次のような定め方がある。ビット長mが0より大きい場合には、第1パディングPを(d−k)個の“0”が並んだビット列、第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、第3パディングPを“0”とする。ビット長mが0の場合には、第1パディングPを(d−k)個の“0”が並んだビット列、第2パディングPをなし、第3パディングPを“1”とする。
この例のイメージを図6に示す。図6の(a)は、ビット長mが0より大きい場合の処理を示している。この場合は、繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPを結合したビット列(dビット)とが、圧縮手段132に入力される。繰り返しの2回目では、1回目の圧縮結果(nビット)と、データMをdビットずつに区切った最初のビット列Mとが、圧縮手段132に入力される。このように繰り返し処理が行われ、L+1回目の繰り返しでは、L回目の圧縮結果(nビット)と、ビット列Mと第2パディングPを結合したビット列(dビット)が、圧縮手段132入力される。L+2回目の繰り返しでは、L+1回目の圧縮結果(nビット)と、鍵Kと第3パディングPと付加ビットπが結合したビット列(dビット)が、圧縮手段132入力される。そして、L+2回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。
図6の(b)は、ビット長mが0の場合の処理を示している。この場合は、繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPを結合したビット列(dビット)とが、圧縮手段132に入力される。繰り返しの2回目では、1回目の圧縮結果(nビット)と、データMをdビットずつに区切った最初のビット列Mとが、圧縮手段132に入力される。このように繰り返し処理が行われ、L回目の繰り返しでは、L−1回目の圧縮結果(nビット)と、データMをdビットずつに区切ったときのL−1番目のビット列ML−1とが、圧縮手段132入力される。L+1回目の繰り返しでは、L回目の圧縮結果(nビット)と、鍵Kと第3パディングPと付加ビットπを結合したビット列(dビット)が、圧縮手段132入力される。そして、L+1回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。なお、ビット長mが0の場合とは、ビット列Mがない場合を意味しているので、ビット列Mを圧縮手段132に入力することはない。
このように、(1)〜(3)と(6)の条件を満たせば、鍵は1つでよく、圧縮関数を用いる計算の追加は1回または2回で済み、ハッシュ関数の呼び出しも1回でよい。したがって、1つ目の組み合わせの例よりも、さらに演算量を少なくできる。特に、圧縮率が小さい圧縮関数を使うことができるという効果もある。また、この条件の組み合わせの場合も、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対しても安全である。
条件の組み合わせの例4
4つ目の組み合わせの例は、(1)〜(3)と(7)の条件を満たすことである。この例では、データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とする。この条件の具体例としては、第1パディングPを(d−k)個の“0”が並んだビット列、第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、第3パディングPを(d−k)個の“1”が並んだビット列と定める例がある。
この例のイメージを図7に示す。繰り返しの1回目では、あらかじめ定められた初期ベクトルV(nビット)と、鍵Kと第1パディングPを結合したビット列(dビット)とが、圧縮手段132に入力される。そして、繰り返しの2回目では、1回目の圧縮結果(nビット)と、データMをdビットずつに区切った最初のビット列Mとが、圧縮手段132に入力される。このように繰り返し処理が行われ、L+1回目の繰り返しでは、L回目の圧縮結果(nビット)と、ビット列Mと第2パディングPを結合したビット列(dビット)が、圧縮手段132入力される。L+2回目の繰り返しでは、L+1回目の圧縮結果(nビット)と、鍵Kと第3パディングPを結合したビット列(dビット)が、圧縮手段132入力される。L+3回目の繰り返しでは、L+2回目の圧縮結果(nビット)と、付加ビットπが、圧縮手段132入力される。そして、L+3回目の圧縮結果が、メッセージ認証子τとして、ハッシュ部130から出力される。
このように、(1)〜(3)と(7)の条件を満たせば、圧縮関数を用いる計算の追加は3回となってしまうが、鍵は1つでよく、ハッシュ関数の呼び出しも1回でよい。また、この条件の組み合わせの場合は、圧縮関数の擬似乱数性に基づく耐偽造安全性証明が可能であり、鍵回復攻撃に対しても安全である。
なお、上述の条件や条件の組み合わせは例示である。条件は(1)〜(7)に限るものではなく、条件の組み合わせも上述の例に限るものでもない。
[第2実施形態]
図8に本発明のメッセージ認証子検証装置の機能構成例を示す。また、図9に本発明のメッセージ認証子検証装置の処理フロー例を示す。メッセージ認証子検証装置200は、第1実施形態で示したメッセージ認証子生成装置100と比較部210と記録部290を備え、データM(ビット長m)とメッセージ認証子τ(ビット長n)が入力、検証結果が出力である。
メッセージ認証子検証装置200内のメッセージ認証子生成装置100は、データMとあらかじめ記録しておいた鍵Kからメッセージ認証子τ’を生成する(S100)。比較部210は、メッセージ認識子τとメッセージ認証子τ’とを比較する。そして、τ=τ’ならば、送信者またはデータ作成者の認証、およびデータ内容の整合性が検証されたとする。τ≠τ’ならば、送信者またはデータ作成者の詐称、もしくはデータの改ざんがあると判断する。そして、検証結果を出力する(S210)。なお、記録部290を備えず、その他の構成部でこれらの情報を記録してもよい。
このような構成なので、メッセージ認証子検証装置200でも、メッセージ認証子生成装置100と同じ効果を得ることができる。
図10に、コンピュータの機能構成例を示す。なお、本発明のメッセージ認証子生成装置およびメッセージ認証子検証装置は、コンピュータ2000の記録部2020に、本発明の各構成部としてコンピュータ2000を動作させるプログラムを読み込ませ、処理部2010、入力部2030、出力部2040などを動作させることで実現できる。また、コンピュータに読み込ませる方法としては、プログラムをコンピュータ読み取り可能な記録媒体に記録しておき、記録媒体からコンピュータに読み込ませる方法、サーバ等に記録されたプログラムを、電気通信回線等を通じてコンピュータに読み込ませる方法などがある。
[安全性の証明]
以下では、第1実施形態の条件の組み合わせの例1で示した具体例で、安全性が確保されることを証明する。
定義
まず、証明に使用する記号等を以下のように定義する。
“V”は、圧縮手段に入力する初期ベクトル(Initial Vector)である。
“0”は、p個の“0”が並んだビット列である。
“攻撃者”は、オラクルを呼び出すアルゴリズムAである。
Figure 2009005163
は、集合Xから要素xを一様ランダムに選ぶことである。
Figure 2009005163
は、オラクルOにアクセスする攻撃者Aがxを出力することを表す。
オラクルOはしばしばゲームGで定義される。その場合、
Figure 2009005163
PRFs:“PRF(擬似乱数関数族)”は、安全なMACであり、本明細書中の全てのMACは、RFP型である。関数{f:X→Y}K∈KEYについて考えると、prf攻撃者は2つのオラクル
Figure 2009005163
を区別する。
Figure 2009005163
をfに対するAのprfアドバンテージと定義する。
cAU(computationally Almost Universal):au攻撃者 Aはオラクルを呼び出さない。メッセージの組(M,M’)∈X×Xを出力するだけである。
Figure 2009005163
をfに対するAのauアドバンテージと定義する。
リソース:攻撃者 Aのリソースは、時間リソースt、オラクルへの質問回数q、各質問のビット数μで評価される。
Figure 2009005163
と定義する。ここで、*はprf、au等である。また、T(μ)は、ビット数μの入力があった場合に、関数fの計算に必要な時間リソースである。
命題1
任意のtに対して、
Figure 2009005163
が成り立つ。
証明
Aを、最大値tの時間リソースと最大μビットの出力メッセージのfに対するau攻撃者とする。上記の定義より、
Figure 2009005163
ここで、(M,M’)は、最大μビットの異なるメッセージの組である。よって、
Figure 2009005163
が成り立つメッセージの組(M,M’)が存在する。したがって、定数M,M’が組み込まれた新しい攻撃者Bを構成することにより、証明したい不等式を得る。
安全性の証明
次の定理1は、条件の組み合わせ1による構成の安全性を示している。
定理1
圧縮関数fをf:{0,1}n+p→{0,1}、fで構成される条件の組み合わせ1による構成SをS:{0,1}≦N→{0,1}とすると、条件の組み合わせ1による構成Sは、
Figure 2009005163
がPRFであることを条件として、PRFである。言い換えると、次式が成り立つ。
Figure 2009005163
ただし、
Figure 2009005163
は、fの入力のn+1からn+kビット目までを鍵とした関数であり、
Figure 2009005163
は、fの入力の最初のnビットを鍵とした関数である。
定理1は、後述の3つの命題により証明できる。
命題2
Figure 2009005163
条件の組み合わせの例1による構成SはPRFである。言い換えると、次式が成り立つ。
Figure 2009005163
証明
Aを、最大値tの時間リソースを持ち、最大q(≧2)回のオラクルへの質問とそれぞれ最大μビットのメッセージを出力するSに対するprf攻撃者とする。
Figure 2009005163
を、図11に示すようにサブルーチンとしてAを用いて構築する。ここで、Bは最大値tの時間リソースを持ち、最大q+1回の質問をオラクルに対して行う。Cは、それぞれ最大μビットの2つのメッセージを出力する。したがって、次式のように表現できる。
Figure 2009005163
G、G’を図12に定義された2つのゲームとする。これらのゲームは、攻撃者Aのためのオラクルである。
主張:次式が成り立つ。
Figure 2009005163
証明
Figure 2009005163
である。一方、
Figure 2009005163
である。
主張:全てのMに対してπ(λ(M))≠0とする。よって、ゲームGでは、すべての質問Mに対して
Figure 2009005163
であり、Aの質問への返答の間は、ランダム関数(オラクル)
Figure 2009005163
は、入力値V‖10に対応する値を出力することはない。これは、ゲームGでは、
Figure 2009005163
は、Aの質問とは独立なランダムな値であることを意味する。よって、ゲームGとゲームG’は等価である。
ここで、一般性を失うことなく攻撃者Aは質問を繰り返さず、たとえAの質問へのどのような返答が行われたとしても、Aの質問の総数は常に最大値q以下であると仮定する。M,…,Mを順番にAの質問とする。
Eを、1≦i<j≦qに対して発生する事象
Figure 2009005163
とする。Eが発生しない限り、ゲーム G’中でのAとオラクル
Figure 2009005163
に対して実行されたAは、正確に同じ処理を行う。Game Playingの基本的な命題は、非特許文献(M. Bellare, P. Rogaway, “The security of triple encryption and a framework for code-based game-playing proofs,” In:Vaudenay, S. (ed.) EUROCRYPT 2006, LNCS vol.4004, pp.409-426, Springer, Heidelberg (2006).)に示されている。このGame Playningの基本的な命題により、次式が成り立つ。
Figure 2009005163
主張:次式が成り立つ。
Figure 2009005163
証明
E’を、1≦i<j≦qに対する事象
Figure 2009005163
であって、Pr[E]≦Pr[E’]とする。1≦α<β≦qに対して、E’α,βを、
Figure 2009005163
が発生しているという事象とする。1≦α<β≦qに対して、事象E’α,βは互いに素であり、
Figure 2009005163
である。よって、次式が成り立つ。
Figure 2009005163
また、
Figure 2009005163
である。
命題3
圧縮関数fをf:{0,1}n+p→{0,1}とすると、マークル・ダンガード繰返しによって圧縮関数fから構成された鍵付ハッシュ関数F:{0,1}d*→{0,1}がcAUならば、任意の1対1パディングを組み合わせて構成した
Figure 2009005163
もcAUである。言い換えると、次式の関係が成り立つ。
Figure 2009005163
証明
Aを、最大値tの時間リソースを持ち、それぞれ最大μビットのメッセージ(M,M’)を出力する、
Figure 2009005163
に対するau攻撃者とする。そして、Bの出力を組
Figure 2009005163
とすることで、Fに対するau攻撃者Bを容易に構築できる。ここで、M≠M’であれば、
Figure 2009005163
である。
命題4
圧縮関数fをf:{0,1}n+p→{0,1}とすると、
Figure 2009005163
がPRFであれば、マークル・ダンガード繰返しによって圧縮関数fから構成された鍵付ハッシュ関数F:{0,1}d*→{0,1}がcAUである。言い換えると、次式の関係が成り立つ。
Figure 2009005163
証明
命題4は非特許文献4で証明されている。
上述の命題から、以下の式が成り立つ。
Figure 2009005163
このように、定理1が証明できた。したがって、第1実施形態の条件の組み合わせの例1の条件を満足するように第1パディングP、第2パディングP、第3パディングPを定めれば、安全性が確保できる。
なお、組み合わせの例2、条件の組み合わせの例3、条件の組み合わせの例4は、以下に示す定理2、定理3、定理4を同様に証明することで、安全性の証明ができる。具体的な証明は省略する。
定理2
圧縮関数fをf:{0,1}n+p→{0,1}、fで構成される条件の組み合わせ2による構成 SをS:{0,1}≦N→{0,1}とすると、
Figure 2009005163
がPRFであることを条件として、次式が成り立つ。
Figure 2009005163
定理3
圧縮関数fをf:{0,1}n+p→{0,1}、fで構成される条件の組み合わせ3による構成 SをS:{0,1}≦N→{0,1}とすると、
Figure 2009005163
がPRFであることを条件として、次式が成り立つ。
Figure 2009005163
定理4
圧縮関数fをf:{0,1}n+p→{0,1}、fで構成される条件の組み合わせ4による構成 SをS:{0,1}≦N→{0,1}とすると、
Figure 2009005163
がPRFであることを条件として、次式が成り立つ。
Figure 2009005163
本発明のメッセージ認証子生成装置およびメッセージ認証子検証装置は、例えば携帯電話、パソコン、ルータ、サーバなどに組み込み、送受信されるデータや蓄積されたデータに対する認証子を生成することまたは検証することに利用できる。
本発明のメッセージ認証子生成装置の機能構成例を示す図。 本発明のメッセージ認証子生成装置の処理フローを示す図。 あらかじめ定めた条件にしたがって第1パディングPを定めるステップ、第2パディングPを定めるステップ、第3パディングPを定めるステップを示した処理フローの例を示す図。 条件の組み合わせの例1の場合のハッシュ部の処理のイメージを示す図。 条件の組み合わせの例2の場合のハッシュ部の処理のイメージを示す図。 条件の組み合わせの例3の場合のハッシュ部の処理のイメージを示す図。 条件の組み合わせの例4の場合のハッシュ部の処理のイメージを示す図。 本発明のメッセージ認証子検証装置の機能構成例を示す図。 本発明のメッセージ認証子検証装置の処理フロー例を示す図。 コンピュータの機能構成例を示す図。 攻撃者Bと攻撃者Cの記述を示す図。 ゲーム Gとゲーム G’を示す図。
符号の説明
100 メッセージ認証子生成装置
110 パディング部
120 付加ビット生成部
130 ハッシュ部
131 ビット列取り出し手段
132 圧縮手段
190 記録部
200 メッセージ認証子検証装置
210 比較部
290 記録部

Claims (30)

  1. 鍵KとデータMとを入力とし、メッセージ認証子τを出力するメッセージ認証子生成装置であって、
    第1パディングP、第2パディングP、第3パディングPを、少なくとも1つは前記鍵Kまたは前記データMを用いて定めるパディング部と、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、当該メッセージ認証子生成装置で使用するハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する付加ビット生成部と、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列のハッシュ関数による変換結果を、メッセージ認証子τとして出力するハッシュ部と、
    を備えるメッセージ認証子生成装置。
  2. 請求項1記載のメッセージ認証子生成装置であって、
    前記圧縮関数fは、ビット長n+dのビット列をビット長nに圧縮する関数、初期ベクトルはあらかじめ定められたビット長がnのビット列とするときに、
    前記ハッシュ部は、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番でdビットずつ取り出すビット列取り出し手段と、
    前記ビット列取り出し手段で取り出したビット列と、初期ベクトルVまたは前回の圧縮関数fによる圧縮結果とを入力として、圧縮関数fによる圧縮結果を求める圧縮手段と、
    を備え、
    前記ビット列取り出し手段でのビット列の取り出しと前記圧縮手段での圧縮を繰り返し、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπのすべてのビット列が圧縮に使用されたときの圧縮結果をメッセージ認証子τとする
    ことを特徴とするメッセージ認証子生成装置。
  3. 請求項1または2記載のメッセージ認証子生成装置であって、
    前記パディング部は、
    データMに第2パディングPを結合したビット列から、データMを一意に求めることができるという条件を満たすように第2パディングPを定める
    ことを特徴とするメッセージ認証子生成装置。
  4. 請求項3記載のメッセージ認証子生成装置であって、
    鍵K、データM、第1パディングP、第2パディングPのビット長をそれぞれ、k、m、p、pとするときに、
    前記パディング部は、
    k+p+m+pがdの倍数となるという条件も満たすように第2パディングPを定める
    ことを特徴とするメッセージ認証子生成装置。
  5. 請求項4記載のメッセージ認証子生成装置であって、
    前記パディング部は、
    k+pがdとなるという条件も満たすように第1パディングPを定める
    ことを特徴とするメッセージ認証子生成装置。
  6. 請求項5記載のメッセージ認証子生成装置であって、
    前記パディング部は、
    いかなる付加ビットπとも異なるという条件も満たすように第1パディングPを定め、
    第3パディングPをなしとする
    ことを特徴とするメッセージ認証子生成装置。
  7. 請求項1または2記載のメッセージ認証子生成装置であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディング部は、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPをなし
    と定める
    ことを特徴とするメッセージ認証子生成装置。
  8. 請求項4記載のメッセージ認証子生成装置であって、
    前記パディング部は、
    第1パディングPのビット列が第3パディングPのビット列の一部または全部とならない、かつ、第3パディングPのビット列が第1パディングPのビット列の一部または全部とならないという条件も満たすように、第1パディングPと第3パディングPとを定める
    ことを特徴とするメッセージ認証子生成装置。
  9. 請求項1または2記載のメッセージ認証子生成装置であって、
    鍵K、データMのビット長をそれぞれ、k、mとし、
    鍵K、第1パディングP、データMを結合したビット列を、dビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディング部は、
    第1パディングPを“0”、
    第2パディングPを、(k+1+m)がdより小さいときは“1”と(d−k−m−2)個の“0”が並んだビット列、(k+1+m)がd以上のときは“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを“1”
    と定める
    ことを特徴とするメッセージ認証子生成装置。
  10. 請求項5記載のメッセージ認証子生成装置であって、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、
    鍵K、第3パディングP、前記ビット列M、付加ビットπを結合したビット列のビット長がd以下となる前記ビット長mの最大値を最大ビット長mLmaxとし、
    あらかじめ定めた0以上mLmax以下の整数を整数Σとするときに、
    前記パディング部は、
    いかなる付加ビットπおよびいかなる前記ビット列Mに対しても、第1パディングPは、第3パディングの第1候補P’と付加ビットπとを結合したビット列とは異なるという条件と、第1パディングPは、第3パディングの第2候補P”と前記ビット列Mと付加ビットπとを結合したビット列とは異なるという条件も満たすように、第1パディングPと第3パディングの第1候補P’と第3パディングの第2候補P”とを定め、
    前記ビット長mが前記整数Σより大きい場合には、前記第1パディングP、前記第2パディングPを用いると共に、第3パディングPとして前記第1候補P’を用い、
    前記ビット長mが前記整数Σ以下の場合には、前記第1パディングPを用いると共に、前記第2パディングPにかかわらず第2パディングPをなしとし、第3パディングPとして前記第2候補P”に前記ビット列Mを結合させたビット列を用いる
    ことを特徴とするメッセージ認証子生成装置。
  11. 請求項1または2記載のメッセージ認証子生成装置であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディング部は、
    前記ビット長mが0より大きい場合には、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを“0”
    と定め、
    前記ビット長mが0の場合には、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPをなし、
    第3パディングPを“1”
    と定める
    ことを特徴とするメッセージ認証子生成装置。
  12. 請求項5記載のメッセージ認証子生成装置であって、
    前記パディング部は、
    第1パディングPと第3パディングPとが異なるという条件も満たすように、第1パディングPと第3パディングPとを定める
    ことを特徴とするメッセージ認証子生成装置。
  13. 請求項1または2記載のメッセージ認証子生成装置であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、
    前記パディング部は、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを(d−k)個の“1”が並んだビット列
    と定める
    ことを特徴とするメッセージ認証子生成装置。
  14. データMとメッセージ認識子τを入力とし、データMの検証を行うメッセージ認証子検証装置であって、
    データMと鍵Kからメッセージ認証子τ’を生成する請求項1から13のいずれかに記載のメッセージ認証子生成装置と、
    メッセージ認識子τとメッセージ認証子τ’とを比較してデータMの検証結果を出力する比較部と
    を備えるメッセージ認証子検証装置。
  15. 鍵KとデータMとを入力とし、メッセージ認証子τを出力するメッセージ認証子生成方法であって、
    パディング部で、第1パディングP、第2パディングP、第3パディングPを、少なくとも1つは前記鍵Kまたは前記データMを用いて定めるパディングステップと、
    付加ビット生成部で、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπを結合したビット列が、当該メッセージ認証子生成装置で使用するハッシュ関数内の圧縮関数fで圧縮されるビット長dの整数倍となるように、付加ビットπを生成する付加ビット生成ステップと、
    ハッシュ部で、鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番で結合されたビット列のハッシュ関数による変換結果を、メッセージ認証子τとして出力するハッシュステップと、
    を有するメッセージ認証子生成方法。
  16. 請求項15記載のメッセージ認証子生成方法であって、
    前記圧縮関数fは、ビット長n+dのビット列をビット長nに圧縮する関数、初期ベクトルはあらかじめ定められたビット長がnのビット列とするときに、
    前記ハッシュステップは、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπの順番でdビットずつ取り出すビット列取り出しサブステップと、
    前記ビット列取り出し手段で取り出したビット列と、初期ベクトルVまたは前回の圧縮関数fによる圧縮結果とを入力として、圧縮関数fによる圧縮結果を求める圧縮サブステップと、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπのすべてのビット列が圧縮に使用されたことを確認する確認サブステップ
    を有し、
    前記ビット列取り出しサブステップでのビット列の取り出しと前記圧縮サブステップでの圧縮を繰り返し、
    鍵K、第1パディングP、データM、第2パディングP、鍵K、第3パディングP、付加ビットπのすべてのビット列が圧縮に使用されたときの圧縮結果をメッセージ認証子τとする
    ことを特徴とするメッセージ認証子生成方法。
  17. 請求項15または16記載のメッセージ認証子生成方法であって、
    前記パディングステップは、
    データMに第2パディングPを結合したビット列から、データMを一意に求めることができるという条件を満たすように第2パディングPを定める
    ことを特徴とするメッセージ認証子生成方法。
  18. 請求項17記載のメッセージ認証子生成方法であって、
    鍵K、データM、第1パディングP、第2パディングPのビット長をそれぞれ、k、m、p、pとするときに、
    前記パディングステップは、
    k+p+m+pがdの倍数となるという条件も満たすように第2パディングPを定める
    ことを特徴とするメッセージ認証子生成方法。
  19. 請求項18記載のメッセージ認証子生成方法であって、
    前記パディングステップは、
    k+pがdとなるという条件も満たすように第1パディングPを定める
    ことを特徴とするメッセージ認証子生成方法。
  20. 請求項19記載のメッセージ認証子生成方法であって、
    前記パディングステップは、
    いかなる付加ビットπとも異なるという条件も満たすように第1パディングPを定め、
    第3パディングPをなしとする
    ことを特徴とするメッセージ認証子生成方法。
  21. 請求項15または16記載のメッセージ認証子生成方法であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディングステップは、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPをなし
    と定める
    ことを特徴とするメッセージ認証子生成方法。
  22. 請求項18記載のメッセージ認証子生成方法であって、
    前記パディングステップは、
    第1パディングPのビット列が第3パディングPのビット列の一部または全部とならない、かつ、第3パディングPのビット列が第1パディングPのビット列の一部または全部とならないという条件も満たすように、第1パディングPと第3パディングPとを定める
    ことを特徴とするメッセージ認証子生成方法。
  23. 請求項15または16記載のメッセージ認証子生成方法であって、
    鍵K、データMのビット長をそれぞれ、k、mとし、
    鍵K、第1パディングP、データMを結合したビット列を、dビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディングステップは、
    第1パディングPを“0”、
    第2パディングPを、(k+1+m)がdより小さいときは“1”と(d−k−m−2)個の“0”が並んだビット列、(k+1+m)がd以上のときは“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを“1”
    と定める
    ことを特徴とするメッセージ認証子生成方法。
  24. 請求項19記載のメッセージ認証子生成方法であって、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、
    鍵K、第3パディングP、前記ビット列M、付加ビットπを結合したビット列のビット長がd以下となる前記ビット長mの最大値を最大ビット長mLmaxとし、
    あらかじめ定めた0以上mLmax以下の整数を整数Σとするときに、
    前記パディングステップは、
    いかなる付加ビットπおよびいかなる前記ビット列Mに対しても、第1パディングPは、第3パディングの第1候補P’と付加ビットπとを結合したビット列とは異なるという条件と、第1パディングPは、第3パディングの第2候補P”と前記ビット列Mと付加ビットπとを結合したビット列とは異なるという条件も満たすように、第1パディングPと第3パディングの第1候補P’と第3パディングの第2候補P”とを定め、
    前記ビット長mが前記整数Σより大きい場合には、前記第1パディングP、前記第2パディングPを用いると共に、第3パディングPとして前記第1候補P’を用い、
    前記ビット長mが前記整数Σ以下の場合には、前記第1パディングPを用いると共に、前記第2パディングPにかかわらず第2パディングPをなしとし、第3パディングPとして前記第2候補P”に前記ビット列Mを結合させたビット列を用いる
    ことを特徴とするメッセージ認証子生成方法。
  25. 請求項15または16記載のメッセージ認証子生成方法であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とするときに、
    前記パディングステップは、
    前記ビット長mが0より大きい場合には、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを“0”
    と定め、
    前記ビット長mが0の場合には、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPをなし、
    第3パディングPを“1”
    と定める
    ことを特徴とするメッセージ認証子生成方法。
  26. 請求項19記載のメッセージ認証子生成方法であって、
    前記パディングステップは、
    第1パディングPと第3パディングPとが異なるという条件も満たすように、第1パディングPと第3パディングPとを定める
    ことを特徴とするメッセージ認証子生成方法。
  27. 請求項15または16記載のメッセージ認証子生成方法であって、
    鍵Kのビット長をkとし、
    データMをdビットずつに区切った時に最後に余るビット列をビット列M(ただし、Mのビット長mは0からd−1)とし、
    前記パディングステップは、
    第1パディングPを(d−k)個の“0”が並んだビット列、
    第2パディングPを“1”と(d−m−1)個の“0”が並んだビット列、
    第3パディングPを(d−k)個の“1”が並んだビット列
    と定める
    ことを特徴とするメッセージ認証子生成方法。
  28. データMとメッセージ認識子τを入力とし、データMの検証を行うメッセージ認証子検証方法であって、
    データMと鍵Kからメッセージ認証子τ’を生成する請求項15から27のいずれかに記載のメッセージ認証子生成方法の各ステップと、
    比較部で、メッセージ認識子τとメッセージ認証子τ’とを比較してデータMの検証結果を出力する比較ステップと
    を有するメッセージ認証子検証方法。
  29. 請求項1から14のいずれかに記載の装置として、コンピュータを動作させるプログラム。
  30. 請求項29記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2007165141A 2007-06-22 2007-06-22 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体 Expired - Fee Related JP4886614B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007165141A JP4886614B2 (ja) 2007-06-22 2007-06-22 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007165141A JP4886614B2 (ja) 2007-06-22 2007-06-22 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP2009005163A true JP2009005163A (ja) 2009-01-08
JP4886614B2 JP4886614B2 (ja) 2012-02-29

Family

ID=40321052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165141A Expired - Fee Related JP4886614B2 (ja) 2007-06-22 2007-06-22 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体

Country Status (1)

Country Link
JP (1) JP4886614B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218237A (ja) * 2009-03-17 2010-09-30 Renesas Electronics Corp プログラム検証装置及びその方法
JP6033504B1 (ja) * 2015-07-15 2016-11-30 三菱電機株式会社 メッセージ認証子生成装置
JP2018528627A (ja) * 2015-07-03 2018-09-27 インテル・コーポレーション ウェアラブルデバイスにおけるデータ圧縮のための装置および方法
CN111052670A (zh) * 2017-09-01 2020-04-21 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005031579A1 (ja) * 2003-09-26 2005-04-07 Nippon Telegraph And Telephone Corporation タグプライバシー保護方法、タグ装置、バックエンド装置、更新装置、更新依頼装置、それらのプログラム及びこれらのプログラムを格納した記録媒体
WO2005091546A2 (en) * 2004-03-15 2005-09-29 Cardiac Pacemakers, Inc. Cryptographic authentication for implantable medical device telemetry

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005031579A1 (ja) * 2003-09-26 2005-04-07 Nippon Telegraph And Telephone Corporation タグプライバシー保護方法、タグ装置、バックエンド装置、更新装置、更新依頼装置、それらのプログラム及びこれらのプログラムを格納した記録媒体
WO2005091546A2 (en) * 2004-03-15 2005-09-29 Cardiac Pacemakers, Inc. Cryptographic authentication for implantable medical device telemetry

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218237A (ja) * 2009-03-17 2010-09-30 Renesas Electronics Corp プログラム検証装置及びその方法
JP2018528627A (ja) * 2015-07-03 2018-09-27 インテル・コーポレーション ウェアラブルデバイスにおけるデータ圧縮のための装置および方法
JP6033504B1 (ja) * 2015-07-15 2016-11-30 三菱電機株式会社 メッセージ認証子生成装置
WO2017009981A1 (ja) * 2015-07-15 2017-01-19 三菱電機株式会社 メッセージ認証子生成装置
CN107852331A (zh) * 2015-07-15 2018-03-27 三菱电机株式会社 消息认证码生成装置
CN111052670A (zh) * 2017-09-01 2020-04-21 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
CN111052670B (zh) * 2017-09-01 2024-02-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法和计算机能读取的存储介质

Also Published As

Publication number Publication date
JP4886614B2 (ja) 2012-02-29

Similar Documents

Publication Publication Date Title
Lin et al. Two-round and non-interactive concurrent non-malleable commitments from time-lock puzzles
Buchmann et al. On the security of the Winternitz one-time signature scheme
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
Preneel The state of cryptographic hash functions
JP5447510B2 (ja) タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
Kumar et al. Novel noncommutative cryptography scheme using extra special group
Armknecht et al. General impossibility of group homomorphic encryption in the quantum world
JP4886614B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
Shen et al. Improved security bounds for generalized Feistel networks
Black et al. MAC reforgeability
Döttling et al. Maliciously circuit-private FHE from information-theoretic principles
Kim et al. Quantum-Secure Hybrid Blockchain System for DID-based Verifiable Random Function with NTRU Linkable Ring Signature
Deshpande et al. Proofs of ignorance and applications to 2-message witness hiding
Maurer et al. Computational indistinguishability amplification: Tight product theorems for system composition
Pass et al. Private coins versus public coins in zero-knowledge proof systems
Zhu et al. Efficient construction of provably secure steganography under ordinary covert channels
Cayrel et al. Critical attacks in code-based cryptography
Kiayias et al. Directions in polynomial reconstruction based cryptography
Petit et al. Cayley hashes: A class of efficient graph-based hash functions
JP4914329B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
RP Keyed-CAHASH: a new fast keyed hash function based on cellular automata for authentication
Katti et al. Nonce Generation For The Digital Signature Standard.
Nguyen et al. New Key Extraction Attacks on Threshold ECDSA Implementations
Abe et al. Message recovery signature schemes from sigma-protocols
Sepahi et al. Lattice-based completely non-malleable public-key encryption in the standard model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090729

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110810

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees