一种基于互联网区块链技术的数字签名方法与流程

文档序号:12182866阅读:2469来源:国知局
一种基于互联网区块链技术的数字签名方法与流程

本发明涉及一种基于互联网区块链技术的数字签名方法。



背景技术:

基于数字证书的数字签名技术已经发展多年,并且在很多行业进行了广泛的应用。目前的数字签名技术按照证书的载体主要分为两大类:

一类是以专用硬件为载体,如U盾等设备。这种类型的技术安全性较高,证书与网络物理隔离,验证计算在专有设备上进行,专有设备由所有人持有,在妥善保管的前提下,无法被他人篡改。但是随着移动设备以及移动互联网的普及,这种专有硬件形式的电子签名方法逐渐暴露出了使用不方便的缺点。用户在进行电子签名的时候,必须保证随身携带U盾等设备,这在移动互联时代变的很不合时宜。

另一类是仅依靠软件算法进行数字签名,证书保存在公共的网络环境中,并依靠中心服务器进行认证验算。纯软件形式的数字签名在安全性上有比较大的缺陷,首先数字证书的存储没有与公共网络环境进行物理隔离,容易被盗用。其次,验算结果存储在中心服务器,一旦中心服务器被攻破数据容易遭到篡改。



技术实现要素:

鉴于现有技术中存在的上述问题,本发明的主要目的在于解决现有技术的缺陷,本发明提供一种安全可靠的基于互联网区块链技术的数字签名方法。

本发明提供了一种基于互联网区块链技术的数字签名方法,包括以下步骤:

S1、密钥的生成与分发;

S2、签名过程;

S3、签名验证。

可选的,所述步骤S1中秘钥的生成和分发具体包括以下步骤:

S11:用户生成秘钥;

S12:用户输入口令码;

S13:用户确认口令码;

S14:节点程序根据口令码生成RSA密钥对;

S15:判断节点中是否已存在密钥对;

S16:根据步骤S15的判断结果,如果节点中存在密钥对,则需要替换已有密钥对,如果节点中不存在密钥对,将存储密封对存储在节点中;

S17:在节点网络中通过P2P的方式分层分发公钥,每层分发n个节点,其他节点存储该公钥。

可选的,所述节点为运行在一台设备上的一份客户端软件,且称为一个节点;同一台设备上只允许运行一份客户端软件。

可选的,所述步骤S2中签名过程具体包括以下步骤:

S21:用户签名;

S22:用户在所属节点(发起节点)输入生成秘钥时的口令码;

S23:发起节点从系统中随机选取m个非自身节点,用这m个节点的公钥分别对目标数据摘要进行加密,在对加密后的密文用发起节点的私钥进行加密;

S24:将m份密文与目标数据摘要明文打包,分别通过P2P发送给这m个节点,同时发起节点在算法链的最后创建一个新的单元起始片段;

S25:m个节点分别收到数据后,按照相同的过程和算法再分发m个节点,同时m个节点分别在发起节点创建的算法链新单元的起始片段后,添加本轮验算的算法片段;

S26:重复上述过程,一直分发m层后不再继续分发,同时每一层在验算结束后都将本轮验算记录在算法链中,并把签名结构记录到数据链;

S27:最后一层节点验算后将结果按照原路返回发起节点,同时,发起节点收到m/2个节点返回后,将算法链的新单元封闭,签名过程结束。

可选的,所述步骤S3中签名验证的具体步骤为:需要进行验证的节点,查询节点中存储的数据链即可,再查询前可以请求更新到最新的数据链。

可选的,所述算法链为:数字签名验证算法是分布在各个不同节点中的,不同的节点按顺序分别执行算法的一个片段,所有片段组合起来实现完整的数字签名验证算法。所有的这些算法片段按顺序链接起来保存在每个节点中。

可选的,所述数据链为:各个节点应用数字签名算法进行签名的结果数据,将按照时间的先后顺序完整的保存在每个节点中,组成一个链式结构。

本发明具有以下优点和有益效果:本发明提供一种基于互联网区块链技术的数字签名方法,这种数字签名方法无需利用专有硬件,并且利用节点网络的人为不可复制与不可修改特性,让更多的节点参与进行冗余的验证计算和结果存储,这样即使部分节点被非法控制也无法对算法和数据进行篡改,从而提高数字签名的安全性。

附图说明

图1为本发明实施例提供的基于互联网区块链技术的数字签名方法中密钥的生成与分发的流程图;

图2为本发明实施例提供的基于互联网区块链技术的数字签名方法中签名过程的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

下面将参照附图和具体实施例对本发明作进一步的说明。

如图1和图2所示:本发明实施例的一种基于互联网区块链技术的数字签名方法,包括以下步骤:

S1、密钥的生成与分发;

S2、签名过程;

S3、签名验证。

作为上述实施例的优选实施方式,步骤S1中秘钥的生成和分发具体包括以下步骤:

S11:用户生成秘钥;

S12:用户输入口令码;

S13:用户确认口令码;

S14:节点程序根据口令码生成RSA密钥对;

S15:判断节点中是否已存在密钥对;

S16:根据步骤S15的判断结果,如果节点中存在密钥对,则需要替换已有密钥对,如果节点中不存在密钥对,将存储密封对存储在节点中;

S17:在节点网络中通过P2P的方式分层分发公钥,每层分发n个节点,其他节点存储该公钥。

作为上述实施例的优选实施方式,节点为运行在一台设备上的一份客户端软件,且称为一个节点;同一台设备上只允许运行一份客户端软件。

作为上述实施例的优选实施方式,步骤S2中签名过程具体包括以下步骤:

S21:用户签名;

S22:用户在所属节点(发起节点)输入生成秘钥时的口令码;

S23:发起节点从系统中随机选取m个非自身节点,用这m个节点的公钥分别对目标数据摘要进行加密,在对加密后的密文用发起节点的私钥进行加密;

S24:将m份密文与目标数据摘要明文打包,分别通过P2P发送给这m个节点,同时发起节点在算法链的最后创建一个新的单元起始片段;

S25:m个节点分别收到数据后,按照相同的过程和算法再分发m个节点,同时m个节点分别在发起节点创建的算法链新单元的起始片段后,添加本轮验算的算法片段;

S26:重复上述过程,一直分发m层后不再继续分发,同时每一层在验算结束后都将本轮验算记录在算法链中,并把签名结构记录到数据链;

S27:最后一层节点验算后将结果按照原路返回发起节点,同时,发起节点收到m/2个节点返回后,将算法链的新单元封闭,签名过程结束。

作为上述实施例的优选实施方式,步骤S3中签名验证的具体步骤为:需要进行验证的节点,查询节点中存储的数据链即可,再查询前可以请求更新到最新的数据链。

作为上述实施例的优选实施方式,算法链为:数字签名验证算法是分布在各个不同节点中的,不同的节点按顺序分别执行算法的一个片段,所有片段组合起来实现完整的数字签名验证算法。所有的这些算法片段按顺序链接起来保存在每个节点中。

作为上述实施例的优选实施方式,数据链为:各个节点应用数字签名算法进行签名的结果数据,将按照时间的先后顺序完整的保存在每个节点中,组成一个链式结构。

最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1