CN115174069A - 一种拟态分布式sm9快速标识密钥生成方法及系统 - Google Patents
一种拟态分布式sm9快速标识密钥生成方法及系统 Download PDFInfo
- Publication number
- CN115174069A CN115174069A CN202210805840.XA CN202210805840A CN115174069A CN 115174069 A CN115174069 A CN 115174069A CN 202210805840 A CN202210805840 A CN 202210805840A CN 115174069 A CN115174069 A CN 115174069A
- Authority
- CN
- China
- Prior art keywords
- executive
- task
- key generation
- secret
- private key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种拟态分布式SM9快速标识密钥生成方法及系统。本发明执行体构建模块生成异构执行体供执行体调度模块调用,执行体调度模块依据调度算法SA调度部分执行体组成服务体供密钥生成模块使用,任务分配模块接收标识密钥生成任务并根据分配算法DA将任务分配给密钥生成模块中的服务体,密钥生成模块根据分布式标识密钥生成算法生成标识私钥。本发明引入拟态异构执行体,使得标识密码体制中主私钥的安全得到保障。依据门限值选择执行体进行私钥合成,提高密钥生成效率。设定调度周期对服务体进行动态更新可提高攻击者的探测难度,提高系统的安全性。
Description
技术领域
本发明属于信息安全技术领域,涉及一种拟态分布式SM9快速标识密钥生成方法及系统。
背景技术
在传统公钥密码基础设施(PKI)体制中,通常依赖第三方可信机构使用证书对公钥进行管理。在通信过程中,通信双方需要检索并验证对方的公钥证书,加上证书申请、管理、维护等一系列繁琐的流程阻碍了PKI的广泛应用。基于身份的标识密码(IBC)体制的出现缓解了这一问题,用户的手机号码、邮箱、IP等都可以成为自己的公钥而无需使用证书。基于身份的标识密码体制统一由密钥生成中心(KGC)生成所有用户的私钥,盗取KGC的主私钥就能得到所有用户的私钥,因此标识密钥体制存在密钥托管的问题。
解决密钥托管问题最常见的方法就是使用分布式密钥生成中心进行密钥生成,即使用多个KGC共同生成用户私钥。每个KGC只负责部分私钥的生成,只有得到一定数量或者全部KGC的生成结果才能组合出用户真正的私钥。因此,单个或者少量KGC的泄露并不会对私钥安全造成威胁。但是传统的分布式标识密钥生成系统也存在一些不足,比如所有KGC若使用同构系统,攻击者成功攻击一个KGC,其他KGC的安全也难以保证,因此主私钥仍有泄露的风险。其次,对于门限秘密共享的分布式标识密钥生成算法,得到门限值以上的私钥片段就可以合成私钥,而现有方式都是所有KGC都会生成并发送私钥片段,这就导致密钥生成过程存在资源浪费及密钥生成效率不高的情况。
针对上述问题,本发明基于拟态思想提出一种分布式快速SM9标识密钥生成方法,该方法使用异构执行体代替传统KGC服务器,并引入任务动态分配机制,进一步提升KGC的安全性并提高标识密钥的生成效率。本发明中使用Jaccard距离衡量执行体间的异构性,具体计算方法可见期刊论文(吴铤,胡程楠,陈庆南,陈安邦,郑秋华.基于执行体划分的防御增强型动态异构冗余架构[J].通信学报,2021,42(03):122-134.)。本发明密钥生成模块使用的分布式密钥生成算法,采用公开号为CN113079003A、发明名称为一种分布式SM9密钥生成方法及系统的专利所公开的方法。
发明内容
本发明的目的就是提供一种拟态分布式SM9快速标识密钥生成方法及系统。
一种拟态分布式SM9快速标识密钥生成方法,具体包括如下步骤:
步骤1、系统初始化:
首先,确定执行体构建模块中异构执行体的数量m、各执行体算力指标{γ1,γ2…rm}、执行体总异构性μ;确定执行体调度模块中系统调度周期T、服务体S中执行体的数量n;确定密钥生成模块中SM9算法所使用的参数组G、分布式密钥生成算法的门限阈值t,t<n。
其中,异构执行体的数量m≥n+1,执行体算力指标cpu核心数由执行体的cpu硬件决定,IO耗时为执行体进行通信需要的时间,CPU耗时为执行体进行计算需要的时间;系统调度周期T为更换服务体S中执行体的周期。
然后,构建异构执行体集:每层软件确定两个以上的产品版本组成该软件的构件集;在满足软件兼容性的前提下对构件集中的产品版本进行组合,共组建出m个异构执行体,构成系统的异构执行体集。每个执行体包括一种操作系统、一种数据库软件、一种服务器软件和一种后台脚本语言。
步骤2、系统运行:在确定各项系统参数后,执行体调度模块执行调度算法SA,任务分配模块执行分配算法DA,系统开始进行标识密钥生成任务,具体步骤如下:
步骤2.1、执行体调度模块首先从执行体集中随机选择n个执行体{E1,E2…En},并使用Jaccard距离计算n个执行体的异构性μn。若μn<μ,则重新选择执行体,直至μn≥μ;n个执行体组成服务体S。
步骤2.2、标识密钥生成模块首先确定SM9的主私钥msk,msk由服务体S中的n个执行体共同确定。具体为:每个执行体各自选取一个随机值xi,然后以重复秘密分享的形式分享给其他n-1个执行体。每个执行体都将获得n个重复秘密分享的分片,每个执行体将所有秘密分片相加得到全局重复秘密分享的分片σi,该分片组合成秘密σ=x1+x2…+xn。每个执行体再将xi作为输入,在本地运行秘密分享分片转换算法,最终每个执行体都持有主私钥分片{msk1,msk2…mskn}。其中,秘密恢复门限值为t,即只有得到t个msk秘密分片才能算出真正的主私钥msk。
步骤2.3、任务分配模块分配私钥生成任务:任务分配模块收到标识密钥生成任务后,会将标识发送给所有执行体,且会根据分配算法DA指定部分执行体进行私钥片段合成,未被指定的执行体只会进行部分密钥运算。
步骤2.4、密钥生成模块处理私钥生成任务:私钥生成共分为两个步骤,第一步所有服务体S中的执行体都会参与,每个执行体根据收到的任务标识ID,最终会生成一个门限值为2t的伪随机Shamir秘密分片zi,并完成秘密共享得到秘密z。第二步只有标记过的执行体参与,每个执行体最终会生成一个标识ID的私钥片段并发给密钥组合中心。密钥组合中心根据收到的私钥片段合成完整的私钥。
步骤3、系统重置:当系统运行周期T后,对系统服务体S中的执行体进行清洗更换。具体步骤如下:
步骤3.1、停止私钥生成任务的接收,转至步骤2.1重新选取n个执行体{E1′,E2′,,,En′}。
步骤3.2、当前服务体S中的执行体{E1,E2,,,En}保存的{xi,mski}依次传递给新执行体{E1′,E2′,,,En′},新执行体重新组成服务体S。重置执行体{E1,E2,,,En}并放回执行体集中。
步骤3.3、重新开始私钥生成任务的接收,并转至步骤2.3。
进一步的,所述的执行体总异构性μ根据构建出的执行体集进行计算,使用Jaccard距离衡量执行体间的异构性,执行体总异构性其中m为系统异构执行体数,C为组合数计算,Jac(Ei,Ej)表示计算执行体Ei和Ej之间的Jaccard距离。
进一步的所述的步骤2.3具体包括如下步骤:
步骤2.3.1、任务分配模块保存有当前服务体S中所有执行体的空余算力数{a1,a2…am}和已用算力数{b1,b2…bm},其中算力指标γi=ai+bi。分配算法DA首先根据空余算力数对执行体进行从大到小排列,依次取前t个执行体。若选择过程中出现空余算力数相等的情况,则根据已用算力数从小到大排列,依次进行选取。若已用算力数仍相等,则随机选取。最终分配算法选出t个执行体并标记,并将这t个执行体已用算力数加一,空余算力数减一。
步骤2.3.2、任务分配模块将任务中的标识ID以及执行体标记信息发送给服务体S中的所有执行体。
进一步的,所述的步骤2.4具体包括如下步骤:
步骤2.4.1、每个执行体收到任务标识ID后,计算yi=mski+H(ID),其中mski为执行体Ei持有的主私钥分片,H(ID)是SM9算法中指定的杂凑函数,计算结果yi也是一个门限值为t的Shamir秘密分片。
步骤2.4.2、每个执行体在本地运行一次秘密分享分片转换算法,将持有的重复秘密分享分片σi转换成伪随机Shamir秘密分片ri,ri是r的门限值为t的Shamir秘密分片。步骤2.4.3、n个执行体共同运行一次半诚实的分布式多方乘法协议分享zi=yi*ri,最终每个执行体都能通过拉格朗日插值法得到秘密y和秘密r的乘积z=y*r。此时,未标记的执行体停止当前任务,并开始处理新任务。标记过的执行体继续以下步骤。
步骤2.4.4、每个执行体计算ωi=1-H(ID)*ri/z,ωi即为秘密msk/(msk+H(ID))的Shamir秘密分片。
步骤2.4.5、密钥组合中心共得到t份SID的Shamir秘密分片,最终通过拉格朗日插值法得到标识ID的私钥SID。
步骤2.4.6、密钥组合中心将标识ID的私钥生成结果反馈给任务分配模块,任务分配模块收到反馈结果,将该任务标记的执行体对应的已用算力数减一,空余算力数加一。同时,若标识ID的私钥生成失败,则重新分配该任务。
上述方法基于下述系统实现,该系统包括执行体构建模块、执行体调度模块、任务分配模块、密钥生成模块;
执行体构建模块:负责从不同构件集中选择相应构件组成不同的异构执行体,每个执行体都具有完整的KGC服务器功能。所有执行体组成系统的执行体集E={E1,E2…Em}。
执行体调度模块:依据调度算法SA,从执行体集E中选择n个执行体组成服务体S,最后上线服务体S参与密钥生成任务。
任务分配模块:负责向服务体S中的执行体分配标识密钥生成任务。依据分配算法DA,前期的标识密钥运算所有执行体都会参与,但是最终只有指定的部分执行体会完成私钥片段的生成和发送。
密钥生成模块:负责将分布式密钥生成需要的系统参数和生成算法写入服务体S中的执行体,并保证私钥生成任务顺利的进行。
本发明引入拟态异构执行体,使得标识密码体制中主私钥的安全进一步得到保障。依据门限值选择执行体进行私钥合成,可避免计算资源的浪费,缩短了密钥生成时间,提高密钥生成效率。设定调度周期对服务体进行动态更新可提高攻击者的探测难度,提高系统的安全性。
附图说明
图1为系统架构图;
图2为执行体软件异构版本选择示例图。
具体实施方式
如图1所示,一种拟态分布式SM9快速标识密钥生成系统包括执行体构建模块、执行体调度模块、任务分配模块、密钥生成模块;执行体构建模块生成异构执行体供执行体调度模块调用,执行体调度模块依据调度算法SA调度部分执行体组成服务体供密钥生成模块使用,任务分配模块接收标识密钥生成任务并根据分配算法DA将任务分配给密钥生成模块中的服务体,密钥生成模块根据分布式标识密钥生成算法生成标识私钥。
执行体构建模块:负责从不同构件集中选择相应构件组成不同的异构执行体,每个执行体都具有完整的KGC服务器功能。所有执行体组成系统的执行体集E={E1,E2…Em}。
执行体调度模块:依据调度算法SA,从执行体集E中选择n个执行体组成服务体S,最后上线服务体S参与密钥生成任务。
任务分配模块:负责向服务体S中的执行体分配标识密钥生成任务。依据分配算法DA,前期的标识密钥运算所有执行体都会参与,但是最终只有指定的部分执行体会完成私钥片段的生成和发送。
密钥生成模块:负责将分布式密钥生成需要的系统参数和生成算法写入服务体S中的执行体,并保证私钥生成任务顺利的进行。
基于上述系统,有如下一种拟态分布式SM9快速标识密钥生成方法,具体包括如下步骤:
步骤1、系统初始化:确定系统参数和构建异构执行体集。
步骤1.1、确定系统参数:确定执行体构建模块中异构执行体的数量m、各执行体算力指标{γ1,γ2…rm}、执行体总异构性μ;确定执行体调度模块中系统调度周期T、服务体S中执行体的数量n;确定密钥生成模块中SM9算法所使用的参数组G、分布式密钥生成算法的门限阈值t(t<n)。
其中,异构执行体的数量m≥n+1,执行体算力指标γ代表该执行体能够同时参与密钥生成任务的个数,如γi=4表示执行体Ei可最多产生4个线程参与4个不同标识密钥的生成,
其中,cpu核心数由执行体的cpu硬件决定,IO耗时为执行体进行通信需要的时间,CPU耗时为执行体进行计算需要的时间;IO耗时和CPU耗时可在系统上线前通过对执行体进行分布式密钥生成测试确定。
其中m为系统异构执行体数,C为组合数计算,Jac(Ei,Ej)表示计算执行体Ei和Ej之间的Jaccard距离。
步骤1.2、构建异构执行体集:异构执行体为组件完备、功能完整的KGC服务器系统,每个执行体都能进行通信传输、函数运算和数据存储。其中,异构性体现在操作系统、数据库软件、服务器软件及后台脚本语言这四层软件异构。
具体构建步骤如下:
首先确定构件集:根据四层软件类型(操作系统、数据库软件、服务器软件和后台脚本语言),先从通用平台枚举(CPE,common platform enumeration)数据库中获取对应的产品各版本信息。为使后续构建的执行体具有较强的异构性,每层软件应选择至少两种不同平台或不同厂商的产品,且在选择各产品版本时应避免选择多个相近版本。具体选择方法可通过对各产品版本进行漏洞相似性聚类或选择业界相对认可的版本。最终,每层软件应确定两个以上的产品版本组成该软件的构件集。
然后组建执行体集:每个执行体包括一种操作系统、一种数据库软件、一种服务器软件和一种后台脚本语言。根据确定的构件集,在满足软件兼容性的前提下对构件集中的产品版本进行组合,共组建出构成系统异构执行体集的m个异构执行体。
在本实施例中,通过漏洞相似性聚类选择和综合评判,最终选择了4种操作系统、3种服务器软件、3种后台脚本语言和3种数据库软件,详细软件版本示例如图2所示。在满足兼容性的前提下共组建出35个异构执行体,如选择{windows_server_2019;nginx:1.13.8;python:3.5.0;mysql:8.0.1}这四个软件版本即可组建一个执行体,依此方法组建的35个异构执行体构成系统的异构执行体集。
构建完成后,对所有异构执行体进行性能测试,得到所有执行体的算力指标{γ1=8,γ2=7…r35=5},并使用算得执行体的总异构性μ=0.6,设定系统调度周期T=1天,服务体中执行体数量n=5,SM9算法所使用的参数组C详见SM9国标文件,分布式密钥生成算法的门限阈值t=3,可知密钥组合中心只有获取大于等于3个私钥片段才能合成完整私钥。
步骤2、系统运行:在确定各项系统参数后,执行体调度模块执行调度算法SA,任务分配模块执行分配算法DA,系统就可以开始进行标识密钥生成任务,具体步骤如下:
步骤2.1、执行体调度模块首先从执行体集中随机选择n个执行体{E1,E2…En},并计算这n个执行体的异构性μn,计算方式同样使用Jaccard距离。若μn<μ,则重新选择执行体,直至μn≥μ。n个执行体组成服务体S。
在本实施例中,选择的5个执行体为{E1,E2,E3,E4,E5},这5执行体的算力指标为{γ1=8,γ2=7,γ3=3,γ4=7,r5=5},且算得异构性μ5=0.76>μ,因此这5个执行体可组成服务体S。
步骤2.2、标识密钥生成模块首先确定SM9的主私钥msk,msk由服务体S中的n个执行体共同确定,具体步骤如下:
每个执行体各自选取一个随机值xi,然后以重复秘密分享的形式分享给其他n-1个执行体。每个执行体都将获得n个重复秘密分享的分片,每个执行体将所有秘密分片相加得到全局重复秘密分享的分片σi,该分片可组合成秘密σ=x1+x2…+xn。每个执行体再将xi作为输入,在本地运行秘密分享分片转换算法,最终每个执行体都持有主私钥分片{msk1,msk2…mskn}。秘密恢复门限值为t,即只有得到t个msk秘密分片才能算出真正的主私钥msk。
在本实施例中,服务体中{E1,E2,E3,E4,E5}都将参与上述过程并共同协商确定系统的主私钥msk,每个执行体都会保留自己生成的随机值xi和秘密分片σi。
步骤2.3、任务分配模块分配私钥生成任务:任务分配模块收到标识密钥生成任务后,会将标识发送给所有执行体,且会根据分配算法DA指定部分执行体进行私钥片段合成,未被指定的执行体只会进行部分密钥运算。具体步骤如下:
步骤2.3.1、任务分配模块保存有当前服务体S中所有执行体的空余算力数{a1,a2…am}和已用算力数{b1,b2…bm},其中算力指标γi=ai+bi。分配算法DA首先根据空余算力数对执行体进行从大到小排列,依次取前t+1个执行体。若选择过程中出现空余算力数相等的情况,则根据已用算力数从小到大排列,依次进行选取。若已用算力数仍相等,则随机选取。最终分配算法选出t+1个执行体并标记,并将这t+1个执行体已用算力数加一,空余算力数减一。
步骤2.3.2、任务分配模块将任务中的标识ID以及执行体标记信息发送给服务体S中的所有执行体。
在本实施例中,考虑系统在运行一段时间后,任务分配模块此时保存的执行体空余算力数为{a1=4,a2=4,a3=2,a4=6,a5=4}和已用算力数{b1=4,b2=3,b3=1,b4=1,b5=1},根据分配算法DA,当任务分配模块收到标识密钥生成任务IDi时,会标记{E4,E1,E2},这三个执行体将会为IDi生成私钥片段。
步骤2.4、密钥生成模块处理私钥生成任务:私钥生成共分为两个步骤,第一步所有服务体S中的执行体都会参与,每个执行体根据收到的任务标识ID,最终会生成一个门限值为2t的伪随机Shamir秘密分片zi,并完成秘密共享得到秘密z。第二步只有标记过的执行体参与,每个执行体最终会生成一个标识ID的私钥片段并发给密钥组合中心。密钥组合中心根据收到的私钥片段合成完整的私钥。具体步骤如下:
步骤2.4.1、每个执行体收到任务标识ID后,计算yi=mski+H(ID),其中mski为执行体Ei持有的主私钥分片,H(ID)是SM9算法中指定的杂凑函数,计算结果yi也是一个门限值为t的Shamir秘密分片。
步骤2.4.2、每个执行体在本地运行一次秘密分享分片转换算法,将持有的重复秘密分享分片σi转换成伪随机Shamir秘密分片ri,ri是r的门限值为t的Shamir秘密分片。
步骤2.4.3、n个执行体共同运行一次半诚实的分布式多方乘法协议分享zi=yi*ri,最终每个执行体都能通过拉格朗日插值法得到秘密y和秘密r的乘积z=y*r。此时,未标记的执行体停止当前任务,并开始处理新任务。标记过的执行体继续以下步骤。
步骤2.4.4、每个执行体计算ωi=1-H(ID)*ri/z,ωi即为秘密msk/(msk+H(ID))的Shamir秘密分片。
步骤2.4.5、密钥组合中心共得到t份SID的Shamir秘密分片,最终通过拉格朗日插值法得到标识ID的私钥SID。
步骤2.4.6、密钥组合中心将标识ID的私钥生成结果反馈给任务分配模块,任务分配模块收到反馈结果,将该任务标记的执行体对应的已用算力数减一,空余算力数加一。同时,若标识ID的私钥生成失败,则重新分配该任务。
在本实施例中,所有服务体中的执行体都会进行第一部分的运算,而最终只有{E4,E1,E2}这三个执行体会为标识IDi生成并发送私钥片段密钥组合中心收到这三个片段后使用拉格朗日插值法即可求得标识IDi的完整标识私钥)ID。密钥组合中心会将IDi私钥生成成功的信息反馈给任务分配模块,任务分配模块收到反馈后即可更新这三个执行体的算力信息并安排下一个任务。
步骤3、系统重置。当系统运行周期T后,对系统服务体S中的执行体进行清洗更换。具体步骤如下:
步骤3.1、停止私钥生成任务的接收,转至步骤2.1重新选取n个执行体{E1′,E2′,,,En′}。
步骤3.2、当前服务体S中的执行体{E1,E2,,,En}保存的{xi,mski}依次传递给新执行体{E1′,E2′,,,En′},新执行体重新组成服务体S。重置执行体{E1,E2,,,En}并放回执行体集中。
步骤3.3、重新开始私钥生成任务的接收,并转至步骤2.3。
在本实施例中,设定的调度周期T=1天,即一天后系统会更新当前系统的服务体,执行体调度模块从执行体集中重新选择5个执行体,如{E14,E32,E8,E11,E24}。这5个执行体组成新的服务体并开始处理标识密钥生成任务。
本发明并不局限于上述具体实施方式,本领域技术人员还可据此做出多种变化,但任何与本发明等同或者类似的变化都应涵盖在本发明权利要求的范围内。
Claims (5)
1.一种拟态分布式SM9快速标识密钥生成方法,其特征在于:
具体包括如下步骤:
步骤1、系统初始化:
首先,确定执行体构建模块中异构执行体的数量m、各执行体算力指标{γ1,γ2…rm}、执行体总异构性μ;确定执行体调度模块中系统调度周期T、服务体S中执行体的数量n;确定密钥生成模块中SM9算法所使用的参数组G、分布式密钥生成算法的门限阈值t,t<n;
其中,异构执行体的数量m≥n+1,执行体算力指标cpu核心数由执行体的cpu硬件决定,IO耗时为执行体进行通信需要的时间,CPU耗时为执行体进行计算需要的时间;系统调度周期T为更换服务体S中执行体的周期;
然后,构建异构执行体集:每层软件确定两个以上的产品版本组成该软件的构件集;在满足软件兼容性的前提下对构件集中的产品版本进行组合,共组建出m个异构执行体,构成系统的异构执行体集;每个执行体包括一种操作系统、一种数据库软件、一种服务器软件和一种后台脚本语言;
步骤2、系统运行:在确定各项系统参数后,执行体调度模块执行调度算法SA,任务分配模块执行分配算法DA,系统开始进行标识密钥生成任务,具体步骤如下:
步骤2.1、执行体调度模块首先从执行体集中随机选择n个执行体{E1,E2…En},并使用Jaccard距离计算n个执行体的异构性μn;若μn<μ,则重新选择执行体,直至μn≥μ;n个执行体组成服务体S;
步骤2.2、标识密钥生成模块首先确定SM9的主私钥msk,msk由服务体S中的n个执行体共同确定;具体为:每个执行体各自选取一个随机值xi,然后以重复秘密分享的形式分享给其他n-1个执行体;每个执行体都将获得n个重复秘密分享的分片,每个执行体将所有秘密分片相加得到全局重复秘密分享的分片σi,该分片组合成秘密σ=x1+x2…+xn;每个执行体再将xi作为输入,在本地运行秘密分享分片转换算法,最终每个执行体都持有主私钥分片{msk1,msk2…mskn};秘密恢复门限值为t,即只有得到t个msk秘密分片才能算出真正的主私钥msk;
步骤2.3、任务分配模块分配私钥生成任务:任务分配模块收到标识密钥生成任务后,会将标识发送给所有执行体,且会根据分配算法DA指定部分执行体进行私钥片段合成,未被指定的执行体只会进行部分密钥运算;
步骤2.4、密钥生成模块处理私钥生成任务:私钥生成共分为两个步骤,第一步所有服务体S中的执行体都会参与,每个执行体根据收到的任务标识ID,最终会生成一个门限值为2t的伪随机Shamir秘密分片zi,并完成秘密共享得到秘密z;第二步只有标记过的执行体参与,每个执行体最终会生成一个标识ID的私钥片段并发给密钥组合中心;密钥组合中心根据收到的私钥片段合成完整的私钥;
步骤3、系统重置:当系统运行周期T后,对系统服务体S中的执行体进行清洗更换;具体步骤如下:
步骤3.1、停止私钥生成任务的接收,转至步骤2.1重新选取n个执行体{E1′,E2′,,,En′};
步骤3.2、当前服务体S中的执行体{E1,E2,,,En}保存的{xi,mski}依次传递给新执行体{E1′,E2′,,,En′},新执行体重新组成服务体S;重置执行体{E1,E2,,,En}并放回执行体集中;
步骤3.3、重新开始私钥生成任务的接收,并转至步骤2.3。
3.如权利要求1所述的拟态分布式SM9快速标识密钥生成方法,其特征在于:所述的步骤2.3具体包括如下步骤:
步骤2.3.1、任务分配模块保存有当前服务体S中所有执行体的空余算力数{a1,a2…am}和已用算力数{b1,b2…bm},其中算力指标γi=ai+bi;分配算法DA首先根据空余算力数对执行体进行从大到小排列,依次取前t个执行体;若选择过程中出现空余算力数相等的情况,则根据已用算力数从小到大排列,依次进行选取;若已用算力数仍相等,则随机选取;最终分配算法选出t个执行体并标记,并将这t个执行体已用算力数加一,空余算力数减一;
步骤2.3.2、任务分配模块将任务中的标识ID以及执行体标记信息发送给服务体S中的所有执行体。
4.如权利要求1所述的拟态分布式SM9快速标识密钥生成方法,其特征在于:所述的步骤2.4具体包括如下步骤:
步骤2.4.1、每个执行体收到任务标识ID后,计算yi=mski+H(ID),其中mski为执行体Ei持有的主私钥分片,H(ID)是SM9算法中指定的杂凑函数,计算结果yi也是一个门限值为t的Shamir秘密分片;
步骤2.4.2、每个执行体在本地运行一次秘密分享分片转换算法,将持有的重复秘密分享分片σi转换成伪随机Shamir秘密分片ri,ri是r的门限值为t的Shamir秘密分片;
步骤2.4.3、n个执行体共同运行一次半诚实的分布式多方乘法协议分享zi=yi*ri,最终每个执行体都能通过拉格朗日插值法得到秘密y和秘密r的乘积z=y*r;此时,未标记的执行体停止当前任务,并开始处理新任务;标记过的执行体继续以下步骤;
步骤2.4.4、每个执行体计算ωi=1-H(ID)*ri/z,ωi即为秘密msk/(msk+H(ID))的Shamir秘密分片;
步骤2.4.5、密钥组合中心共得到t份SID的Shamir秘密分片,最终通过拉格朗日插值法得到标识ID的私钥SID;
步骤2.4.6、密钥组合中心将标识ID的私钥生成结果反馈给任务分配模块,任务分配模块收到反馈结果,将该任务标记的执行体对应的已用算力数减一,空余算力数加一;同时,若标识ID的私钥生成失败,则重新分配该任务。
5.如权利要求1所述的拟态分布式SM9快速标识密钥生成方法,其特征在于:基于如下系统实现,该系统包括执行体构建模块、执行体调度模块、任务分配模块、密钥生成模块;
执行体构建模块:负责从不同构件集中选择相应构件组成不同的异构执行体,每个执行体都具有完整的KGC服务器功能;所有执行体组成系统的执行体集E={E1,E2…Em};
执行体调度模块:依据调度算法SA,从执行体集E中选择n个执行体组成服务体S,最后上线服务体S参与密钥生成任务;
任务分配模块:负责向服务体S中的执行体分配标识密钥生成任务;依据分配算法DA,前期的标识密钥运算所有执行体都会参与,但是最终只有指定的部分执行体会完成私钥片段的生成和发送;
密钥生成模块:负责将分布式密钥生成需要的系统参数和生成算法写入服务体S中的执行体,并保证私钥生成任务顺利的进行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210805840.XA CN115174069A (zh) | 2022-07-08 | 2022-07-08 | 一种拟态分布式sm9快速标识密钥生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210805840.XA CN115174069A (zh) | 2022-07-08 | 2022-07-08 | 一种拟态分布式sm9快速标识密钥生成方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115174069A true CN115174069A (zh) | 2022-10-11 |
Family
ID=83493577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210805840.XA Pending CN115174069A (zh) | 2022-07-08 | 2022-07-08 | 一种拟态分布式sm9快速标识密钥生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174069A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116094948A (zh) * | 2023-04-12 | 2023-05-09 | 乾讯信息技术(无锡)有限公司 | 一种拟态构造的服务类密码产品实现系统及方法 |
-
2022
- 2022-07-08 CN CN202210805840.XA patent/CN115174069A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116094948A (zh) * | 2023-04-12 | 2023-05-09 | 乾讯信息技术(无锡)有限公司 | 一种拟态构造的服务类密码产品实现系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7189953B2 (ja) | 管理者による承認を必要としない方式又はディーラーフリー方式で動作するグループ全体にわたって計算タスクを実行するためのコンピュータ実装システム及び方法 | |
WO2021220278A1 (en) | System and method for fast, post-quantum blockchain concensus generation and smart contracts execution | |
US8638926B2 (en) | Sharing a secret with modular inverses | |
TW201840159A (zh) | 用於使用區塊鏈之安全資料記錄分配之方法及系統 | |
CN108881291B (zh) | 一种基于分层授权机构的权重属性基加密方法 | |
CN106850198B (zh) | 基于多装置协同的sm2数字签名生成方法及系统 | |
CN109150539A (zh) | 一种基于区块链的分布式ca认证系统、方法及装置 | |
CN109379343B (zh) | 一种区块链的异构共识方法及终端 | |
JP2023133560A (ja) | コンピュータにより実施される投票処理及びシステム | |
CN111625593A (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
CN109547199B (zh) | 一种多方联合生成sm2数字签名的方法 | |
WO2019145790A1 (en) | System architecture and method of processing data therein | |
CN111010265A (zh) | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 | |
WO2023185046A1 (zh) | 区块链系统中共识节点的轮换方法、节点和区块链系统 | |
CN112910870B (zh) | 基于区块链的协同隐私计算数据通信方法 | |
KR20220010533A (ko) | 작업 증명 블록체인 네트워크 상에서의 채굴을 위한 시스템 및 방법 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN115174069A (zh) | 一种拟态分布式sm9快速标识密钥生成方法及系统 | |
CN112367168A (zh) | 一种区块链用户的密钥生成的方法及装置 | |
Alwen et al. | Collusion-free multiparty computation in the mediated model | |
EP3379408B1 (en) | Updatable random functions | |
CN112529709A (zh) | 一种基于多签技术的以太坊智能合约实现方法 | |
CN116865970A (zh) | 基于国密算法的多方协同密钥产生和数字签名方法及系统 | |
Li et al. | Blockchain-oriented privacy protection with online and offline verification in cross-chain system | |
CN114362962B (zh) | 区块链工作量证明生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |