暗号化における鍵とは、通常はファイルに保存された数字や文字の文字列である情報であり、暗号化アルゴリズムによって処理されることで、暗号化されたデータをエンコードまたはデコードすることができます。鍵のサイズや種類は使用する方式によって異なりますが、いずれの場合も、暗号化の強度は保持される鍵のセキュリティに依存します。鍵のセキュリティ強度は、そのアルゴリズム、鍵のサイズ、鍵の生成方法、および鍵交換のプロセスによって決まります。
鍵とは、平文から暗号文へのデータの暗号化に使用されるものです。[ 1 ]鍵と暗号化を利用する方法はいくつかあります。
非対称暗号では、暗号化と復号化に別々の鍵を使用します。[ 3 ] [ 4 ]これらの鍵はそれぞれ公開鍵と秘密鍵と呼ばれます。[ 5 ]
鍵はシステムの機密性と完全性を保護するため、権限のない第三者から秘密にしておくことが重要です。公開鍵暗号方式では秘密鍵のみを秘密にしておく必要がありますが、対称暗号方式では鍵の機密性を維持することが重要です。ケルクホフの原理は、暗号システムのセキュリティ全体が鍵の秘密性に依存していると述べています。[ 6 ]
鍵サイズは、アルゴリズムによって定義される鍵のビット数です。このサイズは、暗号アルゴリズムのセキュリティの上限を定義します。[ 7 ]鍵サイズが大きいほど、総当たり攻撃によって鍵が破られるまでの時間が長くなります。鍵アルゴリズムでは完全な秘匿性は実現不可能であるため、研究者は現在、計算セキュリティに重点を置いています。
従来、鍵の長さは最低でも40ビットと定められていましたが、技術の進歩に伴い、これらの鍵はますます容易に解読されるようになりました。これに対応するため、対称鍵の長さに関する制限が強化され、より大きなサイズが求められるようになりました。
現在、2048ビットRSA [ 8 ]が一般的に使用されており、これは現在のシステムには十分である。しかし、現在のRSA鍵サイズはすべて、強力な量子コンピュータによってすぐに解読されるだろう。[ 9 ]
「公開鍵暗号で使用される鍵には、何らかの数学的構造があります。たとえば、RSA システムで使用される公開鍵は、2 つの素数の積です。したがって、公開鍵システムは、同等のセキュリティレベルを実現するために、対称システムよりも長い鍵長を必要とします。128 ビットの対称暗号と同等のセキュリティを目指す、因数分解と整数離散対数に基づくシステムでは、3072 ビットの鍵長が推奨されています。」[ 10 ]
鍵が推測されないようにするには、鍵はランダムに生成され、十分なエントロピーを含んでいる必要があります。安全にランダムな鍵を生成する方法は難しく、さまざまな暗号システムによってさまざまな方法で対処されてきました。鍵は、予測不可能で偏りのないビット列を生成するシステムであるランダムビットジェネレータ(RBG)の出力を使用して直接生成できます。[ 11 ] RBGは、対称鍵または非対称鍵ペア生成のためのランダム出力を直接生成するために使用できます。あるいは、鍵合意トランザクション中に、別の鍵またはパスワードから間接的に鍵を作成することもできます。[ 12 ]
一部のオペレーティングシステムには、ディスクドライブのヘッド移動などの予測不可能な動作のタイミングからエントロピーを「収集」するツールが含まれています。少量のキーイング素材を生成する場合、通常のサイコロは高品質の乱数を生成するのに適しています。
鍵の安全性は、当事者間で鍵がどのように交換されるかに依存します。外部の者が鍵を入手できないように、安全な通信チャネルを確立する必要があります。鍵確立方式(または鍵交換)は、エンティティ間で暗号化鍵を転送するために使用されます。鍵合意と鍵転送は、エンティティ間で遠隔的に交換されるために使用される2種類の鍵交換方式です。鍵合意方式では、送信者と受信者の間で情報の暗号化と復号に使用される秘密鍵が、間接的に送信されるように設定されます。すべての当事者は、各当事者が秘密鍵マテリアルを導出できるようにする情報(共有秘密)を交換します。鍵転送方式では、送信者によって選択された暗号化された鍵マテリアルが受信者に転送されます。どちらの方式でも、対称鍵または非対称鍵の技術を使用できます。[ 12 ]
Diffie –Hellman鍵交換とRivest-Shamir-Adleman(RSA)は、最も広く使用されている2つの鍵交換アルゴリズムです。[ 13 ] 1976年、Whitfield DiffieとMartin Hellmanは、最初の公開鍵アルゴリズムであるDiffie–Hellmanアルゴリズムを構築しました。Diffie–Hellman鍵交換プロトコルは、2者間で共有鍵を電子的に生成することにより、安全でないチャネルを介して鍵交換を可能にします。一方、RSAは、鍵生成、暗号化、復号の3つのステップで構成される非対称鍵システムの形式です。[ 13 ]
鍵確認は、鍵確認の受信者と提供者の間で、共有鍵情報が正確で確立されていることを保証するものです。米国国立標準技術研究所は、鍵確立スキームの実装を検証するために、鍵確認をそのスキームに統合することを推奨しています。[ 12 ]
鍵管理とは、暗号鍵の生成、確立、保管、使用、および交換に関するものです。鍵管理システム(KMS)は通常、鍵の確立、保管、使用の3つのステップで構成されます。鍵の生成、保管、配布、使用、および破棄のセキュリティの基盤は、鍵管理プロトコルの成功に依存します。[ 14 ]
パスワードとは、本人確認に使用される文字、数字、その他の特殊記号を含む記憶された一連の文字です。多くの場合、個人情報や機密情報を保護したり、暗号鍵を生成したりするために、人間ユーザーまたはパスワード管理ソフトウェアによって作成されます。パスワードは、ユーザーが記憶できるように作成されることが多く、辞書の単語などの非ランダムな情報が含まれる場合があります。[ 12 ]一方、鍵は、推測したりパスワードを完全に置き換えたりすることが難しい暗号アルゴリズムを実装することで、パスワードの保護を強化するのに役立ちます。鍵は、ランダムまたは擬似ランダムなデータに基づいて生成され、多くの場合、人間には読み取れません。[ 15 ]
パスワードは、エントロピー、ランダム性、人間が読みやすい性質が低いため、暗号鍵よりも安全性が低い。しかし、ストレージデバイス内の情報を保護するなど、情報セキュリティのための暗号アルゴリズムがアクセスできる唯一の秘密データとしてパスワードが使用される場合がある。そのため、鍵導出関数(KDF)と呼ばれる決定論的アルゴリズムがパスワードを使用して安全な暗号鍵マテリアルを生成し、パスワードの弱点を補う。生成には、ソルトの追加や鍵の伸縮など、さまざまな方法が使用される。[ 12 ]
{{cite web}}: CS1 maint: url-status (リンク)