यह लेख बताता है कि वास्तविक संख्याओं (real numbers) पर इलिप्टिक कर्व एडिशन कैसे काम करता है।
क्रिप्टोग्राफी सीमित क्षेत्रों (finite fields) पर इलिप्टिक कर्व्स का उपयोग करती है, लेकिन वास्तविक कार्टेशियन प्लेन (Cartesian plane) में इलिप्टिक कर्व्स की संकल्पना करना आसान होता है। यह लेख प्रोग्रामर्स के लिए है और यह बहुत अधिक गणितीय (math heavy) होने और सतही (hand-wavy) होने के बीच संतुलन बनाने का प्रयास करता है।
इलिप्टिक कर्व्स की सेट-थ्योरेटिक (Set theoretic) परिभाषा
इलिप्टिक कर्व पर पॉइंट्स का सेट इलिप्टिक कर्व पॉइंट एडिशन के तहत एक ग्रुप बनाता है।
उम्मीद है, यदि आप हमारे ग्रुप थ्योरी इंट्रोडक्शन को फॉलो कर रहे हैं, तो आप वास्तव में इस बात को समझ गए होंगे कि “पॉइंट एडिशन” क्या है, इसके अलावा बाकी सब। लेकिन एब्स्ट्रेक्ट अलजेब्रा (abstract algebra) की यही तो खूबी है, है न? आपको यह जानने की आवश्यकता नहीं है कि वह क्या है, और फिर भी आप उपरोक्त वाक्य को समझ जाते हैं।
इलिप्टिक कर्व्स उन कर्व्स का एक परिवार हैं जिनका फॉर्मूला है:
आप a और b का जो मान चुनते हैं, उसके आधार पर, आपको एक कर्व मिलेगा जो निम्नलिखित में से किसी एक जैसा दिखेगा:

किसी इलिप्टिक कर्व पर एक पॉइंट एक पेयर होता है जो दिए गए और के लिए को संतुष्ट करता है।
उदाहरण के लिए, पॉइंट कर्व में है क्योंकि यह है। ग्रुप थ्योरी के शब्दों में, उस सेट का एक सदस्य है जिसे द्वारा परिभाषित किया गया है। चूंकि हम वास्तविक संख्याओं से निपट रहे हैं, इसलिए सेट की कार्डिनलिटी (cardinality) अनंत है।
यहाँ विचार यह है कि हम इस सेट से दो पॉइंट्स ले सकते हैं, एक बाइनरी ऑपरेटर का उपयोग कर सकते हैं, और हमें एक और पॉइंट मिलेगा जो उसी सेट में है। अर्थात्, यह एक पेयर है जो कर्व पर भी स्थित है।
इलिप्टिक कर्व्स को ग्राफ पर एक प्लॉट के रूप में सोचने के बजाय, उन्हें पॉइंट्स के एक अनंत सेट के रूप में सोचें। पॉइंट्स इस सेट में तभी होते हैं जब वे इलिप्टिक कर्व समीकरण को संतुष्ट करते हैं।
एक बार जब हम इन पॉइंट्स को एक सेट के रूप में देखते हैं, तो उन्हें एक ग्रुप के रूप में देखना रहस्यमय नहीं लगता। हम बस दो पॉइंट्स लेते हैं, और एक ग्रुप के नियमों के अनुसार तीसरा पॉइंट उत्पन्न करते हैं।
विशेष रूप से, एक ग्रुप होने के लिए, पॉइंट्स के सेट में निम्नलिखित होना चाहिए:
- एक बाइनरी ऑपरेटर जो क्लोज्ड (closed) और एसोसिएटिव (associative) हो, यानी यह सेट में एक और पॉइंट उत्पन्न करता है।
- सेट में एक आइडेंटिटी एलिमेंट (identity element) होना चाहिए।
- सेट में प्रत्येक पॉइंट का एक इन्वर्स (inverse) होना चाहिए ताकि जब दोनों को बाइनरी ऑपरेटर के साथ जोड़ा जाए, तो परिणाम हो।
एडिशन के तहत इलिप्टिक कर्व्स एक एबेलियन ग्रुप (abelian group) बनाते हैं
हालाँकि हम नहीं जानते कि बाइनरी ऑपरेटर कैसे काम करता है, हम यह जानते हैं कि यह कर्व पर दो पॉइंट्स लेता है और कर्व पर ही एक और पॉइंट लौटाता है। चूँकि ऑपरेटर क्लोज्ड है, हम जानते हैं कि यह पॉइंट वास्तव में इलिप्टिक कर्व समीकरण का एक वैध समाधान होगा, न कि कहीं और का कोई पॉइंट।
हम यह भी जानते हैं कि यह बाइनरी ऑपरेटर एसोसिएटिव (associative) है (और सेक्शन हेडिंग के अनुसार कम्यूटेटिव (commutative) भी है)।
इसलिए यदि इलिप्टिक कर्व पर तीन पॉइंट्स , , और (या यदि आप चाहें तो , , और ) दिए गए हों, तो हम जानते हैं कि निम्नलिखित सत्य है:
मैं का उपयोग कर रहा हूँ, क्योंकि हम जानते हैं कि यह बाइनरी ऑपरेटर सामान्य अर्थों में एडिशन (जोड़) नहीं है, बल्कि एक बाइनरी ऑपरेटर है (फिर से, सेट थ्योरी से याद रखें, एक बाइनरी ऑपरेटर एक सेट में दो एलिमेंट्स लेता है और सेट में ही एक और एलिमेंट लौटाता है, वह ऐसा कैसे करता है, यह परिभाषा का मुख्य हिस्सा नहीं है)।
हम यह भी जानते हैं कि कहीं न कहीं एक आइडेंटिटी एलिमेंट होना चाहिए। अर्थात्, कर्व पर पड़ने वाले किसी भी पॉइंट को जब आइडेंटिटी एलिमेंट के साथ जोड़ा जाता है, तो आउटपुट में वही पॉइंट बिना किसी बदलाव के मिलता है।
और चूँकि यह एक ग्रुप है न कि केवल एक मोनोइड (monoid), हर पॉइंट का एक इन्वर्स होना चाहिए जैसे कि , जहाँ आइडेंटिटी एलिमेंट है।
आइडेंटिटी एलिमेंट (The identity element)
सहज रूप से (intuitively), हम सोच सकते हैं कि या आइडेंटिटी एलिमेंट हो सकते हैं, क्योंकि ऐसा अक्सर अन्य ग्रुप्स में होता है, लेकिन आप ऊपर दिए गए प्लॉट्स में देख सकते हैं कि ये पॉइंट्स आमतौर पर कर्व पर नहीं पड़ते हैं। चूँकि वे पर पॉइंट्स के सेट से संबंधित नहीं हैं, इसलिए वे ग्रुप का हिस्सा नहीं हैं।
लेकिन सेट थ्योरी को याद करें कि हम इच्छानुसार परिभाषित (arbitrarily defined) सेट पर बाइनरी ऑपरेटर्स को जैसे चाहें परिभाषित कर सकते हैं। यह हमें एक ऐसा विशेष एलिमेंट जोड़ने की अनुमति देता है जो तकनीकी रूप से कर्व पर नहीं है, लेकिन परिभाषा के अनुसार वह आइडेंटिटी एलिमेंट है।
मैं आइडेंटिटी एलिमेंट को “वह पॉइंट जो कहीं नहीं है (the point that is nowhere)” के रूप में सोचना पसंद करता हूँ क्योंकि यदि आप “कहीं नहीं” को किसी वास्तविक पॉइंट के साथ मिलाते हैं, तो कुछ भी नहीं बदलता है। झुंझलाहट की बात यह है कि गणितज्ञ इस पॉइंट, यानी आइडेंटिटी एलिमेंट को “अनंत पर पॉइंट (the point at infinity)” कहते हैं।
अरे रुकिए, क्या इस पॉइंट को को संतुष्ट नहीं करना चाहिए? “कहीं नहीं” (या अनंत) के लिए कोई वैध मान नहीं है।
आह, लेकिन याद रखें, हम सेट को जैसे चाहें परिभाषित कर सकते हैं! हम उस सेट को जो इलिप्टिक कर्व बनाता है, इलिप्टिक कर्व पर पॉइंट्स और “कहीं नहीं (nowhere)” पॉइंट के रूप में परिभाषित करते हैं।
क्योंकि बाइनरी ऑपरेटर्स केवल एक कार्टेशियन प्रोडक्ट (एक रिलेशन) के सबसेट होते हैं, और हम रिलेशन को जैसे चाहें परिभाषित कर सकते हैं। हम अपने अंकगणित में अपनी मर्जी के अनुसार कितने भी “if स्टेटमेंट्स” (if statements) रख सकते हैं और फिर भी ग्रुप नियमों (group laws) का पालन कर सकते हैं।
एडिशन क्लोज्ड (closed) है।
व्यापकता को खोए बिना (Without loss of generality), आइए इस इलिप्टिक कर्व को लेते हैं:
इलिप्टिक कर्व्स पर लाइनें कैसे इंटरसेक्ट (intersect) करती हैं, यह दर्शाने के लिए, आइए एक लगभग वर्टिकल (vertical) लाइन खींचते हैं।
(इसे अधिक वर्टिकल बनाने के लिए 1000x किया जा सकता है, लेकिन जैसा कि आप बाद में देखेंगे, इससे हमें संख्यात्मक अस्थिरता (numerical instability) मिलेगी)
हमें प्लॉट्स का निम्नलिखित सेट मिलता है।

यह पाया गया है कि, भले ही ऐसा लगता है कि बैंगनी लाइन () नीले कर्व () की तुलना में तेजी से ऊपर उठ रही है, वे हमेशा अंततः एक-दूसरे को इंटरसेक्ट (intersect) करेंगी।
यदि हम पर्याप्त रूप से ज़ूम आउट (zoom out) करते हैं, तो हम इंटरसेक्शन देख सकते हैं। यह बात सामान्य तौर पर सच है।
जब तक कि लाइन “पूरी तरह से वर्टिकल (perfectly vertical)” न हो, यदि यह कर्व पर दो पॉइंट्स को पार करती है, तो यह हमेशा एक तीसरे पॉइंट को पार करेगी। उन पॉइंट्स में से दो पॉइंट्स एक ही हो सकते हैं यदि इंटरसेक्शन के पॉइंट्स में से एक टेंजेंट पॉइंट (tangent point) है।
“यदि हम दो पॉइंट्स को इंटरसेक्ट करते हैं” वाली बात महत्वपूर्ण है। यदि हम अपनी बैंगनी लाइन को बाईं ओर खिसका देते हैं ताकि यह इलिप्टिक कर्व के “U-turn” को पार न करे, तो यह केवल एक पॉइंट पर पार करेगी।
इसे समझने का दूसरा तरीका:
यदि एक सीधी रेखा एक इलिप्टिक कर्व को ठीक दो पॉइंट्स पर पार करती है, और इंटरसेक्शन पॉइंट्स में से कोई भी टेंजेंट इंटरसेक्शन (tangent intersection) नहीं है, तो इसे पूरी तरह से वर्टिकल होना चाहिए।
आप ऊपर दिए गए फ़ार्मुलों से एक बीजगणितीय प्रमाण (algebraic proof) निकाल सकते हैं, लेकिन मुझे लगता है कि ज्यामितीय तर्क (geometric argument) अधिक सहज है।
मेरी सलाह है कि आप यहाँ रुकें और कुछ इलिप्टिक कर्व्स और लाइनें बनाएँ और विज़ुअली (visually) देखकर खुद को इसके प्रति आश्वस्त करें।
वर्टिकल लाइनों के लिए हमारा अपवाद (exception) वास्तव में इन्वर्स और आइडेंटिटी एलिमेंट्स को बहुत ही शानदार तरीके से फिट कर देता है।
किसी इलिप्टिक कर्व पॉइंट का इन्वर्स उस पेयर के y मान का नेगेटिव होता है। यानी, का इन्वर्स है और इसका उल्टा भी सच है। ऐसे पॉइंट्स के माध्यम से एक लाइन खींचने पर एक पूरी तरह से वर्टिकल लाइन बनती है।
आइडेंटिटी एलिमेंट जिसे हमने पहले “अनंत पर पॉइंट (point at infinity)” कहा था, वह बस वर्टिकल लाइन खींचने पर “बहुत ऊपर” स्थित पॉइंट होता है।
एबेलियन ग्रुप (Abelian Group)
यह तथ्य कि इलिप्टिक कर्व पॉइंट्स हमारे इस नियम के तहत एक ग्रुप हैं कि “2 पॉइंट्स हमेशा 3सरे पॉइंट का परिणाम देते हैं (आइडेंटिटी को छोड़कर)”, इसकी कम्यूटेटिव प्रकृति (commutative nature) को स्पष्ट करता है।
जब हम दो पॉइंट्स चुनते हैं, तो केवल एक ही तीसरा पॉइंट होता है। आपको किसी इलिप्टिक कर्व में चार इंटरसेक्शन्स नहीं मिल सकते हैं। चूँकि हमारे पास केवल एक ही संभव समाधान है, इसलिए यह स्पष्ट है कि है।
इलिप्टिक कर्व एडिशन x एक्सिस पर क्यों पलट (flip) जाता है
हमने पिछले सेक्शन में एक बहुत महत्वपूर्ण विवरण को संक्षेप में छोड़ दिया था, क्योंकि यह वास्तव में अपने आप में एक अलग सेक्शन का हकदार है।
इसके वर्तमान रूप में, इसमें एक बग है यदि हम दो ऐसे पॉइंट्स को जोड़ते हैं जहाँ इंटरसेक्शन बीच में होता है।

हमारी ऊपर दी गई परिभाषाओं का उपयोग करते हुए, निम्नलिखित सत्य होना चाहिए:
थोड़े से बीजगणित के साथ, हम एक विरोधाभास (contradiction) निकालेंगे:
यह बताता है कि अपने इन्वर्स के बराबर है। लेकिन आइडेंटिटी एलिमेंट नहीं है (जो कि एकमात्र ऐसा एलिमेंट है जो स्वयं का इन्वर्स हो सकता है), इसलिए हमारे सामने एक विरोधाभास है।
शुक्र है, इसे बचाने का एक तरीका है। बस पॉइंट एडिशन को तीसरे पॉइंट के रूप में परिभाषित करें जिसे x एक्सिस पर पलट (flip) दिया गया है। फिर से, हमें ऐसा करने की अनुमति है क्योंकि बाइनरी ऑपरेटर्स को हम जैसे चाहें परिभाषित कर सकते हैं, हमें बस इस बात की परवाह है कि हमारी परिभाषाएँ ग्रुप नियमों (group laws) को संतुष्ट करें।
इसलिए इलिप्टिक कर्व पॉइंट्स को जोड़ने का सही तरीका ग्राफ़िक रूप से नीचे दर्शाया गया है:

एडिशन के लिए फॉर्मूला
कुछ बीजगणित का उपयोग करके, और दिए गए दो पॉइंट्स:
कोई भी यह डिराइव कर सकता है कि की गणना कैसे की जाए जहाँ है, जिसके लिए निम्नलिखित फॉर्मूले का उपयोग किया जा सकता है।
कम्यूटेटिविटी और एसोसिएटिविटी को बीजगणितीय रूप से दर्शाना
क्योंकि हमारे पास एक क्लोज्ड फॉर्म इक्वेशन है, हम दिए गए पॉइंट्स और के लिए बीजगणितीय रूप से यह साबित कर सकते हैं कि है।
हम इसे इस प्रकार करते हैं:
var('y_t', 'y_u', 'x_t', 'x_u')
lambda_p = (y_u - y_t)/(x_u - x_t)
x_p = lambda_p^2 - x_t - x_u
y_p = (lambda_p*(x_t - x_p) - y_t)
lambda_q = (y_t - y_u)/(x_t - x_u)
x_q = lambda_q^2 - x_u - x_t
y_q = (lambda_q*(x_u - x_q) - y_u)
Jupyter नोटबुक में उपरोक्त कोड को रन करने और आउटपुट की प्रीटी प्रिंटिंग (pretty printing) का एक स्क्रीनशॉट यहाँ दिया गया है। कंप्यूटर अलजेब्रा सिस्टम को थोड़े समझाने (coaxing) की आवश्यकता होती है, लेकिन हम स्पष्ट रूप से देख सकते हैं कि x_q == x_p और y_q == y_p है।

सभी और मानों के लिए है। यदि हो तो हमें डिवीज़न बाय ज़ीरो (division by zero) एरर मिलता है, लेकिन इसका मतलब है कि वे एक ही पॉइंट हैं और यह स्पष्ट रूप से कम्यूटेटिव है।
हम एसोसिएटिविटी (associativity) को दर्शाने के लिए समान तकनीकों का उपयोग कर सकते हैं, लेकिन दुर्भाग्य से यह अत्यधिक पेचीदा है, इसलिए हम इच्छुक पाठकों को एसोसिएटिविटी के एक और प्रमाण (proof of associativity) का संदर्भ देते हैं।
इलिप्टिक कर्व्स एबेलियन ग्रुप (abelian group) प्रॉपर्टी को पूरा करते हैं
आइए देखें कि इलिप्टिक कर्व्स ग्रुप प्रॉपर्टी को पूरा करते हैं।
- बाइनरी ऑपरेटर क्लोज्ड है। यह या तो कर्व पर तीसरे पॉइंट के साथ इंटरसेक्ट करता है या फिर अनंत पर पॉइंट (आइडेंटिटी) के साथ। जब हम दो पॉइंट्स को इंटरसेक्ट करते हैं तो हमें तीसरा वैध पॉइंट मिलने की गारंटी होती है। बाइनरी ऑपरेटर एसोसिएटिव है।
- ग्रुप में एक आइडेंटिटी एलिमेंट होता है।
- प्रत्येक पॉइंट का एक इन्वर्स होता है।
- ग्रुप एबेलियन है क्योंकि A ⊕ B = B ⊕ A है।
एक बाइनरी ऑपरेटर को सेट से हर संभव पेयर को स्वीकार करना चाहिए। क्या हो यदि पेयर एक ही एलिमेंट हो, यानी A ⊕ A?
पॉइंट मल्टिप्लिकेशन: एक पॉइंट को स्वयं के साथ जोड़ना
आइए इसे लिमिट (limit) के संदर्भ में सोचें। किसी पॉइंट को अपने आप में जोड़ना दो पॉइंट्स को एक-दूसरे के असीम रूप से (infinitesimally) करीब लाने जैसा है जब तक कि वे एक ही पॉइंट न बन जाएं। जब यह कन्वर्जेन्स (convergence) होता है, तो रेखा का ढलान (slope) कर्व के टेंजेंट (tangent) पर स्थित होगा।
इसलिए किसी पॉइंट को अपने आप में जोड़ने का मतलब है उस पॉइंट पर डेरिवेटिव (derivative) लेना, इंटरसेक्शन प्राप्त करना, और फिर एक्सिस पर पलट (flip) देना।
निम्नलिखित छवि ग्राफ़िक रूप से दर्शाती है कि है।

पॉइंट मल्टिप्लिकेशन के लिए शॉर्टकट
क्या होगा यदि हम के बजाय की गणना करना चाहें? ऐसा लग सकता है कि यह एक ऑपरेशन है, लेकिन ऐसा नहीं है।
एसोसिएटिविटी के कारण, हम को इस प्रकार लिख सकते हैं:
(और अन्य टर्म्स) की गणना जल्दी की जा सकती है क्योंकि 512A बस को 9 बार दोगुना (double) करने के बराबर है।
इसलिए 1000 ऑपरेशन्स करने के बजाय, हम इसे 14 में कर सकते हैं (512A की गणना करने के लिए 9, बीच के परिणामों को कैशे (caching) करना, और फिर 5 एडिशन्स)।
जब हम क्रिप्टोग्राफी पर आते हैं तो यह वास्तव में एक महत्वपूर्ण गुण (property) है:
हम किसी इलिप्टिक कर्व पॉइंट को बड़े इंटीजर (integer) से कुशलतापूर्वक गुणा कर सकते हैं।
एडिशन की कार्यान्वयन (Implementation) डिटेल्स
साधारण बीजगणित का उपयोग करके पॉइंट एडिशन के लिए फॉर्मूला डिराइव करना बहुत कठिन नहीं है। जब हम दो पॉइंट्स को इंटरसेक्ट करते हैं, तो हमें ढलान (slope) और वे पॉइंट्स पता होते हैं जहाँ से यह गुज़रा है, इसलिए हम इंटरसेक्शन पॉइंट की गणना कर सकते हैं।
मैं यहाँ ऐसा नहीं करना चाहूँगा क्योंकि मैं सिम्बोलिक मैनिपुलेशन (symbolic manipulation) के ढेर में नहीं खोना चाहता।
ग्रुप थ्योरी की पूरी शक्ति यही है कि हमें इस बात की परवाह नहीं है कि वह सिम्बोलिक मैनिपुलेशन कैसा दिखता है। हम जानते हैं कि यदि हम दो पॉइंट्स पर अपना बाइनरी ऑपरेटर लगाते हैं, तो हमें अपने सेट में एक और पॉइंट मिलेगा, और हमारा सेट ग्रुप नियमों (group laws) का पालन करता है।
यदि आप इस तरह से सोचते हैं, तो इलिप्टिक कर्व्स को समझना बहुत आसान हो जाता है।
इलिप्टिक कर्व्स को शुरू से अलग-थलग (in isolation) समझने की कोशिश करने के बजाय, हम अन्य बीजगणितीय ग्रुप्स (algebraic groups) का अध्ययन करते हैं, और फिर उस ज्ञान और समझ को इलिप्टिक कर्व्स में स्थानांतरित करते हैं।
एडिशन के तहत रैशनल नंबर्स (Rational numbers) एक ग्रुप हैं। एक प्राइम (prime) के मॉड्यूलो (modulo) इंटीजर्स मल्टिप्लिकेशन के तहत एक ग्रुप हैं। नॉन-ज़ीरो डिटर्मिनेंट (non-zero determinant) वाले मैट्रिसेस (Matrices) मल्टिप्लिकेशन के तहत एक ग्रुप हैं।
आप बाइनरी ऑपरेटर लगाते हैं, और आपको सेट में एक और आइटम मिलता है। ग्रुप में एक आइडेंटिटी एलिमेंट होता है, और प्रत्येक एलिमेंट का एक इन्वर्स होता है। एसोसिएटिव नियम (Associative law) लागू होता है। इन सब बातों को ध्यान में रखते हुए, आपको इस बात की परवाह नहीं करनी चाहिए कि ऑपरेटर ⊕ पर्दे के पीछे क्या कर रहा है।
मेरी राय में, यदि आप ग्रुप थ्योरी के प्रथम सिद्धांतों (first principles) से अलग हटकर इलिप्टिक कर्व्स के गणित को समझने का प्रयास करते हैं, तो आप मुश्किल तरीका अपना रहे हैं। इसे इसके संबंधित कॉन्सेप्ट्स के संदर्भ में समझना कहीं अधिक आसान है।
इससे सीखने का अनुभव अधिक आसान और सुगम हो जाता है।
बीजगणितीय मैनिपुलेशन (Algebraic manipulation) वास्तव में केवल एसोसिएटिव एडिशन है।
मान लीजिए कि एक इलिप्टिक कर्व पॉइंट है। क्या होता है यदि हम ऐसा कुछ करते हैं?
पहले तो यह अजीब लग सकता है कि हम ऐसा कर सकते हैं, क्योंकि अगर हम इलिप्टिक कर्व के साथ क्या हो रहा है, यह विज़ुअलाइज़ करने की कोशिश करेंगे, तो हम निश्चित रूप से खो जाएंगे।
याद रखें, ऊपर जो मल्टिप्लिकेशन जैसा दिखता है वह वास्तव में केवल एक पॉइंट है जिसे बार-बार अपने साथ जोड़ा जा रहा है, इसलिए जब इसे एक ग्रुप के रूप में देखा जाता है तो वास्तव में इसके अंदर यही होता है:
स्केलर “मल्टिप्लिकेशन (multiplication)”, उस तरह से “डिस्ट्रिब्यूटिव (distributive)” नहीं है जिस तरह से हम सामान्य बीजगणित के बारे में सोचते हैं। यह बस उस क्रम को फिर से व्यवस्थित करने का एक शॉर्टहैंड तरीका है जिसमें हम P को अपने आप में जोड़ते हैं।
अंदरूनी तौर पर, हमने बस को बार अपने आप में जोड़ा है। एसोसिएटिविटी के कारण, हम यह किस क्रम में करते हैं, इससे कोई फर्क नहीं पड़ता।
इसलिए जब आप इस तरह का मैनिपुलेशन देखते हैं, तो हमारे ग्रुप ने अचानक से मल्टिप्लिकेशन बाइनरी ऑपरेटर हासिल नहीं कर लिया है, यह केवल एक भ्रामक शॉर्टहैंड है।
फ़ाइनाइट फ़ील्ड्स (Finite fields) में इलिप्टिक कर्व्स
यदि हम किसी वास्तविक एप्लिकेशन के लिए वास्तविक संख्याओं पर इलिप्टिक कर्व्स का उपयोग करते हैं, तो वे संख्यात्मक रूप से (numerically) बहुत अस्थिर (unstable) होंगे क्योंकि इंटरसेक्शन पॉइंट की गणना करने के लिए बहुत सारे दशमलव स्थानों की आवश्यकता हो सकती है।
इसलिए वास्तविकता में, हम सब कुछ मॉड्यूलर अरिथमेटिक (modular arithmetic) के साथ करते हैं।
लेकिन वास्तविक संख्याओं को एक विज़ुअल उदाहरण के रूप में उपयोग करके हमने ऊपर जो अंतर्ज्ञान (intuition) प्राप्त किया है, उसमें से कुछ भी नष्ट नहीं होता है।
RareSkills के साथ और जानें
यह सामग्री हमारे ज़ीरो नॉलेज कोर्स (zero knowledge course) से ली गई है, और अधिक जानने के लिए उसे देखें। यह पोस्ट Zero Knowledge Proofs पर एक सीरीज़ का हिस्सा है।
मूल रूप से 1 सितंबर, 2023 को प्रकाशित