QUIC协议(握手过程)简要介绍

QUIC协议(握手过程)简要介绍

这篇博客可能更多的偏向于密码学方面来进行介绍(csdn关于网络层)。

为什么需要QUIC协议

随着当前网络对性能要求的越来越高,有部分公司已经觉得原来的TCP和UDP协议的握手阶段太长。因此就致力于开发一些新的协议进行连接。于是Goole在2013年就提出了一种新的协议——QUIC协议。

网络层的QUIC

关于QUIC在网络层的介绍,csdn已经存在很多介绍了,这里就不再赘述,这篇博客我们主要从握手协议里用到的密码学技术来进行简要介绍。

密码学元件

Public Key Infrastructure(PKI)

简要来说就是找一个有公信力的第三方为公钥分配一个证书,主要作用就是证明某个公钥是属于某个人的。更详细的解释可以参照博客
https://blog.youkuaiyun.com/inthat/article/details/112955419?ops_request_misc=&request_id=&biz_id=102&utm_term=PKI&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-112955419.nonecase&spm=1018.2226.3001.4187

数字签名方案

一个数字签名方案包括三个函数SS=(Kg,Sign,Ver)SS = (Kg, Sign, Ver)SS=(Kg,Sign,Ver),
其中Kg是密钥生成函数(pk,sk)←Kg(λ)(pk, sk) \leftarrow Kg (\lambda)(pk,sk)Kg(λ),其中λ\lambdaλ表示安全参数,pk表示公钥, sk表示私钥。
Sign是签名函数:σ←Sign(sk,m)\sigma \leftarrow Sign(sk, m)σSign(sk,m), 其中sk表示用户的私钥,m是要签名的消息, σ\sigmaσ是签名之后的结果。
Ver是验证函数,b←Ver(pk,m,σ)b \leftarrow Ver(pk, m, \sigma)bVer(pk,m,σ).其中b是输出结果,为1或者0。1的话表示验证通过,0的话表示验证失败。

关联数据的认证加密方案AEAD

在介绍AEAD之前,先简要说一下(Authenticated Encryption)AE方案。
我们都知道,加密技术保证了机密性,消息认证码保证了完整性。然而,在很多情景下,我们既需要保证加密型,又需要保证完整性。因此就提出了认证加密方案(AE方案)。
其实我们还可能存在这样一种需求,就是我们并不是对所有的数据都需要保密性,但是我们又需要对所有数据的完整性进行校验。
比如说:在网络数据传输的时候,我们只需要加密我们传输的数据。但是我们知道网络传输的数据包不仅仅有数据,也有原IP,目的IP之类的额外信息。这些信息在路由的时候需要用到,因此就不能进行加密。这种需求就引出了AEAD,相关数据的认证加密技术。
AEAD是对其中一部分数据进行加密,但是对所有数据进行认证的一种技术。AEAD=(E,D)AEAD = (E,D)AEAD=(E,D).
E是加密函数c←E(k,IV,H,m)c \leftarrow E(k, IV, H, m)cE(k,IV,H,m),其中k表示密钥, IV表示初始向量,一般是一个公开的随机数, H表示相关数据,即不需要加密的那一部分数据, m表示需要加密的消息。
D是解密函数m←D(k,IV,H,c)m \leftarrow D(k, IV, H, c)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值