公钥、密钥、SSL、会话密钥的简单解释

im安全层协议设计(instant message 即时通讯

消息的保密性非常重要 ,谁都不希望自己聊天内容被看到,所以安全层是必不可少的。

1、SSL证书管理微微复杂,代价有点高。

2、自行加解密自己来搞加解密,核心在于密钥的生成与管理,密钥管理方式有多种,主要有这么三种:

(1)固定密钥

服务端和客户端约定好一个密钥,同时约定好一个加密算法(eg:AES ),每次客户端im在发送前,就用约定好的算法,以及约定好的密钥加密再传输,服务端收到报文后,用约定好的算法,约定好的密钥再解密。这种方式,密钥和算法对程序员都是透明的。

(2)一人一密钥

简单说来就是每个人的密钥是固定的,但是每个人之间又不同,其实就是在固定密钥的算法中包含用户的某一特殊属性,比如用户uid、手机号、qq号等。

(3)动态密钥(一session一密钥)

动态密钥,一Session一密钥的安全性更高,每次会话前协商密钥。密钥协商的过程要经过2次非对称密钥的随机生成,1次对称加密密钥的随机生成,参考固态秘钥,用于加密的秘钥由客户端通过公钥加密发送给服务端,服务端使用私钥解密拿到后续通讯时使用改秘钥对信息进行加密

我尽量简单一些说,如果是大虾,就不用看了。注意,和具体的情况会有些不同,因为为了说明原理,简化了。

一,公钥私钥
1
,公钥和私钥成对出现
2
,公开的密钥叫公钥,只有自己知道的叫私钥
3
,用公钥加密的数据只有对应的私钥可以解密
4
,用私钥加密的数据只有对应的公钥可以解密
5
,如果可以用公钥解密,则必然是对应的私钥加的密
6
,如果可以用私钥解密,则必然是对应的公钥加的密
明白了?

假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们,然后我告诉大家,1是我的公钥。

我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。

我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

现在我们知道用公钥加密,然后用私钥来解密,就可以解决安全传输的问题了。如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知道我的公钥是1,那么这种加密有什么用处呢?

但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他解密看是不是c。他用我的公钥1解密,发现果然是c。这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。

好,我们复习一下:
1
,公钥私钥成对出现
2
,私钥只有我知道
3
,大家可以用我的公钥给我发加密的信了
4
,大家用我的公钥解密信的内容,看看能不能解开,能解开,说明是经过我的私钥加密了,就可以确认确实是我发的了。

总结一下结论:
1
,B用A的公钥加密数据,A用私钥来解密数据(B加密传输的数据)
2
,A用A的私钥加密数据(数字签名),B用A的公钥来验证数字签名。(认证消息发送者身份为A)

在实际的使用中,公钥不会单独出现,总是以数字证书的方式出现,这样是为了公钥的安全性和有效性。

二,SSL
我和我得好朋友x,要进行安全的通信。这种通信可以是QQ聊天,很频繁的。用我的公钥加密数据就不行了,因为:
1
,我的好朋友x没有公私钥对,我怎么给他发加密的消息啊? (注:实际情况中,可以双方都有公私钥对)
2
,用公私钥加密运算很费时间,很慢,影响QQ效果。

好了,好朋友x,找了一个数字3,用我的公钥1,加密后发给我,说,我们以后就用这个数字来加密信息吧。我解开后,得到了数字3。这样,只有我们两个人知道这个秘密的数字3,别的人都不知道,因为他们既不知x挑了一个什么数字,加密后的内容他们也无法解开,我们把这个秘密的数字叫做会话密钥。

然后,我们选择一种对称密钥算法,比如DES,(对称算法是说,加密过程和解密过程是对称的,用一个密钥加密,可以用同一个密钥解密。使用公私钥的算法是非对称加密算法),来加密我们之间的通信内容。别人因为不知道3是我们的会话密钥,因而无法解密。

好,复习一下:
1
SSL实现安全的通信
2
,通信双方使用一方或者双方的公钥来传递和约定会话密钥 (这个过程叫做握手)
3
,双方使用会话密钥,来加密双方的通信内容

上面说的是原理。大家可能觉得比较复杂了,实际使用中,比这还要复杂。不过庆幸的是,好心的先行者们在操作系统或者相关的软件中实现了这层(Layer),并且起了一个难听的名字叫做SSL,(Secure Socket Layer



  • 11
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 在 TF 加密卡中,将会话密钥导入明文需要使用相应的会话密钥算法标识,这相当于对会话密钥进行对称加密。由于对称加密存在秘钥管理问题,所以不够安全。 为了提高安全性,可以使用非对称加密算法(如 ECC)加密会话密钥,再将加密后的会话密钥导入加密卡。这样,即使会话密钥被窃取,也无法被破解。 正确的操作方法是:使用非对称加密算法(如 ECC)加密会话密钥,再将加密后的会话密钥导入加密卡。 ### 回答2: TF加密卡中明文导入会话密钥需要相应的会话密钥算法标识,相当于对会话密钥进行了对称加密。对称加密会话密钥存在安全性问题,因为会话密钥可能会被攻击者截获并进行解密,从而导致信息泄露。 为了增加会话密钥的安全性,需要进行额外的ECC加密会话密钥操作。ECC是椭圆曲线密码体制的缩写,是一种公钥密码体制。ECC加密会话密钥的过程是,先生成一对ECC公钥和私钥,然后使用公钥会话密钥进行加密,得到加密后的会话密钥,最后将加密后的会话密钥发送给接收方。 正确的操作是,发送方需要使用会话密钥算法标识对会话密钥进行对称加密,然后再使用接收方的ECC公钥对加密后的会话密钥进行加密。接收方收到加密后的会话密钥后,使用自己的ECC私钥对其进行解密,得到会话密钥。接下来的通信过程中,发送方和接收方都可以使用该会话密钥进行对称加密和解密,确保通信的安全性。 通过引入ECC加密会话密钥,可以解决对称加密会话密钥不安全的问题,提高会话密钥的安全性,从而保护通信内容的机密性和完整性。 ### 回答3: TF加密卡通过会话密钥来加密明文数据,为了保证会话密钥的安全性,需要使用相应的会话密钥算法标识来对会话密钥进行对称加密。然而,对称加密会话密钥存在一定的安全性风险。 对称加密算法使用相同的密钥来进行加密和解密,如果会话密钥被恶意获取,那么攻击者可以解密所有使用该会话密钥加密的数据。因此,在TF加密卡中,还需要使用ECC加密算法来加密会话密钥,提高其安全性。 正确的操作是使用ECC算法生成一个公钥和私钥对。TF加密卡通过与加密系统事先约定的公钥进行对称加密会话密钥的操作,确保只有拥有相应私钥的系统能够解密该会话密钥。这样一来,即使会话密钥被获取,也无法解密数据,因为只有拥有私钥的系统才能成功解密。 通过这种方式,TF加密卡能够保证会话密钥的安全性,确保只有授权的系统能够解密数据。这种结合了对称加密和ECC加密的方法能够提供更高的安全性,保护敏感数据的机密性。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值