CA證書伺服器(2)非對稱式加密

科技小能手發表於2017-11-15

在上篇博文中給大家留了一道作業,現在可以公佈答案了,在那道題目的4個選項中,也只有C算是比較靠譜,即“甲選取金鑰後通過雙方事先已有的共享金鑰加密後通過網路傳送給乙”,但這種方法中存在的問題也很明顯,那個“事先已有的金鑰”又是如何安全地在通訊雙方之間傳送的呢?

只靠對稱式加密演算法自身是無法解開這個金鑰管理的死結了,所以才又產生了另外一類與之完全不同的加密演算法——非對稱式加密。

非對稱加密就是為了解決對稱式加密的金鑰分配問題而產生的,非對稱式加密也稱為公鑰密碼系統,它要求金鑰必須成對出現,一個為公開金鑰(簡稱公鑰),一個為私有金鑰(簡稱私鑰),而且這兩個金鑰不能從其中一個推匯出另一個。

公鑰要釋出出去,私鑰則要保證絕對的安全,用公鑰加密的資訊只能用相應的私鑰解密,反之亦然。

使用非對稱式加密演算法進行資料加密時,傳送方使用接收方的公鑰加密資料,接收方使用自己的私鑰解密資料。如傳送方A要給接收方B傳送資料,其加/解密流程如下圖所示。

非對稱式加密的最大優點是金鑰管理簡單,相比對稱式加密具有更高的安全性,但它也有缺點,那就是因為演算法複雜,所以通訊效率不高,因而主要用於對小資料塊的加密。

既然對稱式加密的效率高,但金鑰管理困難,而非對稱式加密金鑰管理簡單,效率卻低,那將這兩種加密演算法結合起來使用是不是效果會更好呢?

在實踐中也正是這樣使用:資料加密採用對稱式加密,而用非對稱加密傳送對稱加密的金鑰。

 正是通過非對稱式加密才最終解決了對稱式加密的金鑰管理難題。

RSA是最常用的非對稱加密演算法,由於軟考中涉及這個演算法的考題比較多,因而對它的基本原理做下簡單介紹:

  1. 選取2個素數p和q。
  2. 計算n=p*q,r=(p-1)*(q-1)。
  3. 隨機選取一個與r互質的整數d作為私鑰。
  4. 計算公鑰e,使得(e*d)mod r =1,即e和d的乘積,除以r,餘數為1。
RSA演算法也是先要將資料進行分組然後再分別進行加密,資料分組的長度是由n決定的,分組的長度必須小於等於log2n。
下面看幾道軟考的相關考題:
 
1、按照RSA演算法,若選兩奇數p=5,q=3,公鑰e=7,則私鑰d為  
A.6    B.7     C.8     D.9
 
試題分析:根據RSA演算法原理,r=(p-1)*(q-1),即r=4*2=8,然後再根據(e*d)mod r =1的原則,將4個選項中的數值分別代入公式中計算,答案很明顯就是7了。
 
2、RSA是一種具有代表性的公鑰加密方法,如果選定了用於加解密的兩個素數分別為37、53,則每個分組的位數是     
A.10   B.12   C.18   D.25
 
試題分析:p=37,q=53,則n=37*53=1961,按照分組的大小必須小於等於log2n的原則,2的10次方是1024,2的11次方是2048,1961介於1024和2048之間,所以分組的長度應該介於10位和11位之間,分組長度只能是整數位,所以也就是10位了。
 
 
瞭解了非對稱式加密之後,我們再來思考一個問題,在我們上面所講的加密過程中,都是用公鑰加密,用私鑰解密,那能否反過來,用私鑰加密,而用公鑰解密呢?
比如下面這道軟考的題目:
公鑰體系中,私鑰用於 (49) ,公鑰用於 (50) 
49)A.解密和簽名   B.加密和簽名   C.解密和認證   D.加密和認證
50)A.解密和簽名  B.加密和簽名   C.解密和認證   D.加密和認證
這道題目的答案該選誰,簽名和認證又是什麼,呵呵,且聽下文分解。
本文轉自 yttitan 51CTO部落格,原文連結:http://blog.51cto.com/yttitan/1186191


相關文章