問題タブ [encryption-asymmetric]

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 投票する
5 に答える
13310 参照

public-key-encryption - 公開鍵を使用した大きなファイルの暗号化

公開鍵を使用して 100KB のファイルを暗号化する必要があります。公開鍵を使用して大きなファイルを直接暗号化することは実用的ではなく、対称鍵を使用してファイルを暗号化し、次に公開鍵を使用してこの対称鍵を暗号化することが推奨される方法であると主張するいくつかの投稿を読んでいます。単純な解決策は、大きなファイルをバラバラに分割し、同じ公開鍵を使用してそれぞれを暗号化することです。私の質問は、この解決策が間違っているかどうか、またその理由は何ですか?

0 投票する
4 に答える
1805 参照

python - RSAアルゴリズム用のPythonパッケージ

Pythonの短い文字列でRSA暗号化を実行しようとしています。これは、スタッフ(自分自身を含む)が表示できないように保存したいユーザーデータ用です。秘密鍵は、召喚状が提出されたときのために、貸金庫のサムドライブにあります。

私の質問:非対称鍵RSA用の「おそらく正しい」Pythonパッケージはありますか?Cライブラリを使用する方が安全ですか(ある場合はどちらか)。

0 投票する
5 に答える
3531 参照

encryption - 非対称暗号化

明日、Advanced Developmentの試験がありますが、暗号化のトピックにこだわっています。http://support.microsoft.com/kb/246071で読んだことがあります。しかし、私はまだ混乱しています。

メッセージが非対称暗号化を使用して公開鍵を使用して暗号化されている場合、復号化機能はメッセージを復号化するための秘密鍵をどのように認識しますか?確かにこれを行う唯一の方法は秘密鍵を公開することですが、それは非対称暗号化の目的を打ち負かします。

誰かがこれを非技術者が理解できるような方法で説明できますか?私が理解していない唯一の非対称暗号化であり、対称暗号化ではありません。前もって感謝します。

よろしく、

リチャード

編集:Webアプリケーションの場合のすべての答えを要約すると(これについて知る必要がある特定の用途):

  1. ユーザーがWebサイトにアクセスします。
  2. ユーザーは公開鍵を提供するように求められます。
  3. ユーザーは公開鍵と秘密鍵のペアを作成し、秘密鍵を秘密にして、公開鍵をサーバーに送り返します。
  4. サーバーは公開鍵を使用して、ユーザーに送信する必要のあるものをすべて暗号化し、情報をユーザーに送信します。
  5. ユーザーは自分の秘密鍵を使用してサーバーからの応答を復号化します。
  6. ユーザーは必要なことを実行し、秘密鍵を使用してサーバーに応答を送信します。
  7. サーバーは公開鍵を使用して復号化します。手順4〜7は何度も続く場合もあれば、1回だけ発生する場合もあれば、4と5だけが発生する場合もあります。

これはすべて正しいですか?もしそうなら、それは私が試験のために知る必要があるすべてであるはずです。このテーマに関する質問が出た場合、最大40%を取得するには、これ以上知る必要があるとは思わないでください。ただし、証明書と署名の存在については言及します。

助けてくれてありがとう。

よろしく、

リチャード

編集:まあ、私はちょうど私の試験から戻ってきました、そしてそれは私が思うにかなりうまくいきました。しかし、暗号化についての質問は出てきませんでした...とにかく助けに感謝しました。皆さんありがとう。

よろしく、

リチャード

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

sql-server-2005 - SQL Server 2005 で既存の列の安全な暗号化を使用する方法

UPDATE ステートメントを使用して SQL Server 2005 の既存の列を暗号化し、古いコンテンツを新しい暗号化された列に移動したいと考えています。

したがって、対称と非対称の 2 つの選択肢があります。

私が抱えている問題は、対称キーを使用すると、次のような列を読み取るためにパスワードを SP に埋め込む必要があることです。

データを選択したい場合でも、キーを再度開く必要があります

ストアド プロシージャ内にプレーンテキストのパスワードを埋め込んでいるので、これは重要な点ではありません。

いくつかの質問

  1. これを回避する方法はありますか?つまり、このパスワードを使用して証明書を作成し、代わりに証明書を参照しますか?
  2. この証明書は (SSL のように) 購入する必要がありますか、それとも独自に作成できますか?
  3. この方法は、フェールオーバー クラスター化されたデータベース全体で拡張可能ですか。つまり、暗号化はマシンに基づいておらず、提供されたパスワードのみに基づいています。したがって、フェイルオーバーは引き続きパスワードを読み取ることができます

ご協力いただきありがとうございます

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

python - Python 非対称暗号化: 事前に生成された prv/pub キーの使用

まず最初に、Google と stackoverflow を検索し、いくつかの読み取りを行いました (この座っているだけで 4 時間以上) が、次の理由で必要なものが見つかりませんでした:

  • それらの多くは、gpg.exe (http://stackoverflow.com/questions/1020320) のような exe を起動することを提案しています。

  • PyCrypto または他のライブラリを使用してそれらを調べることを提案した人もいます。a) API の使用方法が見つからない、b) 既存の prv/pub キーをインポートする方法が見つからない、または c) 彼らは安全でない RandomPool を使用します (更新しようとしているのは、トラブルを求めているだけです)。

  • ついでに言及する人もいますが、彼らがどこにリンクしているのかを見つけることができませんでした(またはリンクがまったくありませんでした.

だから私は知っている仲間のstackoverflowユーザーに、どうすればこれを行うことができるかを尋ね、公開鍵の文字列(またはパス)を取得します(一時ファイルに書き込むことができます(文字列pub_key = ".. ." ) ) ) を使用し、文字列 (フォーラム (アプリケーションを更新するための JSON) に投稿される文字列) に署名して保護しますか?

また、これらは PuttyGen を使用して生成された RSA キー (Putty Gen 4096 ビット SSH-2-RSA) です (任意の形式 (OpenSSH、ssh.com、ppk) にすることができます)

公開鍵はこんな感じ

---- SSH2 公開鍵の開始 ----

コメント: 「rsa-key-20101003」

AAAAB3NzaC1yc2EAAAABJQAAAgEAi+91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf WQ0ROoJC+XIqW5vVJfgmr+A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu WkLKFK1h67q6Coc+3eOTmKrOuZbWc19YQgybdkR/GxF7XAbq4NCGNaCDtMOqX8Q2 L/a9fAYqVdTwg9trpcz3whNmdLk/B0edOABKuVX51UdLV+ZggK503+uAb1JiIIj0 mARwR/HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4+YmsrLJb/TpfJeXA vj4KZMNJv15YXz7/iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b/lX9SJ SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF/QXOcxWFJkZoj36rvMd9n Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0 MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ+7I MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I/iEC58ekdrH35tq5+1ilW dkk9+rrhUy4qrZ+ HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10 o+TPSK8=

---- SSH2 公開鍵の終了 ----

これではありません --> キー形式は PKCS1 のように見えるため、M2Crypto は機能しません (キーのロード関数は PEM を想定しています)。

最近読んだのは SSH Public Key File Format (RFC: http://www.ietf.org/rfc/rfc4716.txt )だと思います

また、以下は間違っていると思います.SSH公開鍵ファイル形式を処理しているとは思いません:(

また、ツイストは私が見るべき場所かもしれません

http://www.java2s.com/Open-Source/Python/Network/Twisted/Twisted-1.0.3/Twisted-1.0.3/twisted/conch/ssh/keys.py.htm

また、なぜ SO はすぐに報奨金を投稿することを許可しないのですか??

0 投票する
3 に答える
3377 参照

brute-force - 特定のファイルを繰り返し暗号化することは、どれほど実用的でしょうか?

私は現在、公開鍵と個人ファイルの暗号化の両方を試しています。私が使用するプログラムには、それぞれ 2048 ビットの RSA と 256 ビットの AES レベルの暗号化があります。このようなことの初心者として (私は約 1 か月間サイファーパンクであり、情報システムには少し慣れていません) RSA アルゴリズムに精通していませんが、ここでは関係ありません。

秘密の研究所や NSA のプログラムがたまたま量子コンピューターを持っていない限り、これらのプログラムが提供するセキュリティ レベルをブルート フォース ハッキングすることは現在のところ不可能であることはわかっていますが、ファイルを暗号化して暗号化することで、どれだけ安全になるのか疑問に思っていました。もう一度。

一言で言えば、私が知りたいのはこれです:

  1. 256 ビット AES を使用してファイルを暗号化し、既に暗号化されたファイルを (再び 256 を使用して) もう一度暗号化すると、512 ビット AES セキュリティと同等になりますか? これは、ブルート フォース メソッドが潜在的にテストしなければならない可能性のあるキーの数が、2 x 2 の 256 乗または 2 の 256乗の 2 乗になるかどうかという問題です。悲観的に言えば前者だと思いますが、256-AES で 2 回暗号化するだけで本当に 512-AES が実現できるのでしょうか?
  2. ファイルが何度も暗号化されると、暗号化の各レベルで異なるキーを使用したり、パスワードを入力したりしなければならなくなります。おそらく、複数の異なるパスワードを必要とするファイルを数回暗号化した場合、クラッカーは暗号化の最初のレベルを突破したかどうかを知る方法がないのではないかと考えていました。ファイル。

次に例を示します。

  • 復号化されたファイル
  • DKE$jptid UiWe
  • oxfialehv u%uk

最後のシーケンスがクラッカーが操作しなければならなかったものであると少し考えてみてください。ブルートフォースで元のファイルに戻るには、(次のレベルの暗号化をクラックする前に) 得なければならない結果が引き続き表示されます。第 1 レベルの暗号化を突破すると、まったく役に立たないファイル (2 行目) になります。これは、ブルート フォースを使用しようとする人は、おそらく暗号化されたファイルしか表示されないため、元のファイルに戻る方法がないということですか?

これらは基本的に、同じことを扱う 2 つの質問です。つまり、同じファイルを何度も何度も暗号化することの影響です。私は Web を検索して、暗号化の繰り返しがファイルの安全性にどのような影響を与えるかを調べましたが、最初の質問に対する答えが「いいえ」であるという逸話をどこかで読んだことを除けば、同じトピックに関する 2 番目のスピンに関連するものは何も見つかりませんでした。 . 私は特に最後の質問に興味があります。

**仮に、彼らがどうにかして脆弱なパスワードを強引に突破したと仮定すると、安全なパスワードを作成する方法を知っていれば、これは現在 256-AES で技術的に可能であるように思われるためです...

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

c# - .NET での RSA 暗号化 - JAVA での復号化 -> Java で「モジュラスが正ではない」というエラーがスローされる

sso を実装しているサード パーティ ベンダーに問題があります。私の署名を確認すると、次のエラーが表示されます。

java.lang.ArithmeticException: BigInteger: モジュラスが正でない - java.math.BigInteger.modPow(BigInteger.java:1556) で

私は彼らの Java コードを制御できません。これが私が今していることです:

次のコードを使用して、C# でキー ペアを作成しました。

署名のコードは次のとおりです。

(はい、秘密鍵はキー ストアにある必要があることはわかっています)。

これは、xml キーを変換するために使用するコードです (これは Java です)。

0 投票する
12 に答える
98394 参照

math - 短いRSAキーを解読する

次のRSAキーを考えると、 pqの値をどのように決定するのでしょうか。

0 投票する
4 に答える
802 参照

c# - 2 つのクライアント間でメッセージを送信する場合、送信者の身元を確認する方法は?

したがって、C1 と C2 の 2 つのクライアントがあり、各クライアントには GUID が関連付けられているとします。

C1 から送信されたと思われるメッセージを C2 で受信した場合(GUID をチェックし、それが C1 の GUID と一致することを確認することによって)、メッセージが C1 から送信されたことが保証されていないため (C3 が送信した可能性があるため)、どうすればよいでしょうか。メッセージ ヘッダーで C1 の GUID を送信するメッセージ)、メッセージが実際に C1 から送信されたことを確認する必要があります。

私は、非対称暗号化 (RSA) を使用して、C1 に で構成されるメッセージを送信[C1.GUID; RSAEncrypt(C2.PUBLIC_KEY, C1.GUID); MESSAGE]させ、次に C2 に基本的に次のようなチェックを行わせることを検討しています (python 擬似コード):

これは実行可能なアプローチですか?または、メッセージの送信者を確認するための他の賢い/より明白な方法はありますか?

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

vb.net - 非対称アルゴリズムへのx509証明書キー

私は自分の主張を正しく理解していたかどうかわからないので、この質問をやり直します。

私はsignedXMLオブジェクトを持っています

このオブジェクトのSigningKeyプロパティを設定する必要があります

証明書オブジェクトもあります

証明書を使用してsignedXmlのSigningKeyプロパティを設定するにはどうすればよいですか。

.NET 2.0では、各X509CertificateにRSA​​オブジェクトを返す「Key」プロパティがありましたが、3.5ではこのプロパティが削除されています。