CN110493003A - 一种基于四基二进制底层模运算的快速加密*** - Google Patents
一种基于四基二进制底层模运算的快速加密*** Download PDFInfo
- Publication number
- CN110493003A CN110493003A CN201910548928.6A CN201910548928A CN110493003A CN 110493003 A CN110493003 A CN 110493003A CN 201910548928 A CN201910548928 A CN 201910548928A CN 110493003 A CN110493003 A CN 110493003A
- Authority
- CN
- China
- Prior art keywords
- reg
- scalar multiplication
- module
- register
- modular
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- 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/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于四基二进制底层模运算的快速加密***,包括用于实现***的签名验签和加解密功能的协议层,以及用于实现曲线域算术和素数域模运算的运算层,其中:所述的运算层包括标量乘模块,标量乘模块上连接有用于进行杂凑运算的SM3模块、用于产生随机数的随机数发生器,标量乘模块包括点加模块和倍点模块,用于实现模逆、模乘和模加减运算;本方案通过改进椭圆曲线加密***的底层模运算,实现了基于四基二进制底层模运算的快速加密***,本专利的主要创新点在于将四基二进制快速模运算引入椭圆曲线加密***,进而提升加密***的运算效率。
Description
技术领域
本发明涉及集成电路中加密通信技术领域,具体涉及一种对芯片内部数据加密、解密和数据签名、验签的快速加密***。
背景技术
近十年间,信息技术飞速发展,计算机网络和移动终端大大普及,信息传输量骤然增加。其中包涵了大量有关军事、政治、经济、个人的重要的信息,如果在信息的传播和共享的过程中遭到窃听、篡改、截取或者破坏,将会造成不可估量的损失。因此,信息安全问题成为了越来越重要的课题,人们也对信息安全提出了更高的要求。密码技术是解决信息安全问题的重要组成部分,数据加密算法是其中的核心和关键。
椭圆曲线加密算法是目前国际上研究比较热门的加密方法,比起RSA算法,椭圆曲线加密算法具有破解难度高,密钥短的特点,是未来实现数据签名验签的主流算法之一。但是,普通的椭圆曲线加密算法需要多个运算模块(模加减、模逆、模乘、点加、倍点、标量乘、协议层)的配合调用,其运算复杂度较高,如果不加处理,普通的椭圆曲线加密***将耗费巨大的运算时间和运算资源,造成数据源加解密以及签名验签的延时特别严重,这大大限制了椭圆曲线加密算法的应用场景,甚至危及加密***的时序环境,造成加密芯片内部功能紊乱等一系列设计问题。
发明内容
针对现有椭圆曲线加密技术的缺点与不足,本发明的目的是提供一种适用于片上***(Soc)的基于四基二进制底层模运算的快速加密***,保障数据加密通信的时效性;该***在满足芯片低功耗和面积的前提下,能对通信内容进行签名验签,数据加解密。
为了实现上述任务,本发明采用以下技术方案:
一种基于四基二进制底层模运算的快速加密***,包括用于实现***的签名验签和加解密功能的协议层,以及用于实现曲线域算术和素数域模运算的运算层,其中:所述的运算层包括标量乘模块,标量乘模块上连接有用于进行杂凑运算的SM3模块、用于产生随机数的随机数发生器,标量乘模块包括点加模块和倍点模块,用于实现模逆、模乘和模加减运算;所述的***工作方式如下:
(1)对于发送方
发送选择需要使用的功能,如选择对数据通信进行签名,则执行步骤10;如选择对通信数据进行加密,则执行步骤20:
选择签名方式的流程如下:
步骤10,发送方将私钥和待签名消息输入***;
步骤11,***调用随机数发生器产生256位的随机数K;
步骤12,检测随机数K是否符合加密要求,即判断K是否满足 1≤K≤n-1;如不满足则通过随机数发生器重新产生随机数K;其中,n表示椭圆曲线基点G的阶;
步骤13,将符合加密要求的随机数K发送给标量乘模块,计算标量乘[K]G;其中G表示椭圆曲线的基点;同时,发送方需要签名的消息传递至SM3模块进行杂凑运算;
标量乘模块运算完毕后返回的结果是一个点的坐标,记为(x1,y1);SM3模块运算后返回的是一个比特串u;
步骤14,计算r=x1mod n,然后判断r是否为0,如果为0,则说明随机数 K不符合要求,则重新生成随机数K并执行步骤12至步骤14;如果r不为0,则说明签名计算正确;
步骤15,通过标量乘模块计算s=K*(u+r*dA)mod n,其中dA表示发送方的私钥;
步骤16,判断s是否为0,如果为0则随机数K仍然不符合要求,重新生成随机数K并执行步骤12至步骤16;如果s不为0,则表明签名计算正确,得到签名数据(r,s)并将签名数据发送给接收方用于数据验证;
选择加密方式的流程如下:
步骤20,发送方将公钥和待加密的消息输入***;
步骤21、步骤22同步骤11、步骤12;
步骤23,将符合加密要求的随机数K发送给标量乘模块计算标量乘[K]G;其中G表示椭圆曲线的基点,标量乘计算完毕后得到结果C1=(x1,y1),然后继续计算标量乘[K]PB,其中PB表示公钥;标量乘[K]PB的结果为一个点的坐标,记为s=(x2,y2);
步骤24,计算C2=M异或x2,其中M表示待加密的消息;然后将(C1,C2) 作为密文发送给接收方;
(2)对于接收方
接收方选择需要使用的功能,如选择对通信数据进行验证,则执行步骤30,如选择对通信数据进行解密,则执行步骤40:
选择验证模式的流程如下:
步骤30,接收方将公钥PA、来自于发送方的签名数据(r,s)、消息M输入到***中;
步骤31,***判断签名数据(r,s)是否合法,即是否满足1≤r≤n-1, 1≤s≤n-1;如r或s任意一个不满足,则判断签名不能通过,并发出错误警告;如签名合法,则进行下一步;
步骤32,将M传递给SM3模块计算杂凑值,同时利用标量乘模块计算s 的逆;计算完成后,得到杂凑值e和逆值u,然后分别计算e*u得到结果t1,计算r*u得到结果t2;
步骤33,将t1、t2传递给标量乘模块,计算标量乘[t1]G和标量乘[t2]PA;将两个标量乘的结果相加得到结果(x1,y1),判断(x1,y1)是否为0,若是,则验证不通过,发出错误警告;若否,则进行下一步;
步骤34,计算R=x1mod n,并判断R与r是否相等,是则验证通过,***给出提示“此消息来自目标发送方”;否则验证失败,即发出错误警告“此消息被破坏,或者来自未知的第三方”;
选择解密模式的流程如下:
步骤40,接收方将来自于发送方的密文(C1,C2)以及私钥dB输入***;
步骤41,将私钥dB传递给标量乘模块,计算标量乘[dB]C1,计算结果为一个坐标(x,y);
步骤42,判断x,y是否同时为0,如果是则发出提示信息:“解密失败”,如果否,则计算C2异或x,得到的结果即消息M,将消息M输出。
进一步地,所述的标量乘模块在进行四基二进制模运算的模乘运算中,采用4个256位加法器,两个移位寄存器,以及若干选择器;
当计算a*b开始时,乘数b存入寄存器s1中,s1向左移动两位,通过加法器和选择器的配合求得2*s1mod p,p为素数;继续将结果左移两位,并且再次通过加法器和选择器的组合求得4*s1mod p;通过判断b,即s1的最高两位是00,01,10,或者11来确定接下来的加数是0,a,a1或者a2,其中a1=2a mod p,a2=3a mod p;得到加法结果后判断乘数b是否已全部移出寄存器s1,是则返回此时的加法结果,此结果即为a*b的模乘结果,乘法运算完毕;若乘数b 仍未完全移出寄存器s1,则继续下次循环。
进一步地,所述的标量乘模块在进行四基二进制模运算的模逆运算中,采用四个寄存器REG_U,REG_V,REG_G1,REG_G2,两个加/减法器计算单元 DFAS_1、DFAS_2以及控制整个模逆的计算流程控制单元;
模逆运算初始化时,寄存器REG_U,REG_V,REG_G1,REG_G2,分别被赋值操作数A,模数P,0,1,加/减法器DFAS_1主要是用来完成寄存器 REG_U和寄存器REG_V内容的减法操作和REG_V内容的取反操作;而 DFAS_2主要用来完成寄存器REG_G1,REG_G2内容的减法操作和寄存器 REG_G2内容的取模运算;
当控制寄存器响应复位信号时,模数P和操作数A将通过选择器寄存到寄存器REG_U、REG_V中,寄存器REG_G1和REG_G2将通过选择器寄存0、1;当控制寄存器响应启动信号时,首先通过判断REG_V中的A值是否为偶数,若是则将REG_V向右移动一位,REG_G2向右移动两位,否则只将REG_G2向右移动一位;继续判断REG_V中的值的最低位是否为0,若是则继续以上操作,若不是则利用DAFS_1计算REG_U和REG_V中的差值,将结果寄存在 REG_G1中,判断REG_G1中的数据是否小于0,若是,则通过DAFS_2对 REG_G1进行加P操作,若否,则通过DAFS_2计算寄存器REG_G1,REG_G2 内容的差值,并将逆值存放于寄存器REG_G1中,返回结束信号,完成模逆运算。
本发明具有以下技术特点:
1.本方案底层模运算模块能实现快速运算,进而使得整个加密***能够实现快速加解密和数据签名验签功能。传统意义上的模逆和模乘模块是一位一位对数据进行操作,本发明的底层模运算基于四基二进制模逆、模乘算法,可以实现以两位为一个操作元进行数据处理。
2.本方案采用新的模逆操作单元,实现快速求模逆运算;采用新的模乘操作单元,实现快速求模乘运算;采用新的运算调度过程,将标量乘模块与杂凑模块独立开来,实现并行运算,节省运算时间。
3.由于本发明运算周期缩短,在实现签名验签功能的前提下仍可实现较大程度的加解密运算。
附图说明
图1为本发明***的模块构架图;
图2为加密***发送方的工作流程图;
图3为加密***接收方的工作流程图;
图4为四基二进制模乘硬件结构图;
图5为四基二进制模逆硬件结构图。
具体实施方式
本***整体上由协议层和运算层构成,协议层属于功能模块,负责实现整个***的签名验签和加解密功能;运算层主要进行的是曲线域算术和素数域模运算。协议层的各项运算都由运算层完成,然后数据传回协议层。其中模逆、模乘和模加减运算构成点加和倍点运算,点加和倍点运算又构成标量乘运算。
协议层需要用到的杂凑运算由SM3模块完成,随机数发生器负责产生随机数构成私钥和产生运算过程中需要用到的的操作数。另外,***输入输出的缓存模块由FPGA中的FIFO模块完成,主要是完成输入输出数据的暂存功能。数据分流用于将输入的数据分类处理,判断输入的数据是要进行何种操作;数据合并将处理完的数据整合成发送数据的格式。
一、对于发送方
发送方通过***的数据分流模块选择需要使用的功能,如发送方选择对数据通信进行签名,则执行步骤10;如发送方选择对通信数据进行加密,则执行步骤20。
选择签名方式的流程如下:
步骤10,发送方将私钥和待签名消息输入***,输入完毕后,执行以下步骤:
步骤11,***调用随机数发生器产生256位的随机数K;
步骤12,检测随机数K是否符合加密要求,即判断K是否满足 1≤K≤n-1;如不满足则通过随机数发生器重新产生随机数K;其中,n表示椭圆曲线基点G的阶,本实施例中选择n=FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123。
步骤13,将符合加密要求的随机数K发送给标量乘模块,标量乘模块内置椭圆曲线基点参数,用以计算标量乘[K]G;其中G表示椭圆曲线的基点,[K]G 表示随机数K与基点G相乘;同时,发送方需要签名的消息传递至SM3模块进行杂凑运算,SM3模块用于将任意长度的消息转化为256位比特串;
标量乘模块运算完毕后返回的结果是一个点的坐标,记为(x1,y1);SM3模块运算后返回的是一个比特串u;
步骤14,计算r=x1mod n,然后判断r是否为0,如果为0,则说明随机数 K不符合要求,则重新生成随机数K并执行步骤12至步骤14;如果r不为0,则说明签名计算正确;
步骤15,通过标量乘模块进行四基二进制底层模运算,计算s=K* (u+r*dA)modn,其中dA表示发送方的私钥;底层模运算执行完毕后,将置完成信号finish为1,所以判断finish的状态即可判断模运算是否执行完毕;
步骤16,判断s是否为0,如果为0则随机数K仍然不符合要求,重新生成随机数K并执行步骤12至步骤16;如果s不为0,则表明签名计算正确,得到签名数据(r,s)并将签名数据发送给接收方用于数据验证。
选择加密方式的流程如下:
步骤20,发送方将公钥和待加密的消息输入***,输入完毕后,执行以下步骤:
步骤21,***调用随机数发生器产生256位的随机K;
步骤22,检测随机数K是否符合加密要求,即判断K是否满足 1≤K≤n-1;如不满足则通过随机数发生器重新产生随机数K;其中,n表示椭圆曲线基点G的阶;
步骤23,将符合加密要求的随机数K发送给标量乘模块,标量乘模块内置椭圆曲线基点参数,用以计算标量乘[K]G;其中G表示椭圆曲线的基点,[K]G 表示随机数K与基点G相乘;标量乘计算完毕后得到结果C1=(x1,y1),然后继续计算标量乘[K]PB,其中PB表示公钥;标量乘[K]PB的结果为一个点的坐标,记为s=(x2,y2);
步骤24,计算C2=M异或x2,其中M表示待加密的消息;然后将(C1,C2) 作为密文发送给接收方。
二、对于接收方
接收方与发送方均采用本***;接收方通过***的数据分流模块选择需要使用的功能,如接收方选择对通信数据进行验证,则执行步骤30,如接收方选择对通信数据进行解密,则执行步骤40。
选择验证模式的流程如下:
步骤30,接收方将公钥PA、来自于发送方的签名数据(r,s)、消息M输入到***中,输入完毕后执行以下步骤:
步骤31,***判断签名数据(r,s)是否合法,即是否满足1≤r≤n-1, 1≤s≤n-1;如r或s任意一个不满足,则判断签名不能通过,并发出错误警告:“此消息被破坏,或者来自未知的第三方”;如签名合法,则进行下一步;其中n表示椭圆曲线基点G的阶;
步骤32,将M传递给SM3模块计算杂凑值,同时利用标量乘模块计算s 的逆;计算完成后,得到杂凑值e和逆值u,然后分别计算e*u得到结果t1,计算r*u得到结果t2;
步骤33,将t1、t2传递给标量乘模块,计算标量乘[t1]G和标量乘[t2]PA,其中G表示椭圆曲线基点,PA表示公钥;利用点加模块将两个标量乘的结果相加得到结果(x1,y1),判断(x1,y1)是否无穷远点,即(x1,y1)是否为0,若是,则验证不通过,发出错误警告:“此消息被破坏,或者来自未知的第三方”;若否,则进行下一步;
步骤34,计算R=x1mod n,并判断R与r是否相等,是则验证通过,***给出提示“此消息来自目标发送方”;否则验证失败,即发出错误警告“此消息被破坏,或者来自未知的第三方”。
选择解密模式的流程如下:
步骤40,接收方将来自于发送方的密文(C1,C2)以及私钥dB输入***,输入完毕后执行以下步骤:
步骤41,将私钥dB传递给标量乘模块,计算标量乘[dB]C1,计算结果为一个坐标(x,y);
步骤42,判断x,y是否同时为0,如果是则发出提示信息:“解密失败”,如果否,则计算C2异或x,得到的结果即消息M,将消息M输出。
本方案中标量乘模块内的四基二进制模乘硬件结构图如图4所示,在图4 中,1为256位加法器,2为移位寄存器,3为256位寄存器,4为0-1选择器, 5为非门,6为多路选择器,7为或门。在四基二进制模运算的模乘运算中,本方案采用4个256位加法器,两个移位寄存器,以及若干选择器。当计算a*b 开始时,乘数b存入寄存器s1中,s1向左移动两位,通过加法器和选择器的配合求得2*s1mod p,p为素数;继续将结果左移两位,并且再次通过加法器和选择器的组合求得4*s1mod p;通过判断b,即s1的最高两位是00,01,10,或者11来确定接下来的加数是0,a,a1或者a2(其中a1=2a mod p,a2=3a mod p),得到加法结果后判断乘数b是否已全部移出寄存器s1,是则返回此时的加法结果,此结果即为a*b的模乘结果,乘法运算完毕;若乘数b仍未完全移出寄存器s1,则继续下次循环。
如图5所示,为四基二进制模逆硬件结构图,在图中,8为选择器,9为控制寄存器,10为减法寄存器,11为中间寄存器。在四基二进制模运算的模逆运算中,主要由3个部分组成:一个是用来存储操作数以及中间和最终结果的寄存器堆,两个加/减法器计算单元(DAFS),以及控制整个模逆的计算流程控制单元(Controller)。模逆运算初始化时,寄存器REG_U,REG_V,REG_G1, REG_G2,分别被赋值操作数A,模数P,0,1,加/减法器DFAS_1主要是用来完成寄存器REG_U和寄存器REG_V内容的减法操作和REG_V内容的取反操作;而DFAS_2主要用来完成寄存器REG_G1,REG_G2内容的减法操作和寄存器 REG_G2内容的取模运算。
当控制寄存器响应复位信号时,模数P和操作数A将通过选择器寄存到寄存器REG_U、REG_V中,寄存器REG_G1和REG_G2将通过选择器寄存0、1. 当控制寄存器响应启动信号时,首先通过判断REG_V中的A值是否为偶数,即判断REG_V的最低位是否为0,若是则将REG_V向右移动一位,REG_G2向右移动两位,否则只将REG_G2向右移动一位。继续判断REG_V中的值的最低位是否为0,若是则继续以上操作,若不是则利用DAFS_1减法寄存器计算REG_U和REG_V中的差值,将结果寄存在REG_G1中,判断REG_G1中的数据是否小于0,若是,则通过DAFS_2对REG_G1进行加P操作,若否,则通过 DAFS_2计算寄存器REG_G1,REG_G2内容的差值,并将逆值存放于寄存器 REG_G1中,返回结束信号,完成模逆运算。
Claims (3)
1.一种基于四基二进制底层模运算的快速加密***,其特征在于,包括用于实现***的签名验签和加解密功能的协议层,以及用于实现曲线域算术和素数域模运算的运算层,其中:所述的运算层包括标量乘模块,标量乘模块上连接有用于进行杂凑运算的SM3模块、用于产生随机数的随机数发生器,标量乘模块包括点加模块和倍点模块,用于实现模逆、模乘和模加减运算;所述的***工作方式如下:
(1)对于发送方
发送选择需要使用的功能,如选择对数据通信进行签名,则执行步骤10;如选择对通信数据进行加密,则执行步骤20:
选择签名方式的流程如下:
步骤10,发送方将私钥和待签名消息输入***;
步骤11,***调用随机数发生器产生256位的随机数K;
步骤12,检测随机数K是否符合加密要求,即判断K是否满足1≤K≤n-1;如不满足则通过随机数发生器重新产生随机数K;其中,n表示椭圆曲线基点G的阶;
步骤13,将符合加密要求的随机数K发送给标量乘模块,计算标量乘[K]G;其中G表示椭圆曲线的基点;同时,发送方需要签名的消息传递至SM3模块进行杂凑运算;
标量乘模块运算完毕后返回的结果是一个点的坐标,记为(x1,y1);SM3模块运算后返回的是一个比特串u;
步骤14,计算r=x1 mod n,然后判断r是否为0,如果为0,则说明随机数K不符合要求,则重新生成随机数K并执行步骤12至步骤14;如果r不为0,则说明签名计算正确;
步骤15,通过标量乘模块计算s=K*(u+r*dA)mod n,其中dA表示发送方的私钥;
步骤16,判断s是否为0,如果为0则随机数K仍然不符合要求,重新生成随机数K并执行步骤12至步骤16;如果s不为0,则表明签名计算正确,得到签名数据(r,s)并将签名数据发送给接收方用于数据验证;
选择加密方式的流程如下:
步骤20,发送方将公钥和待加密的消息输入***;
步骤21、步骤22同步骤11、步骤12;
步骤23,将符合加密要求的随机数K发送给标量乘模块计算标量乘[K]G;其中G表示椭圆曲线的基点,标量乘计算完毕后得到结果C1=(x1,y1),然后继续计算标量乘[K]PB,其中PB表示公钥;标量乘[K]PB的结果为一个点的坐标,记为s=(x2,y2);
步骤24,计算C2=M异或x2,其中M表示待加密的消息;然后将(C1,C2)作为密文发送给接收方;
(2)对于接收方
接收方选择需要使用的功能,如选择对通信数据进行验证,则执行步骤30,如选择对通信数据进行解密,则执行步骤40:
选择验证模式的流程如下:
步骤30,接收方将公钥PA、来自于发送方的签名数据(r,s)、消息M输入到***中;
步骤31,***判断签名数据(r,s)是否合法,即是否满足1≤r≤n-1,1≤s≤n-1;如r或s任意一个不满足,则判断签名不能通过,并发出错误警告;如签名合法,则进行下一步;
步骤32,将M传递给SM3模块计算杂凑值,同时利用标量乘模块计算s的逆;计算完成后,得到杂凑值e和逆值u,然后分别计算e*u得到结果t1,计算r*u得到结果t2;
步骤33,将t1、t2传递给标量乘模块,计算标量乘[t1]G和标量乘[t2]PA;将两个标量乘的结果相加得到结果(x1,y1),判断(x1,y1)是否为0,若是,则验证不通过,发出错误警告;若否,则进行下一步;
步骤34,计算R=x1 mod n,并判断R与r是否相等,是则验证通过,***给出提示“此消息来自目标发送方”;否则验证失败,即发出错误警告“此消息被破坏,或者来自未知的第三方”;
选择解密模式的流程如下:
步骤40,接收方将来自于发送方的密文(C1,C2)以及私钥dB输入***;
步骤41,将私钥dB传递给标量乘模块,计算标量乘[dB]C1,计算结果为一个坐标(x,y);
步骤42,判断x,y是否同时为0,如果是则发出提示信息:“解密失败”,如果否,则计算C2异或x,得到的结果即消息M,将消息M输出。
2.如权利要求1所述的基于四基二进制底层模运算的快速加密***,其特征在于,所述的标量乘模块在进行四基二进制模运算的模乘运算中,采用4个256位加法器,两个移位寄存器,以及若干选择器;
当计算a*b开始时,乘数b存入寄存器s1中,s1向左移动两位,通过加法器和选择器的配合求得2*s1 mod p,p为素数;继续将结果左移两位,并且再次通过加法器和选择器的组合求得4*s1 mod p;通过判断b,即s1的最高两位是00,01,10,或者11来确定接下来的加数是0,a,a1或者a2,其中a1=2a mod p,a2=3a mod p;得到加法结果后判断乘数b是否已全部移出寄存器s1,是则返回此时的加法结果,此结果即为a*b的模乘结果,乘法运算完毕;若乘数b仍未完全移出寄存器s1,则继续下次循环。
3.如权利要求1所述的基于四基二进制底层模运算的快速加密***,其特征在于,所述的标量乘模块在进行四基二进制模运算的模逆运算中,采用四个寄存器REG_U,REG_V,REG_G1,REG_G2,两个加/减法器计算单元DFAS_1、DFAS_2以及控制整个模逆的计算流程控制单元;
模逆运算初始化时,寄存器REG_U,REG_V,REG_G1,REG_G2,分别被赋值操作数A,模数P,0,1,加/减法器DFAS_1主要是用来完成寄存器REG_U和寄存器REG_V内容的减法操作和REG_V内容的取反操作;而DFAS_2主要用来完成寄存器REG_G1,REG_G2内容的减法操作和寄存器REG_G2内容的取模运算;
当控制寄存器响应复位信号时,模数P和操作数A将通过选择器寄存到寄存器REG_U、REG_V中,寄存器REG_G1和REG_G2将通过选择器寄存0、1;当控制寄存器响应启动信号时,首先通过判断REG_V中的A值是否为偶数,若是则将REG_V向右移动一位,REG_G2向右移动两位,否则只将REG_G2向右移动一位;继续判断REG_V中的值的最低位是否为0,若是则继续以上操作,若不是则利用DAFS_1计算REG_U和REG_V中的差值,将结果寄存在REG_G1中,判断REG_G1中的数据是否小于0,若是,则通过DAFS_2对REG_G1进行加P操作,若否,则通过DAFS_2计算寄存器REG_G1,REG_G2内容的差值,并将逆值存放于寄存器REG_G1中,返回结束信号,完成模逆运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910548928.6A CN110493003B (zh) | 2019-06-24 | 2019-06-24 | 一种基于四基二进制底层模运算的快速加密*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910548928.6A CN110493003B (zh) | 2019-06-24 | 2019-06-24 | 一种基于四基二进制底层模运算的快速加密*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110493003A true CN110493003A (zh) | 2019-11-22 |
CN110493003B CN110493003B (zh) | 2021-08-17 |
Family
ID=68546342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910548928.6A Active CN110493003B (zh) | 2019-06-24 | 2019-06-24 | 一种基于四基二进制底层模运算的快速加密*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110493003B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685758A (zh) * | 2020-12-31 | 2021-04-20 | 南方电网科学研究院有限责任公司 | 基于椭圆曲线加密算法的数据加密*** |
CN113794572A (zh) * | 2021-09-28 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种高性能椭圆曲线数字签名与验签的硬件实现***和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2037357A2 (en) * | 2003-04-25 | 2009-03-18 | Samsung Electronics Co., Ltd. | Montgomery modular multiplier and method thereof using carry save addition |
CN102646033A (zh) * | 2011-02-21 | 2012-08-22 | 中国科学院研究生院 | 模乘运算的实现方法和装置 |
CN103427997A (zh) * | 2013-08-16 | 2013-12-04 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
US8868910B2 (en) * | 2012-02-09 | 2014-10-21 | Hewlett-Packard Development Company, L.P. | Elliptic curve cryptographic signature |
CN105577372A (zh) * | 2015-12-11 | 2016-05-11 | 杭州朔天科技有限公司 | 模逆算法的无符号处理方法及模逆加速器 |
CN109214195A (zh) * | 2018-07-26 | 2019-01-15 | 广东工业大学 | 一种抗差分功耗攻击的sm2椭圆曲线签名验签硬件***及方法 |
-
2019
- 2019-06-24 CN CN201910548928.6A patent/CN110493003B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2037357A2 (en) * | 2003-04-25 | 2009-03-18 | Samsung Electronics Co., Ltd. | Montgomery modular multiplier and method thereof using carry save addition |
CN102646033A (zh) * | 2011-02-21 | 2012-08-22 | 中国科学院研究生院 | 模乘运算的实现方法和装置 |
US8868910B2 (en) * | 2012-02-09 | 2014-10-21 | Hewlett-Packard Development Company, L.P. | Elliptic curve cryptographic signature |
CN103427997A (zh) * | 2013-08-16 | 2013-12-04 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
CN105577372A (zh) * | 2015-12-11 | 2016-05-11 | 杭州朔天科技有限公司 | 模逆算法的无符号处理方法及模逆加速器 |
CN109214195A (zh) * | 2018-07-26 | 2019-01-15 | 广东工业大学 | 一种抗差分功耗攻击的sm2椭圆曲线签名验签硬件***及方法 |
Non-Patent Citations (4)
Title |
---|
AMINE MRABET: "An efficient and scalable modular inversion/division for public key cryptosystems", 《2017 INTERNATIONAL CONFERENCE ON ENGINEERING & MIS (ICEMIS)》 * |
KHALID JAVEED: "Serial and parallel interleaved modular multipliers on FPGA platform", 《2015 25TH INTERNATIONAL CONFERENCE ON FIELD PROGRAMMABLE LOGIC AND APPLICATIONS (FPL)》 * |
陈光化: "双有限域模乘和模逆算法及其硬件实现", 《电子与信息学报》 * |
韩炼冰: "椭圆曲线密码算法的FPGA设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685758A (zh) * | 2020-12-31 | 2021-04-20 | 南方电网科学研究院有限责任公司 | 基于椭圆曲线加密算法的数据加密*** |
CN112685758B (zh) * | 2020-12-31 | 2024-02-06 | 南方电网科学研究院有限责任公司 | 基于椭圆曲线加密算法的数据加密*** |
CN113794572A (zh) * | 2021-09-28 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种高性能椭圆曲线数字签名与验签的硬件实现***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110493003B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Transparent polynomial delegation and its applications to zero knowledge proof | |
Khan et al. | An efficient and provably secure certificateless key-encapsulated signcryption scheme for flying ad-hoc network | |
US11507662B2 (en) | Systems and methods of security for trusted artificial intelligence hardware processing | |
CN110971390A (zh) | 一种用于智能合约隐私保护的全同态加密方法 | |
Zheng et al. | The software/hardware co-design and implementation of SM2/3/4 encryption/decryption and digital signature system | |
CN111064583B (zh) | 一种门限sm2数字签名方法、装置、电子设备及存储介质 | |
CN100428140C (zh) | 椭圆曲线密码体制协处理器的实现方法 | |
AU2020265775A1 (en) | System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption | |
Longa et al. | The cost to break SIKE: A comparative hardware-based analysis with AES and SHA-3 | |
CN110493003A (zh) | 一种基于四基二进制底层模运算的快速加密*** | |
Zhang et al. | A novel privacy protection of permissioned blockchains with conditionally anonymous ring signature | |
Yang et al. | Secure and efficient parallel hash function construction and its application on cloud audit | |
Ullah et al. | A perspective trend of hyperelliptic curve cryptosystem for lighted weighted environments | |
Pullonen | Actively secure two-party computation: Efficient beaver triple generation | |
CN108933651B (zh) | 基于soc的保密通信***及保密通信的方法 | |
US11782758B2 (en) | Distributed computing system and method of operation thereof | |
CN105119929A (zh) | 单一恶意云服务器下的安全模指数外包方法及*** | |
CN113691375B (zh) | 一种ecc椭圆曲线抗攻击的硬件架构 | |
Potlapally et al. | Algorithm exploration for efficient public-key security processing on wireless handsets | |
Dong et al. | Fully Verifiable Algorithm for Secure Outsourcing of Bilinear Pairing in Cloud Computing. | |
CN102135871A (zh) | 利用混沌原理产生随机数的装置及其动态口令牌 | |
Wang et al. | HT2ML: An efficient hybrid framework for privacy-preserving Machine Learning using HE and TEE | |
Volkmer et al. | A key establishment ip-core for ubiquitous computing | |
KR100451570B1 (ko) | 에스피에이에 견디는 타원 곡선 암호화 알고리즘을구현하는 방법 및 장치 | |
CN109617670B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |