問題タブ [ed25519]
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.
cryptography - Ed25519 のどのような実装が存在しますか?
新しい SQRL 認証スキームは、Daniel Bernstein によって開発された Curve Ed25519暗号化に依存しています。ただし、このスキームの実装を開始するには、最初に Curve Ed25519 の成熟した実装が必要です。
成熟した実装を知っている人はいますか? Java、.NET、またはその他の一般的なプラットフォームの場合は?
java - Base64 でエンコードされた 512 ビットのデジタル署名の最後の文字の範囲は?
さまざまなスタック Q&A を通じて、Base64 でエンコードされた 256 ビットの数値には=
パディング用の 1 つがあり、AEIMQUYcgkosw048
.
==
Base64 でエンコードされた 512 ビットの数値には、ビット商のために2 つのパディングがあると確信しています。
Base64 でエンコードされた 512 ビットの数値の場合、最後の文字の範囲は? ビットの商のモジュラスは同じですが、256 ビット エンコードと 512 ビット エンコードの両方で最終的な文字範囲が同じであることを意味しますか?
これは、スペースの節約と、読み取り可能な Ed25519 署名の正規表現のためのものです。
具体的には、Javabyte[64]
をStrings
withに変換していorg.apache.commons.codec.binary.Base64
ますencodeBase64
。
hash - ed25519-donna でハッシュする方法
プログラミングに関する質問をして申し訳ありませんが、このライブラリを暗号的に適切に使用していることを確認したいと思います。
署名用のデータのハッシュを除いて、ed25519-donnaを実装することができました。
私が知る限り、これはデータをハッシュする関数です:
しかし、私は *hash が何であるかを理解できません。*in
およびinlen
がハッシュされるデータとその長さであることはかなり確信しています。
それはSHA512に固有のものですか?
どうすれば ed25519-donna でハッシュできますか?
プログラムがハングする
ed25519-donna-master/ed25519.o
とOpenSSL flags を使用してコンパイルしました-lssl -lcrypto
。キーの生成、署名、および検証機能は期待どおりに機能します。
エラーなしで実行されていますが、アプリケーションはこれらの行でハングし、コアは 100% で実行されていないため、処理がビジー状態ではないと思います:
このコードを変更してed25519_hash
機能させるにはどうすればよいですか? hash
andin
がs であるunsigned char*
かどうかに関係なく、同じように機能しuint8_t*
ます。
についてuint8_t*
は、次のコードを使用しました。
java - Java と Javascript Ed25519 実装間の相互運用性
ed25519 -javaとjs-naclの両方に、ed25519 暗号署名メソッドが実装されています。ただし、ed25519-java から公開鍵と署名付きメッセージ (公開鍵に対応する秘密鍵を使用して署名) を取得し、js-nacl の公開鍵を使用して署名付きメッセージを検証しようとしました。これによりnull
値が得られました。つまり、署名されたメッセージを公開鍵で開くことができませんでした。
私の質問は、Java にサインインし、Javascript で署名を検証することは可能ではないでしょうか? ある場合、またはない場合、その理由は何ですか?
Java コード:
checkvalid 呼び出しは true を返します。
出力署名:oFMU_mC_zzZcJP2C-uTqsyUHoyLUSnwirJbhcdkSTnj2nI_p-VgKAqN5bFMPKsKYiWvyiUgHWu3s4OyB9WbKDg
出力公開鍵:O2onvM62pC1io6jQKm8Nc2UyFXcd4kOmOsBIoYtZ2ik
JavaScript コード:
x
は null ですが"www.example.com"
、署名を公開鍵で開くことができた場合は出力として与える必要があります。
動作に影響があるかどうかはわかりませんが、Java のバイト配列は符号付きですが、js-nacl は Javascript のUint8Array
符号なしバイト配列を使用します。
algorithm - 署名の圧縮
ある当事者が作成した 64 バイトの署名 (ed25519 から) があるとします。この当事者は、署名をさらに圧縮して、基数 2048 で 4 ~ 8 桁になるようにする必要があります。次に、第 2 の当事者がデータから署名を再作成できる必要があります。
10 進数の署名の例を次に示します。
5670805304946899675614751184947294808143702505785021095830828785725573127924144977212837580418240432902375737987653828318622222068237988634991262293689098
この署名を基数 2048 で約 4 桁に圧縮するにはどうすればよいですか? これは数独圧縮を使用して可能ですか?
hyperlink - JDK8 で静的ライブラリ (Ed25519) をリンクしてロードする方法
Ed25519 の最も最適化された実装 ( http://ed25519.cr.yp.to/ ) には、C とアセンブリ コードの両方が含まれています。私のプログラムは Java で実装されているので、Ed25519 用の共有ライブラリ (.so) を生成したいのですが、失敗しました。これはおそらく、Ed25519 アセンブリ コードが -fPIC をサポートしていないためです (間違っていた場合は指摘してください)。JDK 8 は静的リンク ( Linking static library with JNI ) をサポートできるようですが、オンラインで見つけることができる例はありません。スタティック ライブラリ (.a) を生成して、単純に JNI で共有ライブラリとして読み込もうとしたのですが、明らかに Java では受け入れられません。実際には、スタティック ライブラリをリンクして Java プログラムにロードするにはどうすればよいでしょうか。
ssh - ED25519 公開鍵の WinSCP
ED25519 公開鍵を使用してサーバーに接続しようとしましたが、WinSCP ではサポートされていないようです。問題は、鍵を WinSCP でサポートされているものに変換するにはどうすればよいかということです。
putty - Putty 0.67 のログインに失敗した ED25519
Putty 0.67 が ED25519 をサポートしているかどうかはわかりません。私の場合、キーはコマンド ライン mod (DOS または BASH) で正常に機能しますが、Putty では機能しません。
切断: サポートされている認証方法がありません (サーバーが送信: publickey)