//分组密码算法的测试向量, 如CBC, CMAC等
typedef struct block_cipher_test_vector_st 

    char *    inf;    //测试向量的附加信息说明
    int        alg;    //密码算法
    int        mod;    //工作模式
    int        klen;    //密钥字节长度
    char *    key;    //密钥
    int        ivlen;    // IV 字节长度
    char *    iv;        // IV 
    int     ptlen;    //明文字节长度     
    char *    pt;        //明文
    int        ctlen;    //密文字节长度
    char *    ct;        //密文
    int        maclen;    //MAC 字节长度
    char *    mac;    //MAC
}BCTV;//分组密码算法的测试向量

BCTV sm4mactv[] =
{
    {/*测试向量0  */ 
        /*inf*/ (char*)"XX中心提供", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"EEF3C9888129755F 2C769DBC459448CE",
        /*IV */    16,    (char*)"FBD7B7AB0793F814 B28A970F9E859C05",
        /*pt */    16,    (char*)"99C9D02D03F2CD39 4A680DC51B112322",
        /*ct */     0, (char*)NULL,
        /*mac*/    16,    (char*)"530EDF0605A302F3 0096AE46BD6316AF",
    },
    {/*测试向量1 */ 
        /*inf*/ (char*)"XX中心提供", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"973270DF92EFF5EC 1E170A1566098CB3",
        /*IV */    16,    (char*)"2C2A98AF53A684F1 9DF3C39B721FA27E",
        /*pt */    32,    (char*)"AADA15E99FE95171 B6F15FD3E427976E"
        /*   */            "B1B595FCA82A23AC 00C7AC7CEF9DDED7",
        /*ct */     0, (char*)NULL,
        /*mac*/    16,    (char*)"CF505945E5C135BC 2BB4588D17E404D4",

}, 
    {/*测试向量2 */ 
        /*inf*/ (char*)"XX中心提供", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"F82B569F5D3DCB61 D0BE8778BF05D1B0",
        /*IV */    16,    (char*)"791004096432F985 F7BE6B5CDAC79EB8", 
        /*pt */    48,    (char*)"F76C0ADA8374F1D0 C4B7EC5CC5047E03"
        /*   */            "CF83B7A9ECE3777C FAEEC940ECE815CA"
        /*   */            "E2FAA69EFAAC61A1 42C882CCC772E653", 
        /*ct */     0, (char*)NULL,
        /*mac*/ 16,    (char*)"651AF0AA9D73D2C6 460DAEC83738AE3C",
    }, 
    {/*测试向量3 */ 
        /*inf*/ (char*)"XX中心提供", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"ABC854B48BD5811E 22DDBB513313C858",
        /*IV */    16,    (char*)"500D6DD1001962FE 4727C117ACDE2C4E",
        /*pt */    64,    (char*)"E0D1F45DB6C3DB00 F954062DB748162F"
        /*   */            "5FF589645686F615 92A98574334BE914"
        /*   */            "42B8BCDB331887D7 D3873EDB63EFA4E4"
        /*   */            "1FA3BC66BA9BDBD9 F02A6CF6D6116044",
        /*ct */     0, (char*)NULL,
        /*mac*/ 16,    (char*)"AA54E04FC85B56C2 CEB1D58E122ADB79",
    }, 
    {/*测试向量4 中心提供数据 */ 
        /*inf*/ (char*)"中心提供", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"3CA7EF836755B8D4 A1F981A596DB17E8",
        /*IV */    16,    (char*)"607B652B1E129F69 00FDF21D833AED4B", 
        /*pt */    80,    (char*)"DF8C24D34145C12B 335852E9F23468A9"
        /*   */            "EA01C3A356FD0701 7F55706BF403D4A4"
        /*   */            "B1C0E4C9448D18F6 2FFEB58DACC857F2"
        /*   */            "73ABFC4C064E05B4 B2DBA149E1CBA7DE"
        /*   */            "C6A3809AD916306C 48A5F564B1378356",
        /*ct */     0, NULL,
        /*mac*/ 16,    (char*)"C5C98AC7CD492D41 92706C7CCC6C9F79",
    },   
    {/*测试向量5 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV1 */ 
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV1", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    32,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20666F72206D6163",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"16E02904EFB765B7",
    },     
    {/*测试向量6 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV2 */ 
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV2", SM4, CBC_MAC_PAD_1000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    32,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20666F72206D6163",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"4B6553AF3C4E2744",
    },
    {/*测试向量7 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV3 */ 
        /*说明: 代码中无标准规定的第3种填充方式:
         *      最左边填一个分组表示长度,最右边填最少的0比特 
         *      所以这里将模式和pt做了对应性调整 */
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV3", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    48,    (char*)"0000000000000000 0000000000000100"
        /*   */            "5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20666F72206D6163",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"71AF7E4553404CBC",
    },  
    {/*测试向量8 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV4 */ 
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV4", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    25,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"BA89E45FE8ABF242",
    },     
    {/*测试向量9 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV5 */ 
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV5", SM4, CBC_MAC_PAD_1000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    25,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"421AD1690AA152E2",
    },
    {/*测试向量10 GB/T 15852.1 B.2节 MAC算法1(CBC-MAC) TV6 */ 
        /*说明: 代码中无标准规定的第3种填充方式:
         *      最左边填一个分组表示长度,最右边填最少的0比特 
         *      所以这里将模式和pt做了对应性调整 */
        /*inf*/ (char*)"GB/T 15852.1 B.2节 CBC-MAC TV6", SM4, CBC_MAC_PAD_0000,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    48,    (char*)"0000000000000000 00000000000000C8"
        /*   */            "5468697320697320 7468652074657374"
        /*   */            "206D657373616765 2000000000000000",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"6A4A86F5B5E468DA",
    },  
    {/*测试向量11 GB/T 15852.1 B.6节 MAC算法5(CMAC) TV1 */ 
        /*说明: 代码中无标准规定的第3种填充方式:
         *      最左边填一个分组表示长度,最右边填最少的0比特 
         *      所以这里将模式和pt做了对应性调整 */
        /*inf*/ (char*)"GB/T 15852.1 B.6节 CMAC TV1", SM4, CMAC,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    32,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20666F72206D6163",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"692C437100F3B5EE",
    },  
    {/*测试向量12 GB/T 15852.1 B.6节 MAC算法6(CMAC) TV2 */ 
        /*说明: 代码中无标准规定的第3种填充方式:
         *      最左边填一个分组表示长度,最右边填最少的0比特 
         *      所以这里将模式和pt做了对应性调整 */
        /*inf*/ (char*)"GB/T 15852.1 B.6节 CMAC TV2", SM4, CMAC,
        /*Key*/    16,    (char*)"0123456789ABCDEF FEDCBA9876543210",
        /*IV */    0,    NULL, 
        /*pt */    25,    (char*)"5468697320697320 7468652074657374"
        /*   */            "206D657373616765 20",
        /*ct */     0, NULL,
        /*mac*/  8,    (char*)"4738A6C760B280FC",
    },  
};

密码算法测试向量——Cipher MAC SM4相关推荐

  1. 密码算法测试向量——AES

    目录 AES128测试向量 AES192测试向量 AES256测试向量 //分组密码算法的测试向量, 如CBC, CMAC等 typedef struct block_cipher_test_vect ...

  2. 密码算法测试向量——SM3

    //杂凑算法的测试向量, 如数据杂凑, HMAC等  typedef struct hash_test_vector_st  {         char *    inf;    //测试向量的附加 ...

  3. 密码算法测试向量——HMAC-SHA系列

    目录 HMAC-SHA1 HMAC-SHA224 HMAC-SHA256 HMAC-SHA384 HMAC-SHA512 //杂凑算法的测试向量, 如数据杂凑, HMAC等  typedef stru ...

  4. 密码算法测试向量——HMAC-SM3

    //杂凑算法的测试向量, 如数据杂凑, HMAC等  typedef struct hash_test_vector_st  {         char *    inf;    //测试向量的附加 ...

  5. SM4密码算法(附源码)

    from:http://blog.csdn.net/mao0514/article/details/52930944 SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的.网址戳 ...

  6. SM4密码算法实现(C语言只使用stdio.h库)

    SM4算法分析与实现 目录 SM4算法简介 SM4算法原理 SM4算法实现与设计 完整代码 加密流程图点这里 SM4算法简介 SM4密码算法是一个分组算法.数据分组长度为128比特,密钥长度为128比 ...

  7. python商用_python实现sm2和sm4国密(国家商用密码)算法的示例

    GMSSL模块介绍 GmSSL是一个开源的加密包的python实现,支持SM2/SM3/SM4等国密(国家商用密码)算法.项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用. 安 ...

  8. 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)

      由于工作的需要,在过去的两年中学习.适配了很多算法,包括对称算法.非对称算法.国密算法.国际算法等.为了逼迫自己能够牢记并掌握这些算法的基本知识点,故本人写了一个关于算法的专栏(持续更新中...) ...

  9. 密码算法(SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算)

    文章目录 SM1 对称密码 SM2 椭圆曲线公钥密码算法 SM3 杂凑算法 SM4 对称算法 同态加密 密态计算和隐私计算 安全多方计算技术 安全多方计算的应用场景 对称加密算法 非对称加密算法(公钥 ...

  10. 国密算法概述介绍(SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC))

    ttps://blog.csdn.net/SkyChaserYu/article/details/104039272 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包 ...

最新文章

  1. 欧拉回路基本概念及定理
  2. javascript中将整数添加千位符号
  3. Python_List对象内置方法详解
  4. flink搭建集群(一主三从)
  5. C++、python、CUDA性能分析--矩阵乘法
  6. 命令行分析java线程CPU占用
  7. magento 插件
  8. python代码计算字数_Python计算一个文件里字数的方法
  9. Java程序员实现完美代码的十大要素
  10. 双一流2020年调整时间_“双一流”调整名单预测,985大学两升一降,两校退出名校阵营...
  11. 图纸管理软件_企业图纸文档的安全管理与使用,是否遇到这些图纸管理问题?...
  12. 整理一些ChartControl控件属性
  13. 松下FP-XH系列PLC 断电保持寄存器使用注意事项
  14. Class 2 搭建简历网站
  15. 计算机考研复试-《数据库》篇
  16. STM32 IO 简介
  17. 北京工商专修学校计算机学院院长,北京工商大学计算机学院
  18. 计算机英语论文及翻译,计算机专业英语翻译小论文
  19. [转]结合php5与zend_search_lucene来创建一个全文搜索引擎
  20. 【13】变分自编码器(VAE)的原理介绍与pytorch实现

热门文章

  1. 联邦学习拜占庭鲁棒差分隐私博弈论
  2. 阿里魔改的mysql叫啥_mysql 改变数据库名
  3. html5苹果手机视频不自动播放,HTML5 解决苹果手机不能自动播放音乐问题
  4. 欢迎清风艾艾在ITPUB博客安家!
  5. oneos组件系列02:ws2812全彩LED
  6. java计算机毕业设计招聘管理系统源码+系统+mysql数据库+lw文档
  7. JNDI全攻略(一)
  8. java基于ssm的校车车辆调度管理系统
  9. 联想e470加装固态硬盘_联想e470能不能加固态硬盘?
  10. Day4----类训练(搬家具、烤地瓜)