zynq ultrascale+mpsoc 暗号化処理を高速化 - xilinxwp512 (v1.0) 2019 年 5 月 21 日...

12
WP512 (v1.0) 2019 5 21 japan .xilinx.com 1 © Copyright 2017-2019 Xilinx, Inc. XilinxXilinx のロゴ、 ArtixISEKintexSpartanVirtexVivadoZynq、 およびこの文書に含まれるその他の指定されたブラン ドは、 米国およびその他各国のザイ リ ン クス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属し ます。 この資料は表記のバージ ョ ンの英語版を翻訳したもので、 内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。 Zynq® UltraScale+™ MPSoC が内蔵する暗号化アクセラレータを使用 す る こ と で、 ソ フ ト ウ ェ アベー ス の ソ リ ュ ーシ ョ ン と 比べて暗号化 処理能力を 10,000% 以上向上 さ せ る こ と が可能です。 ホワイ ト ペーパー : Zynq UltraScale+ MPSoC WP512 (v1.0) 2019 5 21 Zynq UltraScale+ MPSoC 暗号化処理を高速化 概要 Zynq UltraScale+ MPSoC には、 AES-GCM-256 ビット、 SHA-3/384、 および RSA 用の組み込 み型暗号化 コ ア [参照 1] ArmCortex®-A53 プロセッサの Arm® v8 暗号化拡張機能 [参照 2] があるため、 暗号化性能を高速化できます。 内蔵する暗号化アクセラレータの性能について、 こ こでは RTOS ( リアルタイム オペレー ティング システム) 上および Linux 上のユーザー空間 と い う 2 つのソフトウェア アーキテ クチャを条件に説明しています。 各シナリオでは、 暗号化アクセラレータの性能をソフ ト ウェアベースの暗号化ソ リ ューシ ョ ン と比較しています。 これらの性能測定値に基づい て、 システム設計者は要件に応じて暗号化の性能を最大限に引き出すこ とができます。

Upload: others

Post on 06-Nov-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  1

© Copyright 2017-2019 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に含まれるその他の指定されたブランドは、米国およびその他各国のザイリンクス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属します。

この資料は表記のバージ ョ ンの英語版を翻訳したもので、 内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。

Zynq® UltraScale+™ MPSoC が内蔵する暗号化アクセラレータを使用するこ とで、 ソフ ト ウェアベースのソ リ ューシ ョ ンと比べて暗号化処理能力を 10,000% 以上向上させるこ とが可能です。

ホワイ ト ペーパー : Zynq UltraScale+ MPSoC

WP512 (v1.0) 2019 年 5 月 21 日

Zynq UltraScale+ MPSoC で暗号化処理を高速化 

概要

Zynq UltraScale+ MPSoC には、 AES-GCM-256 ビッ ト 、 SHA-3/384、 および RSA 用の組み込み型暗号化コア [参照 1] や ArmCortex®-A53 プロセッサの Arm® v8 暗号化拡張機能 [参照 2] があるため、 暗号化性能を高速化できます。

内蔵する暗号化アクセラレータの性能について、 こ こでは RTOS ( リ アルタイム オペレーティング システム) 上および Linux 上のユーザー空間という 2 つのソフ ト ウェア アーキテクチャを条件に説明しています。 各シナリオでは、 暗号化アクセラレータの性能をソフ トウェアベースの暗号化ソ リ ューシ ョ ンと比較しています。 これらの性能測定値に基づいて、 システム設計者は要件に応じて暗号化の性能を最大限に引き出すこ とができます。

Page 2: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  2

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

はじめにこのホワイ トペーパーでは、 次について説明しています。

Zynq UltraScale + MPSoC のコンフ ィギュレーシ ョ ン セキュ リティ ユニッ ト (CSU) に含まれている暗号化アクセラレータを利用した場合に Arm Cortex-A53 プロセッサ上で実行されるソフ ト ウェアの性能

Arm v8 暗号化拡張機能 (Arm v8 Cryptographic Extensions) を利用した場合に Arm Cortex-A53 プロセッサ上で実行される同等のソフ ト ウェア アルゴ リズムの性能

これらの両方の結果を、 ネイティブの Arm Cortex-A53 ソフ ト ウェア ソ リ ューシ ョ ンと比較しています。

Zynq UltraScale+ MPSoC CSU のにあるアクセラレータには、AES-GCM の 256 ビッ ト暗号化/復号化、SHA-3/384 ハッシュ関数、および RSA の公開/非公開鍵 (最大の鍵サイズは 4096 ビッ ト ) 動作用の組み込み型暗号化コアが含まれています。 CSU のデフォルト ク ロ ッ クは、 Zynq UltraScale+ MPSoC の内蔵オシレーターの 180MHz [参照 1] で動作しますが、 テス トではクロ ッ クを変更し、 低電力ド メ インの PLL (位相ロッ ク ループ) から外れて動作し、 375MHz に設定してよ り高い性能を達成します。Arm v8 コアの暗号化拡張機能は、 AES、 SHA-1、 SHA-2、 および CRC-32 動作の高速化には対応できますが、 RSA または SHA-3 動作には対応できません。

全テス トの性能測定は、 Zynq UltraScale+ MPSoC の Arm Cortex-A53 プロセッサで実行され、 外部の DDR (デュアル データ レート ) メモ リ を使用する wolfSSL[参照 3] 組み込みベンチマーキング ソフ ト ウェア バージ ョ ン 3.12.0 を利用しました。WolfSSL によって、 暗号化機能用のさまざまなハード ウェアを利用して暗号化性能を測定できます。 Zynq UltraScale+ MPSoC では、 組み込み型暗号化コア、 Arm v8 暗号化拡張機能、 およびソフ ト ウェアベースのアルゴ リズムを利用できます。 AES-GCM 256 ビッ トおよび SHA3/384 暗号化アルゴ リズムの性能測定には 16 バイ トから最大 15,888 バイ ト までのデータセッ ト を使用し、 RSA の性能測定には RSA-2048 および RSA-4096 を使用しました。

FreeRTOS 上で wolfSSL を実行Zynq UltraScale+ MPSoC をサポートするザイ リ ンクス SDK 2017.1 上の FreeRTOS に WolfSSL バージ ョ ン 3.12.0 を移植して、AES-GCM 256 ビッ ト 、 SHA3/384、 RSA-2048、 および RSA-4096 アルゴ リズムに対するソフ ト ウェアベース ソ リ ューシ ョ ン、Arm v8 暗号化拡張機能、 および Zynq UltraScale+ MPSoC の組み込み型暗号化コアの性能をベンチマーク評価しました。 組み込み型暗号化の性能を最大化するため、 wolfSSL FreeRTOS ポート用の XilSecure ライブラ リ [参照 4] で CSU の DMA キャ ッシュ とエンディアン バイ ト スワップを無効に設定しました。 AES-GCM 256 ビッ トおよび SHA3/384 アルゴ リズムのスループッ ト を測定するため、 データ ブロ ッ ク サイズは 16 バイ ト、 528 バイ ト、 1,024 バイ ト、 4,112 バイ ト 、 7,696 バイ ト、 および 15,888 バイ ト を使用しました。 各動作に必要な平均時間を測定するため、 RSA-2048 および RSA-4096 の公開/非公開鍵暗号化を実行しました。 RSA 動作に、 あらかじめ計算された指数値は使用していません。

Page 3: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  3

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

結果

表 1 は、 FreeRTOS 上で wolfSSL ベンチマークを実行した場合の AES-GCM 256 ビッ ト暗号化の結果を示しています。 この表は、 最も高速で実行された暗号化機能を太字でハイライ ト しており、 データ ブロ ッ ク サイズが 1,024 バイ ト以下では Arm v8 暗号化拡張機能の方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り も優れているこ とを示しています。一方、データ ブロ ッ ク サイズが 1,024 バイ ト を超える と、 MPSoC の暗号化コアの方が Arm v8 暗号化拡張機能よ り も優れているこ とを示しています。

表 2 は、 FreeRTOS 上で wolfSSL ベンチマークを実行した場合の AES-GCM 256 ビッ ト復号化の結果を示しています。 この表は、 最も高速で実行された暗号化機能を太字でハイライ ト しており、 データ ブロ ッ ク サイズが 1,024 バイ ト以下では Arm v8 暗号化拡張機能の方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り も優れているこ とを示しています。一方、データ ブロ ッ ク サイズが 1,024 バイ ト を超える と、 MPSoC の暗号化コアの方が Arm v8 暗号化拡張機能よ り も優れているこ とを示しています。

表 1: FreeRTOS 動作のスループッ ト、 AES‐GCM 暗号化

FreeRTOS 動作のスループッ ト : AES‐GCM 256 ビッ ト暗号化 (MB/s)

ブロック  サイズソフ トウェア

ベースArm v8 暗号化拡張機能 Zynq UltraScale+ MPSoC 暗号化コア

16 3.785 53.041 4.012

528 7.52 278.156 122.285

1,024 7.634 297.949 219.531

4,112 7.73 315.976 555.58

7,696 7.743 318.9 691.379

15,888 7.746 318.949 844.344

表 2: FreeRTOS 動作のスループッ ト、 AES‐GCM 復号化

FreeRTOS 動作のスループッ ト : AES‐GCM 256 ビッ ト復号化 (MB/s)

ブロック  サイズソフ トウェア

ベースArm v8 暗号化拡張機能 Zynq UltraScale+ MPSoC 暗号化コア

16 3.756 43.414 2.069

528 7.515 166.307 59.153

1,024 7.634 175.415 100.244

4,112 7.73 183.429 237.055

7,696 7.75 184.771 291.194

15,888 7.746 184.854 373.363

Page 4: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  4

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

表 3 では、 SHA3/384 の性能は、 データ ブロ ッ ク サイズが 16 バイ トの場合のみ、 ソフ ト ウェアベースのソ リ ューシ ョ ンの方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り優れているこ とがわかり ます。

表 4 では、 すべての条件で Zynq UltraScale+ MPSoC の組み込み型暗号化コアの方がソフ ト ウェアベースの RSA ソ リ ューシ ョンよ り優れているこ とがわかり ます。

Linux 上で wolfSSL を実行Zynq UltraScale+ MPSoC 用ザイ リ ンクス リ リース 2018.3 [参照 5] で利用できる Linux 4.14 上で wolfSSL バージ ョ ン 3.12.0 を実行しました。 これを使用して、 AES-GCM 256 ビッ ト 、 SHA3/384、 RSA-2048、 および RSA-4096 アルゴ リ ズムに対するソフ トウェアベース ソ リ ューシ ョ ン、 Arm v8 暗号化拡張機能、 および Zynq UltraScale+ MPSoC の組み込み型暗号化コアの性能をベンチマーク評価しました。 メモ リ管理や実行権限が違うため、 Linux で動作するアプリ ケーシ ョ ンは RTOS アプリ ケーシ ョ ンとは異なり ます。 したがって、 FreeRTOS ポートに適用した変更は、 Linux ポートに適用していません。 ただし、 FreeRTOS ベンチマークで使用した同じデータセッ ト を Linux でも使用しています。

Linux の場合、 ユーザー空間のアプリ ケーシ ョ ンは Armv8 アーキテクチャ上で最も低い例外レベル (EL0) で実行する必要があり ます。 Zynq UltraScale+ MPSoC の暗号化拡張機能は、 ユーザー空間アプリ ケーシ ョ ンから SMC (セキュア モニター コール) を介してのみアクセス可能です。 つま り、 ユーザー空間アプリ ケーシ ョ ンは PMU (プラ ッ ト フォーム管理ユニッ ト ) にアクセスし、 その後、 XilSecure ライブラ リ [参照 4] を使用して CSU 内の暗号動作にアクセスします。 暗号化処理が完了する と、Linux アプリ ケーシ ョ ンは CSU からの応答、 PMU コールからの応答、 SMC からの応答を受信した後に動作を継続します。 この方法による高いオーバーヘッ ドが Linux のベンチマーク結果には反映されています。

表 3: FreeRTOS 動作のスループッ ト、 SHA3/384

FreeRTOS 動作のスループッ ト : SHA3/384 (MB/s)

ブロックサイズ

ソフ トウェアベース

Zynq UltraScale+ MPSoC 暗号化コア

16 38.502 17.934

528 55.087 328.623

1,024 56.152 417.92

4,112 57.295 592.763

7,696 57.615 628.626

15,888 57.52 654.565

表 4: FreeRTOS の平均 RSA 動作時間

FreeRTOS の平均 RSA 動作時間: wolfSSL v3.12.0 (ms)

RSA 動作ソフ トウェア

ベースZynq UltraScale+ MPSoC 暗号化コア

2048 ビッ トの公開鍵暗号 4.874 0.552

2048 ビッ トの非公開鍵暗号 89.25 12.846

4096 ビッ トの公開鍵暗号 18.519 1.95

4096 ビッ トの非公開鍵暗号 619.47 95.9

Page 5: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  5

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

結果

表 5 は、 Linux 上で wolfSSL ベンチマークを実行した場合の AES-GCM 256 ビッ ト暗号化の結果を示しています。 この表は、最も高速で実行された暗号化機能を太字でハイライ ト しており、 すべてのデータ ブロ ッ ク サイズで Arm v8 暗号化拡張機能の方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り も優れているこ とを示しています。 これは、 Arm v8 暗号化拡張機能は、 ユーザー空間から CSU へ直接アクセスでき、 大規模なソフ ト ウェア スタ ッ クを通過する必要がないためです。

表 6 は、 Linux 上で wolfSSL ベンチマークを実行した場合の AES-GCM 256 ビッ ト復号化の結果を示しています。 この表は、最も高速で実行された暗号化機能を太字でハイライ ト しており、 すべてのデータ ブロ ッ ク サイズで Arm v8 暗号化拡張機能の方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り も優れているこ とを示しています。 これは、 前述した暗号化の場合と同じ理由によるものです。

表 5: Linux 動作のスループッ ト、 AES‐GCM 暗号化

Linux 4.14 動作のスループッ ト : AES‐GCM 256 ビッ ト暗号化 (MB/s)

ブロック  サイズソフ トウェア

ベースArm v8 暗号化拡張機能 Zynq UltraScale+ MPSoC 暗号化コア

16 4.426 54.309 0.151

528 8.971 300.263 4.68

1,024 9.105 322.934 8.66

4,112 9.206 344.002 27.769

7,696 9.235 347.552 42.572

15,888 9.23 345.605 59.948

表 6: Linux 動作のスループッ ト、 AES‐GCM 復号化

Linux 4.14 動作のスループッ ト : AES‐GCM 256 ビッ ト復号化 (MB/s)

ブロック  サイズソフ トウェア

ベースArm v8 暗号化拡張機能 Zynq UltraScale+ MPSoC 暗号化コア

16 4.397 34.835 0.146

528 8.955 179.661 4.535

1,024 9.1 192.258 8.52

4,112 9.22 203.652 27.083

7,696 9.231 205.579 41.784

15,888 9.213 204.456 59.311

Page 6: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  6

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

表 7 では、 SHA3/384 の性能は、 データ ブロ ッ ク サイズが 1,024 バイ ト以下の場合、 ソフ ト ウェアベースのソ リ ューシ ョ ンの方が Zynq UltraScale+ MPSoC の組み込み型暗号化コアよ り優れているこ とを示しています。 一方、 データ ブロ ッ ク サイズが 4,112 バイ ト以上の場合、 MPSoC の暗号化コアの方がソフ ト ウェアベースのソ リ ューシ ョ ンよ り も優れているこ とを示しています。

表 8 は、 Linux の呼び出しによるオーバーヘッ ドが大き くても Zynq UltraScale+ MPSoC の組み込み型暗号化コアの方がすべてのソフ ト ウェアベースの RSA ソ リ ューシ ョ ンよ り優れているこ とを示しています。

表 7: Linux 動作のスループッ ト、 SHA3/384

Linux 動作のスループッ ト : SHA3/384 (MB/s)

ブロック  サイズソフ トウェア

ベースZynq UltraScale+ MPSoC 暗号化コア

16 41.58 0.308

528 59.632 9.822

1,024 60.797 18.602

4,112 62.025 66.507

7,696 62.357 112.26

15,888 62.291 179.718

表 8: Linux の平均 RSA 動作時間

Linux の平均 RSA 動作時間: wolfSSL v3.12.0 (ms)

RSA 動作ソフ トウェア

ベースZynq UltraScale+ MPSoC 暗号化コア

2048 ビッ トの公開鍵暗号 4.424 1.342

2048 ビッ トの非公開鍵復号 83.512 25.71

4096 ビッ トの公開鍵暗号 16.736 4.152

4096 ビッ トの非公開鍵復号 569.89 191.778

Page 7: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  7

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

まとめSHA3/384 を Linux で実行した結果を除いて、 Arm v8 暗号化拡張機能および Zynq UltraScale+ MPSoC の組み込み型暗号化コアによる暗号化処理の高速化は、 ソフ ト ウェアベースのソ リ ューシ ョ ンよ り も優れているこ とがわかり ました。

表 9 に、 ソフ ト ウェアベースのソ リ ューシ ョ ンと比較した場合の暗号化アクセラレータの最大性能向上率を示しています。表 9 は、AES および SHA アルゴ リズムの最大ブロ ッ ク サイズ、および RSA アルゴ リ ズムのすべての鍵サイズと動作を対象とし、 Zynq UltraScale+ MPSoC の組み込み型暗号化コアを使用した場合の wolfSSL FreeRTOS ベンチマーク結果に基づく最大性能向上率を示しています。

FreeRTOS と Linux 間でソフ ト ウェアベース ソ リ ューシ ョ ンの性能がわずかに向上しているのは、 ソフ ト ウェアベース ソリ ューシ ョ ンで異なるバージ ョ ンのコンパイラが使用されたこ とによ り ます。 FreeRTOS ベンチマーク評価では GCC バージ ョン 6.2.1 を使用し、 Linux ベンチマーク評価では GCC バージ ョ ン 7.3.1 を使用しています。 コンパイラ バージ ョ ンの違いによるこ とを確認するために、 Linux 用のソフ ト ウェアベース ソ リ ューシ ョ ンの wolfSSL を GCC バージ ョ ン 6.2.1 で再コンパイルし、 AES-GCM 256 ビッ ト アルゴ リズムを再評価しました。 その結果、 AES-GCM 256 ビッ トのソフ ト ウェアベース ソ リ ューシ ョ ンの暗号化性能は 7.023MB/s に低下し、 復号化性能は 7.022Mb/s に低下しました。 このホワイ トペーパーでは暗号化アクセラレータの使用に焦点を当てていますが、 コンパイラ バージ ョ ンの違いによって性能差が生じるこ とから、 ソフ ト ウェアの性能を最大化するためには最新ツールを使用するこ とが非常に重要であるこ とがわかり ます。

図 1 では、 このホワイ トペーパーで言及したさまざまなベンチマーク シナリオで実行された AES-GCM 256 ビッ ト暗号化アルゴ リズムのすべてのベンチマーク結果を比較しています。 図 1 から、 ソフ ト ウェアベースのソ リ ューシ ョ ンは、 これらの高速暗号化ソ リ ューシ ョ ンと比較して明らかにスループッ トが劣っているこ とがわかり ます。 FreeRTOS 上で wolfSSL ベンチマークを実行した場合、 2,000 バイ ト を超えるブロッ ク サイズでは Zynq UltraScale+ MPSoC のハードウェア実装された暗号化コアの方が Arm v8 暗号化拡張機能よ り優れています。 FreeRTOS のソフ ト ウェアベース ソ リ ューシ ョ ンは、 Linux のソフ ト ウェアベース ソ リ ューシ ョ ンと重なっているため、 グラフ上では判読が困難です。 MPSoC の AES-GCM 256 ビッ ト暗号化エンジンを Linux から呼び出す際のオーバーヘッ ドが大きいため、 最大性能を達成するには、 常に Arm v8 暗号化拡張機能を使用する方が賢明です。

表 9:暗号化アルゴリズムの性能向上率 (ソフ トウェアベースのソリューシ ョ ンと比較)

アルゴリズム 性能向上率

AES-GCM 256 ビッ ト暗号化 10,800.39%

AES-GCM 256 ビッ ト復号化 4,720.07%

SHA3/384 1,037.98%

RSA の 2048 ビッ ト公開鍵暗号 782.97%

RSA の 2048 ビッ ト非公開鍵復号 594.77%

RSA の 4096 ビッ ト公開鍵暗号 849.69%

RSA の 4096 ビッ ト非公開鍵復号 545.95%

Page 8: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  8

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

図 2 では、 このホワイ トペーパーで言及したさまざまなベンチマーク シナリオで実行された AES-GCM 256 ビッ ト暗号化アルゴ リズムのすべてのベンチマーク結果を比較しています。 図 2 は図 1 と同様の結果を示していますが、 ブロ ッ ク サイズが 4,000 バイ ト を超える場合には、 FreeRTOS で実行される Zynq UltraScale+ MPSoC の組み込み型暗号化エンジンの性能の方が Arm v8 暗号化拡張機能よ り も優れているこ とを示しています。 先ほどと同様、 FreeRTOS のソフ ト ウェアベース ソ リ ューシ ョンは Linux のソフ ト ウェアベース ソ リ ューシ ョ ンと重なっているため、 グラフ上では判読が困難です。

図 3 は、 さまざまなベンチマーク シナリオで SHA3/384 アルゴ リズムを実行した場合の比較結果を示しています。 AES-GCM 256 ビッ ト復号化の結果と同様、 FreeRTOS で実行した場合の Zynq UltraScale+ MPSoC の暗号化エンジンの性能は、 16 バイ トのブロ ッ ク サイズを使用している場合を除き、 その他すべてのソ リ ューシ ョ ンよ り優れています。 呼び出しのオーバーヘッドが大きい Linux でも、 4,000 バイ ト を超えるブロ ッ ク サイズで Zynq UltraScale+ MPSoC の暗号化アクセラレータを使用すると、 ソフ ト ウェアベースのソ リ ューシ ョ ンよ り優れた性能を達成します。

X-Ref Target - Figure 1

図 1:すべての AES‐GCM 256 ビッ ト暗号化の性能比較結果

X-Ref Target - Figure 2

図 2:すべての AES‐GCM 256 ビッ ト復号化の性能比較結果

WP512_01_050719

900

800

700

600

500T

hro

ug

hp

ut

(MB

/s)

Data Block Size (Bytes)

FreeRTOS Software OnlyFreeRTOS Arm v8 Crypto ExtensionsFreeRTOS Zynq UltraScale+ MPSoc Crypto Hardware

Linux 4.14 Software OnlyLinux 4.14 Arm v8 Crypto ExtensionsLinux 4.14 Zynq UltraScale+ MPSoc Crypto Hardware

wolfSSL 3.12.0 AES-GCM 256-Bit Encryption Performance

400

300

200

100

2,000 4,000 6,000 8,000 10,000 12,000 14,000 16,00000

WP512_02_050719

400

350

300

250

Th

rou

gh

pu

t (M

B/s

)

Data Block Size (Bytes)

FreeRTOS Software OnlyFreeRTOS Arm v8 Crypto ExtensionsFreeRTOS Zynq UltraScale+ MPSoC Crypto Hardware

Linux 4.14 Software OnlyLinux 4.14 Arm v8 Crypto ExtensionsLinux 4.14 Zynq UltraScale+ MPSoC Crypto Hardware

wolfSSL 3.12.0 AES-GCM 256-Bit Decryption Performance

200

150

100

50

2,000 4,000 6,000 8,000 10,000 12,000 14,000 16,00000

Page 9: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  9

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

図 4、 5、 6、 および 7 は、 すべての RSA 動作をさまざまなベンチマーク シナリオで実行した場合を総合的に比較しています。これらのグラフから、 Zynq UltraScale+ MPSoC の組み込み型暗号化コアを使用した場合の方が、 ソフ ト ウェアベース ソ リ ューシ ョ ンよ り も常に優れた性能を達成できるこ とがわかり ます。 さ らに、 Linux に対して FreeRTOS で RSA アルゴ リズムを実行して高速化性能を測定した結果、 FreeRTOS では CSU に直接アクセスできるため、 Linux よ り常に 2 倍以上の性能向上が可能です。

X-Ref Target - Figure 3

図 3: すべての SHA3/384 の性能比較結果

X-Ref Target - Figure 4

図 4:すべての RSA‐2048 公開鍵暗号のベンチマーク結果

WP512_03_050719

700

600

500

Th

rou

gh

pu

t (M

B/s

)

Data Block Size (Bytes)

FreeRTOS Software OnlyFreeRTOS ZU+Crypto Hardware

Linux 4.14 Software OnlyLinux 4.14 ZU+Crypto Hardware

wolfSSL 3.12.0 SHA3 Performance

400

300

200

100

2,000 4,000 6,000 8,000 10,000 12,000 14,000 16,00000

WP512_04_040819

5

4

4.5

3.5

Tim

e (m

s)

Benchmark Test

3

2

2.5

1

1.5

0.5

0FreeRTOS

Software OnlyFreeRTOS

Zynq UltraScale+ MPSoCCrypto Hardware

Linux 4.14Software Only

Linux 4.14Zynq UltraScale+ MPSoC

Crypto Hardware

wolfSSL 3.12.0 Average Operation Timeof RSA 2048 Public Encryption

4.874

0.552

4.424

1.342

Page 10: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  10

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

X-Ref Target - Figure 5

図 5:すべての RSA‐2048 公開鍵復号のベンチマーク結果

X-Ref Target - Figure 6

図 6:すべての RSA‐4096 公開鍵暗号のベンチマーク結果

WP512_05_040819

90

80

70

Tim

e (m

s)

Benchmark Test

60

40

50

20

30

10

0FreeRTOS

Software OnlyFreeRTOS

Zynq UltraScale+ MPSoCCrypto Hardware

Linux 4.14Software Only

Linux 4.14Zynq UltraScale+ MPSoC

Crypto Hardware

wolfSSL 3.12.0 Average Operation Timeof RSA 2048 Private Decryption

89.25

12.846

83.512

25.71

WP512_06_040819

20

16

18

14

Tim

e (m

s)

Benchmark Test

12

8

10

4

6

2

0FreeRTOS

Software OnlyFreeRTOS

Zynq UltraScale+ MPSoCCrypto Hardware

Linux 4.14Software Only

Linux 4.14Zynq UltraScale+ MPSoC

Crypto Hardware

wolfSSL 3.12.0 Average Operation Timeof RSA 4096 Public Encryption

18.519

1.95

16.736

4.152

Page 11: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  11

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

システム設計者が暗号化ソ リ ューシ ョ ンを定義する際には、 次の点に注目して評価する必要があ り ます。

アルゴ リズムの実行方法 - Arm v8 暗号化拡張機能の使用、 または Zynq UltraScale+ MPSoC の組み込み型暗号化コアの使用

各データ ブロッ クのサイズ

アルゴ リズムが実行される場所 - シンプルな RTOS、 または Linux ユーザー空間

ソフ ト ウェアが動作する メモリ空間 - DDR、 または OCM (オンチップ メモリ )。 このホワイ トペーパーでは、 暗号化アルゴリズムを実行する場所 (DDR と OCM) による性能比較テス トは実施していませんが、 この点も考慮する必要があり ます。

このホワイ トペーパーで示してきたとおり、 これらの変数は Zynq UltraScale+ MPSoC の暗号化性能の高速化に大きき く影響を与えるこ とがあ り ます。 このホワイ トペーパーでは、 考えられるベンチマーク シナリオのご く一部のみを取り上げ、 いくつかの有効なソ リ ューシ ョ ンを比較しました。 各ユーザーが最終的に自身のデザインをベンチマーク評価して、 性能要件が満たされているこ とを確認する必要があ り ます。

これらの結果から、 Zynq UltraScale+ MPSoC 上の暗号化アクセラレータを使用するこ とで暗号化性能を大幅に向上できるこ とを確認でき、 AES-GCM-256 ビッ ト アルゴ リズム、 SHA3/384 アルゴ リズム、 RSA-2048 アルゴ リズム、 RSA-4096 アルゴ リズムを利用するあらゆる市場、 あらゆるアプリ ケーシ ョ ンの高速化に貢献できるこ とを確信しました。 また、 これらのアルゴ リズムは安全なシステムを実現するための土台を築き、 機密性、 完全性、 認証機能を実現します。 最後に、 暗号化アクセラレータを使用するこ とで Zynq UltraScale+ MPSoC での性能が向上するだけでなく、 Arm Cortex-A53、 Arm Cortex-R5、 およびプログラマブル ロジッ クの リ ソース使用率も軽減できます。 このため、 Zynq UltraScale+ MPSoC アプリ ケーシ ョ ンでは、 暗号化の要件を満たすためではなく、 アプリ ケーシ ョ ン全体の要件を満たすために、 よ り多くのリ ソースを確保できます。

参考資料 注記: 日本語版のバージ ョ ンは、 英語版よ り古い場合があ り ます。

1. 『Zynq UltraScale+ MPSoC テクニカル リ ファレンス マニュアル』 (UG1085: 英語版、 日本語版)

2. Arm テクニカル リ ファレンス マニュアル: Cortex®-A53 MPCore Processor Cryptography Extension, Revision r0p4

3. wolfSSL ウェブサイ ト : product landing page

4. 『Zynq UltraScale+ MPSoC ソフ ト ウェア開発者向けガイ ド』 (UG1137: 英語版、 日本語版)

5. 『PetaLinux ツール資料: リ ファレンス ガイ ド』 (UG1144: 英語版、 日本語版)

X-Ref Target - Figure 7

図 7:すべての RSA‐4096 公開鍵復号のベンチマーク結果

WP512_07_040819

700

Tim

e (m

s)

Benchmark Test

600

400

500

200

300

100

0FreeRTOS

Software OnlyFreeRTOS

Zynq UltraScale+ MPSoCCrypto Hardware

Linux 4.14Software Only

Linux 4.14Zynq UltraScale+ MPSoC

Crypto Hardware

wolfSSL 3.12.0 Average Operation Timeof RSA 4096 Private Decryption

619.47

95.9

569.89

191.778

Page 12: Zynq UltraScale+MPSoC 暗号化処理を高速化 - XilinxWP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com 4 Zynq UltraScale+MPSoC で 暗号化処理を高速化 表3 では、SHA3/384

WP512 (v1.0) 2019 年 5 月 21 日 japan.xilinx.com  12

Zynq UltraScale+ MPSoC で 暗号化処理を高速化

改訂履歴次の表に、 この文書の改訂履歴を示します。

免責事項本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開示され

る情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用される法律が許容す

る最大限の範囲で、 (1) 本情報は 「現状有姿」 、 およびすべて受領者の責任で (with all faults) とい う状態で提供され、 ザイ リ ンクスは、 本通知

をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、 すべての保証および条

件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、本情報 (貴殿または貴社による本情報の使用を含む) に関係し、起因し、関

連する、 いかなる種類・性質の損失または損害についても、責任を負わない (契約上、不法行為上 (過失の場合を含む)、 その他のいかなる責任

の法理によるかを問わない) ものと し、 当該損失または損害には、 直接、 間接、 特別、 付随的、 結果的な損失または損害 (第三者が起こした行

為の結果被った、 データ、 利益、 業務上の信用の損失、 その他あらゆる種類の損失や損害を含みます) が含まれるものと し、 それは、 たとえ

当該損害や損失が合理的に予見可能であった り、 ザイ リ ンクスがそれらの可能性について助言を受けていた場合であったと しても同様です。

ザイ リ ンクスは、 本情報に含まれるいかなる誤り も訂正する義務を負わず、 本情報または製品仕様のアップデート を貴殿または貴社に知らせ

る義務も負いません。事前の書面による同意のない限り、貴殿または貴社は本情報を再生産、変更、頒布、 または公に展示してはなり ません。

一定の製品は、ザイ リ ンクスの限定的保証の諸条件に従う こ と となるので、https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売

条件を参照して ください。 IP コアは、 ザイ リ ンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従う こ とになり ま

す。 ザイ リ ンクスの製品は、 フェイルセーフと して、 または、 フェイルセーフの動作を要求するアプリ ケーシ ョ ンに使用するために、 設計さ

れたり意図されたり していません。 そのよ うな重大なアプリ ケーシ ョ ンにザイ リ ンクスの製品を使用する場合のリ スク と責任は、 貴殿または

貴社が単独で負う ものです。 https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照してください。

自動車用のアプリケーシ ョ ンの免責条項オートモーティブ製品 (製品番号に 「XA」 が含まれる ) は、 ISO 26262 自動車用機能安全規格に従った安全コンセプ ト または余剰性の機能 ( 「セーフティ設計」 ) がない限り、 エアバッグの展開における使用または車両の制御に影響するアプ リ ケーシ ョ ン ( 「セーフティ アプリ ケー

シ ョ ン」 ) における使用は保証されていません。 顧客は、 製品を組み込むすべてのシステムについて、 その使用前または提供前に安全を目的

と して十分なテス ト を行う ものと します。 セーフティ設計なしにセーフティ アプリ ケーシ ョ ンで製品を使用する リ スクはすべて顧客が負い、

製品の責任の制限を規定する適用法令および規則にのみ従う ものと します。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下にある

[フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。 いただきましたご意見を参考に早急に対応させて

いただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

日付 バージョ ン 内容

2019 年 5 月 21 日 1.0 初版