目录
密码学
密码学发展
- 古典密码:古代----19世纪末
- 近代密码:20世纪初---1949年
- 现代密码:1949(香农发表的《保密系统的加密原理》)---1975
- 公钥密码:1976(W.Diffie和M.Hellman发表的《密码学的新方向》)--至今
对称加密体制
加密和解密秘钥相同,或者由一个能很容易的推出另一个。对称加密算法如:DES、3DES、AES等
优点:
- 效率高,算法简单,系统开销小
- 适合加密大量数据
- 明文长度和密文相同
缺点:
- 需要以安全方式进行密钥交换
- 密钥管理复杂
非对称加密体制
加密和解密秘钥不相同。其中,对外公开的秘钥,称为公钥。不对外公开的秘钥,称为私钥。对称加密算法如:RSA加密算法
优点:
- 解决密钥传递问题、密钥管理简单
- 大大减少密钥持有量
- 提供了对称密码技术无法或很难提供的服务(数字签名)
缺点:
- 计算复杂、耗用资源大
- 非对称会导致得到的密文变长
混合加密
由于对称加密体制和非对称加密体制各有优缺点。所以,在实际生活中,我们还是经常用混合加密方式来对数据进行加密的。
常见的混合加密算法主要是指 RSA加密算法 和 DES加密算法 这两种加密算法混合加密
数字信封
混合加密实现方式:
- 信息(明文)采用DES密钥加密得到密文。
- 使用RSA加密前面的DES密钥信息得到key,最终将密文和key进行传递。
接收到信息后解密:
- 用RSA解密key得到DES密钥。
- 再用DES秘钥解密文信息,最终就可以得到我们要的信息(明文)。
哈希算法
哈希(Hash),一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出通常称作散列值、数字指纹 或 消息摘要。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间(不同的输入有可能会散列成相同的输出,几率非常小),而不可能从散列值来逆向推出输入值,也就是说,哈希函数是不可逆的。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
哈希函数也称为散列函数、杂凑函数等。
哈希函数的特点:不可逆性,碰撞约束
目前网上大部分的哈希破解都是利用哈希值的密码字典进行爆破。
常见的哈希算法有:MD4 、MD5 、 SHA1、 SHA224 、 SHA256 、 SHA384 、SHA 512
- MD5 , 输出128bit的散列值
- SHA1 , 输出160bit的散列值
- SHA224, 输出224bit的散列值
- SHA256, 输出256bit的散列值
- SHA384, 输出384bit的散列值
- SHA512, 输出512bit的散列值
哈希算法的用途:文件校验、数字签名、安全传输和存储口令