IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特許7371757認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
<>
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図1
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図2
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図3
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図4
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図5
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図6
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図7
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図8
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図9
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図10
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図11
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図12
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図13
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図14
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図15
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図16
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図17
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図18
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図19
  • 特許-認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム 図20
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20231024BHJP
   G09C 1/00 20060101ALI20231024BHJP
   H04L 9/06 20060101ALI20231024BHJP
【FI】
H04L9/32 200A
G09C1/00 610Z
H04L9/06 Z
【請求項の数】 9
(21)【出願番号】P 2022502765
(86)(22)【出願日】2020-02-28
(86)【国際出願番号】 JP2020008255
(87)【国際公開番号】W WO2021171543
(87)【国際公開日】2021-09-02
【審査請求日】2022-08-02
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】向井 明子
【審査官】児玉 崇晶
(56)【参考文献】
【文献】国際公開第2016/067524(WO,A1)
【文献】国際公開第2019/163032(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G09C 1/00
H04L 9/06
(57)【特許請求の範囲】
【請求項1】
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成するマスク系列生成手段と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成するタグ用マスク生成手段と、
プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する第一暗号化手段と、
前記平文ブロックを用いて前記平文のチェックサムを算出するチェックサム計算手段と、
プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する第二暗号化手段と、
を備える認証暗号化装置。
【請求項2】
前記マスク系列生成手段は、前記秘密鍵を用いたブロック暗号と前記初期ベクトルとに基づく基本マスクを用いて前記マスク系列を生成し、
前記タグ用マスク生成手段は、前記基本マスクを用いて前記タグ生成用のマスクを生成し、
前記第一暗号化手段は、前記秘密鍵を用いたブロック暗号を前記プリミティブとして用いて前記平文ブロックを暗号化し、
前記第二暗号化手段は、前記秘密鍵を用いたブロック暗号を前記プリミティブとして用いて前記タグを生成する、
請求項1に記載の認証暗号化装置。
【請求項3】
前記マスク系列生成手段は、前記秘密鍵と前記初期ベクトルとの結合の鍵なし暗号学的置換と、前記秘密鍵と前記初期ベクトルとの前記結合との排他的論理をとって得られる基本マスクを用いて前記マスク系列を生成し、
前記タグ用マスク生成手段は、前記基本マスクを用いて前記タグ生成用のマスクを生成し、
前記第一暗号化手段は、前記鍵なし暗号学的置換を前記プリミティブとして用いて前記平文ブロックを暗号化し、
前記第二暗号化手段は、前記鍵なし暗号学的置換を前記プリミティブとして用いて前記タグを生成する、
請求項1に記載の認証暗号化装置。
【請求項4】
前記チェックサム計算手段は、前記平文ブロックの各々および前記マスク系列の要素の各々の排他的論理和によるチェックサムを算出する、
請求項1に記載の認証暗号化装置。
【請求項5】
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成するマスク系列生成手段と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成するタグ用マスク生成手段と、
復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する復号手段と、
前記平文ブロックを用いて平文のチェックサムを算出するチェックサム計算手段と、
前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成するタグ生成手段と、
前記タグを用いて前記復号手段による復号結果の受理または不受理を決定するタグ検査手段と、
を備える認証復号装置。
【請求項6】
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、
プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する工程と、
前記平文ブロックを用いて前記平文のチェックサムを算出する工程と、
プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、
を含む認証暗号化方法。
【請求項7】
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、
復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する工程と、
前記平文ブロックを用いて平文のチェックサムを算出する工程と、
前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、
前記タグを用いて復号結果の受理または不受理を決定する工程と、
を含む認証復号方法。
【請求項8】
コンピュータに
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、
プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する工程と、
前記平文ブロックを用いて前記平文のチェックサムを算出する工程と、
プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、
を実行させるためのプログラム。
【請求項9】
コンピュータに
初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、
前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、
復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する工程と、
前記平文ブロックを用いて平文のチェックサムを算出する工程と、
前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、
前記タグを用いて復号結果の受理または不受理を決定する工程と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラムに関する。
【背景技術】
【0002】
認証暗号とは、事前に共有された秘密鍵を用いて、平文メッセージに対して暗号化と改ざん検知用の認証タグ計算とを適用する技術である。通信路に認証暗号を適用することにより、盗聴に対する内容の秘匿と、不正な改ざんに対する検知が可能となり、結果として通信内容に対する強力な保護が実現される。
認証暗号の例として、非特許文献1に記載のOPP、非特許文献2に記載のOCB、OCB2、および、非特許文献3に記載のOCB2f等が挙げられる。
【先行技術文献】
【非特許文献】
【0003】
【文献】Robert Granger、外3名、"Improved Masking for Tweakable Blockciphers with Applications to Authenticated Encryption"、Proceedings, Part I, of the 35th Annual International Conference on Advances in Cryptology、EUROCRYPT 2016、第9665巻、pp. 263-293、2016年
【文献】Phillip Rogaway、"Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC"、Springer 、ASIACRYPT 2004、Lecture Notes in Computer Science、第3329巻、pp. 16-31、2004年
【文献】Akiko Inoue、外3名、"Cryptanalysis of OCB2: Attacks on Authenticity and Confidentiality"、The International Association for Cryptologic Research (IACR)、 Cryptology ePrint Archive: Report 2019/311、2019年
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したOCB2に代表されるような認証暗号方式では、平文の暗号化に用いるマスク系列とは別に、タグ生成のためにスペシャルマスクと呼ばれるマスクを用意する必要がある。一般に、このスペシャルマスクの定義は困難であるという課題がある。なぜなら、既存手法でスペシャルマスクを定義するためには、一般にガロア体GF(2)上の離散対数問題を解かなければならないからである。
【0005】
有限体上の離散対数問題は一般に解くことが困難とされており、プリミティブの入出力長が大きくなるにつれてスペシャルマスクの定義が、より困難になる。例えば、非特許文献2に記載のOCB2ではプリミティブの入出力長がn=128であり、非特許文献2では、Pohlig-HellmanアルゴリズムとPollardのρ法を用いて数時間で離散対数問題を解いている。これに対し非特許文献1では、n=512とn=1024においてOPPのスペシャルマスクを定義するために、関数体篩法(Function Field Sieve)と呼ばれる最新のアルゴリズムを実装したパソコン(Personal Computer;PC)を数日間稼働させて離散対数問題を解いている。
【0006】
上記の課題が発生する理由について、さらに詳細に述べる。まず、原始元となる元σを決定し、ガロア体GF(2)を、その乗法群の原始元がσとなるように定義する場合を考える。原始元σの決め方は、暗号方式を実装する環境によって、最も暗号化・復号処理において効率的となる元を選べばよい。OCB2の場合は、原始元σの値は2である。
【0007】
平文の暗号化に用いるマスクについては簡単に設定することができる。安全性上の観点から、平文の暗号化に用いるマスクたちは、同一の初期ベクトルにおいては、平文ブロックのインデックスごとに異なる値であればよい。そのため、mブロックの平文の暗号化に用いるマスク系列をΦとすると、Φ=(σ・Δ,σ・Δ,…,σ・Δ)とすればよい。Δ=E(K,N)であり、Nは初期ベクトルを示す。
【0008】
一方、上記でも述べたように、既存手法においてスペシャルマスクを定義することは一般には困難である。既存手法においてスペシャルマスクは、安全性評価方法に起因する理由により、同一の初期ベクトルに対して、タグ生成ブロック以外のブロックで用いられる可能性のあるマスク値全てと異なっている必要がある。また、それに加えて、スペシャルマスクは平文のブロック数に対しても固有である必要がある。つまり、既存手法では平文の暗号化に用いるマスク系列Φのマスクをスペシャルマスクに用いることができない。
【0009】
そこで、スペシャルマスクを定義するために、原始元σ以外の元が、GF(2)の乗法群から選ばれる。スペシャルマスクの定義のために選ばれる元を特別元λと称する。
特別元λの選び方は原始元σの選び方と同様に、暗号方式を実装する環境によって計算が効率的となる元を選べばよい。非特許文献2に記載のOCB2では、特別元λの値は3である。
【0010】
次に、スペシャルマスクを定義するために、特別元λの原始元σに対するGF(2)上の離散対数が計算される。つまり、GF(2)の乗法群上でσα=λとなるαが計算される。αはlogσ(λ)とも表記される。
logσ(λ)の絶対値が(2-1)/2に対して小さすぎる場合、スペシャルマスクの値が平文の暗号化に用いるマスク値と等しくなる可能性が高くなる。このため、logσ(λ)の絶対値が(2-1)/2に対して小さすぎる場合は、特別元λが取り直され、再度離散対数が計算される。非特許文献2に記載のOCB2の場合は、log(3)の絶対値が十分に大きいため、m個の平文ブロックを持つ平文に対するスペシャルマスクを2・3・Δと定義することができる。
【0011】
しかし、既に述べたように、有限体上の離散対数問題を解くことは一般に困難であることが知られている。このため、既存手法によるスペシャルマスクの定義方法は、拡張性に非常に乏しいという課題がある。
例えば非特許文献1では、n=512の場合、および、n=1024の場合にスペシャルマスクの定義に用いることができる特別元の例が提案されている。一方、非特許文献1で定義されているガロア体とは異なる体を用いたい場合、または、異なる元でマスク系列やスペシャルマスクを定義したい場合などには非特許文献1の結果を用いることはできない。
【0012】
本発明の目的の一例は、上記の問題を解決することができる認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラムを提供することである。
【課題を解決するための手段】
【0013】
本発明の第1の態様によれば、認証暗号化装置は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成するマスク系列生成部と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成するタグ用マスク生成部と、プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する第一暗号化部と、前記平文ブロックを用いて前記平文のチェックサムを算出するチェックサム計算部と、プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する第二暗号化部と、を備える。
【0014】
本発明の第2の態様によれば、認証復号装置は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成するマスク系列生成部と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成するタグ用マスク生成部と、復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する復号部と、前記平文ブロックを用いて平文のチェックサムを算出するチェックサム計算部と、前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成するタグ生成部と、前記タグを用いて前記復号部による復号結果の受理または不受理を決定するタグ検査部と、を備える。
【0015】
本発明の第3の態様によれば、認証暗号化方法は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する工程と、前記平文ブロックを用いて前記平文のチェックサムを算出する工程と、プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、を含む。
【0016】
本発明の第4の態様によれば、認証復号方法は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する工程と、前記平文ブロックを用いて平文のチェックサムを算出する工程と、前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、前記タグを用いて復号結果の受理または不受理を決定する工程と、を含む。
【0017】
本発明の第5の態様によれば、プログラムは、コンピュータに初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、プリミティブの入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する工程と、前記平文ブロックを用いて前記平文のチェックサムを算出する工程と、プリミティブの入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、を実行させるためのプログラムである。
【0018】
本発明の第6の態様によれば、プログラムは、コンピュータに初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、前記ガロア体上での乗算を要素とするマスク系列を生成する工程と、前記基本マスクと、前記ガロア体の乗法群の原始元の、前記マスク系列の何れの要素における前記指数とも異なる指数による累乗との、前記ガロア体上での乗算による、タグ生成用のマスクを生成する工程と、復号関数の入力および出力のそれぞれで、前記マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する工程と、前記平文ブロックを用いて平文のチェックサムを算出する工程と、前記復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、前記タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、前記チェックサムを暗号化して認証用のタグを生成する工程と、前記タグを用いて復号結果の受理または不受理を決定する工程と、を実行させるためのプログラムである。
【発明の効果】
【0019】
上記した認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法およびプログラムによれば、認証暗号のタグの生成に用いられるスペシャルマスクを、有限体上の離散対数問題を解くことなく取得できる。
【図面の簡単な説明】
【0020】
図1】第一の実施形態の認証システムの構成例を示すブロック図である。
図2】第一の実施形態の認証暗号化装置の構成例を示すブロック図である。
図3】第一の実施形態の認証暗号化装置の動作を示すフローチャートである。
図4】第一の実施形態の認証復号装置の構成例を示すブロック図である。
図5】第一の実施形態の認証復号装置の動作を示すフローチャートである。
図6】第二の実施形態の認証暗号化装置の構成例を示すブロック図である。
図7】第二の実施形態の認証暗号化装置が行う暗号化の演算例の概略を示す図である。
図8】第二の実施形態の認証復号装置の構成例を示すブロック図である。
図9】第三の実施形態の認証暗号化装置の構成例を示すブロック図である。
図10】第三の実施形態の認証暗号化装置が行う暗号化の演算例の概略を示す図である。
図11】第三の実施形態の認証復号装置の構成例を示すブロック図である。
図12】第四の実施形態の認証暗号化装置の構成例を示すブロック図である。
図13】第四の実施形態の認証暗号化装置が行う暗号化の演算例の概略を示す図である。
図14】第四の実施形態の認証暗号化装置が行う暗号化の演算の変形例の概略を示す図である。
図15】第四の実施形態の認証復号装置の構成例を示すブロック図である。
図16】第五の実施形態の認証暗号化装置の構成例を示す図である。
図17】第六の実施形態の認証復号装置の構成例を示す図である。
図18】第七の実施形態の認証暗号化方法における処理手順の例を示すフローチャートである。
図19】第八の実施形態の認証復号方法における処理手順の例を示すフローチャートである。
図20】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0022】
<第一の実施形態>
第一の実施形態では、プリミティブの入出力において、マスクを用いた排他的論理和の演算を行うTweakable(ツイーカブル)ブロック暗号を用いて平文を暗号化し、プリミティブの入力および出力のうち少なくとも入力において、マスクを用いた排他的論理和の演算を行うTweakableブロック暗号を用いてチェックサムを暗号化する場合の例について説明する。特に、第一の実施形態では、プリミティブの入力および出力のうち入力のみにおいて、マスクを用いた排他的論理和の演算を行うTweakableブロック暗号を用いてチェックサムを暗号化する場合の例について説明する。
【0023】
図1は、第一の実施形態の認証暗号システムの構成例を示すブロック図である。図1に示すように、認証暗号システム1は、認証暗号化装置10と、認証復号装置20と、を備える。
【0024】
認証暗号システム1は、認証暗号を用いて情報の伝達を行う。認証暗号システム1では、認証暗号化装置10が認証暗号を出力する。認証復号装置20は、認証暗号化装置10が出力する暗号文を取得して復号する。認証暗号化装置10と認証復号装置20は、秘密鍵を共有する。認証暗号化装置10と認証復号装置20が共有する秘密鍵をKと表記する。
【0025】
また、暗号化の対象の平文をMとし、さらに初期ベクトル(Initialization Vector;IV)と呼ばれるビット列のデータを導入する。認証暗号システム1が用いる初期ベクトルをNと表記する。認証暗号化装置10が、初期ベクトルNを生成する。すなわち、認証暗号化装置10が、初期ベクトルNの値を決定する。
認証暗号化装置10が行う処理を式(1)のように表すことができる。
【0026】
【数1】
【0027】
AEncは、鍵Kをパラメータとした認証暗号の暗号化関数を示す。Cは暗号文を示す。Tはタグと呼ばれる、改ざん検出用のビット列のデータを示す。
認証暗号化装置10は、初期ベクトルN、暗号文C、および、タグTを認証復号装置20へ送信する。認証暗号化装置10が送信するデータを(N,C,T)と表記する。
【0028】
認証復号装置20が受信した情報を(N’,C’,T’)とすると、認証復号装置20は復号処理としてADec(N’,C’,T’)を計算する。ADecは、鍵Kをパラメータとした認証暗号の復号関数を示す。
通信の途中に改ざんがあり、(N’,C’,T’)≠(N,C,T)となっていた場合、ADec(N’,C’,T’)は改ざんがあったことを示すエラーメッセージを出力する。この場合、認証復号装置20は、改ざんがあったと判定してエラーメッセージを出力する。
改ざんがなく、(N’,C’,T’)=(N,C,T)である場合、ADec(N’,C’,T’)=Mとなる。この場合、認証復号装置20は、暗号文C’を平文Mに正しく復号する。
【0029】
認証暗号システム1が扱う認証暗号は、特定の入出力長をもつ暗号アルゴリズムの組み合わせによって実現される。この暗号アルゴリズムは、特定のビット長の入力データに対し、入力データと同じビット長のデータを出力する。以下、この暗号アルゴリズムを認証暗号におけるプリミティブ(Primitive)と称する。プリミティブの入出力長をnビットとする。nは、n≧1の整数の定数である。
【0030】
プリミティブの例として、ブロック暗号、鍵なしの暗号学的置換、および、Tweakableブロック暗号が挙げられる。
ブロック暗号における暗号化処理では、kビットの秘密鍵Kとnビットの平文Mを入力として、nビットの暗号文Cを出力する。kは、k≧1の整数の定数である。ブロック暗号における暗号化処理をE(K,M)=Cと表記する。
【0031】
鍵なしの暗号学的置換における暗号化処理では、nビットの平文Mを入力として、nビットの暗号文Cを出力する。鍵なしの暗号学的置換における暗号化処理をP(M)=Cと表記する。
Tweakableブロック暗号における暗号化処理では、kビットの秘密鍵K、twビットのTweak(調整値)Tw、および、nビットの平文Mを入力として、nビットの暗号文Cを出力する。twは、tw≧1の整数の定数である。Tweakableブロック暗号における暗号化処理を、TE(K,Tw,M)=C、もしくはTE(Tw,M)と表記する。
【0032】
上記のTweakableブロック暗号は、ブロック暗号Eまたは鍵なしの暗号学的置換Pでも実現される。
例えば、XEX*モードと呼ばれる暗号利用モードを用いることで、全体の鍵をブロック暗号の鍵一つとしてTweakableブロック暗号を実行可能である。XEX*は2種類のTweakableブロック暗号XEXとXEの総称であり、これら2つを適切に使い分けることで1つのTweakableブロック暗号を実現する。
TweakをTw=(i,N)として、XEXを式(2)のように表すことができる。
【0033】
【数2】
【0034】
「+」を円で囲んだ記号で排他的論理和(Exclusive OR;XOR)を示す。排他的論理和の演算子を「XOR」とも記載する。
mult(・,・)は、ガロア体GF(2)上の2つの元の乗算を示す。2はガロア体GF(2)上の2乗を示す。指数iは、i≧1の整数である。
XEを式(3)のように表すことができる。
【0035】
【数3】
【0036】
mult(A,B)をA・Bとも表記する。
またTEMモードと呼ばれる暗号利用モードを用いると、鍵なし暗号学的置換Pと、鍵Kを持つnビット入出力の鍵付き関数Hを用いてTweakableブロック暗号を実行可能である。TEMモードを式(4)のように表すことができる。
【0037】
【数4】
【0038】
HがAXUユニバーサルハッシュ関数である場合、かつ、Hがuniformである場合、式(4)の構成は安全なTweakableブロック暗号を実現する。HがAXUユニバーサルハッシュ関数である場合とは、ランダムに選んだ秘密鍵Kと、任意の異なる2入力XとX’について、確率Pr[H(K,X) XOR H(K,X’)=c]がいかなるnビットのcについても小さい場合である。Hがuniformである場合とは、ランダムに選んだ秘密鍵Kと、任意の入力Xと任意の出力Yに対して、確率Pr[H(K,X)=Y]が十分に小さい場合である。
【0039】
非特許文献2に記載されている認証暗号OCB2は、Tweakableブロック暗号XEX*を用いたレート1の認証暗号方式である。レート1の方式は、平文1ブロックあたりのプリミティブ使用回数が漸近的に1回である方式である。
OCB2では、XEX*をECBモードのように用いることで平文の暗号化を行う。より詳細には、平文Mがm個の128ビットブロックM[1],M[2],…,M[m]で構成される場合、1≦i≦m-1なるi番目の平文ブロックM[i]は、式(5)のように、暗号文ブロックC[i]に暗号化される。
【0040】
【数5】
【0041】
ここで、Δ=E(K,N)である。また、上記の「2」は二進表現で10としても表される。このため、「2」は、式(6)のように定義したガロア体においては多項式表現のxと等価であり、かつGF(2128)の乗法群の原始元である。
【0042】
【数6】
【0043】
一方、M[m]は、式(7)のように、CTRモードの場合と同様に暗号化される。
【0044】
【数7】
【0045】
len(・)は引数の長さ情報をビット列に変換する関数である。上記から分かるように、OCB2において、平文の暗号化に用いられるブロック暗号の入出力マスクは、全てガロア体上2の累乗の値と、初期ベクトルNを暗号化した値の乗算で表される。
【0046】
OCB2では、平文を128ビットごとに区切って排他的論理和を取ったチェックサムを、XEを用いて暗号化し、その結果をタグとする。詳細には、平文Mがm個の128ビットブロックM[1],M[2],…,M[m]からなる場合、チェックサムSUMOCB2は、式(8)のように示される。
【0047】
【数8】
【0048】
タグTOCB2は、式(9)のように示される。
【0049】
【数9】
【0050】
ここで、Δは、式(10)のように示される。
【0051】
【数10】
【0052】
また、式(9)の「3」は二進表現で11としても表されるため、上記の通り定義したガロア体GF(2128)においてはx+1と等価な表現である。上記の式から分かるように、OCB2においてタグ生成に用いられるブロック暗号の入力マスクは、平文の暗号化で用いていたマスク値に3を乗算した値で表される。タグ生成時に用いられるマスクを、スペシャルマスクと称する。
【0053】
[認証暗号化装置の構成の説明]
図2は、第一の実施形態の認証暗号化装置の構成例を示すブロック図である。図2に示されるように、認証暗号化装置10は、平文入力部100と、初期ベクトル生成部101と、マスク生成部102と、第一暗号化部103と、第一計算部104と、第二暗号化部105と、暗号文出力部106と、を備える。マスク生成部102は、マスク系列生成部102-1と、タグ用マスク生成部102-2とを備える。
【0054】
平文入力部100は、暗号化の対象となる平文Mの入力を受け付ける。平文入力部100が、平文Mの入力を受け付ける方法は、特定の方法に限定されない。例えば平文入力部100が、キーボードなどの文字入力装置を備え、平文Mを入力するユーザ操作を受け付けるようにしてもよい。あるいは、平文入力部100が、他の装置から平文Mを受信するようにしてもよい。
【0055】
初期ベクトル生成部101は、過去に生成した値とは異なる初期ベクトルを生成する。例えば、初期ベクトル生成部101が、最初は任意の固定値を初期ベクトルとして出力するようにしてもよい。初期ベクトル生成部101が、2回目以降は直前に生成した初期ベクトルの値を記憶しておき、直前の初期ベクトルの値に1を加えた値を出力するようにしてもよい。この場合、最後に用いた初期ベクトルの値がNのとき、新たな初期ベクトルの値はN’=N+1となる。このとき、初期ベクトルの更新は初期ベクトル更新関数f(N)=N+1を用いて表現できる。初期ベクトルNはnビットのデータであってもよい。初期ベクトルNがnビットよりも短い場合、初期ベクトル生成部101は、初期ベクトルNに対して、nビットのデータにするためのパディングを行う。
【0056】
マスク生成部102は、平文入力部100が出力する平文Mと、初期ベクトル生成部101が出力する初期ベクトルNと、秘密鍵Kを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを出力する。マスク系列生成部102-1がマスク系列Φを生成し、タグ用マスク生成部102-2がマスクδを生成する。平文Mがm個のnビットブロックM[1]、M[2]、…、M[m]から構成される場合、マスク系列Φは、式(11)のように示される。
【0057】
【数11】
【0058】
Δは、初期ベクトルNと秘密鍵Kと定数から一意に定められる基本マスク値を示す。ここでの定数は、TweakとしてTweakableブロック暗号に入力される値を示す。例えば、上記のようにΔ=E(K,N)とする場合、この定数の値を1にする。あるいは、Δ=2・E(K,N)とする場合、この定数の値を2にする。
σは、ガロア体の乗法群の原始元を示す。
マスクδは、式(12)のように示される。
【0059】
【数12】
【0060】
例えば、基本マスク値Δは、秘密鍵Kを用いたブロック暗号Eを用いて、上記の式(10)のように示される。
マスク系列生成部102-1は、マスク系列生成手段の例に該当する。タグ用マスク生成部102-2は、タグ用マスク生成手段の例に該当する。
【0061】
第一暗号化部103は、マスク生成部102が出力するマスク系列Φを用いて、平文入力部100が出力する平文Mを暗号化する。第一暗号化部103は、平文Mの暗号化に、nビット入出力のプリミティブの入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。
【0062】
そして、第一暗号化部103は、平文Mを暗号化した結果を出力する。第一暗号化部103が出力する暗号化結果を、暗号文Cと表記する。第一暗号化部103は、通常のnビットブロック暗号や、鍵なしの暗号学的置換を用いて実現することが可能である。例えば、平文Mがm個のnビットブロックM[1]、M[2]、・・・、M[m]からなり、第一暗号化部103がXEXを用いて平文Mを暗号化する場合、1≦i≦mに対してM[i]を、式(13)のように暗号化できる。
【0063】
【数13】
【0064】
Kは、秘密鍵を示す。Eは、秘密鍵Kを用いたブロック暗号を示す。
あるいは、第一暗号化部103が、TEMなどXEX以外の暗号化方式を用いて平文Mを暗号化するようにしてもよい。
第一暗号化部103は、第一暗号化手段の例に該当する。
【0065】
第一計算部104は、平文入力部100が出力する平文Mから、簡易な計算によってnビットのチェックサムSUMを求める。例えば第一計算部104が、全平文ブロックの排他的論理和(Exclusive OR;XOR)をチェックサムSUMとして算出するようにしてもよい。最終ブロックがnビットに満たない場合、第一計算部104は、適当なパディングを最終ブロックに適用した上で排他的論理和をとる。あるいは、第一計算部104が、排他的論理和の代わりに算術加算、あるいは巡回符号(CRC)などを使用するようにしてもよい。
第一計算部104は、チェックサム計算手段の例に該当する。
【0066】
第二暗号化部105は、第一計算部104が出力するnビット値のチェックサムSUMを、マスク生成部102が出力するマスクδを用いて暗号化する。具体的には、第二暗号化部105は、nビット入出力のプリミティブの入力において、マスクδの値(マスク値)を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いて、チェックサムSUMを暗号化する。
第二暗号化部105は、第二暗号化手段の例に該当する。
【0067】
第二暗号化部105は、暗号化された値を適当な短縮関数によってt≦nなるtビットに変換し、タグTを生成する。例えば、第一暗号化部103がマスク系列Φ=(σ・Δ,σ・Δ,…,σ・Δ)を用いて、XEXによってTweakable暗号化を行った場合は、第二暗号化部105が、マスクδ=σm+1・Δを用いてXEによってTweakableブロック暗号化を行う。短縮関数は、例えば上位tビットのみを出力する関数とすることができる。
上記の例は、式(14)のように表すことができる。
【0068】
【数14】
【0069】
msb(・)は上位tビットを出力する関数を示す。
Tagは、式(15)のように示される。
【0070】
【数15】
【0071】
暗号文出力部106は、第一暗号化部103が出力する暗号文Cと、第二暗号化部105が出力するタグTとを連結し、コンピュータディスプレイやプリンターなどへ出力する。
【0072】
[動作の説明]
図3は、認証暗号化装置10の動作を示すフローチャートである。
(ステップS1)
平文入力部100は、暗号化の対象となる平文Mの入力を受け付ける。
(ステップS2)
初期ベクトル生成部101は、過去に生成した値とは異なる初期ベクトルNを生成する。
【0073】
(ステップS3)
マスク生成部102は、平文入力部100が出力する平文Mと、初期ベクトル生成部101が出力する初期ベクトルNを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを生成する。
【0074】
(ステップS4)
第一暗号化部103は、マスク生成部102が出力するマスク系列Φを用いて、平文入力部100が出力する平文Mを暗号化し、暗号文Cを出力する。第一暗号化部103は、平文Mの暗号化に、nビット入出力のプリミティブの入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。
【0075】
(ステップS5)
第一計算部104は、平文入力部100が出力する平文Mから、簡易な計算によってnビットのチェックサムSUMを求める。
(ステップS6)
第二暗号化部105は、第一計算部104が出力するnビット値のチェックサムSUMを、マスク生成部102が出力するマスクδを用いて暗号化する。具体的には、第二暗号化部105は、nビット入出力のプリミティブの入力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。第二暗号化部105は、暗号化された値を適当な短縮関数によってt≦nなるtビットに変換し、タグTを生成する。
【0076】
(ステップS7)
暗号文出力部106は、第一暗号化部103が出力する暗号文Cと、第二暗号化部105が出力するタグTとを連結し、コンピュータディスプレイやプリンターなどへ出力する。
ステップS7の後、認証暗号化装置10は、図3の処理を終了する。
【0077】
[効果の説明]
以上のように、マスク系列生成部102-1は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成部102-2は、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。第一暗号化部103は、プリミティブの入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する。第一計算部104は、平文ブロックを用いて平文のチェックサムを算出する。第二暗号化部105は、プリミティブの入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。
【0078】
第一の実施形態における認証暗号化装置10では、第二暗号化部105が用いるスペシャルマスクを、有限体上の離散対数問題を解くことなく得られる。
既存手法においては、第一暗号化部103に相当する構成部分で、ガロア体の乗法群の原始元の累乗と初期ベクトルNの暗号化結果によって生成されたマスク系列を用いる。そして、既存手法においては、第二暗号化部105に相当する構成部分で、特別元と、ガロア体の乗法群の原始元の累乗、そして初期ベクトルNの暗号化結果によって生成されたマスクを用いる。ここでいう特別元は、有限体上の離散対数問題を事前に解くことで安全性が保証された元である。
【0079】
認証暗号化装置10では、第一暗号化部103がマスク系列を生成する方法には、既存手法と同様の手法を用いることができる。一方、第二暗号化部105は、特別元を用いず、ガロア体の乗法群の原始元の累乗と初期ベクトルNの暗号化結果に基づいてスペシャルマスクを生成する。したがって、第二暗号化部105は、有限体上の離散対数問題を解くことなくスペシャルマスクを生成することができる。
【0080】
既存手法においては安全性評価方法の制約があるために、本実施形態と同様のことはできない。これに対し、本実施形態では、既存手法とは異なる安全性評価方法を用いることにより、特別元を定義することなくスペシャルマスクを生成することができ、有限体上の離散対数問題を解く必要がない。この効果が得られる主な理由は復号関数に由来するため、詳細な理由は復号装置の効果にて述べる。
【0081】
認証暗号化装置10では、有限体上の離散対数問題を解く必要がない点で、任意の入出力長を持つプリミティブを用いた認証暗号を簡単に構成できる。加えて、認証暗号化装置10では、有限体上の離散対数問題を解く必要がない点で、有限体を定義する既約多項式の自由度が高い。このように、認証暗号化装置10によれば、拡張が容易な認証暗号を構成できる。
【0082】
また、認証暗号化装置10では、既存手法と比較して漸近的安全性は変化しない。加えて、認証暗号化装置10では、暗復号処理の効率性について、特別元を用いることなく原始元の累乗によってスペシャルマスクを得られるため、効率的であると言える。なぜなら、一般に原始元σは暗号方式を実装する環境によって、最も暗号化および復号処理において効率的となるように選ばれているからである。
【0083】
[復号装置の構成の説明]
図4は、第一の実施形態の認証復号装置の構成例を示すブロック図である。図4に示されるように、認証復号装置20は、暗号文入力部200と、初期ベクトル入力部201と、マスク生成部202と、復号部203と、第二計算部204と、第三暗号化部205と、タグ検査部206と、平文出力部207と、を備える。マスク生成部202は、マスク系列生成部202-1と、タグ用マスク生成部202-2とを備える。
【0084】
認証復号装置20は、暗号文C’を復号する。第一の実施形態における暗号文C’は、第一の実施形態の認証暗号化装置10が出力する暗号文Cを、認証復号装置20が取得した暗号文である。暗号文C’は、認証暗号化装置10が送信する暗号文Cを、認証復号装置20が受信した暗号文であってもよい。
例えば、暗号文Cと暗号文C’とが同じであり(すなわち、C’=C)認証復号装置20が復号に成功する場合、認証復号装置20は、暗号文C’を平文Mに正しく復号する。
【0085】
また、認証復号装置20は、認証暗号化装置10が出力するタグTを用いて、暗号文Cが改ざんされていないかを判定する。
暗号文入力部200は、復号の対象となる暗号文CとタグTの入力を受け付ける。暗号文入力部200が、暗号文Cの入力を受け付ける方法は、特定の方法に限定されない。例えば暗号文入力部200がキーボードなどの文字入力装置を備え、暗号文Cを入力するユーザ操作を受け付けるようにしてもよい。あるいは、暗号文入力部200が、認証暗号化装置10など他の装置から暗号文Cを受信するようにしてもよい。
【0086】
初期ベクトル入力部201は、暗号文Cの復号のための初期ベクトルNの入力を受け付ける。初期ベクトル入力部201は、認証暗号化装置が平文Mを復号対象の暗号文Cに暗号化した際に用いた初期ベクトルNを取得する。
初期ベクトル入力部201が初期ベクトルNの入力を受け付ける方法は、特定の方法に限定されない。例えば初期ベクトル入力部201がキーボードなどの文字入力装置を備え、初期ベクトルNを入力するユーザ操作を受け付けるようにしてもよい。あるいは、初期ベクトル入力部201が、認証暗号化装置10など他の装置から初期ベクトルNを受信するようにしてもよい。
【0087】
マスク生成部202は、暗号文入力部200が出力する暗号文Cと、初期ベクトル入力部201が出力する初期ベクトルNと、秘密鍵Kを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを出力する。マスク系列生成部202-1がマスク系列Φを生成し、タグ用マスク生成部202-2が、マスクδを生成する。
マスク生成部202は、第1の実施形態におけるマスク生成部102がマスク系列Φとマスクδを生成する処理と同じ処理を行って、暗号化のときと同じマスク系列Φとマスクδを生成する。
マスク系列生成部202-1は、マスク系列生成手段の例に該当する。タグ用マスク生成部202-2は、タグ用マスク生成手段の例に該当する。
【0088】
復号部203は、マスク生成部202が出力するマスク系列Φを用いて、暗号文入力部200が出力する暗号文Cを復号する。復号部203は、暗号文Cの復号に、nビット入出力のプリミティブの入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。復号部203は、暗号文C’を復号する。認証復号装置20について上述したように、復号部203が復号に成功する場合、復号部203は、暗号文C’を平文Mに正しく復号する。そして、復号部203は、復号した結果を出力する。
復号部203は、復号手段の例に該当する。
【0089】
復号部203は、第1の実施形態における第一暗号化部103による暗号化の逆関数に相当する処理を行うことで復号処理を実行する。例えば、暗号文Cがm個のnビットブロックC[1]、C[2]、…、[m]から構成されており、第一暗号化部103がXEXを用いて暗号化している場合を考える。この場合、1≦i≦mに対してC[i]は、秘密鍵Kを用いたブロック暗号Eに対する復号関数Dを用いて式(16)のように復号できる。
【0090】
【数16】
【0091】
第二計算部204は、復号部203が出力する平文Mから、簡易な計算によってnビットのチェックサムSUMを求める。第二計算部204は、第1の実施形態における第一計算部104がチェックサムSUMを求める処理と同じ処理を行って、チェックサムSUMを求める。
第二計算部204は、チェックサム計算手段の例に該当する。
【0092】
第三暗号化部205は、第二計算部204が出力するnビット値のチェックサムSUMを、マスク生成部202が出力するδを用いて暗号化する。第三暗号化部205は、SUMの暗号化に、nビット入出力のプリミティブの入力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。そして、第三暗号化部205は、暗号化された値を適当な短縮関数によってt≦nなるtビットに変換し、タグT’を生成する。第三暗号化部205は、第1の実施形態における第二暗号化部105がタグTを生成する処理と同じ処理を行って、タグT’を生成する。
第三暗号化部205は、タグ生成手段の例に該当する。
【0093】
タグ検査部206は、暗号文入力部200が出力するタグTと、第三暗号化部205が出力するタグT’を比較する。具体的には、タグ検査部206は、タグTとタグT’が一致するか否かを判定する。
タグTとタグT’が一致すると判定した場合、タグ検査部206は、検証結果をACKに設定する。ACKは、暗号文Cが改ざんされていないことを示す。認証結果をBと表記し、認証結果がACKであることを、B=ACKと表記する。
タグTとタグT’が一致しないと判定した場合、タグ検査部206は、検証結果をNCKに設定する。NCKは、暗号文Cが改ざんされていることを示す。認証結果がNCKであることを、B=NCKと表記する。
タグ検査部206は、検証結果Bを出力する。タグ検査部206は、タグ検査手段の例に該当する。
【0094】
平文出力部207は、復号部203が出力する平文Mと、タグ検査部206が出力する検証結果Bを入力とし、B=ACKの場合は平文Mを出力し、B=NCKの場合はエラーメッセージ⊥を出力する。
平文出力部207が、平文Mまたはエラーメッセージ⊥を出力する方法は、特定の方法に限定されない。例えば、平文出力部207が、平文Mまたはエラーメッセージ⊥をコンピュータディスプレイまたはプリンターなどへ出力するようにしてもよい。あるいは、平文出力部207が、平文Mまたはエラーメッセージ⊥を、他のコンピュータなど他の装置へ送信するようにしてもよい。
【0095】
[動作の説明]
図5は、認証復号装置20の動作を示すフローチャートである。
(ステップS8)
暗号文入力部200は、復号の対象となる暗号文CとタグTの入力を受け付ける。
【0096】
(ステップS9)
初期ベクトル入力部201は、暗号文Cの復号のための初期ベクトルNの入力を受け付ける。
(ステップS10)
マスク生成部202は、暗号文入力部200が出力する暗号文Cと、初期ベクトル入力部201が出力する初期ベクトルNを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを生成する。
【0097】
(ステップS11)
復号部203は、マスク生成部202が出力するマスク系列Φを用いて、暗号文入力部200が出力する暗号文Cを復号し、平文Mを出力する。復号部203は、暗号文Cの復号に、nビット入出力のプリミティブの入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。
【0098】
(ステップS12)
第二計算部204は、復号部203が出力する平文Mから、簡易な計算によってnビットのチェックサムSUMを求める。
(ステップS13)
第三暗号化部205は、第二計算部204が出力するnビット値のチェックサムSUMを、マスク生成部202が出力するマスクδを用いて暗号化する。このとき、SUMの暗号化には、nビット入出力のプリミティブの入力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。そして、暗号化された値を適当な短縮関数によってt≦nなるtビットに変換し、タグT’を生成する。
【0099】
(ステップS14)
タグ検査部206は、暗号文入力部200が出力するタグTと、第三暗号化部205が出力するタグT’が一致するか否かを判定する。タグTとタグT’が一致するとは、タグTの値とタグT’の値が同じ(すなわち、T=T’)であることである。
タグTとタグT’が一致するとタグ検査部206が判定した場合(ステップS14:YES)、処理がステップS15へ進む。
タグTとタグT’が一致しないとタグ検査部206が判定した場合(ステップS14:NO)、処理がステップS17へ進む。
【0100】
(ステップS15)
タグ検査部206は、認証結果をACKに設定する。
(ステップS16)
平文出力部207は、平文Mを出力する。
ステップS16の後、認証復号装置20は、図5の処理を終了する。
【0101】
(ステップS17)
タグ検査部206は、認証結果をNCKに設定する。
(ステップS18)
平文出力部207は、エラーメッセージ⊥を出力する。
ステップS18の後、認証復号装置20は、図5の処理を終了する。
【0102】
[効果の説明]
以上のように、マスク系列生成部202-1は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成部202-2は、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。復号部203は、復号関数の入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する。第二計算部204は、平文ブロックを用いて平文のチェックサムを算出する。第三暗号化部205は、復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。タグ検査部206は、タグを用いて復号部による復号結果の受理または不受理を決定する。
【0103】
認証復号装置20では、第三暗号化部205が用いるスペシャルマスクを、有限体上の離散対数問題を解くことなく生成できる。認証復号装置20では、有限体上の離散対数問題を解く必要がない点で、任意の入出力長を持つプリミティブを用いた認証暗号を簡単に構成できる。加えて認証復号装置20では、有限体上の離散対数問題を解く必要がない点で、有限体を定義する既約多項式の自由度が高い。このように、認証復号装置20によれば、拡張が容易な認証暗号を構成できる。
【0104】
また、認証復号装置20によれば、既存手法と比較して漸近的安全性は変化しない。加えて、認証復号装置20では、暗復号処理の効率性について、特別元を用いることなく原始元の累乗によってスペシャルマスクを得られるため、効率的であると言える。これらの効果は第一の実施形態の認証暗号化装置10における効果と同様である。
【0105】
これらの効果が得られる理由を以下に述べる。既存手法の安全性証明では、証明を簡潔にするため、認証暗号の復号時に検証前のタグが攻撃者に知られることを想定している。なお、認証復号装置20では、第三暗号化部205が出力するタグT’が、検証前のタグに相当する。
この想定のように、仮に、認証暗号の復号時に検証前のタグが攻撃者に知られた場合は、認証暗号化装置10による暗号化および認証復号装置20による復号は安全ではない。
【0106】
しかし、一般的には、攻撃者は検証前のタグは知ることはできず、タグの一致または不一致のみを知ることができると考えられる。そこで、検証前のタグが攻撃者に知られていないとの前提で、認証暗号化装置10および認証復号装置20の安全性を評価する。
【0107】
認証暗号化装置10は、平文の暗号化ではプリミティブの入力と出力において、マスクを用いた排他的論理和の演算を行うTweakableブロック暗号を用いて、チェックサムの暗号化ではプリミティブの入力のみにおいて、マスクを用いた排他的論理和の演算を行うTweakableブロック暗号を用いている。これにより、認証暗号化装置10および認証復号装置20によれば、攻撃者はマスク値を計算することができない。この点で、認証暗号化装置10および認証復号装置20によれば、既存の手法と同等の安全性を得られる。
【0108】
<第二の実施形態>
第二の実施形態では、プリミティブとしてブロック暗号を用い、平文の暗号化にXEXを用い、タグ生成のための暗号化にXEを用いる場合の例について説明する。
[認証暗号化装置の構成の説明]
図6は、第二の実施形態の認証暗号化装置の構成例を示すブロック図である。図6に示されるように、認証暗号化装置10bは、平文入力部100と、初期ベクトル生成部101と、マスク生成部102bと、第一暗号化部103bと、第一計算部104と、第二暗号化部105bと、暗号文出力部106と、を備える。マスク生成部102bは、マスク系列生成部102b-1と、タグ用マスク生成部102b-2とを備える。
【0109】
図6の各部のうち、図2の各部に対応して同様の機能を有する部分には同一の符号(100、101、104、106)を付して説明を省略する。認証暗号化装置10bでは、マスク生成部102b、第一暗号化部103b、第二暗号化部105bの各々が行う演算が、認証暗号化装置10(図2)の場合と異なる。それ以外の点では、認証暗号化装置10bは、認証暗号化装置10と同様である。
【0110】
認証暗号化装置10bと認証復号装置20bは、第一の実施形態の認証暗号化装置10と認証復号装置20とを具体化したもので、OCB(Offset Codebook)に適用することができる。
【0111】
マスク生成部102bは、上記の式(11)に基づいてマスク系列Φを算出し出力する。上記のように、ガロア体の乗法群の原始元をσと表記する。Δは、上記の(10)のように示される。
マスク生成部102bのマスク系列生成部102b-1が、マスク系列Φを生成する。
【0112】
また、マスク生成部102bは、上記の式(12)に基づいてマスクδを算出し出力する。
マスク生成部102bのタグ用マスク生成部102b-2が、タグ用マスクを生成する。
【0113】
第一暗号化部103bは、平文入力部100が出力する平文Mを、マスク生成部102bが出力するマスク系列Φを用いて暗号化する。
第二の実施形態では、第一の実施形態の場合と異なり、平文入力部100が出力する平文Mが、m-1個のnビットブロックM[1]、M[2]、…、M[m-1]と、n’≦nなるn’ビットブロックM[m]の連結で表されるものとする。第一暗号化部103bは、1≦i≦mなるM[i]を、マスク系列Φの元Φ(i)を用いて暗号化する。第一暗号化部103bは、その暗号化に、nビット入出力のブロック暗号の入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。
【0114】
そして、第一暗号化部103bは、M[i]の暗号化結果であるC[i]を得て、m-1個のnビットブロックC[1]、C[2]、…、C[m-1]と、n’≦nなるn’ビットブロックC[m]からなる暗号文Cを生成する。例えば、第一暗号化部103bは、1≦i<mに対するM[i]を、秘密鍵Kを用いたブロック暗号E、および、マスク値Φ(i)を用いて、式(17)のように暗号化する。
【0115】
【数17】
【0116】
次いで、第一暗号化部103bは、M[m]を、引数のビット長情報をnビット値に変換する関数len(・)、秘密鍵K、および、マスク値Φ(m)を用いて、式(18)のように暗号化する。
【0117】
【数18】
【0118】
msbn’(・)は上位n’ビットを出力する関数である。
Padは、式(19)のように示される。
【0119】
【数19】
【0120】
第二暗号化部105bは、第一計算部104が出力するチェックサムSUMを、マスク生成部102bが出力するマスクδを用いて暗号化する。第二暗号化部105bは、チェックサムSUMの暗号化に、nビット入出力のブロック暗号の入力のみにおいて、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。第二暗号化部105bは、チェックサムSUMを、式(20)のように暗号化する。
【0121】
【数20】
【0122】
第二暗号化部105bは、得られたTagを適当な短縮関数によってt≦nなるtビットに変換し、タグTを生成する。例えば短縮関数は、上記の式(14)とすればよい。
【0123】
図7は、認証暗号化装置10bが行う暗号化の演算例の概略を示す図である。図7は、第一暗号化部103b、第一計算部104および第二暗号化部105bが行う演算例の概略を示している。
上述したように、第一暗号化部103bは、1≦i<mに対するM[i]を、上記の式(17)のように暗号化する。
【0124】
認証暗号化装置10の説明で上述したように、第一計算部104は、全平文ブロックの排他的論理和をチェックサムSUMとして算出する。最終ブロックがnビットに満たない場合、第一計算部104は、適当なパディングを最終ブロックに適用した上で排他的論理和をとる。
「0」は、各ビットの値が全て「0」であるnビットのデータを示す。「Pad XOR C[m]0」は、C[m]をビット値「0」でパディングした値とPadの排他的論理和をとることを示す。
【0125】
上述したように、第二暗号化部105bは、チェックサムSUMを式(20)のように暗号化し、得られたTagに上記の式(14)等の短縮関数を適用してタグTを生成する。
【0126】
[認証復号装置の構成の説明]
図8は、第二の実施形態の認証復号装置の構成例を示すブロック図である。図8に示されるように、認証復号装置20bは、暗号文入力部200と、初期ベクトル入力部201と、マスク生成部202bと、復号部203bと、第二計算部204と、第三暗号化部205bと、タグ検査部206と、平文出力部207と、を備える。マスク生成部202bは、マスク系列生成部202b-1と、タグ用マスク生成部202b-2とを備える。
【0127】
図8の各部のうち、図4の各部に対応して同様の機能を有する部分には同一の符号(200、201、204、206、207)を付して説明を省略する。認証復号装置20bでは、マスク生成部202b、復号部203b、第三暗号化部205bの各々が行う演算が、認証復号装置20(図4)の場合と異なる。それ以外の点では、認証復号装置20bは、認証復号装置20と同様である。
【0128】
マスク生成部202bは、認証暗号化装置10b(図6)におけるマスク生成部102bと同じである。マスク系列生成部202b-1は、マスク系列生成部102b-1と同じである。タグ用マスク生成部202b-2は、タグ用マスク生成部102b-2と同じである。
【0129】
復号部203bは、第一暗号化部103bが行う暗号化の逆演算による復号を行う。
第三暗号化部205bは、第二暗号化部105bと同じである。
第三暗号化部205bは、タグ生成部の例に該当する。
【0130】
[効果の説明]
以上のように、マスク系列生成部102b-1は、秘密鍵を用いたブロック暗号と初期ベクトルとに基づく基本マスクを用いてマスク系列を生成する。タグ用マスク生成部102b-2は、基本マスクを用いてタグ生成用のマスクを生成する。第一暗号化部103bは、秘密鍵を用いたブロック暗号をプリミティブとして用いて平文ブロックを暗号化する。第二暗号化部105bは、秘密鍵を用いたブロック暗号をプリミティブとして用いてタグを生成する。
【0131】
第二の実施形態における認証暗号化装置と認証復号装置は、第一の実施形態における認証暗号化装置と、第一の実施形態における認証復号装置と同様の効果を持ち、またその効果は同様の理由によって得られる。既存方式のOCBと比較して、安全性は損なわれることはなく、暗復号処理に関する効率面においても特別元によるマスクの計算(OCBにおいては3倍算)が不要となり、原始元の計算のみ(2倍算のみ)でマスクが計算できるため、本方式の方が効率的となる。加えて、一般に認証暗号において第二暗号化部にあたる構成部分では、平文の最終ブロックM[m]がパディング処理を施されているかどうかによってTweakableブロック暗号のTweakの場合分けを行う必要があるが、第二の実施形態では、最終ブロックのTweakableブロック暗号への入力をlen(M[m])とし、長さ情報を暗号化していることで場合分けにあたる機能を実現している。
【0132】
<第三の実施形態>
第三の実施形態では、プリミティブとして鍵なし暗号学的置換を用い、平文の暗号化にXPXを用いて、タグ生成のための暗号化にXPを用いる場合の例について説明する。第三の実施形態では、タグ長はn/2ビット以下とする。
【0133】
鍵なし暗号学的置換とは、暗号化と復号とで鍵を共有する必要なしに平文を暗号文に置換する技術である。プリミティブに鍵なし暗号学的置換を用いたレート1の方式の例として、TEM(Tweakable Even-Mansour)を用いたOPP(Offset Public Permutation)が挙げられる。TEMを用いたOPPについては、例えば上記の非特許文献1に記載されている。
【0134】
鍵なし暗号学的置換の例として、秘密鍵を固定したブロック暗号を鍵なし暗号学的置換として用いることが挙げられる。例えば、ブロック暗号AESの鍵を事前に0(kは正の整数)と決めて固定しておき、かつそれを公知とするようにしてもよい。
【0135】
あるいは、鍵なし暗号学的置換のもう1つの例として、ハッシュ関数SHA-3で用いられている置換をそのまま鍵なし暗号学的置換として用いることが挙げられる。
ただし、第三の実施形態の認証暗号システムが用いる鍵なし暗号学的置換は、これらに限定されない。
【0136】
[認証暗号化装置の構成の説明]
図9は、第三の実施形態の認証暗号化装置の構成例を示すブロック図である。図9に示されるように、認証暗号化装置10cは、平文入力部100と、初期ベクトル生成部101cと、マスク生成部102cと、第一暗号化部103cと、第一計算部104と、第二暗号化部105cと、暗号文出力部106と、を備える。マスク生成部102cは、マスク系列生成部102c-1と、タグ用マスク生成部102c-2とを備える。
【0137】
図9の各部のうち、図2の各部に対応して同様の機能を有する部分には同一の符号(100、104、106)を付して説明を省略する。認証暗号化装置10bでは、初期ベクトル生成部101c、マスク生成部102c、第一暗号化部103c、第二暗号化部105cの各々が行う演算が、認証暗号化装置10(図2)の場合と異なる。それ以外の点では、認証暗号化装置10cは、認証暗号化装置10と同様である。
【0138】
第三の実施形態における認証暗号化装置10cと認証復号装置20cは、第一の実施形態における認証暗号化装置10と認証復号装置20とを具体化したもので、OPPに適用することができる。
【0139】
初期ベクトル生成部101cは、過去に生成した値とは異なる初期ベクトルを生成する。初期ベクトル生成部101cが用いるプリミティブの入出力長をnビット、秘密鍵の鍵長をkビットとしたとき、初期ベクトルNのビット長はn-kビットのデータであってもよい。初期ベクトルNがn-kビットよりも短い場合、初期ベクトル生成部101cは、初期ベクトルNに対して、n-kビットのデータにするためのパディングを行う。
【0140】
マスク生成部102cは、上記の式(11)に基づいてマスク系列Φを算出し出力する。上記のように、ガロア体の乗法群の原始元をσと表記する。
一方、第三の実施形態では、Δは、式(21)のように示される。
【0141】
【数21】
【0142】
A||Bは文字列A、Bを結合することを示す。Nは初期ベクトル生成部101cが出力する初期ベクトルを示す。Kは秘密鍵を示す。Pは鍵なし暗号学的置換を示す。
【0143】
マスク生成部102cのマスク系列生成部102c-1が、マスク系列Φを生成する。
また、マスク生成部102cは、上記の式(12)に基づいてマスクδを算出し出力する。
マスク生成部102cのタグ用マスク生成部102c-2が、マスクδを生成する。
【0144】
第一暗号化部103cは、平文入力部100が出力する平文Mを、マスク生成部102cが出力するマスク系列Φを用いて暗号化する。
第三の実施形態では、第二の実施形態の場合と同様、平文入力部100が出力する平文Mが、m-1個のnビットブロックM[1]、M[2]、…、M[m-1]と、n’≦nなるn’ビットブロックM[m]の連結で表されるものとする。第一暗号化部103cは、1≦i≦mなるM[i]を、マスク系列Φの元Φ(i)を用いて暗号化する。第一暗号化部103cは、その暗号化に、nビット入出力の鍵なし暗号学的置換の入力と出力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。
【0145】
そして第一暗号化部103cは、M[i]の暗号化結果であるC[i]を得て、m-1個のnビットブロックC[1]、C[2]、…、C[m-1]と、n’≦nなるn’ビットブロックC[m]からなる暗号文Cを生成する。例えば、第一暗号化部103cは、1≦i<mに対するM[i]を、鍵なし暗号学的置換P、マスク値Φ(i)を用いて、式(22)のように暗号化する。
【0146】
【数22】
【0147】
次いで、第一暗号化部103cは、M[m]を、上記の式(18)のように暗号化する。
ただし、第三の実施形態では、Padは、nビット固定値Fix、および、マスク値Φ(m)を用いて、式(23)のように示される。
【0148】
【数23】
【0149】
第二暗号化部105cは、第一計算部104が出力するチェックサムSUMを、マスク生成部102cが出力するマスクδを用いて暗号化する。第二暗号化部105cは、チェックサムSUMの暗号化に、nビット入出力の鍵なし暗号学的置換の入力のみにおいて、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号を用いる。第二暗号化部105cは、チェックサムSUMを、式(24)のように暗号化する。
【0150】
【数24】
【0151】
第二暗号化部105cは、得られたnビット値Tagを適当な分割関数によって、2つのn/2ビット値Tag1とTag2に分割する。第二暗号化部105cは、n’=nのときはT=Tag1とし、n’≠nのときはT=Tag2として、n/2ビットの値のタグTを生成する。例えば、分割関数は、n’=nのときは式(25)とすればよい。
【0152】
【数25】
【0153】
msbn/2(・)は、上位n/2ビットを出力する関数である。
分割関数は、n’≠nのときは式(26)とすればよい。
【0154】
【数26】
【0155】
lsbn/2(・)は、下位n/2ビットを出力する関数である。
【0156】
図10は、認証暗号化装置10cが行う暗号化の演算例の概略を示す図である。図10は、第一暗号化部103c、第一計算部104および第二暗号化部105cが行う演算例の概略を示している。
上述したように、第一暗号化部103cは、1≦i<mに対するM[i]を、上記の式(22)のように暗号化する。
「P」は、鍵なしの暗号学的置換を示す。
【0157】
認証暗号化装置10の説明で上述したように、第一計算部104は、全平文ブロックの排他的論理和をチェックサムSUMとして算出する。最終ブロックがnビットに満たない場合、第一計算部104は、適当なパディングを最終ブロックに適用した上で排他的論理和をとる。
「0」は、各ビットの値が全て「0」であるnビットのデータを示す。「Pad XOR C[m]0」は、C[m]をビット値「0」でパディングした値とPadの排他的論理和をとることを示す。
【0158】
上述したように、第二暗号化部105cは、チェックサムSUMを式(24)のように暗号化し、得られたTagに式(25)または式(26)等の分割関数を適用してタグTを生成する。
「パディング無」は、平文最終ブロックM[m]がnビットの場合の分割関数を示す。「パディング有」は、平文最終ブロックM[m]がnビット未満の場合の分割関数を示す。
【0159】
[認証復号装置の構成の説明]
図11は、第三の実施形態の認証復号装置の構成例を示すブロック図である。図11に示されるように、認証復号装置20cは、暗号文入力部200と、初期ベクトル入力部201と、マスク生成部202cと、復号部203cと、第二計算部204と、第三暗号化部205cと、タグ検査部206と、平文出力部207と、を備える。マスク生成部202cは、マスク系列生成部202c-1と、タグ用マスク生成部202c-2とを備える。
【0160】
図11の各部のうち、図4の各部に対応して同様の機能を有する部分には同一の符号(200、201、204、206、207)を付して説明を省略する。認証復号装置20cでは、マスク生成部202c、復号部203c、第三暗号化部205cの各々が行う演算が、認証復号装置20(図4)の場合と異なる。それ以外の点では、認証復号装置20bは、認証復号装置20と同様である。
【0161】
マスク生成部202cは、認証暗号化装置10c(図9)におけるマスク生成部102cと同様である。マスク系列生成部202c-1は、マスク系列生成部102c-1と同様である。タグ用マスク生成部202c-2は、タグ用マスク生成部102c-2と同様である。
【0162】
復号部203cは、第一暗号化部103cが行う暗号化の逆演算による復号を行う。
第三暗号化部205cは、第二暗号化部105cと同じである。
第三暗号化部205cは、タグ生成部の例に該当する。
【0163】
[効果の説明]
以上のように、マスク系列生成部102c-1は、秘密鍵と初期ベクトルとの結合の鍵なし暗号学的置換と、秘密鍵と初期ベクトルとの結合との排他的論理をとって得られる基本マスクを用いてマスク系列を生成する。タグ用マスク生成部102c-2は、基本マスクを用いてタグ生成用のマスクを生成する。第一暗号化部103cは、鍵なし暗号学的置換をプリミティブとして用いて平文ブロックを暗号化する。第二暗号化部105cは、鍵なし暗号学的置換をプリミティブとして用いてタグを生成する。
【0164】
第三の実施形態における認証暗号化装置と認証復号装置は、第一の実施形態における認証暗号化装置と認証復号装置と同様の効果を持ち、またその効果は同様の理由によって得られる。また、一般に認証暗号において第二暗号化部にあたる構成部分では、平文の最終ブロックM[m]がパディング処理を施されているかどうかによってTweakableブロック暗号のTweakの場合分けを行う必要がある。しかし第三の実施形態ではタグ長がn/2ビットであるため、認証暗号化装置の第二暗号化部において分割関数を用いることで場合分けを実現できる。Tweakの場合分けよりも、暗号化によって得られたnビットを2つに分割して場合分けを行う方が、より効率的である。
【0165】
<第四の実施形態>
第四の実施形態では、プリミティブ、Tweakableブロック暗号、タグ長のいずれも特定のものに制限されない例について説明する。第四の実施形態では、平文の暗号化の方法、および、タグ生成のための暗号化の方法として、例えばOCBまたはOPPを用いることができる。
【0166】
[認証暗号化装置の構成の説明]
図12は、第四の実施形態の認証暗号化装置の構成例を示すブロック図である。図12に示されるように、認証暗号化装置30は、平文入力部300と、初期ベクトル生成部301と、マスク生成部302と、第一暗号化部303と、第一計算部304と、第二暗号化部305と、暗号文出力部306とを備える。マスク生成部302は、マスク系列生成部302-1と、タグ用マスク生成部302-2とを備える。
【0167】
平文入力部300は、暗号化の対象となる平文Mの入力を受け付ける。用いるプリミティブの入出力長をnビットとして、平文入力部300は、m≦n-2なるm-1個のnビットブロックM[1]、M[2]、…、M[m-1]と、n’≦nなるn’ビットブロックM[m]から構成される平文Mの入力を受け付ける。
平文入力部300が、平文Mの入力を受け付ける方法は、特定の方法に限定されない。例えば平文入力部300が、キーボードなどの文字入力装置を備え、平文Mを入力するユーザ操作を受け付けるようにしてもよい。あるいは、平文入力部300が、他の装置から平文Mを受信するようにしてもよい。
【0168】
初期ベクトル生成部301は、過去に生成した値とは異なる初期ベクトルを生成する。初期ベクトル生成部301は、認証暗号化装置10(図2)における初期ベクトル生成部101と同じである。
マスク生成部302は、平文入力部300が出力する平文Mと、初期ベクトル生成部301が出力する初期ベクトルNと、秘密鍵Kを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを出力する。マスク生成部302は、マスク生成部102と同じである。マスク系列生成部302-1は、マスク系列生成部102-1と同じである。タグ用マスク生成部302-2は、タグ用マスク生成部102-2と同じである。
例えば、基本マスク値Δは、次のように実現できる。用いるプリミティブがブロック暗号Eの場合は、Δは上記の式(10)のようにすることができる。
一方、用いるプリミティブが鍵なし暗号学的置換Pの場合は、Δは上記の式(21)のようにすることができる。
マスク系列生成部302-1は、マスク系列生成手段の例に該当する。タグ用マスク生成部102-2は、タグ用マスク生成手段の例に該当する。
【0169】
第一暗号化部303は、マスク生成部302が出力するマスク系列Φを用いて、平文入力部300が出力する平文Mを暗号化する。第一暗号化部303は、第一暗号化部103と同じである。
第一暗号化部303は、第一暗号化手段の例に該当する。
第一計算部304は、平文入力部300が出力する平文Mと、マスク生成部302が出力するマスク系列Φから、排他的論理和によってnビットのチェックサムSUMを求める。つまりチェックサムSUMは、式(27)のように示される。
【0170】
【数27】
【0171】
もし平文最終ブロックがnビットに満たない場合は、適当なパディングを最終ブロックに適用した上でXORをとればよい。
第一計算部304は、チェックサム計算手段の例に該当する。
第二暗号化部305は、第一計算部304が出力するSUMを、マスク生成部302が出力するマスクδを用いて暗号化する。このとき、SUMの暗号化には、nビット入出力のプリミティブの入力および出力のうち少なくとも入力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号TEを用いる。そしてSUMは、式(28)のように暗号化される。
【0172】
【数28】
【0173】
そして、第二暗号化部305は、得られたTagを適当な短縮関数によってt≦nなるtビットに変換し、タグTを生成する。
第二暗号化部305は、第二暗号化手段の例に該当する。
【0174】
図13は、認証暗号化装置30が行う暗号化の演算例の概略を示す図である。図13は、第一暗号化部303、第一計算部304および第二暗号化部305が行う演算例の概略を示している。
上述したように、第一暗号化部303は、第一の実施形態の第一暗号化部103と同様である。第一暗号化部303は、1≦i<mに対するM[i]を、上記の式(13)のように暗号化する。
【0175】
上述したように、第一計算部304は、式27に基づいてチェックサムSUMを算出する。最終ブロックM[m]がnビットに満たない場合、第一計算部104は、適当なパディングを最終ブロックに適用し、さらにΦ(m)との排他的論理和をとった上で、M[1]からM[m-1]に基づく演算結果との排他的論理和をとる。
【0176】
上述したように、第二暗号化部305は、SUMを式(28)のように暗号化する。このとき、上述したように、第二暗号化部305は、SUMの暗号化に、プリミティブの入力および出力のうち少なくとも入力において、マスク値を用いた排他的論理和の演算を行うことで実現されるTweakableブロック暗号TEを用いる。図13では、第二暗号化部305が、プリミティブの入力および出力の両方で、排他的論理和の演算を行う場合の例を示している。
【0177】
認証暗号化装置30が行う暗号化の演算の変形例の概略を示す図である。図14は、図13の演算の変形例を示している。
図14の演算では、第一計算部304がSUMの計算の際に、Φ(i)の排他的論理和をとることに代えて、第二暗号化部305が、マスクδと、Φ(1)からΦ(m)との排他的論理和をとっている。
【0178】
[認証復号装置の構成の説明]
図15は、第四の実施形態の認証復号装置の構成例を示すブロック図である。
図15に示されるように、認証復号装置40は、暗号文入力部400と、初期ベクトル入力部401と、マスク生成部402と、復号部403と、第二計算部404と、第三暗号化部405と、タグ検査部406と、平文出力部407と、を備える。マスク生成部402は、マスク系列生成部402-1と、タグ用マスク生成部402-2とを備える。
【0179】
暗号文入力部400は、用いるプリミティブの入出力長をnビットとしたとき、m≦n-2なるm-1個のnビットブロックC[1]、C[2]、…、C[m-1]と、n’≦nなるn’ビットブロックC[m]からなる暗号文CとタグTを入力する。これは例えばキーボードなどの文字入力装置により実現される。
【0180】
初期ベクトル入力部401は、対象となる初期ベクトルNを入力する。初期ベクトル入力部401は、第一の実施形態の認証復号装置における初期ベクトル入力部201と同じである。
マスク生成部402は、暗号文入力部400が出力する暗号文Cと、初期ベクトル入力部401が出力する初期ベクトルNと、秘密鍵Kを用いて、ガロア体の乗法群の原始元の累乗によって生成されるマスク系列Φとマスクδを出力する。マスク生成部402は、第四の実施形態の認証暗号化装置におけるマスク生成部302と同じである。マスク系列生成部402-1は、マスク系列生成部302-1と同じである。タグ用マスク生成部402-2は、タグ用マスク生成部302-2と同じである。
マスク系列生成部402-1は、マスク系列生成手段の例に該当する。タグ用マスク生成部402-2は、タグ用マスク生成手段の例に該当する。
【0181】
復号部403は、マスク生成部402が出力するマスク系列Φを用いて、暗号文入力部400が出力する暗号文Cを復号し、平文Mを出力する。復号部403は、第一の実施形態の認証復号装置における復号部203と同じである。
復号部403は、復号手段の例に該当する。
【0182】
第二計算部404は、復号部403が出力する平文Mと、マスク生成部402が出力するマスク系列Φから、簡易な計算によってnビットのチェックサムSUMを求める。第二計算部404は、第四の実施形態における第一計算部304と同じである。
第二計算部404は、チェックサム計算手段の例に該当する。
【0183】
第三暗号化部405は、第二計算部404が出力するSUMを、マスク生成部402が出力するマスクδを用いて暗号化し、タグT‘を出力する。第三暗号化部405は、第四の実施形態の認証暗号化装置における第二暗号化部305と同じである。
第三暗号化部405は、タグ生成手段の例に該当する。
【0184】
タグ検査部406は、暗号文入力部400が出力するタグTと、第三暗号化部405が出力するタグT’を比較する。TとT’が一致した場合にB=ACK、一致しない場合にB=NCKと設定し、検証結果Bを出力する。タグ検査部406は、第一の実施形態の認証復号装置におけるタグ検査部206と同じである。
タグ検査部406は、タグ検査手段の例に該当する。
【0185】
平文出力部407は、復号部403が出力する平文Mと、タグ検査部406が出力する検証結果Bを入力とし、B=ACKの場合は平文Mを、B=NCKの場合はエラーメッセージ⊥をコンピュータディスプレイやプリンターなどへ出力する。平文出力部407は、第一の実施形態の認証復号装置における平文出力部207と同じである。
【0186】
[効果の説明]
以上のように、第一計算部304は、平文ブロックの各々およびマスク系列の要素の各々の排他的論理和によるチェックサムを算出する。
第四の実施形態における認証暗号化装置と認証復号装置は、第一の実施形態における認証暗号化装置と認証復号装置と同様の効果を持つ。しかし、効果が得られる理由は第一の実施形態や第二の形態と異なるため、以下でその理由を述べる。第一の実施形態では、既存方式で用いられている安全性証明方法を変更することにより、特別元を定義することなくスペシャルマスクを決定できていたが、本実施形態では、既存方式で用いられている安全性証明方法を変更せず、処理するデータ量に制限を付けることで安全性を証明することができる。ガロア体GF(2^n)の原始元をσとしたとき、既存方式で用いられている安全性証明方法によれば、式(29)で定めるマスク関数が単射であれば、安全性が証明できる。
【0187】
【数29】
【0188】
平文処理で用いるマスクは、式(30)のように示される。
【0189】
【数30】
【0190】
タグ生成ブロックで用いられるマスクは、式(31)のように示される。
【0191】
【数31】
【0192】
ただし、(GF(2))*はGF(2)の乗法群を表す。そしてここで、ガロア体の定義より、その乗法群の基底は式(32)のようであるとしてよい。
【0193】
【数32】
【0194】
つまり、任意の(GF(2^n))*の元は1、σ、σ、…、σn-1の線形和によって表せる。このことから、上記のマスク関数は単射であることが容易に分かる。
本実施形態では、平文処理ブロック、つまり認証暗号化装置における第一暗号化部および認証復号装置における復号部でマスク値Φ(i)=σが用いられており、上記のマスク関数と同様である。一方、タグ生成ブロック、つまり認証暗号化装置における第二暗号化部および認証復号装置における第三暗号化部ではマスク値δ=σm+1が用いられており、一見上記のマスク関数と異なるように見える。
【0195】
しかし、認証暗号化装置における第一計算部および認証復号装置における第二計算部では、チェックサムSUMにマスク系列Φの元全ての排他的論理和が含まれるように計算されている。排他的論理和は可換であるため、これより本実施形態においてタグ生成ブロックで用いるマスク値は、式(33)と表記することができる。
【0196】
【数33】
【0197】
つまり、本実施形態で用いているマスクは、上記の式(29)のマスク関数と同視することができる。これにより、本実施形態は認証暗号として安全であることが証明できる。つまり、既存方式では、用いるマスク関数の単射性を有限体上の離散対数問題を解くことでしか証明できなかった。これに対し、本実施形態では、マスク関数の定義域を制限することにより、有限体上の離散対数問題を解くことなく、数学的にマスク関数の単射を容易に示すことができる。
【0198】
また、第二、第三の実施形態と同様に、既存方式のOCBやOPPと比較して、安全性が損なわれることはない。暗復号処理に関する効率面においては、第四の実施形態における認証暗号化装置と認証復号装置は、マスク関数のみ参照すると、タグを生成する際に平文処理で用いたマスクを全て用いている。そのため、一見すると暗復号処理に用いるメモリサイズ(ステートサイズと呼ばれる)が増えてしまうように思われる。
【0199】
しかし、図9の例や、第四の実施形態の構成の説明で述べたように、SUMを計算する際に、平文ブロックと一緒にマスク値もXORするようにすればよいため、ステートサイズは既存方式と変わらない。そして特別元によるマスクの計算(OCBにおいては3倍算)が不要となり、原始元の計算のみ(2倍算のみ)でマスクが計算できるため、既存方式よりも本方式の方が効率的であると言える。
【0200】
<第五の実施形態>
図16は、第五の実施形態の認証暗号化装置の構成例を示す図である。図16に示すように、認証暗号化装置50は、マスク系列生成部501と、タグ用マスク生成部502と、第一暗号化部503と、チェックサム計算部504と、第二暗号化部505とを備える。
【0201】
マスク系列生成部501は、マスク系列生成手段の例に該当する。タグ用マスク生成部502は、タグ用マスク生成手段の例に該当する。第一暗号化部503は、第一暗号化手段の例に該当する。チェックサム計算部504は、チェックサム計算手段の例に該当する。第二暗号化部505は、第二暗号化手段の例に該当する。
【0202】
かかる構成で、マスク系列生成部501は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成部502は、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。第一暗号化部503は、プリミティブの入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する。チェックサム計算部504は、平文ブロックを用いて平文のチェックサムを算出する。第二暗号化部505は、プリミティブの入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。
これにより、認証暗号化装置50では、第二暗号化部505がチェックサムの暗号化に用いるマスクを、有限体上の離散対数問題を解くことなく生成できる。
【0203】
<第六の実施形態>
図17は、第六の実施形態の認証復号装置の構成例を示す図である。図17に示すように、認証復号装置60は、マスク系列生成部601と、タグ用マスク生成部602と、復号部603と、チェックサム計算部604と、タグ生成部605と、タグ検査部606とを備える。
【0204】
マスク系列生成部601と、マスク系列生成手段の例に該当する。タグ用マスク生成部602は、タグ用マスク生成手段の例に該当する。復号部603は、復号手段の例に該当する。チェックサム計算部604は、チェックサム算出手段の例に該当する。タグ生成部605は、タグ生成手段の例に該当する。タグ検査部606は、タグ検査手段の例に該当する。
【0205】
かかる構成で、マスク系列生成部601は、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成部602は、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。復号部603は、復号関数の入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する。チェックサム計算部604は、平文ブロックを用いて平文のチェックサムを算出する。タグ生成部605は、復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。タグ検査部606は、タグを用いて復号部による復号結果の受理または不受理を決定する。
これにより認証復号装置60では、タグ生成部605がチェックサムの暗号化に用いるマスクを、有限体上の離散対数問題を解くことなく生成できる。
【0206】
<第七の実施形態>
図18は、第七の実施形態の認証暗号化方法における処理手順の例を示すフローチャートである。
図18の認証暗号化方法は、マスク系列生成工程(ステップS101)と、タグ用マスク生成工程(ステップS102)と、平文暗号化工程(ステップS103)と、チェックサム算出工程(ステップS104)と、タグ生成工程(ステップS105)とを含む。
【0207】
マスク系列生成工程(ステップS101)では、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成工程(ステップS102)では、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。平文暗号化工程(ステップS103)では、プリミティブの入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、平文を暗号化する。チェックサム算出工程(ステップS104)では、平文ブロックを用いて平文のチェックサムを算出する。タグ生成工程(ステップS105)では、プリミティブの入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。
図18の認証暗号化方法によれば、チェックサムの暗号化に用いるマスクを、有限体上の離散対数問題を解くことなく生成できる。
【0208】
<第八の実施形態>
図19は、第八の実施形態の認証復号方法における処理手順の例を示すフローチャートである。
図19の認証復号方法は、マスク系列生成工程(ステップS201)と、タグ用マスク生成工程(ステップS202)と、暗号文復号工程(ステップS203)と、チェックサム算出工程(ステップS204)と、タグ生成工程(ステップS205)と、タグ検査工程(ステップS206)とを含む。
【0209】
マスク系列生成工程(ステップS201)では、初期ベクトル、秘密鍵、および、定数に基づいて定められる基本マスクと、ガロア体の乗法群の原始元の、平文ブロック毎に異なる指数による累乗との、ガロア体上での乗算を要素とするマスク系列を生成する。タグ用マスク生成工程(ステップS202)では、基本マスクと、ガロア体の乗法群の原始元の、マスク系列の何れの要素における指数とも異なる指数による累乗との、ガロア体上での乗算による、タグ生成用のマスクを生成する。暗号文復号工程(ステップS203)では、復号関数の入力および出力のそれぞれで、マスク系列の要素を用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、暗号ブロックを平文ブロックに復号する。チェックサム算出工程(ステップS204)では、平文ブロックを用いて平文のチェックサムを算出する。タグ生成工程(ステップS205)では、復号関数の逆関数である暗号化関数の入力および出力のうち少なくとも入力において、タグ生成用のマスクを用いた排他的論理和の演算を行うツイーカブルブロック暗号を用いて、チェックサムを暗号化して認証用のタグを生成する。タグ検査工程(ステップS206)では、タグを用いて復号結果の受理または不受理を決定する。
図19の認証復号方法によれば、チェックサムの暗号化に用いるマスクを、有限体上の離散対数問題を解くことなく生成できる。
【0210】
図20は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
図20に示す構成で、コンピュータ700は、CPU(Central Processing Unit)710と、主記憶装置720と、補助記憶装置730と、インタフェース740とを備える。
【0211】
上記の認証暗号化装置10、10b、10c、30、50、認証復号装置20、20b、20c、40、60のうち何れか1つ以上が、コンピュータ700に実装されてもよい。その場合、上述した各処理部の動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って上記処理を実行する。また、CPU710は、プログラムに従って、上述した各記憶部に対応する記憶領域を主記憶装置720に確保する。
【0212】
認証暗号化装置10がコンピュータ700に実装される場合、初期ベクトル生成部101と、マスク生成部102と、第一暗号化部103と、第一計算部104と、第二暗号化部105との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0213】
平文入力部100による平文の入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
暗号文出力部106による暗号文およびタグの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0214】
認証暗号化装置10bがコンピュータ700に実装される場合、初期ベクトル生成部101と、マスク生成部102bと、第一暗号化部103bと、第一計算部104と、第二暗号化部105bとの動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0215】
平文入力部100による平文の入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
暗号文出力部106による暗号文およびタグの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0216】
認証暗号化装置10cがコンピュータ700に実装される場合、初期ベクトル生成部101cと、マスク生成部102cと、第一暗号化部103cと、第一計算部104と、第二暗号化部105cとの動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0217】
平文入力部100による平文の入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
暗号文出力部106による暗号文およびタグの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0218】
認証暗号化装置30がコンピュータ700に実装される場合、初期ベクトル生成部301と、マスク生成部302と、第一暗号化部303と、第一計算部304と、第二暗号化部305との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0219】
平文入力部300による平文の入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
暗号文出力部306による暗号文およびタグの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0220】
認証復号装置20がコンピュータ700に実装される場合、初期ベクトル入力部201と、マスク生成部202と、復号部203と、第二計算部204と、第三暗号化部205と、タグ検査部206との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0221】
暗号文入力部200による暗号文およびタグの入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
平文出力部207による平文またはエラーメッセージの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0222】
認証復号装置20bがコンピュータ700に実装される場合、初期ベクトル入力部201と、マスク生成部202bと、復号部203bと、第二計算部204と、第三暗号化部205bと、タグ検査部206との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0223】
暗号文入力部200による暗号文およびタグの入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
平文出力部207による平文またはエラーメッセージの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0224】
認証復号装置20cがコンピュータ700に実装される場合、初期ベクトル入力部201と、マスク生成部202cと、復号部203cと、第二計算部204と、第三暗号化部205cと、タグ検査部206との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0225】
暗号文入力部200による暗号文およびタグの入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
平文出力部207による平文またはエラーメッセージの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0226】
認証復号装置40がコンピュータ700に実装される場合、初期ベクトル入力部401と、マスク生成部402と、復号部403と、第二計算部404と、第三暗号化部405と、タグ検査部406との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0227】
暗号文入力部400による暗号文およびタグの入力の受付は、インタフェース740が、例えば通信機能またはユーザ操作受付機能等の入力機能を有し、CPU710の制御に従って入力処理を行うことで実行される。
平文出力部407による平文またはエラーメッセージの出力は、インタフェース740が、例えば通信機能または表示機能等の出力機能を有し、CPU710の制御に従って出力処理を行うことで実行される。
【0228】
認証暗号化装置50がコンピュータ700に実装される場合、マスク系列生成部501と、タグ用マスク生成部502と、第一暗号化部503と、チェックサム計算部504と、第二暗号化部505との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0229】
認証復号装置60がコンピュータ700に実装される場合、マスク系列生成部601と、タグ用マスク生成部602と、復号部603と、チェックサム計算部604と、タグ生成部605と、タグ検査部606との動作は、プログラムの形式で補助記憶装置730に記憶されている。CPU710は、プログラムを補助記憶装置730から読み出して主記憶装置720に展開し、当該プログラムに従って各部の動作を実行する。
【0230】
なお、認証暗号化装置10、10b、10c、30、50、認証復号装置20、20b、20c、40、60の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、OS(オペレーティングシステム)や周辺機器等のハードウェアを含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD-ROM(Compact Disc Read Only Memory)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0231】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0232】
本発明の実施形態は、認証暗号化装置、認証復号装置、認証暗号化方法、認証復号方法および記録媒体に適用してもよい。
【符号の説明】
【0233】
10、10b、10c、30 認証暗号化装置
100、300 平文入力部
101、301 初期ベクトル生成部
102、102b、102c、302 マスク生成部
103、103b、103c、303 第一暗号化部
104、304 第一計算部
105、105b、105c、305 第二暗号化部
106、306 暗号文出力部
20、20b、20c、40 認証復号装置
200、400 暗号文入力部
201、401 初期ベクトル入力部
202、202b、202c、402 マスク生成部
203、203b、203c、403 復号部
204、404 第二計算部
205、205b、205c、405 第三暗号化部
206、406 タグ検査部
207、407 平文出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20