آموزش رمزگشایی رمز RSA در رمزنگاری با پایتون

3 سال پیش
آموزش رمزگشایی رمز RSA در رمزنگاری با پایتون

آموزش رمزگشایی رمز RSA در رمزنگاری با پایتون

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش رمزگشایی رمز RSA در رمزنگاری با پایتون خواهیم پرداخت.

پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون

این درس ادامه درس قبلی است که ما مرحله به مرحله اجرای رمزنگاری با استفاده از الگوریتم RSA را دنبال کردیم و به طور مفصل در مورد آن بحث کردیم.

عملکرد مورد استفاده برای رمزگشایی متن رمزنگاری به شرح زیر است –

def decrypt(ciphertext, priv_key):
   cipher = PKCS1_OAEP.new(priv_key)
   return cipher.decrypt(ciphertext)

 

برای رمزنگاری کلید عمومی یا رمزنگاری کلید نامتقارن، حفظ دو ویژگی مهم یعنی احراز هویت و مجوز مهم است.

مجوز فرآیندی است که تأیید می کند فرستنده تنها کسی است که پیام را ارسال کرده است. کد زیر این را توضیح می دهد –

def sign(message, priv_key, hashAlg="SHA-256"):
   global hash
   hash = hashAlg
   signer = PKCS1_v1_5.new(priv_key)
   
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.sign(digest)

 

احراز هویت

احراز هویت با روش تأیید امکان پذیر است که به شرح زیر توضیح داده می شود –

def verify(message, signature, pub_key):
   signer = PKCS1_v1_5.new(pub_key)
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.verify(digest, signature)

 

امضای دیجیتال همراه با مشخصات فرستنده و گیرنده تأیید می شود. این باعث افزایش وزن بیشتر برای اهداف امنیتی می شود.

رمزگشایی رمز RSA

برای رمزگشایی رمز 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"

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)

def decrypt(ciphertext, priv_key):
   cipher = PKCS1_OAEP.new(priv_key)
   return cipher.decrypt(ciphertext)

def sign(message, priv_key, hashAlg = "SHA-256"):
   global hash
   hash = hashAlg
   signer = PKCS1_v1_5.new(priv_key)
   
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.sign(digest)

def verify(message, signature, pub_key):
   signer = PKCS1_v1_5.new(pub_key)
   if (hash == "SHA-512"):
      digest = SHA512.new()
   elif (hash == "SHA-384"):
      digest = SHA384.new()
   elif (hash == "SHA-256"):
      digest = SHA256.new()
   elif (hash == "SHA-1"):
      digest = SHA.new()
   else:
      digest = MD5.new()
   digest.update(message)
   return signer.verify(digest, signature)

 

منبع.

لیست جلسات قبل آموزش رمزنگاری با پایتون 

  1. آموزش رمزنگاری با پایتون
  2. بررسی اجمالی آموزش رمزنگاری با پایتون 
  3. آموزش رمزنگاری دو گانه در رمزنگاری با پایتون
  4. مرور و نصب پایتون
  5. آموزش رمز معکوس در رمزنگاری با پایتون
  6. آموزش رمز سزار در رمزنگاری با پایتون
  7. آموزش الگوریتم ROT13 در رمزنگاری با پایتون 
  8. آموزش رمزنگاری جابجایی در رمزنگاری با پایتون
  9. آموزش رمزنگاری با رمزنگاری جابجایی
  10. آموزش رمزگذاری فایل ها با رمزنگاری در پایتون
  11. آموزش رمزگشایی فایل ها با رمزنگاری در پایتون
  12. آموزش رمزگذاری و رمزگشایی Base64 در رمزنگاری با پایتون 
  13. آموزش فرایند XOR در رمزنگاری با پایتون
  14. آموزش رمز ضربی در رمزنگاری با پایتون
  15. آموزش رمز مستوی در رمزنگاری با پایتون
  16. آموزش هک کردن رمز تک حروف در رمزنگاری با پایتون
  17. آموزش رمز جایگزینی ساده در رمزنگاری با پایتون
  18. آموزش تست رمزگذاری جایگزینی ساده در رمزنگاری با پایتون
  19. آموزش رمزگشایی از رمزنگاری جایگزینی ساده در رمزنگاری با پایتون
  20. آموزش ماژول های رمزنگاری پایتون
  21. درک رمز ویژنر در رمزنگاری با پایتون
  22. آموزش پیاده سازی رمز ویژنر در رمزنگاری با پایتون
  23. آموزش اجرای رمز یکبار پد در رمزنگاری با پایتون
  24. آموزش رمزنگاری متقارن و نامتقارن در رمزنگاری با پایتون
  25. آموزش الگوریتم RSA در رمزنگاری با پایتون
  26. آموزش ایجاد کلیدهای RSA در رمزنگاری با پایتون
  27. آموزش رمزگذاری رمز RSA در رمزنگاری با پایتون
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه