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 en RSAKeyFactory y EcKeyFactory, 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 en RSAKeyFactory. 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 en EcKeyFactory. 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.