
समान-नॉन्स सिफरटेक्स्ट एकत्र करके AES-GCM नॉन्स-पुनः उपयोग शोषण का प्रदर्शन करता है, जिससे कमजोर अनुप्रयोगों में GHASH कुंजी रिसाव, संदेश जालसाजी और कुंजी पुनर्प्राप्ति होती है।
# aes_gcm_nonce_reuse_sim.py - Simulated encryption oracle with fixed nonce
from Crypto.Cipher import AES
import os
key = os.urandom(16)
nonce = b'\x00' * 12 # ALWAYS SAME NONCE
def encrypt(plaintext):
cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
ct, tag = cipher.encrypt_and_digest(plaintext)
return ct, tag
# Vulnerable: attacker can obtain many ciphertexts with same nonce
ct1, tag1 = encrypt(b"Secret message 1")
ct2, tag2 = encrypt(b"Secret message 2")
print("Ciphertexts collected. Nonce reuse allows key recovery and forgery.")
एक एप्लिकेशन निश्चित नॉन्स के साथ AES‑GCM एन्क्रिप्शन का उपयोग करता है (या नॉन्स को दोहराता है)। यह एक हमलावर को, जो समान नॉन्स के अंतर्गत कई सिफरटेक्स्ट देखता है, प्रमाणीकरण कुंजी को पुनर्प्राप्त करने, मनमाने संदेशों की जालसाज़ी करने और संभावित रूप से एन्क्रिप्शन कुंजी को पुनर्प्राप्त करने की अनुमति देता है।
खतरे को देखने के लिए सिमुलेशन चलाएँ:
pip install pycryptodome
python aes_gcm_nonce_reuse_sim.py
प्रोग्राम आउटपुट करता है कि समान नॉन्स के साथ सिफरटेक्स्ट उत्पन्न किए गए, जो भेद्यता को उजागर करता है।