程序中数字签名的鉴别和使用方法

2016-08-23 746 4 编辑:深色多郎 来源:程序书籍

书信或文件是根据亲笔签名或印章来证明其真实性。但在计算机网络中传送的文电又如何盖章呢?这就要使用数字签名。数字签名必须保证能够实现以下三点功能:

(1)接受者能够核实发送者对报文的签名。也就是说,接收者能够确信该报文的确实发送者发送的。其他人无法伪造对报文的签名。这就叫做报文鉴别。

(2)接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过。这就叫做报文的完整性。

(3)发送者事后不能抵赖对报文的签名。这就叫做不可否认。

现在已有多种实现数字签名的方法。但采用公钥算法要比采用对称密钥算法更容易实现。下面就来介绍这种数字签名。

为了进行签名,A用其私钥SKA对报文X进行D运算。D运算本来叫做解密运算。还没有加密怎么就进行解密呢?这并没有关系。因为D运算只是得到了某种不可读的密文。我们写上的是“D运算”而不写上“解密运算”就是为了避免产生这种误解。A把经过D运算得到的密文传送给B。B为了核实签名,用A的公钥进行E运算,还原出明文X。请注意,任何人用A的公钥PK进行E运算后都可以得出A发送的明文。可见D运算和E运算都不是为了解密和加密,而是为了进行签名和核实签名。

下面讨论一下数字签名为什么具有上述的三点功能。

因为除A外没有被人持有A的私钥SKA,所以除A外没有别人能产生密文DSKA(X)。这样,B就相信报文X是A签名发送的。这就是报文鉴别的功能。同理,其他人如果篡改过报文,但并无法得到A的私钥SKA来对X进行加密。B对篡改过的报文进行解密后,将会得出不可读的明文,就知道收到的报文被篡改过。这样就保证报文完整性的功能。若A要抵赖曾发送报文给B,B可把X及DSKA(X)出示给进行公证的第三者。第三者很容易用PKA去证实A确实发送X给B。这就是不可否认的功能。这里的关键都是没有其他人能够持有A的私钥SKA。

数字签名

但上述过程仅对报文进行了签名。对报文X本身却未保密。因为截获到密文DSKA(X)并知道发送者身份的任何人,通过查阅手册即可获得发送者的公钥PKA,因而能知道报文的内容。若采用下图所示方法,则可同时实现秘密通信和数字签名。图中SKA和SKB分别为A和B的私钥,而PKA和PKB分别为A和B的公钥。

本站文章均为深正网站建设摘自权威资料,书籍,杂志或原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享到社交网站,引用和转载,我们谢绝直接复制和抄袭!感谢您...

学习课堂

深入探讨搜索引擎

10 月份 QCon上海2017上,360 搜索架构师郝一昕将带来演讲《360 亿级搜索容器云平台架构实践》,InfoQ 在这之前,对郝老师进行了一次采访。

2017-08-30
2016-07-04
2016-12-15
2016-12-02

动态更新

【签约】深圳市海一电器有限公司品牌网站建设

深圳市海一电器有限公司成立于1993年,2007年始专注于智能加热电器产品的研发,生产和销售。从电磁炉、直发器、嵌入式多灶电磁炉、多灶电陶炉、到电磁热水器产品的开发与设计。结晶了我们研发团队的智慧,积累了研发团队经验,增强了研发团队的信心..

2015-07-18
2017-09-12
2017-04-21
2017-04-25

资讯知识

增加外链的途径和注意事项有哪些?

增加外链的途径 (1)可以找朋友的网站并加上你的链接,如果朋友愿意,单向链接是最好的。(2)在Google和百度查询你网站的主题,如你是做游戏网站的,那就在Google和百度中查询游戏,看看排名第一页的网站的反向链接,然后联系这些排名靠前的链接的...

>2016-07-20
>2016-09-20
>2016-08-11
>2016-07-12
亲,请您联系我们吧

您的疑问,只要您主动联系,将为您得到最专业,最全面的解答,欢迎您询问...