web-dev-qa-db-ja.com

RSAとAESを組み合わせることは可能ですか?

自分のパソコンのフォルダを暗号化する新しいプロジェクトに取り組んでいます。ファイルの送信は必要ありません(ネットワーク)。保護とセキュリティのためだけのものです。 RSAとAESを組み合わせて、パスワードを使用してフォルダーを暗号化/復号化することはできますか? (これは研究目的のみです)

1

はい、確かに。これは ハイブリッド暗号システム と呼ばれます。

一般的なスキームは、RSA公開鍵と秘密鍵のペアを作成し、秘密鍵をパスワードで暗号化することです。これには パスワードベースの暗号化(PBE) を使用できます。作業係数/反復回数が多い、適切なKBKDF(より一般的にはパスワードハッシュとして知られている)を使用していることを確認してください。

これで、ランダムなAESデータキーを生成してデータを暗号化できます。キーペアの公開キーを使用してこれらのAESキーを暗号化し、データと一緒に保存します。復号化する必要がある場合は、パスワードを使用して秘密キーを復号化し、データキーを復号化して、最後にデータを復号化します。

これは非常に一般的なスキームですが、たとえば、 OpenPGP 何十年もの間。インプレース暗号化については、依然として安全であると見なされています。より安全なものが必要な場合は、上記のプロトコルのどの部分を考慮するかを説明する必要がありますinsecure。すでに安全であると考えられているプロトコルを強化する既知の方法は本当にありません。

特別なものを作成したい場合は、RSAの代わりに post-quantum cryptography を使用してください。また、RSA/OAEPやAES/GCMなどの最新の構成体のみを使用することもできます(ただし、大きなファイルや多数のファイルには、GCMを注意して使用してください)。

3
Maarten Bodewes

はい、対称暗号化と非対称暗号化は組み合わせて使用​​されることが多く、多くの場合、ハッシュやその他の手法を併用して、所定の目標を達成します。 TLSの場合、高価で低速の非対称暗号化を使用して、データ交換に使用される高速で安価な対称鍵に同意します。非対称鍵は通常大きく、マシンで生成されます。使用できるようにするが、ストレージ(PGPやsshなど)で保護するために、対称アルゴリズムと人間が選択した鍵を使用して暗号化されることがよくあります。

それらは異なる問題を解決するので、両方の手法を同じタスクに適用しても意味がありません。

他の既存のフォルダーロックソフトウェアとは何らかの形で異なるソフトウェアを作成する必要があります。

危険、ロビンソンになります!!!!!

よく書かれた暗号化ソフトウェアをリミックスしている場合でも、安全ではないものになる可能性があります。あなたの質問は、あなたの前にまだ長い旅があることを示しています。

解読に抵抗する能力は、主にアルゴリズムとキーサイズに依存します。これがツールの他のコンポーネントとどのようにパックされているかによって、サイドチャネル攻撃が開かれる可能性があります(たとえば、cbcではなくecbを使用し、IVを使用せず、プレーンテキストキーをファイルに残し、キー交換を妨害するメソッドを公開します...) 。複雑さはセキュリティの反対ではありませんが、それらはしばしば対立する力です。

これらの脆弱性を抱えている専門家によって書かれたツールはたくさんあります。市場で目立つものを書きたい場合は、他の人とは異なる方法で暗号化を行う必要がないUSPを見つけてください。他の誰もが理由でそのようにしています。

2
symcbean

確かに、それはまさにWebブラウザがHTTPS Webページで行うことです。

それらはRSA(非対称暗号化)を使用して、サーバーとクライアントの通信のための秘密鍵(AESによる対称暗号化)を共有します。

2