%

GPG : Création de clé à Courbes Elliptiques Ed25519

Article publié, le et modifié le
6 minutes de lecture

Cet article contient 1118 mots.
Source brute de l'article :
Commit version : d59115a

Description

Il est en effet possible de créer des clés GPG en utilisant l’algorithme à courbe elliptique ED25519.

Ce tutoriel fait suite à ce guide de bonnes pratiques de création ; d’ailleurs une fois la création terminée, referez-vous y à nouveau.

Avant, assurez-vous d’avoir correctement sécurisé votre configuration GPG !

Création parfaite de clés GPG

Informations importantes

Bien veiller à choisir à la création de clé, l’option (9) ECC et ECC - et ensuite, le type de courbe elliptique désiré - option (1) Curve 25519.

Création en mode console

Pour l’instant, c’est la seule possibilité de faire. Pour cela, il faut utiliser l’option --full-gen-key suivie de l’option --expert.

Code : sh

$ gpg --full-gen-key --expert
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Sélectionnez le type de clef désiré :
   (1) RSA et RSA (par défaut)
   (2) DSA et Elgamal
   (3) DSA (signature seule)
   (4) RSA (signature seule)
   (7) DSA (indiquez vous-même les capacités)
   (8) RSA (indiquez vous-même les capacités)
   (9) ECC et ECC
  (10) ECC (signature seule)
  (11) ECC (indiquez vous-même les capacités)
  (13) Clef existante
Quel est votre choix ? 9
Sélectionnez le type de courbe elliptique désiré :
   (1) Curve 25519
   (3) NIST P-256
   (4) NIST P-384
   (5) NIST P-521
   (6) Brainpool P-256
   (7) Brainpool P-384
   (8) Brainpool P-512
   (9) secp256k1
Quel est votre choix ? 1
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
         0 = la clef n'expire pas
      <n>  = la clef expire dans n jours
      <n>w = la clef expire dans n semaines
      <n>m = la clef expire dans n mois
      <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 2y
La clef expire le Thu Jan  7 14:58:16 2021 CET
Est-ce correct ? (o/N) o

GnuPG doit construire une identité pour identifier la clef.

Nom réel : Stéphane HUC
Adresse électronique : ***@stephane-huc.net
Commentaire :
Vous utilisez le jeu de caractères « utf-8 ».
Vous avez sélectionné cette identité :
    « Stéphane HUC <***@stephane-huc.net> »

Changer le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? o
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.
gpg: clef 0x*********** marquée de confiance ultime.
gpg: revocation certificate stored as '/home/***/.gnupg/openpgp-revocs.d/***.rev'
les clefs publique et secrète ont été créées et signées.

pub   ed25519/0x*********** 2019-01-08 [SC] [expire : 2021-01-07]
 Empreinte de la clef = **** **** **** **** **** ****
uid                              Stéphane HUC <***@stephane-huc.net>
sub   cv25519/0x********** 2019-01-08 [E] [expire : 2021-01-07]

Modification de clé

Pour modifier une clé GPG, on utilise l’option --edit-key toujours suivie de l’option --expert.

Création d’une sous clé

L’action à utiliser est : addkey

Veillez à bien choisir l’option (10) ECC (signature seule) puis l’option (1) Curve 25519.

Code : sh

$ gpg2 --edit-key --expert "fingerprint"
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

La clef secrète est disponible.

sec  ed25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : SC
     confiance : ultime        validité : ultime
ssb  cv25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : E
[  ultime ] (1). Nom Prenom <email@domain.tld>

gpg> addkey
Sélectionnez le type de clef désiré :
   (3) DSA (signature seule)
   (4) RSA (signature seule)
   (5) Elgamal (chiffrement seul)
   (6) RSA (chiffrement seul)
   (7) DSA (indiquez vous-même les capacités)
   (8) RSA (indiquez vous-même les capacités)
  (10) ECC (signature seule)
  (11) ECC (indiquez vous-même les capacités)
  (12) ECC (chiffrement seul)
  (13) Clef existante
Quel est votre choix ? 10
Sélectionnez le type de courbe elliptique désiré :
   (1) Curve 25519
   (3) NIST P-256
   (4) NIST P-384
   (5) NIST P-521
   (6) Brainpool P-256
   (7) Brainpool P-384
   (8) Brainpool P-512
   (9) secp256k1
Quel est votre choix ? 1
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
         0 = la clef n'expire pas
      <n>  = la clef expire dans n jours
      <n>w = la clef expire dans n semaines
      <n>m = la clef expire dans n mois
      <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0)
La clef n'expire pas du tout
Est-ce correct ? (o/N) o
Faut-il vraiment la créer ? (o/N) o
De nombreux octets aléatoires doivent être générés. Vous devriez faire
autre chose (taper au clavier, déplacer la souris, utiliser les disques)
pendant la génération de nombres premiers ; cela donne au générateur de
nombres aléatoires une meilleure chance d'obtenir suffisamment d'entropie.

sec  ed25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : SC
     confiance : ultime        validité : ultime
ssb  cv25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : E
ssb  ed25519/0x****************
     créé : 2020-01-30  expire : jamais      utilisation : S
[  ultime ] (1). Nom Prenom <email@domain.tld>

gpg> save

Gestion des préférences de Hash

L’action à utiliser est : setpref SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed

Code : sh

$ gpg2 --edit-key --expert "fingerprint"
gpg (GnuPG) 2.2.12; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

La clef secrète est disponible.

sec  ed25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : SC
     confiance : ultime        validité : ultime
ssb  cv25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : E
ssb  ed25519/0x****************
     créé : 2020-01-30  expire : jamais      utilisation : S
[  ultime ] (1). Nom Prenom <email@domain.tld>

gpg> setpref SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed
Définir la liste de préférences en :
     Chiffrement : AES256, AES192, AES, 3DES
     Hachage : SHA512, SHA384, SHA256, SHA1
     Compression : ZLIB, BZIP2, ZIP, Non compressé
     Fonctionnalités : MDC, Serveur de clefs sans modification
Faut-il vraiment mettre à jour les préférences ? (o/N) o

sec  ed25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : SC
     confiance : ultime        validité : ultime
ssb  cv25519/0x****************
     créé : 2020-01-30  expire : 2022-01-29  utilisation : E
ssb  ed25519/0x****************
     créé : 2020-01-30  expire : jamais      utilisation : S
[  ultime ] (1). Nom Prenom <email@domain.tld>

gpg> save

Autres actions utiles

Et, maintenant, pensez à :