Infineon Tricore TC2xx と新しい TC3xx シリーズのチップは、安全性とセキュリティが重要なアプリケーションで人気のあるチップです。 名前が示すように、これらのチップは、複数の CPU コアでリアルタイム コンピューティングの要求を満たしています。また、派生品として、動作周波数100MHz のARM Cortex M3 MPUと96KB RAMを備え HSM コアに組み込まれたものが以下の様なセキュア機能を提供できるようにラインアップされています:
1.セキュアブート
2.ファイアーウォール機能を備えたシェアードメモリブリッジ
3.認証を伴ったデバッグサポート
4.セキュアなデータ保管とログ機能
5.1KBの暗号化メモリ
6.コンフィグレーション可能なOTPとHSMの排他的フラッシュセクション
7.ハードウェア暗号化(AES, Hash, PKC, TRNG)
8.イモビライザー(盗難防止用)
9.フラッシュメモリへのセキュアなデータロード
wolfSSLは上記TriCore HSM にwolfCryptを移植しました。これにより、ハードウェア暗号化サポートを超えて HSM 機能が拡張され、HSM 環境に完全な wolfCrypt スイートが含まれるようになります。 また、次のような便利な機能や技術が追加されます:
機能面:
1.AES256-ECB/CBC/GCM
2.ECDSA-384
3.ECC
4.RSA (2048/3072/4096)
5.SHA-384/512
6.NIST Compliant DRBG (with HW TRNG seed)
7.CMAC/GMAC/HMAC
技術面:
・arm-none-eabi-gcc 12.2 toolchainを使ってのビルドとテスト
・TC3XX HSM モジュール上で”-O2″ 最適化で100MHzクロックで実行
・”スタックのみ使用”に加えて、”ヒープメモリのみ使用”の利用ケースで動作検証
・10msタイマーを使ってのベンチマーキング
ベンチマーク実行結果
Running wolfCrypt Benchmarks...
wolfCrypt Benchmark (block bytes 1024, min 1.0 sec each)
RNG 775 KB took 1.010 seconds, 767.327 KB/s
AES-128-CBC-enc 325 KB took 1.010 seconds, 321.782 KB/s
AES-128-CBC-dec 325 KB took 1.000 seconds, 325.000 KB/s
AES-192-CBC-enc 250 KB took 1.040 seconds, 240.385 KB/s
AES-192-CBC-dec 250 KB took 1.020 seconds, 245.098 KB/s
AES-256-CBC-enc 200 KB took 1.010 seconds, 198.020 KB/s
AES-256-CBC-dec 200 KB took 1.000 seconds, 200.000 KB/s
AES-128-GCM-enc 275 KB took 1.050 seconds, 261.905 KB/s
AES-128-GCM-dec 275 KB took 1.050 seconds, 261.905 KB/s
AES-192-GCM-enc 225 KB took 1.100 seconds, 204.545 KB/s
AES-192-GCM-dec 225 KB took 1.110 seconds, 202.703 KB/s
AES-256-GCM-enc 175 KB took 1.030 seconds, 169.903 KB/s
AES-256-GCM-dec 175 KB took 1.020 seconds, 171.569 KB/s
GMAC Table 4-bit 1 MB took 1.000 seconds, 1.288 MB/s
AES-128-ECB-enc 314 KB took 1.000 seconds, 313.672 KB/s
AES-128-ECB-dec 343 KB took 1.000 seconds, 342.578 KB/s
AES-192-ECB-enc 225 KB took 1.000 seconds, 225.000 KB/s
AES-192-ECB-dec 236 KB took 1.000 seconds, 235.938 KB/s
AES-256-ECB-enc 200 KB took 1.000 seconds, 199.609 KB/s
AES-256-ECB-dec 189 KB took 1.000 seconds, 189.453 KB/s
SHA 2 MB took 1.000 seconds, 1.953 MB/s
SHA-256 2 MB took 1.000 seconds, 2.051 MB/s
SHA-384 275 KB took 1.030 seconds, 266.990 KB/s
AES-128-CMAC 300 KB took 1.030 seconds, 291.262 KB/s
AES-256-CMAC 200 KB took 1.070 seconds, 186.916 KB/s
HMAC-SHA 2 MB took 1.000 seconds, 2.222 MB/s
HMAC-SHA256 2 MB took 1.000 seconds, 2.051 MB/s
HMAC-SHA384 275 KB took 1.040 seconds, 264.423 KB/s
・・・
Benchmark complete Benchmark Test: Return code 0