CN113010142B - 一种新型脉动结点式标量点乘的双域实现系统及方法 - Google Patents
一种新型脉动结点式标量点乘的双域实现系统及方法 Download PDFInfo
- Publication number
- CN113010142B CN113010142B CN202110308874.3A CN202110308874A CN113010142B CN 113010142 B CN113010142 B CN 113010142B CN 202110308874 A CN202110308874 A CN 202110308874A CN 113010142 B CN113010142 B CN 113010142B
- Authority
- CN
- China
- Prior art keywords
- node
- point
- scalar
- random
- point multiplication
- 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
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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- 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/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
-
- 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
-
- 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/722—Modular multiplication
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Nonlinear Science (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种新型脉动结点式标量点乘的双域实现系统及方法,采用随机动态建表和坐标映射推导公式计算相结合的半自主学习型设计,结合使用随机建表中的脉动结点值和高频结点值,采用推导公式中存算一体的优势,结点计算数值位置就是随机建表中的位置,实现公式映射计算值与随机建表中点值数据的交叉调用,最终实现标量点乘数据的高效带记忆式脉动结点的运算,提高标量点乘的整体实现效率;同时也提升整个标量点乘的防功耗攻击的能力,此方法主要应用在基于椭圆曲线的非对称密码学的密码服务的功能实现,重点实现Fp域上的标量点乘和Fp^2域上的标量点乘运算,从而支持SM2和SM9算法的加密解密,签名验签的应用。
Description
技术领域
本发明涉及数据加密技术领域,尤其涉及一种新型脉动结点式标量点乘的双域实现系统及方法。
背景技术
随着信息技术的不断发展和应用,数据安全性变得越来越重要,数据加密也是电子信息处理过程中不可或缺的步骤。椭圆曲线用于密码算法的安全性已经得到广大用户的认可,应用的范围也越来越广泛。
目前在基于椭圆曲线的非对称算法标量点乘的运算控制系统中,为了性能速度提升和增强执行效率,通常采用通过构造二进制分解或NAF的非邻接形式方法简化点倍与点加运算次数,或者采用标量数据高低位分解的方法实现,且上述方法均只是针对素数域Fp上的运算,同时也会存在运行效率与防功耗攻击的内在矛盾,通常受到SPA和DPA的功耗攻击。
其次,在椭圆曲线的标量点乘的计算过程中,常采用Q=kG作为基础运算,k值是采用随机发生器产生,因此上层协议算法的每次加密值和签名值的不唯一特点。但是单一的随机发生器能够提供的随机优势依旧不太能够满足现在的加密过程安全性,因此需要找到一个安全性更高的实现随机数发送的系统。
发明内容
本发明的目的在于提供一种新型脉动结点式标量点乘的双域实现系统及方法,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明采用的技术方案如下:
一种新型脉动结点式标量点乘的双域实现系统,包括标量点乘控制单元模块、随机建表单元模块和基础运算单元模块,所述标量点乘控制单元模块依据标量点乘的公式与随机建表中的脉动结点和高频结点实现标量点乘的快速调度执行过程;所述随机建表单元模块用于动态构建随机结点表的数据,提供脉动结点数据和高频结点数据供标量点乘运算使用,提高计算速度;所述基础运算单元模块用于构建随机结点,同时提供基础模运算的模加、模减、模乘和模逆的运算,以支撑标量点乘运算。
优选的,所述标量点乘控制单元模块包括控制单元子模块、双域控制单元子模块、公式运算存算单元子模块和脉动结点管理单元子模块,其中,所述控制单元子模块用于采用调用公式计算点加倍点或脉动/高频结点直接写入读取的控制以实现一个标量点乘运算;
所述双域控制单元子模块用于切换Fp域和Fp^2域,实现不同域下的标量点乘运算过程;
所述公式运算存算单元子模块主要用于采用公式法实现kG标量点乘的运算:
所述脉动结点管理单元子模块用于读取和写入脉动结点和高频结点的表内数据。
优选的,所述基础运算单元模块包括模乘运算单元、模加运算单元、模减运算单元、模逆运算单元和随机建表运算单元,其中,
所述模乘运算单元、所述模加运算单元、所述模减运算单元和所述模逆运算单元分别用于标量点乘运算中的模乘、模加、模减和模逆运算过程,所述随机建表运算单元用于实现随机建表单元模块在动态构建随机结点表时的运算过程。
本发明的另一个目的在于提供了一种新型脉动结点式标量点乘的双域实现方法,具体包括以下步骤:
S1,通过标量点乘控制单元模块,随机建表单元模块和基础运算单元模块逐步半自主学习从而构造随机结点表;
S2,以步骤S1中构建的随机结点表作为新的基础运算单元,采用标量点乘控制单元模块调用所述随机结点表,对输入的随机数和基点进行标量点乘的计算过程;
S3,高效输出步骤S2中通过标量点乘计算过程得到的计算结果数据。
优选的,步骤S1中所述的逐步半自主学习过程能够随着整个标量点乘运算的次数,逐步补充脉动结点和高频结点的数据,从而提高标量点乘的运算效率,具体包括:
S11,通过kG的公式计算,将k分解为二进制数,利用有1的位上的数据判断,保存入对应的脉动结点位置;
S12,若计算过程中,k的十进制数与高频位置的数据有匹配时,将高频结点位置的值同样进行数据保存;
S13,通过多组Kg运算后,随机结点表中的值将自主学习完成,形成脉动结点和高频结点的随机分布。
优选的,步骤S2中的对输入的随机数和基点进行标量点乘的计算过程具体包括:
S21,采用GF(p)有限域加重射影坐标系进行倍点运算,公式如下:
y3=λ1(λ2-x3)-λ3
D1=2y2*D
其中,D的初值是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为(x2,y2)点的2倍的点的坐标,当满足倍点幂方次数要求时,x3,y3为随机建表过程中的对应脉动结点的坐标值;a是椭圆曲线参数的常数,λ1、λ2、λ3是中间变量;
S22,采用GF(p)有限域进行点加法运算过程,公式如下:
σ0=x1D2
σ1=y1D3
σ2=σ0-x2
σ3=σ0+x2
σ4=σ1-y2
σ5=x2σ1-y2σ0
D1=Dσ2
其中,D是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为随机结点表中的对应高频结点的坐标值。
优选的,所述随机建表槽位设置规则具体包括:
1)根据输入的用于标量点乘的随机数和基础点数据,利用公式的存算一体机制,计算出该基础点数据相应的脉动结点并保存此脉动结点至随机结点表中的最上一排,若表中该基础点的2的幂次点位的脉冲结点的位置有值,则不用存储此值,若表中此位无值,则存储此值至该位;
2)采用高频结点的迭代规则,分别计算高频结点P1,P2,…,Pm的具体值,并将计算得到的具体值保存在随机建表中的高频结点区;
3)经过多次标量点乘基础运算过程,将脉动结点区和高频结点区整理以构建一个随机结点表作为新的基础运算单元,为后续标量点乘提供高效运算基础。
优选的,所述高频结点的迭代规则为采用2^N倍数进行高频点的选取,N的取值为自然数;
具体包括:使用2^2=4的结构1-2-1计算P1的高频点,其中2即为P1的点;使用2^4=16的1-4-6-4-1为计算P2、P3的高频点,其中4即为P2的点,6即为P3的点;使用2^5=32的结构1-5-10-10-5-1为计算P4的高频点,其中10即为P4的点;使用2^6=64的结构1-6-15-20-15-6-1为计算P5的高频点,20即为P5的点。
本发明的有益效果是:
本发明公开了一种新型脉动结点式标量点乘的双域实现系统及方法,采用随机动态建表和坐标映射推导公式计算相结合的半自主学习型设计,结合使用随机建表中的脉动结点值和高频结点值,采用推导公式中存算一体的优势,结点计算数值位置就是随机建表中的位置,实现公式映射计算值与随机建表中点值数据的交叉调用,最终实现标量点乘数据的高效带记忆式脉动结点的运算,提高标量点乘的整体实现效率;同时也提升整个标量点乘的防功耗攻击的能力,此方法主要应用在基于椭圆曲线的非对称密码学的密码服务的功能实现,重点实现Fp域上的标量点乘和Fp^2域上的标量点乘运算,从而支持SM2和SM9算法的加密解密,签名验签的应用。
附图说明
图1是实施例1中提供的新型脉动结点式标量点乘的双域实现系统结构组成图;
图2是实施例2中提供的新型脉动结点式标量点乘的双域实现方法中的随机建表过程中脉动结点和高频结点槽位示意图;
图3是是实施例2中提供的新型脉动结点式标量点乘的双域实现方法采用的高频结点迭代规则示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例1
一种新型脉动结点式标量点乘的双域实现系统,如图1所示,包括标量点乘控制单元模块、随机建表单元模块和基础运算单元模块,所述标量点乘控制单元模块依据标量点乘的公式与随机建表中的脉动结点和高频结点实现标量点乘的快速调度执行过程;所述随机建表单元模块用于动态构建随机结点表的数据,提供脉动结点数据和高频结点数据供标量点乘运算使用,提高计算速度;所述基础运算单元模块用于构建随机结点,同时提供基础模运算的模加、模减、模乘和模逆的运算,以支撑标量点乘运算。
其中,所述标量点乘控制单元模块包括控制单元子模块、双域控制单元子模块、公式运算存算单元子模块和脉动结点管理单元子模块,其中,所述控制单元子模块用于采用调用公式计算点加倍点或脉动/高频结点直接写入读取的控制以实现一个标量点乘运算;
所述双域控制单元子模块用于切换Fp域和Fp^2域,实现不同域下的标量点乘运算过程;
所述公式运算存算单元子模块主要用于采用公式法实现kG标量点乘的运算:
所述脉动结点管理单元子模块用于读取和写入脉动结点和高频结点的表内数据。
其中,所述基础运算单元模块包括模乘运算单元、模加运算单元、模减运算单元、模逆运算单元和随机建表运算单元,其中,
所述模乘运算单元、所述模加运算单元、所述模减运算单元和所述模逆运算单元分别用于标量点乘运算中的模乘、模加、模减和模逆运算过程,所述随机建表运算单元用于实现随机建表单元模块在动态构建随机结点表时的运算过程。
实施例2
本实施例提供了一种新型脉动结点式标量点乘的双域实现方法,具体包括以下步骤:
S1,通过标量点乘控制单元模块,随机建表单元模块和基础运算单元模块逐步半自主学习从而构造随机结点表;
S2,以步骤S1中构建的随机结点表作为新的基础运算单元,采用标量点乘控制单元模块调用所述随机结点表,对输入的随机数和基点进行标量点乘的计算过程;
S3,高效输出步骤S2中通过标量点乘计算过程得到的计算结果数据。
本实施例中,步骤S1中所述的逐步半自主学习过程能够随着整个标量点乘运算的次数,逐步补充脉动结点和高频结点的数据,从而提高标量点乘的运算效率,具体包括:
S11,通过kG的公式计算,将k分解为二进制数,利用有1的位上的数据判断,保存入对应的脉动结点位置;
S12,若计算过程中,k的十进制数与高频位置的数据有匹配时,将高频结点位置的值同样进行数据保存;
S13,通过多组Kg运算后,随机结点表中的值将自主学习完成,形成脉动结点和高频结点的随机分布。
本实施例中,步骤S2中的对输入的随机数和基点进行标量点乘的计算过程具体包括:
S21,采用GF(p)有限域加重射影坐标系进行倍点运算,公式如下:
y3=λ1(λ2-x3)-λ3
D1=2y2*D
其中,D的初值是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为(x2,y2)点的2倍的点的坐标,当满足倍点幂方次数要求时,x3,y3为随机建表过程中的对应脉动结点的坐标值;a是椭圆曲线参数的常数,λ1、λ2、λ3是中间变量;
S22,采用GF(p)有限域进行点加法运算过程,公式如下:
σ0=x1D2
σ1=y1D3
σ2=σ0-x2
σ3=σ0+x2
σ4=σ1-y2
σ5=x2σ1-y2σ0
D1=Dσ2
其中,D是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为随机结点表中的对应高频结点的坐标值。
所述随机建表槽位设置规则如图2所示,具体包括:
1)根据输入的用于标量点乘的随机数和基础点数据,利用公式的存算一体机制,计算出该基础点数据相应的脉动结点并保存此脉动结点至随机结点表中的最上一排,若表中该基础点的2的幂次点位的脉冲结点的位置有值,则不用存储此值,若表中此位无值,则存储此值至该位;
2)采用高频结点的迭代规则,分别计算高频结点P1,P2,…,Pm的具体值,并将计算得到的具体值保存在随机建表中的高频结点区;
3)经过多次标量点乘基础运算过程,将脉动结点区和高频结点区整理以构建一个随机结点表作为新的基础运算单元,为后续标量点乘提供高效运算基础。
所述高频结点的迭代规则为采用2^N倍数进行高频点的选取,N的取值为自然数,如图3所示;
具体包括:使用2^2=4的结构1-2-1计算P1的高频点,其中2即为P1的点;使用2^4=16的1-4-6-4-1为计算P2、P3的高频点,其中4即为P2的点,6即为P3的点;使用2^5=32的结构1-5-10-10-5-1为计算P4的高频点,其中10即为P4的点;使用2^6=64的结构1-6-15-20-15-6-1为计算P5的高频点,20即为P5的点。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明公开了一种新型脉动结点式标量点乘的双域实现系统及方法,采用随机动态建表和坐标映射推导公式计算相结合的半自主学习型设计,结合使用随机建表中的脉动结点值和高频结点值,采用推导公式中存算一体的优势,结点计算数值位置就是随机建表中的位置,实现公式映射计算值与随机建表中点值数据的交叉调用,最终实现标量点乘数据的高效带记忆式脉动结点的运算,提高标量点乘的整体实现效率;同时也提升整个标量点乘的防功耗攻击的能力,此方法主要应用在基于椭圆曲线的非对称密码学的密码服务的功能实现,重点实现Fp域上的标量点乘和Fp^2域上的标量点乘运算,从而支持SM2和SM9算法的加密解密,签名验签的应用。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (7)
1.一种脉动结点式标量点乘的双域实现系统,其特征在于,包括标量点乘控制单元模块、随机建表单元模块和基础运算单元模块,所述标量点乘控制单元模块依据标量点乘的公式与随机建表中的脉动结点和高频结点实现标量点乘的快速调度执行过程;所述随机建表单元模块用于动态构建随机结点表的数据,提供脉动结点数据和高频结点数据供标量点乘运算使用,提高计算速度;所述基础运算单元模块用于构建随机结点,同时提供基础模运算的模加、模减、模乘和模逆的运算,以支撑标量点乘运算;
所述标量点乘控制单元模块包括控制单元子模块、双域控制单元子模块、公式运算存算单元子模块和脉动结点管理单元子模块,其中,
所述控制单元子模块用于采用调用公式计算点加倍点或脉动/高频结点直接写入读取的控制以实现一个标量点乘运算;
所述双域控制单元子模块用于切换Fp域和Fp^2域,实现不同域下的标量点乘运算过程;
所述公式运算存算单元子模块主要用于采用公式法实现kG标量点乘的运算:
所述脉动结点管理单元子模块用于读取和写入脉动结点和高频结点的表内数据。
2.根据权利要求1所述的脉动结点式标量点乘的双域实现系统,其特征在于,所述基础运算单元模块包括模乘运算单元、模加运算单元、模减运算单元、模逆运算单元和随机建表运算单元,其中,
所述模乘运算单元、所述模加运算单元、所述模减运算单元和所述模逆运算单元分别用于标量点乘运算中的模乘、模加、模减和模逆运算过程,所述随机建表运算单元用于实现随机建表单元模块在动态构建随机结点表时的运算过程。
3.一种脉动结点式标量点乘的双域实现方法,其特征在于,采用权利要求1-2任一所述的脉动结点式标量点乘的双域实现系统,具体包括以下步骤:
S1,通过标量点乘控制单元模块,随机建表单元模块和基础运算单元模块逐步半自主学习从而构造随机结点表;
S2,以步骤S1中构建的随机结点表作为新的基础运算单元,采用标量点乘控制单元模块调用所述随机结点表,对输入的随机数和基点进行标量点乘的计算过程;
S3,高效输出步骤S2中通过标量点乘计算过程得到的计算结果数据。
4.根据权利要求3所述的脉动结点式标量点乘的双域实现方法,其特征在于,步骤S1中所述的逐步半自主学习过程能够随着整个标量点乘运算的次数,逐步补充脉动结点和高频结点的数据,从而提高标量点乘的运算效率,具体包括:
S11,通过kG的公式计算,将k分解为二进制数,利用有1的位上的数据判断,保存入对应的脉动结点位置;
S12,若计算过程中,k的十进制数与高频位置的数据有匹配时,将高频结点位置的值同样进行数据保存;
S13,通过多组kG运算后,随机结点表中的值将自主学习完成,形成脉动结点和高频结点的随机分布。
5.根据权利要求3所述的脉动结点式标量点乘的双域实现方法,其特征在于,步骤S2中的对输入的随机数和基点进行标量点乘的计算过程具体包括:
S21,采用GF(p)有限域加重射影坐标系进行倍点运算,公式如下:
y3=λ1(λ2-x3)-λ3
D1=2y2*D
其中,D的初值是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为(x2,y2)点的2倍的点的坐标,当满足倍点幂方次数要求时,x3,y3为随机建表过程中的对应脉动结点的坐标值;a是椭圆曲线参数的常数,λ1、λ2、λ3是中间变量;
S22,采用GF(p)有限域进行点加法运算过程,公式如下:
σ0=x1D2
σ1=y1D3
σ2=σ0-x2
σ3=σ0+x2
σ4=σ1-y2
σ5=x2σ1-y2σ0
D1=Dσ2
其中,D是蒙哥马利域中的一个标准单元R,每轮迭代后D=D1,x2,y2为已知椭圆曲线上的点的横坐标和纵坐标,x3,y3为随机结点表中的对应高频结点的坐标值。
6.根据权利要求5所述的脉动结点式标量点乘的双域实现方法,其特征在于,所述随机建表槽位设置规则具体包括:
1)根据输入的用于标量点乘的随机数和基础点数据,利用公式的存算一体机制,计算出该基础点数据相应的脉动结点并保存此脉动结点至随机结点表中的最上一排,若表中该基础点的2的幂次点位的脉冲结点的位置有值,则不用存储此值,若表中此位无值,则存储此值至该位;
2)采用高频结点的迭代规则,分别计算高频结点P1,P2,…,Pm的具体值,并将计算得到的具体值保存在随机建表中的高频结点区;
3)经过多次标量点乘基础运算过程,将脉动结点区和高频结点区整理以构建一个随机结点表作为新的基础运算单元,为后续标量点乘提供高效运算基础。
7.根据权利要求6所述的脉动结点式标量点乘的双域实现方法,其特征在于,所述高频结点的迭代规则为采用2^N倍数进行高频点的选取,N的取值为自然数;
具体包括:使用2^2=4的结构1-2-1计算P1的高频点,其中2即为P1的点;使用2^4=16的1-4-6-4-1为计算P2、P3的高频点,其中4即为P2的点,6即为P3的点;使用2^5=32的结构1-5-10-10-5-1为计算P4的高频点,其中10即为P4的点;使用2^6=64的结构1-6-15-20-15-6-1为计算P5的高频点,20即为P5的点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308874.3A CN113010142B (zh) | 2021-03-23 | 2021-03-23 | 一种新型脉动结点式标量点乘的双域实现系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110308874.3A CN113010142B (zh) | 2021-03-23 | 2021-03-23 | 一种新型脉动结点式标量点乘的双域实现系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010142A CN113010142A (zh) | 2021-06-22 |
CN113010142B true CN113010142B (zh) | 2023-07-28 |
Family
ID=76405443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110308874.3A Active CN113010142B (zh) | 2021-03-23 | 2021-03-23 | 一种新型脉动结点式标量点乘的双域实现系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010142B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113472540B (zh) * | 2021-07-01 | 2023-05-09 | 罗克佳华(重庆)科技有限公司 | 生成密文的方法、装置、电子设备及存储介质 |
CN114895870B (zh) * | 2022-04-29 | 2022-11-25 | 中国人民解放军93216部队 | 基于fpga实现的高效可重构sm2点乘方法及系统 |
CN117289896B (zh) * | 2023-11-20 | 2024-02-20 | 之江实验室 | 一种存算一体基本运算装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104221377A (zh) * | 2012-04-13 | 2014-12-17 | 高通股份有限公司 | 用于速率失真优化量化的查找表 |
CN108650087A (zh) * | 2018-05-16 | 2018-10-12 | 广东工业大学 | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771663B (zh) * | 2008-12-29 | 2013-03-20 | 上海华虹集成电路有限责任公司 | 基于ucps协议的验证系统 |
CN104751477A (zh) * | 2015-04-17 | 2015-07-01 | 薛笑荣 | 基于空间域和频域特征的并行sar图像分类方法 |
CN107040385B (zh) * | 2017-05-23 | 2020-10-27 | 广东工业大学 | 一种基于sm2椭圆曲线的签名验证算法的实现方法及系统 |
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
CN107547201B (zh) * | 2017-09-28 | 2020-06-16 | 哈尔滨工程大学 | 一种提高椭圆曲线密码体制中的标量乘计算效率的方法 |
CN110309665B (zh) * | 2019-07-08 | 2020-06-19 | 北京海泰方圆科技股份有限公司 | 一种sm2数字签名的快速生成方法和装置 |
CN110611559B (zh) * | 2019-08-21 | 2023-08-22 | 广东工业大学 | 基于算法层的抗侧信道攻击sm2点乘架构及其运算方法 |
-
2021
- 2021-03-23 CN CN202110308874.3A patent/CN113010142B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104221377A (zh) * | 2012-04-13 | 2014-12-17 | 高通股份有限公司 | 用于速率失真优化量化的查找表 |
CN108650087A (zh) * | 2018-05-16 | 2018-10-12 | 广东工业大学 | 一种二进制域F2m下的SM2椭圆曲线签名点乘加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113010142A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113010142B (zh) | 一种新型脉动结点式标量点乘的双域实现系统及方法 | |
CN108718231B (zh) | 一种全同态加密方法、装置和计算机可读存储介质 | |
CN101097511B (zh) | 使用折叠的模归约 | |
US20210243005A1 (en) | Fully homomorphic encryption method and device and computer readable storage medium | |
CN109145616B (zh) | 基于高效模乘的sm2加密、签名和密钥交换的实现方法及系统 | |
US10623189B2 (en) | Online/offline signature system and method based on multivariate cryptography | |
CN103942031A (zh) | 椭圆域曲线运算方法和椭圆域曲线运算器 | |
CN106712965A (zh) | 数字签名方法、装置以及密码设备 | |
US20030142820A1 (en) | Device and method for calculation on elliptic curve | |
WO2010048719A1 (en) | Method and apparatus for modulus reduction | |
CN113783702A (zh) | 一种椭圆曲线数字签名与验签的硬件实现方法和系统 | |
CN113794572A (zh) | 一种高性能椭圆曲线数字签名与验签的硬件实现系统和方法 | |
CN112733161A (zh) | 用于联邦学习密文运算的装置及方法 | |
Paksoy et al. | Faster NTRU on ARM cortex-M4 with TMVP-based multiplication | |
CN109933304B (zh) | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 | |
Chang | Fast parallel DNA-based algorithms for molecular computation: Quadratic congruence and factoring integers | |
US9613229B2 (en) | Method for generating coordinate point in embedded system | |
Liu et al. | Efficient digit-serial KA-based multiplier over binary extension fields using block recombination approach | |
CN114840174B (zh) | 一种使用多乘法器快速实现蒙哥马利模乘的系统及方法 | |
CN116225369A (zh) | Sm2算法标量乘运算优化方法及系统 | |
CN112134704B (zh) | 一种sm2性能优化实现方法 | |
Patarin et al. | Ultra-short multivariate public key signatures | |
Hossain et al. | Efficient FPGA Implementation of unified point operation for twisted Edward curve cryptography | |
Yang et al. | A hardware implementation of point scalar multiplication on Edwards25519 curve | |
Nikooghadam et al. | An efficient key management scheme for mobile agents in distributed networks |
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 |