Xilinx/AMD Versalベンチマークを更新しました

Xilinx/AMD Ultrascale+デバイスでwolfSSLを使用する場合、暗号処理に際し次の3つのビルドオプションがあります。

  1. ソフトウェアのみの実装を使用
  2. カスタムARMアセンブリと共に、ARMv8暗号拡張を利用
    小さなブロックサイズであっても非常に高いパフォーマンスを実現できます。
    PAA(Processor Algorithm Acceleration)の使用によりFIPS OEを取得できます。
  3. 処理の一部を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_AAD0.1918816
AES-256-GCM-enc-no_AAD6.324667528
AES-256-GCM-enc-no_AAD12.2549021024
AES-256-GCM-enc-no_AAD49.018864112
AES-256-GCM-enc-no_AAD89.608887696
AES-256-GCM-enc-no_AAD181.0059115888
AES-256-GCM-enc-no_AAD350.44422532768
AES-256-GCM-enc-no_AAD633.10069865535
アルゴリズムSoftware – MB/sブロックサイズ – B
AES-256-GCM-enc-no_AAD15.098416
AES-256-GCM-enc-no_AAD31.0764528
AES-256-GCM-enc-no_AAD31.58391024
AES-256-GCM-enc-no_AAD32.02144112
AES-256-GCM-enc-no_AAD32.08837696
AES-256-GCM-enc-no_AAD32.105215888
AES-256-GCM-enc-no_AAD32.103832768
AES-256-GCM-enc-no_AAD32.129365535
アルゴリズムARMv8 – MB/sブロックサイズ – B
AES-256-GCM-enc-no_AAD120.86250316
AES-256-GCM-enc-no_AAD633.607939528
AES-256-GCM-enc-no_AAD715.5176771024
AES-256-GCM-enc-no_AAD776.283164112
AES-256-GCM-enc-no_AAD783.1983077696
AES-256-GCM-enc-no_AAD793.40504115888
AES-256-GCM-enc-no_AAD793.12266332768
AES-256-GCM-enc-no_AAD797.33268165535

原文:https://www.wolfssl.com/updated-xilinx-amd-versal-benchmarks