Jusqu'à la fin du semestre, étudiez pour les devoirs sur l'introduction à la sécurité de l'information. Il m'est arrivé de rencontrer l'algorithme Playfair et l'algorithme Hill dans les algorithmes de cryptographie classiques. C'était intéressant de les implémenter en langage JavaScript. J'ai vérifié Baidu pendant le codage, et en passant, j'ai appris les bases de JavaScript.
foire aux jeux
Le chiffre Playfair (anglais : chiffre Playfair ou carré Playfair) est un chiffre de remplacement. Il est rédigé à partir d'un tableau de mots de passe composé d'un carré de 5*5, avec 25 lettres disposées dans le tableau. Pour les 26 lettres de l’anglais, le Z le plus couramment utilisé est supprimé pour former un tableau de mots de passe.
Idées de mise en œuvre :
1. Préparer le tableau des mots de passe
La clé est un mot ou une phrase, et le tableau des mots de passe est compilé en fonction de la clé donnée par l'utilisateur. S'il y a des lettres répétées, les lettres répétées suivantes peuvent être supprimées.
Si la clé est un chien fou, elle peut être compilée dans
C
|
O
|
H
|
M
|
T
|
R
|
G
|
Je
|
N
|
U
|
A
|
B
|
J
|
P
|
V
|
Y
|
E
|
K
|
Q
|
W
|
D
|
F
|
L
|
S
|
X
|
Considérez la nécessité de supprimer les caractères en double et Z lors de l'insertion de caractères clés dans la table des mots de passe. L'algorithme de conception est le suivant :
2. Organiser le texte brut
Formez une paire toutes les deux lettres du texte brut. S'il y a deux lettres identiques côte à côte dans une paire ou si la dernière lettre est une seule lettre, insérez un X. Le codage initial n’était pas réfléchi et l’utilisateur refusait avec force de saisir un nombre impair de lettres, ce qui entraînait une mauvaise expérience utilisateur.
var k = document.getElementById("keychars").value.toUpperCase().replace(/s/ig,'');
Supprimez les espaces et convertissez le texte brut en majuscules.
3. Écrivez le texte chiffré
Règles de cryptage en texte brut (de Baidu) :
1) Si p1 et p2 sont sur la même ligne, les textes chiffrés correspondants c1 et c2 sont les lettres immédiatement à droite de p1 et p2. La première colonne est considérée comme étant à droite de la dernière colonne. Par exemple, d'après le tableau précédent, ct correspond à oc
2) Si p1 et p2 sont dans la même colonne, les textes chiffrés correspondants c1 et c2 sont les lettres immédiatement en dessous de p1 et p2. La première ligne est considérée comme située en dessous de la dernière ligne.
3) Si p1 et p2 ne sont pas dans la même ligne ou colonne, alors c1 et c2 sont les lettres dans les deux autres coins du rectangle déterminés par p1 et p2 (comme pour un remplacement horizontal ou un remplacement vertical, vous devez prendre rendez-vous en avancez ou essayez-le vous-même). D'après le tableau précédent, wh correspond à tk ou kt.
Par exemple, selon le tableau ci-dessus, le texte clair là où il y a la vie, il y a l'espoir.
Il peut être organisé comme là où est la vie dans chaque magasin
Alors le texte chiffré est : kt yg wo ok gy nl hj de cm yg kg lm mb wf
Convertissez le texte chiffré en lettres majuscules et disposez les lettres en groupes.
Par exemple, un groupe de 5 est KTYGW OOKGY NLHJO FCMYG KGLMM BWF
4. Décryptage
La clé est remplie dans une matrice 5*5 (en supprimant les lettres répétées et la lettre z). Les autres lettres inutilisées dans la matrice sont remplies dans les positions restantes de la matrice dans l'ordre. Le texte en clair est obtenu à partir du texte chiffré selon la matrice de remplacement. . Faites le contraire.
L'effet est comme indiqué sur la figure :
colline
Hill Password est un chiffrement de substitution qui utilise les principes de la théorie matricielle de base. Il est rédigé à partir d'un tableau de mots de passe composé d'un carré de 5*5, avec 25 lettres disposées dans le tableau. Pour les 26 lettres de l’anglais, le Z le plus couramment utilisé est supprimé pour former un tableau de mots de passe.
Idées de mise en œuvre :
1, écris l'alphabet
var chars = ['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'];
2. Générez aléatoirement des clés
L'algorithme ci-dessus présente des défauts :
1. Conception orientée processus, couplage élevé
2. Il y a trop de boucles imbriquées et l'efficacité de l'algorithme doit être optimisée
3. Prise en compte inadéquate des situations possibles, comme le non-traitement lorsque l'utilisateur saisit des caractères non alphabétiques.
Résumé :
Après avoir étudié le cours Introduction à la sécurité de l'information pendant un certain temps, je ne peux qu'effleurer la surface de la sécurité de l'information. La sécurité de l'information est un sujet très intéressant. Lorsque vous rencontrez des problèmes, vous devez y réfléchir autant que possible, le faire autant que possible et l'appliquer autant que possible. Dans le même temps, il est également nécessaire de renforcer l'accumulation de fondements mathématiques, de consolider les fondements de js et d'élargir les connaissances. Le chemin à parcourir est long et ardu.