पोस्ट-क्वांटम एन्क्रिप्शन एल्गोरिदम Kyber के कार्यान्वयन में भेद्यता

किबर एन्क्रिप्शन एल्गोरिदम के कार्यान्वयन में, जिसने क्वांटम कंप्यूटर पर क्रूर बल के प्रतिरोधी क्रिप्टोग्राफ़िक एल्गोरिदम की प्रतिस्पर्धा जीती, एक भेद्यता की पहचान की गई जो साइड-चैनल हमलों को डिक्रिप्शन के दौरान संचालन के समय को मापने के आधार पर गुप्त कुंजी को फिर से बनाने की अनुमति देती है। हमलावर द्वारा प्रदान किया गया सिफरटेक्स्ट. समस्या CRYSTALS-Kyber KEM कुंजी एनकैप्सुलेशन तंत्र के संदर्भ कार्यान्वयन और सिग्नल मैसेंजर में उपयोग की जाने वाली pqcrypto लाइब्रेरी सहित Kyber समर्थन के साथ कई तृतीय-पक्ष एन्क्रिप्शन लाइब्रेरी दोनों को प्रभावित करती है।

भेद्यता का सार, जिसे कोड नाम KyberSlash प्राप्त हुआ, एक संदेश को डिकोड करने की प्रक्रिया में डिवीजन ऑपरेशन "t = (((t < 1) + KYBER_Q/2)/KYBER_Q) और 1;" के उपयोग में है , जिसमें लाभांश में "डबल" प्रकार के साथ गुप्त मान "t" होता है, और विभाजक सुप्रसिद्ध सार्वजनिक मान KYBER_Q है। समस्या यह है कि डिविजन ऑपरेशन का समय स्थिर नहीं है, और विभिन्न वातावरणों में डिविजन के लिए निष्पादित सीपीयू चक्रों की संख्या इनपुट डेटा पर निर्भर करती है। इस प्रकार, संचालन समय में परिवर्तन के आधार पर, विभाजन में उपयोग किए गए डेटा की प्रकृति का अंदाजा लगाया जा सकता है।

क्रिप्टोग्राफी के क्षेत्र में जाने-माने विशेषज्ञ डेनियल जे. बर्नस्टीन, सबूत का एक कामकाजी प्रदर्शन तैयार करने में सक्षम थे कि हमले को व्यवहार में अंजाम दिया जा सकता है। आयोजित किए गए तीन प्रयोगों में से दो में, रास्पबेरी पाई 2 बोर्ड पर कोड चलाते समय, डेटा डिकोडिंग समय माप के आधार पर Kyber-512 निजी कुंजी को पूरी तरह से फिर से बनाना संभव था। इस विधि को Kyber-768 और Kyber-1024 कुंजियों के लिए भी अनुकूलित किया जा सकता है। किसी हमले को सफलतापूर्वक अंजाम देने के लिए, यह आवश्यक है कि हमलावर द्वारा निर्दिष्ट सिफरटेक्स्ट को उसी कुंजी जोड़ी का उपयोग करके संसाधित किया जाए और ऑपरेशन के निष्पादन समय को सटीक रूप से मापा जा सके।

कुछ पुस्तकालयों में एक और रिसाव (KyberSlash2) की पहचान की गई है, जो विभाजन करते समय एक गुप्त मूल्य के उपयोग के कारण भी होता है। पहले विकल्प से अंतर एन्क्रिप्शन चरण (पॉली_कंप्रेस और पॉलीवेक_कंप्रेस फ़ंक्शंस में) पर कॉल तक आते हैं, न कि डिक्रिप्शन के दौरान। हालाँकि, दूसरा विकल्प किसी हमले के लिए केवल उन मामलों में उपयोगी हो सकता है जहां प्रक्रिया का उपयोग पुन: एन्क्रिप्शन संचालन में किया जाता है जिसमें सिफरटेक्स्ट का आउटपुट गोपनीय माना जाता है।

निम्नलिखित पुस्तकालयों में भेद्यता पहले ही ठीक कर दी गई है:

  • zig/lib/std/crypto/kyber_d00.zig (22 दिसंबर),
  • पीक्यू-क्रिस्टल/किबर/रेफ (30 दिसंबर),
  • सिम्बॉलिकसॉफ्ट/किबर-के2एसओ (19 दिसंबर),
  • क्लाउडफ्लेयर/सर्कल (8 जनवरी),
  • एडब्ल्यूएस/एडब्ल्यूएस-एलसी/क्रिप्टो/किबर (4 जनवरी),
  • liboqs/src/kem/kyber (8 जनवरी)।

पुस्तकालय प्रारंभ में भेद्यता से प्रभावित नहीं:

  • बोरिंगएसएसएल/क्रिप्टो/किबर,
  • filippo.io/mlkem768,
  • फॉर्मोसा-क्रिप्टो/libjade/tree/main/src/crypto_kem,
  • किबर/सामान्य/amd64/avx2,
  • फॉर्मोसा-क्रिप्टो/libjade/tree/main/src/crypto_kem/kyber/common/amd64/ref,
  • पीक्यू-क्रिस्टल/किबर/एवीएक्स2,
  • pqclean/crypto_kem/kyber*/avx2.

पुस्तकालयों में भेद्यता बरकरार रहती है:

  • antontutoveanu/क्रिस्टल-किबर-जावास्क्रिप्ट,
  • आर्गाइल-सॉफ़्टवेयर/किबर,
  • डेबियन/src/liboqs/अस्थिर/src/kem/kyber,
  • कुडेलस्कीसुरक्षा/क्रिस्टल-गो,
  • mupq/pqm4/crypto_kem/kyber* (20 दिसंबर को, भेद्यता का केवल 1 संस्करण ठीक किया गया था),
  • PQClean/PQClean/crypto_kem/kyber*/aarch64,
  • PQClean/PQClean/crypto_kem/kyber*/clean,
  • रैंडमबिट/बॉटन (20 दिसंबर को, केवल 1 भेद्यता तय की गई थी),
  • रस्टपीक्यू/पीक्यूक्रिप्टो/पीक्यूक्रिप्टो-किबर (5 जनवरी को लिबसिग्नल में एक फिक्स जोड़ा गया था, लेकिन अभी तक पीक्यूक्रिप्टो-किबर में भेद्यता को ठीक नहीं किया गया है)।

स्रोत: opennet.ru

एक टिप्पणी जोड़ें