暗号学において、擬似乱数置換(PRP)とは、実際的な努力ではランダム置換(つまり、関数の定義域上のすべての置換の族から一様な確率でランダムに選択された置換)と区別できない関数のことである。
Fを写像とするFが PRP であるのは、以下の条件を満たす場合のみです。
擬似乱数順列族とは、擬似乱数順列の集合であり、特定の順列は鍵を用いて選択することができる。
(鍵付き)ブロック暗号の理想化された抽象化は、平文と暗号文のマッピングに対する真のランダムな順列です。ブロック暗号のセキュリティパラメータで指定されたよりも少ない労力で大きな利点を得る識別アルゴリズムが存在する場合(これは通常、必要な労力が暗号の鍵空間に対する総当たり検索とほぼ同じであることを意味します)、そのような破綻がすぐに実際的なセキュリティ上の失敗につながるわけではないとしても、少なくとも認証の意味では、その暗号は破られているとみなされます。[ 2 ]
現代の暗号には、超擬似乱数性が求められる。つまり、攻撃者が暗号の順方向と逆方向の両方にブラックボックスアクセスできたとしても、暗号は同じメッセージ空間上のランダムに選択された順列と区別できないはずである。[ 3 ]
マイケル・ルービーとチャールズ・ラコフ[ 4 ]は、フェイステル暗号を用いて構築されたルービー・ラコフ構成を用いて擬似乱数関数から「強力な」擬似乱数順列を構築できることを示した。
予測不可能な順列(UP ) Fkとは、高速なランダム化アルゴリズムではその値を予測できない順列のことです。予測不可能な順列は、暗号プリミティブ、つまりより複雑な特性を持つ暗号システムの構成要素として使用できます。
予測不可能な順列に対する攻撃者は、順列操作と逆順列操作の両方に対してオラクルへのアクセス権を与えられたアルゴリズムとして定義される。攻撃者にはチャレンジ入力kが与えられ、 Fkの値を予測するように求められる。攻撃者は、この予測を行うためにオラクルに対して一連のクエリを実行することは許可されているが、 kの値自体をクエリすることは許可されていない。[ 5 ]
順列を生成するランダム化アルゴリズムは、その出力が、チャレンジラウンドの前にオラクルに対して多項式( nに関して) 回のクエリを実行する攻撃者によってランダムよりも有意に高い精度で予測できない項目の集合(長さn のバイナリ文字列で記述) の順列であり、実行時間がnに関して多項式であり、すべてのインスタンスでエラー確率が 1/2 未満である場合、予測不可能な順列を生成します。つまり、順列のオラクルによって相対化された複雑性クラスPPでは予測できません。[ 5 ]
関数F k が予測不可能性の要件のみを満たす場合、安全なメッセージ認証コード(MAC)ではないことが示されます。また、 nビットの UP としてモデル化されたブロック暗号から、効率的な可変入力長 MAC を構築することはできないことも示されます。予測不可能なラウンド関数を使用したk = n / ω (log λ ) ラウンドの Feistel 構成の出力では、すべての中間ラウンド値が漏洩する可能性があることが示されています。 [ 5 ]現実的な予測不可能関数 (UF) の場合でも、中間ラウンド値に関する部分的な情報が出力を通じて漏洩する可能性があります。その後、Feistel 構成で超対数数のラウンドを使用すると、攻撃者がすべての中間ラウンド値と順列出力を取得した場合でも、結果として得られる UP 構成は安全であることが示されました。[ 6 ]
この点に関して証明された定理もあり、 UP構成ψU ,kに対する予測不可能性ゲームで無視できない優位επを持ち、挑戦者に対して多項式数のクエリを行う効率的なUP敵対者Aπが存在する場合、UFファミリーFからサンプリングされたUFに対する予測不可能性ゲームで無視できない優位を持つUF敵対者Afも存在する。これから、UP敵対者Aπの最大優位はεπ = O( εf . ( qk ) 6 )であることが示される。ここで、εfは、FからサンプリングされたUFに対してO( t +( qk ) 5 )の時間で実行されるUF敵対者の最大優位を表し、 tはPRP敵対者Aψの実行時間、qはそれが行うクエリの数である。[ 6 ] [ 7 ]
さらに、擬似乱数ではなく予測不可能性の特性を満たす署名方式は、本質的に検証可能な予測不可能関数 (VUF) です。検証可能な予測不可能関数は、擬似乱数の代わりに弱い予測不可能性が用いられる点を除けば、検証可能な擬似乱数関数 (VRF) と類似して定義されます。検証可能な予測不可能順列は、VUF の順列類似物、または VRP の予測不可能類似物です。VRP は VUP でもあり、実際には、VRF に Feistel 構成を適用して VRP を構築することで VUP を構築できます。しかし、VUF は VRF よりもはるかに簡単に構築できるため、これは有用とは見なされていません。[ 8 ]