MD5 アルゴリズムを誤解している可能性があります。

MD5 アルゴリズムを誤解している可能性があります。

[[404109]]

この記事はWeChatの公開アカウント「Lean Coder」から転載したもので、著者はattuteiの別名です。この記事を転載する場合は、Lean Coder の公開アカウントにご連絡ください。

「MD5 暗号化」は単なる言葉です。MD5 は暗号化アルゴリズムではなく、ダイジェスト アルゴリズムです。

今日は、Xiaomajia が暗号化アルゴリズムとダイジェストアルゴリズムの定義とシナリオを整理します。

答えは次のとおりです。

暗号化アルゴリズムの目的は、他人が暗号化されたデータを閲覧できないようにし、必要に応じてデータを復号化して再度閲覧できるようにすることです。

MD5 アルゴリズムはハッシュ アルゴリズムです。ハッシュ アルゴリズム自体の設計目的により、ほとんどの場合、元に戻すことはできません。つまり、ハッシュ アルゴリズムを通じて取得したデータは、どのアルゴリズムでも復元できません。したがって、データを復元できないので、それを復号化と呼ぶことはできません。また、復号化できないので、ハッシュ処理を当然 [暗号化] と呼ぶことはできません。

暗号化アルゴリズム

暗号化: 元の情報を特殊なアルゴリズムで変更し、権限のないユーザーが暗号化された情報を入手したとしても、復号化方法がわからないため、情報の内容を理解することはできません。

復号化: 暗号化の逆のプロセスが復号化であり、暗号化された情報を元の情報に変換するプロセスです。

暗号化アルゴリズムは、対称暗号化と非対称暗号化に分けられます。対称暗号化アルゴリズムの暗号化キーと復号化キーは同じですが、非対称暗号化と復号化キーは異なります。

HTTPS は非対称暗号化と対称暗号化の両方を使用します。接続確立フェーズでは、非対称暗号化と復号化が使用され (キーが閲覧されないように保護するため)、通信フェーズでは対称キーを使用してデータが暗号化および復号化されます。

ダイジェストアルゴリズム

要約アルゴリズム。ハッシュ アルゴリズムまたはハッシュ アルゴリズムとも呼ばれます。関数を通じて、任意の長さのコンテンツが固定長のデータ文字列に変換されます。

ダイジェスト アルゴリズムがデータの改ざんの有無を判断できるのは、ダイジェスト関数が一方向関数であるためです。計算は簡単ですが、ダイジェストからデータを推測するのは非常に困難です。さらに、元のデータに少しでも変更を加えると、計算されたダイジェストはまったく異なるものになります。

Xunlei を使用して映画をダウンロードすると、ダウンロード サイトから MD5 検証コードも提供されます。

MD5 検証ツールを探し、ダウンロードしたファイルに対して MD5 アルゴリズムを実行し、得られたハッシュ値をダウンロードサイトに添付されている MD5 値と比較します。値が同じであれば、Web サイトからダウンロードしたファイルは破損していないことを意味します。

HMAC

キーとハッシュ関数を組み合わせたリクエスト認証スキームについて説明します。

HMAC (ハッシュベースのメッセージ認証コード)

多くのサードパーティ プラットフォームは、この認可および認証スキームを使用しています。API プラットフォームを思い出してください。AppID 選択キーのペアが頻繁に提供されますか?

1. クライアントとサーバーの両方が秘密鍵を知っている

2. クライアントがリクエストを行うたびに、(リクエストデータ + 秘密鍵)のハッシュ値が生成される。

HMAC = hashFunc(秘密鍵 + メッセージ)

3. クライアントはリクエストの一部としてハッシュ値を送信する

4. サーバーはリクエストを受信すると、(受信したリクエスト + 検索された Serctkey) のハッシュを生成し、計算されたハッシュ値をリクエストに添付された元のハッシュ値と比較します。同じ場合、リクエストは信頼できるクライアントからのものであり、改ざんされていないと判断されます。

なぜこのようなことが起こるのでしょうか?

まず、クライアントとサーバーのハッシュ値は同じです。ハッシュ アルゴリズムの元の設計によれば、これはリクエスト プロセスが改ざんされていないことを意味します。

一方、クライアントとサーバーは同じ Serct Key (これは個人情報です) を使用していると推測できるため、ここでクライアントから送信されたリクエストを拒否することはできません。

クライアントがハッシュを生成するときにタイムスタンプを追加することも検討できます (リクエストにもこのタイムスタンプが付随している必要があります)。サーバーはそれを受信した後、最初にサーバーのタイムスタンプとリクエストのタイムスタンプを比較し、有効なリクエストを 15 秒以内に制限します。次に、サーバーは (リクエスト メッセージ + 選択キー + タイムスタンプ) のハッシュを生成し、リプレイ攻撃を回避するためにハッシュを比較します。

要約する

この記事で紹介した例 (HTTPS、Thunder MD5 チェックサム) は、暗号化アルゴリズムとダイジェスト アルゴリズムの設計目的を理解するのに十分です。

暗号化アルゴリズムの目的は、情報が覗き見されるのを防ぐことです。ダイジェストアルゴリズムの目的は、情報が改ざんされるのを防ぐことです。

将来、それをより効果的に活用できるようになり、面接中に恥をかくこともなくなります。

最後に紹介するWebAPI認証スキームHMACは、キー+ハッシュアルゴリズムを組み合わせたアプリケーションシナリオであり、高速性と自己署名の特徴を備えています。

<<:  オンラインゲームの依存症対策システムは「破られた」のか?記者調査:ネット上で「顔認証」サービスを提供、実名なしでゲームにログインできると主張

>>:  「思考スタンプ」が実現!中国とアメリカの科学者33人の最新の成果:光を使って脳の認知を変える

ブログ    
ブログ    
ブログ    

推薦する

インベントリ | 2018 年のベスト 30 の機械学習プロジェクト

編集者注: この記事は Mybridge からのもので、過去 1 年間 (2017 年) で最も素晴...

...

多様性がAI戦略の成功の鍵となる理由

機械学習と人工知能に関しては、スキャンダルが後を絶ちません。過去数ヶ月、マイクロソフトのジャーナリス...

...

清華大学がサッカーAIを開発:初めて10人の選手を同時にコントロールして試合を完了し、勝率は94.4%

[[434349]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...

...

百度研究所が2020年のAI技術トレンド予測トップ10を発表

一歩前進、そしてまた一歩前進し、2019年が終わりました。 12月24日、百度研究所は2020年のト...

機械分野におけるLDAトピックモデルを説明する記事

[[211903]]序文このブログ投稿では、第一レベルの数学的導出の観点から LDA トピック モデ...

機械学習とディープラーニングの違いは何ですか? なぜ機械学習を選択する人が増えるのでしょうか?

機械学習とディープラーニングの違いは何でしょうか?この記事から答えを見つけてみましょう。ターゲットこ...

出勤初日、AIバーチャル天気予報キャスターがレポートを担当。冬季オリンピックの裏側にあるAIブラックテクノロジーを振り返る

表紙ニュース記者 孟美 張悦希休日明けの初日、北京冬季オリンピックも競技3日目に入った。スタジアム内...

ルールベースのAIと機械学習の主な違いは、さまざまな業界の企業が検討し、実装している点です。

さまざまな業界の企業が、ビッグデータからロボット工学まで、ビジネスプロセスの自動化、顧客体験の向上、...

人工知能技術は3つのレベルで社会を変える

[[282875]] 数十年前、日本は避けることの難しい一連の長期的経済課題に直面していました。 1...

素晴らしい瞬間を振り返りましょう! IEEE Spectrumが2023年の最もホットなAIストーリーをレビュー

また冬が来て、終わりに近づいています。気温も少し上がり、広大な空と大地にはまだ溶けきれない白が残って...

人工知能は中国の製造業にどのような変化をもたらすのでしょうか?

[[260379]]データマップ:中国航空宇宙科学産業集団第三科学院第35研究所が開発に成功した新...

データセットを正しく分割するにはどうすればいいでしょうか? 3つの一般的な方法の概要

データセットをトレーニング セットに分割すると、モデルを理解するのに役立ちます。これは、モデルが新し...