CN115333741A - 数据处理方法、片上系统和计算设备 - Google Patents
数据处理方法、片上系统和计算设备 Download PDFInfo
- Publication number
- CN115333741A CN115333741A CN202211256711.6A CN202211256711A CN115333741A CN 115333741 A CN115333741 A CN 115333741A CN 202211256711 A CN202211256711 A CN 202211256711A CN 115333741 A CN115333741 A CN 115333741A
- Authority
- CN
- China
- Prior art keywords
- engine unit
- elliptic curve
- cryptographic
- point
- password
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012795 verification Methods 0.000 claims description 56
- 238000000354 decomposition reaction Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 description 48
- 230000008569 process Effects 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000271935 Bitis Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- HOWHQWFXSLOJEF-MGZLOUMQSA-N systemin Chemical compound NCCCC[C@H](N)C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H]([C@@H](C)O)C(=O)N[C@@H](CC(O)=O)C(=O)OC(=O)[C@@H]1CCCN1C(=O)[C@H]1N(C(=O)[C@H](CC(O)=O)NC(=O)[C@H](CCCN=C(N)N)NC(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H]2N(CCC2)C(=O)[C@H]2N(CCC2)C(=O)[C@H](CCCCN)NC(=O)[C@H](CO)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](C)N)C(C)C)CCC1 HOWHQWFXSLOJEF-MGZLOUMQSA-N 0.000 description 1
- 108010050014 systemin Proteins 0.000 description 1
Images
Classifications
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种数据处理方法、片上系统和计算设备。该方法应用于片上系统,片上系统包括依次相连的控制单元、密码引擎单元以及存储单元,密码引擎单元搭载了一种或多种基于椭圆曲线的第一密码运算,该方法包括:密码引擎单元接收控制单元发送的第一密码运算调用指令;密码引擎单元从存储单元中获取预计算信息,预计算信息记录了一个或多个数值与椭圆曲线基点的倍点运算结果;密码引擎单元根据一个或多个数值与椭圆曲线基点的倍点运算结果,计算第一密码运算中的多倍点运算的运算结果。片上系统在执行椭圆曲线的多倍点运算时,查询预先存储的一个或多个数值与椭圆曲线基点的倍点运算结果,对多倍点运算进行加速,有助于提高片上系统的运算效率。
Description
技术领域
本申请涉及信息安全技术领域,具体涉及一种数据处理方法、片上系统和计算设备。
背景技术
椭圆曲线加密算法(ellipse curve ctyptography,ECC),是一种公钥加密技术,以椭圆曲线理论为基础,实现信息加密及解密和数字签名及验签。其中,椭圆曲线多倍点运算是椭圆曲线群中开销最大的运算,相关技术中,片上系统在执行椭圆曲线多倍点运算时,运算效率较差。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法、片上系统和计算设备,以提高片上系统执行椭圆曲线基点多倍点运算的运算效率。
第一方面,提供了一种数据处理方法,所述方法应用于片上系统,所述片上系统包括控制单元、密码引擎单元以及存储单元,所述控制单元、所述密码引擎单元以及所述存储单元依次相连,所述密码引擎单元搭载了一种或多种密码运算,所述一种或多种密码运算包括基于椭圆曲线的第一密码运算,所述方法包括:所述密码引擎单元接收所述控制单元的调用指令,所述调用指令用于调用所述密码引擎单元执行所述第一密码运算;所述密码引擎单元从所述存储单元中获取预计算信息,所述预计算信息记录了一个或多个数值与椭圆曲线基点的倍点运算结果;所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果。
本申请实施例在计算椭圆曲线多倍点运算时,片上系统中的密码引擎单元可以查询预先存储的一个或多个数值与椭圆曲线基点的预计算结果,并根据查询到的预计算结果加速椭圆曲线多倍点运算,这样一来,就避免了在线进行复杂的多倍点运算,有助于提高片上系统的运算效率。
可选地,所述预计算信息包括M进制下的N个进制位中的每个进制位对应的预计算子信息,所述每个进制位对应的预计算子信息包括所述每个进制位的M种取值与椭圆曲线基点的倍点运算结果,其中M和N均为大于1的正整数,所述密码引擎单元根据所述预计算信息,执行所述第一密码运算中的多倍点运算,包括:所述密码引擎单元对数值K进行M进制分解,得到所述N个进制位的目标值,其中K表示多倍点运算的倍数;所述密码引擎单元根据所述N个进制位的目标值,分别查询所述N个进制位对应的预计算子信息,得到N个倍点运算结果;所述密码引擎单元对所述N个倍点运算结果进行点加运算,得到所述多倍点运算的运算结果。
为了节省存储空间并实现高效运算,本申请预先存储多倍点运算的倍数K基于M进制分解后,得到的N个进制位对应的预计算子信息。在执行多倍点运算时,根据每个进制位的取值,在预计算子信息中查找倍点运算结果。根据N个倍点运算结果,将多倍点运算转化为点加运算,避免片上系统执行倍点运算,有利于进一步提高运算效率。
可选地,所述M等于2的q次幂,其中q的取值小于等于16。
本申请中,将椭圆曲线多倍点运算的倍数K基于M进制分解,得到N个进制位,其中,M等于2的q次幂。随着q取值的增加,N的值越小,点加运算的次数越少,但是预计算信息所占内存空间越大。当q的取值小于等于16,能够有效均衡点加运算的次数和存储预计算信息所占内存空间的大小。
可选地,q的取值为8。
进一步的,q的取值为8,以更好的平衡点加运算的次数和存储预计算信息所占内存空间的大小。
可选地,所述第一密码运算为基于椭圆曲线运算的数字签名运算,所述调用指令还包括待签名的消息,所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果,包括:所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述数字签名运算中的多倍点运算的运算结果;所述方法还包括:所述密码引擎单元根据所述多倍点运算的运算结果,计算所述消息的数字签名。
本申请实施例提供的数据处理方案,可以应用于数字签名运算中,以提高片上系统执行数字签名运算的效率。
可选地,所述方法还包括:所述密码引擎单元向所述控制单元发送所述数字签名。
本申请中密码引擎单元还可以向控制单元发送已生成的数字签名,便于控制单元将数字签名发送给请求签名的用户。
可选地,所述第一密码运算为基于椭圆曲线运算的签名验签运算,所述调用指令还包括待验证的数字签名,所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果,包括:所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述签名验签运算中的多倍点运算;所述方法还包括:所述密码引擎单元根据所述多倍点运算的运算结果,计算所述数字签名的验签结果。
本申请实施例提供的数据处理方案,可以应用于数字签名验签运算中,以提高片上系统执行数字签名验签运算的效率。
可选地,所述方法还包括:所述密码引擎单元向所述控制单元发送所述数字签名的验签结果。
本申请中密码引擎单元还可以向控制单元发送数字签名的验签结果,便于控制单元将数字签名验签结果发送给请求验签的用户。
第二方面,提供了一种片上系统,包括控制单元和密码引擎单元,所述控制单元与所述密码引擎单元相连,所述密码引擎单元搭载了一种或多种密码运算,所述密码引擎单元用于接收所述控制单元的调用指令,以执行如第一方面所述的方法。
第三方面,提供了一种计算设备,其特征在于,包括如第二方面所述的片上系统。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
附图说明
图1为本申请实施例提供的一种片上系统的硬件架构示意图。
图2为本申请实施例提供的一种数据处理方法的流程示意图。
图3为本申请实施提供的另一种数据处理方法的流程示意图。
图4为本申请实施例提供的一种片上系统的数据处理流程示意图。
图5为本申请实施例提供的另一种片上系统的数据处理流程示意图。
图6为本申请实施例提供的另一种片上系统的硬件架构示意图。
图7为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
椭圆曲线加密算法(ellipse curve ctyptography,ECC),是一种公钥加密技术,以椭圆曲线理论为基础,实现信息加密及解密和数字签名及签名验签。SM2椭圆曲线公钥密码算法是ECC算法的一种。SM2系列算法不仅是国密算法的重要组成部分,还是我国网络空间安全的核心技术之一。SM2数字签名算法能够使用较短长度秘钥的同时提供较高的安全性。
首先对椭圆曲线加密算法进行简单介绍。椭圆曲线加密算法是基于椭圆曲线数学
理论实现的一种非对称加密算法。椭圆曲线可以为的曲线,其中,a、b为椭圆
曲线的参数。椭圆曲线加密算法涉及到椭圆曲线的点加运算及倍点运算。椭圆曲线的点加
运算可以表示椭圆曲线上a点和b点的点加,用运算式a+b表示;椭圆曲线的倍点运算可以分
为2倍点运算及多倍点运算。其中,2倍点运算用于表示椭圆曲线上a点和a点的点加,用运算
式2a表示,多倍点运算用于表示k个椭圆曲线上的a点的点加,用运算式[k]a表示,其中k为
椭圆曲线多倍点运算的倍数。
在电子商务等网络环境下,在进行网上交易时,需要在买方、卖方及中间服务商之间进行信息交换,将各交易行为汇集在一起,交易行为例如可以是签订合同、订购、付费等。为了保证交易的合法性,需要交易各方能够提供唯一鉴别各自具有法律效应的数字签名,以确认签名者的身份及数据的完整性。
下面对基于椭圆曲线加密算法的数字签名算法进行介绍。设待签名的信息为M,信息M的数字签名为(r,s),其中r为数字签名的第一分量,s为数字签名的第二分量。
生成数字签名的过程包括:
为签名者用户A的杂凑值,在一些实施例中,,
其中,用于标识用户A的身份标识、为用户身份标识、a、b分别为椭圆曲线的参数,
为椭圆曲线素数域中的元素、、为椭圆曲线上基点G的坐标、、为用户A的公钥的坐
标。用户A的密钥对包括用户A的私钥和用户A的公钥。表示将签名
者用户A的杂凑值及待签名信息进行拼接,和M可以分别为比特串或字节串。
随机发生器可以是国家密码管理局批准的随机数发生器。该随机数k为用于对签名信息M进行数字签名的私钥。在一些实施例中,私钥k为192-256位的二进制大整数,即私钥k从低位到高位依次包括192-256位进制数。
在步骤5,计算数字签名(r,s)。
在步骤6,返回信息M的数字签名(r,s)。
ECC加密算法中,例如上述数字签名及验签算法中,主要涉及椭圆曲线点加运算、
椭圆曲线二倍点运算及椭圆曲线多倍点运算。其中,椭圆曲线多倍点运算是椭圆曲线群中
开销最大的运算,其计算效率决定了加密算法的性能表现。椭圆曲线多倍点运算例如可以
是上述签名运算中步骤3,计算用于对签名信息M进行数字签名的公钥(),()=[k]
G,以及验证运算中的步骤5,计算椭圆曲线点(,),(,)=。由于ECC加密算
法中大量且复杂的椭圆曲线运算,尤其是椭圆曲线倍点运算,频繁海量的椭圆曲线多倍点
运算会给服务器带来极大的计算处理压力,造成服务质量下降甚至系统崩溃等问题。
为了提高椭圆曲线倍点运算的运算效率,降低服务器的处理压力,相关技术提供了两种椭圆曲线倍点运算的快速计算方法。一种是基于大数非相邻形式(Non-AdjacentForm, NAF)的优化算法,另一种是基于滑动窗口的优化算法。下面对相关技术提出的优化算法进行简单的介绍。NAF优化算法及基于滑动窗口的优化算法都是在二进制算法上的优化。在二进制算法中,将用于数字签名的私钥k可以表示为如下形式:
则[k]G可以表示为:
硬件,例如片上系统,在执行上述计算时,从l-1依次至0,计算,之后将
的各项加起来。这种方法需要l-1次2倍点运算及w-1次点加运算,其中,w为中非零的个
数。NAF优化算法通过对k的编码方式进行优化,减少进制位中取值为1的数量,以减少点加
的次数。滑动窗口优化算法通过跳过进制位中取值为0的方式,减少运算量。
然而,在椭圆曲线素数域下,相关技术提供的优化算法对计算效率的提升有限,还
需进一步提升。以k为256位大整数为例,NAF算法在计算该椭圆曲线倍点运算时,大约需要
256次椭圆曲线二倍点运算和85次点加运算。滑动窗口优化算法在预算阶段需要1次二倍点
运算和次点加运算,主循环需要255次二倍点运算和次点加运算,其中为窗
口宽度。
为了进一步提升片上系统执行椭圆曲线多倍点运算的运算效率,本申请实施例提供一种数据处理方法、片上系统和计算设备。
如前文提到,ECC加密算法中,椭圆曲线倍点运算是椭圆曲线群中开销最大的运算,因此,本申请通过预先存储的用于计算椭圆曲线倍点运算的预计算信息,提高多倍点运算的计算效率。下面结合具体实施例对本申请进行介绍。
图1为本申请实施例提供的一种片上系统的硬件架构示意图。图1所示的片上系统100可以设置于计算设备中。该片上系统100可以包括控制单元110,密码引擎单元120、以及存储单元130。控制单元110、密码引擎单元120、以及存储单元130依次相连。密码引擎单元120搭载了一种或多种密码运算,一种或多种密码运算例如可以是基于椭圆曲线的数字签名算法、基于椭圆曲线的数字签名验签算法、以及基于椭圆曲线的信息加密算法等。其中,基于椭圆曲线的数字签名或签名验签算法例如可以是SM2国密算法。
控制单元110例如可以是处理器(亦或者是处理器核),控制单元110用于接收密码运算的请求,及返回密码运算的结果。控制单元110还用于向密码引擎单元120发送调用指令,调用指令用于调用密码引擎单元120执行密码运算。以数字签名及验签算法为例,在签名时,用户发起签名请求时,控制单元110收到用户的请求后,可以调用密码引擎单元120请求SM2算法进行签名操作。控制单元110还可以接收密码引擎单元120发送的数字签名的结果,并将签名结果返回给请求签名的用户;在验签时,用户发起验签请求时,控制单元110收到用户的请求后,可以调用密码引擎单元120请求SM2算法进行验签操作。控制单元110还可以接收密码引擎单元120发送的验签结果,并将验签结果返回给请求验签的用户。
存储单元130例如可以是静态随机存储器(static random-access memory,SRAM),例如还可以是动态随机存取存储器(dynamic random access memory,DRAM),应当理解,本申请对存储单元130的具体形式不做限定,可以根据实际的应用场景灵活选择。
存储单元130存储记录一个或多个数值与椭圆曲线基点的倍点运算的预计算结果。换句话说,存储单元130存储了一个或多个[K]G的预计算结果,其中G为椭圆曲线加密算法中的基点,K为任意整数。换句话说,存储单元存储了一个或多个取值的K与基点G的椭圆曲线倍点运算的运算结果。
密码引擎单元120位于控制单元110与存储单元130之间,用于响应于控制单元110的调用指令,从存储单元130获取预计算结果,根据预计算结果,执行多倍点运算。在一些实施例中,密码引擎单元120为密码加速引擎,该密码加速引擎上搭载了SM2签名验签算法。
下面结合图2对密码引擎单元进行示例性介绍。图2为本申请实施例提供的一种数据处理方法的流程示意图。图2所示的数据处理流程可以由密码引擎单元120执行。
在步骤S210,接收控制单元的调用指令。
密码引擎单元接收控制单元的调用指令,该调用指令用于调用密码引擎执行第一密码运算。如前文提到,密码引擎单元搭载了一种或多种基于椭圆曲线的密码运算,第一密码运算为前文提到的一种或多种密码运算中的一种。第一密码运算例如可以是基于椭圆曲线运算的数字签名运算,例如还可以是基于椭圆曲线运算的签名验签运算。
在步骤S220,从存储单元中获取预计算结果。
如前文介绍,存储单元存储了一个或多个[K]G的预计算结果,其中G为椭圆曲线加密算法中的基点,K为椭圆曲线多倍点运算的倍数,K为任意整数。从存储单元中获取一个或多个预计算结果,该预计算结果用于计算第一密码运算的多倍点运算。
在步骤S230,根据一个或多个数值与椭圆曲线基点的倍点运算结果,计算第一密码运算中的多倍点运算。
一个或多个[K]G的预计算结果可以是用于计算第一密码运算的多倍点运算的中间结果,即根据一个或多个中间结果计算第一密码运算中的多倍点运算。
可见,在计算椭圆曲线多倍点运算时,片上系统中的密码引擎单元能查询预先存储的一个或多个数值与椭圆曲线基点的预计算结果,根据预计算结果加速椭圆曲线多倍点运算,这样,可以避免在线执行复杂的多倍点运算,有助于提高片上系统的运算效率。
在一些实施例中,可以将椭圆曲线多倍点运算的倍数K进行M进制分解。基于M进制分解之后,可以得到N个进制位,其中,M和N是大于1的正整数。话句话说,对于任意倍数K,可以表示为M进制的形式,基于M进制展开后,倍数K可以由下面的公式表达:
其中,,话句话说,M进制可以为进制。以倍数K为256位二进制大整数为例,
基于2进制分解时,K可以分解为256个进制位;基于4进制分解时,K可以分解为128个进制
位;基于16进制分解时,K可以分解为64个进制位;基于256进制分解时,K可以分为32个进制
位…等。继续以倍数K为192位二进制大整数为例,对K进行4进制分解,可以得到96个进制
位;对K进行8进制分解,可以得到64个进制位;对K进行64进制分解,可以得到32个进制位…
等。
N个进制位中的每个进制位表示该进制下的一个进制位。例如,将256位二进制大整数K,基于256进制分解为32个进制位,其中,一个进制位表示256进制中的一位,32个进制位表示256进制中的32位。在一些实施例中,可以用8个二进制位表示256进制中一位。在256进制中,一位进制位的取值范围为[0,256)。
如此,椭圆曲线倍点运算[K]G可以表示为:
可以对上式中的每项,做预计算,并将预计算结果存储在存储单元
中。由于在中,进制位有M种不同的取值,因此,可以做每个进制位的M种取值与椭圆
曲线基点的倍点运算结果,将M种预计算结果作为每个进制位的预计算子信息。
以倍数K为256位二进制大整数为例,基于256进制分解时,K可以分为32个进制位,K可以表示为:
椭圆曲线倍点运算[K]G可以表示为:
因此,可以预先计算、、、等
32个进制位的预计算结果。因为,32个进制位中的每个进制位有256种取值,因此,对于每
一个进制位需要计算该进制位下256种取值与椭圆曲线G的倍点预计算子信息。以从低位到
高位,第32个进制位为例,需要计算,其中,。
以倍数K为256位二进制大整数为例,基于16进制,分为64个进制位,K可以表示为:
椭圆曲线倍点运算[K]G可以表示为:
因此,可以预先计算、、、…,64个
进制位的预计算结果。因为,64个进制位中的每个进制位有16种取值,因此,对于每一个
进制位需要计算该进制位下16种取值与椭圆曲线G的倍点预计算子信息。以从低位到高位,
第64个进制位为例,需要计算,其中,。
在一些实施例中,可以使用查找表存储预计算信息。示例性的,可以为N个进制位
中的每个进制位建立预计算表,每个预计算表可以有j项,j,第i个表的第j项可以
用T[i][j]表示。。椭圆曲线倍点运算[k]G可以进一步表
示为:
以倍数K为256位二进制大整数,基于256进制分解为例,可以制作32个查找表,用
于存储上述的32个的运算的预计算信息。由于每个的取值在0~255之间,因此,每
个查找表共有256项。其中,第j项表示为。示例性的,第13个查找表记录的是,有256种取值,因此,该查找表中记录了,共256项椭圆曲
线的倍点运算的预计算子信息。
以倍数K为256位二进制大整数,基于为进制分解为例,可以制作16个查找表,每
个查找表共有16项。即对于第i个查找表,共有项,其中,第j项表示为。
示例性的,第13个查找表记录的是,有种取值,因此,该查找表中记录了,共项椭圆曲线的倍点运算的预计算子信息。
下面结合图3对本申请实施例提供的数据处理方法进行进一步地说明。
在步骤S310,对椭圆曲线多倍点运算的倍数K进行M进制分解,得到N个进制位的目标值。
如前文提到,对椭圆多倍点运算的倍数K进行M进制分解时,可以得到N个进制位,M和N是大于1的整数。以数字签名算法中的私钥k为例,对于一个256位的大整数k可以基于256进制进行分解,得到32个进制位以及每个进制位的取值,其中,进制位的取值为进制位的目标值。换句话说,对一个256位的大整数k,基于256进制分解之后,可得到32个进制位,以及32个进制位的具体取值。
在步骤S320,根据N个进制位的目标值,分别查询N个进制位对应的预计算子信息,得到N个倍点运算结果。
根据进制位的具体取值,查询该进制位对应的预计算子信息,得到该进制位的倍
点预计算结果。换句话说,可以以进制位的取值为索引,查询该进制位对应的预计算
子信息。对于N个进制位,可以分别查询,得到N个倍点运算的结果。
下面以预计算信息存储在查找表为例,说明一下查询的过程。
在执行椭圆曲线倍点运算[K]G时,可以将K分解为N个进制位,之后,在第i个进制
位的查找表中,根据第i个进制位的取值j在表中索引查找,从而找到第i个进制位的取
值j与椭圆曲线基点G的倍点运算结果,即。对于N个进制位,都可以根据上述映射关
系,找到N个进制位的取值与椭圆曲线基点的倍点运算结果。
以多倍点运算的倍数K为256位大整数,N=32为例,N个进制位可以为()。
示例的,可以根据进制位的具体取值,在进制位对应的预计算子信息中,查找的预计算信息,该计算子信息例如可以存储在查找表中。可以根据进制位的
具体取值,在进制位对应的预计算子信息中,查找的预计算信息,该计算子信
息例如可以存储在查找表中。依次类推,可以根据32个进制位的具体的取值,在每个进制
位对应的预计算信息中,找到32个倍点运算结果。
在步骤S330,对N个倍点运算结果进行点加运算,得到多倍点运算的运算结果。
因此,对N个倍点运算结果进行点加运算,可以得到多倍点运算的运算结果。
以多倍点运算的倍数K为256位大整数,N=32为例,将上述32个倍点运算结果进行点加运算,可以得到该多倍点运算的运算结果。
本申请将椭圆曲线多倍点运算的倍数K基于M进制分解为N个进制位,并预先存储N个进制位对应的预计算子信息,在执行多倍点运算时,根据N个进制位的取值,查询预先存储的预计算信息,将多倍点运算转化为N个倍点运算的点加运算,大大减少了椭圆曲线基点的多倍点运算的次数,有助于提高片上系统的运算效率。
表1
如表1,q分别为2、4、8、16、32时,N的取值分别为128、64、32、16、8。虽然进制位N的
数量减少了,但是N个进制位对应的预计算信息增多了,因此导致存储占用的空间爆炸性的
增长。如表1中,当M从指数倍增为时,进制位的数量从16为减少到8位。但是在进制
中,每个进制位的取值有种,也就是说每个进制位需要存储种预计算子信息,在进
制中,每个进制位的取值有种,也就是说每个进制位需要存储种预计算子信息。进制
位的位数虽然少了一半,但是存储所占的空间是之前的32768倍。为了均衡点加运算的次数
和内存空间的大小,因此,q的取值为小于或等于16。在一些实施例中,综合衡量点加次数及
预计算信息所占内存空间的大小,q的取值为8,即M进制为256进制。
当控制单元接收到用户的数字签名或签名验签请求时,控制单元向密码引擎单元发送调用指令,响应于该调用指令,密码引擎单元执行数字签名或签名验签运算,该调用指令中还包括待签名的消息或待验证的数字签名。密码引擎单元在执行完数字签名或签名验签中的椭圆曲线倍点运算之后,还可以计算待签名消息的数字签名或计算数字签名的验签结果。下面分别结合数字签名及签名验签的过程,对本申请实施例提供的数据处理方法进行介绍。
设待签名的消息M,为了得到消息M的数字签名(r,s),作为签名者的用户A应实现以下步骤。
在步骤5,计算数字签名(r,s)。
在步骤6,返回信息M的数字签名(r,s)。
由上述计算过程可以看出,本申请将256位大整数表示为256进制下的字节序列,在本地预先计算并存储32个椭圆曲线基点的多倍点运算查找表。在SM2数字签名或验签过程中,通过查询32个预计算表,仅需调用31次椭圆曲线点加运算即可完成椭圆曲线基点的多倍点运算,大大减少了椭圆曲线基点的运算次数,能够有效提升片上系统SM2算法的签名性能。
图4为本申请实施例提供的一种片上系统数据处理流程示意图,图4所示的片上系统为本申请实施例提供的片上系统100的一种可能实现方式,片上系统包括控制单元410,密码加速引擎420、存储单元430,密码加速引擎420中搭载了SM2签名验签算法。如图4所示,用户发起签名请求,控制单元410收到用户的签名请求之后,调用密码加速引擎420请求SM2算法进行签名操作。密码加速引擎420访问存储单元430获取预计算表,将其作为参数传递给SM2数字签名函数并执行SM2数字签名算法。密码加速引擎420接收到SM2数字签名的执行结果后,将签名结果返回给控制单元410。签名结果经由控制单元410返回给请求签名的用户。
图5为本申请实施例提供的另一种片上系统数据处理流程示意图,图5所示的片上系统为本申请实施例提供的片上系统100的另一种可能实现方式,片上系统包括控制单元510,密码加速引擎520、存储单元530,密码加速引擎520中搭载了SM2签名验签算法。如图5所示,用户发起验签请求,控制单元510接收到用户请求后,调用密码加速引擎520请求SM2算法进行验签操作,密码加速引擎520访问存储单元530获取预计算表,将其作为参数传递给SM2数字验签函数并执行SM2数字验签算法。密码加速引擎520接收到SM2验签函数返回的验签结果后,经由控制单元510将验签结果返回给用户。
图6为本申请实施例提供的另一种片上系统的硬件架构示意图。图6所示的片上系统600包括控制单元610和密码引擎单元620。控制单元610与密码引擎单元620相连,密码引擎单元620搭载了一种或多种密码运算,密码引擎单元620用于接收控制单元610的调用指令,以执行前文所述的任意一种数据处理方法。
图7为本申请实施例提供的一种计算设备的结构示意图。图7所示的计算设备700包括片上系统710,片上系统710可以是前文中提到的任意一种片上系统。计算设备700可以是计算机设备,该计算机设备例如可以是用于执行密码运算的服务器。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于片上系统,所述片上系统包括控制单元、密码引擎单元以及存储单元,所述控制单元、所述密码引擎单元以及所述存储单元依次相连,所述密码引擎单元搭载了一种或多种密码运算,所述一种或多种密码运算包括基于椭圆曲线的第一密码运算,
所述方法包括:
所述密码引擎单元接收所述控制单元的调用指令,所述调用指令用于调用所述密码引擎单元执行所述第一密码运算;
所述密码引擎单元从所述存储单元中获取预计算信息,所述预计算信息记录了一个或多个数值与椭圆曲线基点的倍点运算结果;
所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果。
2.根据权利要求1所述的方法,其特征在于,所述预计算信息包括M进制下的N个进制位中的每个进制位对应的预计算子信息,所述每个进制位对应的预计算子信息包括所述每个进制位的M种取值与椭圆曲线基点的倍点运算结果,其中M和N均为大于1的正整数,
所述密码引擎单元根据所述预计算信息,执行所述第一密码运算中的多倍点运算,包括:
所述密码引擎单元对数值K进行M进制分解,得到所述N个进制位的目标值,其中K表示多倍点运算的倍数;
所述密码引擎单元根据所述N个进制位的目标值,分别查询所述N个进制位对应的预计算子信息,得到N个倍点运算结果;
所述密码引擎单元对所述N个倍点运算结果进行点加运算,得到所述多倍点运算的运算结果。
3.根据权利要求2所述的方法,其特征在于,所述M等于2的q次幂,其中q的取值小于等于16。
4.根据权利要求3所述的方法,其特征在于,q的取值为8。
5.根据权利要求1所述的方法,其特征在于,所述第一密码运算为基于椭圆曲线运算的数字签名运算,所述调用指令还包括待签名的消息,
所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果,包括:
所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述数字签名运算中的多倍点运算的运算结果;
所述方法还包括:
所述密码引擎单元根据所述多倍点运算的运算结果,计算所述消息的数字签名。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述密码引擎单元向所述控制单元发送所述数字签名。
7.根据权利要求1所述的方法,其特征在于,所述第一密码运算为基于椭圆曲线运算的签名验签运算,所述调用指令还包括待验证的数字签名,
所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述第一密码运算中的多倍点运算的运算结果,包括:
所述密码引擎单元根据所述一个或多个数值与椭圆曲线基点的倍点运算结果,计算所述签名验签运算中的多倍点运算;
所述方法还包括:
所述密码引擎单元根据所述多倍点运算的运算结果,计算所述数字签名的验签结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述密码引擎单元向所述控制单元发送所述数字签名的验签结果。
9.一种片上系统,其特征在于,包括控制单元和密码引擎单元,所述控制单元与所述密码引擎单元相连,所述密码引擎单元搭载了一种或多种密码运算,所述密码引擎单元用于接收所述控制单元的调用指令,以执行如权利要求1-8中任一项所述的方法。
10.一种计算设备,其特征在于,包括如权利要求9所述的片上系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256711.6A CN115333741A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、片上系统和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211256711.6A CN115333741A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、片上系统和计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115333741A true CN115333741A (zh) | 2022-11-11 |
Family
ID=83914419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211256711.6A Pending CN115333741A (zh) | 2022-10-14 | 2022-10-14 | 数据处理方法、片上系统和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115333741A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8345864B1 (en) * | 2008-12-12 | 2013-01-01 | Emc Corporation | Elliptic curve cryptography scalar multiplication with on demand acceleration table generation |
CN105790939A (zh) * | 2016-03-01 | 2016-07-20 | 全球能源互联网研究院 | 一种vlsi实现加速器的素数域椭圆曲线密码系统 |
US9590805B1 (en) * | 2014-12-23 | 2017-03-07 | EMC IP Holding Company LLC | Ladder-based cryptographic techniques using pre-computed points |
CN107147493A (zh) * | 2017-06-13 | 2017-09-08 | 北京洋浦伟业科技发展有限公司 | 一种有限资源下的数字签名方法、装置及系统 |
CN109218023A (zh) * | 2017-06-29 | 2019-01-15 | 英特尔公司 | 用于稳健计算椭圆曲线数字签名的技术 |
CN110309665A (zh) * | 2019-07-08 | 2019-10-08 | 北京海泰方圆科技股份有限公司 | 一种sm2数字签名的快速生成方法和装置 |
CN110365481A (zh) * | 2019-07-04 | 2019-10-22 | 上海交通大学 | 加速国密sm2算法的优化实现系统及方法 |
CN113935018A (zh) * | 2021-12-16 | 2022-01-14 | 飞腾信息技术有限公司 | 密码运算方法、片上系统及计算机设备 |
-
2022
- 2022-10-14 CN CN202211256711.6A patent/CN115333741A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8345864B1 (en) * | 2008-12-12 | 2013-01-01 | Emc Corporation | Elliptic curve cryptography scalar multiplication with on demand acceleration table generation |
US9590805B1 (en) * | 2014-12-23 | 2017-03-07 | EMC IP Holding Company LLC | Ladder-based cryptographic techniques using pre-computed points |
CN105790939A (zh) * | 2016-03-01 | 2016-07-20 | 全球能源互联网研究院 | 一种vlsi实现加速器的素数域椭圆曲线密码系统 |
CN107147493A (zh) * | 2017-06-13 | 2017-09-08 | 北京洋浦伟业科技发展有限公司 | 一种有限资源下的数字签名方法、装置及系统 |
CN109218023A (zh) * | 2017-06-29 | 2019-01-15 | 英特尔公司 | 用于稳健计算椭圆曲线数字签名的技术 |
CN110365481A (zh) * | 2019-07-04 | 2019-10-22 | 上海交通大学 | 加速国密sm2算法的优化实现系统及方法 |
CN110309665A (zh) * | 2019-07-08 | 2019-10-08 | 北京海泰方圆科技股份有限公司 | 一种sm2数字签名的快速生成方法和装置 |
CN113935018A (zh) * | 2021-12-16 | 2022-01-14 | 飞腾信息技术有限公司 | 密码运算方法、片上系统及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020253234A1 (zh) | 实现隐私保护的数据同态加解密方法及装置 | |
US11159305B2 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
Liu et al. | Efficient and privacy-preserving outsourced calculation of rational numbers | |
US20230087864A1 (en) | Secure multi-party computation method and apparatus, device, and storage medium | |
CN109299149B (zh) | 数据查询方法、计算设备以及系统 | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
US20030138105A1 (en) | Storing keys in a cryptology device | |
JP5762232B2 (ja) | プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
US20220045840A1 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
CN114124343B (zh) | 保护隐私的风险评分信息查询方法、装置、系统及设备 | |
US20220417018A1 (en) | Cryptographic Pseudonym Mapping Method, Computer System, Computer Program And Computer-Readable Medium | |
Lepoint et al. | Private join and compute from PIR with default | |
Moon et al. | An Efficient Encrypted Floating‐Point Representation Using HEAAN and TFHE | |
Corena et al. | Secure and fast aggregation of financial data in cloud-based expense tracking applications | |
US20220413807A1 (en) | Secure random number generation system, secure computation apparatus, secure random number generation method, and program | |
US11101981B2 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
US20220069980A1 (en) | Information processing apparatus, secure computation method, and program | |
CN114144783B (zh) | 密码假名映射方法、计算机系统、计算机程序和计算机可读介质 | |
JP4706811B2 (ja) | 依頼計算を用いた演算装置、及び記録媒体 | |
CN115333741A (zh) | 数据处理方法、片上系统和计算设备 | |
CN112836239A (zh) | 保护隐私的双方协同确定目标对象数据的方法及装置 | |
CN115918028A (zh) | 对同态密文执行统计操作的装置及其方法 | |
CN114024674B (zh) | 两方安全比较的方法及系统 | |
KR20050064645A (ko) | 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221111 |
|
RJ01 | Rejection of invention patent application after publication |