例 9 7.1数字签名的基本概念
7.1 数字签名的基本概念
数字签名的基本概念 。数字签名的背景 ■政治、军事、外交、商业以及日常事务中经常遇到需要签名的场 合。传统的方式是采用手写签名或印章,以便在法律上能认证、 核准、生效。在电子世界里,人们希望通过某种方法来代替手写 签名,以实现对数字信息的签名
数字签名的基本概念 数字签名的背景 政治、军事、外交、商业以及日常事务中经常遇到需要签名的场 合。传统的方式是采用手写签名或印章,以便在法律上能认证、 核准、生效。在电子世界里,人们希望通过某种方法来代替手写 签名,以实现对数字信息的签名
数字签名的基本概念 。数字签名的特性 ()不可伪造性:除了签名者外,任何人都不能伪造签名者的合法 签名。 (2)认证性:接收者相信这份签名来自签名者。 (3)不可重复使用性:一个消息的签名不能用于其他消息。 (4)不可修改性:一个消息在签名后不能被修改。 (⑤)不可否认性:签名者事后不能否认自己的签名
数字签名的基本概念 数字签名的特性 (1)不可伪造性: 除了签名者外,任何人都不能伪造签名者的合法 签名。 (2)认证性:接收者相信这份签名来自签名者。 (3)不可重复使用性:一个消息的签名不能用于其他消息。 (4)不可修改性:一个消息在签名后不能被修改。 (5)不可否认性:签名者事后不能否认自己的签名
数字签名的基本概念 。数字签名方案的组成 ■一个数字签名方案包含:签名算法(signature algorithm)和验证 算法(verification algorithm)。 ■签名算法的输入是签名者的私钥sk和消息m,输出是对m的数字 签名,记为s=Sig(sk,m。 ■验证算法输入的是签名者的公钥pk,消息和签名s,输出是真 或伪,记为: 真当s=Sig(sk,m) Ver(pk,m,s)= 伪当s≠Sig(sk,m)
数字签名的基本概念 数字签名方案的组成 一个数字签名方案包含:签名算法(signature algorithm)和验证 算法(verification algorithm)。 签名算法的输入是签名者的私钥sk和消息m,输出是对m的数字 签名,记为s=Sig(sk, m)。 验证算法输入的是签名者的公钥pk,消息m和签名s,输出是真 或伪,记为: Sig( , ) Ver( , , ) Sig( , ) s sk m pk m s s sk m 真 当 伪 当
数字签名的基本概念 ·数字签名方案分类 ()按用途来分,数字签名可分为普通数字签名和具有特殊用途的 数字签名(如盲签名(blind signature)、不可否认签名(undeniable signature))、群签名(group signature))、代理签名(proxy signature) 等)。 (2)按是否具有消息恢复功能来分,数字签名可分为具有消息恢复 功能的数字签名和不具有消息恢复功能的数字签名。 (3)按是否使用随机数来分,数字签名可分为确定性数字签名和随 机化数字签名(randomized digital signature)
数字签名的基本概念 数字签名方案分类 (1)按用途来分,数字签名可分为普通数字签名和具有特殊用途的 数字签名(如盲签名(blind signature)、不可否认签名(undeniable signature)、群签名(group signature)、代理签名(proxy signature) 等)。 (2)按是否具有消息恢复功能来分,数字签名可分为具有消息恢复 功能的数字签名和不具有消息恢复功能的数字签名。 (3)按是否使用随机数来分,数字签名可分为确定性数字签名和随 机化数字签名(randomized digital signature)
例 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数字签名