密码学算法
转载请标明原作者哦
密码学算法中现在使用最多的对称加密算法和非对称加密算法
在讲密码学算法之前先来看一下HASH函数
- HASH函数:
哈希函数,散列函数,摘要函数
是将任意长度的消息映射成一个较短的定长输出报文的函数
h = H(M), M是变长的报文,h是定长的散列值
HASH主要算法:MD5、SHA-1、SM3
HASH函数算法中最常见的是MD5和SHA-1算法
MD5算法:
输入:任意长度的信息
输出:128位信息摘要
处理:以512位输入数据块为单位
SHA-1算法:
输入:最大长度为为264位的消息;
输出:160位消息摘要;
处理:输入以512位数据块为单位处理.
对称加密算法和非对称加密算法的区别
对称加密算法:加密密钥和解密密钥相同,或 实质上等同,即从一个易于推出另一个
非对称加密密钥算法::加密密钥和解密密钥不同, 从一个很难推出另一个(对外公开公钥,自己保留私钥)
- 简单点来讲就是对称加密密钥算法需要自己保留公钥和私钥,非对称加密密钥自己保留私钥就可以了。
对称机密常用的算法 (DES、3DES、AES、IDES)
对称机密密钥算法我们来详细看一下DES和3DES(AES和IDES我们大致了解一下)
- 对称加密算法加密密钥和解密密钥形同,根据这个特性可以看出解密对称加密主要根据加密方法反推就可以了
DES算法:密钥长度为56bits(加上奇偶校验,通常 写成64bits)。
DES算法的基本思想:混淆(Confusion) 扩散(Diffusion)
- DES算法的加密过程
- DES解密过程
3DES算法
3DES的密钥长度为168比特,k=k1k2k3
- 3DES加密过程
- IDES算法
IDES算法用了三种数学运算:
模216异或算法;
模216加法,表示为 X+Y=Z mod(216);
模216+1 乘法,表示为 X*Y=Z mod(216+1);
- IDESA 分组长度64比特 ,分4组,每组长度为16比特,表示为:X1、 X2、X3和X4
- 密钥长度 128比特
- 同一算法既可以加密,也可用于解密
- 软件实现IDEA比DES快两倍
- 高级数据加密标准 (AES)
对AES的基本要求是
- 比三重DES快、至少与三重DES一样安全
- 数据分组长度128比特、密钥长度128/192/256比特
- 加密过程是在一个4×4的字节矩阵(state) 上实施
- 能有效抵抗目前已知的攻击算法 (线性攻击、差分攻击)
非对称密码算法
- 非对称加密算法我们来具体了解一下应用场合和RSA算法的特点
公钥
- 不同于以往的加密技术,公钥密码体制是建立在数学函数基础上的, 而不是建立在位方式的操作上的。
- 与只使用单一密钥的传统加密技术相比,它在加解密时,分别使用 了两个不同的密钥:一个可对外界公开,称为“公钥”; 一个只有所有者知道,称为“私钥”。
- 用公钥加密的信息只能用相应的私钥解密,反之亦然。
- 同时,要想由一个密钥推知另一个密钥,在计算上是不可能的
公钥加密模型
公钥密码的重要特性
- 加密与解密由不同的密钥完成
- 知道加密算法,从加密密钥得到解密密钥在计算上是不可行的。
- 两个密钥中任何一个都可以用作加密而另一个用作解密(不是必 须的)。
- X = DKR(EKU(X)) = EKU(DKR(X))
RSA算法加密/解密过程
今天密码学就讲到这里了