如何让百度收录我的网站,wordpress 书籍发布,wordpress外链图片自动,域名怎么注册13.数字签名
概述数字签名过程#xff1a; 密钥生成。加密#xff08;签名生成#xff09;#xff1a;先哈希函数#xff0c;结果 S S S 和私钥放入数字签名算法#xff0c;然后给消息加后缀。解密#xff08;验证签名#xff09;#xff1a;先哈希函数#xff0c;…13.数字签名
概述数字签名过程 密钥生成。加密签名生成先哈希函数结果 S S S 和私钥放入数字签名算法然后给消息加后缀。解密验证签名先哈希函数将哈希值、 S S S、公钥 放入数字签名算法得出来判断。 理解ElGamal数字签名方案 安全性基于离散对数困难问题。 理解Schnorr数字签名方案 安全性基于离散对数困难问题。算法相对简单。生成签名工作不依赖消息。 理解NIST数字签名方案 核心是DSA数字签名算法。先哈希计算私钥签名公钥验证。安全、高效。 比较三者异同 ElGamal 和Schnorr都是基于离散对数问题NIST基于椭圆曲线算法。Schnorr算法签名过程简洁性能高。NIST安全性最高Schnorr安全性次之ElGamal的安全性依赖于随机位生成器。ElGamal 和Schnorr适用于加密协议和数字签名NIST还被用于密码学应用中。 理解椭圆曲线数字签名方案 基于椭圆曲线上的困难问题。以更短的密钥长度保证相同的安全性。 理解RSA-PSS数字签名方案 基于RSA数字签名方式增加盐值 和填充机制。克服了传统RSA算法的安全性问题提高了数字签名的安全性。 13.1 数字签名概述
保证完整性和身份验证。
数字签名过程
加密 用哈希函数加密消息 M M M。将加密结果与Bob的私钥作为算法输入。得出结果 S S S 放在 M M M 之后组成签名消息。 解密 计算消息的哈希值。将哈希值、 S S S、公钥 放入数字签名算法。根据结果判断签名有效性。 性质认证功能体现
能够验证签名者、签名日期和时间。能够认证消息内容。签名应由第三方仲裁。 13.2 ElGamal数字签名算法
地位仅次于RSA。
建立在离散对数的困难问题基础上。 算法过程
选取素数 q q q .
密钥产生 选取小于 q q q 的两个随机数 α , X A \alpha ,X_{A} α,XA 。计算 Y A α X A m o d q Y_{A} \alpha^{X_{A}} \mod q YAαXAmodq私钥 X A X_{A} XA 公钥 { q , α , Y A } \{q,\alpha,Y_{A}\} {q,α,YA} 加密过程 选取与 $q -1 $ 互素的整数 K K K 。 C 1 α k m o d q C_1 \alpha^k \mod q C1αkmodq. C 2 ( H ( m ) − x ∗ C 1 ) ∗ k − 1 m o d ( q − 1 ) C_2 (H(m)-x*C_1) * k^{-1} \mod (q-1) C2(H(m)−x∗C1)∗k−1mod(q−1). ( C 1 , C 2 ) (C_1,C_2) (C1,C2) 为签名 m m m 为消息。 验证过程 Y A C 1 ∗ C 1 C 2 α H ( m ) m o d q Y_{A}^{C_1} * C_1^{C_2} \alpha^{H(m)} \mod q YAC1∗C1C2αH(m)modq 13.3 Schnorr数字签名算法
基于离散对数的困难问题。 算法过程 密钥生成 选取 p , q p,q p,q 使得 q q q 是 p − 1 p-1 p−1 的一个素因子。选择整数 a a a 使得 a q ≡ 1 m o d p a^{q} \equiv 1 \mod p aq≡1modp 。全局公钥 ( a , p , q ) (a,p,q) (a,p,q)用户私钥随机选择 S ∈ ( 0. q ) S \in (0.q) S∈(0.q)。用户公钥 v a − S m o d p v a^{-S} \mod p va−Smodp 。 用户签名 选择消息 r ∈ ( 0 , q ) r \in (0,q) r∈(0,q) , 生成 x a r m o d p x a^{r} \mod p xarmodp 。用哈希函数计算 e H ( M ∣ ∣ x ) e H(M||x) eH(M∣∣x) 。计算 y ( r s e ) m o d q y (rse) \mod q y(rse)modq。签名 ( e , y ) (e,y) (e,y) 。 验证 计算 x ’ a y v e m o d p x^{’} a^{y}v^{e} \mod p x’ayvemodp 。验证 e H ( M ∣ ∣ x ′ ) e H(M||x^{}) eH(M∣∣x′) 。
13.4 NIST数字签名
13.4.1 DSA方法
安全性基于离散对数问题。 DSA签名方案的主要步骤如下
用发送者的私钥生成签名 随机选择一个数k并计算 r ( g k ( m o d p ) ) ( m o d q ) r(g^k \pmod{p}) \pmod{q} r(gk(modp))(modq)其中g是模p的一个原根p和q是两个大质数。计算 s k − 1 ( H ( m ) x r ) ( m o d q ) s k^{-1}(H(m) xr) \pmod{q} sk−1(H(m)xr)(modq)x是发送者的私钥。签名为 ( r , s ) (r,s) (r,s)。 用发送者的公钥和签名验证消息 计算 w s − 1 ( m o d q ) w s^{-1} \pmod{q} ws−1(modq) 。计算 u 1 H ( m ) w ( m o d q ) u_1 H(m)w \pmod{q} u1H(m)w(modq) 和 u 2 r w ( m o d q ) u_2 rw \pmod{q} u2rw(modq)。 验证签名 计算 v ( ( g u 1 x u 2 ( m o d p ) ) ( m o d q ) ) v ((g^{u_1}x^{u_2} \pmod{p}) \pmod{q}) v((gu1xu2(modp))(modq))。如果 v r v r vr则消息m是合法的。
w \pmod{q}$ 和 u 2 r w ( m o d q ) u_2 rw \pmod{q} u2rw(modq)。
验证签名 计算 v ( ( g u 1 x u 2 ( m o d p ) ) ( m o d q ) ) v ((g^{u_1}x^{u_2} \pmod{p}) \pmod{q}) v((gu1xu2(modp))(modq))。如果 v r v r vr则消息m是合法的。