一种彩虹签名装置的制作方法

文档序号:16060879发布日期:2018-11-24 12:10阅读:358来源:国知局

本发明涉及计算机技术领域,尤其涉及一种彩虹签名装置。

背景技术

密码算法是用于加密和解密的数学函数,密码算法是密码协议的基础。现行的密码算法主要包括序列密码、分组密码、公钥密码、散列函数等,用于保证信息的安全,提供鉴别、完整性、抗抵赖等服务。密码算法可以分为对称密码算法和非对称密码算法,对称密码在加密和解密过程中使用同一个秘钥,而非对称密码在加密过程中使用私钥,在解密过程中使用公钥,所以非对称密码又被称为公钥密码。基于公钥密码的特性,它可以用于数字签名。

数字签名是一种防止伪造的签名方式,采用公钥密码算法对物理签名进行计算。数字签名的原理是,只有信息的发送方才能产生他人无法伪造的一段数字串,这段数字串同时也是对信息的发送方发送信息真实性的一个有效证明。数字签名一般包括两类运算:签名运算和验证运算。发送方持有私钥对信息进行签名,收到方持有公钥对签名进行认证。数字签名一般可以采用rsa、ecc等签名算法,但这些算法在量子计算机问世后将可能不再安全。所以,研究量子计算攻击免疫的数字签名算法已经成为信息安全领域的热点。

在量子计算攻击免疫的数字签名算法中,多变量公钥签名算法是非常重要的一类公钥密码算法。多变量公钥签名算法的安全性建立在一个np-hard问题的基础上,这个困难问题是求解有限域的多元多次方程组,所以多变量公钥签名算法又被叫作基于多元多项式的公钥签名算法。在多变量公钥签名算法中,rainbow签名算法是应用最广泛的算法之一,被广泛用于文件签名、身份认证等。但是,对于现有的rainbow签名技术,存在速度较慢、计算资源大等缺点。



技术实现要素:

本发明实施例提出一种彩虹签名及装置,签名速度快,计算资源小,且安全级别高。

本发明实施例提供一种彩虹签名装置,包括中央处理器、中心变换运算器和仿射变换运算器;所述中央处理器包括密码处理器和接口控制器,所述仿射变换运算器包括第一仿射运算器和第二仿射运算器;

所述接口控制器用于:输入待签名的信息y和私钥l1、f、l2;

所述密码处理器用于:调用所述第一仿射运算器,以基于所述l1,对待签名的信息y进行l1线性仿射变换,获得第一变换结果;调用所述中心变换运算器,以基于所述f,对所述第一变换结果进行中心映射逆变换,获得第二变换结果以及,调用所述第二仿射运算器,以基于所述l2,对所述第二变换结果进行l2线性仿射变换,获得彩虹rainbow签名x。

进一步地,所述l1线性仿射变换的计算公式为

所述中心映射逆变换的计算公式为

所述l2线性仿射变换的计算公式为

其中,x=x(x0,x1,...,x41),y=y(y0,y1,...,y23),a是24×24的矩阵,b是宽度为24的向量,c是42×42的矩阵,d是宽度为42的向量,a、b、c、d、x和y中的每个元素均是特定有限域gf(28)的元素。

进一步地,所述中心映射逆变换的计算公式为多项式

所述中心变换运算器具体包括:

多项式运算器,用于调用多元乘法器和快速求逆器计算多项式的系数;以及,

方程组求解运算器,用于随机选取的数值,以将转换为关于的线性方程组,并调用高斯-约当消元运算器对所述的线性方程组进行求解,获得的数值,进而将代入f以将转换为关于的线性方程组,并调用高斯-约当消元运算器对所述的线性方程组进行求解,获得的数值。

进一步地,所述多元乘法器包括由逻辑门和异或门组成的二元乘法电路;

所述二元乘法电路用于:

在计算a(x)和b(x)的乘法c(x)=a(x)×b(x)modf(x)时,根据针对i=0,1,...,14,j=0,1使用逻辑门和异或逻辑门,计算vij;

根据针对i=0,1,...,14,使用逻辑门和异或逻辑门,计算si;

根据针对i=0,1,...,7,使用逻辑门和异或逻辑门,计算ci;

其中,均是特定有限域gf(28)的元素,f(x)是在多元乘法器中使用的特定有限域gf(28)的不可约多项式,f(x)=x8+f7x7+f6x6+...+f1x+1。

进一步地,所述多元乘法器包括由逻辑门和异或门组成的三元乘法电路;

所述三元乘法电路用于:

在计算a(x)、b(x)和c(x)的乘法d(x)=a(x)×b(x)×c(x)modf(x)时,根据针对i=0,1,...,21,j=0,1,...,7,使用逻辑门和异或逻辑门,计算vij;

根据针对i=0,1,...,21,使用逻辑门和异或逻辑门,计算si;

根据针对i=0,1,...,7,使用逻辑门和异或逻辑门电路,计算di;

其中,均是特定有限域gf(28)的元素,f(x)是在多元乘法器中使用的特定有限域gf(28)的不可约多项式,f(x)=x8+f7x7+f6x6+...+f1x+1。

进一步地,所述快速求逆器包括分别由逻辑门和异或门组成的求逆电路和乘法电路;

所述求逆电路用于:

在计算的求逆a(x)-1时,限定

所述乘法电路用于:

计算s1=a(x)2×a(x)4×a(x)8

计算s2=a(x)16×a(x)32×a(x)64

其中,是特定有限域gf(28)的元素,所述乘法电路的计算方法与所述三元乘法电路的计算方法相同。

进一步地,所述高斯-约当消元运算器包括找主元单元电路、132个消元单元电路和12个归一单元电路;

所述找主元单元电路用于:

调用所述快速求逆器,确定每次迭代的主元,以及对主元进行部分求逆,计算s1=a(x)2×a(x)4×a(x)8和s2=a(x)16×a(x)32×a(x)64

每一归一单元电路包括两个乘法电路;

所述每一归一单元用于:

调用乘法电路计算s4=a(x)128×r;

调用乘法电路计算nor=s1×s2×s4;

其中,r是所述归一单元电路中参与归一运算的线性方程组的增广系数矩阵中的元素,nor是归一运算结果;

每一消元单元电路包括加法电路和两个乘法电路;

所述每一消元单元用于:

调用乘法电路计算s4=a(x)128×r×c;

调用乘法电路和加法电路计算eli=s1×s2×s3+a;

其中,c和r是所述消元单元电路中参与消元运算的线性方程组的增广系数矩阵中的元素,eij是消元运算结果。

进一步地,所述密码处理器还用于:基于公钥对所述签名x进行验证,获得所述待签名的信息y;其中,验证的计算公式为

进一步地,所述彩虹签名装置还包括存储器;

所述存储器用于:存储变换过程中产生的各种数据。

实施本发明实施例,具有如下有益效果:

本发明实施例提供的彩虹签名装置,能够通过中央处理器中的接口控制器输入待签名的信息和私钥,通过密码处理器调用中心变换运算器和仿射变换运算器,以基于私钥对待签名的信息依次进行l1线性仿射变换、中心映射逆变换和l2线性仿射变换,获得相应的rainbow签名,签名速度快,计算资源小,且安全级别高,能够抵御量子计算机攻击。

附图说明

图1是本发明提供的彩虹签名装置的一个实施例的结构示意图;

图2是本发明提供的彩虹签名装置的另一个实施例的结构示意图。

具体实施方式

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

参见图1,是本发明提供的彩虹签名装置的一个实施例的结构示意图,包括中央处理器、中心变换运算器和仿射变换运算器;所述中央处理器包括密码处理器和接口控制器,所述仿射变换运算器包括第一仿射运算器和第二仿射运算器;

所述接口控制器用于输入待签名的信息y和私钥l1、f、l2;

所述密码处理器用于调用所述第一仿射运算器,以基于所述l1,对待签名的信息y进行l1线性仿射变换,获得第一变换结果;调用所述中心变换运算器,以基于所述f,对所述第一变换结果进行中心映射逆变换,获得第二变换结果;以及,调用所述第二仿射运算器,以基于所述l2,对所述第二变换结果进行l2线性仿射变换,获得rainbow签名x。

需要说明的是,中央处理器的接口控制器中的输入端口a、b输入待签名的信息y和私钥,其中,私钥由l1、f、l2组成,l1、l2是一个线性仿射变换,f是一个中心映射变换。中央处理器的密码处理器在运行签名运算时,调用仿射变换运算器,计算待签名的信息y的l1线性仿射变换,获得第一变换结果,然后调用中心变换运算器,计算第一变换结果的中心映射逆变换,获得第二变换结果进而调用仿射变换运算器,计算第二变换结果的l2线性仿射变换,获得rainbow签名x。

进一步地,所述l1线性仿射变换的计算公式为

所述中心映射逆变换的计算公式为

所述l2线性仿射变换的计算公式为

其中,x=x(x0,x1,...,x41),y=y(y0,y1,...,y23),a是24×24的矩阵,b是宽度为24的向量,c是42×42的矩阵,d是宽度为42的向量,a、b、c、d、x和y中的每个元素均是特定有限域gf(28)的元素。

需要说明的是,rainbow待签名的信息可以表示为y=y(y0,y1,...,y23),每个元素代表一个字节,均是特定有限域gf(28)的元素,待签名的信息共24字节。签名可以表示为x=x(x0,x1,...,x41),每个元素代表一个字节,均是特定有限域gf(28)的元素,共42字节。待签名的信息y=y(y0,y1,...,y23)和私钥通过rainbow签名电路的签名运算,可以获得签名x=x(x0,x1,...,x41),而签名x=x(x0,x1,...,x41)和公钥通过rainbow验证电路的签名运算,可以获得相应的信息y=y(y0,y1,...,y23)。

其中,签名运算为中央处理器的密码处理器在运行签名运算时,调用仿射变换运算器和中心变换运算器的运算。先调用仿射变换运算器中的第一仿射运算器,计算l1线性仿射变换这里y=y(y0,y1,...,y23)是待签名的信息,是y经过第一次仿射变换后的计算结果,然后调用中心变换运算器,计算中心映射变换这里f-1是中心映射的逆变换,经过中心映射逆变换后的计算结果,进而调用仿射变换运算器中的第二仿射运算器,计算l2线性仿射变换这里x是经过第二次仿射变换后的计算结果,x=x(x0,x1,...,x41)是y=y(y0,y1,...,y23)的rainbow签名。

其中,第一仿射运算器包括24个二元乘法器和24个二元加法器,用于计算l1线性仿射变换。在计算l1线性仿射变换时,第一仿射运算器使用24个二元乘法器和24个二元加法器计算在第一仿射运算器的计算过程中产生的中间结果存储在存储器的ram中。

第二仿射运算器包括42个二元乘法器和42个二元加法器,用于计算l2线性仿射变换。在计算l2线性仿射变换时,第二仿射运算器使用42个二元乘法器和42个二元加法器计算在第二仿射运算器的计算过程中产生的中间结果存储在存储器的ram中。

进一步地,所述中心映射逆变换的计算公式为多项式

所述中心变换运算器具体包括:

多项式运算器,用于调用多元乘法器和快速求逆器计算多项式的系数;以及,

方程组求解运算器,用于随机选取的数值,以将转换为关于的线性方程组,并调用高斯-约当消元运算器对所述的线性方程组进行求解,获得的数值,进而将代入以将转换为关于的线性方程组,并调用高斯-约当消元运算器对所述的线性方程组进行求解,获得的数值。

需要说明的是,中心映射变换器的多项式运算器,用于计算多项式的系数以及多项式的值。如多项式a0b0c0x0+a1b1c1x1+...+an-1bn-1cn-1xn-1,多项式运算器调用多元乘法器分别计算多项式的系数a0b0c0,a1b1c1,an-1bn-1cn-1的值,以及代入x0,x1,...,xn-1,调用多元乘法器计算多项式a0b0c0x0+a1b1c1x1+...+an-1bn-1cn-1xn-1的值,在计算过程中产生的中间结果存储在存储器的ram中。中心映射变换器的方程组求解运算器,用于调用高斯-约当消元运算器求解特定有限域gf(28)的线性方程组,方程组的系数增广矩阵规模为12×13。

进一步地,所述多元乘法器包括由逻辑门和异或门组成的二元乘法电路;

所述二元乘法电路用于:

在计算a(x)和b(x)的乘法c(x)=a(x)×b(x)modf(x)时,根据针对i=0,1,...,14,j=0,1,...,7,使用逻辑门和异或逻辑门,计算vij;

根据针对i=0,1,...,14,使用逻辑门和异或逻辑门,计算si;

根据针对i=0,1,...,7,使用逻辑门和异或逻辑门,计算ci;

其中,均是特定有限域gf(28)的元素,f(x)是在多元乘法器中使用的特定有限域gf(28)的不可约多项式,f(x)=x8+f7x7+f6x6+...+f1x+1。

进一步地,所述多元乘法器包括由逻辑门和异或门组成的三元乘法电路;

所述三元乘法电路用于:

在计算a(x)、b(x)和c(x)的乘法d(x)=a(x)×b(x)×c(x)modf(x)时,根据针对i=0,1,...,21,j=0,1,...,7,使用逻辑门和异或逻辑门,计算vij;

根据针对i=0,1,...,21,使用逻辑门和异或逻辑门,计算si;

根据针对i=0,1,...,7,使用逻辑门和异或逻辑门电路,计算di;

其中,均是特定有限域gf(28)的元素,f(x)是在多元乘法器中使用的特定有限域gf(28)的不可约多项式,f(x)=x8+f7x7+f6x6+...+f1x+1。

其中,与逻辑门用于处理特定有限域gf(2)的加法,异或逻辑门用于特定有限域gf(2)的乘法。

进一步地,所述快速求逆器包括分别由逻辑门和异或门组成的求逆电路和乘法电路;

所述求逆电路用于:

在计算的求逆a(x)-1时,限定

所述乘法电路用于:

计算s1=a(x)2×a(x)4×a(x)8

计算s2=a(x)16×a(x)32×a(x)64

其中,是特定有限域gf(28)的元素,所述乘法电路的计算方法与所述三元乘法电路的计算方法相同,即快速求逆器的乘法电路的构造与多元乘法器的三元乘法电路一致。

其中,与逻辑门用于处理特定有限域gf(2)的加法,异或逻辑门用于特定有限域gf(2)的乘法。

进一步地,所述高斯-约当消元运算器包括找主元单元电路、132个消元单元电路和12个归一单元电路;

所述找主元单元电路用于:

调用所述快速求逆器,确定每次迭代的主元,以及对主元进行部分求逆,计算s1=a(x)2×a(x)4×a(x)8和s2=a(x)16×a(x)32×a(x)64

每一归一单元电路包括两个乘法电路;

所述每一归一单元用于:

调用乘法电路计算s4=a(x)128×r;

调用乘法电路计算nor=s1×s2×s4;

其中,r是所述归一单元电路中参与归一运算的线性方程组的增广系数矩阵中的元素,nor是归一运算结果;

每一消元单元电路包括加法电路和两个乘法电路;

所述每一消元单元用于:

调用乘法电路计算s4=a(x)128×r×c;

调用乘法电路和加法电路计算eli=s1×s2×s3+a;

其中,c和r是所述消元单元电路中参与消元运算的线性方程组的增广系数矩阵中的元素,eij是消元运算结果。

进一步地,所述密码处理器还用于:基于公钥对所述签名x进行验证,获得所述待签名的信息y;其中,验证的计算公式为

需要说明的是,中央处理器的密码处理器在运行验证运算时,调用中心映射变换器,计算其中y=y(y0,y1,...,y23)是待签名的信息,x=x(x0,x1,...,x41)是签名,是公钥,即私钥l1,l2,f的组合。

进一步地,所述彩虹签名装置还包括存储器;

所述存储器用于:存储变换过程中产生的各种数据。

其中,存储器的ram,包括1m字节存储空间,用于存储签名、验证的中间结果和最终结果。存取单位是单字节,可同时读取两个单位的数据,或写一个单位的数据。

参见图2,是本发明提供的彩虹签名装置的一个实施例的具体结构示意图,包括:

中央处理器,具体包括密码处理器和接口控制器,是本装置的核心部件;

存储器,具体包括ram和寄存器,是本装置的存储部件;

指示器,具体包括指示灯和开关,是本装置的指示部件;

电源管理器,具体包括内置电池和充电接口,是本装置的电源部件;

中心变换运算器,具体包括多项式运算器和方程组求解运算器,是本装置的第一运算部件;

仿射变换运算器,具体包括第一仿射运算器和第二仿射运算器,是本装置的第二运算部件;

多元乘法器,具体包括二元乘法电路和三元乘法电路,是本装置的第一有限域部件;

快速求逆器,具体包括求逆电路和乘法电路,是本装置的第二有限域部件;

高斯-约当消元运算器,具体包括加法电路和乘法电路,是本装置的第三有限域部件。

其中,中央处理器的密码处理器由rainbow签名电路和验证电路组成,能够执行rainbow数字签名和验证。中央处理器的接口控制器,由输入端口a、b、clk、res和输出端口c组成,其中输入端口a、b和输出端口c的控制电路能够执行rainbow数字签名的输入和输出。输入端口a、b和输出端口c均是单字节宽度,用于输送待签名的信息、签名、私钥、公钥以及个人信息,输入端口clk和res均是单比特宽度,分别用于输入时钟信号和复位信号。

输入端口a、b和输出端口c可以表示为:

a=a(a0,a1,...,a7);

b=b(b0,b1,...,b7);

c=c(c0,c1,...,c7);

输入端口clk和res的取值为0或者1,clk=0时代表低电平,clk=1时代表高电平,res的取值由1变成0时表示装置复位初始化,初始化结束后res的取值变成1。

存储器具体包括500个寄存器,每个寄存器的存储空间是单字节,用于存储有限域计算的结果。存储器的ram,包括1m字节存储空间,用于存储签名、验证的中间结果和最终结果。其存取单位是单字节,可同时读取两个单位的数据,或写一个单位的数据。

存储器的ram,包含以下7个端口:

地址端口ra0和ra1:ram地址src.1和src.2,可同时读取两个地址的数据;

数据输入端口rd0:将rd0的数据写至地址ra0的ram;

数据输出端口ro0和ro1:将地址ra0和ra1的ram数据读取至ro0和ro1;

使能信号端口re0和re1:re0=0时将地址ra0的ram数据读取至ro0,re1=0时将地址ra1的ram数据读取至ro1,re0=1时将rd0的数据写至地址ra0的ssdram。

指示器的指示灯,具体包括led电路,用于指示本装置的工作情况。本装置处于不供电状态时,指示灯不亮;本装置通电之后,指示灯常亮;本装置在计算签名或验证签名时,指示灯闪烁。指示器的开关,具体包括开关电路,当开关处于联通状态时,本装置供电,当开关处于断开状态时,本装置不供电。

电源管理器的内置电池,包括5000ma电池,用于本装置的供电。电源管理器的充电接口,包括mircousb控制电路,用于电池的充电。

在本实施例中,本发明所提供的rainbow签名装置执行签名运算的工作过程如下:

(1)使用者按下本装置的指示器的开关,电源管理器启动,内置电池开始给本装置供电,此时指示灯开始常亮。

(2)使用者通过中央处理器的接口控制器输入频率为50mhz的时钟信号和复位信号,中央处理器接收时钟信号和复位信号,并通知时序控制器以50mhz的频率统一工作,通知其它部件初始化。

(3)使用者通过中央处理器的接口控制器输入待签名的信息y=y(y0,y1,...,y23)和私钥l1,l2,f,其中,y0,y1,...,y23是gf(28)的元素。中央处理器接收待签名的信息和私钥,通知存储器存储待签名的信息和私钥,通知签名处理器开始签名运算,指示器的指示灯开始闪烁。

(4)存储器的ram依次存储待签名的信息和私钥。

(5)中央处理器的密码处理器调用仿射变换运算器,计算l1线性仿射变换其中y=y(y0,y1,...,y23)是待签名的信息,是y经过第一次仿射变换后的计算结果,a是24×24的矩阵,b是宽度为24的向量,矩阵和向量的每个元素均是特定有限域gf(28)的元素。

(6)中央处理器的密码处理器调用中心变换运算器,计算中心映射变换其中f-1是中心映射的逆变换,经过中心映射逆变换后的计算结果。

(7)中央处理器的密码处理器调用仿射变换运算器,计算l2线性仿射变换其中x是经过第二次仿射变换后的计算结果,x=x(x0,x1,...,x41)是y=y(y0,y1,...,y23)的rainbow签名,c是42×42的矩阵,d是宽度为42的向量,矩阵和向量的每个元素均是特定有限域gf(28)的元素。

(8)x=x(x0,x1,...,x41)通过中央处理器的码处理器输出至中央处理器的接口控制器。

本发明实施例提供的rainbow签名装置,能够在输入待签名的信息和私钥后,基于私钥对待签名的信息依次进行l1线性仿射变换、中心映射逆变换和l2线性仿射变换,获得相应的rainbow签名,签名速度快,计算资源小,且安全级别高,能够抵御量子计算机攻击。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1