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

基于SM9的多层次标识解析体系的密钥封装方法及设备与流程

2022-02-24 17:43:55 来源:中国专利 TAG:

基于sm9的多层次标识解析体系的密钥封装方法及设备
技术领域
1.本发明涉及标识解析技术领域,特别涉及基于sm9的多层次标识解析体系的密钥封装方法及设备。


背景技术:

2.密码技术是保护信息安全的主要手段,它通过对信息进行重新编码,在保证信息的完整性和正确性的同时,也保证信息的机密性,防止信息被篡改、伪造和泄露。加密是使信息在非授权的情况下不可解读的过程。加密依据是一种密码算法和至少应有一种密钥,对于加密信息即使知道了算法,没有密钥,也无法解读信息。
3.为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括ssf33,sm1,sm2,sm3,sm4,sm7,sm9,祖冲之密码算法等等。其中ssf33,sm1,sm4,sm7,祖冲之密码是对称密码算法;sm2,sm9是非对称密码算法;sm3是哈希算法。其中sm9是标识密码算法,可以实现基于身份的密码体制,也就是公钥与用户的身份信息即标识相关,从而与传统意义上的公钥密码体系相比有许多优点,省去了证书管理。


技术实现要素:

4.本发明旨在至少在一定程度上解决以下技术问题:
5.标准的sm9算法是普通的标识密码算法,并没有涉及多层次标识密码的相关考虑,因此再实际应用中,经常被诟病于起密钥中心效率较低,以及密钥中心的集中权力导致的安全性不足等问题。
6.本发明实施例的第一方面提供了一种基于sm9的多层次标识解析体系的密钥封装方法,所述方法包括:
7.加密用户根据解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥,并通过所述每一级密钥中心的第一级密钥中心对所述封装后的密钥进行验证;
8.验证通过后,将所述封装后的密钥发送至解密用户,使所述解密用户通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥。
9.本发明示例中,使用基于sm9算法的多层次标识密码加解密算法,通过对传统的sm9算法进行改造,将标准的sm9加解密算法改造为多层次的标识密码加解密算法,增强了sm9加解密算法的可用性和安全性,使其能够被应用在更广泛的领域。
10.在一个示例中,所述每一级密钥中心的主公钥、所述解密用户的主公钥的生成方法包括:
11.所述每一级密钥中心、所述解密用户分别生成各自的随机数,通过椭圆曲线加密算法生成主公钥;
12.将所述每一级密钥中心的主公钥发送至该级密钥中心对应的多个下级密钥中心
和所述解密用户。
13.在一个示例中,所述用户密钥的生成方法包括:
14.通过本级密钥中心对应的下一级密钥中心的标识或解密用户的标识,确定第一参数;
15.通过所述本级密钥中心的第一参数和上一级密钥中心的加密密钥生成下一级密钥中心的用户密钥或解密用户的用户密钥。
16.在一个示例中,所述通过本级密钥中心对应的下一级密钥中心的标识,确定第一参数之后,还包括:
17.所述每一级密钥中心中的第一级密钥中心通过基于椭圆曲线加密算法,确定所述第一级密钥中心的用户密钥。
18.在一个示例中,通过本级密钥中心对应的下一级密钥中心的标识或解密用户的标识,确定第一参数之后,所述加密用户的加密密钥的生成方法包括:
19.通过所述第一参数和本级密钥中心生成的随机数,生成第二参数,其中,所述随机数与生成所述主公钥相关;
20.通过所述第二参数和上一级密钥中心的加密密钥生成下一级密钥中心的用户密钥或解密用户的用户密钥。
21.在一个示例中,所述加密用户根据所述解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥,包括:
22.所述加密用户生成新的随机数,并通过所述新的随机数和所述解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥。
23.在一个示例中,所述通过所述每一级密钥中心的第一级密钥中心对所述封装后的密钥进行验证,包括:
24.基于所述第一级密钥中心的主公钥,通过椭圆曲线加密算法,生成计算参数;
25.根据所述计算参数、所述解密用户的标识,解除所述封装后的密钥,得到所述解密密钥,并对所述解密密钥进行验证。
26.在一个示例中,所述对所述解密密钥进行验证,包括:
27.若所述解密密钥验证失败,则所述加密用户重新生成新的随机数,并通过所述重新生成的新的随机数和所述解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥。
28.在一个示例中,所述解密用户通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥之前,还包括:
29.所述解密用户通过椭圆曲线加密算法验证所述被封装的密钥是否在指定范围内;
30.若在所述指定范围内,所述解密用户则通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥。
31.本发明实施例的第二方面提供了一种基于sm9的多层次标识解析体系的密钥封装设备,包括:
32.处理器;以及
33.与所述处理器通信连接的存储器,所述存储器上存储有计算机可读存储指令,所述指令被所述处理器执行,以使所述处理器能够:
34.加密用户根据所述解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥,并通过所述每一级密钥中心的第一级密钥中心对所述封装后的密钥进行验证;
35.验证通过后,将所述封装后的密钥发送至解密用户,使所述解密用户通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥。
36.本发明示例使用基于sm9算法的多层次标识密码加解密算法,通过对传统的sm9算法进行改造,将标准的sm9加解密算法改造为多层次的标识密码加解密算法,增强了sm9加解密算法的可用性和安全性,使其能够被应用在更广泛的领域。
附图说明
37.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
38.图1为本发明实施例提供的多层次标识密码体系结构示意图;
39.图2为本发明实施例提供的方法流程示意图;
40.图3为本发明实施例提供的主公钥和用户密钥的生成过程示意图;
41.图4为本发明实施例提供的密钥封装过程示意图;
42.图5为本发明实施例提供的密钥解封装示意图;
43.图6为本发明实施例提供的设备框架示意图。
具体实施方式
44.为了更清楚的阐释本技术的整体构思,下面结合说明书附图以示例的方式进行详细说明。
45.基于标识的密码体系(identity-based cryptograph,ibc)最主要的观点是不需要由证书中心生成公私钥对、不需要使用证书传递公钥,而是使用用户标识如姓名、ip地址、电子邮箱地址、手机号码等代表用户的标识信息作为公钥,私钥则有密钥中心(key generate center,kgc)根据系统主密钥和用户标识计算得出。后来通过椭圆曲线上的理算对数难题构造出可用的标识密码算法,兼顾了安全和效率。商用密码算法sm9也是一种标识密码算法。标识密码算法的中的密钥中心需要承担所有用户的密码生成工作,同时也需要同所有用户建立安全的通讯通道,需要承担很大的运算和网络压力。
46.为了克服这个缺陷,有研究者提出了多层次标识密码算法(hierarchical identity based cryptograph,hibc),通过构造树形的密钥中心结构,将单一的密钥中心需要承担的运算和传输任务分配到多个低级密钥中心,减轻了单一密钥中心的压力,同时通过算法的合理设计保障了不同密钥中心下的用户可以高效准确的进行信息发送和签名验证。通过多层次标识密码算法缓解了密钥中心的压力,也一定程度上增强了标识密码算法中密钥托管的问题。在传统的标识密码算法中,所有用户的密钥都由密钥中心生成,因此密钥中心掌握了所有用户的密钥,可以对其签名进行伪造或对其收到的加密信息进行解
密,再多层次标识密码算法中,每个密钥中心智能控制部分用户的密钥,分散了单一密钥中心的权力,增强了整个系统的安全性。
47.标准的sm9算法是普通的标识密码算法,并没有涉及多层次标识密码的相关考虑,因此再实际应用中,经常被诟病于起密钥中心效率较低,以及密钥中心的集中权力导致的安全性不足等问题。对sm9算法进行拓展,通过sm9算法构造多层次标识密码算法,是对sm9算法的合理优化,使其可以从一定程度上克服安全性不足和效率较低的问题,有更广泛的使用场景。
48.因此,本发明实施例提供了一种基于sm9的多层次标识解析体系的密钥封装方法及相应方案,通过对sm9算法进行拓展,通过sm9算法构造多层次标识密码算法,使sm9算法的安全性和效率得到一定程度的改善。在不改变sm9算法中双线性函数,哈希函数即相关参数的选取方法的情况下,对sm9算法的密钥封装和解封装过程进行改造,构造基于sm9算法的多层次标识密码加解密算法。
49.现有技术中,标准的sm9算法包括密钥封装机制和消息封装机制,结合这两种机制可以构造sm9公钥加密算法。加密用户通过解密用户的标识生成消息封装机制的密钥,并使用消息封装机制对信息进行加密;将密钥通过密钥封装机制发送给解密用户,解密用户解封装后对加密信息进行解密。
50.消息封装机制可以看作是对称加密机制,通常使用商密算法中的sm4进行。因此在对sm9算法进行改造的过程中,可以保持消息封装机制不变,只需要对密钥封装和解封装机制进行改造,使其成为多层次标识密码算法。标准的sm9算法的密钥封装和解封装算法包括三个阶段,分别是密钥生成阶段、密钥封装阶段和密钥解封装阶段。
51.标准的sm9算法在应用前需提前设置好相关参数,包括:素因子n;n阶循环群g1及其生成元p1;n阶循环群g2及其生成元p2;双线性函数e,其值域为n阶乘法循环群g
t
;密钥生成函数kdf,还有一些关于椭圆曲线的相关参数,在这里不再详述。具体的步骤如下:
52.首先是密钥生成阶段,密钥中心(现有技术仅有一个密钥中心)产生随机数ke∈[1,n-1],计算n阶循环群g1中的元素p
pub-e
=[ke]p1作为加密主公钥;密钥中心秘密保存随机数ke,公开p
pub-e

[0053]
密钥中心选择并公开用一个字节表示的加密私钥生成函数识别符hid,用户b(解密用户)的标识为idb,密钥中心在有限域fn上计算t1=h1(idb||hid,n) ke;若t1=0,则重新产生加密主私钥,并重新进行相关计算;否则计算然后计算解密用户的用户密钥deb=[t2]p2。
[0054]
在密钥封装阶段,主要为加密用户即密钥的封装者将密钥封装的过程,为了封装比特长度为klen的密钥给用户b(解密用户),作为封装者的用户a(加密用户)需要执行以下运算步骤:
[0055]
计算n阶循环群g1中的元素qb=[h1(idb||hid,n)]p1 p
pub-e
;然后,加密用户产生随机数r∈[1,n-1];并计算n阶循环群g1中的元素c=[r]qb,将c的数据类型转换为比特串,作为被封装后的密钥(密文);
[0056]
密文生成后,通过主公钥对其进行验证,计算值域为n阶乘法循环群g
t
中的元素g=e(p
pub-e
,p2);然后计算群g
t
中的元素w=gr,将w的数据类型转换为比特串;然后根据这些参数计算k=kdf(c||w||idb,klen),对加密密钥k进行验证,若k为全0比特串,则重新生成
随机数r,密文。若k不全为0比特串,则输出(k,c),其中k是未被封装的密钥(加密密钥),c是被封装后的密钥(密文)。
[0057]
加密用户生成密文后,将密文发送给解密用户,解密用户收到密文c后,为了对比特长度为klen的密钥解封装,需要执行以下运算步骤:
[0058]
解密用户验证c∈n阶循环群g1是否成立,若不成立则报错并退出;若成立则计算群g
t
中的元素w

=e(c,deb),将w

的数据类型转换为比特串;然后将c的数据类型转换为比特串,计算封装的密钥k

=kdf(c||w

||idb,klen),若k

为全0比特串,则报错并退出;若k

不为全0比特串输出解密密钥k

,用于解密加密用户发过来的加密信息。
[0059]
图1为本发明实施例提供的多层次标识密码体系结构示意图,为了对sm9的密钥封装和解封装过程进行改造,使其适应于多层次标识密码体系,能够构造多层次标识密码加解密算法,需要在算法的密钥生成安全性上做出一定牺牲,具体体现在需要将t1=h1(idb||hid,n) ke改为t1=h1(idb||hid,n),将t1中ke的部分去掉,一定程度上降低了用户私钥deb生成过程中与ke的耦合,使得多层次标识密码加解密算法得以实现,也从一定程度上减小了安全性。多层次标识密码算法需要构造一个树形结构,从根节点起,根据具体情况和实际需求构造多级密钥中心,叶子节点为用户,加密信息的发送和接收可以在不同的子节点之间进行,包括叶子节点和其他子节点即用户和除根节点外的密钥中心。需要注意的是,所有的用户和非一级密钥中心之间都可以相互进行加密通信,而非只有用户和用户之间可以进行加密通信。
[0060]
图2为本发明实施例提供的方法流程示意图,如图2所示,本发明实施例提供的基于sm9的多层次标识解析体系的密钥封装方法,所述方法包括:
[0061]
s201加密用户根据解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥,并通过所述每一级密钥中心的第一级密钥中心对所述封装后的密钥进行验证;
[0062]
s202验证通过后,将所述封装后的密钥发送至解密用户,使所述解密用户通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥。
[0063]
本发明实施例提供的方法主要包括密钥生成阶段,密钥封装阶段和密钥解封装阶段,下面结合附图,对各阶段进行具体的介绍。
[0064]
图3为本发明实施例提供的主公钥和用户密钥的生成过程示意图;密钥生成阶段,信息只需要从上级节点发送至下级节点,没有跨层级或同层级节点间的信息传递;如图所示,步骤包括:
[0065]
各级密钥中心分别产生随机数kei∈[1,n-1],计算g1中的元素p
pub-ei
=[kei]p1;
[0066]
各级密钥中心计算在有限域fn上计算t
1i
=h1(id
i 1
||hid,n),其中id
i 1
为下级密钥中心或用户的标识;
[0067]
然后计算t
2i
=kei·
t
1i
,然后计算用户密钥dei=de
i-1
[t
2i
]p2,当i=1时,de0=[t
20
]p2。
[0068]
各级密钥中心秘密保存随机数kei,将主公钥p
pub-ei
和用户密钥dei发送给下级密钥中心或用户。
[0069]
图4为本发明实施例提供的密钥封装过程示意图;如图4所示,密钥封装阶段,为加
密用户即密钥的封装者将密钥封装的过程,为了封装比特长度为klen的密钥给用户b,作为封装者的用户a需要执行以下运算步骤:
[0070]
首先,计算群g1中的元素q
bi
=h1(id
bi
||hid,n)p1=t
1i
p1,其中i=1,...,n,n为解密用户或密钥中心在多层树型结构中所处的层数;
[0071]
然后,产生随机数r∈[1,n-1],生成密文c,计算群g1中的元素c0=[r]p1,ci=[r]q
bi
,i=2,...,n,将c=[c0,c2,c3...,cn]的数据类型转换为比特串;
[0072]
然后,加密用户对生成的密文c进行验证,计算群g
t
中的元素g=e(p
pub-e1
,t
11
p2),由于所有用户和密钥中心都是一级密钥中心的子节点,因此加密用户一定有p
pub-e1
的取值;
[0073]
最后,计算群g
t
中的元素w=gr,将w的数据类型转换为比特串;计算加密密钥k=kdf(c||w||idb,klen),若加密密钥k为全0比特串,则重新产生随机数r。若加密密钥k不为全0比特串,则输出(k,c),其中k是未被封装的密钥,c是封装密文。
[0074]
图5为本发明实施例提供的密钥解封装示意图;如图5所示,密钥解封装阶段,解密用户收到封装密文c后,为了对比特长度为klen的密钥解封装,需要执行以下运算步骤:
[0075]
首先验证密文c∈g1是否成立,若不成立则报错并退出;
[0076]
若成立则计算群g
t
中的元素并将w

的数据类型转换为比特串;
[0077]
然后将密文c的数据类型转换为比特串,计算解密密钥k

=kdf(c||w

||idb,klen),若k

为全0比特串,则报错并退出,若k

不为全0比特串,输出解密密钥k


[0078]
本发明实施例通过对加密密钥解封装,加密用户可以将封装好加密密钥发送给解密用户,解密用户通过对封装后的密钥进行解封装获取正确的解密密钥,再使用对称加密方法对信息进行加密和解密地操作。
[0079]
基于同样的思路,本发明实施例还提供了上述方法对应的设备。图6为本发明实施例提供的设备框架示意图,如图6所示,基于sm9的多层次标识解析体系的密钥封装设备,包括:
[0080]
处理器;以及
[0081]
与所述处理器通信连接的存储器,所述存储器上存储有计算机可读存储指令,所述指令被所述处理器执行,以使所述处理器能够:
[0082]
加密用户根据所述解密用户对应的每一级密钥中心的标识和所述解密用户的标识,生成封装后的密钥,并通过所述每一级密钥中心的第一级密钥中心对所述封装后的密钥进行验证;
[0083]
验证通过后,将所述封装后的密钥发送至解密用户,使所述解密用户通过所述解密用户的用户密钥、所述解密用户对应的每一级密钥中心的主公钥、所述解密用户的主公钥对对所述封装后的密钥进行解封装,得到解密密钥。
[0084]
本发明实施例本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0085]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,
本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在申请中。
再多了解一些

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

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

相关文献