1 00:00:00,000 --> 00:00:10,101 >> [Mūzikas atskaņošanas] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA Chan: Pieņemsim īstenot Vigenere, nedaudz 3 00:00:12,700 --> 00:00:14,710 nodrošināt šifru nekā ķeizaram. 4 00:00:14,710 --> 00:00:19,670 Teksta tiek šifrēta, izmantojot virkne, nevis veselam skaitlim. 5 00:00:19,670 --> 00:00:22,970 Katrs alfabēta rakstzīme teksta tiek nobīdīts 6 00:00:22,970 --> 00:00:24,450 burts atslēgvārdu. 7 00:00:24,450 --> 00:00:30,860 >> Šajā piemērā, atslēgvārds ohai, O atbilst maiņu 14, H 8 00:00:30,860 --> 00:00:36,910 novirzīt gada 7; A nobīdi 0, un es pāreju gada 8. 9 00:00:36,910 --> 00:00:40,710 Ja esat veiksmīgi īstenoti jūsu Cēzara šifra, tas būs jauki 10 00:00:40,710 --> 00:00:43,510 sistēmu, no kuras jūs var īstenot Vigenere. 11 00:00:43,510 --> 00:00:47,140 Kā jūs varat redzēt, darbojas Vigenere šifra ar vienu rakstzīmi kā 12 00:00:47,140 --> 00:00:51,830 atslēgvārds ir viens un tas pats kā Cēzara šifru. 13 00:00:51,830 --> 00:00:55,170 >> Tādi paši pasākumi attiecas uz Vigenere kā tas bija ķeizara. 14 00:00:55,170 --> 00:01:01,240 Atslēgvārds ir otrais komandrindas arguments, lai jūs tai piekļūt ar argv1. 15 00:01:01,240 --> 00:01:05,400 Tad jums ir nepieciešams, lai pārliecinātos, ka galvenais Vārds ir patiešām visi alfabēta. 16 00:01:05,400 --> 00:01:09,040 Te ir vieta, kur ir alfa var būt parocīgs. 17 00:01:09,040 --> 00:01:13,550 Ja jums ir derīga atslēgvārdu, jūs saņemsiet spēks no lietotāja, un pēc tam 18 00:01:13,550 --> 00:01:15,820 jūs esat gatavs, lai šifrēt. 19 00:01:15,820 --> 00:01:20,840 >> Vigenere šifra formula ir līdzīga līdz Caesar formulu, izņemot tagad k 20 00:01:20,840 --> 00:01:27,650 kļūst k apakšraksts j, norādot j-tais burts atslēgvārdu. 21 00:01:27,650 --> 00:01:29,640 Let 's soli cauri šim procesam. 22 00:01:29,640 --> 00:01:34,060 Say vēlaties nosūtīt ziņu uz jūsu crash, es tāpat kā jūs, bet jums nav 23 00:01:34,060 --> 00:01:35,190 gribam, lai ikviens zināt. 24 00:01:35,190 --> 00:01:39,800 Tātad jūs izmantojat Vigenere šifru, ar atslēgvārds panda, jo, labi, jūs arī 25 00:01:39,800 --> 00:01:41,160 patīk pandas. 26 00:01:41,160 --> 00:01:47,140 >> Pirmais burts, es, tiks novirzīti ar p, dodot x, 15 burtiem pēc I, 27 00:01:47,140 --> 00:01:52,850 jo 15 p ir 16. alfabēta burts. 28 00:01:52,850 --> 00:01:56,750 Nākamais burts teksta ir telpa, tā, ka netiek pārvietoti. 29 00:01:56,750 --> 00:02:00,420 Un indekss atslēgvārda nemainīsies. 30 00:02:00,420 --> 00:02:05,440 >> Tad nākamais burts vienkāršā tekstā ir l, nobīdīts, kas nepāriet 31 00:02:05,440 --> 00:02:10,930 teksta burtu vispār, jo ir 0. alfabēta burts. 32 00:02:10,930 --> 00:02:14,980 Process turpinās, padziļinot atslēgvārds raksturs katru reizi, kad tur 33 00:02:14,980 --> 00:02:16,840 burts teksta. 34 00:02:16,840 --> 00:02:21,850 Pēc tam, kad pēdējais burts, kas ir atslēgvārdu sasniedza, atslēgvārds wraps ap un 35 00:02:21,850 --> 00:02:25,890 pārmaiņas uz nākamo līdzenumā teksts vēstule p. 36 00:02:25,890 --> 00:02:27,170 X lvne Noh. 37 00:02:27,170 --> 00:02:29,180 Cik romantiski. 38 00:02:29,180 --> 00:02:33,120 >> Tātad, ņemot vērā raksturu, kā jūs pārvērst ka uz atbilstoši 39 00:02:33,120 --> 00:02:34,590 šifrēt maiņu? 40 00:02:34,590 --> 00:02:37,870 Izmēģiniet salīdzinot ASCII vērtības uz maiņu. 41 00:02:37,870 --> 00:02:41,530 Varbūt jūs varat atrast attiecības starp burtiem un to 42 00:02:41,530 --> 00:02:44,550 alfabētisko rādītāju, izmantojot ASCII math. 43 00:02:44,550 --> 00:02:48,850 Vai jūs varat pievienot vai atņemt vienu rakstzīmi no otra, lai iegūtu 44 00:02:48,850 --> 00:02:51,630 Jums vēlamo rezultātu? 45 00:02:51,630 --> 00:02:55,480 >> Atcerieties, ka pārmaiņas attiecībā uz lielajiem burtiem un mazajiem burtiem, ir tas pats. 46 00:02:55,480 --> 00:02:59,510 Tātad, varbūt jums ir nepieciešams, lai noteiktu divus līdzīgas formulas, lai pārstāvētu 47 00:02:59,510 --> 00:03:03,570 maiņu, viens lielais atslēgvārds raksturs, un viens 48 00:03:03,570 --> 00:03:06,510 par mazo vienu. 49 00:03:06,510 --> 00:03:10,630 >> Tālāk, atcerieties, ka atslēgvārdu avansa tikai tad, ja varonis 50 00:03:10,630 --> 00:03:13,520 teksta ir burts, un gadījumā plain 51 00:03:13,520 --> 00:03:16,020 Teksts ir jāsaglabā. 52 00:03:16,020 --> 00:03:20,280 Tātad, ja mēs skatāmies uz formulu Vigenere maiņu, ir divi indekss 53 00:03:20,280 --> 00:03:22,880 mainīgie lielumi, i un j. 54 00:03:22,880 --> 00:03:26,795 Viens seko no amata vienkāršā teksta, un citi pozīcija 55 00:03:26,795 --> 00:03:27,910 ar atslēgvārdu. 56 00:03:27,910 --> 00:03:32,960 Bet jūsu teksta var būt daudz garāks nekā jūsu atslēgvārdu, tādā gadījumā jūsu 57 00:03:32,960 --> 00:03:38,290 atslēgvārdu rādītājs ir nepieciešams, lai wrap ap atpakaļ pie sākuma atslēgvārdu. 58 00:03:38,290 --> 00:03:39,870 >> Kā jūs darīt? 59 00:03:39,870 --> 00:03:43,740 Apskatīsim atpakaļ moduļa operatora. 60 00:03:43,740 --> 00:03:47,280 Modulo tiek definēta, ir atlikums dalot divus numurus. 61 00:03:47,280 --> 00:03:50,680 Bet to, kas ir faktiski praktisks izmantot modulo? 62 00:03:50,680 --> 00:03:54,340 >> Nu, teiksim, jums ir liela grupa cilvēku, un jums ir nepieciešams sadalīt 63 00:03:54,340 --> 00:03:55,100 trīs grupas. 64 00:03:55,100 --> 00:03:59,500 Viens veids, kā sadalīt cilvēkus grupās ir tos skaitīt off. 65 00:03:59,500 --> 00:04:03,520 Jūs numurs grupām grupu numurs 1, 2, 3 un. 66 00:04:03,520 --> 00:04:08,510 Pirmā persona teiks 1, next 2, nākamo 3. 67 00:04:08,510 --> 00:04:12,860 Persona pēc tam teiks 1, jo tur ir ne grupa 4, un 68 00:04:12,860 --> 00:04:15,880 skaits sāk vairāk no turienes. 69 00:04:15,880 --> 00:04:18,209 >> Jūs varat izmantot modulo lai darīt to pašu. 70 00:04:18,209 --> 00:04:22,680 Šoreiz grupas būs būt grupa, 0, 1, 2 un. 71 00:04:22,680 --> 00:04:26,960 Pirmā persona, numurs 1 3 moduli, ir 1. 72 00:04:26,960 --> 00:04:29,830 Persona 2 moduļa 3 ir 2. 73 00:04:29,830 --> 00:04:32,460 Persona 3 pēc moduļa 3 ir 0. 74 00:04:32,460 --> 00:04:38,470 Persona 4 pēc moduļa 3 dod 1, un tā grupas var wrap apkārt. 75 00:04:38,470 --> 00:04:44,700 >> Tātad, ja jūs lietojat indeksu un MODULO ka indekss ar maksimālo lielumu, 76 00:04:44,700 --> 00:04:49,820 rezultāts nekad nebūs lielāks par vai vienāda izmēra, kas nozīmē, ka jūs 77 00:04:49,820 --> 00:04:52,330 var palielināt indeksu, jo daudz, cik vēlaties. 78 00:04:52,330 --> 00:04:57,400 Un, kamēr jūs modulēt indeksu, ko kādu numuru, jūs nesaņemsiet numuru 79 00:04:57,400 --> 00:04:58,510 lielāks nekā tas. 80 00:04:58,510 --> 00:05:04,500 Tātad, mums ir 10 cilvēki, nevis 5, un viņi visi iegūt piešķirts grupās 81 00:05:04,500 --> 00:05:07,480 skaitlis 0, 1, 2 vai. 82 00:05:07,480 --> 00:05:11,680 >> Mēģināt piemērot šo iesaiņojuma vairāk atslēgvārds, izņemot vietā šķirošanas 83 00:05:11,680 --> 00:05:16,050 cilvēkus grupas numurs vēlaties indekss atslēgvārdu, lai jūs varētu 84 00:05:16,050 --> 00:05:19,080 iegūt tiesības raksturs novirzīt nepārsniedzot 85 00:05:19,080 --> 00:05:21,836 garums string. 86 00:05:21,836 --> 00:05:24,790 Ar to, ka jums ir jūsu Vigenere šifra. 87 00:05:24,790 --> 00:05:27,790 Mans vārds ir Zamyla, un tas ir CS50. 88 00:05:27,790 --> 00:05:32,566