問題タブ [ecdh]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
openssl - TLS - ECDHE に使用される曲線
TLS が鍵交換アルゴリズム (曲線選択) をどのように決定するかについてお聞きしたいと思います。
クライアントとサーバー間の通信は TLS を介して行われます。サーバーはクライアントと同じコンピューターで実行されており、どちらも同じ証明書にアクセスできます。クライアントとサーバーの両方が SSL_CTX_set_cipher_list を呼び出して、暗号を ECDHE-ECDSA-AES128-GCM-SHA256 に設定します。
通信中に適用される証明書とキーは、ecparam name_curve secp521r1 で作成されました。
サーバーが SSL_CTX_set_ecdh_auto を呼び出すと、すべてが正常に機能します。ただし、サーバーが SSL_CTX_set1_curves_list を呼び出して曲線を secp521r1 に制限しようとすると、クライアントは接続できません。曲線 secp521r1 は ECDHE には使用されないようです。
私の質問はなぜですか?
c# - ECDHsaCng を使用した ECDH 署名
AES-CCM 暗号化を使用するデバイスと通信しており、ECDH によって生成されたキーを使用してセットアップする必要があります。私のマシン証明書には、TPM に ECC 秘密鍵があります。
私はこれに少し慣れていないので、ご容赦ください。
これが私が今見ているコードです。これは、証明書を使用してキーに署名する正しい方法ですか?
ecdsa - 共有ポイントの計算と鍵の導出に役立つ暗号ライブラリはどれですか?
いくつかの暗号操作を実行する必要があり、どの暗号ライブラリが自分のニーズに適合するかを知りたいです。
コンテキストは次のとおりです。
私たちが持っているという事実を考えると:
- 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 は、この問題を解決するのに役立ちますか?
ご協力ありがとうございました。
よろしくお願いします。
swift - ECDH (secp256k1) 共有シークレットを計算すると、間違った結果が返される
I am trying to compute ECDH ( secp256k1 ) shared secret based on private key "5785cb919db4984453826032a411248184536c632096c647f72db4e66a8bd091" and public key "0425a4ef791d8d855077c4d5dd6ca87cbda2f3296939a350e4ea57b3f0235fe1ba4d02cb29f6391675e866944065f9905a30a3e472c45c7ad7afa06143d87efa13"
Swiftでsecp256k1を使用しています。
「4d6f4351d68351c419408621efddfcfcc0bc10270669af822093fcf22c9ca26c」共有シークレットを取得しましたが、正しいシークレットは「ccf231a0ce74e92d9a94265ab27aa4616a3683af5df5aa65f4a011ad8363」である必要があります。