問題タブ [ecdhe]
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.
ssl - エクスポート可能な秘密鍵なしで ECDHE ハンドシェイクを行う方法
署名の作成と署名の検証機能を含む ECDSA_METHOD を実装する OpenSSL エンジンを構築しています。ECDHE 秘密鍵は署名の作成にのみ使用されるため、エンジンからキーをエクスポートして他の場所に提示する必要はありません。
ただし、SSL_set_private_key 関数を介して SSL_Context に秘密鍵を提供しない場合、SSL ハンドシェイクは次のエラーで失敗します。
また、SSL_set_private_key 関数にモック キー (証明書の公開キーに関連しないもの) を提供しようとしましたが、この関数は、秘密/公開キーが一致するかどうかを検証し、一致しない場合は証明書が正しくないというエラーをスローします。 t。
openssl では、場合によってはこの検証をバイパスできるようです。たとえば、これは ssl/ssl_rsa.c で見つけたものです。
ECキーに似たものが必要だと思いますが、どこにも見つかりませんでした。他のソリューションも高く評価されます。
java - Java で ECDH パラメータをシリアル化して使用する方法
2 つのプラットフォーム間で ECDH を実行して、共有シークレットを取得しようとしています。名前付き曲線 (まだ決定されていない曲線) を使用する予定です。フローは次のようになります。
- アリスは曲線を選ぶ
- アリスは自分の曲線のためにランダムな鍵のペアを生成します
- アリスは自分の曲線に関するいくつかのデータをシリアル化します
- アリスは自分の公開鍵と曲線データをボブに送信します
- ボブはアリスのデータで曲線を初期化します
- ボブはアリスのデータに基づいて鍵ペアを作成します
- Bob は ECDH を実行して共有秘密を導出します
- ボブは自分の公開鍵でアリスに応答します
- Alice は ECDH を実行して共有秘密を導出します
弾む城を使用して、これを達成する最もクリーンな方法は何ですか?
私が見たほとんどすべての例 (この例: https://gist.github.com/wuyongzheng/0e2ed6d8a075153efcd3など) は、共有シークレットに到達するプロセスを示していますが、実際に情報をシリアル化するプロセスを考慮しているようには見えません。曲線/開始点 (G) を「Bob」に変更し、Bob 側でそのデータを使用して曲線を再構築し、対応するキーを生成する方法。ボブに送信する必要があるデータは何ですか?
c++ - 共有シークレットを BCRYPT_SECRET_HANDLE から BYTE 配列としてエクスポートしています
暗号次世代 API (CNG) を使用して ECDHE を実装しています。公開鍵と秘密鍵を正常に生成しました。事前共有キーについては、事前共有キーのシークレット ハンドル(BCRYPT_SECRET_HANDLE)を返すBCryptSecretAgreement APIを使用します。
事前共有キーを BCRYPT_SECRET_HANDLE から BYTE 配列としてエクスポートするにはどうすればよいですか?
android - Android での TLS の使用
TLS(TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256)を使用してBluetooth経由でデバイス(Bluetoothモジュールを備えたARMベースのデバイス)と通信するAndroidアプリケーションを開発しています。私が考えたこと:
- Android のjavax.net.ssl 。問題は、エフェメラル (ECDH E ) 暗号化キーが API 20 から開始されていることですが、API 11 が必要です。スイートを追加する方法が見つかりませんでした。このライブラリはandroid版との関係が強いようです。API のバージョンと概要
- Bouncycastle(spongycastle)ソケットを作成せずに使用する方法が見つかりませんでした。ネットワーク接続ではなく使用できるように、イン/アウトストリームのようなものが必要です。また、TLS/SSL はまったく見つかりませんでした。
- すべてを自分で実装します。選択したスイートからすべてのアルゴリズムを取得し、自分でプロトコルを実装することはできますが、何がわからないのかがわからず、セキュリティを台無しにすることを恐れています。そのようなことをするのが良い習慣であるかどうかはわかりません(十分にレベルが高いので、自分で実装するのはそれほど危険ではないかもしれません)
私の質問は、どのライブラリを TLS に推奨できますか? 自分でプロトコル(アルゴリズムではない)を実装するのは良い方法ですか?
ios - iOSで指定されたXコンポーネント、Yコンポーネント、および曲線からECPublicキーを生成する方法は?
サーバーから X コンポーネント、Y コンポーネント、および曲線の値を取得しています。opensslまたは一般的な暗号を使用して、サーバーの公開鍵を導出したいと考えています。
iOS には、指定された X、Y、曲線の値で公開鍵を生成するための単純な API はありません。
どんな助けでも大歓迎です。
crypto++ - ECDH 共有シークレットがループ内で一致しない、Crypto++
3 つのユニット間で共有シークレットを作成したいのですが、このコードでは別のものが得られます。アイデアはありますか?