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 generatePublic in RSAKeyFactory e EcKeyFactory ed è 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 generatePublic nel file RSAKeyFactory. 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 generatePublic nel file EcKeyFactory. 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.