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の参照プラットフォームとしてリトルエンディアンマシン(Intelプロセッサ)を指定しました。Skeinの最初のバージョンでは、最初の反復(1.0)でのエンディアンに関するバグのため、テストベクトルが正しくありませんでした。

于 2012-08-18T19:30:47.747 に答える