>> [Jouer de la musique]
>> ZAMYLA CHAN: Implémentons Vigenère, un peu plus
sécuriser chiffre de César.
Le texte en clair est chiffré à l'aide une chaîne de caractères à la place d'un nombre entier.
Chaque lettre de l'alphabet en texte en clair est décalé d'un
lettre dans le mot-clé.
>> Dans cet exemple, le mot-clé ohai, O correspond à un décalage de 14, H à une
passer de 7, A, changement de 0, et je un décalage de 8.
Si vous avez mis en place avec succès votre Le chiffre de César, ça va être une belle
cadre à partir duquel vous peut mettre en œuvre Vigenère.
Comme vous pouvez le voir, l'exécution d'un Vigenère chiffrement avec un caractère unique en tant que
mot-clé est la même chose comme chiffre César.
>> Les mêmes mesures s'appliquent à Vigenère comme ils le faisaient César.
Le mot-clé est la deuxième ligne de commande argumentation, si vous y accédez avec argv1.
Ensuite, vous devez vérifier que la clé mot est en effet tout alphabétique.
C'est là où est l'alpha peut être pratique.
Si vous avez un mot clé valide, vous obtenez l' la force de l'utilisateur, puis
vous êtes prêt à chiffrer.
>> La formule de chiffrement de Vigenère est similaire à la formule César, sauf que maintenant k
k devient indice j, indiquant la j-ème caractère du mot clé.
Revenons en à travers ce processus.
Dites que vous voulez envoyer un message à votre crash, je vous aime, mais vous n'avez pas
veux que chacun sache.
Donc, vous utilisez un chiffrement de Vigenère avec le mot-clé panda, parce que, eh bien, vous aussi
comme pandas.
>> La première lettre, I, sera décalée par p, ce qui donne x, 15 lettres après I,
parce que 15 p est le 16e lettre de l'alphabet.
La lettre suivante dans le texte en clair est un espace, de manière à ne pas être déplacé.
Et l'indice du mot-clé ne changera pas.
>> Ensuite, la lettre suivante en texte clair est l, décalée d'un, qui ne se déplace pas
la lettre du texte en clair du tout, parce que a est le 0ème lettre de l'alphabet.
Le processus se poursuit, en avançant l' caractère de mot chaque fois qu'il ya une
lettre dans le texte.
Une fois la dernière lettre du mot-clé est atteint, le mot-clé entoure et
se déplace vers le prochain plaine lettre du texte en p.
X lvne Noh.
Comme c'est romantique.
>> Donc, étant donné un caractère, comment voulez-vous convertir que dans le correspondant
chiffrer changement?
Essayez de comparer l'ASCII valeurs à la transition.
Peut-être que vous pouvez trouver une relation entre les lettres et leurs
index alphabétique en utilisant les mathématiques ASCII.
Pouvez-vous ajouter ou soustraire un caractère à partir de l'autre pour obtenir
vous le résultat désiré?
>> Rappelez-vous que les quarts de travail pour majuscule et minuscules sont les mêmes.
Alors peut-être que vous aurez besoin d'identifier deux formules similaires pour représenter le
changement, un pour une majuscule caractère de mot-clé, et une
pour un minuscule un.
>> Ensuite, n'oubliez pas que les mots clés avancées uniquement si le caractère en
texte en clair est une lettre et que le cas de la plaine
texte doit être préservée.
Donc, si nous regardons la formule de l' Vigenère changement, il ya deux index
variables i et j.
On garde une trace de la position dans la plaine texte, et l'autre la position
le mot-clé.
Mais votre texte simple peut être beaucoup plus longue de votre mot clé, dans ce cas, votre
index des mots clés doit envelopper retour au début de la clé.
>> Comment pouvez-vous faire cela?
Revenons à l' opérateur modulo.
Modulo est défini est le reste de la division de deux nombres.
Mais ce qui est une réelle pratique utiliser des modulo?
>> Eh bien, disons que vous avez un grand groupe de personnes, et vous avez besoin de se diviser en
trois groupes.
Une façon de diviser les gens en groupes est de les faire compter off.
Vous nombre du groupe des groupes numéro 1, 2, et 3.
La première personne va dire 1, la prochaine 2, les 3 suivants.
La personne qui va dire après 1, car il n'est pas un groupe 4, et l'
compte à rebours commence à partir de là.
>> Vous pouvez utiliser modulo faire la même chose.
Cette fois-ci, les groupes soit le groupe 0, 1, et 2.
La première personne, le nombre 1 modulo 3 vaut 1.
Personne 2 modulo 3 est 2.
Personne 3 modulo 3 est 0.
Personne 4 modulo 3 donne 1, et ainsi de les groupes peuvent s'enrouler autour.
>> Donc, si vous prenez un index et modulo que l'indice d'une taille maximale, le
résultat ne sera jamais supérieure ou égale à la taille, ce qui signifie que vous
peut augmenter l'indice de autant que vous le souhaitez.
Et tant que vous modulo l'index par un nombre, vous n'obtiendrez pas un certain nombre
plus grande que celle.
Donc nous avons 10 personnes au lieu de 5, et ils seraient tous se affectés à des groupes
nombre 0, 1, ou 2.
>> Essayez d'appliquer à emballant sur la mot-clé, sauf qu'au lieu de tri
personnes dans les numéros de groupe que vous voulez le index de la clé afin que vous puissiez
obtenir le bon caractère pour l' déplacer sans dépasser la
longueur de la chaîne.
Avec cela, vous avez votre Vigenère.
Mon nom est Zamyla, et c'est CS50.