SPARC T4 マイクロプロセッサから、暗号化機能を実行するための新しい命令がハードウェアで直接使用できるようになりました。命令には特権が不要です。したがって、プログラムはカーネル環境、root 権限、またはその他の特別な設定なしで命令を使用できます。暗号化は、低レベルの多数の命令を使用する代わりに、ハードウェア上で直接実行されます。したがって、以前の SPARC プロセッサでは、暗号化用に個別の処理ユニットを備えていましたが、このようなシステムと比べて、暗号化操作が高速になりました。
次の比較では、暗号化を最適化した SPARC T-3 システムと SPARC T-4 システム間のデータフローの相違点を示します。
図 2-1 SPARC T システム間のデータフローの比較
次の表は、特定の Oracle Solaris リリースと組み合わせた場合の SPARC T マイクロプロセッサユニットの暗号化機能の詳細な比較を示しています。
|
T4 暗号化命令には次のものが含まれます。
aes_kexpand0、aes_kexpand1、aes_kexpand2
これらの命令は、鍵拡張を実行します。128 ビット、192 ビット、または 256 ビットのユーザー指定の鍵を、暗号化および復号化中に内部で使用される鍵スケジュールに展開します。aes_kexpand2 命令は AES-256 専用です。それ以外の 2 つの aes_kexpand 命令は、AES-128、AES-192、AES-256 の 3 つの鍵の長さすべてに使用されます。
aes_eround01、aes_eround23、aes_eround01_l, aes_eround_23_l
これらの命令は、AES 暗号化ラウンドまたは変換に使用されます。FIPS 197 の AES 標準に従って、使用するラウンドの数 (10、12、14 など) は AES 鍵の長さに応じて変化しますが、この理由は、大きい鍵を使用すると、より堅牢な暗号化には、多くの計算が必要になる可能性があるためです。
aes_dround01、aes_dround23、aes_dround01_l、aes_dround_23_l
これらの命令は、暗号化と同様の方法で、AES 復号化ラウンドに使用されます。
DES/DES-3、Kasumi、Camellia、Montgomery 多重/平方根 (RSA Bignum 用)、および CRC32c チェックサム用の命令
MD5、SHA1、および SHA2 ダイジェスト命令
SPARC T4 ハードウェア暗号化命令は、Oracle Solaris 11 を実行する SPARC T4 システムで使用可能で、システムの T4 マイクロプロセッサの組み込み t4 エンジンにより自動的に使用されます。Oracle Solaris 11.2 以降は、これらの命令が OpenSSL アップストリームコードに埋め込まれました。したがって、このリリースでは、OpenSSL 1.0.1e がパッチとともに提供され、これらの命令を使用できます。
T4 命令の詳細は、次の記事を参照してください。
「Exciting Crypto Advances with the T4 processor and Oracle Solaris 11」
T4 最適化が使用されているかどうかを確認するには、isainfo コマンドを使用します。sparcv9 および aes が出力に含まれている場合は、システムが最適化を使用していることを示します。
$ isainfo -v 64-bit sparcv9 applications crc32c cbcond pause mont mpmul sha512 sha256 sha1 md5 camellia kasumi des aes ima hpc vis3 fmaf asi_blk_init vis2 vis popc
システムで実行されている OpenSSL のバージョンを確認するには、openssl version と入力します。出力は、次のようになります。
OpenSSL 1.0.0j 10 May 2012
SPARC T4 最適化を備えた OpenSSL をシステムがサポートしているかどうかを確認するには、次のように libcrypto.so ライブラリを確認します。
# nm /lib/libcrypto.so.1.0.0 | grep des_t4 [5239] | 504192| 300|FUNC |GLOB |3 |12 |des_t4_cbc_decrypt [5653] | 503872| 300|FUNC |GLOB |3 |12 |des_t4_cbc_encrypt [4384] | 505024| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_decrypt [2963] | 504512| 508|FUNC |GLOB |3 |12 |des_t4_ede3_cbc_encrypt [4111] | 503712| 156|FUNC |GLOB |3 |12 |des_t4_key_expand
コマンドで出力が生成されない場合、システムは OpenSSL の SPARC T4 最適化をサポートしていません。