作者:George Moraetes
发布时间:2018年9月16日
微信公众号:蓝狐笔记
前言:本文主要介绍了密码学的基本算法,DES、AES,还有未来的量子加密,本文适合普通读者,可以了解密码学的基础原理。本文作者是George Moraetes ,资深信息安全专家,文章来源于medium.com,由蓝狐笔记社群“Leo”翻译。
本文是上一篇《了解加密学:从数学到物理(一)》的续文
3.常用算法
今天的密码使用秘密公钥或私钥技术。密钥密码用于保护关键或敏感数据。因为密钥密码是两个人共享一个密钥,也称之为对称密码技术。
1949年,贝尔实验室的Claude Shannon发表了私钥密码的基本理论,从那之后几十年的发展,产出了高质量的案例。然而,直到1975年才出现强大的密钥算法,DES,它可用于一般用途。
公钥和非对称加密也在20世纪70年代中期出现。公钥密码使用一对密钥,公钥与其他人共享,私钥则由所有者独自掌握。例如,接收者可以创建密钥对,把公钥共享给其他人。发送者可以用公钥加密一封信,接收者可以用私钥进行解密。
加密密码的强度取决于三个主要因素:
1.基础设施
如果密码学主要是在软件中实施,那么,这个基础会很薄弱。如果你试图保密信息,而黑客最好的办法是入侵你的电脑,并在加密之前窃取信息。相对于破解大尺寸的密钥,侵入系统或使用病毒感染来窃取信息更容易。很多时候,窃取密钥最简单的方法可能是窃听用户,并在它传给加密程序时进行拦截。
2.密钥大小
在加密学中,大小很重要。如果攻击者无法安装击键监视器,那么,破解密文的最好方式是通过暴力计算的试错法搜索来猜测密码。因此,实用的密码必须足够大,以至于让暴力计算搜索变得不切实际。但是,随着计算速度越来越快,密码大小的“安全边界”也在不断增长。
专家们承认64比特或更少的密钥(包括DES)很容易受到攻击。1999年,EFF(电子前沿基金会)曾资助开发一种名为Deep Crack的设备,它可以在三天或更短时间内攻破DES加密密钥。当今的密码密钥一般包含100比特,甚至有一些支持256比特的密钥。
3.算法质量
算法质量比较难评判,基于现有算法构建看似合理的密码,这相对容易。除非有经验的人仔细查看,否则很难发现一些细微的缺陷。密码漏洞会产生“捷径”,允许攻击者跳过大块密钥,并发起试错搜索。例如,流行的压缩实用程序PKZIP,传统上采用了64比特密钥的定制加密功能。从理论上,应该进行264次尝试来检查所有可能的密钥。实际上,针对PKZIP有一个捷径,只需227次尝试就可以破解密文。
找到这些缺陷的唯一方法实际上是破解算法,通常是使用曾经对其他密码起作用的小技巧。算法只有在承受此类分析和攻击之后,才能证明它的质量。即便如此,今天没能找到缺陷不等于将来不会被找到。
算法类型
1.DES
DES经受住了时间的考验,因为密码质量在多年前发表的研究中得到证实。在经过四分之一世纪的研究,研究者只是发现一些投机攻击,最终来说,不如暴力计算攻击实用。DES密码的唯一弱点是它56比特的大小。
2.Triple DES
通过使用112比特或168比特密码,连续三次应用密码来解决问题。结果是,它比其他类似强度的密码慢很多,但是,由于强大的计算机攻击破解了算法,它也过时了。
3.AES
AES(高级加密标准)支持三种密码大小:128,192和256比特,并使用128比特区块大小。它目前是全球广泛使用的标准。
Rijndael 密码表
DES的设计明确地要为硬件构建,但没有考虑让它在软件中有效工作。NIST(美国国家标准与技术研究院)评估了软件执行效率和存储要求,以确保AES在如下环境能运转良好:运行C或Java的工作台,或更受限制的环境,如嵌入式ARM处理器和智能卡的环境。
Rijndael是由荷兰研究人员Vincent Rijmen和John Daemen开发的,虽然最终是Rijndael赢得了NIST的竞赛,但所有AES决赛入围的密码方案都超过DES及DES替代品,有很大的改进。它们都支持128比特或更大的分组密码。它们都没有严重的弱点,最终选择Rijndael是在平衡加密强度和性能之后作出的决定。
AES基于替代置换的原理设计,综合了替代和置换,在硬件和软件上都很快。跟它的前身DES不同,AES不使用Feistel。 AES是Rijndael的变体,其固定区块大小为128比特,关键维度是128,192或256比特。
相比之下,Rijndael规范由区块和密钥大小来定,可以是32比特的任意倍数,最小值128比特,最大值256比特。
虽然某些版本的Rijndael有更大的区块大小和额外的列,但,AES操作在4×4列主要的字节顺序矩阵上,它被称为状态。大多数AES计算都是在特定的有限域中完成。
用于AES密码的密钥大小指定转换轮次的重复次数,把输入转换为最终输入,输入的是明文,输出的是密文。
重复周期数如下:
128比特密钥重复10个周期
192比特密钥重复12个周期
256比特密钥重复14个周期
每轮包含几个处理步骤,每个步骤包含四个相似但不同的阶段,包括一个依赖于加密密钥本身的阶段。一组反向重复被应用于转换,使用相同的加密密钥把加密文转换为原始明文。
量子加密
在上图中,量子密钥分发(BB84协议)是一个安全的通信方法,它执行加密协议,协议涉及量子力学组件,并确保通信安全。它能让双方产生共享的随机密钥,也是对称性密钥,密钥只能被双方知晓,可以用来加密或解密信息。
量子力学是一门科学定律的主体,它描述光子、电子和构成宇宙的其他粒子的行为规律。行业正在寻求抵抗黑客的更高安全性。新一代的密码学已经从数学转向了物理。原子和粒子物理学的科学家们已经进入加密学的世界。这些科学家想利用量子力学的定律来发送信息,以实现无法被破解的安全性。他们是新领域的架构师,这个领域被称为量子密码学,这在过去几十年才成熟起来。
量子密码学从粒子物理中汲取力量。构成我们宇宙的粒子本质上是不确定的现象,能够同时存在不止一个地方或处于不止一种状态。(译者注:就像薛定谔的猫,同时处于生和死的两种可能状态)当它们碰撞到物体或被测量属性时,它们会独立选择行为。
密码学是信息安全的迷人领域,也是最复杂的科学之一。一旦我们从简单的凯撒和Polybius密码发展到DES和AES密码,这里有不断地重复迭代,那么,抓住算法概念就变得容易了。
密码学本身是一门科学,我们探索了它的历史,包括了今天很少使用的以及最复杂的密码基本概念。
——
风险警示:蓝狐笔记所有文章都不构成投资推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。