CN107017995A - 混合签名及验签方法、装置及系统 - Google Patents
混合签名及验签方法、装置及系统 Download PDFInfo
- Publication number
- CN107017995A CN107017995A CN201710265901.7A CN201710265901A CN107017995A CN 107017995 A CN107017995 A CN 107017995A CN 201710265901 A CN201710265901 A CN 201710265901A CN 107017995 A CN107017995 A CN 107017995A
- Authority
- CN
- China
- Prior art keywords
- data
- signature
- sign test
- signed
- source language
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3252—Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种混合签名及验签方法、装置及系统,混合签名方法包括以下步骤:接收服务端传输的预设初始参数和用户身份ID;根据预设初始参数,分别生成用户公钥和预设附加数据;在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档。本发明适合于部署到需要两种签名算法混用并提供友好性验证的场景。
Description
技术领域
本发明涉及密码学与信息安全领域,特别是涉及一种混合签名及验签方法、装置及系统。
背景技术
在一些安全级别需求较高的场景下,需要两种签名算法(例如椭圆曲线数字签名算法和基于身份的签名算法)的混合使用,来增加电子签名的安全性和有效性。
但在实现两种签名的混合使用的过程中,发明人发现传统技术中至少存在如下问题:传统技术在混合使用时,为了工程上实现方便,并没有对两种签名算法进行关联,而是分别独立使用,这与“混用”明显矛盾。进一步的,传统技术即使对两种签名算法进行了关联,也无法在不破环标准PDF(Portable Document Format)文档结构的前提下,确保电子文档签署工具能够验证签名。
发明内容
基于此,有必要针对传统技术无法准确实现两种签名算法的混合使用的问题,提供一种混合签名及验签方法、装置及系统。
为了实现上述目的,一方面,提供了一种混合签名方法,包括以下步骤:
接收服务端传输的预设初始参数和用户身份ID;
根据预设初始参数,分别生成用户公钥和预设附加数据;
在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息。
一方面,还提供了一种混合签名装置,包括:
接收单元,用于接收服务端传输的预设初始参数和用户身份ID;
信息生成单元,用于根据预设初始参数,分别生成用户公钥和预设附加数据;
信息填充单元,用于在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
签名数据生成单元,用于根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
签名文档生成单元,用于在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息。
本发明具有如下优点和有益效果:
本发明混合签名方法及装置,通过对PDF文档原文填充附加信息,使得两种签名得以关联起来,真正实现混合签名,提高混合签名的可靠性;通过本发明的方案,使得签名之间的耦合性高。本发明的方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。本发明采用双重签名机制,在不同层次上给用户提供友好的签名过程,因此在安全严谨性和用户友好性方面有很好的平衡,适合于部署到需要两种签名算法混用并提供友好性验证的场景。
一方面,提供了一种混合签名验签方法,包括以下步骤:
提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;填充后的原文信息包括用户身份ID、用户公钥以及根据预设初始参数生成的预设附加数据;
根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;
在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;
将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;并根据替换后的原文信息,进行第二次标准验签;
在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
另一方面,提供了一种混合签名验签装置,包括:
数据提取单元,用于提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;填充后的原文信息包括用户身份ID、用户公钥以及根据预设初始参数生成的预设附加数据;
验签单元,用于根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;
处理单元,用于在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;
数据替换单元,用于将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;
验签单元,还用于根据替换后的原文信息,进行第二次标准验签;以及在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
本发明具有如下优点和有益效果:
本发明混合签名验签方法及装置,通过提取PDF文档中填充了附加信息的原文信息等相关数据,并通过在验签过程中替换附加信息,改造基于身份签名的验签算法,提高混合签名验证的可靠性;通过本发明的方案,使得签名之间的耦合性高,混合签名的验签过程需要基于这两种签名数据,提高了验证的严谨性。本发明的方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。本发明采用双重签名的分层(可视化)验签,在不同层次上给用户提供友好的验签过程,因此在安全严谨性和用户友好性方面有很好的平衡,适合于部署到需要两种签名算法混用并提供友好性验证的场景。
另一方面,提供了一种混合签名及验签系统,包括签名客户端和验签装置;
签名客户端接收服务端传输的预设初始参数和用户身份ID;根据预设初始参数,分别生成用户公钥和预设附加数据;在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息;并将待验证PDF文档传输给验签装置;
验签装置提取待验证PDF文档中的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;并根据替换后的原文信息,进行第二次标准验签;在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
本发明具有如下优点和有益效果:
本发明混合签名及验签系统,通过对PDF文档原文填充附加信息,并通过在验签过程中替换附加信息,改造基于身份签名的验签算法,一方面使得两种签名得以关联起来,真正实现混合签名,另一方面,提高混合签名的可靠性;通过本发明的方案,使得签名之间的耦合性高,混合签名的验签过程需要基于这两种签名数据,提高了验证的严谨性。本发明的方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。本发明采用双重签名以及分层验签机制,在不同层次上给用户提供友好的签名和验签过程,因此在安全严谨性和用户友好性方面有很好的平衡,适合于部署到需要两种签名算法混用并提供友好性验证的场景。
附图说明
图1为本发明混合签名方法实施例1的流程示意图;
图2为本发明混合签名验签方法实施例1的流程示意图;
图3为本发明混合签名装置实施例1的结构示意图;
图4为本发明混合签名验签装置实施例1的结构示意图;
图5为本发明混合签名及验签系统的结构示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的首选实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明混合签名及验签方法、装置及系统一具体应用场景以及相关技术术语说明:
本发明适合于部署到需要两种签名算法混用并提供友好性验证的场景;其中,友好性验证的场景可以指电子文档签署产品能够直观地反馈文字或者图形给用户,提示签名验签结果的有效性的场景。电子文档签署工具(产品)可以包括Reader,DocuSign,RightSign等。
本发明中提到的两种签名算法的混合使用,指的是将两种签名算法并列一起使用,即对同一份电子文档使用两种签名算法依次进行签名。在一个具体示例中,混合签名由签名数据1和签名数据2组成,要求:(1)电子文档签署工具(优选的,支持标准ECDSA签名的电子文档签署工具)能够可视化地验证签名数据1,即电子文档签署工具可以直观地反馈文字或者图形给用户,表明签名验签结果的有效性。(2)签名数据1和签名数据2之间存在耦合性,即签名数据2的验证过程中需要用到签名数据1,从而间接地验证整个混合签名。进一步的,两种签名算法中的一种为已标准化的签名算法(即具有国际标准),优选的,两种签名算法可以分别为椭圆曲线数字签名算法和基于身份签名算法,对应的,签名数据1可以为ECDSA签名数据,签名数据2可以为IBS签名数据。
在安全级别需求较高的场景,通过两种签名算法的混合使用,能够提供双重抗抵赖和防窜改性,从而增加电子签名的安全性和有效性。但是,传统技术在混合使用时,一般不对两种签名算法进行关联,因为在实际应用中,一般单重的签名已经可以达到所需的安全性;另有一些传统技术通过使用附加技术实现对两种签名算法的关联,然而这类传统技术由于使用了较多的附加技术,会导致实用性大大降低。因此,一般传统技术中不对两种签名算法进行关联,而是独立使用两种算法,这样做是为了工程上实现方便。
进一步的,对两种签名进行关联后,还需要确保电子文档签署工具(产品)例如Reader,能够友好地验证签名,因为新技术的引入,是以不破坏原技术友好性的情况下开展的。假如破坏了Reader验签的有效性,则对用户来说是体验极差的,不符合应用软件的基本特征。
此外,如果对两种签名算法进行关联的过程中,使用的手段破坏了标准PDF文档结构,易出现其中已标准化的签名算法(即具有国际标准,例如ECDSA算法)验签失败的情况,导致电子文档签署工具的友好性缺失,因此,需要确保PDF文档的结构完整性。可以明确,对两种签名进行关联后,在不破环标准PDF文档结构的前提下,如何确保电子文档签署工具能够友好地验证签名是亟待解决的技术问题。
本发明混合签名方法实施例1:
为了解决传统技术无法准确实现两种签名算法的混合使用的问题,本发明提供了一种混合签名方法实施例1;图1为本发明混合签名方法实施例1的流程示意图;如图1所示,可以包括以下步骤:
步骤S110:接收服务端传输的预设初始参数和用户身份ID;
步骤S120:根据预设初始参数,分别生成用户公钥和预设附加数据;
步骤S130:在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
步骤S140:根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
步骤S150:在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息。
具体而言,本发明各实施例中的待签名PDF文档指的是需符合电子文档签署工具规定的PDF文档;优选的,本发明混合签名方法实施例1可以由客户端执行。
需要说明的是,本发明中符合电子文档签署工具规定的PDF文档(即PDF文档是标准PDF文档结构,电子文档签署工具支持标准PDF文档结构)包括以下几部分:(1)原文信息域;(2)附加信息域1:可向其添加数据;(3)签名域:签名域的大小可以调整,为了便于将签名的两部分互斥存储,可以将签名域划分为签名域1和签名域2;其中,因为签名域需要存放两个签名,而通常PDF文档只存放一个签名,因此可以将签名域调大,便于存放多一个签名;同时,通过本发明中将签名的两部分互斥存储的方案,能够实现不让一个签名的数据被另外一个签名的数据覆盖的目的;(4)附加信息域2:可向其添加数据。
进一步的,本发明通过对PDF文档原文填充附加信息,使得两种签名得以关联起来,符合PDF标准的使用习惯的同时,也不增加高开销操作,同时可以增强混合签名的可靠性以及两种签名之间的耦合性。
优选的,本发明中提到的两种签名算法可以分别为椭圆曲线数字签名算法和基于身份的签名算法。其中,ECDSA(Elliptic-Curve Digital Signature Algorithm:椭圆曲线数字签名)算法是国际标准认可的椭圆曲线数字签名算法,已经被广泛应用到各种领域,其可视化签名和验签过程,令到用户体验更佳。IBS(Identity based signature:基于身份的签名或基于身份签名)算法是密码学的一个基本问题,该问题的方案研究和应用一直是热点,但由于算法构造的特殊性,构造基于身份签名算法需要用到密码学领域中双线性对等工具,这些工具在学术领域大量使用,但在工程领域并没有具体的国际标准,因此在某些领域,例如主流的电子文档签署工具,无法实现这种非标准的算法,不能对该签名算法进行可视化兼容,导致其难于广泛应用。
进一步的,本发明各实施例中提到的预设的初始化参数,可以由服务端根据两种签名算法对应的算法函数和执行的签名过程,生成后续签名以及验签过程中需要的相关参数(例如随机数、私钥等);具体而言,对于ECDSA算法和IBS算法,服务端可以通过运算双线性对算法以及哈希算法,生成的预设的初始化参数,优选的,预设的初始化参数可以包括{G1,GT,p,e,P,H0,H1,Ppub};
其中,(G1,GT)表示双线性群;p为素数,且|G1|=|GT|=p,素数p≥2k,k是安全参数;e为双线性对,且G1×G1→GT;H0和H1为哈希函数;
其中,{0,1}*表示哈希函数H1的输入域,*表示输入长度为不定长的;群表示哈希函数H1的输出域,群表示双线性群G1中元素与群模数互素的元素组成的群;
Ppub表示主公钥,且Ppub=nP,其中随机数和随机数n为主私钥;表示群,中的p即为素数p;P表示群中的椭圆曲线点;
具体的,混合签名中对应签名算法的签名运算可以指IBS签名运算和ECDSA签名运算,与此对应的第一签名数据为IBS签名数据,第二签名数据为ECDSA签名数据。
本发明可以真正实现混合签名,提高混合签名的可靠性。方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。采用双重签名机制,在不同层次上给用户提供友好的签名实践,因此在安全严谨性和用户友好性方面有很好的平衡。
在一个具体的实施例中,预设附加数据包括第一附加数据和第二附加数据;
根据预设初始参数,生成预设附加数据的步骤包括:
选取预设初始参数中的随机数,通过预设的运算规则,分别得到第一附加数据和第二附加数据。
具体而言,预设的运算规则是根据混合使用的两种签名算法对应的算法函数(例如构造签名算法需要用到密码学领域中对应的数学工具)进行的运算,原则是填充了上述附加数据的PDF文档,可以保证混合使用的两种签名中,已标准化的签名算法(即具有国际标准,例如ECDSA算法)的签名能够验证成功;优选的,客户端可以根据预设初始参数通过乘积运算得到第一附加数据r1P,客户端可以根据预设初始参数通过双线性对运算得到第二附加数据此时,填充后的原文信息为
其中,m为PDF文档原文信息;r1,r2为随机数,r1,r2∈Zp,Zp表示群(而Zp群是数论中常用的群),Zp中的p即为素数p,群表示Zp群中的元素与p互素的元素组成的群;表示以P和P作为输入,通过所述双线性对e进行运算,再对其进行r2幂次运算后的结果。
在一个具体的实施例中,附加信息域包括第一附加信息域和第二附加信息域;
在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充的步骤包括:
根据预设的存放规则,将用户身份ID、用户公钥、第一附加数据和第二附加数据存放在第一附加信息域和第二附加信息域的结构体节点上;
预设的存放规则为按照用户身份ID、用户公钥、第一附加数据、第二附加数据的顺序,优先将附加信息中的数据存放在第一附加信息域的结构体节点上,并在第一附加信息域的结构体节点的数目小于附加信息中数据的数据数目时,将附加信息中余下的数据存放在第二附加信息域的结构体节点上。
具体而言,客户端可以按照用户身份ID,PKID,r1P,的顺序依次进行存放。由于第一附加信息域和第二附加信息域的大小不固定,且这些附加信息域对应结构体的节点数目不固定,因此存放原则为:先将以上数据依次存放在第一附加信息域对应结构体的节点上;当节点数小于数据数目,再将余下的数据存放在第二附加信息域对应结构体的节点上。
需要说明的是,本发明各实施中对PDF文档进行填充,只是描述一种行为,其本质是向标准PDF文档结构中的节点存储数据。本发明各实施中提到的动词“填充”,其实质相当于对原文消息m的扩充,这种填充并不会覆盖原来的原文消息m,因此,填充后的数据是原文消息的扩充。
而基于以上步骤,使得本发明在将两种签名相关联的过程中,仅需通过简单的PDF文档填充(无需较多的附加技术),符合PDF标准的使用习惯的同时,不会增加高开销操作。不仅保证了工程上的实现方便,而且能够确保电子文档签署工具例如Reader,可以友好地验证签名。
在一个具体的实施例中,得到填充后的原文信息的步骤包括:
将待签名PDF文档的原文信息以及存放在第一附加信息域和第二附加信息域的结构体节点上的数据进行整合和冗余,得到填充后的原文信息。
具体而言,由于用户身份ID,PKID,r1P,存放入附加信息域结构体的节点后,标准PDF文档结构会对这些数据进行相应的整合和冗余,使得处理后的数据并没有预想中形式简单。可以对填充后的原文信息进行简要表示,用除去处理后的数据冗余后,剩下的最原始的数据表达形式,也就是相当于,直接将以上数据补充到原文消息m的后面,即是本发明各实施例中对填充后的原文信息强调简要表示,是为了后续引用该数据比较方便。
在一个具体的实施例中,预设的初始化参数为IBS签名算法必要参数;IBS签名算法必要参数包括双线性群(G1,GT)、哈希函数H0和H1、双线性群中椭圆曲线点P。
在一个具体的实施例中,根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,得到第一签名数据的步骤包括:
基于哈希函数,对填充后的原文信息进行哈希运算,得到填充后的原文信息的摘要数据;
接收服务端传输的第一用户私钥;
根据摘要数据、第一用户私钥和椭圆曲线点,得到IBS签名数据。
具体而言,填充后的原文信息的摘要数据可以为u;IBS签名数据可以为W;而客户端可以基于以下公式,基于哈希函数,对填充后的原文信息进行哈希运算得到填充后的原文信息的摘要数据u:
其中,u表示以作为输入,通过哈希函数H1运算后得出的结果;
根据摘要数据u,得到IBS签名数据W:
W=r2P-uDID
其中,W表示随机数r2乘以椭圆曲线点P,再减去u乘以DID后的结果;DID表示第一用户私钥;
对于第一用户私钥DID,可以由服务端根据获取的用户身份ID,基于以下公式生成:
QID=H0(ID)
DID=nQID
其中,QID表示基于用户身份ID通过哈希函数H0运算得出的值;DID表示第一用户私钥;服务端可以将第一用户私钥DID安全的传输给客户端,由客户端根据第一用户私钥DID和填充后的原文信息得到IBS签名数据。需要说明的是,服务端可以利用成熟的安全通信技术,例如将DID进行对称加密或使用SSL通道进行安全传输。
在一个具体的实施例中,第一签名数据为IBS签名数据;第二签名数据为ECDSA签名数据;签名域可以包括第一签名域和第二签名域;
在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档的步骤包括:
根据预设的写入方式,将ECDSA签名数据写入第一签名域的结构体节点,将IBS签名数据写入第二签名域的结构体节点。
具体而言,客户端可以将u、W依次存放在待签名PDF文档第二签名域的结构体节点上;具体而言,客户端可以先将u存放在第二签名域结构体的第一个可存放数据的节点中,再将W存放在第二签名域结构体的第二个可存放数据的节点中。本发明各实施中的第一签名域、第二签名域的结构体中包含多个节点,其中,本发明中提到的“结构体节点”与“结构体的节点”是对结构体中节点进行描述的相同概念。
进一步的,客户端可以基于以下公式,根据IBS签名数据,通过模运算得到ECDSA签名数据(r,s):
r=(r1P)x(mod p)
其中,(r1P)x表示点r1P的x坐标。
优选的,客户端可以将ECDSA签名(r,s)依次存放在第一签名域的结构体节点上。
通常PDF文档只存放一个签名,而本发明基于以上预设的写入方式,可以将签名域调大,便于存放多一个签名;同时,通过本发明中将签名的两部分互斥存储的方案,能够实现不让一个签名的数据被另外一个签名的数据覆盖的目的。
基于以上PDF文档的填充步骤的方案,使得本发明通过在PDF文档附加域和签名域中的结构体节点中填充数据,从而达到不破坏PDF文档结构而又可以存储额外数据的目的。
在一个具体的实施例中,根据预设初始参数,生成用户公钥的步骤包括:
选取预设随机数作为第二用户私钥;
根据第二用户私钥和椭圆曲线点,得到用户公钥。
具体而言,客户端可以选取随机数xID作为第二用户私钥,并根据第二用户私钥生成用户公钥:
PKID=xIDP;
其中,xID为第二用户私钥;P表示群中的椭圆曲线点且PKID表示用户公钥,PKID为群中的元素。
在一个具体的实施例中,生成用户公钥的步骤之后还包括步骤:
将第二用户私钥和用户公钥作为密钥对,生成与密钥对对应的数字证书。
具体而言,客户端可以利用openssl,keytool等证书工具,将密钥对(密钥对包含两个部分,第一部分为用户公钥;第二部分为第二用户私钥)作为工具的输入参数,通过命令行来操作工具,工具便会自动生成与该密钥对对应的PFX格式软证书。
优选的,用户公钥可以被制作成X509格式的用户证书,方便被主流密码工具,如openssl,验证其合法性;第二用户私钥后续用于签名操作,属于私密信息,因此需要被加密保护,防止泄露。
本发明混合签名方法实施例1,在已标准化的ECDSA签名算法(即具有国际标准)和待标准化的基于身份签名算法(暂时没有国际标准)的基础上,通过对PDF文档原文填充附加信息,使得两种签名得以关联起来,真正实现混合签名,提高混合签名的可靠性;通过本发明的方案,使得签名之间的耦合性高。本发明的方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。本发明采用双重签名机制,在不同层次上给用户提供友好的签名过程,因此在安全严谨性和用户友好性方面有很好的平衡,适合于部署到需要两种签名算法混用并提供友好性验证的场景。
本发明混合签名验签方法实施例1:
为了进一步说明本发明的技术方案,同时为了解决传统技术无法准确实现两种签名算法的混合使用的问题,本发明提供了一种混合签名验签方法实施例1;本实施例可以与上述混合签名方法实施例1配合使用,共同完成混合签名以及验签过程(即客户端完成签名阶段,验签装置完成签名验证阶段;验签装置可以为客户端或服务端)。图2为本发明混合签名验签方法实施例1的流程示意图;如图2所示,可以包括以下步骤:
步骤S210:提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;填充后的原文信息包括用户身份ID、用户公钥以及根据预设初始参数生成的预设附加数据;
步骤S220:根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;
步骤S230:在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;
步骤S240:将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;并根据替换后的原文信息,进行第二次标准验签;
步骤S250:在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
具体而言,验签装置通过提取待验证PDF文档中的用户公钥、第二签名数据和第一签名数据,首先进行第一次标准验签(本发明中提到的标准验签指的是基于已标准化的签名算法进行的验签;优选的,可以为ECDSA算法),在第一次标准验签通过时替换附加信息,进一步进行第二次标准验签,并在第二次标准验签通过时,进行未标准化的签名算法(优选的,可以为IBS算法)的验签,基于以上步骤能够改造未标准化的签名算法的验签过程,使得两种签名得以关联起来;优选的,通过替换附加信息改造基于身份签名的验签算法,能够真正实现两种签名的混合使用。
在一个具体的实施例中,第一签名数据为IBS签名数据,第二签名数据为ECDSA签名数据;预设的初始化参数包括双线性群、哈希函数、根据双线性群得到的满足预设安全条件的素数以及根据双线性群和哈希函数得到的随机数。
具体而言,预设的初始化参数可以包括双线性群(G1,GT)、哈希函数H0和H1、主私钥n、满足预设安全条件k的素数p以及用于生成预设附加数据的随机数P;
在一个具体的实施例中,根据用户公钥和第二签名数据,得到第一验签数据的步骤包括:
根据ECDSA签名数据,将素数作为模数进行模运算,得到第一验签参数和第二验签参数;
将椭圆曲线基点和第一验签参数的乘积、所述用户公钥和第二验签参数的乘积求和,得到第一验签数据。
具体而言,验签装置可以根据ECDSA签名数据进行模运算,并基于以下公式得到第一验签参数a1和第二验签参数a2:
t=s-1(mod p)
a1=tu(mod p)
a2=tr(mod p)
其中,mod表示数论领域的模运算;u为填充后的原文信息的摘要数据;W为IBS签名数据;(r,s)为ECDSA签名数据;p即素数p,作为在mod模运算中的模数。
进一步的,验签装置可以根据用户公钥PKID和第一验签参数a1和第二验签参数a2,得到第一验签数据(a1P+a2PKID)。
优选的,验签装置可以根据以下公式确认第一次ECDSA验签(即第一次标准验签)通过:
若(a1P+a2RKID)(mod p)=r成立,确认第一次ECDSA验签通过(即ECDSA验证流程)。
在一个具体示例中,验签装置在第一次ECDSA验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据的步骤中:
第二验签数据为e(W,P)e(QID,Ppub)u;而基于第一次ECDSA验签获得的第一验签数据为(a1P+a2PKID)。
将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息的步骤中:
用a1p+a2PKID、e(W,P)e(QID,Ppub)u分别替换r1P和得到替换后的原文消息为m||ID||PKID||a1p+a2PKID||e(W,P)e(QID,Ppub)u;
在一个具体示例中,验签装置根据替换后的原文信息,进行第二次ECDSA验签(即第二次标准验签)的步骤中:
根据替换后的原文信息,再次进行ECDSA验签过程;如果替换数据后,上述可视化ECDSA验签结果改变,表明该签名是非法的,退出;否则,进入下一步。
具体而言,原文档中填充有r1P和的数据是可以保证ECDSA签名的验证成功的;假如a1p+a2PKID和(W,P)e(QID,Ppub)u没有被攻击者恶意篡改,则a1p+a2PKID是等于r1P,(W,P)e(QID,Ppub)u是等于所以用a1p+a2PKID和(W,P)e(QID,Ppub)u替换r1P和后,不会改变ECDSA签名的验证成功(即可视化ECDSA验签结果没有改变);假如攻击者对数据进行了恶意篡改,那么a1p+a2PKID就不等于r1P,(W,P)e(QID,Ppub)u就不等于因此会导致ECDSA签名的验证失败(即可视化ECDSA验签结果改变)。
在一个具体的示例中,验签装置在第二次ECDSA验签通过时,根据第一签名数据(即IBS签名数据)和替换后的原文信息进行签名验签,得到混合签名验签结果(即双重签名验证流程)。
具体而言,可以根据替换后的原文信息对第一签名数据进行验签,即验证H1(m||ID||PKID||a1p+a2PKID||e(W,P)e(QID,Ppub)u)的值是否等于u。
若等于u,则验签通过,否则验签失败,退出验证流程。
需要说明的是,混合签名验签方法的执行主体验签装置,既可以是客户端也可以是服务端,即本发明混合签名的验证阶段可以放在客户端或者服务端进行。
优选的,可以放在客户端进行;通过客户端执行,使得本发明中使用的两种签名方案中,对于标准的ECDSA签名方案,可由主流的电子文档签署工具,例如Reader,可视化地展现签名和验签过程;而对于非标准的基于身份签名方案,安装对应的客户端就能够可视化地展现签名和验签过程;从而实现双重签名验证。
本发明可以在不同层次上给用户提供友好的签名和验签过程;基于本发明的技术方案,能够实现双重签名的分层可视化验签,即ECDSA签名由电子文档签署工具可视签名和验签,基于身份签名由对应客户端可视签名和验签。优选的,当用户激发验签按钮的时候,基于本发明的电子文档签署工具可以自动对签名进行验证,并直观地将签名验证结果通过文字或者图形反馈给用户。
通过客户端实施本实施例,可以实现双重签名机制,在不同层次上给用户提供友好的签名和验签过程。ECDSA签名由主流电子文档签署工具进行安全保证;基于身份签名由对应客户端进行安全保证。而电子文档签署工具在本发明各实施例中既可以作为客户端,也可以作为服务端;优选的,电子文档签署工具为Reader。
进一步的,对于例如Adobe Reader等国际主流的电子文档签署工具,由于ECDSA签名算法是国际标准的签名算法,自然受到主流工具的支持。基于身份的签名算法由于是一些厂商自主开发的,因此厂商自主开发的客户端就能够支持自己的算法。具体流程中“ECDSA签名由Reader进行安全保证”,可以体现在上述ECDSA签名和验证流程。“身份签名由对应客户端进行安全保证”,可以体现在上述基于身份签名和双重签名验证流程。
本发明混合签名验签方法实施例1,在已标准化的ECDSA签名算法(即具有国际标准)和待标准化的基于身份签名算法(暂时没有国际标准)的基础上,通过提取PDF文档中填充了附加信息的原文信息等相关数据,并通过在验签过程中替换附加信息,改造基于身份签名的验签算法,提高混合签名验证的可靠性;通过本发明的方案,使得签名之间的耦合性高,混合签名的验签过程需要基于这两种签名数据,提高了验证的严谨性。本发明的方案易于实现,算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。本发明采用双重签名的分层(可视化)验签,在不同层次上给用户提供友好的验签过程,因此在安全严谨性和用户友好性方面有很好的平衡,适合于部署到需要两种签名算法混用并提供友好性验证的场景。
本发明从混合签名装置实施例1:
为了解决传统技术无法准确实现两种签名算法的混合使用的问题,本发明提供了一种混合签名装置实施例1;图3为本发明混合签名装置实施例1的结构示意图;如图3所示,可以包括:
接收单元310,用于接收服务端传输的预设初始参数和用户身份ID;
信息生成单元320,用于根据预设初始参数,分别生成用户公钥和预设附加数据;
信息填充单元330,用于在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
签名数据生成单元340,用于根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
签名文档生成单元350,用于在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息。
具体而言,本发明混合签名装置实施例1中的各单元模块,能够对应实现上述混合签名方法各实施例中的方法步骤,此处不再重复赘述。
本发明混合签名验签装置实施例1:
为了解决传统技术无法准确实现两种签名算法的混合使用的问题,本发明提供了混合签名验签装置实施例1;图4为本发明混合签名验签装置实施例1的结构示意图;如图4所示,可以包括:
数据提取单元410,用于提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;填充后的原文信息包括用户身份ID、用户公钥以及根据预设初始参数生成的预设附加数据;
验签单元420,用于根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;
处理单元430,用于在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;
数据替换单元440,用于将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;
验签单元420,还用于根据替换后的原文信息,进行第二次标准验签;以及在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
具体而言,本发明混合签名验签装置实施例1中的各单元模块,能够对应实现上述混合签名验签方法各实施例中的方法步骤,此处不再重复赘述。
本发明混合签名及验签系统:
为了解决传统技术无法准确实现两种签名算法的混合使用的问题,本发明还提供了一种混合签名系统,图5为本发明混合签名及验签系统的结构示意图,如图5所示,包括签名客户端和验签装置;
签名客户端接收服务端传输的预设初始参数和用户身份ID;根据预设初始参数,分别生成用户公钥和预设附加数据;在待签名PDF文档的附加信息域中,将用户身份ID、用户公钥以及预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;根据填充后的原文信息和预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;在待签名PDF文档的签名域中,对第一签名数据和第二签名数据进行互斥存储,得到待验证PDF文档;待验证PDF文档包含第一签名数据、第二签名数据以及填充后的原文信息;并将待验证PDF文档传输给验签装置;
验签装置提取待验证PDF文档中的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;根据用户公钥和第二签名数据,得到第一验签数据;并通过第一验签数据,进行第一次标准验签;在第一次标准验签通过时,根据预设初始参数与第一签名数据,得到第二验签数据;将第一验签数据和第二验签数据分别替换对应的预设附加数据,得到替换后的原文信息;并根据替换后的原文信息,进行第二次标准验签;在第二次标准验签通过时,根据第一签名数据和替换后的原文信息进行签名验签,得到混合签名验签结果。
在一个具体的实施例中,验签装置可以为客户端或服务端。
为了详细说明本发明的技术思想,特以实际应用本发明的电子文档签署产品Reader为例,说明本发明混合签名及验签系统的具体实现流程:
1、系统初始化阶段[服务端];
1)取双线性群(G1,GT),其中|G1|=|GT|=p,素数p≥2k,k是系统安全参数。
2)取双线性对e:G1×G1→GT。
3)取两个安全哈希函数H0和H1;
4)取随机数和
5)设系统主公钥Ppub=nP,主私钥n。
6)公开系统参数{G1,GT,p,e,P,H0,H1,Ppub}。
2、用户私钥1生成阶段[服务端];
1)给定用户身份ID,计算QID=H0(ID)。
2)设用户私钥1为DID=nQID。
3)通过安全通信,将DID传输给客户端。例如将DID进行对称加密或使用SSL(SecureSockets Layer:安全套接层),通道进行安全传输。
3、用户私钥2生成阶段[客户端];
1)取随机数将xID作为用户私钥2。
2)设PKID=xIDP;其中,将PKID作为用户公钥。
3)利用证书工具以用户公钥和用户私钥2为密钥对制作成PFX格式的软证书,其中,用户公钥被制作成符合X509格式的用户证书,用户私钥2被加密保护。
4、签名阶段[客户端];
1)对待签名的PDF文档中的原文消息m,先对PDF文档进行填充,将用户身份ID,PKID,r1P,依次先后存放在附加信息域1和附加信息域2的结构体的节点上。填充后的原文消息m可以简要表示为其中随机数
2)计算摘要数据
3)计算W=r2P-uDID。(以上即基于身份的签名流程)
4)将摘要数据u以及IBS签名W分别存放在签名域2的结构体的节点上。
5)电子文档签署产品计算ECDSA签名r=(r1P)x(mod p), 其中(r1P)x表示点r1P的x坐标。(ECDSA签名流程)
6)Reader将ECDSA签名(r,s)存放在签名域1中结构体的节点。
7)将含有签名(u,(r,s),W)的待签名PDF文档发送给服务端(也可由客户端进行验签)。
5、验证阶段[验证阶段可以放在服务端或客户端进行];
1)提取PDF文档的附加信息域1或附加信息域2中结构体节点的PKID。
2)对待签名PDF文档中的原文消息m,如Reader可视化地自动对ECDSA签名(r,s)进行验签,验签过程如步骤4)描述。
3)从待签名PDF文档的签名域1相应结构体节点中提取ECDSA签名(r,s)。
4)计算t=s-1(mod p),a1=tu(mod p),a2=tr(mod p),如果(a1P+a2PKID)(mod p)=r成立,确认验签通过。否则验签失败,退出(ECDSA验签流程)。
5)将a1p+a2PKID、e(W,P)e(QID,Ppub)u分别替换待签名PDF文档的附加信息域1和附加信息域2中结构体的r1P和对应的节点内容,替换后的原文消息可以简要表示为m||ID||PKID||a1p+a2PKID||e(W,P)e(QID,Ppub)u。
6)如果替换数据后,上述可视化ECDSA验签结果改变,表明该签名是非法的,退出;否则,进行下一步。
7)从待签名PDF文档的签名域2相应结构体节点中提取u,W。
8)利用对应客户端(例如IBC安全认证平台客户端)进行验签,计算H1(m||ID||PKID||a1p+a2PKID||e(W,P)e(QID,Ppub)u)的值是否等于u,如果其值等于u,则验签通过。否则验签失败,退出。(双重签名验证流程)
与传统方案相比,本发明能够提供良好的用户体验。方案中使用两种签名方案,一种是标准的ECDSA签名方案,Reader能够可视化地展现签名和验签过程;一种是非标准的基于身份签名方案,安装对应的客户端就能够可视化地展现签名和验签过程;从而实现双重签名验证。本发明的签名之间的耦合性高。方案中ECDSA签名和基于身份签名之间,通过对PDF文档原文填充附加信息,并改造基于身份签名的验签算法,使得两种签名得以关联起来,混合签名的验签过程需要基于这两种签名数据,提高了验证的严谨性。本发明易于实现。算法的实现流程基于数论的基本操作,便于使用不同计算机语言进行编程实现。
本发明使用了双重签名机制,在不同层次上给用户提供友好的签名和验签过程。ECDSA签名由Reader进行安全保证;基于身份签名由对应客户端进行安全保证。两种签名之间的耦合性强。将两种签名相关联的过程中,仅使用简单的PDF文档填充技术,符合PDF标准的使用习惯的同时,也不增加高开销操作;基于身份签名的验签过程改造,增强混合签名的可靠性。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括以上方法所述的步骤,所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种混合签名方法,其特征在于,包括以下步骤:
接收服务端传输的预设初始参数和用户身份ID;
根据所述预设初始参数,分别生成用户公钥和预设附加数据;
在待签名PDF文档的附加信息域中,将所述用户身份ID、所述用户公钥以及所述预设附加数据作为附加信息,对所述待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
根据所述填充后的原文信息和所述预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
在所述待签名PDF文档的签名域中,对所述第一签名数据和所述第二签名数据进行互斥存储,得到待验证PDF文档;所述待验证PDF文档包含所述第一签名数据、所述第二签名数据以及所述填充后的原文信息。
2.根据权利要求1所述的混合签名方法,其特征在于,所述预设附加数据包括第一附加数据和第二附加数据;
根据所述预设初始参数,生成预设附加数据的步骤包括:
选取所述预设初始参数中相应的随机数,根据预设的运算规则,分别得到所述第一附加数据和所述第二附加数据。
3.根据权利要求2所述的混合签名方法,其特征在于,所述附加信息域包括第一附加信息域和第二附加信息域;
在待签名PDF文档的附加信息域中,将所述用户身份ID、所述用户公钥以及所述预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充的步骤包括:
根据预设的存放规则,将所述用户身份ID、所述用户公钥、所述第一附加数据和所述第二附加数据存放在所述第一附加信息域和所述第二附加信息域的结构体节点上;
所述预设的存放规则为按照所述用户身份ID、所述用户公钥、所述第一附加数据、所述第二附加数据的顺序,优先将所述附加信息中的数据存放在所述第一附加信息域的结构体节点上,并在所述第一附加信息域的结构体节点的数目小于所述附加信息中数据的数据数目时,将所述附加信息中余下的数据存放在所述第二附加信息域的结构体节点上。
4.根据权利要求3所述的混合签名方法,其特征在于,得到填充后的原文信息的步骤包括:
将所述待签名PDF文档的原文信息以及存放在所述第一附加信息域和所述第二附加信息域的结构体节点上的数据进行整合和冗余,得到所述填充后的原文信息。
5.根据权利要求1至4任意一项所述的混合签名方法,其特征在于,所述第一签名数据为IBS签名数据;所述第二签名数据为ECDSA签名数据;所述签名域包括第一签名域和第二签名域;
在所述待签名PDF文档的签名域中,对所述第一签名数据和所述第二签名数据进行互斥存储,得到待验证PDF签名文档的步骤包括:
根据预设的写入方式,将所述ECDSA签名数据写入所述第一签名域的结构体节点,将所述IBS签名数据写入所述第二签名域的结构体节点。
6.根据权利要求5所述的混合签名方法,其特征在于,所述预设的初始化参数为IBS签名算法必要参数;所述IBS签名算法必要参数包括双线性群、哈希函数和所述双线性群中椭圆曲线点。
7.根据权利要求6所述的混合签名方法,其特征在于,根据所述填充后的原文信息和所述预设初始参数,通过混合签名中对应签名算法的签名运算,得到第一签名数据的步骤包括:
基于所述哈希函数,对所述填充后的原文信息进行哈希运算,得到所述填充后的原文信息的摘要数据;
接收所述服务端传输的第一用户私钥;
根据所述摘要数据、所述第一用户私钥和所述椭圆曲线点,得到所述IBS签名数据。
8.根据权利要求6所述的混合签名方法,其特征在于,根据所述预设初始参数,生成用户公钥的步骤包括:
选取预设随机数作为第二用户私钥;
根据所述第二用户私钥和所述椭圆曲线点,得到所述用户公钥。
9.根据权利要求8所述的混合签名方法,其特征在于,生成用户公钥的步骤之后还包括步骤:
将所述第二用户私钥和所述用户公钥作为密钥对,生成与所述密钥对对应的数字证书。
10.一种混合签名验签方法,其特征在于,包括以下步骤:
提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;所述填充后的原文信息包括用户身份ID、用户公钥以及根据所述预设初始参数生成的预设附加数据;
根据所述用户公钥和所述第二签名数据,得到第一验签数据;并通过所述第一验签数据,进行第一次标准验签;
在所述第一次标准验签通过时,根据所述预设初始参数与所述第一签名数据,得到第二验签数据;
将所述第一验签数据和所述第二验签数据分别替换对应的所述预设附加数据,得到替换后的原文信息;并根据所述替换后的原文信息,进行第二次标准验签;
在所述第二次标准验签通过时,根据所述第一签名数据和所述替换后的原文信息进行签名验签,得到混合签名验签结果。
11.根据权利要求10所述的混合签名验签方法,其特征在于,所述第一签名数据为IBS签名数据,所述第二签名数据为ECDSA签名数据;
所述预设的初始化参数包括双线性群、哈希函数、满足预设安全条件的素数以及用于生成预设附加数据的随机数。
12.根据权利要求11所述的混合签名验签方法,其特征在于,根据所述用户公钥和所述第二签名数据,得到第一验签数据的步骤包括:
根据所述ECDSA签名数据,将所述素数作为模数进行模运算,得到第一验签参数和第二验签参数;
将所述椭圆曲线基点和所述第一验签参数的乘积、所述用户公钥和所述第二验签参数的乘积求和,得到所述第一验签数据。
13.一种混合签名装置,其特征在于,包括:
接收单元,用于接收服务端传输的预设初始参数和用户身份ID;
信息生成单元,用于根据所述预设初始参数,分别生成用户公钥和预设附加数据;
信息填充单元,用于在待签名PDF文档的附加信息域中,将所述用户身份ID、所述用户公钥以及所述预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;
签名数据生成单元,用于根据所述填充后的原文信息和所述预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;
签名文档生成单元,用于在所述待签名PDF文档的签名域中,对所述第一签名数据和所述第二签名数据进行互斥存储,得到待验证PDF文档;所述待验证PDF文档包含所述第一签名数据、所述第二签名数据以及所述填充后的原文信息。
14.一种混合签名验签装置,其特征在于,包括:
数据提取单元,用于提取待验证PDF文档中包含的预设初始参数、第一签名数据、第二签名数据以及填充后的原文信息;所述填充后的原文信息包括用户身份ID、用户公钥以及根据所述预设初始参数生成的预设附加数据;
验签单元,用于根据所述用户公钥和所述第二签名数据,得到第一验签数据;并通过所述第一验签数据,进行第一次标准验签;
处理单元,用于在所述第一次标准验签通过时,根据所述预设初始参数与所述第一签名数据,得到第二验签数据;
数据替换单元,用于将所述第一验签数据和所述第二验签数据分别替换对应的所述预设附加数据,得到替换后的原文信息;
所述验签单元,还用于根据所述替换后的原文信息,进行第二次标准验签;以及在所述第二次标准验签通过时,根据所述第一签名数据和所述替换后的原文信息进行签名验签,得到混合签名验签结果。
15.一种混合签名及验签系统,其特征在于,包括签名客户端和验签装置;
所述签名客户端接收服务端传输的预设初始参数和用户身份ID;根据所述预设初始参数,分别生成用户公钥和预设附加数据;在待签名PDF文档的附加信息域中,将所述用户身份ID、所述用户公钥以及所述预设附加数据作为附加信息,对待签名PDF文档的原文信息进行填充,得到填充后的原文信息;根据所述填充后的原文信息和所述预设初始参数,通过混合签名中对应签名算法的签名运算,分别得到第一签名数据和第二签名数据;在所述待签名PDF文档的签名域中,对所述第一签名数据和所述第二签名数据进行互斥存储,得到待验证PDF文档;所述待验证PDF文档包含所述第一签名数据、所述第二签名数据以及所述填充后的原文信息;并将所述待验证PDF文档传输给所述验签装置;
所述验签装置提取所述待验证PDF文档中的所述预设初始参数、所述第一签名数据、所述第二签名数据以及所述填充后的原文信息;根据所述用户公钥和所述第二签名数据,得到第一验签数据;并通过所述第一验签数据,进行第一次标准验签;在所述第一次标准验签通过时,根据所述预设初始参数与所述第一签名数据,得到第二验签数据;将所述第一验签数据和所述第二验签数据分别替换对应的所述预设附加数据,得到替换后的原文信息;并根据所述替换后的原文信息,进行第二次标准验签;在所述第二次标准验签通过时,根据所述第一签名数据和所述替换后的原文信息进行签名验签,得到混合签名验签结果。
16.根据权利要求15所述的混合签名及验签系统,其特征在于,所述验签装置为客户端或服务端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710265901.7A CN107017995B (zh) | 2017-04-21 | 2017-04-21 | 混合签名及验签方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710265901.7A CN107017995B (zh) | 2017-04-21 | 2017-04-21 | 混合签名及验签方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107017995A true CN107017995A (zh) | 2017-08-04 |
CN107017995B CN107017995B (zh) | 2019-06-07 |
Family
ID=59448099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710265901.7A Active CN107017995B (zh) | 2017-04-21 | 2017-04-21 | 混合签名及验签方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107017995B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
CN111552946A (zh) * | 2020-04-24 | 2020-08-18 | 上海亘岩网络科技有限公司 | 一种pdf文件数字签名方法、系统及存储介质 |
CN111552927A (zh) * | 2020-04-24 | 2020-08-18 | 上海亘岩网络科技有限公司 | 一种ofd文档数字签名方法及系统 |
CN111581606A (zh) * | 2020-04-24 | 2020-08-25 | 上海亘岩网络科技有限公司 | 一种pdf文件数字签名方法及系统 |
CN116842583A (zh) * | 2023-07-11 | 2023-10-03 | 北京万维盛新科技有限公司 | 一种以pdf签章为核心的电子签名系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065656A1 (en) * | 2001-08-31 | 2003-04-03 | Peerify Technology, Llc | Data storage system and method by shredding and deshredding |
CN1722656A (zh) * | 2004-04-08 | 2006-01-18 | 梁庆生 | 一种数字签名方法及数字签名工具 |
CN101763477A (zh) * | 2009-12-30 | 2010-06-30 | 北京飞天诚信科技有限公司 | 一种智能密钥装置的签名方法 |
CN106330462A (zh) * | 2016-09-05 | 2017-01-11 | 广东省电子商务认证有限公司 | 一种支持多算法的pdf签名方法及系统 |
-
2017
- 2017-04-21 CN CN201710265901.7A patent/CN107017995B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065656A1 (en) * | 2001-08-31 | 2003-04-03 | Peerify Technology, Llc | Data storage system and method by shredding and deshredding |
CN1722656A (zh) * | 2004-04-08 | 2006-01-18 | 梁庆生 | 一种数字签名方法及数字签名工具 |
CN101763477A (zh) * | 2009-12-30 | 2010-06-30 | 北京飞天诚信科技有限公司 | 一种智能密钥装置的签名方法 |
CN106330462A (zh) * | 2016-09-05 | 2017-01-11 | 广东省电子商务认证有限公司 | 一种支持多算法的pdf签名方法及系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107342867A (zh) * | 2017-07-07 | 2017-11-10 | 北京牛链科技有限公司 | 签名验签方法和装置 |
CN111552946A (zh) * | 2020-04-24 | 2020-08-18 | 上海亘岩网络科技有限公司 | 一种pdf文件数字签名方法、系统及存储介质 |
CN111552927A (zh) * | 2020-04-24 | 2020-08-18 | 上海亘岩网络科技有限公司 | 一种ofd文档数字签名方法及系统 |
CN111581606A (zh) * | 2020-04-24 | 2020-08-25 | 上海亘岩网络科技有限公司 | 一种pdf文件数字签名方法及系统 |
CN116842583A (zh) * | 2023-07-11 | 2023-10-03 | 北京万维盛新科技有限公司 | 一种以pdf签章为核心的电子签名系统及方法 |
CN116842583B (zh) * | 2023-07-11 | 2024-02-13 | 北京万维盛新科技有限公司 | 一种以pdf签章为核心的电子签名系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107017995B (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107017995A (zh) | 混合签名及验签方法、装置及系统 | |
US5878140A (en) | Limited-traceability systems | |
US5493614A (en) | Private signature and proof systems | |
CN102263638B (zh) | 认证设备、认证方法和签名生成设备 | |
CN103425941B (zh) | 云存储数据完整性的验证方法、设备和服务器 | |
Au et al. | Compact e-cash from bounded accumulator | |
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
CN109936455A (zh) | 一种数字签名的方法、装置和系统 | |
CN103718501B (zh) | 信息处理设备和信息处理方法 | |
CN104782077A (zh) | 密码证书重发 | |
WO2015004065A1 (en) | Electronic signature system | |
CN112785306A (zh) | 基于Paillier的同态加密方法及应用系统 | |
US9178700B2 (en) | Information processing apparatus, information processing method, program, and recording medium | |
Poettering | Shorter double-authentication preventing signatures for small address spaces | |
TW202318833A (zh) | 臨界簽章方案 | |
CN103748830B (zh) | 信息处理设备、签名提供方法和设备、签名验证方法和设备 | |
Shang et al. | Quantum random oracle model for quantum digital signature | |
CN104410500B (zh) | 基于指定验证者的签名、签名验证及副本模拟方法和系统 | |
JP3704162B2 (ja) | 反復認証を行う2個のマイクロコンピュータ間に2つの証明を交換するシークレットの転送方法 | |
CN108768634A (zh) | 可验证加密签名生成方法和系统 | |
Datta et al. | Constrained pseudorandom functions for unconstrained inputs revisited: achieving verifiability and key delegation | |
CN111245869B (zh) | 一种信息物理系统中的跨域匿名认证方法 | |
Okazaki et al. | Suitable Symbolic Models for Cryptographic Verification of Secure Protocols in ProVerif | |
CN114026586A (zh) | 用于授予对加密资产的访问权的零知识或有支付协议 | |
CN111950021A (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 |