JP2016540266A - 可変入力長調整可能暗号の構造および使用 - Google Patents

可変入力長調整可能暗号の構造および使用 Download PDF

Info

Publication number
JP2016540266A
JP2016540266A JP2016556687A JP2016556687A JP2016540266A JP 2016540266 A JP2016540266 A JP 2016540266A JP 2016556687 A JP2016556687 A JP 2016556687A JP 2016556687 A JP2016556687 A JP 2016556687A JP 2016540266 A JP2016540266 A JP 2016540266A
Authority
JP
Japan
Prior art keywords
input
length
bit
tbc
variable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016556687A
Other languages
English (en)
Other versions
JP6084757B2 (ja
Inventor
シュリンプトン,トーマス・イー.
テラシマ,ロバート・エス.
Original Assignee
ポートランド・ステイト・ユニバーシティ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ポートランド・ステイト・ユニバーシティ filed Critical ポートランド・ステイト・ユニバーシティ
Publication of JP2016540266A publication Critical patent/JP2016540266A/ja
Application granted granted Critical
Publication of JP6084757B2 publication Critical patent/JP6084757B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data

Landscapes

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

Abstract

可変入力長調整可能暗号(「VILTC」)の構造および使用における新技術。ある場合には、可変入力長調整可能暗号(「VILTC」)は、効率的な処理能力で安全性強化を図るために、暗号化/復号システム外部への露出から保護された初期化ベクトルを使用する。例えば、暗号化および/または復号システムは、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)と、可変入力長調整可能暗号(「VILTC」)とを含む。第1固定入力長調整可能ブロック暗号(「FIL TBC」)は、固定長初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、固定長初期化ベクトルをトウィークとして使用して、可変長出力文字列を生成するように構成されている。第2固定入力長調整可能ブロック暗号(「FIL TBC」)は、固定長出力文字列を生成するように構成されている。このように、第1固定入力長調整可能ブロック暗号(「FIL TBC」)および第2固定入力長調整可能ブロック暗号(「FIL TBC」)は、固定長初期化ベクトルを、システム外部への露出から保護する。他の場合では、可変入力長調整可能暗号(「VILTC」)は、関連データ付き認証付暗号化/復号の信頼性があり効率的な実装のために使用される。【選択図】 図3A

Description

関連出願情報
[001] 本願は、2013年11月29日に出願された米国仮特許出願第61/910,292号、および2014年11月20日に出願された米国特許出願第14/549,531号に対する優先権を主張する。これらの出願の開示内容は、ここで引用したことにより、本願にも含まれるものとする。
分野
[002] 初期化ベクトルが保護された可変入力長調整可能暗号の構造および使用。
政府援助の承認
[003] 本発明は、全米科学財団(National Science Foundation)によって供与された CNS-0845610およびCNS-1319061の下で、政府支援によって行われた。政府は、本発明において一定の権利を保有する。
従来技術
[004] 一般に、暗号化は、許可された関係者のみが情報を読むことができ、第三者は読むことができないように、情報を符号化するプロセスである。ある暗号化方式では、暗号化アルゴリズムを使用して情報(平文と呼ぶ)を暗号化し、それを読み取り不可能な暗号文に変換する。許可された関係者は、復号アルゴリズムを使用して、この暗号文をデコードすることができる。コンピュータ・システムでは、暗号化アルゴリズムは情報の二進値(即ち、ビット)を暗号化する。
[005] ブロック暗号は、固定長ブロックのビットに対して動作する暗号化アルゴリズムである。n−ビット・ブロック暗号は、n−ビットのブロックを暗号化して、n−ビットの暗号文を生成する。ブロック暗号は広く使用されており、ブロック暗号には多くの効率的な実施態様がある。ブロック暗号は暗号化鍵を使用する。ブロック暗号の安全性は、特定の鍵の下で暗号化されるブロックの数が増えるに連れて低下することが分かっている。ブロック暗号に対して鍵を変更することは、それ自体困難ではないが、様々な重要な用途では、新たなブロック暗号鍵の頻繁な生成および配布は実現可能ではない。
[006] 調整可能ブロック暗号(「TBC」:tweakable block cypher)は、ブロック暗号の一般化である。n個のキャラクタから成る調整可能ブロック暗号(「TBC」)
Figure 2016540266
は、Σにわたる置換の一群であり(a family of permutations over Σn)、調整可能ブロック暗号(「TBC」)における各置換は、鍵およびトウィーク(tweak)に関連付けられる。多くの場合、Σ={0,1}であり、この場合、調整可能ブロック暗号(「TBC」)をn−ビット調整可能ブロック暗号(「TBC」)
Figure 2016540266
と呼ぶことができる。入力文字列について、鍵およびトウィーク双方によって、調整可能ブロック暗号(「TBC」)によって生成された入力文字列の置換を指定する。典型的な使用では、鍵は調整可能ブロック暗号(「TBC」)に対する多くのコールにわたって秘密でありそして固定であるが、トウィークは秘密ではなくコール毎に変化することができる。これにより、鍵が固定であってもトウィークの値を変化させることによって、調整可能ブロック暗号(「TBC」)の挙動における可変性をサポートする。変化するトウィークの値が十分に単純である場合(鍵設定および更新のプロセスと比較して)、調整可能ブロック暗号(「TBC」)を使用することは、ブロック暗号によって安全に暗号化されるデータの分量を拡充する効率的な方法となることができる。調整可能ブロック暗号(「TBC」)を使用すると、アルゴリズムの設計および分析を単純化することができる(例えば、大量のデータを安全に処理することができるアルゴリズム)。調整可能ブロック暗号(「TBC」)は、暗号化されようとするデータの分量が、利用可能な鍵素材(key material)と比較して、非常に大きいときに有用であると考えられ、ブロック暗号鍵を変更することは望ましくなく、更に実現可能でもない。処理すべきデータの分量が過剰に大きくない用途においてであっても、トウィーク入力は、様々な暗号の使用にわたって、または多数のユーザにわたって固定の鍵と共に調整可能ブロック暗号(「TBC」)を使用するというような、実際の用途においても有用な特徴を付与することができる。
[007] 調整可能暗号は、調整可能暗号化方式または大型ブロック暗号と呼ばれることもあり、調整可能ブロック暗号(「TBC」)の可変入力長(「VIL」)設定に対する拡張である。一般に、可変入力長調整可能暗号(「VILTC」)は、長さ保存置換(length-preserving permutations)の一群であり、平文入力と同じ長さの暗号文出力を生成する。可変入力長調整可能暗号(「VILTC」)を実現する一般的な1つの手法は、基礎となるn−ビット・ブロック暗号から、ときには1つ以上のハッシング動作と合わせて、可変入力長調整可能暗号(「VILTC」)プリミティブを組み立てることであった。この手法にしたがって組み立てられた可変入力長調整可能暗号(「VILTC」)は、ある重要な使用事例シナリオに対して、特に、nが小さいとき(例えば、64)、または1つの鍵によって処理されるべきデータ量が非常に大きいときには、十分な安全性保証を提供できないことがある。
[008] 要約すると、詳細な説明では、可変入力長調整可能暗号(「VILTC」)の構造および使用における新技術について紹介する。場合によっては、これらの可変入力長調整可能暗号(「VILTC」)は、効率的な処理遂行(performance)と共に安全性強化を提供するために、暗号/復号システム外部への露出から保護された初期化ベクトルを使用する。他の場合では、関連データ付き認証付暗号化/復号を信頼性高くしかも効率的に実現するために、可変入力長調整可能暗号(「VILTC」)を使用する。
[009] 本明細書において説明する新技術の一態様によれば、暗号化および/または復号システムは、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)と可変入力長調整可能暗号(「VILTC」)とを含む。通例、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)は、1つの固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントに対する2回のコールによって供給される。しかしながら、代わりに、2つの固定入力長調整可能ブロック暗号(「FIL TBC」)コンポーネントによって2つの異なる固定入力長調整可能ブロック暗号(「FIL TBC」)を供給することもできる。
[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」)は、固定長初期化ベクトルを、システム外部への露出から保護する。システム・トウィークは、システムの環境的特徴に基づくことができる。
[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−キャラクタ初期化ベクトルを保護する。
[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」)は、特殊目的ハードウェアを使用して実装することができ、または汎用ハードウェア上で実行するソフトウェアを使用して実装することができる。
[013] 実施態様例では、第1N−キャラクタ調整可能ブロック暗号(「TBC」)は、N−キャラクタ入力文字列を第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長入力文字列の組み合わせを第1N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−キャラクタ初期化ベクトルを生成するように構成されている。可変入力長調整可能暗号(「VILTC」)は、N−ビット初期化ベクトルを可変入力長調整可能暗号(「VILTC」)に対するトウィークとして使用し、更に可変長入力文字列を可変入力長調整可能暗号(「VILTC」)に対する入力として使用して、可変長出力文字列を生成するように構成されている。 第2N−キャラクタ調整可能ブロック暗号(「TBC」)は、N−キャラクタ初期化ベクトルを第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対する入力として使用し、システムに対するトウィークおよび可変長出力文字列の組み合わせを第2N−キャラクタ調整可能ブロック暗号(「TBC」)に対するトウィークとして使用して、N−キャラクタ出力文字列を生成するように構成されている。
[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−ビット初期化ベクトルを保護する。
[015] 本システムは多数のバッファを含むことができる。例えば、第1バッファがN−ビット入力文字列および可変長入力文字列を格納し、第2バッファがN−ビット出力文字列および可変長出力文字列を格納する。また、本システムの入力は1つ以上の鍵およびトウィーク値も含む。また、本システムは、安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラも含むことができる。Nの値が小さい程、安全性が悪化するが、安全性制約に伴い効率的な実装が簡素化する。他方で、Nの値が大きい程高い安全性が得られるが、安全性制約に伴い効率的な実装が複雑化する。
[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ビットであるので、処理全体は入力から出力まで長さを保存することになる。
[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」)は、特殊目的ハードウェアを使用して実装することができ、または汎用ハードウェア上で実行するソフトウェアを使用して実装することができる。
[018] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムが、固定長入力文字列、システムに対するトウィーク、および可変長入力文字列を処理して、固定長出力文字列および可変長出力文字列を生成する。システムに対するトウィークは、環境的特徴に基づいて設定することができる。この処理の一部として、本システムは、固定長初期化ベクトルを生成し、この固定長初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いで固定長初期化ベクトルを曖昧にする。本システムは、固定長出力文字列および可変長出力文字列を出力する。
[019] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムが、N−キャラクタ入力文字列、システムに対するトウィーク、および可変長入力文字列を処理して、N−キャラクタ出力文字列および可変長出力文字列を生成する。この処理の一部として、本システムは、N−キャラクタ初期化ベクトルを生成し、このN−キャラクタ初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いでN−キャラクタ初期化ベクトルを曖昧にする。本システムは、N−キャラクタ出力文字列および可変長出力文字列を出力する。
[020] この処理は、例えば、(1)フォーマット保存暗号化、(2)フォーマット保存復号、または(3)何らかの他の暗号化または復号動作(activity)の一部にすることができる。暗号化では、N−キャラクタ入力文字列および可変長入力文字列は平文であり、N−キャラクタ出力文字列および可変長出力文字列は暗号文である。復号では、N−キャラクタ入力文字列および可変長入力文字列は暗号文であり、N−キャラクタ出力文字列および可変長出力文字列は平文である。
[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」)によって生成される。システム・トウィークは、環境的特徴に基づいて設定することができる。
[022] 本明細書において説明する新技術の他の態様によれば、暗号化システムまたは復号システムのようなシステムは、N−ビット入力文字列、システムに対するトウィークおよび可変長入力文字列を処理して、N−ビット出力文字列および可変長出力文字列を生成する。この処理の一部として、本システムは、N−ビット初期化ベクトルを生成し、N−ビット初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって可変長出力文字列を生成し、次いでN−ビット初期化ベクトルを曖昧にする。本システムは、N−ビット出力文字列および可変長出力文字列を出力する。
[023] この処理は、例えば、(1)ディスク全体の暗号化、(2)ディスク全体の復号、(3)関連データ付き認証付暗号化、(4)関連データによる認証復号、あるいは(5)他の何らかの暗号化または復号動作の一部にすることができる。暗号化では、N−ビット入力文字列および可変長入力文字列は平文であり、N−ビット出力文字列および可変長出力は暗号文である。復号では、N−ビット入力文字列および可変長入力文字列は暗号文であり、N−ビット出力文字列および可変長出力文字列は平文である。
[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」)によって生成される。システム・トウィークは、環境的特徴に基づいて設定することができる。
[025] 本明細書において説明する新技術の他の態様によれば、暗号化システムは、ヘッダおよびメッセージを受ける。この暗号化システムは、可変入力長調整可能暗号(「VILTC」)を使用してこのメッセージを処理し、関連データ付き認証付暗号化を行う。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。暗号化システムは、ヘッダおよび暗号化メッセージ(encrypted message)を出力する。
[026] 実施態様例では、メッセージを処理するとき、暗号化システムは、ヘッダおよび再現情報(reconstruction information)を使用して修正ヘッダを決定し、メッセージおよび修正ヘッダを使用して修正メッセージを決定し、可変入力長調整可能暗号(「VILTC」)を、この可変入力長調整可能暗号(「VILTC」)に対するトウィークである修正ヘッダと共に使用して修正メッセージを暗号化する。暗号化システムは、再現情報を出力する。
[027] 対応する復号システムは、ヘッダおよび暗号化メッセージを受ける(任意の再現情報と共に)。復号システムは、可変入力長調整可能暗号(「VILTC」)を使用して暗号化メッセージを処理して、関連データによる認証復号を行う。可変入力長調整可能暗号(「VILTC」)に対するトウィークは、少なくとも部分的にヘッダに基づく。復号システムはメッセージを出力する。
[028] 実施態様例では、暗号化メッセージを処理するとき、復号システムは、ヘッダおよび再現情報を使用して修正ヘッダを決定し、修正ヘッダを可変入力長調整可能暗号(「VILTC」)に対するトウィークとして可変入力長調整可能暗号(「VILTC」)を使用して、暗号化メッセージを復号し、修正メッセージおよび修正ヘッダを使用してメッセージを決定する。
[029] 任意に、認証ステップのため、復号システムはメッセージが有効であるか否か確認するチェックを行う。例えば、所定数の「0」ビットが暗号化の間にメッセージに添付された場合、復号では、これらのビットの存在をチェックすることができる。このチェックが失敗した場合、復号はエラーを出力する。メッセージを通すためには多数の異なるチェックがあってもよく、出力されるエラー(1つまたは複数)は、どのチェック(の組み合わせ)が失敗したのかに応じて、異なってもよい。(これは、認証付暗号化の「認証」部分である。攻撃者が暗号化メッセージを改竄した場合、一旦復号されたなら、恐らくもはや有効ではなくなるであろう。)
[030] 可変入力長調整可能暗号(「VILTC」)を組み立てて使用する新技術は、方法の一部として、この方法を実行するように構成された計算システムの一部として、または計算システムにこの方法を実行させるコンピュータ実行可能命令を格納する有形コンピュータ読み取り可能媒体の一部として実現することができる。種々の新技術は、組み合わせてまたは別個に使用することができる。
[031] 本発明の以上のおよびその他の目的、特徴、ならびに利点は、以下の詳細な説明から一層明らかになるであろう。詳細な説明は、添付図面を参照しながら進められる。
図1は、本明細書において説明する、ある実施形態を実現することができる計算システムを一般化して示す図である。 図2は、可変入力長調整可能暗号(「VILTC」)の組み立ておよび使用のためのアーキテクチャ例を示す図である。 図3A〜図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。 図3A〜図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。 図3A〜図3Cは、初期化ベクトルの保護を伴う、可変入力長調整可能暗号(「VILTC」)の組み立てを一般化して示す図である。 図4は、初期化ベクトルを保護して、可変入力長調整可能暗号(「VILTC」)を使用するための技法を一般化して示すフローチャートである。 図5A〜図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。 図5A〜図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。 図5A〜図5Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第1実施例を示す図である。 図6A〜図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。 図6A〜図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。 図6A〜図6Cは、初期化ベクトルを保護する可変入力長調整可能暗号(「VILTC」)の第2実施例を示す図である。 図7は、可変入力長調整可能暗号(「VILTC」)を使用する、関連データ付き認証付暗号化の技法を一般化して示すフローチャートである。 図8は、可変入力長調整可能暗号(「VILTC」)を使用する、関連データによる認証復号の技法を一般化して示すフローチャートである。 図9は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。 図10は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。 図11は、本明細書において説明する新技術の一部について理論的正当化の態様を示す擬似コード・リストである。
[040] 詳細な説明では、可変入力長調整可能暗号(「VILTC」)の構造および使用における新技術を紹介する。場合によっては、これらの可変入力長調整可能暗号(「VILTC」)は、効率的な処理遂行(performance)で安全性強化を提供するために、暗号化/復号システム外部への露出から保護された初期化ベクトルを使用する。他の場合では、関連データ付き認証付暗号化/復号を信頼性高くしかも効率的に実現するために、可変入力長調整可能暗号(「VILTC」)を使用する。
[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)は、誕生日限界までしか安全でない既存の構造に負けない。
[042] 初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)には多くの暗号関連用途がある。具体的には、大規模な保存データのシナリオでは、1つの鍵によって保護されるべきデータ量が、通例、鍵を容易に再交渉することができるシナリオにおけるよりも多く、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は適したレベルの安全性を効率的に提供することができる。例えば、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、完全ディスク暗号化(「FDE」:full-disk encryption)および復号、フォーマット保存暗号化(「FPE」)および復号、または関連データ付き認証付暗号化(「AEAD」)および復号に使用することができる。あるいは、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、他の暗号化/復号の用途にも使用することができる。
[043] 本明細書において説明する新技術の他の態様によれば、調整可能暗号が関連データ付き認証付暗号化(「AEAD」)および対応する復号に使用される。関連データ付き認証付暗号化(「AEAD」)に使用される可変入力長調整可能暗号(「VILTC」)は、保護された初期化ベクトル(「IV」)構造または何らかの他の可変入力長調整可能暗号(「VILTC」)構造を使用してインスタンス化することができる。調整可能暗号を関連データ付き認証付暗号化(「AEAD」)に使用することにより、多くの利点を得ることができる。例えば、調整可能暗号を関連データ付き認証付暗号化(「AEAD」)に使用することにより、多数のタイプの復号エラーの報告を安全に扱うのに役立てることができる。更に、平文または関連するデータ入力のいずれかに現れる既存のノンス(nonces)、ランダム性、または冗長性の内任意のものを利用することによって、暗号文の膨張(expansion)を排除することができる。初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)を(そのパラメータをしかるべく設定して)使用することにより、誕生日限界を超えた安全性を有する関連データ付き認証付暗号化(「AEAD」)方式が可能になる。
[044] 本明細書において説明した例には、種々の代替物が可能である。開示した技術の種々の態様は、組み合わせてまたは別個に使用することができる。異なる実施形態は、説明した新技術の内1つ以上を使用する。本明細書において説明する新技術の一部は、背景において注記した問題の内1つ以上に取り組む。通例、所与の技法/ツールはこのような問題の全てを解決するのではない。

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

II.可変入力長調整可能暗号(「VILTC」)の組み立てまたは使用のためのアーキテクチャ例
[056] 図2は、可変入力長調整可能暗号(「VILTC」)の組み立ておよび使用のためのアーキテクチャ例(200)を示す。具体的には、このアーキテクチャは可変入力長調整可能暗号(「VILTC」)を使用する暗号化/復号サービス(222)を含む。
[057] 図2において、アプリケーション(210、212)は、オペレーティング・システム(220)と相互作用するソフトウェアを表す。アプリケーション(210、212)は、データベース・トランザクション処理または分析アプリケーション、ウェブ・ブラウザ、ワード・プロセッサまたはその他の生産性ソフトウェア(ファイル探索機能付き)、メッセージ・サービスあるいは暗号化または復号を使用する任意の他のタイプのアプリケーションを含むことができる。図2は2つのアプリケーションを示すが、アーキテクチャ(200)はそれよりも多いまたは少ないアプリケーションを含むことができる。
[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つのために暗号化メッセージを復号する。

III.表記法および原理
[059] この章では、詳細な説明の残りの部分において使用される表記法について説明する。また、本明細書において説明する暗号化/復号システムのある種の態様について、動作原理も説明する。
[060] 一般に、
Figure 2016540266
は、負でない整数の集合を表す。
Figure 2016540266
(集合
Figure 2016540266
のメンバである数n)について、{0,1}は、全てのn−ビット二進文字列の集合を示し、{0,1}は、全ての(有限)二進文字列の集合を示す。記号εは空文字列を示す。
[061] 文字列sおよびtは有限二進文字列(即ち、s、t∈{0,1})であると仮定する。値|s|は、ビットを単位としたsの長さである。値
Figure 2016540266
であり、ここで、s||tは、文字列sおよびtを連結することによって形成される文字列を示す。s∈{0,1}nmの場合、ある
Figure 2016540266
について、式
Figure 2016540266
は、各sが、長さ|s|=n、s=s,s,...sとなるように定義されることを意味する。コンテキストからnが暗黙的である場合、この表記から省略されてもよい。s=b,b,...bがn−ビット文字列(各b∈{0,1})である場合、文字列sの一部は以下のように表される。
Figure 2016540266
Figure 2016540266
Figure 2016540266
[062] 文字列
Figure 2016540266
は、文字列sおよびtのビット毎の排他的論理和(「XOR」)である。例えば、|s|<|t|の場合、
Figure 2016540266
はsおよび
Figure 2016540266
のビット毎のXORである。
[063] n≦min(R)として、
Figure 2016540266
および
Figure 2016540266
と仮定すると、文字列
Figure 2016540266
が得られ、記号の濫用により、
Figure 2016540266
となる。有限集合
Figure 2016540266
を仮定すると、式
Figure 2016540266
は、ランダム変数Xが
Figure 2016540266
からランダムに均一にサンプリングされることを意味する。全域にわたり、区別される記号⊥は、{⊥}を除いていずれの集合の一部でもないと仮定する。ある範囲内にあることが分かっている整数nを仮定すると、<n>は、nのある固定長(例えば、64ビット)のエンコード処理(encoding)を示す。例えば、<0>は値0の64−ビット・エンコード処理を示すことができる。
[064] 関数
Figure 2016540266
その第1引数を添え字付き鍵として書くと、
Figure 2016540266
の全ての別個の値について確率が、
Figure 2016540266
(ここで、確率は、
Figure 2016540266
を超える)である場合、関数Hは∈−殆ど不偏的(∈-almost universal)(∈−AU))となる。同様に、全ての別個のX,
Figure 2016540266
および
Figure 2016540266
について確率が、
Figure 2016540266
である場合、 関数Hは∈−殆ど2−XOR不偏的(∈-almost 2-XOR universal)となる。
[065] アドバーサリー(adversary)とは、0個以上のオラクル(oracle)を入力として取り込むアルゴリズムのことである。アドバーサリーは、何らかの出力を戻す前に、ブラックボックス的に質問する。アドバーサリーはランダムであってもよい。表記A⇒bは、アドバーサリーAが、オラクルfをその入力として実行した後に、bを出力するというイベントを示す。
[066] ときには、アドバーサリーが相互作用することができるオラクルの擬似コード記述、およびこのような相互作用を設定するまたそうでなければ関係付ける手順を与えると便利である。これらの記述をゲームと呼ぶ。ゲームは、1組の手順を含み、アドバーサリーAを入力として取り込む特殊な「主」手順を含む。
Figure 2016540266
は、ゲームGの主手順が、アドバーサリーAが入力として与えられたときにyを出力する確率である。主手順が明示的に与えられない場合、Main(A)は単にAを実行し、(コンテキストから明確になるある順序で)残りの手順をオラクルとしてそれに供給し、次いでAの出力を戻す。
[067]
Figure 2016540266
は、非空集合であり、そして文字列
Figure 2016540266
である。調整可能暗号は、マッピング
Figure 2016540266
であり、全ての
Figure 2016540266
について、調整可能暗号
Figure 2016540266
Figure 2016540266
上の置換であるというプロパティを有する。鍵は、通例、添え字として示されるので、
Figure 2016540266
となる。調整可能暗号
Figure 2016540266
は、反転可能であり、
Figure 2016540266
で示される。
Figure 2016540266
は、鍵空間を示し、
Figure 2016540266
はトウィーク空間を示し、
Figure 2016540266
はメッセージ空間を示す。調整可能暗号
Figure 2016540266
は、全ての
Figure 2016540266
について、
Figure 2016540266
である場合、長さを保存する。調整可能暗号のトウィークまたはメッセージ空間を制限すると他のオブジェクトが生ずる。あるn>0についてメッセージ空間
Figure 2016540266
であるとき、
Figure 2016540266
はブロック・サイズがnの調整可能ブロック暗号(「TBC」)である。更に一般化すると、nーキャラクタ
Figure 2016540266
は、メッセージ空間
Figure 2016540266
にわたる置換の一群であり、調整可能ブロック暗号(「TBC」)における各置換は、鍵およびトウィークに関連付けられる。
Figure 2016540266
のとき、トウィークは暗示的であり、暗号
Figure 2016540266
を与える。ここでE(・)は、
Figure 2016540266
上の(長さ保存)置換であり、E −1はその逆である。最後に、メッセージ空間
Figure 2016540266
および
Figure 2016540266
のとき、従来のブロック暗号は、
Figure 2016540266
となる。
[068] 値N(大文字)は、N−ビット調整可能ブロック暗号(「TBC」)またはNキャラクタ調整可能ブロック暗号(「TBC」)について入力文字列の長さ、または可変入力長調整可能暗号(「VILTC」)について初期化ベクトル(「IV」)の長さを示す。N−ビット調整可能ブロック暗号(「TBC」)および可変入力長調整可能暗号(「VILTC」)は、n−ビット・ブロック暗号から組み立てることができ、ここでn(小文字)はブロック暗号のブロック・サイズを示す。ある例では、N=nとなる。他の例では、N=2nとなる。
[069]
Figure 2016540266
は、
Figure 2016540266
上における全ての置換の集合を示す。
Figure 2016540266
は、鍵空間
Figure 2016540266
およびメッセージ空間
Figure 2016540266
を有する全ての暗号の集合である。
Figure 2016540266
が集合であるとき、
Figure 2016540266
は、全ての関数
Figure 2016540266
の集合である。調整可能暗号は次の通りである
Figure 2016540266
調整可能擬似ランダム置換(「TPRP」)および強いTPRP(強調整可能擬似ランダム置換(「STPRP」))の利点尺度(advantage measure)は、次のようになる。
Figure 2016540266
ここで、各場合において、アドバーサリーAは、指示された数のオラクルを取り込む。調整可能擬似ランダム置換(「TPRP」)および強調整可能擬似ランダム置換(「STPRP」)実験双方に対して、アドバーサリーAは決してオラクルに対する質問を繰り返さない。また、強調整可能擬似ランダム置換(「STPRP」)利点尺度について、これは、アドバーサリーAがその最も左側のオラクルに(T,X)を質問し、見返りにYを受けた場合、アドバーサリーAは決してその最も右のオラクルに(T,Y)を質問しないこと、そしてその逆も意味する。
[070] 関連尺度、SRND利点は、次のように定義される。
Figure 2016540266
ここで、
Figure 2016540266
オラクルは、全てのTおよびXに対して、その第2入力|$(T,X)|=|X|と長さが等しいランダム文字列を出力する。以上の3つの利点に対するアドバーサリーは、それらのオラクル・質問(T,X)、...(T,X)のトランスクリプト(transcript)が任意のi≠jに対してT=Tを含まない場合、ノンス制約付き(nonce-respecting)である。
[071] 暗号
Figure 2016540266
について、擬似ランダム置換(「PRP」)および強擬似ランダム置換(「SPRP」)の利点尺度は、次のように定義される。
Figure 2016540266
ここで、各場合において、アドバーサリーAは、示された数のオラクルを取り込む。
[072] 3つのアドバーサリー・リソース(adversarial resource)を追跡する。時間複雑性t、オラクルの質問数q、およびこれらの質問の全長μとする。アドバーサリーAの時間複雑性は、その包絡確率実験(鍵のサンプリング、オラクルの計算等を含む)の複雑性を含むと定義され、パラメータtは、利点尺度において双方の実験に要した、アドバーサリーAの最大時間複雑性であると定義される。

IV.初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)の一般化された構造および使用
[073] 図3aから図3cは、初期化ベクトルが保護された可変入力長調整可能暗号(「VILTC」)の構造(300、301、302)を一般化して示す。一般化された構造(300、301、302)は、暗号化に使用することができ、平文の固定長入力文字列Xおよび可変長入力文字列Xが、暗号文の固定長出力文字列Yおよび可変長出力文字列Yに変換される。また、一般化された構造(300、301、302)は、復号にも使用することができ、暗号文の固定長入力文字列Yおよび可変長入力文字列Yが、平文の固定長出力文字列Xおよび可変長出力文字列Xに変換される。
[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桁)に基づくことができる。
[075] 図3aでは、可変入力長調整可能暗号(「VILTC」)(330)は、固定長初期化ベクトル(328a)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、固定長初期化ベクトル(328a)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用し、可変長出力文字列(352)を生成するように構成されている。
[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)を格納する。
[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桁)に基づくことができる。
[078] 図3bでは、可変入力長調整可能暗号(「VILTC」)(330)は、N−キャラクタ初期化ベクトル(328b)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、N−キャラクタ初期化ベクトル(328b)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用して、可変長出力文字列(352)を生成するように構成されている。
[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)を格納する。
[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は任意の正の整数とすることができる。
[081] 一般化された構造(301)は、種々の方法で実現することができる。例えば、第1N−キャラクタ調整可能ブロック暗号(「TBC」)(320b)、可変入力長調整可能暗号(「VILTC」)(330)、および第2N−キャラクタ調整可能ブロック暗号(「TBC」)(340b)は、ランダム生成置換参照表から組み立てることができる。一般に、調整可能ブロック暗号(「TBC」)における各置換にはトウィークおよび鍵が関連付けられることを思い出すこと。トウィークおよび鍵は、調整可能ブロック暗号(「TBC」)への入力として、調整可能ブロック暗号(「TBC」)に対する特定の置換を指定する。ある実施態様では(例えば、規制圧力が強いクレジット・カード支払い業界におけるフォーマット保存暗号化(「FPE」)の応用)、ユーザは明示的な鍵を避ける方を好む場合がある。このような場合、トウィークが、ランダム生成置換参照表の一群から選択するために使用される。
[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」)コンポーネントを供給することもできる。
[083] 図3cは、完全ディスク暗号化および復号に適応する構成とした構造(300)の変種を示す。図3cの構造(302)では、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)および第2N−ビット調整可能ブロック暗号(「TBC」)(340c)が、N−ビット初期化ベクトル(328c)をシステム外部への露出から保護する。バッファ(310)が、N−ビット入力文字列(311c)および可変長入力文字列(312)を格納する。Nの数値例は、128および256ビットである。可変長入力文字列(312)の長さの値の例は、4096バイトおよび8192バイトである。
[084] 図3cでは、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)は、N−ビット初期化ベクトル(328c)を生成するように構成されている。例えば、第1N−ビット調整可能ブロック暗号(「TBC」)(320c)は、N−ビット入力文字列(311c)をその入力として使用し、システムに対するトウィーク(318)および可変長入力文字列(312)の組み合わせ(例えば、連結またはその他の調節)をそのトウィークとして使用して、N−ビット初期化ベクトル(328c)を生成するように構成されている。トウィーク(318)の値は、システムの環境的特徴(例えば、完全ディスク暗号化(「FDE」)では、論理的ハード・ディスク・セクタID)に基づくことができる。
[085] 図3cでは、可変入力長調整可能暗号(「VILTC」)(330)は、N−ビット初期化ベクトル(328c)をトウィークとして使用して、可変長出力文字列(352)を生成するように構成されている。例えば、可変入力長調整可能暗号(「VILTC」)(330)は、N−ビット初期化ベクトル(328c)をそのトウィークとして使用し、可変長入力文字列(312)をその入力として使用して、可変長出力文字列(352)を生成するように構成されている。
[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)を格納する。
[087] 一般化された構造(302)は、以下で詳述するように、多くの方法で実現することができる。第1N−ビット調整可能ブロック暗号(「TBC」)および第2N−ビット調整可能ブロック暗号(「TBC」)は、同じ構造を有する。あるいは、これらは異なる構造を有する。
[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構造である。
[089] 構造(302)は、安全性と実装効率とのトレードオフを得るためにN(固定長入力文字列および固定長出力文字列のビット数)を調節するように構成されたコントローラ(図示せず)も含むことができる。Nの値が小さい程(例えば、128)、安全性が悪化するが、安全性制約に伴い効率的な実装が簡素化する。他方で、Nの値が大きい程(例えば、256)高い安全性が得られるが、安全性制約に伴い効率的な実装が複雑化する。
[090] 一般に、Nは任意の正の整数とすることができる。保護された初期化ベクトル(「IV」)の構造の固定入力長(「FIL」)および可変入力長(「VIL」)コンポーネントが基礎の128−ビット・ブロック暗号(例えば、AES)から組み立てられるとき、N=128およびN=256という数値が相応しい。PIV構造が、他のサイズのブロック暗号(ブロック・サイズが64ビットのDESのような)を使用して実現される場合、Nには他の値が適していることもある(例えば、64または128ビット)。
[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」)コンポーネントを供給することもできる。
[092] 構造(302)は、一種の3ラウンド、不均衡ファイステル・ネットワーク(three-round, unbalanced Feistel network)として解釈することができ、入力の左部が固定ビット長Nであり、右部が可変長を有する。1回目および3回目のラウンド関数が、N−ビット
Figure 2016540266
(320c、340c)となる。実施態様例では、ビット長Nは、この構造の調整可能な(tunable)パラメータであり、N=128またはN−256というような値を有することができる。可変入力長調整可能暗号(「VILTC」)(330)は、中間ラウンド関数
Figure 2016540266
を提供し、そのトウィークは、最初のラウンドの出力、即ち、初期化ベクトルIV(328c)となる。
[093] 初期化ベクトル(「IV」)が保護されない従来の
Figure 2016540266
と比較すると、初期化ベクトル(「IV」)が保護される可変入力長調整可能暗号(「VILTC」)
Figure 2016540266
における可変入力長調整可能暗号(「VILTC」)モジュール
Figure 2016540266
は、安全性要件を低く抑えることができる。
Figure 2016540266
に対する目標安全性プロパティは、強調整可能擬似ランダム置換(「STPRP」)安全(STPRP-secure)であるということである。非公式には、強調整可能擬似ランダム置換(「STPRP」)安全であるとは、攻撃者も全ての入力にわたって完全な制御を有する、選択暗号文攻撃に耐えることを意味する。攻撃者は、例えば、トウィークを任意の回数繰り返すことができる。章VIIにおいて詳述するが、
Figure 2016540266
が、N−ビット文字列のドメインにわたって強調整可能擬似ランダム置換(「STPRP」)安全であり、調整可能暗号
Figure 2016540266
が、トウィークを決して繰り返さない攻撃に対して安全である場合、
Figure 2016540266
は強調整可能擬似ランダム置換(「STPRP」)安全となる。定性的に、初期化ベクトル(「IV」)保護構造は、制限された種類の攻撃者に対する安全性を、任意の選択暗号文攻撃に対する安全性に高める(大きなドメインにわたって)。定量的に、
Figure 2016540266
に対する安全性限界(security bound)は、加算項q/2を有し、qは、
Figure 2016540266
が質問される回数である。Nは、ある基礎のブロック暗号のブロック・サイズnとすることができる。この場合、
Figure 2016540266
は、既存の構造によって得られるものに比肩し得る限界(bound)を達成する。N=2nの場合、n−ビット・プリミティブを使用して
Figure 2016540266
および
Figure 2016540266
をインスタンス化することができ、なおも
Figure 2016540266
は、2n/2回の質問という誕生日超え(beyond-birthday)を遙かに超える安全性を有する調整可能暗号を提供する。
[094] 公式的には、実施形態例では、
Figure 2016540266
は、以下に基づいて組み立てられる。 あるt≧0について、トウィーク空間
Figure 2016540266
とする。
Figure 2016540266
である場合、
Figure 2016540266
となるように、
Figure 2016540266
とする。
Figure 2016540266
N>0の整数について、
Figure 2016540266
および
Figure 2016540266
これらから、
Figure 2016540266
ここで、
Figure 2016540266
[095]
Figure 2016540266
のPIV組成(composition)は、3ラウンド・ファイステル構造であり、以下のように動作する。入力(T、X)上において、平文入力文字列X=X||X、ここで固定長部の長さは|X|=Nである。第1
Figure 2016540266
は、鍵K’を使用して、初期化ベクトル
Figure 2016540266
に対してN−ビット文字列を作成する。次に、
Figure 2016540266
はこの初期化ベクトル(「IV」)を使用して、鍵Kを用いて可変長入力文字列Xを暗号化し、可変長出力文字列
Figure 2016540266
を作成する。第2
Figure 2016540266
は、N−ビット出力文字列
Figure 2016540266
を作成する。暗号文出力文字列Y||Yは、
Figure 2016540266
の値として戻される。
[096] 逆に、反転構造(inverse construction)
Figure 2016540266
は、次のように動作する。入力(T,Y)上において、暗号文入力文字列はY=Y||Yであり、ここで固定長部の長さは|Y|=Nである。第1
Figure 2016540266
は、鍵K’を使用して、初期化ベクトル
Figure 2016540266
に対してN−ビット文字列を作成する。次に、
Figure 2016540266
はこの初期化ベクトル(「IV」)を使用して、鍵Kを用いて可変長入力文字列Yを復号し、可変長出力文字列
Figure 2016540266
を作成する。第2
Figure 2016540266
は、N−ビット出力文字列
Figure 2016540266
を作成する。平文出力文字列X||Xは、
Figure 2016540266
の値として戻される。
[097] 図3cでは、構造は3つのラウンドを含む。あるいは、構造はもっと多くのラウンド(例えば、5ラウンドまたは7ラウンド)を含むことができ、N−ビット
Figure 2016540266
がこの構造を開始および終了し、多数の
Figure 2016540266
コンポーネントがN−ビット
Figure 2016540266
の間で交互に現れる。
[098] 図4は、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)を使用するための技法(400)を一般化して示す。暗号化システムまたは復号システムは、技法(400)を実行する。
[099] 本システムは、固定長入力文字列(例えば、N−ビット入力文字列、N−キャラクタ入力文字列)、および可変長入力文字列を受ける(410)。暗号化では(例えば、完全ディスク暗号化(「FDE」)、フォーマット保存暗号化(「FPE」)、関連データ付き認証付暗号化(「AEAD」)、または他の暗号化のシナリオの間)、固定長入力文字列および可変長入力文字列は平文である。対応する復号では、固定長入力文字列および可変長入力文字列は暗号文である。
[0100] 本システムは、固定長初期化ベクトル(例えば、N−ビット初期化ベクトル、N−キャラクタ初期化ベクトル)を生成する(420)。例えば、固定長初期化ベクトルは、固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力である固定長入力文字列に基づき、更に固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システムに対するトウィークおよび可変長入力文字列の組み合わせに基づいて、固定入力長調整可能ブロック暗号(「FIL TBC」)によって生成される。固定入力長調整可能ブロック暗号(「FIL TBC」)は、例えば、N−ビット調整可能ブロック暗号(「TBC」)またはN−キャラクタ調整可能ブロック暗号(「TBC」)とすることができる。固定入力長調整可能ブロック暗号(「FIL TBC」)に対して、本システムは、システムの環境的特徴(例えば、ディスク・セクタ、メモリ・アドレス)に基づいてトウィークの値を設定するか、または何らかの他の方法でトウィークの値を設定することができる。あるいは、固定長初期化ベクトルは、何らかの他の方法で生成される。
[0101] また、本システムは、固定長初期化ベクトルをトウィークとして使用する可変入力長調整可能暗号(「VILTC」)によって、可変長出力文字列を生成する(430)。例えば、可変入力長調整可能暗号(「VILTC」)は、固定長初期化ベクトル(可変入力長調整可能暗号(「VILTC」)に対するトウィークとして)および可変長入力文字列(可変入力長調整可能暗号(「VILTC」)に対する入力として)に基づいて、可変長出力文字列を生成する。あるいは、可変長出力文字列は、何らかの他の方法で生成される。
[0102] 本システムは、固定長初期化ベクトルを曖昧にする(440)。例えば、固定長初期化ベクトルは、固定入力長調整可能ブロック暗号(「FIL TBC」)によって曖昧にされ、固定入力長調整可能ブロック暗号(「FIL TBC」)に対する入力である固定長初期化ベクトル、および固定入力長調整可能ブロック暗号(「FIL TBC」)に対するトウィークである、システム・トウィークおよび可変長出力文字列の組み合わせに基づいて、固定長出力ストリング(例えば、N−ビット出力文字列、N−キャラクタ出力文字列)を生成する。固定入力長調整可能ブロック暗号(「FIL TBC」)は、例えば、N−ビット調整可能ブロック暗号(「TBC」)またはN−キャラクタ調整可能ブロック暗号(「TBC」)とすることができる。あるいは、固定長初期化ベクトルは、何らかの他の方法で曖昧にされる。
[0103] 最後に、本システムは、固定長出力文字列および可変長出力文字列を出力する(450)。暗号化では(例えば、完全ディスク暗号化(「FDE」)、フォーマット保存暗号化(「FPE」)、関連データ付き認証付暗号化(「AEAD」)、または他の暗号化のシナリオの間)、固定長出力文字列および可変長出力文字列は暗号文である。対応する復号では、固定長出力文字列および可変長出力文字列は平文である。

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

A.第1の実施態様例(TCT)および第2の実施態様例(TCT)のコンポーネント
[0113] 第1の実施態様例(TCT)および第2の実施態様例(TCT)は、以下のコンポーネントを使用する。
[0114] コンポーネントLRW2は、ブロック暗号Eおよび∈−AXU関数Hを使用する誕生日限界調整可能ブロック暗号(「TBC」)を示す。
Figure 2016540266
[0115] コンポーネントCLRW2は、誕生日限界を超える安全性を有する調整可能ブロック暗号(「TBC」)であり、ブロック暗号Eおよび∈−AXU関数Hを使用する。
Figure 2016540266
[0116] コンポーネントpolyHmnは、ドメイン({0,1}および∈=m/2を有する∈−AXU関数である。全ての動作は、F2n内にある。
Figure 2016540266
[0117] コンポーネントNH(vw、2tw)は、∈=1/2twである∈−AXU関数である。入力はvwビットであり、vは偶数、w>0に固定される。
Figure 2016540266
ここで、
Figure 2016540266
[0118] コンポーネントCDMSは、
Figure 2016540266
に対するファイステル型ドメイン・エクステンダ(domain extender)である。
Figure 2016540266
ここで、
Figure 2016540266
および
Figure 2016540266

B.第1の実施態様例(TCT
[0119] 第1の実施態様例(TCT)は、平文メッセージが小さな用途のための誕生日型安全性を備えた効率的な実施態様である(例えば、完全ディスク暗号化(「FDE」))。この実施態様では、N−ビット調整可能ブロック暗号(「TBC」)のサイズはN=n、そしてn−ビット
Figure 2016540266
はコンポーネントLRW2を使用する。ブロック暗号Eに加えて、LRW2[H,E]は、∈−AXUハッシュ関数Hを使用する。理論上、コンポーネントLRW2は大きなトウィークに対応することができる。しかしながら、実用的な目的では、小さなトウィーク空間のLRW2を実装し、次いで高速∈−AUハッシュ関数を使用してこの小さなトウィーク空間を拡張する方が効率的である。∈−AXUハッシュ関数自体に対しては、第1実施態様例は多項数ハッシュpolyHを使用する。
[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に対して、
Figure 2016540266
がブロック暗号である。
Figure 2016540266
ここで、τnビットのトウィーク空間およびドメイン
Figure 2016540266
を得るために、n−ビット
Figure 2016540266
および
Figure 2016540266
を次のように設定する。
[0121] n−ビット
Figure 2016540266
Figure 2016540266
即ち、n−ビット
Figure 2016540266
は、NHを使用してそのトウィーク空間が拡張されたコンポーネントLRW2である。
Figure 2016540266
の鍵空間は、
Figure 2016540266
であり、鍵K’は、Eの鍵PolyH2n、および
Figure 2016540266
に区分される。NHは固定長入力しかサポートしないので、NH入力には暗黙的に1がパディングされ、次いで十分な0がパディングされて、
Figure 2016540266
ビットの全長になる。
Figure 2016540266
のトウィーク空間は、
Figure 2016540266
となる。
[0122] 図5aは、トウィーク入力(510)およびメッセージ入力を受け入れる第1n−ビット
Figure 2016540266
(520)を示す。メッセージ入力は、第1n−ビット・ブロックXである。トウィーク入力(510)は、メッセージXの残りのブロックのパディング・バージョンと連結されたトウィーク値Tである。関数Pad()は、sを、
Figure 2016540266
にマッピングする。第1n−ビット
Figure 2016540266
(520)は、n−ビット初期化ベクトル(「IV」)(538)を生成する。
[0123] また、図5aは、トウィーク入力(560)およびメッセージ入力を受け入れる第2n−ビット
Figure 2016540266
(520)も示す。メッセージ入力は、n−ビット初期化ベクトル(「IV」)(538)である。トウィーク入力(560)は、可変長出力文字列YのブロックY...Yのパディング・バージョンと連結されたトウィーク値Tである。第2n−ビット
Figure 2016540266
(520)は、可変長出力文字列Yの第1ブロックYを生成する。
[0124] 図5bは、n−ビット
Figure 2016540266
(520)の詳細を示す。NH関数(521)は、(l+r)×nビットのトウィーク値を受け入れ、2nビットのトウィーク値を生成する。PolyH2n関数(522)は、2n−ビット・トウィーク値からn−ビット・トウィーク値を生成する。ブロック暗号(523)は、n−ビット入力値とのXORを取ったn−ビット・トウィーク値(これは、第1n−ビット
Figure 2016540266
と第2n−ビット
Figure 2016540266
(n−ビット初期化ベクトル(「IV」))との間で変化する)を暗号化する。次いで、ブロック暗号(523)の出力は、n−ビット・トウィーク値とのXORが取られ、n−ビット出力を生成する。
[0125]
Figure 2016540266
TCTR手順では、g(T,i)=Tであるので、
Figure 2016540266
Figure 2016540266
の鍵空間は、{0,1}×{0,1}であり、鍵KはEの鍵およびPolyHに区分される。
Figure 2016540266
のトウィーク空間は、{0,1}であり、そのドメインは、
Figure 2016540266
である。
[0126] 図5aに示すように、
Figure 2016540266
に対するTCTRは、一連のコンポーネント
Figure 2016540266
(540)として実装される。各
Figure 2016540266
(540)は、トウィーク入力として、n−ビット初期化ベクトル(「IV」)(538)を受け入れる。また、各
Figure 2016540266
(540)は、メッセージ入力として、0≦i≦v−2に対して、パディング・カウンタ値<i>も受け入れる。各
Figure 2016540266
(540)の出力は、メッセージXのn−ビット・ブロックXi+2とXORが取られ、可変長出力文字列YのブロックYi+2を生成する。
[0127] 図5cは、n−ビット
Figure 2016540266
(540)の詳細を示す。polyH関数(542)は、入力n−ビット・トウィーク値から結果的に得られるn−ビット・トウィーク値を生成する。ブロック暗号(543)は、結果的に得られたn−ビット・トウィーク値とn−ビット入力値(パディング・カウンタ値)とのXORを取って暗号化する。次いで、ブロック暗号(543)の出力は、結果的に得られたn−ビット・トウィーク値とXORが取られ、n−ビット出力を生成する。

c.第2の実施態様例(TCT
[0128] 第2の実施態様例(TCT)は、誕生日限界を超えた安全性を提供する。この実施態様では、N−ビット
Figure 2016540266
のサイズは、N=2nである。この2n−ビット
Figure 2016540266
は、CDMSコンポーネントの変種を使用し、これは誕生日限界を超える安全性を提供するために、数個のn−ビット調整可能ブロック暗号(「TBC」)をCコンポーネントLRW2の一部として含む。トウィーク空間は、NHを使用して拡張され、NHの範囲は{0,1}2nに設定される。最終的に、設定
Figure 2016540266
は、約22n/3回までの質問に対して安全である。また、CコンポーネントLRW2は、誕生日限界を超えて安全な可変入力長調整可能暗号(「VILTC」)コンポーネントにおいても使用される。即ち、少なくとも、
Figure 2016540266
に対して、
Figure 2016540266
となる。第2の実施態様例(TCT)は、τnビットのトウィークをサポートし、ドメイン
Figure 2016540266
を有する。
[0129] 図6aから図6cは、トウィークTおよびメッセージXを入力として取り込む第2の実施態様例(TCT)(600)のコンポーネントを示す。メッセージXは、ブロックX、X、...、Xに分割され、最後のブロックXを除く全てのブロックの長さはnであり、最後のブロックXの長さはn以下である。メッセージXの長さは、2nビットと
Figure 2016540266
ビットとの間である。第2の実施態様例(TCT)は、出力文字列Y=Y、Y、...Yを生成する。固定入力長(「FIL」)コンポーネントのブロック・サイズはN=2nである。
Figure 2016540266
に対して、
Figure 2016540266
がブロック暗号となる。
Figure 2016540266
ここで、2n−ビット
Figure 2016540266
および
Figure 2016540266
は、次のように設定される。
[0130] n−ビット
Figure 2016540266
Figure 2016540266
即ち、2n−ビット
Figure 2016540266
は、そのトウィーク空間がNHを使用して拡張された、
Figure 2016540266
コンポーネントである。
Figure 2016540266
の鍵空間は、
Figure 2016540266
であり、鍵K’は、Eに対する2つの鍵、polyH6nに対する2つの鍵、および
Figure 2016540266
に対する鍵に区分される。
Figure 2016540266
のトウィーク空間は、{0,1}τnである。
[0131] 図6aは、トウィーク入力(610)およびメッセージ入力を受け入れる第2n−ビット
Figure 2016540266
(620)を示す。メッセージ入力は、2つの第1n−ビット・ブロックXおよびXである。トウィーク入力(610)は、メッセージXの残りのブロックのパディング・バージョンと連結されたトウィーク値Tである。第1の2n−ビット
Figure 2016540266
(620)は、2n−ビット初期化ベクトル(「IV」)(638)を生成する。
[0132] また、図6aは、トウィーク入力(660)およびメッセージ入力を受け入れる第2n−ビット
Figure 2016540266
(620)も示す。メッセージ入力は、は、2n−ビット初期化ベクトル(「IV」)(638)である。トウィーク入力(660)は、可変長出力文字列YのブロックY...Yのパディング・バージョンと連結されたトウィーク値Tである。第2の2n−ビット
Figure 2016540266
(520)は、可変長出力文字列Yの2つの第1ブロックYおよびYを生成する。
[0133] 図6bは、2n−ビット
Figure 2016540266
(620)の詳細を示す。HN関数(621)は、(l+r−1)×nビットのトウィーク値を受け入れ、4nビットのトウィーク値T’を生成する。2n−ビット入力は、第1の2n−ビット
Figure 2016540266
(XおよびX)と第2の2n−ビット
Figure 2016540266
(2n−ビット初期化ベクトル(「IV」))との間で変化し、2つのn−ビット入力に分割される。第1n−ビット入力は、第1
Figure 2016540266
コンポーネント(622)に供給される。このコンポーネント(622)は、6nビットのトウィーク値も受け入れる。6n−ビット・トウィーク値は、4n−ビット・トウィーク値T’のパディング・バージョン(n個のゼロ・ビットがパディングされ、5nビットの長さになる)および第2n−ビット入力を連結することによって決定される。第1
Figure 2016540266
コンポーネント(622)は、n−ビット出力値を生成し、4n−ビット・トウィーク値T’のパディング・バージョン(n個のゼロ・ビットがパディングされて5nビットの長さになる)の後ろに連結され、第2
Figure 2016540266
コンポーネント(622)のために6n−ビット・トウィーク値を形成する。また、第2
Figure 2016540266
コンポーネント(622)は、第2n−ビット入力も受け入れ、n−ビット出力を生成する。同様に、第3
Figure 2016540266
コンポーネント(622)も第1CコンポーネントLRW2(622)からのn−ビット出力値、および6n−ビット・トウィーク値(図6bに示すように形成される)を処理して、他のn−ビット出力を生成する。第2および第3CコンポーネントLRW2(622)からのn−ビット出力は、CDMSコンポーネント(620)の2n−ビット出力に連結される。
[0134] 図6cは、
Figure 2016540266
コンポーネントの詳細を示し、ここで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−ビット出力値を生成する。
[0135]
Figure 2016540266
TCTR関数では、g(T,i)=Tであるので、
Figure 2016540266

Figure 2016540266
の鍵空間は、{0,1}2k×{0,1}4nであり、鍵KはEの2つの鍵およびPolyH2nの2つの鍵に区分される。
Figure 2016540266
のトウィーク空間は、{0,1}2nであり、そのドメインは、
Figure 2016540266
である。第2の実施態様例(TCT)は、鍵素材の
Figure 2016540266
ビットを使用する。
[0136] 図6aに示すように、
Figure 2016540266
に対するTCTRは、一連のコンポーネント
Figure 2016540266
(640)として実装される。各
Figure 2016540266
(640)は、
Figure 2016540266
コンポーネントとして実装される。また、各
Figure 2016540266
(640)は、トウィーク入力として、2n−ビット初期化ベクトル(「IV」)(638)を受け入れる。また、各
Figure 2016540266
(640)は、メッセージ入力として、0≦i≦v−3に対して、nビットのパディング・カウンタ値<i>も受け入れる。各
Figure 2016540266
(640)のn−ビット出力は、メッセージXのn−ビット・ブロックXi+3とXORが取られ、可変長出力文字列YのブロックYi+3を生成する。図6cは、
Figure 2016540266
(640)に対する
Figure 2016540266
コンポーネントの詳細を示す。ここでは、r=2である。

D.変種および実用上の考慮点
[0137] この章では、第1の実施態様例(TCT)および第2の実施態様例(TCT)の様々な変種について説明する。これらの変更はいずれも、別段注記されなければ、これらの実施態様に対する安全性限界に著しい影響を及ぼすことはない。
[0138] ブロック暗号鍵の数量削減 第1の実施態様例(TCT)の場合、トウィークによってドメイン分離が実施されることを条件に、1つの鍵を双方のLRW2インスタンスに使用することができる。これによって、基礎のブロック暗号に対して1つの鍵の使用が可能となり、状況によっては、著しい実施の効果が見込まれる(例えば、1つのAESパイプラインを可能にすることによって)。これを遂行する1つの方法は、
Figure 2016540266
を、
Figure 2016540266
と交換し、更に、
Figure 2016540266
を、
Figure 2016540266
と交換することである。ここで、fは、鍵空間
Figure 2016540266
を有する2−n−AU関数であり、形式(X,ε)(あるX∈{0,1}に対して)または(ε,Y)(ある
Figure 2016540266
に対して)の入力を取り込み、3n−ビット文字列を出力する。
Figure 2016540266
とする。ここで説明する関数fは、2つのLRW2インスタンスのシグネチャー(signature)を統一するための数学的な便宜であり、これによってトウィーク・ベースのドメイン分離を範囲内に持ち込む。実際には、2つのインスタンスは、共有ブロック暗号鍵を除いて、独立に実装することができる。第2の実施態様例(TCT)は、2つのブロック暗号鍵だけを必要とするように同様に変更することができる。
[0139] 処理能力向上 固定入力長調整可能ブロック暗号(「FIL TBC」)では、パディング方式をしかるべく調節することによって、
Figure 2016540266
の代わりに、
Figure 2016540266
を使用することができる。また、第2の実施態様例(TCT)のTCTR部分では、各LRW2呼び出しが同じトウィークを使用するので、CコンポーネントLRW2毎にpolyH関数を1回計算することができる。
[0140] 第2の実施態様例(TCT)の1つの可能な実施態様では、2回の固定入力長(「FIL」)フェーズ(polyH6nを12回評価する結果)の間に72回の有限界乗算を使用する。あるいは、ある実施態様では、CDMSの内部で使用されるpolyH6nハッシュの中間値をキャッシュし(呼び出し毎に、4つのn−ビット・トウィーク・ブロックが一定である)、32回の有限界乗算をしないで済む。ドメイン分離定数に対応する多項式ハッシュの項を予め計算することによって、更に12回の乗算をなくし、合計で28回だけが残る。可変入力長(「VIL」)フェーズ中において4つ更に使用するので、数量は32となる。
[0141] 大きなメッセージ空間の処理(handling) 第1の実施態様例(TCT)および第2の実施態様例(TCT)の双方は、完全ディスク暗号化(「FDE」)への応用を念頭に入れて設計される。具体的には、これらは、時間に先立って(ahead of time)固定される値
Figure 2016540266
を使用し、
Figure 2016540266
ビットより多くの鍵素材(key material)を使用する。これらの制限は、NHハッシュ関数を使用することの結果である。しかしながら、単純なNHへの拡張が、任意に長い文字列を収容する。正の整数rに対して、
Figure 2016540266
ここで、i<vに対して|M|=rn、|M|≦rn、そしてNHはNH[rn,2N]の省略である。このように定義すると、NHは2−N−殆ど普遍であり(-almost universal)、ドメイン{0,1}を有し、rnビットの鍵素材を必要とする。この変更は、polyHハッシュに対する重みの一部を移転させる。入力の追加のrnビット毎に、8回の余分な有限長乗算が使用される。
[0142] これらの変更によって、第1の実施態様例(TCT)の安全性限界における最終的な2つの項(第7章参照)は、
Figure 2016540266
となる。ここで、
Figure 2016540266
は、ここでは、アドバーサリーの最も長い質問の長さであり、
Figure 2016540266
、そして残りの項は、基礎のブロック暗号の(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] 長いメッセージに対する誕生日限界を超える安全性
Figure 2016540266
が何らかの小さい値または中位の値に制限されない(bound)場合、第2の実施態様例(TCT)はもはや誕生日限界を超える安全性を提供しない。安全性限界において問題となる項は、
Figure 2016540266
である。これに取り組むために、TCTR手順において、異なるブロック毎トウィーク関数を使用することができる。具体的には、
Figure 2016540266
となる。ノンス制約付きの場合では、基礎の
Figure 2016540266
が、次に、各メッセージ・ブロック上でこれまで見られなかった値によって、再調整される。
Figure 2016540266
が理想的な暗号Πと交換されようとする場合、ノンス制約付きの場合では、平文の各ブロックが、新鮮なランダム置換の出力によってマスクされる。言い換えると、戻される各ブロックは、均一にランダムとなる。つまり、きつい制限(tight bound)がこの場合には予期される。あるいは、
Figure 2016540266
を使用することができ、同じことが当てはまる。

E.従来の暗号化を使用して、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)をインスタンス化する
[0144] あるいは、
Figure 2016540266
は、直接従来のブロック暗号に基づく暗号化を使用して実現することもできる。以下の
Figure 2016540266
および
Figure 2016540266
の実施態様について検討する。
Figure 2016540266
[0145] この
Figure 2016540266
の実施態様は、カウンタ・モード暗号化を使用するが、初期値Tが入力として表出され、それを調整可能暗号にする。生憎、この
Figure 2016540266
の実施態様は、ノンス制約付きアドバーサリーに対抗するSRND安全性に欠ける。しかしながら、以下のように安全に変更することができる。
Figure 2016540266
トウィーク空間
Figure 2016540266
およびメッセージ空間
Figure 2016540266
を有する
Figure 2016540266
を想定すると、オラクル
Figure 2016540266
は質問
Figure 2016540266
を取り込み、(1)
Figure 2016540266
をサンプルし、
(2)E(T,X)を戻す。オラクル
Figure 2016540266
は、入力
Figure 2016540266
上でも同様に振る舞い、サンプリング
Figure 2016540266
を行い、
Figure 2016540266
を戻す。

VI.可変入力長調整可能暗号(「VILTC」)を使用した、関連データ付き認証付暗号化/復号
[0146] 関連データ付き認証付暗号化(「AEAD」)は、ヘッダと共に送られるメッセージを認証する方法を提供する。例えば、平文メッセージが、その守秘性および真正性を保護する方法で暗号文に変換されるとき、このメッセージに付随し、メッセージと共に認証されなければならないパッカ・ヘッダ(packer header)または他の補助情報がある場合もある。メッセージがノンスおよび冗長性によって補強される場合、符号化メッセージを直接、十分に広いドメインを有する強擬似ランダム置換いPRP(「SPRP」)−安全ブロック暗号に通すことによって、認証付暗号化を得ることができる。
[0147] この章では、可変入力長調整可能暗号(「VILTC」)コンポーネントを使用して関連データ付き認証付暗号化(「AEAD」)を実現する方法について説明する。可変入力長調整可能暗号(「VILTC」)コンポーネントは、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)コンポーネント、または初期化ベクトル(「IV」)が保護されない可変入力長調整可能暗号(「VILTC」)コンポーネントを含むことができる。具体的には、この章では、ヘッダ−メッセージ対(H、M)から調整可能暗号入力(T、X)へのマッピングの傑出したプロパティを特定する。その簡素さに加えて、可変入力長調整可能暗号(「VILTC」)によって関連データ付き認証付暗号化(「AEAD」)を実現することには、様々な実用的な利点がある。
[0148] 可変入力長調整可能暗号(「VILTC」)による認証付暗号化は、関連データを受け入れ、ノンス誤用(nonce-misuse)に耐えることができる。メッセージ・ヘッダを暗号文に結び付ける(bind)ために、トウィークを効果的に使用することができる。
[0149] 加えて、メッセージおよびヘッダ入力内にあるランダム性、状態、または冗長性の効果を探ることができる。例えば、安全性の損失なくランダム性および状態をヘッダに移すことができ、暗号的に処理しなければならないビット数を削減できる潜在的可能性がある。具体的には、これは、平文入力内に既に存在するノンス、ランダム性、および冗長性を利用することによって、帯域幅オーバーヘッドを削減することができる。シーケンス番号、人間読み取り可能フィールド、または詰め物(padding)を含むプロトコルのメッセージは、有用なノンスおよび冗長性を含むことが多い。
[0150] また、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)は、サイド・チャネル攻撃に対してロバストであり続けながら、多数の復号エラー・メッセージに対処する。サイド・チャネル攻撃は、これらを利用しようとする(例えば、オラクルを詰まらせる)。多数の記述式エラー・メッセージの使用は、実用上非常に有用であり得るが、多くの場合有害な攻撃を強めることになる(empower)。これらの攻撃は、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式に対しては失敗する。何故なら、暗号文の任意のビットを緩やかに変化させると、復号された平文文字列のあらゆるビットをランダム化するからである。つまり、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)は、ある種のサイド・チャネルおよび共通の実装誤りに直面しても、ロバスト性を提供する。記述式エラー・メッセージ(例えば、bad_paddingまたはbad_seq_number)は、有用な今後の暗号文を形作るために利用することはできない。更に、ノンスの繰り返しは平文の等しいこと(equality)を漏らすに過ぎない。
[0151] この関連データ付き認証付暗号化(「AEAD」)手法は、フォーマット保存暗号化(「FPE」)にも有効に作用する。変更を最小限に抑えて、透過的に暗号レイヤを旧来のシステムに挿入するために(例えば、データベース方式またはプロトコル仕様)、フォーマット保存暗号化(「FPE」)は、平文と同じフォーマットを有する暗号文を使用する。例えば、ある(多くの場合非二進)アルファベットΣに対して、双方共集合Σに制限される可能性がある。これは、専用初期化ベクトル(「IV」)を暗号文に挿入することを除外する。暗号化を調整するために関連データを使用することによって補償することができ、調整可能暗号およびそれらの安全性定義を自然に調和させる。一意の関連データは、更に標準的な意味で守秘性を保証し、冗長性(クレジット・カード発行者識別番号およびチェックサムのような)をチェックすることによって、認証付暗号化を提供する。
[0152] 一般に、ヘッダHおよびメッセージMを想定すると、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式は、(H,M)を調整可能暗号入力(T,X)にエンコードする。ある固定長のノンスについて、T=ノンス||H、およびX=ノンス||Mと仮定する。ヘッダHは送信される。しかしながら、ノンス値も復号には必要とされるので、暗号文を単純に、
Figure 2016540266
とすることはできない。したがって、暗号文は(ノンス,C)でなければならない。この例では、T=ノンス||Hはエンコードされたヘッダであり、X=ノンス||Mはエンコードされたメッセージであった。記号TおよびXは、それぞれ、
Figure 2016540266
および
Figure 2016540266
と置き換えられる。Hから
Figure 2016540266
へのマッピングは非決定論的であるが、ノンスを知っていれば、完全に再生することができる。ノンスは再現情報として役立つ。メッセージ・エンコード機能は、この再現情報を使用し、したがってヘッダ・エンコード機能とは異なるシグネチャーを有する。また、再現情報はMに依存してはならない。受信側は、
Figure 2016540266
を計算し、ノンスが
Figure 2016540266
におけるMのプレフィクスであることを確認する。
[0153] 更に形式的には、関連データ付き認証付暗号化(「AEAD」)方式は、鍵生成アルゴリズム
Figure 2016540266
、暗号化アルゴリズム
Figure 2016540266
、および復号アルゴリズム
Figure 2016540266
を含むタプル
Figure 2016540266
である。簡略化のために、鍵生成アルゴリズム
Figure 2016540266
は、同じ名称の空でない集合からの鍵をサンプリングすると仮定する。暗号化アルゴリズムは、ランダム化されてもステートフルでもよく、マッピング
Figure 2016540266
である。つまり、暗号化は、鍵
Figure 2016540266
ヘッダ
Figure 2016540266
およびメッセージ、
Figure 2016540266
を取り込み、ある再現情報
Figure 2016540266
を、暗号文Cと共に戻す。
Figure 2016540266
は、
(H,M)上で実行中の
Figure 2016540266
を表し、(R,C)を戻す。決定論的復号アルゴリズムは、マッピング、
Figure 2016540266
であり、Errorsは、
Figure 2016540266
となるような集合である。(|Errors|は1に等しい必要はない。)適正な動作のためには、全ての
Figure 2016540266
について、
Figure 2016540266
となる。
Figure 2016540266
がステートフルである場合、これは全ての状態に該当する。
[0154] 実際には、ヘッダHは、通例、暗号文と共に安全に(in the clear)送信される(例えば、ヘッダがルーティングに必要とされるとき)が、可変入力長調整可能暗号(「VILTC」)による関連データ付き認証付暗号化(「AEAD」)方式は、Hを内部の使用のための何らかの関係する
Figure 2016540266
にエンコードすることもできる。このエンコード処理が非決定論的である場合、再現情報Rは、この
Figure 2016540266
をHから適正に再生するために復号によって使用されるあらゆるものを提供する。例えば、Rは、カウンタ、いくつかのランダム・ビット、または何らかの冗長性を含むことができる。また、これは空文字列であってもよい。
[0155] メッセージまたは鍵ビットをRに書き込むことのために自動的に(trivially)危険になる構造を避けるために、以下の条件を適用する。任意の入力のシーケンス{(H,M)}i≦q、および任意の2つの可能な成果のシーケンス{(R,C)}i≦qおよび{(R’,C’)}i≦qを仮定し、次いで、任意の
Figure 2016540266
について、
Figure 2016540266
ここで、
Figure 2016540266
および
Figure 2016540266
状態
Figure 2016540266
および
Figure 2016540266
は、それぞれ、2つのトランスクリプト(transcript)が条件とされている。即ち、R(したがって、R’)は、H、q、およびRを生成する質問上で
Figure 2016540266
によって投げられたコインのみに依存することができる。
[0156] |Errors|>1を許すことによって、関連データ付き認証付暗号化(「AEAD」)方式は、多数の全く異なるエラー・メッセージを戻すことができる。これは、実際には、例えば、プロトコル・セッション内部における診断に有用となることができる。
[0157] 理想的には、暗号文はランダム・ビットから区別不可能である。再現情報は、ランダムでないかもしれない(例えば、Rがカウンタであるかもしれない)。しかしながら、そのためにIND$−CPA観念(notion)が修正される。具体的には、関連データ付き認証付暗号化(「AEAD」)方式Ψの守秘性は、以下のアドバンテージによって測定される。
Figure 2016540266
Figure 2016540266
は、オラクルであり、入力(H,M)上で、
Figure 2016540266
を計算し、
Figure 2016540266
をサンプリングし、(R,Y)を戻す。真正性の目標は暗号文の完全性である。即ち、
Figure 2016540266
ここで、ブール事象Forgesは、
(1)
Figure 2016540266
および、(2)
Figure 2016540266
に対する以前の質問がいずれも(H,R,C)を戻さないように、Aが質問(H,R,C)をその
Figure 2016540266
オラクルに尋ねた場合にのみに限って、真となる。汎用性を失うことなく、Forgesが真になると直ぐに、Aは停止する。

A.エンコードおよびデコード方式
[0158] 非公式的には、エンコード・アルゴリズムはその入力をフォーマットし直し、ランダム性、状態、または冗長性を注入する。一方、デコード・アルゴリズムは元の入力データの有効性を判断して抜き出す。
[0159] 更に形式的には、実施態様例において、関連データ付き認証付暗号化(「AEAD」)方式(および対応する復号)は、メッセージ空間
Figure 2016540266
、ヘッダ・スペース
Figure 2016540266
、エンコード・メッセージ空間
Figure 2016540266
およびエンコード・ヘッダ
Figure 2016540266
を使用する。これらの集合は、空ではないが、
Figure 2016540266
に等しい可能性がある。集合Errorsについて、
Figure 2016540266
である。
[0160] ヘッダ・エンコード関数
Figure 2016540266
は、ヘッダをエンコードされたヘッダに、恐らくは何らかのランダムなまたはステートフルな様式でマッピングする。非空集合
Figure 2016540266
および全単射
Figure 2016540266
があり、全てのHに対して、ある
Figure 2016540266
に対して、
Figure 2016540266
というプロパティを有する。言い換えると、HはEncodeH(H)から復元することができ、EncodeH(H)の任意の特定の出力は、対応するRが与えられると、Hから再生することができる。EncodeHは、
Figure 2016540266
−エンコーダである(
Figure 2016540266
を暗示的のままにしておく)。
[0161] メッセージ・エンコード方式EncodeMsg=(EncodeM, DecodeM)は、メッセージ・エンコード機能
Figure 2016540266
およびメッセージ・デコード機能
Figure 2016540266
から構成されている。EncodeMは、ランダム化することができ、またはステートフルにすることができる。EncodeMのある状態に対して、
Figure 2016540266
となる場合にのみに限って、
Figure 2016540266
となる。それ以外の場合は、
Figure 2016540266
となる。例えば、
Figure 2016540266
となることが可能である。DecodeMアルゴリズムは決定論的であり、全てのアルゴリズムは線形時間で実行しなければならない。EncodeMsgは、
Figure 2016540266
−エンコード方式である。
[0162] エンコード機能は、最大ストレッチ(maximal stretch)が関連付けられている。これは、
Figure 2016540266
の全てに対して、
Figure 2016540266
および
Figure 2016540266
となるような、最も小さい
Figure 2016540266
であると定義される。
[0163] エンコード・メカニズムの鍵となる1つのプロパティは、エンコード方式が出力を繰り返すように作ることができる尤度に関係する。Aを、q回の質問(必ずしも別個でなくてもよい)をオラクルfに尋ね、
Figure 2016540266
を応答で受け、これらの値を出力することによって停止するアドバーサリーであるとする。(fはメッセージ−またはヘッダ−エンコード関数とすることができる)。Aは決定論的であると仮定することができる。
Figure 2016540266
は関数である。fは、
Figure 2016540266
である場合、(d、δ)−衝突(-colliding)となる。この観念は、d≧2に対してのみ定義される。(d、δ)−衝突オラクルを想定すると、δ(0)=δ(1)=0であると仮定することができる。
[0164] 第2の鍵となるプロパティは、ランダムな文字列(所与の長さの)が有効なエンコード処理である確率を捕らえる。本質的に、これは、エンコード処理の密度の尺度である。
Figure 2016540266
は実数である。全ての正の整数n、および全ての
Figure 2016540266
に対して、
Figure 2016540266
である場合、
Figure 2016540266
エンコード方式EncodeMsg=(EncodeM, DecodeM)は、∈−疎(∈-sparse)となる。

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

VII.結果の説明
[0177] この章では、以上で提示した結果に対する詳細な正当とする理由を示す。
[0178] 定理1−初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)に対する安全性
初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)はなおもその内部に可変入力長調整可能暗号(「VILTC」)モジュールを含む。初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)は、より大きなドメインを有し、N−ビット調整可能ブロック暗号(「TBC」)は安全性に関して利点が得られる。
[0179] IV章において定義したトウィーク空間およびメッセージ空間
Figure 2016540266
について、そして調整可能ブロック暗号(「TBC」)長Nについて、
Figure 2016540266
は、調整可能ブロック暗号であり、
Figure 2016540266
は可変入力長調整可能暗号(「VILTC」)である。
Figure 2016540266
Aは、q<2/4回の質問を行い、合計してμビットとなり、時間tにおいて実行するアドバーサリーである。それぞれq回および2q回の質問を行い、双方共O(t)時間において実行するアドバーサリーBおよびCについて、
Figure 2016540266
ここで、Bはノンス制約付きであり、その質問の長さは合計してμ−qNビットになる。
[0180] PIV組成の可変入力長(「VIL」)部分
Figure 2016540266
は、ノンス制約付きアドバーサリーのみに対してSRND−安全である必要がある。この要件を満たす効率的な方式を構築することは容易である。固定入力長(「FIL」)部分
Figure 2016540266
だけが、任意の質問戦略を使用することができる強調整可能擬似ランダム置換(「STPRP」)アドバーサリーに対して安全であればよい。つまり、PIV組成は、大きなドメインに渡るノンス制約付きの安全性を、それよりも多少大きなドメインに渡る完全な強調整可能擬似ランダム置換(「STPRP」)安全性に昇級させる。
Figure 2016540266
が相応しい強調整可能擬似ランダム置換(「STPRP」)である場合、TまたはXの任意の部分が「新鮮」であるなら、初期化ベクトル(「IV」)に対する文字列はランダムなはずである。したがって、初期化ベクトル(「IV」)値は繰り返されそうもなく、したがって可変入力長(「VIL」)組成のノンス制約付きの安全性は十分である。同じことは、T、Yの任意の部分が「新鮮」である場合、復号のときにも当てはまる。
[0181] 項4 /2は、初期化ベクトル(「IV」)における衝突、および
Figure 2016540266
とランダム関数との間の差を考慮する。これは、Nにおける誕生日限界項、
Figure 2016540266
のブロック・サイズである。殆どの調整可能ブロック暗号(「TBC」)設計は(1つ以上の)基礎のブロック暗号を採用するので、
Figure 2016540266
のブロック・サイズNは、それを構築するかもしれないいずれかの基礎のブロック暗号のブロック・サイズnよりも大きくすることができる。実際、n−ビット・ブロック暗号(およびハッシュ関数)を想定すると、
Figure 2016540266
をN=2nで構築することができる。
[0182] 下位
Figure 2016540266
呼び出し(lower F invocation)を除去し(
Figure 2016540266
の後)、
Figure 2016540266
を戻す場合、結果的に得られる組成は、一般に安全な強調整可能擬似ランダム置換(「STPRP」)を提供しない。一方で、これは調整可能擬似ランダム置換(「TPRP」)としては安全である(単に強い調整可能擬似ランダム置換(「TPRP」)ではない)。メッセージ空間
Figure 2016540266
トウィーク空間
Figure 2016540266
、および負でない整数n≦min(S)に対して、Aはせいぜいq回の質問を行い時間tにおいて実行するアドバーサリーとする。
Figure 2016540266
この結果は、本質的に、調整可能ブロック暗号(「TBC」)に対するPRF−擬似ランダム置換(「PRP」)切り替え命題であり、問題を境界(bounding)
Figure 2016540266
のそれに縮減する。
[0183]
Figure 2016540266
について検討する。ここで、
Figure 2016540266
は理想的な暗号である。ゲーム1(「G1」)(図9に示す)におけるオラクルは、Πを定義するために、レイジー・サンプリング(lazy sampling)を使用して、
Figure 2016540266
および
Figure 2016540266
をシミュレーションする。したがって、
Figure 2016540266
となる。図9において、ゲーム1はボックス状ステートメント(boxed statements)を含む。
[0184] ゲーム2(「G2」)(これも図9に示す)において、Πを定義するとき、「違法な」値はもはや再サンプリングされない。図9において、ゲーム2はボックス状ステートメントを含まない。コードにおける唯一の変化が起こるのは、ブール「悪い」フラグが真に設定された後である。ゲーム−プレーイングの基礎命題によって、
Figure 2016540266
ゲーム2において、
Figure 2016540266
は、決して同じトウィークを2回使用して質問されず、ゲームにおけるオラクルはランダムなn−ビット・プレフィックスを有する値を戻す。ゲーム1および2において、ブール変数は偽に初期化される。
[0185] 第3ゲーム(「G3」)(図9には示されていない)では、
Figure 2016540266
はオラクル
Figure 2016540266
によって交換される。このオラクルは、常に、その第2入力と長さが等しいランダム文字列を返す。標準的な引数によって、
Figure 2016540266
となるように、q回の質問を行い、
Figure 2016540266
時間において実行する何らかのノンス制約付きアドバーサリーBが存在する。これから次の式が得られる。
Figure 2016540266
各オラクル出力(Z’に対応する)の各最初のNビットは、常にゲーム2では均一にランダムである。ゲーム3において
Figure 2016540266
Figure 2016540266
に切り替わるとき、残りのビットも均一にランダムになる。したがって、
Figure 2016540266
となる。
[0186] 最後のタスクは、Aがゲーム2において悪いフラグを設定する確率を制限することである。badが質問jの間に設定される確率は、j/(2−2j)未満である。同様に、badおよびbadが設定される確率も、それぞれ、高々2j/(2−2j)および2/2である。したがって、少なくとも1つのフラグが質問jの間に設定される確率は、高々3j/(2−2j)+2j/2である。
[0187] j∈1,2,...、qに対して結合限界(union bound)を取ると、
Figure 2016540266
となる。q<2/4であるので、1.5/(2−2q)<3/2となる。直前の結果により、標準的な引数を使用して、計算設定に戻ると、証明が完成する。
Figure 2016540266
ここで、Cは2q回の質問を行い、Bは、トウィークを繰り返さずに、合計で長さμ−qNビットとなるq回の質問を行い、双方共
Figure 2016540266
時間において実行する。
[0188] 定理2−TCTR g(T,i)=Tのときの手順TCTRの挙動について検討する。V章のTCTR疑似コードの一覧におけるように、
Figure 2016540266
として、
Figure 2016540266
ならびに
Figure 2016540266
および
Figure 2016540266
を定義する。Aは、時間tにおいて実行し、q回の質問を尋ねるノンス制約付きアドバーサリーであり、各質問の長さは高々
Figure 2016540266
ビットである(したがって、
Figure 2016540266
。次いで、高々
Figure 2016540266
回の質問を行い時間
Figure 2016540266
において実行するあるアドバーサリーBについて、
Figure 2016540266
となる。
Figure 2016540266
であるとき、限界は誕生日型挙動を呈し、
Figure 2016540266
が小さな定数であるときに最も厳しくなる。定数
Figure 2016540266
が小さい重要な用途に、完全ディスク暗号化がある。ここでは、平文Xは通例長さが4096バイトであり、したがって基礎の調整可能ブロック暗号(「TBC」)がサイズn=128のブロック・サイズを有する場合、大まかに
Figure 2016540266
ブロックがある。
[0189] 定理3−第1の実施態様例(TCT )の強調整可能擬似ランダム置換(「STPRP」)安全性 V.B章において定義したTCT1について、Aは、q<2/4回の質問を行い時間tにおいて実行するアドバーサリーである。アドバーサリーBおよびCは、双方共
Figure 2016540266
となるように、時間
Figure 2016540266
において実行し、
Figure 2016540266
回および2q回の質問をそれぞれ行う。したがって、以下の式が得られる。
Figure 2016540266
[0190] このアルゴリズムは、
Figure 2016540266
の2つの鍵を含む、
Figure 2016540266
ビットの鍵素材を必要とする。安全性限界に重大な損傷がなければ、Eには1つの鍵で十分であろうが、しかしながら、この改善は主に処理能力の問題から関心が寄せられている。つまり、第1の実施態様例(TCT)は、以前の構造の安全性を保持し、有限界におけるのではなく、法に対する2の冪(powers-of-two moduli)を有するリング(ring)における算術演算を使用する。これは、潜在的に、あるアーキテクチャにおいて処理能力を高めることができる。
[0191] 定理4−第2の実施態様例(TCT )の強調整可能擬似ランダム置換(「STPRP」)安全性 V.C章において定義したTCTについて、Aは、q回の質問を行い時間tにおいて実行するアドバーサリーであり、ここで、
Figure 2016540266
である。アドバーサリーBおよびCは、双方共、
Figure 2016540266
となるように、
Figure 2016540266
時間において実行し、それぞれ、
Figure 2016540266
および6q回質問を行う。したがって、以下の式が得られる。
Figure 2016540266
[0192] この限界における定数の一部が重要である。しかしながら、第2の実施態様例(TCT)は、第1の実施態様例(TCT)および以前の構造よりもはるかに優れた安全性限界を提供する。
[0193] 定理5−長いメッセージに対する誕生日限界を超える安全性
Figure 2016540266
は調整可能ブロック暗号(「TBC」)であり、
Figure 2016540266
および
Figure 2016540266
もV.D章におけるように定義し、
Figure 2016540266
は、任意の注入マッピング(injective mapping)である。Aは、時間tにおいて実行し、全長が高々μ=σnビットであるq回の質問を尋ねるノンス制約付きアドバーサリーである。あるアドバーサリーBは、
Figure 2016540266
となるように、高々σ回の質問を行い時間
Figure 2016540266
において実行する。第1の実施態様例(TCT)および第2の実施態様例(TCT)に対する安全性証明のためにTCTRのこの変種を使用すると、限界から
Figure 2016540266
項が除去され、これによってメッセージ長の問題が持ち上がる。この変更が行われる場合、単に1回だけではなく、呼び出し毎に
Figure 2016540266
回まで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)は、有界でない領域において効率的な調整可能暗号を提供し、
Figure 2016540266
ビット(それぞれ、
Figure 2016540266
)が暗号化された後でなければ安全性保証を失わない。
[0194] 定理6および命題−従来の暗号化による、初期化ベクトル(「IV」)保護可変入力長調整可能暗号(「VILTC」)
Figure 2016540266
、整数Nを仮定する。
Figure 2016540266
および調整可能暗号
Figure 2016540266
については定理1において説明した。Aは、q<2/4回の質問を行い時間tにおいて実行するアドバーサリーである。アドバーサリーBおよびCは、
Figure 2016540266
となるように、それぞれq回および2q回の質問を行い、時間
Figure 2016540266
において実行する。ここでBはノンス制約付きである。標準的な証明では、Eが擬似ランダム置換(「PRP」)のように安全である場合、V.E章における擬似コード一覧における調整可能ブロック暗号(「TBC」)が、誕生日限界までSRND$−安全であることを示す。
[0195]
Figure 2016540266
はブロック暗号であると仮定し、
Figure 2016540266
および
Figure 2016540266
はV.E章における擬似コード一覧におけるように定義する。Aは、時間tにおいて実行しq回の質問を尋ねるアドバーサリーであるとし、これらは合計で高々μ=σnビットである。次いで、
Figure 2016540266
ここで、Bは、高々a回質問を尋ね、時間
Figure 2016540266
において実行する。
[0196] このように、効率的な誕生日限界−安全な強調整可能擬似ランダム置換(「STPRP」)を構築するために、LRW2に基づいて
Figure 2016540266
によってカウンタ・モード暗号化を構成する(compose)ことができる。
Figure 2016540266
を特殊な種類のPRF(逆転可能性プロパティを有するもの)として見ることができ、入力(T,X)を取り込み、カウンタ・モードにおける使用のために「合成初期化ベクトル(「IV」)」を戻す。次いで、
Figure 2016540266
の2回目の適用は、鍵K’を有する者には復元可能なまま残すようにこの合成初期化ベクトル(「IV」)を隠す役割を果たす。
[0197] このカウンタ−モード構造の安全性は、章V.E.の擬似コード一覧における
Figure 2016540266
の構造において示すように、基礎のブロック暗号を「リキーイング」(re-keying)し、
Figure 2016540266
を使用してメッセージ毎の鍵を生成することによって高めることができる。
Figure 2016540266
を、(1)
Figure 2016540266
として計算し、(2)
Figure 2016540266
を戻すようにして計算できる。任意の関数
Figure 2016540266
について、fに対するアドバーサリーAの擬似乱数関数(PRF)の利点は、
Figure 2016540266
と定義されることを思い出すこと。次に、定理理論6に進む。
[0198] 定理6
Figure 2016540266
はブロック暗号であり、
Figure 2016540266
および
Figure 2016540266
はV.E章における擬似コード一覧におけるように定義する。
Figure 2016540266
は関数であり、
Figure 2016540266
および
Figure 2016540266
は、V.E章の擬似コード一覧におけるように定義する。Aは、時間tにおいて実行し、q回の質問を尋ねるノンス制約付きアドバーサリーであり、質問は、各々、高々mnビットの長さである(したがって、μ≦qmn)。
Figure 2016540266
ここで、(1)Bは高々m回の質問を尋ね、時間
Figure 2016540266
において実行し、(2)Cはq回の質問を尋ね、高々時間
Figure 2016540266
において実行する。
[0199] メッセージmにおけるブロックの最大数が小さい場合、このリキーイング手法は、ノンス制約付きアドバーサリーに対して、誕生日限界を超えるSRND−安全性を与える潜在的可能性がある。完全ディスク暗号化(「FDE」)の場合、例えば、
Figure 2016540266
は、n=128のとき非常に小さく見えるので、q>>264に対する安全性が可能に思われる。この実施態様は、このようなqのいずれに対しても安全であり続けるPRFfを使用する。
[0200] いずれの場合でも、
Figure 2016540266
の構造は、調整可能プリミティブ抽象化の中核原理を破る。即ち、トウィークの変更は速くなければならず、鍵を変更するよりも遙かに速くなければならない。
[0201] 定理7−関連データ付き認証付暗号化(「AEAD」)に対する守秘性 VI.B章における擬似コード一覧において定義したように、
Figure 2016540266
sはEncodeMsgの最大ストレッチであり、s’はEncodeの最大ストレッチであり、mは、ある
Figure 2016540266
に対して、
Figure 2016540266
を満たす、最も短い
Figure 2016540266
の長さである。Aは、合計でμビットとなるq回の質問を行い、時間tにおいて実行するアドバーサリーである。δMが増大しつつあり、{0,1,...,q}上で凸であるとき、このδMに対してEncodeHが(d,δH)−衝突であり、EncodeMが(2,δM)−衝突である場合、
Figure 2016540266
となるようなアドバーサリーBがある。ここで、Bは全長が高々μ+q(s+s’)ビットであるq回の質問を行い、時間
Figure 2016540266
において実行する。
[0202] 定理8-関連データ付き認証付暗号化(「AEAD」)に対する真正性 VI.B章の擬似コード一覧において定義したように、
Figure 2016540266
sはEncodeMsgのストレッチであり、s’はEncodeHの最大ストレッチであり、mは、ある
Figure 2016540266
について
Figure 2016540266
を満たす最も短い
Figure 2016540266
の長さである。Aは、その暗号化(それぞれ、復号)オラクルに、合計でμε(それぞれ、
Figure 2016540266
)ビットとなるqε(それぞれ、
Figure 2016540266
)回の質問を行い、時間tにおいて実行するアドバーサリーである。EncodeMが ∈−疎で、
Figure 2016540266
である場合、
Figure 2016540266
となるようなアドバーサリーBがあり、ここで、Bは、全長(με+qεs)ビットのqε回の順方向質問(forward-query)、全長
Figure 2016540266
ビットのq回の逆方向−質問を行い、
Figure 2016540266
時間において実行する。
[0203] EncodeHが(2,0)−衝突である場合について検討する。この場合、守秘性限界(定理7)は、
Figure 2016540266
に簡略化する。これは直観的である。何故なら、トウィーク
Figure 2016540266
が決して繰り返さない場合、出力
Figure 2016540266
は(H,M)の任意の有効な
Figure 2016540266
へのエンコードに対して、均一なランダム文字列となるからであり、EncodeH(H,M)=Mで十分である。つまり、ヘッダHを正しくエンコードすると、(H,M)の
Figure 2016540266
へのエンコードにかかる負担を大幅に低減することができる。
[0204] 更に一般的には、ある小さな定数d<<qに対して、EncodeHが任意の
Figure 2016540266
をd回よりも多く生成する確率は、無視し得ると仮定する。すると、限界における最終項を事実上無視することができる。第2項は、大まかに、
Figure 2016540266
となる。ここで、δMはqではなくdにおいて評価され、したがってqδ(d)は、適度な量のランダム性を
Figure 2016540266
にエンコードすることによって(例えば、log(q)ビット)無視可能にできることに注意すること。次いで、ある自然なEncodeMsgの選択では、q/2m+1が優勢項となり、ここでmは
Figure 2016540266
の最も短い長さである。しかし、正しい真正性限界を達成するために、mがq/2m+1に限界を破壊させる(ruin)ことはありそうもない。
[0205] トウィークが存在することによって、ランダム性または状態のための「余分な」ビットを、ヘッダのエンコードに移すことが可能になり、潜在的に、暗号的に処理しなければならないビット数が減少する。
[0206] これより真正性限界(定理8)に移り、EncodeMがb冗長ビット(したがって、∈≒2−b)およびqε+qD<<2を挿入する場合、真正性限界の第2項は、近似的にq/2となることを注記しておく。つまり、調整可能暗号
Figure 2016540266
が、例えば、280回の質問まで強調整可能擬似ランダム置換(「STPRP」)−安全性を有する場合(例えば、PIVをN=256でしかるべくインスタンス化する)、ノンスによってヘッダをエンコードし、80ビットの冗長性でメッセージをエンコードすると、大凡80ビットの守秘性および真正性保証がある関連データ付き認証付暗号化(「AEAD」)方式、およびノンス−誤用に耐えることができるものが得られる。
[0207] 定理8の証明は、アドバーサリーがEncodeMおよびEncodeHのコインおよび状態を制御するのであっても、先に述べた限界がそのままである(hold)ことを示すために容易に修正することができる。加えて、復号オラクルの質問のみが冗長でないと仮定し、アドバーサリーは、ヘッダまたはメッセージにエンコードされるいずれのノンスにも配慮しないと仮定する。
[0208] 定理7の証明
Figure 2016540266
はランダム暗号である。Ψ[Π]は、
Figure 2016540266
のアルゴリズムにおけるいずれかの場所で、
Figure 2016540266
および
Figure 2016540266
をΠおよびΠ−1でぞれぞれ置き換えることによって得られた関連データ付き認証付暗号化(「AEAD」)方式である。εΠは、対応する暗号化アルゴリズムである。それ自体のオラクルに応じてεまたはεΠをシミュレーションする標準的なアドバーサリーBに対して、
Figure 2016540266
これは、
Figure 2016540266
を残す。
[0209] 図10における3つのゲームのシーケンスは、証明を例示するのに役立つ。図10において、四角く囲ったコマンドは、ゲーム1には含まれるがゲーム2からは省略され、εΠオラクルに常にランダム文字列を返させる。ゲーム3は、この変化をアドバーサリーが検出することができる確率を制限する(bound)(「悪い」値が設定される確率によって測定されるように)。
[0210] sは、EncodeMのストレッチである。ゲーム1(図10における)は、Πを定義するためにレイジー・サンプリングを使用してεΠを実装する。具体的には、i番目の質問(H,M)において、ゲーム1はエンコード
Figure 2016540266
を計算し、次いで、
Figure 2016540266
に割り当てるための潜在的な値Sをサンプリングする。この値は、
Figure 2016540266
が未だ設定されていない限り、そして以前にS
Figure 2016540266
と共に使用されていない限り有効である。そうでない場合、ゲーム1はbadまたはbadを設定し、次いでSiにしかるべき値を割り当て直す。
[0211] ゲーム2(図10における)は、badまたはbadが設定されるまで、ゲーム1と同一であるので、
Figure 2016540266
ここで、最終ライン(final line)は、ゲーム−プレーイングの基本的命題の代替定式化(formulation)を使用する。ゲーム2では、Sの値は
Figure 2016540266
において常に均一にランダムであり、εΠの出力は、各Mとは独立である。その結果、Aが停止した後まで、各Mへの値の割り当てを遅らせることができる。一方、このために、badまたはbadを設定すべきか確認するためのチェックを、これらがそうなる確率を変えることなく、遅らせることが可能になる。これらの変更双方を行うことによって、ゲーム3(図10における)が求められるので、
Figure 2016540266
となる。つまり、
Figure 2016540266
ここで、最後の式は、ゲーム3において、各Sが独立して、そして均一にランダムに、しかるべき大きさにされた文字列の集合からサンプリングされるという事実から得られる。要点を纏めると、この時点において、
Figure 2016540266
となる。
[0212]
Figure 2016540266
に対して上界を確立するために、ゲーム3において実行した後に、Aがその出力を丁度生成したところであると仮定する。badが設定される確率を制限する(bound)ために、
Figure 2016540266
はゲームの間に生成された別個のトウィーク・エンコード(tweak encodings)の数である。
Figure 2016540266
は、
Figure 2016540266
である場合のみに限ってiおよびjが同じクラス内にあるというプロパティによって特徴付けられる等価クラス(equivalence class)である。badが設定される確率は、高々
Figure 2016540266
である。上界は、時点
Figure 2016540266
において増加凸関数δの値を総和することによって得られ、ここで、
Figure 2016540266
である。したがって、N=1およびR=(1,2,...,q}であるときに、限界は最も大きくなる(固定のqに対して)。しかし、各|R|<dとなる、Cappedと称されるイベントを仮定する。この場合、
Figure 2016540266
Cappedが発生したと想定すると、
Figure 2016540266
および、k=1,2,...、N−1について、
Figure 2016540266
であるときに、
Figure 2016540266
は最大になる。これから、次の式が得られる。
Figure 2016540266
同様に、
Figure 2016540266
標準(standard)
Figure 2016540266
であるので、誕生日限界({0,1}から均一にサンプリングされたi個の独立したランダム変数間における衝突の確率に対する)は、増加凸関数の判断基準を満たす。
[0213] 定理8の証明 Bは、AについてのINT−CTXT実験をシミュレーションし、AがForgesを真に設定する場合に1を出力する強調整可能擬似ランダム置換(「STPRP」)アドバーサリーであるとする。すると、
Figure 2016540266
となり、ここで、Ψ [Π]は、Ψのアルゴリズムにおけるいずれかの場所で、
Figure 2016540266
および
Figure 2016540266
をΠおよびΠ−1でぞれぞれ置き換えることによって得られた方式であり、
Figure 2016540266
は、自然な方法で定義される(Kではなく、Πのランダム選択に対する確率で)。
[0214] ゲーム4(図11)は、
Figure 2016540266
に対するIND−CTXT実験をシミュレーションする。レイジー・サンプリングによってΠを定義することによって、
Figure 2016540266
となる。
Figure 2016540266
オラクルに対するコードにおいて、
Figure 2016540266
が既に定義されているか否かチェックする必要はない。この可能性は、Aが
Figure 2016540266
への質問を繰り返さず、εΠによって以前に戻された値を
Figure 2016540266
に送らないという事実によって除外される(一方、ヘッダは保存される)。
Figure 2016540266
へのある質問に対して、Aがこの質問上で偽造する(forge)確率は、対応してランダムに選択された
Figure 2016540266
の値が有効なエンコードである確率に等しい。正しい長さの有効なエンコードは、高々2|Y|∈個であり、
Figure 2016540266
は、サイズが少なくとも
Figure 2016540266
である集合からサンプリングされる。その結果、Aがこの質問上で偽装する確率は、高々
Figure 2016540266
である。結合限界が証明を完成させる。
[0215] 開示した発明の原理を適用することができる多くの可能な実施形態があることに鑑み、例示した実施形態は、単に発明の好ましい例に過ぎず、発明の範囲を限定するように捕らえてはならないことは認められてしかるべきである。むしろ、本発明の範囲は以下の請求項によって定められるものとする。したがって、これらの請求項の範囲および主旨に該当する全てを、本発明者の発明として特許請求する。

Claims (46)

  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に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)および前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)が、前記固定長初期化ベクトルを、前記システム外部への露出から保護する、システム。
  6. 請求項1に記載のシステムにおいて、前記システムが、当該システムに対するトウィークとして、当該システムの環境的特徴に基づく値を受け入れる、システム。
  7. 請求項1に記載のシステムにおいて、前記第1固定入力長調整可能ブロック暗号(「FIL TBC」)、前記第2固定入力長調整可能ブロック暗号(「FIL TBC」)、および可変入力長調整可能暗号(「VILTC」)が、特殊目的ハードウェアを使用して実装される、システム。
  8. 請求項1に記載のシステムにおいて、前記第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に記載のシステムにおいて、前記第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に記載のシステムであって、更に、
    安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に応じた効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に応じた効率的な実装が複雑化する、システム。
  18. 請求項14に記載のシステムにおいて、前記第1N−ビット調整可能ブロック暗号(「TBC」)および前記第2N−ビット調整可能ブロック暗号(「TBC」)が同一構造を有する、システム。
  19. 請求項14に記載のシステムにおいて、前記第1N−ビットTCBおよび前記第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に記載のシステムにおいて、
    前記第1N−ビット調整可能ブロック暗号(「TBC」)および前記第2N−ビット調整可能ブロック暗号(「TBC」)の内少なくとも1つが、ドメイン拡張CLRW2構造であり、
    前記可変入力長調整可能暗号(「VILTC」)が、反復CLRW2構造である、システム。
  22. 請求項14に記載のシステムにおいて、Nが128である、システム。
  23. 請求項14に記載のシステムにおいて、Nが256である、システム。
  24. コンピュータに実装される方法であって、
    固定長入力文字列および可変長入力文字列を処理して、固定長出力文字列および可変長出力文字列を生成するステップであって、
    固定長初期化ベクトルを生成するステップと、
    前記固定長初期化ベクトルをトウィークとして使用して、可変入力長調整可能暗号(「VILTC」)によって、前記可変長出力文字列を生成するステップと、
    前記固定長初期化ベクトルを曖昧にするステップと、
    を含む、ステップと、
    前記固定長出力文字列および可変長出力文字列を出力するステップと、
    を含む、方法。
  25. 請求項24に記載の方法において、前記処理が、更に、
    環境的特徴に基づいてシステム・レベルのトウィークを設定するステップを含む、方法。
  26. 請求項24記載の方法において、前記固定長入力文字列がN−キャラクタ入力文字列であり、前記固定長出力文字列がN−キャラクタ出力文字列であり、前記固定長初期化ベクトルがN−キャラクタ初期化ベクトルである、方法。
  27. 請求項26に記載の方法において、前記N−キャラクタ初期化ベクトルが、
    第1N−キャラクタ調整可能ブロック暗号(「TBC」)によって生成され、
    前記N−キャラクタ出力文字列を生成する第2N−キャラクタ調整可能ブロック暗号(「TBC」)によって曖昧にされる、方法。
  28. 請求項26に記載の方法において、前記処理が、フォーマット保存暗号化の一部であり、前記N−キャラクタ入力文字列および前記可変長入力文字列が平文であり、前記N−キャラクタ出力文字列および可変長出力文字列が暗号文である、方法。
  29. 請求項26に記載の方法において、前記処理が、フォーマット保存復号の一部であり、前記N−キャラクタ入力文字列および前記可変長入力文字列が暗号文であり、前記N−キャラクタ出力文字列および可変長出力文字列が平文である、方法。
  30. 請求項24に記載の方法において、前記固定長入力文字列がN−ビット入力文字列であり、前記固定長出力文字列がN−ビット出力文字列であり、前記固定長初期化ベクトルがN−ビット初期化ベクトルである、方法。
  31. 請求項30に記載の方法において、前記N−ビット初期化ベクトルが、
    第1N−ビット調整可能ブロック暗号(「TBC」)によって生成され、
    前記N−ビット出力文字列を生成する第2N−ビット調整可能ブロック暗号(「TBC」)によって曖昧にされる、方法。
  32. 請求項30に記載の方法において、
    前記N−ビット初期化ベクトルを前記第1N−ビット調整可能ブロック暗号(「TBC」)によって生成するステップが、前記第1N−ビット調整可能ブロック暗号(「TBC」)に対する入力である前記N−ビット入力文字列と、前記第1N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークである、前記システムに対するトウィークおよび前記可変長入力文字列の組み合わせとに基づき、
    前記可変長出力文字列を前記可変入力長調整可能暗号(「VILTC」)によって生成するステップが、前記可変入力長調整可能暗号(「VILTC」)に対するトウィークである前記N−ビット初期化ベクトルと、前記可変入力長調整可能暗号(「VILTC」)に対する入力である前記可変長入力文字列とに基づき、
    前記N−ビット出力文字列を前記第2N−ビット調整可能ブロック暗号(「TBC」)によって生成するステップが、前記第2N−ビット調整可能ブロック暗号(「TBC」)に対する入力である前記N−ビット初期化ベクトルと、前記第2N−ビット調整可能ブロック暗号(「TBC」)に対するトウィークである、前記システムに対するトウィークおよび前記可変長出力文字列の組み合わせとに基づく、方法。
  33. 請求項30に記載の方法において、前記処理が完全ディスク暗号化の一部であり、前記N−ビット入力文字列および前記可変長入力文字列が平文であり、前記N−ビット出力文字列および前記可変長出力文字列が暗号文である、方法。
  34. 請求項30に記載の方法において、前記処理が完全ディスク復号の一部であり、前記N−ビット入力文字列および前記可変長入力文字列が暗号文であり、前記N−ビット出力文字列および前記可変長出力文字列が平文である、方法。
  35. 請求項30に記載の方法において、前記処理が、関連データ付き認証付暗号化の一部であり、前記N−ビット入力文字列および前記可変長入力文字列が平文であり、前記N−ビット出力文字列および前記可変長出力文字列が暗号文である、方法。
  36. 請求項30に記載の方法において、前記処理が、関連データによる認証復号の一部であり、前記N−ビット入力文字列および前記可変長入力文字列が暗号文であり、前記N−ビット出力文字列および前記可変長出力文字列が平文である、方法。
  37. 請求項30に記載の方法であって、更に、安全性および実装効率のトレードオフを得るためにNを調節するステップを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に応じた効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に応じた効率的な実装が複雑化する、方法。
  38. 暗号化および/または復号のためのコンピュータに実装されるシステムであって、
    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バッファと、
    を含む、システム。
  39. 請求項38に記載のシステムにおいて、前記システムに対するトウィークが、前記システムの環境的特徴に基づく値である、システム。
  40. 請求項38に記載のシステムであって、更に、
    安全性および実装効率のトレードオフを得るためにNを調節するように構成されたコントローラを含み、Nの値が小さい程、安全性が悪化するが、安全性制約に伴う効率的な実装が簡素化し、Nの値が大きい程高い安全性が得られるが、安全性制約に伴う効率的な実装が複雑化する、システム。
  41. コンピュータに実装される方法であって、
    ヘッダおよびメッセージを受けるステップと、
    可変入力長調整可能暗号(「VILTC」)を使用して前記メッセージを処理して、関連データ付き認証付暗号化を行うステップであって、前記可変入力長調整可能暗号(「VILTC」)に対するトウィークが、少なくとも部分的に前記ヘッダに基づき、前記処理が、暗号化メッセージを生成する、ステップと、
    前記ヘッダおよび前記暗号化メッセージを出力するステップと、
    を含む、方法。
  42. 請求項41に記載の方法において、前記メッセージを処理するステップが、
    前記ヘッダおよび再現情報を使用して修正ヘッダを決定するステップと、
    前記メッセージおよび前記修正ヘッダを使用して修正メッセージを決定するステップと、
    前記修正ヘッダを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして、前記可変入力長調整可能暗号(「VILTC」)を使用して前記修正メッセージを暗号化するステップと、
    を含む、方法。
  43. 請求項42に記載の方法であって、更に、
    前記再現情報を出力するステップを含む、方法。
  44. コンピュータに実装される方法であって、
    ヘッダおよび暗号化メッセージを受けるステップと、
    可変入力長調整可能暗号(「VILTC」)を使用して前記暗号化メッセージを処理して、関連データ付き認証付復号を行うステップであって、前記可変入力長調整可能暗号(「VILTC」)に対するトウィークが少なくとも部分的に前記ヘッダに基づき、前記処理がメッセージを生成するステップと、
    前記メッセージを出力するステップと、
    を含む、方法。
  45. 請求項44に記載の方法であって、更に、
    再現情報を受けるステップを含む、方法。
  46. 請求項45記載の方法において、前記暗号化メッセージを処理するステップが、
    前記ヘッダおよび前記再現情報を使用して修正ヘッダを決定するステップと、
    前記可変入力長調整可能暗号(「VILTC」)を使用して、前記修正ヘッダを前記可変入力長調整可能暗号(「VILTC」)に対するトウィークとして、前記暗号化メッセージを復号することによって、修正メッセージを生成するステップと、
    前記修正メッセージおよび前記修正ヘッダを使用して、前記メッセージを決定するステップと、
    を含む、方法。
JP2016556687A 2013-11-29 2014-11-26 可変入力長調整可能暗号の構造および使用 Expired - Fee Related JP6084757B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361910292P 2013-11-29 2013-11-29
US61/910,292 2013-11-29
US14/549,531 US9571270B2 (en) 2013-11-29 2014-11-20 Construction and uses of variable-input-length tweakable ciphers
US14/549,531 2014-11-20
PCT/US2014/067745 WO2015102783A2 (en) 2013-11-29 2014-11-26 Construction and uses of variable-input-length tweakable ciphers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017009299A Division JP2017097376A (ja) 2013-11-29 2017-01-23 可変入力長調整可能暗号の構造および使用

Publications (2)

Publication Number Publication Date
JP2016540266A true JP2016540266A (ja) 2016-12-22
JP6084757B2 JP6084757B2 (ja) 2017-02-22

Family

ID=53494209

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016556687A Expired - Fee Related JP6084757B2 (ja) 2013-11-29 2014-11-26 可変入力長調整可能暗号の構造および使用
JP2017009299A Pending JP2017097376A (ja) 2013-11-29 2017-01-23 可変入力長調整可能暗号の構造および使用

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017009299A Pending JP2017097376A (ja) 2013-11-29 2017-01-23 可変入力長調整可能暗号の構造および使用

Country Status (4)

Country Link
US (2) US9571270B2 (ja)
EP (1) EP3075097B1 (ja)
JP (2) JP6084757B2 (ja)
WO (1) WO2015102783A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9571270B2 (en) 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
AU2015357253B2 (en) * 2014-12-03 2018-03-08 Nagravision S.A. Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method
US10108557B2 (en) * 2015-06-25 2018-10-23 Intel Corporation Technologies for memory confidentiality, integrity, and replay protection
KR102447476B1 (ko) * 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
DE112015006865T5 (de) * 2015-09-28 2018-05-17 Mitsubishi Electric Corporation Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
CN108463968B (zh) * 2016-01-11 2022-03-29 维萨国际服务协会 可变长度数据的快速格式保留加密
US11349668B2 (en) * 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
CN112640359B (zh) * 2018-08-30 2024-05-03 三菱电机株式会社 消息认证装置、消息认证方法及计算机可读取的存储介质
US11654635B2 (en) 2019-04-18 2023-05-23 The Research Foundation For Suny Enhanced non-destructive testing in directed energy material processing
US10904001B2 (en) * 2019-05-24 2021-01-26 Tokenex, Inc. Data format-preserving encryption, tokenization, and access control for vaultless systems and methods
JP2021012339A (ja) * 2019-07-09 2021-02-04 株式会社 エヌティーアイ データ処理装置、データ処理方法、及びコンピュータプログラム
KR20210048698A (ko) * 2019-10-24 2021-05-04 삼성에스디에스 주식회사 암복호화를 위한 장치 및 방법
DE102021005213A1 (de) 2021-10-19 2023-04-20 Mercedes-Benz Group AG Verfahren zur Erzeugung eines u Bit langen Fingerprints und Verfahren zur Verschlüsselung eines Klartextes
CN114157411B (zh) * 2021-11-29 2024-04-05 中信数智(武汉)科技有限公司 一种基于LeNet5-SVM的分组加密识别方法
CN117077541B (zh) * 2023-10-11 2024-01-09 北京芯联心科技发展有限公司 一种医疗模型的参数高效微调方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221756B2 (en) * 2002-03-28 2007-05-22 Lucent Technologies Inc. Constructions of variable input length cryptographic primitives for high efficiency and high security
WO2009020060A1 (ja) * 2007-08-06 2009-02-12 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335040A (ja) 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式
US7200227B2 (en) 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US7602906B2 (en) 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
KR100715679B1 (ko) 2005-12-05 2007-05-09 한국전자통신연구원 인증 암호화를 통해 보안 전송을 가능하게 하는 gpon시스템 및 그 인증 암호화 방법
WO2008018303A1 (fr) 2006-08-10 2008-02-14 Nec Corporation Dispositif de chiffrage de bloc équipé d'une fonction d'ajustement, procédé et programme
US20080082837A1 (en) 2006-09-29 2008-04-03 Protegrity Corporation Apparatus and method for continuous data protection in a distributed computing network
US8195932B2 (en) 2009-01-30 2012-06-05 Texas Instruments Incorporated Authentication and encryption for secure data transmission
US20110113235A1 (en) * 2009-08-27 2011-05-12 Craig Erickson PC Security Lock Device Using Permanent ID and Hidden Keys
KR101612518B1 (ko) * 2009-11-26 2016-04-15 삼성전자주식회사 병렬 처리 가능한 암복호화기 및 그것의 암복호 방법
JP5704159B2 (ja) 2010-02-24 2015-04-22 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
WO2012105352A1 (ja) * 2011-01-31 2012-08-09 日本電気株式会社 ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム
US20130168450A1 (en) * 2011-12-30 2013-07-04 Clay W. von Mueller Format preserving cipher system and method
US9571270B2 (en) 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221756B2 (en) * 2002-03-28 2007-05-22 Lucent Technologies Inc. Constructions of variable input length cryptographic primitives for high efficiency and high security
WO2009020060A1 (ja) * 2007-08-06 2009-02-12 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6016049969; Peng Wang, et al.: 'HCTR: A Variable-Input-Length Enciphering Mode' LNCS, Information Security and Cryptology Vol.3822, 200512, pp.175-188, Springer *
JPN6016049971; Haibim Zhang: 'Length-Doubling Ciphers and Tweakable Ciphers' LNCS, Applied Cryptography and Network Security Vol.7341, 201206, pp.100-116, Springer *
JPN6016049973; Will Landecker, et al.: 'Tweakable Blockciphers with Beyond Birthday-Bound Security' Cryptog¥logy ePrint Archive: Report 2012/450 Version: 20120808:065419, 20120808, p.1-28, [オンライン] *
JPN6016049974; Thomas Shrimpton, et al.: 'A Modular Framework for Building Variable-Input-Length Tweakable Ciphers' LNCS, Advances in Cryptology - ASIACRYPT 2013 Vol.8269, 201312, pp.405-423, Springer *

Also Published As

Publication number Publication date
EP3075097B1 (en) 2019-08-14
WO2015102783A2 (en) 2015-07-09
EP3075097A2 (en) 2016-10-05
JP6084757B2 (ja) 2017-02-22
US20170104584A1 (en) 2017-04-13
US20150349950A1 (en) 2015-12-03
WO2015102783A3 (en) 2015-10-29
US10009171B2 (en) 2018-06-26
JP2017097376A (ja) 2017-06-01
US9571270B2 (en) 2017-02-14
EP3075097A4 (en) 2017-06-21

Similar Documents

Publication Publication Date Title
JP6084757B2 (ja) 可変入力長調整可能暗号の構造および使用
Dobraunig et al. Ascon v1. 2: Lightweight authenticated encryption and hashing
Sarkar A simple and generic construction of authenticated encryption with associated data
US6973187B2 (en) Block encryption method and schemes for data confidentiality and integrity protection
US6069954A (en) Cryptographic data integrity with serial bit processing and pseudo-random generators
US20080084996A1 (en) Authenticated encryption method and apparatus
Nevelsteen et al. Software performance of universal hash functions
WO2002017554A2 (en) Parallel bock encryption method and modes for data confidentiality and integrity protection
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
Alsaidi et al. Compression multi-level crypto stego security of texts utilizing colored email forwarding
Sarkar Modes of operations for encryption and authentication using stream ciphers supporting an initialisation vector
Li et al. Leakage Resilient Leveled $\mathsf {FHE} $ FHE on Multiple Bits Message
Chakraborty et al. Disk encryption: do we need to preserve length?
US8190892B2 (en) Message authentication code with blind factorization and randomization
US20040120521A1 (en) Method and system for data encryption and decryption
Paar et al. More about block ciphers
JP5431191B2 (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
Zhang et al. INT-RUP security of checksum-based authenticated encryption
Lu et al. White-box implementation of the KMAC message authentication code
Kiryukhin Related-key attack on 5-round Kuznyechik
CN114124354B (zh) 确定性鉴别加解密装置及方法
JPS6281145A (ja) デ−タ暗号化方式
Hasan et al. Context-Committing Authenticated Encryptions using Tweakable Stream Cipher
Team On the Linear Distinguishing Attack against ZUC-256 Stream Cipher
Dobraunig et al. https://ascon. iaik. tugraz. at

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161107

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161107

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161107

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161213

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170125

R150 Certificate of patent or registration of utility model

Ref document number: 6084757

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees