密码学:完整性与真实性
1. DSS与DSA算法
数字签名标准(DSS)包含四种不同的签名方案,分别是两种RSA变体(RSA - PKCS#1 v1.5和RSA - PSS)以及两种ElGamal变体(DSA及其椭圆曲线变体ECDSA)。
DSA是ElGamal签名方案的高效变体,它基于Claus Schnorr的观察。Schnorr发现,对于固定的生成元$g\in Z_p^*$,所有计算都可在一个阶为素数$q$的较小子群$G = < g >$中进行。ElGamal签名方案中的签名值$k$和$s$过大,可被更小的值替代,从而使签名更短,验证更高效。
1.1 DSA系统参数
所有签名者可使用以下系统参数,其中长度参数$(L, N)$有以下取值:(1024, 160)、(2048, 224)、(2048, 256)或(3072, 256)。
- 大素数$p$,其比特长度$|p| = L$。
- 小素数$q$,比特长度$|q| = N$,且$q|p - 1$。
- 群元素$g\in Z_p^*$,阶为$q$。
- 哈希函数$H()$,输出长度$|H(m)| \geq N$。
参数$N$的允许值对应于哈希函数族SHA - 1和SHA - 2的输出长度,选择合适的哈希函数可最小化计算开销。
1.2 私钥与公钥
每个用户需要一个单独的签名密钥对:
- 私钥$x$是从${1, 2, …, q - 1}$中随机选择的整数。
- 公钥$y$通过$y \leftarrow g^x \mod p$计算得出。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



