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)
- • 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
- • 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
Ed25519 (courbe elliptique moderne)
Signature du GKP complet :
header || metadata || encrypted_payload || payload_hashClé 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)
Chiffrement du payload (contenu du fichier)
Bénéficie du support matériel (AES-NI) sur de nombreuses plateformes
Bibliothèque Rust: aes-gcm
Alternative moderne à AES-256-GCM
Particulièrement adapté aux environnements sans accélération AES
Bibliothèque Rust: chacha20poly1305
4. Dérivation de clés (KDF)
Dérivation maître depuis un mot de passe
Résistant aux attaques GPU/ASIC (conforme OWASP)
Bibliothèque Rust: argon2
Dérivation de clé de contenu
Bibliothèque Rust: hkdf
5. Encodage / Sérialisation
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é
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
- • 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
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
| Fonction | Algorithme principal | Alternative |
|---|---|---|
| Hachage | BLAKE3 | SHA-256 |
| Signature | Ed25519 | — |
| Chiffrement AEAD | AES-256-GCM | ChaCha20-Poly1305 |
| KDF (mot de passe) | Argon2id | — |
| KDF (contenu) | HKDF | — |
| Sérialisation | CBOR canonique | — |
| PKI / Certificats | X.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.