常用加解密那些事

作者: 木夜溯 | 来源:发表于2016-04-20 17:38 被阅读141次

在开发中由于对于数据安全性的要求,会对数据进行加解密处理。通常使用的加密方式有数字摘要、对称加密和非对称加密等。

一、数字摘要

数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数。数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。来源:百度百科

基于以上特征数字摘要主要运用于信息一致性的校验,比较常用的数字摘要算法有MD5,SHA等。摘要算法主要是为防止信息的篡改,一个数字签名的工作原理图如下(来自百度百科):


数据签名工作原理

对此图解释如下:

  1. 发方A将原文信息进行哈希运算,得一哈希值即数字摘要MD;
  1. 发方A用自己的私钥PVA,采用非对称RSA算法,对数字摘要MD进行加密,即得数字签名DS;
  2. 发方A用对称算法DES的对称密钥SK对原文信息、数字签名SD及发方A证书的公钥PBA采用对称算法加密,得加密信息E;
  3. 发方用收方B的公钥PBB,采用RSA算法对对称密钥SK加密,形成数字信封DE,就好像将对称密钥SK装到了一个用收方公钥加密的信封里;
  4. 发方A将加密信息E和数字信封DE一起发送给收方B;
  5. 收方B接受到数字信封DE后,首先用自己的私钥PVB解密数字信封,取出对称密钥SK;
  6. 收方B用对称密钥SK通过DES算法解密加密信息E,还原出原文信息、数字签名SD及发方A证书的公钥PBA;
  7. 收方B验证数字签名,先用发方A的公钥解密数字签名得数字摘要MD;
  8. 收方B同时将原文信息用同样的哈希运算,求得一个新的数字摘要MD’;
  9. 将两个数字摘要MD和MD’进行比较,验证原文是否被修改。如果二者相等,说明数据没有被篡改,是保密传输的,签名是真实的;否则拒绝该签名。

这样就可以保证敏感信息的在传输过程中不被篡改,保证了信息的安全性。

二、对称加密

对称加密也成为对称秘钥加密,可以使用同一秘钥对信息进行加解密处理。对称加密是使用比较早的加密算法,通过约定规则(加密秘钥)处理后变成密文发送出去,接受者根据规则(加密秘钥)来逆向进行解密,使其变为明文。
这里的秘钥就如同谍战片中的密码本。
对称加密算法中常用的算法有:DES、3DES、TDEA、AES等
优缺点:

优点:算法公开、计算量小、加密速度快、加密效率高
缺点:
1、交易双方都使用同样钥匙,安全性得不到保证。
2、每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量呈几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。

三、非对称加密

非对称加密解密与解密是使用不同的秘钥,因此需要两个秘钥:公开秘钥和私有秘钥。可以使用公钥与私钥进行相互加解密,即用公开密钥对数据进行加密,用对应的私有密钥才能解密;用私有密钥对数据进行加密,那么用对应的公开密钥才能解密。常用的加密算法是RSA等。

非对称加解密原理

  1. A要向B发送信息,A和B都要产生一对用于非对称加密算法和解密的公钥和私钥。
  1. A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
  2. A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
  3. A将这个消息发给B(已经用B的公钥加密消息)。
  4. B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

非对称加解密保密性比较好,不需要交换秘钥,但是算法强度复杂 ,加解密耗时,适合对少量数据进行加密。

参考:和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)

相关文章

  • 常用加解密那些事

    在开发中由于对于数据安全性的要求,会对数据进行加解密处理。通常使用的加密方式有数字摘要、对称加密和非对称加密等。 ...

  • 常用加解密那些事之数字摘要

    常用的数字摘要算法有MD5,SHA等,下面这对这些数字摘要算法来进行介绍。将数据(如一段文字)运算变为另一固定长度...

  • 常用加解密那些事之对称加密

    介绍 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过...

  • 常用加解密那些事之非对称加密

    非对称加密体制的思想: 公开密钥加密(public-key cryptography),也称为非对称加密(asym...

  • 区块链之加解密算法

    常用的加解密算法  常用的加解密算法有三类:对称加密算法、非对称加密算法以及hash加密算法。 在比特币中用到了非...

  • iOS常用加密算法介绍和代码实践

    iOS系统库中定义了软件开发中常用的加解密算法,接口为C语言形式。具体包括了以下几个大类: 其中第一类常用加解密算...

  • 常用的加解密算法的优缺点、应用场景总结

    常用的加解密算法的优缺点、应用场景总结 一、加解密的基础知识 1、对称密钥加密 对称密钥加密(一个密钥),也叫做共...

  • DES-Python加解密案例

    在python中处理des加解密,常用的库是pyDes这个库,现在以具体例子来讲解加解密算法1、需求:对一段数字或...

  • RSA 密码代码演示

    openssl 操作RSA公私钥 RSA加解密相关API 最常用的是 PKICSIPADDING 有 生成和导入 ...

  • 报文加密的对称方式和非对称分享

    我们和多部门之间联调经常需要涉及报文加解密的场景, 梳理出一部分常用的加解密实用文档供参考 加密算法(DES,AE...

网友评论

    本文标题:常用加解密那些事

    本文链接:https://www.haomeiwen.com/subject/fsnzlttx.html