wolfSSL組み込みSSLライブラリは、STM32F7が提供するハードウェアベースの暗号化と乱数生成をサポートするようになりました。 サポートされる暗号化アルゴリズムには、AES(CBC、CTR)、DES(ECB、CBC)、3DES、MD5、およびSHA1が含まれます。 STM32F7暗号およびハッシュ・プロセッサーの詳細については、STM32F7ハードウェア・アブストラクション・レイヤー(HAL)および低レイヤー・ドライバー・ドキュメント(以下にリンクされています)を参照してください。
wolfSSLでSTM32F7は、ハードウェア暗号を組み合わせて使用とwolfSSLのソフトウェア暗号のみの実装より速度が大幅に向上します。 次のベンチマークは、STM32F777NIボード(STM32F7)で動作するwolfCryptベンチマーク・アプリケーション(wolfcrypt / benchmark / benchmark.c)から、ベアメタル(OSなし)のSTM32F7 HALを使用して収集しました。
wolfSSLソフトウェア暗号、通常の整数ライブラリー
RNG 3 MB took 1.000 seconds, 3.149 MB/s
AES-Enc 6 MB took 1.000 seconds, 6.494 MB/s
AES-Dec 7 MB took 1.000 seconds, 6.519 MB/s
AES-GCM-Enc 3 MB took 1.004 seconds, 2.553 MB/s
AES-GCM-Dec 3 MB took 1.004 seconds, 2.553 MB/s
AES-CTR 7 MB took 1.000 seconds, 6.543 MB/s
CHACHA 16 MB took 1.000 seconds, 15.723 MB/s
CHA-POLY 10 MB took 1.000 seconds, 10.474 MB/s
3DES 1 MB took 1.008 seconds, 1.405 MB/s
MD5 24 MB took 1.000 seconds, 24.243 MB/s
POLY1305 42 MB took 1.000 seconds, 41.821 MB/s
SHA 14 MB took 1.000 seconds, 14.380 MB/s
SHA-224 8 MB took 1.000 seconds, 8.423 MB/s
SHA-256 8 MB took 1.000 seconds, 8.423 MB/s
SHA-384 2 MB took 1.000 seconds, 2.319 MB/s
SHA-512 2 MB took 1.000 seconds, 2.319 MB/s
STM32F7 ハードウェア暗号化, 標準整数ライブラリー
RNG 6 MB took 1.000 seconds, 6.030 MB/s
AES-Enc 30 MB took 1.000 seconds, 30.396 MB/s
AES-Dec 30 MB took 1.000 seconds, 30.371 MB/s
AES-GCM-Enc 42 MB took 1.000 seconds, 42.261 MB/s
AES-GCM-Dec 33 MB took 1.000 seconds, 32.861 MB/s
AES-CTR 48 MB took 1.000 seconds, 47.827 MB/s
CHACHA 16 MB took 1.000 seconds, 15.747 MB/s
CHA-POLY 11 MB took 1.000 seconds, 10.522 MB/s
3DES 13 MB took 1.000 seconds, 12.988 MB/s
MD5 41 MB took 1.000 seconds, 40.894 MB/s
POLY1305 42 MB took 1.000 seconds, 41.846 MB/s
SHA 38 MB took 1.004 seconds, 38.202 MB/s
SHA-224 41 MB took 1.000 seconds, 41.309 MB/s
SHA-256 39 MB took 1.000 seconds, 39.111 MB/s
SHA-384 2 MB took 1.004 seconds, 2.310 MB/s
SHA-512 2 MB took 1.004 seconds, 2.310 MB/s
上記のベンチマーク(およびグラフ)に示されているように、STM32F7のハードウェアベースのアルゴリズムは、ソフトウェアのみのアルゴリズムよりもはるかに高速です。
STM32F7ハードウェア暗号化とRNGサポートを有効にするには、wolfSSLをビルドするときにWOLFSSL_STM32F7を定義します。 必要な定義の完全なリストについては、<wolfssl_root> /wolfssl/wolfcrypt/settings.hのWOLFSSL_STM32F7定義を参照してください。 GitHubでは最新のバージョンのwolfSSLも参照できます:https://github.com/wolfssl/wolfssl
STM32F7ハードウェアベースの暗号化またはRNGでwolfSSLを使用する場合、または質問がある場合は、弊社問い合わせ窓口 (info@wolfssl.com, info@wolfssl.jp: 日本語)までお問い合わせください。
STM32: http://www.st.com/internet/mcu/class/1734.jsp
STM32F7 HAL と Low-layerドライバーのドキュメント: http://www.st.com/content/ccc/resource/technical/document/user_manual/45/27/9c/32/76/57/48/b9/DM00189702.pdf/files/DM00189702.pdf/jcr:content/translations/en.DM00189702.pdf
原文: https://wolfssl.com/wolfSSL/Blog/Entries/2017/9/12_wolfSSL_STM32F7_Support.html
wolfSSLホーム:www.wolfssl.jp (English:www.wolfssl.com)