您的位置:首页 > 其它

对称加密、非对称加密、数字签名

2017-08-03 14:38 316 查看
一、密码学算法的分类

消息编码:Base64

消息摘要:MD类、SHA类、MAC类

对称密码:DES、3DES、AES

非对称密码:RSA、DH密钥交换

数字签名:RSASignature、DSASignature

密码学五元组:

明文、密文、加密算法、解密算法、密钥

二、消息摘要的分类

MD(Message Digest):消息摘要算法

SHA(Secure Hash Algorithm):安全散列算法

MAC(Message Authentication Code):消息队证码算法

消息摘要的作用:

验证数据的完整性(防止在传输途中被篡改)。

MD算法种类



SHA算法

安全哈希算法,主要适用于数字签名标准里面定义的数字签名算法。

SHA算法的种类



单一MD或SHA算法的缺点:摘要值容易被篡改。

HMAC算法

结合了MD5和SHA算法的优势,同时利用密钥对摘要加密,是一种更为安全的消息摘要算法。

HMAC算法的种类



总结:

散列函数特征:

输入任意长度数据,输出固定长度散列值,计算很容易,过程不可逆

对于某数据,其散列值固定

两个数据不同,则对应的散列值也不同

两个散列值不同,则对应的原始数据输入数据也不同

三、对称密码

加密密钥和解密密钥相同,对于大多数对称密码算法,加解密过程逆向

特点:算法公开、计算量小、加密速度快、加密效率高

弱点:双方都使用同样密钥,安全性得不到保证

对称密码的种类

DES(Data Encryption Standard)

3DES(Triple DES、DESede)

AES(Advanced Encryption Standard)

DES、3DES、AES对比

DES

DES:数据加密标准,是对称加密算法领域中的典型算法

特点:密钥偏短(56位)、生命周期短

3DES

3DES:将密钥长度赠至112位或者168位,通过增加迭代次数提高安全性

缺点:处理速度较慢、密钥计算时间较长、加密效率不高

AES

AES:高级数据加密标准,能够有效抵御已知的针对DES算法的所有攻击

特点:密钥建立时间短、灵敏性好、内存需求低、安全性高

对称加密种类的比较:



四、非对称加密



这种加密方式就是,加密方和解密方可以使用不同的加密规则。这样的话就有两套密钥,公钥和私钥。

乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。

甲方获取乙方的公钥,然后用它对信息加密。

乙方得到加密后的信息,用私钥解密。

五、数字签名

如上图,公钥可以被任何获取,然后对文件加密。假设这样一种情况:甲使用公钥对文件进行加密,然后向乙传输密文,但是传输的过程中,被同样有公钥的丙截获(公钥任何人都可以拥有),这个时候丙利用自己的公钥,重新加密一封密文,传输给乙。如此一来,乙收到的密文不是甲传过来的,而是丙传过来的。但是乙并不知道。如此一来,就产生了文件被掉包。

数字签名的作用就是用来校验文件是否在传输过程中是否被篡改和掉包。具体实现方式有两种:无保密机制签名和保密机制签名

5.1无保密机制签名

甲在对明文加密之前,先使用摘要算法,对明文生成摘要,然后把摘要使用非对称加密的方式进行加密,然后传输给乙,乙收到摘要密文后使用私钥进行解密,然后把收到的文件明文进行摘要算法,得到摘要后和乙传输过来的密文进行比对。就可以知道,文件是否被替换。

签名过程:

发送方采用某种摘要算法从报文中生成一个128位的散列值(称为报文摘要);

发送方用RSA算法和自己的私钥对这个散列值进行加密,产生一个摘要密文,这就是发送方的数字签名;

将这个加密后的数字签名作为报文的附件和报文一起发送给接收方;

接收方从接收到的原始报文中采用相同的摘要算法计算出128位的散列值;

报文的接收方用RSA算法和发送方的公钥对报文附加的数字签名进行解密;

如果两个散列值相同,那么接收方就能确认报文是由发送方签名的。

流程图如下:



5.2保密机制签名

上面的加密方式中,只是实现了使用签名如何对校验传输数据是否被篡改和替换,但是传输的还是明文,如果要想对传输明文进行加密成密文,该如何加密?

这里采用的方法是使用对称加密的方式对明文加密,然后将对称加密的秘钥使用RSA加密,然后在对密文生成摘要,然后传输。

流程图如下:



六. 数字证书

数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构—–CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息