1 00:00:00,000 --> 00:00:10,101 >> [Odtwarzanie muzyki] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Chcę realizować Vigenere, nieco bardziej 3 00:00:12,700 --> 00:00:14,710 zabezpieczyć szyfr niż Cezara. 4 00:00:14,710 --> 00:00:19,670 Plain text jest szyfrowane za pomocą ciąg zamiast liczby całkowitej. 5 00:00:19,670 --> 00:00:22,970 Każda postać w alfabetycznym zwykły tekst zostanie przesunięty o 6 00:00:22,970 --> 00:00:24,450 List w hasła. 7 00:00:24,450 --> 00:00:30,860 >> W tym przykładzie, słowo kluczowe ohai, O odpowiada przesunięciu 14, H, aby 8 00:00:30,860 --> 00:00:36,910 przesunięcie 7, A, przesunięcie 0; i przesunięcie 8. 9 00:00:36,910 --> 00:00:40,710 Jeśli z powodzeniem wdrożony Państwa Szyfr Cezara, to będzie miło 10 00:00:40,710 --> 00:00:43,510 ramy, z których może realizować Vigenère. 11 00:00:43,510 --> 00:00:47,140 Jak widać, prowadzenie Vigenère Szyfr z pojedynczego znaku jako 12 00:00:47,140 --> 00:00:51,830 kluczowe jest to samo jak szyfr Cezara. 13 00:00:51,830 --> 00:00:55,170 >> Te same kroki dotyczą Vigenère tak jak w Cezara. 14 00:00:55,170 --> 00:01:01,240 Hasło to druga linia poleceń Argument, więc masz do niego dostęp z argv1. 15 00:01:01,240 --> 00:01:05,400 Następnie należy sprawdzić, czy klucz Słowo to rzeczywiście wszystko w kolejności alfabetycznej. 16 00:01:05,400 --> 00:01:09,040 Oto gdzie jest alpha może się przydać. 17 00:01:09,040 --> 00:01:13,550 Jeśli masz ważne słowo, otrzymasz siły od użytkownika, a następnie 18 00:01:13,550 --> 00:01:15,820 jesteś gotowy, aby zaszyfrować. 19 00:01:15,820 --> 00:01:20,840 >> Wzór jest podobny szyfr Vigenere w Caesar wzoru, z wyjątkiem teraz k 20 00:01:20,840 --> 00:01:27,650 staje k indeks j, wskazując j-litera hasła. 21 00:01:27,650 --> 00:01:29,640 Chcę przejść przez ten proces. 22 00:01:29,640 --> 00:01:34,060 Kontaktując się chciał wysłać wiadomość do krach, lubię cię, ale tak nie jest 23 00:01:34,060 --> 00:01:35,190 żeby wszyscy wiedzieli. 24 00:01:35,190 --> 00:01:39,800 Więc używasz Vigenère szyfr z panda kluczowe, ponieważ dobrze, również 25 00:01:39,800 --> 00:01:41,160 jak pandy. 26 00:01:41,160 --> 00:01:47,140 >> Pierwszy list, I, zostanie przesunięty przez p, co daje x, 15 listów po I, 27 00:01:47,140 --> 00:01:52,850 bo 15 p jest 16 litera alfabetu. 28 00:01:52,850 --> 00:01:56,750 Kolejny list w postaci zwykłego tekstu jest miejsca, tak, że nie będzie się zmieniać. 29 00:01:56,750 --> 00:02:00,420 A Indeks słów kluczowych nie zmieni. 30 00:02:00,420 --> 00:02:05,440 >> Następnie kolejna litera w postaci zwykłego tekstu jest L, przesunięte o, która nie zmienia 31 00:02:05,440 --> 00:02:10,930 list zwykły tekst w ogóle, bo jest 0-gi litera alfabetu. 32 00:02:10,930 --> 00:02:14,980 Proces trwa, pogłębianie znaków hasła za każdym razem jest 33 00:02:14,980 --> 00:02:16,840 List w postaci zwykłego tekstu. 34 00:02:16,840 --> 00:02:21,850 Po raz ostatni list w hasła jest osiągnięty, kluczowe otacza i 35 00:02:21,850 --> 00:02:25,890 przesuwa się do następnego równinie List tekst przez p. 36 00:02:25,890 --> 00:02:27,170 X lvne Noh. 37 00:02:27,170 --> 00:02:29,180 Jak romantycznie. 38 00:02:29,180 --> 00:02:33,120 >> Tak więc biorąc pod uwagę charakter, jak można przekonwertować że w odpowiedni 39 00:02:33,120 --> 00:02:34,590 szyfrowania zmiany? 40 00:02:34,590 --> 00:02:37,870 Spróbuj porównać ASCII wartości do zmiany. 41 00:02:37,870 --> 00:02:41,530 Może znajdziesz relację między literami i ich 42 00:02:41,530 --> 00:02:44,550 indeks alfabetyczny używając ASCII matematyki. 43 00:02:44,550 --> 00:02:48,850 Czy można dodać lub odjąć jeden znak od drugiego, aby uzyskać 44 00:02:48,850 --> 00:02:51,630 Ci pożądany wynik? 45 00:02:51,630 --> 00:02:55,480 >> Pamiętaj, że zmiany w przypadku wielkich i małe litery są takie same. 46 00:02:55,480 --> 00:02:59,510 Więc może trzeba określić dwa podobnych wzorów do reprezentowania 47 00:02:59,510 --> 00:03:03,570 shift, jeden dla wielkich znaków hasła, a jeden 48 00:03:03,570 --> 00:03:06,510 dla małych liter jednego. 49 00:03:06,510 --> 00:03:10,630 >> Dalej, należy pamiętać, że zaliczki słów kluczowych tylko wtedy, gdy znak w 50 00:03:10,630 --> 00:03:13,520 plain text jest list i że zwykły przypadek 51 00:03:13,520 --> 00:03:16,020 Tekst musi być zachowana. 52 00:03:16,020 --> 00:03:20,280 Więc jeśli spojrzymy na formule Shift Vigenere istnieją dwa index 53 00:03:20,280 --> 00:03:22,880 zmienne, i oraz j. 54 00:03:22,880 --> 00:03:26,795 One śledzi pozycji w zwykły Tekst i inne stanowiska 55 00:03:26,795 --> 00:03:27,910 w hasła. 56 00:03:27,910 --> 00:03:32,960 Ale Twój zwykły tekst może być znacznie dłuższy niż słowa kluczowego, w takim przypadku 57 00:03:32,960 --> 00:03:38,290 Indeks słów kluczowych musi zawija na początku hasła. 58 00:03:38,290 --> 00:03:39,870 >> Jak to zrobić? 59 00:03:39,870 --> 00:03:43,740 Spójrzmy wstecz na operator modulo. 60 00:03:43,740 --> 00:03:47,280 Modulo jest definiowana jest reszta z dzielenia dwóch liczb. 61 00:03:47,280 --> 00:03:50,680 Ale to, co jest rzeczywiste praktyczne korzystać z modulo? 62 00:03:50,680 --> 00:03:54,340 >> Cóż, powiedzmy, że masz dużą grupę ludzie, i trzeba się podzielić na 63 00:03:54,340 --> 00:03:55,100 trzy grupy. 64 00:03:55,100 --> 00:03:59,500 Jednym ze sposobów na dzielenie ludzi na grupy jest mieć je odliczać. 65 00:03:59,500 --> 00:04:03,520 You numer grupy Grupy nr 1, 2 i 3. 66 00:04:03,520 --> 00:04:08,510 Pierwsza osoba powie, 1, następne 2, następne 3. 67 00:04:08,510 --> 00:04:12,860 Osoba po tym powie 1, bo nie grupa 4, oraz jest 68 00:04:12,860 --> 00:04:15,880 Ilość zaczyna się od tego. 69 00:04:15,880 --> 00:04:18,209 >> Możesz użyć modulo do zrobić to samo. 70 00:04:18,209 --> 00:04:22,680 Tym razem, grupy będą Grupa jest 0, 1, i 2. 71 00:04:22,680 --> 00:04:26,960 Pierwsza osoba, liczba 1 modulo 3, jest 1. 72 00:04:26,960 --> 00:04:29,830 Osoba 2 modulo 3 jest 2. 73 00:04:29,830 --> 00:04:32,460 Osoba 3 modulo 3 jest 0. 74 00:04:32,460 --> 00:04:38,470 Osoba 4 modulo 3 daje 1, a więc grupy można owinąć wokół. 75 00:04:38,470 --> 00:04:44,700 >> Więc jeśli wziąć indeks i Modulo że indeks w maksymalnym rozmiarze, 76 00:04:44,700 --> 00:04:49,820 Wynik nie będzie większa niż lub równej wielkości, co oznacza, że 77 00:04:49,820 --> 00:04:52,330 może zwiększyć indeks jako dużo, jak chcesz. 78 00:04:52,330 --> 00:04:57,400 I tak długo, jak Modulo indeksu przez jakiś numer, nie będzie uzyskać numer 79 00:04:57,400 --> 00:04:58,510 większa niż. 80 00:04:58,510 --> 00:05:04,500 Więc mamy 10 ludzi, a nie 5, a wszyscy oni są przydzielane do grup 81 00:05:04,500 --> 00:05:07,480 liczbę 0, 1 lub 2. 82 00:05:07,480 --> 00:05:11,680 >> Spróbuj zastosować to do owijania na Hasło, z wyjątkiem zamiast sortowania 83 00:05:11,680 --> 00:05:16,050 ludzi do numerów grup chcesz Indeks słów kluczowych, tak aby można 84 00:05:16,050 --> 00:05:19,080 uzyskać odpowiedni charakter do przesuwać bez przekraczania 85 00:05:19,080 --> 00:05:21,836 długość ciągu. 86 00:05:21,836 --> 00:05:24,790 Z tym, masz Vigenere szyfr. 87 00:05:24,790 --> 00:05:27,790 Nazywam się Zamyla, a to jest CS50. 88 00:05:27,790 --> 00:05:32,566