問題タブ [elliptic-curve]

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 に答える
13161 参照

c# - ネイティブC#を使用したECC秘密/公開鍵の作成

私は、パブリックとプライベートのECCキーペアを生成する方法について、GoogleとMicrosoftのCryptoAPIを何時間も探していました。ECDiffieHellmanCngクラス(http://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellmancng.aspx#Y3081 )に例がリストされていますが、秘密鍵に直接アクセスする方法がわかりません。

プログラムの背景については、TrueCryptセッション、AES事前共有キー暗号化、およびECDH / AES暗号化を管理するためのC#コンソールアプリです。ファイルに保存する公開鍵と秘密鍵のペアを作成するだけの関数が必要です。次に、ラップされたAES暗号化ファイルで生成された鍵を使用する方法のドキュメントを作成します(例のように実行時に生成するのではありません)。また、ファイルをハードドライブに保存する際に発生するすべての脆弱性を認識していますが、このプログラムではそのことを心配しておらず、2台のクライアントコンピューターは安全であると考えています。

また、BouncyCastleAPIを使用したくないことにも注意してください。

0 投票する
0 に答える
1427 参照

java - ECPoint から BigInteger への変換

誰でもこの問題を解決するのを手伝ってもらえますか? 公開鍵を に変換する必要がありBigIntegerます。ここで、公開鍵はECPoint曲線上の点(x,y)です。これを に変換する方法がわかりませんBigInteger。私を助けてください。これが私のコードです:

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

python - 楕円曲線と点のカーディナリティ


現在、ECDSA の楕円曲線の生成に取り組んでおり、いくつかの問題に遭遇しました:
楕円曲線:y**2 = x**3 + ax + b (mod p)
楕円曲線上の点:G = (Gx, Gy)

  1. 楕円曲線のカーディナリティを見つける方法は?
  2. その楕円曲線上の点 Gの次数を見つけるにはどうすればよいですか?


-- に関しては1.: カーディナリティはSEAで見つけることができます(これは大きなモジュールにうまく適合しますp)。Python内にSEAの実装はありますか?
-- に関しては2: Python 内の解決策はありますか?

PS
私の英語で申し訳ありませんが、ありがとうございます。

0 投票する
0 に答える
2673 参照

cryptography - ECDSA の楕円曲線: 「ジェネレーター」の選択

G(Gx, Gy)--ジェネレーターとも呼ばれます--有限体上の楕円曲線 ( EC ) 上の点です。有限フィールド サイズ = p-- プライム モジュラス。

EC(Fp)があるとします:y**2 = x**3 + ax + b (mod p)
ポイントはどのGように選択されるべきですか?

すべてのポイントをEC(Fp)で見つけて、そのうちの 1 つを選択する必要がありますか?
またはGx\Gyどういうわけか特定する必要がありますか?


私が知っている唯一のこと:Gの順序は素数でなければなりません。

PS 私の英語で申し訳ありませんが、ありがとうございます。

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

php - PHP openssl_sign() ecparam キー タイプは、この PHP ビルドではサポートされていません

openssl_sign署名文字列を返していますが、このエラーを出力しています。楕円曲線キーを使用しています

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

encryption - JavaでBouncyCastleの楕円曲線暗号APIを使用した暗号化

bouncy-castleのjava実装で「ECKey」を使用してbyte[]を暗号化/復号化するサンプルコードを探しています。特に、アルゴリズムやパディングなどを指定する方法を知る必要があります。

前もって感謝します

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

java - Bouncy Castle で SHA256 を使用する ECDSA が No such Algorithm Exception をスローする

次のようにECDSAwithSHA256を使用して署名を生成しようとしています。Bouncy Castle

  1. 最初にプロバイダーを追加します
  2. 私はECPrivatekeyを構築しました
  3. /li>

しかし、ステップ3はスローし"java.security.NoSuchAlgorithmException: no such algorithm: SHA256withECDSA for provider BC"ます。

ただし、例外なくプリシード"SHA256withECDSA"に置き換えた場合も同じです。"SHA1withECDSA"

それはどのように可能ですか?を使用して"bcprov-jdk14-121.jar"います。

ずっと悩んでいるので、どなたか助けていただけないでしょうか?

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

java - 楕円曲線公開鍵を圧縮またはエンコードしてネットワーク上に配置するにはどうすればよいですか?

ドキュメントに署名してネットワーク経由でアプリケーションサーバーに送信する分散デジタル署名を開発しています。Javaでソケットプログラミングを使用しています。公開鍵はエンコードまたは圧縮する必要があると思います。つまり、x値とy値は、何らかの形で単一のバイナリデータとして表され、公開レジストリまたはネットワークに保存されますが、Javaでそれを行う方法がわかりません。

公開鍵とドメインパラメータをエンコードする方法を知りたいので、署名の検証者はそれを使用するためにそれをデコードします。なぜなら、それらをネットワーク経由で検証者に送信するときは、をシングルバイト配列としてエンコードする必要があるからです。 .iはBouncyCastleProviderを使用していません。ECDSAアルゴリズムの実装全体が私のプロジェクトです

0 投票する
0 に答える
2148 参照

python - 公開鍵 (ピアキー) のみを提供して、ECDH 経由でデータを暗号化して送信する方法は?

非対称暗号化を必要とするプログラムをコーディングしています。私のアプローチは Python の M2Crypto を使用しており、アルゴリズムとして ECDH を選択しました。ただし、受信者の公開鍵のみを必要とする RSA のように手順を単純にしたいとも考えています。ECDH ではありません。その公開鍵は、最初に送信者自身の公開鍵と組み合わせる必要があるようです。したがって、共有秘密が計算され、すべてが完了します。

効率に関係なく、誰かが私にメッセージを送信したい場合、私の EC 公開鍵が公開され、送信者は次のことを行う必要があるため、そのようなソリューションが必要です。

  1. 自分の EC 秘密鍵を取得する
  2. この秘密鍵を私の公開鍵と組み合わせて、共有秘密鍵を計算します
  3. シークレットと AES またはその他の対称暗号を使用してメッセージを暗号化する
  4. 暗号文と派生した公開鍵 (この秘密鍵から) を送ってください。

しかし、ここに問題があります。どちらかの側が同じ曲線パラメーターに基づいて鍵を生成した場合にのみ、鍵交換が成功することがわかりました。しかし、公開鍵がどの曲線に基づいているかについて追加情報を提供しない限り、これを理解する他の方法はありますか? 公開鍵には以下がロードされます。

EC.EC_pub インスタンスが返されます。この例では、曲線に関する情報がどこかに隠されているはずですが、どこにあるのかわかりません。

私が見逃したもの、または私の解決策が間違っていた、またはもっと簡単にできるかどうか、またはその他の提案を指摘してください。ありがとう。