JP6305643B2 - メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム - Google Patents

メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム Download PDF

Info

Publication number
JP6305643B2
JP6305643B2 JP2017518569A JP2017518569A JP6305643B2 JP 6305643 B2 JP6305643 B2 JP 6305643B2 JP 2017518569 A JP2017518569 A JP 2017518569A JP 2017518569 A JP2017518569 A JP 2017518569A JP 6305643 B2 JP6305643 B2 JP 6305643B2
Authority
JP
Japan
Prior art keywords
value
bit
message
authenticator
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017518569A
Other languages
English (en)
Other versions
JPWO2017056151A1 (ja
Inventor
祐介 内藤
祐介 内藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2017056151A1 publication Critical patent/JPWO2017056151A1/ja
Application granted granted Critical
Publication of JP6305643B2 publication Critical patent/JP6305643B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

この発明は、Tweakableブロック暗号を用いて安全かつ効率的にメッセージの認証子を生成する技術に関する。
メッセージ認証アルゴリズムを用いると、2者間でメッセージをやり取りする場合に、送信したメッセージが改ざんされているか否かを受信者が確認できる。
メッセージ認証アルゴリズムを用いて改ざん検出する場合、2者間で予め鍵Kを共有しておく。メッセージの送信者は、メッセージMと鍵KとからメッセージMの認証子Tを生成し、メッセージMと認証子Tとを受信者に送信する。メッセージの受信者は受け取ったメッセージMと鍵Kとから認証子T’を生成する。受信者は、受信した認証子Tと生成した認証子T’とが一致すれば改ざんされていないと判断し、一致しなければ改ざんされていると判断する。
メッセージ認証アルゴリズムの安全性は、ランダム関数との識別不可能性で示される。
メッセージ認証アルゴリズムFが識別不可能性を満たすとは、現実世界または理想世界のどちらか一方と対話する識別者Dを考え、識別者Dがどちらと対話しているかを当てることができないことを意味する。
現実世界では、鍵Kがランダムに選ばれ、識別者DはメッセージMを選んで、F(K,M)のメッセージ認証子を得ることができる。理想世界では、ランダム関数Rに対して、識別者DはメッセージMを選んで、R(M)の出力値を得ることができる。ここで、識別者DはメッセージMを何度も選択することができ、選択したメッセージMに対応するF(K,M)又はR(M)の出力値を得ることができる。
より厳密には、1ビットの値を出力する識別者Dを考える。識別者Dが現実世界で1を出力する確率と、識別者Dが理想世界で1を出力する確率との差によってメッセージ認証アルゴリズムFの識別不可能性が評価される。
識別者Dは、現実世界ではメッセージ認証アルゴリズムFの出力を複数得ることができ、理想世界ではランダム関数Rの出力を複数得ることができる。このとき、いかなる識別者Dに対しても、上述した確率の差がp以下となり、かつ、pが無視できる小さい値の場合、メッセージ認証アルゴリズムFが識別不可能性を満たす。このpは識別確率と呼ばれる。
Tweakableブロック暗号Eは、kビットの鍵Kと、tビットのtweak値twと、nビットの平文mとを入力として、nビットの暗号文cを出力する。つまり、c=E(K,tw,m)である。Tweakableブロック暗号Eは、鍵Kとtweak値twとを固定すると、入出力長がnビットの置換関数となる。
非特許文献1〜4には、Tweakableブロック暗号について記載されている。
Tweakableブロック暗号ベースのメッセージ認証アルゴリズムがある。Tweakableブロック暗号ベースのメッセージ認証アルゴリズムでは、メッセージMがnビット毎のメッセージブロックに分割されて、分割されたメッセージブロック毎にTweakableブロック暗号の計算が施される。
Tweakableブロック暗号ベースのメッセージ認証アルゴリズムの効率性には、以下に説明する呼び出し回数と、並列性と、鍵サイズとが影響する。
呼び出し回数:nビットのメッセージブロックについて計算するために何回Tweakableブロック暗号が呼び出されるかによって効率性が変わる。nビットのメッセージブロックに対して、Tweakableブロック暗号をx回呼び出す場合、1/xがレートと呼ばれる。このレートが1に近いほどTweakableブロック暗号の呼び出し回数が少なく、効率がよい。
並列性:アルゴリズムが並列処理可能な場合、ハードウェア又はマルチコアでの演算を並列に行うことで計算時間を短くすることができ、効率がよい。
鍵サイズ:メッセージ認証アルゴリズムの鍵サイズは、内部のTweakableブロック暗号の鍵をいくつ用いるかによって変わる。最も鍵サイズが小さいのは、Tweakableブロック暗号の鍵Kが1つだけの場合である。つまり、kビットの鍵Kを1つだけ用いて処理を行う場合である。
Tweakableブロック暗号ベースのメッセージ認証アルゴリズムの識別確率を評価する場合には、鍵Kを固定したTweakableブロック暗号E(K,・,・)がTweakableランダム置換Pであると仮定される。
Tweakableランダム置換Pは、tビットのtweak値とnビットの平文mとを入力として、nビットの暗号文cを出力する関数の集合からランダムに選ばれた関数である。つまり、c=P(tw,m)である。Tweakableランダム置換Pは、tweak値を固定すると、入出力長がnビットのランダム置換となる性質を持つ。また、Tweakableランダム置換Pは、tweak値twをある値tw1で固定したTweakableランダム置換P(tw1,・)と、tweak値twをtw1とは異なる値tw2で固定したTweakableランダム置換P(tw2,・)とが独立のランダム置換となる性質を持つ。
識別確率pは、Tweakableブロック暗号Eの暗号文cのサイズnビットと、識別者Dが入手できるメッセージ認証アルゴリズムの出力の個数qと、メッセージ認証アルゴリズムへの入力メッセージの最大の長さをnで割った値bmaxとから求められる。ここで、入力メッセージの最大の長さをlmaxビットとした場合、bmax=lmax/nとなる。メッセージ認証アルゴリズムの安全性は、p=1となるqの値q’で評価され、q’が大きいほど安全なアルゴリズムとなる。
非特許文献5には、鍵サイズがkビット、並列処理可能、レート1であるtweakableブロック暗号ベースのメッセージ認証アルゴリズムが記載されている。
非特許文献5で、鍵Kを固定したtweakableブロック暗号をtweakableランダム置換であると仮定した場合、p=O((bmax×q)/2)となることが示されている。ここで、「O」はランダウの漸近記法である。つまり、q’=O(2n/2/bmax)となる。
特許文献1,2には、非特許文献5に記載されたメッセージ認証アルゴリズムの安全性を改良したtweakableブロック暗号ベースのメッセージ認証アルゴリズムが記載されている。特許文献1,2に記載されたメッセージ認証アルゴリズムは、kビットの鍵を3つ用いるため鍵サイズが3kビット、並列処理可能、レート1である。
特許文献1,2に記載されたメッセージ認証アルゴリズムは、鍵Kを固定したtweakableブロック暗号をtweakableランダム置換であると仮定した場合、p=O((bmax×q)/22n)となることが示されている。つまり、q’=O(2/bmax)となる。
なお、特許文献1,2に記載されたメッセージ認証アルゴリズムは、内部でユニバーサルハッシュ関数を使っており、非特許文献5に記載されたメッセージ認証アルゴリズムに比べて処理速度が遅い。
特願2010−526597号公報 特願2012−501785号公報
Deoxys. Jeremy Jean, Ivica Nikolic, Thomas Peyrin, http://competitions.cr.yp.to/round1/deoxysv1.pdf Joltik, Jeremy Jean, Ivica Nikolic, Thomas Peyrin, http://competitions.cr.yp.to/round1/joltikv1.pdf KIASU, Jeremy Jean, Ivica Nikolic, Thomas Peyrin, http://competitions.cr.yp.to/round1/kiasuv1.pdf SCREAM, Vincent Grosso, Gaetan Leurent, Francois−Xavier Standaert, Kerem Varici, Francois Durvaux, Lubos Gaspar, Stephanie Kerckhof, http://competitions.cr.yp.to/round1/screamv1.pdf Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. p16−31.
非特許文献5及び特許文献1,2に記載されたメッセージ認証アルゴリズムよりも、安全性を高めつつ、効率を劣化させることのないtweakableブロック暗号ベースのメッセージ認証アルゴリズムを実現可能とすることを目的とする。
この発明に係るメッセージ認証子生成装置は、
i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m[i]とkビットの鍵Kとtビットの値tw[i]とを入力として、ブロック暗号により、nビットの値c[i]を計算するランダム化部と、
i=1,...,bの各整数iについての前記値c[i]を入力として、nビットの値w[1],w[2]を計算する圧縮部と、
前記値w[2]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[1]を計算し、前記値w[1]と前記鍵Kと前記値tw’[1]とを入力として、ブロック暗号により、nビットの値T[1]を計算するとともに、前記値w[1]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[2]を計算し、前記値w[2]と前記鍵Kと前記値tw’[2]とを入力として、ブロック暗号により、nビットの値T[2]を計算し、前記値T[1]及び前記値T[2]から前記メッセージMの認証子Tを計算する認証子生成部と
を備える。
この発明では、非特許文献5及び特許文献1,2に記載されたメッセージ認証アルゴリズムよりも安全性を高めつつ、同等の効率としたメッセージ認証アルゴリズムを実現可能である。
実施の形態1に係るメッセージ認証子生成装置10の構成図。 実施の形態1に係るメッセージ認証子生成装置10の動作を示すフローチャート。 実施の形態1に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。 各機能をソフトウェアで実現した場合のメッセージ認証子生成装置10の構成図。 実施の形態2に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。 実施の形態3に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図。
実施の形態1.
***構成の説明***
図1は、実施の形態1に係るメッセージ認証子生成装置10の構成図である。
メッセージ認証子生成装置10は、処理回路11を備える。処理回路11は、パディング部110と、分割部120と、ランダム化部130と、圧縮部140と、認証子生成部150と、制御部160との各機能を実現する専用の電子回路である。
処理回路11は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field−Programmable Gate Arrayの略である。
各機能を1つの処理回路11で実現してもよいし、各機能を複数の処理回路11に分散させて実現してもよい。
処理回路11によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、処理回路11内のレジスタのような記憶領域に記憶される。
***動作の説明***
図2は、実施の形態1に係るメッセージ認証子生成装置10の動作を示すフローチャートである。
図3は、実施の形態1に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図3において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
実施の形態1に係るメッセージ認証子生成装置10の動作は、実施の形態1に係るメッセージ認証子生成方法に相当する。また、実施の形態1に係るメッセージ認証子生成装置10の動作は、実施の形態1に係るメッセージ認証子生成プログラムの処理に相当する。
ステップS101のパディング処理では、パディング部110は、任意長のメッセージMを入力として、単射関数padにより、nビットのb倍のビット数の値M’を生成する。bは、1以上の整数である。
ステップS102の分割処理では、分割部120は、ステップS101で生成された値M’を入力として、関数divにより、値M’を先頭からnビット毎に分割して、i=1,...,bの各整数iについての値m[i]を生成する。つまり、M’=m[1]||m[2]||...||m[b]である。||は、ビット列の結合を意味する。
ステップS103の変数設定処理では、制御部160は、変数iに初期値として1を設定する。
ステップS104の変数判定処理では、制御部160は、変数iがb以下であるか否かを判定する。変数iがb以下である場合(ステップS104でYES)、制御部160は処理をステップS105に進める。一方、変数iがbより大きい場合(ステップS104でNO)、制御部160は処理をステップS107に進める。
ステップS105のランダム化処理では、ランダム化部130は、変数iについて、ステップS102で生成されたnビットの値m[i]と、tビットのtweak値tw[i]と、kビットの鍵Kとを入力として、tweakableブロック暗号Eにより、乱数性を有するnビットの値c[i]を計算する。ここで、i=1,...,bの各整数についての値tw[i]は、互いに異なる値とする。
tweakableブロック暗号Eは、kビットの鍵Kとtビットのtweak値twとnビットの平文mとを入力として、nビットの暗号文cを出力するブロック暗号の関数である。各変数iについての演算で用いられるtweakableブロック暗号Eは同じ関数であってもよいし、異なる関数であってもよい。
ステップS106の変数加算処理では、制御部160は、変数iに1加算する。そして、制御部160は、処理をステップS104に戻す。
つまり、ステップS105では、ランダム化部130は、i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m[i]とkビットの鍵Kとtビットの値tw[i]とを入力として、ブロック暗号Eにより、nビットの値c[i]を計算する。
続いて、ステップS107の圧縮処理では、圧縮部140は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、nビットの値w[1],w[2]を計算する。ここで、圧縮部140は、q回呼び出された場合に、異なる入力に対して同一の出力が計算される確率がO(q/22n)である関数hにより、値w[1],値w[2]を計算する。
なお、圧縮部140は、i=1,...,bの各整数iについての値c[i]に加え、メッセージMまたはその一部を入力として、nビットの値w[1]とw[2]とを計算してもよい。
ステップS108のtw値計算処理では、認証子生成部150は、ステップS107で計算された値w[2]を入力として、関数f1により、i=1,...,bの各整数iについての値tw[i]とは異なるtビットの値tw’[1]を計算する。また、認証子生成部150は、ステップS107で計算された値w[1]を入力として、i=1,...,bの各整数iについての値tw[i]とは異なるtビットの値tw’[2]を計算する。
ステップS109の暗号化処理では、認証子生成部150は、ステップS107で計算された値w[1]と、鍵Kと、ステップS108で計算された値tw’[1]とを入力として、tweakableブロック暗号Eにより、nビットの値T[1]を計算する。また、認証子生成部150は、ステップS107で計算された値w[2]と、鍵Kと、ステップS108で計算された値tw’[2]とを入力として、tweakableブロック暗号Eにより、nビットの値T[2]を計算する。
ここでの演算で用いられるtweakableブロック暗号Eは同じ関数であってもよいし、異なる関数であってもよい。
ステップS110の認証子計算処理では、認証子生成部150は、値T[1]及び値T[2]を入力として、関数gにより、値T’を計算する。ここでは、認証子生成部150は、関数gにより、値T[1]と値T[2]との排他的論理和を計算する。そして、認証子生成部150は、値T’のうちのrビットをメッセージMの認証子Tとする。
なお、関数gは、値T[1]と値T[2]とについて、ガロア体GF(2)における掛け算、又は、nビット上での加算もしくは減算をする関数であってもよい。nビット上での加算もしくは減算とは、nビットの値T[1]と値T[2]とを加算もしくは減算した結果もnビットとするという意味である。
なお、ステップS108からステップS110の処理が認証子生成処理である。
***実施の形態1の効果***
以上のように、実施の形態1に係るメッセージ認証子生成装置10は、tweakableブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
特に、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵としてはkビットの鍵Kを1つだけ用いるため、鍵サイズはkビットである。また、メッセージ認証アルゴリズムは、i=1,...,bの各整数iについて一部の処理を並列に実行することができる。また、メッセージ認証アルゴリズムは、nビットのメッセージブロックに対して、ブロック暗号を1回だけ呼び出すため、レート1である。
つまり、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵サイズがkビット、並列処理可能、レート1とすることができる。
また、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、以下の条件の下で、安全性は、p=O(q/22n)となる。条件は、鍵Kを固定したTweakableブロック暗号が理想的なTweakableランダム置換として扱え、かつ、t≧n/2である。
つまり、実施の形態1に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、q’=O(2)となる。
***他の構成***
上記説明では、メッセージ認証子生成装置10は、各機能を実現する専用の電子回路である処理回路11を備えるとした。ここで、各機能とは、パディング部110と、分割部120と、ランダム化部130と、圧縮部140と、認証子生成部150と、制御部160との機能である。しかし、各機能は、ソフトウェアによって実現されてもよい。
図4は、各機能をソフトウェアで実現した場合のメッセージ認証子生成装置10の構成図である。
メッセージ認証子生成装置10は、コンピュータである。
メッセージ認証子生成装置10は、プロセッサ12と、記憶装置13とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
記憶装置13には、各機能を実現するプログラムが記憶されている。このプログラムは、プロセッサ12に読み込まれ、プロセッサ12によって実行される。
プロセッサ12は、プロセッシングを行うICである。ICは、Integrated Circuitの略である。プロセッサ12は、具体的には、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
記憶装置13は、具体的には、ROM、RAM、フラッシュメモリ、HDDである。ROMは、Read Only Memoryの略である。RAMは、Random Access Memoryの略である。HDDは、Hard Disk Driveの略である。
プロセッサ12によって実現される各機能の処理の結果を示す情報とデータと信号値と変数値は、記憶装置13、又は、プロセッサ12内のレジスタ又はキャッシュメモリのような記憶領域に記憶される。
なお、上記説明では、プロセッサ12によって実現される各機能を実現するプログラムは、記憶装置13に記憶されているとした。しかし、このプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、図4では、プロセッサ12は、1つだけ示されていた。しかし、プロセッサ12は、複数であってもよく、複数のプロセッサ12が、各機能を実現するプログラムを連携して実行してもよい。
また、一部の機能がハードウェアで実現され、他の機能がソフトウェアで実現されてもよい。また、各機能をファームウェアで実現してもよい。
処理回路11と、プロセッサ12と、記憶装置13とを、総称して「プロセッシングサーキットリー」という。つまり、各機能は、プロセッシングサーキットリーにより実現される。
また、上記説明における「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。
実施の形態2.
実施の形態2では、実施の形態1における各関数を具体化した構成を説明する。
実施の形態2では、実施の形態1と異なる点を説明する。
図2に基づき、実施の形態2に係るメッセージ認証子生成装置10の動作を説明する。
図5は、実施の形態2に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図3と同様に、図5において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
実施の形態2に係るメッセージ認証子生成装置10の動作は、実施の形態2に係るメッセージ認証子生成方法に相当する。また、実施の形態2に係るメッセージ認証子生成装置10の動作は、実施の形態2に係るメッセージ認証子生成プログラムの処理に相当する。
ステップS101のパディング処理では、パディング部110は、メッセージMを入力として、関数padにより、値M’を生成する。ここでは、パディング部110は、メッセージMの後ろに1を付加し、その後に0のビット列を付加して、長さがnビットのb倍のビット数の値M’を生成する。付加する0の個数は、0個以上であり、かつ、値M’がnの倍数となる最小の数である。パディング部110は、1と0とを逆にして、メッセージMの後ろに0を付加し、その後に1のビット列を付加してもよい。
ステップS102からステップS106の処理は、実施の形態1と同じであるため説明を省略する。
ここでは、ステップS105において、値tw[i]は、上位1ビットを0とし、残りのt−1ビットが互いに異なる値とする。
ステップS107の圧縮処理では、圧縮部140は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、nビットの値w[1],値w[2]を計算する。
ここでは、圧縮部140は、値xを用いて、i=1,...,bの各整数iについての(c[i]×xb−i)の排他的論理和X[1]を計算して値w[1]とする。また、圧縮部140は、i=1,...,bの各整数iについてのc[i]の排他的論理和X[2]を計算して値w[2]とする。
つまり、まず、圧縮部140は、w[1]=(c[1]×xb−1) xor (c[2]×xb−2) xor ... xor (c[b−1]×x) xor c[b]を計算する。また、圧縮部140は、w[2]=c[1] xor c[2] xor ... xor c[b−1] xor c[b]を計算する。
ここでの掛け算はガロア体上の掛け算で、値xは位数が2−1となるガロア体GF(2)の部分群となる乗法群上の元である。また、値w[1]と値w[2]の演算方法は逆であってもよい。
ステップS108のtw値計算処理では、認証子生成部150は、値w[2]の下位のt−2ビットをtw’[1]の下位t−2ビットとし、tw’[1]の残りの上位2ビットを10とする。また、認証子生成部150は、値w[1]の下位のt−2ビットをtw’[2]の下位t−2ビットとし、tw’[2]の残りの上位2ビットを11とする。
ステップS109からステップS110の処理は、実施の形態1と同じであるため説明を省略する。
***実施の形態2の効果***
以上のように、実施の形態2に係るメッセージ認証子生成装置10は、tweakableブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
実施の形態2に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、鍵サイズがkビット、並列処理可能、レート1である。また、実施の形態2に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、実施の形態1で述べた条件の下で、q’=O(2)となる。
***他の構成***
値tw[1],tw[2],...,tw[b],tw’[1],tw’[2]は、全て異なった値であればよい。したがって、値tw’[1],tw’[2]の上位2ビットの値は、10,11でなく他の値でもよい。また、上位2ビットでなく他の位置であってもよい。また、2ビットではなく、3ビット以上を、固定ビット列としてもよい。
つまり、この場合、認証子生成部150は、tビットのうちのy[1]ビットに固定ビット列z[1]を設定し、tビットのうちの残りの(t−y[1])ビットに値w[2]のうちの(t−y[1])ビットを設定して、値tw’[1]を計算する。また、認証子生成部150は、tビットのうちのy[2]ビットに固定ビット列z[2]を設定し、tビットのうちの残りの(t−y[2])ビットに値w[1]のうちの(t−y[2])ビットを設定して、値tw’[2]を計算する。
実施の形態3.
実施の形態2で説明した構成では、メッセージMがnビットの倍数のビット数である場合であっても、パディング部110によってメッセージMにビットが付加された。実施の形態3は、メッセージMがnビットの倍数のビット数である場合には、メッセージMにビットを付加しない点が実施の形態2と異なる。
実施の形態3では、実施の形態2と異なる点を説明する。
図2に基づき、実施の形態3に係るメッセージ認証子生成装置10の動作を説明する。
図6は、実施の形態3に係るメッセージ認証子生成装置10によって実現されるメッセージ認証アルゴリズムの構成図である。図5と同様に、図6において破線で囲まれた処理が破線に付された符号が示す機能によって実現される。
実施の形態3に係るメッセージ認証子生成装置10の動作は、実施の形態3に係るメッセージ認証子生成方法に相当する。また、実施の形態3に係るメッセージ認証子生成装置10の動作は、実施の形態3に係るメッセージ認証子生成プログラムの処理に相当する。
ステップS101のパディング処理では、パディング部110は、メッセージMを入力として、関数padにより、値M’を生成する。
ここでは、パディング部110は、メッセージMがnビットの倍数のビット数でない場合には、メッセージMの後ろに1を付加し、その後に0のビット列を付加して、長さがnビットのb倍のビット数の値M’を生成する。付加する0の個数は、0個以上であり、かつ、値M’がnの倍数となる最小の数である。パディング部110は、メッセージMの後ろに0を付加し、その後に1のビット列を付加してもよい。
一方、パディング部110は、メッセージMがnビットの倍数のビット数である場合には、メッセージMをそのまま値M’とする。
ステップS102からステップS107の処理は、実施の形態2と同じであるため説明を省略する。
ステップS107の圧縮処理では、圧縮部140は、i=1,...,bの各整数iについての値c[i]を入力として、関数hにより、nビットの値w[1],値w[2]を計算する。
ここでは、圧縮部140は、メッセージMがnビットの倍数のビット数である場合には、i=1,...,bの各整数iについての(c[i]×xb−i)の排他的論理和X[1]を計算して値w[1]とする。また、圧縮部140は、i=1,...,bの各整数iについてのc[i]の排他的論理和X[2]を計算して値w[2]とする。
一方、圧縮部140は、メッセージMがnビットの倍数のビット数でない場合には、i=1,...,bの各整数iについての(c[i]×xb−i)の排他的論理和X[1]を計算して値w[2]とする。また、圧縮部140は、i=1,...,bの各整数iについてのc[i]の排他的論理和X[2]を計算して値w[1]とする。
つまり、圧縮部140は、メッセージMがnビットの倍数のビット数である場合、w[1]=(c[1]×xb−1) xor (c[2]×xb−2) xor ... xor (c[b−1]×x) xor c[b]を計算する。また、圧縮部140は、w[2]=c[1] xor c[2] xor ... xor c[b−1] xor c[b]を計算する。
圧縮部140は、メッセージMがnビットの倍数のビット数でない場合、w[2]=(c[1]×xb−1) xor (c[2]×xb−2) xor ... xor (c[b−1]×x) xor c[b]を計算する。また、圧縮部140は、w[1]=c[1] xor c[2] xor ... xor c[b−1] xor c[b]を計算する。
ここでの掛け算はガロア体GF(2)上の掛け算で、値xは位数が2−1となるガロア体GF(2)の部分群の乗法群上の元である。また、メッセージMがnビットの倍数のビット数である場合と、nビットの倍数のビット数でない場合との演算方法は逆であってもよい。
ステップS108からステップS110の処理は、実施の形態2と同じであるため説明を省略する。
***実施の形態3の効果***
以上のように、実施の形態3に係るメッセージ認証子生成装置10は、tweakableブロック暗号ベースのメッセージ認証アルゴリズムを実現する。
実施の形態3に係るメッセージ認証子生成装置10が実現するメッセージ認証アルゴリズムは、メッセージMがnビットの倍数のビット数である場合には、メッセージMにビットを付加しない。そのため、ステップS102以降の処理に入力されるビット長が短くなり、処理速度を早くすることができる。
メッセージ認証アルゴリズムは、識別不可能性の安全性を満たす場合、疑似乱数生成アルゴリズムとしても使うことができる。疑似乱数生成アルゴリズムは、Key Derivation Functionやストリーム暗号で用いる関数として使われる。
10 メッセージ認証子生成装置、11 処理回路、12 プロセッサ、13 記憶装置、110 パディング部、120 分割部、130 ランダム化部、140 圧縮部、150 認証子生成部、160 制御部。

Claims (9)

  1. i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m[i]とkビットの鍵Kとtビットの値tw[i]とを入力として、ブロック暗号により、nビットの値c[i]を計算するランダム化部と、
    i=1,...,bの各整数iについての前記値c[i]を入力として、nビットの値w[1],w[2]を計算する圧縮部と、
    前記値w[2]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[1]を計算し、前記値w[1]と前記鍵Kと前記値tw’[1]とを入力として、ブロック暗号により、nビットの値T[1]を計算するとともに、前記値w[1]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[2]を計算し、前記値w[2]と前記鍵Kと前記値tw’[2]とを入力として、ブロック暗号により、nビットの値T[2]を計算し、前記値T[1]及び前記値T[2]から前記メッセージMの認証子Tを計算する認証子生成部と
    を備えるメッセージ認証子生成装置。
  2. 前記圧縮部は、q回呼び出した場合に、異なる入力に対して同一の出力が計算される確率がO(q/22n)である関数hにより、前記値w[1],w[2]を計算する
    請求項1に記載のメッセージ認証子生成装置。
  3. 前記圧縮部は、値xを用いて、i=1,...,bの各整数iについての(c[i]×xb−i)の排他的論理和X[1]を計算して前記値w[1]と前記値w[2]との一方とし、i=1,...,bの各整数iについてのc[i]の排他的論理和X[2]を計算して前記値w[1]と前記値w[2]との他方とする
    請求項1に記載のメッセージ認証子生成装置。
  4. 前記圧縮部は、
    前記メッセージMがnビットの倍数のビット数である場合には、前記排他的論理和X[1]を前記値w[1]と前記値w[2]との一方とするとともに、前記排他的論理和X[2]を前記値w[1]と前記値w[2]との他方とし、
    前記メッセージMがnビットの倍数のビット数でない場合には、前記排他的論理和X[1]を前記値w[1]と前記値w[2]との他方とするとともに、前記排他的論理和X[2]を前記値w[1]と前記値w[2]との一方とする
    請求項3に記載のメッセージ認証子生成装置。
  5. 前記認証子生成部は、前記値T[1]と前記値T[2]との排他的論理和を計算して前記認証子Tを計算する
    請求項1に記載のメッセージ認証子生成装置。
  6. 前記認証子生成部は、前記値T[1]と前記値T[2]とについて、ガロア体GF(2)の部分群となる乗法群における掛け算、又は、nビット上での加算もしくは減算をして前記認証子Tを計算する
    請求項1に記載のメッセージ認証子生成装置。
  7. 前記認証子生成部は、
    tビットのうちのy[1]ビットに固定ビット列z[1]を設定し、tビットのうちの残りの(t−y[1])ビットに前記値w[2]のうちの(t−y[1])ビットを設定して、値tw’[1]を計算し、
    tビットのうちのy[2]ビットに固定ビット列z[2]を設定し、tビットのうちの残りの(t−y[2])ビットに前記値w[1]のうちの(t−y[2])ビットを設定して、値tw’[2]を計算する
    請求項1に記載のメッセージ認証子生成装置。
  8. メッセージ認証子生成装置において、
    ランダム化部が、i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m[i]とkビットの鍵Kとtビットの値tw[i]とを入力として、ブロック暗号により、nビットの値c[i]を計算し、
    圧縮部が、i=1,...,bの各整数iについての前記値c[i]を入力として、nビットの値w[1],w[2]を計算し、
    認証子生成部が、前記値w[2]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[1]を計算し、前記値w[1]と前記鍵Kと前記値tw’[1]とを入力として、ブロック暗号により、nビットの値T[1]を計算するとともに、前記値w[1]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[2]を計算し、前記値w[2]と前記鍵Kと前記値tw’[2]とを入力として、ブロック暗号により、nビットの値T[2]を計算し、前記値T[1]及び前記値T[2]から前記メッセージMの認証子Tを計算する
    メッセージ認証子生成方法。
  9. ランダム化部が、i=1,...,bの各整数iについて、メッセージMから生成されたnビットの値m[i]とkビットの鍵Kとtビットの値tw[i]とを入力として、ブロック暗号により、nビットの値c[i]を計算するランダム化処理と、
    圧縮部が、i=1,...,bの各整数iについての前記値c[i]を入力として、nビットの値w[1],w[2]を計算する圧縮処理と、
    認証子生成部が、前記値w[2]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[1]を計算し、前記値w[1]と前記鍵Kと前記値tw’[1]とを入力として、ブロック暗号により、nビットの値T[1]を計算するとともに、前記値w[1]を入力として、i=1,...,bの各整数iについての前記値tw[i]とは異なるtビットの値tw’[2]を計算し、前記値w[2]と前記鍵Kと前記値tw’[2]とを入力として、ブロック暗号により、nビットの値T[2]を計算し、前記値T[1]及び前記値T[2]から前記メッセージMの認証子Tを計算する認証子生成処理と
    実行するメッセージ認証子生成装置としてコンピュータを機能させるメッセージ認証子生成プログラム。
JP2017518569A 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム Active JP6305643B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077312 WO2017056151A1 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Publications (2)

Publication Number Publication Date
JPWO2017056151A1 JPWO2017056151A1 (ja) 2017-10-05
JP6305643B2 true JP6305643B2 (ja) 2018-04-04

Family

ID=58422792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017518569A Active JP6305643B2 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Country Status (2)

Country Link
JP (1) JP6305643B2 (ja)
WO (1) WO2017056151A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7167422B2 (ja) 2017-09-26 2022-11-09 日本電産株式会社 モータ

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112640359B (zh) * 2018-08-30 2024-05-03 三菱电机株式会社 消息认证装置、消息认证方法及计算机可读取的存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
JP5447510B2 (ja) * 2009-05-11 2014-03-19 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
JP5427117B2 (ja) * 2010-06-11 2014-02-26 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
WO2014136386A1 (ja) * 2013-03-04 2014-09-12 日本電気株式会社 タグ生成装置、タグ生成方法およびタグ生成プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7167422B2 (ja) 2017-09-26 2022-11-09 日本電産株式会社 モータ

Also Published As

Publication number Publication date
JPWO2017056151A1 (ja) 2017-10-05
WO2017056151A1 (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
JP6305642B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
US20130195266A1 (en) Apparatus and Method for Producing a Message Authentication Code
JP6035459B2 (ja) 暗号化装置、復号化装置、及びプログラム
JP6386198B1 (ja) 暗号化装置及び復号装置
JPWO2009020060A1 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
US20120314857A1 (en) Block encryption device, block decryption device, block encryption method, block decryption method and program
Gorbenko et al. Post-quantum message authentication cryptography based on error-correcting codes
US9515830B2 (en) Universal hash function computing device, method and program
JP6305643B2 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
JP5528281B2 (ja) ハッシュ値演算装置
JP5427117B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
JP6229713B2 (ja) 暗号文照合システムと方法とプログラム
JPWO2020095382A1 (ja) 認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法、認証暗号化プログラムおよび認証復号プログラム
JP4914381B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
US20230134515A1 (en) Authentication encryption device, authentication decryption device, authentication encryption method, authentication decryption method, and storage medium
Zhou et al. Security and efficiency analysis of progressive audio scrambling in compressed domain
Mani et al. Enhancing security in cryptographic algorithm based on LECCRS
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
JP4914329B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
KR101971001B1 (ko) 화이트박스 암호가 적용된 블록 암호 기반의 난수 생성 방법 및 장치
JP6033504B1 (ja) メッセージ認証子生成装置
Корольов et al. Development of an improved method for forming pseudorandom numbers based on redunte M-ary codes
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
JP2012014077A (ja) ハッシュ値演算装置、ハッシュ値演算方法及びハッシュ値演算プログラム
CN115603892A (zh) 执行密码操作的方法、对应的处理设备和计算机程序产品

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180306

R150 Certificate of patent or registration of utility model

Ref document number: 6305643

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250