密码学哈希 vs 非密码学哈希:设计哲学的分野
为什么 Python 3.3 突然把字典的哈希函数换成了 SipHash?为什么 Rust 的默认 HashMap 不用最快的 wyhash 而用 SipHash-1-3?当你的哈希表面向不可信输入时,速度最快的哈希函数可能是最危险的。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 3 篇文章 · 返回首页
为什么 Python 3.3 突然把字典的哈希函数换成了 SipHash?为什么 Rust 的默认 HashMap 不用最快的 wyhash 而用 SipHash-1-3?当你的哈希表面向不可信输入时,速度最快的哈希函数可能是最危险的。
当你的数据以 GB/s 的速度涌入,哈希函数往往成为瓶颈。xxHash3 用 AVX2 把 8 个累加器打包成 256-bit 向量同时处理;wyhash 则用一条 128-bit 乘法做到几乎同样的吞吐。这篇文章拆解这两个顶级非密码学哈希的 SIMD 设计。
密码学哈希函数是现代密码学的瑞士军刀——本文从安全属性的形式化定义出发,追溯从 MD5 到 SHA-3 的演进历程,剖析碰撞攻击的原理与海绵构造的革命