1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [RSA] 2 00:00:02,000 --> 00:00:04,000 [Rob Bowden] [Tommy MacWilliam] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [Þetta er CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 Við skulum taka a líta á RSA, mikið notað reiknirit til að dulkóða gögn. 5 00:00:11,000 --> 00:00:16,000 Dulkóðunaralgrímin eins keisarans og Vigenère dulmál eru ekki mjög örugg. 6 00:00:16,000 --> 00:00:20,000 Með Caesar dulmál, árásarmaður þarf aðeins að prófa 25 mismunandi lykla 7 00:00:20,000 --> 00:00:22,000 til að fá texta á skeytis. 8 00:00:22,000 --> 00:00:25,000 Þótt Vigenère dulmál er öruggari en Caesar dulmál 9 00:00:25,000 --> 00:00:28,000 vegna stærri leita pláss fyrir takka, þegar árásarmaður 10 00:00:28,000 --> 00:00:30,000 veit lengd lykilsins í Vigenère dulmál, 11 00:00:30,000 --> 00:00:34,000 sem hægt er að ákvarða með greiningu mynstur í brengla texta, 12 00:00:34,000 --> 00:00:38,000 the Vigenère dulmál er ekki það mikið öruggari en Caesar dulmál. 13 00:00:38,000 --> 00:00:42,000 RSA, á hinn bóginn, er ekki viðkvæm fyrir árásum eins og þetta. 14 00:00:42,000 --> 00:00:45,000 The Caesar dulmál og Vigenère dulmál nota sama takka 15 00:00:45,000 --> 00:00:47,000 bæði dulkóða og hallmæla skilaboð. 16 00:00:47,000 --> 00:00:51,000 Þessi eign gerir þessi dulmál samhverf reiknirit inni. 17 00:00:51,000 --> 00:00:54,000 A grundvallaratriði vandamál með samhverft lykill reiknirit 18 00:00:54,000 --> 00:00:57,000 er sú að þeir treysta á einn dulkóða og senda skilaboð 19 00:00:57,000 --> 00:00:59,000 og einn taka og decrypting skilaboð 20 00:00:59,000 --> 00:01:03,000 hafa þegar samið upfront á takkanum þeir vilja bæði nota. 21 00:01:03,000 --> 00:01:06,000 En við höfum hluti af gangsetning vandamál hér. 22 00:01:06,000 --> 00:01:10,000 Hvernig koma 2 tölvur sem vilja miðla leyndarlykli milli þeirra? 23 00:01:10,000 --> 00:01:16,000 Ef lykillinn verður að vera leyndarmál, þá þurfum við leið til að dulkóða og hallmæla lykilinn. 24 00:01:16,000 --> 00:01:18,000 Ef allt sem við höfum er samhverft lykill dulmál 25 00:01:18,000 --> 00:01:21,000 þá höfum við bara komið aftur í sama vanda. 26 00:01:21,000 --> 00:01:25,000 RSA, hins vegar notar par af lyklum, 27 00:01:25,000 --> 00:01:28,000 einn fyrir dulkóðun og annar fyrir decryption. 28 00:01:28,000 --> 00:01:32,000 Einn er kallað opinber lykill, og hitt er persónulegur lykill. 29 00:01:32,000 --> 00:01:34,000 Almenningur lykill er notaður til að dulkóða skilaboð. 30 00:01:34,000 --> 00:01:38,000 Eins og þú might giska frá nafni þess, getum við deilt dreifilykil okkar með 31 00:01:38,000 --> 00:01:43,000 einhver sem við viljum án þess að skerða öryggi brengla skilaboð. 32 00:01:43,000 --> 00:01:45,000 Skilaboð dulkóðuð með opinber lykill 33 00:01:45,000 --> 00:01:49,000 Aðeins er hægt að decrypted með samsvarandi persónulegur lykill þess. 34 00:01:49,000 --> 00:01:53,000 Þó að þú getir deilt opinber lykill, þú ættir alltaf að halda sér inni leyndarmál þitt. 61 00:01:55,000 --> 00:01:58,000 og aðeins persónulegur lykill er hægt að nota til að hallmæla skilaboð 62 00:01:58,000 --> 00:02:02,000 ef 2 notendur vilja til að senda skilaboð dulkóðuð með RSA 63 00:02:02,000 --> 00:02:07,000 fram og til baka bæði notendur þurfa að hafa eigin opinbera og einkaaðila þeirra lyklapar. 64 00:02:07,000 --> 00:02:10,000 Skilaboð frá notanda 1 Til Notandi 2 65 00:02:10,000 --> 00:02:15,000 aðeins nota lyklapar Notandi 2, og skilaboð frá notanda 2 til Notandi 1 66 00:02:15,000 --> 00:02:17,000 aðeins nota lyklapar Notandi 1 er. 67 00:02:17,000 --> 00:02:21,000 Sú staðreynd að það eru 2 aðskilin lykla til að dulkóða og hallmæla skilaboð 68 00:02:21,000 --> 00:02:24,000 gerir RSA ósamhverfum lykill reiknirit. 69 00:02:24,000 --> 00:02:28,000 Við þurfum ekki að dulkóða opinber lykill til þess að senda það til annar tölva 70 00:02:28,000 --> 00:02:31,000 þar sem lykillinn er opinber samt. 71 00:02:31,000 --> 00:02:33,000 Þetta þýðir að RSA er ekki sama gangsetning vandamál 72 00:02:33,000 --> 00:02:36,000 sem samhverft lykill reiknirit. 73 00:02:36,000 --> 00:02:39,000 Svo ef ég vil að senda skilaboð með RSA dulkóðun 74 00:02:39,000 --> 00:02:42,000 að ræna, mun ég þarf dreifilykil Rob er. 75 00:02:42,000 --> 00:02:47,000 Til að búa til par af lyklum, Rob þarf að velja 2 stórar prímtölur. 76 00:02:47,000 --> 00:02:50,000 Þessar tölur verða notaðar bæði í einka-og lykla, 77 00:02:50,000 --> 00:02:54,000 en opinber lykill mun aðeins nota vöruna af þessum 2 tölum, 78 00:02:54,000 --> 00:02:56,000 ekki tölurnar sjálfir. 79 00:02:56,000 --> 00:02:59,000 Þegar ég hef dulkóðuð skilaboð notar opinber lykill Rob er 80 00:02:59,000 --> 00:03:01,000 Ég er að senda skilaboð til Rob. 81 00:03:01,000 --> 00:03:05,000 Fyrir tölvu Factoring númer er erfitt vandamál. 82 00:03:05,000 --> 00:03:09,000 Almenningur lykill, muna, notað vöruna á 2 frumtalna. 83 00:03:09,000 --> 00:03:12,000 Þessi vara má þá hafa aðeins 2 þætti, 84 00:03:12,000 --> 00:03:16,000 sem verður að vera tölurnar sem gera upp persónulegur lykill. 85 00:03:16,000 --> 00:03:20,000 Til að afkóða skilaboðin, RSA mun nota þetta einkalykilinn 86 00:03:20,000 --> 00:03:25,000 eða tölurnar margfaldast saman í því ferli að búa til opinber lykill. 87 00:03:25,000 --> 00:03:28,000 Vegna þess að það er computationally erfitt að þáttur númer 88 00:03:28,000 --> 00:03:32,000 notað í opinber lykill í 2 númer sem notuð eru í almennum lykill 89 00:03:32,000 --> 00:03:36,000 það er erfitt fyrir árásarmaður að reikna út einkalykilinn 90 00:03:36,000 --> 00:03:39,000 það mun vera nauðsynlegt til að hallmæla the skilaboð. 91 00:03:39,000 --> 00:03:43,000 Nú skulum fara í sumum lægri upplýsingar um RSA. 92 00:03:43,000 --> 00:03:46,000 Við skulum sjá fyrst hvernig við getum búið til a par af lyklum. 93 00:03:46,000 --> 00:03:49,000 Fyrst þurfum við að fá 2 prímtölur. 94 00:03:49,000 --> 00:03:52,000 Við munum hringja í þessar 2 tölur p og q. 95 00:03:52,000 --> 00:03:56,000 Í því skyni að ná p og q, í raun að við myndum pseudorandomly búa 96 00:03:56,000 --> 00:03:59,000 mikill fjöldi og þá nota próf til að ákvarða hvort 97 00:03:59,000 --> 00:04:02,000 þær tölur eru sennilega helsta. 98 00:04:02,000 --> 00:04:05,000 Við getum haldið búa handahófi númer aftur og aftur 99 00:04:05,000 --> 00:04:08,000 þar sem við höfum 2 primes sem við getum notað. 100 00:04:08,000 --> 00:04:15,000 Hér skulum velja P = 23 og q = 43. 101 00:04:15,000 --> 00:04:19,000 Mundu, í reynd, p og q ætti að vera miklu stærri tölur. 102 00:04:19,000 --> 00:04:22,000 Eins og langt eins og við vitum, því meiri tölur, því erfiðara er 103 00:04:22,000 --> 00:04:25,000 að sprunga er dulkóðuð skilaboð. 104 00:04:25,000 --> 00:04:29,000 En það er líka dýrara að dulkóða og hallmæla skilaboð. 105 00:04:29,000 --> 00:04:33,000 Í dag það er oft mælt með því að p og q eru að minnsta kosti 1024 bitar, 106 00:04:33,000 --> 00:04:37,000 sem setur hvert númer á yfir 300 aukastafir. 107 00:04:37,000 --> 00:04:40,000 En við munum ná þessir litlu tölur fyrir þessu dæmi. 108 00:04:40,000 --> 00:04:43,000 Nú munum við margfalda p og q saman til að fá 3 númer, 109 00:04:43,000 --> 00:04:45,000 sem við munum kalla n. 110 00:04:45,000 --> 00:04:55,000 Í okkar tilviki, n = 23 * 43, sem = 989. 111 00:04:55,000 --> 00:04:58,000 Við höfum N = 989. 112 00:04:58,000 --> 00:05:02,000 Næst munum við margfalda p - 1 með Q - 1 113 00:05:02,000 --> 00:05:05,000 að fá 4 númer sem við munum kalla m. 114 00:05:05,000 --> 00:05:15,000 Í okkar tilviki, m = 22 * ​​42, sem = 924. 115 00:05:15,000 --> 00:05:18,000 Við höfum M = 924. 116 00:05:18,000 --> 00:05:22,000 Nú við þurfum að tala e sem er ósamþátta m 117 00:05:22,000 --> 00:05:25,000 og minna en m. 118 00:05:25,000 --> 00:05:28,000 Tvær tölur eru ósamþátta eða coprime 119 00:05:28,000 --> 00:05:33,000 Ef einungis jákvæð heiltala sem skiptir þau bæði jafnt er 1. 120 00:05:33,000 --> 00:05:37,000 Með öðrum orðum, mest sameiginlegt deilitöluna e og m 121 00:05:37,000 --> 00:05:39,000 skal vera 1. 122 00:05:39,000 --> 00:05:44,000 Í raun er það algengt að e vera frumtala 65537 123 00:05:44,000 --> 00:05:48,000 svo lengi sem þessi tala gerist ekki að vera þáttur í m. 124 00:05:48,000 --> 00:05:53,000 Um takka okkar, munum við velja e = 5 125 00:05:53,000 --> 00:05:57,000 síðan 5 er ósamþátta 924. 126 00:05:57,000 --> 00:06:01,000 Loks þurfum við að fá eitt númer, sem við munum kalla d. 127 00:06:01,000 --> 00:06:11,000 D verður að vera einhver verðmæti sem uppfyllir jöfnuna de = 1 (mod m). 128 00:06:11,000 --> 00:06:17,000 Þetta mod m táknar að við munum nota eitthvað sem kallast mát tölur. 129 00:06:17,000 --> 00:06:21,000 Í mát tölur, þegar tala fær hærri en sumir efri 130 00:06:21,000 --> 00:06:24,000 það verður sett aftur í kring til 0. 131 00:06:24,000 --> 00:06:27,000 A klukka, til dæmis notar mát tölur. 132 00:06:27,000 --> 00:06:31,000 Eina mínútu eftir 1:59, til dæmis, er 2:00, 133 00:06:31,000 --> 00:06:33,000 ekki 1:60. 134 00:06:33,000 --> 00:06:36,000 The mínútu hönd hefur vafið um að 0 135 00:06:36,000 --> 00:06:39,000 á að ná efri mörk 60 ára. 136 00:06:39,000 --> 00:06:46,000 Svo getum við sagt 60 jafngildir 0 (mod 60) 137 00:06:46,000 --> 00:06:57,000 og 125 jafngildir 65 jafngildir 5 (mod 60). 138 00:06:57,000 --> 00:07:02,000 Opinber lykill okkar verður par E og N 139 00:07:02,000 --> 00:07:09,000 hvar í þessu tilfelli e er 5 og n er 989. 140 00:07:09,000 --> 00:07:15,000 Persónulegur lykill okkar verður par d og n, 141 00:07:15,000 --> 00:07:22,000 sem í okkar tilviki er 185 og 989. 142 00:07:22,000 --> 00:07:25,000 Takið eftir að upprunalega primes okkar p og q birtast ekki 143 00:07:25,000 --> 00:07:29,000 hvar sem er í einka-eða opinbera lykla okkar. 144 00:07:29,000 --> 00:07:33,000 Nú þegar við höfum par okkar lykla, við skulum taka a líta á hvernig við getum dulkóða 145 00:07:33,000 --> 00:07:36,000 og hallmæla skilaboð. 146 00:07:36,000 --> 00:07:38,000 Mig langar til að senda skilaboð til að ræna, 147 00:07:38,000 --> 00:07:42,000 svo hann verður að vera sá að búa til þennan takka par. 148 00:07:42,000 --> 00:07:46,000 Og ég ætla að biðja Rob um opinber lykill hans, sem ég ætla að nota 149 00:07:46,000 --> 00:07:48,000 til að dulkóða skilaboð til að senda til hans. 150 00:07:48,000 --> 00:07:53,000 Mundu að það er alveg í lagi fyrir Rob að deila opinber lykill hans með mér. 151 00:07:53,000 --> 00:07:56,000 En það væri ekki allt í lagi að deila einkalykilinn hans. 152 00:07:56,000 --> 00:08:00,000 Ég hef ekki nokkra hugmynd hvað persónulegur lykill hans er. 153 00:08:00,000 --> 00:08:03,000 Við getum skemmt skilaboð M okkar upp í nokkra búta 154 00:08:03,000 --> 00:08:07,000 öll minni en n og dulkóða hverjum þeim klumpur. 155 00:08:07,000 --> 00:08:12,000 Við munum dulkóða streng CS50, sem við getum brjóta upp í 4 bita, 156 00:08:12,000 --> 00:08:14,000 einn bókstaf. 157 00:08:14,000 --> 00:08:17,000 Til að dulkóða skilaboð til þín, ég þarf að umbreyta það inn í 158 00:08:17,000 --> 00:08:20,000 einhvers konar tölugildi framsetning. 159 00:08:20,000 --> 00:08:25,000 Skulum concatenate ASCII gildi með stafina í skilaboðunum mínum. 160 00:08:25,000 --> 00:08:28,000 Til að dulkóða skeyti m 161 00:08:28,000 --> 00:08:37,000 Ég þarf að reikna c = m í e (mod n). 162 00:08:37,000 --> 00:08:40,000 En m verður að vera minni en n, 163 00:08:40,000 --> 00:08:45,000 eða annars allt bréfið er ekki gefið modulo n. 164 00:08:45,000 --> 00:08:49,000 Við getum skemmt m upp í nokkra búta, sem allir eru minni en n, 165 00:08:49,000 --> 00:08:52,000 og dulkóða hverjum þeim klumpur. 166 00:08:52,000 --> 00:09:03,000 Dulkóðun öllum þessum bitum, fáum við c1 = 67 til 5 (mod 989) 167 00:09:03,000 --> 00:09:06,000 sem = 658. 168 00:09:06,000 --> 00:09:15,000 Fyrir seinni klumpur okkar sem við höfum 83 til 5 (mod 989) 169 00:09:15,000 --> 00:09:18,000 sem = 15. 170 00:09:18,000 --> 00:09:26,000 Fyrir þriðja klumpur okkar sem við höfum 53 til 5 (mod 989) 171 00:09:26,000 --> 00:09:30,000 hver = 799. 172 00:09:30,000 --> 00:09:39,000 Og að lokum, að síðustu klumpur okkar sem við höfum 48 til 5 (mod 989) 173 00:09:39,000 --> 00:09:43,000 sem = 975. 174 00:09:43,000 --> 00:09:48,000 Nú getum við sent á þessa dulkóðuð gildi að ræna. 175 00:09:54,000 --> 00:09:58,000 Hér þú fara, Rob. 176 00:09:58,000 --> 00:10:01,000 Þó skilaboðin okkar er á flugi, við skulum taka annað útlit 177 00:10:01,000 --> 00:10:07,000 á hvernig við fengum þessi gildi fyrir d. 178 00:10:07,000 --> 00:10:17,000 Númer D okkar þarf að fullnægja 5D = 1 (mod 924). 179 00:10:17,000 --> 00:10:24,000 Þetta gerir d multiplicative andhverfa 5 modulo 924. 180 00:10:24,000 --> 00:10:28,000 Gefið 2 heiltölur a og b, útbreiddur Evklíðs 181 00:10:28,000 --> 00:10:33,000 má nota til að finna mesta sameiginlega divisor af þessum 2 heiltölur. 182 00:10:33,000 --> 00:10:37,000 Það mun einnig gefa okkur 2 aðrar tölur, x og y, 183 00:10:37,000 --> 00:10:47,000 sem uppfylla jöfnuna ax + af = mesta sameiginlega divisor af a og b. 184 00:10:47,000 --> 00:10:49,000 Hvernig virkar þetta hjálpað okkur? 185 00:10:49,000 --> 00:10:52,000 Jæja, tengja í e = 5 fyrir 186 00:10:52,000 --> 00:10:56,000 og m = 924 fyrir b 187 00:10:56,000 --> 00:10:59,000 við vitum nú þegar að þessar tölur eru coprime. 188 00:10:59,000 --> 00:11:03,000 Mesta sameiginlegt deilitöluna þeirra er 1. 189 00:11:03,000 --> 00:11:09,000 Þetta gefur okkur 5x + 924y = 1 190 00:11:09,000 --> 00:11:17,000 eða 5x = 1 - 924y. 191 00:11:17,000 --> 00:11:22,000 En ef við vænt aðeins um allt modulo 924 192 00:11:22,000 --> 00:11:25,000 þá getum við sleppa - 924y. 193 00:11:25,000 --> 00:11:27,000 Hugsaðu aftur á klukkuna. 194 00:11:27,000 --> 00:11:31,000 Ef mínútu hönd er á 1 og þá nákvæmlega 10 klukkustundir líða, 195 00:11:31,000 --> 00:11:35,000 við vitum að mínútu vegar mun enn vera á 1. 196 00:11:35,000 --> 00:11:39,000 Hér erum við að byrja á 1 og síðan sett í kringum nákvæmlega Y sinnum, 197 00:11:39,000 --> 00:11:41,000 þannig að við munum enn á 1. 198 00:11:41,000 --> 00:11:49,000 Við höfum 5x = 1 (mod 924). 199 00:11:49,000 --> 00:11:55,000 Og hér er þetta x eins og D við vorum að leita að áður, 200 00:11:55,000 --> 00:11:58,000 þannig að ef við notum langan Evklíðs 201 00:11:58,000 --> 00:12:04,000 að fá þessa tölu x, það er númer við ættum að nota sem d okkar. 202 00:12:04,000 --> 00:12:07,000 Nú skulum hlaupa útbreiddur Evklíðs fyrir = 5 203 00:12:07,000 --> 00:12:11,000 og b = 924. 204 00:12:11,000 --> 00:12:14,000 Við munum nota aðferð sem kallast borðið aðferð. 205 00:12:14,000 --> 00:12:21,000 Taflan okkar mun hafa 4 dálka, x, y, D, og ​​k. 206 00:12:21,000 --> 00:12:23,000 Borð okkar byrjar með 2 línum. 207 00:12:23,000 --> 00:12:28,000 Í fyrstu röðinni við höfum 1, 0, þá gildi okkar a, sem er 5, 208 00:12:28,000 --> 00:12:37,000 og önnur röðin okkar er 0, 1, og gildi okkar fyrir B, sem er 924. 209 00:12:37,000 --> 00:12:40,000 Verðmæti 4. dálki, k, verður niðurstaðan 210 00:12:40,000 --> 00:12:45,000 að deila verðmæti d í röð yfir það með verðmæti d 211 00:12:45,000 --> 00:12:49,000 á sömu röð. 212 00:12:49,000 --> 00:12:56,000 Við höfum 5 deilt með 924 er 0 með einhverjum afganginn. 213 00:12:56,000 --> 00:12:59,000 Það þýðir að við höfum k = 0. 214 00:12:59,000 --> 00:13:05,000 Nú gildi öll önnur frumu verður verðmæti klefi 2 röðum fyrir ofan það 215 00:13:05,000 --> 00:13:09,000 mínus verðmæti röð yfir það sinnum k. 216 00:13:09,000 --> 00:13:11,000 Við skulum byrja með D í 3 röð. 217 00:13:11,000 --> 00:13:19,000 Við höfum 5-924 * 0 = 5. 218 00:13:19,000 --> 00:13:25,000 Næst höfum við 0 - 1 * 0 sem er 0 219 00:13:25,000 --> 00:13:30,000 og 1 - 0 * 0, sem er 1. 220 00:13:30,000 --> 00:13:33,000 Ekki svo slæmt, þannig að við skulum fara í næstu línu. 221 00:13:33,000 --> 00:13:36,000 Fyrst þurfum við gildi okkar k. 222 00:13:36,000 --> 00:13:43,000 924 deilt með 5 = 184 með einhverjum afganginn, 223 00:13:43,000 --> 00:13:46,000 svo er gildi okkar til K 184. 224 00:13:46,000 --> 00:13:54,000 Nú 924-5 * 184 = 4. 225 00:13:54,000 --> 00:14:05,000 1 - 0 * 184 er 1 og 0 - 1 * 184 er -184. 226 00:14:05,000 --> 00:14:07,000 Allt í lagi, við skulum gera næstu línu. 227 00:14:07,000 --> 00:14:10,000 Gildi okkar á k verður 1 því 228 00:14:10,000 --> 00:14:15,000 5 deilt með 4 = 1 með einhverjum afganginn. 229 00:14:15,000 --> 00:14:17,000 Við skulum fylla í öðrum dálkum. 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 Og 1-184 * 1 er 185. 233 00:14:33,000 --> 00:14:35,000 Við skulum sjá hvað næsta gildi okkar k væri. 234 00:14:35,000 --> 00:14:40,000 Jæja, það lítur út eins og við höfum 4 deilt með 1, sem er 4. 235 00:14:40,000 --> 00:14:43,000 Í þessu tilfelli þar sem við erum að deila um 1 þannig að k er jafnt 236 00:14:43,000 --> 00:14:50,000 verðmæti d í ofangreindum röð þýðir að við erum búin með reiknirit okkar. 237 00:14:50,000 --> 00:14:58,000 Við sjáum hér að við höfum x = 185 og y = -1 í síðustu röð. 238 00:14:58,000 --> 00:15:00,000 Við skulum nú koma aftur í upprunalegt markmið okkar. 239 00:15:00,000 --> 00:15:04,000 Við sögðum að verðmæti x vegna keyra þetta reiknirit 240 00:15:04,000 --> 00:15:08,000 væri multiplicative andhverfa A (mod b). 241 00:15:08,000 --> 00:15:15,000 Það þýðir að 185 er multiplicative andhverfa 5 (mod 924) 242 00:15:15,000 --> 00:15:20,000 sem þýðir að við höfum verðmæti 185 til d. 243 00:15:20,000 --> 00:15:23,000 Sú staðreynd að d = 1 í síðustu röðinni 244 00:15:23,000 --> 00:15:26,000 staðfestir að E var coprime á m. 245 00:15:26,000 --> 00:15:30,000 Ef það væri ekki 1 þá yrðum við að velja nýtt e. 246 00:15:30,000 --> 00:15:33,000 Nú skulum sjá hvort Rob hefur fengið skilaboð minn. 247 00:15:33,000 --> 00:15:35,000 Þegar einhver sendir mér dulkóðuð skilaboð 248 00:15:35,000 --> 00:15:38,000 svo lengi sem ég hef kept persónulegur lykill leyndarmál 249 00:15:38,000 --> 00:15:41,000 Ég er sú eina sem getur hallmæla the skilaboð. 250 00:15:41,000 --> 00:15:46,000 Til hallmæla klumpur c Ég get reikna upprunalega skeytið 251 00:15:46,000 --> 00:15:53,000 er jafn klumpur til d vald (mod n). 252 00:15:53,000 --> 00:15:57,000 Mundu að d og n eru frá persónulegur lykill. 253 00:15:57,000 --> 00:16:01,000 Til að fá fulla skilaboð frá klumpur sínum við hallmæla hver klumpur 254 00:16:01,000 --> 00:16:04,000 og concatenate niðurstöður. 255 00:16:04,000 --> 00:16:08,000 Einmitt hversu öruggt er RSA? 256 00:16:08,000 --> 00:16:10,000 Sannleikurinn er, vitum við ekki. 257 00:16:10,000 --> 00:16:14,000 Öryggi er byggt á hversu langan tíma það myndi taka að árásarmaður til sprunga skilaboð 258 00:16:14,000 --> 00:16:16,000 dulkóðuð með RSA. 259 00:16:16,000 --> 00:16:19,000 Mundu að árásarmaður hafi aðgang að opinber lykill, 260 00:16:19,000 --> 00:16:21,000 sem inniheldur bæði e og n. 261 00:16:21,000 --> 00:16:26,000 Ef árásarmaður tekst að þáttur n í 2 primes þess, p og q, 262 00:16:26,000 --> 00:16:30,000 þá hún mætti ​​reikna d með langan Evklíðs. 263 00:16:30,000 --> 00:16:35,000 Þetta gefur henni persónulegur lykill, sem hægt er að nota til að hallmæla einhver skilaboð. 264 00:16:35,000 --> 00:16:38,000 En hversu fljótt er hægt að þáttur heiltölur? 265 00:16:38,000 --> 00:16:41,000 Aftur, vitum við ekki. 266 00:16:41,000 --> 00:16:43,000 Enginn hefur fundið fljótur leið til að gera það, 267 00:16:43,000 --> 00:16:46,000 sem þýðir að miðað nógu stór N 268 00:16:46,000 --> 00:16:49,000 það myndi taka að árásarmaður unrealistically lengi 269 00:16:49,000 --> 00:16:51,000 að þáttur númer. 270 00:16:51,000 --> 00:16:54,000 Ef einhver ljós fljótlega leið heiltölur þátta 271 00:16:54,000 --> 00:16:57,000 RSA væri brotinn. 272 00:16:57,000 --> 00:17:01,000 En jafnvel þótt heiltala þáttun er í eðli sínu hægur 273 00:17:01,000 --> 00:17:04,000 RSA reiknirit gæti samt hafa sumir galli í það 274 00:17:04,000 --> 00:17:07,000 sem gerir ráð fyrir þægilegur decryption skilaboð. 275 00:17:07,000 --> 00:17:10,000 Enginn hefur fundið og ljós svo galli enn, 276 00:17:10,000 --> 00:17:12,000 en það þýðir ekki að maður er ekki til. 277 00:17:12,000 --> 00:17:17,000 Fræðilega séð, einhver gæti verið þarna úti að lesa öll gögn dulkóðuð með RSA. 278 00:17:17,000 --> 00:17:19,000 There 'annar hluti af næði tölublað. 279 00:17:19,000 --> 00:17:23,000 Ef Tommy brengla nokkur skilaboð með opinber lykill minn 280 00:17:23,000 --> 00:17:26,000 og árásarmaður brengla sömu skilaboð með opinber lykill minn 281 00:17:26,000 --> 00:17:29,000 árásarmaður vilja sjá að 2 skilaboð eru eins 282 00:17:29,000 --> 00:17:32,000 og þannig veit hvað Tommy dulkóðuð. 283 00:17:32,000 --> 00:17:36,000 Í því skyni að koma í veg fyrir þetta, eru skilaboð yfirleitt padded með handahófi bits 284 00:17:36,000 --> 00:17:39,000 áður en dulkóðuð þannig að sömu skilaboð dulkóðuð 285 00:17:39,000 --> 00:17:44,000 mörgum sinnum mun líta öðruvísi svo lengi sem padding á bréfinu er öðruvísi. 286 00:17:44,000 --> 00:17:47,000 En muna hvernig við verðum að skipta skilaboð í bita 287 00:17:47,000 --> 00:17:50,000 þannig að hver bútur er minni en n? 288 00:17:50,000 --> 00:17:52,000 Padding á klumpur þýðir að við gætum þurft að skipta það upp 289 00:17:52,000 --> 00:17:57,000 í enn meira klumpur Þar sem padded klumpur verður að vera minni en n. 290 00:17:57,000 --> 00:18:01,000 Dulkóðun og decryption er tiltölulega dýr og RSA, 291 00:18:01,000 --> 00:18:05,000 og svo að þurfa að brjóta upp skilaboð í mörgum klumpur getur verið mjög dýrt. 292 00:18:05,000 --> 00:18:09,000 Ef stór magn af gögnum þarf að vera dulkóðuð og afkóðað 293 00:18:09,000 --> 00:18:12,000 við getum sameinað kosti samhverft lykill reiknirit 294 00:18:12,000 --> 00:18:16,000 með þá RSA að fá bæði öryggi og skilvirkni. 295 00:18:16,000 --> 00:18:18,000 Þó við munum ekki fara inn í það hér, 296 00:18:18,000 --> 00:18:23,000 AES er samhverft lykill reiknirit eins Vigenère og Caesar dulmál 297 00:18:23,000 --> 00:18:25,000 en miklu erfiðara að sprunga. 298 00:18:25,000 --> 00:18:30,000 Auðvitað getum við ekki notað AES án stofnunar sameiginlega leyndarlykli 299 00:18:30,000 --> 00:18:34,000 milli 2 kerfi, og við sá vandræðum með það áður. 300 00:18:34,000 --> 00:18:40,000 En nú getum við notað RSA til að koma á sameiginlega leyndarlykli milli 2 kerfi. 301 00:18:40,000 --> 00:18:43,000 Við munum hringja í tölvuna að senda gögn sendanda 302 00:18:43,000 --> 00:18:46,000 og tölvan fengu gögn móttökutæki. 303 00:18:46,000 --> 00:18:49,000 The símtól hefur RSA lykill par og sendir 304 00:18:49,000 --> 00:18:51,000 opinber lykill til sendanda. 305 00:18:51,000 --> 00:18:54,000 Sendandinn býr til AES lykill, 306 00:18:54,000 --> 00:18:57,000 brengla það með RSA móttakanda, 307 00:18:57,000 --> 00:19:00,000 og sendir AES lykill til the símtól. 308 00:19:00,000 --> 00:19:04,000 The símtól hallmæla skilaboð með RSA persónulegur lykill þess. 309 00:19:04,000 --> 00:19:09,000 Bæði sendandi og móttökutæki hafa nú hluti AES lykill milli þeirra. 310 00:19:09,000 --> 00:19:14,000 AES, sem er mun hraðar á dulkóðun og decryption en RSA, 311 00:19:14,000 --> 00:19:18,000 Nú er hægt að nota til að dulkóða mikið magn af gögnum og senda til móttakanda, 312 00:19:18,000 --> 00:19:21,000 sem getur hallmæla með sama takka. 313 00:19:21,000 --> 00:19:26,000 AES, sem er mun hraðar á dulkóðun og decryption en RSA, 314 00:19:26,000 --> 00:19:30,000 Nú er hægt að nota til að dulkóða mikið magn af gögnum og senda til móttakanda, 315 00:19:30,000 --> 00:19:32,000 sem getur hallmæla með sama takka. 316 00:19:32,000 --> 00:19:36,000 Við þurftum bara RSA til að flytja hluti inni. 317 00:19:36,000 --> 00:19:40,000 Við þurfum ekki lengur að nota RSA yfirleitt. 318 00:19:40,000 --> 00:19:46,000 Það lítur út eins og ég hef fengið skilaboð. 319 00:19:46,000 --> 00:19:49,000 Það skiptir ekki máli hvort einhver lesið það sem er á pappír flugvél áður en ég tók hana 320 00:19:49,000 --> 00:19:55,000 vegna þess að ég er sú eina með persónulegur lykill. 321 00:19:55,000 --> 00:19:57,000 Skulum hallmæla hvert klumpur í skilaboðum. 322 00:19:57,000 --> 00:20:07,000 Fyrsta klumpur, 658, hækka við að d vald, sem er 185, 323 00:20:07,000 --> 00:20:18,000 unga fólkið n, sem er 989, er jöfn 67, 324 00:20:18,000 --> 00:20:24,000 sem er stafurinn C í ASCII. 325 00:20:24,000 --> 00:20:31,000 Nú á seinni klumpur. 326 00:20:31,000 --> 00:20:35,000 Annað klumpur hefur gildi 15, 327 00:20:35,000 --> 00:20:41,000 sem við hækka í 185 völd, 328 00:20:41,000 --> 00:20:51,000 unga fólkið 989, og það er jafnt 83 329 00:20:51,000 --> 00:20:57,000 sem er bókstafurinn S í ASCII. 330 00:20:57,000 --> 00:21:06,000 Nú á þriðja klumpur, sem hefur gildi 799, hækka við að 185, 331 00:21:06,000 --> 00:21:17,000 unga fólkið 989, og það er jafn í 53, 332 00:21:17,000 --> 00:21:24,000 sem er gildi eðli 5 í ASCII. 333 00:21:24,000 --> 00:21:30,000 Nú á síðasta klumpur, sem hefur gildið 975, 334 00:21:30,000 --> 00:21:41,000 við vekja til 185, unga fólkið 989, 335 00:21:41,000 --> 00:21:51,000 og þetta er jafn 48, sem er gildi eðli 0 ASCII. 336 00:21:51,000 --> 00:21:57,000 Mitt nafn er Rob Bowden, og þetta er CS50. 337 00:21:57,000 --> 00:22:00,000 [CS50.TV] 338 00:22:06,000 --> 00:22:08,000 RSA yfirleitt. 339 00:22:08,000 --> 00:22:14,000 RSA yfirleitt. [Hlátur] 340 00:22:14,000 --> 00:22:17,000 Á öllum.