[solution]Challenge crypto Le psychopathe

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

[solution]Challenge crypto Le psychopathe

Message par Le psychopathe »

Il y a eu un petit souci j'ai donné le mauvais data. Donc c'est repartis !


Bonsoir, voilà parès avoir galerer sur le challenge de SPH. Je mis met aussi !
Donc la chaine est une phrase, la clé contient uniquement des lettres et fait entre 0-8 de longueur.
Franchement bravo à celui qui va trouver ! Et je ne suis pas vache je donne le code de cryptage fait à l'arrache certe ^^

Code : Tout sélectionner

; /////////////////////////Cryptage Xor///////////////////////
; ////////////////////////Le psychopathe//////////////////////
; ///////////////////////////07/07/2010///////////////////////

Global txt$=""
Global cle$=" "


Procedure cryptage_Xor(valeur_chaine, valeur_clef) ; converti valeur en binaire pour xor
For i=1 To 8
resultat = Val(Mid(RSet(Bin(valeur_chaine,#PB_Ascii), 8, "0"),i,1)) XOr Val(Mid(RSet(Bin(valeur_clef,#PB_Ascii), 8, "0"),i,1))
sortie$ = sortie$ + Str(resultat)
;Debug sortie$
Next
ProcedureReturn Val(sortie$)
EndProcedure

Procedure bin_to_ascii(binaire)
ProcedureReturn Val("%"+ RSet(Str(binaire),8,"0")) 
EndProcedure


Procedure sendcrypt(chaine$, cle$)


pointeur=1
a$="Data.b "

For i=1 To Len(txt$)
  b.b = bin_to_ascii(cryptage_xor(Asc(Mid(txt$,i,1)),Asc(Mid(cle$,pointeur,1))))
  ;Debug b
  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$
EndProcedure

sendcrypt(txt$,cle$)

Data.b 12,22,27,73,75,23,42,0,1,69,10,17,53,7,23,11,15,19,32,15,82,-123,75,21,55,28,23,23,75,4,35,19,27,6,10,2,32,24,23,11,31,65,51,26,1,69,31,0,39,25,23
Data.b 4,30,25,107,85,55,3,13,4,38,1,27,19,14,12,32,27,6,73,75,8,41,85,1,0,75,17,32,0,6,69,26,20,32,85,4,10,30,18,101,20,11,0,17,65,33,16,1,69,31,0,39,25
Data.b 23,4,30,25,101,22,29,11,31,4,43,20,28,17,75,5,32,6,82,1,4,15,43,-100,23,22,75,73,43,26,31,7,25,4,54,89,82,6,3,0,44,27,23,22,75,5,32,85,17,4,25,0
Data.b 38,1,-102,23,14,18,105,91,92,75,66,65,32,1,82,20,30,4,101,3,29,16,24,65,33,-100,1,12,25,8,32,15,82,17,25,8,32,7,82,21,10,19,101,26,0,1,25,4,101,22
Data.b 0,10,2,18,54,20,28,17,68,5,-84,22,0,10,2,18,54,20,28,17,75,2,32,85,6,4,9,13,32,20,7,75,75,37,36,27,1,69,8,4,101,22,19,22,71,65,44,25,82,0,24,21,101
Data.b 5,0,-116,13,-120,55,20,16,9,14,65,33,82,7,17,2,13,44,6,23,23,75,20,43,85,22,0,24,65,36,25,21,10,25,8,49,29,31,0,24,65,33,16,82,17,25,8,101,17,23
Data.b 69,8,4,49,1,23,69,24,4,38,1,27,10,5,79,
Dernière modification par Le psychopathe le mar. 13/juil./2010 6:52, modifié 2 fois.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Challenge crypto Le psychopathe

Message par SPH »

Ta phrase crypté, décrypté en 45 secondes :
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é ?
Ton code se simplifie BEAUCOUP sous la meme forme que mon challenge mais avec un XOR.
Je ne sais pas ce que tu voulais faire mais ce code essayant une clé de 1 caractere a reussi :

Code : Tout sélectionner

For dk=0 To 255 ; on essaye tous les caracteres pouvant etre la clé
  Restore dta
  
  test=0
  a$=""
  
  For i=1 To 189
  Read.b b.b
  b!dk
a$+ Chr(b)
  
  If (b>0 And b<32) Or (b>187)
    test=1
  EndIf
  
Next

If test=0
  Debug ("dk="+Str(dk)+"  "+a$)
EndIf

Next

DataSection:
  dta:
Data.b 69,110,32,99,114,121,112,116,111,103,114,97,112,104,105,101,44,32,105,108,32,102,97,117,116,32,116,111,117,106,111,117,114,115,32,115,101,32,112
Data.b 111,115,101,114,32,99,101,116,116,101,32,113,117,101,115,116,105,111,110,32,58,32,101,116,32,115,105,32,108,39,97,108,103,111,114,105,116,104,109
Data.b 101,32,100,101,32,99,104,105,102,102,114,101,109,101,110,116,32,116,111,109,98,97,105,116,32,100,97,110,115,32,100,101,115,32,109,97,105,110,115
Data.b 32,101,110,110,101,109,105,101,115,44,32,99,101,108,97,32,114,101,109,101,116,116,114,97,105,116,32,105,108,32,101,110,32,113,117,101,115,116,105
Data.b 111,110,32,108,97,32,115,-23,99,117,114,105,116,-23,32,100,117,32,116,101,120,116,101,32,99,104,105,102,102,114,-23,32,63
EndDataSection
dk=0 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é ?
Donc, ton code apparement tres compliqué se résume a du texte... EN CLAIR :mrgreen: :mrgreen: :mrgreen: :mrgreen:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: Challenge crypto Le psychopathe

Message par Le psychopathe »

mdr j'ai fais une couille ^^, c'est arrangé. J'ai donné les data non cryptés mdr.
désolé ^^
SPH a écrit :Ta phrase crypté, décrypté en 45 secondes :
Donc, ton code apparement tres compliqué se résume a du texte... EN CLAIR :mrgreen: :mrgreen: :mrgreen: :mrgreen:
le code est plus compliqué que le tien mais c'est juste de la conversion de nombre en chaine. Ou de binaire en nombre.
Maintenant si tu reussi en 40s chapeau :twisted: :twisted: :twisted:
Je vous ai mis un texte plus long pour que cela soit plus facile.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Challenge crypto Le psychopathe

Message par Backup »

tes data se terminent par une virgule ?? :) hum , ils y sont tous ?
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Challenge crypto Le psychopathe

Message par SPH »

Dobro a écrit :tes data se terminent par une virgule ?? :) hum , ils y sont tous ?
Oui oui. Regarde le code et tu verras pourquoi il y a toujours une virgule a la fin (c'est un code a l'arrache mais j'ai la fleme)

Code : Tout sélectionner

 a$+Str(b)
  If Len(a$)> 150
    Debug a$
    a$="Data.b "
  Else
    a$+","
  EndIf
...
...
Debug a$

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: Challenge crypto Le psychopathe

Message par Le psychopathe »

Oui c'est normale la virgule à la fin. J'ai fais ça à l'arrache mais comme tu viens de le mettre dans truc et astuces, je vais refaire un copde propre ce soir.

Sinon j'espère que quelqu'un va trouver comment craquer ma cle même si là je pense que c'est impossible sans passer par le brute force.
J'explique le principe du Xor pour ceux qui connaissent pas :
10011111 xor
01011001
------------
11000110

Voilà le principe. cf table Xor dans la doc.
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Challenge crypto Le psychopathe

Message par SPH »

Le psychopathe a écrit :...j'espère que quelqu'un va trouver comment craquer ma cle même si là je pense que c'est impossible sans passer par le brute force.
J'explique le principe du Xor pour ceux qui connaissent pas :
10011111 xor
01011001
------------
11000110

Voilà le principe. cf table Xor dans la doc.
Comme ton texte est en clair, ta clé ne peux qu'etre des '00000000' !!
Si tu as utilisé autre chose, alors, tu t'es gourré quelque part...

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Le psychopathe
Messages : 764
Inscription : jeu. 03/mars/2005 19:23

Re: Challenge crypto Le psychopathe

Message par Le psychopathe »

SPH regardes mon algo avant d'avancer des choses fausses.
Je vais rentrer plus dans les detail comme je vois que ça mouline.

Donc je prends la valeur ASCII d'une lettre de la chaine et pareil pour la clé.
Ensuite je transforme les Valeurs ASCII en Binaire.
Ensuite j'applique un Xor sur chaque bit.
Allez courage ;)

PS : si c'était que des zero j'aurai dans les data des 0 ... donc tu vois que cela fonctionne
Car après le binaire je le transforme en ASCII.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Challenge crypto Le psychopathe

Message par Backup »

Le psychopathe a écrit : J'explique le principe du Xor pour ceux qui connaissent pas :
10011111 original
xor
01011001 clef
------------
11000110 actuellement dans le fichier
oui c'est aussi sa faiblesse
car

10011111 actuellement dans le fichier connu !! ;)
------------ XOR
11000110 -< clef inconnu
=
01011001 resultat final a trouver (original)

on peut donc creer un algo qui va rechercher avec chacun des bits de ta clef inconnu mais (qu'on cherchera un par un) et en le Xorant avec les bits connus
a retrouver et controler (grace au indice que nous avons en notre possession (image/text....)) si c'est bon
et donc retrouver les Trois elements :)

(oula je ne suis peut etre pas tres clair la :lol: )

dommage j'ai pas trop le temps là ;)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Challenge crypto Le psychopathe

Message par G-Rom »

Dobro a écrit :
Le psychopathe a écrit : J'explique le principe du Xor pour ceux qui connaissent pas :
10011111 original
xor
01011001 clef
------------
11000110 actuellement dans le fichier
oui c'est aussi sa faiblesse
car

10011111 actuellement dans le fichier connu !! ;)
------------ XOR
11000110 -< clef inconnu
=
01011001 resultat final a trouver (original)

on peut donc creer un algo qui va rechercher avec chacun des bits de ta clef inconnu mais (qu'on cherchera un par un) et en le Xorant avec les bits connus
a retrouver et controler (grace au indice que nous avons en notre possession (image/text....)) si c'est bon
et donc retrouver les Trois elements :)

(oula je ne suis peut etre pas tres clair la :lol: )

dommage j'ai pas trop le temps là ;)



C'est pas long à faire , la clé est la dedans ;

Code : Tout sélectionner

En crypt
Do!bsxqu
Gl"ap{rv
Fm#`qzsw
Aj$gv}tp
@k%fw|uq
Ch&etvr
Bi'du~ws
Mf(kzqx|
Lg)j{py}
Od*ixsz~
Ne+hyr{
Ib,o~u|x
Hc-nt}y
K`.m|w~z
Ja/l}v{
U~0sbi`d
T1rchae
W|2q`kbf
V}3pajcg
Qz4wfmd`
P{5vglea
Sx6udofb
Ry7tengc
]v8{jahl
\w9zk`im
_t:yhcjn
^u;xibko
Yr<nelh
Xs=~odmi
[p>}lgnj
Zq?|mfok
eNCRYPT
dOBSXQU
gLAP[RV
fM@QZSW
aJGV]TP
`KFW\UQ
cHET_VR
bIDU^WS
mFKZQX\
lG	J[PY]
oD
IXSZ^
nEHYR[_
iBO^U\X
hC
N_T]Y
k@M\W^Z
jAL]V_[
u^SBI@D
t_RCHAE
w\Q@KBF
v]PAJCG
qZWFMD@
p[VGLEA
sXUDOFB
rYTENGC
}V[JAHL
|WZK@IM
TYHCJN
~UXIBKO
yR_NELH
xS^ODMI
{P]LGNJ
zQ\MFOK
.`#2904
/a"3815
,b!0;26
-c 1:37
*d'6=40
+e&7<51
(f%4?62
)g$5>73

&h+:18<
'i*;09=
$j)83:>
%k(92;?
	"l/>5<8
#m.?4=9
 n-<7>:

!o,=6?;
>p3") $
?q2#(!%
<r1 +"&
=s0!*#'
:t7&-$ 
;u6',%!
8v5$/&"
9w4%.'#
6x;*!(,
7y:+ )-
4z9(#*.
5{8)"+/
2|?.%,(
3}>/$-)
0~=,'.*
1<-&/+
%@
$A
'B
&
C
!
D
 E
#F
"	G
-H
,I

/J	
.K
)L
(M
+N

*O
5P	
4Q
7R
6S

1T

0U
3V
2W
=X

<Y	

?Z

>[	
9\
8]
	
;^

:_

Åî ãòùðô
Äï¡âóøñõ
Çì¢áðûòö
Æí£àñúó÷
Áê?çöýôð
Àë¥æ÷üõñ
Ãè?åôÿöò
Âé§äõþ÷ó
Íæ?ëúñøü
Ìç©êûðùý
Ïäªéøóúþ
Îå«èùòûÿ
Éâ¬ïþõüø
Èã­îÿôýù
Ëà®íü÷þú
Êá¯ìýöÿû
Õþ°óâéàä
Ôÿ±òãèáå
×ü²ñàëâæ
Öý³ðáêãç
Ñú?÷æíäà
Ðûµöçìåá
Óø¶õäïæâ
Òù·ôåîçã
Ýö?ûêáèì
Ü÷¹úëàéí
ßôºùèãêî
Þõ»øéâëï
Ùò?ÿîåìè
Øó?þïäíé
Ûð?ýìçîê
Úñ¿üíæïë
å΀ÃÒÙÐÔ
äρÂÓØÑÕ
ç̂ÁÐÛÒÖ
æÍƒÀÑÚÓ×
áʄÇÖÝÔÐ
à˅Æ×ÜÕÑ
ãȆÅÔßÖÒ
âɇÄÕÞ×Ó
íÆˆËÚÑØÜ
ìljÊÛÐÙÝ
ïĊɨÓÚÞ
îŋÈÙÒÛß
éŒÏÞÕÜØ
èÍÎßÔÝÙ
ëÀŽÍÜ×ÞÚ
êÁÌÝÖßÛ
õސÓÂÉÀÄ
ôߑÒÃÈÁÅ
÷ܒÑÀËÂÆ
öݓÐÁÊÃÇ
ñÚ”×ÆÍÄÀ
ðەÖÇÌÅÁ
óؖÕÄÏÆÂ
òٗÔÅÎÇÃ
ý֘ÛÊÁÈÌ
üיÚËÀÉÍ
ÿԚÙÈÃÊÎ
þ՛ØÉÂËÏ
ùҜßÎÅÌÈ
øÓÞÏÄÍÉ
ûОÝÌÇÎÊ
úџÜÍÆÏË
…®à£²¹°?
„¯á¢³?±µ
‡¬â¡°»²¶
†­ã ±º³·
ªä§¶??°
€«å?·?µ±
ƒ?æ¥?¿¶²
‚©ç?µ?·³
?諺±??
Œ§éª»°¹?
?ê©?³º?
Ž¥ë?¹²»¿
‰¢ì¯?µ??
ˆ£í®¿??¹
‹ î­?·?º
Š¡ï¬?¶¿»
•?𳢩 ?
”¿ñ²£?¡¥
—?ò± «¢?
–?󰡪£§
‘ºô·?­? 
»õ¶§¬¥¡
“?öµ?¯?¢
’¹÷?¥®§£
¶ø»ª¡?¬
œ·ùº« ©­
Ÿ?ú¹?£ª®
žµû?©¢«¯
™²ü¿®¥¬?
˜³ý?¯?­©
›°þ?¬§®ª
š±ÿ?­?¯«
¥ŽÀƒ’™”
?Á‚“˜‘•
§ŒÂ›’–
?Ã€‘š“—
¡ŠÄ‡–”
 ‹Å†—œ•‘
£ˆÆ…”Ÿ–’
¢‰Ç„•ž—“
­†È‹š‘˜œ
¬‡ÉŠ›™
¯„ʉ˜“šž
®…ˈ™’›Ÿ
©‚̏ž•œ˜
?ƒÍŽŸ”™
«€Îœ—žš
ªÏŒ–Ÿ›
µžÐ“‚‰€„
?ŸÑ’ƒˆ…
·œÒ‘€‹‚†
¶ÓŠƒ‡
±šÔ—†„€
°›Õ–‡Œ…
³˜Ö•„†‚
²™×”…އƒ
?–Ø›ŠˆŒ
?—Ùš‹€‰
¿”Ú™ˆƒŠŽ
?•Û˜‰‚‹
¹’ÜŸŽ…Œˆ
?“Ýž„‰
»ÞŒ‡ŽŠ
º‘ßœ†‹
je suppose que Encrypt est là clé , SPH à toi de joué :mrgreen:
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Challenge crypto Le psychopathe

Message par G-Rom »

même pas de clé , ton texte est toujours en clair !
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Challenge crypto Le psychopathe

Message par SPH »

Le psychopathe a écrit :SPH regardes mon algo avant d'avancer des choses fausses.
En général, je vérifie toujours avant de poster.
Ton code :

Code : Tout sélectionner

; /////////////////////////Cryptage Xor///////////////////////
; ////////////////////////Le psychopathe//////////////////////
; ///////////////////////////07/07/2010///////////////////////

Global txt$="abcdefghijklm"
Global cle$="0123"

Procedure cryptage_Xor(valeur_chaine, valeur_clef) ; converti valeur en binaire pour xor
For i=1 To 8
resultat = Val(Mid(RSet(Bin(valeur_chaine,#PB_Ascii), 8, "0"),i,1)) XOr Val(Mid(RSet(Bin(valeur_clef,#PB_Ascii), 8, "0"),i,1))
sortie$ = sortie$ + Str(resultat)
;Debug sortie$
Next
ProcedureReturn Val(sortie$)
EndProcedure

Procedure bin_to_ascii(binaire)
ProcedureReturn Val("%"+ RSet(Str(binaire),8,"0")) 
EndProcedure

Procedure sendcrypt(chaine$, cle$)

pointeur=1
a$="Data.b "

For i=1 To Len(txt$)
  b.b = bin_to_ascii(cryptage_xor(Asc(Mid(txt$,i,1)),Asc(Mid(cle$,pointeur,1))))
  ;Debug b
  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$
EndProcedure

sendcrypt(txt$,cle$)
Data.b 81,83,81,87,85,87,85,91,89,91,89,95,93,
se résume a ca :

Code : Tout sélectionner

Global txt$="abcdefghijklm"
Global cle$="0123"

pointeur=1
a$="Data.b "

For i=1 To Len(txt$)
  b2.b=Asc(Mid(txt$,i,1))
  b3.b=Asc(Mid(cle$,pointeur,1))
  b.b=b2!b3
  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 81,83,81,87,85,87,85,91,89,91,89,95,93,
Puisque toutes tes lettres sont en clair, cela veux dire que :
01101111
.....xor.....
=
01101111
DONC, le xor est fait avec 00000000; et ce, pour chaque lettres.
Ta clé se résume donc a un seul caractere : chr(0)

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Challenge crypto Le psychopathe

Message par G-Rom »

je confirme , le texte est en clair ! :mrgreen:
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Re: Challenge crypto Le psychopathe

Message par SPH »

G-Rom a écrit :je confirme , le texte est en clair ! :mrgreen:
Drole de challenge alors :!: :?: :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Challenge crypto Le psychopathe

Message par Backup »

ça n'empeche que sa clef devait etre
eNCRYPT
+1 G-Rom :lol:

j'ajoute que meme si la clef etait incomprehensible
il suffisait de lancer le decryptage avec chacunes des
clefs trouvées , pour avoir a un moment un résultat comprehensible :D

dans notre cas cela aurai ete avec : "eNCRYPT"
Répondre