密码算法分类
按密钥种类
- 对称密码算法
- 非对称密码算法
- 公钥密码算法(加密的密钥时公开的,解密的密钥是保密的)
按明文处理方法
- 分组密码:将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文
- 流密码:又称序列密码.序列密码每次加密一位或一字节的明文,也可以称为流密码。
古典密码(对称的)
- 代换技术:明文中的每个元素映射为另一元素
- 置换技术:明文中的元素重新排列
古典密码种类
- 凯撒密码
- 移位密码
- 单表密码
- 维吉尼亚密码
- 不带密钥的置换技术(栅栏技术)
- 带密钥的置换技术
数字加密标准算法(DES)
高级数据加密(AES)
RSA
散列函数
- 散列(Hash)函数是一种单项密码体制,它是一个从明文到密文的不可逆函数,是无法解密的。
- 通常应用在只需要加密、不需要解密的特殊应用场合或需要进行数据完整性鉴定的情况下。
- 密码学中的Hash函数的主要功能是提供有效的数据完整性检验
安全性要求
- 单向性:由消息的散列值倒算出消息在计算上不可行,即给定H(m),计算m在计算上不可行;
- 抗弱碰撞性:对于任何给定消息及其散列值,不可能找到另一个能映射出该散列值的消息;
- 抗强碰撞性:对于任何两个不同的消息,它们的散列值必定不同,很难找到两条消息m和m’,使得H(m)=H(m’)