Skip to content

douxetpur/chacha20-xiangshan

Repository files navigation

RVI hackathon hub:香山处理器上的 ChaCha20 加密算法优化

题目

题目仓库:https://github.com/cyyself/chacha20-xiangshan

优化思路

  1. 通过内联汇编优化ROTATE ChaCha20的核心计算操作是ROTATE,即循环左移操作,该操作在RISC-V指令集上通常使用sllisrlior三条指令实现。查看src/chacha.s也可以看到目前未优化的chacha算法也是由上述三条指令实现的,但在RISC-V的Zbb扩展中提供了rol指令开源直接实现循环左移操作,在Zvkb、Zvbb中提供了进一步的优化。 参考:https://github.com/openssl/openssl/commit/ca6286c382a7eb527fac9aba2a018354acb27b16 具体来说,在原本chacha20_c.c的基础上通过内联汇编的方式,添加对于vrori等指令的支持,即Zvbb扩展。之后通过编译.c文件生成新的汇编文件,效率有一定的提升。 屏幕截图 2025-04-11 103308

  2. RISC-V Vector提供了进一步的优化 试图利用vle32.v进行向量化,但出错,暂未解决。 屏幕截图 2025-04-11 104244

运行方式

核心代码在src/chacha20.s,将其和Makefile覆盖到题目仓库对应位置,即可按照题目说明运行。

Q & A

待补充......

About

基于Xiangshan架构对于chacha20算法的更改

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published