數字簽名(digital signature):
指附加在某一個電子文檔(例如word文檔)中的一組代碼,它是利用密碼技術對該電子文檔進行認證造成的,用於標識簽名者的身份以及簽名者對電子文檔的承認,並能別接收者用來驗證該電子文檔在傳輸過程當中是否被篡改或僞造。git
數字簽名的特色及要求
①可信性:簽名使文件的接收者相信簽名者是慎重地在文件上簽字的。算法
② 不可重用性:簽名不可重用,即同一消息在不一樣時刻的簽名是有區別的。加密
③不可改變性:文件簽名後,文件不能改變,若是改變,則能夠檢查出被改變。code
④不可僞造性:簽名可以證實是簽名者而不是其餘人在文件上簽名,任何人都不能成功僞造簽名。blog
⑤不能否認性:簽名者否定本身的簽名時,簽名接收者能夠請求第三方可信中心進行仲裁。文檔
① 直接簽名it
A→B(主要形式)
② 仲裁簽名請求
A→X→B (簽名者→仲裁者→接收者)
一個數字簽名方案是一個五元組(M,S,K,Sign,Ver)密碼
① 參數im
M:消息的集合
S:簽名的集合
K:密鑰的集合
Sign:簽名算法集合
Ver:驗證算法集合
② 簽名
對於一個簽名者的公鑰私鑰(k1,k2)∈K,對應一個簽名算法signk2∈Sign和驗證算法verk1∈Ver
對於待簽名消息m∈M,簽名者使用本身的密鑰k2進行以下操做
Signk2:M->S
s=Signk2(m)
簽名者將(m,s)發送給接收者(固然是加密後發送)
② 驗證
接受者使用簽名者的公鑰k1和公開的驗證算法進行以下驗證操做:
即將k1,m,s帶入驗證式子,若是成立,則接受簽名是正確簽名;若是不成立,則認爲簽名是假冒的,拒絕簽名.