CN117494229A - 数字签名方法、装置、设备及存储介质 - Google Patents

数字签名方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117494229A
CN117494229A CN202311510869.6A CN202311510869A CN117494229A CN 117494229 A CN117494229 A CN 117494229A CN 202311510869 A CN202311510869 A CN 202311510869A CN 117494229 A CN117494229 A CN 117494229A
Authority
CN
China
Prior art keywords
data
digital signature
field information
signature
determining
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.)
Pending
Application number
CN202311510869.6A
Other languages
English (en)
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.)
China Construction Bank Corp
CCB Finetech Co Ltd
Original Assignee
China Construction Bank Corp
CCB Finetech 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 China Construction Bank Corp, CCB Finetech Co Ltd filed Critical China Construction Bank Corp
Priority to CN202311510869.6A priority Critical patent/CN117494229A/zh
Publication of CN117494229A publication Critical patent/CN117494229A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种数字签名方法、装置、设备及存储介质。涉及数据安全领域。该方法包括:获取数字签名请求,所述数字签名请求包括多个数据标识;根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。以上方案,多个目标数据对应多个BLOB字段信息,对多个BLOB字段信息整体进行签名运算得到一个数字签名数据,数字签名数据与多个目标数据相关,通过一个数字签名数据进行数据迁移验证可以提升验证数据的效率。

Description

数字签名方法、装置、设备及存储介质
技术领域
本申请涉及数据安全领域,尤其涉及一种数字签名方法、装置、设备及存储介质。
背景技术
通过数据库可以对大批量的数据进行存储的管理,使得数据库被广泛应用于多种业务场景。当业务系统发生重大升级或者重构时,需执行数据库中的数据的迁移,将数据从原数据库迁移到迁移数据库。
在执行数据迁移的过程中,数据存在被篡改的风险,若使用被篡改的数据执行业务,会导致业务的错误执行,因此在完成数据迁移后需要进行数据一致性验证。
在相关技术中,通过数据签名工具生成数字签名,数据签名工具对对迁移前的原数据和迁移后的迁移数据中的每条数据分别计算得到数字签名。通过逐个比对原数据的数字签名以及迁移数据的数字签名,从而验证迁移数据的一致性。然而,逐个比对数字签名进行迁移数据验证存在效率低的问题。
发明内容
本申请提供一种数字签名方法、装置、设备及存储介质,用以提升验证数据的效率。
第一方面,本申请提供一种数字签名方法,包括:获取数字签名请求,所述数字签名请求包括多个数据标识;根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
在一种可能的设计中,所述数字签名请求包括数量阈值以及容量阈值;根据所述多个数据标识,从数据库中确定多个目标数据,包括:从所述数字签名请求中获取所述数量阈值以及所述容量阈值;根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应;根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据。
在一种可能的设计中,根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据,包括:确定所述多个待选数据的数据数量以及数据容量;判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值;若是,则将所述多个待选数据确定为所述多个目标数据;若否,则从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
在一种可能的设计中,对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据,包括:确定多个签名运算算法,所述多个签名运算算法为按位运算算法;确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……;按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
在一种可能的设计中,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据,包括:针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
在一种可能的设计中,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果,包括:确定分段步长;根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
在一种可能的设计中,所述方法还包括:获取数据验证请求,所述数据验证请求包括多个待验证数据标识;根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
第二方面,本申请提供一种数字签名装置,包括:获取模块,用于获取数字签名请求,所述数字签名请求包括多个数据标识;确定模块,用于根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;运算模块,用于对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
在一种可能的设计中,所述数字签名请求包括数量阈值以及容量阈值;所述确定模块,具体用于从所述数字签名请求中获取所述数量阈值以及所述容量阈值;所述确定模块,具体还用于根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应;所述确定模块,具体还用于根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据。
在一种可能的设计中,所述确定模块,具体用于确定所述多个待选数据的数据数量以及数据容量;所述确定模块,具体还用于判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值;所述确定模块,具体还用于若是,则将所述多个待选数据确定为所述多个目标数据;所述确定模块,具体还用于若否,则从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
在一种可能的设计中,所述装置还包括:执行模块,用于确定多个签名运算算法,所述多个签名运算算法为按位运算算法;所述执行模块,还用于确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……;所述执行模块,还用于按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
在一种可能的设计中,所述执行模块,具体用于针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;所述执行模块,具体还用于针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;所述执行模块,具体还用于将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
在一种可能的设计中,所述执行模块,具体用于确定分段步长;所述执行模块,具体还用于根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;所述执行模块,具体还用于分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;所述执行模块,具体还用于将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
在一种可能的设计中,所述装置还包括:验证模块,用于获取数据验证请求,所述数据验证请求包括多个待验证数据标识;所述验证模块,还用于根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;所述验证模块,还用于确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;所述验证模块,还用于若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;所述验证模块,还用于若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器和存储器;所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数字签名方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数字签名方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的数字签名方法。
本申请提供的数字签名方法、装置、设备及存储介质,方法包括:获取数字签名请求,所述数字签名请求包括多个数据标识;根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。以上方案,多个目标数据对应多个BLOB字段信息,对多个BLOB字段信息整体进行签名运算得到一个数字签名数据,数字签名数据与多个目标数据相关,通过一个数字签名数据进行数据迁移验证可以提升验证数据的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种数字签名方法的应用场景示意图;
图2为本申请实施例提供的一种数字签名方法的流程示意图;
图3为本申请实施例提供的一种数字签名方法的流程示意图;
图4为本申请实施例提供的确定目标数据示意图;
图5为本申请实施例提供的链式签名运算示意图;
图6为本申请实施例提供的签名运算算法示意图;
图7为本申请实施例提供的一种数字签名装置的结构示意图;
图8为本申请实施例提供的一种数字签名装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请的技术方案中,所涉及的金融数据或用户数据等信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
图1为现有技术的数字签名的应用场景图。如图1所示,该应用场景包括:原数据库以及迁移数据库,数据原始存储位置为原数据库,当业务变动需要数据相应变动时,数据从原数据库迁移到迁移数据库。在数据迁移过程中,数据存在篡改风险,为了保证数据正常使用,需要对迁移数据库中的数据进行数据验证。
现有技术中,对每个迁移数据生成数字签名,通过逐个比对每个迁移数据的数字签名与原数据的数字签名进行数据验证,而迁移数据的数据量较大,逐个比对数字签名存在效率低的问题。
针对上述技术问题,本申请提出如下技术构思:对迁移数据整体生成一个数字签名,任意一个迁移数据发生变动均会导致数字签名的变动,通过比对一个数字签名可以提升验证数据的效率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的一种数字签名方法的流程示意图,该方法包括以下步骤:
S201、获取数字签名请求,所述数字签名请求包括多个数据标识。
作为示例,该实施例的执行主体可以为数字签名装置,该数字签名装置的实现有多种。例如,可以为程序软件,也可以为存储有相关计算机程序的介质,例如,U盘等;或者,该装置还可以为集成或安装有相关计算机程序的实体设备,例如,芯片、智能终端、电脑、服务器等。
其中,本申请中涉及原数据库以及迁移数据库,原数据库中存放迁移前的原数据,迁移数据库中存放迁移后的迁移数据。数字签名请求可以针对原数据,也可以针对迁移数据。
可选的,数据标识为数据的唯一标识,通过数据标识确定需要生成数字签名的数据。
S202、根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息。
其中,数据库中包含BLOB字段,数据库中的每个数据对应BLOB字段下的BLOB字段信息。数据迁移过程中产生的数据变动会导致BLOB字段信息的字符截断或者替换。
举例来说,本申请通过BLOB字段信息生成数字签名,若数据发生变动,则对应的BLOB字段信息发生变动,同样会体现在数字签名的变动上。
S203、对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
其中,数字签名数据数量为一个,数字签名数据与多个目标数据相关,即任意一个目标数据的变动会导致数字签名数据的变动。
举例来说,数字签名数据综合多个目标数据的BLOB字段信息,若比对原数据与迁移数据的数字签名数据的结果为不一致,则说明迁移数据过程中发生数据变动。数据验证仅需要比对一个数字签名数据。
可选的,原数据与迁移数据对应的目标数据的数据标识相同。
本申请实施例提供的数字签名方法,方法包括:获取数字签名请求,所述数字签名请求包括多个数据标识;根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。以上方案,多个目标数据对应多个BLOB字段信息,对多个BLOB字段信息整体进行签名运算得到一个数字签名数据,数字签名数据与多个目标数据相关,通过一个数字签名数据进行数据迁移验证可以提升验证数据的效率。
在上述任意一个实施例的基础上,下面,结合图3,对数字签名的详细过程进行说明。
图3为本申请实施例提供的一种数字签名方法的流程示意图。如图3所示,该方法包括:
S301、获取数字签名请求,所述数字签名请求包括多个数据标识。
需要说明的是,S301的执行过程参见S201,此处不再赘述。
S302、所述数字签名请求包括数量阈值以及容量阈值;从所述数字签名请求中获取所述数量阈值以及所述容量阈值。
结合场景示例来说,数据的数量影响生成数字签名的耗时,数量越多或者容量越多的数据生成数字签名的耗时越高。通过数量阈值以及容量阈值控制生成数字签名的数据,从而提升数字签名的效率。
可选的,根据预设设置确定数量阈值以及容量阈值。
S303、根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应。
可选的,待选数据为执行数据迁移的数据。
结合场景示例来说,数据标识为唯一标识,将每个数据标识对应的数据确定为待选数据。
S304、确定所述多个待选数据的数据数量以及数据容量。
结合场景示例来说,数据容量为多个待选数据所占用的字节数,其中每个待选数据对应占用的字节数。
S305、判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值。.
若是,则执行S306。
若否,则执行S307。
S306、将所述多个待选数据确定为所述多个目标数据。
结合场景示例来说,若满足判断条件,说明待选数据生成数字签名的耗时在预设范围内,则不需要控制待选数据的数量。
S307、从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
结合场景示例来说,若不满足判断条件,说明待选数据生成数字签名的耗时较高,导致生成数字签名的效率低,则需要控制待选数据的数量。
下面,结合图4对确定目标数据进行说明。
图4为本申请实施例提供的确定目标数据示意图。如图4所示,从多个待选数据删除一个待选数据得到多个处理数据,判断多个处理数据是否满足判断条件,若不满足判断条件则循环执行删除操作,直至满足判断条件则将多个处理数据确定为多个目标数据。
S308、确定多个签名运算算法,所述多个签名运算算法为按位运算算法。
可选的,按位运算算法包括但不限于:按位与运算、按位或运算或者按位取反运算等算法。
S309、确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……。
可选的,根据多个目标数据在数据库中的排列顺序,确定每个BLOB字段信息的编号。或者通过随机排列的方式确定每个BLOB字段信息的编号。
S310、按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
一种可行的实现方式,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据,包括:针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
下面,结合图5对链式签名运算进行说明。
图5为本申请实施例提供的链式签名运算示意图。如图5所示,对于编号1的BLOB字段信息直接进行签名运算得到预算结果,对于编号不为1的BLOB字段信息,先与前一个BLOB字段信息的运算结果拼接得到运算输入数据,对运算输入数据进行签名运算得到运算结果。
在该种可行的实现方式中,通过链式运算得到的运算结果可以综合多个BLOB字段信息,最终得到一个数字签名数据,从而提升验证数据的效率。
一种可行的实现方式,签名运算包括:确定分段步长;根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
可选的,通过采样因子确定分段步长。
举例来说,采样因子为k,k的取值范围为[0,1],k的值越大,分段步长越小,验证强度越大,k=0时不执行数字签名。
结合场景示例来说,记采样字节数为8,针对任意一个BLOB字段信息,记当前BLOB字段信息为Rb,记Rb的长度为Len(Rb),在前面补充字节,直至补充后的Rb的字节数为采样字节数即8的整数倍。确定初始字符组D1,取Rb的前8个字节,分为2组,第1组为字节1到字节4,记为A;第2组为字节5到字节8,记为B。执行算法(1)并将计算结果赋值给D1
D1=(D1&A)∣((~D1)&B)······················(1)
其中,&指按位与运算、∣指按位或运算、~指按位取反运算。
取Rb的字节[8/k]+1到字节[8/k]+4记为A(k为采样因子,[]为向上取整)、字节[8/k]+5到字节[8/k]+8记为B,并结合第一次计算结果D1,再次执行算法(1),将结果赋值给D1。以此类推,从Rb中每次取[8/k]×(n-1)+1到字节[8/k]×(n-1)+8共8个字节的字符执行算法,直至[8/k]×(n-1)+8>Len(Rb)即剩余字符数不足够取字符,得到最终的D1
接下来用其他签名运算算法按照上述方法对同一个BLOB字段信息计算得到D2、D3以及D4
举例来说,通过D2=(D2&B)|(A&(~B))计算得到D2,通过D3=D3^A^B(^指按位异或运算)计算得到D3,通过D4=A^(D4|(~B))计算得到D4
可选的,对不同的签名运算算法设置不同的初始字符组或者相同的初始字符组。
需要说明的是,本申请不限制签名算法的具体类型以及具体数量。
下面,结合图6对签名运算算法进行说明。
图6为本申请实施例提供的签名运算算法示意图。如图6所示,对BLOB字段信息分别执行多个签名运算算法,得到对应的子运算结果,将多个子运算结果进行拼接处理,得到运算结果。
在该种可行的实现方式中,使用多个按位二进制算法作为签名运算算法,由于按位二进制算法的计算速度快,因此可以提升生成数字签名的效率。
一种可行的实现方式,数字签名方法还包括:获取数据验证请求,所述数据验证请求包括多个待验证数据标识;根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
结合场景示例来说,在数据验证场景中,通过比对原数据的原始数字签名数据以及迁移数据的迁移数字签名数据,确定数据是否发生变动。由于数字签名数据与多个数据相关,因此任意一个数据变动都会导致数字签名数据变动,同理,若数字签名数据不相同,说明至少一个数据发生变动。
在该种可行的实现方式中,通过比对一个数字签名数据,可以快速确定是否发生数据变动,从而提升验证数据的效率。
图7为本申请实施例提供的一种数字签名装置的结构示意图。如图7所示,该数字签名装置70可以包括:获取模块71、确定模块72以及运算模块73,其中,
所述获取模块71,用于获取数字签名请求,所述数字签名请求包括多个数据标识。
所述确定模块72,用于根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息。
所述运算模块73,用于对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
可选的,获取模块71可以执行图2实施例中的S201。
可选的,确定模块72可以执行图2实施例中的S202。
可选的,运算模块73可以执行图2实施例中的S203。
需要说明的是,本申请实施例所示的数字签名装置可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述数字签名请求包括数量阈值以及容量阈值;所述确定模块72,具体用于:
从所述数字签名请求中获取所述数量阈值以及所述容量阈值;
根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应;
根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据。
在一种可能的实施方式中,所述确定模块72,具体用于:
确定所述多个待选数据的数据数量以及数据容量;
判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值;
若是,则将所述多个待选数据确定为所述多个目标数据;
若否,则从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
图8为本申请实施例提供的一种数字签名装置的结构示意图。在图7所示实施例的基础上,如图8所示,该数字签名装置80还包括:执行模块74以及验证模块75,其中:
所述执行模块74,用于:
确定多个签名运算算法,所述多个签名运算算法为按位运算算法;
确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……;
按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
在一种可能的实施方式中,所述执行模块74,具体用于:
针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;
针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;
将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
在一种可能的实施方式中,所述执行模块74,具体用于:
确定分段步长;
根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;
分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;
将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
所述验证模块75,用于:
获取数据验证请求,所述数据验证请求包括多个待验证数据标识;
根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;
确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;
若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;
若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。各模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上各模块的功能。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
图9为本申请实施例提供的电子设备的结构示意图。如图9所示,该电子设备可以包括:收发器91、处理器92、存储器93。
处理器92执行存储器存储的计算机执行指令,使得处理器92执行上述实施例中的方案。处理器92可以是通用处理器,包括中央处理器CPU、网络处理器(network processor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器93通过系统总线与处理器92连接并完成相互间的通信,存储器93用于存储计算机程序指令。
收发器91可以用于获取待运行任务和待运行任务的配置信息。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可以是上述实施例的终端设备。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中数字签名方法的技术方案。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例数字签名方法的技术方案。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中数字签名方法的技术方案。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,简称CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,简称ISA)总线、外部设备互连(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电控单元或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (17)

1.一种数字签名方法,其特征在于,包括:
获取数字签名请求,所述数字签名请求包括多个数据标识;
根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;
对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
2.根据权利要求1所述的方法,其特征在于,所述数字签名请求包括数量阈值以及容量阈值;根据所述多个数据标识,从数据库中确定多个目标数据,包括:
从所述数字签名请求中获取所述数量阈值以及所述容量阈值;
根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应;
根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据。
3.根据权利要求2所述的方法,其特征在于,根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据,包括:
确定所述多个待选数据的数据数量以及数据容量;
判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值;
若是,则将所述多个待选数据确定为所述多个目标数据;
若否,则从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
4.根据权利要求1-3中任一项所述的方法,其特征在于,对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据,包括:
确定多个签名运算算法,所述多个签名运算算法为按位运算算法;
确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……;
按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
5.根据权利要求4所述的方法,其特征在于,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据,包括:
针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;
针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;
将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
6.根据权利要求5所述的方法,其特征在于,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果,包括:
确定分段步长;
根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;
分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;
将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
获取数据验证请求,所述数据验证请求包括多个待验证数据标识;
根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;
确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;
若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;
若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
8.一种数字签名装置,其特征在于,包括:
获取模块,用于获取数字签名请求,所述数字签名请求包括多个数据标识;
确定模块,用于根据所述多个数据标识,从数据库中确定多个目标数据以及每个所述目标数据对应的二进制大型对象BLOB字段信息;
运算模块,用于对所述BLOB字段信息整体进行签名运算,得到所述多个目标数据对应的数字签名数据。
9.根据权利要求8所述的装置,其特征在于,所述数字签名请求包括数量阈值以及容量阈值;
所述确定模块,具体用于从所述数字签名请求中获取所述数量阈值以及所述容量阈值;
所述确定模块,具体还用于根据所述多个数据标识,从所述数据库中获取多个待选数据,所述多个数据标识与所述多个待选数据一一对应;
所述确定模块,具体还用于根据所述数量阈值以及所述容量阈值,从所述多个待选数据中确定所述多个目标数据。
10.根据权利要求9所述的装置,其特征在于,
所述确定模块,具体用于确定所述多个待选数据的数据数量以及数据容量;
所述确定模块,具体还用于判断是否同时满足以下判断条件:所述数据数量小于或者等于所述数量阈值,以及所述数据容量小于或者等于所述容量阈值;
所述确定模块,具体还用于若是,则将所述多个待选数据确定为所述多个目标数据;
所述确定模块,具体还用于若否,则从所述多个待选数据中逐个删除数据,得到多个处理数据,直至所述多个处理数据同时满足所述判断条件,则将所述多个处理数据确定为所述多个目标数据。
11.根据权利要求8-10中任一项所述的装置,其特征在于,所述装置还包括:
执行模块,用于确定多个签名运算算法,所述多个签名运算算法为按位运算算法;
所述执行模块,还用于确定每个所述BLOB字段信息的编号i,其中,i依次取1、2、……;
所述执行模块,还用于按照所述编号的顺序,通过所述多个签名运算算法对所述BLOB字段信息分别进行签名运算,得到所述多个目标数据对应的所述数字签名数据。
12.根据权利要求11所述的装置,其特征在于,
所述执行模块,具体用于针对所述编号为1的所述BLOB字段信息,通过所述多个签名算法对所述BLOB字段信息进行签名运算,得到所述BLOB字段信息的运算结果;
所述执行模块,具体还用于针对所述编号不为1的任意一个所述BLOB字段信息,将所述BLOB字段信息与前一个BLOB字段信息的运算结果进行拼接处理,得到运算输入数据,通过所述多个签名算法对所述运算输入数据进行签名运算,得到所述BLOB字段信息的运算结果;
所述执行模块,具体还用于将所述编号最大的所述BLOB字段信息的运算结果,确定为所述多个目标数据对应的所述数字签名数据。
13.根据权利要求12所述的装置,其特征在于,
所述执行模块,具体用于确定分段步长;
所述执行模块,具体还用于根据所述分段步长对每个所述BLOB字段信息进行分段处理,得到每个所述BLOB字段信息对应的多个分段信息;
所述执行模块,具体还用于分别通过每个所述签名运算算法对所述BLOB字段信息的多个分段信息进行签名运算,得到每个签名运算算法对应的子运算结果;
所述执行模块,具体还用于将所述子运算结果进行拼接处理,得到所述BLOB字段信息的运算结果。
14.根据权利要求8-13中任一项所述的装置,其特征在于,所述装置还包括:
验证模块,用于获取数据验证请求,所述数据验证请求包括多个待验证数据标识;
所述验证模块,还用于根据所述待验证数据标识,确定多个原数据以及多个迁移数据,所述原数据为原数据库中所述多个待验证数据标识对应的数据,所述多个迁移数据为迁移数据库中所述多个待验证数据标识对应的数据;
所述验证模块,还用于确定所述多个原数据的原始数字签名数据以及所述多个迁移数据的迁移数字签名数据;
所述验证模块,还用于若所述原始数字签名数据与所述迁移数字签名数据相同,则确定数据验证通过;
所述验证模块,还用于若所述原始数字签名数据与所述迁移数字签名数据不相同,则确定数据验证未通过。
15.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
CN202311510869.6A 2023-11-13 2023-11-13 数字签名方法、装置、设备及存储介质 Pending CN117494229A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311510869.6A CN117494229A (zh) 2023-11-13 2023-11-13 数字签名方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311510869.6A CN117494229A (zh) 2023-11-13 2023-11-13 数字签名方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117494229A true CN117494229A (zh) 2024-02-02

Family

ID=89667222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311510869.6A Pending CN117494229A (zh) 2023-11-13 2023-11-13 数字签名方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117494229A (zh)

Similar Documents

Publication Publication Date Title
CN107832062B (zh) 一种程序更新方法及终端设备
CN110825363B (zh) 智能合约获取方法、装置、电子设备及存储介质
CN107797854B (zh) 交易文件处理方法、装置、存储介质和计算机设备
CN111159329B (zh) 敏感词检测方法、装置、终端设备和计算机可读存储介质
CN110474900B (zh) 一种游戏协议测试方法及装置
CN112506569B (zh) 一种字节码执行方法、字节码执行装置及终端设备
CN110880143A (zh) 用于处理去中心化应用中的交易验证操作的系统和方法
CN111161071A (zh) 基于区块链的数据处理方法、装置、设备和存储介质
CN108920962B (zh) 固件下载验签方法、固件发布方法、移动终端及服务器
CN114374392A (zh) 一种数据压缩存储方法、装置、终端设备及可读存储介质
CN111143240B (zh) 图像存储方法、系统及终端设备
CN111210345B (zh) 一种基于区块链网络交易的签名方法、装置及终端设备
WO2021097624A1 (zh) 一种文件处理方法、文件处理装置及终端设备
CN117494229A (zh) 数字签名方法、装置、设备及存储介质
CN111381905B (zh) 一种程序处理方法、装置及设备
CN111143092A (zh) 故障录波数据处理方法、系统及终端设备
CN114936187A (zh) 数据文件的处理方法、装置、设备及存储介质
CN108415709A (zh) 一种基于有限状态机加固源代码的方法及装置
CN111371818B (zh) 一种数据请求的验证方法、装置及设备
CN106648751B (zh) 一种嵌入式软件快速升级的方法及嵌入式设备
CN113392138B (zh) 一种隐私数据的统计分析方法、装置、服务器和存储介质
CN108665938B (zh) 写测试方法、读测试方法、读写测试方法及终端设备
CN113342275B (zh) 区块链节点存取数据的方法、设备和计算机可读存储介质
CN116679885A (zh) 交付物文件存储方法、装置、设备及存储介质
CN115329699B (zh) 用于Flash仿真模型的注错方法、装置及系统

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