首页> 中国专利> 支持标识密码算法的协处理器、方法、芯片及电子设备

支持标识密码算法的协处理器、方法、芯片及电子设备

摘要

本申请实施例提供一种支持标识密码算法的协处理器、方法、芯片及电子设备,协处理器包括:输入输出模块,用于读取实现标识密码算法的椭圆曲线,及输出所述协处理器计算的所述椭圆曲线的双线性对结果;Miller循环模块,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;模幂运算模块,用于调用所述扩域运算,以基于底数以及预输入的指数,得到双线性对结果,将所述双线性对结果传递给所述输入输出模块,以使得所述输入输出模块输出所述协处理器计算的双线性对结果。本申请实施例提供的协处理器可计算双线性对,来支持标识密码的多种类型算法,并且降低协处理器的面积,优化协处理器计算性能。

著录项

  • 公开/公告号CN112436941A

    专利类型发明专利

  • 公开/公告日2021-03-02

    原文格式PDF

  • 申请/专利权人 海光信息技术股份有限公司;

    申请/专利号CN202011464911.1

  • 发明设计人 顾海华;应志伟;

    申请日2020-12-14

  • 分类号H04L9/14(20060101);H04L9/30(20060101);

  • 代理机构31327 上海知锦知识产权代理事务所(特殊普通合伙);

  • 代理人汤陈龙

  • 地址 300384 天津市滨海新区天津华苑产业区海泰西路18号北2-204工业孵化-3-8

  • 入库时间 2023-06-19 10:03:37

说明书

技术领域

本申请实施例涉及密码学技术领域,具体涉及一种支持标识密码算法的协处理器、方法、芯片及电子设备。

背景技术

标识密码(Identity-based cryptography)算法是一种基于标识的密码体系,其是一种公钥密码算法,且公钥由用户标识唯一确定;具体的,在标识密码算法中,用户私钥由密钥生成中心根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,由标识管理者保证用户标识的真实性,因此标识密码算法相比基于证书的公钥密码算法,在密钥管理环节更为简便。典型的标识密码算法例如SM9标识密码算法等。

目前标识密码算法可使用椭圆曲线实现,具体的,椭圆曲线具有双线性对的性质,它在椭圆曲线的循环子群与扩域的乘法循环子群之间建立联系,当椭圆曲线离散对数问题和扩域离散对数问题的求解难度相当时,则可使用椭圆曲线构造出安全性和效率兼顾的标识密码。

在计算机体系结构中,标识密码算法可由硬件形式的协处理器支持,因此如何优化支持标识密码算法的协处理器,一直是本领域技术人员研究的问题。

发明内容

有鉴于此,本申请实施例提供一种支持标识密码算法的协处理器、方法、芯片及电子设备,以优化支持标识密码算法的协处理器。

为实现上述目的,本申请实施例提供如下技术方案:

一种支持标识密码算法的协处理器,包括:

输入输出模块,用于读取实现标识密码算法的椭圆曲线,及输出所述协处理器计算的所述椭圆曲线的双线性对结果;

Miller循环模块,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;

模幂运算模块,用于调用所述扩域运算,以基于所述底数以及预输入的指数,得到双线性对结果;将所述双线性对结果传递给所述输入输出模块,以使得所述输入输出模块输出所述协处理器计算的双线性对结果。

可选的,所述协处理器还包括:

椭圆曲线运算模块,用于提供椭圆曲线的点运算;

扩域运算模块,用于提供扩域运算。

可选的,所述扩域运算模块,用于提供扩域运算,具体包括:

针对p个元素的有限域GF(P),提供加法、减法、乘法、平方和逆运算;

针对GF(p)的2次扩域GF(p

可选的,所述Miller循环模块,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数,具体包括:

调用所述椭圆曲线运算模块和扩域运算模块,实现Miller函数,得到用于计算双线性对结果的底数。

可选的,所述模幂运算模块,用于调用所述扩域运算,以基于所述底数以及预输入的指数,得到双线性对结果,具体包括:

将所述用于计算双线性对结果的底数输入到扩域运算模块,以使所述扩域运算模块根据所述底数和预输入的指数,完成有限域的多次扩域中的模幂运算,得到双线性对结果。

可选的,所述模幂运算模块,用于将所述用于计算双线性对结果的底数输入到扩域运算模块,以使所述扩域运算模块根据所述底数和预输入的指数,完成有限域的多次扩域中的模幂运算,得到双线性对结果,具体包括:

将所述底数输入到扩域运算模块中,以使所述扩域运算模块根据所述底数和预输入的指数,完成GF(p

可选的,所述协处理器还包括:

控制模块,用于生成协处理器中各电路模块的控制信号,并控制协处理器内部的数据流。

可选的,所述扩域运算模块包括:GF(p

所述GF(p

一个GF(p

一个GF(p

本申请实施例还提供一种支持标识密码算法的方法,应用于协处理器,所述方法包括:

读取实现标识密码算法的椭圆曲线;

调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;

调用所述扩域运算,以基于所述底数以及预输入的指数,得到双线性对结果;将所述双线性对结果作为所述协处理器的输出结果。

本申请实施例还提供一种芯片,包括如上述任一项所述的支持标识密码算法的协处理器。

本申请实施例还提供一种电子设备,包括如上述所述的芯片。

本申请实施例提供的支持标识密码算法的协处理器,可在协处理器中至少设置输入输出模块,Miller循环模块和模幂运算模块;其中,所述输入输出模块,用于读取实现标识密码算法的椭圆曲线,及输出所述协处理器计算的所述椭圆曲线的双线性对结果;所述Miller循环模块,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;所述模幂运算模块,用于调用所述扩域运算,以基于所述底数以及预输入的指数,得到双线性对结果,进而所述模幂运算模块可将所述双线性对结果传递给所述输入输出模块,以使得所述输入输出模块输出所述协处理器计算的双线性对结果。

可以看出,本申请实施例可由协处理器中设置的Miller循环模块实现双线性对计算的Miller循环过程,由协处理器中设置的模幂运算模块实现双线性对计算的模幂运算过程,得到双线性对结果;该双线性对结果可作为协处理器的输出,使得协处理器在输入椭圆曲线的情况下,输出椭圆曲线的双线性对结果,实现协处理器仅计算双线性对。由于本申请实施例提供的协处理器仅实现计算双线性对,因此可极大的减小协处理器的面积,同时,由于双线性对是标识密码算法中多种类型算法的共性运算,因此由协处理器仅实现计算双线性对,能够为协处理器支持标识密码的多种类型算法提供基础。可见,本申请实施例提供的协处理器可通过实现双线性对计算,来支持标识密码算法中的多种类型算法,并且能够降低协处理器的面积,从而优化支持标识密码算法的协处理器。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术提供的支持SM9的加解密协处理器的结构示意图;

图2为本申请实施例提供的支持标识密码算法的协处理器的结构示意图;

图3为本申请实施例提供的支持标识密码算法的协处理器的另一结构示意图;

图4为本申请实施例提供的扩域运算模块的框图;

图5为本申请实施例提供的支持标识密码算法的方法流程图。

具体实施方式

以SM9的标识密码算法为例,现有技术提供了一种支持SM9的加解密协处理器的结构,该结构可如图1所示,包括:指令输入装置101、SM9核心运算模块102、流水控制运算模块103、SM9预处理运算模块104、基本运算器105和缓存106;

其中,指令输入装置101用于将外部命令进行转换等处理,并分别与SM9核心运算模块、SM9预处理运算模块、以及流水控制运算模块相连接;

SM9核心运算模块102用于完成ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)点加、ECC倍加、扩域ECC点加、扩域ECC倍加、大数模幂以及扩域元素模幂等处理;SM9核心运算模块与SM9预处理运算模块、流水控制运算模块以及基本运算器相连接;

流水控制运算模块103用于实现对SM9核心运算模块、SM9预处理运算模块和基本运算器的动态调用和流水线的数据调度,并且流水控制运算模块通过数据周期控制完成ECC点乘和扩域ECC点乘运算等处理;

SM9预处理运算模块104用于进行标识的拼接、坐标系转换前的计算、公共参数的计算和ECC配对运算操作等处理;SM9预处理运算模块分别与指令输入装置、SM9核心运算模块和流水控制运算模块相连接;

基本运算器105用于完成模乘,模加以及模减运算等处理;基本运算器与流水控制运算模块和SM9核心运算模块相连接。

图1所示的支持SM9的加解密协处理器主要实现SM9的加解密,而SM9除了加解密算法外,还包含数字签名算法、密钥交换协议、密钥封装算法等多种类型的算法,同时,图1所示结构将SM9的整个加解密算法都封装在协处理器中,导致协处理器的面积较大;也就是说,图1所示的支持SM9的加解密协处理器仅支持加解密算法,支持的算法类型较为单一,并且硬件面积较大。

为解决上述问题,本申请实施例提供优化的支持标识密码算法的协处理器,使得协处理器能够支持标识密码的多种类型算法,并且减小协处理器的面积。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在使用椭圆曲线实现标识密码算法的情况下,求解椭圆曲线的双线性对是标识密码算法(如SM9)中的核心运算,标识密码算法中的加解密算法、数字签名算法、密钥交换协议、密钥封装算法等多种类型的算法都会调用双线性对,也就是说,在这些类型算法的计算过程中,绝大部分时间都是在计算双线性对;基于此,本申请实施例考虑仅在协处理器中实现计算双线性对,由于双线性对是标识密码算法中多种类型算法的共性运算,因此由协处理器仅实现计算双线性对,能够为协处理器支持标识密码算法的多种类型算法提供基础,并且,由于协处理器仅实现计算双线性对,可极大的减小协处理器的面积。

为更好的理解本申请实施例提供的方案,下面对双线性对的具体内容进行进一步的解释说明。

在密码学中,双线性对作为一种映射,可将椭圆曲线上的两个点映射到有限域中的元素;具体的,设(G1,+)、(G2,+)和(GT,·)是三个循环群,其中,(G1,+)和(G2,+)是两个椭圆曲线加法群,(GT,·)是一个有限域乘法群,且G1、G2和GT的阶均为素数N,则双线性对e是G1×G2→GT的映射,满足以下条件:若P∈G1,Q∈G2,对于任意的自然数a和b,等式e(aP,bQ)=e(P,Q)

由上述描述,可以看出双线性对主要定义在椭圆曲线上,目前主要有Weil对、Tate对、Ate对、优选Ate对等多种类型的双线性对。

通过进一步的分析可以发现,双线性对的计算过程主要分为两个部分:Miller(米勒)循环和模幂运算;其中,Miller循环是Miller函数的算法实现,是计算双线性对的有效算法,可计算出用于计算双线性对结果的底数(双线性对结果可以理解为是双线性对的计算结果);模幂运算是在对有限域进行扩域的基础上,做形如m=g

需要说明的是,在标识密码中,针对p个元素的有限域GF(p),GF(p

进一步需要说明的是,针对Miller函数,可设其输入为:曲线E,E上两点P和Q,整数c;其输出为:f

a)设c的二进制表示是c

b)置f=1,V=P;

c)对i从j-1降至0,执行:1)计算f=f

d)输出f。

在一种示例中,以SM9的标识密码算法为例,若推荐的椭圆曲线为BN(Barreto-Naehrig)曲线,则设BN曲线方程为E:y

进一步,以SM9的标识密码算法推荐的椭圆曲线为BN曲线为例,且在使用优选Ate双线性对的情况下,优选Ate双线性对的计算结果可表示为:

其中,Miller循环计算可以表示为:

当然,选用BN曲线仅是一种可选示例,本申请实施例也可使用嵌入次数为12的BLS(Barreto-Lynn-Scott)曲线等。

上文对双线性对计算的基本思路进行了介绍,可以看出,双线性对的计算过程主要涉及Miller循环和模幂运算,即通过Miller循环计算用于计算双线性对结果的底数,模幂运算结合Miller循环计算的底数和预输入的指数,得到双线性对结果;基于此,在由协处理器仅实现计算双线性对的思路下,本申请实施例可由协处理器实现Miller循环和模幂运算,并由协处理器输出双线性对结果;作为一种可选实现,图2示出了本申请实施例提供的支持标识密码算法的协处理器的可选结构,如图2所示,本申请实施例提供的协处理器可以至少包括:输入输出模块10,Miller循环模块20,模幂运算模块30。

其中,输入输出模块10,用于读取协处理器的输入数据以及输出双线性对结果(双线性对的计算结果),例如,输入输出模块可以读取用于实现标识密码算法的椭圆曲线,以及输出协处理器计算的椭圆曲线的双线性对结果;在可选实现中,输入输出模块可由start(开始)、busy(忙)和clk(时钟)等信号控制。

Miller循环模块20,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;

在本申请实施例中,Miller循环模块20可通过调用椭圆曲线的点运算和扩域运算,来计算实现Miller函数,从而结果可作为计算双线性对结果的底数;在可选实现中,Miller循环的输入可以是椭圆曲线加法群中的元素,椭圆曲线加法群可由椭圆曲线的点运算得出,在此基础上,Miller循环模块可基于椭圆曲线的扩域运算,实现Miller函数。

模幂运算模块30,用于调用所述扩域运算,以基于底数以及预输入的指数,得到双线性对结果;从而模幂运算模块30可将双线性对结果传递给输入输出模块10,以使得输入输出模块10输出协处理器计算的双线性对结果。可选的,所述指数可以是预先输入的数据。

需要说明的是,本申请实施例中的输入输出模块,Miller循环模块,模幂运算模块可以认为是协处理器中设置的电路模块。

本申请实施例提供的支持标识密码算法的协处理器,可在协处理器中至少设置输入输出模块,Miller循环模块和模幂运算模块;其中,所述输入输出模块,用于读取实现标识密码算法的椭圆曲线,及输出所述协处理器计算的所述椭圆曲线的双线性对结果;所述Miller循环模块,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数;所述模幂运算模块,用于调用所述扩域运算,以基于底数以及预输入的指数,得到双线性对结果,进而所述模幂运算模块可将所述双线性对结果传递给所述输入输出模块,以使得所述输入输出模块输出所述协处理器计算的双线性对结果。

可以看出,本申请实施例可由协处理器中设置的Miller循环模块实现双线性对计算的Miller循环过程,由协处理器中设置的模幂运算模块实现双线性对计算的模幂运算过程,得到双线性对结果;该双线性对结果可作为协处理器的输出,使得协处理器在输入椭圆曲线的情况下,输出椭圆曲线的双线性对结果,实现协处理器仅计算双线性对。由于本申请实施例提供的协处理器仅实现计算双线性对,因此可极大的减小协处理器的面积,同时,由于双线性对是标识密码算法中多种类型算法的共性运算,因此由协处理器仅实现计算双线性对,能够为协处理器支持标识密码的多种类型算法提供基础。可见,本申请实施例提供的协处理器可通过实现双线性对计算,来支持标识密码算法中的多种类型算法,并且能够降低协处理器的面积,从而优化支持标识密码算法的协处理器。

在进一步的可选实现中,本申请实施例提供的协处理器还可通过设置电路模块来实现椭圆曲线的点运算和扩域运算,从而为Miller循环模块实现Miller循环,和模幂运算模块实现模幂运算提供基础;可选的,图3示出了本申请实施例提供的支持标识密码算法的协处理器的另一可选结构,结合图2和图3所示,该协处理器还可以包括:椭圆曲线运算模块40,扩域运算模块50,和控制模块60;需要说明的是,椭圆曲线运算模块40,扩域运算模块50,和控制模块60可以认为是协处理器中的电路模块;

其中,椭圆曲线运算模块40,用于提供椭圆曲线的点运算,例如提供椭圆区域的点加和倍点运算;

扩域运算模块50,用于提供扩域运算;例如,提供有限域GF(p),GF(p

控制模块60,用于生成协处理器中各电路模块的控制信号,并控制协处理器内部的数据流;可选的,控制模块60可生成Miller循环模块20、模幂运算模块30、椭圆曲线运算模块40、扩域运算模块50的控制信号,并控制协处理器内部的数据流;例如,在双线性对计算分为Miller循环和模幂运算两步过程的情况下,控制模块可将第一步完成的Miller循环结果的数据和信号,发送给第二步的模幂运算模块进行进一步处理。

基于图3提供的椭圆曲线运算模块40和扩域运算模块50,在可选实现中,本申请实施例提供的Miller循环模块20,用于调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数可以例如:

Miller循环模块调用椭圆曲线运算模块和扩域运算模块,实现Miller函数,得到用于计算双线性对结果的底数。

在一种示例中,以优选Ate双线性对计算中的Miller循环为例,则Miller循环的输入为:P∈,G1,Q∈,G2,

则Miller循环的计算过程可以示例如下:

1.d←l

2.if s

3.f←d·e

4.

5.f←f

6.if s

7.

8.Q

9.d←l

10.return f。

其中,←表示计算结果赋值给左侧变量;l

需要说明的是,上述过程中,与椭圆曲线的点有关的运算都需调用椭圆曲线运算模块实现,比如l

基于图3提供的椭圆曲线运算模块40和扩域运算模块50,在可选实现中,本申请实施例提供的模幂运算模块30,用于调用所述扩域运算,以底数以及预输入的指数,得到双线性对结果的可选实现过程可以例如:

将所述用于计算双线性对结果的底数输入到扩域运算模块,以使所述扩域运算模块根据所述底数和预输入的指数,完成有限域的多次扩域中的模幂运算,得到双线性对结果。

示例的,以优选Ate双线性对的模幂运算为例,则通过完成GF(p

以优选Ate双线性对的计算为例,则模幂运算模块30可将Miller循环模块的结果

需要说明的是,在协处理器中设置椭圆曲线运算模块和扩域运算模块仅是可选实现,本申请实施例也可由其他等同功能的电路模块来替代实现。

本申请实施例提供的支持标识密码算法的协处理器,可通过设置椭圆曲线运算模块来提供椭圆曲线的点运算,通过设置扩域运算模块来提供扩域运算,从而Miller循环模块可通过调用曲线运算模块和扩域运算模块,实现Miller函数,得到用于计算双线性对结果的底数;模幂运算模块可通过将Miller循环模块得到的所述底数,输入到扩域运算模块中,从而扩域运算模块结合预先输入的指数,来实现模幂运算,得到双线性对结果。可以看出,椭圆曲线运算模块和扩域运算模块能够为本申请实施例提供的协处理器实现双线对计算的Miller循环过程和模幂运算过程提供基础,使得协处理器可通过仅实现双线性对计算,来支持标识密码算法中的多种类型算法,并且降低协处理器的面积。

通过发明人的进一步分析发现:根据抽象代数理论,GF(p

这就表明,GF(p

GF(p

GF(p

上述说明意味着GF(p

进一步,假设f

由于平方本质也是乘法,因此GF(p2)的乘法可以并行计算,所以GF(p

综上所述,GF(p

基于上述思路,在可选实现中,扩域运算模块完成GF(p

其中,GF(p

一个GF(p

一个GF(p

需要说明的是,图4示例的扩域运算模块的结构是综合了GF(p

本申请实施例提出在硬件协处理器中只实现双线性对,由于双线性对是SM9等标识密码算法的核心运算,标识密码算法的加解密算法、数字签名算法、密钥交换协议、密钥封装算法等多种类型的算法都会调用双线性对,因此本申请实施例在硬件协处理器中仅实现双线性对,可大幅减少硬件协处理器的面积;同时,由于双线性对是上述这些类型算法中的共性运算,本申请实施例由硬件协处理器仅实现双线性对计算,可使得本申请实施例提供的硬件协处理器可以支持SM9等标识密码算法的多种类型算法;进一步,本申请实施例结合有限域GF(p

本申请实施例还提供一种支持标识密码算法的方法,该方法可基于前文描述的协处理器实现,用于计算双线性对;在可选实现中,图5示出了本申请实施例提供的支持标识密码算法的方法流程,该方法流程可由前文所述的协处理器实现,如图5所示,该流程可以包括:

步骤S100、读取实现标识密码算法的椭圆曲线。

可选的,本申请实施例可由协处理器中的输入输出模块执行实现。

步骤S110、调用椭圆曲线的点运算和扩域运算,实现Miller函数,得到用于计算双线性对结果的底数。

可选的,步骤S110可由协处理器中的Miller循环模块执行实现;在进一步的可选实现中,如果协处理器中设置用于提供椭圆曲线的点运算的椭圆曲线运算模块,用于提供扩域运算的扩域运算模块,则Miller循环模块可通过调用椭圆曲线运算模块和扩域运算模块,实现Miller函数,得到用于计算双线性对结果的底数。

可选的,椭圆曲线运算模块、扩域运算模块的具体内容可参照前文相应部分的描述,此处不再赘述。关于步骤S110的进一步细节实现,可参照前文相应部分的描述,此处不再赘述。

步骤S120、调用所述扩域运算,以基于底数以及预输入的指数,得到双线性对结果;将所述双线性对结果作为所述协处理器的输出结果。

可选的,步骤S120可由协处理器中的模幂运算模块执行实现;在进一步的可选实现中,如果协处理器中设置椭圆曲线运算模块和扩域运算模块,则模幂运算模块可将所述底数输入到扩域运算模块,以使所述扩域运算模块根据所述底数和预输入的指数,完成有限域的多次扩域中的模幂运算,得到双线性对结果。

关于步骤S120的进一步细节实现,可参照前文相应部分的描述,此处不再赘述。

本申请实施例所得到的双线性对结果,可作为协处理器的输出结果,以使协处理器仅实现双线性对计算,从而来支持标识密码算法中的多种类型算法,并且降低协处理器的面积。

关于本申请实施例提供的支持标识密码算法的方法流程的细节内容和扩展内容,可与前文描述的协处理器的内容相互对应参照,此处不再展开说明。

本申请实施例还提供一种芯片,该芯片可以包括本申请实施例提供的支持标识密码算法的协处理器。

本申请实施例还提供一种电子设备,该电子设备可以包括上述所述的芯片。

上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。

虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号