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

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

从两个维度考虑:

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

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

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

【生成密钥】

密钥最关键的特性:

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

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

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

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

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

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

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

相关推荐
青衫码上行4 分钟前
【Java Web学习 | 第九篇】JavaScript(3) 数组+函数
java·开发语言·前端·javascript·学习
北京耐用通信6 分钟前
从‘卡壳’到‘丝滑’:耐达讯自动化PROFIBUS光纤模块如何让RFID读写器实现‘零延迟’物流追踪?”
网络·人工智能·科技·物联网·网络协议·自动化
jf加菲猫7 分钟前
第1章 认识Qt
开发语言·c++·qt·ui
xier_ran12 分钟前
深度学习:Mini-batch 大小选择与 SGD 和 GD
人工智能·算法·机器学习
铅笔小新z15 分钟前
深入理解C语言内存管理:从栈、堆到内存泄露与悬空指针
c语言·开发语言
王璐WL17 分钟前
【数据结构】单链表的经典算法题
数据结构·算法
m0_4955627819 分钟前
Swift-Enum
java·算法·swift
m0_4955627820 分钟前
Swift-snapKit使用
开发语言·elasticsearch·swift
青山的青衫22 分钟前
【前后缀】Leetcode hot 100
java·算法·leetcode
q***188434 分钟前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang