Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl TLS 1.0-计算主密钥_Ssl_Hmac_Handshake_Hmacsha1 - Fatal编程技术网

Ssl TLS 1.0-计算主密钥

Ssl TLS 1.0-计算主密钥,ssl,hmac,handshake,hmacsha1,Ssl,Hmac,Handshake,Hmacsha1,RFC给出了公式 PRF(secret, label, seed) = P_MD5(S1, label + seed) XOR P_SHA-1(S2, label + seed); 为此,p_散列依次具有以下公式: P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) + HMAC_hash(secret, A(2) + seed) +

RFC给出了公式

PRF(secret, label, seed) = P_MD5(S1, label + seed) XOR
                          P_SHA-1(S2, label + seed);
为此,p_散列依次具有以下公式:

P_hash(secret, seed) = HMAC_hash(secret, A(1) + seed) +
                          HMAC_hash(secret, A(2) + seed) +
                          HMAC_hash(secret, A(3) + seed) + ...
RFC还说

p_散列可以根据需要多次迭代以生成 所需的数据量。例如,如果P_SHA-1用于 如果创建64字节的数据,则必须迭代4次 通过A4,创建80字节的输出数据;最后16个字节 最后一次迭代的结果将被丢弃,留下64字节的 输出数据


我发现p_散列可以被迭代任意多次,以产生所需数量的数据。到底需要多少次?是否有一个阈值,超过这个阈值不管它是多少?如果是这样的话,这个阈值是多少?

我很确定在TLS 1.0中,premaster secret和master secret始终是48字节长,但是当您创建更深入的密钥块时,它可能会超过48字节。i、 e.如果您的密码使用sha1和aes256,您将需要136个字节。

“生成所需数据量所需的次数”对我来说似乎非常清楚。然而,我不会用“迭代”这个词。真正发生的事情是使用了尽可能多的表达式项。那个么需要多少数据呢?我已经搜索了RFC,但它没有提到数据量。由于主密钥总是48字节长,可能是48字节吗?如果我没记错的话,这是在多个地方使用的,因此所需的数据量取决于上下文。啊,是的。这就解释了。此外,此操作生成的数据量与最终派生的密钥的长度相似。可能是