Sprache

KeyGenParameterSpec.Builder.SetRandomizedEncryptionRequired(Boolean) Methode

Definition

Legt fest, ob die Verschlüsselung, die diesen Schlüssel verwendet, ausreichend zufällig sein muss, um jedes Mal unterschiedliche Chiffretexte für denselben Nur-Text zu erzeugen.

[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

Parameter

required
Boolean

Gibt zurück

Attribute

Hinweise

Legt fest, ob die Verschlüsselung, die diesen Schlüssel verwendet, ausreichend zufällig sein muss, um jedes Mal unterschiedliche Chiffretexte für denselben Nur-Text zu erzeugen. Die erforderliche formale kryptografische Eigenschaft ist unter ausgewähltem Nur-Text-Angriff (IND-CPA) nicht zu unterscheiden. Diese Eigenschaft ist wichtig, da sie mehrere Klassen von Schwachstellen entschärft, aufgrund derer Chiffretext Informationen über Nur-Text verloren gehen können. Wenn beispielsweise ein gegebener Klartext immer denselben Chiffretext erzeugt, kann ein Angreifer die wiederholten Chiffretexte sehen und etwas über den Klartext ableiten können.

Standardmäßig ist IND-CPA erforderlich.

Wenn IND-CPA erforderlich ist, sind Verschlüsselungs-/Entschlüsselungstransformationen, die IND-CPA nicht anbieten, wie z. B. ECB mit einem symmetrischen Verschlüsselungsalgorithmus oder RSA-Verschlüsselung/Entschlüsselung ohne Abstand, verboten. In Blockmodi, die einen IV verwenden, z. B. GCM, CBC und CTR, werden vom Anrufer bereitgestellte IVs beim Verschlüsseln abgelehnt, um sicherzustellen, dass nur zufällige IVs verwendet werden.

Bevor Sie diese Anforderung deaktivieren, erwägen Sie, Chiffre zuzulassen, eine zufällige IV zu generieren, indem Sie sie für die Verschlüsselung ohne IV initialisieren und dann den IV mit Cipher.getIV() abfragen. Wenn ein IV nicht zufällig ist, erwägen Sie, den Entwurf so zu ändern, dass ein zufälliger IV verwendet wird, der mit dem Chiffretext für Entitäten bereitgestellt wird, die es entschlüsseln müssen. Wenn Sie RSA-Verschlüsselung ohne Abstand verwenden, sollten Sie Verschlüsselungsabstandsschemas in Betracht ziehen, die IND-CPA bieten, z. B. PKCS#1 oder OAEP.

Android-Referenz für android.security.keystore.KeyGenParameterSpec.Builder.setRandomizedEncryptionRequired.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: