一、对称加密和非对称加密入门1. 如何不被窃听 —— 加密,我来为大家科普一下关于密码学原理及应用技术?下面希望有你要的答案,我们一起来看看吧!

密码学原理及应用技术(密码学入门科普)

密码学原理及应用技术

一、对称加密和非对称加密入门

1. 如何不被窃听 —— 加密

这种加密方案在密码学里称为对称密码,加密方和解密方使用的是相同的密钥。

知名的密码算法有 AES(2001)、Blowfish(1993)、DES(1977),再远一点,有二战时期的恩尼格码(转轮机原理,德国)、紫色密码(转轮机原理,日本),以及著名的凯撒密码(没错就是地中海北岸那个凯撒)、栅栏密码等。

2. 如何交换密钥 —— 非对称加密

解决信道安全问题

Bob 事先生成一对公钥和私钥,私钥 pri 由自己保管,把公钥 pub 发给 Alice。

Alice 使用 pub 对消息内容进行加密,Bob 用 pri 进行解密。

需要注意的是, 只有私钥才可以解密,所以即使 Eve 窃取到了 pub(只有 pub 被传输而容易被窃取),她也无法解密。

这种加密方式在密码学里称为非对称密码,所谓“非对称”指的是加密方和解密方用的密钥不一样。

知名的非对称算法有:DSA(数字签名算法,只能用于签名,1991)、ECC(椭圆曲线加密,1985)、RSA(公钥加密算法,1977)等。

这些算法除了用于加密外,还可以用于 数字签名。非对称算法有个致命弱点: 性能很低。实际应用中一般采用混合加密体制、哈希签名体制。

3. 如何防止数据篡改 —— MAC

图中的 MAC 指的是 消息认证码(message Authentication Code),你现在不需知道它的原理,只要记住 :(1)传入两个参数 message 和 key,进行一系列计算后得到一个值叫 MAC。(2)只有 message 和 key 相同的情况下,才能得到相同的 MAC。

消息认证码有多种实现方式,其中最常见的是 HMAC(Hash MAC),即使用哈希算法来实现 MAC,还有一种是基于分组密码算法的 MAC,不常见。

聪明如你,肯定会想到如果 key 被窃取该怎么办?这就涉及到 数字签名了,后文会讲到。

4. 如何校验身份 —— MAC

MAC包含几种实现方式:基于 HASH 的 MAC 称为 HMAC,应用比较广泛。

有些同学应该接触过阿里云的 Access Key,其实就是 HMAC 的原理。

有些同学在两个系统之间API调用时,会使用同一个 key 做 md5 计算来实现 API 鉴权,这称为“加盐HASH”,可以简单理解为 HMAC 的简化版。

同样的,如果 key 被窃取该怎么办?这可以用 数字签名来解决。

5.更进一步 —— 数字签名

发送方是用 私钥进行签名,而接收方用 公钥 进行验签,这跟加密情况正好相反。

6. 公钥的身份证 —— 数字证书

伪造公钥,Bob 需要事先生成公钥 pub 和私钥 pri ,然后把 pub 分发给 Alice。那么攻击过程就从这入手,Eve 生成自己的一对公钥 pub' 和 私钥 pri',截获 Bob 的 pub,并用自己的 pub' 冒充 Bob 的公钥发给 Alice。

这是个“偷天换日”的过程,Eve 通过伪造公钥(中间人攻击),不光窃听到 Alice 的消息,还能保证整个过程中 Alice 和 Bob 都没有察觉!

Eve 不是喜欢伪造公钥吗,Bob 这次就要请 Trent 为自己的公钥注册一张 “身份证” —— 数字证书。见证如见人,哦不对,见证如见公钥!以下是注册数字证书的过程:

Bob 请求 Trent 为自己的公钥 pub 注册一个证书。

Trent 收到请求后,用自己的私钥 pri ' 对 pub(以及身份信息) 进行签名,得到一个 sign。

Trent 把证书 certificate = pub sign 颁发给 Bob。

Bob 把自己的证书 pub sign 发给 Alice。

Alice 使用 Trent 的公钥 pub ' 对 sign 进行验签,如果校验成功则说明 pub 的确是 Bob 的公钥,因为她相信 Trent 的权威性。

Eve 不可能找 Trent 为她办一个 Bob 的数字证书,因为 Trent 不会同意的,就像警察蜀黍不会给我办一张别人的身份证一样。所以,Eve 无法伪造 Bob 的公钥。

考虑到非对称算法的效率问题,实际应用中一般是先对数据进行哈希,然后才用私钥对哈希值(摘要)进行签名。

Trent 在密码技术领域中一般称为 认证机构(Certification Authority,即 CA)。

以数字证书为基础,业界制定了一系列的规范和规格,比如由谁颁发证书、如何进行颁发、如何作废证书等,称为 公钥基础设施(Public-Key Infrastructure,即 PKI)。

二、对称加密常见密码学

AES,DES,3DES,TDEA,Blowfish,RC5,IDEA

三、非对称加密经典算法

RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)