在当前的网络环境下,信息安全体系是保证信息安全的关键,本篇文章将介绍非对称密钥与加密体制,这些都是对计算机信息进行保护的最实用和最可靠的方法。
对称密钥与非对称密钥体制
对称密钥体制:Ke= Kd
非对称密钥体制: Ke≠ Kd
是否对称是根据密钥来区分,而不是根据加密和解密的算法同不同
1976年,Deffie和Hellman共同提出了公钥密码的概念,标志现代密码学的开始
非对称密码 /公钥密码 /双钥密码
公钥:可以公开,一般用于加密
私钥:不能公开,一般用于解密
对称密钥体制的困难
密钥的分发和管理复杂,代价高昂
对于具有n个用户的网络,需要n(n-1)/2个密钥。当n=100时,密钥总数为4950个。
数字签名问题:与书面材料中使用的签名等效的认证手段
KDC 密钥分发中心
为了解决对称加密体制中的密钥管理问题,可以采用KDC(Key Distribution Center)
当前著名的密钥分发中心是Kerberos体制
非对称加密体制
存在成对的密钥,一个为公钥(可以公开的,用于加密),另一个是私钥(需要保密,用于解密)。由公钥不能容易地得到私钥。由公钥加密的数据,可以由相应的私钥解密。对于具有n个用户的网络,只需要2n个密钥。
公开密钥体制现存的问题
基于尖端的数学难题,计算非常复杂,安全性更高,但是实现速度却远远赶不上对称加密系统。
混合加密系统
会话密钥
一个应用RSA、DES的混合加密
当前使用的公钥密码算法
基于:大整数因子分解系统(如RSA)
基于:椭圆曲线离散对数系统(ECC)
基于:离散对数系统(如DSA)
最著名的公钥加密系统
RSA公钥加密系统
由Rivet, Shamir, Adelman 提出,基于大整数因子分解难题
公钥密码系统的密钥长度:512位的长度已经被攻破。现在一般使用1024位长的密钥长度。对于更高的安全性要求,应该使用2048位长的密钥
RSA公钥系统
1978年,由RonRivest,AdiShamir, Len Adleman发表的公钥系统。
安全性是基于大整数因子分解的困难性。
例如:
计算 47 X 71 是容易的,但分解3337 = 47 X 71要困难得多。
可以证明攻破RSA的难度跟分解大整数的难度相同。
RSA是现在应用最广泛、实用性最高的非对称加密算法。
几种非对称加密算法
背包密码算法:最初提出的一种非对称加密算法,现已被证明不安全
RSA密码算法:应用最广泛,原理和算法简单,但密钥长度大,速度慢
ECC(椭圆曲线密码算法):近来迅速发展的一个非对称加密算法,密钥长度短
DSA密码算法,基于离散对数的计算困难性
RSA算法的描述—密钥的产生
选择p, q 两个素数
计算n = pq, φ(n)=(p-1)(q-1)
选择 e,其中 gcd(φ(n), e) = 1, 1 计算 d = e-1mod φ(n)。也就是找出d,使d * e = 1 mod φ(n)。可以应用扩展欧几里得算法。 私有密钥:(d, n), 公开密钥:(e, n) RSA的加密方法和解密方法 RSA是分组密码,对于长信息必须根据n的大小分组 明文和密文都是介于0和 n-1之间的整数 RSA算法的加密算法和解密算法是相同的,但使用的密钥不同 对于明文m 加密算法:c = memod n 解密算法:m = cdmod n RSA算法举例 选取 p=47, q=71 n = pq= 3337, φ(n)=(p-1)(q-1)=3220 选取 e = 79, 那么d = 79-1mod 3220 = 1019 该数用扩展欧几里得算法计算公钥为(79, 3337),密钥为(1019, 3337) 公钥为(79, 3337),密钥为(1019, 3337) 如,明文为m = 3,则c = 3 79mod 3337 = 158 m = 1581019mod 3337 = 3 = m RSA的特点 实用的RSA加密,密钥长度必需足够长。 现阶段,一般的商业应用要求密钥长度512位(二进制位),高安全级要求1024位。 十进制位129位的密钥已经被攻破。 512位的密钥,用软件实现时,RSA比DES慢大约100倍。用硬件实现时,RSA比DES慢大约1000倍。 RSA的密钥长,加密速度慢。