Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
密码学哈希函数是数据完整性、数字签名、随机数生成和许多认证协议的基础构建块。在受限设备上,传统哈希函数如SHA-256需要大量计算资源和内存。ISO/IEC 29192-5标准化了主要基于海绵结构的轻量级哈希函数,在显著降低硬件占地的同时实现相同安全特性,使其适用于RFID标签、传感器节点和嵌入式控制器。
PHOTON是一个包含五种哈希函数的家族,输出范围从80到256位:PHOTON-80/20/16、PHOTON-128/16/16、PHOTON-160/36/36、PHOTON-224/32/32和PHOTON-256/32/32。每种使用内部类AES的置换(Pₙ),具有4×4或5×5字节状态,运行12轮。置换采用字节替代(使用轻量级4位S盒)、行移位、列混合和加常数。最小的成员PHOTON-80/20/16在硬件中仅需约1 700 GE,同时为短消息提供80位抗原像安全性和40位抗碰撞安全性。
SPONGENT使用类似的海绵框架,但基于PRESENT型S盒的更小内部置换,使其在同等安全级别上比PHOTON更加紧凑。SPONGENT-88/80/8在约1 050 GE中提供80位抗原像安全性——这是有史以来标准化最小的哈希实现之一。代价是较低的吞吐量:SPONGENT每时钟周期仅产生1或4位,而PHOTON每周期产生16–32位。
| 算法 | 输出(位) | 抗原像安全性 | 抗碰撞安全性 | 门数(GE) | 吞吐量(位/周期) |
|---|---|---|---|---|---|
| PHOTON-80/20/16 | 80 | 80 | 40 | 1 700 | 16 |
| PHOTON-128/16/16 | 128 | 128 | 64 | 2 100 | 16 |
| PHOTON-256/32/32 | 256 | 256 | 128 | 4 600 | 32 |
| SPONGENT-88/80/8 | 88 | 80 | 40 | 1 050 | 1 |
| SPONGENT-128/128/8 | 128 | 128 | 64 | 1 760 | 1 |
| SHA-256(紧凑版) | 256 | 256 | 128 | ~5 000 | 32+ |
该标准指导实现者根据四个参数进行选择:所需抗原像安全级别、最大消息长度、可用门预算和吞吐量要求。对于认证16字节挑战的RFID标签,PHOTON-80/20/16是最优选择。对于需哈希数千字节数据日志的传感器网络,PHOTON-256/32/32的吞吐量可能证明其较大面积是合理的。当绝对最小面积是最重要考量时,SPONGENT表现出色。
第5部分的哈希函数设计为与第4部分的数字签名方案(先哈希后签名范式)以及第2和3部分所涉及的密钥派生用例自然配对。一个值得注意的应用是基于哈希的消息认证码(HMAC)结构,它可以建立在任何29192-5哈希函数之上以提供消息认证——尽管第6部分也为这一目的定义了专用轻量级MAC算法。
从工程实现角度来看,海绵结构的一个突出优势是其灵活的输入输出长度支持。开发者可以根据实际应用需求动态调整哈希输出长度,而无需更换算法核心。例如,在固件验证场景中,使用PHOTON-256计算完整固件的哈希值;而在随机数生成场景中,相同的外围电路可以产生任意长度的伪随机序列。这种多功能性使得海绵结构成为轻量级密码实现中性价比最高的选择之一,一颗芯片即可覆盖哈希、随机数生成和认证加密等多种安全功能。
在实际产品开发中,哈希函数的功耗和延迟特性同样需要纳入考量。对于电池供电的传感器设备,PHOTON-80/20/16的单次哈希运算能耗仅为SHA-256的约三分之一,这意味着在相同电池容量下可多进行数百万次认证操作。SPONGENT由于每周期仅输出1位,其延迟较长但峰值功耗更低,更适合能量收集型设备(如太阳能或振动供电的传感器)。设计者应在功耗模拟器中导入候选哈希函数的功耗模型,结合目标应用的数据量和认证频率,进行系统级的能源预算分析,从而在安全性与续航之间找到最佳平衡点。