一种基于SM9的数据条件代理重加密方法、系统及设备与流程

未命名 10-09 阅读:181 评论:0

一种基于sm9的数据条件代理重加密方法、系统及设备
技术领域
1.本发明属于信息安全技术领域,涉及一种数据加密方法、系统及设备,具体涉及一种基于sm9的数据条件代理重加密方法、系统及设备。


背景技术:

2.在信息安全领域中,如何保护数据的安全与隐私一直是人们关注的重点。在基于存储网络的数据分享过程中,服务器可以看到存储的数据,并可能进行一定的审查。如果要保护数据的机密性,一般要在数据上传服务器之前进行加密,常用的加密手段是公钥加密。sm9公钥加解密算法使数据发送者可以利用接收者的标识对数据进行加密,只有接收者可以用相应的私钥对该密文进行解密,从而获取数据。
3.在存储网络中直接使用公钥加密进行数据分享,在很多场景下会给数据分享者带来额外的开销。如果数据分享者有大量数据需要存储并分享,存储到本地不仅花费高昂而且明文存储有数据泄露的风险,更好的选择是将这些数据加密后存储到服务器中,但这样在数据分享者要再次进行数据分享的时候,只能从服务器下载要分享的数据,用自己的私钥进行解密,然后再用接收者的公钥加密后进行分享。这种分享方式很大程度上浪费了服务器的计算功能,并给数据分享者带来了额外的计算开销。


技术实现要素:

4.为了解决在不增加数据分享者额外的加解密开销情况下,满足数据安全传输、安全存储和安全分享的需求问题,本发明提出了一种基于sm9的数据条件代理重加密方法、系统及设备。
5.本发明的方法所采用的技术方案是:一种基于sm9的数据条件代理重加密方法,包括以下步骤:
6.步骤1:用户a加密消息m获得密文c并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;
7.步骤2:用户a生成针对用户b的重加密密钥;
8.步骤3:服务器将密文c转换为针对授权用户b的密文rc;
9.步骤4:用户a解密密文数据c;
10.步骤5:用户b解密密文数据rc。
11.作为优选,步骤1的具体实现包括以下子步骤:
12.步骤1.1:用户a使用自己的标识ida以及加密主公钥p
pub-e
,计算中间参数qa;其中,p
pub-e
=[ke]p1;ke为加密主私钥;p1为群g1的生成元;g1是阶为素数n的加法循环群;
[0013]
步骤1.2:产生随机数r∈[1,n-1],c∈[1,n-1],其中c作为条件参数;
[0014]
步骤1.3:使用随机数r、c与中间参数qa计算3个g1中的元素c0、c1与c
′1;c0=[r]p1,c1=[r]qa,c
′1=[r
·
c]qa;
[0015]
步骤1.4:计算群g
t
中的元素g=e(p
pub
–e,p2);其中,p2为群g2的生成元;g2是阶为素
数n的加法循环群;g
t
是阶为素数n的乘法循环群;e为从g1×
g2到g
t
的双线性对;
[0016]
步骤1.5:计算群g
t
中的元素ω=gr,将ω的数据类型转换为比特串;
[0017]
步骤1.6:使用密钥派生函数kdf(c1||ω||ida,klen)生成密钥k1和k2,使用k1加密消息m得到c2,其中,klen为密钥k1和k2的比特长度之和;
[0018]
步骤1.7:计算c3=mac(k2,c2);其中,mac()为消息认证码函数;
[0019]
步骤1.8:用户a将{idm,c}保存到本地哈希表,输出密文c=idm||c0||c
′1||c1||c2||c3,并上传服务器;其中,idm为数据m的唯一标识。
[0020]
作为优选,步骤2的具体实现包括以下子步骤:
[0021]
步骤2.1:产生随机数x∈[1,n-1];
[0022]
步骤2.2:使用标准的sm9加密算法,用用户b的标识加密x得到rc1;
[0023]
步骤2.3:用户a在本地哈希表中根据数据m的标识查得条件参数c,然后根据自己的私钥ska和部分重加密密钥prka计算重加密密钥rka→b,将rka→b的数据类型转换为比特串:
[0024]
步骤2.4:将数据m的标识、rc1以及rka→b上传到服务器。
[0025]
作为优选,步骤3的具体实现包括以下子步骤:
[0026]
步骤3.1:根据数据m的标识找到对应的密文c;
[0027]
步骤3.2:从c中取出比特串c0、c
′1、c1、c2、c3,将c0、c1、c
′1的数据类型转换为椭圆曲线上的点,验证c0∈i1、c1∈g1和c
′1∈g1是否都成立,若不都成立则报错并退出;
[0028]
步骤3.3:根据c
′1和重加密密钥rka→b计算rc2,将c0、rc2的数据类型转换为比特串;
[0029]
步骤3.4:输出rc=rc1||rc2||c0||c1||c2||c3并存储在服务器中。
[0030]
作为优选,步骤4的具体实现包括以下子步骤:
[0031]
步骤4.1:从c中取出比特串c1,将c1的数据类型转换为椭圆曲线上的点,验证c1∈g1是否成立,若不成立则报错并退出;
[0032]
步骤4.2:计算群g
t
中的元素ω

=e(c1,ska),将ω

的数据类型转换为比特串;
[0033]
步骤4.3:使用密钥派生函数kdf(c1||ω

||ida,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m


[0034]
步骤4.4:计算u=mac(k
′2,c2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m


[0035]
作为优选,步骤5的具体实现包括以下子步骤:
[0036]
步骤5.1:从rc中取出比特串rc1,使用标准的sm9解密算法,用用户b的私钥解密rc1得到x;
[0037]
步骤5.2:从rc中取出比特串c0、c1、rc2,将c0、c1、rc2的数据类型转换为椭圆曲线上的点,验证c0∈g1、c1∈g1和rc2∈g
t
是否都成立,若都成立则根据c0和rc2计算出群g
t
中的元素ω

;并将ω

的数据类型转换为比特串,否则报错并退出;
[0038]
步骤5.3:使用密钥派生函数kdf(c1||ω

||ida,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m


[0039]
步骤5.4:计算u=mac(k
′2,c2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m


[0040]
本发明的系统所采用的技术方案是:一种基于sm9的数据条件代理重加密系统,包括以下模块:
[0041]
加密模块,用于用户a加密消息m获得密文c并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;
[0042]
重加密密钥生成模块,用于用户a生成针对用户b的重加密密钥;
[0043]
重加密模块,用于服务器将密文c转换为针对授权用户b的密文rc;
[0044]
解密模块,用于用户a解密密文数据c;
[0045]
重解密模块,用于用户b解密密文数据rc。
[0046]
本发明的设别所采用的技术方案是:一种基于sm9的数据条件代理重加密设备,其特征在于,包括:
[0047]
一个或多个处理器;
[0048]
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述的基于sm9的数据条件代理重加密方法。
[0049]
本发明用户a使用自己的标识id、重加密条件c、秘密值x和系统公钥加密数据m上传到服务器;加密后的数据密文c包含用户a的标识信息、秘密值x以及重加密条件c,只有拥有条件c的重加密密钥可对c进行重加密;用户a可以使用自身的私钥与数据密文c中包含的c1计算中间参数,解密出数据明文;用户a可以将该密文分享给用户b,方法是用户a生成带条件c的重加密密钥rka→b并上传到服务器,服务器使用rka→b对数据密文c进行重加密,转换为用户b的私钥可以直接解密的重加密密文rc;用户b可使用自身的私钥与重加密密文rc中包含的rc1计算出秘密值x,然后使用秘密值和rc中包含的c0和rc2计算中间参数,进而解密出数据明文。
[0050]
本发明的有益效果在于,使用基于sm9的公钥加密算法的扩展实现,利用数据分享双方的用户标识进行加解密可省去数字证书交换与证书管理等过程;重加密密钥生成过程不需要kgc的参与,从而在实现重加密的同时不会增加kgc的负担;还可以抵抗共谋攻击,服务器与用户b勾结也无法破解用户a的私钥、无法解密用户a的所有密文,只能解密a给出的具有特定条件c的密文。
附图说明
[0051]
下面使用实施例,以及具体实施方式作进一步说明本文的技术方案。另外,在说明技术方案的过程中,也使用了一些附图。对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图以及本发明的意图。
[0052]
附图1为本发明的加密实现流程图;
[0053]
附图2为本发明的重加密密钥生成实现流程图;
[0054]
附图3为本发明的重加密实现流程图;
[0055]
附图4为本发明的解密实现流程图;附图5为本发明实施例在代理重加密的五个阶段中,加密、重加密密钥生成、重加密、解密、重解密的执行时间示意图。
具体实施方式
[0056]
为了便于本领域普通技术人员理解和实施本发明,下面结合附图详细描述本发明
的具体实施方式及其简化和变形。应理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明的保护范围。
[0057]
本实施示例设需要发送的消息为比特串m,mlen为m的比特长度,idm为m的唯一标识,k1_len为分组密码算法中密钥k1的比特长度,k2_len为函数mac(k2,z)中密钥k2的比特长度。本发明提供的一种基于sm9的条件代理重加密方案的加密方法,用户a加密明文m,具体实现包括以下步骤:
[0058]
步骤1:用户a加密消息m获得密文c并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;
[0059]
请见图1,在一种实施方式中,步骤1的具体实现包括以下子步骤:
[0060]
步骤1.1:用户a使用自己的标识ida以及加密主公钥p
pub-e
,计算中间参数qa;
[0061]
qa=[h1(ida||hid,n)]p1+p
pub
–e;
[0062]
其中,h1()为由密码杂凑函数派生的密码函数;hid为用一个字节表示的私钥生成函数标识符,由密钥生成中心kgc选择并公开;p1为群g1的生成元;g1是阶为素数n的加法循环群;p
pub-e
=[ke]p1;ke为加密主私钥;
[0063]
步骤1.2:产生随机数r∈[1,n-1],c∈[1,n-1],其中c作为条件参数;
[0064]
步骤1.3:使用随机数r、c与中间参数qa计算3个g1中的元素c0、c1与c
′1;c0=[r]p1,c1=[r]qa,c
′1=[r
·
c]qa;
[0065]
步骤1.4:计算群g
t
中的元素g=e(p
pub
–e,p2);其中,p2为群g2的生成元;g2是阶为素数n的加法循环群;g
t
是阶为素数n的乘法循环群;e为从g1×
g2到g
t
的双线性对;
[0066]
步骤1.5:计算群g
t
中的元素ω=gr,将ω的数据类型转换为比特串;
[0067]
步骤1.6:使用密钥派生函数kdf(c1||ω||ida,klen)生成密钥k1和k2,使用k1加密消息m得到c2;其中,klen=k1_len+k2_len,然后计算k=kdf(c1||ω||ida,klen);令k1为k最左边的k1_len比特,k2为剩下的k2_len比特,若k1为全0比特串,则返回步骤1.2;c2=enc(k1,m);其中,enc()为分组加密算法;
[0068]
步骤1.7:计算c3=mac(k2,c2);其中,mac()为消息认证码函数;
[0069]
步骤1.8:用户a将{idm,c}保存到本地哈希表,输出密文c=idm||c0||c
′1||c1||c2||c3,并上传服务器;其中,idm为数据m的唯一标识;
[0070]
步骤2:用户a生成针对用户b的重加密密钥;
[0071]
请见图2,在一种实施方式中,步骤2的具体实现包括以下子步骤:
[0072]
步骤2.1:产生随机数x∈[1,n-1];
[0073]
步骤2.2:使用标准的sm9加密算法,用用户b的标识加密x得到rc1;
[0074]
用户a使用用户b的标识和系统公钥通过标准的sm9加密算法加密秘密值x得到rc1,从而用户b可通过标准的sm9解密算法解密rc1得到x,秘密值x作为将针对用户a的密文转换为针对用户b的密文的关键;
[0075]
步骤2.3:用户a在本地哈希表中根据数据m的标识查得条件参数c,然后计算重加密密钥rka→b=[c-1
](ska+[x]prka),将rka→b的数据类型转换为比特串;其中,ska和prka分别为用户a的私钥和部分重加密密钥,kgc为用户a生成私钥ska的同时也会生成prka,ska=[ke
·
(h1(ida||hid,n)+ke)-1
]p2,prka=[(h1(ida||hid,n)+ke)-1
]p2;
[0076]
步骤2.4:将数据m的标识、rc1以及rka→b上传到服务器。
[0077]
步骤3:服务器将密文c转换为针对授权用户b的密文rc;
[0078]
请见图3,在一种实施方式中,步骤3的具体实现包括以下子步骤:
[0079]
步骤3.1:根据数据m的标识找到对应的密文c;
[0080]
步骤3.2:从c中取出比特串c0、c
′1、c1、c2、c3,将c0、c1、c
′1的数据类型转换为椭圆曲线上的点,验证c0∈g1、c1∈g1和c
′1∈g1是否都成立,若不都成立则报错并退出;
[0081]
步骤3.3:根据c
′1和重加密密钥rka→b计算rc2=e(c
′1,rka→b)=ω
·
e([r]p1,[x]p2);将c0、rc2的数据类型转换为比特串;
[0082]
步骤3.4:输出rc=rc1||rc2||c0||c1||c2||c3并存储在服务器中。
[0083]
设mlen为密文c=idm||c0||c
′1||c1||c2||c3中c2的比特长度,也是密文
[0084]
rc=rc1||rc2||c0||c1||c2||c3中c2的比特长度,k1_len为分组密码算法中密钥k1的比特长度,k2_len为函数mac(k2,z)中密钥k2的比特长度,sm9_decrypt()为标准的sm9解密算法。参照附图4,用户a和b分别解密数据m,分别为步骤4和步骤5;
[0085]
步骤4:用户a解密密文数据c;
[0086]
在一种实施方式中,步骤4的具体实现包括以下子步骤:
[0087]
步骤4.1:从c中取出比特串c1,将c1的数据类型转换为椭圆曲线上的点,验证c1∈g1是否成立,若不成立则报错并退出;
[0088]
步骤4.2:计算群g
t
中的元素ω

=e(c1,ska),将ω

的数据类型转换为比特串;
[0089]
步骤4.3:使用密钥派生函数kdf(c1||ω

||ida,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m


[0090]
步骤4.4:计算u=mac(k
′2,c2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m


[0091]
步骤5:用户b解密密文数据rc;
[0092]
在一种实施方式中,步骤5的具体实现包括以下子步骤:
[0093]
步骤5.1:从rc中取出比特串rc1,使用标准的sm9解密算法,用用户b的私钥解密rc1得到x=sm9_decrypt(pp,rc1,idb,skb);其中,sm9_decrypt()为标准的sm9解密算法,skb为用户b的私钥,skb=[ke
·
(h1(idb||hid,n)+ke)-1
]p2,ke为加密主私钥;
[0094]
步骤5.2:从rc中取出比特串c0、c1、rc2,将c0、c1、rc2的数据类型转换为椭圆曲线上的点,验证c0∈g1、c1∈g1和rc2∈g
t
是否都成立,若都成立则根据c0和rc2计算出群g
t
中的元素ω

=rc2/e(c0,[x]p2);并将ω

的数据类型转换为比特串,否则报错并退出;
[0095]
步骤5.3:使用密钥派生函数kdf(c1||ω

||ida,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m


[0096]
步骤5.4:计算u=mac(k
′2,2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m


[0097]
以下通过实验对本技术方案的性能做进一步的阐述。其中性能评估,包括理论上的算法时间复杂度分析信息和实验部分的算法性能测试。参数设置为:群阶比特长度为256位的bn曲线,曲线方程为y2=x3+5。测试环境为intel core i7-4770@3.40ghz,ram为8gb 1600mhz ddr3。
[0098]
(1)时间复杂度分析
[0099]
因为系统初始化阶段和密钥生成阶段是由具有强大计算能力的kgc来完成的,且
相比于其他阶段,这两个阶段的执行频率较低,因此本实验将主要关注加密阶段、重加密密钥生成阶段、重加密阶段、解密阶段的计算开销。这些阶段的计算开销主要集中在sm3哈希运算、双线性配对运算、g1、g2域中元素的标量乘法运算和g
t
域中元素的指数运算上,由此,本实验得出了本算法的各阶段的时间复杂度分析,结果如表1所示。其中
△h表示sm3哈希执行时间,ce表示双线性配对执行时间,分别表示g1、g2域中元素的标量乘法运算执行时间,表示g
t
域中元素的指数运算执行时间。(注:可以进行预计算的操作本实验将不统计在内,如加密阶段的参数qa和g的计算;加密明文的方法为基于kdf的序列密码)。
[0100]
表1
[0101][0102]
(2)实验测试
[0103]
使用c语言+miracl库实现了本发明中涉及的算法。首先对算法中涉及到的主要操作(哈希、双线性配对、标量乘法、指数运算)做了基准性能测试(每个操作执行次数为1000次,取平均值),结果如表2所示。然后,对各个阶段的算法做了整体性能测试(每个阶段执行次数为1000次,取平均值),结果如图5所示。
[0104]
表2
[0105][0106][0107]
从图5中可以看出,本技术的方法在代理重加密的五个阶段中,加密、重加密密钥生成、重加密、解密、重解密的时间分别是27ms、29ms、58ms、58ms、116ms,实用性强。重加密
的时间是加密时间的两倍,重解密的时间是解密时间的两倍,解密和重加密的时间相同,在完成代理重加密功能的同时,额外只增加了118ms的时间,但是减少了用户a数据的计算和存储开销。
[0108]
应当理解的是,上述针对较佳实施案例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

技术特征:
1.一种基于sm9的数据条件代理重加密方法,其特征在于,包括以下步骤:步骤1:用户a加密消息m获得密文c并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;步骤2:用户a生成针对用户b的重加密密钥;步骤3:服务器将密文c转换为针对授权用户b的密文rc;步骤4:用户a解密密文数据c;步骤5:用户b解密密文数据rc。2.根据权利要求1所述的基于sm9的数据条件代理重加密方法,其特征在于,步骤1的具体实现包括以下子步骤:步骤1.1:用户a使用自己的标识id
a
以及加密主公钥p
pub-e
,计算中间参数q
a
;q
a
=[h1(id
a
||id,n)]p1+p
pub-e
;其中,h1()为由密码杂凑函数派生的密码函数;id为用一个字节表示的私钥生成函数标识符,由密钥生成中心kgc选择并公开;p1为群g1的生成元;g1是阶为素数n的加法循环群;p
pub-e
=[ke]p1;ke为加密主私钥;步骤1.2:产生随机数r∈[1,n-1],c∈[1,n-1],其中c作为条件参数;步骤1.3:使用随机数r、c与中间参数q
a
计算3个g1中的元素c0、c1与c1′
;c0=[r]p1,c1=[r]q
a
,c1′
=[r
·
c]q
a
;步骤1.4:计算群g
t
中的元素g=e(p
pub-e
,p2);其中,p2为群g2的生成元;g2是阶为素数n的加法循环群;g
t
是阶为素数n的乘法循环群;e为从g1×
g2到g
t
的双线性对;步骤1.5:计算群g
t
中的元素ω=g
r
,将ω的数据类型转换为比特串;步骤1.6:使用密钥派生函数kdf(c1||ω||id
a
,klen)生成密钥k1和k2,使用k1加密消息m得到c2=enc(k1,m);其中,klen为密钥k1和k2的比特长度之和,enc()为分组加密算法;步骤1.7:计算c3=mac(k2,c2);其中,mac()为消息认证码函数;步骤1.8:用户a将{id
m
,c}保存到本地哈希表,输出密文c=id
m
||c0||c1′
||c1||c2||c3,并上传服务器;其中,id
m
为数据m的唯一标识。3.根据权利要求2所述的基于sm9的数据条件代理重加密方法,其特征在于,步骤2的具体实现包括以下子步骤:步骤2.1:产生随机数x∈[1,n-1];步骤2.2:使用标准的sm9加密算法和用户b的标识加密x得到rc1;步骤2.3:用户a在本地哈希表中根据数据m的标识查得条件参数c,然后计算重加密密钥rk
a

b
=[c-1
](sk
a
+[x]prk
a
),将rk
a

b
的数据类型转换为比特串;其中,sk
a
和prk
a
分别为用户a的私钥和部分重加密密钥,sk
a
=[ke
·
(h1(id
a
||hid,n)+ke)-1
]p2,prk
a
=[(h1(id
a
||hid,n)+ke)-1
]p2;步骤2.4:将数据m的标识、rc1以及rk
a

b
上传到服务器。4.根据权利要求3所述的基于sm9的数据条件代理重加密方法,其特征在于,步骤3的具体实现包括以下子步骤:步骤3.1:根据数据m的标识找到对应的密文c;步骤3.2:从c中取出比特串c0、c
′1、c1、c2、c3,将c0、c1、c
′1的数据类型转换为椭圆曲线上的点,验证c0∈g1、c1∈g1和c
′1∈g1是否都成立,若不都成立则报错并退出;
步骤3.3:根据c
′1和重加密密钥rk
a

b
计算rc2=e(c
′1,rk
a

b
)=ω
·
e([r]p1,[x]p2);将c0、rc2的数据类型转换为比特串;步骤3.4:输出rc=rc1||rc2||c0||c1||c2||c3并存储在服务器中。5.根据权利要求3所述的基于sm9的数据条件代理重加密方法,其特征在于,步骤4的具体实现包括以下子步骤:步骤4.1:从c中取出比特串c1,将c1的数据类型转换为椭圆曲线上的点,验证c1∈g1是否成立,若不成立则报错并退出;步骤4.2:计算群g
t
中的元素ω

=e(c1,sk
a
),将ω

的数据类型转换为比特串;步骤4.3:使用密钥派生函数kdf(c1||ω

||id
a
,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m

;步骤4.4:计算u=mac(k
′2,c2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m

。6.根据权利要求4所述的基于sm9的数据条件代理重加密方法,其特征在于,步骤5的具体实现包括以下子步骤:步骤5.1:从rc中取出比特串rc1,使用标准的sm9解密算法,用用户b的私钥解密rc1得到x=sm9_decrypt(pp,rc1,id
b
,sk
b
);其中,sm9_decrypt()为标准的sm9解密算法,sk
b
为用户b的私钥,sk
b
=[ke
·
(h1(id
b
||hid,n)+ke)-1
]p2;步骤5.2:从rc中取出比特串c0、c1、rc2,将c0、c1、rc2的数据类型转换为椭圆曲线上的点,验证c0∈g1、c1∈g1和rc2∈g
t
是否都成立,若都成立则根据c0和rc2计算出群g
t
中的元素ω

=rc2/e(c0,[x]p2);并将ω

的数据类型转换为比特串,否则报错并退出;步骤5.3:使用密钥派生函数kdf(c1||ω

||id
a
,klen)生成密钥k
′1和k
′2,使用k
′1解密密文c2得到明文m

;步骤5.4:计算u=mac(k2′
,c2),从c中取出比特串c3,若u≠c3,则报错并退出;否则,输出明文m

。7.一种基于sm9的数据条件代理重加密系统,其特征在于,包括以下模块:加密模块,用于用户a加密消息m获得密文c并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;重加密密钥生成模块,用于用户a生成针对用户b的重加密密钥;重加密模块,用于服务器将密文c转换为针对授权用户b的密文rc;解密模块,用于用户a解密密文数据c;重解密模块,用于用户b解密密文数据rc。8.一种基于sm9的数据条件代理重加密设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一项所述的基于sm9的数据条件代理重加密方法。

技术总结
本发明公开了一种基于SM9的数据条件代理重加密方法、系统及设备,首先用户A加密消息M获得密文C并发送到服务器保存,供自己下载解密或重加密为针对授权用户的密文;然后用户A生成针对用户B的重加密密钥;接着服务器将密文C转换为针对授权用户B的密文RC;最后用户A解密密文数据C,用户B解密密文数据RC。本发明用以解决现有的基于存储网络的数据共享中存在的数据分享者需要额外的加解密开销来进行数据分享的问题,在省去数据分享者额外的加解密开销的情况下,实现满足数据安全传输、安全存储和安全分享的SM9条件代理重加密方法。存储和安全分享的SM9条件代理重加密方法。存储和安全分享的SM9条件代理重加密方法。


技术研发人员:杜昭睿 王湛 林雪 朱俊 王茜艳 霍明月
受保护的技术使用者:烟台珈港电子科技有限公司
技术研发日:2023.06.25
技术公布日:2023/10/8
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐