数字签名生成、验证方法及其设备和存储介质与流程

文档序号:14154399阅读:248来源:国知局

本发明涉及数字签名技术领域,尤其涉及数字签名生成方法及其设备,数字签名验证方法及其设备和计算机可读存储介质。。



背景技术:

数字签名就是使用数字证书对数据或文件进行签名,可以用于证明数据或文件的完整性,证明数据签名者的身份。

验证数字签名需要验证签名者的公钥证书,而目前数字签名标准的应用是在签名中嵌入签名证书的证书链,这使得签名数据多达6K字节,这对于PC时代的文件签名不是问题,但是在移动互联网时代则是一个比较大的数据负担。数字签名将广泛应用于移动互联网各种应用,传统的基于PC时代的数字签名验证方法不仅浪费移动用户的流量,而且会占用用户手机CPU和存储空间资源,也将造成了手机耗电量的增加,减少待机时间。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种数字签名生成方法,旨在减少数字签名的数据量,从而加快数字签名验证和传输的速度,减少数字签名应用时的占用空间和耗电量。

为实现上述目的,本发明提供一种数字签名生成方法,所述数字签名生成方法,所述数字签名生成方法包括以下步骤:

获取第一目标数据及其对应的数字证书的路径;

计算所述第一目标数据的第一摘要信息;

根据所述第一摘要信息和所述数字证书的路径生成报文摘要;

通过与所述数字证书中的公钥对应的私钥对所述报文摘要进行数字签名。

优选地,所述根据所述第一摘要信息和所述数字证书的路径生成报文摘要的步骤包括:

根据所述第一摘要信息生成摘要属性,根据所述数字证书的路径生成路径属性;

根据所述摘要属性和所述路径属性构造签名属性集;

根据所述签名属性集生成所述报文摘要。

优选地,所述获取第一目标数据及其对应的数字证书的路径的步骤前,还包括:

获取所述数字证书并生成所述数字证书的路径;

将所述数字证书储存到所述数字证书的路径中。

优选地,所述生成所述数字证书的路径的步骤包括:

提取所述数字证书的标识信息;

根据所述标识信息生成所述数字证书的路径。

此外,为实现上述目的,本发明还提供一种数字签名生成设备,其特征在于,所述数字签名生成设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上面任一项所述的数字签名生成方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数字签名生成程序,所述数字签名生成程序被处理器执行时实现如上面任一项所述的数字签名生成方法的步骤。

此外,为实现上述目的,本发明还提供一种数字签名验证方法,基于如上面任一项所述的数字签名生成方法生成的数字签名,所述数字签名验证方法包括以下步骤:

获取所述数字签名;

解析所述数字签名中的数字证书的路径;

根据所述数字证书的路径获取对应的数字证书;

运用所述数字证书验证所述数字签名。

优选地,所述解析所述数字签名中的数字证书的路径的步骤包括:

解析所述数字签名的签名属性集;

解析所述签名属性集的数据结构中所述数字证书的路径的特征字段;

从所述特征字段中提取所述数字证书的路径。

优选地,所述运用所述数字证书验证所述数字签名的步骤之前,还包括:

获取与所述数字签名关联的第二目标数据;

计算所述第二目标数据的第二摘要信息,解析并提取所述签名属性集中的第一摘要信息;

判断所述第二摘要信息和所述第一摘要信息是否一致;

若是,则执行所述运用所述数字证书验证所述数字签名的步骤;

若否,则输出验证不通过的结果。

优选地,所述根据所述数字证书的路径获取对应的数字证书的步骤包括:

根据所述数字证书的路径判断所述本地服务器是否存在所述数字证书;

若存在,则从所述本地服务器获取所述数字证书;

若不存在,则根据所述数字证书的路径从远程服务器获取所述数字证书。

此外,为实现上述目的,本发明还提供一种数字签名验证设备,其特征在于,所述数字签名验证设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上面任一项所述的数字签名验证方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数字签名验证程序,所述数字签名生成程序被处理器执行时实现如上面任一项所述的数字签名验证方法的步骤。

本发明实施例提出的一种数字签名生成方法,通过在数字签名中添加数字证书的路径,使数字签名在验证时可通过添加的路径获取数字证书后进行验证,使数字签名中可无需直接添加数字证书从而实现数字签名数据量的减少,从而加快数字签名验证和传输的速度,减少数字签名应用时的占用空间和耗电量。

附图说明

图1是本发明实施例数字签名生成方法方案涉及的硬件运行环境的设备结构示意图;

图2是本发明实施例数字签名验证方法方案涉及的硬件运行环境的设备结构示意图;

图3为本发明实施例数字签名生成方法的第一流程示意图;

图4为本发明实施例数字签名生成方法的第二流程示意图;

图5为本发明实施例数字签名生成方法的第三流程示意图;

图6为本发明实施例数字签名验证方法的第一流程示意图;

图7为本发明实施例数字签名验证方法的第二流程示意图;

图8为本发明实施例数字签名验证方法的第三流程示意图;

图9为本发明实施例数字签名验证方法的第四流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:获取第一目标数据及其对应的数字证书的路径,计算所述第一目标数据的第一摘要信息,根据所述第一摘要信息和所述数字证书的路径生成报文摘要,通过与所述数字证书中的公钥对应的私钥对所述报文摘要进行数字签名。

由于现有技术在签名中嵌入签名证书的证书链,这使得签名数据量大,对数字签名的传输和应用造成较大的数据负担。

本发明提供一种解决方案,通过在数字签名中添加数字证书的路径,使数字签名在验证时可通过添加的路径获取数字证书后进行验证,使数字签名中可无需直接添加数字证书从而实现数字签名数据量的减少,从而加快数字签名验证和传输的速度,减少数字签名应用时的占用空间和耗电量。

如图1和图2所示,图1是本发明实施例方案数字签名生成方法涉及的硬件运行环境的设备结构示意图,图2是本发明实施例方案数字签名验证方法涉及的硬件运行环境的设备结构示意图。

本发明实施例中的数字签名生成方法和数字签名验证方法适用于所有数字签名服务的场景,同时支持PC应用、移动应用和物联网应用,如RFC3161时间戳服务、代码签名应用、文档签名应用、设备通信签名应用等。

运行本发明实施例数字签名生成方法或数字签名验证方法的设备可以包括:处理器1001,例如CPU,网络接口1002,存储器1003,通信总线1004。其中,通信总线1004用于实现这些组件之间的连接通信。网络接口1002可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1003可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1003可是设备的内置存储装置,还可以是独立于设备且与设备连接的存储装置。网络接口1002主要用于连接网络,通过网络与其他服务器进行数据通信。

本领域技术人员可以理解,图1和图2中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,在设备用作数字签名生成时,作为一种计算机存储介质的存储器1003中可以包括操作系统、网络通信模块以及数字签名生成程序。处理器1001可以用于调用存储器1003中存储的数字签名生成程序,并执行以下实施例中数字签名生成方法各步骤的操作。具体的,该计算机可读存储介质可以为U盘、移动存储硬盘等移动存储设备,也可以为内置于各数字签名生成设备中的存储器。

如图2所示,在设备用作数字签名验证时,作为一种计算机存储介质的存储器1003中可以包括操作系统、网络通信模块以及数字签名验证程序。处理器1001可以用于调用存储器1003中存储的数字签名验证程序,并执行以下实施例中数字签名验证方法各步骤的操作。具体的,该计算机可读存储介质可以为U盘、移动存储硬盘等移动存储设备,也可以为内置于各数字签名生成设备中的存储器。

在实际使用中,用户可根据实际需求在设备的计算机存储介质或与外置于设备且与设备连接的计算机存储介质中储存数字签名生成程序或数字签名验证程序,使设备可执行数字签名生成方法或数字签名验证方法的步骤。此外,同一个设备的计算机存储介质可同时存有数字签名的生成和验证程序,使设备可同时具备执行数字签名生成方法或数字签名验证方法的步骤的功能。具体的,数字签名生成设备或数字签名验证设备可具体为手机、计算机、平板电脑、交付终端(如柜员机等)等所有需进行数字签名生成或数字签名验证的设备。

参照图3,本发明实施例提供一种数字签名生成方法,所述数字签名生成方法包括:

步骤S10,获取第一目标数据及其对应的数字证书的路径;

在进行数字签名生成之前,可先创建并存储数字证书的路径,一个路径对应唯一一个用于数字签名的数字证书,该数字证书中包括与用于第一目标数据签名的私钥对应的公钥,根据数据证书的路径可从网络获取到对应的数字证书。路径可单独储存,也作为数字证书的一个属性信息储存在数字证书中。路径可为基于用户需要基于不同的协议下访问地址,具体可优选为基于超文本传输协议的URL地址,如:

http://aia.wotrus.com/ts/77167C0042400E66C9937539CC2CV806.cer,便于所有联网的数字签名服务应用均可获取到数字证书,使数字证书的获取具有广泛适用性。

在进行数字签名生成时,获取需要进行数字签名的第一目标数据以及与第一目标数据对应的数字证书的路径。当一设备为某一特定用户的数据进行数字签名生成时,预存有唯一的数字证书的路径时,可直接获取第一目标数据对应的数字证书的路径。由于可能有同一设备为多种第一目标数据进行数据签名,如不同用户运用同一台计算机对其文件进行签名时,不同第一目标数据可需要不同的数字证书的进行签名,设备可对应的预存有多个数字证书的路径,因此当第一目标数据和数字证书的路径不是唯一确定而无法直接获取时,可在获取第一目标数据后,根据第一目标数据选择获取对应的数字证书的路径,便于设备为不同的第一目标数据进行数字签名。

当路径为数字证书的一个属性信息,数字证书的路径的获取可通过获取数字证书后,对数字证书的属性信息进行解析得到数字证书的路径。也可在根据路径获取到数字证书后,将数字证书的路径在本地保存至数字证书的属性信息,可便于数字证书的区分和后续应用。

步骤S20,计算所述第一目标数据的第一摘要信息;

对需要数字签名的第一目标数据(如图片、文件、消息等)运用报文摘要算法计算得到第一摘要信息,如MD5或SHA算法等,得到的第一摘要信息具体表现为DER编码。该第一摘要信息表征第一目标数据的主要内容。

步骤S30,根据所述第一摘要信息和所述数字证书的路径生成报文摘要;

根据第一目标数据的摘要和数字证书的路径生成DER编码结果。具体的,除了第一目标数据的摘要和数字证书的路径之外,上述DER编码结果还可结合与第一目标数据相关的属性信息生成,如签名时间等。将包含数字证书路径的DER编码结果通过哈希算法计算得到数字签名的报文摘要。报文摘要是指单向哈希函数算法将任意长度的输入报文经计算得出固定位的输出,用于检查第一目标数据是否正确完整。

步骤S40,通过与所述数字证书中的公钥对应的私钥对所述报文摘要进行数字签名。

包含数字证书路径的报文摘要生成后,使用与添加的路径中数字证书的公钥对应的私钥对报文摘要进行签名,以确保路径的可信度,具体可采用短密钥额ECC或SM2加密算法。

本发明实施例方案中,提出的一种数字签名生成方法,通过根据第一目标数据的第一摘要信息和数字证书的路径生成报文摘要,使数字签名在验证时可通过解析数字签名中数字证书的路径远程获取数字证书后进行验证,使数字签名中可无需直接添加数字证书从而实现数字签名数据量的减少,从而加快数字签名验证和传输的速度,减少数字签名应用时的占用空间和耗电量。

具体的,参照图4,根据所述第一摘要信息和所述数字证书的路径生成报文摘要第一摘要信息的步骤包括:

步骤S31,根据所述第一摘要信息生成摘要属性,根据所述数字证书的路径生成路径属性;

步骤S32,根据所述摘要属性和所述路径属性构造签名属性集;

步骤S33,根据所述签名属性集生成所述报文摘要。

在无需添加数字证书的路径以及签名时间等数字签名的属性信息时,数字签名的报文摘要可直接通过第一摘要信息计算得到。而为了进一步满足用户需求,在数字签名生成过程中,除了第一目标数据的主要内容还需添加数字证书的路径、签名时间等数字签名的属性信息来生成数字签名时,可通过先构造签名属性集,签名属性集为数字签名的路径、时间、类型、内容等各种表征数字签名的属性值的集合,具体可为系统中的预设参数,也可为获取的用户设置参数。在签名属性集构造过程中,可将计算得到的第一摘要信息作为签名属性集中的摘要属性,将所需添加的数字证书的路径生成路径扩展属性,此外还可根据实际使用需求获取数字签名的其他属性信息生成第一目标数据的相关属性,将摘要属性、路径扩展属性和第一目标数据的相关属性所有属性以DER编码的形式整合到一起形成签名属性集,并根据签名属性集生成报文摘要,对报文摘要进行数字签名即可实现将用于验证数字签名的数字证书的路径添加到数字签名中。

具体地,为了符合通信行业标准,提高本发明数字签名生成方法和数字签名验证方法的普遍适用性,签名属性集的数据结构中包括contentType、messageDigest等关键属性值以及其他需要添加的非关键扩展属性,而每个属性值都有各自定义的ASN数据。其中messageDigest值为根据标准定义的相关数据结构和第一目标数据计算得到的生成的扩展字段,contentType为根据标准定义的相关数据结构以及与第一目标数据类型相关的信息生成的扩展字段(如时间戳、Microsoft代码等);非关键扩展属性则可根据实际需求进行添加,具体的路径属性作为非关键扩展属性可优选为AIA扩展属性。AIA扩展为我国通信行业标准中,关于证书扩展项中的一个非关键扩展,用于制定取得其他CA信息的方法。

具体的,根据所述数字证书的路径生成路径扩展属性的步骤可具体为:将数字证书的路径(如:

http://aia.wotrus.com/ts/77167C0042400E66C9937539CC2CV806.cer)

添加到通信行业标准定义的AIA扩展的ASN.1结构中生成包含数字证书路径的AIA扩展字段,如:

Access Method=签名者证书访问(1.3.6.1.4.1.50570.2.8)

Alternative Name:

URL=http://aia.wotrus.com/ts/77167C0042400E66C9937539CC2CV806.cer

生成包含数字证书路径的AIA扩展字段后,将AIA扩展字段添加到签名属性集第一摘要信息的ASN数据结构中。

具体的,参照图5,所述获取第一目标数据及其对应的数字证书的路径的步骤前,还包括:

步骤S01,获取所述数字证书并生成所述数字证书的路径;

步骤S02,将所述数字证书储存到所述数字证书的路径中。

在对第一目标数据进行数字签名前,可先获取用于第一目标数据数字签名的数字证书并生成数字证书的路径,将数字证书保存到对应的路径中。具体的,可将数字证书上传到服务器中,服务器生成可访问数字证书的路径,将数字证书保存到生成的路径当中。路径可根据实际情况具有多种,只需保证一个路径对应一个证书即可。

具体的,生成所述数字证书的路径的步骤包括

步骤S001,提取所述数字证书的标识信息;

步骤S002,根据所述标识信息生成所述数字证书的路径。

获取数字证书后,可对数字证书进行解析得到其标识信息,标识信息为区别该数字证书和其他数字证书的特征信息,如证书的编号等。在数字证书路径的生成时,将标识信息添加到路径中,可作为数字证书的标识。如路径http://aia.wotrus.com/ts/77167C0042400E66C9937539CC2CV806.cer中的“77167C0042400E66C9937539CC2CV806”为数字证书的编号。

本发明实施例还提出一种数字签名验证方法,基于如上述实施例中的数字签名生成方法生成的数字签名,如图6所示,所述数字签名验证方法包括以下步骤:

步骤S100,获取所述数字签名;

步骤S200,解析所述数字签名中的数字证书的路径;

步骤S300,根据所述数字证书的路径获取对应的数字证书;

步骤S400,运用所述数字证书验证所述数字签名。

当使用数字签名的安全文件需要进行验证时,对该文件进行数字签名提取,提取数字签名中的报文摘要,对报文摘要进行解析得到签名属性集中的各种签名属性,在签名属性集的数据结构中识别得到数字证书的路径,如:http://aia.wotrus.com/ts/77167C0042400E66C9937539CC2CV806.cer。根据得到的路径从本地服务器或远程服务器获取对应的数字证书。在获取到数字证书后,使用数字证书中的公钥对数字签名进行验证,当数字证书中的签名值与数字签名中的签名属性集数据结构中的签名值一致则验证通过,若不一致则验证不通过。

具体的,如图7所示,所述解析所述数字签名中的数字证书的路径的步骤包括:

步骤S210,解析所述数字签名的签名属性集;

步骤S220,解析所述签名属性集的数据结构中所述数字证书的路径的特征字段;

步骤S230,从所述特征字段中提取所述数字证书的路径。

数字证书路径获取具体为:对数字签名的报文摘要进行解析得到签名属性集的ASN数据结构,从数据结构中按照预设协议识别数字证书的路径的特征字段,预设协议为数字签名生成方和数字签名验证方约定的通信协议,当双方均遵循通信行业协议时,该特征字段可优选为AIA扩展字段。对特征字段进行识别并提取当中的数字证书的路径。

为了便于用户再次使用,所述数字签名验证方法还包括:

步骤S500,在所述数字签名验证通过后,在本地服务器保存所述数字证书。

由于数字证书从远程服务器获取,使用通过地址获取到的数字证书对数字签名验证通过后,可在本地服务器保存获取到的数字证书,其中数字证书的文件名可以直接用数字证书的路径进行命名;也可根据路径解析得到数字证书的标识信息进行命名;也可对获取到的数字证书的属性信息解析,将该数字证书的区别于其他证书的属性信息作为保存的文件名,便于在同一设备内存有多个数字证书时用以区分。进一步的,由于可能存在同一设备多次使用同一数字证书的情况,在保存数字证书时,可先判断本地服务器中是否已存在该数字证书,具体可使用证书的标识信息查找文件名的方式,若存在,则不需对当前数字证书进行保存,若不存在则对当前数字证书进行保存。

本发明实施例方案中,提出的一种数字签名验证方法,在数字签名验证时,根据实习签名中解析到的数字证书的路径获取对应的数字证书,并运用获取到的数字证书验证,使数字签名验证设备所获取到的数字签名的数据量少,加快数字签名验证的速度,减少数字签名在设备上的占用空间和验证时的耗电量。

具体的,在数字签名的安全应用中,使用数字签名对进行签名后,数字签名与第一目标数据共同构成安全文件。在安全文件传输时,若对该安全文件中的数据修改会导致安全文件生成时的第一目标数据和在验证时的第二目标数据不一致。因而,出于保证数据完整性的需求,对安全文件进行验证时,数字签名的验证与第二目标数据的验证关联,因此,参照图9,所述根据所述数字证书的路径获取对应的数字证书的步骤之前,还包括:

步骤S600,获取与所述数字签名关联的第二目标数据;

从使用数字签名的文件中提取第二目标数据,该第二目标数据为在安全文件中使用上述数字签名进行签名的数据,第二目标数据与数字签名关联。需要说明的是,在实际执行时,步骤S600与步骤S100没有明确的先后次序,可同时进行。

步骤S700,计算所述第二目标数据的第二摘要信息,解析并提取所述签名属性集中的第一摘要信息;

使用与数字签名生成时计算第一摘要信息一样的算法对第二目标数据进行计算,得到第二摘要信息,而且在解析得到数字签名中的签名属性集后,对签名属性集进行解析并提取数字签名生成时得到的第一摘信息。需要说明的是,第一摘要的解析与数字证书的路径的特征字段的解析没有明确的先后次序。

步骤S800,判断所述第二摘要信息和所述第一摘要信息是否一致;若是,则执行步骤S400,若否,则执行步骤S900;

步骤S900,输出验证不通过的结果。

比对第一摘要信息和第二摘要信息是否一致,当第一摘要信息和第二摘要信息一致时,可判定第二目标数据与生成该数字签名的第一目标数据一致,保证了目标数据的一致性后,可进一步使用上述实施例中提及的方法使用通过数字证书的路径获取到的数字证书对数字签名进行验证,当第一摘要信息和第二摘要信息不一致时,可认为第二目标数据与生成该数字签名的第一目标数据不一致,第二目标数据为经过删改后的数据,则可直接在数字签名验证设备中输出验证不通过的结果,无需再使用数字证书进行数字签名的验证,以满足使用数字签名对数据进行签名时的安全性需求。需要说明的是,根据数字证书的路径获取对应的数字证书的步骤在第二摘要信息验证通过前或者通过后进行,不存在明确的先后次序。

通过上述方式,可保证使用数字签名对目标数据进行签名应用时数字签名验证设备获取到的目标数据的完整性。

进一步的,基于在本地服务器可对数字证书进行保存,因此,参照图8,所述根据所述数字证书的路径获取对应的数字证书的步骤包括:

步骤S310,根据所述数字证书的路径判断所述本地服务器是否存在所述数字证书;

若存在,则执行步骤S320,若不存在,则执行步骤S330,

步骤S320,则从所述本地服务器获取所述数字证书;

步骤S330,则根据所述数字证书的路径从远程服务器获取所述数字证书。

在数字证书的获取时,首先可先判断本地服务器中是否存在与数字证书的路径对应的数字证书,如利用数字证书的路径或路径中的标识信息进行查找,存在时,则可直接从本地服务器获取证书用于数字签名的验证,不存在时,则根据数字证书的路径从远程服务器获取数字证书。

具体的,所述根据所述数字证书的路径判断所述本地服务器是否存在所述数字证书的步骤包括:

步骤S311,解析所述数字证书的路径中的数字证书的标识信息;

步骤S312,根据所述标识信息查找所述本地服务器是否存在所述数字证书。

获取数字证书的路径后,对数字证书的路径进行解析,得到路径中数字证书的标识信息,根据标识信息查找本地服务器中是否存在与标识信息匹配的文件,匹配到的文件即为所需获取的数字证书。

需要说明的是,数字证书在本地服务器保存时用于识别区分该数字证书的特征信息和在获取数字证书的路径后用于判断本地服务器中是否存在对应的数字证书的特征信息是对应的。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1