第二讲之第4章公钥密码体制课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用最广泛的公钥密码算法 只有美国专利,且已于2000年9月到期
1.RSA算法要点
算法产生一对密钥,一个人可以用密钥对中 的一个加密消息,另一个人则可以用密钥对 中的另一个解密消息。同时,任何人都无法 通过公钥确定私钥,也没有人能使用加密消 息的密钥解密。只有密钥对中的另一把可以 解密消息。
具体实现步骤: (1)发送方A生成用于DES加密的密钥K,为了
提高数据的安全性,每一个密钥K只用一次。 (2)发送方从密钥服务器中获取接收方的
RSA的公开加密密钥Keb,并用Keb加密DES的密 钥K形成密文Ck。
续(1)
(3)发送方A生成需要签名的信息,并用 自己的RSA的解密密钥Kda和Keb共同形成 数字签名。
c= me mod n=857 mod 143=123,并发送给 李先生。
李先生在收到密文c=123后,利用只有他自己 知道的秘密密钥计算:m= cd mod n =123103 mod 143=85,所以,李先生可以得到张小姐发 给他的真正的信息m=85,实现了解密。
7.RSA算法的安全性
依赖于大数分解,但是否等同于大数分解一直 未能证明。不管怎样,分解n是最显然的攻击方法 。 1994年4月26日,美国各大媒体报道:由RSA发 明人在17年前出的129位数字已被因子分解,并破 解了附带的密语:
特征与不足
特征:
•(1)仅当需要时才产生密钥,减少储存时间,减 少受攻击的机会; •(2)除对全局参数的约定外,密钥交换不需要事 先存在的基础结构。
不足:
(1)没有通信双方身份的信息; (2)计算是密集性的,容易受到阻塞性攻击; (3)没办法防止重放攻击; (4)容易受到中间人攻击。
4.3 RSA算法
可见,这里省去了从秘密信道传递密钥的过程 。这是公钥体制的一大优点。
续
(2)保护信息机密
任何人均可将明文加密成密文,此后只有拥有解密密钥 的人才能解密。
(3)实现不可否认功能
公钥体制用于数字签名时:
信源为了他人能够验证自己发送的消息确实来自本人,他将自己 的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与 别人通信时,则用自己的加密密钥对消息加密──称为签名,将 原消息与签名后的消息一起发送.
3)为保证安全性,n 至少也要 600 bits以上 ,且还在增加。在运算上要付出代价。
12. RSA算法和DES算法比较
比较1
在加密、解密的处理效率方面,DES算法 优于RSA算法。因为DES密钥的长度只有56 比特,可以利用软件和硬件实现高速处理; RSA算法需要进行诸如200比特整数的乘幂 和求模等多倍字长的处理,处理速度明显慢于 DES算法。
对方收到消息后,为了确定信源的真实性,用对方的解密密钥解 密签名消息──称为(签名)验证,如果解密后的消息与原消息 一致,则说明信源是真实的,可以接受,否则,拒绝接受。
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B 两个陌生人之间建立共享秘密密钥的公开密钥算 法,称为Diffie-Hellman算法,它定义了公开密 钥密码体制。它的目的是使得两个用户安全地交 换一个密钥以便用于以后的报文加密,这个算法 本身限于密钥交换的用途。许多商用产品都使用 这种密钥交换技术。
在Diffie-Hellman密钥交换算法中的单向函数 是模指数运算。它的逆过程是离散对数问题,其 Diffie-Hellman算法的保密性基于求mod p解离散 对数问题的困难。
离散对数
定义素数p的原元(原始根)为这样一个 数,他能生成1~p-1所有数的一个数。现 设a为p的原元,则
a mod p, a2 mod p, , a p1 mod p
两两互不相同,构成一个1~p-1的全体数 的一个排列。对于任意数b及素数p的原元 a,可以找到一个唯一的指数 i,满足
b ai mod p , 0<=i<=p-1
则称指数i为以a为底、模p的b的离散对数。
1.基本原理
用户A
公开 YA 秘密 XA
用户B
YB 公开
XB 秘密
计算
计算
会话秘密 KA 密钥交换过程 KB 会话秘密
4.RSA 的使用
发送方要加密明文M:
获得接收方的公钥 KU={e,N} 计算: C=Me mod N, where 0≤M<N
接收方解密密文C:
使用自己的私钥 KR={d,N} 计算: M=Cd mod N
注意:M必须比N小
5.RSA例1
①取两个质数p=11,q=13,p和q的乘积为 n=p×q=143,算出另一个数z=(p-1)×(q-1)=120; ②再选取一个与z=120互质的数,例如e=7,则
基于RSA算法的公钥加密系统具有数据加 密、数字签名(Digital Signature)、信息 源识别及密钥交换等功能。
Biblioteka Baidu
11. RSA算法的优缺点
优点
密钥空间大
缺点
1)产生密钥很麻烦,受到素数产生技术的限 制,因而难以做到一次一密。
2)速度太慢。RSA速度比DES慢得多,无论是 软件还是硬件实现,速度一直是RSA的缺陷。
第二讲 信息安全技术
第2章 密码技术基础 第3章 对称密码体系 第4章 公钥密码体系 第5章 公钥基础设施PKI 第6章 信息隐藏技术
第四章 内容
4.1公钥密学概述 4.2 Diffie-Hellman 密钥交换算法 4.3 RSA算法
4.1 公钥密码概述
1976年,Diffie 和Hellmann提出了公开密 钥密码体制(简称公钥体制),它的加密 、解密密钥是不同的,也是不能(在有效 的时间内)相互推导。所以,它可称为双 钥密码体制。
公开密钥密码体制的产生,是密码学革命 性的发展。一方面,为数据的保密性、完 整性、真实性提供了有效方便的技术。另 一方面,科学地解决了密码技术的瓶颈 ──密钥的分配问题。
公钥体制算法
第一个公钥体制是1977年由Rivest, Shamir,Adleman提出的,称为RSA 公钥体制,其安全性是基于整数的因子 分解的困难性。RSA公钥体制已得到了 广泛的应用。
p、q不相同,即不要太接近,又不能差别太大 p-1、q-1都有大素数因子,增加猜测φ(r) 难度 gcd( p-1,q-1)应当小
RSA算法的脆弱性(续)
4)p、q选择不当,则变换周期性、封闭性而泄密 例:p=17,q=11,e=7,则n=187。 设m=123,则 C1=1237 mod 187=183 C2=1837 mod 187=72 C3=727 mod 187=30 C4=307 mod 187=123 明文m经过4次加密,恢复成明文。
基于背包问题的Merkle-Hellman背包公 钥体制
基于有限域上离散对数问题的ElGamal 公钥体制
基于椭圆曲线的ECC密码体制
……
公钥密码体制介绍
公钥密码体制加解密过程主要有以下几步 :
不一样的密码
安全的公开密钥密码达到的功能
(1)简化密钥分配及管理问题
公钥体制用于数据加密时:
用户将自己的公开(加密)密钥登记在一个公 开密钥库或实时公开,秘密密钥则被严格保密 。信源为了向信宿发送信息,去公开密钥库查
一对密钥 找对方的公开密钥,或临时向对方索取公钥, 将要发送的信息用这个公钥加密后在公开信道 上发送给对方,对方收到信息(密文)后,则 用自己的秘密(解密)密钥解密密文,读取信 息。
1978年由Ron Rivest、AdiShamir和Len Adleman发明。
“A method for obtaining digital signatures and public key cryptosystem”
是一种块加密算法。
明文和密文在0~n-1之间,n是一个正整数
The magic words are squeamish ossifrage. 目前,已能分解140位十进制的大素数。因此, 模数n必须选大一些。 RSA最快的情况也比DES慢上100倍,无论是软 件还是硬件实现。速度一直是RSA的缺陷。一般只 用于少量数据加密。
8.RSA算法的脆弱性
不能证明RSA密码破译等同于大数因子分解 1) 速度问题:增大p•q将使开销指数级增长 2) 至少有9个明文,加密后不变,即me mod n=m 3) 普通用户难于选择p、q。对p、q的基本要求:
2.RSA算法描述
加密: C=Me mod N, where 0≤M<N 解密: M=Cd mod N 公钥为(e,N), 私钥为(d,N) 必须满足以下条件:
计算Me和Cd是比较容易的 由e和N确定d是不可行的
3.RSA 密钥产生过程
随机选择两个互质大素数 p, q (p,q 必须保密) 计算 n=p.q 计算z =(p-1)(q-1) 随机选择整数 e,使得1<e<z且gcd(e,z)=1 计算d :d=e-1 mod z 且 0≤ d ≤ n 公布公钥: KU={e,n} 保存私钥: KR={d,n}
2.交换示例 为了计算简单,使用很小数字。设P=47和47
的一个原元,a=3。
A选择秘密密钥XA=8,B选择秘密密钥XB=10, 各自计算其公开密钥。
(1)双方各自计算
用户A计算:YA=3 8mod 47=6561 mod 47=28 mod 47
用 户 B 计 算 : YB=3 10mod 47= 59049 mod 47=17 mod 47
2.交换示例(续) (2)交换YA和YB; (3)交换密钥后,A、B分别计算共享的秘密
会话密钥KA、KB: 用 户A计 算: KA=YB XA mod 47=178 mod
47=4 mod 47
用户B计算: KB=YA XB mod 47=2810 mod 47=4 mod 47
A和B双方独立地决定采用数据“4”作为 会话密钥。
公开密钥=(n,e)=(143,7)。 ③ 对于这个e值,可以算出其逆:d=103。 ④ 因为e×d=7×103=721,满足e×d mod z =1 ;即721 mod 120=1成立。
则秘密密钥=(n,d)=(143,103)。
6.RSA例2
张小姐需要发送机密信息(明文)m=85给李 先生,她已经从公开媒体得到了李先生的公开密 钥(n,e)=(143,7),于是她算出加密值:
续(1)
比较2
在密钥的管理方面,RSA算法比DES 算法更加优越。因为RSA算法可采用公开 形式分配加密密钥,对加密密钥的更新也 很容易,并且对不同的通信对象,只需对 自己的解密密钥保密即可;DES算法要求 通信前对密钥进行秘密分配,密钥的更换 困难,对不同的通信对象,DES需产生和 保管不同的密钥。
续(2)
比较3 在安全性方面,DES算法和RSA算法
的安全性都较好,还没有在短时间内破译 它们的有效的方法。
比较4 在签名和认证方面,DES算法从原理
上不可能实现数字签名和身份认证,但 RSA算法能够容易地进行数字签名和身份 认证。
13. 基于DES和RSA的加密方案
设发送方为A(加密密钥为Kea,解密密钥为 Kda),接收方为B(加密密钥为Keb,解密密钥为 Kdb)。
密钥交换过程
(1)选择一个素数P和它的一个原元a;
(公2)开通密信钥方YAA选: 择自己的秘密密钥XA,并计算自己的 YA=a XA mod P
(3)通信方B选择自己的秘密密钥XB,并计算自己的 公开密钥YB: YB=a XB mod P
(4)通信双方A和B交换YA和YB; (5)A独立计算会话密钥,B独立计算会话密钥KS; (6)通信双方利用会话密钥KS进行通信。
总之,RSA对用户要求太苛刻,密钥不能常更换。
9.RSA算法的攻击方法
(1)选择密文攻击
(2)过小加密指数e (3) RSA的公共模数攻击 (4)RSA的计时攻击法
10. RSA的实用性
公开密钥密码体制有优点,但它的运算量大 ,计算复杂。
结合对称密钥密码体制使用
RSA算法在互联网的许多方面得以广泛应 用。
1.RSA算法要点
算法产生一对密钥,一个人可以用密钥对中 的一个加密消息,另一个人则可以用密钥对 中的另一个解密消息。同时,任何人都无法 通过公钥确定私钥,也没有人能使用加密消 息的密钥解密。只有密钥对中的另一把可以 解密消息。
具体实现步骤: (1)发送方A生成用于DES加密的密钥K,为了
提高数据的安全性,每一个密钥K只用一次。 (2)发送方从密钥服务器中获取接收方的
RSA的公开加密密钥Keb,并用Keb加密DES的密 钥K形成密文Ck。
续(1)
(3)发送方A生成需要签名的信息,并用 自己的RSA的解密密钥Kda和Keb共同形成 数字签名。
c= me mod n=857 mod 143=123,并发送给 李先生。
李先生在收到密文c=123后,利用只有他自己 知道的秘密密钥计算:m= cd mod n =123103 mod 143=85,所以,李先生可以得到张小姐发 给他的真正的信息m=85,实现了解密。
7.RSA算法的安全性
依赖于大数分解,但是否等同于大数分解一直 未能证明。不管怎样,分解n是最显然的攻击方法 。 1994年4月26日,美国各大媒体报道:由RSA发 明人在17年前出的129位数字已被因子分解,并破 解了附带的密语:
特征与不足
特征:
•(1)仅当需要时才产生密钥,减少储存时间,减 少受攻击的机会; •(2)除对全局参数的约定外,密钥交换不需要事 先存在的基础结构。
不足:
(1)没有通信双方身份的信息; (2)计算是密集性的,容易受到阻塞性攻击; (3)没办法防止重放攻击; (4)容易受到中间人攻击。
4.3 RSA算法
可见,这里省去了从秘密信道传递密钥的过程 。这是公钥体制的一大优点。
续
(2)保护信息机密
任何人均可将明文加密成密文,此后只有拥有解密密钥 的人才能解密。
(3)实现不可否认功能
公钥体制用于数字签名时:
信源为了他人能够验证自己发送的消息确实来自本人,他将自己 的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与 别人通信时,则用自己的加密密钥对消息加密──称为签名,将 原消息与签名后的消息一起发送.
3)为保证安全性,n 至少也要 600 bits以上 ,且还在增加。在运算上要付出代价。
12. RSA算法和DES算法比较
比较1
在加密、解密的处理效率方面,DES算法 优于RSA算法。因为DES密钥的长度只有56 比特,可以利用软件和硬件实现高速处理; RSA算法需要进行诸如200比特整数的乘幂 和求模等多倍字长的处理,处理速度明显慢于 DES算法。
对方收到消息后,为了确定信源的真实性,用对方的解密密钥解 密签名消息──称为(签名)验证,如果解密后的消息与原消息 一致,则说明信源是真实的,可以接受,否则,拒绝接受。
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B 两个陌生人之间建立共享秘密密钥的公开密钥算 法,称为Diffie-Hellman算法,它定义了公开密 钥密码体制。它的目的是使得两个用户安全地交 换一个密钥以便用于以后的报文加密,这个算法 本身限于密钥交换的用途。许多商用产品都使用 这种密钥交换技术。
在Diffie-Hellman密钥交换算法中的单向函数 是模指数运算。它的逆过程是离散对数问题,其 Diffie-Hellman算法的保密性基于求mod p解离散 对数问题的困难。
离散对数
定义素数p的原元(原始根)为这样一个 数,他能生成1~p-1所有数的一个数。现 设a为p的原元,则
a mod p, a2 mod p, , a p1 mod p
两两互不相同,构成一个1~p-1的全体数 的一个排列。对于任意数b及素数p的原元 a,可以找到一个唯一的指数 i,满足
b ai mod p , 0<=i<=p-1
则称指数i为以a为底、模p的b的离散对数。
1.基本原理
用户A
公开 YA 秘密 XA
用户B
YB 公开
XB 秘密
计算
计算
会话秘密 KA 密钥交换过程 KB 会话秘密
4.RSA 的使用
发送方要加密明文M:
获得接收方的公钥 KU={e,N} 计算: C=Me mod N, where 0≤M<N
接收方解密密文C:
使用自己的私钥 KR={d,N} 计算: M=Cd mod N
注意:M必须比N小
5.RSA例1
①取两个质数p=11,q=13,p和q的乘积为 n=p×q=143,算出另一个数z=(p-1)×(q-1)=120; ②再选取一个与z=120互质的数,例如e=7,则
基于RSA算法的公钥加密系统具有数据加 密、数字签名(Digital Signature)、信息 源识别及密钥交换等功能。
Biblioteka Baidu
11. RSA算法的优缺点
优点
密钥空间大
缺点
1)产生密钥很麻烦,受到素数产生技术的限 制,因而难以做到一次一密。
2)速度太慢。RSA速度比DES慢得多,无论是 软件还是硬件实现,速度一直是RSA的缺陷。
第二讲 信息安全技术
第2章 密码技术基础 第3章 对称密码体系 第4章 公钥密码体系 第5章 公钥基础设施PKI 第6章 信息隐藏技术
第四章 内容
4.1公钥密学概述 4.2 Diffie-Hellman 密钥交换算法 4.3 RSA算法
4.1 公钥密码概述
1976年,Diffie 和Hellmann提出了公开密 钥密码体制(简称公钥体制),它的加密 、解密密钥是不同的,也是不能(在有效 的时间内)相互推导。所以,它可称为双 钥密码体制。
公开密钥密码体制的产生,是密码学革命 性的发展。一方面,为数据的保密性、完 整性、真实性提供了有效方便的技术。另 一方面,科学地解决了密码技术的瓶颈 ──密钥的分配问题。
公钥体制算法
第一个公钥体制是1977年由Rivest, Shamir,Adleman提出的,称为RSA 公钥体制,其安全性是基于整数的因子 分解的困难性。RSA公钥体制已得到了 广泛的应用。
p、q不相同,即不要太接近,又不能差别太大 p-1、q-1都有大素数因子,增加猜测φ(r) 难度 gcd( p-1,q-1)应当小
RSA算法的脆弱性(续)
4)p、q选择不当,则变换周期性、封闭性而泄密 例:p=17,q=11,e=7,则n=187。 设m=123,则 C1=1237 mod 187=183 C2=1837 mod 187=72 C3=727 mod 187=30 C4=307 mod 187=123 明文m经过4次加密,恢复成明文。
基于背包问题的Merkle-Hellman背包公 钥体制
基于有限域上离散对数问题的ElGamal 公钥体制
基于椭圆曲线的ECC密码体制
……
公钥密码体制介绍
公钥密码体制加解密过程主要有以下几步 :
不一样的密码
安全的公开密钥密码达到的功能
(1)简化密钥分配及管理问题
公钥体制用于数据加密时:
用户将自己的公开(加密)密钥登记在一个公 开密钥库或实时公开,秘密密钥则被严格保密 。信源为了向信宿发送信息,去公开密钥库查
一对密钥 找对方的公开密钥,或临时向对方索取公钥, 将要发送的信息用这个公钥加密后在公开信道 上发送给对方,对方收到信息(密文)后,则 用自己的秘密(解密)密钥解密密文,读取信 息。
1978年由Ron Rivest、AdiShamir和Len Adleman发明。
“A method for obtaining digital signatures and public key cryptosystem”
是一种块加密算法。
明文和密文在0~n-1之间,n是一个正整数
The magic words are squeamish ossifrage. 目前,已能分解140位十进制的大素数。因此, 模数n必须选大一些。 RSA最快的情况也比DES慢上100倍,无论是软 件还是硬件实现。速度一直是RSA的缺陷。一般只 用于少量数据加密。
8.RSA算法的脆弱性
不能证明RSA密码破译等同于大数因子分解 1) 速度问题:增大p•q将使开销指数级增长 2) 至少有9个明文,加密后不变,即me mod n=m 3) 普通用户难于选择p、q。对p、q的基本要求:
2.RSA算法描述
加密: C=Me mod N, where 0≤M<N 解密: M=Cd mod N 公钥为(e,N), 私钥为(d,N) 必须满足以下条件:
计算Me和Cd是比较容易的 由e和N确定d是不可行的
3.RSA 密钥产生过程
随机选择两个互质大素数 p, q (p,q 必须保密) 计算 n=p.q 计算z =(p-1)(q-1) 随机选择整数 e,使得1<e<z且gcd(e,z)=1 计算d :d=e-1 mod z 且 0≤ d ≤ n 公布公钥: KU={e,n} 保存私钥: KR={d,n}
2.交换示例 为了计算简单,使用很小数字。设P=47和47
的一个原元,a=3。
A选择秘密密钥XA=8,B选择秘密密钥XB=10, 各自计算其公开密钥。
(1)双方各自计算
用户A计算:YA=3 8mod 47=6561 mod 47=28 mod 47
用 户 B 计 算 : YB=3 10mod 47= 59049 mod 47=17 mod 47
2.交换示例(续) (2)交换YA和YB; (3)交换密钥后,A、B分别计算共享的秘密
会话密钥KA、KB: 用 户A计 算: KA=YB XA mod 47=178 mod
47=4 mod 47
用户B计算: KB=YA XB mod 47=2810 mod 47=4 mod 47
A和B双方独立地决定采用数据“4”作为 会话密钥。
公开密钥=(n,e)=(143,7)。 ③ 对于这个e值,可以算出其逆:d=103。 ④ 因为e×d=7×103=721,满足e×d mod z =1 ;即721 mod 120=1成立。
则秘密密钥=(n,d)=(143,103)。
6.RSA例2
张小姐需要发送机密信息(明文)m=85给李 先生,她已经从公开媒体得到了李先生的公开密 钥(n,e)=(143,7),于是她算出加密值:
续(1)
比较2
在密钥的管理方面,RSA算法比DES 算法更加优越。因为RSA算法可采用公开 形式分配加密密钥,对加密密钥的更新也 很容易,并且对不同的通信对象,只需对 自己的解密密钥保密即可;DES算法要求 通信前对密钥进行秘密分配,密钥的更换 困难,对不同的通信对象,DES需产生和 保管不同的密钥。
续(2)
比较3 在安全性方面,DES算法和RSA算法
的安全性都较好,还没有在短时间内破译 它们的有效的方法。
比较4 在签名和认证方面,DES算法从原理
上不可能实现数字签名和身份认证,但 RSA算法能够容易地进行数字签名和身份 认证。
13. 基于DES和RSA的加密方案
设发送方为A(加密密钥为Kea,解密密钥为 Kda),接收方为B(加密密钥为Keb,解密密钥为 Kdb)。
密钥交换过程
(1)选择一个素数P和它的一个原元a;
(公2)开通密信钥方YAA选: 择自己的秘密密钥XA,并计算自己的 YA=a XA mod P
(3)通信方B选择自己的秘密密钥XB,并计算自己的 公开密钥YB: YB=a XB mod P
(4)通信双方A和B交换YA和YB; (5)A独立计算会话密钥,B独立计算会话密钥KS; (6)通信双方利用会话密钥KS进行通信。
总之,RSA对用户要求太苛刻,密钥不能常更换。
9.RSA算法的攻击方法
(1)选择密文攻击
(2)过小加密指数e (3) RSA的公共模数攻击 (4)RSA的计时攻击法
10. RSA的实用性
公开密钥密码体制有优点,但它的运算量大 ,计算复杂。
结合对称密钥密码体制使用
RSA算法在互联网的许多方面得以广泛应 用。