RSA签名算法
文章目錄
- 前言
- 一、RSA是什么?
前言
提示:以下是本篇文章正文內容,下面案例可供參考
一、RSA是什么?
RSA數字簽名算法的過程為:A對明文m用解密變換作: (公鑰用來加密,私鑰用來解密,數字簽名是用私鑰完成的,所以稱為解密變換,這與onu sdk中一致)so Dk (m)=md mod n,其中d,n為A的私人密鑰,只有A才知道它;B收到A的簽名后,用A的公鑰和加密變換得到明文,因: Ek(s)= Ek(Dk (m))= (md)e mod n,又 deo1 mod j(n)即de=lj(n)+1,根據歐拉定理mj(n)=1 mod n,所以Ek(s)=mlj(n)+1=[mj(n)]em=m mod n。若明文m和簽名s一起送給用戶B,B可以確信信息確實是A發送的。同時A也不能否認送給這個信息,因為除了A本人外,其他任何人都無法由明文m產生s.因此RSA數字簽名方案是可行的。
但是RSA數字簽名算法存在著因計算方法本身同構造成簽名易被偽造和計算時間長的弱點,因此實際對文件簽名前,需要對消息做MD5變換。
MD5函數是一種單向散列函數,它將任意長度的消息壓縮成128位的消息摘要。應用MD5的單向性(即給定散列值,計算消息很難)和抗碰撞性(即給定消息M,要找到另一消息M’ 并滿足兩者的散列值很難),可以實現信息的完整性檢驗。另外該函數的設計不基于任何假設和密碼體制而直接構造,執行的速度快,是一種被廣泛認可的單向散列算法。T
總結
- 上一篇: 10停止nginx命令 win_Linu
- 下一篇: 1115 Counting Nodes