J. C. E.
Sigle de 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 :
- Cryptage
- à 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 cryptage 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 cryptage 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 cryptage 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)
Exemple