Nymchat तकनीकी व्हाइटपेपर
Nymchat में पोस्ट-क्वांटम कुंजी समझौता
ML-KEM-768 सार्वजनिक कुंजी को एक निर्देशिका या रजिस्टर के बिना Nostr पर वितरित करना, और उन्हें एक रहस्य से रोका जाता है जिसे कोई सार्वजनिक मूल्य प्रकट नहीं करता है।
एक संदेशक के लिए एक पोस्ट-क्वांटम कुंजी एक्सचेंज जोड़ना ज्यादातर एक क्रिप्टोग्राफी समस्या नहीं है. प्राथमिकताओं को मानकीकृत किया जाता है और पुस्तकालय मौजूद हैं. कठिन हिस्सा यह है कि हर प्रतिभागियों को अब एक दूसरा इस दस्तावेज़ में वर्णित किया गया है कि Nymchat इसका जवाब कैसे देता है - दूसरा कुंजी कहां से आता है, यह उन लोगों तक कैसे पहुंचता है जिन्हें इसकी आवश्यकता है, और इंटरफ़ेस को परिणाम के बारे में क्या दावा करने की अनुमति है - और, अंतिम अनुभाग में, यह परिणाम क्या नहीं बचाता है।
सुविधा के लिए यह पृष्ठ मशीन-अनुवादित है। अंग्रेजी मूल संस्करण वह संस्करण है जो लागू होता है।
1समस्या
नोस्टर निजी संदेशों को इसके साथ कूटबद्ध किया जाता है एनआईपी-44, जिसमें दो अलग किए जा सकने वाले आधे हिस्से हैं। आधा जो प्लेनटेक्स्ट को स्क्रैम्बल करता है-एच. एम. ए. सी.-एस. एच. ए. 256 टैग के साथ चाचा20, के माध्यम से की किया जाता है। एच. के. डी. एफ. (आरएफसी 5869)-एक क्वांटम कंप्यूटर द्वारा सार्थक रूप से खतरे में नहीं है; ग्रोवर के एल्गोरिथ्म की लागत एक सममित कुंजी के खिलाफ एक वर्ग-मूल गति है, और 256 बिट इसे अवशोषित करते हैं। सहमत हैं। कुंजी पर अण्डाकार-वक्र डिफी-हेलमैन है एलईडी256K1, और शोर का एल्गोरिथ्म विशिष्ट लोकारिथ्म को पूरी तरह से हल करता है. अपने सार्वजनिक समकक्ष से एक निजी कुंजी को पुनर्प्राप्त करने से हर साझा रहस्य जो कुंजी कभी पैदा हुआ है, वापस प्रकट होता है।
इस तरह की मशीन मौजूद होने तक इस तरह के खतरे को स्थगित नहीं किया जाता है. स्टोरेज के साथ एक दुश्मन आज एन्क्रिप्शन टेक्स्ट को रिकॉर्ड कर सकता है और जब भी क्षमता आती है, इसे डिस्काउंट कर सकता है. अब जो कुछ भी भेजा जाता है जो अभी भी मायने रखता है, वह पहले से ही संक्रमित हो गया है. यह एक पोस्ट-क्वांटम कुंजी एक्सचेंज का विशिष्ट हमला है, और यही कारण है कि काम मशीन बनाने के लिए इंतजार नहीं कर सकता है।
1. 1 इस प्रश्न का उत्तर इस पत्र में दिया गया है।
कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित होने से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्ति से पीड़ित व्यक्ति को कैंसर से पीड़ित व्यक्तिएफआईआर 203). यह तुरंत एक वितरण समस्या पैदा करता हैः
एलिस को आज संदेश भेजने के लिए, आपको एक चीज़ चाहिएः उसका एनपब। एक पोस्ट-क्वांटम एक्सचेंज जोड़ें और आपको दूसरी चाहिए-उसकी एम. एल.-के. ई. एम. सार्वजनिक कुंजी। वह कुंजी कहाँ रहती है, और आप उसे कुछ भी भेजने से पहले इसे कैसे प्राप्त करते हैं?
आप इसे कागज पर लिख सकते हैं, इसे ज़ोर से पढ़ सकते हैं, या इसे एक स्क्रीन से स्कैन कर सकते हैं, और यह आपके लिए एन्क्रिप्ट करने की जरूरत है. एक एमएल-केईएम-768 सार्वजनिक कुंजी 1,184 बाइट है. इसे ज़ोर से नहीं पढ़ा जा सकता है, यह एक उपयोगकर्ता नाम में फिट नहीं होगा, और यह केवल 32 बाइट की पहचान के अलावा एक QR कोड में नहीं है.
कठिन हिस्सा यह है कि एक दूसरा कुंजी तीन अलग-अलग मुद्दों को लाती है, और इस पेपर के बाकी हिस्से में उनमें से एक का जवाब है:
- इसे बदला जा सकता है। एक कुंजी जिसे कोई भी एक नज़र में नहीं पढ़ सकता है, वह ठीक उसी तरह की चीज है जिसे एक हमलावर अपने लिए बदल लेता है। धारा 4 इसे एक हस्ताक्षर के साथ पहचान से जोड़ती है, जो इसे पूरी तरह से तय करती है।
- यह एक उपयोगकर्ता के डिवाइस पर सहमत होना चाहिए। फोन पर एक ही खाता और लैपटॉप में एक ही कुंजी दिखाई देनी चाहिए, या एक के लिए सील किए गए संदेश दूसरे पर नहीं खोले जा सकते।
- इसे खोया जा सकता है। सार्वजनिक कुंजी एक रहस्य से फिर से प्रकाशित की जाती है, इसलिए वास्तव में जो रहस्य जीवित रहता है वह रहस्य है - और निर्माण के माध्यम से कुछ भी इसे पुनर्निर्माण नहीं करता है।
2डिजाइन की सीमाएँ
चार प्रतिबंधों ने जवाब को आकार दिया, और वे किसी भी कोड को लिखने से पहले अधिकांश स्पष्ट डिजाइनों को बाहर कर देते हैं।
- जितना संभव हो उतना कम रहस्य। हर अतिरिक्त रहस्य आपके इतिहास को खोने का एक और तरीका है, और कोई व्यक्ति जो एक एनएसईसी को बैकअप करने के लिए जानता है वह किसी और चीज़ को बैकअप करने के लिए नहीं जानता है। खंड 3.1 दिखाता है कि यह एक पूर्ण रूप से पूरा नहीं किया जा सकता है - एनएसईसी से उत्पन्न एक पोस्ट-क्वांटम कुंजी किसी भी तरह से पोस्ट-क्वांटम संरक्षण प्रदान नहीं करती है - इसलिए डिजाइन बिल्कुल भी एक रहस्य और कुछ भी नहीं खर्च करता है: प्रति पहचान एक बार उत्पन्न एक ही कुंजी सामग्री का एक टुकड़ा, एनएसईसी के समान रूप में और एक ही स्थान पर प्रस्तुत किया जाता है, ताकि जो कोई भी जानता है कि एक को कैसे रखना है वह दूसरे को कैसे रख सकता है।
- कोई अधिकार नहीं। कोई सर्वर नहीं है जिसे यह बताने के लिए भरोसा किया जा सकता है कि कौन सा कुंजी किसके पास है. कोई भी ऐसा सर्वर उस बिंदु बन जाता है जहां संदेशों को पुनर्निर्देशित किया जा सकता है.
- कई उपकरण, एक पहचान। एक Nostr पहचान आमतौर पर एक ही समय में कई ग्राहकों से उपयोग की जाती है. जो भी कुंजी सामग्री मौजूद है, उन सभी पर समान होनी चाहिए, और रास्ते जो इसे वहां ले जाते हैं, खुद को उस दुश्मन द्वारा पढ़ने योग्य नहीं होना चाहिए जिसके खिलाफ सुविधा रक्षा कर रही है।
- कोई बातचीत नहीं किसी भी बैंड में एक्सचेंज का “आप किस चिप्स का समर्थन करते हैं?” एक सतह है जिसे हमलावर कमजोर विकल्प को मजबूर करने के लिए काट सकता है. डिजाइन को कम करने के लिए कुछ नहीं होना चाहिए.
3एक स्वतंत्र मूल रहस्य
भार वहन करने का निर्णय यह है कि एम. एल.-के. ई. एम. डिकैप्सुलेशन कुंजी को प्रमुख सामग्री से जोड़ा जाता है जिसका कोई सार्वजनिक मूल्य उजागर नहीं होता है। प्रत्येक पहचान को एक मूल रहस्य मिलता है, जो एक बार उत्पन्न होता हैः
pqRoot = 32 bytes from a CSPRNG, generated ONCE per identity
seed = HKDF-Expand(
HKDF-Extract(salt = "nym-pq-root-v2", IKM = pqRoot),
info = "mlkem768/epoch/" || epoch,
64 bytes)
(ek, dk) = ML-KEM-768.KeyGen(seed)
रूट को उपयोगकर्ता के सामने प्रस्तुत किया जाता है जिस तरह से एक एन. एस. सी. हैः बेचैनी32 मानव-पठनीय उपसर्ग के साथ
nympq, तो यह के रूप में पढ़ता है nympq1…, उसी प्रकट अंतःक्रिया के पीछे पहचान स्क्रीन में एन. एस. ई. सी. के बगल में दिखाया गया है, उसी नियंत्रण के साथ प्रतिलिपि किया गया है, कभी लॉग इन नहीं किया गया है और कभी भी स्पष्ट में कहीं भी नहीं भेजा गया है। यह एक पासवर्ड नहीं है और यह एक लॉगिन नहीं है। यह एक प्रमुख सामग्री है जिसे उपयोगकर्ता सहेज सकता है, बिल्कुल एन. एस. ई. सी. की तरह।
नमक को उद्देश्य से डोमेन-सेपरेटेड किया जाता है, इसलिए कोई अन्य रहस्य कभी भी उसी की-पेयर को प्राप्त नहीं कर सकता है। epoch काउंटर ड्राइव रोटेशन (धारा 9)।
1. 1 पहचान कुंजी से कुंजी क्यों नहीं ली जा सकती है
स्पष्ट रूप से उपयोगकर्ता के पास पहले से मौजूद रहस्य से कुंजीपटल को जोड़ना हैः
seed = HKDF(salt = "…", IKM = nsec) // do not do this
यह चार कारणों से आकर्षक है, वे सभी वास्तविक हैंः बैकअप लेने के लिए कुछ भी नया नहीं है, क्योंकि एन. एस. ई. सी. पहले से ही बैकअप है; हर उपकरण निर्माण द्वारा सहमत है, जिसमें कोई सिंक्रोनाइजेशन प्रोटोकॉल गलत नहीं है; प्रति पहचान एक प्रतिस्थापन योग्य घोषणा स्पष्ट रूप से सही है, क्योंकि उपकरण कुंजी के बारे में असहमत नहीं हो सकते हैं; और इससे पहले मौजूद कुंजी कभी प्रकाशित होती है, इसलिए एक ग्राहक पहले दौड़ में अपने लिए कुछ सील कर सकता है।
सभी चार लाभ बेकार हैं, एक कारण से। शोर का एल्गोरिदम एक प्रकाशित एनपब के खिलाफ चलता है जो एन. एस. सी. देता है। बीज व्युत्पत्ति एन. एस. सी. पर एक सार्वजनिक एल्गोरिदम है। इसलिए जो विरोधी शास्त्रीय आधे को तोड़ता है वह उसी एच. के. डी. एफ. को चलाकर उत्तर-मात्रा आधे का पुनर्निर्माण करता है जो बाकी सभी चलाते हैं। फसल-अब-डिक्रिप्ट-बाद के खिलाफ-एक खतरा जो सुविधा को रोकने के लिए मौजूद है-इस तरह से प्राप्त एक कुंजी कुछ भी नहीं जोड़ती है।
एम. एल.-के. ई. एम. डिकैप्सुलेशन कुंजी एन्ट्रापी से आनी चाहिए जो न तो एन. एस. सी. से व्युत्पन्न है और न ही कभी शास्त्रीय-केवल एन्क्रिप्शन के तहत प्रेषित होती है।
उस नियम का दूसरा खंड पहले के समान ही काम करता है। एक स्वतंत्र रूप से उत्पन्न गुप्त जो फिर एक साधारण एन. आई. पी.-44 संदेश के अंदर एक उपयोगकर्ता के उपकरणों के बीच सिंक्रनाइज़ किया जाता है, अतिरिक्त चरणों के साथ वही विफलता हैः एक विरोधी आज उस संदेश को रिकॉर्ड करता है और बाद में अपनी शास्त्रीय कुंजी को पुनर्प्राप्त करता है, और मूल निकल जाता है। यही कारण है कि अगले खंड में पथ वे हैं, और उनमें से कोई भी इसे अपने दूसरे device.&rdquo पर क्यों नहीं भेजता है।
3.2 उपयोगकर्ता के अन्य उपकरणों के लिए जड़ प्राप्त करना
अनुभाग 2 की प्रतिबंध 3 - एक पहचान, कई उपकरण - यहां आर्किटेक्टिक द्वारा संतुष्ट नहीं किया जा सकता है, क्योंकि पूरे बिंदु यह है कि कुंजी पहले से ही उपकरणों द्वारा साझा किए गए किसी भी चीज़ का कार्य नहीं है। nympq1… स्वयं को कोड करें।
जड़ को इस रूप में प्रदर्शित किया जाता है nympq1… एन. एस. ई. सी. के बगल में, और एक दूसरा उपकरण इसे उसी पैनल में चिपकाकर स्वीकार करता है। यही पूरा तंत्र है। एक उपकरण जिसे कोड नहीं दिया गया है वह भाग नहीं ले सकता है, जो धारा 4.2 में वर्णित है।
मैन्युअल स्थानांतरण पहला कदम होने के बजाय एक जानबूझकर किया गया कदम है। धारा 3.1 में कहा गया है कि मूल कभी भी केवल शास्त्रीय कूटलेखन के तहत यात्रा नहीं कर सकता है, और हर तंत्र जो इसे स्वचालित बना देगा-इसे एक रिले के माध्यम से समन्वयित करना, इसे पहचान कुंजी में लपेटना-ठीक उसी का उल्लंघन करता है। उपयोगकर्ता जो कदम उठाता है वह कारण है कि सुरक्षा वास्तविक है।
प्रारूप एक लिपटे हुए पथ के लिए जगह छोड़ता हैः एक रिकॉर्ड में रैप की एक सूची हो सकती है, प्रत्येक ए. ई. ए. डी. ब्लोब एक कुंजी के नीचे उपयोगकर्ता दूसरे उपकरण पर पुनः उत्पन्न कर सकता है-उदाहरण के लिए एक पासकी पी. आर. एफ. आउटपुट। आज कुछ भी जहाज नहीं करता है, और जब तक कुछ नहीं करता है, तब तक nympq1… कोड ही एकमात्र रास्ता है। धारा 10.1 बताती है कि इसकी लागत क्या है।
रिकॉर्ड स्वयं अपनी सेटिंग श्रेणी में रहता है, nymchat-pq-root, और अन्य श्रेणियों के काम करने के तरीके को सिंक करता है। यहां तक कि बिना किसी आवरण के भी यह आवश्यक काम करता हैः इसकी उपस्थिति इस तरह से एक दूसरे उपकरण को पता चलता है कि इस पहचान का पहले से ही एक मूल है, जो इसे एक प्रतिद्वंद्वी को बनाने से रोकता है (धारा 3)।
द. nymchat-pq-root श्रेणी होना चाहिए नहीं मूल-व्युत्पन्न एम. एल.-के. ई. एम. कुंजी में कूटबद्ध किया जाए। उस पंक्ति में मूल की एकमात्र प्रति होती है, इसलिए इसे मूल से प्राप्त कुंजी के नीचे सील करने के लिए एक ताला होता है जिसकी कुंजी बॉक्स के अंदर होती हैः कोई भी उपकरण इसे कभी नहीं खोल सकता है, जिसमें वह भी शामिल है जिसने इसे लिखा है। इसे शास्त्रीय रूप से सील किया गया है-एन. आई. पी.-44 स्वयं के लिए-या बिल्कुल नहीं। यह एक ऐसी जगह है जहाँ डिजाइन केवल शास्त्रीय-सुरक्षा को स्वीकार करता है, और यह वहन कर सकता हैः पंक्ति में आज कोई मूल नहीं है, केवल यह तथ्य कि एक मौजूद है।
प्रत्येक अन्य सेटिंग श्रेणी रूट-व्युत्पन्न कुंजी का उपयोग कर सकती है और करनी चाहिए। यह एकमात्र अपवाद है, और यह ताकत के बजाय वृत्ताकार के बारे में एक अपवाद है।
3. 3 उत्पादन और अपनाना
बूट पर, एक टिकाऊ पहचान रखते हुए, एक ग्राहक इस क्रम में काम करता हैः
- एक मौजूदा की तलाश करें
nymchat-pq-rootरिकॉर्ड करें। - रिकॉर्ड मिला, और यह उपकरण इसे खोल सकता है - इसे अपनाएँ और इस पहचान को मात्रा के बाद सक्षम के रूप में घोषित करें।
- रिकॉर्ड पाया गया है, और यह डिवाइस इसे खोल नहीं सकता है - एक नया रूट उत्पन्न न करें, और किसी भी घोषणा को बिल्कुल भी प्रकाशित न करें। उपयोगकर्ता को इस उपकरण को जोड़ने के लिए कहें
nympq1…एक उपकरण से कोड जो पहले से ही है। - कोई रिकॉर्ड नहीं - एक जड़ उत्पन्न करें, रिकॉर्ड प्रकाशित करें, घोषणा करें, और दिखाएं
nympq1…उपयोगकर्ता को एक बार कोड दें ताकि वे इसे सेव कर सकें।
चरण 3 वह कदम है जो आसानी से गलत हो जाता है, और यही कारण है कि आदेश प्रत्येक कार्यान्वयन के लिए छोड़ने के बजाय नीचे लिखा जाता है. दो उपकरण जो प्रत्येक एक जड़ उत्पन्न करने का फैसला करते हैं, एक पहचान के तहत दो स्वतंत्र जड़ों का उत्पादन करते हैं, और यही इस आदेश की विफलता को रोकने के लिए मौजूद है।
4क्षमता की घोषणा
डिफ़ॉल्ट कुंजीपैर का सार्वजनिक आधा एक पतेदार के रूप में प्रकाशित किया जाता है
एन. आई. पी.-01
घटना — प्रकार 30078, टैग किया गया nym-pq:
{
"kind": 30078,
"tags": [
["d", "nym-pq"],
["t", "nym-pq"],
["expiration", "<unix seconds>"]
],
"content": {
"v": 2,
"alg": "mlkem768",
"nym": 1,
"epoch": 0,
"pk2": "<base64url ML-KEM-768 encapsulation key>",
"exp": <unix seconds>,
"devices": [ ... ]
}
}
पता लगाने योग्य का मतलब है कि रिले एक घटना प्रति (प्रकार, पबकी, डी-टैग) रखता है, इसलिए एक पुनः प्रकाशन पिछली घोषणा को प्रतिस्थापित करता है। इसलिए प्रत्येक पहचान में बिल्कुल एक वर्तमान रिकॉर्ड होता है, जो & ldquo बनाता है; सामंजस्य स्थापित करने के लिए सूची के बजाय एलिस की कुंजी & rdquo; को एक स्पष्ट रूप से प्राप्त करें।
हस्ताक्षर बाध्यकारी है। घटना को पहचान कुंजी द्वारा हस्ताक्षरित किया जाता है, इसलिए दावा & ldquo; यह एमएल-केईएम कुंजी इस एनपब & rdquo से संबंधित है; बिल्कुल उतना ही मजबूत है जितना कि एनपब। एक अलग एनकैप्सुलेशन कुंजी को प्रतिस्थापित करने के लिए एक सेकप256के1 हस्ताक्षर बनाने की आवश्यकता होती है। एक हमलावर जो ऐसा कर सकता है उसे केईएम से परेशान होने की आवश्यकता नहीं है।
घोषणाएँ समाप्त हो जाती हैं। सातवें दिन एनआईपी-40 समाप्ति, हर 24 घंटे में पुनः प्रकाशित, रिकॉर्ड को एक ग्राहक के बारे में एक बयान रखता है जो अभी भी चल रहा है न कि एक जो पहले था। मूल स्वयं कभी समाप्त नहीं होता है; केवल इसके बारे में दावा करता है।
एक लैप्स की गई घोषणा को ठीक उसी तरह पढ़ा जाता है जिस पर कभी भी एक कुंजी नहीं होती हैः सहकर्मी सामान्य एन. आई. पी.-44 भेजते हैं, जिसे हर लॉगिन पढ़ सकता है, और ग्राहक अपने अगले कनेक्शन पर पोस्ट-क्वांटम एक्सचेंज को फिर से शुरू करता है, जब यह फिर से प्रकाशित होता है। इसलिए एक सप्ताह से अधिक समय तक चुप रहने से अंतराल के दौरान भेजे गए संदेशों के लिए सुरक्षा खर्च होती है-वे क्वांटम-प्रतिरोधी के बजाय शास्त्रीय रूप से एन्क्रिप्टेड होते हैं-और इसमें कुछ भी खर्च नहीं होता है। डिलीवरी अप्रभावित होती है, पहले से प्राप्त कुछ भी अपठनीय नहीं होता है, और वापसी पर किसी भी कार्रवाई की आवश्यकता नहीं होती है।
एक रिकॉर्ड के बिना, एक रिकॉर्ड उस कुंजी से अधिक जीवित रहता है जिसे वह नाम देता है: एक डिवाइस जो मिटा दिया जाता है, रीसेट किया जाता है, या इसकी जड़ को बदल दिया जाता है, किसी भी कुंजी को कैप्सूल करने के लिए एक स्थिर निर्देश छोड़ देता है जो कोई भी अब नहीं रखता है, और इसके तहत भेजे गए संदेशों को किसी भी पक्ष पर कोई त्रुटि के बिना खो दिया जाता है।
कुंजी क्षेत्र इसके प्रारूप का नाम देता है। क्षेत्र है pk2, और अंक सजावट के बजाय अनुबंध का हिस्सा हैः यह उस पेलोड प्रारूप का नाम देता है जिसके साथ कुंजी का उपयोग किया जा सकता है। एक पाठक जो फ़ील्ड को नहीं पहचानता है वह निष्कर्ष निकालता है & ldquo; Nymchat क्लाइंट, कोई पोस्ट-क्वांटम कुंजी & rdquo; और सामान्य NIP-44 भेजता है, जिसे हर लॉगिन पढ़ सकता है। यह सही विफलता दिशा है, और यह एक नियम के रूप में कहने लायक है कि प्रारूप संख्या लागू करने के लिए मौजूद हैः एक अपरिचित क्षमता दावे को सुरक्षा की लागत होनी चाहिए, कभी भी वितरण नहीं। एक कुंजी जिसका सहकर्मी उपयोग नहीं कर सकता है वह किसी भी कुंजी से बदतर है, क्योंकि यह संदेश उत्पन्न करता है और दोनों तरफ कोई त्रुटि नहीं होती है।
4. 1 अनुपस्थिति सार्थक है, और तीन-मूल्यवान है।
एक सूक्ष्म लेकिन महत्वपूर्ण विवरणः घोषणा प्रत्येक निमचैट ग्राहक द्वारा प्रकाशित की जाती है, न केवल मात्रा के बाद-सक्षम, और प्रमुख क्षेत्र वैकल्पिक है। इससे दो के बजाय तीन अलग-अलग अवस्थाएँ मिलती हैंः
| निगरानी | मतलब | व्यवहार भेजें |
|---|---|---|
| एक कुंजी के साथ घोषणा | निमचैट, पोस्ट-क्वांटम सक्षम | हाइब्रिड |
| घोषणा, कोई चाबी नहीं | Nymchat, केवल शास्त्रीय-मात्रा के बाद बंद, या एक उपकरण जो अभी तक पहचान के मूल से जुड़ा नहीं है | शास्त्रीय एन. आई. पी.-17 |
| कोई घोषणा नहीं | अज्ञात ग्राहक. किसी भी Nostr या Bitchat उपयोगकर्ता हो सकता है | क्लासिक, प्लस एक संगत वॉलपेपर |
तीसरे पंक्ति को चौथे में गिरना एक वास्तविक नुकसान होगा. एक कुंजी के बिना घोषणा एक हस्ताक्षरित बयान है कि भेजने वाला Nymchat चलाता है, जो भेजने के रास्ते को एक स्पेक्ट्रमिक क्रॉस-प्रोटोकॉल कवर को छोड़ने की अनुमति देता है जिसे अन्यथा किसी के लिए शामिल करना होगा जिसे वह पहचान नहीं कर सकता है।
4. 2 एक उपकरण जो जड़ को नहीं खोल सकता है वह चुप रहता है।
घोषणा को प्रतिस्थापित किया जा सकता है: पहचान प्रति एक घटना, अंतिम लिखने जीत. यही एकल रिकॉर्ड डिजाइन को काम करता है, और यह भी जो एक अनलाइन डिवाइस को खतरनाक बनाता है अगर यह प्रकाशित करता है. एक डिवाइस जिसने एक कुंजी की घोषणा की थी वह खुद के लिए मंजूर किया था, वास्तविक रिकॉर्ड को चिपका देगा और प्रत्येक साथी को एक कुंजी के तहत एन्क्रिप्शन करने के लिए भेज देगा जिसे अन्य डिवाइस नहीं खोल सकते हैं.
तो एक डिवाइस जो एक जड़ जानता है, लेकिन इसे खोल नहीं सकता है, यह बिल्कुल भी कोई घोषणा नहीं प्रकाशित करता है. यह टूटा नहीं है और यह एप्लिकेशन से अवरुद्ध नहीं है: यह अभी भी हर संदेश पढ़ता है जिसके लिए उसके पास कुंजी हैं और अभी भी क्लासिक रूप से भेजता है, जबकि उपयोगकर्ता को इसे लिंक करने के लिए प्रेरित करता है. चुप्पी एक डिवाइस के लिए सही व्यवहार है जो पहचान के लिए बात नहीं कर सकता है।
5खोज और भेजने का निर्णय
ग्राहक साथियों की कुंजी को दो तरीकों से सीखते हैं। एक स्थायी सदस्यता उन लोगों को शामिल करती है जिनके साथ एक उपयोगकर्ता वास्तव में संवाद करता है-खुली बातचीत और समूह के सदस्य-इसलिए उनकी घोषणाएं सामान्य घटनाओं के रूप में आती हैं। पहली बार मिलने वाले साथियों के लिए, एक-शॉट क्वेरी भेजने के समय पर चलती है, जो ढाई सेकंड पर सीमित होती है; यदि यह हल नहीं होता है, तो संदेश शास्त्रीय हो जाता है, जो एक नए विफलता मोड के बजाय पोस्ट-क्वांटम को जोड़ने से पहले मौजूद व्यवहार है।
एक उपयोगकर्ता जो एक नए डिवाइस को जोड़ता है, या जो एक ब्राउज़र एक्सटेंशन लॉगिन से एक स्थानीय कुंजी में स्थानांतरित करता है, वह पोस्ट-क्वांटम-सक्षम मध्य वार्ता बन जाता है, और एक स्थायी रूप से कैश किया गया “no” उन्हें विज्ञापन के जीवन के लिए क्लासिक एन्क्रिप्शन पर रखता है।
5. 1 डाउनग्रेड हमला क्यों नहीं होता है
रूटिंग निर्णय एक प्रश्न तक कम हो जाता हैः
pq = (we hold a signed, unexpired ML-KEM key for this recipient)
कोई क्षमता वार्ता नहीं है, कोई समर्थित एल्गोरिदम सूची नहीं है, और कोई भी क्षेत्र एक हमलावर को कमजोर पथ को मजबूर करने के लिए स्पष्ट नहीं कर सकता है। है बातचीत, और इसे हस्ताक्षरित किया जाता है। एक छीन ली गई या रोकी गई घोषणा का विफलता मोड यह है कि संदेश शास्त्रीय हो जाता है-इस सुविधा से पहले की स्थिति-बजाय इसके कि एक संकर संदेश को कुछ जाली में डाउनग्रेड किया जाता है।
इसके विपरीत भी धारण करता है और अधिक मायने रखता हैः एक ग्राहक संकर भेजता है। केवल जब यह एक कुंजी रखता है, और कुंजी रखना एक सबूत है कि प्राप्तकर्ता decapsulate कर सकता है. वहाँ कोई राज्य नहीं है जिसमें एक संदेश पोस्ट-क्वांटम किसी को भेजा जाता है जो इसे नहीं पढ़ सकता है.
6हाइब्रिड निर्माण
निमचैट एन. आई. पी.-44 को प्रतिस्थापित नहीं करता है। यह इसे लपेटता है। एक अपरिवर्तित एन. आई. पी.-44 सिफरटेक्स्ट आंतरिक परत है, और एम. एल.-के. ई. एम. कुंजी इसके चारों ओर एक बाहरी ए. ई. ए. डी. हैः
inner = nip44_encrypt(plaintext, conversation_key(sender, recipient))
info = "nymchat-pq2" || sender_secp_pk || recip_secp_pk || kem_ct || recip_kem_pk
prk = HKDF-Extract(salt = "nymchat-pq2-v1", IKM = kem_ss)
key = HKDF-Expand(prk, info || "key", 32)
nonce = HKDF-Expand(prk, info || "nonce", 12)
outer = ChaCha20-Poly1305(key, nonce, plaintext = inner, aad = info)
payload = "pq2." || base64url(kem_ct) || "." || base64url(outer)
संदेश को पढ़ने के लिए दोनों रहस्यों को अभी भी बरामद किया जाना चाहिएः बाहरी परत से केवल एक एन. आई. पी.-44 सिफरटेक्स्ट प्राप्त होता है, और जिसे खोलने के लिए शास्त्रीय ई. सी. डी. एच. की आवश्यकता होती है। एक क्वांटम विरोधी जो एस. ई. सी. पी. 256के. 1 को तोड़ता है वह आंतरिक कुंजी प्राप्त करता है और फिर भी एम. एल.-के. ई. एम. का सामना करता है; एम. एल.-के. ई. एम. का एक ब्रेक बाहरी परत को काट देता है और एन. आई. पी.-44 को खड़ा छोड़ देता है। प्रत्येक इनपुट अपना स्थान अर्जित करता हैः
kem_ssकेवल बाहरी परत को कुंजी देता है. इस निष्कर्ष में कुछ भी कच्चे ईसीडीएच आउटपुट को छूता नहीं है, जो कि अनुच्छेद 6.1 में बदल जाता है।kem_ct,recip_kem_pkऔर दोनों पहचान कुंजी संबद्ध डेटा के रूप में बाध्य हैं, इसलिए बाहरी परत उस सटीक ट्रांक्रिप्शन के लिए प्रतिबद्ध है जो इसे उत्पन्न करता है।
एनकैप्सुलेशन प्रत्येक संदेश पर ताजा किया जाता है। प्राप्तकर्ता की एम. एल.-के. ई. एम. कुंजी लंबे समय तक चलती है, लेकिन प्रत्येक संदेश में एक स्वतंत्र सिफरटेक्स्ट होता है और इसलिए एक स्वतंत्र संदेश होता है।
kem_ssयही वह है जो इसे यादृच्छिक बनाने के बजाय मूर्खतापूर्ण बनाता हैः
चाचा20-पोली1305
एक (कुंजी, गैर) जोड़ी का पुनः उपयोग करके तोड़ा जाता है, और यहाँ कुंजी स्वयं प्रत्येक संदेश के लिए नई है, इसलिए कोई भी जोड़ी दोहरा नहीं सकती है।
6. 1 परतें अलग क्यों रहती हैं?
विकल्प यह है कि दोनों रहस्यों को एक ही वार्तालाप कुंजी में मिला दें और उसे एन. आई. पी.-44 को सौंप देंः
ck = HKDF-Extract(salt = "…",
IKM = ecdh_x || kem_ss || …) // do not do this
यह संरचना कूटलेखन की तरह अच्छी है। इसकी एक संरचनात्मक समस्या हैः इसकी आवश्यकता है।
ecdh_x, ई. सी. डी. एच. आउटपुट का कच्चा एक्स-निर्देशांक, प्रमुख सामग्री के रूप में-और एक ब्राउज़र एक्सटेंशन (एनआईपी-07) या एक दूरस्थ हस्ताक्षरकर्ता (एनआईपी-46) उस मूल्य को कभी नहीं लौटाता है। यह कॉल करने वाले की ओर से एन. आई. पी.-44 करता है और एक सिफरटेक्स्ट वापस देता है, जो कि कुंजी को पकड़ने का पूरा बिंदु है जहाँ आवेदन नहीं पहुंच सकता है।
इसलिए रहस्यों को मिलाने से प्रत्येक लॉगिन को बाहर कर दिया जाता है जो पहचान कुंजी को हस्ताक्षरकर्ता में रखता है, जिसका अर्थ है सबसे सावधान उपयोगकर्ता, और कुंजी व्युत्पत्ति पर कोई भी काम इसे बदल नहीं सकता है। परत निर्भरता को हटा देता हैः एन. आई. पी.-44 पूरी तरह से रहता है और जो कुछ भी पहचान कुंजी रखता है, हस्ताक्षरकर्ता शामिल होता है, जबकि केईएम आधा ग्राहक द्वारा सीधे रखे गए पुनर्प्राप्ति कोड से गणना की जाती है। हस्ताक्षरकर्ता लॉगिन दोनों दिशाओं में सामान्य पोस्ट-क्वांटम प्रतिभागी होते हैं।
लागत बैंडविड्थ है, और यह छोटा नहीं है। एम. एल.-के. ई. एम. सिफरटेक्स्ट 1,088 बाइट्स है और प्रत्येक संदेश पर सवारी करता है, बेस64यू. आर. एल.-एन्कोडेड 1,451 वर्णों के लिए; बाहरी ए. ई. ए. डी. एक 16-बाइट पॉली1305 टैग जोड़ता है और एन. आई. पी.-44 पेलोड का विस्तार करता है जो इसे एक तिहाई से लपेटता है। 50-वर्ण संदेश 176 बाइट्स से बढ़कर 1,712 हो जाता है, और 2,000-वर्ण संदेश 2,820 से बढ़कर 5,238 हो जाता है। संदेश कितना छोटा है, इसकी परवाह किए बिना फर्श लगभग 1.5 के. बी. प्रति संदेश है, जो एक साझा रहस्य का पुनः उपयोग करने के बजाय हर बार नए सिरे से एनकैप्सुलेट करने की कीमत है।
2. 2 स्व-वर्णित पेलोड
द. pq2. उपसर्ग परिनियोजन को वृद्धिशील बनाता हैः यह स्व-वर्णन है, इसलिए एक ग्राहक एक टैग पर भरोसा करने या याद रखने के बजाय पेलोड का निरीक्षण करके डिक्रिप्शन पथ चुनता है कि एक सहकर्मी क्या समर्थन करता है। एक पाठक जो एक उपसर्ग को नहीं पहचानता है वह उस पेलोड को गलत तरीके से पढ़ने के बजाय खोलने में विफल रहता है, और दोनों पक्षों के पहले सील किए गए संदेश सामान्य एन. आई. पी.-44 के रूप में पढ़ने योग्य रह सकते हैं, जिसमें कोई माइग्रेशन नहीं होता है।
एम. एल.-के. ई. एम. डिकैप्सुलेशन को कभी भी विफल नहीं होने के लिए डिज़ाइन किया गया हैः एक विकृत सिफरटेक्स्ट को देखते हुए, फुजिसाकी-ओकामोटो परिवर्तन एक त्रुटि के बजाय एक नियतात्मक छद्म-यादृच्छिक रहस्य देता है। इसलिए एक गलत कुंजी केईएम परत पर बिल्कुल भी सामने नहीं आती है-यह एन. आई. पी.-44 के अंदर एक एच. एम. ए. सी. विफलता के रूप में सामने आती है, जो उसी तरह एक गलत शास्त्रीय कुंजी सतह है। कॉल करने वाले दोनों को समान रूप से व्यवहार करते हैं, इसलिए विफलता में कोई विशिष्ट संकेत नहीं होता है। यह वह भी है जो धारा 9.1 की उम्मीदवार सूची को व्यवहार्य बनाता हैः एक ग्राहक बारी-बारी से प्रत्येक कुंजी की कोशिश करता है और एन. आई. पी.-44 को यह कहने देता है कि कौन सा सही था।
6.3 उपहार कंबल के दोनों परतों
A एनआईपी-17 निजी संदेश एक है एनआईपी-59 गिफ्ट रैपः एक अहस्ताक्षरित अफवाह, जिसे भेजने वाले की पहचान कुंजी (प्रकार 13) के नीचे बंद कर दिया जाता है, फिर प्रति संदेश उत्पन्न की गई एक थ्रोअवे कुंजी (प्रकार 1059) के नीचे लपेटा जाता है। एक लॉगिन पर जो सीधे पहचान कुंजी रखता है, निमचैट दोनों परतों को संकरित करता है, प्रत्येक अपने स्वयं के आवरण के साथ।
एक हस्ताक्षरकर्ता लॉगिन को केवल बाहरी परत मिलती है। मुहर को हस्ताक्षरकर्ता द्वारा सामान्य एन. आई. पी.-44 के रूप में प्रस्तुत किया जाता है-आवेदन कभी भी उस कुंजी को नहीं देखता है जो इसे बनाता है-इसलिए इसे जगह पर संकरित नहीं किया जा सकता है। इस हमले के खिलाफ कुछ भी खर्च नहीं होता हैः मुहर केवल रैप के माध्यम से पहुंच योग्य है, और रैप वही है जो एक रिकॉर्डर संग्रहीत करता है। एक प्रतिद्वंद्वी को दर्ज किए गए यातायात को एमएल-केईएम को तोड़ना होगा इससे पहले कि एक मुहर हमला करने के लिए दिखाई दे।
7समूह संदेश और आंशिक कवरेज
एक समूह संदेश एक एन्क्रिप्शन टेक्स्ट नहीं है. यह एक ही सरल टेक्स्ट है जो प्रत्येक सदस्य को दिया जाता है, प्रत्येक प्रति उस सदस्य के स्वयं के एमएल-केईएम कुंजी के साथ कैप्सूल किया जाता है. एक सदस्य जिसने एक कुंजी प्रकाशित की है, उसे हाइब्रिड कवर मिलता है; एक सदस्य जिसने क्लासिक कवर नहीं किया है।
यदि दस सदस्यों में से आठ को हाइब्रिड कॉपी मिलती है, तो संदेश गलत हो जाता है नहीं एक प्रतिद्वंद्वी को एक क्लासिक कॉपी की आवश्यकता होती है जो सभी दस में समान है, इसलिए संदेश केवल तभी सुरक्षित होता है जब प्रत्येक प्रतिलिपि है।
इसलिए निमचैट फैन-आउट के दौरान प्रति-संदेश कवरेज को ट्रैक करता है-गिनती केवल तब तक ज्ञात होती है जब तक कि रैप बनाए जा रहे होते हैं-और बैज रिपोर्ट करता है'ldquo'; संदेश सुरक्षित होने का दावा करने के बजाय 10 में से 8 सदस्यों के लिए क्वांटम-प्रतिरोधी। जहां कोई गिनती उपलब्ध नहीं है, जो एक के लिए सामान्य मामला है प्राप्त किया समूह संदेश (केवल प्रेषक पंखे को गिनता है), इंटरफेस पूर्ण सुरक्षा के बजाय आंशिक रूप से रिपोर्ट करता है। केवल अपनी प्रति के बल पर पूर्ण सुरक्षा का दावा करना समग्र रूप से संदेश के बारे में एक अतिशयोक्ति होगी।
7. 1 ढाल क्या बताती है
ढाल के बारे में सच्चाई बताती है संदेश, यह उस सॉफ्टवेयर के बारे में नहीं है जो इसे भेजता है:
- पूर्ण संरक्षण: इस सरल पाठ का हर कॉपी हाइब्रिड से बाहर निकला।
- आंशिकः समूह संदेश की कुछ प्रतियां शास्त्रीय रूप से निकलती हैं। पूर्ण के बजाय अवक्रमित की जाती हैं, क्योंकि उन सभी में एक समान सादा पाठ की एक शास्त्रीय प्रतिलिपि सभी एक विरोधी आवश्यकता है।
- क्लासिक को कोई बैज के रूप में दिखाया जाता है, क्योंकि एक अनुपस्थित संकेतक “ अनिवार्य”, “ टूटा” और “इस बिल्डिंग में सुविधा” की कमी है के बीच अस्पष्ट है।
फैसला तब दर्ज किया जाता है जब संदेश को सील कर दिया जाता है न कि एक सहकर्मी बाद में जो विज्ञापन देता है उससे पुनः संगणित किया जाता है। पहले से मौजूद सिफरटेक्स्ट पहले से बेहतर संरक्षित नहीं हो सकता है, और एक इंटरफेस जो एक नई घोषणा के बल पर पुराने संदेशों को फिर से शुरू करता है, वह एक रिले पर बाइट्स के बारे में कुछ गलत दावा करना होगा।
समूह नियम ऊपर स्टैक इसे प्रतिस्थापित करने के बजाय इसके शीर्ष पर हैं: एक समूह संदेश पूरी तरह से केवल तब सुरक्षित है जब प्रत्येक सदस्य की प्रति थी, और किसी भी कवरेज गिनती के बिना प्राप्त समूह संदेश आंशिक दिखाई देता है।
8स्वयं को संबोधित प्रतियाँ
क्लाइंट द्वारा भंडारित कई चीजें उपयोगकर्ता की अपनी पहचान के अनुसार कूटबद्ध होती हैंः समन्वयित सेटिंग, वार्तालाप सूची, समूह कुंजी और संदेश संग्रह। ये अधिकांश एकल संदेशों की तुलना में एक उपयोगकर्ता के बारे में अधिक जानकारी देते हैं, इसलिए उन्हें शास्त्रीय छोड़ देना उन्हें सबसे कमजोर संग्रहीत कलाकृति बना देगा, भले ही संदेशों को कितनी सावधानी से सील किया गया हो। वे एक ही संकर का उपयोग करते हैं, जो उपयोगकर्ता की अपनी मूल-व्युत्पन्न कुंजी में संलग्न होता है-खंड 3.2 में वर्णित एक अपवाद के साथ। nymchat-pq-root स्वयं का श्रेणी, जिसे एक कुंजी के तहत सील नहीं किया जा सकता है जिसे केवल वह उत्पादन कर सकता है।
इन आर्टिफैक्ट्स में डिजाइन सबसे अधिक मायने रखता है. एक सेटिंग्स ब्लॉब या एक दस्तावेज़ पंक्ति वर्षों तक एक ही स्थान पर बैठती है, जो बिल्कुल वही चीज है जो एक कटाई-अब-डिक्रिप्ट-आपके बाद दुश्मन एकत्र करता है - किसी भी एकल संदेश की तुलना में बहुत अधिक, जो कम से कम उपयोगकर्ता के स्वयं के दिमाग में अस्थायी है।
एक बाधा कुंजी के बजाय यहाँ प्रारूप को नियंत्रित करती है। एक स्व-संबोधित प्रति को पढ़ने योग्य होना चाहिए प्रत्येक खाते में उपकरण, इसलिए प्रत्येक उपकरण विज्ञापन देता है कि वह अपनी घोषणा वाले रोस्टर में क्या खोल सकता है, और खाता केवल वही लिखता है जो वे सभी पढ़ सकते हैं। कुछ और लिखने से एक उपकरण अपनी सेटिंग्स से लॉक हो जाएगा-वही मूक विफलता धारा 3.2 अन्य तरीकों से बचती है, जो एक अलग दिशा से आती है।
एक डिवाइस जो पहचान रखता है, लेकिन जड़ नहीं है, अपने स्वयं के सेटिंग्स सहित जड़ से उत्पन्न कुंजी के लिए सील किए गए कुछ भी खोल नहीं कर सकता है. यह एक जानबूझकर परिणाम है, न कि एक निगरानी है, और यही कारण है कि अनुभाग 3.3 में एक नई जड़ के बजाय लिंक करने के लिए ऐसी डिवाइस का प्रिंट है: एक दूसरा जड़ ब्लॉब को पढ़ने योग्य नहीं बना देगा, यह केवल पहचान की कुंजी सामग्री को दो में विभाजित करेगा. जब तक उपयोगकर्ता इसे लिंक नहीं करता है, डिवाइस काम जारी रखता है - यह पढ़ता है कि इसके लिए क्या कुंजी है और क्लासिक रूप से भेजता है।
ब्राउज़र एक्सटेंशन या रिमोट साइनर (एन. आई. पी.-46) चलाने वाले उपकरण के पास प्राप्त करने के लिए कोई एन. एस. सी. नहीं है, लेकिन यह पुनर्प्राप्ति कोड रखता है, और धारा 6.1 के स्तरित निर्माण के तहत यह सभी मात्रा के बाद की आधी आवश्यकताएं हैंः साइनर एन. आई. पी.-44 परत का उत्पादन करता है जैसा कि हमेशा होता है, और क्लाइंट बाहरी परत को ही कुंजी देता है। ऐसा लॉगिन दोनों दिशाओं में एक साधारण प्रतिभागी है।
9रोटेशन
द. epoch निष्कर्षण में गिनती यह है जो नए कुंजी सामग्री के बिना रोटेशन संभव बनाती है। इसे बढ़ाने से एक नई कुंजी जोड़ी एक ही जड़ से और एक पुनः प्रकाशित घोषणा मिलती है; सहकर्मी प्रतिस्थापन रिकॉर्ड से नया कुंजी उठाते हैं. रोटेशन इसलिए उपयोगकर्ता को दूसरी बार कुछ लिखने के लिए नहीं कहता है: रूट प्रति पहचान एक बार उत्पन्न होता है और युग मोड़ करता है।
9.1 पुराने युगों को बनाए रखा जाता है, और कुछ भी पुनः एन्क्रिप्ट नहीं किया जाता है
एक क्लाइंट वर्तमान युग से नीचे epoch − 3 के लिए डिस्क्रिप्शन उम्मीदवारों का निर्माण करता है, इसलिए एक संदेश सीधे एक रोटेशन से पहले सील किया गया अभी भी उस कुंजी जोड़ी के खिलाफ खोलता है जो वर्तमान था जब यह भेजा गया था।
यह खिड़की यह है जो रोटेशन को बिल्कुल सुरक्षित बनाती है: इसके बिना, हर रोटेशन फ्लाइट में जो कुछ भी था, भटक जाएगा. जो कुछ भी पहले से ही सील किया गया है, पहचान के जीवन के लिए पढ़ाई योग्य रहता है, क्योंकि एक संदेश जो उपयोगकर्ता अब नहीं खोल सकता है वह उनके लिए सख्ती से बदतर है, जिसकी सुरक्षा को वापस नहीं किया जा सकता है (सेक्शन 10.5).
10यह किसकी रक्षा नहीं करता है
एक पेपर जो केवल सूचीबद्ध करता है कि एक डिजाइन क्या प्राप्त करता है, यह एक प्रणाली का वर्णन नहीं करता है, और इंटरफ़ेस में एक सुरक्षा संपत्ति को अधिक मूल्यवान करना इसे छोड़ने से बदतर है।
10.1 जड़ एक दूसरा रहस्य है, और इसे खोना अपरिहार्य है
यह डिज़ाइन की वास्तविक कीमत है। खंड 2 में बाधा है कि एक उपयोगकर्ता के पास रखने के लिए बिल्कुल एक चीज होनी चाहिए, जिसे पूरा नहीं किया जा सकता हैः अकेले एन. एस. सी. पोस्ट-क्वांटम कुंजी का पुनर्निर्माण नहीं करता है, क्योंकि पूरी बात यह है कि कोई सार्वजनिक मूल्य नहीं है और कोई अन्य रहस्य इसे उजागर नहीं करता है। यदि कोई उपकरण मूल नहीं रखता है और धारा 3.2 के किसी भी आवरण को नहीं खोला जा सकता है, तो मूल-व्युत्पन्न कुंजी पर सील की गई सामग्री पुनर्प्राप्त करने योग्य नहीं है। कोई एस्क्रो नहीं है और जानबूझकर कोई प्राधिकरण नहीं है जो इसे पकड़ सकता है।
हाथ से स्थानांतरण के साथ एकमात्र रास्ता है, यह पहले पढ़ने की तुलना में तेज है। एक उपयोगकर्ता जो कभी भी प्रतिलिपि नहीं बनाता है nympq1… कोड कहीं भी एक डिवाइस पर इसका बिल्कुल एक प्रति है, और उस डिवाइस को खोना हर पोस्ट-क्वांटम संदेश, सेटिंग्स ब्लॉब और संग्रह पंक्ति को उस पर सील करता है।
nsec यह मदद नहीं करता है; यह वह संपत्ति है जिस पर पूरा डिजाइन आधारित है।
बाद में जोड़े गए किसी भी लिपटे हुए पथ को उसी बार को साफ़ करना होगा जो एक मैनुअल करता है। एक हमलावर उपलब्ध सबसे सस्ते मार्ग पर हमला करता है, इसलिए एक योजना अपने सबसे कमजोर पुनर्प्राप्ति मार्ग के लायक है-उदाहरण के लिए, एक यादगार कूटशब्द, पूरी चीज़ को पासफ़्रेज़ के मूल्य पर डाल देगा, और लिपटे हुए पंक्ति बिल्कुल एक कलाकृति है जो एक फसल-अब-डिक्रिप्ट-बाद के विरोधी को इकट्ठा करती है और अवकाश में ऑफ़लाइन पीसती है।
10.2 प्रामाणिकता, गोपनीयता से अलग
नोस्टर में प्रत्येक हस्ताक्षर सेकप256के1 पर श्नोर है, और यह यहाँ अपरिवर्तित है। एक क्वांटम कंप्यूटर के साथ एक प्रतिद्वंद्वी नकली हस्ताक्षर कर सकता है और वास्तविक समय में एक उपयोगकर्ता का प्रतिरूपण कर सकता है। जो संकर कुंजी विनिमय हार है वह है हार्वेस्ट-अब-डिक्रिप्ट-बाद मेंः आज ट्रैफिक रिकॉर्ड करने वाला हमलावर इसे बाद में नहीं पढ़ सकता है। यह एक विरोधी के खिलाफ संदेश को अक्षम नहीं बनाता है जिसके पास पहले से ही मशीन है। इस अंतर को जानबूझकर अनुप्रयोगों में ले जाया जाता है-पैडलॉक संकेतक प्रमाणीकरण की रिपोर्ट करता है, ढाल गोपनीयता की रिपोर्ट करता है, और वे अलग-अलग ग्लिफ हैं क्योंकि एक संदेश में दूसरे के बिना एक हो सकता है।
यह इस बात को भी सीमित करता है कि धारा 4 में घोषणा क्या वादा कर सकती है। एक एनपब और एक एमएल-केईएम कुंजी के बीच बंधन एक सेकप256के1 हस्ताक्षर है, इसलिए एक विरोधी जो उन्हें जाली बना सकता है वह अपनी खुद की एक कुंजी को प्रतिस्थापित कर सकता है। भविष्य के प्रतिद्वंद्वी के खिलाफ गोपनीयता एक के खिलाफ प्रामाणिकता के समान नहीं है।
10.3 मेटाडेटा
उपहार कवर भेजने वाले को छिपाता है, प्राप्तकर्ता एक एकल से परे p टैग, आंतरिक संदेश का प्रकार, और टाइमस्टैम्प. यह छिपाता नहीं है कि एक घटना मौजूद है, इसकी आकार, या जब एक रिले इसे प्राप्त किया गया. ट्रैफ़िक विश्लेषण इस डिजाइन के किसी भी हिस्से द्वारा संबोधित नहीं है.
10.4 ऑफ़लाइन मेष
निमचैट का ब्लुटुथ जाल परिवहन अपने स्वयं के हाथ मिलाने के साथ एक अलग प्रोटोकॉल है, और यह इस काम द्वारा कवर नहीं किया गया है। जाल पर संदेश शास्त्रीय हैं।
10. 5 पहले से भेजे गए संदेश
दोनों तरफ दर्ज किया गया सिफरटेक्स्ट स्थायी रूप से शास्त्रीय रहता है। यह पहले से मौजूद है और इसे फिर से सील नहीं किया जा सकता है। सुरक्षा उस संदेश से शुरू होती है जहां दोनों पक्षों के पास पोस्ट-क्वांटम कुंजी होती है, उस समय नहीं जब सुविधा को चालू किया गया था।
11विचार किए गए विकल्प
| दृष्टिकोण | क्यों नहीं। |
|---|---|
| पहचान कुंजी से पोस्ट-क्वांटम कुंजी प्राप्त करें | अस्वीकृत। व्युत्पत्ति एन. एस. ई. सी. पर एक सार्वजनिक एल्गोरिथ्म है, और एक क्वांटम विरोधी प्रकाशित एन. पी. यू. बी. से एन. एस. ई. सी. को पुनर्प्राप्त करता है, इसलिए शास्त्रीय आधे को तोड़कर इसके साथ पोस्ट-क्वांटम आधे पर हाथ रखता है। इसने इस पेपर में हर वितरण समस्या को हल किया और किसी के खिलाफ बचाव नहीं किया। धारा 3.1। |
| एन. आई. पी.-44 पर उपयोगकर्ता के अन्य उपकरणों को रूट भेजें। | अलग-अलग कपड़ों में एक ही कारण से अस्वीकार किया गया। शास्त्रीय-केवल कूटलेखन के तहत प्रेषित एक मूल किसी भी व्यक्ति द्वारा पुनर्प्राप्त किया जा सकता है जिसने उस संदेश को रिकॉर्ड किया और बाद में इसकी कुंजी को तोड़ दिया, जो कि रोकने के लिए मूल मौजूद है। |
| प्रत्येक उपकरण पर एक अलग से उत्पन्न एम. एल.-के. ई. एम. कुंजीपटल | अस्वीकृत। उपकरणों में अलग-अलग डिकैप्सुलेशन कुंजियाँ होंगी, और प्रति पहचान एक बदली जाने वाली घोषणा उन सभी को नहीं ले जा सकती है। सहकर्मी जो भी कुंजी अंत में प्रकाशित की गई थी उसे एन्क्रिप्ट करेंगे, और हर दूसरा उपकरण परिणाम को पढ़ने में असमर्थ होगा। प्रति पहचान एक मूल, धारा 3.2 के पथ से स्थानांतरित, वह है जो इससे बचता है। |
| रूट को पिन के नीचे लपेटें | इनकार किया गया है. एक चार-शब्द पिन एक ऑफ़लाइन हमलावर के खिलाफ 13 बिट के आसपास है जो प्लैट पंक्ति रखता है. इसे दो 256-बिट पथ के बगल में पेश करना गलत दर्शाता है कि सबसे कमजोर प्लैट क्या मूल्य है। |
| दोनों चाबियों को ले जाने के लिए एनपब का विस्तार करें | 1,184 बाइट्स एक साझा करने योग्य पहचानकर्ता नहीं है, और यह 32 बाइट्स के रूप में परिभाषित एक पते के प्रत्येक मौजूदा हमारे क्लाइंट के विश्लेषण को तोड़ देगा। |
| एक प्रमुख निर्देशिका सेवा | उस अधिकार को फिर से प्रस्तुत करता है जिससे बचने के लिए नेटवर्क मौजूद है। जो भी खोज का जवाब देता है वह तय करता है कि संदेश को कौन पढ़ सकता है। |
| प्रत्येक संदेश में कुंजी संलग्न करें | कुछ भी हल नहीं करता है: प्रसारक को इसकी आवश्यकता होती है प्राप्तकर्ता का पहले संदेश से पहले कुंजी, जो सटीक रूप से ऐसा मामला है जिसमें इसे ले जाने के लिए कोई पूर्व संदेश नहीं है। |
| इन-बैंड क्षमता वार्ता | एक डाउनग्रेड सतह बनाता है। एक हमलावर जो एक क्षमता ध्वज को हटा सकता है वह शास्त्रीय पथ को मजबूर करता है। |
| केवल मात्रा के बाद, कोई शास्त्रीय पैर नहीं | एक बहुत ही युवा प्राचीन के बदले में secp256k1 के दशकों का विश्लेषण छोड़ देता है। दोनों फेल है। |
12लागू करने के लिए Parity
Nymchat इस निर्माण के दो स्वतंत्र कार्यान्वयनों को शिपिंग करता है - वेब अनुप्रयोग के लिए जावास्क्रिप्ट में एक, मोबाइल अनुप्रयोगों के लिए एक डार्ट में एक, जिसमें एक स्क्रैच एमएल-केईएम-768 पोर्ट शामिल है।
डार्ट एम. एल.-के. ई. एम. कार्यान्वयन अधिकारी के खिलाफ मान्य है।
NIST ACVP
एमएल-केईएम-768 के लिए ज्ञात-उत्तर परीक्षण (ML-KEM-*-FIPS203)-25 की-जनरेशन, 25 एनकैप्सुलेशन और 10 डिकैप्सुलेशन मामले, अपने स्वयं के सूट के रूप में चलते हैं। वे वेक्टर हैं जिन्हें एन. आई. एस. टी. एक कार्यान्वयन को मान्य करने के लिए प्रकाशित करता है, इसलिए उन्हें पारित करना इस बात का प्रमाण है कि पोर्ट सही है, न केवल इस बात का प्रमाण है कि दोनों ग्राहक एक-दूसरे से सहमत हैं। इसके ऊपर, परीक्षण वैक्टरों की एक साझा स्थिरता-बीज व्युत्पत्ति, एनकैप्सुलेशन, दोनों पेलोड प्रारूप, और पूर्ण उपहार आवरण-जावास्क्रिप्ट संदर्भ से उत्पन्न होते हैं और दोनों परीक्षण सुइट्स द्वारा जांचे जाते हैं। मूल रहस्य उस स्थिरता को प्रतिस्थापित करने के बजाय बढ़ाता हैः रूट से सीड, रूट से कीपेयर, रूट का सार्वजनिक फिंगरप्रिंट, और व्युत्पन्न कुंजी, नॉनस और बाहरी परत से संबंधित डेटा अपने स्वयं के वैक्टर हैं, इसलिए दोनों ग्राहक इस बारे में असहमत नहीं हो सकते हैं कि क्या एक
nympq1… कोड का अर्थ है या उन बाइट्स के बारे में जिनके साथ एक संदेश को सील किया जाता है। किसी भी कार्यान्वयन में एक विचलन एक संदेश उत्पन्न करने के बजाय बिल्ड को विफल कर देता है जिसे दूसरा ग्राहक नहीं खोल सकता है।
यह एक डिवाइस को बताता है “यह एक अलग है “ से मेरा जड़ है “यह एक अलग है “, और एक क्लाइंट जो किसी अन्य क्लाइंट के उंगली के निशान को पुनरावृत्ति नहीं कर सकता था, वह एक बिल्कुल भी रिकॉर्ड के रूप में एक पूरी तरह से अच्छा रिकॉर्ड पढ़ेगा - और फिर, अनुभाग 3.3 का पालन करते हुए, एक दूसरा जड़ खींचें और पहचान विभाजित करें।
निमचैट है खुला स्रोत AGPL-3.0 के तहत. यहां वर्णित क्रिप्टोग्राफिक कोर
js/nym-crypto.js और js/modules/pq.js वेब ग्राहक में, और
lib/core/crypto/ के साथ lib/features/identity/pq_registry.dart मोबाइल ग्राहकों में।
संक्षिप्त, गैर-तकनीकी व्याख्या के लिए, देखें क्वांटम-प्रतिरोधी कूटलेखन पर ज्ञान आधार पृष्ठ.