UDP 是不是不能用 AES 来加密啊?

156 天前
 tool2dx

aes 是一种流式加密,加密时需要按照顺序,比如第 1 ,2 ,3 个数据包依次加密。解密也是类推,需要第 1 ,2 ,3 个包依次解密。

然而,UDP 会掉包。也就是解密会遇到 1 ,2 ,4 这种情况。由于第三个包掉了,那么后面数据包全部都无法顺利解密。

那么问题来了,遇到这种情况,应该选什么加密算法?

2101 次点击
所在节点    问与答
26 条回复
0o0O0o0O0o
156 天前
先挑一个基于 UDP 的可靠传输协议
flynaj
155 天前
楼主是想发明一个 QUIC ,建议你先看看 quic 的代码。
sduoduo233
155 天前
udp 可以 AES
shadowsocks 的 udp 就是 AES GCM AEAD 的
jheroy
155 天前
楼主这是把加密算法和加密模式弄混了,首先 ECB 模式是肯定可以用的,不过相同明文的会得到相同密文对抗分析较弱,然后就是 CTR ,只依赖包的序号,丢包也无所谓丢的宝内容虽然没了但是丢的哪些序号的包是知道的(自己维护顺序)
GrayXu
155 天前
中间加一层 kcp/quic?
panda1001
154 天前
ss 就是干这个的,参考其实现,其中的流加密算法都适用。

https://github.com/shadowsocks/shadowsocks-libev/blob/master/src/udprelay.c#L1310

流加密基于字节的,包在字节之上,ss 只考虑加解密(传输层),无法解密的包一样扔掉,掉包是上层程序(应用层)考虑的事情

https://github.com/shadowsocks/shadowsocks-libev/blob/master/src/udprelay.c#L872

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1049569

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX