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.
Commentaires