一种基于标识的ecc密钥对生成方法

文档序号:195506 发布日期:2021-11-02 浏览:32次 >En<

阅读说明:本技术 一种基于标识的ecc密钥对生成方法 (ECC key pair generation method based on identification ) 是由 牛毅 魏振华 卢学强 于 2021-07-27 设计创作,主要内容包括:本发明涉及一种基于标识的ECC密钥对生成方法,属于信息安全技术领域。该方法包括以下步骤:S1:主密钥集的生成;S2:终端私钥的生成;S3:终端公钥的生成。本发明将标识密钥的优势应于ECC密钥对的生成,解决了ECC密钥的管理难题,其体系简单,实现了标识即密钥,是轻量化的密钥管理方法,建设与运维成本仅为CA体系的1/4,是物联网领域非常理想的密钥管理体系和方法。(The invention relates to an ECC key pair generation method based on identification, and belongs to the technical field of information security. The method comprises the following steps: s1: generating a master key set; s2: generating a terminal private key; s3: and generating a terminal public key. The invention has the advantages of the identification key corresponding to the generation of the ECC key pair, solves the management problem of the ECC key, has simple system, realizes the identification, namely the key, is a light-weight key management method, has construction and operation and maintenance costs only 1/4 of a CA system, and is a very ideal key management system and method in the field of Internet of things.)

一种基于标识的ECC密钥对生成方法

技术领域

本发明属于信息安全技术领域,涉及一种基于标识的ECC密钥对生成方法。

背景技术

在密码学公钥体制中,主要存在两大体制,一种是目前已经成熟的PKI(PublicKey Infrastructure)CA体系,也就是我们常说的证书体系。经过10多年的发展,PKI证书认证体系为基于人类行为的网络应用起到了非常好的安全保障,而且已经被应用到各类互联网电子业务应用中。

物联网物与物之间的通讯有窄带通讯、低功耗等要求,同时还具有数量众多、广域分布等特点,再加上物联网应用本身的多样性、特殊性的要求,这些都与传统的以人为主体的互联网应用不同,PKI证书认证技术针对物联网应用的不足也逐步显现出来。于是,基于设备标识的标识公钥算法(如SM9就是典型的标识公钥算法)应运而生,将其应用于物联网安全应用中,为物联网应用的安全保障护航。SM9克服了PKI CA在物联网应用中的一些不足,实现了端对端的去中心化认证,确实可以更好的适应物联网的需求;然而其所需计算资源对于弱终端的物联网无疑也是一个推广难点,且物联网平台基本已经按照PKI CA体系建成,如何实现感知层物联网终端与平台的安全体系兼容是物联网发展的关键。采用SM9的感知层网络与基于PKICA的物联网平台互联互通比较困难,不同层次间采用不同的安全体系且不兼容也给应用带来了更高的建设、运维的难度和成本。

ECC(Elliptic Curve Cryptography,缩写为ECC)密码算法比SM9密码算法的性能要高约12倍,而所需要的计算资源更少,因此物联网领域采用ECC密码算法优于SM9密码算法。但ECC密钥通常采用PKI CA进行管理,其体系复杂、管理成本高,并且高度中心依赖,不适宜于物联网方面的应用。

发明内容

有鉴于此,本发明的目的在于提供一种基于标识的ECC密钥对生成方法。采用基于标识的ECC密钥对生成方法简化了ECC密钥生成与分发,通过标识与密钥的关联性解决了应用时公钥的真实性证明难题。同时本发明采用终端与中心协同完成密钥生成,解决了标识密钥只能由中心生产而不符合电子签名法的要求,使这种轻量化的标识密钥体制应用范围实现了与PKI CA相同,拓宽了标识密码的应用领域。

为达到上述目的,本发明提供如下技术方案:

一种基于标识的椭圆曲线密码ECC密钥对生成方法,该方法包括以下步骤:

S1:主密钥集的生成;

S2:终端私钥的生成;

S3:终端公钥的生成。

可选的,所述S1中,密钥管理中心根据业务需求设定椭圆曲线参数,椭圆曲线参数包括:

有限域Fp中元素的个数p;

有限域Fp的元素a和b,用于定义Fp上的一条椭圆曲线E;

椭圆曲线的一个基点G,G的阶为素数;

基点G的阶n,n是#E(Fp)的素因子;

其中#无实际含义,参照国标《GB/T 32918-2016》;

椭圆曲线参数设定后,在密钥中心的硬件密码设备生成m个随机数,其中m是2的次方数,m=2q,q为整数,m≥4,记为mski,满足0<i<m,i表示主私钥集中的第i个元素;将这m个随机数按照线性加密存储于密码设备的密钥安全区,为主私钥集,记为msks,主私钥集的存储与使用仅限于密码设备内,主私钥集的任何元素禁止外部访问。

可选的,所述主公钥集是根据主私钥集计算得到的,计算方法为:

在密码设备内依次取出主私钥集中的第i个元素密文并解密得到mski,然后根据椭圆曲线密码多倍点算法计算其对应的公钥,即MPKi=mski·G,MPKi是椭圆曲线基点G的mski倍点,mski和MPKi构成椭圆曲线的密钥对;将所计算得到的主公钥元素依次输出按线性存储于文件中,由m个主公钥元素所组成的文件为主公钥集,记为MPKS,主公钥集是能够公开的。

可选的,所述硬件密码设备包括周边元件连接快速PCI-E密码卡或密码机;

其中,PCI-E是高速串行计算机扩展总线标准,PCI-E密码卡是基于这种标准的硬件密码设备。

可选的,所述S2中,终端私钥的生成是由终端、密钥中心和存储主私钥集的硬件密码设备三方协同完成,终端私钥只有终端所有,密钥中心无法知道终端的私钥,具体包括以下步骤:

S21:设备标识为IDA的终端设备生成随机数r1,并通过终端私钥因子生成函数得到IDA所对应的私钥因子skA,skA=fA(r1,IDA)mod n,将私钥因子skA其加密保存于终端设备安全区;

fA表示杂凑函数一,包括SM3和SHA256,将随机数r1和标识IDA连接的字符串计算杂凑得到skA;r1是随机数,n是#E(Fp)的素因子;

S22:终端设备根据椭圆曲线密码多倍点算法计算终端私钥因子skA所对应的公钥因子PKA,其中PKA=skA·G;

S23:终端设备将标识IDA和PKA发给密钥管理中心;

S24:密钥管理中心作为协同参与方,也生成密钥中心针对IDA的私钥因子和对应的公钥因子,即密钥中心生成随机数r2,再根据中心私钥因子生成函数得到IDA所对应的私钥因子skS,即skS=fS(r2,IDA,Ts)mod n,fs是杂凑函数二,其中TS为密钥中心的当前时间;

S25:密钥中心根据椭圆曲线密码多倍点算法计算中心私钥因子所对应的公钥因子PKS,其中PKS=skS·G;

S26:密钥中心计算自定义公钥SPKA,SPKA=PKS+PKA;再根据标识IDA和自定义公钥计算基于标识的映射序列,计算公式为α=fK(IDA,SPKA),其中fk是基于杂凑算法的消息认证码HMAC函数,SPKA为密钥,IDA为消息;再将α分组,分组记为δx,0<x<g,其中x为整数,g为分组数;初始化密钥中心时设置g;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m,fo是偏移量求解函数,即计算每个分组Ox所对应的值;

S27:在硬件密码设备中将所得到的g个偏移量分别从主私钥集中选择g个元素,记为msk0,msk1,...,mskg-1,并将其模加得到设备标识IDA所对应的标识私钥,即

S28:硬件密码设备输出标识私钥给密钥中心,密钥中心与定义的私钥因子skS复合得到中心复合私钥,即cskA=(iskA+skS)mod n;

S29:密钥中心将中心复合私钥cskA和自定义公钥SPKA通过安全通道返回给终端设备,并在终端设备与设备私钥因子复合得到最终的终端私钥,即tskA=(skA+cskA)mod n,并将终端私钥tskA加密存储于设备安全密钥区,同时将自定义公钥SPKA保存在设备数据区。

可选的,所述S3中,终端公钥是与存储在终端设备中终端私钥相对应的,由终端标识与主公钥集计算得到标识公钥,再与自定义公钥复合所得到;终端间的安全认证是终端A对终端B所给的挑战数据签名,并将签名数据发终端B进行签名验证,签名数据中包括终端A的标识IDA、签名值sig和终端A的自定义公钥SPKA;终端B验证签名前需先生成终端A的公钥,终端A的公钥的生成方法具体包括以下步骤:

S31:根据标识IDA和自定义公钥SPKA计算基于标识的映射序列,即α=fK(IDA,SPKA),再将α分组,分组记为δx,0<x<g(其中x为整数,g为分组数,初始化密钥中心时设置g,通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m,fo是偏移量求解函数,即计算每个分组Ox所对应的值;

S32:将所得到的g个偏移量Ox分别从主公钥集中选择g个元素,记为MPK0,MPK1,...,MPKg-1,并将所得g个元素相加得到终端A标识IDA所对应的标识公钥,即

S33:将标识公钥IPKA和自定义公钥SPKA进行复合,得到终端A所对应的公钥,即TPKA=IPKA+SPKA

一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述的方法。

一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如所述的方法。

本发明的有益效果在于:本发明将标识密钥的优势应于ECC密钥对的生成,解决了ECC密钥的管理难题,其体系简单,实现了标识即密钥,是轻量化的密钥管理方法,建设与运维成本仅为CA体系的1/4,是物联网领域非常理想的密钥管理体系和方法。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:

图1为本发明主密钥集构成图;

图2为本发明终端私钥生成流程图;

图3为本发明终端公钥生成流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

请参阅图1~图3。

一、主密钥集的生成

密钥管理中心根据业务需求设定椭圆曲线参数,包括:

(1)p:有限域Fp,p为有限域Fp中元素的个数;

(2)a,b:有限域Fp的元素,它们定义Fp上的一条椭圆曲线E;

(3)G:椭圆曲线的一个基点,其阶为素数;

(4)n:基点G的阶(n是#E(Fp)的素因子)。

椭圆曲线参数设定后,在密钥中心的硬件密码设备(如PCI-E密码卡或密码机)生成m个随机数(其中m是2的次方数,即m=2q,q为整数,m≥4,记为mski,满足0<i<m,将这m个随机数按照线性加密存储于密码设备的密钥安全区,即为本发明的主私钥集(记为msks),主私钥集的存储与使用仅限于密码设备内,主私钥集的任何元素禁止外部访问。

主公钥集的生成方法是根据主私钥集计算得到,其计算方法是在密码设备内依次取出主私钥集中的第i个元素密文并解密得到mski,然后根据椭圆曲线密码算法计算其对应的公钥,即MPKi=mski·G,并将所计算得到的主公钥元素依次输出按线性存储于文件中,由m个主公钥元素所组成的文件即为主公钥集,记为MPKS,主公钥集是可以公开的。

二、终端私钥的生成

终端私钥的生成是由终端、密钥中心和存储主私钥集的硬件密码设备三方协同完成,确保终端私钥只有终端所有,密钥中心无法知道终端的私钥,解决了标识密钥只能由中心生成而不符合电子签名法的难题。其终端私钥的方法与步骤如下:

(1)终端设备(设备标识为IDA)生成随机数r1,并通过终端私钥因子生成函数得到IDA所对应的私钥因子skA,即skA=fA(r1,IDA)mod n,将私钥因子skA其加密保存于终端设备安全区。

(2)终端设备再根据椭圆曲线密码算法计算终端私钥因子skA所对应的公钥因子PKA,其中PKA=skA·G。

(3)终端设备将标识IDA和PKA发给密钥管理中心。

(4)密钥管理中心作为协同参与方,也生成密钥中心针对IDA的私钥因子和对应的公钥因子,即密钥中心生成随机数r2,再根据中心私钥因子生成函数得到IDA所对应的私钥因子skS,即skS=fS(r2,IDA,Ts)mod n,其中TS为密钥中心的当前时间。

(5)密钥中心根据椭圆曲线密码算法计算中心私钥因子所对应的公钥因子PKS,其中PKS=skS·G。

(6)密钥中心计算自定义公钥(Self-defined Public Key),即SPKA=PKS+PKA,再根据标识IDA和自定义公钥计算基于标识的映射序列,即α=fK(IDA,SPKA),再将α分组,分组记为δx,0<x<g,其中x为整数,g为分组数;初始化密钥中心时设置g;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m,fo是偏移量求解函数,即计算每个分组Ox所对应的值;

S27:在硬件密码设备中将所得到的g个偏移量分别从主私钥集中选择g个元素,记为msk0,msk1,...,mskg-1,并将其模加得到设备标识IDA所对应的标识私钥,即

(7)在硬件密码设备中将所得到的g个偏移量分别从主私钥集中选择g个元素,记为msk0,msk1,...,mskg-1,并将其模加得到设备标识IDA所对应的标识私钥,即

(8)硬件密码设备输出标识私钥给密钥中心,密钥中心与定义的私钥因子skS复合得到中心复合私钥(Central Secret Key),即cskA=(iskA+skS)mod n。

(9)密钥中心将中心复合私钥cskA和自定义公钥SPKA通过安全通道返回给终端设备,并在终端设备与设备私钥因子复合得到最终的终端私钥(Terminal Secret Key),即tskA=(skA+cskA)mod n,并将终端私钥tskA加密存储于设备安全密钥区,同时将自定义公钥SPKA保存在设备数据区。

三、终端公钥的生成

本发明中的终端公钥是与存储在终端设备中终端私钥相对应的,由终端标识与主公钥集计算得到标识公钥,再与自定义公钥复合所得到。终端间的安全认证是终端A对终端B所给的挑战数据签名,并将签名数据发终端B进行签名验证,签名数据中包括终端A的标识IDA、签名值sig和终端A的自定义公钥SPKA。终端B验证签名前需先生成终端A的公钥,其生成方法如下:

(1)根据标识IDA和自定义公钥SPKA计算基于标识的映射序列,即α=fK(IDA,SPKA),再将α分组,分组记为δx,0<x<g(其中x为整数,g为分组数,初始化密钥中心时设置g,通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m;通过映射变换函数确定偏移量Ox,其中Ox=fox)mod m,fo是偏移量求解函数,即计算每个分组Ox所对应的值;

(2)将所得到的g个偏移量Ox分别从主公钥集中选择g个元素,记为MPK0,MPK1,...,MPKg-1,并将所得g个元素相加得到终端A标识IDA所对应的标识公钥,即

(3)将标识公钥IPKA和自定义公钥SPKA进行复合,就可以得到终端A所对应的公钥,即TPKA=IPKA+SPKA

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的基于标识的ECC密钥对生成方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于区块链的记账方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!