加密:它是什么,它是如何工作的?

描述

私下通信的能力,使得只有预定的各方才能访问机密信息,是密码学最广为人知的能力。我们的产品使用加密来保护敏感数据的机密性,无论是在通信接口之间传输还是存储在内存中。本博客系列将介绍最常用的加密算法,解释它们的差异,并讨论每种算法最适合的应用程序。

防止其他人窃听我们的私人谈话并不是一项简单的任务。已经提出了许多不同的方法将未受保护的信息(称为明文)转换为某种难以理解的形式(称为密文),但很少有人能够经受审查和攻击。

将明文消息转换为密文的一种方法是将基础字母表的每个字母映射到其他字母 - 一种称为单字母替换密码的技术:

 

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
G Q J V E O Y A S C U K M F N Z B X L W H R T I P D

 

使用此映射加密明文消息“security”会导致密文“lejhxswp”,这当然看起来难以理解。如果爱丽丝希望与鲍勃私下交流,她可能会亲自与他分享这个秘密地图。然后,他们可以将加密的信件邮寄给对方,并使用他们的共享密钥(从明文到密文字母表的映射)轻松解密它们。

爱丽丝和鲍勃不知道的是,夏娃一直在拦截他们的加密信息并试图解密它们,尽管她不知道秘密映射。作为破解密码的第一次尝试,Eve 考虑尝试所有可能的映射——暴力 攻击。不幸的是,有26个!≅ 288 可能性,对于伊芙来说,即使有电脑的帮助也无法搜索。但是,暴力攻击很少是破解加密的最有效方法。伊芙决定放弃暴力攻击的方法,而是利用她的英语知识来尝试破解鲍勃的一条信息——你能破解它吗?尝试一次为一个字符选择一个映射[1],也许首先猜测独立的密文字符“I”可能用于加密明文字符“A”:

ITT  VAHR  IQG  QA  WTID  UIRKM  EISR  I  GNTT  ZAD

尽管单字母替换密码有大量可能的密钥(密钥空间为 288),人们可以只使用他们的英语知识和在地铁上班时的一些试错来解密这些密文。拥有大量可能的密钥当然是构建安全加密算法的必要条件,但显然是不够的。

现代加密

单独的大密钥空间并不意味着加密算法是安全的,因为暴力攻击(尝试所有可能的密钥)很少是破解加密方案的最有效方法。在单字母替换密码的情况下,对底层语言的了解允许攻击者减少可能的映射集(例如,由于少量有效单词具有重复字母),并且还可以快速检查候选映射是否导致有效且连贯的语句(例如,它是否会导致不存在的单词?

理想情况下,我们将消除这些快捷方式攻击,因此在不知道密钥的情况下破坏加密方案基本上是不可能的。也就是说,加密算法应该依赖于一些如果您不知道密钥就很难解决的问题,但如果您知道,则很容易解决。

通信

该图显示了一个函数 f(x),当赋值器可以访问红色键(顶部箭头)时,该函数很容易在输入 x 上计算,并且易于反转以恢复 x (中间箭头)。但是,当红色键未知时,该功能很难反转(底部箭头)。

对称加密算法

通过访问具有此属性的某些函数 f(x),Alice 和 Bob 可以开始设计一种私下通信的算法。他们的一般方法是使用他们都知道的键在明文消息x上计算f(x),以便另一个可以轻松地反转f(x)以恢复明文消息x。由于 Eve 不知道他们的共享密钥,因此她将无法从密文中恢复明文消息。

由于 Alice 和 Bob 共享相同的密钥,因此它们在此设计中的信息是对称的,因此遵循此设计原理的算法称为对称加密算法。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分