Page 1 sur 3

Challenge Crypto

Publié : sam. 03/juil./2010 10:15
par SPH
En cryptographie, il faut toujours se poser cette question : et si l'algorithme de chiffrement tombait dans des mains ennemies, cela remettrait il en question la sécurité du texte chiffré ?
Par exemple, le texte chiffré "Buubrvfa" ne veux rien dire. Le texte a subit pour chaque lettre un décallage de +1. "Décallage de lettre de x rang" est l'algoritme. La clé est "1". On vois tout de suite que si l'algorithme deviens public, tout texte deviens tres facile a déchiffrer meme si on ignore la clé puisqu'il suffit d'essayer toutes les clés possibles (25) jusqu'a ce qu'on tombe sur un texte clair.
Donc, voici ce qu'on va faire. Chacun des participants postera un texte chiffré et l'algorithme qui lui a donné ce texte chiffré. Mais il ne donnera pas la clé. La solidité de l'algorithme sera ainsi mise a l'épreuve...
Postez donc un texte chiffré (sous forme d'octets) conséquent (une phrase de + de 50 mots. Pour en avoir une facilement, copiez la depuis des sites comme clubic) et l'algorithme qui vous a permis de l'obtenir. La clé que vous garderez devra ne pas faire plus de 8 caracteres (sinon ce n'est plus très pédagogique).
Répondez en postant le texte en clair et l'algorithme qui vous a permi de l'obtenir.
Tout cela sera fort instructif pour tout le monde. Et vous verrez qu'il y aura des algo differents selon que l'on crypte ou décrypte un message.

Voici mon challenge :

Code : Tout sélectionner

txt$="..."   
cle$="..."

pointeur=1
a$="Data.b "

For i=1 To Len(txt$)
  b.b=Asc(Mid(txt$,i,1))
  b-Asc(Mid(cle$,pointeur,1))
  
  a$+Str(b)
  If Len(a$)> 150
    Debug a$
    a$="Data.b "
  Else
    a$+","
  EndIf
  
  pointeur+1
  If pointeur>Len(cle$)
    pointeur=1
  EndIf
Next

Debug a$
Data.b -37,15,15,127,7,-69,-5,21,12,0,6,-69,10,0,16,10,125,-69,6,4,-67,-6,-11,11,-70,18,22,4,-10,10,6,8,14,12,-7,-69,-2,20,-67,4,-3,7,6,8,-2,9,-8,-69,-2
Data.b 4,-67,11,125,7,-125,2,5,-8,6,2,-1,12,2,5,8,14,-70,18,18,9,-76,14,-5,-65,4,-8,0,0,12,8,2,-73,-8,-62,-1,23,17,-4,2,14,3,14,11,10,-76,0,8,-65,11,6,10
Data.b 0,7,1,15,-4,-76,-51,-54,-49,-43,-61,-76,7,-63,-120,14,12,-3,11,-1,-65,1,-4,-76,-24,9,25,6,3,0,-4,-70,0,11,5,3,9,-3,-120,-67,-8,10,10,3,17,-67,-5
Data.b 3,16,-4,11,-122,-73,-9,0,-70,2,5,0,-6,1,12,4,-53,-73,-32,0,-70,15,15,-4,1,4,-1,17,-67,4,-3,7,6,8,-2,9,-8,-69,-5,-65,-122,11,125,-69,-5,19,17,-4,-3
Data.b 9,14,-65,2,5,-76,15,12,14,6,10,-76,-4,8,18,-67,-6,3,9,14,17,2,-73,116,-69,10,4,6,5,-7,-69,-2,4,18,15,-76,11,9,20,15,-73,0,0,-70,18,2,-6,3,9,-2,-51
Data.b -67,-38,-4,-4,11,20,2,-73,-2,10,15,17,-67,-56,-55,-53,-70,12,6,3,0,4,9,13,16,-73,-8,-62,-1,23,17,-4,2,14,3,14,11,10,-76,14,-1,17,-2,0,-7,9,14,-65
Data.b 18,11,-3,7,3,18,-122,-4,7,-55

Re: Challenge Crypto

Publié : sam. 03/juil./2010 10:20
par TazNormand
Salut SPH,

tu pourrais éditer ton message et mettre ton Data sur plusieurs lignes, c'est illisible sinon

Re: Challenge Crypto

Publié : lun. 05/juil./2010 17:55
par SPH
Personne ne veux participer ? :| :idea:

Re: Challenge Crypto

Publié : lun. 05/juil./2010 17:59
par gildev
Pas assez de neurones pour ça. :lol:

Re: Challenge Crypto

Publié : lun. 05/juil./2010 19:06
par Patrick88
le piratage ne m'interesse pas

Re: Challenge Crypto

Publié : mar. 06/juil./2010 12:43
par Le psychopathe
je vais essayer ce soir après le taf de trouver ta clée. Mais laisses moi jusqu'à la fin de la semaine au moins.
Je te redis ça quand j'ai PB en amin.

Re: Challenge Crypto

Publié : mer. 07/juil./2010 10:17
par Good07
Bonjour SPH,

En fait ton code est très facile à craquer car il ne s'agit ni plus ni moins que d'un système polyalphabétique apparenté au code de Vigenère qui date quand même de 1587 ... :D
Le tiens pourrait faire penser au système Gronsfeld inventé au 19eme siècle pour simplifié l'utilisation de la table de Vigenère.
Le système que tu emplois est basé sur le même principe mais adapté à nos ordinateurs puisque tu travailles avec les codes ASCII des lettres au lieu de travailler avec la position des lettre dans l'alphabet. Par exemple pour moi, L=12 alors que chez toi L=108 en minuscule ou 76 en majuscule.
En fait pour décoder ce système, c'est très facile dés lors qu'on connait la longueur de la clef. En plus, mais tu as raison de dire que c'est pour une raison pédagogique que tu limites sa longueur à 8. Car en fait, plus la clef est courte plus ton message peut-être décodé facilement.
L'important au départ, c'est de connaitre la longueur de la clef et pour cela on utilise le système de coincidence. Prenons par exemple le phrase suivante:
CESTLEPLUSBEAUMESSAGE chiffré avec ton système par la clef (Je n'ai pas beaucoup d'imagination :D ) SPH
SPHSPHSPHSPHSPHSPHSPH

On s'aperçois vite que par exemple le H de SPH code le E de LE puis ensuite le E de BEAU et enfin le E final de MESSAGE. Si l'on compte le nombre de lettres entre ses trois coincidences on a successivement un écart de 6 entre le E de LE et le E de BEAU et 9 entre le E de BEAU et le E final de MESSAGE.
Ce que je t'indique est un système simpliste pour trouver la longueur de la clef, mais en regardant on s'aperçoit que les chiffres 6 et 9 sont tous les deux divisibles par 3, chiffre qui est égal à la longueur de ta clef. :twisted:
Ensuite le procédé de déchiffrement est simple, il suffit de relevé les lettres du message (dans ton cas ce sont des chiffres ...) par trois. Dans mon exemple cela donne ceci:

CES
TLE
PLU
SBE
AUM
ESS
AGE

Maintenant, on sait que la première colonne à été chiffré par la lettre S, la seconde par la lettre P et la troisième par la lettre H. Pour retrouver le message, il suffit de faire subir à chaque colonne un décalage de rang n pour retrouver et la clef et le texte clair.
Et plus la clef sera courte et plus le message sera long et plus ce sera facile. :D
Pour le transformer en message pratiquement indéchiffrable il suffit d'utiliser une clef de longueur identique au message à chiffrer. Dans ce cas, bonjour l'angoisse pour déchiffrer.
Je n'ai pas pris la peine de coder un programme pour avoir la solution, je l'ai déjà fais , mais il ne travaille qu'avec des lettres ... :(
Mais comme je le disais au début le principe de base est le même. :wink:
Mais bonne continuation quand même, c'est tout de même très intéressant et puis c'est bien d'apprendre en s'amusant. :D

André.

Re: Challenge Crypto

Publié : mer. 07/juil./2010 10:34
par Le psychopathe
Je n'ai pas très bien compris ta technique mais par une autre méthode je pense avoir trouvé la longueur de la clef : 7.
SPH peux tu confimer ?

Edit :
Je ne suis pas d'accords avec toi car on a pas la chaine de depart donc tu ne peux pas savoir si c'est un E ou pas. Donc ta méthode ne fonctionne pas.
Le seul moyen d'y arriver et faire faire une attaque brute force couplée à un dico sur les 7 première lettres dans ce cas.

Re: Challenge Crypto

Publié : mer. 07/juil./2010 10:42
par Ar-S
Belle explication André :wink:

Re: Challenge Crypto

Publié : mer. 07/juil./2010 11:01
par Cls
Ça sent le "Que sais - je ?" sur la cryptanalyse ça ! :D

Re: Challenge Crypto

Publié : mer. 07/juil./2010 11:52
par Le psychopathe
Good07 a écrit :Bonjour SPH,

En fait ton code est très facile à craquer

Le système que tu emplois est basé sur le même principe mais adapté à nos ordinateurs puisque tu travailles avec les codes ASCII des lettres au lieu de travailler avec la position des lettre dans l'alphabet. Par exemple pour moi, L=12 alors que chez toi L=108 en minuscule ou 76 en majuscule.
En fait pour décoder ce système, c'est très facile dés lors qu'on connait la longueur de la clef. En plus, mais tu as raison de dire que c'est pour une raison pédagogique que tu limites sa longueur à 8. Car en fait, plus la clef est courte plus ton message peut-être décodé facilement.
L'important au départ, c'est de connaitre la longueur de la clef et pour cela on utilise le système de coincidence. Prenons par exemple le phrase suivante:
CESTLEPLUSBEAUMESSAGE chiffré avec ton système par la clef (Je n'ai pas beaucoup d'imagination :D ) SPH
SPHSPHSPHSPHSPHSPHSPH

On s'aperçois vite que par exemple le H de SPH code le E de LE puis ensuite le E de BEAU et enfin le E final de MESSAGE.Mais bonne continuation quand même, c'est tout de même très intéressant et puis c'est bien d'apprendre en s'amusant. :D

André.
Donc comme je l'ai dis plus haut, je ne suis pas du tout d'accord avec toi. Car tu pars en connaissant la chaine alors que là la chaine est cryptée.
Donc même si la clée a une longueur de 3 c'est très complexe car : C'est une phrase que tu ne connais pas donc omment savoir si c'est un E , un A , un I ou ? " € .
Ce qui fait que tu ne peux pas repérer comme tu l'as fais plus haut.
De plus notre cher SPH a utilisé ASCII étendu. Et là on va me dire : comment tu sais ça ?

C'est tout simple : dans les data nous avons des valeurs elevés : 125 par exemple et dans la même colonne -76 sachant que le code ASCII est exploitable à partir de la décimale 32. 32 + 76 = 108 donc au final la table ASCII pour cette colonne a un intervalle de 32 à (125+108) = 233 (é). Soit 199 possibilités au max mais comme il y a des symboles que l'on tape pas au clavier je dirai 185 en gros.

Si c'est si facile vas-y j'attends avec impatience ta réponse. Car pour moi il y a qu'une attque de brute force avec dico qui peut en venir à bout. Je code ça ce soir.
J'espère avoir donné une piste ^^ Cela fait 4 heures que je travail dessus juste sur papier. Au boulot je n'ai pas pb ^^

@SPH peux tu me confirmer que la clef a une longueur de 7, si c'est bon j'expliquerai comment j'ai trouvé. Ensuite peux tu aussi confirmé que tu as utilisé ASCII étendu. thx

Re: Challenge Crypto

Publié : mer. 07/juil./2010 12:36
par SPH
Le psychopathe a écrit :Je n'ai pas très bien compris ta technique mais par une autre méthode je pense avoir trouvé la longueur de la clef : 7.
SPH peux tu confimer ?
Non :mrgreen:
@Good07 : je suis en phase avec toi (meme si j'aurais voulu que tu pondes un code. Allez, je te laisse quelques jours) :wink:

Image

Re: Challenge Crypto

Publié : mer. 07/juil./2010 13:15
par Le psychopathe
ok, tant pis je vais continuer à chercher, sinon peux tu confirmer que tu as utilisé de l'ASCII étendu ? Soit de 0 a 255.

Re: Challenge Crypto

Publié : mer. 07/juil./2010 13:55
par SPH
Le psychopathe a écrit :ok, tant pis je vais continuer à chercher, sinon peux tu confirmer que tu as utilisé de l'ASCII étendu ? Soit de 0 a 255.
Le moteur est ceci :

Code : Tout sélectionner

b.b=Asc(Mid(txt$,i,1))
b-Asc(Mid(cle$,pointeur,1))
La clé est <8 et n'est pas 7 :mrgreen:
Le texte crypté est bien du texte avec de rares caracteres n'entrant pas dans l'alphabet et la clé est uniquement en lettre d'alphabet.
:idea: ...voila voila... :idea:

Re: Challenge Crypto

Publié : mer. 07/juil./2010 14:31
par Le psychopathe
SPH a écrit :
Le psychopathe a écrit :ok, tant pis je vais continuer à chercher, sinon peux tu confirmer que tu as utilisé de l'ASCII étendu ? Soit de 0 a 255.
Le moteur est ceci :

Code : Tout sélectionner

b.b=Asc(Mid(txt$,i,1))
b-Asc(Mid(cle$,pointeur,1))
La clé est <8 et n'est pas 7 :mrgreen:
Le texte crypté est bien du texte avec de rares caracteres n'entrant pas dans l'alphabet et la clé est uniquement en lettre d'alphabet.
:idea: ...voila voila... :idea:
Ne t'inquiète pas je l'avais bien compris. Merci pour ces précisions.