Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#251 Cryptographie » La bibliothèque de William Friedman » 18-05-2017 10:50:23
- Rossignol
- Réponses : 1
Bonjour à tous,
La fondation George Marshall, aux États-Unis, est dépositaire de la bibliothèque de William Friedman.
Elle a mis en ligne, au format PDF, plusieurs livres de cette bibliothèque.
Tous ces livres sont en anglais, of course!
Je vous conseille :
* Methods for the Solution of Ciphers - William F. Friedman - 1917
Les célèbres Riverbank publications au complet - introuvables dans le commerce.
* Elements of Cryptanalysis - William F. Friedman - 1924
* An Advanced Problem in Cryptography and its Solution - J. O. Mauborgne - 1914
Une cryptanalyse du chiffre Playfair.
* Manual for the Solution of Military Ciphers - Parker Hitt - 1916
* Manual of Cryptography - British General Staff - 1911
* Manual of Military Signaling - 1894
Les transmissions en 1894 : une curiosité !
* The American Black Chamber - Herbert O. Yardley - 1931
Version annotée de la main de Friedman. Yardley était une sorte de Snowden des années trente que Friedman considérait comme un traitre.
(Je trouve l'ex-libris des Friedman terrifiant !)
Bonne lecture.
#252 Re : Cryptographie » Enigme/ texte codé à décode !! Urgent » 18-05-2017 10:22:23
Ce crypto est tronqué.
Pour le crypto complet et sa solution, voir http://www.bibmath.net/forums/viewtopic.php?id=9518
Il y a belle lurette que le chiffre de Vigenère n'est plus un sujet sensible :-)
#253 Cryptographie » Une drôle de machine... » 02-04-2017 09:52:32
- Rossignol
- Réponses : 0
Bonjour à tous,
Le site Gallica de la Bibliothèque nationale de France comprend une collection d'images.
Naturellement, j'ai cherché des images de cryptographes.
Je n'ai trouvé qu'une seule image, une photographie d'une bien étrange machine :

La légende dit : Dispositif permettant d'écrire en morse [?] de 280 codes télégraphiques.
Apparemment, deux machines à écrire sont reliées par un paquet de tuyaux et, sous la table, un moteur électrique fait tourner un compresseur qui alimente le tout.
Une machine cryptographique pneumatique ?
Après bien des recherches, je crois avoir trouvé : il s'agit d'une machine à crypter inventée par le Britannique Sidney Hole. On trouve ce dessin dans son brevet de 1923 :

Si j'ai bien compris, la machine marche par dépression ; ce n'est donc pas un compresseur sous la table, mais une pompe à vide. Quand on appuie sur une touche de la machine à écrire de gauche, le tuyau correspondant transmet la dépression à la machine de droite qui frappe un caractère du crypto. Le chemin suivi est changé par un seul rotor qui tourne d'un cran à chaque caractère. Il y a 28 caractères : les 26 lettres plus le point et un séparateur. Il s'agit donc d'un chiffrement polyalphabétique avec clé progressive de période 28.
On ne peut pas dire que l'ensemble soit portatif : on imagine mal une machine Enigma pneumatique !
@+
#254 Re : Cryptographie » Aide décryptage texte » 29-03-2017 20:44:03
Bonsoir à tous,
Les deux cryptogrammes ne sont pas identiques. Ils diffèrent à la troisième ligne.
C'est celui-là le bon.
Il est chiffré en Vigenère. La clé est "Flassans-sur-Issole" .
Le programme Python suivant donne la solution :
def dechiffre_Vigenere(crypto, clef):
"""Déchiffrement Vigenère qui conserve les caractères non alphabétiques
"""
clair = ''
i = 0 # indice du premier car. de la clef
for c in crypto:
if c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
clair += chr(ord('A')+(ord(c)-ord(clef[i]))%26) # Clair=Crypto-Clef
i += 1 # indice du caractère suivant de la clef
i %= len(clef) # si à la fin de la clef on revient au début
else:
clair += c # car. non alphabétique non traité
return clair
crypto = "XL MSAN GAWHK TS DIXMJCE WL \
TH VWPIIAK Z'PRYPNVJE PZSHKMJ... \
SDAVTNHW-LOV SNYT BS HSWPJ LU EALVWM XV AWK RPYC UAETEF \
DWM GTMK PLWXPS, LGN OGFBVCJ LI GEX ERGMVRJ !"
clef = 'FLASSANSSURISSOLE'
print(dechiffre_Vigenere(crypto, clef))
Comme je suis sympa, je donne la réponse ci-dessous :
N'oubliez pas votre pelle, il va falloir creuser !
Je ne vais pas tout faire non plus :-)
@+
#255 Re : Cryptographie » La cryptographie est en chantier! » 23-03-2017 12:53:54
Ça y est, je l'ai reçu (faut être patient !) et je viens d'en finir la lecture.
C'est un livre passionnant et très riche en renseignements sur la cryptographie.
En particulier, la reconstitution de la méthode utilisée par Beurling.
Concernant le précurseur Yves Gyldén, on peut trouver sur le web :
à la BnF : La cryptographie militaire des puissances centrales pendant la guerre de 1914-1918
Sur le site de la NSA : The Conctribution of the Cryptographic Bureaus in the World War
A+
#256 Re : Cryptographie » La cryptographie est en chantier! » 09-03-2017 18:06:49
Bonjour Fred,
C'est un gros boulot de récrire tous les applets Java en JavaScript !
Je te souhaite bon courage.
J'ai regardé un peu ce qui est déjà fait et ça répond vite même sur ma vieille tablette.
Il y a un petit souci avec le script du Playfair : il chiffre bien, mais ne déchiffre pas (il chiffre une nouvelle fois).
C'est une bonne idée de parler des cryptanalystes suédois. On parle beaucoup de Alan Turing, mais jamais de Arne Beurling. Et pourtant, casser le téléscripteur chiffré T52 avec du papier et un crayon, ce n'est pas banal !
@+
#257 Re : Cryptographie » J'ai besoin d'aide pour décrypter » 01-03-2017 10:39:54
Bonjour Tom,
C'est vraiment cousu de fil blanc !
Le premier message est codé en base64. Le bout de code Python suivant donne la solution.
import base64
crypto1 = 'dGEgdHJhZHVjdGlvbiBlc3QgYXBwcm94aW1hdGl2ZSBtYWlzIGNvbXByw6loZW5zaWJs\
ZSBldCBzaW5vbiBub24gYydlc3QgbWFycmFudCBkZSB0ZSBmYWlyZSBnYWzDqHJlIG1kcnI='
txt = base64.b64decode(crypto1)
print(txt.decode(encoding="utf-8"))
Le second message est la suite des codes ASCII, écrits en hexadécimal, des lettres du texte.
@+
#258 Cryptographie » Le disque de l'armée mexicaine » 18-02-2017 17:21:22
- Rossignol
- Réponses : 2
Bonjour à tous,
Je ne sais pas vous, mais moi je pensais bêtement que le disque de l'armée mexicaine avait été inventé par les Mexicains. Eh bien non, c'est une invention française (cocorico !)
Il s'agit du cryptographe de Kronberg, breveté en 1890, comme on peut le voir dans un article du Génie civil de cette même année.

On notera la position du W après le Z. Le W a fait une entrée tardive dans notre alphabet et sa place en 23-ième position n'était pas encore fixée : voir Wikipédia.
Sur tous les disques mexicains que j'ai vus, l'alphabet est écrit dans le sens rétrograde (sens des aiguilles d'une montre) mais sur celui de Fred, dans sa page sur le chiffre homophone, l'alphabet est écrit dans le sens direct (sens trigo) : c'est naturel pour un prof de maths ;-)
Conclusion : on connait mal notre patrimoine.
@+
#259 Re : Cryptographie » Cryptage DES, 3DES » 17-02-2017 11:59:49
Bonjour,
Le "Simplified DES" est une version très simplifiée (pour des raisons pédagogiques) du DES avec une clé réduite à 10 bit.
Voir : http://mercury.webster.edu/aleshunas/CO … G-SDES.pdf
(c'est écrit en english, of course ! )
#260 Re : Cryptographie » Le code secret des luthiers » 09-02-2017 16:05:54
Bonjour à tous,
Les auteurs de la vidéo viennent de publier un article dans Cryptologia.
On peut le lire ici gratuitement :-)
Bonne lecture.
#261 Re : Cryptographie » Le marquis de Viaris » 01-02-2017 20:23:54
Bonjour à tous,
La lecture du livre du marquis de Viaris m'a incité à étudier le cryptographe de Bazeries.
J'ai réussi à monter une attaque à texte chiffré seulement (ciphertext-only attack) qui permet de casser tout crypto assez long chiffré avec le cryptographe Bazeries. J'ai fait une page ipython-notebook là-dessus.
Incidemment, l'attaque marche aussi pour le M-94 américain (ya pas d'raison).
En cherchant des exemples de crypto, je suis tombé sur la présentation du cryptographe de Bazeries faite par Édouard Lucas en 1891 au congrès de l'Association française pour l'avancement des sciences. À la fin de l'article, on trouve deux cryptogrammes. Le premier se casse facilement. Le second m'a donné beaucoup de fil à retordre, mais j'ai fini par le décrypter (voir à la fin de la page citée plus haut - il faut faire durer le suspense !)
Dans son livre, Bazeries reprend ce crypto et l'attribut à Édouard Lucas.
Est-ce que quelqu'un a déjà vu ce crypto et sa solution ?
Est-ce que quelqu'un l'a vu dans l'oeuvre de Lucas ?
Je suis preneur de tout renseignement sur ces sujets.
Merci d'avance.
#262 Cryptographie » Émile Victor Théodore Myszkowski » 30-01-2017 12:32:52
- Rossignol
- Réponses : 1
Bonjour à tous,
En cherchant sur le site Gallica de notre bonne vieille bibliothèque nationale, je suis tombé sur un autre livre de cryptographie très rare :
Lt-Colonel E. Myszkowski - Cryptographie Indéchiffrable (1902)
Ce bouquin introuvable figure dans toutes les bibliographies de cryptographie.
Émile Myszkowski est surtout connu pour la méthode de transposition qui porte son nom.
Dans sa leçon n° 16 sur les transpositions, Lanaki décrit la transposition de Myszkowski et donne comme origine du nom : "Named after the famous flying Myszkowski family circus high-wire act" :-)
C'est dire si notre Lieutenant-Colonel est mal connu !
@+
#263 Re : Cryptographie » Le code secret des luthiers » 27-01-2017 19:47:27
@Fred
Tu as raison, il n'y a pas de loi pour le dernier chiffre d'un nombre !
Je me suis amusé à dénombrer le premier chiffre de chacun des 44 prix qu'il donne.
J'obtiens :
12 m = 1
10 i = 2
6 b = 3
5 o = 4
2 r = 5
4 z = 6
3 f = 7
2 e = 8
À part une petite faiblesse pour le r, la série de prix donnée suit la très curieuse loi de Benford.
Compte tenu de la taille de l'échantillon, il est plausible que les prix soient bien des prix relevés et non des valeurs bidonnées ;-)
@+
#264 Re : Cryptographie » Le code secret des luthiers » 24-01-2017 18:55:28
Bonjour à tous, bonjour Fred,
Très intéressante cette vidéo.
Elle m'a rappelé un chapitre du livre d'André Langie : De la cryptographie (1918).
J'ai fait un scan du chapitre, voir Le magasin d'antiquités
J'ai fait ça avec mon nouveau scanner, mais je ne maîtrise pas encore la bestiole :-)
@+
#265 Re : Cryptographie » Plusieurs code à Déchiffrer » 18-01-2017 19:21:05
Sa
Tt vnt àpt àqst ttdr !
Sur son excellent crypto blog Klaus Schmeh à posté ces messages chiffrés.
Ils proviennent de jeux vidéo et leurs solutions sont mises à prix !
Une solution, assez surprenante, a déjà été proposée pour le crypto "The Castle".
Accrochez-vous, c'est du brutal !
@+
#266 Re : Cryptographie » Machine ENIGMA » 06-01-2017 16:56:14
Bonjour ludendo,
Il n'est pas facile d'expliquer avec des mots un appareil mécanique comme la machine Enigma.
Je vous conseille de lire la page web suivante, d'examiner les dessins et de regarder la vidéo à la fin : Réplique Enigma
(une autre vidéo sur YouTube )
Un exemple :
On suppose, comme précédemment, les rotors I, II, III dans l'ordre de gauche à droite à la position initiale AAA.
Le rotor III entraîne le II quand il passe de V à W.
Le rotor II entraîne le I quand il passe de E à F.
(l'encoche sur le rotor I n'entraîne rien quand il passe de Q à R car c'est le dernier rotor !)
La séquence obtenue à chaque frappe d'une touche est :
AAA AAB AAC AAD AAE AAF AAG AAH AAI AAJ AAK AAL AAM AAN AAO AAP AAQ AAR AAS AAT AAU AAV
en passant de V à W le rotor III entraîne d'un cran le rotor II :
ABW ABX ABY ABZ ABA ABB ABC ... ABV
Le rotor III passe de V à W donc
ACW ACX ACY ACZ ACA ...
Tout se passe comme pour un compteur kilométrique d'automobile, mais on est modulo 26 au lieu de modulo 10.
C'est quand le rotor II entraîne le I que c'est différent :
... ADM ADN ADO ADP ADQ ADR ADS ADT ADU ADV
Le rotor III passe de V à W : il incrémente le rotor II
AEW
ici on va avoir le double avancement : la came qui est entre les rotors II et I est dans l'encoche correspondant à E.
Quand on appuie sur une touche, la came va monter et pousser le rotor II par son encoche et le rotor I par sa roue à rochet : les deux rotors avancent d'un cran.
On obtient :
BFX BFY BFZ BFA BFB BFC ...
On voit que la séquence attendue
AEX AEY AEZ AEA AEB AEC AED AEE AEF AEG AEH AEI AEJ AEK AEL AEM AEN AEO AEP AEQ AER AES AET AEU AEV BFW
est sautée, on passe directement à BFX
La période de la machine Enigma est donc $26\times 25\times 26 = 16\,900$ et non $26\times 26\times 26 = 17\,576$.
Notez bien que le même phénomène apparait pour les rotors III et II : quand le rotor III entraîne le rotor II il est lui aussi poussé par son encoche, mais comme il est dans le même temps entraîné par sa roue à rochet à chaque frappe de touche, il n'y a aucun effet supplémentaire.
Pour votre programme il faut donc veiller, quand le rotor II est sur sa lettre de "turnover" (E dans l'exemple), à incrémenter les rotors II et I en même temps (pour passer de AEW à BFX dans l'exemple).
Le module Python Py-Enigma permet de vérifier la double avancée :
from enigma.machine import EnigmaMachine
machine = EnigmaMachine.from_key_sheet(
rotors='I II III',
reflector='B',
ring_settings=[0, 0, 0],
plugboard_settings='')
machine.set_display('ADM') # on part de là
for _ in range(20): # 20 premiers résultats demandés
machine.key_press('A') # on appuie sur une touche
print(machine.get_display(), end = ' ') # position des rotors
On obtient : ADN ADO ADP ADQ ADR ADS ADT ADU ADV AEW BFX BFY BFZ BFA BFB BFC BFD BFE BFF BFG
Bon courage et ...
Bonne année 2017 à ceux qui m'ont lu jusque là !
#267 Re : Cryptographie » System de chiffrement » 29-12-2016 13:04:54
Bonjour,
On pose $n=143=11\times13$
Tout revient à déterminer les $k = (k_1, k_2)\in \mathbb{Z}/n\mathbb{Z}\times \mathbb{Z}/n\mathbb{Z}$ tels que la fonction affine $E_k$ de $\mathbb{Z}/n\mathbb{Z}$ dans $\mathbb{Z}/n\mathbb{Z}$ définie par $E_k(x) = k_1x+k_2$ soit bijective.
Puisque l'ensemble de départ et l'ensemble d'arrivée de $E_k$ est le même ensemble fini $\mathbb{Z}/n\mathbb{Z}$, il suffit de chercher quand $E_k$ est injective.
Quels que soient $u$ et $v$ dans $\mathbb{Z}/n\mathbb{Z}$
$$E_k(u)=E_k(v) \Rightarrow k_1u+k_2 = k_1v+k_2 \Rightarrow k_1u+k_2-k_1v-k_2 = 0 \Rightarrow k_1(u-v) = 0$$
Si $k_1$ est premier avec $n$ alors $k_1$ est inversible d'après l'identité de Bézout : il existe $k_1^{-1}$ tel que $k_1^{-1}k_1=1$
$$E_k(u)=E_k(v) \Rightarrow k_1(u-v) = 0 \Rightarrow k_1^{-1}k_1(u-v) = 0 \Rightarrow (u-v) = 0\Rightarrow u=v$$
donc $E_k$ est injective et donc bijective.
Si $k_1$ n'est pas premier avec $n$ alors, soit $k_1=0$, soit $k_1$ est un diviseur de zéro.
En effet, si $k_1 \neq 0$ et si $k_1$ n'est pas premier avec $n$ alors ils ont un diviseur commun $d > 1$.
Autrement dit, il existe des entiers $k_1^{\prime}$ et $n^{\prime}$ tels que $k_1 = k_1^{\prime}d$ et $n = n^{\prime}d$.
On a alors $k_1n^{\prime} = (k_1^{\prime}d)n^{\prime} = k_1^{\prime}(n^{\prime}d) = k_1^{\prime} n \equiv 0$
Comme $d>1$ on a $n^{\prime}\neq 0$ donc $k_1$ et $n^{\prime}$ sont des diviseurs de zéro.
Si $k_1=0$ alors $E_k$ est constante donc non bijective.
Si $k1$ est un diviseur de zéro associé à $n^{\prime}$
$$E_k(n^{\prime}) = k_1n^{\prime}+k_2=0+k_2=k_2$$
On a donc $E_k(n^{\prime}) = E_k(0)$ avec $n^{\prime}\neq 0$ : $E_k$ n'est pas injective.
Conclusion : $E_k$ est un chiffrement affine si et seulement si $k_1$ est premier avec $n$ (pas de condition sur $k_2$).
Le nombre d'entiers naturels inférieurs à $n$ et premiers avec $n$ est $\varphi(n)$ l'indicatrice d'Euler.
Le nombre de chiffrements affines sur $\mathbb{Z}/n\mathbb{Z}$ est donc $n\varphi(n)$.
Pour $n=143=11\times 13$ on a $\varphi(143)=(11-1)(13-1)=10\times12 = 120$
Le nombre chiffrements affines sur $\mathbb{Z}/143\mathbb{Z}$ est donc $143\times 120 = 17\,160$, ou $17\,159$ si on retire l'identité.
@+
#268 Re : Cryptographie » Machine ENIGMA » 27-12-2016 11:54:23
Bonjour,
La machine Enigma étant initialisée comme indiqué précédemment, quand on appuie sur la touche A, le rotor le plus à droite (rotor III) tourne d'un cran : on tourne donc ce rotor d'un cran vers soi comme pour desserrer une vis.
Quand la touche arrive en bout de course, le courant est établi et suit le parcours :
A -> D -> D -> F -> S -> S -> F -> B
Quand on appuie sur la touche P, le rotor de droite tourne encore d'un cran et le parcours du courant électrique est :
P -> W -> P -> H -> D -> G -> T -> H
Même chose quand on appuie sur la touche D :
D -> C -> E -> L -> G -> F -> Z -> J
La chaîne de caractères APD est donc chiffrée par BHJ.
Pour votre simulateur, faites attention au double avancement du rotor du milieu. Voir Wikipedia.
@+
#269 Re : Cryptographie » Machine ENIGMA » 14-12-2016 10:47:28
Bonjour ludendo,
Je ne sais pas si ça peut vous aider, mais avez-vous regardé le module Python Py-Enigma ?
from enigma.machine import EnigmaMachine
machine = EnigmaMachine.from_key_sheet(
rotors='I II III',
reflector='B',
ring_settings=[0, 0, 0],
plugboard_settings='')
machine.set_display('AAA')
print(machine.process_text('PAPA')) # affiche LDSG
Le meilleur simulateur papier d'Enigma que je connaisse est là : Paper_Enigma.
(imprimante couleur recommandée !)
@+
#270 Re : Cryptographie » criptographie AES-128 CTR » 30-11-2016 20:28:18
Bonjour à tous,
Le problème paraît complexe, mais en fait c'est assez simple.
On utilise un chiffrement par bloc (ici c'est AES qui est utilisé parce qu'il est à la mode) en mode CTR :
Si on regarde bien le schéma, on voit que chaque bloc du texte clair est "xoré" avec un bloc qui sert de clé et qui provient du chiffrement par bloc (ici AES).
Compte tenu des conditions données dans le problème, ce bloc qui sert de clé ne dépend que du compteur donc tous les messages sont "xorés" avec le même flux de clés.
Tous ces messages sont "in depth" comme disent les Anglais.
Si on note $AES(i)$ le bloc du flux de clé qui correspond à la valeur $i$ du compteur, l'équation de chiffrement est
$$K(i) = C(i) \oplus AES(i)$$
où $K(i)$ est le bloc du crypto qui correspond au bloc du clair $C(i)$.
Notez bien que AES ne sert pas directement au cryptage, il sert à obtenir un flux de clés.
Pour deux messages $C_1$ et$C_2$, on aura deux cryptogrammes $K_1$ et $K_2$ tels que
$K_1(i) = C_1(i) \oplus AES(i)$
$K_2(i) = C_2(i) \oplus AES(i)$
L'opérateur xor étant nilpotent, on en déduit
$K_1(i)\oplus K_2(i) = C_1(i) \oplus AES(i) \oplus C_2(i) \oplus AES(i)= C_1(i) \oplus C_2(i)$
On connait donc $C_1(i) \oplus C_2(i)$ : si on connait un mot de $C_1$ on peut en déduire une partie de $C_2$ (et vice versa).
Pour fixer les idées, j'ai chiffré avec openssl deux très courtes phrases en français.
J'ai obtenu les cryptos :
k1 = 'YYADVo556exkMnlOufPHmqOgxAJ75gvxyrbhgcc='
k2 = 'YMIUTYIr7qJiLylHo/aSmr+gwAI87Bj5138='
Les cryptos sont en base64 (c'est l'option -a sur la commande openssl), il faut les convertir en chaines binaires et les xorer :
import base64
k1 = base64.b64decode('YYADVo556exkMnlOufPHmqOgxAJ75gvxyrbhgcc=')
k2 = base64.b64decode('YMIUTYIr7qJiLylHo/aSmr+gwAI87Bj5138=')
xored = [k1[i] ^ k2[i] for i in range(min(len(k1), len(k2)))]
print(xored)
On obtient
[1, 66, 23, 27, 12, 82, 7, 78, 6, 29, 80, 9, 26, 5, 85, 0, 28, 0, 4, 0, 71, 10, 19, 8, 29, 201]
La fonction Python suivante fait un xor entre les éléments de cette liste et la liste des codes ascii d'un mot à tester pour tous les décalages.
def cherche_xor(xored, word):
test = [ord(c) for c in word]
for i in range(len(xored)-len(word)+1):
ligne = ''
for j in range(len(test)):
ligne += chr(xored[i+j] ^ test[j])
print(i, ligne)
Si on cherche la chaine " est " :
cherche_xor(xored, ' est ')
0 !'do,
1 brhxr
2 7~&'
3 ;i!sn
4 ,7t:&
5 rb=r=
6 '+uip
7 ncn$)
8 &x#}:
9 =5zn%
10 pliqu
11 )v!
12 :`&t<
13 %0sh
14 ueot$
15 ysp
16 <ewtg
17 as3*
18 $e4~3
19 "yg(
20 go`|=
21 *v{ié
au décalage 10 on a "pliqu".
..........pliqu............
.......... est .......
On peut alors chercher les mots en ...pliqu...
Pour "expliquer " on obtient :
cherche_xor(xored, 'expliquer ')
0 d:gwe#r+t=
1 'ok`;v;cop
2 rc|>n?sx")
3 ~t"k'wh5{:
4 i*w"ol%lh%
5 7>jt!|wu
6 b6vq9xo`'
7 +~m<`kp0r<
8 ce est en
9 x(yvl$uyr$
10 5qji<qiev
11 lbu9imuarg
12 }%luqqe5*
13 `-ppiuu"x3
14 0xllmq2oa(
15 edphi6vz=
16 yxtl.{fmoé
En 8 on a une partie significative.
........expliquer ...........
........ce est en .....
Cherchons encore " en "
cherche_xor(xored, ' en ')
0 !'y;
1 bru,
2 7~br
3 ;i<'
4 ,7in
5 rb &
6 '+h=
7 ncsp
8 &x>)
9 =5g:
10 plt%
11 )ku
12 :`;
13 %0n<
14 uer
15 yn$
16 <ej
17 ang
18 $e)*
19 "d3
20 go}(
21 *vf=
22 3msé
En 14 on retrouve "uer", la fin de "expliquer".
en 17 on a " ang"
........expliquer en ........
........ce est en ang..
ang = anglais ?
cherche_xor(xored, ' anglais')
0 !#y|`3n=
1 bvuk>f'u
2 7zb5k/on
3 ;m<`"gt#
4 ,3i)j|9z
5 rf aq1`i
6 '/hz<hsv
7 ngs7e{l&
8 &|>nvd<s
9 =1g}i4io
10 phtb9aus
11 ){k2l}iw
12 :d;gpams
13 %4n{lei4
14 uargha.y
15 }ncl&c`
16 <ajg+kz{
17 en fran
18 $a)mitº
en 17 on a " en fran"
........expliquer en fran....
........ce est en anglais
fran = français ? ..etc
Voilà pour le principe.
On peut utiliser une liste de mots courants pour automatiser tout ça.
Si on a plusieurs cryptos, on peut les "xorer" deux à deux et faire le traitement en parallèle...etc
@+
#271 Re : Cryptographie » Code en UBCHI » 15-11-2016 17:22:27
Bonjour tibo,
Tout dépend des conditions d'utilisation.
Pour les militaires, tous les systèmes de transposition sont faibles, car ils ne résistent pas à un usage intensif.
Pour un trafic de plusieurs centaines de messages chiffrés par jour avec la même clé (ce qui est courant en temps de guerre) il
suffit d'attendre d'avoir 3 ou 4 messages de même longueur. On les écrit l'un en dessous de l'autre en alignant bien les lettres. On découpe ensuite avec des ciseaux les colonnes de lettres.
Si on a, par exemple, 4 messages de 50 lettres, on se retrouve avec un puzzle de 50 pièces. Le but du jeu est de reconstituer le
texte des 4 messages simultanément. Un cryptanalyste un peu entrainé y arrive facilement, surtout s'il est cruciverbiste.
Une fois ces messages reconstitués, on en déduit la clé (c'est-à-dire l'ordre de placement des lettres) et on peut déchiffrer tous les messages du jour, aussi vite que l'ennemi !
Par contre, si on n'a qu'un seul crypto ou bien, ce qui revient au même, si chaque crypto est chiffré avec une clé différente, le problème est bien plus compliqué.
Pour les transpositions simples à tableau complet, on est ramené à la solution précédente, car toutes les colonnes étant de même longueur, on peut sortir les ciseaux.
Mais si la transposition est à tableau incomplet, il y a des colonnes courtes et des colonnes plus longues d'une case (comme dans l'exemple de l'UBCHI) et on ne sait pas où elles se trouvent si on n'a pas la clé !
Si la clé n'est pas trop longue, on peut utiliser la "méthode du chapeau".
Voir le cours de Lanaki (en anglais) The Analytic Matrix or Hat Diagram dans la leçon 16
Là où ça devient vraiment très compliqué, c'est quand on fait deux transpositions à tableaux incomplets successives, soit avec la même clé et en utilisant des nuls comme dans l'UBCHI, soit avec deux clés différentes.
Voir par exemple Lanaki : leçon 24 et Kullback - General solution of the double transposition cipher
Résoudre un crypto chiffré en double transposition avec des clés un peu longues est toujours un défi, même avec un ordinateur.
En 2014 George Lasry et ses camarades ont cassé un crypto chiffré en double transposition qui datait de 2007. Un exploit.
Voir : Solving the Double Transposition Challenge with a Divide and Conquer Approach
et Cryptanalysis of the Columnar Transposition Cipher with Long Keys.
Mais la méthode est lourde et longue, et quand nerosson lui a proposé un crypto en français, George Lasry a décliné l'invitation. On le comprend. Voir http://www.bibmath.net/forums/viewtopic.php?id=6614
Et pourtant, ce crypto n'est qu'une anagramme du texte clair...
#272 Re : Cryptographie » Code en UBCHI » 14-11-2016 17:08:52
Bonjour tagada,
Il faut commencer par traduire la clé en suite numérique. On suit l'ordre alphabétique de gauche à droite :
S O U R I S S O U R I S S O U R I S S O U R I S S O U R I S
1 2 1 2 3 1 4 2 3 1 5 4 2 6 3 1 5
Le crypto fait 14 caractères donc le tableau de transposition fait deux lignes de 6 cases plus une ligne de 2 cases.
Crypto : IEUEA RHPPI QRES
Première transposition : on remplit le tableau en colonne de haut en bas en suivant l'ordre de la clé :
S O U R I S S O U R I S S O U R I S S O U R I S
4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5
=========== =========== =========== ===========
. . . . . . . . . . I . . U . . I . . U . R I .
. . . . . . . . . . E . . E . . E . . E . H E .
. . . . . A . A
S O U R I S S O U R I S S O U R I S
4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5
=========== =========== ===========
P U . R I . P U . R I Q P U E R I Q
P E . H E . P E . H E R P E S H E R
I A I A I A
On relève en ligne : PUERIQPESHERIA
On enlève la dernière lettre : PUERIQPESHERI et on recommence (le tableau a une case de moins)
Deuxième transposition :
S O U R I S S O U R I S S O U R I S S O U R I S
4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5
=========== =========== =========== ===========
. . . . . . . . . . P . . E . . P . . E . I P .
. . . . . . . . . . U . . R . . U . . R . Q U .
. . . .
S O U R I S S O U R I S S O U R I S
4 2 6 3 1 5 4 2 6 3 1 5 4 2 6 3 1 5
=========== =========== ===========
P E . I P . P E . I P H P E R I P H
E R . Q U . E R . Q U E E R I Q U E
S S S
On relève en ligne : PERIPHERIQUES
C'est facile quand on a la clé; ça l'est beaucoup moins quand on doit la trouver !
#273 Re : Cryptographie » code à dechiffrer » 01-11-2016 21:38:27
Bonsoir nono12,
La transcription de votre crypto est incomplète et erronée.
Pour les lecteurs du forum, je donne le problème complet :

Il s'agit d'une substitution simple, la seule difficulté est que le texte est en anglais !
Je vous donne le début de la solution :
NXUZG HMPOH MFXUJ KXBJ! BXPCH STIPJ
congr atula tions boys! youha vejus
MQTNG BAMTQ MCFJN XQTQR TJJHZT.
tdecr ypted thisc odedm essage.
FNHUM TOOPJ BXPHG TSTGB JMGXU Z!UXV,
icant ellus youar every stron g!now,
BXPCH STHUX MCTGN CHOOT UZT:M GHUJO
youha veano therc halle nge:. .....
HMTMC FJRTJ JHZTF UMXWG TUNCF UXGQT
GMXAG HNMFJ TTUZO FJC.F MFJUF NTUXM?
Je vous laisse déchiffrer la dernière partie du message et découvrir le deuxième défi que vous allez relever sans peine, car je ne doute pas que vous soyez "very strong in english!" ;-)
#274 Cryptographie » Le marquis de Viaris » 18-10-2016 10:42:17
- Rossignol
- Réponses : 3
Bonjour à tous,
L'université de Lille 1 a eu la bonne idée de mettre en ligne un livre de cryptographie très rare :
L'art de chiffrer et déchiffrer les dépêches secrètes par le marquis de Viaris.
Ce divin marquis prenait un plaisir sadique à casser les chiffres proposés par le commandant Bazeries !
La célèbre "attaque de Viaris" sur le cryptographe cylindrique commence page 99 (p.103 du pdf).
Pour une explication plus claire et plus détaillée, voir l'article de nerosson sur le sujet.
Bonne lecture.
#275 Re : Cryptographie » Décryptage de hash 128 bits » 28-09-2016 11:33:26
J'ai testé vos données avec les fonctions de hachage 'MD2', 'MD4', 'MD5', 'RIPEMD128', sans succès :-(
Le salage s'applique à la chaîne à hacher; on peut donc l'utiliser avec n'importe quelle fonction de hachage.
Par exemple avec MD5 :
# donne '311BA248903382FD1EEE8670472D3F39'
avec le sel 'Glop!' on obtient :
# donne '934EF6F04B1900DCA6731F4AE19E3BB8'
Le sel étant une chaîne binaire, on a $(2^8)^n$ possibilités pour un salage de $n$ octets.
Une attaque par force brute sur le sel devient donc impraticable si $n$ est un peu grand; c'est le but recherché.
Notez que ça ne coute rien d'utiliser un sel un peu long : l'empreinte reste de même taille =128 bits.
En conclusion, vous êtes devant un problème qui ne manque pas de sel ! (désolé, je n'ai pas pu résister :-)







