一种文档的数字签名及其验证方法和装置制造方法及图纸

技术编号:21120774 阅读:31 留言:0更新日期:2019-05-16 10:36
一种文档的数字签名及其验证方法和装置,所述签名方法包括:使用独立的数字签名程序对文档进行数字签名;将所述数字签名追加到文档尾部形成新的文档;判断是否需要再次签名,在需要再次签名时,则针对所述新的文档重复上述步骤。所述验证方法包括:使用独立的数字签名程序从签名过的文档尾部读取数字签名信息和除所述数字签名信息外的剩余文档内容;使用独立的数字签名程序对所述读取的数字签名信息进行验证;判断所述剩余文档内容还存在其他数字签名,且需要进一步验证时,对所述剩余文档内容执行上述步骤。本申请的数字签名及其验证方法和装置,避免了现有的数字签名在读取不同的文档版本时产生的兼容问题,同时能够对文档进行多次签名。

【技术实现步骤摘要】
一种文档的数字签名及其验证方法和装置
本申请属于信息安全
,特别涉及一种文档的数字签名及其验证方法和装置。
技术介绍
数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名主要是为了数据的安全性,防止被篡改,但是数据你是看得到的。数字签名可以用于数字工程图纸审核流程中。设计院设计完图纸,对图纸进行数字签名,发送给审图单位。审图单位对电子图纸审核后,进行数字签名,发送给设计单位。在这个过程中,数字签名可以用于身份识别,确保图纸的有效性和防止被篡改。文档数字签名一般结合SHA算法和RSA算法,其一般包含两个关键步骤:(1)用SHA-256算法对信息进行hash处理,得到hash值,SHA的特性是不可以从消息摘要中复原信息和两个不同的消息不会产生同样的消息摘要;(2)采用RSA算法对hash值进行加密解密(非对称加密算法),非对称算法分为公钥和私钥,公钥是公开的,私钥是保密的。一般采用私钥进行加密,公钥进行解密,这样即使攻击者有公钥也无法解密。目前,文档的数字签名一般跟创建文档的软件紧密结合。比如dwg图纸数字签名,一般使用AutoCAD提供的API进行二次开发,实现在dwg文档中写入签名信息,即加密信息跟dwg中的图形信息混在一起。另外,使用API读取原始文档,需要解析文档里面的数据内容,故存在API版本需要跟文档版本兼容的问题:一般的软件,其老版本的程序和API打不开新版本程序产生的文档,即使能够打开也会存在数据丢失的情况,故使用专用软件提供的API(比如AutoCADARXAPI)进行文档签名,需要针对不同版本的软件产生的文档开发不同版本的加密和解密程序。
技术实现思路
本申请提供了一种文档的数字签名及其验证方法和装置,避免了现有的数字签名在读取不同的文档版本时产生的兼容问题,同时能够对文档进行多次签名。本申请提供的一种文档的数字签名方法,包括如下步骤:(1)使用独立的数字签名程序对文档进行数字签名;(2)将所述数字签名追加到文档尾部形成新的文档;(3)判断是否需要再次签名,在需要再次签名时,则针对所述新的文档重复上述步骤(1)和(2)。所述步骤(1)具体为:使用独立的数字签名程序先对文档使用HASH算法生成散列值,以用户的私钥和所述散列值作为非对称加密算法的输入产生所述数字签名。所述步骤(3)具体为:判断是否需要对所述步骤(2)中形成的新的文档再使用独立的数字签名程序进行数字签名,如果需要再次数字签名,则针对所述新的文档重复执行上述步骤(1)和(2),如果不需要再次数字签名,流程结束。本申请还提供了一种文档的数字签名验证方法,包括步骤:(1)使用独立的数字签名程序从签名过的文档尾部读取数字签名信息和除所述数字签名信息外的剩余文档内容;(2)使用独立的数字签名程序对所述读取的数字签名信息进行验证;(3)判断所述剩余文档内容还存在其他数字签名,且需要进一步验证时,对所述剩余文档内容执行步骤(1)-(2)。所述步骤(2)具体为:使用HASH算法生成所述剩余文档内容的原始散列值,并使用公钥和所述数字签名信息采用非对称解密算法计算目标散列值,对比所述原始散列值和所述目标散列值,若两者一样,则文档通过验证,若两者不一样,则是无效的数字签名或者表示文档被篡改过。所述步骤(3)具体为:判断所述剩余文档内容中是否存在其他数字签名,如果所述剩余文档内容中不存在其他数字签名,则整个过程结束;如果所述剩余文档内容中还存在其他数字签名,那么还需要判断是否需要对其他数字签名进行验证,在需要对其他数字签名进行验证时,将所述剩余文档内容作为新的签名过的文档继续执行所述步骤(1)-(2),如果不需要对其他数字签名进行验证,则整个过程结束。本申请还提供了一种文档的数字签名装置,包括签名模块、生成模块和判断模块。所述签名模块,用于使用独立的数字签名程序对文档进行数字签名;所述生成模块,用于将所述数字签名追加到文档尾部形成新的文档;所述判断模块,判断是否需要再次签名,在需要再次签名时,则顺次执行所述签名模块和生成模块的功能。所述签名模块,具体用于:使用独立的数字签名程序先对文档使用HASH算法生成散列值,以用户的私钥和所述散列值作为非对称加密算法的输入产生所述数字签名。所述判断模块具体用于:判断是否需要对所述生成模块形成的新的文档再使用独立的数字签名程序进行数字签名,如果需要再次数字签名,则针对所述新的文档执行所述签名模块和生成模块的功能,如果不需要再次数字签名,流程结束。本申请还提供了一种文档的数字签名验证装置,其特征在于,包括读取模块、验证模块和判断模块。所述读取模块,用于使用独立的数字签名程序从签名过的文档尾部读取数字签名信息和除所述数字签名信息外的剩余文档内容;所述验证模块,用于使用独立的数字签名程序对所述读取的数字签名信息进行验证;所述判断模块,用于判断所述剩余文档内容还存在其他数字签名,且需要进一步验证时,对所述剩余文档内容顺次执行所述签名模块和生成模块的功能。所述验证模块具体用于:使用HASH算法生成所述剩余文档内容的原始散列值,并使用公钥和所述数字签名信息采用非对称解密算法计算目标散列值,对比所述原始散列值和所述目标散列值,若两者一样,则文档通过验证,若两者不一样,则是无效的数字签名或者表示文档被篡改过。所述判断模块具体用于:判断所述剩余文档内容中是否存在其他数字签名,如果所述剩余文档内容中不存在其他数字签名,则整个过程结束;如果所述剩余文档内容中还存在其他数字签名,那么还需要判断是否需要对其他数字签名进行验证,在需要对其他数字签名进行验证时,将所述剩余文档内容作为新的签名过的文档继续执行所述签名模块和生成模块的功能,如果不需要对其他数字签名进行验证,则整个过程结束。本申请还提供了一种电子设备,其特征在于,所述电子设备包括:存储装置;一个或多个处理器;所述存储装置用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述方法。本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被执行时,实现上述方法。相比于现有技术,本申请所提供的一种文档的数字签名及其验证方法和装置,采用不依赖于设计文档的软件或程序来执行数字签名,避免了读取不同的文档版本产生的兼容问题;并且在原始需签名文档的尾部追加信息,即把数字签名附加在原始需签名文档的尾部,且使用多个数字签名同时添加到文档尾部,实现文档多次数字签名。另外,该数字签名程序具有一定的通用性,适合二维图纸、三维模型等工程文件。附图说明为了便于本领域普通技术人员理解和实施本申请,下面结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图1是本申请的一种文档的数字签名方法的流程图。图2是本申请的数字签名过程示意图。图3是本申请的多次数字签名结果示意图。图4是本申请的一种文档的数字签名验证方法的流程图。图5是本申请的数字签名验证过程示意图。图6是本申请的一种本文档来自技高网
...

【技术保护点】
1.一种文档的数字签名方法,其特征在于,包括如下步骤:(1)使用独立的数字签名程序对文档进行数字签名;(2)将所述数字签名追加到文档尾部形成新的文档;(3)判断所述新的文档是否需要再次签名,在需要再次签名时,则针对所述新的文档重复所述步骤(1)和(2)。

【技术特征摘要】
1.一种文档的数字签名方法,其特征在于,包括如下步骤:(1)使用独立的数字签名程序对文档进行数字签名;(2)将所述数字签名追加到文档尾部形成新的文档;(3)判断所述新的文档是否需要再次签名,在需要再次签名时,则针对所述新的文档重复所述步骤(1)和(2)。2.如权利要求1所述的一种文档的数字签名方法,其特征在于,所述步骤(1)具体为:使用独立的数字签名程序先对文档使用HASH算法生成散列值,以用户的私钥和所述散列值作为非对称加密算法的输入产生所述数字签名。3.如权利要求1或2所述的一种文档的数字签名方法,其特征在于,所述步骤(3)具体为:判断是否需要对所述步骤(2)中形成的新的文档再使用独立的数字签名程序进行数字签名,如果需要再次数字签名,则针对所述新的文档重复执行所述步骤(1)和(2),如果不需要再次数字签名,流程结束。4.一种文档的数字签名验证方法,其特征在于,包括如下步骤:(1)使用独立的数字签名程序从签名过的文档尾部读取数字签名信息和除所述数字签名信息外的剩余文档内容;(2)使用独立的数字签名程序对所述读取的数字签名信息进行验证;(3)判断所述剩余文档内容还存在其他数字签名,且需要进一步验证所述其他数字签名时,对所述剩余文档内容执行步骤(1)-(2)。5.如权利要求4所述的一种文档的数字签名验证方法,其特征在于,所述步骤(2)具体为:使用HASH算法生成所述剩余文档内容的原始散列值,并使用公钥和所述数字签名信息采用非对称解密算法计算目标散列值,对比所述原始散列值和所述目标散列值,若两者一样,则文档通过验证,若两者不一样,则是无效的数字签名或者表示文档被篡改过。6.如权利要求4或5所述的一种文档的数字签名验证方法,其特征在于,所述步骤(3)具体为:判断所述剩余文档内容中是否存在其他数字签名,如果所述剩余文档内容中不存在其他数字签名,则整个过程结束;如果所述剩余文档内容中还存在其他数字签名,那么还需要判断是否需要对其他数字签名进行验证,在需要对其他数字签名进行验证时,将所述剩余文档内容作为新的签名过的文档继续执行所述步骤(1)-(2),如果不需要对其他数字签名进行验证,则整个过程结束。7.一种文档的数字签名装置,其特征在于,包括签名模块、生成模块和判断模块:所述签名模块,用于使用独立的数字签名程序对文档进行数字签名;所述生成模块,用于将所述数字签名追加到文档尾部形成新的文档;所述判断模块,判断是否需要对所述新的文...

【专利技术属性】
技术研发人员:马礼伟杨斌
申请(专利权)人:广联达科技股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1