基于SM2 的无证书加密算法

2021-03-19 06:12程朝辉
密码学报 2021年1期
关键词:私钥公钥加密算法

程朝辉

深圳奥联信息安全技术有限公司, 深圳518000

1 介绍

无证书公钥密码体制的代表有1991 年Girault 提出的自认证公钥密码(也称“隐式证书” 密码:Implicit-Certificate-Based Cryptography[1], 后文统一使用此称谓) 和Al-Riyami 与Paterson 在2003年提出的无证书公钥密码(Certificateless-Public Key Cryptography, AP-CL-PKC)[2]. 这种密码体制介于传统证书公钥体制和标识密码体制[3]之间. 在这种密码体制中, 用户私钥由两个秘密因素决定: 一个是由用户自己生成的密钥, 另外一个是从密钥生成中心(Key Generation Center, KGC) 获取的与用户身份(以及可能的用户密钥信息) 相关的密钥. 从一个秘密因素不能计算另一个, 即密钥生成中心不能计算出用户生成的部分密钥, 用户也计算不出密钥生成中心生成的部分密钥. 因此无证书密码系统没有密钥托管的功能. 无证书密码保证即使攻击者成功地使用自己选择的公钥替换了被攻击者的公钥, 攻击者仍然无法伪造被攻击者的一个有效签名, 或者解密一段试图加密给被攻击者的密文信息.

茂名港属不正规半日潮港,平均海面为1.9米。平均潮差1.75米,受热带风暴、强热带风暴和台风影响时港内水位一般可增高1.2米;该港的潮流属往复流,涨落潮流方向基本依水道方向。涨潮流向在280°-360°之间,流速0.5-1.8节;落潮流向在128°-180°之间,流速为1.1-2.8节。

采用隐式证书的密码机制一直没有严格的安全模型, 构造的算法均采用启发式方法进行分析, 没有严格的安全性分析. 因此出现采用隐式证书的密码系统被发现存在攻击的现象[4]. Al-Riyami 和Paterson在2003 年提出无证书的密码体制[2]后引起广泛的关注. 学术界进行了大量的安全模型理论研究并构造了一系列包括无证书加密算法、签名算法和密钥交换协议等的安全机制, 如文献[2,5–7] 等(更多的相关文献可见文献[8] 中的回顾). AP-CL-PKC 中密钥生成函数定义的特性使得这类模型无法覆盖采用隐式证书的密码机制. 按照AP-CL-PKC 模型生成的密钥对难以结合标准密码算法使用. 文献[8] 成功地将这两个原来不相容的无证书密码体制统一起来, 并同时获得两种机制的优点, 从而能够基于标准算法构建安全性可严格证明的无证书签名机制. 文献[8] 的全文给出了无证书签名机制和无证书加密机制的算法模型和安全定义, 并给出了基于标准算包括ECDSA、Schnorr、SM2 等构造的无证书签名机制. 进一步地, 文献[9] 中给出了基于标准协议的无证书密钥交换协议和基于ElGamal 算法的无证书加密机制的构造, 但未给出这些机制的安全分析.

本文采用文献[8] 中的密钥生成方法结合SM2 加密算法[10]来构造无证书加密算法并分析其安全性. 文献[8] 中的密钥生成算法为基于Schnorr 签名算法的变形[11]并结合SM2 签名算法中的标识信息预计算后形成的(后文称之为增强的PH 密钥生成方法). 标识信息预计算包括了KGC 的公钥信息作为Schnorr 签名中消息的密钥前缀. PH 密钥生成方法构造的无证书密码算法的公钥计算和私钥正确性验证过程都具有高效率. 特别是在可预计算系统主公钥的情况下(系统初始化后系统主公钥就确定了, 因此在大多数情况下都可进行系统主公钥预计算), PH 密钥生成方法中的用户公钥计算和用户私钥正确性验证过程比ECQV[12]方法相对应的过程都更高效(工程实现证实可快6 倍以上). 因此这样构造的无证书加密算法整体可有更高效率的实现. 但是, 即使经过密钥前缀化增强的PH 密钥生成方法也不能保证其具有通用组合性: 和任一安全的离散对数公钥算法进行组合构成安全的无证书机制. 文献[8] 显示该方法不能直接和ECDSA 组合来构造安全的无证书签名机制. 就我们所知, 目前这一类密钥生成机制和公钥加密算法组合的安全性也没有相关形式化的分析. 比如ECQV 标准[12]中就提出: ECQV 和ECIES 组合形成的公钥加密机制的安全性没有相关的形式化分析. 因此这类算法的安全性是一个值得研究的重要问题. 本文的主要贡献是证明PH 密钥生成方法+SM2 这种简洁的组合形成的加密算法的安全性, 从而得到一个安全、高效、基于SM2 的无证书加密算法. 另外, 文中的安全模型和方法也可以用于分析ECQV+ECIES算法组合的安全性.

在合理安全模型下就公钥算法的安全性进行形式化分析对公钥算法的安全性评估非常重要. 一些重要的标准化组织如ISO 等要求一个算法在被考虑纳入标准前必须有公开发表的形式化安全分析. 就我们所知, 本文是第一篇对这类基于标准算法构造的无证书加密算法进行形式化安全分析的文章. 我们希望本文可为这类算法的安全性评估和标准化工作提供有益的参考.

2 无证书加密算法模型

2.1 无证书加密算法定义

根据文献[8], 无证书加密算法由以下一系列函数构成:

• CL.Setup(1k): 给定安全参数k, 该函数初始化无证书密码系统, 生成系统主公钥和主私钥(Mpk,Msk). 该函数由KGC 执行.

行政主管部门产业监管角色的转变虽奠定了有效监管的基础,但要想真正实现在公共运输上的安全便捷、价格合理、服务规范,面对每天数以亿计的交易,行政主管部门尚缺乏充分的信息获得渠道、快捷的监督和反应机制,而借助行业自律实施的监管则是政府监管的有益补充,这也是诸多学者提出的政府管平台、平台管车辆的通俗化监管模式。[25]

• CL.Set-User-Key(Mpk): 该函数生成用户部分公钥和部分私钥(UA,xA).

• CL.Decrypt(Mpk, IDA, PA, sA, C): 该函数解密密文C, 输出m 或终止符⊥.

安庆女孩不知什么时候扑到苏菲身边,摸黑给了苏菲一巴掌,打到哪儿是哪儿。苏菲并没有被打痛,却几乎要谢谢安庆女孩的袭击,现在要让出气筒全面发挥效应,拳头、指甲、脚,全身一块出气。安庆女孩哭起来,苏菲马上哭得比她还要委屈,似乎她揍别人把自己揍伤了,上来拉架的女孩们拉着拉着也哭了。

• CL.Set-Private-Key(Mpk, IDA, UA, xA, WA, dA): 该函数生成用户的完整私钥sA.

• CL.Set-Public-Key(Mpk, IDA, UA, WA): 该函数生成用户“声明” 的公钥PA(在隐式证书密码系统中也称为公钥还原数据).

• CL.Encrypt(Mpk, IDA, PA, m): 该函数对消息m 进行加密, 生成密文C.

• CL.Extract-Partial-Key(Mpk, Msk, IDA, UA): 该函数由KGC 执行, 为用户生成KGC 部分公钥和部分私钥(WA,dA).

定义1 若游戏1 和游戏2 中的两类多项式时间攻击者AI和AII的优势都可忽略的小, 则无证书加密算法是安全的.

2.2 无证书加密算法安全模型

文献[8] 中给出了无证书加密算法定义对应的安全模型. 模型由两个游戏构成, 分别对应两类不同的攻击者: 类型-I 攻击者是普通的攻击者, 他试图冒充被攻击者获得其私钥或者获取明文相关信息. 类型-II攻击者是好奇的KGC. 这类KGC 试图在不留痕迹的情况下冒充某个被攻击者获得其私钥或者获取明文相关信息. 下面给出具体的安全定义.

首先从网络社区问答网站(如百度知道)上获取大量的问句答案对数据,结合GenQA 发布的问答对和知识库,致力于获取更高质量的学习数据。对齐问题答案与知识库中的事实,一个最基本的想法就是,三元组的头部实体出现在问句中(一般不会加上属性的匹配,因为一方面属性的描述更加多种多样,另一方面是因为很多属性是隐含表示的),并且该三元组的尾部实体出现在答案中,该三元组就可以作为回答该问句的候选三元组。但是,有效的监督数据还需要精确的、能帮助回答问句的事实三元组。事实上,如图2所示,可能会有多个三元组匹配问句与答案,这是因为实体与问句和答案的匹配过程中、事实三元组与问答对的匹配过程中都可能存在歧义。

图1是无证书加密算法安全性定义的两个游戏(选择密文攻击下的不可区分性,IND-CCA).其中ρ 为攻击者的状态. 游戏中攻击者向谕示OCL 请求如下的询问:

• CL.Extract-Partial-Key(Mpk, Msk, IDA, UA): 谕示执行CL.Set-Public-Key(Mpk, IDA,UA, WA) 获得PA, 将(IDA,PA) 加入集合Q 后返回(WA,dA).

• CL.Get-Public-Key(Mpk,IDA,bNewKey): 如果bNewKey 是true,则谕示顺序执行CL.Set-User-Key, CL.Extract-Partial-Key, CL.Set-Private-Key 和CL.Set-Public-Key, 将(IDA, PA, xA, sA) 加入集合L 中, 将PA加入集合P 中, 返回PA. 如果bNewKey 是false, 则查询集合L 中对应IDA的最新元素, 返回其中的PA.

• CL.Get-Private-Key(Mpk, IDA,PA): 谕示在集合 L 中查询 (IDA,PA) 对应的元素, 将(IDA,PA) 放入集合S1后返回sA.

• CL.Get-User-Key(Mpk, IDA,PA): 谕示在集合L 中查询(IDA,PA) 对应的元素, 将(IDA,PA)放入集合S2后返回xA.

• CL.Setup(1k): 按照算法规定正常生成(PKGC=[s]G,Msk=s), 并将输出提供给攻击者.

合理评估国家或地区的工业化发展水平,准确判断其所处工业化发展阶段,对把握产业发展趋势和制定更好的产业发展政策具有现实意义。青岛市作为国家设立的中心城市之一,同时作为山东省经济实力最强的城市,有责任与能力带动山东半岛的经济走向更强。因此,为进一步推动青岛市经济发展,发挥其应有的作用,有必要对青岛市的工业化发展水平进行测度与分析。

在上述查询集合L 的过程中, 如果未查到相关元素, 则返回错误.

图1 无证书加密算法安全性定义Figure 1 Security definition of CL-PKE

文献[2] 中的模型支持CL.Replace-Public-Key(IDA,PA) 这样的请求来模拟攻击者替换公钥的攻击行为. 文献[8] 中的签名算法安全模型未显式地支持替换公钥请求, 而是允许攻击者生成对其选择的ID∗和公钥P∗有效的签名来赢得游戏. 采用这样的定义方式是因为无证书公钥签名算法可以工作在标识签名算法模式, 即签名用户不发布声明的公钥, 而是将其公钥PA作为签名值的一部分进行传递. 在这样的系统中没有公钥发布的部件, 因此文献[8] 中的安全模型在保持模型有效性的同时, 具有更好的场景适应性. 为了保持模型的一致性, 加密算法安全模型也未显式地支持公钥替换请求, 而是在第3 步中CL.Enc(Mpk,ID∗,P∗,mb)允许攻击者指定P∗,第2 步和第4 步中CL.Decrypt-Message(IDA,PA,C)请求允许攻击者指定PA. 游戏规则允许攻击者替换ID∗的公钥为任意的P∗来请求挑战密文C∗, 只要攻击者未通过请求获取(ID∗,P∗) 对应的私钥且b=b′就算赢得游戏.

• H2(xW∥yW∥Z): 按照标准随机谕示返回.

文献中还有两种理论意义上更强的解密请求. 解密请求类型1[2]: 谕示OCL 需要在没有私钥的情况下, 成功解密任意解密请求中的密文, 包括替换公钥后产生的密文. 这种安全要求具有理论上的意义, 与现实环境中的用户解密的行为不同. 本文安全模型不考虑该请求(实际上, 在随机谕示模型下基于Gap类型的安全性假设, 这类解密请求也可实现). 解密请求类型2[5,13]: 攻击者提供替换公钥对应的部分私钥, 谕示OCL 使用攻击者提供的部分私钥和另外一部分私钥进行解密. 本文中的算法中用户只存储一个私钥值, 因此这类攻击不适用于本文中的算法(本文模型对类型II 攻击者支持CL.Get-User-Key 请求只是为了兼容文献[2] 中模型的请求. 对于本文中的算法, 恶意KGC 通过记录CL.Extract-Partial-Key 的过程并通过CL.Get-Private-Key 获得完整用户私钥就可自行计算谕示对CL.Get-User-Key的响应). 文献[14] 中定义了一个针对类型II 攻击者的模型来模拟KGC 在执行CL.Setup 过程中设置门限的情况. 如文献[5] 中所述, 我们可以简单地使用可验证密钥生成方法击败系统初始化过程的门限攻击. 因此, 为了分析的简洁性, 本文不考虑这种类型的攻击. 设上述两个游戏中攻击者的优势为Adv=|2(Pr[成功]−1/2)|.

那么,我们在家里要怎么做这个游戏呢?有一个早教中心亲子课堂发布的名为Mirror time的游戏可以供您参考,适合0~6岁的宝贝:

1.对外经济交往环境风险。由于油田企业成本构成复杂而产品又相对单一,使得以项目采购、外协加工与服务、地面工程建设等对外经济交往变得日益频繁。近年来,随着越来越多的油田企业走出油田甚至走出国门承揽工程,对外经济交往也变得日趋复杂,潜在的和未知的法律风险也在逐步增多。这种风险主要来自对方资信状况、履约能力、实际履行状况和违约责任追究等几个方面所带来的争议和纠纷。这种争议和纠纷可能会引发仲裁或诉讼,甚至严重影响生产经营的顺利进行。

3 基于SM2 的无证书加密算法

3.1 无证书加密算法

描述算法前, 首先介绍一下标记. ∈R表示从集合中随机选取; ∥表示拼接; 对于一个椭圆曲线的点G,xG 和yG 分别对应点G 的x 轴和y 轴; H 为选择的哈希算法, 如SM3; p 与q 为素数; Fp为素数域; q为选择椭圆曲线点群的阶; [a]G 表示G 的倍点运算; KDF 为基于哈希算法的密钥派生函数[10].

• CL.Setup(1k)

1. KGC 生成随机主私钥Msk=s ∈RZ∗q.

2. KGC 选择系统参数, 包括椭圆曲线E/Fp相关参数和生成元G, 并计算主公钥PKGC=[s]G.系统参数为Mpk=(E/Fp:Y2=X3+aX +b,p,q,G,PKGC=[s]G).

3.2 算法安全性分析

SM2 加密算法的安全性可以规约到以下Gap-Diffie-Hellman(GDH) 复杂性假设. 上述无证书加密算法的安全性也可规约到同一复杂性假设.

定义2 GDH 复杂性假设: 给定一个阶为q 的循环群⟨G⟩ 上的一组元素(G,[α]G,[β]G) 和一个DH判定谕示DDH(给定(X,[a]G,[b]G)可以判定X 是否等于[ab]G),计算[αβ]G 是困难的,其中α,β ∈RZ∗q.

下面的安全性证明过程中使用到代数群模型(Algebraic Group Model, AGM)[15]. AGM 要求攻击者在输出群上元素时, 同时给出该元素基于目前所见群元素的表达. 例如攻击者在获得DH 问题(G,[α]G,[β]G) 后, 计算出T = [αβ]G, 同时给出该元素的表达¯z = (ˆz,ˇz,˜z) ∈Z3q, 满足T =[ˆz]G + [ˇz][α]G + [˜z][β]G. 相比标准模型, AGM 对攻击者的要求更多, 但是对比一般群模型(General Group Mode, GGM)[16], 其要求则更少. 因此在AGM 中证明的结果在GGM 中直接成立. 后文中我们使用T¯z表示具有表达¯z 的元素T. 证明中并不要求攻击者产生的所有群元素都提供表达, 无需表达的元素仍采用普通标记.

定理1 在随机谕示和代数群模型下, 对于基于SM2 的无证书加密算法, 如果存在一个多项式时间攻击者以不可忽略优势赢得类型I 或者类型II 的游戏, 则存在一个多项式时间的算法可以求解GDH 问题.

证明: 算法中有四个哈希计算(KDF 也是基于哈希的计算), 下面分析过程将其模拟成四个不同的随机谕示. 这四个计算中的哈希计算过程输入取值空间不同, 可以自动区分为不同的哈希操作. 随机谕示可采用安全的哈希算法如SM3 算法实现. 下面分别对这两类游戏进行分析.

• CL.Get-User-Key(Mpk, IDA,PA): 如果T 上无(IDi,Pi) 索引的表项, 则返回错误. 如果对应的表项xi所在位置为−, 则终止游戏(事件2), 否则返回xi.

类型 I 的游戏: 假定攻击者AI成功赢得类型I 游戏的优势为ϵ(k). 给定一个GDH 问题(G,[α]G,[β]G), 游戏模拟者S 维护一个格式为⟨IDi,Pi,Ui,xi,di,si,wi⟩ 的列表T(T 将代替2.2 规定的集合L 的作用, 游戏中的其他集合按2.2 描述的方式管理), 采用如下方式回答攻击者AI的询问:

(5)砼工程中砼标号分多种强度等级和不同的配合比,一般情况应该把砼配合比单独归纳到一章内,套定额时,再根据不同标号在本章节中查找换算。但考虑到系统内填写检修计划委托书的是设备点检员,定额编制组在编制砼浇筑子目时,直接将厂内常用的强度等级混凝土按照不同标号编制在砼浇筑子目内。这样,使用者就不用选定子目后再进行查找、换算操作了。

• CL.Get-Private-Key(Mpk, IDA,PA): 如果T 上无(IDi,Pi) 索引的表项, 则返回错误; 否则返回对应的si.

• CL.Get-User-Key(Mpk, IDA,PA): 如果T 上无(IDi,Pi) 索引的表项, 则返回错误; 否则返回对应的xi.

• H1(IDL∥IDi∥a∥b∥xG∥yG∥xPKGC∥yPKGC): 按照标准随机谕示返回.

容易看出, 本文中模型与文献[2] 中的普通攻击者模型的能力相同, 特别是隐式地支持了文献[2] 中的公钥替换请求. 在文献[2] 中模型下, 公钥替换请求不影响谕示对CL.Get-Private-Key 请求(文献[2] 中模型不要求正确返回被替换公钥后对应的私钥) 和CL.Extract-Partial-Key 请求的响应. 在标准解密请求的安全模型下, 谕示就像标准的解密方一样, 使用其拥有的私钥解密密文, 而不关心密文的生成过程是否使用了替换过的公钥. 因此这种情况下, 文献[2] 中的公钥替换请求只对挑战mb的加密过程有意义. 文中模型中要求谕示在使用攻击者自行选择的公钥P∗加密mb的情况下, 攻击者仍然无法以不可忽略的优势赢得游戏. 显然文中的安全模型和文献[2] 一样有效地体现了对实际攻击的安全要求, 包括试图通过替换公钥来获得密文后尝试获得明文相关信息的攻击行为. 注意, 在模型中攻击者根据类型的不同, 获取(ID∗,P∗) 对应的私钥的方法有所不同. 类型I 攻击者可通过CL.Extract-Partial-Key(Mpk,Msk,ID∗,U∗) 请求间接获取或通过CL.Get-Private-Key(Mpk,ID∗,P∗) 请求直接获取(ID∗,P∗) 对应的私钥. 类型II 攻击者可通过CL.Get-User-Key(Mpk,ID∗,P∗) 请求间接获取或通过CL.Get-Private-Key(Mpk,ID∗,P∗) 请求直接获取(ID∗,P∗) 对应的私钥.

• H3(xQ∥yQ): 按照标准随机谕示返回.

• H4(xQ∥m∥yQ): 按照标准随机谕示返回.

类型 II 的游戏: 假定攻击者AII成功赢得类型II 游戏的优势为ϵ(k). 给定一个GDH 问题(G,[α]G,[β]G), 游戏模拟者S 选择一个整数0 < K ≤N, 其中N 是游戏中总共生成的公钥的个数(实际上可以进一步缩小为攻击者未获取完整私钥和用户部分私钥的公钥个数). 模拟者S 维护一个格式为⟨IDi,Pi,Ui,xi,di,si,wi⟩ 的列表T (T 将代替2.2 规定的集合L 的作用, 游戏中的其他集合按2.2 描述的方式管理), 采用如下方式回答攻击者A 的询问(该安全性规约未采用代数群模型):

• CL.Decrypt-Message(Mpk, IDA,PA,C): 谕示在集合L 中查询(IDA,PA) 对应的元素, 使用sA对密文C 进行解密, 在将(IDA,PA,C) 放入集合D 后返回解密结果. 如果查询集合L 的过程中未查到相关元素, 则使用属于IDA的最新sA解密C 返回结果.

对照组接受常规产后护理,包括母乳喂养知识、乳房热敷、护士床旁指导正确喂养方式、心理支持等。观察组在对照组基础上使用射频电疗,产妇取仰卧位,进行双侧乳房局部清洁,治疗片置于纱布上,贴紧乳房四周,以外用固定带加压,再根据产妇耐受程度调节治疗强度,从0Hz开始,逐渐增加至产妇可耐受强度,持续15~25min,1次/d。剖宫产后次日开始,直至出院当天。

• CL.Get-Public-Key(Mpk, IDA, bNewKey): 如果bNewKey 是false, 则在列表T 查找对应IDi的最新的表项中的Pi. 如果未找到, 则返回错误. 如果bNewKey 是true,

• CL.Get-Private-Key(Mpk, IDA,PA): 如果T 上无(IDi,Pi) 索引的表项, 则返回错误. 如果对应的表项si所在位置为−, 则终止游戏(事件1), 否则返回si=xi+dimod q.

地基作为建筑施工工程的基础环节,也是保证整个工程质量的关键环节,任何形式的建筑工程,在施工阶段都要做好地基建设,土方作业完工之后进入到地基施工阶段。为了保证地基施工质量,后期的底板封底、上层建筑修筑等施工过程都要时刻注重对地基工程状况作出检测。地基建设工程也会受到其他因素的影响,例如外部环境、地域特点、土质状况等,但地基施工技术水平的高低是直接影响地基工程质量以及整个建筑工程质量的重要因素,所以建筑施工单位在具体的市政建筑工程中必须考虑到外部影响因素,根据施工现场实际情况选择合理的地基施工技术,为整个建筑工程质量提供技术保障。

2017年,无人机、VR/AR、直播、人工智能等新媒体技术在数字报纸中运用更加广泛。一方面,通过新技术对数字报纸内容进行视觉化呈现,以更加生动有趣、简洁易懂的方式展示和解读新闻内容,增强与读者的互动交流,读者更易理解新闻传达的内容。另一方面,新技术还将渗透到数字报纸内容撰写中,在一些突发事件的快速报道中,以机器人写作将逐步取代记者消息编写。另外,通过新技术可以实时监测新闻热点,即时获取受众反馈,应用信息技术手段进行新闻内容编辑。

• H1(IDL∥IDi∥a∥b∥xG∥yG∥xPKGC∥yPKGC): 按照标准随机谕示返回.

• H2(xW∥yW∥Z): 按照标准随机谕示返回.

根据国内外对数字能力研究多集中在对不同群体的数字能力现状的调查研究,来探索影响群体数字能力的因素,现阶段对于在校研究生这一群体实证研究并不多见,如何有效地利用信息和通信技术对于研究生更为关键,本文针对重庆师范大学研究生进行数字能力的调查研究,根据欧盟数字能力框架和已有的《研究生数字能力评价指标体系》制定符合本校研究生的问卷,用问卷调查的方式了解本校研究生数字能力现状,并利用数据分析软件SPSS对收集到的数据进行信度效度分析,对本校研究生进行数字能力差别分析,为学校提高研究生数字能力提供参考。

• H3(xQ∥yQ): 按照标准随机谕示返回.

• H4(xQ||m||yQ): 按照标准随机谕示返回.

• CL.Decrypt-Message(Mpk, IDA,PA,C): 根据(IDi,Pi) 查找T 是否有私钥si. 如果有, 则使用si解密; 否则

– 情形1: 如果(IDi,Pi)对应第K 个CL.Get-Public-Key 请求返回的(IDi,Pi),则使用DDH谕示检查H3(xQ∥yQ)请求响应列表中所有的Qx是否存在Qx=DH(C1,[α]G+[w∗+λ∗s]G).如果成功找到一个Qx, 则使用H3(xQx∥yQx) 计算m 并使用H4(xQx∥m∥yQx) 校验C3, 并按照正常操作返回; 否则返回⊥;

– 情形2: 否则, 返回⊥(这里也可以进一步利用DDH 谕示检查Qx=DH(C1,PA+[λAs]G), 并根据结果如情形1 进行解密).

• CL.Encrypt-Message(Mpk,ID∗,P∗,mb): 如果(ID∗,P∗) 不是第K 个CL.Get-Public-Key请求对应的数据, 则终止(事件3); 否则设置C1= [β]G, 利用DDH 谕示检查H3和H4上的数据是否有Qx满足Qx= DH([β]G,[α]G+[w∗+λ∗s]G), 若无, 则随机生成C2和C3, 返回密文;否则返回(Qx−[w∗+λ∗s][β]G) 为GDH 的解.

• 攻击者AII返回b′后, 使用DDH 谕示检查H3(xQ∥yQ) 请求列表中所有的Qi是否存在Qx满足Qx=DH([β]G,[α+w∗+λ∗s]G). 如果找到一个Qx满足等式, 则返回(Qx−[w∗+λ∗s][β]G)为GDH 的解; 否则模拟者S 失败(事件4).

公共服务提供凭空想象,认为是做好事,并非当做本职工作和责任,这难以让民众信服。公共服务如何得民心、惟民众是,需要有科学、合理,以民众为导向的公共服务种类,政府在担当公共服务提供者的同时需要全盘考虑、精心研究,需要专门的智库,智库提出的策略势必起到明显效果,因此政府组建专门公共服务创新智库势在必行,在为其提供充足经费,使其拥有话语权的同时,时刻监督智库进展,此时的智库定能为政府提供最具时效性、实用性和可行性的创新政策,最大限度地造福人民,同时政府也要鼓励支持民间智库和相关非政府组织的发展,使其也能为政府、为国家、为人民提供创新政策。

若事件3 不发生, 则事件1 和2 不发生. 类似于游戏1 中分析, 我们有:

4 结论

本文采用文献[8] 中的密钥生成方法结合SM2 加密算法构造无证书加密算法并在适当的安全模型下对算法安全性进行了形式化分析. 我们证明了文中的无证书SM2 加密算法的安全性在随机谕示和代数群模型下可以规约到Gap-Diffie-Hellman 复杂性假设. 过程中采用的安全模型和方法也可以用于分析ECQV+ECIES 组合形成的无证书加密算法的安全性. 文中的结果可以为这类算法的安全性评估和标准化工作提供参考.

猜你喜欢
私钥公钥加密算法
比特币的安全性到底有多高
加密文档排序中保序加密算法的最优化选取
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
程序员把7500枚比特币扔掉损失巨大
基于整数矩阵乘法的图像加密算法
神奇的公钥密码
国密SM2密码算法的C语言实现
基于身份的聚合签名体制研究
教育云平台的敏感信息保护技术研究
AES加密算法的实现及应用