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

目录

结构体定义

测试用基本量

drbg_hash_sha384测试数据


结构体定义

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

typedef DRBGTV hash_drbg_sha384_tv;

hash_drbg_sha384_tv drbg_hash_sha384[] =

{

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

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

              /* EntropyInput                  */    &Entropy_111

              /* Entropy1 (Reseed1)  */    &Entropy1_111

              /* Entropy2 (Reseed2)  */    &Entropy2_111

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput 1    */    &Empty,

              /* AdditionalInput 2    */    &Empty,

              /* rnd_val 1                 */    96,

              "04FF23AD 15E78790 ADD36B43 8BBC097C 7A11747C C2CCEEDE"

              "2C978B23 B3DC63B7 32C95306 1D776499 0ABFEFC4 7A581B92"

              "1BC0428C 4F122124 60E406A0 F0651E7F 0CB9A90A BFDB07B5"

              "25565C74 F0AA0850 82F6CF21 3AAFAD0C 06468950 78F1E1FE",

              /* rnd_val 2                 */    96,

              "4F35B85F 95DEE3E8 73054905 CFD02341 653E18F5 29930CBE"

              "14D909F3 7FEAF2C7 90D22FAE 7516B459 0BE35D53 E2FE1A35"

              "AFE4B660 7CB35858 9C3B4D09 4A1D81FE 0717F1DF 5BDDEB3E"

              "114F130B B781E66C 22B5B770 E8AE115F F39F8ADA F66DEEDF",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111

              /* Entropy2 (Reseed2)  */    &Entropy2_111

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Additional1_111,

              /* AdditionalInput2            */    &Additional2_111

              /* rnd_val 1                 */    96,

              "03D1294E 33F12491 597CF23D B8DF118F 9AD2BA71 D84B3C67"

              "60A43C58 39A3F449 ADE2B0F3 E02A13D2 2E1119C7 B95C207E"

              "0844A8BF E837C229 0BE251C8 DCC4D8CC 04B1CEF6 B42931CB"

              "54248C52 975CB5F7 5E2867B5 4C139B4C 0072E6EC 8A4EA49B",

              /* rnd_val 2                 */    96,

              "D5398518 F8087E2F 155B3C56 47AF609C 8820D5F5 4B787490"

              "2934FB10 97C89440 A47A71E3 6A9A32A2 242F3799 66CD3F5D"

              "BBEF623B D6117BDE 441D2A94 815FD5C1 3638DE99 D50CFE0E"

              "390A2A6B 137B55A4 2452F182 8060DB3C 68AF5C86 A83AF833",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Personal_111,

              /* AdditionalInput1            */    &Empty

              /* AdditionalInput2            */    &Empty

              /* rnd_val 1                 */    96,

              "CB339E74 95C3645C 5961FF07 871F47ED F9D33B0A B471282F"

              "0E8FADD0 74661AEE 4D4F47C1 E39CE4FF 381A8BC4 DE0AA260"

              "ABD20471 17E89ED4 70829892 FC806CA1 33FC8435 340BE2EC"

              "8278AFC5 DF48595D 1D205F7F 835E2549 B9068A85 16FB1496",

              /* rnd_val 2                 */    96,

              "938BAB9C 357B9023 92AEFA66 8DFDB88C 9C671FC0 220ED319"

              "7F852B3B 9C27AD33 D99403E6 56510F77 E964130B 284759A0"

              "EB42F933 E6B2D170 99744089 402ED23B C8C0CAD5 9BA485A9"

              "04B5456E 4EFEFC22 9415778F 50957FDD B559C053 FB97CE79",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Personal_111,

              /* AdditionalInput1            */    &Additional1_111

              /* AdditionalInput2            */    &Additional2_111,

              /* rnd_val 1                 */    96,

              "5C0EDEEE 4E8060FE D022020C 83882E71 61F16100 9CCBC827"

              "E557091D 3FA172D8 E6EDFFB1 B4315D94 2448C8C5 42314E5C"

              "F64BF9EE 10033D70 6BE38685 D3CA639A 14D54D3F 2877472E"

              "90794E29 BCD6E5EC A890E217 C7CA56A0 58113C6C 6483E455",

              /* rnd_val 2                 */    96,

              "C80CAED7 81EF9B2A 31E2138F C4461243 6D992B6B EDFBBC82"

              "EEA943ED 49209F36 E0AE25F4 ED5FBA96 BE0357F1 64964D32"

              "267F5736 6C89A1B0 CFE86D02 5CA1E21D 14F0B4C0 998DADF4"

              "684BFB21 18F82241 3D87693C B99AC0B5 9D5E0494 BF74293B",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Empty,

              /* AdditionalInput2            */    &Empty,

              /* rnd_val 1                 */    96,

              "97993B78 F7C31C0E 876DC92E B7D6C408 E09D608A D6B99D0E"

              "A2229B05 A578C426 334FCC8A 1C7E676E D2D89A5B 4CDF5B3F"

              "4ADF1193 6BF14F4E 10909DBA 9C24F4FD FFDE7235 1DA8E2CC"

              "3B135A39 5373899E 5F1A5955 B880CA9B 9E9DD4C9 CA7FA4D4",

              /* rnd_val 2                 */    96,

              "F5983946 320E36C6 4EF283CA 1F65D197 CF81624E C6778E77"

              "0E78949D 84EF21A4 5CDD62D1 DB76920D 4C2836FC 6AE5299F"

              "AF1357D9 701FAD10 FBD88D1E 28322394 36D76EB2 71BDC3CA"

              "04425EC8 8BC0E89A 4D5C37FF CE7C6C3A BDE9C413 AE6D3FEA",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Empty,

              /* AdditionalInput1            */    &Additional1_111,

              /* AdditionalInput2            */    &Additional2_111,

              /* rnd_val 1                 */    96,

              "1D332DE2 79BD8828 3A8FB9E9 C595227C 870F77D1 80FC743F"

              "758FEEC7 CD372472 26A35B6E BC073529 AED940B3 4829143E"

              "587E175A D24D3D41 6C57F1C6 90D82C69 DB4C96AC 04ADAD2F"

              "8BA5A651 B1D7476A 4ED3B683 324685AB 8DB9F811 F79B1BA7",

              /* rnd_val 2                 */    96,

              "4B7FF453 EB17F58C 49041450 8ABCCA50 E760FB71 13308E29"

              "F4E8A9B7 A67AC594 2ADBB6AC 445077EB B8D47B8C 92A7161B"

              "E9020087 F87DAAD6 7E8F0BEE B5E53BCD 806243C8 E6362CB3"

              "5BACE034 00B5CDC9 5EFF9DE4 135A398F F50FC0F5 903B8073",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Personal_111,

              /* AdditionalInput1            */    &Empty,

              /* AdditionalInput2            */    &Empty,

              /* rnd_val 1                 */    96,

              "8D77F997 4D6EFCAF 503E24DB 4BC0E0F8 1E5E4931 60D3FFF8"

              "02F5AE66 4088B9C7 8381E88C CB992BF6 BCD72CDC 85CBDFCB"

              "D7A34759 D30CBB66 A97768F7 84654B25 98CF3814 8EEF1421"

              "0F2DC1A7 7479CE26 548BF86F B86AC16D 00064255 1F2BF597",

              /* rnd_val 2                 */    96,

              "82393433 28419150 D8FAC3F7 943AFD48 5EE0F857 4E7A7EDD"

              "730B7D03 92DFB8A5 D933AF34 0677BBA0 24BE0983 4D86442E"

              "CCAAAA83 6BF42EC2 3A1A86B7 2A645474 81EE7644 2297D058"

              "8BFC4356 7F09029B 41EE880C 1A5D60C9 ED4E843B 46958E04",

       },

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

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

              /* EntropyInput                  */    &Entropy_111,

              /* Entropy1 (Reseed1)  */    &Entropy1_111,

              /* Entropy2 (Reseed2)  */    &Entropy2_111,

              /* Nonce                      */    &Nonce12,

              /* PersonalizationString*/   &Personal_111,

              /* AdditionalInput1            */    &Additional1_111,

              /* AdditionalInput2            */    &Additional2_111,

              /* rnd_val 1                 */    96,

              "9CEE8FCB 915311B3 70DD3599 14067376 F24D8568 000895E2"

              "B56CD255 3E468D26 B9171B62 21910E90 A290F051 1A6F7486"

              "E19F8EF6 44BFF873 2E1F022F 7CE483A8 E538E7B8 A979C647"

              "63128B4A 54B0D7E3 9ADCD785 FC94469B 2C02726A 55122901",

              /* rnd_val 2                 */    96,

              "476727C7 96489765 62C987DA 997128A7 5CD23971 265F89E6"

              "65448938 1A619DE0 AB3E707E 2A071A47 FD5D5B09 2711A6E4"

              "69E20CEE 2F5A18DE E45988E5 A02EA991 40DB6EB6 F74B703D"

              "1D56C025 08AF1E8E 6033B480 26CED342 C0A0FF4C 00DE1DE5",

       }, 

};


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