数字时代,没有密码学,就无法生存!

HAIFEIX
密码学和所有在线互动都需要信任!无论是回复电子邮件、下载/更新软件还是购买商品,都需要一定程度的信任。我们相信我们连接的服务器将为我们的系统提供合法的软件更新。

2345截图20210806091512.png

您即将结束一天的工作,并使用智能手机查看智能冰箱中的物品,以决定是否需要经过商店或在回家之前要求送货。您使用在您帐户上注册的信用卡快速支付购买费用,并立即收到确认购买和预计交货时间的推送通知。

您可以使用地铁交通卡搭乘公交车或地铁开始回家的路,同时在音乐平台上收听您最喜爱的音乐。回到家后,您拿起晚餐并与亲人进行微信上通话,快速浏览以确认绿色挂锁已激活并且您的通话是安全的。

您典型的一天可能类似于上述情况或其中的某些方面,但我们在典型的一天中认为理所当然的一切都需要某种形式的密码学。一小段代码让我们在数字世界中保持安全——该信任谁,我们说我们是谁,我们的数据在交付前是否被篡改,或者即使我们被允许访问网站。

然而,当提到“密码学”时,密码学这个词会让人联想到间谍(包括詹姆斯邦德)、秘密信息、秘密政府机构、阴谋论和战争的形象。事实上,像《达芬奇密码》和《模仿游戏》这样的电影都围绕着隐藏信息这一迷人的科学展开。

什么是密码学?

简而言之,密码学是一种对数据进行加扰的方法,除了知道解码技巧的人外,任何人都认为它是胡言乱语。无论数据是正在传输还是“静止”在存储中,密码学都使用算法来加密数据,以便只有预期的接收者才能处理数据。

随着我们对密码学的深入研究,以下关键词会不断出现,最好在继续之前提及它们。

加密-加扰数据使其难以理解。

解密-将加密数据解密为其原始可理解格式。

明文-未加密或解密的数据;可以是文本、图像、音频或视频。

密文-加密数据。

密码-用于加密数据的加密算法的另一种说法。

密钥-由加密算法生成的复杂字符序列,允许对数据进行加扰和解扰。

因此,教科书密码学场景将表现为:

爱丽丝想与鲍勃交流,但不想让夏娃阅读或偷听他们的谈话。Alice使用带有秘密“密钥”(只有Alice和Bob知道)的加密算法对她的消息(明文)进行加密,以创建和发送加密消息-密文。Eve可能会拦截但无法理解密文。Bob收到加密消息并立即应用密钥,同时反转加密算法-将消息解密回明文。

2345截图20210806091512.png

图片:DZone

如果您熟悉密码学,那么您可能遇到过Alice和Bob。如果您想知道这对密码夫妇是如何形成的,本文提供了一个古色古香的时间表。

虽然我们可能满足于将密码学留给专家和电影,但它就在我们身边。从您早上解锁手机的那一刻起,访问网站、进行在线支付、观看Netflix或购买NFT。

难以置信,但密码学已经存在了数千年。早期的密码学侧重于保护盟友之间传输的信息。现代密码学已经成熟,可以验证数据完整性、验证身份、实施数字签名等。

密码学的词源可以追溯到希腊词“Kryptos”,意思是“隐藏”和“graphein”,意思是“写作”。具有讽刺意味的是,美国艺术家吉姆·桑伯恩(Jim Sanborn)在弗吉尼亚州兰利的中央情报局(CIA)场地上竖起了一座名为“氪星”的雕塑。尚未完全破译,该雕塑展示了乱七八糟的字母,隐藏着与其位置、名称和主题相协调的秘密信息。

2345截图20210806091512.png

如果密码学这么古老,为什么我们不了解更多呢?

“历史是胜利者书写的。”胜利的军队或政府不太可能公布用于赢得战争的秘密武器的细节。这就是为什么关于这个重要话题及其演变的历史很少的原因。但是,我们可以肯定地知道什么?

一个简短的历史

一旦人类开始生活在不同的群体或部落中,我们必须相互对抗的想法就浮出水面,并且需要保密。想想对生存和征服至关重要的军事、政治和国家事务。

早在公元前1900年,埃及象形文字的非标准使用就对那些不知道含义的人隐藏了信息的含义。希腊人开发了“Scytale”,它由一个包裹在具有独特直径的圆柱体上的羊皮纸条组成;敌人只需要尝试不同直径的圆柱体来破译信息。

2345截图20210806091512.png

图片:卢林根,维基媒体

还记得麦片盒中的秘密间谍解码器戒指奖吗?它基于凯撒密码。全名,Caesar Shift Cipher,以纪念朱利叶斯·凯撒(Julius Caesar)命名,用于加密古罗马的军事和官方消息。

这种类型的加密背后的概念很简单;将字母表向左或向右移动一定数量的空格,然后使用字母移动重新编写消息。密文的接收者会将字母表向后移动相同的数字并解密该消息。

2345截图20210806091512.png

直到中世纪,密码学的进步才放缓,欧洲政府使用一种或另一种形式的加密进行通信。在此期间,从凯撒密码开始,开发了密码分析技术来破译加密消息。从大约1500年开始,一些著名的个人和政府开始致力于改进加密和解密技术;猫捉老鼠的游戏开始了!

Alan Turing和他的工作打破了纳粹Enigma机器的超过15,000,000,000,000,000,000(你没看错,15后跟18个零)用于加密明文消息的可能设置,是历史上最著名的。阿兰图灵的遗产不仅限于为二战的结束做出贡献,他还为现代计算和评估人工智能的图灵测试奠定了基础。

正在工作的重建炸弹现在在布莱切利公园的国家计算机博物馆

2345截图20210806091512.png

2345截图20210806091512.png

图灵几乎不知道他在解密纳粹战争信息方面的工作将导致国际法和国家法律对密码学的监管。迄今为止,密码学被归入美国军需品清单(USML)的军事电子和辅助军事设备部分,因此受国际武器贸易条例(ITAR)的约束。

简而言之,战后不久,包含密码学的设备或软件程序的使用或出口受到严格监管,需要获得美国政府的特殊许可。这些控制在很大程度上成功地减缓了密码技术在国际上的传播,但结果,美国失去了先锋地位。

政府从国家和军事角度以及联邦和执法角度关注密码学。在悲惨的圣贝纳迪诺枪击事件发生后,作为FBI调查的一部分,苹果公司收到了一项法庭命令,要求破解加密并解锁枪手的iPhone。苹果从未解锁手机,但此案确实引起了人们对政府愿意以“更大的利益”为幌子规避隐私和网络安全标准的担忧。

密码学类型

“需要是发明之母”

人类对技术的日益依赖和对保密的需求推动了密码学的使用超出了其仅在传输或存储中隐藏信息的历史要求——Windows BitLocker可能会浮现在脑海中。Enigma机器提供隐私;任何被截获的通信都是无法理解的。

但作为该等式的一部分,我们还需要验证收到的消息的完整性,并确保只有经过授权的人才能解密和读取消息。密码密码分为三大类:散列函数、对称算法和非对称算法。

2345截图20210806091512.png

使用特定的密钥和密码加密一组特定的明文将始终生成一个特定的密文。即使重复一百万次,密文也将保持不变,前提是原始明文、密钥和密码保持不变。

密码学的这种副作用可用于验证数据在存储或传输过程中是否保持不变。这些独特的加密摘要或散列提供了一种验证数据完整性的方法。

哈希函数

也称为消息摘要和单向加密是不使用密钥并根据提交的明文生成固定长度哈希值的密码。

这些密码旨在确保即使明文中的微小变化也会使散列值显着不同。因此,散列函数提供了文件内容的数字指纹,并实现了一种机制来验证文件是否与原始文件不同——完整性。作为单向加密,散列函数并不意味着要“解密”。

2345截图20210806091512.png

加密散列或校验和是从数据源派生的二进制或十六进制值形式的数字。要知道的重要一点:校验和通常比数据源小得多,而且它几乎完全是唯一的。这意味着其他一些数据给出完全相同的校验和的可能性极小。

存在几种散列密码,但这些是最值得注意的:

消息摘要(MD)密码是一系列面向字节的算法(MD2、MD4、MD5),可产生1 128位哈希值。尽管是最新版本并旨在解决MD4的弱点,但德国密码学家Hans Dobbertin在1996年揭示了MD5的弱点。

安全哈希算法(SHA)是一系列密码(SHA-1、SHA-2和SHA-3),旨在根据版本生成不同的哈希输出。SHA-2破坏了安全哈希标准(SHS)中的六种算法-SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。每个都是为特定目的而设计的,并生成相应的位大小的哈希值。

哈希函数还用于网络安全产品中的恶意软件检测,以及识别受版权保护的数据。每条数据或代码都会生成一个唯一值,可用于在分析过程中快速识别和验证文件。

对称加密又名秘密密钥加密(SKC)

迄今为止考虑的加密类型被归类为对称密钥(或单密钥)加密,并且侧重于隐私和机密性。

对称算法可以进一步分解为流密码和分组密码。理解两者之间的区别的一个很好的类比是考虑加密直接从水龙头流出的水流并加密固定桶大小的水。

块密码将对固定大小的数据块进行操作——想象一下将一个数据桶填满,加密,然后用下一个数据块填充这个桶。分组密码可以在几种不同模式中的一种模式下运行。电子密码本(ECB)是最简单的,但有一个核心弱点,一组给定的明文将始终加密为相同的密文。密码块链接(CBC)、密码反馈(CFB)、输出反馈(OFB)和计数器(CTR)模式实施某种形式的反馈机制或附加步骤来克服ECB的弱点。

2345截图20210806091512.png

流密码加密从水龙头流出的每一滴水,而不是捕获水桶。它结合了生成的密钥流中的一个字节——一个伪随机密码数字——来唯一地加密每一位。流密码有两大类——同步流密码或自同步流密码。

一些值得进一步阅读的对称密码包括:

数据加密标准(DES)是由IBM在1970年代设计的,但在2000年代初期被三重DES(3DES)和DESX由于几个已确定的弱点所取代。

高级加密标准(AES)在2001年正式取代了DES。AES使用Rijndael的分组密码,最新规范使用128、192或256位密钥和分组长度的任意组合。

Rivest Ciphers以Ron Rivest的名字命名,是一系列对称密码-RC1、RC2、RC3、RC4、RC5和RC6。每次迭代都改进了以前的版本;RC4流密码在商业产品中应用最为广泛。

全球移动通信系统(GSM)是指用于无线通信的几种流密码。尽管版本较新,但较旧的A5/1版本是用于移动电话网络(包括3G和4G)的事实上的加密标准,尽管屡次遭到破坏。

每一类对称加密都适用于特定的目的、实施的速度和简单性,但一般来说,对称加密最适合保护大量数据。对称加密的弱点是找到一种安全共享单个加密/解密密钥的方法。

例如,如果Eve以某种方式设法获得了密钥,她就可以解密截获的消息、更改、加密并发送她修改过的消息。因此,夏娃可以操纵爱丽丝和鲍勃,而他们也不会更聪明。

非对称加密又名公钥密码术(PKC)

关于何时以及谁发明了PKC存在分歧。斯坦福大学教授Martin Hellman和研究生Whitfield Diffie于1976年11月正式发表了他们的论文“密码学的新方向”。然而,Diffie和Hellman认为Ralph Merkle首次描述了一个公钥分发系统,虽然不是1974年的双密钥系统。

英国政府通信总部(GHCQ)的解密文件显示,最初的研究始于1969年。到1975年,James Ellis、Clifford Cocks和Malcolm Williamson已经制定了PKC的所有基本细节,但无法发表他们的工作。

然而,所有密码学家都同意它是过去300年来最重要的密码学发展之一,因为它解决了通过不安全的通信渠道安全地分发加密密钥的问题。它的发展是如此重要,以至于它导致了各种其他技术的发展。

PKC使用两个密钥——公钥和私钥——基于易于计算但难以逆转的单向数学函数。这样,两个密钥在数学上是相关的,但是知道一个密钥并不能保证有人会轻松确定第二个密钥。

非对称密钥使用两个非常大的素数作为起点。这两个数字可以通过指数或乘法函数来生成更大的素数。计算对数或因式分解这两个函数的逆过程都很困难,这也是PKC背后的“魔法”。

2345截图20210806091512.png

回到我们爱丽丝和鲍勃的例子......

Bob发布他的公钥,Alice用它来加密她的明文消息并将相应的密文发送给Bob。

Bob然后使用他的私钥解密并检索原始纯文本。

Eve可以截获Bob的公钥和Alice的密文,但无法确定私钥或解密明文。

Alice可以更进一步,使用她的私钥加密不太敏感的明文;Bob使用Alice的公钥解密第二个密文以检索原始明文消息。

在后一种情况下,PKC实现了不可否认性——Alice不能拒绝发送消息。

目前用于隐私、密钥交换或数字签名的一些公钥密码包括:

RSA以麻省理工学院的三位数学家Ronald Rivest、Adi Shamir和Leonard Adleman的名字命名,是Internet上第一个也是最广泛使用的密码:用于密钥交换、数字签名和加密小数据集。不幸的是,诸如通用数字字段筛选和更便宜的不断增加的计算能力之类的方法使破解RSA密钥变得更加容易。幸运的是,可以增加RSA密钥大小。

Diffie-Hellman仅用于密钥交换,而不用于身份验证或数字签名。

数字签名算法(DSA)通过数字签名启用消息身份验证。

椭圆曲线密码术(ECC)是一系列基于椭圆曲线的密码,专为有限的计算能力和存储设备(如智能卡)而设计。最值得注意的版本是许多加密货币使用的椭圆曲线数字签名算法(ECDSA),因为它与DSA等效,但对于类似参数来说更强大。

2345截图20210806091512.png

虽然PKC解决了安全共享密钥的问题,但它确实有几个弱点,因此仅适用于特定情况。

以下是对称和非对称密码学之间差异的快速总结:

主要区别

对称加密

非对称加密

密文大小

与原始明文相比,加密会创建更小的密文-压缩。

与原始明文相比,生成的密文更大。

数据大小

用于加密大型数据集。

用于加密小数据集。

资源利用率

对称密钥加密需要的计算资源较少。

非对称密钥加密需要大量计算资源。

密钥长度

128或256位密钥大小

RSA 2048位或更高的密钥大小。

键数

用于加密和解密的单一密钥。

用于加密和解密的两个密钥。

安全

单个加密密钥的安全通信降低了安全实施。

更安全,因为加密和解密需要两个密钥。

到期

相当古老的技术

现代加密技术-1979。

速度

对称加密速度快

非对称加密速度较慢。

算法

RC4、AES、DES和3DES

RSA、Diffie-Hellman、ECC算法。

为什么使用3种加密技术?

我们几乎没有触及三种加密类别中不同算法类型的皮毛——哈希、SKC和PKC。每个类别中的密码用于特定目的,但通常根据技术要求进行组合。

考虑下图-使用三种加密技术通过数字签名和数字信封来保护通信。

2345截图20210806091512.png

Alice生成一个随机会话密钥(RSK)并将其与秘密密钥加密(SKC)一起使用以创建加密消息。

使用Bob的公钥,Alice加密她的RSK以生成加密会话密钥,并与加密消息一起形成数字信封。

为了生成她的消息的数字签名,Alice计算她的消息的哈希值并用她的私钥加密这个值。

Bob收到通信,使用他的私钥解密和检索Alice的RSK,然后使用RSK解密Alice的加密消息。

Bob计算Alice的解密消息的散列值,并将其与通过使用Alice的公钥解密数字签名所获得的散列值进行比较。如果两个值相同,则Alice确实发送了消息。

这些简化的步骤演示了哈希函数、PKC和SKC密码如何协同工作以实现机密性、完整性、密钥交换和不可否认性。

但是,这三种加密技术都不能在没有信任的情况下工作。我们如何知道Bob的公钥是否真实并且不是由声称是Bob的人发布的?

或者,Mallory(恶意攻击者)可能会拦截Bob的公钥,创建她自己的私钥,为Alice生成一个新的公钥,Mallory将能够解密Alice和Bob之间的所有通信。

公钥基础设施(PKI):矩阵背后的力量!

密码学和所有在线互动都需要信任!无论是回复电子邮件、下载/更新软件还是购买商品,都需要一定程度的信任。我们相信我们连接的服务器将为我们的系统提供合法的软件更新。但是,如果这些服务器遭到入侵,则攻击者可以使用它们来传播恶意软件(例如SolarWinds Sunburst攻击)。

让我们考虑在一个州(例如加利福尼亚)颁发的驾驶执照的示例。该执照或“证书”确定了您的身份、您被允许驾驶的车辆类型、颁发执照的州,甚至是执照的颁发日期和到期日期。

如果你去其他州,他们的司法管辖区将信任加利福尼亚当局颁发许可证并信任其中包含的信息。通过扩展,根据您访问的国家/地区,该国家/地区将信任美国政府颁发该许可证的权力。

回到我们的Alice和Bob示例,PKI通过使用数字证书和“信任链”来建立信任。这些数字证书由受信任的第三方颁发。它们可以追溯到发行者,包含公钥、序列号、关于如何发行、如何使用以及发行和到期日期的政策。

最重要的是,这些数字证书可用于验证实体——设备、个人、程序、网站、组织或其他东西。这种验证提高了对收到的消息来自已知可信实体的信心。

X.509(版本3)定义了将密钥与实体相关联的公钥证书的标准格式。这些证书用于SSL/TLS连接,以确保浏览器连接到值得信赖的网站和服务。

2345截图20210806091512.png

图片:关键因素

认证机构(CA)(例如Verisign、DigiCert、GlobalSign和SecureTrust等)负责颁发、管理和撤销数字证书。提到的CA被视为位于CA层次结构顶部的根CA,并自行分配根证书。根下面是从属CA,可以是策略CA或颁发CA,它们一起工作以建立信任链。

2345截图20210806091512.png

Alice可以向公众信任的CA申请,完成验证过程,如果成功,则颁发她自己的X.509数字证书。此数字证书将伴随Bob从Alice收到的任何消息。Bob对颁发的CA有信心,因此信任Alice消息的真实性。

每次访问网站、发送电子邮件或对在线文档进行数字签名时,X.509证书都会对进出服务器的流量进行加密并提供身份保证。这是PKI背后的最初想法,但它在2000年代初期在移动劳动力兴起期间迅速发展,当时组织使用PKI对通过虚拟专用网络(VPN)连接到办公室网络和服务器的员工及其设备进行身份验证。

VPN使用高级加密协议来屏蔽不安全的互联网连接上的IP地址和网络流量。VPN协议包括OpenVPN、IKEv2/IPsec、L2TP/IPsec、SSTP和WireGuard,所有这些协议都依赖散列、对称和非对称加密密码的组合来实现。Tor还使用多层加密来保护通过其网络的数据。

2345截图20210806091512.png

物联网(IoT)、微型设备、传感器和微程序相互连接以创建协同异构环境。无数的数据被交换并用于为人们甚至更大的系统做出决策。智能家居、工厂、办公室、自动驾驶汽车和自动驾驶无人机在1990年代初期只有在科幻小说中才有可能实现。

这些微型设备安全地连接到其云服务器以中继数据、进行身份验证和检索软件更新。这些服务器依次连接到提供特定服务的其他服务器,例如身份验证、事务处理、内容流或通信等。

密码学的历史笼罩在神秘之中,我们可能永远不会知道所有的细节,但我们不能否认我们在日常生活中对它的依赖程度。最近,它在区块链中被大量使用,进而被用于加密货币和不可替代的代币(NFT)。

每个硬币都有两个面,密码学也不例外。在数字世界中保护我们和我们的数据安全的相同密码术也被滥用。丝绸之路兴起的部分原因是犯罪分子使用加密技术来隐藏当局的视线。勒索软件因加密技术的改进而发展,并被积极用于削弱企业和关键基础设施。

密码学的未来

密码学的未来会怎样?会创建一个不可破解的算法吗?新的密码分析技术会使所有加密密码失效吗?

加密货币会产生只有密码学才能解决的独特安全需求吗?将量子密码学是专注研究人员和政府的新领域?

传输中和存储期间的数据都存在加密,但是,在应用程序和数据库处理期间呢?像Baffle这样的初创公司正在开发“安全网格”,以在处理和存储在数据库中的过程中保护数据,以减少数据泄露。

从保密数据到创建数字货币,密码学从使用皮带和象形文字转移字母已经走了很长一段路。很难预测密码学演进的下一步。只有时间会给出答案。

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论