1 00:00:00,000 --> 00:00:10,101 >> [Prehrávanie hudby] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Poďme realizovať Vigenère, o niečo viac 3 00:00:12,700 --> 00:00:14,710 zabezpečiť šifru, ako Caesar. 4 00:00:14,710 --> 00:00:19,670 Obyčajný text zašifrovaný pomocou reťazec namiesto celé číslo. 5 00:00:19,670 --> 00:00:22,970 Každý abecedný znak obyčajný text posunutý 6 00:00:22,970 --> 00:00:24,450 písmeno kľúčového slova. 7 00:00:24,450 --> 00:00:30,860 >> V tomto príklade, kľúčové slovo Ohai, O zodpovedá posunu 14, H na 8 00:00:30,860 --> 00:00:36,910 posun 7, A, posun 0, a ja posunu 8. 9 00:00:36,910 --> 00:00:40,710 Ak ste úspešne realizovala svoj Caesarovho šifra, bude to pekné 10 00:00:40,710 --> 00:00:43,510 rámec, z ktorého môžu realizovať Vigenère. 11 00:00:43,510 --> 00:00:47,140 Ako môžete vidieť, beh Vigenère šifra s jedným charakteru ako 12 00:00:47,140 --> 00:00:51,830 Kľúčové slovo je to isté ako kód Caesar. 13 00:00:51,830 --> 00:00:55,170 >> Rovnaký postup platí pre Vigenère ako tomu bolo v Caesarovi. 14 00:00:55,170 --> 00:01:01,240 Kľúčové slovo je druhý príkazového riadka Argument, takže k nej pristupovať s argv1. 15 00:01:01,240 --> 00:01:05,400 Potom je potrebné overiť, že kľúč slovo je naozaj všetko, abecedný. 16 00:01:05,400 --> 00:01:09,040 Tu je miesto, kde je alfa môže prísť vhod. 17 00:01:09,040 --> 00:01:13,550 Ak máte platný kľúčové slovo, dostanete sila od užívateľa, a potom 18 00:01:13,550 --> 00:01:15,820 ste pripravení zašifrovať. 19 00:01:15,820 --> 00:01:20,840 >> Šifra Vigenère vzorec je podobný Caesar so vzorcami, s výnimkou teraz k 20 00:01:20,840 --> 00:01:27,650 sa k dolný index j, čo znamená, j-tý písmeno kľúčového slova. 21 00:01:27,650 --> 00:01:29,640 Poďme krok v rámci tohto procesu. 22 00:01:29,640 --> 00:01:34,060 Povedzme, že ste chceli poslať správu do havárie, mám ťa rád, ale nie 23 00:01:34,060 --> 00:01:35,190 Chcem, aby všetci vedeli. 24 00:01:35,190 --> 00:01:39,800 Takže použiť Vigenère kód s Kľúčové slovo panda, pretože, no, je tiež 25 00:01:39,800 --> 00:01:41,160 ako pandy. 26 00:01:41,160 --> 00:01:47,140 >> Prvý list, budem sa posunie podľa p, kedy X, 15 písmen čo som, 27 00:01:47,140 --> 00:01:52,850 pretože 15 p je 16. písmeno abecedy. 28 00:01:52,850 --> 00:01:56,750 Ďalšie písmeno vo formáte obyčajného textu je priestor, takže sa nemožno presúvať. 29 00:01:56,750 --> 00:02:00,420 A index kľúčového slova sa nezmení. 30 00:02:00,420 --> 00:02:05,440 >> Potom ďalšie písmeno vo formáte obyčajného textu je l, posunuté o, ktorá sa neposunie 31 00:02:05,440 --> 00:02:10,930 holý text listu vôbec, pretože je 0. písmeno abecedy. 32 00:02:10,930 --> 00:02:14,980 Tento proces pokračuje, postupujúci Kľúčové slovo znak zakaždým, keď je 33 00:02:14,980 --> 00:02:16,840 list v prostom texte. 34 00:02:16,840 --> 00:02:21,850 Po posledné písmeno v kľúčové slovo dosiahnuté, kľúčové slovo sa zalomia okolo a 35 00:02:21,850 --> 00:02:25,890 sa presunie do ďalšieho pláni Text List p. 36 00:02:25,890 --> 00:02:27,170 X lvne nôh. 37 00:02:27,170 --> 00:02:29,180 Ako romantické. 38 00:02:29,180 --> 00:02:33,120 >> Takže vzhľadom charakter, ako si previesť , Že do príslušnej 39 00:02:33,120 --> 00:02:34,590 Cipher posun? 40 00:02:34,590 --> 00:02:37,870 Skúste nákupný ASCII hodnoty k posunu. 41 00:02:37,870 --> 00:02:41,530 Možno u nás nájdeš vzťah medzi písmenami a ich 42 00:02:41,530 --> 00:02:44,550 abecedný register pomocou ASCII matematiky. 43 00:02:44,550 --> 00:02:48,850 Môžete pridať alebo ubrať jeden znak z iného dostať 44 00:02:48,850 --> 00:02:51,630 ste požadovaný výsledok? 45 00:02:51,630 --> 00:02:55,480 >> Pamätajte si, že posuny pre veľká a malé písmená sú rovnaké. 46 00:02:55,480 --> 00:02:59,510 Takže možno budete musieť identifikovať dva podobných vzorcov predstavujú 47 00:02:59,510 --> 00:03:03,570 posun, jeden pre veľká Kľúčové slovo znak, a jeden 48 00:03:03,570 --> 00:03:06,510 na malé písmená jeden. 49 00:03:06,510 --> 00:03:10,630 >> Ďalej nezabudnite, že kľúčové slovo zálohy iba v prípade, že znak 50 00:03:10,630 --> 00:03:13,520 holý text je list, a že prípad prostý 51 00:03:13,520 --> 00:03:16,020 Text musí byť zachovaná. 52 00:03:16,020 --> 00:03:20,280 Takže ak sa pozrieme na vzorec pre Vigenère posun, sú tam dva index 53 00:03:20,280 --> 00:03:22,880 premenných i a j 54 00:03:22,880 --> 00:03:26,795 Jeden udržiava postavenie v obyčajný textu, a ďalšie pozície 55 00:03:26,795 --> 00:03:27,910 na kľúčové slovo. 56 00:03:27,910 --> 00:03:32,960 Ale tvoj holý text môže byť oveľa dlhšia než vaše kľúčové slovo, v tom prípade bude vaša 57 00:03:32,960 --> 00:03:38,290 Kľúčové slovo index musí pretočiť späť na začiatok kľúčového slova. 58 00:03:38,290 --> 00:03:39,870 >> Ako to robíte? 59 00:03:39,870 --> 00:03:43,740 Pozrime sa na modulo operátor. 60 00:03:43,740 --> 00:03:47,280 Modulo definovaný, zvyšok delenie dvoch čísel. 61 00:03:47,280 --> 00:03:50,680 Ale to, čo je skutočné praktické použitie modulo? 62 00:03:50,680 --> 00:03:54,340 >> No, povedzme, že máte veľkú skupinu ľudí, a vy potrebné rozdeliť do 63 00:03:54,340 --> 00:03:55,100 troch skupín. 64 00:03:55,100 --> 00:03:59,500 Jeden spôsob, ako rozdeliť ľudí do skupín je nechať odpočítavať. 65 00:03:59,500 --> 00:04:03,520 Tie počet skupín skupinu číslo 1, 2, a 3.. 66 00:04:03,520 --> 00:04:08,510 Prvý človek povie 1, ďalšie 2, 3 ďalšie. 67 00:04:08,510 --> 00:04:12,860 Osoba, po ktorej sa bude hovoriť: 1, pretože nie je skupina 4, a 68 00:04:12,860 --> 00:04:15,880 Počet začína znovu od tam. 69 00:04:15,880 --> 00:04:18,209 >> Môžete použiť modulo sa to isté. 70 00:04:18,209 --> 00:04:22,680 Tentoraz skupiny byť skupina 0, 1, 2 a 71 00:04:22,680 --> 00:04:26,960 Prvá osoba, číslo 1 modulo 3, 1. 72 00:04:26,960 --> 00:04:29,830 Osoba 2 modulo 3 je 2. 73 00:04:29,830 --> 00:04:32,460 Osoba 3 modulo 3 je 0. 74 00:04:32,460 --> 00:04:38,470 Osoba 4 modulo 3 je 1, a tak skupiny môže obtekať okolo. 75 00:04:38,470 --> 00:04:44,700 >> Takže ak budete mať index a Modulo že index o maximálnej veľkosti, 76 00:04:44,700 --> 00:04:49,820 Výsledkom bude nikdy byť väčšia alebo , Ktoré zodpovedá veľkosti, čo znamená, že 77 00:04:49,820 --> 00:04:52,330 môže zvýšiť index ako rovnako ako by ste chceli. 78 00:04:52,330 --> 00:04:57,400 A ako dlho budete modulo index nejaké číslo, nebudete získať rad 79 00:04:57,400 --> 00:04:58,510 väčšia, než je. 80 00:04:58,510 --> 00:05:04,500 Takže máme 10 ľudí, miesto 5 a všetci by sa zaradené do skupín 81 00:05:04,500 --> 00:05:07,480 číslo 0, 1, alebo 2. 82 00:05:07,480 --> 00:05:11,680 >> Snažte sa aplikovať na balenie po kľúčové slovo, okrem namiesto triedenie 83 00:05:11,680 --> 00:05:16,050 ľudí do skupín čísiel chcete Index kľúčových slov, takže si môžete 84 00:05:16,050 --> 00:05:19,080 ten správny znak pre prejsť bez prekročenia 85 00:05:19,080 --> 00:05:21,836 dĺžka reťazca. 86 00:05:21,836 --> 00:05:24,790 S tým, máte Vigenère šifra. 87 00:05:24,790 --> 00:05:27,790 Volám sa Zamyla, a to je CS50. 88 00:05:27,790 --> 00:05:32,566