D.E.S. – Data Encryption Standard en PowerShell

Salut les gens !
Avant de commencer, j’espère que les TPs sur Enigma vous ont intéressés, et si vous les avez loupés : c’est par ici.

Et pour ceux qui viennent d’arriver, je rappelle qu’on reprend ici les principaux algorithmes de cryptographie de l’histoire. Jusqu’ici on a vu, que des algorithmes de substitution (poly-)alphabétique avec César, Vigenère, et Enigma. On vous a aussi montré comment attaquer ces algorithmes à l’aide de propriétés statistiques : Fréquence des lettres ou indice de coïncidence ; le tout saupoudré d’un peu de brute-force.

Vous aviez aimé ? bien, parce que c’est fini, aujourd’hui on rentre (doucement) dans la cours des grands (avec des poils, et tout) et on commence avec un monument de Crypto Moderne : D.E.S. – Data Encryption Standard.

D.E.S., Data Encryption Quoi ?

Data Encryption Standard est le nom d’un algorithme datant de 1977 dans sa première version. Il fait suite à la demande du NBS (aujourd’hui appelé le NIST pour National Institute of Standards and Technology) d’un algorithme de chiffrement à destination des entreprises. C’est à peu de choses près la même histoire que pour AES (pour Advanced Encryption Standard) plus récemment, mais on y viendra.

Pour DES … Lire la suite

Cryptanalyse d’Enigma par l’indice de coïncidence

Enfin la partie la plus intéressante.

Cryptanalyse d’Enigma – Historiquement

Détermination du câblage interne des rotors

Même après la première guerre mondiale, les états continuaient à surveiller et décrypter les conversations des pays voisins. À partir de 1926, les messages allemands commencèrent à être chiffrés par Enigma. Les cryptanalystes alliés renoncèrent vite à briser Enigma, du à sa difficultés, et surement pensant qu’une invasion serait impossible.

Mais la Pologne, se sentant menacé par ses voisins (5400km de frontière, entouré seulement par des états ennemis), décida de se lancer dans la cryptanalyse d’Enigma. Trois spécialistes s’en chargèrent dont Maksymilian Ciezki. Malgré tout leur possible, et la version commerciale d’Enigma (qui avait des rotors différents, et qui ne possédait pas de fiches) la cryptanalyse n’avançait pas. C’est grâce à un espion Allemand, Hans-Thilo Schmidt que le bureau polonais trouva une faille. Il leur transmit les instructions d’utilisation de la machine, les directives pour fixer une clé, et plusieurs fois le cahier des configurations du mois, ainsi que quelques informations.

Des mathématiciens se joignirent au Bureau du Chiffre polonais, donc un certain Marian Rejewski un jeune étudiant de 23 ans. Précédemment, nous avons vu que les messages chiffrés étaient précédé de 6 lettres (la … Lire la suite

Enigma – Cryptographie, Fonctionnement et implémentation

Enigma, Quèsaco ?

Comment la machine est-elle apparue ?

Un peu d’histoire…

Durant la première guerre mondiale, les allemands utilisaient le code ADFGVX pour chiffrer leurs messages. Il faut savoir que ce chiffrement était fait à la main par un soldat, il n’était donc pas possible de l’utiliser à grande échelle. Durant cette guerre, les anglais avaient réussi à décrypter ce code, et connaissaient alors les prochains mouvements de l’ennemi. Ils en ont donc tiré parti pour vaincre l’Allemagne.

Lors de la Seconde Guerre Mondiale, les Allemands ont voulu à tout prix éviter la guerre de position, très meurtrière et peu efficace. Ils ont décidé d’adopter la « guerre de mouvement » ou les avions attaquent l’arrière des lignes, pendant que l’infanterie et les chars attaquent le front sur une vaste étendue. Mais pour pouvoir coordonner cela, il leur a fallu trouver un moyen de communication, rapide et chiffré afin de pouvoir déployer leur force rapidement, sans que leurs ennemis en aient connaissance.

L’homme à l’origine de la machine allemande est Arthur Scherbius, qui déposa le brevet en 1918. Elle ne fut pas utilisée par les militaires tout de suite à cause de l’armistice. Elle fut donc d’abord commercialisée publiquement. … Lire la suite

TP Cryptographie – Attaque d’un chiffre de Vigenère

Salut à tous,

Dans la série des TPs en cryptographie, je vais continuer à remonter le temps et les principaux algorithmes de cryptographies historiques.
Dans ce premier TP sur la cryptographie on avait vu comment mener une attaque statistique sur un chiffre de césar. Je n’avais pas souhaité vous montrer le brute-force pour la simple et bonne raison que qu’il me semble vraiment inintéressant à implémenter sur une clé de taille 26 au maximum…

Du coup, aujourd’hui on va passer au chiffre de Vigenère, avec un vrai texte de plusieurs lignes et une clé un peu plus complexe.

Prérequis

Pour que tout fonctionne bien j’ai dû faire quelques modifications sur les fonctions du TPs précédent. Notamment pour la gestion des caractères spéciaux, espaces, et autres ponctuation. Ça s’est traduit par une fonction Remove-AllButAlphabet que je vous donne ci-dessous (et que j’ai lâchement pompé ici).

<#
.SYNOPSIS
Retire tous les caractères autres que a-z dans un texte
.DESCRIPTION
Retire tous les caractères autres que a-z dans un texte, remplace les spéciaux par leur forme "classique" (ç->c ; é->e)
.INPUTS src
Le message à nettoyer
.OUTPUTS
La chaîne sans les spéciaux
.EXAMPLE
PS C:\Mon\Pc> Remove-AllButAlphabet -src 'Chiffre par Vigenère une chaîne 
Lire la suite