支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统技术方案

技术编号:17783858 阅读:108 留言:0更新日期:2018-04-22 15:03
本发明专利技术公开了一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统,包括:发送端发送待签名的PDF文档;接收端存在签名者的数字证书,接收端获取PDF文档,对签名者的数字证书的有效性进行检查;用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;用SM2数字签名算法和私有密钥对待签名的摘要消息进行签名,产生数字签名值;对数字签名值进行校验;用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,合成含有本次数字签名的PDF文档,完成PDF签名。本发明专利技术将SM3密码杂凑算法和SM2数字签名算法应用到PDF签名中去,使得数字签名更安全、快速和可靠。

【技术实现步骤摘要】
支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统
本专利技术涉及PDF签名方法
,具体涉及一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统。
技术介绍
PDF英文全称为PortableDocumentFormat,译为可移植文档格式,是一种电子文件格式。这种文件格式与操作系统平台无关,即PDF文件无论是在Windows,Unix还是在MacOS操作系统中都是通用的。这一特点使它成为电子文档发行和数字化信息传播的理想文件格式。PDF格式文件目前已成为数字化信息事实上的一个工业标准。伴随着互联网和智能手机走进千家万户,人们使用互联网的场景越来越多,相应的电子商务以及电子政务都已经可以在互联网上进行。由此形成了一个庞大的电子签名市场,以解决互联网带来的挑战,即对机密性、完整性、身份认证与授权和不可抵赖性的要求。数字签名(digitalsignature),与手写签名相似,政府部门、企业和客户间交换文件时,接收方对收到的文档要进行有效性的鉴别,在验证发送方的身份后才能确定文档是否有效。数字签名即是数字方式的证书在文档上签名,文档签名域中签名者身份以及文档签名后的状态都将显示出来,以方便验证。如2000年6月30日,美国总统克林顿签署《数字签名法案》,使数字签名在美国与传统签名一样具有法律效力。中国政府也已通过了数字签名的相关法规。目前,市场上的PDF软件,如Adobe旗下的AdobeReader和AdobeAcrobat,一般都内置了支持RSA算法的签名插件,同时支持多种摘要算法,如SHA1、SHA256、SHA384、SHA512等,但是并不支持SM2数字签名算法和SM2数字签名算法中所使用的摘要算法SM3密码杂凑算法。SM2数字签名算法属于椭圆曲线加密算法(ECC)中的一支,在密钥长度相同的情况下,相较于RSA算法,其安全性更高,所占空间更小,签名速度更快。Adobe等PDF软件提供商目前仅支持使用RSA证书进行签名,无法识别SM2算法。出于信息安全的考虑,2010年中华人民共和国密码管理局就公布了SM2算法的行业标准,并一直在大力推行国密算法SM2算法在各行各业中的使用。当下的互联网环境下,对PDF文件进行签名的场景十分普遍,所以对PDF进行SM2签名的需求亟待解决。
技术实现思路
为解决上述问题,本专利技术的目的在于提供一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统,使得数字签名更安全、快速和可靠。本专利技术的目的可以通过采取如下技术方案达到:一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法,包括以下步骤:1)发送端发送待签名的PDF文档;2)接收端存在签名者的数字证书,接收端获取PDF文档,对签名者的数字证书的有效性进行检查;3)用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;4)用SM2数字签名算法和签名者数字证书中的私有密钥对步骤3)产生的待签名的摘要消息进行签名,产生数字签名值;5)对步骤4)生成的数字签名值进行校验,根据校验结果判断数字签名是否有效,若有效则进行步骤6),若无效重新执行步骤3);6)用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,并将其与PDF文档合成含有本次数字签名的PDF文档,完成PDF签名。进一步优选,一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法,包括以下步骤:1)发送端发送待签名的PDF文档;2)接收端存在签名者的数字证书,接收端获取PDF文档,调用SSQ-GM,对签名者的数字证书的有效性进行检查;3)调用SSQ-GM,用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;4)调用SSQ-GM,用SM2数字签名算法和签名者数字证书中的私有密钥对步骤3)产生的待签名的摘要消息进行签名,产生数字签名值;5)调用SSQ-GM,对步骤4)生成的数字签名值进行校验,根据校验结果判断数字签名是否有效,若有效则进行步骤6),若无效重新执行步骤3);6)调用SSQ-GM,用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,并将其与PDF文档合成含有本次数字签名的PDF文档,完成PDF签名。本专利技术中,将SM3密码杂凑算法和SM2数字签名算法应用到PDF中去,使得数字签名更安全、快速和可靠。SSQ-GM是杭州尚尚签网络科技有限公司提供的一个开发库,面向大众开放,是可信的第三方供应商(杭州尚尚签网络科技有限公司)提供。它是一个JAVA语言库,主要提供国密算法相关功能,包括SM2数字签名算法(简称SM2算法)的签名验签、SM3密码杂凑算法(简称SM3算法)的计算和PDF合成等功能。步骤1)中,发送端发送带签名的PDF文档。步骤2)中,所述的数字证书包括私有密钥和公钥证书。所述的公钥证书包含身份拥有者的公共密钥、名称、发证机构名称、数字身份证号,以及发证机构的数字签名等信息。数字身份可由可信的数字证书认证中心发放的。对签名者的数字证书的有效性进行检查,包括:数字证书是否在有效期内,使用数字证书的真实性,检查数字证书是否已吊销。步骤5)中,数字签名值进行校验包括:使用SM2数字签名算法的验证算法和公钥证书包含的公共密钥对数字签名值进行校验。步骤6)中,在生成CAdES格式的签名体时,同时添加时间戳。CAdES为CMSAdvancedElectronicSignatures,为CMS高级电子签名。在一般情况下,算法被攻破后,容易伪造,会出现弱可验证性:签名正确但是签名不可信任,签名时间可能被伪造而实际签名时,证书已失效,或者已吊销。本专利技术中采用CAdES格式的签名体,基于SM2数字签名算法才能实现,该CAdES格式的签名体允许附带CRL(证书吊销列表)和OCSP(在线证书状态协议),即使在算法被攻破的前提下,本专利技术中CAdES也能够在长时间内保持签名的强可验证性,即可以实现长时间内签名正确并且可信任。所述的签名体为pkcs7签名体。一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名系统,包括发送端和接收端:所述的发送端进一步包括:发送模块,用于发送待签名的PDF文档;接收模块,用于获取接收端发来的签名后合成的新PDF文档;所述接收端进一步包括:获取模块,用于获取待签名的PDF文档;证书有效性检查模块,对数字证书的有效性进行检查;摘要模块,用SM3密码杂凑算法对获取的PDF文档进行摘要计算;签名模块,用SM2数字签名算法和签名者数字证书中的私有密钥对摘要后的PDF文档进行签名,产生数字签名值;校验模块,使用SM2数字签名算法的验证算法和公钥证书包含的公共密钥对数字签名值进行校验,若校验失败,则重新调用摘要模块和签名模块,若校验成功,则调用合成模块;合成模块,生成CAdES格式的签名体,并嵌入PDF文档,合成新的PDF文档;发送模块,用于将合成后的PDF文档发送给发送端。进一步优选,一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名系统,包括发送端和接收端:所述的发送端进一步包括:发送模块,用于发送待签名的PDF文档;接收模块,用于获取接收端发来的签名后合成的新PDF文档;所述接收端进一步包括:获取模块,用于获取待签名的PDF文本文档来自技高网
...
支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法和系统

【技术保护点】
一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法,其特征在于,包括以下步骤:1)发送端发送待签名的PDF文档;2)接收端存在签名者的数字证书,接收端获取PDF文档,对签名者的数字证书的有效性进行检查;3)用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;4)用SM2数字签名算法和签名者数字证书中的私有密钥对步骤3)产生的待签名的摘要消息进行签名,产生数字签名值;5)对步骤4)生成的数字签名值进行校验,根据校验结果判断数字签名是否有效,若有效则进行步骤6),若无效重新执行步骤3);6)用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,并将其与PDF文档合成含有本次数字签名的PDF文档,完成PDF签名。

【技术特征摘要】
1.一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法,其特征在于,包括以下步骤:1)发送端发送待签名的PDF文档;2)接收端存在签名者的数字证书,接收端获取PDF文档,对签名者的数字证书的有效性进行检查;3)用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;4)用SM2数字签名算法和签名者数字证书中的私有密钥对步骤3)产生的待签名的摘要消息进行签名,产生数字签名值;5)对步骤4)生成的数字签名值进行校验,根据校验结果判断数字签名是否有效,若有效则进行步骤6),若无效重新执行步骤3);6)用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,并将其与PDF文档合成含有本次数字签名的PDF文档,完成PDF签名。2.一种支持SM3密码杂凑算法和SM2数字签名算法的PDF签名方法,其特征在于,包括以下步骤:1)发送端发送待签名的PDF文档;2)接收端存在签名者的数字证书,接收端获取PDF文档,调用SSQ-GM,对签名者的数字证书的有效性进行检查;3)调用SSQ-GM,用SM3密码杂凑算法对获取的PDF文档进行摘要,产生待签名的摘要消息;4)调用SSQ-GM,用SM2数字签名算法和签名者数字证书中的私有密钥对步骤3)产生的待签名的摘要消息进行签名,产生数字签名值;5)调用SSQ-GM,对步骤4)生成的数字签名值进行校验,根据校验结果判断数字签名是否有效,若有效则进行步骤6),若无效重新执行步骤3);6)调用SSQ-GM,用产生的数字签名值和签名者的数字证书生成CAdES格式的签名体,并将其与PDF文档合成含有本次数字签名的PDF文档,完成PDF签名。3.根据权利要求1或2所述的PDF签名方法,其特征在于,步骤2)中,所述的数字证书包括私有密钥和公钥证书。4.根据权利要求3所述的PDF签名方法,其特征在于,所述的公钥证书包含身份拥有者的公共密钥、名称、发证机构名称、数字身份证号,以及发证机构的数字签名。5.根据权利要求1或2所述的PDF签名方法,其特征在于,步骤2)中,对签名者的数字证书的有效性进行检查,包括:数字证书是否在有效期内,使用数字证书的真实性,检查数字证书是否已吊销。6.根据权利要求1或2所述的PDF签名方法,其特征在于,步骤5)中,数字签名值进行校验包括:使用SM2数字签名算法的...

【专利技术属性】
技术研发人员:钱之光吕涛
申请(专利权)人:杭州尚尚签网络科技有限公司
类型:发明
国别省市:浙江,33

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

1