2.1 加密技术概述
加密技术是信息安全的核心技术。
原理 : 大整数的素因子难分解是 RSA 算法的基础。
里程碑 :
1967 年,美国的 Horst Feistel 在分析传统加密算法的基础上,提出了秘密密钥加密体制的思想。1972 年,IBM 公司的 W. Tuchman 和 C.Meyers 依据秘密密钥加密体制的思想,实现并公开了一个命名为 LUCIFER 的算法。1977 年,美国国家标准化局将此算法作为 美国国家标准,命名为数据加密标准(DES-Data Encrypation Standard)。
1976 年,美国的 Diffie 和 Hallman 提出了一种新的加密体制-公开密钥加密体制。RSA 算法是公开密钥加密体制的典型算法。该算法由美国的 Rivest、Shamir、Adleman 三人于 1978 年提出。( RSA )
2000 年 10 月,NIST(美国国家标准和技术协会) 宣布通过从 15 种侯选算法中选出的一项新的密匙加密标准。Rijndael 被选中成为将 来的 AES。 Rijndael 是在 1999 年下半年,由研究员 Joan Daemen 和 Vincent Rijmen 创建的。美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准 (AES) 规范。
2004 年,国际密码学会议(Crypto’2004) 上,来自中国山东大学的王小云教授做的破译 MD5、HAVAL-128、MD4 和 RIPEMD 算法的报告,意味着这些算法将从应用中淘汰。随后,SHA-1 也被宣告被破解。
加密算法包括古典加密,对称加密和非对称加密。
表格 加密算法分类
加密类型 | 算法说明 | 算法列表 |
---|---|---|
古典加密 | 字符串移动 | |
对称 | 加解密用同一个密码。 | DES , 3DES ,RC2, RC4 , AES |
非对称 | 加解密用不同密码。 | RSA ,新型 椭圆曲线算法 ECC |
签名散列 | MD4、 MD5 、SHA、 DSA 数字签名、ElGamal、Diffie-Hellman,BASE64 |
表格 加密算法发展史
首次 发布 | 算法 | 设计者 | 算法细节 | 备注 |
---|---|---|---|---|
Base64 | 64 为基的位置计数法 | 邮件 MIME 的传输编码,也可作为简单加密。编码后比原来略长,大约为原来的 4/3. | ||
1976 | RSA | Rivest, Shamir, Adleman (MIT) | 极大整数做因数分解 | 支持变长密钥,需要加密的文件块的长度也是可变的。 |
1977 | DES | IBM | 密钥 长度 56 位 块长度 64 位 结构 平衡 费斯妥网络 重复回数 16 | Digital Signature Algorithm:数字签名算法,是一种标准的 DSS(数字签名标准)。1999,EFF 用 22 小时 15 分完成了破解工作。 |
1985 | ECC | Neal Koblitz , Victor Miller | 基于椭圆曲线数学的一种公钥密码的方法 | Elliptic curve cryptography, 椭圆曲线密码学 |
1987 | RC4 | Ron Rivest of RSA Security | 用变长密钥对大量数据进行加密,比 DES 快 | |
1990 | MD4 | Ronald Rivest(MIT) | ||
1992 | MD5 | Ron Rivest | 密钥 长度 128 | 2009 年 Tao Xie 和 Dengguo Feng 仅用了 220.96 的时间即破解了 MD5 的 碰撞抵抗 |
1993 | Blowfish | Bruce Schneier | 使用变长的密钥,长度可达 448 位 | 运行速度很快 |
1998 | AES | Vincent Rijmen , Joan Daemen 、 美国标准与技术研究院 (NIST) | 密钥 长度 128, 192 or 256 比特 块长度 128 位[ 2] 结构 置换组合网络 重复回数 10, 12 或 14 (视密钥长度而定) | 高级加密标准,速度快,安全级别高。AES 标准的一个实现是 Rijndael 算法。 NIST 于 2002 年 5 月 26 日制定了新的高级加密标准 (AES) 规范。 |
1999 | 3DES | 基于 DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 | ||
PKCS | RSA | 一组公钥密码学标准。 | The Public-Key Cryptography Standards | |
TEA | 安全性不如 DES | Tiny Encryption Algorithm,简单高效的加密算法,加密解密速度快,实现简单。 | ||
IDEA | 密钥长度 128 位 | International Data Encryption Algorithm 国际数据加密算法 | ||
2014 | Salsa20Poly1305 | Daniel J. Bernstein | 密钥长度 256 位 | Google 谷歌选择了 Poly1305 消息认证码取代过去一直在互联网安全领域使用的基于 OpenSSL 的 RC4 密码用在 chrome 和 google 网站之间 TLS 数据传输。Docker Secret 也是用此算法来加密密钥文件。 |
备注: Ron Rivest :Known for Public-key RSA , RC2 , RC4 , RC5 , RC6 , MD2 , MD4 , MD5 , MD6 ,2002 年 Turing Award 获得者之一。
最佳实践 :
签名 :对称加密算法不能实现签名,因此签名只能非对称算法。
速度 :非对称加密算法的运行速度比对称加密算法的速度慢很多。
安全性 :由于公钥密码算法基于未解决的数学难题,在破解上几乎不可能。非对称相对更安全些。
算法结合 :采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据。这样就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
加密压缩 :相对于压缩完加密,先加密再压缩可以节省传输流量。
简单加密 :xor 异或操作可作为对称加密。加解密都是用同一函数。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论