—— 完 ——
龙蜥开发者说:从入坑到入门 | 第 2 期
本期故事主角:张天佳,龙蜥社区 商密软件栈 SIG Maintainer,安全技术开发,专注于国内商用密码的技术开发以及推广工作。
回想自己与编程的经历,从最初的一通瞎折腾,到现在能参与以及贡献基础软件社区,已经有十多年时间了。很遗憾,这段经历的大多半时间都是走在一个错误的方向上的,至少现在我是这么认为的。确实没有什么精彩的故事,借着给龙蜥社区朋友们分享的契机讲一讲,列位看官权且当作教训来看,当作吃别人一堑,长自己一智吧。
扯回正题,因为工作涉及系统开发的缘故,抱着很不情愿的状态开始使用 C 语言,也许是有汇编基础,C 语言学习起来就顺利了很多,对于许多人诟病的指针好像也没说的那么复杂。其实当时行业主流使用的是 C++ 语言,奈何一直没有学会,直到现在也是一知半解。就这样浑浑噩噩的六年多,分析过 CVE、写过 POC、内核监控、各种 HOOK 信手拈来,开发语言也主要集中在 C、lua 和汇编。但是基本没做什么像样的项目,随着近几年操作系统自身安全性提升和软件分发的把控,操作系统安装一个专门的主机安全软件的必要性也越来越小。
我很喜欢我们公司内部的一句话「一次性把事情做对」,拿国密来说,从开始的算法标准制定到现在也有十多年的时间了,目前仍然没有被广泛使用是有原因的,工程上的碎片化是很重要的一点,这也是我们一开始坚持的原则,龙蜥的国密不是要做另一个碎片的国密实现,而是把国密的工程实现统一到日常使用的基础软件中去,避免以后国内大量的资源和人力重复投入,一次性把这个事情做好。
sm4-generic | 16 64 128 256 1024 1420 4096
ECB enc | 80.05 91.42 93.66 94.77 95.69 95.77 95.86
ECB dec | 79.98 91.41 93.64 94.76 95.66 95.77 95.85
CBC enc | 78.55 86.50 88.02 88.77 89.36 89.42 89.48
CBC dec | 76.82 89.06 91.52 92.77 93.75 93.83 93.96
CFB enc | 77.64 86.13 87.62 88.42 89.08 88.83 89.18
CFB dec | 77.57 88.34 90.36 91.45 92.34 92.00 92.44
CTR enc | 77.80 88.28 90.23 91.22 92.11 91.81 92.25
CTR dec | 77.83 88.22 90.22 91.22 92.04 91.82 92.28
sm4-neonECB enc | 28.31 112.77 203.03 209.89 215.49 202.11 210.59
ECB dec | 28.36 113.45 203.23 210.00 215.52 202.13 210.65
CBC enc | 79.32 87.02 88.51 89.28 89.85 89.89 89.97
CBC dec | 28.29 112.20 203.30 209.82 214.99 201.51 209.95
CFB enc | 79.59 87.16 88.54 89.30 89.83 89.62 89.92
CFB dec | 28.12 111.05 202.47 209.02 214.21 210.90 209.12
CTR enc | 28.04 108.81 200.62 206.65 211.78 208.78 206.74
CTR dec | 28.02 108.82 200.45 206.62 211.78 208.74 206.70
sm4-ce-cipher
ECB enc | 336.79 587.13 682.70 747.37 803.75 811.52 818.06
ECB dec | 339.18 584.52 679.72 743.68 798.82 803.83 811.54
CBC enc | 316.63 521.47 597.00 647.14 690.82 695.21 700.55
CBC dec | 291.80 503.79 585.66 640.82 689.86 695.16 701.72
CFB enc | 294.79 482.31 552.13 594.71 631.60 628.91 638.92
CFB dec | 293.09 466.44 526.56 563.17 594.41 592.26 601.97
CTR enc | 309.61 506.13 576.86 620.47 656.38 654.51 665.10
CTR dec | 306.69 505.57 576.84 620.18 657.09 654.52 665.32
sm4-ce
ECB enc | 366.96 1329.81 2024.29 2755.50 3790.07 3861.91 4051.40
ECB dec | 367.30 1323.93 2018.72 2747.43 3787.39 3862.55 4052.62
CBC enc | 358.09 682.68 807.24 885.35 958.29 963.60 973.73
CBC dec | 366.51 1303.63 1978.64 2667.93 3624.53 3683.41 3856.08
CFB enc | 351.51 681.26 807.81 893.10 968.54 969.17 985.83
CFB dec | 354.98 1266.61 1929.63 2634.81 3614.23 3611.59 3841.68
CTR enc | 324.23 1121.25 1689.44 2256.70 2981.90 3007.79 3060.74
CTR dec | 324.18 1120.44 1694.31 2258.32 2982.01 3010.09 3060.99
程序语言世界素来有江湖门派之争,文中难免涉及个人主观判断,只是代表个人想法和意见,仅供大家参考。
钉钉交流群:35789429
本期分享到这里结束,期待下期精彩分享哦!
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
龙蜥社区(OpenAnolis)是由企事业单位、高等院校、科研单位、非营利性组织、个人等在自愿、平等、开源、协作的基础上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、开放的Linux 上游发行版社区及创新平台。
龙蜥社区成立的短期目标是开发龙蜥操作系统(Anolis OS)作为 CentOS 停服后的应对方案,构建一个兼容国际 Linux 主流厂商的社区发行版。中长期目标是探索打造一个面向未来的操作系统,建立统一的开源操作系统生态,孵化创新开源项目,繁荣开源生态。
目前,龙蜥OS 8.4已发布,支持 X86_64 、Arm64、LoongArch 架构,完善适配飞腾、海光、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密支持。
欢迎下载:
https://openanolis.cn/download
加入我们,一起打造面向未来的开源操作系统!
https://openanolis.cn
往期精彩推荐
3.龙蜥开发者说来了,来看看社区一周动态还有什么?| 3.07-3.11
4.技术解读:英特尔 x86 平台上,AI 能力是如何进行演进的?(附PPT)