CRYPTAGE AVEC UN ENDOMORPHISME INVOLUTIF

Signaler
Messages postés
2087
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
-
Mind4130
Messages postés
5
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
31 août 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/20824-cryptage-avec-un-endomorphisme-involutif

Mind4130
Messages postés
5
Date d'inscription
dimanche 22 mai 2005
Statut
Membre
Dernière intervention
31 août 2007

En lisant le "je pense que quelqu'un de bien entraînné avec un bon niveau en math pourrait le casser sans trop de mal." jme suis dit que comme j'y connait vraiment rien en maths, que mon niveau de scripting est loin d'exeller et que j'ai jamais utilisé de hash tables, ça risquait d'être un défi assez marrant et donc je regarde vite fait comment marche ce bordel avec $crypte_invo(test matrice involution) et je fais rapidement cet alias:
alias breakinvo {
var %z $len($1), %ù $numtok($1-,32), %k $1-, %u 1, %ù^ %z, %return
while (%ù) {
if ($len($gettok(%k,%ù,32)) !%z) { %k $instok(%k,$str($chr(149),$calc(%z - $ifmatch)),%ù,32) }
dec %ù
}
%k = $replace(%k,$+($chr(149),$chr(32)),$chr(149))
var %i 1, %ù $numtok(%k,32)
if ($hget(breakinvo).size) { hfree breakinvo }
hmake -m breakinvo 100
while (%z) {
while (%i <= %ù) { hadd -m breakinvo $+(bi,%z) $+($hget(breakinvo,$+(bi,%z)),$mid($gettok(%k,%i,32),%z,1)) | inc %i }
%ù = $numtok(%k,32)
%i = 1
dec %z
}
; hsave breakinvo $+(breakinvo,$r(1,999),.txt)
%i = 1
while (%i <%ù^) { %return $instok(%return,$hget(breakinvo,$+(bi,%i)),%i,32) | inc %i }
echo -a $remove(%return,$chr(149))
}

Et c'est avec une jubilation humide que je contemple le "tmi ean stv tro il cu et i o n" redevenir "test matrice involution", et c'est avec un soupir profond qu'au terme d'autre test je m'apperçoit qu'en fait ça marche que sur cette phrase. J'en conclus qu'il est impossible de casser le cryptage, du moins avec mon experience relativement limitée du mirc, pourquoi ?
L'alias rajoute des $chr(1) pour que tout les mots de la phrase aient le même nombre de caracteres et faire un tableau régulier puis les supprime une fois "l'involution" faite, c'est donc (a mon humble avis) impossible de prédire où les remettre pour refaire le tableau original puisque le rendu n'est pas logique (a moins de retourner les $chr(1) avec le reste), et mon alias de decryptage ne peut marcher seulement si le nombre de chr des mots va croissant ou décroissant, comme dans mon test. Néanmois je me suis quand même bien amusé sur ce code qui m'a finalement servi de tutorial pour hash table :p (même si je suis vachement frustré).

Parcontre je serais très contant si quelqu'un me cloue le bec et me prouve que c'est faisable :p
cs_Lucifer666
Messages postés
2
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
30 mai 2005

Eh eh comme on se retrouve MorTLStValent1
Moi aussi kerrigan j'ai compris ton code, et j'aprecis que quelqu'un s'attache a montere l'utilité des maths en informatique
Le truc qui aurrait etait bien c'est trouver une matrice nilpoltante en fonction d'une clée, comme sa le code serait moins cassable, mais bon c'est chaud de faire ca.

En tout cas tres bonne idée
MorTLStValent1
Messages postés
24
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
1 janvier 2005

Je n'ai pas encore les connaissances mathematiques pour t'aider en homeomorphisme, je ne connais pas les nuplets. En tout cas bonne continuation !!!
Kerrigan
Messages postés
708
Date d'inscription
lundi 15 juillet 2002
Statut
Membre
Dernière intervention
17 mars 2005

ben j'ai fait un addon pour que le mirc gere les matrices ... je trouvais que ça manquait alors je l'ai codé

www.ircfr.com/code.aspx?ID=20731

jette un coup d'oeil ça peut tjs te servir. c'est encore incomplet, il manque la trace , et la methode d'inversion des matrices est nulle. Je vais changer ça bientot

je vais aussi optimiser le code en passant tout en hashtable, tout en gardant un fichier ini deriere pour la sauvegarde. ya un projet d'interface aussi mais je ne vois pas encore comment faire...

le prochain cryptage que j'ai en projet utilisera un homeomorphisme :
celui qui permet de d'associer a un nuplet un module et des arguments grace au théorème du relèvement. ( disont que en 2d ça serait un passage en coordonnée polaire pour faire simple)

faut que je vois si ça marche et si en mirc le chemin est vraiment bijectif.. vue que ça arrondit les calculs je pourrais perdre de l'info en chemin.