云私钥生成和使用方法与流程

专利检索2022-05-10  217


本发明涉及PKI体系,特别是证书生成和使用领域,包括但不仅限于该领域。

背景技术

公钥基础设施PKI(Public Key Infrastructure)是基于公钥密码技术的体系,核心是实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。该体系中,用户生成公私钥对;其中公钥发送给给CA,由CA生成一张X.509格式的用户公钥证书,该公钥证书被CA私钥签名后发布;其中私钥由且只能由用户持有,以保证安全性特别是不可抵赖性。

为了保护私钥的安全性,在用户生成私钥的基础上,需要将私钥进行安全存储和使用。目前常用方法有独立安全载体和应用加密存储两种。独立安全载体方法,是将私钥存储在在用户持有的独立安全载体中,需要私钥计算时,将该载体和手机/PC等计算设备相连,由业务应用调用安全载体中的私钥进行计算。安全载体方法安全性好,私钥可以被多个业务应用复用;但成本高,且和计算设备及业务应用软件兼容性不好,不利于推广。应用加密存储方法,是将私钥作为应用内部的加密数据,和应用一起存储在用户手机/PC等计算设备上;需要私钥计算时,由业务应用从内部解密取出私钥使用。应用加密存储方法和计算设备及其业务应用兼容性好,但长期本地存储容易被盗取;另外私钥和应用集成在一起,无法被其他业务应用复用;当用户更换计算设备时,私钥迁移困难。

如果能够将私钥作为一个独立文件,存储在云端,只有在用户需要时才被传输到计算设备的业务应用上并加载,计算完成后销毁;同时保证该私钥文件不可逆推出私钥,确认该私钥文件只能被用户打开;就可以兼顾安全性、可复用性和抗抵赖性。



技术实现要素:

本发明提出了一种云私钥的生成和使用方法。具体的,在生成阶段,用户端生成公私钥对;用户端将私钥、口令和生物特征使用SM9算法生成一个不可逆数据集;用户端将不可逆数据集和公钥发给证书签发机构;证书签发机构使用不可逆数据集构造和签发X.509格式的私钥证书,同时签发公钥证书。在使用阶段,私钥证书可以在证书签发机构之间转移;需要私钥时,用户端获取私钥证书副本,从证书副本中提取出不可逆数据集,录入口令和生物特征后,从不可逆数据集使用SM9算法计算出私钥使用,使用完成后销毁私钥证书副本。该方法将私钥使用SM9算法转换为不可逆数据集构成的证书文件,该证书文件中不包含任何私钥信息,通过生物特征确保只有用户可使用该文件重新计算出私钥,从而实现了私钥的云端存储、传输和即时应用,同时保证了安全性和不可否认性。

下面结合附图2对本发明进行详细说明。

本发明所述,在生成阶段,用户端在本地端生成公私钥对,如图2中MA1所示,说明如下。用户生成随机数k,使用SM9算法计算的双线性对t=e(P1,P2),P1和P2是SM9算法的生成元,计算h1=HASH(tk);记h1为私钥dA ,记公钥PA=dA*g,g是SM2算法参考点,*是大数乘。

本发明所述,在生成阶段,用户端将私钥、用户ID、口令和生物特征使用SM9算法生成一个不可逆数据集,如图2中MA2所示,说明如下。用户录入用户ID、口令key和生物特征;设由生物特征得到的特征模板有N个特征点,记为Xi(i=1..N);生成D个随机数rd到r1,将其作为系数构造一元D次方程f(x)=rdxD rd-1xD-1 .. r1x1;计算Ei=tf(Xi)*tk(i=1..N);计算key’=key⊕用户ID(⊕为异或运算),生成随机数r,计算Ti=e(key’*P1, P2)r*Ei(i=1..N);计算R=r*P1;记数据集Q=(用户ID,R,D, Ti(i=1..N))。

本发明所述,在生成阶段,用户端将不可逆数据集和公钥发给证书签发机构,证书签发机构使用不可逆数据集构造和签发X.509格式的私钥证书,同时签发公钥证书,如图2中MA3所示,说明如下。用户端将Q和用户附属信息如姓名等,发送给证书签发机构,证书签发机构验证信息,生成一张 X.509格式的证书称为私钥证书,该私钥证书至少包括如下数据字段:(证书编号,签发机构,签发时间,有效期,Q);该私钥证书由签发机构私钥签名并存储;该私钥证书不公开发布。

本发明所述,在使用阶段,私钥证书可以在证书签发机构之间转移;如图2中MA4所示,说明如下。在用户授权的情况下,签发机构甲将私钥证书转移给签发机构乙存储,签发机构乙验证私钥证书的签名,验证通过后接收证书并存储。

本发明所述,在使用阶段,用户使用私钥时,用户端获取私钥证书副本,从证书副本中提取出不可逆数据集,录入口令和生物特征后,从不可逆数据集使用SM9算法计算出私钥使用,使用完成后销毁私钥证书副本。如图2中MA5所示,说明如下。用户在本地端上录入用户ID,选择证书签发机构,用户端向该签发机构请求私钥证书副本;证书签发机构收到请求后,使用用户ID查找到用户私钥证书,复制该私钥证书形成副本传输给用户端;用户在本地端录入口令key和验证用生物特征;计算key’=key⊕用户ID(⊕为异或运算);验证生物特征有M个特征点,记为Xj’(j=1..M); Xj’点和Xi点是对应点,则利用证书中的数据集Q计算一个二元组F=(FX,FY),其中FX=Xj’,FY=Ti/e(R,key’*P2);将M个点计算得到的二元组记为数据集Q’=(Fm(m=1..M);从Q’中选择D个点计算s ;计算私钥dA=HASH(s);推导如下:

MA5-1: Q’中每个Fm,FXm=Xj’,FYm=Ti/e(R,key’*P2),根据SM9双线性特性可知e(x*P1,P2)y=e(y*P1,x*P2),

MA5-2:对于一元N次方程f(x)=anxn an-1xn-1 ..a1x,可以写成拉格朗日插值多项式为: , 是x=0时的拉格朗日基函数,格朗日基函数具有如下性质:。

MA5-3:可以推导出,

s 指数上的就是一元D次方程f(x)=rdxD rd-1xD-1 ..r1x的x=0时的拉格朗日基函数,记为。由拉格朗日基函数性质可知,记 。

MB5-4:集合Q’中的D个点,每个点F=(FX=Xj’,FY=Ei);如果Xj’=Xi,那么可知这D个点都是一元D次方程f(x)=rdxD rd-1xD-1 ..r1x上的点,可以推导得出s=tk

根据以上推导,只有用户录入的验证用用户ID、口令key、生物特征,和私钥证书生成时录入的用户ID、口令、生物特征中一致,那么才可以得到s= ,可证明打开私钥证书文件并获得私钥的就是用户本人。用户计算得到dA=HASH(s),使用dA进行密码计算,计算完成后,销毁dA和私钥证书。

该方法将私钥使用SM9算法转换为不可逆数据集构成的证书文件,该证书文件中不包含私钥任何私钥信息,通过生物特征确保只有用户可基于该文件重新计算出私钥使用,从而实现了私钥的云端存储和即时应用,同时保证了安全性和不可否认性。

附图说明

图1为云私钥生成和使用方法框图。

图2为云私钥生成和使用方法的详细步骤图。

图3、图4为云私钥生成和使用方法的的应用示意图。

具体实施方式

下面结合附图对云私钥生成和使用方法进行说明。

图3、图4是本发明应用示意图,使用指纹作为生物特征。图中包括用户、集成指纹传感器的手机及其业务应用APP、云证书服务系统。

云私钥注册,如图3所示。

A1:用户在手机的业务应用APP上启动云证书注册功能,录入用户ID、用户口令key并按压指纹,指纹通过终端上的指纹传感器采集成图像,图像处理后获得指纹特征模板,假定特征模板由N个特征点构成,每个特征点Ni是一个二元组(特征类型,特征值),按约定规则编码成一个数值。用户ID、口令key和指纹模板在手机业务应用中进行算法处理,生成数据集Q,计算过程参见图2中MA2。

手机上的业务应用APP将Q发送给云证书服务系统。

A2:云证书服务系统生成一张x.509格式的私钥证书,私钥证书字段包括:(证书编号、签发机构、签发时间、有效期、Q);私钥证书由签发机构签名后存储。

云私钥使用,如图4所示。

A3:用户在业务应用APP上录入用户ID、选择签发机构,向云证书服务系统申请证书副本。

A4:云证书服务系统根据用户ID得到私钥证书副本,返回给用户手机的业务应用APP。

A5:用户在手机业务应用APP上,输入口令并按压指纹,手机上的指纹传感器采集指纹后,从私钥证书副本的不可逆数据集使用SM9算法计算出私钥使用,使用完成后销毁私钥证书副本。过程参见图2中MA5。

转载请注明原文地址:https://win.8miu.com/read-18.html

最新回复(0)