PKI基础之公开密钥数字签名算法(签名)
DSA(Digital Signature Algorithm,数字签名算法,用作数字签名标准的一部分),它是另一种公开密钥算法,它不能用作加密,只用作数字签名。DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。
DSA签名算法中用到了以下参数:
1.p是L位长的素数,其中L从512到1024且是64的倍数。
2.q是160位长且与p-1互素的因子。
3.其中h是小于p-1并且满足 大于1的任意数。
4.x是小于q的数。
另外,算法使用一个单向散列函数H(m)。标准指定了安全散列算法(SHA)。三个参数p,q和g是公开的,且可以被网络中所有的用户公有。私人密钥是x,公开密钥是y。
对消息m签名时:
(1) 发送者产生一个小于q的随机数k。
(2) 发送者产生:r和s就是发送者的签名,发送者将它们发送给接受者。
(3) 接受者通过计算来验证签名:如果v=r,则签名有效。
DSA签名:
公开密钥:
p 512位到1024位的素数,q 160位长,并与p-1互素的因子,其中h是小于p-1并且满足 大于1的任意数。
私人密钥:x小于q
签名:k选取小于q的随机数
验证:如果v=r,则签名被验证。
PKI基础之数字签名与数字信封
公钥密码体制在实际应用中包含数字签名和数字信封两种方式。
数字签名是指用户用自己的私钥对原始数据的哈希摘要进行加密所得的数据。信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与自己用收到的原始数据产生的哈希哈希摘要对照,便可确信原始信息是否被篡改。这样就保证了数据传输的不可否认性。
哈希算法是一类符合特殊要求的散列函数(Hash)函数,这些特殊要求是:
1.接受的输入报文数据没有长度限制;
2.对任何输入报文数据生成固定长度的摘要("数字指纹")输出;
3.由报文能方便地算出摘要;
4.难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要;
5.难以生成两个不同的报文具有相同的摘要。
数字信封的功能类似于普通信封。普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。数字信封中采用了单钥密码体制和公钥密码体制。信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为数字信封。在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。
【编辑推荐】