1 00:00:00,000 --> 00:00:00,930 2 00:00:00,930 --> 00:00:04,030 >> Zamyla Chan: Ejja iżidu l tagħna logħba mal-cipher vigenere. 3 00:00:04,030 --> 00:00:06,710 Il cipher vigenere hija simili ħafna għal Caesar, 4 00:00:06,710 --> 00:00:11,060 ħlief fil Caesar aħna għadda fil numru sħiħ wieħed bħala l-muftieħ tagħna. 5 00:00:11,060 --> 00:00:14,100 Fl vigenere aħna qed tmur jgħaddu fi keyword. 6 00:00:14,100 --> 00:00:19,400 Għalhekk, jekk jien ridt li ċċaqlaq il- ciphertext dan huwa KEFA 50 permezz ohai, 7 00:00:19,400 --> 00:00:23,260 allura dan ifisser li kull ittra ohai se jservi bħala l-muftieħ, 8 00:00:23,260 --> 00:00:27,160 u jien ser ċiklu fuq dak il-keyword għall-bidla tiegħi 9 00:00:27,160 --> 00:00:31,930 jagħmlu l-ciphertext ħafna aktar diffiċli biex jiddekowdja. 10 00:00:31,930 --> 00:00:34,540 >> Xi jfisser li ċċaqlaq mill-keyword? 11 00:00:34,540 --> 00:00:38,610 Ukoll, il-kelma ewlenija hija sekwenza fejn kull ittra tikkorrispondi 12 00:00:38,610 --> 00:00:41,080 għal xi ċaqliqa numru sħiħ. 13 00:00:41,080 --> 00:00:49,310 Għalhekk, il-o jikkorrispondi għal ewlenija ta '14, h għal ewlieni ta '7, li għandha ewlieni ta' 0, 14 00:00:49,310 --> 00:00:54,670 b'tali mod li ma tkunx tbiddel xejn, u mbagħad i għandha ċavetta tat-8. 15 00:00:54,670 --> 00:01:00,000 >> Say I dam vigenere A mal- test sempliċi dan huwa CS50 tajjeb, 16 00:01:00,000 --> 00:01:02,800 li sempliċement jagħtu lili string mhux mibdula. 17 00:01:02,800 --> 00:01:08,170 Avviż li dan huwa ekwivalenti għal tmexxija Caesar ma 'ċavetta ta' żero. 18 00:01:08,170 --> 00:01:12,070 Fil-fatt, running vigenere ma 'kwalunkwe karattru wieħed 19 00:01:12,070 --> 00:01:17,070 ikun ekwivalenti għal tmexxija Caesar bl-istess numru sħiħ. 20 00:01:17,070 --> 00:01:20,400 >> Kull dritt, hekk, peress li dawn huma tant simili I d 21 00:01:20,400 --> 00:01:24,300 attwalment jirrakkomandaw li jekk int trid tista 'biss kopja Caesar tiegħek 22 00:01:24,300 --> 00:01:26,932 kodiċi fis Kodiċi vigenere tiegħek. 23 00:01:26,932 --> 00:01:28,640 Affarijiet se jinbidlu, iżda mill-inqas inti għandek 24 00:01:28,640 --> 00:01:31,110 xi sinsla li inti tista 'taħdem ma. 25 00:01:31,110 --> 00:01:36,410 Minħabba li l-Todos huma l-istess irridu biex jiksbu l-ewlenin, jiksbu t-test sempliċi, 26 00:01:36,410 --> 00:01:40,690 encipher li test sempliċi, u mbagħad print li l-. 27 00:01:40,690 --> 00:01:44,980 >> Eżatt bħal Caesar il-muftieħ huwa ser tiġi mgħoddija fit bħala t-tieni linja ta 'kmand 28 00:01:44,980 --> 00:01:50,540 argument ifformulat fl-indiċi ARGV 1, imma hija differenti dan iż-żmien 29 00:01:50,540 --> 00:01:52,560 peress li għandu jkun alfabetiku. 30 00:01:52,560 --> 00:01:56,390 Allura, għandna bżonn li jtenni fuq kull karattru uniku f'dak prinċipali 31 00:01:56,390 --> 00:02:00,800 li l-utent għadda fi, u jiġi żgurat li kull karattru huwa alfabetiku 32 00:02:00,800 --> 00:02:02,800 sabiex ikomplu. 33 00:02:02,800 --> 00:02:05,560 >> Ladarba aħna ghamilt dan, allura aħna jistgħu jiksbu l-sekwenza mill-utent, 34 00:02:05,560 --> 00:02:07,560 eżatt kif għamilna qabel. 35 00:02:07,560 --> 00:02:10,520 U issa, aħna waslet għall-qalb tal-problema għall vigenere, 36 00:02:10,520 --> 00:02:14,665 li huwa bħad Caesar, kif insemmu l-mudell enciphering 37 00:02:14,665 --> 00:02:19,760 u ekwazzjoni, u encipher il plaintext kollu. 38 00:02:19,760 --> 00:02:23,280 >> Allura, inti ser ikollok avviż li l- ekwazzjoni għall-bidla vigenere 39 00:02:23,280 --> 00:02:25,610 hija simili ħafna għal dik Caesar. 40 00:02:25,610 --> 00:02:29,780 L-unika differenza hija li minflok k varjabbli waħda 41 00:02:29,780 --> 00:02:37,270 qabel, issa k għandha xi kitba, indikata l-ittra JTH taċ-ċavetta. 42 00:02:37,270 --> 00:02:39,560 >> Ejja jimxu permezz ta 'eżempju. 43 00:02:39,560 --> 00:02:43,830 Tgħid li inti riedu li jgħaddu sigriet messaġġ fuq tgħaffiġ tiegħek, I bħalek. 44 00:02:43,830 --> 00:02:46,325 Ukoll, għal ċavetta tiegħek għalik jagħżlu xi ħaġa li tiegħek 45 00:02:46,325 --> 00:02:49,790 jafu tgħaffiġ jaf li inti simili, pandas. 46 00:02:49,790 --> 00:02:52,290 Kull dritt, hekk kif nistgħu bidla dan? 47 00:02:52,290 --> 00:02:55,500 >> Well, aħna għandna indiċi plaintext tagħna. 48 00:02:55,500 --> 00:02:59,160 Dik hija l-ewwel ittra u għalhekk hija l-indiċi għall-ċavetta tagħna 49 00:02:59,160 --> 00:03:02,830 li hija fil-p, l-ewwel ittra kelma Panda tagħna. 50 00:03:02,830 --> 00:03:08,590 Għalhekk, iċ-ċaqliq jien bil-p tagħtina x, allura aħna bil-quddiem l-indiċi plaintext. 51 00:03:08,590 --> 00:03:10,460 Din il gets us għal spazju. 52 00:03:10,460 --> 00:03:13,540 Issa, il-karattru ispazju hija non alfabetiku, 53 00:03:13,540 --> 00:03:16,930 sabiex ifisser li, li biss trasferimenti dritt fuq il-ciphertext, 54 00:03:16,930 --> 00:03:23,430 npoġġux spazju hemmhekk, u aħna ma tavvanza l-indiċi għall-ċavetta tagħna. 55 00:03:23,430 --> 00:03:25,820 Allura, aħna qed għadhom fuq p f'dan il-punt. 56 00:03:25,820 --> 00:03:30,130 >> Aħna bil-quddiem għall-ieħor indiċi plaintext tagħna. 57 00:03:30,130 --> 00:03:34,030 U issa, għaliex dik hija ittra, il-l zghar, 58 00:03:34,030 --> 00:03:37,920 aħna bidla li sa l- indiċi jmiss fl-iskema tagħna. 59 00:03:37,920 --> 00:03:42,360 Li huwa, ikun żero bidla hekk li biss isir 60 00:03:42,360 --> 00:03:44,370 l l fil ciphertext tagħna. 61 00:03:44,370 --> 00:03:51,120 Imbagħad, aħna bil-quddiem kemm il-plaintext, u l-indiċi ewlenija għaliex dan huwa alfabetiku. 62 00:03:51,120 --> 00:03:56,210 Mela allura aħna nkomplu li sakemm aħna jiksbu l-e fl simili. 63 00:03:56,210 --> 00:04:01,090 >> Kull dritt, hekk tkun taf Avviż f'dan punt li, f'termini ta 'indiċi ewlenin tagħna, 64 00:04:01,090 --> 00:04:03,940 konna laħqu t-tmiem ta ' -kelma Panda, iva, liema 65 00:04:03,940 --> 00:04:08,750 jiġri meta aħna jiksbu l-jmiss ittra alfabetika fil-plaintext? 66 00:04:08,750 --> 00:04:12,180 Ukoll, dak kollu li jiġri huwa li aħna perimetrika għall-bidu, 67 00:04:12,180 --> 00:04:14,710 l-ewwel indiċi tar ewlenin tagħna. 68 00:04:14,710 --> 00:04:19,570 Allura, allura aħna bidla li y mill-p biex tagħtina n. 69 00:04:19,570 --> 00:04:26,860 U allura, aħna tkompli irfinar kodifikazzjoni plaintext tagħna sabiex inġibu Noh x lvne. 70 00:04:26,860 --> 00:04:29,300 >> Minn dan l-eżempju, jien wera li aħna biss bil-quddiem 71 00:04:29,300 --> 00:04:33,140 għall-ittra li jmiss fil-keyword jekk il-karattru fi kliem sempliċi 72 00:04:33,140 --> 00:04:37,480 hija ittra hekk il isalpha funzjoni se jidħlu fil handy hawn. 73 00:04:37,480 --> 00:04:43,030 U, bħal fil Caesar, irridu jippreservaw il-każ, isupper u islower. 74 00:04:43,030 --> 00:04:46,100 Allura, żid din ftit fil fis pseudocode tiegħek. 75 00:04:46,100 --> 00:04:48,510 >> Allura kif nistgħu insemmu l-bidliet ewlenin? 76 00:04:48,510 --> 00:04:53,030 Ukoll, jekk inti recall diskussjoni tagħna dwar indiċijiet alfabetiċi fil-Caesar 77 00:04:53,030 --> 00:04:55,370 problema, huwa simili ħafna. 78 00:04:55,370 --> 00:05:01,130 >> Fejn A jikkorrispondi għal ASCII valur ta '65, iżda bidla ta' 0, 79 00:05:01,130 --> 00:05:03,550 u allura l-aħħar ittra fl-alfabett, Z, 80 00:05:03,550 --> 00:05:06,940 jikkorrispondi għal ċaqliqa ta '25. 81 00:05:06,940 --> 00:05:10,320 Int ser ikollok avviż li l-bidla hija identika jew le 82 00:05:10,320 --> 00:05:14,880 l-ittra huwa każ ta 'fuq jew ittri żgħar. 83 00:05:14,880 --> 00:05:17,700 >> OK, hekk issa li int taf kif biex insemmu 84 00:05:17,700 --> 00:05:21,470 -bidla numerika li jikkorrispondi għal karattru wieħed 85 00:05:21,470 --> 00:05:24,050 ejja jmorru lura għall-ekwazzjoni tagħna. 86 00:05:24,050 --> 00:05:28,180 Għaliex għandna żewġ differenti subscripts hawn, iuj, 87 00:05:28,180 --> 00:05:32,130 li l-ħjiel li aħna rridu li jżommu rekord kemm pożizzjoni tagħna fis-plaintext 88 00:05:32,130 --> 00:05:36,600 kif ukoll il-pożizzjoni tagħna fil-keyword, hekk dawn huma żewġ fatturi varjabbli separati 89 00:05:36,600 --> 00:05:39,010 li aħna rridu li jżommu istiva ta. 90 00:05:39,010 --> 00:05:42,580 >> Issa, il-pożizzjoni fil plaintext tagħna se tiżdied kull darba, 91 00:05:42,580 --> 00:05:45,530 hekk li għaddej biex tkun ftit aktar straight quddiem 92 00:05:45,530 --> 00:05:49,750 għall-kuntrarju għall-pożizzjoni l-keyword, li nafu jrid around, 93 00:05:49,750 --> 00:05:52,910 u kultant inkrement, kultant tissospendi l-istess. 94 00:05:52,910 --> 00:05:55,430 Allura, kif nistgħu jimplimentaw il-funzjonalità 95 00:05:55,430 --> 00:05:59,820 biex nagħlaq madwar il- indiċi għall-keyword? 96 00:05:59,820 --> 00:06:01,640 >> Jien ser tuża l-jgħoddu off eżempju. 97 00:06:01,640 --> 00:06:06,100 Isserraħ off huwa mod popolari li jaqsam in-nies fi gruppi. 98 00:06:06,100 --> 00:06:10,660 Say Kelli 5 persuni u jien ridt li maqsuma minnhom up fi tliet gruppi, 99 00:06:10,660 --> 00:06:13,640 ukoll allura nixtieq nibda billi jingħaddu off. 100 00:06:13,640 --> 00:06:16,980 L-ewwel persuna kieku ngħid jien tim numru wieħed, 101 00:06:16,980 --> 00:06:21,030 il-persuna li jmiss ikun numru tim tnejn, in-numru tim terza persuna 102 00:06:21,030 --> 00:06:21,910 tlieta. 103 00:06:21,910 --> 00:06:25,910 Issa, jien biss jixtiequ tliet gruppi hekk ir-raba 'persuna kieku attwalment 104 00:06:25,910 --> 00:06:30,160 tibda fil-bidu u jgħidu, ukoll, jien tim numru wieħed kif ukoll, 105 00:06:30,160 --> 00:06:32,890 u l-persuna li jmiss Ikun tim numru tnejn. 106 00:06:32,890 --> 00:06:37,660 U, minn hemm, huma jistgħu mbagħad separati fi gruppi tagħhom. 107 00:06:37,660 --> 00:06:41,130 >> Allura, kif tista 'nuża modulo għinni jimplimentaw 108 00:06:41,130 --> 00:06:44,160 Dan l-għadd off around funzjoni? 109 00:06:44,160 --> 00:06:50,140 Ukoll, l-ewwel persuna numru 1, mod 3 jagħtina 1. 110 00:06:50,140 --> 00:06:54,690 2 mod 3 tagħtina 2, u 3 mod 3 tagħtina 0. 111 00:06:54,690 --> 00:07:02,140 >> Ir-raba 'persuna, numru 4, 3 mod jagħtina 1, u mbagħad 5 mod 3 tagħtina 2. 112 00:07:02,140 --> 00:07:05,370 Allura, tinduna li, anki jekk in-numru ta 'nies li għandi 113 00:07:05,370 --> 00:07:11,210 żidiet, u huwa ogħla 3, peress li jien modding bi 3 114 00:07:11,210 --> 00:07:15,250 Jien dejjem jiksbu numri 0, 1, u 2. 115 00:07:15,250 --> 00:07:19,040 Jien qatt nikseb akbar minn 3. 116 00:07:19,040 --> 00:07:22,630 Mela allura, anke jekk kelli 10 nies, allura kollha ta 'dawk in-nies 117 00:07:22,630 --> 00:07:27,430 xorta jkun fi ħdan il-gruppi 1, 2, jew 0. 118 00:07:27,430 --> 00:07:33,560 >> Allura, issa nafu li jekk għandna grupp tal-5 u aħna Mod kollha ta 'dawk bi 3, 119 00:07:33,560 --> 00:07:38,180 allura aħna qed qatt tmur biex jaqbeż gruppi 0, 1, jew 2. 120 00:07:38,180 --> 00:07:43,430 Allura, aħna qed qatt se tikseb grupp Numru thats daqs 3 jew aktar. 121 00:07:43,430 --> 00:07:46,980 Għalhekk, anki jekk I żid ħamsa oħra nies, imbagħad kollha kemm huma 122 00:07:46,980 --> 00:07:53,150 xorta jkun assenjat lil gruppi 0, 1, jew 2 għaliex jien modding bi 3. 123 00:07:53,150 --> 00:07:56,510 Jien qatt ma ser jaqbeż dak għatu. 124 00:07:56,510 --> 00:08:00,800 >> OK, so ejja ara jekk nistgħu japplikaw dan il-kunċett ta 'użu modulo 125 00:08:00,800 --> 00:08:03,710 biex nagħlaq madwar il- numri tal-grupp u japplikaw 126 00:08:03,710 --> 00:08:08,000 li vigenere fejn irridu għall-użu modulo biex nagħlaq madwar 127 00:08:08,000 --> 00:08:10,220 l-indiċi għall-keyword. 128 00:08:10,220 --> 00:08:12,830 Anki jekk aħna qed inkrementazzjoni l-indiċi aħna dejjem 129 00:08:12,830 --> 00:08:17,260 jixtiequ jagħmlu ċert li aħna dejjem perimetrika għall-bidu nett 130 00:08:17,260 --> 00:08:20,050 qatt taqbeż il tul tas-sekwenza. 131 00:08:20,050 --> 00:08:23,510 >> OK, so I know jista 'jkun ftit ftit kbira. 132 00:08:23,510 --> 00:08:26,670 Hemm ħafna aktar biex jagħmlu dan is-sett p. 133 00:08:26,670 --> 00:08:30,050 Allura, kun żgur li inti tikteb a pseudocode tajba għalik innifsek 134 00:08:30,050 --> 00:08:32,870 li tifhem u li gets-xogħol isir. 135 00:08:32,870 --> 00:08:35,580 Ipprova u jindirizzaw kull linja waħda indipendentement 136 00:08:35,580 --> 00:08:38,370 jidhru out kollha l-ftit biċċiet żgħar tal-puzzle 137 00:08:38,370 --> 00:08:40,260 qabel ma jitpoġġa flimkien. 138 00:08:40,260 --> 00:08:43,110 >> Kun żgur li int tista 'tieħu -ċavetta mil-linja tal-kmand 139 00:08:43,110 --> 00:08:46,780 u jiżgura li huwa alfabetiku, jiksbu l-test sempliċi mill-utent, 140 00:08:46,780 --> 00:08:51,010 u mbagħad fl enciphering, aċċerta ruħek li taf kif encipher ittra waħda, 141 00:08:51,010 --> 00:08:56,130 u mbagħad progress għal-sekwenza sħiħa kollha ta 'l perimetrika funzjonijiet. 142 00:08:56,130 --> 00:08:59,610 Finalment, inti tista 'jistampaw l ciphertext. 143 00:08:59,610 --> 00:09:04,050 >> Jisimni hija Zamyla, u dan kien vigenere. 144 00:09:04,050 --> 00:09:07,757