RSA सिफर एन्क्रिप्शन
इस अध्याय में, हम आरएसए सिफर एन्क्रिप्शन के विभिन्न कार्यान्वयन और उसी के लिए शामिल कार्यों पर ध्यान केंद्रित करेंगे। आप आरएसए सिफर एल्गोरिथ्म कार्यान्वयन को लागू करने के लिए इस अजगर फ़ाइल को संदर्भित या शामिल कर सकते हैं।
एन्क्रिप्शन एल्गोरिथ्म के लिए शामिल मॉड्यूल निम्नानुसार हैं -
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"
हमने बेहतर सुरक्षा उद्देश्य के लिए SHA-256 के रूप में हैश मूल्य को इनिशियलाइज़ किया है। हम निम्नलिखित कोड का उपयोग करके नई कुंजी या सार्वजनिक और निजी कुंजी की एक जोड़ी बनाने के लिए एक फ़ंक्शन का उपयोग करेंगे।
def newkeys(keysize):
random_generator = Random.new().read
key = RSA.generate(keysize, random_generator)
private, public = key, key.publickey()
return public, private
def importKey(externKey):
return RSA.importKey(externKey)
एन्क्रिप्शन के लिए, निम्न फ़ंक्शन का उपयोग किया जाता है जो RSA एल्गोरिदम का अनुसरण करता है -
def encrypt(message, pub_key):
cipher = PKCS1_OAEP.new(pub_key)
return cipher.encrypt(message)
दो पैरामीटर अनिवार्य हैं: message तथा pub_keyजो सार्वजनिक कुंजी को संदर्भित करता है। एन्क्रिप्शन के लिए एक सार्वजनिक कुंजी का उपयोग किया जाता है और डिक्रिप्शन के लिए निजी कुंजी का उपयोग किया जाता है।
एन्क्रिप्शन प्रक्रिया के लिए पूरा कार्यक्रम नीचे उल्लिखित है -
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA512, SHA384, SHA256, SHA, MD5
from Crypto import Random
from base64 import b64encode, b64decode
hash = "SHA-256"
def newkeys(keysize):
random_generator = Random.new().read
key = RSA.generate(keysize, random_generator)
private, public = key, key.publickey()
return public, private
def importKey(externKey):
return RSA.importKey(externKey)
def getpublickey(priv_key):
return priv_key.publickey()
def encrypt(message, pub_key):
cipher = PKCS1_OAEP.new(pub_key)
return cipher.encrypt(message)