問題タブ [spongycastle]
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 - 曲線名と未加工の秘密鍵/ポイントがわかっている場合、PrivateKey を作成する方法は?
要件: 指定された名前付き曲線について、受信者が EC PrivateKey を構築できるように、できるだけ少ないデータを送信します。
現在、Android で BouncyCastle/SpongyCastle を使用しています。これは私が今まで理解したことです。
ここで、Bouncy/Spongy キャッスルを使用して、derEncoding に存在する他の情報なしで、秘密鍵の実際のポイントを取得します。
質問: ポイントD ( privateKeyParam.getD()
) と曲線名を使用するだけで、PrivateKey オブジェクトを再構築するにはどうすればよいですか? 曲線名を使用して、ECCurveParameters を取得できます。
編集:ECPrivateKeyParameters
秘密鍵ポイント ( praram.getD()
) を使用して構築することはできますが、 から PrivateKey を生成する方法がわかりませんでしたECPrivateKeyParameters
。
java - AlgorithmParameterSpec なしで KeyAgreement を使用できますか?
SpongyCastleで動作する私の Android アプリケーションでは、特定の楕円曲線( prime192v1 )を使用してECDH キー交換を実行したいと考えており、このコードを使用してプライベートおよびパブリック パラメータの byte[] 表現を生成しています。
ここで、Alice と Bob が秘密鍵をローカルに保存し、交換pubK1
しpubK2
て、共有秘密鍵の設定に進みたいと仮定します (両方の鍵がbyte[]
フォーマットされています)。ボブの場合は同じなので、アリスの場合のみ説明します。
ここで私の質問があります - 次のコードを使用して、アリスとボブの両方に同じ共有秘密を取得することができました
しかし、私は私の特別な曲線prime192v1をどこにも指定していません
この方法でこれを提供しようとすると:
と言って例外がスローされます
必要なパラメータを指定できないのはなぜですか? KeyAgreement
秘密鍵から何らかの形でこれを推測しますか?
ありがとう!
java - Serpent GCM 弾む城の実装が Android で非常に遅い
Bouncy Castleの最新ソースを使用して、Serpent GCM 暗号化を実装しました。
私のデスクトップ マシン (Windows Core i7) で完全に動作します。5Mb のファイルを暗号化するには、約 190 ミリ秒かかります。しかし、突然、Samsung Galaxy 4 タブレット (Android 5.0.1) に展開された同じコードが、同じファイルの同じ暗号化を行うのに 40 秒かかりました。Huawei Acend G300 (Android 2.3.6) を試したところ、わずか 17 秒しかかかりませんでした。
また、 Spongy Castleで同じ暗号化をテストしましたが、残念ながらパフォーマンスは向上しませんでした。
- なぜデスクトップと劇的に異なるのか、また、Samsung Galaxy s4 タブレットよりも強力ではないデバイス Huawei の方が暗号化時間が速い理由を教えてください。
- Android でコードのパフォーマンスを向上させる方法はありますか?
よろしくお願いいたします。
java - PEM 公開鍵を DER 公開鍵に変換する方法は?
PEM でエンコードされた REST API から公開鍵を受け取ります。ここで、オブジェクトとして保存するためにエンコーディングを DER に変更する必要がありPublicKey
ます。ただし、残念ながら、次のエラーが表示されます。
java.lang.IllegalArgumentException: getInstance の不明なオブジェクト: org.spongycastle.asn1.ASN1Integer
エラーは次の行を指しています。
公開鍵は次のようになります。
これが私のコードです: