問題タブ [elgamal]
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 - 楕円曲線 ElGamal Java 実装
キー生成、暗号化、および復号化機能を備えた ElGamal 楕円曲線暗号システムの単純な実装 (Java BigInteger を使用) はありますか? 講義で大学生に説明するために使用できるものはありますか?
たとえば、Paillier 暗号化関数は、一般性を失うことなく、次のようにコーディングできます。
これには最適化 g=(1+n) が含まれており、暗号文 c = (1 + mn) r^n mod n^2 になります。
Java 7 ネイティブ実装や BouncyCastle 実装を提案しないでください。実際の JCA 準拠の複雑な実装は必要ありません。
ありがとう。
openssl - OpenSSL を使用して、または内部で ElGamal を実装した人はいますか?
OpenSSLがElGamalを実装していないことがわかりました。ただし、現在、OpenSSLを使用してElGamalを実装する必要があります。誰かが以前にやったことがあるかどうかは疑問です。そして、それは私の仕事の負担を減らすのに役立つかもしれません. そうでない場合、 OpenSSL内にElGamalを実装することは可能ですか? ElGamalを実装するために DSA のソース コードを変更しようとしましたが、簡単に発見できない問題が発生することはありますか?
java - elgamal で復号化したい場合、ファイルの代わりに文字列を使用するにはどうすればよいですか?
ElGamal 暗号を使用したい。でできますが、Fileでそれを行う方法がわかりませんString。
このような:
}
使いたくないsPrFile。String変数を使いたい。私のキーは次のようなものです:
java - エラーなしで GPG にインポートする弾む城で dsa/elgamal キー ペアを生成します
Bouncy Castle 1.47 API を使用して、DSA / El Gamal PGP キー リングを生成する小さなプログラムを作成しました。鍵の生成はエラーなしでうまくいきます。装甲出力を使用して秘密鍵と公開鍵をファイルにエクスポートし、生成された秘密鍵を GPG (正確には KGpg) でインポートしようとすると、次のエラーが発生します。
[OK] をクリックすると、キーが 1 つしか処理されていないことがわかります。画面では 1024/0 と表示されているため、DSA キーのみを取得したようです。
**編集** Windows で PGP 10.1.0 のキーを開こうとしたところ、「キー リングに不正な (破損した) PGP パケットが含まれています」というエラーが表示されます。
私が使用しているコードを以下に示します。1 つ目は Utility クラス、2 つ目はそれを呼び出してキーを作成するプログラムです。
生成された出力は、「secret.asc」と「public.asc」の 2 つのファイルです。「secret.asc」を GPG にインポートしようとすると、エラーが発生し、El Gamal サブキーがインポートされません。
これの何が問題なのか誰か知っていますか?
c# - ElGamal C#の実装
ElGamal暗号化を実装したい。学校の仕事でこれが必要ですが、復号化を実行したい場合、最後のステップは常に0です。(b / Math.Pow(a、x))%primenumberの原因は常に1未満です。
キーの生成は次のとおりです。
暗号化機能は次のとおりです。
これが私の復号化機能です:
java - GPG 復号化を Java で機能させる (Bouncy Castle)
私はこれらすべてに非常に慣れていないと言って始めましょう。私がやろうとしているのは、暗号化されたファイルを復号化するために Java 内から gpg を使用することです。
私が成功したこと:
同僚に私の公開鍵と彼の秘密鍵を使用してファイルを暗号化し、正常に復号化してもらいました。
反対に行った
別の同僚が、彼向けではないファイルを復号化しようとした場合: 失敗 (予想どおり)
私の鍵はこのように生成されました...
(gpg --version は、1.4.5 を使用していて、Bouncy Castle 1.47 を使用していることを示しています)
gpg --gen-ley
オプション「DSA と Elgamal (デフォルト)」を選択します。
他のフィールドに入力し、キーを生成します。
ファイルは私の公開鍵と別の秘密鍵を使用して暗号化されていました。解読したい。これを実現するために、次の Java コードを作成しました。私はいくつかの廃止されたメソッドを使用していますが、廃止されていないバージョンを使用するために必要なファクトリ メソッドを適切に実装する方法がわかりません。素敵なボーナス。
したがって、このコードを実行すると、秘密鍵のアルゴリズムと形式が次のようになっていることがわかります。
アルゴリズム: DSA 形式: PKCS#8
そして、最後の行で壊れます:
原因: java.security.InvalidKeyException: 不明なキー タイプが org.bouncycastle.jcajce.provider.asymmetric.elgamal.CipherSpi.engineInit (不明なソース) で ElGamal に渡されました。 engineInit(Unknown Source) at javax.crypto.Cipher.init(DashoA13*..) at javax.crypto.Cipher.init(DashoA13*..) ... 8 もっと見る
ここでは、「gpg を使用しないで、代わりに x を使用する」から「弾む城を使用しないで、代わりに x を使用する」まで、その中間にあるものまで、多くの提案を受け付けています。ありがとう!
encryption - Elgamal 暗号化と復号化
ゲームが Elgamal によって暗号化されたデータを送信していて、ゲームが a=g^k mod p と b=(msg)*y^k mod p を送信する必要があるときに (pgy) を持っている場合、(a,b) と受信したメッセージは、次のような 16 進形式です ...... これは単なる例です (真の 16 進ではありません)
... どこが a でどこが b かをどうやって知ることができますか? とにかくそれらを知ることはありますか?だから私はそれらを解読することができます。注:私は(pgy)どのゲームが使用するかを持っています
python - ElGamal キーをテキスト ファイルにエクスポートするにはどうすればよいですか?
文字列を暗号化し、QR コードとして表示する作業を行っています (文字列を base64 でエンコードした後)。
暗号化にはPyCryptoのElGamal秘密公開鍵暗号化モジュールを使いたいのですが、鍵をテキストファイルに保存するエクスポート機能がないのが難点です。何か不足していますか?そうでない場合、それをエクスポートできる賢い方法はありますか、それとも代わりに見るべき何か他のものがありますか?
PS。RSA ではなく ElGamal を使用する理由は、キーを 1024 バイトよりも小さくできるためです。これにより、qr コードが小さくなり、複雑さが軽減されます。
python - ezPyCrypto で ElGamal 暗号化を使用する方法
PythonのPyCryptoモジュール用の素敵な暗号化モジュールezPyCryptoに出くわしました。説明では、ユーザーは RSA 暗号化と ElGamal 暗号化の間で指定できると書かれていますが、コードのどこでこれを指定する必要があるのか わかりません(API here)。
他の誰かがこれを管理したり、ezPyCytpo の経験がありますか? どんな助けでも大歓迎です。
私が話していた説明は次のとおりです。
特徴:
- ezPyCrypto では次のことができます。
- 公開鍵と秘密鍵の生成、エクスポート、およびインポート
- 文字列を簡単に暗号化および復号化する
- 必要に応じて、暗号化されたデータを電子メールに適したテキストとして作成します
- 文字列の署名と検証 (ドキュメントを含む)
- 秘密鍵をパスフレーズで保護する
- 安全なソケットを介してデータを送信するための「ストリーム」を作成します
- 好きな公開鍵のサイズを選択してください (2048 ビットを推奨)
- 公開鍵は RSA と ElGamal から選択し、セッション鍵は IDEA、DES3、Blowfish、ARC4、IDEA から選択します
- 256 ビットのセッション キーと一般的な RSA および ElGamal 攻撃に対する防御により、セキュリティの快適さで休むことができます。