CN113595730B - 一种用于工程中生成ecc曲线的处理方法和装置 - Google Patents

一种用于工程中生成ecc曲线的处理方法和装置 Download PDF

Info

Publication number
CN113595730B
CN113595730B CN202111141407.2A CN202111141407A CN113595730B CN 113595730 B CN113595730 B CN 113595730B CN 202111141407 A CN202111141407 A CN 202111141407A CN 113595730 B CN113595730 B CN 113595730B
Authority
CN
China
Prior art keywords
information
order
data
curve
base point
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
Application number
CN202111141407.2A
Other languages
English (en)
Other versions
CN113595730A (zh
Inventor
赵爽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202111141407.2A priority Critical patent/CN113595730B/zh
Publication of CN113595730A publication Critical patent/CN113595730A/zh
Application granted granted Critical
Publication of CN113595730B publication Critical patent/CN113595730B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Generation (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种用于工程中生成ECC曲线的处理方法和装置,涉及信息安全处理技术领域,所述方法包括:生成ECC曲线的参数b、p和a,并将1至p‑1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数;根据所述基点与所述阶数,获得私钥及公钥;通过所述私钥及公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数中的至少部分数据,对待处理信息进行处理;以及将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备。所述装置包括:参数生成模块、密钥生成模块、处理模块以及通信模块。实现工程上快速选取ECC曲线并应用ECC曲线的参数进行信息处理。

Description

一种用于工程中生成ECC曲线的处理方法和装置
技术领域
本发明涉及信息安全处理技术领域,尤其涉及一种基于ECC曲线的信息处理方法和装置。
背景技术
随着计算机网络技术的发展、信息数字化的应用越来越广,相应的、对数字化信息进行加密(加签)以确保信息安全的需求也越来越多。目前,应用比较广泛的是加密算法有采用的加密算法有 DES、RSA、SHA 等。随着对加密强度需求的不断提高,近期又出现了AES、ECC 等。
ECC(Elliptic curve cryptography,椭圆曲线加密算法)用来进行加密、解密、加签、验签。要进行ECC计算,需要首先选取合适的ECC曲线。可以用来进行ECC计算的椭圆曲线,通常可以表示如下:
y2=x3+ax2+bx(mod p)
对于一个曲线,参数a、b以及p是该曲线的参数,mod p为取模运算。
选定基点G(x,y),满足上述等式。有最小正整数n<p,并且(n+1)*G=G;则n称为该曲线中基点G的阶数。
其中:4a3+27b2≠0(mod p) ,表示4a3+27b2和p互素。
选取ECC曲线,除了需要选定参数a、b、p以及G点外,还需要计算阶数n;为了保证算法的加密强度,阶数n越大越好。基于以上要求,这就使得阶数n的计算相当耗时。
目前已知的阶数计算方法有如下方法:
1、轮询计算。对于一个阶为50位的曲线来说,使用个人PC进行计算求阶数,所耗费的计算时间会是以年为单位的。
2、Schoof算法。该算法所涉及的数学知识较多,需要用到数论、群论的知识,编程实现也相对比较困难。
发明内容
为此,本发明提供一种基于ECC曲线的信息处理方法和装置,以力图解决或至少缓解上面存在的问题。
根据本发明的第一个方面,提供一种基于ECC曲线的信息处理方法,包括:生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数;根据所述基点与所述阶数,获得私钥及公钥;通过所述私钥及公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数中的至少部分数据,对待处理信息进行处理;以及将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备。
可选地,生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数包括:生成ECC曲线的参数b和p的随机值;根据所述参数b和p确定ECC曲线的参数a,并将[1,p-1]的数据划分为多个分段的数据;计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G;对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n;其中n为ECC曲线的阶数,G为ECC曲线的基点,*为ECC曲线点乘运算。
可选地,生成参数p的随机值之后还包括:判断生成的参数p是否为素数,当所述参数p不为素数时,重新生成参数p的随机数。
可选地,将[1,p-1]的数据划分为k段分段的数据;并计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G的步骤包括:将[1,p-1]的数据平均分为k段分段长度为LSeg的数据;ECC曲线基点表示为G(x,y),计算分段长度内一半长度LSeg/2与基点G的乘法结果:1*G、2*G、3*G、……(LSeg/2)*G;对于每一分段的数据,找到分段的中点数值,记录为Center1、Center2、……Centerk;对于每一分段的数据,计算该段内中点数值与G点的乘积Center1*G,Center2*G,……Centerk*G;将每个所述乘法结果1*G、2*G、3*G、……(LSeg/2)*G分别与某段内中点数值Centeri与G点的乘积Centeri*G进行逻辑比较,表示为 Centeri*G-(1*G)、Centeri*G-(2*G)、Centeri*G-(3*G) ……Centeri*G-(LSeg/2)*G……Centeri*G+(1*G)、Centeri*G+(2*G)……Centeri*G+ (LSeg/2)*G,根据逻辑比较的结果确定基点G,其中1≤i≤k。
可选地,对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设要求阶数n的步骤之前还包括:ECC曲线中的任意两点相加时,如果两点坐标相等,并且其中两点的y坐标是0,则两点相加为O;如果两点坐标不相等,但是两点的x坐标相等,则两点相加为O;O是Ecc曲线中的无穷远点。
可选地,对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n的步骤包括:按照所述k段分段的正序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G,其中,Orderpesdo表示阶数候选值;判断得到的阶数候选值对应的段号是否大于序号阈值E;当得到的阶数候选值对应的段号大于序号阈值E,将当前的阶数候选值作为阶数n;当得到的阶数候选值对应的段号小于或者等于序号阈值E,按照所述k段分段的倒序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G;将当前的阶数候选值作为阶数n。
可选地,当按照所述k段分段的倒序得到阶数n时,对计算得到的阶数n进行最小化操作。
可选地,对计算得到的阶数n进行最小化操作的步骤包括:判断得到的阶数候选值是否是素数;如果阶数候选值是素数,则将所述阶数候选值确定为ECC曲线的阶数n;如果阶数候选值不是素数,则对所述阶数候选值进行分解,确定大于序号阈值E的最小的阶数n。
可选地,所述对阶数候选值进行分解的步骤包括:从2到阶数候选值的1/2次幂进行循环,与阶数候选值进行相除操作;如果能够整除,则判断该次循环的除数和商是否满足(n+1)*G=G;如果不满足,则继续循环;如果满足,则将满足条件的除数或者商记录为阶数候选值后,继续进行循环分解;直到确定大于序号阈值E的最小的阶数n。
可选地,根据所述基点与所述阶数,获得私钥及公钥的步骤包括:选取(1,n)之间的随机数作为私钥;以及利用所述私钥与所述基点的乘积计算公钥。
可选地,所述待处理信息包括待加签信息;所述对待处理信息进行处理的步骤包括:利用所述私钥对待加签信息进行签名,得到签名信息,将所述签名信息作为处理后的信息;所述公钥及所述至少部分数据用于供所述接收设备使用以对所述签名信息进行验证。
可选地,所述待处理信息包括待加密信息;所述对待处理信息进行处理的步骤包括:利用所述公钥对待加密信息进行加密,得到加密信息,将所述加密信息作为处理后的信息;所述私钥及所述至少部分数据用于供所述接收设备使用以对所述加密信息进行解密。
根据本发明的第二个方面,提供一种基于ECC曲线的信息处理装置,包括:参数生成模块,适于生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数;密钥生成模块,适于根据所述基点与所述阶数,获得私钥及公钥;处理模块,适于通过所述私钥及所述公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数中的至少部分数据,对待处理信息进行处理;以及通信模块,适于将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备。
根据本发明的第三个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行上述基于ECC曲线的信息处理方法。
根据本发明的第四个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行上述基于ECC曲线的信息处理方法。
本发明和现有技术相比,具有如下有益效果:
本申请的基于ECC曲线的信息处理方法和装置可以实现工程上快速选取ECC曲线并应用ECC曲线的参数进行信息处理,避免因为ECC曲线计算量过大而长时间无法得到可用的曲线,使得需要使用ECC进行信息安全相关的操作无法继续进行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的基于ECC曲线的信息处理方法的流程图;
图3示出了根据本发明一个实施例的生成ECC曲线参数的流程图;
图4出了根据本发明一个实施例的分段计算的示意图;
图5示出了根据本发明一个实施例的双向计算的示意图;
图6示出了根据本发明一个实施例的生成ECC曲线的流程图;
图7示出了根据本发明一个实施例的基于ECC曲线的信息处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
针对快速生成ECC曲线的问题,本发明提供了一种基于ECC曲线的信息处理方法,能够准确、高效、快速地生成ECC曲线。
本发明的基于ECC曲线的信息处理方法在计算设备中执行。计算设备可以是任意具有存储和计算能力的设备,其例如可以实现为服务器、工作站等,也可以实现为桌面计算机、笔记本计算机等个人配置的计算机,或者实现为手机、平板电脑、智能可穿戴设备、物联网设备等终端设备,但不限于此。
图1示出了根据本发明一个实施例的计算设备100的示意图。需要说明的是,图1所示的计算设备100仅为一个示例,在实践中,用于实施本发明的基于ECC曲线的信息处理方法的计算设备可以是任意型号的设备,其硬件配置情况可以与图1所示的计算设备100相同,也可以与图1所示的计算设备100不同。实践中用于实施本发明的基于ECC曲线的信息处理方法的计算设备可以对图1所示的计算设备100的硬件组件进行增加或删减,本发明对计算设备的具体硬件配置情况不做限制。
如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器104读取。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。操作系统120例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用122包括用于实现各种用户期望的功能的程序指令,应用122例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用122被安装到计算设备100中时,可以向操作系统120添加驱动模块。
在计算设备100启动运行时,处理器104会从存储器106中读取操作系统120的程序指令并执行。应用122运行在操作系统120之上,利用操作系统120以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用122时,应用122会加载至存储器106中,处理器104从存储器106中读取并执行应用122的程序指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138,可移除储存器136和不可移除储存器138均与储存接口总线134连接。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备100中,应用122包括用于执行本发明的基于ECC曲线的信息处理方法的指令,该指令可以指示处理器104执行本发明的基于ECC曲线的信息处理方法,以实现工程上快速选取ECC曲线并应用ECC曲线的参数进行信息处理。
图2示出了根据本发明一个实施例的基于ECC曲线的信息处理方法的流程图。所述方法可以包括如下步骤S110至步骤S140:
步骤S110中,生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数。
步骤S120中,根据所述基点与所述阶数,获得私钥及公钥。
步骤S130中,通过所述私钥及公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数中的至少部分数据,对待处理信息进行处理。
步骤S140中,将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备。
根据本发明的一种实施方式,步骤S110中生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数的步骤包括:
S111、生成ECC曲线的参数b和p的随机值。
S112、根据所述参数b和p确定ECC曲线的参数a,并将[1,p-1]的数据划分为多个分段的数据。
S113、计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G。
S114、对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n。
本发明实施例中,n为ECC曲线的阶数,G为ECC曲线的基点,*为ECC曲线点乘运算。
根据本发明的一种实施方式,第一设备一般是信息发送方,第二设备一般是信息接收方,由第一设备进行生成ECC曲线的参数的选取,确定ECC曲线的参数发送给第二设备,应用在信息发送前的协商环境,本发明实施例生成的ECC曲线参数的应用场景包括加密解密、加签验签等验证的环境。
相对传统的使用数学严谨的、理论性概念的生成ECC曲线的方式,本发明实施例中生成ECC曲线的方式是一种在数学上不够严谨的计算方法,而是通过分段计算、双向运算的手段,便利的、快速的得到合适的ECC曲线参数。
根据本发明的一种实施方式,步骤S111中生成参数p的随机值之后,需要判断生成的参数p是否为素数,当所述参数p不为素数时,重新生成参数p的随机值。
根据本发明的一种实施方式,步骤S113中计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G的步骤包括如下步骤S1131至步骤S1135:
步骤S1131中,将[1,p-1]的数据平均分为k段分段长度为LSeg的数据。
步骤S1132中,ECC曲线基点表示为G(x,y),计算分段长度内一半长度LSeg/2与基点G的乘法结果:1*G、2*G、3*G、……(LSeg/2)*G。
步骤S1133中,对于每一分段的数据,找到分段的中点数值,记录为Center1、Center2、……Centerk
步骤S1134中,对于每一分段的数据,计算该段内中点数值与G点的乘积Center1*G,Center2*G,……Centerk*G。
步骤S1135中,将每个所述乘法结果1*G、2*G、3*G、……(LSeg/2)*G分别与某段内中点数值Centeri与G点的乘积Centeri*G进行逻辑比较,表示为 Centeri*G-(1*G)、Centeri*G-(2*G)、Centeri*G-(3*G) ……Centeri*G-(LSeg/2)*G……Centeri*G+(1*G)、Centeri*G+(2*G) ……Centeri*G+ (LSeg/2)*G,根据逻辑比较的结果确定基点G,其中,1≤i≤k。
如图4所示,根据本发明的一种实施方式,假设ECC曲线的基点为G(x,y);对1~(p-1)进行分段,每段长度一致,长度为LSeg;[1, p-1]的数据出现k段长度为LSeg的数据;最后一个区间[1+k*LSeg, p-1]可能不能进行完整分段,即数据长度可能小于LSeg
1)计算分段长度内一半长度的乘法结果并进行保存:1*G、2*G、3*G...(LSeg/2)*G;
2)对于每一段,都可以找到其中点。记作Center1、Center2...Centerk,对于某一个分段,用Centeri表示该分段的中点,计算其中点的数值Centeri*G;那么该分段内所有的G点的乘积表示为Centeri*G-(1*G)、Centeri*G-(2*G)、Centeri*G-(3*G)...Centeri*G-(LSeg/2)*G...Centeri*G+(1*G)、Centeri*G+(2*G)...Centeri*G+ (LSeg/2)*G。
本发明实施例中仅需要对1*G、2*G、3*G...(LSeg/2)*G与Centeri*G进行逻辑比较(是否相等)即可。
基于以上优化,可以把大量的复杂乘法运算转换为固定的乘法运算后再进行加法运算。
根据本发明的一种实施方式,步骤S114对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设要求的ECC曲线的阶数n的步骤之前还包括:
ECC曲线中的任意两点相加时,进行坐标判断:
如果两点坐标相等,并且其中两点的y坐标是0,则两点相加为O;如果两点坐标不相等,但是两点的x坐标相等,则两点相加为O;O是ECC曲线中的无穷远点。本发明实施例中仅进行判断,不进行具体运算。
在实际运算中,求出两点相加的数值需要经过运算量比较大的计算。这也是导致ECC求阶比较困难的主要原因。因此,本发明实施例中,只进行逻辑判断,不进行实际运算。
根据本发明的一种实施方式,步骤S114中对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n的步骤包括如下步骤S1141至步骤S1144:
步骤S1141中,按照所述k段分段的正序,得到阶数候选值Orderpesdo满足(Orderpesdo+1)*G=G。
步骤S1142中,判断得到的Orderpesdo对应的段号是否大于序号阈值E。
步骤S1143中,当得到的Orderpesdo对应的段号大于序号阈值E,将Orderpesdo作为阶数n。
步骤S1144中,当得到的Orderpesdo对应的段号小于或者等于序号阈值E,按照所述k段分段的倒序,得到阶数候选值Orderpesdo满足(Orderpesdo+1)*G=G;将Orderpesdo作为阶数n。
由于ECC曲线的选取,其参数p通常可能是非常大的数字(比如是163bit)。本发明实施例中进行了分段的优化;但其中的计算量仍然是非常巨大的。本发明实施例考虑到ECC曲线,为了安全性考虑,阶数n要求尽可能的大,因此,在求阶时进行双向计算。
根据本发明的一种实施方式,设定一定的计算终止标准:为了满足安全要求,期望该阶数n足够大,因此,阶数n不得小于序号阈值E。
如图5所示,如果正向计算,已经得到阶数候选值Orderpesdo满足(Orderpesdo +1)*G=G;但是该段的段号小于E,那么就说明该曲线的阶数不是足够大,不满足要求;如果反向计算,一直计算到第E段计算完成,尚未得到阶数候选值Orderpesdo满足(Orderpesdo+1)*G=G;那么就说明该曲线的阶数不是足够大,不满足要求。
如果曲线的阶数不是足够大,那么重新选取a、b、p、G;随后重新计算阶数n。
相对来说,计算a、b、p、G耗时比较少;因此,依据上述步骤可以快速进行曲线的选取;在正向计算中,如果短期计算就可以得到该曲线的阶数,则可以排除使用该曲线;在反向计算中,如果短期计算得到该曲线的阶数,则认为该阶符合安全标准,可以进行下一步计算;从而大大缩短计算时间。
进一步地,当按照所述k段分段的倒序得到阶数n时,对计算得到的阶数n进行最小化操作。
具体地,对计算得到的阶数n进行最小化操作的步骤包括:
判断得到的阶数候选值Orderpesdo是否是素数;如果阶数候选值Orderpesdo是素数,则确定ECC曲线的阶数n为阶数候选值Orderpesdo;如果阶数候选值Orderpesdo不是素数,则对阶数候选值Orderpesdo进行分解,确定大于序号阈值E的最小的阶数n。
具体地,对阶数候选值Orderpesdo进行分解包括:
从2到(Orderpesdo)1/2进行循环,与阶数候选值Orderpesdo进行相除操作;如果能够整除,则判断该次循环的除数和商是否满足(n+1)*G=G;如果不满足,则继续循环;如果满足,则将满足条件的除数或者商记录为Orderpesdo后,继续进行循环分解;直到确定大于序号阈值E的最小的阶数n。
根据ECC曲线阶数n的定义,阶数n是满足条件(n+1)*G=G的最小整数;所以上述计算得到的Orderpesdo可能是ECC的阶数n和某个整数的乘积。因此,需要对上述计算得到的Orderpesdo进行最小化操作,步骤如下:
判断得到的Orderpesdo是否是素数,如果是素数,则其是该曲线的阶数n=Orderpesdo;如果不是素数,则进行分解;从2到(Orderpesdo)1/2进行循环,和Orderpesdo进行相除操作;如果能够整除,则判断该次循环的除数和商是否满足(n+1)*G=G:如果不满足,则继续循环;如果满足,则将满足条件的除数或者商记录为Orderpesdo继续回到判断是否为素数的步骤进行判断/分解;按照上述逻辑进行最小化计算之后,可以得到最小的阶数n。
最小化得到阶数n之后,可以判断该ECC曲线的阶数n是否足够大、是否可以满足安全性的要求;如果满足要求,则已经得到合适的曲线;如果不满足要求,则可以继续计算曲线参数,直到找到合适的参数。
本发明实施例中生成ECC曲线时,p可以选取一个足够大的随机数;G(x,y)的选取,为了方便,通常会选取x=1;另外在[1, p-1]之间选取一个随机数作为y;在[1, p-1]之间选取合适的随机正整数a;随后根据y2=x3+ax2+bx(mod p)得到一个正整数b;再判断目前选择的a、b是否满足4a 3 +27b 2 ≠ 0 (mod p);如果满足则当前选择的a、b、y有效;否则再次进行随机选取。
根据本发明的一种实施方式,步骤S120根据所述基点与所述阶数,获得私钥及公钥的步骤包括:选取(1,n)之间的随机数作为私钥;以及利用所述私钥与所述基点的乘积计算公钥。
根据本发明的一种实施方式,步骤S130中所述待处理信息包括待加签信息;所述对待处理信息进行处理的步骤包括:利用所述私钥对待加签信息进行签名,得到签名信息,将所述签名信息作为处理后的信息;所述公钥及所述至少部分数据用于供所述接收设备使用以对所述签名信息进行验证。
根据本发明的一种实施方式,步骤S130中所述待处理信息包括待加密信息;所述对待处理信息进行处理的步骤包括:利用所述公钥对待加密信息进行加密,得到加密信息,将所述加密信息作为处理后的信息;所述私钥及所述至少部分数据用于供所述接收设备使用以对所述加密信息进行解密。
结合图6说明本发明实施例的生成ECC曲线的过程:
S601、生成随机数b和p。
S602、判断p是否为素数,如果p不是素数,则返回步骤S601。
S603、如果p是素数,对 [1,p-1]的数据进行分段;计算分段长度内一半长度的乘法结果;计算每一分段的中点数值。
S604、进行正向、反向计算查找Orderpesdo。
S605、判断是否找到Orderpesdo;如果没有找到则执行步骤S606,如果找到则执行步骤S608。
S606、判断反向计算是否已经计算过小于或者等于E的数字,如果是则执行步骤S607,如果否则返回执行步骤S604继续计算。
S607、如果是,确定该曲线不满足安全标准,舍弃。
S608、进行最小化计算。
S609、判断的得到的阶数n是否大于E;如果否,确定该曲线不满足安全标准,舍弃。
S610、如果是,得到合适的ECC曲线。
本发明实施例中的安全性要求(安全标准)是后续使用该ECC曲线的用户评估决定的,一般来说,阶数n越大安全性越高;用户依据实际的使用场合,评估对n值的期望,满足用户对n的安全性期望即可。例如,对于一个安全性要求不太高的场合、但非常追求运算速度,用户经过评估,期望n是一个不小于32位、不高于40位的正整数即可满足安全性要求,同时又满足运算速度;那么计算结束之后判断n是否在32位到40位之间。
如果用户要求安全程度非常高,要求n至少100位,那么计算完毕之后判断n是否大于等于2100-1。
根据本发明的一种实施方式,由第一设备(发送设备)进行生成ECC曲线的参数的选取,确定ECC曲线的参数发送给第二设备(接收设备),利用生成的ECC曲线参数对信息进行加密解密、加签验签。
下面说明利用生成ECC曲线的参数对通信信息进行加签验签:
S11、第一设备生成ECC曲线的参数:a、b、p、G和n。
S12、第一设备将所述ECC曲线的参数发送给第二设备。
S13、第一设备选取私钥S,所述私钥S为(1,n)之间的随机数;利用私钥S与基点G的乘积计算公钥Y,并将公钥Y发送给第二设备。
S14、第一设备利用私钥S对待加签信息进行签名;将签名信息发送至第二设备。
S15、第二设备利用公钥Y对签名信息进行验证。
下面说明利用生成ECC曲线的参数对通信信息进行加密解密:
S21、第一设备生成ECC曲线的参数:a、b、p、G和n。
S22、第一设备将所述ECC曲线的参数发送给第二设备。
S23、第一设备选取私钥S,所述私钥S为(1,n)之间的随机数;利用私钥S与基点G的乘积计算公钥Y,并将私钥S发送给第二设备。
S24、第一设备利用公钥Y对待加密信息进行加密;将加密信息发送至第二设备。
S25、第二设备利用私钥S对加密信息进行解密,还原通信信息。
如图7所示,本发明实施例还提供一种基于ECC曲线的信息处理装置,包括:参数生成模块710、密钥生成模块720、处理模块730和通信模块740。
其中,参数生成模块710,适于生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数;密钥生成模块720,适于根据所述基点与所述阶数,获得私钥及公钥;处理模块730,适于通过所述私钥及所述公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数中的至少部分数据,对待处理信息进行处理;以及通信模块740,适于将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备。
根据本发明的一种实施方式,所述参数生成模块710包括:随机数生成单元,适于生成ECC曲线的参数b和p的随机值;分段计算单元,适于根据所述参数b和p确定ECC曲线的参数a,并将[1,p-1]的数据划分为多个分段的数据;基点运算单元,适于计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G;双向运算单元,适于对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n;其中n为ECC曲线的阶数,G为ECC曲线的基点,*为ECC曲线点乘运算。
根据本发明的一种实施方式,所述基点运算单元通过如下方式计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G:
将[1,p-1]的数据平均分为k段分段长度为LSeg的数据;ECC曲线基点表示为G(x,y),计算分段长度内一半长度LSeg/2与基点G的乘法结果:1*G、2*G、3*G、……(LSeg/2)*G;对于每一分段的数据,找到分段的中点数值,记录为Center1、Center2、……Centerk;对于每一分段的数据,计算该段内中点数值与G点的乘积Center1*G,Center2*G,……Centerk*G;将每个所述乘法结果1*G、2*G、3*G、……(LSeg/2)*G分别与某段内中点数值Centeri与G点的乘积Centeri*G进行逻辑比较,表示为 Centeri*G-(1*G)、Centeri*G-(2*G)、Centeri*G-(3*G) ……Centeri*G-(LSeg/2)*G……Centeri*G+(1*G)、Centeri*G+(2*G) ……Centeri*G+ (LSeg/2)*G,根据逻辑比较的结果确定基点G,其中1≤i≤k。
根据本发明的一种实施方式,所述双向运算单元还适于:ECC曲线中的任意两点相加时,如果两点坐标相等,并且其中两点的y坐标是0,则两点相加为O;如果两点坐标不相等,但是两点的x坐标相等,则两点相加为O;O是ECC曲线中的无穷远点。
根据本发明的一种实施方式,所述双向运算单元通过如下方式对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n:
按照所述k段分段的正序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G,其中,Orderpesdo表示阶数候选值;判断得到的阶数候选值对应的段号是否大于序号阈值E;当得到的阶数候选值对应的段号大于序号阈值E,将当前的阶数候选值作为阶数n;当得到的阶数候选值对应的段号小于或者等于序号阈值E,按照所述k段分段的倒序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G;将当前的阶数候选值作为阶数n。
根据本发明的一种实施方式,所述双向运算单元,适于当按照所述k段分段的倒序得到阶数n时,对计算得到的阶数n进行最小化操作。
根据本发明的一种实施方式,所述双向运算单元通过如下方式对计算得到的阶数n进行最小化操作:
判断得到的阶数候选值是否是素数;如果阶数候选值是素数,则将所述阶数候选值确定为ECC曲线的阶数n;如果阶数候选值不是素数,则对所述阶数候选值进行分解,确定大于序号阈值E的最小的阶数n。
根据本发明的一种实施方式,所述双向运算单元通过如下方式对阶数候选值进行分解:
从2到阶数候选值的1/2次幂进行循环,与阶数候选值进行相除操作;如果能够整除,则判断该次循环的除数和商是否满足(n+1)*G=G;如果不满足,则继续循环;如果满足,则将满足条件的除数或者商记录为阶数候选值后,继续进行循环分解;直到确定大于序号阈值E的最小的阶数n。
根据本发明的一种实施方式,所述密钥生成模块720通过如下方式根据所述基点与所述阶数,获得私钥及公钥:
选取(1,n)之间的随机数作为私钥;以及利用所述私钥与所述基点的乘积计算公钥。
根据本发明的一种实施方式,所述待处理信息包括待加签信息;所述处理模块730通过如下方式对待处理信息进行处理:
利用所述私钥对待加签信息进行签名,得到签名信息,将所述签名信息作为处理后的信息;所述公钥及所述至少部分数据用于供所述接收设备使用以对所述签名信息进行验证。
根据本发明的一种实施方式,所述待处理信息包括待加密信息;所述处理模块730通过如下方式对待处理信息进行处理的步骤包括:
利用所述公钥对待加密信息进行加密,得到加密信息,将所述加密信息作为处理后的信息;所述私钥及所述至少部分数据用于供所述接收设备使用以对所述加密信息进行解密。
本申请实施例还提供了一种计算设备,该计算设备包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,该计算机程序存储于存储器中的用于程序代码的空间,该计算机程序在由处理器执行时实现用于执行任一项根据本发明的方法步骤。
本申请实施例还提供了一种计算机可读存储介质。该计算机可读存储介质包括用于程序代码的存储单元,该存储单元设置有用于执行根据本发明的方法步骤的程序,该程序被处理器执行。
本申请实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得计算机执行根据本发明的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、获取其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (9)

1.一种用于工程中生成ECC曲线的处理方法,包括:
生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数n;其中,ECC曲线表示如下:y2=x3+ax2+bx(mod p),参数a、b以及p是该曲线的参数,mod p为取模运算;
根据所述基点与所述阶数n,获得私钥及公钥;
通过所述私钥及公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数n中的至少部分数据,对待处理信息进行处理;以及
将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备;
获得私钥及公钥的步骤包括:选取(1,n)之间的随机数作为私钥;以及利用所述私钥与所述基点的乘积计算公钥;
所述待处理信息包括待加签信息;所述对待处理信息进行处理的步骤包括:利用所述私钥对待加签信息进行签名,得到签名信息,将所述签名信息作为处理后的信息;所述公钥及所述至少部分数据用于供所述接收设备使用以对所述签名信息进行验证;或者,
所述待处理信息包括待加密信息;所述对待处理信息进行处理的步骤包括:利用所述公钥对待加密信息进行加密,得到加密信息,将所述加密信息作为处理后的信息;所述私钥及所述至少部分数据用于供所述接收设备使用以对所述加密信息进行解密。
2.如权利要求1所述的方法,其中,生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数的步骤包括:
生成ECC曲线的参数b和p的随机值;
根据所述参数b和p确定ECC曲线的参数a,并将[1,p-1]的数据划分为多个分段的数据;
计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G;
对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n;
其中,n为ECC曲线的阶数,G为ECC曲线的基点,*为ECC曲线点乘运算。
3.如权利要求2所述的方法,其中,计算每一分段的中点数值,根据所述中点数值确定满足预设条件的基点G的步骤包括:
将[1,p-1]的数据平均分为k段分段长度为LSeg的数据;
ECC曲线基点表示为G(x,y),计算分段长度内一半长度LSeg/2与基点G的乘法结果:1*G、2*G、3*G、……(LSeg/2)*G;
对于每一分段的数据,找到分段的中点数值,记录为Center1、Center2、……Centerk
对于每一分段的数据,计算该段内中点数值与G点的乘积Center1*G,Center2*G,……Centerk*G;
将每个所述乘法结果1*G、2*G、3*G、……(LSeg/2)*G分别与某段内中点数值Centeri与G点的乘积Centeri*G进行逻辑比较,分别使得1*G、2*G、3*G...(LSeg/2)*G与Centeri*G相等,根据逻辑比较的结果确定基点G,其中1≤i≤k。
4.如权利要求3所述的方法,其中,对于所述多个分段的数据,计算使得(n+1)*G=G并满足预设条件的ECC曲线的阶数n的步骤包括:
按照所述k段分段的正序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G,其中,Orderpesdo表示阶数候选值;
判断得到的阶数候选值对应的段号是否大于序号阈值E;
当得到的阶数候选值对应的段号大于序号阈值E,将当前的阶数候选值作为阶数n;
当得到的阶数候选值对应的段号小于或者等于序号阈值E,按照所述k段分段的倒序,根据下式得到阶数候选值:(Orderpesdo+1)*G=G;将当前的阶数候选值作为阶数n。
5.如权利要求4所述的方法,其中,当按照所述k段分段的倒序得到阶数n时,对计算得到的阶数n进行最小化操作。
6.如权利要求5中所述的方法,其中,对计算得到的阶数n进行最小化操作的步骤包括:
判断得到的阶数候选值是否是素数;
如果阶数候选值是素数,则将所述阶数候选值确定为ECC曲线的阶数n;
如果阶数候选值不是素数,则对所述阶数候选值进行分解,确定大于序号阈值E的最小的阶数n。
7.一种用于工程中生成ECC曲线的处理装置,包括:
参数生成模块,适于生成ECC曲线的参数b、p和a,并将1至p-1之间的数据分为多段数据,以基于所述多段数据中每一段的中点数值确定ECC曲线的基点与阶数n;其中,ECC曲线表示如下:y2=x3+ax2+bx(mod p),参数a、b以及p是该曲线的参数,mod p为取模运算;
密钥生成模块,适于根据所述基点与所述阶数n,获得私钥及公钥;
处理模块,适于通过所述私钥及所述公钥中的一个,利用生成的参数b、p、a、所述基点及所述阶数n中的至少部分数据,对待处理信息进行处理;以及
通信模块,适于将所述私钥及公钥中的另一个、所述至少部分数据以及处理后的信息,发送至接收设备;
所述密钥生成模块通过如下方式根据所述基点与所述阶数,获得私钥及公钥:选取(1,n)之间的随机数作为私钥;以及利用所述私钥与所述基点的乘积计算公钥;
所述待处理信息包括待加签信息;所述处理模块通过如下方式对待处理信息进行处理:利用所述私钥对待加签信息进行签名,得到签名信息,将所述签名信息作为处理后的信息;所述公钥及所述至少部分数据用于供所述接收设备使用以对所述签名信息进行验证;
或者,所述待处理信息包括待加密信息;所述处理模块通过如下方式对待处理信息进行处理:利用所述公钥对待加密信息进行加密,得到加密信息,将所述加密信息作为处理后的信息;所述私钥及所述至少部分数据用于供所述接收设备使用以对所述加密信息进行解密。
8.一种计算设备,包括:
至少一个处理器和存储有程序指令的存储器;
当所述程序指令被所述处理器读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的用于工程中生成ECC曲线的处理方法。
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的用于工程中生成ECC曲线的处理方法。
CN202111141407.2A 2021-09-28 2021-09-28 一种用于工程中生成ecc曲线的处理方法和装置 Active CN113595730B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111141407.2A CN113595730B (zh) 2021-09-28 2021-09-28 一种用于工程中生成ecc曲线的处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111141407.2A CN113595730B (zh) 2021-09-28 2021-09-28 一种用于工程中生成ecc曲线的处理方法和装置

Publications (2)

Publication Number Publication Date
CN113595730A CN113595730A (zh) 2021-11-02
CN113595730B true CN113595730B (zh) 2022-02-22

Family

ID=78242335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111141407.2A Active CN113595730B (zh) 2021-09-28 2021-09-28 一种用于工程中生成ecc曲线的处理方法和装置

Country Status (1)

Country Link
CN (1) CN113595730B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2498438A1 (en) * 2011-03-07 2012-09-12 Certicom Corp. Accelerated verification of digital signatures on partially encrypted messages
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质
CN113032844A (zh) * 2021-03-31 2021-06-25 郑州信大捷安信息技术股份有限公司 椭圆曲线的签名方法、验签方法和装置
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2498438A1 (en) * 2011-03-07 2012-09-12 Certicom Corp. Accelerated verification of digital signatures on partially encrypted messages
CN109412813A (zh) * 2018-09-14 2019-03-01 北京海泰方圆科技股份有限公司 椭圆曲线的签名方法、验签方法和装置
CN109698751A (zh) * 2018-11-09 2019-04-30 北京中宇万通科技股份有限公司 数字签名生成及验签方法、计算机设备和存储介质
CN113032844A (zh) * 2021-03-31 2021-06-25 郑州信大捷安信息技术股份有限公司 椭圆曲线的签名方法、验签方法和装置
CN113158258A (zh) * 2021-03-31 2021-07-23 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于椭圆曲线的密钥交换协议的设计;陈瑶;《计算机安全》;20071205(第12期);全文 *

Also Published As

Publication number Publication date
CN113595730A (zh) 2021-11-02

Similar Documents

Publication Publication Date Title
US7505587B2 (en) Elliptic curve cryptosystem apparatus, storage medium storing elliptic curve cryptosystem program, and elliptic curve cryptosystem arithmetic method
KR101194837B1 (ko) 멱지수를 숨기는 dpa 대책의 고속 계산을 위한 암호화장치 및 방법
JP4699610B2 (ja) タイミングアタック防止暗号システム
CN111737757B (zh) 针对隐私数据进行安全运算的方法和装置
JP5449576B2 (ja) 演算装置、演算装置の楕円スカラー倍算方法、楕円スカラー倍算プログラム、演算装置の剰余演算方法および剰余演算プログラム
US11424907B2 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
WO2019242562A1 (zh) 椭圆曲线多倍点运算方法和装置
WO2021004454A1 (zh) 运算方法、装置及设备
KR102180029B1 (ko) Crt-rsa 암호화 방법 및 장치와 이를 기록한 컴퓨터 판독가능 저장매체
CN113595730B (zh) 一种用于工程中生成ecc曲线的处理方法和装置
JP2009505148A (ja) 暗号化演算における反転操作を行うための回路配置及び方法
KR20200087708A (ko) 근사 계산에 대한 계산 검증
US20230119749A1 (en) Large-precision homomorphic comparison using bootstrapping
EP4072062A1 (en) Apparatus for processing non-polynomial operation on homomorphic encrypted messages and methods thereof
KR101707334B1 (ko) 효율적인 타원곡선 암호화 연산 장치 및 그 방법
CN116522351A (zh) 降低成功率的方法、密码系统处理电路及电子装置
Nedjah et al. Parallel computation of modular exponentiation for fast cryptography
KR102425475B1 (ko) 모듈러 곱셈 방법
US12034866B2 (en) Systems and methods of improved modular inversion with digital signatures
KR101006358B1 (ko) 실수체 기반의 타원 곡선 암호 시스템 및 그 방법
JP2005316038A (ja) 楕円曲線暗号におけるスカラー倍計算方法と、その装置およびプログラム
KR20090090881A (ko) 센서 모트에서의 효율적인 타원 곡선 암호 연산 방법, 그장치 및 이를 기록한 기록매체
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
Maurya et al. FPGA Implementation of a Fast Scalar Point Multiplier for an Elliptic Curve Crypto-Processor
JP2015135363A (ja) 情報処理装置、情報処理方法、及びプログラム

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