← Retour à la documentation

Algorithmes cryptographiques utilisés dans Gankpo

Briques cryptographiques modernes, standardisées et alignées avec les recommandations de l'ANSSI

Gankpo s'appuie exclusivement sur des briques cryptographiques modernes, standardisées et alignées avec les recommandations de l'ANSSI et des standards industriels. Le cœur de l'implémentation repose sur les algorithmes suivants :

1. Hachage (Hash)

PrincipalBLAKE3
  • • Calcul de l'empreinte du payload (contenu du fichier)
  • • Calcul du header checksum
  • • Dérivation de nonce dans certains flux
  • • Support de la comparaison rapide de fichiers et de l'intégrité interne

Bibliothèque Rust: blake3

SecondaireSHA-256
  • • Utilisé notamment pour le pinning SPKI dans la PKI (pin_sha256)
  • • Support de certificats X.509 et de certaines intégrations externes

Bibliothèque Rust: sha2

2. Signature numérique

Principal

Ed25519 (courbe elliptique moderne)

Signature du GKP complet :

header || metadata || encrypted_payload || payload_hash

Clé publique

32 octets

Signature

64 octets

Bibliothèque Rust

ed25519-dalek

Garantit l'authenticité de l'original électronique et l'identité du signataire

3. Chiffrement AEAD (Authenticated Encryption with Associated Data)

RecommandéAES-256-GCM

Chiffrement du payload (contenu du fichier)

Nonce96 bits (12 octets)
Clé256 bits (32 octets)
AADheader + metadata

Bénéficie du support matériel (AES-NI) sur de nombreuses plateformes

Bibliothèque Rust: aes-gcm

AlternatifChaCha20-Poly1305

Alternative moderne à AES-256-GCM

Nonce96 bits (12 octets)
Clé256 bits (32 octets)

Particulièrement adapté aux environnements sans accélération AES

Bibliothèque Rust: chacha20poly1305

4. Dérivation de clés (KDF)

Master KeyArgon2id

Dérivation maître depuis un mot de passe

Paramètresm=256MiB, t=3, p=1, v=0x13
Salt32 octets
Sortie32 octets (master_key)

Résistant aux attaques GPU/ASIC (conforme OWASP)

Bibliothèque Rust: argon2

Content KeyHKDF

Dérivation de clé de contenu

Entréemaster_key (Argon2id)
Saltsalt_kdf (32 octets)
Info"GKP content v2.1"
Sortie32 octets (content_key)

Bibliothèque Rust: hkdf

5. Encodage / Sérialisation

Standard

CBOR canonique (RFC 8949 §4.2)

Sérialisation des métadonnées GKP

  • Tri lexicographique strict des clés
  • Encodage minimal, UTF-8 strict
  • Permet une représentation stable et vérifiable des métadonnées

Bibliothèques Rust: ciborium, serde_cbor

6. Vérification d'intégrité

Complémentaire

CRC32

  • • Détection rapide de corruption sur certaines structures
  • • Utilisé en complément de BLAKE3 pour le header checksum
  • • Contrôles légers et rapides

Le CRC32 offre une détection de corruption basique et ultra-rapide, tandis que BLAKE3 assure la vérification cryptographique forte.

7. PKI & horodatage

StandardX.509
  • • Gestion de certificats PKI, chaînes de certificats
  • • Validation OCSP/CRL
  • • Extended Key Usage (EKU) adaptés à la signature de documents

Bibliothèques Rust: x509-parser, der-parser

HorodatageRFC 3161 - TSA

Time Stamping Authority

  • • Token TSA encodé en DER
  • • Horodatage du hash BLAKE3 du payload
  • • Prouve qu'à un instant donné, le fichier possédait cette empreinte

Garantit la date de création ou de signature du document

Résumé par fonction

FonctionAlgorithme principalAlternative
HachageBLAKE3SHA-256
SignatureEd25519
Chiffrement AEADAES-256-GCMChaCha20-Poly1305
KDF (mot de passe)Argon2id
KDF (contenu)HKDF
SérialisationCBOR canonique
PKI / CertificatsX.509

Choix de conception

Pourquoi ces algorithmes ?

BLAKE3

Plus rapide que SHA-256, parallélisable, sécurité moderne

Ed25519

Signatures rapides, clés courtes (32 octets), largement audité

AES-256-GCM / ChaCha20-Poly1305

Standards AEAD modernes, support matériel ou optimisés

Argon2id

Recommandé par l'OWASP pour la dérivation de mots de passe, résistant aux attaques GPU/ASIC

HKDF

Dérivation sûre de plusieurs clés à partir d'une clé maître unique

Conformité et bonnes pratiques

L'ensemble des choix algorithmiques est aligné sur les recommandations de l'ANSSI et les bonnes pratiques internationales pour les systèmes de preuve et de signature de documents.

Algorithmes cryptographiques - Gankpo