質問: Arduinoでシンプルで高速なHMACを実装する方法 こんにちは私は、制御エリアネットワーク(CAN)の通信を確保するために働いている研究学生です。私はこれらのCANの1つをシミュレートするためにArduinosを使用しています。 私の目標は、HMACを使用してパケットのメッセージ認証を実装することです。アルゴリズムは**非常に高速でなければなりません(元々はFNV1aの使用を考えていました)。しかし、このためのArduinoライブラリはありません(私はそれを見つけましたが、SHAを使用していますが、これはおそらくCANにとっては遅すぎる可能性があります)。私は*たくさんの*暗号とハッシュアルゴリズムの練習をしているわけではなく、それらの使い方しかありません。** **だから基本的に、私はC言語でFNVやFNV1a関数を書くのに助けが必要です。入力のためのメッセージは文字列(char配列)と連結されたキーです(明らかに)。また、十分なセキュリティを確保するために、ハッシュ値を128〜256ビットにする必要があります。 副作用として:CANメッセージ/パケットは **7df#02010d** のように見え、実際のデータ部分は **010d** (2バイト)です。たとえば、整数として、 **010d** の配列は{1,13}になります。 - 私はこのメッセージがArduinoよりも暗号にもっと適用されることも知っていますが、私はこのコミュニティの誰かが私の特定のタスクに関するより多くの経験を持っているかもしれないと思っています。 - ありがとう --- *EDIT:* I found this FNV1a implementation in C/C++ that might work. But I have not tested it yet.**
回答: I ended finding a Arduino library called **Spritz** which can be found here: Also, for anyone else who comes across this task, here is a *very simple* Hashed Message Authentication Code (HMAC) example I scrapped together: このライブラリは暗号化もサポートしていますが、私の場合は必要ありません。 --EDIT-- The SpritzCipher library was actually too slow (about a 50% reduction in network speed) so I must try a different approach. I have found a MD5 library for Arduino which I will try next: