2

我正在传输 AES 消息。我的理解是: 1. AES 算法将消息视为字节,并且是字节中立的。2. 就传输和接收而言,初始化向量是端中立的。

我还在计算消息的 HMAC-SHA384 代码。从我的阅读来看,如果传输字节序(在我的情况下为大字节序)与机器字节序不匹配,HMAC-SHA384似乎确实需要字节交换。交换应该从字节 0 和 47、1 和 46 开始,等等?请问有谁比我更了解这个主题吗?

我目前正在使用 .NET HMACSHA384 类,但在另一端我将编写 C++ 代码并且还不知道哪个库将提供 HMAC 代码。

4

1 回答 1

0

leppie 是对的,两者都是作为字节数组发送的。您可以非常确定接收到的字节数组将符合 NIST 规范和测试向量。所以在这种情况下你不应该过分担心字节顺序。

如果有人需要担心,那就是哈希函数的实现者。例如,NIST 不幸地指定了一个小端机器(英特尔处理器)作为 SHA-3 的参考平台。由于第一次迭代 (1.0) 中存在关于字节序的错误,Skein 的第一个版本具有不正确的测试向量。

于 2012-08-18T19:30:47.747 回答