Maison >Tutoriel système >Linux >Algorithmes de chiffrement historiques
Présentation | En tant que moyen de sécurité, les algorithmes de cryptage sont étroitement liés à la vie de la plupart d'entre nous. Tant que vous êtes en ligne, vous en bénéficierez, car tous les sites Web qui utilisent https utilisent déjà le protocole de cryptage TLS/SSL. Par conséquent, nous profitons tous passivement de la protection de la vie privée et de la sécurité des communications apportées par les algorithmes de cryptage. De plus, du niveau technologique de sécurité, de la couche réseau à la couche du fichier hôte, quelle que soit la couche d'application ou de protocole de cryptage qui se trouve derrière, elle est prise en charge par divers algorithmes de cryptage. |
Cet article tente de discuter du développement et de l'évolution de cet algorithme de cryptage qui est étroitement lié à notre vie en ligne de l'Antiquité à nos jours, ainsi que des algorithmes de cryptage à clé qui sont apparus un par un dans l'ensemble du processus et qui ont guidé tout le monde. pour comprendre cet algorithme intéressant qui se cache derrière.
La fonction principale de l'algorithme de cryptage est de convertir le texte brut en texte chiffré pour éviter les fuites d'informations. Le texte chiffré ressemble à des caractères tronqués, mais il ne s’agit pas de caractères tronqués. La plupart des caractères tronqués sont dus à un codage incohérent. Le codage n'appartient pas à l'algorithme de chiffrement, mais modifie uniquement le format d'affichage. Par exemple, base64 n'est qu'un encodage et ne peut pas garantir la sécurité du texte en clair. Quand j’entends parler du cryptage base64 à l’avenir, cela montre qu’ils ne sont pas professionnels.
L'algorithme de cryptage doit garantir les trois points suivants :
1. Confidentialité : assurez-vous que même si les données sont volées, le voleur ne saura pas de quoi il s'agit.
2. Intégrité : assurez-vous que même si les données sont détournées et modifiées pendant la transmission, le destinataire peut constater que les informations ont été interceptées et choisir de les remplacer.
3. Disponibilité : assurez-vous que la surcharge et la complexité de l'algorithme de chiffrement se situent dans la plage disponible.
Les algorithmes de chiffrement qui répondent aux exigences ci-dessus ont traversé une longue période de développement historique, depuis la cryptographie classique jusqu'à la cryptographie moderne.
Comment les peuples anciens chiffraient-ils ? 1. Le premier algorithme de cryptage de l'histoireMéthode alternative
Les premiers algorithmes de cryptage ont été principalement utilisés dans l'armée. Les premiers enregistrements d'algorithmes de cryptage dans l'histoire proviennent du « Yin Fu » et du « Yin Shu » dans le livre militaire de la dynastie Zhou « Six Tao. Long Tao ». Il enregistre :
Tai Gong a dit : « Le Seigneur et les généraux ont des talismans Yin, qui sont de huitième année. Le talisman pour vaincre l'ennemi mesure un pied de long. Le talisman pour vaincre l'armée et capturer le général mesure neuf pouces de long. Le talisman pour rendre la ville et gagner la ville mesure huit pouces de long. Le talisman utilisé pour signaler que l'ennemi est loin mesure sept pouces de long. Le talisman utilisé par la police pour défendre l'ennemi mesure six pouces de long. L'armée mesure quatre pouces de long. Si quelqu'un à qui le talisman est confié en entend parler et le signale, il sera puni. Le maître du 8ème talisman connaîtra le secret, de sorte que l'ennemi ne pourra pas révéler la sagesse de. les Chinois et les étrangers. »
Le roi Wu a demandé à Taigong : "... le talisman ne peut pas être compris ; nous sommes loin et ne pouvons pas nous comprendre avec des mots. Que peut-on faire ? Taigong a dit : " Si vous avez des affaires secrètes et des préoccupations sérieuses, vous devriez l'utiliser ? des livres au lieu de talismans. Le Seigneur laissera le livre au général et posera des questions dans le livre. Les livres sont tous combinés puis séparés, et les trois séparés sont divisés en trois parties. C'est ce qu'on appelle Yin Shu. Même si l'ennemi est sage et sage, personne ne peut le comprendre. "
En termes simples, les symboles Yin utilisent huit symboles de longueur égale pour exprimer différents messages et instructions. Il s'agit d'une méthode de substitution en cryptographie. En application, il convertit les informations en symboles que l'ennemi ne peut pas comprendre. significations critiques. En complément du Yin Talisman, Yin Shu utilise la méthode de division de texte pour diviser directement un texte en trois parties et l'envoie à la cible via trois canaux. L'ennemi ne peut le déchiffrer que s'il intercepte trois parties du contenu. en même temps.
Méthode Shift
Par coïncidence, les algorithmes de chiffrement sont également utilisés à grande échelle dans les guerres en Extrême-Occident. L'« Histoire » d'Hérodote rapporte qu'au cinquième siècle avant JC, les cités-états grecques et l'empire perse menaient fréquemment des guerres. Les cités-états grecques utilisaient largement la méthode de transfert pour crypter les informations de communication de guerre, ce qui rendait difficile pour l'empire perse d'obtenir des militaires. les renseignements de l’autre côté ne peuvent pas être déployés à l’avance. Chaque paragraphe de texte utilisé par les cités-États grecques pour transmettre des informations et des ordres militaires comporte un nombre fixe de mots, et la personne qui reçoit le secret aura en main une instruction de changement de texte. Une fois que le décrypteur a obtenu le texte chiffré, il le déchiffre selon les instructions de décalage et déchiffre l'ordre ou le message militaire.
Les mots de passe classiques utilisent principalement des méthodes de déplacement et de substitution. Parmi eux, la méthode de décalage consiste à déplacer le texte brut dans une direction fixe d'un nombre spécifique de bits. Par exemple, Je t'aime est décalé vers la droite de 4 bits et devient M pszi csy. Après un développement et une amélioration progressifs, le plus célèbre est le chiffre de César. Mais les lettres anglaises ou latines apparaissent de manière incohérente. Prenons l'exemple de l'alphabet anglais : la lettre e apparaît plus fréquemment que les autres lettres. Après avoir obtenu suffisamment d’échantillons de texte chiffré, la règle de décalage peut être trouvée avec précision grâce au calcul de fréquence pour déchiffrer le texte chiffré. Par conséquent, la plupart des chiffres de César utilisent la méthode de substitution pour définir une table de mappage texte brut-texte chiffré :
Cette méthode peut résoudre dans une certaine mesure le problème des clés exhaustives, mais elle reste impuissante face aux attaques fréquentielles avec de grandes quantités de données. Plus tard, ce mode a été développé pour s'appuyer sur l'introduction de certains paramètres spécifiques pour perturber la fréquence et augmenter la difficulté du décryptage.
Dans la période ultérieure de la cryptographie classique, une série de types de cryptographie tels que le chiffre Vigenère, ROT5/13/18/47 et le code Morse ont été développés. Mais ils reposent tous sur la méthode de substitution et la méthode de décalage, et la sécurité est principalement garantie par la non-divulgation de l'algorithme.
Un algorithme de cryptage plus scientifique pour les gens modernesLes algorithmes de chiffrement classiques sont essentiellement des changements dans les modèles linguistiques. Ce n'est qu'au milieu du 20e siècle que Shannon a publié l'article « Théorie de la communication des systèmes secrets », qui a marqué le déplacement des algorithmes de chiffrement vers les mathématiques appliquées. En conséquence, trois types d’algorithmes de chiffrement importants aujourd’hui ont progressivement émergé : le chiffrement asymétrique, le chiffrement symétrique et les algorithmes de hachage. Ces trois types d’algorithmes sont souvent utilisés en combinaison pour obtenir les meilleurs résultats.
1. Algorithme de cryptage symétriqueL'algorithme de chiffrement symétrique est l'un des algorithmes de chiffrement les plus utilisés. Les algorithmes couramment utilisés incluent l'algorithme DES, l'algorithme AES, l'algorithme 3DES, l'algorithme TDEA, l'algorithme Blowfish, l'algorithme RC5, l'algorithme IDEA, etc. Sa particularité est que les parties chargées du chiffrement et du déchiffrement utilisent la même clé pour le chiffrement et le déchiffrement. Selon différents principes, le chiffrement symétrique peut être grossièrement divisé en deux types : le chiffrement de flux et le chiffrement de bloc.
Cryptage de flux
Le chiffrement de flux est un type d'algorithme cryptographique symétrique qui chiffre le texte brut caractère par caractère et en conséquence. Le texte chiffré peut être obtenu en effectuant des opérations convenues sur le texte en clair et la clé bit par bit. Parmi les algorithmes de chiffrement de flux, RC4 et GSM sont les plus connus. Le modèle le plus simple est l'exemple de chiffrement de flux XOR, tel que :
Le principe du cryptage de flux est simple, mais sa structure algorithmique présente des faiblesses. Tant qu'un texte en clair partiel est divulgué, un attaquant peut facilement calculer la clé. De plus, comme elles sont cryptées petit à petit, même si un attaquant altère les données, la structure des données d'origine ne sera pas détruite, ce qui rendra difficile la détection des modifications par le destinataire. Bien que le chiffrement de flux soit rapide et efficace, il est moins sécurisé et n’est pas recommandé pour chiffrer des informations critiques.
Bloquer le cryptage
La mise en œuvre interne du chiffrement par blocs est beaucoup plus compliquée. Chaque bloc de chiffrement passera par au moins 16 cycles d'opérations. Les algorithmes représentatifs incluent DES et AES. Il est actuellement recommandé d'utiliser AES, DES n'est plus sûr.
DES
DES est une norme de chiffrement symétrique antérieure. Le noyau est principalement divisé en trois étapes : la permutation initiale, la fonction ronde et la permutation inverse. Elle était largement utilisée à cette époque. À mesure que les performances informatiques continuent de s’améliorer, le craquage par force brute du DES devient de plus en plus facile. Par conséquent, DES n’est plus sûr et a été progressivement remplacé par 3DES et AES au cours de la dernière décennie.
AES
AES a été analysé et démontré par de nombreuses parties et est actuellement largement utilisé dans le monde. Il s'agit de l'un des algorithmes de cryptage symétriques les plus sécurisés. Au cours de la dernière décennie, AES est devenu l’un des algorithmes les plus populaires pour le chiffrement à clé symétrique. Contrairement au DES, AES utilise un réseau de substitution-permutation plutôt que l'architecture Feistel.
La plupart des calculs AES sont effectués dans un domaine fini spécial. Le processus de cryptage fonctionne sur une matrice de 4 × 4 octets. Cette matrice est également appelée « état », et sa valeur initiale est un bloc de texte en clair. Lors du chiffrement, chaque cycle de chiffrement AES (sauf le dernier tour) se compose de 4 étapes :
AddRoundKey - Chaque octet de la matrice est XORé avec la clé ronde ; chaque sous-clé est générée par le schéma de génération de clé.
SubBytes - Remplacez chaque octet par l'octet correspondant à l'aide d'une table de recherche via une fonction de remplacement non linéaire.
ShiftRows - décale circulairement chaque colonne de la matrice.
MixColumns - Une opération qui mélange entièrement les lignes individuelles dans une matrice, en utilisant une transformation linéaire pour mélanger les quatre octets de chaque colonne. L'étape MixColumns est omise de la dernière boucle de chiffrement et remplacée par une autre ddRoundKey.
Mode de cryptage
AES et DES prennent tous deux en charge différents modes de cryptage en interne, et la sécurité et l'efficacité de chaque mode sont très différentes. Parmi les deux modes les plus courants, ECB et CBC, le mode ECB a une efficacité de cryptage élevée mais une faible sécurité. Le mode est le suivant :
Key crypte à chaque fois des blocs individuels, qui peuvent être facilement piratés par l'autre partie. Cependant, comme il n’existe aucune corrélation entre chaque module, il peut fonctionner simultanément, ce qui améliore considérablement l’efficacité du cryptage. En règle générale, ECB est 5 à 6 fois plus efficace en matière de chiffrement que CBC. Mais la CBC est plus élevée et plus sûre que la BCE. Le modèle est le suivant :
Chaque bloc de cryptage introduit un IV différent, qui nécessite une itération sur le bloc précédent pour enfin terminer l'ensemble du processus de cryptage. Étant donné que le IV de chaque bloc est lié au bloc de texte chiffré, le mode concurrent ne peut pas être utilisé et l'ensemble du processus doit être sérialisé. Si cela n'est pas dû à des exigences de performances extrêmement élevées, il est recommandé d'utiliser le mode CBC, plus sûr et plus fiable.
2. Algorithme de cryptage asymétriqueLa plus grande différence entre l'algorithme de chiffrement asymétrique et l'algorithme de chiffrement symétrique est que la clé de chiffrement et la clé de déchiffrement ne font plus qu'une. Cette méthode concerne principalement le modèle « plusieurs chiffreurs, un déchiffreur ». Un système à clé publique a donc émergé dans cette relation plusieurs-à-un. Une clé publique correspond à une clé privée. La clé publique est publique et tout expéditeur de données utilise la clé publique pour chiffrer les données, mais le contenu chiffré par la clé publique ne peut être déchiffré que par la clé privée. Les mathématiques sous-jacentes, de la décomposition de grands nombres aux problèmes de logarithme discret sur des courbes elliptiques complexes, sont très complexes. Les algorithmes de chiffrement asymétriques courants incluent l'algorithme DSA, l'algorithme RSA, l'algorithme Elgamal, l'algorithme sac à dos, l'algorithme Rabin, l'algorithme DH, l'algorithme ECC, etc. L'efficacité d'exécution des algorithmes de chiffrement asymétriques restreint l'application réelle de l'algorithme, de sorte que la plupart d'entre eux sont utilisés pour l'authentification d'identité et ne seront pas utilisés dans les communications.
3. Algorithme de hachageL'algorithme de hachage est également l'un des algorithmes de cryptage les plus courants. Il n'est pas utilisé pour la transmission de données, mais pour vérifier si les données ont été falsifiées afin d'empêcher les criminels de les falsifier. La caractéristique est que quelle que soit la longueur du texte original, il deviendra une chaîne de longueur fixe, qui ne peut être que cryptée mais pas déchiffrée (opération unidirectionnelle uniquement). Les algorithmes de hachage courants incluent MD5, SHA-1, SHA 224/256/512, etc. Il a été prouvé que les deux premiers ne sont plus sécurisés et il est recommandé d'utiliser des algorithmes hautement sécurisés tels que SHA 256/512.
Les algorithmes de cryptage ci-dessus ont été largement utilisés dans divers domaines.
Algorithme de cryptage de base de donnéesAvec le développement rapide du cloud et du big data, les bases de données migrent progressivement des environnements LAN sécurisés vers des cloud privés, voire publics. Lorsque les bases de données sont migrées vers le cloud, elles sont confrontées à des problèmes de sécurité plus graves. Les données clés sont stockées dans la base de données et il existe de nombreux risques de sécurité cachés dans les hôtes cloud. Par conséquent, le cryptage des bases de données cloud est devenu un bon remède pour résoudre les risques de sécurité.
Algorithme de cryptage symétriqueDifférent du cryptage de fichiers et du cryptage des communications, le cryptage de bases de données nécessite une attention particulière à l'expansion de l'algorithme de cryptage et a des exigences strictes sur les performances de l'algorithme de cryptage. En 2009, lorsqu'Anhua Jinhe développait des produits de chiffrement de bases de données, il a d'abord exclu l'algorithme de chiffrement de flux parmi les algorithmes symétriques. La raison en est que, bien que cet algorithme présente des avantages naturels en termes d'efficacité opérationnelle et de résolution de l'expansion des données, il présente des inconvénients dans certaines circonstances.
Afin d'améliorer l'efficacité du cryptage, certains fabricants de produits de sécurité nationaux utilisent encore cette méthode, mais les exigences de sécurité les plus élémentaires sont ignorées. Une approche plus sécurisée consiste à utiliser le chiffrement par blocs (AES) dans le chiffrement symétrique pour le traitement de chiffrement associé. Le chiffrement par blocs est hautement sécurisé et relativement sécurisé, mais il doit résoudre le problème d'expansion causé par les restrictions de taille des blocs de données. Cela nécessite de concevoir un plan d'utilisation suffisamment sophistiqué basé sur des situations ou des domaines spécifiques pour résoudre le problème d'expansion pour différents domaines ou types, et finalement former une solution parfaite de cryptage de base de données.
Algorithme de mot de passe domestiqueLes algorithmes cryptographiques constituent la technologie de base pour garantir la sécurité des informations et jouent un rôle essentiel dans la protection des secrets nationaux et des données de base dans diverses industries. En utilisant des systèmes d'algorithmes cryptographiques internationalement acceptés et des normes associées telles que 3DES, SHA-1 et RSA, il existe relativement. Gros risque pour la sécurité. Par conséquent, du point de vue de la sécurité nationale et de la stratégie à long terme, les agences d'État et les agences de réglementation compétentes ont proposé des exigences visant à promouvoir l'application et la mise en œuvre d'algorithmes secrets nationaux et à renforcer la sécurité et la contrôlabilité de l'industrie. À l'heure actuelle, face à la sélection et à l'évaluation par les utilisateurs des produits de cryptage de bases de données nationaux, un nombre considérable d'entre eux sont basés sur des algorithmes secrets nationaux. Ceci est très important pour les utilisateurs des secteurs connexes tels que le gouvernement, l'industrie militaire et la confidentialité. La sécurité de l’information doit être garantie. Pour éviter une dépendance excessive à l’égard des technologies et des produits étrangers, les algorithmes de chiffrement, en tant que technologies de sécurité clés, doivent être produits dans le pays.
Plus précisément, les algorithmes cryptographiques nationaux font référence aux algorithmes cryptographiques commerciaux nationaux reconnus par le Bureau cryptographique d'État. Par exemple, dans le domaine financier, les trois algorithmes publics SM2, SM3 et SM4 sont actuellement principalement utilisés. Prenons l'exemple de l'algorithme SM4 : l'algorithme de chiffrement par blocs SM4 est un algorithme de chiffrement symétrique par blocs conçu indépendamment dans mon pays. Il est utilisé pour mettre en œuvre des opérations de cryptage/déchiffrement des données afin de garantir la confidentialité des données et des informations. La condition de base pour garantir la sécurité d'un algorithme cryptographique symétrique est qu'il ait une longueur de clé suffisante. L'algorithme SM4 et l'algorithme AES ont la même longueur de bloc de 128 bits, il est donc plus sécurisé que l'algorithme 3DES.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!