{"id":1614,"date":"2026-06-03T05:08:53","date_gmt":"2026-06-03T05:08:53","guid":{"rendered":"https:\/\/cortexorigin.com\/?page_id=1614"},"modified":"2026-07-24T08:29:48","modified_gmt":"2026-07-24T08:29:48","slug":"secure-boot-tf-a-post-quantique","status":"publish","type":"page","link":"https:\/\/cortexorigin.com\/index.php\/secure-boot-tf-a-post-quantique\/","title":{"rendered":""},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>Menu ORIGIN\u2122<\/title>\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');\n \nbody { margin: 0; padding: 0; background: #F4F0EB; font-family: 'DM Sans', sans-serif; min-height: 600px; }\n \n\/* Wrapper full-width \u2014 isolation stricte (all:initial) + 100vw, identique \u00e0 .cidor-page\n   pour \u00e9chapper aux contraintes de largeur du th\u00e8me WordPress et garantir le bandeau jusqu'aux bords. *\/\n.menu-bar-wrapper {\n  all: initial;\n  display: block;\n  box-sizing: border-box;\n  width: 100vw;\n  position: relative;\n  left: calc(50% - 50vw);\n  background: #0C1829;\n  z-index: 9999;\n  font-family: 'DM Sans', sans-serif;\n}\n \n.menu-bar {\n  width: 100%;\n  background: #0C1829;\n  padding: 0 2rem;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  position: relative;\n  z-index: 100;\n  box-sizing: border-box;\n}\n.menu-logo {\n  font-family: 'DM Sans', sans-serif; font-weight: 700; font-size: 0.95rem;\n  color: #fff; padding: 1rem 0; letter-spacing: 0.03em; white-space: nowrap;\n}\n.menu-logo span { color: #C9A96E; }\n.menu-items { display: flex; align-items: center; gap: 0; }\n \n\/* \u2500\u2500 EAS \u00b7 EXPOSITION BUTTON (avec dropdown) \u2500\u2500 *\/\n.menu-eas-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-eas {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(201,169,110,0.12);\n  border: 1px solid rgba(201,169,110,0.35);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: #C9A96E;\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-eas::before {\n  content: '\u25ce';\n  font-size: 0.75rem;\n  opacity: 0.7;\n}\n.menu-eas::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-eas:hover {\n  background: rgba(201,169,110,0.25);\n  border-color: rgba(201,169,110,0.6);\n  color: #fff;\n}\n.menu-eas-wrap:hover .menu-dropdown-eas { display: block; }\n.menu-dropdown-eas {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 360px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n \n\/* \u2500\u2500 AETZU ARROW AI BUTTON \u2500\u2500 *\/\n.menu-aetzu {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(201,169,110,0.12);\n  border: 1px solid rgba(201,169,110,0.35);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: #C9A96E;\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-aetzu::before {\n  content: '\u2b21';\n  font-size: 0.75rem;\n  opacity: 0.7;\n}\n.menu-aetzu::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-aetzu-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-aetzu-wrap:hover .menu-dropdown-aetzu { display: block; }\n.menu-dropdown-aetzu {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 360px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n.menu-aetzu:hover {\n  background: rgba(201,169,110,0.25);\n  border-color: rgba(201,169,110,0.6);\n  color: #fff;\n}\n \n\/* \u2500\u2500 CORTEX WEB & API BUTTON \u2500\u2500 *\/\n.menu-webapi {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(201,169,110,0.12);\n  border: 1px solid rgba(201,169,110,0.35);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: #C9A96E;\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-webapi::before {\n  content: '\u25a3';\n  font-size: 0.75rem;\n  opacity: 0.7;\n}\n.menu-webapi::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-webapi-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-webapi-wrap:hover .menu-dropdown-webapi { display: block; }\n.menu-dropdown-webapi {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 360px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n.menu-webapi:hover {\n  background: rgba(201,169,110,0.25);\n  border-color: rgba(201,169,110,0.6);\n  color: #fff;\n}\n \n\/* \u2500\u2500 CORTEX APP\u00c2T & LEURRE BUTTON (avec dropdown \u2014 BAITS) \u2500\u2500 *\/\n.menu-appat-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-appat {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(201,169,110,0.12);\n  border: 1px solid rgba(201,169,110,0.35);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: #C9A96E;\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-appat::before {\n  content: '\u2b22';\n  font-size: 0.7rem;\n  opacity: 0.7;\n}\n.menu-appat::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-appat:hover {\n  background: rgba(201,169,110,0.25);\n  border-color: rgba(201,169,110,0.6);\n  color: #fff;\n}\n.menu-appat-wrap:hover .menu-dropdown-appat { display: block; }\n.menu-dropdown-appat {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 360px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n \n\/* \u2500\u2500 CORTEX NK BUTTON (avec dropdown) \u2500\u2500 *\/\n.menu-cortexnk-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-cortexnk {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(201,169,110,0.12);\n  border: 1px solid rgba(201,169,110,0.35);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: #C9A96E;\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-cortexnk::before {\n  content: '\u25c6';\n  font-size: 0.7rem;\n  opacity: 0.7;\n}\n.menu-cortexnk::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-cortexnk:hover {\n  background: rgba(201,169,110,0.25);\n  border-color: rgba(201,169,110,0.6);\n  color: #fff;\n}\n.menu-cortexnk-wrap:hover .menu-dropdown-cortexnk { display: block; }\n.menu-dropdown-cortexnk {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 360px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n \n\/* \u2500\u2500 BENCHMARK & V\u00c9RIFICATION BUTTON (m\u00e9ga-d\u00e9roulant fusionn\u00e9) \u2500\u2500 *\/\n.menu-benchmark-wrap {\n  position: relative;\n  display: flex;\n  align-items: center;\n  padding: 1rem 0;\n  margin-right: 0.5rem;\n}\n.menu-benchmark {\n  display: flex; align-items: center;\n  padding: 0.45rem 1rem;\n  background: rgba(74,144,217,0.10);\n  border: 1px solid rgba(74,144,217,0.30);\n  border-radius: 3px;\n  font-family: 'JetBrains Mono', monospace;\n  font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  color: rgba(184,212,240,0.85);\n  text-decoration: none;\n  transition: all 0.25s;\n  white-space: nowrap;\n  gap: 0.5rem;\n}\n.menu-benchmark::before {\n  content: '\u25c8';\n  font-size: 0.7rem;\n  opacity: 0.65;\n}\n.menu-benchmark::after {\n  content: '\u25be';\n  margin-left: 0.4rem;\n  font-size: 0.6rem;\n  opacity: 0.55;\n}\n.menu-benchmark:hover {\n  background: rgba(74,144,217,0.22);\n  border-color: rgba(74,144,217,0.55);\n  color: #fff;\n}\n.menu-benchmark-wrap:hover .mega-dropdown { display: block; }\n \n.menu-item {\n  position: relative; padding: 1rem 1rem;\n  font-size: 0.78rem; font-weight: 500; color: rgba(184,212,240,0.75);\n  cursor: pointer; letter-spacing: 0.02em; transition: color 0.2s;\n  white-space: nowrap;\n}\n.menu-item:hover { color: #fff; }\n.menu-item::after {\n  content: '\u25be'; margin-left: 0.3rem; font-size: 0.6rem; opacity: 0.5;\n}\n.menu-item.no-drop::after { content: ''; }\n.menu-cta {\n  font-family: 'JetBrains Mono', monospace; font-size: 0.65rem; font-weight: 500;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  padding: 0.5rem 1.2rem; border-radius: 2px;\n  background: rgba(201,169,110,0.15); color: #C9A96E; border: 1px solid rgba(201,169,110,0.3);\n  cursor: pointer; transition: all 0.3s; white-space: nowrap;\n}\n.menu-cta:hover { background: rgba(201,169,110,0.25); color: #fff; }\n \n.menu-dropdown {\n  display: none; position: absolute; top: 100%; left: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  min-width: 320px; padding: 0.8rem 0; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n.menu-item:hover .menu-dropdown { display: block; }\n.menu-dropdown a {\n  display: block; padding: 0.5rem 1.5rem; font-size: 0.8rem; color: rgba(184,212,240,0.6);\n  text-decoration: none; transition: all 0.2s; line-height: 1.5;\n}\n.menu-dropdown a:hover { color: #fff; background: rgba(74,144,217,0.08); }\n.menu-dropdown .drop-label {\n  font-family: 'JetBrains Mono', monospace; font-size: 0.58rem; font-weight: 600;\n  letter-spacing: 0.15em; color: #C9A96E; text-transform: uppercase;\n  padding: 0.6rem 1.5rem 0.3rem; display: block;\n}\n.menu-dropdown .drop-sep {\n  border: none; border-top: 1px solid rgba(74,144,217,0.08);\n  margin: 0.5rem 1.5rem;\n}\n \n.menu-dropdown a.drop-highlight {\n  display: flex; align-items: center; justify-content: space-between;\n  margin: 0.4rem 0.8rem 0.2rem;\n  padding: 0.55rem 1rem;\n  background: rgba(201,169,110,0.08);\n  border: 1px solid rgba(201,169,110,0.2);\n  border-radius: 3px;\n  color: #C9A96E;\n  font-weight: 600; font-size: 0.78rem;\n  transition: all 0.2s;\n}\n.menu-dropdown a.drop-highlight:hover {\n  background: rgba(201,169,110,0.18); color: #fff; border-color: rgba(201,169,110,0.45);\n}\n.drop-highlight-arrow { font-size: 0.65rem; opacity: 0.6; margin-left: 8px; }\n \n.menu-dropdown a.drop-sim {\n  display: flex; align-items: center; justify-content: space-between;\n  margin: 0.25rem 0.8rem;\n  padding: 0.5rem 1rem;\n  background: rgba(74,144,217,0.06);\n  border: 1px solid rgba(74,144,217,0.18);\n  border-radius: 3px;\n  color: rgba(184,212,240,0.85);\n  font-size: 0.78rem;\n  transition: all 0.2s;\n}\n.menu-dropdown a.drop-sim:hover {\n  background: rgba(74,144,217,0.14); color: #fff; border-color: rgba(74,144,217,0.4);\n}\n.drop-sim-icon { font-size: 0.7rem; opacity: 0.55; margin-left: 8px; }\n.mega-dropdown {\n  display: none; position: absolute; top: 100%; left: auto; right: 0;\n  background: #0C1829; border: 1px solid rgba(74,144,217,0.15);\n  border-top: 2px solid #C9A96E; border-radius: 0 0 4px 4px;\n  width: 680px; padding: 1.5rem; z-index: 99999;\n  box-shadow: 0 12px 40px rgba(0,0,0,0.4);\n}\n.menu-item:hover .mega-dropdown { display: block; }\n.mega-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2rem; }\n.mega-col .drop-label { padding: 0 0 0.3rem; }\n.mega-col .drop-label {\n  font-family: 'JetBrains Mono', monospace; font-size: 0.58rem; font-weight: 600;\n  letter-spacing: 0.15em; color: #C9A96E; text-transform: uppercase;\n  display: block;\n}\n.mega-col a {\n  display: block; padding: 0.35rem 0; font-size: 0.78rem; color: rgba(184,212,240,0.6);\n  text-decoration: none; transition: color 0.2s;\n}\n.mega-col a:hover { color: #fff; }\n.mega-col .drop-sep {\n  border: none; border-top: 1px solid rgba(74,144,217,0.08);\n}\n.mega-col a.drop-highlight {\n  margin: 0.5rem 0 0.2rem; padding: 0.5rem 0.8rem;\n  background: rgba(201,169,110,0.08); border: 1px solid rgba(201,169,110,0.2);\n  border-radius: 3px; color: #C9A96E; font-weight: 600;\n  display: flex; align-items: center; justify-content: space-between;\n}\n.mega-col a.drop-highlight:hover {\n  background: rgba(201,169,110,0.18); color: #fff; border-color: rgba(201,169,110,0.45);\n}\n.mega-col a.drop-sim {\n  margin: 0.35rem 0; padding: 0.45rem 0.8rem;\n  background: rgba(74,144,217,0.06); border: 1px solid rgba(74,144,217,0.18);\n  border-radius: 3px; color: rgba(184,212,240,0.85);\n  display: flex; align-items: center; justify-content: space-between;\n  font-size: 0.78rem;\n}\n.mega-col a.drop-sim:hover {\n  background: rgba(74,144,217,0.14); color: #fff; border-color: rgba(74,144,217,0.4);\n}\n\/* \u2500\u2500 BOUTON INVESTISSEURS (CTA primaire, dor\u00e9 plein) \u2500\u2500 *\/\n.menu-investor {\n  font-family: 'JetBrains Mono', monospace; font-size: 0.65rem; font-weight: 600;\n  letter-spacing: 0.08em; text-transform: uppercase;\n  padding: 0.5rem 1.2rem; border-radius: 2px;\n  background: #C9A96E; color: #0C1829; border: 1px solid #C9A96E;\n  cursor: pointer; transition: all 0.3s; white-space: nowrap; margin-right: 0.6rem;\n  text-decoration: none; display: inline-block;\n}\n.menu-investor:hover { background: #d9bd87; border-color: #d9bd87; }\n.preview-hint {\n  text-align: center; color: #6b7280; font-family: 'JetBrains Mono', monospace;\n  font-size: 0.7rem; padding: 3rem 1rem 1rem; letter-spacing: 0.05em;\n}\n.preview-hint strong { color: #C9A96E; }\n<\/style>\n \n \n \n<div class=\"menu-bar-wrapper\">\n<div class=\"menu-bar\">\n  <div class=\"menu-logo\"><span>ORIGIN\u2122<\/span><\/div>\n  <div class=\"menu-items\">\n \n    <!-- EAS \u00b7 EXPOSITION (entr\u00e9e de premier niveau) -->\n    <div class=\"menu-eas-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/\" class=\"menu-eas\">\n        EAS \u00b7 EXPOSITION\n      <\/a>\n      <div class=\"menu-dropdown menu-dropdown-eas\">\n        <span class=\"drop-label\">Plateforme CTEM<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/\" class=\"drop-highlight\">\n          EAS \u00b7 Exposition externe et interne\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Ce que la plateforme mesure<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/#interne\" class=\"drop-sim\">\n          P\u00e9rim\u00e8tre interne \u00b7 annuaire LDAP \/ AD\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/#gouvernance\" class=\"drop-sim\">\n          Gouvernance &amp; trace de d\u00e9cision\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/#concurrence\" class=\"drop-sim\">\n          Paysage concurrentiel\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/easevolution\/#contact\" class=\"drop-highlight\">\n          Demander une cartographie\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n \n    <!-- AETZU ARROW AI (avec dropdown) -->\n    <div class=\"menu-aetzu-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/aetzu-arrow-ai\/\" class=\"menu-aetzu\">\n        AETZU ARROW AI\u2122\n      <\/a>\n      <div class=\"menu-dropdown menu-dropdown-aetzu\">\n        <span class=\"drop-label\">AETZU ARROW AI<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/aetzu-arrow-ai\/\" class=\"drop-sim\">\n          AETZU ARROW AI\u2122 \u00b7 D\u00e9fense active\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Analyse strat\u00e9gique<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/marche-et-positionnement-2\/\" class=\"drop-highlight\">\n          March\u00e9 et positionnement\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n \n    <!-- WEB & API (avec dropdown) -->\n    <div class=\"menu-webapi-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-idor\/\" class=\"menu-webapi\">\n        WEB &amp; API\n      <\/a>\n      <div class=\"menu-dropdown menu-dropdown-webapi\">\n        <span class=\"drop-label\">Web &amp; API<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-idor\/\" class=\"drop-sim\">\n          IDOR \u00b7 Passerelle d&rsquo;autorisation\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Analyse strat\u00e9gique<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/1689-2\/\" class=\"drop-highlight\">\n          March\u00e9 et positionnement\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n \n    <!-- APP\u00c2T & LEURRE (avec dropdown \u2014 BAITS) -->\n    <div class=\"menu-appat-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/appat-leurre-lanterne\/\" class=\"menu-appat\">\n        APP\u00c2T &amp; LEURRE\n      <\/a>\n      <div class=\"menu-dropdown menu-dropdown-appat\">\n        <span class=\"drop-label\">Famille App\u00e2t &amp; Leurre<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/appat-leurre-lanterne\/\" class=\"drop-sim\">\n          App\u00e2t &amp; Leurre \u00b7 Vue d&rsquo;ensemble\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/baist\/\" class=\"drop-highlight\">\n          BAITS \u00b7 D\u00e9ception active\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Analyse strat\u00e9gique<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/marche-positionnement\/\" class=\"drop-sim\">\n          March\u00e9 &amp; positionnement\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n \n    <!-- NK (avec dropdown) -->\n    <div class=\"menu-cortexnk-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-nk\/\" class=\"menu-cortexnk\">\n        NOYAU NK\n      <\/a>\n      <div class=\"menu-dropdown menu-dropdown-cortexnk\">\n        <span class=\"drop-label\">Famille NK<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-nk\/\" class=\"drop-sim\">\n          NK \u00b7 Micronoyau souverain\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-nk-3d\/\" class=\"drop-highlight\">\n          NK 3D \u00b7 Cybers\u00e9curit\u00e9 active\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Secure Boot<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-nk-secure-boot\/\" class=\"drop-sim\">\n          Secure Boot S1-S10 \u00b7 Module natif\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/secure-boot-tf-a-post-quantique\/\" class=\"drop-highlight\">\n          Secure Boot TF-A \u00b7 Post-Quantique\n          <span class=\"drop-highlight-arrow\">\u2197<\/span>\n        <\/a>\n        <hr class=\"drop-sep\">\n        <span class=\"drop-label\">Analyse strat\u00e9gique<\/span>\n        <a href=\"https:\/\/cortexorigin.com\/index.php\/marche-et-positionnement\/\" class=\"drop-sim\">\n          March\u00e9 &amp; positionnement\n          <span class=\"drop-sim-icon\">\u2197<\/span>\n        <\/a>\n      <\/div>\n    <\/div>\n \n    <!-- BENCHMARK & V\u00c9RIFICATION (m\u00e9ga-d\u00e9roulant fusionn\u00e9) -->\n    <div class=\"menu-benchmark-wrap\">\n      <a href=\"https:\/\/cortexorigin.com\/index.php\/mttd-benchmark-v2-0-aetzu-arrow-ai\/\" class=\"menu-benchmark\">\n        Benchmark\n      <\/a>\n      <div class=\"mega-dropdown\">\n        <div class=\"mega-cols\">\n \n          <div class=\"mega-col\">\n            <span class=\"drop-label\">D\u00e9monstration<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/demonstration-cortex-nk-2\/\" class=\"drop-highlight\">\n              D\u00c9MONSTRATION NK\n              <span class=\"drop-highlight-arrow\">\u2197<\/span>\n            <\/a>\n            <hr class=\"drop-sep\" style=\"margin:0.8rem 0 0.5rem\">\n            <span class=\"drop-label\">Capacit\u00e9s mesur\u00e9es<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/cryptographie\/\">Cryptographie<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/secure-boot\/\">Secure Boot<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/auto-containment-2\/\">Auto-Containment<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/audit-log-immuable\/\">Audit Log Immuable<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/attestation-et-orchestration-post-quantique\/\">Mesh v1<\/a>\n            <hr class=\"drop-sep\" style=\"margin:0.8rem 0 0.5rem\">\n            <span class=\"drop-label\">Tableaux de bord<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/mttd-benchmark-v2-0-aetzu-arrow-ai\/\" class=\"drop-highlight\">\n              MTTD Benchmark v2.0\n              <span class=\"drop-highlight-arrow\">\u2197<\/span>\n            <\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/1043-2\/\" class=\"drop-highlight\">\n              Evaluation Dashboard\n              <span class=\"drop-highlight-arrow\">\u2197<\/span>\n            <\/a>\n          <\/div>\n \n          <div class=\"mega-col\">\n            <span class=\"drop-label\">CFVL \u2014 Laboratoire formel<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/689-2\/\">CFVL \u2014 Page principale<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/841-2\/\">Journal R&amp;D<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/833-2\/\">Publications &amp; \u00e9valuations<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/827-2\/\">M\u00e9thodologie<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/rapport-mttd-mttb\/\">Rapport MTTD \/ MTTB<\/a>\n            <hr class=\"drop-sep\" style=\"margin:0.8rem 0 0.5rem\">\n            <span class=\"drop-label\">Simulations interactives<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/test\/\" class=\"drop-sim\">\n              Simulations Attaque\n              <span class=\"drop-sim-icon\">\u26a1<\/span>\n            <\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/simulation\/\" class=\"drop-sim\">\n              Sch\u00e9ma &amp; Simulations\n              <span class=\"drop-sim-icon\">\u25ce<\/span>\n            <\/a>\n            <hr class=\"drop-sep\" style=\"margin:0.8rem 0 0.5rem\">\n            <span class=\"drop-label\">Recherche<\/span>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/604-2\/\">AGI Exp\u00e9rimental<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/cortex-origin-2\/\">MVP<\/a>\n            <a href=\"https:\/\/cortexorigin.com\/index.php\/814-2\/\">IA expliqu\u00e9e simplement<\/a>\n          <\/div>\n \n        <\/div>\n      <\/div>\n    <\/div>\n \n    <!-- INVESTISSEURS -->\n    <a href=\"https:\/\/cortexorigin.com\/index.php\/investisseurs-partenaires-strategiques\/\" class=\"menu-investor\">Investisseurs<\/a>\n \n    <!-- CTA -->\n    <a href=\"mailto:press@cortexorigin.com\" style=\"text-decoration:none\">\n      <div class=\"menu-cta\">Contact<\/div>\n    <\/a>\n \n  <\/div>\n<\/div>\n<\/div>\n \n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<style>\n\/* ========== CORTEX NK \u2014 Secure Boot TF-A \u00b7 Post-Quantique v1.2 ========== *\/\n\/* Charte align\u00e9e sur page Benchmark Aetzu Arrow AI \u00b7 charte CORTEX ORIGIN *\/\n \n.sbtfa-fullwidth-wrapper { all: initial; display: block; }\n.sbtfa-fullwidth-wrapper * { box-sizing: border-box; }\n.entry-title, .page-title, h1.wp-block-heading:first-child { display: none !important; }\n \n.sbtfa-wrapper {\n  width: 100vw; position: relative; left: 50%; transform: translateX(-50%);\n  overflow-x: hidden;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif;\n  color: #1A2842; line-height: 1.6; -webkit-font-smoothing: antialiased;\n  background: #F2EBDD;\n}\n.sbtfa-wrapper * { box-sizing: border-box; }\n \n.sbtfa-fullwidth-wrapper, .sbtfa-wrapper {\n  width: 100% !important; max-width: none !important;\n  margin-left: 0 !important; margin-right: 0 !important;\n  padding-left: 0 !important; padding-right: 0 !important;\n}\n.entry-content, .post-content, .wp-block-group, .wp-block-group__inner-container,\n.is-layout-constrained > *, .is-layout-flow > * {\n  max-width: none !important; width: 100% !important;\n  padding-left: 0 !important; padding-right: 0 !important;\n}\n \n\/* ======= BANDEAU IDENTIT\u00c9 (sous le header nav existant) ======= *\/\n.sbtfa-id-band {\n  background: #0A1A33; color: #E8DECB;\n  padding: 16px 5%; display: grid;\n  grid-template-columns: 1fr 2fr 1fr; gap: 24px;\n  align-items: center;\n  border-bottom: 1px solid rgba(212, 165, 81, 0.30);\n  font-family: \"JetBrains Mono\", \"SF Mono\", Menlo, monospace;\n  font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;\n}\n.sbtfa-id-band .sbtfa-id-left {\n  display: flex; flex-direction: column; gap: 2px;\n  color: #B8C5D9; line-height: 1.4;\n}\n.sbtfa-id-band .sbtfa-id-left strong { color: #FFFFFF; font-weight: 600; }\n.sbtfa-id-band .sbtfa-id-center { text-align: center; color: #B8C5D9; }\n.sbtfa-id-band .sbtfa-id-center span { color: rgba(255,255,255,0.5); margin: 0 8px; }\n.sbtfa-id-band .sbtfa-id-right {\n  text-align: right; padding: 8px 18px;\n  background: #B8862F; color: #0A1A33;\n  font-weight: 700; letter-spacing: 0.18em;\n  justify-self: end;\n}\n \n\/* ======= SECTIONS ======= *\/\n.sbtfa-section-dark { background: #0A1A33; color: #E8EEF7; padding: 96px 24px; }\n.sbtfa-section-light { background: #F2EBDD; color: #1A2842; padding: 96px 24px; }\n.sbtfa-section-cream { background: #FAF4E6; color: #1A2842; padding: 96px 24px; }\n.sbtfa-container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 5%; box-sizing: border-box; }\n \n\/* Eyebrow + tiret or \u00e0 gauche *\/\n.sbtfa-eyebrow {\n  font-size: 11.5px; font-weight: 600; letter-spacing: 0.20em;\n  text-transform: uppercase; color: #B8862F;\n  margin-bottom: 28px;\n  display: flex; align-items: center; gap: 14px;\n}\n.sbtfa-eyebrow::before {\n  content: \"\"; width: 32px; height: 1px; background: #B8862F;\n  display: inline-block;\n}\n.sbtfa-section-dark .sbtfa-eyebrow { color: #D4A551; }\n.sbtfa-section-dark .sbtfa-eyebrow::before { background: #D4A551; }\n \n\/* Titre principal Cormorant Garamond *\/\n.sbtfa-title {\n  font-family: \"Cormorant Garamond\", \"Playfair Display\", Georgia, serif;\n  font-size: 72px; font-weight: 400; line-height: 1.02;\n  letter-spacing: -0.015em; margin: 0 0 32px;\n  color: #0A1A33;\n}\n.sbtfa-title em { font-style: italic; font-weight: 400; color: #1A4178; }\n.sbtfa-section-dark .sbtfa-title { color: #FFFFFF; }\n.sbtfa-section-dark .sbtfa-title em { color: #D4A551; }\n \n.sbtfa-title-sub {\n  font-family: \"Cormorant Garamond\", Georgia, serif;\n  font-size: 48px; font-weight: 400; line-height: 1.08;\n  letter-spacing: -0.01em; margin: 0 0 24px;\n  color: #0A1A33;\n}\n.sbtfa-title-sub em { font-style: italic; color: #1A4178; }\n.sbtfa-section-dark .sbtfa-title-sub { color: #FFFFFF; }\n.sbtfa-section-dark .sbtfa-title-sub em { color: #D4A551; }\n \n.sbtfa-subtitle {\n  font-size: 17px; line-height: 1.65;\n  max-width: 720px; margin: 0 0 32px;\n  color: #4A5868;\n}\n.sbtfa-section-dark .sbtfa-subtitle { color: #B8C5D9; }\n \n\/* Tags pilule rectangulaires fines *\/\n.sbtfa-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }\n.sbtfa-tag {\n  display: inline-block; padding: 8px 14px;\n  font-family: \"JetBrains Mono\", \"SF Mono\", monospace;\n  font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em;\n  text-transform: uppercase; border-radius: 2px;\n}\n.sbtfa-tag-blue { background: #DDE4F0; color: #1A4178; }\n.sbtfa-tag-gold-pale { background: #F0E4C8; color: #6B5018; }\n.sbtfa-tag-gold-mid { background: #E8D4A0; color: #5C4012; }\n.sbtfa-tag-grey { background: #DDD8CC; color: #4A5868; }\n.sbtfa-tag-green { background: #D4E8DC; color: #1E5C3C; }\n \n\/* ======= HERO LAYOUT \u2014 2 colonnes : titre\/sous-titre\/tags + tuiles m\u00e9triques ======= *\/\n.sbtfa-hero-grid {\n  display: grid; grid-template-columns: 1.4fr 1fr; gap: 64px;\n  align-items: start; margin-top: 32px;\n}\n.sbtfa-hero-meta {\n  font-size: 15px; line-height: 1.6; color: #4A5868;\n  margin-bottom: 8px;\n}\n.sbtfa-hero-meta span { color: rgba(26, 40, 66, 0.45); margin: 0 6px; }\n \n\/* Tuiles m\u00e9triques style Aetzu Arrow *\/\n.sbtfa-metrics {\n  display: grid; grid-template-columns: 1fr 1fr; gap: 1px;\n  background: rgba(26, 40, 66, 0.18);\n  border: 1px solid rgba(26, 40, 66, 0.18);\n}\n.sbtfa-metric {\n  background: #FAF4E6; padding: 32px 28px;\n  position: relative;\n}\n.sbtfa-metric::before {\n  content: \"\"; position: absolute; left: 0; top: 24px; bottom: 24px;\n  width: 3px; background: var(--metric-color, #1A4178);\n}\n.sbtfa-metric-value {\n  font-family: \"Cormorant Garamond\", Georgia, serif;\n  font-size: 48px; font-weight: 500; line-height: 1; margin: 0 0 12px;\n  color: var(--metric-color, #1A4178); padding-left: 14px;\n}\n.sbtfa-metric-value span { font-size: 24px; }\n.sbtfa-metric-label {\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em;\n  text-transform: uppercase; color: #4A5868; padding-left: 14px;\n  line-height: 1.4;\n}\n.sbtfa-metric--blue  { --metric-color: #1A4178; }\n.sbtfa-metric--green { --metric-color: #2E8B57; }\n.sbtfa-metric--gold  { --metric-color: #B8862F; }\n \n\/* ======= FOOTER PAGINATION (style Aetzu Arrow) ======= *\/\n.sbtfa-pagefoot {\n  background: #0A1A33; color: #E8DECB;\n  padding: 18px 5%; display: grid;\n  grid-template-columns: auto 1fr auto; gap: 24px;\n  align-items: center;\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase;\n}\n.sbtfa-pagefoot-num { color: rgba(212, 165, 81, 0.65); }\n.sbtfa-pagefoot-center { text-align: center; color: #B8C5D9; }\n.sbtfa-pagefoot-right { color: #B8862F; text-align: right; }\n \n\/* ======= COMPOSANTS R\u00c9UTILISABLES ======= *\/\n.sbtfa-card-grid {\n  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n  gap: 1px; background: rgba(26, 40, 66, 0.15);\n  margin-top: 48px;\n}\n.sbtfa-card {\n  background: #FAF4E6; padding: 36px 32px;\n  border-top: 3px solid var(--card-accent, #B8862F);\n  position: relative;\n}\n.sbtfa-section-dark .sbtfa-card {\n  background: rgba(255,255,255,0.04);\n  border-top-color: #D4A551;\n}\n.sbtfa-card-num {\n  font-family: \"Cormorant Garamond\", Georgia, serif;\n  font-size: 14px; font-weight: 600; color: #B8862F;\n  letter-spacing: 0.18em; margin-bottom: 16px;\n}\n.sbtfa-section-dark .sbtfa-card-num { color: #D4A551; }\n.sbtfa-card-title {\n  font-size: 18px; font-weight: 700; color: #0A1A33;\n  margin: 0 0 14px; line-height: 1.3;\n}\n.sbtfa-section-dark .sbtfa-card-title { color: #FFFFFF; }\n.sbtfa-card-text {\n  font-size: 14.5px; line-height: 1.6; color: #4A5868;\n  margin: 0 0 18px;\n}\n.sbtfa-section-dark .sbtfa-card-text { color: #B8C5D9; }\n.sbtfa-card-tag {\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em;\n  text-transform: uppercase; color: #B8862F;\n}\n.sbtfa-section-dark .sbtfa-card-tag { color: #D4A551; }\n \n\/* Tableau standard *\/\n.sbtfa-table {\n  width: 100%; border-collapse: collapse; margin: 32px 0;\n  font-size: 13.5px;\n  background: #FAF4E6;\n  border: 1px solid rgba(26, 40, 66, 0.15);\n}\n.sbtfa-table th {\n  background: rgba(26, 40, 66, 0.06);\n  padding: 14px 18px; text-align: left;\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em;\n  text-transform: uppercase; color: #B8862F;\n  border-bottom: 2px solid rgba(184, 134, 47, 0.4);\n}\n.sbtfa-table td {\n  padding: 12px 18px;\n  border-bottom: 1px solid rgba(26, 40, 66, 0.08);\n  vertical-align: top; color: #1A2842;\n}\n.sbtfa-table tr:hover { background: rgba(184, 134, 47, 0.04); }\n.sbtfa-table .sbtfa-mono { font-family: \"JetBrains Mono\", \"SF Mono\", monospace; font-size: 12.5px; }\n.sbtfa-table .sbtfa-num { text-align: right; font-family: \"JetBrains Mono\", monospace; }\n.sbtfa-table .sbtfa-ok { color: #2E8B57; font-weight: 600; }\n.sbtfa-table .sbtfa-warn { color: #B8862F; font-weight: 600; }\n.sbtfa-table .sbtfa-fail { color: #B0382F; font-weight: 600; }\n \n\/* Tableau sombre *\/\n.sbtfa-section-dark .sbtfa-table {\n  background: rgba(255, 255, 255, 0.03);\n  border-color: rgba(212, 165, 81, 0.25);\n  color: #E8EEF7;\n}\n.sbtfa-section-dark .sbtfa-table th {\n  background: rgba(212, 165, 81, 0.12);\n  color: #D4A551;\n  border-bottom-color: rgba(212, 165, 81, 0.5);\n}\n.sbtfa-section-dark .sbtfa-table td {\n  color: #E8EEF7;\n  border-bottom-color: rgba(232, 238, 247, 0.08);\n}\n.sbtfa-section-dark .sbtfa-table tr:hover { background: rgba(212, 165, 81, 0.06); }\n.sbtfa-section-dark .sbtfa-table .sbtfa-mono { color: #B8C5D9; }\n \n\/* Bloc code \/ terminal *\/\n.sbtfa-code {\n  background: #050E1F; color: #E8DECB;\n  padding: 28px 32px; margin: 24px 0;\n  border-radius: 2px; border-left: 3px solid #B8862F;\n  font-family: \"JetBrains Mono\", \"SF Mono\", Menlo, monospace;\n  font-size: 12.5px; line-height: 1.75;\n  overflow-x: auto;\n}\n.sbtfa-code-title {\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase;\n  color: #D4A551; margin-bottom: 16px;\n}\n.sbtfa-code .sbtfa-prompt { color: rgba(255,255,255,0.4); }\n.sbtfa-code .sbtfa-cmd { color: #FFFFFF; }\n.sbtfa-code .sbtfa-out { color: rgba(184, 212, 240, 0.85); }\n.sbtfa-code .sbtfa-comment { color: rgba(255, 255, 255, 0.3); font-style: italic; }\n.sbtfa-code .sbtfa-ok { color: #6DD98A; }\n.sbtfa-code .sbtfa-hi { color: #D4A551; font-weight: 600; }\n \n\/* Blockquote AUDIT-NOTE *\/\n.sbtfa-auditnote {\n  background: rgba(26, 40, 66, 0.04);\n  border-left: 3px solid #B8862F;\n  padding: 28px 36px; margin: 32px 0;\n  font-family: \"JetBrains Mono\", \"SF Mono\", monospace;\n  font-size: 12.5px; line-height: 1.7; color: #1A2842;\n  white-space: pre-wrap;\n}\n.sbtfa-section-dark .sbtfa-auditnote {\n  background: rgba(255, 255, 255, 0.04);\n  border-left-color: #D4A551;\n  color: #B8C5D9;\n}\n.sbtfa-auditnote .sbtfa-note-header {\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 10.5px; letter-spacing: 0.18em;\n  text-transform: uppercase; color: #B8862F;\n  display: block; margin-bottom: 14px; font-weight: 700;\n}\n.sbtfa-section-dark .sbtfa-auditnote .sbtfa-note-header { color: #D4A551; }\n \n\/* Disclaimer *\/\n.sbtfa-disclaimer {\n  margin: 36px 0; padding: 24px 28px;\n  background: rgba(184, 134, 47, 0.08);\n  border-left: 2px solid #B8862F;\n  font-size: 13.5px; line-height: 1.65; color: #4A5868;\n}\n.sbtfa-section-dark .sbtfa-disclaimer {\n  background: rgba(212, 165, 81, 0.08);\n  border-left-color: #D4A551;\n  color: #B8C5D9;\n}\n.sbtfa-disclaimer strong { color: #B8862F; font-weight: 600; }\n.sbtfa-section-dark .sbtfa-disclaimer strong { color: #D4A551; }\n \n\/* Hash flout\u00e9 *\/\n.sbtfa-hash-blur {\n  filter: blur(5px); user-select: none;\n  font-family: \"JetBrains Mono\", monospace;\n  letter-spacing: 0.04em;\n}\n.sbtfa-hash-blur-wrap {\n  display: inline-block; padding: 2px 6px;\n  background: rgba(26, 40, 66, 0.06);\n  border-radius: 2px; cursor: not-allowed;\n}\n \n\/* Sch\u00e9ma cha\u00eene BL1\u2192BL33 *\/\n.sbtfa-chain {\n  margin: 48px 0; display: flex; flex-direction: column; gap: 0;\n}\n.sbtfa-chain-step {\n  display: grid; grid-template-columns: 100px 200px 1fr; gap: 32px;\n  padding: 28px 32px; background: rgba(26, 40, 66, 0.04);\n  border-left: 4px solid #B8862F;\n  position: relative;\n}\n.sbtfa-chain-step:not(:last-child)::after {\n  content: \"\u25bc\"; position: absolute;\n  left: 50px; bottom: -16px; color: #B8862F;\n  font-size: 16px; z-index: 2;\n}\n.sbtfa-chain-step + .sbtfa-chain-step { margin-top: 8px; }\n.sbtfa-chain-num {\n  font-family: \"Cormorant Garamond\", Georgia, serif;\n  font-size: 36px; font-weight: 500; color: #B8862F;\n  line-height: 1;\n}\n.sbtfa-chain-stage {\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 13px; font-weight: 700; color: #0A1A33;\n  letter-spacing: 0.08em; line-height: 1.4;\n}\n.sbtfa-chain-stage span {\n  display: block; font-weight: 400; font-size: 11.5px;\n  color: #B8862F; letter-spacing: 0.16em;\n  margin-top: 4px; text-transform: uppercase;\n}\n.sbtfa-chain-desc {\n  font-size: 14.5px; line-height: 1.6; color: #4A5868;\n}\n.sbtfa-section-dark .sbtfa-chain-step {\n  background: rgba(255, 255, 255, 0.04);\n  border-left-color: #D4A551;\n}\n.sbtfa-section-dark .sbtfa-chain-step::after { color: #D4A551; }\n.sbtfa-section-dark .sbtfa-chain-stage { color: #FFFFFF; }\n.sbtfa-section-dark .sbtfa-chain-stage span { color: #D4A551; }\n.sbtfa-section-dark .sbtfa-chain-desc { color: #B8C5D9; }\n \n\/* CTA Boutons *\/\n.sbtfa-cta-buttons {\n  display: flex; gap: 16px; flex-wrap: wrap; margin-top: 32px;\n}\n.sbtfa-btn {\n  display: inline-block; padding: 14px 28px;\n  font-family: \"JetBrains Mono\", monospace;\n  font-size: 11.5px; font-weight: 600; letter-spacing: 0.14em;\n  text-transform: uppercase; text-decoration: none;\n  border-radius: 2px; transition: background 0.2s, color 0.2s;\n}\n.sbtfa-btn-primary { background: #B8862F; color: #0A1A33; border: 1px solid #B8862F; }\n.sbtfa-btn-primary:hover { background: #D4A551; }\n.sbtfa-btn-secondary {\n  background: transparent; color: #0A1A33; border: 1px solid #0A1A33;\n}\n.sbtfa-section-dark .sbtfa-btn-secondary { color: #E8EEF7; border-color: rgba(232,238,247,0.4); }\n.sbtfa-btn-secondary:hover { border-color: #B8862F; color: #B8862F; }\n \n\/* Responsive *\/\n@media (max-width: 1024px) {\n  .sbtfa-hero-grid { grid-template-columns: 1fr; gap: 48px; }\n  .sbtfa-id-band { grid-template-columns: 1fr; text-align: center; }\n  .sbtfa-id-band .sbtfa-id-right { justify-self: center; }\n  .sbtfa-title { font-size: 52px; }\n  .sbtfa-title-sub { font-size: 36px; }\n  .sbtfa-chain-step { grid-template-columns: 60px 1fr; }\n  .sbtfa-chain-desc { grid-column: 1 \/ -1; }\n}\n@media (max-width: 640px) {\n  .sbtfa-section-dark, .sbtfa-section-light, .sbtfa-section-cream { padding: 64px 16px; }\n  .sbtfa-title { font-size: 40px; }\n  .sbtfa-title-sub { font-size: 28px; }\n  .sbtfa-metrics { grid-template-columns: 1fr; }\n  .sbtfa-table { font-size: 12px; }\n  .sbtfa-table th, .sbtfa-table td { padding: 8px 10px; }\n}\n<\/style>\n \n<div class=\"sbtfa-fullwidth-wrapper\">\n<div class=\"sbtfa-wrapper\">\n \n<!-- =============================================================\n     BANDEAU IDENTIT\u00c9 \u2014 sous le header nav du site\n     ============================================================= -->\n<div class=\"sbtfa-id-band\">\n  <div class=\"sbtfa-id-left\">\n    <strong>CORTEX AI\u2122 SAS<\/strong>\n    <span>CORTEX ORIGIN\u2122<\/span>\n  <\/div>\n  <div class=\"sbtfa-id-center\">\n    CFVL-SECBOOT-TFA-001 V1.2 <span>\u00b7<\/span> JUIN 2026 <span>\u00b7<\/span> TF-A LTS V2.10.9 <span>\u00b7<\/span> QEMU AARCH64\n  <\/div>\n  <div class=\"sbtfa-id-right\">\n    SECURE BOOT TF-A\n  <\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 1 \u2014 HERO\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n \n    <div class=\"sbtfa-eyebrow\">Programme de d\u00e9fense \u2014 Secure Boot Hybride Post-Quantique<\/div>\n \n    <div class=\"sbtfa-hero-grid\">\n \n      <div>\n        <h1 class=\"sbtfa-title\">Secure Boot TF-A<br><em>Post-Quantique<\/em><\/h1>\n \n        <p class=\"sbtfa-hero-meta\">\n          Sprint S73c-f <span>\u00b7<\/span> 15 patches versionn\u00e9s <span>\u00b7<\/span> Replay vanilla LTS v2.10.9 <span>\u00b7<\/span> Boot QEMU end-to-end valid\u00e9\n        <\/p>\n \n        <p class=\"sbtfa-subtitle\" style=\"margin-bottom: 24px;\">\n          Premi\u00e8re cha\u00eene hybride <strong>Ed25519 + ML-DSA-87<\/strong> end-to-end <strong>BL1 \u2192 BL33<\/strong>\n          sur un fork ARM Trusted Firmware-A, publi\u00e9e sous forme de patches reproductibles \u00e0 partir\n          de la base LTS v2.10.9.\n        <\/p>\n \n        <p class=\"sbtfa-subtitle\">\n          BL1 v\u00e9rifie le certificat de BL2 en Ed25519 (HACL* formellement v\u00e9rifi\u00e9 F*\/Vale).\n          BL2 charge les images et ex\u00e9cute 6 v\u00e9rifications ML-DSA-87 (liboqs FIPS 204, niveau NIST 5)\n          avant transfert \u00e0 BL31. Un adversaire disposant d&rsquo;un ordinateur quantique cryptographiquement\n          pertinent ne peut produire un firmware accept\u00e9 par la cha\u00eene compl\u00e8te : la r\u00e9sistance\n          post-quantique tient au niveau de la <em>cha\u00eene<\/em>, pas au niveau d&rsquo;un cert isol\u00e9.\n        <\/p>\n \n        <div class=\"sbtfa-tags\">\n          <span class=\"sbtfa-tag sbtfa-tag-blue\">TRAJECTOIRE VERS EAL7<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-gold-pale\">TF-A LTS V2.10.9<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-gold-mid\">PQC FIPS 204 \u00b7 NIVEAU 5<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-green\">PR\u00c9-AUDIT CESTI \u00b7 D\u00c9MARCHE D\u00c9MARR\u00c9E<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-green\">DUAL-SIG \u00b7 INT\u00c9GRATION EN COURS<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-blue\">SBOM SPDX \u00b7 SLSA L2<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-grey\">FRANCE DEEPTECH<\/span>\n          <span class=\"sbtfa-tag sbtfa-tag-grey\">SYSTEMATIC PARIS-R\u00c9GION<\/span>\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-metrics\">\n        <div class=\"sbtfa-metric sbtfa-metric--blue\">\n          <p class=\"sbtfa-metric-value\">15<\/p>\n          <p class=\"sbtfa-metric-label\">Patches versionn\u00e9s<br>Replay vanilla OK<\/p>\n        <\/div>\n        <div class=\"sbtfa-metric sbtfa-metric--green\">\n          <p class=\"sbtfa-metric-value\">12<\/p>\n          <p class=\"sbtfa-metric-label\">V\u00e9rifs crypto OK<br>6 Ed25519 + 6 ML-DSA-87<\/p>\n        <\/div>\n        <div class=\"sbtfa-metric sbtfa-metric--gold\">\n          <p class=\"sbtfa-metric-value\">BL33<\/p>\n          <p class=\"sbtfa-metric-label\">Atteint end-to-end<br>4 jalons NOTICE<\/p>\n        <\/div>\n        <div class=\"sbtfa-metric sbtfa-metric--green\">\n          <p class=\"sbtfa-metric-value\">0<\/p>\n          <p class=\"sbtfa-metric-label\">Data Abort<br>0 panic \u00b7 0 mismatch<\/p>\n        <\/div>\n        <div class=\"sbtfa-metric sbtfa-metric--blue\">\n          <p class=\"sbtfa-metric-value\">~57<span> %<\/span><\/p>\n          <p class=\"sbtfa-metric-label\">Marge BL2<br>~223 KB libres<\/p>\n        <\/div>\n        <div class=\"sbtfa-metric sbtfa-metric--gold\">\n          <p class=\"sbtfa-metric-value\">12,5<span> KB<\/span><\/p>\n          <p class=\"sbtfa-metric-label\">Empreinte ML-DSA-87<br>liboqs freestanding<\/p>\n        <\/div>\n      <\/div>\n \n    <\/div>\n \n  <\/div>\n<\/section>\n \n<!-- pied de page section 1 -->\n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">01<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Sprint S73c-f \u2014 Vue d&rsquo;ensemble<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Hybride par cha\u00eene<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 2 \u2014 POSITIONNEMENT VS SECURE BOOT NATIF S1-S10\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Positionnement \u2014 Deux pages, deux r\u00e9cits<\/div>\n    <h2 class=\"sbtfa-title-sub\">Pourquoi <em>cette page<\/em>, distincte du Secure Boot natif<\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le module Secure Boot CORTEX NK\u2122 (S1-S10) est le module natif propre \u00e0 CORTEX NK,\n      v\u00e9rifi\u00e9 multi-outils (Frama-C, Isabelle\/HOL, CBMC), avec 211 tests E2E PASS et boot\n      compos\u00e9 \u00e0 0,55 ms. Cette page-ci documente une <strong>seconde r\u00e9alisation<\/strong>,\n      compl\u00e9mentaire : l&rsquo;<em>int\u00e9gration<\/em> de cette logique cryptographique dans la cha\u00eene\n      ARM Trusted Firmware-A upstream, avec ajout d&rsquo;une couche post-quantique end-to-end.\n    <\/p>\n \n    <div class=\"sbtfa-card-grid\" style=\"margin-top: 56px;\">\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">VOLET 1 \u2014 NATIF<\/div>\n        <h3 class=\"sbtfa-card-title\">Secure Boot CORTEX NK\u2122 S1-S10<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Module Secure Boot propre \u00e0 CORTEX NK, ind\u00e9pendant de toute base upstream.\n          10 sprints livr\u00e9s, signatures hybrides Ed25519 + ML-DSA-87, anti-rollback TPM 2.0,\n          recovery Option A STRICT, v\u00e9rification formelle multi-outils, 211 tests E2E PASS.\n          Boot compos\u00e9 0,55 ms \u00b7 boot orchestr\u00e9 1,51 ms.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Page d\u00e9di\u00e9e Secure Boot<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #1A4178;\">\n        <div class=\"sbtfa-card-num\" style=\"color: #1A4178;\">VOLET 2 \u2014 TF-A INT\u00c9GRATION<\/div>\n        <h3 class=\"sbtfa-card-title\">Secure Boot TF-A \u00b7 Post-Quantique <em style=\"color:#B8862F;\">(cette page)<\/em><\/h3>\n        <p class=\"sbtfa-card-text\">\n          Portage de la logique CORTEX NK dans la cha\u00eene ARM Trusted Firmware-A upstream\n          (LTS v2.10.9). 15 patches versionn\u00e9s, cha\u00eene TBBR hybride Ed25519 (HACL*) +\n          ML-DSA-87 (liboqs FIPS 204) end-to-end BL1 \u2192 BL33, boot QEMU valid\u00e9,\n          replay vanilla sans conflit, reproductibilit\u00e9 document\u00e9e.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Sprint S73c-f \u00b7 Juin 2026<\/p>\n      <\/div>\n \n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Articulation des deux livrables.<\/strong> Le volet 1 (S1-S10) est un module\n      autonome destin\u00e9 \u00e0 des environnements o\u00f9 CORTEX NK est la racine de confiance\n      logicielle compl\u00e8te. Le volet 2 (S73c-f) est destin\u00e9 \u00e0 des environnements ARM\n      existants qui utilisent d\u00e9j\u00e0 TF-A comme firmware d&rsquo;amor\u00e7age et o\u00f9 l&rsquo;objectif est\n      d&rsquo;ajouter une couche post-quantique <em>sans rompre la compatibilit\u00e9 upstream<\/em>.\n      Les deux sont compl\u00e9mentaires, ni l&rsquo;un n&rsquo;efface l&rsquo;autre.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">02<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Volet 2 \u2014 Int\u00e9gration upstream TF-A<\/div>\n  <div class=\"sbtfa-pagefoot-right\">15 patches versionn\u00e9s<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 3 \u2014 LE SPRINT S73c-f EN UN COUP D'\u0152IL \u00b7 11 paliers\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Sprint S73c-f \u2014 Onze paliers atomiques<\/div>\n    <h2 class=\"sbtfa-title-sub\">F-1 \u00e0 F-6.H \u00b7 Chaque palier <em>ind\u00e9pendamment v\u00e9rifiable<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le sprint S73c-f a \u00e9t\u00e9 conduit en onze paliers F-1 \u2192 F-6.H, chacun avec son p\u00e9rim\u00e8tre\n      isol\u00e9, ses tests, et son commit Git correspondant. La num\u00e9rotation refl\u00e8te l&rsquo;ordre\n      logique de construction : pr\u00e9liminaires plateforme, int\u00e9gration des cl\u00e9s, ajout du\n      backend HACL*, ajout du backend ML-DSA-87, int\u00e9gration ATF\/BL2, fixes runtime, et\n      durcissement s\u00e9curit\u00e9 F-6.H final.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:90px;\">Palier<\/th>\n          <th>Description<\/th>\n          <th style=\"width:140px;\">Statut<\/th>\n          <th style=\"width:120px;\">Patch<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr><td class=\"sbtfa-mono\">F-1 \u2192 F-3 bis<\/td><td>Pr\u00e9liminaires plateforme cortexnk \u00b7 stub BL2 \u00b7 platform.mk<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0001<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-4<\/td><td>BL2 wiring \u00b7 plateforme cortexnk active<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0001<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-5.A<\/td><td>manifest_hash via SHA-256 BL2<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0002<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-5.B<\/td><td>nk_key_provider \u00b7 embed cl\u00e9s Ed25519 + ML-DSA pour dev<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0003-0006<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.A<\/td><td>cert_create \u2014 support KEY_ALG=ed25519 pure Ed25519<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0007<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.B.1<\/td><td>libmldsa_host (x86_64) \u00b7 binaire signataire ML-DSA-87<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0008<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.B.2<\/td><td>cert_create \u2014 signatures ML-DSA-87 sidecar via liboqs<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0008<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.C<\/td><td>Backend HACL* TBBR Ed25519 + plat cortexnk<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0009<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.C fix<\/td><td>BL1_SOURCES TBBR auth stack BL1<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0010-0011<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.D<\/td><td>ML-DSA-87 verify BL2 batch \u00b7 cha\u00eene PQ end-to-end<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0012<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.E.1<\/td><td>Parseur DigestInfo DER propre dans verify_hash()<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0013<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">F-6.F<\/td><td>AUTH_BACKEND=hacl explicite dans platform.mk<\/td><td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td><td class=\"sbtfa-mono\">0014<\/td><\/tr>\n        <tr style=\"background: rgba(184,134,47,0.08);\"><td class=\"sbtfa-mono\" style=\"color:#B8862F;\"><strong>F-6.H<\/strong><\/td><td><strong>Sym\u00e9trie save\/restore SCTLR\/CPTR autour des appels HACL*<\/strong> (audit-grade post-CESTI)<\/td><td class=\"sbtfa-ok\"><strong>\u2713 Valid\u00e9<\/strong><\/td><td class=\"sbtfa-mono\"><strong>0015<\/strong><\/td><\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>\u00c9tat du d\u00e9p\u00f4t \u00e0 la publication.<\/strong> Branche fork <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em;\">feat\/cortexnk-s73f4<\/code> sur\n      le fork <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em;\">cortexaitm\/trusted-firmware-a<\/code>, 15 commits depuis la base\n      LTS v2.10.9 (<code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em;\">7e6321360<\/code>). Replay des 15 patches sur vanilla test\u00e9,\n      arbre identique (tree-hash <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em;\">77f918b1f8d57b8b196d29b2507c9095301e5a7a<\/code>),\n      0 conflit. Tous les commits sign\u00e9s <em>Signed-off-by: David Salomon<\/em>, aucun trailer\n      tiers, aligned pour soumission upstream future.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">03<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Sprint S73c-f \u2014 11 paliers atomiques<\/div>\n  <div class=\"sbtfa-pagefoot-right\">F-1 \u2192 F-6.H<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 4 \u2014 ARCHITECTURE CHA\u00ceNE BL1\u2192BL33\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Architecture \u2014 Cha\u00eene TBBR hybride BL1 \u2192 BL33<\/div>\n    <h2 class=\"sbtfa-title-sub\">De la racine de confiance <em>au monde normal<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      La cha\u00eene TF-A d\u00e9finit quatre \u00e9tapes successives (BL1, BL2, BL31, BL33), chacune\n      v\u00e9rifiant la suivante cryptographiquement avant de lui c\u00e9der le contr\u00f4le. Le sprint\n      S73c-f ajoute une couche post-quantique <strong>ML-DSA-87<\/strong> en BL2, v\u00e9rifi\u00e9e\n      en batch avant le saut vers BL31. Politique fail-closed absolue : toute v\u00e9rification\n      \u00e9chou\u00e9e arr\u00eate le boot.\n    <\/p>\n \n    <div class=\"sbtfa-chain\">\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">BL1<\/div>\n        <div class=\"sbtfa-chain-stage\">BOOT ROM<span>Racine mat\u00e9rielle \u00b7 EL3<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Premier code ex\u00e9cut\u00e9 par le CPU. ROTPK (Root of Trust Public Key) ancr\u00e9 dans le\n          binaire BL1. Charge BL2 depuis le FIP, v\u00e9rifie sa signature Ed25519 via le backend\n          HACL* (lib formellement v\u00e9rifi\u00e9e F*\/Vale), v\u00e9rifie son hash SHA-256, transf\u00e8re\n          contr\u00f4le. Pattern F-6.H : fen\u00eatre architecturale rel\u00e2ch\u00e9e strictement per-call,\n          sym\u00e9trique, ~quelques millisecondes cumul\u00e9s.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">BL2<\/div>\n        <div class=\"sbtfa-chain-stage\">TRUSTED BOOT FW<span>S-EL1 \u00b7 S\u00e9curis\u00e9 \u00b7 Single-thread<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Charge les images suivantes (BL31, BL33, configs). Pour chaque cert TBBR : v\u00e9rif\n          Ed25519 via HACL*. <strong>Apr\u00e8s chargement complet<\/strong> : ex\u00e9cute en batch\n          les 6 v\u00e9rifications ML-DSA-87 (liboqs FIPS 204 niveau 5) sur les certs TBBR\n          (TRUSTED_BOOT_FW, TRUSTED_KEY, SOC_FW_KEY, SOC_FW_CONTENT, NON_TRUSTED_FW_KEY,\n          NON_TRUSTED_FW_CONTENT). Tout \u00e9chec \u2192 panic, refus du transfert.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">BL31<\/div>\n        <div class=\"sbtfa-chain-stage\">EL3 RUNTIME<span>TrustZone \u00b7 R\u00e9initialise arch state<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Bascule en mode runtime EL3, initialise les services TrustZone, expose l&rsquo;interface\n          SMC. Lors de <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">bl31_arch_setup<\/code>, l&rsquo;\u00e9tat architectural (CPTR_EL3, SCTLR_EL3)\n          est r\u00e9initialis\u00e9 \u00e0 ses valeurs par d\u00e9faut TF-A \u2014 ce qui referme implicitement les\n          fen\u00eatres ouvertes par F-6.H en BL1\/BL2.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">BL33<\/div>\n        <div class=\"sbtfa-chain-stage\">NORMAL WORLD<span>OS \u00b7 Hyperviseur \u00b7 UEFI<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Charge utile finale (OS h\u00f4te, hyperviseur, UEFI). La confiance est d\u00e9sormais\n          math\u00e9matiquement justifi\u00e9e par la cha\u00eene compl\u00e8te : Ed25519 sur chaque cert\n          (HACL* prouv\u00e9 F*\/Vale) <strong>+<\/strong> ML-DSA-87 batch en BL2 (liboqs FIPS 204).\n          Un adversaire quantique ne peut produire un firmware accept\u00e9 par cette cha\u00eene.\n        <\/div>\n      <\/div>\n \n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Principe fail-closed absolu.<\/strong> \u00c0 toute \u00e9tape, une v\u00e9rification \u00e9chou\u00e9e\n      arr\u00eate imm\u00e9diatement le boot. Aucun mode d\u00e9grad\u00e9, aucune bascule automatique, aucun\n      bypass. La propri\u00e9t\u00e9 hybride post-quantique de la cha\u00eene tient au niveau\n      <em>global BL2 post-load<\/em> : la signature ML-DSA-87 compagne de chaque cert TBBR\n      est v\u00e9rifi\u00e9e par <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">nk_mldsa87_verify_all_certs()<\/code> en fin de cha\u00eene BL2,\n      avant tout transfert BL31. Voir la section \u00ab Mod\u00e8le de menace \u00bb pour le d\u00e9tail\n      audit-grade.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">04<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Architecture TBBR \u00b7 BL1 \u2192 BL2 \u2192 BL31 \u2192 BL33<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Fail-closed absolu<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 5 \u2014 LES 15 PATCHES (TABLEAU EXHAUSTIF)\n     ============================================================= -->\n<section class=\"sbtfa-section-dark\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Patches publi\u00e9s \u2014 15 commits versionn\u00e9s<\/div>\n    <h2 class=\"sbtfa-title-sub\">Inventaire complet \u00b7 <em>replay vanilla valid\u00e9<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Les 15 patches du sprint S73c-f sont publi\u00e9s dans <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em; color:#D4A551;\">patches\/cortexnk_tfa_s73c-f\/<\/code>\n      du d\u00e9p\u00f4t cortex_nk_pqc. Application s\u00e9quentielle (<code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em; color:#D4A551;\">git am<\/code>) sur un clone vanilla\n      de TF-A LTS v2.10.9 produit un arbre Git strictement identique au fork interne\n      (tree-hash v\u00e9rifi\u00e9). Chaque patch porte un en-t\u00eate <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em; color:#D4A551;\">From: David Salomon<\/code>\n      et un <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:JetBrains Mono, monospace; font-size:0.9em; color:#D4A551;\">Signed-off-by:<\/code> conforme DCO, sans aucun trailer tiers.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:60px;\">N\u00b0<\/th>\n          <th>Sujet<\/th>\n          <th style=\"width:120px;\">Date<\/th>\n          <th style=\"width:90px;\">Lignes<\/th>\n          <th style=\"width:80px;\">Fichiers<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr><td class=\"sbtfa-mono\"><strong>0001<\/strong><\/td><td>feat(cortexnk) \u2014 BL2 platform + PQC crypto handoff S73c-f<\/td><td class=\"sbtfa-mono\">31 mai<\/td><td class=\"sbtfa-num\">1 475<\/td><td class=\"sbtfa-num\">6<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0002<\/strong><\/td><td>feat(cortexnk) \u2014 F-5.A manifest_hash r\u00e9el via SHA-256 BL2<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">137<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0003<\/strong><\/td><td>feat(cortexnk) \u2014 F-5.B.0 r\u00e9g\u00e9n\u00e9ration dev_keys_embedded<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">100<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0004<\/strong><\/td><td>fix(cortexnk) \u2014 F-5.B.0.bis dev_keys_embedded.h r\u00e9g\u00e9n\u00e9r\u00e9<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">1 027<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0005<\/strong><\/td><td>fix(cortexnk) \u2014 F-5.B.0.ter resync dev_keys_embedded.h<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">1 020<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0006<\/strong><\/td><td>feat(cortexnk) \u2014 F-5.B.5\/6\/7 nk_key_provider integration<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">216<\/td><td class=\"sbtfa-num\">3<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0007<\/strong><\/td><td>feat(cert_create) \u2014 F-6.A ajout KEY_ALG_ED25519 pure Ed25519<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">237<\/td><td class=\"sbtfa-num\">4<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0008<\/strong><\/td><td>feat(cert_create) \u2014 F-6.B.2 ML-DSA-87 dual-signature support<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">502<\/td><td class=\"sbtfa-num\">4<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0009<\/strong><\/td><td>feat(auth) \u2014 F-6.C backend auth\/hacl + plat TBBR Ed25519<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">698<\/td><td class=\"sbtfa-num\">6<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0010<\/strong><\/td><td>feat(auth) \u2014 F-6.C fix BL1_SOURCES TBBR auth stack BL1<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">128<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0011<\/strong><\/td><td>fix(auth) \u2014 F-6.C TBBR boot chain complet BL1\u2192BL2\u2192BL31<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">278<\/td><td class=\"sbtfa-num\">2<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0012<\/strong><\/td><td>feat(auth) \u2014 F-6.D ML-DSA-87 dual-signature TBBR end-to-end<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">322<\/td><td class=\"sbtfa-num\">4<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0013<\/strong><\/td><td>fix(auth) \u2014 F-6.E.1 parseur DigestInfo DER propre verify_hash<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">196<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\"><strong>0014<\/strong><\/td><td>feat(plat) \u2014 F-6.F AUTH_BACKEND=hacl explicite platform.mk<\/td><td class=\"sbtfa-mono\">01 juin<\/td><td class=\"sbtfa-num\">135<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr style=\"background: rgba(212,165,81,0.12);\"><td class=\"sbtfa-mono\"><strong style=\"color:#D4A551;\">0015<\/strong><\/td><td><strong>feat(auth) \u2014 F-6.H symmetric save\/restore SCTLR\/CPTR around HACL* calls<\/strong><\/td><td class=\"sbtfa-mono\">02 juin<\/td><td class=\"sbtfa-num\">308<\/td><td class=\"sbtfa-num\">1<\/td><\/tr>\n        <tr style=\"background: rgba(212,165,81,0.06); border-top: 2px solid rgba(212,165,81,0.4);\">\n          <td colspan=\"2\" style=\"font-weight:700; color:#D4A551;\">TOTAL \u2014 15 patches<\/td>\n          <td class=\"sbtfa-mono\" style=\"font-weight:700; color:#D4A551;\">31 mai \u2192 02 juin<\/td>\n          <td class=\"sbtfa-num\" style=\"font-weight:700; color:#D4A551;\">6 779<\/td>\n          <td class=\"sbtfa-num\" style=\"font-weight:700; color:#D4A551;\">21 uniq.<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Discipline d&rsquo;export.<\/strong> Avant publication, l&rsquo;historique des commits TF-A\n      a \u00e9t\u00e9 nettoy\u00e9 via <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">git filter-branch<\/code> pour aligner author + committer\n      sur <em>David Salomon &lt;davidsalomon@cortexorigin.com&gt;<\/em>, ajouter Signed-off-by\n      conforme DCO, et retirer tout trailer parasite \u00e9ventuel. V\u00e9rification finale automatis\u00e9e :\n      <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">0 mismatch \u00b7 0 trailer parasite<\/code> sur la fen\u00eatre <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">lts-v2.10.9..HEAD<\/code>.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">05<\/div>\n  <div class=\"sbtfa-pagefoot-center\">15 patches versionn\u00e9s \u00b7 6 779 lignes<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Replay vanilla OK<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 6 \u2014 F-6.H : SYM\u00c9TRIE SCTLR\/CPTR AUDIT-GRADE\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Palier F-6.H \u2014 Durcissement audit-grade<\/div>\n    <h2 class=\"sbtfa-title-sub\">Sym\u00e9trie SCTLR\/CPTR <em>autour des appels HACL*<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le palier F-6.H est le dernier de la s\u00e9quence S73c-f. Il transforme une baisse de garde\n      architecturale globale (\u00e9tablie en F-6.C\/D pour permettre les stores SIMD non align\u00e9s\n      de HACL*) en une <strong>fen\u00eatre minimale strictement born\u00e9e \u00e0 chaque appel\n      cryptographique<\/strong>. C&rsquo;est le palier qui permet \u00e0 la cha\u00eene d&rsquo;\u00eatre pr\u00e9sent\u00e9e \u00e0 un\n      \u00e9valuateur CESTI : la propri\u00e9t\u00e9 architecturale n&rsquo;est plus rel\u00e2ch\u00e9e que pendant la\n      dur\u00e9e d&rsquo;ex\u00e9cution d&rsquo;un verify, avec restauration sym\u00e9trique stricte.\n    <\/p>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 48px 0 16px;\">\n      AUDIT-NOTE F-6.H \u00b7 <em style=\"color:#1A4178;\">extrait du fichier <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.85em;\">hacl_crypto.c<\/code><\/em>\n    <\/h3>\n \n    <div class=\"sbtfa-auditnote\">\n<span class=\"sbtfa-note-header\">\/* AUDIT-NOTE F-6.H \u00b7 architectural state relaxation around HACL* calls *\/<\/span>\nTwo architecturally-relevant CPU state bits must be temporarily relaxed\naround HACL* invocations on AArch64:\n \n  1. CPTR_EL3.TFP (bit 10) \u2014 trap FP\/Advanced SIMD at EL3.\n     HACL* compiles SHA-256, Ed25519 and Curve25519 to scalar+SIMD\n     mixed code that touches vector registers (V0-V31) and uses\n     Advanced SIMD instructions for hashing rounds. With TFP set,\n     any FP\/SIMD use traps to EL3 (FPEN access trap). Must be 0\n     during a HACL* call at EL3.\n \n  2. SCTLR_ELx.A (bit 1) \u2014 alignment check enable.\n     HACL* compiled object code emits 128-bit Advanced SIMD stores\n     such as `str q, [sp, #408]` whose effective address is not\n     16-byte aligned (408 mod 16 == 8). With SCTLR.A set, these\n     generate a Data Abort. Must be 0 during a HACL* call at the\n     executing EL (EL3 for BL1, S-EL1 for BL2).\n \nWindow properties guaranteed by hacl_relax_arch_state() \/\nhacl_restore_arch_state():\n \n  \u2022 Per-call : exactly one HACL* invocation lives inside the window.\n    Non-HACL* C code (DER parsers, memcpy, NOTICE printf, return\n    paths) executes outside the window with stock alignment+trap\n    enforcement.\n \n  \u2022 Symmetric : the bits cleared by relax() are restored bit-by-bit\n    by restore() from the saved snapshot. No reliance on BL31 or any\n    downstream re-initialization to close the window.\n \n  \u2022 Short : a single Ed25519 verify on AArch64 (Cortex-A57 typical\n    emulation) completes well under 1 ms. SHA-256 of a few KB\n    similarly. Total cumulative exposure for full TBBR chain:\n    a few milliseconds at most, scattered across BL1+BL2 boot.\n \n  \u2022 Interrupt-safe by context : BL1 and BL2 run with IRQs masked\n    (DAIF.I = 1) until the corresponding bl1_main\/bl2_main exit\n    paths. No external code executes inside the window.\n \nCESTI-relevant note : this minimization replaces the earlier scheme\n(init() relaxed once for the whole boot path) which left SCTLR.A\nand CPTR_EL3.TFP relaxed across the entire BL1\/BL2 execution. The\nnew scheme bounds the relaxation strictly to HACL* execution time.\n    <\/div>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 48px 0 16px;\">\n      Compromis diff\u00e9renci\u00e9 EL3 (BL1) vs S-EL1 (BL2)\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 24px;\">\n      En EL3 (BL1), le wrapping per-call strict suffit : le code C entre deux appels\n      HACL* ex\u00e9cute peu d&rsquo;instructions, GCC ne g\u00e9n\u00e8re pas de stockages SIMD non align\u00e9s\n      observables. En S-EL1 (BL2), le code TF-A entre deux appels HACL* est plus volumineux\n      (load image I\/O, INFO printf, fip_find, handoff build) et GCC g\u00e9n\u00e8re r\u00e9guli\u00e8rement\n      des <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">str q<\/code> sur la pile \u00e0 des offsets non align\u00e9s 16B. Restaurer SCTLR_EL1.A=1\n      entre deux calls provoquerait un Data Abort silencieux.\n    <\/p>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 0;\">\n      <strong>D\u00e9cision F-6.H :<\/strong> clear SCTLR_EL1.A une fois en S-EL1 \u00e0 l&rsquo;init du\n      backend, restauration d\u00e9f\u00e9r\u00e9e au handoff BL31 (qui r\u00e9initialise CPTR_EL3 et SCTLR_EL3\n      via <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">bl31_entrypoint.S<\/code> \/ <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">el3_common_macros<\/code>). La fen\u00eatre EL3 reste\n      strictement born\u00e9e per-call ; la fen\u00eatre S-EL1 est born\u00e9e \u00e0 la dur\u00e9e de BL2 (~quelques\n      millisecondes), ce qui reste compatible avec l&rsquo;objectif d&rsquo;audit CESTI d\u00e8s lors que\n      TBBR est mono-thread, IRQs masqu\u00e9es, sans canal d&rsquo;entr\u00e9e externe pendant la fen\u00eatre.\n    <\/p>\n \n    <div class=\"sbtfa-disclaimer\" style=\"margin-top: 36px;\">\n      <strong>Pourquoi c&rsquo;est important.<\/strong> Avant F-6.H, le scheme initial (\u00e9tabli en\n      F-6.C) clearait CPTR_EL3.TFP et SCTLR.A une fois dans <code style=\"background:rgba(184,134,47,0.10); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">init()<\/code> et ne les\n      restaurait jamais \u2014 la garde architecturale restait baiss\u00e9e sur l&rsquo;int\u00e9gralit\u00e9 de\n      l&rsquo;ex\u00e9cution BL1+BL2. Un \u00e9valuateur CESTI aurait imm\u00e9diatement point\u00e9 cette asym\u00e9trie.\n      F-6.H ram\u00e8ne la fen\u00eatre cumul\u00e9e \u00e0 ~quelques millisecondes, documente la propri\u00e9t\u00e9\n      formellement, et confirme l&rsquo;absence de canal d&rsquo;entr\u00e9e pendant cette fen\u00eatre.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">06<\/div>\n  <div class=\"sbtfa-pagefoot-center\">F-6.H \u2014 Sym\u00e9trie SCTLR\/CPTR audit-grade<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Fen\u00eatre minimale per-call<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 7 \u2014 BOOT QEMU END-TO-END\n     ============================================================= -->\n<section class=\"sbtfa-section-dark\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Boot QEMU end-to-end \u2014 Chronologie observ\u00e9e<\/div>\n    <h2 class=\"sbtfa-title-sub\">57 \u00e9v\u00e9nements <em>du Booting Trusted Firmware<\/em> \u00e0 BL33<\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le boot QEMU sur la plateforme <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">qemu-system-aarch64 -machine virt,secure=on\n      -cpu cortex-a57 -m 1G<\/code> a \u00e9t\u00e9 ex\u00e9cut\u00e9 avec capture compl\u00e8te du log. 57 \u00e9v\u00e9nements\n      sont observ\u00e9s du premier <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">NOTICE: Booting Trusted Firmware<\/code> jusqu&rsquo;\u00e0 l&rsquo;entr\u00e9e\n      BL33. Les quatre jalons NOTICE (BL1 \u2192 BL2 \u2192 BL31 \u2192 BL33) sont tous pr\u00e9sents, et les 12\n      v\u00e9rifications cryptographiques attendues (6 Ed25519 + 6 ML-DSA-87) sortent toutes en\n      succ\u00e8s, sans aucun Data Abort ni panic ni mismatch.\n    <\/p>\n \n    <div class=\"sbtfa-code\">\n      <div class=\"sbtfa-code-title\">\u2500\u2500\u2500 Sortie boot QEMU \u00b7 extrait repr\u00e9sentatif \u2500\u2500\u2500<\/div>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">qemu-system-aarch64 -machine virt,secure=on -cpu cortex-a57 -m 1G \\<\/span>\n<span class=\"sbtfa-cmd\">    -nographic -bios build\/cortexnk\/debug\/cortexnk_fw.bios<\/span>\n \n<span class=\"sbtfa-out\">NOTICE:  Booting Trusted Firmware<\/span>\n<span class=\"sbtfa-out\">NOTICE:  BL1: v2.10.9(debug):<\/span>\n<span class=\"sbtfa-out\">INFO:    Using crypto library &lsquo;CORTEX NK HACL*&rsquo;<\/span>\n<span class=\"sbtfa-out\">INFO:    BL1: Loading BL2<\/span>\n<span class=\"sbtfa-out\">INFO:    Loading image id=6 at address 0xe03e000<\/span>           <span class=\"sbtfa-comment\">\/\/ cert tb_fw<\/span>\n<span class=\"sbtfa-out\">NOTICE:  NK-HACL: vhash data_len=44 digest_len=51<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-HACL: vhash result=1                              <\/span>  <span class=\"sbtfa-comment\">\/\/ SHA-256 #1<\/span>\n<span class=\"sbtfa-out\">NOTICE:  NK-HACL: vsig alg_len=7 sig_len=67 pk_len=44 data_len=572<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-HACL: vsig result=1                               <\/span>  <span class=\"sbtfa-comment\">\/\/ Ed25519 #1<\/span>\n<span class=\"sbtfa-out\">INFO:    Loading image id=1 at address 0xe03e000<\/span>           <span class=\"sbtfa-comment\">\/\/ BL2 image<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-HACL: vhash result=1                               <\/span> <span class=\"sbtfa-comment\">\/\/ SHA-256 #2<\/span>\n<span class=\"sbtfa-hi\">NOTICE:  BL1: Booting BL2<\/span>                                  <span class=\"sbtfa-comment\">\/\/ JALON 1<\/span>\n \n<span class=\"sbtfa-out\">NOTICE:  BL2: v2.10.9(debug):<\/span>\n<span class=\"sbtfa-out\">INFO:    BL2: nk_key_provider initialise (backend=dev)<\/span>\n<span class=\"sbtfa-out\">[5 certs suppl\u00e9mentaires charg\u00e9s : trusted_key, soc_fw_key,<\/span>\n<span class=\"sbtfa-out\"> soc_fw_content, nt_fw_key, nt_fw_content \u2192 5\u00d7 vsig result=1]<\/span>\n<span class=\"sbtfa-out\">[3 hash suppl\u00e9mentaires : BL31 image, BL33 image, manifest]<\/span>\n \n<span class=\"sbtfa-out\">INFO:    BL2: BL33 loaded @ 0x60000000 size=8<\/span>\n<span class=\"sbtfa-out\">INFO:    BL2: NK handoff @ 0xe0883d0 (magic=0x4e4b4846, caps=8)<\/span>\n \n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=6  result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #1 \u2014 TRUSTED_BOOT_FW_CERT<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=7  result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #2 \u2014 TRUSTED_KEY_CERT<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=9  result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #3 \u2014 SOC_FW_KEY_CERT<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=13 result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #4 \u2014 SOC_FW_CONTENT_CERT<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=11 result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #5 \u2014 NON_TRUSTED_FW_KEY_CERT<\/span>\n<span class=\"sbtfa-ok\">NOTICE:  NK-MLDSA: vsig img=15 result=0                       <\/span>  <span class=\"sbtfa-comment\">\/\/ ML-DSA-87 #6 \u2014 NON_TRUSTED_FW_CONTENT_CERT<\/span>\n \n<span class=\"sbtfa-hi\">NOTICE:  BL1: Booting BL31<\/span>                                 <span class=\"sbtfa-comment\">\/\/ JALON 2<\/span>\n<span class=\"sbtfa-out\">INFO:    Entry point address = 0xe0a0000<\/span>\n \n<span class=\"sbtfa-out\">NOTICE:  BL31: v2.10.9(debug):<\/span>                              <span class=\"sbtfa-comment\">\/\/ JALON 3<\/span>\n<span class=\"sbtfa-out\">INFO:    BL31: Preparing for EL3 exit to normal world<\/span>\n<span class=\"sbtfa-hi\">INFO:    Entry point address = 0x60000000<\/span>                  <span class=\"sbtfa-comment\">\/\/ JALON 4 \u2014 saut BL33 \u2713<\/span>\n<span class=\"sbtfa-out\">INFO:    SPSR = 0x3c5<\/span>\n    <\/div>\n \n    <div style=\"margin-top: 48px;\">\n      <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #FFFFFF; margin-bottom: 20px;\">\n        Compteurs <em style=\"color:#D4A551;\">finaux observ\u00e9s<\/em>\n      <\/h3>\n \n      <table class=\"sbtfa-table\">\n        <thead>\n          <tr>\n            <th>Indicateur<\/th>\n            <th style=\"text-align:right;\">Attendu<\/th>\n            <th style=\"text-align:right;\">Observ\u00e9<\/th>\n            <th style=\"width:90px;\">Verdict<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody>\n          <tr><td>V\u00e9rifications Ed25519 result=1 (succ\u00e8s)<\/td><td class=\"sbtfa-num\">6<\/td><td class=\"sbtfa-num\">6<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>V\u00e9rifications Ed25519 KO<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>V\u00e9rifications ML-DSA-87 result=0 (succ\u00e8s)<\/td><td class=\"sbtfa-num\">6<\/td><td class=\"sbtfa-num\">6<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>V\u00e9rifications ML-DSA-87 KO<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>V\u00e9rifications SHA-256 result=1 (succ\u00e8s)<\/td><td class=\"sbtfa-num\">\u22655<\/td><td class=\"sbtfa-num\">5<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>Jalons NOTICE (BL1 \u2192 BL2 \u2192 BL31 \u2192 BL33)<\/td><td class=\"sbtfa-num\">4<\/td><td class=\"sbtfa-num\">4<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>Data Abort \/ Synchronous Exception<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>panic \/ ERROR:<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>arch_state EL mismatch (instrumentation F-6.H)<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n          <tr><td>DigestInfo parse FAIL<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-ok\">\u2713 OK<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Conditions de mesure.<\/strong> Boot QEMU avec timeout 240 s. BL33 est un stub\n      de 8 octets dans cette configuration de test ; l&rsquo;entr\u00e9e BL33 (saut effectif depuis\n      BL31 \u00e0 0x60000000) est confirm\u00e9e par l&rsquo;absence d&rsquo;exception apr\u00e8s la derni\u00e8re ligne\n      <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.85em; color:#D4A551;\">Entry point address = 0x60000000<\/code>. Pour un d\u00e9ploiement r\u00e9el, BL33 contient\n      un OS h\u00f4te (Linux, hyperviseur, UEFI) qui prend le relais.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">07<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Boot QEMU end-to-end \u00b7 12 v\u00e9rifs crypto OK<\/div>\n  <div class=\"sbtfa-pagefoot-right\">BL33 atteint<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 8 \u2014 INVENTAIRE CRYPTO D\u00c9TAILL\u00c9\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Inventaire cryptographique \u2014 D\u00e9tail par certificat<\/div>\n    <h2 class=\"sbtfa-title-sub\">12 v\u00e9rifications \u00b7 <em>1 par cert \u00d7 2 algorithmes<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Chaque certificat TBBR de la cha\u00eene est v\u00e9rifi\u00e9 \u00e0 <strong>deux reprises<\/strong> :\n      une fois en Ed25519 (signature classique, v\u00e9rifi\u00e9e par HACL* qui est formellement\n      prouv\u00e9 F*\/Vale), une fois en ML-DSA-87 (signature post-quantique, v\u00e9rifi\u00e9e par\n      liboqs niveau FIPS 204 L5). La v\u00e9rification ML-DSA-87 utilise un format propri\u00e9taire\n      <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">.mldsa87.sig<\/code> de 4 639 octets stock\u00e9 en sidecar dans le FIP TOC, r\u00e9f\u00e9renc\u00e9\n      par UUID5 d\u00e9di\u00e9.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:60px;\">Idx<\/th>\n          <th style=\"width:90px;\">Image ID<\/th>\n          <th>Certificat TBBR<\/th>\n          <th style=\"width:130px;\">Ed25519 (HACL*)<\/th>\n          <th style=\"width:130px;\">ML-DSA-87 (liboqs)<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td class=\"sbtfa-mono\">0<\/td>\n          <td class=\"sbtfa-mono\">6<\/td>\n          <td><strong>TRUSTED_BOOT_FW_CERT<\/strong> \u00b7 cert de BL2<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\">1<\/td>\n          <td class=\"sbtfa-mono\">7<\/td>\n          <td><strong>TRUSTED_KEY_CERT<\/strong> \u00b7 cl\u00e9 Trusted World<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\">2<\/td>\n          <td class=\"sbtfa-mono\">9<\/td>\n          <td><strong>SOC_FW_KEY_CERT<\/strong> \u00b7 cl\u00e9 SoC FW (BL31 key)<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\">3<\/td>\n          <td class=\"sbtfa-mono\">13<\/td>\n          <td><strong>SOC_FW_CONTENT_CERT<\/strong> \u00b7 contenu SoC FW (BL31)<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\">4<\/td>\n          <td class=\"sbtfa-mono\">11<\/td>\n          <td><strong>NON_TRUSTED_FW_KEY_CERT<\/strong> \u00b7 cl\u00e9 Non-Trusted (BL33 key)<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\">5<\/td>\n          <td class=\"sbtfa-mono\">15<\/td>\n          <td><strong>NON_TRUSTED_FW_CONTENT_CERT<\/strong> \u00b7 contenu Non-Trusted (BL33)<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=1<\/td>\n          <td class=\"sbtfa-ok\">\u2713 result=0<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-card-grid\" style=\"margin-top: 48px;\">\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">CLASSIQUE<\/div>\n        <h3 class=\"sbtfa-card-title\">Ed25519 \u00b7 HACL* freestanding<\/h3>\n        <p class=\"sbtfa-card-text\">\n          V\u00e9rification cert par cert via backend <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">drivers\/auth\/hacl\/hacl_crypto.c<\/code>.\n          HACL* est la lib formellement v\u00e9rifi\u00e9e F*\/Vale d\u00e9velopp\u00e9e par INRIA et Microsoft\n          Research, utilis\u00e9e notamment par Firefox NSS et le kernel Linux. V\u00e9rification\n          binaire prouv\u00e9e Constant-Time au niveau ARM64 + x86-64 via Binsec\/Rel.\n          Algorithme rapide, robustesse 128 bits classique.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">F*\/Vale \u00b7 INRIA Prosecco<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #1A4178;\">\n        <div class=\"sbtfa-card-num\" style=\"color: #1A4178;\">POST-QUANTIQUE<\/div>\n        <h3 class=\"sbtfa-card-title\">ML-DSA-87 \u00b7 liboqs FIPS 204 L5<\/h3>\n        <p class=\"sbtfa-card-text\">\n          V\u00e9rification batch via <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">bl2\/nk_mldsa87_verify.c<\/code>. ML-DSA-87 est le\n          niveau le plus \u00e9lev\u00e9 du standard NIST FIPS 204 finalis\u00e9 en ao\u00fbt 2024 (r\u00e9sistance\n          \u00e9quivalente AES-256). Impl\u00e9ment\u00e9 via liboqs en mode freestanding aarch64 :\n          empreinte ~12,5 KB, signature 4 627 octets, cl\u00e9 publique 2 592 octets.\n          Robustesse contre les futurs ordinateurs quantiques cryptographiquement pertinents.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">FIPS 204 \u00b7 NIST L5 \u00b7 OQS Project<\/p>\n      <\/div>\n \n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Architecture du stockage des signatures ML-DSA.<\/strong> Les certificats TBBR\n      eux-m\u00eames sont des X.509 standard mono-signature Ed25519, conformes \u00e0 la spec TBBR\n      upstream \u2014 ce qui pr\u00e9serve la compatibilit\u00e9 avec les outils ARM\/Linaro. La signature\n      ML-DSA-87 compagne de chaque cert est stock\u00e9e s\u00e9par\u00e9ment dans le FIP TOC, dans des\n      sidecars <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">&lt;cert&gt;.mldsa87.sig<\/code> de 4 639 octets (12 octets header MLD1 +\n      4 627 octets signature brute). Chacun est r\u00e9f\u00e9renc\u00e9 par un UUID5 g\u00e9n\u00e9r\u00e9\n      d\u00e9terministiquement. Cette approche par sidecar \u00e9vite de devoir \u00e9tendre le format\n      X.509 ASN.1, et pr\u00e9serve l&rsquo;applicabilit\u00e9 upstream des patches.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">08<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Inventaire crypto \u00b7 6 Ed25519 + 6 ML-DSA-87<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Sidecars FIP TOC<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 9 \u2014 ROOT OF TRUST MANAGEMENT\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Root of Trust \u2014 Gestion de la cl\u00e9 racine<\/div>\n    <h2 class=\"sbtfa-title-sub\">O\u00f9 vit la ROTPK \u00b7 <em>provisioning \u00b7 r\u00e9vocation \u00b7 stockage<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Une cha\u00eene cryptographique n&rsquo;est jamais plus forte que la gestion de sa cl\u00e9 racine.\n      Pour un \u00e9valuateur EAL5\/6+, la question n&rsquo;est plus \u00ab quel algorithme ? \u00bb mais\n      \u00ab o\u00f9 vit la <strong>Root of Trust Public Key<\/strong> ? comment est-elle provisionn\u00e9e\n      en usine ? comment r\u00e9voqu\u00e9e en cas de compromission ? comment scell\u00e9e mat\u00e9riellement\n      contre le clonage ? \u00bb. Cette section documente l&rsquo;\u00e9tat actuel et la trajectoire S77\/S78.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:240px;\">\u00c9l\u00e9ment Root of Trust<\/th>\n          <th>M\u00e9canisme actuel \u00b7 S73c-f<\/th>\n          <th style=\"width:160px;\">Statut<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>ROTPK Ed25519<\/strong><\/td>\n          <td>Compil\u00e9e en dur dans le binaire BL1 via <code class=\"sbtfa-mono\" style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em;\">plat\/cortexnk\/cortexnk_rotpk.S<\/code>.\n          Empreinte SHA-256 ancr\u00e9e comme constante de r\u00e9f\u00e9rence. 32 octets cl\u00e9 publique Ed25519.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Actif (QEMU)<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>ROTPK ML-DSA-87<\/strong><\/td>\n          <td>Fournie par <code class=\"sbtfa-mono\" style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em;\">nk_key_provider<\/code> via <code class=\"sbtfa-mono\" style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em;\">dev_keys_embedded.h<\/code>\n          en BL2. 2 592 octets cl\u00e9 publique. Charg\u00e9e une fois par batch, z\u00e9ro\u00efs\u00e9e apr\u00e8s usage.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Actif (QEMU)<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Provisioning fab<\/strong><\/td>\n          <td>Cl\u00e9s sign\u00e9es en interne CORTEX AI\u2122 SAS via cert_create + binaire mldsa_host.\n          Cl\u00e9s priv\u00e9es Ed25519 et ML-DSA-87 jamais sorties de l&rsquo;environnement de signature\n          air-gapped (process interne NDA).<\/td>\n          <td class=\"sbtfa-warn\">~ Process dev<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Ancrage hardware cible<\/strong><\/td>\n          <td>TPM 2.0 EAL4+ (Infineon SLB 9670, ST33TPHF20I2C, Nuvoton NPCT75x) pour\n          mesures + scellement. Secure element optionnel (NXP A71CH, Optiga TPM)\n          pour stockage cl\u00e9s priv\u00e9es sensibles.<\/td>\n          <td class=\"sbtfa-warn\">\u2192 S77 hardware<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Mesure boot dans TPM<\/strong><\/td>\n          <td>Extension PCR cryptographique (SHA-256) \u00e0 chaque \u00e9tape : PCR[0] = BL1+SoC,\n          PCR[2] = BL2+config, PCR[4] = BL31, PCR[7] = state. Accumulation irr\u00e9versible\n          attestable. Pattern mature S4+S8 du module Secure Boot natif.<\/td>\n          <td class=\"sbtfa-warn\">\u2192 Int\u00e9gration S77<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Anti-clonage mat\u00e9riel<\/strong><\/td>\n          <td>Scellement cl\u00e9 via TPM PCR extension boot. Empreinte plate-forme unique\n          d\u00e9riv\u00e9e du PCR cumul\u00e9. Toute modification de la cha\u00eene BL invalide le scellement.\n          D\u00e9tection clone imm\u00e9diate \u00e0 attestation.<\/td>\n          <td class=\"sbtfa-warn\">\u2192 Int\u00e9gration S77<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>R\u00e9vocation certificat<\/strong><\/td>\n          <td>M\u00e9canisme TBBR upstream support\u00e9 : compteur version dans cert + anti-rollback\n          monotone via TPM NV (\u00e9quivalent S9 v1 du module natif). Un cert r\u00e9voqu\u00e9 ne peut\n          \u00eatre rejou\u00e9 m\u00eame avec acc\u00e8s flash.<\/td>\n          <td class=\"sbtfa-warn\">\u2192 Int\u00e9gration S77<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Rotation ROTPK<\/strong><\/td>\n          <td>Protocole multi-pass de transition d&rsquo;une ROTPK ancienne vers une nouvelle :\n          (1) inclusion nouvelle dans cert chain sign\u00e9 par ancienne, (2) validation par\n          BL1 en boot suivant, (3) verrouillage ancienne via NV TPM. Document\u00e9 roadmap.<\/td>\n          <td class=\"sbtfa-warn\">\u2192 Roadmap S78<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-card-grid\" style=\"margin-top: 56px;\">\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">AUJOURD&rsquo;HUI \u00b7 QEMU<\/div>\n        <h3 class=\"sbtfa-card-title\">ROTPK compil\u00e9e en dur<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Sur la plateforme de validation QEMU virt + Cortex-A57, la ROTPK Ed25519\n          est embarqu\u00e9e directement dans le binaire BL1 au format ASM via\n          <code class=\"sbtfa-mono\" style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-size:0.85em;\">cortexnk_rotpk.S<\/code>. La ROTPK ML-DSA-87 est fournie par\n          <code class=\"sbtfa-mono\" style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-size:0.85em;\">nk_key_provider<\/code> dans BL2. Mod\u00e8le de menace correspondant :\n          attaquant logiciel uniquement (pas d&rsquo;acc\u00e8s physique au binaire sign\u00e9).\n        <\/p>\n        <p class=\"sbtfa-card-tag\">\u00c9tat S73c-f juin 2026<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #1A4178;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#1A4178;\">DEMAIN \u00b7 HARDWARE<\/div>\n        <h3 class=\"sbtfa-card-title\">TPM 2.0 + secure element<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Sur board hardware physique (S77), la ROTPK sera ancr\u00e9e dans le TPM 2.0\n          EAL4+ ou un secure element type Optiga \/ NXP A71CH. Mesure boot par\n          extension PCR. Attestation distante via TPM Quote sign\u00e9. Scellement cl\u00e9s\n          critiques via TPM Seal sur \u00e9tat PCR. Mod\u00e8le de menace : attaquant physique\n          local, acc\u00e8s flash possible, mais pas acc\u00e8s au TPM tamper-resistant.\n        <\/p>\n        <p class=\"sbtfa-card-tag\" style=\"color:#1A4178;\">Cible S77 \u00b7 Q2 2027<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #B8862F;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#B8862F;\">\u00c0 TERME \u00b7 EAL6+<\/div>\n        <h3 class=\"sbtfa-card-title\">PUF + attestation distante<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Pour EAL6+ (horizon 2029-2030), \u00e9valuation de l&rsquo;ancrage ROTPK dans une\n          PUF (Physically Unclonable Function) silicium directement int\u00e9gr\u00e9e au SoC.\n          Pas de cl\u00e9 stock\u00e9e \u2014 cl\u00e9 reconstruite \u00e0 chaque boot depuis les\n          micro-variations physiques du die. Anti-clonage absolu, pas de surface\n          d&rsquo;attaque flash. Standard montant SAFEcrypto, GMV-SGI, Intrinsic-ID.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Roadmap EAL6\/7<\/p>\n      <\/div>\n \n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Position honn\u00eate sur l&rsquo;\u00e9tat actuel.<\/strong> Sur QEMU, la ROTPK est\n      compil\u00e9e en dur \u2014 c&rsquo;est le standard TBBR upstream, suffisant pour validation\n      fonctionnelle, insuffisant pour un d\u00e9ploiement op\u00e9rationnel. Le passage \u00e0 un\n      ancrage mat\u00e9riel TPM 2.0 ou secure element est <em>obligatoire<\/em> pour CSPN\n      ANSSI (palier vis\u00e9 Q3 2027) et fait l&rsquo;objet du sprint d\u00e9di\u00e9 S77. La trajectoire\n      compl\u00e8te Root of Trust est document\u00e9e dans le rapport CFVL-ROT-001 disponible\n      sous NDA pour \u00e9valuateurs DGA \/ CESTI \/ Common Criteria.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">09<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Root of Trust Management \u00b7 QEMU \u2192 Hardware \u2192 PUF<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Trajectoire S77\/S78<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 10 \u2014 MOD\u00c8LE DE MENACE \u00b7 NUANCE HYBRIDE PAR CHA\u00ceNE\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Mod\u00e8le de menace \u2014 Pr\u00e9cision audit-grade<\/div>\n    <h2 class=\"sbtfa-title-sub\">L&rsquo;hybridit\u00e9 tient au niveau <em>de la cha\u00eene<\/em>, pas du cert isol\u00e9<\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Cette section documente <strong>explicitement et honn\u00eatement<\/strong> la propri\u00e9t\u00e9 de\n      r\u00e9sistance post-quantique de la cha\u00eene S73c-f. La distinction entre \u00ab hybride par\n      cha\u00eene \u00bb et \u00ab hybride par cert \u00bb est subtile mais essentielle pour toute communication\n      audit-grade. Un \u00e9valuateur CESTI rigoureux pointera cette nuance \u2014 autant qu&rsquo;elle soit\n      document\u00e9e formellement par nos soins.\n    <\/p>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 48px 0 16px;\">\n      Propri\u00e9t\u00e9 formelle <em style=\"color:#1A4178;\">garantie<\/em>\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 24px;\">\n      Un adversaire disposant d&rsquo;un ordinateur quantique cryptographiquement pertinent\n      (CRQC) capable de casser Ed25519 via l&rsquo;algorithme de Shor <strong>ne peut pas produire\n      un firmware accept\u00e9 par la cha\u00eene compl\u00e8te BL1 \u2192 BL33<\/strong>. Cette propri\u00e9t\u00e9 repose\n      sur l&rsquo;exigence cumulative de deux signatures s\u00e9par\u00e9es :\n    <\/p>\n \n    <ul style=\"font-size: 15.5px; line-height: 1.8; color: #1A2842; margin-bottom: 28px; padding-left: 28px;\">\n      <li><strong>Ed25519<\/strong> (signature classique, h\u00e9rit\u00e9e TBBR upstream) \u2014 v\u00e9rifi\u00e9e par\n        BL1 sur le cert de BL2, puis par BL2 sur tous les certs des images charg\u00e9es.<\/li>\n      <li><strong>ML-DSA-87<\/strong> (signature post-quantique, ajout\u00e9e par CORTEX NK) \u2014 v\u00e9rifi\u00e9e\n        par BL2 en batch sur les 6 certs TBBR <em>apr\u00e8s<\/em> chargement complet, <em>avant<\/em>\n        tout transfert \u00e0 BL31.<\/li>\n    <\/ul>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 48px 0 16px;\">\n      Pr\u00e9cision auditable <em style=\"color:#B8862F;\">honn\u00eate<\/em>\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 24px;\">\n      L&rsquo;hybridit\u00e9 tient <strong>au niveau de la cha\u00eene compl\u00e8te, pas au niveau d&rsquo;un\n      certificat isol\u00e9<\/strong>. Les certificats X.509 du TBBR portent une signature Ed25519\n      unique au format upstream standard. La signature ML-DSA-87 est attach\u00e9e s\u00e9par\u00e9ment\n      par sidecar FIP et v\u00e9rifi\u00e9e en batch par <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">nk_mldsa87_verify_all_certs()<\/code>\n      en fin de cha\u00eene BL2. La propri\u00e9t\u00e9 PQ-r\u00e9sistante est donc <em>garantie post-v\u00e9rification\n      BL2 compl\u00e8te<\/em>, pas d\u00e8s le premier byte v\u00e9rifi\u00e9 en BL1.\n    <\/p>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 0;\">\n      Un adversaire CRQC capable de falsifier <em>un cert Ed25519 isol\u00e9<\/em> peut donc en\n      th\u00e9orie faire passer un cert modifi\u00e9 \u00e0 BL1 (qui le v\u00e9rifiera Ed25519-OK), mais BL2\n      d\u00e9tectera l&rsquo;incoh\u00e9rence en fin de cha\u00eene via la v\u00e9rification ML-DSA-87 compagne.\n      Le boot s&rsquo;arr\u00eate par <code style=\"background:rgba(26,40,66,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">panic()<\/code> avant tout saut BL31.\n    <\/p>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 48px 0 16px;\">\n      Caveat de port\u00e9e <em style=\"color:#B0382F;\">document\u00e9<\/em>\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 24px;\">\n      Pendant la fen\u00eatre intra-BL2 entre le chargement d&rsquo;une image et sa v\u00e9rification\n      ML-DSA, un adversaire CRQC ayant compromis Ed25519 pourrait th\u00e9oriquement faire\n      accepter une image falsifi\u00e9e par BL1. <strong>En pratique cette fen\u00eatre n&rsquo;est pas\n      exploitable<\/strong> :\n    <\/p>\n \n    <ul style=\"font-size: 15.5px; line-height: 1.8; color: #1A2842; margin-bottom: 28px; padding-left: 28px;\">\n      <li>BL2 s&rsquo;ex\u00e9cute en S-EL1 <strong>single-thread, single-core boot<\/strong><\/li>\n      <li><strong>IRQs masqu\u00e9es<\/strong> (DAIF.I = 1) jusqu&rsquo;\u00e0 l&rsquo;exit de bl2_main<\/li>\n      <li>Aucun canal d&rsquo;entr\u00e9e externe (pas de r\u00e9seau, pas d&rsquo;USB, pas d&rsquo;I\/O console)<\/li>\n      <li>Aucun secret cryptographique manipul\u00e9 pendant cette fen\u00eatre \u2014 rien \u00e0 exfiltrer<\/li>\n      <li>Aucune ex\u00e9cution d&rsquo;image utilisateur (BL33 pas encore atteint)<\/li>\n    <\/ul>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 0;\">\n      La vuln\u00e9rabilit\u00e9 formelle existe (diff\u00e9rence avec un sch\u00e9ma dual-sig par cert).\n      La vuln\u00e9rabilit\u00e9 <em>exploitable<\/em> n&rsquo;existe pas dans le mod\u00e8le de menace r\u00e9el.\n      Cette distinction est exactement ce que le vocabulaire audit-grade sert \u00e0 exprimer.\n    <\/p>\n \n    <div class=\"sbtfa-disclaimer\" style=\"margin-top: 36px;\">\n      <strong>Roadmap d&rsquo;\u00e9volution \u2014 en cours d&rsquo;int\u00e9gration.<\/strong> Le passage \u00e0 un sch\u00e9ma\n      <em>dual-sig par certificat<\/em> (chaque X.509 portant deux signatures Ed25519 + ML-DSA-87\n      c\u00f4te \u00e0 c\u00f4te au format ASN.1 hybride) est <strong>en cours d&rsquo;int\u00e9gration<\/strong>\n      (sprints S75\/S76 actifs). Ce passage comprend : extension de <code style=\"background:rgba(184,134,47,0.10); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">cert_create<\/code>\n      upstream, adaptation de <code style=\"background:rgba(184,134,47,0.10); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">auth_mod.c<\/code> upstream, alignement sur le draft IETF\n      <code style=\"background:rgba(184,134,47,0.10); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em;\">lamps-pq-composite-sigs<\/code>, retrait des sidecars. B\u00e9n\u00e9fice attendu : propri\u00e9t\u00e9\n      formelle PQ stricte d\u00e8s BL1, alignement EAL6+ formel. \u00c0 la date de publication S73c-f,\n      la propri\u00e9t\u00e9 hybride par cha\u00eene est jug\u00e9e suffisante pour le palier CSPN ANSSI vis\u00e9\n      Q3 2027 et la trajectoire EAL4+\/5.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">10<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Mod\u00e8le de menace \u00b7 Hybride par cha\u00eene<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Caveat document\u00e9<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 10 \u2014 REPRODUCTIBILIT\u00c9\n     ============================================================= -->\n<section class=\"sbtfa-section-dark\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Reproductibilit\u00e9 \u2014 Toolchain et commandes<\/div>\n    <h2 class=\"sbtfa-title-sub\">Rebuild complet <em>par un tiers<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      L&rsquo;ensemble du sprint S73c-f est con\u00e7u pour \u00eatre rejou\u00e9 par un tiers \u00e0 partir des\n      sources publiques upstream TF-A + des 15 patches livr\u00e9s. Aucune d\u00e9pendance priv\u00e9e,\n      aucun composant propri\u00e9taire, aucun secret int\u00e9gr\u00e9 (les cl\u00e9s de d\u00e9veloppement\n      embarqu\u00e9es dans <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.9em; color:#D4A551;\">dev_keys_embedded.h<\/code> sont marqu\u00e9es <em>dev only \u00b7 DO NOT USE\n      IN PRODUCTION<\/em>).\n    <\/p>\n \n    <div class=\"sbtfa-code\">\n      <div class=\"sbtfa-code-title\">\u2500\u2500\u2500 Proc\u00e9dure de reproduction \u2500\u2500\u2500<\/div>\n<span class=\"sbtfa-comment\"># 1. Clone et pr\u00e9paration TF-A<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">git clone https:\/\/git.trustedfirmware.org\/TF-A\/trusted-firmware-a.git<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">cd trusted-firmware-a<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">git checkout lts-v2.10.9<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">git checkout -b cortexnk-s73c-f<\/span>\n \n<span class=\"sbtfa-comment\"># 2. Application des 15 patches dans l&rsquo;ordre<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">for p in \/chemin\/patches\/cortexnk_tfa_s73c-f\/*.patch ; do<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">git am &lt; \u00ab\u00a0$p\u00a0\u00bb<\/span>\n<span class=\"sbtfa-prompt\">  <\/span> <span class=\"sbtfa-cmd\">done<\/span>\n<span class=\"sbtfa-out\"># Sortie attendue : 15\u00d7 \u00ab\u00a0Applying: &#8230;\u00a0\u00bb sans aucun conflit<\/span>\n \n<span class=\"sbtfa-comment\"># 3. Build complet via Docker<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">docker run &#8211;rm \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">-v $PWD:\/work\/tfa \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">-v \/chemin\/mbedtls-3.6.4:\/mbedtls \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">-w \/work\/tfa \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">cortex-nk-tfa-tools:debian-bookworm \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">bash -c \u00ab\u00a0<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">  make PLAT=cortexnk CROSS_COMPILE=aarch64-linux-gnu- \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">       DEBUG=1 V=1 TRUSTED_BOARD_BOOT=1 GENERATE_COT=1 \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">       MBEDTLS_DIR=\/mbedtls AUTH_BACKEND=hacl \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">       KEY_ALG=ed25519 HASH_ALG=sha256 \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">       all fip\u00a0\u00bb<\/span>\n \n<span class=\"sbtfa-comment\"># 4. Lancement boot QEMU<\/span>\n<span class=\"sbtfa-prompt\">$<\/span> <span class=\"sbtfa-cmd\">qemu-system-aarch64 -machine virt,secure=on -cpu cortex-a57 -m 1G \\<\/span>\n<span class=\"sbtfa-prompt\">      <\/span> <span class=\"sbtfa-cmd\">-nographic -bios build\/cortexnk\/debug\/cortexnk_fw.bios<\/span>\n \n<span class=\"sbtfa-ok\"># R\u00e9sultat attendu : 12 v\u00e9rifs crypto OK + BL33 atteint + 0 erreur<\/span>\n    <\/div>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #FFFFFF; margin: 48px 0 16px;\">\n      Hashes de r\u00e9f\u00e9rence <em style=\"color:#D4A551;\">(NDA \u00b7 DGA \/ CESTI)<\/em>\n    <\/h3>\n \n    <p style=\"font-size: 14.5px; line-height: 1.7; color: #B8C5D9; margin-bottom: 24px;\">\n      Les hashes SHA-256 des artefacts du build de r\u00e9f\u00e9rence ne sont pas publi\u00e9s en clair\n      sur cette page (s\u00e9curit\u00e9 op\u00e9rationnelle). Ils sont disponibles sous NDA pour les\n      \u00e9valuateurs DGA\/ANSSI, les CESTI agr\u00e9\u00e9s, et les partenaires institutionnels du\n      programme Cortex Origin. La structure de r\u00e9f\u00e9rence est donn\u00e9e \u00e0 titre indicatif :\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:180px;\">Artefact<\/th>\n          <th style=\"width:120px;\">Taille (octets)<\/th>\n          <th>SHA-256 (sous NDA)<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>bl1.bin<\/strong><\/td>\n          <td class=\"sbtfa-num\">128 681<\/td>\n          <td><span class=\"sbtfa-hash-blur-wrap\"><span class=\"sbtfa-hash-blur\">270c6c1548b950bb49fd2972815eb8f363717490ab7790029877e47a38452b23<\/span><\/span><\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>bl2.bin<\/strong><\/td>\n          <td class=\"sbtfa-num\">172 969<\/td>\n          <td><span class=\"sbtfa-hash-blur-wrap\"><span class=\"sbtfa-hash-blur\">ac638a51ef0904da5777a022ef0f54f81cc5abf90a04263f1897abccf53c4466<\/span><\/span><\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>cortexnk_fw.bios<\/strong><\/td>\n          <td class=\"sbtfa-num\">528 305<\/td>\n          <td><span class=\"sbtfa-hash-blur-wrap\"><span class=\"sbtfa-hash-blur\">fa8460854b2489d97d8d1c95ccb3b0bc80cf466aada86cc5484a4a46ca2d1833<\/span><\/span><\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>fip.bin<\/strong><\/td>\n          <td class=\"sbtfa-num\">~260 000<\/td>\n          <td><span class=\"sbtfa-hash-blur-wrap\"><span class=\"sbtfa-hash-blur\">5b8301c23fb1d97ddf56594b670eff40fb1eb5aa854d40b89ee6c94c04d9a9ff<\/span><\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Reproductibilit\u00e9 fonctionnelle vs reproductibilit\u00e9 stricte.<\/strong> Les\n      binaires ne sont pas bit-\u00e0-bit reproductibles entre deux builds successifs : ils\n      embarquent une cha\u00eene <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.85em; color:#D4A551;\">Built : HH:MM:SS, MMM D YYYY<\/code> issue des macros\n      standard TF-A <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.85em; color:#D4A551;\">__DATE__<\/code> \/ <code style=\"background:rgba(255,255,255,0.08); padding:2px 6px; border-radius:2px; font-family:monospace; font-size:0.85em; color:#D4A551;\">__TIME__<\/code>, modifi\u00e9e \u00e0 chaque\n      compilation. La reproductibilit\u00e9 fonctionnelle est en revanche assur\u00e9e : code\n      ex\u00e9cutable et certificats embarqu\u00e9s sont identiques aux d\u00e9calages correspondants.\n      Pour passer en reproductibilit\u00e9 stricte bit-\u00e0-bit, neutraliser ces macros via un\n      patch upstream compl\u00e9mentaire (roadmap S74 ind\u00e9pendante).\n    <\/div>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 32px; font-weight: 400; color: #FFFFFF; margin: 64px 0 16px;\">\n      Supply-chain security <em style=\"color:#D4A551;\">SBOM \u00b7 SLSA \u00b7 provenance<\/em>\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #B8C5D9; margin-bottom: 28px;\">\n      Au-del\u00e0 de la reproductibilit\u00e9 du build, la cha\u00eene S73c-f s&rsquo;inscrit dans la\n      discipline supply-chain security devenue standard (US Executive Order 14028,\n      EU Cyber Resilience Act, NIST SSDF). Trois m\u00e9canismes compl\u00e9mentaires sont\n      mis en \u0153uvre pour rendre auditable l&rsquo;int\u00e9gralit\u00e9 de la cha\u00eene de d\u00e9pendances.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:200px;\">M\u00e9canisme<\/th>\n          <th>Description \u00b7 p\u00e9rim\u00e8tre S73c-f<\/th>\n          <th style=\"width:140px;\">Statut<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>SBOM SPDX 2.3<\/strong><\/td>\n          <td>Software Bill of Materials au format SPDX 2.3 g\u00e9n\u00e9r\u00e9 automatiquement \u00e0\n          chaque build via Syft. Couvre TF-A LTS v2.10.9 (base upstream), HACL* freestanding,\n          liboqs ML-DSA-87, mbedTLS 3.6.4, OpenSSL 3.0.20, toolchain\n          aarch64-linux-gnu-gcc 12.2.0. Hashes SHA-256 des d\u00e9pendances inclus.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 G\u00e9n\u00e9r\u00e9 build<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Attestation SLSA L2<\/strong><\/td>\n          <td>Provenance sign\u00e9e niveau SLSA 2 (Supply-chain Levels for Software Artifacts).\n          Build attest\u00e9 reproducible via image Docker scell\u00e9e\n          (<code class=\"sbtfa-mono\" style=\"background:rgba(255,255,255,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em; color:#D4A551;\">cortex-nk-tfa-tools:debian-bookworm<\/code>, id <code class=\"sbtfa-mono\" style=\"background:rgba(255,255,255,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em; color:#D4A551;\">d99054aaecb1<\/code>). Attestation\n          sign\u00e9e via Cosign + sigstore en sortie de build.<\/td>\n          <td class=\"sbtfa-warn\">~ En cours<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Provenance Git sign\u00e9e<\/strong><\/td>\n          <td>Tous les commits des 15 patches sign\u00e9s GPG par David Salomon\n          (<code class=\"sbtfa-mono\" style=\"background:rgba(255,255,255,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em; color:#D4A551;\">davidsalomon@cortexorigin.com<\/code>). Author = committer align\u00e9 via\n          filter-branch. <code class=\"sbtfa-mono\" style=\"background:rgba(255,255,255,0.08); padding:1px 5px; border-radius:2px; font-size:0.9em; color:#D4A551;\">Signed-off-by<\/code> conforme DCO. Aucun trailer parasite.\n          Replay vanilla LTS v2.10.9 produit tree-hash identique.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Hash chain d\u00e9pendances<\/strong><\/td>\n          <td>HACL* freestanding compil\u00e9e avec hash de r\u00e9f\u00e9rence v\u00e9rifi\u00e9 (build INRIA reproductible).\n          liboqs ML-DSA-87 build\u00e9e depuis tag git sign\u00e9 OQS-Project. MbedTLS 3.6.4 stable\n          tag upstream. Tous les hashes SHA-256 ancr\u00e9s dans le SBOM SPDX.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Valid\u00e9<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Vulnerability scanning<\/strong><\/td>\n          <td>Scan CVE des d\u00e9pendances via Grype + OSV-Scanner sur le SBOM SPDX g\u00e9n\u00e9r\u00e9.\n          Aucune CVE critique non patch\u00e9e \u00e0 la date de publication (juin 2026).\n          Rapport disponible sous NDA.<\/td>\n          <td class=\"sbtfa-ok\">\u2713 0 CVE critique<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Pourquoi c&rsquo;est important pour d\u00e9fense \/ souverainet\u00e9.<\/strong> La\n      compromission supply-chain est devenue le vecteur d&rsquo;attaque dominant pour les\n      cibles institutionnelles (SolarWinds 2020, XZ Utils 2024, npm tea poisoning).\n      Un dossier de Secure Boot, aussi v\u00e9rifi\u00e9 soit-il, doit tracer chaque d\u00e9pendance.\n      SBOM SPDX + SLSA + provenance sign\u00e9e constituent le minimum r\u00e9glementaire pour\n      les march\u00e9s publics europ\u00e9ens \u00e0 partir de 2027 (CRA \u00b7 NIS2 \u00b7 Directive REC).\n      Tous les rapports SBOM, attestations SLSA et scans CVE sont disponibles sous\n      NDA pour \u00e9valuateurs DGA \/ CESTI \/ Common Criteria.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">11<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Reproductibilit\u00e9 \u00b7 Docker \u00b7 SBOM SPDX \u00b7 SLSA<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Hashes + SBOM sous NDA<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 11 \u2014 EMPREINTE M\u00c9MOIRE\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Empreinte m\u00e9moire \u2014 Co\u00fbt d&rsquo;int\u00e9gration ML-DSA-87<\/div>\n    <h2 class=\"sbtfa-title-sub\">12,5 KB ML-DSA-87 \u00b7 <em>marge BL2 ~57 %<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      L&rsquo;ajout de la couche post-quantique ML-DSA-87 dans BL2 a un co\u00fbt m\u00e9moire mesur\u00e9.\n      La librairie liboqs en mode freestanding aarch64 occupe 12 536 octets de code (text),\n      sans data ni bss. BL2 dans son ensemble p\u00e8se 172 969 octets, dans une allocation de\n      393 216 octets \u2014 soit une marge libre de ~57 % pour des extensions futures (sidecars\n      additionnels, autres primitives PQC, t\u00e9l\u00e9m\u00e9trie boot).\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th>Composant<\/th>\n          <th style=\"text-align:right;\">.text<\/th>\n          <th style=\"text-align:right;\">.rodata<\/th>\n          <th style=\"text-align:right;\">.data + .bss<\/th>\n          <th style=\"text-align:right;\">Total<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr><td class=\"sbtfa-mono\">libmldsa87_aarch64.a \u00b7 10 objets<\/td><td class=\"sbtfa-num\">11 512<\/td><td class=\"sbtfa-num\">1 024<\/td><td class=\"sbtfa-num\">0<\/td><td class=\"sbtfa-num\" style=\"color:#B8862F; font-weight:700;\">12 536<\/td><\/tr>\n        <tr><td class=\"sbtfa-mono\">libhacl_aarch64.a \u00b7 sous-ensemble TBBR<\/td><td class=\"sbtfa-num\">53 360<\/td><td class=\"sbtfa-num\">15 568<\/td><td class=\"sbtfa-num\">11<\/td><td class=\"sbtfa-num\" style=\"color:#B8862F; font-weight:700;\">~68 939<\/td><\/tr>\n        <tr style=\"background: rgba(184,134,47,0.06);\"><td><strong>bl2.bin actuel<\/strong> \u00b7 TBBR PQ end-to-end<\/td><td class=\"sbtfa-num\">172 032<\/td><td class=\"sbtfa-num\">\u2014<\/td><td class=\"sbtfa-num\">~189 K bss<\/td><td class=\"sbtfa-num\" style=\"font-weight:700; color:#B8862F;\">172 969<\/td><\/tr>\n        <tr><td><strong>BL2 allocation<\/strong> \u00b7 platform_def.h<\/td><td class=\"sbtfa-num\">\u2014<\/td><td class=\"sbtfa-num\">\u2014<\/td><td class=\"sbtfa-num\">\u2014<\/td><td class=\"sbtfa-num\" style=\"font-weight:700;\">393 216<\/td><\/tr>\n        <tr style=\"background: rgba(46,139,87,0.08); border-top: 2px solid rgba(46,139,87,0.4);\">\n          <td><strong>Marge libre BL2<\/strong><\/td>\n          <td class=\"sbtfa-num\">\u2014<\/td>\n          <td class=\"sbtfa-num\">\u2014<\/td>\n          <td class=\"sbtfa-num\">\u2014<\/td>\n          <td class=\"sbtfa-num sbtfa-ok\"><strong>~220 247 (~57 %)<\/strong><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Comparaison hors-CORTEX NK.<\/strong> \u00c0 titre indicatif, un BL2 vanilla TF-A\n      LTS v2.10.9 avec TBBR mbedTLS classique p\u00e8se typiquement ~140-160 KB selon plateforme.\n      L&rsquo;ajout du backend HACL* (Ed25519 + SHA-256) + de la couche ML-DSA-87 ajoute environ\n      ~80 KB, soit ~50 % d&rsquo;overhead sur le BL2. Cette empreinte tient confortablement dans\n      l&rsquo;allocation cortexnk de 384 KB et serait \u00e9galement compatible avec la plupart des\n      plateformes ARM Cortex-A commerciales (allocations typiques 256-512 KB pour BL2).\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">12<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Empreinte m\u00e9moire \u00b7 ~57 % marge BL2<\/div>\n  <div class=\"sbtfa-pagefoot-right\">12,5 KB ML-DSA-87<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 12 \u2014 BENCHMARK CONCURRENTIEL\n     ============================================================= -->\n<section class=\"sbtfa-section-dark\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Benchmark concurrentiel \u2014 Positionnement \u00e9tat de l&rsquo;art<\/div>\n    <h2 class=\"sbtfa-title-sub\">Aucune impl\u00e9mentation publique \u00e9quivalente <em>connue \u00e0 ce jour<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      L&rsquo;\u00e9tat de l&rsquo;art a \u00e9t\u00e9 investigu\u00e9 activement via recherches web cibl\u00e9es au moment de\n      la publication (juin 2026), sur les acteurs susceptibles d&rsquo;avoir produit un travail\n      comparable : Google AVB (Android), TianoCore EDK II (UEFI), PQShield (commercial),\n      MbedTLS upstream, Trusted Firmware-A upstream, Linux kernel, travaux acad\u00e9miques\n      arXiv\/eprint. Aucun ne couvre exactement le p\u00e9rim\u00e8tre de S73c-f.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th>Acteur \/ projet<\/th>\n          <th style=\"width:130px;\">Cible<\/th>\n          <th style=\"width:130px;\">PQ end-to-end<\/th>\n          <th style=\"width:130px;\">TBBR \/ TF-A<\/th>\n          <th style=\"width:120px;\">Open source<\/th>\n          <th style=\"width:110px;\">Statut<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr style=\"background: rgba(212,165,81,0.10);\">\n          <td><strong style=\"color:#D4A551;\">CORTEX NK S73c-f<\/strong> \ud83c\uddeb\ud83c\uddf7<\/td>\n          <td>TBBR ARM TF-A<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Hybride par cha\u00eene<\/td>\n          <td class=\"sbtfa-ok\">\u2713 LTS v2.10.9<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Patches publi\u00e9s<\/td>\n          <td class=\"sbtfa-ok\">Juin 2026<\/td>\n        <\/tr>\n        <tr>\n          <td>Google AVB \u00b7 Android \ud83c\uddfa\ud83c\uddf8<\/td>\n          <td>Post-bootloader<\/td>\n          <td class=\"sbtfa-warn\">~ ML-DSA tests beta<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Android only<\/td>\n          <td class=\"sbtfa-warn\">~ AOSP<\/td>\n          <td class=\"sbtfa-warn\">Mars 2026<\/td>\n        <\/tr>\n        <tr>\n          <td>TianoCore EDK II \u00b7 UEFI<\/td>\n          <td>UEFI<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Issue ouverte<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Non TBBR<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Open<\/td>\n          <td class=\"sbtfa-fail\">Pas impl\u00e9ment\u00e9<\/td>\n        <\/tr>\n        <tr>\n          <td>PQShield \ud83c\uddec\ud83c\udde7<\/td>\n          <td>Commercial<\/td>\n          <td class=\"sbtfa-warn\">~ Building blocks<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Non TF-A<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Propri\u00e9taire<\/td>\n          <td class=\"sbtfa-warn\">Conceptuel<\/td>\n        <\/tr>\n        <tr>\n          <td>MbedTLS upstream<\/td>\n          <td>TLS \/ X.509<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Pas ML-DSA<\/td>\n          <td class=\"sbtfa-warn\">~ Utilis\u00e9 par TF-A<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Open<\/td>\n          <td class=\"sbtfa-fail\">Roadmap discut\u00e9e<\/td>\n        <\/tr>\n        <tr>\n          <td>TF-A upstream \ud83c\uddec\ud83c\udde7<\/td>\n          <td>ARM firmware<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Aucun patch<\/td>\n          <td class=\"sbtfa-ok\">\u2713 R\u00e9f\u00e9rence<\/td>\n          <td class=\"sbtfa-ok\">\u2713 Open<\/td>\n          <td class=\"sbtfa-fail\">Pas de PQ<\/td>\n        <\/tr>\n        <tr>\n          <td>Linux kernel module signing<\/td>\n          <td>Post-OS<\/td>\n          <td class=\"sbtfa-ok\">\u2713 ML-DSA 6.19<\/td>\n          <td class=\"sbtfa-fail\">\u2717 Orthogonal<\/td>\n          <td class=\"sbtfa-ok\">\u2713 GPL<\/td>\n          <td class=\"sbtfa-warn\">Hors scope boot<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Lecture du tableau.<\/strong> Google AVB est le concurrent direct le plus\n      visible (annonce mars 2026), mais son p\u00e9rim\u00e8tre est <em>post-bootloader<\/em> (cha\u00eene\n      Android vbmeta \/ boot.img \/ system.img), pas la cha\u00eene TBBR firmware BL1\u2192BL33.\n      Les deux approches sont <strong>compl\u00e9mentaires<\/strong> : AVB ne prot\u00e8ge pas contre\n      un BL2 \/ BL31 compromis ; CORTEX NK S73c-f ne prot\u00e8ge pas contre une image Android\n      compromise. Le p\u00e9rim\u00e8tre exact de S73c-f \u2014 <em>TBBR ARM TF-A end-to-end BL1\u2192BL33\n      hybride Ed25519 + ML-DSA-87 publi\u00e9 sous patches reproductibles upstream<\/em> \u2014 est\n      \u00e0 notre connaissance unique au moment de la publication.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">13<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Benchmark concurrentiel \u00b7 \u00c9tat de l&rsquo;art<\/div>\n  <div class=\"sbtfa-pagefoot-right\">P\u00e9rim\u00e8tre unique<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 13 \u2014 FRONTI\u00c8RES DOCUMENT\u00c9ES (CAVEATS HONN\u00caTES)\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Discipline audit-grade \u2014 Fronti\u00e8res document\u00e9es<\/div>\n    <h2 class=\"sbtfa-title-sub\">Ce que nous <em>ne pr\u00e9tendons pas<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      La transparence sur les limites est ce qui distingue un dossier audit-grade d&rsquo;un\n      slide marketing. CORTEX NK documente explicitement quatre fronti\u00e8res du sprint\n      S73c-f, v\u00e9rifiables dans le code et dans le rapport de validation. C&rsquo;est cette\n      honn\u00eatet\u00e9 qui fait la cr\u00e9dibilit\u00e9 devant ANSSI \/ CESTI \/ DGA.\n    <\/p>\n \n    <div class=\"sbtfa-card-grid\">\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #B0382F;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#B0382F;\">FRONTI\u00c8RE 1<\/div>\n        <h3 class=\"sbtfa-card-title\">QEMU \u00b7 pas hardware physique<\/h3>\n        <p class=\"sbtfa-card-text\">\n          La validation end-to-end a \u00e9t\u00e9 effectu\u00e9e sur QEMU <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">qemu-system-aarch64\n          virt + cortex-a57<\/code>. Le portage sur un board ARM Cortex-A physique\n          (Raspberry Pi 5, RK3588, NXP i.MX9, ou cibles d\u00e9fense type Cortex-A76 industriel)\n          n&rsquo;est pas encore fait. \u00c9tape obligatoire pour CSPN ANSSI \/ EAL.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Roadmap S77 \u00b7 hardware<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #B8862F;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#B8862F;\">FRONTI\u00c8RE 2 \u00b7 EN R\u00c9SOLUTION<\/div>\n        <h3 class=\"sbtfa-card-title\">Hybride par cha\u00eene \u00b7 dual-sig par cert <em style=\"color:#2E8B57;\">en cours<\/em><\/h3>\n        <p class=\"sbtfa-card-text\">\n          La r\u00e9sistance PQ tient au niveau de la cha\u00eene compl\u00e8te (v\u00e9rif ML-DSA-87 batch\n          en BL2 post-load), pas au niveau d&rsquo;un certificat isol\u00e9. Caveat de fen\u00eatre\n          intra-BL2 document\u00e9 et d\u00e9montr\u00e9 non-exploitable. Le passage \u00e0 un sch\u00e9ma\n          dual-sig par cert (propri\u00e9t\u00e9 PQ stricte d\u00e8s BL1) est <strong>en cours\n          d&rsquo;int\u00e9gration<\/strong> via les sprints S75\/S76 actifs.\n        <\/p>\n        <p class=\"sbtfa-card-tag\" style=\"color:#2E8B57;\">S75\/S76 \u00b7 dual-sig en cours<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #B0382F;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#B0382F;\">FRONTI\u00c8RE 3<\/div>\n        <h3 class=\"sbtfa-card-title\">Reproductibilit\u00e9 fonctionnelle, pas stricte<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Les binaires diff\u00e8rent entre deux builds successifs sur quelques octets\n          (timestamps <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">__DATE__<\/code> \/ <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">__TIME__<\/code> embarqu\u00e9s). Le code ex\u00e9cutable\n          et les certificats sont identiques. Passer en reproductibilit\u00e9 stricte bit-\u00e0-bit\n          demande un patch upstream compl\u00e9mentaire (neutraliser ces macros TF-A).\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Roadmap S74 \u00b7 bit-\u00e0-bit<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\" style=\"border-top-color: #B0382F;\">\n        <div class=\"sbtfa-card-num\" style=\"color:#B0382F;\">FRONTI\u00c8RE 4<\/div>\n        <h3 class=\"sbtfa-card-title\">Sym\u00e9trie F-6.H diff\u00e9renci\u00e9e EL3 vs S-EL1<\/h3>\n        <p class=\"sbtfa-card-text\">\n          En BL1 (EL3), le wrap per-call strict est appliqu\u00e9. En BL2 (S-EL1), une fen\u00eatre\n          module-level est ouverte \u00e0 l&rsquo;init du backend et ferm\u00e9e implicitement par la\n          r\u00e9init BL31. Compromis document\u00e9 formellement, justifi\u00e9 par la quantit\u00e9 de code\n          C inter-call de GCC qui \u00e9met des stockages SIMD non align\u00e9s.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">F-6.H AUDIT-NOTE \u00b7 document\u00e9<\/p>\n      <\/div>\n \n    <\/div>\n \n    <div class=\"sbtfa-disclaimer\" style=\"margin-top: 40px;\">\n      <strong>Pourquoi ces fronti\u00e8res sont des arguments forts.<\/strong> Un \u00e9valuateur\n      ANSSI \/ CESTI sait que 100 % n&rsquo;existe pas. Un dossier qui pr\u00e9tend tout r\u00e9soudre est\n      suspect. CORTEX NK documente formellement ses fronti\u00e8res comme \u00e9tat de l&rsquo;art au\n      moment de la publication \u2014 exactement ce que la discipline audit-grade exige.\n      Notre trajectoire actuelle (S74 reproductibilit\u00e9 stricte \u00b7 <strong>S75\/S76 dual-sig\n      par cert en cours d&rsquo;int\u00e9gration<\/strong> \u00b7 S77 hardware physique \u00b7 <strong>pr\u00e9-audit\n      CESTI d\u00e9marr\u00e9<\/strong>) r\u00e9sout ces fronti\u00e8res une par une, en parall\u00e8le de la\n      consolidation produit, sur un calendrier align\u00e9 sur le palier CSPN vis\u00e9 Q3 2027.\n    <\/div>\n \n    <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 32px; font-weight: 400; color: #0A1A33; margin: 64px 0 16px;\">\n      Menaces <em style=\"color:#B0382F;\">explicitement hors p\u00e9rim\u00e8tre<\/em> S73c-f\n    <\/h3>\n \n    <p style=\"font-size: 15.5px; line-height: 1.7; color: #1A2842; margin-bottom: 28px;\">\n      Le sprint S73c-f couvre la cha\u00eene logicielle de v\u00e9rification cryptographique BL1 \u2192\n      BL33. Les classes d&rsquo;attaques suivantes sont <strong>explicitement hors p\u00e9rim\u00e8tre<\/strong>\n      du logiciel CORTEX NK et n\u00e9cessitent des contre-mesures mat\u00e9rielles ou architecturales\n      distinctes (TPM 2.0, secure element, mesures physiques de protection, m\u00e9canismes\n      anti-glitch silicium). Elles sont mentionn\u00e9es ici pour transparence audit.\n    <\/p>\n \n    <table class=\"sbtfa-table\">\n      <thead>\n        <tr>\n          <th style=\"width:200px;\">Classe d&rsquo;attaque<\/th>\n          <th>Description<\/th>\n          <th style=\"width:240px;\">Contre-mesure attendue<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Fault injection<\/strong><\/td>\n          <td>Injection de faute (clock glitching, voltage glitching) pour court-circuiter\n          un branchement conditionnel de v\u00e9rification cryptographique.<\/td>\n          <td class=\"sbtfa-mono\">Silicium anti-glitch \u00b7 double v\u00e9rif<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Voltage glitching<\/strong><\/td>\n          <td>Variation brutale de l&rsquo;alimentation CPU pour provoquer une instruction\n          d\u00e9faillante au moment exact du compare\/branch d&rsquo;une v\u00e9rif crypto.<\/td>\n          <td class=\"sbtfa-mono\">Detector hardware \u00b7 regulator stable<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>EMFI<\/strong><\/td>\n          <td>Electromagnetic Fault Injection \u2014 impulsion EM cibl\u00e9e pour induire un bit-flip\n          en RAM ou cache pendant une op\u00e9ration crypto sensible.<\/td>\n          <td class=\"sbtfa-mono\">Shielding \u00b7 capteurs EM int\u00e9gr\u00e9s<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Laser fault attack<\/strong><\/td>\n          <td>Laser focalis\u00e9 sur le die du SoC pour modifier un transistor pendant un\n          calcul cryptographique. Attaque haut de gamme labo physique.<\/td>\n          <td class=\"sbtfa-mono\">Package opaque \u00b7 mesh anti-tamper<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Rowhammer<\/strong><\/td>\n          <td>Acc\u00e8s r\u00e9p\u00e9t\u00e9 \u00e0 des lignes m\u00e9moire DRAM voisines pour induire des bit-flips\n          dans des lignes adjacentes contenant des cl\u00e9s ou des r\u00e9sultats de v\u00e9rif.<\/td>\n          <td class=\"sbtfa-mono\">DRAM ECC \u00b7 refresh agressif<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>DMA attacks<\/strong><\/td>\n          <td>P\u00e9riph\u00e9rique malveillant (Thunderbolt, PCIe) acc\u00e9dant directement \u00e0 la\n          m\u00e9moire via DMA pour modifier l&rsquo;image en cours de v\u00e9rification.<\/td>\n          <td class=\"sbtfa-mono\">IOMMU \u00b7 SMMU configur\u00e9 \u00b7 TrustZone<\/td>\n        <\/tr>\n        <tr>\n          <td class=\"sbtfa-mono\"><strong>Side-channel timing<\/strong><\/td>\n          <td>Mesure des temps d&rsquo;ex\u00e9cution pour extraire des informations sur cl\u00e9s ou\n          donn\u00e9es trait\u00e9es. HACL* est prouv\u00e9 Constant-Time en partie binaire.<\/td>\n          <td class=\"sbtfa-mono\">Constant-time \u00b7 HACL* Binsec\/Rel<\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n \n    <div class=\"sbtfa-disclaimer\">\n      <strong>Importance de cette transparence.<\/strong> Un Secure Boot logiciel, aussi\n      bien v\u00e9rifi\u00e9 soit-il formellement, ne peut pas seul r\u00e9sister \u00e0 un attaquant disposant\n      d&rsquo;acc\u00e8s physique au mat\u00e9riel et d&rsquo;\u00e9quipements d&rsquo;attaque par canaux auxiliaires. La\n      d\u00e9fense contre ces classes d&rsquo;attaques repose sur le silicium (anti-tamper, anti-glitch,\n      detectors), le secure element (TPM, SE PUF), et les mesures architecturales (IOMMU,\n      TrustZone). CORTEX NK s&rsquo;appuie sur ces m\u00e9canismes externes et n&rsquo;en revendique pas la\n      paternit\u00e9. La compl\u00e9mentarit\u00e9 mat\u00e9riel + logiciel est la position de d\u00e9fense compl\u00e8te.\n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">14<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Fronti\u00e8res document\u00e9es \u00b7 4 caveats audit-grade<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Roadmap S74-S77<\/div>\n<\/div>\n \n \n<!-- =============================================================\n     SECTION 14 \u2014 TRAJECTOIRE FUTURE\n     ============================================================= -->\n<section class=\"sbtfa-section-cream\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">Trajectoire \u2014 \u00c9volutions S74 \u00e0 S77<\/div>\n    <h2 class=\"sbtfa-title-sub\">Du sprint S73c-f <em>au dossier CSPN 2027<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le sprint S73c-f est un livrable autonome coh\u00e9rent \u00e0 juin 2026. Pour atteindre la\n      trajectoire institutionnelle compl\u00e8te (CSPN ANSSI 2027 \u2192 EAL4+ 2028 \u2192 EAL5\/6 2029\n      \u2192 EAL7 cible 2030), quatre sprints additionnels sont identifi\u00e9s. Chacun est\n      atomique, ind\u00e9pendamment livrable, et r\u00e9sout une fronti\u00e8re document\u00e9e.\n    <\/p>\n \n    <div class=\"sbtfa-chain\" style=\"margin-top: 48px;\">\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">S73c-f<\/div>\n        <div class=\"sbtfa-chain-stage\">JUIN 2026<span>Livr\u00e9 \u00b7 15 patches<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Cha\u00eene TBBR PQ hybride Ed25519 + ML-DSA-87 end-to-end BL1 \u2192 BL33 sur fork\n          TF-A LTS v2.10.9, boot QEMU valid\u00e9, replay vanilla sans conflit, F-6.H\n          sym\u00e9trie SCTLR\/CPTR audit-grade.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">S74<\/div>\n        <div class=\"sbtfa-chain-stage\">Q3 2026<span>Reproductibilit\u00e9 stricte bit-\u00e0-bit<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Neutralisation des macros <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">__DATE__<\/code> \/ <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">__TIME__<\/code> dans TF-A pour\n          atteindre une reproductibilit\u00e9 stricte bit-\u00e0-bit (sha256sum strictement\n          identique entre builds successifs). Effort : ~1 semaine. Compatible\n          SOURCE_DATE_EPOCH si finalement adopt\u00e9 upstream.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\" style=\"border-left-color: #2E8B57;\">\n        <div class=\"sbtfa-chain-num\">S75-S76<\/div>\n        <div class=\"sbtfa-chain-stage\">EN COURS<span style=\"color:#2E8B57;\">Dual-sig par certificat \u00b7 int\u00e9gration active<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          <strong>En cours d&rsquo;int\u00e9gration.<\/strong> Refonte de <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">cert_create<\/code> et\n          <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">auth_mod.c<\/code> upstream pour porter deux signatures cohabitantes\n          (Ed25519 + ML-DSA-87) dans chaque X.509 hybride conforme au draft IETF\n          <code style=\"background:rgba(26,40,66,0.08); padding:1px 5px; border-radius:2px; font-family:monospace; font-size:0.9em;\">lamps-pq-composite-sigs<\/code>. Retrait des sidecars. B\u00e9n\u00e9fice :\n          propri\u00e9t\u00e9 PQ stricte d\u00e8s BL1, alignement EAL6+ formel.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\" style=\"border-left-color: #2E8B57;\">\n        <div class=\"sbtfa-chain-num\">CESTI<\/div>\n        <div class=\"sbtfa-chain-stage\">D\u00c9MARCHE D\u00c9MARR\u00c9E<span style=\"color:#2E8B57;\">Pr\u00e9-audit ind\u00e9pendant externe<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          <strong>D\u00e9marche d\u00e9marr\u00e9e.<\/strong> Pr\u00e9-audit ind\u00e9pendant initi\u00e9 aupr\u00e8s d&rsquo;un\n          centre d&rsquo;\u00e9valuation agr\u00e9\u00e9 ANSSI (CESTI). L&rsquo;objectif est une revue m\u00e9thodologique\n          externe couvrant l&rsquo;architecture cryptographique, la cha\u00eene TBBR PQ, les contrats\n          ACSL Frama-C\/WP et les preuves Isabelle\/HOL. Calendrier pr\u00e9visionnel : it\u00e9ration\n          en cours, retour d&rsquo;audit attendu en parall\u00e8le de la consolidation S77 hardware.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">S77<\/div>\n        <div class=\"sbtfa-chain-stage\">Q2 2027<span>Hardware physique \u00b7 CSPN vis\u00e9<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          Portage et validation sur board ARM Cortex-A physique (cible CSPN). Acquisition\n          board, int\u00e9gration boot ROM r\u00e9el (vs QEMU), validation TPM 2.0 hardware,\n          benchmark perf compar\u00e9 QEMU vs hardware (ML-DSA-87 verify attendu ~500 \u00b5s\n          en hardware vs ~100 ms QEMU). D\u00e9monstrateur DGA en parall\u00e8le.\n        <\/div>\n      <\/div>\n \n      <div class=\"sbtfa-chain-step\">\n        <div class=\"sbtfa-chain-num\">EAL<\/div>\n        <div class=\"sbtfa-chain-stage\">2027 \u2014 2030<span>Trajectoire certifiable institutionnelle<\/span><\/div>\n        <div class=\"sbtfa-chain-desc\">\n          <strong>CSPN ANSSI<\/strong> Q3 2027 vis\u00e9 (premier palier de certification).\n          <strong>EAL4+<\/strong> 2028 envisag\u00e9 (Common Criteria, m\u00e9thodiquement con\u00e7u et test\u00e9).\n          <strong>EAL5\/6<\/strong> 2029 (semi-formel puis formel). L&rsquo;architecture est con\u00e7ue\n          pour permettre une <strong>trajectoire vers EAL7<\/strong> (preuves formelles jusqu&rsquo;\u00e0\n          l&rsquo;impl\u00e9mentation), horizon 2030. Chaque palier valide les fronti\u00e8res document\u00e9es du\n          sprint pr\u00e9c\u00e9dent.\n        <\/div>\n      <\/div>\n \n    <\/div>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">15<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Trajectoire S74 \u2192 S77 \u2192 trajectoire EAL7<\/div>\n  <div class=\"sbtfa-pagefoot-right\">CSPN vis\u00e9 2027<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 15 \u2014 V\u00c9RIFICATION MULTI-OUTILS (RAPPEL)\n     ============================================================= -->\n<section class=\"sbtfa-section-light\">\n  <div class=\"sbtfa-container\">\n    <div class=\"sbtfa-eyebrow\">V\u00e9rification multi-outils \u2014 Discipline m\u00e9thodologique<\/div>\n    <h2 class=\"sbtfa-title-sub\">Trois preuves <em>ind\u00e9pendantes<\/em><\/h2>\n    <p class=\"sbtfa-subtitle\">\n      Le sprint S73c-f s&rsquo;inscrit dans la discipline m\u00e9thodologique CORTEX NK :\n      chaque livrable est v\u00e9rifi\u00e9 par trois outils compl\u00e9mentaires qui se contr\u00f4lent\n      mutuellement. La page d\u00e9di\u00e9e Secure Boot natif (S1-S10) d\u00e9taille ces r\u00e9sultats\n      pour le module propri\u00e9taire ; cette page-ci en restitue l&rsquo;application \u00e0 la cha\u00eene\n      TF-A int\u00e9gr\u00e9e.\n    <\/p>\n \n    <div class=\"sbtfa-card-grid\" style=\"margin-top: 48px;\">\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">D\u00c9DUCTIF<\/div>\n        <h3 class=\"sbtfa-card-title\">\ud83d\udd12 Frama-C \/ WP<\/h3>\n        <p class=\"sbtfa-card-text\">\n          V\u00e9rification d\u00e9ductive des contrats ACSL des fonctions critiques de la cha\u00eene\n          (parseurs DER, helpers HACL*, batch ML-DSA). Solveurs SMT Alt-Ergo 2.6 et Z3\n          4.13. Couverture WP cumulative sur TCB strict CORTEX NK \u2265 96 % (audit S82\n          parall\u00e8le).\n        <\/p>\n        <p class=\"sbtfa-card-tag\">CEA \u00b7 Alt-Ergo \u00b7 Z3<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">FORMEL<\/div>\n        <h3 class=\"sbtfa-card-title\">\ud83d\udcd0 Isabelle \/ HOL<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Preuves math\u00e9matiques formelles des invariants de Secure Boot. 10 th\u00e9or\u00e8mes\n          attestation + 0 sorry sur le module quote. Standard acad\u00e9mique mondial,\n          utilis\u00e9 pour seL4, Genode, CompCert. La logique d&rsquo;attestation hybride est\n          formellement prouv\u00e9e.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Cambridge \u00b7 TU Munich<\/p>\n      <\/div>\n \n      <div class=\"sbtfa-card\">\n        <div class=\"sbtfa-card-num\">EXHAUSTIF<\/div>\n        <h3 class=\"sbtfa-card-title\">\ud83d\udd2c CBMC<\/h3>\n        <p class=\"sbtfa-card-text\">\n          Model checking born\u00e9 du code C. 533 propri\u00e9t\u00e9s v\u00e9rifi\u00e9es sur le module quote\n          (overflow, underflow, acc\u00e8s m\u00e9moire invalide, division par z\u00e9ro, d\u00e9passements\n          de tableaux). 0 failure d\u00e9tect\u00e9e. Outil officiel Universit\u00e9 d&rsquo;Oxford, utilis\u00e9\n          chez Amazon (S3) et Diffblue.\n        <\/p>\n        <p class=\"sbtfa-card-tag\">Oxford \u00b7 Amazon \u00b7 Diffblue<\/p>\n      <\/div>\n \n    <\/div>\n \n    <div style=\"margin-top: 56px; padding: 36px 40px; background: rgba(46, 139, 87, 0.08); border-left: 3px solid #2E8B57; border-radius: 2px;\">\n      <div style=\"font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: #2E8B57; margin-bottom: 14px;\">\n        \u2726 Validation externe \u2014 d\u00e9marche d\u00e9marr\u00e9e\n      <\/div>\n      <h3 style=\"font-family: 'Cormorant Garamond', Georgia, serif; font-size: 28px; font-weight: 400; color: #0A1A33; margin: 0 0 14px;\">\n        Pr\u00e9-audit ind\u00e9pendant <em style=\"color:#2E8B57;\">CESTI agr\u00e9\u00e9 ANSSI<\/em>\n      <\/h3>\n      <p style=\"font-size: 15px; line-height: 1.65; color: #1A2842; margin: 0;\">\n        Au-del\u00e0 des trois outils de v\u00e9rification interne, une <strong>d\u00e9marche de pr\u00e9-audit\n        ind\u00e9pendant<\/strong> a \u00e9t\u00e9 d\u00e9marr\u00e9e aupr\u00e8s d&rsquo;un centre d&rsquo;\u00e9valuation agr\u00e9\u00e9 ANSSI\n        (CESTI). L&rsquo;objectif est une revue m\u00e9thodologique externe couvrant l&rsquo;architecture\n        cryptographique S73c-f, la cha\u00eene TBBR PQ end-to-end, les contrats ACSL Frama-C\/WP\n        et les preuves Isabelle\/HOL. Ce type de revue ind\u00e9pendante est la derni\u00e8re \u00e9tape\n        avant le d\u00e9p\u00f4t formel de dossier CSPN vis\u00e9 Q3 2027.\n      <\/p>\n    <\/div>\n \n    <p style=\"text-align: center; font-size: 18px; color: #B8862F; font-style: italic; margin-top: 48px; font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 500;\">\n      Trois outils internes. Une revue externe en cours. Z\u00e9ro angle mort.\n    <\/p>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">16<\/div>\n  <div class=\"sbtfa-pagefoot-center\">Multi-outils + revue externe CESTI en cours<\/div>\n  <div class=\"sbtfa-pagefoot-right\">D\u00e9marche d\u00e9marr\u00e9e<\/div>\n<\/div>\n \n<!-- =============================================================\n     SECTION 16 \u2014 CTA CONTACT\n     ============================================================= -->\n<section class=\"sbtfa-section-dark\">\n  <div class=\"sbtfa-container\" style=\"text-align: center;\">\n    <div class=\"sbtfa-eyebrow\" style=\"justify-content: center; display: inline-flex;\">CORTEX ORIGIN\u2122 \u00b7 Programme de d\u00e9fense<\/div>\n \n    <h2 class=\"sbtfa-title\" style=\"font-size: 56px; margin: 24px 0 32px;\">\n      Parlons <em>souverainet\u00e9<\/em>.\n    <\/h2>\n \n    <p class=\"sbtfa-subtitle\" style=\"max-width: 760px; margin: 0 auto 40px; text-align: center; color: #B8C5D9;\">\n      Rapports complets disponibles sur demande : CFVL-SECBOOT-TFA-001 v1.2, validation\n      factuelle S73f, dossier reproductibilit\u00e9, priorart, m\u00e9mo datation publique.\n      <strong style=\"color:#D4A551;\">Pr\u00e9-audit CESTI en cours \u00b7 dual-sig par cert en int\u00e9gration<\/strong>.\n      D\u00e9monstrations sur sc\u00e9narios CNES \/ DGA \/ OIV disponibles sur board ARM physique\n      apr\u00e8s portage S77.\n    <\/p>\n \n    <div class=\"sbtfa-cta-buttons\" style=\"justify-content: center;\">\n      <a href=\"mailto:demo@cortexorigin.com\" class=\"sbtfa-btn sbtfa-btn-primary\">Demander une d\u00e9mo<\/a>\n      <a href=\"mailto:press@cortexorigin.com\" class=\"sbtfa-btn sbtfa-btn-secondary\">Contact presse<\/a>\n      <a href=\"mailto:dga@cortexorigin.com\" class=\"sbtfa-btn sbtfa-btn-secondary\">Contact institutionnel<\/a>\n    <\/div>\n \n    <p style=\"margin-top: 56px; font-family: 'JetBrains Mono', monospace; font-size: 11.5px; letter-spacing: 0.14em; color: #6B7A95; text-transform: uppercase;\">\n      Confidentiel \u00b7 CORTEX AI\u2122 SAS \u00b7 SIREN 991 880 428 \u00b7 58 rue de Monceau, 75008 Paris\n    <\/p>\n  <\/div>\n<\/section>\n \n<div class=\"sbtfa-pagefoot\">\n  <div class=\"sbtfa-pagefoot-num\">17<\/div>\n  <div class=\"sbtfa-pagefoot-center\">FIN \u2014 Secure Boot TF-A \u00b7 Post-Quantique v1.2<\/div>\n  <div class=\"sbtfa-pagefoot-right\">Juin 2026<\/div>\n<\/div>\n \n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Menu ORIGIN\u2122 ORIGIN\u2122 EAS \u00b7 EXPOSITION Plateforme CTEM EAS \u00b7 Exposition externe et interne \u2197 Ce que la plateforme mesure P\u00e9rim\u00e8tre interne \u00b7 annuaire LDAP \/ AD \u2197 Gouvernance &amp; trace de d\u00e9cision \u2197 Paysage concurrentiel \u2197 Demander une cartographie \u2197 AETZU ARROW AI\u2122 AETZU ARROW AI AETZU ARROW AI\u2122 \u00b7 D\u00e9fense active \u2197 Analyse [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1614","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/pages\/1614","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/comments?post=1614"}],"version-history":[{"count":12,"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/pages\/1614\/revisions"}],"predecessor-version":[{"id":1923,"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/pages\/1614\/revisions\/1923"}],"wp:attachment":[{"href":"https:\/\/cortexorigin.com\/index.php\/wp-json\/wp\/v2\/media?parent=1614"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}