编辑
2023-11-13
数据结构与算法
00
请注意,本文编写于 544 天前,最后修改于 543 天前,其中某些信息可能已经过时。

目录

算法描述
初始化阶段
压缩轮
终结轮
算法优点
安全性分析

SipHash算法是一种针对短消息设计的伪随机函数族,可用于消息认证和作为MAC算法使用。它由Jean-Philippe Aumasson等人于2012年设计,结合了BLAKE、Skein和JH等算法的特点[1]

算法描述

通常具体的SipHash算法表示为SipHash-c-d,其中c和d分别表示压缩轮数和终结轮数。SipHash算法的步骤如下:

初始化阶段

  1. 初始化四个64位的内部状态字v0, v1, v2, v3,其中v0=k0⊕736f6d6570736575,v1=k1⊕646f72616e646f6d,v2=k0⊕6c7967656e657261,v3=k1⊕7465646279746573。这里的k0和k1是密钥k的小端编码的64位字,初始状态的常数对应于大端编码的ASCII字符串“Somepseudorandomlygeneratedbytes”。

压缩轮

  1. 将输入的消息m解析为64位的小端编码字m0, m1, ..., mw-1,其中w=⌈(b+1)/8⌉>0,b是消息m的字节数。
  2. 在压缩轮的SipRound运算之前,计算v3⊕=mi。
  3. 进行c轮SipRound运算。
  4. 然后计算v0⊕=mi。

终结轮

  1. 在终结轮的SipRound运算之前,计算v2⊕=ff。
  2. 进行d轮SipRound运算。

算法优点

SipHash算法具有以下优点:

  1. 安全性高,达到密码学上强PRF的定义。
  2. 快速。
  3. 密钥简洁,不需要扩展。
  4. 简单。
  5. 自给自足,不需要调用其他基础算法。
  6. 小状态。
  7. 开销小,认证消息仅比原始信息长8个字节[1]

安全性分析

对SipHash算法的安全性进行了一些分析,包括差分密码分析、SAT攻击等。这些分析有助于验证SipHash算法的安全性。


Learn more:

  1. Siphash算法-CSDN博客
  2. SipHash 算法流程-CSDN博客
  3. 简述SipHash算法 - 夏冰加密软件技术博客

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!