一、个人简介
大家好,我是张宁岳,硕士在读于上海交通大学网络空间安全专业,导师是谷大武教授。谷大武教授领导的LoCCS实验室深耕密码理论、密码应用、密码工程等多个专业领域,发表大量高水平论文,同时鼓励学生参与开源社区贡献,已经深度参与openEuler、openHiTLS等社区的建设当中。目前我的主要研究方向为后量子密码算法的软硬件加速和侧信道防护,研究生期间曾参与负责openHiTLS开源社区的鲲鹏KAE硬件加速引擎适配及RVV指令集算法加速开发,并获得openHiTLS社区2024年度优秀贡献者称号及开源安全奖励计划二等奖。
二、缘起:初识openHiTLS
最初接触的契机:作为一名主攻密码工程的研究生,我的日常工作就是与各种加密算法的底层实现打交道。在寻找能够验证我关于“软硬件协同加速”构想的平台时,我关注到了openHiTLS社区。它不仅是国产开源密码套件,更具备先进的插件化敏捷框架,这与我想要探索的异构计算加速方向不谋而合。
加入前的我:当时我具备一定的密码学理论基础、C 语言和汇编能力,但主要集中在实验室的算法Demo层面,缺乏在大型开源项目中进行架构设计和大规模代码集成的经验。
吸引我加入的原因:openHiTLS 对国产密码算法的支持以及对高性能计算的追求深深吸引了我。特别是社区提出的“插件化”理念,让我看到了将鲲鹏处理器(KAE)和RISC-V向量扩展(RVV)等硬件优势转化为实际生产力的巨大空间。
三、初探:破冰之旅
入门学习过程:最初面对庞大的代码库,我花了大量时间阅读社区的架构文档,并与企业导师探讨Provider机制的设计理念和技术路径。我从最基础的代码规范学起,尝试理解数据在框架中的流转路径。
遇到的挑战/如何解决: 最大的挑战在于理解框架与硬件之间的抽象层。我通过在本地环境反复断点调试,并积极在社区群里向资深开发者请教,最终理清了调用逻辑。
心得体会: “纸上得来终觉浅”,只有亲手修改过框架代码,才能真正理解什么是“高内聚、低耦合”的系统设计。
四、深耕:在实践中突破与成长
(一) 核心项目 1:国产开源密码套件 openHiTLS 支持鲲鹏 KAE 硬件加速引擎
- 项目背景:鲲鹏 920 处理器搭载了强大的 KAE 加速引擎,但 openHiTLS 原有框架未能充分利用这一硬件优势。为了提升加解密业务的处理效率,我申请了该创新资助项目,旨在将 KAE 封装为标准化的加密引擎。
- 项目成果:我参与完成了 openHiTLS 的 Provider 方案设计实现与测试,累计提交代码超过 8000行。
- 提供了算法标准化、可扩展的接口。
- 与社区核心成员合作设计了对称加密部分的框架适配。
- 修复了两处漏洞,提升了系统的稳定性。最终,我凭借该项目获得了社区“优秀贡献者”称号。
(二) 核心项目 2:基于 RVV 加速 AES、SM4 对称密码算法
- 项目背景:随着RISC-V架构的普及,利用向量寄存器(RVV)进行并行计算成为提升密码算法性能的关键。然而,纯C语言实现的 AES/SM4 性能在 RISC-V 上存在瓶颈。
- 项目成果:作为项目负责人,我利用RVV的超宽向量寄存器与 SIMD 特性重构了关键路径:
- AES 性能提升约 20 倍,SM4 性能接近 TBOX 查表方案但空间占用更小。
- 实现了对 vlen=128/256 等不同向量长度的自适应优化,确保了代码在多种 RISC-V 架构下的可移植性。
- 完善了 feature 配置文档与编译选项,推动了社区在后量子及软硬协同领域的代码积累。
- 遇到的挑战:不同 RISC-V 硬件平台的向量长度(vlen)标准不一,如何写出既高效又通用的汇编/Intrinsic 代码是一大难点。
- 解决方式:我分析内存访问模式,最终设计了一套针对 vlen 的动态适配策略,在不同配置下均能跑出最佳性能。
五、收获:满满的果实
(一) 技术能力提升
- 编程能力:从纯软件开发跨越到软硬件协同设计,熟练掌握了RISC-V向量指令集和鲲鹏硬件加速接口,代码编写更加注重缓存友好性和流水线优化。
- 工程思维:从单点的算法实现,进化到能够设计通用的Provider框架,学会了如何在修复Bug的同时不破坏现有架构的兼容性。
- 协作能力:作为两个项目的负责人,我学会了如何分解任务、撰写清晰的技术文档,并与社区伙伴进行高效的代码审查与协作。
(二) 就业与职业发展助力
- 简历亮点:这两段经历让我拥有了独特的“密码学+底层架构”复合背景。高质量代码贡献和“优秀贡献者”称号,成为了我简历上最硬核的背书。
- 技能匹配:我对KAE和RVV的深入理解,直接对标了当前高性能计算和国产芯片领域最紧缺的人才需求。
(三) 认知与心态转变
- 从“造轮子”到“造引擎”:以前只关注算法本身,现在更关注算法如何在实际硬件上跑得更快、更稳。我深刻体会到,开源不仅仅是公开代码,更是构建一个让所有人受益的技术生态。
六、给学弟学妹的建议
说说心里话: 不要觉得底层硬件加速或汇编语言枯燥难懂。在开源社区,你有机会接触到工业界最前沿的架构设计。“软硬结合”是未来的一大趋势,勇敢地去拆解那些看似复杂的框架,从一行代码、一个指令优化做起。当你看到自己优化的算法让系统性能提升 20 倍时,那种成就感是无与伦比的!加入 openHiTLS,让我们一起为国产密码生态贡献力量!
1815

被折叠的 条评论
为什么被折叠?



