公开密钥密码(讲课用)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1978年美国麻省理工学院的三名密码学者 R.L.Rivest,A.Shamir和L.Adleman提出了 一种基于大合数因子分解困难性的公开密 钥密码,简称为RSA密码。 RSA密码被誉为是一种风格幽雅的公开密 钥密码。既可用于加密,又可用于数字签 名,安全、易懂。 RSA密码已成为目前应用最广泛的公开密 钥密码。
④B用A的公开的加密钥KeA 解密S,得到M: M=E(S,KeA)
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性: 安全性分析:
①只有A才有KdA ,因此只有A才能加密产生S,所 以确保了真实性。
②只有B才有K dB ,因此只有B才能获得明文,所 以确保了秘密性。
三、RSA公开密钥密码
公开密钥密码
一、公开密钥密码体制的基本思想
1、传统密码的缺点: ①收发双方持有相同密钥,密钥分配困难, 网络环境更突出。 Ke = Kd
②不能方便地实现数字签名,商业等应用不 方便。
问题:
(1)密钥管理量的困难
传统密钥管理:两两分别用一对密钥时,则n个用 户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密 钥空间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时, C(5000,2)=12,497,500
解密:P=Cd mod n = 4177 mod 119= 6。
三、RSA公开密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥
小合数的因子分解是容易的,然而大合数的 因子分解却是十分困难的。关于大合数的因子 分解的时间复杂度下限目前尚没有一般的结果, 迄今为止的各种因子分解算法提示人们这一时 间下限将不低于O(EXP(lnNlnlnN) 1/2 )。根 据这一结论,只要合数足够大,进行因子分解 是相当困难的。
密钥数量 N(N-1)/2
功 能 加密
2N
加密,签名,密钥分配
Return
一、公开密钥密码体制的基本思想
2、公开密钥密码的基本思想: ①将密钥 K一分为二,一个专门加密,一个 专门解密: Ke ≠ Kd ②且由Ke 不能计算出 Kd ,于是可将Ke公开, 使密钥分配简单。 ③由于Ke ≠ Kd且由Ke 不能计算出 Kd ,所以 Kd 便成为用户的指纹,于是可方便地实现 数字签名。
②A用KeB 加密M得到密文C: C=E(M,KeB) ③A发C给B。 收方: ①B接受C。 ②B用自己的KdB解密,得到明文M=D(C,KdB)。
公开密钥用于加密:
发送方A
接收方B
二、公开密钥密码的基本工作方式
1、确保数据秘密性: 安全性分析:
①只有B才有K dB ,因此只有B才能解密,所以确 保了秘密性。 ②任何人都可查PKDB得到B的K eB ,所以任何人 都可冒充A给B发送数据。不能确保真实性。
公钥加密算法
传统加密过程
加密和解密使用相同 密钥
明文
密文
明文
公钥加密算法
公钥密码算法
加密和解密使用 不同密钥
明文
密文
明文
常规加密和公开密钥加密的比较
常规加密 加密解密 同一密钥
安全条件 密钥必须保密 加密速度 快 方 便 性 密钥初始分配不便
公开密钥加密 不同密钥
其中一个保密 慢 密钥公开方便
① A首先用自己的KdA对M加密,得到S: S=D(M,KdA) ② 查PKDB,查到B的公开的加密钥KeB 。 ③ 用KeB 加密S得到C: C=E(S,KeB) ④A发C给B。
M
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性: 收方:
①B接受C。 ② B用自己的KdB解密C,得到S: S=D(C,KdB) ③B查PKDB查到A的公开的加密钥KeA 。
RSA举例
举例:
1.选择p=7,q=17。
2.计算n=p*q=119,Φ(n)=(p-1)*(q-1)=96。 3.选e=5,因为5和96互素。
4.根据5d mod 96=1,得d=77。
5.公钥为(5,119),密钥为77。 如:明文为P=6
密文: C=Pe mod n = 65 mod 119 =41。
(2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。
公开密钥密码体制起源
公钥密码又称为双钥密码和非对称密码,是1976 年由Diffie和Hellman在其“密码学新方向”一文 中提出的,见划时代的文献:
W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654
发送方A
接收方B
二、公开密钥密码的基本工作方式
2、确保数据真实性: 安全性分析:
①只有A才有KdA ,因此只有A才能加密产生C,所 以确保了真实性。 ②任何人都可查PKDB得到A的KeA,所以任何人都 可解密得到明文。不能确保秘密性。
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性:A B 发方:
三、RSA公开密钥密码 1、加解密算法
①随机地选择两个大素数 p和 q,而且保密; ②计算n=pq,将 n公开; ③计算φ (n)=(p-1)(q-1),对φ (n)保密; ④随机地选取一个正整数e, 1<e<φ (n)且(e,φ (n))=1,即φ (n)和e 互素。将 e公开; ⑤根据 ed modφ (n)=1 ,求出d,并对d保 密; ⑥加密运算:C=M e mod n ⑦解密运算:M=C d mod n
RSA公钥算法是由Rivest,Shamir和Adleman在 1978年提出来的, 见
Communitions of the ACM. Vol.21.No.2. Feb. 1978, PP.120-126
公开密钥密码的重要特性
加密与解密由不同的密钥完成
加密: mc: c = EK(m) 解密: cm: m = DB(c) = DB(EK(m)) 知道加密算法,从加密密钥得到解密密 钥在计算上是不可行的 两个密钥中任何一个都可以用作加密 而另一个用作解密(不是必须的) m = DB(EK(m)) = EK(DB(m))
一、公开密钥密码体制的基本思想
3、公开密钥密码的基本条件: ①E和 D互逆; 基本条件,保密条件 D(E(M))=M ② Ke ≠ Kd且由Ke 不能计算出 Kd ;安全条 件 ③E和 D都高效。 实用条件 ④E(D(M))=M 保真条件 如果满足① ② ③可保密,如果满足② ③ ④可保真,如果4个条件都满足,可同时保 密保真。
三、RSA公来自百度文库密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥 但他又知道, φ (n)=(p-1)(q-1), 要从中求出φ (n),必须先求出p和q,而p和q是保 密的。但他知道, n=pq, 要从n求出p和q,只有对n进行因子分解。而当n足 够大时,这是很困难的。
课堂作业:
1、穷举法破解 KTGCFDQQM密文 2、给定素数p=3,q=11,用RSA算法生 成一对密钥,并对2进行加密。
二、公开密钥密码的基本工作方式
2、确保数据真实性:A
M
B
发方: ①A首先用自己的KdA对M解加密,得到C=D(M,KdA)。 ② A发C给B。 收方: ①B接受C。 ②B查PKDB查到A的公开的加密钥KeA 。 ③B用KeA解密C,得到明文M=E(C,KeA)。
这样B就用A的公开密钥鉴别了该报文。
二、公开密钥密码的基本工作方式
设 M为明文,C为密文,E为公开密钥密 码的加密算法,D为解密算法,K e 为公开 的加密钥,Kd为保密的解密钥,每个用户 都分配一对密钥,而且将所有用户的公开 的加密钥Ke存入共享的密钥库PKDB。
二、公开密钥密码的基本工作方式
1、确保数据秘密性:A
M
B
发方: ①A首先查PKDB,查到B的公开的加密钥 KeB 。
三、RSA公开密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥 假设截获密文C,从中求出明文M。他知道 M≡Cd mod n , 因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道, ed≡1 mod φ (n), e是公开的,要从中求出d,必须先求出φ (n),而 φ (n)是保密的。
④B用A的公开的加密钥KeA 解密S,得到M: M=E(S,KeA)
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性: 安全性分析:
①只有A才有KdA ,因此只有A才能加密产生S,所 以确保了真实性。
②只有B才有K dB ,因此只有B才能获得明文,所 以确保了秘密性。
三、RSA公开密钥密码
公开密钥密码
一、公开密钥密码体制的基本思想
1、传统密码的缺点: ①收发双方持有相同密钥,密钥分配困难, 网络环境更突出。 Ke = Kd
②不能方便地实现数字签名,商业等应用不 方便。
问题:
(1)密钥管理量的困难
传统密钥管理:两两分别用一对密钥时,则n个用 户需要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密 钥空间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时, C(5000,2)=12,497,500
解密:P=Cd mod n = 4177 mod 119= 6。
三、RSA公开密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥
小合数的因子分解是容易的,然而大合数的 因子分解却是十分困难的。关于大合数的因子 分解的时间复杂度下限目前尚没有一般的结果, 迄今为止的各种因子分解算法提示人们这一时 间下限将不低于O(EXP(lnNlnlnN) 1/2 )。根 据这一结论,只要合数足够大,进行因子分解 是相当困难的。
密钥数量 N(N-1)/2
功 能 加密
2N
加密,签名,密钥分配
Return
一、公开密钥密码体制的基本思想
2、公开密钥密码的基本思想: ①将密钥 K一分为二,一个专门加密,一个 专门解密: Ke ≠ Kd ②且由Ke 不能计算出 Kd ,于是可将Ke公开, 使密钥分配简单。 ③由于Ke ≠ Kd且由Ke 不能计算出 Kd ,所以 Kd 便成为用户的指纹,于是可方便地实现 数字签名。
②A用KeB 加密M得到密文C: C=E(M,KeB) ③A发C给B。 收方: ①B接受C。 ②B用自己的KdB解密,得到明文M=D(C,KdB)。
公开密钥用于加密:
发送方A
接收方B
二、公开密钥密码的基本工作方式
1、确保数据秘密性: 安全性分析:
①只有B才有K dB ,因此只有B才能解密,所以确 保了秘密性。 ②任何人都可查PKDB得到B的K eB ,所以任何人 都可冒充A给B发送数据。不能确保真实性。
公钥加密算法
传统加密过程
加密和解密使用相同 密钥
明文
密文
明文
公钥加密算法
公钥密码算法
加密和解密使用 不同密钥
明文
密文
明文
常规加密和公开密钥加密的比较
常规加密 加密解密 同一密钥
安全条件 密钥必须保密 加密速度 快 方 便 性 密钥初始分配不便
公开密钥加密 不同密钥
其中一个保密 慢 密钥公开方便
① A首先用自己的KdA对M加密,得到S: S=D(M,KdA) ② 查PKDB,查到B的公开的加密钥KeB 。 ③ 用KeB 加密S得到C: C=E(S,KeB) ④A发C给B。
M
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性: 收方:
①B接受C。 ② B用自己的KdB解密C,得到S: S=D(C,KdB) ③B查PKDB查到A的公开的加密钥KeA 。
RSA举例
举例:
1.选择p=7,q=17。
2.计算n=p*q=119,Φ(n)=(p-1)*(q-1)=96。 3.选e=5,因为5和96互素。
4.根据5d mod 96=1,得d=77。
5.公钥为(5,119),密钥为77。 如:明文为P=6
密文: C=Pe mod n = 65 mod 119 =41。
(2)数字签名的问题 传统加密算法无法实现抗抵赖的需求。
公开密钥密码体制起源
公钥密码又称为双钥密码和非对称密码,是1976 年由Diffie和Hellman在其“密码学新方向”一文 中提出的,见划时代的文献:
W.Diffie and M.E.Hellman, New Directrions in Cryptography, IEEE Transaction on Information Theory, V.IT-22.No.6, Nov 1976, PP.644-654
发送方A
接收方B
二、公开密钥密码的基本工作方式
2、确保数据真实性: 安全性分析:
①只有A才有KdA ,因此只有A才能加密产生C,所 以确保了真实性。 ②任何人都可查PKDB得到A的KeA,所以任何人都 可解密得到明文。不能确保秘密性。
二、公开密钥密码的基本工作方式
3、同时确保数据秘密性和真实性:A B 发方:
三、RSA公开密钥密码 1、加解密算法
①随机地选择两个大素数 p和 q,而且保密; ②计算n=pq,将 n公开; ③计算φ (n)=(p-1)(q-1),对φ (n)保密; ④随机地选取一个正整数e, 1<e<φ (n)且(e,φ (n))=1,即φ (n)和e 互素。将 e公开; ⑤根据 ed modφ (n)=1 ,求出d,并对d保 密; ⑥加密运算:C=M e mod n ⑦解密运算:M=C d mod n
RSA公钥算法是由Rivest,Shamir和Adleman在 1978年提出来的, 见
Communitions of the ACM. Vol.21.No.2. Feb. 1978, PP.120-126
公开密钥密码的重要特性
加密与解密由不同的密钥完成
加密: mc: c = EK(m) 解密: cm: m = DB(c) = DB(EK(m)) 知道加密算法,从加密密钥得到解密密 钥在计算上是不可行的 两个密钥中任何一个都可以用作加密 而另一个用作解密(不是必须的) m = DB(EK(m)) = EK(DB(m))
一、公开密钥密码体制的基本思想
3、公开密钥密码的基本条件: ①E和 D互逆; 基本条件,保密条件 D(E(M))=M ② Ke ≠ Kd且由Ke 不能计算出 Kd ;安全条 件 ③E和 D都高效。 实用条件 ④E(D(M))=M 保真条件 如果满足① ② ③可保密,如果满足② ③ ④可保真,如果4个条件都满足,可同时保 密保真。
三、RSA公来自百度文库密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥 但他又知道, φ (n)=(p-1)(q-1), 要从中求出φ (n),必须先求出p和q,而p和q是保 密的。但他知道, n=pq, 要从n求出p和q,只有对n进行因子分解。而当n足 够大时,这是很困难的。
课堂作业:
1、穷举法破解 KTGCFDQQM密文 2、给定素数p=3,q=11,用RSA算法生 成一对密钥,并对2进行加密。
二、公开密钥密码的基本工作方式
2、确保数据真实性:A
M
B
发方: ①A首先用自己的KdA对M解加密,得到C=D(M,KdA)。 ② A发C给B。 收方: ①B接受C。 ②B查PKDB查到A的公开的加密钥KeA 。 ③B用KeA解密C,得到明文M=E(C,KeA)。
这样B就用A的公开密钥鉴别了该报文。
二、公开密钥密码的基本工作方式
设 M为明文,C为密文,E为公开密钥密 码的加密算法,D为解密算法,K e 为公开 的加密钥,Kd为保密的解密钥,每个用户 都分配一对密钥,而且将所有用户的公开 的加密钥Ke存入共享的密钥库PKDB。
二、公开密钥密码的基本工作方式
1、确保数据秘密性:A
M
B
发方: ①A首先查PKDB,查到B的公开的加密钥 KeB 。
三、RSA公开密钥密码
2、算法论证
④在计算上由公开密钥不能求出解密钥 假设截获密文C,从中求出明文M。他知道 M≡Cd mod n , 因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道, ed≡1 mod φ (n), e是公开的,要从中求出d,必须先求出φ (n),而 φ (n)是保密的。