写在前边
临近密码学期末考试,学习学习基本知识
数字签名的过程
百度百科:发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再公钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该报文是发送方的。 形象点的例子: 假设A与B之间要使用数字签名进行通信,过程如下: A的行为 1、A把信息原文进行哈希运算,得到信息的数字摘要 2、A用自己私钥,采用非对称加密算法,对数字摘要进行加密,得到数字签名 3、A用对称算法的密钥,采用对称算法,对信息原文和数字签名和A的公钥一起加密,得到加密信息 4、A用B的公钥,采用非对称算法,把对称密钥加密,形成信封。就像是对称密钥装到了B公钥加密的信封里面 5、A把加密信息和数字信封一起发给B
B的行为 1、B收到数字信息,用自己的私钥解密信封,拿到对称密钥 2、B用对称密钥,把加密信息解密,得到信息原文和数字签名和A的公钥 3、B用A的公钥解密数字签名,得到数字摘要1 4、B将原文用同样的哈希算法,得到数字摘要2 5、将摘要1和摘要2对比。如果相等,则原文没有被修改,签名是真实的
在这一过程之中的关键步骤为:B行为与的3和4。 从上边例子可以看出:大体上可以分为两个过程,即加密和数字签名 加密 加密:A首先要用B的公钥对信息原文进行加密,形成密文,发送给B;B在收到密文后用自己的私钥进行解密,将密文恢复为原文。该过程实现了信息的保密性以及对信息接收方B的认证 数字签名 用户A将待发送的信息原文经散列函数运算生成摘要信息,并用自己的私有密钥对摘要信息进行加密,将形成的密文和原文传送给用户B。用户B接收到密文后,使用A的公开密钥验证密文,得到摘要信息,并按照约定的摘要算法对原文进行摘要运算,再将两个摘要值进行比对,一致则表明数据未被篡改。 数字签名实现了用户的身份认证,保证了数据在传输过程中的完整性、和交易的不可否认性;但是,任何拥有发送方公开密钥的人都可以验证数字签名的正确性,因此无法保证数据的机密性
由于加密和数字签名都只保证了信息在传输过程中的完整性、保密性、不可否认性和真实性的一部分,只有将两者相结合才能实现所有安全特性
数字签名的应用
公钥证书,SSL/TLS、软件下载
|