国密算法(SM2,SM3,SM4)辅助工具升级版(OTP+PBOC3.0)

2022年8月31日13:13:13

从编写最初版本用于验算SM2,SM3和SM4算法的辅助工具已有一年多的时间了,国密算法的应用和普及也是不温不火的。编写最初算法代码和工具时所参考的文档还非正式的国密标准文件,而目前国密标准文件发布了几个系列了,为国密算法应用提供了有力的参考和帮助,特别人行发布了PBOC3.0标准,其增强部分的国密算法应用部分,为国密算法在金融领域应用打下标准基础,也为厂商和开发提供了有力的帮助和指导。

       国密局同时也发布了使用国密SM3和SM4算法的OTP算法标准,并首推在金融领域应用,笔者有幸参与了某股份制银行使用国密OTP算法的应用工作,最初参考标准为讨论稿,使用的算法为SM1和SM3算法,与最新的国家标准区别为把SM1改为SM4,但应用和算法上区别不大,在笔者同各厂家(其中包括国家标准的编制厂商)交流和合作过程中,对其他标准部分体会还不深,但至少对OTP标准这部分体会颇多,发布的标准和数据说明相当的不够严谨,数据与算法描述完全不同,最新公布的正式版OTP部分也是如此(算法说明与数据样例不一致),还需要开发者自己去鉴别和理解,还希望以国家身份的标准制定和审定要谨慎啊。

       PBOC3.0标准重点描述了SM4、SM3和SM2算法应用,对称部分应用描述的比较完善可以参考进行工程开发,而SM2证书部分只说明了发卡行和IC部分,而根CA部分的就没有涉及,这一点上同PBOC2.0相同,要进行系统开发还需要找到CA部分标准,目前还没有正式规范发布。SM2的IC证书与RSA的证书最大区别在于RSA对数据进行了私钥加密,之后用公钥解密,而SM2对数据使用私钥签名,数据为明文,使用时对数据进行验证,这点在证书应用上是不同,同时SM2证书的数据量要少,私钥不需要CRT,公钥也没有余项。

       笔者编写的升级版的工具增加了功能为4项,1.OTP算法(SM3和SM4应用,用于动态口令生成),2.PBOC(对称算法SM4,MAC计算、数据加密解密、ARQC和ARPC、子密钥离散),3.SM2根CA部分(使用SM2算法,签发CA根证书、验证根证书、验证发卡行证书输入和签发发卡行证书),4.SM2发卡行证书(生成发卡行证书输入文件,签发IC证书和验证IC证书),需要说明的是,PBOC3.0的SM2证书部分实现为参考国密算法IC根CA证书方案的草案完成,与最终的正式版可能会有所出入。

       新增算法工具界面如下:

                                                     1. OTP算法功能界面

                                                   2.PBOC对称算法功能界面

                                              3.SM2根CA证书功能界面

                                                4.SM2发卡行证书功能界面

       如果有相关测试数据的朋友,可提供一些数据,用于验证工具功能正确性。

  • 作者:goldboar
  • 原文链接:https://blog.csdn.net/goldboar/article/details/27170771
    更新时间:2022年8月31日13:13:13 ,共 1301 字。