CN110719172A - 区块链系统中的签名方法、签名系统以及相关设备 - Google Patents

区块链系统中的签名方法、签名系统以及相关设备 Download PDF

Info

Publication number
CN110719172A
CN110719172A CN201810766542.8A CN201810766542A CN110719172A CN 110719172 A CN110719172 A CN 110719172A CN 201810766542 A CN201810766542 A CN 201810766542A CN 110719172 A CN110719172 A CN 110719172A
Authority
CN
China
Prior art keywords
signature
result
value
information
block chain
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
CN201810766542.8A
Other languages
English (en)
Other versions
CN110719172B (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810766542.8A priority Critical patent/CN110719172B/zh
Publication of CN110719172A publication Critical patent/CN110719172A/zh
Application granted granted Critical
Publication of CN110719172B publication Critical patent/CN110719172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及一种区块链系统中的签名方法、签名系统以及相关设备,涉及计算机技术领域。本公开的方法包括:接收区块链节点发送的待签名信息和第一盲化口令信息,第一盲化口令信息是区块链节点根据用户输入的口令生成的,待签名信息包括:交易信息;利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果,对第一盲化口令信息注入盐值,得到第一加盐结果;将初步签名结果和第一加盐结果返回至区块链节点,以便区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。本公开能够提升区块链节点中用户签名的便捷性。

Description

区块链系统中的签名方法、签名系统以及相关设备
技术领域
本公开涉及计算机技术领域,特别涉及一种区块链系统中的签名方法、签名系统以及相关设备。
背景技术
区块链是具有链式结构、不可篡改且不可伪造的分布式共享账本。在区块链系统中,数字签名的公私钥构成了用户身份。其中,公钥作为地址是公开的;私钥是证明用户身份的证据,用户可以使用私钥来控制公钥对应的资产。
密钥管理机制通常需要考虑以下几点:1)可获取性,即随时可以取用私钥并完成交易;2)安全性,即防止私钥的丢失和泄露;3)便捷性和低成本,即管理机制简单易行,且能够降低用户的硬件成本以及机制本身的计算通信代价。实际中,众多管理机制也以上述三个性质作为出发点进行设计和部署。
私钥通常是一串很长的哈希值,用户无法直接记忆,通常通过硬件来存储。目前,区块链系统中常用的签名密钥管理机制包括硬件钱包(例如U盾)。硬件钱包通过防篡改硬件设备来存储私钥。
发明内容
发明人发现:采用硬件钱包存储用户私钥的方式,可能出现遗失等情况,并且用户需要随身携带,使用不方便。
本公开所要解决的一个技术问题是:如何提高区块链系统中区块链节点用户签名的便捷性,提升用户体验。
根据本公开的一些实施例,提供的一种区块链系统中的签名方法,包括:接收区块链节点发送的待签名信息和第一盲化口令信息,第一盲化口令信息是区块链节点根据用户输入的口令生成的,待签名信息包括:交易信息;利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果,对第一盲化口令信息注入盐值,得到第一加盐结果;将初步签名结果和第一加盐结果返回至区块链节点,以便区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果包括:根据第二随机数生成第二承诺值;根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成初步签名结果。
在一些实施例中,根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成初步签名结果包括:将第一承诺值、第二承诺值按照预设运算方法的运算结果,与交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据第二随机数、哈希值、加密后的私钥生成初步签名值,初步签名结果包括初步签名值。
在一些实施例中,该方法还包括:接收区块链节点发送的第二盲化口令信息,第二盲化口令信息是区块链节点根据用户输入的口令生成的;选取盐值,对第二盲化口令信息注入盐值,得到第二加盐结果;向区块链节点返回第二加盐结果,以便区块链节点根据第二加盐结果和私钥生成加密后的私钥;接收区块链节点返回的加密后的私钥,并将区块链节点的标识、盐值和加密后的私钥进行对应存储。
根据本公开的另一些实施例,提供的一种区块链系统中的签名方法,包括:区块链节点响应于用户输入的口令生成第一盲化口令信息;区块链节点将第一盲化口令信息和待签名信息发送至签名服务器,待签名信息包括:交易信息;区块链节点接收签名服务器返回的初步签名结果和第一加盐结果,初步签名结果是签名服务器利用存储的区块链节点加密后的私钥对待签名信息进行签名的结果,第一加盐结果是签名服务器对第一盲化口令信息注入盐值的结果;区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;初步签名结果是签名服务器根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成的,其中,第二承诺值是签名服务器根据第二随机数生成的。
在一些实施例中,区块链节点根据初步签名结果和第一加盐结果计算最终签名结果包括:区块链节点对第一加盐结果去盲化,得到口令保护值;区块链节点根据口令保护值和初步签名结果生成最终签名结果。
在一些实施例中,初步签名结果包括:哈希值和初步签名值,哈希值是签名服务器根据第一承诺值、第二承诺值和交易信息进行哈希运算生成的,初步签名值是签名服务器根据第二随机数、哈希值、加密后的私钥生成的;区块链节点根据口令保护值和初步签名结果生成最终签名结果包括:区块链节点根据口令保护值、哈希值、初步签名值生成最终签名结果,最终签名结果为第一承诺值、第二承诺值、哈希值和私钥生成的结果。
在一些实施例中,该方法还包括:区块链节点响应于用户输入的口令生成第二盲化口令信息;区块链节点将第二盲化口令信息发送至签名服务器,以便签名服务器选取盐值对第二盲化口令信息注入盐值,生成第二加盐结果;区块链节点接收签名服务器返回的第二加盐结果;区块链节点根据第二加盐结果和私钥生成加密后的私钥,并发送至签名服务器,以便签名服务器将区块链节点的标识、盐值和加密后的私钥进行对应存储。
在一些实施例中,区块链节点根据第二加盐结果和私钥生成加密后的私钥包括:区块链节点对第二加盐结果去盲化,得到口令保护值;区块链节点根据口令保护值对私钥进行加密生成加密后的私钥。
在一些实施例中,该方法还包括:区块链节点响应于签名服务器故障,向备用签名服务器发送第三盲化口令信息和待签名信息,其中,第三盲化口令信息是区块链节点响应于用户输入的备用口令生成的;区块链节点接收备用签名服务器返回的备用初步签名结果和第三加盐结果,备用初步签名结果是备用签名服务器利用存储的区块链节点备用加密后的私钥对待签名信息进行签名的结果,第三加盐结果是备用签名服务器对第三盲化口令信息注入盐值的结果;区块链节点根据备用初步签名结果和第三加盐结果计算备用最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
根据本公开的又一些实施例,提供的一种签名服务器,包括:信息接收模块,用于接收区块链节点发送的待签名信息和第一盲化口令信息,第一盲化口令信息是区块链节点根据用户输入的口令生成的,待签名信息包括:交易信息;签名模块,用于利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果;加盐模块,用于对第一盲化口令信息注入盐值,得到第一加盐结果;信息发送模块,用于将初步签名结果和第一加盐结果返回至区块链节点,以便区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;签名模块用于根据第二随机数生成第二承诺值,根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成初步签名结果。
在一些实施例中,签名模块用于将第一承诺值、第二承诺值按照预设运算方法的运算结果,与交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据第二随机数、哈希值、加密后的私钥生成初步签名值,初步签名结果包括初步签名值。
在一些实施例中,该签名服务器还包括:存储模块;信息接收模块还用于接收区块链节点发送的第二盲化口令信息,接收区块链节点返回的加密后的私钥;加盐模块还用于选取盐值,对第二盲化口令信息注入盐值,得到第二加盐结果;信息发送模块还用于向区块链节点返回第二加盐结果,以便区块链节点根据第二加盐结果和私钥生成加密后的私钥;存储模块用于将区块链节点的标识、盐值和加密后的私钥进行对应存储。
根据本公开的再一些实施例,提供的一种区块链节点,包括:口令处理模块,用于响应于用户输入的口令生成第一盲化口令信息;信息发送模块,用于将第一盲化口令信息和待签名信息发送至签名服务器,待签名信息包括:交易信息;信息接收模块,用于接收签名服务器返回的初步签名结果和第一加盐结果,签名结果是签名服务器利用存储的区块链节点加密后的私钥对待签名信息进行签名的结果,第一加盐结果是签名服务器对第一盲化口令信息注入盐值的结果;签名模块,用于根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;初步签名结果是签名服务器根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成的,其中,第二承诺值是签名服务器根据第二随机数生成的。
在一些实施例中,签名模块用于对第一加盐结果去盲化,得到口令保护值;根据口令保护值和初步签名结果生成最终签名结果。
在一些实施例中,初步签名结果包括:哈希值和初步签名值,哈希值是签名服务器根据第一承诺值、第二承诺值和交易信息进行哈希运算生成的,初步签名值是签名服务器根据第二随机数、哈希值、加密后的私钥生成的;签名模块用于根据口令保护值、哈希值、初步签名值生成最终签名结果,最终签名结果为第一承诺值、第二承诺值、哈希值和私钥生成的结果。
在一些实施例中,该区块链节点还包括:加密模块;口令处理模块还用于响应于用户输入的口令生成第二盲化口令信息;信息发送模块还用于将第二盲化口令信息发送至签名服务器,以便签名服务器选取盐值对第二盲化口令信息注入盐值,生成第二加盐结果,将加密后的私钥发送至签名服务器,以便签名服务器将区块链节点的标识、盐值和加密后的私钥进行对应存储。信息接收模块还用于接收签名服务器返回的第二加盐结果;加密模块用于根据第二加盐结果和私钥生成加密后的私钥。
在一些实施例中,加密模块对第二加盐结果去盲化,得到口令保护值;根据口令保护值对私钥进行加密生成加密后的私钥。
在一些实施例中,口令处理模块还用于响应于签名服务器故障,接收用户输入的备用口令生成第三盲化口令信息;信息发送模块还用于向备用签名服务器发送第三盲化口令信息和待签名信息;信息接收模块还用于接收备用签名服务器返回的备用初步签名结果和第三加盐结果,备用初步签名结果是备用签名服务器利用存储的区块链节点备用加密后的私钥对待签名信息进行签名的结果,第三加盐结果是备用签名服务器对第三盲化口令信息注入盐值的结果;签名模块还用于根据备用初步签名结果和第三加盐结果计算备用最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
根据本公开的又一些实施例,提供的一种区块链系统中的签名装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在存储器设备中的指令,执行如前述任意实施例的区块链系统中的签名方法。
根据本公开的再一些实施例,提供的一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例的区块链系统中的签名方法。
根据本公开的又一些实施例,提供的一种签名系统,包括:前述任意实施例的签名服务器和区块链节点。
本公开中可以由签名服务器对区块链节点用户的私钥进行托管,用户不需要自己存储私钥,只需要输入简单的口令即可完成对交易信息的签名,提升区块链节点中用户签名的便捷性。进一步,签名服务器存储用户加密后的私钥,私钥对于签名服务器不可知,降低了签名服务器恶意使用用户私钥或者签名服务器被攻击导致用户私钥泄露的风险。进一步,区块链节点与签名服务器进行信息交互的过程,采用盲化、加盐等手段对交互信息进行处理,区块链节点和签名服务器对彼此交互的信息均不可知,提高了签名过程的安全性。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的区块链系统中的签名方法的流程示意图。
图2示出本公开的另一些实施例的区块链系统中的签名方法的流程示意图。
图3示出本公开的一些实施例的签名服务器的结构示意图。
图4示出本公开的另一些实施例的区块链节点的结构示意图。
图5示出本公开的一些实施例的区块链系统中的签名装置的结构示意图。
图6示出本公开的另一些实施例的区块链系统中的签名装置的结构示意图。
图7示出本公开的一些实施例的签名系统的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供一种区块链系统中的签名方法,下面结合图1进行描述。
图1为本公开区块链系统中的签名方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S110。
本公开的签名方法可以基于现有的Schnorr签名算法、EdDSA签名算法、Ed25519签名算法等算法进行改进获得。下面以Schnorr签名算法、EdDSA签名算法为例,对本公开的签名算法进行解释。
步骤S102,区块链节点响应于用户输入的口令生成第一盲化口令信息。
用户输入的口令可以是很简单的数字组合,例如,与银行卡密码类似的六位数字等。用户也可以从口令字典空间中随机选取口令。由于用户的口令非常简单,用户可以不借助任何硬件而直接进行记忆,降低了硬件破坏或丢失导致口令丢失的风险性,可操作性强。区块链节点对用户输入的口令进行盲化处理生成第一盲化口令,降低了传输过程中和后续签名服务器获取用户口令的风险。
步骤S102针对改进Schnorr签名算法的一些应用例如下。
区块链节点用户可以从口令字典空间D中选取口令,经过区块链节点用户终端根据预设编码方式将口令映射到
Figure BDA0001729154930000081
中,记为
Figure BDA0001729154930000082
随机选取盲化因子
Figure BDA0001729154930000083
生成a=gπ·tmod p,a可以作为第一盲化口令信息。其中,G是阶数为大素数q的乘法循环群,生成元为g=h(p-1)/qmod p,其中,p是大素数,满足q|(p-1),而h是满足1<h<p的随机正整数。
Figure BDA0001729154930000084
是安全的哈希函数,其中
Figure BDA0001729154930000085
是模q的正整数。区块链系统中的所有用户和服务器可以共享参数(p,q,g)和哈希函数H。
步骤S102针对改进EdDSA签名算法的一些应用例如下。
区块链节点用户可以从口令字典空间D中选取口令π,区块链节点用户终端随机选取盲化因子t,生成a=(πt)B,a可以作为第一盲化口令信息。其中,B是椭圆曲线基点,a也是椭圆曲线上的点。
步骤S104,区块链节点将第一盲化口令信息和待签名信息发送至签名服务器。相应的,签名服务器接收区块链节点发送的待签名信息和第一盲化口令信息。
待签名信息包括:交易信息。签名服务器可以是网关设备或其他安全性较高、具有较强防御能力的服务器,通常情况下服务器相对于个人终端具备更强的防攻击性,利用服务器进行密钥托管比用户个人将密钥存储于终端,更安全。
步骤S106,签名服务器利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果,对第一盲化口令信息注入盐值,得到第一加盐结果。
签名服务器存储的是区块链节点加密后的私钥,而不是直接存储用户私钥,进一步提高了安全性。签名服务器可以根据区块链节点的标识查找对应的加密后的私钥。
签名服务器可以随机选取盐值(Salt),对第一盲化口令信息注入盐值,得到第一加盐结果,但是对于同一区块链节点用户盐值是不变的。签名服务器可以将区块链节点标识、加密的私钥和盐值进行对应存储。第一加盐结果一方面可以提高信息传输的安全性,另一方面,第一加盐结果与私钥的加密方法相匹配,用于后续区块链节点对初步签名结果进一步处理。用盐值加盐是密码学中的一种加密手段。
在一些实施例中,签名服务器根据随机数生成承诺值;根据承诺值、交易信息和加密后的私钥生成初步签名结果。进一步,签名服务器将承诺值与交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据随机数、哈希值、加密后的私钥按照预设运算方法生成初步签名值,并将哈希值和初步签名值作为初步签名结果。
为进一步提高签名过程的安全性,在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的。签名服务器根据第二随机数生成第二承诺值;根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成初步签名结果。
进一步,签名服务器将第一承诺值、第二承诺值按照第一预设运算方法的运算结果,与交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据第二随机数、哈希值、加密后的私钥按照第二预设运算方法生成初步签名值,初步签名结果包括初步签名值。
上述方法中在初步签名过程引入了区块链节点和签名服务器双方随机选取的随机数生成的承诺值,进一步,提高了初步签名过程的安全性和不可破解性。
步骤S106针对改进Schnorr签名算法的一些应用例如下。
区块链节点用户从
Figure BDA0001729154930000101
中随机选择第一随机数k1,计算第一承诺值
Figure BDA0001729154930000102
签名服务器收到第一盲化口令信息a,第一承诺值r1和待签名信息m后,从内部存储中找到该用户对应的密钥信息
Figure BDA0001729154930000103
其中,U表示区块链节点的标识、z表示盐值,
Figure BDA0001729154930000104
表示加密后的私钥。签名服务器可以进行以下处理。
1)选取第二随机数
Figure BDA0001729154930000105
计算第二承诺值
Figure BDA0001729154930000106
2)计算哈希值e=H(r1·r2||m),其中||表示左右两个数据的连接。
3)计算初步签名值初步签名结果为
Figure BDA0001729154930000108
包括初步签名值和哈希值。
4)利用盐值z,计算第一加盐结果b=azmod p。
步骤S106针对改进EdDSA签名算法的一些应用例如下。
区块链节点用户从随机选择第一随机数k1,k1为n比特的二进制字符串,计算第一承诺值r1=k1B。
签名服务器收到第一盲化口令信息a,第一承诺值r1和待签名信息m后,从内部存储中找到该用户对应的秘密信息
Figure BDA0001729154930000109
其中,U表示区块链节点的标识、z表示盐值,
Figure BDA00017291549300001010
表示加密后的私钥。签名服务器可以进行以下处理。
1)选取第二随机数k2,计算第二承诺值r2=k2B;
2)计算哈希值e=H(r1+r2||y||m),其中||表示左右两个数据的连接。
3)计算初步签名值
Figure BDA00017291549300001011
初步签名结果为
Figure BDA00017291549300001012
包括初步签名值和第二承诺值,不同于Schnorr签名算法。其中,l是椭圆曲线E中曲线点数量的因子,也是基点B的阶数,即lB=0。
4)利用盐值z,计算第一加盐结果b=az。
步骤S108,签名服务器将初步签名结果和第一加盐结果返回至区块链节点。相应的,区块链节点接收签名服务器返回的初步签名结果和第一加盐结果。
步骤S110,区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
在一些实施例中,区块链节点对第一加盐结果去盲化,得到口令保护值,根据口令保护值和初步签名结果生成最终签名结果。
进一步,区块链节点根据口令保护值、哈希值、初步签名值生成最终签名结果,最终签名结果为第一承诺值、第二承诺值、哈希值和私钥生成的结果。区块链节点通过第一加盐结果将利用加密的私钥生成的初步签名结果,转换成了利用私钥生成的最终签名结果。进一步,验证节点即可利用公钥对最终签名结果进行验签。
步骤S110针对改进Schnorr签名算法的一些应用例如下。
区块链节点接收到签名服务器发送的初步签名结果
Figure BDA0001729154930000111
和第一加盐结果b后,执行以下步骤。
1)对b进行去盲化操作,计算得到口令保护值d=b1/t=gπ·zmod p。
2)使用口令保护值d对签名结果
Figure BDA0001729154930000112
中的
Figure BDA0001729154930000113
进行处理,得到
Figure BDA0001729154930000114
Figure BDA0001729154930000115
其中,x为私钥,k=k1+k2。由于是由私钥x和口令保护值生成的,
Figure BDA0001729154930000117
因此,区块链节点可以利用口令保护值将初步签名结果
Figure BDA0001729154930000118
转换为最终签名结果(s,e),最终签名结果是第一承诺值k1、第二承诺值k2、哈希值e和私钥x生成的结果。
区块链节点将最终签名结果(s,e)发送至验证节点,验证节点根据最终签名结果(s,e)和公钥y验证是否满足e=H(gsye||m),来判断签名是否有效。验证节点可以是区块链系统中一个或多个节点。
步骤S110针对改进EdDSA签名算法的一些应用例如下。
1)对b进行去盲化操作,计算得到口令保护值d=(πz)B,将d编码成n比特二进制值。
2)对两个曲线点r1和r2进行计算,得到r=r1+r2
3)使用口令保护值d对签名结果
Figure BDA0001729154930000121
中的进行处理,
Figure BDA0001729154930000123
Figure DA00017291549336453
Figure BDA0001729154930000124
其中,x为私钥,k=k1+k2。由于
Figure BDA0001729154930000125
是由私钥x和口令保护值生成的,
Figure BDA0001729154930000126
因此,区块链节点可以利用口令保护值将初步签名结果
Figure BDA0001729154930000127
转换为最终签名结果(s,r),最终签名结果是第一承诺值k1、第二承诺值k2、哈希值e和私钥x生成的结果。
区块链节点将最终签名结果(s,r)发送至验证节点,验证节点根据最终签名结果(s,r)和公钥y验证是否满足2csB=2cr+2cey,来判断签名是否有效。其中,其中2c是椭圆曲线E中曲线点数量的余因子,即曲线点数量等于l2c,通常c的取值为2或3。
上述实施例的方法中由签名服务器对区块链节点用户的私钥进行托管,用户不需要自己存储私钥,只需要输入简单的口令,在信道中通过两轮消息交互,即可完成对交易信息的签名,提升区块链节点中用户签名的便捷性。进一步,口令和签名密钥以非明文的方式存储在签名服务器中,即使出现服务器泄露的情况,攻击者只能得到与两者混淆后的信息。签名服务器本身没有存储用户的签名密钥和口令的明文,无法冒充用户随意生成签名。由于签名服务器为每个用户选取的盐值不同,即使攻击者暴力穷举一遍口令字典空间,也只能得到一位用户的口令和签名密钥。这种方式很大程度上增加了攻击者的攻击难度,避免众多用户私密信息大规模泄露的情形发生。因此,上述实施例的方法在提高区块链节点签名的便捷性的同时,能够提高签名过程的安全性。
下面结合图2描述本公开中生成加密后的私钥的方法的一些实施例。
图2为本公开区块链系统中的签名方法另一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S212。
步骤S202,区块链节点响应于用户输入的口令生成第二盲化口令信息。
用户可以向签名服务器注册密钥托管账户,通过区块链节点向签名服务器发送注册请求。签名服务器向区块链节点返回口令输入指示,区块链节点向用户提示输入口令。
步骤S202与步骤S102的方法类似。步骤S202针对改进Schnorr签名算法的一些应用例如下。
区块链节点用户可以从口令字典空间D中选取口令,经过区块链节点用户终端根据预设编码方式将口令映射到
Figure BDA0001729154930000131
中,记为随机选取盲化因子生成第二盲化口令信息a′=gπ·t′mod p。
步骤S202针对改进EdDSA签名算法的一些应用例如下。
区块链节点用户可以从口令字典空间D中选取口令π,区块链节点用户终端随机选取盲化因子t′,生成第二盲化口令信息a′=(πt′)B。
步骤S204,区块链节点将第二盲化口令信息发送至签名服务器。相应的,签名服务器接收区块链节点发送的第二盲化口令信息。
步骤S206,签名服务器选取盐值,对第二盲化口令信息注入盐值,得到第二加盐结果。
签名服务器随机选取盐值,与区块链节点进行关联,后续签名过程也是应用同样的盐值。
步骤S206与步骤S106的方法类似。步骤S206针对改进Schnorr签名算法的一些应用例如下。
签名服务器利用盐值z,计算第二加盐结果b′=a′zmod p
步骤S206针对改进EdDSA签名算法的一些应用例如下。
签名服务器利用盐值z,计算第二加盐结果b′=a′z。
步骤S208,签名服务器向区块链节点返回第二加盐结果。相应的,区块链节点接收签名服务器发送的第二加盐结果。
步骤S210,区块链节点根据第二加盐结果和私钥生成加密后的私钥。
在一些实施例中,区块链节点对第二加盐结果去盲化,得到口令保护值,根据口令保护值对私钥进行加密生成加密后的私钥。
步骤S210针对改进Schnorr签名算法的一些应用例如下。
区块链节点接收到第二加盐结果b′,使用盲化因子t’对b′进行去盲化操作,得到口令保护值d=b’1/t′mod p=gπ·zmod p。使用d对签名私钥x进行口令保护即加密处理,得到 mod q,如果
Figure BDA0001729154930000142
或者d=1,则从步骤S202开始重新执行协议,否则完成加密后的密钥
Figure BDA0001729154930000143
的生成。区块链节点生成的公私钥对记为(x,y=gxmod p),其中
Figure BDA0001729154930000144
步骤S210针对改进EdDSA签名算法的一些应用例如下。
区块链节点接收到第二加盐结果b′,区块链节点接收到第二加盐结果b′进行去盲化操作,得到d=(1/t′)b′=(πz)B,其中,d是椭圆曲线上的点。将d编码成n比特的值,使用d对签名私钥x进行口令保护即加密处理,得到
Figure BDA0001729154930000145
区块链节点随机生成的基础私钥x0,进一步生成私钥x=H0,…,n-1(x0),也就是取H哈希函数输出的前面n个比特作为x值,其中H的输出为2n比特。令y=xB作为签名者的公钥。
步骤S212,区块链节点将加密后的私钥发送至签名服务器,签名服务器接收区块链节点返回的加密后的私钥,并将区块链节点的标识、盐值和加密后的私钥进行对应存储。
上述实施例的方法中,区块链节点用户输入简单的口令,即可完成在签名服务器处对加密的私钥进行存储,提升密钥托管的便捷性。此外,区块链节点与签名服务器进行信息交互的过程,采用盲化、加盐等手段对交互信息进行处理,区块链节点和签名服务器对彼此交互的信息均不可知,提高了签名过程的安全性。
在一些实施例中,区块链节点可以选取多个签名服务器进行密钥托管,多个签名服务器可以存储同一组口令或不同口令对应的私钥,每个签名服务器由于为区块链节点选取的盐值不同,存储的加密后的私钥也不同,都可以独立地协助用户完成签名的操作。同时,由于存储值之间的独立性和差异性,因此多个签名服务器泄露不会提升攻击者的暴力穷举速度。此外,由于区块系统中用户私钥的不可替代性并且找回难度极高,如果用户丢失私钥则无法再进行区块链中的相关操作。采用多个签名服务器,用户可以使用不同的简单口令进行签名,避免了一个口令丢失导致的无法操作的问题。
在一些实施例中,区块链节点响应于签名服务器故障,向备用签名服务器发送第三盲化口令信息和待签名信息,之后可以参考步骤S102~S110的过程执行后续的签名过程。在备用签名服务器生成加密后的私钥的过程可以参考步骤S202~S212。
本公开提供一种签名服务器,下面结合图3进行描述。
图3为本公开签名服务器的一些实施例的结构图。如图3所示,该实施例的签名服务器30包括:信息接收模块302,签名模块304,加盐模块306,信息发送模块308。
信息接收模块302,用于接收区块链节点发送的待签名信息和第一盲化口令信息。
第一盲化口令信息是区块链节点根据用户输入的口令生成的,待签名信息包括:交易信息。
签名模块304,用于利用存储的区块链节点加密后的私钥对待签名信息进行签名,得到初步签名结果。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;签名模块304用于根据第二随机数生成第二承诺值,根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成初步签名结果。
进一步,签名模块304用于将第一承诺值、第二承诺值按照预设运算方法的运算结果,与交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据第二随机数、哈希值、加密后的私钥生成初步签名值,初步签名结果包括初步签名值。
加盐模块306,用于对第一盲化口令信息注入盐值,得到第一加盐结果。
信息发送模块308,用于将初步签名结果和第一加盐结果返回至区块链节点,以便区块链节点根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。
在一些实施例中,签名服务器30还可以包括:存储模块310。
信息接收模块302还用于接收区块链节点发送的第二盲化口令信息,接收区块链节点返回的加密后的私钥。
加盐模块304还用于选取盐值,对第二盲化口令信息注入盐值,得到第二加盐结果。
信息发送模块308还用于向区块链节点返回第二加盐结果,以便区块链节点根据第二加盐结果和私钥生成加密后的私钥。
存储模块310用于将区块链节点的标识、盐值和加密后的私钥进行对应存储。
本公开还提供一种区块链节点,下面结合图4进行描述。
图4为本公开区块链节点的一些实施例的结构图。如图4所示,该实施例的区块链节点40包括:口令处理模块402,信息发送模块404,信息接收模块406,签名模块408。
口令处理模块402,用于响应于用户输入的口令生成第一盲化口令信息;
信息发送模块404,用于将第一盲化口令信息和待签名信息发送至签名服务器。
待签名信息包括:交易信息;
信息接收模块406,用于接收签名服务器返回的初步签名结果和第一加盐结果。
初步签名结果是签名服务器利用存储的区块链节点加密后的私钥对待签名信息进行签名的结果,第一加盐结果是签名服务器对第一盲化口令信息注入盐值的结果。
在一些实施例中,待签名信息还包括:第一承诺值,第一承诺值是区块链节点根据第一随机数生成的;初步签名结果是签名服务器根据第一承诺值、第二承诺值、交易信息和加密后的私钥生成的,其中,第二承诺值是签名服务器根据第二随机数生成的。
签名模块408,用于根据初步签名结果和第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
在一些实施例中,签名模块408用于对第一加盐结果去盲化,得到口令保护值;根据口令保护值和初步签名结果生成最终签名结果。
进一步,初步签名结果包括:哈希值和初步签名值,哈希值是签名服务器根据第一承诺值、第二承诺值和交易信息进行哈希运算生成的,初步签名值是签名服务器根据第二随机数、哈希值、加密后的私钥生成的;签名模块408用于根据口令保护值、哈希值、初步签名值生成最终签名结果,最终签名结果为第一承诺值、第二承诺值、哈希值和私钥生成的结果。
在一些实施例中,区块链节点40还可以包括:加密模块410。
口令处理模块402还用于响应于用户输入的口令生成第二盲化口令信息。
信息发送模块404还用于将第二盲化口令信息发送至签名服务器,以便签名服务器选取盐值对第二盲化口令信息注入盐值,生成第二加盐结果,将加密后的私钥发送至签名服务器,以便签名服务器将区块链节点的标识、盐值和加密后的私钥进行对应存储。
信息接收模块406还用于接收签名服务器返回的第二加盐结果.
加密模块410用于根据第二加盐结果和私钥生成加密后的私钥。
在一些实施例中,加密模块410用于对第二加盐结果去盲化,得到口令保护值;根据口令保护值对私钥进行加密生成加密后的私钥。
在一些实施例中,口令处理模块402还用于响应于签名服务器故障,接收用户输入的备用口令生成第三盲化口令信息。
信息发送模块404还用于向备用签名服务器发送第三盲化口令信息和待签名信息。
信息接收模块406还用于接收备用签名服务器返回的备用初步签名结果和第三加盐结果,备用初步签名结果是备用签名服务器利用存储的区块链节点备用加密后的私钥对待签名信息进行签名的结果,第三加盐结果是备用签名服务器对第三盲化口令信息注入盐值的结果。
签名模块408还用于根据备用初步签名结果和第三加盐结果计算备用最终签名结果,并发送至区块链系统中的验证节点,以便验证节点进行验签。
本公开的实施例中的区块链系统中的签名装置(包括签名服务器和区块链节点)可各由各种计算设备或计算机系统来实现,下面结合图5以及图6进行描述。
图5为本公开区块链系统中的签名装置的一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行本公开中任意一些实施例中的区块链系统中的签名方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图6为本公开区块链系统中的签名装置的另一些实施例的结构图。如图6所示,该实施例的装置60包括:存储器610以及处理器620,分别与存储器510以及处理器520类似。还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
图7为本公开签名系统的一些实施例的结构图。如图7所示,该实施例的系统7包括:前述任意实施例的签名服务器30和区块链节点40。或者签名系统可以包括区块链系统中的签名装置50/60。该签名系统可以设置于区块链系统中。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (25)

1.一种区块链系统中的签名方法,包括:
接收区块链节点发送的待签名信息和第一盲化口令信息,所述第一盲化口令信息是所述区块链节点根据用户输入的口令生成的,所述待签名信息包括:交易信息;
利用存储的所述区块链节点加密后的私钥对所述待签名信息进行签名,得到初步签名结果,对所述第一盲化口令信息注入盐值,得到第一加盐结果;
将所述初步签名结果和第一加盐结果返回至所述区块链节点,以便所述区块链节点根据初步签名结果和所述第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。
2.根据权利要求1所述的签名方法,其中,
所述待签名信息还包括:第一承诺值,所述第一承诺值是所述区块链节点根据第一随机数生成的;
所述利用存储的所述区块链节点加密后的私钥对所述待签名信息进行签名,得到初步签名结果包括:
根据第二随机数生成第二承诺值;
根据所述第一承诺值、第二承诺值、所述交易信息和所述加密后的私钥生成初步签名结果。
3.根据权利要求2所述的签名方法,其中,
所述根据所述第一承诺值、第二承诺值、所述交易信息和所述加密后的私钥生成初步签名结果包括:
将所述第一承诺值、第二承诺值按照预设运算方法的运算结果,与所述交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;
根据所述第二随机数、所述哈希值、所述加密后的私钥生成初步签名值,所述初步签名结果包括所述初步签名值。
4.根据权利要求1所述的签名方法,还包括:
接收所述区块链节点发送的第二盲化口令信息,所述第二盲化口令信息是所述区块链节点根据用户输入的口令生成的;
选取所述盐值,对所述第二盲化口令信息注入盐值,得到第二加盐结果;
向所述区块链节点返回所述第二加盐结果,以便所述区块链节点根据第二加盐结果和私钥生成所述加密后的私钥;
接收所述区块链节点返回的所述加密后的私钥,并将所述区块链节点的标识、所述盐值和所述加密后的私钥进行对应存储。
5.一种区块链系统中的签名方法,包括:
区块链节点响应于用户输入的口令生成第一盲化口令信息;
所述区块链节点将第一盲化口令信息和待签名信息发送至签名服务器,所述待签名信息包括:交易信息;
所述区块链节点接收所述签名服务器返回的初步签名结果和第一加盐结果,所述初步签名结果是所述签名服务器利用存储的所述区块链节点加密后的私钥对待签名信息进行签名的结果,所述第一加盐结果是所述签名服务器对所述第一盲化口令信息注入盐值的结果;
所述区块链节点根据初步签名结果和所述第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便所述验证节点进行验签。
6.根据权利要求5所述的签名方法,其中,
所述待签名信息还包括:第一承诺值,所述第一承诺值是所述区块链节点根据第一随机数生成的;
所述初步签名结果是所述签名服务器根据所述第一承诺值、第二承诺值、所述交易信息和所述加密后的私钥生成的,其中,所述第二承诺值是所述签名服务器根据第二随机数生成的。
7.根据权利要求5所述的签名方法,其中,
所述区块链节点根据初步签名结果和所述第一加盐结果计算最终签名结果包括:
所述区块链节点对所述第一加盐结果去盲化,得到口令保护值;
所述区块链节点根据所述口令保护值和所述初步签名结果生成最终签名结果。
8.根据权利要求7所述的签名方法,其中,
所述初步签名结果包括:哈希值和初步签名值,所述哈希值是所述签名服务器根据所述第一承诺值、第二承诺值和所述交易信息进行哈希运算生成的,所述初步签名值是所述签名服务器根据第二随机数、所述哈希值、所述加密后的私钥生成的;
所述区块链节点根据所述口令保护值和所述初步签名结果生成最终签名结果包括:
所述区块链节点根据所述口令保护值、所述哈希值、所述初步签名值生成最终签名结果,所述最终签名结果为所述第一承诺值、所述第二承诺值、所述哈希值和所述私钥生成的结果。
9.根据权利要求5所述的签名方法,还包括:
所述区块链节点响应于用户输入的口令生成第二盲化口令信息;
所述区块链节点将第二盲化口令信息发送至所述签名服务器,以便所述签名服务器选取盐值对所述第二盲化口令信息注入盐值,生成第二加盐结果;
所述区块链节点接收所述签名服务器返回的所述第二加盐结果;
所述区块链节点根据第二加盐结果和私钥生成所述加密后的私钥,并发送至所述签名服务器,以便所述签名服务器将所述区块链节点的标识、所述盐值和所述加密后的私钥进行对应存储。
10.根据权利要求9所述的签名方法,其中,
所述区块链节点根据第二加盐结果和私钥生成所述加密后的私钥包括:
所述区块链节点对所述第二加盐结果去盲化,得到所述口令保护值;
所述区块链节点根据所述口令保护值对所述私钥进行加密生成加密后的私钥。
11.根据权利要求5所述的签名方法,还包括:
所述区块链节点响应于所述签名服务器故障,向备用签名服务器发送第三盲化口令信息和所述待签名信息,其中,所述第三盲化口令信息是所述区块链节点响应于用户输入的备用口令生成的;
所述区块链节点接收所述备用签名服务器返回的备用初步签名结果和第三加盐结果,所述备用初步签名结果是所述备用签名服务器利用存储的所述区块链节点备用加密后的私钥对待签名信息进行签名的结果,所述第三加盐结果是所述备用签名服务器对所述第三盲化口令信息注入盐值的结果;
所述区块链节点根据备用初步签名结果和所述第三加盐结果计算备用最终签名结果,并发送至区块链系统中的验证节点,以便所述验证节点进行验签。
12.一种签名服务器,包括:
信息接收模块,用于接收区块链节点发送的待签名信息和第一盲化口令信息,所述第一盲化口令信息是所述区块链节点根据用户输入的口令生成的,所述待签名信息包括:交易信息;
签名模块,用于利用存储的所述区块链节点加密后的私钥对所述待签名信息进行签名,得到初步签名结果;
加盐模块,用于对所述第一盲化口令信息注入盐值,得到第一加盐结果;
信息发送模块,用于将所述初步签名结果和第一加盐结果返回至所述区块链节点,以便所述区块链节点根据初步签名结果和所述第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点进行验签。
13.根据权利要求12所述的签名服务器,其中,
所述待签名信息还包括:第一承诺值,所述第一承诺值是所述区块链节点根据第一随机数生成的;
所述签名模块用于根据第二随机数生成第二承诺值,根据所述第一承诺值、第二承诺值、所述交易信息和所述加密后的私钥生成初步签名结果。
14.根据权利要求13所述的签名服务器,其中,
所述签名模块用于将所述第一承诺值、第二承诺值按照预设运算方法的运算结果,与所述交易信息进行连接,并对连接结果进行哈希运算,得到哈希值;根据所述第二随机数、所述哈希值、所述加密后的私钥生成初步签名值,所述初步签名结果包括所述初步签名值。
15.根据权利要求13所述的签名服务器,还包括:存储模块;
所述信息接收模块还用于接收所述区块链节点发送的第二盲化口令信息,接收所述区块链节点返回的所述加密后的私钥;
所述加盐模块还用于选取所述盐值,对所述第二盲化口令信息注入盐值,得到第二加盐结果;
所述信息发送模块还用于向所述区块链节点返回所述第二加盐结果,以便所述区块链节点根据第二加盐结果和私钥生成所述加密后的私钥;
所述存储模块用于将所述区块链节点的标识、所述盐值和所述加密后的私钥进行对应存储。
16.一种区块链节点,包括:
口令处理模块,用于响应于用户输入的口令生成第一盲化口令信息;
信息发送模块,用于将第一盲化口令信息和待签名信息发送至签名服务器,所述待签名信息包括:交易信息;
信息接收模块,用于接收所述签名服务器返回的初步签名结果和第一加盐结果,所述初步签名结果是所述签名服务器利用存储的所述区块链节点加密后的私钥对待签名信息进行签名的结果,所述第一加盐结果是所述签名服务器对所述第一盲化口令信息注入盐值的结果;
签名模块,用于根据初步签名结果和所述第一加盐结果计算最终签名结果,并发送至区块链系统中的验证节点,以便所述验证节点进行验签。
17.根据权利要求16所述的区块链节点,其中,
所述待签名信息还包括:第一承诺值,所述第一承诺值是所述区块链节点根据第一随机数生成的;
所述初步签名结果是所述签名服务器根据所述第一承诺值、第二承诺值、所述交易信息和所述加密后的私钥生成的,其中,所述第二承诺值是所述签名服务器根据第二随机数生成的。
18.根据权利要求16所述的区块链节点,其中,
所述签名模块用于对所述第一加盐结果去盲化,得到口令保护值;根据所述口令保护值和所述初步签名结果生成最终签名结果。
19.根据权利要求18所述的区块链节点,其中,
所述初步签名结果包括:哈希值和初步签名值,所述哈希值是所述签名服务器根据所述第一承诺值、第二承诺值和所述交易信息进行哈希运算生成的,所述初步签名值是所述签名服务器根据第二随机数、所述哈希值、所述加密后的私钥生成的;
所述签名模块用于根据所述口令保护值、所述哈希值、所述初步签名值生成最终签名结果,所述最终签名结果为所述第一承诺值、所述第二承诺值、所述哈希值和所述私钥生成的结果。
20.根据权利要求16所述的区块链节点,还包括:加密模块;
所述口令处理模块还用于响应于用户输入的口令生成第二盲化口令信息;
所述信息发送模块还用于将第二盲化口令信息发送至所述签名服务器,以便所述签名服务器选取盐值对所述第二盲化口令信息注入盐值,生成第二加盐结果,将加密后的私钥发送至所述签名服务器,以便所述签名服务器将所述区块链节点的标识、所述盐值和所述加密后的私钥进行对应存储;
所述信息接收模块还用于接收所述签名服务器返回的所述第二加盐结果;
所述加密模块用于根据第二加盐结果和私钥生成所述加密后的私钥。
21.根据权利要求20所述的区块链节点,其中,
所述加密模块用于对所述第二加盐结果去盲化,得到所述口令保护值;根据所述口令保护值对所述私钥进行加密生成加密后的私钥。
22.根据权利要求16所述的区块链节点,其中,
所述口令处理模块还用于响应于所述签名服务器故障,接收用户输入的备用口令生成第三盲化口令信息;
所述信息发送模块还用于向备用签名服务器发送第三盲化口令信息和所述待签名信息;
所述信息接收模块还用于接收所述备用签名服务器返回的备用初步签名结果和第三加盐结果,所述备用初步签名结果是所述备用签名服务器利用存储的所述区块链节点备用加密后的私钥对待签名信息进行签名的结果,所述第三加盐结果是所述备用签名服务器对所述第三盲化口令信息注入盐值的结果;
所述签名模块还用于根据备用初步签名结果和所述第三加盐结果计算备用最终签名结果,并发送至区块链系统中的验证节点,以便所述验证节点进行验签。
23.一种区块链系统中的签名装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器设备中的指令,执行如权利要求1-11任一项所述的区块链系统中的签名方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-11任一项所述方法的步骤。
25.一种签名系统,包括:权利要求12-15任一项所述的签名服务器,以及权利要求16-22任一项所述的区块链节点。
CN201810766542.8A 2018-07-13 2018-07-13 区块链系统中的签名方法、签名系统以及相关设备 Active CN110719172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810766542.8A CN110719172B (zh) 2018-07-13 2018-07-13 区块链系统中的签名方法、签名系统以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810766542.8A CN110719172B (zh) 2018-07-13 2018-07-13 区块链系统中的签名方法、签名系统以及相关设备

Publications (2)

Publication Number Publication Date
CN110719172A true CN110719172A (zh) 2020-01-21
CN110719172B CN110719172B (zh) 2021-08-10

Family

ID=69208413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810766542.8A Active CN110719172B (zh) 2018-07-13 2018-07-13 区块链系统中的签名方法、签名系统以及相关设备

Country Status (1)

Country Link
CN (1) CN110719172B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111311412A (zh) * 2020-02-24 2020-06-19 腾讯科技(深圳)有限公司 去中心化的交易确认方法、装置及服务器
CN111600703A (zh) * 2020-05-12 2020-08-28 北京海益同展信息科技有限公司 基于sm2的签名方法、系统、电子设备及存储介质
US20210334809A1 (en) * 2019-03-22 2021-10-28 Beijing Wodong Tianjun Information Technology Co., Ltd. Transaction method and apparatus based on blind signature
CN115242540A (zh) * 2022-08-03 2022-10-25 平安银行股份有限公司 数据处理方法与系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335754A (zh) * 2008-05-14 2008-12-31 北京深思洛克数据保护中心 一种利用远程服务器进行信息验证的方法
CN101777158A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统
CN101777984A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统
CN104618120A (zh) * 2015-03-04 2015-05-13 青岛微智慧信息有限公司 一种移动终端密钥托管数字签名方法
CN106789047A (zh) * 2017-03-03 2017-05-31 钱德君 一种区块链身份系统
CN107438002A (zh) * 2016-05-27 2017-12-05 索尼公司 基于区块链的系统以及系统中的电子设备和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101335754A (zh) * 2008-05-14 2008-12-31 北京深思洛克数据保护中心 一种利用远程服务器进行信息验证的方法
CN101777158A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统
CN101777984A (zh) * 2010-01-13 2010-07-14 北京飞天诚信科技有限公司 一种安全交易的方法和系统
CN104618120A (zh) * 2015-03-04 2015-05-13 青岛微智慧信息有限公司 一种移动终端密钥托管数字签名方法
CN107438002A (zh) * 2016-05-27 2017-12-05 索尼公司 基于区块链的系统以及系统中的电子设备和方法
CN106789047A (zh) * 2017-03-03 2017-05-31 钱德君 一种区块链身份系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210334809A1 (en) * 2019-03-22 2021-10-28 Beijing Wodong Tianjun Information Technology Co., Ltd. Transaction method and apparatus based on blind signature
CN111311412A (zh) * 2020-02-24 2020-06-19 腾讯科技(深圳)有限公司 去中心化的交易确认方法、装置及服务器
CN111600703A (zh) * 2020-05-12 2020-08-28 北京海益同展信息科技有限公司 基于sm2的签名方法、系统、电子设备及存储介质
CN115242540A (zh) * 2022-08-03 2022-10-25 平安银行股份有限公司 数据处理方法与系统
CN115242540B (zh) * 2022-08-03 2023-09-26 平安银行股份有限公司 数据处理方法与系统

Also Published As

Publication number Publication date
CN110719172B (zh) 2021-08-10

Similar Documents

Publication Publication Date Title
CN111639361B (zh) 一种区块链密钥管理方法、多人共同签名方法及电子装置
CN108292402B (zh) 用于信息的安全交换的公共秘密的确定和层级确定性密钥
CN110719172B (zh) 区块链系统中的签名方法、签名系统以及相关设备
US8713329B2 (en) Authenticated secret sharing
CN107302438B (zh) 一种基于密钥更新的私钥保护方法、系统及装置
US9531540B2 (en) Secure token-based signature schemes using look-up tables
EP3491600A1 (en) Blockchain-implemented method and system
EP3462667A1 (en) Blockchain based joint blind key escrow
US8422670B2 (en) Password authentication method
CN106487786B (zh) 一种基于生物特征的云数据完整性验证方法及系统
CN112436938B (zh) 数字签名的生成方法、装置和服务器
US20100306543A1 (en) Method of efficient secure function evaluation using resettable tamper-resistant hardware tokens
TW202025666A (zh) 用於共享公共秘密之電腦實施系統及方法
CN107395627B (zh) 一种基于单向函数的轻量级认证协议
CN111130758A (zh) 一种适用于资源受限设备的轻量级匿名认证方法
CN109257381A (zh) 一种密钥管理方法、系统及电子设备
CN111191262B (zh) 一种基于两方签名的区块链钱包客户端私钥保护方法
CN107294705B (zh) 一种密钥生成和验证的方法、设备及系统
CN110740034A (zh) 基于联盟链的qkd网络认证密钥生成方法及系统
CN114221753B (zh) 密钥数据处理方法和电子设备
CN107046465B (zh) 入侵容忍的云存储数据审计方法
CN106059770B (zh) 用于模幂运算的高效平稳编码
CN112235105B (zh) 一种抗中间人攻击的动态口令认证方法
US11856095B2 (en) Apparatus and methods for validating user data by using cryptography
JP5392741B2 (ja) Rsaをベースとしたパスワード認証方式及びその応用

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