
सी लाइब्रेरी जो FrodoKEM को लागू करती है, जो Learning with Errors समस्या पर आधारित एक पोस्ट-क्वांटम कुंजी एनकैप्सुलेशन तंत्र है, जिसमें AES और SHAKE के लिए वेरिएंट शामिल हैं, साथ ही एफेमरल और मानक मोड भी शामिल हैं।
यह C लाइब्रेरी FrodoKEM को लागू करती है, जो सु-अध्ययित Learning with Errors (LWE) समस्या [1,3] पर आधारित एक IND-CCA सुरक्षित key encapsulation (KEM) प्रोटोकॉल है, जिसका सामान्य, "बीजगणितीय रूप से असंरचित" जालकों पर अनुमानित-कठिन समस्याओं से घनिष्ठ संबंध है। इस पैकेज में Python संदर्भ कार्यान्वयन भी शामिल हैं। FrodoKEM को क्वांटम कंप्यूटर हमलों के विरुद्ध सुरक्षित होने का अनुमान है।
FrodoKEM में दो मुख्य प्रकार हैं:
eFrodoKEM के विपरीत, मानक FrodoKEM गुप्त और त्रुटि मैट्रिक्स के नमूने के लिए seed उत्पन्न करने हेतु एक बड़ा seed उपयोग करता है, और encapsulation और decapsulation में एक हैशिंग गणना में एक अतिरिक्त salt शामिल करता है। ये प्रतिउपाय मानक FrodoKEM को कुछ multi-ciphertext हमलों से सुरक्षित रखते हैं। इन दो प्रकारों के बारे में अधिक विवरण के लिए [3] देखें।
विशेष रूप से, इस लाइब्रेरी में सार्वजनिक मैट्रिक्स "A" के निर्माण के लिए AES128 का उपयोग करते हुए निम्नलिखित KEM योजनाएँ शामिल हैं:
और सार्वजनिक मैट्रिक्स "A" के निर्माण के लिए SHAKE128 का उपयोग करते हुए निम्नलिखित KEM योजनाएँ:
लेबल "eFrodoKEM" क्षणिक प्रकारों से मेल खाता है।
लाइब्रेरी को FrodoKEM टीम और Microsoft Research द्वारा प्रयोग के उद्देश्यों के लिए विकसित किया गया था।
common फ़ोल्डर: यादृच्छिक फ़ंक्शन, AES और SHA-3 के कार्यान्वयन।eFrodoKEM फ़ोल्डर: eFrodoKEM के C और Python3 कार्यान्वयन।estimates फ़ोल्डर: [3] में रिपोर्ट किए गए FrodoKEM के cryptanalysis अनुमान।FrodoKEM फ़ोल्डर: मानक FrodoKEM के C और Python3 कार्यान्वयन।LICENSE: MIT लाइसेंस फ़ाइल।README.md: यह readme फ़ाइल।FrodoKEM लाइब्रेरी x64, x86, ARM, PowerPC और s390x प्रोसेसर सहित विभिन्न प्रकार के प्लेटफ़ॉर्म पर समर्थित है जो Windows, Linux या macOS चलाते हैं, और little-endian और big-endian दोनों प्रारूपों का समर्थन करती है। हमने लाइब्रेरी का परीक्षण Microsoft Visual Studio, GNU GCC और clang के साथ किया है।
यह सॉफ़्टवेयर MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है; विवरण के लिए LICENSE फ़ाइल देखें। Python3 कार्यान्वयन Creative Commons Zero v1.0 Universal लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। इसमें कुछ तृतीय-पक्ष मॉड्यूल शामिल हैं जो अलग तरीके से लाइसेंस प्राप्त हैं। विशेष रूप से:
common/aes/aes_c.c: सार्वजनिक डोमेनcommon/aes/aes_ni.c: सार्वजनिक डोमेनcommon/sha3/fips202.c: सार्वजनिक डोमेनcommon/sha3/fips202x4.c: सार्वजनिक डोमेनcommon/sha3/keccak4x: इस फ़ोल्डर की सभी फ़ाइलें सार्वजनिक डोमेन हैं (CC0), को छोड़करcommon/sha3/keccak4x/brg_endian.h जो Brian Gladman द्वारा कॉपीराइट है और BSD 3-clause लाइसेंस के साथ आती है।<FrodoKEM_variant>/tests/ds_benchmark.h: सार्वजनिक डोमेन<FrodoKEM_variant>/tests/PQCtestKAT_kem<#>.c: Lawrence E. Bassham द्वारा कॉपीराइट<FrodoKEM_variant>/tests/PQCtestKAT_kem<#>_shake.c: Lawrence E. Bassham द्वारा कॉपीराइट<FrodoKEM_variant>/tests/rng.c: Lawrence E. Bassham द्वारा कॉपीराइट[1] Erdem Alkim, Joppe W. Bos, Léo Ducas, Karen Easterbrook, Brian LaMacchia, Patrick Longa, Ilya Mironov, Michael Naehrig, Valeria Nikolaenko, Chris Peikert, Ananth Raghunathan, और Douglas Stebila,
"FrodoKEM: Learning With Errors Key Encapsulation". NIST पोस्ट-क्वांटम मानकीकरण परियोजना के लिए प्रस्तुति, 2021-2023। FrodoKEM का round 3 विनिर्देश यहाँ उपलब्ध है।
[2] Joppe W. Bos, Craig Costello, Léo Ducas, Ilya Mironov, Michael Naehrig, Valeria Nikolaenko, Ananth Raghunathan, और Douglas Stebila,
"Frodo: Take off the ring! Practical, quantum-secure key exchange from LWE".
ACM CCS 2016, 2016। प्रीप्रिंट संस्करण यहाँ उपलब्ध है।
[3] Lewis Glabush, Patrick Longa, Michael Naehrig, Chris Peikert, Douglas Stebila, और Fernando Virdia, "FrodoKEM: A CCA-Secure Learning With Errors Key Encapsulation Mechanism". IACR Communications in Cryptology (प्रकाशन हेतु), 2025।
इस परियोजना ने Microsoft Open Source Code of Conduct को अपनाया है। अधिक जानकारी के लिए Code of Conduct FAQ देखें या किसी अतिरिक्त प्रश्न या टिप्पणी के लिए [email protected] से संपर्क करें।