本发明涉及信息安全,特别是一种基于sm9的密文策略属性基加密方法。
背景技术:
1、伴随数字经济的蓬勃兴起,数据呈现出爆炸式增长并高度汇聚,其价值日益显著,同时,数据安全所面临的风险也在持续攀升,数据泄露、篡改及滥用事件屡见不鲜。特别是近年来,云计算等新兴数字技术广泛渗透并应用于社会各领域,催生了庞大的数据量及多样化的处理需求。在此背景下,越来越多的用户和企业倾向于将自家数据交由第三方云服务器进行存储、管理和处理。然而,这些服务器大多由云服务提供商操控,他们虽秉持诚信原则提供服务,但同时也怀揣着好奇心。这意味着,尽管他们会忠实地履行服务职责,但仍有可能窥探用户及企业的数据,甚至可能出于商业利益而泄露敏感数据,或将其与未经授权的用户共享。这无疑对云服务器中确保数据机密性和实现灵活访问控制的技术提出了更为严峻的挑战。
2、属性基加密(attribute-based encryption,abe)是一种通过属性来加密的公钥加密技术,可以为云计算提供数据机密性保护和细粒度访问控制。属性基加密分为密文策略属性基加密(ciphertext-policyabe,cp-abe)和密钥策略属性基加密(key-policyabe,kp-abe)。请参照图1,在密文策略属性基加密中,权威机构通过用户所对应的属性集合设置解密密钥,加密者通过数据的访问策略加密数据,当用户解密密钥所对应的属性集合满足加密数据所对应的访问策略时,该用户就可以解密该密文获得明文数据。密钥策略属性基加密正好相反。密文策略属性基加密系统在概念上与传统的基于角色的访问控制更相似,由每一个加密者决定自己所共享加密数据的访问结构,因此,可以实现对共享加密数据的机密性和更灵活的访问控制。
3、为实现密码技术自主可控,保障网络与信息安全,我国自主设计了sm9标识加密算法并陆续成为了国家标准和国际标准。然而,由于sm9标识加密结构的特殊性,该算法并不支持数据的灵活访问控制,严重阻碍了sm9标识加密算法在云计算、区块链、物联网等分布式计算系统中的应用。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于sm9的密文策略属性基加密方法。该方法通过巧妙地匹配属性与访问策略,实现了数据的灵活访问。此方法显著减轻了因数据共享细粒度访问控制所导致的网络带宽负担及发送节点的处理成本,同时确保了与当前采用sm9的信息系统的无缝集成与高效协同。
2、为实现上述目的,本发明采用如下技术方案:一种基于sm9的密文策略属性基加密方法,包括步骤:
3、s1、根据sm9标识加密算法,生成系统的公共参数mpk和主密钥msk,将生成的公共参数mpk公开给系统中的用户,保存系统主密钥msk;
4、s2、根据用户的属性集合s、系统的公共参数mpk以及主密钥msk,生成该用户的属性集合s所对应的解密密钥sk;
5、s3、加密者根据数据m的访问策略(m,ρ)、系统的公共参数mpk,生成该数据m所对应的密文ct;
6、s4、接收者获得密文ct后,利用自己的解密密钥sk和系统公共参数mpk解密数据;当解密密钥sk所对应的属性集合s满足密文ct所对应的访问策略(m,ρ)时,即可解密恢复出消息,否则解密失败。
7、在一较佳的实施例中,所述步骤s1具体包括:根据sm9标识加密算法,首先选择阶为n的加法群g1,g2,阶为n的乘法群gt,非对称双线性映射e:g1×g2→gt,哈希函数h1:选择用一个字节表示的私钥生成函数标识符hid;其次,随机选择生成元p1∈g1,p2∈g2,选择随机数计算群g1中的元素ppub=ap1,群gt中的元素g=e(ppub,p2);定义系统的主公钥为:mpk={p1,p2,ppub,g},主私钥为msk=a;
8、其中,
9、n:循环群g1,g2,gt的阶,且为n>2191的素数;
10、g1:阶为素数n的加法循环群;
11、g2:阶为素数n的加法循环群;
12、gt:阶为素数n的乘法循环群;
13、e:从g1×g2到gt的双线性映射;
14、集合{1,2,…,n}中与n互素的整数集合;
15、{0,1}*:有限长度的比特串;
16、h1:由密码杂凑函数派生的由{0,1}*到的密码函数;
17、hid:用一个字节表示的加密密钥生成函数识别符,由密钥生成中心选择并公开;
18、p1:群g1的生成元;
19、p2:群g2的生成元;
20、系统主密钥;
21、ppub:群g1中的元素;
22、g:群gt中的元素。
23、在一较佳的实施例中,所述步骤s2具体包括:设用户所对应的属性集合为s,权威机构选择随机数计算私钥为:
24、
25、其中:
26、s:用户所对应的属性集合;
27、中的随机元素;
28、sk:解密密钥;
29、k:部分解密密钥;属于群g2中的元素;
30、l:部分解密密钥;属于群g1中的元素;
31、x:属性集合s中的属性,且x∈{0,1}*
32、kx:部分解密密钥,与属性集合s中的属性x所对应,属于群g2中的元素;
33、"n"||hid:n与hid的拼接,其中n和hid是比特串或字节串。
34、在一较佳的实施例中,所述步骤s3具体包括:输入数据m所对应的访问策略(m,ρ),其中m是秘密生成矩阵,有l行n列,映射ρ(i)将矩阵中的第i行映射到属性ρ(i)上;构造向量其中是被分享的秘密值,是随机选取用于隐藏s的随机数,对于i=1到l,加密者计算其中mi是矩阵m中的第i行;其次,加密者随机选择计算密文ct如下:
35、c=mgs,c'=s(h1(n||hid)p1+ppub)
36、
37、其中:
38、m:待加密的明文消息,且m∈gt;
39、m:秘密生成矩阵;
40、l:秘密生成矩阵的行数;
41、n:秘密生成矩阵的列数;
42、ρ(i):一种映射,将秘密生成矩阵中的第i行映射到属性ρ(i)上;
43、加密时使用的随机数;
44、随机选取用于隐藏s的随机数;
45、λi:秘密生成矩阵中第i行对应的关于s的秘密份额;
46、mi:矩阵m中的第i行;
47、加密时选择的随机数;
48、c:部分密文,属于gt中的元素;
49、c':部分密文,属于g1中的元素;
50、ci,di:部分密文,对应于秘密生成矩阵中第i行,其中i=1到l,且ci属于g2中的元素,di属于g1中的元素。
51、在一较佳的实施例中,所述步骤s4具体包括:假设s满足访问策略(m,ρ),解密者首先定义且i={i∈[l]∧ρ(i)∈s};如果是s的有效秘密份额,则解密者可在多项式时间内计算出一个常数集合使得∑i∈iωi·λi=s;其次,解密者计算
52、
53、其中,
54、kρ(i):与属性ρ(i)对应的部分解密密钥,属于群g2中的元素;
55、i:秘密分享矩阵中与属性集合s相对应的行的集合;
56、使得∑i∈iωi·λi=s成立的常数集合。
57、与现有技术相比,本发明具有以下有益效果:sm9标识加密算法作为我国的商用密码算法,具有强安全性和高效率性,常用于实现数据的隐私性保护。但是,当我们需要对消息进行细粒度访问控制时,sm9标识加密就不起作用了,而基于sm9的密文策略属性基加密方法正好可以解决这一类问题。具体体现在以下三点:
58、本发明在不改变sm9标识加密算法基本架构的基础上,通过属性与访问策略的匹配关系灵活访问数据,极大地降低了数据共享细粒度访问控制带来的网络带宽和发送结点的处理开销问题。其次,本发明支持大属性集合,系统在初始设置时可以不用考虑属性集合,从而避免了系统在运行过程中因属性集合的大小而重置系统。最后,本发明可以与现有使用sm9的信息系统有效融合,促进sm9标识加密算法在分布式计算系统中的进一步应用。