問題タブ [ecdsa]

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.

0 投票する
2 に答える
226 参照

algorithm - 16 ビット、32 ビット、または 64 ビットのプロセッサは、N ビットの 2 進数の論理右シフトを実行するために何回のプリミティブ操作を実行しますか?

最近、バイナリ拡張ユークリッド アルゴリズムがプロセッサ レベルでどのように機能するかを理解しようとしています。この質問は、多項式ベースで GF(2^m) の逆要素を見つけることに関するものです。

一般に、逆要素を評価するために拡張ユークリッド アルゴリズムに出くわしましたが、実際には、加算と乗算の操作が多すぎます。Binary EEA アルゴリズムでは、ビット シフト演算 (2 による除算、つまり論理右シフトに相当) のみが必要です。アルゴリズムは、このリンクのページ番号 8 にあります。

このアルゴリズムのステップ 3 と 5 では、反復ごとにパラメータがシフトされ、同時に MSB に 0 が追加されて右に 1 ビットuシフトされます。bループは終了しu == 1、 が返されますb。私の質問は、プロセッサ (たとえば 32 ビット プロセッサ) が各反復のステップ 3 またはステップ 5 で実行するプリミティブ操作の数はいくつですか?

バレルシフターに出くわしましたが、シフトの速さについてかなり混乱しています。これらのプリミティブ操作を本当に考慮する必要がありますか、それともシフトが高速になる可能性があるため無視する必要がありますか?

uサイズが 194 ビットの場合のプリミティブ操作を誰かが示してくれると、本当に助かります。


xアルゴリズムのステップ 3 と 5 の分母について疑問に思われるかもしれませんが、これは多項式表現であり、2 進法のみをx意味10し、パラメーターuは N ビットの 2 進数です。

0 投票する
2 に答える
2302 参照

python - 楕円曲線総当たり

私は楕円曲線のすべてのパラメータを持っています。そして点QPの座標。可能なすべてのkをテストして、 Q=k*P ( kは不明)を解決したいと考えています。

だから私はこのクラスを使いました

それから:

これは、この問題を解決するための正しいアプローチですか?

0 投票する
1 に答える
333 参照

c - 楕円曲線離散対数

私はPollard rhoを使用して楕円曲線の離散対数を解こうとしています(G = kpのkを見つける)ので、cでの実装を検索し、取得した関数 に問題固有のデータを追加した後に見つけましたmainsegmentation fault (core dumped)

これが原因の発言ですsegmentation fault

0 投票する
5 に答える
12014 参照

java - Java で生の 64 バイト長 ECDSA 公開鍵をロードする

raw (r,s) 形式の ECDSA NIST P-256 公開鍵を持っています。java.security.interfaces.ECPublicKey を実装するオブジェクトにロードする簡単な方法はないようです。

署名のチェックに使用できるように 64 バイトの公開鍵をロードする最もクリーンな方法は何ですか?

0 投票する
1 に答える
1746 参照

cryptography - ECDH と ECIES を使用した鍵交換

私は ECC 暗号化プログラミングの初心者です。共有鍵交換に ECDH を使用することと、共有鍵を受信者の公開鍵で暗号化して ECIES を使用することの違いを説明してくれる人はいますか? 秘密鍵が秘密にされている限り、ECIES も安全な鍵交換を提供してくれると思います。ありがとうございました。

0 投票する
1 に答える
8233 参照

java - バイト配列を公開鍵 ECDSA に変換する

ECDSA アルゴリズムを使用してメッセージに署名し、Java で受信者に送信する必要があります。次に、受信者は送信者の署名を確認する必要があります。

したがって、このために、受信者は送信者の公開鍵を持っていますがjava.security.PublicKey、次のコマンドでバイト配列に変換した後、バイト配列形式になります。

ECDSA アルゴリズムの公開鍵の形式 (バイト配列に変換する前) は次のとおりです。

公開鍵:

ただし、問題は、このバイト配列を使用可能な形式に変換してjava.security.PublicKey、受信者による署名を検証することです。

一般に、署名をバイト配列に変換せずに検証する解決策はありますか? 言い換えれば、問題は送信者の公開鍵によって署名を検証することです。任意の方法を使用します。