जैसे-जैसे क्रिप्टोग्राफ़िक तकनीकें आगे बढ़ती जा रही हैं और हमारे जीवन में नए और अधिक महत्वपूर्ण उपयोग पा रही हैं, इन तकनीकों द्वारा की जाने वाली प्रक्रियाएँ और भी जटिल होती जा रही हैं। जबकि सरल क्रिप्टोग्राफ़िक प्राइमिटिव्स के साथ बहुत कुछ किया जा सकता है, लेकिन जब वे संयुक्त होते हैं तो वे जो कर सकते हैं वह सबसे रोमांचक है।
इससे भी ज़्यादा प्रभावशाली यह विचार है कि कुछ क्रिप्टोग्राफ़िक प्रोटोकॉल हार्डवेयर विवरण क्षमताओं के साथ डिज़ाइन किए गए हैं, जो उन्हें सार्वभौमिक चुनौतियों से निपटने की शक्ति प्रदान करते हैं। इस विचार को, जिसे उपयुक्त रूप से "प्रोग्रामेबल क्रिप्टोग्राफी" कहा जाता है, में ब्रायन गु के शब्दों में, नए प्रोटोकॉल को डिज़ाइन करने की गणितीय समस्या को मौजूदा प्रोटोकॉल को संयोजित करने की प्रोग्रामिंग समस्या में बदलकर अधिक जटिल क्रियाएँ संभव बनाने का वादा है।
इस लेख में, हम क्रिप्टोग्राफ़िक अनुप्रयोग की परतों का पता लगाएंगे, उच्च-स्तरीय लक्ष्यों से लेकर निम्न-स्तरीय एल्गोरिदम तक, यह समझने के लिए कि ये विचार कहाँ से आते हैं। फिर, हम देखेंगे कि वे कहाँ जा रहे हैं।
शुरू करने से पहले, आइए क्रिप्टोग्राफ़रों को अपने शिल्प में तल्लीन करने के लिए प्रेरित करने वाली मौलिक प्रेरणा पर विचार करने के लिए एक पल लें। आखिरकार, घर पर रहना और कुछ भी न करना गणितीय प्रमाणों पर काम करने से कहीं ज़्यादा आसान है कि एक नया प्रोटोकॉल सुरक्षित, व्यवहार्य है, और मौजूदा मॉडलों पर एक सार्थक सुधार है।
हमारे द्वारा संग्रहित, साझा और संसाधित किए जाने वाले डिजिटल डेटा के लगातार बढ़ते महत्व के कारण गोपनीयता सुनिश्चित करने और डेटा को छेड़छाड़ से बचाने के लिए नए और बेहतर तरीकों की आवश्यकता है। यह उस ज़रूरत को पूरा करने की इच्छा है जो क्रिप्टोग्राफ़रों को सुबह बिस्तर से उठने के लिए प्रेरित करती है।
यह सोचना वाकई चौंकाने वाला है कि आजकल कितनी सारी जानकारी ऑनलाइन प्रोसेस की जाती है। ज़्यादातर लोगों के लिए सबसे ज़रूरी बात यह है कि अब वे डेटा के साथ बातचीत करने में कुछ साल पहले से कहीं ज़्यादा समय बिताते हैं। वे जो भी जानकारी बनाते हैं, उससे जुड़ते हैं, उसकी समीक्षा करते हैं और भेजते हैं, अगर उसे ठीक से सुरक्षित नहीं रखा जाता है, तो उस पर जासूसी, चोरी या हेरफेर का जोखिम रहता है।
यही कारण है कि क्रिप्टोग्राफी की हमेशा जरूरत होती है। यही कारण है कि डेटा को निजी रखने के नए और बेहतर तरीके विकसित होते रहते हैं।
कई अन्य विषयों की तरह, क्रिप्टोग्राफी सरल अवधारणाओं पर आधारित है जिन्हें कार्य के अधिक रोचक होने पर बढ़ाया जाता है। आधुनिक क्रिप्टोग्राफी में अक्सर "क्रिप्टोग्राफिक प्राइमेटिव्स" के रूप में संदर्भित ये सरल अवधारणाएँ स्वयं अक्सर बुनियादी होती हैं लेकिन इन्हें मिलाकर कुछ जटिल बनाया जा सकता है।
उदाहरण के लिए, सबसे पुराने कोडों में से एक पर विचार करें - सीज़र सिफर। अपने सबसे प्रसिद्ध उपयोगकर्ता के नाम पर, इस कोड में सिफर टेक्स्ट में शब्दों को लिखना शामिल है जो मूल संदेश से तीन अक्षर पीछे चले गए। इस मामले में, शब्द "द" को "क्यूब" लिखा जाएगा। प्रत्येक अक्षर को अंग्रेजी वर्णमाला में उसके तीन स्थान आगे स्थानांतरित कर दिया गया था।
हालांकि यह कोड काफी सरल है, लेकिन यह अच्छी तरह से परखा हुआ, उपयोगी है और बिल्कुल भी प्रयोगात्मक नहीं है। यदि आपको डेटा एन्क्रिप्ट करने की आवश्यकता है, तो यह इसे एन्क्रिप्ट करेगा। हालांकि यह दुनिया का सबसे सुरक्षित कोड नहीं है, लेकिन इसे और अधिक मजबूत बनाने के लिए इसे अन्य तकनीकों के साथ भी जोड़ा जा सकता है।
एक और उदाहरण लें, विगेनेयर सिफर कई अलग-अलग सीज़र सिफर का उपयोग करके संदेश को एनकोड करने के लिए एक उपकरण है। इस प्रणाली में, प्रत्येक संदेश को एक कुंजी के साथ जोड़ा जाता है; आइए क्रमशः "ईगल" और "लेमन" की कल्पना करें। कुंजी आपको बताती है कि संदेश में अक्षरों को कितने स्थानों पर स्थानांतरित करना है, लेकिन प्रत्येक अक्षर में शिफ्ट की एक अलग संख्या होती है। लेमन में "L" आपको संदेश में पहले अक्षर को बारह स्थानों पर स्थानांतरित करने के लिए कहता है, क्योंकि L अंग्रेजी वर्णमाला में बारहवां अक्षर है। "E" आपको दूसरे अक्षर को पाँच स्थानों पर स्थानांतरित करने के लिए कहता है, और इसी तरह।
इसलिए, "एप्पल" "पेसर" बन जाता है। कुंजी तक पहुँच के बिना, संदेश को डिकोड करना बहुत मुश्किल हो जाता है। हालाँकि इसमें अभी भी सीज़र सिफर की कमज़ोरियाँ हैं - पर्याप्त समय दिए जाने पर, एक क्रूर बल गणना यह निर्धारित करेगी कि संदेश क्या है - मौजूदा उपकरणों को नए तरीके से संयोजित करके, सुरक्षा का स्तर नाटकीय रूप से बढ़ जाता है।
जैसा कि आप शायद अनुमान लगा सकते हैं, इन जैसे मौजूदा सिफर को नए, अधिक जटिल तरीकों से एक साथ जोड़ना अक्सर एक नई प्रणाली का आविष्कार करने की तुलना में बहुत आसान होता है। सीज़र की मृत्यु बहुत पहले हो गई थी, और हम अभी भी उनकी कोडबुक का उपयोग कर रहे हैं।
जिस तरह पुराने कोड की समझदारी कायम है, उसी तरह आधुनिक क्रिप्टोग्राफ़िक तकनीक भी उसी स्तर पर खड़ी है। क्रिप्टोग्राफ़र से यह नया प्रमाण लिखवाना कि एक नई प्रणाली आपके डिजिटल रहस्यों को सुरक्षित रखेगी, शानदार है, लेकिन यह काफी समय लेने वाला भी है, और यह काम करने की गारंटी नहीं है। दूसरी ओर, RSA (रिवेस्ट-शमीर-एडलमैन), AES (एडवांस्ड एन्क्रिप्शन स्टैंडर्ड) या डिजिटल सिग्नेचर सिस्टम जैसे क्रिप्टोग्राफ़िक प्राइमिटिव काम करने के लिए जाने जाते हैं और इन्हें आसानी से कई तरह की समस्याओं पर लागू किया जा सकता है। उदाहरण के लिए, RSA का इस्तेमाल सुरक्षित डेटा ट्रांसमिशन के लिए व्यापक रूप से किया जाता है, जबकि AES संवेदनशील डेटा को एन्क्रिप्ट करने के लिए एक मानक है। अगर इन्हें एक साथ मिला दिया जाए, तो वे अभिनव कार्यक्षमता प्रदान कर सकते हैं और उनमें से कोई भी अकेले जितना कर सकता है, उससे कहीं ज़्यादा जटिल समस्याओं को हल कर सकते हैं।
जबकि सरल विधियों को एक साथ जोड़ना अधिक जटिल सिस्टम बनाने का एक शानदार तरीका है, इसकी अपनी सीमाएँ हैं। इनमें से प्रत्येक प्राइमिटिव को किसी विशेष कार्य में अच्छा होने के लिए डिज़ाइन किया गया है, और यह असामान्य नहीं है कि उन्हें संयोजित करते समय गलतियाँ की जाती हैं जो उनकी कमज़ोरियों को उजागर करती हैं।
निम्न-स्तरीय प्राइमेटिव्स पर निर्माण करते हुए, मध्य-स्तरीय प्रोटोकॉल अधिक उन्नत सुविधाओं और कार्यात्मकताओं को लक्षित करते हैं। निम्नलिखित में, हम कुछ सबसे व्यापक रूप से अपनाए गए और चर्चित मध्य-स्तरीय प्रोटोकॉल का पता लगाएंगे।
होमोमोर्फिक एन्क्रिप्शन एक प्रोटोकॉल है जो एन्क्रिप्टेड डेटा को पहले डिक्रिप्ट किए बिना प्रोसेस करने की अनुमति देता है। इसके उदाहरण आज भी मौजूद हैं, हालाँकि यह अभी भी अपने तुलनात्मक रूप से शुरुआती चरण में है- इसे 2009 में ही व्यावहारिक रूप से प्रदर्शित किया गया था। मौजूदा मॉडल कभी-कभी एन्क्रिप्टेड डेटा पर कौन सी प्रक्रियाएँ संचालित की जा सकती हैं, इस बारे में सीमित होते हैं।
हालाँकि, यह अवधारणा बेहद दिलचस्प है और इसके कई संभावित अनुप्रयोग हैं। विचार करें कि कितनी बार संवेदनशील लेकिन उपयोगी डेटा जैसे कि मेडिकल रिकॉर्ड या क्रेडिट जानकारी उन संगठनों से चुरा ली जाती है जिन्हें आपकी मदद करने के लिए इसकी पहुँच की आवश्यकता होती है। क्या होगा अगर आपकी एन्क्रिप्टेड मेडिकल जानकारी को कभी भी डिकोड किए बिना उससे इंटरैक्ट करना संभव हो? सुरक्षा में इस सुधार के लाभ बिना कहे ही समझ में आते हैं।
मल्टी-पार्टी कम्प्यूटेशन (MPC) एक ऐसा उपकरण है जो एक सामान्य आउटपुट पर एक साथ काम करने वाले विभिन्न अभिनेताओं द्वारा दिए गए इनपुट को छिपाने के लिए है। इसे अक्सर "करोड़पति समस्या" के रूप में वर्णित किया जाता है।
कल्पना कीजिए कि दो करोड़पति हैं जो यह जानना चाहते हैं कि उनमें से किसके पास ज़्यादा पैसा है। हालाँकि, वे सिर्फ़ यह नहीं बताना चाहते कि उनकी कुल संपत्ति कितनी है। वे इस समस्या को हल करने के लिए MPC का उपयोग कर सकते हैं। पहला करोड़पति अपने एन्क्रिप्टेड नेटवर्थ को दूसरे को भेजने से पहले मूल्यों की तुलना करने के लिए डिज़ाइन किए गए प्रोग्राम में जोड़ने में सक्षम है। दूसरा करोड़पति अपने नेटवर्थ को जोड़ते समय पहले मूल्य को देखने में असमर्थ है।
इसके बाद वे दोनों आउटपुट को डिक्रिप्ट कर सकते हैं और पता लगा सकते हैं कि उनमें से किसने बड़ा मान दर्ज किया है - और यह सब करते हुए वे दोनों में से किसी भी इनपुट को नहीं देख पाएंगे।
अंत में, आइए शून्य-ज्ञान प्रमाण (ZKP) पर नज़र डालें। ये संभवतः पाठक को अच्छी तरह से ज्ञात हैं, क्योंकि इनका व्यापक रूप से उपयोग किया जाता है, और हम इन पर संक्षेप में विचार करेंगे। ZKP एक प्रमाणक को किसी अन्य व्यक्ति, जिसे अक्सर सत्यापनकर्ता कहा जाता है, को यह बताने की अनुमति देने में बहुत अच्छे हैं कि कुछ और कहे बिना कुछ सत्य है। आम तौर पर, वे एक ही उपयोगकर्ता को यह सेवा प्रदान करते हैं; एक व्यक्ति प्रमाण मांगता है, और उसे वह मिल जाता है। ZKP के कई प्रकार हैं, जिनमें zk-SNARK और zk-STARK शामिल हैं। प्रत्येक के अपने फायदे और नुकसान हैं।
जैसे-जैसे इन उन्नत प्रोटोकॉल पर शोध आगे बढ़ा है, फोकस सामान्य-उद्देश्य वाले क्रिप्टोग्राफ़िक प्रोटोकॉल विकसित करने की ओर बढ़ा है। इन पहलों का उद्देश्य यह साबित करना है कि क्रिप्टोग्राफी के लिए सार्वभौमिक गणना को सुरक्षित और निजी रूप से सक्षम करना संभव है। प्रारंभ में, ये प्रयास पूरी तरह से सैद्धांतिक थे, व्यावहारिक कार्यान्वयन दक्षता पर व्यवहार्यता को प्राथमिकता देते हुए। हालाँकि, जैसे-जैसे शोध गहरा हुआ है, क्रिप्टोग्राफ़रों ने इन अवधारणाओं को व्यावहारिक रूप से लागू करने की ओर अपना ध्यान केंद्रित किया है। वे नए प्रोटोकॉल और घटकों को बढ़ाते हैं, जोड़ते हैं और उनका आविष्कार करते हैं। अक्सर, अंतिम प्रोटोकॉल एक हाइब्रिड बन जाता है, जो कई दृष्टिकोणों की ताकत का लाभ उठाता है। उदाहरण के लिए, होमोमॉर्फिक एन्क्रिप्शन गणना को वैध सीमा के भीतर सुनिश्चित करने के लिए रेंज प्रूफ के लिए शून्य-ज्ञान प्रमाण का उपयोग करता है। इस बीच, MPC प्रोटोकॉल गैर-रेखीय संचालन को निष्पादित करने के लिए होमोमोर्फिज्म के तत्वों को शामिल कर सकते हैं।
प्रायोगिक प्रोटोकॉल की भरमार में से कुछ व्यावहारिक उपयोगिता के इतने करीब पहुंच गए हैं कि उन्होंने वास्तविक दुनिया के विकास का मार्ग प्रशस्त कर दिया है। ये उपकरण कंपाइलर्स के समान कार्य करते हैं, उच्च-स्तरीय भाषाओं की व्याख्या करते हैं और उन्हें ऐसे सर्किट में परिवर्तित करते हैं जिन्हें क्रिप्टोग्राफ़िक प्रोटोकॉल संसाधित कर सकते हैं। यह परिवर्तन सॉफ़्टवेयर को CPU रजिस्टर संचालन में परिवर्तित करने या सॉलिडिटी को EVM स्टेट ट्रांज़िशन में अनुवाद करने जैसा है। ट्यूरिंग-पूर्ण संगणना के समर्थन के साथ इस संकलक जैसी क्षमता को प्राप्त करना, जिसे हम प्रोग्रामेबल क्रिप्टोग्राफी कहते हैं, के आगमन को चिह्नित करता है। हालांकि यह अत्यधिक आशावादी लग सकता है, लेकिन वास्तविकता सूक्ष्म है। उदाहरण के लिए, बिट-वाइज हैश फ़ंक्शन शून्य-ज्ञान प्रमाण प्रोटोकॉल में उतने कुशल नहीं हैं, जबकि मॉड्यूलर गुणन के माध्यम से निष्पादित हैश बेहतर दक्षता प्रदान करते हैं। इसलिए, SHA-3 जैसे एल्गोरिदम से दूर रहना उचित है। इसके अलावा, फ़्लोटिंग-पॉइंट गणनाओं से बचना एक सामान्य अभ्यास है, क्योंकि क्रिप्टोग्राफ़िक प्रोटोकॉल मुख्य रूप से सीमित क्षेत्रों में काम करते हैं। प्रोग्रामेबल क्रिप्टोग्राफी को जीवन में लाने के लिए इस तरह की तरकीबें हर जगह मौजूद हैं।
प्रोग्रामेबल क्रिप्टोग्राफी अभी भी एक नई अवधारणा है, लेकिन यह बहुत जटिल समस्याओं को बहुत सरल बनाने का मौका देती है। यह किस दिशा में आगे बढ़ेगी, इस पर अटकलें लगाना आसान है। यह लगभग तय है कि सभी तरह के क्रिप्टोग्राफ़िक उपकरणों के साथ प्रोग्राम करने का प्रयास किया जाएगा, हालांकि उनके साथ मिलने वाली सफलता का स्तर निर्धारित किया जाना बाकी है।
हालांकि, इनमें से कुछ प्रयोग सफल होंगे। उनमें से कुछ अच्छे से काम करेंगे, और जो अच्छे से काम करेंगे, वे शक्तिशाली कार्यक्षमताएं और उच्च स्तर की सुरक्षा प्रदान करेंगे, बिना किसी क्रिप्टोग्राफर को एक एप्लिकेशन के लिए बिल्कुल नया सिस्टम बनाने की लागत के। अकेले यह संभावना ही इस क्षेत्र में बहुत अधिक रुचि पैदा करेगी।
इस समस्या का समाधान करना होगा कि इसे किस प्रकार किया जाए ताकि यह मौजूदा प्रणालियों के साथ काम कर सके, और यह संभव है कि जो कुछ अपनाया जाएगा, वह उस डेटा के साथ कुशलतापूर्वक काम करेगा जिसके साथ बातचीत की आवश्यकता है।
डेटा सुरक्षा, गोपनीयता और डिजिटल सुरक्षा के व्यापक क्षेत्र पर इस तकनीक के प्रभाव को बढ़ा-चढ़ाकर बताना मुश्किल हो सकता है। कई जटिल कार्यवाहियों को लागू करना आसान हो जाएगा। जबकि खराब प्रोग्रामिंग से समस्याएँ पैदा होंगी, जैसा कि हमेशा होता है, जहाँ तकनीक काम करती है, वहाँ हम बेहतर सुरक्षा और अधिक मजबूत गोपनीयता प्रणाली देखेंगे।
शायद सबसे उत्साहजनक बात यह है कि इस तकनीक के उपयोग के मामले में अभी भी काफी समय है। ZK प्रूफ़ 1980 के दशक में तैयार किए गए थे, लेकिन 2012 में ही संभव हो पाए। ऐसे कई संभावित तंत्र और तंत्रों के संयोजन हो सकते हैं जिनके बारे में अभी तक किसी ने सपने में भी नहीं सोचा होगा। अगला विश्व-हिलाने वाला विचार कल आ सकता है। हम शायद यह अनुमान भी न लगा पाएं कि यह क्या करेगा।