Ssl TLS 1.0-计算主密钥
RFC给出了公式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) +
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字节吗?如果我没记错的话,这是在多个地方使用的,因此所需的数据量取决于上下文。啊,是的。这就解释了。此外,此操作生成的数据量与最终派生的密钥的长度相似。可能是