流密码Rabbit与Salsa20家族的技术解析
1. Rabbit流密码概述
Rabbit是一种高性能流密码,自2003年在FSE上首次提出以来,尚未有针对它的攻击方法被公布。在Pentium III处理器上,其加密/解密速度达到每字节3.7个时钟周期,展现出了极高的性能。
1.1 Rabbit硬件估算
在0.18微米技术下,Rabbit的硬件估算情况如下表所示:
| 流水线数量 | 门数 | 芯片面积(mm²) | 性能(GBit/s) |
| — | — | — | — |
| 1 | 28K | 0.32 | 3.7 |
| 2 | 35K | 0.40 | 6.2 |
| 4 | 57K | 0.66 | 9.3 |
| 8 | 100K | 1.16 | 12.4 |
从表中可以看出,随着流水线数量的增加,门数和芯片面积也相应增加,同时性能也得到显著提升。如果需要更高的速度且对门数不太在意,可以采用更先进的乘法方法。这里的门数和芯片面积数据包含了密钥和初始向量(IV)的设置。
1.2 FPGA性能
在FPGA中实现Rabbit时,面临的挑战与ASIC实现类似,其中平方运算仍然是最复杂的部分。一些FPGA系列(如Xilinx Spartan 3或Altera Cyclone II)拥有专用的乘法单元,其乘法单元的延迟分别为2.4 ns和4.0 ns。基于使用6个乘法单元的2流水线设计,解密性能分别为8.9 Gbit/s和5.3 Gbit/s。如果有更多的乘法器可用,增加流水线数量后,吞吐量可分别达到17.8 Gbit/s和10.7 Gbit/s
超级会员免费看
订阅专栏 解锁全文
103

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



