RSA算法在数据机密性和完整性上的实现
数据机密性的实施就是对数据进行加密,以实现数据传输的安全性。数据完整性的实施就是对数据进行数字签名,以实现发送者身份和文档的认证。数字签名的实施过程中用到的一种函数叫哈希函数(Hach函数,单向散列函数)。假设有甲和乙进行通信,乙要确认信是甲发出的。数字签名的基本协议很简单:
(1)甲用他的私人密钥对文件加密,从而对文件签名;
(2)甲将签名的文件传给乙;
(3)乙用甲的公开密钥解密文件,从而验证签名。
在实际的实现过程中,明文m都是长文件,则第(1)步效率太低。为了节约时间,可以引入单向散列函数进行使用。甲并不对整个文件签名,而是对文件的散列值进行签名。下面介绍一种将DES算法和RSA算法结合起来的数据加密和数字签字协议:
(1)客户端和服务器建立一个链接;
(2)顾客进入个人信息加密网页;
(3)顾客申请服务器生成服务器的一个公钥和一个私钥;
(4)顾客生成顾客的一个公钥和一个私钥;
(5)顾客得到服务器的公钥后用它对一个会话密钥加密并传送给服务器;
(6)服务器用自己的私钥对加密了的会话密钥进行解密,得到会话密钥;
(7)顾客产生要传送文件m的单向散列值h;
(8)顾客用他的私人密钥对单向散列值h进行加密得到数字签名a;
(9)顾客用与服务器共享的会话密钥加密m和a并将结果传送给服务器;
(10)服务器用会话密钥解密这传送过来的信息,得到明文文件m和数字签名a;
(11)服务器用明文文件m产生文件m的单向散列值m,同时用顾客的公钥对传过来的散列签名a进行解密,得到恢复的散列值。如果恢复的散列值与从m产生的散列值m相同,则证明是顾客的签名。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。