Language

KeyGenParameterSpec.Builder.SetRandomizedEncryptionRequired(Boolean) メソッド

定義

毎回同じプレーンテキストに対して異なる暗号テキストを生成するために、このキーを使用した暗号化を十分にランダム化する必要があるかどうかを設定します。

[Android.Runtime.Register("setRandomizedEncryptionRequired", "(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=23)]
public Android.Security.Keystore.KeyGenParameterSpec.Builder SetRandomizedEncryptionRequired(bool required);
[<Android.Runtime.Register("setRandomizedEncryptionRequired", "(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=23)>]
member this.SetRandomizedEncryptionRequired : bool -> Android.Security.Keystore.KeyGenParameterSpec.Builder

パラメーター

required
Boolean

返品

属性

注釈

毎回同じプレーンテキストに対して異なる暗号テキストを生成するために、このキーを使用した暗号化を十分にランダム化する必要があるかどうかを設定します。 必須の正式な暗号化プロパティは、選択されたプレーンテキスト攻撃 (IND-CPA) の下で区別できません。 このプロパティは、暗号文がプレーンテキストに関する情報を漏えいさせる可能性があるため、いくつかのクラスの弱点を軽減するため、重要です。 たとえば、特定のプレーンテキストが常に同じ暗号テキストを生成する場合、攻撃者は繰り返し暗号テキストを見て、プレーンテキストに関する何かを推測できる可能性があります。

既定では、IND-CPA が必要です。

IND-CPA が必要な場合、対称暗号化アルゴリズムを使用した ECB やパディングなしの RSA 暗号化/復号化など、IND-CPA を提供しない暗号化/復号化変換は禁止されます。 GCM、CBC、CTR などの IV を使用するブロック モードでは、ランダムな IV のみが使用されるように、暗号化時に呼び出し元が提供する IV が拒否されます。

この要件を無効にする前に、IV なしで暗号化用に初期化し、Cipher.getIV() を使用して IV にクエリを実行することで、暗号がランダム IV を生成することを許可することを検討してください。 IV がランダムでない場合は、暗号テキストと共に提供されるランダム IV を使用して、それを復号化する必要があるエンティティにデザインを変更することを検討してください。 パディングなしで RSA 暗号化を使用する場合は、PKCS#1 や OAEP などの IND-CPA を提供する暗号化パディング スキームを検討してください。

android.security.keystore.KeyGenParameterSpec.Builder.setRandomizedEncryptionRequiredの Android リファレンス。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象