Crypto et Terato

Mercredi 12 juillet 2006

La publication du livre de Dan Brown, le "Da Vinci Code" et son adaptation au ciné ont remis à la mode les jeux Mathématiques et Crypto.

On y rencontre souvent des suites mathématiques (celle de Fibonacci dans le Da Vinci).

Il y a eu de nombreux articles (plus ou moins bienveillants) traitant des différents "codes secrets" auxquels ont été confrontés les personnages du roman.

Voir à ce sujet:

http://fr.wikipedia.org/wiki/Da_Vinci_Code

et

http://www.bibleetnombres.online.fr/da_vinci_code.htm

La suite de Fibonacci n'a peut-étre jamais été aussi célébre...

Un terme de cette suite est la somme des deux précédents:

U(n)=U(n-1)+U(n-2) avec U0=U1=1

Ce qui se traduit par le bout de C suivant:

unsigned long fib(x)

long x;

{

if (x > 2)

return(fib(x-1)+fib(x-2));

else

return(1);

}

On peut généraliser l'expression de U(n) par:

U(n)=P*U(n-1)+Q*U(n-2)

Et faire varier les valeurs de U0 et U1

Par exemple pour P=1, Q=1, U0=2 et U1=1 on obtient la suite de Lucas.

Un cryptosystème basé sur la suite de Lucas à d'ailleurs été conçu, Il s'agit de LUC:

ftp://ftp.funet.fi/pub/crypt/cryptography/asymmetric/luc/  

Le comportement de ce type de suite est sympa à étudier sur calculatrice programmable.

Il y a de nombreuses autres suites avec lesquelles on peut jouer, comme celle des nombres Triangulaires:

U(n)=n*(n+1)/2

 

Voir le site sur les "Integer Sequences":

http://www.research.att.com/~njas/sequences/Seis.html  

et:

http://trucsmaths.free.fr/  (Crypto en ligne en JavaScript)

http://www.recreomath.qc.ca/index.htm  (Jeux math et crypto)

Pour faire le plein d'idées.

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Mercredi 12 juillet 2006
Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Mardi 31 octobre 2006

Contre toi, verbo san Diboliâ herbonos
Grimoire Le Dragon Noir


Fish Virus #9
A Whale is no Fish!
Mind her Mutant Fish
and the hidden Fish Eggs
for they are damaging.
The sixth Fish mutates
only if the Whale is in
her Cave.
Message, Virus Whale


De nuict par Nantes Lyris apparoistra,
Des arts marins susciteront la pluye:
Vrabiq goulfre, grande classe parfondra,
Vn monstre en Saxe naistra d'ours & truye.
Nostradamus, Centurie 6 Quatrain 44


Halloechen Virus [Hal]:
        0x8c 0xd0 0x8b 0xd4 0xbc 0x02 0x00 0x36
        0x8b 0x0e
4096 Virus [4096]:
        0xf6 0x2e 0x8f 0x06 0x41 0x12 0x2e 0x8f
        0x06 0x43

Signatures Virales

 

Un peu devant monarque trucidé,
Castor Pollux en nef, astre crinite:
L'airain public par terre & mer vidé,
Pise, Ast, Ferrare, Turin terre interdite.

Nostradamus, Centurie 2 Quatrain 15


popf
jmp dword ptr cs:[old_int_21h]
Wonder db 'It',39,'s a wonder if the Earth will survive 1000 years with Human...'
Ontario:
inc ah
popf
iret

 

Extrait du Virus 1000 Years


Adibaga, Sabaoth, Adonay,
contra ratout prisons pererunt
fini unixio paracle gossum.

Grimoire Le Dragon Noir

 

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Vendredi 9 février 2007

Pour chercher un ordre caché dans un flot de données qui semblent aléatoires, rien de tel qu'une petite balade dans l'espace des phases:

On visualise (en 3D, merci Blitz) des triplets (x,y,z) de valeurs successives.

Ex, si IntegerArray% contient les valeurs du fichier données:

xx=IntegerArray%(a2*k-b2)-IntegerArray%(a3*k-b3)
yy=IntegerArray%(a1*k-b1)-IntegerArray%(a2*k-b2)
zz=IntegerArray%(a0*k-b0)-IntegerArray%(a1*k-b1)

(ou a1=a2=a3=1 et b1=1,b2=2,b3=3)

Autre variante, ou pseudox et pseudoy parcourent un plan 800x600 quand on balaye les valeurs:

pseudocos=pseudox/Sqr(pseudox^2+pseudoy^2)
pseudosin=pseudoy/Sqr(pseudox^2+pseudoy^2)

xx=IntegerArray%(a2*k-b2)-IntegerArray%(a3*k-b3)
yy=Int(pseudocos*(IntegerArray%(a1*k-b1)-IntegerArray%(a2*k-b2)))
zz=Int(pseudosin*(IntegerArray%(a0*k-b0)-IntegerArray%(a1*k-b1)))

Apres, ce n'est que de la manipulation d'objets 3d en Blitz.

 Exemple de "nebulisation" d'un code source:

 

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Samedi 10 février 2007

Toujours dans le domaine de la visualisation 3D de données, on peut rechercher des patterns caractéristiques.

On attribue une couleur a chaque pattern et on place un cube en (x,y,z) ,ce triplet étant fonction de la position de l'octet dans le fichier.

Un code de visu simplissime:

If (IntegerArray%(k)=Pattern8%) Then
red%=0
green%=128
blue%=255
;Place un Cube-Copie
NewSpcell=CopyEntity(Spcell,trinity)
PositionEntity NewSpcell,xx,yy,zz
EntityColor NewSpcell,red%,green%,blue%
End If

Si on charge un fichier de pattern représentant des OpCodes caractéristiques (manipulation de l'accumulateur,sauts, subs) de microprocesseur (ici du 6502) on peut obtenir des résultats interessants.

Visualisation d'une image disque contenant du binaire Oric:

Prochaine étape: Exploration de code viral, d'ou le nom "Pluto Kiss".

Par Franck Balmer
Ecrire un commentaire - Voir les 0 commentaires - Recommander
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus