Lingua

KeyProtection.Builder.SetRandomizedEncryptionRequired(Boolean) Metodo

Definizione

Imposta se la crittografia che usa questa chiave deve essere sufficientemente casuale per produrre testo crittografato diverso per lo stesso testo non crittografato ogni volta.

[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

Parametri

required
Boolean

Valori restituiti

Attributi

Commenti

Imposta se la crittografia che usa questa chiave deve essere sufficientemente casuale per produrre testo crittografato diverso per lo stesso testo non crittografato ogni volta. La proprietà di crittografia formale necessaria è indistinguishability in caso di attacco in testo non crittografato scelto (IND-CPA). Questa proprietà è importante perché attenua diverse classi di debolezze a causa della quale il testo crittografato potrebbe perdere informazioni sul testo non crittografato. Ad esempio, se un testo non crittografato specificato produce sempre lo stesso testo crittografato, un utente malintenzionato potrebbe visualizzare i testi crittografati ripetuti e poter dedurre qualcosa sul testo non crittografato.

Per impostazione predefinita, è necessario IND-CPA.

Quando è necessario IND-CPA: la trasformazione che non offre IND-CPA, ad esempio crittografie simmetriche che usano la modalità BCE o la crittografia RSA senza riempimento, sono vietate;; nelle trasformazioni che usano un IV, ad esempio le crittografie simmetriche nelle modalità di blocco GCM, CBC e CTR, gli IV forniti dal chiamante vengono rifiutati durante la crittografia, per assicurarsi che vengano usati solo IV casuali Prima di disabilitare questo requisito, considerare invece gli approcci seguenti: Se si genera un IV casuale per la crittografia e quindi si inizializza una crittografia usando l'IV, la soluzione consiste nel consentire alla crittografia di generare invece un IV casuale. Ciò si verifica se la crittografia viene inizializzata per la crittografia senza iv. L'IV può quindi essere sottoposto a query tramite Cipher.getIV(); Se si genera un IV non casuale (ad esempio, un IV derivato da qualcosa di non completamente casuale, ad esempio il nome del file crittografato, o l'ID transazione o una password o un identificatore di dispositivo), prendere in considerazione la modifica della progettazione in modo da usare un IV casuale che verrà quindi fornito oltre al testo crittografato alle entità che devono decrittografare il testo crittografato; Se si usa la crittografia RSA senza spaziatura interna, è consigliabile passare a schemi di spaziatura interna che offrono IND-CPA, ad esempio PKCS#1 o OAEP.

Informazioni di riferimento su Android per android.security.keystore.KeyProtection.Builder.setRandomizedEncryptionRequired.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a