Le Codage et le Cryptage
Transcription
Le Codage et le Cryptage
Le Codage et le Cryptage Introduction Problématique « - Comment transmettre des informations bancaires de manière sécurisée ? - Utilisation du codage, du cryptage RSA et sa réalisation » Thème « Information et Communication » Groupe Bardey David Dubois Jonathan Resin Nicolas Disciplines Mathématiques et Sciences de l’ingénieur Justifications de la problématique Nous avons choisit cette problématique car la carte bancaire est un outil utilisé partout. De nos jours, on l’utilise pour acheter dans de nombreux lieux, allant du supermarché ou un achat sur Internet. Son principe est simple : envoyer les informations d’un ou plusieurs comptes bancaires pour des payements ou retraits d’argent. Mais son emploi ne cesse pas d’évoluer : Exemple parfait de Paypal qui vient de sortir la carte bancaire électronique qui permet de payer avec son compte Paypal comme si l’on utilisait une carte bancaire. Mais l’intérêt est surtout la manière de sécuriser les informations transitant avec la carte bancaire. En effet, cette dernière doit absolument être protégée vu son rôle important. L’expérience permet de crypter alors un message (ici une lettre de l’alphabet) grâce au codage RSA, utilisé par les cartes bancaires. Ce dernier ce présent sous le format d’un site web donc utilisable par toute personne ayant accès a Internet. Première partie : Le codage Définition Le codage est un ensemble d’instructions à la source d’un programme informatique. Il est une suite d’instructions logiques écrites par un informaticien dans un langage de programmation. Le codage est l’action qui sert à coder un message afin de le transmettre ou de le traiter. I) Les différentes bases 1) La base 2 (ou base binaire) Le système binaire est le système de numération de position où la base est 2 : il existe donc deux symboles qui sont 0 et 1. Un tel système est utilisé par les machines électriques ou électroniques. Il existe un exemple simple et concret d’une telle numération : le solfège. En effet, 1 ronde=2blanches ; 1 blanche=2 noires ; 1 noire=2 croches ; 1 croche=2 double croches … Quand on compte en base 2, on multiplie tout simplement par 2 à chaque fois : 1-2-4-8-16-32-64-128-… 2) La base 5 (ou base quinaire) L’origine de cette base est le comptage sur les 5 doigts de la main. Elle est encore utilisée chez certaines populations en Inde pour les besoins les plus courants. On peut compter jusqu’à 30 avec cette base. On compte de 1 à 5 avec la main gauche, et avec la main droite, on retient 5 avec le pouce ; 10 avec l’index ; 15 avec le majeur ; 20 avec l’annulaire et 25 avec l’auriculaire. 3) La base 10 C’est la base la plus répandue. On l’utilise actuellement. La base 10 est le fait de compter de 10 en 10. 4) La base 12 (ou base duodécimale) Son existence s’explique par le fait qu’à l’aide des quatre doigts d’une main, on compte 12 phalanges (le pouce sert à compter). On pouvait ainsi compter jusqu’à 144. Nous avons quelques restes de la base 12 : une douzaine(12) et une grosse (une douzaine de douzaine soit 144) pour compter les huîtres, les œufs et les ravioles (exemple : quand on achète une grosse de ravioles, on achète 144 ravioles). Les sumériens (peuple vivant au sud de l’Irak au IVème millénaire av. J.C) partageaient le jour en douze parties égales (notre découpage en 24h est un reste de la base 12). Cette base fut aussi utilisée par les anglo-saxons dans leur système monétaire jusqu’en 1960 : un « pound » représentait vingt « shilling » et un « shilling » représentait douze « pence ». Les anciennes unités de mesure (mesures en rapport avec des parties du corps) découlent aussi de la base 12 : 1pied=12 pouces, 1 pouce=12lignes et 1 ligne=12points. La base 12 est encore utilisée en Inde, Indochine, Pakistan, Afghanistan, Egypte, Syrie, Turquie, Iran, Irak. 5) La base 20 (ou base vicésimale) Elle a été utilisée chez les mayas et les aztèques. Ils comptaient avec les doigts des pieds et des mains( soit 20 doigts en tout). Ainsi, 40 était désigné par « deux vingt » ; 60 par « trois vingt » ; 80 par « quatre vingt ». Dans notre système de numération, nous avons des restes de la base 20 pour écrire 80 et 90 par exemple. 6) La base 60 (ou base sexagésimale) Elle est encore utilisée de nos jours pour les heures (1h=60min, 1min=60s) et les angles. L’origine probable est une combinaison des bases 5 et 12: de la main gauche, on compte de 1 à 12 et de la main droite, on compte de 12 en 12 (12 :pouce, 24 :index, 36 :majeur, 48 :annulaire et 60 : auriculaire). Elle a été utilisée chez les babyloniens ( peuple se développant en Mésopotamie au IIème millénaire av. J.C). II) Le binaire Définition : le système binaire est un système de numération utilisant la base 2. On nomme couramment bit les chiffres de la numération binaire. Ceux-ci ne peuvent pendre que deux valeurs, notées 0 (faux ou fermé) et 1 (vrai ou ouvert). Il s’agit de la plus petite unité d’information manipulable par une machine numérique. Les opérations avec dix chiffres (base 10) serait beaucoup trop lentes à effectuer par les processeurs d'un PC. C'est pourquoi, en n'utilisant que 2 chiffres (base 2), ils effectuent des calculs très rapidement et très simplement sur des nombres comportant uniquement des 0 et des 1. 1) Le bit Le terme bit signifie « binary digit » qui veut dire « chiffre binaire », c'est-àdire 0 ou 1 en numération binaire. Il s’agit de la plus petite unité d’information manipulable par une machine. Il est possible de représenter physiquement cette information binaire : -par un signal électrique ou magnétique, qui, arrivé à un certain seuil, correspond à la valeur 1 -grâce à des bistables, c'est-à-dire des composants électroniques qui ont deux états d’équilibre (l’un correspond à l’état 1, l’autre à 0) Dans un nombre binaire, la valeur d’un bit, appelée poids, dépend de la position du bit en partant de la droite. A la manière des dizaines, des centaines et des milliers pour un nombre décimal, le poids d’un bit croît d’une puissance de deux en allant de la droite vers la gauche comme le montre le tableau suivant : Nombre binaire Poids 1 1 7 2 = 128 1 6 2 = 64 1 5 2 = 32 1 4 2 = 16 1 3 2 =8 1 2 2 =4 1 1 2 =2 20 = 1 2) L’octet L’octet est une unité d’informations composée de 8bits. Il permet par exemple de stocker un caractère, tels qu’une lettre ou un chiffre. Ce regroupement de nombres par série de 8 permet une lisibilité plus grande, car on apprécie en base décimal, le regroupement des nombres par trois pour pouvoir distinguer les milliers. Par exemple, « 1 256 245 » est plus lisible que « 1256245 ». Une unité d’informations composée de 6 bits est généralement appelée mot (en l’anglais Word) Une unité d’informations de 32 bits de longueur est appelée mot double (en anglais double Word, d’où l’appellation Dword) Pour un octet, le plus petit nombre est 0 (représenté par huit zéros 00000000), et le plus grand est 255 (représenté par huit chiffres « un » 11111111), ce qui représente 256 possibilités de valeurs différentes. Longtemps l'informatique s'est singularisée par l'utilisation de différentes valeurs pour les unités du système international. Ainsi beaucoup d'informaticiens ont appris que 1 kilooctet valait 1024 octets, Or, depuis décembre 1998, l'organisme international IEC( Commission Electrotechnique International : organisation internationale de normalisation qui élabore et publie des normes internationales pour tous les appareils électriques) a statué sur la question, Voici donc les unités standardisées: Un kilooctet(ko)= 210 octets=1024 octets Un Mégaoctet(Mo)= 220 octet=1024 ko=1 048 576 octets Un Gigaoctet(Go)=230 octet=1024 Mo=1 073 741 824 octets Un Téraoctet(To)=240 octets=1024 Go=1 099 511 627 776 octets L'IEC a également défini le kilo binaire (kibi), le méga binaire (Mébi), le giga binaire (Gibi), le téra binaire (Tebi): Un kibioctet (kio ou kiB) vaut 210 =1024 octets Un Mébioctet (Mio ou MiB) vaut 220=1 048 576 octets Un Gibioctet (Gio ou GiB) vaut 230=1 073 741 824 octets Un Tébioctet (Tio ou TiB) vaut 240=1 099 511 627 776 octets 3) Les différentes conversions possibles Conversion d'un nombre binaire en octal On doit grouper les chiffres par 3 et les remplacer par leur équivalent octal. Exemple: soit le nombre binaire: 100011010001 donne: 100 011 010 001 puis: 4 3 2 1 soit: 4321 en octal. Conversion d'un nombre binaire en hexadécimal On doit grouper les chiffres par 4 et les remplacer par leur équivalent hexadécimal. Exemple: soit le nombre binaire: 100011010001 donne: 1000 1101 0001 puis: 8 D 1 soit: 8D1 en hexadécimal. Conversion de nombres octaux et hexadécimaux en nombre binaire Pour chaque chiffre octal, on doit le remplacer par l'équivalent binaire sur 3 chiffres Pour chaque chiffre hexadécimal, on doit le remplacer par l'équivalent binaire sur 4 chiffres. Exemple: soit le nombre octal: FAD5 donne: F A D 5 puis 1111 1010 1101 0101 soit 1111101011010101 en binaire Conversion d'un nombre de base quelconque en nombre décimal On doit multiplier l'équivalent décimal de chaque chiffre par sa valeur positionnelle puis les additionner Exemple 1: binaire en décimal. Valeur Position soit Résultat 1 25 1x32 32 + 1 24 1x16 16 + 0 23 0x8 0+ 1 22 1x4 4+ 0 21 0x2 0+ 1 20 1x1 1 =53 Exemple 2: hexadécimal en décimal: Valeur Position soit Résultat A 163 10x4096 40960 + D 162 13x256 3328 + 3 161 3x16 48 + B 160 11x1 11 =44347 Conversion d'un nombre décimal en binaire soit le nombre décimal: 223 1 – on divise successivement par 2: 223 / 2 = 111 reste 1 111 / 2 = 55 reste 1 55 / 2 = 27 reste 1 27 / 2 = 13 reste 1 13 / 2 = 6 reste 1 6 / 2 = 3 reste 0 3 / 2 = 1 reste 1 1 / 2 = 0 reste 1 2 -on prend les restes en partant du bas pour trouver le chiffre en binaire: ici 223 = 1101 1111 III) L'hexadécimal Les nombres binaires étant de plus en plus longs, il a fallu introduire une nouvelle base: la base hexadécimale. La base hexadécimale consiste à compter sur une base 16, c'est pourquoi au-delà des 10 premiers chiffres on a décidé d'ajouter les 6 premières lettres: A, B, C, D, E, F). Voici les 255 premiers codes ASCII en hexadécimal, octal et binaire: Voir annexe Pour convertir un nombre décimal en hexadécimal, il faut le convertir en binaire puis faire des groupes de 4 bits( rajouter des 0 aux groupes incomplets) puis les remplacer par son équivalent en hexadécimal. Exemple: 157 = 10011101 = 1001 1101 = 9 D = 9D en hexadécimal Pour convertir un nombre en hexadécimal en décimal, il faut multiplier le premier chiffre en sa valeur décimal par la valeur de sa position dans le tableau et ajouter le dernier en sa valeur décimal. Exemple: 9D = 9*16 + 13 ( = D) = 144 + 13 = 157 IV)L'ASCII Définition : ASCII signifie American Standard6 Code For Information Interchange. Elle a été inventée par l’américain Bob Bemer en 1961. Elle est la norme de codage de caractères en informatique la plus connue. C’est également la variante américaine du codage de caractères ISO/CEI 646(norme qui définie des codes de caractères graphique codés sur 7bits). Elle contient les caractères nécessaires pour écrire en anglais. Elle est la base de nombreuses autres normes. 1) Présentation L'ASCII est défini sur 128 caractères codés en binaire de 0000000 à 1111111. 7bits suffisent donc à représenter l'ASCII. Mais les ordinateurs travaillent sur 8bits. Les caractères de 0 à 31 ainsi que le 127 ne sont pas affichables. Le caractère 32 est l'espace blanc. Les autres correspondent aux chiffres, aux lettres majuscules et minuscules et à quelques symboles de ponctuation. Beaucoup de pages de codes étendent l'ASCII en utilisant le 8ème bit pour définir des caractères numérotés de 128 à 255. La norme ISO 8859 fournit des extensions pour diverses langues. Par exemple, l'ISO 8859-1 appelé aussi Latin1, étend l'ASCII avec les caractères accentués utiles aux langues d'Europe occidentale comme le français. 2)Table ASCII standard 3) Table ASCII étendue V) La communication en série et en parallèle 1) La communication en série Définition: En télécommunication et en informatique, la communication série est l’action d’envoyer des données par bit séquentiellement sur un canal de communication (média de transmission reliant la source au destinataire) ou un bus informatique (ensemble des lignes de communications connectant les différents composants d’un ordinateur).Les communications séries sont utilisées pour les communications à longue distance, la plupart des réseaux informatiques car le coût élevé des câbles et des procédés de synchronisation rend impossible l'utilisation de communications parallèles. Les bus séries d'ordinateurs sont de nos jours les technologies les plus répandues et évoluées pour des transferts de données rapides. L'octet à transmettre est envoyé bit par bit (poids faible en premier) par l'émetteur sur la ligne Tx, vers le récepteur (ligne Rx) qui le reconstitue La vitesse de transmission de l'émetteur doit être identique à la vitesse d'acquisition du récepteur. Ces vitesses sont exprimées en BAUDS (1 baud correspond à 1 bit / seconde, dans notre cas). Il existe différentes vitesses normalisées: 9600, 4800, 2400, 1200... bauds La communication peut se faire dans les deux sens (duplex), soit émission d'abord, puis réception ensuite (half-duplex), soit émission et réception simultanées (full-duplex) La transmission étant du type asynchrone (pas d'horloge commune entre l'émetteur et le récepteur), des bits supplémentaires sont indispensables au fonctionnement: bit de début de mot (start), bit(s) de fin de mot (stop) D'autre part, l'utilisation éventuelle d'un bit de parité, permet la détection d'erreurs dans la transmission. 2) La communication en parallèle La communication parallèle est différente de la communication série. Elle transmet plusieurs flux de données simultanés sur de multiples canaux (fil électrique, piste de circuit imprimé, fibre optique ...) tandis que la communication série ne transmet qu'un seul flux de donnée sur un même canaux. Malgré ce faible flux, la communication série a la fréquence d'horloge la plus élevée. La communication parallèle peut avoir certains problème de transfert: -problème de décalage d'horloge entre les différents canaux -plusieurs câbles pour une communication en parallèle, donc un encombrement -augmentation des risques de diaphonie(interfaces entre plusieurs canaux) Deuxième partie :Le cryptage Définition : Le cryptage ou chiffrement est le fait de transformer un message clair noté la plupart du temps m en un message codé noté c. Mais qui est en théorie seulement compréhensible que par son destinataire qui dispose de la méthode pour lire le message crypté. Le cryptage est apparu dès l’antiquité avec les chiffres hébreux que sont l’Atbash, l’Atbah et l’Albam et par le célèbre chiffre de César. Aux fils des siècles les méthodes se sont perfectionnées pour être de plus en plus difficile à décrypter. De nos jours le cryptage R.S.A est utilisé pour la sécurité des cartes bancaires. I) Pendant l’antiquité 1) Le chiffre affine Pendant l’antiquité les cryptages qui étaient utilisés étaient pour la plupart des chiffres affines : Un chiffre affine est composé d’une fonction de la forme y= ax+b, mais l’alphabet latin contient 26 lettres donc pour crypter des lettres il faut inclure la notion de modulo 26 se qui est l’équivalent du reste de la division par 26. Donc la véritable formule sera y= (ax+b) mod26. Le nombre b doit être compris entre 0 et 25 et a doit être premier avec 26 dons il ne reste que (1 ; 3 ; 5 ; 7 ; 9 ; 11 ; 15 ;17 ; 19 ; 21 ; 23 ; 25). Lettre a b c d e f G h i J K l m n o p q r s t u v w x y z nombre 0 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 Pour chiffré il faut avoir choisis a et b puis une fois la fonction trouvée il faut prendre x qui est le message clair puis effectué les calcules. Pour déchiffré il faut trouver la fonction g qui est la fonction inverse de y. a) Exemple y=3x+2 Si le message clair est le f alors le nombre correspondant sera le 5 (voir tableau si dessus. CHIFFREMENT Avec : y= 3x+2 et m = 5 Donc : y = 3*5+2 Y = 17 Le message crypté est alors le 17 DECHIFFREMENT Pour déchiffrer ce chiffre il suffit de trouver la fonction inverse de celle qui a été utilisé pour chiffrer. 3m+2 = c 3m = c-2 m = c/3-2/3 m = 17/3-2/3 m = 15/3 m=5=f DECRYPTEMENT On peut décrypter un chiffre affine de deux manières: -La première est d’utiliser les fréquences -La seconde est de tester toutes les fonctions possibles (si les critères ci dessus sont respectés alors il n’y a que 12*26 = 312 fonctions possible). b) Chiffres affine célèbres Le chiffre de César a pour fonction y = x+3 L’Albam qui est un chiffre hébreu a pour fonction y = x+13 2) Les cryptages célèbre de l’antiquité a) Polybe Polybe était un historien grec qui vécu environ autour de 200 avant Jésus Christ est le premier avoir mis en place en chiffrement par substitution. b) Le carré de Polybe 1 2 3 4 5 1 A B C D E 2 F G H I J 3 K L M N O 4 P Q R S T 5 U V X Y Z Le carré de Polybe ou carré de 25 est un carré composé de 5 lignes et de 5 colonnes numéroté respectivement de 1 à 5. A l’intérieur de ce carré ce trouvent les lettres de l’alphabet latin. En France le « W » n’est pas présent il peut être représenté par un « V » ou par deux à la suite, en Angleterre le « W » est présent mais le « I » et le « J » sont regroupés dans la même case. CHIFFREMENT Pour chiffrer il suffit de remplacer les lettres par leurs coordonnées par exemple pour crypter le mot S O L E I L ont remplace les lettres par leurs coordonnées ainsi la lettre « S » devient (4 ; 4) et le mot S O L E I L devient (4 ; 4) – (3 ; 5) – (3 ; 2) – (1 ; 5) – (2 ; 4) – (3 ; 2). DECHIFFREMENT Pour déchiffrer il suffit de prendre les coordonnées et de retrouver la lettre correspondante ainsi (4 ; 4) devient le « S ». DECRYPTEMENT Le décryptement se réalise de la même manière que le déchiffrement car il n’y a pas de clé qui le protège la seul difficulté pourrait être que la table ne soit pas la même. A ce moment la méthode des fréquences pourrait très bien s’appliquer. c) Les chiffres hébreux La méthode pour crypter à l’aide des chiffres hébreux est très simple, il suffit de remplacer les lettres à l’aide des tableaux ci-dessous. - L’Atbash : Texte clair A B C D E F G H I J K L MN O P Q R S T U V WX Y Z Texte codé Z Y XWV U T S R Q P O NM L K J I H G F E D C B A SOLEIL devient HLOVEO -L’Albam : Pour crypter l’Albam, l’alphabet est décalé de 13 lettres, c’est aussi une fonction affine y = (x+13)mod26. L’Albam a été réutilisé en 1984 dans le programme ROT13 Texte clair A B C D E F G H I J K L MN O P Q R S T U V WX Y Z Texte codé NM O P Q R S T U V WX Y Z A B C D E F G H I J K L SOLEIL devient EAXQUX -L’Atbah : Texte clair A B C D E F G H I J K L MN O P Q R S T U V WX Y Z Texte codé I H G F N D C B A R Q P O E M L K J Z Y XWV U T S SOLEIL devient ZMPNAP d) Le chiffre de César Le chiffre de César fut inventé par le célèbre empereur romain Jules César qui lui donna son nom. Celui-ci inventa ce cryptage en 58 avant Jésus Christ mais il fut seulement expliquer 179 ans plus tard dans « la vie des douze César » de Suétone. Le procédé est extrêmement simple, en effet, il suffit de décaler l’alphabet de trois lettres vers la droite, ainsi le « A » devient le « D ». Texte clair A B C D E F G H I J K L MN O P Q R S T U V WX Y Z Texte codé D E F G H I J K L M N O P Q R S T U V WX Y Z A B C SOLEIL devient VROELO Maquette du chiffre De César II) Au Moyen-Age 1) Les fréquences selon Al Kindi Al Kindi a vécu au IXéme siècle après Jésus Christ (il est aussi appelé le philosophe des arabes). L’idée d’utilisation des fréquences lui est venue quand il authentifiait les textes saints de l’islam. Celui-ci a remarqué que dans tous les textes, il y a une certaine fréquence des lettres et des syllabes. Ce qui est également vrai avec l’alphabet latin et les syllabes de la langue française. Grâce à cette méthode une simple substitution mono alphabétique tel que les chiffres hébreux ou le chiffre de César (les codages affines) se montrent très simple a décryptés. Fréquence des lettres de l’alphabet Latin dans la langue française Lettres Fréquence Lettres Fréquence A 8.40 % N 7.13 % B 1.06 % O 5.26 % C 3.03 % P 3.01 % D 4.18 % Q 0.99 % E 17.26 % R 6.55 % F 1.12 % S 8.08 % G 1.27 % T 7.07 % H 0.92 % U 5.74 % I 7.34 % V 1.32 % J 0.31 % W 0.04 % K 0.05 % X 0.45 % L 6.01 % Y 0.30 % M 2.96 % Z 0.12 % 2) Le Pig Pen Le Pig Pen qui se traduit en français par « parc à cochon » est un chiffre de substitution qui a évolué pendant des siècles. Il y a trois formes qui sont les plus célèbres : -L’alphabet des templiers Cet alphabet est basé sur la croix de huit béatitudes qui était l’emblème de l’ordre. Ce cryptage a été mis en place pour faire circuler les lettres des crédits entre les différentes commanderies en toute sécurité. -L’alphabet de « la buse » : La buse (Olivier Levasseur) a dit le jour de sa pendaison que celui qui arriverait à comprendre son message trouverait son trésor. Selon Charles de la Roncière ( ex : conservateur de la bibliothèque national française ) la variante du Pig Pen, qui aurait été utilisé, serait la suivante. -L’alphabet des francs maçons : L’alphabet des francs maçons est une variante du Pig Pen qui a été utilisé au début du XIXéme siècle. III) A la Renaissance 1) Le tableau de Trithème Ce cryptage est considéré comme un des premiers chiffres poly alphabétiques. Ce tableau est composé de 24 colonnes et lignes (les lettres « J et V » ne sont pas représentées. Le tableau ci-dessous en revient au chiffre de trithème car c’est une suite de décalage (chiffre de César) Car la première n’est pas décalée, la seconde est décalée d’un rang et ainsi jusqu’à la fin du mot. Message clair Décalage Message chiffré C 0 C R 1 S Y 2 W P 3 S T 4 W O 5 T G 6 N R 7 W A 8 I P 9 W H 10 S I 11 U 2) Le chiffre de vigenère a) Le chiffre Ce chiffre fut inventé par Blaise de Vigenère diplomate français vers 1560. C’est un des premiers cryptages qui utilise une clé privée pour chiffrer un texte. Pour chiffrer avec cette méthode il faut utilisé la table de Vigenère qui est semblable a celle de Trithème la différence entre ces deux tables est que dans celle de Vigenère toute les lettres de l’alphabet latin sont représenté et dans le bonne ordre. b) Méthode Pour chiffrer Pour déchiffrer c) Exemple Clair Clef chiffré C S U R O F Y L J P E T T I B O L Z G S Y R O F A L M P E T H I P I L T E S W E 12 R Lettre en clair A B C D E F G H I J K L M N O P Q R S T U V WX Y Z A A B C D E F G H I J K L M N O P Q R S T U V WX Y Z B B C D E F G H I J K L M N O P Q R S T U V WX Y Z A C C D E F G H I J K L M N O P Q R S T U V WX Y Z A B D D E F G H I J K L M N O P Q R S T U V WX Y Z A B C E E F G H I J K L M N O P Q R S T U V WX Y Z A B C D F F G H I J K L M N O P Q R S T U V WX Y Z A B C D E G G H I J K L M N O P Q R S T U V WX Y Z A B C D E F H H I J K L M N O P Q R S T U V WX Y Z A B C D E F G L I I J K L M N O P Q R S T U V WX Y Z A B C D E F G H e J J K L M N O P Q R S T U V WX Y Z A B C D E F G H I t K K L M N O P Q R S T U V WX Y Z A B C D E F G H I J t C L L M N O P Q R S T U V WX Y Z A B C D E F G H I J K r l M M N O P Q R S T U V WX Y Z A B C D E F G H I J K L e é N N O P Q R S T U V WX Y Z A B C D E F G H I J K L M O O P Q R S T U V WX Y Z A B C D E F G H I J K L M N C U P P Q R S T U V WX Y Z A B C D E F G H I J K L M N O o t Q Q R S T U V WX Y Z A B C D E F G H I J K L M N O P d i R R S T U V WX Y Z A B C D E F G H I J K L M N O P Q é l S S T U V WX Y Z A B C D E F G H I J K L M N O P Q R e i T T U V WX Y Z A B C D E F G H I J K L M N O P Q R S s U U V WX Y Z A B C D E F G H I J K L M N O P Q R S T é V V WX Y Z A B C D E F G H I J K L M N O P Q R S T U e WWX Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L MN O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V WX Z Z A B C D E F G H I J K L M N O P Q R S T U V WX Y Chiffré Clef Clair U S C F O R J L Y T E P B I T Z L O Y S G F O R L L A T E P P I H T L I W S E IV) R.S.A Le code Rsa fut inventé en 1978 par Ron RIVEST, Adi SHAMIR et Léonard ADLEMAN. Ce chiffrement est essentiellement utilisé dans la protection de carte bancaire il sert aussi pour les transaction d’argent sur internet. Aujourd’hui il est considéré comme le chiffre a clé publique le plus sure au monde, cette sécurité est notamment dut à la difficulté de factoriser de grands nombres premiers. 1) Méthode de fonctionnement et terminologie m est le message en clair c est le message crypté (e ;n) est la clé publique p et q sont deux nombres premiers n est le produit de p et de q (d ;n) est la clé privée φ(n) = (p-1)*(q-1) e doit être premier et être compris entre le plus petit nombre premier entre p et q et entre φ(n) p ou q < e > φ(n) d – est tel que le reste de la divisions de ed par φ(n) soit égale a 1 - est différent de Pour chiffrer on calcul m^e puis c est le reste de la division de m^e par n Pour déchiffrer on calcul c^d puis m est le reste de la division de c^d par n 2) Exemple Si : p=2 q =7 n = 2*7 = 14 φ(n) = (2-1)*(7-1) = 1*6 = 6 2 < 5 < 7 donc e = 5 On peut calculer le nombre d avec cette méthode : ed = 1 ed = 1 + 6 soit φ(n) ed = 7 r est le reste de ed par e soit 7 / 5 + φ(n) soit + 6 ici r 0 ou = a e 7/5ar=2 donc 7 + 6 / 5 a r = 3 donc 13 + 6 / 5 a r = 2 donc 19 + 6 / 5 a r = 0 mais égale a e soit 5 donc 25 + 6 / 5 a r = 1 donc 31 +6 / 5 a r = 2 donc 37 + 6 / 5 a r = 3 donc 43 + 6 / 5 a r = 4 donc 49 + 6 / 5 a r = 0 et est différent de e donc d est égale à d = 11 la clé publique est ( e, n) soit (5, 11) la clé privée est (d, n) soit (11, 6) CHIFFREMENT Supposons que m soit égale à 5 - on calcule d’abord m^e - puis c est égale au reste de la division de m^e par e m^e = 11^5 = 161051 le r de 161051 par 14 est égale à 9 donc c = DECHIFFREMENT - on calcule 9^11 le message décrypté est égale au reste de c^d par n c^d = 9^11 = 31381059609 le r de 31381059609 par 14 est égale 11 le message décrypté est égale à 11 Le message décrypté est bien égale à m = 11 DECRYPTEMENT Pour décrypter R.S.A il suffit de factoriser le nombre n en deux facteurs de nombre premier. Mais cela reste une grande difficulté c’est pour cela que le chiffre R.S.A est un chiffre les plus sur au monde. V) La Carte Bancaire 1) Carte bancaire et R.S.A En 1984, la GIE (groupement interbancaire) a décidé de protéger les cartes bancaires. Lorsque qu’une personne demande à sa banque une carte bancaire, celle-ci envoie des informations à la GIE où cette dernière produit deux nombres I et J. Le nombre I est le nombre de 16 chiffres écrit sur la carte, Le nombre J est créé à l’aide d’une clé secrète. 2) La carte à puce La carte à puce fut inventée en 1970 par deux ingénieurs français : Roland Moreno et Michel Ugon. Une carte à puce est un petit ordinateur qui permet d’effectuer des calculs et, pour les cartes bancaires, de mémoriser la somme de la transaction ainsi que sa date. 3) En pratique Lorsque qu’une personne va chez un commerçant agréé, celui-ci insert sa carte dans le terminal. Ensuite se produit la phase d’authentification où les nombres I et J sont lus par le terminal et où il vérifie que ces deux nombres correspondent (si c’est une somme importante alors le terminale contact un serveur général ou celui-ci vérifie qu’il n’y a pas d’interdit bancaire ou d’opposition ). Ensuite, le client doit saisir son code PIN (Personnal Identifer Number). Ce code est composé de quatre chiffres. Celui-ci sert à vérifier le porteur de la carte. Une fois ce dernier saisit, la puce vérifie son exactitude. Si celle-ci reçoit trois PIN incorrects consécutivement, la puce se fige et la carte devient inutilisable. Si le PIN est exact, le paiement est accepté. 4) Les faiblesses de ce code En 1997, Serge HUMPICH a réussis à casser RSA en factorisant le nombre n de 96 chiffres en deux produits de facteurs de nombre premier à l’aide du logiciel de calcul Maple. Ainsi, il fabriqua les « yescard ». Il invente un nombre I et lui fait correspondre un nombre J. Elles ont été appelé ainsi car la puce répond oui à n’importe quel code PIN. Une fois sa découverte mise au point, Serge HUMPICH contacta la GIE et leur proposa de vendre sa découverte. Cette dernière lui répondit d’acheter dix carnets de ticket de métro auprès d’un distributeur de la RATP pour prouver sa théorie. Mais elle découvre qui il est et ainsi Serge HUMPICH fut condamné à 10 mois de prison. Suite à cela, la GIE est passée à un nombre n de 232 chiffres qui est toujours utilisé actuellement. Le nombre n que serge Humpich a réussit à casser est : 213598703592091008239502270499962879705109534182641740644252416 500853957746445088405009430865999 Celui-ci est composé de 96 chiffres Le nombre utilisé actuellement est : 15508808027837692984239215007513078784710202152067111027931119901 13875394553459999757605304671735856091597555389797408938173344 04367470478098639006990667909672893308140504493596951450867623 994249344075050589270015739962374529363251827 Celui-ci est composé 232 chiffres 5) Le logiciel geZerolee En 2001 un logiciel est lancé par un pirate (géoli). Ce logiciel a pour but de suivre un lapin blanc qui nous apprends a cloné les cartes bancaires. La faille trouvée par les pirates est de copier une carte déjà existante. Quand la carte est insérée dans le terminal les nombre I et J sont échangés avant que le propriétaire de la carte n’est saisit son code PIN alors il suffit au pirate de reproduire ces deux nombres et la carte est alors clonée. Page d’accueil du logiciel de clonage de carte bancaire VI) Conclusions Au fil du temps le cryptage a beaucoup évolué et il devient de plus en plus sûr, il existe un certain nombre de faille quelle soit mathématiques (Serge HUMPICH) ou simplement très astucieuses (le logiciel geZerolee).Mais dans l’ensemble les cartes bancaires sont très bien protégées. Troisième partie : Expérimentation Présentation L’expérimentation utilise le cryptage RSA, utilisé pour les sécurités des cartes bancaires qui a l’avantage d’être un codage que l’on peut étudier en première. Le projet du TPE répond donc a la condition d’être pluridisciplinaire et est précisément composé de Mathématiques pour les opérations effectuées pour le cryptage – décryptage et de Sciences de l’ingénieur pour la partie informatique de la réalisation. L’expérience est un site Internet codé en Php, xHTML, CSS qui ont chacun leur rôle dans la programmation. Le Php pour la partie calcul et automatisme, le xHTML pour sa structure et le CSS pour son aspect graphique. Il se compose d’une seule page qui contient toutes les étapes pour définir ses clés et coder une ou plusieurs lettres Ecran d’ouverture Fonctionnement I Description Le site s’ouvre avec une bannière et sur la description du projet avec des références sur le sujet, sa problématique, des informations sur le codage RSA fournis par Wikipédia, une encyclopédie libre ce qui permet à tout le monde d’y participer. Voir la capture précédente II Définition des clés Etape 1 Il faut choisir deux nombres premiers p et q et ainsi les envoyer au serveur. Ce dernier va alors nous renvoyer la valeur de phi de n et n Etape 1 II Etape 2 On doit alors insérer dans les champs la valeur de phi de n et du nombre e. Il faut faire attention à l’avertissement car cela faussera les calculs. Il faut aussi donner le nombre n au serveur. Il va alors renvoyer la clé publique, ex (7, 65) Etape 2 II III Cryptage Etape 1 Choisir une lettre de l’alphabet et lire son code dans le tableau. Entrez le, ainsi que votre clé public (e, n) Etape 1 III Etape 2 Le code lettre en RSA est renvoyé. Il ne reste plus qu’à en faire ce que l’on veut. Ex : Faire toutes les lettres et enregistrer le code dans un fichier à part. Clé public : (7, 65) Lettre Code RSA B 63 C 42 D 4 E 60