密码学基础
密码学基础
1.体系
1 | graph TD; |
密码编码学
编码是信息按照预先规定方式从一种形式转换为另一种形式的过程
古典密码
常见的编码
ASCII
是基于拉丁字母的一套电脑编码系统,是最通用的信息交换标准
主要分为三个部分:
加密双方共享同一个密钥来进行加解密计算
模式
1 | flowchart LR |
安全性在密钥的保密
一次一密(无条件安全),但是密钥长度会超过明文长度
流密码/序列密码
需要密钥流生成器,生成伪随机序列,它将明文消息和一个伪随机密钥流逐位或逐字节结合,生成密文。与分组密码不同,流密码连续不断地处理数据流,而不是将数据分成固定大小的块。
核心概念和工作原理
- 密钥流生成器:流密码的核心是一个密钥流生成器,它使用密钥生成一个伪随机的密钥流。
- 加密: 明文消息与密钥流进行异或 (XOR) 操作,生成密文。
- 解密: 使用相同的密钥流与密文进行异或操作,恢复明文。
使用伪随机数发生器要求:
- 所产生随机数的周期足够大
- 种子的长度足够大,以抵抗暴力枚举
- 种子中1bit的改变能引起序列的极大改变(雪崩效应)
- 产生的密钥能抵抗统计学分析
- 获取少量已知的密钥流时,无法还原整个发生器的状态
一次性密码本
一次性密码本是一种“无法破解”的密码技术,理论上,此种密码具有“完善保密性”,安全性由香农证明
一次性密码本通过真随机数发生器生成的密钥流进行加解密,生成的密钥流长度与明文流长度一致,且密钥流只能使用一次
漏洞
- 可以通过一个已知明文来推出另一个明文
- 相同明文产生相同密文
分组密码
逐分组进行处理,对明文分组进行加密,产生密文。
通过迭代来产生密文。
1 | graph LR; |
非对称加密体系
加密双方使用一对密钥来进行加解密计算,使用两个密钥:公钥和私钥。公钥可以公开分发,而私钥必须保密。这两个密钥在数学上相关联,使用公钥加密的数据只能用对应的私钥解密,反之亦然。
以下是更详细的解释:
核心概念和工作原理:
- 密钥对: 每个用户或实体都有一对密钥:公钥和私钥。
- 加密: 使用接收者的公钥加密消息。只有拥有对应私钥的接收者才能解密消息。
- 解密: 使用私钥解密消息。
- 数学基础: 非对称加密算法通常基于数学难题,例如大数分解(RSA)或椭圆曲线离散对数问题(ECC)。这些难题使得在已知公钥的情况下计算私钥非常困难。
主要优势:
- 密钥分发更安全: 无需安全通道即可交换公钥。
- 数字签名: 可以使用私钥对消息进行数字签名,以验证消息的发送者和完整性。
- 身份验证: 可以使用公钥验证用户的身份。
主要劣势:
- 加密速度较慢: 相比对称加密,非对称加密的计算量更大,速度较慢。
- 密钥管理更复杂: 需要安全地生成、存储和管理密钥对。
常用的非对称加密算法:
- RSA (Rivest-Shamir-Adleman): 基于大数分解难题。
- ECC (Elliptic Curve Cryptography): 基于椭圆曲线离散对数问题。ECC 在相同安全级别下可以使用更短的密钥,因此效率更高。
- ElGamal: 基于离散对数问题。
- DSA (Digital Signature Algorithm): 主要用于数字签名。
应用场景:
- TLS/SSL (Transport Layer Security/Secure Sockets Layer): 用于保护网络通信,例如 HTTPS。
- SSH (Secure Shell): 用于安全远程登录。
- PGP (Pretty Good Privacy): 用于电子邮件加密和数字签名。
- 比特币和其他加密货币: 用于数字签名和交易验证。
- 数字证书: 用于验证网站和用户的身份。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小chen妙妙屋!
评论




