問題タブ [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.
java - この楕円曲線の点の乗算を使用して計算された点は曲線上になく、このクラスは算術例外をもたらします
標準の射影座標を使用して、点の乗算のエラーにスタックが発生します。何を見逃したのかわかりませんが、乗算されたポイントは曲線上になく、算術例外のようなものを出力することがあります。整数は反転できません。
これが私が使用した曲線です:
楕円曲線ドメインパラメータの仕様
楕円曲線デジタル署名アルゴリズムの実装はこちらです。このコードにはmain関数があるので、これを使用して例外をテストします。
ここでPrivateKeyクラス
PublicKeyクラス
楕円曲線
ランドクラス
楕円曲線インターフェース
matlab - Matlab楕円曲線RMP関数
コードは、特定の素数曲線上のすべての点を見つけてプロットします。この m ファイルは、入力として A、B および p を取り、y2 x3 + Ax + B (mod p) 上にあるすべての点 (x、y) を含む 2 つのベクトル X、Y を生成します。
rmp 関数とは何か、なぜそれが使用されるのかを知りたいだけです。matlab のドキュメントで見つけようとしましたが、見つかりませんでした。
sage - SAGE で楕円曲線の点の y 座標を計算しますか?
私はSAGEで定義しました:
私の問題は次のとおりです。
楕円曲線の P の x 座標を知っています 1407284663933896236729058440000
SAGE で y 座標を計算するにはどうすればよいですか? 何か機能?
java - Javaの楕円曲線暗号アルゴリズム
私たちは暗号学のアマチュアのカップルです。Javaで楕円曲線暗号に関連するさまざまなアルゴリズムを実装する必要があります。これまでのところ、楕円曲線暗号に関するWikipediaページから、、、などECDH
のいくつかの主要なアルゴリズムを特定することができました。ECIES
ECDSA
ECMQV
今、私たちはこれらのアルゴリズムの実装をどこでどのように開始するかを理解しようとして途方に暮れています。また、Javaはすでにそのアーキテクチャでこれらのアルゴリズムを提供していますか?または、次のようなAPIを使用する必要がありますかBouncyCastle
(このサイト全体で見られます!)?または、標準コードを使用してアルゴリズムを独自に実装することはできますか?どんな助けでも大歓迎です!
java - 楕円曲線暗号の楕円曲線の基点(G)を生成します
Javaで楕円曲線の基点またはジェネレータを生成するにはどうすればよいですか?
楕円曲線暗号アルゴリズムの実装に使用できるJavaパッケージの開発に取り組んでおり、独自の曲線を使用したいと考えています。ただし、ドメインパラメータのセットを取得できるように、カーブのジェネレータベースポイントを取得する必要があるポイントで立ち往生しています。
どんな助けでも大歓迎です。
java - 楕円曲線における点の乗算
ここで、算術演算用のスタック オーバーフローで次のコードを見つけました。楕円曲線ポイントの加算、2 倍、乗算。私はそれを実行してみ、次の NIST ルーチン ドキュメント [NSA 提供の NIST 楕円曲線用ルーチン] (http://www.nsa.gov/ia/_files/nist-routines.pdf/) に記載されているテスト ケースを使用しました。
コードはコンパイルおよび実行されますが、出力は指定された予測値と一致しません。助けてください。
ios - iOS で ECC を使用する方法
iOSでECCを使用する例はありますか?
Apple Developer Documents の kSecAttrKeyTypeEC に気付きましたが、それを一般的なキー ペアに使用することはできません。
以下のコードは、CryptoExercise の例から変更されています
sanityCheck は常に「errSecParam」を意味する -50 を返します。
使い方がよくわからないので、読んでいただきありがとうございます。
cryptography - Microsoft PlayReady DRM P160 楕円曲線パラメーター
カスタム Microsoft P160 PlayReady 曲線が HSM にフィードされるように、適切に DER でエンコードされた ECC パラメーターを作成しようとしています。P160 曲線は非標準でカスタムであるため、P160 曲線の定義を指定するソースをいくつか見つけました。以下は、1 つのソースへのリンクです。特に、PlayReady 曲線の値については、ウィリアム スタイン著『Elementary Number Theory,A Computational Approach』のセクション 6.4.2 で説明されています。
以下は、P160 PlayReady 曲線パラメーターに関する別の情報源からの影響です。
ECC の場合、Microsoft は Zp 上の楕円曲線を使用しています。ここで、p は 160 ビットの素数です (以下を参照)。曲線は、曲線 y^2=x^3+ax+b 上の点で構成されます。ここで、操作はフィールド Zp に対して行われ、a と b は以下に示す係数です。すべての値は、パックされたバイナリ値として表されます。つまり、Zp を超える単一の値は、単純に 20 バイトとしてエンコードされ、リトル エンディアン順に格納されます。したがって、楕円曲線上の点は 40 バイトのブロックであり、2 つの 20 バイトのリトルエンディアン値 (x 座標の後に y 座標が続く) で構成されます。MS-DRM で使用される楕円曲線のパラメーターは 次の
とおり です。
coefficient b : 0dd8dabf725e2f3228e85f1ad78fdedf9328239e
generator x : 8723947fd6a3a1e53510c07dba38daf0109fa120
*generator y : 445744911075522d8c3c5856d4ed7acda379936f
Order of curve : 89abcdef012345672716b26eec14904428c2a675
These constants are fixed, and used by all parties in the MS-DRM system. この数値を 16 進数で表示すると、モジュラスの「オタクの魅力」が高まります。基本定数 e、pi、および sqrt(2) の数字だけでなく、16 進数でのカウントも含まれます。
この情報に基づいて、基本 ASN.1 ライブラリとして BouncyCastle を使用して、P160 曲線の DER エンコード曲線パラメーターの次の 16 進エンコードを作成しました。これらの曲線パラメータにはシード値が指定されていないことに注意してください。
308195020101302006072a8648ce3d010102150089abcdef012345672718281831415926141424f7302c041437a5abccd277bce87632ff3d4780c009ebe4149704140dd8dabf725e2f3228e85f1ad78fdedf9328239e0429048723947fd6a3a1e53510c07dba38daf0109fa120445744911075522d8c3c5856d4ed7acda379936f02150089abcdef012345672716b26eec14904428c2a675
数学的には、これらの曲線パラメーターは HSM と OpenSSL によって受け入れられますが、生成された P160 曲線ポイントは PlayReady には受け入れられません。同じプロセスを使用して、PlayReady に受け入れられる有効な P256 カーブ ポイントを生成できるので、私の方法に欠陥があるとは思いません。PlayReady P160 の曲線パラメーターを使用した経験のある人はいますか?
encryption - 楕円曲線暗号はブロック暗号として使用できますか?
非対称暗号化を使用してファームウェアを暗号化しようとしています。ブートローダーはフラッシュを復号化して更新します。これは、60MHz で実行される 32 ビット CPU を搭載した組み込みデバイス上にあります。
さまざまな利点があるため、ECCを使用したいと考えています。私は暗号化に慣れていませんが、ECIES に実装されている ECC は、キー生成に ECC を使用し、実際のデータ暗号化に AES を使用することを理解しています。コードと RAM のサイズが原因で、複数の暗号化アルゴリズムをサポートできません。
AES と同じように使用できる ECC の実装はありますか。私が探しているのは、「秘密鍵」を使用してファームウェアを暗号化し、ブートローダーが「公開鍵」を使用してそれを復号化することだけです。
ありがとう。