Zk拡張とカスタム命令を使用して機密データを効果的に保護2024/2/1暗号化ハッシュ関数は、機密データの一方向の変換を提供するコンピュータセキュリティにおいて重要な役割を果たします。アプリケーションは、ハッシュ関数、特にデジタル署名、メッセージ認証コード、その他の形式の認証を使用することで恩恵を受けます。SHA512、SHA256、MD5などのハッシュ関数の計算は、カスタム・コンピュートの潜在的な遊び場です。ここで、RISC-Vによって実現され、Zk拡張機能によって強化されたISAの柔軟性と、本質的に逐次的なビット操作をカスタム命令にマージする機能がパフォーマンスの向上に役立ちます。よって設計された「SHA-2」ファミリに属します。Program)プログラムにて検証済みです。SHA512アルゴリズムの概要図を以下に示します。1024ビットのデータブロックで動作するため、入力メッセージはフォーマットされ、ダミービットで埋められます。次に、各1024ビットブロックが80回の「ラウンド」のチェーンによって順次処理されます。各「ラウンド」は、入力データブロック、初期化ベクトル、および一連の「ラウンド定数」に対する加算と巡回ビットシフトに大きく依存します。80回の「ラウンド」の各シーケンスの出力は、次の入力データブロックの初期化ベクトルとなり、最後のデータブロックが処理された場合は最終結果となる512ビットハッシュです。現在まで、SHA-512は、TLSおよびSSL、PGP、SSH、S/MIME、およびIPsecを含む多くのセキュリティプロトコルの主力製品であり続けています。アルゴリズム的には本質的に逐次的です。各ステージでは、前のステージの結果が準備されている必要があるため、並列計算が妨げられます。スカラ暗号化のためのRISC-VおよびZk拡張RISC-Vの命令セットアーキテクチャ(ISA)はモジュール式に設計されており、さまざまなアプリケーション固有の拡張機能を追加できます。「Zk」スカラ暗号化拡張機能(2022年2月)には、AES、SM3(4)、SHA256、およびSHA512アルゴリズムを対象とした命令のサブセットが含まれています。RISC-V標準では、コアパフォーマンス、メモリフットプリント、または消費電力に関する特定の要件を対象として、ベースラインISAおよびあらゆる種類の承認されたオプションの拡張機能に加えてアプリケーション固有のカスタム命令を追加することが許可されています。Studioツールによって可能になるプロセッサ合成および再ターゲット可能なLLVMコンパイラの利点を示します。Zk拡張には、以下にリストする6つの命令のサブセットが含まれています。L31コアのISAにサブセット全体が実装され、組み込まれています。それに加えて、2つのカスタム命令「sha512_ch」と「sha512_maj」を追加してみます。これらは3つの入力オペランド間の特定のビット操作を担当し、SHA512の「ラウンド」で高頻度で使用されます。L31コア、Zkサブセット、およびカスタム命令は、プロセッサ記述用の高級言語であるCodALで記述しています。他のHDLとは異なり、CodALの命令はコンパクトかつ独自の方法で記述でき、この命令セマンティクスはLLVMコンパイラ生成とCodasipプロセッサ合成ツールの両方で使用されます。Studioを使用して、新しい命令を認識できる新しいコンパイラ、デバッガ、命令精度およびサイクル精度のシミュレータおよびプロファイラなどSDK、および論理合成可能なRTLが生成できます。以下は、CodAL要素の形式でのカスタム「sha512_ch」命令の実装例です。承認されたZk拡張機能の命令はより複雑なセマンティクスを持っているため、生成された組み込み関数によってソフトウェアから直接呼び出されます。2つのカスタム命令とSHA512のZkサブセットのセット全体に必要なCodALコードはわずか150行です。このようなコンパクトな記述と自動生成されたSDKにより、設計所要時間が大幅に短縮され、最終製品の市場投入までの時間が大幅に短縮される可能性があります。Githubリポジトリに含まれているSHA512ベンチマークで評価しました。ベンチマークは3つの異なるSDKを使用してコンパイルされています。次に、生成したそれぞれの実行可能ファイルを、Studioが生成したサイクル精度のプロファイラを使用してプロファイリングし、プロセッサが各ソフトウェアルーチンに費やすクロックサイクルに関する詳細情報とPPAデータを取得しました。上の図は、Zk命令サブセットが追加されたシリコン領域のわずか0.8%のペナリティと引き換えに、クロックサイクル数は最大1.89倍、コードサイズは最大9.7%削減でき、SHA512のパフォーマンスを大幅に向上させていることを示しています。Zkに加えたカスタム命令はさらなる高速化をもたらし、パフォーマンスを最大2倍強に押し上げ、コードサイズをさらに-10.2%削減しています。面積の増加は、ベースのL31面積の約1.6%であり、これは2倍のパフォーマンス向上に対する妥当なペナルティであると考えられます。特定のアプリケーションに関しては、汎用CPUが理想的なソリューションになることはありません。場合によっては、一見単純な命令でも状況を大きく変えることができるため、チップ設計者はこれらのメリットを活用して高品質の製品を完成させる必要があります。Studioによって促進されるカスタム・コンピュートは、RISC-V命令セットの柔軟性を活用するのに役立ち、コンパクトなCodALベースのプロセッサ記述によって設計時間を短縮し、自動生成されたソフトウェアキットの豊富なセットをエンドチップユーザーに提供します。承認済みのRISC-V拡張機能は豊富にあり、既製のCPUには含まれていない可能性もありますが、設計者はそれらを統合し、Codasipの製品のおかげでさらに進化することができます。この研究では、8つのカスタム命令の実装を実証します。6つは承認されたZkサブセットから、2つは特定のアルゴリズムのニーズに基づいています。これにより、SHA512ハッシュ計算のパフォーマンスが2倍向上し、コードサイズが10%以上削減されます。SHA512と暗号化だけがハードウェアとソフトウェアの共同設計の恩恵を受けるわけではありません。