例 9 7.2RSA数字签名
7.2 RSA数字签名
RSA数字签名 ·参数与密钥生成: ■选取两个保密的大素数p和q。 ■计算n=pg,p(n)=(p-1)(q-1),其中p(n)是n的欧拉函数值。 ■随机选取整数e,1<e<p(n),满足gcd(p(n),e)=l ■计算d,满足de=1modp(n) ■公钥为(e,m),私钥为d。 。签名: ■对于消息m∈Zn,签名为s三m"modn 。验证: ■对于消息签名对(m,S),如果m≡s°modn,则s是m的有效签名
RSA数字签名 参数与密钥生成: 选取两个保密的大素数p和q。 计算n=pq, 𝝋 𝒏 = 𝒑 − 𝟏 𝒒 − 𝟏 , 其中 𝝋 𝒏 是n的欧拉函数值。 随机选取整数e, 1<e<𝝋 𝒏 ,满足gcd(𝝋 𝒏 ,e)=1 计算d,满足d·e≡1 mod 𝝋 𝒏 公钥为(e,n),私钥为d。 签名: 对于消息m∈Zn ,签名为 验证: 对于消息签名对(m, s),如果 ,则s是m的有效签名。 mod d s m n mod e m s n
RSA数字签名 。RSA数字签名方案的缺陷 ■任何人都可以伪造某签名者对于随机消息的签名5。其方法是 先选取s,再用该签名者的公钥(e,m)计算后se mod n。 ■如果敌手知道消息m和m2的签名分别是s1和S2,则敌手可以伪造 m1m2的签名s1S2,因为在RSA签名方案中,存在以下同态性质: (mm )d =mm;modn ■在RSA签名方案中,需签名的消息x∈Zn,所以每次只能对lg: 位长的消息进行签名。签名速度慢
RSA数字签名 RSA数字签名方案的缺陷 任何人都可以伪造某签名者对于随机消息m的签名s。其方法是 先选取s,再用该签名者的公钥(e, n)计算m≡s e mod n。 如果敌手知道消息m1和m2的签名分别是s1和s2,则敌手可以伪造 m1m2的签名s1 s2,因为在RSA签名方案中,存在以下同态性质: 在RSA签名方案中,需签名的消息x Zn,所以每次只能对 位长的消息进行签名。签名速度慢。 2 n lo g 1 2 1 2 ( ) mod d d d m m m m n
RSA数字签名 。引入Hash以解决上述缺陷 ■在对消息进行签名前先对消息做Has变换,然后对变换后的消 息进行签名。即签名为 s=h(m)a modn ■验证时,先计算(m,再检查等式 h(m)≡se modn 是否成立
RSA数字签名 引入Hash以解决上述缺陷 在对消息进行签名前先对消息做Hash变换,然后对变换后的消 息进行签名。即签名为 验证时,先计算h(m),再检查等式 是否成立。 ( ) mod d s h m n ( ) mod e h m s n
例 9 7.3 ElGamal数字签名
7.3 ElGamal数字签名