[Powered by Google Translate] [RSA] [రాబ్ బౌడెన్] [టామీ MacWilliam] [హార్వర్డ్ విశ్వవిద్యాలయం] [ఈ CS50 ఉంది.] [CS50.TV] యొక్క RSA, డేటా ఎన్క్రిప్ట్ కోసం విస్తృతంగా ఉపయోగించే అల్గారిథమ్ పరిశీలించి చూద్దాం. సీజర్ మరియు విజెనెరే సాంకేతికలిపులు వంటి గుప్తలేఖన యాంత్రిక పద్ధతులకు చాలా సురక్షితం కాని. సీజర్ సాంకేతికలిపి తో, దాడి మాత్రమే 25 వివిధ కీలు ప్రయత్నించండి అవసరం సందేశం యొక్క సాదా టెక్స్ట్ పొందడానికి. విజెనెరే సాంకేతికలిపి సీజర్ సాంకేతికలిపి కంటే ఎక్కువ సురక్షితమైనది ఉండగా ఎందుకంటే కీలు కోసం పెద్ద శోధన స్థలం యొక్క, ఒకసారి దాడి ఒక విజెనెరే సాంకేతికలిపిలో కీ యొక్క పొడవు తెలుసు ఇది encrypted టెక్స్ట్ లో నమూనాల యొక్క ఒక విశ్లేషణ ద్వారా నిర్ణయించబడతాయి విజెనెరే సాంకేతికలిపి ఆ మరింత సురక్షిత సీజర్ సాంకేతికలిపి కంటే లేదు. RSA, మరోవైపు, ఈ వంటి దాడులు కాదు. సీజర్ సాంకేతికలిపి మరియు విజెనెరే సాంకేతికలిపి అదే కీ ఉపయోగించడానికి గుప్తీకరించడానికి మరియు వ్యక్తీకరించడానికి ఒక సందేశాన్ని రెండు. ఈ ఆస్తి ఈ సాంకేతికలిపులు సమాన కీ యాంత్రిక పద్ధతులు చేస్తుంది. సమాన కీ యాంత్రిక పద్ధతుల ద్వారా ఒక ప్రాధమిక సమస్య వారు సందేశం గుప్తలేఖనం మరియు పంపే ఒక ఆధారపడి ఉంది మరియు ఒక స్వీకరించడం మరియు సందేశం రహస్య సంకేతాన్ని సమాచారంగా మార్చే ఇప్పటికే వారు రెండు ఉపయోగించే కీ న upfront అంగీకరించాయి కు. కానీ మేము ఇక్కడ ఒక ప్రారంభ సమస్య ఒక బిట్ కలిగి ఉంటాయి. ఎలా కమ్యూనికేట్ చేయడానికి కావలసిన 2 కంప్యూటర్లు వాటి మధ్య ఒక రహస్య కీ ఏర్పరచాలి? కీ రహస్య ఉండాలి, అప్పుడు మేము కీ గుప్తీకరించడానికి మరియు వ్యక్తీకరించడానికి ఒక మార్గం అవసరం. మేము అన్ని సమాన కీ గూఢ లిపి శాస్త్రం ఉంటే అప్పుడు మేము అదే సమస్య తిరిగి వచ్చి. RSA, మరోవైపు, కీలు ఒక జత ఉపయోగిస్తుంది వ్యక్తీకరణకు ఎన్క్రిప్షన్ మరియు మరొక కోసం ఒకటి. ఒక పబ్లిక్ కీ అని, మరియు ఇతర ప్రైవేట్ కీ ఉంది. పబ్లిక్ కీ సందేశాలను గుప్తీకరించడానికి ఉపయోగించిన. మీరు దాని పేరు ద్వారా ఊహించినట్లుగా, మేము మా పబ్లిక్ కీ భాగస్వామ్యం చేయవచ్చు మేము ఒక గుప్తీకరించిన సందేశాన్ని భద్రతతో సంబంధం లేకుండా కావలసిన ఎవరైనా. సందేశాలు ఒక పబ్లిక్ కీని ఉపయోగించి గుప్తీకరించబడింది దాని సంబంధిత ప్రైవేట్ కీతో దానిని వ్యక్తపరచడం సాధ్యమవుతుంది. మీరు మీ పబ్లిక్ కీ భాగస్వామ్యం అయితే, మీరు ఎల్లప్పుడూ మీ ప్రైవేట్ కీ రహస్య ఉండాలి. ప్రైవేట్ కీని రహస్యంగా ఉంచారు మరియు మాత్రమే ప్రైవేట్ కీ ఉండాలి నుండి 2 వినియోగదారులు సందేశాలు పంపడానికి అనుకుంటే, వ్యక్తీకరించడానికి సందేశాలను ఉపయోగించవచ్చు ముందుకు వెనుకకు RSA గుప్తీకరించబడింది రెండు వినియోగదారులు వారి స్వంత పబ్లిక్ మరియు ప్రైవేట్ కీ జతను కలిగి ఉండాలి. యూజర్ 1 నుండి యూజర్ 2 సందేశాలను మాత్రమే, వినియోగదారు యొక్క 2 కీ జతను ఉపయోగించడానికి మరియు యూజర్ 2 నుండి యూజర్ 1 సందేశాలను మాత్రమే యూజర్ 1 యొక్క కీ జతను ఉపయోగించండి. 2 ప్రత్యేక గుప్తీకరించడానికి కీలు మరియు వ్యక్తీకరించడానికి సందేశాలను ఉన్నారనే వాస్తవం RSA ఒక అసమాన కీ యాంత్రిక చేస్తుంది. మేము మరొక కంప్యూటర్ కు పంపడానికి పబ్లిక్ కీ గుప్తీకరించడానికి లేదు కీ ఏమైనప్పటికీ పబ్లిక్ నుండి. ఈ RSA సమాన కీ యాంత్రిక అదే ప్రారంభ సమస్య అర్థం కాదు. సంభాషించడానికి కావలసిన 2 కంప్యూటర్లు ఎలా వాటి మధ్య ఒక రహస్య కీ ఏర్పాటు? కీ రహస్య ఉండాలి, అప్పుడు మేము కీ గుప్తీకరించడానికి మరియు వ్యక్తీకరించడానికి ఒక మార్గం అవసరం. మేము అన్ని సమాన కీ గూఢ లిపి శాస్త్రం ఉంటే అప్పుడు మేము మీరు అదే సమస్య తిరిగి రండి. RSA, మరోవైపు, కీలు ఒక జత ఉపయోగిస్తుంది వ్యక్తీకరణకు ఎన్క్రిప్షన్ మరియు మరొక కోసం ఒకటి. ఒక పబ్లిక్ కీ అని, మరియు ఇతర ప్రైవేట్ కీ ఉంది. పబ్లిక్ కీ సందేశాలను గుప్తీకరించడానికి ఉపయోగించిన. మీరు దాని పేరు ద్వారా ఊహించినట్లుగా, మేము మీరు ఎవరితో మా పబ్లిక్ కీ భాగస్వామ్యం చేయవచ్చు ఒక గుప్తీకరించిన సందేశాన్ని భద్రతతో సంబంధం లేకుండా. ఒక పబ్లిక్ కీని ఉపయోగించి గుప్తీకరించిన సందేశాలు మాత్రమే దానిని వ్యక్తపరచడం సాధ్యమవుతుంది దాని సంబంధిత ప్రైవేట్ కీతో. మీరు మీ పబ్లిక్ కీ భాగస్వామ్యం అయితే, మీరు ఎల్లప్పుడూ మీ ప్రైవేట్ కీ రహస్య ఉండాలి. ప్రైవేట్ కీని రహస్యంగా ఉంచారు చేయాలి నుండి మరియు మాత్రమే ప్రైవేట్ కీ వ్యక్తీకరించడానికి సందేశాలను ఉపయోగించవచ్చు 2 వినియోగదారులు RSA తో సందేశాలను ఎన్క్రిప్టెడ్ పంపండి అనుకుంటే ముందుకు వెనుకకు రెండు వినియోగదారులు వారి స్వంత పబ్లిక్ మరియు ప్రైవేట్ కీ జతను కలిగి ఉండాలి. యూజర్ 1 నుండి యూజర్ 2 సందేశాలను వినియోగదారు 2 నుండి యూజర్ 1 యూజర్ 2 యొక్క కీ జతను, మరియు సందేశాలను మీరు ఉపయోగించే వినియోగదారు 1 యొక్క కీ జతను ఉపయోగించండి. 2 ప్రత్యేక గుప్తీకరించడానికి కీలు మరియు వ్యక్తీకరించడానికి సందేశాలను ఉన్నారనే వాస్తవం RSA ఒక అసమాన కీ యాంత్రిక చేస్తుంది. మేము మరొక కంప్యూటర్ కు పంపడానికి పబ్లిక్ కీ గుప్తీకరించడానికి లేదు కీ ఏమైనప్పటికీ పబ్లిక్ నుండి. ఈ RSA అదే ప్రారంభ సమస్య అర్థం కాదు సమాన కీ యాంత్రిక పద్ధతులు వంటి. నేను RSA ఎన్క్రిప్షన్ వాడి ఒక సందేశాన్ని పంపాలని అనుకుంటున్నారా అయితే లాక్కోవడానికి, నేను మొదటి రాబ్ యొక్క పబ్లిక్ కీ అవసరం. కీలు ఒక జత ఉత్పత్తి చేయడానికి, రాబ్ 2 పెద్ద ప్రధాన సంఖ్యలు ఎంచుకోండి అవసరం. ఈ సంఖ్యలు, రెండు ప్రభుత్వ మరియు ప్రైవేట్ కీలను ఉపయోగించబడుతుంది కానీ పబ్లిక్ కీ మాత్రమే, ఈ 2 సంఖ్యల ఉత్పత్తి ఉపయోగించే కాదు సంఖ్యలు చూపింది. ఒకసారి నేను రాబ్ యొక్క పబ్లిక్ కీని ఉపయోగించి సందేశం గుప్తీకరించబడింది చేసిన నేను రాబ్ సందేశాన్ని పంపవచ్చు. ఒక కంప్యూటర్ కోసం, కారక సంఖ్యలు హార్డు సమస్య. పబ్లిక్ కీ, గుర్తు, 2 ప్రధాన సంఖ్యల ఉత్పత్తి ఉపయోగిస్తారు. ఈ ఉత్పత్తి అప్పుడు మాత్రమే 2 అంశాలు కలిగి ఉండాలి ప్రైవేట్ కీ తయారు చేసే సంఖ్యలు అని జరిగే. వ్యక్తీకరించడానికి సందేశాన్ని చేయడానికి, RSA ఈ ప్రైవేట్ కీ ఉపయోగించే లేదా సంఖ్యలు పబ్లిక్ కీ సృష్టించే విధానంలో కలిసి గుణించ. ఇది అంశం గణన కష్టం ఎందుకంటే ప్రైవేట్ కీని ఉపయోగిస్తారు 2 సంఖ్యలను ఒక పబ్లిక్ కీ ఉపయోగిస్తారు దాడి చేసేవారు ప్రైవేట్ కీని గుర్తించడానికి ఇది కష్టం వ్యక్తీకరించడానికి సందేశాన్ని అవసరం అని. ఇప్పుడు RSA యొక్క కొన్ని తక్కువ స్థాయి వివరాలు లోకి వీడలేదు. లెట్ యొక్క మొదటి మేము కీలు ఒక జత ఉత్పత్తి ఎలా చూడండి. మొదటి, మేము 2 ప్రధాన సంఖ్యలు చేయాలి. ఈ 2 సంఖ్యలను p మరియు q పిలుస్తాను. ఆచరణలో p మరియు q, పిక్ చేయడానికి మేము pseudorandomly రూపొందించే అప్పుడు పెద్ద సంఖ్యలో మరియు నిర్ణయించడానికి ఒక పరిశీలనను ఉపయోగించటానికి లేదో ఆ సంఖ్యలు బహుశా ప్రధాన ఉన్నాయి. మేము మళ్ళీ మరియు తర్వాత రాండమ్ సంఖ్యలు ఉత్పత్తి ఉంచుకోవచ్చు మేము ఉపయోగించే 2 పూర్ణాంకాల వరకు. ఇక్కడ p = 23 మరియు q = 43 ఎంచుకోండి అనుమతిస్తుంది. ఆచరణలో, గుర్తుంచుకో, p మరియు q పెద్ద సంఖ్యలో ఉండాలి. చాలా మేము తెలిసిన, సంఖ్యలు పెద్ద, కష్టం లేదు ఒక గుప్తీకరించిన సందేశాన్ని ఛేదించడానికి. కానీ అది సందేశాలను గుప్తీకరించడానికి మరియు వ్యక్తీకరించడానికి మరింత ఖరీదైన ఉంది. నేడు ఇది తరచుగా p మరియు q కనీసం 1024 బిట్స్ అని మంచిది, ఇది 300 కంటే ఎక్కువ దశాంశ అంకెలు వద్ద ప్రతి సంఖ్యను. కానీ మేము ఈ ఉదాహరణకు ఈ చిన్న వాడవు. ఇప్పుడు మేము ఒక 3 వ సంఖ్య పొందడానికి కలిసి p మరియు q గుణిస్తారు చేస్తాము మేము n పిలుస్తాను ఇది. మా సందర్భంలో, n = 23 989 = ఇది * 43. మేము = 989 n చేశారు. Q 1 - - తదుపరి మేము p గుణిస్తారు చేస్తాము 1 మేము మీ పిలుస్తాను ఒక 4 వ సంఖ్య,. పొందటానికి మా సందర్భంలో, చి = 22 924 = ఇది * 42. మేము చి = 924 ఉన్నాయి. ఇప్పుడు మేము చాలా ప్రధాన అని అనేక ఇ చేయాలి m మరియు మీ కంటే తక్కువ. రెండు సంఖ్యల సాపేక్షంగా ప్రధాన లేదా coprime ఉంటాయి రెండు సమానంగా విభజిస్తుంది వాటిని మాత్రమే సానుకూల పూర్ణాంక 1 ఉంటే. ఇ మరియు M యొక్క ఇతర మాటలలో, గొప్ప ఉమ్మడి విభాజకం 1 ఉండాలి. ఆచరణలో, ప్రధాన సంఖ్య 65537 కు ఇ సాధారణంగా ఉంది కాలం ఈ సంఖ్య మీ కారకంగా సంభవించదు. మా కొరకు కీస్, మేము వాడవు ఇ = 5 5 నుంచి 924 సాపేక్షంగా ప్రధాన ఉంది. చివరగా, మేము d పిలుస్తాను ఏది మరింత సంఖ్య, చెయ్యాలి. D సమీకరణం తృప్తిపరిచే విధంగా కొన్ని విలువ ఉండాలి డి = 1 (mod m). ఈ mod మీ మేము ప్రామాణిక అంక గణితం అనే ఉపయోగిస్తాము సూచిస్తుంది. ప్రామాణిక అంక గణితం లో, ఒకసారి ఒక సంఖ్య కొన్ని ఉన్నత బౌండ్ కంటే ఎక్కువ గెట్స్ ఇది 0 to చుట్టూ తిరిగి వ్రాప్ కనిపిస్తుంది. ఒక గడియారం, ఉదాహరణకు, ప్రామాణిక అంక గణితం ఉపయోగిస్తుంది. 1:59 తర్వాత ఒక నిమిషం, ఉదాహరణకు, 2:00 ఉంది 1:60 లేదు. నిమిషాల ముల్లు 0 to చుట్టూ చుట్టి ఉంది 60 పర్యవేక్షింపబడుతున్న ఒక ఉన్నత చేరిన తర్వాత. కాబట్టి, మేము 60 0 (mod 60) సమానం చెప్పగలదు మరియు 125 65 సమానం 5 (mod 60) సమానం. మా పబ్లిక్ కీ జతను ఇ మరియు n ఉంటుంది ఈ సందర్భంలో ఇ 5 మరియు n 989 ఉంటుంది. మా ప్రైవేట్ కీ, జంట d మరియు n ఉంటుంది మా కేసులో ఇది 185 మరియు 989 ఉంది. మా అసలు పూర్ణాంకాల p మరియు q కనిపించవు అని గుర్తించలేకపోతే ఎక్కడైనా మా ప్రైవేట్ లేదా పబ్లిక్ కీలను లో. ఇప్పుడు మేము కీలను మా జంట కలిగి, మేము యొక్క గుప్తీకరించడానికి ఎలా పరిశీలించి తెలియజేయండి మరియు వ్యక్తీకరించడానికి ఒక సందేశాన్ని. నేను, రాబ్ ఒక సందేశాన్ని పంపాలని అనుకుంటున్నారా అందువలన అతను ఈ కీ జతను తయారు చేయడానికి ఒక ఉంటుంది. అప్పుడు నేను ఉపయోగిస్తాము తన పబ్లిక్ కీ, కోసం రాబ్ అడుగుతాము అతనికి పంపడానికి ఒక సందేశాన్ని గుప్తీకరించడానికి. రాబ్ నాకు తన పబ్లిక్ కీ భాగస్వామ్యం గుర్తుంచుకోండి, పూర్తిగా సరైందే. అయితే తన వ్యక్తిగత కీ పంచుకునేందుకు సరే కాదు. నేను అతని ప్రైవేట్ కీ ఏమిటి ఏ ఆలోచన లేదు. మేము అనేక భాగాలుగా మా సందేశం m విచ్ఛిన్నం చేయవచ్చు అన్ని తరువాత n కంటే చిన్న మరియు ఆ భాగాలు ప్రతి గుప్తీకరించడానికి. మేము 4 భాగాలుగా విచ్ఛిన్నం చేసే స్ట్రింగ్ CS50, గుప్తీకరించడానికి మీరు ప్రతి అక్షరం ఒక. నా సందేశాన్ని గుప్తీకరించడానికి చేయడానికి, నేను మార్చవలసి ఉంటుంది సంఖ్యా ప్రాతినిధ్యం రకమైన. నా సందేశంలో అక్షరాలు తో ASCII విలువలు concatenate లెట్. ఒక సందేశాన్ని m గుప్తీకరించడానికి క్రమంలో నేను ఇ (mod N) కు సి = m గణించడం చేయాలి. కానీ m, n కంటే తక్కువ ఉండాలి లేదంటే పూర్తి సందేశాన్ని మాడ్యులో n వ్యక్తం సాధ్యం కాదు. మేము n కంటే చిన్నవిగా ఉంటాయి అన్ని ఇది అనేక భాగాలు, లోకి m విచ్ఛిన్నం చేయవచ్చు మరియు ఆ భాగాలు ప్రతి గుప్తీకరించడానికి. ఈ రాళ్లను ప్రతి ఎన్క్రిప్టింగ్, మేము పొందండి C1 5 = 67 (mod 989) ఇది = 658. మా రెండవ భాగం కోసం మేము 5 (mod 989) కు 83 కలిగి ఇది = 15. మా మూడవ భాగం కోసం మేము 5 (mod 989) కు 53 కలిగి ఇది = 799. చివరకు, మా గత భాగం కోసం మేము 5 (mod 989) కు 48 కలిగి ఇది 975 =. ఇప్పుడు మేము రాబ్ ఈ ఎన్క్రిప్టెడ్ విలువల పంపవచ్చు. ఇక్కడ మీరు, రాబ్ వెళ్ళండి. మా సందేశం ఎగురుతున్నప్పుడు, యొక్క మరొక పరిశీలించి తెలియజేయండి ఎలా మేము d ఆ విలువ వచ్చింది. మా సంఖ్య d 5D = 1 (mod 924) సంతృప్తి అవసరమైన. ఈ d 5 మాడ్యులో 924 యొక్క గుణకార విలోమం చేస్తుంది. 2 పూర్ణ, a మరియు b పొడిగించిన యూక్లిడ్ అల్గోరిథం ఇచ్చిన ఈ 2 పూర్ణాంకాల యొక్క గొప్ప ఉమ్మడి విభాజకం కనుగొనడానికి ఉపయోగిస్తారు. ఇది కూడా మా 2 ఇతర సంఖ్యలు, x మరియు y, ఇస్తుంది ఒక అండ్ బి యొక్క = గొప్ప ఉమ్మడి విభాజకం ద్వారా సమీకరణ గొడ్డలి + సంతృప్తి. ఎలా ఈ మాకు సహాయం చేస్తుంది? Well, ఒక కోసం ఇ = 5 పూరించే అండ్ బి కోసం చి = 924 మేము ఇప్పటికే ఈ సంఖ్యలు coprime ఉన్నాయని తెలుసుకోండి. వారి గొప్ప ఉమ్మడి విభాజకం 1. ఈ + 924y = 1 మాకు 5x ఇస్తుంది లేదా 5x = 1 - 924y. కానీ మేము మాత్రమే ప్రతిదీ మాడ్యులో 924 శ్రద్ధ ఉంటే 924y - అప్పుడు మేము డ్రాప్ చెయ్యవచ్చు. గడియారం తిరిగి థింక్. నిమిషాల ముల్లు 1 న మరియు అప్పుడు సరిగ్గా 10 గంటల, పాస్ ఉంటే మేము నిమిషాల ముల్లు ఇప్పటికీ 1 న తెలుసు. ఇక్కడ మేము, 1 వద్ద మొదలు మరియు తరువాత సరిగ్గా Y సార్లు చుట్టూ కాబట్టి మేము ఇంకా 1 వద్ద ఉంటాం. మేము = 1 (mod 924) 5x ఉన్నాయి. మరియు ఇక్కడ ఈ x, మేము ముందు వెతుకుతున్న d వలె ఉంటుంది మేము పొడిగించిన యూక్లిడ్ అల్గోరిథం ఉపయోగించడానికి అయితే ఈ సంఖ్య x పొందడానికి, మేము మా d వంటి వాడాలి సంఖ్య ఉంది. ఇప్పుడు ఒక = 5 విస్తరణకు యూక్లిడ్ అల్గోరిథం అమలు తెలియజేయండి మరియు b = 924. మేము పట్టిక పద్ధతి అనే పద్ధతి ఉపయోగిస్తారు. మా పట్టిక 4 నిలువు, x, y, d, మరియు k ఉంటుంది. మా పట్టిక 2 వరుసలు తో మొదలవుతుంది. మొదటి వరుసగా మేము అప్పుడు 1, 0, 5 ఇది మా విలువ, కలిగి మరియు మా రెండవ వరుస 0, 1, మరియు బి కోసం మా విలువ, ఇది 924 ఉంది. 4 వ కాలమ్, k, విలువ ఫలితంగా ఉంటుంది d విలువ పై వరుసగా d విలువ విభజన యొక్క అదే వరుసలో. మేము 924 ద్వారా విభజించబడింది 5 కొన్ని మిగిలిన 0 ఉంటాయి. అంటే = 0 k కలిగివుంటాయి. ఇప్పుడు ప్రతి ఇతర సెల్ విలువ పై సెల్ 2 వరుసలు విలువ ఉంటుంది ఇది k పై వరుస యొక్క మైనస్ విలువ. 3 వ వరుసలో d తో ప్రారంభిద్దాం. మేము 5 కలిగి - 924 * 0 = 5. 0 ఇది 1 * 0 - మేము 0 కలిగి తదుపరి మరియు 1 - 0 * 0 ఇది 1 ఉంది. చాలా చెడు లేదు, కాబట్టి యొక్క తదుపరి వరుస కొనసాగండి తెలియజేయండి. మొదటి మేము k యొక్క మా విలువ అవసరం. 924, కొన్ని మిగిలిన 5 = 184 ద్వారా విభజించబడింది కాబట్టి k కోసం మా విలువ 184 ఉంది. ఇప్పుడు 924 - 5 * 184 = 4. 1 - 0 * 184 1 మరియు 0 - 1 * 184 -184 ఉంది. All right, తర్వాత వరుస చేయండి చూద్దాం. K మన విలువ 1 ఎందుకంటే ఉంటుంది 5 కొన్ని మిగిలిన 4 = 1 ద్వారా విభజించబడింది. యొక్క ఇతర కాలమ్ నింపండి చూద్దాం. 5 - 4 * 1 = 1. 0 - 1 * 1 = -1. మరియు 1 - 184 * 1 185 ఉంది. K యొక్క మా తదుపరి విలువ చూద్దాం. మేము 4 ఇది 1, 4 విభజించబడింది ఉన్నట్లు సరే, కనిపిస్తోంది. మేము 1 విభజన ఎక్కడ ఈ సందర్భంలో ఆ k సమానంగా ఉంటుంది పైన వరుసగా d విలువ మేము మా అల్గోరిథం పూర్తి చేసిన అర్థం. మేము గత వరుసగా x = 185 మరియు y = -1 కలిగి ఇక్కడ చూడగలరు. యొక్క ఇప్పుడు మా అసలు లక్ష్యం వచ్చి లెట్. మేము ఫలితంగా x విలువ ఈ అల్గోరిథం నడుస్తున్న చెప్పారు ఒక (mod బి) యొక్క గుణకార విలోమం ఉంటుంది. ఆ 185 5 యొక్క గుణకార విలోమం (mod 924) అని అర్థం ఇది మేము d కోసం 185 యొక్క విలువను అర్థం. నిజానికి ఆ d = 1 గత వరుసగా ఇ మీ coprime జరిగినది నిర్థారిస్తుంది. అది 1 కాకపోయి ఉంటే అప్పుడు మేము ఒక కొత్త ఇ ఎంచుకోండి వుంటుంది. ఇప్పుడు రాబ్ నా సందేశం పొందింది లేదో యొక్క చూసేలా. ఎవరైనా నాకు ఒక ఎన్క్రిప్టెడ్ సందేశాన్ని పంపినప్పుడు కాలం నా ప్రైవేట్ కీ ఒక రహస్యంగా ఉంచారు చేసిన వంటి నేను ఎవరు సందేశాన్ని వ్యక్తీకరించవచ్చు మాత్రమే ఒక ఉన్నాను. వ్యక్తీకరించడానికి ఒక భాగం సి నేను అసలు సందేశం లెక్కించవచ్చు d శక్తి (mod N) కు భాగం సమానంగా ఉంటుంది. D మరియు n నా వ్యక్తిగత కీ నుండి గుర్తుంచుకోండి. మేము వ్యక్తీకరించడానికి ప్రతి భాగం దాని భాగాలు నుండి పూర్తి సందేశాన్ని పొందడానికి మరియు ఫలితాలు concatenate. RSA ఎలా సురక్షితం? నిజానికి, మనం చెప్పలేము. భద్రత ఒక సందేశాన్ని పగుళ్లు దాడి పడుతుంది ఎంత ఆధారంగా RSA గుప్తీకరించబడింది. ఒక అటాకర్ మీ పబ్లిక్ కీ ప్రాప్తి ఉంది గుర్తుంచుకోండి ఇది ఇ మరియు n రెండు కలిగి ఉంది. దాడి దాని 2 పూర్ణాంకాల, p మరియు q లోకి n కారణం చేస్తుంది ఉంటే అప్పుడు ఆమె పొడిగించిన యూక్లిడ్ అల్గారిథమ్ ఉపయోగించి d లెక్కించేందుకు కాలేదు. ఈ ఆమె ఏ సందేశాన్ని వ్యక్తీకరించవచ్చు ఉపయోగించే ప్రైవేట్ కీ, ఇస్తుంది. కానీ ఎంత త్వరగా మేము పూర్ణాంకాల కారణం కావచ్చు? మళ్లీ, మనం చెప్పలేము. ఎవరూ, అది చేయడం ఒక వేగవంతమైన మార్గం కనుగొన్న ఇది ఇచ్చిన అర్థం తగినంత పెద్ద n అది అవాస్తవ రీతిలో సుదీర్ఘ దాడి పడుతుంది సంఖ్య అంశం. ఎవరైనా కారక పూర్ణాంకాల యొక్క వేగవంతమైన మార్గం బహిర్గతం ఉంటే RSA విభజించబడినట్లు చేస్తుంది. కానీ కూడా పూర్ణాంక కారకాలకు అంతర్గతంగా నెమ్మదిగా RSA యాంత్రిక ఇంకా కొన్ని దోషం కలిగి ఉంటుంది ఆ సందేశాలను సులభంగా వ్యక్తీకరణకు అనుమతిస్తుంది. ఎవరూ ఇంకా ఒక దోషం కనుగొనబడింది మరియు వెల్లడించింది కానీ ఒక ఉనికిలో లేదు కాదు. సిద్ధాంతం, ఎవరైనా RSA గుప్తీకరించబడింది అన్ని డేటాను చదవడానికి అక్కడ ఉంటుంది. గోప్యతా సమస్యను మరొక బిట్ ఉంది. టామీ నా పబ్లిక్ కీని ఉపయోగించి కొన్ని సందేశాన్ని గుప్తీకరిస్తుంది ఉంటే మరియు దాడి నా పబ్లిక్ కీని ఉపయోగించి అదే సందేశం గుప్తీకరిస్తుంది దాడి 2 సందేశాలు వలె ఉంటాయి చూస్తారు మరియు ఆ విధంగా టామీ గుప్తీకరించబడింది తెలుసు. ఈ నివారించేందుకు, సందేశాలు సాధారణంగా యాదృచ్ఛిక బిట్స్ తో మందంగా ఉంటాయి అదే సందేశం గుప్తీకరించబడింది కాబట్టి గుప్తీకరించబడింది ముందు సందేశం న padding భిన్నంగా ఉంటుంది, అనేక సార్లు కాలం వివిధ కనిపిస్తుంది. కానీ మేము భాగాలుగా సందేశాలను విడిపోయినట్లు కలిగి ఎలా గుర్తు ప్రతి భాగం n కంటే తక్కువగా ఉంటుంది కాబట్టి? భాగాలుగా పాడింగ్ మేము విషయాలు విడిపోయారు ఉంటుంది అర్థం నుండి మరింత భాగాలుగా మందంగా భాగం n కంటే తక్కువగా ఉండాలి. మరియు గుప్తలేఖనం, RSA తో సాపేక్షంగా ఖరీదైనవి మరియు అనేక భాగాలుగా ఒక సందేశాన్ని విచ్ఛిన్నం అవసరం చాలా వ్యయంతో కూడుకొని ఉంటుంది. డేటా యొక్క ఒక భారీ మొత్తంలో ఎన్క్రిప్టెడ్ ఉండాలి మరియు మళ్లీ ఉంటే మేము సమాన కీ యాంత్రిక పద్ధతులు యొక్క ప్రయోజనాలు మిళితం చేయవచ్చు RSA తో భద్రత మరియు సామర్ధ్యం రెండూ పొందడానికి. మేము ఇక్కడ దీనిని కాదు ఉన్నప్పటికీ, AES విజెనెరే మరియు సీజర్ సాంకేతికలిపులు వంటి సమాన కీ యాంత్రిక ఉంది కానీ చాలా క్లిష్టంగా ఛేదించడానికి. అయితే, మేము ఒక భాగస్వామ్య రహస్య కీని రూపొందించడానికి లేకుండా AES ఉపయోగించలేరు 2 వ్యవస్థల మధ్య, మరియు మేము ముందు ఆ సమస్య చూసింది. అయితే ఇప్పుడు మేము 2 వ్యవస్థల మధ్య భాగస్వామ్య రహస్య కీ స్థాపించడానికి RSA ఉపయోగించవచ్చు. మేము డేటా పంపినవారు పంపడం కంప్యూటర్ కాల్ చేస్తాము మరియు కంప్యూటర్ డేటా రిసీవర్ అందుకున్నాడు. రిసీవర్ ఒక RSA కీ జతను కలిగి ఉంది మరియు పంపుతుంది లేఖరికి పబ్లిక్ కీ. పంపినవారు, ఒక AES కీ ఉత్పత్తి రిసీవర్ యొక్క RSA పబ్లిక్ కీ తో గుప్తీకరిస్తుంది, మరియు రిసీవర్ AES కీ పంపుతుంది. రిసీవర్ దాని RSA ప్రైవేట్ కీని తో సందేశం వ్యక్తీకరిస్తుంది. పంపినవారు మరియు గ్రహీత ఇద్దరూ ఇప్పుడు వాటి మధ్య ఒక భాగస్వామ్య AES కీ ఉంది. RSA కంటే మరియు గుప్తలేఖనం వద్ద చాలా వేగంగా ఇది AES, ఇప్పుడు డేటా పెద్ద మొత్తాల గుప్తీకరించడానికి మరియు రిసీవర్ వాటిని పంపడానికి ఉపయోగిస్తారు, వ్యక్తీకరించడానికి అదే కీ ఎవరు ఉపయోగించి. RSA కంటే మరియు గుప్తలేఖనం వద్ద చాలా వేగంగా ఇది AES, ఇప్పుడు డేటా పెద్ద మొత్తాల గుప్తీకరించడానికి మరియు రిసీవర్ వాటిని పంపడానికి ఉపయోగిస్తారు, వ్యక్తీకరించడానికి అదే కీ ఎవరు ఉపయోగించి. మేము భాగస్వామ్యం చేసిన కీ బదిలీ RSA అవసరం. మేము ఇకపై అన్ని వద్ద RSA ఉపయోగించాలి. నేను ఒక సందేశాన్ని పొందారు కనిపిస్తుంది. ఎవరైనా పేపర్ విమానంపై ఏమి చదివి ఉంటే నేను క్యాచ్ ముందు అది పెద్ద విషయం కాదు నేను ప్రైవేట్ కీతో మాత్రమే ఒక ఉన్నాను ఎందుకంటే. సందేశంలో భాగాలుగా ప్రతి వ్యక్తీకరించడానికి యొక్క లెట్. మొదటి భాగం ఈ, 658, మేము, 185 ఉంది d శక్తి, గాథలకు 989 ఇది mod N, 67 సమానం ASCII లో లేఖ సి ఇది. ఇప్పుడు, రెండవ భాగం లో. రెండవ భాగం, విలువ 15 ఉన్నాయి మేము 185th అధికారంలోకి పెంచడానికి, ఇది mod 989, మరియు ఈ 83 సమానం ASCII లో లేఖ S ఇది. ఇప్పుడు విలువ 799 ఉన్నాయి మూడవ భాగం, కోసం, మేము, 185 కు పెంచడానికి mod 989, మరియు ఈ 53 సమానం, ASCII లో పాత్ర 5 విలువ ఇది. ఇప్పుడు గత భాగం కోసం, ఇది విలువ 975 ఉంది మేము, 185 కు mod 989, పెంచడానికి మరియు ఈ ASCII లో పాత్ర 0 విలువ ఇది 48, సమానంగా ఉంటుంది. నా పేరు రాబ్ బౌడెన్, మరియు ఈ CS50 ఉంది. [CS50.TV] అన్ని వద్ద RSA. అన్ని వద్ద RSA. [నవ్వు] అన్ని వద్ద.