数字签名系统设计及验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅析数字签名系统设计及验证
【摘要】数字签名系统是网络时代实现通信信息安全性与完整性的一种重要技术手段。本文针对目前数字签名系统存在的问题,提出一种采用组合对称密钥技术来设计数字签名系统的做法,详细介绍了其设计思路与过程,并阐述了其验证方法以流程,有一定的参考价值。
【关键词】数字签名;密钥种子;设计;端对端;验证
随着网络技术的发展,安全性已经引起了人们的广泛关注。在日常的社会生活和经济往来中,签名、盖章和识别签名是一个重要环节,例如银行业务、挂号邮件、合同、契约和协议的签订等,都离不开签名。而在当今的网络通信时代,如何安全的在网络上传输信息,实现信息的鉴别和数字签名,就成为人们研究的热点。数字签名作为一项安全技术,在保证数据的完整性、私密性和不可抵赖性方面起着重要的作用。下面,就介绍一种采用组合对称密钥技术来设计数字签名系统的做法,详细介绍了其设计与验证。
1.组合对称密钥技术
组合对称密钥技术基于组合密钥的思想,结合使用对称算法,不仅能够实现密钥的一次一变,而且运算速度更快。密钥种子是由硬件设备随机数生成器或是软件系统随机数生成算法所产生的一组随机数序列,其存储在硬件设备的安全芯片内。在实际应用中,采用组合密钥的思想,以时间和随机数因子为参数,从密钥种子中动态生成每次加密和解密数据所需要的密钥;同时采用对称算法加解
密数据,不像非对称算法那样是基于复杂的数学模型和巨大的代数结构,因而具有运算速度快的特点。
2.数字签名系统设计
2.1系统网络结构
系统的物理网络组成部分有用户终端、通信网络、防火墙、web 服务器、签名验证服务器、数据库服务器。其中,用户终端完成数字签名;通信网络实现数据传输;防火墙实现内外网的分隔,提高安全性;web服务器实现数据报文的转发;签名验证服务器完成签名的验证操作;数据库服务器存储各种数据信息。系统的总体网络拓扑结构如图1所示。
2.2系统组成设计
本系统由用户端系统、数据转发web端系统、签名验证服务端系统、密钥种子统一管理系统四个部分组成。
用户端系统:用户设备端上配有安全芯片,安全芯片中灌有安全协议,包含有数字签名协议和加密传输协议两部分,同时保存有密钥种子数据。当执行数字签名操作时,首先用户设备端获取服务器时间,并调用安全芯片内的安全协议接口,生成数字签名值,然后将信息加密后提交给服务器,并接收服务器端返回的结果。
数据转发web端系统:完成用户设备端与签名验证服务端之间数据报文的转发。
签名验证服务端系统:系统服务端基于linux平台,采用mysql 数据库管理系统,使用支持pci卡槽接口的加密卡,加密卡内灌有
数字签名协议和加密传输协议。服务端系统实现与web服务器、密钥种子数据库和日记数据库之间的数据通信;完成对用户设备端数字签名的验证功能;定时对密钥种子数据库进行备份,并能够在密钥种子数据库出现异常时完成密钥种子库的恢复;实时记录系统运行时的各种状态信息,实现当签名验证系统出现异常时,系统管理员可快速定位问题并修复系统。
2.3集中式数字签名及验证
集中式数字签名及验证模式,其在用户设备端上进行数字签名,在签名验证服务器上完成对签名的验证,并保存数字签名相关的信息。
集中式数字签名及验证流程如下。用户设备端:
1)向web服务器发送请求获取当前的系统时间;
2)将获得的系统时间、数据文件通过调用安全芯片接口传入芯片;
3)在安全芯片内由硬件随机数生成器产生随机数;
4)在安全芯片内利用组合密钥算法从密钥种子中产生本次使用的密钥;
5)对数据文件使用摘要算法运算后获得数据文件的hash值;6)使用对称加密算法对数据文件的hash值进行加密,获得数字签名值;
7)使用对称加密算法对数据文件加密生成密文;
8)将参数信息、数字签名值、密文等内容加密后发送给web服
务器。
数据转发web服务器:完成用户设备端与签名验证服务器之间数据报文的转发。
签名验证服务器:
1)获取用户设备端的数据报文,并通过调用加密卡接口,将数据报文传入加密卡;
2)在加密卡内解密数据报文;
3)根据用户设备端id号定位密钥种子,并利用组合密钥算法生成密钥;
4)使用解密算法解密数据密文;
5)对明文数据使用摘要算法运算后获取数据文件的hash值;6)在加密卡内使用对称算法加密数据后获得本地端的数字签名值;
7)将本地端的数字签名值和用户设备端的数字签名值做等值比较即可完成签名验证的工作。
在数字签名验证通过的情况下,签名验证服务器会将本次的文件密文、数字签名值、用户设备端id号、时间值、随机数等信息保存到数据库中,当以后某个用户需要查看文件内容时,可再次使用这些信息进行验签。
2.4端对端数字签名及验证
端对端数字签名及验证模式,其在用户设备端a上进行数字签名,在签名验证服务器上完成对a签名的验证,签名验证通过后会再次
对该数据文件进行签名,然后将信息发送给用户设备端b,由用户设备端b完成对服务器数字签名的验证。端对端的数字签名及验证流程如下。
用户设备端a:
1)向web服务器发送请求获取当前的系统时间;
2)将系统时间、数据文件通过调用接口传入芯片;
3)在安全芯片内由硬件随机数生成器产生随机数;
4)在安全芯片内利用组合密钥算法从密钥种子中产生本次使用的密钥;
5)对数据文件使用摘要算法运算后获取数据文件的hash值;6)使用对称加密算法对数据文件的hash值进行加密获得数字签名值;
7)使用对称加密算法对数据文件进行加密生成密文;
8)将参数信息、数字签名值、密文等内容加密后发送给web服务器。
数据转发web服务器:完成用户设备端a、签名验证服务器以及用户设备端b之间数据报文的转发。
签名验证服务器:
1)获取用户设备端a的数据报文,并通过调用加密卡接口,将数据报文传入加密卡;
2)在加密卡内解密数据报文;
3)根据用户设备端a的id号定位密钥种子,并利用组合密钥算