Wally的Zk标量加密扩展实战:AES-128与SHA-256硬件加速全解

发布时间:2026/11/6 4:59:22

Wally的Zk标量加密扩展实战:AES-128与SHA-256硬件加速全解 【免费下载链接】cvwCORE-V Wally is a configurable RISC-V Processor associated with RISC-V System-on-Chip Design textbook. Contains a 5-stage pipeline, support for A, B, C, D, F, M and Q extensions, and optional caches, BP, FPU, VM/MMU, AHB, RAMs, and peripherals.项目地址https://gitcode.com/gh_mirrors/cv/cvw点击查看免费下载cvwCORE-V Wally是一款开源可配置的 RISC-V 处理器完整支持Zk 标量加密扩展Zknd、Zkne、Zknh让你用单条指令完成AES-128 硬件加速与SHA-256 哈希计算。本文将带你快速理解 Wally 的加密硬件架构、开启方法和实战示例零基础上手。1️⃣ 为什么需要硬件加密加速传统做法用软件实现 AES 和 SHA-256查表、循环、字节搬移在小核心上每个 128 位数据块的加密要执行成百上千条指令。Wally 的解决方案是把加密算法焊进流水线——通过 RISC-V 官方Zkn 标量加密扩展把最耗时的操作压缩成单周期指令扩展作用提供的关键指令ZkneAES 加密aes64es末轮加密、aes64esm中间轮加密、aes64ks1i/aes64ks2密钥扩展ZkndAES 解密aes64ds、aes64dsm、aes64im密钥扩展 MixColumnsZknh哈希sha256sum0/1、sha256sig0/1、sha512sum0/1Zbkb / Zbkc / Zbkx位操作辅助位反转、字节重排、CLMUL 等密码学基础运算一条aes64esm指令就能在 1 个时钟周期内完成 SubBytes ShiftRows MixColumns AddRoundKey 的全部工作而 AES-128 总共 10 轮加密整块密文生成只需约十几条指令比纯软件实现快一个数量级以上。2️⃣ 加密硬件藏在哪里Wally 的加密逻辑全部集成在**整数执行单元IEU**中无需额外协处理器AES 电路src/ieu/aes/ 下包含 S-Box、MixColumns、伽罗瓦域乘法器galoismultforward8.sv等全部子模块其中 aes64e.sv 实现 RV64 的aes64es/aes64esmaes32e.sv 对应 RV32 版本SHA 电路src/ieu/sha/sha256.sv 实现 SHA-256另有sha512_32.sv/sha512_64.sv支持 SHA-512指令译码src/ieu/bmu/bmuctrl.sv 中负责识别aes32esi、aes64esm、sha256sig0等加密指令并生成控制信号结果调度src/ieu/kmu/Crypto Management Unit负责在 Zknd/Zkne/Zknh 多路硬件间选择结果并写回寄存器这种IEU 内置加密的设计意味着加密指令与整数指令共享流水线对程序员完全透明无需任何特权模式或特殊使能。3️⃣ AES-128单指令硬件加密全解以 RV64 配置下的 AES-128 加密为例整个流程分为三步① 密钥扩展用aes64ks1i和aes64ks2两条指令把 128 位原始密钥逐轮扩展成 10 组轮密钥。硬件把 S-Box 替换、字旋转、Rcon 异或全部在一个周期内完成。② 中间轮加密第 19 轮每轮执行xorAddRoundKeyaes64esmSubBytes/ShiftRows/MixColumns每轮约 3 条指令。③ 末轮加密AES 最后一轮没有 MixColumns由aes64es指令单独处理与中间轮硬件复用同一套 S-Box 和移位电路见 src/ieu/kmu/zknde64.sv 中的注释说明。性能直觉AES-128 全加密 ≈ 2 条密钥扩展 9 轮 × 3 条 3 条末轮 ≈32 条指令对比软件实现动辄上千条查表/循环指令。仓库还提供了一个完整的学习对照软件版 AES-128含 FIPS 197 标准测试向量见 examples/crypto/aes/aes.c伽罗瓦域乘法与 S-Box 逆元表的推导见 examples/crypto/gfmul/gfmul.c。理解了软件流程再看硬件单指令就一目了然。4️⃣ SHA-256用 4 条指令压缩一个消息块SHA-256 的瓶颈在 64 轮压缩循环而sha256sum/sha256sig指令组把它变成了批量操作sha256sig0/sha256sig1一次生成消息扩展字 W[16]W[63] 中的 8 个字含 σ₀、σ₁ 非线性变换整个 512 位消息块只需 8 条 sig 指令sha256sum0/sha256sum1一次推进 8 轮压缩循环含 Σ₀、Σ₁ 大置换和 Ch/Maj 逻辑64 轮压缩只需 8 条 sum 指令也就是说压缩一个 512 位消息块只需 16 条加密指令核心逻辑实现在 src/ieu/sha/sha256.sv。仓库的 examples/crypto/sha/ 目录提供了独立的 SHA-256/SHA-512 精简硬件实现与 Python 参考程序详见 README方便你单独验证哈希行为。5️⃣ 如何开启 Zk 扩展配置清单Wally 的加密功能通过配置参数启用以 config/rv32gc/config.vh 为例localparam logic ZKND_SUPPORTED 1; // AES 解密 localparam logic ZKNE_SUPPORTED 1; // AES 加密 localparam logic ZKNH_SUPPORTED 1; // SHA-256/512三个参数相互独立可按面积/功耗预算裁剪。若只想验证某一项仓库在 config/derivlist.txt 中预置了派生配置直接选用即可派生配置名基线说明zkne_rv32gcrv32gc仅开启 AES 加密ZKNE_SUPPORTED 1zknd_rv32gcrv32gc仅开启 AES 解密zknh_rv32gcrv32gc仅开启 SHA 哈希zkne_rv64gc/zknh_rv64gc等rv64gcRV64 对应版本所有参数的完整定义可在 config/shared/parameter-defs.vh 中查阅。6️⃣ 实战演练两条最短路径上手仓库自带两套教科书级汇编示例直接展示了如何用 Zk 指令写加密程序AES-128 硬件加密examples/exercises/18p10/aes128.S —— 从 FIPS 197 标准测试向量出发完整实现密钥扩展 10 轮加密参考输出见 aes128.reference_outputSHA-256 硬件哈希examples/exercises/18p7/sha256.S —— 按 NIST FIPS 180-4 规范加载消息、用sha256sig/sha256sum完成压缩配套的软件对照示例集中在 examples/crypto/ 目录建议按先读软件实现 → 再读硬件示例汇编的顺序学习理解成本最低。7️⃣ 文件导航速查表你想做的事去哪里阅读 AES 加密硬件实现src/ieu/aes/阅读 SHA-256 硬件实现src/ieu/sha/sha256.sv查看加密指令译码逻辑src/ieu/bmu/bmuctrl.sv开启/裁剪加密功能config/rv32gc/config.vh、config/derivlist.txt学习 AES-128 汇编实战examples/exercises/18p10/aes128.S学习 SHA-256 汇编实战examples/exercises/18p7/sha256.S软件对照实现C 语言examples/crypto/aes/aes.c总结Wally 的 Zk 标量加密扩展把 AES 与 SHA 从软件密集型任务变成了硬件单周期操作aes64esm一条指令顶软件上百条查表sha256sum一组指令压缩整个消息块。配合独立的ZKND/ZKNE/ZKNH配置开关和现成的派生配置你可以根据自己的面积预算自由裁剪加密能力。无论是对 RISC-V 密码学扩展做研究还是设计安全 IoT SoC这份仓库都提供了从 RTL 到汇编示例的完整学习路径。赞分享【免费下载链接】cvwCORE-V Wally is a configurable RISC-V Processor associated with RISC-V System-on-Chip Design textbook. Contains a 5-stage pipeline, support for A, B, C, D, F, M and Q extensions, and optional caches, BP, FPU, VM/MMU, AHB, RAMs, and peripherals.项目地址https://gitcode.com/gh_mirrors/cv/cvw点击查看免费下载相关推荐Cosmos 仓库中的纯 C AES 实现AES-128/192/256 加解密与流加密实战指南Cosmos 仓库中的纯 C AES 实现AES 128/192/256 加解密与流加密实战指南 本篇指南以 Cosmos 仓库 code/cryptogra教程示例工程Ryujinx 模拟器从零跑通 Switch 游戏的完整安装配置清单Ryujinx 模拟器从零跑通 Switch 游戏的完整安装配置清单 Ryujinx 让你直接在 PC 上跑 Switch 游戏主界面就是游戏库按名称、版硬件仿真图形学**JavaScript SHA-256/SHA-224加密库全面解析**JavaScript SHA 256/SHA 224加密库全面解析 项目基础介绍及编程语言 js sha256 是一个由陈义全emn178开发并维护的轻量级密码学上一篇Terminalizer新闻媒体在新闻采编中的终极应用指南下一篇悟空IM高性能分布式通讯服务的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/6 4:59:22

【Android】Navigation

一. Navigation 1.1. 导航组件的组成部分 Navigation组件有主要的三个部分: NaviController: 负责在目标页面(即应用中的屏幕)之间导航。NavGraph:用于映射要导航到的可组合项目标页面。NavHost:此可组合项充当容器…

2026/11/6 4:59:22

H5获取定位的方式是什么?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 4:59:22

AMBER 轨迹分析与作图(上):从轨迹文件到第一张图

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 6:09:25

GitHub热榜精选:五款易上手的效率工具与实操避坑指南

每周翻 GitHub Trending,差不多已经成了我的固定动作。9月16日这一期的榜单给我的感觉特别明显:AI 应用还在霸榜,但真正涨得猛的,反而是一批“看起来不性感”的本地效率工具——生活管理、画质替换、内存清理、论文转代码&#xf…

2026/11/6 6:09:25

FX系列PLC编程口通信协议解析与Qt串口助手实战

简介:本资源是面向工业自动化初学者与QT嵌入式开发者的三菱FX3U系列PLC编程口通信实践项目,聚焦上位机与PLC的串行通信实现,解决QT环境下FINS协议解析、串口参数配置、寄存器读写及基础错误处理等核心问题。压缩包共7个文件,含2个…

2026/11/6 6:09:25

Hadoop序列化机制与Writable接口深度解析

1. Hadoop序列化机制深度解析在大数据分布式计算框架中,序列化机制是影响系统性能的关键因素之一。Hadoop作为经典的大数据处理框架,其独特的序列化设计与Java原生序列化有着本质区别。理解这套机制的工作原理,对于优化MapReduce作业性能、减…

2026/11/6 6:09:25

从代码补全到工程化协作:AI编程代理趋势解析

最近我养成了一个习惯:每天睡前刷一遍 GitHub Trending,看看又有什么项目在涨。坦白说,AI 编程代理(coding agent)类项目已经不是第一次占据榜单高位,但这一次和之前不一样,热度不是冲高回落&am…

2026/11/6 6:09:25

类与对象:一张蓝图和它造出来的产品

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 6:04:24

Checklist设计编写规范及模板:条目规则、试跑与落地治理

清单这东西,几乎人人都写过,但真正写到“能被人照着执行、执行完真能挡住问题”的,比例低得吓人。我见过太多这样的文件:二十页的文档,通篇写着“注意”“确保”“严格检查”,执行的人扫一眼、签个字、归档…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/6 1:03:39

MCU晶振电路设计全解析:从负载电容计算到PCB布局调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑