本发明专利技术公开了一种基于区块链技术的数字签名方法及系统,该系统包括:签名代理服务器和应用节点服务器;所述签名代理服务器包括:信息接收单元,身份验证单元,签名请求单元,身份请求路由单元,签名返回接受单元,节点公钥请求单元,签名验证单元,网络通讯单元和数据管理单元;所述应用节点服务器包括:签名响应单元,公私钥管理单元,数据加密单元,共识单元和签名返回单元。本发明专利技术能够降低设备成本和维护成本、降低故障风险,用户通过SDK或接口接入方式即可实现数据加密,数据身份签名和验签功能。
【技术实现步骤摘要】
基于区块链技术的数字签名方法及系统
本专利技术属于信息安全
,具体来说涉及一种基于区块链技术实现的数字签名方法,以及数字签名系统。
技术介绍
数字签名(DigitalSignature,又称公钥数字签名)是一种使用公钥加密领域技术,用于解决网络交易中可信身份认证、数据加密、数据完整性和抗抵赖的问题。现有的数字签名技术存在以下一些问题:第一、数字签名需要公钥和私钥,其数据交换双方需要遵循同一协议进行公私钥生成,由于数据交换双方的运行系统环境不同,其产生的公私钥可能会有差别,造成数字签名的签发,验证的兼容性会产生差异,导致数据交换的失败。第二、为确保双方的数字签名可验证,需相互保存对方的公钥。这就意味着服务端的公钥是对外公开,因此会存在公钥被第三方掉包、第三方冒充服务端与客户端进行信息交互,骗取客户端身份信息和交易信息的问题。第三、数字签名的安全性离不开加解密算法,加解密是一种相对复杂的计算方式,会耗费一定系统资源,在数据交换频繁的场景下,通常需要采用购置密码机进行本地部署实现服务端签名,但又会产生密码机本身的采购成本;另一方面,密码机作为物理设备存在单点故障风险和维护成本;同时缺少密码运算能力,无法实现并发能力的动态扩展。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。基于协商一致的规范和协议,整个区块链系统不依赖其他第三方,只要未掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。因此,如何设计出一种基于区块链技术实现的新型数字签名方法,以克服上述各项问题,是本领域技术人员需要研究的方向。
技术实现思路
本专利技术的目的是提供一种数字签名系统,能够降低设备成本和维护成本、降低故障风险,用户通过SDK或接口接入方式即可实现数据加密,数据身份签名和验签功能。一种数字签名系统,其包括:签名代理服务器和应用节点服务器;所述签名代理服务器包括:信息接收单元,身份验证单元,签名请求单元,身份请求路由单元,签名返回接受单元,节点公钥请求单元,签名验证单元,网络通讯单元和数据管理单元;所述应用节点服务器包括:签名响应单元,公私钥管理单元,数据加密单元,共识单元和签名返回单元。所述网络通讯单元用于实现使用者与签名代理服务器的数据交互;所述信息接收单元用于通过网络通讯单元接受使用者发起的签名身份识别请求、并从签名身份识别请求中提取身份信息数据;所述身份信息数据包括明文数据、唯一用户ID、时间戳,随机字符串,终端IP和MD值;所述身份验证单元用于校验所述信息接收单元提取的身份信息数据;所述签名请求单元用于在身份信息数据通过校验时、获取身份信息数据中的应用节点路由信息;所述身份请求路由单元用于根据所述应用节点路由信息,向对应于该应用节点路由信息的应用节点服务器发起签名请求;签名响应单元用于将身份请求路由单元发起的签名请求转发至公私钥管理单元;所述公私钥管理单元用于在读取签名请求时提取预先内置的公钥文件和私钥文件并发送至数据加密单元、在读取公钥文件请求时提取预先内置的公钥文件并回传至签名代理服务器;所述数据加密单元用于根据所述私钥文件、对明文数据进行非对称加密,获得密文数据并生成该密文数据的数据身份签名;所述共识单元中预存有Raft共识算法,用于在各应用节点服务器间对数据身份签名发起和完成有效性共识;所述签名返回单元用于将达成有效性共识的所述密文数据和数据身份签名返回至签名代理服务器;所述节点公钥请求单元用于在读取所述密文数据和数据身份签名后向节点应用服务器输出公钥文件请求;所述签名验证单元用于根据公钥文件对所述密文数据进行解密,并将解密后的密文数据与明文数据进行比对,并在比对无误时通过网络通讯单元将数字身份签名传送至使用者;所述数据管理单元用于在签名验证单元通过网络通讯单元将数字身份签名传送至使用者后,销毁信息接收单元从签名身份识别请求中提取身份信息数据、数据加密单元形成的密文数据和数据身份签名、以及公私钥管理单元提取的公钥文件和私钥文件。在上述方案中:所述签名代理服务器可选用硬件型号:DellPowerEdgeR340企业机架式服务器。所述应用节点服务器可选用硬件型号:DellPowerEdgeR6415机架式服务器。使用者可通过HTTPS通讯协议向签名代理服务器发起签名请求。应用节点服务器对外提供RestFul架构的访问接口,签名代理服务器通过RPC远程过程调用协议访问应用节点服务器。各应用节点服务器之间通过P2P网络做为底层传输方式。P2P网络的核心是数据存储在客户本地,通过存储信息(名称、地址、分块)的查询,让终端之间直接数据传递。在P2P网络上层采用RPC远程过程调用请求进行节点间数据通讯。所述Raft算法由斯坦福大学的DiegoOngaro和JohnOusterhout于2014年在论文《InSearchofanUnderstandableConsensusAlgorithm》中提出,基于Multi-Paxos算法进行重新简化设计和实现,提高了工程实践性。利用Raft算法可实现通过先选出领导节点来简化流程和提高效率。实现上分解了领导者选举、日志复制和安全方面的考虑,并通过约束减少了不确定性的状态空间。基于上述系统,本专利技术还公开了一种数字签名方法,其技术方案如下:一种数字签名方法,其包括如下步骤:S1:使用者对签名代理服务器发起签名身份识别请求;S2:信息接收单元接收签名身份识别请求,从签名身份识别请求中提取身份信息数据,所述身份信息数据包括明文数据、用户ID、时间戳和随机数;S3:身份验证单元校验S2所得身份信息数据;S4:签名请求单元从通过校验的身份信息数据中获取对应的应用节点路由信息;S5:身份请求路由单元基于S4所得应用节点路由信息,访问对应的应用节点服务器并发起签名请求;S6:签名响应单元读取身份请求路由单元发起的签名请求后启动公私钥管理单元;S7:公私钥管理单元提取所在应用节点服务器中预先内置的公钥文件和私钥文件并输出至数据加密单元;S8:数据加密单元基于S7所得私钥文件、对明文数据进行非对称加密,获得密文数据并生成该密文数据的数据身份签名;S9:共识单元基于Raft共识算法在各应用节点服务器间对S8所得数据身份签名发起和完成有效性共识;S10:签名返回单元将密文数据和数据身份签名返回至签名代理服务器;S11:节点公钥请求单元向节点应用服务器输出公钥文件请求;S12:公私钥管理单元提取公钥文件并回传至签名代理服务器;S13:签名验证单元基于公钥文件对密文数据进行解密,并将解密后的密文数据与明文数据进行比对,若比对无误跳转至S15;S本文档来自技高网...
【技术保护点】
1.一种基于区块链技术的数字签名系统,其特征在于,包括:签名代理服务器(1)和应用节点服务器(2);/n所述签名代理服务器(1)包括:信息接收单元(11),身份验证单元(12),签名请求单元(13),身份请求路由单元(14),签名返回接受单元(15),节点公钥请求单元(16),签名验证单元(17),网络通讯单元(18)和数据管理单元(19);所述应用节点服务器(2)包括:签名响应单元(21),公私钥管理单元(22),数据加密单元(23),共识单元(24)和签名返回单元(25);/n所述网络通讯单元(18)用于实现使用者与签名代理服务器(1)的数据交互;/n所述信息接收单元(11)用于通过网络通讯单元(18)接受使用者发起的签名身份识别请求、并从签名身份识别请求中提取身份信息数据;所述身份信息数据包括明文数据、唯一用户ID、时间戳,随机字符串,终端IP和MD5值;/n所述身份验证单元(12)用于校验所述信息接收单元(11)提取的身份信息数据;/n所述签名请求单元(13)用于在身份信息数据通过校验时、获取身份信息数据中的应用节点路由信息;/n所述身份请求路由单元(14)用于根据所述应用节点路由信息,向对应于该应用节点路由信息的应用节点服务器(2)发起签名请求;/n签名响应单元(21)用于将身份请求路由单元(14)发起的签名请求转发至公私钥管理单元(22);/n所述公私钥管理单元(22)用于在读取签名请求时提取预先内置的公钥文件和私钥文件并发送至数据加密单元(23)、在读取公钥文件请求时提取预先内置的公钥文件并回传至签名代理服务器(1);/n所述数据加密单元(23)用于根据所述私钥文件、对明文数据进行非对称加密,获得密文数据并生成该密文数据的数据身份签名;/n所述共识单元(24)中预存有Raft共识算法,用于在各应用节点服务器(2)间对数据身份签名发起和完成有效性共识;/n所述签名返回单元(25)用于将达成有效性共识的所述密文数据和数据身份签名返回至签名代理服务器(1);/n所述节点公钥请求单元(16)用于在读取所述密文数据和数据身份签名后向节点应用服务器(2)输出公钥文件请求;/n所述签名验证单元(17)用于根据公钥文件对所述密文数据进行解密,并将解密后的密文数据与明文数据进行比对,并在比对无误时通过网络通讯单元(18)将数字身份签名传送至使用者;/n所述数据管理单元(19)用于在签名验证单元(17)通过网络通讯单元(18)将数字身份签名传送至使用者后,销毁信息接收单元(11)从签名身份识别请求中提取身份信息数据、数据加密单元(23)形成的密文数据和数据身份签名、以及公私钥管理单元(22)提取的公钥文件和私钥文件。/n...
【技术特征摘要】
1.一种基于区块链技术的数字签名系统,其特征在于,包括:签名代理服务器(1)和应用节点服务器(2);
所述签名代理服务器(1)包括:信息接收单元(11),身份验证单元(12),签名请求单元(13),身份请求路由单元(14),签名返回接受单元(15),节点公钥请求单元(16),签名验证单元(17),网络通讯单元(18)和数据管理单元(19);所述应用节点服务器(2)包括:签名响应单元(21),公私钥管理单元(22),数据加密单元(23),共识单元(24)和签名返回单元(25);
所述网络通讯单元(18)用于实现使用者与签名代理服务器(1)的数据交互;
所述信息接收单元(11)用于通过网络通讯单元(18)接受使用者发起的签名身份识别请求、并从签名身份识别请求中提取身份信息数据;所述身份信息数据包括明文数据、唯一用户ID、时间戳,随机字符串,终端IP和MD5值;
所述身份验证单元(12)用于校验所述信息接收单元(11)提取的身份信息数据;
所述签名请求单元(13)用于在身份信息数据通过校验时、获取身份信息数据中的应用节点路由信息;
所述身份请求路由单元(14)用于根据所述应用节点路由信息,向对应于该应用节点路由信息的应用节点服务器(2)发起签名请求;
签名响应单元(21)用于将身份请求路由单元(14)发起的签名请求转发至公私钥管理单元(22);
所述公私钥管理单元(22)用于在读取签名请求时提取预先内置的公钥文件和私钥文件并发送至数据加密单元(23)、在读取公钥文件请求时提取预先内置的公钥文件并回传至签名代理服务器(1);
所述数据加密单元(23)用于根据所述私钥文件、对明文数据进行非对称加密,获得密文数据并生成该密文数据的数据身份签名;
所述共识单元(24)中预存有Raft共识算法,用于在各应用节点服务器(2)间对数据身份签名发起和完成有效性共识;
所述签名返回单元(25)用于将达成有效性共识的所述密文数据和数据身份签名返回至签名代理服务器(1);
所述节点公钥请求单元(16)用于在读取所述密文数据和数据身份签名后向节点应用服务器(2)输出公钥文件请求;
所述签名验证单元(17)用于根据公钥文件对所述密文数据进行解密,并将解密后的密文数据与明文数据进行比对,并在比对无误时通过网络通讯单元(18)将数字身份签名传送至使用者;
所述数据管理单元(19)用于在签名验证单元(17)通过网络通讯单元(18)将数字身份签名传送至使用者后,销毁信息接收单元(11)从签名身份识别请求中提取身份信息数据、数...
【专利技术属性】
技术研发人员:殷堃,马振东,
申请(专利权)人:上海雷龙信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。