Opérations et mécanismes cryptographiques
Découvrez les opérations, les mécanismes et les algorithmes pris en charge par le fournisseur JCE Dedicated Key Management.
Générer des clés et des paires de clés
Utilisez le fournisseur JCE pour générer des clés des types suivants :
-
RSA : RSA est largement utilisé pour la transmission de données sécurisée, les signatures numériques et les protocoles d'échange de clés.
-
EC (Elliptic Curve) : La cryptographie à courbe elliptique offre une sécurité élevée avec des tailles de clé plus petites, ce qui la rend efficace pour les applications cryptographiques modernes telles que SSL/TLS et la chaîne de blocs.
-
AES (Advanced Encryption Standard) : AES est une norme de chiffrement largement adoptée pour la protection des données sensibles, qui assure une sécurité renforcée tant pour les données au repos que pour les données en transit.
-
DESede (Triple DES) : Triple DES est une amélioration de l'algorithme DES d'origine, offrant une sécurité améliorée grâce à plusieurs cycles de chiffrement. DESede est pris en charge uniquement sur les grappes non FIPS et est généralement utilisé pour les applications existantes nécessitant une compatibilité descendante.
Convertir des clés avec des usines clés
Les usines de clés sont utilisées pour convertir les clés conformément à une spécification de clé donnée. Pour plus d'informations, voir Interface KeySpec dans la documentation sur l'API de plate-forme Java. Les deux principaux types d'usines clés pour JCE sont les suivants :
SecretKeyFactory
La fabrique SecretKeyFactory est conçue pour importer ou dériver des clés symétriques. Il vous permet de transmettre une valeur Key ou KeySpec prise en charge pour importer des clés symétriques. Pour plus d'informations, voir Classe SecretKeyFactory dans la documentation sur l'API de plate-forme Java.
Les classes KeySpec suivantes sont compatibles avec la méthode generateSecret :
- KeyAttributesMap : Cette classe vous permet d'importer des octets de clé avec les attributs associés.
- SecretKeySpec : Cette classe est utilisée pour importer des spécifications de clé symétrique. Pour plus d'informations, voir Interface SecretKey dans la documentation sur l'API de plate-forme Java.
- DESedeKeySpec : Cette classe est utilisée uniquement avec la spécification DESedeKeyFactory et vous permet d'importer la spécification DESedeKey. Notez que DESede n'est pris en charge que sur les grappes non FIPS. Pour plus d'informations, voir Classe DESedeKeySpec dans la documentation sur l'API de plate-forme Java. Cette classe vous permet de dériver des clés symétriques en fonction d'une clé DKMS AES existante.
La méthode translateKey peut accepter toute clé qui met en oeuvre l'interface Key, ce qui offre de la flexibilité dans le traitement des clés. Pour traduire une clé persistante, réglez DEDICATED_KMS_JCE_TRANSLATE_KEY_PERSISTENT à TRUE dans vos variables d'environnement ou propriétés de système.
KeyFactory
La fabrique KeyFactory est utilisée pour importer des clés asymétriques. En transmettant une valeur Key ou KeySpec valide, vous pouvez importer des clés asymétriques dans Dedicated Key Management. Pour plus d'informations, voir Classe KeyFactory dans la documentation sur l'API de plate-forme Java.
Les classes KeySpec suivantes sont prises en charge pour la méthode generatePublic :
- KeyAttributesMap : Disponible à la fois pour RSA et EC KeyTypes.
-
X509EncodedKeySpec : Cette classe est destinée à
generatePublicdansRSAKeyFactoryetEcKeyFactory, et est utilisée pour importer la spécification de clé encodée X509. Pour plus d'informations, voir Classe X509EncodedKeySpec dans la documentation sur l'API de plate-forme Java. -
RSAPublicKeySpec : Pour
generatePublicdansRSAKeyFactory. Utilisez cette classe pour importer la spécification de clé publique RSA. Pour plus d'informations, voir Classe RSAPublicKeySpec dans la documentation sur l'API de plate-forme Java. -
ECPublicKeySpec : Pour
generatePublicdansEcKeyFactory. Utilisez cette classe pour importer la spécification de clé publique EC. Pour plus d'informations, voir Classe ECPublicKeySpec dans la documentation sur l'API de plate-forme Java.
Les classes KeySpec suivantes sont prises en charge pour la méthode generatePrivate :
- PKCS8EncodedKeySpec : Utilisé pour les clés privées EC et RSA. Pour plus d'informations, voir Classe PKCS8EncodedKeySpec dans la documentation sur l'API de plate-forme Java.
- RSAPrivateCrtKeySpec : Pour les clés privées RSA uniquement. Pour plus d'informations, voir Classe RSAPrivateCrtKeySpec dans la documentation sur l'API de plate-forme Java.
- ECPrivateKeySpec : Pour les clés privées EC uniquement. Pour plus d'informations, voir Classe ECPrivateKeySpec dans la documentation sur l'API de plate-forme Java.
La méthode translateKey accepte toute clé qui met en oeuvre l'interface Key, fournissant une conversion transparente entre différents formats de clé.
Fonctions de chiffrement
Le fournisseur JCE Dedicated Key Management prend en charge les combinaisons suivantes d'algorithme, de mode et de remplissage.
| Algorithme | Mode | Remplissage | Notes |
|---|---|---|---|
| AES | CBC |
AES/CBC/NoPadding AES/CBC/PKCS5Padding |
Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. Implémente Cipher.UNWRAP_MODE pour AES/CBC NoPadding |
| AES | BCE |
AES/ECB/PKCS5Padding AES/ECB/NoPadding |
Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. |
| AES | Taux de clics | AES/CTR/NoPadding | Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. |
| AES | GCM | AES/GCM/NoPadding |
Met en oeuvre Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. Lors de l'exécution du chiffrement AES-GCM, le module de sécurité matériel ignore le vecteur d'initialisation (IV) dans la demande et utilise un vecteur IV qu'il génère. Une fois l'opération terminée, vous devez appeler Cipher.getIV() pour obtenir le vecteur d'initialisation. |
| AESWrap | BCE |
AESWrap/BCE/NoPadding AESWrap/BCE/PKCS5Padding AESWrap/BCE/ZeroPadding |
Met en oeuvre Cipher.WRAP_MODE et Cipher.UNWRAP_MODE. |
| DESede (Triple DES) | CBC |
DESede/CBC/PKCS5Padding DESede/CBC/NoPadding |
Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. DESede est pris en charge uniquement sur les grappes non FIPS. |
| DESede (Triple DES) | BCE |
DESede/ECB/NoPadding DESede/ECB/PKCS5Padding |
Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. DESede est pris en charge uniquement sur les grappes non FIPS. |
| RSA | BCE |
RSA/ECB/PKCS1Padding voir la note 1 RSA/ECB/OAEPPadding RSA/ECB/OAEPWithSHA-1ANDMGF1Padding RSA/ECB/OAEPWithSHA-224ANDMGF1Padding RSA/ECB/OAEPWithSHA-256ANDMGF1Padding RSA/ECB/OAEPWithSHA-384ANDMGF1Padding RSA/ECB/OAEPWithSHA-512ANDMGF1Padding |
Met en oeuvre Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. |
| RSA | BCE | RSA/ECB/NoPadding | Met en oeuvre Cipher.ENCRYPT_MODE et Cipher.DECRYPT_MODE. |
| RSAAESWrap | BCE |
RSAAESWrap/BCE/OAEPPadding RSAAESWrap/BCE/OAEPWithSHA-1ANDMGF1Padding RSAAESWrap/BCE/OAEPWithSHA-224ANDMGF1Padding RSAAESWrap/BCE/OAEPWithSHA-256ANDMGF1Padding RSAAESWrap/BCE/OAEPWithSHA-384ANDMGF1Padding RSAAESWrap/BCE/OAEPWithSHA-512ANDMGF1Padding |
Met en oeuvre Cipher.WRAP_MODE et Cipher.UNWRAP_MODE. |
Signer et vérifier les fonctions
Le fournisseur JCE DKMS prend en charge les types de signature et de vérification suivants :
Types de signature RSA
-
NONEwithRSA
-
RSASSA-PSS
-
SHA1withRSA
-
SHA1withRSA/PSS
-
SHA1withRSAandMGF1
-
SHA224withRSA
-
SHA224withRSAandMGF1
-
SHA224withRSA/PSS
-
SHA256withRSA
-
SHA256withRSAandMGF1
-
SHA256withRSA/PSS
-
SHA384withRSA
-
SHA384withRSAandMGF1
-
SHA384withRSA/PSS
-
SHA512withRSA
-
SHA512withRSAandMGF1
-
SHA512withRSA/PSS
Types de signature ECDSA
-
NONEwithECDSA
-
SHA1withECDSA
-
SHA224withECDSA
-
SHA256withECDSA
-
SHA384withECDSA
-
SHA512withECDSA
Fonctions de condensé de message
Générer des valeurs de hachage cryptographiques pour la vérification de l'intégrité des données. Le fournisseur JCE DKMS prend en charge les condensés de message suivants.
-
SHA-1
-
SHA-224
-
SHA-256
-
SHA-384
-
SHA-512
Fonctions HMAC (Hash-based Message Authentication Code)
Générer des clés HMAC (Hash-based Message Authentication Code) pour les fonctions de hachage cryptographiques. HMAC est utilisé pour vérifier l'intégrité et l'authenticité des données en appliquant une clé secrète avec une fonction de hachage. Le fournisseur JCE Dedicated Key Management prend en charge les algorithmes HMAC suivants :
-
HmacSHA1 (Taille maximale des données en octets : 16288)
-
HmacSHA224 (Taille maximale des données en octets : 16256)
-
HmacSHA256 (Taille maximale des données en octets : 16288)
-
HmacSHA384 (Taille maximale des données en octets : 16224)
-
HmacSHA512 (Taille maximale des données en octets : 16224)
Code d'authentification de message basé sur le chiffrement (CMAC)
Générez des codes d'authentification de message basés sur un chiffrement (CMAC) à l'aide de chiffrements par blocs (par exemple, AES) pour produire un code d'authentification qui garantit l'intégrité et l'authenticité des messages. CMAC fonctionne de la même manière que HMAC, mais utilise un chiffrement à clé symétrique pour l'opération cryptographique.
Le fournisseur JCE Dedicated Key Management prend en charge l'algorithme AESCMAC pour la génération CMAC.