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] [Harvardeko Unibertsitateko] 3 00:00:04,000 --> 00:00:07,000 [Hau da CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 Dezagun RSA, datuak enkriptatzeko algoritmoa asko erabiltzen den begirada bat. 5 00:00:11,000 --> 00:00:16,000 Encryption Caesar eta Vigenère zifraketen bezalako algoritmoak ez dira oso segurua. 6 00:00:16,000 --> 00:00:20,000 Zesarrek zifratze, erasotzaile batek bakarrik, 25 gako ezberdin saiatu behar 7 00:00:20,000 --> 00:00:22,000 mezua testu arruntera. 8 00:00:22,000 --> 00:00:25,000 Zifraketa Vigenère da Zesarrek zifratze baino gehiago seguru bitartean 9 00:00:25,000 --> 00:00:28,000 giltzak bilaketa espazio handiagoa delako, erasotzaile batek behin 10 00:00:28,000 --> 00:00:30,000 gakoaren luzera ezagutzen Vigenère zifratze bat, 11 00:00:30,000 --> 00:00:34,000 enkriptatutako testua ereduak azterketa bidez zehaztu daiteke, 12 00:00:34,000 --> 00:00:38,000 Zifraketa Vigenère da gehiegi ez Zesarrek zifratze baino askoz ere seguruagoa da. 13 00:00:38,000 --> 00:00:42,000 RSA, beste alde batetik, ez da hau atsegin erasoak zaurgarria. 14 00:00:42,000 --> 00:00:45,000 Zesarren zifratua eta Vigenère Zifraketa erabili tekla berean 15 00:00:45,000 --> 00:00:47,000 bai encrypt eta mezua desenkriptatu. 16 00:00:47,000 --> 00:00:51,000 Jabetza Horrek horiek zifraketen simetrikoa gakoa algoritmoak. 17 00:00:51,000 --> 00:00:54,000 Gako simetrikoa algoritmoak arazo nagusia A 18 00:00:54,000 --> 00:00:57,000 mezua enkriptatzeko eta bidaltzeko konfiantza dutela 19 00:00:57,000 --> 00:00:59,000 eta bat jasotzea eta mezua desenkriptatu 20 00:00:59,000 --> 00:01:03,000 jadanik adostutako Upfront gakoa zein erabili egingo dute. 21 00:01:03,000 --> 00:01:06,000 Baina arazoa startup apur bat behar dugu hemen. 22 00:01:06,000 --> 00:01:10,000 Nola 2 komunikatu nahi duten ordenagailuak ezarri bien arteko gako sekretua? 23 00:01:10,000 --> 00:01:16,000 Gako sekretua izango behar bada, eta gero enkriptatzeko eta desenkriptatzeko gakoa modu bat behar dugu. 24 00:01:16,000 --> 00:01:18,000 Dugu simetrikoa gako kriptografia bada 25 00:01:18,000 --> 00:01:21,000 ondoren besterik ez dugu arazo bera itzuli. 26 00:01:21,000 --> 00:01:25,000 RSA, beste alde batetik, gako pare bat erabiltzen du, 27 00:01:25,000 --> 00:01:28,000 enkriptatzea eta deszifratzeko beste bat. 28 00:01:28,000 --> 00:01:32,000 One gako publikoa deitzen da, eta beste gako pribatua da. 29 00:01:32,000 --> 00:01:34,000 Gako publikoa erabiltzen du mezuak enkriptatzeko. 30 00:01:34,000 --> 00:01:38,000 Dezakezu bere izena asmatu, gure gako publikoa partekatu ahal izango dugu 31 00:01:38,000 --> 00:01:43,000 Edozeinek enkriptatutako mezu baten segurtasuna arriskuan jarri gabe nahi dugu. 32 00:01:43,000 --> 00:01:45,000 Mezuak gako publikoa erabiliz enkriptatuko 33 00:01:45,000 --> 00:01:49,000 bakarrik ikus daiteke bere dagokion gako pribatua desenkriptatu. 34 00:01:49,000 --> 00:01:53,000 Zure gako publikoa partekatu arren, beti gorde behar duzun zure gako pribatuaren sekretua. 61 00:01:55,000 --> 00:01:58,000 soilik gako pribatua mezuak desenkriptatzeko erabili ahal izango dira 62 00:01:58,000 --> 00:02:02,000 2 erabiltzaile mezuak RSA enkriptatuak bidali nahi izanez gero 63 00:02:02,000 --> 00:02:07,000 atzera eta aurrera erabiltzaile bai erakunde publiko eta pribatu batzuk beren gako parea behar dute. 64 00:02:07,000 --> 00:02:10,000 Erabiltzaile 1 erabiltzaile 2 Messages 65 00:02:10,000 --> 00:02:15,000 bakarrik erabili user 2 gako-bikotea, eta mezuak user 2 erabiltzaile 1 66 00:02:15,000 --> 00:02:17,000 bakarrik erabili user 1 gako parea. 67 00:02:17,000 --> 00:02:21,000 Izan ere, ez dira 2 aparteko gakoak enkriptatzeko eta mezuak desenkriptatu 68 00:02:21,000 --> 00:02:24,000 egiten RSA gako algoritmoa asimetrikoa. 69 00:02:24,000 --> 00:02:28,000 Ez dugu behar gako publikoa enkriptatu behar beste ordenagailu batean bidaltzeko 70 00:02:28,000 --> 00:02:31,000 gakoa da publiko geroztik, hala ere. 71 00:02:31,000 --> 00:02:33,000 Horrek esan nahi du, RSA ez duten startup arazo bera 72 00:02:33,000 --> 00:02:36,000 gako simetrikoa algoritmo gisa. 73 00:02:36,000 --> 00:02:39,000 Beraz, bada RSA enkriptatzea erabiliz mezu bat bidali nahi dut 74 00:02:39,000 --> 00:02:42,000 Rob, Rob gako publikoa behar dut. 75 00:02:42,000 --> 00:02:47,000 Gako pare bat sortzeko, Rob 2 prime zenbakiak handiak jaso behar. 76 00:02:47,000 --> 00:02:50,000 Zenbaki hauek bi gako publikoa eta pribatua erabiliko da, 77 00:02:50,000 --> 00:02:54,000 baina gako publikoa bakarrik erabili 2 zenbaki horiek produktu, 78 00:02:54,000 --> 00:02:56,000 zenbakiak beraiek ez. 79 00:02:56,000 --> 00:02:59,000 Behin mezua Rob gako publikoa erabiliz enkriptatuko dut 80 00:02:59,000 --> 00:03:01,000 Mezua bidali ahal izango dut Rob. 81 00:03:01,000 --> 00:03:05,000 Ordenagailu baten, factoring zenbakiak arazo bat gogorra da. 82 00:03:05,000 --> 00:03:09,000 Gako publikoa, gogoratu, 2 zenbaki lehenen produktua. 83 00:03:09,000 --> 00:03:12,000 Produktu hau behar izan bakarrik 2 faktore 84 00:03:12,000 --> 00:03:16,000 gertatuko den gako pribatua osatzen duten zenbakiak izan. 85 00:03:16,000 --> 00:03:20,000 Mezua desenkriptatu ahal izateko, RSA gako pribatua erabiliko du 86 00:03:20,000 --> 00:03:25,000 edo zenbakiak biderkatu eta gako publikoa sortzeko prozesuan. 87 00:03:25,000 --> 00:03:28,000 Gogorra da computationally delako zenbaki faktore 88 00:03:28,000 --> 00:03:32,000 gako publiko bat erabiltzen da gako pribatua erabiltzen 2 zenbakiak sartu 89 00:03:32,000 --> 00:03:36,000 zaila da erasotzaile bat irudikatu nahi gako pribatua 90 00:03:36,000 --> 00:03:39,000 beharrezkoa izango da mezua desenkriptatu. 91 00:03:39,000 --> 00:03:43,000 Orain dezagun xehetasun batzuk RSA maila txikiagoa sartu. 92 00:03:43,000 --> 00:03:46,000 Dezagun lehen ikus gako pare bat nola sortzen dezakegu. 93 00:03:46,000 --> 00:03:49,000 Lehenik eta behin, prime zenbakiak 2 behar dugu. 94 00:03:49,000 --> 00:03:52,000 Deitu horiek 2 zenbakiak p eta q dugu. 95 00:03:52,000 --> 00:03:56,000 , P eta q, hautatzeko praktikan pseudorandomly sortzen ditugun 96 00:03:56,000 --> 00:03:59,000 handi zenbakiak eta, ondoren, test bat erabili ala ez zehazteko 97 00:03:59,000 --> 00:04:02,000 zenbaki horiek dira ziurrenik prime. 98 00:04:02,000 --> 00:04:05,000 Ausazko zenbakiak sortzen dugu eta gehiagoko berriz 99 00:04:05,000 --> 00:04:08,000 ahal izango dugu erabili 2 Lehenak arte. 100 00:04:08,000 --> 00:04:15,000 Hemen dezagun hautatzeko p = 23 eta q = 43. 101 00:04:15,000 --> 00:04:19,000 Gogoratu, praktikan, p eta q askoz handiagoa zenbakiak izan beharko luke. 102 00:04:19,000 --> 00:04:22,000 Den neurrian ezagutzen dugun bezala, handiagoa zenbakiak, gogorragoa da 103 00:04:22,000 --> 00:04:25,000 Enkriptatutako mezu bat crack. 104 00:04:25,000 --> 00:04:29,000 Baina, era berean encrypt eta mezuak desenkriptatu garestia da. 105 00:04:29,000 --> 00:04:33,000 Gaur egun askotan gomendatzen p eta q direla gutxienez 1024 bit, 106 00:04:33,000 --> 00:04:37,000 300 baino gehiago digituak hamartar zenbaki bakoitza jartzen. 107 00:04:37,000 --> 00:04:40,000 Baina zenbakiak txiki hauen adibide hau jaso dugu. 108 00:04:40,000 --> 00:04:43,000 Orain, p eta q biderkatu dugu elkarrekin 3 zenbaki bat lortzeko, 109 00:04:43,000 --> 00:04:45,000 horrek deitu n dugu. 110 00:04:45,000 --> 00:04:55,000 Gure kasuan, n = 23 * 43, = 989. 111 00:04:55,000 --> 00:04:58,000 Dugu = 989 n. 112 00:04:58,000 --> 00:05:02,000 Hurrengoa p biderkatu dugu - 1 q - 1 113 00:05:02,000 --> 00:05:05,000 4 zenbakia, deitu m dugu lortzeko. 114 00:05:05,000 --> 00:05:15,000 Gure kasuan, m = 22 * ​​42 = 924. 115 00:05:15,000 --> 00:05:18,000 M = 924 ditugu. 116 00:05:18,000 --> 00:05:22,000 Orain zenbaki e nahiko prime behar dugu m 117 00:05:22,000 --> 00:05:25,000 m baino txikiagoa. 118 00:05:25,000 --> 00:05:28,000 Bi zenbakiak samarrak dira prime edo coprime 119 00:05:28,000 --> 00:05:33,000 zenbaki oso positibo bakarra banatzen biak berdinarekin 1 bada. 120 00:05:33,000 --> 00:05:37,000 Beste era batera esanda, e eta m zatitzaile komun handiena 121 00:05:37,000 --> 00:05:39,000 1 izan behar da. 122 00:05:39,000 --> 00:05:44,000 Praktikan, e ohikoa da zenbaki lehena 65537 123 00:05:44,000 --> 00:05:48,000 luze bezala, zenbaki hau ez da gertatuko m faktore bat izan. 124 00:05:48,000 --> 00:05:53,000 Gure teklak, hautatu dugu e = 5 125 00:05:53,000 --> 00:05:57,000 5 baita nahiko 924 prime. 126 00:05:57,000 --> 00:06:01,000 Azkenik, beste bat gehiago zenbakia, deitu d dugu behar dugu. 127 00:06:01,000 --> 00:06:11,000 D batzuetan ekuazioa betetzen duen balioa izan behar du de = 1 (mod m). 128 00:06:11,000 --> 00:06:17,000 Mod m honek ondorioztatzen du zerbait modular aritmetika izeneko erabiliko dugu. 129 00:06:17,000 --> 00:06:21,000 Aritmetika modularra, behin zenbaki bat lortzen batzuk goiko doazen baino handiagoa 130 00:06:21,000 --> 00:06:24,000 inguruan biltzea izango da 0. 131 00:06:24,000 --> 00:06:27,000 Erloju bat, adibidez, aritmetika modularra erabiltzen du. 132 00:06:27,000 --> 00:06:31,000 1:59 minutu bat izan ondoren, adibidez, 2:00 133 00:06:31,000 --> 00:06:33,000 ez 1:60. 134 00:06:33,000 --> 00:06:36,000 Minutuko eskua bilduta inguruan 0 135 00:06:36,000 --> 00:06:39,000 60 aritzeko goiko iristean. 136 00:06:39,000 --> 00:06:46,000 Beraz, esan 60 0 (60 mod) baliokidea 137 00:06:46,000 --> 00:06:57,000 eta 125 65 baliokideak 5 (mod 60) baliokidea da. 138 00:06:57,000 --> 00:07:02,000 Gure gako publikoa bikotea e eta n izango da 139 00:07:02,000 --> 00:07:09,000 non kasu honetan e 5 da, eta n da 989. 140 00:07:09,000 --> 00:07:15,000 Gure bikotea d eta n gako pribatua izango da, 141 00:07:15,000 --> 00:07:22,000 gure kasuan, 185 eta 989. 142 00:07:22,000 --> 00:07:25,000 Iragarki gure jatorrizko Lehenak p eta q ez dela agertzen 143 00:07:25,000 --> 00:07:29,000 gure gakoak pribatu edo publiko edozein lekutan. 144 00:07:29,000 --> 00:07:33,000 Orain gure gako pare bat dugula, dezagun enkripta dezakegu begirada bat 145 00:07:33,000 --> 00:07:36,000 eta mezua desenkriptatu. 146 00:07:36,000 --> 00:07:38,000 Rob mezu bat bidali nahi dut 147 00:07:38,000 --> 00:07:42,000 beraz, gako parea sortzeko izan du. 148 00:07:42,000 --> 00:07:46,000 Ondoren, Rob galdetu dut bere gako publikoa erabiltzen dut 149 00:07:46,000 --> 00:07:48,000 zion bidali mezu bat enkriptatzeko. 150 00:07:48,000 --> 00:07:53,000 Gogoan izan, erabat ados Rob bere gako publikoa partekatzeko nirekin. 151 00:07:53,000 --> 00:07:56,000 Baina ez litzateke ados bere gako pribatua partekatzeko. 152 00:07:56,000 --> 00:08:00,000 Ez daukat bere gako pribatua da, edozein ideia. 153 00:08:00,000 --> 00:08:03,000 Gure mezua m apur daitezke zatiak hainbat 154 00:08:03,000 --> 00:08:07,000 guztiak n baino txikiagoa, eta ondoren enkriptatzeko zatiak horietako bakoitzean. 155 00:08:07,000 --> 00:08:12,000 Katea CS50, apurtzen hasi ahal izango dugu 4 zatitan banatuta dago enkriptatzeko dugu, 156 00:08:12,000 --> 00:08:14,000 letra bakoitzeko bat. 157 00:08:14,000 --> 00:08:17,000 Ordena nire mezua enkriptatzeko, bihurtzeko behar dut 158 00:08:17,000 --> 00:08:20,000 ordezkaritza zenbakizko mota batzuk. 159 00:08:20,000 --> 00:08:25,000 Dezagun kateatu nire mezua karaktereak ASCII balioak. 160 00:08:25,000 --> 00:08:28,000 Emandako mezua m enkriptatu 161 00:08:28,000 --> 00:08:37,000 C = m e (mod n) kalkulatzeko behar dut. 162 00:08:37,000 --> 00:08:40,000 Baina m n baino txikiagoa izan behar da, 163 00:08:40,000 --> 00:08:45,000 edo, bestela, mezu osoa ezin izango da adierazitako modulo n. 164 00:08:45,000 --> 00:08:49,000 M apur daitezke zatiak hainbat, horiek guztiak dira n baino txikiagoa, 165 00:08:49,000 --> 00:08:52,000 eta enkriptatzeko zatiak horietako bakoitzean. 166 00:08:52,000 --> 00:09:03,000 Zatiak horietako bakoitzak enkriptatzea, iritsi C1 = 5 67 (mod 989) 167 00:09:03,000 --> 00:09:06,000 = eta 658. 168 00:09:06,000 --> 00:09:15,000 Gure bigarren zatia 83 dugu 5 (mod 989) 169 00:09:15,000 --> 00:09:18,000 = 15. 170 00:09:18,000 --> 00:09:26,000 Gure hirugarren zatia 5 (mod 989) 53 dugu 171 00:09:26,000 --> 00:09:30,000 = 799. 172 00:09:30,000 --> 00:09:39,000 Eta, azkenik, 5 (mod 989) 48 dugu gure azken zatia 173 00:09:39,000 --> 00:09:43,000 zein = 975. 174 00:09:43,000 --> 00:09:48,000 Orain baino gehiago bidali ahal izango dugu Rob enkriptatutako balio horiek. 175 00:09:54,000 --> 00:09:58,000 Hemen, joan behar Rob. 176 00:09:58,000 --> 00:10:01,000 Gure mezua hegaldia ari den bitartean, dezagun begirada beste 177 00:10:01,000 --> 00:10:07,000 nola d balio hori lortu dugu. 178 00:10:07,000 --> 00:10:17,000 Gure zenbaki d behar 5D = 1 (mod 924) asetzeko. 179 00:10:17,000 --> 00:10:24,000 Hori dela eta, d 5 modulo 924 alderantzizkoa biderkatzaileak. 180 00:10:24,000 --> 00:10:28,000 2 zenbaki osoen kontuan hartuta, eta b, algoritmo hedatua euklidestarra 181 00:10:28,000 --> 00:10:33,000 2 Osoko zenbaki horien zatitzaile komun handiena aurkitzeko erabil daiteke. 182 00:10:33,000 --> 00:10:37,000 Horrez gain, ematen diguten beste 2 zenbakiak, x eta y, 183 00:10:37,000 --> 00:10:47,000 asetzeko ekuazioa ax + = eta b zatitzaile komun handiena. 184 00:10:47,000 --> 00:10:49,000 Nola lagundu digu? 185 00:10:49,000 --> 00:10:52,000 Beno, e = 5 plugging bat 186 00:10:52,000 --> 00:10:56,000 eta m = 924 b 187 00:10:56,000 --> 00:10:59,000 badakigu zenbakiak horiek coprime. 188 00:10:59,000 --> 00:11:03,000 Bere zatitzaile komun handiena 1 da. 189 00:11:03,000 --> 00:11:09,000 Honek ematen digu 5x + 924y = 1 190 00:11:09,000 --> 00:11:17,000 edo 5x = 1 - 924y. 191 00:11:17,000 --> 00:11:22,000 Baina bakarrik dugu guztia modulo 924 buruzko bada zaintzeko 192 00:11:22,000 --> 00:11:25,000 924y orduan askatu ahal izango dugu. 193 00:11:25,000 --> 00:11:27,000 Think itzuli erlojua. 194 00:11:27,000 --> 00:11:31,000 Minutuko batetik, 1 bada, eta, ondoren, zehatz-mehatz 10 ordu igarotzen 195 00:11:31,000 --> 00:11:35,000 minutuko alde batetik oraindik 1 badakigu. 196 00:11:35,000 --> 00:11:39,000 Hona hemen hasteko 1 dugu, eta, ondoren, biltzeko inguruan zehazki y aldiz, 197 00:11:39,000 --> 00:11:41,000 beraz, oraindik ere izango dugu 1. 198 00:11:41,000 --> 00:11:49,000 5x = 1 (mod 924). 199 00:11:49,000 --> 00:11:55,000 Eta hemen x d aurretik ziren bilatzen dugu berdina da, 200 00:11:55,000 --> 00:11:58,000 hala badagokio hedatua euklidestarra algoritmoa erabili dugu 201 00:11:58,000 --> 00:12:04,000 kopurua x hau lortzeko, zenbaki gisa erabili behar dugu gure d. 202 00:12:04,000 --> 00:12:07,000 Orain dezagun exekutatu euklidestarra hedatua = 5 algoritmoa 203 00:12:07,000 --> 00:12:11,000 eta b = 924. 204 00:12:11,000 --> 00:12:14,000 Taula metodoa izeneko metodo bat erabiliko dugu. 205 00:12:14,000 --> 00:12:21,000 Gure taula 4 zutabeak, x, y, d, eta k izango dute. 206 00:12:21,000 --> 00:12:23,000 Gure taula 2 ilaratan hasten. 207 00:12:23,000 --> 00:12:28,000 1, 0, gero, gure balio, hau da, 5 lehenengo errenkadan dugu, 208 00:12:28,000 --> 00:12:37,000 eta gure bigarren ilaran 0, 1, eta gure b balioa, hau da, 924. 209 00:12:37,000 --> 00:12:40,000 4 zutabean, k, balioa emaitza izango da 210 00:12:40,000 --> 00:12:45,000 d balioa goiko errenkadan zatituz d balioa 211 00:12:45,000 --> 00:12:49,000 berean errenkadan. 212 00:12:49,000 --> 00:12:56,000 5 924 arabera banatzen da 0 gainerako batzuk ditugu. 213 00:12:56,000 --> 00:12:59,000 Horrek esan nahi du = 0 k dugun. 214 00:12:59,000 --> 00:13:05,000 Beste zelula guztien balio orain gainean zelula 2 errenkadak balioa izango da 215 00:13:05,000 --> 00:13:09,000 ken aldiz k goiko errenkadan balioa. 216 00:13:09,000 --> 00:13:11,000 Dezagun d hasteko 3. Errenkadan. 217 00:13:11,000 --> 00:13:19,000 Ditugu 5 - 924 * 0 = 5. 218 00:13:19,000 --> 00:13:25,000 Hurrengo dugu 0 - 1 0 0 219 00:13:25,000 --> 00:13:30,000 eta 1 - 0 * 0 1. 220 00:13:30,000 --> 00:13:33,000 Ez da oso txarra, beraz, hurrengo errenkadan mugitzeko. 221 00:13:33,000 --> 00:13:36,000 Lehenik eta behin, gure k balio behar dugu. 222 00:13:36,000 --> 00:13:43,000 924 5 = 184 arabera banatzen da gainerako batzuk 223 00:13:43,000 --> 00:13:46,000 beraz, gure k balioa 184 da. 224 00:13:46,000 --> 00:13:54,000 Orain 924 - 5 * 184 = 4. 225 00:13:54,000 --> 00:14:05,000 1 - 0 * 184 1 eta 0 - 1 * 184 -184. 226 00:14:05,000 --> 00:14:07,000 Guztiak eskubidea, egin dezagun hurrengo errenkadan. 227 00:14:07,000 --> 00:14:10,000 Gure k balioa 1 delako izango da 228 00:14:10,000 --> 00:14:15,000 5 4 = 1 arabera banatzen da gainerako batzuk. 229 00:14:15,000 --> 00:14:17,000 Dezagun beste zutabe bete. 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 da. 233 00:14:33,000 --> 00:14:35,000 Dezagun gure k hurrengo balioa litzateke ikus-en. 234 00:14:35,000 --> 00:14:40,000 Beno, 4 1, hau da, 4 arabera banatzen da dirudienez. 235 00:14:40,000 --> 00:14:43,000 1 zatituz ari gara, kasu honetan, hala nola, k dela berdina 236 00:14:43,000 --> 00:14:50,000 goiko errenkadan d balioa esan nahi du ari gure algoritmoa egiten dugu. 237 00:14:50,000 --> 00:14:58,000 Dugu hemen ikus ahal izango dugu x = 185 eta y = -1 azken errenkadan. 238 00:14:58,000 --> 00:15:00,000 Dezagun gaur egun itzuli gure jatorrizko helburua. 239 00:15:00,000 --> 00:15:04,000 X balioa emaitza gisa algoritmo hau exekutatzen ari esan genion 240 00:15:04,000 --> 00:15:08,000 (mod b), biderkatzaileak alderantzizkoa izango litzateke. 241 00:15:08,000 --> 00:15:15,000 Horrek esan nahi du 185 alderantzizkoa 5 biderkatzaileak (mod 924) 242 00:15:15,000 --> 00:15:20,000 horrek esan nahi du 185 balioa d dugula. 243 00:15:20,000 --> 00:15:23,000 Izan ere, d = 1 azken errenkadan 244 00:15:23,000 --> 00:15:26,000 egiaztatzen e m coprime zela. 245 00:15:26,000 --> 00:15:30,000 Ez balitz 1 ondoren, mezu berri bat jaso nahi dugu. 246 00:15:30,000 --> 00:15:33,000 Ikus dezagun orain Rob jaso du nire mezua. 247 00:15:33,000 --> 00:15:35,000 Norbaitek me Enkriptatutako mezu bat bidaltzen 248 00:15:35,000 --> 00:15:38,000 Nik ez dut nire gako pribatua mantendu sekretu bat 249 00:15:38,000 --> 00:15:41,000 Duen bakarra desenkriptatu ahal izateko mezua naiz. 250 00:15:41,000 --> 00:15:46,000 Jatorrizko mezua desenkriptatu zatia c kalkulatu ahal izango dut 251 00:15:46,000 --> 00:15:53,000 zatia d power (mod n) berdina da. 252 00:15:53,000 --> 00:15:57,000 Gogoratu d eta g nire gako pribatuak dira. 253 00:15:57,000 --> 00:16:01,000 Mezu osoa lortzeko bere zatiak dugun zatia bakoitzean desenkriptatu 254 00:16:01,000 --> 00:16:04,000 eta kateatu emaitzak. 255 00:16:04,000 --> 00:16:08,000 Zehazki nola RSA segurua da? 256 00:16:08,000 --> 00:16:10,000 Egia da, ez dakigu. 257 00:16:10,000 --> 00:16:14,000 Segurtasuna erasotzaile batek zenbat denbora hartu litzateke mezu bat crack oinarritutako 258 00:16:14,000 --> 00:16:16,000 RSA zifratzen da. 259 00:16:16,000 --> 00:16:19,000 Gogoratu erasotzaile batek zure gako publikoa sarbidea du, 260 00:16:19,000 --> 00:16:21,000 e eta n dauka. 261 00:16:21,000 --> 00:16:26,000 Erasotzaileak kudeatzen n faktorea, bere 2 Lehenak, p eta q sartu bada, 262 00:16:26,000 --> 00:16:30,000 ondoren, d kalkula izan zuen hedatua euklidestarra algoritmoa erabiliz. 263 00:16:30,000 --> 00:16:35,000 Honek bere gako pribatua desenkriptatzeko erabili ahal izango dira, edozein mezu. 264 00:16:35,000 --> 00:16:38,000 Baina, nola azkar osoko zenbakien faktorea dugu? 265 00:16:38,000 --> 00:16:41,000 Berriz ere, ez dakigu. 266 00:16:41,000 --> 00:16:43,000 Inork ez du aurkitu modu azkar bat egiten, 267 00:16:43,000 --> 00:16:46,000 Horrek esan nahi du, kontuan hartuta nahikoa n 268 00:16:46,000 --> 00:16:49,000 erasotzaile batek hartuko luke unrealistically luzea 269 00:16:49,000 --> 00:16:51,000 zenbaki faktore. 270 00:16:51,000 --> 00:16:54,000 Norbait zituzten, factoring osoko zenbakien modu azkar bat bada 271 00:16:54,000 --> 00:16:57,000 RSA hautsi egingo da. 272 00:16:57,000 --> 00:17:01,000 Baina, nahiz eta guztia factorization da berez motela 273 00:17:01,000 --> 00:17:04,000 RSA algoritmoa izan, oraindik akats batzuk 274 00:17:04,000 --> 00:17:07,000 mezuak deszifratzeko erraza ahalbidetzen du. 275 00:17:07,000 --> 00:17:10,000 Inork ez du aurkitu eta agerian flaw hala nola, oraindik, 276 00:17:10,000 --> 00:17:12,000 baina horrek ez du esan nahi ez da existitzen. 277 00:17:12,000 --> 00:17:17,000 Teorian, norbaitek izarrekin izan daiteke RSA bidez enkriptaturik dago datu guztiak irakurtzeko. 278 00:17:17,000 --> 00:17:19,000 Pribatutasun-gai bat beste bit bat da. 279 00:17:19,000 --> 00:17:23,000 Tommy mezu batzuk nire gako publikoa erabiliz enkriptatzen bada 280 00:17:23,000 --> 00:17:26,000 eta erasotzaile batek mezu bera nire gako publikoa erabiliz enkriptatzen 281 00:17:26,000 --> 00:17:29,000 Erasotzaileak 2 mezuak berdinak dira ikusiko 282 00:17:29,000 --> 00:17:32,000 eta, beraz, badakite zer den Tommy enkriptatuko. 283 00:17:32,000 --> 00:17:36,000 Hori gerta ez dadin, mezuak ausazko bit dira normalean hedatu 284 00:17:36,000 --> 00:17:39,000 beraz, eta mezu bera enkriptatzen ari enkriptatzen aurretik 285 00:17:39,000 --> 00:17:44,000 hainbat aldiz beste itxura bat da, betiere Mezu betegarria desberdina da. 286 00:17:44,000 --> 00:17:47,000 Baina gogoratu mezuak nola banatu dugu zatitan banatuta dago 287 00:17:47,000 --> 00:17:50,000 zatia beraz, bakoitzak n baino txikiagoa da? 288 00:17:50,000 --> 00:17:52,000 Zatiak, tarte betegarri esan nahi du gauzak zatitzean sortu dugu agian 289 00:17:52,000 --> 00:17:57,000 zatiak are gehiago geroztik sartu betea zatia n baino txikiagoa izan behar du. 290 00:17:57,000 --> 00:18:01,000 Encryption eta deskodetzea nahiko garestiak RSA 291 00:18:01,000 --> 00:18:05,000 eta, beraz, zatiak hainbat mezu bat hautsi beharrik oso garestia izan daiteke. 292 00:18:05,000 --> 00:18:09,000 Enkriptatutako datuak bolumen handi bat behar du izan nahi baduzu eta desenkripta 293 00:18:09,000 --> 00:18:12,000 algoritmoak gako simetrikoa onurak konbinatu ahal izango dugu 294 00:18:12,000 --> 00:18:16,000 RSA duten bai segurtasuna eta eraginkortasuna lortzeko. 295 00:18:16,000 --> 00:18:18,000 Ez dugun arren, sartu hemen, 296 00:18:18,000 --> 00:18:23,000 AES Vigenère eta Caesar zifraketen bezalako algoritmoa gako simetrikoa 297 00:18:23,000 --> 00:18:25,000 baina askoz zailagoa crack. 298 00:18:25,000 --> 00:18:30,000 Jakina, ezin dugu erabili AES partekatutako gako sekretua ezarri gabe 299 00:18:30,000 --> 00:18:34,000 2 sistemen artean, eta hori arazoa ikusi genuen aurretik. 300 00:18:34,000 --> 00:18:40,000 Baina orain RSA dezakegu 2 sistemen arteko gako sekretua Elkarbanatutako ezartzeko. 301 00:18:40,000 --> 00:18:43,000 Datuak bidaltzeko bidaltzailearen ordenagailuaren deitu dugu 302 00:18:43,000 --> 00:18:46,000 eta ordenagailua datuak jasotzeko hargailua. 303 00:18:46,000 --> 00:18:49,000 Hartzailea RSA gako-bikote bat du, eta bidaltzen 304 00:18:49,000 --> 00:18:51,000 bidaltzaileari gako publikoa. 305 00:18:51,000 --> 00:18:54,000 Igorleak AES-giltza bat sortzen du, 306 00:18:54,000 --> 00:18:57,000 enkriptatzen hartzailea RSA gako publikoak 307 00:18:57,000 --> 00:19:00,000 eta AES gakoa bidaltzen hargailua. 308 00:19:00,000 --> 00:19:04,000 Hartzailea mezua desenkriptatu bere RSA gako pribatua. 309 00:19:04,000 --> 00:19:09,000 Bi bidaltzailearen eta hartzailearen bien arteko AES Elkarbanatutako gakoa. 310 00:19:09,000 --> 00:19:14,000 AES, enkriptatzea eta deskodetzea RSA baino askoz azkarrago, 311 00:19:14,000 --> 00:19:18,000 daiteke, datu-bolumen handia enkriptatzeko erabiltzen eta hargailua bidaltzeko, 312 00:19:18,000 --> 00:19:21,000 dezaketen pertsonak desenkriptatzeko gako bera erabiliz. 313 00:19:21,000 --> 00:19:26,000 AES, enkriptatzea eta deskodetzea RSA baino askoz azkarrago, 314 00:19:26,000 --> 00:19:30,000 daiteke, datu-bolumen handia enkriptatzeko erabiltzen eta hargailua bidaltzeko, 315 00:19:30,000 --> 00:19:32,000 dezaketen pertsonak desenkriptatzeko gako bera erabiliz. 316 00:19:32,000 --> 00:19:36,000 Besterik ez dugu behar RSA gako partekatua transferitzeko. 317 00:19:36,000 --> 00:19:40,000 Behar ez dugu RSA guztiak erabiltzeko. 318 00:19:40,000 --> 00:19:46,000 Nik got bezala mezu bat dirudi. 319 00:19:46,000 --> 00:19:49,000 Ez du axola edonork irakurri zer paper hegazkin harrapatu nuen aurretik 320 00:19:49,000 --> 00:19:55,000 gako pribatua bakarra naiz dudalako. 321 00:19:55,000 --> 00:19:57,000 Dezagun deszifratu mezuaren zatiak bakoitzean. 322 00:19:57,000 --> 00:20:07,000 Lehenengo zatia, 658, goratzeko d boterea, hau da, 185, 323 00:20:07,000 --> 00:20:18,000 mod n, hau da, 989, 67 berdina da, 324 00:20:18,000 --> 00:20:24,000 ASCII C gutun da. 325 00:20:24,000 --> 00:20:31,000 Orain, bigarren zatiaren gainean. 326 00:20:31,000 --> 00:20:35,000 Bigarren zatiaren 15. Balio du, 327 00:20:35,000 --> 00:20:41,000 goratzeko 185th boterea, 328 00:20:41,000 --> 00:20:51,000 mod 989, eta, hau da, 83 berdinak 329 00:20:51,000 --> 00:20:57,000 hau da, gutun-S ASCII. 330 00:20:57,000 --> 00:21:06,000 Orain hirugarren zatia, balioa 799, goratzeko, 185, 331 00:21:06,000 --> 00:21:17,000 mod 989, eta 53 berdina da, 332 00:21:17,000 --> 00:21:24,000 5 ASCII karaktere-balioa da. 333 00:21:24,000 --> 00:21:30,000 Orain azken zatia, balioa 975, 334 00:21:30,000 --> 00:21:41,000 goratzeko, 185, 989 mod 335 00:21:41,000 --> 00:21:51,000 eta, hau da, 48, ASCII karaktere 0 balioa duen berdina. 336 00:21:51,000 --> 00:21:57,000 Nire izena Rob Bowden da, eta hau da CS50. 337 00:21:57,000 --> 00:22:00,000 [CS50.TV] 338 00:22:06,000 --> 00:22:08,000 RSA at. 339 00:22:08,000 --> 00:22:14,000 RSA at. [Barreak] 340 00:22:14,000 --> 00:22:17,000 Guztiak.