CN115129297B - 多点乘运算***、方法、图形处理器、电子装置及设备 - Google Patents
多点乘运算***、方法、图形处理器、电子装置及设备 Download PDFInfo
- Publication number
- CN115129297B CN115129297B CN202211043709.0A CN202211043709A CN115129297B CN 115129297 B CN115129297 B CN 115129297B CN 202211043709 A CN202211043709 A CN 202211043709A CN 115129297 B CN115129297 B CN 115129297B
- Authority
- CN
- China
- Prior art keywords
- point
- cycle
- target
- target point
- preset
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000009467 reduction Effects 0.000 claims description 18
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/724—Finite field arithmetic
- G06F7/725—Finite field arithmetic over elliptic curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
Abstract
本公开涉及数据处理领域,提供一种多点乘运算***、图形处理器、电子装置、电子设备及多点乘运算方法,旨在减少多点乘运算所需占用的存储空间。其中,多点乘运算***包括控制模块和倍点模块,控制模块被配置为:在第i‑1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中利用预设要素更新目标点R,并将第一信号置为第一预设值;倍点模块被配置为:在第i‑1次循环更新的目标点R不等于无穷远点的情况下,如果第一信号为第一预设值,则在第i次循环中对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数执行倍点运算。
Description
技术领域
本公开涉及数据处理领域,尤其涉及一种多点乘运算***、图形处理器、电子装置、电子设备及多点乘运算方法。
背景技术
在验签流程中,涉及多点乘运算kP+tQ,其中k和t属于标量,P和Q均为椭圆曲线上的坐标点。为了加速多点乘运算,通常会采用低汉明重表示方式(例如联合稀疏或非相邻表示等方式),将多点乘运算中的标量转换成多组系数,并会根据坐标点P和Q,计算出坐标点A、S、U、V、B以及D,将坐标点P、Q、A、S、U、V、B以及D作为预设要素并保存。其中,U等于负A,V等于负S,B等于负P,D等于负Q。接着,循环遍历每组系数,根据遍历到的每组系数,确定该组系数对应的预设要素,并利用该预设要素更新目标点R。在遍历完全部系数后,将最终的目标点R确定为多点乘运算结果。
可以看出,上述过程中需要预先保存P、Q、A、S、U、V、B以及D等8个预设要素,然而由于椭圆曲线运算中的数据通常是不低于256位的大数,因此这8个预设要素所需占用的存储空间较大,导致存储模块的面积较大,也增加了芯片成本。
发明内容
本公开的目的是提供一种多点乘运算***、图形处理器、电子装置、电子设备及多点乘运算方法,在不显著影响多点乘运算速率的条件下,减少多点乘运算所需占用的存储空间。
根据本公开的一个方面,提供一种多点乘运算***,该***包括:控制模块和倍点模块;
控制模块被配置为:在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R,并将第一信号置为第一预设值;其中,多点乘运算包括根据多组系数通过多次循环对目标点R进行更新,多组系数是对多点乘运算的多个标量进行转换后得到的;
倍点模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第一信号为第一预设值,则在第i次循环中对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对目标点R执行倍点运算。
本公开一种可行的实现方式中,控制模块还被配置为:在第一事件和第二事件之间,将第一信号置为第二预设值;第一事件是指:倍点模块在第i次循环中读取第一信号;第二事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,倍点模块在第i+1次循环中读取第一信号。
本公开一种可行的实现方式中,倍点模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第一信号为第二预设值,则在第i次循环中对目标点R执行原始倍点运算。
本公开一种可行的实现方式中,控制模块还被配置为:在第一事件和第三事件之间,将第一信号置为第二预设值;第一事件是指:倍点模块在第i次循环中读取第一信号;第三事件是指:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定目标要素;
或者,控制模块还被配置为:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定出目标要素为预设要素后,将第一信号置为第二预设值。
本公开一种可行的实现方式中,***还包括:点加模块;
控制模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则将第二信号置为第三预设值;
点加模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第二信号为第三预设值,则在第i次循环中从存储模块获取预设要素,将第i次循环中倍点运算后的目标点R与预设要素相减,并利用相减结果更新目标点R。
本公开一种可行的实现方式中,控制模块还被配置为:在第***和第五事件之间,将第二信号置为第四预设值;第***是指:点加模块在第i次循环中读取第二信号;第五事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,点加模块在第i+1次循环中读取第二信号。
本公开一种可行的实现方式中,点加模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第二信号为第四预设值,则在第i次循环中从存储模块获取预设要素,将第i次循环中倍点运算后的目标点R与预设要素相加,并利用相加结果更新目标点R。
本公开一种可行的实现方式中,点加模块具体被配置为:将点加模块的输入端与存储模块的多个存储部分中的目标存储部分连接,以获取目标存储部分存储的预设要素。
本公开一种可行的实现方式中,控制模块还被配置为:在当前循环中从存储模块读取上一次循环更新的目标点R,在利用预设要素更新目标点R后,将更新后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R;
倍点模块还被配置为:在当前循环中从存储模块读取上一次循环更新的目标点R,在对读取的目标点R执行倍点运算后,将倍点运算后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R;
点加模块还被配置为:在当前循环中从存储模块读取当前循环中倍点运算后的目标点R;在利用相减结果/相加结果更新目标点R后,将更新后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R。
本公开一种可行的实现方式中,多组系数是通过以下方式转换得到的:将参与多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。
本公开一种可行的实现方式中,每个标量的转换方式为低汉明重转换方式。
本公开一种可行的实现方式中,预设要素是根据参与多点乘运算的坐标点计算出的坐标点。
根据本公开的另一方面,还提供一种图形处理器,该图形处理器包括上述任一实施例中所述的多点乘运算***。
根据本公开的另一方面,还提供一种电子装置,该电子装置包括上述图形处理器。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为集成了图形处理器的主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种多点乘运算方法,包括:
在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R;
在第i+1次循环中对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对目标点R执行倍点运算。
本公开一种可行的实现方式中,多点乘运算方法还包括:
在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R;
在第i+1次循环中对目标点R执行原始倍点运算。
本公开一种可行的实现方式中,多点乘运算方法还包括:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素的负值,则在第i+1次循环中从存储模块获取预设要素,将第i+1次循环中倍点运算后的目标点R与预设要素相减,并利用相减结果更新目标点R。
本公开一种可行的实现方式中,多点乘运算方法还包括:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素,则在第i+1次循环中从存储模块获取预设要素,将第i+1次循环中倍点运算后的目标点R与预设要素相加,并利用相加结果更新目标点R。
本公开一种可行的实现方式中,在执行循环操作之前,多点乘运算方法还包括:
将参与多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。
本公开一种可行的实现方式中,每个标量的转换方式为低汉明重转换方式。
本公开一种可行的实现方式中,在执行循环操作之前,多点乘运算方法还包括:
根据参与多点乘运算的坐标点计算预设要素;
将预设要素转换为仿射坐标形式的预设要素;
对转换成仿射坐标形式的预设要素进行存储。
附图说明
图1是本公开一实施例提供的多点乘运算***的结构示意图;
图2是本公开一实施例提供的多点乘运算方法的流程示意图;
图3是本公开另一实施例提供的多点乘运算方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
在验签流程中,涉及多点乘运算(也称为多标量乘运算)。为了加速多点乘运算,通常会采用联合稀疏或非相邻表示等方式,将多点乘运算中的标量转换成多组系数,并会根据多点乘运算中的坐标点,计算出多个其他坐标点并存储。接着,循环遍历每组系数,根据遍历到的每组系数,确定该组系数对应的坐标点,并利用确定出的坐标点更新目标点R。在遍历完全部系数后,将最终的目标点R确定为多点乘运算结果。
为便于理解,以两个点乘kP+tQ这一多点乘运算为例,其中k和t属于标量,P和Q均为椭圆曲线上的坐标点。为了加速多点乘运算,通常会采用联合稀疏或非相邻表示等方式,将多点乘运算中的标量转换成多组系数,并会根据坐标点P和Q,计算出坐标点A、S、U、V、B以及D,将坐标点P、Q、A、S、U、V、B以及D作为预设要素并保存。其中,U等于负A,V等于负S,B等于负P,D等于负Q。需要说明的是,本公开中一个坐标点等于另一个坐标点的负值,或者两个坐标点互为相反数,具体是指两个坐标点的Y坐标值互为相反数。比如U等于负A,具体是指U的Y坐标值与A的Y坐标值互为相反数,即。
接着,循环遍历每组系数,根据遍历到的每组系数,确定该组系数对应的预设要素,并利用该预设要素更新目标点R。在遍历完全部系数后,将最终的目标点R确定为多点乘运算结果。
可以看出,上述过程中需要预先保存P、Q、A、S、U、V、B以及D等8个预设要素,然而由于椭圆曲线运算中的数据通常是不低于256位的大数,因此这8个预设要素所需占用的存储空间较大,导致存储模块的面积较大,也增加了芯片成本。
为了在不显著影响多点乘运算速率的条件下,减少多点乘运算所需占用的存储空间,本公开提供一种多点乘运算***、图形处理器、电子装置、电子设备及多点乘运算方法。
参考图1,图1是本公开一实施例提供的多点乘运算***的结构示意图。如图1所示,***包括控制模块和倍点模块。
控制模块被配置为:在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R,并将第一信号置为第一预设值。
倍点模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第一信号为第一预设值,则在第i次循环中对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对目标点R执行倍点运算。
在一些实施例中,利用预设要素更新目标点R是指:将预设要素赋值给目标点R。换言之,将预设要素作为新的目标点R。
在一些实施例中,第一预设值等于1。在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R,并将第一信号置为1。需要说明的是,第一预设值等于1是本公开的多种实施例中的一种,例如在其它实施例中,第一预设值等于0。本公开对第一预设值的具体数值不做限定。
本公开中,多点乘运算包括:根据多组系数通过多次循环对目标点R进行更新,多组系数是对多点乘运算的多个标量进行转换后得到的。
在一些实施例中,多组系数是通过以下方式转换得到的:将参与多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。具体地,每个标量的转换方式为低汉明重转换方式。低汉明重转换方式包括但不限于:联合稀疏方式(JSF,jointsparse form)、非相邻表示方式(NAF,Non-adjacent form)。
为便于理解,以联合稀疏方式对标量进行转换为例,可以将多点乘运算kP+tQ中的标量k转换为:
同样地,可以将标量将多点乘运算kP+tQ中的标量t转换为:
对标量k和标量t进行上述转换后,将k[e-1]和t[e-1]作为一组系数,将k[e-2]和t[e-2]作为一组系数...将k[1]和t[1]作为一组系数,将k[0]和t[0]作为一组系数,从而得到多组系数。其中,k[e-1]和t[e-1]非负且至少有一个非0,其余系数的取值范围是{0,1,-1}。
在一些实施例中,预设要素是根据参与多点乘运算的坐标点计算出的坐标点。为了加速运算,可以在执行循环操作之前,根据参与多点乘运算的坐标点计算出预设要素,并保存预设要素。
为便于理解,以多点乘运算kP+tQ为例,在执行循环操作之前,计算出坐标点A和S,并将坐标点P、Q、A以及S作为预设要素保存。其中,A等于P加Q,S等于P减Q。
需要说明的是,每组系数分别对应一个预设要素。例如当k[e-2]等于1且t[e-2]等于0时,对应坐标点P。当k[e-2]等于0且t[e-2]等于1时,对应坐标点Q。当k[e-2]等于1且t[e-2]等于1时,对应坐标点A。当k[e-2]等于1且t[e-2]等于-1时,对应坐标点S。本公开在执行循环操作时,控制模块会判断第i-1次循环(即上一次循环)更新的目标点R是否等于无穷远点。比如在第i-1次循环中,目标点R由被更新为。则在第i次循环(即本次循环)中,控制模块会判断是否等于无穷远点。如果控制模块确定第i-1次循环更新的目标点R等于无穷远点,则在第i次循环中,控制模块会根据第i次循环对应的一组系数(即第i组系数)确定目标要素,并利用目标要素更新目标点R。如果控制模块确定第i-1次循环更新的目标点R不等于无穷远点,则第i次循环中,倍点模块会对目标点R执行倍点运算,然后其他模块还可能对倍点运算后的目标点R执行其他运算(例如点加模块可以对倍点运算后的目标点R和预设要素执行点加运算)。
具体地,如果在第i次循环中,控制模块确定第i-1次循环更新的目标点R等于无穷远点,则控制模块会根据本次循环对应的一组系数确定目标要素,如果确定出的目标要素为某一预设要素的负值,则从存储模块获取该预设要素,利用该预设要素更新目标点R。为便于理解,例如控制模块根据本次循环对应的一组系数[0,-1],确定出目标要素为坐标点D,由于D等于负Q,于是从存储模块获取预设要素Q,并根据预设要素Q更新目标点R。
本公开中,为了表征循环中是否采用了实际的目标要素更新目标点R,设置了第一信号。如果控制模块没有采用实际的目标要素更新目标点R,而是采用目标要素的相反数(例如Q是D的相反数)更新目标点R,则控制模块将第一信号置为第一预设值,并结束本次循环。换言之,如果第一信号为第一预设值,则说明控制模块没有采用实际的目标要素更新目标点R,而是采用了目标要素的相反数更新目标点R。
如果在第i次循环中,控制模块确定第i-1次循环更新的目标点R不等于无穷远点,则倍点模块会根据第一信号的信号值执行倍点运算。其中,如果第一信号为第一预设值,则说明控制模块在第i-1次循环中,采用了目标要素的相反数更新目标点R。因此,此时的目标点R是真实目标点R的相反数。如此,在第i次循环中,倍点模块通过将原始倍点运算中的减数与被减数对调,并根据对调后的减数与被减数对目标点R执行倍点运算,从而使得倍点运算后的目标点R等于真实的目标点R。为便于理解,例如原始倍点运算为:
在一些实施例中,倍点运算实际上减数和被减数之间的模减运算,而模减运算的输入为减数和被减数的存储地址。本公开中,当需要对调减数和被减数时,可以在输入减数和被减数的存储地址时,将两者的存储地址进行对调。例如减数存储地址aaddr=5,被减数存储地址baddr=7,在模减运算时,输入的减数存储地址aaddr=7,输入的被减数存储地址baddr=5。
本公开中,在第i-1次循环中没有采用实际的目标要素(例如D)更新目标点R,而是采用了目标要素的相反数(例如Q)更新目标点R。因此只需要存储P、Q、A、S等预设要素,而不需要存储U、V、B、D等要素,可以有效减少多点乘运算所需占用的存储空间。
此外,由于第i-1次循环中没有采用实际的目标要素(例如D)更新目标点R,而是采用了目标要素的相反数素(例如Q)更新目标点R,并且在第i次循环中,通过对调原始倍点运算中的减数和被减数,并根据对调后的减数和被减数对目标点R执行倍点运算。如此,可以在倍点运算的同时,弥补了第i-1次循环中本应执行的取反操作(比如对预设要素进行取反后,再利用取反后的预设要素更新目标点R;或者在利用预设要素更新目标点R后,对目标点R进行取反)。本公开由于不需要额外执行一次取反操作,因此不会引入明显的计算开销,从而不会显著影响多点乘运算速率。总言之,本公开在不显著影响多点乘运算速率的条件下,减少了多点乘运算所需占用的存储空间。
在一些实施例中,控制模块还被配置为:在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R,并将第一信号置为第二预设值,或者在第一信号已经是第二预设值的情况下,保持第一信号为第二预设值。
为便于理解,例如控制模块会根据本次循环对应的一组系数[0,1],确定出目标要素为预设要素Q,于是从存储模块获取预设要素Q,并根据预设要素Q更新目标点R。由于本次循环中,控制模块利用实际的目标要素更新了目标点R,而不是利用目标要素的相反数更新目标点R,因此将第一信号置为第二预设值,或者将第一信号保持为第二预设值。
在一些实施例中,第二预设值等于0。需要说明的是,第二预设值等于0是本公开的多种实施例中的一种,例如在其它实施例中,第二预设值等于1。本公开对第二预设值的具体数值不做限定。
在一些实施例中,控制模块还被配置为:在第一事件和第二事件之间,将第一信号置为第二预设值;第一事件是指:倍点模块在第i次循环中读取第一信号;第二事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,倍点模块在第i+1次循环中读取第一信号。
需要说明的是,当第一信号为第二预设值时,说明此时的目标点R等于真实的目标点R。
还需要说明的是,控制模块可以在第一事件和第二事件之间的任意时刻,将第一信号置为第二预设值,本公开对具体时刻不做限定。例如在一些具体实施方式中,控制模块可以在倍点模块执行完倍点运算后,将第一信号置为第二预设值,从而表示此时的目标点R等于真实的目标点R。或者在另一些具体实施方式中,在倍点运算模块执行倍点运算后,控制模块暂时不将第一信号置为第二预设值,而是在下一次循环时当目标点R被确定为不是无穷远点时,控制模块才将第一信号置为第二预设值,从而表示此时的目标点R等于真实的目标点R。
在一些实施例中,倍点模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第一信号为第二预设值,则在第i次循环中对目标点R执行原始倍点运算。
具体地,如果在第i次循环中,控制模块确定目标点R不等于无穷远点,则倍点模块会根据第一信号的信号值执行倍点运算。其中,如果第一信号为第二预设值,则说明此时的目标点R是真实目标点R。如此,在第i次循环中,倍点模块会对目标点R执行原始倍点运算:
在一些实施例中,控制模块还被配置为:在第一事件和第三事件之间,将第一信号置为第二预设值;第一事件是指:倍点模块在第i次循环中读取第一信号;第三事件是指:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定目标要素。或者,控制模块还被配置为:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定出目标要素为预设要素后,将第一信号置为第二预设值。
例如在一些具体实施方式中,控制模块可以在倍点模块执行完倍点运算后,将第一信号置为第二预设值,从而表示此时的目标点R等于真实的目标点R。或者在另一些具体实施方式中,在倍点运算模块执行倍点运算后,控制模块暂时不将第一信号置为第二预设值,而是在下一次循环时当目标点R被确定为无穷远点时,控制模块才将第一信号置为第二预设值,从而表示此时的目标点R等于真实的目标点R。
如图1所示,在一些实施例中,***还可以包括点加模块。
控制模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则将第二信号置为第三预设值。
点加模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第二信号为第三预设值,则在第i次循环中从存储模块获取预设要素,将第i次循环中倍点运算后的目标点R与预设要素相减,并利用相减结果更新目标点R。
本公开中,在第i次循环(即本次循环)中,控制模块会判断目标点R是否等于无穷远点。如果控制模块确定目标点R不等于无穷远点,则第i次循环中,当倍点模块对目标点R执行倍点运算(包括原始倍点运算或者对调减数和被减数数后的倍点运算)后,点加模块可以对倍点运算后的目标点R和预设要素执行点加运算。
具体地,如果在第i次循环中,控制模块确定目标点R不等于无穷远点,则控制模块会根据本次循环对应的一组系数确定目标要素,如果确定出的目标要素为某一预设要素的负值,则将第二信号置为第三预设值。为便于理解,例如控制模块会根据本次循环对应的一组系数[-1,1],确定出目标要素为坐标点V,由于V等于负的预设要素S,于是控制模块将第二信号置为第三预设值。本公开中,通过将第二信号置为第三预设值,以指示点加模块执行相减运算。
当倍点运算模块根据第一信号对目标点R执行倍点运算后,点加模块从存储模块获取目标要素(例如V)对应的预设要素(例如S)。点加模块读取到第二信号为第三预设值,于是对目标点R和预设要素执行相减操作,即R-S,然后利用相减结果更新目标点R。为便于理解,例如,,,,则;其中:
本公开中,由于只需要存储P、Q、A、S等预设要素,而不需要存储U、V、B、D等要素,可以有效减少多点乘运算所需占用的存储空间。此外,由于点加模块在进行运算时,如果第二信号为第三预设值,则直接对目标点R和预设要素执行相减操作,不需要对预设要素额外执行一次取反操作,因此不会引入明显的计算开销,从而不会显著影响多点乘运算速率。总言之,本公开在不显著影响多点乘运算速率的条件下,减少了多点乘运算所需占用的存储空间。
在一些实施例中,第三预设值等于1。需要说明的是,第三预设值等于1是本公开的多种实施例中的一种,例如在其它实施例中,第三预设值等于0。本公开对第三预设值的具体数值不做限定。
在一些实施例中,控制模块还被配置为:在第***和第五事件之间,将第二信号置为第四预设值;第***是指:点加模块在第i次循环中读取第二信号;第五事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,点加模块在第i+1次循环中读取第二信号。
需要说明的是,当第二信号为第四预设值时,用于指示点加模块对目标点R和预设要素执行相加运算。
还需要说明的是,控制模块可以在第***和第五事件之间的任意时刻,将第二信号置为第四预设值,本公开对具体时刻不做限定。例如在一些具体实施方式中,控制模块可以在点加模块执行完目标点R和预设要素的相减操作后,将第二信号置为第四预设值。或者在另一些具体实施方式中,在倍点运算模块执行倍点运算后,控制模块暂时不将第一信号置为第二预设值,而是在下一次循环时当目标点R被确定为不是无穷远点时,控制模块才将第二信号置为第四预设值。或者在另一些具体实施方式中,在倍点运算模块执行倍点运算后,控制模块暂时不将第一信号置为第二预设值,而是在下一次循环时当目标点R被确定为不是无穷远点,并且倍点模块执行完倍点运算后,控制模块才将第二信号置为第四预设值。
在一些实施例中,第四预设值等于0。需要说明的是,第四预设值等于0是本公开的多种实施例中的一种,例如在其它实施例中,第四预设值等于1。本公开对第四预设值的具体数值不做限定。
在一些实施例中,点加模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果第二信号为第四预设值,则在第i次循环中从存储模块获取预设要素,将第i次循环中倍点运算后的目标点R与预设要素相加,并利用相加结果更新目标点R。
具体地,当倍点运算模块根据第一信号对目标点R执行倍点运算后,点加模块从存储模块获取预设要素。点加模块读取到第二信号为第四预设值,于是对目标点R和预设要素执行相加操作,然后利用相加结果更新目标点R。为便于理解,例如,,,,则;其中:
在一些实施例中,点加模块具体被配置为:将点加模块的输入端与存储模块的多个存储部分中的目标存储部分连接,以获取目标存储部分存储的预设要素。
具体地,存储模块包括多个存储部分,每个存储要素分别存储在不同的存储部分。当控制模块根据本次循环对应的一组系数确定出目标要素后,目标要素等于某一预设要素,或者等于该预设要素的负值。点加模块与存储该预设要素的存储部分连接,从而获取该预设要素。
如图1所示,在一些实施例中,控制模块还被配置为:在当前循环中从存储模块读取上一次循环更新的目标点R,在利用预设要素更新目标点R后,将更新后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R;
倍点模块还被配置为:在当前循环中从存储模块读取上一次循环更新的目标点R,在对读取的目标点R执行倍点运算后,将倍点运算后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R;
点加模块还被配置为:在当前循环中从存储模块读取当前循环中倍点运算后的目标点R;在利用相减结果/相加结果更新目标点R后,将更新后的目标点R存储至存储模块,以覆盖存储模块已经存储的目标点R。
本公开中,存储模块可以是一个存储装置(例如RAM或者寄存器),该存储装置用于存储标量k和s对应的多组系数,还用于存储预设要素P、Q、A以及S,还用于存储目标点R。或者存储模块也可以是由多个存储装置形成的***,多个存储装置中的部分存储装置用于存储标量k和s对应的多组系数,部分存储装置用于存储预设要素P、Q、A以及S,部分存储装置用于存储存储目标点R,每个存储装置可以是RAM或者寄存器。
本公开具体实现时,在每一次循环期间,控制模块从存储模块读取出目标点R(即上一次循环更新的目标点R),控制模块判断读取出的目标点R是否等于无穷远点。
如果读取的目标点R等于无穷远点,则控制模块根据本次循环对应的系数确定目标要素,无论目标要素是预设要素还是预设要素的负值,存储模块中的相应预设要素会被读取出,并将作为新的目标点R被存储至存储模块,从而覆盖存储模块中已经存储的目标点R。当新的目标点R存储至存储模块后,本次循环结束。例如,控制模块根据本次循环对应的系数确定目标要素为预设要素S或者预设要素S的负值(即坐标点V),则存储模块中的预设要素S会被读取出,并将作为新的目标点R被存储至存储模块。
如果读取的目标点R不等于无穷远点,则倍点模块从存储模块读取出目标点R(即上一次循环更新的目标点R),并根据第一信号的信号值,对读取的目标点R执行倍点运算,然后将倍点运算后的目标点R存储至存储模块,从而覆盖存储模块中已经存储的目标点R。接着,点加模块从存储模块读取出目标点R(即本次循环期间经过倍点运算后的目标点R),并根据第二信号的信号值,对读取的目标点R和预设要素执行相加或相减操作,然后将相加结果或相减结果作为新的目标点R,并将该目标点R存储至存储模块,从而覆盖存储模块中已经存储的目标点R。点加模块将新的目标点R存储至存储模块后,本次循环结束。
本公开实施例还提供一种图形处理器,该图形处理器包括上述任一实施例中所述的多点乘运算***。在一些使用场景下,该图形处理器的产品形式体现为芯片。
本公开实施例还提供一种电子装置,该电子装置包括上述任一实施例中的图形处理器。在一些使用场景下,该电子装置的产品形式体现为显卡;在另一些使用场景下,该电子装置的产品形式体现为集成了图形处理器的主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子装置。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
参考图2,图2是本公开一实施例提供的多点乘运算方法的流程示意图。考虑到本公开提供的多点乘运算方法与上述多点乘运算***基于同一发明构思,为了避免重读,以下对多点乘运算方法做简要介绍。对于多点乘运算方法的具体实现,可参考上述实施例。
如图2所示,该方法包括以下步骤:
S210:在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R。
S220:在第i+1次循环中对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对目标点R执行倍点运算。
本公开中,第i次循环可以理解成本次循环,也即当前循环,第i-1次循环可以理解成上一次循环,第i+1次循环可以理解成下一次循环。本公开中,在上一次循环更新的目标点R等于无穷远点的情况下,本次循环期间需要根据本次循环对应的系数确定目标要素,并利用目标要素更新目标点R。
其中,如果本次循环期间确定的目标要素等于预设要素的负值,则利用该预设要素本身更新目标点R,而不是利用目标要素(即预设要素的负值)更新目标点R。接着,在下一次循环中,会对目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对目标点R执行倍点运算。
在一些实施例中,该方法还包括以下步骤:
在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素,则在第i次循环中从存储模块获取预设要素,利用预设要素更新目标点R;在第i+1次循环中对目标点R执行原始倍点运算。
本公开中,在上一次循环更新的目标点R等于无穷远点的情况下,本次循环期间需要根据本次循环对应的系数确定目标要素,并利用目标要素更新目标点R。
其中,如果本次循环期间确定的目标要素等于预设要素,则利用该预设要素更新目标点R。换言之,利用实际的目标要素更新目标点R。接着,在下一次循环中,会对目标点R执行原始倍点运算。
在一些实施例中,该方法还包括以下步骤:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素的负值,则在第i+1次循环中从存储模块获取预设要素,将第i+1次循环中倍点运算后的目标点R与预设要素相减,并利用相减结果更新目标点R。
在一些实施例中,该方法还包括以下步骤:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素,则在第i+1次循环中从存储模块获取预设要素,将第i+1次循环中倍点运算后的目标点R与预设要素相加,并利用相加结果更新目标点R。
本公开中,在第i+1次循环中,一方面,如前所述,会对目标点R执行原始倍点运算,或者对原始倍点运算中的减数和被减数进行对调后,根据对调后的减数和被减数执行倍点运算;另一方面,会将倍点运算后的目标点R与预设要素相加或相减,并将相加结果或相减结果作为新的目标点R。
在一些实施例中,在执行循环操作之前,该方法还包括以下步骤:
将参与多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。
在一些实施例中,每个标量的转换方式为低汉明重转换方式。低汉明重转换方式包括但不限于:联合稀疏方式(JSF,joint sparse form)、非相邻表示方式(NAF,Non-adjacent form)。
在一些实施例中,在执行循环操作之前,该方法还包括以下步骤:
根据参与多点乘运算的坐标点计算预设要素;将预设要素转换为仿射坐标形式的预设要素;对转换成仿射坐标形式的预设要素进行存储。
参考图3,图3是本公开另一实施例提供的多点乘运算方法的流程示意图。结合图3,本公开对多点乘运算方法进行详细说明。
以多点乘运算kP+tQ为例,其中k和t属于参与多点乘运算的两个标量,P和Q属于参与多点乘运算的坐标点。首先需要将k和t转换成多组系数,如前所述,可以采用联合稀疏方式对标量k和t分别进行转换,从而得到{k[e-1],t[e-1]}、{k[e-2],t[e-2]}...{k[1],t[1]}、{k[0],t[0]}等多组系数。并且,还根据坐标点P和Q计算出坐标点A和坐标点S,其中坐标点A等于P+Q,坐标点S等于P-Q,然后将坐标点P、Q、A以及S作为预设要素并保存。
然后结合图3,按照以下步骤进行处理。其中,步骤“2”是一种循环操作,每一次循环需要根据上一次循环更新的目标点R,选择执行步骤2.1或步骤2.2。其中,如果上一次循环更新的目标点R等于无穷远点,则执行步骤2.1,如果上一次循环更新的目标点R不等于无穷远点,则执行步骤2.2。
步骤1:
若{k[e-1],t[e-1]}={1,1},则R←A;
若{k[e-1],t[e-1]}={1,0},则R←P;
若{k[e-1],t[e-1]}={0,1},则R←Q;
其中,←表示将箭头右侧的值赋值给箭头左侧的变量,例如R←A表示将坐标点A赋值给坐标点R,换言之,利用坐标点A更新坐标点R,也即将坐标点A作为新的坐标点R。
步骤2:
另i∈{e-2、e-3...1、0},按照i从大到小的顺序进行循环,直至i小于0,具体如下:
步骤2.1:若上一次循环更新的目标点R等于无穷远点,则:
若{k[i],t[i]}={0,1},则R←Q;
若{k[i],t[i]}={0,-1},则R←Q,pdbl_sub←1;
若{k[i],t[i]}={1,0},则R←P;
若{k[i],t[i]}={1,1},则R←A;
若{k[i],t[i]}={1,-1},则R←S;
若{k[i],t[i]}={-1,0},则R←P,pdbl_sub←1;
若{k[i],t[i]}=={-1,1},则R←S,pdbl_sub←1;
若{k[i],t[i]}={-1,-1},则R←A,pdbl_sub←1;
其中,pdbl_sub表示第一信号,pdbl_sub←1表示将第一信号置为1,或者表示将第一信号置为高电平。
步骤2.2:若上一次循环更新的目标点R不等于无穷远点,则:
子步骤2.2.1:
若pdbl_sub =1,则R←-2R,pdbl_sub←0,结束子步骤2.2.1;
若pdbl_sub =0,则R←2R,结束子步骤2.2.1;
其中,-2R是指对原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数执行倍点运算,R←-2R是指利用倍点运算后的目标点R更新原目标点R;pdbl_sub←0表示将第一信号置为0,或者表示将第一信号置为低电平;2R是指原始倍点运算,R←2R是指利用原始倍点运算后的目标点R更新原目标点R。
子步骤2.2.2:
若{k[i],t[i]}={0,1},则R←R+Q;
若{k[i],t[i]}={0,-1},则R←R-Q;
若{k[i],t[i]}={1,0},则R←R+P;
若{k[i],t[i]}={1,1},则R←R+A;
若{k[i],t[i]}={1,-1},则R←R+S;
若{k[i],t[i]}={-1,0},则R←R-P;
若{k[i],t[i]}=={-1,1},则R←R-S;
若{k[i],t[i]}={-1,-1},则R←R-A。
还需要说明的是,本公开在实施期间,如果第i-1次循环更新的目标点R等于无穷远点,则在第i次循环中,如前所述,会利用预设要素(例如坐标点P、Q、S或者A)更新目标点R,从而结束第i次循环。由于预设要素并不是无穷远点,因此第i次循环更新的目标点R必定不是无穷远点,所以在第i+1次循环中,也可以不再判断第i次循环更新的目标点R是否等于无穷远点,而是可以直接根据第一信号的信号值,执行相应的倍点运算。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (20)
1.一种多点乘运算***,所述***包括:控制模块和倍点模块;
所述控制模块被配置为:在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取所述预设要素,利用所述预设要素更新所述目标点R,并将第一信号置为第一预设值;其中,所述多点乘运算包括根据多组系数通过多次循环对所述目标点R进行更新;所述预设要素是参与所述多点乘运算的坐标点本身,或者是根据参与所述多点乘运算的坐标点计算出的坐标点;所述多组系数是通过以下方式转换得到的:将参与所述多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数;
所述倍点模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果所述第一信号为第一预设值,则在第i次循环中对所述目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对所述目标点R执行倍点运算。
2.根据权利要求1所述的***,所述控制模块还被配置为:在第一事件和第二事件之间,将所述第一信号置为第二预设值;所述第一事件是指:所述倍点模块在第i次循环中读取所述第一信号;所述第二事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,所述倍点模块在第i+1次循环中读取所述第一信号。
3.根据权利要求2所述的***,所述倍点模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果所述第一信号为第二预设值,则在第i次循环中对所述目标点R执行原始倍点运算。
4.根据权利要求1所述的***,所述控制模块还被配置为:在第一事件和第三事件之间,将所述第一信号置为第二预设值;所述第一事件是指:所述倍点模块在第i次循环中读取所述第一信号;所述第三事件是指:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定目标要素;
或者,所述控制模块还被配置为:在第i次循环更新的目标点R等于无穷远点的情况下,在第i+1次循环中根据第i+1组系数确定出目标要素为预设要素后,将所述第一信号置为第二预设值。
5.根据权利要求1所述的***,所述***还包括:点加模块;
所述控制模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则将第二信号置为第三预设值;
所述点加模块被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果所述第二信号为第三预设值,则在第i次循环中从所述存储模块获取所述预设要素,将第i次循环中倍点运算后的目标点R与所述预设要素相减,并利用相减结果更新目标点R。
6.根据权利要求5所述的***,所述控制模块还被配置为:在第***和第五事件之间,将所述第二信号置为第四预设值;所述第***是指:所述点加模块在第i次循环中读取所述第二信号;所述第五事件是指:在第i次循环更新的目标点R不等于无穷远点的情况下,所述点加模块在第i+1次循环中读取所述第二信号。
7.根据权利要求5所述的***,所述点加模块还被配置为:在第i-1次循环更新的目标点R不等于无穷远点的情况下,如果所述第二信号为第四预设值,则在第i次循环中从所述存储模块获取所述预设要素,将第i次循环中倍点运算后的目标点R与所述预设要素相加,并利用相加结果更新目标点R。
8.根据权利要求5所述的***,所述点加模块具体被配置为:将点加模块的输入端与所述存储模块的多个存储部分中的目标存储部分连接,以获取目标存储部分存储的预设要素。
9.根据权利要求5至8任一项所述的***,所述控制模块还被配置为:在当前循环中从所述存储模块读取上一次循环更新的目标点R,在利用所述预设要素更新目标点R后,将更新后的目标点R存储至所述存储模块,以覆盖所述存储模块已经存储的目标点R;
所述倍点模块还被配置为:在当前循环中从所述存储模块读取上一次循环更新的目标点R,在对读取的目标点R执行倍点运算后,将倍点运算后的目标点R存储至所述存储模块,以覆盖所述存储模块已经存储的目标点R;
所述点加模块还被配置为:在当前循环中从所述存储模块读取当前循环中倍点运算后的目标点R;在利用相减结果/相加结果更新目标点R后,将更新后的目标点R存储至所述存储模块,以覆盖所述存储模块已经存储的目标点R。
10.根据权利要求1所述的***,每个标量的转换方式为低汉明重转换方式。
11.一种图形处理器,包括权利要求1至10任一项所述的***。
12.一种电子装置,包括权利要求11所述的图形处理器。
13.一种电子设备,包括权利要求12所述的电子装置。
14.一种多点乘运算方法,包括:
在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素的负值,则在第i次循环中从存储模块获取所述预设要素,利用所述预设要素更新所述目标点R;
在第i+1次循环中对所述目标点R的原始倍点运算中的减数和被减数进行对调,并根据对调后的减数和被减数对所述目标点R执行倍点运算;
其中,所述预设要素是参与所述多点乘运算的坐标点本身,或者是根据参与所述多点乘运算的坐标点计算出的坐标点;每组系数是通过以下方式转换得到的:将参与所述多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。
15.根据权利要求14所述的方法,还包括:
在第i-1次循环更新的目标点R等于无穷远点的情况下,如果在第i次循环中根据第i组系数确定的目标要素为预设要素,则在第i次循环中从存储模块获取所述预设要素,利用所述预设要素更新所述目标点R;
在第i+1次循环中对所述目标点R执行原始倍点运算。
16.根据权利要求14所述的方法,还包括:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素的负值,则在第i+1次循环中从存储模块获取所述预设要素,将第i+1次循环中倍点运算后的目标点R与所述预设要素相减,并利用相减结果更新目标点R。
17.根据权利要求14所述的方法,还包括:
如果在第i+1次循环中根据第i+1组系数确定的目标要素为预设要素,则在第i+1次循环中从存储模块获取所述预设要素,将第i+1次循环中倍点运算后的目标点R与所述预设要素相加,并利用相加结果更新目标点R。
18.根据权利要求14至17任一项所述的方法,在执行循环操作之前,还包括:
将参与所述多点乘运算的每个标量转换为N个指数运算结果各自乘以相应系数后相加的结果,每个标量的第i个指数运算结果的相应系数,共同作为一组系数,i为小于等于N的正整数。
19.根据权利要求18所述的方法,每个标量的转换方式为低汉明重转换方式。
20.根据权利要求14至17任一项所述的方法,在执行循环操作之前,还包括:
根据参与所述多点乘运算的坐标点计算所述预设要素;
将所述预设要素转换为仿射坐标形式的预设要素;
对转换成仿射坐标形式的预设要素进行存储。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043709.0A CN115129297B (zh) | 2022-08-30 | 2022-08-30 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
PCT/CN2023/091551 WO2024045665A1 (zh) | 2022-08-30 | 2023-04-28 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211043709.0A CN115129297B (zh) | 2022-08-30 | 2022-08-30 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115129297A CN115129297A (zh) | 2022-09-30 |
CN115129297B true CN115129297B (zh) | 2022-12-13 |
Family
ID=83387352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211043709.0A Active CN115129297B (zh) | 2022-08-30 | 2022-08-30 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115129297B (zh) |
WO (1) | WO2024045665A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115129297B (zh) * | 2022-08-30 | 2022-12-13 | 北京象帝先计算技术有限公司 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966324A (zh) * | 2020-08-19 | 2020-11-20 | 哈尔滨理工大学 | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 |
WO2021228239A1 (zh) * | 2020-05-15 | 2021-11-18 | 支付宝(杭州)信息技术有限公司 | 资产类型一致性证据生成、交易、交易验证方法及*** |
CN113794572A (zh) * | 2021-09-28 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种高性能椭圆曲线数字签名与验签的硬件实现***和方法 |
CN114465735A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 验签***、电子装置、电子设备及验签方法 |
CN114553425A (zh) * | 2022-02-25 | 2022-05-27 | 东南大学 | 基于高性能模逆的椭圆数字签名曲线硬件实现方法及*** |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6457911B2 (ja) * | 2015-09-28 | 2019-01-23 | 株式会社メガチップス | スカラー倍算装置 |
CN108650087A (zh) * | 2018-05-16 | 2018-10-12 | 广东工业大学 | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 |
JP2022045614A (ja) * | 2020-09-09 | 2022-03-22 | キオクシア株式会社 | 演算装置 |
EP4027574A1 (en) * | 2021-01-11 | 2022-07-13 | Thales DIS France SA | Method for securing a multiple point multiplication operation against side-channel attacks |
CN115129297B (zh) * | 2022-08-30 | 2022-12-13 | 北京象帝先计算技术有限公司 | 多点乘运算***、方法、图形处理器、电子装置及设备 |
-
2022
- 2022-08-30 CN CN202211043709.0A patent/CN115129297B/zh active Active
-
2023
- 2023-04-28 WO PCT/CN2023/091551 patent/WO2024045665A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021228239A1 (zh) * | 2020-05-15 | 2021-11-18 | 支付宝(杭州)信息技术有限公司 | 资产类型一致性证据生成、交易、交易验证方法及*** |
CN111966324A (zh) * | 2020-08-19 | 2020-11-20 | 哈尔滨理工大学 | 面向多椭圆曲线标量乘法器的实现方法、装置及存储介质 |
CN113794572A (zh) * | 2021-09-28 | 2021-12-14 | 南京宁麒智能计算芯片研究院有限公司 | 一种高性能椭圆曲线数字签名与验签的硬件实现***和方法 |
CN114553425A (zh) * | 2022-02-25 | 2022-05-27 | 东南大学 | 基于高性能模逆的椭圆数字签名曲线硬件实现方法及*** |
CN114465735A (zh) * | 2022-04-12 | 2022-05-10 | 北京象帝先计算技术有限公司 | 验签***、电子装置、电子设备及验签方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的SM2点运算快速并行实现;李凡等;《电子测量技术》;20200808(第15期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2024045665A1 (zh) | 2024-03-07 |
CN115129297A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112214727B (zh) | 运算加速器 | |
CN108009126B (zh) | 一种计算方法及相关产品 | |
CN111310904A (zh) | 一种用于执行卷积神经网络训练的装置和方法 | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
CN111814957B (zh) | 神经网络运算方法及相关设备 | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
CN115129297B (zh) | 多点乘运算***、方法、图形处理器、电子装置及设备 | |
CN110580522A (zh) | 卷积计算方法及相关设备 | |
CN107943756B (zh) | 一种计算方法及相关产品 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN112650471A (zh) | 用于处理掩蔽数据的处理器和方法 | |
CN113342671B (zh) | 对运算模块进行验证的方法、装置、电子设备和介质 | |
CN116775544B (zh) | 一种协处理器和计算机设备 | |
CN111143240B (zh) | 图像存储方法、***及终端设备 | |
CN111158757A (zh) | 并行存取装置和方法以及芯片 | |
CN114090466A (zh) | 一种指令处理装置、方法、计算机设备及存储介质 | |
CN116382782A (zh) | 向量运算方法、向量运算器、电子设备和存储介质 | |
CN113485751A (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
CN110147873B (zh) | 卷积神经网络的处理器及训练方法 | |
WO2021031154A1 (zh) | 神经网络的特征图装载方法及设备 | |
JP5045652B2 (ja) | 相関処理装置及びその相関処理装置で読みとり可能な媒体 | |
CN113836481B (zh) | 矩阵计算电路、方法、电子设备及计算机可读存储介质 | |
CN115113848B (zh) | 签名/验签电路、装置、设备、方法及坐标还原电路 | |
JPH1063646A (ja) | 2次元逆離散コサイン変換回路 | |
CN112230884B (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 |