密码算法的工作模式就是怎样使用密码算法来达到一定的目的,比如怎样加密一个文件。工作模式有很多种,仅用于加密的,用来构造HASH函数的,仅用于生成消息验证码的,用于伪随机数生成的,既能加密又能同时生成验证码的,专门针对磁盘加密的……
很多工作模式都已经被标准化了,这其中影响最广的应该算是NIST了,其他相关标准化组织有ISO/IEC、IEEE、ANSI、 IETF……以下列举其中一部分。
- NIST 800-38系列
- ECB
- CBC
- OFB
- CFB
- CTR
- CMAC
- CCM
- GCM
- XTS
- KeyWrap
- ISO-IEC 19772
- OCB2.0
- KeyWrap
- CCM
- EAX
- Encrypt-then-MAC
- GCM
- IEEE P1619系列
- CCM
- GCM
- CBC
- XTS
- XCB
- EME2
- ISO/IEC 9797 Message Authentication Codes (MACs)
- 缺文档,详情未知
- ISO/IEC 10118 Hash-functions
- 缺文档,详情未知
- ISO/IEC 11770 Key management
- 缺文档,详情未知
- ISO/IEC 18033 Encryption algorithms
- 缺文档,详情未知
- 其他
常见的工作模式如下:
模式 |
用途 |
标准 |
ECB |
加密 |
NIST |
CBC |
加密 |
NIST |
OFB |
加密 |
NIST |
CFB |
加密 |
NIST |
CTR |
加密 |
NIST |
F8 |
加密 |
3GPP |
CMAC |
认证 |
NIST |
OMAC |
认证 |
|
F9 |
认证 |
3GPP |
CCM |
认证加密 |
NIST |
GCM |
认证加密 |
NIST |
OCB |
认证加密 |
ISO-IEC |
EAX |
认证加密 |
|
XTS |
磁盘加密 |
NIST |
LRW |
磁盘加密 |
|
KeyWrap |
密钥保护 |
NIST |
LibTomCrypt中实现的模式有以下这些:
- modes文件夹内
- cbc
- cfb
- ctr
- ecb
- f8
- lrw
- ofb
- xts
- encauth文件夹内
- ccm
- eax
- gcm
- ocb
- mac文件夹内
- f9
- hmac
- omac
- pelican
- pmac
- xcbc
参考文献
- IEEE P1619, http://en.wikipedia.org/wiki/IEEE_P1619
- NIST, http://csrc.nist.gov
- IEEE, http://standards.ieee.org/
- 分组密码工作模式, http://en.wikipedia.org/wiki/Cipher_mode
- 磁盘加密理论, http://en.wikipedia.org/wiki/Disk_encryption_theory
- 磁盘加密, http://en.wikipedia.org/wiki/Disk_encryption
- MAC, http://en.wikipedia.org/wiki/Message_authentication_code
- 加密认证模式, http://en.wikipedia.org/wiki/Authenticated_encryption
- 单向压缩函数, http://en.wikipedia.org/wiki/One-way_compression_function