0%

密码学系列:概述

在加解密技术中根据密钥的类型一般可以分为对称加密和非对称加密,本系列文章将对这两种类型涉及到的加解密算法展开分析,其他的密码技术如散列算法、密钥协商、签名等,也在讨论范围之内。

  • 将现实世界的东西映射为比特序列的操作为编码
  • 将表示明文的比特序列转换为表示密码的比特序列为加密

对称加密算法

常用的对称加密算法:

  • DES(Data Encryption Standard)
  • 三重DES(triple-DES)
  • AES(Advanced Encryption Standard)Rijndael

上边三种算法都只能加密固定长度的一个字节分组,故也可以叫做分组密码。如果要加密大段明文,还需要对明文迭代进行加密,不同的迭代方式就称为模式,主要有以下几种:

  • ECB(Electronic CodeBook)
  • CBC(Cipher Block Chaining)
  • CFB(Cipher FeedBack)
  • OFB(Output FeedBack)
  • CTR(Counter)

非对称加密算法

常用的算法:

  • RSA
  • ECC

特点:

需要极其复杂的计算,因此相比对称加密速度比较慢(速度是对称加密的几百分之一)

主要应用:

  • 密钥协商
  • 数字签名(DSA、ECDSA)
  • 加解密(RSA、ECC)

密钥交换算法

  • Diff-Hellman 密钥交换(DHKE)
  • ECDH

签名算法

  • RSA数字签名 (基于大数的分解问题)
  • DSA (基于离散对数问题)
  • ECDSA (基于椭圆曲线的推广的离散对数问题)
  • Schnorr

常用的散列函数

  • MD4(Message Digest):128 bit,不安全
  • MD5 :128 bit,不安全
  • SHA-1 :160 bit,不安全,山大王小云攻破 message,长度上限 2^64 -1 bit
  • SHA-2
    • SHA-256 :256 bit,message 长度上限 2^64 - 1 bit
    • SHA-384 :384 bit,message 长度上限 2^128 - 1 bit
    • SHA-512 :512 bit,message 长度上限 2^128 -1 bit
  • RIPEMD-160 :160 bit
  • SHA-3(Keccak):理论可以生成任何长度散列值,message 长度无限制
    • SHA3-224
    • SHA3-256
    • SHA3-384
    • SHA3-512

常见术语

  • EC, Elliptic Curve, 椭圆曲线
  • ECC, Elliptic Curve Cryptography, 椭圆曲线密码学
  • ECDSA, Elliptic Curve Digital Signature Algorithm, 椭圆曲线数字签名算法
  • DH, Diffie-Hellman Key Exchange, Diffie-Hellman 密钥交换
  • ECDH, Elliptic Curve Diffie-Hellman Key Exchange, 椭圆曲线 Diffie-Hellman 密钥交换
  • IES, Integrated Encryption Schema, 集成加密框架
  • ECIES, Elliptic Curve Integrated Encryption Schema, 椭圆曲线集成加密框架
  • KDF, Key Derivation Function, 密钥(私钥)生成函数

密码学相关书籍

《图解密码技术》- 结城浩 著

《深入浅出密码学》- Christof Paar / Jan Pelzl 著 马小婷 译

《应用密码学:协议、算法与C源程序》- Bruce Schneier 著

《公钥密码学的数学基础》- 王小云 著

参考代码合集

https://github.com/tpkeeper/crypto