对称算法,摘要算法,公钥算法

来源:互联网 发布:sql 连续语句 编辑:程序博客网 时间:2024/05/21 13:59

1.  对称算法

加解密使用一个密钥

有四种加密模式:电子密码本模式(ECB)、加密块链模式(CBC)、加密反馈模式(CFB)、输出反馈模式(OFB)

2. 摘要算法

消息摘要算法是不可逆

常用的“消息摘要”算法有: MD2、MD4、MD5、SHA、SHA-1/256/383/512等。

       常用的摘要算法主要有MD5和SHA1。MD5的输出结果为16字节,sha1的输出结果为20字节。

3. 公钥算法

加解密使用不同的密钥。公钥加密,私钥解密。

常用的算法有:RSA、DSA、DH和ECC


a. RSA它的安全性是基于大整数素因子分解的困难性。

大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。


算法:

1. 选择2个质数p、q;

2. n = p * q ;

3. 欧拉函数Φ(n) = (p- 1)(q - 1)

4. 选择整数e,使e与Φ(n)互质,且1 < e < Φ(n)

5. 计算d,使d * e = 1 mod Φ(n)

其中,公钥KU={e, n},私钥 KR = { d, n }。

b.  DSA 只用做数字签名 安全性基于解离散对数的困难性

DSA签名算法中用到了以下参数: 

p是L位长的素数,其中L从512到1024且是64的倍数。 

q是160位长且与p-1互素的因子 ,其中h是小于p-1并且满足 大于1的任意数。 

x是小于q的数。 


算法使用一个单向散列函数H(m)。

标准指定了安全散列算法(SHA)。三个参数p,q和g是公开的,且可以被网络中所有的用户公有。

私人密钥是x,公开密钥是y。 


对消息m签名时: 

(1) 发送者产生一个小于q的随机数k。 

(2) 发送者产生: r和s就是发送者的签名,发送者将它们发送给接受者。 

(3) 接受者通过计算来验证签名:

如果v=r,则签名有效。


c.  Diffie-Hellman密钥交换

实质是一个通信双方进行的密钥协定,安全性基于有限域上计算离散对数的困难性。

d. 椭圆曲线密码机制( ECC )

椭圆曲线的数量乘是这样定义的:设E为域K上的椭圆曲线,G为E上的一点,

这个点被一个正整数k相乘的乘法定义为 k个G相加,因而有

kG = G + G + … + G       (共有k个G)

若存在椭圆曲线上的另一点N ≠ G,满足方程kG = N。

容易看出,给定k和G,计算N相对容易。而给定N和G,计算k = logG N相对困难。这就是椭圆曲线离散对数问题。


4. 回调函数