CN112769557B - 嵌入式系统中加快sm9双线性对运算的实现方法及装置 - Google Patents
嵌入式系统中加快sm9双线性对运算的实现方法及装置 Download PDFInfo
- Publication number
- CN112769557B CN112769557B CN202011616501.4A CN202011616501A CN112769557B CN 112769557 B CN112769557 B CN 112769557B CN 202011616501 A CN202011616501 A CN 202011616501A CN 112769557 B CN112769557 B CN 112769557B
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- ram
- register
- operation result
- 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
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Abstract
本申请涉及信息安全技术领域,特别是涉及一种嵌入式系统中加快SM9双线性对运算的实现方法及装置。本申请中,通过SM9密码系统中双线性对的线函数点倍过程的运算,加快了双线性对运算过程的运算速度,减少了双线性对运算过程的时间。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种嵌入式系统中加快SM9双线性对运算的实现方法及装置。
背景技术
SM9双线性非对称算法(简称SM9算法)是基于双线性对的标识密码算法,它依据用户的身份标识生成用户的公、私密钥对,身份信息与密码算法关联,省去了数字证书、证书库和密钥库管理的流程。SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点,从而开启了普及密码算法的大门。
当前,IBC(Identity-Based Cryptograph,标识密码系统)快速发展,该系统可理论上去除CA证书,从而在使用上提供很大的便利性,作为国标唯一一套标识密码系统的SM9密码系统,其核心在于双线性对的运算,如何加快SM9密码系统中双线性对运算过程中的运算速度成为了当前亟待解决的技术问题。
发明内容
本申请提供了一种嵌入式系统中加快SM9双线性对运算的实现方法及装置,以实现加快对SM9密码系统中双线性对的有效运算。
第一方面,提供了一种嵌入式系统中加快SM9双线性对运算的实现方法,第一寄存器中预存储有第三坐标数据,第五寄存器中预存储有第一坐标数据,包括如下步骤:
步骤S1,协处理器对第一寄存器中的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果存储到对应的第二寄存器中及将所述第二运算结果存储到对应的第三寄存器中;
步骤S2,所述协处理器对所述第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将所述运算结果存储到第四寄存器中;
步骤S3,所述协处理器对所述第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新所述第四寄存器中的数据;
步骤S4,所述协处理器对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
步骤S5,所述协处理器对所述RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新所述RAM的第三存储区中的数据和第四存储区中的数据;
步骤S6,所述协处理器对所述第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果更新所述第二寄存器中的数据及将所述第二运算结果更新所述第三寄存器中的数据;
步骤S7,所述协处理器对所述第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第四寄存器中的数据;
步骤S8,所述协处理器对所述第二寄存器中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第二寄存器中的数据;
步骤S9,所述协处理器对所述RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理;
步骤S10,所述协处理器对所述第三寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区和第十存储区中;
步骤S11,所述协处理器对所述第五寄存器中的数据和所述RAM的存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S12,所述协处理器对所述第一寄存器中的数据和所述RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S13,所述协处理器对所述RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S14,所述协处理器对所述第二寄存器中的数据和所述RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S15,所述协处理器将所述RAM中的数据存入第六寄存器的数据组中。
在一个可能地实现方式中,所述步骤S1,包括:
所述协处理器对所述第一寄存器中的第一数据进行二次扩域平方运算,得到第一运算结果,将所述第一运算结果存储到第二寄存器中;
所述协处理器对所述第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果存储到第三寄存器中。
在一个可能地实现方式中,所述步骤S4,包括:
所述协处理器对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
所述协处理器对所述RAM的第三存储区中的数据、所述RAM的第四存储区中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果分别更新所述RAM的第三存储区中的数据和所述RAM的第四存储区中的数据。
在一个可能地实现方式中,所述步骤S6,包括:
所述协处理器对所述第一寄存器的第一数据和所述第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将所述第一运算结果更新所述第二寄存器中的数据;
所述协处理器对所述第一寄存器的第二数据和所述第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果更新所述第三寄存器中的数据。
在一个可能地实现方式中,所述步骤S10,包括:
所述协处理器对所述第三寄存器中的第一数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述第三寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十存储区中。
在一个可能地实现方式中,所述步骤S11,包括:
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述步骤S12,包括:
所述协处理器对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十二存储区中;
所述协处理器对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述步骤S13,包括:
所述协处理器对所述RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述步骤S14,包括:
所述协处理器对所述第二寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述第二寄存器中的数据和所述RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
第二方面,提供了一种嵌入式系统中加快SM9双线性对运算的实现装置,第一寄存器中预存储有第三坐标数据,第五寄存器中预存储有第一坐标数据,包括:
第一处理模块,用于对第一寄存器中的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果存储到对应的第二寄存器中及将所述第二运算结果存储到对应的第三寄存器中;
第二处理模块,用于对所述第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将所述运算结果存储到第四寄存器中;
第三处理模块,用于对所述第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新所述第四寄存器中的数据;
第四处理模块,用于对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
第五处理模块,用于对所述RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新所述RAM的第三存储区中的数据和第四存储区中的数据;
第六处理模块,用于对所述第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果更新所述第二寄存器中的数据及将所述第二运算结果更新所述第三寄存器中的数据;
第七处理模块,用于对所述第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第四寄存器中的数据;
第八处理模块,用于对所述第二寄存器中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第二寄存器中的数据;
第九处理模块,用于对所述RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理;
第十处理模块,用于对所述第三寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区和第十存储区中;
第十一处理模块,用于对所述第三寄存器中的数据和所述RAM的存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的存储区中;
第十二处理模块,用于对所述第一寄存器中的数据和所述RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到所述RAM的存储区中;
第十三处理模块,用于对所述RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
第十四处理模块,用于对所述第二寄存器中的数据和所述RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
第十五处理模块,用于将所述RAM中的数据存入第六寄存器的数据组中。
在一个可能地实现方式中,所述第一处理模块,用于对所述第一寄存器中的第一数据进行二次扩域乘法运算,得到第一运算结果,将所述第一运算结果存储到第二寄存器中;对所述第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果存储到第三寄存器中。
在一个可能地实现方式中,所述第四处理模块,用于对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;对所述第四寄存器中的数据和所述RAM的第三存储区中的数据进行二次扩域加法运算,将得到的运算结果更新所述RAM的第三存储区中的数据;对所述第四寄存器中的数据和所述RAM的第四存储区中的数据进行二次扩域加法运算,将得到的运算结果更新所述RAM的第四存储区中的数据。
在一个可能地实现方式中,所述第六处理模块,用于对所述第一寄存器的第一数据和所述第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将所述第一运算结果更新所述第二寄存器中的数据;对所述第一寄存器的第二数据和所述第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果更新所述第三寄存器中的数据。
在一个可能地实现方式中,所述第十处理模块,用于对所述第三寄存器中的第一数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述第三寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十存储区中。
在一个可能地实现方式中,所述第十一处理模块,用于对所述第五寄存器中的第二数据和所述RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述第五寄存器中的第二数据和所述RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述第五寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述第五寄存器中的第二数据和所述RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述第十二处理模块,用于对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十二存储区中;对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述第十三处理模块,用于对所述RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;器对所述RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
在一个可能地实现方式中,所述第十四处理模块,用于对所述第二寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述第二寄存器中的数据和所述RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
借由上述技术方案,本申请提供的技术方案至少具有下列优点:
本申请中,通过SM9密码系统中双线性对的线函数点倍过程的运算,加快了双线性对运算过程的运算速度,减少了双线性对运算过程的时间。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请提供的嵌入式系统中加快SM9双线性对运算的实现方法的流程示意图;
图2为本申请提供的嵌入式系统中加快SM9双线性对运算的实现装置的结构示意图。
具体实施方式
本申请提出一种嵌入式系统中加快SM9双线性对运算的实现方法及装置,下面结合附图,对本申请具体实施方式进行详细说明。
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
对于本申请,在进行双线性对的线函数点倍运算过程中,涉及到了几个参数,包括:第一数据组(f)、第二数据组(g)、存储于第一寄存器中的二次扩域上的第三坐标数据(G3(x3,y3,z3))、存储于第二寄存器中的二次扩域上的第一空间坐标数据(T1(A1,B1))、存储于第三寄存器中的二次扩域上的第二空间坐标数据(T2(A2,B2))、存储于第四寄存器中的二次扩域上的第三空间坐标数据(T3(A3,B3))和存储于第五寄存器中的一次扩域上的第一坐标数据(G1(x1,y1));
其中,数据组f和数据组g是十二次域的数据(a0,,,,,,,,,,,a11),是十二维256比特的数据,原始值为1、即a0......a10全为0,a11值为1;
数据组f的十二维数据可以表示为f1、f2、f3、......、f11、f12;每一维数据对应存储于RAM(random access memory,随机存取存储器)的一个存储区中,如f1存储于第一存储区中、f2存储于第二存储区中、......、f11存储于第十一存储区中、f12存储于第十二存储区中;
一次扩域上的点坐标G1(x1,y1);x1、y1均为256比特数据;
二次扩域上的点坐标G3(x3,y3,z3);x3、y3、z3均为2*256比特数据;
二次扩域上的空间坐标T1、T2及T3均为2*256比特的数据;
输出:f=fttp(G1,G3)(线性对输出,12个256比特)。
基于上述参数,如图1所示,为本申请提供的嵌入式系统中加快SM9双线性对运算的实现方法及装置的流程示意图,该方法包括如下步骤:
步骤S1,协处理器对第一寄存器中的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将第一运算结果存储到对应的第二寄存器中及将第二运算结果存储到对应的第三寄存器中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第一寄存器中的第一数据进行二次扩域平方运算,得到第一运算结果,将第一运算结果存储到第二寄存器中;协处理器对第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将第二运算结果存储到第三寄存器中。
具体地,协处理器对第一寄存器中第三坐标数据G3的x3坐标值进行二次扩域平方运算,得到相应的运算结果,并存储到第二寄存器中;协处理器对第一寄存器中第三坐标数据G3的z3坐标值进行二次扩域平方运算,得到相应的运算结果,并存储到第三寄存器中。
步骤S2,协处理器对第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将运算结果存储到第四寄存器中。
步骤S3,协处理器对第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新第四寄存器中的数据。
在一个可能地实现方式中,协处理器对第四寄存器中第三空间坐标数据T3的A3坐标值和第五寄存器中第一坐标数据G1的x1坐标值进行一次扩域乘法运算,将得到的运算结果更新第四寄存器中第三空间坐标数据T3的A3坐标值;协处理器对第四寄存器中第三空间坐标数据T3的B3坐标值和第五寄存器中第一坐标数据G1的x1坐标值进行一次扩域乘法运算,将得到的运算结果更新第四寄存器中第三空间坐标数据T3的B3坐标值。
步骤S4,协处理器对第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
协处理器对RAM的第三存储区中的数据、RAM的第四存储区中的数据和第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果分别更新RAM的第三存储区中的数据和RAM的第四存储区中的数据。
在一个可能地实现方式中,协处理器对第四寄存器中的第三空间坐标数据T3和其自身进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区中;协处理器对第三存储区中的数据f3和第四寄存器中的第三空间坐标数据T3进行二次扩域加法运算,将得到的运算结果更新RAM的第三存储区中的数据;协处理器对第四存储区中的数据f4和第四寄存器中的第三空间坐标数据T3进行二次扩域加法运算,将得到的运算结果更新RAM的第四存储区中的数据。
步骤S5,协处理器对RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新RAM的第三存储区中的数据和第四存储区中的数据。
步骤S6,协处理器对第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将第一运算结果更新第二寄存器中的数据及将第二运算结果更新第三寄存器中的数据。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第一寄存器的第一数据和第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将第一运算结果更新第二寄存器中的数据;协处理器对第一寄存器的第二数据和第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将第二运算结果更新第三寄存器中的数据。
具体地,协处理器对第一寄存器中第三坐标数据G3的x3坐标值与第二寄存器中第一空间坐标数据T1进行二次扩域乘法运算,得到相应的运算结果,并将该运算结果更新第二寄存器中的数据;协处理器对第一寄存器中第三坐标数据G3的z3坐标值与第三寄存器中第二空间坐标数据T2进行二次扩域乘法运算,得到相应的运算结果,并将该运算结果更新第三寄存器中的数据。
步骤S7,协处理器对第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新第四寄存器中的数据。
在一个可能地实现方式中,协处理器对第三寄存器中的数据与其自身进行二次扩域加法运算,将得到的运算结果更新第四寄存器中的数据。
步骤S8,协处理器对第二寄存器中的数据和第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新第二寄存器中的数据。
步骤S9,协处理器对RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理。
在一个可能地实现方式中,协处理器对RAM的第十一存储区中的数据f11和第十二存储区中的数据f12进行清零处理。
步骤S10,协处理器对第三寄存器中的数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第九存储区和第十存储区中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第三寄存器中的第一数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第九存储区中;协处理器对第三寄存器中的第二数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十存储区中。
具体地,协处理器对第三寄存器中的第二空间坐标数据T2的A2坐标值和RAM的第十一存储区中的数据f11进行二次扩域减法运算,将得到的运算结果存储到RAM的第九存储区的数据f9中;协处理器对第三寄存器中的第二空间坐标数据T2的B2坐标值和RAM的第十一存储区中的数据f11进行二次扩域减法运算,将得到的运算结果存储到RAM的第十存储区的数据f10中。
步骤S11,协处理器对第五寄存器中的数据和RAM的存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的存储区中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第五寄存器中的第二数据和RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;
协处理器对第五寄存器中的第二数据和RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;
协处理器对第五寄存器中的第二数据和RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十一存储区中;
协处理器对第五寄存器中的第二数据和RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十二存储区中。
具体地,协处理器获取第五寄存器中的第一坐标数据G1的y1坐标值分别与RAM的第九存储区、第十存储区、第十一存储区和第十二存储区中的数据进行二次扩域乘法运算,并将得到的运算结果对应更新到各自的存储区中。
步骤S12,协处理器对第一寄存器中的数据和RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到RAM的存储区中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对RAM的第十一存储区中的数据和第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十一存储区中;
具体地,协处理器对RAM的第十一存储区中的数据f11与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域减法运算,将得到的运算结果更新RAM的第十一存储区中的数据f11;
协处理器对RAM的第十二存储区中的数据和第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十二存储区中;
具体地,协处理器对RAM的第十二存储区中的数据f12与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域减法运算,将得到的运算结果更新RAM的第十二存储区中的数据f12;
协处理器对RAM的第九存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;
具体地,协处理器对RAM的第九存储区中的数据f9与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第九存储区中的数据f9;
协处理器对RAM的第十存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;
具体地,协处理器对RAM的第十存储区中的数据f10与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第十存储区中的数据f10;
协处理器对RAM的第九存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;
具体地,协处理器对RAM的第九存储区中的数据f9与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第九存储区中的数据f9;
协处理器对RAM的第十存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;
具体地,协处理器对RAM的第十存储区中的数据f10与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第十存储区中的数据f10;
协处理器对RAM的第十一存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十一存储区中;
具体地,协处理器对RAM的第十一存储区中的数据f11与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第十一存储区中的数据f11;
协处理器对RAM的第十二存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十二存储区中。
具体地,协处理器对RAM的第十二存储区中的数据f12与第一寄存器中的第三坐标数据G3的y3坐标值进行二次扩域乘法运算,将得到的运算结果更新RAM的第十二存储区中的数据f12。
步骤S13,协处理器对RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的存储区中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第九存储区中;
协处理器对RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十存储区中;
协处理器对RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十一存储区中;
协处理器对RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十二存储区中。
步骤S14,协处理器对第二寄存器中的数据和RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的存储区中。
在一个可能地实现方式中,上述处理具体包括:
协处理器对第二寄存器中的数据和RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第十一存储区中;
协处理器对第二寄存器中的数据和RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第十二存储区中。
步骤S15,协处理器将RAM中的数据存入第六寄存器的数据组中。
在一个可能地实现方式中,协处理器在进行完前述处理后,将RAM中的所有数据(数据f1至数据f12)存入到第六寄存器的第二数据组g中。
本申请中,通过SM9密码系统中双线性对的线函数点倍过程的运算,加快了双线性对运算过程的运算速度,减少了双线性对运算过程的时间。
基于上述本申请所提供的嵌入式系统中加快SM9双线性对运算的实现方法的技术方案,本申请对应提供了一种嵌入式系统中加快SM9双线性对运算的实现装置的结构示意图,如图2所示,本申请的嵌入式系统中加快SM9双线性对运算的实现装置20中,第一寄存器中预存储有第三坐标数据,第五寄存器中预存储有第一坐标数据,该装置可以包括:
第一处理模块21,用于对第一寄存器中的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将第一运算结果存储到对应的第二寄存器中及将第二运算结果存储到对应的第三寄存器中;
第二处理模块22,用于对第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将运算结果存储到第四寄存器中;
第三处理模块23,用于对第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新第四寄存器中的数据;
第四处理模块24,用于对第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
第五处理模块25,用于对RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新RAM的第三存储区中的数据和第四存储区中的数据;
第六处理模块26,用于对第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将第一运算结果更新第二寄存器中的数据及将第二运算结果更新第三寄存器中的数据;
第七处理模块27,用于对第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新第四寄存器中的数据;
第八处理模块28,用于对第二寄存器中的数据和第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新第二寄存器中的数据;
第九处理模块29,用于对RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理;
第十处理模块210,用于对第三寄存器中的数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第九存储区和第十存储区中;
第十一处理模块211,用于对第三寄存器中的数据和RAM的存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的存储区中;
第十二处理模块212,用于对第一寄存器中的数据和RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到RAM的存储区中;
第十三处理模块213,用于对RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的存储区中;
第十四处理模块214,用于对第二寄存器中的数据和RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的存储区中;
第十五处理模块215,用于将RAM中的数据存入第六寄存器的数据组中。
在一个可能地实现方式中,第一处理模块21,用于对第一寄存器中的第一数据进行二次扩域乘法运算,得到第一运算结果,将第一运算结果存储到第二寄存器中;对第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将第二运算结果存储到第三寄存器中。
在一个可能地实现方式中,第四处理模块24,用于对第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;对第四寄存器中的数据和RAM的第三存储区中的数据进行二次扩域加法运算,将得到的运算结果更新RAM的第三存储区中的数据;对第四寄存器中的数据和RAM的第四存储区中的数据进行二次扩域加法运算,将得到的运算结果更新RAM的第四存储区中的数据。
在一个可能地实现方式中,第六处理模块26,用于对第一寄存器的第一数据和第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将第一运算结果更新第二寄存器中的数据;对第一寄存器的第二数据和第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将第二运算结果更新第三寄存器中的数据。
在一个可能地实现方式中,第十处理模块210,用于对第三寄存器中的第一数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第九存储区中;对第三寄存器中的第二数据和RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十存储区中。
在一个可能地实现方式中,第十一处理模块211,用于对第五寄存器中的第二数据和RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;对第五寄存器中的第二数据和RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;对第五寄存器中的第二数据和RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十一存储区中;对第五寄存器中的第二数据和RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十二存储区中。
在一个可能地实现方式中,第十二处理模块212,用于对RAM的第十一存储区中的数据和第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十一存储区中;对RAM的第十二存储区中的数据和第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到RAM的第十二存储区中;对RAM的第九存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;对RAM的第十存储区中的数据和第一寄存器中的数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;对RAM的第九存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第九存储区中;对RAM的第十存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十存储区中;对RAM的第十一存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十一存储区中;对RAM的第十二存储区中的数据和第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到RAM的第十二存储区中。
在一个可能地实现方式中,第十三处理模块213,用于对RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第九存储区中;对RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十存储区中;对RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十一存储区中;器对RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到RAM的第十二存储区中。
在一个可能地实现方式中,第十四处理模块214,用于对第二寄存器中的数据和RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第十一存储区中;对第二寄存器中的数据和RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第十二存储区中。
本申请中,通过SM9密码系统中双线性对的线函数点倍过程的运算,加快了双线性对运算过程的运算速度,减少了双线性对运算过程的时间。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (16)
1.一种嵌入式系统中加快SM9双线性对运算的实现方法,其特征在于,第一寄存器中预存储有第三坐标数据,第五寄存器中预存储有第一坐标数据,包括如下步骤:
步骤S1,协处理器对第一寄存器中的第一数据进行二次扩域乘法运算,得到第一运算结果,所述协处理器对所述第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将所述第一运算结果存储到对应的第二寄存器中及将所述第二运算结果存储到对应的第三寄存器中;
步骤S2,所述协处理器对所述第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将所述运算结果存储到第四寄存器中;
步骤S3,所述协处理器对所述第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新所述第四寄存器中的数据;
步骤S4,所述协处理器对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
步骤S5,所述协处理器对所述RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新所述RAM的第三存储区中的数据和第四存储区中的数据;
步骤S6,所述协处理器对所述第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果更新所述第二寄存器中的数据及将所述第二运算结果更新所述第三寄存器中的数据;
步骤S7,所述协处理器对所述第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第四寄存器中的数据;
步骤S8,所述协处理器对所述第二寄存器中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第二寄存器中的数据;
步骤S9,所述协处理器对所述RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理;
步骤S10,所述协处理器对所述第三寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区和第十存储区中;
步骤S11,所述协处理器对所述第五寄存器中的第二数据和所述RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中,以及,对所述第五寄存器中的第二数据和所述RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
步骤S12,所述协处理器对所述第一寄存器中的数据和所述RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S13,所述协处理器对所述RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S14,所述协处理器对所述第二寄存器中的数据和所述RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
步骤S15,所述协处理器将所述RAM中的数据存入第六寄存器的数据组中。
2.如权利要求1所述的方法,其特征在于,所述步骤S4,包括:
所述协处理器对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
所述协处理器对所述RAM的第三存储区中的数据、所述RAM的第四存储区中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果分别更新所述RAM的第三存储区中的数据和所述RAM的第四存储区中的数据。
3.如权利要求1所述的方法,其特征在于,所述步骤S6,包括:
所述协处理器对所述第一寄存器的第一数据和所述第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将所述第一运算结果更新所述第二寄存器中的数据;
所述协处理器对所述第一寄存器的第二数据和所述第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果更新所述第三寄存器中的数据。
4.如权利要求1所述的方法,其特征在于,所述步骤S10,包括:
所述协处理器对所述第三寄存器中的第一数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述第三寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十存储区中。
5.如权利要求1所述的方法,其特征在于,所述步骤S11还包括:
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述第五寄存器中的第二数据和所述RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
6.如权利要求5所述的方法,其特征在于,所述步骤S12,包括:
所述协处理器对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十二存储区中;
所述协处理器对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据再次进行二次扩域乘法运算,将新得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据再次进行二次扩域乘法运算,将新得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
7.如权利要求6所述的方法,其特征在于,所述步骤S13,包括:
所述协处理器对所述RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第九存储区中;
所述协处理器对所述RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十存储区中;
所述协处理器对所述RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
8.如权利要求7所述的方法,其特征在于,所述步骤S14,包括:
所述协处理器对所述第二寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;
所述协处理器对所述第二寄存器中的数据和所述RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
9.一种嵌入式系统中加快SM9双线性对运算的实现装置,其特征在于,第一寄存器中预存储有第三坐标数据,第五寄存器中预存储有第一坐标数据,包括:
第一处理模块,用于对第一寄存器中的第一数据进行二次扩域乘法运算,得到对应的第一运算结果,协处理器对所述第一寄存器中的第二数据进行二次扩域乘法运算,得到第二运算结果,将所述第一运算结果存储到对应的第二寄存器中及将所述第二运算结果存储到对应的第三寄存器中;
第二处理模块,用于对所述第二寄存器中的数据和第三寄存器中的数据进行二次扩域乘法运算,得到对应的运算结果,将所述运算结果存储到第四寄存器中;
第三处理模块,用于对所述第四寄存器中的数据和第五寄存器中的数据进行一次扩域乘法运算,将得到的运算结果更新所述第四寄存器中的数据;
第四处理模块,用于对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;
第五处理模块,用于对所述RAM的第三存储区中的数据和第四存储区中的数据进行逆元运算,将得到的运算结果更新所述RAM的第三存储区中的数据和第四存储区中的数据;
第六处理模块,用于对所述第一寄存器的数据进行二次扩域乘法运算,得到对应的第一运算结果和第二运算结果,将所述第一运算结果更新所述第二寄存器中的数据及将所述第二运算结果更新所述第三寄存器中的数据;
第七处理模块,用于对所述第三寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第四寄存器中的数据;
第八处理模块,用于对所述第二寄存器中的数据和所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果更新所述第二寄存器中的数据;
第九处理模块,用于对所述RAM的第十一存储区中的数据和第十二存储区中的数据进行清零处理;
第十处理模块,用于对所述第三寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区和第十存储区中;
第十一处理模块,用于对所述第五寄存器中的第二数据和所述RAM的第九存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中,以及,对所述第五寄存器中的第二数据和所述RAM的第十存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;
第十二处理模块,用于对所述第一寄存器中的数据和所述RAM的存储区中的数据进行二次扩域运算,将得到的运算结果存储到所述RAM的存储区中;
第十三处理模块,用于对所述RAM的存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
第十四处理模块,用于对所述第二寄存器中的数据和所述RAM的存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的存储区中;
第十五处理模块,用于将所述RAM中的数据存入第六寄存器的数据组中。
10.如权利要求9所述的装置,其特征在于,所述第四处理模块,用于对所述第四寄存器中的数据进行二次扩域加法运算,将得到的运算结果存储到RAM的第三存储区和第四存储区;对所述第四寄存器中的数据和所述RAM的第三存储区中的数据进行二次扩域加法运算,将得到的运算结果更新所述RAM的第三存储区中的数据;对所述第四寄存器中的数据和所述RAM的第四存储区中的数据进行二次扩域加法运算,将得到的运算结果更新所述RAM的第四存储区中的数据。
11.如权利要求9所述的装置,其特征在于,所述第六处理模块,用于对所述第一寄存器的第一数据和所述第二寄存器中的数据进行二次扩域乘法运算,得到第一运算结果,将所述第一运算结果更新所述第二寄存器中的数据;对所述第一寄存器的第二数据和所述第三寄存器中的数据进行二次扩域乘法运算,得到第二运算结果,将所述第二运算结果更新所述第三寄存器中的数据。
12.如权利要求9所述的装置,其特征在于,所述第十处理模块,用于对所述第三寄存器中的第一数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述第三寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十存储区中。
13.如权利要求9所述的装置,其特征在于,所述第十一处理模块,还用于对所述第五寄存器中的第二数据和所述RAM的第十一存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述第五寄存器中的第二数据和所述RAM的第十二存储区中的数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
14.如权利要求13所述的装置,其特征在于,所述第十二处理模块,用于对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域减法运算,将得到的运算结果存储到所述RAM的第十二存储区中;对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第九存储区中的数据和所述第一寄存器中的第三数据再次进行二次扩域乘法运算,将新得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据和所述第一寄存器中的第三数据再次进行二次扩域乘法运算,将新得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第十一存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述RAM的第十二存储区中的数据和所述第一寄存器中的第三数据进行二次扩域乘法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
15.如权利要求14所述的装置,其特征在于,所述第十三处理模块,用于对所述RAM的第九存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第九存储区中;对所述RAM的第十存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十存储区中;对所述RAM的第十一存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;器对所述RAM的第十二存储区中的数据进行四次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
16.如权利要求15所述的装置,其特征在于,所述第十四处理模块,用于对所述第二寄存器中的数据和所述RAM的第十一存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十一存储区中;对所述第二寄存器中的数据和所述RAM的第十二存储区中的数据进行二次扩域加法运算,将得到的运算结果存储到所述RAM的第十二存储区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011616501.4A CN112769557B (zh) | 2020-12-30 | 2020-12-30 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011616501.4A CN112769557B (zh) | 2020-12-30 | 2020-12-30 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769557A CN112769557A (zh) | 2021-05-07 |
CN112769557B true CN112769557B (zh) | 2022-10-18 |
Family
ID=75697779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011616501.4A Active CN112769557B (zh) | 2020-12-30 | 2020-12-30 | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769557B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006112114A1 (ja) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | データ暗号化装置及びデータ暗号化方法 |
CN107896142A (zh) * | 2017-10-11 | 2018-04-10 | 大唐微电子技术有限公司 | 一种执行模幂运算的方法及装置、计算机可读存储介质 |
CN108650078A (zh) * | 2018-03-22 | 2018-10-12 | 北京中电华大电子设计有限责任公司 | 一种sm9标识密码算法的加速方法 |
WO2019101134A1 (zh) * | 2017-11-23 | 2019-05-31 | 云图有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN110677249A (zh) * | 2019-03-25 | 2020-01-10 | 深圳奥联信息安全技术有限公司 | 基于双线性对的密码系统实现方法和密码系统 |
-
2020
- 2020-12-30 CN CN202011616501.4A patent/CN112769557B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006112114A1 (ja) * | 2005-03-31 | 2006-10-26 | Matsushita Electric Industrial Co., Ltd. | データ暗号化装置及びデータ暗号化方法 |
CN107896142A (zh) * | 2017-10-11 | 2018-04-10 | 大唐微电子技术有限公司 | 一种执行模幂运算的方法及装置、计算机可读存储介质 |
WO2019101134A1 (zh) * | 2017-11-23 | 2019-05-31 | 云图有限公司 | 一种多分布式的sm9解密方法与介质及密钥生成方法 |
CN108650078A (zh) * | 2018-03-22 | 2018-10-12 | 北京中电华大电子设计有限责任公司 | 一种sm9标识密码算法的加速方法 |
CN110677249A (zh) * | 2019-03-25 | 2020-01-10 | 深圳奥联信息安全技术有限公司 | 基于双线性对的密码系统实现方法和密码系统 |
Non-Patent Citations (1)
Title |
---|
国密SM9中R-ate双线性对快速计算;甘植旺 等;《计算机工程》;20190630;第45卷(第6期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112769557A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Çavuşoğlu et al. | A novel hybrid encryption algorithm based on chaos and S-AES algorithm | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
Zhang et al. | Cryptanalysis of S-box-only chaotic image ciphers against chosen plaintext attack | |
CN107005404B (zh) | 实现密码算法的可执行的白盒掩码实施的处理器装置 | |
Hermassi et al. | Improvement of an image encryption algorithm based on hyper-chaos | |
Wen et al. | Differential attack on a hyper-chaos-based image cryptosystem with a classic bi-modular architecture | |
Aboytes-González et al. | Design of a strong S-box based on a matrix approach | |
JP5000365B2 (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
JP2012521136A (ja) | ネットワークにおけるセキュア通信に関する方法、通信デバイス、ネットワーク及びコンピュータプログラム | |
Norouzi et al. | Breaking a novel image encryption scheme based on an improper fractional order chaotic system | |
Bogos et al. | Cryptanalysis of a homomorphic encryption scheme | |
Hanchinamani et al. | An efficient image encryption scheme based on a Peter De Jong chaotic map and a RC4 stream cipher | |
Jawad et al. | Chaotic map-embedded Blowfish algorithm for security enhancement of colour image encryption | |
EA027214B1 (ru) | Способ шифрования данных с хаотическими изменениями раундового ключа на основе динамического хаоса | |
US20220012186A1 (en) | Diversifying a base symmetric key based on a public key | |
CN112769553B (zh) | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 | |
Li et al. | A parallel image encryption algorithm based on chaotic Duffing oscillators | |
US20130114805A1 (en) | Encryption system using discrete chaos function | |
Li et al. | Cryptanalysis of a secure image encryption scheme based on a novel 2D sine–cosine cross‑chaotic map | |
Muktyas et al. | Digital image encryption algorithm through unimodular matrix and logistic map using Python | |
CN112769557B (zh) | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 | |
CN112769556B (zh) | 嵌入式系统中加快sm9双线性对运算的实现方法及装置 | |
Smaoui et al. | Cryptography with chaos and shadowing | |
Arroyo et al. | Caesar cipher with goldbach code compression for efficient cryptography | |
Manjula et al. | Color image encryption and decryption using DES algorithm |
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 |