新闻详情

新闻详情

首页 / 资讯中心 / 详情

Keccak-f1600 置换加速:CANN Crypto 如何批量处理 1600 位状态

发布时间:2026/9/30 13:34:49来源:尧图网络
Keccak-f1600 置换加速:CANN Crypto 如何批量处理 1600 位状态
Keccak-f1600 置换加速CANN Crypto 如何批量处理 1600 位状态【免费下载链接】cryptocrypto SIG 是密码学兴趣小组围绕昇腾 NPU 打造高性能密码软件库提供丰富的密码算子与算法实现项目地址: https://gitcode.com/cann/cryptoCANN crypto 是面向昇腾 NPU 的开源密码软件库其中的 KeccakF1600Tensor 算子专门解决 Keccak-f1600 置换的批量加速问题一次调用即可在 NPU 上对多达 8192 个 1600 位状态同时执行 24 轮置换为 SHA-3、SHAKE 等哈希算法提供高速的底层原语。为什么需要 Keccak-f1600 批量算子Keccak-f[1600] 是 SHA-3 与 SHAKE 家族哈希算法的核心置换函数它把 1600 位状态5×5 网格、共 25 条 64 位 lane反复打乱 24 轮每轮包含 θ、ρ、π、χ、ι 五个子步骤。CPU 上一次只能处理一个状态而 NPU 的优势在于大规模并行。CANN Crypto 的 keccak/ 模块把批量置换封装成标准 ACLNN 算子 aclnnKeccakF1600Tensor让上万个状态像张量一样喂给向量单元同时计算。 注意该算子只做置换本身不含消息吸收、填充padding和输出挤出需要完整哈希语义时可组合使用或参考 shake/ 等上层实现。算子长什么样[50, B]张量约定算子把多个状态压进一张二维 UINT32 张量输入输出形状均为[50, B]维度含义第 1 维50 行25 条 64 位 lane每条拆成低 32 位、高 32 位各占一行lane u 5v第 2 维B 列批内 B 个状态沿行方向连续存放这种一行一个 32 位半字的排布是关键技巧之一Ascend 向量单元天然以 32 位字为处理粒度把 64 位 lane 拆成两半后每条 lane 的低位、高位都能被向量指令整组处理无需跨字进位拼接。完整数据布局说明见 README接口细节见 docs/aclnnKeccakF1600Tensor.md。NPU 上的批量加速技巧分块并行256 个状态一个 tileKernel 按 tile 切分批量数据每个 tile 固定 256 个状态常量TILE见 keccak_f1600_u32_vector.h。所有 AI Core 按blockIdx起始、blockNum步长认领 tile循环直到整批处理完毕——分块逻辑见 keccak_f1600_tensor.h 的Process。主机侧的 Tiling 函数 会算出 tile 总数并与芯片 AIV 核数取小决定实际并行的 block 数B 最大 8192对应最多 32 个 tile。向量单元逐 lane 并行每一轮置换的 25 条 lane 都被展开成 50 个 32 位slot在向量单元V 核上用Xor、And、Or、ShiftLeft/ShiftRight等整组指令对 B 个状态一次性完成例如 64 位循环左移被拆成低字左移 高字右移 31 位再或合的向量操作RotlLaneTokeccak_f1600_u32_vector.h。所有中间量都驻留在本地统一缓冲区中共 126 个 slot状态 50 B/C/D 临时区 旋转暂存区避免反复访问片外内存这是批量场景下吞吐量的主要来源。24 轮置换的五步拆解Round函数keccak_f1600_u32_vector.h严格按密码标准实现每轮的五个子步骤θ列奇偶按列异或出 C 值高低 32 位各自独立累加ρπ旋转置换25 条 lane 的旋转量与目标位置在编译期静态展开为 25 条直接调用省掉运行时的旋转表索引χ非线性采用等价式B[x] ^ B[x2] ^ (B[x1] B[x2])复用 θ 阶段用过的 C、D 槽位ι轮常量仅对第一个 lane 异或 24 个固定 64 位常量RC[round]每轮结束状态原地更新24 轮后整批状态即完成置换Permute24。如何调用两步式 ACLNN 流程调用遵循标准两段式先 aclnnKeccakF1600TensorGetWorkspaceSize 查询工作空间并生成 executor再调aclnnKeccakF1600Tensor把计算提交到 ACL 流。约束要点1 ≤ B ≤ 8192输入输出形状一致且互不重叠不支持原地计算设备验证使用 CANN 9.1.0支持 Atlas A2ascend910b与 A3ascend910_93同步完成前不得释放张量与工作空间完整可运行示例见 test_aclnn_keccak_f1600_tensor.cpp配套的 acl_example.h 封装了流、缓冲区与张量管理几十行即可完成一次批量置换并校验全零初态的结果首 lane 应为0xf1258f7940e1dde7。验证从纯 C 参考到设备实测算子正确性由多层测试保障详见 tests/README.md层级内容golden.pyPython 独立置换实现 全零初态已知答案sha3_ref.c纯 C 参考实现仅参与测试test_permutation.cpp928 个状态比对生产置换头与参考算术模型test_aclnn_keccak.cppACLNN 设备结果与纯 C 参考逐字节对比覆盖 batch 64/256/1024/4096/8192相关文件导航 接口文档aclnnKeccakF1600Tensor.md算子定义 / 形状推导 / Tilingop_host/Kernel 与向量化置换keccak_f1600_tensor.cpp、keccak_f1600_u32_vector.h示例与测试examples/、tests/一句话总结CANN Crypto 通过[50, B]张量布局 256 状态分块 32 位半字向量指令三板斧把原本串行的 1600 位置换变成了 NPU 上可以整批并行的高吞吐原语是构建高性能 SHA-3 / SHAKE 管线的理想底座。【免费下载链接】cryptocrypto SIG 是密码学兴趣小组围绕昇腾 NPU 打造高性能密码软件库提供丰富的密码算子与算法实现项目地址: https://gitcode.com/cann/crypto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

解决Windows中jscript9.dll丢失错误的专业指南 2026/9/30 14:22:29

解决Windows中jscript9.dll丢失错误的专业指南

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

阅读更多 →
专注走自己的路 2026/9/30 14:22:22

专注走自己的路

专注走自己的路 ——一名弱省信息学蒟蒻的成长自述 背景:信奥oier被文化课er嘲讽后有感而发 人的一生,该用什么尺度丈量快慢? 这个问题,曾长久地盘桓在我心里。 那是课间,教室里喧闹正盛。同桌随手翻开我的文化课练习册…

阅读更多 →
为什么我的Vite构建每次都报随机错误? 2026/9/30 14:22:16

为什么我的Vite构建每次都报随机错误?

上周五凌晨1点,当我第6次重跑 vite build 时,终端又抛出一个完全没见过的 [plugin:vite:css] 错误——而这次甚至连行号都变了。你可能也经历过这种绝望:明明代码没改,环境没动,为什么Vite构建就像抽奖一样随机报错&am…

阅读更多 →
Kali 渗透测试实战:XFF 伪造绕过 IP 限制与水平越权提权全流程 2026/9/30 14:21:48

Kali 渗透测试实战:XFF 伪造绕过 IP 限制与水平越权提权全流程

1. 实验环境与目标概述本次实战以 Kali 攻击机为核心,针对靶机开展一次完整的渗透测试流程。实验覆盖三个关键环节:环境配置、信息收集、抓包改包与越权利用,最终通过 SSH 登录获取系统权限并完成提权。实验拓扑如下:攻击机&#…

阅读更多 →
系列教程-冰梭免费模式完整上手实录(游客篇 + 免费账号篇) 2026/9/30 14:20:11

系列教程-冰梭免费模式完整上手实录(游客篇 + 免费账号篇)

本文是一篇实录型教程:所有截图都来自作者用真实文件、真实账号一步一步操作得到的真实页面,没有摆拍,也没有任何推销话术。它专门回答"还没打算付费"的用户最关心的三个问题:1. 不注册,冰梭能干什么、不能干…

阅读更多 →
第028篇 LinkedList 与 ArrayList 选型——随机访问与插删的权衡 2026/9/30 14:20:04

第028篇 LinkedList 与 ArrayList 选型——随机访问与插删的权衡

摘要:本篇是《Android软件开发面试从入门到精通》第 28 篇,主题为「LinkedList 与 ArrayList 选型——随机访问与插删的权衡」。本篇聚焦「LinkedList 与 ArrayList 选型——随机访问与插删的权衡」:先回答它解决什么问题,再回答它怎么实现、代价是什么,收尾给出一套可复用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉