>> [Muzikavimo]
>> ZAMYLA CHAN: Leiskite įgyvendinti Vigenere, šiek tiek daugiau
užtikrinti šifravimo, nei ciesoriui.
Paprastas tekstas užšifruota naudojant o sveikasis eilutę.
Kiekviena abėcėlės raidė ir paprastas tekstas atitraukiama
raidė raktinį žodį.
>> Šiame pavyzdyje raktažodį ohai O atitinka 14 pamainą pagaminti; H
perkelti iš 7; A pamaina 0, ir aš 8 pamainą.
Jeigu jūs sėkmingai įgyvendino savo Cezario šifras, tai bus gražus
sistema, iš kurios gali įgyvendinti Vigenere.
Kaip matote, veikia Vigenere šifravimo su vienu budu
Raktinis žodis yra tas pats kaip Cezario šifras.
>> Tie patys veiksmai taikomi Vigenere kaip jie tai padarė Cezario.
Raktažodis yra antra komandinės eilutės argumentas, kad jūs į jį su argv1.
Tada jums reikia įsitikinti, kad pagrindinis Žodis iš tikrųjų visi abėcėlės.
Štai kur yra alfa gali praversti.
Jei turite galiojantį raktažodį, jūs gaunate stiprumas nuo vartotojo, ir tada
būsite pasirengę šifruoti.
>> Vigenere šifravimo formulė yra panašus Cezariui formulę, išskyrus dabar k
tampa k indeksas j rodo, j-oji raidė raktinį žodį.
Leiskite žingsnis per šį procesą.
Pasakykite, kad norėjo siųsti žinutę į jūsų avarijos, man patinka, bet jūs neturite
noriu visiems žinoti.
Taigi jūs naudojate Vigenere šifravimo su raktažodis panda, nes, gerai, jūs taip pat
patinka panda.
>> Pirmoji raidė, aš, bus perkeltas P, suteikiant x, 15 raidžių po I
nes 15 psl yra 16 abėcėlės raidė.
Kita raidė lygumoje teksto erdvę, kad nebus perkelta.
Ir raktažodį puslapis nesikeis.
>> Tada kita raidė paprasto teksto l atitraukiama, kuris neperjungia
teksto raidė ne visi, nes yra 0th abėcėlės raidė.
Procesas tęsiasi, plečiant raktažodis simbolis kiekvieną kartą ten
raidė paprastąjį tekstą.
Kai paskutinis raidė raktažodis pasiekė, raktažodis kimba ir
persikelia į kitą lygumoje tekstas laiškas p.
X lvne Noh.
Kaip romantiška.
>> Taigi, atsižvelgiant į simbolį, kaip jums konvertuoti kad į atitinkamas
šifras pamainą?
Pabandykite palyginti ASCII vertės į pamainą.
Gal galite surasti santykį tarp raidžių ir jų
abėcėlinė rodyklė naudojant ASCII matematikos.
Ar galite pridėti arba atimti vieną simbolį nuo kito gauti
jums norimą rezultatą?
>> Atminkite, kad už didžiąsias pokyčiai ir mažosios raidės yra tas pats.
Taigi, galbūt jums reikia nustatyti du panašios formulės atstovauti
pamainą, po vieną didžiąsias raktažodis pobūdžio, ir vienas
už mažąsias vieną.
>> Be to, atminkite, kad raktažodžių pažanga tik tada, kai personažas
paprastas tekstas yra laiškas ir kad iš paprasto atveju
tekstas turi būti išsaugota.
Taigi, jei mes pažvelgti į formulę Vigenere perėjimas, yra du puslapis
kintamieji, i ir j.
Vienas stebi jo vieta paprastas teksto ir kita pozicija
į raktinį žodį.
Bet jūsų teksto gali būti daug ilgesnis nei raktažodį, tokiu atveju jūsų
raktažodis puslapis turi apsukti atgal į žodį pradžioje.
>> Kaip tai padaryti?
Pažvelkime atgal modulį operatorius.
Modulo apibrėžiama yra likusi dalijant du numerius.
Bet kas tikrasis praktiškas naudoti pagal modulį?
>> Na, tarkim, jūs turite didelę grupę žmonių, ir jums reikia padalinti į
tris grupes.
Vienas iš būdų skirstyti žmones į grupes yra turėti juos atskaityti.
Jūs skaičiaus grupėse numeris 1, 2 ir 3.
Pirmas žmogus sako 1, Kitą 2 savaitė 3.
Asmuo, po to sako, 1, nes nėra 4 grupės, ir
skaičius pradeda daugiau iš ten.
>> Galite naudoti modulo į daryti tą patį.
Šį kartą grupės bus BE Group 0, 1 ir 2.
Pirmasis asmuo, skaičius 1 moduliu 3 1.
Asmuo 2 moduliu 3 2.
Asmuo 3 modulio 3 yra 0.
Asmuo 4 moduliu 3 suteikia 1 ir tt grupės gali apsukti.
>> Taigi, jei jūs imtis indeksą ir Modulo kad maksimalus jo dydis indeksas,
rezultatas niekada nebus didesnis nei arba lygi dydžiui, o tai reiškia, kad jūs
gali padidinti indekso kiek norite.
Ir kaip ilgai, kaip jūs Modulo indeksą pagal kai skaičius, jūs negausite numerį
didesnis nei.
Taigi, mes turime 10 žmonių, o ne 5, o jie visi gauti skiriamas grupėms
skaičius 0, 1 arba 2.
>> Pabandykite taikyti šį vyniojimo daugiau raktažodis, išskyrus vietoj rūšiavimas
žmonių į grupės numerį norite indeksas žodį, kad jūs galite
gauti reikiamą simbolį perkelti neviršijant
ilgis eilutę.
Su tuo, jūs turite savo Vigenere šifras.
Mano vardas Zamyla, ir tai yra CS50.