数字签名【笔记】

数字签名【持续更新】

数字签名应满足以下要求:
①签名的产生必须使用发方独有的一些信息以防伪造和否认。
②签名的产生应较为容易。
③ 签名的识别和验证应较为容易。
④ 对已知的数字签名构造一新的消息或对已知的消息构造一假冒的数字签名在计算上都是不可行的。

离散对数签名体制

ELGamal签名体制

(1)参数:P【大素数】,g【Zp中与p互素的一个生成元】,x【用户A的秘密钥:Zp中与p互素的数】,y【用户A的公开钥:y≡gx(mod p)】
(2)产生签名:对待签消息m,A执行以下操作:
①计算m的哈希值H(m)
②选择随机数k: k ← R Z p − 1 ∗ k\gets_RZ_{p-1}^* kRZp1计算 r ≡ g k ( m o d   p ) r≡g^k(mod\ p) rgk(mod p)
③计算 s ≡ ( H ( m ) − x r ) k − 1 ( m o d   p − 1 ) s≡(H(m)-xr)k^{-1}(mod\ p-1) s(H(m)xr)k1(mod p1)
(3)签名验证过程
收方已知:消息m,数字签名(r,s),哈希函数H,生成元g
验证: V e r ( y , ( r , s ) , H ( m ) ) = T r u e ⇔ y r r s ≡ g H ( m ) ( m o d   p ) Ver(y,(r,s),H(m))=True\Leftrightarrow y^rr^s≡g^{H(m)}(mod\ p) Ver(y,(r,s),H(m))=TrueyrrsgH(m)(mod p)
(4)探讨其安全性
①对已知的消息构造一假冒的数字签名:是否知道A的秘密钥x或者知道随机数k是能否假冒A进行数字签名的关键,其是基于离散对数的安全性。
②对已知的数字签名构造一新的消息:找到H(m)的一个碰撞。

Schnorr签名体制

(1)参数
p : 大 素 数 , p ≥ 2 512 ; q : 大 素 数 , q ∣ ( p − 1 ) , q ≥ 2 160 ; g : g ∈ R Z p ∗ , 且 g q ≡ 1 ( m o d   p ) 。 p:大素数,p\ge2^{512};\quad q:大素数,q\mid (p-1),q\ge 2^{160};\quad g:g\in_R Z_p^*,且g^q≡1(mod\ p)。 pp2512;q:q(p1),q2160;g:gRZpgq1(mod p)
x:用户A的秘密钥,1 < x < q;
y:用户A的公开钥,y ≡ gx (mod p);
(2)产生签名:对待签消息m,A执行以下操作:
①选择随机数k:1 < k < q,计算 r ≡ gk (mod p);
②计算 e = H ( r , m ) e = H(r,m) e=H(r,m);
③计算 s = x e + k ( m o d   q ) s = xe+k(mod\ q) s=xe+k(mod q)
签名为 ( e , s ) 。 (e,s)。 (e,s)
(3)签名验证过程
验证方:收到消息m和数字签名(e,s)。
计算: r ′ ≡ g s y − e ( m o d   p ) , r' ≡ g^sy^{-e}(mod\ p), rgsye(mod p)
再计算 H ( r ′ , m ) 。 H(r',m)。 H(r,m)
验证方式为: V e r ( y , ( e , s ) , m ) = t r u e ⇔ H ( r ′ , m ) = e 。 Ver(y,(e,s),m)=true\Leftrightarrow H(r',m)=e。 Ver(y,(e,s),m)=trueH(r,m)=e
正确性如下: r ′ = g s y − e ≡ g x e + k − x e ≡ g k ≡ r ( m o d   p ) r'=g^sy^{-e}≡g^{xe+k-xe}≡g^k≡r(mod\ p) r=gsyegxe+kxegkr(mod p)
(4)探讨其安全性
①对已知的消息构造一假冒的数字签名:是否知道A的秘密钥x是能否假冒A进行数字签名的关键,其是基于离散对数的安全性。
②对已知的数字签名构造一新的消息:解决离散对数问题找到H(m)的一个碰撞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值