एन्क्रिप्शन एल्गोरिथम rsa 3072. इलेक्ट्रॉनिक डिजिटल सिग्नेचर, RSA एल्गोरिथम

इलेक्ट्रोनिक डिजिटल हस्ताक्षर(ईडीएस) एक इलेक्ट्रॉनिक दस्तावेज़ है जो डेटा स्रोत को प्रमाणित करने और इस इलेक्ट्रॉनिक दस्तावेज़ को जालसाजी से बचाने के लिए आवश्यक है।

सामान्य योजना

एक इलेक्ट्रॉनिक हस्ताक्षर योजना में आमतौर पर शामिल हैं:

  • उपयोगकर्ता कुंजी जोड़े उत्पन्न करने के लिए एल्गोरिदम;
  • हस्ताक्षर की गणना का कार्य;
  • हस्ताक्षर सत्यापन समारोह।

दस्तावेज़ और उपयोगकर्ता की निजी कुंजी के आधार पर हस्ताक्षर की गणना करने का कार्य वास्तविक हस्ताक्षर की गणना करता है। एल्गोरिथ्म के आधार पर, हस्ताक्षर की गणना के लिए कार्य नियतात्मक या संभाव्य हो सकता है। नियतात्मक कार्य हमेशा एक ही इनपुट से एक ही हस्ताक्षर की गणना करते हैं। संभाव्यता फ़ंक्शन हस्ताक्षर में यादृच्छिकता का एक तत्व जोड़ते हैं, जो ईडीएस एल्गोरिदम की क्रिप्टोग्राफ़िक शक्ति को बढ़ाता है। हालांकि, संभाव्य योजनाओं को यादृच्छिकता के एक विश्वसनीय स्रोत (या तो एक हार्डवेयर शोर जनरेटर या एक क्रिप्टोग्राफिक रूप से विश्वसनीय छद्म-यादृच्छिक बिट जनरेटर) की आवश्यकता होती है, जो कार्यान्वयन को जटिल बनाता है।

वर्तमान में, नियतात्मक योजनाओं का व्यावहारिक रूप से उपयोग नहीं किया जाता है।

सिग्नेचर वेरिफिकेशन फंक्शन जाँचता है कि क्या दिए गए सिग्नेचर मेल खाते हैं इस दस्तावेज़और उपयोगकर्ता की सार्वजनिक कुंजी। उपयोगकर्ता की सार्वजनिक कुंजी सभी के लिए उपलब्ध है, इसलिए कोई भी इस दस्तावेज़ पर हस्ताक्षर सत्यापित कर सकता है।

चूंकि हस्ताक्षर किए जाने वाले दस्तावेज़ परिवर्तनशील (और बल्कि लंबी) लंबाई के होते हैं, ईडीएस योजनाओं में, हस्ताक्षर अक्सर दस्तावेज़ पर नहीं, बल्कि उसके हैश पर रखे जाते हैं। हैश की गणना क्रिप्टोग्राफ़िक हैश फ़ंक्शंस का उपयोग करके की जाती है ताकि यह सुनिश्चित किया जा सके कि हस्ताक्षर सत्यापित होने पर दस्तावेज़ परिवर्तनों का पता लगाया जा सके। हैश फ़ंक्शन ईडीएस एल्गोरिथम का हिस्सा नहीं हैं, इसलिए योजना में किसी भी विश्वसनीय हैश फ़ंक्शन का उपयोग किया जा सकता है।

सुरक्षा

एक डिजिटल हस्ताक्षर प्रदान करता है:

  • दस्तावेज़ के स्रोत की पहचान। दस्तावेज़ परिभाषा के विवरण के आधार पर, "लेखक", "परिवर्तन किए गए", "टाइमस्टैम्प", आदि जैसे क्षेत्रों पर हस्ताक्षर किए जा सकते हैं।
  • दस्तावेज़ परिवर्तन के खिलाफ सुरक्षा। दस्तावेज़ (या हस्ताक्षर) में कोई भी आकस्मिक या जानबूझकर परिवर्तन हैश को बदल देगा, इसलिए, हस्ताक्षर अमान्य हो जाएगा।
  • लेखकत्व से इनकार करने की असंभवता। चूंकि आप एक सही हस्ताक्षर तभी बना सकते हैं जब आप निजी कुंजी जानते हों, और यह केवल स्वामी को ही पता हो, स्वामी दस्तावेज़ पर अपने हस्ताक्षर को अस्वीकार नहीं कर सकता।

निम्नलिखित डिजिटल हस्ताक्षर खतरे संभव हैं:

  • एक हमलावर अपनी पसंद के दस्तावेज़ के लिए जाली हस्ताक्षर करने का प्रयास कर सकता है।
  • एक हमलावर किसी दस्तावेज़ को किसी दिए गए हस्ताक्षर से मिलान करने का प्रयास कर सकता है ताकि हस्ताक्षर उससे मेल खा सके।
  • एक हमलावर एक दस्तावेज़ के लिए एक हस्ताक्षर बनाने की कोशिश कर सकता है।

विश्वसनीय हैश फ़ंक्शन का उपयोग करते समय, वास्तविक हैश के समान नकली दस्तावेज़ बनाना कम्प्यूटेशनल रूप से कठिन है। हालांकि, इन खतरों को विशिष्ट हैशिंग एल्गोरिदम, हस्ताक्षर, या उनके कार्यान्वयन में त्रुटियों की कमजोरियों के कारण महसूस किया जा सकता है।

फिर भी, डिजिटल हस्ताक्षर प्रणालियों के लिए ऐसे खतरे अभी भी संभव हैं:

  • एक निजी कुंजी चुराने वाला एक हमलावर कुंजी के मालिक की ओर से किसी भी दस्तावेज़ पर हस्ताक्षर कर सकता है।
  • एक हमलावर मालिक को एक दस्तावेज़ पर हस्ताक्षर करने के लिए धोखा दे सकता है, उदाहरण के लिए, अंधा हस्ताक्षर प्रोटोकॉल का उपयोग करना।
  • एक हमलावर स्वामी की सार्वजनिक कुंजी (कुंजी प्रबंधन देखें) को अपने स्वयं के साथ बदल सकता है, इसका प्रतिरूपण कर सकता है।
ईडीएस एल्गोरिदम
  • इलेक्ट्रॉनिक डिजिटल हस्ताक्षर के लिए अमेरिकी मानक: डीएसए, ईसीडीएसए
  • इलेक्ट्रॉनिक डिजिटल हस्ताक्षर के लिए रूसी मानक: GOST R 34.10-94 (वर्तमान में मान्य नहीं), GOST R 34.10-2001
  • इलेक्ट्रॉनिक डिजिटल हस्ताक्षर के लिए यूक्रेनी मानक: DSTU 4145-2002
  • PKCS # 1 मानक वर्णन करता है, विशेष रूप से, RSA एल्गोरिथम पर आधारित एक इलेक्ट्रॉनिक डिजिटल हस्ताक्षर योजना
मुख्य प्रबंधन

ईडीएस सिस्टम सहित सभी सार्वजनिक कुंजी क्रिप्टोग्राफी में एक महत्वपूर्ण समस्या सार्वजनिक कुंजी का प्रबंधन है। किसी भी अन्य उपयोगकर्ता की वास्तविक सार्वजनिक कुंजी तक किसी भी उपयोगकर्ता की पहुंच सुनिश्चित करना, इन चाबियों को किसी घुसपैठिए द्वारा प्रतिस्थापित किए जाने से बचाने के लिए, और इसके समझौता होने की स्थिति में कुंजी के निरसन को व्यवस्थित करना भी आवश्यक है।

चाबियों को प्रतिस्थापन से बचाने की समस्या को प्रमाणपत्रों की मदद से हल किया जाता है। प्रमाण पत्र आपको एक विश्वसनीय व्यक्ति के हस्ताक्षर के साथ मालिक और उसकी सार्वजनिक कुंजी के बारे में उसमें निहित डेटा को सत्यापित करने की अनुमति देता है। केंद्रीकृत प्रमाणपत्र प्रणालियां (जैसे पीकेआई) विश्वसनीय संगठनों द्वारा समर्थित प्रमाणन प्राधिकरणों का उपयोग करती हैं। विकेंद्रीकृत प्रणालियों (उदाहरण के लिए पीजीपी) में, प्रत्येक उपयोगकर्ता द्वारा मित्रों और विश्वसनीय लोगों के क्रॉस-हस्ताक्षर प्रमाणपत्रों द्वारा विश्वास का एक नेटवर्क बनाया जाता है।

प्रमाणपत्र वितरण केंद्र प्रमुख प्रबंधन के लिए जिम्मेदार हैं। ऐसे केंद्र से संपर्क करके, उपयोगकर्ता किसी भी उपयोगकर्ता का प्रमाण पत्र प्राप्त कर सकता है, साथ ही यह भी जांच सकता है कि क्या यह या वह सार्वजनिक कुंजी अभी तक रद्द नहीं की गई है।

आरएसए एल्गोरिथम का विवरण

आरएसए- सार्वजनिक कुंजी क्रिप्टोग्राफ़िक एल्गोरिथम। RSA अपनी तरह का पहला, एन्क्रिप्शन और डिजिटल हस्ताक्षर दोनों के लिए उपयुक्त था। एल्गोरिथ्म का उपयोग बड़ी संख्या में क्रिप्टोग्राफ़िक अनुप्रयोगों में किया जाता है।

इतिहास

ब्रिटिश गणितज्ञ क्लिफोर्ड कॉक्स, जिन्होंने यूके गवर्नमेंट कम्युनिकेशंस सेंटर (जीसीएचक्यू) के लिए काम किया, ने 1973 में केंद्र के आंतरिक दस्तावेजों में इसी तरह की प्रणाली का वर्णन किया, लेकिन 1977 तक इस काम का खुलासा नहीं किया गया था और रिवेस्ट, शमीर और एडलमैन ने आरएसए को स्वतंत्र रूप से विकसित किया था। कॉक्स।

1983 में, MIT को 4,405,829 अमेरिकी पेटेंट प्रदान किया गया, जो 21 सितंबर, 2000 को समाप्त हो गया।

एल्गोरिथम विवरण

RSA एल्गोरिथम की सुरक्षा गुणनखंडन समस्या की कठिनाई पर आधारित है। एल्गोरिथ्म दो कुंजियों का उपयोग करता है - सार्वजनिक और निजी, साथ में सार्वजनिक और संबंधित निजी कुंजियाँ एक कीपेयर बनाती हैं। सार्वजनिक कुंजी को गुप्त रखने की आवश्यकता नहीं है; इसका उपयोग डेटा को एन्क्रिप्ट करने के लिए किया जाता है। यदि संदेश को सार्वजनिक कुंजी के साथ एन्क्रिप्ट किया गया था, तो इसे केवल संबंधित गुप्त कुंजी के साथ ही डिक्रिप्ट किया जा सकता है।

कुंजी उत्पन्न करना

एक कुंजी जोड़ी उत्पन्न करने के लिए, निम्नलिखित चरणों का पालन किया जाता है:

1. दो बड़े अभाज्य अभाज्य चुने जाते हैं और

2. उनके उत्पाद की गणना की जाती है

3. यूलर फ़ंक्शन की गणना की जाती है

4. एक पूर्णांक इस प्रकार चुना जाता है कि और के साथ मुकाबला करें

5.विस्तारित यूक्लिडियन एल्गोरिथम का प्रयोग करके एक संख्या इस प्रकार पाई जाती है कि

संख्या और सिफरटेक्स्ट के रूप में प्रयोग किया जाता है। डिक्रिप्ट करने के लिए, आपको गणना करने की आवश्यकता है

यह सुनिश्चित करना आसान है कि डिक्रिप्ट करते समय, हम मूल संदेश को पुनर्स्थापित करेंगे:

शर्त से

उसका अनुसरण करता है

कुछ पूर्णांक के लिए, इसलिए

यूलर के प्रमेय के अनुसार:

एल्गोरिथम की कुछ विशेषताएं

अभाज्य संख्याएँ उत्पन्न करना

दो बड़े अभाज्य संख्याओं को खोजने के लिए और, एक कुंजी उत्पन्न करते समय, संख्याओं के संभाव्य सरलता परीक्षण आमतौर पर उपयोग किए जाते हैं, जो आपको समग्र संख्याओं को जल्दी से पहचानने और त्यागने की अनुमति देते हैं।

· खुले संकेतक (उदाहरण के लिए) के एक छोटे से मूल्य के साथ, एक स्थिति संभव है जब यह पता चलता है। फिर, और घुसपैठिया आसानी से मूल संदेश को डिग्री की जड़ की गणना करके पुनर्प्राप्त कर सकता है।

· चूंकि आरएसए एक नियतात्मक एल्गोरिथम है, अर्थात। प्रक्रिया में यादृच्छिक मूल्यों का उपयोग नहीं करता है, तो हमलावर चयनित स्पष्ट पाठ के साथ हमले का उपयोग कर सकता है।

सूचीबद्ध समस्याओं को हल करने के लिए, संदेशों को प्रत्येक एन्क्रिप्शन से पहले कुछ यादृच्छिक मूल्य - नमक के साथ पूरक किया जाता है। पैडिंग इस तरह से की जाती है कि यह सुनिश्चित हो सके, और। इसके अलावा, चूंकि संदेश को यादृच्छिक डेटा के साथ पूरक किया जाता है, एक ही प्लेनटेक्स्ट को एन्क्रिप्ट करते समय, हमें हर बार एक अलग सिफरटेक्स्ट मान प्राप्त होगा, जो चयनित प्लेनटेक्स्ट के साथ एक हमले को असंभव बना देता है।

एक खुले संकेतक के मूल्य का चयन

आरएसए सममित एल्गोरिदम की तुलना में काफी धीमा है। एन्क्रिप्शन गति बढ़ाने के लिए, खुले घातांक को छोटा चुना जाता है, आमतौर पर 3, 17, या 65537। बाइनरी रूप में इन संख्याओं में केवल दो होते हैं, जो एक शक्ति को बढ़ाते समय आवश्यक गुणा की संख्या को कम करता है। उदाहरण के लिए, किसी संख्या को 17 की शक्ति तक बढ़ाने के लिए, आपको केवल 5 गुणन कार्य करने होंगे:

काफी बड़ा होना चाहिए। 1990 में, माइकल जे वीनर ने दिखाया कि यदि आप छोटा चुनते हैं, तो यह काफी बड़ा हो जाता है और कोई समस्या नहीं है।

कुंजी लंबाई

संख्या एनआकार में कम से कम 512 बिट होना चाहिए। वर्तमान में, RSA-आधारित एन्क्रिप्शन प्रणाली को 1024 बिट्स के आकार N से शुरू करके विश्वसनीय माना जाता है।

आरएसए आवेदन

RSA का उपयोग सॉफ्टवेयर सुरक्षा और डिजिटल हस्ताक्षर योजनाओं के लिए किया जाता है। इसका उपयोग में भी किया जाता है खुली प्रणालीएन्क्रिप्शन पीजीपी।

कम एन्क्रिप्शन गति (2 गीगाहर्ट्ज़ प्रोसेसर पर 512-बिट कुंजी के साथ लगभग 30 केबीपीएस) के कारण, संदेशों को आमतौर पर एक यादृच्छिक कुंजी के साथ अधिक कुशल सममित एल्गोरिदम का उपयोग करके एन्क्रिप्ट किया जाता है ( सत्र कुंजी), और केवल इस कुंजी को RSA का उपयोग करके एन्क्रिप्ट किया गया है।

द्वितीय. कार्यान्वयन

एक उदाहरण के रूप में, फाइलों के डिजिटल हस्ताक्षर और हस्ताक्षरों के सत्यापन के लिए एक कार्यक्रम लागू किया गया था। RSA एल्गोरिथम और X.509 प्रमाणपत्रों का उपयोग किया गया था। उपयोगकर्ता प्रमाणपत्र विंडोज़ प्रमाणपत्र स्टोर से प्राप्त किया जाता है।

डिजिटल हस्ताक्षर सहेजे जाते हैं एक्सएमएल फ़ाइलनाम के साथ<имя исходного файла>.sig.xml

कोड के स्निपेट्स

पब्लिक क्लास सिग्नेचर

निजी X509Certificate2 प्रमाणपत्र;

निजी दिनांक समय दिनांक;

निजी बाइट हस्ताक्षरित हैश;

सार्वजनिक X509Certificate2 प्रमाणपत्र

प्राप्त करें (वापसी प्रमाणपत्र;)

सेट (प्रमाणपत्र = मान;)

सार्वजनिक दिनांक समय दिनांक

प्राप्त करें (वापसी की तारीख;)

सेट (दिनांक = मान;)

सार्वजनिक शून्य चिह्न (स्ट्रिंग इनपुट, X509Certificate2 प्रमाणपत्र)

this.certificate = नया X509Certificate2 (प्रमाणपत्र);

दिनांक = दिनांक समय। अब;

SignHash = ((RSACryptoServiceProvider) cert.PrivateKey) .SignData (Utils.StringToBytes (stringToEncrypt), नया MD5CryptoServiceProvider ());

सार्वजनिक बूल IsValid (स्ट्रिंग इनपुट)

स्ट्रिंग stringToEncrypt = इनपुट + दिनांक। टिक;

वापसी ((RSACryptoServiceProvider) प्रमाणपत्र.PublicKey.Key) .VerifyData (Utils.StringToBytes (stringToEncrypt), नया MD5CryptoServiceProvider (), signHash);

सार्वजनिक बाइट SignedHash

प्राप्त करें (वापसी हस्ताक्षरित हैश;)

सेट (हस्ताक्षरित हैश = मान;)

शून्य प्रदर्शन हस्ताक्षर सूची ()

FileSignatures fileSignatures = ReadSignatures (GetSignaturesFileName (fileNameTextBox.Text));

सिग्नेचर लिस्टटेक्स्टबॉक्स। टेक्स्ट = "";

foreach (फ़ाइल में हस्ताक्षर हस्ताक्षर। हस्ताक्षर)

स्ट्रिंग पंक्ति = "";

पंक्ति + = हस्ताक्षर। प्रमाण पत्र। विषय;

पंक्ति + = "" + हस्ताक्षर। दिनांक। ToString ();

स्ट्रिंग हैश = GetFileHash (fileNameTextBox.Text);

बूल वैध = हस्ताक्षर। इस्वालिड (हैश);

पंक्ति = "वी" + पंक्ति;

पंक्ति = "एक्स" + पंक्ति;

सिग्नेचर लिस्टटेक्स्टबॉक्स। टेक्स्ट + = पंक्ति + "\ r \ n";

III. साहित्य

  1. एस. बर्नेट, एस. पायने: क्रिप्टोग्राफी. आरएसए सुरक्षा आधिकारिक गाइड - एम बिनोम, 2002
  2. वी. विंटर: वैश्विक नेटवर्क प्रौद्योगिकियों की सुरक्षा - "बीएचवी-पीटर्सबर्ग", 2003
  3. वेनबो माओ मॉडर्न क्रिप्टोग्राफी: थ्योरी एंड प्रैक्टिस = मॉडर्न क्रिप्टोग्राफी: थ्योरी एंड प्रैक्टिस। - एम।: "विलियम्स", 2005। - एस। 768. आईएसबीएन 0-13-066943-1
  4. निल्स फर्ग्यूसन, ब्रूस श्नीयर प्रैक्टिकल क्रिप्टोग्राफी: सुरक्षित क्रिप्टोग्राफिक सिस्टम को डिजाइन और कार्यान्वित करना। - एम।: "डायलेक्टिक्स", 2004। - एस। 432. आईएसबीएन 0-471-22357-3
  5. श्नियर, ब्रूस। एप्लाइड क्रिप्टोग्राफी। सी भाषा में प्रोटोकॉल, एल्गोरिदम, स्रोत ग्रंथ - एम।: पब्लिशिंग हाउस ट्रायम्फ, 2002 - 816s: बीमार। आईएसबीएन 5-89392-055-4

सभी उपयोगकर्ता व्यक्तिगत नहीं हैं कंप्यूटर तकनीकजानते हैं और समझते हैं कि आरएसए एन्क्रिप्शन क्या है और इस शब्द की ध्वनि पर आश्चर्यचकित हैं। लेकिन इस अवधारणा में कुछ भी जटिल नहीं है। आरएसए एन्क्रिप्शन सिर्फ एक क्रिप्टोसिस्टम है जो आपको कंप्यूटर तकनीक पर बनाए गए सभी इलेक्ट्रॉनिक डेटा को सुरक्षित तरीके से उपयोग करने की अनुमति देता है। यह डेटा डिक्रिप्शन नहीं है, जब एक निश्चित कोड को जाने बिना फाइलों को पढ़ा नहीं जा सकता है। RSA एन्क्रिप्शन मानता है कि कुंजियाँ सार्वजनिक हैं।

RSA एन्क्रिप्शन फैक्टरिंग के सिद्धांत पर काम करता है। इस कदर? और यह एक फैक्टरिंग है
दो बड़े संख्यात्मक डेटा का पुनरुत्पादन।

RSA एन्क्रिप्शन सिस्टम किसने बनाया?

RSA एन्क्रिप्शन एल्गोरिथ्म 1977 में वापस बनाया गया था, इसके निर्माता वैज्ञानिक रिवेस्ट, शमीर, एडलमैन हैं, उपनामों के प्रारंभिक अक्षरों का संक्षिप्त नाम RSA शब्द है। पहले का एल्गोरिथ्म इंग्लैंड के गणितज्ञ क्लिफोर्ड कॉक्स द्वारा तैयार किया गया था, जिन्होंने देश की खुफिया सेवाओं के लिए काम किया था। 1973 में, वह एक समान प्रणाली बनाने में कामयाब रहे, लेकिन इसका उपयोग विशेष रूप से वर्गीकृत व्यक्तियों द्वारा किया गया था, और यह विधि स्तर पर नहीं फैली थी। सामान्य उपयोगकर्तापर्सनल कंप्यूटर उपकरण।

आरएसए एन्क्रिप्शन कैसे काम करता है?

सिस्टम उपयोगकर्ता पहले एक सार्वजनिक कुंजी बनाता है और फिर प्रकाशित करता है, जो केवल एक सहायक मूल्य के साथ दो बड़ी संख्याओं पर आधारित होती है। सरलतम संख्याओं को गुप्त रखा जाता है। उदाहरण के लिए, एक ई-मेल पढ़ने के लिए, आपको दस्तावेज़ की सार्वजनिक कुंजी का उपयोग करने की आवश्यकता है, लेकिन यदि कुंजी लंबी है, तो जानकारी तक पहुंचने में कठिनाई होती है।

आज RSA एन्क्रिप्शन को डेटा एन्क्रिप्शन का एक बहुत विश्वसनीय तरीका नहीं माना जाता है। यह एक धीमा एल्गोरिथम है, इसलिए यह सामान्य कंप्यूटर उपयोगकर्ताओं के बीच इतना सामान्य नहीं है। तो, फिर, यह प्रणाली क्यों बनाई गई, यदि यह व्यावहारिक रूप से सामान्य कंप्यूटर वैज्ञानिकों द्वारा उपयोग नहीं की जाती है?

मुद्दा यह है कि इसने एक सममित एन्क्रिप्शन कुंजी के लिए साझा कुंजियों के एन्क्रिप्टेड ट्रांसमिशन में अपना आवेदन पाया, जिसे उच्च गति पर बड़े पैमाने पर एन्क्रिप्शन और डिक्रिप्शन के लिए डिज़ाइन किया गया है।

असममित कुंजियों का आधुनिक क्रिप्टोसिस्टम डिफी और हेलमैन के कार्यों के लिए धन्यवाद प्रकट हुआ। उन्होंने 1976 में अवधारणा विकसित की और इसे डिजिटल रिकॉर्डिंग के रूप में जनता के सामने पेश किया। वे एक निश्चित संख्या मोडुलो एक अभाज्य संख्या के जोखिम के सिद्धांत के आधार पर एक सामान्य कुंजी बनाने में कामयाब रहे। लेकिन उनका सिद्धांत हवा में लटका रहा, क्योंकि उस समय तक फैक्टरिंग के सिद्धांतों का अच्छी तरह से अध्ययन नहीं किया गया था।

रिवेस्ट, आदिम शमीर, एडलमैन ने पहले जो हासिल किया था, उस पर नहीं रुके, और एक-तरफ़ा फ़ंक्शन के तंत्र पर पूरी तरह से काम किया, जिसे डिकोड करना इतना आसान नहीं है। रिवेस्ट और शमीर ने सीधे कार्यों पर काम किया, जबकि एडलमैन ने बनाए जा रहे एल्गोरिदम में कमजोरियों की तलाश की। अंत में, वे आरएसए असममित कुंजी प्रणाली बनाने में कामयाब रहे।

डिजिटल हस्ताक्षर और सार्वजनिक कुंजी संचार

वर्तमान में, कई कंपनियां अपने काम में डिजिटल हस्ताक्षर के रूप में ऐसे इलेक्ट्रॉनिक तत्व का उपयोग करती हैं। तथाकथित डिजिटल हस्ताक्षर वाले इलेक्ट्रॉनिक दस्तावेज़ बनाए गए आधिकारिक दस्तावेज़ हैं जिन्हें कानूनी रूप से मान्यता प्राप्त है। एक इलेक्ट्रॉनिक डिजिटल हस्ताक्षर तब बनाया जाता है जब डेटा को क्रिप्टोग्राफ़िक रूप से परिवर्तित किया जाता है।

सामान्य हस्ताक्षर का यह विकल्प किसी दस्तावेज़ को गोपनीय बनाना, उसकी सत्यनिष्ठा सुनिश्चित करना और उसके निर्माता और स्वामी के बारे में हमेशा जानकारी रखना संभव बनाता है।

इलेक्ट्रॉनिक हस्ताक्षर विचाराधीन आरएसए एन्क्रिप्शन से निकटता से संबंधित है। जैसा कि ऊपर उल्लेख किया गया है, यह प्रणाली सार्वजनिक कुंजी की उपस्थिति मानती है। आज, व्यवहार में, अनधिकृत व्यक्तियों को सूचना तक पहुँचने से रोकने के लिए दो कुंजियों का उपयोग किया जाता है - सार्वजनिक - सभी को ज्ञात और निजी - एन्क्रिप्टेड।

इस प्रकार, सार्वजनिक कुंजी आपको इलेक्ट्रॉनिक मुहर के साथ एक दस्तावेज़ तक पहुंचने की अनुमति देती है, और निजी कुंजी आपको हस्ताक्षर को डिक्रिप्ट करने और इसे सत्यापित करने की अनुमति देती है। दूसरे शब्दों में, आरएसए एन्क्रिप्शन आपको दस्तावेजों को छिपाने की अनुमति देता है निष्ठुर आँखें, उन्हें वर्गीकृत करें, लेकिन सही समय पर उन तक पहुंच प्राप्त करने की क्षमता के साथ।

आइए देखें कि आविष्कृत एल्गोरिथम का सार क्या है?

RSA एन्क्रिप्शन चार चरणों में काम करता है:
प्रमुख पीढ़ी;
चाबियों का वितरण;
चाबियों का एन्क्रिप्शन;
चाबियों का डिक्रिप्शन।

आरएसए एन्क्रिप्शन का सिद्धांत सार्वजनिक और निजी कुंजी के निर्माण को जोड़ता है। आइए इस पर फिर से ध्यान दें। खुला - सभी के लिए जाना जाता है, संदेशों को एन्क्रिप्ट करने के लिए उपयोग किया जा सकता है। इस इलेक्ट्रॉनिक डेटा को निजी कुंजी का उपयोग करके डिक्रिप्ट किया जा सकता है। सार्वजनिक कुंजी बनाते समय, फैक्टरिंग को और अधिक कठिन बनाने के लिए यादृच्छिक और समान संख्याओं का चयन किया जाता है, लेकिन लंबाई में भिन्न होती है।

सरलता परीक्षण करके समान संख्याएँ पाई जाती हैं। इस प्रकार, एन्क्रिप्शन धीरे-धीरे अधिक परिष्कृत हो गया है। सार्वजनिक कुंजी में क्या शामिल है? और इसमें एक नियमित मॉड्यूल और एक तथाकथित सार्वजनिक प्रदर्शक होता है। लेकिन बंद में एक मॉड्यूल और एक निजी संकेतक शामिल है, जो निर्माता को छोड़कर किसी को भी प्रदान नहीं किया जाता है।

आरएसए एन्क्रिप्शन तकनीक की कमजोरियां

एन्क्रिप्शन के सुविचारित सिद्धांत के बावजूद, इसे आसानी से तोड़ा जा सकता है। यह तब किया जा सकता है जब कुंजियाँ बनाने के लिए छोटी संख्याओं का उपयोग किया गया हो; आप साधारण पूर्णांकों के एक साधारण चयन द्वारा कुंजी को प्रकट कर सकते हैं।

RSA एन्क्रिप्शन अपने आप में एक शून्य-मौका एल्गोरिथम है, जिससे धोखेबाजों के लिए यह आसान हो जाता है संगणक संजालडॉस-अटैक के प्लेनटेक्स्ट को उठाकर नियतात्मक तंत्र को तोड़ें, जो यह जांचता है कि लॉन्च किए गए टेक्स्ट लगातार उत्पन्न कीज़ की लंबाई के बराबर हैं या नहीं।

और यह सबसे पहले बताता है कि आरएसए एन्क्रिप्शन वही क्रिप्टोसिस्टम नहीं है जो अवांछित व्यक्तियों के अतिक्रमण से इलेक्ट्रॉनिक डेटा को संरक्षित करने के लिए सभी तरह से सुरक्षित है। जब तक, जब अधिक उन्नत सर्वरों में जोड़ा जाता है, तो यह ऐसे गुण प्राप्त करता है।

आरएसए एन्क्रिप्शन का उपयोग करने की सुरक्षा सुनिश्चित करने के लिए अतिरिक्त घटक

आरएसए प्रारूप के एन्क्रिप्शन को तोड़ने की संभावना को रोकने के लिए, प्रोग्रामर इसमें एक संरचित, तथाकथित यादृच्छिक भरने वाले फॉर्म को एम्बेड करते हैं, यह इलेक्ट्रॉनिक जानकारी के एन्क्रिप्शन से पहले ही किया जाता है। यह क्षण गारंटी देता है कि इलेक्ट्रॉनिक दस्तावेजों की सामग्री सभी को प्रस्तुत नहीं की जाएगी और जो आलसी नहीं है, दस्तावेजों के लिए यादृच्छिक कुंजी चयन तंत्र लागू करते समय गोपनीय जानकारी को नहीं देखा जा सकेगा।

RSA एन्क्रिप्शन गणितीय संख्याओं को कारकों में विघटित करता है, लेकिन तंत्र को कभी भी पूर्ण नहीं किया गया है। इसलिए, फिलहाल, साइबर अपराधियों के पास डेटा एन्क्रिप्शन को तोड़ने के तरीकों के चयन के लिए अभी भी अवसर और कई खामियां हैं। और यह ठीक प्रमुख कारक पुनर्प्राप्ति तंत्र है जिसे वे करने का प्रबंधन करते हैं।

जालसाज सार्वजनिक कुंजी में निहित गुप्त संकेतक की गणना करते हैं और एक मानक विधि का उपयोग करके दस्तावेज़ीकरण को डिक्रिप्ट करते हैं। तो उन लोगों के लिए कार्रवाई का क्षेत्र जो वास्तव में किसी कंपनी को नुकसान पहुंचाना चाहते हैं, बहुत बड़ा है। मान लीजिए कि RSA एन्क्रिप्शन सुरक्षा की समस्या अभी भी प्रासंगिक और खुली है, हालाँकि बहुत कम लोग इसके बारे में सार्वजनिक रूप से बात करते हैं।

स्वचालित इलेक्ट्रॉनिक डेटा एन्क्रिप्शन प्रक्रिया

कम सुरक्षा स्कोर के बावजूद, विचाराधीन RSA एन्क्रिप्शन कई उद्योगों में लागू होता है। इलेक्ट्रॉनिक दस्तावेज़ीकरण का एक बड़ा प्रचलन होने पर इसका विशेष रूप से स्वागत किया जाता है। मान लें कि आरएसए एन्क्रिप्शन का उपयोग मध्यम स्तर की जिम्मेदारी पर दस्तावेजों की सुरक्षा के लिए किया जाता है।

Yafu सॉफ्टवेयर इलेक्ट्रॉनिक डेटा के स्वचालित एन्क्रिप्शन को सक्षम करता है। यह कार्यक्रम आपको विश्वसनीयता फैक्टरिंग के नियमों का पालन करते हुए, असममित कुंजी बनाने के लिए डेटा को जल्दी से खोजने की अनुमति देता है। यह SIQS, ECM, SNFS जैसे प्रोसेसर के साथ संगत है। यह के माध्यम से शुरू होता है कमांड लाइन... इस कमांड को एक स्ट्रिंग में दर्ज करने से कुंजी बनाने के लिए डेटा के खोज समय को काफी कम किया जा सकता है।

पर्सनल कंप्यूटर उपकरण का एक सामान्य उपयोगकर्ता इस सॉफ़्टवेयर का सामना नहीं कर सकता है। इसे स्थापित और कॉन्फ़िगर करने के लिए, कुछ ज्ञान की आवश्यकता होती है और यह अक्सर आईटी प्रोग्रामर और विशेषज्ञों द्वारा किया जाता है।

आरएसए एन्क्रिप्शन गंभीर रूप से कमजोर है, इस तथ्य के बावजूद कि बड़ी संख्या में सार्वजनिक और निजी कुंजी बनाने के लिए उपयोग किया जाता है, डिस्क पर कई हजार बिट्स की मात्रा।

बेडजामिन मूडी ने 2009 में साबित किया कि सार्वजनिक और निजी चाबियों को क्रैक करने की प्रक्रिया संभव है। इसके लिए दो या अधिक साल लग सकते हैं, लेकिन तथ्य यह है कि दुनिया में कई कंप्यूटर सिस्टम के हैक होने का खतरा हो सकता है।

उदाहरण के लिए, इस विशेषज्ञ को मुख्य लिपियों को छानने के लिए किसी विशेष चीज़ की आवश्यकता नहीं थी - नियमित कंप्यूटरउपयोगकर्ता और सॉफ्टवेयरजीजीएनएफएस। बिट एन्क्रिप्शन कुंजियों के कई हज़ारवें हिस्से का अभ्यास भी जानकारी को क्षेत्र को गोपनीय और अन्य उपयोगकर्ताओं के लिए दुर्गम छोड़ने से नहीं बचाता है।

RSA एन्क्रिप्शन को क्रैक करने में निश्चित रूप से समय लगता है। कई हैकरों को सकारात्मक परिणाम प्राप्त करने में वर्षों लग जाते हैं। ये अक्सर उच्च-भुगतान की संभावनाएं होती हैं जो सही कुंजी खोजने में रुचि को बढ़ावा देती हैं। ज्यादातर मामलों में, सरल दृष्टिकोण की तलाश में लंबी कुंजी क्रैकिंग को छोड़ दिया जाता है। लेकिन इसका मतलब यह नहीं है कि कोई भी अधिक सरलीकृत कुंजी क्रैकिंग तंत्र बनाने की कोशिश नहीं कर रहा है।

धोखेबाजों द्वारा घुसपैठ के हमलों के खिलाफ मुख्य बचाव दो हजार से अधिक बिट्स की बड़ी और लंबी चाबियों का निर्माण है। एक सौ से पांच सौ बिट लंबी चाबियों को फोड़ने के मामले पहले से ही ज्ञात हैं। इसलिए आपको अपना कान तेज रखने की जरूरत है। यदि छोटी चाबियों को क्रैक करने के लिए कोई तंत्र है, तो संभवतः इलेक्ट्रॉनिक डेटा के एन्क्रिप्शन के सबसे लंबे संयोजनों को क्रैक करने के लिए शुभचिंतकों के पक्ष में काम पूरे जोरों पर है।

निष्कर्ष

उपरोक्त के आधार पर, आरएसए एन्क्रिप्शन इलेक्ट्रॉनिक डेटा की गोपनीयता बनाए रखने का एक सुरक्षित तरीका है, बशर्ते कि लंबी और सूचनात्मक रूप से बड़ी कुंजी बनाई जाए।

उन्हें मैन्युअल रूप से चुनना मुश्किल है, इसलिए, एक स्वचालित सॉफ्टवेयरयाफू। यह आईटी पेशेवरों द्वारा स्थापित और कॉन्फ़िगर किया गया है। स्वतंत्र कामटूट सकता है ऑपरेटिंग सिस्टमसंगणक।
यह सॉफ्टवेयर आज की पीढ़ी के मल्टी-कोर कंप्यूटर प्रोसेसर के साथ मिलकर काम करने के लिए डिज़ाइन किया गया है।

धोखाधड़ी के हमलों का मुख्य लक्ष्य बड़ी औद्योगिक और वित्तीय कंपनियां हैं, इसलिए उनका इलेक्ट्रॉनिक दस्तावेज़ संचलन RSA एन्क्रिप्शन के बिना काम नहीं करता है। दस्तावेजों के इलेक्ट्रॉनिक हस्ताक्षर भी एन्क्रिप्शन के अधीन हैं, और अन्य सूचना डेटा के लिए समान सुरक्षा मानक लागू होते हैं। सिद्धांत - कुंजी जितनी बड़ी होगी, दस्तावेज़ को क्रैक करना उतना ही कठिन होगा - सभी डेटा पर बिल्कुल लागू होना चाहिए जो सार्वजनिक उपयोग के लिए अभिप्रेत नहीं है।

"खराब" आरएसए सिफर पैरामीटर चुनने के उदाहरण कट के तहत वर्णित हैं।

"आरएसए मॉड्यूल (संख्या) का चयन करते समय सावधानी बरतने की आवश्यकता है एन) प्रत्येक नेटवर्क संवाददाताओं के लिए। इस संबंध में निम्नलिखित कहा जा सकता है। पाठक स्वतंत्र रूप से सत्यापित कर सकता है कि तीन मात्राओं में से एक को जानना पी, क्यूया (एन), आप आसानी से RSA गुप्त कुंजी पा सकते हैं ... ”।

आइए इस पाठ को पूरक करें। आरएसए सिफर मॉड्यूल के असफल विकल्प के साथ, जैसा कि नीचे दिए गए ट्यूटोरियल के उदाहरण में किया गया है, आप एक गुप्त कुंजी की उपस्थिति के बिना पाठ को डिक्रिप्ट कर सकते हैं, अर्थात। तीन नामित मात्राओं में से कोई भी नहीं जानता।

ऐसा करने के लिए, सिफर मॉड्यूल द्वारा निर्दिष्ट सिफर टेक्स्ट होना पर्याप्त है एन, सार्वजनिक कुंजी सिफर और बिना चाबी के हमले के सिर्फ तीन चरणों का प्रदर्शन करें। चौथे हमलावर चरण के बाद, यह स्थापित किया जाता है कि मूल पाठ पिछले चरण में प्राप्त किया गया था, इसे पढ़ा जा सकता है। आइए दिखाते हैं कि इसे करना कितना आसान है।

सबसे पहले, हम नामित मैनुअल से पीपी 313-315 से ही उदाहरण देंगे।

उदाहरण

कूटलेखनलघु मूल पाठ संदेश: आरएसए.
प्राप्तकर्ता विशेषताओं के साथ एक सिफर सेट करता है एन = पीक्यू = 527, कहां पी = 17, क्यू = 31तथा (एन) = (पीआर -1) (क्यू -1) = 480... एक सार्वजनिक कुंजी के रूप में एक संख्या का चयन किया जाता है जो अपेक्षाकृत प्रमुख है (एन), ई = 7... इस संख्या के लिए, विस्तारित यूक्लिडियन एल्गोरिथम का उपयोग करके, पूर्णांक पाए जाते हैं तुमतथा वीरिश्ते को संतुष्ट करना ई यू + φ (एन) ∙ वी = 1:

480=7∙68+4,
7=4∙1+3,
4=3∙1+1,
1=4–3∙1=4–(7–4∙1)∙1=4∙2–7∙1=(480–7∙68)∙2–7∙1=480∙2–7∙137,
वी = 2, यू = -137
.

जहां तक ​​कि -137≡343 (mod480), फिर घ = ३४३.

इंतिहान: 7 343 = 2401≡1 (mod480).

पाठ संदेश को अंतराल में निहित संख्याओं के अनुक्रम के रूप में प्रस्तुत किया जाता है ... इसके लिए पत्र आर, एसतथा पांच-बिट बाइनरी नंबरों के साथ एन्कोडेड हैं। अंग्रेजी वर्णमाला में इन अक्षरों की क्रमिक संख्या उनके द्विआधारी प्रतिनिधित्व में उपयोग की जाती है:

आर = 18 10 = (10010) 2, एस = १९ १० = (१००११) २,
ए = 1 10 = (00001) 2.

फिर आरएसए = (१००१०१००११००००१) २... पाठ को सीमित लंबाई के ब्लॉक में तोड़कर दो-ब्लॉक दृश्य देता है: आरएसए = (१००१०१००१), (१००००१) = (एम १ = २९७, एम २ = ३३).

स्रोत पाठ के ब्लॉक क्रमिक रूप से एन्क्रिप्ट किए गए हैं एम 1 = 297, एम 2 = 33:
वाई 1 = ई के (एम 1) = एम 1 ई ≡297 7 (mod527) = 474.

यहां हमने इस तथ्य का उपयोग किया है कि:

२९७ ७ = ((२९७ २) ३) २९७≡ (मॉड५२७) = (२०० ३ (मॉड५२७) २९७ (मोड५२७) = ४७४,
वाई 2 = ई के (एम 2) = एम 2 ई ≡33 7 (mod527) = 407.

सिफर पाठ, मूल पाठ की तरह, दो ब्लॉकों के रूप में प्राप्त होता है: वाई 1 = 474; वाई 2 = 407.

डिक्रिप्शनक्रियाओं का एक क्रम प्रतीत होता है डी के (वाई आई) = (वाई आई) डी = (वाई आई) 343 (मॉड 527), मैं = 1.2.

घातांक गणना डीसंख्या की शक्तियों के योग के रूप में घातांक का प्रारंभिक रूप से प्रतिनिधित्व करते हुए इसे अंजाम देना अधिक सुविधाजनक है 2 , अर्थात्: 343=256+64+16+4+2+1 .

इस घातांक प्रतिनिधित्व का उपयोग करना घ = ३४३, हम पाते हैं:

474 2 174 (mod527),
४७४ ४ २३७ (मॉड५२७),
474 8 307 (mod527),
४७४ १६ ४४३ (मोड५२७),
474 32 205 (mod527),
474 64 392 (mod527),
474 128 307 (mod527),
474 256 443 (mod527),

और अंत में ४७४ ३४३ (mod५२७) = (४४३ ∙ ३९२ ४४३ २३७ ∙ १७४ ४७४) (mod५२७) = २९७.

मान की गणना इसी तरह की जाती है ४०७ ३४३ (mod५२७) = ३३.

डिक्रिप्टेड संदेश के शाब्दिक प्रतिनिधित्व पर स्विच करना देता है: आरएसए.

उदाहरण को देखने के बाद, ट्यूटोरियल आरएसए सिस्टम की मजबूती पर चर्चा करता है। आरएसए सिफर मॉड्यूल (नंबर .) के चयन में सावधानी बरतने की जरूरत एन) प्रत्येक नेटवर्क संवाददाताओं के लिए। यह बताया गया है कि एन्क्रिप्शन सिस्टम की चयनित विशेषताओं के लिए आवश्यकताओं की अनदेखी करना अस्वीकार्य है। ऐसी आवश्यकताओं के बीच, दुर्भाग्य से, जिसका उल्लंघन दिए गए उदाहरण द्वारा दर्शाया गया है, इंगित नहीं किया गया है।

आरएसए सिफर हमला

RSA सिफर पर हमले के एक उदाहरण पर विचार करें। आइए ए.पी. द्वारा ट्यूटोरियल "फंडामेंटल्स ऑफ क्रिप्टोग्राफी" में पृष्ठ 313-315 पर दिए गए उदाहरण के डेटा का उपयोग करें। अल्फेरोव, ए यू। ज़ुबोव, ए.एस. कुज़मिन, ए.वी. चेरियोमुश्किन, मास्को। "हेलिओस एआरवी", 2001।

इस उदाहरण में चयनित सिस्टम मापदंडों की विफलता (अस्वीकार्यता) आसानी से उन गणनाओं द्वारा दिखाई जाती है जो स्रोत पाठ पर बिना चाबी के पढ़ने के हमले को लागू करते हैं। इस तरह के हमले का सार इस प्रकार है। सार्वजनिक आरएसए सिफर कुंजी ( ई = 7, एन = 527) और सिफर टेक्स्ट। उदाहरण में, सिफरटेक्स्ट को दो ब्लॉकों द्वारा दर्शाया गया है
y = (y १ = ४७४, y २ = ४०७).

प्रत्येक एन्क्रिप्टेड ब्लॉक पर व्यक्तिगत रूप से हमला किया जाता है, पहले हम हमला करते हैं वाई 1 = 474, इसे डिक्रिप्ट करने के बाद, हम दूसरे ब्लॉक पर हमला करते हैं वाई 2 = 407.

इसके अलावा, यह हमले एल्गोरिथ्म के लगातार दो चरणों के परिणामों को बचाने और सार्वजनिक कुंजी का उपयोग करके संख्यात्मक मानों के अनुक्रम के साथ बार-बार एन्क्रिप्शन द्वारा गठित किया गया है। मैं, वाई 1 = वाईउपलब्ध सिफर पाठ।

सिफरटेक्स्ट अटैक एल्गोरिथम ऐसे चरण संख्या को परिभाषित करता है जे, जिसके लिए y i e j (mod n) = (y i e j – 1 (mod n)) e (mod n) = y i, मैं> 1... अंतिम अनुपात से हम देखते हैं कि सत्ता में वृद्धि करते समय अर्थ (वाई आई ई जे - 1 (मॉड एन))प्रारंभिक सिफरटेक्स्ट प्राप्त होता है वाई मैं = वाई 1.

लेकिन इसका मतलब यह भी है कि इस चरण में प्लेनटेक्स्ट को एन्क्रिप्ट किया गया था। ऑन-स्क्रीन कैलकुलेटर का उपयोग करके प्रत्यक्ष गणना (उनमें से बहुत कम हैं), हम वह मान पाते हैं जे, जिस पर एन्क्रिप्शन चक्र मूल्य के साथ समाप्त होता है वाई 1जहां से यह सिलसिला शुरू हुआ था।

पहले ब्लॉक पर हमला वाई 1 = 474सिफर टेक्स्ट
चरण 1:& nbsp 474 7 (mod527) = 382;
चरण 2:& nbsp 382 7 (mod527) = 423;
चरण 3:& nbsp 423 7 (mod527) = 297;
चरण 4: & nbsp इस चरण में, पहले से पाया गया स्रोत पाठ एन्क्रिप्ट किया गया है, लेकिन इसे निष्पादित किया जाना चाहिए, क्योंकि हमलावर स्रोत पाठ को नहीं जानता है। यदि सिफरटेक्स्ट का प्रारंभिक मान ( 474 ) और चौथे एन्क्रिप्शन चरण का परिणाम। ठीक यही संयोग होता है।

२९७ ७ (मोड५२७) = ४७४सिफरटेक्स्ट का प्रारंभिक (पहला) ब्लॉक प्राप्त किया। पहला ब्लॉक हमला सफलतापूर्वक पूरा हुआ वाई 1 = 474... चरण 3 का पिछला परिणाम प्लेनटेक्स्ट के बराबर है एम 1 = 297.

एन = 527 आर = 297सापेक्ष एन = 527... इस तरह लिखा है वाई मैं = वाई 1 = 297... शक्ति अवशेष बनाना
(((२९७ ७ (मोड५२७)) ७ (मोड५२७) ७ (मोड५२७) ७ = २९७.

दूसरे ब्लॉक पर हमला वाई 2 = 407सिफर टेक्स्ट
चरण 1:& nbsp 407 7 (mod527) = 16;
चरण 2:& nbsp 16 7 (mod527) = 101;
चरण 3:& nbsp १०१ ७ (mod५२७) = ३३;
चरण 4:& nbsp 33 7 (mod527) = 407.

फिर से, तीसरे चरण में, स्रोत पाठ का एक खंड प्राप्त हुआ ( एम 2 = 33), लेकिन हमलावर को यह पता नहीं होता है, और वह अगला (चौथा चरण) करता है, जिसका परिणाम होता है ( 407 ) प्रारंभिक सिफरटेक्स्ट से मेल खाता है वाई 2 = 407.

अनिवार्य रूप से अवशेषों की अंगूठी में modulo एन = 527कटौती के लिए एक लघु प्रसंस्करण चक्र लागू किया गया है आर = 33सापेक्ष एन = 527... इस तरह लिखा है वाई मैं = वाई 2 = 33.
शक्ति अवशेष बनाना ((३३ ७ (मोड५२७)) ७ (मोड५२७)) ७ (मोड५२७) = ३३.

हमले का परिणाम (स्रोत पाठ एम 1 = 297, एम 2 = 33) दिए गए सिफरटेक्स्ट को तीन बार एन्क्रिप्ट करके प्राप्त किया जाता है। सिफरटेक्स्ट हमलावर के लिए बड़ी सफलता की कल्पना करना कठिन है।

मॉड्यूल और अन्य सिफर पैरामीटर चुनने के मुद्दे पर चर्चा जारी रखते हुए, हम जोड़ सकते हैं कि सिफर मॉड्यूल ( एन = 527) कुछ स्रोत कोड एन्क्रिप्शन की बिल्कुल भी अनुमति नहीं देते हैं। इस मामले में, सार्वजनिक कुंजी ई के मूल्य का चुनाव एक बड़ी भूमिका नहीं निभाता है। स्रोत ग्रंथों के मान हैं जिन्हें मॉड्यूल के साथ चयनित सिफर द्वारा बिल्कुल भी एन्क्रिप्ट नहीं किया जा सकता है एन = 527.

दिए गए ई में से कोई भी संख्याओं द्वारा दर्शाए गए स्रोत ग्रंथों को एन्क्रिप्ट नहीं कर सकता है
187 , 341 , 154 तथा 373 .

उदाहरण (कुछ स्रोत ग्रंथों के मूल्यों को एन्क्रिप्ट करने की असंभवता)

स्रोत ग्रंथों को चार ब्लॉकों द्वारा प्रस्तुत करने दें y = (y १ = १५४, y २ = १८७, y ३ = ३४१, y ४ = ३७३)... प्रदर्शक यूलर फ़ंक्शन के साथ सिफर की सार्वजनिक कुंजी कोई भी परस्पर अभाज्य संख्या हो सकती है (एन) = φ (527) = 480... हालाँकि, विचाराधीन मामले के लिए, सार्वजनिक कुंजी मनमाने ढंग से सेट किया जा सकता है। दरअसल, चलो ई = 2, 4, 7, 9, 17, 111फिर:

१५४ २ (मॉड५२७) = १;
१५४ ४ (मोड५२७) = १;
१५४ ७ (मोड५२७) = १५४;
१५४ ९ (मोड५२७) = १५४;
१५४ १७ (मोड५२७) = १५४;
१५४ 111 (mod५२७) = १५४;
१८७ २ (mod५२७) = १८७;
१८७ ४ (मोड५२७) = १८७;
१८७ ७ (मोड५२७) = १८७;
१८७ ९ (मोड५२७) = १८७;
१८७ १७ (मोड५२७) = १८७;
१८७ 111 (mod५२७) = १८७;
३४१ २ (मॉड५२७) = ३४१;
३४१ ४ (मोड५२७) = १;
३४१ ७ (मोड५२७) = ३४१;
३४१ ९ (मोड५२७) = ३४१;
३४१ १७ (मोड५२७) = ३४१;
३४१ 111 (mod५२७) = ३४१;
३७३ २ (मॉड५२७) = १;
३७३ ४ (मॉड५२७) = ३७३;
३७३ ७ (मोड५२७) = ३७३;
३७३ ९ (मोड५२७) = ३७३;
३७३ १७ (मोड५२७) = ३७३;
३७३ 111 (mod५२७) = ३७३.

विचार किए गए उदाहरण से एक सरल निष्कर्ष निकलता है। वास्तव में, एन्क्रिप्शन प्रक्रिया के लिए मापदंडों का चुनाव बहुत सावधानी से किया जाना चाहिए और ऐसे मापदंडों का गहन प्रारंभिक विश्लेषण किया जाना चाहिए। यह कैसे करना है यह एक अलग प्रश्न है, और इसे इस कार्य के ढांचे के भीतर नहीं माना जाता है।

दूसरे भाग में, हम लोकप्रिय आरएसए एल्गोरिथम को देखेंगे, जहां एन्क्रिप्शन के लिए एक सार्वजनिक कुंजी का उपयोग किया जाता है। लेकिन पहले, मैं आपको फिर से चेतावनी देना चाहता हूं। इस आलेख में प्रदान किया गया कोड केवल सूचना के उद्देश्यों के लिए है। क्रिप्टोग्राफी एक बहुत विशाल और जटिल क्षेत्र है, और इसलिए कि आपको कोई समस्या न हो, मैं अपने शिल्प का उपयोग करके जानकारी को एन्क्रिप्ट करने की अनुशंसा नहीं करता।

दूसरे भाग में, हम लोकप्रिय आरएसए एल्गोरिथम को देखेंगे, जहां एन्क्रिप्शन के लिए एक सार्वजनिक कुंजी का उपयोग किया जाता है। लेकिन पहले, मैं आपको फिर से चेतावनी देना चाहता हूं। इस आलेख में प्रदान किया गया कोड केवल सूचना के उद्देश्यों के लिए है। क्रिप्टोग्राफी एक बहुत विशाल और जटिल क्षेत्र है, और इसलिए कि आपको कोई समस्या न हो, मैं अपने शिल्प का उपयोग करके जानकारी को एन्क्रिप्ट करने की अनुशंसा नहीं करता।

आरएसए एल्गोरिथम

सार्वजनिक कुंजी एन्क्रिप्शन

सार्वजनिक कुंजी एन्क्रिप्शन सर्वव्यापी है। यदि आपने कम से कम एक बार ऑनलाइन किसी चीज़ के लिए भुगतान किया है, तो आप पहले से ही इस पद्धति का उपयोग कर चुके हैं (मुझे आशा है!) सवाल तुरंत उठता है कि यह सुरक्षा कैसे काम करती है। अगर मैं कुछ खरीदने के लिए अपना क्रेडिट कार्ड नंबर दर्ज करता हूं, तो पताकर्ता के अलावा, कोई भी इस जानकारी की जासूसी क्यों नहीं कर सकता है? मैं आपको एक रूपक देता हूं। तिजोरी को खोलने के लिए आपको एक चाबी (या एक हथौड़ा, लेकिन सौभाग्य से तिजोरी और ताले इस तरह के व्यक्ति से सुरक्षित हैं) की आवश्यकता होती है। सार्वजनिक कुंजी एन्क्रिप्शन के साथ, बहुत कुछ ऐसा ही होता है। आप सभी को देखने के लिए ताला दिखाते हैं, लेकिन केवल कुछ चुनिंदा लोगों के पास ही इस ताले की चाबी होती है, और अन्य तरीकों से दरवाजा खोलना लगभग असंभव है।

RSA उन एल्गोरिदम में से एक है जो उपरोक्त योजना को लागू करता है। इसके अलावा, हम अपनी पहचान को प्रमाणित करने के लिए इस एल्गोरिथम का उपयोग कर सकते हैं। यदि आप निजी कुंजी का उपयोग करके किसी को एन्क्रिप्टेड संदेश भेजते हैं, तो प्राप्तकर्ता सार्वजनिक कुंजी का उपयोग करके आपके संदेश को डिक्रिप्ट कर सकता है। यह तकनीक आपको संदेशों पर हस्ताक्षर करने और प्रेषक को प्रमाणित करने की अनुमति देती है।

आरएसए एल्गोरिथम पर आधारित डेमो प्रोग्राम

आरएसएदो प्रकार की कुंजियों का उपयोग करता है - e और d, जहाँ e सार्वजनिक है और d गुप्त है। मान लीजिए P मूल पाठ है और C सिफर पाठ है। ऐलिस मूल पाठ P से सिफरटेक्स्ट C बनाने के लिए C = P e mod n का उपयोग करता है; ऐलिस द्वारा भेजे गए मूल पाठ (फ़ाइल) को निकालने के लिए बॉब P = C d mod n का उपयोग करता है। कुंजी पीढ़ी प्रक्रिया का उपयोग करके बहुत बड़ी संख्या में n मॉड्यूल बनाए जाते हैं, जिनकी चर्चा हम बाद में करेंगे।

एन्क्रिप्शन और डिक्रिप्शन के लिए, एक्सपोनेंटिएशन मोडुलो का उपयोग किया जाता है। जैसा कि हमने व्याख्यान १२-१३ में चर्चा की थी, तेज एल्गोरिथ्म का उपयोग करते समय, बहुपद समय में घातांक मोडुलो संभव है। हालाँकि, मॉड्यूलर लॉगरिदम को खोजना उतना ही मुश्किल है जितना कि मापांक में किसी संख्या का विस्तार करना। इसके लिए कोई बहुपद समय एल्गोरिथ्म नहीं है। इसका मतलब है कि ऐलिस बहुपद समय पर सार्वजनिक कुंजी (ई) के साथ संदेश को एन्क्रिप्ट कर सकती है। बॉब इसे बहुपद समय में भी डिक्रिप्ट कर सकता है (क्योंकि वह डी जानता है)। लेकिन हव्वा इस संदेश को नहीं समझ सकती क्योंकि उसे मॉड्यूलर अंकगणित का उपयोग करके सी के ई-वें रूट की गणना करनी होगी। चित्र 14.5 RSA के पीछे के विचार को दर्शाता है।


चावल। १४.५.

दूसरे शब्दों में, ऐलिस उपयोग करता है एकतरफा समारोह(घातांक मोडुलो) केवल बॉब के लिए जाना जाने वाला एक बचाव का रास्ता है। हव्वा को खामियों का पता नहीं है, इसलिए वह संदेश को समझ नहीं सकती है। यदि किसी दिन n के e-वें मूल की गणना के मापांक के लिए एक बहुपद एल्गोरिथ्म पाया जाता है, तो घातांक मॉडुलो n अब एकतरफा फलन नहीं होगा।

प्रक्रिया

चित्र 14.6 आरएसए में प्रयुक्त प्रक्रिया के सामान्य विचार को दर्शाता है।

RSA एन्क्रिप्शन/डिक्रिप्शन के लिए घातांक का उपयोग करता है। बंद पाठ पर हमला करने के लिए, हव्वा को गणना करनी चाहिए


चावल। १४.६
दो बीजीय संरचनाएं

RSA दो बीजीय संरचनाओं का उपयोग करता है: वलय और समूह।

एन्क्रिप्शन / डिक्रिप्शन रिंग्स... एन्क्रिप्शन और डिक्रिप्शन एक कम्यूटेटिव रिंग का उपयोग करके किया जाता है दो अंकगणितीय संक्रियाओं के साथ: जोड़ और गुणा। RSA में, यह रिंग सार्वजनिक रूप से उपलब्ध है क्योंकि मॉड्यूल n सार्वजनिक रूप से उपलब्ध है। इस एन्क्रिप्शन रिंग का उपयोग करके कोई भी बॉब को संदेश भेज सकता है।

प्रमुख पीढ़ी समूह... RSA गुणक समूह का उपयोग करता है चाबियाँ उत्पन्न करने के लिए। समूह केवल गुणन और विभाजन (गुणक व्युत्क्रम) का समर्थन करता है, जो सार्वजनिक और निजी कुंजी बनाने के लिए आवश्यक हैं। इस समूह को छिपाया जाना चाहिए क्योंकि इसका मॉड्यूल गुप्त है। हम देखेंगे कि अगर हव्वा को यह मॉड्यूल मिल जाता है, तो वह आसानी से क्रिप्टोग्राफिक सिस्टम पर हमला कर सकती है।

RSA दो बीजीय संरचनाओं का उपयोग करता है: खुला वलय R =< Z एन , +, x> और गुप्त समूह G =< Z (एन) * , एक्स>.

कुंजी उत्पन्न करना

बॉब अपनी सार्वजनिक और निजी कुंजी बनाने के लिए एल्गोरिथम 14.2 में दिखाए गए चरणों का उपयोग करता है। कुंजी उत्पन्न करने के बाद, बॉब टुपल (ई, एन) को अपनी सार्वजनिक पहुंच कुंजी के रूप में घोषित करता है: बॉब डी को अपनी निजी कुंजी के रूप में संग्रहीत करता है। बॉब p, q और; वे मॉड्यूल को बदले बिना इसकी गुप्त कुंजी नहीं बदल सकते। सुरक्षा के लिए, प्रत्येक प्राइम पी या क्यू के लिए अनुशंसित आकार 512 बिट्स (लगभग 154 दशमलव अंक) है। यह इकाई के आकार को परिभाषित करता है, n १०२४ बिट्स (३०९ अंक)।

१४.२ आरएसए कुंजी पीढ़ी

आरएसए में, टपल (ई, एन) सार्वजनिक पहुंच कुंजी है; पूर्णांक d - गुप्त कुंजी.

कूटलेखन

कोई भी व्यक्ति अपनी सार्वजनिक पहुंच कुंजी का उपयोग करके बॉब को संदेश भेज सकता है। आरएसए में एन्क्रिप्शन एक बहुपद समय जटिलता एल्गोरिथ्म का उपयोग करके किया जा सकता है, जैसा कि एल्गोरिथम 14.3 में दिखाया गया है। व्याख्यान १२-१३ में एक तेज घातांक एल्गोरिथ्म पर चर्चा की गई थी। स्रोत टेक्स्ट का आकार n से कम होना चाहिए; यदि स्रोत पाठ का आकार बड़ा है, तो इसे ब्लॉकों में विभाजित किया जाना चाहिए।



संबंधित आलेख: