Cryptographie en Java. Classe KeyPair

Bonjour, Habr! Je vous présente la traduction de 6, 7 et 8 articles de Jakob Jenkov à partir d'une série d'articles pour les débutants qui souhaitent apprendre les bases de la cryptographie en Java.


Table des matiĂšres:


  1. Cryptographie Java
  2. Chiffrement Java
  3. Messagedigest
  4. Mac
  5. Signature
  6. Keypair
  7. Générateur de clés
  8. KeyPairGenerator
  9. Keystore
  10. Keytool
  11. Attestation
  12. CertificateFactory
  13. CertPath

Paire de clés


La classe KeyPair ( java.security.KeyPair ) est une paire de clés asymétriques (clé publique + clé privée). Une instance KeyPair est couramment utilisée en cryptographie asymétrique (cryptage ou signature de données). En rÚgle générale, une instance KeyPair est obtenue à partir du magasin de clés Java ou KeyPairGenerator, qui sera abordé plus loin dans cet article.


AccÚs à clé publique


Vous pouvez accéder à la clé publique d'une instance de KeyPair en appelant sa méthode getPublic () . Un exemple d'obtention d'une clé publique:


PublicKey publicKey = keyPair.getPublic(); 

AccÚs par clé privée


Vous pouvez également accéder à la clé privée de l'instance KeyPair en appelant sa méthode getPrivate () . Voici un exemple d'obtention d'une clé privée:


 PrivateKey privateKey = keyPair.getPrivate(); 

Générateur de clés


La classe KeyGenerator ( javax.crypto.KeyGenerator ) est utilisée pour générer des clés de chiffrement symétriques. Une clé de chiffrement symétrique est une clé utilisée pour chiffrer et déchiffrer des données à l'aide d'un algorithme de chiffrement symétrique.


Création d'une instance de KeyGenerator


Avant de pouvoir utiliser la classe KeyGenerator, vous devez créer une instance de KeyGenerator. Une instance de KeyGenerator est créée en appelant la méthode statique getInstance () , en tant que paramÚtre qui prend le nom de l'algorithme de chiffrement pour lequel la clé est créée. Voici un exemple de création d'une instance de KeyGenerator:


 KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); 

Cet exemple crée une instance de KeyGenerator qui peut générer des clés pour l'algorithme de chiffrement AES.


Initialisation de KeyGenerator


AprÚs avoir créé une instance de KeyGenerator, vous devez l'initialiser. L'initialisation d'une instance est réalisée en appelant la méthode init () . Exemple d'initialisation d'instance KeyGenerator:


 SecureRandom secureRandom = new SecureRandom(); int keyBitSize = 256; keyGenerator.init(keyBitSize, secureRandom); 

La méthode init () accepte deux paramÚtres: la longueur de clé et SecureRandom , qui est utilisé lors de la génération de clé.


Génération de clés


AprÚs avoir initialisé l'instance KeyGenerator, vous pouvez l'utiliser pour générer les clés. La génération de clés est effectuée en appelant la méthode generateKey () . Voici un exemple de génération d'une clé symétrique:


 SecretKey secretKey = keyGenerator.generateKey(); 

Générateur de paire de clés


La classe KeyPairGenerator ( java.security.KeyPairGenerator ) est utilisée pour générer des paires de clés asymétriques. Une paire de clés asymétriques se compose de deux clés: la premiÚre clé est généralement utilisée pour crypter les données, et la deuxiÚme clé est utilisée pour décrypter les données cryptées avec la premiÚre clé.


Clés publiques et privées


Le type de paire de clĂ©s asymĂ©trique le plus connu est le type de paire de clĂ©s de la forme: clĂ© publique + clĂ© privĂ©e. La clĂ© privĂ©e est utilisĂ©e pour chiffrer les donnĂ©es et la clĂ© publique est utilisĂ©e pour dĂ©chiffrer les donnĂ©es. En fait, vous pouvez Ă©galement crypter des donnĂ©es Ă  l'aide de la clĂ© publique et les dĂ©crypter Ă  l'aide de la clĂ© privĂ©e. La clĂ© privĂ©e est gĂ©nĂ©ralement gardĂ©e secrĂšte et la clĂ© publique peut ĂȘtre connue de tous. Ainsi, si Jack crypte certaines donnĂ©es avec sa clĂ© privĂ©e, tous ceux qui possĂšdent la clĂ© publique de Jack peuvent la dĂ©crypter.


Création d'une instance de KeyPairGenerator


Pour utiliser KeyPairGenerator, vous devez d'abord créer une instance de la classe KeyPairGenerator. Une instance de KeyPairGenerator est créée en appelant la méthode getInstance () . Voici un exemple de création d'une instance:


 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); 

La méthode getInstance () accepte le nom de l'algorithme de chiffrement à utiliser. Dans cet exemple, nous utilisons l'algorithme RSA.


Initialisation KeyPairGenerator


Selon l'algorithme, vous devrez peut-ĂȘtre initialiser une instance de KeyPairGenerator. KeyPairGenerator est initialisĂ© en appelant sa mĂ©thode initialize () . Exemple d'initialisation d'instance KeyPairGenerator:


 keyPairGenerator.initialize(2048); 

Dans cet exemple, un KeyPairGenerator est initialisé pour générer des clés de 2048 bits.


Génération de paires de clés


Pour générer une paire de clés à l'aide de KeyPairGenerator, la méthode generateKeyPair () est appelée. Voici un exemple de génération de paires de clés:


 KeyPair keyPair = keyPairGenerator.generateKeyPair(); 

Source: https://habr.com/ru/post/fr445560/


All Articles