1 00:00:00,000 --> 00:00:10,101 >> [Muzikavimo] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA CHAN: Leiskite įgyvendinti Vigenere, šiek tiek daugiau 3 00:00:12,700 --> 00:00:14,710 užtikrinti šifravimo, nei ciesoriui. 4 00:00:14,710 --> 00:00:19,670 Paprastas tekstas užšifruota naudojant o sveikasis eilutę. 5 00:00:19,670 --> 00:00:22,970 Kiekviena abėcėlės raidė ir paprastas tekstas atitraukiama 6 00:00:22,970 --> 00:00:24,450 raidė raktinį žodį. 7 00:00:24,450 --> 00:00:30,860 >> Šiame pavyzdyje raktažodį ohai O atitinka 14 pamainą pagaminti; H 8 00:00:30,860 --> 00:00:36,910 perkelti iš 7; A pamaina 0, ir aš 8 pamainą. 9 00:00:36,910 --> 00:00:40,710 Jeigu jūs sėkmingai įgyvendino savo Cezario šifras, tai bus gražus 10 00:00:40,710 --> 00:00:43,510 sistema, iš kurios gali įgyvendinti Vigenere. 11 00:00:43,510 --> 00:00:47,140 Kaip matote, veikia Vigenere šifravimo su vienu budu 12 00:00:47,140 --> 00:00:51,830 Raktinis žodis yra tas pats kaip Cezario šifras. 13 00:00:51,830 --> 00:00:55,170 >> Tie patys veiksmai taikomi Vigenere kaip jie tai padarė Cezario. 14 00:00:55,170 --> 00:01:01,240 Raktažodis yra antra komandinės eilutės argumentas, kad jūs į jį su argv1. 15 00:01:01,240 --> 00:01:05,400 Tada jums reikia įsitikinti, kad pagrindinis Žodis iš tikrųjų visi abėcėlės. 16 00:01:05,400 --> 00:01:09,040 Štai kur yra alfa gali praversti. 17 00:01:09,040 --> 00:01:13,550 Jei turite galiojantį raktažodį, jūs gaunate stiprumas nuo vartotojo, ir tada 18 00:01:13,550 --> 00:01:15,820 būsite pasirengę šifruoti. 19 00:01:15,820 --> 00:01:20,840 >> Vigenere šifravimo formulė yra panašus Cezariui formulę, išskyrus dabar k 20 00:01:20,840 --> 00:01:27,650 tampa k indeksas j rodo, j-oji raidė raktinį žodį. 21 00:01:27,650 --> 00:01:29,640 Leiskite žingsnis per šį procesą. 22 00:01:29,640 --> 00:01:34,060 Pasakykite, kad norėjo siųsti žinutę į jūsų avarijos, man patinka, bet jūs neturite 23 00:01:34,060 --> 00:01:35,190 noriu visiems žinoti. 24 00:01:35,190 --> 00:01:39,800 Taigi jūs naudojate Vigenere šifravimo su raktažodis panda, nes, gerai, jūs taip pat 25 00:01:39,800 --> 00:01:41,160 patinka panda. 26 00:01:41,160 --> 00:01:47,140 >> Pirmoji raidė, aš, bus perkeltas P, suteikiant x, 15 raidžių po I 27 00:01:47,140 --> 00:01:52,850 nes 15 psl yra 16 abėcėlės raidė. 28 00:01:52,850 --> 00:01:56,750 Kita raidė lygumoje teksto erdvę, kad nebus perkelta. 29 00:01:56,750 --> 00:02:00,420 Ir raktažodį puslapis nesikeis. 30 00:02:00,420 --> 00:02:05,440 >> Tada kita raidė paprasto teksto l atitraukiama, kuris neperjungia 31 00:02:05,440 --> 00:02:10,930 teksto raidė ne visi, nes yra 0th abėcėlės raidė. 32 00:02:10,930 --> 00:02:14,980 Procesas tęsiasi, plečiant raktažodis simbolis kiekvieną kartą ten 33 00:02:14,980 --> 00:02:16,840 raidė paprastąjį tekstą. 34 00:02:16,840 --> 00:02:21,850 Kai paskutinis raidė raktažodis pasiekė, raktažodis kimba ir 35 00:02:21,850 --> 00:02:25,890 persikelia į kitą lygumoje tekstas laiškas p. 36 00:02:25,890 --> 00:02:27,170 X lvne Noh. 37 00:02:27,170 --> 00:02:29,180 Kaip romantiška. 38 00:02:29,180 --> 00:02:33,120 >> Taigi, atsižvelgiant į simbolį, kaip jums konvertuoti kad į atitinkamas 39 00:02:33,120 --> 00:02:34,590 šifras pamainą? 40 00:02:34,590 --> 00:02:37,870 Pabandykite palyginti ASCII vertės į pamainą. 41 00:02:37,870 --> 00:02:41,530 Gal galite surasti santykį tarp raidžių ir jų 42 00:02:41,530 --> 00:02:44,550 abėcėlinė rodyklė naudojant ASCII matematikos. 43 00:02:44,550 --> 00:02:48,850 Ar galite pridėti arba atimti vieną simbolį nuo kito gauti 44 00:02:48,850 --> 00:02:51,630 jums norimą rezultatą? 45 00:02:51,630 --> 00:02:55,480 >> Atminkite, kad už didžiąsias pokyčiai ir mažosios raidės yra tas pats. 46 00:02:55,480 --> 00:02:59,510 Taigi, galbūt jums reikia nustatyti du panašios formulės atstovauti 47 00:02:59,510 --> 00:03:03,570 pamainą, po vieną didžiąsias raktažodis pobūdžio, ir vienas 48 00:03:03,570 --> 00:03:06,510 už mažąsias vieną. 49 00:03:06,510 --> 00:03:10,630 >> Be to, atminkite, kad raktažodžių pažanga tik tada, kai personažas 50 00:03:10,630 --> 00:03:13,520 paprastas tekstas yra laiškas ir kad iš paprasto atveju 51 00:03:13,520 --> 00:03:16,020 tekstas turi būti išsaugota. 52 00:03:16,020 --> 00:03:20,280 Taigi, jei mes pažvelgti į formulę Vigenere perėjimas, yra du puslapis 53 00:03:20,280 --> 00:03:22,880 kintamieji, i ir j. 54 00:03:22,880 --> 00:03:26,795 Vienas stebi jo vieta paprastas teksto ir kita pozicija 55 00:03:26,795 --> 00:03:27,910 į raktinį žodį. 56 00:03:27,910 --> 00:03:32,960 Bet jūsų teksto gali būti daug ilgesnis nei raktažodį, tokiu atveju jūsų 57 00:03:32,960 --> 00:03:38,290 raktažodis puslapis turi apsukti atgal į žodį pradžioje. 58 00:03:38,290 --> 00:03:39,870 >> Kaip tai padaryti? 59 00:03:39,870 --> 00:03:43,740 Pažvelkime atgal modulį operatorius. 60 00:03:43,740 --> 00:03:47,280 Modulo apibrėžiama yra likusi dalijant du numerius. 61 00:03:47,280 --> 00:03:50,680 Bet kas tikrasis praktiškas naudoti pagal modulį? 62 00:03:50,680 --> 00:03:54,340 >> Na, tarkim, jūs turite didelę grupę žmonių, ir jums reikia padalinti į 63 00:03:54,340 --> 00:03:55,100 tris grupes. 64 00:03:55,100 --> 00:03:59,500 Vienas iš būdų skirstyti žmones į grupes yra turėti juos atskaityti. 65 00:03:59,500 --> 00:04:03,520 Jūs skaičiaus grupėse numeris 1, 2 ir 3. 66 00:04:03,520 --> 00:04:08,510 Pirmas žmogus sako 1, Kitą 2 savaitė 3. 67 00:04:08,510 --> 00:04:12,860 Asmuo, po to sako, 1, nes nėra 4 grupės, ir 68 00:04:12,860 --> 00:04:15,880 skaičius pradeda daugiau iš ten. 69 00:04:15,880 --> 00:04:18,209 >> Galite naudoti modulo į daryti tą patį. 70 00:04:18,209 --> 00:04:22,680 Šį kartą grupės bus BE Group 0, 1 ir 2. 71 00:04:22,680 --> 00:04:26,960 Pirmasis asmuo, skaičius 1 moduliu 3 1. 72 00:04:26,960 --> 00:04:29,830 Asmuo 2 moduliu 3 2. 73 00:04:29,830 --> 00:04:32,460 Asmuo 3 modulio 3 yra 0. 74 00:04:32,460 --> 00:04:38,470 Asmuo 4 moduliu 3 suteikia 1 ir tt grupės gali apsukti. 75 00:04:38,470 --> 00:04:44,700 >> Taigi, jei jūs imtis indeksą ir Modulo kad maksimalus jo dydis indeksas, 76 00:04:44,700 --> 00:04:49,820 rezultatas niekada nebus didesnis nei arba lygi dydžiui, o tai reiškia, kad jūs 77 00:04:49,820 --> 00:04:52,330 gali padidinti indekso kiek norite. 78 00:04:52,330 --> 00:04:57,400 Ir kaip ilgai, kaip jūs Modulo indeksą pagal kai skaičius, jūs negausite numerį 79 00:04:57,400 --> 00:04:58,510 didesnis nei. 80 00:04:58,510 --> 00:05:04,500 Taigi, mes turime 10 žmonių, o ne 5, o jie visi gauti skiriamas grupėms 81 00:05:04,500 --> 00:05:07,480 skaičius 0, 1 arba 2. 82 00:05:07,480 --> 00:05:11,680 >> Pabandykite taikyti šį vyniojimo daugiau raktažodis, išskyrus vietoj rūšiavimas 83 00:05:11,680 --> 00:05:16,050 žmonių į grupės numerį norite indeksas žodį, kad jūs galite 84 00:05:16,050 --> 00:05:19,080 gauti reikiamą simbolį perkelti neviršijant 85 00:05:19,080 --> 00:05:21,836 ilgis eilutę. 86 00:05:21,836 --> 00:05:24,790 Su tuo, jūs turite savo Vigenere šifras. 87 00:05:24,790 --> 00:05:27,790 Mano vardas Zamyla, ir tai yra CS50. 88 00:05:27,790 --> 00:05:32,566