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

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

从两个维度考虑:

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

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

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

【生成密钥】

密钥最关键的特性:

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

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

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

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

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

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

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

相关推荐
半个番茄2 小时前
C 或 C++ 中用于表示常量的后缀:1ULL
c语言·开发语言·c++
前端白袍2 小时前
Nuxt:利用public-ip这个npm包来获取公网IP
网络协议·tcp/ip·npm
玉带湖水位记录员2 小时前
状态模式——C++实现
开发语言·c++·状态模式
zhao3266857513 小时前
如何有效利用数据采集HTTP代理
网络·网络协议·http
查理零世3 小时前
【算法】数论基础——约数个数定理、约数和定理 python
python·算法·数论
Eiceblue4 小时前
Python 合并 Excel 单元格
开发语言·vscode·python·pycharm·excel
单片机社区4 小时前
随笔十七、eth0单网卡绑定双ip的问题
网络·嵌入式硬件·网络协议·udp·智能路由器
汉克老师4 小时前
GESP2024年3月认证C++六级( 第三部分编程题(1)游戏)
c++·学习·算法·游戏·动态规划·gesp6级
闻缺陷则喜何志丹4 小时前
【C++图论】2685. 统计完全连通分量的数量|1769
c++·算法·力扣·图论·数量·完全·连通分量
利刃大大4 小时前
【二叉树深搜】二叉搜索树中第K小的元素 && 二叉树的所有路径
c++·算法·二叉树·深度优先·dfs