《深入浅出HTTPS》读书笔记(19):密钥

为了避免暴力破解,不同密码学算法的密钥应该保证一定长度,密钥长度足够长也不代表安全,密钥应该是随机、无法预测的。

从两个维度考虑:

◎对称加密算法、MAC算法使用的密钥就是一串数字。

◎公开密钥算法中的密钥是一对,由多个部分组成,但本质上也可以认为由多个数字组成。

密钥虽然是简单的数字,但在实际使用过程中还是复杂的,涉及密钥生成、存储、传输等一系列的工作。

【生成密钥】

密钥最关键的特性:

◎足够的长度,达到一定长度才能保证算法安全性。

◎不可预测性,不能是简单的数字、字母组合,否则即使长度足够,密钥本身也容易被破解。

为了生成密钥,一般采用两种方法:

◎基于伪随机生成器生成密钥。

◎基于口令的加密(Password-based Encryption,简称PBE)算法产生密钥。

使用伪随机数生成器(PRNG)生成的密钥足够随机,很难预测。

PBE算法生成的密钥一般情况下无须存储,因为使用同样的口令就能生成同样的密钥。

相关推荐
snow@li24 分钟前
Java:微服务项目与单体项目区别、市场占有率全景深度分析
java·开发语言·微服务
吴声子夜歌30 分钟前
Java——性能和效率
java·开发语言
飞Link40 分钟前
动作方法中的分割与过度分割方法全解析(含代码实战与踩坑案例)
人工智能·python·算法·计算机视觉
小鹿的周先生1 小时前
第四章-SpringAI-函数调用&ToolCalling
开发语言·人工智能·python
神仙别闹1 小时前
基于C++ MFC 实现的智慧公交系统
开发语言·c++·mfc
秋田君1 小时前
Qt_webSocket协议编程实战
开发语言·qt·websocket
张宇Joaquin1 小时前
鲲鹏统一并行加速库KUPL--异步数据拷贝
线性代数·算法·矩阵·numpy
GlobalInfo1 小时前
创新不是追逐热点,是在变化中建立长期竞争力
大数据·算法
ttwuai1 小时前
Go 后台附件迁到对象存储后,path、cdnUrl 和 tenant_id 怎么一起验?
开发语言·后端·golang
lvwangshu1 小时前
线性代数基础 Linear Algebra Basics
数学·算法