CN112769552A - 一种在嵌入式系统中加快线性对运算的实现方法及装置 - Google Patents

一种在嵌入式系统中加快线性对运算的实现方法及装置 Download PDF

Info

Publication number
CN112769552A
CN112769552A CN202011609314.3A CN202011609314A CN112769552A CN 112769552 A CN112769552 A CN 112769552A CN 202011609314 A CN202011609314 A CN 202011609314A CN 112769552 A CN112769552 A CN 112769552A
Authority
CN
China
Prior art keywords
register
data
result
updates
coprocessor
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.)
Granted
Application number
CN202011609314.3A
Other languages
English (en)
Other versions
CN112769552B (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.)
Beijing Hongsi Electronic Technology Co ltd
Original Assignee
Beijing Hongsi Electronic 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 Beijing Hongsi Electronic Technology Co ltd filed Critical Beijing Hongsi Electronic Technology Co ltd
Priority to CN202011609314.3A priority Critical patent/CN112769552B/zh
Publication of CN112769552A publication Critical patent/CN112769552A/zh
Application granted granted Critical
Publication of CN112769552B publication Critical patent/CN112769552B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Advance Control (AREA)

Abstract

本发明公开一种在嵌入式系统中加快线性对运算的实现方法及装置,涉及信息安全领域。该方法包括:协处理器获取第一预设值、第二预设值、获取第一数据组;将第一数据组存储到第二寄存器中;对第一预设值、第二预设值、第一寄存器中的数据、第二寄存器中的数据、第三寄存器中的数据、第四寄存器中的数据、第五寄存器中的数据、第六寄存器中的数据、第七寄存器中的数据进行计算得到线性对运算结果并保存。本发明技术方案应用于解密、签名等过程,通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明技术方案的各种安全应用的效率。

Description

一种在嵌入式系统中加快线性对运算的实现方法及装置
技术领域
本发明涉及信息安全领域,尤其涉及一种在嵌入式系统中加快线性对运算的实现方法及装置。
背景技术
当前,IBC(标识密码系统)快速发展,该系统理论上可去除CA(证书颁发机构),从而在使用上存在很大的便利性;而SM9是国际标准中唯一的一套标识密码系统。SM9算法不需要申请数字证书,适用于互联网行业的各种新兴应用。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等各种安全应用中。这些安全应用可采用手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署的特点。SM9密码系统运算的核心部分为线性对运算,而线性对运算中最耗时部分为Final Exponentiation运算,该运算的表示形式为
Figure BDA0002870908430000011
如果直接强制运算,运算时间特别长,将导致使用SM9的各种安全应用的效率降低。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种在嵌入式系统中加快线性对运算的实现方法及装置。
本发明提供了一种在嵌入式系统中加快线性对运算的实现方法,包括:
步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;
步骤S2:所述协处理器对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;
步骤S3:所述协处理器对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;
步骤S4:所述协处理器对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;
步骤S5:所述协处理器更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;
步骤S6:所述协处理器对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S7:所述协处理器更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S8:所述协处理器根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。
进一步地,所述步骤S2包括:
步骤S2-1:所述协处理器用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;
步骤S2-2:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
步骤S2-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-4:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;
步骤S2-5:所述协处理器用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-6:所述协处理器用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。
进一步地,所述步骤S3包括:
步骤S3-1:所述协处理器用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S3-2:所述协处理器用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S3-3:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。
进一步地,所述步骤S4包括:
步骤S4-1:所述协处理器对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;
步骤S4-2:所述协处理器用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-4:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-5:所述协处理器用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-6:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;
步骤S4-7:所述协处理器用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-8:所述协处理器对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-9:所述协处理器对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;
步骤S4-10:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。
进一步地,所述步骤S5包括:
步骤S5-1:所述协处理器对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;
步骤S5-2:所述协处理器用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S5-3:所述协处理器对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄存器中的数据。
进一步地,所述步骤S6包括:
步骤S6-1:所述协处理器对所述第二寄存器中的数据进行逆元计算并用计算结果更新所述第二寄存器中的数据;
步骤S6-2:所述协处理器对所述第六寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-3:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-4:所述协处理器对所述第七寄存器中的数据与所述第七寄存器中的数据进行12次域乘法运算并用运算结果更新所述第七寄存器中的数据;
步骤S6-5:所述协处理器对所述第七寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-6:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-7:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-8:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
进一步地,所述步骤S7包括:
步骤S7-1:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-2:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-3:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-4:所述协处理器对所述第四寄存器中的数据与所述第二寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
进一步地,所述步骤S8包括:
步骤S8-1:所述协处理器对所述第四寄存器中的数据与所述第一寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S8-2:所述协处理器对所述第五寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S8-3:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据,将所述第二寄存器中的数据作为线性对运算结果进行保存。
本发明又提供了一种在嵌入式系统中加快线性对运算的实现装置,所述装置设置在协处理器中,所述装置包括:
获取分配存储模块,用于获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;
计算存储更新模块,用于对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;
第一计算更新模块,用于对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;
第二计算更新模块,用于对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;
第三计算更新模块,用于更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;
第四计算更新模块,用于对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
第五计算更新模块,用于更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
第六计算更新模块,用于根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。
进一步地,所述计算存储更新模块包括:
第一计算存储单元,用于用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;
第一运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
第二运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第三运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;
第四运算更新单元,用于用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第五运算更新单元,用于用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。
进一步地,所述第一计算更新模块包括:
第六运算更新单元,用于用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第七运算更新单元,用于用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第八运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。
进一步地,所述第二计算更新模块包括:
第九运算更新单元,用于对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;
第十运算更新单元,用于用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第十一运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第十二运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;
第十三运算更新单元,用于用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第十四运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;
第十五运算更新单元,用于用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第十六运算更新单元,用于对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第十七运算更新单元,用于对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;
第十八运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。
进一步地,所述第三计算更新模块包括:
第十九运算更新单元,用于对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;
第二十运算更新单元,用于用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第二十一运算更新单元,用于对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄存器中的数据。
进一步地,所述第四计算更新模块包括:
第二十二运算更新单元,用于对所述第二寄存器中的数据进行逆元计算并用计算结果更新所述第二寄存器中的数据;
第二十三运算更新单元,用于对所述第六寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第二十四运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十五运算更新单元,用于对所述第七寄存器中的数据与所述第七寄存器中的数据进行12次域乘法运算并用运算结果更新所述第七寄存器中的数据;
第二十六运算更新单元,用于对所述第七寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第二十七运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十八运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十九运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
进一步地,所述第五计算更新模块包括:
第三十运算更新单元,用于对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十一运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十二运算更新单元,用于对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十三运算更新单元,用于对所述第四寄存器中的数据与所述第二寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
进一步地,所述第六计算更新模块包括:
第三十四运算更新单元,用于对所述第四寄存器中的数据与所述第一寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十五运算更新单元,用于对所述第五寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第三十六运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据,将所述第二寄存器中的数据作为线性对运算结果进行保存。
本发明与现有技术相比,具有用下优点:本发明技术方案应用于解密、签名等过程,通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明技术方案的各种安全应用的效率。
附图说明
图1为本发明实施例一提供的一种在嵌入式系统中加快线性对运算的实现方法流程图;
图2和图3为本发明实施例二提供的一种在嵌入式系统中加快线性对运算的实现方法流程图;
图4为本发明实施例三提供的一种在嵌入式系统中加快线性对运算的实现装置方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供了一种在嵌入式系统中加快线性对运算的实现方法,如图1所示,包括:
步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将第一数据组存储到第二寄存器中;
具体的,本实施例中的第一数据组为12维数据;
步骤S2:协处理器对第二寄存器中的数据和第一预设值进行计算并将计算结果存储到第六寄存器中,对第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对第四寄存器中的数据、第二寄存器中的数据和第一预设值进行计算并用计算结果更新第六寄存器中的数据;
具体的,在本实施例中,步骤S2包括:
步骤S2-1:协处理器用第一预设值作为底数进行6次幂运算得到第一中间值,将第二寄存器中的数据作为底数、第一中间值作为指数进行幂运算并将运算结果存储到第六寄存器中;对第二寄存器中的数据进行逆元计算并将计算结果存储到第四寄存器中;
步骤S2-2:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
步骤S2-3:协处理器用第一预设值作为底数进行2次幂运算得到第二中间值,用第六寄存器中的数据作为底数、第二中间值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤S2-4:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据;
步骤S2-5:协处理器用第二寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤S2-6:协处理器用第四寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第六寄存器中的数据;
步骤S3:协处理器对第六寄存器中的数据、第二预设值和第一预设值进行计算并将计算结果存储到第五寄存器中,根据第五寄存器中的数据更新第三寄存器中的数据;
具体的,在本实施例中,步骤S3包括:
步骤S3-1:协处理器用第六寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤S3-2:协处理器用第三寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤S3-3:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据;
步骤S4:协处理器对第三寄存器中的数据进行计算并将计算结果存储到第七寄存器中,对第五寄存器中的数据、第二寄存器中的数据、第一预设值进行计算并用计算结果更新第三寄存器中的数据;
具体的,在本实施例中,步骤S4包括:
步骤S4-1:协处理器对第三寄存器中的数据进行逆元计算并用计算结果更新第七寄存器中的数据;
步骤S4-2:协处理器用第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤S4-3:协处理器用第一预设值作为底数进行2次幂运算得到第三中间值,用第二寄存器中的数据作为底数、第三中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤S4-4:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据;
步骤S4-5:协处理器用第一预设值作为底数进行3次幂运算得到第四中间值,用第二寄存器中的数据作为底数、第四中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤S4-6:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并将运算结果存储到第一寄存器中;
步骤S4-7:协处理器用第六寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤S4-8:协处理器对第四寄存器中的数据与第三寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S4-9:协处理器对第五寄存器中的数据进行逆元计算并用计算结果更新第五寄存器中的数据;
步骤S4-10:协处理器用第一预设值作为底数进行2次幂运算得到第五中间值,用第六寄存器中的数据作为底数、第五中间值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤S5:协处理器更新第六寄存器中的数据,对第六寄存器中的数据和第一预设值进行计算并用计算结果更新第四寄存器中的数据;
具体的,在本实施例中,步骤S5包括:
步骤S5-1:协处理器对第六寄存器中的数据进行逆元计算并用计算结果更新第六寄存器中的数据;
步骤S5-2:协处理器用第四寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤S5-3:协处理器对第四寄存器中的数据进行逆元计算并用计算结果更新第四寄存器中的数据;
步骤S6:协处理器对第六寄存器中的数据、第四寄存器中的数据和第七寄存器中的数据进行计算并用计算结果更新第五寄存器中的数据;
具体的,在本实施例中,步骤S6包括:
步骤S6-1:协处理器对第二寄存器中的数据进行逆元计算并用计算结果更新第二寄存器中的数据;
步骤S6-2:协处理器对第六寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S6-3:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S6-4:协处理器对第七寄存器中的数据与第七寄存器中的数据进行12次域乘法运算并用运算结果更新第七寄存器中的数据;
步骤S6-5:协处理器对第七寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S6-6:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S6-7:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S6-8:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S7:协处理器更新第四寄存器中的数据,对第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新第五寄存器中的数据;
具体的,在本实施例中,步骤S7包括:
步骤S7-1:协处理器对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S7-2:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S7-3:协处理器对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S7-4:协处理器对第四寄存器中的数据与第二寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S8:协处理器根据第四寄存器中的数据和第一寄存器中的数据更新第四寄存器中的数据,对第五寄存器中的数据和第四寄存器中的数据进行计算得到线性对运算结果并保存;
具体的,在本实施例中,步骤S8包括:
步骤S8-1:协处理器对第四寄存器中的数据与第一寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤S8-2:协处理器对第五寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤S8-3:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据,将第二寄存器中的数据作为线性对运算结果进行保存。
本发明实施例中的线性对运算结果应用在各种安全应用(密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等)中,参与使用私钥进行解密或使用私钥进行签名的过程。本发明实施例通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明技术方案的各种安全应用的效率。
实施例二
本发明实施例二提供了一种在嵌入式系统中加快线性对运算的实现方法,如图2和图3所示,包括:
步骤101:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将第一数据组存储到第二寄存器中;
在本实施例中,第一数据组为12维256bit的数据,例如为f(a0,,,,,,,,,,,a11);
步骤102:协处理器用第一预设值作为底数进行6次幂运算得到第一中间值,将第二寄存器中的数据作为底数、第一中间值作为指数进行计算并将计算结果存储到第六寄存器中;对第二寄存器中的数据进行逆元计算并将计算结果存储到第四寄存器中;
步骤103:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
步骤104:协处理器用第一预设值作为底数进行2次幂运算得到第二中间值,用第六寄存器中的数据作为底数、第二中间值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤105:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据;
步骤106:协处理器用第二寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤107:协处理器用第四寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第六寄存器中的数据;
步骤108:协处理器用第六寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤109:协处理器用第三寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤110:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据;
步骤111:协处理器对第三寄存器中的数据进行逆元计算并用计算结果更新第七寄存器中的数据;
步骤112:协处理器用第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤113:协处理器用第一预设值作为底数进行2次幂运算得到第三中间值,用第二寄存器中的数据作为底数、第三中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤114:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据;
步骤115:协处理器用第一预设值作为底数进行3次幂运算得到第四中间值,用第二寄存器中的数据作为底数、第四中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
步骤116:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并将运算结果存储到第一寄存器中;
步骤117:协处理器用第六寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤118:协处理器对第四寄存器中的数据与第三寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤119:协处理器对第五寄存器中的数据进行逆元计算并用计算结果更新第五寄存器中的数据;
步骤120:协处理器用第一预设值作为底数进行2次幂运算得到第五中间值,用第六寄存器中的数据作为底数、第五中间值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
步骤121:协处理器对第六寄存器中的数据进行逆元计算并用计算结果更新第六寄存器中的数据;
步骤122:协处理器用第四寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
步骤123:协处理器对第四寄存器中的数据进行逆元计算并用计算结果更新第四寄存器中的数据;
步骤124:协处理器对第二寄存器中的数据进行逆元计算并用计算结果更新第二寄存器中的数据;
步骤125:协处理器对第六寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤126:协处理器对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤127:协处理器对第七寄存器中的数据与第七寄存器中的数据进行12次域乘法运算并用运算结果更新第七寄存器中的数据;
步骤128:协处理器对第七寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤129:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤130:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤131:协处理器对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤132:协处理器对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤133:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤134:协处理器对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤135:协处理器对第四寄存器中的数据与第二寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤136:协处理器对第四寄存器中的数据与第一寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
步骤137:协处理器对第五寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
步骤138:协处理器对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据,将第二寄存器中的数据作为线性对运算结果进行保存。
本发明实施例中的线性对运算结果应用在各种安全应用(密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等)中,参与使用私钥进行解密或使用私钥进行签名的过程。本发明实施例通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明技术方案的各种安全应用的效率。
实施例三
本发明实施例三提供了一种在嵌入式系统中加快线性对运算的实现装置,该装置设置在协处理器中,如图4所示,本实施例的装置包括:
获取分配存储模块401,用于获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将第一数据组存储到第二寄存器中;第一数据组为12维数据;
计算存储更新模块402,用于对第二寄存器中的数据和第一预设值进行计算并将计算结果存储到第六寄存器中,对第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对第四寄存器中的数据、第二寄存器中的数据和第一预设值进行计算并用计算结果更新第六寄存器中的数据;
第一计算更新模块403,用于对第六寄存器中的数据、第二预设值和第一预设值进行计算并将计算结果存储到第五寄存器中,根据第五寄存器中的数据更新第三寄存器中的数据;
第二计算更新模块404,用于对第三寄存器中的数据进行计算并将计算结果存储到第七寄存器中,对第五寄存器中的数据、第二寄存器中的数据、第一预设值进行计算并用计算结果更新第三寄存器中的数据;
第三计算更新模块405,用于更新第六寄存器中的数据,对第六寄存器中的数据和第一预设值进行计算并用计算结果更新第四寄存器中的数据;
第四计算更新模块406,用于对第六寄存器中的数据、第四寄存器中的数据和第七寄存器中的数据进行计算并用计算结果更新第五寄存器中的数据;
第五计算更新模块407,用于更新第四寄存器中的数据,对第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新第五寄存器中的数据;
第六计算更新模块408,用于根据第四寄存器中的数据和第一寄存器中的数据更新第四寄存器中的数据,对第五寄存器中的数据和第四寄存器中的数据进行计算得到线性对运算结果并保存。
进一步地,本实施例的计算存储更新模块402包括:
第一计算存储单元,用于用第一预设值作为底数进行6次幂运算得到第一中间值,将第二寄存器中的数据作为底数、第一中间值作为指数进行幂运算并将运算结果存储到第六寄存器中;对第二寄存器中的数据进行逆元计算并将计算结果存储到第四寄存器中;
第一运算更新单元,用于对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
第二运算更新单元,用于用第一预设值作为底数进行2次幂运算得到第二中间值,用第六寄存器中的数据作为底数、第二中间值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
第三运算更新单元,用于对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据;
第四运算更新单元,用于用第二寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
第五运算更新单元,用于用第四寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第六寄存器中的数据。
进一步地,本实施例的第一计算更新模块403包括:
第六运算更新单元,用于用第六寄存器中的数据作为底数、第二预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
第七运算更新单元,用于用第三寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
第八运算更新单元,用于对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据。
进一步地,本实施例的第二计算更新模块404包括:
第九运算更新单元,用于对第三寄存器中的数据进行逆元计算并用计算结果更新第七寄存器中的数据;
第十运算更新单元,用于用第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
第十一运算更新单元,用于用第一预设值作为底数进行2次幂运算得到第三中间值,用第二寄存器中的数据作为底数、第三中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
第十二运算更新单元,用于对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第三寄存器中的数据;
第十三运算更新单元,用于用第一预设值作为底数进行3次幂运算得到第四中间值,用第二寄存器中的数据作为底数、第四中间值作为指数进行幂运算并用运算结果更新第五寄存器中的数据;
第十四运算更新单元,用于对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并将运算结果存储到第一寄存器中;
第十五运算更新单元,用于用第六寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第三寄存器中的数据;
第十六运算更新单元,用于对第四寄存器中的数据与第三寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
第十七运算更新单元,用于对第五寄存器中的数据进行逆元计算并用计算结果更新第五寄存器中的数据;
第十八运算更新单元,用于用第一预设值作为底数进行2次幂运算得到第五中间值,用第六寄存器中的数据作为底数、第五中间值作为指数进行幂运算并用运算结果更新第三寄存器中的数据。
进一步地,本实施例的第三计算更新模块405包括:
第十九运算更新单元,用于对第六寄存器中的数据进行逆元计算并用计算结果更新第六寄存器中的数据;
第二十运算更新单元,用于用第四寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新第四寄存器中的数据;
第二十一运算更新单元,用于对第四寄存器中的数据进行逆元计算并用计算结果更新第四寄存器中的数据。
进一步地,本实施例的第四计算更新模块406包括:
第二十二运算更新单元,用于对第二寄存器中的数据进行逆元计算并用计算结果更新第二寄存器中的数据;
第二十三运算更新单元,用于对第六寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
第二十四运算更新单元,用于对第六寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第二十五运算更新单元,用于对第七寄存器中的数据与第七寄存器中的数据进行12次域乘法运算并用运算结果更新第七寄存器中的数据;
第二十六运算更新单元,用于对第七寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
第二十七运算更新单元,用于对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第二十八运算更新单元,用于对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第二十九运算更新单元,用于对第三寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据。
进一步地,本实施例的第五计算更新模块407包括:
第三十运算更新单元,用于对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第三十一运算更新单元,用于对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第三十二运算更新单元,用于对第四寄存器中的数据与第四寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第三十三运算更新单元,用于对第四寄存器中的数据与第二寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据。
进一步地,本实施例的第六计算更新模块408包括:
第三十四运算更新单元,用于对第四寄存器中的数据与第一寄存器中的数据进行12次域乘法运算并用运算结果更新第四寄存器中的数据;
第三十五运算更新单元,用于对第五寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第五寄存器中的数据;
第三十六运算更新单元,用于对第四寄存器中的数据与第五寄存器中的数据进行12次域乘法运算并用运算结果更新第二寄存器中的数据,将第二寄存器中的数据作为线性对运算结果进行保存。
本发明实施例中的线性对运算结果应用在各种安全应用(密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等)中,参与使用私钥进行解密或使用私钥进行签名的过程。本发明实施例通过对线性对运算进行拆分,大大减少了运算时间,进一步地提高使用本发明技术方案的各种安全应用的效率。
用上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该用权利要求的保护范围为准。

Claims (16)

1.一种在嵌入式系统中加快线性对运算的实现方法,其特征在于,包括:
步骤S1:协处理器获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;
步骤S2:所述协处理器对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;
步骤S3:所述协处理器对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;
步骤S4:所述协处理器对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;
步骤S5:所述协处理器更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;
步骤S6:所述协处理器对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S7:所述协处理器更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
步骤S8:所述协处理器根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。
2.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤S2-1:所述协处理器用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;
步骤S2-2:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
步骤S2-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-4:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;
步骤S2-5:所述协处理器用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S2-6:所述协处理器用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。
3.如权利要求2所述的方法,其特征在于,所述步骤S3包括:
步骤S3-1:所述协处理器用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S3-2:所述协处理器用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S3-3:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。
4.如权利要求3所述的方法,其特征在于,所述步骤S4包括:
步骤S4-1:所述协处理器对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;
步骤S4-2:所述协处理器用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-3:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-4:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-5:所述协处理器用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-6:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;
步骤S4-7:所述协处理器用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
步骤S4-8:所述协处理器对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S4-9:所述协处理器对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;
步骤S4-10:所述协处理器用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。
5.如权利要求4所述的方法,其特征在于,所述步骤S5包括:
步骤S5-1:所述协处理器对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;
步骤S5-2:所述协处理器用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
步骤S5-3:所述协处理器对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄存器中的数据。
6.如权利要求5所述的方法,其特征在于,所述步骤S6包括:
步骤S6-1:所述协处理器对所述第二寄存器中的数据进行逆元计算并用计算结果更新所述第二寄存器中的数据;
步骤S6-2:所述协处理器对所述第六寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-3:所述协处理器对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-4:所述协处理器对所述第七寄存器中的数据与所述第七寄存器中的数据进行12次域乘法运算并用运算结果更新所述第七寄存器中的数据;
步骤S6-5:所述协处理器对所述第七寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S6-6:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-7:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S6-8:所述协处理器对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
7.如权利要求6所述的方法,其特征在于,所述步骤S7包括:
步骤S7-1:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-2:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-3:所述协处理器对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S7-4:所述协处理器对所述第四寄存器中的数据与所述第二寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
8.如权利要求7所述的方法,其特征在于,所述步骤S8包括:
步骤S8-1:所述协处理器对所述第四寄存器中的数据与所述第一寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
步骤S8-2:所述协处理器对所述第五寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
步骤S8-3:所述协处理器对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据,将所述第二寄存器中的数据作为线性对运算结果进行保存。
9.一种在嵌入式系统中加快线性对运算的实现装置,其特征在于,所述装置设置在协处理器中,所述装置包括:
获取分配存储模块,用于获取第一预设值、第二预设值、获取第一数据组;分配第一寄存器、第二寄存器、第三寄存器、第四寄存器、第五寄存器、第六寄存器、第七寄存器,并将所述第一数据组存储到所述第二寄存器中;所述第一数据组为12维数据;
计算存储更新模块,用于对所述第二寄存器中的数据和所述第一预设值进行计算并将计算结果存储到所述第六寄存器中,对所述第二寄存器中的数据进行计算并将计算结果存储到第四寄存器中,对所述第四寄存器中的数据、所述第二寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第六寄存器中的数据;
第一计算更新模块,用于对所述第六寄存器中的数据、所述第二预设值和所述第一预设值进行计算并将计算结果存储到第五寄存器中,根据所述第五寄存器中的数据更新所述第三寄存器中的数据;
第二计算更新模块,用于对所述第三寄存器中的数据进行计算并将计算结果存储到所述第七寄存器中,对所述第五寄存器中的数据、所述第二寄存器中的数据、所述第一预设值进行计算并用计算结果更新所述第三寄存器中的数据;
第三计算更新模块,用于更新所述第六寄存器中的数据,对所述第六寄存器中的数据和所述第一预设值进行计算并用计算结果更新所述第四寄存器中的数据;
第四计算更新模块,用于对所述第六寄存器中的数据、所述第四寄存器中的数据和所述第七寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
第五计算更新模块,用于更新所述第四寄存器中的数据,对所述第四寄存器中的数据和第二寄存器中的数据进行计算并用计算结果更新所述第五寄存器中的数据;
第六计算更新模块,用于根据所述第四寄存器中的数据和所述第一寄存器中的数据更新所述第四寄存器中的数据,对所述第五寄存器中的数据和所述第四寄存器中的数据进行计算得到线性对运算结果并保存。
10.如权利要求9所述的装置,其特征在于,所述计算存储更新模块包括:
第一计算存储单元,用于用所述第一预设值作为底数进行6次幂运算得到第一中间值,将所述第二寄存器中的数据作为底数、所述第一中间值作为指数进行幂运算并将运算结果存储到所述第六寄存器中;对所述第二寄存器中的数据进行逆元计算并将计算结果存储到所述第四寄存器中;
第一运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新第六寄存器中的数据;
第二运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第二中间值,用所述第六寄存器中的数据作为底数、所述第二中间值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第三运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据;
第四运算更新单元,用于用所述第二寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第五运算更新单元,用于用所述第四寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第六寄存器中的数据。
11.如权利要求10所述的装置,其特征在于,所述第一计算更新模块包括:
第六运算更新单元,用于用所述第六寄存器中的数据作为底数、所述第二预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第七运算更新单元,用于用所述第三寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第八运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据。
12.如权利要求11所述的装置,其特征在于,所述第二计算更新模块包括:
第九运算更新单元,用于对所述第三寄存器中的数据进行逆元计算并用计算结果更新所述第七寄存器中的数据;
第十运算更新单元,用于用所述第二寄存器中的数据作为底数、第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第十一运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第三中间值,用所述第二寄存器中的数据作为底数、所述第三中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第十二运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第三寄存器中的数据;
第十三运算更新单元,用于用所述第一预设值作为底数进行3次幂运算得到第四中间值,用所述第二寄存器中的数据作为底数、所述第四中间值作为指数进行幂运算并用运算结果更新所述第五寄存器中的数据;
第十四运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并将运算结果存储到所述第一寄存器中;
第十五运算更新单元,用于用所述第六寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据;
第十六运算更新单元,用于对所述第四寄存器中的数据与所述第三寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第十七运算更新单元,用于对所述第五寄存器中的数据进行逆元计算并用计算结果更新所述第五寄存器中的数据;
第十八运算更新单元,用于用所述第一预设值作为底数进行2次幂运算得到第五中间值,用所述第六寄存器中的数据作为底数、所述第五中间值作为指数进行幂运算并用运算结果更新所述第三寄存器中的数据。
13.如权利要求12所述的装置,其特征在于,所述第三计算更新模块包括:
第十九运算更新单元,用于对所述第六寄存器中的数据进行逆元计算并用计算结果更新所述第六寄存器中的数据;
第二十运算更新单元,用于用所述第四寄存器中的数据作为底数、所述第一预设值作为指数进行幂运算并用运算结果更新所述第四寄存器中的数据;
第二十一运算更新单元,用于对所述第四寄存器中的数据进行逆元计算并用计算结果更新所述第四寄存器中的数据。
14.如权利要求13所述的装置,其特征在于,所述第四计算更新模块包括:
第二十二运算更新单元,用于对所述第二寄存器中的数据进行逆元计算并用计算结果更新所述第二寄存器中的数据;
第二十三运算更新单元,用于对所述第六寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第二十四运算更新单元,用于对所述第六寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十五运算更新单元,用于对所述第七寄存器中的数据与所述第七寄存器中的数据进行12次域乘法运算并用运算结果更新所述第七寄存器中的数据;
第二十六运算更新单元,用于对所述第七寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第二十七运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十八运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第二十九运算更新单元,用于对所述第三寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
15.如权利要求14所述的装置,其特征在于,所述第五计算更新模块包括:
第三十运算更新单元,用于对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十一运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十二运算更新单元,用于对所述第四寄存器中的数据与所述第四寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十三运算更新单元,用于对所述第四寄存器中的数据与所述第二寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据。
16.如权利要求15所述的装置,其特征在于,所述第六计算更新模块包括:
第三十四运算更新单元,用于对所述第四寄存器中的数据与所述第一寄存器中的数据进行12次域乘法运算并用运算结果更新所述第四寄存器中的数据;
第三十五运算更新单元,用于对所述第五寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第五寄存器中的数据;
第三十六运算更新单元,用于对所述第四寄存器中的数据与所述第五寄存器中的数据进行12次域乘法运算并用运算结果更新所述第二寄存器中的数据,将所述第二寄存器中的数据作为线性对运算结果进行保存。
CN202011609314.3A 2020-12-30 2020-12-30 一种在嵌入式系统中加快线性对运算的实现方法及装置 Active CN112769552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011609314.3A CN112769552B (zh) 2020-12-30 2020-12-30 一种在嵌入式系统中加快线性对运算的实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011609314.3A CN112769552B (zh) 2020-12-30 2020-12-30 一种在嵌入式系统中加快线性对运算的实现方法及装置

Publications (2)

Publication Number Publication Date
CN112769552A true CN112769552A (zh) 2021-05-07
CN112769552B CN112769552B (zh) 2022-08-23

Family

ID=75697575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011609314.3A Active CN112769552B (zh) 2020-12-30 2020-12-30 一种在嵌入式系统中加快线性对运算的实现方法及装置

Country Status (1)

Country Link
CN (1) CN112769552B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080285743A1 (en) * 2005-03-31 2008-11-20 Kaoru Yokota Data Encryption Device and Data Encryption Method
CN107896142A (zh) * 2017-10-11 2018-04-10 大唐微电子技术有限公司 一种执行模幂运算的方法及装置、计算机可读存储介质
CN111106936A (zh) * 2019-11-27 2020-05-05 国家电网有限公司 一种基于sm9的属性加密方法与系统
CN111490871A (zh) * 2020-03-13 2020-08-04 南京南瑞国盾量子技术有限公司 一种基于量子密钥云的sm9密钥认证方法、系统及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080285743A1 (en) * 2005-03-31 2008-11-20 Kaoru Yokota Data Encryption Device and Data Encryption Method
CN107896142A (zh) * 2017-10-11 2018-04-10 大唐微电子技术有限公司 一种执行模幂运算的方法及装置、计算机可读存储介质
CN111106936A (zh) * 2019-11-27 2020-05-05 国家电网有限公司 一种基于sm9的属性加密方法与系统
CN111490871A (zh) * 2020-03-13 2020-08-04 南京南瑞国盾量子技术有限公司 一种基于量子密钥云的sm9密钥认证方法、系统及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YIHONG LONG ET AL.: "Collaborative Generations of SM9 Private Key and Digital Signature using Homomorphic Encryption", 《2020 5TH INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION SYSTEMS(ICCCS)》 *
郝中源: "基于FPGA的双线性对密码算法并行架构设计", 《南开大学学报(自然科学版)》 *

Also Published As

Publication number Publication date
CN112769552B (zh) 2022-08-23

Similar Documents

Publication Publication Date Title
CN106506170B (zh) 一种基于rsa的分布式签名方法与系统
CN108173659B (zh) 一种基于ukey设备的证书管理方法、系统及终端设备
CN111245847A (zh) 轻量级无证书认证方法、客户端及系统
CN109861826B (zh) 一种双向代理重签名的实现方法及装置
CN106789033B (zh) 一种基于无证书签密的电子合同签署方法
CN101163001B (zh) 电子印章制作系统以及方法
CN112769552B (zh) 一种在嵌入式系统中加快线性对运算的实现方法及装置
CN113676333A (zh) 一种两方协作生成sm2盲签名方法
CN110505061A (zh) 一种数字签名算法及系统
CN109981269A (zh) 一种安全高效的sm9多方密钥分发方法与装置
CN107104788B (zh) 终端及其不可抵赖的加密签名方法和装置
Yang et al. Digital signature based on ISRSAC
CN112769553B (zh) 嵌入式系统中加快sm9双线性对运算的实现方法及装置
CN112019352B (zh) 一种sm9快速签名方法、系统及电子设备
CN113055161A (zh) 一种基于sm2和sm9数字签名算法的移动终端认证方法与系统
CN113434882A (zh) 应用程序的通讯保护方法、装置、计算机设备及存储介质
CN109618348B (zh) 一种单向代理重签名的实现方法及装置
CN113918979A (zh) 基于移动key密钥保护技术的sm2签名方法
CN111641604B (zh) 基于网银证书的签章方法及基于网银证书的签章系统
CN114567443A (zh) 一种基于区块链的电子合同签署方法和装置
CN113556233A (zh) 一种支持批验证的sm9数字签名方法
CN115378623A (zh) 身份认证方法、装置、设备及存储介质
CN114329632A (zh) 一种数字签名方法、装置、终端设备及存储介质
CN108846290A (zh) 一种密码生成方法及装置
CN112769556B (zh) 嵌入式系统中加快sm9双线性对运算的实现方法及装置

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