- = Cryptosystemes = - By Virtualabs

 

Evaluations des cyptosystèmes




I) Introduction aux cryptosystèmes


        En entamant l’étude d’un algorithme de cryptage matriciel (cf EspioZine #1), je me suis retrouvé face à un problème : comment évaluer un cryptosystème, ou plutôt comment le comparer aux autres cryptosystèmes existants. C’est là que les cours de maths servent, et j’ai donc trouvé une méthode qui permet d’évaluer mathématiquement l’efficacité d’un cryptosystème par rapport à un autre.

Un cryptosystème, ou algorithme de cryptage, ne prouve sa sécurité que par une évaluation complète et méthodique de ses rouages. Un algorithme de cryptage ne peut pas se prétendre sécuritaire, en fournissant un cryptage simple et facilement cassable, par contre il est possible d’évaluer le niveau de sécurité qu’il procure au document qu’il est censé protéger.
Nul n’ignore que tout algorithme de cryptage est cassable, et cela n’est plus à démontrer. C’est pourquoi bon nombre d’algorithmes dits « récents » proposent une protection non plus basée sur la complexité du cryptage (triple DES, Blowfish) mais plutôt sur le temps mis à inverser une fonction cryptographique.


II) Inversion cryptographique et technique d’évaluation


Un algorithme de cryptage à clé secrète, autrement dit un algorithme qui comporte une clé connue de celui ou ceux qui sont autorisés à disposer du document en clair, est basé sur le fait que cette clé soit inconnue.
Deux principes fondamentaux cryptographiques sont donc nécessaires :

  • la clé doit rester secrète, et ne doit être divulguée à personne.

  • La clé doit être une possibilité parmi plusieurs.


La clé (considérée comme unique) doit être choisie dans un éventail de possibilités, de manière à contrer une attaque par brute-force. Ce genre d’attaque consiste à tester toutes les possibilités de clés, et de trouver la bonne. Un cryptosystème est donc considéré comme sûr quand il offre une large panoplie de clés, et lorsqu’il offre un algorithme puissant.

On évalue cet algorithme en considérant le problème suivant comme une résolution de système. Si on possède un document crypté B et que l’on veut obtenir le document en clair A, en trouvant la clé C, on doit alors résoudre un système paramétrique (avec C en paramètre, car il y a plusieurs clés possibles). Le système est soluble si on possède autant d’équations que d’inconnues (ce qui ne doit être absolument pas vrai pour un cryptosystème) ou alors on détermine son degré de paramétrage. Ma méthode d’évaluation de cryptosystèmes se base sur ce principe.


Méthode : théorie et exemple

On va donc évaluer le rapport des inconnues sur le nombre d’équations, et cela en considérant un message de n éléments cryptés avec la même clé C, de taille définie.


Première étape : le coefficient de sécurité

Le coefficient de sécurité représente le rapport du nombre d’inconnues sur le nombre d’équations, et cela en fonction du nombre d’éléments constituant le document crypté. Il s’écrit de cette manière :

Cs(n)=(nbre d’inconnues)/(nbre d’équations)


Par exemple le cryptage dit de césar, ou par extension appelé décalage mono-alphabétique : on décale un message de n lettres d’un même nombre de lettres, nombre qui constitue la clé. On a donc n équations, avec n+1 inconnues, ce qui donne comme coefficient de sécurité :

Cs(n)=(n+1)/n


Deuxième étape : la courbe d’évaluation logarithmique.

Lorsque le coefficient de sécurité est calculé, on établit l’équation de la courbe logarithmique d’évaluation, qui permettra de comparer graphiquement deux cryptosystèmes. Son équation est celle-ci :

F(n)=P x Ln(Cs(n))

Avec P le nombre de clés possibles, et Cs(n) le coefficient de sécurité calculé pour cet algorithme. Pour notre exemple, cela donne :

F(n)=25 x Ln((n+1)/n)

Si on établit l’équation d’évaluation logarithmique du cryptage vigenère, en prenant une clé de longueur L, on obtient :

F(n)=(26^L) x Ln((n+L)/n)

Si on trace ces deux courbes, en prenant par exemple L=5, on observe que la courbe correspondant au vigenère est bien au dessus de celle correspondant au césar. On en déduit que l’algorithme de décalage poly-alphabétique est plus sûr que celui mono-alphabétique.

Conclusion

  • Un cryptosystème est plus sûr qu’un autre lorsque sa courbe se situe au dessus.

  • Un cryptosystème est dit incassable quand sa courbe coupe P x Ln(2), avec n>1.

  • Un cryptosystème est dit relativement fiable quand sa courbe tend vers P x Ln(2).

  • Un cryptosystème est dit soluble lorsque sa courbe est en dessous de X=0.

Cette méthode d’évaluation des cryptosystèmes marche très bien, et peut devenir un peu complexe face à des algorithmes compliqués. Ceci dit, une évaluation de l’AES est possible, ou encore du 3-DES. Elle offre l’avantage d’une comparaison visuelle, et non plus mathématique. Cependant on doit avoir une certaine retenue face aux résultats obtenus : une faille dans la conception de l’algorithme ne peut pas être décelée en utilisant cette méthode.



----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------

Informations
Cet article a été écrit par Virtualabs.
Email:Virtualabs@ifrance.com

GreetZ To : @i.corps, CoCo, et tous ceux que j’oublie....