买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于国密SM9的条件代理重加密方法_暨南大学_202310763799.9 

申请/专利权人:暨南大学

申请日:2023-06-27

公开(公告)日:2024-03-19

公开(公告)号:CN116722977B

主分类号:H04L9/08

分类号:H04L9/08;H04L9/06;H04L9/14

优先权:

专利状态码:有效-授权

法律状态:2024.03.19#授权;2023.09.26#实质审查的生效;2023.09.08#公开

摘要:本发明公开了一种基于国密SM9的条件代理重加密方法,包括:代理方生成公共参数并公开;用户A和用户B生成自己的公私钥,将公钥公开,私钥秘密保存;其他用户使用用户A的公钥和代理条件加密明文消息得到条件代理密文,并将该密文和明文形式的代理条件发送给代理方;用户A利用条件代理密文的代理条件、自己的私钥和用户B的公钥生成条件代理重加密密钥;代理方使用条件代理重加密密钥对密文进行转换,并转发给用户B;若有多个代理方,采用秘密分享方法获取转换密文;用户B用私钥解密密文,得到明文消息。本发明通过秘密分享技术,可以有选择地将条件代理重加密密钥分享给多个代理方,从而分散密文转换代理的权力,保障机密数据的安全。

主权项:1.基于国密SM9的条件代理重加密方法,其特征在于,包括下述步骤:S1、代理方运行CPRE-Setup算法,生成条件代理重加密方案中的公共参数,并将公共参数公开;若是有多个代理方,则需共同运行CPRE-Setup算法,协商公共参数;所述CPRE-Setup算法利用传入的安全参数λ,随机选择一个大于2256的素数N,并以N为阶,生成两个不同的加法循环群G1,G2和乘法循环群GT;其中,加法循环群G1,G2和乘法循环群GT满足双线性映射e;从加法循环群G1中选择生成第二元素P1,从加法循环群G2中选择生成第二元素P2以及选择私钥生成函数识别符hid、密码函数H1·、密码杂凑函数Hv·、密钥派生函数KDF·以及消息认证码函数MAC·;将G1、G2、GT、e、P1、P2、hid、H1·、Hv·、KDF·以及MAC·作为条件代理重加密方案的公共参数pp,其中,密码函数H1·需要调用密码杂凑函数Hv·,消息认证码函数MAC·在密钥的控制下,产生消息数据比特串的认证码;S2、用户A和用户B各自运行CPRE-KeyGen算法生成各自的公私钥对,并将公钥公开,私钥秘密保存;所述CPRE-KeyGen算法利用传入的公共参数pp,产生第一随机数x作为私钥sk,计算加法循环群G1中的第一元素pk1=[x]P1,计算加法循环群G2中的第一元素pk2=[x]P2,将pk1和pk2两部分作为最终的公钥pk,最后输出sk,pk;其中,[x]P1表示加法循环群G1中第二元素P1的x倍,[x]P2表示加法循环群G2中第二元素P2的x倍;用户A和用户B将公开的公共参数pp作为输入,各自运行CPRE-KeyGen算法,得到各自的公私钥对,用户A的公私钥对为用户B的公私钥对为将各自的公钥进行公开,各自的私钥各自进行秘密保存;其中,skA为用户A的私钥,pkA为用户A的公钥,skB为用户B的私钥,pkB为用户B的公钥;S3、其他用户调用CPRE-Encrypt算法,使用用户A的公钥和特定的代理条件加密明文消息得到条件代理密文,并将该条件代理密文和明文形式的代理条件发送给代理方;所述步骤S3包括:S31、CPRE-Encrypt算法利用传入的公钥pk、明文消息m和代理条件w,计算加法循环群G1中的第三元素Q=[H1w||hid,N]P1+pk1;其中,代理条件w包含明文消息m的产生时间以及摘要信息;S32、接着,产生第二随机数r,计算加法循环群G1中的第四元素c1=[r]Q,将c1的数据类型转换为比特串;同时,计算乘法循环群GT中的第一元素g=epk1,P2及第二元素z=gr,将z的数据类型转换为比特串;S33、根据需要选择使用基于密钥派生函数的序列密码算法或结合密钥派生函数的分组密码算法计算得到条件代理密文cm,w;S331、若使用基于密钥派生函数的序列密码算法,则计算整数klen=mlen+K2_len,然后计算第一密钥K=KDFc1||z||w,klen;令K1为K最左边的mlen比特,K2为剩下的K2_len比特,若K1为全0比特串,则重新选择第二随机数r,再次尝试计算,若K1不为全0比特串,则计算c2=m⊕K1;计算得到c2后,计算c3=MACK2,c2,输出条件代理密文cm,w=c1||c3||c2;其中,klen为第一密钥K的比特长度,mlen为明文消息m的比特长度,c2表示明文消息m和K1逐比特异或的结果;c3表示比特串c2的消息认证码,K2_len为消息认证码函数MACK2,c2中的密钥K2的比特长度;S332、若使用结合密钥派生函数的分组密码算法,则计算整数klen=mlen+K2_len,然后计算第一密钥K=KDFc1||z||w,klen;令K1为K最左边的mlen比特,K2为剩下的K2_len比特,若K1为全0比特串,则重新选择第二随机数r,再次尝试计算,若K1不为全0比特串,则计算c2=EncsymK1,m;计算得到c2后,计算c3=MACK2,c2,输出条件代理密文cm,w=c1||c3||c2;其中,Encsym为任意分组密码加密算法;S4、用户A需要用户B处理条件代理密文时,用户A调用CPRE-RKeyGen算法,利用该条件代理密文的代理条件、自身的私钥和用户B的公钥生成条件代理重加密密钥;S5、若用户A的数据涉及重要的商业或者国家机密,有通过多个代理方来分散代理权力的需求,则需执行步骤S6~S8,并跳转至步骤S10;若无此需求,则直接跳转至步骤S9和S10;S6、用户A使用秘密分享方法将步骤S4生成的条件代理重加密密钥分享给每一个代理方,使得每一个代理方接收到条件代理重加密密钥的一个份额;S7、每个代理方接收到条件代理重加密密钥的份额后,调用CPRE-ReEncrypt算法,使用各自的份额对符合条件的条件代理密文进行转换,得到第一重加密密文,并将第一重加密密文转发给用户B;S8、用户B将每个代理方发送过来的第一重加密密文聚合起来,得到第二重加密密文;S9、用户A将步骤S4生成的条件代理重加密密钥直接发送给代理方,代理方收到用户A发送的条件代理重加密密钥后,调用CPRE-ReEncrypt算法,使用该条件代理重加密密钥对符合条件的条件代理密文进行转换,得到第三重加密密文,并将第三重加密密文转发给用户B;S10、用户B调用CPRE-Decrypt算法,使用自身的私钥解密第二重加密密文或第三重加密密文,得到最终的明文消息。

全文数据:

权利要求:

百度查询: 暨南大学 基于国密SM9的条件代理重加密方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。