Operazioni e meccanismi crittografici
Scopri le operazioni, i meccanismi e gli algoritmi supportati dal provider JCE Dedicated Key Management.
Genera chiavi e coppie di chiavi
Utilizzare il provider JCE per generare chiavi dei seguenti tipi:
-
RSA: RSA è ampiamente utilizzato per la trasmissione sicura dei dati, le firme digitali e i protocolli di scambio di chiavi.
-
EC (Elliptic Curve): la crittografia della curva ellittica offre un'elevata sicurezza con dimensioni delle chiavi inferiori, rendendola efficiente per le moderne applicazioni crittografiche come SSL/TLS e blockchain.
-
AES (Advanced Encryption Standard): AES è uno standard di cifratura ampiamente adottato per la protezione dei dati sensibili, che garantisce una sicurezza elevata sia per i dati in archivio che per i dati in transito.
-
DESede (Triple DES): Triple DES è un miglioramento dell'algoritmo DES originale che offre una maggiore sicurezza attraverso diversi cicli di cifratura. DESede è supportato solo su cluster non FIPS e viene in genere utilizzato per applicazioni precedenti che richiedono la compatibilità con le versioni precedenti.
Converti chiavi con fabbriche chiave
I key factory vengono utilizzati per convertire le chiavi in modo che siano conformi a determinate specifiche chiave. Per ulteriori informazioni, vedere Interfaccia KeySpec nella documentazione dell'API della piattaforma Java. I due tipi principali di fabbriche chiave per JCE sono:
SecretKeyFactory
Lo stabilimento SecretKeyFactory è progettato per importare o derivare chiavi simmetriche. Consente di passare un file Key o KeySpec supportato per importare le chiavi simmetriche. Per ulteriori informazioni, consulta la classe SecretKeyFactory nella documentazione relativa all'API Java Platform.
Le seguenti classi KeySpec sono compatibili con il metodo generateSecret:
- KeyAttributesMap: questa classe consente di importare i byte chiave insieme agli attributi associati.
- SecretKeySpec: questa classe viene utilizzata per importare le specifiche delle chiavi simmetriche. Per ulteriori informazioni, vedere Interfaccia SecretKey nella documentazione dell'API della piattaforma Java.
- DESedeKeySpec: questa classe viene utilizzata solo con DESedeKeyFactory e consente di importare la specifica DESedeKey. Si noti che DESede è supportato solo nei cluster non FIPS. Per ulteriori informazioni, consulta la classe DESedeKeySpec nella documentazione relativa all'API Java Platform. Questa classe consente di derivare chiavi simmetriche in base a una chiave AES DKMS esistente.
Il metodo translateKey può accettare qualsiasi chiave che implementa l'interfaccia Key, il che offre flessibilità nella gestione delle chiavi. Per tradurre una chiave persistente, impostare DEDICATED_KMS_JCE_TRANSLATE_KEY_PERSISTENT come TRUE nelle variabili di ambiente o nelle proprietà di sistema.
KeyFactory
Il factory KeyFactory viene utilizzato per importare chiavi asimmetriche. Se si passa un valore Key o KeySpec valido, è possibile importare chiavi asimmetriche in Gestione chiavi dedicata. Per ulteriori informazioni, consulta la classe KeyFactory nella documentazione relativa all'API Java Platform.
Per il metodo generatePublic sono supportate le seguenti classi KeySpec:
- KeyAttributesMap: disponibile sia per RSA che per EC KeyTypes.
-
X509EncodedKeySpec: questa classe è per
generatePublicinRSAKeyFactoryeEcKeyFactoryed è utilizzata per importare la specifica della chiave codificata X509. Per ulteriori informazioni, consulta la classe X509EncodedKeySpec nella documentazione relativa all'API Java Platform. -
RSAPublicKeySpec: per
generatePublicnel fileRSAKeyFactory. Utilizzare questa classe per importare la specifica della chiave pubblica RSA. Per ulteriori informazioni, consulta la classe RSAPublicKeySpec nella documentazione relativa all'API Java Platform. -
ECPublicKeySpec: per
generatePublicnel fileEcKeyFactory. Utilizzare questa classe per importare la specifica della chiave pubblica CE. Per ulteriori informazioni, consulta la classe ECPublicKeySpec nella documentazione relativa all'API Java Platform.
Per il metodo generatePrivate sono supportate le seguenti classi KeySpec:
- PKCS8EncodedKeySpec: utilizzato sia per le chiavi private EC che RSA. Per ulteriori informazioni, consulta la classe PKCS8EncodedKeySpec nella documentazione relativa all'API Java Platform.
- RSAPrivateCrtKeySpec: solo per le chiavi private RSA. Per ulteriori informazioni, consulta la classe RSAPrivateCrtKeySpec nella documentazione relativa all'API Java Platform.
- ECPrivateKeySpec: solo per le chiavi private EC. Per ulteriori informazioni, consulta la classe ECPrivateKeySpec nella documentazione relativa all'API Java Platform.
Il metodo translateKey accetta qualsiasi chiave che implementa l'interfaccia Key, fornendo una conversione perfetta tra diversi formati chiave.
Funzioni di cifratura
Il provider JCE Dedicated Key Management supporta le seguenti combinazioni di algoritmo, modalità e riempimento.
| Algoritmo | Modalità | Riempimento | Note |
|---|---|---|---|
| AES | CBC |
AES/CBC/NoPadding AES/CBC/PKCS5Padding |
Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. Implementa Cipher.UNWRAP_MODE per AES/CBC NoPadding |
| AES | BCE |
AES/ECB/PKCS5Padding AES/ECB/NoPadding |
Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. |
| AES | CTR | AES/CTR/NoPadding | Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. |
| AES | GCM | AES/GCM/NoPadding |
Implementa Cipher.WRAP_MODE, Cipher.UNWRAP_MODE, Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. Quando si esegue la cifratura AES-GCM, l'HSM ignora il vettore di inizializzazione (IV) nella richiesta e utilizza un IV generato. Al termine dell'operazione, è necessario chiamare Cipher.getIV() per ottenere l'IV. |
| AESWrap | BCE |
AESWrap/BCE/NoPadding AESWrap/BCE/PKCS5Padding AESWrap/BCE/ZeroPadding |
Implementa Cipher.WRAP_MODE e Cipher.UNWRAP_MODE. |
| DESede (DES triplo) | CBC |
DESede/CBC/PKCS5Padding DESede/CBC/NoPadding |
Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. DESede è supportato solo nei cluster non FIPS. |
| DESede (DES triplo) | BCE |
DESede/BCE/NoPadding DESede/BCE/PKCS5Padding |
Implementa Cipher.ENCRYPT_MODE e Cipher.DECRYPT_MODE. DESede è supportato solo nei cluster non FIPS. |
| RSA | BCE |
RSA/ECB/PKCS1Padding vedere 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 e Cipher.DECRYPT_MODE. |
| RSA | BCE | RSA/ECB/NoPadding | Implementa Cipher.ENCRYPT_MODE e 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 |
Implementa Cipher.WRAP_MODE e Cipher.UNWRAP_MODE. |
Firma e verifica funzioni
Il provider JCE DKMS supporta i seguenti tipi di firma e verifica:
Tipi di firma RSA
-
NONEwithRSA
-
RSASSA-PSS
-
SHA1withRSA
-
SHA1withRSA/PSS
-
SHA1withRSAandMGF1
-
SHA224withRSA
-
SHA224withRSAandMGF1
-
SHA224withRSA/PSS
-
SHA256withRSA
-
SHA256withRSAandMGF1
-
SHA256withRSA/PSS
-
SHA384withRSA
-
SHA384withRSAandMGF1
-
SHA384withRSA/PSS
-
SHA512withRSA
-
SHA512withRSAandMGF1
-
SHA512withRSA/PSS
Tipi di firma ECDSA
-
NONEwithECDSA
-
SHA1withECDSA
-
SHA224withECDSA
-
SHA256withECDSA
-
SHA384withECDSA
-
SHA512withECDSA
Funzioni digest messaggi
Generare valori hash crittografici per la verifica dell'integrità dei dati. Il provider JCE DKMS supporta i seguenti digest di messaggio.
-
SHA-1
-
SHA-224
-
SHA-256
-
SHA-384
-
SHA-512
Funzioni HMAC (Hash-based Message Authentication Code)
Generare chiavi HMAC (Hash-based Message Authentication Code) per le funzioni hash crittografiche. HMAC viene utilizzato per verificare l'integrità e l'autenticità dei dati applicando una chiave segreta con una funzione hash. Il provider JCE Dedicated Key Management supporta i seguenti algoritmi HMAC:
-
HmacSHA1 (dimensione massima dei dati in byte: 16288)
-
HmacSHA224 (dimensione massima dei dati in byte: 16256)
-
HmacSHA256 (dimensione massima dei dati in byte: 16288)
-
HmacSHA384 (dimensione massima dei dati in byte: 16224)
-
HmacSHA512 (dimensione massima dei dati in byte: 16224)
Codice CMAC (Cipher-based Message Authentication Code)
Genera codici CMAC (Cipher-based Message Authentication Code) utilizzando cifrature a blocchi (ad esempio AES) per produrre un codice di autenticazione che garantisca l'integrità e l'autenticità del messaggio. CMAC funziona in modo simile all'HMAC, ma utilizza una cifra chiave simmetrica per l'operazione di crittografia.
Il provider JCE Dedicated Key Management supporta l'algoritmo AESCMAC per la generazione CMAC.