【密码学】一文读懂PBE

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 本文主要来聊一下基于口令的加密(Pasword Based Encrytion), 我更倾向于把password翻译成为口令,这是为了和密码学当中密码区分开,这里的password不是指的某种密码体制,而是相当于容易记忆的一串字符(当然也包括那些用随机字符串所密码的)。

一文读懂基于口令的加密(PBE)


D)$]]1DS0MUO2UH9N5BF%KJ.jpg

Password-Based-Encryption

本文主要来聊一下基于口令的加密(Pasword Based Encrytion), 我更倾向于把password翻译成为口令,这是为了和密码学当中密码区分开,这里的password不是指的某种密码体制,而是相当于容易记忆的一串字符(当然也包括那些用随机字符串所密码的)。

「pass·word」: a secret word or phrase that must be used to gain admission to something.

Z7PKR(BG}3R}}%P44{TR_PI.jpg

对话


PEB 加密

看完上面的对话,接下来聊一聊具体PEB的过程, 对于PBE来说,用到了之前讲到过的两个东西:

  1. 哈希函数
  2. 对称加密算法

本文不会去讲具体的PBE算法,比如rfc2898当中的具体算法的描述,本文主要是聊一聊PBE的具体结构。

EK~Y_9]FM5IYUE%0H$K0CPA.png

PBE加密过程

正如上图所示,PBE的加密过程可以分为3个步骤:

  1. 根据用户选择的口令和盐生成加密密钥的密钥
  2. 生成加密密钥并用第一步生成的加密密钥的密钥加密密钥, 这一步听起来有点绕,慢慢的理解一下吧
  3. 利用第二步生成的密钥加密消息,然后销毁密钥

这样,我们就完成了对于消息的加密,这里有个要求,口令是不能存在任何地方的,记在脑子里面才是最安全的,然后对于盐,和利用加密密钥加密后的密钥要存到安全的地方。


PEB解密

理解了上面的加密过程,接下来看一下解密的过程。

7Q])NPAX{K6F[A[@XZS34W6.png

PEB解密

解密过程也可以分为三个步骤:

  1. 用户利用自己的口令和存储的盐值还原加密密钥的密钥
  2. 利用第一步还原的密钥解密加密密钥
  3. 利用第三步拿到的密钥,解密消息

这里拿到了解密的消息,这样PEB的解密过程就完成了。


总结

本文主要是介绍了PBE的整体框架,如果想要提高安全性,对于生成加密密钥的密钥的过程,也就是哈希函数的处理,可以执行多轮,实际上,在rfc当中,也是有迭代次数这个参数的,本文在描述过程当中省略了这些,如果想去看真实使用的PBE算法,需要注意一下这一点,好了,本文到这里就结束啦,希望对各位读者大佬们有所帮助。

相关文章
|
存储 Rust 并行计算
【密码学】一文读懂XTS模式
这篇文章的灵感来源于我偶然翻到的一个某U盘有关磁盘加密的一个介绍(这一篇不是广告蛤), 然后发现这个模式我之前还真没遇到过,因此呢,就学习了一下,就出来了这一篇文章。
5266 0
【密码学】一文读懂XTS模式
|
Rust 算法 网络安全
【密码学】一文读懂CMAC
介于上一篇文章比较水,然后这个和上一篇也比较相似,CMAC是为了解决DAA当中安全性不足的问题而出现的,这个算法一共有三个密钥,K, K1, K2, 其中K1和K2可以由K导出,接下来就来一起看一下CMAC的具体过程吧,这一篇文章其实也不长。
3786 0
【密码学】一文读懂CMAC
|
Rust 算法 安全
【密码学】一文读懂MurMurHash2
上次我们聊过了一代的MurMurHash算法,是的,我又来水文章了,今天呢,接着来聊一下二代的MurMurHash算法,二代算法的整体结构实际上和一代算法差不太多,只是对于每一轮数据的处理过程当中的运算有一些差异,算法的来源依然是来自于Google官网给提供的源码,对着源码看的结构,对于这个算法呢,有两个版本,一个是32位的,一个是64位的,对于32位的算法和64位的算法,区别在于两个初始的魔数不同,整体运算过程还是十分相似的。
2224 0
【密码学】一文读懂MurMurHash2
|
算法 数据安全/隐私保护
【密码学】一文读懂Whirlpool
首先呢,祝大家今晚节日快乐,Whirlpool是由Vincent Rijmen(高级加密标准的联合创始人)和Paulo S.L.M.Barreto设计的,后者于2000年首次提出了它。
1119 0
【密码学】一文读懂Whirlpool
|
Web App开发 Rust 算法
【密码学】一文读懂ChaCha20
好久没写新的加密算法的原理了, 这次所选取的加密算法结构比较简单, 一起来看一下吧。
7809 0
【密码学】一文读懂ChaCha20
|
Rust 算法 Go
【密码学】一文读懂MurMurHash3
本文应该是MurMurHash算法介绍的最后一篇,来一起看一下最新的MurMurHash算法的具体过程,对于最新的算法来说,整个流程和之前的其实也比较相似,这里从维基百科当中找到了伪代码,也就不贴出来Google官方给出的推荐代码了,先来看一下维基百科给出的伪代码,这里只有32位的伪代码。
2191 0
【密码学】一文读懂MurMurHash3
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂XTEA加密
本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。
1285 0
【密码学】一文读懂XTEA加密
|
算法 安全 Go
【密码学】一文读懂HKDF
我这又来水一篇文章,来聊一下HKDF(基于HMAC的密钥导出函数)。密钥派生函数是密钥管理的组成部分,他的目标是通过一些初始的数据派生出来密码学安全的随机密钥。
3120 1
【密码学】一文读懂HKDF
|
存储 安全 算法
为什么人人都要懂点密码学
人类进入二十一世纪以来,随着计算机和移动设备的普及高速发展,我们的社会已经高度信息化,为了防止信息被窃取、修改,就需要对信息的存储、传递进行加密处理,而加密就需要使用到加密算法,解密需要使用密码才可以看到原文。
236 1
|
算法 搜索推荐 安全
【密码学】一文读懂CCM
本文简单介绍了CCM模式下的认证和加密机制,实际上这个是AES-CTR模式和CMAC的一个组合,如果理解了前面这两个,本文应该还是比较好理解的。
3417 0
【密码学】一文读懂CCM