特許第6084757号(P6084757)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ポートランド・ステイト・ユニバーシティの特許一覧

特許6084757可変入力長調整可能暗号の構造および使用
この文献は図面が300枚以上あるため,図面を表示できません.
<>
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6084757
(24)【登録日】2017年2月3日
(45)【発行日】2017年2月22日
(54)【発明の名称】可変入力長調整可能暗号の構造および使用
(51)【国際特許分類】
   G09C 1/00 20060101AFI20170213BHJP
【FI】
   G09C1/00 610A
【請求項の数】38
【全頁数】124
(21)【出願番号】特願2016-556687(P2016-556687)
(86)(22)【出願日】2014年11月26日
(65)【公表番号】特表2016-540266(P2016-540266A)
(43)【公表日】2016年12月22日
(86)【国際出願番号】US2014067745
(87)【国際公開番号】WO2015102783
(87)【国際公開日】20150709
【審査請求日】2016年11月7日
(31)【優先権主張番号】61/910,292
(32)【優先日】2013年11月29日
(33)【優先権主張国】US
(31)【優先権主張番号】14/549,531
(32)【優先日】2014年11月20日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】516157326
【氏名又は名称】ポートランド・ステイト・ユニバーシティ
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100196508
【弁理士】
【氏名又は名称】松尾 淳一
(72)【発明者】
【氏名】シュリンプトン,トーマス・イー.
(72)【発明者】
【氏名】テラシマ,ロバート・エス.
【審査官】 青木 重徳
(56)【参考文献】
【文献】 国際公開第2009/020060(WO,A1)
【文献】 米国特許第7221756(US,B2)
【文献】 Peng Wang, et al.,HCTR: A Variable-Input-Length Enciphering Mode,LNCS, Information Security and Cryptology,Springer,2005年12月,Vol.3822,pp.175-188
【文献】 Haibim Zhang,Length-Doubling Ciphers and Tweakable Ciphers,LNCS, Applied Cryptography and Network Security,Springer,2012年 6月,Vol.7341,pp.100-116
【文献】 Will Landecker, et al.,Tweakable Blockciphers with Beyond Birthday-Bound Security,Cryptog\logy ePrint Archive: Report 2012/450,[オンライン],2012年 8月 8日,Version: 20120808:065419,p.1-28,[平成28年12月13日検索]、インターネット,URL,<https://eprint.iacr.org/eprint-bin/print.pl>
【文献】 Thomas Shrimpton, et al.,A Modular Framework for Building Variable-Input-Length Tweakable Ciphers,LNCS, Advances in Cryptology - ASIACRYPT 2013,Springer,2013年12月,Vol.8269,pp.405-423
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
暗号化および/または復号のためのコンピュータに実装されるシステムであって、
固定長初期化ベクトルを生成するように構成された第1固定入力長調整可能ブロック暗号(「FIL TBC」)と、
前記固定長初期化ベクトルをトウィークとして使用して、可変長出力文字列を生成するように構成された可変入力長調整可能暗号(「VILTC」)と、
前記固定長初期化ベクトルを入力として使用して、固定長出力文字列を生成するように構成された第2固定入力長調整可能ブロック暗号(「FIL TBC」)と、
を含む、システム。
【請求項2】
請求項1に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントへの第1コールによって供給され、前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントへの第2コールによって供給される、システム。
【請求項3】
請求項2に記載のシステムにおいて、前記第1コールにおいて、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントが、固定長入力文字列を、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1入力として受け入れ、更に当該システムに対するトウィークおよび可変長入力文字列の組み合わせを前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1トウィークとして受け入れ、前記第2コールにおいて、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントが、前記固定長初期化ベクトルを、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2入力として受け入れ、前記当該システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2トウィークとして受け入れる、システム。
【請求項4】
請求項1に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、異なる固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントを介して供給される、システム。
【請求項5】
請求項1〜4のいずれか一項に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)および前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記固定長初期化ベクトルを、前記システム外部への露出から保護する、システム。
【請求項6】
請求項1に記載のシステムにおいて、前記システムが、当該システムに対するトウィークとして、当該システムの環境的特徴に基づく値を受け入れる、システム。
【請求項7】
請求項1〜6のいずれか一項に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)、前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)、および可変入力長調整可能暗号(「VILTC」)が、特殊目的ハードウェアを使用して実装される、システム。
【請求項8】
請求項1〜6のいずれか一項に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)、前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)、および可変入力長調整可能暗号(「VILTC」)が、汎用ハードウェア上で実行するソフトウェアを使用して実装される、システム。
【請求項9】
請求項1に記載のシステムにおいて、前記固定長初期化ベクトルが、N−キャラクタ初期化ベクトルであり、前記固定長出力文字列が、N−キャラクタ出力文字列であり、
前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−キャラクタ初期化ベクトルを生成するように構成された第1N−キャラクタ調整可能ブロック暗号(「TBC」)であり、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−キャラクタ初期化ベクトルをトウィークとして使用して、前記可変長出力文字列を生成するように構成され、
前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−キャラクタ出力文字列を生成するように構成された第2N−キャラクタ調整可能ブロック暗号(「TBC」)である、システム。
【請求項10】
請求項9に記載のシステムであって、更に、
N−キャラクタ入力文字列および可変長入力文字列を格納する第1バッファと、
前記N−キャラクタ出力文字列および前記可変長出力文字列を格納する第2バッファと、
を含む、システム。
【請求項11】
請求項10に記載のシステムにおいて、前記N−キャラクタ入力文字列、前記可変長入力文字列、前記N−キャラクタ出力文字列、および前記可変長出力文字列のキャラクタが、所定の有限の1組の記号から選択される、システム。
【請求項12】
請求項9〜11のいずれか一項に記載のシステムにおいて、前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)、前記可変入力長調整可能暗号(「VILTC」)、および前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)が、ランダム生成置換参照表から組み立てられる、システム。
【請求項13】
請求項9に記載のシステムにおいて、
前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)が、N−キャラクタ入力文字列を前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび可変長入力文字列の組み合わせを前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−キャラクタ初期化ベクトルを生成するように構成され、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−キャラクタ初期化ベクトルを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、前記可変長入力文字列を前記可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、前記可変長出力文字列を生成するように構成され、
前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)が、前記N−キャラクタ初期化ベクトルを前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−キャラクタ出力文字列を生成するように構成される、システム。
【請求項14】
請求項1に記載のシステムにおいて、前記固定長初期化ベクトルがN−ビット初期化ベクトルであり、前記固定長出力文字列がN−ビット出力文字列であり、
更に、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−ビット初期化ベクトルを生成するように構成された第1N−ビット調整ブロック暗号(「TBC」)であり、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−ビット初期化ベクトルをトウィークとして使用して、前記可変長出力文字列を生成するように構成され、
前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−ビット出力文字列を生成するように構成された第2N−ビット調整可能ブロック暗号(「TBC」)である、システム。
【請求項15】
請求項14に記載のシステムであって、更に、
N−ビット入力文字列および可変長入力文字列を格納する第1バッファと、
前記N−ビット出力文字列および前記可変長出力文字列を格納する第2バッファと、
を含む、システム。
【請求項16】
請求項14に記載のシステムにおいて、
前記第1N−ビット調整可能ブロック暗号(「TBC」)が、N−ビット入力文字列を前記第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび可変長入力文字列の組み合わせを前記第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−ビット初期化ベクトルを生成するように構成され、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−ビット初期化ベクトルを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、前記可変長入力文字列を前記可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、前記可変長出力文字列を生成するように構成され、
前記第2N−ビット調整可能ブロック暗号(「TBC」)が、前記N−ビット初期化ベクトルを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−ビット出力文字列を生成するように構成される、システム。
【請求項17】
請求項14〜16のいずれか一項に記載のシステムであって、更に、
安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に応じた効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に応じた効率的な実装が複雑化する、システム。
【請求項18】
請求項14〜17のいずれか一項に記載のシステムにおいて、前記第1N−ビット調整可能ブロック暗号(「TBC」)および前記第2N−ビット調整可能ブロック暗号(「TBC」)が同一構造を有する、システム。
【請求項19】
請求項14〜17のいずれか一項に記載のシステムにおいて、前記第1N−ビット調整可能ブロック暗号(「TBC」)および前記第2N−ビット調整可能ブロック暗号(「TBC」)の内少なくとも1つが、LRW2 TBC構造であり、
前記可変入力長調整可能暗号(「VILTC」)が、反復LRW2 TBC構造である、システム。
【請求項20】
請求項19に記載のシステムにおいて、前記LRW2 TBC構造が、(1)(a)n−ビットLRW2入力文字列と(b)トウィーク入力のn−ビット・ハッシュとの間の排他的ORの暗号化バージョンと、(2)前記トウィーク入力のn−ビット・ハッシュとの間の排他的ORを計算することによって、n−ビットLRW2出力文字列を生成するように構成される、システム。
【請求項21】
請求項14〜17のいずれか一項に記載のシステムにおいて、
前記第1N−ビット調整可能ブロック暗号(「TBC」)および前記第2N−ビット調整可能ブロック暗号(「TBC」)の内少なくとも1つが、ドメイン拡張CLRW2構造であり、
前記可変入力長調整可能暗号(「VILTC」)が、反復CLRW2構造である、システム。
【請求項22】
請求項14〜21のいずれか一項に記載のシステムにおいて、Nが128である、システム。
【請求項23】
請求項14〜21のいずれか一項に記載のシステムにおいて、Nが256である、システム。
【請求項24】
暗号化および/または復号のためのコンピュータに実装されるシステムであって、
N−ビット入力文字列および可変長入力文字列を格納する第1バッファと、
第1N−ビット調整可能ブロック暗号(「TBC」)であって、前記N−ビット入力文字列を前記第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長入力文字列の組み合わせを前記第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−ビット初期化ベクトルを生成するように構成された、第1N−ビット調整可能ブロック暗号(「TBC」)と、
可変入力長調整可能暗号(「VILTC」)であって、前記N−ビット初期化ベクトルを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、前記可変長入力文字列を前記可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、可変長出力文字列を生成するように構成された、可変入力長調整可能暗号(「VILTC」)と、
第2N−ビット調整可能ブロック暗号(「TBC」)であって、前記N−ビット初期化ベクトルを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−ビット出力文字列を生成するように構成された、第2N−ビット調整可能ブロック暗号(「TBC」)と、
前記N−ビット出力文字列および前記可変長出力文字列を格納する第2バッファと、
を含む、システム。
【請求項25】
請求項24に記載のシステムにおいて、前記システムに対するトウィークが、前記システムの環境的特徴に基づく値である、システム。
【請求項26】
請求項24又は25に記載のシステムであって、更に、
安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に伴う効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に伴う効率的な実装が複雑化する、システム。
【請求項27】
暗号化および/または復号のためのコンピュータで実行される方法であって、
第1固定入力長調整可能ブロック暗号(「FIL TBC」)によって、固定長初期化ベクトルを生成するステップと、
前記固定長初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって、可変長出力文字列を生成するステップと、
前記固定長初期化ベクトルを入力として使用して、第2固定入力長調整可能ブロック暗号(「FIL TBC」)によって、固定長出力文字列を生成するステップと、
を含む、方法。
【請求項28】
請求項27に記載の方法において、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントへの第1コールによって供給され、前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントへの第2コールによって供給される、方法。
【請求項29】
請求項28に記載の方法において、前記第1コールにおいて、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントが、固定長入力文字列を、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1入力として受け入れ、更に前記方法を実施するシステムに対するトウィークおよび可変長入力文字列の組み合わせを前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1トウィークとして受け入れ、前記第2コールにおいて、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントが、前記固定長初期化ベクトルを、前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2入力として受け入れ、前記方法を実施するシステムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2トウィークとして受け入れる、方法。
【請求項30】
請求項27に記載の方法において、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、異なる固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントを介して供給される、方法。
【請求項31】
請求項27に記載の方法において、前記方法が、前記方法を実施するシステムに対するトウィークとして、前記方法を実施するシステムの環境的特徴に基づく値を受け入れる、方法。
【請求項32】
請求項27に記載の方法において、前記固定長初期化ベクトルが、N−キャラクタ初期化ベクトルであり、前記固定長出力文字列が、N−キャラクタ出力文字列であり、
前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−キャラクタ初期化ベクトルを生成するように構成された第1N−キャラクタ調整可能ブロック暗号(「TBC」)であり、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−キャラクタ初期化ベクトルをトウィークとして使用して、前記可変長出力文字列を生成するように構成され、
前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−キャラクタ出力文字列を生成するように構成された第2N−キャラクタ調整可能ブロック暗号(「TBC」)である、方法。
【請求項33】
請求項32に記載の方法において、
前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)が、N−キャラクタ入力文字列を前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび可変長入力文字列の組み合わせを前記第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−キャラクタ初期化ベクトルを生成するように構成され、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−キャラクタ初期化ベクトルを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、前記可変長入力文字列を前記可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、前記可変長出力文字列を生成するように構成され、
前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)が、前記N−キャラクタ初期化ベクトルを前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−キャラクタ出力文字列を生成するように構成される、方法。
【請求項34】
請求項27に記載の方法において、前記固定長初期化ベクトルがN−ビット初期化ベクトルであり、前記固定長出力文字列がN−ビット出力文字列であり、
更に、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−ビット初期化ベクトルを生成するように構成された第1N−ビット調整ブロック暗号(「TBC」)であり、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−ビット初期化ベクトルをトウィークとして使用して、前記可変長出力文字列を生成するように構成され、
前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記N−ビット出力文字列を生成するように構成された第2N−ビット調整可能ブロック暗号(「TBC」)である、方法。
【請求項35】
請求項34に記載の方法において、
前記第1N−ビット調整可能ブロック暗号(「TBC」)が、N−ビット入力文字列を前記第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび可変長入力文字列の組み合わせを前記第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−ビット初期化ベクトルを生成するように構成され、
前記可変入力長調整可能暗号(「VILTC」)が、前記N−ビット初期化ベクトルを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、前記可変長入力文字列を前記可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、前記可変長出力文字列を生成するように構成され、
前記第2N−ビット調整可能ブロック暗号(「TBC」)が、前記N−ビット初期化ベクトルを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせを前記第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、前記N−ビット出力文字列を生成するように構成される、方法。
【請求項36】
請求項34又は35に記載の方法であって、更に、
安全性および実装効率のトレードオフを得るためにNを調節するステップを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に応じた効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に応じた効率的な実装が複雑化する、方法。
【請求項37】
請求項27〜36のいずれか一項に記載の方法を実行するためのプログラム。
【請求項38】
請求項27〜36のいずれか一項に記載の方法を実行するためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願情報
[001] 本願は、2013年11月29日に出願された米国仮特許出願第61/910,292号、および2014年11月20日に出願された米国特許出願第14/549,531号に対する優先権を主張する。これらの出願の開示内容は、ここで引用したことにより、本願にも含まれるものとする。
分野
[002] 初期化ベクトルが保護された可変入力長調整可能暗号の構造および使用。
政府援助の承認
[003] 本発明は、全米科学財団(National Science Foundation)によって供与された CNS-0845610およびCNS-1319061の下で、政府支援によって行われた。政府は、本発明において一定の権利を保有する。
【従来技術】
【0002】
[004] 一般に、暗号化は、許可された関係者のみが情報を読むことができ、第三者は読むことができないように、情報を符号化するプロセスである。ある暗号化方式では、暗号化アルゴリズムを使用して情報(平文と呼ぶ)を暗号化し、それを読み取り不可能な暗号文に変換する。許可された関係者は、復号アルゴリズムを使用して、この暗号文をデコードすることができる。コンピュータ・システムでは、暗号化アルゴリズムは情報の二進値(即ち、ビット)を暗号化する。
【0003】
[005] ブロック暗号は、固定長ブロックのビットに対して動作する暗号化アルゴリズムである。n−ビット・ブロック暗号は、n−ビットのブロックを暗号化して、n−ビットの暗号文を生成する。ブロック暗号は広く使用されており、ブロック暗号には多くの効率的な実施態様がある。ブロック暗号は暗号化鍵を使用する。ブロック暗号の安全性は、特定の鍵の下で暗号化されるブロックの数が増えるに連れて低下することが分かっている。ブロック暗号に対して鍵を変更することは、それ自体困難ではないが、様々な重要な用途では、新たなブロック暗号鍵の頻繁な生成および配布は実現可能ではない。
【0004】
[006] 調整可能ブロック暗号(「TBC」:tweakable block cypher)は、ブロック暗号の一般化である。n個のキャラクタから成る調整可能ブロック暗号(「TBC」)
【0005】
【数1】
[この文献は図面を表示できません]
【0006】
は、Σにわたる置換の一群であり(a family of permutations over Σn)、調整可能ブロック暗号(「TBC」)における各置換は、鍵およびトウィーク(tweak)に関連付けられる。多くの場合、Σ={0,1}であり、この場合、調整可能ブロック暗号(「TBC」)をn−ビット調整可能ブロック暗号(「TBC」)
【0007】
【数2】
[この文献は図面を表示できません]
【0008】
と呼ぶことができる。入力文字列について、鍵およびトウィーク双方によって、調整可能ブロック暗号(「TBC」)によって生成された入力文字列の置換を指定する。典型的な使用では、鍵は調整可能ブロック暗号(「TBC」)に対する多くのコールにわたって秘密でありそして固定であるが、トウィークは秘密ではなくコール毎に変化することができる。これにより、鍵が固定であってもトウィークの値を変化させることによって、調整可能ブロック暗号(「TBC」)の挙動における可変性をサポートする。変化するトウィークの値が十分に単純である場合(鍵設定および更新のプロセスと比較して)、調整可能ブロック暗号(「TBC」)を使用することは、ブロック暗号によって安全に暗号化されるデータの分量を拡充する効率的な方法となることができる。調整可能ブロック暗号(「TBC」)を使用すると、アルゴリズムの設計および分析を単純化することができる(例えば、大量のデータを安全に処理することができるアルゴリズム)。調整可能ブロック暗号(「TBC」)は、暗号化されようとするデータの分量が、利用可能な鍵素材(key material)と比較して、非常に大きいときに有用であると考えられ、ブロック暗号鍵を変更することは望ましくなく、更に実現可能でもない。処理すべきデータの分量が過剰に大きくない用途においてであっても、トウィーク入力は、様々な暗号の使用にわたって、または多数のユーザにわたって固定の鍵と共に調整可能ブロック暗号(「TBC」)を使用するというような、実際の用途においても有用な特徴を付与することができる。
【発明の概要】
【発明が解決しようとする課題】
【0009】
[007] 調整可能暗号は、調整可能暗号化方式または大型ブロック暗号と呼ばれることもあり、調整可能ブロック暗号(「TBC」)の可変入力長(「VIL」)設定に対する拡張である。一般に、可変入力長調整可能暗号(「VILTC」)は、長さ保存置換(length-preserving permutations)の一群であり、平文入力と同じ長さの暗号文出力を生成する。可変入力長調整可能暗号(「VILTC」)を実現する一般的な1つの手法は、基礎となるn−ビット・ブロック暗号から、ときには1つ以上のハッシング動作と合わせて、可変入力長調整可能暗号(「VILTC」)プリミティブを組み立てることであった。この手法にしたがって組み立てられた可変入力長調整可能暗号(「VILTC」)は、ある重要な使用事例シナリオに対して、特に、nが小さいとき(例えば、64)、または1つの鍵によって処理されるべきデータ量が非常に大きいときには、十分な安全性保証を提供できないことがある。
【課題を解決するための手段】
【0010】
[008] 要約すると、詳細な説明では、可変入力長調整可能暗号(「VILTC」)の構造および使用における新技術について紹介する。場合によっては、これらの可変入力長調整可能暗号(「VILTC」)は、効率的な処理遂行(performance)と共に安全性強化を提供するために、暗号/復号システム外部への露出から保護された初期化ベクトルを使用する。他の場合では、関連データ付き認証付暗号化/復号を信頼性高くしかも効率的に実現するために、可変入力長調整可能暗号(「VILTC」)を使用する。
【0011】
[009] 本明細書において説明する新技術の一態様によれば、暗号化および/または復号システムは、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)と可変入力長調整可能暗号(「VILTC」)とを含む。通例、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)は、1つの固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する2回のコールによって供給される。しかしながら、代わりに、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントによって2つの異なる固定入力長調整可能ブロック暗号(「FIL TBC」)を供給することもできる。
【0012】
[010] 第1固定入力長調整可能ブロック暗号(「FIL TBC」)(例えば、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネント、または第1の異なる固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントへの第1コール)は、固定長初期化ベクトルを生成するように構成されている(adapted to)。例えば、第1コールにおいて、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントは、固定長入力文字列を所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1入力として受け入れ、システムに対するトウィークおよび可変長入力文字列の組み合わせを、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第1トウィークとして受け入れる。可変入力長調整可能暗号(「VILTC」)は、固定長初期化ベクトルをトウィークとして使用して、可変長出力文字列を生成するように構成されている。第2固定入力長調整可能ブロック暗号(「FIL TBC」)(例えば、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネント、または第2の異なる固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2コール)は、固定長出力文字列を生成するように構成されている。例えば、第2コールにおいて、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントは、固定長初期化ベクトルを所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2入力として受け入れ、システム・トウィークおよび可変長出力文字列の組み合わせを、所与の固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する第2トウィークとして受け入れる。第1固定入力長調整可能ブロック暗号(「FIL TBC」)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)は、固定長初期化ベクトルを、システム外部への露出から保護する。システム・トウィークは、システムの環境的特徴に基づくことができる。
【0013】
[011] 本明細書において説明する新技術の他の態様によれば、暗号化および/または復号システムは、2つのN−キャラクタ調整可能ブロック暗号(「TBC」)と可変入力長調整可能暗号(「VILTC」)とを含む。第1N−キャラクタ調整可能ブロック暗号(「TBC」)(例えば、所与のN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントまたは第1の異なるN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントに対する第1コール)は、N−キャラクタ初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、N−キャラクタ初期化ベクトルをトウィークとして使用して、可変長出力文字列を生成するように構成されている。第2N−キャラクタ調整可能ブロック暗号(「TBC」)(例えば、所与のN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントまたは第2の異なるN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントに対する第2コール)は、N−キャラクタ出力文字列を生成するように構成されている。このように、第1N−キャラクタ調整可能ブロック暗号(「TBC」)および第2N−キャラクタ調整可能ブロック暗号(「TBC」)は、システム外部への露出からN−キャラクタ初期化ベクトルを保護する。
【0014】
[012] 本システムは多数のバッファを含むことができる。例えば、第1バッファがN−キャラクタ入力文字列および可変長入力文字列を格納し、第2バッファがN−キャラクタ出力文字列および可変長出力文字列を格納する。N−キャラクタ入力文字列、可変長入力文字列、N−キャラクタ出力文字列、および可変長出力文字列のキャラクタは、所定の有限な1組のシンボル(例えば、数値0から9、文字ZからZおよび数値0から9)から選択される。また、本システムの入力は、1つ以上の鍵およびトウィーク値も含む。第1N−キャラクタ調整可能ブロック暗号(「TBC」)、可変入力長調整可能暗号(「VILTC」)、および第2N−キャラクタ調整可能ブロック暗号(「TBC」)は、ランダムに生成された置換参照表から組み立てることができる。更に一般的には、第1N−キャラクタ調整可能ブロック暗号(「TBC」)、第2N−キャラクタ調整可能ブロック暗号(「TBC」)、および可変入力長調整可能暗号(「VILTC」)は、特殊目的ハードウェアを使用して実装することができ、または汎用ハードウェア上で実行するソフトウェアを使用して実装することができる。
【0015】
[013] 実施態様例では、第1N−キャラクタ調整可能ブロック暗号(「TBC」)は、N−キャラクタ入力文字列を第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長入力文字列の組み合わせを第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−キャラクタ初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、N−ビット初期化ベクトルを可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、更に可変長入力文字列を可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、可変長出力文字列を生成するように構成されている。 第2N−キャラクタ調整可能ブロック暗号(「TBC」)は、N−キャラクタ初期化ベクトルを第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長出力文字列の組み合わせを第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−キャラクタ出力文字列を生成するように構成されている。
【0016】
[014] 本明細書において説明する新技術の他の態様によれば、暗号化および/または復号システムは、2つのN−ビット調整可能ブロック暗号(「TBC」)および可変入力長調整可能暗号(「VILTC」)を含む。第1N−ビット調整可能ブロック暗号(「TBC」)(例えば、所与のN−ビット調整可能ブロック暗号(「TBC」)コンポーネントまたは第1の異なるN−ビット調整可能ブロック暗号(「TBC」)コンポーネントに対する第1コール)は、N−ビット初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、N−ビット初期化ベクトルをトウィークとして使用して、可変長出力文字列を生成するように構成されている。第2N−ビット調整可能ブロック暗号(「TBC」)(例えば、所与のN−ビット調整可能ブロック暗号(「TBC」)コンポーネントまたは第2の異なるN−ビット調整可能ブロック暗号(「TBC」)コンポーネントに対する第2コール)は、N−ビット出力文字列を生成するように構成されている。このように、第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)は、システム外部への露出からN−ビット初期化ベクトルを保護する。
【0017】
[015] 本システムは多数のバッファを含むことができる。例えば、第1バッファがN−ビット入力文字列および可変長入力文字列を格納し、第2バッファがN−ビット出力文字列および可変長出力文字列を格納する。また、本システムの入力は1つ以上の鍵およびトウィーク値も含む。また、本システムは、安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラも含むことができる。Nの値が小さい程、安全性が悪化するが、安全性制約に伴い効率的な実装が簡素化する。他方で、Nの値が大きい程高い安全性が得られるが、安全性制約に伴い効率的な実装が複雑化する。
【0018】
[016] 実施態様例では、第1N−ビット調整可能ブロック暗号(「TBC」)は、N−ビット入力文字列を第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長入力文字列の組み合わせを第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−ビット初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、N−ビット初期化ベクトルを可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、可変長入力文字列を可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、可変長出力文字列を生成するように構成されている。第2N−ビット調整可能ブロック暗号(「TBC」)は、N−ビット初期化ベクトルを第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長出力文字列の組み合わせを第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−ビット出力文字列を生成するように構成されている。例えば、トウィークTおよびBビット入力X(B>N)を仮定すると、入力Xの最初のN−ビット(X)は、第1N−ビット調整可能ブロック暗号(「TBC」)(例えば、N−ビット調整可能ブロック暗号(「TBC」)に対するコール)に対する入力として役割を果たし、残りの(B−N)入力−ビット(X)およびTの組み合わせは、第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークとして役割を果たす。この調整可能ブロック暗号(「TBC」)のN−ビット出力は、可変入力長調整可能暗号(「VILTC」)コールに対する初期化ベクトルとして役割を果たし、(B−N)−ビット出力(Y)を生成する。最後に、YおよびTの組み合わせは、第2N−ビット調整可能ブロック暗号(「TBC」)(例えば、N−ビット調整可能ブロック暗号(「TBC」)に対するコール)に対するトウィークとして役割を果たす。第2N−ビット調整可能ブロック暗号(「TBC」)は、初期化ベクトルを入力として取り込み、N−ビット出力(Y)を生成する。YとYとの連結(concatenation)が、結果的に得られる出力となる。この連結の長さは正確にBビットであるので、処理全体は入力から出力まで長さを保存することになる。
【0019】
[017] 第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)は、同一の構造または異なる構造(structure)を有することができる。注記したように、第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)は、同じN−ビット調整可能ブロック暗号(「TBC」)コンポーネントに対する2回のコールによって、異なる入力および出力を用いて、供給することができる。一実施態様では、第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)の内少なくとも1つはLRW2 TBC構造(construction)(以下で定義する)であり、可変入力長調整可能暗号(「VILTC」)は反復LRW2 TBC構造(以下で定義する)である。他の実施態様では、第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)の内少なくとも1つはドメイン拡張CLRW2構造(以下で定義する)であり、可変入力長調整可能暗号(「VILTC」)は反復CLRW2構造(以下で定義する)である。更に一般的には、第1N−ビット調整可能ブロック暗号(「TBC」)、第2N−ビット調整可能ブロック暗号(「TBC」)、および可変入力長調整可能暗号(「VILTC」)は、特殊目的ハードウェアを使用して実装することができ、または汎用ハードウェア上で実行するソフトウェアを使用して実装することができる。
【0020】
[018] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムが、固定長入力文字列、システムに対するトウィーク、および可変長入力文字列を処理して、固定長出力文字列および可変長出力文字列を生成する。システムに対するトウィークは、環境的特徴に基づいて設定することができる。この処理の一部として、本システムは、固定長初期化ベクトルを生成し、この固定長初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いで固定長初期化ベクトルを曖昧にする。本システムは、固定長出力文字列および可変長出力文字列を出力する。
【0021】
[019] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムが、N−キャラクタ入力文字列、システムに対するトウィーク、および可変長入力文字列を処理して、N−キャラクタ出力文字列および可変長出力文字列を生成する。この処理の一部として、本システムは、N−キャラクタ初期化ベクトルを生成し、このN−キャラクタ初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いでN−キャラクタ初期化ベクトルを曖昧にする。本システムは、N−キャラクタ出力文字列および可変長出力文字列を出力する。
【0022】
[020] この処理は、例えば、(1)フォーマット保存暗号化、(2)フォーマット保存復号、または(3)何らかの他の暗号化または復号動作(activity)の一部にすることができる。暗号化では、N−キャラクタ入力文字列および可変長入力文字列は平文であり、N−キャラクタ出力文字列および可変長出力文字列は暗号文である。復号では、N−キャラクタ入力文字列および可変長入力文字列は暗号文であり、N−キャラクタ出力文字列および可変長出力文字列は平文である。
【0023】
[021] 実施態様例では、N−キャラクタ初期化ベクトルは、第1固定入力長調整可能ブロック暗号(「FIL TBC」)によって生成され、第2固定入力長調整可能ブロック暗号(「FIL TBC」)によって曖昧にされて、N−キャラクタ出力文字列を生成する。N−キャラクタ初期化ベクトルは、第1固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力であるN−キャラクタ入力文字列に基づいて、そして第1固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システムに対するトウィークおよび可変長入力文字列の組み合わせに基づいて、第1固定入力長調整可能ブロック暗号(「FIL TBC」)によって生成される。可変長出力文字列は、可変入力長調整可能暗号(「VILTC」)に対するトウィークであるN−キャラクタ初期化ベクトルに基づいて、そして可変入力長調整可能暗号(「VILTC」)に対する入力である可変長入力文字列に基づいて、可変入力長調整可能暗号(「VILTC」)によって生成される。N−キャラクタ出力文字列は、第2固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力であるN−キャラクタ初期化ベクトルに基づいて、そして第2固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システムに対するトウィークおよび可変長出力文字列の組み合わせに基づいて、第2固定入力長調整可能ブロック暗号(「FIL TBC」)によって生成される。システム・トウィークは、環境的特徴に基づいて設定することができる。
【0024】
[022] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムは、N−ビット入力文字列、システムに対するトウィークおよび可変長入力文字列を処理して、N−ビット出力文字列および可変長出力文字列を生成する。この処理の一部として、本システムは、N−ビット初期化ベクトルを生成し、N−ビット初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いでN−ビット初期化ベクトルを曖昧にする。本システムは、N−ビット出力文字列および可変長出力文字列を出力する。
【0025】
[023] この処理は、例えば、(1)ディスク全体の暗号化、(2)ディスク全体の復号、(3)関連データ付き認証付暗号化、(4)関連データによる認証復号、あるいは(5)他の何らかの暗号化または復号動作の一部にすることができる。暗号化では、N−ビット入力文字列および可変長入力文字列は平文であり、N−ビット出力文字列および可変長出力は暗号文である。復号では、N−ビット入力文字列および可変長入力文字列は暗号文であり、N−ビット出力文字列および可変長出力文字列は平文である。
【0026】
[024] 実施態様例では、N−ビット初期化ベクトルは、第1N−ビット調整可能ブロック暗号(「TBC」)によって生成され、第2N−ビット調整可能ブロック暗号(「TBC」)によって曖昧にされて、N−ビット出力文字列を生成する。N−ビット初期化ベクトルは、第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力であるN−ビット入力文字列に基づいて、そして第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークである、システムに対するトウィークおよび可変長入力文字列の組み合わせに基づいて、第1N−ビット調整可能ブロック暗号(「TBC」)によって生成される。可変長出力文字列は、可変入力長調整可能暗号(「VILTC」)に対するトウィークであるN−ビット初期化ベクトルに基づいて、そして可変入力長調整可能暗号(「VILTC」)に対する入力である可変長入力文字列に基づいて、可変入力長調整可能暗号(「VILTC」)によって生成される。N−ビット出力文字列は、第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力であるN−ビット初期化ベクトルに基づいて、そして第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークである、システムに対するトウィークおよび可変長出力文字列の組み合わせに基づいて、第2N−ビット調整可能ブロック暗号(「TBC」)によって生成される。システム・トウィークは、環境的特徴に基づいて設定することができる。
【0027】
[025] 本明細書において説明する新技術の他の態様によれば、暗号化システムは、ヘッダおよびメッセージを受ける。この暗号化システムは、可変入力長調整可能暗号(「VILTC」)を使用してこのメッセージを処理し、関連データ付き認証付暗号化を行う。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。暗号化システムは、ヘッダおよび暗号化メッセージ(encrypted message)を出力する。
【0028】
[026] 実施態様例では、メッセージを処理するとき、暗号化システムは、ヘッダおよび再現情報(reconstruction information)を使用して修正ヘッダを決定し、メッセージおよび修正ヘッダを使用して修正メッセージを決定し、可変入力長調整可能暗号(「VILTC」)を、この可変入力長調整可能暗号(「VILTC」)に対するトウィークである修正ヘッダと共に使用して修正メッセージを暗号化する。暗号化システムは、再現情報を出力する。
【0029】
[027] 対応する復号システムは、ヘッダおよび暗号化メッセージを受ける(任意の再現情報と共に)。復号システムは、可変入力長調整可能暗号(「VILTC」)を使用して暗号化メッセージを処理して、関連データによる認証復号を行う。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。復号システムはメッセージを出力する。
【0030】
[028] 実施態様例では、暗号化メッセージを処理するとき、復号システムは、ヘッダおよび再現情報を使用して修正ヘッダを決定し、修正ヘッダを可変入力長調整可能暗号(「VILTC」)に対するトウィークとして可変入力長調整可能暗号(「VILTC」)を使用して、暗号化メッセージを復号し、修正メッセージおよび修正ヘッダを使用してメッセージを決定する。
【0031】
[029] 任意に、認証ステップのため、復号システムはメッセージが有効であるか否か確認するチェックを行う。例えば、所定数の「0」ビットが暗号化の間にメッセージに添付された場合、復号では、これらのビットの存在をチェックすることができる。このチェックが失敗した場合、復号はエラーを出力する。メッセージを通すためには多数の異なるチェックがあってもよく、出力されるエラー(1つまたは複数)は、どのチェック(の組み合わせ)が失敗したのかに応じて、異なってもよい。(これは、認証付暗号化の「認証」部分である。攻撃者が暗号化メッセージを改竄した場合、一旦復号されたなら、恐らくもはや有効ではなくなるであろう。)
[030] 可変入力長調整可能暗号(「VILTC」)を組み立てて使用する新技術は、方法の一部として、この方法を実行するように構成された計算システムの一部として、または計算システムにこの方法を実行させるコンピュータ実行可能命令を格納する有形コンピュータ読み取り可能媒体の一部として実現することができる。種々の新技術は、組み合わせてまたは別個に使用することができる。
【0032】
[031] 本発明の以上のおよびその他の目的、特徴、ならびに利点は、以下の詳細な説明から一層明らかになるであろう。詳細な説明は、添付図面を参照しながら進められる。
【図面の簡単な説明】
【0033】
図1図1は、本明細書において説明する、ある実施形態を実現することができる計算システムを一般化して示す図である。
図2図2は、可変入力長調整可能暗号(「VILTC」)の組み立ておよび使用のためのアーキテクチャ例を示す図である。
図3A図3A図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。
図3B図3A図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。
図3C図3A図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。
図4図4は、初期化ベクトルを保護して、可変入力長調整可能暗号(「VILTC」)を使用するための技法を一般化して示すフローチャートである。
図5A図5A図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。
図5B図5A図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。
図5C図5A図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。
図6A図6A図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。
図6B図6A図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。
図6C図6A図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。
図7図7は、可変入力長調整可能暗号(「VILTC」)を使用する、関連データ付き認証付暗号化の技法を一般化して示すフローチャートである。
図8図8は、可変入力長調整可能暗号(「VILTC」)を使用する、関連データによる認証復号の技法を一般化して示すフローチャートである。
図9図9は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。
図10図10は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。
図11図11は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。
【発明を実施するための形態】
【0034】
[040] 詳細な説明では、可変入力長調整可能暗号(「VILTC」)の構造および使用における新技術を紹介する。場合によっては、これらの可変入力長調整可能暗号(「VILTC」)は、効率的な処理遂行(performance)で安全性強化を提供するために、暗号化/復号システム外部への露出から保護された初期化ベクトルを使用する。他の場合では、関連データ付き認証付暗号化/復号を信頼性高くしかも効率的に実現するために、可変入力長調整可能暗号(「VILTC」)を使用する。
【0035】
[041] 本明細書において説明する新技術の一態様によれば、可変入力長調整可能暗号(「VILTC」)は、保護された初期化ベクトル(「IV」)を使用する。ある例では、保護された初期化ベクトル(「IV」)によって可変入力長調整可能暗号(「VILTC」)を組み立てることによって、長さを保存する調整可能暗号を構築するための簡素なモジュール型手法を提供する。この調整可能暗号は、(1)本質的に任意の長さの平文入力を取り込むことができ、(2)このタイプのプリミティブに対してできるだけ強い安全性プロパティ(強調整可能擬似ランダム置換(「STPRP」:strong, tweakable-pseudorandom permutation)であること)を達成し、(3)保護された初期化ベクトル(「IV」)による(以下「IV保護」と称する)可変入力長調整可能暗号(「VILTC」)の2n/2回の呼び出し(invocation)という「誕生日限界」(birthday-bound)をはるかに超えて、初期化ベクトル(「IV」)・強調整可能擬似ランダム置換(「STPRP」)保護可変入力長調整可能暗号(「VILTC」)を強調整可能擬似ランダム置換(「STPRP」)−安全にするために、n−ビット・プリミティブによって実現することができる(誕生日限界という用語は、攻撃に対抗する安全性のレベルを意味する。誕生日限界の安全性を有する可変入力長調整可能暗号(「VILTC」)構造では、2n/2ビットが暗号化された(enciphered)時間によって安全性保証が劇的に弱化される。誕生日限界を超えた(beyond-birthday-bound)安全性を有する可変入力長調整可能暗号(「VILTC」)構造は、2n/2個のビットが暗号化された後も長く安全なままであり続けることができる)。ある効率の尺度によって、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)の誕生日を超えて安全なインスタンス化(beyond-birthday secure instantiation)は、誕生日限界までしか安全でない既存の構造に負けない。
【0036】
[042] 初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)には多くの暗号関連用途がある。具体的には、大規模な保存データのシナリオでは、1つの鍵によって保護されるべきデータ量が、通例、鍵を容易に再交渉することができるシナリオにおけるよりも多く、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は適したレベルの安全性を効率的に提供することができる。例えば、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、完全ディスク暗号化(「FDE」:full-disk encryption)および復号、フォーマット保存暗号化(「FPE」)および復号、または関連データ付き認証付暗号化(「AEAD」)および復号に使用することができる。あるいは、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、他の暗号化/復号の用途にも使用することができる。
【0037】
[043] 本明細書において説明する新技術の他の態様によれば、調整可能暗号が関連データ付き認証付暗号化(「AEAD」)および対応する復号に使用される。関連データ付き認証付暗号化(「AEAD」)に使用される可変入力長調整可能暗号(「VILTC」)は、保護された初期化ベクトル(「IV」)構造または何らかの他の可変入力長調整可能暗号(「VILTC」)構造を使用してインスタンス化することができる。調整可能暗号を関連データ付き認証付暗号化(「AEAD」)に使用することにより、多くの利点を得ることができる。例えば、調整可能暗号を関連データ付き認証付暗号化(「AEAD」)に使用することにより、多数のタイプの復号エラーの報告を安全に扱うのに役立てることができる。更に、平文または関連するデータ入力のいずれかに現れる既存のノンス(nonces)、ランダム性、または冗長性の内任意のものを利用することによって、暗号文の膨張(expansion)を排除することができる。初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)を(そのパラメータをしかるべく設定して)使用することにより、誕生日限界を超えた安全性を有する関連データ付き認証付暗号化(「AEAD」)方式が可能になる。
【0038】
[044] 本明細書において説明した例には、種々の代替物が可能である。開示した技術の種々の態様は、組み合わせてまたは別個に使用することができる。異なる実施形態は、説明した新技術の内1つ以上を使用する。本明細書において説明する新技術の一部は、背景において注記した問題の内1つ以上に取り組む。通例、所与の技法/ツールはこのような問題の全てを解決するのではない。
【0039】

I.計算システム例
[045] 図1は、説明する新技術の内いくつかを実現することができる、適した計算システム(100)を一般化した例を示す。計算システム(100)は、使用範囲や機能に関して何ら限定を示唆することを意図するのではない。何故なら、本願の新技術は多様な汎用または特殊目的計算システムにおいて実現できるからである。
【0040】
[046] 図1を参照すると、計算システム(100)は、1つ以上の処理ユニット(110、115)およびメモリ(120、125)を含む。処理ユニット(110、115)は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央処理ユニット(「CPU」)、特定用途集積回路(「ASIC」)におけるプロセッサ、または任意の他のタイプのプロセッサとすることができる。多重処理システムでは、処理パワーを増大するために、多数の処理ユニットがコンピュータ実行可能命令を実行する。例えば、図1は、中央処理ユニット(110)、およびグラフィクス処理ユニットまたは補助処理ユニット(115)も示す。有形メモリ(120、125)は、揮発性メモリ(例えば、レジスタ、キャッシュ、RAM)、不揮発性メモリ(例えば、ROM、EEPROM、フラッシュ・メモリ等)、または処理ユニット(1つまたは複数)によってアクセス可能な、これら2つの何らかの組み合わせであってもよい。メモリ(120、125)は、処理ユニット(1つまたは複数)による実行に適したコンピュータ実行可能命令の形態で、可変入力長調整可能暗号(「VILTC」)を組み立てるまたは使用するための1つ以上の新技術を実現するソフトウェア(180)を格納する。
【0041】
[047] 計算システムは、追加の機構を有することもできる。例えば、計算システム(100)は、ストレージ(140)、1つ以上の入力デバイス(150)、1つ以上の出力デバイス(160)、および1つ以上の通信接続(170)を含む。バス、コントローラ、またはネットワークのような相互接続メカニズム(図示せず)が、計算システム(100)のコンポーネントを相互接続する。通例、オペレーティング・システム・ソフトウェア(図示せず)が、計算システム(100)において実行する他のソフトウェアのために動作環境を提供し、計算システム(100)のコンポーネントの動作(activity)を調整する。
【0042】
[048] 有形ストレージ(140)(コンピュータ読み取り可能ストレージとも呼ぶ)は、リムーバブルまたは非リムーバブルでもよく、磁気ディスク、磁気テープまたはカセット、CD−ROM、DVD、または情報を格納するために使用することができ更に計算システム(100)内においてアクセスすることができる任意の他の媒体を含む。ストレージ(140)は、可変入力長調整可能暗号(「VILTC」)を組み立てるまたは使用するための1つ以上の新技術を実現するソフトウェア(180)の命令を格納する。
【0043】
[049] 入力デバイス(1つまたは複数)(150)は、キーボード、マウス、ペンまたはトラックボール、音声入力デバイス、ジェスチャ入力を受けるためのタッチスクリーン、スキャン・デバイス、あるいは計算システム(110)に入力を供給するその他のデバイスというようなタッチ入力デバイスであってもよい。出力デバイス(1つまたは複数)(160)は、ディスプレイ(例えば、タッチスクリーン)、プリンタ、スピーカ、CD−ライタ、または計算システム(100)からの出力を供給する他のデバイスであってもよい。
【0044】
[050] 通信接続(1つまたは複数)(170)は、通信媒体を通じての他の計算エンティティへの通信を可能にする。通信媒体は、コンピュータ実行可能命令のような情報、オーディオまたはビデオ入力または出力、あるいは変調データ信号における他のデータを伝達する。変調データ信号とは、この信号内に情報をエンコードするようなやり方で、その特性の内1つ以上が設定されたまたは変化させられた信号である。一例として、そして限定ではなく、通信媒体は電気、光、RF、または他のキャリアを使用することができる。
【0045】
[051] 本願の新技術については、コンピュータ読み取り可能媒体という一般的なコンテキストで説明することができる。コンピュータ読み取り可能媒体は、計算環境内においてアクセスすることができる、任意の入手可能な有形媒体である。一例として、そして限定ではなく、計算システム(100)では、コンピュータ読み取り可能媒体はメモリ(120、125)、ストレージ(140)、および以上の内任意のものの組み合わせを含む。
【0046】
[052] 本願の新技術については、計算システムにおいて目標の実プロセッサまたは仮想プロセッサ上で実行されるプログラム・モジュール(コンピュータ・プログラム製品とも呼ぶ)に含まれるような、コンピュータ実行可能命令(マシン読み取り可能命令とも呼ぶ)という一般的なコンテキストで説明することができる。一般に、プログラム・モジュールは、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含み、特定のタスクを実行するか、または特定の抽象データ型を実装する。プログラム・モジュールの機能は、種々の実施形態において望まれる通りに組み合わされてもよく、またはプログラム・モジュール間で分割されてもよい。プログラム・モジュールのコンピュータ実行可能命令は、ローカルまたは分散型計算システム内において実行されてもよい。
【0047】
[053] 「システム」および「デバイス」という用語は、本明細書では相互交換可能に使用される。コンテキストが明らかに別のことを示さなければ、いずれの用語も計算システムや計算デバイスのタイプについて何の限定も暗示しない。一般に、計算システムまたは計算デバイスは、ローカルまたは分散型であることができ、特殊目的ハードウェアおよび/または汎用ハードウェアの任意の組み合わせを含むことができ、本明細書において説明する機能をソフトウェアが実現する。
【0048】
[054] また、開示する方法は、開示する方法の内任意のものを実行するように構成された特殊計算ハードウェアを使用して実現することもできる。例えば、開示する方法は、開示する方法の内任意のものを実現するように特別に設計または構成された集積回路によって実現することができる(例えば、ASICディジタル信号処理ユニットのようなASIC、グラフィクス処理ユニット、またはフィールド・プログラマブル・ゲート・アレイのようなプログラマブル・ロジック・デバイス)。
【0049】
[055] 提示の目的上、詳細な説明では、計算システムにおけるコンピュータ動作を説明するために、「判定する」、「供給する」、および「使用する」というような用語を使用する。これらの用語は、コンピュータによって実行される動作に対する上位抽象化であり、人間によって行われる行為と混同されるべきでない。これらの用語に対応する実際のコンピュータ動作は、実施態様に応じて様々に変化する。
【0050】

II.可変入力長調整可能暗号(「VILTC」)の組み立てまたは使用のためのアーキテクチャ例
[056] 図2は、可変入力長調整可能暗号(「VILTC」)の組み立ておよび使用のためのアーキテクチャ例(200)を示す。具体的には、このアーキテクチャは可変入力長調整可能暗号(「VILTC」)を使用する暗号化/復号サービス(222)を含む。
【0051】
[057] 図2において、アプリケーション(210、212)は、オペレーティング・システム(220)と相互作用するソフトウェアを表す。アプリケーション(210、212)は、データベース・トランザクション処理または分析アプリケーション、ウェブ・ブラウザ、ワード・プロセッサまたはその他の生産性ソフトウェア(ファイル探索機能付き)、メッセージ・サービスあるいは暗号化または復号を使用する任意の他のタイプのアプリケーションを含むことができる。図2は2つのアプリケーションを示すが、アーキテクチャ(200)はそれよりも多いまたは少ないアプリケーションを含むことができる。
【0052】
[058] アプリケーション(210、212)は、暗号化/復号サービス(222)を使用するために、オペレーティング・システム(220)と相互作用する。アプリケーション(210、212)またはオペレーティング・システム(220)の内1つによって要求されると、暗号化/復号サービス(222)は、ディスク・ストレージ(230)または主メモリ(240)に格納されているデータ(例えば、データベース用)を暗号化することができる。逆に、暗号化/復号サービス(222)は、アプリケーション(210、212)またはオペレーティング・システム(220)の内1つによって要求されたデータを復号することができる。例えば、完全ディスク暗号化(「FDE」)では、暗号化/復号サービス(222)は、透過的に、ディスク・ストレージ(230)に格納されているデータを暗号化し、ディスク・ストレージ(230)から戻されたデータを復号する。また、フォーマット保存暗号化(「FPE」)では、暗号化/復号サービス(222)は、暗号化されないデータと同じフォーマットを有するように、ディスク・ストレージ(230)または主メモリ(240)に格納されているデータを暗号化する。例えば、クレジット・カード番号のようなデータは、暗号化された値もクレジット・カード番号としてフォーマットされたままとなるように暗号化される。他の例として、関連データ付き認証付暗号化(「AEAD」)では、暗号化/復号サービス(222)は、アプリケーション(210、212)の内1つに対するヘッダを有するメッセージを暗号化し、アプリケーション(210、212)の1つのために暗号化メッセージを復号する。
【0053】

III.表記法および原理
[059] この章では、詳細な説明の残りの部分において使用される表記法について説明する。また、本明細書において説明する暗号化/復号システムのある種の態様について、動作原理も説明する。
【0054】
[060] 一般に、
【0055】
【数3】
[この文献は図面を表示できません]
【0056】
は、負でない整数の集合を表す。
【0057】
【数4】
[この文献は図面を表示できません]
【0058】
(集合
【0059】
【数5】
[この文献は図面を表示できません]
【0060】
のメンバである数n)について、{0,1}は、全てのn−ビット二進文字列の集合を示し、{0,1}は、全ての(有限)二進文字列の集合を示す。記号εは空文字列を示す。
【0061】
[061] 文字列sおよびtは有限二進文字列(即ち、s、t∈{0,1})であると仮定する。値|s|は、ビットを単位としたsの長さである。値
【0062】
【数6】
[この文献は図面を表示できません]
【0063】
であり、ここで、s||tは、文字列sおよびtを連結することによって形成される文字列を示す。s∈{0,1}nmの場合、ある
【0064】
【数7】
[この文献は図面を表示できません]
【0065】
について、式
【0066】
【数8】
[この文献は図面を表示できません]
【0067】
は、各sが、長さ|s|=n、s=s,s,...sとなるように定義されることを意味する。コンテキストからnが暗黙的である場合、この表記から省略されてもよい。s=b,b,...bがn−ビット文字列(各b∈{0,1})である場合、文字列sの一部は以下のように表される。
【0068】
【数9】
[この文献は図面を表示できません]
【0069】
【数10】
[この文献は図面を表示できません]
【0070】
【数11】
[この文献は図面を表示できません]
【0071】
[062] 文字列
【0072】
【数12】
[この文献は図面を表示できません]
【0073】
は、文字列sおよびtのビット毎の排他的論理和(「XOR」)である。例えば、|s|<|t|の場合、
【0074】
【数13】
[この文献は図面を表示できません]
【0075】
はsおよび
【0076】
【数14】
[この文献は図面を表示できません]
【0077】
のビット毎のXORである。
[063] n≦min(R)として、
【0078】
【数15】
[この文献は図面を表示できません]
【0079】
および
【0080】
【数16】
[この文献は図面を表示できません]
【0081】
と仮定すると、文字列
【0082】
【数17】
[この文献は図面を表示できません]
【0083】
が得られ、記号の濫用により、
【0084】
【数18】
[この文献は図面を表示できません]
【0085】
となる。有限集合
【0086】
【数19】
[この文献は図面を表示できません]
【0087】
を仮定すると、式
【0088】
【数20】
[この文献は図面を表示できません]
【0089】
は、ランダム変数Xが
【0090】
【数21】
[この文献は図面を表示できません]
【0091】
からランダムに均一にサンプリングされることを意味する。全域にわたり、区別される記号⊥は、{⊥}を除いていずれの集合の一部でもないと仮定する。ある範囲内にあることが分かっている整数nを仮定すると、<n>は、nのある固定長(例えば、64ビット)のエンコード処理(encoding)を示す。例えば、<0>は値0の64−ビット・エンコード処理を示すことができる。
【0092】
[064] 関数
【0093】
【数22】
[この文献は図面を表示できません]
【0094】
その第1引数を添え字付き鍵として書くと、
【0095】
【数23】
[この文献は図面を表示できません]
【0096】
の全ての別個の値について確率が、
【0097】
【数24】
[この文献は図面を表示できません]
【0098】
(ここで、確率は、
【0099】
【数25】
[この文献は図面を表示できません]
【0100】
を超える)である場合、関数Hは∈−殆ど不偏的(∈-almost universal)(∈−AU))となる。同様に、全ての別個のX,
【0101】
【数26】
[この文献は図面を表示できません]
【0102】
および
【0103】
【数27】
[この文献は図面を表示できません]
【0104】
について確率が、
【0105】
【数28】
[この文献は図面を表示できません]
【0106】
である場合、 関数Hは∈−殆ど2−XOR不偏的(∈-almost 2-XOR universal)となる。
[065] アドバーサリー(adversary)とは、0個以上のオラクル(oracle)を入力として取り込むアルゴリズムのことである。アドバーサリーは、何らかの出力を戻す前に、ブラックボックス的に質問する。アドバーサリーはランダムであってもよい。表記A⇒bは、アドバーサリーAが、オラクルfをその入力として実行した後に、bを出力するというイベントを示す。
【0107】
[066] ときには、アドバーサリーが相互作用することができるオラクルの擬似コード記述、およびこのような相互作用を設定するまたそうでなければ関係付ける手順を与えると便利である。これらの記述をゲームと呼ぶ。ゲームは、1組の手順を含み、アドバーサリーAを入力として取り込む特殊な「主」手順を含む。
【0108】
【数29】
[この文献は図面を表示できません]
【0109】
は、ゲームGの主手順が、アドバーサリーAが入力として与えられたときにyを出力する確率である。主手順が明示的に与えられない場合、Main(A)は単にAを実行し、(コンテキストから明確になるある順序で)残りの手順をオラクルとしてそれに供給し、次いでAの出力を戻す。
[067]
【0110】
【数30】
[この文献は図面を表示できません]
【0111】
は、非空集合であり、そして文字列
【0112】
【数31】
[この文献は図面を表示できません]
【0113】
である。調整可能暗号は、マッピング
【0114】
【数32】
[この文献は図面を表示できません]
【0115】
であり、全ての
【0116】
【数33】
[この文献は図面を表示できません]
【0117】
について、調整可能暗号
【0118】
【数34】
[この文献は図面を表示できません]
【0119】
【0120】
【数35】
[この文献は図面を表示できません]
【0121】
上の置換であるというプロパティを有する。鍵は、通例、添え字として示されるので、
【0122】
【数36】
[この文献は図面を表示できません]
【0123】
となる。調整可能暗号
【0124】
【数37】
[この文献は図面を表示できません]
【0125】
は、反転可能であり、
【0126】
【数38】
[この文献は図面を表示できません]
【0127】
で示される。
【0128】
【数39】
[この文献は図面を表示できません]
【0129】
は、鍵空間を示し、
【0130】
【数40】
[この文献は図面を表示できません]
【0131】
はトウィーク空間を示し、
【0132】
【数41】
[この文献は図面を表示できません]
【0133】
はメッセージ空間を示す。調整可能暗号
【0134】
【数42】
[この文献は図面を表示できません]
【0135】
は、全ての
【0136】
【数43】
[この文献は図面を表示できません]
【0137】
について、
【0138】
【数44】
[この文献は図面を表示できません]
【0139】
である場合、長さを保存する。調整可能暗号のトウィークまたはメッセージ空間を制限すると他のオブジェクトが生ずる。あるn>0についてメッセージ空間
【0140】
【数45】
[この文献は図面を表示できません]
【0141】
であるとき、
【0142】
【数46】
[この文献は図面を表示できません]
【0143】
はブロック・サイズがnの調整可能ブロック暗号(「TBC」)である。更に一般化すると、nーキャラクタ
【0144】
【数47】
[この文献は図面を表示できません]
【0145】
は、メッセージ空間
【0146】
【数48】
[この文献は図面を表示できません]
【0147】
にわたる置換の一群であり、調整可能ブロック暗号(「TBC」)における各置換は、鍵およびトウィークに関連付けられる。
【0148】
【数49】
[この文献は図面を表示できません]
【0149】
のとき、トウィークは暗示的であり、暗号
【0150】
【数50】
[この文献は図面を表示できません]
【0151】
を与える。ここでE(・)は、
【0152】
【数51】
[この文献は図面を表示できません]
【0153】
上の(長さ保存)置換であり、E−1はその逆である。最後に、メッセージ空間
【0154】
【数52】
[この文献は図面を表示できません]
【0155】
および
【0156】
【数53】
[この文献は図面を表示できません]
【0157】
のとき、従来のブロック暗号は、
【0158】
【数54】
[この文献は図面を表示できません]
【0159】
となる。
[068] 値N(大文字)は、N−ビット調整可能ブロック暗号(「TBC」)またはNキャラクタ調整可能ブロック暗号(「TBC」)について入力文字列の長さ、または可変入力長調整可能暗号(「VILTC」)について初期化ベクトル(「IV」)の長さを示す。N−ビット調整可能ブロック暗号(「TBC」)および可変入力長調整可能暗号(「VILTC」)は、n−ビット・ブロック暗号から組み立てることができ、ここでn(小文字)はブロック暗号のブロック・サイズを示す。ある例では、N=nとなる。他の例では、N=2nとなる。
【0160】
[069]
【0161】
【数55】
[この文献は図面を表示できません]
【0162】
は、
【0163】
【数56】
[この文献は図面を表示できません]
【0164】
上における全ての置換の集合を示す。
【0165】
【数57】
[この文献は図面を表示できません]
【0166】
は、鍵空間
【0167】
【数58】
[この文献は図面を表示できません]
【0168】
およびメッセージ空間
【0169】
【数59】
[この文献は図面を表示できません]
【0170】
を有する全ての暗号の集合である。
【0171】
【数60】
[この文献は図面を表示できません]
【0172】
が集合であるとき、
【0173】
【数61】
[この文献は図面を表示できません]
【0174】
は、全ての関数
【0175】
【数62】
[この文献は図面を表示できません]
【0176】
の集合である。調整可能暗号は次の通りである
【0177】
【数63】
[この文献は図面を表示できません]
【0178】
調整可能擬似ランダム置換(「TPRP」)および強いTPRP(強調整可能擬似ランダム置換(「STPRP」))の利点尺度(advantage measure)は、次のようになる。
【0179】
【数64】
[この文献は図面を表示できません]
【0180】
ここで、各場合において、アドバーサリーAは、指示された数のオラクルを取り込む。調整可能擬似ランダム置換(「TPRP」)および強調整可能擬似ランダム置換(「STPRP」)実験双方に対して、アドバーサリーAは決してオラクルに対する質問を繰り返さない。また、強調整可能擬似ランダム置換(「STPRP」)利点尺度について、これは、アドバーサリーAがその最も左側のオラクルに(T,X)を質問し、見返りにYを受けた場合、アドバーサリーAは決してその最も右のオラクルに(T,Y)を質問しないこと、そしてその逆も意味する。
【0181】
[070] 関連尺度、SRND利点は、次のように定義される。
【0182】
【数65】
[この文献は図面を表示できません]
【0183】
ここで、
【0184】
【数66】
[この文献は図面を表示できません]
【0185】
オラクルは、全てのTおよびXに対して、その第2入力|$(T,X)|=|X|と長さが等しいランダム文字列を出力する。以上の3つの利点に対するアドバーサリーは、それらのオラクル・質問(T,X)、...(T,X)のトランスクリプト(transcript)が任意のi≠jに対してT=Tを含まない場合、ノンス制約付き(nonce-respecting)である。
【0186】
[071] 暗号
【0187】
【数67】
[この文献は図面を表示できません]
【0188】
について、擬似ランダム置換(「PRP」)および強擬似ランダム置換(「SPRP」)の利点尺度は、次のように定義される。
【0189】
【数68】
[この文献は図面を表示できません]
【0190】
ここで、各場合において、アドバーサリーAは、示された数のオラクルを取り込む。
[072] 3つのアドバーサリー・リソース(adversarial resource)を追跡する。時間複雑性t、オラクルの質問数q、およびこれらの質問の全長μとする。アドバーサリーAの時間複雑性は、その包絡確率実験(鍵のサンプリング、オラクルの計算等を含む)の複雑性を含むと定義され、パラメータtは、利点尺度において双方の実験に要した、アドバーサリーAの最大時間複雑性であると定義される。
【0191】

IV.初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)の一般化された構造および使用
[073] 図3aから図3cは、初期化ベクトルが保護された可変入力長調整可能暗号(「VILTC」)の構造(300、301、302)を一般化して示す。一般化された構造(300、301、302)は、暗号化に使用することができ、平文の固定長入力文字列Xおよび可変長入力文字列Xが、暗号文の固定長出力文字列Yおよび可変長出力文字列Yに変換される。また、一般化された構造(300、301、302)は、復号にも使用することができ、暗号文の固定長入力文字列Yおよび可変長入力文字列Yが、平文の固定長出力文字列Xおよび可変長出力文字列Xに変換される。
【0192】
[074] 図3aの構造(300)では、第1固定入力長調整可能ブロック暗号(「FIL TBC」)(320a)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)(340a)が、固定長初期化ベクトル(328a)をシステム外部への露出から保護する。バッファ(310)が、固定長入力文字列(311a)および可変長入力文字列(312)を格納する。第1固定入力長調整可能ブロック暗号(「FIL TBC」)(320a)は、固定長初期化ベクトル(328a)を生成するように構成されている。例えば、第1固定入力長調整可能ブロック暗号(「FIL TBC」)(320a)は、固定長入力文字列(311a)が入力される毎にこれを使用して固定長初期化ベクトル(328a)を生成し、更にシステムに対するトウィーク(318)および可変長入力文字列(312)の組み合わせ(例えば、連結(concatenation)または他の調節)をそのトウィークとして生成するように構成されている。図3aでは、第1固定入力長調整可能ブロック暗号(「FIL TBC」)(320a)(および第2固定入力長調整可能ブロック暗号(「FIL TBC」)(340a))の網掛け部分(filled-in portion)は、トウィーク入力を表す。トウィーク(318)の値は、システムの環境的特徴(例えば、完全ディスク暗号化(「FDE」)では論理ハード・ディスク・セクタID、メモリ・アドレス、フォーマット保存暗号化(「FPE」)ではクレジット・カード番号の下4桁)に基づくことができる。
【0193】
[075] 図3aでは、可変入力長調整可能暗号(「VILTC」)(330)は、固定長初期化ベクトル(328a)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、固定長初期化ベクトル(328a)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用し、可変長出力文字列(352)を生成するように構成されている。
【0194】
[076] 図3aでは、第2固定入力長調整可能ブロック暗号(「FIL TBC」)(340a)は、固定長出力文字列(351a)を生成するように構成されている。例えば、第2固定入力長調整可能ブロック暗号(「FIL TBC」)(340a)は、固定長初期化ベクトル(328a)をその入力として使用し、トウィーク(318)および可変長出力文字列(352)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、固定長出力文字列(351a)を生成するように構成されている。通例、第1固定入力長調整可能ブロック暗号(「FIL TBC」)(320a)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)(340a)は、トウィーク(318)に対して同じ値を使用する。他のバッファ(350)が、固定長出力文字列(351a)および可変長出力文字列(352)を格納する。
【0195】
[077] 図3bは、フォーマット保存暗号化および復号に適応する構成とした構造(300)の変種を示す。図3bの構造(301)では、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)および第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)が、N−キャラクタ初期化ベクトル(328b)をシステム外部への露出から保護する。バッファ(310)が、N−キャラクタ入力文字列(311b)および可変長入力文字列(312)を格納する。第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)は、N−キャラクタ初期化ベクトル(328b)を生成するように構成されている。例えば、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)は、N−キャラクタ入力文字列(311b)をその入力として使用し、システムに対するトウィーク(318)および可変長入力文字列(312)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、N−キャラクタ初期化ベクトル(328b)を生成するように構成されている。トウィーク(318)の値は、システムの環境的特徴(例えば、フォーマット保存暗号化(「FPE」)では、クレジット・カード番号の下4桁)に基づくことができる。
【0196】
[078] 図3bでは、可変入力長調整可能暗号(「VILTC」)(330)は、N−キャラクタ初期化ベクトル(328b)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、N−キャラクタ初期化ベクトル(328b)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用して、可変長出力文字列(352)を生成するように構成されている。
【0197】
[079] 図3bでは、第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)は、N−キャラクタ出力文字列(351b)を生成するように構成されている。例えば、第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)は、N−キャラクタ初期化ベクトル(328b)をその入力として使用し、トウィーク(318)および可変長出力文字列(352)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、N−キャラクタ出力文字列(351b)を生成するように構成されている。通例、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)および第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)は、システムに対するトウィーク(318)に同じ値を使用する。他のバッファ(350)が、N−キャラクタ出力文字列(351b)および可変長出力文字列(352)を格納する。
【0198】
[080] N−キャラクタ入力文字列(311b)、可変長入力文字列(312)、N−キャラクタ出力文字列(351b)、および可変長出力文字列(352)のキャラクタ は、所定の有限な1組の記号(例えば、数値0...9、文字A...Zおよび数値0...9)から選択される。N−キャラクタ入力文字列(311b)、N−キャラクタ初期化ベクトル(328b)、およびN−キャラクタ出力文字列(351b)のNの数値例は、N=1またはN=2である。更に一般的には、Nは任意の正の整数とすることができる。
【0199】
[081] 一般化された構造(301)は、種々の方法で実現することができる。例えば、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)、可変入力長調整可能暗号(「VILTC」)(330)、および第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)は、ランダム生成置換参照表から組み立てることができる。一般に、調整可能ブロック暗号(「TBC」)における各置換にはトウィークおよび鍵が関連付けられることを思い出すこと。トウィークおよび鍵は、調整可能ブロック暗号(「TBC」)への入力として、調整可能ブロック暗号(「TBC」)に対する特定の置換を指定する。ある実施態様では(例えば、規制圧力が強いクレジット・カード支払い業界におけるフォーマット保存暗号化(「FPE」)の応用)、ユーザは明示的な鍵を避ける方を好む場合がある。このような場合、トウィークが、ランダム生成置換参照表の一群から選択するために使用される。
【0200】
[082] 更に一般的には、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)、第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)、および可変入力長調整可能暗号(「VILTC」)(330)は、特殊目的ハードウェアを使用して実現することができ、または汎用ハードウェア上で実行するソフトウェアを使用して実現することができる。通例、2つのN−キャラクタ調整可能ブロック暗号(「TBC」)(320b、340b)は、前述のように、1つのN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントに対する、異なる入力および出力を用いた、2回のコールによって供給される。代わりに、しかしながら、N−キャラクタ調整可能ブロック暗号(「TBC」)(320b、340b)に2つの異なるN−キャラクタ調整可能ブロック暗号(「TBC」)コンポーネントを供給することもできる。
【0201】
[083] 図3cは、完全ディスク暗号化および復号に適応する構成とした構造(300)の変種を示す。図3cの構造(302)では、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)および第2N−ビット調整可能ブロック暗号(「TBC」)(340c)が、N−ビット初期化ベクトル(328c)をシステム外部への露出から保護する。バッファ(310)が、N−ビット入力文字列(311c)および可変長入力文字列(312)を格納する。Nの数値例は、128および256ビットである。可変長入力文字列(312)の長さの値の例は、4096バイトおよび8192バイトである。
【0202】
[084] 図3cでは、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)は、N−ビット初期化ベクトル(328c)を生成するように構成されている。例えば、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)は、N−ビット入力文字列(311c)をその入力として使用し、システムに対するトウィーク(318)および可変長入力文字列(312)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、N−ビット初期化ベクトル(328c)を生成するように構成されている。トウィーク(318)の値は、システムの環境的特徴(例えば、完全ディスク暗号化(「FDE」)では、論理的ハード・ディスク・セクタID)に基づくことができる。
【0203】
[085] 図3cでは、可変入力長調整可能暗号(「VILTC」)(330)は、N−ビット初期化ベクトル(328c)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、N−ビット初期化ベクトル(328c)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用して、可変長出力文字列(352)を生成するように構成されている。
【0204】
[086] 図3cでは、第2N−ビット調整可能ブロック暗号(「TBC」)(340c)は、N−ビット出力文字列(351c)を生成するように構成されている。例えば、第2N−ビット調整可能ブロック暗号(「TBC」)(340c)は、N−ビット初期化ベクトル(328c)をその入力として使用し、トウィーク(318)および可変長出力文字列(352)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、N−ビット出力文字列(351c)を生成するように構成されている。通例、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)および第2N−ビット調整可能ブロック暗号(「TBC」)(340c)は、システムに対するトウィーク(318)に同じ値を使用する。他のバッファ(350)が、N−ビット出力文字列(351c)および可変長出力文字列(352)を格納する。
【0205】
[087] 一般化された構造(302)は、以下で詳述するように、多くの方法で実現することができる。第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)は、同じ構造を有する。あるいは、これらは異なる構造を有する。
【0206】
[088] 例えば、一実施態様では、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)および/または第2N−ビット調整可能ブロック暗号(「TBC」)(340c)は、LRW2 TBC構造(以下で詳述する。章V.A.を参照のこと)であり、可変入力長調整可能暗号(「VILTC」)(330)は、反復LRW2 TBC構造である。以下で更に詳述するが、LRW2 TBC構造は、(1)(a)n−ビットLRW2入力文字列と(b)トウィーク入力のn−ビット・ハッシュとの間のXORの暗号化バージョンと、(2)トウィーク入力のn−ビット・ハッシュとの間のXORを計算することによって、n−ビットLRW2出力文字列を生成するように構成されている。他の例として、他の実施態様では、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)および/または第2N−ビット調整可能ブロック暗号(「TBC」)(340c)は、ドメイン拡張CLRW2構造(以下で定義する。章V.A.を参照のこと)であり、可変入力長調整可能暗号(「VILTC」)(330)は反復CLRW2構造である。
【0207】
[089] 構造(302)は、安全性と実装効率とのトレードオフを得るためにN(固定長入力文字列および固定長出力文字列のビット数)を調節するように構成されたコントローラ(図示せず)も含むことができる。Nの値が小さい程(例えば、128)、安全性が悪化するが、安全性制約に伴い効率的な実装が簡素化する。他方で、Nの値が大きい程(例えば、256)高い安全性が得られるが、安全性制約に伴い効率的な実装が複雑化する。
【0208】
[090] 一般に、Nは任意の正の整数とすることができる。保護された初期化ベクトル(「IV」)の構造の固定入力長(「FIL」)および可変入力長(「VIL」)コンポーネントが基礎の128−ビット・ブロック暗号(例えば、AES)から組み立てられるとき、N=128およびN=256という数値が相応しい。PIV構造が、他のサイズのブロック暗号(ブロック・サイズが64ビットのDESのような)を使用して実現される場合、Nには他の値が適していることもある(例えば、64または128ビット)。
【0209】
[091] 第1N−ビット調整可能ブロック暗号(「TBC」)(320c)、第2N−ビット調整可能ブロック暗号(「TBC」)(340c)、および可変入力長調整可能暗号(「VILTC」)(330)は、特殊目的ハードウェアを使用して実装することができる。また、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)、第2N−ビット調整可能ブロック暗号(「TBC」)(340c)、および可変入力長調整可能暗号(「VILTC」)(330)は、汎用ハードウェア上で実行するソフトウェアを使用して実装することもできる。通例、2つのN−ビット調整可能ブロック暗号(「TBC」)(320c、340c)は、前述のように、1つのN−ビット調整可能ブロック暗号(「TBC」)コンポーネントに対する2回のコールによって、異なる入力および出力を用いて、供給される。代わりに、しかしながら、N−ビット調整可能ブロック暗号(「TBC」)(320c、340c)に2つの異なるN−ビット調整可能ブロック暗号(「TBC」)コンポーネントを供給することもできる。
【0210】
[092] 構造(302)は、一種の3ラウンド、不均衡ファイステル・ネットワーク(three-round, unbalanced Feistel network)として解釈することができ、入力の左部が固定ビット長Nであり、右部が可変長を有する。1回目および3回目のラウンド関数が、N−ビット
【0211】
【数69】
[この文献は図面を表示できません]
【0212】
(320c、340c)となる。実施態様例では、ビット長Nは、この構造の調整可能な(tunable)パラメータであり、N=128またはN−256というような値を有することができる。可変入力長調整可能暗号(「VILTC」)(330)は、中間ラウンド関数
【0213】
【数70】
[この文献は図面を表示できません]
【0214】
を提供し、そのトウィークは、最初のラウンドの出力、即ち、初期化ベクトルIV(328c)となる。
[093] 初期化ベクトル(「IV」)が保護されない従来の
【0215】
【数71】
[この文献は図面を表示できません]
【0216】
と比較すると、初期化ベクトル(「IV」)が保護される可変入力長調整可能暗号(「VILTC」)
【0217】
【数72】
[この文献は図面を表示できません]
【0218】
における可変入力長調整可能暗号(「VILTC」)モジュール
【0219】
【数73】
[この文献は図面を表示できません]
【0220】
は、安全性要件を低く抑えることができる。
【0221】
【数74】
[この文献は図面を表示できません]
【0222】
に対する目標安全性プロパティは、強調整可能擬似ランダム置換(「STPRP」)安全(STPRP-secure)であるということである。非公式には、強調整可能擬似ランダム置換(「STPRP」)安全であるとは、攻撃者も全ての入力にわたって完全な制御を有する、選択暗号文攻撃に耐えることを意味する。攻撃者は、例えば、トウィークを任意の回数繰り返すことができる。章VIIにおいて詳述するが、
【0223】
【数75】
[この文献は図面を表示できません]
【0224】
が、N−ビット文字列のドメインにわたって強調整可能擬似ランダム置換(「STPRP」)安全であり、調整可能暗号
【0225】
【数76】
[この文献は図面を表示できません]
【0226】
が、トウィークを決して繰り返さない攻撃に対して安全である場合、
【0227】
【数77】
[この文献は図面を表示できません]
【0228】
は強調整可能擬似ランダム置換(「STPRP」)安全となる。定性的に、初期化ベクトル(「IV」)保護構造は、制限された種類の攻撃者に対する安全性を、任意の選択暗号文攻撃に対する安全性に高める(大きなドメインにわたって)。定量的に、
【0229】
【数78】
[この文献は図面を表示できません]
【0230】
に対する安全性限界(security bound)は、加算項q/2を有し、qは、
【0231】
【数79】
[この文献は図面を表示できません]
【0232】
が質問される回数である。Nは、ある基礎のブロック暗号のブロック・サイズnとすることができる。この場合、
【0233】
【数80】
[この文献は図面を表示できません]
【0234】
は、既存の構造によって得られるものに比肩し得る限界(bound)を達成する。N=2nの場合、n−ビット・プリミティブを使用して
【0235】
【数81】
[この文献は図面を表示できません]
【0236】
および
【0237】
【数82】
[この文献は図面を表示できません]
【0238】
をインスタンス化することができ、なおも
【0239】
【数83】
[この文献は図面を表示できません]
【0240】
は、2n/2回の質問という誕生日超え(beyond-birthday)を遙かに超える安全性を有する調整可能暗号を提供する。
[094] 公式的には、実施形態例では、
【0241】
【数84】
[この文献は図面を表示できません]
【0242】
は、以下に基づいて組み立てられる。 あるt≧0について、トウィーク空間
【0243】
【数85】
[この文献は図面を表示できません]
【0244】
とする。
【0245】
【数86】
[この文献は図面を表示できません]
【0246】
である場合、
【0247】
【数87】
[この文献は図面を表示できません]
【0248】
となるように、
【0249】
【数88】
[この文献は図面を表示できません]
【0250】
とする。
【0251】
【数89】
[この文献は図面を表示できません]
【0252】
N>0の整数について、
【0253】
【数90】
[この文献は図面を表示できません]
【0254】
および
【0255】
【数91】
[この文献は図面を表示できません]
【0256】
これらから、
【0257】
【数92】
[この文献は図面を表示できません]
【0258】
ここで、
【0259】
【数93】
[この文献は図面を表示できません]
【0260】
[095]
【0261】
【数94】
[この文献は図面を表示できません]
【0262】
のPIV組成(composition)は、3ラウンド・ファイステル構造であり、以下のように動作する。入力(T、X)上において、平文入力文字列X=X||X、ここで固定長部の長さは|X|=Nである。第1
【0263】
【数95】
[この文献は図面を表示できません]
【0264】
は、鍵K’を使用して、初期化ベクトル
【0265】
【数96】
[この文献は図面を表示できません]
【0266】
に対してN−ビット文字列を作成する。次に、
【0267】
【数97】
[この文献は図面を表示できません]
【0268】
はこの初期化ベクトル(「IV」)を使用して、鍵Kを用いて可変長入力文字列Xを暗号化し、可変長出力文字列
【0269】
【数98】
[この文献は図面を表示できません]
【0270】
を作成する。第2
【0271】
【数99】
[この文献は図面を表示できません]
【0272】
は、N−ビット出力文字列
【0273】
【数100】
[この文献は図面を表示できません]
【0274】
を作成する。暗号文出力文字列Y||Yは、
【0275】
【数101】
[この文献は図面を表示できません]
【0276】
の値として戻される。
[096] 逆に、反転構造(inverse construction)
【0277】
【数102】
[この文献は図面を表示できません]
【0278】
は、次のように動作する。入力(T,Y)上において、暗号文入力文字列はY=Y||Yであり、ここで固定長部の長さは|Y|=Nである。第1
【0279】
【数103】
[この文献は図面を表示できません]
【0280】
は、鍵K’を使用して、初期化ベクトル
【0281】
【数104】
[この文献は図面を表示できません]
【0282】
に対してN−ビット文字列を作成する。次に、
【0283】
【数105】
[この文献は図面を表示できません]
【0284】
はこの初期化ベクトル(「IV」)を使用して、鍵Kを用いて可変長入力文字列Yを復号し、可変長出力文字列
【0285】
【数106】
[この文献は図面を表示できません]
【0286】
を作成する。第2
【0287】
【数107】
[この文献は図面を表示できません]
【0288】
は、N−ビット出力文字列
【0289】
【数108】
[この文献は図面を表示できません]
【0290】
を作成する。平文出力文字列X||Xは、
【0291】
【数109】
[この文献は図面を表示できません]
【0292】
の値として戻される。
[097] 図3cでは、構造は3つのラウンドを含む。あるいは、構造はもっと多くのラウンド(例えば、5ラウンドまたは7ラウンド)を含むことができ、N−ビット
【0293】
【数110】
[この文献は図面を表示できません]
【0294】
がこの構造を開始および終了し、多数の
【0295】
【数111】
[この文献は図面を表示できません]
【0296】
コンポーネントがN−ビット
【0297】
【数112】
[この文献は図面を表示できません]
【0298】
の間で交互に現れる。
[098] 図4は、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)を使用するための技法(400)を一般化して示す。暗号化システムまたは復号システムは、技法(400)を実行する。
【0299】
[099] 本システムは、固定長入力文字列(例えば、N−ビット入力文字列、N−キャラクタ入力文字列)、および可変長入力文字列を受ける(410)。暗号化では(例えば、完全ディスク暗号化(「FDE」)、フォーマット保存暗号化(「FPE」)、関連データ付き認証付暗号化(「AEAD」)、または他の暗号化のシナリオの間)、固定長入力文字列および可変長入力文字列は平文である。対応する復号では、固定長入力文字列および可変長入力文字列は暗号文である。
【0300】
[0100] 本システムは、固定長初期化ベクトル(例えば、N−ビット初期化ベクトル、N−キャラクタ初期化ベクトル)を生成する(420)。例えば、固定長初期化ベクトルは、固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力である固定長入力文字列に基づき、更に固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システムに対するトウィークおよび可変長入力文字列の組み合わせに基づいて、固定入力長調整可能ブロック暗号(「FIL TBC」)によって生成される。固定入力長調整可能ブロック暗号(「FIL TBC」)は、例えば、N−ビット調整可能ブロック暗号(「TBC」)またはN−キャラクタ調整可能ブロック暗号(「TBC」)とすることができる。固定入力長調整可能ブロック暗号(「FIL TBC」)に対して、本システムは、システムの環境的特徴(例えば、ディスク・セクタ、メモリ・アドレス)に基づいてトウィークの値を設定するか、または何らかの他の方法でトウィークの値を設定することができる。あるいは、固定長初期化ベクトルは、何らかの他の方法で生成される。
【0301】
[0101] また、本システムは、固定長初期化ベクトルをトウィークとして使用する可変入力長調整可能暗号(「VILTC」)によって、可変長出力文字列を生成する(430)。例えば、可変入力長調整可能暗号(「VILTC」)は、固定長初期化ベクトル(可変入力長調整可能暗号(「VILTC」)に対するトウィークとして)および可変長入力文字列(可変入力長調整可能暗号(「VILTC」)に対する入力として)に基づいて、可変長出力文字列を生成する。あるいは、可変長出力文字列は、何らかの他の方法で生成される。
【0302】
[0102] 本システムは、固定長初期化ベクトルを曖昧にする(440)。例えば、固定長初期化ベクトルは、固定入力長調整可能ブロック暗号(「FIL TBC」)によって曖昧にされ、固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力である固定長初期化ベクトル、および固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システム・トウィークおよび可変長出力文字列の組み合わせに基づいて、固定長出力ストリング(例えば、N−ビット出力文字列、N−キャラクタ出力文字列)を生成する。固定入力長調整可能ブロック暗号(「FIL TBC」)は、例えば、N−ビット調整可能ブロック暗号(「TBC」)またはN−キャラクタ調整可能ブロック暗号(「TBC」)とすることができる。あるいは、固定長初期化ベクトルは、何らかの他の方法で曖昧にされる。
【0303】
[0103] 最後に、本システムは、固定長出力文字列および可変長出力文字列を出力する(450)。暗号化では(例えば、完全ディスク暗号化(「FDE」)、フォーマット保存暗号化(「FPE」)、関連データ付き認証付暗号化(「AEAD」)、または他の暗号化のシナリオの間)、固定長出力文字列および可変長出力文字列は暗号文である。対応する復号では、固定長出力文字列および可変長出力文字列は平文である。
【0304】

V.初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)の実施態様例
[0104] 初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)に対する一般的なフレームワーク内において、固定入力長(「FIL」)部
【0305】
【数113】
[この文献は図面を表示できません]
【0306】
および可変入力長(「VIL」)部
【0307】
【数114】
[この文献は図面を表示できません]
【0308】
を独立して組み立てることができる。このモジュール型手法は、トウィークが繰り返さないと仮定できるときには、可変入力長(「VIL」)部
【0309】
【数115】
[この文献は図面を表示できません]
【0310】
の効率的で安全なインスタンス化を組み立てることが容易であるのが通例なので、有効である。トウィークが繰り返されるかもしれないときに安全であり続ける
【0311】
【数116】
[この文献は図面を表示できません]
【0312】
を組み立てることは、固定ビット長N(即ち、N−ビット・ブロック・サイズ)の平文入力をそれに処理させることによって、簡略化される。実際には、N=128または256のとき、
【0313】
【数117】
[この文献は図面を表示できません]
【0314】
によって生ずる非効率は、
【0315】
【数118】
[この文献は図面を表示できません]
【0316】
における効率利得によって相殺することができる。
[0105] ブロック・サイズNをできるだけ大きく設定することには、安全性上の利点があるが、大きなNに対してドメイン{0,1}Nを有し、
【0317】
【数119】
[この文献は図面を表示できません]
【0318】
がq/2に接近する
【0319】
【数120】
[この文献は図面を表示できません]
【0320】
を構築すると、複雑になる。具体的には、現在では、n−ビット・ブロック暗号を開始点として使用するとき、
【0321】
【数121】
[この文献は図面を表示できません]
【0322】
が、
【0323】
【数122】
[この文献は図面を表示できません]
【0324】
よりも小さくなることを可能にする効率的な構造がない。しかしながら、以下ではN=2nである構造について説明する。
[0106] しがたって、この章は、Nが比較的小さい(例えば、128、256)
【0325】
【数123】
[この文献は図面を表示できません]
【0326】
を組み立てることを中心に据える。具体的には、N−ビット調整可能ブロック暗号(「TBC」)を、ブロック暗号から組み立てる。nをブロック暗号のブロック・サイズ、N=n、およびN=2nとする。この章では、各々n−ビット・ブロック暗号を使用し、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)の2つの実施態様について説明する。
【0327】
[0107] 第1の実施態様例(TCT)は、誕生日限界の安全性を提供する。N=nのとき、この実施態様は、大まかに、ブロック暗号に関する誕生日限界であるq=2n/2回まで安全である。この安全性限界を念頭に入れ、この実施態様は、
【0328】
【数124】
[この文献は図面を表示できません]
【0329】
および
【0330】
【数125】
[この文献は図面を表示できません]
【0331】
双方の簡単で効率的な構造を使用する。第1の実施態様例(TCT)は、入力のn−ビット・ブロック毎に、1回だけのブロック暗号呼び出し(invocation)、および2のべき乗を法とする(modulo powers of two)ある算術演算を使用する。対照的に、可変入力長調整可能暗号(「VILTC」)を実装する以前の手法は、n−ビット・ブロック毎に2回のブロック暗号呼び出しを使用するか、またはブロック毎に有限界動作を使用する。
【0332】
[0108] 第2の実施態様例(TCT)は、誕生日限界を超えた安全性を提供する。N=2nのとき、この実施態様は大まかにq=2回の質問まで安全である。この厳格化した安全性限界を念頭に入れて、なおもそれなりに効率的な構造がある。以前の可変入力長調整可能暗号(「VILTC」)が誕生日限界の安全性だけであるのと比較すると、第2の実施態様例(TCT)は、入力のn−ビット・ブロック毎に、単純な算術演算の僅かな追加を招くに過ぎない。この場合も、この算術演算は、有限界においてではなく、2のべき乗を法として実行される。
【0333】
[0109] 第1の実施態様例(TCT)および第2の実施態様例(TCT)では、可変入力長(「VIL」)コンポーネント
【0334】
【数126】
[この文献は図面を表示できません]
【0335】
は、調整可能ブロック暗号(「TBC」)に対するカウンタ・モード暗号化(counter-mode encryption)を使用してインスタンス化される。調整可能ブロック暗号(「TBC」)の追加のトウィーク入力は、種々の「トウィーク・スケジューリング」手法を可能にする。例えば、全てのブロックにわたって1つのメッセージ毎にトウィークを固定する、またはメッセージ・ブロック毎にトウィークを変化させる。(調整可能ブロック暗号(「TBC」)のトウィークを変化させることとブロック暗号の鍵を変化させることの間には、自然な繋がりがある。双方共、安全性を高めるために使用することができるが、トウィークは秘密にする必要がないので、トウィークを変化させる方が影響が少ない(clean)。)ブロック毎に再調整すると、少なくともNの任意の長さの文字列を受け入れ、初期化ベクトル(「IV」)が保護され、誕生日限界を超えて安全な可変入力長調整可能暗号(「VILTC」)構造が得られる。
【0336】
[0110] 手順TCTRは、n−ビット
【0337】
【数127】
[この文献は図面を表示できません]
【0338】
にカウンタ・モード暗号化を提供する。TCTRへのコール内において、入力Xの各n−ビット・ブロックXが、ブロック毎のトウィークTを使用して処理され、以下のように、入力トウィークTの関数
【0339】
【数128】
[この文献は図面を表示できません]
【0340】
およびブロック・インデックスiによって決定される。
【0341】
【数129】
[この文献は図面を表示できません]
【0342】
[0111] 反転TCTRの手順では、入力Yの各n−ビット・ブロックYが、以下のように、ブロック毎のトウィークTを使用して処理される。
【0343】
【数130】
[この文献は図面を表示できません]
【0344】
[0112] 初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)では、
【0345】
【数131】
[この文献は図面を表示できません]
【0346】
は長いトウィークを扱う。これらのトウィークは、∈−AUハッシュ関数を使用して、q∈項を調整可能暗号の調整可能擬似ランダム置換(「TPRP」)安全性限界に追加することを犠牲にして圧縮することができる。具体的には、ある実施態様例では、NHハッシュの変種を使用する。関数NH[r,s]は、rビットの鍵(|L|=r)を取り込み、r−ビット文字列をs−ビット文字列にマッピングし、2S/2−AUである。
【0347】
【数132】
[この文献は図面を表示できません]
【0348】
が与えられると、
【0349】
【数133】
[この文献は図面を表示できません]
【0350】
は、結果的に得られる調整可能ブロック暗号(「TBC」)を示し、ここでは、そのトウィーク空間は、それの範囲ではなく、NHのドメインとなる。

A.第1の実施態様例(TCT)および第2の実施態様例(TCT)のコンポーネント
[0113] 第1の実施態様例(TCT)および第2の実施態様例(TCT)は、以下のコンポーネントを使用する。
【0351】
[0114] コンポーネントLRW2は、ブロック暗号Eおよび∈−AXU関数Hを使用する誕生日限界調整可能ブロック暗号(「TBC」)を示す。
【0352】
【数134】
[この文献は図面を表示できません]
【0353】
[0115] コンポーネントCLRW2は、誕生日限界を超える安全性を有する調整可能ブロック暗号(「TBC」)であり、ブロック暗号Eおよび∈−AXU関数Hを使用する。
【0354】
【数135】
[この文献は図面を表示できません]
【0355】
[0116] コンポーネントpolyHmnは、ドメイン({0,1}および∈=m/2を有する∈−AXU関数である。全ての動作は、F2n内にある。
【0356】
【数136】
[この文献は図面を表示できません]
【0357】
[0117] コンポーネントNH(vw、2tw)は、∈=1/2twである∈−AXU関数である。入力はvwビットであり、vは偶数、w>0に固定される。
【0358】
【数137】
[この文献は図面を表示できません]
【0359】
ここで、
【0360】
【数138】
[この文献は図面を表示できません]
【0361】
[0118] コンポーネントCDMSは、
【0362】
【数139】
[この文献は図面を表示できません]
【0363】
に対するファイステル型ドメイン・エクステンダ(domain extender)である。
【0364】
【数140】
[この文献は図面を表示できません]
【0365】
ここで、
【0366】
【数141】
[この文献は図面を表示できません]
【0367】
および
【0368】
【数142】
[この文献は図面を表示できません]

【0369】
B.第1の実施態様例(TCT
[0119] 第1の実施態様例(TCT)は、平文メッセージが小さな用途のための誕生日型安全性を備えた効率的な実施態様である(例えば、完全ディスク暗号化(「FDE」))。この実施態様では、N−ビット調整可能ブロック暗号(「TBC」)のサイズはN=n、そしてn−ビット
【0370】
【数143】
[この文献は図面を表示できません]
【0371】
はコンポーネントLRW2を使用する。ブロック暗号Eに加えて、LRW2[H,E]は、∈−AXUハッシュ関数Hを使用する。理論上、コンポーネントLRW2は大きなトウィークに対応することができる。しかしながら、実用的な目的では、小さなトウィーク空間のLRW2を実装し、次いで高速∈−AUハッシュ関数を使用してこの小さなトウィーク空間を拡張する方が効率的である。∈−AXUハッシュ関数自体に対しては、第1実施態様例は多項数ハッシュpolyHを使用する。
【0372】
[0120] 図5aから図5cは、トウィークTおよびメッセージXを入力として取り込む第1の実施態様例(TCT)(500)のコンポーネントを示す。メッセージXは、ブロックX、X、...、Xに分割され、最後のブロックXvを除く全てのブロックの長さはnであり、最後のブロックXの長さはn以下である。第1の実施態様例(TCT)は、出力文字列Y=Y、Y、...Yを生成する。固定入力長(「FIL」)コンポーネントのブロック・サイズはN=nである。k、n>0に対して、
【0373】
【数144】
[この文献は図面を表示できません]
【0374】
がブロック暗号である。
【0375】
【数145】
[この文献は図面を表示できません]
【0376】
ここで、τnビットのトウィーク空間およびドメイン
【0377】
【数146】
[この文献は図面を表示できません]
【0378】
を得るために、n−ビット
【0379】
【数147】
[この文献は図面を表示できません]
【0380】
および
【0381】
【数148】
[この文献は図面を表示できません]
【0382】
を次のように設定する。
[0121] n−ビット
【0383】
【数149】
[この文献は図面を表示できません]
【0384】
【数150】
[この文献は図面を表示できません]
【0385】
即ち、n−ビット
【0386】
【数151】
[この文献は図面を表示できません]
【0387】
は、NHを使用してそのトウィーク空間が拡張されたコンポーネントLRW2である。
【0388】
【数152】
[この文献は図面を表示できません]
【0389】
の鍵空間は、
【0390】
【数153】
[この文献は図面を表示できません]
【0391】
であり、鍵K’は、Eの鍵PolyH2n、および
【0392】
【数154】
[この文献は図面を表示できません]
【0393】
に区分される。NHは固定長入力しかサポートしないので、NH入力には暗黙的に1がパディングされ、次いで十分な0がパディングされて、
【0394】
【数155】
[この文献は図面を表示できません]
【0395】
ビットの全長になる。
【0396】
【数156】
[この文献は図面を表示できません]
【0397】
のトウィーク空間は、
【0398】
【数157】
[この文献は図面を表示できません]
【0399】
となる。
[0122] 図5aは、トウィーク入力(510)およびメッセージ入力を受け入れる第1n−ビット
【0400】
【数158】
[この文献は図面を表示できません]
【0401】
(520)を示す。メッセージ入力は、第1n−ビット・ブロックXである。トウィーク入力(510)は、メッセージXの残りのブロックのパディング・バージョンと連結されたトウィーク値Tである。関数Pad()は、sを、
【0402】
【数159】
[この文献は図面を表示できません]
【0403】
にマッピングする。第1n−ビット
【0404】
【数160】
[この文献は図面を表示できません]
【0405】
(520)は、n−ビット初期化ベクトル(「IV」)(538)を生成する。
[0123] また、図5aは、トウィーク入力(560)およびメッセージ入力を受け入れる第2n−ビット
【0406】
【数161】
[この文献は図面を表示できません]
【0407】
(520)も示す。メッセージ入力は、n−ビット初期化ベクトル(「IV」)(538)である。トウィーク入力(560)は、可変長出力文字列YのブロックY...Yのパディング・バージョンと連結されたトウィーク値Tである。第2n−ビット
【0408】
【数162】
[この文献は図面を表示できません]
【0409】
(520)は、可変長出力文字列Yの第1ブロックYを生成する。
[0124] 図5bは、n−ビット
【0410】
【数163】
[この文献は図面を表示できません]
【0411】
(520)の詳細を示す。NH関数(521)は、(l+r)×nビットのトウィーク値を受け入れ、2nビットのトウィーク値を生成する。PolyH2n関数(522)は、2n−ビット・トウィーク値からn−ビット・トウィーク値を生成する。ブロック暗号(523)は、n−ビット入力値とのXORを取ったn−ビット・トウィーク値(これは、第1n−ビット
【0412】
【数164】
[この文献は図面を表示できません]
【0413】
と第2n−ビット
【0414】
【数165】
[この文献は図面を表示できません]
【0415】
(n−ビット初期化ベクトル(「IV」))との間で変化する)を暗号化する。次いで、ブロック暗号(523)の出力は、n−ビット・トウィーク値とのXORが取られ、n−ビット出力を生成する。
【0416】
[0125]
【0417】
【数166】
[この文献は図面を表示できません]
【0418】
TCTR手順では、g(T,i)=Tであるので、
【0419】
【数167】
[この文献は図面を表示できません]
【0420】
【数168】
[この文献は図面を表示できません]
【0421】
の鍵空間は、{0,1}×{0,1}であり、鍵KはEの鍵およびPolyHに区分される。
【0422】
【数169】
[この文献は図面を表示できません]
【0423】
のトウィーク空間は、{0,1}であり、そのドメインは、
【0424】
【数170】
[この文献は図面を表示できません]
【0425】
である。
[0126] 図5aに示すように、
【0426】
【数171】
[この文献は図面を表示できません]
【0427】
に対するTCTRは、一連のコンポーネント
【0428】
【数172】
[この文献は図面を表示できません]
【0429】
(540)として実装される。各
【0430】
【数173】
[この文献は図面を表示できません]
【0431】
(540)は、トウィーク入力として、n−ビット初期化ベクトル(「IV」)(538)を受け入れる。また、各
【0432】
【数174】
[この文献は図面を表示できません]
【0433】
(540)は、メッセージ入力として、0≦i≦v−2に対して、パディング・カウンタ値<i>も受け入れる。各
【0434】
【数175】
[この文献は図面を表示できません]
【0435】
(540)の出力は、メッセージXのn−ビット・ブロックXi+2とXORが取られ、可変長出力文字列YのブロックYi+2を生成する。
[0127] 図5cは、n−ビット
【0436】
【数176】
[この文献は図面を表示できません]
【0437】
(540)の詳細を示す。polyH関数(542)は、入力n−ビット・トウィーク値から結果的に得られるn−ビット・トウィーク値を生成する。ブロック暗号(543)は、結果的に得られたn−ビット・トウィーク値とn−ビット入力値(パディング・カウンタ値)とのXORを取って暗号化する。次いで、ブロック暗号(543)の出力は、結果的に得られたn−ビット・トウィーク値とXORが取られ、n−ビット出力を生成する。
【0438】

c.第2の実施態様例(TCT
[0128] 第2の実施態様例(TCT)は、誕生日限界を超えた安全性を提供する。この実施態様では、N−ビット
【0439】
【数177】
[この文献は図面を表示できません]
【0440】
のサイズは、N=2nである。この2n−ビット
【0441】
【数178】
[この文献は図面を表示できません]
【0442】
は、CDMSコンポーネントの変種を使用し、これは誕生日限界を超える安全性を提供するために、数個のn−ビット調整可能ブロック暗号(「TBC」)をCコンポーネントLRW2の一部として含む。トウィーク空間は、NHを使用して拡張され、NHの範囲は{0,1}2nに設定される。最終的に、設定
【0443】
【数179】
[この文献は図面を表示できません]
【0444】
は、約22n/3回までの質問に対して安全である。また、CコンポーネントLRW2は、誕生日限界を超えて安全な可変入力長調整可能暗号(「VILTC」)コンポーネントにおいても使用される。即ち、少なくとも、
【0445】
【数180】
[この文献は図面を表示できません]
【0446】
に対して、
【0447】
【数181】
[この文献は図面を表示できません]
【0448】
となる。第2の実施態様例(TCT)は、τnビットのトウィークをサポートし、ドメイン
【0449】
【数182】
[この文献は図面を表示できません]
【0450】
を有する。
[0129] 図6aから図6cは、トウィークTおよびメッセージXを入力として取り込む第2の実施態様例(TCT)(600)のコンポーネントを示す。メッセージXは、ブロックX、X、...、Xに分割され、最後のブロックXを除く全てのブロックの長さはnであり、最後のブロックXの長さはn以下である。メッセージXの長さは、2nビットと
【0451】
【数183】
[この文献は図面を表示できません]
【0452】
ビットとの間である。第2の実施態様例(TCT)は、出力文字列Y=Y、Y、...Yを生成する。固定入力長(「FIL」)コンポーネントのブロック・サイズはN=2nである。
【0453】
【数184】
[この文献は図面を表示できません]
【0454】
に対して、
【0455】
【数185】
[この文献は図面を表示できません]
【0456】
がブロック暗号となる。
【0457】
【数186】
[この文献は図面を表示できません]
【0458】
ここで、2n−ビット
【0459】
【数187】
[この文献は図面を表示できません]
【0460】
および
【0461】
【数188】
[この文献は図面を表示できません]
【0462】
は、次のように設定される。
[0130] n−ビット
【0463】
【数189】
[この文献は図面を表示できません]
【0464】
【数190】
[この文献は図面を表示できません]
【0465】
即ち、2n−ビット
【0466】
【数191】
[この文献は図面を表示できません]
【0467】
は、そのトウィーク空間がNHを使用して拡張された、
【0468】
【数192】
[この文献は図面を表示できません]
【0469】
コンポーネントである。
【0470】
【数193】
[この文献は図面を表示できません]
【0471】
の鍵空間は、
【0472】
【数194】
[この文献は図面を表示できません]
【0473】
であり、鍵K’は、Eに対する2つの鍵、polyH6nに対する2つの鍵、および
【0474】
【数195】
[この文献は図面を表示できません]
【0475】
に対する鍵に区分される。
【0476】
【数196】
[この文献は図面を表示できません]
【0477】
のトウィーク空間は、{0,1}τnである。
[0131] 図6aは、トウィーク入力(610)およびメッセージ入力を受け入れる第2n−ビット
【0478】
【数197】
[この文献は図面を表示できません]
【0479】
(620)を示す。メッセージ入力は、2つの第1n−ビット・ブロックXおよびXである。トウィーク入力(610)は、メッセージXの残りのブロックのパディング・バージョンと連結されたトウィーク値Tである。第1の2n−ビット
【0480】
【数198】
[この文献は図面を表示できません]
【0481】
(620)は、2n−ビット初期化ベクトル(「IV」)(638)を生成する。
[0132] また、図6aは、トウィーク入力(660)およびメッセージ入力を受け入れる第2n−ビット
【0482】
【数199】
[この文献は図面を表示できません]
【0483】
(620)も示す。メッセージ入力は、は、2n−ビット初期化ベクトル(「IV」)(638)である。トウィーク入力(660)は、可変長出力文字列YのブロックY...Yのパディング・バージョンと連結されたトウィーク値Tである。第2の2n−ビット
【0484】
【数200】
[この文献は図面を表示できません]
【0485】
(520)は、可変長出力文字列Yの2つの第1ブロックYおよびYを生成する。
[0133] 図6bは、2n−ビット
【0486】
【数201】
[この文献は図面を表示できません]
【0487】
(620)の詳細を示す。HN関数(621)は、(l+r−1)×nビットのトウィーク値を受け入れ、4nビットのトウィーク値T’を生成する。2n−ビット入力は、第1の2n−ビット
【0488】
【数202】
[この文献は図面を表示できません]
【0489】
(XおよびX)と第2の2n−ビット
【0490】
【数203】
[この文献は図面を表示できません]
【0491】
(2n−ビット初期化ベクトル(「IV」))との間で変化し、2つのn−ビット入力に分割される。第1n−ビット入力は、第1
【0492】
【数204】
[この文献は図面を表示できません]
【0493】
コンポーネント(622)に供給される。このコンポーネント(622)は、6nビットのトウィーク値も受け入れる。6n−ビット・トウィーク値は、4n−ビット・トウィーク値T’のパディング・バージョン(n個のゼロ・ビットがパディングされ、5nビットの長さになる)および第2n−ビット入力を連結することによって決定される。第1
【0494】
【数205】
[この文献は図面を表示できません]
【0495】
コンポーネント(622)は、n−ビット出力値を生成し、4n−ビット・トウィーク値T’のパディング・バージョン(n個のゼロ・ビットがパディングされて5nビットの長さになる)の後ろに連結され、第2
【0496】
【数206】
[この文献は図面を表示できません]
【0497】
コンポーネント(622)のために6n−ビット・トウィーク値を形成する。また、第2
【0498】
【数207】
[この文献は図面を表示できません]
【0499】
コンポーネント(622)は、第2n−ビット入力も受け入れ、n−ビット出力を生成する。同様に、第3
【0500】
【数208】
[この文献は図面を表示できません]
【0501】
コンポーネント(622)も第1CコンポーネントLRW2(622)からのn−ビット出力値、および6n−ビット・トウィーク値(図6bに示すように形成される)を処理して、他のn−ビット出力を生成する。第2および第3CコンポーネントLRW2(622)からのn−ビット出力は、CDMSコンポーネント(620)の2n−ビット出力に連結される。
【0502】
[0134] 図6cは、
【0503】
【数209】
[この文献は図面を表示できません]
【0504】
コンポーネントの詳細を示し、ここでrは6(図6bのコンポーネント(622)におけるように)、または2(図6aのコンポーネント(640)におけるように)とすることができる。第1polyHrn関数(642)は、入力r・n−ビット・トウィーク値からn−ビット・トウィーク値を生成する。第1ブロック暗号(643)(鍵K1を有する)は、n−ビット入力値とXORが取られたn−ビット・トウィーク値を暗号化する。次いで、ブロック暗号(643)の出力は、n−ビット・トウィーク値とXORが取られ、n−ビット中間値を生成する。第2polyHrn関数(642)は、入力r・n−ビット・トウィーク値からn−ビット・トウィーク値を生成する。第2ブロック暗号(643)(鍵K2を有する)は、n−ビット中間値とXORが取られたn−ビット・トウィーク値を暗号化する。次いで、第2ブロック暗号(643)の出力は、n−ビット・トウィーク値とXORが取られ、n−ビット出力値を生成する。
【0505】
[0135]
【0506】
【数210】
[この文献は図面を表示できません]
【0507】
TCTR関数では、g(T,i)=Tであるので、
【0508】
【数211】
[この文献は図面を表示できません]

【0509】
【数212】
[この文献は図面を表示できません]
【0510】
の鍵空間は、{0,1}2k×{0,1}4nであり、鍵KはEの2つの鍵およびPolyH2nの2つの鍵に区分される。
【0511】
【数213】
[この文献は図面を表示できません]
【0512】
のトウィーク空間は、{0,1}2nであり、そのドメインは、
【0513】
【数214】
[この文献は図面を表示できません]
【0514】
である。第2の実施態様例(TCT)は、鍵素材の
【0515】
【数215】
[この文献は図面を表示できません]
【0516】
ビットを使用する。
[0136] 図6aに示すように、
【0517】
【数216】
[この文献は図面を表示できません]
【0518】
に対するTCTRは、一連のコンポーネント
【0519】
【数217】
[この文献は図面を表示できません]
【0520】
(640)として実装される。各
【0521】
【数218】
[この文献は図面を表示できません]
【0522】
(640)は、
【0523】
【数219】
[この文献は図面を表示できません]
【0524】
コンポーネントとして実装される。また、各
【0525】
【数220】
[この文献は図面を表示できません]
【0526】
(640)は、トウィーク入力として、2n−ビット初期化ベクトル(「IV」)(638)を受け入れる。また、各
【0527】
【数221】
[この文献は図面を表示できません]
【0528】
(640)は、メッセージ入力として、0≦i≦v−3に対して、nビットのパディング・カウンタ値<i>も受け入れる。各
【0529】
【数222】
[この文献は図面を表示できません]
【0530】
(640)のn−ビット出力は、メッセージXのn−ビット・ブロックXi+3とXORが取られ、可変長出力文字列YのブロックYi+3を生成する。図6cは、
【0531】
【数223】
[この文献は図面を表示できません]
【0532】
(640)に対する
【0533】
【数224】
[この文献は図面を表示できません]
【0534】
コンポーネントの詳細を示す。ここでは、r=2である。

D.変種および実用上の考慮点
[0137] この章では、第1の実施態様例(TCT)および第2の実施態様例(TCT)の様々な変種について説明する。これらの変更はいずれも、別段注記されなければ、これらの実施態様に対する安全性限界に著しい影響を及ぼすことはない。
【0535】
[0138] ブロック暗号鍵の数量削減 第1の実施態様例(TCT)の場合、トウィークによってドメイン分離が実施されることを条件に、1つの鍵を双方のLRW2インスタンスに使用することができる。これによって、基礎のブロック暗号に対して1つの鍵の使用が可能となり、状況によっては、著しい実施の効果が見込まれる(例えば、1つのAESパイプラインを可能にすることによって)。これを遂行する1つの方法は、
【0536】
【数225】
[この文献は図面を表示できません]
【0537】
を、
【0538】
【数226】
[この文献は図面を表示できません]
【0539】
と交換し、更に、
【0540】
【数227】
[この文献は図面を表示できません]
【0541】
を、
【0542】
【数228】
[この文献は図面を表示できません]
【0543】
と交換することである。ここで、fは、鍵空間
【0544】
【数229】
[この文献は図面を表示できません]
【0545】
を有する2−n−AU関数であり、形式(X,ε)(あるX∈{0,1}に対して)または(ε,Y)(ある
【0546】
【数230】
[この文献は図面を表示できません]
【0547】
に対して)の入力を取り込み、3n−ビット文字列を出力する。
【0548】
【数231】
[この文献は図面を表示できません]
【0549】
とする。ここで説明する関数fは、2つのLRW2インスタンスのシグネチャー(signature)を統一するための数学的な便宜であり、これによってトウィーク・ベースのドメイン分離を範囲内に持ち込む。実際には、2つのインスタンスは、共有ブロック暗号鍵を除いて、独立に実装することができる。第2の実施態様例(TCT)は、2つのブロック暗号鍵だけを必要とするように同様に変更することができる。
【0550】
[0139] 処理能力向上 固定入力長調整可能ブロック暗号(「FIL TBC」)では、パディング方式をしかるべく調節することによって、
【0551】
【数232】
[この文献は図面を表示できません]
【0552】
の代わりに、
【0553】
【数233】
[この文献は図面を表示できません]
【0554】
を使用することができる。また、第2の実施態様例(TCT)のTCTR部分では、各LRW2呼び出しが同じトウィークを使用するので、CコンポーネントLRW2毎にpolyH関数を1回計算することができる。
【0555】
[0140] 第2の実施態様例(TCT)の1つの可能な実施態様では、2回の固定入力長(「FIL」)フェーズ(polyH6nを12回評価する結果)の間に72回の有限界乗算を使用する。あるいは、ある実施態様では、CDMSの内部で使用されるpolyH6nハッシュの中間値をキャッシュし(呼び出し毎に、4つのn−ビット・トウィーク・ブロックが一定である)、32回の有限界乗算をしないで済む。ドメイン分離定数に対応する多項式ハッシュの項を予め計算することによって、更に12回の乗算をなくし、合計で28回だけが残る。可変入力長(「VIL」)フェーズ中において4つ更に使用するので、数量は32となる。
【0556】
[0141] 大きなメッセージ空間の処理(handling) 第1の実施態様例(TCT)および第2の実施態様例(TCT)の双方は、完全ディスク暗号化(「FDE」)への応用を念頭に入れて設計される。具体的には、これらは、時間に先立って(ahead of time)固定される値
【0557】
【数234】
[この文献は図面を表示できません]
【0558】
を使用し、
【0559】
【数235】
[この文献は図面を表示できません]
【0560】
ビットより多くの鍵素材(key material)を使用する。これらの制限は、NHハッシュ関数を使用することの結果である。しかしながら、単純なNHへの拡張が、任意に長い文字列を収容する。正の整数rに対して、
【0561】
【数236】
[この文献は図面を表示できません]
【0562】
ここで、i<vに対して|M|=rn、|M|≦rn、そしてNHはNH[rn,2N]の省略である。このように定義すると、NHは2−N−殆ど普遍であり(-almost universal)、ドメイン{0,1}を有し、rnビットの鍵素材を必要とする。この変更は、polyHハッシュに対する重みの一部を移転させる。入力の追加のrnビット毎に、8回の余分な有限長乗算が使用される。
【0563】
[0142] これらの変更によって、第1の実施態様例(TCT)の安全性限界における最終的な2つの項(第7章参照)は、
【0564】
【数237】
[この文献は図面を表示できません]
【0565】
となる。ここで、
【0566】
【数238】
[この文献は図面を表示できません]
【0567】
は、ここでは、アドバーサリーの最も長い質問の長さであり、
【0568】
【数239】
[この文献は図面を表示できません]
【0569】
、そして残りの項は、基礎のブロック暗号の(S)擬似ランダム置換(「PRP」)安全性を測定する(measure)。2≧rnと仮定すると、|M| mod rnを1つのn−ビット・ブロック内でエンコードすることができる。600という定数は大きいが、例えば、r=16と設定すると、もっと快適なサイズに、この場合では3未満に縮小することができる。同様に、第2の実施態様例(TCT)に対する限界も変化する。(また、2n−2≧rnである場合、トウィーク・ドメイン分離定数および<|M| mod rn>の双方に1つのn−ビット・ブロックを使用することができる。)
[0143] 長いメッセージに対する誕生日限界を超える安全性
【0570】
【数240】
[この文献は図面を表示できません]
【0571】
が何らかの小さい値または中位の値に制限されない(bound)場合、第2の実施態様例(TCT)はもはや誕生日限界を超える安全性を提供しない。安全性限界において問題となる項は、
【0572】
【数241】
[この文献は図面を表示できません]
【0573】
である。これに取り組むために、TCTR手順において、異なるブロック毎トウィーク関数を使用することができる。具体的には、
【0574】
【数242】
[この文献は図面を表示できません]
【0575】
となる。ノンス制約付きの場合では、基礎の
【0576】
【数243】
[この文献は図面を表示できません]
【0577】
が、次に、各メッセージ・ブロック上でこれまで見られなかった値によって、再調整される。
【0578】
【数244】
[この文献は図面を表示できません]
【0579】
が理想的な暗号Πと交換されようとする場合、ノンス制約付きの場合では、平文の各ブロックが、新鮮なランダム置換の出力によってマスクされる。言い換えると、戻される各ブロックは、均一にランダムとなる。つまり、きつい制限(tight bound)がこの場合には予期される。あるいは、
【0580】
【数245】
[この文献は図面を表示できません]
【0581】
を使用することができ、同じことが当てはまる。

E.従来の暗号化を使用して、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)をインスタンス化する
[0144] あるいは、
【0582】
【数246】
[この文献は図面を表示できません]
【0583】
は、直接従来のブロック暗号に基づく暗号化を使用して実現することもできる。以下の
【0584】
【数247】
[この文献は図面を表示できません]
【0585】
および
【0586】
【数248】
[この文献は図面を表示できません]
【0587】
の実施態様について検討する。
【0588】
【表1】
[この文献は図面を表示できません]
【0589】
[0145] この
【0590】
【数249】
[この文献は図面を表示できません]
【0591】
の実施態様は、カウンタ・モード暗号化を使用するが、初期値Tが入力として表出され、それを調整可能暗号にする。生憎、この
【0592】
【数250】
[この文献は図面を表示できません]
【0593】
の実施態様は、ノンス制約付きアドバーサリーに対抗するSRND安全性に欠ける。しかしながら、以下のように安全に変更することができる。
【0594】
【数251】
[この文献は図面を表示できません]
【0595】
トウィーク空間
【0596】
【数252】
[この文献は図面を表示できません]
【0597】
およびメッセージ空間
【0598】
【数253】
[この文献は図面を表示できません]
【0599】
を有する
【0600】
【数254】
[この文献は図面を表示できません]
【0601】
を想定すると、オラクル
【0602】
【数255】
[この文献は図面を表示できません]
【0603】
は質問
【0604】
【数256】
[この文献は図面を表示できません]
【0605】
を取り込み、(1)
【0606】
【数257】
[この文献は図面を表示できません]
【0607】
をサンプルし、
(2)E(T,X)を戻す。オラクル
【0608】
【数258】
[この文献は図面を表示できません]
【0609】
は、入力
【0610】
【数259】
[この文献は図面を表示できません]
【0611】
上でも同様に振る舞い、サンプリング
【0612】
【数260】
[この文献は図面を表示できません]
【0613】
を行い、
【0614】
【数261】
[この文献は図面を表示できません]
【0615】
を戻す。

VI.可変入力長調整可能暗号(「VILTC」)を使用した、関連データ付き認証付暗号化/復号
[0146] 関連データ付き認証付暗号化(「AEAD」)は、ヘッダと共に送られるメッセージを認証する方法を提供する。例えば、平文メッセージが、その守秘性および真正性を保護する方法で暗号文に変換されるとき、このメッセージに付随し、メッセージと共に認証されなければならないパッカ・ヘッダ(packer header)または他の補助情報がある場合もある。メッセージがノンスおよび冗長性によって補強される場合、符号化メッセージを直接、十分に広いドメインを有する強擬似ランダム置換いPRP(「SPRP」)−安全ブロック暗号に通すことによって、認証付暗号化を得ることができる。
【0616】
[0147] この章では、可変入力長調整可能暗号(「VILTC」)コンポーネントを使用して関連データ付き認証付暗号化(「AEAD」)を実現する方法について説明する。可変入力長調整可能暗号(「VILTC」)コンポーネントは、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)コンポーネント、または初期化ベクトル(「IV」)が保護されない可変入力長調整可能暗号(「VILTC」)コンポーネントを含むことができる。具体的には、この章では、ヘッダ−メッセージ対(H、M)から調整可能暗号入力(T、X)へのマッピングの傑出したプロパティを特定する。その簡素さに加えて、可変入力長調整可能暗号(「VILTC」)によって関連データ付き認証付暗号化(「AEAD」)を実現することには、様々な実用的な利点がある。
【0617】
[0148] 可変入力長調整可能暗号(「VILTC」)による認証付暗号化は、関連データを受け入れ、ノンス誤用(nonce-misuse)に耐えることができる。メッセージ・ヘッダを暗号文に結び付ける(bind)ために、トウィークを効果的に使用することができる。
【0618】
[0149] 加えて、メッセージおよびヘッダ入力内にあるランダム性、状態、または冗長性の効果を探ることができる。例えば、安全性の損失なくランダム性および状態をヘッダに移すことができ、暗号的に処理しなければならないビット数を削減できる潜在的可能性がある。具体的には、これは、平文入力内に既に存在するノンス、ランダム性、および冗長性を利用することによって、帯域幅オーバーヘッドを削減することができる。シーケンス番号、人間読み取り可能フィールド、または詰め物(padding)を含むプロトコルのメッセージは、有用なノンスおよび冗長性を含むことが多い。
【0619】
[0150] また、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)は、サイド・チャネル攻撃に対してロバストであり続けながら、多数の復号エラー・メッセージに対処する。サイド・チャネル攻撃は、これらを利用しようとする(例えば、オラクルを詰まらせる)。多数の記述式エラー・メッセージの使用は、実用上非常に有用であり得るが、多くの場合有害な攻撃を強めることになる(empower)。これらの攻撃は、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式に対しては失敗する。何故なら、暗号文の任意のビットを緩やかに変化させると、復号された平文文字列のあらゆるビットをランダム化するからである。つまり、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)は、ある種のサイド・チャネルおよび共通の実装誤りに直面しても、ロバスト性を提供する。記述式エラー・メッセージ(例えば、bad_paddingまたはbad_seq_number)は、有用な今後の暗号文を形作るために利用することはできない。更に、ノンスの繰り返しは平文の等しいこと(equality)を漏らすに過ぎない。
【0620】
[0151] この関連データ付き認証付暗号化(「AEAD」)手法は、フォーマット保存暗号化(「FPE」)にも有効に作用する。変更を最小限に抑えて、透過的に暗号レイヤを旧来のシステムに挿入するために(例えば、データベース方式またはプロトコル仕様)、フォーマット保存暗号化(「FPE」)は、平文と同じフォーマットを有する暗号文を使用する。例えば、ある(多くの場合非二進)アルファベットΣに対して、双方共集合Σに制限される可能性がある。これは、専用初期化ベクトル(「IV」)を暗号文に挿入することを除外する。暗号化を調整するために関連データを使用することによって補償することができ、調整可能暗号およびそれらの安全性定義を自然に調和させる。一意の関連データは、更に標準的な意味で守秘性を保証し、冗長性(クレジット・カード発行者識別番号およびチェックサムのような)をチェックすることによって、認証付暗号化を提供する。
【0621】
[0152] 一般に、ヘッダHおよびメッセージMを想定すると、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式は、(H,M)を調整可能暗号入力(T,X)にエンコードする。ある固定長のノンスについて、T=ノンス||H、およびX=ノンス||Mと仮定する。ヘッダHは送信される。しかしながら、ノンス値も復号には必要とされるので、暗号文を単純に、
【0622】
【数262】
[この文献は図面を表示できません]
【0623】
とすることはできない。したがって、暗号文は(ノンス,C)でなければならない。この例では、T=ノンス||Hはエンコードされたヘッダであり、X=ノンス||Mはエンコードされたメッセージであった。記号TおよびXは、それぞれ、
【0624】
【数263】
[この文献は図面を表示できません]
【0625】
および
【0626】
【数264】
[この文献は図面を表示できません]
【0627】
と置き換えられる。Hから
【0628】
【数265】
[この文献は図面を表示できません]
【0629】
へのマッピングは非決定論的であるが、ノンスを知っていれば、完全に再生することができる。ノンスは再現情報として役立つ。メッセージ・エンコード機能は、この再現情報を使用し、したがってヘッダ・エンコード機能とは異なるシグネチャーを有する。また、再現情報はMに依存してはならない。受信側は、
【0630】
【数266】
[この文献は図面を表示できません]
【0631】
を計算し、ノンスが
【0632】
【数267】
[この文献は図面を表示できません]
【0633】
におけるMのプレフィクスであることを確認する。
[0153] 更に形式的には、関連データ付き認証付暗号化(「AEAD」)方式は、鍵生成アルゴリズム
【0634】
【数268】
[この文献は図面を表示できません]
【0635】
、暗号化アルゴリズム
【0636】
【数269】
[この文献は図面を表示できません]
【0637】
、および復号アルゴリズム
【0638】
【数270】
[この文献は図面を表示できません]
【0639】
を含むタプル
【0640】
【数271】
[この文献は図面を表示できません]
【0641】
である。簡略化のために、鍵生成アルゴリズム
【0642】
【数272】
[この文献は図面を表示できません]
【0643】
は、同じ名称の空でない集合からの鍵をサンプリングすると仮定する。暗号化アルゴリズムは、ランダム化されてもステートフルでもよく、マッピング
【0644】
【数273】
[この文献は図面を表示できません]
【0645】
である。つまり、暗号化は、鍵
【0646】
【数274】
[この文献は図面を表示できません]
【0647】
ヘッダ
【0648】
【数275】
[この文献は図面を表示できません]
【0649】
およびメッセージ、
【0650】
【数276】
[この文献は図面を表示できません]
【0651】
を取り込み、ある再現情報
【0652】
【数277】
[この文献は図面を表示できません]
【0653】
を、暗号文Cと共に戻す。
【0654】
【数278】
[この文献は図面を表示できません]
【0655】
は、
(H,M)上で実行中の
【0656】
【数279】
[この文献は図面を表示できません]
【0657】
を表し、(R,C)を戻す。決定論的復号アルゴリズムは、マッピング、
【0658】
【数280】
[この文献は図面を表示できません]
【0659】
であり、Errorsは、
【0660】
【数281】
[この文献は図面を表示できません]
【0661】
となるような集合である。(|Errors|は1に等しい必要はない。)適正な動作のためには、全ての
【0662】
【数282】
[この文献は図面を表示できません]
【0663】
について、
【0664】
【数283】
[この文献は図面を表示できません]
【0665】
となる。
【0666】
【数284】
[この文献は図面を表示できません]
【0667】
がステートフルである場合、これは全ての状態に該当する。
[0154] 実際には、ヘッダHは、通例、暗号文と共に安全に(in the clear)送信される(例えば、ヘッダがルーティングに必要とされるとき)が、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式は、Hを内部の使用のための何らかの関係する
【0668】
【数285】
[この文献は図面を表示できません]
【0669】
にエンコードすることもできる。このエンコード処理が非決定論的である場合、再現情報Rは、この
【0670】
【数286】
[この文献は図面を表示できません]
【0671】
をHから適正に再生するために復号によって使用されるあらゆるものを提供する。例えば、Rは、カウンタ、いくつかのランダム・ビット、または何らかの冗長性を含むことができる。また、これは空文字列であってもよい。
【0672】
[0155] メッセージまたは鍵ビットをRに書き込むことのために自動的に(trivially)危険になる構造を避けるために、以下の条件を適用する。任意の入力のシーケンス{(H,M)}i≦q、および任意の2つの可能な成果のシーケンス{(R,C)}i≦qおよび{(R’,C’)}i≦qを仮定し、次いで、任意の
【0673】
【数287】
[この文献は図面を表示できません]
【0674】
について、
【0675】
【数288】
[この文献は図面を表示できません]
【0676】
ここで、
【0677】
【数289】
[この文献は図面を表示できません]
【0678】
および
【0679】
【数290】
[この文献は図面を表示できません]
【0680】
状態
【0681】
【数291】
[この文献は図面を表示できません]
【0682】
および
【0683】
【数292】
[この文献は図面を表示できません]
【0684】
は、それぞれ、2つのトランスクリプト(transcript)が条件とされている。即ち、R(したがって、R’)は、H、q、およびRを生成する質問上で
【0685】
【数293】
[この文献は図面を表示できません]
【0686】
によって投げられたコインのみに依存することができる。
[0156] |Errors|>1を許すことによって、関連データ付き認証付暗号化(「AEAD」)方式は、多数の全く異なるエラー・メッセージを戻すことができる。これは、実際には、例えば、プロトコル・セッション内部における診断に有用となることができる。
【0687】
[0157] 理想的には、暗号文はランダム・ビットから区別不可能である。再現情報は、ランダムでないかもしれない(例えば、Rがカウンタであるかもしれない)。しかしながら、そのためにIND$−CPA観念(notion)が修正される。具体的には、関連データ付き認証付暗号化(「AEAD」)方式Ψの守秘性は、以下のアドバンテージによって測定される。
【0688】
【数294】
[この文献は図面を表示できません]
【0689】
【数295】
[この文献は図面を表示できません]
【0690】
は、オラクルであり、入力(H,M)上で、
【0691】
【数296】
[この文献は図面を表示できません]
【0692】
を計算し、
【0693】
【数297】
[この文献は図面を表示できません]
【0694】
をサンプリングし、(R,Y)を戻す。真正性の目標は暗号文の完全性である。即ち、
【0695】
【数298】
[この文献は図面を表示できません]
【0696】
ここで、ブール事象Forgesは、
(1)
【0697】
【数299】
[この文献は図面を表示できません]
【0698】
および、(2)
【0699】
【数300】
[この文献は図面を表示できません]
【0700】
に対する以前の質問がいずれも(H,R,C)を戻さないように、Aが質問(H,R,C)をその
【0701】
【数301】
[この文献は図面を表示できません]
【0702】
オラクルに尋ねた場合にのみに限って、真となる。汎用性を失うことなく、Forgesが真になると直ぐに、Aは停止する。

A.エンコードおよびデコード方式
[0158] 非公式的には、エンコード・アルゴリズムはその入力をフォーマットし直し、ランダム性、状態、または冗長性を注入する。一方、デコード・アルゴリズムは元の入力データの有効性を判断して抜き出す。
【0703】
[0159] 更に形式的には、実施態様例において、関連データ付き認証付暗号化(「AEAD」)方式(および対応する復号)は、メッセージ空間
【0704】
【数302】
[この文献は図面を表示できません]
【0705】
、ヘッダ・スペース
【0706】
【数303】
[この文献は図面を表示できません]
【0707】
、エンコード・メッセージ空間
【0708】
【数304】
[この文献は図面を表示できません]
【0709】
およびエンコード・ヘッダ
【0710】
【数305】
[この文献は図面を表示できません]
【0711】
を使用する。これらの集合は、空ではないが、
【0712】
【数306】
[この文献は図面を表示できません]
【0713】
に等しい可能性がある。集合Errorsについて、
【0714】
【数307】
[この文献は図面を表示できません]
【0715】
である。
[0160] ヘッダ・エンコード関数
【0716】
【数308】
[この文献は図面を表示できません]
【0717】
は、ヘッダをエンコードされたヘッダに、恐らくは何らかのランダムなまたはステートフルな様式でマッピングする。非空集合
【0718】
【数309】
[この文献は図面を表示できません]
【0719】
および全単射
【0720】
【数310】
[この文献は図面を表示できません]
【0721】
があり、全てのHに対して、ある
【0722】
【数311】
[この文献は図面を表示できません]
【0723】
に対して、
【0724】
【数312】
[この文献は図面を表示できません]
【0725】
というプロパティを有する。言い換えると、HはEncodeH(H)から復元することができ、EncodeH(H)の任意の特定の出力は、対応するRが与えられると、Hから再生することができる。EncodeHは、
【0726】
【数313】
[この文献は図面を表示できません]
【0727】
−エンコーダである(
【0728】
【数314】
[この文献は図面を表示できません]
【0729】
を暗示的のままにしておく)。
[0161] メッセージ・エンコード方式EncodeMsg=(EncodeM, DecodeM)は、メッセージ・エンコード機能
【0730】
【数315】
[この文献は図面を表示できません]
【0731】
およびメッセージ・デコード機能
【0732】
【数316】
[この文献は図面を表示できません]
【0733】
から構成されている。EncodeMは、ランダム化することができ、またはステートフルにすることができる。EncodeMのある状態に対して、
【0734】
【数317】
[この文献は図面を表示できません]
【0735】
となる場合にのみに限って、
【0736】
【数318】
[この文献は図面を表示できません]
【0737】
となる。それ以外の場合は、
【0738】
【数319】
[この文献は図面を表示できません]
【0739】
となる。例えば、
【0740】
【数320】
[この文献は図面を表示できません]
【0741】
となることが可能である。DecodeMアルゴリズムは決定論的であり、全てのアルゴリズムは線形時間で実行しなければならない。EncodeMsgは、
【0742】
【数321】
[この文献は図面を表示できません]
【0743】
−エンコード方式である。
[0162] エンコード機能は、最大ストレッチ(maximal stretch)が関連付けられている。これは、
【0744】
【数322】
[この文献は図面を表示できません]
【0745】
の全てに対して、
【0746】
【数323】
[この文献は図面を表示できません]
【0747】
および
【0748】
【数324】
[この文献は図面を表示できません]
【0749】
となるような、最も小さい
【0750】
【数325】
[この文献は図面を表示できません]
【0751】
であると定義される。
[0163] エンコード・メカニズムの鍵となる1つのプロパティは、エンコード方式が出力を繰り返すように作ることができる尤度に関係する。Aを、q回の質問(必ずしも別個でなくてもよい)をオラクルfに尋ね、
【0752】
【数326】
[この文献は図面を表示できません]
【0753】
を応答で受け、これらの値を出力することによって停止するアドバーサリーであるとする。(fはメッセージ−またはヘッダ−エンコード関数とすることができる)。Aは決定論的であると仮定することができる。
【0754】
【数327】
[この文献は図面を表示できません]
【0755】
は関数である。fは、
【0756】
【数328】
[この文献は図面を表示できません]
【0757】
である場合、(d、δ)−衝突(-colliding)となる。この観念は、d≧2に対してのみ定義される。(d、δ)−衝突オラクルを想定すると、δ(0)=δ(1)=0であると仮定することができる。
【0758】
[0164] 第2の鍵となるプロパティは、ランダムな文字列(所与の長さの)が有効なエンコード処理である確率を捕らえる。本質的に、これは、エンコード処理の密度の尺度である。
【0759】
【数329】
[この文献は図面を表示できません]
【0760】
は実数である。全ての正の整数n、および全ての
【0761】
【数330】
[この文献は図面を表示できません]
【0762】
に対して、
【0763】
【数331】
[この文献は図面を表示できません]
【0764】
である場合、
【0765】
【数332】
[この文献は図面を表示できません]
【0766】
エンコード方式EncodeMsg=(EncodeM, DecodeM)は、∈−疎(∈-sparse)となる。

B.エンコード−次いで−暗号化、対応する復号−次いで−デコードによる関連データ付き認証付暗号化(「AEAD」)
[0165] 図7は、可変入力長調整可能暗号(「VILTC」)を使用する、関連データ付き認証付暗号化のための技法(700)を一般化して示す。暗号化システムは技法(700)を実行する。
【0767】
[0166] 暗号化システムは、ヘッダおよびメッセージを受ける(710)。暗号化システムは、可変入力長調整可能暗号(「VILTC」)を使用してこのメッセージを処理し(720)、関連データ付き認証付暗号化を行う。可変入力長調整可能暗号(「VILTC」)は、保護された初期化ベクトル(「IV」)を使用する。あるいは、可変入力長調整可能暗号(「VILTC」)は従来の可変入力長調整可能暗号(「VILTC」)である。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。この処理により、暗号化メッセージが生成される。暗号化システムは、ヘッダおよび暗号化メッセージを出力する(730)。
【0768】
[0167] 例えば、メッセージの処理(720)の一部として、暗号化システムは、ヘッダおよび再現情報を使用して修正ヘッダを決定し、次いでメッセージおよび修正ヘッダを使用して修正メッセージを決定する。暗号化システムは、可変入力長調整可能暗号(「VILTC」)を使用して修正メッセージを暗号化し、修正ヘッダは可変入力長調整可能暗号(「VILTC」)に対するトウィークを供給する。暗号化システムは、再現情報を、ヘッダおよび暗号化メッセージと共に出力する(730)。
【0769】
[0168] 暗号化システムは、1つ以上の他のメッセージのために技法(700)を繰り返すことができる。
[0169] 図8は、可変入力長調整可能暗号(「VILTC」)を使用した、関連データによる認証復号のための技法(800)を一般化して示す。復号システムは技法(800)を実行する。
【0770】
[0170] 復号システムは、ヘッダおよび暗号化メッセージを受ける(810)。復号システムは、可変入力長調整可能暗号(「VILTC」)を使用して、暗号化メッセージを処理し(820)、関連データによる認証復号を行う。可変入力長調整可能暗号(「VILTC」)は、保護された初期化ベクトル(「IV」)を使用する。あるいは、可変入力長調整可能暗号(「VILTC」)は従来の可変入力長調整可能暗号(「VILTC」)である。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。この処理により復号メッセージが生成され、復号システムはこれを出力する(830)。
【0771】
[0171] 復号システムは、再現情報も受けることができる。暗号化メッセージの処理(820)の一部として、例えば、復号システムは、ヘッダおよび再現情報を使用して修正ヘッダを決定し、次いで可変入力長調整可能暗号(「VILTC」)を使用して、暗号化メッセージを復号し、修正ヘッダが可変入力長調整可能暗号(「VILTC」)に対するトウィークを供給することによって、修正メッセージを生成する。復号システムは、修正メッセージおよび修正ヘッダを使用して、メッセージを決定する。
【0772】
[0172] 任意に、認証ステップの間に、復号システムはメッセージが有効であるか否か確認するためにチェックを行う。例えば、所定数の「0」ビットが暗号化の間にメッセージに添付されていた場合、復号はこれらのビットの存在をチェックすることができる。このチェックに失敗した場合、復号はエラーを出力する。メッセージを通すためには多数の異なるチェックがあってもよく、出力されるエラー(1つまたは複数)は、どのチェック(の組み合わせ)が失敗したのかに応じて、異なってもよい。(これは、認証付暗号化の「認証」部分である。攻撃者が暗号化メッセージを改竄した場合、一旦復号されたなら、恐らくもはや有効ではなくなるであろう。)
[0173] 復号システムは、1つ以上の他のメッセージのために技法(800)を繰り返すことができる。
【0773】
[0174] 更に形式的には、実施態様例において、
【0774】
【数333】
[この文献は図面を表示できません]
【0775】
は、調整可能暗号である。ある非空集合
【0776】
【数334】
[この文献は図面を表示できません]
【0777】
に対して、Encodeは、
【0778】
【数335】
[この文献は図面を表示できません]
【0779】
エンコーダであり、EncodeMsg=(EncodeM, DecodeM)は、
【0780】
【数336】
[この文献は図面を表示できません]
【0781】
エンコード方式である。これらから、エンコード−次いで−暗号化関連データ付き認証付暗号化(「AEAD」)方式
【0782】
【数337】
[この文献は図面を表示できません]
【0783】
を次のように定義する。
【0784】
【表2】
[この文献は図面を表示できません]
【0785】
[0175] 再現情報Rは、復号がヘッダから
【0786】
【数338】
[この文献は図面を表示できません]
【0787】
を再生することを可能にする(
【0788】
【数339】
[この文献は図面を表示できません]
【0789】
を暗号文の一部として送る代わりに、またはコール側アプリケーションに、Hを
【0790】
【数340】
[この文献は図面を表示できません]
【0791】
と交換させる代わりに)。
[0176] 単純な例として、Encodeは64−ビット・カウンタRをヘッダHに予め添付し、
【0792】
【数341】
[この文献は図面を表示できません]
【0793】
はM||080を戻す。次いで、Encodeは(2,0)−衝突となり、EncodeMは2−80−疎(しかし(2,1)−衝突)となる。真正性チェックは、DecodeM関数内部で暗示的に行われる。
【0794】

VII.結果の説明
[0177] この章では、以上で提示した結果に対する詳細な正当とする理由を示す。
【0795】
[0178] 定理1−初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)に対する安全性
初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)はなおもその内部に可変入力長調整可能暗号(「VILTC」)モジュールを含む。初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、より大きなドメインを有し、N−ビット調整可能ブロック暗号(「TBC」)は安全性に関して利点が得られる。
【0796】
[0179] IV章において定義したトウィーク空間およびメッセージ空間
【0797】
【数342】
[この文献は図面を表示できません]
【0798】
について、そして調整可能ブロック暗号(「TBC」)長Nについて、
【0799】
【数343】
[この文献は図面を表示できません]
【0800】
は、調整可能ブロック暗号であり、
【0801】
【数344】
[この文献は図面を表示できません]
【0802】
は可変入力長調整可能暗号(「VILTC」)である。
【0803】
【数345】
[この文献は図面を表示できません]
【0804】
Aは、q<2/4回の質問を行い、合計してμビットとなり、時間tにおいて実行するアドバーサリーである。それぞれq回および2q回の質問を行い、双方共O(t)時間において実行するアドバーサリーBおよびCについて、
【0805】
【数346】
[この文献は図面を表示できません]
【0806】
ここで、Bはノンス制約付きであり、その質問の長さは合計してμ−qNビットになる。
[0180] PIV組成の可変入力長(「VIL」)部分
【0807】
【数347】
[この文献は図面を表示できません]
【0808】
は、ノンス制約付きアドバーサリーのみに対してSRND−安全である必要がある。この要件を満たす効率的な方式を構築することは容易である。固定入力長(「FIL」)部分
【0809】
【数348】
[この文献は図面を表示できません]
【0810】
だけが、任意の質問戦略を使用することができる強調整可能擬似ランダム置換(「STPRP」)アドバーサリーに対して安全であればよい。つまり、PIV組成は、大きなドメインに渡るノンス制約付きの安全性を、それよりも多少大きなドメインに渡る完全な強調整可能擬似ランダム置換(「STPRP」)安全性に昇級させる。
【0811】
【数349】
[この文献は図面を表示できません]
【0812】
が相応しい強調整可能擬似ランダム置換(「STPRP」)である場合、TまたはXの任意の部分が「新鮮」であるなら、初期化ベクトル(「IV」)に対する文字列はランダムなはずである。したがって、初期化ベクトル(「IV」)値は繰り返されそうもなく、したがって可変入力長(「VIL」)組成のノンス制約付きの安全性は十分である。同じことは、T、Yの任意の部分が「新鮮」である場合、復号のときにも当てはまる。
【0813】
[0181] 項4/2は、初期化ベクトル(「IV」)における衝突、および
【0814】
【数350】
[この文献は図面を表示できません]
【0815】
とランダム関数との間の差を考慮する。これは、Nにおける誕生日限界項、
【0816】
【数351】
[この文献は図面を表示できません]
【0817】
のブロック・サイズである。殆どの調整可能ブロック暗号(「TBC」)設計は(1つ以上の)基礎のブロック暗号を採用するので、
【0818】
【数352】
[この文献は図面を表示できません]
【0819】
のブロック・サイズNは、それを構築するかもしれないいずれかの基礎のブロック暗号のブロック・サイズnよりも大きくすることができる。実際、n−ビット・ブロック暗号(およびハッシュ関数)を想定すると、
【0820】
【数353】
[この文献は図面を表示できません]
【0821】
をN=2nで構築することができる。
[0182] 下位
【0822】
【数354】
[この文献は図面を表示できません]
【0823】
呼び出し(lower F invocation)を除去し(
【0824】
【数355】
[この文献は図面を表示できません]
【0825】
の後)、
【0826】
【数356】
[この文献は図面を表示できません]
【0827】
を戻す場合、結果的に得られる組成は、一般に安全な強調整可能擬似ランダム置換(「STPRP」)を提供しない。一方で、これは調整可能擬似ランダム置換(「TPRP」)としては安全である(単に強い調整可能擬似ランダム置換(「TPRP」)ではない)。メッセージ空間
【0828】
【数357】
[この文献は図面を表示できません]
【0829】
トウィーク空間
【0830】
【数358】
[この文献は図面を表示できません]
【0831】
、および負でない整数n≦min(S)に対して、Aはせいぜいq回の質問を行い時間tにおいて実行するアドバーサリーとする。
【0832】
【数359】
[この文献は図面を表示できません]
【0833】
この結果は、本質的に、調整可能ブロック暗号(「TBC」)に対するPRF−擬似ランダム置換(「PRP」)切り替え命題であり、問題を境界(bounding)
【0834】
【数360】
[この文献は図面を表示できません]
【0835】
のそれに縮減する。
[0183]
【0836】
【数361】
[この文献は図面を表示できません]
【0837】
について検討する。ここで、
【0838】
【数362】
[この文献は図面を表示できません]
【0839】
は理想的な暗号である。ゲーム1(「G1」)(図9に示す)におけるオラクルは、Πを定義するために、レイジー・サンプリング(lazy sampling)を使用して、
【0840】
【数363】
[この文献は図面を表示できません]
【0841】
および
【0842】
【数364】
[この文献は図面を表示できません]
【0843】
をシミュレーションする。したがって、
【0844】
【数365】
[この文献は図面を表示できません]
【0845】
となる。図9において、ゲーム1はボックス状ステートメント(boxed statements)を含む。
[0184] ゲーム2(「G2」)(これも図9に示す)において、Πを定義するとき、「違法な」値はもはや再サンプリングされない。図9において、ゲーム2はボックス状ステートメントを含まない。コードにおける唯一の変化が起こるのは、ブール「悪い」フラグが真に設定された後である。ゲーム−プレーイングの基礎命題によって、
【0846】
【数366】
[この文献は図面を表示できません]
【0847】
ゲーム2において、
【0848】
【数367】
[この文献は図面を表示できません]
【0849】
は、決して同じトウィークを2回使用して質問されず、ゲームにおけるオラクルはランダムなn−ビット・プレフィックスを有する値を戻す。ゲーム1および2において、ブール変数は偽に初期化される。
【0850】
[0185] 第3ゲーム(「G3」)(図9には示されていない)では、
【0851】
【数368】
[この文献は図面を表示できません]
【0852】
はオラクル
【0853】
【数369】
[この文献は図面を表示できません]
【0854】
によって交換される。このオラクルは、常に、その第2入力と長さが等しいランダム文字列を返す。標準的な引数によって、
【0855】
【数370】
[この文献は図面を表示できません]
【0856】
となるように、q回の質問を行い、
【0857】
【数371】
[この文献は図面を表示できません]
【0858】
時間において実行する何らかのノンス制約付きアドバーサリーBが存在する。これから次の式が得られる。
【0859】
【数372】
[この文献は図面を表示できません]
【0860】
各オラクル出力(Z’に対応する)の各最初のNビットは、常にゲーム2では均一にランダムである。ゲーム3において
【0861】
【数373】
[この文献は図面を表示できません]
【0862】
【0863】
【数374】
[この文献は図面を表示できません]
【0864】
に切り替わるとき、残りのビットも均一にランダムになる。したがって、
【0865】
【数375】
[この文献は図面を表示できません]
【0866】
となる。
[0186] 最後のタスクは、Aがゲーム2において悪いフラグを設定する確率を制限することである。badが質問jの間に設定される確率は、j/(2−2j)未満である。同様に、badおよびbadが設定される確率も、それぞれ、高々2j/(2−2j)および2/2である。したがって、少なくとも1つのフラグが質問jの間に設定される確率は、高々3j/(2−2j)+2j/2である。
【0867】
[0187] j∈1,2,...、qに対して結合限界(union bound)を取ると、
【0868】
【数376】
[この文献は図面を表示できません]
【0869】
となる。q<2/4であるので、1.5/(2−2q)<3/2となる。直前の結果により、標準的な引数を使用して、計算設定に戻ると、証明が完成する。
【0870】
【数377】
[この文献は図面を表示できません]
【0871】
ここで、Cは2q回の質問を行い、Bは、トウィークを繰り返さずに、合計で長さμ−qNビットとなるq回の質問を行い、双方共
【0872】
【数378】
[この文献は図面を表示できません]
【0873】
時間において実行する。
[0188] 定理2−TCTR g(T,i)=Tのときの手順TCTRの挙動について検討する。V章のTCTR疑似コードの一覧におけるように、
【0874】
【数379】
[この文献は図面を表示できません]
【0875】
として、
【0876】
【数380】
[この文献は図面を表示できません]
【0877】
ならびに
【0878】
【数381】
[この文献は図面を表示できません]
【0879】
および
【0880】
【数382】
[この文献は図面を表示できません]
【0881】
を定義する。Aは、時間tにおいて実行し、q回の質問を尋ねるノンス制約付きアドバーサリーであり、各質問の長さは高々
【0882】
【数383】
[この文献は図面を表示できません]
【0883】
ビットである(したがって、
【0884】
【数384】
[この文献は図面を表示できません]
【0885】
。次いで、高々
【0886】
【数385】
[この文献は図面を表示できません]
【0887】
回の質問を行い時間
【0888】
【数386】
[この文献は図面を表示できません]
【0889】
において実行するあるアドバーサリーBについて、
【0890】
【数387】
[この文献は図面を表示できません]
【0891】
となる。
【0892】
【数388】
[この文献は図面を表示できません]
【0893】
であるとき、限界は誕生日型挙動を呈し、
【0894】
【数389】
[この文献は図面を表示できません]
【0895】
が小さな定数であるときに最も厳しくなる。定数
【0896】
【数390】
[この文献は図面を表示できません]
【0897】
が小さい重要な用途に、完全ディスク暗号化がある。ここでは、平文Xは通例長さが4096バイトであり、したがって基礎の調整可能ブロック暗号(「TBC」)がサイズn=128のブロック・サイズを有する場合、大まかに
【0898】
【数391】
[この文献は図面を表示できません]
【0899】
ブロックがある。
[0189] 定理3−第1の実施態様例(TCT)の強調整可能擬似ランダム置換(「STPRP」)安全性 V.B章において定義したTCT1について、Aは、q<2/4回の質問を行い時間tにおいて実行するアドバーサリーである。アドバーサリーBおよびCは、双方共
【0900】
【数392】
[この文献は図面を表示できません]
【0901】
となるように、時間
【0902】
【数393】
[この文献は図面を表示できません]
【0903】
において実行し、
【0904】
【数394】
[この文献は図面を表示できません]
【0905】
回および2q回の質問をそれぞれ行う。したがって、以下の式が得られる。
【0906】
【数395】
[この文献は図面を表示できません]
【0907】
[0190] このアルゴリズムは、
【0908】
【数396】
[この文献は図面を表示できません]
【0909】
の2つの鍵を含む、
【0910】
【数397】
[この文献は図面を表示できません]
【0911】
ビットの鍵素材を必要とする。安全性限界に重大な損傷がなければ、Eには1つの鍵で十分であろうが、しかしながら、この改善は主に処理能力の問題から関心が寄せられている。つまり、第1の実施態様例(TCT)は、以前の構造の安全性を保持し、有限界におけるのではなく、法に対する2の冪(powers-of-two moduli)を有するリング(ring)における算術演算を使用する。これは、潜在的に、あるアーキテクチャにおいて処理能力を高めることができる。
【0912】
[0191] 定理4−第2の実施態様例(TCT)の強調整可能擬似ランダム置換(「STPRP」)安全性 V.C章において定義したTCTについて、Aは、q回の質問を行い時間tにおいて実行するアドバーサリーであり、ここで、
【0913】
【数398】
[この文献は図面を表示できません]
【0914】
である。アドバーサリーBおよびCは、双方共、
【0915】
【数399】
[この文献は図面を表示できません]
【0916】
となるように、
【0917】
【数400】
[この文献は図面を表示できません]
【0918】
時間において実行し、それぞれ、
【0919】
【数401】
[この文献は図面を表示できません]
【0920】
および6q回質問を行う。したがって、以下の式が得られる。
【0921】
【数402】
[この文献は図面を表示できません]
【0922】
[0192] この限界における定数の一部が重要である。しかしながら、第2の実施態様例(TCT)は、第1の実施態様例(TCT)および以前の構造よりもはるかに優れた安全性限界を提供する。
【0923】
[0193] 定理5−長いメッセージに対する誕生日限界を超える安全性
【0924】
【数403】
[この文献は図面を表示できません]
【0925】
は調整可能ブロック暗号(「TBC」)であり、
【0926】
【数404】
[この文献は図面を表示できません]
【0927】
および
【0928】
【数405】
[この文献は図面を表示できません]
【0929】
もV.D章におけるように定義し、
【0930】
【数406】
[この文献は図面を表示できません]
【0931】
は、任意の注入マッピング(injective mapping)である。Aは、時間tにおいて実行し、全長が高々μ=σnビットであるq回の質問を尋ねるノンス制約付きアドバーサリーである。あるアドバーサリーBは、
【0932】
【数407】
[この文献は図面を表示できません]
【0933】
となるように、高々σ回の質問を行い時間
【0934】
【数408】
[この文献は図面を表示できません]
【0935】
において実行する。第1の実施態様例(TCT)および第2の実施態様例(TCT)に対する安全性証明のためにTCTRのこの変種を使用すると、限界から
【0936】
【数409】
[この文献は図面を表示できません]
【0937】
項が除去され、これによってメッセージ長の問題が持ち上がる。この変更が行われる場合、単に1回だけではなく、呼び出し毎に
【0938】
【数410】
[この文献は図面を表示できません]
【0939】
回までg(T,i)が計算される。この問題は、LRW2の代わりに、他の調整可能ブロック暗号(「TBC」)を使用することによって軽減することができる(Rogaway, "Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC"(調整可能ブロック暗号の効率的なインスタンス化およびモードOCBおよびPMACに対する精緻化)(2004)に記載されているように)。これは、安全性限界を著しく変化させることなく、トウィークを非常に速く増分させる。以上の変更がなされるとき、第1の実施態様例(TCT)および第2の実施態様例(TCT)は、有界でない領域において効率的な調整可能暗号を提供し、
【0940】
【数411】
[この文献は図面を表示できません]
【0941】
ビット(それぞれ、
【0942】
【数412】
[この文献は図面を表示できません]
【0943】
)が暗号化された後でなければ安全性保証を失わない。
[0194] 定理6および命題−従来の暗号化による、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)
【0944】
【数413】
[この文献は図面を表示できません]
【0945】
、整数Nを仮定する。
【0946】
【数414】
[この文献は図面を表示できません]
【0947】
および調整可能暗号
【0948】
【数415】
[この文献は図面を表示できません]
【0949】
については定理1において説明した。Aは、q<2/4回の質問を行い時間tにおいて実行するアドバーサリーである。アドバーサリーBおよびCは、
【0950】
【数416】
[この文献は図面を表示できません]
【0951】
となるように、それぞれq回および2q回の質問を行い、時間
【0952】
【数417】
[この文献は図面を表示できません]
【0953】
において実行する。ここでBはノンス制約付きである。標準的な証明では、Eが擬似ランダム置換(「PRP」)のように安全である場合、V.E章における擬似コード一覧における調整可能ブロック暗号(「TBC」)が、誕生日限界までSRND$−安全であることを示す。
【0954】
[0195]
【0955】
【数418】
[この文献は図面を表示できません]
【0956】
はブロック暗号であると仮定し、
【0957】
【数419】
[この文献は図面を表示できません]
【0958】
および
【0959】
【数420】
[この文献は図面を表示できません]
【0960】
はV.E章における擬似コード一覧におけるように定義する。Aは、時間tにおいて実行しq回の質問を尋ねるアドバーサリーであるとし、これらは合計で高々μ=σnビットである。次いで、
【0961】
【数421】
[この文献は図面を表示できません]
【0962】
ここで、Bは、高々a回質問を尋ね、時間
【0963】
【数422】
[この文献は図面を表示できません]
【0964】
において実行する。
[0196] このように、効率的な誕生日限界−安全な強調整可能擬似ランダム置換(「STPRP」)を構築するために、LRW2に基づいて
【0965】
【数423】
[この文献は図面を表示できません]
【0966】
によってカウンタ・モード暗号化を構成する(compose)ことができる。
【0967】
【数424】
[この文献は図面を表示できません]
【0968】
を特殊な種類のPRF(逆転可能性プロパティを有するもの)として見ることができ、入力(T,X)を取り込み、カウンタ・モードにおける使用のために「合成初期化ベクトル(「IV」)」を戻す。次いで、
【0969】
【数425】
[この文献は図面を表示できません]
【0970】
の2回目の適用は、鍵K’を有する者には復元可能なまま残すようにこの合成初期化ベクトル(「IV」)を隠す役割を果たす。
[0197] このカウンタ−モード構造の安全性は、章V.E.の擬似コード一覧における
【0971】
【数426】
[この文献は図面を表示できません]
【0972】
の構造において示すように、基礎のブロック暗号を「リキーイング」(re-keying)し、
【0973】
【数427】
[この文献は図面を表示できません]
【0974】
を使用してメッセージ毎の鍵を生成することによって高めることができる。
【0975】
【数428】
[この文献は図面を表示できません]
【0976】
を、(1)
【0977】
【数429】
[この文献は図面を表示できません]
【0978】
として計算し、(2)
【0979】
【数430】
[この文献は図面を表示できません]
【0980】
を戻すようにして計算できる。任意の関数
【0981】
【数431】
[この文献は図面を表示できません]
【0982】
について、fに対するアドバーサリーAの擬似乱数関数(PRF)の利点は、
【0983】
【数432】
[この文献は図面を表示できません]
【0984】
と定義されることを思い出すこと。次に、定理理論6に進む。
[0198] 定理6
【0985】
【数433】
[この文献は図面を表示できません]
【0986】
はブロック暗号であり、
【0987】
【数434】
[この文献は図面を表示できません]
【0988】
および
【0989】
【数435】
[この文献は図面を表示できません]
【0990】
はV.E章における擬似コード一覧におけるように定義する。
【0991】
【数436】
[この文献は図面を表示できません]
【0992】
は関数であり、
【0993】
【数437】
[この文献は図面を表示できません]
【0994】
および
【0995】
【数438】
[この文献は図面を表示できません]
【0996】
は、V.E章の擬似コード一覧におけるように定義する。Aは、時間tにおいて実行し、q回の質問を尋ねるノンス制約付きアドバーサリーであり、質問は、各々、高々mnビットの長さである(したがって、μ≦qmn)。
【0997】
【数439】
[この文献は図面を表示できません]
【0998】
ここで、(1)Bは高々m回の質問を尋ね、時間
【0999】
【数440】
[この文献は図面を表示できません]
【1000】
において実行し、(2)Cはq回の質問を尋ね、高々時間
【1001】
【数441】
[この文献は図面を表示できません]
【1002】
において実行する。
[0199] メッセージmにおけるブロックの最大数が小さい場合、このリキーイング手法は、ノンス制約付きアドバーサリーに対して、誕生日限界を超えるSRND−安全性を与える潜在的可能性がある。完全ディスク暗号化(「FDE」)の場合、例えば、
【1003】
【数442】
[この文献は図面を表示できません]
【1004】
は、n=128のとき非常に小さく見えるので、q>>264に対する安全性が可能に思われる。この実施態様は、このようなqのいずれに対しても安全であり続けるPRFfを使用する。
【1005】
[0200] いずれの場合でも、
【1006】
【数443】
[この文献は図面を表示できません]
【1007】
の構造は、調整可能プリミティブ抽象化の中核原理を破る。即ち、トウィークの変更は速くなければならず、鍵を変更するよりも遙かに速くなければならない。
[0201] 定理7−関連データ付き認証付暗号化(「AEAD」)に対する守秘性 VI.B章における擬似コード一覧において定義したように、
【1008】
【数444】
[この文献は図面を表示できません]
【1009】
sはEncodeMsgの最大ストレッチであり、s’はEncodeの最大ストレッチであり、mは、ある
【1010】
【数445】
[この文献は図面を表示できません]
【1011】
に対して、
【1012】
【数446】
[この文献は図面を表示できません]
【1013】
を満たす、最も短い
【1014】
【数447】
[この文献は図面を表示できません]
【1015】
の長さである。Aは、合計でμビットとなるq回の質問を行い、時間tにおいて実行するアドバーサリーである。δMが増大しつつあり、{0,1,...,q}上で凸であるとき、このδMに対してEncodeHが(d,δH)−衝突であり、EncodeMが(2,δM)−衝突である場合、
【1016】
【数448】
[この文献は図面を表示できません]
【1017】
となるようなアドバーサリーBがある。ここで、Bは全長が高々μ+q(s+s’)ビットであるq回の質問を行い、時間
【1018】
【数449】
[この文献は図面を表示できません]
【1019】
において実行する。
[0202] 定理8-関連データ付き認証付暗号化(「AEAD」)に対する真正性 VI.B章の擬似コード一覧において定義したように、
【1020】
【数450】
[この文献は図面を表示できません]
【1021】
sはEncodeMsgのストレッチであり、s’はEncodeHの最大ストレッチであり、mは、ある
【1022】
【数451】
[この文献は図面を表示できません]
【1023】
について
【1024】
【数452】
[この文献は図面を表示できません]
【1025】
を満たす最も短い
【1026】
【数453】
[この文献は図面を表示できません]
【1027】
の長さである。Aは、その暗号化(それぞれ、復号)オラクルに、合計でμε(それぞれ、
【1028】
【数454】
[この文献は図面を表示できません]
【1029】
)ビットとなるqε(それぞれ、
【1030】
【数455】
[この文献は図面を表示できません]
【1031】
)回の質問を行い、時間tにおいて実行するアドバーサリーである。EncodeMが ∈−疎で、
【1032】
【数456】
[この文献は図面を表示できません]
【1033】
である場合、
【1034】
【数457】
[この文献は図面を表示できません]
【1035】
となるようなアドバーサリーBがあり、ここで、Bは、全長(με+qεs)ビットのqε回の順方向質問(forward-query)、全長
【1036】
【数458】
[この文献は図面を表示できません]
【1037】
ビットのq回の逆方向−質問を行い、
【1038】
【数459】
[この文献は図面を表示できません]
【1039】
時間において実行する。
[0203] EncodeHが(2,0)−衝突である場合について検討する。この場合、守秘性限界(定理7)は、
【1040】
【数460】
[この文献は図面を表示できません]
【1041】
に簡略化する。これは直観的である。何故なら、トウィーク
【1042】
【数461】
[この文献は図面を表示できません]
【1043】
が決して繰り返さない場合、出力
【1044】
【数462】
[この文献は図面を表示できません]
【1045】
は(H,M)の任意の有効な
【1046】
【数463】
[この文献は図面を表示できません]
【1047】
へのエンコードに対して、均一なランダム文字列となるからであり、EncodeH(H,M)=Mで十分である。つまり、ヘッダHを正しくエンコードすると、(H,M)の
【1048】
【数464】
[この文献は図面を表示できません]
【1049】
へのエンコードにかかる負担を大幅に低減することができる。
[0204] 更に一般的には、ある小さな定数d<<qに対して、EncodeHが任意の
【1050】
【数465】
[この文献は図面を表示できません]
【1051】
をd回よりも多く生成する確率は、無視し得ると仮定する。すると、限界における最終項を事実上無視することができる。第2項は、大まかに、
【1052】
【数466】
[この文献は図面を表示できません]
【1053】
となる。ここで、δMはqではなくdにおいて評価され、したがってqδ(d)は、適度な量のランダム性を
【1054】
【数467】
[この文献は図面を表示できません]
【1055】
にエンコードすることによって(例えば、log(q)ビット)無視可能にできることに注意すること。次いで、ある自然なEncodeMsgの選択では、q/2m+1が優勢項となり、ここでmは
【1056】
【数468】
[この文献は図面を表示できません]
【1057】
の最も短い長さである。しかし、正しい真正性限界を達成するために、mがq/2m+1に限界を破壊させる(ruin)ことはありそうもない。
[0205] トウィークが存在することによって、ランダム性または状態のための「余分な」ビットを、ヘッダのエンコードに移すことが可能になり、潜在的に、暗号的に処理しなければならないビット数が減少する。
【1058】
[0206] これより真正性限界(定理8)に移り、EncodeMがb冗長ビット(したがって、∈≒2−b)およびqε+qD<<2を挿入する場合、真正性限界の第2項は、近似的にq/2となることを注記しておく。つまり、調整可能暗号
【1059】
【数469】
[この文献は図面を表示できません]
【1060】
が、例えば、280回の質問まで強調整可能擬似ランダム置換(「STPRP」)−安全性を有する場合(例えば、PIVをN=256でしかるべくインスタンス化する)、ノンスによってヘッダをエンコードし、80ビットの冗長性でメッセージをエンコードすると、大凡80ビットの守秘性および真正性保証がある関連データ付き認証付暗号化(「AEAD」)方式、およびノンス−誤用に耐えることができるものが得られる。
【1061】
[0207] 定理8の証明は、アドバーサリーがEncodeMおよびEncodeHのコインおよび状態を制御するのであっても、先に述べた限界がそのままである(hold)ことを示すために容易に修正することができる。加えて、復号オラクルの質問のみが冗長でないと仮定し、アドバーサリーは、ヘッダまたはメッセージにエンコードされるいずれのノンスにも配慮しないと仮定する。
【1062】
[0208] 定理7の証明
【1063】
【数470】
[この文献は図面を表示できません]
【1064】
はランダム暗号である。Ψ[Π]は、
【1065】
【数471】
[この文献は図面を表示できません]
【1066】
のアルゴリズムにおけるいずれかの場所で、
【1067】
【数472】
[この文献は図面を表示できません]
【1068】
および
【1069】
【数473】
[この文献は図面を表示できません]
【1070】
をΠおよびΠ−1でぞれぞれ置き換えることによって得られた関連データ付き認証付暗号化(「AEAD」)方式である。εΠは、対応する暗号化アルゴリズムである。それ自体のオラクルに応じてεまたはεΠをシミュレーションする標準的なアドバーサリーBに対して、
【1071】
【数474】
[この文献は図面を表示できません]
【1072】
これは、
【1073】
【数475】
[この文献は図面を表示できません]
【1074】
を残す。
[0209] 図10における3つのゲームのシーケンスは、証明を例示するのに役立つ。図10において、四角く囲ったコマンドは、ゲーム1には含まれるがゲーム2からは省略され、εΠオラクルに常にランダム文字列を返させる。ゲーム3は、この変化をアドバーサリーが検出することができる確率を制限する(bound)(「悪い」値が設定される確率によって測定されるように)。
【1075】
[0210] sは、EncodeMのストレッチである。ゲーム1(図10における)は、Πを定義するためにレイジー・サンプリングを使用してεΠを実装する。具体的には、i番目の質問(H,M)において、ゲーム1はエンコード
【1076】
【数476】
[この文献は図面を表示できません]
【1077】
を計算し、次いで、
【1078】
【数477】
[この文献は図面を表示できません]
【1079】
に割り当てるための潜在的な値Sをサンプリングする。この値は、
【1080】
【数478】
[この文献は図面を表示できません]
【1081】
が未だ設定されていない限り、そして以前にS
【1082】
【数479】
[この文献は図面を表示できません]
【1083】
と共に使用されていない限り有効である。そうでない場合、ゲーム1はbadまたはbadを設定し、次いでSiにしかるべき値を割り当て直す。
[0211] ゲーム2(図10における)は、badまたはbadが設定されるまで、ゲーム1と同一であるので、
【1084】
【数480】
[この文献は図面を表示できません]
【1085】
ここで、最終ライン(final line)は、ゲーム−プレーイングの基本的命題の代替定式化(formulation)を使用する。ゲーム2では、Sの値は
【1086】
【数481】
[この文献は図面を表示できません]
【1087】
において常に均一にランダムであり、εΠの出力は、各Mとは独立である。その結果、Aが停止した後まで、各Mへの値の割り当てを遅らせることができる。一方、このために、badまたはbadを設定すべきか確認するためのチェックを、これらがそうなる確率を変えることなく、遅らせることが可能になる。これらの変更双方を行うことによって、ゲーム3(図10における)が求められるので、
【1088】
【数482】
[この文献は図面を表示できません]
【1089】
となる。つまり、
【1090】
【数483】
[この文献は図面を表示できません]
【1091】
ここで、最後の式は、ゲーム3において、各Sが独立して、そして均一にランダムに、しかるべき大きさにされた文字列の集合からサンプリングされるという事実から得られる。要点を纏めると、この時点において、
【1092】
【数484】
[この文献は図面を表示できません]
【1093】
となる。
[0212]
【1094】
【数485】
[この文献は図面を表示できません]
【1095】
に対して上界を確立するために、ゲーム3において実行した後に、Aがその出力を丁度生成したところであると仮定する。badが設定される確率を制限する(bound)ために、
【1096】
【数486】
[この文献は図面を表示できません]
【1097】
はゲームの間に生成された別個のトウィーク・エンコード(tweak encodings)の数である。
【1098】
【数487】
[この文献は図面を表示できません]
【1099】
は、
【1100】
【数488】
[この文献は図面を表示できません]
【1101】
である場合のみに限ってiおよびjが同じクラス内にあるというプロパティによって特徴付けられる等価クラス(equivalence class)である。badが設定される確率は、高々
【1102】
【数489】
[この文献は図面を表示できません]
【1103】
である。上界は、時点
【1104】
【数490】
[この文献は図面を表示できません]
【1105】
において増加凸関数δの値を総和することによって得られ、ここで、
【1106】
【数491】
[この文献は図面を表示できません]
【1107】
である。したがって、N=1およびR=(1,2,...,q}であるときに、限界は最も大きくなる(固定のqに対して)。しかし、各|R|<dとなる、Cappedと称されるイベントを仮定する。この場合、
【1108】
【数492】
[この文献は図面を表示できません]
【1109】
Cappedが発生したと想定すると、
【1110】
【数493】
[この文献は図面を表示できません]
【1111】
および、k=1,2,...、N−1について、
【1112】
【数494】
[この文献は図面を表示できません]
【1113】
であるときに、
【1114】
【数495】
[この文献は図面を表示できません]
【1115】
は最大になる。これから、次の式が得られる。
【1116】
【数496】
[この文献は図面を表示できません]
【1117】
同様に、
【1118】
【数497】
[この文献は図面を表示できません]
【1119】
標準(standard)
【1120】
【数498】
[この文献は図面を表示できません]
【1121】
であるので、誕生日限界({0,1}から均一にサンプリングされたi個の独立したランダム変数間における衝突の確率に対する)は、増加凸関数の判断基準を満たす。
[0213] 定理8の証明 Bは、AについてのINT−CTXT実験をシミュレーションし、AがForgesを真に設定する場合に1を出力する強調整可能擬似ランダム置換(「STPRP」)アドバーサリーであるとする。すると、
【1122】
【数499】
[この文献は図面を表示できません]
【1123】
となり、ここで、Ψ [Π]は、Ψのアルゴリズムにおけるいずれかの場所で、
【1124】
【数500】
[この文献は図面を表示できません]
【1125】
および
【1126】
【数501】
[この文献は図面を表示できません]
【1127】
をΠおよびΠ−1でぞれぞれ置き換えることによって得られた方式であり、
【1128】
【数502】
[この文献は図面を表示できません]
【1129】
は、自然な方法で定義される(Kではなく、Πのランダム選択に対する確率で)。
[0214] ゲーム4(図11)は、
【1130】
【数503】
[この文献は図面を表示できません]
【1131】
に対するIND−CTXT実験をシミュレーションする。レイジー・サンプリングによってΠを定義することによって、
【1132】
【数504】
[この文献は図面を表示できません]
【1133】
となる。
【1134】
【数505】
[この文献は図面を表示できません]
【1135】
オラクルに対するコードにおいて、
【1136】
【数506】
[この文献は図面を表示できません]
【1137】
が既に定義されているか否かチェックする必要はない。この可能性は、Aが
【1138】
【数507】
[この文献は図面を表示できません]
【1139】
への質問を繰り返さず、εΠによって以前に戻された値を
【1140】
【数508】
[この文献は図面を表示できません]
【1141】
に送らないという事実によって除外される(一方、ヘッダは保存される)。
【1142】
【数509】
[この文献は図面を表示できません]
【1143】
へのある質問に対して、Aがこの質問上で偽造する(forge)確率は、対応してランダムに選択された
【1144】
【数510】
[この文献は図面を表示できません]
【1145】
の値が有効なエンコードである確率に等しい。正しい長さの有効なエンコードは、高々2|Y|∈個であり、
【1146】
【数511】
[この文献は図面を表示できません]
【1147】
は、サイズが少なくとも
【1148】
【数512】
[この文献は図面を表示できません]
【1149】
である集合からサンプリングされる。その結果、Aがこの質問上で偽装する確率は、高々
【1150】
【数513】
[この文献は図面を表示できません]
【1151】
である。結合限界が証明を完成させる。
[0215] 開示した発明の原理を適用することができる多くの可能な実施形態があることに鑑み、例示した実施形態は、単に発明の好ましい例に過ぎず、発明の範囲を限定するように捕らえてはならないことは認められてしかるべきである。むしろ、本発明の範囲は以下の請求項によって定められるものとする。したがって、これらの請求項の範囲および主旨に該当する全てを、本発明者の発明として特許請求する。
図1
[この文献は図面を表示できません]
図2
[この文献は図面を表示できません]
図3A
[この文献は図面を表示できません]
図3B
[この文献は図面を表示できません]
図3C
[この文献は図面を表示できません]
図4
[この文献は図面を表示できません]
図5A
[この文献は図面を表示できません]
図5B
[この文献は図面を表示できません]
図5C
[この文献は図面を表示できません]
図6A
[この文献は図面を表示できません]
図6B
[この文献は図面を表示できません]
図6C
[この文献は図面を表示できません]
図7
[この文献は図面を表示できません]
図8
[この文献は図面を表示できません]
図9
[この文献は図面を表示できません]
図10
[この文献は図面を表示できません]
図11
[この文献は図面を表示できません]