1

RFC给出了公式

PRF(secret, label, seed) = P_MD5(S1, label + seed) XOR
                          P_SHA-1(S2, label + seed);

为此,P_hash 又具有以下公式:

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

RFC 还说

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

我发现“P_hash 可以根据需要迭代多次以产生所需的数据量”令人困惑。到底需要多少次?是否有一个阈值,之后它多少无关紧要?如果有,这个门槛是多少?

4

1 回答 1

0

我很确定在 TLS 1.0 中,premaster secret 和 master secret 的长度总是 48 字节,但是当您进一步创建密钥块时,它可能会超过 48 字节。即,如果您的密码使用 sha1 和 aes256,您将需要 136 个字节。

于 2015-09-03T13:32:05.007 回答