Salsa20流密码家族的深入剖析
1. 拒绝伪造数据包的成本考量
在网络安全领域,拒绝伪造数据包的成本是一个关键因素。以CPU服务拒绝攻击为例,攻击者通过大型网络向CPU大量发送伪造数据包。在这种情况下,传统的认证器(如Poly1305)相比“免费”认证器,能够处理更大规模的数据包洪流。此外,对于那些更看重认证加密性能而非伪造拒绝性能的用户来说,将明文融入流的想法值得进一步研究。例如,Phelix在认证加密和验证解密方面表现出了令人印象深刻的速度,但后来却因一些看似无关紧要的原因被排除在eSTREAM之外。
2. Salsa20的状态、块大小和密钥大小探讨
2.1 是否需要更多状态
Salsa20在块之间携带的状态极小,每个流块都是密钥、随机数和块计数器的独立哈希。而大多数流密码使用更大的状态,将前一个块的计算部分结果作为下一个块计算的输入。
支持更大状态的观点认为,为达到相同的推测安全级别,不需要那么多的加密轮数。跨块复制状态似乎能提供与前几轮加密相同的混合效果,从而在第一个块之后节省一些时间。
然而,反对观点也很明确。一方面,更大的状态会减少有限硬件能够同时处理的通信通道数量。例如,块间链式加密的密码通常每个通道需要64字节或更多,而Salsa20每个通道仅需32字节的密钥(若多个通道共享密钥则更少)、最多8字节的随机数和最多8字节的块计数器。另一方面,状态的重用会导致序列化问题,块间链式加密禁止对流进行随机访问(除非预先计算并保存流,这会消耗大量内存),并且无法利用额外的硬件来减少长流计算的延迟。对于作者而言,序列化问题是决定性的,无法利用并行性往往是灾难性的,而多几轮加密虽然不理想,但不会造成灾难性后果
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



