一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于SM9算法的密钥分发和数据传输方法与流程

2022-07-10 08:07:10 来源:中国专利 TAG:

一种基于sm9算法的密钥分发和数据传输方法
技术领域
1.本发明涉及信息安全密码技术领域,尤其涉及一种基于sm9算法的密钥分发和数据传输方法。


背景技术:

2.密码技术是信息安全的基础技术,密钥则是密码技术安全应用的基础和信息化安全的核心元素。随着我国信息化产业的高速全面发展,信息化系统也进入全面的建设阶段,系统中涉及的密钥分发过程面临着越来越严格的安全性要求。
3.当前密钥协商,常见的做法有密钥分发和密钥协商。密钥分发:由第三方权威机构生成密钥,把密钥通过安全手段分别传给双方节点,双方节点使用自己的私有信息解密获取到密钥。密钥协商:由双方节点,通过dh等密码算法,进行密钥协商,或者通过双方传输的其他信息协商密钥。
4.中国专利文献cn102833073a公开了一种“增强密钥分发安全性的数据传输格式及其封装方法”。包括指令区和数据体区,其中数据体区包括保护密钥区域、应用密钥区域和mac初始化向量,保护密钥区域和应用密钥区域均包括密钥索引区域、算法区域和数据区域。上述技术方案难以保证分发密钥的第三方安全性,并且协商密钥要求交互频繁。


技术实现要素:

5.本发明主要解决原有的技术方案对第三方分发密钥安全性难以保证且协商密钥要求交互频繁的技术问题,提供一种基于sm9算法的密钥分发和数据传输方法,采用sm9算法,通过密钥分发中心进行密钥分发,从而达到协商密钥的效果,同时经过数据转发中心转发数据,保证数据的安全传输和安全审计。
6.本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明包括以下步骤:
7.s1构建密钥分发和数据传输系统;
8.s2进行环境部署阶段初始化;
9.s3节点a和节点b分别生成密钥;
10.s4使用密钥进行加密并进行数据传输;
11.s5将传输数据存储以用于数据审计。
12.密钥和数据的可追溯性,密钥分发中心可以对ab节点使用的密钥做管理,ab节点双方生成的密钥是由密钥分发中心生成,密码对应了唯一的ra和rb。在必要时(如司法机构需要还原数据),可以由kgc来重新计算双方的密钥,从数据转发中心根据标识信息和校验信息提取到传输的密文,从而解密还原双方的传输数据。目前常见的市面上的做法,第三方密钥分发中心,均能够获取到完整的密钥信息,可以直接推导出ab节点的传输密钥,如果密钥分发中心被攻击,还可以篡改传输的数据内容。而如果只是做密钥因子生成,传输数据难以追溯,不具备司法还原等数据审计能力。
13.作为优选,所述的步骤s1中密钥分发和数据传输系统包括密钥分发中心,所述密钥分发中心分别与数据库、节点a、节点b相连,所述节点a、节点b经过数据转发中心与数据库相连。数据的安全性,密钥分发中心无法直接获取到ab节点的密钥,密钥分发中心不具有破解节点双方密文的能力,从而进一步保证节点双方传输数据的安全性。
14.作为优选,所述的步骤s2进行环境部署阶段初始化具体包括:
15.s2.1节点a和节点b从密钥生成中心(kgc)获取智能密码钥匙;
16.s2.2节点a和节点b把自己的身份标识信息注册到密钥分发中心,并与节点设备进行绑定;
17.s2.3密钥分发中心把节点a、节点b的注册信息同步到数据转发中心。
18.作为优选,所述的步骤s2.1具体包括:
19.s2.11节点a和节点b分别向权威机构的密钥生成中心申请支持sm9算法的ibc智能密码钥匙;
20.s2.12密钥生成中心针对节点a和节点b的身份标识信息ida、idb进行认证后,生成对应私钥信息,装载到ibc智能密码钥匙中;
21.s2.13节点a和节点b获取分别携带了各自的私钥信息的智能密码钥匙。
22.作为优选,所述的步骤s3具体包括:
23.s3.1节点a准备和节点b通信,向密钥分发中心申请密钥,申请信息中携带节点a的ida和节点b的idb;
24.s3.2密钥分发中心生成随机数ra和rb,分别使用ida和idb计算ra和rb,密钥分发中心存储ra、rb、ida和idb到数据库中;
25.s3.3密钥分发中心向节点a返回密钥因子1(ra和rb),向节点b推送密钥因子2(rb和ra),密钥因子1使用ida进行sm9加密传输,密钥因子2使用idb进行sm9加密传输;
26.s3.4节点a收到返回消息,使用a节点设备的ibc智能密码钥匙中存储的私钥进行sm9解密计算,得到密钥因子1,使用密钥因子1生成密钥ska;
27.s3.5节点b收到推送消息,使用b节点设备的ibc智能密码钥匙中存储的私钥进行sm9解密计算,得到密钥因子2,使用密钥因子2生成密钥skb。
28.双方发送的密文数据中,携带了经过密钥计算的校验值,该校验值只能由双方计算出来,具有抗抵赖性。
29.作为优选,所述的步骤s4具体包括:
30.s4.1节点a使用密钥ska加密传输的数据,节点b使用密钥skb解密传输的数据;
31.s4.2节点a计算校验值sa,附带在密文数据上,通过数据转发中心,传输给节点b;
32.s4.3节点b校验sa,检验成功,密文数据有效,校验失败,密文数据无效。
33.作为优选,所述的ra的计算方式具体为:
34.计算群g1中的元素
35.qb=[h1(idb||hid,n)]p1 ppub
[0036]
计算群g1中的元素
[0037]
ra=[ra]qb
[0038]
rb的计算方式具体为:
[0039]
计算群g1中的元素
[0040]
qa=[h1(ida||hid,n)]p1 ppub
[0041]
计算群g1中的元素
[0042]
rb=[rb]qa
[0043]
其中gt为阶数为素数n的循环乘法群;
[0044]
g1为阶数为素数n的循环加法群,p1为g1的生成元;g2为阶数为素数n的循环加法群,p2为g2的生成元;e为从g1
×
g2到gt的满足双线性对和非退化性对;h1()h2()为密码杂凑函数;hid为密钥生成中心选择并公开的一个字节,为h1的输入一部分;ida为用户a标识;idb为用户b标识;qa为用户a公钥,qa=[h1(ida||hid,n)]p ppub;ppub为kgc的主公钥;s为kgc的主私钥;派生函数:kdf(z,len),输入比特串z,长度len,输出长度为len比特串k。
[0045]
作为优选,所述的ska的计算方式包括:
[0046]
验证rb属于g1是否成立,计算群gt中的元素
[0047]
g1=e(rb,da)
[0048]
g2=e(ppub,p2)
ra
[0049]
g3=g1
ra
[0050]
把g1,g2,g3转换成比特串;
[0051]
计算群g1中的元素
[0052]
ra=[ra]qb
[0053]
把ra和rb的数据类型转换成比特串,计算
[0054]
ska=kdf(ida||idb||ra||rb||g1||g2||g3,klen)
[0055]
所述skb的计算方式包括:
[0056]
验证ra属于g1是否成立,计算群gt中的元素
[0057]g‘
1=e(ra,db)
[0058]
g’2=e(ppub,p2)rb
[0059]g‘
3=g1rb
[0060]
把g

1,g’2,g

3转换成比特串;
[0061]
计算群g1中的元素rb=[rb]qa;
[0062]
把ra和rb的数据类型转换成比特串,计算
[0063]
skb=kdf(ida||idb||ra||rb||g

1||g

2||g’3,klen)
[0064]
其中,da为用户a私钥,由kgc生成分发给用户a,da=[s/(h1(ida||hid,n) s)]p1;db为用户b私钥,由kgc生成分发给用户b,db=[s/(h1(idb||hid,n) s)]p1。
[0065]
作为优选,所述的sa数据校验计算方式包括:
[0066]
用户b计算
[0067]
sb=h2(0x82||g

1||h2(g

2||g’3||ida||idb||ra||rb))
[0068]
用户a计算
[0069]
s1=h2(0x82||g1||h2(g2||g3||ida||idb||ra||rb))
[0070]
用户a把收到的sb和s1比较,判断是否一致;
[0071]
所述sb数据校验计算方式包括:
[0072]
用户a计算
[0073]
sa=h2(0x83||g1||h2(g2||g3||ida||idb||ra||rb))
[0074]
用户b计算
[0075]
s2=h2(0x83||g’1||h2(g’2||g’3||ida||idb||ra||rb))
[0076]
用户b把收到的sa和s2比较,判断是否一致。
[0077]
作为优选,所述的。
[0078]
本发明的有益效果是:
[0079]
1.具体司法可还原性;
[0080]
2.传输数据携带的校验值具有抵赖性;
[0081]
3.除节点双方外,网络上的任意环节(包括密钥分发中心)被攻击,均不会泄露数据;
[0082]
4.使用的sm9算法,比常用的sm2、rsa算法,安全性更高;
[0083]
5.使用标识进行校验,相较于常用的证书校验,校验更为简单;
[0084]
6.节点双方协商密钥和传输数据,可以是网络不可直达的场景。
附图说明
[0085]
图1是本发明的一种流程图。
[0086]
图2是本发明的一种系统结构图。
具体实施方式
[0087]
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
[0088]
实施例:本实施例的一种基于sm9算法的密钥分发和数据传输方法,如图1所示,包括以下步骤:
[0089]
一、如图2所示,构建密钥分发和数据传输系统
[0090]
二、进行环境部署阶段初始化:
[0091]
(1)节点a和节点b分别向权威机构的密钥生成中心(kgc)申请支持sm9算法的ibc智能密码钥匙,kgc针对节点a和节点b的身份标识信息ida、idb进行认证后,生成对应私钥信息,装载到ibc智能密码钥匙中,分发给节点a和节点b。节点a和节点b智能密码钥匙中分别携带了各自的私钥信息;
[0092]
(2)节点a和节点b把自己的身份标识信息ida、idb注册到密钥分发中心,密钥分发中心把节点设备和身份标识信息进行绑定;
[0093]
(3)密钥分发中心把节点a、节点b的注册信息同步到数据转发中心。
[0094]
三、进行密钥分发:
[0095]
(1)节点a准备和节点b通信,向密钥分发中心申请密钥,申请信息中携带节点a的ida和节点b的idb;
[0096]
(2)密钥分发中心生成随机数ra和rb,分别使用ida和idb计算ra和rb,密钥分发中心存储ra、rb、ida和idb到数据库中;
[0097]
(3)密钥分发中心向节点a返回密钥因子1(ra和rb),向节点b推送密钥因子2(rb和ra),密钥因子1使用ida进行sm9加密传输,密钥因子2使用idb进行sm9加密传输;
[0098]
(4)节点a收到返回消息,使用a节点设备的ibc智能密码钥匙中存储的私钥进行sm9解密计算,得到密钥因子1,使用密钥因子1生成密钥ska;
[0099]
(5)节点b收到推送消息,使用b节点设备的ibc智能密码钥匙中存储的私钥进行sm9解密计算,得到密钥因子2,使用密钥因子2生成密钥skb;
[0100]
(6)节点a使用密钥ska加密传输的数据,节点b使用密钥skb解密传输的数据;
[0101]
(7)节点a计算校验值sa,附带在密文数据上,通过数据转发中心,传输给节点b;
[0102]
(8)节点b校验sa,检验成功,密文数据有效,校验失败,密文数据无效;
[0103]
(9)数据转发中心存储校验值sa、用户标识ida、idb和密文数据到数据库中,
[0104]
用于数据审计。
[0105]
上述步骤6,节点b向节点a发送密文数据使用skb加密,a使用ska解密,同理,步骤7和步骤8的校验方式也可以由节点b先发送sb给节点a校验。
[0106]
运算过程中的公共参数:
[0107]
gt:阶数为素数n的循环乘法群;
[0108]
g1:阶数为素数n的循环加法群,p1为g1的生成元;
[0109]
g2:阶数为素数n的循环加法群,p2为g2的生成元;
[0110]
e:是从g1
×
g2到gt的满足双线性对和非退化性对;
[0111]
h1()h2():密码杂凑函数;
[0112]
hid:密钥生成中心(kgc)选择并公开的一个字节,为h1的输入一部分;
[0113]
ida:用户a标识;
[0114]
idb:用户b标识;
[0115]
qa:用户a公钥,qa=[h1(ida||hid,n)]p ppub;
[0116]
ppub:kgc的主公钥;
[0117]
派生函数:kdf(z,len),输入比特串z,长度len,输出长度为len比特串k
[0118]
kgc私有参数:
[0119]
s:kgc的主私钥
[0120]
用户a私有参数:
[0121]
da:用户a私钥,由kgc生成分发给用户a,da=[s/(h1(ida||hid,n) s)]p1
[0122]
用户b私有参数:
[0123]
db:用户b私钥,由kgc生成分发给用户b,db=[s/(h1(idb||hid,n) s)]p1ra和rb的计算方式
[0124]
a1.计算群g1中的元素qb=[h1(idb||hid,n)]p1 ppub;
[0125]
a2.计算群g1中的元素ra=[ra]qb;
[0126]
b1.计算群g1中的元素qa=[h1(ida||hid,n)]p1 ppub;
[0127]
b2.计算群g1中的元素rb=[rb]qa;
[0128]
ska和skb的计算方式
[0129]
a1.验证rb属于g1是否成立。计算群gt中的元素
[0130]
g1=e(rb,da),
[0131]
g2=e(ppub,p2)
ra
,
[0132]
g3=g1
ra

[0133]
a2.把g1,g2,g3转换成比特串;
[0134]
a3.计算群g1中的元素
[0135]
ra=[ra]qb;
[0136]
a4.把ra和rb的数据类型转换成比特串,计算
[0137]
ska=kdf(ida||idb||ra||rb||g1||g2||g3,klen)。
[0138]
b1.验证ra属于g1是否成立。计算群gt中的元素g

1=e(ra,db),g’2=e(ppub,p2)
rb
,g

3=g1
rb
;b2.把g

1,g’2,g

3转换成比特串;
[0139]
b3.计算群g1中的元素rb=[rb]qa;
[0140]
b4.把ra和rb的数据类型转换成比特串,计算
[0141]
skb=kdf(ida||idb||ra||rb||g

1||g

2||g’3,klen)。
[0142]
sa和sb数据校验计算方式
[0143]
a1.用户b计算
[0144]
sb=h2(0x82||g

1||h2(g

2||g’3||ida||idb||ra||rb));
[0145]
a2.用户a计算
[0146]
s1=h2(0x82||g1||h2(g2||g3||ida||idb||ra||rb));
[0147]
a3.用户a把收到的sb和s1比较,判断是否一致;
[0148]
b1.用户a计算
[0149]
sa=h2(0x83||g1||h2(g2||g3||ida||idb||ra||rb));
[0150]
b2.用户b计算
[0151]
s2=h2(0x83||g’1||h2(g’2||g’3||ida||idb||ra||rb));
[0152]
b3.用户b把收到的sa和s2比较,判断是否一致。
[0153]
密钥和数据的可追溯性,密钥分发中心可以对ab节点使用的密钥做管理,ab节点双方生成的密钥是由密钥分发中心生成,密码对应了唯一的ra和rb。在必要时(如司法机构需要还原数据),可以由kgc来重新计算双方的密钥,从数据转发中心根据标识信息和校验信息提取到传输的密文,从而解密还原双方的传输数据;
[0154]
数据的安全性,密钥分发中心无法直接获取到ab节点的密钥,密钥分发中心不具有破解节点双方密文的能力,从而进一步保证节点双方传输数据的安全性;
[0155]
密钥使用的抗抵赖性,双方发送的密文数据中,携带了经过密钥计算的校验值,该校验值只能由双方计算出来,具有抗抵赖性;
[0156]
密钥的广泛适用性,节点双方可以在网络无法连接到对端的情况下,协商到一致的密钥;
[0157]
算法的安全性,使用sm9算法进行计算,安全性更高。
[0158]
目前常见的市面上的做法,第三方密钥分发中心,均能够获取到完整的密钥信息,可以直接推导出ab节点的传输密钥,如果密钥分发中心被攻击,还可以篡改传输的数据内容。而如果只是做密钥因子生成,又不具备有司法还原的能力。
[0159]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
[0160]
尽管本文较多地使用了密钥分发、数据传输等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献