脚本宝典收集整理的这篇文章主要介绍了第八章 数字签名技术,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
数字签名技术一般分为带仲裁和不带仲裁的两类。如果使用对称密钥进行数字签名,则必须使用仲裁者,非对称可以不带仲裁。
数字签名可以实现不可否认性和消息完整性认证(检验是否被篡改或伪造)
(P,S,K,Sig,Ver),P:密钥生成算法,S:签名算法,K:验证算发,Sign,Verify
过程简图
基于RSA的签名方案 | 密钥生成算法 |
|
||
签名算法 |
|
|||
验证算法 |
|
|||
正确性 | ||||
安全性 |
|
|||
基于离散对数的签名方案 | ElGamal签名体制 | 密钥生成算法 |
签名者的公钥是(p,g,y),私钥是x。 |
|
签名算法 | 签名者选取随机数k,计算r≡gk(mod p),s≡[h(m)-xr]K-1(mod(p-1)),签名为(r,s),其中h为安全的Hash函数 | |||
验证算法 | 计算h(m)后,验证yxrs≡gh(m)(mod p)是否成立 | |||
正确性 | ||||
安全性 |
|
|||
Schnorr签名体制 | 特点 | 签名速度较快,签名长度较短 | ||
密钥生成算法 |
|
|||
签名算法 |
签名者选择随机数k,1≤k≤q-1,然后进行如下计算: r≡gk(mod p) e=h(m,r) s≡(xe+k)(mod q) 签名为(e,s),其中h为安全的Hash函数。 |
|||
验证算法 | 签名接收者在收到消息m和签名(e,s)后,首先计算r1≡gsy-e(mod p) ,然后验证e=h(e,r1),如果等式成立则签名有效,否则无效。 | |||
正确性和安全性 |
安全性和ElGaml类似 |
|||
DSA签名体制 | 密钥生成算法 |
|
||
签名算法 | 选取随机数k,r=(gkmod p)mod q,s≡[h(m)+xr]k-1(mod q),其中h是SHA1的特定Hash函数 | |||
验证算法 |
收到m和签名值(r,s)后,计算 w≡s-1(mod q) u1≡h(m)w(mod q) u2≡rw(mod q) v=(gu1yu2mod p)mod q 比较v和r,相同则签名有效,否则无效。 |
|||
正确性 | ||||
安全性 | DSA是ElGamal的变形,因此安全性论述在此也同样使用。还有一点是签名算法计算的s正好为0时,会产生1除以0的情况,必须放弃这个签名。 | |||
三种签名体制的对比 |
|
|||
离散对数签名体制 |
|
|||
基于椭圆曲线的签名方案 | 密钥生成算法 |
选择E上一点G∈E,G的阶为满足安全要求的素数n,即nG=O。 选取一个随机数d∈[1,n-1],计算Q使得Q=dG,那么公钥为(n,Q),私钥为d。 |
||
签名算法 |
|
|||
验证算法 |
|
|||
正确性 |
|
|||
安全性 | @H_565_406@
以上是脚本宝典为你收集整理的第八章 数字签名技术全部内容,希望文章能够帮你解决第八章 数字签名技术所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。