我正在传输AES消息。我的理解是:1。AES算法将消息视为按字节顺序并且是字节序中立的。 2.就发送和接收而言,初始化向量是字节序中立的。
我也在为消息计算HMAC-SHA384代码。从我的阅读中听起来好像HMAC-SHA384 需要字节交换,如果传输字节序(在我的情况下是big-endian)与机器字节序不匹配。交换应该从字节0和47,1和46发生,等等?谁能比我更确切地知道或反驳这个主题?
我目前正在使用.NET HMACSHA384类,但另一方面我将编写C ++代码,但还不知道哪个库将提供HMAC代码。
答案 0 :(得分:0)
leppie是对的,两者都作为字节数组发送。您可以非常确定接收到的字节数组符合NIST规范和测试向量。所以在这种情况下你不应该过分担心字节顺序。
如果有人需要担心,那么它就是哈希函数的实现者。例如。不幸的是,NIST指定了一个小端机(英特尔处理器)作为SHA-3的参考平台。由于第一次迭代(1.0)中有关字节序的错误,Skein的第一个版本的测试向量不正确。