GMSSL SM4测试过程及源码(ECB、CBC、CTR).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编号: 时间:2021年x月x日 学海无涯 页码:第 PAGE 3页 共 NUMPAGES 13页 第 第 PAGE 1 页 共 NUMPAGES 1 页 GMSSL SM4测试过程及源码(ECB、CBC、CTR) GMSSL SM4测试过程及源码(包含ECB、CBC、CTR模式) 基于GMSSL的SM4测试过程及源码 1.SM4介绍 SM4算法,是由国家密码管理局于2012年发布,又名GMS4.0 。相关标准为GM/T 0002-2012《SM4分组密码算法》。关于sm4的源码在github上有很多,但好多都不全,只有SM4的ECB模式,目前找到的比较全的SM4源码就是GMSSL中所实现的。 2.GMSSL介绍 GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密(国家商用密码)算法。项目由北京大学关志副研究员的密码学研究组开发维护,项目源码托管于github。 GMSSL不仅实现了所有的国密算法,还实现了国密的ssl版本GMTLS。同时由于GMSSL是基于openssl的,还保持了openssl的基本功能,包括各种国际算法和ssl/TLS版本。 3.GMSSL裁剪 使用GMSSL的话就涉及到了裁剪,需要如下操作: (1)在在config中添加no-选项,有编译不过的,就添加,直到编译完成。例如: ./config --prefix=/usr/local/openssl no-pic no-poly1305 no-rsa no-aes no-rfc3779 GMSSL SM4测试过程及源码(包含ECB、CBC、CTR模式) (2)同时修改Configure 中 307 $config{sdirs} = [ 317 ]; 把没用到的删掉,在config ,make 可以编译出加密库libcrypto.so (3)其实如果使用静态库编译我们的程序的话,就没必要裁剪了,因为使用静态库在编译的过程中只会把用到的接口链接到我们的程序中,不会额外增加我们程序的大小。 4.GMSSL SM4 接口使用 GMSSL中实现了SM4的所有模式下的源码,包括ECB、CBC、CFB、OFB和CTR。这篇文章主要讲解ECB、CBC和CTR这三种常用模式的接口测试。 4.1 ECB模式。 对称分组加密算法ECB模式的原理如下: GMSSL SM4测试过程及源码(包含ECB、CBC、CTR模式) 在GMSSL源码中SM4-ECB模式的源码实现是: crypto/sms4/sms4_ecb.c 主要涉及的接口为: 加解密接口测试如下: int sm4_ecb_enc_128bit(unsigned char *key, unsigned char *in_data, unsigned char *out_data) { sms4_key_t enc_key; sms4_set_encrypt_key(enc_key, key); sms4_encrypt(in_data, out_data, enc_key); return 0; } int sm4_ecb_dec_128bit(unsigned char *key, unsigned char *in_data, unsigned char *out_data) { sms4_key_t dec_key; sms4_set_decrypt_key(dec_key, key); sms4_encrypt(in_data, out_data, dec_key); return 0; } GMSSL SM4测试过程及源码(包含ECB、CBC、CTR模式) 测试结果: 4.2 CBC 模式 分组加密算法CBC模式原理: 在GMSSL源码中SM4-CBC模式的源码实现是:crypto/sms4/sms4_cbc.c 主要涉及的接口为: GMSSL SM4测试过程及源码(包含ECB、CBC、CTR模式) 加解密接口测试如下: //sm4 cbc encrypt memcpy(user_key, key, 16); memcpy(user_iv, iv, 16); sms4_key_t enc_key; sms4_set_encrypt_key(enc_key, user_key); sms4_cbc_encrypt(plain_text, enc_text, 16, enc_key, user_iv, 1); sms4_cbc_e

文档评论(0)

zhang152 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档