
暗号学において、ファイステル暗号(ルービー・ラコフブロック暗号とも呼ばれる)は、ブロック暗号の構築に使用される対称構造であり、 IBMに勤務していた際に先駆的な研究を行ったドイツ生まれの物理学者で暗号学者のホルスト・ファイステルにちなんで名付けられました。また、ファイステルネットワークとも呼ばれます。この方式は、米国データ暗号化標準、ソ連/ロシアのGOST(別名 Magma)、そしてより新しいBlowfishおよびTwofish暗号など、多数のブロック暗号で使用されています。ファイステル暗号では、暗号化と復号化は非常に似た操作であり、どちらも「ラウンド関数」と呼ばれる関数を固定回数繰り返し実行することによって行われます。
現代の対称ブロック暗号の多くは、ファイステルネットワークに基づいています。ファイステルネットワークが初めて商用化されたのは、 1973年にホルスト・ファイステルとドン・コッパースミスによって設計されたIBMのルシファー暗号でした。ファイステルネットワークは、1976年に米国連邦政府がDES ( NSAによって変更が加えられたルシファーに基づく暗号)を採用したことで、その信頼性を高めました。DESの他の構成要素と同様に、ファイステル構造の反復的な性質により、暗号システムをハードウェアに実装することが容易になります(特にDESの設計当時に利用可能だったハードウェア上で)。
ファイステル ネットワークはラウンド関数を使用します。ラウンド関数は、データ ブロックとサブキーの 2 つの入力を受け取り、データブロックと同じサイズの 1 つの出力を返します。[ 1 ]各ラウンドでは、ラウンド関数が暗号化するデータの半分に対して実行され、その出力がデータの残りの半分と XOR されます。これが固定回数繰り返され、最終的な出力が暗号化されたデータになります。置換・順列ネットワーク(SP ネットワーク) などの他の暗号設計と比較したファイステル ネットワークの重要な利点は、ラウンド関数自体が可逆でなくても、操作全体が可逆であることが保証されていることです (つまり、暗号化されたデータは復号できます)。ラウンド関数は可逆になるように設計する必要がないため、任意に複雑にすることができます。[ 2 ] : 465 [ 3 ] : 347さらに、暗号化と復号の操作は非常に似ており、場合によっては同一で、キー スケジュールの反転のみが必要です。したがって、このような暗号を実装するために必要なコードや回路のサイズはほぼ半分になります。また、SPネットワークとは異なり、ファイステルネットワークは、ソフトウェア実装においてタイミングサイドチャネルを引き起こす可能性のある置換ボックスに依存しません。
フェイステル暗号の構造と特性は、暗号学者によって広範に分析されてきた。
マイケル・ルービーとチャールズ・ラコフは、フェイステル暗号の構成を分析し、ラウンド関数が暗号学的に安全な擬似乱数関数であり、シードとしてK i が使用されている場合、ブロック暗号を擬似乱数順列にするには 3 ラウンドで十分であり、4 ラウンドで「強力な」擬似乱数順列(逆順列へのオラクルアクセスを得た攻撃者に対しても擬似乱数のままであることを意味する)にするには十分であることを証明した。[ 4 ]ルービーとラコフのこの非常に重要な結果により、フェイステル暗号はルービー・ラコフブロック暗号と呼ばれることがある。
さらなる理論的研究により、この構成はいくらか一般化され、セキュリティのより正確な境界が与えられた。[ 5 ] [ 6 ]
させてを丸め関数とし、ラウンドのサブキーとなるそれぞれ。
基本的な操作は以下のとおりです。
プレーンテキストブロックを2つの等しい部分に分割します: (、)
各ラウンドごとに計算する
どこXORを意味します。すると暗号文は。
暗号文の復号計算によって達成される
それからこれも平文です。
この図は暗号化と復号化の両方を示しています。復号化ではサブキーの順序が逆になっている点に注目してください。これが暗号化と復号化の唯一の違いです。
不均衡なフェイステル暗号は、修正された構造を使用する。そして長さが等しくない。[ 7 ]スキップジャック暗号はそのような暗号の一例である。テキサス・インスツルメンツのデジタル署名トランスポンダは、独自の不均衡なフェイステル暗号を使用してチャレンジ・レスポンス認証を実行する。[ 8 ]
ソープシャッフルは、片側が1ビットである不均衡なフェイステル暗号の極端な例です。これは均衡フェイステル暗号よりも証明可能な安全性が優れていますが、より多くのラウンドが必要です。[ 9 ]
ファイステル関数がブロックの4分の1のサイズであるが、1ラウンド内で可変回数動作するタイプ1、タイプ2、およびタイプ3のファイステルネットワークが存在する。[ 10 ]
ファイステル構造は、ブロック暗号以外の暗号アルゴリズムにも用いられています。例えば、最適非対称暗号化パディング(OAEP)方式では、特定の非対称鍵暗号方式において、単純なファイステルネットワークを用いて暗号文をランダム化します。
一般化されたファイステルアルゴリズムは、2のべき乗ではないサイズの小さなドメイン上で強力な順列を作成するために使用できます(フォーマット保存暗号化を参照)。[ 9 ]
暗号全体がファイステル暗号であるかどうかに関わらず、ファイステルに似たネットワークは暗号設計の構成要素として使用できます。例えば、MISTY1はラウンド関数に3ラウンドのファイステルネットワークを使用するファイステル暗号であり、SkipjackはG置換にファイステルネットワークを使用する修正ファイステル暗号であり、Threefish ( Skeinの一部)はファイステルに似たMIX関数を使用する非ファイステルブロック暗号です。
ファイステルまたは改良ファイステル:
一般化されたフェイステル: