密码学学习笔记01
一、密码学算法的家族成员
为了数据的安全,在编程中,常常用到一些密码学算法,最常用的是密码学算法包括以下三大类:哈希算法、加密解密算法、编码解码算法。
分为这三大类的依据是什么呢?其实这种分类是根据每种算法的最大核心特性而定的。
哈希算法不可逆
加密解密算法可逆,但是必须要有秘钥
编码解码算法可逆,无需秘钥
1.哈希算法
包括:md4、md5、hash1、ripeMD160、SHA256(比特币常用)、SHA3、Keccak-256等
2.加密解密算法
2.1 对称加密算法
包括DES、3DES、AES等
2.2 非对称加密算法
包括RSA算法、椭圆曲线加密算法
2.3 数字签名算法DSA
包括RSA数字签名、椭圆曲线数字签名
3.编码解码算法
包括Base64编码与解码、Base58编码与解码
哈希算法
一个优秀的hash算法,将能实现:
正向快速:给定明文和hash算法,在有限时间和有限资源内能计算出hash值
逆向困难:给定(若干)hash值,在有限时间内很难(基本不可能)逆推出明文
输入敏感:原始输入信息修改一点信息,产生的hash值看起来应该都有很大不同
抗冲突(抗碰撞性)

查看13道真题和解析