《深入浅出HTTPS》读书笔记(20):口令和PEB算法

口令和密钥最大的区别在于口令更容易生成、更容易记忆,一般情况下口令记录在人脑中,口令可以认为是一种弱密钥,由固定的字母、数字、符号组成,长度也有一定的限制。

在密码学中很少直接用口令进行加密,容易受到暴力攻击和字典攻击。

除了字典攻击,还有彩虹表攻击方式。

1)口令用于身份校验

口令使用摘要算法计算出一个密钥(这个密钥并不是为了加密解密),这就是一种简单的PBE算法,但这种算法是存在安全风险的。

在密码学中,存在一种密码衍生算法(Key Derivation Function, KDF),该算法可以简单理解为通过某些值可以生成任意长度的一个(多个)密钥。

2)PBKDF2算法

PBE算法标准定义在RFC 2898文档中。

PFR相当于一个摘要算法,利用了摘要算法的单向性、输出值固定长度的特性。

Salt是使用随机数生成器生成的一个数值,通过Salt能够避免字典攻击,结合口令和Salt,攻击者就很难创建出所有的字典组合,增大了密钥的搜索空间。

Salt是明文保存的,一般不和最终生成的密钥保存在一起。

为了减缓攻击者的破解速度,生成密钥的时候可以迭代多次,这样创建密钥的时间增加了,破解的时间也会对应增加,由于增加了时间复杂度。

相关推荐
菜鸟555551 小时前
图论:最小生成树
算法·图论
啊呦.超能力1 小时前
QT开发---多线程编程
开发语言·qt
铭哥的编程日记1 小时前
《从C风格到C++风格:内存管理的进化之路》
开发语言·c++
秃了也弱了。1 小时前
reflections:Java非常好用的反射工具包
java·开发语言
2401_872945092 小时前
【补题】Codeforces Round 735 (Div. 2) C. Mikasa
算法
叫我:松哥2 小时前
基于网络爬虫的在线医疗咨询数据爬取与医疗服务分析系统,技术采用django+朴素贝叶斯算法+boostrap+echart可视化
人工智能·爬虫·python·算法·django·数据可视化·朴素贝叶斯
Star在努力2 小时前
14-C语言:第14天笔记
c语言·笔记·算法
Joker—H3 小时前
【Java】Reflection反射(代理模式)
java·开发语言·经验分享·代理模式·idea
阿里巴巴淘系技术团队官网博客3 小时前
面向互联网2C业务的分布式类Manus Java框架
java·开发语言·分布式
赴3354 小时前
Numpy 库 矩阵数学运算,点积,文件读取和保存等
人工智能·算法·numpy·random·dot