1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [RSA] 2 00:00:02,000 --> 00:00:04,000 [راب Bowden] [تامی MacWilliam] [دانشگاه هاروارد] 3 00:00:04,000 --> 00:00:07,000 [این CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 بیایید نگاهی به RSA، یک الگوریتم به طور گسترده ای مورد استفاده برای رمزنگاری داده ها. 5 00:00:11,000 --> 00:00:16,000 الگوریتم های رمز نگاری مانند سزار و رمزهای Vigenère خیلی امن نیست. 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 در حالی که رمزنگاری Vigenère امن تر است نسبت به رمزنگاری سزار 9 00:00:25,000 --> 00:00:28,000 به دلیل فضای بزرگتر جستجو برای کلید، یک بار یک مهاجم 10 00:00:28,000 --> 00:00:30,000 می داند که طول کلید در رمزنگاری Vigenère، 11 00:00:30,000 --> 00:00:34,000 است که می تواند از طریق تجزیه و تحلیل از الگوهای موجود در متن رمز شده مشخص شده است، 12 00:00:34,000 --> 00:00:38,000 رمزنگاری Vigenère است که بسیار امن تر از رمزنگاری سزار نیست. 13 00:00:38,000 --> 00:00:42,000 RSA، از سوی دیگر، به مانند این حمله آسیب پذیر است. 14 00:00:42,000 --> 00:00:45,000 رمزنگاری سزار و Vigenère رمزنگاری با استفاده از کلید 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 RSA، از سوی دیگر، با استفاده از یک جفت کلید، 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 کاربران میخواهند برای ارسال پیام های رمزگذاری شده با RSA 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 باعث می شود RSA الگوریتم کلید نامتقارن است. 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 این به این معنی است که RSA مشکل راه اندازی ندارد 72 00:02:33,000 --> 00:02:36,000 و الگوریتم های کلید متقارن است. 73 00:02:36,000 --> 00:02:39,000 پس اگر من می خواهم به ارسال پیام با استفاده از رمزگذاری RSA 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 به منظور رمزگشایی پیام، RSA این کلید خصوصی استفاده کنید 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 حالا اجازه دهید به بعضی از جزئیات سطح پایین تر از RSA. 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 عدد p و q. 95 00:03:52,000 --> 00:03:56,000 به منظور انتخاب P و Q، در عمل ما pseudorandomly تولید 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 در اینجا انتخاب کنید p = 23 و q = 43. 101 00:04:15,000 --> 00:04:19,000 به یاد داشته باشید، در عمل، p و q باید بسیار بزرگتر اعداد. 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 امروزه آن را اغلب توصیه می شود که P و Q حداقل 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 حالا p و q را در هم ضرب شماره 3 برای به دست آوردن، 109 00:04:43,000 --> 00:04:45,000 که ما بهش زنگ می زنم N. 110 00:04:45,000 --> 00:04:55,000 در مورد ما، N = 23 * 43، که = 989. 111 00:04:55,000 --> 00:04:58,000 در حال حاضر به N = 989. 112 00:04:58,000 --> 00:05:02,000 1 با q - - بعد خواهیم P ضرب 1 113 00:05:02,000 --> 00:05:05,000 برای به دست آوردن شماره 4، که ما بهش زنگ می زنم متر است. 114 00:05:05,000 --> 00:05:15,000 در مورد ما، M = 22 * ​​42، که = 924. 115 00:05:15,000 --> 00:05:18,000 M = 924. 116 00:05:18,000 --> 00:05:22,000 در حال حاضر ما به A و E است که نسبتا نخست نیاز به متر 117 00:05:22,000 --> 00:05:25,000 و کمتر از م. 118 00:05:25,000 --> 00:05:28,000 دو عدد نسبتا نخست یا coprime 119 00:05:28,000 --> 00:05:33,000 اگر تنها عدد صحیح مثبت که آنها را به دو قسمت تقسیم هر دو به طور مساوی 1 است. 120 00:05:33,000 --> 00:05:37,000 به عبارت دیگر، بزرگترین مقسوم علیه مشترک E و M 121 00:05:37,000 --> 00:05:39,000 باید 1. 122 00:05:39,000 --> 00:05:44,000 در عمل، آن را مشترک برای E را به عنوان نخست شماره 65،537 123 00:05:44,000 --> 00:05:48,000 تا زمانی که این شماره اتفاق نمی افتد که به یک عامل از م. 124 00:05:48,000 --> 00:05:53,000 برای کلیدهای خود، ما را انتخاب کنید E = 5 125 00:05:53,000 --> 00:05:57,000 چون 5 نسبتا نخست به 924 است. 126 00:05:57,000 --> 00:06:01,000 در نهایت، ما می خواهیم یک شماره، که ما بهش زنگ می زنم D نیاز دارند. 127 00:06:01,000 --> 00:06:11,000 D باید برخی از ارزش است که این معادله را ارضا د = 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 (MOD 60) می باشد. 138 00:06:57,000 --> 00:07:02,000 کلید عمومی ما خواهد بود که جفت E و N 139 00:07:02,000 --> 00:07:09,000 که در این مورد 5 E و N 989. 140 00:07:09,000 --> 00:07:15,000 کلید خصوصی ما خواهد بود جفت D و N، 141 00:07:15,000 --> 00:07:22,000 که در مورد ما، 185 و 989 است. 142 00:07:22,000 --> 00:07:25,000 توجه کنید که اصلی ما اعداد اول p و q به نظر نمی رسد 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 کوچکتر از N و سپس به رمز در آوردن هر یک از کسانی که تکه. 155 00:08:07,000 --> 00:08:12,000 خواهیم CS50 رشته، که ما می توانیم به 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 بیایید الحاق مقادیر ASCII با شخصیت ها در پیام من است. 160 00:08:25,000 --> 00:08:28,000 به منظور رمزنگاری داده م پیام 161 00:08:28,000 --> 00:08:37,000 من نیاز به محاسبه C = M به E (وزارت دفاع N). 162 00:08:37,000 --> 00:08:40,000 اما متر باید کوچکتر از N، 163 00:08:40,000 --> 00:08:45,000 و یا دیگری کامل پیام را می توان بیان پیمانه N. 164 00:08:45,000 --> 00:08:49,000 ما می توانیم متر شکستن به تکه های مختلف، که همه آنها کوچکتر از N، 165 00:08:49,000 --> 00:08:52,000 و رمز در آوردن هر یک از کسانی که تکه. 166 00:08:52,000 --> 00:09:03,000 رمزگذاری هر یک از این تکه های، ما C1 = 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 ما در چگونه که ارزش برای D است. 178 00:10:07,000 --> 00:10:17,000 ما D تعداد مورد نیاز برای برآورده 5D = 1 (mod 924) را. 179 00:10:17,000 --> 00:10:24,000 این باعث می شود د ضربی معکوس از 5 پیمانه 924. 180 00:10:24,000 --> 00:10:28,000 با توجه به 2 اعداد صحیح، A و B، الگوریتم اقلیدسی گسترده 181 00:10:28,000 --> 00:10:33,000 را می توان مورد استفاده قرار گیرد برای پیدا کردن بزرگترین مقسوم علیه مشترک این 2 اعداد صحیح. 182 00:10:33,000 --> 00:10:37,000 این نیز ما را به 2 عدد دیگر، x و y، 183 00:10:37,000 --> 00:10:47,000 که برآورده معادله ax + by = بزرگترین مقسوم علیه مشترک a و b است. 184 00:10:47,000 --> 00:10:49,000 چگونه به ما کمک کند؟ 185 00:10:49,000 --> 00:10:52,000 خب، متصل کردن در E = 5 برای 186 00:10:52,000 --> 00:10:56,000 و m = 924 ب 187 00:10:56,000 --> 00:10:59,000 ما در حال حاضر می دانیم که این اعداد coprime است. 188 00:10:59,000 --> 00:11:03,000 بزرگترین مقسوم علیه مشترک آنها 1 است. 189 00:11:03,000 --> 00:11:09,000 این به ما می دهد 5X + 924y = 1 190 00:11:09,000 --> 00:11:17,000 یا 5X = 1 - 924y. 191 00:11:17,000 --> 00:11:22,000 اما اگر ما فقط در مورد مراقبت از همه چیز پیمانه 924 192 00:11:22,000 --> 00:11:25,000 924y - پس از آن ما می توانیم قطره. 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 شروع و پس از آن پوشش در اطراف بار دقیقا Y، 197 00:11:39,000 --> 00:11:41,000 بنابراین ما هنوز هم می خواهید در 1. 198 00:11:41,000 --> 00:11:49,000 ما 5X = 1 (mod 924) را. 199 00:11:49,000 --> 00:11:55,000 و در اینجا این X به عنوان د ما قبل دنبال می شد، 200 00:11:55,000 --> 00:11:58,000 بنابراین اگر ما با استفاده از الگوریتم اقلیدسی گسترده 201 00:11:58,000 --> 00:12:04,000 برای به دست آوردن این عدد X است، که ما باید به عنوان D ما استفاده کنید. 202 00:12:04,000 --> 00:12:07,000 در حال حاضر اجرای الگوریتم اقلیدسی را برای 5 = 203 00:12:07,000 --> 00:12:11,000 و B = 924. 204 00:12:11,000 --> 00:12:14,000 ما می خواهیم یک روش به نام روش جدول استفاده کنید. 205 00:12:14,000 --> 00:12:21,000 جدول ما 4 ستون، X، Y، D و K را داشته باشد. 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، k، خواهد بود و در نتیجه 210 00:12:40,000 --> 00:12:45,000 از تقسیم مقدار در ردیف بالای آن را با مقدار D از D 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 این بدان معناست که ما k = 0. 214 00:12:59,000 --> 00:13:05,000 در حال حاضر ارزش هر سلول دیگر خواهد بود که ارزش از 2 سلول ردیف بالای آن 215 00:13:05,000 --> 00:13:09,000 منهای مقدار از سطر بالاتر از آن بار K است. 216 00:13:09,000 --> 00:13:11,000 بیایید شروع با D در ردیف 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 در ابتدا ما نیاز داریم ارزش ما از K. 222 00:13:36,000 --> 00:13:43,000 924 5 = 184 با برخی از باقی مانده تقسیم، 223 00:13:43,000 --> 00:13:46,000 بنابراین ارزش ما برای K 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 ارزش ما از K خواهد بود 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 بیایید ببینید که چه مقدار بعدی ما از K خواهد بود. 234 00:14:35,000 --> 00:14:40,000 خب، به نظر می رسد که در حال حاضر 4 تقسیم 1، 4 است. 235 00:14:40,000 --> 00:14:43,000 در این مورد که در آن ما در حال تقسیم بر 1 به طوری که K برابر است با 236 00:14:43,000 --> 00:14:50,000 مقدار D در سطر بالا به این معناست که ما با الگوریتم ما انجام می شود. 237 00:14:50,000 --> 00:14:58,000 ما در اینجا می توانید ببینید که ما باید x = 185 و Y = -1 در ردیف آخر. 238 00:14:58,000 --> 00:15:00,000 اجازه دهید در حال حاضر دوباره به هدف اصلی ما است. 239 00:15:00,000 --> 00:15:04,000 به ما گفت که مقدار x را به عنوان یک نتیجه اجرای این الگوریتم 240 00:15:04,000 --> 00:15:08,000 معکوس ضرب (MOD B خواهد بود). 241 00:15:08,000 --> 00:15:15,000 این بدان معناست که 185 ضربی معکوس از 5 (وزارت دفاع 924) 242 00:15:15,000 --> 00:15:20,000 که بدان معنی است که ما باید یک مقدار از 185 D می باشد. 243 00:15:20,000 --> 00:15:23,000 واقعیت این است که D = 1 در سطر آخر 244 00:15:23,000 --> 00:15:26,000 بررسی الکترونیکی به متر coprime شد. 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 به تکه D قدرت (وزارت دفاع N) برابر است. 252 00:15:53,000 --> 00:15:57,000 به یاد داشته باشید که D و N از کلید خصوصی من هستند. 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 دقیقا چه امن است RSA؟ 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 رمزگذاری RSA 259 00:16:16,000 --> 00:16:19,000 به یاد داشته باشید که یک مهاجم دسترسی به کلید عمومی شما، 260 00:16:19,000 --> 00:16:21,000 که شامل هر دوی E و N است. 261 00:16:21,000 --> 00:16:26,000 اگر مهاجم مدیریت عامل N به آن 2 اعداد اول p و q، 262 00:16:26,000 --> 00:16:30,000 پس از آن او می تواند D با استفاده از الگوریتم اقلیدسی گسترده را محاسبه نمود. 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 که بدان معنی است که داده می شود به اندازه کافی بزرگ N 268 00:16:46,000 --> 00:16:49,000 آن را یک مهاجم unrealistically طولانی را 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 RSA شکسته خواهد شد. 272 00:16:57,000 --> 00:17:01,000 اما حتی اگر فاکتور عدد صحیح ذاتا آهسته 273 00:17:01,000 --> 00:17:04,000 الگوریتم RSA هنوز می تواند برخی از نقص در آن را داشته باشد 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 در تئوری، کسی که می تواند در خارج وجود دارد خواندن تمام داده های رمزگذاری شده با RSA است. 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 به طوری که هر یک از تکه است کوچکتر از N؟ 288 00:17:50,000 --> 00:17:52,000 عمل توسعه دادن تکه های این بدان معنی است که ما ممکن است مجبور به تقسیم کردن کارها 289 00:17:52,000 --> 00:17:57,000 به تکه حتی بیشتر از تکه های خالی را باید کوچکتر از N. 290 00:17:57,000 --> 00:18:01,000 رمزنگاری و رمزگشایی نسبتا گران قیمت با RSA، 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 با کسانی که از RSA برای به دست آوردن هر دو امنیت و کارایی. 295 00:18:16,000 --> 00:18:18,000 اگر چه ما نمی خواهد به آن در اینجا، 296 00:18:18,000 --> 00:18:23,000 AES یک الگوریتم کلید متقارن مانند Vigenère و رمزهای سزار 297 00:18:23,000 --> 00:18:25,000 اما بسیار سخت تر به کرک. 298 00:18:25,000 --> 00:18:30,000 البته، ما می توانیم AES بدون ایجاد یک کلید مخفی مشترک استفاده نمی کنند 299 00:18:30,000 --> 00:18:34,000 بین 2 سیستم، و ما را دیدم مشکل با آن شده قبل از. 300 00:18:34,000 --> 00:18:40,000 اما در حال حاضر ما می توانیم با استفاده از RSA کلید مخفی مشترک بین 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 گیرنده دارای یک جفت کلید RSA می فرستد و 304 00:18:49,000 --> 00:18:51,000 کلید عمومی فرستنده است. 305 00:18:51,000 --> 00:18:54,000 فرستنده تولید یک کلید AES، 306 00:18:54,000 --> 00:18:57,000 کدگذاری آن را با کلید عمومی RSA گیرنده، 307 00:18:57,000 --> 00:19:00,000 می فرستد و کلید AES به گیرنده است. 308 00:19:00,000 --> 00:19:04,000 گیرنده رمزگشایی پیام کلید RSA خصوصی خود است. 309 00:19:04,000 --> 00:19:09,000 هر دو فرستنده و گیرنده در حال حاضر دارای یک کلید AES مشترک بین آنها است. 310 00:19:09,000 --> 00:19:14,000 AES، که بسیار سریعتر در رمزنگاری و رمزگشایی از RSA، 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 AES، که بسیار سریعتر در رمزنگاری و رمزگشایی از RSA، 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 ما فقط نیاز RSA به انتقال کلید به اشتراک گذاشته است. 317 00:19:36,000 --> 00:19:40,000 ما دیگر نیاز به استفاده از RSA در تمام. 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، ما به قدرت D، که 185 بالا بردن، 323 00:20:07,000 --> 00:20:18,000 وزارت دفاع ازت، است که 989، تا 67 برابر است، 324 00:20:18,000 --> 00:20:24,000 است که C نامه ای در ASCII. 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 است که S نامه ای در ASCII. 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 در ASCII. 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 کاراکتر در ASCII است. 336 00:21:51,000 --> 00:21:57,000 نام من راب Bowden، و این CS50. 337 00:21:57,000 --> 00:22:00,000 [CS50.TV] 338 00:22:06,000 --> 00:22:08,000 RSA در تمام. 339 00:22:08,000 --> 00:22:14,000 RSA در تمام. [خنده] 340 00:22:14,000 --> 00:22:17,000 در همه.