暗号化アルゴリズムの鍵交換は少し安全ではない

暗号化アルゴリズムの鍵交換は少し安全ではない

今日は対称暗号化アルゴリズムの重要な問題についてお話ししましょう。暗号化の基本的な概念に精通していない場合は、以前の記事を確認してください。暗号No.72をご覧ください。

[[224482]]

対称キーを使用して暗号化された情報を送信できることは誰もが知っています。そのプロセスは次のとおりです。

上記のプロセスから、送信者と受信者の両方がキー KEY を持っている場合、安全でないチャネルでも安全に通信できることがわかります。現在、より一般的な対称暗号化アルゴリズムには、AES、DES、3DES、TDEA、Blowfish、RC5、IDEA などのアルゴリズムがあります。 。

そこで疑問になるのが、送信者と受信者の両方が同じキーを持つ必要があるのですが、このプロセスはどのように実現できるのでしょうか?現実には、鍵のコピーを 2 つ作り、封筒に入れて対面で交換することができます。封筒を受け取ったら、家に戻り、ドアをロックし、キルトで体を覆い、懐中電灯を点灯し、こっそり鍵を見て、それを心に記憶します。このようにすれば、ほとんど誰もそれを盗むことはできませんよね?

理想的な状況は次のようになります。

しかし、サイバー世界では、基本的にすべてが安全ではありません。悪い人がいるかもしれません。たとえば、Fという名前の人が現れて、途中で鍵を傍受すると、AとBの間のその後のすべての通信が監視される可能性があります。

ご覧の通り、すべての情報が解読されました。この時点で、AとBの間の鍵は、存在するかどうかに関係なく、まったく同じです。

それで私たちは何をすべきでしょうか?このとき、私たちは再び偉大な数学を持ち出さなければなりません。今日は、Diffie-Hellman 鍵交換というアルゴリズムを紹介します。このアルゴリズムは、安全でないチャネルでの安全な鍵交換の問題を解決できます。これはどのように実現されるのでしょうか。

Diffie-Hellman 鍵交換 (D-H) はセキュリティ プロトコルです。これにより、2 つの当事者が、相手方に関する事前情報なしに、安全でないチャネルを介してキーを確立できるようになります。このキーは、後続の通信で通信内容を暗号化するための対称キーとして使用できます。

主なアイデアは、指数演算の数学的規則に基づいてローカル計算を実行し(ローカル計算は安全と見なすことができます)、モジュラー演算を使用して送信される数値の値を減らすことです。アルゴリズムの一般的なプロセスは、次の図のようになります。

まず、他の人が推測できないように、絶対的に素数である共通の数字のペア (3 と 17) を決定します。3 は累乗計算の基数として使用され、17 は係数値として使用されます。 (この2つの概念が不明な場合は、Baiduにアクセスしてください)

交換プロセスは3つの部分に分かれています。

パート 1: A と B はそれぞれ秘密鍵を生成します。

パート 2: A と B に対して指数演算を実行し、係数を求めます。

パート 3: A と B はそれぞれ受信したメッセージに対して指数演算を実行し、係数を計算して最終的な公開対称鍵を取得します。

このように、公開番号 3、17、6、12 はすべて完全に公開されています。ただし、鍵を持っていない場合、A と B の公開鍵が何であるかを推測するのは依然として非常にコストがかかります。特に、2 つの公開番号 3 と 17 を非常に大きく設定し、A と B の秘密鍵も非常に大きく設定します。これはコンピューターが短期間で解読することは不可能であり、数百万年、あるいはそれ以上かかる場合もあります。したがって、このアルゴリズムは安全であると言えます。

では、A と B の演算後に得られる数値が一貫していることをどのように確認できるでしょうか?

このように考えることができます。

A面:

受け取った 12 = 3^13 mod 17

つまり、3 ^ 12 mod 17 = 3 ^ (13 * 12) mod 17

B面:

受け取った 6 = 3^15 mod 17

つまり、3 ^ 6 mod 17 = 3 ^ (12 * 13) mod 17

指数関数の法則によれば、

3 ^ 6 mod 17 = 3 ^ (12 * 13) mod 17 = 3 ^ (13 * 12) mod 17

最終的に計算された数値が何であっても、A と B が保持するキーが同じ値であることを保証でき、その後のすべての通信では、暗号化の計算と送信にこの値が使用されます。

この方法は素晴らしいですが、次のプロセスについて考えてみてください。A が 5 人と通信したい場合、A は 5 つのキーを保存する必要があります。時間が経つにつれて、A は崩壊します。 。 。

そんなことが起きたくないなら、何ができるでしょうか?これらの質問に答えるには、次の暗号化シリーズに注目してください。

[この記事は51CTOコラムニスト「Da Jiao」によるオリジナル記事です。転載する場合は著者のWeChat公開アカウント「A Programmer Named Da Jiao」から許可を得てください。]

この著者の他の記事を読むにはここをクリックしてください

<<:  張震: AIOps の 6 つの技術的難しさと CreditEase の運用と保守における大きな変化

>>:  未来は人工知能の時代であり、さらに Python の時代です。

ブログ    
ブログ    

推薦する

人工知能(AI)の人間的側面を探る

新興技術である AI はこれまで多くの課題に直面しており、今後も直面し続けるでしょう。一方で、消費者...

CNNとRNNの比較と組み合わせ

CNNとRNNはディープラーニングのほぼ半分を占めているので、この記事ではCNN+RNNとさまざまな...

口の中に124個のセンサーを埋め込み、Google Glassの創設者の新プロジェクト:舌でメッセージを送信

不運なGoogle Glassはスマートデバイスの波の中で大きなインパクトを与えることはできなかった...

AI が病院の屋内資産追跡の課題を克服する方法

IoT アプリケーションでは、AI はデータ スタックの「最上位」で使用されることが多く、複数のソー...

Java プログラミング スキル - データ構造とアルゴリズム「スレッド バイナリ ツリー」

[[388829]]まず質問を見てみましょうシーケンス{1,3,6,8,10,14}を二分木に構築...

AI規制に関するマスク氏の見解:規制は面倒だが、審判がいるのは良いことだ

現地時間11月3日、木曜日の2日間にわたる英国人工知能安全サミットで、テスラのイーロン・マスクCEO...

...

[私はジャービスです]: FaceIDの背後にあるディープラーニング視覚アルゴリズムについて語る

先週発売されたiPhoneXで私が一番惹かれたのは、かわいいウサギの耳ではなく、AppleのFace...

ChatGPTの医療版ライブレビュー!治療計画は実際の医師のものと96%一致しています

同国初の大規模医療モデルはすでに患者を「診察」している。最近、病院内の AI 医師の実際の監視データ...

ビッグデータの時代に、「アルゴリズム崇拝」に陥らないためにはどうすればいいのでしょうか?

「データ」は今日、これほど広く注目されたことはありません。以前は、携帯電話番号などの情報を何気なく...

...

Stack Overflow が ChatGPT に対抗し、VS Code と連携する独自開発の生成 AI ツールをリリース

数日前、Stack Overflow コミュニティのトラフィックが大幅に減少したというニュースがあり...

素晴らしいクラスタリングアルゴリズムがサイエンス誌に掲載されました

著者 (Alex Rodriguez、Alessandro Laio) は、さまざまな形状のクラスタ...

Baidu Create 2018 ディープラーニング フロンティア テクノロジーと産業応用公開コースのハイライト

[51CTO.com からのオリジナル記事] 中国の開発者が集まる毎年恒例の盛大な集まりである Ba...

百人一首の戦いはかつてないレベルに到達!

執筆者 | 王 瑞平校正 | Yun Zhao最近また「100均戦争」が始まってます…一輪の花が春を...