Auteur: Yurii Pavlenko
Société: Extra Systems
Année de développement: 2026
Contacts: esbc@extrasystems.biz
ESBC est un chiffrement par blocs de 512 bits conçu spécifiquement pour les architectures informatiques modernes 64 bits. Contrairement aux chiffrements classiques (dont AES), développés à l'époque des systèmes 32 et 8 bits, ESBC a été conçu dès le départ en tenant compte des capacités et des fonctionnalités des processeurs actuels.
L'idée maîtresse de sa conception repose sur la transparence totale de l'algorithme et l'absence de constantes fixes susceptibles de servir de vecteurs d'intrusion. Tous les éléments du chiffrement, y compris les tables de substitution (S-boxes) et les clés de tour, sont générés dynamiquement à partir de la clé de l'utilisateur grâce à un générateur de nombres pseudo-aléatoires remplaçable (RC4 par défaut, mais pouvant être remplacé par tout autre générateur de nombres pseudo-aléatoires).
| Paramètre | Valeur |
| Taille du bloc: | 64 octets (512 bits) |
| Structure du bloc: | Matrice 8×8 octets (8 uint64_t) |
| Nombre de tours: | 32 |
| Nombre de demi-tours: | 2 par tour (64 au total) |
| Type de boîtes-S: | Permutations dynamiques de 256 éléments, dépendantes de la clé |
| Génération des clés: | Générateur de nombres pseudo-aléatoires personnalisable (implémentation par défaut: RC4) |
L'innovation majeure d'ESBC réside dans la double application de décalages cycliques au sein de chaque tour:
1. Le premier décalage («shift_encode/shift_decode») est appliqué aux lignes de la matrice avant transposition.
2. Transposition («transpose_the_matrix»): les lignes deviennent des colonnes.
3. Le second décalage est appliqué aux colonnes de la matrice d'origine.
Cette approche permet:
- Diffusion horizontale: mélange de bits au sein d'une même ligne
- Diffusion verticale: mélange de bits entre les lignes
- Dépassement des limites d'octets: les décalages sont effectués au niveau du bit, et non au niveau de l'octet
Par conséquent, la modification d'un seul bit du texte clair après plusieurs tours affecte un ensemble de bits du texte chiffré distribués de façon aléatoire, ce qui complique considérablement la cryptanalyse différentielle et linéaire.
ESBC ne contient aucune table fixe ni constante d'origine inconnue. Toutes les informations clés sont générées par la procédure «make_key_data» à partir de la clé fournie par l'utilisateur:
- «shuffle_key»: clés 8 bits pour le brassage de bits (les valeurs 0x00 et 0xFF sont exclues)
- «shift_key»: valeurs de décalage cyclique (de 1 à 63, 0 est exclu)
- «xlat_encode_table / xlat_decode_table»: une paire de S-boxes réversibles (permutations aléatoires de 256 éléments)
- «step_key»: clés de ronde 64 bits pour l'addition
Chaque élément est généré indépendamment, éliminant ainsi tout risque de dépendances cachées ou d'erreurs de conception.
Les fonctions «add_const» et «sub_const» introduisent une non-linéarité supplémentaire en fonction de:
- Numéro du tour (i) — dépendance cubique (i+1)³
- Numéro du demi-tour (semi_step) — décalage de base
- Position dans la matrice (j) — dépendance quadratique
La valeur ajoutée résultante est calculée à l'aide de la formule:
d = ((j + s + 1)² × (i + s + 1)³)² // Puissance 10 ! d ^= (~d << 32) // Mélange non linéaire
Ceci garantit que chaque ligne de la matrice reçoit une valeur pseudo-aléatoire unique à chaque demi-tour.
Le principal avantage d’ESBC par rapport aux normes existantes (dont AES) réside dans l’impossibilité fondamentale de créer des portes dérobées basées sur des constantes fixes ou des S-boxes. Comme toutes les tables et clés sont générées dynamiquement à partir de la clé de l’utilisateur, il n’existe aucun «nombre magique» susceptible d’être choisi délibérément pour créer des vulnérabilités cachées.
L'utilisateur peut remplacer le générateur de nombres pseudo-aléatoires (PRNG) utilisé (RC4 par défaut) par toute autre source aléatoire, par exemple:
- ChaCha20
- Générateur de nombres aléatoires matériel (RDRAND)
- Fonction de hachage en mode compteur
Ainsi, la sécurité d'ESBC repose uniquement sur la robustesse de la clé et du PRNG choisi, et non sur la confiance accordée au développeur ou aux organismes de normalisation.
En pleine conformité avec le principe de Kerckhoffs (un chiffrement doit rester sûr même si un adversaire connaît tous les détails de l'algorithme, à l'exception de la clé), nous publions le code source complet d'ESBC. La transparence de l'implémentation permet à chacun de:
- Effectuer une cryptanalyse indépendante
- Vérifier l'absence de portes dérobées cachées
- Adapter le code à vos besoins (dans le cadre de la licence choisie)
- Remplacer le générateur de nombres pseudo-aléatoires par la source d'aléatoire de votre choix
ESBC propose une approche novatrice du chiffrement par blocs, adaptée aux réalités des systèmes 64 bits et aux exigences modernes de transparence des algorithmes cryptographiques. Ses innovations clés – double décalage de bits avant et après transposition, génération dynamique complète de toutes les tables et absence de constantes fixes – rendent ce chiffrement non seulement performant, mais aussi résistant à toute une classe d'attaques potentielles liées aux portes dérobées intégrées à la conception.
Nous invitons la communauté cryptographique à analyser, tester et discuter de notre approche.
Le contenu de cette page est également disponible en anglais, allemand, ukrainien et en russe.
| © Extra Systems, 2026 |
|