L’Advanced Encryption Standard
Imaginons le scénario suivant : Alice souhaite envoyer une lettre à Bob. Elle ne fait pas confiance au transporteur et souhaite que Bob reçoive la lettre sans que cette dernière ait pu ni être modifiée ni être ouverte pendant le transport. Il existe deux solutions au problème d’Alice. La première solution (voir fig. 2.1 p. 10) s’appuie sur une information gardée secrète par Alice et Bob, nous l’appellerons la solution symétrique. Dans ce cas, Alice fait l’acquisition d’un cadenas, elle envoie la clef du cadenas à Bob en utilisant un canal de transport sécurisé. Puis elle enferme la lettre dans un coffre qu’elle ferme avec le cadenas et envoie le tout à Bob. En recevant le coffre Bob, peut l’ouvrir avec la clef du cadenas et lire sa lettre. Avec cette solution, Alice a la certitude que personne n’a pu ouvrir ou modifier la lettre en dehors de Bob. En revanche, si Alice souhaite envoyer une lettre à chaque membre de sa famille, elle devra acheter un cadenas par correspondant ce qui sera plus onéreux et plus difficile à mettre en œuvre. En cryptographie symétrique, le cadenas correspond à l’algorithme de chiffrement et la clef du cadenas à la clef de chiffrement du message. La deuxième solution (voir fig. 2.2 p. 10) à notre énigme s’appuie aussi sur une information dont une partie est disponible à tous et l’autre reste privée. Nous« The design and strength of all key lengths of the AES algo- rithm are sufficient to protect classified information up to the SECRET level. TOP SECRET information will require use of either the 192 or 256 key lengths. The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use. ».
Définitions
L’appellerons la solution asymétrique. Dans ce cas, Bob choisit un cadenas et le dépose, ouvert, dans un lieu public tout en gardant la clef par-devers lui. Lorsque Alice souhaite envoyer une lettre à Bob, il lui suffit de récupérer le cadenas de Bob, de placer sa lettre dans une boîte, de la fermer avec le cadenas et de l’envoyer à Bob. À la réception, Bob utilise la clef en sa possession pour ouvrir la boîte et découvrir sa lettre. Dans ce cas également, Alice a la certitude que personne n’a pu ouvrir ou modifier sa lettre pour Bob. Cette solution présente également l’avantage de gérer efficacement la montée en charge, si Alice souhaite envoyer une lettre à toute sa famille : il suffit que chacun de ses correspondants possèdent un cadenas. En cryptographie asymétrique [77], le cadenas correspond à la clef publique de Bob tandis que la clef du cadenas correspond à sa clef privée. L’objectif fondamental de la cryptographie (voir fig. 2.3 p. 11) est donc de permettre à deux personnes de communiquer via un canal non sécurisé sans qu’un étranger puisse accéder au contenu de la communication. Depuis son apparition il y a plus de 4000 ans, la cryptographie n’a cessé d’évoluer. Initialement dévolue à la protection des messages échangés, le panel de ses applications s’est élargi pour couvrir aujourd’hui un seul enjeu : la sécurité des systèmes d’information.
En parallèle, les techniques d’attaque contre les algorithmes de chiffrement se sont améliorées profitant de l’évolution des connaissances mathématiques et de l’explosion de la puissance de calcul des ordinateurs. Ainsi, à l’instar, de la cryptographie, la cryptanalyse s’est développée dans un jeu de lutte de l’épée contre le bouclier où elle a eu tantôt le dessus, tantôt le dessous. La cryptographie et la cryptanalyse sont regroupées dans une science du secret : la cryptologie. Cette dernière, élevée au rang de discipline des mathématiques, fait appel à d’autres disciplines comme l’arithmétique modulaire, l’algèbre, la complexité, la théorie de l’information, ou encore les codes correcteurs d’erreurs. Avant de donner une définition formelle de la cryptographie fixons quelques éléments de notation :Il existe principalement deux transformations de base pour chiffrer un message : la substitution et la permutation. Afin, de mieux appréhender l’action de ces deux transformations, nous allons présenter, tout au long de ce paragraphe, le résultat de l’action de chiffrement sur une image. Le principe retenu s’appuie sur l’image d’un chat. Cette image a une définition de 200 pixels de haut et 200 pixels de large ce qui fait que la longueur du message à chiffrer est de 200 × 200 = 40000. De plus, l’image est au format Truevision Targa [114]. Ce format présente le double avantage de stocker les données des pixels sous la forme d’un tableau à une entrée et de permettre le codage de la couleur de chaque pixel sur un octet. L’image est donc en échelle de gris avec des niveaux de gris allant de 0 pour le noir à 255 pour le blanc. Ce qui nous donne, en terme cryptographique, un message de 40 000 caractères construit à partir d’un alphabet de 256 éléments. Nous avons développé en python le programme nécessaire à la réalisation de ces images [81, VisualCrypto].