5种常见的加密类型以及为什么你不应该自己制作

477 阅读9分钟

加密在新闻中经常被谈论,但它通常是在接受错误的政府政策或为恐怖分子的暴行承担部分责任。

这就忽略了加密技术的重要性。绝大多数互联网服务都使用加密技术来保护你的信息安全。

然而,加密技术有些难以理解。有许多类型,而且它们有不同的用途。那么,你如何知道 "最佳 "的加密类型?

那么,主要的加密类型是如何工作的?为什么你不应该使用自己的加密算法?

加密类型与加密强度

最大的加密语言误区之一来自于加密类型、加密算法及其各自强度之间的差异。让我们把它分解一下。

  • 加密类型。加密类型涉及到加密的完成方式。例如,非对称加密法是互联网上最常见的加密类型之一。
  • 加密算法。当我们讨论加密的强度时,我们谈论的是一种特定的加密算法。算法是有趣的名字的来源,如三重DES、RSA或AES。加密算法的名称往往伴随着一个数值,如AES-128。这个数字指的是加密密钥的大小,并进一步定义了算法的强度。

还有一些你应该熟悉的加密术语,这将使本讨论的其余部分更容易理解。

5种最常见的加密算法

加密的类型构成了加密算法的基础,而加密算法则对加密的强度负责。我们谈论的是以比特为单位的加密强度。

此外,你知道的加密算法可能比你意识到的要多。下面是五种最常见的加密类型,以及关于它们如何工作的一点信息。

1.数据加密标准(DES)

数据加密标准是一个原始的美国政府加密标准。它最初被认为是牢不可破的,但随着计算能力的提高和硬件成本的降低,56位加密已基本过时。这在敏感数据方面尤其如此。

领导深度破解项目的EFF联合创始人约翰-吉尔莫说:"在为社会设计安全系统和基础设施时,要听密码学家的意见,而不是听政客的意见"。他提醒说,破解DES的创纪录时间应该向任何依赖DES来保护数据隐私的人发出 "警钟"。

尽管如此,你仍然会在许多产品中发现DES。这种低级别的加密很容易实现,不需要大量的计算能力。因此,它是智能卡和资源有限的电器的一个共同特征。

2.2.TripleDES

TripleDES(有时写成3DES或TDES)是DES的更新、更安全的版本。当DES在23小时内被破解时,政府意识到一个重大问题的到来。因此,TripleDES诞生了。TripleDES通过运行DES三次来加强加密程序。

数据被加密,解密,然后再次加密,得到的有效密钥长度为168位。这对大多数敏感数据来说是足够强大的。然而,虽然TripleDES比标准DES更强大,但它也有自己的缺陷。

TripleDES有三种配匙方案

  • **密钥选项1:**所有三个密钥都是独立的。这种方法提供最强的密钥强度:168位。
  • 钥匙**选择2:**钥匙1和钥匙2是独立的,而钥匙3与钥匙1相同。这种方法提供的有效密钥强度为112比特(2x56=112)。
  • **密钥选项3:**所有三个密钥都是相同的。这种方法提供了一个56位的密钥。

钥匙方案1是最强的。密钥选项2没有那么强,但仍然比简单地用DES加密两次提供了更多的保护。TripleDES是一个区块密码,意味着数据是以一个又一个固定的区块大小进行加密的。不幸的是,TripleDES的块大小很小,只有64位,这使得它很容易受到某些攻击(如块碰撞)。

3.RSA

RSA(以其创造者Ron Rivest, Adi Shamir和Leonard Adleman命名)是最早的公钥加密算法之一。它使用之前链接的加密术语文章中的单向非对称加密功能。

互联网的许多方面都广泛使用RSA算法。它是许多协议的一个主要特征,包括SSH、OpenPGP、S/MIME和SSL/TLS。此外,浏览器使用RSA在不安全的网络上建立安全通信。

由于其密钥长度,RSA仍然非常流行。一个RSA密钥通常是1024或2048比特长。然而,安全专家认为,用不了多久,1024位RSA就会被破解,促使众多政府和商业机构迁移到更强大的2048位密钥。

4.高级加密标准(AES)

高级加密标准(AES)现在是美国政府信任的加密标准。

它是基于两个比利时密码学家Joan Daemen和Vincent Rijmen开发的Rijndael算法。比利时密码学家向美国国家标准与技术研究所(NIST)提交了他们的算法,与其他14种算法一起竞争成为正式的DES继承者。Rijndael "胜出",并在2000年10月被选为拟议的AES算法。

AES是一种对称密钥算法,使用对称块密码。它包括三种密钥大小。128、192或256比特。此外,每种密钥大小都有不同的加密轮次。

一轮是将明文变成密码文本的过程。对于128位,有10轮。192位有12轮,256位有14轮。

理论上有针对AES算法的攻击,但所有的攻击都需要一定的计算能力和数据存储,这在当前时代是不可行的。例如,一个攻击需要大约38万亿兆字节的数据,比2016年世界上所有计算机上存储的所有数据还要多。其他估计认为,破解AES-128密钥所需的总时间为数十亿年。

因此,加密大师布鲁斯-施奈尔(Bruce Schneier)认为,在理论上的学术加密破解之外,"任何人都不会发现能让人读取Rijndael流量的攻击"。在选择新的国家安全算法的竞争中,Schneiers的Twofish加密算法(下文讨论)是Rijndael的直接挑战者。人们认为,AES将是一种量子计算证明算法,以抵御未来的巨大计算能力。

5.双鱼

Twofish是美国国家标准和技术研究所高级加密标准竞赛的决赛选手--但它输给了Rijndael。Twofish算法适用于128、196和256位的密钥大小,并具有复杂的密钥结构,使其难以破解。

安全专家认为Twofish是最快的加密算法之一,是硬件和软件的绝佳选择。此外,Twofish密码可供任何人免费使用。

它出现在一些最好的免费加密软件中,如VeraCrypt(驱动器加密)、PeaZip(文件存档)和KeePass(开源密码管理),以及OpenPGP标准

你应该制作你自己的加密算法吗?

你已经看到了一些最好的(现在已经不复存在的)加密算法。这些算法是最好的,因为它们基本上是不可能被破解的(至少目前是这样)。

但创建一个自制的加密算法呢?创建一个安全的私有系统是否能保证你的数据安全?简而言之,!是的。或者说没有更好**,但是....**..

最好的加密算法在数学上是安全的,通过最强大的计算机与最聪明的头脑的结合来测试。新的加密算法要经过一系列严格的测试,这些测试已知会破坏其他算法,以及针对新算法的攻击。

以AES算法为例。

  • NIST在1997年9月发出了征集新加密算法的呼吁。
  • 到1998年8月,NIST收到了15种潜在的AES算法。
  • 在1999年4月的一次会议上,NIST选出了五种入围算法。MARS、RC6、Rijndael、Serpent和Twofish。
  • 直到2000年5月,NIST继续测试并接受来自密码学界的评论和指示。
  • 2000年10月,NIST确认Rijndael为未来的AES,此后开始了另一个咨询期。
  • Rijndael作为AES,在2001年11月被公布为联邦信息处理标准。确认后,开始在加密算法验证计划下进行验证测试。
  • 2002年5月,AES成为联邦政府的官方加密标准。

你没有足够的资源来创建一个强大的加密算法

所以你看,制作一个真正安全、持久、强大的加密算法需要时间和地球上一些最强大的安全组织的深入分析。或者,正如Bruce Schneier所说

"任何人都可以发明一种他们自己无法破解的加密算法;而要发明一种别人无法破解的加密算法则要难得多。"

而这正是 ""的作用所在。当然,你可以写一个程序,把你的文本,每个字母的字母值乘以13,再加上61,然后把它发送给一个收件人。

输出结果是一团糟,但如果你的收件人知道如何解密,那么这个系统就可以发挥作用。然而,如果你在野外使用自制的加密技术,发送私人或敏感信息,你会有一个糟糕的时间。我们信任那些使用端到端加密而不是仅仅发送明文信息的消息应用程序是有原因的。

还有一个如果。如果你想了解加密和密码学,强烈建议你尝试开发和破解一个个人开发的加密算法。只是不要要求任何人使用它!

加密最好留给专业人士来做

加密很重要。了解它的工作原理是有用的,但不是使用它的必要条件。有很多方法可以不费吹灰之力对你的日常生活进行加密。例如,你可以从加密你的硬盘USB闪存驱动器开始。

当务之急是认识到我们这个超网络化的全球社区需要加密来保持安全。不幸的是,有大量的政府和政府机构想要更弱的加密标准。这种情况决不能发生。

对个人加密算法进行修补是绝对可以的。如果你想学习和了解更多关于加密的知识,这是最好的事情之一!但是,除非你要对该加密算法进行广泛的检查和测试,否则最好还是把它作为一项私人工作来做。