BTCV高分资讯 > 数字货币 > 密码学发展历史、基本原理和常用算法概述_btc

密码学发展历史、基本原理和常用算法概述_btc

作者:高分资讯来源:高分资讯 数字货币 2020年07月06日

了解加密算法的基本概念,从简单的凯撒密码和波利比乌斯密码介绍到多轮加密的DES和AES算法。

原标题:《科普 | 从数学到物理学:加密算法简介》

作者:乔治莫拉莱斯

翻译校对:阿健

只有那些有良好数学头脑的人才能理解信息安全中常用的技术(密码学)吗?如果你想成为一名密码学家,你可能是。毕竟,密码学家的工作是构造极难破解的加密算法。然而,加密方法在当今世界已经被广泛使用,从保护用户的信用卡信息和远程用户的网络连接到保护知识产权和防止盗版。

我这篇文章的目的是将强大的加密技术翻译成方言,这样每个人都可以理解这些方法是如何被用来加密数据的。

科普 | 从数学到物理学:加密算法简介

密码学是数学和物理的结合;它是信息安全技术的核心,保护我们的数据安全和隐私

在密码学的历史上,“密码学”和“密码术”在现代文献中经常被不加区分地使用,这将它们的实际意义的混淆扩展到了语义学。事实上,这些不同的词最好解释如下:

Cryptology(密码学)——关于安全技术的艺术性和/或密码系统的科学研究。Cryptography(密码学)——设计密码系统保密的实用方法。Cryptoanalysis(密码术分析)——致力于发现漏洞,这些漏洞可以在不知道密钥或算法的情况下从密文推导出明文。译者注:正如作者所说,在现代文学中,“密码术”和“密码术”基本上没有区别,两者的意思都是“密码术”。此外,虽然密码学是从加密方法的研究中诞生的,但现代密码学早已超越了加密和解密的研究,扩展到如何保证通信中的“机密性”和“身份”属性的研究。因此,可以说作者在这里的定义缩小了密码学,如果不是过时的话。然而,为了理解作者的原意,我们仍然使用下面相应词语的翻译。

本文的大部分内容都致力于解释“密码学”,也就是今天的密码学实践,希望读者能够认识到这些词的含义和区别。

作为一项科学研究,密码学已经存在多年。已知最早的密码学例子是公元前1900年刻在埃及贵族赫努霍特普二世主墓中的铭文。雕塑家到处用奇怪的符号来代替更常见的符号。然而,目的似乎不是隐藏信息,而是改变信息的形式,使其看起来更高贵。

科普 | 从数学到物理学:加密算法简介

在罗马帝国的全盛时期(公元前100年),朱利叶斯凯撒也因使用加密技术向前线将军发送信息而闻名。这种字符替换加密方法(密码)被称为“凯撒密码”,这可能是文献中最常提到的人类使用的加密方法。(所谓的“密码”是一种用于加密或解密的算法)。所谓的“字符替换加密方法”是用另一个字母替换明文中的每个字母(我们要加密的消息),形成密文(即编码消息)。凯撒的方法是将每个字母移动三位数。例如,“A”将被“D”取代,“B”将被“E”取代,依此类推。因此,最后一个字母将被第一个字母代替,例如,“x”将被“a”代替。

第二次世界大战期间,美国海军招募并训练了许多精通纳瓦霍语的纳瓦霍人。从编码信息的角度来看,这是一种很好的方式,因为除了纳瓦霍人之外,很少有人学会如何说这种语言,而且当时也没有用纳瓦霍语出版的书籍。然而,除了单词,纳瓦霍人的口语并不是很复杂(根据密码学的标准)。一个土著纳瓦霍人和一个训练有素的密码学家可以一起破解这组密码。日本人曾有机会在1942年的巴丹死亡游行中在菲律宾抓到乔基约米亚。乔是美国海军的纳瓦霍中士,但他不是秘密语言广播员,只负责翻译无线电信息。然而,因为他没有参加秘密的语言训练,他不知道这些单词的意思。当他说他不能解释这个消息时,日本人开始严厉地折磨他。因此,日本陆军和海军从未破译过这些秘密语言。

20世纪70年代,IBM发现他们的客户需要某种形式的加密,所以他们成立了一个由霍斯特-费斯特领导的加密团队。他们设计了一种叫做路西法的加密算法。1973年,国家标准局(现称NIST国家技术和标准局)发布了一条消息,希望每个人都能提出一种有资格成为国家标准的数据加密方法。他们显然已经意识到,他们已经购买了许多没有任何加密基础的商业产品。路西法最终被接受,所以它被称为“数据加密标准”。1997年后,DES遭到彻底搜查。DES的主要问题是加密密钥的位数太少。随着计算机计算能力的提高,通过用尽所有可能的密钥组合来破解密文已经成为一种可行的方法。

在20世纪80年代,每个人几乎只有一个选择,那就是DES。今天的情况非常不同。有许多更健壮、更快、设计更好的算法可供选择。问题变成了你如何澄清这些选择。

1997年,NIST再次征集新的加密算法提案,最终收到50份提案。2020年,NIST接受了Rijndael算法,并将其命名为AES,一种高级加密标准。

基本原理所谓的加密是一种改变数据的过程,使未经授权的人无法识别和使用数据;同时,它必须确保解密过程能够成功地将更改后的数据恢复到其原始形式。安全技术通常将加密的数学方法与用于加密的参数(称为“密钥”)区分开来。所选择的密钥(通常是随机字符串)也是加密过程的输入,对于加密过程也是必要的。同一密钥通常是解密过程中的必要输入。

这种保护过程的原理是,只要密钥(有时称为“密码”)不被暴露,并且只有授权人员知道,原始数据就不会被暴露给其他人。只有知道密钥的人才能解密密文。这种思想被称为“私钥”加密法(译者注:称之为“对称加密法”可能更合适,因为加密和解密过程是对称的,并且都使用相同的密钥),这也是最广为人知的加密形式。

那么,需要加密的基本原因如下:

机密性——不希望窃听者在传输数据时知道广播消息的内容。在未经授权人员(如黑客)访问的情况下保存数据也是如此。

身份认证——相当于签名。收件人希望确认消息是由特定的人发送的,而其他人不能假装是他(即使最初的发件人后来想否认)。

完整性(——),这意味着收件人可以证明他得到的数据是完整的,没有被第三方更改。不可抵赖性——防止发送者否认他创建或发送了消息。译者注:作者在这里提到的是现代密码学研究的范围。例如,身份认证和不可否认性这两个非常重要的属性在实践中几乎与加密和解密过程无关,但数字签名的研究无疑是密码学的内容。加密和解密的安全性与保密性有关,而保密性只是现代密码学的一部分。

密码加密是隐藏敏感数据的艺术和科学(通过加密)。它包括加密过程(即在原始文本上使用加密算法)和解密过程(即在密文上使用算法将其恢复为可读形式)。

为了解释什么是密码,最好给你看一些简单的例子:

波利比乌斯密码波利比乌斯密码也是一个字符替换密码。在我的例子中,我使用一个66的二维矩阵,它可以包含所有的大写字母和数字0到9。然后我们可以得到下表:

科普 | 从数学到物理学:加密算法简介

有了这个矩阵,我们可以开始替换。例如,字母“a”可以表示为“1 1”,或“X=1,Y=1”,甚至可以简化为11。对于另一个例子,字幕“n”可以表示为“2 3”,或者“X=2,Y=3”,其被简化为23。

尝试加密一条简单的消息:

信息(原件):加密我2天

加密数据(密文):51233163154324 1351 55 411115

加入不常见的字符后,该表会变得非常大和复杂。此外,有规律地随机改变角色的位置将使暴力破解变得不可能。这与我们今天在高级计算加密方法中使用的多态性非常相似。

凯撒密码科普 | 从数学到物理学:加密算法简介

最古老的加密算法之一是凯撒密码,它以其创造者凯撒而闻名。他用这种方法来确保与罗马将军的安全通信,这样罗马帝国的敌人即使收到了信件也无法阅读。凯撒密码是一种主要的加密形式,很容易被破解,所以今天它基本上不用于任何安全目的。

原则上,凯撒密码是重新排列字母表,不同的位移值会使编码数据完全不同。位移值,顾名思义,是通过将字母向左或向右移动一定数量的数字来生成密文的数值。(译者注:所以,在这里,我们可以把凯撒的密码理解为基于字母位移的加密算法(密码),位移值就是密钥。)

在这里,我们看一个向右移动3位数的实际例子:

原版英文:加密我

密文:HQFUBSPHH(解密时,应向左移动3位进行解密)

以上信息可以通过尝试所有可能的位移值来猛烈破解:继续尝试新的位移值,直到解决的原始文本看起来像什么。更复杂的密码,如维格纳密码和格罗菲尔德密码,都是用同样的原理设计的。但是解密非常麻烦,所以每个字母代表一个位移值。

弗吉尼亚密码表科普 | 从数学到物理学:加密算法简介

在理解密码学之前,我们应该首先理解加密算法的工作原理,因为它们是所有加密过程的基础。速记是一种记录隐藏信息的方法,这种方法实际上可以被归类为经典密码术,因为现代密码术已经成为“计算机安全”的同义词。

多态性是密码学的高级部分,也是计算机加密技术中最常见的部分。多态性意味着加密方法每次使用都会产生不同的结果,每次使用后都会改变。多态性在计算机加密算法中很常见。也就是说,如果我们对相同的数据加密两次,每次都会得到不同的加密结果。

让我们用汽车钥匙作为类比。现在,我们只需要按下一个小电子遥控装置上的按钮就可以解锁汽车。当你打开门的时候,你可能从来没有想过这个原则。你一按下按钮,一条特定的数据就会被发送到你的车上。一旦比赛成功,门就会被打开。实现这一点最简单的方法是为每个遥控设备设置不同的频率。然而,管理起来会很麻烦。因此,所有的遥控设备使用相同的波长,但是使用不同的算法(滚动码)来产生发送到汽车的数据。这些是多态性算法。

因为这些算法在每次使用后都会改变,所以很难对它们进行逆向工程。即使黑客破解了算法(首先,破解多态性算法本身非常困难),他仍然必须找到与算法匹配的汽车/钥匙(这是另一项复杂的任务)。

常用算法如今,常用的加密算法无非是私钥加密方法和公钥加密方法。私钥加密可用于保护关键/敏感数据。密钥密文只需要一个密钥(由双方共享),因此称为对称加密。

科普 | 从数学到物理学:加密算法简介

1949年,贝尔实验室的克劳德香农发表了私钥加密的基本理论。几十年的发展孕育了许多高质量的私钥加密算法。然而,直到1975年,一种强大的私钥加密方法DES才被广泛使用。

公钥/非对称加密诞生于20世纪70年代中期。公钥加密方法需要一对密钥,即公钥和个人持有的相应私钥。例如,接收者可以创建一对密钥,并与任何想要向ta发送密文的人共享公钥。发送者可以用公钥加密发送给接收者的信件,接收者可以用私钥解密。

科普 | 从数学到物理学:加密算法简介

加密算法的强度取决于三个主要因素:

基础设施——如果相关的密码设计主要是通过软件来实现的,基础将是最薄弱的环节。如果你总是加密某些信息,黑客最好的方法就是侵入你的电脑,在加密之前窃取它。入侵一个系统或者用病毒感染一个系统要比破解一个密钥容易得多。在许多情况下,破解密钥的最简单方法是窃听用户,并在密钥被传递到加密程序时将其截获。密钥长度——在密码学中,密钥长度非常重要。如果攻击者不能安装击键监视器,破解密文的最好方法就是通过不断的尝试和错误来猛烈地破解它。实用的加密算法必须设置足够长的密钥长度,以消除暴力破解的可能性。然而,随着计算机的运算速度逐年加快,密钥长度的安全阈值需要不断提高。专家承认,小于或等于64位的密钥,包括DES密钥,很容易被暴力破解。1999年,电子前沿基金会资助开发了一种叫做“深度破解”的设备,这种设备可以在三天内破解一个DES加密密钥。因此,加密算法的密钥长度通常超过100位,一些算法支持256位密钥。算法质量——算法本身的质量很难评估。在现有算法的基础上构造一个看似可行的算法很容易。然而,只有经验丰富的专家才能发现微妙的漏洞。算法中的漏洞会产生“捷径”,让攻击者在猛烈的搜索攻击中跳过大量的密钥。例如,一个流行的压缩程序PKZIP继承了一个定制的加密函数,并使用了一个64位的密钥。理论上,尝试所有的键需要264次。但事实上,有捷径,所以只需要227次尝试攻击PKZIP加密算法来破解密文。找到这样一个漏洞的唯一方法就是尝试破解算法,一般来说,就是用技巧来处理其他算法。只有在这样的分析和攻击之后,算法的质量才会显现出来。因此,没有发现这样的漏洞并不意味着算法永远不会被发现有漏洞。这种类型的算法,DES—— des,经受住了时间的考验,近年来发表的研究证明了它的质量。经过四分之一世纪的研究,研究人员只能找到一些推测性的攻击方法,而且它们的实用性不如暴力攻击。DES算法唯一真正的弱点是它的密钥长度短(56位)。

科普 | 从数学到物理学:加密算法简介

三重 DES——使用112位或168位密钥连续三次使用DES算法。最终,该算法将比其他具有类似强度的算法慢得多。此外,由于计算机仍然强大到足以破解这种算法,这种方法已经过时。

AES——高级加密标准(AES)支持三种密钥大小,128位、192位和256位,而数据按128位分组。现在AES被认为是一个标准,在世界各地都被使用。

Rijndael 密码表

科普 | 从数学到物理学:加密算法简介

DES肯定是被设计成内置在硬件中的,而且它从来没有被考虑过如何在软件层面上实现它。后来,NIST评估了执行效率和存储要求,以确保AES不仅可以在工作站中,而且可以在资源更有限的环境中(如嵌入式ARM处理器和智能卡)以C语言和Java语言工作。

尽管荷兰的文森特里伊曼和琼代蒙发明的里恩代尔算法赢得了NIST的精算奖,但进入高级工程师考试决赛的所有算法都比DES及其替代品有了很大的进步。所有这些算法都是分组密码,支持128位甚至更大的密钥;没有算法有严重的漏洞;最后的选择实际上是密码设计的强度和性能之间的权衡。

AES基于一种称为“置换-置换”的设计原则,它在计算中既有置换又有置换,并且在软件和硬件层都很快。与它的前身DES不同,AES不使用费斯特尔密码原理。AES是Rijndael密码的变体,它使用128位的固定大小作为输入,支持128位、192位和256位的临界尺寸。相反,Rijndael设计规范只规定输入组和键的大小是32的倍数,最小值是128位,最大值是256位。

AES对44字节的矩阵进行运算,这些证明被称为“状态”。然而,Rijndael算法的一些版本具有更大的输入组,因此矩阵更大。大多数AES计算都是在特定的有限域内完成的。

AES算法使用的密钥大小将相应地决定转换操作的重复轮数。通信如下:

128位密钥对应10轮重复,192位密钥对应12轮重复,256位密钥对应14轮重复科普 | 从数学到物理学:加密算法简介

每一轮包含几个处理步骤,每个步骤包含四个相似但不同的阶段,其中一个阶段取决于加密密钥本身。解密时,必须使用相同的密钥反向重复操作,并将密文恢复为原始文本。

量子密码术科普 | 从数学到物理学:加密算法简介

上图说明了量子密钥分配方案(BB84协议),它实现了包含量子力学的加密协议,并可以确保安全通信。它允许双方生成共享的随机密钥(对称密钥)。这个密钥只有双方都知道,所以它可以用来加密和解密消息。量子力学是一套描述构成宇宙的光子、电子和其他粒子的运动规律的科学定律。

该行业一直在尽最大努力寻找抵御黑客攻击的最高安全手段,新一代的密码学已经从数学变成了物理。量子力学科学家已经进入了密码学的世界。这些科学家希望利用量子力学的原理来发送不能被黑客攻击的信息。这是量子密码学的一般概念,它只是在过去的几十年里才发展起来的。

量子密码学起源于量子物理学。构成我们宇宙的基本粒子本质上是不确定的。它们可能同时存在于这里或那里,或者它们可能有不止一个状态。只有当它们碰到一个物体或被测量时,它们才会显示出运动。

密码学是信息安全的一个迷人领域,也是最复杂的学科之一。然而,我们将简单的凯撒密码和波利比乌斯密码引入到多轮加密的DES和AES算法中,我相信读者会发现理解密码算法的概念并不复杂。

对于密码学,我们已经知道了它的历史和加密算法的基本概念,从最简单到最复杂。

来源链接:medium.com

标签: 比特币金库