ARMADILLO:面向硬件的多功能密码原语
1. 引言
密码哈希函数是一种基础且广泛应用的密码原语,例如在数字签名方案中提供数据完整性,在消息认证码(MAC)中用于消息认证。目前已知的硬件专用哈希函数设计较少,如Cellhash和Subhash。同时,Bogdanov等人建议使用PRESENT分组密码为RFID标签设计基于分组密码的哈希函数。在分组和流密码方面,知名的发展包括PRESENT、TEA、HIGHT、Grain、Trivium以及KATAN、KTANTAN系列。
本文提出了一种适用于硬件的密码函数,可用于多种密码学目的。该函数依赖于数据相关的比特置换。给定比特串 $x = x_{2k} \parallel \cdots \parallel x_1$,集合 ${1, 2, \cdots, 2k}$ 上的固定置换 $\sigma_0$ 和 $\sigma_1$,比特串 $s$,比特 $b \in {0, 1}$ 和置换 $\sigma$,定义当 $s$ 长度为零时,$x^{\sigma_s} = x$,且 $x^{\sigma_{s \parallel b}} = x^{\sigma_s} \circ \sigma_b$,其中 $x^{\sigma}$ 是 $x$ 经 $\sigma$ 置换后的比特串,即 $x^{\sigma} = x_{\sigma(2k)} \parallel \cdots \parallel x_{\sigma(1)}$。函数 $(s, x) \to x^{\sigma_s}$ 是 $x$ 的数据相关置换。函数 $s \to \sigma_s$ 可视为从 ${0, 1}^*$ 到群 $G$ 的一般半群同态的特殊情况,它已在Zemor - Tillich构造和辫群密码学