Operaciones y mecanismos criptográficos
Obtenga información sobre las operaciones, los mecanismos y los algoritmos admitidos por el proveedor JCE de gestión de claves dedicadas.
Generar claves y pares de claves
Utilice el proveedor JCE para generar claves de los siguientes tipos:
-
RSA: RSA se utiliza ampliamente para la transmisión de datos segura, firmas digitales y protocolos de intercambio de claves.
-
EC (Curva Elíptica): la criptografía de curva elíptica ofrece alta seguridad con tamaños de clave más pequeños, lo que la hace eficiente para aplicaciones criptográficas modernas como SSL/TLS y blockchain.
-
AES (Estándar de cifrado avanzado): AES es un estándar de cifrado ampliamente adoptado para proteger datos confidenciales, lo que proporciona una sólida seguridad tanto para datos estáticos como para datos en tránsito.
-
DESede (Triple DES): Triple DES es una mejora del algoritmo DES original, que ofrece una seguridad mejorada mediante varias rondas de cifrado. DESede solo se admite en clusters que no son de FIPS y, por lo general, se utiliza para aplicaciones heredadas que requieren compatibilidad con versiones anteriores.
Convertir llaves con llaves Fábricas
Las fábricas de claves se utilizan para convertir claves para cumplir con las especificaciones de claves dadas. Consulte Interfaz KeySpec en la documentación de la API de la plataforma Java para obtener más información. Los dos tipos principales de fábricas clave para JCE son:
SecretKeyFactory
La fábrica SecretKeyFactory
está diseñada para importar o derivar claves simétricas. Le permite transferir un Key
o KeySpec
soportado para importar claves simétricas. Consulte Clase SecretKeyFactory en la documentación de la API de la plataforma Java para obtener más información.
Las siguientes clases KeySpec
son compatibles con el método generateSecret
:
- KeyAttributesMap: esta clase permite importar bytes de clave junto con atributos asociados.
- SecretKeySpec: esta clase se utiliza para importar especificaciones de claves simétricas. Consulte Interfaz SecretKey en la documentación de la API de la plataforma Java para obtener más información.
- DESedeKeySpec: esta clase solo se utiliza con DESedeKeyFactory y permite importar la especificación DESedeKey. Tenga en cuenta que DESede solo se admite en clusters que no sean de FIPS. Consulte Clase DESedeKeySpec en la documentación de la API de la plataforma Java para obtener más información. Esta clase le permite derivar claves simétricas basadas en una clave AES de DKMS existente.
El método translateKey
puede aceptar cualquier clave que implante la interfaz Key
, que proporciona flexibilidad en el manejo de claves. Para traducir una clave persistente, defina DEDICATED_KMS_JCE_TRANSLATE_KEY_PERSISTENT
como TRUE
en las variables de entorno o las propiedades del sistema.
KeyFactory
La fábrica KeyFactory
se utiliza para importar claves asimétricas. Al transferir un valor Key
o KeySpec
válido, puede importar claves asimétricas a Dedicated Key Management. Consulte Clase KeyFactory en la documentación de la API de la plataforma Java para obtener más información.
Las siguientes clases KeySpec
están soportadas para el método generatePublic
:
- KeyAttributesMap: disponible para RSA y EC KeyTypes.
- X509EncodedKeySpec: esta clase es para
generatePublic
enRSAKeyFactory
yEcKeyFactory
, y se utiliza para importar la especificación de clave codificada X509. Consulte Clase X509EncodedKeySpec en la documentación de la API de la plataforma Java para obtener más información. - RSAPublicKeySpec: para
generatePublic
enRSAKeyFactory
. Utilice esta clase para importar la especificación de clave pública RSA. Consulte Clase RSAPublicKeySpec en la documentación de la API de la plataforma Java para obtener más información. - ECPublicKeySpec: para
generatePublic
enEcKeyFactory
. Utilice esta clase para importar la especificación de clave pública CE. Consulte Clase ECPublicKeySpec en la documentación de la API de la plataforma Java para obtener más información.
Las siguientes clases KeySpec
están soportadas para el método generatePrivate
:
- PKCS8EncodedKeySpec: se utiliza para claves privadas EC y RSA. Consulte Clase PKCS8EncodedKeySpec en la documentación de la API de la plataforma Java para obtener más información.
- RSAPrivateCrtKeySpec: solo para claves privadas RSA. Consulte Clase RSAPrivateCrtKeySpec en la documentación de la API de la plataforma Java para obtener más información.
- ECPrivateKeySpec: solo para claves privadas CE. Consulte Clase ECPrivateKeySpec en la documentación de la API de la plataforma Java para obtener más información.
El método translateKey
acepta cualquier clave que implante la interfaz Key
, lo que proporciona una conversión perfecta entre diferentes formatos de clave.
Funciones de cifrado
El proveedor JCE de gestión de claves dedicada admite las siguientes combinaciones de algoritmo, modo y relleno.
algoritmo | Modo | Relleno | Notas: |
---|---|---|---|
AES | CBC |
AES/CBC/NoPadding AES/CBC/PKCS5Padding |
Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. Implementa Cipher.UNWRAP_MODE para AES/CBC NoPadding |
AES | BCE |
AES/ECB/PKCS5Padding AES/ECB/NoPadding |
Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. |
AES | CTR | AES/CTR/NoPadding | Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. |
AES | GCM | AES/GCM/NoPadding |
Implementa Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. Al realizar el cifrado AES-GCM, el HSM ignora el vector de inicialización (IV) en la solicitud y utiliza un IV que genera. Cuando finalice la operación, debe llamar a Cipher.getIV() para obtener el IV. |
AESWrap | BCE |
AESWrap/BCE/NoPadding AESWrap/BCE/PKCS5Padding AESWrap/BCE/ZeroPadding |
Implementa Cipher.WRAP_MODE y Cipher.UNWRAP_MODE. |
DESede (Triple DES) | CBC |
DESede/CBC/PKCS5Padding DESede/CBC/NoPadding |
Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. DESede solo se admite en clusters que no sean de FIPS. |
DESede (Triple DES) | BCE |
DESede/BCE/NoPadding DESede/BCE/PKCS5Padding |
Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. DESede solo se admite en clusters que no sean de FIPS. |
RSA | BCE |
RSA/ECB/PKCS1Padding, consulte la nota 1 RSA/ECB/OAEPPadding RSA/ECB/OAEPWithSHA-1ANDMGF1Padding RSA/ECB/OAEPWithSHA-224ANDMGF1Padding RSA/ECB/OAEPWithSHA-256ANDMGF1Padding RSA/ECB/OAEPWithSHA-384ANDMGF1Padding RSA/ECB/OAEPWithSHA-512ANDMGF1Padding |
Implementa Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. |
RSA | BCE | RSA/ECB/NoPadding | Implementa Cipher.ENCRYPT_MODE y Cipher.DECRYPT_MODE. |
RSAAESWrap | BCE |
RSAAESWrap/BCE/OAEPPadding RSAAESWrap/ECB/OAEPWithSHA-1ANDMGF1Padding RSAAESWrap/ECB/OAEPWithSHA-224ANDMGF1Padding RSAAESWrap/ECB/OAEPWithSHA-256ANDMGF1Padding RSAAESWrap/ECB/OAEPWithSHA-384ANDMGF1Padding RSAAESWrap/ECB/OAEPWithSHA-512ANDMGF1Padding |
Implementa Cipher.WRAP_MODE y Cipher.UNWRAP_MODE. |
Firmar y verificar funciones
El proveedor JCE de DKMS admite los siguientes tipos de firma y verificación:
Tipos de firma de RSA
-
NONEwithRSA
-
RSASSA-PSS
-
SHA1withRSA
-
SHA1withRSA/PSS
-
SHA1withRSAandMGF1
-
SHA224withRSA
-
SHA224withRSAandMGF1
-
SHA224withRSA/PSS
-
SHA256withRSA
-
SHA256withRSAandMGF1
-
SHA256withRSA/PSS
-
SHA384withRSA
-
SHA384withRSAandMGF1
-
SHA384withRSA/PSS
-
SHA512withRSA
-
SHA512withRSAandMGF1
-
SHA512withRSA/PSS
Tipos de firma de ECDSA
-
NONEwithECDSA
-
SHA1withECDSA
-
SHA224withECDSA
-
SHA256withECDSA
-
SHA384withECDSA
-
SHA512withECDSA
Funciones de resumen de mensaje
Genere valores hash criptográficos para la verificación de integridad de datos. El proveedor JCE de DKMS admite los siguientes resúmenes de mensajes.
-
SHA-1
-
SHA-224
-
SHA-256
-
SHA-384
-
SHA-512
Funciones de código de autenticación de mensajes basados en hash (HMAC)
Genere claves de código de autenticación de mensajes (HMAC) basadas en hash para funciones hash criptográficas. HMAC se utiliza para verificar la integridad y autenticidad de los datos mediante la aplicación de una clave secreta con una función hash. El proveedor de JCE Dedicated Key Management admite los siguientes algoritmos HMAC:
-
HmacSHA1 (Tamaño máximo de datos en bytes: 16288)
-
HmacSHA224 (Tamaño máximo de datos en bytes: 16256)
-
HmacSHA256 (Tamaño máximo de datos en bytes: 16288)
-
HmacSHA384 (Tamaño máximo de datos en bytes: 16224)
-
HmacSHA512 (Tamaño máximo de datos en bytes: 16224)
Código de autenticación de mensajes basados en cifrado (CMAC)
Genere códigos de autenticación de mensajes basados en cifrado (CMAC) mediante cifrados de bloque (por ejemplo, AES) para producir un código de autenticación que garantice la integridad y autenticidad de los mensajes. CMAC funciona de manera similar a HMAC, pero utiliza un cifrado de clave simétrico para la operación criptográfica.
El proveedor de JCE Dedicated Key Management admite el algoritmo AESCMAC para la generación de CMAC.