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...
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 :)
Un article un peu facile désolée, mais moi ca me fait bien rire à chaque fois, et j'ai un peu manqué de temps pour préparer !
De manière générale le cinéma traite la science de façon completement surréaliste... Voyons donc la vision déformée qu'il a et qu'il donne de l'informatique :
Les traitements de texte n'ont jamais de curseur.
On peut taper des phrases interminables sans jamais se servir de la barre d'espacement.
Les moniteurs n'affichent que des caractères de 5 cm de hauteur.
Les PCs mettent trois secondes maximum à démarrer.
Les ordinateurs de haute technologie (ceux de la NASA, de la CIA ou de tout autre organisme d'État) ont des interfaces simplissimes.
Quand ce n'est pas le cas, ils sont pourvus de scripts ultrasophistiqués qui leur permettent d'exécuter à la seconde n'importe quelle commande saisie en anglais courant.
Les virus sont souvent des têtes de monstre, genre pacman poilu, et on voit les informations disparaître au fur et à mesure.
Tous les ordinateurs sont en réseau, quels qu'ils soient.
Si vous voulez accéder au disque dur du méchant, aucun problème, même si ce dernier est éteint.
Un hacker peut accéder au disque dur de l'ordinateur le plus top secret du monde le temps d'une interclasse. Il n'a généralement pas besoin de plus de deux essais pour trouver le mot de passe.
Les ordinateurs très puissants bipent dès que vous appuyez sur une touche du clavier ou à chaque changement d'écran. Il y en a même qui ralentissent l'affichage afin de vous laisser le temps de lire. Mais les plus perfectionnés vont jusqu'à émuler le bruit d'une imprimante matricielle à mesure que les caractères s'affichent sur l'écran.
Si le moniteur (= écran) est touché, tout est fichu. Le moniteur est le cœur de l'ordinateur. L'unité central est juste un support pour le lecteur de disquettes.
Il suffit de trois secondes pour effectuer des calculs complexes et charger d'énormes quantités de données. Dans les films, la vitesse de transmission des modems est de deux gigas par seconde et la capacité de calcul celle d'un Cray 5.
Si vous avez un fichier affiché à l'écran et que quelqu'un sur le réseau l'efface, le fichier disparaît de votre écran.
Il n'existe aucun moyen de sauvegarde automatique et encore moins d'utilitaire de récupération de fichiers.
Si des fichiers cryptés se trouvent sur un disque dur, l'ordinateur vous demandera automatiquement un mot de passe dès le démarrage.
Plus l'ordinateur est perfectionné, plus il s'y trouve de boutons. Cependant, la formation à l'usage de cet ordinateur doit être encore plus perfectionnée, parce qu'il n'y a aucune indication sur ces boutons.
La plupart des ordinateurs, quelle qu'en soit la taille, ont des capacités graphiques faramineuses : animations, photoréalisme, temps réel et tridimensionnalité. Tout ça en même temps. Assez curieusement, tous les ordinateurs portables disposent également de ces capacités vidéo et audio en temps réel.
Chaque fois qu'un personnage contemple un écran, l'image est si lumineuse qu'elle se réfléchit sur son visage.
Pour écrire à une personne dont on connaît juste un vague surnom (par exemple "Bob"), il suffit de donner "Bob" comme adresse.Non seulement le message trouve tout seul le serveur de destination, mais la réponse arrive dans la minute.
Les ordinateurs du cinéma ne plantent jamais en cas d'activité intense et cruciale. Le stress ne fait jamais commettre d'erreur aux personnages qui s'en servent.
Les programmes de décodage automatique font apparaître caractère par caractère un texte codé, en quelques secondes.
Les programmes sont d'une perfection insultante et n'ont jamais de bugs qui ralentissent le travail.
Toutes les photos sont assez nettes pour qu'on puisse en extraire avec précision les détails les plus infimes. La fonction de zoom avant est littéralement infinie. Exemple : "C'est quoi, ce machin flou dans le coin ? - Je sais pas, on va regarder. - Ah! C'est l'arme du crime ! - Maintenant voyons un peu sous le lit, on y trouvera les chaussures du meurtrier. Ah non, ce sont des Marvel Comics de 1954 (très bonne cuvée). Bon, on va regarder sur les étagères des placards..."
Au cinéma, dans chaque film il n'y a toujours qu'une seule marque d'ordinateur... Jamais de concurrence !
Si jamais un ordinateur tombe en panne ou devient fou dans un film, alors soit c'est un très vieux modèle d'une marque disparue, soit c'est un modèle récent d'une marque contrôlée par le(s) méchant(s), soit on en ignore la marque... Jamais de dénigrement !
Et quand l'interface graphique est reconnaissable, ce sont tous des Macs.
Le système informatique d'un astronef gros comme la lune peut être contaminé par un petit virus informatique d'une civilisation en retard de plusieurs milliers d'années.
La biométrie est l'ensemble des techniques permettant d'identifier une personne sur ses caractères physiques ou comportementaux.
Il existe 2 catégories de technologies biométriques :
- Les techniques d'analyse du comportement : comme par exemple la dynamique de la signature (la vitesse de déplacement du stylo, les accélérations, la pression exercée, l'inclinaison) ou bien la façon d'utiliser un clavier d'ordinateur (la pression exercée, la vitesse de frappe, ...).
- Les techniques d'analyse de la morphologie humaine (empreintes digitales, forme de la main, traits du visage, dessin du réseau veineux de l'?il, voix).
Cette deuxième catégorie est beaucoup plus efficace car elle a l'avantage d'être stable dans la vie d'un individu et ne subit pas autant les effets du stress, par exemple, que l'on retrouve dans l'identification comportementale. (j'ai l'impression de ne jamais faire deux fois la même signature, moi, par exemple !)
Il faut faire la différence entre reconnaitre et vérifier l'identité d'une personne, pourquoi ?
Prenons un exemple proche de nous:
si je vous montre la photo d'un inconnu et que je vous donne un album contenant des milliers de photos de milliers d'inconnus. Et que je vous demande de retrouver dans l'album la photo qui correspond à la même personne (c'est à dire que je vous demande de reconnaître la personne), cela va être beaucoup plus long et beaucoup plus compliqué que si je vous donne deux photos et que je vous demande si c'est la même personne (vérification).
Et bien en biométrie c'est exactement pareil.
Prenons l'exemple le plus classique (merci les séries policières) : les empreintes digitales.
Si je prévois de devoir faire une vérification, je vais enregistrer l'empreinte et garder en mémoire quelques points caractéristiques. Au moment de la vérification je ne regarderais que ces quelques points.
Par contre si je veux faire une reconnaissance, il va falloir enregister l'empreinte, vérifier une par une TOUTES les empreintes de mon fichier selon quelques points, en sélectionner quelques unes et parmi toutes celles qui s'en rapprochent le plus, faire encore quelques comparaisons supplémentaires pour aboutir à une et une seule qui serait la plus ressemblante. Vous imaginez le temps de calcul supplémentaire ? Or le temps c'est de l'argent :)
Pour la petite histoire, savez vous que pour l'iris la couleur n'a aucune importance ? les images utilisées sont en noir et blanc ! D'ailleurs aucune inquiétude, personne n'ira vous arracher l'oeil comme dans certains films : les logiciels de reconnaissance vérifie que la pupille se rétracte lorsqu'on approche une lumière (la raison n'est pas si morbide, c'est pour être sur qu'on n'approche pas une photo)...
Le film "bienvenue à Gattaca" (je vous le conseille, il fait froid dans le dos), n'est pas prêt de se réaliser, l'identification ADN prend, pour le moment, un temps fou et ne peut pas être utilisée pour les applications habituelles de la biométrie !
D'ailleurs, quelles sont les applications ? A court terme, remplacer tous les codes qui envahissent notre vie (de cartes bleues, de digicodes, d'accés à son ordinateur, d'acces à certains sites, ...). Mais également permettre une vérification d'identité tres rapide etc... La sécurité est l'une des préoccupations principales de notre temps, la biométrie est l'une des conséquence de cette préocupation.
L'utilisation de la biométrie implique un accord de la CNIL (Commission Nationale de l'Informatique et des Libertés). En effet il s'agit de stocker des informations sur les individus, et donc cela rentre dans le cadre de la loi informatique et liberté du 6 janvier 1978. Ainsi n'importe quelle entreprise ne peut pas choisir la biométrie pour laisser entrer ses employés. Comme toute innovation technologique, il y a des partisans et des détracteurs. Certaines personnes l'ont bien montré lorsqu'une école a voulu utiliser la forme de la main pour autoriser au non l'entrée à la cantine.
La logique a pour but de vérifier la validité des raisonnements.
Elle est née il y a fort longtemps, du temps de l'antiquité grecque, à ce moment on l'utilisait pour donner une cohérence à son discours.
Les sophistes l'utilisaient même contre elle même, je pense que vous connaissez tous ce pseudo raisonnement logique :
Tout ce qui est rare est cher.
Un cheval à trois pates est rare.
Donc un cheval à trois pates est cher.
Maintenant la logique est devenue indispensable en informatique et en automatique.
Qui dit informatique, dit 1 et 0... (j'ai l'impression de me repeter là :) )
En logique : 1 = vrai, et 0 = faux, il n'existe pas d'autres possibilités ! (en fait si, c'est la logique floue, mais bon... c'est un peu compliqué, ca sert en intelligence artificielle, ce sera peut être pour une autre fois !)
On utilise des opérateurs : et (noté souvent .), ou (+), ou exclusif (xor) (celui la c'est celui du restaurant : fromage ou dessert mais pas les deux !), non (¬), implique (=>) et equivaux (<=>)
voici les relations entre les opérateurs :
vrai et vrai = vrai
vrai et faux = faux
faux et faux = faux
vrai ou vrai = vrai
vrai ou faux = vrai
faux ou faux = faux
vrai xor vrai = faux
vrai xor faux = vrai
faux xor faux = faux
non vrai = faux
non faux = vrai
faux => faux = vrai
faux => vrai = vrai
vrai => faux = faux
vrai => vrai = vrai (on appelle ca une tautaulogie :) )
faux <=> faux = vrai
faux <=> vrai = faux
vrai <=> faux = faux
vrai <=> vrai = vrai
Toutes ces relations vont permettre de faire comprendre ce qu'on souhaite aux machines : par exemple on va lui donner un certain nombre de conditions, et si elles satisfont une relation (exemples : elles sont toutes vraies, ou bien une au moins est vraies) alors la machine executera telle ou telle tache !
(si on est le dernier dimanche du mois de mars et qu'on est en france et qu'il est 2h du matin... alors change l'heure !)
Ceci étant, faisons un peu de logique...
Au pays de Maltevent, les condamnés à mort avaient le choix de leur fin : la pendaison ou le bûcher. Le roi devait ce jour là assister à la condamnation d'un bandit renommé : Robin des Champs (un lointain cousin à Robin des Bois). Le roi s'adressa à Robin en ces termes : "Prononcez une phrase. Si celle-ci est exacte, vous serez pendu. Si elle est fausse, vous serez brûlé vif". Robin, malin, dit "je serais brulé", pourquoi ?
Posons
A = Robin est pendu
B = Robin est brulé
C = Robin dit vrai
On a donc d'apres la règle du roi :
C = A (Si Robin dit vrai alors il est pendu et inversement)
nonC = B (si Robin dit faux, alors il est brulé et inversement)
nonA = B
D'apres ce que dit Robin
C = B (si Robin dit vrai alors il est brulé)
C = nonA (Si Robin dit faux alors il est pendu)
ainsi on a C=A et C=B et A=nonB
pour qu'une suite de ET soit vrai, il faut que chacun des elements soit vrai. On a donc B=NonB ce qui est impossible !
Le roi est obligé de libérer Robin :)
Dans le même genre, mais c'est à vous de jouer :
Vous êtes dans une salle circulaire, sombre, où 2 vieux sorciers identique vous attendent. Il n'y a que 2 issues. L'une d'elles mène au monde des vivants, l'autre à celui des ténèbres. L'un des sorciers, Vérace, dit toujours la vérité. L'autre, Hypocrace, ment toujours. Vous ne savez pas lequel garde quelle porte et de toute manière vous ne savez pas lequel est qui. Très irritables et peu loquaces, ils n'aiment guère les questions et ne répondent que par "oui" ou par "non", et si l'un a déjà répondu à une question, l'autre ne daignera pas vous répondre. Quelle question posez vous à qui et pourquoi ?
