CN107070665B - 一种数字签名的方法及装置 - Google Patents

一种数字签名的方法及装置 Download PDF

Info

Publication number
CN107070665B
CN107070665B CN201710296782.1A CN201710296782A CN107070665B CN 107070665 B CN107070665 B CN 107070665B CN 201710296782 A CN201710296782 A CN 201710296782A CN 107070665 B CN107070665 B CN 107070665B
Authority
CN
China
Prior art keywords
digital signature
adjacent
signature value
adjacent object
sum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710296782.1A
Other languages
English (en)
Other versions
CN107070665A (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 Haitai Fangyuan High Technology Co Ltd
Original Assignee
Beijing Haitai Fangyuan High 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 Haitai Fangyuan High Technology Co Ltd filed Critical Beijing Haitai Fangyuan High Technology Co Ltd
Priority to CN201710296782.1A priority Critical patent/CN107070665B/zh
Publication of CN107070665A publication Critical patent/CN107070665A/zh
Application granted granted Critical
Publication of CN107070665B publication Critical patent/CN107070665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例中公开了一种数字签名的方法及装置,该方法为监测到执行了指定操作时,获取指定操作对应的操作对象;获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值。这样,基于操作对象的数字签名值与相邻对象的数字签名值的组合,获得相邻对象的关联数字签名值,从而可以在操作对象被删除或插入原先被删除的正确的操作对象时,通过相应的相邻对象的关联数字签名值进行验证,进而识别出非法操作,提高数据的信息安全,保证数据的完整性以及真实性。

Description

一种数字签名的方法及装置
技术领域
本申请涉及信息安全技术领域,尤其涉及一种数字签名的方法及装置。
背景技术
随着互联网技术的发展,互联网的安全措施也在不断地改进,通常对互联网中的数据(如,数据库数据)进行数字签名,从而可以根据获得的数字签名值对数据的真伪进行验证,以保证互联网中的数据的信息安全。
现有技术下,对互联网中的数据进行数字签名时,主要采用以下方式:
采用哈希算法对一条数据进行计算,获得第一哈希值,并采用数字签名函数对第一哈希值进行数字签名,获得相应的数字签名值。其中,所谓哈希算法是通过散列函数,将任意长度的输入数据进行哈希,获得固定长度的输出数据,作为哈希值。
这样,当上述数据被非法修改时,将基于修改后的数据获得的第二哈希值与基于上述数字签名转换获得的第一哈希值进行匹配,获得表征匹配失败的匹配结果,从而无法通过验证。
但是,这种方式仅基于一条数据的哈希值,获得相应的数字签名,因此,当一条数据被删除或插入一条被删除的正确的数据时,由于不会出现匹配失败的结果,因此无法识别出非法操作,不能确保数据的信息安全。
发明内容
本申请实施例提供一种数字签名方法及装置,用于当一条数据被删除或插入一条被删除的正确的数据时,识别发现非法操作,提高数据的信息安全,保证数据的完整性以及真实性。
本申请实施例提供的具体技术方案如下:
第一方面,一种数字签名方法,包括:
监测到执行了指定操作时,获取指定操作对应的操作对象;
获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;
基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
较佳的,获取针对操作对象预先建立的相邻对象,具体包括:
基于预设的数据排列顺序,获取操作对象的第一相邻对象以及操作对象的第二相邻对象;
其中,第一相邻对象与操作对象左相邻并间隔M个对象,第二相邻对象与操作对象右相邻并间隔M个对象,第一相邻对象和第二相邻对象均为操作对象的相邻对象,M为自然数。
较佳的,基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,具体包括:
基于数据排列顺序,获取第三相邻对象,其中,第三相邻对象与第一相邻对象左相邻并间隔M个对象;
基于数据排列顺序,获取第四相邻对象,其中,第四相邻对象与第二相邻对象右相邻间隔M个对象;
分别对操作对象、第一相邻对象、第二相邻对象、第三相邻对象和第四相邻对象进行哈希以及数字签名,获得相应的数字签名值;
基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值,并基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值。
较佳的,基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值,包括:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值和第三相邻对象的数字签名值的加和,作为第一加和,并对第一加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的下一个对象,作为第五相邻对象,并计算第一相邻对象的数字签名值、第三相邻对象的数字签名值和第五相邻对象的数字签名值的加和,作为第二加和,以及对第二加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值。
较佳的,基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值,包括:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第二相邻对象的数字签名值和第四相邻对象的数字签名值的加和,作为第三加和,并对第三加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的上一个对象,作为第六相邻对象,并计算第二相邻对象的数字签名值、第四相邻对象的数字签名值和第六相邻对象的数字签名值的加和,作为第四加和,并对第四加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值。
较佳的,进一步包括:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值以及第二相邻对象的数字签名值的加和,作为第五加和,并对第五加和进行哈希以及数字签名,获得操作对象的关联数字签名值。
第二方面,一种数字签名装置,包括:
获取单元,用于监测到执行了指定操作时,获取指定操作对应的操作对象;
签名单元,用于获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;
关联单元,用于基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
较佳的,在获取针对操作对象预先建立的相邻对象时,签名单元具体用于:
基于预设的数据排列顺序,获取操作对象的第一相邻对象以及操作对象的第二相邻对象;
其中,第一相邻对象与操作对象左相邻并间隔M个对象,第二相邻对象与操作对象右相邻并间隔M个对象,第一相邻对象和第二相邻对象均为操作对象的相邻对象,M为自然数。
较佳的,在基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值时,关联单元具体用于:
基于数据排列顺序,获取第三相邻对象,其中,第三相邻对象与第一相邻对象左相邻并间隔M个对象;
基于数据排列顺序,获取第四相邻对象,其中,第四相邻对象与第二相邻对象右相邻间隔M个对象;
分别对操作对象、第一相邻对象、第二相邻对象、第三相邻对象和第四相邻对象进行哈希以及数字签名,获得相应的数字签名值;
基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值,并基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值。
较佳的,在基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值时,关联单元还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值和第三相邻对象的数字签名值的加和,作为第一加和,并对第一加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的下一个对象,作为第五相邻对象,并计算第一相邻对象的数字签名值、第三相邻对象的数字签名值和第五相邻对象的数字签名值的加和,作为第二加和,以及对第二加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值。
较佳的,在基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值时,关联单元还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第二相邻对象的数字签名值和第四相邻对象的数字签名值的加和,作为第三加和,并对第三加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的上一个对象,作为第六相邻对象,并计算第二相邻对象的数字签名值、第四相邻对象的数字签名值和第六相邻对象的数字签名值的加和,作为第四加和,并对第四加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值。
较佳的,关联单元还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值以及第二相邻对象的数字签名值的加和,作为第五加和,并对第五加和进行哈希以及数字签名,获得操作对象的关联数字签名值。
本申请实施例中,监测到执行了指定操作时,获取指定操作对应的操作对象;获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值。这样,基于操作对象的数字签名值与相邻对象的数字签名值的组合,获得相邻对象的关联数字签名值,从而可以在操作对象被删除或插入原先被删除的正确的操作对象时,通过相应的相邻对象的关联数字签名值进行验证,进而识别出非法操作,提高数据的信息安全,保证数据的完整性以及真实性。
第三方面,一种存储介质,存储有用于数字签名的程序,程序被处理器运行时,执行以下步骤:
监测到执行了指定操作时,获取指定操作对应的操作对象;
获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;
基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
第四方面,一种通信装置,包括:一个或多个处理器;以及
一个或多个计算机可读介质,可读介质上存储有用于数字签名的程序,其中,程序被一个或多个处理器执行时,使得装置执行上述第一方面中任一项的方法。
第五方面,一个或多个计算机可读介质,可读介质上存储有用于数字签名的程序,其中,程序被一个或多个处理器执行时,使得通信设备执行上述第一方面中任一项的方法。
附图说明
图1为本申请实施例中数字签名方法的流程图;
图2为本申请实施例中数字签名装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了在一条数据被删除或插入一条被删除的正确的数据时,对非法操作进行识别,提高数据的信息安全,保证数据的完整性以及真实性,本申请实施例中,设计了一种数字签名方法,该方法为分别获取操作对象以及相邻对象的数字签名值,并基于获取的各个数字签名值的组合,获得相邻对象的关联数字签名值。
下面结合附图对本申请优选的实施方式进行详细说明。
参阅图1所示,本申请实施例中,对数字签名具体流程如下:
步骤100:终端监测到用户执行了指定操作时,获取指定操作对应的操作对象。
具体的,终端对用户的操作行为进行监测,确定用户执行了指定操作时,获取指定操作对应的操作对象。
可选的,指定操作可以为修改数据、插入数据或删除数据。
其中,操作对象是指用户通过指定操作进行修改、插入或删除的数据,可选的,操作对象可以是数据表中的一条记录。
例如,终端基于用户表征修改数据的指定操作,获取用户在数据库的“历史”数据表中修改的第5条数据(操作对象)。
又例如,终端基于用户表征删除数据的指定操作,获取用户在数据库的“学习”数据表中删除的第10条数据(操作对象)。
这样,终端就可以基于用户的指定操作,获取相应的操作对象的具体内容。
步骤110:终端获取针对操作对象预先建立的相邻对象。
具体的,终端基于预设的数据排列顺序,获取操作对象的第一相邻对象,其中,第一相邻对象与操作对象左相邻并间隔M个对象,M为自然数,可选的,M可以为1。
例如,假设操作对象为数据表中第8条数据,M为1,则终端确定第一相邻对象为与操作对象左相邻的第7条数据。
终端基于数据排列顺序,获取操作对象的第二相邻对象,其中,第二相邻对象与操作对象右相邻并间隔M个对象。
例如,假设操作对象为数据表中第8条数据,M为1,则终端确定第二相邻对象为与操作对象右相邻的第9条数据。
第一相邻对象以及第二相邻对象均为操作对象的相邻对象。这样,终端就可以根据与操作对象间隔的对象的指定个数以及指定方向,获取操作对象的各个相邻对象。
进一步地,除了按照数据排列顺序获取操作对象的相邻对象,终端还可以基于操作对象与其它对象之间的关联关系等方式,获取相应的相邻对象,并且相邻对象的数量可以为多个。
步骤120:终端分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值。
具体的,终端分别对操作对象、第一相邻对象和第二相邻对象进行哈希,获得相应的哈希值。
例如,终端采用哈希算法对数据表中的第23条数据(操作对象)进行哈希,获取固定长度的输出数据即哈希值。
然后,终端采用数字签名算法(如,密码生成算法、标记算法或验证算法),分别对获取的每一个哈希值进行数字签名,获取操作对象的数字签名值、第一相邻对象的数字签名值以及第二相邻对象的数字签名值。
例如,终端采用密码生成算法,对数据表的第12条数据(第二相邻对象)的哈希值进行数字签名,获得第二相邻对象的数字签名值。
其中,确定指定操作表征删除数据时,由于操作对象从数据表中被删除,因此终端不必获取操作对象的数字签名值。
这样,终端就可以采用哈希算法以及数字签名算法分别获取操作对象、第一相邻对象以及第二相邻对象的数字签名值。
步骤130:终端基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取第一相邻对象的关联数字签名值。
具体的,首先,终端基于数据排列顺序,获取第三相邻对象。
其中,第三相邻对象不是操作对象的相邻对象,并且与第一相邻对象左相邻并间隔M个对象。
然后,终端对第三相邻对象进行哈希以及数字签名,获得相应的数字签名值。
进一步地,终端可以采用但不限于以下两种方式获取第一相邻对象的关联数字签名值:
第一种方式为:确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值和第三相邻对象的数字签名值的加和,作为第一加和,并对第一加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值。
可选的,计算第一相邻对象的关联数字签名值时,可以采用以下公式:
SSDi-m=S(H(SHDi-2m+SHDi-m+SHDi))
其中,SSD为关联数字签名值,S为数字签名算法,H为哈希算法,SHD为数字签名值,i为操作对象的排列序号,m为相邻对象与操作对象间隔的对象的个数。
例如,假设i为10,m为1,则操作对象的数字签名值为SHD10、第一相邻对象的数字签名值SHD9以及第三相邻对象的数字签名值SHD8。则终端确定第一相邻对象的关联数字签名值为SSD9=S(H(SHD8+SHD9+SHD10))。
第二种方式为:确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的下一个对象,作为第五相邻对象,并计算第一相邻对象的数字签名值、第三相邻对象的数字签名值和第五相邻对象的数字签名值的加和,作为第二加和,以及对第二加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值。
可选的,计算第一相邻对象的关联数字签名值时,可以采用以下公式:
SSDi-m=S(H(SHDi-2m+SHDi-m+SHDi+1))
其中,SSD为关联数字签名值,S为数字签名算法,H为哈希算法,SHD为数字签名值,i为操作对象的排列序号,m为相邻对象与操作对象间隔的对象的个数。
例如,假设i为9,m为2,则第一相邻对象的数字签名值SHD7、第三相邻对象的数字签名值SHD5,以及第五相邻对象的数字签名值SHD10。则终端确定第一相邻对象的关联数字签名值为SSD7=S(H(SHD5+SHD7+SHD10))。
这样,终端就可以基于与第一相邻对象相邻的各个对象的数字签名值的组合,获取第一相邻对象的关联数字签名值。其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
步骤140:终端基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取第二相邻对象的关联数字签名值。
具体的,终端基于数据排列顺序,获取第四相邻对象。
其中,第四相邻对象不是操作对象的相邻对象,并且与第二相邻对象右相邻间隔M个对象。
然后,终端对第四相邻对象进行哈希以及数字签名,获得相应的数字签名值。
进一步地,终端可以采用但不限于以下两种方式获取第二相邻对象的关联数字签名值:
方式a):确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第二相邻对象的数字签名值和第四相邻对象的数字签名值的加和,作为第三加和,并对第三加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值。
可选的,计算第二相邻对象的关联数字签名值时,可以采用以下公式:
SSDi+m=S(H(SHDi+2m+SHDi+m+SHDi))
其中,SSD为关联数字签名值,S为数字签名算法,H为哈希算法,SHD为数字签名值,i为操作对象的排列序号,m为相邻对象与操作对象间隔的对象的个数。
例如,假设i为5,m为1,则操作对象的数字签名值为SHD5、第二相邻对象的数字签名值SHD6以及第四相邻对象的数字签名值SHD7。则终端确定第二相邻对象的关联数字签名值为SSD5=S(H(SHD7+SHD6+SHD5))。
方式b):确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的上一个对象,作为第六相邻对象,并计算第二相邻对象的数字签名值、第四相邻对象的数字签名值和第六相邻对象的数字签名值的加和,作为第四加和,并对第四加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值。
可选的,计算第二相邻对象的关联数字签名值时,可以采用以下公式:
SSDi+m=S(H(SHDi+2m+SHDi+m+SHDi-1))
其中,SSD为关联数字签名值,S为数字签名算法,H为哈希算法,SHD为数字签名值,i为操作对象的排列序号,m为相邻对象与操作对象间隔的对象的个数。
例如,假设i为9,m为3,则操作对象的数字签名值为SHD9、第二相邻对象的数字签名值SHD12、第四相邻对象的数字签名值SHD15以及第六相邻对象的数字签名值SHD8,则终端确定第二相邻对象的关联数字签名值为SSD12=S(H(SHD15+SHD12+SHD8))。
这样,终端就可以基于与第二相邻对象相邻的各个对象的数字签名值的组合,获取第二相邻对象的关联数字签名值。
步骤150:终端基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取操作对象的关联数字签名值。
具体的,确定指定操作表征插入或修改数据时,终端计算操作对象的数字签名值、第一相邻对象的数字签名值以及第二相邻对象的数字签名值的加和,作为第五加和,并对第五加和进行哈希以及数字签名,获得操作对象的关联数字签名值。
可选的,计算操作对象的关联数字签名值时,可以采用以下公式:
SSDi=S(H(SHDi+m+SHDi+SHDi-m))
其中,SSD为关联数字签名值,S为数字签名算法,H为哈希算法,SHD为数字签名值,i为操作对象的排列序号,m为相邻对象与操作对象间隔的对象的个数。
例如,假设i为20,m为1,则操作对象的数字签名值为SHD20、第一相邻对象的数字签名值SHD19以及第二相邻对象的数字签名值SHD21。则终端确定操作对象的关联数字签名值为SSD20=S(H(SHD21+SHD20+SHD19))。
这样,终端就可以分别获取操作对象、第一相邻对象和第二相邻对象的关联数字签名值,并对第一相邻对象以及第二相邻对象的关联数字签名值进行更新,从而在用户非法删除操作对象或非法插入一个原先被被删除的正确的操作对象时,操作对象的第一相邻对象以及第二相邻对象的关联数字签名值由于没有基于非法操作的操作对象的数字签名值进行相应的更新,因此无法通过验证,进而及时识别出非法操作以及非法操作的对象,保证数据的信息安全。
例如,假设i为10,m为1,则第10条数据(操作对象)的数字签名值为SHD10、第9条数据(第一相邻对象)的数字签名值SHD9、第8条数据(第三相邻对象)的数字签名值SHD8、第11条数据(第二相邻对象)的数字签名值SHD11、第12条数据(第四相邻对象)的数字签名值SHD12
则终端确定第9条数据的关联数字签名值为SSD9=S(H(SHD8+SHD9+SHD10)),并确定第11条数据的关联数字签名值为SSD11=S(H(SHD12+SHD11+SHD10))。
若用户非法删除了上述操作对象,则终端基于删除上述操作对象后的数据表,确定第9条数据的验证的关联数字签名值为XSSD9=S(H(SHD8+SHD9+SHD11)),并确定第11条数据验证的关联数字签名值为XSSD11=S(H(SHD12+SHD11+SHD9))。
进一步地,终端确定SSD9与XSSD9不同,SSD11与XSSD11不同,则判定匹配失败,用户进行了非法操作。
本申请实施例中,一种存储介质,存储有用于数字签名的程序,程序被处理器运行时,执行以下步骤:
监测到执行了指定操作时,获取指定操作对应的操作对象;
获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;
基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
本申请实施例中,一种通信装置,包括:一个或多个处理器;以及
一个或多个计算机可读介质,可读介质上存储有用于数字签名的程序,其中,程序被一个或多个处理器执行时,使得装置可以执行上述实施例中的各个步骤。
本申请实施例中,一个或多个计算机可读介质,可读介质上存储有用于数字签名的程序,其中,程序被一个或多个处理器执行时,使得通信设备可以执行上述实施例中的各个步骤。
基于上述实施例,参阅图2所示,数字签名装置的结构示意图,本申请实施例中实施例中,数字签名装置具体包括:
获取单元20,用于监测到执行了指定操作时,获取指定操作对应的操作对象;
签名单元21,用于获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;
关联单元22,用于基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值,其中,关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
较佳的,在获取针对操作对象预先建立的相邻对象时,签名单元21具体用于:
基于预设的数据排列顺序,获取操作对象的第一相邻对象以及操作对象的第二相邻对象;
其中,第一相邻对象与操作对象左相邻并间隔M个对象,第二相邻对象与操作对象右相邻并间隔M个对象,第一相邻对象和第二相邻对象均为操作对象的相邻对象,M为自然数。
较佳的,在基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值时,关联单元22具体用于:
基于数据排列顺序,获取第三相邻对象,其中,第三相邻对象与第一相邻对象左相邻并间隔M个对象;
基于数据排列顺序,获取第四相邻对象,其中,第四相邻对象与第二相邻对象右相邻间隔M个对象;
分别对操作对象、第一相邻对象、第二相邻对象、第三相邻对象和第四相邻对象进行哈希以及数字签名,获得相应的数字签名值;
基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值,并基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值。
较佳的,在基于获取的各个数字签名值,获取第一相邻对象的关联数字签名值时,关联单元22还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值和第三相邻对象的数字签名值的加和,作为第一加和,并对第一加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的下一个对象,作为第五相邻对象,并计算第一相邻对象的数字签名值、第三相邻对象的数字签名值和第五相邻对象的数字签名值的加和,作为第二加和,以及对第二加和进行哈希以及数字签名,获得第一相邻对象的关联数字签名值。
较佳的,在基于获取的各个数字签名值,获取第二相邻对象的关联数字签名值时,关联单元22还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第二相邻对象的数字签名值和第四相邻对象的数字签名值的加和,作为第三加和,并对第三加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值;或者,
确定指定操作表征删除数据时,基于数据排列顺序,获取操作对象的上一个对象,作为第六相邻对象,并计算第二相邻对象的数字签名值、第四相邻对象的数字签名值和第六相邻对象的数字签名值的加和,作为第四加和,并对第四加和进行哈希以及数字签名,获得第二相邻对象的关联数字签名值。
较佳的,关联单元22还用于:
确定指定操作表征插入或修改数据时,计算操作对象的数字签名值、第一相邻对象的数字签名值以及第二相邻对象的数字签名值的加和,作为第五加和,并对第五加和进行哈希以及数字签名,获得操作对象的关联数字签名值。
本申请实施例中,监测到执行了指定操作时,获取指定操作对应的操作对象;获取针对操作对象预先建立的相邻对象,并分别对操作对象和相邻对象进行数字签名,获取相应的数字签名值;基于获得的操作对象的数字签名值和相邻对象的数字签名值,获取相邻对象的关联数字签名值。这样,基于操作对象的数字签名值与相邻对象的数字签名值的组合,获得相邻对象的关联数字签名值,从而可以在操作对象被删除或插入原先被删除的正确的操作对象时,通过相应的相邻对象的关联数字签名值进行验证,进而识别出非法操作,提高数据的信息安全,保证数据的完整性以及真实性。
本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。

Claims (15)

1.一种数字签名方法,其特征在于,包括:
监测到执行了指定操作时,获取所述指定操作对应的操作对象;
获取针对所述操作对象预先建立的相邻对象,并分别对所述操作对象和所述相邻对象进行数字签名,获取相应的数字签名值;
基于获得的所述操作对象的数字签名值和所述相邻对象的数字签名值,获取所述相邻对象的关联数字签名值,其中,所述关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证;
其中,所述指定操作包括修改数据、插入数据以及删除数据,所述关联数字签名值是基于操作对象以及若干相邻对象的数字签名值进行加和计算并进行数字签名获得的。
2.如权利要求1所述的方法,其特征在于,获取针对所述操作对象预先建立的相邻对象,具体包括:
基于预设的数据排列顺序,获取所述操作对象的第一相邻对象以及所述操作对象的第二相邻对象;
其中,所述第一相邻对象与所述操作对象左相邻并间隔M个对象,所述第二相邻对象与所述操作对象右相邻并间隔M个对象,所述第一相邻对象和所述第二相邻对象均为所述操作对象的相邻对象,M为自然数。
3.如权利要求2所述的方法,其特征在于,基于获得的所述操作对象的数字签名值和所述相邻对象的数字签名值,获取所述相邻对象的关联数字签名值,具体包括:
基于所述数据排列顺序,获取第三相邻对象,其中,所述第三相邻对象与所述第一相邻对象左相邻并间隔M个对象;
基于所述数据排列顺序,获取第四相邻对象,其中,所述第四相邻对象与所述第二相邻对象右相邻间隔M个对象;
分别对所述操作对象、所述第一相邻对象、所述第二相邻对象、所述第三相邻对象和所述第四相邻对象进行哈希以及数字签名,获得相应的数字签名值;
基于获取的各个数字签名值,获取所述第一相邻对象的关联数字签名值,并基于获取的各个数字签名值,获取所述第二相邻对象的关联数字签名值。
4.如权利要求3所述的方法,其特征在于,基于获取的各个数字签名值,获取所述第一相邻对象的关联数字签名值,包括:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第一相邻对象的数字签名值和所述第三相邻对象的数字签名值的加和,作为第一加和,并对所述第一加和进行哈希以及数字签名,获得所述第一相邻对象的关联数字签名值;或者,
确定所述指定操作表征删除数据时,基于所述数据排列顺序,获取所述操作对象的下一个对象,作为第五相邻对象,并计算所述第一相邻对象的数字签名值、所述第三相邻对象的数字签名值和所述第五相邻对象的数字签名值的加和,作为第二加和,以及对所述第二加和进行哈希以及数字签名,获得所述第一相邻对象的关联数字签名值。
5.如权利要求3所述的方法,其特征在于,基于获取的各个数字签名值,获取所述第二相邻对象的关联数字签名值,包括:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第二相邻对象的数字签名值和所述第四相邻对象的数字签名值的加和,作为第三加和,并对所述第三加和进行哈希以及数字签名,获得所述第二相邻对象的关联数字签名值;或者,
确定所述指定操作表征删除数据时,基于所述数据排列顺序,获取所述操作对象的上一个对象,作为第六相邻对象,并计算所述第二相邻对象的数字签名值、所述第四相邻对象的数字签名值和所述第六相邻对象的数字签名值的加和,作为第四加和,并对所述第四加和进行哈希以及数字签名,获得所述第二相邻对象的关联数字签名值。
6.如权利要求2-5任一项所述的方法,其特征在于,进一步包括:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第一相邻对象的数字签名值以及所述第二相邻对象的数字签名值的加和,作为第五加和,并对所述第五加和进行哈希以及数字签名,获得所述操作对象的关联数字签名值。
7.一种数字签名装置,其特征在于,包括:
获取单元,用于监测到执行了指定操作时,获取所述指定操作对应的操作对象;
签名单元,用于获取针对所述操作对象预先建立的相邻对象,并分别对所述操作对象和所述相邻对象进行数字签名,获取相应的数字签名值;
关联单元,用于基于获得的所述操作对象的数字签名值和所述相邻对象的数字签名值,获取所述相邻对象的关联数字签名值,其中,所述关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证;
其中,所述指定操作包括修改数据、插入数据以及删除数据,所述关联数字签名值是基于操作对象以及若干相邻对象的数字签名值进行加和计算并进行数字签名获得的。
8.如权利要求7所述的装置,其特征在于,在获取针对所述操作对象预先建立的相邻对象时,所述签名单元具体用于:
基于预设的数据排列顺序,获取所述操作对象的第一相邻对象以及所述操作对象的第二相邻对象;
其中,所述第一相邻对象与所述操作对象左相邻并间隔M个对象,所述第二相邻对象与所述操作对象右相邻并间隔M个对象,所述第一相邻对象和所述第二相邻对象均为所述操作对象的相邻对象,M为自然数。
9.如权利要求8所述的装置,其特征在于,在基于获得的所述操作对象的数字签名值和所述相邻对象的数字签名值,获取所述相邻对象的关联数字签名值时,所述关联单元具体用于:
基于所述数据排列顺序,获取第三相邻对象,其中,所述第三相邻对象与所述第一相邻对象左相邻并间隔M个对象;
基于所述数据排列顺序,获取第四相邻对象,其中,所述第四相邻对象与所述第二相邻对象右相邻间隔M个对象;
分别对所述操作对象、所述第一相邻对象、所述第二相邻对象、所述第三相邻对象和所述第四相邻对象进行哈希以及数字签名,获得相应的数字签名值;
基于获取的各个数字签名值,获取所述第一相邻对象的关联数字签名值,并基于获取的各个数字签名值,获取所述第二相邻对象的关联数字签名值。
10.如权利要求9所述的装置,其特征在于,在基于获取的各个数字签名值,获取所述第一相邻对象的关联数字签名值时,所述关联单元还用于:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第一相邻对象的数字签名值和所述第三相邻对象的数字签名值的加和,作为第一加和,并对所述第一加和进行哈希以及数字签名,获得所述第一相邻对象的关联数字签名值;或者,
确定所述指定操作表征删除数据时,基于所述数据排列顺序,获取所述操作对象的下一个对象,作为第五相邻对象,并计算所述第一相邻对象的数字签名值、所述第三相邻对象的数字签名值和所述第五相邻对象的数字签名值的加和,作为第二加和,以及对所述第二加和进行哈希以及数字签名,获得所述第一相邻对象的关联数字签名值。
11.如权利要求9所述的装置,其特征在于,在基于获取的各个数字签名值,获取所述第二相邻对象的关联数字签名值时,所述关联单元还用于:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第二相邻对象的数字签名值和所述第四相邻对象的数字签名值的加和,作为第三加和,并对所述第三加和进行哈希以及数字签名,获得所述第二相邻对象的关联数字签名值;或者,
确定所述指定操作表征删除数据时,基于所述数据排列顺序,获取所述操作对象的上一个对象,作为第六相邻对象,并计算所述第二相邻对象的数字签名值、所述第四相邻对象的数字签名值和所述第六相邻对象的数字签名值的加和,作为第四加和,并对所述第四加和进行哈希以及数字签名,获得所述第二相邻对象的关联数字签名值。
12.如权利要求8-11任一项所述的装置,其特征在于,所述关联单元还用于:
确定所述指定操作表征插入或修改数据时,计算所述操作对象的数字签名值、所述第一相邻对象的数字签名值以及所述第二相邻对象的数字签名值的加和,作为第五加和,并对所述第五加和进行哈希以及数字签名,获得所述操作对象的关联数字签名值。
13.一种存储介质,其特征在于,存储有用于数字签名的程序,所述程序被处理器运行时,执行以下步骤:
监测到执行了指定操作时,获取所述指定操作对应的操作对象;
获取针对所述操作对象预先建立的相邻对象,并分别对所述操作对象和所述相邻对象进行数字签名,获取相应的数字签名值;
基于获得的所述操作对象的数字签名值和所述相邻对象的数字签名值,获取所述相邻对象的关联数字签名值,其中,所述关联数字签名值用于基于操作对象以及相邻对象之间的关联关系对操作对象进行验证。
14.一种通信装置,其特征在于,包括:一个或多个处理器;以及
一个或多个计算机可读介质,所述可读介质上存储有用于数字签名的程序,其中,所述程序被所述一个或多个处理器执行时,使得所述装置执行如权利要求1至6中任一项所述的方法。
15.一个或多个计算机可读介质,其特征在于,所述可读介质上存储有用于数字签名的程序,其中,所述程序被一个或多个处理器执行时,使得通信设备执行如权利要求1至6中任一项所述的方法。
CN201710296782.1A 2017-04-28 2017-04-28 一种数字签名的方法及装置 Active CN107070665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710296782.1A CN107070665B (zh) 2017-04-28 2017-04-28 一种数字签名的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710296782.1A CN107070665B (zh) 2017-04-28 2017-04-28 一种数字签名的方法及装置

Publications (2)

Publication Number Publication Date
CN107070665A CN107070665A (zh) 2017-08-18
CN107070665B true CN107070665B (zh) 2018-06-12

Family

ID=59604324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710296782.1A Active CN107070665B (zh) 2017-04-28 2017-04-28 一种数字签名的方法及装置

Country Status (1)

Country Link
CN (1) CN107070665B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1203394A (zh) * 1997-06-20 1998-12-30 国际商业机器公司 在安全存储区中保护应用程序数据的方法和装置
CN102195781A (zh) * 2011-05-30 2011-09-21 武汉理工大学 一种基于电子记录关联签名的电子证据取证系统
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005332521A (ja) * 2004-05-21 2005-12-02 Toshiba Corp 情報記録媒体及び情報再生装置
CN102147665B (zh) * 2010-02-05 2014-04-23 北京搜狗科技发展有限公司 一种在输入过程中展现信息的方法、装置和输入法系统
CN103024147A (zh) * 2012-11-23 2013-04-03 上海量明科技发展有限公司 终端移动触发电子邮件联系人对象的方法、客户端及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1203394A (zh) * 1997-06-20 1998-12-30 国际商业机器公司 在安全存储区中保护应用程序数据的方法和装置
CN102446250A (zh) * 2010-10-13 2012-05-09 索尼公司 数据完整性的保护和验证方法、设备和系统
CN102195781A (zh) * 2011-05-30 2011-09-21 武汉理工大学 一种基于电子记录关联签名的电子证据取证系统

Also Published As

Publication number Publication date
CN107070665A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
US10630463B2 (en) Meta block chain
TWI782970B (zh) 基於未判定資料保證區塊鏈交易的安全之電腦實施方法、電子裝置及電腦可讀儲存媒體
CN109542888B (zh) 区块链的数据修改和同步方法、装置、设备及存储介质
CN108334753B (zh) 盗版应用验证方法和分布式服务器节点
US10237074B2 (en) Redactable document signatures
US20060185017A1 (en) Execution validation using header containing validation data
WO2017036228A1 (zh) 一种实现系统升级的方法及装置
US10176307B2 (en) Licensing using a node locked virtual machine
CN110830257B (zh) 一种文件签名方法、装置、电子设备及可读存储介质
CN112347521A (zh) 一种基于医疗区块链的医疗数据管理方法及系统
CN114116313A (zh) 一种备份数据处理方法及装置
CN110826092A (zh) 一种文件签名处理系统
US7353386B2 (en) Method and device for authenticating digital data by means of an authentication extension module
US20210216636A1 (en) Determining Authenticity of Binary Images
US20130347109A1 (en) Techniques for Detecting Program Modifications
RU2020114756A (ru) Цепочки блоков с удостоверением посредством сообщений
CN111310129A (zh) 对图像进行维权的方法、装置和存储介质
RU2016104527A (ru) Электронная система подписи
CN111177693A (zh) 一种验证终端根证书的方法、装置、设备和介质
CN112711570A (zh) 日志信息的处理方法、装置、电子设备及存储介质
CN111147477B (zh) 一种基于区块链网络的验证方法及装置
CN107070665B (zh) 一种数字签名的方法及装置
CN116260572B (zh) 数据杂凑处理方法、数据验证方法及电子设备
US11210413B2 (en) Authentication of files
CN110826034B (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