JP2017073716A - タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム - Google Patents

タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム Download PDF

Info

Publication number
JP2017073716A
JP2017073716A JP2015200741A JP2015200741A JP2017073716A JP 2017073716 A JP2017073716 A JP 2017073716A JP 2015200741 A JP2015200741 A JP 2015200741A JP 2015200741 A JP2015200741 A JP 2015200741A JP 2017073716 A JP2017073716 A JP 2017073716A
Authority
JP
Japan
Prior art keywords
tag list
message
tag
pseudo
mac
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.)
Pending
Application number
JP2015200741A
Other languages
English (en)
Inventor
一彦 峯松
Kazuhiko Minematsu
一彦 峯松
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2015200741A priority Critical patent/JP2017073716A/ja
Publication of JP2017073716A publication Critical patent/JP2017073716A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】改ざんの有無だけではなく改ざんされた位置に関する情報を得ることができるメッセージ認証を効率よく構築する。【解決手段】タグリスト生成装置400は、メッセージ入力部401と、グループテスト行列生成部402と、タグリスト生成部403と、を備える。メッセージ入力部401は、m個のアイテムMから構成されるメッセージを入力する。グループテスト行列生成部402は、生成するメッセージ認証コードのタグ数sについて、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する。タグリスト生成部403は、グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、メッセージに関するs個のタグからなるタグリストを生成する。タグリスト生成部403は、m個のアイテムMそれぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う。【選択図】図1

Description

本発明は、タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラムに関する。特に、共通鍵暗号又はハッシュ関数を用いたメッセージ認証コードに係るタグリストを対象とする、タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラムに関する。
近年、メッセージ認証コード(MAC;Message Authentication Code、以下メッセージ認証と表記する)が情報処理システム、通信システムにて使用されることが多い。メッセージ認証とは、メッセージに対して秘密鍵を知る者だけが計算できるタグを付与することで、メッセージが正当であることを保証する技術である。例えば、メッセージ認証を用いることで、秘密鍵を共有した2者の通信において、当該2者の通信の間に行われた、第3者によるメッセージ改ざんを検知することが可能となる。具体的には、送信者がメッセージとタグを受信者に送った際に、受信者側では受け取ったメッセージからタグを計算し、受信したタグとの一致を確認することで、メッセージが正当な送信者から送られたものか否かが判定できる。
ここで、MAC(メッセージ認証)の基本的な入出力を説明する。例えば、秘密鍵Kを共有する2人の人物A、Bを想定し、人物Aから人物BにメッセージMを送る場合を考える。この場合、人物Aは、メッセージMに対して秘密鍵Kを用いたMAC関数(MAC_K)を適用し、認証タグT=MAC_K(M)を求める。人物Aは、メッセージMと認証タグ(M、T)を人物Bに送信する。人物Bが受信した情報を(M’、T’)と表記すると、人物Bは認証タグT’とMAC_K(M’)の一致を確認することで、受け取ったメッセージ(M’、T’)が、人物Aが送った情報(メッセージM、認証タグT)の対であるか否かが判明し、改ざんの有無がチェック可能となる。上記のような一例として、非特許文献1に記載のHMAC(Hash-based MAC)や、非特許文献2に記載のCMAC(Cipher-based MAC)が挙げられる。
なお、通常のメッセージ認証を用いる場合、メッセージ中の改ざんされた位置に関する情報を得ることは不可能である。メッセージの改ざんが行われた場合、認証タグの値は正しい値とは異なるランダムな値となるためである。このような問題に対し、メッセージの全体にMAC関数を適用するのではなく、メッセージを任意の部分に分割し、それらの部分ごとにMAC関数を適用することで、部分ごとのチェックが行われることがある。このような部分ごとのチェックにより、メッセージに対する改ざん位置を特定することが可能となる。
例えば、メッセージMがm(mは正の整数、以下同じ)個のアイテムM[1]、・・・、M[m]からなる場合、T[1]=MAC_K(M[1])、T[2]=MAC_K(M[2])、・・・、T[m]=MAC_K(M[m])を求め、相手方に(M、T[1]、・・・、T[m])を送信すればよい。例えば、ハードディスク上のデータに対し、ファイルごとやディスクセクターごとにMACを計算することが、上記手法の適用例として挙げられる。
しかしながら、上記手法は、m個のアイテムに対してm個のタグが生成されるため、保存すべきデータ量の増加が大きいという問題がある。一方、非特許文献3に開示されるように、メッセージにおける互いの重なりを許容し、長さも異なる複数の部分系列にメッセージを分解し、当該部分系列ごとにMACを適用するという手法(アプローチ)が存在する。
[第1の例]
例えば、メッセージMが7個のアイテムから構成されるとき、メッセージM(M[1]、M[2]、・・・、M[7])を、以下の3つの部分系列に分解する。
S[1]=(M[1]、M[2]、M[3]、M[4]);
S[2]=(M[1]、M[2]、M[5]、M[6]);
S[3]=(M[1]、M[3]、M[5]、M[7]);
その上で、各部分系列に対してMACを適用することで、3つのタグT[1]=MAC(S[1])、T[2]=MAC(S[2])、T[3]=MAC(S[3])が計算されたものとする。この場合、アイテムごとにMACを適用する場合に7個必要であったタグが、3個に減らすことができる。
さらに、メッセージ改ざんの有無に関する検証時におけるタグと部分系列(T[i]、S[i])に対する検証結果を2値(例えば、「0」であればMACは正しい;「1」であればメッセージの改ざんあり)のB[i]で表現すると、例えば、チェックの結果は以下のように表現できる(iは正の整数、以下同じ)。
B[1]=0;
B[2]=1;
B[3]=0;
ある特定の時点でメッセージMに対してMACタグのチェックを行った結果が上記の場合、M[6]が改ざんされた箇所であると特定可能である。より正確には、上記の例では任意の1アイテムの改ざんであれば、改ざんされたアイテムの特定が可能である。このことは、部分系列の取り方を工夫することにより、改ざんされたアイテム数が所与の閾値以下のときには、改ざんされたアイテムまで特定することが可能であることを示している。
なお、メッセージMをどのような部分系列に分解し、又、その結果どのような改ざんアイテムの特定が可能になるかは、非特許文献3に開示されている。非特許文献3の開示によれば、組み合わせグループテスト(CGT;Combinatorial Group Testing)と呼ばれる組み合わせ問題と密接に関連がある。例えば、m個のアイテムとs個のテストからなるCGTでは、s行m列の2値行列W(以下、グループテスト行列又はCGT行列と表記する)を構成し、当該行列Wに従ってテストが行われる。CGT行列Wのi行j列目の要素が「1」であれば、j番目のテストにてi番目のアイテムをテストに含めるということを示す(jは正の整数、以下同じ)。
データベースシステムに上記手法を適用する場合を考えると、現実的なシステムの制約などから、不正を行う者が一度に大量のアイテムを改ざんすることは考えにくい。そのため、CGTとMACを組み合わせることにより、タグの総数を抑えつつ、現実的に起こりうる改ざんに対し、その場所を特定可能なデータベースシステムを構築することができる。なお、通常のMACと同様に、CGTとMACを組み合わせた場合、任意の改ざんに対して、改ざんがあったという事実を検出可能という性質は変わらない。
なお、非特許文献4に開示された「Corruption-localizing hash」のように、鍵のないハッシュ関数をMACの代わりに用いた場合でも、ハッシュ値をメッセージと別の安全な場所に保存するという前提のもとでは同様の効果が望める。また、改ざんされたアイテムの特定に至らなくとも、改ざんされた範囲を絞ることは、通常可能である。
ここで、非特許文献3に開示された改ざん位置特定可能なMAC方式では、MACのタグは改ざんされていないことが求められる。その理由は、上記MAC方式が用いるテスト行列は「disjunct matrix」と呼ばれる行列であるからである。具体的には、行列が「d-disjunct」であるとき、d個までのデータアイテムの改ざんは特定可能であるが、タグのみの改ざんがあった場合には特定可能な改ざんの数に関して何ら保証はないためである(dは正の整数、以下同じ)。
同様に、非特許文献4に開示される手法においても、計算対象のデータが存在すればハッシュ値の計算自体は可能であり、ハッシュ値は改ざんされないことが前提条件である。タグ(又はハッシュ値)のみの改ざんは、該当するテストにおいて対応する部分データに改ざんがないのにも関わらず、テスト結果で不一致と判定されるため、所謂、「false positive」(擬陽性)に相当する。
また、非特許文献3に開示される方式は、データと秘密鍵のみからタグを求める方式であるため、過去のデータとタグの組を観測しておき、ある時点でデータとタグを置き換える攻撃(所謂、リプレイ攻撃)には無力である。ここで、非特許文献3の方式では、攻撃者はそもそも改ざん可能なデータの量において制約があるとするモデルのため、データとタグ全体を置き換えるような通常のリプレイ攻撃は排除されているといえる。しかし、この場合でも一部のデータとタグの置き換えは、通常、可能であり(便宜上、部分的なリプレイと表記する)、このとき置き換えられたデータとタグに対応するテストは成功してしまう。言い換えれば、テストにおける「false negative」(擬陰性)を容易に起こせることになる。
Dworkin, M., "Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication", NIST Special Publication 800-38B, [online], 2005年5月, [2015年9月18日検索], <URL:http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf> M. Bellare, R. Canetti, H. Krawczyk, "Keying hash functions for message authentication", CRYPTO 1996, pp.1-15, Springer, Heidelberg (1996). Michael T. Goodrich, Mikhail J. Atallah, Roberto Tamassia, "Indexing Information for Data Forensics", Applied Cryptography and Network Security, Third International Conference, ACNS 2005, New York, NY, USA, June 7-10, 2005, Proceedings. 2005 Lecture Notes in Computer Science ISBN 3-540-26223-7, pp. 206-221. Giovanni Di Crescenzo, Shaoquan Jiang, Reihaneh Safavi-Naini, "Corruption-Localizing Hashing", Computer Security - ESORICS 2009, 14th European Symposium on Research in Computer Security, Saint-Malo, France, September 21-23, 2009. Proceedings. Springer 2009 Lecture Notes in Computer Science ISBN 978-3-642-04443-4, pp. 489-504
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。
ここで、非特許文献3や非特許文献4に開示された方式を、既存のハッシュ関数(例えば、SHA-2(Secure Hash Algorithm-2)等)やメッセージ認証(例えば、CMAC等)により実行すると、1つのタグを計算する基本的な方式と比較し、計算量が大幅に増加する。通常のMAC関数は、入力長に対して線形オーダの計算量を有するため、その計算量の概算は、s個のMAC計算をm個のアイテムに対して行うことは単純に計算量がs倍となる。
より正確には、計算量の増加はどのようなCGT(組み合わせグループテスト)を実行するかに依存する。例えば、上述の[第1の例]と同様に任意の1アイテムの改ざんを特定可能なCGTを構成する場合を考える。例えば、アイテム数がm個の場合、テストの数(即ち、タグの数)はlog_2m個必要となる。また、ほぼ全てのテストがメッセージのm/2個を用いる。従って、MACの計算量が、処理するアイテム数に比例するものと考えると、通常のMACのタグを1つ生成する場合に比べて(1/2)log_2m倍の計算量が必要となる。データベース等のアプリケーションでは、アイテム数mの数が極めて大きいことが予想されるため、例え(1/2)log_2m倍であっても、計算量の増加は著しいものになる。さらに、d個のアイテムの改ざんを同定しようとする場合、テストの数はO(dlog_2m)個必要となることが知られており、全体での計算量は、単一のMACタグを計算することに比べて大幅に増加することが多い。
また、アプリケーションによっては、既にタグを計算したアイテムの値を更新することがあり得るが、非特許文献3や非特許文献4に開示された方式を、既存のハッシュ関数やメッセージ認証で実現する場合に、アイテム更新に伴うタグの再計算を効率的に行うことができず、該当するテストのやり直し(最初から再計算)が必要となる。
本発明は、改ざんの有無だけではなく改ざんされた位置に関する情報を得ることができるメッセージ認証を効率よく構築することに寄与する、タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラムを提供することを目的とする。
本発明の第1の視点によれば、m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力するメッセージ入力部と、生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、グループテスト行列生成部と、前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、タグリスト生成部と、を備え、前記タグリスト生成部は、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、タグリスト生成装置が提供される。
本発明の第2の視点によれば、m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力するステップと、生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、ステップと、前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、ステップと、を含み、前記タグリストを生成するステップは、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、タグリスト生成方法が提供される。
本発明の第3の視点によれば、タグリスト生成装置に搭載されたコンピュータに実行させるプログラムであって、m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力する処理と、生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、処理と、前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、処理と、を実行し、前記タグリストを生成する処理は、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、プログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明の各視点によれば、改ざんの有無だけではなく改ざんされた位置に関する情報を得ることができるメッセージ認証を効率よく構築することに寄与する、タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラムが、提供される。
一実施形態の概要を説明するための図である。 第1の実施形態に係るMACタグリスト生成装置のハードウェア構成の一例を示すブロック図である。 第1の実施形態に係るMACタグリスト生成装置の処理構成の一例を示すブロック図である。 第1の実施形態における第2の例を説明するための図である。 MACタグリストの計算量を説明するための図である。 MACタグリストの計算量を説明するための図である。 第1の実施形態に係るMACタグリスト生成装置の動作の一例を示すフローチャートである。 第2の実施形態に係るMACタグリスト検証装置の処理構成の一例を示すブロック図である。 第2の実施形態に係るMACタグリスト検証装置の動作の一例を示すフローチャートである。 第3の実施形態に係るMACタグリスト更新装置の処理構成の一例を示すブロック図である。 第3の実施形態に係るMACタグリスト更新装置の動作の一例を示すフローチャートである。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
一実施形態に係るタグリスト生成装置400は、メッセージ入力部401と、グループテスト行列生成部402と、タグリスト生成部403と、を備える。メッセージ入力部401は、m個のアイテムM[1]・・・[m]から構成されるメッセージを入力する。グループテスト行列生成部402は、生成するメッセージ認証コードのタグ数sについて、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する。タグリスト生成部403は、グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、メッセージに関するs個のタグからなるタグリストを生成する。さらに、タグリスト生成部403は、メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う。
タグリスト生成装置400は、メッセージをなすm個のアイテムMそれぞれに関するタグの計算を、グループテスト行列により規定されるテストごとに個別に行うのではなく、途中の計算結果を共有しつつ並行に行う。その結果、タグリスト生成装置400は、共通鍵暗号又はハッシュ関数を用いたメッセージ認証方式に関し、特に受信側で改ざんの有無だけでなく改ざんの場所を特定可能なタグリストを効率的に生成することができる。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
図2は、第1の実施形態に係るMACタグリスト生成装置10のハードウェア構成の一例を示すブロック図である。MACタグリスト生成装置10は、情報処理装置(コンピュータ)により構成可能であり、図2に例示する構成を備える。例えば、MACタグリスト生成装置10は、内部バスにより相互に接続される、CPU(Central Processing Unit)11、メモリ12、入出力インターフェイス13及び通信手段であるNIC(Network Interface Card)14等を備える。なお、図2に示す構成は、MACタグリスト生成装置10のハードウェア構成を限定する趣旨ではない。MACタグリスト生成装置10は、図示しないハードウェアを含んでもよい。あるいは、MACタグリスト生成装置10に含まれるCPU等の数も図2の例示限定する趣旨ではなく、例えば、複数のCPUがMACタグリスト生成装置10に含まれていてもよい。
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)である。
入出力インターフェイス13は、図示しない表示装置や入力装置のインターフェイスとなる手段である。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
図3は、第1の実施形態に係るMACタグリスト生成装置10の処理構成の一例を示すブロック図である。図3を参照すると、MACタグリスト生成装置10は、メッセージ入力部101と、初期ベクトル生成部102と、グループテスト行列生成部103と、ブロックスライス並列MAC適用部104と、MACタグリスト出力部105と、を含んで構成される。上記の各処理モジュールは、例えば、メモリ12に格納されたプログラムをCPU11が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能を何らかのハードウェア、及び/又は、ソフトウェアで実行する手段があればよい。
なお、以降の説明において、特段の釈明がない限りは、1ブロックの長さをnビットとする(nは正の整数、以下同じ)。
メッセージ入力部101は、対象となるメッセージMを入力する手段である。メッセージ入力部101は、例えば、キーボード等の文字入力装置により実現される。第1の実施形態では、メッセージMがm個の個別のアイテムM[1]、・・・、M[m]により構成されているものとする。なお、それぞれのアイテムは、長さが互いに異なるものでもよいし、値が同じであってもよい。例えば、ハードディスクの1セクタの内容や、データベースの1エントリ、あるいは、文章情報の1キャラクタ(1文字)等が各アイテムの具体例として例示される。
初期ベクトル生成部102は、MAC計算に用いる初期ベクトルNを生成する手段である。初期ベクトルNは、新たなデータアイテムを処理するたびに更新される値である必要がある。例えば、カウンターや時刻情報を用いることが考えられる。
グループテスト行列生成部103は、改ざん位置特定のための組み合わせグループテスト(CGT)を生成する手段である。具体的には、グループテスト行列生成部103は、テストの数(即ち、MACの数)であるsと、特定可能な改ざんアイテムの数の最大値dに応じて、s行m列の2値行列Wを生成する。
例えば、上述の[第1の例]では、メッセージM(M[1]、M[2]、・・・、M[7])を、以下の3つの部分系列に分解している。
S[1]=(M[1]、M[2]、M[3]、M[4]);
S[2]=(M[1]、M[2]、M[5]、M[6]);
S[3]=(M[1]、M[3]、M[5]、M[7]);
この場合、グループテスト行列生成部103が、グループテスト行列Wを下記の式(1)に設定することと等価である。
[1111000]
W=[1100110]・・・(1)
[1010101]
この場合はd=1個の改ざんを特定可能である。
上記のような行列は、d-disjunctであると称される。但し、本願開示が目的とするタグの改ざんに対する耐性(より正確には、タグの改ざんにより伴い生じる個々のテストの「false positive」への耐性)は、行列がd-disjunctであることでは保証できない。そこで、本願開示では、グループテスト行列は、「d-disjunct」且つ「e-error correcting」であるとする。このことにより、e個までのテストの「false positive」に耐性のある行列となり、高々e個までのタグの改ざんがあっても、高々d個までのデータアイテムの改ざんを特定可能となる。なお、上記のdとeはユーザが定めるパラメータとなる。
具体的なパラメータd、eに対応した行列の生成方法は、下記の参考文献1及び2に開示されている。
[参考文献1]Mahdi Cheraghchi, "Noise-Resilient Group Testing: Limitations and Constructions", FCT 2009: 62-73.
[参考文献2]Hung Q. Ngo、Ely Porat、Atri Rudra, "Efficiently Decodable Error-Correcting List Disjunct Matrices and Applications-(Extended Abstract)", ICALP (1) 2011: 557-568.
このように、グループテスト行列生成部103は、m個のアイテムM[1]・・・M[m]におけるd個の改ざんが特定可能であり、且つ、生成されたs個のタグのうち、e個までのタグの改ざんを特定可能な、「d-disjunct」且つ「e-error correcting」である行列を、グループテスト行列Wとして生成する。
ブロックスライス並列MAC適用部104は、m個のアイテムからなるメッセージM=(M[1]、・・・、M[m])について、s行m列のグループテスト行列Wが指定する方法によりs個のMACタグを生成する手段である。ブロックスライス並列MAC適用部104が、上述のタグリスト生成部403に相当する。
ブロックスライス並列MAC適用部104は、MACタグの生成に、可変長入力固定長出力の擬似ランダム関数(PRF;Pseudorandom Function)Fと、固定長入出力のTweak付き擬似ランダム置換(TPRP;Tweakable Pseudorandom Permutation)Gを用いる。ここで Tweakとは秘密ではないパラメータであり、擬似ランダム置換Gは、任意のTweak TについてG(T、*)が鍵付きの置換となるという関数である。Tweak付き擬似ランダム置換は、擬似ランダム置換の拡張であり、Tweak付きブロック暗号(Tweakable block cipher)とも称される。その安全性定義や構成方法は、例えば、下記の参考文献3に開示されている。
[参考文献3]M. Liskov, R. Rivest, D. Wagner, "Tweakable Block Ciphers”, Advances in Cryptology - CRYPTO 2002, 22nd Annual International Cryptology Conference, Santa Barbara, California, USA, August 18-22, 2002, Proceedings. Lecture Notes in Computer Science 2442 Springer 2002, pp. 31-46.
なお、以下の説明において、特段の釈明がなく、擬似ランダム関数Fと表記した場合には、「可変長入力固定長出力の擬似ランダム関数F」を意味し、擬似ランダム置換Gと表記した場合には、「Tweak付き擬似ランダム置換G」を意味するものとする。
また、第1の実施形態では、理解の容易のため、擬似ランダム関数Fの出力長は、擬似ランダム置換Gの入出力長と等しいものとするが、両者が異なる場合には、ブロックスライス並列MAC適用部104が、擬似ランダム関数Fの出力へ拡張(例えば、パディング)や短縮を適宜用いることで、両者の長さを一致させればよい。
グループテスト行列Wは、どのテストがどのアイテムを含めるかを指定するものであり、具体的にはi行j列成分が「1」であれば、i番目のMACタグ計算がM[j]を含めることを意味する。ブロックスライス並列MAC適用部104による具体的な計算は以下のとおりである。
初めに、ブロックスライス並列MAC適用部104は、各テストのインデックスiに関し、グループテスト行列Wのi行目で「1」が設定されている(即ち、テストが必要と設定されている)全ての列のインデックスjについて、アイテムM[j]とインデックスjを連結し、擬似ランダム関数Fに等外連結した結果を入力して得られる出力F(j、M[j])の和を算出し、当該和をZ[i]とする。次に、ブロックスライス並列MAC適用部104は、上記Z[i]を擬似ランダム置換Gに入力する。その際、Tweakは、初期ベクトルNとインデックスiを連結してTweak=(N、i)として与える。ブロックスライス並列MAC適用部104は、擬似ランダム置換Gにより得られた出力G((N、i)、Z[i])をi番目のテストに対応するMAC値T[i]とする。ブロックスライス並列MAC適用部104は、上記の計算を、全てのi(=1、・・・、s)について繰り返し行い、MACタグリストT=(T[1]、・・・、T[s])を生成する。
なお、擬似ランダム関数Fと擬似ランダム置換Gは、標準的なブロック暗号やハッシュ関数を用いて構成可能である。例えば、各アイテムのビット長が高々nビットである場合、擬似ランダム関数Fと擬似ランダム置換Gによる処理は、n-bitブロック暗号Eを用いた下記の参考文献4のPMACと類似した構成が可能である。
[参考文献4]P. Rogaway, "Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC”, Advances in Cryptology- ASIACRYPT'04. LNCS 3329, pp. 16-31, 2004.
ここでは、ブロック暗号Eによる平文ブロックXの暗号化をE(X)と表記し、具体的な処理の一例を[第2の例]として説明する。なお、[第2の例]では、ガロア体(Galois Field)GF(2)上の元であるXとYの積をXY、加算(なお、ビットごとのXORと等価)をX+Yとそれぞれ表記する。また、ガロア体GF(2)上の元は、n-bitで表現できるため、n-bit変数として扱う。
[第2の例]
なお、第2の例を説明するにあたり、諸条件は以下の通りとする。初期ベクトルNは、1からカウントアップするカウンターとする。初期ベクトルNの暗号化VをE(N)と表記する(V=E(N))。全ゼロ平文の暗号化LをE(00・・・0)と表記する(L=E(00・・・0))。つまり、Vは初期ベクトルNの暗号化、Lは全ゼロ平文の暗号化である。さらに、擬似ランダム関数F(j、X)をE(2L+X)とし、擬似ランダム置換G((N、i)、X)をE(2V+X)とする。
上記の諸条件の下で、i番目のMACタグ生成で、h個のアイテムM[j[1]]、・・・、M[j[h]]が含まれるならば、Z[i]をF(j[1]、M[j[1]])+・・・+F(j[h]、M[j[h]])とし、G((N、i)、Z[i])がタグT[i]として出力される。当該処理が、全てのインデックスi(i=1、・・・、s)について行われる。但し、2は、ガロア体GF(2)上の生成元2のi乗を示す。この際のi番目のテストに対するタグ計算を抽出して記載すると図4の通りとなる。当該形式は、PMACに類似するものであるが、[第2の例]における入力データは(M[j[1]]、・・・、M[j[h]])であるのに対し、本来のPMACでは、F(1、M[j[1]])+F(2、M[j[2]])+・・・+F(h、M[j[h]])を擬似ランダム置換Gにより処理する形式となる。また、PMACでは、最後のデータアイテムは擬似ランダム関数Fを通さずに単に中間変数へのXORとなるが、第1の実施形態では、安全性の要件を考慮し、当該形式(中間変数へのXOR)を採用しない。換言するならば、第1の実施形態における擬似ランダム関数Fへのインデックスの与え方は、i番目のテストにおいて、グループテスト行列Wの(i、j)成分が「1」となる全てのjについて、F(j、M[j])を中間変数として加算し、それ以外のjについてはM[j]に依存せず全ゼロ値を加算していると捉えることもできる。
なお、各アイテムのデータ長が可変である場合には、可変長入力の擬似ランダム関数Fを、HMACやCMAC等へインデックスjとM[j]を連結して入力することで、F(j、M[j])を実現すればよい。また、擬似ランダム置換Gは、通常のTweakableブロック暗号を用いてもよい。
ブロックスライス並列MAC適用部104は、各MACタグの計算をテストごとに個別に行うのではなく、途中の計算結果を共有しつつ並列に行っている。その結果、大幅且つ効率的にMACタグの計算が行われる。なぜならば、M[i]を含む2つのテストでは共にF(i、M[i])を用いるためである。
例えば、上述の[第1の例]に示す3つの部分系列に対し、ブロックスライス並列MAC適用部104によるMACタグリスト生成を考える。また、その場合のグループテスト行列Wは、上記式(1)のとおりである。なお、3つの状態変数Z[1]、Z[2]、Z[3]を用意し、初期値を0とする。この場合、以下の手続によりMACタグリストが計算できる。
始めに、式(1)のグループテスト行列Wを参照すると、当該行列Wの1列目(j=1)は全て1であるので、状態変数Z[1]〜Z[3]は以下のとおりである。
Z[1]<=F(1、M[1]);
Z[2]<=F(1、M[1]); Z[3]<=F(1、M[1]);
次に、グループテスト行列Wの2列目(j=2)では、1行目と2行目が「1」であり、3行目が「0」である。従って、1番目のテストと2番目のテスト(i=1、2)では上記状態変数Z[1]、Z[2]にF(2、M[2])を加算する。その結果、状態変数 Z[1]及びZ[2]は以下のとおりとなる。
Z[1]<=Z[1]+F(2、M[2]);
Z[2]<=Z[2]+F(2、M[2]);
なお、状態変数Z[3]は全ゼロ値を加算するため、値に変化がなく表記を省略している。
以上のような計算をj=3〜7について繰り返すと以下のようになる。
[j=3の場合]
Z[1]<=Z[1]+F(3、M[3]);
Z[3]<=Z[3]+F(3、M[3]);
[j=4の場合]
Z[1]<=Z[1]+F(4、M[4]);
[j=5の場合]
Z[2]<=Z[2]+F(5、M[5]);
Z[3]<=Z[3]+F(5、M[5]);
[j=6の場合]
Z[2]<=Z[2]+F(6、M[6]);
[j=7の場合]
Z[3]<=Z[3]+F(7、M[7]);
全てのインデックスjに関する状態変数の計算が終了すると、状態変数Z[1]〜Z[3]が初期ベクトルNと連結され、擬似ランダム置換Gに入力され、下記のMACタグリストT[1]〜T[3]が計算される。
T[1]<=G(N、Z[1]);
T[2]<=G(N、Z[2]);
T[3]<=G(N、Z[3]);
上記のMACタグリストの計算では、擬似ランダム関数Fの呼び出し回数は、アイテム数と同じ7回である(図5参照)。
次に、上記計算を通常のMAC(例えば、非特許文献1に開示されたCMAC)を用いて以下の部分系列に対する計算をする場合を考える。
S[1]=(M[1]、M[2]、M[3]、M[4]);
S[2]=(M[1]、M[2]、M[5]、M[6]);
S[3]=(M[1]、M[3]、M[5]、M[7]);
この場合、語頭が同じ部分を除けば計算を共有することができないため、全体の計算量はより大きくなる。
あるいは、参考文献4に記載のPMACを用いることで、共有可能な部分は増加するが、それでも大部分の箇所は共有が不可能である。例えば、図6に示すように、S[1]からS[3]に対して従来どおりにPMACを用いる場合(即ち、S[1]〜S[3]のいずれもが4ブロックのデータとして扱い、1から7まであるアイテムMのインデックスは無視する場合)、M[3]に対する計算結果は共有できず、擬似ランダム関数Fを8回呼び出す必要がある。対して、図5に示すように、第1の実施形態に係る方式であれば、M[3]に対する結果も共有可能となり、擬似ランダム関数Fの呼び出しは7回に留まる。図5と図6の例示では、アイテム数m=7、改ざん特定可能なアイテム数d=1の場合であり、擬似ランダム関数Fの呼び出し回数の差は僅かに1回であるが、アイテム数mや改ざん可能なアイテム数dが増えれば、上記の差は大きく広がる。例えば、m=15であれば、d=1であっても擬似ランダム関数Fの呼び出し回数の差は5回となる。
第1の実施形態におけるブロックスライス並列MAC適用部104によるMACタグの計算手続をまとめると以下のようになる。ブロックスライス並列MAC適用部104は、任意のs行m列のグループテスト行列Wに対して、擬似ランダム関数Fの呼び出し回数はm回、擬似ランダム置換Gの読み出し回数はs回となる。また、通常のMACを用いていて、仮に、計算の共有を行えず、且つ、行列が十分密であるとすれば、擬似ランダム関数Fの呼び出し回数は概算でs×m回となる。従って、第1の実施形態に係るMACタグの計算では、大幅な計算量の削減がなされていることが理解される。このように、ブロックスライス並列MAC適用部104は、各テストを個別に行うのではなく、中間変数を共有しつつ全てのテストを並列に実行する。なお、本願開示では、当該方法を「ブロックスライス並列MAC」方式と称する。
本願開示のブロックスライス並列MACは、PMAC等の並列実行可能なMACにおいて、グループテストの行ベクトルのi番目の成分が「1」である時には、アイテムそのものとインデックスiの情報を用いて生成した擬似乱数をMACの中間変数に加算し、i番目の成分が「0」である時は、アイテムの値によらず全ゼロ値を加算する、と捉えることもできる。
また、本願開示のブロックスライス並列MACは、通常のMACをそれぞれのテストで行う場合と同様に、Fが擬似ランダム関数であれば、任意のメッセージについてMACタグを攻撃者が予測することは困難である。このことは、任意の異なるアイテムインデックスの集合(ただし空集合は除く)BとB’を考えたとき、Bに含まれる全てのjについてF(j、M[j])の和を計算した値と、B’に含まれる全てのj’についてF(j’、M[j’])の和を計算した値と、が一致する確率がアイテムの値によらず圧倒的に低いことから理解される。つまり、本願開示において、i番目のMACタグはF(j、M[j])の和を計算した値を、Tweak(N、i)を用いてTweak付き擬似ランダム置換Gに適用した値であるため、出力の予測は困難である。その結果、改ざんが困難となる。
また、初期ベクトルNは、MACタグの計算のたびに更新(毎回更新)される値であるため、通常のリプレイ攻撃のみならず部分的なリプレイ攻撃(即ち、過去に計算された正規のデータとMACタグの組を観測したもとで、特定のMACタグ生成に使われるデータとタグのみ過去の値に置き換える攻撃)も、初期ベクトルNが改ざんされていないという仮定の下、通常の改ざんとして高い確率で検出が可能となる。なお、前述のように、仮に初期ベクトルNをMACタグの計算に用いない場合、攻撃者は部分的なリプレイ攻撃が可能であり、テスト結果において攻撃者が「false negative」を容易に起こせるようになる。一方、「false negative」に対応可能なテスト行列は効率が悪いことが知られており(例えば、参考文献1を参照)、「false negative」を事実上無視できることによりテスト行列の効率をあげる(即ち、所与のアイテムの最大改ざん数に対して必要なテストの数を減らす)ことが可能となる。
図3に示すMACタグリスト出力部105は、ブロックスライス並列MAC適用部104が出力するMACタグリストTを、初期ベクトルNと合わせて表示装置(液晶ディスプレイ等)や出力装置(プリンタ等)に出力する手段である。あるいは、MACタグリスト出力部105は、初期ベクトルNに加え、MACタグリストTの生成に用いた他の情報(例えば、グループテスト行列W)を他の装置に向けて出力してもよい。
次に、図7を参照しつつ、第1の実施形態に係るMACタグリスト生成装置10の動作を説明する。
ステップS101において、メッセージ入力部101は、対象となるm個のアイテムからなるメッセージMを入力する。
次に、初期ベクトル生成部102は、初期ベクトルNを生成する(ステップS102)。その後、グループテスト行列生成部103は、s行m列の2値行列であるグループテスト行列Wを生成する(ステップS103)。
ステップS104において、ブロックスライス並列MAC適用部104は、初期ベクトルNとグループテスト行列Wを参照して、擬似ランダム関数FとTweak付き擬似ランダム置換Gを用いたブロックスライス並列MACを、メッセージMへ適用しs個のMACタグからなるMACタグリストTを生成する。
ステップS105において、MACタグリスト出力部105は、ブロックスライス並列MAC適用部104から取得したMACタグリストTを出力する。
以上のように、第1の実施形態に係るMACタグリスト生成装置10は、各MACタグの計算をテストごとに個別に行うのではなく、途中の計算結果を共有しつつMACタグの計算を並列に行う。その結果、改ざんの有無だけでなく改ざんされた位置に関して情報を得られるようなメッセージ認証が効率的に構築される(第1の効果)。
ここで、データの改ざんのみでなく、部分的にタグの改ざんがあっても上記の性質(改ざんの有無だけでなくその位置に関する情報が得られる)を保持するMACタグが生成されることが望ましい。
上記事項(タグの改ざんも許容する)が望まれる理由は以下の通りである。本願開示の利用形態によっては、攻撃者からみてデータとタグの双方に同等のコストでアクセスし改ざんできると考えることが妥当であるからである。例えば、データベース上のデータのMAC計算を行う場合、タグの改ざんを許容しないモデルに従うためには、タグはデータベースのある記憶装置とは異なるアクセス制限のある記憶装置に保存されていることが必要である。このことは、例えば、物理的に異なるハードディスクを用意したり、タグの保存場所へのアクセス管理などの追加コストが発生したりする。また、データ通信に適用する場合、タグの改ざんを許容しないモデルに従う場合、データとタグとを同一の通信チャンネルで送ることは現実的ではない。従って、タグのみ物理的に異なるチャネルで送信する、あるいは、データはインターネット経由、タグは携帯電話ネットワークにより送信するといった手段を用いる必要が生じる。つまり、タグの改ざんも許容する方式であれば、データベース上のデータの保護に用いる場合、データとMACタグを同じストレージ、同じレベルのアクセス制限の上で保管することが可能となる。また、タグの改ざんも許容する方式であれば、データ通信の保護に用いる場合、データとMACタグとを同じチャネルで送信することが可能となる。
上記事項に関し、本願開示のブロックスライス並列MACは、「d-disjunct」且つ「e-error correcting」であるグループテスト行列Wを用いて生成されるため、データの改ざんのみでなく、部分的にタグの改ざんがあってもその検出と位置の特定が可能となる(第2の効果)。
さらにまた、データとタグの一部あるいは全部を過去の値に置き換えるリプレイ攻撃に対する耐性を有するMACタグが生成されることが望ましい。
上記事項(リプレイ攻撃に対する耐性)が望まれる理由は以下の通りである。データとタグが逐次更新されている環境で、攻撃者がこれを観測している場合には上述のリプレイ、あるいは部分的なリプレイ攻撃の危険性があり、なおかつ、テストにおける「false negative」を引き起こすためである。「False negative」は、いわば改ざん位置の見逃しに相当するため重大である。基本的なMACタグの計算は基本的には状態変数(カウンターなど)を含まないものであり、この場合、原理的にリプレイ攻撃を防ぐことは困難である。
上記事項に関し、本願開示のブロックスライス並列MACは、MACタグの計算のたびに初期ベクトルNが更新されて生成されるため、初期ベクトルNが改ざんされていないという仮定の下、通常の改ざんとして高い確率で検出が可能となる(第3の効果)。
第1の実施形態に係るMACタグリスト生成装置10は、改ざんの有無だけでなく改ざんされた位置に関して情報が得られるメッセージ認証が効率よく構成可能である。また、そのように構築されたメッセージ認証(ブロックスライス並列MAC)は、タグの一部が改ざんされていた場合でも改ざんの検出と位置特定が可能であると共に、部分的なリプレイ攻撃を検知可能であるという性質を有する。
以上のように、第1の実施形態では、並列実行可能なメッセージ認証コード(MAC)を対象のメッセージ(即ち、アイテムのリスト)へ適用する際、グループテストの行ベクトルのi列目の成分が「1」のときには、アイテムそのものとインデックスiの情報を擬似ランダム関数へ入力することで生成する擬似乱数をMACの中間変数へ加算し、「0」のときにはアイテムの値によらず全ゼロ値を加算する。さらに、並列実行可能なMACをグループテスト行列と単純に組み合わせる、即ち、j番目の行ベクトルで「1」が設定される列インデックスの示すアイテムをすべて連結した系列をj番目のテストの入力とする場合、i列目の成分が「1」である2つのテストの間で、i番目のアイテムに対する計算結果を共有できるとは限らず、それぞれ別の計算が必要となる場合がある。しかし、本願開示の方法により、グループテスト行列の内容によらず、i列目の成分が「1」である2つのテストの間では、常にi番目のアイテムに対する計算結果を共有できるため、計算量の大幅な効率化が実現できる。さらにまた、テスト行列はタグの改ざんがないというモデルにおいては disjunt行列を用いればよいが、タグの改ざんも許容するモデルのほうが利用シーン(適用場面)は広がる。このとき、タグの改ざんはテストにおいて「false positive」となるため、グループテストにおいて一定数の「false positive」を許容する行列を用いる。さらにまた、初期ベクトルをタグ計算に含め、また初期ベクトルの改ざんはないものとすることで、攻撃者によるリプレイ、あるいは部分的なリプレイを通常の改ざんと同様に検出可能とし、結果として(必要なテスト回数=タグの数)の増加を招く「false negative」が起こる確率を十分小さくし、必要なタグの数を小さく抑えることができる。
[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
図8は、第2の実施形態に係るMACタグリスト検証装置20の処理構成の一例を示すブロック図である。なお、MACタグリスト検証装置20は、第1の実施形態に係るMACタグリスト生成装置10と同様のハードウェア構成により実現可能であるため、MACタグリスト検証装置20の図2に相当する説明は省略する。
図8を参照すると、MACタグリスト検証装置20は、検証メッセージ入力部201と、ブロックスライス並列MAC適用部202と、MACタグリスト検証及び改ざん位置特定部203と、検証結果出力部204と、を含んで構成される。
検証メッセージ入力部201は、検証の対象となるメッセージMと、第1の実施形態に係るMACタグリスト生成装置10が出力する、MACタグリストT、初期ベクトルN及びs行m列の2値グループテスト行列Wと、を入力する手段である。検証メッセージ入力部201は、例えば、キーボードなどの文字入力装置により実現される。なお、第1の実施形態と同様に、メッセージMはm個の個別のアイテム、M[1]、・・・、M[m]により構成されているものとする。
ブロックスライス並列MAC適用部202は、第1の実施形態に係るブロックスライス並列MAC適用部104と同様の機能を有する。そのため、ブロックスライス並列MAC適用部202に関する詳細な説明を省略する。ブロックスライス並列MAC適用部202が出力するMACタグリストをT’=(T’[1]、・・・、T’[s])と記載し、適宜、チェック用MACタグリストと表記する。
MACタグリスト検証及び改ざん位置特定部203は、ブロックスライス並列MAC適用部202の出力するチェック用MACタグリストT’と、検証メッセージ入力部201の出力するMACタグリストTと、を比較し、メッセージMに対する改ざんの有無を検証する手段、且つ、改ざんがある場合に、そのアイテムを特定し対応するインデックスを出力する手段である。
MACタグリスト検証及び改ざん位置特定部203は、チェック用MACタグリストT’=(T’[1]、・・・、T’[s])とMACタグリストT=(T[1]、・・・、T[s])とのエントリごとの差分を計算し、その差がゼロの場合を「0」、非ゼロの場合を「1」とした2値ベクトルB=(B[1]、・・・、B[s])を作成する。さらに、MACタグリスト検証及び改ざん位置特定部203は、2値ベクトルBに対し所定の手続き(復号;decode)を施し、当該手続に基づき結果を出力する。
具体的には、MACタグリスト検証及び改ざん位置特定部203は、2値ベクトルBのエントリが全て「0」であった場合には、改ざんが存在しないと判定する。一方、MACタグリスト検証及び改ざん位置特定部203は、上記以外の結果の場合には、メッセージMの全体において少なくとも1つのアイテムの改ざんが存在すると判定する。
上記のアイテム改ざんが存在する場合、MACタグリスト検証及び改ざん位置特定部203は、さらに、B[i]=0となる全てのi=1、・・・、sについて、検証メッセージ入力部201が出力するグループテスト行列Wのi行目ベクトルV=(V[1]、・・・、V[m])を取り出す。その上で、MACタグリスト検証及び改ざん位置特定部203は、V[j]=1となる全てのインデックスjについて、M[j]には改ざんなしと判定する(即ち、B[i]=0となったi番目のテストに含まれたアイテムは全て改ざんなしと判定される)。MACタグリスト検証及び改ざん位置特定部203は、以上の処理を行い、改ざんなしとは判定されなかったアイテムを抽出し、当該アイテムの全てを改ざんありとして出力する。
なお、上記の手続は、「naive decoding」と呼ばれており、「false positive」と「false negative」の存在を考慮した通常の手続は、例えば、下記の参考文献5の11頁に記載されている。
[参考文献5]"Error-correcting group testing matrices", [2015年9月18日検索], <URL=https://www.cse.buffalo.edu/~hungngo/classes/2011/709/lectures/12.pdf>
第2の実施形態では、参考文献1や参考文献2、参考文献5に記載の方法により、グループテスト行列Wが上記の手続きにより、アイテムの改ざんが高々d個、タグの改ざんが高々s個であり、初期ベクトルNの改ざんがない場合に、すべての改ざんされたアイテムを特定することが可能である。
また、非特許文献4に記載のように、改ざんなしと判定されたアイテムが実際は改ざんされていたということは起きないため、「d-disjunctive」であるか否かに関わらず、一般的に、改ざんの可能性がある範囲を狭めることができる。最も広い定義としては参考文献5に記載の(d,L,e_0,e_1)-list-disjunct行列においてe_0=s, e_1=0とすることで、アイテムの改ざんが高々d個、タグの改ざんが高々s個のときに、「naive decoding」により、高々L個の冗長な判定を許容する(即ち、改ざんがあるとして出力したアイテムのうち高々L個は、実際には改ざんされていない可能性がある)もとで、改ざんされたd個のアイテムを特定することが可能となる。
検証結果出力部204は、MACタグリスト検証及び改ざん位置特定部203の出力する、改ざんの有無と、改ざんされたアイテムを特定する情報とを表示装置や出力装置に出力する手段である。
次に、図9を参照しつつ、第2の実施形態に係るMACタグリスト検証装置20の動作を説明する。
ステップS201において、検証メッセージ入力部201は、対象となるm個のアイテムからなるメッセージMと、MACタグリストTと、s行m列のグループテスト行列Wと、初期ベクトルNと、を入力する。
ステップS202において、ブロックスライス並列MAC適用部202が、初期ベクトルNとグループテスト行列Wを参照して、擬似ランダム関数FとTweak付き擬似ランダム置換Gを用いたブロックスライス並列MACをメッセージMに適用し、s個のMACタグからなるチェック用MACタグリストT’を生成する。
ステップS203において、MACタグリスト検証及び改ざん位置特定部203が、チェック用MACタグリストT’とMACタグリストTを比較し、改ざんの有無、及び、メッセージM中の改ざんされたアイテムのインデックスを検証結果として生成する。
ステップS204において、検証結果出力部204は、前ステップにて生成された検証結果を出力する。
以上のように、第2の実施形態に係るMACタグリスト検証装置20は、第1の実施形態に係るMACタグリスト生成装置10が生成するMACタグリストを用いて、メッセージMにおける改ざんの有無及び改ざん位置を特定することができる。
[第3の実施形態]
続いて、第3の実施形態について図面を参照して詳細に説明する。
図10は、第3の実施形態に係るMACタグリスト更新装置30の処理構成の一例を示すブロック図である。なお、MACタグリスト更新装置30は、第1の実施形態に係るMACタグリスト生成装置10と同様のハードウェア構成により実現可能であるため、MACタグリスト更新装置30の図2に相当する説明は省略する。
図10を参照すると、MACタグリスト更新装置30は、メッセージ入力部301と、ブロックスライス並列MAC更新部302と、MACタグリスト出力部303と、を含んで構成される。
メッセージ入力部301は、対象となるメッセージMと、第1の実施形態に係るMACタグリスト生成装置10の出力するMACタグリストT、s行m列の2値グループテスト行列Wと、更新するアイテムのインデックスr(rは正の整数、以下同じ)と、更新後のアイテムの値M’[r]と、更新前の初期ベクトルNと、更新後の初期ベクトルN’と、を入力する手段である。メッセージ入力部301は、例えば、キーボード等の文字入力装置により実現される。なお、第1の実施形態と同様に、メッセージMはm個の個別のアイテム、M[1]、・・・、M[m]により構成されているものとし、更新するアイテムのインデックスrの値は1以上m以下とする。
ブロックスライス並列MAC更新部302は、第1の実施形態に係るMACタグリスト生成装置10の出力するグループテスト行列Wから、r列目が「1」である行ベクトルのインデックスをすべて取り出し、集合B={r[1]、・・・、r[h]}とする。なお、インデックスが集合Bに含まれるテストについては、M[r]を使ってMACタグ計算を行っており、M[r]をM’[r]へ更新した状態でMACタグを計算する必要がある。さらに、全てのテストでタグ計算に用いる初期ベクトルをNから更新後の初期ベクトルN’へ更新する必要がある。
上記の処理は、参考文献4のPMACにおけるタグ更新と同様な手続きで実現可能である。具体的には、以下の手続きが実行される。その際、第1及び第2の実施形態にて記載の可変長入力固定長出力の擬似ランダム関数F、固定長入出力のTweak付き擬似ランダム置換Gが用いられる。
ブロックスライス並列MAC更新部302は、MACタグリストをT=(T[1]、・・・、T[s])とし、i番目のテストについて、インデックスiが集合Bに含まれる場合は、擬似ランダム置換Gの逆関数G−1を、tweakを(N、i)としてT[i]に適用する。さらに、ブロックスライス並列MAC更新部302は、得られた中間変数Z[i]= G−1((N、i)、T[i])にF(r,M[r])とF(r,M’[r])を加算し、新たな中間変数Z’[i]を得る。上記の計算により、過去の計算でZ[i]に含まれていたF(r、M[r])がキャンセルされ、代わりにF(r、M’[r])が含まれることになるため、正しく中間変数の更新がなされたことになる。一方、インデックスiが集合Bに含まれない場合には、Z[i]が求められることは同じであるが、新たな中間変数Z’[i]は変更しない(Z’[i]=Z[i])。
ブロックスライス並列MAC更新部302は、以上の処理を全てのインデックスi=1、・・・、sについて実行した後、全てのiについてZ’[i]を、tweak(N’、i)を用いた擬似ランダム置換Gで暗号化し、新たなタグ T''[i]=G((N’、i),Z’[i])を得る。
集合Bの大きさhについて、上記の手続は、2×h回、擬似ランダム関数Fを呼び出し、s回擬似ランダム置換Gとその逆関数G−1を呼び出せば終了するため、全体を再計算するよりも効率的である。
MACタグリスト出力部303は、ブロックスライス並列MAC更新部302が出力する、更新されたMACタグリストをコンピュータディスプレイやプリンターなどへ出力する手段である。
次に、図11を参照しつつ、第3の実施形態に係るMACタグリスト更新装置30の動作を説明する。
ステップS301において、メッセージ入力部301が、対象となるm個のアイテムからなるメッセージMと、MACタグリストTと、s行m列のグループテスト行列Wと、更新するアイテムのインデックスrと、更新後のアイテムの値M’[r]と、更新前の初期ベクトルNと、更新後の初期ベクトルN’と、を入力する。
ステップS302において、ブロックスライス並列MAC更新部302が、グループテスト行列Wと更新するアイテムのインデックスrを参照して、r列目が「1」である行ベクトルのインデックスをすべて取り出し、集合B={i[1]、・・・、i[h]}に設定する。さらに、ブロックスライス並列MAC更新部302は、インデックスが集合Bに含まれるすべてのテストについて、更新前のアイテムM[r]と更新後のアイテムM’[r]を用いてタグを更新する。
ステップS303において、MACタグリスト出力部303が、更新されたMACタグリストT’’を出力する。
以上のように、第3の実施形態に係るMACタグリスト更新装置30は、第1の実施形態に係るMACタグリスト生成装置10が生成するMACタグリストを用いて、メッセージMが更新されたことに応じて、MACタグリスト生成装置10により生成されたMACタグリストを更新することができる。
上記の説明により、本発明の産業上の利用可能性は明らかであるが、本発明は、無線もしくは有線のデータ通信、あるいは、データベース、ファイルシステム、ウィルススキャン、バージョン管理システムにおける改ざんの検知と改ざん位置特定といった用途に好適に適用可能である。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
上述の第1の視点に係るタグリスト生成装置のとおりである。
[付記2]
前記タグリスト生成部は、
前記グループテスト行列のi行目(iは正の整数)にて、テストが必要と設定された列のインデックスj(jは正の整数)について、
j番目の前記アイテムM[j]とインデックスjを連結して前記擬似ランダム関数に入力することと、
前記擬似ランダム関数の出力の合計を状態変数Z[i]として生成することと、
少なくとも前記状態変数Z[i]を前記擬似ランダム関数に入力し、前記擬似ランダム関数の出力をタグT[i]に設定することと、
を前記グループテスト行列のインデックスiについて繰り返し、前記タグリストを生成する、付記1のタグリスト生成装置。
[付記3]
初期ベクトルを生成する初期ベクトル生成部をさらに備え、
前記タグリスト生成部は、前記初期ベクトルと前記状態変数Z[i]を秘密ではないパラメータであるTweakに設定し、前記擬似ランダム置換に入力する、付記2のタグリスト生成装置。
[付記4]
前記グループテスト行列生成部は、
前記m個のアイテムM[1]・・・M[m]におけるd個(dは正の整数)の改ざんが特定可能であり、且つ、前記生成されたs個のタグのうち、e個(eは正の整数)までのタグの改ざんを特定可能な行列を、前記グループテスト行列として生成する、付記1乃至3のいずれか一に記載のタグリスト生成装置。
[付記5]
前記タグリスト生成部は、
前記擬似ランダム関数の出力長と前記擬似ランダム置換の入力長が異なる場合には、前記擬似ランダム関数の出力を拡張する又は短縮することで、前記擬似ランダム関数の出力長と前記擬似ランダム置換の入力長を一致させる、付記1乃至4のいずれか一に記載のタグリスト生成装置。
[付記6]
少なくとも前記タグリストを外部装置に出力する、タグリスト出力部をさらに備える、付記1乃至5のいずれか一に記載のタグリスト生成装置。
[付記7]
付記1乃至6のいずれか一に記載のタグリスト生成装置が生成するタグリストを用いて、前記メッセージにおける改ざんを検証する、タグリスト検証装置。
[付記8]
付記1乃至6のいずれか一に記載のタグリスト生成装置が生成するタグリストを用いて、前記メッセージの更新に応じて、前記生成されたタグリストを更新する、タグリスト更新装置。
[付記9]
上述の第2の視点に係るタグリスト生成方法のとおりである。
[付記10]
上述の第3の視点に係るプログラムのとおりである。
なお、付記9の形態及び付記10の形態は、付記1の形態と同様に、付記2の形態〜付記8の形態に展開することが可能である。
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10 MACタグリスト生成装置
11 CPU
12 メモリ
13 入出力インターフェイス
14 NIC
20 MACタグリスト検証装置
30 MACタグリスト更新装置
101、301、401 メッセージ入力部
102 初期ベクトル生成部
103、402 グループテスト行列生成部
104、202 ブロックスライス並列MAC適用部
105、303 MACタグリスト出力部
201 検証メッセージ入力部
203 MACタグリスト検証及び改ざん位置特定部
204 検証結果出力部
302 ブロックスライス並列MAC更新部
400 タグリスト生成装置
403 タグリスト生成部

Claims (10)

  1. m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力するメッセージ入力部と、
    生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、グループテスト行列生成部と、
    前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、タグリスト生成部と、
    を備え、
    前記タグリスト生成部は、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、タグリスト生成装置。
  2. 前記タグリスト生成部は、
    前記グループテスト行列のi行目(iは正の整数)にて、テストが必要と設定された列のインデックスj(jは正の整数)について、
    j番目の前記アイテムM[j]とインデックスjを連結して前記擬似ランダム関数に入力することと、
    前記擬似ランダム関数の出力の合計を状態変数Z[i]として生成することと、
    少なくとも前記状態変数Z[i]を前記擬似ランダム関数に入力し、前記擬似ランダム関数の出力をタグT[i]に設定することと、
    を前記グループテスト行列のインデックスiについて繰り返し、前記タグリストを生成する、請求項1のタグリスト生成装置。
  3. 初期ベクトルを生成する初期ベクトル生成部をさらに備え、
    前記タグリスト生成部は、前記初期ベクトルと前記状態変数Z[i]を秘密ではないパラメータであるTweakに設定し、前記擬似ランダム置換に入力する、請求項2のタグリスト生成装置。
  4. 前記グループテスト行列生成部は、
    前記m個のアイテムM[1]・・・M[m]におけるd個(dは正の整数)の改ざんが特定可能であり、且つ、前記生成されたs個のタグのうち、e個(eは正の整数)までのタグの改ざんを特定可能な行列を、前記グループテスト行列として生成する、請求項1乃至3のいずれか一項に記載のタグリスト生成装置。
  5. 前記タグリスト生成部は、
    前記擬似ランダム関数の出力長と前記擬似ランダム置換の入力長が異なる場合には、前記擬似ランダム関数の出力を拡張する又は短縮することで、前記擬似ランダム関数の出力長と前記擬似ランダム置換の入力長を一致させる、請求項1乃至4のいずれか一項に記載のタグリスト生成装置。
  6. 少なくとも前記タグリストを外部装置に出力する、タグリスト出力部をさらに備える、請求項1乃至5のいずれか一項に記載のタグリスト生成装置。
  7. 請求項1乃至6のいずれか一項に記載のタグリスト生成装置が生成するタグリストを用いて、前記メッセージにおける改ざんを検証する、タグリスト検証装置。
  8. 請求項1乃至6のいずれか一項に記載のタグリスト生成装置が生成するタグリストを用いて、前記メッセージの更新に応じて、前記生成されたタグリストを更新する、タグリスト更新装置。
  9. m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力するステップと、
    生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、ステップと、
    前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、ステップと、
    を含み、
    前記タグリストを生成するステップは、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、タグリスト生成方法。
  10. タグリスト生成装置に搭載されたコンピュータに実行させるプログラムであって、
    m個(mは正の整数)のアイテムM[1]・・・[m]から構成されるメッセージを入力する処理と、
    生成するメッセージ認証コードのタグ数s(sは正の整数)について、組み合わせグループテストを定めるs行m列のグループテスト行列を生成する、処理と、
    前記グループテスト行列と、可変長入力固定長出力の擬似ランダム関数と、固定長入出力のTweak付き擬似ランダム置換と、を用いて、前記メッセージに関するs個のタグからなるタグリストを生成する、処理と、
    を実行し、
    前記タグリストを生成する処理は、前記メッセージをなすm個のアイテムM[1]・・・M[m]それぞれに関するタグの計算を、途中の計算結果を共有しつつ並行に行う、プログラム。
JP2015200741A 2015-10-09 2015-10-09 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム Pending JP2017073716A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015200741A JP2017073716A (ja) 2015-10-09 2015-10-09 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015200741A JP2017073716A (ja) 2015-10-09 2015-10-09 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2017073716A true JP2017073716A (ja) 2017-04-13

Family

ID=58537576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015200741A Pending JP2017073716A (ja) 2015-10-09 2015-10-09 タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2017073716A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018193507A1 (ja) * 2017-04-17 2018-10-25 日本電気株式会社 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
WO2020065820A1 (ja) * 2018-09-27 2020-04-02 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
JPWO2020213114A1 (ja) * 2019-04-18 2020-10-22

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06315027A (ja) * 1993-04-23 1994-11-08 Internatl Business Mach Corp <Ibm> データ通信環境におけるデータ認証のための方法および装置
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
WO2010024247A1 (ja) * 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
WO2013065241A1 (ja) * 2011-10-31 2013-05-10 日本電気株式会社 インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06315027A (ja) * 1993-04-23 1994-11-08 Internatl Business Mach Corp <Ibm> データ通信環境におけるデータ認証のための方法および装置
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
WO2010024247A1 (ja) * 2008-08-25 2010-03-04 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
WO2013065241A1 (ja) * 2011-10-31 2013-05-10 日本電気株式会社 インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置
WO2015015702A1 (ja) * 2013-08-02 2015-02-05 日本電気株式会社 認証暗号装置、認証暗号方法および認証暗号用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MINEMATSU, K.: "Efficient Message Authentication Codes with Combinatorial Group Testing", LECTURE NOTES IN COMPUTER SCIENCE, vol. 9326, JPN6019019116, September 2015 (2015-09-01), pages 185 - 202, XP055545414, ISSN: 0004179013, DOI: 10.1007/978-3-319-24174-6_10 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018193507A1 (ja) * 2017-04-17 2018-10-25 日本電気株式会社 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
JPWO2018193507A1 (ja) * 2017-04-17 2020-02-27 日本電気株式会社 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
US11251965B2 (en) 2017-04-17 2022-02-15 Nec Corporation Authentication tag generation apparatus, authentication tag verification apparatus, method and program
WO2020065820A1 (ja) * 2018-09-27 2020-04-02 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
JPWO2020065820A1 (ja) * 2018-09-27 2021-08-30 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
JP7107381B2 (ja) 2018-09-27 2022-07-27 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
US11750398B2 (en) 2018-09-27 2023-09-05 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, aggregate MAC verification system and method
JPWO2020213114A1 (ja) * 2019-04-18 2020-10-22
WO2020213114A1 (ja) * 2019-04-18 2020-10-22 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
JP7347501B2 (ja) 2019-04-18 2023-09-20 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
US11824993B2 (en) 2019-04-18 2023-11-21 Nec Corporation MAC tag list generation apparatus, MAC tag list verification apparatus, method, and program

Similar Documents

Publication Publication Date Title
Dang Recommendation for applications using approved hash algorithms
Barker et al. Recommendation for random bit generator (RBG) constructions
US10623176B2 (en) Authentication encryption method, authentication decryption method, and information-processing device
US20160006570A1 (en) Generating a key derived from a cryptographic key using a physically unclonable function
US20130195266A1 (en) Apparatus and Method for Producing a Message Authentication Code
JP6477461B2 (ja) 順序保存暗号化システム、装置、方法およびプログラム
CN103780379A (zh) 密码加密方法和系统以及密码校验方法和系统
JP7323196B2 (ja) 暗号化装置、暗号化方法、プログラム、復号装置、復号方法
JP7347501B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
JP6743702B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、macタグリスト生成方法、macタグリスト検証方法およびプログラム
Tchórzewski et al. Theoretical and experimental analysis of cryptographic hash functions
KR101731645B1 (ko) 오류 주입 공격들을 대비하여 보호되는 데이터 처리 방법 및 관련 장치
US9985779B2 (en) Encrypted text matching system, method, and computer readable medium
JP2017073716A (ja) タグリスト生成装置、タグリスト検証装置、タグリスト更新装置、タグリスト生成方法及びプログラム
Hamamreh et al. Hash algorithm for data integrity based on matrix combination
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
JP6844696B2 (ja) 認証タグ生成装置、認証タグ検証装置、方法及びプログラム
JP5489115B2 (ja) 原本性保証装置、原本性保証プログラム、及びこのプログラムを記録する記録媒体
JP7107381B2 (ja) Macタグリスト生成装置、macタグリスト検証装置、集約mac検証システム及び方法
Di Crescenzo et al. Cryptographic password obfuscation
JP2017005409A (ja) データ認証システム、データ認証装置、方法およびプログラム
RP Keyed-CAHASH: a new fast keyed hash function based on cellular automata for authentication
Park et al. A study on the processing and reinforcement of message digest through two-dimensional array masking
Dubrova Energy-efficient cryptographic primitives
Ciocan et al. A Modified Argon2i Using a Tweaked Variant of Blake3

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190729

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191224