KeyProtection.Builder.SetRandomizedEncryptionRequired(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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.