Spécifications techniques du format GKP 2.x
Format ouvert d'original électronique certifié, scellé et horodaté
1. Introduction au format GKP 2.x
GKP 2.x est un format ouvert d'original électronique. Il permet de transformer tout type de fichier numérique (documents, images, vidéos, audio, archives, etc.) en un conteneur certifié, scellé et horodaté, dont l'authenticité peut être vérifiée, y compris hors ligne.
L'objectif de GKP est de répondre à une question simple dans un contexte où l'IA générative, les deepfakes et les faux documents se multiplient :
« Comment continuer à faire confiance à un fichier numérique que je reçois, signe ou partage ? »
GKP 2.x définit :
- •une structure de conteneur (header, métadonnées, payload, signatures, horodatage)
- •un modèle de métadonnées
- •un modèle cryptographique (hachage, chiffrement, signature, horodatage)
- •un mécanisme d'identification (numéro GKP, manifeste)
- •un mode legacy pour prendre en charge les anciens fichiers
2. Objectifs du format
Le format GKP 2.x vise à :
Garantir l'intégrité
Détecter toute modification, même minime, du contenu
Attester l'authenticité
Prouver qui a scellé l'original électronique, avec quelle identité
Attester la date
Associer un horodatage fiable issu d'une autorité de temps (TSA)
Rester utilisable hors ligne
Permettre la vérification de base sans connexion Internet
Assurer l'interopérabilité
Permettre à différentes implémentations de lire et vérifier les mêmes fichiers
Être extensible
Permettre l'ajout d'informations complémentaires sans casser la compatibilité
3. Structure générale d'un fichier GKP 2.x
Un fichier GKP 2.x est un conteneur structuré qui regroupe plusieurs composantes :
1. Header
- • Version du format (ex.
2.1) - • Magic bytes / identifiant de format
- • Flags (chiffré / non chiffré, legacy / non legacy, présence d'horodatage, etc.)
- • Informations minimales pour que le lecteur sache comment interpréter le reste
2. Métadonnées (Metadata) – CBOR canonique
Sérialisées en CBOR canonique (RFC 8949 §4.2)
- • Clés triées de manière lexicographique
- • Encodage strict en UTF-8
Contiennent notamment :
- • Nom de fichier, type MIME, taille
- • Algorithmes utilisés (hachage, chiffrement, signature)
- • Informations de contexte (optionnelles) : organisation, utilisateur, description, tags
- • Paramètres cryptographiques (salts, KDF, etc.)
- • Références PKI / TSA si présentes
3. Payload (contenu du fichier d'origine)
- • Contenu du fichier à protéger (PDF, image, vidéo, audio, DOCX, ZIP, etc.)
- • Stocké en clair ou chiffré selon la configuration
- • Dans le cas chiffré, le payload est chiffré en mode AEAD (AES-256-GCM ou ChaCha20-Poly1305), avec les métadonnées utilisées comme AAD
4. Signature(s) numérique(s)
- • Basées sur Ed25519
- • Signent l'ensemble :
header || metadata || encrypted_payload || payload_hash - • Prouvent l'authenticité de l'original électronique et l'identité du signataire
5. Horodatage (TSA, optionnel)
- • Jeton d'horodatage (RFC 3161) encodé en DER
- • Porte sur l'empreinte BLAKE3 du payload (ou d'une structure englobante)
- • Permet de prouver qu'à un instant donné, un fichier possédait cette empreinte
6. Manifeste GKP (GkpManifest)
Structure logique qui regroupe des informations d'identification :
- • Numéro GKP lisible
- • Indicateur legacy / non legacy
- • Références de contexte (organisation, utilisateur, etc.)
Le numéro GKP a par exemple la forme :
GKP-YYYYMM-ORGCODE-USERCODE-XXXXCe manifeste peut être embarqué dans les métadonnées et/ou reconstruit à partir des champs.
4. Modèle de métadonnées (vue simplifiée)
Les métadonnées GKP peuvent inclure, entre autres :
Informations sur le fichier original
- • file_name
- • mime_type
- • file_size
- • created_at, imported_at
Algorithmes utilisés
- • hash_algo (ex. blake3)
- • cipher_algo (ex. aes-256-gcm)
- • signature_algo (ex. ed25519)
- • Paramètres KDF (Argon2id, HKDF)
Contexte d'émission
- • Organisation émettrice (code interne, nom)
- • Identifiant de l'utilisateur
- • Rôle ou service
Informations de partage
- • Politique de partage (public / privé / restreint)
- • Paramètres de protection par mot de passe
Références PKI / TSA
- • Empreinte du certificat signataire
- • Références OCSP/CRL éventuelles
- • Token TSA (ou référence à celui-ci)
La structure détaillée et les clés exactes peuvent être exposées dans une documentation plus fine, mais les métadonnées sont :
- ✓Sérialisées en CBOR canonique
- ✓Strictement structurées
- ✓Conçues pour être vérifiables et interopérables
5. Cycle de vie d'un GKP
5.1 Création
- 1.L'utilisateur sélectionne un fichier
- 2.Gankpo calcule l'empreinte BLAKE3 du contenu
- 3.Les métadonnées sont préparées (CBOR canonique, tri des clés)
- 4.Si le fichier doit être chiffré :
- • une clé maître est dérivée (Argon2id)
- • une clé de contenu est dérivée (HKDF)
- • le payload est chiffré en AES-256-GCM ou ChaCha20-Poly1305
- 5.Le header, les métadonnées et le payload (chiffré ou non) sont assemblés
- 6.Le tout est signé avec Ed25519
- 7.Optionnellement, un jeton TSA RFC 3161 est obtenu et intégré
- 8.Un numéro GKP lisible (ex.
GKP-202511-PG-USR01-0042) est généré et enregistré dans le manifeste
5.2 Vérification
- 1.Le lecteur (Gankpo Reader, Gankpo Suite, autre implémentation) ouvre le fichier GKP
- 2.Il vérifie la cohérence du header et des métadonnées
- 3.Il recalcule l'empreinte BLAKE3 du payload
- 4.Il vérifie la signature Ed25519 (intégrité + authenticité)
- 5.S'il y a un horodatage TSA, il vérifie le token RFC 3161 et la chaîne de certificats
- 6.Il présente un diagnostic clair : fichier intact / modifié, signature valide / invalide, horodatage valide / expiré, etc.
5.3 Support legacy
- • Les premiers fichiers GKP (versions antérieures) peuvent être interprétés en mode legacy
- • Dans ce cas, un manifeste partiel peut être reconstruit à la volée, avec un flag
legacy = true - L'objectif est d'assurer que :
- ✓ les anciens fichiers restent lisibles
- ✓ la migration vers GKP 2.x est progressive
7. Interopérabilité et extensions
GKP 2.x est conçu pour être implémenté dans :
- • Gankpo Suite
- • Gankpo Reader
- • D'autres bibliothèques ou services à venir
Le format et les algorithmes sont documentés pour permettre :
- • L'intégration dans des systèmes tiers (justice, administration, banque, médias…)
- • La validation par des auditeurs externes
- • La publication d'outils open source de vérification
Format ouvert et interopérable
Le format GKP 2.x est un standard ouvert. Toute organisation peut développer ses propres outils de création, lecture et validation de fichiers GKP en suivant cette spécification, favorisant ainsi l'adoption et la confiance dans l'écosystème numérique mondial.
8. Références officielles (ANSSI & archivage électronique)
Le format GKP et la suite Gankpo ont été conçus en s'inspirant des recommandations de l'ANSSI et des référentiels publics sur les mécanismes cryptographiques, les signatures électroniques, l'horodatage et l'archivage électronique. Gankpo n'est pas un produit certifié ANSSI, mais ses choix techniques (chiffrement AEAD, signatures à clé publique, métadonnées structurées, PKI, horodatage) s'inscrivent dans ces bonnes pratiques.
Mécanismes cryptographiques – Règles et recommandations (ANSSI)
Mécanismes cryptographiques recommandés, dimensionnement et sélection.
Consulter sur cyber.gouv.frGuide de sélection d'algorithmes cryptographiques (ANSSI)
Guide officiel pour choisir les algorithmes de chiffrement, signature et hachage et les tailles de clés.
Télécharger le PDFGuide de sélection du niveau des signatures et des cachets électroniques (ANSSI, eIDAS)
Niveaux de signature / cachet, archivage électronique à valeur probatoire, horodatage.
Télécharger le PDFLes services de confiance (ANSSI)
Prestataires de services de confiance qualifiés (signature, cachet, horodatage, listes de confiance).
Consulter sur cyber.gouv.frArchivage électronique sécurisé – Politique et pratiques (P2A, DCSSI)
Référentiel historique pour l'archivage électronique sécurisé dans la sphère publique (DCSSI, ancêtre de l'ANSSI).
Télécharger le PDFRéférentiel "Force probante des documents de santé" (esante.gouv.fr)
Référentiel sur la force probante des documents de santé, originaux électroniques, signatures et horodatage, en cohérence avec eIDAS et l'ANSSI.
Consulter sur esante.gouv.fr