1. 首页 > 自媒体

btm币是什么币?btm比原链交易平台及官网介绍

摘 要

本文对数字签名技术进行概览综述,以便读者对该技术有一个比较全面的了解。文章首先介绍数字签名技术的基本原理,然后回顾数字签名技术四十年发展的历程以及期间发生的一些具有标志性的事件。另外针对特殊功能需求,学术界提出了许多具有附加属性的数字签名技术,本文对这类技术进行一个梳理和概览。文章最后对一些重要的数字签名技术标准进行汇总。

关键词:数字签名技术;数字签名算法标准;带属性的数字签名;公钥密码内容目录:1 数字签名原理2 数字签名技术发展历程3 具备附加属性的数字签名技术4 数字签名算法标准5 结 语

01

数字签名原理

人类在很长时间都是以手写签名、印章或指模等来确认作品、文件等的真实性,包括认定作品的创作者、文件签署者的身份,推定作品的真伪或者文件内容的真实性。数字签名技术用于在数字社会中实现类似于手写签名或者印章的功能,即实现对数字文档进行签名。数字签名技术实际上能够提供比手写签名或印章更多的安全保障。一个有效的数字签名能够确保签名确实由认定的签名人完成,即签名人身份的真实性(authentication);被签名的数字内容在签名后没有发生任何的改变,即被签名数据(也称签名消息或简称消息)的完整性(integrity);接收人一旦获得签名人的(包括被签名数据的) 有效签名后,签名人无法否认其签名行为,即不可抵赖性(non-repudiation)。

本文中的数字签名技术特指采用非对称密码机制来实现的签名技术。一个签名人具有一对密钥,包括一个公钥和一个私钥。签名人公开其公钥,签名验证人(简称验签人)需要在验证签名前获取签名人的真实公钥。如果验签人需验证多个签名人的签名,则必须预先知道每个签名人和其公钥的对应关系。在满足以上前提的情况下,签名人就可以使用其私钥对任意消息进行签名操作,生成签名值;任意知道公钥的验签人都可以通过验签操作验证对消息的签名值相对于某公钥是否有效。若待签名消息过大时,可以先采用杂凑算法生成消息的摘要(类似于数据的指纹)后再对摘要进行数字签名。为了实现真实性、完整性和不可抵赖性功能,数字签名机制需要满足一定的安全需求。简单地讲,安全的数字签名机制要求:1)在没有私钥的情况下,生成某个消息的有效签名在计算上是不可行的;2)根据公钥和消息/ 签名对, 计算出签名私钥是不可行的。更加严格的数字签名机制安全定义是在选择消息攻击下具有不可伪造性(Existential Unforgeability under Adaptive Chosen Message Attack: EUF-CMA),即攻击者可任意选择多项式个消息请签名人生成并获得对应的签名,仍然无法生成一个新消息的合法签名。更高安全性的定义是选择消息攻击强不可伪造性(Strong Existential Unforgeability under Adaptive Chosen Message Attack: SUF-CMA),即攻击者可任意选择多项式个消息请签名人生成并获得对应的签名,仍然无法生成一个新消息的合法签名或者一个已签名消息的新合法签名。

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),该机制允许在无公钥的情况下,将某人变成环上成员。环签名机制有众多应用,包括隐私保护、电子现金、电子选举等。

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

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

联系我们

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

微信号:wx123456