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 可以根据需要迭代多次以产生所需的数据量”令人困惑。到底需要多少次?是否有一个阈值,之后它多少无关紧要?如果有,这个门槛是多少?