第二讲之第4章公钥密码体制
对方收到消息后,为了确定信源的真实性,用对方的解密密钥解 密签名消息──称为(签名)验证,如果解密后的消息与原消息 一致,则说明信源是真实的,可以接受,否则,拒绝接受。
4.2 Diffie-Hellman 密钥交换算法
W.Diffie和M.E.Hellman于1976年提出的,让A和B 两个陌生人之间建立共享秘密密钥的公开密钥算 法,称为Diffie-Hellman算法,它定义了公开密 钥密码体制。它的目的是使得两个用户安全地交 换一个密钥以便用于以后的报文加密,这个算法 本身限于密钥交换的用途。许多商用产品都使用 这种密钥交换技术。
用户将自己的公开(加密)密钥登记在一个公 开密钥库或实时公开,秘密密钥则被严格保密 。信源为了向信宿发送信息,去公开密钥库查
一对密钥 找对方的公开密钥,或临时向对方索取公钥, 将要发送的信息用这个公钥加密后在公开信道 上发送给对方,对方收到信息(密文)后,则 用自己的秘密(解密)密钥解密密文,读取信 息。
密钥交换过程
(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进行通信。
公开密钥密码体制的产生,是密码学革命 性的发展。一方面,为数据的保密性、完 整性、真实性提供了有效方便的技术。另 一方面,科学地解决了密码技术的瓶颈 ──密钥的分配问题。
公钥体制算法
第一个公钥体制是1977年由Rivest, Shamir,Adleman提出的,称为RSA 公钥体制,其安全性是基于整数的因子 分解的困难性。RSA公钥体制已得到了 广泛的应用。
续(2)
比较3 在安全性方面,DES算法和RSA算法
的安全性都较好,还没有在短时间内破译 它们的有效的方法。
比较4 在签名和认证方面,DES算法从原理
上不可能实现数字签名和身份认证,但 RSA算法能够容易地进行数字签名和身份 认证。
13. 基于DES和RSA的加密方案
设发送方为A(加密密钥为Kea,解密密钥为 Kda),接收方为B(加密密钥为Keb,解密密钥为 Kdb)。
可见,这里省去了从秘密信道传递密钥的过程 。这是公钥体制的一大优点。
续
(2)保护信息机密
任何人均可将明文加密成密文,此后只有拥有解密密钥 的人才能解密。
(3)实现不可否认功能
公钥体制用于数字签名时:
信源为了他人能够验证自己发送的消息确实来自本人,他将自己 的秘密(解密)密钥公布,而将公开(加密)密钥严格保密。与 别人通信时,则用自己的加密密钥对消息加密──称为签名,将 原消息与签名后的消息一起发送.
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.交换示例(续) (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”作为 会话密钥。
3)为保证安全性,n 至少也要 600 bits以上 ,且还在增加。在运算上要付出代价。
12. RSA算法和DES算法比较
比较1
在加密、解密的处理效率方面,DES算法 优于RSA算法。因为DES密钥的长度只有56 比特,可以利用软件和硬件实现高速处理; RSA算法需要进行诸如200比特整数的乘幂 和求模等多倍字长的处理,处理速度明显慢于 DES算法。
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次加密,恢复成明文。
续(1)
比较2
在密钥的管理方面,RSA算法比DES 算法更加优越。因为RSA算法可采用公开 形式分配加密密钥,对加密密钥的更新也 很容易,并且对不同的通信对象,只需对 自己的解密密钥保密即可;DES算法要求 通信前对密钥进行秘密分配,密钥的更换 困难,对不同的通信对象,DES需产生和 保管不同的密钥。
具体实现步骤: (1)发送方A生成用于DES加密的密钥K,为了
提高数据的安全性,每一个密钥K只用一次。 (2)发送方从密钥服务器中获取接收方的
RSA的公开加密密钥Keb,并用Keb加密DES的密 钥K形成密文Ck。
续(1)
(3)发送方A生成需要签名的信息,并用 自己的RSA的解密密钥Kda和Keb共同形成 数字签名。
公开密钥=(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),于是她算出加密值:
第二讲 信息安全技术
第2章 密码技术基础 第3章 对称密码体系 第4章 公钥密码体系 第5章 公钥基础设施PKI 第6章 信息隐藏技术
第四章 内容
4.1公钥密学概述 4.2 Diffie-Hellman 密钥交换算法 4.3 RSA算法
4.1 公钥密码概述
1976年,Diffie 和Hellmann提出了公开密 钥密码体制(简称公钥体制),它的加密 、解密密钥是不同的,也是不能(在有效 的时间内)相互推导。所以,它可称为双 钥密码体制。
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~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 会话秘密
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
总之,RSA对用户要求太苛刻,密钥不能常更换。
9.RSA算法的攻击方法
(1)选择密文攻击
(2)过小加密指数e (3) RSA的公共模数攻击 (4)RSA的计时攻击法
10. RSA的实用性
公开密钥密码体制有优点,但它的运算量大 ,计算复杂。
结合对称密钥密码体制使用
RSA算法在互联网的许多方面得以广泛应 用。
特减少储存时间,减 少受攻击的机会; •(2)除对全局参数的约定外,密钥交换不需要事 先存在的基础结构。
不足:
(1)没有通信双方身份的信息; (2)计算是密集性的,容易受到阻塞性攻击; (3)没办法防止重放攻击; (4)容易受到中间人攻击。
4.3 RSA算法
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的基本要求:
应用最广泛的公钥密码算法 只有美国专利,且已于2000年9月到期
1.RSA算法要点
算法产生一对密钥,一个人可以用密钥对中 的一个加密消息,另一个人则可以用密钥对 中的另一个解密消息。同时,任何人都无法 通过公钥确定私钥,也没有人能使用加密消 息的密钥解密。只有密钥对中的另一把可以 解密消息。