确定性随机数发生器测试向量——DRBG-HMAC-SHA224

目录

结构体定义

测试用基本量

DRBG-HMAC-SHA224测试数据


结构体定义


//DRBG测试中用, 因测试使用数据有很多相同之处
typedef struct dat_st
{
    int        len;
    char *    dat;
}tvstr;

//DRBG的测试向量
typedef struct drbg_test_vector_st 
{    
    char *    inf;            //测试向量的附加信息说明
    int        alg;            //DRBG算法
    int        prflag;            //prediction_resistance_flag: 1 = ENABLED; 0 = NOT ENABLED
    tvstr *    entropy_init;    //EntropyInput 初始化时的熵
    tvstr *    entropy_reseed1;//EntropyInput1 (for Reseed1) 第次reseed时的熵
    tvstr *    entropy_reseed2;//EntropyInput2 (for Reseed2) 第次reseed时的熵
    tvstr *    nonce;            //Nonce
    tvstr *    personal;         //PersonalizationString
    tvstr *    additional1;     //AdditionalInput 1
    tvstr *    additional2;    //AdditionalInput 2
    int        rlen1;        
    char *    gen_rnd1;        //generate rand val 1
    int        rlen2;        
    char *    gen_rnd2;        //generate rand val 1 
}DRBGTV;//DRBG的测试向量

测试用基本量


tvstr Entropy_032 = 
{
    32,
    "00010203 04050607"
    "08090A0B 0C0D0E0F 10111213 14151617 18191A1B 1C1D1E1F",
};


tvstr Entropy_040 = 
{
    40,
    "00010203 04050607 08090A0B 0C0D0E0F"
    "10111213 14151617 18191A1B 1C1D1E1F 20212223 24252627",
};
tvstr Entropy_048 = 
{
    48,
    "00010203 04050607 08090A0B 0C0D0E0F 10111213 14151617"
    "18191A1B 1C1D1E1F 20212223 24252627 28292A2B 2C2D2E2F",
};

tvstr Entropy1_032 = 
{
    32,
    "80818283 84858687"
    "88898A8B 8C8D8E8F 90919293 94959697 98999A9B 9C9D9E9F",
};

tvstr Entropy1_040 = 
{
    40,
    "80818283 84858687 88898A8B 8C8D8E8F"
    "90919293 94959697 98999A9B 9C9D9E9F A0A1A2A3 A4A5A6A7",
};

tvstr Entropy1_048 = 
{
    48,
    "80818283 84858687 88898A8B 8C8D8E8F 90919293 94959697"
    "98999A9B 9C9D9E9F A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF",
};

tvstr Entropy2_032 = 
{
    32,
    "C0C1C2C3 C4C5C6C7"
    "C8C9CACB CCCDCECF D0D1D2D3 D4D5D6D7 D8D9DADB DCDDDEDF",
};

tvstr Entropy2_040 = 
{
    40,
    "C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF"
    "D0D1D2D3 D4D5D6D7 D8D9DADB DCDDDEDF E0E1E2E3 E4E5E6E7",
};

tvstr Entropy2_048 = 
{
    48,
    "C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF D0D1D2D3 D4D5D6D7"
    "D8D9DADB DCDDDEDF E0E1E2E3 E4E5E6E7 E8E9EAEB ECEDEEEF",
};


tvstr Personal_032 = 
{
    32,
    "40414243 44454647"
    "48494A4B 4C4D4E4F 50515253 54555657 58595A5B 5C5D5E5F",
};
tvstr Personal_040 = 
{
    40,
    "40414243 44454647 48494A4B 4C4D4E4F"
    "50515253 54555657 58595A5B 5C5D5E5F 60616263 64656667",
};
tvstr Personal_048 = 
{
    48,
    "40414243 44454647 48494A4B 4C4D4E4F 50515253 54555657"
    "58595A5B 5C5D5E5F 60616263 64656667 68696A6B 6C6D6E6F",
};

tvstr Additional1_032 = 
{
    32,
    "60616263 64656667"
    "68696A6B 6C6D6E6F 70717273 74757677 78797A7B 7C7D7E7F",
};
tvstr Additional1_040 = 
{
    40,
    "60616263 64656667 68696A6B 6C6D6E6F"
    "70717273 74757677 78797A7B 7C7D7E7F 80818283 84858687",
};
tvstr Additional1_048 = 
{
    48,
    "60616263 64656667 68696A6B 6C6D6E6F 70717273 74757677"
    "78797A7B 7C7D7E7F 80818283 84858687 88898A8B 8C8D8E8F",
};

tvstr Additional2_032 = 
{
    32,
    "A0A1A2A3 A4A5A6A7"
    "A8A9AAAB ACADAEAF B0B1B2B3 B4B5B6B7 B8B9BABB BCBDBEBF",
};
tvstr Additional2_040 = 
{
    40,
    "A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF"
    "B0B1B2B3 B4B5B6B7 B8B9BABB BCBDBEBF C0C1C2C3 C4C5C6C7",
};
tvstr Additional2_048 = 
{
    48,
    "A0A1A2A3 A4A5A6A7 A8A9AAAB ACADAEAF B0B1B2B3 B4B5B6B7"
    "B8B9BABB BCBDBEBF C0C1C2C3 C4C5C6C7 C8C9CACB CCCDCECF",
};

tvstr Entropy_055=
{
    55,  
    "000102 03040506"
    "0708090A 0B0C0D0E 0F101112 13141516 1718191A 1B1C1D1E"
    "1F202122 23242526 2728292A 2B2C2D2E 2F303132 33343536",
};
tvstr Entropy_111 =
{
    111,
    "000102 03040506 0708090A 0B0C0D0E"
    "0F101112 13141516 1718191A 1B1C1D1E 1F202122 23242526"
    "2728292A 2B2C2D2E 2F303132 33343536 3738393A 3B3C3D3E"
    "3F404142 43444546 4748494A 4B4C4D4E 4F505152 53545556"
    "5758595A 5B5C5D5E 5F606162 63646566 6768696A 6B6C6D6E",
};


tvstr Entropy1_055 =
{
    55,  
    "808182 83848586"
    "8788898A 8B8C8D8E 8F909192 93949596 9798999A 9B9C9D9E"
    "9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6",
};  
tvstr Entropy1_111 =
{
    111,
    "808182 83848586 8788898A 8B8C8D8E"
    "8F909192 93949596 9798999A 9B9C9D9E 9FA0A1A2 A3A4A5A6"
    "A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE"
    "BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6"
    "D7D8D9DA DBDCDDDE DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE",
};


tvstr Entropy2_055 =
{
    55,   
    "C0C1C2 C3C4C5C6"
    "C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE"
    "DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6",
};
tvstr Entropy2_111 =
{
    111,
    "C0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE"
    "CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE DFE0E1E2 E3E4E5E6"
    "E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6 F7F8F9FA FBFCFDFE"
    "FF000102 03040506 0708090A 0B0C0D0E 0F101112 13141516"
    "1718191A 1B1C1D1E 1F202122 23242526 2728292A 2B2C2D2E",
};


tvstr Nonce05 = { 5, "20 21222324" };                        //用于DRBG-HASH-SHA1
tvstr Nonce07 = { 7, "202122 23242526"};                    //用于DRBG-HASH-SHA224
tvstr Nonce08 = { 8, "20212223 24252627"};                    //用于DRBG-HASH-SHA256等
tvstr Nonce12 = {12, "20212223 24252627 28292A2B"};            //用于DRBG-HASH-SHA384等
tvstr Nonce16 = {16, "20212223 24252627 28292A2B 2C2D2E2F"};//用于DRBG-HASH-SHA512等


tvstr Personal_055 =
{
    55, 
    "404142 43444546"
    "4748494A 4B4C4D4E 4F505152 53545556 5758595A 5B5C5D5E"
    "5F606162 63646566 6768696A 6B6C6D6E 6F707172 73747576",
};
tvstr Personal_111 =
{
    111, 
    "404142 43444546 4748494A 4B4C4D4E"
    "4F505152 53545556 5758595A 5B5C5D5E 5F606162 63646566"
    "6768696A 6B6C6D6E 6F707172 73747576 7778797A 7B7C7D7E"
    "7F808182 83848586 8788898A 8B8C8D8E 8F909192 93949596"
    "9798999A 9B9C9D9E 9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE",
};


tvstr Additional1_055 =
{
    55,
    "606162 63646566"
    "6768696A 6B6C6D6E 6F707172 73747576 7778797A 7B7C7D7E"
    "7F808182 83848586 8788898A 8B8C8D8E 8F909192 93949596",
};
tvstr Additional1_111 =
{
    111, 
    "606162 63646566 6768696A 6B6C6D6E"
    "6F707172 73747576 7778797A 7B7C7D7E 7F808182 83848586"
    "8788898A 8B8C8D8E 8F909192 93949596 9798999A 9B9C9D9E"
    "9FA0A1A2 A3A4A5A6 A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6"
    "B7B8B9BA BBBCBDBE BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE"
};


tvstr Additional2_055 =
{
    55,
    "A0A1A2 A3A4A5A6"
    "A7A8A9AA ABACADAE AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE"
    "BFC0C1C2 C3C4C5C6 C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6",
}; 
tvstr Additional2_111 =
{
    111, 
    "A0A1A2 A3A4A5A6 A7A8A9AA ABACADAE"
    "AFB0B1B2 B3B4B5B6 B7B8B9BA BBBCBDBE BFC0C1C2 C3C4C5C6"
    "C7C8C9CA CBCCCDCE CFD0D1D2 D3D4D5D6 D7D8D9DA DBDCDDDE"
    "DFE0E1E2 E3E4E5E6 E7E8E9EA EBECEDEE EFF0F1F2 F3F4F5F6"
    "F7F8F9FA FBFCFDFE FF000102 03040506 0708090A 0B0C0D0E"
};

tvstr Empty = { 0, NULL,};

DRBG-HMAC-SHA224测试数据

typedef DRBGTV drbg_hmac_sha224_tv;
drbg_hmac_sha224_tv drbg_hmac_sha224[] = 
{
    {/* 测试向量************************************************************/ 
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, FALSE,
        /* EntropyInput            */    &Entropy_055,  
        /* Entropy1 (Reseed1)    */    &Entropy1_055,  
        /* Entropy2 (Reseed2)    */    &Entropy2_055,  
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Empty, 
        /* AdditionalInput 1    */    &Empty,
        /* AdditionalInput 2    */    &Empty,
        /* rnd_val 1            */    56, 
        "2444F876 2695FE82"
        "C2CA72C9 C5834B94 8C9C334C C922A81A EABC53D9 4962FF27"
        "345EF1E3 E199DDE5 E586800E 40C4B369 8F84FFE1 580EA6A9",
        /* rnd_val 2            */    56,
        "C2FD2E69 DD13C1AB"
        "0B9E4182 4109E257 22DC2248 3ADFE7C1 C556D924 45EDDEB3"
        "C98DC11C 51F59F2A A00F9DC2 C22DC9BD 3050F06E B516B98D",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, FALSE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,  
        /* Entropy2 (Reseed2)    */    &Entropy2_055,  
        /* Nonce                */    &Nonce07,
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Additional1_055,
        /* AdditionalInput2        */    &Additional2_055,  
        /* rnd_val 1            */    56, 
        "F9CA2486 FCBED54C"
        "F88DFAA8 B87959D7 0BD1048E CD01FA2E B4375028 8860ACC0"
        "1EF2DC2C 47D29FD9 9B353754 EA45EF0F 45074520 B4591045",
        /* rnd_val 2            */    56,
        "96D23972 60FA9F7D"
        "085F9CDC B3EBAA39 A0B2E4B4 8C5858B9 88357FE6 32985C91"
        "FC3A8A58 3441856D 0C1B1059 C7153B91 1DE34048 425E3A42",
    }, 
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, FALSE,  
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Personal_055, 
        /* AdditionalInput1        */    &Empty,  
        /* AdditionalInput2        */    &Empty,  
        /* rnd_val 1            */    56, 
        "CC52B803 A2BE29C1"
        "3669C492 60C80FAB A2C8079E 12D929B0 19A229A2 3EBC03FA"
        "0962232F 6D92E3E4 432DCD20 B62A1F3B AC98B7C2 5A85A1C9",
        /* rnd_val 2            */    56,
        "1A6131F5 FBE23C94"
        "750185A4 F496EFB4 108F5125 CEBDCF02 746B32FD 952AEC16"
        "BD2538AB E16C2C99 245C8B3C 3A2E77CC 8BC86FAC 26CE278F",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, FALSE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Personal_055, 
        /* AdditionalInput1        */    &Additional1_055,  
        /* AdditionalInput2        */    &Additional2_055,
        /* rnd_val 1            */    56, 
        "499A959D E618773D"
        "F17A5372 074DA0AA 7A7B121C D31DA444 F65F9782 801EAFE1"
        "ED3A3D40 06C3A321 C5FA1261 CA596C75 E25CBC26 23189FC4",
        /* rnd_val 2            */    56,
        "0AD161E1 9C70E4F5"
        "29A31D94 D4913162 9A24E77B 5545AE91 F23A7D1C 6FFB0C00"
        "19640D0F 75B62D31 431557E9 A87A6714 0F9C1BA3 917A510C",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Empty, 
        /* AdditionalInput2        */    &Empty, 
        /* rnd_val 1            */    56, 
        "A07AA4CC 1716E214"
        "96DB43E3 05B00400 578D3227 E224ED5F 08D881B7 04CA6EFF"
        "3E9CA847 C90660DF 36517813 AC13913B AC1E822B 5883281A",
        /* rnd_val 2            */    56,
        "1FCC850D 8F3E8B56"
        "98D03900 F3D6BE3F 3EAD1260 09BCE060 4D0B60DF CE17F743"
        "CE0913AB CAF36FC3 082F89D2 F8AD52A8 A0DF633F A3C108A7",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Empty,
        /* AdditionalInput1        */    &Additional1_055, 
        /* AdditionalInput2        */    &Additional2_055, 
        /* rnd_val 1            */    56, 
        "E28DA53A 461C412D"
        "7E57C3A2 E4A93A82 13EFC9E7 A9BD99CD F8624A25 1EE9B715"
        "33C5D916 05FA2C6B 14C50A75 2DF39B9B 0DE877B7 645A3D2F",
        /* rnd_val 2            */    56,
        "0A2E074D FF196BD8"
        "2B8CC309 1A1C99C7 2220B0D2 154594EE 103398B8 774050F6"
        "87EE6090 D0B415DD 1D3D9027 E9CB59AE 831EF109 C415BB4A",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, TRUE,
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Personal_055,
        /* AdditionalInput1        */    &Empty,
        /* AdditionalInput2        */    &Empty,
        /* rnd_val 1            */    56, 
        "ACD797A0 7B378D0A"
        "D9A8FBE2 1683E7BB 8A3DF9CB 1346FF43 2EA75B47 66B7C754"
        "C4D06F4C 257537CC D9A399E5 986BBD30 085EEC86 01582911",
        /* rnd_val 2            */    56,
        "3531CEE9 F51FBCA7"
        "361CD991 0AD3A973 416EA587 4A5E5868 3E81BA3B A36A191C"
        "0B74EDCF 25803D0F 046B3071 738648A8 DC0D4ABC 8C3E5A20",
    },
    {/* 测试向量************************************************************/  
        /* inf */ (char*)"NIST提供HMAC DRBG SHA224测试向量", DRBG_HMAC_SHA224, TRUE, 
        /* EntropyInput            */    &Entropy_055,
        /* Entropy1 (Reseed1)    */    &Entropy1_055,
        /* Entropy2 (Reseed2)    */    &Entropy2_055,
        /* Nonce                */    &Nonce07, 
        /* PersonalizationString*/    &Personal_055,
        /* AdditionalInput1        */    &Additional1_055, 
        /* AdditionalInput2        */    &Additional2_055,
        /* rnd_val 1            */    56, 
        "C1DA29D0 48DDBED3"
        "DCCE1040 DCF74E66 0FC2D883 269E65B4 9DBFAD8E C99CECB6"
        "5C4EE17A BC3E3A93 342750DC 623A92A8 2A12A05F 0E59B714",
        /* rnd_val 2            */    56,
        "62CB0F78 6098110C"
        "817975BA 4AAB395E 2E7D2B7F B0CDD094 59693A1A 952AD057"
        "CA66E306 F283E5F8 AAAB2087 B0B8A2E1 6DEDF4C3 C5EE8B71",
    }, 
};

posted @ 2022-03-28 13:00  艾米的爸爸  阅读(0)  评论(0)    收藏  举报  来源