Chiffre - Cipher

Edward Larsson de chiffre rune ressemblant à celles auxquelles le Kensington Runestone . Comprend également un style d'écriture de lettre noire et un chiffrement pigpen sans rapport avec les runes .

En cryptographie , un chiffre (ou chiffré ) est un algorithme pour effectuer le chiffrement ou le déchiffrement -a série d'étapes bien définies qui peuvent être suivies en tant que procédure. Un autre terme, moins courant, est le chiffrement . Chiffrer ou coder, c'est convertir des informations en chiffre ou en code. Dans le langage courant, « chiffrer » est synonyme de « code », car ce sont tous deux un ensemble d'étapes qui cryptent un message ; cependant, les concepts sont distincts en cryptographie, en particulier en cryptographie classique .

Les codes remplacent généralement des chaînes de caractères de longueur différente dans la sortie, tandis que les chiffrements remplacent généralement le même nombre de caractères que ceux entrés. Il existe des exceptions et certains systèmes de chiffrement peuvent utiliser un peu plus ou moins de caractères lors de la sortie par rapport au nombre entré.

Codes opérés par substitution selon un grand livre de codes qui reliait une chaîne aléatoire de caractères ou de nombres à un mot ou à une phrase. Par exemple, « UQJHSE » pourrait être le code pour « Procéder aux coordonnées suivantes ». Lors de l'utilisation d'un chiffrement, les informations d'origine sont appelées texte en clair et la forme chiffrée est appelée texte chiffré . Le message chiffré contient toutes les informations du message en clair, mais n'est pas dans un format lisible par un humain ou un ordinateur sans le mécanisme approprié pour le déchiffrer.

Le fonctionnement d'un chiffrement dépend généralement d'une information auxiliaire, appelée clé (ou, dans le jargon traditionnel de la NSA , une cryptovariable ). La procédure de cryptage varie en fonction de la clé, ce qui modifie le fonctionnement détaillé de l'algorithme. Une clé doit être sélectionnée avant d'utiliser un chiffrement pour crypter un message. Sans connaissance de la clé, il devrait être extrêmement difficile, voire impossible, de déchiffrer le texte chiffré résultant en un texte clair lisible.

La plupart des chiffrements modernes peuvent être classés de plusieurs manières

  • Selon qu'ils fonctionnent sur des blocs de symboles généralement de taille fixe ( chiffrements par bloc ), ou sur un flux continu de symboles ( chiffrements de flux ).
  • Selon que la même clé est utilisée à la fois pour le chiffrement et le déchiffrement ( algorithmes à clé symétrique ) ou si une clé différente est utilisée pour chacun ( algorithmes à clé asymétrique ). Si l'algorithme est symétrique, la clé doit être connue du destinataire et de l'expéditeur et de personne d'autre. Si l'algorithme est asymétrique, la clé de chiffrement est différente mais étroitement liée à la clé de déchiffrement. Si une clé ne peut être déduite de l'autre, l'algorithme à clé asymétrique possède la propriété clé publique/privée et l'une des clés peut être rendue publique sans perte de confidentialité.

Étymologie

Le système de numération romain était très lourd, en partie parce qu'il n'y avait pas de concept de zéro. Le système de numération arabe s'est répandu du monde arabe à l'Europe au Moyen Âge . Dans cette transition, le mot arabe pour zéro صفر ( SIFR ) a été adopté en latin médiéval comme Cifra , puis en Moyen - français comme CIFRE . Cela a finalement conduit au mot anglais chiffrement (orthographe minorité Cypher ). Une théorie expliquant comment le terme en est venu à désigner l'encodage est que le concept de zéro était déroutant pour les Européens, et donc le terme en est venu à désigner un message ou une communication qui n'était pas facilement compris.

Le terme de chiffrement a également été utilisé plus tard pour désigner n'importe quel chiffre arabe, ou pour un calcul les utilisant, de sorte que l'encodage de texte sous forme de chiffres arabes convertit littéralement le texte en "chiffres".

Versus codes

Dans un usage non technique, un " code (secret) " signifie généralement un "chiffre". Dans les discussions techniques, cependant, les mots "code" et "cipher" font référence à deux concepts différents. Les codes fonctionnent au niveau du sens, c'est-à-dire que les mots ou les phrases sont convertis en quelque chose d'autre et ce découpage raccourcit généralement le message.

Un exemple en est le code télégraphique commercial qui a été utilisé pour raccourcir les longs messages télégraphiques résultant de la conclusion de contrats commerciaux utilisant des échanges de télégrammes .

Un autre exemple est donné par les chiffrements de mots entiers, qui permettent à l'utilisateur de remplacer un mot entier par un symbole ou un caractère, un peu comme la façon dont les japonais utilisent les caractères Kanji (japonais) pour compléter leur langue. ex "Le renard brun vif saute par dessus le chien paresseux" devient "Le brun vif 狐 saute 上 le paresseux 犬".

Les chiffrements, en revanche, fonctionnent à un niveau inférieur : le niveau des lettres individuelles, des petits groupes de lettres ou, dans les schémas modernes, des bits individuels et des blocs de bits. Certains systèmes utilisaient à la fois des codes et des chiffrements dans un seul système, en utilisant le surchiffrement pour augmenter la sécurité. Dans certains cas, les termes codes et chiffrements sont également utilisés comme synonymes de substitution et de transposition.

Historiquement, la cryptographie était divisée en une dichotomie de codes et de chiffrements ; et le codage avait sa propre terminologie, analogue à celle des chiffrements : " encoding , codetext , decoding " et ainsi de suite.

Cependant, les codes présentent divers inconvénients, notamment la susceptibilité à la cryptanalyse et la difficulté de gérer un livre de codes encombrant . Pour cette raison, les codes sont tombés en désuétude dans la cryptographie moderne, et les chiffrements sont la technique dominante.

Les types

Il existe différents types de cryptage. Les algorithmes utilisés plus tôt dans l' histoire de la cryptographie sont considérablement différents des méthodes modernes, et les chiffrements modernes peuvent être classés selon leur mode de fonctionnement et selon qu'ils utilisent une ou deux clés.

Historique

Les chiffres historiques au stylo et au papier utilisés dans le passé sont parfois appelés chiffrements classiques . Ils comprennent des chiffrements de substitution simples (tels que ROT13 ) et des chiffrements de transposition (tels qu'un Rail Fence Cipher ). Par exemple, "GOOD DOG" peut être chiffré en "PLLX XLP" où "L" remplace "O", "P" pour "G" et "X" pour "D" dans le message. La transposition des lettres « GOOD DOG » peut aboutir à « DGOGDOO ». Ces chiffrements et exemples simples sont faciles à déchiffrer, même sans paires de texte clair-texte chiffré.

Les chiffrements simples ont été remplacés par des chiffrements de substitution polyalphabétiques (comme le Vigenère ) qui ont changé l'alphabet de substitution pour chaque lettre. Par exemple, « GOOD DOG » peut être crypté en tant que « PLSX TWF » où « L », « S » et « W » remplacent « O ». Avec même une petite quantité de texte en clair connu ou estimé, les chiffrements de substitution polyalphabétiques simples et les chiffrements de transposition de lettres conçus pour le cryptage du stylo et du papier sont faciles à déchiffrer. Il est cependant possible de créer un code papier et stylo sécurisé basé sur un bloc à usage unique , mais les inconvénients habituels des blocs à usage unique s'appliquent.

Au début du XXe siècle, des machines électromécaniques ont été inventées pour effectuer le cryptage et le décryptage en utilisant la transposition, la substitution polyalphabétique et une sorte de substitution "additive". Dans les machines à rotor , plusieurs disques de rotor ont fourni une substitution polyalphabétique, tandis que les cartes de connexion ont fourni une autre substitution. Les clés ont été facilement changées en changeant les disques du rotor et les fils du panneau de connexion. Bien que ces méthodes de cryptage étaient plus complexes que les schémas précédents et nécessitaient des machines pour crypter et décrypter, d'autres machines telles que la British Bombe ont été inventées pour déchiffrer ces méthodes de cryptage.

Moderne

Les méthodes de cryptage modernes peuvent être divisées selon deux critères : par type de clé utilisée et par type de données d'entrée.

Par type de clé utilisée, les chiffrements sont divisés en :

Dans un algorithme à clé symétrique (par exemple, DES et AES ), l'expéditeur et le destinataire doivent avoir une clé partagée configurée à l'avance et gardée secrète de toutes les autres parties ; l'expéditeur utilise cette clé pour le cryptage et le récepteur utilise la même clé pour le décryptage. Le chiffrement de Feistel utilise une combinaison de techniques de substitution et de transposition. La plupart des algorithmes de chiffrement par bloc sont basés sur cette structure. Dans un algorithme à clé asymétrique (par exemple, RSA ), il existe deux clés distinctes : une clé publique est publiée et permet à n'importe quel expéditeur d'effectuer le chiffrement, tandis qu'une clé privée est gardée secrète par le destinataire et permet uniquement à cette personne d'effectuer un déchiffrement correct.

Les chiffrements peuvent être distingués en deux types par le type de données d'entrée :

Taille de la clé et vulnérabilité

Dans une attaque mathématique pure (c'est-à-dire sans aucune autre information pour aider à casser un chiffre), deux facteurs comptent avant tout :

  • Puissance de calcul disponible, c'est-à-dire la puissance de calcul qui peut être appliquée au problème. Il est important de noter que les performances/capacités moyennes d'un seul ordinateur ne sont pas le seul facteur à prendre en compte. Un adversaire peut utiliser plusieurs ordinateurs à la fois, par exemple, pour augmenter considérablement la vitesse de recherche exhaustive d'une clé (c'est-à-dire une attaque par « force brute »).
  • Taille de la clé , c'est-à-dire la taille de la clé utilisée pour crypter un message. À mesure que la taille de la clé augmente, la complexité de la recherche exhaustive augmente au point où il devient impossible de déchiffrer directement le chiffrement.

Étant donné que l'effet souhaité est la difficulté de calcul, en théorie, on choisirait un algorithme et le niveau de difficulté souhaité, et déciderait ainsi de la longueur de la clé en conséquence.

Un exemple de ce processus peut être trouvé à Key Length qui utilise plusieurs rapports pour suggérer qu'un chiffrement symétrique avec 128 bits , un chiffrement asymétrique avec 3072 bits clés et un chiffrement à courbe elliptique avec 512 bits, tous ont des difficultés similaires à l'heure actuelle.

Claude Shannon a prouvé, en utilisant des considérations de théorie de l'information, que tout chiffre théoriquement incassable doit avoir des clés qui sont au moins aussi longues que le texte en clair, et utilisées qu'une seule fois : pad unique .

Voir également

Remarques

Les références

Liens externes