いくつかの暗号操作を実行する必要があり、どの暗号ライブラリが自分のニーズに適合するかを知りたいです。
コンテキストは次のとおりです。
私たちが持っているという事実を考えると:
- HSMに格納された EC 秘密鍵
- EC 公開鍵 (公開ポイント)
- 暗号化された AES キー
- EC 公開鍵 ECDH で計算された MAC
以下を実行する必要があります。
- EC 秘密鍵と EC 公開鍵から ECKA-DH アルゴリズムを使用して、共有ポイント (K~X~、K~Y~) を計算します。(BSI TR 03111 を参照)
- KDF2 (x, l) と SHA-256 を使用して、K~ENC~ と K~MAC~ を導出します。K~ENC~ は、出力の最初の 8 バイトです。K~MAC~ は、出力の最後の 8 バイトです。(ISO/IEC 18033-2 を参照)
- MAC ==> MAC = AES-CMAC (暗号化された AES キー || ValueA || ValueB、K~MAC~)に対して、暗号化された AES キーで MAC を検証します。
- 暗号化された AES キー ==> AES キー = AES-CBC (暗号化された AES キー、K~ENC~) を復号化します。
秘密鍵が HSM に格納されているという事実に基づいて共有ポイントを計算するのに役立つ暗号化ライブラリはどれですか?
Bouncy Castle は IAIK PKCS#11 ラッパーと併用できますか?
IAIK の商用製品である IAIK-JCE は、この問題を解決するのに役立ちますか?
ご協力ありがとうございました。
よろしくお願いします。