数字签名(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带入验证式子,若是成立,则接受签名是正确签名;若是不成立,则认为签名是假冒的,拒绝签名.