1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [СРБ] 2 00:00:02,000 --> 00:00:04,000 [Роб Бовден] [Томи МацВиллиам] [Универзитет Харвард] 3 00:00:04,000 --> 00:00:07,000 [Ово је ЦС50.] [ЦС50.ТВ] 4 00:00:07,000 --> 00:00:11,000 Хајде да погледамо РСА, нашироко користи алгоритам за енкрипцију података. 5 00:00:11,000 --> 00:00:16,000 Алгоритми попут Цезара и Вигенере шифара нису баш сигурни. 6 00:00:16,000 --> 00:00:20,000 Са Цезара шифри, нападач само треба пробати 25 различитих кључева 7 00:00:20,000 --> 00:00:22,000 да обичан текст поруци је. 8 00:00:22,000 --> 00:00:25,000 Док је Вигенере шифра је много сигурније него Цезарова шифра 9 00:00:25,000 --> 00:00:28,000 због већег простора за претрагу кључева, једном нападач 10 00:00:28,000 --> 00:00:30,000 зна дужину кључа у Вигенере шифри, 11 00:00:30,000 --> 00:00:34,000 што се може утврдити путем анализе узорака у шифрованом тексту, 12 00:00:34,000 --> 00:00:38,000 тхе Вигенере шифра није тако много сигурније него Цезарова шифра. 13 00:00:38,000 --> 00:00:42,000 РСА, с друге стране, није рањива на нападе као што је овај. 14 00:00:42,000 --> 00:00:45,000 Цезарова шифра и Вигенере алгоритам користи исти кључ 15 00:00:45,000 --> 00:00:47,000 како за шифровање и дешифровање порука. 16 00:00:47,000 --> 00:00:51,000 Ова особина чини ове шифре симетричне кључне алгоритме. 17 00:00:51,000 --> 00:00:54,000 Основни проблем са симетричним алгоритмима кључним 18 00:00:54,000 --> 00:00:57,000 је да се ослањају на оне криптовање и слање поруке 19 00:00:57,000 --> 00:00:59,000 а онај пријем и дешифровање поруке 20 00:00:59,000 --> 00:01:03,000 да је већ договорено унапред на тастеру ће обоје користе. 21 00:01:03,000 --> 00:01:06,000 Али ми овде имамо мало за покретање проблема. 22 00:01:06,000 --> 00:01:10,000 Како 2 компјутера који желе да комуницирају успостави тајни кључ између њих? 23 00:01:10,000 --> 00:01:16,000 Ако је кључ мора бити тајна, онда морамо начин за шифровање и дешифровање кључ. 24 00:01:16,000 --> 00:01:18,000 Ако је све што имамо је симетрични кључ Криптографија 25 00:01:18,000 --> 00:01:21,000 онда смо управо вратио са истим проблемом. 26 00:01:21,000 --> 00:01:25,000 РСА, с друге стране, користи пар кључева, 27 00:01:25,000 --> 00:01:28,000 један за шифровање и дешифровање други за. 28 00:01:28,000 --> 00:01:32,000 Једна се зове јавни кључ, а други је приватни кључ. 29 00:01:32,000 --> 00:01:34,000 Јавни кључ се користи за шифровање порука. 30 00:01:34,000 --> 00:01:38,000 Као што можете погодити по свом имену, можемо поделити наш јавни кључ са 31 00:01:38,000 --> 00:01:43,000 неко ми желимо, без угрожавања сигурности шифрованом поруком. 32 00:01:43,000 --> 00:01:45,000 Поруке криптовани јавни кључ 33 00:01:45,000 --> 00:01:49,000 може бити дешифрована са одговарајућим приватним кључем. 34 00:01:49,000 --> 00:01:53,000 Иако можете да делите свој јавни кључ, увек треба имати свој приватни кључ тајне. 61 00:01:55,000 --> 00:01:58,000 и само приватни кључ може да се користи за дешифровање порука 62 00:01:58,000 --> 00:02:02,000 ако 2 корисници желе да шаљете поруке шифроване са РСА 63 00:02:02,000 --> 00:02:07,000 и назад и корисници морају да имају своју јавну и приватну пар кључева. 64 00:02:07,000 --> 00:02:10,000 Поруке од корисника 1 до корисника 2 65 00:02:10,000 --> 00:02:15,000 користите само пар кључева, Усер 2 је и порука од корисника до корисника 2 1 66 00:02:15,000 --> 00:02:17,000 користити само Корисник 1 је пар кључева. 67 00:02:17,000 --> 00:02:21,000 Чињеница да постоје 2 одвојена тастера за шифровање и дешифровање порука 68 00:02:21,000 --> 00:02:24,000 чини РСА кључ асиметрични алгоритам. 69 00:02:24,000 --> 00:02:28,000 Ми не треба да шифровање јавни кључ да би га послали на други рачунар 70 00:02:28,000 --> 00:02:31,000 јер је кључ је јавни свеједно. 71 00:02:31,000 --> 00:02:33,000 То значи да РСА нема исти проблем покретања 72 00:02:33,000 --> 00:02:36,000 као симетрични кључ алгоритама. 73 00:02:36,000 --> 00:02:39,000 Дакле, ако желим да пошаљете поруку користећи РСА шифровање 74 00:02:39,000 --> 00:02:42,000 то Роб, ја прво треба Робов јавни кључ. 75 00:02:42,000 --> 00:02:47,000 Да генерише пар кључева, Роб мора да узме 2 велика простих бројева. 76 00:02:47,000 --> 00:02:50,000 Ови бројеви ће се користити у оба јавних и приватних кључева, 77 00:02:50,000 --> 00:02:54,000 али јавни кључ ће користити само производ ових бројева 2, 78 00:02:54,000 --> 00:02:56,000 нису саме бројке. 79 00:02:56,000 --> 00:02:59,000 Једном сам шифроване поруке користећи Робов јавни кључ 80 00:02:59,000 --> 00:03:01,000 Ја могу послати поруку на Роб. 81 00:03:01,000 --> 00:03:05,000 За рачунар, факторинг бројеви је тежак проблем. 82 00:03:05,000 --> 00:03:09,000 Јавни кључ, запамтите, користи производ од 2 простих бројева. 83 00:03:09,000 --> 00:03:12,000 Овај производ мора онда имати само 2 фактора, 84 00:03:12,000 --> 00:03:16,000 што се деси да буду бројеви који чине приватни кључ. 85 00:03:16,000 --> 00:03:20,000 У циљу да дешифрује поруке, РСА ће користити овај приватни кључ 86 00:03:20,000 --> 00:03:25,000 или бројеви множи заједно у процесу креирања јавног кључа. 87 00:03:25,000 --> 00:03:28,000 Зато што је тешко рачунски фактор број 88 00:03:28,000 --> 00:03:32,000 користи у јавним кључем у 2 бројева који се користе у приватном кључу 89 00:03:32,000 --> 00:03:36,000 је тешко нападачу да схватим приватни кључ 90 00:03:36,000 --> 00:03:39,000 да ће бити потребно да дешифрује поруку. 91 00:03:39,000 --> 00:03:43,000 Сада идемо на неким нижим нивоима детаља РСА. 92 00:03:43,000 --> 00:03:46,000 Хајде да прво видимо како можемо генерисати пар кључева. 93 00:03:46,000 --> 00:03:49,000 Прво ћемо морати 2 простих бројева. 94 00:03:49,000 --> 00:03:52,000 Ми ћемо позвати ове 2 броја п и к. 95 00:03:52,000 --> 00:03:56,000 У циљу да изаберете п и к, у пракси псеудорандомли ће генерисати 96 00:03:56,000 --> 00:03:59,000 велики број, а затим користите тест за утврђивање да ли је или не 97 00:03:59,000 --> 00:04:02,000 ови бројеви су вероватно прост. 98 00:04:02,000 --> 00:04:05,000 Можемо задржати генерисање случајних бројева изнова и изнова 99 00:04:05,000 --> 00:04:08,000 док имамо 2 простих бројева које можемо искористити. 100 00:04:08,000 --> 00:04:15,000 Ево идемо покупити П = 23 и К = 43. 101 00:04:15,000 --> 00:04:19,000 Запамтите, у пракси, п и к треба да буду много веће бројеве. 102 00:04:19,000 --> 00:04:22,000 Колико знамо, већи бројева, теже је 103 00:04:22,000 --> 00:04:25,000 да пуца шифровану поруку. 104 00:04:25,000 --> 00:04:29,000 Али то је такође скупљи за шифровање и дешифровање порука. 105 00:04:29,000 --> 00:04:33,000 Данас се често препоручује да п и к су најмање 1024 бита, 106 00:04:33,000 --> 00:04:37,000 који ставља сваки број на преко 300 цифара. 107 00:04:37,000 --> 00:04:40,000 Али ми ћемо покупити ове мале бројеве за овај пример. 108 00:04:40,000 --> 00:04:43,000 Сада ћемо помножити п и к заједно да се 3. број, 109 00:04:43,000 --> 00:04:45,000 који ћемо назвати н. 110 00:04:45,000 --> 00:04:55,000 У нашем случају, н = 23 * 43, који = 989. 111 00:04:55,000 --> 00:04:58,000 Ми смо н = 989. 112 00:04:58,000 --> 00:05:02,000 Следеће што ћемо помножити п - 1 са к - 1 113 00:05:02,000 --> 00:05:05,000 да добију 4. број који ћемо назвати м. 114 00:05:05,000 --> 00:05:15,000 У нашем случају, м = 22 * ​​42, која = 924. 115 00:05:15,000 --> 00:05:18,000 Имамо М = 924. 116 00:05:18,000 --> 00:05:22,000 Сада ћемо потребна е број који је релативно прост до м 117 00:05:22,000 --> 00:05:25,000 и мање од метра. 118 00:05:25,000 --> 00:05:28,000 Два броја су релативно прост и узајамно прости 119 00:05:28,000 --> 00:05:33,000 ако је једини позитиван цео број који дели их обоје подједнако је 1. 120 00:05:33,000 --> 00:05:37,000 Другим речима, највећи заједнички делилац е и м 121 00:05:37,000 --> 00:05:39,000 мора да буде 1. 122 00:05:39,000 --> 00:05:44,000 У пракси, то је уобичајено за е бити прост број 65537 123 00:05:44,000 --> 00:05:48,000 док тај број не деси да буде фактор м. 124 00:05:48,000 --> 00:05:53,000 За наше тастера, узећемо Е = 5 125 00:05:53,000 --> 00:05:57,000 јер 5 је релативно прост да 924. 126 00:05:57,000 --> 00:06:01,000 Коначно, ми ћемо морати још један број, који ћемо назвати д. 127 00:06:01,000 --> 00:06:11,000 Д мора да је нека вредност која задовољава једначину де = 1 (мод м). 128 00:06:11,000 --> 00:06:17,000 Овај мод м означава ћемо користити нешто што се зове модуларна аритметика. 129 00:06:17,000 --> 00:06:21,000 У модуларним аритметици, када број добија већи него неке горње граница 130 00:06:21,000 --> 00:06:24,000 она ће преломити назад около да 0. 131 00:06:24,000 --> 00:06:27,000 Сат, на пример, користи модуларна аритметика. 132 00:06:27,000 --> 00:06:31,000 Један минут након 1:59, на пример, 2:00, 133 00:06:31,000 --> 00:06:33,000 Не 1:60. 134 00:06:33,000 --> 00:06:36,000 Чим рука обмотана око на 0 135 00:06:36,000 --> 00:06:39,000 након достизања горње границе од 60 година. 136 00:06:39,000 --> 00:06:46,000 Дакле, можемо рећи 60 је еквивалентан 0 (мод 60) 137 00:06:46,000 --> 00:06:57,000 а 125 је еквивалентно 65 је еквивалент 5 (мод 60). 138 00:06:57,000 --> 00:07:02,000 Наш јавни кључ ће бити пар е и н 139 00:07:02,000 --> 00:07:09,000 где је у овом случају е је 5 и н 989. 140 00:07:09,000 --> 00:07:15,000 Наш приватни кључ ће бити пар д и н 141 00:07:15,000 --> 00:07:22,000 што у нашем случају је 185 и 989. 142 00:07:22,000 --> 00:07:25,000 Приметимо да је наш оригинални прости п, к не појављују 143 00:07:25,000 --> 00:07:29,000 нигде у нашим приватним или јавним кључевима. 144 00:07:29,000 --> 00:07:33,000 Сада када имамо пар тастера, хајде да погледамо како можемо шифровање 145 00:07:33,000 --> 00:07:36,000 и дешифровање порука. 146 00:07:36,000 --> 00:07:38,000 Желим да пошаљем поруку Роб, 147 00:07:38,000 --> 00:07:42,000 тако да ће бити један до генерисали овај пар кључева. 148 00:07:42,000 --> 00:07:46,000 Онда ћу питати Роб његовог јавног кључа, који ћу користити 149 00:07:46,000 --> 00:07:48,000 за шифровање поруку послати на њега. 150 00:07:48,000 --> 00:07:53,000 Запамтите, то је потпуно у реду Роб да подели своје јавни кључ са мном. 151 00:07:53,000 --> 00:07:56,000 Али то не би било у реду да дели свој приватни кључ. 152 00:07:56,000 --> 00:08:00,000 Немам никакву идеју шта је његов приватни кључ. 153 00:08:00,000 --> 00:08:03,000 Можемо сломити нашу м поруку на неколико комада 154 00:08:03,000 --> 00:08:07,000 Све мањи од н, а затим шифрује сваки од тих комада. 155 00:08:07,000 --> 00:08:12,000 Ми ћемо шифровали ЦС50 ниске, што можемо да се разбије на комаде, 4 156 00:08:12,000 --> 00:08:14,000 један по писму. 157 00:08:14,000 --> 00:08:17,000 У циљу шифровање моју поруку, ја ћу морати да га претворили у 158 00:08:17,000 --> 00:08:20,000 нека врста нумеричке репрезентације. 159 00:08:20,000 --> 00:08:25,000 Идемо повезати у облику ланца АСЦИИ вредности са ликовима у мојој поруци. 160 00:08:25,000 --> 00:08:28,000 У циљу шифровање дати м поруку 161 00:08:28,000 --> 00:08:37,000 Ја ћу морати да израчуна ц = м на е (мод н). 162 00:08:37,000 --> 00:08:40,000 Али сам мора бити мањи од н, 163 00:08:40,000 --> 00:08:45,000 иначе пун порука не може бити изражена по модулу н. 164 00:08:45,000 --> 00:08:49,000 Можемо сломити м на неколико комада, од којих су мањи од н, 165 00:08:49,000 --> 00:08:52,000 и шифровање сваки од тих комада. 166 00:08:52,000 --> 00:09:03,000 Шифровање сваки од ових комаде, добијамо Ц1 = 67 до 5 (мод 989) 167 00:09:03,000 --> 00:09:06,000 која = 658. 168 00:09:06,000 --> 00:09:15,000 За наш други комад имамо 83 до 5 (мод 989) 169 00:09:15,000 --> 00:09:18,000 који = 15. 170 00:09:18,000 --> 00:09:26,000 За наш трећи комад имамо 53 до 5 (мод 989) 171 00:09:26,000 --> 00:09:30,000 која = 799. 172 00:09:30,000 --> 00:09:39,000 И на крају, за наше последње комад имамо 48 до 5 (мод 989) 173 00:09:39,000 --> 00:09:43,000 која = 975. 174 00:09:43,000 --> 00:09:48,000 Сада можемо послати преко ове шифроване вредности Роб. 175 00:09:54,000 --> 00:09:58,000 Изволи, Роб. 176 00:09:58,000 --> 00:10:01,000 Иако је наша порука је у лету, хајде да погледамо још 177 00:10:01,000 --> 00:10:07,000 како смо добили ту вредност за д. 178 00:10:07,000 --> 00:10:17,000 Наш број д потребно да задовољи 5Д = 1 (мод 924). 179 00:10:17,000 --> 00:10:24,000 Ово чини д тхе мултипликативни инверз од 5 924 модулу. 180 00:10:24,000 --> 00:10:28,000 Имајући у виду целих бројева 2, и б, проширени Еуклидов алгоритам 181 00:10:28,000 --> 00:10:33,000 може да се користи да пронађе највећи заједнички делилац ових бројева 2. 182 00:10:33,000 --> 00:10:37,000 Такође ће нам дати 2 других бројева, Кс и И, 183 00:10:37,000 --> 00:10:47,000 које задовољавају секиру једначине + би = највећег заједничког делиоца А и Б. 184 00:10:47,000 --> 00:10:49,000 Како то да нам помогне? 185 00:10:49,000 --> 00:10:52,000 Па, прикључивање Е = 5 за 186 00:10:52,000 --> 00:10:56,000 и м = 924 за б 187 00:10:56,000 --> 00:10:59,000 већ знамо да су ови бројеви су узајамно прости. 188 00:10:59,000 --> 00:11:03,000 Њихов највећи заједнички делилац је 1. 189 00:11:03,000 --> 00:11:09,000 То нам даје 5к + 924и = 1 190 00:11:09,000 --> 00:11:17,000 или 5к = 1 - 924и. 191 00:11:17,000 --> 00:11:22,000 Али, ако смо само стало свему по модулу 924 192 00:11:22,000 --> 00:11:25,000 онда можемо испустити - 924и. 193 00:11:25,000 --> 00:11:27,000 Сетите се сат. 194 00:11:27,000 --> 00:11:31,000 Ако је сказаљка је на 1, а затим тачно 10 сати пролазе, 195 00:11:31,000 --> 00:11:35,000 знамо да је сказаљка ће и даље бити на 1. 196 00:11:35,000 --> 00:11:39,000 Овде ћемо почети од 1. па обмотана тачно и пута, 197 00:11:39,000 --> 00:11:41,000 па ипак ћемо бити на 1. 198 00:11:41,000 --> 00:11:49,000 Имамо 5к = 1 (мод 924). 199 00:11:49,000 --> 00:11:55,000 И овде ово к је исти као д смо тражите раније, 200 00:11:55,000 --> 00:11:58,000 па ако користимо проширени Еуклидов алгоритам 201 00:11:58,000 --> 00:12:04,000 да се овај број к, то је број треба да користимо као наше д. 202 00:12:04,000 --> 00:12:07,000 Сада хајде да проширени Еуклидов алгоритам за а = 5 203 00:12:07,000 --> 00:12:11,000 и б = 924. 204 00:12:11,000 --> 00:12:14,000 Ми ћемо користити метод се назива табела метод. 205 00:12:14,000 --> 00:12:21,000 Наш сто ће имати 4 колоне, к, и, д, к. 206 00:12:21,000 --> 00:12:23,000 Наш сто почиње са 2 реда. 207 00:12:23,000 --> 00:12:28,000 У првом реду имамо 1, 0, онда је наша вредност, што је 5, 208 00:12:28,000 --> 00:12:37,000 и наш други ред је 0, 1, а наша вредност за б, што је 924. 209 00:12:37,000 --> 00:12:40,000 Вредност 4. колоне, К ће бити резултат 210 00:12:40,000 --> 00:12:45,000 поделе вредност Д у реду изнад њега са вредношћу д 211 00:12:45,000 --> 00:12:49,000 на истом реду. 212 00:12:49,000 --> 00:12:56,000 Имамо 5 подељен 924 је 0 са неким остатка. 213 00:12:56,000 --> 00:12:59,000 То значи да имамо К = 0. 214 00:12:59,000 --> 00:13:05,000 Сада је вредност сваке друге ћелије ће бити вредност ћелија 2 реда изнад њега 215 00:13:05,000 --> 00:13:09,000 минус вредност реда изнад њега пута к. 216 00:13:09,000 --> 00:13:11,000 Почнимо са д у 3. реду. 217 00:13:11,000 --> 00:13:19,000 Имамо 5 - 924 * 0 = 5. 218 00:13:19,000 --> 00:13:25,000 Даље имамо 0 - 1 * 0 који је 0 219 00:13:25,000 --> 00:13:30,000 и 1 - 0 * 0 који је 1. 220 00:13:30,000 --> 00:13:33,000 Није лоше, па хајде да пређемо на следећи ред. 221 00:13:33,000 --> 00:13:36,000 Прво морамо нашу вредност к. 222 00:13:36,000 --> 00:13:43,000 924 подељено са 5 = 184 са неким остатка, 223 00:13:43,000 --> 00:13:46,000 тако да наша вредност за к је 184. 224 00:13:46,000 --> 00:13:54,000 Сада 924 - 5 * 184 = 4. 225 00:13:54,000 --> 00:14:05,000 1 - 0 * 184 је 1 и 0 - 1 * 184 је -184. 226 00:14:05,000 --> 00:14:07,000 У реду, хајде да то урадимо следећи ред. 227 00:14:07,000 --> 00:14:10,000 Наша вредност к ће бити 1 јер је 228 00:14:10,000 --> 00:14:15,000 5 подељен 4 = 1 са неком остатка. 229 00:14:15,000 --> 00:14:17,000 Хајде да попуните у другим колонама. 230 00:14:17,000 --> 00:14:21,000 5 - 4 * 1 = 1. 231 00:14:21,000 --> 00:14:25,000 0 - 1 * 1 = -1. 232 00:14:25,000 --> 00:14:33,000 И 1 - 184 * 1 је 185. 233 00:14:33,000 --> 00:14:35,000 Хајде да видимо шта нам је следећа вредност к ће бити. 234 00:14:35,000 --> 00:14:40,000 Па, изгледа да имамо 4 подељен 1, што је 4. 235 00:14:40,000 --> 00:14:43,000 У овом случају смо дели са 1 такав да је к једнако 236 00:14:43,000 --> 00:14:50,000 вредност д у горњој реду значи да смо завршили са нашег алгоритма. 237 00:14:50,000 --> 00:14:58,000 Овде се види да имамо к = 185 и И = -1 у последњем реду. 238 00:14:58,000 --> 00:15:00,000 Хајде сада вратити на наш првобитни циљ. 239 00:15:00,000 --> 00:15:04,000 Рекли смо да је вредност к као резултат води овај алгоритам 240 00:15:04,000 --> 00:15:08,000 ће бити мултипликативни инверз од (мод б). 241 00:15:08,000 --> 00:15:15,000 То значи да је 185 мултипликативни инверз 5 (мод 924) 242 00:15:15,000 --> 00:15:20,000 што значи да имамо вредност од 185 за д. 243 00:15:20,000 --> 00:15:23,000 Чињеница да је д = 1 у последњем реду 244 00:15:23,000 --> 00:15:26,000 проверава да е се узајамно прости са м. 245 00:15:26,000 --> 00:15:30,000 Ако то није било 1, онда бисмо морали да изаберете нову е. 246 00:15:30,000 --> 00:15:33,000 Хајде сада да видимо да ли Роб је добио моју поруку. 247 00:15:33,000 --> 00:15:35,000 Када ми неко пошаље шифровану поруку 248 00:15:35,000 --> 00:15:38,000 док сам задржао мој приватни тастер тајну 249 00:15:38,000 --> 00:15:41,000 Ја сам једини који може да дешифрује поруку. 250 00:15:41,000 --> 00:15:46,000 За дешифровање комад ц могу израчунати оригиналну поруку 251 00:15:46,000 --> 00:15:53,000 једнак комад на д власт (мод н). 252 00:15:53,000 --> 00:15:57,000 Запамтите да је д и н су из мог приватног кључа. 253 00:15:57,000 --> 00:16:01,000 Да би добили потпуну поруку од својих комада можемо да дешифрујемо сваки комад 254 00:16:01,000 --> 00:16:04,000 и повезати у облику ланца резултате. 255 00:16:04,000 --> 00:16:08,000 Тачно како је сигурна је РСА? 256 00:16:08,000 --> 00:16:10,000 Истина је, ми не знамо. 257 00:16:10,000 --> 00:16:14,000 Безбедност је на основу тога колико би времена било потребно нападача да пуца поруку 258 00:16:14,000 --> 00:16:16,000 шифровани РСА. 259 00:16:16,000 --> 00:16:19,000 Сетите се да нападач има приступ вашем јавним кључем, 260 00:16:19,000 --> 00:16:21,000 који садржи и е и н. 261 00:16:21,000 --> 00:16:26,000 Ако нападач успео да фактор н у своје 2 простих бројева, П и К, 262 00:16:26,000 --> 00:16:30,000 онда могли да израчунамо д користи проширени Еуклидов алгоритам. 263 00:16:30,000 --> 00:16:35,000 То јој даје приватни кључ, који се може користити за дешифровање било порука. 264 00:16:35,000 --> 00:16:38,000 Али, колико брзо можемо фактор бројеве? 265 00:16:38,000 --> 00:16:41,000 Опет, ми не знамо. 266 00:16:41,000 --> 00:16:43,000 Нико није нашао брз начин да то раде, 267 00:16:43,000 --> 00:16:46,000 што значи да је дато довољно велике н 268 00:16:46,000 --> 00:16:49,000 било би потребно нападача нереално дуго 269 00:16:49,000 --> 00:16:51,000 да фактор број. 270 00:16:51,000 --> 00:16:54,000 Ако неко открио брз начин факторинг целих бројева 271 00:16:54,000 --> 00:16:57,000 РСА бити сломљен. 272 00:16:57,000 --> 00:17:01,000 Али, чак и ако цео факторизација инхерентно спор 273 00:17:01,000 --> 00:17:04,000 РСА алгоритам и даље могу да имају неку ману у томе 274 00:17:04,000 --> 00:17:07,000 који омогућава лако дешифровање порука. 275 00:17:07,000 --> 00:17:10,000 Нико није нашао и открио још такву грешку, 276 00:17:10,000 --> 00:17:12,000 али то не значи да не постоји. 277 00:17:12,000 --> 00:17:17,000 У теорији, неко би могао да буде тамо чита све податке шифроване РСА. 278 00:17:17,000 --> 00:17:19,000 Постоји још један помало приватности питању. 279 00:17:19,000 --> 00:17:23,000 Ако Томи шифрује неку поруку користећи свој јавни кључ 280 00:17:23,000 --> 00:17:26,000 и нападач шифрује исту поруку користећи свој јавни кључ 281 00:17:26,000 --> 00:17:29,000 нападач ће видети да су 2 поруке су идентичне 282 00:17:29,000 --> 00:17:32,000 па знам шта Томи шифровани. 283 00:17:32,000 --> 00:17:36,000 Да би се ово спречило, поруке су обично јастучићи са случајним битовима 284 00:17:36,000 --> 00:17:39,000 пре него што шифроване тако да се иста порука шифровани 285 00:17:39,000 --> 00:17:44,000 више пута ће изгледати другачије докле год постава на поруци је другачија. 286 00:17:44,000 --> 00:17:47,000 Али запамтите како смо да се раздвојимо порука на комаде 287 00:17:47,000 --> 00:17:50,000 тако да сваки комад је мањи од н? 288 00:17:50,000 --> 00:17:52,000 Постава се ови комади значи да бисмо могли да се раздвојимо ствари 289 00:17:52,000 --> 00:17:57,000 у још више комада од када је обложен комад мора бити мањи од н. 290 00:17:57,000 --> 00:18:01,000 Шифровање и дешифровање су релативно скупи са РСА, 291 00:18:01,000 --> 00:18:05,000 па потребе да разбију поруку на многе делове може бити веома скупо. 292 00:18:05,000 --> 00:18:09,000 Ако велики обим података треба да буде шифрована и дешифрује 293 00:18:09,000 --> 00:18:12,000 можемо да комбинујемо предности симетричних алгоритама кључних 294 00:18:12,000 --> 00:18:16,000 са онима РСА да добијете и сигурност и ефикасност. 295 00:18:16,000 --> 00:18:18,000 Иако нећемо ући у њу овде, 296 00:18:18,000 --> 00:18:23,000 АЕС је симетрични кључ алгоритам као Вигенере и Цезара шифара 297 00:18:23,000 --> 00:18:25,000 али је много теже сломити. 298 00:18:25,000 --> 00:18:30,000 Наравно, не можемо да користимо АЕС без успостављања дељени тајни кључ 299 00:18:30,000 --> 00:18:34,000 између 2 система, и видели смо проблем са тим раније. 300 00:18:34,000 --> 00:18:40,000 Али сада можемо користити СЦГ да успостави заједничку тајни кључ између 2 система. 301 00:18:40,000 --> 00:18:43,000 Ми ћемо позвати рачунар слања података од пошиљаоца 302 00:18:43,000 --> 00:18:46,000 и рачунар прима подацима пријемник. 303 00:18:46,000 --> 00:18:49,000 Пријемник има РСА пара кључева и шаље 304 00:18:49,000 --> 00:18:51,000 јавни кључ пошиљаоца. 305 00:18:51,000 --> 00:18:54,000 Пошиљалац генерише АЕС кључ, 306 00:18:54,000 --> 00:18:57,000 шифрује га са РСА пријемника јавним кључем, 307 00:18:57,000 --> 00:19:00,000 и шаље АЕС кључ пријемник. 308 00:19:00,000 --> 00:19:04,000 Пријемник дешифрује поруку са РСА приватног кључа. 309 00:19:04,000 --> 00:19:09,000 И пошиљалац и прималац сада имају заједничку АЕС кључ између њих. 310 00:19:09,000 --> 00:19:14,000 АЕС, што је много брже него шифровање и дешифровање РСА, 311 00:19:14,000 --> 00:19:18,000 сада се може користити за шифровање велике количине података и послати их на пријемник, 312 00:19:18,000 --> 00:19:21,000 ко може да дешифрује користећи исти тастер. 313 00:19:21,000 --> 00:19:26,000 АЕС, што је много брже него шифровање и дешифровање РСА, 314 00:19:26,000 --> 00:19:30,000 сада се може користити за шифровање велике количине података и послати их на пријемник, 315 00:19:30,000 --> 00:19:32,000 ко може да дешифрује користећи исти тастер. 316 00:19:32,000 --> 00:19:36,000 Ми само треба РСА да пренесе заједничку тастер. 317 00:19:36,000 --> 00:19:40,000 Ми више не морају да користе РСА уопште. 318 00:19:40,000 --> 00:19:46,000 Изгледа да сам добио поруку. 319 00:19:46,000 --> 00:19:49,000 Није битно да ли је неко прочитао оно што је на папиру авиону пре него што сам га ухватио 320 00:19:49,000 --> 00:19:55,000 јер сам једини са приватним кључем. 321 00:19:55,000 --> 00:19:57,000 Идемо дешифровали сваки комаде у поруци. 322 00:19:57,000 --> 00:20:07,000 Први комад, 658, дижемо се д власти, што је 185, 323 00:20:07,000 --> 00:20:18,000 мод н, што је 989, једнака је 67, 324 00:20:18,000 --> 00:20:24,000 што је слово Ц у АСЦИИ. 325 00:20:24,000 --> 00:20:31,000 Сада, на другом комад. 326 00:20:31,000 --> 00:20:35,000 Други комад има вредност 15, 327 00:20:35,000 --> 00:20:41,000 који дижемо до 185. власт, 328 00:20:41,000 --> 00:20:51,000 мод 989, а то је једнако 83 329 00:20:51,000 --> 00:20:57,000 што је слово С у АСЦИИ. 330 00:20:57,000 --> 00:21:06,000 Сада трећи комад који има вредност 799, дижемо до 185, 331 00:21:06,000 --> 00:21:17,000 мод 989, а то је једнако 53, 332 00:21:17,000 --> 00:21:24,000 која је вредност карактера 5 у АСЦИИ. 333 00:21:24,000 --> 00:21:30,000 Сада за последњи комад, који има вредност 975, 334 00:21:30,000 --> 00:21:41,000 дижемо до 185, 989, мод 335 00:21:41,000 --> 00:21:51,000 и то је једнако 48, што је вредност карактера 0 у АСЦИИ. 336 00:21:51,000 --> 00:21:57,000 Моје име је Роб Бовден, а ово је ЦС50. 337 00:21:57,000 --> 00:22:00,000 [ЦС50.ТВ] 338 00:22:06,000 --> 00:22:08,000 РСА уопште. 339 00:22:08,000 --> 00:22:14,000 РСА уопште. [Смех] 340 00:22:14,000 --> 00:22:17,000 На све.