Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.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
C# 椭圆曲线Diffie-Hellman(ECDH)-SecretPrepend和SecretAppend的用途是什么?_C#_.net_Encryption_Cryptography_Diffie Hellman - Fatal编程技术网

C# 椭圆曲线Diffie-Hellman(ECDH)-SecretPrepend和SecretAppend的用途是什么?

C# 椭圆曲线Diffie-Hellman(ECDH)-SecretPrepend和SecretAppend的用途是什么?,c#,.net,encryption,cryptography,diffie-hellman,C#,.net,Encryption,Cryptography,Diffie Hellman,我只是在玩ecdiffiehellmancing,我想知道SecretAppend和SecretPrepend有什么用。谷歌没有这么大的帮助。有什么想法吗 仅生成一个秘密值通常不足以使用密钥协议生成密钥。虽然秘密应该包含足够的熵来满足对称密钥的要求,但它不可能均匀分布。因此,密钥协议至少在理论上应该包含一个基于密钥的密钥派生函数。现在,这些键派生函数具有用于派生特定键的可选参数。您指出的方法可用于提供这些附加参数 通常,对于新协议,最好不要使用这些属性。如果需要多个键,请对输出执行附加的基于键

我只是在玩
ecdiffiehellmancing
,我想知道
SecretAppend
SecretPrepend
有什么用。谷歌没有这么大的帮助。有什么想法吗


仅生成一个秘密值通常不足以使用密钥协议生成密钥。虽然秘密应该包含足够的熵来满足对称密钥的要求,但它不可能均匀分布。因此,密钥协议至少在理论上应该包含一个基于密钥的密钥派生函数。现在,这些键派生函数具有用于派生特定键的可选参数。您指出的方法可用于提供这些附加参数


通常,对于新协议,最好不要使用这些属性。如果需要多个键,请对输出执行附加的基于键的键派生函数(或使用SHA-512,并提取两个键)。其他实现可能根本不提供这些参数。如果现有协议需要这些属性,可能最好只使用它们。

所以这就像是密钥协议的盐,所以如果我使用ecdiffiehellmanng,我只能在SecretAppend和SecretPrepend中使用PBKDF2的512字节?在不损害安全性的情况下?如果我运行代码,则SecretAppend和SecretPrepend msut在两侧都是相同的。因此,它就像一个IV,可以以明文形式发送而不泄露信息?通常它应该包含您生成的密钥类型的标识符。这些参数本身通常不是秘密的(尽管它们可能是秘密的)。通常情况下,他们不会被发送,因为他们提前知道。例如,对于数据键,参数可能包括ASCII编码的
“DataKey\u 0”
。您可以查看NIST SP 800-108和132以获得更精确的信息。您是否仍然缺少此答案中的内容?是的,谢谢。但是我仍然不明白为什么会有一个append和prepend值。