Cryptographie 16 prouvées CT · TCB crypto 12/12 sur le binaire livré
🔐
Preuve sur le binaire livré · vérifiable en data room
Le TCB cryptographique de CORTEX NK™ est intégralement prouvé Constant-Time sur la toolchain de production exacte (gcc-aarch64-elf 16.1.0 -O2 bare-metal) : les 12 primitives crypto du TCB BL2 sont prouvées CT au niveau binaire sur le binaire réellement livré, et non sur une simple toolchain d’analyse. Aucun autre micronoyau formellement vérifié (seL4, Muen, ProvenCore, PikeOS, Green Hills INTEGRITY, CertiKOS) ne publie une preuve CT au binaire sur sa toolchain de production, couplée à un TCB minimal (2 287 LOC, ×3,8 plus petit que seL4).
Stack crypto CORTEX NK™ : 16 primitives BINAIRE prouvées Constant-Time au niveau binaire ARM64 + x86-64 via Binsec/Rel (méthodologie CT-slice + composition stricte HACL*), dont l’intégralité des 12 primitives du TCB cryptographique BL2 re-prouvées sur la toolchain de production exacte (gcc-aarch64-elf -O2 bare-metal — campagne CFVL-BINSEC-039/040/041). Les 16 primitives prouvées CT sont en outre toutes benchmarkées en performance (implémentation HACL*, Tableau 3) ; + 8 primitives mesurées via liboqs 0.10.1 + libsodium dont 5 PQC additionnelles. Standards FIPS 203/204/205 + Round 4 NIST (BIKE, HQC). Mesures sur Apple Silicon · clang -O2 · N=1000 · CLOCK_MONOTONIC_RAW. HQC-256 (Round 4 NIST, candidat français INRIA/UVSQ) inclus et mesuré. 36 rapports CFVL-BINSEC · 20 661 lignes d’évidence formelle CT/NI reproductible (snapshot Sprints 65-88 ; évidence étendue depuis : BINSEC-039 à 045).
Primitives BINAIRE CT
16
Binsec/Rel · cross-arch · 72+ preuves
TCB crypto sur toolchain de PROD
12/12
gcc-O2 bare-metal · binaire BL2 livré
Primitives prouvées CT — toutes benchmarkées
16
perf HACL* (Tableau 3) · + 8 réf. liboqs/libsodium (dont 5 PQC)
Double approche audit-grade. Les preuves CT BINAIRE garantissent mathématiquement l’absence de fuite par canal temporel au niveau machine. Point distinctif : les 12 primitives du TCB cryptographique sont prouvées Constant-Time sur la toolchain de production exacte — la preuve porte sur le binaire réellement livré, pas sur une toolchain d’analyse. HQC-256, candidat souverain français INRIA/UVSQ, mesuré à 4,72 ms en encapsulation ; ChaCha20-Poly1305 le plus rapide à 310,90 ns.
Tableau 1 — 8 primitives benchmarkées performance
Mesures temporelles réelles via liboqs 0.10.1 + libsodium · N=1000 · CLOCK_MONOTONIC_RAW · mean/p50/p95/p99. Standards FIPS 203/204/205 + Round 4 NIST.
| Primitive | Standard / source | mean | Classe |
| Cryptographie symétrique et dérivation |
| ChaCha20-Poly1305 | RFC 8439 · libsodium · encrypt 64B | 310,90 ns | AEAD |
| HMAC-SHA256 | RFC 2104 · libsodium · 64B input | 2 787,50 ns | MAC |
| HKDF-SHA256 | RFC 5869 · Extract + Expand 32B | 3 805,84 ns | KDF |
| Post-quantique — encapsulation (KEM) |
| ML-KEM-1024 | FIPS 203 · NIST PQC · encaps | 29,45 µs | PQC |
| BIKE-L3 | Round 4 NIST · diversification · encaps | 1 326,91 µs | PQC |
| HQC-256 🇫🇷 | Round 4 NIST · INRIA France · encaps | 4 720,30 µs | PQC · FR |
| Post-quantique — signature |
| ML-DSA-87 | FIPS 204 · NIST PQC · sign | 494,96 µs | PQC |
| SLH-DSA-256s | FIPS 205 · réserve ultime · sign | 481,94 ms | PQC |
Tableau 2 — 16 primitives BINAIRE prouvées Constant-Time
Preuves formelles de Constant-Time au niveau binaire ARM64 + x86-64 via Binsec/Rel. Méthodologie CT-slice + composition stricte HACL* INRIA Prosecco. Reproductibilité via data room / sur demande. 36 rapports CFVL-BINSEC associés (snapshot Sprints 65-88).
| Primitive | Usage production | Sprint · CFVL | Statut | Toolchain PROD |
| Hashage — SHA / Keccak |
| SHA-256 (1 bloc) | TLS, JWT, signatures | S65 · BINSEC-009 | UTILISÉE | ✓ PROD |
| SHA-256 multi-bloc (4 bl.) | Hachage volumes | S83 · BINSEC-025 | UTILISÉE | ✓ PROD |
| SHA-512 (2 blocs) | RFC 6234, certificats | S84 · BINSEC-027 | CATALOGUE | ✓ PROD |
| SHA-3 / Keccak-256 | Ethereum, NIST SP 800-185 | S69 · BINSEC-013 | CATALOGUE | ✓ PROD |
| Authentification de messages (MAC) |
| HMAC-SHA-256 | TLS, JWT, capability MAC | S66 · BINSEC-010 | UTILISÉE | ✓ PROD |
| HMAC-SHA-512 | IPsec, signatures longues | S84 · BINSEC-028 | CATALOGUE | ✓ PROD |
| HMAC-BLAKE2b-32 | Argon2, WireGuard | S83 · BINSEC-026 | CATALOGUE | ✓ PROD |
| Poly1305-32 | AEAD authentication (userspace) | S67 · BINSEC-011 | UTILISÉE | hors TCB |
| Chiffrement et AEAD |
| ChaCha20 | Chiffrement flux — userspace | S68 · BINSEC-012 | UTILISÉE | hors TCB |
| ChaCha20-Poly1305 AEAD | TLS 1.3, WireGuard, Signal — userspace | S79 · BINSEC-022 | UTILISÉE | hors TCB |
| Dérivation de clé (KDF) |
| HKDF-extract / SHA-256 | Dérivation clés TLS 1.3 | S70 · BINSEC-014 | UTILISÉE | ✓ PROD |
| HKDF-expand / SHA-256 | Dérivation clés TLS 1.3 | S77-B · BINSEC-021 | UTILISÉE | ✓ PROD |
| HKDF-expand / SHA-512 | KDF haute sécurité | S85.1 · BINSEC-029 | CATALOGUE | ✓ PROD |
| Asymétrique — échange de clé, signature, PQC |
| Ed25519 SIGN 🔒 | Secure Boot, signatures TLS / JWT | S89 · BINSEC-039 | UTILISÉE | ✓ PROD |
| X25519 ECDH ⭐ | TLS 1.3, WireGuard, Signal, SSH | S85.2 · BINSEC-030/041 | UTILISÉE | ✓ PROD |
| FrodoKEM-64 KEM 🔬 | Recherche · variante test (prod 640 → BINSEC-045) | S88 · BINSEC-036 | CT BINAIRE (n=64) | hors TCB |
Colonne Toolchain PROD — ✓ PROD : primitive du TCB crypto BL2 prouvée CT sur la toolchain de production exacte (gcc-aarch64-elf -O2 bare-metal, binaire livré) · hors TCB : primitive userspace ou variante-test (preuve CT au binaire sur toolchain d’analyse, hors des 12 primitives du TCB crypto BL2). Bilan : 12 / 12 du TCB cryptographique prouvées sur le binaire livré (vagues CFVL-BINSEC-039 / 040 / 041).
Tableau 3 — performance mesurée des primitives prouvées CT
Mesure de l’implémentation HACL* — celle prouvée CT au Tableau 2 — sur le même rig que le Tableau 1 : Apple Silicon M2 · clang -O2 · CLOCK_MONOTONIC_RAW · warmup 1 000 + 10 000 mesures · mean / p99. FrodoKEM mesuré au paramètre de production 640 (le n=64 du Tableau 2 est une variante de test, non benchmarkée). Réf. CFVL-BENCH-CT16-001 v0.1.
| Primitive (impl HACL*) | Entrée | mean | p99 | unité |
| Hashage |
| SHA-256 | 64 B | 485 | 625 | ns |
| SHA-256 (4 blocs) | 256 B | 1 196 | 1 459 | ns |
| SHA-512 (2 blocs) | 128 B | 588 | 666 | ns |
| SHA3-256 | 64 B | 764 | 834 | ns |
| Authentification de messages (MAC) |
| HMAC-SHA-256 | 64 B | 1 022 | 1 084 | ns |
| HMAC-SHA-512 | 64 B | 968 | 1 041 | ns |
| HMAC-BLAKE2b | 64 B | 593 | 667 | ns |
| Poly1305 | 64 B | 72 | 125 | ns |
| Chiffrement et AEAD (userspace) |
| ChaCha20 | 1 KiB | 1 437 | 1 542 | ns |
| ChaCha20-Poly1305 enc | 1 KiB | 2 228 | 2 292 | ns |
| Dérivation de clé (KDF) |
| HKDF-extract / SHA-256 | 32 B | 709 | 750 | ns |
| HKDF-expand / SHA-256 | 32→32 B | 717 | 791 | ns |
| HKDF-expand / SHA-512 | 32→32 B | 933 | 1 000 | ns |
| Asymétrique |
| Ed25519 sign | msg 32 B | 38,33 | 56,46 | µs |
| X25519 scalarmult | 1 op | 26,82 | 36,25 | µs |
| Post-quantique — FrodoKEM-640 (liboqs, hors TCB) |
| FrodoKEM-640 keygen | n=640 | 1 233 | 1 414 | µs |
| FrodoKEM-640 encaps | n=640 | 1 367 | 1 458 | µs |
| FrodoKEM-640 decaps | n=640 | 1 360 | 1 466 | µs |
Lecture. Mesure de performance de l’implémentation HACL* réellement livrée (celle prouvée CT au Tableau 2), sur host dev Apple Silicon — distincte de la cible bare-metal aarch64-elf de production, et sans rapport avec le statut CT/TCB (12/12 inchangé). Pour les 3 primitives communes au Tableau 1 (ChaCha20-Poly1305, HMAC-SHA256, HKDF), le Tableau 1 reporte la référence libsodium et ce tableau l’implémentation HACL* livrée — les écarts reflètent des implémentations et des tailles d’entrée distinctes (à 64 B, HMAC-SHA256 HACL* est même plus rapide que la référence libsodium). Réf. CFVL-BENCH-CT16-001 v0.1, vérifiable en data room.
$ clang -O2 -o bench_nk_crypto bench_nk_crypto.c -loqs -lsodium -lcrypto && ./bench_nk_crypto
===========================================================================
Stack crypto CORTEX NK — 16 BINAIRE CT (toutes benchmarkées, Tab.3) + 8 réf liboqs
===========================================================================
[1/2] 16 primitives BINAIRE prouvées Constant-Time (Binsec/Rel)
SHA-256 (1bl, 4bl) · SHA-512 · SHA-3/Keccak-256
HMAC-SHA-256 · HMAC-SHA-512 · HMAC-BLAKE2b · Poly1305
ChaCha20 · ChaCha20-Poly1305 AEAD
HKDF-extract · HKDF-expand SHA256 · HKDF-expand SHA512
Ed25519 SIGN · X25519 ECDH
────────────────────────────────────────────────────────────
✓ 12/12 du TCB CRYPTO prouvées sur TOOLCHAIN DE PROD (gcc-O2 baremetal, vagues 0+1+2)
X25519 ⭐ CT au binaire (toolchain prod) · FrodoKEM CT au binaire (n=64 → prod 640, BINSEC-045)
────────────────────────────────────────────────────────────
[2/2] 8 primitives benchmarkées performance
Primitive │ mean │ unit
────────────────────────────────────┼───────────────────┼───────
ChaCha20-Poly1305 encrypt 64B │ 310,90 │ ns
HMAC-SHA256 64B │ 2 787,50 │ ns
HKDF-SHA256 Extract+Expand 32B │ 3 805,84 │ ns
ML-KEM-1024 encaps [FIPS 203] │ 29,45 │ µs
ML-DSA-87 sign [FIPS 204] │ 494,96 │ µs
BIKE-L3 encaps [Round 4] │ 1 326,91 │ µs
HQC-256 encaps 🇫🇷 [Round 4] │ 4 720,30 │ µs
SLH-DSA-256s sign [FIPS 205] │ 481,94 │ ms
===========================================================================
✅ 16/16 preuves CT BINAIRE PASS · 8/8 benchmarks PASS · 0 crash
✅ 12/12 du TCB CRYPTO prouvées sur toolchain de PROD — couverture intégrale
✅ 36 rapports CFVL-BINSEC · 20 661 lignes évidence CT/NI (snapshot 65-88)
Lecture audit-grade. CORTEX NK™ publie deux propriétés cryptographiques complémentaires : (1) 16 primitives BINAIRE prouvées Constant-Time via Binsec/Rel au niveau machine ARM64 + x86-64 ; (2) les 16 primitives prouvées CT sont toutes benchmarkées en performance (impl HACL*, Tableau 3), complétées par 8 primitives mesurées via liboqs 0.10.1 + libsodium dont 5 PQC (Apple Silicon · N=1000 · CLOCK_MONOTONIC_RAW). Point distinctif : le TCB cryptographique de BL2 — ses 12 primitives — est intégralement prouvé Constant-Time sur la toolchain de production exacte (gcc-aarch64-elf 16.1.0 -O2 bare-metal — campagne CFVL-BINSEC-039 / 040 / 041). Les preuves portent sur le binaire réellement livré, et non sur une simple toolchain d’analyse — il n’y a plus d’asymétrie de toolchain dans le périmètre du TCB crypto BL2. Cette propriété concerne la propriété Constant-Time du TCB cryptographique ; elle ne préjuge pas des autres propriétés du noyau (isolation, non-interférence, WCET), traitées par des chantiers distincts. Les primitives userspace (ChaCha20, Poly1305, ChaCha20-Poly1305) et la variante-test FrodoKEM-64 sont prouvées CT au binaire sur la toolchain d’analyse, hors des 12 primitives du TCB crypto. X25519 ECDH (Sprint 85.2) est prouvé CT au binaire sur la toolchain de production exacte (BINSEC-041) ; FrodoKEM est prouvé CT au binaire de la variante test n=64 (Sprint 88, BINSEC-036) puis au paramètre de production FrodoKEM-640 / NIST L1 (BINSEC-045) — vérifiables en data room sur demande, complémentaires des travaux Formosa/libcrux côté ML-KEM. PQC de production (hors TCB) : les noyaux sensibles au secret de ML-KEM-768 (FIPS 203, 10 noyaux, BINSEC-043/044, compress DIV-clean) et de FrodoKEM-640 (NIST L1, 6 noyaux, comparaison FO confirmée CT — correctif GJN2020) sont vérifiés CT au binaire ARM64 de prod, en analyse indépendante (synthèses CFVL-SYNTHESE-MLKEM-001 / FRODO-001). Aucun concurrent micronoyau (seL4, ProvenRun, Green Hills, Wind River, SYSGO) ne publie une preuve CT au binaire sur sa toolchain de production.