密码学基础

对称密码(Symmetric Encryption)
  • 分组密码:AES、DES/3DES
    模式:
    • ECB模式(Electronic CodeBook mode),电子密码本模式
    • CBC模式(Cipher Block Chaining mode),密码分组链接模式
    • CFB模式(Cipher FeedBack mode),密文反馈模式
    • OFB模式(Output FeedBack mode),输出反馈模式
    • CTR模式(CounteR mode),计数器模式
  • 流密码:RC4、ChaCha20
非对称密码(Asymmetric Encryption),又称公钥密码
  • 公钥加密,私钥解密
  • 公钥公开,私钥自己持有,且不能泄露
  • RSA、ECC
消息认证码(Message Authentication Code,MAC)
  1. 发送者Alice与接收者Bob事先共享密钥
  2. 发送者Alice根据请求消息计算MAC值(使用共享密钥)
  3. 发送者Alice将请求消息和MAC值两者发送给接收者Bob
  4. 接收者Bob根据接收到的请求消息计算MAC值(使用共享密钥)
  5. 接收者Bob将自己计算的MAC值与从Alice处收到的MAC值进行对比。如果一致,则证明此消息来自Alice,否则此消息不是来自Alice
单向散列函数
  • MD5、SHA1
数字签名
  • 算法:RSA,ElGamal,DSA,ECDSA,Rabin

  • 签名:私钥加密

  • 签名验签:公钥解密

  • 认证机构(Certification Authority,CA)

  • 注册机构(Registration Authority,RA)

  • 公钥基础设施(Public Key Infrastructure, PKI)

直接对消息签名

  1. Alice用自己的私钥对消息进行加密
  2. Alice将消息和签名发送给Bob
  3. Bob用Alice的公钥对收到的签名进行解密
  4. Bob将签名解密后得到的消息与Alice直接发送的消息进行对比

对消息的散列值签名

  1. Alice用单向散列函数计算消息的散列值
  2. Alice用自己的私钥对散列值进行加密
  3. Alice将消息和签名发送给Bob
  4. Bob用Alice的公钥对收到的签名进行解密
  5. Bob将签名解密后得到的散列值与Alice直接发送的消息的散列值进行对比
证书
  • 签发证书:1. 根CA使用自己的私钥给自己的公钥签名包装成证书 2. 根CA用自己的私钥给二级CA的公钥签名包装成证书 3. 二级CA用自己的私钥给终端的公钥签名包装成证书

  • 证书验签:1. 从根CA证书中获取公钥验签根CA证书 2. 从根CA证书中获取公钥验签二级CA证书 3. 从二级CA证书中获取公钥验签终端证书

  • 基于口令的密码(Password Based Encryption,PBE)

  • 初始化向量(Initialization Vector,IV)

  • 密钥分配中心(Key Distribution Center,KDC)

  • 椭圆曲线密码(Elliptic Curve Cryptography,ECC)

  • 密钥加密密钥(Key Encrypting Key,KEK)

  • 内容加密密钥(Contents Encrypting Key,CEK)

密钥配送方式

  • 非对称密码
  • DH密钥协商
  • 预共享密钥(PSK)
  • 硬件介质配送
  • 密钥分发中心(KDC)/证书授权中心(CA)
  • 量子密钥分发(QKD)

四种攻击方式

  • 唯密文攻击(Ciphertext-Only Attack, COA)
  • 已知明文攻击(Known-Plaintext Attack, KPA)
  • 选择明文攻击(Chosen-Plaintext Attack, CPA)
  • 选择密文攻击(Chosen-Ciphertext Attack, CCA)

密码系统五要素

  • 明文
  • 密文
  • 加密算法(公开)
  • 解密算法(公开)
  • 密钥(保密)

密码学工具箱6个工具

  • 对称密码
  • 非对称密码
  • 单向散列函数
  • 消息认证码
  • 数字签名
  • 伪随机数生成器

密码安全四大属性

  • 机密性:确保信息仅被授权主体访问,未授权者无法获取或解读。对称密码和非对称密码实现
  • 完整性:确保信息在存储、传输、使用过程中未被未授权篡改、伪造或破坏,保持原始状态。单向散列函数、消息认证码和数字签名实现
  • 认证:验证实体(人、设备、系统)或信息来源的真实性,确认对方是其所声称的身份。消息认证码和数字签名实现
  • 不可否认性:确保操作主体(人、系统)无法事后否认其已执行的操作(如发送消息、签署文件、发起交易)。数字签名实现

基于口令的密码(Password Based Encryption,PBE)

加密

  • 使用盐和口令生成KEK
  • 生成会话密钥并加密数据
  • 使用KEK加密会话密钥
  • 存储盐、加密会话密钥和加密数据

解密

  • 使用盐和口令重建KEK
  • 使用KEK解密会话密钥
  • 使用会话密钥解密数据
对比项 对称密码 非对称密码
发送者 用共享密钥加密 用公钥加密
接收者 用共享密钥加密 用私钥解密
密钥配送问题 存在 不存在,但公钥需要另外认证
机密性 保证 保证
对比项 消息认证码 数字签名
发送者 用共享密钥计算MAC值 用私钥生成签名
接收者 用共享密钥计算MAC值 用公钥验证签名
密钥配送问题 存在 不存在,但公钥需要另外认证
完整性 保证 保证
认证 保证(仅限通信对象双方) 保证(可适用于任何第三方)
不可否认 不保证 保证
相关推荐
奇遇0.004875 天前
tryhackme-公钥密码学基础
密码学·tryhackme
0x派大星7 天前
区块链中的数字签名:安全性与可信度的核心
区块链·密码学
CourserLi8 天前
【AI 解题】Yusa的密码学课堂 2026.1.25
人工智能·密码学
半路_出家ren9 天前
3.python模拟勒索病毒
python·网络安全·密码学·网络攻击模型·base64·病毒·勒索病毒
栗子~~11 天前
区块链中的密码学
区块链·密码学
半路_出家ren11 天前
1.古典密码概述
python·网络安全·密码学·古典密码·加密方式
码不停蹄Zzz15 天前
密码学算法之数字签名和认证协议篇(一)
密码学
じ☆冷颜〃17 天前
交换代数的解析延拓及在CS的应用
c语言·数据结构·笔记·线性代数·密码学
要做朋鱼燕17 天前
【AES加密专题】3.工具函数的编写(1)
笔记·密码学·嵌入式·aes
lightningyang19 天前
利用 OpenSSL 进行国际算法加密通信实验
服务器·密码学·openeuler·天枢一体化虚拟仿真靶场平台·openssl国际算法加密通信·密码实训