1 00:00:00,000 --> 00:00:10,101 >> [Musik spielt] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Lassen Sie implementieren Vigenere, eine etwas 3 00:00:12,700 --> 00:00:14,710 sichern als Caesar-Chiffre. 4 00:00:14,710 --> 00:00:19,670 Der Klartext wird verschlüsselt mit ein String anstelle eines Integer. 5 00:00:19,670 --> 00:00:22,970 Jeder Charakter in alphabetischer Klartext wird durch eine verschobene 6 00:00:22,970 --> 00:00:24,450 Schreiben in das Schlüsselwort. 7 00:00:24,450 --> 00:00:30,860 >> In diesem Beispiel ist das Schlüsselwort ohai, O entspricht einer Verschiebung von 14 H, ein 8 00:00:30,860 --> 00:00:36,910 Verschiebung von 7; A, Verschiebung 0; und ich eine Verschiebung von 8. 9 00:00:36,910 --> 00:00:40,710 Wenn Sie schon erfolgreich umgesetzt Ihre Caesar-Chiffre, es wird ein schöner sein 10 00:00:40,710 --> 00:00:43,510 Rahmen, aus dem Sie kann Vigenere umzusetzen. 11 00:00:43,510 --> 00:00:47,140 Wie Sie sehen können, läuft ein Vigenere Chiffre mit einem Zeichen als 12 00:00:47,140 --> 00:00:51,830 Stichwort ist die gleiche Sache als Caesar-Chiffre. 13 00:00:51,830 --> 00:00:55,170 >> Die gleichen Schritte gelten für Vigenere wie sie in Caesar tat. 14 00:00:55,170 --> 00:01:01,240 Das Schlüsselwort ist die zweite Befehlszeile Argument, so dass Sie darauf zugreifen mit argv1. 15 00:01:01,240 --> 00:01:05,400 Dann brauchen Sie, um zu überprüfen, dass der Schlüssel Wort ist in der Tat alle alphabetisch. 16 00:01:05,400 --> 00:01:09,040 Hier ist, wo ist alpha kann sich als nützlich erweisen. 17 00:01:09,040 --> 00:01:13,550 Wenn Sie eine gültige Schlüsselwort haben, erhalten Sie die Stärke von dem Benutzer, und 18 00:01:13,550 --> 00:01:15,820 Sie sind bereit zu verschlüsseln. 19 00:01:15,820 --> 00:01:20,840 >> Die Vigenère-Chiffre Formel ist ähnlich Caesar Formel, außer jetzt k 20 00:01:20,840 --> 00:01:27,650 wird k Index j, was die j-te Anfangsbuchstaben des gesuchten Stichworts. 21 00:01:27,650 --> 00:01:29,640 Lassen Sie uns durch diesen Prozess fort. 22 00:01:29,640 --> 00:01:34,060 Angenommen, Sie möchten eine Nachricht an Ihre Nachricht Crash, ich mag dich, aber du nicht 23 00:01:34,060 --> 00:01:35,190 wollen, dass jeder zu wissen. 24 00:01:35,190 --> 00:01:39,800 So verwenden Sie eine Vigenère-Chiffre mit dem Stichwort panda, weil, na ja, Sie auch 25 00:01:39,800 --> 00:01:41,160 mag Pandas. 26 00:01:41,160 --> 00:01:47,140 >> Der erste Brief, I, werden verschoben von p, so dass x, 15 Buchstaben, nachdem ich, 27 00:01:47,140 --> 00:01:52,850 weil 15 p ist der 16. Buchstaben des Alphabets. 28 00:01:52,850 --> 00:01:56,750 Der nächste Buchstabe im Klartext ein Raum, so dass wird nicht verschoben werden. 29 00:01:56,750 --> 00:02:00,420 Und der Index der Stichwort wird sich nicht ändern. 30 00:02:00,420 --> 00:02:05,440 >> Dann der nächste Buchstabe im Klartext ist l durch eine verschobene, die sich nicht verschieben kann 31 00:02:05,440 --> 00:02:10,930 der Klartext Brief überhaupt, weil a ist der 0-te Buchstabe des Alphabets. 32 00:02:10,930 --> 00:02:14,980 Der Prozess wird fortgesetzt, die Förderung der Stichwort Charakter jedes Mal gibt es eine 33 00:02:14,980 --> 00:02:16,840 Buchstaben im Klartext. 34 00:02:16,840 --> 00:02:21,850 Sobald der letzte Buchstabe in der Keyword erreicht hat, wickelt das Schlüsselwort um und 35 00:02:21,850 --> 00:02:25,890 wonach die nächste Ebene Text Schreiben p. 36 00:02:25,890 --> 00:02:27,170 X lvne noh. 37 00:02:27,170 --> 00:02:29,180 Wie romantisch. 38 00:02:29,180 --> 00:02:33,120 >> So ein Zeichen gegeben, wie Sie konvertieren dass in die entsprechende 39 00:02:33,120 --> 00:02:34,590 Chiffre Verschiebung? 40 00:02:34,590 --> 00:02:37,870 Versuchen Vergleich der ASCII Werte der Verschiebung. 41 00:02:37,870 --> 00:02:41,530 Vielleicht finden Sie eine Beziehung zwischen den Buchstaben und deren 42 00:02:41,530 --> 00:02:44,550 alphabetischer Index mit ASCII math. 43 00:02:44,550 --> 00:02:48,850 Können Sie addieren oder subtrahieren ein Zeichen voneinander um 44 00:02:48,850 --> 00:02:51,630 Sie das gewünschte Ergebnis? 45 00:02:51,630 --> 00:02:55,480 >> Beachten Sie, dass die Verschiebungen für Großbuchstaben und Kleinbuchstaben sind die gleichen. 46 00:02:55,480 --> 00:02:59,510 Also vielleicht müssen Sie zwei identifizieren ähnliche Formeln zur Darstellung des 47 00:02:59,510 --> 00:03:03,570 Verschiebung, eine für einen Groß- Stichwort Charakter, und ein 48 00:03:03,570 --> 00:03:06,510 für einen Kleinbuchstaben ein. 49 00:03:06,510 --> 00:03:10,630 >> Weiter zu beachten, dass die Keyword-Fortschritte nur wenn das Zeichen in 50 00:03:10,630 --> 00:03:13,520 Klartext ist ein Brief, und dass der Fall der Ebene 51 00:03:13,520 --> 00:03:16,020 Text muss bewahrt werden. 52 00:03:16,020 --> 00:03:20,280 Also, wenn wir uns die Formel für die Vigenere Verschiebung gibt es zwei Index 53 00:03:20,280 --> 00:03:22,880 Variablen, i und j. 54 00:03:22,880 --> 00:03:26,795 One verfolgt die Position im Klartext Text und das andere die Position 55 00:03:26,795 --> 00:03:27,910 in das Schlüsselwort. 56 00:03:27,910 --> 00:03:32,960 Aber Ihr Klartext kann viel mehr als Keyword, in diesem Fall Ihre 57 00:03:32,960 --> 00:03:38,290 Sachregister muss umschlingen zurück zu Beginn des Schlüsselwortes. 58 00:03:38,290 --> 00:03:39,870 >> Wie machst du das? 59 00:03:39,870 --> 00:03:43,740 Werfen wir einen Blick zurück auf die Modulo-Operator. 60 00:03:43,740 --> 00:03:47,280 Modulo definiert der Rest der Division zweier Zahlen. 61 00:03:47,280 --> 00:03:50,680 Aber was ist eine tatsächliche praktische Verwendung von Modulo? 62 00:03:50,680 --> 00:03:54,340 >> Nun, sagen, Sie haben eine große Gruppe von Menschen, und Sie müssen sich zu teilen in 63 00:03:54,340 --> 00:03:55,100 drei Gruppen. 64 00:03:55,100 --> 00:03:59,500 Ein Weg, um die Menschen in Gruppen einzuteilen ist, haben sie abzählen. 65 00:03:59,500 --> 00:04:03,520 Sie Anzahl der Gruppen Gruppe Nummer 1, 2 und 3. 66 00:04:03,520 --> 00:04:08,510 Die erste Person wird sagen: 1 die nächsten 2, die nächsten 3. 67 00:04:08,510 --> 00:04:12,860 Die Person, die nach 1 wird sagen, weil es nicht eine Gruppe 4 und die 68 00:04:12,860 --> 00:04:15,880 Zählung beginnt von dort über. 69 00:04:15,880 --> 00:04:18,209 >> Sie können Modulo zu bedienen dasselbe tun. 70 00:04:18,209 --> 00:04:22,680 Dieses Mal wird die Gruppen sein Gruppe 0, 1, und 2. 71 00:04:22,680 --> 00:04:26,960 Die erste Person, die Anzahl 1 modulo 3, 1 ist. 72 00:04:26,960 --> 00:04:29,830 Person 2 modulo 3 ist 2. 73 00:04:29,830 --> 00:04:32,460 Person 3 Modulo-3-0 ist. 74 00:04:32,460 --> 00:04:38,470 Person 4 modulo 3 gibt 1 usw. können die Gruppen herum wickeln. 75 00:04:38,470 --> 00:04:44,700 >> Also, wenn Sie nehmen einen Index und Modulo dieser Index durch eine maximale Größe, die 76 00:04:44,700 --> 00:04:49,820 Ergebnis ist niemals größer als oder gleich der Größe, was bedeutet, dass Sie 77 00:04:49,820 --> 00:04:52,330 kann der Index als erhöhen viel, wie Sie möchten. 78 00:04:52,330 --> 00:04:57,400 Und solange Sie die Modulo-Index eine Zahl, werden Sie nicht bekommen eine Reihe 79 00:04:57,400 --> 00:04:58,510 größer. 80 00:04:58,510 --> 00:05:04,500 So haben wir 10 Personen statt 5, und sie würden alle Gruppen zugewiesen bekommen 81 00:05:04,500 --> 00:05:07,480 Zahl 0, 1 oder 2 ist. 82 00:05:07,480 --> 00:05:11,680 >> Versuchen Sie, dies dem Wickeln über die Anwendung Stichwort, außer anstelle der Sortierung 83 00:05:11,680 --> 00:05:16,050 Menschen in Gruppe Zahlen Sie wollen, dass die Index des Schlüsselwort, so dass Sie 84 00:05:16,050 --> 00:05:19,080 die richtige Zeichen für die verschieben, ohne den 85 00:05:19,080 --> 00:05:21,836 Länge der Zeichenfolge. 86 00:05:21,836 --> 00:05:24,790 Damit haben Sie Ihre Vigenère-Chiffre. 87 00:05:24,790 --> 00:05:27,790 Mein Name ist Zamyla, und dies ist CS50. 88 00:05:27,790 --> 00:05:32,566