Réconcilier deux clés sur un canal ouvert en utilisant des codes de correction d'erreur
2025-02-03 (updated: 2025-02-03 )
Disclaimer: Je suis vraiment pas un expert en cryptographie, je fais plus du réseau et du système qu’autre chose, je fais plus cet article pour présenter ce que j’ai pu découvrir et comprendre que pour faire un cours ou un tutoriel sur les concepts abordés.
Un peu de contexte
Il y a quelques mois j’ai eu l’occasion de travailler sur l’implémentation de méthodes de reconciliation de l’information dans le cadre de l’implémentation de protocoles de dérivation de clés cryptographiques au niveau de la couche physique. Pour faire simple, l’idée c’est que nous avons nos bons vieux \(Alice\) et \(Bob\) qui détiennent tous les deux une clé de \(n\) bits. Ces deux clés sont supposées proches mais non égales, certains bits diffèrant d’une clé à l’autre. En d’autre termes, nous avons \(\lVert\ key_{Alice}\ \rVert\ =\ \lVert\ key_{Bob}\ \rVert\) tel que \(key_{Alice}\ \sim\ key_{Bob}\), et \(dis(key_{Alice},\ key_{Bob})\ \leq\ t\), avec \(dis\) la distance de Hamming et \(t\) le nombre maximum de bits différents que l’on accepte.