wolfSSL SP Math All 実装と OpenSSL

この一連のブログでは、wolfSSLの新しいSP Math All 演算ライブラリについての詳細な情報をお伝えしています。これまでの3回で、SP Math All 実装の導入、従来のInteger実装とTFM実装との比較について紹介してきました。そして今回はOpenSSLとの比較を行ってみました。SP Math All実装はOpenSSLライブラリより優れているのでしょうか?

OpenSSLは、デフォルトビルドでは速度優先最適化、コードサイズ大となります。それと比べて、wolfSSLの新しいバージョンではデフォルトでSingle Precision最適化コードが組み込まれるようになっていて、同等またはそれ以上の性能が得られます。OpenSSLでアセンブラコードを使わない場合もwolfSSLのほうが良い結果となります。

以下は、OpenSSLとwolfSSLの両者ともアセンブラコードを使わず、かつwolfSSLは’–enable-sp-math-all=small’ オプションの指定で作成したSP Math All 実装を使っての比較結果です。

アーキテクチャ: x64速度比(wolfSSL vs OpenSSL)
RSA 2048 署名8.27%
RSA 2048 署名検証29.75%
ECC P-256 鍵合意20.56%
ECC P-256 署名25.31%
ECC P-256 署名検証24.13%

全てでwolfSSLの方が勝っています!ではコードサイズでどうでしょうか?カスタムアプリを書かない限りOpenSSLのコードサイズを正確に得るのは難しいのですが、B N関係の構造体のサイズでみるとOpenSSLはwolfSSLの倍のサイズであるといえます。

皆さんが、メモリ制限のある組み込み機器開発やモバイルアプリ開発を行われているかによらず、新しいSP Math All実装はそれらの全ての要求に完全に適します。また、Single Precision実装はRSAとECCアルゴリズムを特定のサイズで実装し、モバイル、デスクトップ、サーバーアプリを目もくらむ程高速に実行し、SP Math All実装と共存できることを忘れないで下さい。

シリーズ第一回:wolfSSLの新たな Multi-Precision 演算ライブラリ

シリーズ第二回目:wolfSSL SP Math All実装とInteger実装

シリーズ第三回目:wolfSSL SP Math All実装とTFM実装

ご質問は、info@wolfssl.jpまでお問い合わせください。テクニカルサポートについては、support@wolfssl.comにお問い合わせください。

原文:https://www.wolfssl.com/wolfssl-sp-math-openssl/