Enigma – Cryptographie, Fonctionnement et implémentation

Enigma, Quèsaco ?

Enigma
Enigma

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 … Lire la suite

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

Salut à tous,

Le héro du jour : Vigenère
Le héro du jour : Vigenère

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 
Lire la suite

TP Cryptographie – César, Vigenère et attaque statistique en PowerShell

Un TP sur la cryptographie en PowerShell, on ne va pas attaquer les choses compliqué aujourd’hui. Seulement les bases de la crypto avec 2 algorithmes connus :

  1. César ; et
  2. Vigenère

Et une attaque qui fonctionne bien sur ce genre de protection : par statistique.

Chiffre de César

Le chiffre de césar est une méthode de chiffrement qui date des romains et du fameux empereur du même nom. Elle consiste à décaler d’un certain nombre dans l’alphabet les caractères de la phrase à chiffrer. Ce nombre est la clé de l’algorithme.

Exemple :

Si je prends la chaîne « abc » avec la clé ‘+1’ :

Ma chaîne chiffrée devient « bcd »

Implémentation :

Cet algorithme est implémenté dans le livre d’Arnaud PETITJEAN : Windows PowerShell – Guide de référence pour l’administration système (v3). Dans le chapitre 8, La Sécurité – p 431 dans la V3.

Comme pour sa fonction de génération de mot de passe, j’ai trouvé que son implémentation n’était pas la plus simple. Aussi, je vous en propose un autre :

<#
.SYNOPSIS
Effectue le chiffre de césar sur une chaîne de caractères
.DESCRIPTION
Chiffre une chaîne de caractère via le chiffre de César avec la 
Lire la suite

ZeroBin, ou comment faire Google Keep sans Google mais avec AES

Je veux vous présenter un outil qu’un collègue anonyme (merci Grégoire) m’a fait découvrir ce matin : ZeroBin.

ZeroBin :

ZeroBin

Ce projet open source propose de vous fournir un Pastebin qui a le bon goût de ne pas analyser tout ce que vous y écrivez pour vous placer de la pub ensuite.

Pourquoi ?

Parce que tout ce que vous y enverrez est chiffré en AES (256), et que le serveur ne sait donc pas ce qu’il stocke, il ne voit que du texte chiffré, du bruit en gros.

Comment ça marche ?

Lors de l’upload votre navigateur chiffre le contenu via une clé *secrète*.
C’est simple d’utilisation, car la clé est placée dans le lien que l’outil vous renvoi après l’upload, comme ci-dessous :

https://zerobin.net/?ca9e881b88da443e#/mubgNofdYrpDu61GikEmsPlZqJGKS0v2RD4IEtvNiE=

Mais si c’est dans l’URL le serveur reçoit bien la clé ?

C’est là que c’est beau, en fait si vous regardez bien le lien en exemple ci-dessus :
On a 3 morceaux :

A. le site,

https://zerobin.net/

Je passe c’est comme d’hab ça.

B. votre “note”,

?ca9e881b88da443e

Ça c’est comme sur n’importe quel site en PHP, ou vous demanderiez l’accès à la ressource `man of stelle` (par exemple). Vous verrez dans l’URL :… Lire la suite