确定性随机数发生器测试向量——DRBG-HASH-SHA1
目录
结构体定义
//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_sha1测试数据
typedef DRBGTV hash_drbg_sha1_tv;
hash_drbg_sha1_tv drbg_hash_sha1[] =
{
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, FALSE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Empty,
/* AdditionalInput 1 */ &Empty,
/* AdditionalInput 2 */ &Empty,
/* rnd_val 1 */ 40,
"9F7CFF1E CA23E750 F6632696 9F11800F"
"12088BA6 8E441D15 D888B3FE 12BF66FE 057494F4 546DE2F1",
/* rnd_val 2 */ 40,
"B77AA5C0 CD55BBCE ED7574AF 223AFD98"
"8C7EEC8E FF4A94E5 E89D26A0 4F58FA79 F5E0D370 2D7A9A6A",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, FALSE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Empty,
/* AdditionalInput1 */ &Additional1_055,
/* AdditionalInput2 */ &Additional2_055,
/* rnd_val 1 */ 40,
"E76B4EDD 5C865BC8 AFD809A5 9B69B429"
"AC7F4352 A579BCF3 F75E5624 9A3491F8 7C3CA684 8B0FAB25",
/* rnd_val 2 */ 40,
"6577B6B4 F87A9324 0B199FE5 1A3B3353"
"13683103 DECE171E 3256FB7E 803586CA 4E45DD24 2EB01F70",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, FALSE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Personal_055,
/* AdditionalInput1 */ &Empty,
/* AdditionalInput2 */ &Empty,
/* rnd_val 1 */ 40,
"AB438BD3 B01A0AF8 5CFEE29F 7D7B7162"
"1C4908B9 09124D43 0E7B406F B1086EA9 94C582E0 D656D989",
/* rnd_val 2 */ 40,
"29D9098F 987E7005 314A0F51 B3DD2B81"
"22F4AED7 06735DE6 AD5DDBF2 23177C1E 5F3AEBC5 2FAB90B9",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, FALSE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Personal_055,
/* AdditionalInput1 */ &Additional1_055,
/* AdditionalInput2 */ &Additional2_055,
/* rnd_val 1 */ 40,
"F1BC207E EB432886 094421F3 A63493FA"
"666DC2C4 2AC598CA 0986F692 9FE367F8 0311CA5A B9880D80",
/* rnd_val 2 */ 40,
"CEF3D601 F2744E37 16A9D04F 9AA8481A"
"98D74518 D223014F EF8C8456 2708F833 A99817DD 62B7C90B",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, TRUE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Empty,
/* AdditionalInput1 */ &Empty,
/* AdditionalInput2 */ &Empty,
/* rnd_val 1 */ 40,
"56EF4913 373994D5 539F4D7D 17AFE744"
"8CDF5E72 416CC6A7 1A340059 FA0D5AE5 26B23250 C46C0944",
/* rnd_val 2 */ 40,
"575B37A2 739814F9 66C63B60 A2C4F149"
"CA9ACC84 FC4B2549 3289B085 C67B2E30 F5F0B99A 2C349E2A",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, TRUE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Empty,
/* AdditionalInput1 */ &Additional1_055,
/* AdditionalInput2 */ &Additional2_055,
/* rnd_val 1 */ 40,
"183C242A 1430E46C 4ED70B4D BE1BF9AB"
"0AB8721C DCA2A2D1 820AD6F6 C9568585 43B2AA19 1D8D1287",
/* rnd_val 2 */ 40,
"F196F9BD 021C745C BD5AC7BF CE48EAAF"
"0D0E7C09 1FBF4369 40E63A19 8EE770D9 A4F07186 69AF2BC9",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, TRUE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Personal_055,
/* AdditionalInput1 */ &Empty,
/* AdditionalInput2 */ &Empty,
/* rnd_val 1 */ 40,
"532CA116 5DCFF21C 55592687 639884AF"
"4BC4B057 DF8F41DE 653AB44E 2ADEC7C9 303E75AB E277EDBF",
/* rnd_val 2 */ 40,
"73C2C67C 696D686D 0C4DBCEB 5C2AF7DD"
"F6F020B6 874FAE43 90F10211 7ECAAFF5 4418529A 367005A0",
},
{/* 测试向量************************************************************/
/* inf */ (char*)"NIST提供Hash DRBG SHA1测试向量", DRBG_HASH_SHA1, TRUE,
/* EntropyInput */ &Entropy_055,
/* Entropy1 (Reseed1) */ &Entropy1_055,
/* Entropy2 (Reseed2) */ &Entropy2_055,
/* Nonce */ &Nonce05,
/* PersonalizationString*/ &Personal_055,
/* AdditionalInput1 */ &Additional1_055,
/* AdditionalInput2 */ &Additional2_055,
/* rnd_val 1 */ 40,
"2F76CE3D 13BE866F EB390DB5 7591CD12"
"09E4FE0F 90794C97 218A6482 5D8E4097 CB15D30E D958BC18",
/* rnd_val 2 */ 40,
"79CE5A7D 09EBB2FF 600EDB53 1C8A212F"
"F3EA267C 1C5487E5 83592A0A BFEAFC4E 13045EA9 3666DB85",
},
};

浙公网安备 33010602011771号