JP6740902B2 - 認証暗号化方法、認証復号方法および情報処理装置 - Google Patents

認証暗号化方法、認証復号方法および情報処理装置 Download PDF

Info

Publication number
JP6740902B2
JP6740902B2 JP2016543814A JP2016543814A JP6740902B2 JP 6740902 B2 JP6740902 B2 JP 6740902B2 JP 2016543814 A JP2016543814 A JP 2016543814A JP 2016543814 A JP2016543814 A JP 2016543814A JP 6740902 B2 JP6740902 B2 JP 6740902B2
Authority
JP
Japan
Prior art keywords
initial vector
ciphertext
plaintext
random number
pseudo
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
JP2016543814A
Other languages
English (en)
Other versions
JPWO2016027454A1 (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.)
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
Publication of JPWO2016027454A1 publication Critical patent/JPWO2016027454A1/ja
Application granted granted Critical
Publication of JP6740902B2 publication Critical patent/JP6740902B2/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

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

Description

本発明は、認証暗号化方法、認証復号方法、情報処理装置、制御プログラム及びその制御プログラムを記録する記録媒体に関する。
様々な暗号化に関する技術が知られている。
特許文献1は、暗号化方法を開示する。その暗号化方法において、ブロック暗号モードの操作は、任意のブロック長のブロック暗号を実装し、常に入力の平文と同じサイズで出力暗号文を提供する。そのモードは、ディスク・ブロックの暗号化やなんらかのネットワークプロトコルなどのデータの拡張を許可されないシステムにおいて、可能な限り最高のセキュリティを提供することができる。そのモードは、暗号文ブロックを再配置することによって暗号文を操作する攻撃から保護するために使用することができる追加の入力を受け付ける。ブロック暗号のための演算のガロア/カウンタモードからの汎用ハッシュ関数は、ハードウェアとソフトウェアの効率のために実施形態で使用することができる。
また、特許文献2は、データ配信装置を開示する。そのデータ配信装置は、暗号化データから関連付けられた非暗号化データの改ざん検知を可能とし、改ざんが認められた場合には、暗号化データの正常な復号を不能とする。そのデータ配信装置は、入力データAと非暗号化データBとが入力されて、非暗号化データBから算出したハッシュ値を用いて入力データAのブロック暗号処理を行ない、暗号化データE(A)と非暗号化データBとを配信する。そのデータ配信装置は、データ圧縮手段と、ブロック暗号処理手段と、データ配信手段とを含む。データ圧縮手段は、非暗号化データBから、ハッシュ関数を用いてハッシュ値を算出する。ブロック暗号処理手段は、ハッシュ値を初期ベクトルとして、予め定められた利用モードにより、入力データAをブロック暗号処理して暗号化データE(A)を生成する。データ配信手段は、このブロック暗号処理手段が生成した暗号化データE(A)と非暗号化データBとを多重化して、ヘッダと非暗号化データBと暗号化データE(A)とを配信する。
特許文献3は、暗号化方法を開示する。その暗号化方法は、平文の変化を広範囲に影響させることで暗号強度を向上させる。その暗号化方法は、以下の構成を有する。第1に、その暗号化方法は、初期ベクター1にDES(Data Encryption Standard)暗号化を施す。第2に、その暗号化方法は、暗号化した初期ベクター1と最初の小ブロック8バイトとで排他的論理和演算を行なう。第3に、その暗号化方法は、この結果にDES暗号化を施す。第4に、その暗号化方法は、その暗号化した結果と次の小ブロックとで排他的論理和演算を行なう。そして、第5に、その暗号化方法は、順次、同様の処理を32回繰り返すことで、256バイトに対する順方向からの連鎖処理を行なう。その後、第6に、その暗号化方法は、逆方向から同様の連鎖処理を行なう。第7に、その暗号化方法は、連鎖の最終小ブロックにDES暗号化を行なう。第8に、その暗号化方法は、その暗号化した結果とこの時の先頭ブロックとで排他的論理和演算を行なう。第9に、その暗号化方法は、256バイト全体をバイト単位で入れ換える。さらに、第10に、その暗号化方法は、フィードバック位置を変えて上記一連の処理を再度実行する。
認証暗号(AE:Authenticated Encryption)とは、事前に共有された秘密鍵を用いて、平文メッセージに対して暗号化と改ざん検知用の認証タグ計算とを同時に適用する技術である。通信路にAEを適用することにより、盗聴に対する内容の秘匿と、不正な改ざんに対する検知が可能となり、結果として通信内容に対する強力な保護が実現される。
このような通常の形式の認証暗号化では、平文(plaintext)Mの暗号化により、平文Mと同じ長さの暗号文(ciphertext)Cに加え、初期ベクトルNとタグTとを暗号文Cに連結して送信する必要がある。通常の処理では、初期ベクトルNとタグTも4バイトから32バイト程度の短い値であるが、平文Mも同程度に短い場合などでは初期ベクトルNとタグTとの追加による通信帯域増加を無視することができない。このようなケースは、無線センサネットワークのデバイスなどで頻繁に見受けられ、またそのようなネットワークでは通信帯域が消費電力を左右する重要な要素であるため、帯域削減は重要な課題である。
また、今までメッセージ認証の機能無しに暗号化を行ってきた通信路に新たにメッセージ認証機能を追加し、全体として認証暗号の機能を達成しようとする場合には、メッセージの長さに関わらずプロトコルへの変更が求められる場合がある。このような場合、実用上の困難を生じることがある。
このような問題に対する解決方法として、非特許文献1に述べられているAERO(Authenticated Encryption with Replay prOtection)がある。非特許文献1のAEROは、Kを鍵とした可変長入出力の擬似ランダム置換(WPRP:Wide pseudorandom permutation)P_Kを用いて、初期ベクトルNと平文Mとを連結して得られた入力(N,M)に対し、C=P_K(N,M)を全体の出力とするものである。ここで、“P_K”は鍵Kをパラメータとした関数である。暗号文Cの長さは初期ベクトルNと平文Mとの長さの和となる。復号側では共有する鍵Kを用いて、暗号文CへP_Kの逆置換を適用して(N,M)を得たのち、復号された初期ベクトルNが期待する値であるかどうかによって、認証チェックの正否を判定する。
復号された初期ベクトルNが期待する値であるかどうかを判定するためには、暗号化側が用いるべき初期ベクトルNが復号側にあらかじめ分かっていることが必要となる。これは、初期ベクトルNの更新に関して暗号化側と復号側で同期がとれていれば実現可能である。典型的には、復号側が直前に送られた正規の暗号文の初期ベクトルを記憶していることで達成される。この条件は、復号側でリプレイを検知して排除することが求められているケースでは自然である。
非特許文献1では、暗号化側が送らなければならない情報は暗号文Cのみであり、この長さは初期ベクトルNと平文Mとの長さの和となるため、暗号化による帯域の増分が初期ベクトルNのみである。したがって、前述の一般的な認証暗号の方式と比べると、タグTの分の帯域を無くすことが可能である。また、WPRPの性質から、リプレイ以外の暗号文を復号すると、結果として得られる平文はそれまで全体がランダムになる。そのため、初期ベクトルが入っていた部分に関して攻撃者が特定の値に制御することは困難となり、復号側が期待する値になる確率は実質的に無視できるほど小さくなる。
そして、非特許文献1は、特許文献1に開示されるXCB(eXtended CodeBook)モードと呼ばれるブロック暗号利用モードを、WPRPとして用いることを提案している。
米国特許第7,418,100号明細書 特開2011−091494号公報 特開平10−303883号公報
D. McGrew. Authenticated Encryption with Replay prOtection (AERO) https://tools.ietf.org/html/draft-mcgrew-aero-00
しかしながら、上述した先行技術文献に記載された技術においては、暗号化の効率が悪い場合があるという問題点がある。例えば、上記特許文献1に記載の技術では、128bitのブロック単位の分割を用いる場合、XBCモードではmブロックの平文Mについて3パスの処理で構成されている。最初のパスと最後のパスとはGF(Galois Field)(2128)上の多項式ハッシュ(polynomial hash over GF(2128))であるGHASHを実行する。また、中間のパスは128bitのブロック暗号によるカウンタモード暗号化を実行する。このため、通常の暗号化と比べた負荷は大きい。具体的には、入力1ブロックあたり、ブロック暗号を1回と、GF(2128)上の乗算を2回、要する。すなわち、認証暗号化による帯域増加を抑制できたが、暗号化の効率が悪くなった。
本発明の目的は、暗号文長の平文長に対する帯域(長さ)の増加が小さい認証暗号を、効率よく実現する技術を提供することにある。
上記目的を達成するため、本発明の一様態に係る情報処理装置は、
平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
を備える。
上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
平文を入力する平文入力ステップと、
初期ベクトルを生成する初期ベクトル生成ステップと、
前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
上記目的を達成するため、本発明の一様態に係る情報処理装置は、
平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
を備える。
上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
平文を入力する平文入力ステップと、
初期ベクトルを生成する初期ベクトル生成ステップと、
前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
上記目的を達成するため、本発明の一様態に係る情報処理装置は、
暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
を備える。
上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラムを記録する。
上記目的を達成するため、本発明の一様態に係る情報処理装置は、
暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
を備える。
上記目的を達成するため、本発明の一様態に係るコンピュータ読み取り可能な非一時的記録媒体は、
暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明の一様態に係る認証暗号化方法は、
平文と、過去の値と重複がないように生成された初期ベクトルとに基づいて暗号文を生成する認証暗号化方法であって、
前記初期ベクトルを元に共通鍵ブロック暗号化を行ない、暗号化初期ベクトルを生成し、
前記平文から前記暗号文の第1部分を生成するため、前記平文と排他的論理和する擬似乱数を、前記暗号化初期ベクトルを元に生成し、
前記初期ベクトルから前記暗号文の第2部分を生成するため、前記暗号化初期ベクトルの生成における前記初期ベクトルの共通鍵ブロック暗号化に加えて前記初期ベクトルと排他的論理和する鍵付きハッシュ値を、前記平文を元に生成する。
上記目的を達成するため、本発明の一様態に係る認証復号方法は、
暗号文から、前記暗号文の元となった平文と、前記暗号文の生成に使用された初期ベクトルとを復号する認証復号方法であって、
前記暗号文の第1部分から前記平文を復号するため、前記第1部分と排他的論理和する擬似乱数を、前記暗号文の第2部分を元に生成し、
前記暗号文の第2部分を元に共通鍵ブロック復号を行ない、
前記暗号文の第2部分から前記初期ベクトルを復号するため、前記共通鍵ブロック復号における前記第2部分の共通鍵ブロック復号に加えて前記第2部分と排他的論理和する鍵付きハッシュ値を、前記第1部分を元に生成する。
本発明によれば、暗号文長の平文長に対する帯域(長さ)の増加が小さい認証暗号を、効率よく実現することができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る認証暗号化システムの構成を示す図である。 第2実施形態に係る情報処理装置としての認証暗号化部の機能構成を示すブロック図である。 前提技術に係るXCBモードを用いた認証暗号化部の機能構成を示すブロック図である。 第2実施形態に係る共通鍵ブロック暗号化部の構成例を示す図である。 第2実施形態に係る他の共通鍵ブロック暗号化部の構成例を示す図である。 第2実施形態に係る擬似乱数生成部の構成例を示す図である。 第2実施形態に係る鍵付きハッシュ部の構成例を示す図である。 第2実施形態に係る他の鍵付きハッシュ部の構成例を示す図である。 第2実施形態に係る認証暗号化部のハードウェア構成を示すブロック図である。 第2実施形態に係る認証暗号化部の処理手順を示すフローチャートである。 第2実施形態に係る情報処理装置としての認証復号部の機能構成を示すブロック図である。 第2実施形態に係る共通鍵ブロック復号部の構成例を示す図である。 第2実施形態に係る初期ベクトル検査部の構成例を示す図である。 第2実施形態に係る認証復号部のハードウェア構成を示すブロック図である。 第2実施形態に係る認証復号部の処理手順を示すフローチャートである。 本発明の第3実施形態に係る情報処理装置としての認証暗号化部の機能構成を示すブロック図である。 第3実施形態に係る認証暗号化部の処理手順を示すフローチャートである。 第3実施形態に係る情報処理装置としての認証復号部の機能構成を示すブロック図である。 第3実施形態に係る認証復号部の処理手順を示すフローチャートである。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、平文をブロック暗号化して暗号文を生成する装置である。
図1に示すように、情報処理装置100は、平文入力部101と、初期ベクトル生成部102と、共通鍵ブロック暗号化部103と、擬似乱数生成部104と、鍵付きハッシュ部105と、暗号文出力部106と、を含む。平文入力部101は、平文111を入力する。初期ベクトル生成部102は、初期ベクトル112を生成する。共通鍵ブロック暗号化部103は、初期ベクトル112を共通鍵ブロック暗号化して暗号化初期ベクトル113を生成する。擬似乱数生成部104は、暗号化初期ベクトル113を入力として、平文111と同じ長さの擬似乱数系列114を生成する。鍵付きハッシュ部105は、擬似乱数系列114と平文111とを排他的論理和(107)した暗号文の第1部分117を入力としてハッシュ値115を生成する。暗号文出力部106は、ハッシュ値115と暗号化初期ベクトル113とを排他的論理和(108)した暗号文の第2部分118と第1部分117とを連結して暗号文116として出力する。
本実施形態によれば、入力長1ブロックにつきブロック暗号を1回、有限体GF(2n)乗算を1回により、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現することができる。
[第2実施形態]
次に、本発明の第2実施形態に係る認証暗号化システムについて説明する。本実施形態に係る認証暗号化システムは、認証暗号化を行なう情報処理装置、認証復号を行なう情報処理装置、または、認証暗号化および認証復号を行なう情報処理装置を含む。
《認証暗号化システムの構成》
図2は、本実施形態に係る認証暗号化システム200の構成を示す図である。
図2の認証暗号化システム200は、情報処理装置202や情報処理装置203と、情報処理装置201や情報処理装置205と含む。情報処理装置202や情報処理装置203は、認証暗号化部210を含み、平文を認証暗号化した暗号文を、ネットワーク230を介して送信する情報処理装置201や情報処理装置205は、認証復号部220を含み、ネットワーク230を介して受信した暗号文を平文に復号する。
認証暗号化システム200は、さらに、認証暗号化部210および認証復号部220を含み、平文を認証暗号化した暗号文を、ネットワーク230を介して送信すると共に、ネットワーク230を介して受信した暗号文を平文に復号する情報処理装置204を含む。
なお、図2においては、情報処理装置を認証暗号化部210や認証復号部220、その外の機能を有する装置として図示したが、認証暗号化部210や認証復号部220を情報処理装置としての認証暗号化装置や認証復号装置と考えることもできる。また、図2においては、認証暗号を、ネットワークを介した情報処理装置間の通信に適用する場合を図示した。しかしながら、本実施形態の認証暗号は、情報処理装置とLAN(Local Area Network)を介したデバイスとの間、あるいは、情報処理装置とデバイス(プリンタやディスプレイ、記憶媒体)との間、あるいは、デバイス間、に適用され、同様の効果を奏する。
《前提技術》
本実施形態の認証暗号化システム200、認証暗号化部210や認証復号部220を詳細に説明する前に、その前提となる技術について説明する。
(認証暗号の基本)
最初に、認証暗号(AE)の基本的な入出力を示す。秘密鍵Kを共有する2者“Alice”と“Bob”を考え、AliceからBobへ認証暗号(AE)による暗号化を用いて通信するものとする。そして、認証暗号(AE)の暗号化関数をAEnc、復号関数をADecとする。また、暗号化したい平文をMとし、さらに初期ベクトルNと呼ばれる変数を導入する。
まず、Aliceが初期ベクトルNを生成後、(C,T)=AEnc_K(N,M)という処理を行う。ここで、“AEnc_K”は鍵Kをパラメータとした関数、Cは暗号文、Tはタグと呼ばれる、固定長の改ざん検出用の変数である。Aliceは(N,C,T)をBobへ送信する。
Bobが受信した情報を(N',C',T')とすると、Bobは復号処理としてADec_K(N',C',T')を計算する。もし通信の途中に改ざんがあり、(N',C',T')≠(N,C,T)となっていた場合、ADec_K(N',C',T')の結果は改ざんがあったことを示すエラーメッセージとなる。もし改ざんがなく、(N',C',T')=(N,C,T)であれば、ADec_K(N',C',T')=Mとなり、平文Mが正しく復号される。
このような方式の一例として、CCM(Counter with CBC-MAC(cipher block chaining message authentication code))や、GCM(Galois/Counter Mode)がある。CCMについては、“NIST Special Publication 800-38C Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality http://csrc.nist.gov/publications/nistpubs/800-38C/SP800-38C_updated-July20_2007.pdf”を参照されたい。以下、この文献を“文献CCM”として参照する。また、GCMについては、“NIST Special Publication 800-38D Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf”を参照されたい。以下、この文献を“文献GCM”として参照する。
また、上記の処理においては通常暗号化で初期ベクトルNが偶然一致してしまわないようにすることが重要であり、このために暗号化側は何らかの状態変数を保持し、初期ベクトルの一致を防ぐ。これは、典型的には、状態変数として直前に使った初期ベクトルNを記憶しておき、毎回初期ベクトルNをインクリメントすることで実現される。
ところが、上記通常の形式の認証暗号化では、平文Mの暗号化により、平文Mと同じ長さの暗号文Cに加え、初期ベクトルNとタグTとを暗号文Cに連結して送信する必要がある。通常の処理では、初期ベクトルNもタグTも4バイトから32バイト程度の短い値であるが、平文Mも同程度に短い場合などでは初期ベクトルNとタグTとの追加による通信帯域増加を無視することができない。このようなケースは、無線センサネットワークのデバイスなどで頻繁に見受けられる。そのようなネットワークでは通信帯域が消費電力を左右する重要な要素であるため、帯域削減は重要な課題である。また、今までメッセージ認証の機能無しに暗号化を行ってきた通信路に新たにメッセージ認証機能を追加し、全体として認証暗号の機能を達成しようとする場合には、メッセージの長さに関わらずプロトコルへの変更が求められる場合がある。このような場合、実用上の困難を生じることがある。
(帯域削減手法)
このような帯域問題に対する解決方法として、上記非特許文献1がある。非特許文献1のAEROは、Kを鍵とした可変長入出力の擬似ランダム置換(WPRP)P_Kを用いて、初期ベクトルNと平文Mとを連結して得られた入力(N,M)に対し、C=P_K(N,M)を全体の出力とするものである。暗号文Cの長さは初期ベクトルNと平文Mとの長さの和となる。復号側では共有する鍵Kを用いて、暗号文CへP_Kの逆置換を適用し(N,M)を得たのち、復号された初期ベクトルNが期待する値であるかどうかによって、認証チェックの正否を判定する。
復号された初期ベクトルNが期待する値であるかどうかを判定するためには、暗号化側が用いるべき初期ベクトルNが復号側にあらかじめ分かっていることが必要となる。これは、初期ベクトルNの更新に関して暗号化側と復号側で同期がとれていれば実現可能である。典型的には、復号側が直前に送られた正規の暗号文の初期ベクトルを記憶していることで達成される。この条件は、復号側でリプレイを検知して排除することが求められているケースでは自然である。
このように、AERO方式では、暗号化側が送らなければならない情報は暗号文Cのみであり、この長さは初期ベクトルNと平文Mとの長さの和となるため、暗号化による帯域の増分が初期ベクトルのみである。したがって、前述の一般的な認証暗号の方式と比べると、タグTの分の帯域を無くすことが可能である。また、WPRPの性質から、リプレイ以外の暗号文を復号すると、結果として得られる平文はそれまで全体がランダムになる。このため、初期ベクトルが入っていた部分に関して攻撃者が特定の値に制御することは困難となり、復号側が期待する値になる確率は実質的に無視できるほど小さくなる。
(XCBモードを用いた認証暗号化)
非特許文献1のAERO方式は、特許文献1のようなXCBモードと呼ばれるブロック暗号利用モードを、WPRPとして用いることを提案している。128bitブロック単位の分割を用いる場合、XCBモードはmブロックの平文Mについて3パスの処理で構成されている。
図4は、前提技術に係るXCBモードを用いた認証暗号化部400の機能構成を示すブロック図である。
共通鍵暗号化部E401で初期ベクトルNを暗号化処理した第1中間値は、最初のパスであるGHash402により平文Mから生成された多項式ハッシュと排他的論理和されて、第2中間値が生成される。第2中間値は、中間のパスであるカウンタモード暗号化403によりブロック暗号化される。そして、ブロック暗号化された結果は、平文Mと排他的論理和されて、暗号文の第1部分CRが生成される。一方、第2中間値は、最後のパスであるGHash404により第1部分CRから生成された多項式ハッシュと排他的論理和されて、第3中間値が生成される。第3中間値は、共通鍵復号部D405で復号処理されて、暗号文の第2部分CLが生成される。
ここで、最初のパスと最後のパスとは、GF(2128)上の多項式ハッシュ(polynomial hash over GF(2128))であるGHash402、404を実行する。また、中間のパスは、128bitブロック暗号によるカウンタモード暗号化403を実行する。そのため、通常の暗号化と比べた負荷は大きい。具体的には、入力1ブロック当たり、ブロック暗号を1回と、GF(2128)上の乗算を2回とを、要することになる。
本実施形態においては、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できるよう工夫した。以下、本実施形態の認証暗号化システム200における、認証暗号化部210および認証復号部220について詳細に説明する。以下、特に断りのない限り、1ブロックの長さをnビットとする。
《認証暗号化部の機能構成》
図3は、本実施形態に係る情報処理装置としての認証暗号化部210の機能構成を示すブロック図である。
認証暗号化部210は、平文入力部311と、初期ベクトル生成部312と、共通鍵ブロック暗号化部313と、擬似乱数生成部314と、鍵付きハッシュ部315と、暗号文出力部316とを備える。なお、認証暗号化部210は、CPU(Central Processing Unit)とメモリとディスクにより実現可能であり、各機能構成部は、プログラムをディスクに格納しておき、このプログラムをCPU上で動作させることにより実現することもできる。
次に、認証暗号化部210を構成する各機能構成部について説明する。
(平文入力部)
平文入力部311は、対象となる平文Mを入力する機能構成部である。これは例えば、キーボードなどの文字入力部、あるいは、平文を記憶する記憶媒体からの読み出し、あるいは、通信媒体を介した受信などにより実現される。
(初期ベクトル生成部)
初期ベクトル生成部312は、過去に生成した値とは異なる初期ベクトルを生成する機能構成部である。例えば簡単な構成としては、最初は任意の固定値を出力し、2回目以降は直前に生成した初期ベクトルの値を記憶しておき、これに“1”を加えた値を出力する構成とすればよい。この場合、最後に用いた初期ベクトルをNとするとき、新たな初期ベクトルN'=N+1となる。このとき、更新処理は、初期ベクトル更新関数f(N)=N+1を用いて表現できる。初期ベクトル生成においては、時間情報などの、その他の補助情報を組み合わせて生成してもよいが、この場合は補助情報が暗号化と復号側とで同期がとれているものとする。簡単のため、以降、更新は補助情報なしで、直前に用いた初期ベクトルのみから次の初期ベクトルが定まるものとするが、一般性を失うものではない。また初期ベクトルNはnビットであるものとするが、仮に短い場合はブロック単位となるよう適当なパディングを行うものとする。
(共通鍵ブロック暗号化部)
共通鍵ブロック暗号化部313は、1ブロックの初期ベクトルNを暗号化し、同じ長さの暗号化された初期ベクトルSを出力する機能構成部である。例えば、共通鍵ブロック暗号化部313は、ブロック暗号の暗号化関数により実現される。
図5は、本実施形態に係る共通鍵ブロック暗号化部313の構成例を示す図である。図5は、SPN
(substitution permutation network)構造による共通鍵ブロック暗号化の場合である。
図5において、“Su”は換字処理(substitution)を表わし、“Pe”は転置処理(permutation)を表わす。なお、詳細には、“NIST, "Advanced Encryption Standard (AES) ", FIPS PUB 197,http://csrc.nist.gov/publications/fips/index.html”を参照されたい。
図6は、本実施形態に係る他の共通鍵ブロック暗号化部613の構成例を示す図である。図6は、Feistel構造による共通鍵ブロック暗号化の場合である。なお、詳細には、“青木、市川、神田、松井、盛合、中嶋、時田、「128ビットブロック暗号Camelliaアルゴリズム仕様書(第2.0版)」http://info.isl.ntt.co.jp/crypt/camellia/dl/01jspec.pdf”を参照されたい。
ここで、図5のSPN構造においては、暗号化と復号とで異なる処理となるが、図6のFeistel構造においては、暗号化と復号とが同様の処理となる。なお、共通鍵ブロック暗号化部313の構成は、図5や図6に限定されるものではない。
(擬似乱数生成部)
擬似乱数生成部314は、1ブロックの暗号化初期ベクトルSを用いて、平文Mと同じ長さの擬似乱数系列Vを生成する機能構成部である。具体的には、固定長入力、可変長出力の擬似ランダム関数である。このような関数は、例えばブロック暗号を用いる場合、修正カウンタモード(modified counter mode)や修正OFB(Output-FeedBack)モード(modified OFB mode)で生成することが可能である。
図7は、本実施形態に係る擬似乱数生成部314の構成例を示す図である。図7においては、上段が基本のカウンタモードとOFBモードの構成であり、下段が修正カウンタモードと修正OFBモードの構成である。
なお、詳細には、“Henri Gilbert. The Security of "One-Block-to-Many" Modes of Operation. Fast Software Encryption 2003, LNCS 2887 Springer 2003, ISBN 3-540-20449-0.”を参照されたい。以下、この文献を“文献Gil”として参照する。
擬似乱数生成部314において、修正カウンターモードや修正OFBモードを利用した場合、ブロック暗号のみで実現することが可能である。さらに、修正カウンターモードを利用した場合、各出力ブロック生成において並列処理が可能となる。
なお、擬似乱数生成部314としては、初期ベクトル付きのストリーム暗号を利用することも可能である。詳細には、“The eSTREAM Portfolio,http://www.ecrypt.eu.org/documents/D.SYM.10-v1.pdf”を参照された。以下、この文献を“文献eSTREAM”として参照する。
(鍵付きハッシュ部)
鍵付きハッシュ部315は、平文Mと、擬似乱数生成部314の出力する擬似乱数系列Vとの排他的論理和である暗号文の第1部分CRを入力として、鍵付きハッシュ値Hを出力する機能構成部である。具体的には、鍵付きハッシュ部315は、可変長の入力から1ブロックの出力を得る擬似ランダム関数である。例えば、ブロック暗号を用いる場合、CMAC(Cipher-based Message Authentication Code)や、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法などがある。すなわち、多項式ハッシュをF(鍵をL)、ブロック暗号の暗号化関数をE(鍵をK)とすると、入力Xについて、E_K(F_L(X))を出力とすればよい。
図8は、本実施形態に係る鍵付きハッシュ部315の構成例を示す図である。図8は、CMACにおける、暗号文の第1部分CRがブロックサイズの整数倍の場合の構成(左図)と、整数倍でない場合の構成(右図)と、を図示している。
なお、CMACについての詳細は、“NIST Special Publication 800-38B Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication http://csrc.nist.gov/publications/nistpubs/800-38B/SP_800-38B.pdf”を参照されたい。以下、この文献を“文献CMAC”として参照する。
図9は、本実施形態に係る他の鍵付きハッシュ部815の構成例を示す図である。図9は、有限体上の多項式ハッシュとブロック暗号の暗号化とによる鍵付きハッシュ部815を図示している。図9において、“mult”はGF(2128)上の乗算で、その鍵はK1である。また、“CIPH”はブロック暗号の暗号化関数で、その鍵はK2である。
有限体上の多項式ハッシュについては、“Daniel J. Bernstein. The Poly1305-AES Message-Authentication Code. Fast Software Encryption 2005, LNCS 3557, pp 32-49.”を参照されたい。以下、この文献を“文献Poly”として参照する。なお、文献Polyにおいては、図9のGHASH部分が類似した別の関数となるが、安全性や効率などに特段変化はない。鍵付きハッシュ部815は、GHASHと文献Polyとのいずれにおいても実施可能である。
(暗号文出力部)
暗号文出力部316は、暗号文の第2部分CLと第1部分CRとを連結して暗号文Cとして出力する機能構成部である。第2部分CLは、鍵付きハッシュ部315が出力するハッシュ値Hと、共通鍵ブロック暗号化部313が出力する暗号化された初期ベクトルSとの排他的論理和である。
暗号文Cは、例えば、コンピュータディスプレイやプリンタなどへ出力される。
《認証暗号化部のハードウェア構成》
図10は、本実施形態に係る認証暗号化部210のハードウェア構成を示すブロック図である。
図10で、CPU910は演算制御用のプロセッサであり、プログラムを実行することで図3の機能構成部を実現する。ROM(Read Only Memory)920は、初期データおよびプログラムなどの固定データを記憶する。また、通信制御部930は、ネットワークを介して他の装置と通信する。なお、CPU910は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPU(Graphic Processing Unit)を含んでもよい。また、通信制御部930は、CPU910とは独立したCPUを含んで、RAM(Random Access Memory)940の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM940とストレージ950との間でデータを転送するDMAC(Direct Memory Access Controller)を設けるのが望ましい(図示なし)。したがって、CPU910は、RAM940にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU910は、処理結果をRAM940に準備し、後の送信あるいは転送は通信制御部930やDMACに任せる。
RAM940は、CPU910が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM940には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入力平文M941は、認証暗号化部210により認証暗号化される平文である。初期ベクトルN942は、過去の値と重複がないように生成されたデータである。暗号化された初期ベクトルS943は、初期ベクトルN942を共通鍵ブロック暗号化したデータである。擬似乱数系列V944は、暗号化された初期ベクトルS943に基づいて生成された擬似乱数である。ハッシュ値H945は、暗号文の第1部分CRに基づいて生成されたハッシュ値である。ハッシュ値Hと暗号化初期ベクトルSとの排他的論理和CL946は、暗号文の第2部分CLである。平文Mと擬似乱数系列Vとの排他的論理和CR947は、暗号文の第1部分CRである。出力暗号文Cは、暗号文の第1部分CRと第2部分CLとを連結して生成された暗号文である。
ストレージ950には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。共通鍵ブロック暗号化アルゴリズム951は、本実施形態で使用される共通鍵ブロック暗号化のアルゴリズムである。擬似乱数生成アルゴリズム952は、本実施形態で使用される擬似乱数生成のアルゴリズムである。鍵付きハッシュアルゴリズム953は、本実施形態で使用される鍵付きハッシュのアルゴリズムである。ストレージ950には、以下のプログラムが格納される。認証暗号化プログラム954は、認証暗号化処理の全体を制御するプログラムである。共通鍵ブロック暗号化モジュール955は、共通鍵ブロック暗号化アルゴリズム951に従って共通鍵ブロック暗号化を実行するモジュールである。擬似乱数生成モジュール956は、擬似乱数生成アルゴリズム952に従って擬似乱数生成を実行するモジュールである。鍵付きハッシュモジュール957は、鍵付きハッシュアルゴリズム953に従って鍵付きハッシュの生成を実行するモジュールである。
なお、図10のRAM940やストレージ950には、認証暗号化部210が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。さらに、認証暗号化部210を含む情報処理装置が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータも図示されていない。
《認証暗号化部の処理手順》
図11は、本実施形態に係る認証暗号化部210の処理手順を示すフローチャートである。このフローチャートは、図10のCPU910がRAM940を使用して実行し、図3の機能構成部を実現する。なお、認証暗号化の処理順序は図11に限定されない。
認証暗号化部210は、ステップS1001において、対象となる平文Mを入力し、初期ベクトルNを生成する。次に、認証暗号化部210は、ステップS1003において、初期ベクトルNを共通鍵ブロック暗号化し、同じ長さの暗号化された初期ベクトルSを得る。次に、認証暗号化部210は、ステップS1005において、暗号化された初期ベクトルSを入力とした擬似ランダム関数の出力である擬似乱数系列Vを得る。
次に、認証暗号化部210は、ステップS1007において、擬似乱数系列Vと平文Mとの排他的論理和を暗号文の左端外のブロック(第1部分CR)とする。次に、認証暗号化部210は、ステップS1009において、第1部分CRから鍵付きハッシュHを生成し、得られた1ブロックの鍵付きハッシュHと暗号化された初期ベクトルSとの排他的論理和を暗号文の左端ブロック(第2部分CL)とする。次に、認証暗号化部210は、ステップS1011において、第2部分CLと第1部分CRとを連結して暗号文Cを求める。そして、最後に、認証暗号化部210は、ステップS1013において、得られた暗号文Cを出力する。なお、第2部分CLは左端である必要はなく、暗号文の一端であるのが望ましい。
《認証復号部の機能構成》
図12は、本実施形態に係る情報処理装置としての認証復号部220の機能構成を示すブロック図である。
認証復号部220は、暗号文入力部1101と、鍵付きハッシュ部1102と、擬似乱数生成部1103と、共通鍵ブロック復号部1104と、初期ベクトル検査部1105と、平文出力部1106と、を備える。なお、認証復号部220は、CPUとメモリとディスクにより実現可能であり、各機能構成部は、プログラムをディスクに格納しておき、このプログラムをCPU上で動作させることにより実現することもできる。
次に、認証復号部220を構成する各機能構成部について説明する。
(暗号文入力部)
暗号文入力部1101は、対象となる暗号文を入力する機能構成部である。これは例えば、キーボードなどの文字入力部、あるいは、平文を記憶する記憶媒体からの読み出し、あるいは、通信媒体を介した受信などにより実現される。そして、暗号文入力部1101は、暗号文Cを第1部分CRと第2部分CLとに分離して出力する。例えば、第2部分CLを暗号文の左端の1ブロックとし、第1部分CRは暗号文の左端外の全ブロックとする。
(鍵付きハッシュ部)
鍵付きハッシュ部1102は、第1部分CRを入力とし、1ブロックの鍵付きハッシュ値Hを出力する機能構成部である。具体的には、鍵付きハッシュ部1102は、可変長の入力から1ブロックの出力を得る擬似ランダム関数であり、認証暗号化部210の鍵付きハッシュ部315と同様の機能構成部で実現できる。
(擬似乱数生成部)
擬似乱数生成部1103は、鍵付きハッシュ部1102の出力するハッシュ値Hと、暗号文の第2部分CLとの排他的論理和による暗号化初期ベクトルSを入力とし、第1部分CRと同じ長さの擬似乱数系列Vを生成する機能構成部である。具体的には、擬似乱数生成部1103は、固定長入力、可変長出力の擬似ランダム関数であり、認証暗号化部210の擬似乱数生成部314と同様の機能構成部で実現できる。
(共通鍵ブロック復号部)
共通鍵ブロック復号部1104は、暗号化初期ベクトルSを復号して初期ベクトルNを得る機能構成部である。具体的には、共通鍵ブロック復号部1104は、認証暗号化部210の共通鍵ブロック暗号化部313で用いたブロック暗号に対応する復号関数により実現できる。
図13は、本実施形態に係る共通鍵ブロック復号部1104の構成例を示す図である。図13は、SPN構造による共通鍵ブロック復号の場合である。
図13において、“Su-1”は逆換字処理を表わし、“Pe-1”は逆転置処理を表わす。
なお、Feistel構造による共通鍵ブロック復号は、鍵を逆順にするのみで、共通鍵ブロック符号化と同様であるので、図示は省略する。また、共通鍵ブロック復号部1104は、共通鍵ブロック暗号化部313に対応するものであればよく、限定はされない。
(初期ベクトル検査部)
初期ベクトル検査部1105は、以下の機能構成部である。第1に、初期ベクトル検査部1105は、共通鍵ブロック復号部1104が出力する初期ベクトルNと、暗号文Cに対して復号側が期待する初期ベクトル期待値N*とを比較検証する。第2に、初期ベクトル検査部1105は、検証結果を2値表現したB(検証合格ならACK(Acknowledge)、検証失敗ならNACK(Negative-ACK))と、次回の暗号文の復号に用いる初期ベクトル期待値N*newとを出力する。復号された初期ベクトルNと初期ベクトル期待値N*とが一致した場合にB=ACK、一致しない場合にB=NACKとする。また、暗号化側が用いる初期ベクトルの更新関数がfであるとすると、B=ACKの場合にはN*new=f(N)と更新し、B=NACKの場合には更新せずにN*new=N*とする。
図14は、本実施形態に係る初期ベクトル検査部1105の構成例を示す図である。
初期ベクトル検査部1105は、初期ベクトル期待値保持部1301と、初期ベクトル比較部1302と、初期ベクトル期待値更新部1303と、を備える。
初期ベクトル期待値保持部1301は、最初の初期ベクトル期待値N*を保持すると共に、それ以降は初期ベクトル期待値更新部1303の出力を保持する。なお、最初の初期ベクトル期待値N*は外部から入力あるいは受信されても、あらかじめ鍵などと同様に保持されていてもよい。初期ベクトル比較部1302は、初期ベクトル期待値保持部1301が保持する現在の初期ベクトル期待値N*と、共通鍵ブロック復号部1104の出力である復号された初期ベクトルNとを比較する。次に、初期ベクトル比較部1302は、その比較の検証結果Bとして、一致すればACKを出力し、一致しなければNACKを出力する。初期ベクトル期待値更新部1303は、検証結果B=ACKの場合は、初期ベクトル期待値N*を+1して初期ベクトル期待値保持部1301に出力する。一方、検証結果B=NACKの場合は、現在の初期ベクトル期待値N*をそのまま初期ベクトル期待値保持部1301に出力して初期ベクトル期待値N*を維持する。
ここで、更新関数fは、典型的にはインクリメント関数f(N)=N+1である。なお、比較検証の方法は、通信路上のパケットロスなどの情報消失に対応する場合、一致の検証だけでなく、閾値tを設けてNとN*との絶対値差がt以内であるかどうかで検証結果Bを定めるとしてもよい。この場合、改ざんを行う攻撃者の成功確率、すなわち不正な暗号文を復号したときの初期ベクトルNの値が偶然N*と近い値になる確率は、およそt/2nとなる。このため、tを十分小さくとることで、情報消失に対応しつつ、改ざんを高い確率で検知することが可能となる。
(平文出力部)
平文出力部1106は、以下の機能構成部である。平文出力部1106は、擬似乱数生成部1103の出力である擬似乱数系列Vと、暗号文Cの第1部分CR(暗号文Cの左端以外の全ブロック)との排他的論理和を平文Mとして、及び初期ベクトル検査部1105が出力する検証結果Bを、入力する。そして、平文出力部1106は、平文出力を許可する信号であるB=ACKであった場合には、検証成功として平文Mを、例えばコンピュータディスプレイやプリンタなどへ出力する。一方、平文出力を停止する信号であるB=NACKであった場合には、平文出力部1106は、検証失敗としてエラーメッセージを出力する。
《認証復号部のハードウェア構成》
図15は、本実施形態に係る認証復号部220のハードウェア構成を示すブロック図である。
図15で、CPU1410は演算制御用のプロセッサであり、プログラムを実行することで図12の機能構成部を実現する。ROM1420は、初期データおよびプログラムなどの固定データを記憶する。また、通信制御部1430は、ネットワークを介して他の装置と通信する。なお、CPU1410は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部1430は、CPU1410とは独立したCPUを含んで、RAM1440の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM1440とストレージ1450との間でデータを転送するDMACを設けるのが望ましい(図示なし)。したがって、CPU1410は、RAM1440にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU1410は、処理結果をRAM1440に準備し、後の送信あるいは転送は通信制御部1430やDMACに任せる。
RAM1440は、CPU1410が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1440には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入力暗号文C1441は、認証復号部220により認証復号される暗号文である。入力暗号文C1441は、第2部分(左端ブロック)CLと第1部分(左端外のブロック)CRとに分離されて読み出される。ハッシュ値H1442は、暗号文の第1部分CRに基づいて生成されたハッシュ値である。第2部分CLとハッシュ値Hとの排他的論理和S1443は、暗号化された初期ベクトルに対応するデータである。擬似乱数系列V1444は、排他的論理和S1443に基づいて生成された擬似乱数である。第1部分CRと擬似乱数Vとの排他的論理和M1445は、復号された平文候補である。復号された初期ベクトルN1446は、排他的論理和S1443から共通鍵ブロック復号された初期ベクトルNである。初期ベクトル期待値N*1447は、入力暗号文C1441から復号される初期ベクトルの期待値である。初期ベクトル検証結果B1448は、復号された初期ベクトルN1446と初期ベクトル期待値N*1447とが一致するか否かの検証結果である。出力平文M1449は、初期ベクトル検証結果B1448が一致(ACK)の場合に出力される平文である。
ストレージ1450には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。共通鍵ブロック復号アルゴリズム1451は、本実施形態で使用される共通鍵ブロック復号のアルゴリズムである。擬似乱数生成アルゴリズム952は、本実施形態で使用される擬似乱数生成のアルゴリズムであり、認証暗号化部210と同様である。鍵付きハッシュアルゴリズム953は、本実施形態で使用される鍵付きハッシュのアルゴリズムであり、認証暗号化部210と同様である。ストレージ1450には、以下のプログラムが格納される。認証復号プログラム1454は、認証復号処理の全体を制御するプログラムである。共通鍵ブロック復号モジュール1455は、共通鍵ブロック復号アルゴリズム1451に従って共通鍵ブロック復号を実行するモジュールである。擬似乱数生成モジュール956は、擬似乱数生成アルゴリズム952に従って擬似乱数生成を実行するモジュールであり、認証暗号化部210と同様である。鍵付きハッシュモジュール957は、鍵付きハッシュアルゴリズム953に従って鍵付きハッシュの生成を実行するモジュールであり、認証暗号化部210と同様である。初期ベクトル検査モジュール1458は、暗号文から復号された初期ベクトルと初期ベクトル期待値とを照合し、一致するか否かに対応する処理を行なうモジュールである。
なお、図15のRAM1440やストレージ1450には、認証復号部220が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。さらに、認証復号部220を含む情報処理装置が含む汎用の機能や他の実現可能な機能に関連するプログラムやデータも図示されていない。
《認証復号部の処理手順》
図16は、本実施形態に係る認証復号部220の処理手順を示すフローチャートである。このフローチャートは、図15のCPU1410がRAM1440を使用して実行し、図12の機能構成部を実現する。なお、認証復号の処理順序は図16に限定されない。
認証復号部220は、ステップS1501において、対象となる暗号文Cを入力する。次に、認証復号部220は、ステップS1503において、暗号文Cを第2部分(左端のブロック)CLと、第1部分(左端以外の全ブロック)CRとに分割する。そして、認証復号部220は、第1部分CRから鍵付きハッシュを生成し、得られた1ブロックのハッシュ値Hと第2部分CLとの排他的論理和をとり、暗号化初期ベクトルSを得る。次に、認証復号部220は、ステップS1505において、暗号化初期ベクトルSを入力とした擬似ランダム関数の出力である擬似乱数系列Vを得る。
次に、認証復号部220は、ステップS1507において、擬似乱数系列Vと第1部分CRとの排他的論理和を復号結果の平文Mの候補とする。次に、認証復号部220は、ステップS1509において、暗号化初期ベクトルSを共通鍵ブロック復号し、同じ長さの初期ベクトルNを復号する。
次に、認証復号部220は、ステップS1511において、暗号文Cから復号した初期ベクトルNと初期ベクトル期待値N*とを比較する。比較結果により、NとN*とが一致するならば、暗号化側の初期ベクトル更新関数fを用いて、次回の復号で用いる初期ベクトル期待値N*newをf(N)に更新し、検証結果B=ACKとする。一方、一致しない場合は、N*newはN*そのままとし、B=NACKとする。最後に、認証復号部220は、ステップS1513において、検証結果B=ACKの場合に、復号された平文Mを出力し、B=NACKの場合に、検証失敗を示すエラーメッセージを出力する。
以上、本実施形態においては、認証暗号化部210と認証復号部220とを独立に説明した。なお、認証暗号化部210と認証復号部220とを共に含む図2の情報処理装置204であれば、擬似乱数生成部(擬似乱数生成モジュール)や鍵付きハッシュ部(鍵付きハッシュモジュール)は、暗号化と復号とで共有できる。さらに、Feistel構造であれば、共通鍵ブロック暗号化部(共通鍵ブロック暗号化モジュール)と共通鍵ブロック復号部(共通鍵ブロック復号モジュール)とを、暗号化と復号とで共有できる。また、排他的論理和を行なう機能構成も、平文と暗号文の第1部分との間で相互に変換する変換部として、あるいは、暗号化初期ベクトルと暗号文の第2部分との間で相互に変換する変換部として、共有できる。
本実施形態によれば、入力長1ブロックにつき、ブロック暗号を1回と有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることにより、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できる。
詳細には、本実施形態においては、非特許文献1に記載のAEROのように、初期ベクトルNと平文Mとを連結し、WPRPと呼ばれる特許文献1に記載のXBCモードで暗号化を行なう。したがって、タグTと初期ベクトルNとを組み合わせた処理が可能となり、帯域の増加は初期ベクトルNの分だけでよい。しかし、この方式では入力長1ブロックにつきブロック暗号を1回と、有限体GF(2n)乗算(ただしnはブロックサイズ)を2回、必要とするため効率が悪い。この効率の悪さは、主に、攻撃者が作成する暗号文についてWPRPがその復号結果全体を予測不能な計算量的乱数とすることに原因する。本実施形態においては、復号結果のうち、検証に用いる初期ベクトルに相当する部分のみ予測不能な計算量的乱数にし、復号における条件を弱めた。その結果、本実施形態においては、入力長1ブロックにつき、ブロック暗号を1回と、有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることが可能となった。すなわち、本実施形態においては、平文1ブロックにつき、擬似乱数生成部でブロック暗号を1回と、鍵付きハッシュ部で有限体GF(2n)乗算を1回、あるいは、擬似乱数生成部でブロック暗号を1回と鍵付きハッシュ部でブロック暗号を1回とを合わせて、ブロック暗号を2回となる。これにより、計算効率は、帯域を削減してもなお、通常のタイプの認証暗号である文献CCMや文献GCMの場合とほぼ同じ程度に改善された。
[第3実施形態]
次に、本発明の第3実施形態に係る認証暗号化システムについて説明する。本実施形態に係る認証暗号化システムは、上記第2実施形態と比べると、異なる手順で認証暗号化を行なう情報処理装置、異なる手順で認証復号を行なう情報処理装置、または、異なる手順で認証暗号化および認証復号を行なう情報処理装置を含む点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《認証暗号化部の機能構成》
図17は、本実施形態に係る情報処理装置としての認証暗号化部1610の機能構成を示すブロック図である。なお、図17において、図3と同様の機能構成部には同じ参照番号を付して、説明を省略する。
図17と図3とを対比すれば分かるように、図17と図3とは機能構成部の接続が異なるのみで、各機能構成部の機能は互いに同様である。すなわち、認証暗号化部1610は、平文入力部311と、初期ベクトル生成部312と、共通鍵ブロック暗号化部313と、擬似乱数生成部314と、鍵付きハッシュ部315と、暗号文出力部316と、を備える。
なお、機能構成部の接続が異なるので、図17の各機能構成部の入力データおよび出力データは、図3の各機能構成部の入力データおよび出力データとは異なるが、その役割は類似であるので、共通の入力データおよび出力データには同じ参照記号を使用する。以下、認証暗号化部1610の動作を説明する。
まず、平文Mが平文入力部311により入力される。そして、鍵付きハッシュ部315が平文Mを入力としてハッシュ値Hを出力する。ハッシュ値Hと初期ベクトル生成部312が出力する初期ベクトルNとを排他的論理和して得たマスク付き初期ベクトルUを、共通鍵ブロック暗号化部313で暗号化することで、暗号文の第2部分(暗号文の左端ブロック)CLを得る。次に、擬似乱数生成部314が第2部分CLを入力として、擬似乱数系列Vを出力する。そして、擬似乱数系列Vと平文Mとを排他的論理和して、暗号文の第1部分(暗号文の左端ブロック外)CRを得る。暗号文出力部316が、第2部分CLと第1部分CRとを連結して暗号文Cを構成し、暗号文Cを例えばコンピュータディスプレイやプリンタなどへ出力する。さらに、記憶媒体への書き込みや通信媒体を介した送信を行なってもよい。
《認証暗号化部の処理手順》
図18は、本実施形態に係る認証暗号化部1610の処理手順を示すフローチャートである。このフローチャートは、図10のCPU910がRAM940を使用して実行し、図17の機能構成部を実現する。なお、図18において、図11と同様のステップには同じステップ番号を付して、説明を省略する。また、認証暗号化の処理順序は図18に限定されない。
認証暗号化部1610は、ステップS1703において、平文Mから鍵付きハッシュ値Hを生成し、得られた1ブロックの鍵付きハッシュ値Hと初期ベクトルNとを排他的論理和して、マスク付き初期ベクトルUとする。次に、認証暗号化部1610は、ステップS1705において、マスク付き初期ベクトルUを共通鍵ブロック暗号化し、暗号文の第2部分(左端ブロック)CLを得る。次に、認証暗号化部1610は、ステップS1707において、第2部分CLを入力として擬似乱数系列Vを得る。そして、認証暗号化部1610は、ステップS1709において、擬似乱数系列Vと平文Mとを排他的論理和して、暗号文の第1部分(左端以外のブロック)CRとする。
《認証復号部の機能構成》
図19は、本実施形態に係る情報処理装置としての認証復号部1820の機能構成を示すブロック図である。なお、図19において、図12と同様の機能構成部には同じ参照番号を付して、説明を省略する。
図19と図12とを対比すれば分かるように、図19と図12とは機能構成部の接続が異なるのみで、各機能構成部の機能は互いに同様である。すなわち、認証復号部1820は、暗号文入力部1101と、鍵付きハッシュ部1102と、擬似乱数生成部1103と、共通鍵ブロック復号部1104と、初期ベクトル検査部1105と、平文出力部1106と、を備える。
なお、機能構成部の接続が異なるので、図19の各機能構成部の入力データおよび出力データは、図12の各機能構成部の入力データおよび出力データとは異なるが、その役割は類似であるので、共通の入力データおよび出力データには同じ参照記号を使用する。以下、認証復号部1820の動作を説明する。
まず、暗号文Cが暗号文入力部1101により入力され、暗号文Cの第2部分(左端ブロック)CLと、第1部分(左端以外の全ブロック)CRとに分離して出力される。擬似乱数生成部1103が、第2部分CLを入力として擬似乱数系列Vを出力する。そして、擬似乱数系列Vと第1部分CRとが排他的論理和され、平文Mの候補とされる。
鍵付きハッシュ部1102が、平文Mを入力としてハッシュ値Hを出力する。共通鍵ブロック復号部1104は、第2部分CLを復号した結果を、マスク付き初期ベクトルUとして出力する。そして、マスク付き初期ベクトルUとハッシュ値Hとが排他的論理和されることで、初期ベクトルNが復号される。次に、初期ベクトル検査部1105が、初期ベクトル期待値N*と復号された初期ベクトルNとを比較し、比較結果に従って、更新された初期ベクトル期待値N*newと、2値の検証結果B(ACKまたはNACK)とを出力する。最後に、平文出力部1106が検証結果Bと平文Mの候補とを用いて、B=ACKの場合には平文Mを、B=NACKの場合にはエラーメッセージを、例えばコンピュータディスプレイやプリンタなどへ出力する。
《認証復号部の処理手順》
図20は、本実施形態に係る認証復号部1820の処理手順を示すフローチャートである。このフローチャートは、図15のCPU1410がRAM1440を使用して実行し、図19の機能構成部を実現する。なお、図20において、図16と同様のステップには同じステップ番号を付して、説明を省略する。また、認証復号の処理順序は図20に限定されない。
認証復号部1820は、ステップS1903において、入力された暗号文Cを第2部分(左端のブロック)CLと、第1部分(左端以外の全ブロック)CRとに分割し、第2部分CLを入力として擬似乱数系列Vを得る。次に、認証復号部1820は、ステップS1905において、擬似乱数系列Vと第1部分CRとを排他的論理和して復号結果の平文Mの候補とする。次に、認証復号部1820は、ステップS1907において、平文Mの候補から鍵付きハッシュ値Hを生成する。そして、認証復号部1820は、ステップS1909において、第2部分CLを共通鍵ブロック復号したマスク付き初期ベクトルUと,ハッシュ値Hとの排他的論理和をとり、初期ベクトルNを復号する。
なお、上記実施形態では、認証符号化と認証復号とを分けて説明したが、図2にも図示したように認証符号化と認証復号とを共に行なう双方向の情報処理装置もある。その場合には、認証符号化と認証復号とで共有できる構成部あるいはモジュールは重複して備える必要はない。
本実施形態によれば、入力長1ブロックにつき、ブロック暗号を1回と有限体GF(2n)乗算を1回、あるいは、ブロック暗号を2回とすることにより、平文長に対する暗号文長の帯域(長さ)の増加が小さい認証暗号を、効率よく実現できる点にある。さらに、初期ベクトルを誤って過去に使われた値と重複させた場合でも、情報の漏洩を防ぐことができる。
すなわち、上記第2実施形態において、鍵付きハッシュ部で用いる可変長入力、固定長出力の関数が文献CMACの“CMAC”や文献Polyの“Poly1305”のように、nbitの内部状態を用いて計算が可能な場合がある。このような場合、暗号化において、平文がブロックごとに逐次的に入力される場合でも、数ブロック分のバッファがあれば逐次的に処理可能であり、メモリ量の観点で効率的である。
本実施形態では、そのような性質を有しないが、その代わりに、暗号化において初期ベクトルを誤って過去に使われた値と重複させた場合でも、暗号文全体は攻撃者からランダムに見えるため、情報の漏洩を防ぐことが可能である。ただし、復号側はこれをリプレイととらえるため、初期ベクトルを正しく設定し直したうえで再送する必要がある。
[他の実施形態]
本発明は、無線もしくは有線のデータ通信における暗号化とメッセージ認証、無線センサーデバイスと情報収集サーバとの通信の保護といった用途にも適用できる。
また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する制御プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
[実施形態の他の表現]
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
を備える情報処理装置。
(付記2)前記初期ベクトル生成手段は、最初は任意の固定値を生成し、2回目以降は直前に生成した初期ベクトルの値に1を加えた値を生成することにより、過去の値と重複がないように前記初期ベクトルを生成する付記1に記載の情報処理装置。
(付記3)前記共通鍵ブロック暗号化手段は、1ブロックの前記初期ベクトルを共通鍵ブロック暗号の暗号化関数により暗号化し、同じ長さの暗号化された初期ベクトルを出力する付記1または2に記載の情報処理装置。
(付記4)前記擬似乱数生成手段は、修正カウンタモード(modified counter mode)または修正OFBモード(modified OFB mode)の固定長入力および可変長出力の擬似ランダム関数により、1ブロックの前記暗号化された初期ベクトルを用いて、前記平文と同じ長さの前記擬似乱数系列を生成する付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)前記鍵付きハッシュ手段は、ブロック暗号を用いるCMAC(cipher-based message authentication code)アルゴリズム、または、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法により、前記第1部分を入力として前記ハッシュ値を出力する付記1乃至4のいずれか1項に記載の情報処理装置。
(付記6)平文を入力する平文入力ステップと、
初期ベクトルを生成する初期ベクトル生成ステップと、
前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラム。
(付記7)平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
を備える情報処理装置。
(付記8)前記初期ベクトル生成手段は、最初は任意の固定値を生成し、2回目以降は直前に生成した初期ベクトルの値に1を加えた値を生成することにより、過去の値と重複がないように前記初期ベクトルを生成する付記7に記載の情報処理装置。
(付記9)前記鍵付きハッシュ手段は、ブロック暗号を用いるCMAC(cipher-based message authentication code)アルゴリズム、または、有限体上の多項式ハッシュとブロック暗号の暗号化とを組み合わせる方法により、前記平文を入力として前記ハッシュ値を出力する付記7または8に記載の情報処理装置。
(付記10)前記共通鍵ブロック暗号化手段は、前記マスク付き初期ベクトルを共通鍵ブロック暗号の暗号化関数により暗号化し、前記第2部分を出力する付記7乃至9のいずれか1項に記載の情報処理装置。
(付記11)前記擬似乱数生成手段は、修正カウンタモード(modified counter mode)または修正OFBモード(modified OFB mode)の固定長入力および可変長出力の擬似ランダム関数により、前記第2部分を用いて、前記平文と同じ長さの前記擬似乱数系列を生成する付記7乃至10のいずれか1項に記載の情報処理装置。
(付記12)平文を入力する平文入力ステップと、
初期ベクトルを生成する初期ベクトル生成ステップと、
前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラム。
(付記13)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
を備える情報処理装置。
(付記14)前記第2部分は前記暗号文の一端の1ブロックであり、前記第1部分は前記暗号文の残りのブロックである付記13に記載の情報処理装置。
(付記15)前記初期ベクトル検査手段は、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合、前記平文の出力を許可する信号を出力すると共に、前記初期ベクトル期待値を次の暗号文に期待される値に更新し、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致しない場合、前記平文の出力を停止する信号を出力すると共に、前記初期ベクトル期待値を維持し、
前記平文出力手段は、前記許可する信号を受信すると前記平文を出力し、前記停止する信号を受信するとエラーメッセージを出力する、付記13または14に記載の情報処理装置。
(付記16)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラム。
(付記17)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
を備える情報処理装置。
(付記18)前記第2部分は前記暗号文の一端の1ブロックであり、前記第1部分は前記暗号文の残りのブロックである付記17に記載の情報処理装置。
(付記19)前記初期ベクトル検査手段は、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合、前記平文の出力を許可する信号を出力すると共に、前記初期ベクトル期待値を次の暗号文に期待される値に更新し、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致しない場合、前記平文の出力を停止する信号を出力すると共に、前記初期ベクトル期待値を維持し、
前記平文出力手段は、前記許可する信号を受信すると前記平文を出力し、前記停止する信号を受信するとエラーメッセージを出力する、付記17に記載の情報処理装置。
(付記20)暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
をコンピュータに実行させる情報処理装置の制御プログラム。
(付記21)初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
暗号化初期ベクトルをブロック復号して初期ベクトルを生成する共通鍵ブロック復号手段と、
前記暗号化された暗号化初期ベクトルを入力として、平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列との排他的論理和により、前記平文と暗号文の第1部分との間で相互に変換する第1変換手段と、
前記暗号文の一部を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値との排他的論理和により、暗号化初期ベクトルと暗号文の第2部分との間で相互に変換する第2変換手段と、
を備え、
前記暗号化初期ベクトルと前記ハッシュ値とを排他的論理和して得た前記暗号文の第2部分と、入力した平文と前記擬似乱数系列とを排他的論理和した前記暗号文の第1部分とを連結して、暗号文として出力する暗号化処理と、
入力した暗号文を前記暗号文の第1部分と前記暗号文の第2部分とに分離して、前記暗号文の第2部分とハッシュ値とを排他的論理和して得た暗号化初期ベクトルをブロック復号して初期ベクトルを生成すると共に、前記暗号文の第1部分と前記擬似乱数系列とを排他的論理和して平文として出力する復号処理と、
を行なう情報処理装置。
(付記22)認証暗号化装置と認証復号装置とを含む認証暗号化システムであって、
前記認証暗号化装置は、
平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
を備え、
前記認証復号装置は、
前記暗号文を入力して、前記暗号文を前記第1部分と前記第2部分とに分離して出力する暗号文入力手段と、
前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
を備える認証暗号化システム。
(付記23)認証暗号化装置と認証復号装置とを含む認証暗号化システムであって、
前記認証暗号化装置は、
平文を入力する平文入力手段と、
初期ベクトルを生成する初期ベクトル生成手段と、
前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
を備え、
前記認証復号装置は、
前記暗号文を入力して、前記暗号文を前記第1部分と前記第2部分とに分離して出力する暗号文入力手段と、
前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
を備える認証暗号化システム。
(付記24)平文と、過去の値と重複がないように生成された初期ベクトルとに基づいて暗号文を生成する認証暗号化方法であって、
前記初期ベクトルを元に共通鍵ブロック暗号化を行ない、暗号化初期ベクトルを生成し、
前記平文から前記暗号文の第1部分を生成するため、前記平文と排他的論理和する擬似乱数を、前記暗号化初期ベクトルを元に生成し、
前記初期ベクトルから前記暗号文の第2部分を生成するため、前記暗号化初期ベクトルの生成における前記初期ベクトルの共通鍵ブロック暗号化に加えて前記初期ベクトルと排他的論理和する鍵付きハッシュ値を、前記平文を元に生成する、
認証暗号化方法。
(付記25)暗号文から、前記暗号文の元となった平文と、前記暗号文の生成に使用された初期ベクトルとを復号する認証復号方法であって、
前記暗号文の第1部分から前記平文を復号するため、前記第1部分と排他的論理和する擬似乱数を、前記暗号文の第2部分を元に生成し、
前記暗号文の第2部分を元に共通鍵ブロック復号を行ない、
前記暗号文の第2部分から前記初期ベクトルを復号するため、前記共通鍵ブロック復号における前記第2部分の共通鍵ブロック復号に加えて前記第2部分と排他的論理和する鍵付きハッシュ値を、前記第1部分を元に生成する、
認証復号方法。
(付記26)付記6、12、16および20のいずれか1つに記載の前記制御プログラムを記録したコンピュータ読み取り可能な非一時的記録媒体。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2014年8月20日に出願された日本出願特願2014−167424を基礎とする優先権を主張し、その開示の全てをここに取り込む。
100 情報処理装置
200 認証暗号化システム
204 情報処理装置
210 認証暗号化部
220 認証復号部
311 平文入力部
312 初期ベクトル生成部
313 共通鍵ブロック暗号化部
314 擬似乱数生成部
315 鍵付きハッシュ部
316 暗号文出力部
401 共通鍵暗号化部E
402 GHash
403 カウンタモード暗号化
404 GHash
405 共通鍵復号部D
910 CPU
940 RAM
941 入力平文M
942 初期ベクトルN
943 初期ベクトルS
944 擬似乱数系列V
945 ハッシュ値H
950 ストレージ
951 共通鍵ブロック暗号化アルゴリズム
952 擬似乱数生成アルゴリズム
953 鍵付きハッシュアルゴリズム
954 認証暗号化プログラム
955 共通鍵ブロック暗号化モジュール
956 擬似乱数生成モジュール
957 鍵付きハッシュモジュール
1101 暗号文入力部
1102 鍵付きハッシュ部
1103 擬似乱数生成部
1104 共通鍵ブロック復号部
1105 初期ベクトル検査部
1106 平文出力部
1301 初期ベクトル期待値保持部
1302 初期ベクトル比較部
1303 初期ベクトル期待値更新部
1410 CPU
1440 RAM
1441 入力暗号文C
1442 ハッシュ値H
1443 排他的論理和S
1444 擬似乱数系列V
1445 排他的論理和M
1446 初期ベクトルN
1448 初期ベクトル検証結果B
1449 出力平文M
1450 ストレージ
1451 共通鍵ブロック復号アルゴリズム
1454 認証復号プログラム
1455 共通鍵ブロック復号モジュール
1458 初期ベクトル検査モジュール
1610 認証暗号化部
1820 認証復号部

Claims (8)

  1. 平文を入力する平文入力手段と、
    初期ベクトルを生成する初期ベクトル生成手段と、
    前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化手段と、
    前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
    前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュ手段と、
    前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力手段と、
    を備える情報処理装置。
  2. 平文を入力する平文入力ステップと、
    初期ベクトルを生成する初期ベクトル生成ステップと、
    前記初期ベクトルを共通鍵ブロック暗号化して暗号化初期ベクトルを生成する共通鍵ブロック暗号化ステップと、
    前記暗号化初期ベクトルを入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
    前記擬似乱数系列と前記平文とを排他的論理和した暗号文の第1部分を入力としてハッシュ値を生成する鍵付きハッシュステップと、
    前記ハッシュ値と前記暗号化初期ベクトルとを排他的論理和した前記暗号文の第2部分と前記第1部分とを連結して暗号文として出力する暗号文出力ステップと、
    をコンピュータに実行させる情報処理装置の制御プログラム。
  3. 平文を入力する平文入力手段と、
    初期ベクトルを生成する初期ベクトル生成手段と、
    前記平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
    前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化手段と、
    前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
    前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力手段と、
    を備える情報処理装置。
  4. 平文を入力する平文入力ステップと、
    初期ベクトルを生成する初期ベクトル生成ステップと、
    前記平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
    前記初期ベクトルと前記ハッシュ値とを排他的論理和したマスク付き初期ベクトルを共通鍵ブロック暗号化し、暗号文の第2部分を生成する共通鍵ブロック暗号化ステップと、
    前記第2部分を入力として、前記平文と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
    前記擬似乱数系列と前記平文とを排他的論理和した前記暗号文の第1部分と前記第2部分とを連結して暗号文として出力する暗号文出力ステップと、
    をコンピュータに実行させる情報処理装置の制御プログラム。
  5. 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
    前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
    前記ハッシュ値と前記暗号文の第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
    前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号手段と、
    前記復号された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
    前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力手段と、
    を備える情報処理装置。
  6. 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
    前記第1部分を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
    前記ハッシュ値と前記第2部分とを排他的論理和して得た暗号化初期ベクトルを入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
    前記暗号化初期ベクトルを共通鍵ブロック復号して、初期ベクトルを生成する共通鍵ブロック復号ステップと、
    前記生成された初期ベクトルと初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
    前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を出力する平文出力ステップと、
    をコンピュータに実行させる情報処理装置の制御プログラム。
  7. 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力手段と、
    前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成手段と、
    前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号手段と、
    前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュ手段と、
    前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査手段と、
    前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力手段と、
    を備える情報処理装置。
  8. 暗号文を入力して、前記暗号文を第1部分と第2部分とに分離して出力する暗号文入力ステップと、
    前記第2部分を入力として、前記第1部分と同じ長さの擬似乱数系列を生成する擬似乱数生成ステップと、
    前記第2部分を共通鍵ブロック復号し、マスク付き初期ベクトルを生成する共通鍵ブロック復号ステップと、
    前記擬似乱数系列と前記第1部分とを排他的論理和して得た平文を入力として、ハッシュ値を生成する鍵付きハッシュステップと、
    前記ハッシュ値と前記マスク付き初期ベクトルとを排他的論理和して復号された初期ベクトルと、初期ベクトル期待値とを入力し、前記復号された初期ベクトルと前記初期ベクトル期待値とが一致するか否かを検査する初期ベクトル検査ステップと、
    前記復号された初期ベクトルと前記初期ベクトル期待値とが一致する場合に、前記平文を出力する平文出力ステップと、
    をコンピュータに実行させる情報処理装置の制御プログラム。
JP2016543814A 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置 Active JP6740902B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014167424 2014-08-20
JP2014167424 2014-08-20
PCT/JP2015/004099 WO2016027454A1 (ja) 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2016027454A1 JPWO2016027454A1 (ja) 2017-06-08
JP6740902B2 true JP6740902B2 (ja) 2020-08-19

Family

ID=55350417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016543814A Active JP6740902B2 (ja) 2014-08-20 2015-08-18 認証暗号化方法、認証復号方法および情報処理装置

Country Status (3)

Country Link
US (1) US10623176B2 (ja)
JP (1) JP6740902B2 (ja)
WO (1) WO2016027454A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10015152B2 (en) * 2014-04-02 2018-07-03 International Business Machines Corporation Securing data in a dispersed storage network
WO2016087395A1 (en) * 2014-12-03 2016-06-09 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
WO2019043921A1 (ja) * 2017-09-01 2019-03-07 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
EP3584991A1 (en) * 2018-06-18 2019-12-25 Koninklijke Philips N.V. Device for data encryption and integrity
US11005663B2 (en) * 2018-08-13 2021-05-11 Seagate Technology Llc Secure audit scheme in a distributed data storage system
CN110995411B (zh) * 2019-11-13 2022-04-26 京东科技控股股份有限公司 加密、解密方法、装置、电子设备及存储介质
CN111600717B (zh) * 2020-05-12 2024-01-12 京东科技信息技术有限公司 基于sm2的解密方法、系统、电子设备及存储介质
CN111865584B (zh) * 2020-07-21 2023-02-28 南方电网科学研究院有限责任公司 基于伪随机数的数据破碎安全传输方法及装置
CN111934847B (zh) * 2020-08-18 2023-11-07 中金金融认证中心有限公司 一种基于des运算功耗获取密码设备密钥的方法
CN112187446B (zh) * 2020-09-25 2024-09-24 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
CN112152805B (zh) * 2020-09-25 2024-07-12 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
US11997189B2 (en) * 2021-02-26 2024-05-28 International Business Machines Corporation Encrypted communication using counter mode encryption and secret keys
US11838424B2 (en) 2021-05-13 2023-12-05 Huawei Technologies Co., Ltd. Authenticated encryption apparatus with initialization-vector misuse resistance and method therefor
CN113821814A (zh) * 2021-09-30 2021-12-21 北京嘀嘀无限科技发展有限公司 模型文件的生成及解析方法、装置、设备和存储介质
TWI819516B (zh) * 2022-03-09 2023-10-21 瑞昱半導體股份有限公司 基於消息驗證的金鑰擴展的處理方法與電路
CN115412244B (zh) * 2022-10-31 2023-03-24 中孚信息股份有限公司 一种加密固件在线更新方法、系统及设备
CN118611885A (zh) * 2024-08-07 2024-09-06 西安邮电大学 一种加密图像双认证方法、系统、设备和介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6410750A (en) 1987-07-02 1989-01-13 Mitsubishi Electric Corp Block encipherment device
JPH10303883A (ja) 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7418100B2 (en) * 2004-10-20 2008-08-26 Cisco Technology, Inc. Enciphering method
US8213611B2 (en) * 2004-11-03 2012-07-03 Broadcom Corporation Two-stage block synchronization and scrambling
JP4750105B2 (ja) * 2005-03-23 2011-08-17 Kddi株式会社 キーストリーム暗号化装置および方法ならびにプログラム
JP5131187B2 (ja) * 2006-03-14 2013-01-30 日本電気株式会社 情報処理システム、情報処理方法および情報処理プログラム
WO2008053650A1 (en) * 2006-10-30 2008-05-08 Nec Corporation Common key block encrypting device, its method, its program, and recording medium
US8090098B2 (en) 2006-11-13 2012-01-03 Electronics And Telecommunications Research Institute Method of generating message authentication code using stream cipher and authentication/encryption and authentication/decryption methods using stream cipher
JP5416544B2 (ja) 2009-10-20 2014-02-12 日本放送協会 データ配信装置、データ受信装置、データ配信プログラム、及び、データ受信プログラム
JP5167374B2 (ja) 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード

Also Published As

Publication number Publication date
JPWO2016027454A1 (ja) 2017-06-08
WO2016027454A1 (ja) 2016-02-25
US20170272239A1 (en) 2017-09-21
US10623176B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
JP6740902B2 (ja) 認証暗号化方法、認証復号方法および情報処理装置
JP6519473B2 (ja) 認証暗号装置、認証暗号方法および認証暗号用プログラム
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
KR101091246B1 (ko) 간단하고 효율적인 원패스 인증 암호화 방법
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
US20150244518A1 (en) Variable-length block cipher apparatus and method capable of format preserving encryption
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
WO2016067524A1 (ja) 認証付暗号化装置、認証付復号装置、認証付暗号システム、認証付暗号化方法、プログラム
KR20140143210A (ko) 암호화 장치, 복호화 장치, 암호화 방법, 복호화 방법, 및 프로그램
US20140044262A1 (en) Low Latency Encryption and Authentication in Optical Transport Networks
Milad et al. Comparative study of performance in cryptography algorithms (Blowfish and Skipjack)
JP5047198B2 (ja) 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム
US20140198912A1 (en) Block Cipher Modes of Non-Malleable Operation
US20170041133A1 (en) Encryption method, program, and system
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
CN103634113B (zh) 一种带用户/设备身份认证的加解密方法及装置
Alenezi et al. On the performance of AES algorithm variants
Zagi et al. A New Key Generation to Greate Enhanced Security Version of AES Encryption Method
JP2014220668A (ja) 送信側装置および受信側装置
حسن رحمة زاجي et al. A New Key Generation to Greate Enhanced Security Version of AES Encryption Method
Sarkar et al. A Survey on the Advanced Encryption Standard (AES): A Pillar of Modern Cryptography
Lei et al. The FCM Scheme for Authenticated Encryption
Jasim A Proposed Intelligent Stream Cipher to Advance Network Security
Singh et al. ENHANCEMENT OF WIRED EQUIVALENT PRIVACY
Narayanan et al. A Comparative Study and Performance Evaluation of Cryptographic Algorithms: AES and Blowfish

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190807

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200421

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200430

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200706

R150 Certificate of patent or registration of utility model

Ref document number: 6740902

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150