CN112100644B - 一种生成数据签名的方法及装置 - Google Patents
一种生成数据签名的方法及装置 Download PDFInfo
- Publication number
- CN112100644B CN112100644B CN202011301309.6A CN202011301309A CN112100644B CN 112100644 B CN112100644 B CN 112100644B CN 202011301309 A CN202011301309 A CN 202011301309A CN 112100644 B CN112100644 B CN 112100644B
- Authority
- CN
- China
- Prior art keywords
- data
- storage area
- module
- preset
- fifteenth
- 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
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种生成数据签名的方法及装置,涉及通信领域。本发明通过引入哈希运算对签名私钥进行处理,对处理结果和待签名数据做哈希处理,再对哈希过后的数据进行运算;避免直接使用签名私钥进行运算带来的安全性问题,保证了对签名私钥处理的安全,提升了签名结果数据的安全性。
Description
技术领域
本发明涉及通信领域,尤其涉及一种生成数据签名的方法及装置。
背景技术
现有技术中,在利用私钥进行数据签名时,通常会使用敏感数据与相关数据直接进行数学运算;然而如此处理方式,容易受到“选择消息攻击”,即在不知道私钥的情况下,对现有消息摘要和签名修改后仍能验签通过。基于此,为了抵抗“选择消息攻击”,是否能够采用其他加密方式来保证数据签名结果的安全成为了当前亟待解决的技术问题。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种生成数据签名的方法及装置。
本发明提供了一种生成数据签名的方法,其中,第一存储区预先保存待签名数据;第二存储区预先保存签名私钥;第三存储区预先保存预置曲线的第一参数数据和第四存储区预先保存所述预置曲线的第二参数数据;第六存储区和第七存储区中分别预先保存预置固定点的横坐标和纵坐标;所述预置固定点位于所述预置曲线上;所述方法包括以下步骤:
步骤S01:处理器根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标并分别存储至第八存储区和第九存储区;对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;判断所述第一运算数据是否等于第二预置数据,是则执行步骤S03;否则执行步骤S02;
步骤S02:所述处理器将第二存储区中的数据存储至第十三存储区;执行步骤S04;
步骤S03:所述处理器根据第三存储区中的数据和第二存储区中的数据得到第二运算数据并存储至第十三存储区;执行步骤S04;
步骤S04:所述处理器对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据并存储至第十四存储区;
步骤S05:所述处理器根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据并存储至第十五存储区;根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标并分别存储至第十存储区和第十一存储区;
步骤S06:所述处理器对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据,判断所述第五运算数据是否等于第二预置数据,是则执行步骤S08;否则执行步骤S07。
步骤S07:所述处理器根据第三存储区中的数据更新第十五存储区中的数据,执行步骤S08;
步骤S08:所述处理器对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据并存储至第十七存储区;
步骤S09:所述处理器对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;对所述第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;根据所述第八运算数据和第十存储区中的数据得到签名结果数据。
本发明提供了一种生成数据签名的装置,包括第一存储区、第二存储区、第三存储区、第四存储区、第六存储区、第七存储区和处理器;
所述装置还包括第八存储区、第九存储区、第十存储区、第十一存储区、第十三存储区、第十四存储区、第十五存储区和第十七存储区;
所述处理器包括第一运算点模块、第一模幂模块、第一判断模块、第一保存模块、第二保存模块、第一哈希模块、第三保存模块、第二运算点模块、第二模幂模块、第二判断模块、第一更新模块、第二哈希模块、模乘运算模块、模加运算模块和签名数据模块;
所述第一存储区,用于预先保存待签名数据;
所述第二存储区,用于预先保存签名私钥;
所述第三存储区,用于预先保存预置曲线的第一参数数据;
所述第四存储区,用于预先保存预置曲线的第二参数数据;
所述第六存储区,用于预先保存预置固定点的横坐标;所述第七存储区,用于预先保存预置固定点的纵坐标;预置固定点位于预置曲线上;
所述第一运算点模块,用于根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标;
所述第八存储区,用于存储所述第一运算点模块得到的第一运算点的横坐标;
所述第九存储区,用于存储所述第一运算点模块得到的第一运算点的纵坐标;
所述第一模幂模块,用于对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;
所述第一判断模块,用于判断所述第一模幂模块得到的所述第一运算数据是否等于第二预置数据;
所述第一保存模块,用于所述第一判断模块判断为否时,将第二存储区中的数据存储至第十三存储区;触发第一哈希模块;
所述第二保存模块,用于所述第一判断模块判断为是时,根据第三存储区中的数据和第二存储区中的数据得到第二运算数据;触发第一哈希模块;
所述第十三存储区,用于存储所述第一保存模块保存的数据或者所述第二保存模块得到的数据;
所述第一哈希模块,用于对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据;
所述第十四存储区,用于存储所述第一哈希模块得到的第三运算数据;
所述第三保存模块,根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据;
所述第十五存储区,用于存储所述第三保存模块得到的第四运算数据;
所述第二运算点模块,用于根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标;
所述第十存储区,用于存储所述第二运算点模块得到的第二运算点的横坐标;
所述第十一存储区,用于存储所述第二运算点模块得到的第二运算点的纵坐标;
所述第二模幂模块,用于对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据;
所述第二判断模块,用于判断所述第二模幂模块得到的所述第五运算数据是否等于第二预置数据;
所述第一更新模块,用于所述第二判断模块判断为否时,根据第三存储区中的数据更新第十五存储区中的数据;触发第二哈希模块;
所述第二哈希模块,用于所述第二判断模块判断为是时,对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据;
所述第十七存储区,用于存储所述第二哈希模块得到的第六运算数据;
所述模乘运算模块,用于对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;
所述模加运算模块,用于对所述第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;
所述签名数据模块,用于根据所述第八运算数据和第十存储区中的数据得到签名结果数据。
本发明与现有技术相比,具有以下优点:本发明通过引入哈希运算对签名私钥进行处理,对处理结果和待签名数据做哈希处理,再对哈希过后的数据进行运算;避免直接使用签名私钥进行运算带来的安全性问题,保证了对签名私钥处理的安全,提升了签名结果数据的安全性。
附图说明
图1为本发明实施例一提供的一种生成数据签名的方法流程图;
图2和图3为本发明实施例二提供的一种生成数据签名的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
实施例一
本发明实施例一提供一种生成数据签名的方法,所述方法如图1所示,包括以下步骤:
本实施例中,第一存储区中预先保存待签名数据;第二存储区中预先保存签名私钥;
第三存储区中预先保存预置曲线的第一参数数据(预置曲线的参数数据n)、第四存储区中预先保存预置曲线的第二参数数据(预置曲线的参数数据P);
第六存储区和第七存储区中分别预先保存预置曲线上一个预置固定点(G点)的横坐标和纵坐标;
上述第三、第四、第六和第七存储区中的数据与预置曲线的第三参数数据(预置曲线的参数数据A)、第四参数数据(预置曲线的参数数据 B)为预置曲线的配套数据,通过曲线的配套数据能够唯一确定曲线,在方案具体实施时,可以根据实际需求选择预置曲线;
步骤101:处理器根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标并分别存储至第八存储区和第九存储区;对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;判断第一运算数据是否等于第二预置数据,是则执行步骤103;否则执行步骤102;
本实施例中,第三常数数据与第四存储区存储的数据有对应关系(例如,第四存储区存储的数据加上第二预置数据,将得到的加法结果除以2等于第三常数数据)。
可选地,步骤101之前,还包括步骤M01:处理器判断第二存储区中的数据是否等于第一预置数据,且判断第二存储区中的数据是否大于或者等于第三存储区中的数据,如全部判断为是则执行步骤101;否则报错结束。
可选地,步骤101中,处理器根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标之后,还包括:处理器判断第八存储区中的数据和第九存储区中的数据是否全部等于第一预置数据,是则执行步骤103,否则将第一运算点的横坐标和纵坐标分别存储至第八存储区和第九存储区。
可选地,步骤101中,对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据,具体为:处理器以第九存储区中的数据为底数、以第三常数数据为指数和以第四存储区中的数据为模进行模幂运算得到第一运算数据并存储至第十二存储区。
步骤102:处理器将第二存储区中的数据存储至第十三存储区;执行步骤104;
步骤103:处理器根据第三存储区中的数据和第二存储区中的数据得到第二运算数据并存储至第十三存储区;执行步骤104;
可选地,步骤103具体为:处理器以第三存储区中的数据为被减数、以第二存储区中的数据为减数进行减法运算得到第二运算数据,将第二运算数据存储至第十三存储区。
步骤104:处理器对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据并存储至第十四存储区;
步骤105:处理器根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据并存储至第十五存储区;根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标并分别存储至第十存储区和第十一存储区;
可选地,步骤105中,处理器根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据,具体为:处理器以第十四存储区中的数据为被除数和以第三存储区中的数据为除数进行取余运算得到第四运算数据。
可选地,步骤105中,根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标之前,还包括:处理器判断第十五存储区中的数据是否等于第一预置数据,是则报错结束,否则根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标。
可选地,步骤105中,根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标,具体为:处理器对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第二运算点的横坐标和纵坐标。
步骤106:处理器对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据,判断第五运算数据是否等于第二预置数据,是则执行步骤108;否则执行步骤107。
可选地,步骤106之前,还包括:处理器判断第十存储区中的数据和第十一存储区中的数据是否全部等于第一预置数据,是则执行步骤107,否则执行步骤106。
可选地,步骤106中,处理器对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据,具体为:处理器以第十一存储区中的数据为底数、第三常数数据为指数和第四存储区中的数据为模进行模幂运算得到第五运算数据,将得到第五运算数据存储至第十六存储区。
步骤107:处理器根据第三存储区中的数据更新第十五存储区中的数据,执行步骤108;
可选地,步骤107具体为:处理器以第三存储区中的数据为被减数,以第十五存储区中的数据为减数进行减法运算得到第一运算结果,将第一运算结果存储至第十五存储区。
步骤108:处理器对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据并存储至第十七存储区;
可选地,步骤108具体为:处理器根据第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据组织第二待哈希数据,对第二待哈希数据进行哈希运算得到第六运算数据,将第六运算数据存储至第十七存储器。
步骤109:处理器对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;对第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;根据第八运算数据和第十存储区中的数据得到签名结果数据。
可选地,步骤109之前,还包括:处理器以第十七存储区中的数据为被除数,以第三存储区中的数据为除数进行取余运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据。
可选地,步骤109中,处理器对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据,具体为:处理器以第十七存储区中的数据、第十三存储区中的数据为乘数,以第三存储区中的数据为模进行模乘运算得到第七运算数据。
可选地,步骤109中,对第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据,具体为:处理器以第七运算数据、第十五存储区中的数据为加数,以第三存储区中的数据为模进行模加运算得到第八运算数据。
实施例二
本发明实施例二提供一种生成数据签名的方法,如图2和图3所示,包括以下步骤:
其中,第一存储区中预先保存待签名数据;第二存储区中预先保存签名私钥;
第三存储区中预先保存预置曲线的第一参数数据(预置曲线的参数数据n)、第四存储区中预先保存预置曲线的第二参数数据(预置曲线的参数数据P);
第六存储区和第七存储区中分别预先保存预置曲线上一个预置固定点(G点)的横坐标和纵坐标;
上述第三、第四、第六和第七存储区中的数据与预置曲线的第三参数数据(预置曲线的参数数据A)、第四参数数据(预置曲线的参数数据 B)为预置曲线的配套数据,通过曲线的配套数据能够唯一确定曲线,在方案具体实施时,可以根据实际需求选择预置曲线。
步骤201:当接收到上位机发送的待签名数据时,处理器将待签名数据存储至第一存储区;
例如,当接收到上位机发送的待签名数据AF6FE748DEF10FACC732349C67A375E06BDF8ACC80B6D802772D7B8A37AA5FDD时,处理器将待签名数据存储至第一存储区;
步骤202:处理器判断第二存储区中的数据是否等于第一预置数据,是则向上位机发送报错信息;否则执行步骤203;
例如,处理器判断第二存储区中的数据7AA07C631A4BC9EC73BB31218BFA9CC8BF05417373A3FB491A8CED734BC0154B是否等于第一预置数据0,是则向上位机发送报错信息;否则执行步骤203;
可选地,本步骤替换为:处理器判断第二存储区中的数据是否不等于第一预置数据,是则执行步骤203;否则向上位机发送报错信息。
可选地,本步骤中,向上位机发送报错信息,替换为:处理器报错结束。
步骤203:处理器判断第二存储区中的数据是否大于或者等于第三存储区中的数据,是则向上位机发送报错信息;否则执行步骤204;
例如,处理器判断第二存储区中的数据7AA07C631A4BC9EC73BB31218BFA9CC8BF05417373A3FB491A8CED734BC0154B是否大于或者等于第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,是则向上位机发送报错信息;否则执行步骤204;
可选地,本步骤替换为:处理器判断第二存储区中的数据是否小于第三存储区中的数据,是则执行步骤204;否则向上位机发送报错信息;
可选地,本步骤中,向上位机发送报错信息,替换为:处理器报错结束。
步骤204:处理器根据第一预置算法对第二存储区中的数据、第六存储区中的数据和第七存储区中的数据进行运算得到第一运算点的横坐标和纵坐标,并分别将第一运算点的横坐标和纵坐标存储至第八存储区和第九存储区;
本实施例中,第八存储区和第九存储区存储的数据是预置曲线上的除预置固定点外的第一运算点的横坐标和纵坐标,其中,第八存储区存储横坐标,第九存储区存储纵坐标。
可选地,本步骤具体为:处理器对第二存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第一运算点的横坐标和纵坐标,并分别将第一运算点的横坐标和纵坐标存储至第八存储区和第九存储区;
例如,处理器对第二存储区中的数据7AA07C631A4BC9EC73BB31218BFA9CC8BF05417373A3FB491A8CED734BC0154B、第六存储区中的数据79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798和第七存储区中的数据483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8进行点乘运算得到第一运算点的横坐标90fb1390d8188a3f858eddf87c27ad67b2af0e1d6e007e53f904b843ae5a6a72和纵坐标cbe6a599c7997d705363a3ecfcfaed4347b0851e5ddb7e7fdaf2806f3c8c1ee4,并分别将第一运算点的横坐标和纵坐标存储至第八存储区和第九存储区。
步骤205:处理器判断第八存储区中的数据和第九存储区中的数据是否全部等于第一预置数据,是则执行步骤209,否则执行步骤206;
例如,处理器判断第八存储区中的数据90fb1390d8188a3f858eddf87c27ad67b2af0e1d6e007e53f904b843ae5a6a72和第九存储区中的数据cbe6a599c7997d705363a3ecfcfaed4347b0851e5ddb7e7fdaf2806f3c8c1ee4是否全部等于第一预置数据0,是则执行步骤209,否则执行步骤206。
步骤206:处理器根据第二预置算法对第九存储区中的数据、第三常数数据和第五存储区中的数据进行运算得到第一运算数据并存储至第十二存储区;
本实施例中,第三常数数据与第四存储区存储的数据有对应关系(例如,第四存储区存储的数据加上第二预置数据,将得到的加法结果除以2等于第三常数数据)。
可选地,本步骤具体为:处理器对第九存储区中的数据、第三常数数据和第五存储区中的数据进行模幂运算得到第一运算数据并存储至第十二存储区;
可选地,本步骤更具体为:处理器以第九存储区中的数据为底数、以第三常数数据为指数和以第五存储区中的数据为模进行模幂运算得到第一运算数据并存储至第十二存储区;
例如,处理器以第九存储区中的数据cbe6a599c7997d705363a3ecfcfaed4347b0851e5ddb7e7fdaf2806f3c8c1ee4为底数、以第三常数数据7fffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffe17为指数和以第五存储区中的数据fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f为模进行模幂运算得到第一运算数据并存储至第十二存储区。
步骤207:处理器判断读第十二存储区中的数据是否等于第二预置数据,是则执行步骤209,否则执行步骤208;
例如,处理器判断读第十二存储区中的数据01是否等于第二预置数据01,是则执行步骤209,否则执行步骤208。
可选地,本步骤替换为:处理器判断第十二存储区中的数据是否不等于第二预置数据,是则执行步骤208,否则执行步骤209。
可选地,本步骤替换为:处理器判断第十二存储区中的数据是否大于第二预置数据,如果判断为是则执行步骤208;如果判断为否则判断第十二存储区中的数据是否小于第二预置数据,是则执行步骤208;否则执行步骤209。
步骤208:处理器将第二存储区中的数据存储至第十三存储区;执行步骤210;
步骤209:处理器根据第三预置算法对第三存储区中的数据和第二存储区中的数据进行运算得到第二运算数据,将第二运算数据存储至第十三存储区;执行步骤210;
可选地,本步骤具体为:处理器对第三存储区中的数据和第二存储区中的数据进行减法运算得到第二运算数据,将第二运算数据存储至第十三存储区;执行步骤210;
更进一步地,本步骤具体为:处理器以第三存储区中的数据为被减数、以第二存储区中的数据为减数进行减法运算得到第二运算数据,将第二运算数据存储至第十三存储区;执行步骤210。
更进一步地,本步骤具体为:处理器以第二存储区中的数据为被减数、以第三存储区中的数据为减数进行减法运算,对得到的减法运算结果进行绝对值运算,将得到的绝对值运算结果存储至第十三存储区;执行步骤210。
步骤210:处理器对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据,将第三运算数据存储至第十四存储区;
可选地,本步骤具体为:处理器根据第四预置数据、第十三存储区中的数据和第一存储区中的数据得到第一待哈希数据,对第一待哈希数据进行哈希运算得到第三运算数据,将第三运算数据存储至第十四存储区;
可选地,本步骤更具体为:处理器顺序拼接第四预置数据、第十三存储区中的数据和第一存储区中的数据得到第一待哈希数据,对第一待哈希数据进行哈希运算得到第三运算数据,将第三运算数据存储至第十四存储区;
例如,处理器顺序拼接第四预置数据ec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91dfec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91df、第十三存储区中的数据7aa07c631a4bc9ec73bb31218bfa9cc8bf05417373a3fb491a8ced734bc0154b和第一存储区中的数据AF6FE748DEF10FACC732349C67A375E06BDF8ACC80B6D802772D7B8A37AA5FDD得到第一待哈希数据ec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91dfec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91df7aa07c631a4bc9ec73bb31218bfa9cc8bf05417373a3fb491a8ced734bc0154baf6fe748def10facc732349c67a375e06bdf8acc80b6d802772d7b8a37aa5fdd,对第一待哈希数据ec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91dfec1db72431727c0f1c54e5da6965d991749cdb1929d05f1f8f098cd689fb91df7aa07c631a4bc9ec73bb31218bfa9cc8bf05417373a3fb491a8ced734bc0154baf6fe748def10facc732349c67a375e06bdf8acc80b6d802772d7b8a37aa5fdd进行哈希运算得到第三运算数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970,将第三运算数据存储至第十四存储区。
其中,处理器可以将第四预置数据、第十三存储区中的数据和第一存储区中的数据这三个数据按照任意顺序进行拼接得到第一待哈希数据。
步骤211:处理器根据第四预置算法对第十四存储区中的数据和第三存储区中的数据运算得到第四运算数据,将第四运算数据存储至第十五存储区;
可选地,本步骤具体为:处理器以第十四存储区中的数据为被除数和以第三存储区中的数据为除数进行取余运算得到第四运算数据,将第四运算数据存储至第十五存储区;
例如,处理器以第十四存储区中的数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970为被除数和第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141为除数进行取余运算得到第四运算数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970,将第四运算数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970存储至第十五存储区。
步骤212:处理器判断第十五存储区中的数据是否等于第一预置数据,是则向上位机发送报错信息;否则执行步骤213;
例如,处理器判断第十五存储区中的数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970是否等于第一预置数据0,是则向上位机发送报错信息;否则执行步骤213。
可选地,本步骤中,向上位机发送报错信息,替换为:处理器报错结束。
步骤213:处理器根据第一预置算法对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行运算得到第二运算点的横坐标和纵坐标,将第二运算点的横坐标和纵坐标分别分别存储至第十存储区和第十一存储区;
本实施例中,第十存储区和第十一存储区存储的数据是预置曲线上的除预置固定点外的第二运算点的横坐标和纵坐标,其中,第十存储区存储所述第二运算点的横坐标,第十一存储区存储所述第二运算点的纵坐标。
可选地,本步骤具体为:处理器对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第二运算点的横坐标和纵坐标,将第二运算点的横坐标和纵坐标分别存储至第十存储区和第十一存储区;
例如,处理器对第十五存储区中的数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970、第六存储区中的数据79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798和第七存储区中的数据483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8进行点乘运算得到第二运算点的横坐标b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b和纵坐标16ef9c290e351a776a43f2c11e45be6d159d841c4788e2d81a612023ffceaeda,将第二运算点的横坐标b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b和纵坐标16ef9c290e351a776a43f2c11e45be6d159d841c4788e2d81a612023ffceaeda分别存储至第十存储区和第十一存储区。
步骤214:处理器判断第十存储区中的数据和第十一存储区中的数据是否全部等于第一预置数据,是则执行步骤217,否则执行步骤215;
例如,处理器判断第十存储区中的数据b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b和第十一存储区中的数据16ef9c290e351a776a43f2c11e45be6d159d841c4788e2d81a612023ffceaeda是否全部等于第一预置数据0,是则执行步骤217,否则执行步骤215。
步骤215:处理器根据第二预置算法对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行运算得到第五运算数据,将第五运算数据存储至第十六存储区;
可选地,本步骤具体为:处理器以第十一存储区中的数据为底数、第三常数数据为指数和第四存储区中的数据为模进行模幂运算得到第五运算数据,将得到第五运算数据存储至第十六存储区;
例如,处理器以第十一存储区中的数据16ef9c290e351a776a43f2c11e45be6d159d841c4788e2d81a612023ffceaeda为底数、第三常数数据7fffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffe17为指数和第四存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F为模进行模幂运算得到第五运算数据fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e,将得到第五运算数据fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e存储至第十六存储区。
步骤216:处理器判断第十六存储区中的数据是否等于第二预置数据,是则执行步骤218,否则执行步骤217;
例如,处理器判断第十六存储区中的数据fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e是否等于第二预置数据01,是则执行步骤218,否则执行步骤217。
步骤217:处理器根据第三预置算法对第十五存储区中的数据和第三存储区中的数据进行运算得到第一运算结果,根据第一运算结果更新第十五存储区中的数据;执行步骤218;
可选地,本步骤具体为:处理器对第十五存储区中的数据和第三存储区中的数据进行减法运算得到第一运算结果,根据第一运算结果更新第十五存储区中的数据;执行步骤218;
可选地,本步骤更具体为:处理器以第三存储区中的数据为被减数,以第十五存储区中的数据为减数进行减法运算得到第一运算结果,将第一运算结果存储至第十五存储区;执行步骤218;
可选地,本步骤更具体为:处理器以第十五存储区中的数据为被减数,以第三存储区中的数据为减数进行减法运算得到第一运算结果,将对第一运算结果进行绝对值运算后的结果存储至第十五存储区;执行步骤218;
例如,处理器以第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141为被减数,以第十五存储区中的数据56b937a053c748f559541514fee3169791a3ffe82e9b3184ff4e3fb920eeb970为减数进行减法运算得到第一运算结果a946c85fac38b70aa6abeaeb011ce967290adcfe80ad6eb6c0841ed3af4787d1,将第一运算结果a946c85fac38b70aa6abeaeb011ce967290adcfe80ad6eb6c0841ed3af4787d1存储至第十五存储区;执行步骤218。
步骤218:处理器对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据,将第六运算数据存储至第十七存储器;
可选地,本步骤具体为:处理器根据第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据组织第二待哈希数据,对第二待哈希数据进行哈希运算得到第六运算数据,将第六运算数据存储至第十七存储器;
可选地,本步骤更具体为:处理器顺序拼接第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据得到第二待哈希数据,对第二待哈希数据进行哈希运算得到第六运算数据,将第六运算数据存储至第十七存储器;
例如,处理器顺序拼接第五预置数据30caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a1130caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a11、第八存储区中的数据79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798、第十存储区中的数据b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b和第一存储区中的数据AF6FE748DEF10FACC732349C67A375E06BDF8ACC80B6D802772D7B8A37AA5FDD得到第二待哈希数据30caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a1130caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a11b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b90fb1390d8188a3f858eddf87c27ad67b2af0e1d6e007e53f904b843ae5a6a72af6fe748def10facc732349c67a375e06bdf8acc80b6d802772d7b8a37aa5fdd,对第二待哈希数据30caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a1130caa02fc899d5247e90ca74effbd3ca637de092f8553a36d9ba7509f9272a11b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b90fb1390d8188a3f858eddf87c27ad67b2af0e1d6e007e53f904b843ae5a6a72af6fe748def10facc732349c67a375e06bdf8acc80b6d802772d7b8a37aa5fdd进行哈希运算得到第六运算数据6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02,将第六运算数据6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02存储至第十七存储器;
其中,处理器可以将第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据这四个数据按照任意顺序进行拼接得到第二待哈希数据。
步骤219:处理器根据第四预置算法对第十七存储区中的数据和第三存储区中的数据进行运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据;
可选地,本步骤具体为:处理器以第十七存储区中的数据为被除数,以第三存储区中的数据为除数进行取余运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据;
例如,处理器以第十七存储区中的数据6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02为被除数,以第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141为除数进行取余运算得到第二运算结果6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02,将第二运算结果6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02存储至第十七存储区。
步骤220:处理器根据第五预置算法对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行运算得到第七运算数据,将第七运算数据存储至第十八存储区;
可选地,本步骤具体为:处理器以第十七存储区中的数据、第十三存储区中的数据为乘数,以第三存储区中的数据为模进行模乘运算得到第七运算数据,将第七运算数据存储至第十八存储区;
例如,处理器以第十七存储区中的数据6770044749525132daa24d09a577f47b04e0e382c212efbba4864304d2a13f02、第十三存储区中的数据7aa07c631a4bc9ec73bb31218bfa9cc8bf05417373a3fb491a8ced734bc0154b为乘数,以第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141为模进行模乘运算得到第七运算数据d5de62d9c7466ed15603b353733f37519ba5ef345e5736f000a55a6d4be31e7a,将第七运算数据d5de62d9c7466ed15603b353733f37519ba5ef345e5736f000a55a6d4be31e7a存储至第十八存储区。
步骤221:处理器根据第六预置算法对第十八存储区中的数据、第十五存储区中的数据和第三存储区中的数据进行运算得到第八运算数据,将第八运算数据存储至第十九存储区;
可选地,本步骤具体为:处理器以第十八存储区中的数据、第十五存储区中的数据为加数,以第三存储区中的数据为模进行模加运算得到第八运算数据,将第八运算数据存储至第十九存储区;
例如,处理器以第十八存储区中的数据d5de62d9c7466ed15603b353733f37519ba5ef345e5736f000a55a6d4be31e7a、第十五存储区中的数据a946c85fac38b70aa6abeaeb011ce967290adcfe80ad6eb6c0841ed3af4787d1为加数,以第三存储区中的数据FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141为模进行模加运算得到第八运算数据7f252b39737f25dbfcaf9e3e745c20ba0a01ef4c2fbc056b01571ab42af4650a,将第八运算数据7f252b39737f25dbfcaf9e3e745c20ba0a01ef4c2fbc056b01571ab42af4650a存储至第十九存储区。
步骤222:处理器根据第十存储区中的数据和第十九存储区中的数据组织签名结果数据,向上位机发送签名结果数据;
可选地,本步骤具体为:处理器顺序拼接第十九存储区中的数据和第十存储区中的数据得到签名结果数据,向上位机发送签名结果数据;
可选地,本步骤具体为:处理器顺序拼接第十存储区中的数据和第十九存储区中的数据得到签名结果数据,向上位机发送签名结果数据;
例如,本步骤具体为:处理器顺序拼接第十存储区中的数据b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b和第十九存储区中的数据7f252b39737f25dbfcaf9e3e745c20ba0a01ef4c2fbc056b01571ab42af4650a得到签名结果数据b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b7f252b39737f25dbfcaf9e3e745c20ba0a01ef4c2fbc056b01571ab42af4650a,向上位机发送签名结果数据b3ac6ce863d14f20cba0a38934f609015ab7c3126b409ad7ee9be369f7340a9b7f252b39737f25dbfcaf9e3e745c20ba0a01ef4c2fbc056b01571ab42af4650a给上位机。
可选地,本实施例中的步骤,可以全部或者部分由处理器控制协处理器执行。
本发明提供的技术方案可以适用以下应用场景:在数字货币交易中,上位机对收款账户和交易金额等数据进行哈希运算得到待签名数据,上位机向处理器发送待签名数据;处理器对待签名数据进行签名得到签名结果数据,向上位机发送签名结果数据;上位机根据签名结果数据组织交易数据,广播交易数据至服务器;服务器对交易数据进行验证并执行后续操作;具体到本实施例:
步骤222中,处理器向上位机发送签名结果数据,用于上位机组织交易数据并广播交易数据至服务器。
实施例三
本发明实施例三提供一种生成数据签名的装置,包括第一存储区、第二存储区、第三存储区、第四存储区、第六存储区、第七存储区和处理器;还包括第八存储区、第九存储区、第十存储区、第十一存储区、第十三存储区、第十四存储区、第十五存储区和第十七存储区;
其中,处理器包括第一运算点模块、第一模幂模块、第一判断模块、第一保存模块、第二保存模块、第一哈希模块、第三保存模块、第二运算点模块、第二模幂模块、第二判断模块、第一更新模块、第二哈希模块、模乘运算模块、模加运算模块和签名数据模块;
第一存储区,用于预先保存待签名数据;
第二存储区,用于预先保存签名私钥;
第三存储区,用于预先保存预置曲线的第一参数数据;
第四存储区,用于预先保存预置曲线的第二参数数据;
第六存储区,用于预先保存预置固定点的横坐标;第七存储区,用于预先保存预置固定点的纵坐标;预置固定点位于预置曲线上;
第一运算点模块,用于根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标;
第八存储区,用于存储第一运算点模块得到的第一运算点的横坐标;
第九存储区,用于存储第一运算点模块得到的第一运算点的纵坐标;
第一模幂模块,用于对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;
第一判断模块,用于判断第一模幂模块得到的第一运算数据是否等于第二预置数据;
第一保存模块,用于第一判断模块判断为否时,将第二存储区中的数据存储至第十三存储区;触发第一哈希模块;
第二保存模块,用于第一判断模块判断为是时,根据第三存储区中的数据和第二存储区中的数据得到第二运算数据;触发第一哈希模块;
可选地,第二保存模块,具体用于当第一判断模块判断为是时,以第三存储区中的数据为被减数、以第二存储区中的数据为减数进行减法运算得到第二运算数据。
第十三存储区,用于存储第一保存模块保存的数据或者第二保存模块得到的数据;
第一哈希模块,用于对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据;
第十四存储区,用于存储第一哈希模块得到的第三运算数据;
第三保存模块,根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据;
可选地,第三保存模块,具体用于以第十四存储区中的数据为被除数和以第三存储区中的数据为除数进行取余运算得到第四运算数据。
第十五存储区,用于存储第三保存模块得到的第四运算数据;
第二运算点模块,用于根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标;
可选地,第二运算点模块,具体用于对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第二运算点的横坐标和纵坐标。
第十存储区,用于存储第二运算点模块得到的第二运算点的横坐标;
第十一存储区,用于存储第二运算点模块得到的第二运算点的纵坐标;
第二模幂模块,用于对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据;
可选地,第二模幂模块,具体用于以第十一存储区中的数据为底数、第三常数数据为指数和第四存储区中的数据为模进行模幂运算得到第五运算数据。
第二判断模块,用于判断第二模幂模块得到的第五运算数据是否等于第二预置数据;
第一更新模块,用于第二判断模块判断为否时,根据第三存储区中的数据更新第十五存储区中的数据;触发第二哈希模块;
可选地,第一更新模块,具体用于以第三存储区中的数据为被减数,以第十五存储区中的数据为减数进行减法运算得到第一运算结果,将第一运算结果存储至第十五存储区。
第二哈希模块,用于第二判断模块判断为是时,对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据;
可选地,第二哈希模块,具体用于为根据第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据组织第二待哈希数据,对第二待哈希数据进行哈希运算得到第六运算数据,将第六运算数据存储至第十七存储器。
第十七存储区,用于存储第二哈希模块得到的第六运算数据;
模乘运算模块,用于对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;
可选地,模乘运算模块,具体用于以第十七存储区中的数据、第十三存储区中的数据为乘数,以第三存储区中的数据为模进行模乘运算得到第七运算数据。
模加运算模块,用于对第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;
可选地,模加运算模块,具体用于以第七运算数据、第十五存储区中的数据为加数,以第三存储区中的数据为模进行模加运算得到第八运算数据。
签名数据模块,用于根据第八运算数据和第十存储区中的数据得到签名结果数据。
可选地本实施例中的装置,还包括第三判断模块;第三判断模块,用于判断第二存储区中的数据是否等于第一预置数据,且判断第二存储区中的数据是否大于或者等于第三存储区中的数据,如全部判断为是则触发第一运算点模块;否则报错结束。
可选地本实施例中的装置,还包括第四判断模块;
相应地,第四判断模块,用于判断第八存储区中的数据和第九存储区中的数据是否全部等于第一预置数据;否则将第一运算点的横坐标和纵坐标分别存储至第八存储区和第九存储区;
相应地,第二保存模块,还用于当第四判断模块判断为是时,根据第三存储区中的数据和第二存储区中的数据得到第二运算数据。
可选地,第一模幂模块,具体用于以第九存储区中的数据为底数、以第三常数数据为指数和以第四存储区中的数据为模进行模幂运算得到第一运算数据。
可选地本实施例中的装置,还包括第五判断模块;第五判断模块,用于判断第十五存储区中的数据是否等于第一预置数据,是则报错结束,否则触发第二运算点模块。
可选地本实施例中的装置,还包括第六判断模块;第六判断模块,用于判断第十存储区中的数据和第十一存储区中的数据是否全部等于第一预置数据,是则触发第一更新模块,否则触发第二模幂模块。
可选地本实施例中的装置,还包括第二更新模块;第二更新模块,用于以第十七存储区中的数据为被除数,以第三存储区中的数据为除数进行取余运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (24)
1.一种生成数据签名的方法,其特征在于,第一存储区预先保存待签名数据;第二存储区预先保存签名私钥;第三存储区预先保存预置曲线的第一参数数据和第四存储区预先保存所述预置曲线的第二参数数据;第六存储区和第七存储区中分别预先保存预置固定点的横坐标和纵坐标;所述预置固定点位于所述预置曲线上;所述方法包括以下步骤:
步骤S01:处理器根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标并分别存储至第八存储区和第九存储区;对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;判断所述第一运算数据是否等于第二预置数据,是则执行步骤S03;否则执行步骤S02;
步骤S02:所述处理器将第二存储区中的数据存储至第十三存储区;执行步骤S04;
步骤S03:所述处理器根据第三存储区中的数据和第二存储区中的数据得到第二运算数据并存储至第十三存储区;执行步骤S04;
步骤S04:所述处理器对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据并存储至第十四存储区;
步骤S05:所述处理器根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据并存储至第十五存储区;根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标并分别存储至第十存储区和第十一存储区;
步骤S06:所述处理器对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据,判断所述第五运算数据是否等于第二预置数据,是则执行步骤S08;否则执行步骤S07;
步骤S07:所述处理器根据第三存储区中的数据更新第十五存储区中的数据,执行步骤S08;
步骤S08:所述处理器对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据并存储至第十七存储区;
步骤S09:所述处理器对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;对所述第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;根据所述第八运算数据和第十存储区中的数据得到签名结果数据;
所述步骤S03具体为:所述处理器以第三存储区中的数据为被减数、以第二存储区中的数据为减数进行减法运算得到第二运算数据,将所述第二运算数据存储至第十三存储区;
所述步骤S05中,所述处理器根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据,具体为:所述处理器以第十四存储区中的数据为被除数和以第三存储区中的数据为除数进行取余运算得到第四运算数据;
所述步骤S07具体为:所述处理器以第三存储区中的数据为被减数,以第十五存储区中的数据为减数进行减法运算得到第一运算结果,将第一运算结果存储至第十五存储区。
2.如权利要求1所述的方法,其特征在于,所述步骤S01之前,还包括步骤M01:所述处理器判断第二存储区中的数据是否等于第一预置数据,且判断第二存储区中的数据是否大于或者等于第三存储区中的数据,如全部判断为是则执行步骤S01;否则报错结束。
3.如权利要求1所述的方法,其特征在于,所述步骤S01中,所述处理器根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标之后,还包括:所述处理器判断第八存储区中的数据和第九存储区中的数据是否全部等于第一预置数据,是则执行步骤S03,否则将第一运算点的横坐标和纵坐标分别存储至第八存储区和第九存储区。
4.如权利要求1所述的方法,其特征在于,所述步骤S01中,所述对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据,具体为:所述处理器以第九存储区中的数据为底数、以第三常数数据为指数和以第四存储区中的数据为模进行模幂运算得到第一运算数据并存储至第十二存储区。
5.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标之前,还包括:所述处理器判断第十五存储区中的数据是否等于第一预置数据,是则报错结束,否则根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标。
6.如权利要求1所述的方法,其特征在于,所述步骤S05中,所述根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标,具体为:所述处理器对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第二运算点的横坐标和纵坐标。
7.如权利要求1所述的方法,其特征在于,所述步骤S06之前,还包括:所述处理器判断第十存储区中的数据和第十一存储区中的数据是否全部等于第一预置数据,是则执行步骤S07,否则执行步骤S06。
8.如权利要求1所述的方法,其特征在于,所述步骤S06中,所述处理器对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据,具体为:所述处理器以第十一存储区中的数据为底数、第三常数数据为指数和第四存储区中的数据为模进行模幂运算得到第五运算数据,将得到第五运算数据存储至第十六存储区。
9.如权利要求1所述的方法,其特征在于,所述步骤S08具体为:所述处理器根据第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据组织第二待哈希数据,对所述第二待哈希数据进行哈希运算得到第六运算数据,将所述第六运算数据存储至第十七存储器。
10.如权利要求1所述的方法,其特征在于,所述步骤S09之前,还包括:所述处理器以第十七存储区中的数据为被除数,以第三存储区中的数据为除数进行取余运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据。
11.如权利要求1所述的方法,其特征在于,所述步骤S09中,所述处理器对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据,具体为:所述处理器以第十七存储区中的数据、第十三存储区中的数据为乘数,以第三存储区中的数据为模进行模乘运算得到第七运算数据。
12.如权利要求1所述的方法,其特征在于,所述步骤S09中,所述对所述第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据,具体为:所述处理器以所述第七运算数据、第十五存储区中的数据为加数,以第三存储区中的数据为模进行模加运算得到第八运算数据。
13.一种生成数据签名的装置,其特征在于,包括第一存储区、第二存储区、第三存储区、第四存储区、第六存储区、第七存储区和处理器;
所述装置还包括第八存储区、第九存储区、第十存储区、第十一存储区、第十三存储区、第十四存储区、第十五存储区和第十七存储区;
所述处理器包括第一运算点模块、第一模幂模块、第一判断模块、第一保存模块、第二保存模块、第一哈希模块、第三保存模块、第二运算点模块、第二模幂模块、第二判断模块、第一更新模块、第二哈希模块、模乘运算模块、模加运算模块和签名数据模块;
所述第一存储区,用于预先保存待签名数据;
所述第二存储区,用于预先保存签名私钥;
所述第三存储区,用于预先保存预置曲线的第一参数数据;
所述第四存储区,用于预先保存预置曲线的第二参数数据;
所述第六存储区,用于预先保存预置固定点的横坐标;所述第七存储区,用于预先保存预置固定点的纵坐标;预置固定点位于预置曲线上;
所述第一运算点模块,用于根据第二存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第一运算点的横坐标和纵坐标;
所述第八存储区,用于存储所述第一运算点模块得到的第一运算点的横坐标;
所述第九存储区,用于存储所述第一运算点模块得到的第一运算点的纵坐标;
所述第一模幂模块,用于对第九存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第一运算数据;
所述第一判断模块,用于判断所述第一模幂模块得到的所述第一运算数据是否等于第二预置数据;
所述第一保存模块,用于所述第一判断模块判断为否时,将第二存储区中的数据存储至第十三存储区;触发第一哈希模块;
所述第二保存模块,用于所述第一判断模块判断为是时,根据第三存储区中的数据和第二存储区中的数据得到第二运算数据;触发第一哈希模块;
所述第十三存储区,用于存储所述第一保存模块保存的数据或者所述第二保存模块得到的数据;
所述第一哈希模块,用于对第四预置数据、第十三存储区中的数据和第一存储区中的数据进行哈希运算得到第三运算数据;
所述第十四存储区,用于存储所述第一哈希模块得到的第三运算数据;
所述第三保存模块,根据第十四存储区中的数据和第三存储区中的数据得到第四运算数据;
所述第十五存储区,用于存储所述第三保存模块得到的第四运算数据;
所述第二运算点模块,用于根据第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据得到第二运算点的横坐标和纵坐标;
所述第十存储区,用于存储所述第二运算点模块得到的第二运算点的横坐标;
所述第十一存储区,用于存储所述第二运算点模块得到的第二运算点的纵坐标;
所述第二模幂模块,用于对第十一存储区中的数据、第三常数数据和第四存储区中的数据进行模幂运算得到第五运算数据;
所述第二判断模块,用于判断所述第二模幂模块得到的所述第五运算数据是否等于第二预置数据;
所述第一更新模块,用于所述第二判断模块判断为否时,根据第三存储区中的数据更新第十五存储区中的数据;触发第二哈希模块;
所述第二哈希模块,用于所述第二判断模块判断为是时,对第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据进行哈希运算得到第六运算数据;
所述第十七存储区,用于存储所述第二哈希模块得到的第六运算数据;
所述模乘运算模块,用于对第十七存储区中的数据、第十三存储区中的数据和第三存储区中的数据进行模乘运算得到第七运算数据;
所述模加运算模块,用于对所述第七运算数据、第十五存储区中的数据和第三存储区中的数据进行模加运算得到第八运算数据;
所述签名数据模块,用于根据所述第八运算数据和第十存储区中的数据得到签名结果数据;
所述第二保存模块,具体用于当所述第一判断模块判断为是时,以第三存储区中的数据为被减数、以第二存储区中的数据为减数进行减法运算得到第二运算数据;
所述第三保存模块,具体用于以第十四存储区中的数据为被除数和以第三存储区中的数据为除数进行取余运算得到第四运算数据;
所述第一更新模块,具体用于以第三存储区中的数据为被减数,以第十五存储区中的数据为减数进行减法运算得到第一运算结果,将第一运算结果存储至第十五存储区。
14.如权利要求13所述的装置,其特征在于,还包括第三判断模块;
所述第三判断模块,用于判断第二存储区中的数据是否等于第一预置数据,且判断第二存储区中的数据是否大于或者等于第三存储区中的数据,如全部判断为是则触发所述第一运算点模块;否则报错结束。
15.如权利要求13所述的装置,其特征在于,还包括第四判断模块;
所述第四判断模块,用于判断第八存储区中的数据和第九存储区中的数据是否全部等于第一预置数据;否则将第一运算点的横坐标和纵坐标分别存储至第八存储区和第九存储区;
所述第二保存模块,还用于当所述第四判断模块判断为是时,根据第三存储区中的数据和第二存储区中的数据得到第二运算数据。
16.如权利要求13所述的装置,其特征在于,所述第一模幂模块,具体用于以第九存储区中的数据为底数、以第三常数数据为指数和以第四存储区中的数据为模进行模幂运算得到第一运算数据。
17.如权利要求13所述的装置,其特征在于,还包括第五判断模块;
所述第五判断模块,用于判断第十五存储区中的数据是否等于第一预置数据,是则报错结束,否则触发所述第二运算点模块。
18.如权利要求13所述的装置,其特征在于,所述第二运算点模块,具体用于对第十五存储区中的数据、第六存储区中的数据和第七存储区中的数据进行点乘运算得到第二运算点的横坐标和纵坐标。
19.如权利要求13所述的装置,其特征在于,还包括第六判断模块;
所述第六判断模块,用于判断第十存储区中的数据和第十一存储区中的数据是否全部等于第一预置数据,是则触发所述第一更新模块,否则触发所述第二模幂模块。
20.如权利要求13所述的装置,其特征在于,所述第二模幂模块,具体用于以第十一存储区中的数据为底数、第三常数数据为指数和第四存储区中的数据为模进行模幂运算得到第五运算数据。
21.如权利要求13所述的装置,其特征在于,所述第二哈希模块,具体用于为根据第五预置数据、第八存储区中的数据、第十存储区中的数据和第一存储区中的数据组织第二待哈希数据,对所述第二待哈希数据进行哈希运算得到第六运算数据,将所述第六运算数据存储至第十七存储器。
22.如权利要求13所述的装置,其特征在于,还包括第二更新模块;
所述第二更新模块,用于以第十七存储区中的数据为被除数,以第三存储区中的数据为除数进行取余运算得到第二运算结果,根据第二运算结果更新第十七存储区中的数据。
23.如权利要求13所述的装置,其特征在于,所述模乘运算模块,具体用于以第十七存储区中的数据、第十三存储区中的数据为乘数,以第三存储区中的数据为模进行模乘运算得到第七运算数据。
24.如权利要求13所述的装置,其特征在于,所述模加运算模块,具体用于以所述第七运算数据、第十五存储区中的数据为加数,以第三存储区中的数据为模进行模加运算得到第八运算数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011301309.6A CN112100644B (zh) | 2020-11-19 | 2020-11-19 | 一种生成数据签名的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011301309.6A CN112100644B (zh) | 2020-11-19 | 2020-11-19 | 一种生成数据签名的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112100644A CN112100644A (zh) | 2020-12-18 |
CN112100644B true CN112100644B (zh) | 2021-03-16 |
Family
ID=73785756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011301309.6A Active CN112100644B (zh) | 2020-11-19 | 2020-11-19 | 一种生成数据签名的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112100644B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753684A (zh) * | 2015-04-15 | 2015-07-01 | 飞天诚信科技股份有限公司 | 一种实现数字签名和验签的方法 |
CN108933670A (zh) * | 2018-10-18 | 2018-12-04 | 北京云测信息技术有限公司 | 一种数字签名方法、装置、移动设备及存储介质 |
CN110061847A (zh) * | 2019-04-04 | 2019-07-26 | 西安电子科技大学 | 密钥分布式生成的数字签名方法 |
CN111066285A (zh) * | 2019-05-31 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 基于sm2签名恢复公钥的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103427997B (zh) * | 2013-08-16 | 2016-06-22 | 西安西电捷通无线网络通信股份有限公司 | 一种生成数字签名的方法及装置 |
-
2020
- 2020-11-19 CN CN202011301309.6A patent/CN112100644B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753684A (zh) * | 2015-04-15 | 2015-07-01 | 飞天诚信科技股份有限公司 | 一种实现数字签名和验签的方法 |
CN108933670A (zh) * | 2018-10-18 | 2018-12-04 | 北京云测信息技术有限公司 | 一种数字签名方法、装置、移动设备及存储介质 |
CN110061847A (zh) * | 2019-04-04 | 2019-07-26 | 西安电子科技大学 | 密钥分布式生成的数字签名方法 |
CN111066285A (zh) * | 2019-05-31 | 2020-04-24 | 阿里巴巴集团控股有限公司 | 基于sm2签名恢复公钥的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112100644A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3200487B1 (en) | Message processing method and apparatus | |
WO2021114918A1 (zh) | 完整性校验方法、装置、终端设备及验证服务器 | |
CN112865956B (zh) | 证书更新方法、装置、终端设备和服务器 | |
US20070300068A1 (en) | Method and apparatus for flash updates with secure flash | |
CN106446841B (zh) | 一种指纹模板匹配顺序更新方法及终端 | |
WO2017107830A1 (zh) | 一种安装应用软件的方法、装置及电子设备 | |
EP3029576B1 (en) | Method, device and system for remote memory exchange partition | |
EP2168302A1 (en) | Generation of device dependant rsa key | |
CN111611075B (zh) | 虚拟资源请求处理方法、装置、电子设备及存储介质 | |
WO2016000543A1 (zh) | 检测app的cpu占用率异常的方法、装置及移动终端 | |
CN112100644B (zh) | 一种生成数据签名的方法及装置 | |
CN113301203B (zh) | 基于通讯录对历史信息数据进行更新的方法及装置 | |
CN103152724B (zh) | 一种硬件锁sim卡的方法及系统 | |
CN109145644B (zh) | 私钥混淆及数字签名生成方法、装置、智能设备 | |
CN107465646A (zh) | 一种应用下载方法、系统及相关设备 | |
CN108121583B (zh) | 截屏方法及相关产品 | |
US20190364497A1 (en) | Method for Wireless Fidelity Connection and Related Products | |
CN109560918B (zh) | 一种ntru密钥生成的方法和终端设备 | |
CN106302821B (zh) | 一种数据请求方法及其设备 | |
US10958432B1 (en) | Prime number prediction | |
WO2022182751A1 (en) | N-dimensional model techniques and architectures for data protection | |
CN108897639B (zh) | 文件处理方法及装置 | |
CN114614975B (zh) | 量子通信中安全密钥速率的计算方法及装置 | |
CN112287395B (zh) | 印模与签章原文进行绑定的方法、设备及存储介质 | |
CN112379905B (zh) | 一种内核升级方法、装置、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |