Le projet ITB a été présenté, développant un isolateur cryptographique symétrique, conçu pour envelopper des fonctions pseudorandom standard (PRF) et des primitives de hachage (AES, BLAKE2/3, Areion et autres) dans une barrière combinatoire et topologique. Contrairement aux modes de chiffrement classiques par blocs et par flux, l'architecture ITB vise une isolation structurelle de la primitive interne, empêchant la propagation des caractéristiques différentielles et linéaires, la linéarisation algébrique, ainsi que les codages directs pour les solveurs SAT/SMT et MILP à travers les frontières de la barrière. Le code est écrit en Go avec des optimisations de bas niveau en assembleur pour les architectures x86_64 et ARM64 (Aarch64) et est distribué sous la licence Apache 2.0.
La transformation des données dans ITB est divisée en deux niveaux imbriqués (Interlocked Barrier), gérés par huit clés de graines isolées (8-seed isolation) avec une évolution locale de la clé à travers un cascade à liaison directe (ChainHash). À la première étape, la barrière de classement (Rank Barrier) effectue une permutation combinatoire clé de chaque bloc de 48 bits (ou bloc de 168 bits pour les primitives de 512 bits), répartissant les bits du texte clair en trois régions indépendantes basé sur une recherche en deux étapes de la combinaison par son numéro (l'espace des partitions équilibrées C(48, 16) * C(32, 16) est d'environ 2^70.20, et en mode 168 bits C(168, 56) * C(112, 56) — environ 2^258.60). À la deuxième étape, la barrière de pixel (Pixel Barrier) cartographie les données sur une grille d'éléments de 8 octets (8 canaux de 7 bits de données et 1 bit de bruit pseudorandom dans chaque octet) avec un décalage cyclique de clé de 7 bits par pixel, le masquage des canaux de 7 bits et le choix de la position du bit de bruit.
Les principales caractéristiques du projet :
- La vérification expérimentale des propriétés d'isolement sur des fonctions manifestement non cryptographiques (test de stress avec des primitives faibles). Le dépôt comprend un banc d'essai de laboratoire intégrant une fonction de hachage classique FNV-1a à l'intérieur de la barrière. Grâce à une combinaison non linéaire de classement, à la division des octets aux frontières des canaux de 7 bits (GCD(7, 8) = 1) et à l'injection de bits de bruit dans chaque octet, l'utilisation pratique ou la construction d'un modèle SAT/SMT solvable à partir du texte clair et chiffré est bloquée dès la formulation du système d'équations.
- Vérification formelle automatique vérifiée par machine en Lean 4. Toutes les 12 théorèmes mathématiques de base, combinatoires et théorèmes des vecteurs de bits de la construction (ainsi que le schéma appliqué d'accord hybride des clés 3-to-8 à partir de trois canaux KEM indépendants dans APP.md), décrites dans le document PROOFS.md, sont entièrement prouvées dans Lean 4 sans utiliser d'axiomes ni de lacunes dans les preuves.
- Outils intégrés pour les tests cryptanalytiques, comprenant des vérifications automatisées : batteries de tests statistiques, évaluation du degré algébrique et de la non-linéarité, vérification de l'isolation des graines lors du filtrage des positions de bruit via un oracle CCA et recherche de vulnérabilités à l'aide de solveurs externes.
- Deux modes de fonctionnement : mode authentifié standard (AEAD selon le schéma MAC-Inside-Encrypt, où l'insertion d'authentification est calculée et chiffrée à l'intérieur du conteneur) et mode de déni plausible basé sur le codage inconditionnel COBS, dans lequel le déchiffrement avec une clé incorrecte retourne des données syntaxiquement correctes sans indicateur d'erreur.
- En association avec des PRF modernes et rapides (AES, BLAKE2/3, Areion), la construction est adaptée pour un échange de messages sécurisé, le stockage de fichiers et les tunnels réseau (avec des frais de format d'environ 15 % pour les files d'attente groupées). VPN-protection contre les attaques par canaux auxiliaires, les cœurs s'exécutent en temps constant avec un nettoyage complet obligatoire des cadres de pile et des registres processeurs (GPR, XMM/YMM/ZMM, NEON) après les appels.
- Pour l'architecture x86_64, des cœurs assembleurs sont réalisés en utilisant des instructions BMI2 (PEXT/PDEP), AES-NI, VAES, AVX2 et AVX-512, et pour ARM64 (Aarch64) — basés sur les extensions NEON, Crypto Extensions et SVE2 (avec un retour portable sur du Go pur). Des liaisons pour 33 langages de programmation sont préparées sur un unique C ABI (libitb3).
Source : opennet.ru
