CN105933124A - 一种数字签名及消息散列值恢复方法 - Google Patents

一种数字签名及消息散列值恢复方法 Download PDF

Info

Publication number
CN105933124A
CN105933124A CN201610497163.4A CN201610497163A CN105933124A CN 105933124 A CN105933124 A CN 105933124A CN 201610497163 A CN201610497163 A CN 201610497163A CN 105933124 A CN105933124 A CN 105933124A
Authority
CN
China
Prior art keywords
signature
value
hash value
message hash
message
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
Application number
CN201610497163.4A
Other languages
English (en)
Other versions
CN105933124B (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.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
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 Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN201610497163.4A priority Critical patent/CN105933124B/zh
Publication of CN105933124A publication Critical patent/CN105933124A/zh
Application granted granted Critical
Publication of CN105933124B publication Critical patent/CN105933124B/zh
Expired - Fee Related 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

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

Abstract

针对不支持从签名值恢复签名运算时的消息散列值的数字签名算法,本发明提出了一种数字签名及消息散列值恢复方法:当进行签名运算时,密码模块将消息散列值作为填充或附加数据填充或附加到使用私钥对消息散列值进行签名运算后的签名值中形成最终的签名值;当数字签名应用程序请求使用签名者的公钥从签名值恢复数字签名运算时的消息散列值时,密码模块从签名值中获取或分离出签名运算后填充或附加的消息散列值,然后用获得的消息散列值和签名者的公钥对用签名者私钥密码运算后的签名值进行签名验证;若验证通过则将从签名值中获取或分离出的消息散列值作为恢复的消息散列值返回,否则将一个固定值或随机值作为恢复的消息散列值返回。

Description

一种数字签名及消息散列值恢复方法
技术领域
本发明属于信息安全领域,特别是一种数字签名及消息散列值恢复方法。
背景技术
目前的数字签名方案分为两种。
一种在数字签名时,使用签名者的私钥对待签名的消息(message)的散列值(hash value)(简称消息散列值)进行加密密码运算即签名运算,运算得到的结果作为对消息签名的签名值(signature value);在数字签名验证时,使用签名者的公钥对签名值进行解密密码运算,解密获得签名运算时的消息散列值,然后同待验证签名的消息的散列值进行比对(散列值直接比对),若二者相同,则数字签名验证通过,否则,不通过。这种方案在进行数字签名验证时要从签名值恢复签名运算时的消息散列值,基于RSA密码算法的数字签名方案就是这种方案。
另一种方案在数字签名时,使用签名者的私钥对要签名的消息的散列值即消息散列值进行密码运算即签名运算,运算得到结果是针对消息签名的签名值;在数字签名验证时,将待验证签名的消息的散列值加入到用签名者公钥对签名值进行签名验证的密码运算中,并对密码运算结果进行比对(散列值间接比对),若比对的结果一致则数字签名验证通过,否则,不通过。这种方案在进行数字签名验证时不从签名值恢复签名运算时的消息散列值,也不支持从签名值恢复签名运算时的消息散列值,基于DSA(Digital Signature Algorithm)、ECC(Elliptic Curve Cryptography)、IBC(Identity Based Cryptography)密码算法的数字签名方案就是这种方案。
通常,密码模块的签名验证接口函数的输入参数包括:签名者公钥、签名值、待验证签名的消息或消息的散列值,签名验证接口函数根据这些输入参数完成签名验证。基于Windows CryptoSPI、PKCS#11接口的密码模块都有这种签名验签接口函数。这种签名验证接口函数同时适用于前面所述的两种数字签名方案。但是,有的密码模块还提供了从签名值恢复消息散列值的接口函数,如PKCS#11密码模块(C_VerifyRecovery)。使用这种接口函数进行数字签名验证的数字签名应用程序先调用密码模块的散列函数计算得到待签名验证的消息的散列值,然后调用从签名值恢复消息散列值的接口函数,从待签名验证的签名值中恢复出签名运算时的消息散列值,然后比对两个散列值是否一致。但是,在实际应用中会存在这样一个问题:数字签名应用程序采用从签名值恢复签名运算时的消息散列值的方式进行签名验证,而数字签名应用程序调用密码模块对消息进行数字签名时采用的数字签名算法不支持从签名值恢复出签名运算时的消息散列值,这样数字签名应用程序将无法调用密码模块的从签名值恢复消息散列值的接口函数,从待签名验证的签名值恢复签名运算时的消息散列值完成数字签名验证。
发明内容
本发明的目的是提出一种技术方案,使得不支持从签名值恢复签名运算时的消息散列值的数字签名算法在实际应用中也能实现从签名值恢复签名运算时的消息散列值。
为了实现以上目的,本发明提出了一种数字签名及消息散列值恢复方法,包括数字签名方法、消息散列值恢复方法和签名验证方法,具体如下。
数字签名方法:当数字签名应用程序调用密码模块使用签名者的私钥对消息散列值进行数字签名运算时,密码模块将消息散列值作为填充或附加数据填充或附加到用私钥对消息散列值进行签名运算后的签名值中形成最终的签名值。
消息散列值恢复方法:当数字签名应用程序调用密码模块请求使用签名者的公钥从签名值恢复数字签名运算时的消息散列值时,密码模块按如下方式进行处理:
先从(数字签名应用程序提交的)签名值中获取或分离出数字签名运算时填充或附加到签名值的消息散列值;然后用获得的消息散列值和签名者的公钥对使用签名者私钥进行签名运算后的签名值(即不包含填充或附加的消息散列值的签名值)进行签名验证;若验证通过,则将从签名值中获取或分离出的消息散列值作为恢复的消息散列值返回,否则,将一个固定值或随机值作为恢复的消息散列值返回。
签名验证方法:当数字签名应用程序调用密码模块请求使用签名者的公钥、消息或消息散列值对签名值进行签名验证时,密码模块将填充或附加的消息散列值从签名值中剥离,然后使用签名者的公钥、消息或消息散列值对剥离了填充或附加的消息散列值的签名值进行签名验证。
从以上方案可以看到,基于本发明,即便数字签名应用程序调用密码模块进行数字签名时采用的数字签名算法不支持从签名值恢复签名运算时的消息散列值,数字签名应用程序也能调用密码模块的从签名值恢复消息散列值的接口函数,从待签名验证的签名值中恢复签名运算时的消息散列值。
附图说明
无。
具体实施方式
下面结合实施例对本发明作进一步的描述。
实施例一、
密码模块提供的数字签名功能包括使用不支持从签名值恢复签名运算时的消息散列值的数字签名算法进行数字签名,但密码模块没有从签名值恢复消息散列值的接口函数,比如Windows CSP,对于这种密码模块,需要在其数字签名接口函数(如Windows CSP的CPSignHash)和签名验证接口函数(如Windows CSP的CPVerifySignature)中分别实施本发明的数字签名方法和签名验证方法,具体如下。
在数字签名接口函数的执行中,密码模块判断数字签名应用程序使用的签名者私钥的算法类型是否支持从签名值恢复签名运算时的消息散列值,若支持,则按通常的数字签名方式进行数字签名的处理,否则,按本发明的数字签名方法进行数字签名的处理。
在签名验证接口函数的执行中,密码模块判断数字签名应用程序使用的签名者公钥的算法类型是否支持从签名值恢复签名运算时的消息散列值,若支持,则按通常的签名验证方式进行签名验证的处理,否则,按本发明的签名验证方法进行签名验证的处理。
实施例二、
密码模块提供的数字签名功能包括使用不支持从签名值恢复签名运算时的消息散列值的数字签名算法进行数字签名,且密码模块除了有签名验证接口函数外,还有从签名值恢复消息散列值的接口函数,比如PKCS#11密码模块,对于这种密码模块,需要在其数字签名接口函数(如PKCS#11的C_Sign、C_SignRecovery类接口函数)、签名验证接口函数(如PKCS#11的C_Verify类接口函数)和从签名值恢复消息散列值的接口函数(如PKCS#11的 C_VerifyRecovey类接口函数)中分别实施本发明的数字签名方法、签名验证方法和消息散列值恢复方法,其中数字签名接口函数、签名验证接口函数的实施同实施例一,从签名值恢复消息散列值的接口函数的实施具体如下。
在从签名值恢复消息散列值的接口函数的执行中,密码模块判断数字签名应用程序使用的签名者公钥的算法类型是否支持从签名值恢复签名运算时的消息散列值,若支持,则按通常的从签名值恢复消息散列值的方式从签名值恢复签名运算时的消息散列值,否则,按本发明的消息散列值恢复方法从签名值恢复签名运算时的消息散列值。
对实施例一中的密码模块也需要实施本发明的方法的原因在于:数字签名应用程序在数字签名时可能使用的是实例一中的密码模块,而在签名验证时可能使用的是实例二中的密码模块,或者反过来。
其他未说明的具体技术实施,对于相关领域的技术人员而言是众所周知,不言自明的。

Claims (3)

1.一种数字签名方法,其特征是:
所述数字签名方法使用的数字签名算法不支持从签名值恢复签名运算时的消息散列值;
当数字签名应用程序调用密码模块使用签名者的私钥对消息散列值进行数字签名运算时,密码模块将消息散列值作为填充或附加数据填充或附加到用私钥对消息散列值进行签名运算后的签名值中形成最终的签名值。
2.针对权利要求1所述的数字签名方法的消息散列值恢复方法,其特征是:
当数字签名应用程序调用密码模块请求使用签名者的公钥从签名值恢复数字签名运算时的消息散列值时,密码模块按如下方式进行处理:
先从签名值中获取或分离出数字签名运算时填充或附加到签名值的消息散列值;然后用获得的消息散列值和签名者的公钥对使用签名者私钥进行签名运算后的、不包含填充或附加的消息散列值的签名值进行签名验证;若验证通过,则将从签名值中获取或分离出的消息散列值作为恢复的消息散列值返回,否则,将一个固定值或随机值作为恢复的消息散列值返回。
3.针对权利要求1所述的数字签名方法的签名验证方法,其特征是:
当数字签名应用程序调用密码模块请求使用签名者的公钥、消息或消息散列值对签名值进行签名验证时,密码模块将填充或附加的消息散列值从签名值中剥离,然后使用签名者的公钥、消息或消息散列值对剥离了填充或附加的消息散列值的签名值进行签名验证。
CN201610497163.4A 2016-06-30 2016-06-30 一种数字签名及消息散列值恢复和签名验证方法 Expired - Fee Related CN105933124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610497163.4A CN105933124B (zh) 2016-06-30 2016-06-30 一种数字签名及消息散列值恢复和签名验证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610497163.4A CN105933124B (zh) 2016-06-30 2016-06-30 一种数字签名及消息散列值恢复和签名验证方法

Publications (2)

Publication Number Publication Date
CN105933124A true CN105933124A (zh) 2016-09-07
CN105933124B CN105933124B (zh) 2020-10-30

Family

ID=56828705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610497163.4A Expired - Fee Related CN105933124B (zh) 2016-06-30 2016-06-30 一种数字签名及消息散列值恢复和签名验证方法

Country Status (1)

Country Link
CN (1) CN105933124B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125781A (zh) * 2019-12-24 2020-05-08 腾讯科技(深圳)有限公司 一种文件签名方法、装置和文件签名验证方法、装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547344A (zh) * 2003-12-17 2004-11-17 上海市高级人民法院 时间戳在远程鉴章系统中的应用方法
CN101079086A (zh) * 2006-05-26 2007-11-28 大连海盛达科技有限公司 一种实现电子数字签章系统的方法
CN101610150A (zh) * 2009-07-22 2009-12-23 中兴通讯股份有限公司 第三方数字签名方法和数据传输系统
US20090327733A1 (en) * 2008-06-30 2009-12-31 Raytheon Company Data Security Method and System
CN101742508A (zh) * 2009-12-21 2010-06-16 中兴通讯股份有限公司 一种wapi终端与应用服务器传输文件的系统及方法
CN103825724A (zh) * 2014-02-21 2014-05-28 武汉理工大学 一种自动更新和恢复私钥的标识型密码系统及方法
CN105191293A (zh) * 2013-03-15 2015-12-23 高通股份有限公司 广告下载验证
CN105429754A (zh) * 2014-09-23 2016-03-23 西部安全认证中心有限责任公司 国标电子签章的管理方法和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1547344A (zh) * 2003-12-17 2004-11-17 上海市高级人民法院 时间戳在远程鉴章系统中的应用方法
CN101079086A (zh) * 2006-05-26 2007-11-28 大连海盛达科技有限公司 一种实现电子数字签章系统的方法
US20090327733A1 (en) * 2008-06-30 2009-12-31 Raytheon Company Data Security Method and System
CN101610150A (zh) * 2009-07-22 2009-12-23 中兴通讯股份有限公司 第三方数字签名方法和数据传输系统
CN101742508A (zh) * 2009-12-21 2010-06-16 中兴通讯股份有限公司 一种wapi终端与应用服务器传输文件的系统及方法
CN105191293A (zh) * 2013-03-15 2015-12-23 高通股份有限公司 广告下载验证
CN103825724A (zh) * 2014-02-21 2014-05-28 武汉理工大学 一种自动更新和恢复私钥的标识型密码系统及方法
CN105429754A (zh) * 2014-09-23 2016-03-23 西部安全认证中心有限责任公司 国标电子签章的管理方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125781A (zh) * 2019-12-24 2020-05-08 腾讯科技(深圳)有限公司 一种文件签名方法、装置和文件签名验证方法、装置
CN111125781B (zh) * 2019-12-24 2020-12-01 腾讯科技(深圳)有限公司 一种文件签名方法、装置和文件签名验证方法、装置

Also Published As

Publication number Publication date
CN105933124B (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN109067524B (zh) 一种公私钥对生成方法及系统
CN109510708B (zh) 一种基于Intel SGX机制的公钥密码计算方法和系统
EP3318043B1 (en) Mutual authentication of confidential communication
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
CN110391900B (zh) 基于sm2算法的私钥处理方法、终端及密钥中心
CN107124274B (zh) 基于sm2的数字签名方法和装置
CN110943976B (zh) 一种基于口令的用户签名私钥管理方法
GB2623015A (en) Internet-of-vehicles communication security authentication method, system and device based on national cryptographic algorithm
CN112737779B (zh) 一种密码机服务方法、装置、密码机及存储介质
CN110401615B (zh) 一种身份认证方法、装置、设备、系统及可读存储介质
CN109034796B (zh) 基于联盟链的交易监管方法、电子装置及可读存储介质
CN110048849B (zh) 一种多层保护的会话密钥协商方法
CN105447407A (zh) 一种离线数据的加密方法、解密方法及相应装置和系统
US11399019B2 (en) Failure recovery mechanism to re-establish secured communications
CN110971411B (zh) 一种基于sotp技术对私钥乘加密的sm2同态签名方法
CN103825724B (zh) 一种自动更新和恢复私钥的标识型密码系统及方法
CN106972924B (zh) 加密、解密、电子签章、验证签章的方法及装置
JP6167990B2 (ja) 署名検証システム、検証装置、及び署名検証方法
CN104052606A (zh) 数字签名、签名认证装置以及数字签名方法
CN106648591A (zh) 一种基于硬件加密的uefi bios系统安全升级方法
JP2016521937A5 (zh)
CN113890731B (zh) 一种密钥管理方法、装置、电子设备及存储介质
CN104392185A (zh) 在云环境日志取证中实现数据完整性验证的方法
CN114448641A (zh) 一种隐私加密方法、电子设备、存储介质以及芯片
CN104821884A (zh) 基于非对称密钥体系的私钥保护方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20201030