Shamir Secret Sharing एक गणितीय तरीका है, जो एक गोपनीय मान से कई अलग-अलग हिस्से, यानी share, बनाता है। पहले से तय संख्या मिलने पर गोपनीय मान दोबारा बनाया जा सकता है; आदर्श योजना में उससे कम हिस्से उसका थोड़ा-सा भाग भी नहीं बताते। Adi Shamir ने यह तरीका 1979 में प्रकाशित किया था। Bitcoin में यह गोपनीय मान वॉलेट बहाल करने का गुप्त डेटा हो सकता है। यह Seed Phrase को टुकड़ों में काटना नहीं है: हिस्से गणना से बनते हैं और संबंधित योजना में ही उनका अर्थ होता है।
वॉलेट बिटकॉइन पाने और भेजने वाला ऐप या उपकरण है। अन्ना ऐसा बैकअप चाहती है जो कुछ रिकॉर्ड खोने पर भी काम करे। वह पाँच में से तीन चुनती है: पाँच अलग हिस्से बनते हैं और उसी समूह के कोई भी तीन सही हिस्से गोपनीय मान बहाल कर देते हैं। दो खो सकते हैं, लेकिन तीन नहीं। आवश्यक संख्या को थ्रेशहोल्ड या सीमा कहते हैं। सामान्य रूप से n में से k का अर्थ है बने हुए n हिस्सों में से k चाहिए और n−k खो सकते हैं। लेकिन यह सीमा अन्ना की सहमति नहीं पहचानती। कोई और तीन हिस्से पा ले या उनके रखवाले मिल जाएँ, तो वही गोपनीय मान बहाल कर सकते हैं। सीमा घटाने से बहाली आसान होती है, लेकिन अन्ना के बिना उसे करने वाला समूह भी छोटा हो जाता है। [1] [6]
अन्ना सभी पाँच फाइलें एक क्लाउड खाते में रख दे, तो बहुत लाभ नहीं होगा। खाते के खोने या उसमें सेंध लगने से सभी हिस्से एक साथ प्रभावित होंगे। बैकअप के लिए समझदारी से अलग-अलग जगह रखना, तरीके और उसके पैरामीटर लिखना तथा भरोसेमंद उपकरण पर बहाली जाँचना जरूरी है। योजना उत्तराधिकारियों के लिए भी है, तो उन्हें समझना होगा कि क्या ढूँढ़ना है और सुरक्षित ढंग से कैसे उपयोग करना है। उसी गोपनीय मान S को नए यादृच्छिक अंकों से बाँटने पर नया समूह बनता है; पुराने और नए हिस्से मिलाए नहीं जाते। फिर भी पर्याप्त पुराने हिस्से S को बहाल कर सकते हैं। दोबारा बाँटना पहले से लीक हुए उपयोगी बैकअप को रद्द नहीं करता और मूल गोपनीय मान भी नहीं बदलता। [1] [4]
सामान्य बहाली में पूरा गोपनीय मान फिर एक उपकरण पर आ जाता है। उपकरण में हमलावर की पहुँच हो, तो हमलावर उसी समय इसे पा सकता है। यदि गोपनीय मान Private Key है, यानी खर्च की अनुमति देने वाला डिजिटल हस्ताक्षर बनाने के लिए इस्तेमाल होने वाला गुप्त संख्यात्मक मान, तो उसका धारक बाद में और हिस्से जुटाए बिना हस्ताक्षर कर सकता है। इसके विपरीत Multisig उस खर्च की शर्तों के अनुसार कई हस्ताक्षर माँगता है। थ्रेशहोल्ड साइनिंग भी होती है: कई प्रतिभागियों की सुरक्षित संयुक्त गणना वाला अतिरिक्त MPC प्रोटोकॉल इस्तेमाल करके हिस्से पूरी कुंजी जोड़े बिना हस्ताक्षर में योगदान दे सकते हैं। NIST इन स्थितियों में अंतर करता है। शमीर का हिस्सा अपने आप ऐसा हस्ताक्षर प्रोटोकॉल उपलब्ध नहीं कराता। [3] [5] [6]
नाम में Shamir रखने वाले दो प्रोग्राम जरूरी नहीं कि एक-दूसरे के हिस्से पढ़ सकें। गणितीय क्रियाएँ, मानों की एन्कोडिंग, हिस्सों की पहचान और समूह की सदस्यता मेल खानी चाहिए। SLIP-39 इस तरीके पर आधारित एक खास मानक है। इसमें हिस्से लिखने की शब्द-सूची, मेटाडेटा यानी सहायक जानकारी, समूह, एन्क्रिप्शन और त्रुटि-जाँच जुड़ते हैं। इसलिए सामान्य सिद्धांत मौजूदा Seed Phrase को हाथ से बाँटने का निर्देश नहीं है। वॉलेट की सुरक्षा ऐसे बैकअप पर छोड़ने से पहले समर्थित प्रारूप जानना और तय प्रक्रिया से सच में बहाली होना जाँचना जरूरी है। [2]
पाँच में से तीन वाली योजना में दो हिस्से खोने का परिणाम साफ है। लेकिन खराब या जाली हिस्सा बुनियादी गणना से कमी की चेतावनी के बजाय कोई दूसरा गोपनीय मान निकलवा सकता है। तरीका अपने आप हिस्सों का स्रोत या बनाने वाले की ईमानदारी प्रमाणित नहीं करता। त्रुटि पहचानना, सुधारना और verifiable secret sharing, यानी बाँटने की प्रक्रिया सही होने की जाँच, अपनी-अपनी धारणाओं वाली अतिरिक्त परतें हैं। उदाहरण के लिए SLIP-39 चेकसम और digest नाम का सत्यापन-चिह्न जोड़ता है। इसका मतलब नहीं कि हर Shamir Secret Sharing ऐप में वही जाँचें हैं या सही चेकसम भरोसेमंद स्रोत का प्रमाण है। [2] [5]
आदर्श योजना में k से कम पूरे हिस्से हमलावर को S के बारे में कोई नई जानकारी नहीं देते, भले गणना की क्षमता असीमित हो। हिस्सा मूल शब्दों का दिखाई देने वाला एक तिहाई नहीं है। लेकिन इसके लिए सही यादृच्छिकता चाहिए: बाँटने में इस्तेमाल संख्याएँ स्वतंत्र रूप से और बराबर संभावना से चुनी जाती हैं। अनुमान लगाने योग्य संख्याएँ, उनका दोबारा उपयोग या उपकरण की मेमोरी से रिसाव स्थिति बदल देते हैं। SLIP-39 के digest जैसे अतिरिक्त जाँच-डेटा का भी अलग मूल्यांकन चाहिए। और मूल पासवर्ड कमजोर हो, तो उसका बैकअप बाँट देने से दूसरे तरीकों से उसका अनुमान लगाना असंभव नहीं हो जाता। [1] [2]
छोटा गोपनीय मान S=5 और नियम f(x)=5+3*x mod 17 लें। mod 17 का अर्थ है 17 से भाग देने पर बचा शेषफल लेना। तीन हिस्से जोड़े (1,8), (2,11), (3,14) हैं: पहला अंक स्थान और दूसरा गणना किया मान है। पहले दो बिंदुओं से बढ़ोतरी 3 और मूल गोपनीय मान 8−3=5 मिलता है। बिंदुओं के तीन संभव जोड़ों में से कोई भी वही पाँच बहाल करता है। लेकिन अकेला बिंदु (1,8), 0 से 16 तक हर S के साथ संभव है, यदि बढ़ोतरी a=8−S mod 17 चुनी जाए। ये छोटे अंक केवल समझाने के लिए हैं, असली वॉलेट का बैकअप बनाने की योजना नहीं। [1]
सामान्य नियम f(x)=S+a1*x+…+a(k−1)*x^(k−1) है। इसे बहुपद कहते हैं; S गोपनीय मान है और बाकी गुणांक सीमित क्षेत्र से स्वतंत्र तथा समान रूप से यादृच्छिक चुने गए तत्व हैं। सीमित क्षेत्र जोड़ और गुणा के निश्चित नियमों वाला गणितीय ढाँचा है। हिस्सा (x,f(x)) होता है और हर x अलग तथा गैर-शून्य होना चाहिए: x=0 सीधे S खोल देगा। k बिंदुओं से लाग्रांज इंटरपोलेशन f(0), यानी गोपनीय मान निकालता है। उसी बिंदु की दो प्रतियाँ नई जानकारी नहीं देतीं। अभाज्य क्षेत्र GF(p) में साधारण भाग के बजाय मॉड्यूलर व्युत्क्रम से गुणा करते हैं; भाजक के साथ उसका गुणनफल 1 होता है। GF(256) की गणना भी केवल modulo 256 के शेषफल लेने से अलग है। इन क्रियाओं को एक समझना गलत होगा। [1]
पूरी तस्वीर के लिए इस प्रविष्टि के साथ यह भी पढ़ें SLIP-39, Multisig, Seed Phrase, Private Key, Bitcoin Inheritance Plan. इस प्रविष्टि का उल्लेख यहाँ भी है SLIP-39, FROST.