KeyProtection.Builder.SetRandomizedEncryptionRequired(Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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/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
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: Transformation, die IND-CPA nicht bietet, z. B. symmetrische Chiffre mit ECB-Modus oder RSA-Verschlüsselung ohne Abstand, sind verboten;; bei Transformationen, bei denen ein IV verwendet wird, z. B. symmetrische Chiffre in GCM-, CBC- und CTR-Blockmodi, werden anruferbezogene IVs beim Verschlüsseln abgelehnt, um sicherzustellen, dass nur zufällige IVs verwendet werden, bevor sie diese Anforderung deaktivieren, stattdessen die folgenden Ansätze berücksichtigen:; Wenn Sie einen zufälligen IV zur Verschlüsselung generieren und dann eine Chiffre mit dem IV initialisieren, besteht die Lösung darin, stattdessen eine zufällige IV zu generieren. Dies tritt auf, wenn die Verschlüsselung für die Verschlüsselung ohne IV initialisiert wird. Der IV kann dann über Cipher.getIV() abgefragt werden; Wenn Sie einen nicht zufälligen IV generieren (z. B. einen IV,der von etwas nicht vollständig zufällig abgeleitet ist, z. B. den Namen der verschlüsselten Datei, die Transaktions-ID oder das Kennwort oder ein Gerätebezeichner), erwägen Sie, Ihren Entwurf so zu ändern, dass er eine zufällige IV verwendet, die dann zusätzlich zum Verschlüsselungstext für die Entitäten bereitgestellt wird, die den Verschlüsselungstext entschlüsseln müssen; Wenn Sie RSA-Verschlüsselung ohne Abstand verwenden, sollten Sie in Erwägung ziehen, zu Abstandsschemas zu wechseln, die IND-CPA bieten, z. B. PKCS#1 oder OAEP.
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.