数据安全HASH,AES,RSA算法实战讲解(1-概述)

2017-12-14  本文已影响0人  XiWeidong

个人对数据安全理解是:
算法是公开的,在当前世界算力下,理论上不可破解的,是靠秘钥来保证安全的,不是算法本身。

在我们日常的开发过程中,我们开发人员保证数据安全,主要通过四个手段。

一 .HASH

通过对数据的签名(其实就是对数据进行HASH)保证传输过程中数据不被篡改。
如:微信的 “微信公众平台的接入” 的数据签名(signature),保证消息的确来自微信服务器,并没有被篡改过。

Hash签名

1 .hash算法是内容摘要算法,是有损的,不可逆的,固定长度,输入改变一点,输出千差万别,但可能产生碰撞(可以参考王小云教授的构造md5值),这里的hash算法可以是:md5或sha1等,如下图:


Hash算法

2 .数据发送方和接收方用同样的方式(数据,key,hash算法)进行 hash生成signature值。其中key是双方约定的,并对第三方是绝对保密的,如果在传输过程中,其中某个数据被篡改,那么接收方收到的signature和接收方自己hash出的signature值就不相等,这样保证数据的正确性。

二 . AES

通过数据进行对称加密(主要是AES),保证数据传输过程中数据不被泄密。
如:微信的 “微信公众平台的接入” 的数据加密传输。

对称加密算法-加密 对称加密算法-解密

之所以是对称加密,指的是这里加密和解密用的是一个秘钥key,秘钥key是双方约定的,并对第三方是绝对保密的,如果秘钥key泄露了,或者拥有秘钥key的人作恶了,就不安全了。对称加密的速度比较快。

三 . RSA - 公钥加密,私钥机密

通过非对称加密(RSA)的公钥对数据进行加密,然后通过私钥对应的私钥对数据进行解密,也是保证数据传输过程中数据不被泄密,非对称加密的速度比较慢。
如:https的ssl协议


RSA - 公钥加密,私钥机密

具体步骤:

  1. 主要的流程是通过openssl等工具生成一对公私钥对,图中public key 就是生成的公钥,private key 就是生成的私钥,公钥可以公开给任何人,私钥是自己绝对保密。plaintext是明文,ciphertext是密文,encryption是加密操作,decryption是解密操作,具体步骤:
  2. 明文(plaintext)通过公钥进行加密加密操作获得一个密文(ciphertext)
  3. 密文(ciphertext)通过私钥解密再解密成明文(plaintext)

注意:
加密只能用公钥,解密只能用私钥,不要问为什么,这是被数学证明过的。

四 . RSA - 私钥加密,公钥解密

通过非对称加密(RSA)的私钥对数据进行加密,然后通过公钥对应的私钥对数据进行解密,为了证明加密着的身份,用于身份确认,
如:银行发的U盾,证书。


RSA - 私钥加密,公钥解密

具体步骤:

  1. 生成公私钥对和上面一样,通过openssl等工具生成一对公私钥对,图中public key 就是生成的公钥,private key 就是生成的私钥,公钥可以公开给任何人,私钥是自己绝对保密。plaintext是明文,ciphertext是密文,encryption是加密操作,decryption是解密操作,具体步骤正好和上面密码过程相反:
  2. 明文(plaintext)通过私钥进行加密加密操作获得一个密文(ciphertext)。
  3. 密文(ciphertext)通过公钥解密再解密成明文(plaintext),如果能够被成功解密,就能证明加密者的身份。

注意:

上一篇 下一篇

猜你喜欢

热点阅读