La force du cryptage dépend principalement de la méthode de cryptage et de la complexité de la clé. La clé est un paramètre saisi lors de l’utilisation d’un algorithme cryptographique. Il s’agit d’un paramètre important qui détermine si le texte chiffré est sécurisé. Habituellement, plus la clé est longue, plus elle est difficile à déchiffrer.
L'environnement d'exploitation de ce tutoriel : système Windows 7, ordinateur Dell G3.
La force du cryptage dépend principalement de la méthode de cryptage et de la complexité de la clé.
Clé
Une clé est un paramètre qui est saisi lors de l'utilisation d'un algorithme de chiffrement. Le même texte brut produira différents textes chiffrés sous le même algorithme cryptographique et différents calculs de clé. De nombreux algorithmes cryptographiques bien connus sont publics et la clé est un paramètre important qui détermine si le texte chiffré est sécurisé. Généralement, plus la clé est longue, plus elle est difficile à déchiffrer. Par exemple, une clé de 8 bits peut être utilisée. à 256 situations. Utilisation médiocre Il peut être piraté très facilement. L'algorithme DES bien connu utilise une clé de 56 bits. Ce n'est plus un algorithme de cryptage sûr. La raison principale est que la clé de 56 bits est trop courte et peut être utilisée. être fissuré en quelques heures. Les clés sont divisées en clés symétriques et clés asymétriques.
Texte brut/texte chiffré
Le texte brut est les données d'origine avant le cryptage, et le texte chiffré est le résultat obtenu après l'opération de chiffrement pour devenir texte chiffré
Clé symétrique
Symétrique L'algorithme -key est également appelé chiffrement à clé partagée. La clé utilisée dans le processus de chiffrement et de déchiffrement de la clé symétrique est la même. Les algorithmes de chiffrement symétrique courants incluent DES, 3DES, AES, RC5 et RC6. L'avantage d'une clé symétrique est qu'elle est rapide à calculer, mais elle présente également des inconvénients. La clé doit être partagée aux deux extrémités de la communication, afin que chacun sache quelle est la clé afin que l'autre partie puisse la déchiffrer. correctement. Si tous les clients partagent la même clé, alors cette clé est comme une clé principale. Vous pouvez utiliser une clé pour déchiffrer le texte chiffré de chacun. Si chaque client et serveur conservent une clé distincte, le serveur devra alors gérer des milliers de clés. . Cela peut provoquer des cauchemars côté serveur.
Ce qui suit est un simple cryptage symétrique pour crypter le texte brut en ASCII.
# 加密的方式:在ASCII的基础上 + 密钥的值 def encipher(plain_text, key): # 加密 cipher_text = [] for c in plain_text: cipher_text.append(str(ord(c) + key)) return ' '.join(cipher_text) def decipher(cipher_text, key): # 解密 plain_text = [] for c in cipher_text.split(" "): plain_text.append(chr(int(c)+key)) return "".join(plain_text)if __name__ == '__main__': print "cipher_text:", encipher("abcdef", 0) print "plain_text:", decipher("97 98 99 100 101 102", 0)
Clé asymétrique
Clé asymétrique (cryptographie à clé publique), également connue sous le nom de cryptage à clé publique, le serveur générera une paire de clés et une clé privée est stockée sur le serveur. côté, il sait que l'autre est la clé publique, qui peut être librement libérée pour que quiconque puisse l'utiliser.
Le texte brut du client est chiffré avec la clé publique et le texte chiffré doit être déchiffré avec la clé privée. Les clés asymétriques utilisent des clés différentes dans les processus de cryptage et de déchiffrement. Le cryptage et le déchiffrement sont asymétriques, c'est ce qu'on appelle le cryptage asymétrique.
Par rapport au cryptage à clé symétrique, le cryptage asymétrique ne nécessite pas de partage de la clé entre le client et le serveur tant que la clé privée n'est envoyée à aucun utilisateur, même si la clé publique est interceptée en ligne. impossible. Pour le décryptage, seule la clé publique volée ne sert à rien. Le cryptage asymétrique courant est RSA. Le processus de cryptage et de déchiffrement asymétriques :
Le serveur génère la clé publique et la clé privée appariées
Private The. la clé est enregistrée sur le serveur et la clé publique est envoyée au client
Le client utilise la clé publique pour crypter le texte brut et le transmet au serveur
Le serveur l'utilise La clé privée décrypte le texte chiffré et obtient le texte en clair
Signature numérique
Lorsque les données sont transmises entre le navigateur et le serveur, il est possible qu'un voleur usurpant l'identité du contenu vole le contenu lors de la transmission Remplacé, alors comment s'assurer que les données sont envoyées par le serveur réel sans être transférées, et comment s'assurer que les données transmises n'ont pas été falsifiées. avec. Pour résoudre ces deux problèmes, les signatures numériques doivent être utilisées. Les signatures numériques sont comme dans la vie quotidienne. Tout comme la signature du contrat, une fois que votre nom est inscrit sur le contrat, il est légalement déterminé qu'il s'agit de votre signature. on peut l'imiter parce que c'est votre écriture exclusive. L'homme ne peut pas être créé.
Et alors, qu’en est-il des signatures numériques dans les ordinateurs ? Les signatures numériques sont utilisées pour vérifier si le contenu transmis correspond aux données envoyées par le serveur réel et si les données envoyées ont été falsifiées. Elles font ces deux choses et constituent un scénario d'application de cryptage asymétrique. Mais il utilise à la place la clé privée pour la chiffrer et la déchiffre via la clé publique correspondante.
Étape 1 : Le serveur traite le message via Hash pour générer les informations de résumé Digest. Les informations de résumé sont cryptées à l'aide de la clé privée pour générer une signature. Le serveur envoie la signature avec le message au client.
Étape 2 : Une fois que le client a reçu les données, il extrait la signature et la déchiffre avec la clé publique. Si Digest2 peut être déchiffré normalement, il peut être confirmé qu'il a été envoyé par l'autre partie.
Étape 3 : Le client extrait le texte du message et effectue le même processus de hachage. Les informations de résumé obtenues Digest1 sont comparées au Digist2 précédemment déchiffré. Si les deux sont égaux, cela signifie que le contenu n'a pas été falsifié. avec. sinon le contenu a été modifié. Car tant qu'il y aura un léger changement dans le contenu du texte, une information récapitulative complètement différente sera hachée.
Certificat numérique
Le certificat numérique est appelé CA. Il s'agit d'un certificat reconnu délivré par une organisation faisant autorité à un certain site Web. Ce certificat est reconnu par tout le monde (navigateurs). Pourquoi n'est-il pas nécessaire d'utiliser un certificat numérique ? suffisamment sûr pour avoir une signature numérique ?
Il existe une situation où le navigateur ne peut pas déterminer si tous les vrais serveurs sont réels. Voici un exemple simple : le fabricant A installe une serrure sur votre maison et vous donne la clé en même temps. la clé peut ouvrir la serrure, vous pouvez être sûr que la clé et la serrure correspondent. Si quelqu'un change la clé ou change la serrure et que vous ne pouvez pas ouvrir la porte, vous saurez qu'elle doit avoir été volée, mais si quelqu'un change la serrure Remplacez la clé par un autre jeu qui ressemble en surface, mais est de bien moins bonne qualité. Bien que la clé et la serrure correspondent, vous n'êtes pas sûr qu'elle vous soit réellement offerte par le fabricant A. À ce stade, vous peut contacter le contrôle qualité Laissez le département vérifier si cet ensemble de serrures provient réellement du fabricant A. Le service de contrôle qualité est une organisation faisant autorité, et ce qu'il dit peut être reconnu par le public (haha).
De même, car si quelqu'un (Zhang San) remplace la clé publique envoyée par le serveur réel au navigateur par sa propre clé publique, alors Zhang San utilise sa propre clé privée pour effectuer les mêmes étapes pour hacher le texte . Il n'y a rien de mal avec le résultat final de la signature numérique, mais en fait ce que le navigateur voit ne provient pas du serveur réel, mais a été modifié de l'intérieur vers l'extérieur (clé publique en clé privée).
Alors, comment vous assurer que la clé publique que vous utilisez actuellement est celle qui vous est envoyée par le vrai serveur ? Nous utilisons des certificats numériques pour résoudre ce problème. Les certificats numériques sont généralement émis par une autorité de certification numérique (Autorité de certification). Le certificat contient la clé publique du serveur réel et d'autres informations sur le site Web. L'autorité de certification numérique le crypte avec sa propre clé privée et l'envoie au navigateur. . Le navigateur utilise le certificat numérique. La clé publique de l'organisation est décryptée pour obtenir la clé publique du serveur réel. Ce processus s'appuie sur la clé publique obtenue auprès d'une autorité de certification reconnue par tous, c'est donc une méthode sûre.
Pour plus de connaissances liées à l'informatique, veuillez visiter la rubrique FAQ !
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!