Sujet : Internet : les sites sécurisés et le cryptage | | Posté le 27-04-2009 à 00:15:01
| Internet : les sites sécurisés et le cryptage. Le problème : comment communiquer en code avec quelqu'un que vous n'avez jamais vu ? Je poste ce sujet en sachant qu'il sera relu - tôt ou tard - par notre experte en sécurité informatique préférée. M'ame Shoop, si je dis des âneries... Il y a quelques mois je suis tombé sur quelques pages expliquant le principe du cryptage sur Internet. Il s'agit de la méthode utilisée par les sites sécurisés (SNCF, FNAC, votre banque...) pour assurer le secret des échanges financiers sur le Net. A quoi sert le cryptage sur Internet ? Toutes les transactions entre banques, tous les ordres d'achat et de vente en Bourse (à Wall Street comme à Paris) reposent sur la sécurité réputée absolue de ce cryptage. On voit bien le souci : la sécurité de l'économie mondiale, le contenu des dépôts bancaires, tout repose sur l'idée que les messages sécurisés échangés sont impossibles à décrypter. Ce système m'a toujours laissé perplexe. Quand on connaît un peu l'histoire de l'espionnage, il y a de quoi se faire du souci. Depuis des siècles la certitude tranquille d'avoir trouvé un code inviolable n'a d'égale que l'enthousiasme joyeux avec lequel les casseurs de code ennemis finissent par le fracasser, et lisent dans le texte les secrets que l'on croyait totalement protégés. Par exemple, Gilles Perrault raconte, dans Le Secret du Roi, la belle sérénité du service secret de Louis XV, dont l'Autriche cassait régulièrement les codes. (Les Autrichiens étaient à l'époque les meilleurs à ce jeu. Il faut dire qu'ils ouvraient avec un beau culot, et recopiaient, toutes les lettres envoyées aux ambassades françaises depuis Paris, de même que les réponses. Lettres cryptées, évidemment. Mais avec un peu de patience...) Comme tout le monde, je sais que lorsqu'un petit cadenas s'affiche, je suis sur un site sécurisé, qui me donne une clé de cryptage (un nombre) que mon Explorer ou mon Firefox va utiliser pour coder les messages que je vais envoyer à ce site, et pour décoder ceux qu'il va m'envoyer en retour. Sur Internet, il est assez facile d'intercepter des messages : Il faut savoir que les lignes Internet sur lesquelles transitent les messages ne sont pas sécurisées. De plus ces messages transitent sur des routeurs (un peu comme les centraux téléphoniques) où il est facile de les intercepter. Les services secrets ne s'en privent pas : c'est un peu comme poser des écoutes téléphoniques. (ça peut servir. Mettez-vous à leur place...) En somme, sur l'Internet comme à l'époque de Louis XV, il est facile d'ouvrir le courrier. Un individu ou une organisation malveillante pourrait le faire. Où est le problème ? Lorsque deux espions veulent communiquer par messages codés, ils se mettent d'accord à l'avance sur le code qu'ils vont utiliser. Ils prennent par exemple le même bouquin, ils s'entendent à l'avance sur la page qui va servir à coder leurs messages et sur la méthode qu'il vont utiliser. Ensuite chacun part avec son exemplaire du bouquin sous le bras. Si personne ne sait quel bouquin ils utilisent, et si leur méthode de chiffrage est bonne, ils sont tranquilles pour un moment. Rien de tel sur Internet : la banque vous envoie un message Internet - une page Web - cryptée. En tête du message, elle indique en clair la clé de cryptage qui permet de décoder le reste. Dans l'autre sens, vous faites pareil : vous envoyez votre réponse codée, en rappelant la clé de cryptage que vous avez utilisée. Connaissez-vous un espion assez idiot pour mettre dans la même enveloppe un message codé, sur une feuille, en ajoutant pour explication la grille de chiffrage qu'il a utilisée ? Même OSS117 ne ferait pas une stupidité pareille ! C'est pourtant ce qu'on fait quand on dialogue avec un site sécurisé. Il est évidemment exclu que la FNAC communique en secret et par avance une clé de cryptage à tous les gens qui veulent se connecter à son site. Et d'ailleurs, comment le ferait-elle ? Par courrier ? Par messager spécial, enveloppé dans un grand manteau et le visage masqué ? Non, le site de la FNAC met tranquillement sur Internet son message crypté et la clé qui permet de le décoder, comme le ferait un espion idiot ou mal réveillé. J'envoie à la FNAC mon numéro de carte bleue, mon ordinateur code le message et l'envoie à la FNAC en indiquant quelle clé de cryptage (quel nombre) il a utilisé. L'ordinateur de la FNAC décode et répond dans la seconde. Manifestement, quand on a la clé de cryptage, il suffit de quelques secondes pour décoder. Mais alors, comment peut-on prétendre que cette connexion est sécurisée ? A priori, n'importe qui pourrait intercepter le message et le décoder : le mode d'emploi est dans la même enveloppe ! En cadeau : mon numéro de carte bleue, ou mes codes d'accès à mon compte. Et je ne parle même pas des transactions entre banques : des milliards d'Euros transitent chaque jour sur le Net. Vous avez donc compris ma perplexité : le fait qu'on envoie un message codé AVEC la clé pour le décoder m'a toujours posé question ! Comment un système pareil, absurde en apparence, peut-il être réellement sécurisé ? Et si les banques ont assez confiance dans ce bousin pour balader des millions d'Euros à travers toute la planète... ... hé bien on aimerait savoir comment ça marche ! C'est ce que j'ai appris il y a quelques temps. Et que je vais essayer d'expliquer simplement... J'ai trouvé les explications qui suivent dans un bouquin intitulé "les mystères des nombres premiers" écrit par un mathématicien très clair dans ses explications... mais dont je n'ai pas noté le nom. Une remarque qui n'a rien à voir : le petit cadenas indique que l'échange de données avec le site qui vous intéresse est sécurisé. Par contre, il ne vous garantit pas que le site en question est tenu par des gens honnêtes. A vous de voir si vous voulez donner votre numéro de carte bleue à la SNCF, à la FNAC ou autre... Par exemple, si vous jouez 1000 € par échange sécurisé, en vous connectant à un site de poker basé en Angola... Commencez par utiliser Paypal, qui transmettra les 1000€ mais gardera secret votre numéro de Carte Bleue. Malgré tout, vous prenez le risque de ne pas revoir vos 1000€ : allez donc porter plainte contre un site basé en Angola, au Panama ou à Bornéo...
Edité le 27-04-2009 à 00:18:30 par Pierma |
| | Posté le 27-04-2009 à 11:10:47
| Je n'ai pas trop le temps maintenant, j'essaierai de le trouver ce soir, ou au pire le week end prochain, pour répondre en détail. 2 choses toutefois : - non, tu n'as pas dit de bêtises pierma, en tout cas pas que j'aurais pu détecter en première lecture et tu poses clairement les questions - je ne suis pas experte pour les protocoles d'échanges web (TCP/IP c'est un peu du chinois pour moi et pour la couche applicative sécurisée, SSL, je ne connais que vaguement le principe) mais je ferai un topo théorique sur la cryptographie assymétrique : c'est sur elle que repose le fait de pouvoir publier une clé sur une page web (destinée à la saisie de données confidentielles) et que l'envoi de données soit malgré tout parfaitement sécurisé. |
| | Posté le 27-04-2009 à 21:46:30
| shoop. a écrit :
- je ne suis pas experte pour les protocoles d'échanges web (TCP/IP c'est un peu du chinois pour moi et pour la couche applicative sécurisée, SSL, je ne connais que vaguement le principe) |
Je fais l'impasse sur l'aspect Protocoles, qui n'est pas essentiel ici. Je parle simplement de "messages Internet." Il s'agit bien sûr des datagrammes IP, donc des paquets de données, avec un format prédéfini, qui circulent sur le Net. (TCP/IP c'est sans mystère.)
shoop. a écrit :
mais je ferai un topo théorique sur la cryptographie assymétrique : c'est sur elle que repose le fait de pouvoir publier une clé sur une page web (destinée à la saisie de données confidentielles) et que l'envoi de données soit malgré tout parfaitement sécurisé. |
Je me préparais à expliquer comment on utilise les nombres premiers pour cela, en essayant de ne mettre aucune équation. J'avoue une lacune : si je sais comment s'y prend ma banque (qui garde les clés premières et ne transmet que leur produit) je ne comprends pas comment mon PC peut chiffrer et déchiffrer sans avoir ces deux clés. Je pense donc que tes explications seront indispensables pour compléter. |
| | Posté le 02-05-2009 à 14:28:46
| Je veux bien expliquer ça, mais pour que ce soit compréhensible pour nos lecteurs, il faut d'abord que tu racontes ce que tu sais sur les nombres premiers. Je ne voudrais pas te piquer la vedette Bon, sinon, quelques considérations très générales sur la cryptographie. Il n'existe qu'un seul cryptosystème à la sécurité parfaite : ce qu'on appelle le one-time pad . Cela consiste à utiliser une clé de chiffrement de la même taille que le message que l'on veut chiffrer. En effet, si l'on utilise une clé de taille fixe, par exemple 20 bits, et qu'on chiffre un message qui en fait, disons 100, cela signifie que la clé est utilisée 5 fois au cours du chiffrement. On introduit donc des redondances dans le message chiffré. Si l'algorithme de chiffrement utilisé, ou la clé utilisée sont "faibles", un attaquant compétent sera capable d'exploiter ces redondances et de retrouver le message assez facilement. Si l'algorithme est solide et la clé également, il restera toujours la possibilité à l'attaquant d'utiliser la force brute : il va essayer toutes les combinaisons possibles de clés de 20 bits et déchiffrer le message chiffré avec toutes ces clés jusqu'à ce qu'il trouve un message cohérent, qui sera le message en clair. Au pire, il faudra qu’il fasse 2^20 calculs (1 048 576 opérations !) Avec le one-time pad, l’attaque par force brute passe à 2^100 opérations, pour un message de 100 bits. Et le nombre d’opérations exigées pour une attaque par force brute (la seule possible sur du one-time pad) croît avec la taille du message. Si on s’amuse à chiffrer un message d’un million de bits… il n’est tout simplement plus possible d’envisager une attaque par force brute. D’où la sécurité parfaite de ce cryptosystème. Malheureusement, dans la pratique, on ne peut pas utiliser le one-time pad. Comment stocker des clés d’une taille aussi épouvantable ? Comment les transmettre entre les utilisateurs ? Sur internet notamment, où les calculs de cryptographie doivent être rapides d’une part et où d’autre part l’on est obligé d’utiliser nombre d’intermédiaires entre les deux entités impliquées dans une communication sécurisée, comment s’assurer que quelqu’un n’espionne pas au moment où la clé est transmise ? Ca n’est tout simplement pas réalisable. En fait, le one-time pad n’est vraiment utilisé que par les diplomates et les chefs d’état, qui peuvent se permettre de perdre du temps, des moyens, de l’argent, à assurer une sécurité parfaite pour des communications qui en valent la peine. Le principe de Kerckhoff maintenant. Fondamental en cryptographie. La sécurité d’un cryptosystème ne doit reposer que sur le secret de la clé. Autrement dit, si tous les paramètres du système sont connus, aussi longtemps que la clé utilisée pour un chiffrement avec ce système est secrète, les messages sont correctement protégés. A condition que le cryptosystème soit solide bien sûr. Cette règle pousse les cryptologues à toujours améliorer la sécurité inhérente à leurs systèmes et à la complexification constante des algorithmes de cryptographie et des preuves de leur sécurité. Le problème des algorithmes de chiffrement secrets, ou comme on dit dans le métier, « propriétaires », est qu’on est jamais à l’abri d’une fuite. Espionnage industriel, départ d’un employé vers la concurrence, reverse engineering… Si on base sa sécurité sur le secret du cryptosystème, tôt ou tard, ce secret finira par être connu. Si ce n’est pas au bout d’un an, ce sera dans 5 ou 10. Les données que l’on cherche à protéger sont souvent censées rester secrètes pendant une longue période, 20 ans ou plus... C’est pourquoi il faut pouvoir se fier au moyen de chiffrement utilisé et pour cette raison que le principe de Kerckhoff est largement appliqué. Pierma, c’est à toi de jouer.
Edité le 02-05-2009 à 14:29:55 par shoop. |
| | Posté le 04-05-2009 à 12:55:18
| Merci beaucoup à tous les deux pour ces lignes très instructives ...sur des principes et applications dont on connaît peu les tenants et aboutissants. |
| | Posté le 13-05-2009 à 23:22:07
| Bon, c'est parti. Me vais être bref...et clair. (J'aurais mieux fait de laisser le sujet complet à Shoop, dont c'est le métier et qui s'explique très clairement. J'ai signé sans réfléchir... ) Le mystère des nombres premiers. Sans écrire une seule équation... là j'ai mis la barre un peu haut. La méthode de chiffrage/déchiffrage utilisée pour la sécurité sur Internet repose sur une propriété intéressante des nombres premiers, et sur le fait... qu'on ne sait pas grand chose sur ces nombres si particuliers. C’est quoi un nombre premier ? Un nombre premier est un nombre entier qu'on ne peut diviser que par lui-même. (Si on le divise par un autre entier, on obtient un nombre à virgule.) Bon, à la rigueur, on peut aussi le diviser par 1, ça ne donne pas non plus un nombre à virgule. Mais vous admettrez que diviser par 1, ça ne mène pas loin... 2, 3, 5, 7, 11, 13, 17, 19, 23, … sont des nombres premiers. 4, 6, 8, 10, 12…. ne sont pas des nombres premiers : ils sont divisibles par 2. 6, 9, 12, …, 33, 54, 81…. ne sont pas des nombres premiers : ils sont divisibles par 3. Comment savoir si un nombre est premier ? Hé bien… justement on ne peut pas le savoir. Au stade actuel de nos connaissances en mathématiques, on ne connaît aucune méthode pour reconnaître un nombre premier. La seule solution consiste à en faire la liste. 2, 3, 5, 7, 11, 13, 17… Etablir la liste des nombres premiers est même devenu un moyen de mesurer la puissance des ordinateurs. Aux dernières nouvelles, la liste atteignait les nombres de 33 chiffres. Il me semble que le plus grand nombre premier connu est un nombre de 34 chiffres, mais le record tombe tous les 6 mois. (Le dernier record a été établi en utilisant des PC individuels partout à travers le monde, dont les propriétaires prêtaient un peu de temps de calcul : c’est définitivement le moyen de disposer du maximum de puissance. Aucun ordinateur unique, même hyper-puissant, ne peut rivaliser.) Pourquoi les nombres premiers en cryptographie ? Première réponse : parce que ces nombres si particuliers laissent les mathématiciens face à des problèmes qui ne sont pas près de trouver une solution. Voila des siècles qu'on travaille sur la théorie des nombres, et les nombres premiers résistent... à tous les interrogatoires. Non seulement on ne sait pas dire facilement si un nombre est premier, mais on n’est pas meilleurs quand il s’agit de trouver les facteurs premiers d’un nombre. D’accord, si je vous dis 21, vous allez répondre 3 x 7. Mais si je vous dis 2757 ? Deuxième réponse : parce que, malgré tout, les nombres premiers ont une particularité intéressante. Il s’agit d’une égalité, basée sur la notion mathématique de congruence, qu’ils sont les seuls à respecter. Prenons un nombre A de 20 chiffres : cette égalité permet de réaliser une méthode de chiffrage / déchiffrage très simple, malgré le fait qu’on utilise un nombre très grand. Prenons un nombre B de 20 chiffres : la même propriété permet de chiffrer/déchiffrer comme si on utilisait le nombre C = A x B. On utilise la même méthode simple, et pourtant C est un nombre de 40 chiffres. Attention, ce raccourci ne fonctionne que si A et B sont des nombres premiers. Alors, comment ça fonctionne sur Internet ? L’astuce est la suivante : votre banque sélectionne deux nombres premiers A et B de 20 chiffres, qu’elle conserve précieusement. Ce sont ces deux nombres premiers qui permettent un chiffrage/déchiffrage simple. La banque ne vous fournit que le nombre C. C’est cette clé qui circule sur Internet. Un hacker qui intercepterait le message se retrouverait donc avec une clé de 40 chiffres, qui n’est pas un nombre premier. La sécurité est la suivante : - Essayer de décrypter le message à partir de cette clé de 40 chiffres demanderait plusieurs années de calcul, même avec un ordinateur très puissant. - Le hacker peut évidemment essayer de trouver les deux nombres premiers A et B tels que AxB=C mais il se trouve face à un problème aussi difficile. A et B sont des nombres premiers de 20 chiffres. Il en existe environ 10 milliards. Trouver la paire A, B utilisée par la banque prendrait également un temps fou. Garantie supplémentaire, la banque change régulièrement la paire de nombres A et B utilisés. A supposer qu’un hacker bien équipé passe quelques mois à les trouver, il sera trop tard pour les utiliser. Le cryptage sur Internet sera-t-il toujours incassable ? Il restera incassable aussi longtemps qu’un mathématicien n’aura pas découvert le moyen de trouver facilement les facteurs premiers (A et B) d’un nombre. Là-dessus, on peut être raisonnablement tranquilles : les mathématiciens n’ont pas trouvé de méthode pour cela en 25 siècles, et ils n’ont aucune piste en vue pour y arriver. C’est un des paradoxes créés par l’apparition d’Internet. Pendant des siècles, la théorie des nombres a constitué un des domaines les plus fermés des mathématiques, qui n’intéressait que quelques centaines de mathématiciens dans le monde. Aujourd’hui tous les spécialistes de la sécurité des échanges financiers gardent un œil sur ce qui se publie dans ce domaine très spécialisé : il suffirait qu’un génie découvre soudain une telle méthode pour que toute la sécurité des transactions s’effondre. En somme, les experts en sécurité sont très optimistes sur la durée du système… parce que les mathématiciens sont très pessimistes sur l’éventualité d’une telle découverte.
------------------ Les esprits chagrins auront remarqué qu'il y a une faille dans mon explication : - je vois très bien comment s'y prend ma banque. Elle garde les nombres premiers qui rendent le chiffrage/déchiffrage faciles, et envoie sur le Net un nombre à faire peur. - par contre je ne comprends pas comment mon PC se débrouille avec cette clé de 40 chiffres. En toute rigueur, il devrait être incapable de chiffrer et déchiffrer avec. Forcément, puisque ce nombre est précisément calculé pour pour rendre le décryptage impossible. En somme, comment mon PC réussit-il avec ces 40 chiffres un travail considéré comme impossible pour un pirate qui disposerait de la même clé ? (Et je le répète, l'interception de cette clé est assez facile) Le complément d'explication doit résider dans ce que Shoop appelle le cryptage asymétrique. Manifestement, mon PC et l'ordinateur de ma banque ne travaillent pas de la même façon : il y a une astuce supplémentaire...
Edité le 14-05-2009 à 00:09:31 par Pierma |
| | Posté le 16-05-2009 à 19:26:49
| Pierma a écrit :
J'ai signé sans réfléchir... ) |
Trop tard ! En tous cas, merci pour ces explications supplémentaires, Pierma.
Edité le 16-05-2009 à 19:27:45 par Audrey |
| | Posté le 20-05-2009 à 15:47:20
| Me voili, me voilou, attention les yeux, pavé incoming !
------------------------------ Tout d'abord, une précision concernant le post de Pierma. Méthode pour savoir si un nombre est premier ou factorisable Tu dis qu’il n’y a pas de méthode pour savoir si un grand nombre est premier ou simplement le produit de 2 grands nombres premiers. Il est plus juste de dire qu’il n’en existe pas de très efficace. Parce qu’il en existe bien une : tester toutes les divisions possibles de ce nombre par les nombres plus petits que lui, et voir si l’une de ces divisions donne un résultat entier. Bon, par contre, en temps de calcul, cette méthode est abominable. C’est pour cela qu’elle n’est pas utilisée en pratique. Toutefois, quelques algorithmes améliorés s’inspirant de cette méthode ont été mis au point. En général, des algorithmes probabilistes : on teste un certain nombre de divisions possibles, une quantité « représentative » d’opérations est effectuée… et si on n’obtient pas de résultat entier, on décide que le nombre est probablement premier, avec une probabilité dépendant de l’algorithme utilisé. Quand on est matheux ou informaticien, ce genre de calcul n’est pas très satisfaisant. On aime bien les choses carrées et les résultats clairs et nets. La cryptographie asymétrique maintenant. Pierma, tu es un nouveau monsieur Jourdain Le système que tu décris, avec deux grands nombres premiers (secrets) dont on divulgue le produit (public) est asymétrique. On parle de cryptographie asymétrique lorsque les clés utilisées dans un même cryptosystème sont différentes suivant que l’on émet ou reçoit un message. Par opposition à la cryptographie symétrique, où l’émetteur et le receveur utilisent une seule et même clé pour chiffrer et déchiffrer le message. Théoriquement ils sont seuls à posséder cette clé, ce qui assure la sécurité de l’échange. Ils partagent un même secret (au sens cryptographique du terme). La symétrie ou l’asymétrie est donc fonction du type de chiffrement utilisé (qui détermine à son tour le type de clés). Il n’y a pas de partage de secret en cryptographie asymétrique. Terminologie : on parle en général de clés publique et privée pour un cryptosystème asymétrique et de clé secrète pour un cryptosystème symétrique. L’intérêt d’un cryptosystème asymétrique est qu’on peut publier toutes les clés publiques, dans un genre d’annuaire. Chaque clé publique, C est associée à l’identité de la personne qui détient les clés privées associées, A et B, telles que AxB = C pour reprendre tes notations. Si une personne (Alice) souhaite envoyer un message à l’une des personnes de l’annuaire (Bob), elle va chercher Bob dans l’annuaire, trouver la clé publique accolée à Bob, calculer le message chiffré à l’aide de la clé publique de Bob et l’envoyer. Alice, une fois qu’elle a calculé le message chiffré, est rigoureusement incapable de le déchiffrer (même en connaissant le message de départ, elle ne peut pas le « recalculer »), puisqu’elle ne possède pas la clé privée de Bob. Et les intermédiaires éventuels entre elle et Bob, chargés de l’acheminement du message, en seront incapables également (d’autant qu’eux ne connaissent pas le message en clair). Seul Bob le peut. Vous vous demandez peut-être qui sont Alice et Bob. Ce sont des personnages très célèbres en cryptologie. Les cryptologues ont dû en avoir marre un jour de dire « person A » et « person B » et les ont donc baptisés. Oui mais je n’ai pas répondu à la question me diras-tu : « comment mon PC réussit-il avec ces 40 chiffres un travail considéré comme impossible pour un pirate qui disposerait de la même clé ? » Désolée, mais il va falloir que je fasse un peu de maths pour expliquer. Allergiques, s’abstenir Vous rappelez-vous les congruences modulaires au lycée ? Cette notion a été introduite par Gauss, un monsieur qui a fait des merveilles pour les mathématiques modernes. Un exemple assez simple pour commencer. « 7 = 1 mod 3 » se lit 7 est congru à 1 modulo 3. Car 7 = 1 + 2*3. De façon générale, on dit qu’un nombre a est congru à x modulo un nombre b s’il existe k tel que a = x + kb. Une façon équivalente de dire les choses : x est le reste de la division « classique » de a par b et k est le quotient de cette division. Sauf qu’avec la congruence modulaire, on s’intéresse seulement au reste de la division, x, et pas du tout au quotient, k. Donc a = x mod b énonce simplement le fait que le reste de la division de a par b est x. Revenons à notre grande clé publique de 40 chiffres. Lorsqu’on calcule un message chiffré avec cette clé, on effectue un certain nombre d’opérations. Parmi ces opérations, on trouve la réduction modulaire : on calcule, à chaque opération intermédiaire pendant le chiffrement, le reste du nombre en cours de calcul en fonction de la clé de 40 chiffres. Notons-la C comme Pierma. Opération 1, à partir du message en clair, on calcule un nombre a1 qu’on réduit modulo C => a1 = x1 mod C Opération 2, A PARTIR de x1, on calcule a2 qu’on réduit modulo C => a2 = x2 mod C Pour l’opération 3, on va partir de x3 et continuer à réduire. Toutes ces réductions intermédiaires permettent de manipuler des nombres x1, x2, x3… relativement petits. Plus petits en tout cas que C avec ses 40 chiffres. Cela permet d'accélérer les calculs. A la fin, le message chiffré, est un nombre X, réduit lui aussi modulo C, par conséquent de 40 bits au plus. Le problème auquel est confronté le hacker est le suivant : comment retrouver le quotient k tel que message chiffré = X + kC. Il y a eu énormément d’opérations intermédiaires avant de parvenir à ce X. Opérations qui ont été rendues très rapides pour le PC de Pierma par le fait de réduire à chaque étape les résultats intermédiaires. Mais il y en a eu tellement qu’il est impossible de deviner l’ordre de grandeur de k simplement à partir du nombre X. Pour vous en convaincre, revenons à mon exemple du début. 7 = 1 mod 3 mais aussi 10 = 13 = 16 = 1 mod 3 car 10 = 1 + 3*3 13 = 1 + 4*3 16 = 1 + 5*3 Récitez la table de 3 et ajoutez 1 à chaque nombre. Vous aurez tous les premiers nombres congrus à 1 modulo 3. Sachant qu’il y en a une infinité…. Voyez-vous la nature du problème avec un nombre de 40 chiffres plutôt que 3 ? Par contre, en connaissant les deux nombres privés de 20 chiffres (et une ou deux autres choses), on peut faire plus de calculs, plus de choses et ce n’est plus du tout un problème de retrouver le message en clair. Voilà, voilà. Je n’ai pas exactement répondu à la question de Pierma, car les notions mathématiques nécessaires pour comprendre tout le système sont assez absconses. Mais ce que je vous ai expliqué sur les congruences modulaires sert énormément en cryptographie asymétrique et le problème que je vous ai raconté ressemble beaucoup au problème réel. Un dernier point pour finir : les principes sous-jacents de SSL . Vous et votre banque . Lorsque vous êtes sur le site de votre banque, la communication est sécurisée. Comment ? Eh bien, pour commencer, votre ordinateur récupère la clé publique de votre banque. Cryptographie asymétrique ! Voir plus haut Vous pouvez donc envoyer des messages chiffrés à votre banque, qui les déchiffre aussitôt. Oui mais… Comment la banque fait-elle pour vous envoyer des messages chiffrés à vous ? Vous, qui n’avez pas forcément de clé publique bien à vous. Si elle utilise sa propre clé, vous ne saurez pas déchiffrer ses messages puisque vous ne possédez pas sa clé privée. La banque ne vous envoie pas par conséquent de messages chiffrés avec sa propre clé. Lorsque votre PC a la clé publique de la banque, il va choisir une nouvelle clé aléatoirement. La chiffrer avec la clé publique de la banque et l’envoyer. La banque reçoit ce message chiffré, le déchiffre et obtient une clé, en clair, connue de votre PC seul. A partir de ce moment, toutes les communications passent en chiffrement symétrique et sont chiffrées à l’aide de cette clé, fournie par votre PC et envoyée à la banque. C’est le secret partagé par vous et votre banque et cette clé sera valable le temps de la session internet. Si vous fermez votre session, la clé est supprimée et à la nouvelle connexion de votre PC, une nouvelle clé sera calculée et utilisée. L’unicité de l’usage de ces clés ajoute à la sécurité des échanges entre vous et votre banque. Voilà pour le petit cadenas en bas de votre page internet et son fonctionnement.
--------------------------------------------------- Pour conclure, Pierma, tu as bien fait de signer sans réfléchir. Parce que je n'aurais pas eu l'idée de le faire de moi-même (en général, la crypto intéresse assez peu les gens :p). Et en tout cas, ça ne me serait pas venu à l'idée d'expliquer tout ça sans équations. Donc, c'était une très bonne idée, et même si je n'ai pas tenu complètement sans faire de maths, je suis plutôt contente d'avoir pu raconter tout ça. La vulgarisation est un exercice agréable ^^.
Edité le 20-05-2009 à 15:48:40 par shoop. |
| | Posté le 20-05-2009 à 21:58:20
| shoop. a écrit :
Me voili, me voilou, attention les yeux, pavé incoming ! |
Mais il est très bien, ce pavé ! Surtout en se mettant la contrainte de ne pas écrire d'équation : bel exercice ! pas mécontent de voir éclairci le point que me chiffonnait : si ma banque n'envoie qu'un nombre C de 40 chiffres - à faire peur - comment mon PC peut-il décrypter avec ? Si j'ai bien compris : en fait mon PC ne peut pas décrypter avec ça, pas plus qu'un pirate éventuel. Il peut juste utiliser cette clé de 40 chiffres pour crypter . Il va s'en servir pour crypter LE premier message en réponse, dans lequel il cache un nombre D qui sera la clé secrète des échanges suivants. A partir de là, les deux parties, comme deux espions classiques, utilisent la même clé D dont ils sont certains qu'elle n'a pas pu être interceptée. (Et ce que font les espions classiques s'appelle du cryptage symétrique. Yeeeeeeees, je vais pouvoir briller en société.) Merci Shoop, pour toutes ces explications. |
| | Posté le 22-05-2009 à 12:49:01
| Merci à tous les deux pour ce sujet, difficile à aborder, et ces explications claires ...quasi un exploit dans ce thème ! |
|
|
|