数据加密(对称加密和非对称加密)

简介: 通过网络通信的五层模型(ISO规定的是七层模型,TCP/IP规定的是五层模型)可以实现两个应用程序之间的数据通信   但是现在有个问题是 数据如何加密,总不能两个人之间说的话让第三个人活着别的人听到吧 那最简单的例子就是:A和B之间传递数据,如何保证数据不被第三个人知道,或者说第三个人就算知道数据,但是不知道数据所代表的意思。

通过网络通信的五层模型(ISO规定的是七层模型,TCP/IP规定的是五层模型)可以实现两个应用程序之间的数据通信

   但是现在有个问题是 数据如何加密,总不能两个人之间说的话让第三个人活着别的人听到吧

 那最简单的例子就是:A和B之间传递数据,如何保证数据不被第三个人知道,或者说第三个人就算知道数据,但是不知道数据所代表的意思。

在传递数据时候不能避免传递的数据被别的人知道,那我们能做的就是让第三个人不知道数据所表达的意思就好了。

A 和 B 约定一套规则,A 通过这套规则将要发送的数据改变,称作加密 ,B 接受到数据,在用这套规则将数据还原成原来的数据 称作解密。这就完成了一次加密数据传输。

因为数据传输的方式无外乎就有两种形式;1.通过无线的方式,对应的就是(电磁波)。2.通过有线连接的方式(网线)数据就是转化为0,1,0,1的这种二进制来传送的。

假如A 要发送一组数据为010101010101,A约定的规则是按位取反,通过这套规则数据就变成了101010101010,将变化后的数据发送给B,B得到这个数据,通过按位取反,将这套数据变成原来的样子也就是将1010101010按位置取反变成010101010101,在这个传输过程中有人得到了这个数据,那得到的也是101010101010,他并不知道这套规则,那即使知道了数据,也并不影响什么。

在上面的过程中这套规则就叫做 ------- 公钥 ----------  

上面的过程就叫做对称加密


对称加密是一种思想,具体的实现就是算法,有很多的对称加密的算法 比如DES算法

对称的意思就是  加密和解密用的是一套规则


说到这里对称加密大体说明白了一点。但不要停下思考的步伐,那请思考一个问题

公钥加密的公钥(也就是上面所说的那一套规则)也是数据,那怎么让对方知道公钥,要是通过网络传递,那要是公钥别第三个人截获,那你所传的数据第三方就知道了。

新的问题又摆在了眼前。。。。。。怎么搞,,怎么半


这个时候非对称加密就出现了,就是这样。在一个合适的时间 出现一个合适的东西。

扯多了,回归正题:

    继续上面的情景 A 和 B 俩交流,互通数据,解决上面出现的问题那就定义两套规则,一套加密(俗称公钥),一套解密(俗称私钥),那A又一对钥匙(即就是一个公钥,一个私钥),B也有一对钥匙。如果A想要给B传数据 那就先用B 的公钥将数据加密,然后通过网络传给B。B 接受到数据后,通过自己的私钥将数据解密 ,就得到A 所传的真正的数据。 同样的道理 B 想给A传数据,那就先通过网络得到A的公钥,然后加密数据,通过网络传给A ,A得到数据后用自己的私钥解密,就可以得到B 传给A的真正的数据。

    上面的过程就是非对称加密,所谓非对称就是有两套规则,一套是公钥,一套是私钥。

    这种规则其实就是算法,当然这种非对称加密算法有很多,但是现在比较常用的就是RSA算法RSA算法

    那写到这里基本的也就差不多了。数据加密传输也就完成了,基本没什么问题,但是网络传数据当然是越快越好,那我接下来就是要写一些两个加密方式的优缺点:

    对称加密 ---------简单,因为只有一套规则。

                    --------- 速度快,因为只有一套规则。

    非对称加密  ------- 复杂,两套规则

                        --------速度慢,两套规则

那对称加密的速度快和简单的优点,我们肯定是首选这个。但是这套规则的问题就在于公钥怎么传过去?思考一下,怎么搞?

    公钥 说到底也就是数据。那数据要怎么传 !!!!! 是不是很眼熟,这不就是我们之前将的问题吗?    我们可以用非对称加密将对称加密的公钥传过去,那之前对称加密的问题不就解决了吗? 然后可以放心大胆的使用对称加密了。有没有?

    一般先都是用非对称加密将对称加密的公钥传过去,然后使用对称加密。。那数据的处理速度就很快。

    ok  就到这了……

        

相关文章
|
2月前
|
存储 算法 安全
【加密算法】AES对称加密算法简介
【加密算法】AES对称加密算法简介
|
2月前
|
机器学习/深度学习 算法 安全
【加密算法】RSA非对称加密算法简介
【加密算法】RSA非对称加密算法简介
|
1月前
|
算法 Java 开发工具
使用阿里云KMS产品针对 Springboot 接口参数加密解密功能
针对Springboot里面使用开源工具使用加解密,替换成阿里云KMS产品进行加解密;
137 1
|
2月前
|
机器学习/深度学习 安全 算法
【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》
【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》
26 0
|
2月前
|
存储 安全 Nacos
使用KMS为MSE-Nacos敏感配置加密的最佳实践
本文主要介绍通过KMS密钥管理服务产生的密钥对敏感的AK等数据进行加密之后可以有效解决泄漏带来的安全风险问题,其次通过KMS凭据托管的能力直接将MSE的主AK进行有效管理,保障全链路无AK的业务体验,真正做到安全、可控。
92266 3
|
3月前
|
存储 安全 数据安全/隐私保护
加密的艺术:对称加密的奇妙之处(下)
加密的艺术:对称加密的奇妙之处(下)
加密的艺术:对称加密的奇妙之处(下)
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
17 0
|
2月前
|
存储 安全 算法
【接口加密】Java中的接口加密实践
【接口加密】Java中的接口加密实践
|
2月前
|
算法 安全 Java
Java 实现 RSA 非对称加密算法-加解密和签名验签
Java 实现 RSA 非对称加密算法-加解密和签名验签
|
Java 数据安全/隐私保护
java实现加密电话号码,有具体的加密流程注释
java实现加密电话号码,有具体的加密流程注释
19 0