問題タブ [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.
performance - pkiと対称暗号化のパフォーマンスの違いは何ですか?
私たちはプロジェクトでいくつかの厳しいセキュリティ要件を実行することを目指しており、パフォーマンスの高い多くの暗号化を実行する必要があります。
PKIは対称暗号化よりもはるかに低速で複雑であることは知っていると思いますが、自分の気持ちを裏付ける数字が見つかりません。
ruby - RubyからRSA秘密鍵を開く
カスタム暗号化RSAキーを作成する方法は知っていると思いますが、ssh-keygenのように暗号化されたRSAキーを読み取るにはどうすればよいですか?
私はこれができることを知っています:
しかし、OpenSSLはパスフレーズを要求します...どうすればそれをパラメーターとしてOpenSSLに渡すことができますか?
そして、どうすればssh-keygenによって生成されたものと互換性のあるものを作成できますか?
暗号化された秘密鍵を作成するには、次のようにします。
また、OpenSSL :: PKey :: RSA.new(1024)(暗号化なし)によって生成されたキーは、パスワードなしのログインを試みたときに機能しません(つまり、公開キーをサーバーにコピーし、秘密キーを使用してログインする)。
また、OpenSSLを介してssh-keygenファイルを開き、その内容を確認すると、キーの最初と最後に追加の文字が含まれているように見えます。これは正常ですか?
私はこのセキュリティ関連のいくつかを本当に理解していませんが、私は学ぼうとしています。私が間違っているのは何ですか?
keystore - トラストストアとキーストアの定義
キーストアとトラストストアの違いは何ですか?
java - Javaでの公開鍵暗号化に関するチュートリアルはありますか?
対称暗号化とハッシングに関する情報を見つけることができましたが、Java のあらゆる種類の公開鍵暗号化に関する多くの情報を見つけるのにかなり苦労しました。私がやりたいのは、文字列 (または私が推測するファイル) を取得し、公開鍵で暗号化し、秘密鍵で復号化する非常に単純な概念実証プログラムを作成することです。
チュートリアルのリンクや例をいただければ幸いです。Java で公開鍵暗号を使用する方法を示すものを作りたいだけです。
security - データを暗号化したので、キーをどこに隠せばよいでしょうか?
機密情報を含むデータベースがあります。読み書き操作でデータを暗号化/復号化できます。問題は、キーをアプリケーションに保存する必要があることです。誰かがデータベースにアクセスできるようにハッキングした場合、アプリケーション (Java) を取得して、それを逆コンパイルし、キーを取得することもできます。
これはせいぜいスピードバンプのようです。他にどのようなソリューションがありますか?
.net - 秘密鍵が与えられた場合、その公開鍵を導き出すことは可能ですか?
さまざまな資料を読んで少しでも理解できるように、公開鍵と秘密鍵のペアは非対称暗号化の基礎であり、2 つの素数 (おおよその秘密鍵) の選択とそれらの乗算 (おおよその公開鍵) に関するものでもあります。秘密鍵を知っていれば、公開鍵を生成できるようです。それは正しいですか、それとも何か間違っていますか?
私をさらに混乱させたのは、(.NET クラスの RSACryptoServiceProvider を使用して) 秘密鍵のみを使用して RSA キーを XML にシリアライズできないことでした。この制限が意図的なものかどうかはわかりません!
xml - X509証明書の暗号化/復号化
XML セキュリティを学び始めたばかりです。VS-2005 と ASP.Net 2.0 があります。XML を外部 URL に送信したいのですが、暗号化する必要があります。MSDN の記事ms229744とms229943が行っていることを正確に行っていますが、DecryptDocument() メソッドを実行すると、「復号化キーを取得できません」というメッセージが表示され続けます。私は SSL Web 証明書を使用しています。現在、X509Certificate を使用して XML にデジタル署名していますが、問題なく動作しています。
また、他の人に別のショップからこれを試すように依頼しましたが、同じエラーが発生しています. X509 復号化方法に関する文書化された問題はありますか? 以下のテスト コードでは、XML を復号化しようとしている別の Web ページに XML を投稿しています。私が理解していないのは、公開鍵が埋め込まれているかどうかを確認することさえしない場合、DecryptDocument() メソッドがどのように機能するかということです。これが問題ですか?もしそうなら、それが XML に埋め込まれていることを確認するにはどうすればよいですか? どんな助けでも大歓迎です。ありがとう!
JP
cryptography - このタスクに暗号化メッセージ構文 (CMS) を使用する必要がありますか?
デスクトップ アプリケーションとモバイル デバイスの間で小さなバイナリ メッセージ (長さ 1 または 2 KB) を転送するタスクがあります。メッセージは非対称に暗号化する必要があります (RSA など)。私が学んだことから、この種のタスクにはハイブリッド暗号システムを使用する必要があります。
- ランダムな対称鍵を生成
- プレーンテキストを対称鍵で暗号化 (たとえば AES を使用)
- 対称鍵を公開鍵で暗号化する
- 暗号文と暗号化された対称鍵を送信する
暗号文と暗号化された対称鍵を格納するための独自の形式を発明したくありません。そこで、CMS 標準 (暗号化メッセージ構文) に出くわしました。一見すると、私が必要としているものとまったく同じように見えます。標準を正しく理解していれば、暗号文と暗号化された対称鍵、および使用されているアルゴリズムに関する情報が埋め込まれています。
概説されたタスクに CMS 標準を使用する必要があるかどうか、誰にも言えませんか? OpenSSL の CMS サポートは私のニーズに十分ですか?
乾杯、クリスチャン