現在、バイナリファイルの暗号化にGPG RSAキーを使用しています。多くの人々は対称鍵を使用して大きなファイルを暗号化し、対称鍵を公開鍵で暗号化することを推奨しています。
どのファイルサイズでRSAからAESなどに切り替える必要がありますか?それは恣意的ですか?大容量ファイル(ギガバイト)でGPG/RSAを使用することでセキュリティ上の問題はありますか? RSAの方がはるかに遅い/大きいことを知っています。他の問題があったのではないかと思っています。
新しい対称AESキーを生成し、ファイルを暗号化し、RSAを介してキーを暗号化し、ファイルを暗号化するたびにAESキーを保存するよりも、RSAを使用して直接暗号化するほうがはるかに時間がかかります。そのため、なぜそれを使うべきなのかを尋ねています。
本当にどんなファイルサイズでも。対称暗号化は一般的に、与えられた鍵長に対してはるかに高いレベルのセキュリティを提供します。このため、128ビット対称アルゴリズムを使用できますが、1024または2048ビット非対称アルゴリズムを使用する必要があります。暗号化された構造化データが大量にある場合に、特定の非対称アルゴリズムを簡単に見つけられるようにするいくつかの攻撃もあります。さらに、対称アルゴリズムは実行がはるかに高速であり、非対称アルゴリズムはファイルを保護するときに追加の利点を提供しません。
非対称暗号化が必要なのは、キーを交換していない特定の個人と情報を交換する必要がある場合(さらに、対称を使用して、通常は非対称にキーを暗号化する場合)、または何かに署名する必要がある場合(ハッシュ値を非対称に暗号化する場合)。
非対称暗号化は、セキュリティと効率の両方の理由から、ほとんどの場合、可能な限り最小限の情報で使用する必要があります。実際、これは、非対称暗号化を利用する確立されたプロトコルの大部分ではないにせよ、多くがそれに基づいています。
これはsizeの問題ではありません。
RSAと呼ばれる生の非対称暗号化アルゴリズムは、「メッセージ」の非対称暗号化をかなり限られたスペースで実行できます。つまり、2048ビットのRSAキーとPKCS#1 v1.5 RSA暗号化を使用すると、アルゴリズムは最大245バイトの一連のバイトを処理できます。
しかし、あなたは決して生のアルゴリズムを使用しません。 protocolを使用します。この場合は OpenPGP を使用して、使用するアルゴリズムと各バイトの配置先を定義します。 OpenPGPでは、受信者が公開鍵と秘密鍵のペアを持っていて、「公開鍵で」メッセージを暗号化したい(つまり、対応する秘密鍵を知っている人以外はメッセージを読めないようにしたい)場合、OpenPGPを呼び出します。 -OpenPGPルールに従う互換性のあるソフトウェア-これらのルールは、対称暗号化が常に使用されることです:ソフトウェアはランダムな対称キー[〜#〜] k [〜#〜]、[〜#〜を使用して対称アルゴリズムでメッセージ自体を暗号化します] k [〜#〜]をキーとして、暗号化[〜#〜] k [〜#〜] (メッセージではなく)受信者のRSA公開鍵。選択する必要はなく、選択する必要もありません。これがOpenPGPの動作方法です。
独自のsecureプロトコルを設計して実装するsecurelyは2つです信じられないほど難しいタスク(最初は信じられないので「信じられないほど」)したがって、賢いのは自分で行うのではなく、既存のプロトコル(OpenPGPなど)とそのプロトコルの既存の実装(たとえば GnuPG )。その意味で、この質問を自問してはなりません。
PGP、GPG、SSH、およびほとんどの公開鍵システムはすでに内部で対称アルゴリズムを使用しています。
内部的には、公開鍵で暗号化する場合、ソフトウェア/ハードウェアは最初に対称鍵を生成し、対称アルゴリズムでデータを暗号化します。そして、対称鍵を公開鍵で(非対称アルゴリズムを使用して)暗号化し、暗号化された対称鍵を暗号文内に格納します。一方、受信者は、暗号テキストとともに保存されている対称キーを復号化するための秘密キーを必要とし、次に対称キーを使用して暗号テキストを復号化し、メッセージを取得します。これらすべてのステップで、ユーザーに表示される要素は、公開鍵、平文、暗号文、秘密鍵のみです。対称鍵と暗号化はすべて内部で行われ、ユーザーに公開されることはありません。そうすることで、非対称アルゴリズム(公開鍵で複数の人に暗号化できる)の利点だけでなく、対称アルゴリズムの速度も得られます。
これは、GPG/PGPキーのパスワードを変更するときに、公開キーで暗号化されたファイルを以前にまだ復号化できる理由でもあります。キーは実際にはファイルに保存され、純粋な公開キーの良さで本当に暗号化される唯一の部分です!
現在、バイナリファイルの暗号化にGPG RSAキーを使用しています。多くの人は対称鍵を使用して大きなファイルを暗号化し、対称鍵を公開鍵で暗号化することを推奨しています。
これはhybrid cryptosystemとして知られ、特にデータサイズが大きくなる場合に通常行われる方法です。 本質的に対称暗号化は、どの非対称スキームよりも常に高速になります。
大容量ファイル(GB)でGPG/RSAを使用することでセキュリティ上の問題はありますか? RSAの方がはるかに遅い/大きいことを知っています。他の問題があったのかと思っています。
さて、1つの問題はRSAの決定論的性質かもしれません。同じキーを使用して同じ平文を複数回暗号化すると、攻撃者がknown-plaintext attackを実行できるようになる可能性があります。確かに、RSAを非決定的な方法で変更できますが、各暗号化でランダムな対称キーを使用するだけでなく、煩わしいのはなぜですか。
さらに、ハイブリッドアプローチにより、暗号化テキストをオーバーヘッドが非常に少ない1人の受信者よりも多くに送信できます。受信者ごとに対称鍵を暗号化するだけで済みますが、データの大部分はすべての受信者で同じままでかまいません。
時間がかかる場合でも、RSAを使用して直接暗号化する方が、新しい対称鍵を生成してRSAで暗号化し、ファイルを暗号化するたびにそれらを保存するよりもはるかに簡単です。そのため、なぜ使用する必要があるのかと尋ねますそれ。
これはGPGが自動的に処理するです。どのように正確にGPGを呼び出しますか?ハイブリッドアプローチに実際の欠点がない場合、なぜもっと長く待機したいのですか?