RSA加密算法

1、密碼與加密

  傳統密碼加密算法是祕密的python

  現代密碼系統加密算法是公開的,密鑰是祕密的算法

    • 對稱加密,加密解密都是一個密鑰
    • 非對稱加密,加密解密是不一樣的密鑰

2、RSA加密算法

一、RSA非對稱加密系統

  公鑰:用來加密,是公開的函數

  私鑰:用來解密,是私有的測試

  

二、RSA加密算法過程

  • 隨機選取兩個質數p和q
  • 計算n=pq
  • 選取一個與φ (n)互質的小奇數e,φ (n)=(p-1)(q-1)
  • 對模φ (n),計算e的乘法逆元d,即知足(e*d) mod φ (n) = 1
  • 公鑰(e, n)    私鑰(d, n)

  加密過程:c = (m^e) mod n加密

  解密過程:m = (c^d) mod nspa

三、RSA加密算法測試

In[1]:p = 53
In[2]:q = 59
In[3]:n = p * q
In[4]:fai = (p-1)*(q-1)   # 歐拉函數
In[5]:e = 3   # 與fai互質的小奇數
In[6]:d = 2011  # 求得逆元d,知足(e*d)mod fai = 1
In[7]:(e*d) % fai
Out[9]: 1
In[10]:print(e,n)   # 這兩個組成公鑰
3 3127
In[11]:print(d,n)  # 這兩個組成私鑰 
2011 3127
In[12]:m = 87   # 定義要傳輸的明文
In[13]:c = (m**e) % n   # 加密獲得密文
In[14]:c
Out[14]: 1833
In[15]:(c**d) % n   # 解密獲得明文
Out[15]: 87
相關文章
相關標籤/搜索