密码学基础

对称密码(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值 用公钥验证签名
密钥配送问题 存在 不存在,但公钥需要另外认证
完整性 保证 保证
认证 保证(仅限通信对象双方) 保证(可适用于任何第三方)
不可否认 不保证 保证
相关推荐
搬砖魁首2 天前
密码学系列 - 零知识证明(ZKP) - Schnorr协议
区块链·密码学·零知识证明·schnorr·fiat-shamir
MQLYES4 天前
02-BTC-密码学原理
区块链·密码学·哈希算法
小李独爱秋7 天前
计算机网络经典问题透视:不重数(Nonce)是否就是随机数?一场深入骨髓的密码学思辨
服务器·网络·计算机网络·安全·web安全·密码学
kp000008 天前
SM系列国密算法全面对比与解析
网络安全·信息安全·密码学·国密·sm加密
Wcowin8 天前
非对称密码
网络·密码学
一个平凡而乐于分享的小比特9 天前
OpenSSL 全面解析:从入门到精通
密码学·openssl·隐私安全
缘友一世10 天前
现代密码学【8】之基于随机预言机模型的公钥密码系统
密码学
咸鱼菲菲10 天前
KhPRF介绍
安全·密码学·同态加密
一个平凡而乐于分享的小比特10 天前
公钥与私钥完全解析:数字世界的钥匙与锁
操作系统·密码学·公钥与私钥·隐私安全
print_Hyon10 天前
【CTF-密码学-RSA】计算私钥和公钥进行加密和解密
密码学·ctf