コンピュータセキュリティ

Diffie-Hellmanアルゴリズム:目的

明らかに、保護されていない通信チャネルでの データ伝送 を使用 する 今日の人 は、 Diffie-Hellmanアルゴリズムが 何であるか 想像してください。 原則として、多くの人々はこの理解を必要としません。 しかし、コンピュータシステムのユーザーは、より多くの興味をそそられ、これを理解するために、傷つくことはありません。 特に、Diffie-Hellmanアルゴリズムによる鍵の交換は、情報セキュリティと暗号化に興味のあるユーザにとって有用です。

Diffie-Hellman技術とは何ですか?

アルゴリズム自体の問題に近づくと、技術的および数学的な詳細には進まず、保護されていないチャネルを使用してデータを交換するコンピュータまたは他のシステムの2人以上のユーザー間で送受信される情報を暗号化および復号化する方法として定義できます。

既に明らかなように、チャネル自体が保護されていない場合、攻撃者は送信および受信中のファイルを傍受または変更できます。 しかしながら、送受信されたデータにアクセスするためのDiffie-Hellman鍵分配アルゴリズムは、外部干渉がほぼ完全に排除されるようなものである。 同時に、使用されている 通信チャネルを 介した 通信 (それを保護せずに)は、両方の当事者が同じ鍵を使用する場合に安全となる。

先史時代

Diffie-Hellmanアルゴリズム自体は、1976年に世界に紹介されました。 その創作者はWhitfried DiffieとMartin Hellmanでした。データ暗号化の安全で信頼性の高い方法の研究では、いわゆる公開鍵配布システムを開発したRalph Merkleの仕事に頼っていました。

しかし、メルケルが独占的な理論的枠組みを開発した場合、DiffieとHellmanはこの疑問に対する実用的な解決法を一般に提示した。

最も簡単な説明

実際、テスト自体は暗号化の暗号化技術に基づいており、現在でもこの分野の多くの専門家を驚かせています。 暗号のアンソロジーにはかなり大きな歴史があります。 プロセス全体の本質は、電子メールで対応したり、コンピュータプログラムを使用して特定のデータを交換したりする2人の加入者がいるという事実に縮小されています。 しかし、保護は、Diffie-Hellmanアルゴリズム自体が解読鍵を2つの当事者(送信および受信)に知らせることを必要とするように行われる。 この場合、どちらが初期乱数を生成するかは関係ありません(この時間は、鍵を計算する式を考慮して説明します)。

初期のデータを暗号化する方法

より明確にするために、 データ暗号化の最も基本的な方法は、たとえば、ほとんどのスクリプトでは普通のように、左から右に向かってではなく、右から左に書くことです。 同様に、メッセージ内のアルファベットの文字を使用して置き換えるのは簡単です。 たとえば、ある言葉では、2番目の文字が最初の文字に、4番目の文字が3番目の文字に変わります。 それを見るとまったく同じ文書が完全なナンセンスになる可能性があります。 しかし、ソーステキストを書いた人は、それを読まなければならない人に指示します。その順序で、与えられたシンボルを整理する必要があります。 これはキーと呼ばれます。

古代シュメール人とエジプト人のまだ解読されていないテキストや楔形文字の大半は、暗号アナリストが誤解しているということは、単にシンボルの順序を決める方法がわからないためです。

したがって、私たちの場合でも、Diffie-Hellmanアルゴリズムは、復号鍵が限られた数のユーザーに知られているという選択肢を意味します。 このタイプの暗号化されたデータの転送における干渉は、シンボルの置き換えや置き換えのシステムを解決した場合、第三者が侵害する可能性があるため、予約を行う価値があります。

今日、AESなどのアルゴリズムに基づいた非常に強力な暗号システムが存在することは言うまでもありませんが、第三者によるデータのハッキングに対する完全な保証はありません。

さて、暗号化システムそのもの、実際のアプリケーション、保護の程度を見てみましょう。

Diffie-Hellmanアルゴリズム:目的

アルゴリズムそのものは、一方の側から他方の側に転送されるデータの機密性を保証するだけでなく、安全に受け取ったときにそれらを抽出するような方法で作成されました。 大まかに言えば、そのような伝送システムは、すべての可能な通信チャネルにおいて完全な保護を提供すべきである。

第二次世界大戦の少なくとも年を思い出してください。すべての同盟諸国の知性が、暗号化されたメッセージが モールス符号で 送信された「エニグマ」と呼ばれる暗号化マシンを 捜し求めていたのです。 結局のところ、私たちが言うように、「高度な」暗号化の専門家は、誰も、そして最も多くの人でも、彼女のコードを解明することができます。 それが捕捉された後でさえ、ドイツ艦隊によって送信されたメッセージを解読する鍵となりました。

Diffie-Hellmanアルゴリズム:概要

アルゴリズム自体にはいくつかの基本的な概念が含まれています。 接続に2人のユーザ(ユーザ)がいる場合、最も単純なケースがあるとします。 それらをAとBとする。

彼らは、この通信チャネルでは秘密ではない2つの番号XとYを使用して、送受信の制御を行います。 問題の全体的なポイントは、その根拠になる新しい意味を生み出すことです。 しかし! 最初のサブスクライバは大きな 素数を 使用し、2番目のサブスクライバは必然的に全体を(剰余なしで)分割しますが、最初のサブスクライバよりも小さくなります。

当然、ユーザーはこれらの数字が秘密に保たれていることに同意します。 しかし、通信チャネルは保護されていないので、これら2つの番号は他の関心のある人に知られるようになる可能性がある。 そのため、同じメッセージのユーザーが秘密鍵を交換してメッセージの暗号を解読するのはこのためです。

キーを計算するための基本式

Diffie-Hellmanアルゴリズムは、非対称暗号のプロトコルが出現したことに基づいて、いわゆる対称暗号のシステムを指すことが一般に認められている。 しかし、受信者による鍵の計算の基本的な側面を考えると、少なくとも代数は思い出す必要があります。

だから、それぞれの加入者が乱数abを生成するとしよう。 事前に、彼らはxyの値を知っています。xyの値は、目的のソフトウェアに「縫いつける」ことさえできます。

そのようなメッセージを送信または受信する場合、加入者Aは、式A = x a mod yに基づいてキー値を計算し、第2のものは、 B = x b mod yの組み合わせを使用し、復号された鍵を第1のユーザに転送する。 これは最初の段階です。

ここで、第3のステークホルダーが、AとBの計算値の両方を処理できると仮定します。第2段階では、共通キーがどのように計算されるかを知る必要があるため、彼女はデータ転送プロセスを妨げることができません。

上記の数式に基づいて、公開キーの計算を停止することができます。 Diffie-Hellmanアルゴリズムを見ると、この例は次のようになります。

1)第1の加入者は、式B a mod y = x ab mod yによってxに基づいて鍵を計算する。

2)最初の番号yから始まる2番目の パラメータBのネットワークプロトコルから得られ、利用可能なパラメータAに基づいて鍵を決定する。A b mod y = x ba mod y

我々が見るように、度が交換されたときでさえ、最終的な値は一致する。 したがって、両側によるデータの解釈は、彼らが言うように、1つの分母に減らされる。

データ転送プロセスへの干渉の脆弱性

考えられるように、第三者の介入は排除されない。 しかし、この場合、最初に指定された10 100または10 300のオーダの数について話しています。

これは、今日作成されたパスワードジェネレータやアクセスコードのどれも、(伝送システムにおける干渉の中間的なパラメータではなく、最初と最後のものを除いて)番号そのものを決めることができないという理由になります。 これは地球上の人生が終わるほど長くかかるでしょう。 それにもかかわらず、このようなセキュリティシステムにはまだギャップがあります。

ほとんどの場合、離散対数の知識に関連しています。 そのような知識が利用可能な場合、Diffie-Hellmanアルゴリズムをクラックすることは可能です(ただし、前述の初期パラメータと最終パラメータについてのみ)。 もう1つのことは、そのような知識がユニットによって所有されていることです。

Javaプラットフォームのためのアルゴリズムの使用

JavaのDiffie-Hellmanアルゴリズムは、「クライアント/サーバー」などの呼び出し専用に使用されます。

言い換えると、サーバーはクライアントマシンが接続するのを待っています。 このような接続が行われると、アルゴリズムは公開鍵または秘密鍵のいずれかを検索するために実行され、その後、ユーザはサーバ自体のすべての機能およびデータへの妨害のないアクセスを得ることができる。 場合によってはモバイルシステムにも適用されることがありますが、特に実行部が非表示モードで実行スクリプトの形で動作するため、このことについてほとんど知りません。

Cプラットフォーム(+ / ++)のアルゴリズムを使用すると、

"C"(+ / ++)のDiffie-Hellmanアルゴリズムを見れば、ここでは全てが滑らかではありません。 事実、プログラミング言語自体がほとんど浮動小数点に関連する計算で動作するときに問題が生じることがあります。 そのため、整数値を指定するときや丸めようとするとき( 電源投入 時 であって も )、 コンパイル時に問題 が 生じること が あります。 これは特に、int関数の悪用に当てはまります。

しかし、クラス、同じ指数関数または関連するGMP付属ライブラリのタスクを原則とする他の実行可能コンポーネントに注意する価値はあります。

現代の暗号化アルゴリズム

Diffie-Hellmanアルゴリズムはまだそれを上回ることはできないと考えられています。 実際には、AES128やAES256のようなデータ暗号化の分野におけるこのような既知のセキュリティシステムの出現の基礎となったのは彼だった。

しかし、実際には、人によって抽象的に認識されない数字が利用できるにもかかわらず、現在のタイプのシステムでは、アルゴリズム自体が数百万倍の数を意味するにもかかわらず、トップ10の値だけを使用します。

後の言葉の代わりに

一般的には、システムが何であり、そのアルゴリズム構成要素が何であるかはすでに明らかであろう。 それは、ほとんど誰もが完全にそれを使用していないような偉大な機会を授与されることを追加するだけです。

一方、アルゴリズムには明らかに十分な脆弱性が存在します。 結局のところ、離散対数を計算するためのプログラムを作成すると、事実上すべての作成者は、ユーザーによって設定された初期パラメータだけでなく、暗号化および復号化システムで生成される共通鍵にアクセスすることができます。

最も単純なケースでは、モバイル通信でも使用できる同じ実行可能Javaアプレットをインストールすれば十分です。 当然のことながら、ユーザーはそれについて知りませんが、誰でも自分の目的で自分のデータを使用できます。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ja.unansea.com. Theme powered by WordPress.