CN110034936B - 一种可刺穿的数字签名方法 - Google Patents
一种可刺穿的数字签名方法 Download PDFInfo
- Publication number
- CN110034936B CN110034936B CN201910279881.8A CN201910279881A CN110034936B CN 110034936 B CN110034936 B CN 110034936B CN 201910279881 A CN201910279881 A CN 201910279881A CN 110034936 B CN110034936 B CN 110034936B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- signature
- update
- message
- key
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000006870 function Effects 0.000 claims abstract description 11
- 229910052739 hydrogen Inorganic materials 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 230000014509 gene expression Effects 0.000 claims 1
- 238000012795 verification Methods 0.000 abstract description 7
- 230000007774 longterm Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种可刺穿的数字签名方法,该方法使用布隆过滤器完成刺穿操作进而实现密钥更新,使用SM9算法实现签名和验证功能。支持对消息任意预设定位置字符串的刺穿,更新后的密钥无法对任意包含刺穿字符串的消息做签名。密钥更新操作仅需常数代价,且能够保持底层SM9算法的签名和验证效率,整体效率较高。所有操作均可在实际中部署,实用性较强。本方法可以应用到基于权益证明的区块链协议中,以抵抗密钥泄露带来的长距离攻击。
Description
技术领域
本发明属于计算机技术与信息安全技术领域,涉及一种利用布隆过滤器和基于身份的签名构造的可刺穿签名方法。
背景技术
数字签名是一项重要的认证技术,签名者使用私钥对消息做签名,验证者使用公钥对签名做有效性验证。数字签名具有不可抵赖性质,即攻击者无法冒充私钥拥有者进行签名。数字签名目前广泛地应用于各类密码协议中,常见的数字签名标准如ECDSA等。
长期密钥泄露是目前认证协议安全性分析中经常考虑的一种攻击场景,这种考虑具有现实意义,即敌手可能在现阶段无法获取密钥,但经过一段时间敌手的攻击能力增强之后,这种攻击便成为可能。长期密钥即签名私钥泄漏后,敌手可以冒充签名者,传统签名方案将完全被攻破。在基于权益证明的区块链协议中,密钥泄露(通过敌手的贿赂等手段)带来的长距离攻击可以允许敌手篡改区块链历史,从而造成双花费攻击,是一种严重的安全威胁。
可刺穿签名考虑长期密钥泄漏对已有签名的安全性影响,提供对签名消息的刺穿功能,保证敌手即便获取私钥仍然无法伪造对已签名消息的签名。简单地说,刺穿功能对应密钥更新操作,以刺穿消息和当前密钥作为输入,输出的更新密钥将无法对包含刺穿消息的内容做签名。方案构造中,刺穿消息可以是签名消息的整体也可以是签名消息的任意指定字段。
可刺穿签名可以用于基于权益证明的区块链协议中抵抗密钥泄露带来的长距离攻击,即区块发布者在某一位置发布区块后,对该位置信息做刺穿操作,更新后的密钥无法在该位置做新的签名,使得敌手无法篡改区块链历史。除此之外,可刺穿签名还可以用于异步通信中,比如在线交易等。这类场景中,发送者向接收者(非交互地)发送签名的交易信息,但由于网络不同步以及接收者可能未在线,密钥泄露会造成发送者的签名受到篡改,交易的完整性得不到保证。刺穿签名可以通过在交易ID处做刺穿,使得敌手无法篡改对应ID的交易内容,从而实现对完整性的保证。随着异步网络的发展以及安全性需求的不断升级,刺穿签名将得到更加广泛的应用。
发明内容
本发明的目的在于提供一种可刺穿的数字签名方法,本发明基于布隆过滤器和国产密码标准SM9(已被ISO/IEC 14888-3收录成为国际标准),可应用到基于权益证明的区块链协议中,可以抵抗密钥泄露带来的长距离攻击,且运行效率高。
为实现上述目的,本发明采用如下技术方案:
一种可刺穿的数字签名方法,包括以下步骤:
步骤1:密钥初始化,利用SM9算法为每个位置身份i∈[l]分发对应的私钥ski;
步骤3:刺穿算法,对字符串str做刺穿,完成对当前密钥的更新;
步骤4:签名验证算法,利用公钥vk,验证消息m的签名σ。
优选地,步骤1具体包括:
1)首先产生双线性映射的参数(p,e,ψ,G1,G2,GT,P1,P2),运行({Hj}j∈[k],T)←Gen(l,k)生成布隆过滤器BF=(BF.Gen,BF.Update,BF.Check)实例,选取哈希函数和
优选地,步骤2具体包括:
1)系统预设定消息的刺穿信息,包括位置信息和长度信息。
优选地,步骤3具体包括:
1)计算T′=Update({Hj}j∈[k],T,str),更新布隆过滤器状态位。
优选地,步骤4具体包括:
一种可刺穿的数字签名系统,包括存储器和处理器,该存储器存储计算机程序,该程序被配置为由该处理器执行,该程序包括用于执行上述方法中各步骤的指令。
本发明基于布隆过滤器与SM9签名算法,提供对签名消息的刺穿功能,保证敌手即便获取私钥仍然无法伪造对已刺穿消息的签名,具体地包括以下两个重要的方面:
一、可刺穿签名方案的构造
本发明的可刺穿签名方案由系统建立Setup、刺穿Puncture、签名Sign和验证Verify四个算法组成,安全性基于τ-SDH困难假设。
该刺穿签名方案具备以下性质:1)可以实现对消息任意字段的刺穿功能;2)密钥更新过程中只需更新私钥,无需更新公钥,更符合实际应用场景;3)方案实际可用,所有操作均可实际部署;4)签名/验证算法能够保持底层基本签名/验证算法的效率;5)密钥更新操作高效,仅需常数代价。
二、将本发明应用到基于权益证明的区块链协议中
可刺穿签名可以用来在基于权益证明的区块链协议中发布区块,通过对区块消息中的时间字段做刺穿,能够抵抗密钥泄露带来的长距离攻击。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下面通过具体实施例,对本发明的技术方案做进一步说明。
一、符号说明
λ代表安全参数,[n]表示整数集合{1,...,n},(p为素数)表示集合{1,...,p-1},∩和∪分别代表集合求交集、求并集运算符。对于任意的数组T∈{0,1}n,用T[i](i≤n)代表T的第i个元素。
二、布隆过滤器
布隆过滤器(Bloom Filter,BF)可以用来检索一个元素是否在一个集合S中,其中:S中的元素均属于集合U。简单来说,如果输入的元素s满足s∈S,则BF输出“1”,否则以较大的概率输出“0”。布隆过滤器由参数生成算法Gen、更新算法Update和检测算法Check组成:
·Gen(l,k):输入两个整数l和k,Gen算法首先选取k个独立的哈希函数H1,...,Hk,其中Hj:U→[l](j∈[k])。定义H={Hj}j∈[k],T=0l(T是一个l比特的数组,所有比特初始为0)。输出(H,T)。
·Update(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U,Update算法首先设置更新后的状态T'为T'=T,之后对于任意的i∈[k]令T'[Hi(u)]=1,并返回T'。
·Check(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U,Check算法返回b=∩i∈[k]T[Hi(u)]。
对于任意的元素集合S={s1,…,sn}∈Un,首先运行(H,T0)←Gen(l,k),然后对于i∈[n]运行Ti=Update(H,Ti-1,si)。BF具有如下性质:(1)对于任意s∈S有Pr[Check(H,Tn,s)=1]=1;(2)对于任意有Pr[Check(H,Tn,s)=1]≈(1-ekn/l)k。也就是说,对于集合中包含的元素,BL总输出1,否则以一定的容错概率pr=(1-ekn/l)k输出1。
三、双线性映射
G1,G2和GT是三个阶均为素数p的群,P1和P2分别是G1和G2的生成元,存在G2到G1的同态映射ψ:G2→G1使得ψ(P2)=P1。双线性映射e:G1×G2→GT满足如下条件:
·非退化性:e(P1,P2)≠1。
·可计算性:对任意的(P,Q)∈G1×G2,存在有效的算法计算e(P,Q)。
四、可刺穿签名方案
在本发明中,可刺穿签名方案基于BF和国产密码标准SM9(ISO/IEC 14888-3国际标准)。方案描述过程中,假设消息的刺穿位置是系统预先设定的。
令参数(p,e,ψ,G1,G2,GT,P1,P2)选取满足双线性映射定义,BF=(BF.Gen,BF.Update,BF.Check)为布隆过滤器。和为哈希函数。可刺穿签名方案由系统建立算法Setup、刺穿算法Puncture、签名算法Sign和验证算法Verify组成:
sk=(T,{ski}i∈[l]),vk=(Ppub,g,{Hj}j∈[k]),
其中T′[i]代表数组T′的第i比特。最终,算法返回sk′=(T′,{ski′}i∈[l])。
·Sign(sk,m):输入私钥sk=(T,{ski}i∈[l])和消息m,其中m的刺穿字段为字符串str。算法首先检查是否BF.Check({Hj}j∈[k],T,str)=1,如果是则输出⊥。否则,注意到BF.Check({Hj}j∈[k],T,str)=0意味着至少存在一个ij∈{i1,...,ik}满足其中ij=Hj(str)(j∈[k]),因此挑选一个随机的对应位置的私钥为算法随机地选取并计算r=gx,然后计算h=h2(m,r),最终,算法输出对消息m的签名为
其中Sstr={Hj(str):j∈[k]},如果“是”,则算法输出“1”(接受),否则输出“0”(拒绝)。
五、本发明在基于权益证明的区块链协议中的应用
在基于权益证明的区块链协议中,区块发布者在当前时间段slot处发布区块时,利用可刺穿签名对消息做签名,之后进入下一个时间段。待签名的消息包括当前时间段slot、交易信息和当前区块状态等信息,签名结束后对消息的slot部分执行刺穿操作得到更新后的密钥。根据可刺穿签名的性质,更新后的密钥将无法再对相同的slot做签名,从而保证了敌手无法更改区块链的历史。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,本发明的保护范围应以权利要求所述为准。
Claims (10)
4.如权利要求3所述的方法,其特征在于,所述布隆过滤器由参数生成算法Gen、更新算法Update和检测算法Check组成;其中,
Gen(l,k):输入两个整数l和k,Gen算法首先选取k个独立的哈希函数H1,...,Hk,其中Hj:U→[l](j∈[k]),U为元素集合;定义H={Hj}j∈[k],T=0l,T是一个l比特的数组,所有比特初始为0;输出(H,T);
Update(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U,Update算法首先设置更新后的状态T'为T'=T,之后对于任意的i∈[k]令T'[Hi(u)]=1,并返回T';
Check(H,T,u):输入H={Hi}i∈[k],T∈{0,1}l和u∈U,Check算法返回b=∩i∈[k]T[Hi(u)]。
6.如权利要求5所述的方法,其特征在于,所述消息m的预设定刺穿信息包括位置信息和长度信息;
检测BF.Check({Hj}j∈[k],T,str)是否等于1,其中字符串str为消息m的刺穿字段,如果等于1,则签名失败,范围为⊥。
10.一种可刺穿的数字签名系统,其特征在于,包括存储器和处理器,该存储器存储计算机程序,该程序被配置为由该处理器执行,该程序包括用于执行权利要求1至9中任一所述方法中各步骤的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910279881.8A CN110034936B (zh) | 2019-04-08 | 2019-04-08 | 一种可刺穿的数字签名方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910279881.8A CN110034936B (zh) | 2019-04-08 | 2019-04-08 | 一种可刺穿的数字签名方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110034936A CN110034936A (zh) | 2019-07-19 |
CN110034936B true CN110034936B (zh) | 2021-04-30 |
Family
ID=67237671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910279881.8A Active CN110034936B (zh) | 2019-04-08 | 2019-04-08 | 一种可刺穿的数字签名方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110034936B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837659B (zh) * | 2019-09-26 | 2021-10-15 | 中国科学院软件研究所 | 带标签的私钥可更新数字签名方法及其在PoS区块链协议中的应用 |
CN111062721B (zh) * | 2019-12-31 | 2023-12-12 | 南京金宁汇科技有限公司 | 一种应用于区块链的签名方法、系统及存储介质 |
CN112241526B (zh) * | 2020-10-26 | 2024-03-19 | 北京华大信安科技有限公司 | 一种基于sm9数字签名的批量验证方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102714A (zh) * | 2014-07-16 | 2014-10-15 | 上海交通大学 | 基于累加器和布隆过滤器的外包数据查询验证方法及系统 |
-
2019
- 2019-04-08 CN CN201910279881.8A patent/CN110034936B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110034936A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10944575B2 (en) | Implicitly certified digital signatures | |
EP2533457B1 (en) | Secure implicit certificate chaining | |
CN108809658A (zh) | 一种基于sm2的身份基的数字签名方法与系统 | |
EP2372948A1 (en) | Method, device, and system for an identity-based forward-secure digital signature | |
CN1922816B (zh) | 单向认证 | |
CN102739401B (zh) | 一种基于身份公钥密码体制的私钥安全管理方法 | |
CN110034936B (zh) | 一种可刺穿的数字签名方法 | |
US20160352525A1 (en) | Signature protocol | |
CN109687965A (zh) | 一种保护网络中用户身份信息的实名认证方法 | |
CN106487786B (zh) | 一种基于生物特征的云数据完整性验证方法及系统 | |
CN112532394B (zh) | 一种区块链抗签名可追踪的无证书盲签名生成方法 | |
CN113301022A (zh) | 基于区块链和雾计算的物联网设备身份安全认证方法 | |
CN106936584A (zh) | 一种无证书公钥密码系统的构造方法 | |
CN108768975A (zh) | 支持密钥更新和第三方隐私保护的数据完整性验证方法 | |
US20150006900A1 (en) | Signature protocol | |
CN110661816B (zh) | 一种基于区块链的跨域认证方法与电子设备 | |
CN116566626A (zh) | 环签名方法和设备 | |
CN108667619B (zh) | 一种sm9数字签名的白盒实现方法与装置 | |
WO2016187689A1 (en) | Signature protocol | |
CN114844643A (zh) | 一种基于双线性映射获取适配器签名的方法和电子设备 | |
KR20010017358A (ko) | 공정한 은닉 서명 방법 | |
CA2892318C (en) | Signature protocol | |
CN114003654A (zh) | 一种信任根签名中提高安全性的方法 | |
CN116346327A (zh) | 双向认证密钥协商方法及采用该方法的用电信息采集系统 | |
CN117439761A (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 |