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

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

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

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

1)口令用于身份校验

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

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

2)PBKDF2算法

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

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

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

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

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

相关推荐
小鸡脚来咯16 小时前
一个Java的main方法在JVM中的执行流程
java·开发语言·jvm
江团1io016 小时前
深入解析三色标记算法
java·开发语言·jvm
data myth16 小时前
力扣1210. 穿过迷宫的最少移动次数 详解
算法·leetcode·职场和发展
惯导马工16 小时前
【论文导读】AI-Assisted Fatigue and Stamina Control for Performance Sports on IMU-Gene
深度学习·算法
m0_7381207216 小时前
CTFshow系列——PHP特性Web97-100
开发语言·安全·web安全·php·ctfshow
你我约定有三16 小时前
java--泛型
java·开发语言·windows
沐怡旸16 小时前
【算法--链表】109.有序链表转换二叉搜索树--通俗讲解
算法·面试
小苏兮16 小时前
【C++】类与对象(下)
开发语言·c++·学习
正在走向自律16 小时前
Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
开发语言·数据库·python·ubuntu·kingbasees·ksycopg2