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

一种基于SM9算法的等式测试方法与流程

2022-12-07 01:11:34 来源:中国专利 TAG:

一种基于sm9算法的等式测试方法
技术领域
1.本发明涉及密码算法技术领域,具体地说,是一种基于sm9算法的等式测试方法,用于云辅助的物联网环境,为基于云的物联网环境的用户提供机密性、完整性、可搜索行和访问控制服务,具有可观的商业价值和良好的应用前景。


背景技术:

2.随着以云计算为代表的信息技术的飞速发展,越来越多的组织和个人开始将自己的数据存储到云服务器上,以减少管理和运行上的成本和开销。云服务器的应用使得用户能够高效快捷的共享自己的数据。但是出于安全考虑,这些数据都是以加密的形式进行存储的,因此如何在加密数据上进行安全高效的搜索成为了一个亟待解决的问题。
3.等式测试(public key encryption with equality test,pke-et)最早由yang等人提出。相较于只能在由相同公钥加密的密文中进行搜索的传统的可搜索加密算法,等式测试算法除了能够在由相同公钥加密的密文中进行搜索,还可以在由不同公钥加密的密文中进行搜索,判断两个密文中是否包含相同的信息。由于其独特的特性,等式测试算法常被用于云服务器上加密数据的搜索。但是现有的等式测试加密方法大多数是基于传统的公钥密码体制提出的。传统的公钥密码体制依赖公钥基础设施来提供服务,而这导致了昂贵的证书管理开销。
4.国密算法sm9是中华人民共和国政府采用的一种标识密码标准,是一种基于双线性对的标识密码算法,它可以把用户的身份标识用以生成用户的公、私密钥对,主要用于数字签名、数据加密、密钥交换以及身份认证等,可以非常良好的与等式测试结合,实现可搜索加密技术。
5.到目前为止,还没有研究人员提出支持等式测试的国密算法,因此,本发明创造性的提出了一种基于sm9算法的等式测试方法,用于云辅助的物联网环境,为基于云的物联网环境的用户提供机密性、完整性、可搜索行和访问控制服务,具有可观的商业价值和良好的应用前景。


技术实现要素:

6.本发明的目的在于提供一种基于sm9算法的等式测试方法,本发明将等式测试与国密算法sm9结合,允许获得授权的第三方实体测试由不同公钥加密的密文中是否包含相同的信息。同时,本发明不仅保护了密文的机密性,还解决了密文难以搜索的问题,更好的满足了云环境中的安全需求。
7.本发明通过下述技术方案实现:一种基于sm9算法的等式测试方法,包括以下步骤:
8.步骤s1,使用系统初始化算法初始化授权系统,输入安全参数,密钥生成中心运行系统初始化算法并生成系统公开参数、系统主密钥和消息空间;
9.步骤s2,在私钥提取算法中输入系统公开参数、用户id和系统主密钥,密钥生成中
心运行私钥提取算法生成用户身份所对应的私钥;
10.步骤s3,在陷门生成算法中输入用户id,用户运行陷门生成算法生成陷门;
11.步骤s4,在加密算法中输入明文、用户id和用户私钥,输出密文;
12.步骤s5,在密文解密算法中输入密文消息、用户id和用户私钥,解密输出明文消息;
13.步骤s6,在等式测试算法中分别输入两位不同用户的陷门以及分别使用两位用户公钥加密的密文,云服务器执行等式测试算法输出判等结果。
14.为了更好地实现本发明,进一步地,所述步骤s1包括:
15.在系统初始化算法中输入安全参数k;
16.构造阶数为n的群g1、g2、gt,调用sm9规定的密钥派生函数kdf消息认证码函数mac;
17.使用g1、g2、gt获取双线性对映射e,并表示为e:g1×
g2→gt

18.获取g1的生成元p1,获取g2的生成元p2;
19.密钥生成中心随机选取s,s

∈[1,n-1],作为主私钥对(s,s

),并计算主公钥ppub1和ppub2,并表示为p
pub1
=[s]p1,p
pub2
=[s

]p1[0020]
密钥生成中心在系统初始化算法中根据g1、g2、gt、密钥派生函数kdf、消息认证码函数mac、双线性对映射e、生成元p1、生成元p2、主公钥ppub1和ppub2运行系统初始化算法setup(k)生成系统公开参数params和消息空间m,系统公开参数params表示为params:《g1,g2,g
t
,e,p1,p2,p
pub1
,p
pub2
,kdf,mac》,消息空间m表示为
[0021]
为了更好地实现本发明,进一步地,所述步骤s2包括:
[0022]
在私钥提取算法中输入系统公开参数params,用户id和系统主密钥,将用户id输入为用户身份ida;
[0023]
在有限域fn上计算中间变量t1和t2,t1=h1(ida) s,若t1=0则需要重新产生主私钥,否则计算然后根据da1和da2计算用户身份ida的私钥da,并表示为da=(d
a1
,d
a2
);
[0024]
da1的表达式为d
a1
=[t2]p2=[s
·
(h1(ida) s)-1
]p2;
[0025]
da2的表达式为d
a2
=[t
′2]p2=[s

·
(h1(ida) s)-1
]p2。
[0026]
为了更好地实现本发明,进一步地,所述步骤s3包括:
[0027]
在陷门生成算法中输入用户id,将用户id输入为用户身份ida;
[0028]
用户运行陷门生成算法生成陷门tda,并表示为:tda=[t
′2]p2。
[0029]
为了更好地实现本发明,进一步地,所述步骤s4包括:
[0030]
在加密算法中输入明文、用户id和用户私钥d,将用户id输入为用户身份ida,输出密文c作为密文消息发送给解密用户。
[0031]
为了更好地实现本发明,进一步地,所述步骤s5包括:
[0032]
在解密算法中输入密文c,用户id和用户私钥d,解密输出明文m。
[0033]
为了更好地实现本发明,进一步地,所述步骤s6包括:
[0034]
在等式测试算法中输入两个用户的密文和两个陷门,对两个密文执行相等性测试,以判断这对密文中是否包含相同的明文。
[0035]
本发明与现有技术相比,具有以下优点及有益效果:
[0036]
(1)本发明实现了可搜索加密功能。获得授权的第三方实体可以在不泄露任何有关明文信息的条件下,判断由不同公钥所加密的密文中是否包含相同的明文。既保证了密文的机密性,又提供了可搜索性;
[0037]
(2)本发明基于sm9加密算法,结合了云服务器上实施等式测试的方法。本方案以用户身份为参数生成公私钥对,提取用户私钥的一部分生成等式测试的陷门,创造性的实现了等式测试与国密算法的结合;
[0038]
(3)本发明所提出的方法在通信上具有计算开销的优势,与现有的等式测试算法相比,本发明在加密、解密和等式测试过程中具有计算开销的优势;
[0039]
(4)本发明所提出的方法提供了密文的消息完整性认证,利用消息认证码函数,防止信息在传输过程中被篡改。
附图说明
[0040]
本发明结合下面附图和实施例做进一步说明,本发明所有构思创新应视为所公开内容和本发明保护范围。
[0041]
图1为本发明提供的一种基于sm9算法的等式测试方法流程图。
[0042]
图2为本发明提供的等式测试方法中加密时间对比图。
[0043]
图3为本发明提供的等式测试方法中解密时间对比图。
[0044]
图4为本发明提供的等式测试方法中等式测试时间对比图。
具体实施方式
[0045]
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0047]
实施例1:
[0048]
本实施例的一种基于sm9算法的等式测试方法,如图1所示,本发明一共构造了6个算法,分别是系统建立算法setup、私钥提取算法keyextract、陷门生成算法trapdoor、加密算法encrypt、密文解密算法decrypt和等式测试算法test。
[0049]
本发明共涉及四种实体:用户,数据上传者,云服务器和密钥生成中心(key generation center,kgc)。所述方法的具体步骤包括:
[0050]
(1)系统建立setup:输入安全参数,kgc运行该算法并生成系统公开参数和系统主密钥,包括消息空间;
[0051]
(2)私钥提取keyextract:输入系统公开参数,用户id和主密钥,kgc运行该算法生成用户身份所对应的私钥;
[0052]
(3)陷门生成trapdoor:输入用户id,用户运行该算法生成陷门;
[0053]
(4)加密encrypt:输入明文、用户id和用户私钥,输出密文;
[0054]
(5)密文解密decrypt:输入密文消息,用户id和用户私钥,解密输出明文消息;
[0055]
(6)等式测试test:分别输入两位不同用户的陷门以及分别使用两位用户公钥加密的密文,云服务器执行等式测试,输出判等结果。
[0056]
本发明允许第三方实体在获得授权后,对两段密文执行等式测试,在不泄露任何明文信息的情况下,实现了密文的可搜索性。在本实施例中,发送方使用接收方的身份生成公钥对消息加密,在加密时,使用国家密码管理局批准的密钥派生函数kdf生成密钥对,分别对密文进行加密以及消息完整性认证,使用用户私钥的一部分生成陷门,从而对两个密文执行相等性测试,以判断这对密文中是否包含相同的明文。本发明可用于云辅助的物联网环境,为基于云的物联网环境的用户提供机密性、完整性、可搜索行和访问控制服务,具有可观的商业价值和良好的应用前景。
[0057]
实施例2:
[0058]
本实施例在实施例1的基础上做进一步优化,使用系统初始化算法初始化授权系统,输入安全参数,密钥生成中心运行系统初始化算法并生成系统公开参数、系统主密钥和消息空间的过程如下:
[0059]
系统建立setup:通过运行setup算法,kgc初始化密码系统。输入安全参数k,kgc运行该算法,输出系统公开参数params:《g1,g2,g
t
,e,p1,p2,p
pub1
,p
pub2
,kdf,mac》、系统主密钥和消息空间
[0060]
私钥提取keyextract:通过运行keyextract算法,kgc生成用户身份所对应的私钥d,并将其发送给用户,用户使用私钥d对密文解密。输入系统公开参数params,用户id,输出用户身份所对应的私钥d;
[0061]
陷门生成trapdoor:通过运行trapdoor算法,用户生成陷门td以执行等式测试。输入用户id以及用户私钥d,输出对应的陷门td;
[0062]
加密encrypt:通过运行encrypt算法,用户将消息m加密为密文c。输入明文m和用户id,输出密文c;
[0063]
密文解密decrypt:通过运行decrypt算法,用户解密密文c生成消息m。输入密文c,用户id和用户私钥d,解密输出明文m;
[0064]
等式测试test:通过运行test算法,云服务器执行等式测试以判断两段密文中是否包含相同的明文。输入ida对应的密文ca和陷门tda,idb对应的密文cb和陷门tdb,云服务器执行等式测试,若ca和cb的内容为相同的明文,则输出1,否则输出0。
[0065]
首先执行系统建立算法,输入安全参数k,初始化系统并输出系统参数params,并表示为params:《g1,g2,g
t
,e,p1,p2,p
pub1
,p
pub2
,kdf,mac》,其中,g1、g2、g
t
是构造阶数为n的群,mac为消息认证码函数。
[0066]
其中e为双线性对映射e:g1×
g2→gt
,g1,g2的阶均为n,p1为g1的生成元,p2为g2的生成元。消息空间用户的身份id∈{0,1}
*
均为比特串。
[0067]
密钥生成中心随机选取s,s

∈[1,n-1],作为主私钥对(s,s

),并计算主公钥p
publ
[0094]-c3=mac(k2,c2);
[0095]-[0096]-c5=[r1]p1;
[0097]-c6=[r2]qa;
[0098]-输出c=(c1,c2,c3,c4,c5,c6)作为密文。
[0099]
本实施例的其他部分与上述实施例1-4任一项相同,故不再赘述。
[0100]
实施例6:
[0101]
本实施例在上述实施例1-5任一项基础上做进一步优化,在密文解密算法中输入密文消息、用户id和用户私钥,解密输出明文消息。
[0102]
在密文解密算法中输入c=(c1,c2,c3,c4,c5,c6),私钥da=(d
a1
,d
a2
)和用户身份ida:
[0103]
验证c1∈g1,若不成立则无法解密;
[0104]w′
=e(c1,d
a1
);
[0105]
klen=mlen k2_len;
[0106]k′1||k
′2=kdf(h3(c1)||h5(w

)||ida,klen);
[0107][0108]
u=mac(k
′2,c2),若u≠c3,则解密失败,密文完整性有误;
[0109]
输出m

作为消息的明文。
[0110]
本实施例的其他部分与上述实施例1-5任一项相同,故不再赘述。
[0111]
实施例7:
[0112]
本实施例在上述实施例1-6任一项基础上做进一步优化,在等式测试算法中分别输入两位不同用户的陷门以及分别使用两位用户公钥加密的密文,云服务器执行等式测试算法输出判等结果。
[0113]
在等式测试算法中输入两个用户的密文σ
α
=(c
α,1
,c
α,2
,c
α,3
,c
α,4
,c
α,5
,c
α,6
),σ
β
=(c
β,1
,c
β,2
,c
β,3
,c
β,4
,c
β,5
,c
β,6
)和两个陷门td
α
,td
β

[0114][0115]
若e(c
α,5
,x
β
)=e(c
β,5
,x
α
),则m
α
=m
β

[0116]
本实施例的其他部分与上述实施例1-6任一项相同,故不再赘述。
[0117]
实施例7:
[0118]
本实施例在上述实施例1-6任一项基础上做进一步优化,在本发明的另一些具体实施例中,将本发明与cle-et、ibe-et、pke-et对比,实验环境在处理器为intel(r)core(tm)i7-8750h,内存为16gb,操作系统为windows10下运行,选用eclipse作为平台,java作为编程语言,调用jpbc(java pairing-based cryptography library)库中实现双线性对的接口,实现了双线性对公钥密码体制的有效仿真,达到了1024位rsa安全。
[0119]
在多个对比实验中,以消息的规模作为变量,分别对本发明的加密算法,解密算法和等式测试算法进行模拟运行,对比了本方案的计算效率,如图2至图4可见,本方案在提供了等式测试的情况下,在效率上任然具有一定的优势。
[0120]
本实施例的其他部分与上述实施例1-6任一项相同,故不再赘述。
[0121]
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化,均落入本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献