NSA正在使密码公开可用。为确保物联网(IOT)的安全性而付出的努力,其中设备正在与Internet上的其他人共享数据。
[...]
NSA研究人员开发了SIMON和SPECK,以改进已使用的分组密码算法,该算法在大多数情况下是为台式计算机或非常专业的系统设计的。
为什么我应该为我的物联网设备选择较新的算法,例如SIMON或SPECK,尤其是在功率受限的应用中(例如仅电池供电)?与其他加密系统(例如AES)相比有什么好处?
#1 楼
Beaulieu等人在“ AVR 8位微控制器上的Simon和Speck块密码”中。研究SIMON和SPECK在低端8位微控制器上的实现,并将其性能与其他密码进行比较。 Atmel ATmega128使用128 KB的可编程闪存,4 KB的SRAM和32个8位通用寄存器。比较了三种加密实现:
RAM最小化
这些实现通过包含预展开的圆形密钥来避免
使用RAM存储圆形密钥。 >在闪存程序存储器中。没有包含用于更新此扩展密钥的密钥时间表,因此这些实现适用于密钥为静态的应用程序。
高吞吐量/ low-energy
这些实现
包括密钥调度,并在加密例程中展开足够的round函数副本
以实现大约3%的吞吐量完全展开的实施。存储在闪存中的密钥用于生成
轮密钥,随后将其存储在RAM中。
最小化闪存
这里包含了关键的时间表。
空间限制意味着我们只能对这些实现提供不完整的描述。但是,应该注意的是,前两种
实现类型已经具有非常适中的代码大小。
比较不同密码的性能使用效率度量-等级-。该等级与吞吐量除以内存使用量成正比。
SPECK在它支持的每个块和密钥大小上均排在首位。除128位块大小外,SIMON
在所有块和密钥大小中均排名第二。
...
毫不奇怪,AES-128在此平台上具有非常好的性能,尽管对于相同的块和密钥大小,SPECK的性能大约是其两倍。对于相同的密钥大小,但具有64位块大小,
SIMON和SPECK的整体性能分别是AES的两倍和四倍。
将SPECK 128/128与AES-128进行比较,作者发现SPECK的内存占用量显着减少(460字节对970字节),而吞吐量仅略有减少(171个周期) / byte与146个周期/字节)。
因此,SPECK的性能(在所选指标中)高于AES。考虑到速度与能耗有关,作者得出结论:“在能源关键型应用中,AES-128可能比该平台上的SPECK 128/128更好。”然而,作者不确定是否大量使用RAM访问(高速AES实现)是否比基于寄存器的SPECK实现更节能。无论哪种情况,都可以显着减少闪存的使用,这可能与低端微控制器有关。
如果应用程序需要高速,并且内存使用不是优先事项在具有我们所知道的128位块和密钥的所有块密码中,AES具有最快的实现(使用1912字节的闪存,432字节的RAM),成本仅为125个周期/字节。最接近AES的竞争对手是SPECK 128/128,完全展开的实施成本为138个周期/字节。由于速度与能源消耗相关,因此在能源关键型应用中,AES-128可能比该平台上的SPECK 128/128更好。但是,如果不需要128位块,正如我们可能希望在
上使用许多应用程序8位微控制器,然后是更节能的解决方案(使用628字节的闪存,108字节的RAM)是SPECK 64/128,其密钥大小与AES-128相同,加密成本仅为122个周期/字节,即SPECK
64/96的成本为118个周期/字节。
此外,此演讲中有一个Enigma人物,他可以抵抗引用该密码的密码谜?