Forum Liberty Basic France

Projets open source » Décryptage Enigma 3 rotors 1 réflecteur Complément de mon prog. de cryptage.
Le 09/05/2015 à 10h36

Libertynaute Débutant

Groupe: Membre

Inscrit le: 19/09/2013
Messages: 16
' DECHIFFREMENT D'UN MESSAGE 21/04/2015
Code VB :
 
a=13: b=7: c=19       'Position initiale des rotors
Rotor$(1) = "EKMFLGDQVZNTOWYHXUSPAIBRCJ"
Rotor$(2) = "AJDKSIRUXBLHWTMCQGZNPYFVOE"
Rotor$(3) = "BDFHJLCPRTXVZNYEIWGAKMUSQO"
Rotor$(4) = "ESOVPZJAYQUIRHXLNFTGKDCMWB"   'pas utilisé
Rotor$(5) = "VZBRGITYUPSDNHLXAWMJQOFECK"   'pas utilisé
Reflect$  = "YRUHQSLDPXNGOKMIEBFZCWVJAT"
 
open "Systdata.bas" for input as #1  '   fichier auxiliaire d'écriture
    input #1, tex$
close #1
tex$ = upper$(tex$)
print tex$
lt = len(tex$)
 
for p = 1 to lt  'compteur de fin de message
    a=a+1
    if a>26 then a=1 : b=b+1
    if b>26 then b=1 : c=c+1
    if c>26 then c=1
next p
global t$
for p = lt to 1 step -1    'décompteur
    if a<1 then a=26 : b=b-1
    if b<1 then b=26 : c=c-1
    t$ = mid$(tex$,p,1)
 
    call déchif a,1
    call déchif b,2
    call déchif c,3
 
    R=asc(t$)-64
    t$ = mid$(Reflect$,R,1)
 
    call déchif c,3
    call déchif b,2
    call déchif a,1
 
    a=a-1
    tx$ = t$ +tx$ 
next p
print tx$
end
 
sub déchif co,ro
    R=instr(Rotor$(ro),t$,1) - co
    if R<1 then R=R+26
    t$=chr$(R+64)
end sub
 
____________________
jacques845

Web    
Le 09/05/2015 à 20h55

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 1844
Coucou ! J'ai pris ! merci.
Comme je voulais voir ta machine fonctionner, j'ai commencé de faire afficher les rotors.
Comme j'ai tendance à rester coincé dans les subs je les ai remplacées par des gosubs.
Mais je me suis aperçu que j'avais besoin du déchiffrage, j'ai donc mis en stand by
Le déchiffrage qui débarque va relancer l'affaire.
C'est quand même pas évident ce bazar.
Une petite explication ne serait pas de trop.

Edit: Hé hé...La machine n'aime pas les espaces
____________________
Roro

   
Le 29/11/2015 à 11h26

Libertynaute Débutant

Groupe: Membre

Inscrit le: 03/05/2012
Messages: 17
C'est un programme qui simule le fonctionnement des machines Enigma. Des sortes de machine à écrire utilisées par les Allemands pendant la seconde guerre mondiale pour s'échanger des messages chiffrés.

Je saurais pas expliquer le programme, mais il y a un article assez détaillé sur ces machines dans Wikipédia : https://fr.wikipedia.org/wiki/Enigma_%28machine%29

Pour les espaces, c'est normal. Les machines Enigma ne chiffraient que les lettres, pas les autres caractères. Les espaces n'étaient tout simplement pas écrits dans les messages. Les personnes qui déchiffraient les messages se débrouillaient pour les remettre une fois qu'ils avaient reconvertis les lettres.

Ça mériterait un petit traitement au début de la boucle, soit pour enlever tous les caractères qui ne sont pas des lettres (espaces et autres), soit pour les remettre tel quel dans le message chiffré.
____________________
Quand l'imbécile regarde la Lune, le sage lui met un doigt.
http://recher.wordpress.com

Web    
Projets open source » Décryptage Enigma 3 rotors 1 réflecteur Complément de mon prog. de cryptage.  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie