基于国密的区块链工业数据加密方法、装置及存储介质与流程

文档序号:29649509发布日期:2022-04-13 23:18阅读:268来源:国知局
基于国密的区块链工业数据加密方法、装置及存储介质与流程

1.本技术涉及信息安全技术领域,尤其涉及一种基于国密的区块链工业数据加密方法、装置及存储介质。


背景技术:

2.目前,随着5g技术的发展和普及,工业互联网得到了极大的发展,5g能够用于解决工业在传输速率上的问题,但是针对工业互联网的持续性交付的安全性质,需要更多重的保障。工业互联网数据价值大,出现问题后的连锁反应较广,破坏性也较高。
3.区块链技术在提高多方信任问题上有天生的优势,区块链的不可篡改的特性让在区块链上的数据有较强的抗抵赖性和完整性。但是,一方面由于区块链的抗抵赖性会有可能会造成数据公开,所以需要结合密码学进行摘要、加密、交换等操作。另一方面,可持续交付中还常常存在的一大问题就是若泄露了一个密钥,则后面的数据也可以被解密,一旦出现密钥泄露,造成的危害较高。
4.公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。


技术实现要素:

5.为了解决上述背景技术提到的技术问题或者至少部分地解决上述技术问题,本技术提供一种基于国密的区块链工业数据加密方法、装置及存储介质,可以减少工业互联网在小型连续数据的持续交付过程中的密钥泄露危害。
6.第一方面,本技术提供了一种基于国密的区块链工业数据加密方法,包括:采用基于椭圆曲线的密钥交换方法进行密钥协商,确定通信双方的共享密钥;协商并确定用于所述通信双方的当前轮数据传输的当前共享盐;基于所述共享密钥和所述当前共享盐生成所述通信双方的当前轮交易密钥;所述通信双方中的发起方利用所述当前轮交易密钥和sm4国密算法对当前轮待交付数据进行加密,得到当前轮加盐加密数据,并将所述当前轮加盐加密数据以及当前轮交付哈希值同时上传至区块链,其中所述当前轮交付哈希值是对所述当前轮待交付数据进行哈希计算后得到的;递增所述当前共享盐得到下一轮共享盐,并根据所述下一轮共享盐和所述共享密钥生成下一轮交易密钥,并将所述下一轮交易密钥应用到所述通信双方的下一轮数据传输过程中。
7.在此方案中,位于同一区块链上的通信双方之间能够进行数据的传输,其中通信双方包括通信发起方和通信接收方,通信双方首先采用基于椭圆曲线的密钥交换方法进行共享密钥的协商和确定,然后协商和确定当前轮数据传输的盐值,并利用sm4国密算法对当前轮待交付数据进行加密,加密过程中使用的密钥的生成过程为:利用共享密钥和当前共
享盐生成当前轮交易密钥,具体为,对共享密钥进行有限域中的加盐操作,其中所添加的盐为通信双方协商并确定好的。
8.在此方案中,通信发起方一方面对当前轮待交付数据进行哈希计算后得到的当前轮待交付哈希值,另一方面同时采用sm4国密算法对当前轮待交付数据进行加密,加密过程中使用的密钥为当前轮交易密钥,发起方还用于同时将加盐加密后的当前轮加盐加密数据和为加盐加密但哈希过后的当前轮待交付哈希值同时上传至区块链。
9.位于同一区块链上的通信接收方从区块链上获取当前轮待交付哈希值以及对应的当前轮加盐加密数据,接收方在本地对当前轮加盐加密数据进行解密,并对解密后的数据进行哈希,验证本地计算的哈希值与链上的当前轮待交付哈希值是否相同,若相同,则确定当前轮加盐加密值是完整的,没有被篡改过。否则,证明数据被破坏。
10.在此方案中,位于同一区块链上的通信双方在一次协商并确定共享密钥和当前共享盐之后,通信双方在持续性多轮交付的过程中,无需再重新协商确定共享密钥和当前共享盐,仅需在下一轮数据传输前对当前共享盐进行递增,递增后的盐值与共享密钥结合生成下一轮新的交易密钥,即无需多次通信节省通信资源,快速实现针对工业互联网的小型连续数据在持续交付的交易,又能保证每一轮数据传输中的加密密钥均是不同的,增强了数据的匿名性,数据传输中即使泄露了一次加密用的密钥,也不会影响该次传输之前和之后的数据的保密性,大大降低了泄露密钥的危害性, 增强了数据传输的安全性。
11.在此方案中,通信发起方作为数据提供者能够同时和多个用户(即通信接收方)进行交易,且发起方仅需要对原始数据进行一次哈希计算即可,所有的通信接收方均可以通过获取链上哈希值进行本地的数据完整性验证,有效降低资源消耗。
12.优选的,所述基于国密的区块链工业数据加密方法还包括:所述通信双方中的接收方从所述区块链上获取所述当前轮交付哈希值和所述当前轮加盐加密数据,所述接收方在本地对所述加盐加密数据进行解密得到解密数据并计算所述解密数据的实时哈希值,确定所述实时哈希值与所述当前轮交付哈希值相同,则确定所述当前轮加盐加密数据完整。
13.在此方案中,通信双方中的接收方作为数据接收者,通过对比实时哈希值和链上获取的当前轮交付哈希值是否相同,来验证链上数据是否完整。
14.优选的,所述协商并确定用于所述通信双方的当前轮数据传输的当前共享盐,具体包括:采用与所述共享密钥同样的协商方法,协商并确定用于所述通信双方的当前轮数据传输的当前共享盐。
15.在此方案中,当前共享盐的协商和确定过程可以是和共享密钥的协商确定过程相同,即同样采用基于椭圆曲线的密钥交换方法来协商和确定通信双方的当前共享盐的盐值,一方面可以减小计算复杂度。另一方面,当前共享盐的协商和确定方法是建立在非对称密钥交换算法上的,可以有效杜绝中间人攻击。
16.优选的,所述协商并确定用于所述通信双方的当前轮数据传输的当前共享盐,具体包括:采用由sm2国密算法进行非对称交换,协商并确定用于所述通信双方的当前轮数据传输的当前共享盐。
17.在此方案中,共享密钥中添加的盐也可以是由sm2国密算法进行非对称交换支持得来的。当前共享盐的协商和确定方法是建立在非对称密钥交换算法上的,可以有效杜绝中间人攻击。
18.优选的,所述基于所述共享密钥和所述当前共享盐生成当前轮交易密钥,具体包括:按公式(1)计算所述当前轮交易密钥:其中,i代表数据传输的轮数,且ka代表所述共享密钥;k
a2
代表所述当前共享盐;mod 表示模运算;klen代表密钥派生函数输出数据的长度。
19.优选的,所述对所述当前轮待交付数据进行哈希计算,具体包括:使用sha256哈希算法对所述当前轮待交付数据进行哈希计算,得到所述当前轮交付哈希值。
20.第二方面,本技术还提供了一种基于国密的区块链工业数据加密装置,包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的所述程序指令以实现如第一方面中任一技术方案所述的基于国密的区块链工业数据加密方法。
21.第三方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码,所述程序代码用于实现如第一方面中任一技术方案所述的基于国密的区块链工业数据加密方法。
22.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:该方法初始时进行通信双方之间的共享密钥和当前共享盐的协商和确定,并基于该共享密钥和当前共享盐生成当前轮交易密钥,并将该交易密钥作为sm4国密算法的加密密钥对当前轮数据传输中的交付数据进行加密,得到对应的加盐加密数据,实现了对sm4国密算法加密过程的改进,对其加密过程中使用的密钥进行了有限域中的加盐操作,进一步提高提高加密算法的安全性。
23.并且,该方法将待交付数据的加盐加密数据以及交付哈希值同时存储至区块链上,一方面由于区块链的不可篡改性,增强了数据的抗抵赖性,另一方面,该方法可以保证一个数据提供者同时和多个用户进行交易,只需要哈希一次数据即可,降低了保证完整性的资源消耗;再一方面,通信接收方可以通过对比链上哈希值和链上的交付哈希值对数据进行双重验证,安全性更高,再一方面,该方法传输数据时所使用的密钥为持续变化的,所以即使泄露了一次传输的密钥,也不会影响之前和之后传输的数据的保密性,大大降低了泄露密钥的危害性。并且,通信双方之间仅需一次协商和确定共享密钥和共享盐,就可以得到用于多轮持续性交付的一连串交易密钥,大大节省通信资源,减少了通信次数,同样也减少了通信被窃听的风险,降低了密钥泄露风险。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
25.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
26.图1为本技术实施例提供的一种基于国密的区块链工业数据加密方法的流程示意图;图2为本技术实施例提供的一种基于国密的区块链工业数据加密装置的结构示意图。
具体实施方式
27.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.为了便于理解,下面对本技术实施例提供的一种基于国密的区块链工业数据加密方法进行详细介绍,参见图,一种基于国密的区块链工业数据加密方法,包括以下步骤:步骤s1,采用基于椭圆曲线的密钥交换方法进行密钥协商,确定通信双方的共享密钥;步骤s2,协商并确定用于所述通信双方的当前轮数据传输的当前共享盐;步骤s3,基于所述共享密钥和所述当前共享盐生成所述通信双方的当前轮交易密钥;步骤s4,所述通信双方中的发起方利用所述当前轮交易密钥和sm4国密算法对当前轮待交付数据进行加密,得到当前轮加盐加密数据,并将所述当前轮加盐加密数据以及当前轮交付哈希值同时上传至区块链,其中所述当前轮交付哈希值是对所述当前轮待交付数据进行哈希计算后得到的;步骤s5,递增所述当前共享盐得到下一轮共享盐,并根据所述下一轮共享盐和所述共享密钥生成下一轮交易密钥,并将所述下一轮交易密钥应用到所述通信双方的下一轮数据传输过程中。
29.在本技术的一些具体实施例中,位于同一区块链上的通信双方之间能够进行数据的传输,其中通信双方包括通信发起方和通信接收方,通信双方首先采用基于椭圆曲线的密钥交换方法进行共享密钥的协商和确定,然后协商和确定当前轮数据传输的盐值,并利用sm4国密算法对当前轮待交付数据进行加密,加密过程中使用的密钥的生成过程为:利用共享密钥和当前共享盐生成当前轮交易密钥,具体为,对共享密钥进行有限域中的加盐操作,其中所添加的盐为通信双方协商并确定好的。
30.在本技术的一些具体实施例中,通信发起方一方面对当前轮待交付数据进行哈希计算后得到的当前轮待交付哈希值,另一方面同时采用sm4国密算法对当前轮待交付数据进行加密,加密过程中使用的密钥为当前轮交易密钥,发起方还用于同时将加盐加密后的
当前轮加盐加密数据和为加盐加密但哈希过后的当前轮待交付哈希值同时上传至区块链。
31.位于同一区块链上的通信接收方从区块链上获取当前轮待交付哈希值以及对应的当前轮加盐加密数据,接收方在本地对当前轮加盐加密数据进行解密,并对解密后的数据进行哈希,验证本地计算的哈希值与链上的当前轮待交付哈希值是否相同,若相同,则确定当前轮加盐加密值是完整的,没有被篡改过。否则,证明数据被破坏。
32.在本技术的一些具体实施例中,位于同一区块链上的通信双方在一次协商并确定共享密钥和当前共享盐之后,通信双方在持续性多轮交付的过程中,无需再重新协商确定共享密钥和当前共享盐,仅需在下一轮数据传输前对当前共享盐进行递增,递增后的盐值与共享密钥结合生成下一轮新的交易密钥,即无需多次通信节省通信资源,快速实现针对工业互联网的小型连续数据在持续交付的交易,又能保证每一轮数据传输中的加密密钥均是不同的,增强了数据的匿名性,数据传输中即使泄露了一次加密用的密钥,也不会影响该次传输之前和之后的数据的保密性,大大降低了泄露密钥的危害性, 增强了数据传输的安全性。
33.在本技术的一些具体实施例中,通信发起方作为数据提供者能够同时和多个用户(即通信接收方)进行交易,且发起方仅需要对原始数据进行一次哈希计算即可,所有的通信接收方均可以通过获取链上哈希值进行本地的数据完整性验证,有效降低资源消耗。
34.在本技术的一些具体实施例中,采用基于椭圆曲线的密钥交换方法进行密钥协商,确定通信双方的共享密钥,为现有技术,下面简单介绍其过程,可以包括以下步骤:步骤一:初始化密钥协商参数:通信双方预先确定一条椭圆曲线,并为通信双方用户a和用户b分别配置好公钥pa、pb和私钥da、db,如何确定椭圆曲线以及如何为用户配置公钥和私钥均为现有技术,这里不再赘述。
35.步骤二:通信双方中的发起方用户a用随机数发生器产生随机数,并计算椭圆曲线点;其中,其中,g 表示椭圆曲线的基点,n 表示g 的阶( 通常为素数),[]g 表示计算g 的倍点。
[0036]
步骤三:将发送给通信双方中的接收方用户b,用户b用随机数发生器产生随机数,计算椭圆曲线点,计算椭圆曲线点,同样,[]g 表示计算g 的 倍点。
[0037]
步骤四:用户b从中取出域元素,将其数据类型转换为整数形式,计算,其中,,表示顶函数,即表示求大于或等于x的最小整数;表是按比特与运算。为和n的函数。
[0038]
然后用户b计算,其中,表示用户b 的私钥,mod 表示模运算。
[0039]
步骤五:用户b验证是否满足椭圆曲线方程,若不满足则协商失败,重新开始;否则从中取出域元素,按域元素到整数的转换将的数据类型转换为整数,计算;为和n的函数。
[0040]
步骤六:用户b计算椭圆曲线点,若是无穷
远点,则协商失败,重新开始;否则按域元素到字节串的转换和字节串到比特串的转换的方法将的数据类型转换为比特串;其中,h 表示余因子,h = #e(fq)/n,f
q 表示包含q 个元素的有限域,e(fq) 表示域f
q 中椭圆曲线的所有有理点组成的集合,#e(fq)表示集合中元素的个数;p
a 表示用户a 的公钥,需要说明的是,如何确定v 是否为无穷远点为现有技术,不再赘述。
[0041]
步骤七:用户b计算,然后将发送给用户a;其中,kdf 表示密钥派生函数;klen 表示密钥派生函数输出数据的长度;z
a 是由用户a的可辨别标识、椭圆曲线方程参数以及用户a的公钥计算出的杂凑值;z
b 是由用b的可辨别标识、椭圆曲线方程参数以及用户b的公钥计算出的杂凑值;|| 表示拼接。需要说明的是,za和zb的计算方式是现有技术,这里不做赘述。
[0042]
步骤八:用户a从中取出域元素,将其数据类型转换为整数形式,并依次计算;;其中,d
a 表示用户a 的私钥。
[0043]
步骤九:用户a验证是否满足椭圆曲线方程,若不满足则协商失败,重新开始;否则从中取出域元素,用域元素到整数的转换方法将的数据类型转换为整数,计算;步骤十:用户a计算椭圆曲线点,其中,p
b 表示用户b 的公钥。若u是无穷远点,则a协商失败;否则域元素到字节串的转换,字节串到域元素的转换的方法将的数据类型转换为比特串;步骤十一:计算密钥;至此,确定密钥协商成功,用户a 和用户b 均得到了密钥,即k
a 和kb,两者的具体取值是一样的。共享密钥为=,长度klen为128;步骤十二:使用与共享密钥同样的方法盐协商成功,共享盐为=,长度klen为128;步骤十三:计算密钥=(+)mod(即根据共享密钥和共享盐计算加盐加密密钥);步骤十四:使用已有的sm4国密算法加密数据,密钥为,然后发送到区块链上,用户a从区块链上获取数据,并用解密;步骤十五:用户b使用sha256哈希算法对数据进行哈希,并传上链。用户从区块链上获取哈希值,本地对解密的数据进行哈希,并且验证哈希是否相同,相同则代表数据具有完整性,否则数据被破坏步骤十六:进行下一轮数据传输的时候,递增共享盐,计算新的密钥,令=(+2
·
)mod,然后充重复步骤十四和步骤十五,这样每次加密使用的密钥都不同,增强了匿名性。
[0044]
在针对多用户交付时候,步骤十五可以只做一次,但是所有用户都可以用来验证完整性,节省了资源。步骤十三的密钥在每传输一次后就改变一次,增强了数据传输的安全性。
[0045]
在本技术的一些具体实施例中,所述基于国密的区块链工业数据加密方法还包
括:所述通信双方中的接收方从所述区块链上获取所述当前轮交付哈希值和所述当前轮加盐加密数据,所述接收方在本地对所述加盐加密数据进行解密得到解密数据并计算所述解密数据的实时哈希值,确定所述实时哈希值与所述当前轮交付哈希值相同,则确定所述当前轮加盐加密数据完整。
[0046]
在本技术的一些具体实施例中,通信双方中的接收方作为数据接收者,通过对比实时哈希值和链上获取的当前轮交付哈希值是否相同,来验证链上数据是否完整。
[0047]
在本技术的一些具体实施例中,所述协商并确定用于所述通信双方的当前轮数据传输的当前共享盐,具体包括:采用与所述共享密钥同样的协商方法,协商并确定用于所述通信双方的当前轮数据传输的当前共享盐。
[0048]
在本技术的一些具体实施例中,当前共享盐的协商和确定过程可以是和共享密钥的协商确定过程相同,即同样采用基于椭圆曲线的密钥交换方法来协商和确定通信双方的当前共享盐的盐值,一方面可以减小计算复杂度。另一方面,当前共享盐的协商和确定方法是建立在非对称密钥交换算法上的,可以有效杜绝中间人攻击。
[0049]
在本技术的一些具体实施例中,所述协商并确定用于所述通信双方的当前轮数据传输的当前共享盐,具体包括:采用由sm2国密算法进行非对称交换,协商并确定用于所述通信双方的当前轮数据传输的当前共享盐。
[0050]
在本技术的一些具体实施例中,共享密钥中添加的盐也可以是由sm2国密算法进行非对称交换支持得来的。当前共享盐的协商和确定方法是建立在非对称密钥交换算法上的,可以有效杜绝中间人攻击。
[0051]
在本技术的一些具体实施例中,所述基于所述共享密钥和所述当前共享盐生成当前轮交易密钥,具体包括:按公式(1)计算所述当前轮交易密钥:=(+)mod其中,i代表数据传输的轮数,且;ka代表所述共享密钥;k
a2
代表所述当前共享盐;mod 表示模运算;klen代表密钥派生函数输出数据的长度。
[0052]
在本技术的一些具体实施例中,所述对所述当前轮待交付数据进行哈希值计算,具体包括:使用sha256哈希算法对所述当前轮待交付数据进行哈希计算,得到所述当前轮交付哈希值。
[0053]
在本技术的又一些实施例中,还提供了一种基于国密的区块链工业数据加密装置,参见图2,该装置包括:存储器20,用于存储程序指令;处理器21,用于调用所述存储器中存储的所述程序指令以实现如上述任一实施例
中所述的基于国密的区块链工业数据加密方法。
[0054]
在本技术的又一些实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序代码,所述程序代码用于实现如上述任一实施例中所述的基于国密的区块链工业数据加密方法。
[0055]
可以理解的是,本技术中的计算机可读存储介质可以为u盘,光盘等存储介质,本技术不作限定。
[0056]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0057]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1