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