GNU/Linux >> Linux の 問題 >  >> Linux

公開鍵暗号とは何ですか(VPNの仕組み、パート2)

「VPNのしくみ」シリーズのこの記事では、公開鍵暗号化(非対称暗号化)のしくみについて説明します。すでに迷子になっている場合でも、慌てる必要はありません。この一連の記事は、VPNを強化する数学を深く掘り下げることなく、VPNの背後にある概念と方法を説明するために書かれています。

VPNの概念にまったく慣れていない場合は、この概要を確認してください。 VPNがどのように機能するかについてもう少し知っていて、もう少し知りたい場合は、このシリーズが最適です。各記事では、VPNが、関連する論理メカニズムのメタファーとして機能するストーリーを伝えることにより、データを保護するのに役立つ手段の1つの側面について説明します。これらの物語には、秘密を守ろうとしているアダムとバートの2人と、彼らの秘密を悪意を持って発見しようとしている3人目のセザールが関わっています。 VPNには完全な物理世界に相当するものがないため、信頼性の限界を広げる要素がいくつかある可能性があります(たとえば、Cesarは複製光線にアクセスできます)。覚えておいてください、それはただの話です…

各記事には拡張可能なセクションもあります(ギア で示されます アイコン)これには、もう少し詳細な説明が含まれています。これは、多少技術的ですが、数学で迷子になりすぎないようにします。これらのセクションでは、ストーリーのイベントを暗号化または認証のコンポーネントまたはステップにもう少し結び付けますが、トピックの基本的な理解を得る必要はありません。

AdamとBurtは、物事を安全に保つために共有対称鍵を備えたロックボックスを使用することの弱点をすでに発見しています。そこで、バートは、それぞれが独自の鍵のセットを持つ新しい方法を試すことを提案しています(非対称暗号化)。

公開鍵暗号化

公開鍵暗号化は、安全でないチャネル(暗号化されていない電子メールなど)で秘密鍵を共有することなく機密性を維持しようとする非対称暗号化手法です。この説明では、AdamとBurtにはそれぞれ固有のロックがありますが、この例の残りの部分では、Burtのロックとキーについて説明します(Adamのロックとキーは同じように機能します)。各ロックには2つの特別なプロパティがあります。1つは、ロックを操作できる2つの別個の関連するキーがあり、もう1つは、ロックを操作できる各キーは、ロックを一方向にしか回転できないことです。この例では、時計回りにしか回転しません。

ペアキー

この非対称システムの2つのキーは、ペアとしてのみ機能します。バートがこのロックのキーを再設定する場合、2つの新しいキーを作成する必要があります。 2つのキーを簡単に区別できるように、Burtはそれらを色分けします。 1つは緑に、もう1つは赤になります。 Burtは、赤い鍵(彼の秘密鍵)を保護しますが、緑の鍵を必要な人(彼の公開鍵)が広く利用できるようにすることができます。これは直感に反するように聞こえるかもしれません。しかし、これらのキーの重要な特徴は、それらが関連している間、他の知識に基づいて一方のキーを理解することは事実上不可能であるということです。そのため、1つのキーは、対応するキーについて何も明らかにすることなく、公開することができます。


公開鍵暗号システム。

これらのキーは、実際には、公開キーおよび秘密キーと呼ばれます(色の指定は、説明はもう少しわかりやすいです)。これらのキーの生成には、かなり気の利いた複雑な数学が含まれます。 (これらのアルゴリズムは、2つの非常に大きな素数の積を含む計算から始まり、この例の範囲をはるかに超えています。)公開鍵暗号で使用される一般的なアルゴリズムには、RSA(作成者、Rivest、Shamir、およびAdlemanにちなんで名付けられました)、DSAが含まれます。 / DSS(デジタル署名アルゴリズム/デジタル署名標準)、およびECDSA(楕円曲線デジタル署名アルゴリズム)。この後者のアルゴリズムは、代わりに楕円曲線の周りの数学を利用しており、少なくともRSAアルゴリズムと同じくらい数学を嫌うものです。

時計回りのロック(キーのしくみ)

これらのキーは、ペアの一部としてのみ機能するだけでなく、一方向のロックでも機能します。たとえば、Burtは緑色(公開)キーを使用してロックを保護します。これには、ロックを半回転させる必要があります。ロックは一方向にしか機能しないため、緑色のキーは通常のロックのように方向を逆にしてロックを解除することはできません。この時点で、このロックメカニズムの特殊な性質により、ロックを解除する唯一の方法は、ペアの赤(プライベート)キーを使用することです。

このように、鍵が緑(公開)の鍵で固定されている場合、赤(秘密)の鍵を持っている人だけが鍵を開けることができます。これが、バートがグリーンキーを広く一般に利用できるようにする方法です。彼は緑色の鍵のコピーをアダムに送ることができます(彼はコピーを公開ピックアップまたは複製に利用できるようにすることさえできます)。この緑の鍵のコピーを持っている人は誰でもこの鍵をロックできます。その時点で、赤(秘密)の鍵を安全に保管していると仮定すると、バートだけが鍵を開くことができます。これで、AdamがBurtに安全に何かを送信したい場合、Burtの緑色(公開)キーを使用できます。同様に、アダムは自分のキーペアを持っていて、自分の緑色のキーをバート(または他の人)が使用できるようにすることもできます。

さて、私たちの不幸なセザールがこのセキュリティ方法を破ろうとした場合、会話全体を得るには、2つの異なるロックを破る必要があります。たった1つを乗り越えることができたとしても、会話の半分しか見ることができませんでした。


一方向暗号化。

この一方向暗号化の使用は、PGP(Pretty Good Privacy)やGPG(Gnu Privacy Guard)の使用など、一部の安全な電子メール交換で採用されています。誰かのPGPまたはGPG公開鍵(およびおそらく鍵自体であるランダムに見えるテキストのブロック)についての言及を見たことがあれば、それが電子メール署名の一部として公開されたり、一般にアクセス可能になったりする理由がわかります。 Webサイト。その鍵を使用すると、秘密鍵の所有者(受信者)のみが復号化できる電子メールを誰でも暗号化できます。

2回ロックされたボックス

ここでバートは賢いアイデアを思いつきます。彼は、彼とアダムが取り組んでいる漫画のアートワークを箱に入れ、箱に鍵をかけ、緑色の(公開)鍵で固定します。現在、このボックスのロックを解除できるのは彼だけです(赤いキーのコピーしか持っていないため)。彼はこの箱をアダムに送ります。

バートの赤い(秘密)鍵のコピーを持っていないアダムは、ロックを解除できません。しかし、彼は自分の錠を箱に置くことができます。彼は自分の緑(公開)鍵でこのロックを保護します。アダムはこの2回ロックされたボックスをバートに送り返します。

バートは箱を手に入れます、そして彼がそれを開けることができる唯一の方法は彼が彼自身の赤い鍵とアダムの赤い鍵の両方を持っているかどうかです。しかし、アダムはバートが自分の赤い鍵を保持しているのと同じように彼の赤い鍵を秘密にしているので、バートは箱を開けることができません。ただし、バートは箱を開けたくありません。覚えておいてください。彼はこのプロセスを開始したので、アダムに箱の中にアートを入れてもらいたいと思っています。ただし、彼は自分の赤い(秘密)キーを使用して自分のロックを解除できます。彼がこれを行うとき、箱の唯一のセキュリティはアダムが確保したロックです。

バートは箱をアダムに送り返し、アダムは赤い鍵を使って残りの錠の鍵を開けます。 Burtは、このパッケージを正常かつ安全に送信しました。この方法では、ロック/暗号化の2つの層があり、潜在的に安全でないメディアを介して共有キーを交換する必要がないという点で、セキュリティの2つの層が追加されます。ただし、より安全なメッセージをよりタイムリーに送受信する必要がある場合は、あまり効率的なシステムではありません。


暗号化を2倍にします。

この機能は、公開鍵暗号の背後にある数学の興味深い機能の1つです。メッセージは複数回暗号化できます。次に、それを復号化するときに、その復号化を任意の順序で実行できます。これは、いくつかの単純な数学関数が機能するのと同じように可換的に機能します。たとえば、10から始めて、他に3つの数値、たとえば3、5、7を加算する場合(つまり、10 + 3 + 5 + 7で25を得る)、合計からそれらを引くことができます。同じ元の番号(25 – 5 – 7 – 3 =10)に戻すための任意の注文。もちろん、この暗号化の背後にある数学ははるかに複雑です。

複雑で堅牢なロック

したがって、AdamとBurtは公開鍵暗号方式を考案しましたが、欠点がないわけではありません。通信を安全に保つこの2回ロックされたボックスの方法は、メッセージごとに3倍の時間がかかります。さらに、公開鍵暗号方式は、暗号化または復号化の実行に関して、より多くの作業を必要とする傾向があります。上記の例では、各キーがロックを半回転する代わりに、10回完全に回転する必要があると想像してください。これは、メッセージごとに40回転(バートロック(10)+アダムロック(10)+バートロック解除(10)+アダムロック解除(10))を意味します!

ただし、この非効率性には1つの利点があります。 Cesarが任意のキーをシミュレートできるデバイスを使用し、これらのロックの1つを開くには、そのキーが機能するかどうかを確認するためだけに10回転する必要があると仮定すると、すべてのキーの組み合わせを試すのに時間がかかります(ブルートフォースアタック)も10倍になります。


キーを大きくするとセキュリティがどの程度向上するか。

暗号化キーの長さはビット単位で測定されます。キーのビット長が長いほど、ブルートフォースクラッキングの試みによってそのキーが発見される可能性が高くなります。キーのビット長が大きいということは、暗号化または復号化を実行するために必要な作業が増えることも意味します。ただし、非対称暗号化アルゴリズムと対称暗号化アルゴリズムはさまざまな方法で機能するため、キーの長さを直接比較することはできません。たとえば、RSA(非対称)1024ビットキーの強度は、80ビット対称キーとほぼ同じです。 BlueKryptによって維持されているものなど、さまざまな暗号化方法で相対的なキーの長さを比較するために利用できるツールがあり、これらの方法間の計算コストの違いを明らかにするのに役立ちます。

これらの違いは、コンピュータセキュリティの主要な難問の1つであるセキュリティと利便性を浮き彫りにします。一方を改善するために行われる作業は、多くの場合、もう一方を犠牲にして行われます。暗号化キーのビット長を増やすと、その強度が増しますが、その暗号化と復号化の実行に時間がかかることも意味します。計算能力の向上やキーの長さの短縮など、利便性を向上させるための対策が講じられている場合、これらの同じ対策は、力ずくの方法でキーを正しく推測するために必要な作業が少なくて済むことも意味します。

「VPNの仕組み」シリーズの詳細

パート1:対称暗号化アルゴリズム
パート3:共有キー交換
VPSホスティングを含むAtlantic.Netのサービスの詳細


Linux
  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. 公開鍵を使用してopensslで大きなファイルを暗号化する方法

  3. rm はどのように機能しますか? rm は何をしますか?

  1. Makefileとは何ですか?どのように機能しますか?

  2. NGINXとは何ですか?それはどのように機能しますか?

  3. キーボード入力とテキスト出力はどのように機能しますか?

  1. Ssh –プライベートSshキーが与えられた場合、公開キーを回復するにはどうすればよいですか?

  2. DNSとは何ですか?どのように機能しますか?

  3. 共有キー交換とは(VPNの仕組み、パート3)