暗号学において、オール・オア・ナッシング変換(AONT )は、オール・オア・ナッシング・プロトコルとも呼ばれ、データのすべてが既知である場合にのみデータを解釈できる暗号化モードです。AONTは暗号化ではありませんが、対称暗号を利用することが多く、暗号化の前に適用されることがあります。正確には、「AONTは、出力のすべてが既知でない限り、逆変換が困難であるという特性を持つ、鍵なし、可逆、ランダムな変換です。」[ 1 ]
オリジナルの AONT であるパッケージ変換は、ロナルド・L・リベストが1997 年の論文「All-Or-Nothing Encryption and The Package Transform」で説明しました。[ 2 ]リベストが提案した変換では、各平文ブロックをランダムに選ばれた鍵で暗号化したそのブロックのインデックスと XOR 演算することで平文を前処理し、そのランダム鍵と前処理済みの全ブロックのハッシュを XOR 演算して 1 つの追加ブロックを追加します。この前処理の結果は擬似メッセージと呼ばれ、暗号化アルゴリズムの入力として使用されます。パッケージ変換を元に戻すには、最後のブロックを除く擬似メッセージの全ブロックをハッシュし、そのすべてのハッシュと最後のブロックを XOR 演算してランダム鍵を復元し、そのランダム鍵を使用して前処理済みの各ブロックを元の平文ブロックに変換する必要があります。このように、擬似メッセージのすべてのブロックにアクセスしなければ、元の平文を復元することは不可能です。
Rivestの論文ではCBCモードに適用されるパッケージ変換についてのみ詳細に説明されていますが、これはどのモードの暗号でも実装できます。そのため、パッケージECB変換、パッケージCBC変換など、 複数のバリエーションが存在します。
1999年にビクター・ボイコはランダムオラクルモデルの下で証明可能な安全性を持つ別のAONTを提案した。[ 1 ]
ほぼ同時期に、Dr Stinsonは暗号に関する仮定を一切考慮しないAONTの異なる実装を提案した。[ 3 ]この実装は線形変換であり、おそらく元の定義のセキュリティ上の弱点を浮き彫りにしている。
AONTは、鍵サイズを増やすことなく暗号化の強度を高めるために使用できます。これは、例えば、政府の暗号輸出規制を遵守しながら秘密情報を保護する場合に役立ちます。AONTは、いくつかの攻撃を防ぐのに役立ちます。
AONT が暗号化の強度を向上させる方法の 1 つは、部分的な情報では元のメッセージを復元できないため、情報の一部のみを明らかにする攻撃を防止することです。
原論文で提案されているもう一つの応用は、セキュリティコストの削減です。例えば、ファイルをAONTで処理し、その一部だけを暗号化する(例えばスマートカード上で暗号化する)といったことが可能です。AONTは、結果としてファイル全体が保護されることを保証します。より強力な変換(例えば上記のBoykoによるもの)を使用することが重要です。
AONTは前方誤り訂正と組み合わせることで計算的に安全な秘密共有方式を実現できる。[ 4 ]
AONT の他の用途としては、最適非対称暗号化パディング(OAEP) が挙げられます。