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

目录

结构体定义

测试用基本量

drbg_hash_sha256测试数据


结构体定义

//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_sha256测试数据

typedef DRBGTV hash_drbg_sha256_tv;

hash_drbg_sha256_tv drbg_hash_sha256[] =

{

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, FALSE,

              /* EntropyInput                  */    &Entropy_055

              /* Entropy1 (Reseed1)  */    &Entropy1_055

              /* Entropy2 (Reseed2)  */    &Entropy2_055

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput 1    */    &Empty,

              /* AdditionalInput 2    */    &Empty,

              /* rnd_val 1                 */    64,

              "77E05A0E 7DC78AB5 D8934D5E 93E82C06"

              "A07C04CE E6C9C530 45EEB485 872777CF 3B3E35C4 74F976B8"

              "94BF301A 86FA651F 463970E8 9D4A0534 B2ECAD29 EC044E7E",

              /* rnd_val 2                 */    64,

              "5FF4BA49 3C40CFFF 3B01E472 C575668C"

              "CE3880B9 290B05BF EDE5EC96 ED5E9B28 98508B09 BC800EEE"

              "099A3C90 602ABD4B 1D4F343D 497C6055 C87BB956 D53BF351",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, FALSE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055

              /* Entropy2 (Reseed2)  */    &Entropy2_055

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Additional1_055,

              /* AdditionalInput2            */    &Additional2_055

              /* rnd_val 1                 */    64,

              "510724B9 3AE9A182 70E48473 711D8824"

              "631BAA7F 1D9AC928 4E7EC8F3 637F7A74 3B3644EB 96C98627"

              "C8FD405A 7A4603F3 8CFF7C89 E9C133F5 851F40E9 2030FEA2",

              /* rnd_val 2                 */    64,

              "6253DA3A AE8B88A3 B746E4C8 B2635C54"

              "0F6E9EA7 157EE69D D71EFB2E 8FF7BBE1 E3336888 38DD7DE4"

              "9CC88990 309C96CD B2AB9295 7436BF83 D1BD8308 19C748CA",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, FALSE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Personal_055,

              /* AdditionalInput1            */    &Empty

              /* AdditionalInput2            */    &Empty

              /* rnd_val 1                 */    64,

              "4A62664F 266EE537 B90D64B0 5E1D813D"

              "28B159A9 79F1509D DE31B71D A43D546E E8E78678 202DC237"

              "AD4AFE7D F310C9A4 13E38AAF 417D2D22 5AA365EC 4A7D2996",

              /* rnd_val 2                 */    64,

              "59583D3C 0AC37130 C4789A83 11B8CA8F"

              "985EF1E8 F94D954E 32E344A6 21C24B2F 371DA9BA 3C33153F"

              "09E55145 E762926B 73AC147A 1E8631D1 CCD08567 CF677C72",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, FALSE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Personal_055,

              /* AdditionalInput1            */    &Additional1_055

              /* AdditionalInput2            */    &Additional2_055,

              /* rnd_val 1                 */    64,

              "E0B97C82 1268FD3B B2CABFD1 F9548478"

              "AE8A6041 7F7B094A 26139546 062B521C FD33E4E3 9B9DCD0A"

              "3DA15209 C72ADBE5 8C20AB34 07026951 297AD254 307553A5",

              /* rnd_val 2                 */    64,

              "C1ACD3AD A4C8C495 BF179DB5 9822C351"

              "BC479ABE 4EB28F84 3957B11E 3C2BC048 83964297 975BD72D"

              "1024ABCF 6F6615D7 F5B4FD1E 40A64EEB 45BA2181 B83937ED",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, TRUE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Empty,

              /* AdditionalInput2            */    &Empty,

              /* rnd_val 1                 */    64,

              "92275523 C70E567B CF9B35EC 50B933F8"

              "12616DF5 86B7F72E E1BC7735 A5C26543 73CBBC72 316DFF84"

              "20A33BF0 2B97AC8D 1952583F 270ACD70 05CC027F 4CF1187E",

              /* rnd_val 2                 */    64,

              "681A46B2 AA8694A0 FE4DEEA7 20927A84"

              "EAAA985E 59C19F8B E0984D8C BEF8C69B 75416764 1946E040"

              "EE2043E1 CCB29DCF 063C0A50 830E428E 6DCA262E CD77C542",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, TRUE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Additional1_055,

              /* AdditionalInput2            */    &Additional2_055,

              /* rnd_val 1                 */    64,

              "11601B72 CA608973 6B204744 B29DA1AA"

              "AFBACAA5 288F06BE 484569CC EDBECE03 E822EAA5 B14F0E04"

              "948C05CD 3CC2E288 9A89FA03 D65D4D74 AC50FF6B D856E579",

              /* rnd_val 2                 */    64,

              "055BC128 CC2D0E25 0F47E4E4 F582375D"

              "E3EE5E9F E8316874 97E5AF1E 7CB69EFD EBD2FD31 C7CE2BBA"

              "0DBC6C74 C8A20A7D 72F60E6D 9F63ED50 9E963E54 A69E9048",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, TRUE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Personal_055,

              /* AdditionalInput1            */    &Empty,

              /* AdditionalInput2            */    &Empty,

              /* rnd_val 1                 */    64,

              "7A33D390 33F86058 9F375E73 35307552"

              "9658BBED 99C8A0EF 5E28B351 B2DF3358 B3D89BAC 7225DF9E"

              "3BCD0836 B99B5DBF 363A170C 7BB9BE41 A4AA9744 5ECEE41E",

              /* rnd_val 2                 */    64,

              "041ABD94 079A0571 885F1665 944E0E7F"

              "1BFACDEA EAE9D44E EDC11FAD D84C34C7 CAA73D09 A0193193"

              "FA40A19F 644F048D 2A541704 2553DF52 51741B40 EACFEB98",

       },

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

              /* inf */ (char*)"NIST提供Hash DRBG SHA256测试向量", DRBG_HASH_SHA256, TRUE,

              /* EntropyInput                  */    &Entropy_055,

              /* Entropy1 (Reseed1)  */    &Entropy1_055,

              /* Entropy2 (Reseed2)  */    &Entropy2_055,

              /* Nonce                      */    &Nonce08,

              /* PersonalizationString*/   &Personal_055,

              /* AdditionalInput1            */    &Additional1_055,

              /* AdditionalInput2            */    &Additional2_055,

              /* rnd_val 1                 */    64,

              "88973297 5B36E8E2 E7B74050 AEA17139"

              "DA2B8634 DCE2133B 0634743F 477557AB 7B844ED3 F2A46CC6"

              "3EB23286 464C51D5 D76971C4 7BC5B55F ED72A804 3CBF664F",

              /* rnd_val 2                 */    64,

              "BF49B889 BA984D34 6387E864 7E98BB99"

              "CD41A32F BEC1FCB3 B6A1B7D9 932BA7E1 1EE6BBD9 24405A2C"

              "7FCA890A 5E9A8DEA 66AC0CAC A0CA7BC1 8D74FBC0 2A11E453",

       }, 

};

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