密码算法测试向量——AES

目录

AES128测试向量

AES192测试向量

AES256测试向量


//分组密码算法的测试向量, 如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;//分组密码算法的测试向量

AES128测试向量

//AES的测试向量见NIST SP800-38A 
// (Appendix F: Example Vectors for Modes of Operation of the AES)
BCTV aes128enctv[] =
{     
    {/*测试向量0*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, ECB, 
        /*Key*/    16, (char*)"2b7e151628aed2a6  abf7158809cf4f3c",
        /*IV */     0, (char*)NULL,
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"3ad77bb40d7a3660  a89ecaf32466ef97"
        /*   */            "f5d3d58503b9699d  e785895a96fdbaaf"
        /*   */            "43b1cd7f598ece23  881b00e3ed030688"
        /*   */            "7b0c785e27e8ad3f  8223207104725dd4",
        /*mac*/     0, (char*)NULL,
    },
    {/*测试向量1*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CBC_PAD_NULL, 
        /*Key*/    16, (char*)"2b7e151628aed2a6  abf7158809cf4f3c",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"7649abac8119b246  cee98e9b12e9197d"
        /*   */            "5086cb9b507219ee  95db113a917678b2"
        /*   */            "73bed6b8e3c1743b  7116e69e22229516"
        /*   */            "3ff1caa1681fac09  120eca307586e1a7",
        /*mac*/     0, (char*)NULL, 
    }, 
    {/*测试向量2*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CFB, 
        /*Key*/    16, (char*)"2b7e151628aed2a6  abf7158809cf4f3c",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"3b3fd92eb72dad20  333449f8e83cfb4a"
        /*   */            "c8a64537a0b3a93f  cde3cdad9f1ce58b"
        /*   */            "26751f67a3cbb140  b1808cf187a4f4df"
        /*   */            "c04b05357c5d1c0e  eac4c66f9ff7f2e6",
        /*mac*/     0, (char*)NULL, 
    }, 
    {/*测试向量3*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, OFB, 
        /*Key*/    16, (char*)"2b7e151628aed2a6  abf7158809cf4f3c",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"3b3fd92eb72dad20  333449f8e83cfb4a"
        /*   */            "7789508d16918f03  f53c52dac54ed825"
        /*   */            "9740051e9c5fecf6  4344f7a82260edcc"
        /*   */            "304c6528f659c778  66a510d9c1d6ae5e",
        /*mac*/     0, (char*)NULL, 
    }, 
    {/*测试向量4*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES128, CTR, 
        /*Key*/    16, (char*)"2b7e151628aed2a6  abf7158809cf4f3c",
        /*IV */    16, (char*)"f0f1f2f3f4f5f6f7  f8f9fafbfcfdfeff",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"874d6191b620e326  1bef6864990db6ce"
        /*   */            "9806f66b7970fdff  8617187bb9fffdff"
        /*   */            "5ae4df3edbd5d35e  5b4f09020db03eab"
        /*   */            "1e031dda2fbe03d1  792170a0f3009cee",
        /*mac*/     0, (char*)NULL, 
    }, 
};

AES192测试向量

BCTV aes192enctv[] =
{
    {/*测试向量0*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, ECB, 
        /*Key*/    24, (char*)"8e73b0f7da0e6452  c810f32b809079e5  62f8ead2522c6b7b",
        /*IV */     0, (char*)NULL,
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"bd334f1d6e45f25f  f712a214571fa5cc"
        /*   */            "974104846d0ad3ad  7734ecb3ecee4eef"
        /*   */            "ef7afd2270e2e60a  dce0ba2face6444e"
        /*   */            "9a4b41ba738d6c72  fb16691603c18e0e",
        /*mac*/     0, (char*)NULL,
    },
    {/*测试向量1*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CBC_PAD_NULL, 
        /*Key*/    24, (char*)"8e73b0f7da0e6452  c810f32b809079e5  62f8ead2522c6b7b",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"4f021db243bc633d  7178183a9fa071e8"
        /*   */            "b4d9ada9ad7dedf4  e5e738763f69145a"
        /*   */            "571b242012fb7ae0  7fa9baac3df102e0"
        /*   */            "08b0e27988598881  d920a9e64f5615cd",
        /*mac*/     0, (char*)NULL,     
    },
    {/*测试向量2*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CFB, 
        /*Key*/    24, (char*)"8e73b0f7da0e6452  c810f32b809079e5  62f8ead2522c6b7b",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"cdc80d6fddf18cab  34c25909c99a4174"
        /*   */            "67ce7f7f81173621  961a2b70171d3d7a"
        /*   */            "2e1e8a1dd59b88b1  c8e60fed1efac4c9"
        /*   */            "c05f9f9ca9834fa0  42ae8fba584b09ff",
        /*mac*/     0, (char*)NULL,     
    }, 
    {/*测试向量3*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, OFB, 
        /*Key*/    24, (char*)"8e73b0f7da0e6452  c810f32b809079e5  62f8ead2522c6b7b",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"cdc80d6fddf18cab  34c25909c99a4174"
        /*   */            "fcc28b8d4c63837c  09e81700c1100401"
        /*   */            "8d9a9aeac0f6596f  559c6d4daf59a5f2"
        /*   */            "6d9f200857ca6c3e  9cac524bd9acc92a",
        /*mac*/     0, (char*)NULL,
    },     
    {/*测试向量4*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES192, CTR, 
        /*Key*/    24, (char*)"8e73b0f7da0e6452  c810f32b809079e5  62f8ead2522c6b7b",
        /*IV */    16, (char*)"f0f1f2f3f4f5f6f7  f8f9fafbfcfdfeff",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"1abc932417521ca2  4f2b0459fe7e6e0b"
        /*   */            "090339ec0aa6faef  d5ccc2c6f4ce8e94"
        /*   */            "1e36b26bd1ebc670  d1bd1d665620abf7"
        /*   */            "4f78a7f6d2980958  5a97daec58c6b050",
        /*mac*/     0, (char*)NULL,
    },          
};

AES256测试向量

BCTV aes256enctv[] =
{
    {/*测试向量0*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, ECB, 
        /*Key*/    32,    (char*)"603deb1015ca71be  2b73aef0857d7781"
        /*   */            "1f352c073b6108d7  2d9810a30914dff4",
        /*IV */     0, (char*)NULL,
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"f3eed1bdb5d2a03c  064b5a7e3db181f8"
        /*   */            "591ccb10d410ed26  dc5ba74a31362870" 
        /*   */            "b6ed21b99ca6f4f9  f153e7b1beafed1d"
        /*   */            "23304b7a39f9f3ff  067d8d8f9e24ecc7",
        /*mac*/     0, (char*)NULL,
    },  
    {/*测试向量1*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CBC_PAD_NULL, 
        /*Key*/    32,    (char*)"603deb1015ca71be  2b73aef0857d7781"
        /*   */            "1f352c073b6108d7  2d9810a30914dff4",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"f58c4c04d6e5f1ba  779eabfb5f7bfbd6"
        /*   */            "9cfc4e967edb808d  679f777bc6702c7d" 
        /*   */            "39f23369a9d9bacf  a530e26304231461"
        /*   */            "b2eb05e2c39be9fc  da6c19078c6a9d1b",
        /*mac*/     0, (char*)NULL,
    },   
    {/*测试向量2*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CFB, 
        /*Key*/    32,    (char*)"603deb1015ca71be  2b73aef0857d7781"
        /*   */            "1f352c073b6108d7  2d9810a30914dff4",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"dc7e84bfda79164b  7ecd8486985d3860"
        /*   */            "39ffed143b28b1c8  32113c6331e5407b" 
        /*   */            "df10132415e54b92  a13ed0a8267ae2f9"
        /*   */            "75a385741ab9cef8  2031623d55b1e471",
        /*mac*/     0, (char*)NULL,
    },      
    {/*测试向量3*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, OFB, 
        /*Key*/    32,    (char*)"603deb1015ca71be  2b73aef0857d7781"
        /*   */            "1f352c073b6108d7  2d9810a30914dff4",
        /*IV */    16, (char*)"0001020304050607  08090a0b0c0d0e0f",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"dc7e84bfda79164b  7ecd8486985d3860"
        /*   */            "4febdc6740d20b3a  c88f6ad82a4fb08d" 
        /*   */            "71ab47a086e86eed  f39d1c5bba97c408"
        /*   */            "0126141d67f37be8  538f5a8be740e484",
        /*mac*/     0, (char*)NULL,
    },      
    {/*测试向量4*/ 
        /*inf*/ (char*)"NIST SP800-38A提供的测试向量", AES256, CTR, 
        /*Key*/    32,    (char*)"603deb1015ca71be  2b73aef0857d7781"
        /*   */            "1f352c073b6108d7  2d9810a30914dff4",
        /*IV */    16, (char*)"f0f1f2f3f4f5f6f7  f8f9fafbfcfdfeff",
        /*pt */    64, (char*)"6bc1bee22e409f96  e93d7e117393172a"
        /*   */            "ae2d8a571e03ac9c  9eb76fac45af8e51"
        /*   */            "30c81c46a35ce411  e5fbc1191a0a52ef"
        /*   */            "f69f2445df4f9b17  ad2b417be66c3710",
        /*ct */    64, (char*)"601ec313775789a5  b7a7f504bbf3d228"
        /*   */            "f443e3ca4d62b59a  ca84e990cacaf5c5" 
        /*   */            "2b0930daa23de94c  e87017ba2d84988d"
        /*   */            "dfc9c58db67aada6  13c2dd08457941a6",
        /*mac*/     0, (char*)NULL,
    },      
};

posted @ 2022-03-25 15:54  艾米的爸爸  阅读(1)  评论(0)    收藏  举报  来源