E = MCblog

 

Agenda

Juillet 2008
L M M J V S D
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
<< < > >>

Allez y aussi

Si vous aimez la science, voici quelques sites que je vous conseille.
Les articles y sont beaucoup plus poussés que les miens, et je pense que cela peut constituer un bon complément !

Recommander

Cliquez ici pour recommander ce blog
 

Vous trouverez ici un blog de vulgarisation scientifique. Il n'a aucunement la prétention d'être une référence de connaissances pointues. Je ne garantis donc pas l'exactitude de ce qui est présenté. Il y aura forcément quelques approximations, et beaucoup de simplifications... Mais si vous détectez des erreurs, n'hésitez pas à m'en faire part !

Bonne Lecture... :)

Kiasev

Jeudi 15 juin 2006

Aujourd'hui, suite (et fin, en tout cas pour le moment) de l'historique de la cryptographie, nous allons maintenant voir ce qu'on fait gâce à l'informatique et aux techniques modernes.
Mais avant tout, il nous faut faire un peu de vocabulaire, car il est souvent mal connu et mal employé !

La cryptologie est la science des secrets
La cryptographie est une discipline de cette science (tout comme la géométrie est une discipline des mathématiques), qui consiste à coder des messages.
La cryptanalasye est une autre discipline, qui consiste à décoder et analyser les messages codés.
Lorsqu'on code un message on le chiffre (et on ne le crypte pas, c'est un anglissisme qui ne veut rien dire en français)
Quand on le décode on le déchiffre !

La cryptologie permet non seulement de chiffrer et déchiffrer des messages, mais également de faire de :
- l'authentification, c'est-à-dire vérifier qu'une personne est bien celle qu'elle dit être
- la vérification d'intégrité : c'est-à-dire de s'assurer qu'un message n'a pas été intercepté et modifié par un tiers entre le moment où il est envoyé et le moment où il est reçu.
- la preuve qu'on détient un secret sans divulguer le secret
- l'anonymat
Il existe deux grandes écoles pour chiffrer un message : le chiffrement asymétrique et l'asymétrique.

Le chiffrement asymétrique consiste à utiliser deux clés : une privée et une publique. La clé privée doit rester secrète et ne pas être divulguée, alors que la clé publique peut/doit être divulguée à tout le monde.
La clé privée permet de déchiffrer ce qui a été chiffré avec la clé publique correspondante.
La clé publique permet de vérifier si la signature vient bien de la clé privée concordante.

Imaginons deux personnes Alice et Bob (En informatique on utilise toujours, par tradition, ces deux personnages, car leurs initiales sont A et B !) qui veulent échanger des informations, ils possèdent chacun une clé privée et la clé publique correspondante,

1/ Ils se transmettent chacun leur clé publique (pas besoin de sécurité particulière pour la transmission).
2/ Alice veut prouver qu'elle est bien l'expéditeur du message, elle utilise sa clé privée et signe, Bob sait que cela devrait être Alice, il utilise la clé publique de Alice pour vérifier si la signature est bien la sienne.
3/ Alice veut envoyer un message crypté, que seul Bob pourra lire, elle utilise la clé publique de Bob, et Bob pourra alors (en utilisant sa clé privée) le déchiffrer.

Le chiffrement symétrique (ou à clé privé), consiste à ce que les deux protagonistes possèdent tous les deux la même clé, qui reste secrète, et qui permet à la fois de chiffrer et déchiffrer le message. Ce chiffrement est celui utilisé par les exemples donnés dans le précédent article. Le grand inconvénient reste la façon d'echanger la clé. En effet c'est la qu'est le risque que quelqu'un puisse l'intercepter, il possédera alors toutes les données pour déchiffrer le message !

Grâce à l'informatique, le chiffrement et le dechiffrement se calculent tres rapidement, la transmission est numérique (et non sur papier), les techniques évoluent au fur et à mesure des avancées, c'est un monde en perpétuel changement...
Bon, je crois que c'est assez compliqué comme ca, donc on va s'arrêter là pour aujourd'hui...

Mercredi 14 juin 2006

Pour faire suite au précédent article sur la cryptographie, deux petits textes (Laflote, tu ne les feras pas lire à tes loutres), contenant un message caché... saurez vous les découvrir ?

Lettre de George Sand à Alfred de Musset :

Je suis très émue de vous dire que j'ai
bien compris l'autre soir que vous aviez
toujours une envie folle de me faire
danser. Je garde le souvenir de votre
baiser et je voudrais bien que ce soit
là une preuve que je puisse être aimée
par vous. Je suis prête à vous montrer mon
affection toute désintéressée et sans cal-
cul, et si vous voulez me voir aussi
vous dévoiler sans artifice mon âme
toute nue, venez me faire une visite.
Nous causerons en amis, franchement
Je vous prouverai que je suis la femme
sincère, capable de vous offrir l'affection
la plus profonde comme la plus étroite
en amitié, en un mot la meilleure preuve
que vous puissiez rêver, puisque votre
âme est libre. Pensez que la solitude où j'ha-
bite est bien longue, bien dure et souvent
difficile. Ainsi en y songeant j'ai l'âme
grosse. Accourez donc vite et venez me la
faire oublier par l'amour où je veux me
mettre.


Musset s'empressa de répondre :

Quand je mets à vos pieds un éternel hommage,
Voulez-vous qu’un instant je change de visage ?
Vous avez capturé le sentiments d’un coeur
Que pour vous adorer forma le Créateur.
Je vous chéris, amour, et ma plume en délire
Couche sur le papier ce que je n’ose dire.
Avec soin de mes vers lisez les premiers mots
Vous saurez quel remède apporter à mes maux. 

Alors avez vous trouver la clé ? (pas la même pour chacun des textes)

Pour information : on appelle Stéganogaphie l'art de cacher un message dans un autre (texte, dessin...
l'informatique a permis la multiplication de ces messages cachés...)

Mardi 13 juin 2006

De tout temps on a voulu transmettre des messages secrets en esperant qu'ils ne soient pas interceptés ou tout du moins qu'ils ne soient pas compris par une personne que celle à qui il etait destiné !
Il y a eu beaucoup de techniques parfaites... jusqu'à ce qu'elles soient découvertes ! :)

Chez les Grecs :
l'emetteur et le destinataire du message possédait chacun un baton identique.
 Un morceau de parchemin était enroulé dessus et le message écrit en clair. Le parchemin était ensuite envoyé à son destinataire à plat et seule la personne possédant le baton identique pouvait le dechiffrer. L'important etait surtout que personne ne connaisse la façon dont il avait été codé (avec un baton), sinon il etait simple de trouver un baton de taille a peu pres semblable et de tout décoder ! (la baton est la clef du code)

Les Hébreux ont utilisé une technique bien connue des écoliers : ils inversaient les lettres : A devient Z, B devient Y, ...

Nabuchodonosor, roi de babylone, rasait un esclave, inscrivait le message sur son crane, attendait un peu que les cheveux repoussent et envoyait l'esclave porter son message !

Pour améliorer un peu la méthode des hébreux, on peut décaler chaque lettre de l'alphabet par un nombre n (c'est le code de César, qui a été utilisé également par les russes en 1915).
Le n a simplement besoin d'être connu par l'emetteur et le recepteur. Tres simpliste quand même puisqu'il n'y a que 26 codes possibles !

Autre méthode, le carré de Polybe :
On prend un carré de 25 cases (ou plus si on veut plus de lettres... mais avec 25 en mettant V et W dans la meme case on peut s'en sortir)
chaque lettre correspond à une abscisse et une ordonnée donc deux chiffres.

Ainsi a = 11, n=34, ...
On peut meme imaginer que chacun des intelocuteurs possède la même version du carré avec les lettres disposées au hasard (et non comme ici dans l'ordre), il n'y a plus de logique entre chaque lettre, ce qui rend le décodage plus difficile.
On peut casser la clef relativement facilement : on connait la fréquence d'apparition des lettres dans un texte (le e est tres courant, il suffit de trouver le nombre qui revient le plus souvent, deux lettres identiques qui se suivent peuvent être t, m l ou p, ...) et petit à petit on décode des mots et on finit par obtenir le message.

Le chiffrement de Vigenère : il suffit d'un mot de code, d'un papier et d'un crayon.
on fait un tableau de 26x26 cases, contenant toutes les lettres de l'alphabet à la verticales et à l'horizontale, décalées à chaque fois :

on va choisir comme code, l'intersection entre la lettre à codée et la 1ere lettre de notre mot de passe, puis la deuxième, et on repart de zero ensuite :

Exemple : mot de passe : mcblog
phrase à coder : vive les vacances !

on cherche l'intersection de :
m et v : h
c et i : k
b et v : w
l et e : p
o et l : z
g et e : k
m et s : e
c et v : x
b et a : b
l et c : n
o et a : o
g et n : t
m et c : o
c et e : g
b et s : t
et notre message est hkwp zke xbnotogt !
pour le decoder il suffit de faire l'inverse... (on prend la première lettre du mot de passe, on descend la colonne jusqu'à obtenir la lettre qu'on a recu, et on regarde a quelle ligne elle correspond) ingénieux n'est ce pas ?
Celui la fut beaucoup plus compliqué à casser ! Car une symbole à un moment ne signifie pas la meme chose à un autre...

Pendant la guerre, les allemands utilisèrent une sorte de machine à écrire : Enigma !
On tappait le texte en clair, il ressortait en code. Le destinataire tappait le texte en code il en sortait le texte en clair.
C'est aussi une méthode de substitution (une lettre à la place d'une autre, mais là ce n'etait pas toujours la même qui remplaçait une lettre.)
Les touches sont reliées à des circuits électriques et des rotors.
Je tappe sur A, un rotor dirige mon circuit vers G par exemple, puis il tourne.
je tappe C, le rotor va diriger vers F par exemple (comme il a tourné, il ne decalle pas du meme nombre que précédemment) et de nouveau il tourne en attendant la suite.
Et ainsi de suite.
Pour décoder, on utilise le meme rotor au même endroit au départ et le courant passe en sens inverse et le tour est joué.

Dans un prochain article on parlera de la cryptographie moderne, en attendant : rejawd wrv jgrpi awmvpiv ! (indice pour décoder : cerise...)

Lundi 12 juin 2006

En informatique, tout est programmation, il faut expliquer à l'ordinateur comment il doit procéder pour chacune de ses taches. Il ne connait que les ordres précis : "choisir un nombre entre 1 et 4" n'est pas comprehensible pour lui, il ne saura pas choisir, il lui faut une règle. (et oui c'est tres bête un ordinateur !)
Ainsi, même quand on veut générer une suite de nombre aléatoires... on est obligé de faire un programme et d'expliquer comment prendre au hasard... et je vous laisse imaginer combien c'est difficile !
Ce qui fait que rien n'est vraiment du hasard, on parle de générateur de nombres pseudo-aléatoires.

A quoi cela sert-il ?
En particulier pour tout ce qui est codage de données (cryptographie), donc c'est tres sensible et doit être le plus sécurisé possible.

Alors comment faire ?
Un petit programme de base, se contentera de prendre l'heure et la date à laquelle on lui a demandé un nombre aléatoire, multiplier la dizaine des secondes par le jour, diviser par la vitesse du processeur et ajouter la place qu'il reste sur le disque C... et hop on obtient un nombre aléatoire... mais qu'on aurait pu trouver relativement facilement donc qui n'a rien d'hasardeux ! (Et c'est tres mauvais de pouvoir deviner facilement comment on a obtenu le nombre, le code serait facile à décoder et tout le monde aurait accès aux secrets de la CIA !)

Des programmes plus perfectionnés vont utiliser les suites de Fibonacci (plutôt que de simples additions et multiplications), ou bien d'autres propriétés mathématiques, qu'ils vont combiner avec des propriétés plus aléatoires et surtout non prévisibles de la machine sur laquelle le programme tourne (temps entre deux acces au disque, taille de la mémoire vive, mouvement du pointeur de la souris, ...).
Le résultat est encore traité par une autre méthode (table de hachage, c'est un peu compliqué, si il y en a que ca interresse dites moi et je vous l'explique dans un autre article : le principe c'est que c'est pas parce qu'on a le résultat final et le nombre qu'on a donné au départ pour l'obtenir qu'on peut deviner ce qui s'est passé entre les deux !)

Et si on veut un nombre plus petit que 12 par exemple ?
pas de probleme, on peut (par exemple) utiliser le modulo, qezaco ?
Un petit outil mathématique tres simple celui ci !

0 modulo 12 =0
1 modulo 12 =1
2 modulo 12 =2
...
11 modulo 12 = 11
12 modulo 12  = 0
13 modulo 12 = 1
14 modulo 12 = 2
...
23 modulo 12 = 11
24 modulo 12 = 0
...

Ainsi tous les nombres modulo 12 sont entre 0 et 12 (exclus).

pour trouver à quoi correspond la modulo, il suffit de faire la division entière, le reste de la division est le modulo :

par exemple : 2458 modulo 12 = 10

2458 = 12 * 204  +10
Donc on peut avoir facilement des nombres dans l'intervalle que l'on souhaite !

si on veut un nombre plus petit que 50, on lancera notre générateur, puis on appliquera au resultat le modulo 50
Si on veut un nombre entre  50 et 90 : on a un intervalle de 40 entre les deux... donc on choisit un nombre plus petit que 40 et on ajoute 50...(le minimum du modulo me donne 0 et le maximum 39, si j'ajoute 50 : j'obtiens minimum 50 et maximum 89)
exemple :
mon pseudo generateur me donne 5825
je lui applique le modulo 40 : cela donne 25 (5825 = 40 * 145 +25)
j'ajoute 50 : j'obtiendrais 75 qui est bien compris entre 50 et 90...
pratique non ?

On verra le monde secret de la cryptographie, dans un prochain article :)

Vendredi 9 juin 2006





"Donnez moi un point fixe et un levier et je souleverais le monde" qu'à voulu dire exactement Archimède ? etait-il devenu fou ?


Petite expérience pratique pour commencer :
ouvrez une porte
maintenant essayez de la pousser pour la refermer avec l'auriculaire.
où avez vous posé votre doigt ? du coté des gonds ou bien à l'opposé ?
et oui c'est beaucoup plus facile de pousser le plus loin possible des gonds, c'est-à-dire du pivot.

On appelle moment d'une force sa capacité à faire tourner un système autour d'un point donné, appelé pivot.

Autre exemple :

prenez une tartine ( ! )
posez la au bord d'une table
si vous posez un poids au milieu de la tartine, elle a peu de chances de tomber
si vous le posez tout au bord, elle va basculer autour du point d'appui qui est le bord de la table. Le moment est plus grand dans le deuxième cas.

Plus la distance entre le pivot et l'endroit ou la force est appliquée est grand, plus le moment sera grand (donc en termes de tous les jours : plus le bras de levier est long et plus on se met au bord pour appuyer, plus c'est facile de soulever un grand poids)

Il faudra deux fois moins de force pour soulever un objet situé au bout de la planche (car la distance avec le pivot est deux fois plus grande).

Il existe plusieurs types de leviers :
le pivot est entre la charge et l'effort (balance / pied de biche)
le pivot est à l'extremité de la barre, l'effort est à l'autre bout et la charge entre les deux (brouette : pivot = roue, effort = poignées, charge = contenu)

Donc si on trouve un levier suffisament long et solide, un point fixe bien fixe, on peut soulever ce qu'on veut avec la force du petit doigt !

 
Créer un blog sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur avec TF1 Network - Signaler un abus