ElGamal?数字签名 ·例子 ■密钥生成:设p=29,g=2,x=7,计算y=27m0d29=12。则公钥y=12, 私钥x=7。 ■签名:假设消息m的Hash值为8,即h(m=8,随机选取整数=5, 计算 =25m0d29=3,s=(8-7X3)×51m0d28=3 签名为(,S)=(3,3)。 ■验证:收到消息m和签名(r,S)时,先计算h(m)=8,然后计算 123X33=24m0d29,28=24m0d29 等式成立,签名是合法的
ElGamal数字签名 例子 密钥生成:设p=29, g=2, x=7,计算y≡2 7 mod 29=12。则公钥y=12, 私钥x=7。 签名:假设消息m的Hash值为8,即h(m)=8,随机选取整数k=5, 计算 r≡25 mod 29≡3, s≡(8-7×3)×5 -1 mod 28≡3 签名为(r, s)=(3, 3)。 验证:收到消息m和签名(r, s)时,先计算h(m)=8,然后计算 123×3 3≡ 24 mod 29, 28≡24 mod 29 等式成立,签名是合法的
例 9 7.4数字签名标准
7.4 数字签名标准
数字签名标准 ·DSS ■1991年,数字签名标准(DSS)在EIGamala数字签名和Schnorr数字 签名的基础上发展而来,被NIST确定为数字签名标准。 ,数字签名标准DSS中的算法称为DSA(digital signature algorithm), 其安全性是基于离散对数问题的困难性。 ■与RSA不同的是,DSS只能用于签名,不能用于加密
数字签名标准 DSS 1991年,数字签名标准(DSS)在ElGamal数字签名和Schnorr数字 签名的基础上发展而来,被NIST确定为数字签名标准。 数字签名标准DSS中的算法称为DSA(digital signature algorithm), 其安全性是基于离散对数问题的困难性。 与RSA不同的是,DSS只能用于签名,不能用于加密
DSS ·参数与密钥生成 ■选取大素数p,满足2L-1<p<2L,其中512≤L≤1024且L是64的倍数。 ■选取大素数q,q是p-1的一个素因子且2159<q<2160,即q是160位 的素数且是p-1的素因子。 ■选取一个生成元g=h-a mod p,其中h是一个整数,满足: 1<h<p-1并且hp-modp>1。 ■随机选取整数,0<x<q,计算y=g*mod p。 ■p、q和g是公开参数,y为公钥,x为私钥
DSS 参数与密钥生成 选取大素数p,满足2 L-1<p<2 L,其中512≤L≤1024且L是64的倍数。 选取大素数q,q是p-1的一个素因子且2 159<q<2 160,即q是160位 的素数且是p-1的素因子。 选取一个生成元g=h (p-1)/q mod p,其中h是一个整数,满足: 1<h<p-1并且h (p-1)/q mod p>1。 随机选取整数x,0<x<q,计算y≡g x mod p。 p、q和g是公开参数,y为公钥,x为私钥
DSS 。签名 ■对于消息m,首先随机选取一个整数k,0<k<q,然后计算 r=(g*mod p)mod q,s=k[h(m)+xr]mod q ■则m的签名为(r,S),h为Hash函数,DSS规定Hash函数为SHA-1。 ·验证 ■对于消息签名对(m,(,S),首先计算 w s-mod q,u h(m)w mod q u,=rw mod q,v=(guiyuzmod p)mod q ■验证=r,等式成立,则(,S)是m的有效签名;否则签名无效
DSS 签名 对于消息m,首先随机选取一个整数k,0<k<q,然后计算 r≡(g k mod p) mod q, s≡k -1 [h(m)+xr] mod q 则m的签名为(r, s),h为Hash函数,DSS规定Hash函数为SHA-1。 验证 对于消息签名对(m, (r, s)),首先计算 𝒘 = 𝒔 −𝟏𝐦𝐨𝐝 𝒒,u1= h(m)w mod q u2= rw mod q,𝒗 = 𝒈 𝒖𝟏𝒚 𝒖𝟐𝐦𝐨𝐝 𝒑 𝐦𝐨𝐝 𝒒 验证v=r,等式成立,则(r, s)是m的有效签名;否则签名无效