数字签名技术概览( 二 )


(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] 等 。 顺序聚合签名中签名和聚合操作根据已经签名的消息集、已经聚合的签名以及待签名新消息 , 利用私钥进行签名并完成聚合操作 。