1 00:00:00,000 --> 00:00:00,930 2 00:00:00,930 --> 00:00:04,030 >> Замила Чан: Хајде да појачају наш игра са Вигенере шифре. 3 00:00:04,030 --> 00:00:06,710 Вигенере-ове шифре је врло сличан Цезару, 4 00:00:06,710 --> 00:00:11,060 осим у Цезара смо прошли у један цео број као наш кључ. 5 00:00:11,060 --> 00:00:14,100 У Вигенере идемо да прође у кључну реч. 6 00:00:14,100 --> 00:00:19,400 Дакле, ако сам хтео да преместим Шифрат ово је ЦС 50 до Охаи, 7 00:00:19,400 --> 00:00:23,260 онда то значи да свако слово у Охаи ће служити као кључ, 8 00:00:23,260 --> 00:00:27,160 и ја ћу циклус преко је та кључна за моју смену 9 00:00:27,160 --> 00:00:31,930 што шифрат Много теже за декодирање. 10 00:00:31,930 --> 00:00:34,540 >> Шта то значи схифт је кључну реч? 11 00:00:34,540 --> 00:00:38,610 Па, кључна реч је стринг где свако слово одговара 12 00:00:38,610 --> 00:00:41,080 на неки цео број смени. 13 00:00:41,080 --> 00:00:49,310 Дакле, о одговара кључ 14, х до кључ од 7, А има кључ 0, 14 00:00:49,310 --> 00:00:54,670 тако да не бих ништа мењао, а онда сам има кључ од 8. 15 00:00:54,670 --> 00:01:00,000 >> Да сам водио Вигенере А са обичан текст ово је ЦС50 добро, 16 00:01:00,000 --> 00:01:02,800 да би једноставно дати ми непромењена низ. 17 00:01:02,800 --> 00:01:08,170 Приметите да је ово еквивалентна ради Цезара са кључем на нулу. 18 00:01:08,170 --> 00:01:12,070 У ствари, ради Вигенере са било које појединачне карактера 19 00:01:12,070 --> 00:01:17,070 би било еквивалентно трчања Цезар са истом цео број. 20 00:01:17,070 --> 00:01:20,400 >> У реду, тако, од они су толико слични да би било 21 00:01:20,400 --> 00:01:24,300 Заправо препоручују да, ако Желим да само може да копира Цезара 22 00:01:24,300 --> 00:01:26,932 код у свој Вигенере код. 23 00:01:26,932 --> 00:01:28,640 Ствари ће се променити, али бар имаш 24 00:01:28,640 --> 00:01:31,110 неки ослонац који можете радити са. 25 00:01:31,110 --> 00:01:36,410 Јер су тодос исти желимо добити кључ, добити обичан текст, 26 00:01:36,410 --> 00:01:40,690 енципхер да обичан текст, и онда принт то. 27 00:01:40,690 --> 00:01:44,980 >> Баш као Цезара кључ ће бити усвојен у као други командне линије 28 00:01:44,980 --> 00:01:50,540 Аргумент који се налази у индексу аргв 1, али је другачије овај пут 29 00:01:50,540 --> 00:01:52,560 јер то мора бити по абецеди. 30 00:01:52,560 --> 00:01:56,390 Дакле, морамо да поновити више од сваког један лик у том кључу 31 00:01:56,390 --> 00:02:00,800 да је корисник прошао у, и осигурати да је сваки лик је словна 32 00:02:00,800 --> 00:02:02,800 у циљу наставка. 33 00:02:02,800 --> 00:02:05,560 >> Када смо то урадили, онда смо могу добити низ од корисника, 34 00:02:05,560 --> 00:02:07,560 баш као што смо и раније. 35 00:02:07,560 --> 00:02:10,520 И сада долазимо до срца проблема за Вигенере, 36 00:02:10,520 --> 00:02:14,665 који је као Цезар, како да схватити кифарска образац 37 00:02:14,665 --> 00:02:19,760 и једначина, и енципхер цео отворени текст. 38 00:02:19,760 --> 00:02:23,280 >> Дакле, приметићете да је једначина за Вигенере смену 39 00:02:23,280 --> 00:02:25,610 је веома слична оној Цаесар. 40 00:02:25,610 --> 00:02:29,780 Једина разлика је у томе уместо једног променљива к 41 00:02:29,780 --> 00:02:37,270 пре, сада К има субсцрипт, указује на ј-слово кључа. 42 00:02:37,270 --> 00:02:39,560 >> Прошетајмо кроз пример. 43 00:02:39,560 --> 00:02:43,830 Рекао да желиш да прође тајну Порука на своју симпатију, свиђаш ми се. 44 00:02:43,830 --> 00:02:46,325 Па, за ваш кључ ти изабрати нешто да ваш 45 00:02:46,325 --> 00:02:49,790 знам симпатија зна да желите, панде. 46 00:02:49,790 --> 00:02:52,290 У реду, па како да пребаци ово? 47 00:02:52,290 --> 00:02:55,500 >> Па, имамо отворени текст индекс. 48 00:02:55,500 --> 00:02:59,160 То је на првом слову и тако да је индекс за наш кључ 49 00:02:59,160 --> 00:03:02,830 што је на п, прво писмо у нашем панда речи. 50 00:03:02,830 --> 00:03:08,590 Дакле, промена И од п УС Кс даје, онда унапреди отворени текст индекс. 51 00:03:08,590 --> 00:03:10,460 Ово нам стигне до простора. 52 00:03:10,460 --> 00:03:13,540 Сада, простор лик је не словна, 53 00:03:13,540 --> 00:03:16,930 а то значи да, то само трансфери право над на шифрату, 54 00:03:16,930 --> 00:03:23,430 ставимо простор тамо, а ми не унапредити индекс за наш кључ. 55 00:03:23,430 --> 00:03:25,820 Дакле, и даље смо на стр у овом тренутку. 56 00:03:25,820 --> 00:03:30,130 >> Ми прешли на следећи индекс у нашем отвореном тексту. 57 00:03:30,130 --> 00:03:34,030 И сада, јер је то писмо је мала слова Л, 58 00:03:34,030 --> 00:03:37,920 ми схифт да од стране следећи индекс у нашем кључу. 59 00:03:37,920 --> 00:03:42,360 Што је, који је зеро смена тако да само постаје 60 00:03:42,360 --> 00:03:44,370 сам у нашој шифрату. 61 00:03:44,370 --> 00:03:51,120 Онда, напредујемо како отворени текст, и кључ индекса јер је алфабетске. 62 00:03:51,120 --> 00:03:56,210 Онда смо наставили да док не дођете до е на слично. 63 00:03:56,210 --> 00:04:01,090 >> У реду, тако да ћете приметити на ово указују да је, у погледу нашег кључног индекса, 64 00:04:01,090 --> 00:04:03,940 смо стигли до краја панда реч, па шта 65 00:04:03,940 --> 00:04:08,750 се дешава када стигнемо у следећи алфабетске писмо у отвореном тексту? 66 00:04:08,750 --> 00:04:12,180 Па, све што се дешава је да замотати око на самом почетку, 67 00:04:12,180 --> 00:04:14,710 на први индекс од наших кључних. 68 00:04:14,710 --> 00:04:19,570 Дакле, онда схифт да И је п да нам бр. 69 00:04:19,570 --> 00:04:26,860 И онда, настављамо завршни кодирање наш отворени текст да х лвне Нох. 70 00:04:26,860 --> 00:04:29,300 >> Из овог примера, И показали да напредујемо само 71 00:04:29,300 --> 00:04:33,140 на следећем писму у кључне речи ако је лик у обичном тексту 72 00:04:33,140 --> 00:04:37,480 је писмо тако да исалпха Функција ће добро доћи овамо. 73 00:04:37,480 --> 00:04:43,030 И, као у Цезара, желимо да сачувати случај, исуппер и исловер. 74 00:04:43,030 --> 00:04:46,100 Дакле, додати ово мало у у својој псеудокоду. 75 00:04:46,100 --> 00:04:48,510 >> Како да схватимо кључне промене? 76 00:04:48,510 --> 00:04:53,030 Па, ако се сећате нашу дискусију на абецеде индекса у Цезара 77 00:04:53,030 --> 00:04:55,370 Проблем, то је врло слично. 78 00:04:55,370 --> 00:05:01,130 >> Где А одговара АСЦИИ вредност 65 али помак 0, 79 00:05:01,130 --> 00:05:03,550 а онда последње слово У писму, З 80 00:05:03,550 --> 00:05:06,940 одговара смене 25. 81 00:05:06,940 --> 00:05:10,320 Приметићете да смене је идентичан или не 82 00:05:10,320 --> 00:05:14,880 писмо је горњи и мала слова. 83 00:05:14,880 --> 00:05:17,700 >> У реду, па сад то ти знају како да схватим 84 00:05:17,700 --> 00:05:21,470 нумерички помак који одговара једној карактер 85 00:05:21,470 --> 00:05:24,050 Вратимо се нашој једначини. 86 00:05:24,050 --> 00:05:28,180 Јер имамо два различита субсцриптс овде, и и ј, 87 00:05:28,180 --> 00:05:32,130 то је наговештај да желите да пратите од како наше позиције у отвореном тексту 88 00:05:32,130 --> 00:05:36,600 као и наше позиције у кључне речи, па то су два одвојена варијабле 89 00:05:36,600 --> 00:05:39,010 да желимо да одржи држите. 90 00:05:39,010 --> 00:05:42,580 >> Сада, ситуација у нашој плаинтекту ће се повећати сваки пут, 91 00:05:42,580 --> 00:05:45,530 тако да ће бити мало више равно напред 92 00:05:45,530 --> 00:05:49,750 за разлику од положаја кључних речи, који знамо да треба да обавије око, 93 00:05:49,750 --> 00:05:52,910 и понекад повећавати, понекад остају исте. 94 00:05:52,910 --> 00:05:55,430 Дакле, како ћемо имплементирати функционалност 95 00:05:55,430 --> 00:05:59,820 да окружују индекс за кључну реч? 96 00:05:59,820 --> 00:06:01,640 >> Ја ћу користити рачунати са примером. 97 00:06:01,640 --> 00:06:06,100 Набрајамо је популаран начин раздвојити људе у групе. 98 00:06:06,100 --> 00:06:10,660 Да сам имао 5 људе и желео сам да поделити их у три групе, 99 00:06:10,660 --> 00:06:13,640 па онда почети пребројавање с. 100 00:06:13,640 --> 00:06:16,980 Прва особа би рећи да сам тим број један, 101 00:06:16,980 --> 00:06:21,030 следећа особа ће бити тим број два, трећа особа тим број 102 00:06:21,030 --> 00:06:21,910 три. 103 00:06:21,910 --> 00:06:25,910 Сада, само желим три групе, тако четврта особа би заправо 104 00:06:25,910 --> 00:06:30,160 старт на почетку и рећи, Добро, ја сам тим број један, као, 105 00:06:30,160 --> 00:06:32,890 и следећа особа ће бити тим број два. 106 00:06:32,890 --> 00:06:37,660 И, одатле, могу онда одвајају у њихове групе. 107 00:06:37,660 --> 00:06:41,130 >> Дакле, како би користим модулу да ми помогне да спроведу 108 00:06:41,130 --> 00:06:44,160 ово рачунати са омотач око функцију? 109 00:06:44,160 --> 00:06:50,140 Па, прва особа број 1 мод 3 нам даје 1. 110 00:06:50,140 --> 00:06:54,690 2 мод 3 нам даје 2, и 3 мод 3 нам даје 0. 111 00:06:54,690 --> 00:07:02,140 >> Четврта особа, број 4, мод 3 даје нам 1, а затим 5 Мод 3 нам даје 2. 112 00:07:02,140 --> 00:07:05,370 Дакле, приметићете да иако број људи који имам 113 00:07:05,370 --> 00:07:11,210 повећава, а изнад 3, пошто сам моддинг од 3 114 00:07:11,210 --> 00:07:15,250 Увек сам бројеве 0, 1, и 2. 115 00:07:15,250 --> 00:07:19,040 Ја никад не већи од 3. 116 00:07:19,040 --> 00:07:22,630 Дакле, чак и ако сам имао 10 људи, онда је све од тих људи 117 00:07:22,630 --> 00:07:27,430 ће и даље бити унутар група 1, 2, или 0. 118 00:07:27,430 --> 00:07:33,560 >> Дакле, сада знамо да ако имамо групу 5 и ми мод сви они по 3, 119 00:07:33,560 --> 00:07:38,180 онда никада нећемо да прелази групе 0, 1, или 2. 120 00:07:38,180 --> 00:07:43,430 Дакле, ми никада неће добити групу број који је једнак 3 или више. 121 00:07:43,430 --> 00:07:46,980 Дакле, чак и ако додам још пет људи, онда све њих 122 00:07:46,980 --> 00:07:53,150 би и даље бити додељен групи 0, 1, или 2 јер ја моддинг од 3. 123 00:07:53,150 --> 00:07:56,510 Ја никада нећу прећи ту капу. 124 00:07:56,510 --> 00:08:00,800 >> У реду, да видимо да ли можемо да применимо овај концепт коришћења модулу 125 00:08:00,800 --> 00:08:03,710 да окружују група бројева и применити 126 00:08:03,710 --> 00:08:08,000 да се Вигенере где желимо користити модулу да заврши око 127 00:08:08,000 --> 00:08:10,220 индекс за кључне речи. 128 00:08:10,220 --> 00:08:12,830 Иако смо се увецава индекс увек 129 00:08:12,830 --> 00:08:17,260 желите да се уверите да увек замотати око на самом почетку 130 00:08:17,260 --> 00:08:20,050 никад прекорачење дужина низа. 131 00:08:20,050 --> 00:08:23,510 >> У реду, тако да знам да би могло бити мало огромна. 132 00:08:23,510 --> 00:08:26,670 Има много више да уради у овом сету п. 133 00:08:26,670 --> 00:08:30,050 Дакле, проверите да ли написати добар Псеудокод за себе 134 00:08:30,050 --> 00:08:32,870 да разумете и да ради свој посао. 135 00:08:32,870 --> 00:08:35,580 Покушајте и адреса сваког једна линија независно 136 00:08:35,580 --> 00:08:38,370 схватите све мало мале комаде слагалице 137 00:08:38,370 --> 00:08:40,260 пре стављања заједно. 138 00:08:40,260 --> 00:08:43,110 >> Уверите се да можете добити кључ из командне линије 139 00:08:43,110 --> 00:08:46,780 и осигурати да је словна, добити обичан текст од корисника, 140 00:08:46,780 --> 00:08:51,010 а затим у шифровања, побрините се да знају како да енципхер једно слово, 141 00:08:51,010 --> 00:08:56,130 а потом напредовати до читав низ са свим Омотач око функција. 142 00:08:56,130 --> 00:08:59,610 На крају, можете да одштампате шифрат. 143 00:08:59,610 --> 00:09:04,050 >> Моје име је Замила, а то је Вигенере. 144 00:09:04,050 --> 00:09:07,757