1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [આરએસએ] 2 00:00:02,000 --> 00:00:04,000 [રોબ બોડેન] [ટોમી MacWilliam] [હાર્વર્ડ યુનિવર્સિટી] 3 00:00:04,000 --> 00:00:07,000 [આ CS50 છે.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 ચાલો આરએસએ, માહિતી એનક્રિપ્ટ કરવા માટે વ્યાપકપણે ઉપયોગ અલગોરિધમ પર એક નજર. 5 00:00:11,000 --> 00:00:16,000 સીઝર અને Vigenère સાઇફર્સ જેવા એન્ક્રિપ્શન algorithms ખૂબ સુરક્ષિત નથી. 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 આરએસએ, બીજી બાજુ, આ જેવા હુમલાઓ માટે સંવેદનશીલ નથી. 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 આરએસએ, બીજી બાજુ, કીઓ એક જોડી વાપરે છે, 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 માત્ર તેની અનુરૂપ ખાનગી કી સાથે decrypted કરી શકાય છે. 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 વપરાશકર્તા પાસેથી 1 વપરાશકર્તા માટે વપરાશકર્તા 2 કી જોડ અને સંદેશાઓ ઉપયોગ 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 આનો અર્થ એ થાય કે 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 ડિક્રિપ્ટ સંદેશ કરવા, આરએસએ આ ખાનગી કી ઉપયોગ કરશે 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 અને 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 primes કે અમે ઉપયોગ કરી શકે છે. 100 00:04:08,000 --> 00:04:15,000 અહીં આપણે = પૃષ્ઠ 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 અમે 989 = n છે. 112 00:04:58,000 --> 00:05:02,000 Q સાથે 1 - - આગળ અમે પૃષ્ઠ વધવું પડશે 1 113 00:05:02,000 --> 00:05:05,000 એક 4th, કે જે અમે મીટર કૉલ કરશો મેળવે છે. 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 બે નંબર પ્રમાણમાં વડા અથવા coprime છે 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 (mod મીટર). 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 mod) સમકક્ષ છે 137 00:06:46,000 --> 00:06:57,000 અને 125 65 સમકક્ષ છે 5 (60 mod) સમકક્ષ છે. 138 00:06:57,000 --> 00:07:02,000 અમારા જાહેર કી જોડ E અને N હશે 139 00:07:02,000 --> 00:07:09,000 જ્યાં આ કિસ્સામાં ઈ 5 છે અને n એ 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 નોંધ કરો કે અમારા મૂળ primes 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 હું ઈ (mod એન) માટે કેચ = મીટર ગણતરી કરવાની જરૂર પડશે. 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 = 5 માટે 67 (989 mod) 167 00:09:03,000 --> 00:09:06,000 658 = છે. 168 00:09:06,000 --> 00:09:15,000 અમારા બીજા ભાગ માટે અમે 5 એ (989 mod) માટે 83 છે 169 00:09:15,000 --> 00:09:18,000 = 15 છે. 170 00:09:18,000 --> 00:09:26,000 અમારા ત્રીજા ભાગ માટે અમે 5 એ (989 mod) માટે 53 છે 171 00:09:26,000 --> 00:09:30,000 799 = છે. 172 00:09:30,000 --> 00:09:39,000 અને છેલ્લે, અમારા છેલ્લા ભાગ માટે અમે 5 એ (989 mod) નો થી 48 હોય છે 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 અમારા નંબર ડી માટે 5 દિ = 1 (924 mod) નો સંતોષ જરૂર છે. 179 00:10:17,000 --> 00:10:24,000 આ 5 924 મોડ્યૂલો ના multiplicative વ્યસ્ત ડી બનાવે છે. 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 કે = સૌથી મહાન એક બોલ્ડ અને સામાન્ય ભાજક દ્વારા સમીકરણ ax + સંતોષવા. 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 અને = બો માટે 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 શરૂ થાય છે અને પછી લગભગ બરાબર વાય વખત લપેટી 197 00:11:39,000 --> 00:11:41,000 તેથી અમે હજુ 1 અંતે હશો. 198 00:11:41,000 --> 00:11:49,000 અમે 5x = 1 (924 mod) નો હોય છે. 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 કૉલમ, એક્સ, વાય, ડી, અને 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 અને અમારા બીજા પંક્તિ 1 0 છે, અને બોલ્ડ માટે અમારા કિંમત છે, કે જે 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 k = હોય છે. 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 ચાલો 3 જી પંક્તિમાં ડી સાથે શરૂ કરો. 217 00:13:11,000 --> 00:13:19,000 અમે 5 હોય - 924 0 * 5 =. 218 00:13:19,000 --> 00:13:25,000 1 * 0 જે 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 વેલ, લાગે છે કે અમારી પાસે 1, જે 4 છે દ્વારા 4 વહેંચાયેલી છે. 235 00:14:40,000 --> 00:14:43,000 આ કિસ્સામાં જ્યાં અમે 1 દ્વારા ભાગાકાર કરી રહ્યાં ફૂટ કે k સમાન છે 236 00:14:43,000 --> 00:14:50,000 ઉપર પંક્તિ માં ડી ના મૂલ્યનો અર્થ છે કે અમે અમારા અલગોરિધમ સાથે પૂર્ણ કરી લીધું. 237 00:14:50,000 --> 00:14:58,000 અમે અહીં જુઓ કે અમે છેલ્લા સળંગ 185 = x અને = 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) multiplicative વ્યસ્ત રહેશે. 241 00:15:08,000 --> 00:15:15,000 એટલે કે 185 5 multiplicative વ્યસ્ત (924 mod) નો છે 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 કે ઈ મી 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 ડી શક્તિ (mod એન) માટે ભાગ સમાન છે. 252 00:15:53,000 --> 00:15:57,000 યાદ રાખો કે ડી અને 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 બરાબર સુરક્ષિત કેવી રીતે આરએસએ છે? 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 જે બંને E અને N સમાવે છે. 261 00:16:21,000 --> 00:16:26,000 જો હુમલાખોર તેની 2 primes, p અને q માં n પરિબળ વ્યવસ્થા, 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 જેનો અર્થ છે કે આપેલ પર્યાપ્ત વિશાળ 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 આરએસએ ભાંગી આવશે. 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 જેથી દરેક ભાગ 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 એન્ક્રિપ્શન અને ડિક્રિપ્શન આરએસએ સાથે પ્રમાણમાં ખર્ચાળ છે, 291 00:18:01,000 --> 00:18:05,000 અને તેથી ઘણા હિસ્સામાં એક સંદેશ તોડી જરૂર ખૂબ ખર્ચાળ હોઇ શકે છે. 292 00:18:05,000 --> 00:18:09,000 જો માહિતી વિશાળ વોલ્યુમ એનક્રિપ્ટ થયેલ હોવું જોઇએ છે અને decrypted 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 એઇએસ આ Vigenère અને સીઝર સાઇફર્સ જેવી સિમેટ્રિક કી એલ્ગોરિધમ છે 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 રીસીવર કોઈ RSA કી જોડ છે અને મોકલે છે 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 રીસીવર તેના RSA ખાનગી કી સાથે મેસેજ decrypts. 309 00:19:04,000 --> 00:19:09,000 બંને મોકલનાર અને રીસીવર હવે તેમની વચ્ચે વહેંચાયેલ એઇએસ કી છે. 310 00:19:09,000 --> 00:19:14,000 એઇએસ છે, જે ખૂબ અને 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 એઇએસ છે, જે ખૂબ અને 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 અમે હમણાં જ આરએસએ જરૂરી વહેંચાયેલ કી પરિવહન કરે છે. 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 મોડ n એ, કે જે 989 છે 67 માટે સમાન છે, 324 00:20:18,000 --> 00:20:24,000 જે તે 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 જેને આપણે 185th શક્તિ વધારવા, 328 00:20:41,000 --> 00:20:51,000 989 મોડ, અને આ 83 ને સમાન હોય છે 329 00:20:51,000 --> 00:20:57,000 જે તે 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 જે તે ASCII માં 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 છે, જે તે ASCII માં અક્ષર 0 ની કિંમત છે ને સમાન હોય છે. 336 00:21:51,000 --> 00:21:57,000 મારું નામ રોબ બોડેન છે, અને આ CS50 છે. 337 00:21:57,000 --> 00:22:00,000 [CS50.TV] 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 અંતે તમામ.