
प्रूफ-ऑफ-कॉन्सेप्ट जो Arduino (Atmega328P) पर एक कमजोर RSA कार्यान्वयन के विरुद्ध पावर विश्लेषण साइड-चैनल हमले को प्रदर्शित करता है, विस्तृत हार्डवेयर सेटअप और माप पद्धति सहित।
हाल ही में, मैंने देखा कि लोग स्वयं Arduino के लिए क्रिप्टोग्राफी लागू कर रहे हैं, जैसा कि stackoverflow पर इस विषय में कहा गया है:
https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino
इनमें से कई इंटरनेट पर पाए जा सकते हैं, कुछ तो प्रसिद्ध पुस्तकालयों में भी हैं।
मैंने यह छोटा PoC (प्रूफ ऑफ कॉन्सेप्ट) करने का निर्णय लिया ताकि यह दिखाया जा सके कि अपना स्वयं का क्रिप्टोग्राफी एल्गोरिदम न बनाना क्यों महत्वपूर्ण है, बल्कि ऐसे एल्गोरिदम का एक मजबूत कार्यान्वयन भी उपयोग करना चाहिए।
यह PoC RSA कार्यान्वयन (तेज घातांक) में उपयोग की जाने वाली एक सहायक रूटीन के खराब कार्यान्वयन के विरुद्ध एक साइड-चैनल हमला (पावर एनालिसिस अटैक) करता है।
साइड-चैनल हमला एक क्रिप्टोग्राफिक सिस्टम से समझौता करने की एक विधि है जो सीधे क्रिप्टोग्राफिक एल्गोरिदम या प्रोटोकॉल पर हमला करने के बजाय अप्रत्यक्ष सूचना रिसाव का शोषण करती है।
इस प्रकार का रिसाव विभिन्न स्रोतों जैसे समय की जानकारी, बिजली की खपत, विद्युत चुम्बकीय उत्सर्जन, या यहां तक कि ध्वनि से उत्पन्न हो सकता है।
ऐसे हमले RSA जैसी क्रिप्टोग्राफिक प्रणालियों से समझौता करने में अत्यधिक प्रभावी हो सकते हैं, बिना इस आवश्यकता के कि हमलावर को उन अंतर्निहित गणितीय समस्याओं को हल करना पड़े जो क्रिप्टोग्राफिक योजना की सुरक्षा सुनिश्चित करती हैं (Kocher, Jaffe, & Jun, 1999)।
यह पेपर Arduino (Atmega328P) के फर्मवेयर में RSA एल्गोरिदम के एक कार्यान्वयन में एक सुविख्यात कमजोरी पर पावर एनालिसिस अटैक करेगा।
नोट: मैंने इसे जल्दबाजी में किया है, कृपया वर्तनी/व्याकरण की त्रुटियों के लिए मुझे क्षमा करें जो आपको मिल सकती हैं।
पावर एनालिसिस अटैक में क्रिप्टोग्राफिक संक्रियाओं के दौरान किसी उपकरण की बिजली खपत को मापना शामिल है।
डिफरेंशियल पावर एनालिसिस (DPA) में गुप्त जानकारी निकालने के लिए कई क्रिप्टोग्राफिक संक्रियाओं में बिजली खपत पैटर्न का सांख्यिकीय विश्लेषण शामिल है, जो इसे सिंपल पावर एनालिसिस (SPA) से अधिक परिष्कृत बनाता है, जो सीधे बिजली के उतार-चढ़ाव को विशिष्ट क्रिप्टोग्राफिक संक्रियाओं से जोड़ता है ताकि गुप्त जानकारी का अनुमान लगाया जा सके।
डिफरेंशियल पावर एनालिसिस (DPA) और सिंपल पावर एनालिसिस (SPA) का उपयोग RSA गणनाओं के दौरान बिजली खपत पैटर्न का विश्लेषण करके निजी कुंजियाँ निकालने के लिए किया जा सकता है।
ये हमले विभिन्न कुंजी बिट्स से जुड़े विशिष्ट बिजली उपयोग पैटर्न की पहचान करके निजी कुंजी को प्रकट कर सकते हैं (Kocher, Jaffe, & Jun, 1999)।
RSA (Rivest-Shamir-Adleman) एक व्यापक रूप से उपयोग किया जाने वाला सार्वजनिक-कुंजी एन्क्रिप्शन एल्गोरिदम है, जिसका नाम इसके आविष्कारकों: रॉन रिवेस्ट, आदि शमीर और लियोनार्ड एडलमैन के नाम पर रखा गया है, जिन्होंने इसे 1977 में प्रस्तुत किया था (Paar & Pelzl, 2010)।
यह इंटरनेट पर डेटा को सुरक्षित रूप से प्रेषित करने के सबसे सुरक्षित तरीकों में से एक बना हुआ है।
RSA की सुरक्षा की नींव में से एक बड़ी भाज्य संख्याओं को उनके अभाज्य गुणनखंडों में गुणनखंडित करने की कठिनाई में निहित है (Menezes, van Oorschot, & Vanstone, 1996)।
यह समस्या, जिसे गुणनखंडन समस्या के रूप में जाना जाता है, में वे अभाज्य संख्याएँ ढूँढना शामिल है जो एक दी गई बड़ी संख्या बनाने के लिए एक साथ गुणा करती हैं।
RSA एन्क्रिप्शन इस धारणा पर निर्भर करता है कि यह गुणनखंडन समस्या कम्प्यूटेशनल रूप से इतनी कठिन है कि मापांक को उसके अभाज्य गुणनखंडों में गुणनखंडित करके एन्क्रिप्शन को तोड़ना अव्यावहारिक है (Menezes, van Oorschot, & Vanstone, 1996)।
चित्र 1 एक सरल उदाहरण का उपयोग करके RSA एन्क्रिप्शन और डिक्रिप्शन प्रक्रिया को दर्शाता है।

चित्र 1 - RSA उदाहरण।
कृपया ध्यान दें कि इस मामले में, 3 और 33 सार्वजनिक हैं। उदाहरण में संख्या 7 निजी कुंजी है।
Phi (N) फलन, यूलर का टोटिएंट फलन, 1 से 33 के अंतराल में सभी सह-अभाज्य संख्याओं की गणना करता है।
मान 33, P और Q के गुणन से प्राप्त होता है; इस मामले में, 11 को 3 से गुणा किया गया है।
Phi फलन का परिणाम (P - 1) को (Q - 1) से गुणा करके प्राप्त किया जाता है; इस मामले में, 10 को 2 से गुणा किया गया है।
संक्रिया e<sup>-1</sup> mod 20 मॉड्यूलर व्युत्क्रम संक्रिया को दर्शाती है (Menezes, van Oorschot, & Vanstone, 1996)।
नोट: यदि आप RSA में गहराई से जाना चाहते हैं, जो इस पेपर को समझने के लिए आवश्यक नहीं है। इस रिपॉजिटरी में फ़ाइल number_theory.md में इन मूल संख्या सिद्धांत संक्रियाओं का एक त्वरित परिचय है। यह स्पष्टीकरण RSA संक्रियाओं के बारे में आपकी समझ को बढ़ा सकता है।
प्रयोग में Rigol द्वारा निर्मित एक DS1102 ऑसिलोस्कोप (चित्र 2 में प्रस्तुत) का उपयोग किया गया।
ऑसिलोस्कोप का मैनुअल संदर्भों में पाया जा सकता है (RIGOL Technologies, Inc., 2017)।
एक सामान्य बिजली आपूर्ति का भी उपयोग किया गया (चित्र 3 में प्रस्तुत)।

चित्र 2 - प्रयोग में प्रयुक्त ऑसिलोस्कोप।

चित्र 3 - प्रयोग में प्रयुक्त बिजली आपूर्ति।
ओम का नियम विद्युत अभियांत्रिकी और भौतिकी के क्षेत्र में एक मूलभूत सिद्धांत है।
यह बताता है कि दो बिंदुओं के बीच एक चालक के माध्यम से बहने वाली धारा, दो बिंदुओं के पार वोल्टेज के समानुपाती और उनके बीच प्रतिरोध के व्युत्क्रमानुपाती होती है (Boylestad, 2015)।
चित्र 4 एक परिपथ और ओम का नियम दिखाता है।

चित्र 4 - ओम के नियम का चित्रण।
ओम का नियम यह दर्शाता है कि यदि आप किसी चालक के पार वोल्टेज बढ़ाते हैं, तो धारा भी बढ़ेगी, बशर्ते प्रतिरोध स्थिर रहे (Johnson & Hilburn, 2013)। चित्र 5 ओम के नियम के अनुप्रयोग का एक उदाहरण प्रस्तुत करता है जिसका उद्देश्य परिपथ में धारा ज्ञात करना है।

चित्र 5 - ओम के नियम का उदाहरण।
किरचॉफ का वोल्टेज नियम (KVL) विद्युत अभियांत्रिकी और भौतिकी में एक मूलभूत सिद्धांत है (Boylestad, 2015)।
यह बताता है कि किसी भी बंद नेटवर्क या लूप के चारों ओर सभी विद्युत विभव अंतरों (वोल्टेज) का योग शून्य होता है (Boylestad, 2015)।
चित्र 6 किरचॉफ के वोल्टेज नियम को दर्शाता है।

चित्र 6 - किरचॉफ के नियम का चित्रण।
चित्र 7 में किरचॉफ के नियम के अनुप्रयोग का एक उदाहरण है ताकि प्रतिरोधकों R1 और R2 पर धारा ज्ञात की जा सके।

चित्र 7 - किरचॉफ के नियम का उदाहरण।
वोल्टेज विभाजक किरचॉफ के वोल्टेज नियम (KVL) का एक परिणाम है और Vout की गणना करने का एक तरीका बताता है, जो प्रतिरोधक R1 और R2 के बीच का वोल्टेज है।
वोल्टेज विभाजक का सूत्र चित्र 8 में प्रस्तुत किया गया है।
वोल्टेज विभाजक अनुप्रयोग का एक उदाहरण चित्र 9 में प्रस्तुत किया गया है।

चित्र 8 - वोल्टेज विभाजक का चित्रण।

चित्र 9 - वोल्टेज विभाजक का उदाहरण।