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

目录

结构体定义

测试用基本量

drbg_hash_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_hash_sha224测试数据

typedef DRBGTV hash_drbg_sha224_tv;

hash_drbg_sha224_tv drbg_hash_sha224[] =

{

       {/* 测试向量************************************************************/

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "5E68BDE0 9AAA08BC"

              "11B32790 2C82F011 4CBA0F9C CCA6203B A3940091 3ECD3671"

              "A5B60EF9 22999D90 FCEEEC5C 227E5D25 C56921EE 572ED472",

              /* rnd_val 2                 */    56,

              "DC056FCB 35FF51D7"

              "D9FB72FD 4FD1B1D2 46451DB5 6CD4F889 E432E327 3F9ED82D"

              "E3EF7CD2 8B6A9C0F 4D78E5C8 451D3634 0A2BD7E6 9FAB32EB",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "B15DEC1B 266433D9"

              "7E587C87 1D15717A E15CA7B7 E616CFE1 0120523A E9504D80"

              "4E102D1C AFAFD3FF 677BEBBD 0C435952 505F8723 1D9EA679",

              /* rnd_val 2                 */    56,

              "8E428812 257FB69B"

              "1A8C6712 88F702B0 A82574AF D2BA8868 F4124A7D 5A8EA256"

              "43141DA9 4042D1C7 170CB6B5 412F9178 84C5CA8D 6CD275F3",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "A13548D9 029814B7"

              "F142E991 5742B984 4EC5C386 E648CDA9 4BCDCE22 60E79C86"

              "C06B5597 81E8DFEB BB978C76 0D04DAB9 56E79E7E D0065638",

              /* rnd_val 2                 */    56,

              "A2B1DC82 42469DEC"

              "61E738D1 2B3685FA D4D640B4 1C0D4343 03E6A185 17CFF39A"

              "3C1FBF1B CBEF2B69 EB2C9A9D A76F5F49 D1BF3825 130A30D3",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "AE2E703E D178DC74"

              "31D2B9C3 09C52AE4 AE5742AF C119A0FB 8F500FDD 83F17226"

              "1AD9FA6D 6203E549 33B07E9C B635CEA8 3F1F80FB 7A7153A1",

              /* rnd_val 2                 */    56,

              "E3C91764 215E04D2"

              "9751C152 8D7CBBF8 4E7CC370 2ADA3A1F 79F87DBB 6043202F"

              "F7450A58 A73B95E3 2E4C0513 D0B6118A 677592EB ACC49FBE",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "3FE2AD85 24CE60E7"

              "C21C38A1 DAB02F3C 20501182 F389EE69 9F03FD87 79ED17C6"

              "5B87ACEE EBF1D146 E7EE106C EC8955EE AFC18ABB C562A566",

              /* rnd_val 2                 */    56,

              "8BB49B0B 9C2FC701"

              "89B24E02 73595458 CD780FBF A5F21612 2421B80B F773D736"

              "E6E11DEB B42477D6 9668D2F9 40C660F6 A2C1C9B4 179592E0",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "DE976A14 41A637C1"

              "B1B12E51 B6D08E77 4F6257D3 4A5D8415 D7334287 EE68606D"

              "6936A310 A079D934 1BC828B4 D1BB7A94 D0BCB9F9 BDD3C926",

              /* rnd_val 2                 */    56,

              "E8593358 63B8A94D"

              "3A2CD1CD 810939EC F9E41B82 74A95724 0324C575 7737A885"

              "78F0F807 1B1E5433 8CC81A72 6BC3836F 8941BF64 EC34B884",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "B390977A DEFACF7D"

              "3DF3C5B2 533FCC45 113DAEB1 9366DF1E 0A6EA52B 4D35B60C"

              "584D75A0 D8E6A31C 6941C885 A7B25EBB 61C220E0 2DDB0426",

              /* rnd_val 2                 */    56,

              "258437C9 CF68A286"

              "1F3BE81F 80AC7864 78B65211 3613F79C 6D21C020 B6CA5DFC"

              "35875873 10777745 B0B49B04 3EC0E4CD E1A31A57 C187E64D",

       },

       {/* 测试向量************************************************************/ 

              /* inf */ (char*)"NIST提供Hash DRBG SHA224测试向量", DRBG_HASH_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,

              "E41DCEFB B418588E"

              "7AB62A63 0D52A955 E55CE37A 79DB568B CFA10A57 CD89C490"

              "447D43A8 83CDF14C F6367FC1 9EA52A46 3A1FE2EB 7DF168F6",

              /* rnd_val 2                 */    56,

              "098BD7FB 3E7B0673"

              "F319E2ED A9240C9F 7A657200 C0F5482E BEE4EEC1 C6395339"

              "E48B0B7A 01456745 BE894FC1 8A98B252 258DAEC4 D878C086",

       },

};

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