一种分布式SM9密钥生成方法及系统技术方案

技术编号:29162597 阅读:13 留言:0更新日期:2021-07-06 23:04
本发明专利技术公开了一种分布式SM9密钥生成方法及系统。本方法为:1)通过n个设定的密钥生成中心生成系统公共参数;2)n个所述密钥生成中心共同运行,每一所述密钥生成中心获得一个重复秘密分享分片和主私钥s的一个分片;其中第i个所述密钥生成中心KGC

【技术实现步骤摘要】
一种分布式SM9密钥生成方法及系统
本专利技术属于信息安全
,涉及一种基于多个密钥中心生成SM9用户密钥的方法及系统。
技术介绍
在基于身份的密码学系统中不需要管理证书,与传统的基于证书颁发机构(CA)的公钥基础设施(PKI)相比,基于身份的密码系统(IBC)在传输效率和系统设计方面更占优势。例如,可使用密码算法对物联网设备私密数据进行加密。目前,国密SM9算法是我国唯一的基于身份的密码标准。实际中,物联网设备出厂前,由厂商为设备生成设备私钥。另一方面,一旦(厂商)主私钥泄露,所有由该厂商制造的设备将受到影响。因此如何保护主私钥对于SM9算法的安全具有重要意义。本专利技术提出一种分布式(t,n)-门限SM9用户密钥生成方法,解决SM9主私钥泄漏造成的用户密钥安全问题。目前已知一篇期刊论文(许盛伟,任雄鹏,袁峰等.一种关于SM9的安全密钥分发方案.计算机应用与软件,2020,37(01):314-319.)采用让密钥生成中心分享主私钥倒数的方式来分布式生成用户密钥。但他们的方案存在以下三个不足:(1)方案正确性存在问题:虽然该方案能正确提取出用户密钥,但很难从主私钥倒数的分片中提取出主公钥从而提取出用户公钥。而本专利技术在多个密钥生成中心间分享的是主私钥,可以高效地从主私钥分片中提取出用户的私钥和公钥;(2)方案不完整:该方案并未描述在系统建立阶段,主私钥的倒数是如何在多个密钥生成中心进行分享的。而本专利技术提出了一个密钥协商协议,主私钥由多个密钥生成中心协商得出无须可信第三方预先分配;(3)方案不高效:该方案的分布式用户密钥提取阶段需要密钥生成中心进行三轮交互,而本专利技术只需要一轮。目前已知一项中国专利CN108418686A(一种多分布式的SM9解密方法与介质及密钥生成方法)采用了“分布式门限解密”的方式来保护加密密钥。该专利技术保护的密钥属于用户层次。而本专利技术则采用分布式多密钥生成中心形式,保护的是主私钥的安全。一旦主私钥泄露,用户的密钥也会随之泄露。
技术实现思路
本专利技术致力于解决中心化密钥生成导致的系统单点失败问题。对于SM9算法而言,单点失败问题的危害性体现在两个方面:(1)主密钥泄露的风险高:一旦唯一的密钥生成中心被攻破,主私钥也会随之泄露;(2)系统鲁棒性差:一旦唯一的密钥生成中心崩溃,整个系统的密钥生成服务也将被迫停止。本专利技术采用以下的技术方案:(1)针对潜在的主私钥泄露风险,本专利技术提出的分布式密钥生成方案将主私钥分成了n个分片,分别由n个子密钥生成中心独立管理。主私钥的泄露需要攻破至少t+1个子密钥生成中心,而在中心化密钥生成的场景下,只需要攻破1个密钥生成中心。相较而言,在分布式密钥生成的场景下,主私钥泄露所需的攻击成本大,泄露风险小;(2)针对单点失败导致的服务不可用问题,本专利技术提出的分布式密钥生成方案采用(t,n)-门限密钥生成的方式,当宕机的密钥生成中心的个数小于n-2t个时,系统仍能正常提供密钥生成服务。并且系统管理员可以在保证n>2t的前提下自由设置t,n的取值。本专利技术不但适用于SM9的加密也适用于SM9签名、或密钥协商,能够较好地兼容现有系统。下面以物联网设备制造为应用场景,结合该场景中涉及的角色及功能,简要介绍本专利技术提出的SM9分布式密钥生成方案。如图1所示,本专利技术主要涉及3个实体:密钥生成中心(KGC),密钥合成中心(CC),物联网设备。1、密钥生成中心(KGC):持有主私钥的分片si。与其它密钥生成中心交互,为物联网设备生成私钥分片密钥生成中心的个数由系统参数n确定,且只有在获得了大于等于t+1个主私钥分片si的情况下,才能重构恢复出主私钥s。2、密钥合成中心(CC):是一个无状态的实体。与密钥生成中心交互,获取物联网设备私钥的分片并将分片合成完整的设备私钥SID,然后将SID安装到物联网设备上。合成完整的设备私钥SID需要至少t+1个设备私钥分片且密钥合成中心不存储设备私钥SID,安装完成后立即销毁SID。3、物联网设备:是一个存储计算能力都较弱的实体,在出厂之前需要将设备私钥安装好。本专利技术提出的分布式SM9密钥生成方法,实现步骤如下:1、系统初始化:由n个密钥生成中心共同运行,确定系统公共参数。如公开的SM9算法所使用的双线性对参数组,密钥生成中心的个数n(n>0),以及系统门限值t(t≥0)。如果n个密钥生成中心使用的系统参数不一致或条件n>2t不满足,则n个密钥生成中心立刻停止运行。2、系统建立:由n个密钥生成中心共同运行,确定系统主私钥s。每个密钥生成中心KGCi在运行完此步后将会获得一个私密的重复秘密分享分片σi和一个沙米尔(Shamir)秘密分享分片si,si即主私钥s的分片。KGCi获得σi和si的主要步骤如下:(1)每个密钥生成中心KGCi先各自在本地选取一个随机值μi,然后以重复秘密分享的形式分享给其它n-1个密钥生成中心。(2)每个密钥生成中心KGCi分享完自己选的随机值给其它n-1个密钥生成中心后,加上自己选的随机值μi的重复秘密分享分片,每个密钥中心将会获得n个重复秘密分享的分片。然后密钥生成中心KGCi在本地将这n个分片相加,相加的结果就是其获得的全局重复秘密分享的分片σi,该分片分享的秘密是σ=μ1+μ2+…+μn,由n个密钥生成中心共同决定。(3)每个密钥生成中心KGCi再将σi作为输入,在本地运行秘密分享分片转换算法,该算法的输出即是该密钥生成中心KGCi私下持有的主私钥分片si。3、生成设备私钥分片:由n个密钥生成中心共同运行,每个密钥生成中心KGCi将在此步为物联网设备生成一个私钥分片由于SM9算法的用户密钥形式不具有任何同态性质,在为物联网设备生成私钥分片的时候,密钥生成中心之间需要交互需要运行安全多方计算协议,以保证在交互过程中密钥生成中心KGCi的主私钥分片si不会泄露给其它密钥生成中心。涉及的主要步骤如下:(1)每个密钥生成中心KGCi收到物联网设备的ID后,将自己持有的主私钥分片si与F(ID)相加得到一个Shamirshare分片xi=si+F(ID),此xi是秘密s+F(ID)的一个分片,其中F(ID)是一个由SM9算法指定的密码杂凑函数,作用是将物联网设备的ID(一个字符串)映射成一个域元素。(2)每个密钥生成中心KGCi在本地运行一次秘密分享分片转换算法,输入是重复秘密分享的分片σi,输出是一个伪随机的Shamirshare分片ri,此ri是秘密r的一个分片(r是一个伪随机数,由秘密分享分片转换算法和σ生成)。(3)n个密钥生成中心共同运行一次半诚实的分布式多方乘法协议并在协议中分享Shamirshare分片xi和ri的乘积xi·ri,运行完该乘法协议后,每个密钥生成中心KGCi根据自己持有的xi·ri分片和收到的分片进行拉格朗日插值计算得到秘密x和秘密r的乘积z=x·r。(4)每个密钥生成中心KGCi计算ωi=1-F(ID)·ri/z,该Shamirshare分片分享的秘密是s/(s本文档来自技高网
...

【技术保护点】
1.一种分布式SM9密钥生成方法,其步骤包括:/n1)通过n个设定的密钥生成中心生成系统公共参数

【技术特征摘要】
1.一种分布式SM9密钥生成方法,其步骤包括:
1)通过n个设定的密钥生成中心生成系统公共参数且满足n>2t;t为系统门限值,为SM9算法所需的双线性对参数组;
2)n个所述密钥生成中心共同运行,每一所述密钥生成中心获得一个重复秘密分享分片和主私钥s的一个分片;其中第i个所述密钥生成中心KGCi获得一个重复秘密分享分片σi和主私钥s的分片si;
3)每个所述密钥生成中心根据重复秘密分享分片和主私钥s的一个分片,为目标设备生成一个私钥分片并发送给密钥合成中心;其中密钥生成中心KGCi生成私钥分片
4)密钥合成中心收到大于或等于t+1个所述私钥分片后进行密钥合成,得到该目标设备的私钥。


2.如权利要求1所述的方法,其特征在于,所述密钥生成中心KGCi获得重复秘密分享分片σi和分片si的方法为:
2-1)密钥生成中心KGCi先选取或生成一个随机值μi,然后以重复秘密分享的形式分享给其它n-1个密钥生成中心;
2-2)密钥生成中心KGCi根据收到的其它n-1个密钥生成中心的随机值与随机值μi,得到重复秘密分享分片σi;
2-3)密钥生成中心KGCi将σi作为秘密分享分片转换算法的输入,计算得到主私钥分片si。


3.如权利要求2所述的方法,其特征在于,所述密钥生成中心KGCi生成私钥分片的方法为:
3-1)密钥生成中心KGCi收到一目标设备的ID后,将自己持有的主私钥分片si与F(ID)相加得到一个Shamirshare分片xi,其中F(ID)是一个由SM9算法指定的密码杂凑函数,用于将ID信息映射成一个域元素;
3-2)密钥生成中心KGCi将σi作为秘密分享分片转换算法的输入,输出是一个伪随机的Shamirshare分片ri;
3-3)n个密钥生成中心共同运行一次半诚实的分布式多方乘法协议并在协议中分享Shamirshare分片xi和ri的乘积xi·ri,运行完该乘法协议后,每个密钥生成中心KGCi根据自己持有的xi·ri分片和收到的分片进行拉格朗日插值计算得到秘密x和秘密r的乘积z=x·r;
3-4)密钥生成中心KGCi计算ωi=1-F(ID)·ri/z;
3-5)密钥生成中心KGCi将ωi与SM9算法指定的椭圆曲线的生成点进行一次数乘,得到一个新的椭圆曲线上的点即私钥分片


4.如权利要求1所述的方法,其特征在于,所述私钥分片是椭圆曲线上的点,所述密钥合成中心对t+1个所述私钥分片进行椭圆曲线上的拉格朗日插值,得到该目标设备的私钥。


5.如权利要求1所述的方法,其特征在于,生成系统公共参数的方法为:
1-1)每一所述密钥生成中心读取配置文件,并通过端口1监听来自于其它密钥生成中心的连接;
1-2)每一所述密钥生成中心通过端口2监听来自于密钥合成中心的连接;
1-3)每一所述密钥生成中心获取其它密钥生成中心的IP地址和监听端口信息,尝试与其它所述密钥生成中心建立网络连接;
1...

【专利技术属性】
技术研发人员:张锐邹欢肖禹亭陶杨
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1