
【免费下载链接】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),仅供参考