论文部分内容阅读
网络安全产品和密码协议中使用的对称密码算法大都采用软件实现方式。相比于硬件实现,密码算法的软件实现具有灵活性强、成本低、应用广泛等优势。密码算法的软件实现性能是评估密码算法的重要指标,也是影响密码算法标准能否被工业界广泛使用采纳的重要因素。此外,近年来针对资源受限环境提出了轻量级密码算法。随着物联网、嵌入式系统、传感器网络等应用的推广普及,RFID标签、传感器节点等设备采集的数据经轻量级密码算法处理后大量汇集到云端,在云端高性能计算机需要对加密数据进行快速解密。因此,研究传统密码标准和新型轻量级密码算法的软件优化实现技术具有重要的理论意义和实际价值。 LHash是我国密码学者自主设计的低功耗轻量级杂凑函数,具有灵活可调的参数,设计者给出了4种建议规模。本文探讨LHash算法的软件优化实现方法。利用SSE指令、nibble-slice技术和bit-slice技术,我们给出了轻量级杂凑函数LHash的软件优化实现,和目前通用的基于查表的软件实现相比有明显优势。对于LHash的4种建议规模,在Intel Core i7-2600处理器上,相比于查表方法,采用SSE指令的软件实现性能分别提高了21.85%、21.85%、32.03%、33.33%;采用nibble-shce技术的软件实现性能分别提高了2.74、2.74、3.02、3.16倍;采用bit-slice技术的软件实现性能分别提高了1.14、1.13、1.37、1.83倍。同时,采用SSE指令、nibble-slice技术和bit-slice技术的LHash软件实现不存在内存或缓存查表操作,因此,该软件实现方法可抵抗缓存计时攻击等侧信道攻击。 类似的,本文中所提出的方法同样适用于轻量级分组密码如LED算法等。相比于LED已有的实现方法——查表、SSE指令、bit-slice技术,在Intel Core i7-2600处理器上,采用nibble-slice技术的软件实现性能分别提高了3.97倍、1.08倍、49%。 SM4算法是我国的分组密码国家标准,广泛应用于各种信息系统和安全产品。市场上的安全产品对使用的密码算法有着较高的软硬件实现性能要求,目前SM4算法的优化实现研究进展主要集中在硬件方面,国内外学者对SM4算法软件优化实现方面的关注度较小,SM4的软件实现方法仅限于查表实现。本文探讨SM4算法的快速软件实现方法,利用SIMD技术,我们给出了SM4的软件优化实现,和目前基于查表的软件实现相比有明显优势。在Intel Core i7-6700处理器上,相比于查表方法,采用SIMD技术的软件实现性能提高了1.38倍。