第2部分 基础篇 第2章 密码技术
2.2. 密码技术简介
![第2部分 基础篇 第2章 密码技术](https://ytm.app/wp-content/uploads/2024/01/cryptotech.jpg)
本聪老师:下面我们开始密码技术的学习。这部分由小云同学带领大家学习。
小云:好的老师。密码技术是一种用于保护数据安全的技术,用于解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性,它涵盖了许多不同的方法和工具,包括加密、解密、数字签名、哈希函数等。密码技术是计算机安全领域的一个重要组成部分,被广泛应用于网络安全、电子商务、电子支付、数据存储和传输等领域。
本聪老师:对,社会信息化发展程度和密码技术密不可分,特别是信息安全领域,密码技术是大厦的基石。
小云:是。密码技术发展过程中经历了对称密码技术和非对称密码技术,后者有被称为公钥密码。公钥密码技术是密码技术的重大突破,开启了现代密码的新纪元。下面我们首先了解下公钥密码技术基础知识,然后学习加密解密算法,其中会涉及到主流的对称密码算法和公钥密码算法。最后学习哈希算法和数字签名。
2.2.1. 公钥密码技术基础
小云:对称加密技术我们都能理解。其加密密钥和解密密钥是相同的,因此要求通信各方必须妥善选择和保存密钥,并且信任对方不会将密钥泄密出去。
小明:谍战片中常见的使用密码本加密解密就是这种算法。
小云:对,对称加密技术长期占据密码技术的中心地位,不被撼动。直到1976年,Diffie和Hellman共同发表论文《密码学的新方向》,宣告了公钥密码学的诞生。
小云:与之前的密码体制不同的是,公约密码体制的核心是非对称密码,也就是在加密和解密过程中使用两个独立的密码,称为密钥对:公钥和私钥。加密解密过程中使用的公钥是可以公开展示的,私钥是保密的。任何人都可以使用公钥加密信息,但是只有私钥才能解密,因此只有私钥持证方才能解密信息。已知私钥并按照一定算法可以推导出公钥,但是反过来,知晓公钥以及加密算法是不能推导私钥的。所以只要私钥未泄露,加密过程就是安全可信的。
小明:原理能明白。有哪些应用场景呢?
小云:公钥密码机制有三种应用模型,一是加密模型,二是认证模型,三是加密认证模型。
小天:加密过程相对好理解。
小云:对,我们看图2-1,首先解释一下图片中的内容。消息发送者Alice的密钥对为(PRA,PUA),其中PRA是Alice的私钥,PUA是Alice的公钥。消息接收者为Bob,密钥对为(PRB,PUB),其中PRB是Bob的私钥,PUB是Bob的公钥。两个人的私钥都是秘密保存的,而公钥都是公开的,因此Alice同时还知道Bob的公钥,也就是说,Alice的密钥集为{ PRA ,PUA ,PUB }。
![第2部分 基础篇 第2章 密码技术](https://ytm.app/wp-content/uploads/2024/01/satoshi-ytm2-1.png)
图2-1加密过程
小明:那么说,Bob的密钥集是{ PRB ,PUB ,PUA }.
小云:对。我们来看加密过程。当Alice发送消息给Bob时,先从自己的公钥集中取出Bob的公钥PUB,对明文消息加密。然后发送给Bob,Bob收到密文消息后,使用自己的私钥PRB解密。密文在网络上公开传送,任何人都可以看到。窃取者没有对应Bob公钥的私钥PRB,所以无法解密。
小天:所以说加密过程主要作用在于保证消息不会泄露,实现保密性。
小云:说的非常正确。我们再来看认证过程,如图2-2。Alice发送消息给Bob,首先使用自己的私钥PRA对消息加密,然后发送给Bob,Bob收到密文后使用Alice的公钥PUA对密文解密。与加密过程不同的是,使用私钥加密,使用该私钥对应的公钥解密。由于发送者的私钥是秘密保存的,接收方只要解密密文,就可以确定发送方是Alice。
![第2部分 基础篇 第2章 密码技术](https://ytm.app/wp-content/uploads/2024/01/satoshi-ytm2-2.png)
图2- 2认证的过程
小天:那么认证的过程要解决什么问题呢?
小云:认证的过程在于保证消息发送方的身份,实现不可抵赖。
小明:加密认证可以结合起来一起使用吗?
小云:可以,将加密和认证结合使用,就是加密认证模型,它是数字签名的基础。
我们来看图2-3展示了这个过程。Alice发送消息给Bob,分为两步:第一步是加密,也就是用Bob的公钥PUB对明文消息加密。第二步先对明文消息使用hash算法(关于该算法参见后续杂凑算法部分)计算出Hash值,再使用自己的私钥PRA对Hash值进行数字签名算法计算得到数字签名。最后把两步产生的内容:密文和签名一起通过网络发送给Bob。
小明:这是发送过程,接下来是对方接收了。
小云:对。Bob收到后也分为两部分解密:第一步使用自己的私钥PRB解密密文,解密后对明文进行Hash计算,得到一个Hash值。第二步对收到的数字签名使用Alice的公钥PUA进行签名解密,得到另一个Hash值。这时最重要的一步就出现了:将两步的结果Hash值进行比对。
小天:比对结果会可能是不一致或者一致。
小云:对。不一致的话,要判断是哪个环节的问题。如果一致,表明数据传递过程中以下三方面内容:
消息发送者的身份确认无疑是Alice;
Alice发送的消息在传递过程中未发生任何更改;
以后Alice不能抵赖自己发送过消息的行为。
这三方面就充分证明了本次数据过程的真实有效。
![第2部分 基础篇 第2章 密码技术](https://ytm.app/wp-content/uploads/2024/01/satoshi-ytm2-3.png)
图2-3 加密认证的过程
小云:不知道大家注意到没有,上面加密认证过程中提到了三种算法,分别是加密解密算法和Hash算法,它们是两种完全不同的算法,严格来讲,Hash算法属于杂凑算法,不是加密算法。接下来的两节重点学习这两种算法。
本文内容摘自《对话去中心化数字身份》。作者:乔布施。首发平台:https://ytm.app
欢迎转载,请注明出处及作者。本站知乎链接:https://link.zhihu.com/?target=https%3A//ytm.app/