1. 首页 > 快讯

Bybit将通过BitDAO发行BIT币!下周在MISO平台启动荷兰式拍卖

02

数字签名技术发展历程

从 Whitfield Diffie 和 Martin Hellman 在 1976 年发表历史性的论文《密码学的新方向》提出数字签名的概念到今天,数字签名技术经过了四十多年的发展。这四十多年中,数字签名技术在理论研究上经历了从一个可能的数学概念,发展到基于计算复杂性问题的具体实现、到扎实的安全模型定义、到安全性可证明的高效构造、再到满足各类差异化需求的特性签名技术。数字签名技术在应用上从小规模的商业和个人数据保护开始,伴随着互联网和电子商务的发展,到今天已经发展成为数字社会的安全基石之一。

作为一个相对全面的概览,下面列出数字签名技术发展过程中的一些重要学术工作和重大事件。这个列表无意列出过去四十年所有重要的工作和事件。未出现在列表中的学术工作或相关事件并不表示其重要性比列出的低。(1)1976 年 Whitfield Diffie 和 Martin Hellman 在《密码学的新方向》一文中提出数字签名的概念。

(2)1978 年 Ronald Rivest, Adi Shamir和Len Adleman发表RSA数字签名算法。

(3)1978 年 Michael O. Rabin 发表一次数字签名(one-time digital signature)算法Rabin。

(4)1979 年 Ralph Merkle 发 表 Merkle 数字签名算法。该算法也是一种一次数字签名算法,但和 Rabin 算法有重要区别。该算法成为一类基于杂凑的数字签名(hash-based digital signature)算法(例如 XMSS)的基础。这类算法在后量子计算时代可能依然安全。算法中的Merkle 树具有众多应用,如区块链使用 Merkle 树存储交易记录。

(5)1984 年 Taher Elgamal 发表基于离散对数问题的 Elgamal 数字签名算法。

(6)1984 年 Adi Shamir 提出基于身份的密码技术(Identity-Based Cryptography: IBC)并给出第一个基于身份的数字签名算法(Identity- Based Signature: IBS)。基于身份的密码也称基于标识的密码。

(7)1984 年 Shafi Goldwasser, Silvio Micali 和 Ronald Rivest 给出了数字签名机制安全模型的严格定义(选择消息攻击下不可伪造模型:EUF-CMA)。这个模型后来被广泛接受,用于分析各种数字签名算法的安全性。

(8)1986 年 Amos Fiat和 Adi Shamir发表Fiat-Shamir变换。该变换可将一大类身份认证方案转化为数字签名算法。

(9)1989 年 Claus Schnorr 发表Schnorr 数字签名算法。该算法的安全性可以基于离散对数问题在随机谕示模型下获得证明。2011 年发表的 EdDSA 数字签名算法也是以 Schnorr 算法为基础。

(10)1989 年 Lotus Notes 1.0发布采用RSA算法的数字签名功能。这是第一款大规模应用的商业软件支持数字签名技术。

(11)1991年NIST发布数字签名算法DSA。该算法是Elgamal数字签名算法的变形, 在1994年作为 FIPS 186 中的数字签名标准DSS发布。DSA和椭圆曲线上的ECDSA算法的安全性分析一直是个挑战。2000年Daniel R. L. Brown在一般群模型下分析了ECDSA算法的安全性。

(12)1991年Phil R Zimmermann 发 布 PGP 1.0,支持RSA数字签名算法。

(13)1991年Marc Girault 提出自认证密钥的概念并设计一个基于自认证密钥的身份认证协议。1998 年 Guillaume Poupard 和 Jacques Stern 利用 Fiat-Shamir 变换将该身份认证协议转换为 GPS 数字签名算法并证明了其安全性。

(14)1993 年 RSA 发布包括 RSA 数字签名算法的 PKCS #1 版本 1.5,通过规定消息编码方式改进 RSA 数字签名算法的安全性。

(15)1995 年 Netscape 发布支持数字签名算法的 SSL 2.0,支持 RSA 和 DSS 签名算法。(16)1996 年 Mihir Bellare 和 Phillip Rogaway 提出安全性可证明的 RSA-PSS 签名算法。(17)1996 年 David Pointcheval 和 Jacques Stern 提出分叉引理(forking lemma)。基于分叉引理可分析一大类数字签名算法的安全性, 包括 Schnorr签名算法。

(18)1996 年 Paul C. Kocher 发表侧信道攻击技术,展示采用时间攻击技术攻击 RSA、DSS 等算法的不安全实现以获取私钥 [24]。该工作开启了密码侧信道攻防技术的研究领域。

(19)1999 年 Rosario Gennaro, Shai Halevi 和 Tal Rabin与Ronald Cramer和Victor Shoup 分别构造了不依赖随机谕示模型的 RSA 签名算法。

(20)2001 年 Dan Boneh, Ben Lynn 和Hovav Shacham 发表采用双线性对构造的短签名算法 BLS。

(21)2002 年 Jae Choon Cha 与 Jung Hee Cheon 以及 Florian Hess 分别发表采用双线性对构造的基于标识的数字签名算法 Cha-Cheon- IBS和 Hess-IBS。

(22)2003 年 Sattam S. Al-Riyami 和Kenneth G. Paterson 提出无证书密码的概念,并设计无证书的数字签名算法。虽然 Al- Riyami-Paterson 无证书签名算法后来被证明不安全,但该工作开启了相关领域的研究工作。例如,2018 年 Zhaohui Cheng 和 Liqun Chen 统一了基于 Girault 的自认证密钥的数字签名机制和Al-Riyami-Paterson 无证书数字签名机制的安全模型,并设计安全、高效的无证书签名算法。

(23)2008 年 Craig Gentry, Chris Peikert 和Vinod Vaikuntanathan 基于等工作发表了第一个安全性可证明的基于格的数字签名算法GPV。后续更多格基数字签名算法被提出,如BLISS、Dilithium等。(24)2017 年 NIST 开始后量子公钥算法标准化工作,全球征集相关算法,包括数字签名算法。

03

具备附加属性的数字签名技术

伴随着通用数字签名技术的发展,针对一些特殊需求,特别是电子现金、电子选举等领域的应用以及隐私保护与签名公平性需求的增强,众多具有附加属性的数字签名技术的概念和算法构造被提出。下面列出一些典型的具有附加属性的数字签名技术。本文无意列出所有特性数字签名技术,读者可以参考更多的综述资料如 [38,39]。(1)盲签名 (blind signature):1982 年David Chaum 提出盲签名的概念。盲签名机制允许签名人对盲化过的消息(签名人在不知道消息内容的情况下)生成消息签名。签名的有效性可以在消息去盲化后被公开验证。盲签名机制可用于电子选举、电子现金等应用。

(2)多签名(multi-signature):1983 年 K. Itakura 和 K. Nakamura 提出多签名的概念。多签名机制允许多个签名人对消息进行签名且生成的签名比各个签名人独立签名生成的签名值集合更简短。多签名机制可用于区块链等对多方签名有需求且对签名长度敏感的应用。和多签名机制紧密相关的签名压缩机制还有聚合签名(aggregate signature)。聚合签名可以将多个签名压缩为一个签名。聚合签名进一步可分为通用聚合签名如 [42] 和顺序聚合签名如 [43] 等。顺序聚合签名中签名和聚合操作根据已经签名的消息集、已经聚合的签名以及待签名新消息,利用私钥进行签名并完成聚合操作。

(3)门限签名(threshold signature):1987 年 Yvo Desmedt 提出门限签名的概念。门限签名机制允许n个签名人中的任意 k 个签名人对消息生成签名,但少于 k 个签名人参与则无法生成有效签名。门限签名机制可以构建强健的签名系统,防止部分签名人的不法行为。

(4)不可否认签名(undeniable signature):1989 年 David Chaum 和 Hans van Antwerpen 提 出不可否认签名的概念。不可否认签名机制允许签名人生成一个签名并且确保没有签名人的允许(不参与验证过程),验证人无法验证签名的有效性;同时不可否认机制能够防止签名人(以不可忽略的概率)否认某个真实签名。不可否认签名机制可以防止签名数据被滥用。

(5)失败-中止签名(fail-stop signature):1991 年 Birgit Pfitzmann 提出失败-中止签名的概念。失败-中止签名机制除了满足普通签名机制的安全要求外,额外要求:1)如果伪造者要伪造一个签名则需要完成指数级的工作量, 2)如果伪造者成功伪造了某人(被冒充人)对一个消息的签名,则被冒充人可以有效地证明这个签名是伪造的。失败-中止签名机制可以应用于需要对签名人提供更高保护的场景。

(6)群签名(group signature):1991 年David Chaum 和 Eugene van Heyst 提出群签名的概。群签名机制允许多个签名人形成一个签名人群组,群组中的任意一个成员可代表整个群组匿名地生成某个消息的签名(“匿名”表示验签人无法判断生成签名的具体群成员的身份)。群组有个管理员负责维护群组中成员的群组资格,并在必要时识别生成某个签名的签名人身份。群签名机制的变体如可追踪群签名(traceable group signature)允许授权方追踪某个成员的签名而不暴露其他成员的身份信息及其生成的签名;可追责的追踪群签名(accountable tracing signature)可限制群组管理员滥用追踪群成员签名的能力。群签名机制可用于有隐私保护需求的诸多签名应用。

(7)指定证实人签名(designated confirmer signature): 1994 年 David Chaum 提出指定证实人签名的概念。指定证实人签名机制引入半可信第三方的角色:证实人(confirmer),其和验证人执行交换式协议判断某个签名是否有效,且证实人可以将一个有效的指定证实人签名转换为普通签名(任意具有签名人公钥的实体都可验证普通签名的合法性)。指定证实人签名机制解决了不可否认签名机制中签名人可能不参与签名验证过程导致签名接收人利益受损的问题。

(8)代理签名(proxy signature):1996 年Masahiro Mambo, Keisuke Usuda 和 Eiji Okamoto 提出代理签名的概念。代理签名机制允许原签名人在不将其签名私钥转移的情况下将其签名能力转移给指定的代理人,由代理人代为签名。代理签名机制有许多应用,例如在分布式环境中签名人可将其签名能力委托给信任的某个系统部件。

(9)指定验签人签名(designated verifier signature):1996 年 Jakobsson Markus, Kazue Sako 和 Russell Impagliazzo 提出指定验签人签名的概念。指定验签人签名机制允许签名人在生成签名时指定可以验证签名的验证人,非指定的其他人无法验证签名的有效性。指定验签人签名机制和不可否认签名不同,其签名验证过程无需签名人参与。指定验签人签名机制可以提供一定的隐私保护能力。

(10)签密(signcryption):1997 年Yuliang Zheng 提出签密的概念。签密机制允许以尽量小的开销同时完成消息加密和签名的功能。签密机制可以用于同时有加密和签名需求的场景, 减少计算和带宽的需求。

(11)环签名(ring signature):2001 年Ron Rivest, Adi Shamir 和 Yael Tauman 提出环签名的概念。环签名机制和群签名类似,环上任意成员可以匿名地代表整个环成员完成签名操作。和群签名不同的是,环签名机制没有环成员管理机制,因此也就没有环管理员,进而没有机制能够确认某个签名的具体签名人的身份。这意味着环签名比群签名在签名人隐私保护方面更彻底。环签名机制有诸多变体,如门限环签名(threshold ring signature)结合环签名和门限签名的功能,既保护签名人的隐私又防止小部分环中成员滥用签名能力;可关联环签名(linkable ring signature)可以确定两个签名是否是同一个签名人生成(但不能确定具体签名人的身份);可追踪环签名(traceable ring signature)可以确定生成了两次或以上签名的某个签名人的身份。和环签名相近的还有网签名(mesh signature),该机制允许在无公钥的情况下,将某人变成环上成员。环签名机制有众多应用,包括隐私保护、电子现金、电子选举等。

(12)具有高效协议的签名(signature with efficient protocols):2001 年 Jan Camenisch 和Anna Lysyanskaya 提出具有高效协议的签名机制。具有高效协议的签名机制允许签名拥有者和签名人采用安全两方计算机制高效地完成签名操作(签名人不知道被签名消息的内容);允许签名拥有者采用零知识证明机制高效证明其拥有一个有效的消息签名(验证人可完成验证过程但不知道签名拥有者的消息签名值)。具有高效协议的 CL 类签名机制可应用在多种具有隐私保护需求的场景中,例如在可信平台模块 TPM 中实现直接匿名证明 DAA[60]。

(13)同态签名(homomorphic signature):2002年Robert Johnson, David Molnar, Dawn Song 和 David Wagner 系统性地提出同态签名的概念和潜在应用。同态签名机制允许任意人在没有签名私钥的情况下计算出两组签名消息进行联合操作后的结果数据的签名值,或者一个签名消息集合的任意消息子集的签名值等。这样的功能也称为可修订签名(redactable signature)。同态签名机制进一步可以分为线性同态签名如、多项式函数同态签名如 [64]、全同态签名。与同态签名机制相关的签名机制还有增量签名(incremental signature),可传递签名(transitive signature)等。同态签名具有众多应用,如电子选举等。允许签名后再修改签名消息的机制还有:可净化签名(sanitizable signature)允许经授权的半信任第三方在无需签名人协助的情况下对签名消息进行受控地修改;只附加签名(append-only signature)允许任意一方在获得消息A和其签名的情况下, 获得消息 A 附加消息 B 后新消息的签名;空白签名(blank digital signature)允许签名发起人签名一个模板(模板包括确定的数据域和有多重选择的可修改数据域), 签名发起人允许一个代理人对签名过的模板中可修改数据域选择一个特定值并形成完整消息和签名,验签人使用签名发起人和代理人的公钥验证完整消息和签名的有效性;多变签名(protean signature)允许同时删除和修改被签名消息(即同时实现可修订签名和可净化签名的功能)。这类签名机制为消息签名应用提供了更多灵活性。ISO/IEC 正在开展可修订签名算法的标准化工作 。

 4/6   首页 上一页 2 3 4 5 6 下一页 尾页

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.longfuchaju.com//kuaixun/1301.html

联系我们

在线咨询:点击这里给我发消息

微信号:wx123456