Xilinx/AMD Ultrascale+デバイスでwolfSSLを使用する場合、暗号処理に際し次の3つのビルドオプションがあります。
- ソフトウェアのみの実装を使用
- カスタムARMアセンブリと共に、ARMv8暗号拡張を利用
小さなブロックサイズであっても非常に高いパフォーマンスを実現できます。
PAA(Processor Algorithm Acceleration)の使用によりFIPS OEを取得できます。 - 処理の一部をCSUにオフロード (以後、Hardenedと表記)
他の処理のためにCPUを解放し、サイドチャネル攻撃の1種であるDPA(差分電力解析)に対する追加保護など、いくつかの機能を強化します。
それぞれにトレードオフがあります。
最近、wolfSSLはAES-GCM操作で使用するためのARMv8最適化を改善しました。
以下に、それぞれの手法を適用した際のスループットを示します。

ARMv8・ソフトウェア実装はPetalinuxにてwolfSSL 5.8.2を使用して取得、Hardened環境における数値は以前にFreeRTOSを使用して取得したものです。VMK180 Versalボードを使用しました。
描画に使用した値は、本稿末尾に掲載しています。
また、RSA 4096ビット鍵を使用した場合のパフォーマンスの違いは次のとおりです。

SP: Single Precision
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
以下、1つ目のグラフで使用した実測値です。
| アルゴリズム | Hardened – MB/s | ブロックサイズ – B |
| AES-256-GCM-enc-no_AAD | 0.19188 | 16 |
| AES-256-GCM-enc-no_AAD | 6.324667 | 528 |
| AES-256-GCM-enc-no_AAD | 12.254902 | 1024 |
| AES-256-GCM-enc-no_AAD | 49.01886 | 4112 |
| AES-256-GCM-enc-no_AAD | 89.60888 | 7696 |
| AES-256-GCM-enc-no_AAD | 181.00591 | 15888 |
| AES-256-GCM-enc-no_AAD | 350.444225 | 32768 |
| AES-256-GCM-enc-no_AAD | 633.100698 | 65535 |
| アルゴリズム | Software – MB/s | ブロックサイズ – B |
| AES-256-GCM-enc-no_AAD | 15.0984 | 16 |
| AES-256-GCM-enc-no_AAD | 31.0764 | 528 |
| AES-256-GCM-enc-no_AAD | 31.5839 | 1024 |
| AES-256-GCM-enc-no_AAD | 32.0214 | 4112 |
| AES-256-GCM-enc-no_AAD | 32.0883 | 7696 |
| AES-256-GCM-enc-no_AAD | 32.1052 | 15888 |
| AES-256-GCM-enc-no_AAD | 32.1038 | 32768 |
| AES-256-GCM-enc-no_AAD | 32.1293 | 65535 |
| アルゴリズム | ARMv8 – MB/s | ブロックサイズ – B |
| AES-256-GCM-enc-no_AAD | 120.862503 | 16 |
| AES-256-GCM-enc-no_AAD | 633.607939 | 528 |
| AES-256-GCM-enc-no_AAD | 715.517677 | 1024 |
| AES-256-GCM-enc-no_AAD | 776.28316 | 4112 |
| AES-256-GCM-enc-no_AAD | 783.198307 | 7696 |
| AES-256-GCM-enc-no_AAD | 793.405041 | 15888 |
| AES-256-GCM-enc-no_AAD | 793.122663 | 32768 |
| AES-256-GCM-enc-no_AAD | 797.332681 | 65535 |
原文:https://www.wolfssl.com/updated-xilinx-amd-versal-benchmarks
