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