Lenguaje

KeyProtection.Builder.SetRandomizedEncryptionRequired(Boolean) Método

Definición

Establece si el cifrado que usa esta clave debe ser lo suficientemente aleatorio para generar diferentes texto cifrados para el mismo texto sin formato cada vez.

[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

Parámetros

required
Boolean

Devoluciones

Atributos

Comentarios

Establece si el cifrado que usa esta clave debe ser lo suficientemente aleatorio para generar diferentes texto cifrados para el mismo texto sin formato cada vez. La propiedad criptográfica formal que se requiere es la indistinguibilidad bajo un ataque de texto no cifrado elegido (IND-CPA). Esta propiedad es importante porque mitiga varias clases de debilidades debido a la cual el texto cifrado puede filtrar información sobre texto no cifrado. Por ejemplo, si un texto no cifrado determinado siempre genera el mismo texto cifrado, un atacante puede ver los texto cifrados repetidos y poder deducir algo sobre el texto no cifrado.

De forma predeterminada, se requiere IND-CPA.

Cuando se requiere IND-CPA: la transformación que no ofrece IND-CPA, como cifrados simétricos mediante el modo ECB o el cifrado RSA sin relleno, están prohibidos;; en las transformaciones que usan un IV, como los cifrados simétricos en los modos de bloque GCM, CBC y CTR, se rechazan los IVs proporcionados por el autor de la llamada al cifrar, para asegurarse de que solo se usan IVs aleatorios antes de deshabilitar este requisito, tenga en cuenta los siguientes enfoques en su lugar: Si va a generar un IV aleatorio para el cifrado y, a continuación, inicializar un cifrado mediante el IV, la solución consiste en permitir que el cifrado genere un IV aleatorio en su lugar. Esto se producirá si el cifrado se inicializa para el cifrado sin un IV. A continuación, se puede consultar el IV a través de Cipher.getIV(); Si va a generar un IV no aleatorio (por ejemplo, un IV derivado de algo no totalmente aleatorio, como el nombre del archivo que se está cifrando, o el identificador de transacción, o una contraseña, o un identificador de dispositivo), considere la posibilidad de cambiar el diseño para usar un IV aleatorio que, a continuación, se proporcionará además del texto cifrado a las entidades que necesitan descifrar el texto cifrado; Si usa el cifrado RSA sin relleno, considere la posibilidad de cambiar a esquemas de relleno que ofrecen IND-CPA, como PKCS#1 o OAEP.

Referencia de Android para android.security.keystore.KeyProtection.Builder.setRandomizedEncryptionRequired.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a