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

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

作者: XiWeidong | 来源:发表于2017-12-14 16:44 被阅读0次

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

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

一 .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),如果能够被成功解密,就能证明加密者的身份。

注意:

  • 加密只能用私钥,解密只能用公钥,不要问为什么,这也是被数学证明过的。意思就是加密者加密一个密文,然后发给别人,别人如果能用加密者的公钥解密(公钥是全世界公开的),就能说明这个密文一定是被加密者用他的私钥加密过的。

  • 私钥万万不能泄密,泄密了别人就会冒充你的身份。

  • 私钥除了不能泄密,还要保证一定不能丢失。
    比如:比特币账户都是匿名的,账户是靠用户保存私钥来保证安全的,有很多人忘记了私钥,结果就是僵尸账户。

相关文章

网友评论

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

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