一、个人简介
大家好,我是杨文杰,硕士在读于西安电子科技大学网络空间安全专业,导师是朱辉教授。目前,我的主要研究方向为应用密码学和隐私计算。研究生期间,曾参与同华为的合作项目“国密SM9密码算法在嵌入式板卡上的 Rust 优化实现”及openHiTLS开源社区的KAE加速引擎适配等开发项目,并获得openHiTLS社区 2024年度的“优秀贡献者” 称号及开源安全奖励计划一等奖。 目前正在参与openHiTLS密码套件Rust语言SDK开发项目。
二、缘起:初识openHiTLS
在研究生阶段的科研工作中,无论是隐私计算方案中底层密文算子所依赖的密码算法,还是构建安全加密传输通道所需的TLS连接,都需要依托成熟的开源密码套件。在调研相关技术的过程中,在导师的鼓励和推荐下,我开始关注 openHiTLS开源社区。其在软件与硬件层面的优化机制,以及灵活、可裁剪的特性,恰好契合了我的实际需求。
在加入社区之前,我虽然参与过部分密码算法的优化实现,也处理过一些开源社区的简单问题,但仍然缺乏参与大型开源项目和协同开发完整功能需求的经验。同时,我也希望借此机会更深入地体验和理解实际生产环境中的代码开发流程。
openHiTLS 社区致力于构建轻量、高效、可裁剪的密码套件,并积极探索多种软硬件平台上的性能优化方案。这与我对密码算法工程化实现及安全通信协议深入理解的需求高度契合。更重要的是,社区开放、专业的技术氛围,为我提供了一个向优秀开发者学习、并真正参与生产级代码开发的宝贵机会。
三、初探:从第一行代码到首个PR合并
在加入 openHiTLS 社区初期,我重点熟悉了项目的代码结构、构建流程与贡献规范。鉴于 HKDF 默认 Provider 的开发需求,我将学习重点集中于密码算法模块。在企业导师的指导及参考示例的支持下,我完成了 HKDF 默认 Provider 及其测试用例的实现,并提交PR。随后依据 CI 流水线反馈与评审意见不断迭代,最终实现了首个 PR 的成功合并。
在此过程中,我面临的主要挑战是理解 EAL层对具体密码算法的封装与调用机制。为此,我通过查阅社区官方 API 文档、结合调试手段深入分析代码的执行路径,逐步厘清了该层的设计理念与实现逻辑,并最终顺利完成相应封装工作。
在此过程中,我进一步理解了openHiTLS的模块化设计与分层架构,并逐步熟悉了不同类型密码算法的底层优化思路及其具体实现机制。
四、深耕:攻坚鲲鹏 KAE 硬件加速引擎适配
(一)核心项目 :国产开源密码套件openHiTLS支持鲲鹏KAE硬件加速引擎
项目背景:随着数字经济的发展及国家商用密码改造的推进,数据安全与处理效率成为核心矛盾。传统软件实现的密码算法在高并发、大规模数据场景下存在 CPU 性能瓶颈。鲲鹏 KAE(Kunpeng Accelerator Engine)加解密加速引擎通过芯片级硬件加速,为商用密码及国际通用密码算法提供高性能、低功耗的解决方案。openHiTLS 作为业界首个面向全场景的开源密码库,为 KAE 提供相应的 Provider 实现(KAEP)。
项目成果:完成 KAEP Provider 模块的开发与测试,相关功能 PR 已成功合入主干,实现对哈希、对称加密、非对称加密及密钥交换四类算法的硬件加速封装。通过多线程安全封装、上下文复用及硬件队列优化,显著提升加密计算效率和资源利用率;项目功能测试覆盖完整,异常处理和内存安全性验证充分,文档完善并纳入社区官方指南,为硬件加速密码算法在实际应用场景中的可用性和可复用性提供保障。
五、收获:技术、视野与心态的三重蜕变
(一)技术能力提升
在编程能力方面,通过项目实践,我掌握了 CMake 进行构建与依赖管理,熟练使用 Shell 脚本实现自动化构建与测试流程,并利用 GDB 进行代码调试与执行路径分析。同时,结合 Valgrind 与 ASAN 工具对内存使用、线程安全及潜在漏洞进行系统检测,有效提升了代码的可靠性和健壮性。该过程中,不仅增强了复杂系统的调试与排查能力,也形成了以工具驱动的高效开发习惯和规范化编码实践。在版本控制和协作方面,掌握了Git 流程及PR提交规范,能够高效开展多团队协作。
(二)就业与职业发展助力
openHiTLS 等开源项目经历使我在求职阶段获得了多家互联网企业和科技公司技术岗的面试机会,在实际项目中积累的密码算法实现、硬件加速封装及工程化开发经验,与企业实际工作场景高度契合。同时,参与社区协作拓展了行业人脉,与资深开发者和同行建立联系,获得技术指导和职业发展建议,为后续职业规划提供支持。
(三)认知与心态转变
经过开源项目的实践,我逐渐形成了主动探索的学习方式,能够在复杂系统中自主识别问题并提出优化方案。同时,通过与社区开发者的协作和知识共享,深刻体会到技术创新不仅在于功能实现,更在于推动整个行业的发展与技术生态的完善。这种经历培养了系统化思维、持续学习能力以及面对技术挑战的自我驱动力,为今后的科研与工程实践奠定了坚实基础。
六、给学弟学妹的建议
千里之行,始于足下。参与开源社区是提升技术能力和工程实践的好途径。可以先从小任务、简单问题入手,熟悉项目结构和开发流程,慢慢积累经验再承担更复杂的开发工作。在这个过程中,不仅能提升编程能力、调试和测试技能,还能学习团队协作、了解实际工程实践,并通过社区交流拓展视野和人脉。坚持从基础开始,点滴积累,收获会越来越明显。

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



