一种基于区块链数字签名的加密方法及系统与流程

文档序号:12889860阅读:428来源:国知局
一种基于区块链数字签名的加密方法及系统与流程

本发明涉及网络安全技术领域,尤其涉及一种基于区块链数字签名的加密方法及系统。



背景技术:

现代信息的应用越来越趋于全球化和全民化,对于信息安全的要求除了防篡改、抗抵赖、可信等基础安全之外,更需要加强隐私保护、身份认证等方面的安全。新兴的区块链技术有助于推动信息化沟通模式从多对多沟通发展到物联网沟通模式,密码学需要不断创新才能满足趋于复杂的通信方式的安全需求,从某种程度上说,区块链技术在推动密码体系创新的同时,也给现代密码学带来新的发展契机。同时在区块链治理过程中,身份认证系统是第一要务,数字证书对于区块链技术也是极其重要的,区块链技术的发展对数字证书的发展和应用也有极大的促进作用。

从某种意义上看,区块链技术是因为现代密码学的发展才产生的,但今天区块链技术所用的密码学主要是二十年前的密码学成果,还存在很多问题需要解决。将区块链技术应用于更多分布式的、多元身份参与的应用场景,现有的加密技术是否满足需求,还需要更多的应用验证,同时更需要深入整合密码学前沿技术,包括目前国际国内在零知识证明、多方保密计算、群签名、基于格的密码体制、全同态密码学等最新前沿技术。



技术实现要素:

本发明的目的在于克服现有技术的不足,本发明提供了一种基于区块链数字签名的加密方法及系统,能够极大增强区块链中身份认证的安全性和可靠性。

为了解决上述技术问题,本发明实施例提出了一种基于区块链数字签名的加密方法,所述加密方法包括:

获取待发送报文的待发送报文摘要信息;

对所述待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。

优选地,所述获取待发送报文的待发送报文摘要信息,包括:

获取待发送数据信息的待发送数据摘要信息;

对所述待发送数据摘要信息进行哈希变换处理,生成所述待发送报文摘要信息。

优选地,所述对所述待发送报文摘要信息进行加密处理,包括:

对所述待发送报文摘要信息进行字节代换加密操作,获取第一加密报文摘要信息;

对所述第一加密报文摘要信息进行行移位加密,获取第二加密报文摘要信息;

对所述第二加密报文摘要信息进行列混淆加密处理,获取第三加密报文摘要信息;

对初始秘钥进行秘钥拓展处理,获取轮秘钥;

采用所述轮秘钥对所述第三加密报文摘要信息进行加密处理,获取第四加密报文摘要信息;

对所述第四加密报文摘要信息进行大数分解加密处理,获取待发送加密报文摘要信息。

优选地,所述对所述报文摘要信息进行字节代换加密操作,包括:

根据高级加密标准定义一个s盒;

将所述报文摘要信息的字节高四位作为所述状态矩阵的行值,所述述报文摘要信息的字节低四位作为所述状态矩阵的列值,获取状态矩阵;

将所述状态矩阵元素输入所述s盒,获取所述s盒中对应的字节代换输出。

优选地,所述对初始秘钥进行秘钥拓展处理,包括:

将所述初始秘钥变换为以列数组,转化为4个32bits的字,分别记为w[0…3];

j为整数并属于[4,...,43],若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];

将w循环左移一个字节;

分别对每个字节按照s盒进行映射,获取映射结果;

将所述映射结果与32bits常量进行异或处理,获取轮秘钥。

优选地,所述对所述第四加密报文摘要信息进行大数分解加密处理,包括:

计算获取大数分解加密的加密参数;

根据所述加密参数加密所述第四加密报文摘要信息,获取待发送加密报文摘要信息。

优选地,所述计算获取大叔分解加密的加密参数,包括:

选取素数a和b;

计算得到c和d,令c=a*b,d=(a-1)*(b-1);

选取e,使得e与d互为素数;

选取f,使得f*e=1(mod)d。

优选地,所述根据所述加密参数加密所述第四加密报文摘要信息,包括:

将所述待发送数据分块,生成消息块,令每个所述消息块的长度g满足:0≤g≤c;

根据加密函数i=gf(modc),生成所述待发送加密报文摘要信息。

另外,本发明实施例还提供了一种基于区块链数字签名的加密系统,所述加密系统包括:

获取模块:用于获取待发送报文的待发送报文摘要信息;

加密模块:用于对所述待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。

优选地,所述加密模块包括:

第一加密单元:用于对所述待发送报文摘要信息进行字节代换加密操作,获取第一加密报文摘要信息;

第二加密单元:用于对所述第一加密报文摘要信息进行行移位加密,获取第二加密报文摘要信息;

第三加密单元:用于对所述第二加密报文摘要信息进行列混淆加密处理,获取第三加密报文摘要信息;

拓展单元:用于对初始秘钥进行秘钥拓展处理,获取轮秘钥;

第四加密单元:用于采用所述轮秘钥对所述第三加密报文摘要信息进行加密处理,获取第四加密报文摘要信息;

第五加密单元:用于对所述第四加密报文摘要信息进行大数分解加密处理,获取待发送加密报文摘要信息。

在本发明实施例中,通过本发明实施例应用基于区块链的改进型aes加密算法在原始aes算法的基础上有效结合了大数分解的特点,大大增加了加密算法的安全性,从而使得其更适合应用于区块链这一领域,能够极大增强区块链中身份认证的安全性和可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例中的基于区块链数字签名的加密方法的方法流程示意图;

图2是本发明实施例中的又一基于区块链数字签名的加密方法的方法流程示意图;

图3是本发明实施例中的基于区块链数字签名的加密系统的系统结构组成示意图;

图4是本发明实施例中的又一基于区块链数字签名的加密系统的系统结构组成示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数字摘要技术的应用。

实施例一:

图1是本发明实施例中的基于区块链数字签名的加密方法的方法流程示意图,如图1所示,

s11:获取待发送报文的待发送报文摘要信息。

在本发明实施例中,首先对待发送的数据信息进行摘要信息提取,获得待发送数据摘要信息,然后对待发送数据摘要信息进行相应的哈希变换,用哈希函数从待发送数据摘要信息中生产待发送报文摘要信息。

s12:对所述待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。

在本发明实施例中,依次采用字节代换、行位移、列混淆、轮秘钥加密和大数分解加密等加密方法对待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。上述加密都是基于一种改进型的aes加密算法。

在本发明实施例中,区块链技术是一种分布式存储技术,主要包括两个方面:第一,数据的分布式存储;第二,数据的分布式记录。分布式存储是指数据存储在参与记录的节点中,而不是存储在中心化的机器中;分布式记录是指系统的参与节点一起记录。

分布式记录是指数据的记录采用分布式。区块链中的每一次数据交换的记录的传播都采用分布式,消息由单个节点直接发送给其他节点。在发送的过程中,为了保证数据的可靠性和完整性,使用了数字签名技术。首先,数字签名可以判断信息是否由对方发送;第二,数字签名可以判定接收到的信息是否为完整的信息。在发送方,用哈希函数从信息中生成报文摘要,然后用秘钥进行加密,加密的摘要作为数字签名,和报文一起发送给对方;在接收方,使用与发送方相同的哈希函数对原始报文提取摘要,然后用秘钥对数字签名进行解密,并判断两者是否一致,如果一致,则说明信息的完整性。

在本发明实施例中,通过本发明实施例应用基于区块链的改进型aes加密算法在原始aes算法的基础上有效结合了大数分解的特点,大大增加了加密算法的安全性,从而使得其更适合应用于区块链这一领域,能够极大增强区块链中身份认证的安全性和可靠性。

实施例二:

图2是本发明实施例中的又一基于区块链数字签名的加密方法的方法流程示意图,如图2所示,所述加密方法包括:

s21:获取待发送数据信息的待发送数据摘要信息。

在本发明实施例中,首先对待发送的数据信息进行数据信息确认,在待发送数据信息中提取出待发送数据摘要信息。

s22:对所述待发送数据摘要信息进行哈希变换处理,生成所述待发送报文摘要信息。

在本发明实施例中,采用md5哈希算法进行哈希变换,主要步骤如下:(1)通过一种足够复杂的算法来打乱明文信息中的所有位,各输出位都会受到输入位的影响。换句话说,就是将原始的明文信息填补到448位的长度(以512为模);(2)将消息的长度追加为64位正整数,从而使得整个输入的长度为512的倍数;(3)将一个128位的缓冲区初始化为一个固定的值;(4)每一轮取出一个512字节的输入块,将其与128位的缓冲区进行混淆;(5)md5对每个输入块执行4轮,这个过程不断进行,直到所有的输入快都完成执行;(6)最终的消息摘要即可由128位的缓冲区构成。

经过上述哈希变换算法处理之后,获取到待发送报文摘要信息。

s23:对所述待发送报文摘要信息进行字节代换加密操作,获取第一加密报文摘要信息;

在本发明实施例中,根据高级加密标准定义一个s盒;将所述报文摘要信息的字节高四位作为所述状态矩阵的行值,所述述报文摘要信息的字节低四位作为所述状态矩阵的列值,获取状态矩阵;将所述状态矩阵元素输入所述s盒,获取所述s盒中对应的字节代换输出。

具体的,aes(高级加密标准)的字节替换其实就是一个简单的查表操作,aes定义了一个s盒和逆s盒。状态矩阵中的元素按照如下方法映射为一个新的字节:将字节的高4位作为状态矩阵行值,低4位作为状态矩阵列值,取出s盒或者逆s盒中对应的元素作为输出。例如,加密时,设输入的字节为0x12,则查到s盒的第0x01行和0x02列,得到值0xb8,然后替换s1原有的0x12为0xb8。在解码的时候,逆字节代换也就是查逆s盒来变换。

s24:对所述第一加密报文摘要信息进行行移位加密,获取第二加密报文摘要信息;

在本发明实施例中,行位移是对上述加密之后获得的第一加密报文摘要信息进行行位移加密,行位移加密的功能是实现一个4*4矩阵内部字节之间的置换;具体操作为正向行位移是一个简单的左循环移位操作。当密钥长度为128比特时,状态矩阵的第0行左移0字节,第1行左移1字节,第2行左移2字节,第3行左移3字节,以此类推。在解码的时候,行移位的逆变换是将状态矩阵中的每一行执行相反的移位操作,即状态矩阵的第0行右移0字节,第1行右移1字节,第2行右移2字节,第3行右移3字节,以此类推。

s25:对所述第二加密报文摘要信息进行列混淆加密处理,获取第三加密报文摘要信息;

在本发明实施例中,对上述行位移加密获取的第二加密报文摘要信息进行列混淆加密,列混淆加密是将第二加密报文摘要信息矩阵信息左乘一个矩阵进行加密,具体为根据矩阵的乘法可知,在列混淆的过程中,每个字节对应的值只与该列的4个值有关系。在解码的时候,经过一次逆向列混淆后即可恢复原文。

s26:对初始秘钥进行秘钥拓展处理,获取轮秘钥;

在本发明实施例中,将所述初始秘钥变换为以列数组,转化为4个32bits的字,分别记为w[0…3];j为整数并属于[4,...,43],若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];将w循环左移一个字节;分别对每个字节按照s盒进行映射,获取映射结果;将所述映射结果与32bits常量进行异或处理,获取轮秘钥。

具体的,1)将初始密钥以列为主,转化为4个32bits的字,分别记为w[0,…,3];2)按照如下方式,依次求解w[j],其中j是整数并且属于[4,..,43];3)若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];函数g的流程说明:4)将w循环左移一个字节;5)分别对每个字节按s盒进行映射;6)与32bits的常量(rc[j/4],0,0,0)进行异或,rc是一个一维数组,其值如下。(rc的值只需要有10个,而此处用了11个,实际上rc[0]在运算中没有用到,增加rc[0]是为了便于程序中用数组表示。由于j的最小取值是4,j/4的最小取值则是1,因此不会产生错误。)rc={00,01,02,04,08,10,20,40,80,1b,36}

s27:采用所述轮秘钥对所述第三加密报文摘要信息进行加密处理,获取第四加密报文摘要信息;

在本发明实施例中,采用轮秘钥对第三加密报文摘要信息进行加密操作,这个操作相对简单,其依据的原理是“任何数和自身的异或结果为0”。加密过程中,每轮的输入与轮密钥异或一次;因此,解密时再异或上该轮的密钥即可恢复输入。

s28:对所述第四加密报文摘要信息进行大数分解加密处理,获取待发送加密报文摘要信息。

在发明实施例中,计算获取大数分解加密的加密参数;根据所述加密参数加密所述第四加密报文摘要信息,获取待发送加密报文摘要信息。即首先计算大数分解加密的加密参数,然后通过计算获得的加密参数对第四加密报文摘要信息进行加密处理,获取最终的待发送加密报文摘要信息。

在本发明实施过程中,计算获取大叔分解加密的加密参数的过程如下:选取素数a和b;计算得到c和d,令c=a*b,d=(a-1)*(b-1);选取e,使得e与d互为素数;选取f,使得f*e=1(mod)d。

具体的,计算出一些基本参数如下:挑选两个较大的素数a和b(一般情况下为1024位);令c=a*b,d=(a-1)*(b-1);挑选一个数e,使得e与d互为素数;选择一个数f,使得f满足:f*e=1(mod)d。

在本发明实施过程中,根据加密参数加密第四加密报文摘要信息过程如下:将所述待发送数据分块,生成消息块,令每个所述消息块的长度g满足:0≤g≤c;根据加密函数i=gf(modc),生成所述待发送加密报文摘要信息。

具体的,将上文经过aes加密后的密文1进行分块(可以看成是一个位串),令每个密文1的消息块g满足:0≤g≤c。为此,我们只需要将密文1划分为h位的块即可,其中h是满足2h<的最大整数。计算i=gf(modc),从而加密消息g。在解码的时候:1、计算g=ie(modc),从而解密消息g,进而得到被aes加密后的密文1;2、aes加密算法是可逆的,其明文和密文在整个输入空间是一一对应的。因此算法的各个部件也都是可逆的,再将各个部件的步骤进行逆操作,密文就能正确的解密了。

上文对本发明的基于区块链技术的数字签名方法的实施例作了详细介绍。下面将相应于上述方法的系统作进一步阐述。

在本发明实施例中,通过本发明实施例应用基于区块链的改进型aes加密算法在原始aes算法的基础上有效结合了大数分解的特点,大大增加了加密算法的安全性,从而使得其更适合应用于区块链这一领域,能够极大增强区块链中身份认证的安全性和可靠性。

实施例三:

图3是本发明实施例中的基于区块链数字签名的加密系统的系统结构组成示意图,如图3所示,所述加密系统包括:

获取模块11:用于获取待发送报文的待发送报文摘要信息;

加密模块12:用于对所述待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。

在本发明实施例中,通过本发明实施例应用基于区块链的改进型aes加密算法在原始aes算法的基础上有效结合了大数分解的特点,大大增加了加密算法的安全性,从而使得其更适合应用于区块链这一领域,能够极大增强区块链中身份认证的安全性和可靠性。

实施例四:

图4是本发明实施例中的又一基于区块链数字签名的加密系统的系统结构组成示意图,如图4所示,所述加密系统包括:

获取模块11:用于获取待发送报文的待发送报文摘要信息;

加密模块12:用于对所述待发送报文摘要信息进行加密处理,获取加密待发送报文摘要信息。

其中,获取模块11还包括一下单元:

获取单元111:用于获取待发送数据信息的待发送数据摘要信息;

变换单元112:用于对所述待发送数据摘要信息进行哈希变换处理,生成所述待发送报文摘要信息。

加密模块12还包括一下单元:

第一加密单元121:用于对所述待发送报文摘要信息进行字节代换加密操作,获取第一加密报文摘要信息;

第二加密单元122:用于对所述第一加密报文摘要信息进行行移位加密,获取第二加密报文摘要信息;

第三加密单元123:用于对所述第二加密报文摘要信息进行列混淆加密处理,获取第三加密报文摘要信息;

拓展单元124:用于对初始秘钥进行秘钥拓展处理,获取轮秘钥;

第四加密单元125:用于采用所述轮秘钥对所述第三加密报文摘要信息进行加密处理,获取第四加密报文摘要信息;

第五加密单元126:用于对所述第四加密报文摘要信息进行大数分解加密处理,获取待发送加密报文摘要信息。

拓展单元124还包括一下子单元:

数字变换子单元:用于将所述初始秘钥变换为以列数组,转化为4个32bits的字,分别记为w[0…3];

判断子单元:用于判断j为整数并属于[4,...,43],若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];

循环子单元:用于将w循环左移一个字节;

映射子单元:用于分别对每个字节按照s盒进行映射,获取映射结果;

异或子单元:用于将所述映射结果与32bits常量进行异或处理,获取轮秘钥。

第五加密单元126还包括一下子单元:

计算子单元:用于计算获取大数分解加密的加密参数;

加密子单元:用于根据所述加密参数加密所述第四加密报文摘要信息,获取待发送加密报文摘要信息。

具体地,本发明实施例的系统相关功能模块的工作原理可参见方法实施例的相关描述,这里不再赘述。

在本发明实施例中,通过本发明实施例应用基于区块链的改进型aes加密算法在原始aes算法的基础上有效结合了大数分解的特点,大大增加了加密算法的安全性,从而使得其更适合应用于区块链这一领域,能够极大增强区块链中身份认证的安全性和可靠性。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

另外,以上对本发明实施例所提供的一种基于区块链数字签名的加密方法及系统进行了详细介绍,本文中应采用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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