EITC/IS/CCF Classical Cryptography Fundamentals est le programme européen de certification informatique sur les aspects théoriques et pratiques de la cryptographie classique, y compris la cryptographie à clé privée et à clé publique, avec une introduction aux chiffrements pratiques largement utilisés sur Internet, tels que le RSA.
Le programme des principes fondamentaux de la cryptographie classique EITC/IS/CCF couvre l'introduction à la cryptographie à clé privée, l'arithmétique modulaire et les chiffrements historiques, les chiffrements de flux, les nombres aléatoires, le chiffrement sécurisé inconditionnel à bloc unique (OTP) (sous l'hypothèse de fournir une solution au problème de la distribution de clés, tel que donné par exemple par la distribution quantique de clés, QKD), les registres à décalage à rétroaction linéaire, Data Encryption Standard (chiffrement DES, y compris le chiffrement, l'ordonnancement des clés et le déchiffrement), Advanced Encryption Standard (AES, introduisant les champs de Galois basée sur la cryptographie), les applications des chiffrements par blocs (y compris leurs modes de fonctionnement), la prise en compte du chiffrement multiple et des attaques par force brute, l'introduction à la cryptographie à clé publique couvrant la théorie des nombres, l'algorithme euclidien, la fonction Phi d'Euler et le théorème d'Euler, ainsi que le introduction au cryptosystème RSA et à l'exponentiation efficace, dans la structure suivante, englobant une didactique vidéo complète c contenu comme référence pour cette certification EITC.
La cryptographie fait référence aux moyens de communication sécurisés en présence d'un adversaire. La cryptographie, dans un sens plus large, est le processus de création et d'analyse de protocoles qui empêchent des tiers ou le grand public d'accéder à des messages privés (cryptés). La cryptographie classique moderne est basée sur plusieurs caractéristiques principales de la sécurité de l'information telles que la confidentialité des données, l'intégrité des données, l'authentification et la non-répudiation. Contrairement à la cryptographie quantique, qui est basée sur des règles de physique quantique radicalement différentes qui caractérisent la nature, la cryptographie classique fait référence à la cryptographie basée sur les lois de la physique classique. Les domaines des mathématiques, de l'informatique, du génie électrique, des sciences de la communication et de la physique se rencontrent tous dans la cryptographie classique. Le commerce électronique, les cartes de paiement à puce, les monnaies numériques, les mots de passe informatiques et les communications militaires sont tous des exemples d'applications de cryptographie.
Avant l'ère actuelle, la cryptographie était presque synonyme de cryptage, transformant les informations lisibles en absurdités inintelligibles. Pour empêcher les attaquants d'accéder à un message chiffré, l'expéditeur ne partage le processus de décodage qu'avec les destinataires prévus. Les noms Alice ("A") pour l'expéditeur, Bob ("B") pour le destinataire prévu et Eve ("écoute clandestine") pour l'adversaire sont fréquemment utilisés dans la littérature sur la cryptographie.
Les méthodes de cryptographie sont devenues de plus en plus complexes et ses applications se sont diversifiées depuis le développement des machines de chiffrement à rotor pendant la Première Guerre mondiale et l'introduction des ordinateurs pendant la Seconde Guerre mondiale.
La cryptographie moderne dépend fortement de la théorie mathématique et de la pratique de l'informatique ; les méthodes cryptographiques sont construites autour d'hypothèses de dureté de calcul, ce qui les rend difficiles à briser pour tout adversaire dans la pratique. S'il est théoriquement possible de s'introduire dans un système bien conçu, il est impossible de le faire en pratique. De tels schémas sont dits « sûrs du point de vue informatique » s'ils sont correctement construits ; néanmoins, les percées théoriques (par exemple, les améliorations des méthodes de factorisation des nombres entiers) et une technologie informatique plus rapide nécessitent une réévaluation constante et, si nécessaire, une adaptation de ces conceptions. Il existe des systèmes d'information théoriquement sûrs, tels que le pad à usage unique, qui peuvent s'avérer incassables même avec une puissance de calcul infinie, mais ils sont nettement plus difficiles à utiliser dans la pratique que les meilleurs schémas théoriquement cassables mais sécurisés sur le plan informatique.
À l'ère de l'information, les progrès de la technologie cryptographique ont engendré une variété de défis juridiques. De nombreux pays ont classé la cryptographie comme une arme, limitant ou interdisant son utilisation et son exportation en raison de son potentiel d'espionnage et de sédition. Les enquêteurs peuvent exiger la remise des clés de cryptage pour les documents pertinents à une enquête dans certains endroits où la cryptographie est légale. Dans le cas des médias numériques, la cryptographie joue également un rôle clé dans la gestion des droits numériques et les conflits de violation du droit d'auteur.
Le terme «cryptographe» (par opposition à «cryptogramme») a été utilisé pour la première fois au XIXe siècle, dans la nouvelle d'Edgar Allan Poe «The Gold-Bug».
Jusqu'à récemment, la cryptographie se référait presque uniquement au « cryptage », qui consiste à transformer des données ordinaires (appelées texte en clair) en un format illisible (appelé texte chiffré). Le décryptage est l'opposé du cryptage, c'est-à-dire qu'il passe d'un texte chiffré inintelligible à un texte en clair. Un chiffrement (ou chiffrement) est un ensemble de techniques qui effectuent le chiffrement et le déchiffrement dans l'ordre inverse. L'algorithme et, dans chaque cas, une "clé" sont en charge de l'exécution détaillée du chiffrement. La clé est un secret (de préférence connu uniquement des communicants) qui est utilisé pour déchiffrer le texte chiffré. Il s'agit généralement d'une chaîne de caractères (idéalement courte pour que l'utilisateur puisse s'en souvenir). Un "cryptosystème" est la collection ordonnée d'éléments de textes clairs potentiels finis, de textes chiffrés, de clés et des procédures de cryptage et de décryptage qui correspondent à chaque clé en termes mathématiques formels. Les clés sont cruciales à la fois formellement et pratiquement, car les chiffrements à clés fixes peuvent être facilement brisés en utilisant uniquement les informations du chiffrement, ce qui les rend inutiles (voire contre-productifs) dans la plupart des cas.
Historiquement, les chiffrements étaient fréquemment utilisés sans aucune procédure supplémentaire telle que l'authentification ou les contrôles d'intégrité pour le chiffrement ou le déchiffrement. Les cryptosystèmes sont divisés en deux catégories : symétriques et asymétriques. La même clé (la clé secrète) sert à chiffrer et à déchiffrer un message dans les systèmes symétriques, qui étaient les seuls connus jusque dans les années 1970. Étant donné que les systèmes symétriques utilisent des longueurs de clé plus courtes, la manipulation des données dans les systèmes symétriques est plus rapide que dans les systèmes asymétriques. Les systèmes asymétriques chiffrent une communication avec une « clé publique » et la déchiffrent à l'aide d'une « clé privée » similaire. L'utilisation de systèmes asymétriques améliore la sécurité des communications, du fait de la difficulté à déterminer la relation entre les deux clés. RSA (Rivest–Shamir–Adleman) et ECC sont deux exemples de systèmes asymétriques (Elliptic Curve Cryptography). L'AES (Advanced Encryption Standard), largement utilisé, qui a remplacé l'ancien DES, est un exemple d'algorithme symétrique de haute qualité (Data Encryption Standard). Les diverses techniques d'emmêlement du langage des enfants, telles que Pig Latin ou d'autres cant, et en fait tous les schémas cryptographiques, aussi sérieux soient-ils, de n'importe quelle source avant l'introduction du tampon unique au début du XXe siècle, sont des exemples de mauvaise qualité. algorithmes symétriques.
Le terme « code » est souvent utilisé familièrement pour désigner toute technique de cryptage ou de dissimulation de message. Cependant, en cryptographie, le code fait référence à la substitution d'un mot de code à une unité de texte en clair (c'est-à-dire un mot ou une phrase significative) (par exemple, « wallaby » remplace « attaque à l'aube »). En revanche, un texte chiffré est créé en modifiant ou en substituant un élément en dessous d'un tel niveau (une lettre, une syllabe ou une paire de lettres, par exemple) afin de former un texte chiffré.
La cryptanalyse est l'étude des moyens de décrypter des données cryptées sans avoir accès à la clé nécessaire pour le faire ; en d'autres termes, il s'agit d'étudier comment «casser» les schémas de chiffrement ou leurs implémentations.
En anglais, certaines personnes utilisent indifféremment les termes «cryptographie» et «cryptologie», tandis que d'autres (y compris la pratique militaire américaine en général) utilisent «cryptographie» pour désigner l'utilisation et la pratique des techniques cryptographiques et «cryptologie» pour désigner la combinaison étude de la cryptographie et de la cryptanalyse. L'anglais est plus adaptable qu'un certain nombre d'autres langues, où la « cryptologie » (telle que pratiquée par les cryptologues) est toujours utilisée dans le second sens. La stéganographie est parfois incluse dans la cryptologie, selon la RFC 2828.
La cryptolinguistique est l'étude des propriétés du langage qui ont une certaine pertinence en cryptographie ou en cryptologie (par exemple, les statistiques de fréquence, les combinaisons de lettres, les modèles universels, etc.).
La cryptographie et la cryptanalyse ont une longue histoire.
L'histoire de la cryptographie est l'article principal.
Avant l'ère moderne, la cryptographie concernait principalement la confidentialité des messages (c'est-à-dire le cryptage) - la conversion des messages d'une forme intelligible à une forme incompréhensible et encore une fois, les rendant illisibles par des intercepteurs ou des écoutes clandestines sans connaissance secrète (à savoir la clé nécessaire au décryptage de ce message). Le cryptage a été conçu pour garder privées les conversations des espions, des chefs militaires et des diplomates. Au cours des dernières décennies, la discipline s'est développée pour intégrer des techniques telles que la vérification de l'intégrité des messages, l'authentification de l'identité de l'expéditeur/du destinataire, les signatures numériques, les preuves interactives et le calcul sécurisé, entre autres.
Les deux types de chiffrement classiques les plus courants sont les chiffrements de transposition, qui remplacent systématiquement les lettres ou les groupes de lettres par d'autres lettres ou groupes de lettres (par exemple, "hello world" devient "ehlol owrdl" dans un schéma de réarrangement trivialement simple), et les chiffrements de substitution, qui remplacent systématiquement les lettres ou les groupes de lettres par d'autres lettres ou groupes de lettres (par exemple, "voler immédiatement" devient "gmz bu". Des versions simples de l'un ou l'autre n'ont jamais fourni beaucoup d'intimité aux adversaires rusés. chaque lettre du texte en clair était remplacée par une lettre à un certain nombre de positions dans l'alphabet. Selon Suétone, Jules César l'utilisait avec un quart de travail de trois hommes pour communiquer avec ses généraux. Un chiffre hébreu ancien, Atbash, en est un exemple. La plus ancienne utilisation connue de la cryptographie est un texte chiffré gravé sur pierre en Égypte (environ 1900 avant notre ère), mais il est possible que cela ait été fait pour le plaisir des spectateurs alphabétisés plutôt que un pour dissimuler des informations.
Les cryptes auraient été connues des Grecs classiques (par exemple, le chiffrement de transposition scytale prétendument utilisé par l'armée spartiate). La stéganographie (la pratique consistant à dissimuler même la présence d'une communication afin de la garder privée) a également été inventée dans l'Antiquité. Une phrase tatouée sur la tête rasée d'un esclave et cachée sous les cheveux qui repoussent, selon Hérodote. L'utilisation d'encre invisible, de micropoints et de filigranes numériques pour dissimuler des informations sont des exemples plus courants de stéganographie.
Kautiliyam et Mulavediya sont deux types de chiffrement mentionnés dans le Kamasutra de Vtsyyana datant de 2000 ans en Inde. Les substitutions de lettres chiffrées dans le Kautiliyam sont basées sur des relations phonétiques, telles que les voyelles devenant des consonnes. L'alphabet chiffré dans le Mulavediya comprend des lettres correspondantes et l'emploi de lettres réciproques.
Selon le savant musulman Ibn al-Nadim, la Perse sassanide avait deux écritures secrètes : la h-dabrya (littéralement "écriture du roi"), qui était utilisée pour la correspondance officielle, et la rz-saharya, qui était utilisée pour échanger des messages secrets avec d'autres des pays.
Dans son livre The Codebreakers, David Kahn écrit que la cryptologie contemporaine a commencé avec les Arabes, qui ont été les premiers à documenter soigneusement les procédures cryptanalytiques. Le Livre des messages cryptographiques a été écrit par Al-Khalil (717-786), et il contient la première utilisation de permutations et de combinaisons pour répertorier tous les mots arabes imaginables avec et sans voyelles.
Les textes chiffrés générés par un chiffrement classique (ainsi que certains chiffrements modernes) révèlent des informations statistiques sur le texte en clair, qui peuvent être utilisées pour casser le chiffrement. Presque tous ces chiffrements pourraient être brisés par un attaquant intelligent après la découverte de l'analyse de fréquence, peut-être par le mathématicien et polymathe arabe Al-Kindi (également connu sous le nom d'Alkindus) au IXe siècle. Les chiffrements classiques sont toujours populaires aujourd'hui, bien qu'en grande partie sous forme de puzzles (voir cryptogramme ). Risalah fi Istikhraj al-Mu'amma (Manuscrit pour le déchiffrement des messages cryptographiques) a été écrit par Al-Kindi et a documenté la première utilisation connue des techniques de cryptanalyse par analyse de fréquence.
Certaines approches de chiffrement à historique étendu, telles que le chiffrement homophonique, qui ont tendance à aplatir la distribution des fréquences, peuvent ne pas bénéficier des fréquences des lettres de la langue. Les fréquences des groupes de lettres de langue (ou n-grammes) peuvent provoquer une attaque pour ces chiffrements.
Jusqu'à la découverte du chiffrement polyalphabétique, notamment par Leon Battista Alberti vers 1467, pratiquement tous les chiffrements étaient accessibles à la cryptanalyse en utilisant l'approche d'analyse de fréquence, bien qu'il existe des preuves qu'il était déjà connu d'Al-Kindi. Alberti a eu l'idée d'utiliser des chiffrements séparés (ou des alphabets de substitution) pour différentes parties d'une communication (peut-être pour chaque lettre en clair successive à la limite). Il a également créé ce que l'on pense être le premier dispositif de cryptage automatique, une roue qui a exécuté une partie de sa conception. Le chiffrement dans le chiffre de Vigenère, un chiffre polyalphabétique, est contrôlé par un mot-clé qui régit la substitution des lettres en fonction de la lettre du mot-clé utilisée. Charles Babbage a démontré que le chiffre de Vigenère était vulnérable à l'analyse de Kasiski au milieu du XIXe siècle, mais Friedrich Kasiski a publié ses conclusions dix ans plus tard.
Malgré le fait que l'analyse de fréquence est une technique puissante et large contre de nombreux chiffrements, le cryptage est resté efficace dans la pratique car de nombreux cryptanalystes potentiels ne connaissent pas la technique. Briser un message sans utiliser l'analyse de fréquence nécessitait une connaissance du chiffrement utilisé et éventuellement de la clé impliquée, rendant l'espionnage, la corruption, le cambriolage, la défection et d'autres tactiques cryptanalytiquement non informées plus attrayantes. Le secret de l'algorithme d'un chiffrement a finalement été reconnu au 19e siècle comme une garantie ni raisonnable ni réalisable de la sécurité des messages; en fait, tout schéma cryptographique approprié (y compris les chiffrements) doit rester sécurisé même si l'adversaire comprend parfaitement l'algorithme de chiffrement lui-même. La sécurité de la clé doit être suffisante pour qu'un bon chiffrement conserve la confidentialité face à une agression. Auguste Kerckhoffs a énoncé ce principe fondamental pour la première fois en 1883, et il est connu sous le nom de principe de Kerckhoffs ; alternativement, et plus franchement, Claude Shannon, l'inventeur de la théorie de l'information et des principes fondamentaux de la cryptographie théorique, l'a reformulée comme la maxime de Shannon : « l'ennemi connaît le système ».
Pour faciliter les chiffrements, de nombreux gadgets physiques et une assistance ont été utilisés. Le scytale de la Grèce antique, une tige prétendument utilisée par les Spartiates comme outil de chiffrement de transposition, a peut-être été l'un des premiers. D'autres aides ont été conçues à l'époque médiévale, comme la grille de chiffrement, qui était également utilisée pour la stéganographie. Avec le développement des chiffrements polyalphabétiques, des aides plus sophistiquées telles que le disque de chiffrement d'Alberti, le schéma de tabula recta de Johannes Trithemius et le chiffrement à roue de Thomas Jefferson sont devenus disponibles (non connus du public et réinventés indépendamment par Bazeries vers 1900). De nombreux systèmes mécaniques de chiffrement/déchiffrement ont été conçus et brevetés au début du XXe siècle, y compris des machines à rotor, qui ont été utilisées par le gouvernement et l'armée allemands de la fin des années 1920 à la Seconde Guerre mondiale. Après la Première Guerre mondiale, les chiffrements mis en œuvre par des instances de meilleure qualité de ces conceptions de machines ont entraîné une augmentation significative de la difficulté de cryptanalyse.
La cryptographie concernait principalement les modèles linguistiques et lexicographiques antérieurs au début du XXe siècle. Depuis lors, l'accent a évolué et la cryptographie comprend désormais des aspects de la théorie de l'information, de la complexité computationnelle, des statistiques, de la combinatoire, de l'algèbre abstraite, de la théorie des nombres et des mathématiques finies en général. La cryptographie est un type d'ingénierie, mais elle est unique en ce sens qu'elle traite de la résistance active, intelligente et hostile, alors que d'autres types d'ingénierie (comme le génie civil ou chimique) doivent simplement faire face à des forces naturelles neutres. Le lien entre les difficultés de cryptographie et la physique quantique est également étudié.
Le développement des ordinateurs numériques et de l'électronique a aidé la cryptanalyse en permettant la création de chiffrements considérablement plus sophistiqués. De plus, contrairement aux chiffrements traditionnels, qui cryptaient exclusivement les textes en langue écrite, les ordinateurs permettaient le cryptage de tout type de données pouvant être représentées dans n'importe quel format binaire ; c'était nouveau et crucial. Dans la conception de chiffrement et la cryptanalyse, les ordinateurs ont ainsi supplanté la cryptographie du langage. Contrairement aux méthodes classiques et mécaniques, qui manipulent principalement les caractères traditionnels (c'est-à-dire les lettres et les chiffres) directement, de nombreux chiffrements informatiques fonctionnent sur des séquences de bits binaires (parfois en groupes ou en blocs). Les ordinateurs, d'autre part, ont facilité la cryptanalyse, qui a partiellement compensé la complexité accrue du chiffrement. Malgré cela, les bons chiffrements modernes sont restés en avance sur la cryptanalyse; il arrive souvent que l'utilisation d'un bon chiffrement soit très efficace (c'est-à-dire rapide et nécessitant peu de ressources, telles que la mémoire ou la capacité du processeur), alors que le casser nécessite un effort de plusieurs ordres de grandeur supérieur et largement supérieur à celui requis pour tout chiffrement classique, rendant effectivement la cryptanalyse impossible.
La cryptographie moderne fait son entrée.
La cryptanalyse des nouveaux dispositifs mécaniques s'est avérée difficile et chronophage. Pendant la Seconde Guerre mondiale, les activités de cryptanalyse à Bletchley Park au Royaume-Uni ont favorisé l'invention de méthodes plus efficaces pour effectuer des tâches répétitives. Le Colossus, le premier ordinateur entièrement électronique, numérique et programmable au monde, a été développé pour faciliter le décodage des chiffres créés par la machine Lorenz SZ40/42 de l'armée allemande.
La cryptographie est un domaine relativement nouveau de la recherche universitaire ouverte, qui n'a commencé qu'au milieu des années 1970. Les employés d'IBM ont conçu l'algorithme qui est devenu la norme fédérale (c'est-à-dire américaine) de chiffrement des données ; Whitfield Diffie et Martin Hellman ont publié leur algorithme d'accord de clé ; et la colonne Scientific American de Martin Gardner a publié l'algorithme RSA. La cryptographie a depuis gagné en popularité en tant que technique de communication, de réseaux informatiques et de sécurité informatique en général.
Il existe des liens profonds avec les mathématiques abstraites puisque plusieurs approches de cryptographie modernes ne peuvent garder leurs clés secrètes que si certains problèmes mathématiques sont insolubles, comme la factorisation d'entiers ou les problèmes de logarithme discret. Il n'y a qu'une poignée de cryptosystèmes qui se sont avérés 100% sécurisés. Claude Shannon a prouvé que le tampon ponctuel en faisait partie. Il existe quelques algorithmes clés qui se sont révélés sûrs sous certaines conditions. L'incapacité de factoriser des entiers extrêmement grands, par exemple, est la base pour croire que RSA et d'autres systèmes sont sécurisés, mais la preuve de l'incassabilité est impossible car le problème mathématique sous-jacent reste non résolu. En pratique, ceux-ci sont largement utilisés et la plupart des observateurs compétents pensent qu'ils sont incassables dans la pratique. Il existe des systèmes similaires à RSA, comme celui développé par Michael O. Rabin , qui sont prouvés sûrs si la factorisation n = pq est impossible; cependant, ils sont pratiquement inutiles. La question du logarithme discret est la base pour croire que certains autres cryptosystèmes sont sûrs, et il existe des systèmes similaires, moins pratiques, qui sont prouvés sûrs en termes de solvabilité ou d'insolvabilité du problème du logarithme discret.
Les concepteurs d'algorithmes et de systèmes cryptographiques doivent tenir compte des avancées futures possibles lorsqu'ils travaillent sur leurs idées, en plus d'être conscients de l'histoire cryptographique. Par exemple, à mesure que la puissance de traitement informatique s'est améliorée, l'étendue des attaques par force brute a augmenté, d'où la longueur de clé requise également. Certains concepteurs de systèmes cryptographiques explorant la cryptographie post-quantique envisagent déjà les conséquences potentielles de l'informatique quantique ; l'imminence annoncée de modestes implémentations de ces machines peut rendre la nécessité d'une prudence préventive plus que spéculative.
La cryptographie classique de nos jours
La cryptographie symétrique (ou à clé privée) est un type de cryptage dans lequel l'expéditeur et le destinataire utilisent la même clé (ou, moins fréquemment, dans laquelle leurs clés sont différentes, mais liées de manière facilement calculable et sont gardées secrètes, en privé ). Jusqu'en juin 1976, c'était le seul type de cryptage connu du public.
Les chiffrements par blocs et les chiffrements par flux sont tous deux utilisés pour implémenter des chiffrements à clé symétrique. Un chiffrement par bloc crypte l'entrée en blocs de texte en clair plutôt qu'en caractères individuels, comme le fait un chiffrement de flux.
Le gouvernement américain a désigné le Data Encryption Standard (DES) et l'Advanced Encryption Standard (AES) comme normes de cryptographie (bien que la certification du DES ait finalement été retirée une fois l'AES établi). DES (en particulier sa variante triple-DES encore approuvée et nettement plus sécurisée) reste populaire malgré sa dépréciation en tant que norme officielle ; il est utilisé dans un large éventail d'applications, du cryptage ATM à la confidentialité des e-mails et à l'accès distant sécurisé. Il y a eu un grand nombre de chiffrements par blocs différents inventés et publiés, avec des degrés de succès variables. Beaucoup, y compris certains conçus par des praticiens qualifiés, tels que FEAL, ont été largement brisés.
Les chiffrements de flux, contrairement aux chiffrements par blocs, génèrent un flux infiniment long de matériel de clé qui est couplé à du texte en clair bit par bit ou caractère par caractère, similaire au tampon à usage unique. Le flux de sortie d'un chiffrement de flux est généré à partir d'un état interne caché qui change lorsque le chiffrement fonctionne. Le matériel de clé secrète est utilisé pour configurer cet état interne dans un premier temps. Le chiffrement de flux RC4 est largement utilisé. En créant des blocs d'un flux de clés (au lieu d'un générateur de nombres pseudo-aléatoires) et en utilisant une opération XOR sur chaque bit du texte en clair avec chaque bit du flux de clés, les chiffrements par blocs peuvent être utilisés comme chiffrements de flux.
Les codes d'authentification de message (MAC) sont similaires aux fonctions de hachage cryptographique, à l'exception qu'une clé secrète peut être utilisée pour valider la valeur de hachage à la réception ; cette complexité supplémentaire empêche une attaque contre les algorithmes de résumé nu, et est donc considérée comme valable. Un troisième type de technique cryptographique est les fonctions de hachage cryptographiques. Ils prennent n'importe quel message de longueur en entrée et produisent un petit hachage de longueur fixe qui peut être utilisé dans les signatures numériques, par exemple. Un attaquant ne peut pas localiser deux messages qui produisent le même hachage en utilisant de bons algorithmes de hachage. MD4 est une fonction de hachage largement utilisée mais maintenant défectueuse ; MD5, une forme améliorée de MD4, est également largement utilisé mais cassé dans la pratique. La série Secure Hash Algorithm d'algorithmes de hachage de type MD5 a été développée par la National Security Agency des États-Unis : l'autorité américaine de normalisation a décidé qu'il était « prudent » du point de vue de la sécurité de développer une nouvelle norme pour « améliorer considérablement la robustesse de l'algorithme de hachage global du NIST ». boîte à outils. SHA-1 est largement utilisé et plus sécurisé que MD5, mais les cryptanalystes ont identifié des attaques à son encontre ; la famille SHA-2 améliore SHA-1, mais est vulnérable aux affrontements à partir de 2011; et la famille SHA-2 améliore SHA-1, mais est vulnérable aux affrontements. En conséquence, d'ici 2012, un concours de conception de fonctions de hachage devait être organisé pour choisir une nouvelle norme nationale américaine, connue sous le nom de SHA-3. Le concours s'est terminé le 2 octobre 2012, lorsque le National Institute of Standards and Technology (NIST) a annoncé Keccak comme le nouvel algorithme de hachage SHA-3. Les fonctions de hachage cryptographique, contrairement aux chiffrements par bloc et par flux inversibles, fournissent une sortie hachée qui ne peut pas être utilisée pour récupérer les données d'entrée d'origine. Les fonctions de hachage cryptographique sont utilisées pour vérifier l'authenticité des données acquises à partir d'une source non fiable ou pour ajouter un degré de protection supplémentaire.
Bien qu'un message ou un ensemble de messages puisse avoir une clé différente des autres, les systèmes de chiffrement à clé symétrique utilisent la même clé pour le chiffrement et le déchiffrement. La gestion des clés requise pour utiliser des chiffrements symétriques en toute sécurité est un gros inconvénient. Chaque paire individuelle de parties communicantes devrait, idéalement, partager une clé différente, ainsi qu'éventuellement un texte chiffré différent pour chaque texte chiffré envoyé. Le nombre de clés requises augmente proportionnellement au nombre de participants au réseau, ce qui nécessite des techniques de gestion de clés complexes pour les garder toutes cohérentes et secrètes.
Whitfield Diffie et Martin Hellman ont inventé le concept de cryptographie à clé publique (également connue sous le nom de clé asymétrique) dans un travail fondateur de 1976, dans lequel deux clés distinctes mais mathématiquement liées - une clé publique et une clé privée - sont utilisées. Même s'ils sont inextricablement liés, un système de clé publique est construit de telle manière que le calcul d'une clé (la « clé privée ») à partir de l'autre (la « clé publique ») est irréalisable sur le plan informatique. Au contraire, les deux clés sont produites en secret, sous la forme d'une paire liée. La cryptographie à clé publique, selon l'historien David Kahn, est "la nouvelle notion la plus révolutionnaire dans le domaine depuis que la substitution polyalphabétique est apparue à la Renaissance".
La clé publique d'un système cryptographique à clé publique peut être transmise librement, mais la clé privée couplée doit rester cachée. La clé publique est utilisée pour le chiffrement, tandis que la clé privée ou secrète est utilisée pour le déchiffrement dans un schéma de chiffrement à clé publique. Bien que Diffie et Hellman n'aient pas été en mesure de créer un tel système, ils ont démontré que la cryptographie à clé publique était concevable en fournissant le protocole d'échange de clés Diffie-Hellman, une solution qui permet à deux personnes de s'entendre secrètement sur une clé de chiffrement partagée. Le format le plus largement utilisé pour les certificats de clé publique est défini par la norme X.509.
La publication de Diffie et Hellman a suscité un intérêt académique généralisé pour le développement d'un système pratique de chiffrement à clé publique. Ronald Rivest, Adi Shamir et Len Adleman ont finalement remporté le concours en 1978, et leur réponse est devenue connue sous le nom d'algorithme RSA.
En plus d'être les premières instances publiquement connues d'algorithmes à clé publique de haute qualité, les algorithmes Diffie-Hellman et RSA ont été parmi les plus couramment utilisés. Le cryptosystème Cramer – Shoup , le cryptage ElGamal et de nombreuses approches de courbe elliptique sont des exemples d'algorithmes à clé asymétrique.
Les cryptographes du GCHQ ont prévu plusieurs avancées scientifiques, selon un document publié en 1997 par le Government Communications Headquarters (GCHQ), une organisation de renseignement britannique. Selon la légende, la cryptographie à clé asymétrique a été inventée par James H. Ellis vers 1970. Clifford Cocks a inventé une solution en 1973 qui était extrêmement similaire à RSA en termes de conception. Malcolm J. Williamson est crédité d'avoir inventé l'échange de clés Diffie-Hellman en 1974.
Les systèmes de signature numérique sont également mis en œuvre à l'aide de la cryptographie à clé publique. Une signature numérique est similaire à une signature traditionnelle en ce sens qu'elle est simple à créer pour l'utilisateur mais difficile à falsifier pour les autres. Les signatures numériques peuvent également être liées de manière permanente au contenu de la communication signée ; cela signifie qu'ils ne peuvent pas être « déplacés » d'un document à un autre sans être détectés. Il existe deux algorithmes dans les schémas de signature numérique : un pour la signature, qui utilise une clé secrète pour traiter le message (ou un hachage du message, ou les deux), et un pour la vérification, qui utilise la clé publique correspondante avec le message pour valider l'authenticité de la signature. Deux des méthodes de signature numérique les plus utilisées sont RSA et DSA. Les infrastructures à clé publique et de nombreux systèmes de sécurité réseau (par exemple, SSL/TLS, de nombreux VPN) reposent sur des signatures numériques pour fonctionner.
La complexité computationnelle des problèmes « durs », tels que ceux découlant de la théorie des nombres, est fréquemment utilisée pour développer des méthodes à clé publique. Le problème de factorisation entière est lié à la dureté de RSA, tandis que le problème de logarithme discret est lié à Diffie-Hellman et DSA. La sécurité de la cryptographie à courbe elliptique est basée sur des problèmes de théorie des nombres de courbe elliptique. La plupart des algorithmes à clé publique incluent des opérations telles que la multiplication modulaire et l'exponentiation, qui sont beaucoup plus coûteuses en calcul que les techniques utilisées dans la plupart des chiffrements par blocs, en particulier avec des tailles de clé normales, en raison de la difficulté des problèmes sous-jacents. En conséquence, les cryptosystèmes à clé publique sont souvent des cryptosystèmes hybrides, dans lesquels le message est chiffré avec un algorithme à clé symétrique rapide et de haute qualité, tandis que la clé symétrique pertinente est envoyée avec le message mais chiffrée avec un algorithme à clé publique. Les schémas de signature hybrides, dans lesquels une fonction de hachage cryptographique est calculée et seul le hachage résultant est signé numériquement, sont également couramment utilisés.
Fonctions de hachage en cryptographie
Les fonctions de hachage cryptographiques sont des algorithmes cryptographiques qui produisent et utilisent des clés spécifiques pour chiffrer les données pour un chiffrement symétrique ou asymétrique, et elles peuvent être considérées comme des clés. Ils prennent n'importe quel message de longueur en entrée et produisent un petit hachage de longueur fixe qui peut être utilisé dans les signatures numériques, par exemple. Un attaquant ne peut pas localiser deux messages qui produisent le même hachage en utilisant de bons algorithmes de hachage. MD4 est une fonction de hachage largement utilisée mais maintenant défectueuse ; MD5, une forme améliorée de MD4, est également largement utilisé mais cassé dans la pratique. La série Secure Hash Algorithm d'algorithmes de hachage de type MD5 a été développée par la National Security Agency des États-Unis : l'autorité américaine de normalisation a décidé qu'il était "prudent" du point de vue de la sécurité de développer une nouvelle norme pour "améliorer considérablement la robustesse de l'algorithme de hachage global du NIST". boîte à outils. SHA-1 est largement utilisé et plus sécurisé que MD5, mais les cryptanalystes ont identifié des attaques à son encontre ; la famille SHA-2 améliore SHA-1, mais est vulnérable aux affrontements à partir de 2011; et la famille SHA-2 améliore SHA-1, mais est vulnérable aux affrontements. En conséquence, en 2012, un concours de conception de fonctions de hachage devait être organisé pour choisir une nouvelle norme nationale américaine, connue sous le nom de SHA-3. Le concours s'est terminé le 2 octobre 2012, lorsque le National Institute of Standards and Technology (NIST) a annoncé Keccak comme le nouvel algorithme de hachage SHA-3. Les fonctions de hachage cryptographique, contrairement aux chiffrements par bloc et par flux inversibles, fournissent une sortie hachée qui ne peut pas être utilisée pour récupérer les données d'entrée d'origine. Les fonctions de hachage cryptographique sont utilisées pour vérifier l'authenticité des données acquises à partir d'une source non fiable ou pour ajouter un degré de protection supplémentaire.
Primitives cryptographiques et cryptosystèmes
Une grande partie du travail théorique de la cryptographie se concentre sur les primitives cryptographiques - des algorithmes ayant des propriétés cryptographiques de base - et sur leur relation avec d'autres défis cryptographiques. Ces primitives de base sont ensuite utilisées pour créer des outils cryptographiques plus complexes. Ces primitives fournissent des qualités fondamentales qui sont utilisées pour créer des outils plus complexes appelés cryptosystèmes ou protocoles cryptographiques qui garantissent une ou plusieurs propriétés de sécurité de haut niveau. La frontière entre les primitives cryptographiques et les cryptosystèmes, en revanche, est arbitraire ; l'algorithme RSA, par exemple, est parfois considéré comme un cryptosystème et parfois comme une primitive. Les fonctions pseudo-aléatoires, les fonctions unidirectionnelles et d'autres primitives cryptographiques en sont des exemples courants.
Un système cryptographique, ou cryptosystème, est créé en combinant une ou plusieurs primitives cryptographiques pour créer un algorithme plus compliqué. Les systèmes cryptographiques (par exemple, le cryptage El-Gamal) sont destinés à fournir des fonctionnalités spécifiques (par exemple, le cryptage à clé publique) tout en garantissant certaines qualités de sécurité (par exemple, la sécurité CPA d'attaque en clair du modèle oracle choisi). Pour prendre en charge les qualités de sécurité du système, les cryptosystèmes utilisent les propriétés des primitives cryptographiques sous-jacentes. Un cryptosystème sophistiqué peut être généré à partir d'une combinaison de nombreux cryptosystèmes plus rudimentaires, car la distinction entre primitifs et cryptosystèmes est quelque peu arbitraire. Dans de nombreuses circonstances, la structure du cryptosystème comprend une communication aller-retour entre deux ou plusieurs parties dans l'espace (par exemple, entre l'expéditeur et le destinataire d'un message sécurisé) ou dans le temps (par exemple, entre l'expéditeur et le destinataire d'un message sécurisé) (par exemple, des données de sauvegarde protégées par cryptographie).
Pour vous familiariser en détail avec le programme de certification, vous pouvez développer et analyser le tableau ci-dessous.
Le programme de certification EITC/IS/CCF Classical Cryptography Fundamentals Certification fait référence à du matériel didactique en libre accès sous forme de vidéo. Le processus d'apprentissage est divisé en une structure étape par étape (programmes -> leçons -> sujets) couvrant les parties pertinentes du programme. Des conseils illimités avec des experts du domaine sont également fournis.
Pour plus de détails sur la procédure de certification, consultez Comment cela fonctionne.
Principales notes de cours
Comprendre la cryptographie par Christof Paar et Jan Pelzl, cours en ligne sous forme de diapositives PDF
https://www.crypto-textbook.com/slides.php
Comprendre la cryptographie par Christof Paar et Jan Pelzl, cours en ligne sous forme de vidéos
https://www.crypto-textbook.com/movies.php
Principale référence du livre de cryptographie classique
Comprendre la cryptographie par Christof Paar et Jan Pelzl
https://www.crypto-textbook.com/index.php
Référence supplémentaire du livre de cryptographie classique appliquée
Manuel de cryptographie appliquée par A. Menezes, P. van Oorschot et S. Vanstone :
https://cacr.uwaterloo.ca/hac/
https://www.amazon.com/exec/obidos/ISBN=0849385237/7181-7381933-595174
Téléchargez le matériel préparatoire complet d'auto-apprentissage hors ligne pour le programme EITC/IS/CCF Classical Cryptography Fundamentals dans un fichier PDF.
Matériel préparatoire EITC/IS/CCF – version standard
Documents préparatoires EITC/IS/CCF – version étendue avec questions de révision