KeyProtection.Builder.SetRandomizedEncryptionRequired(Boolean) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
毎回同じプレーンテキストに対して異なる暗号テキストを生成するために、このキーを使用した暗号化を十分にランダム化する必要があるかどうかを設定します。
[Android.Runtime.Register("setRandomizedEncryptionRequired", "(Z)Landroid/security/keystore/KeyProtection$Builder;", "", ApiSince=23)]
public Android.Security.Keystore.KeyProtection.Builder SetRandomizedEncryptionRequired(bool required);
[<Android.Runtime.Register("setRandomizedEncryptionRequired", "(Z)Landroid/security/keystore/KeyProtection$Builder;", "", ApiSince=23)>]
member this.SetRandomizedEncryptionRequired : bool -> Android.Security.Keystore.KeyProtection.Builder
パラメーター
- required
- Boolean
返品
- 属性
注釈
毎回同じプレーンテキストに対して異なる暗号テキストを生成するために、このキーを使用した暗号化を十分にランダム化する必要があるかどうかを設定します。 必須の正式な暗号化プロパティは、選択されたプレーンテキスト攻撃 (IND-CPA) の下で区別できません。 このプロパティは、暗号文がプレーンテキストに関する情報を漏えいさせる可能性があるため、いくつかのクラスの弱点を軽減するため、重要です。 たとえば、特定のプレーンテキストが常に同じ暗号テキストを生成する場合、攻撃者は繰り返し暗号テキストを見て、プレーンテキストに関する何かを推測できる可能性があります。
既定では、IND-CPA が必要です。
IND-CPA が必要な場合: ECB モードを使用した対称暗号やパディングなしの RSA 暗号化など、IND-CPA を提供しない変換は禁止されます。GCM、CBC、CTR ブロック モードの対称暗号など、IV を使用する変換では、暗号化時に呼び出し元が提供する IV が拒否され、ランダムな IV のみが使用されるようにするために、この要件を無効にする前に、次の方法を検討してください。暗号化のためにランダム IV を生成し、IV を使用して暗号を初期化する場合、代わりに暗号でランダム IV を生成します。 これは、暗号が IV なしで暗号化のために初期化された場合に発生します。 IV は、Cipher.getIV()を使用して照会できます。非ランダム IV (たとえば、暗号化されているファイルの名前、トランザクション ID、パスワード、デバイス識別子など、完全にランダムではないものから派生した IV) を生成する場合は、暗号テキストを復号化する必要があるエンティティへの暗号テキストに加えて提供されるランダム IV を使用するように設計を変更することを検討してください。パディングなしで RSA 暗号化を使用している場合は、PKCS#1 や OAEP などの IND-CPA を提供するパディング スキームに切り替えることを検討してください。
android.security.keystore.KeyProtection.Builder.setRandomizedEncryptionRequiredの Android リファレンス。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。