数字签名原来还有这么多种!
群签名盲签名防失败签名不可否认签名,问你怕未。
我原本的认知中,以为已经通晓数字签名的秘密了,不就是将明文进行散列运算,得到摘要,然后用自己的私钥对摘要进行加密,由此得到数字签名。数字签名与明文一起发送,接收者收到后,同样将明文散列运算得到摘要,然后用公钥解开数字签名,两个摘要一比对,便知端的。
但是,现在你告诉我还有群签名盲签名防失败签名不可否认签名,实在过份。
一、不可否认签名
签名本来就是为了防止发送方抵赖不认,为啥还要有个不可否认签名呢?
如上述例子,发送方用私钥签名,接收方用公钥解密,看上去很完美。但发送方可以狡辩说,俺的私钥泄露了,这个东东不是我经手的。。。
不可否认签名就是防止发送方来这么一招。其核心思想,是验证签名的时候,需要签名者进行确认。如果签名者不配合验证,那就太明显了,肯定有猫腻。但如果签名者参与了验证,故意给出错误答案怎么办?处理办法是签名验证过程应用2次。里面的算法看不懂,大意是根据公钥和签名计算,从中挑出2个随机数,分别发给签名者运算,然后考察这两个结果,就可以知道签名者的签名是伪造,还是真签名,但签名者在抵赖。
不可否认签名加强了签名后的不可否认性。
二、防失败签名
也叫 Fail-Stop签名。签名要经过一些计算,一般是破解不了的。但如果黑客的计算能力很强,最终可以伪造出签名,怎么办?防失败签名的思想是就算你可以伪造出能通过验证的签名,但我能给出你是伪造的证明,一招制敌。
三、盲签名
盲签名因签名的人看不到所签署文件的具体内容而闻名,它有两个显著的特点:一是签名者对消息的内容是不可见的 ;二是签名被公开后,签名者不能追踪签名。
签名者看不到签名内容,他怎么会愿意签字呢?有什么应用场景呢?
举个例子:在日常买东西的时候,现金支出是很难让别人追踪的;但在网上转账的时候,很容易被第三方(如银行)查到自己的消费情况,盲签名的作用就是为了不让银行知道你的钱花到哪里去了。在盲签名操作过程中最重要的便是盲化技术,给签名者的数据是经过盲化之后呈现出来的,在签名之后且去盲化后,是不能让签名者联想起之前的盲化数据。
盲签名因为具有盲性这一特点,可以有效保护所签署消息的具体内容,所以在电子商务和电子选举等领域有着广泛的应用。
四、 群签名
群签名有如下几个特点:只有群中成员能够代表群体签名(群特性);接收者可以用公钥验证群签名(验证简单性);接收者不能知道由群体中哪个成员所签(无条件匿名保护);发生争议时,群体中的成员或可信赖机构可以识别签名者(可追查性)。
比如群签名在电子现金系统中可以有下面的应用:可以利用群盲签名来构造有多个银行参与与发行电子货币的、匿名的、不可跟踪的电子现金系统。在这样的方案中有许多银行参与这个电子现金系统,每一个银行都可以安全的发行电子货币。这些银行形成一个群体受中央银行的控制,中央银行担当了群管理员的角色。
五、 数字签名标准DSS
数字签名标准(Digital Signature Standard,DSS)是美国国家标准与技术研究所制订的,但这一标准争议不断。主要原因除了安全性,是没有采用当时工业界广泛应用并成为事实标准的RSA数字签名体制,而采用的是DSA(Digital Signature Algorithm)。
DSA与RSA一样,都是非对称加密方法。基本上可以认为相同密钥长度的 RSA 算法与 DSA 算法安全性相当。但一般来说,DSA只能用于签名,而不能加密;RSA既可以签名,也可以加密。
这两个都有缺点,ECC(Elliptic Curves Cryptography):椭圆曲线算法是更好的选择。
ECC 与 RSA 、DSA相比,有以下的优点:
(1)相同密钥长度下,安全性能更高,如160位ECC已经与1024位RSA、DSA有相同的安全强度。
(2)计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远 比RSA、DSA快得多。
(3)存储空间占用小 ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多, 所以占用的存储空间小得多。
(4)带宽要求低使得ECC具有广泛得应用前景。