
Optimizations for Pairing-Based Cryptography
इस रिपॉज़िटरी में कार्यशील Rust कोड है जो पेयरिंग-आधारित क्रिप्टोग्राफी में अनुकूलन को कवर करने वाली ब्लॉग पोस्टों की एक चालू श्रृंखला से मेल खाता है, जिसमें BLS12-381 को संदर्भ वक्र के रूप में उपयोग किया गया है।
कृपया ध्यान दें: यह कोड केवल शैक्षिक उद्देश्यों के लिए है, इसका सुरक्षा ऑडिट नहीं किया गया है और यह उत्पादन के लिए उपयुक्त नहीं है। अपने जोखिम पर उपयोग करें।
यह पोस्ट मॉड्यूलर Montgomery अंकगणित को शुरू से अंत तक कवर करेगी, जिसमें संदर्भ, विकल्प, सिद्धांत और Rust में व्यावहारिक कार्यशील कोड शामिल है जो सामान्य Big Integer कार्यान्वयन की तुलना में 9X तेज़ चलता है। अगली ब्लॉग पोस्ट (अपेक्षाकृत) भारी गुणन रूटीन को bare-metal x86-64 असेंबली भाषा में और अधिक अनुकूलित करेगी।
mont1 उपनिर्देशिका में है: https://github.com/nccgroup/pairing/tree/main/mont1यह दूसरी पोस्ट Rust में विकसित Montgomery गुणन एल्गोरिदम को और आगे ले जाती है ताकि वह अधिकतम प्रदर्शन प्राप्त कर सके जो एक आधुनिक x86-64 मशीन असेंबली भाषा में हस्तलिखित कार्यान्वयन से दे सकती है। बढ़ी हुई समांतरता को सक्षम करने वाले कई विशेष निर्देशों और उन्नत माइक्रो-आर्किटेक्चरल विशेषताओं के परिणामस्वरूप, Montgomery गुणन रूटीन सामान्य Big Integer कार्यान्वयन की तुलना में 15X से अधिक तेज़ चलता है।
mont2 उपनिर्देशिका में है: https://github.com/nccgroup/pairing/tree/main/mont2कॉपीराइट 2021 Eric Schorn; 3-Clause BSD लाइसेंस के अंतर्गत लाइसेंस प्राप्त।