Java Cryptography Extension.
Besoin
Fournir des fonctionnalités cryptographiques sensibles (non exportables en-dehors des USA).
Conception
La JCE est une extension standard de la Java Cryptography Architecture, offrant des fonctionnalités de :
- Chiffrement
- à une ou plusieurs passes
- appliqué à des flux non typés ou à des flux d'objets sérialisés
- Génération de clés symétriques (clé secrète) en plus des clés asymétriques de la Java Cryptography Architecture. Une telle clé secrète de chiffrement peut être transmise selon
deux techniques :
- l'enveloppe électronique (cryptée avec la clé publique du destinataire qui pourra la lire grâce à sa
clé privée)
- l'échange de clés, qui permet à deux parties de s'accorder sur un secret commun sans transmettre
d'information secrète.
- Contrôle d'Intégrité (via MAC)
La JCE intègre DES. Elle ne peut être exportée en-dehors
des
USA.
Implémentation
La JCE inclut le package javax.crypto
:
- le chiffrage (encryption) est assuré par la classe
Cipher
- les flux cryptés non typés sont réalisés via les classes
CipherInputStream
, et CipherOutputStream
- les flux cryptés d'objets sérialisés sont réalisés via la classe
SealedObject
- Génération de clés symétriques (clé secrète via les classes
KeyGenerator
,
SecretKey
, SecretKeyFactory
) en plus des clés asymétriques de la Java Cryptography Architecture (java.security.KeyPairGenerator
). Une telle
clé secrète de chiffrement peut être transmise selon deux techniques :
- l'enveloppe électronique (cryptée avec la clé publique du destinataire qui pourra la lire grâce à sa
clé privée)
- l'échange de clés (
KeyAgreement
), qui permet à deux parties de s'accorder sur un secret
commun sans transmettre d'information secrète.
- Contrôle d'Intégrité (via MAC)