7-2 RSA 數位簽章
利用 RSA 公開鑰匙系統製作出來的數位簽章機制,就稱為『RSA 數位簽章』(RSA Digital Signature),其實RSA 演算法一開始就是因為數位簽章的需求而發展出來的,有關 RSA 數位簽章的運作程序,請參考圖 7-1 所示。至於 RSA 演算法已在第四章詳細介紹過,在此僅就演算法植入數位簽章作簡單敘述。RSA 數位簽章的公開鑰匙與私有鑰匙製作如下:
7-2-1 RSA 簽章演算法 RSA 數位簽章可選擇不同的雜湊演算法來實現,譬如 MD4、MD5 或 SHA-1。將訊息經過雜湊函數計算後,再經過 RSA 演算法加密(私有鑰匙),便可得到數位簽章的簽署碼;接收端將此數位簽章碼解密後(公開鑰匙),與接收到的訊息所計算出的雜湊值比較,便可辨其『完整性』與『不可否認性』。RSA 數位簽章的演算如下:(如圖 7-1 所示)
如果 H(M) = H(M’),則確認成功;否則確認失敗。 7-2-2 RSA 安全性考量 數位簽章的安全性考量,與訊息確認碼(MAC)一樣,必須考慮到破解鑰匙的暴力攻擊法、以及偽造訊息的生日攻擊法。但對於數位簽章有一個更重要的特點,它的訊息主要以明文方式傳送(雜湊演算法也是公開的),而且簽署後的簽章碼(Sig(M))必須保持一段長時間的使用(一般都是一年);在這一段時間內,破解者可以利用已知的明文來測試各種可能發生的鑰匙(暴力攻擊法),並比對現有的簽章碼。 數位簽章的暴力攻擊法,亦如同於 MAC 的攻擊方式,如 6-6-1 節所示。攻擊者必須收集多筆明文與簽署碼的配對({M, Sig(M)},才可以嘗試出加密的私有鑰匙;然而,利用私有鑰匙簽署的訊息並不多,因此,也很難利用暴力攻擊法來搜尋出私有鑰匙。但話說回來,如果同一把鑰匙簽署多筆文件之後,他被破解的機率也就越高,這也是 CA 中心(7-6 節介紹或第九章介紹)必須擁有多組鑰匙配對的原因。另一方面,以密碼學的概念而言,並沒有無法破解的加密演算法,祇不過破解的效益是否合乎『計算上的成本』而已。由此可見,簽署數位簽章的鑰匙必須足夠長,以增加破解所需要的成本,進而減低破解者的意願。增加鑰匙長度最起碼的條件是,RSA 演算法中的質數 p 和 q 必須夠大,使得要利用他們的乘積 n,分解出相對應的 p 與 q 變得非常困難。一般就短時間(大約一年)的安全性考量,n 不得少於 1024 個位元;至於長時間的安全性考量,n 必須在 2048 位元以上。 對於生日攻擊法而言,攻擊者並不需要去破解加密鑰匙,只要能找出另一個偽造明文,而能得到出相同的簽署碼,就算破解成功(如 6-6-2 節說明)。因此,增加簽署碼的長度,即是抗拒生日攻擊法的不二法門;而延長簽署碼長度的方法,便是選用較長雜湊值的演算法。 另外,採用 RSA 數位簽章時必須注意下列事件,才不容易被詐騙或破解:
|
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|