暗号化ハッシュ:初心者向けガイド
暗号化ハッシュは、サイバーセキュリティスペクトルの不可欠な部分です。実際、ビットコインやその他の暗号通貨プロトコルを含むさまざまなテクノロジーで広く使用されています.
この記事では、暗号化ハッシュ、その例、履歴などについて学ぶ暗号通貨でのハッシュについて説明します。.
この記事は、このテーマに関するより技術的な見通しを学びたい人を対象としています。ただし、技術的でない場合でも、可能な限り最善の方法で概念を簡素化するよう努めますので、恐れることはありません。.
暗号化は常にコンピュータサイエンスの中核です。それがなければ、安全な通信や情報共有を行うことはできません。情報を保護する方法として最もよく定義されています.
暗号化ハッシュとは何ですか?
暗号化では、ハッシュはデータを一意のテキスト文字列に変換するために使用される方法です。データは、データがほんの数秒でハッシュされる非常に効率的な方法に変換されます。また、データのタイプやサイズに制限はありません—ハッシュはそれらすべてで機能します.
では、ハッシュがこれほど人気があり、ユニークな理由は何でしょうか。逆にできないからです!
はい、それは一方向性関数(暗号化ハッシュ関数)であり、そのようにのみ機能するように設計されています.
一方向性関数では、データはハッシュアルゴリズムに入れられると、一意の文字列を出力します。ただし、一意の文字列を使用して、元のデータをハッシュ関数に戻して解読することはできません。この種の有用性と機能により、暗号化ハッシュは情報とデータの保護に非常に役立ちます.
また、チェックしてください
- Pythonでブロックチェーンを構築する方法
- ビギナーズガイド:暗号通貨での暗号化の使用
ハッシュメソッドに適用される機能がもう1つあります。任意のデータが同じハッシュ出力を提供します.
これらの機能により、ビットコインなどの暗号通貨で非常に役立ちます.
ハッシュはどのように機能しますか?
ハッシュをよりよく理解するには、ハッシュがどのように機能するかを学ぶ必要もあります。ハッシュは、実行に必要な計算能力が少ない数学演算です。ただし、元に戻すために必要な計算能力はコストがかかるため、現世代のコンピューターでは実行できません。.
ただし、量子コンピューターはコンピューターのハッシュを逆にすることができます。しかし、量子耐性のあるハッシュ手法はすでに存在します.
ハッシュの目的で、使用されるアルゴリズムはたくさんあります。これには以下が含まれます.
- メッセージダイレクト(MD5)
- セキュアハッシュ機能(SHA1)
- セキュアハッシュ機能(SHA-256)
すべてのハッシュ関数が100%安全であるとは限りません。たとえば、SHA1は簡単に解読できるため、実用的な使用にはお勧めできません。使用される最も一般的なハッシュ関数の1つには、MD5とSHA-256が含まれます。.
MD5は、主にダウンロードされたファイルの検証に使用されます。したがって、ファイルをダウンロードすると、チェックサム計算機を使用してそのチェックサムを計算できます。ハッシュ文字列がダウンローダーが提供した文字列と一致する場合、それはダウンロードがファイルの破損なしに正しく行われたことを意味します。つまり、ファイルの整合性を検証します.
ハッシュが主に使用される場所?
ハッシュは主にパスワードに使用されます。それを理解するために例を見てみましょう.
電子メールアカウントを作成するとき、電子メールプロバイダーは電子メールアドレスとパスワードを尋ねます。明らかに、彼らは電子メールとパスワードを単純なプレーンテキストで保存していません。もしそうなら、彼らはあなたの情報のプライバシーとセキュリティを危険にさらしています。その情報を解読するのが難しいことを確認するために、彼らはあなたのパスワードにハッシュ関数を使用して、電子メールプロバイダーで内部的に働いている人でさえそれを解読できないようにします.
したがって、次回ログインしようとすると、ハッシュ関数がそれを解読し、保存されたものと照合して、電子メールへのアクセスを許可します。.
その他の使用法には、署名の生成と検証、およびファイルの整合性チェックが含まれます.
もちろん、他のハッシュアプリケーションもあります。ハッシュのもう1つの最も一般的な使用法は、暗号通貨です。これについては、以下で説明します。.
暗号通貨でハッシュがどのように利用されているか
ハッシュは主にマイニング目的の暗号通貨で利用されます。したがって、ビットコインでは、マイニングはSHA-256ハッシュ関数を検証するプロセスです。これは、ハッシュを使用して新しいトランザクションを書き込み、それらを前のブロックに参照して戻し、タイムスタンプを付けることができることを意味します。
新しいブロックがブロックチェーンに追加されると、ネットワークはコンセンサスに達すると言われています。そうすることで、ブロックに含まれるトランザクションを検証します。また、この追加により、誰もそれを元に戻すことができなくなります。これらはすべてハッシュのおかげで可能であり、それがブロックチェーンの整合性を維持するために使用される理由です.
ビットコインは、SHA-256一方向ハッシュ関数を使用するProof-of-Workコンセンサスメソッドを使用します.
ハッシュ関数の例
それでは、暗号化ハッシュ関数の例を見てみましょう。.
私たちとあなたにとってより簡単にするために、私たちはオンラインで利用可能なSHA-256ツールを使用します.
リンクは次のとおりです。 SHA256オンライン
ここで、入力として101Blockchainsと入力すると、次の出力が得られます。.
入力: 101Blockchains.com
出力: fbffd63a60374a31aa9811cbc80b577e23925a5874e86a17f712bab874f33ac9
SHA256ハッシュ関数の使用
ここで、単純な「Hello World」を入力として入力すると、次の出力が得られます。.
入力: こんにちは世界
出力: a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e
両方の出力の中で、両方の出力値が同じ長さ、つまり256ビット、つまり64文字の長さであることがわかります。.
それでは、101blockchainを入力に入力しましょう。最初のハッシュの生成に使用された101Blockchainsから「s」を削除したことに注意してください.
入力: 101ブロックチェーン
出力: c4d67db72f3d18eaca2e8e8498271de353d25874e4448be4887f2563576c6fe8
最初のハッシュ出力と比較すると、入力から1文字だけ削除した場合でも、大きな違いが見られます。.
では、例から何を学びましたか?以下に要約しましょう.
- すべての出力は同じ長さです
- 入力の小さな変化は、完全に異なる出力になります
- 出力を入力に逆にすることはできません.
暗号化ハッシュ関数のプロパティ
暗号化ハッシュまたは一般的なハッシュをよりよく理解するために、暗号化ハッシュ関数のプロパティを見ていきましょう.
決定論的
暗号化ハッシュ関数は決定論的であることが知られています。これは、特定の入力に対して、出力が同じになることを意味します。もっと簡単に言えば、同じ入力をハッシュ関数に100回入力すると、出力はすべての場合で同じになります。.
決定論的特性は、一方向性関数の概念を可能にするため重要です。そのように機能しなかった場合、情報のハッシュに使用することは不可能です。また、同じ入力に対してランダムに出力すると、プロセス全体が役に立たなくなる可能性があります.
プレイメージ耐性
暗号化ハッシュ関数はプリイメージ耐性があります。つまり、一度生成されたハッシュ値は入力について何も明らかにしません。.
これは非常に重要な機能であるため、重要な機能です。.
計算効率
ハッシュ関数は計算効率が高いです。これは、入力の長さと複雑さに関係なく、ハッシュ出力をすばやく生成することを意味します。ハッシュ関数を使用して機密情報を保存したいサービスでは、効率が高くなります。ただし、これは一方向、つまり入力から出力への計算効率が高いだけです。リバーシブルではないため、どのコンピューターでもリバースエンジニアリングすることはできません。.
しかし、数値について話したい場合は、特定のハッシュ値から入力を推測するのに、最近のコンピューターでは何年もかかる可能性があります。また、現代のコンピューターは日を追うごとに強力になり、ハッシュ関数はこれまで以上に効率的になっています。.
リバースエンジニアリングはできません
ハッシュ関数を元に戻すことはできません。これは、それが安全であることを意味します。暗号化ハッシュ関数は、不可逆関数を前提として作成されていることを知っておく必要があります。出力を作成するために使用される数式とプロセスは単純化されており、元に戻すことはできません。技術的には、ハッシュ関数は逆演算をサポートしていません.
衝突耐性
衝突耐性は、これから説明する最後の特性です。このプロパティにより、2つの異なる入力が同じ出力を生成しないことが保証されます.
ご存知のとおり、入力は任意の長さにすることができます。この定義により、入力は無限の数になる可能性があります。ここで、固定長である出力は、毎回異なる必要があります。固定長の制限は、有限数が非常に価値がある場合でも、出力が有限数であることも意味します。これは、そこにあるすべての入力の出力を分離するための数学的課題を提起します.
良いニュースは、人気のあるハッシュ関数のほとんどが衝突耐性があるということです.
人気のあるハッシュクラス–ハッシュアルゴリズムのリスト
これにより、次のセクションに進みます。ここでは、人気のあるハッシュクラスについて説明します。暗号化の分野で非常に人気のある3つのハッシュクラスをリストします.
- メッセージダイジェスト(MD)
- セキュアハッシュ関数(SHF)
- RIPEメッセージダイレクト(RIPEMD)
それらを1つずつ見ていきましょう.
メッセージダイジェスト(MD)
メッセージダイジェストは、インターネットの歴史全体で使用されているハッシュ関数のファミリーです。.
このファミリは、MD2、MD4、MD6、および最も一般的なMD5などのハッシュ関数で構成されています。すべてのMDハッシュ関数は128ビットのハッシュ関数です。つまり、ダイジェストサイズは128ビットです。.
前に説明したように、MD5ダイジェストハッシュ関数は、ユーザーがファイルサーバーを介してダウンロードしたファイルの整合性をチェックするためにソフトウェアプロバイダーによって使用されます。それを機能させるために、プロバイダーはダウンローダーにファイルのMD5チェックサムへのアクセスを許可します。ファイルの整合性をチェックするために、チェックサムを計算し、提供されたハッシュ値とクロスチェックするMD5チェックサムが使用されます。値が上記のファイルの整合性チェックと異なる場合は失敗し、ユーザーはファイルの全体または一部をダウンロードする必要があります.
MD5は、他のハッシュ関数ほど安全ではありません。 2004年には、わずか1時間で実行されたハッシュ関数に対して分析攻撃が行われました。これは、コンピュータークラスターを使用して行われました。これにより、MDは情報の保護にあまり役立たなくなったため、ファイルの整合性の検証などのタスクに使用されます。.
MD5の詳細に興味がある場合は、MD5のWikiページを確認してください— MD5.
セキュアハッシュ機能(SHA)
セキュアハッシュ関数は、非常に人気のあるハッシュ関数のもう1つのファミリです。これは、米国国立標準技術研究所(NIST)によって開発および公開されました。彼らは、SHA-0、SHA-1、SHA-2、SHA-3を含む4つのバージョンのSHAをリリースしました。.
ご想像のとおり、新しいバージョンでは、古いバージョンのSHAのいくつかの問題や弱点が修正されています。たとえば、SHA-1は、SHA-0の弱点が見つかった後にリリースされました。 SHA-1は1995年にリリースされました.
SHA-1は、リリースされると独自の名前になりました。当時、Secure Socket Layer(SSL)を含むさまざまなアプリケーションで使用されていました。.
ただし、時間の経過とともに、悪用者はSHA-1の衝突についても発見し、それが役に立たなくなった。 NISTは、SHA-256、SHA-224、SHA-512、およびSHA-384を含む4つのSHAバリアントを採用したセキュアハッシュ関数のSHA-2ファミリーを考案しました。これらの4つのバリアントでは、SHA-256とSHA-512を含む2つがコアでした。それらの違いは、SHA-512は64バイトのワードを使用したのに対し、SHA-256は32バイトのワードのみを使用したことです。.
ハッシュ関数のSHA-2ファミリーは今でも広く使用されています。ただし、2012年の公開コンペティション中にNSA以外の設計者によって考案およびリリースされたSHA-3もありました。以前はKeccakと呼ばれていました。 Keccakの利点には、より優れた攻撃耐性と効率的なパフォーマンスが含まれていました.
RIPEメッセージダイレクト(RIPEMD)
RIPE Message Direct(RIPEMD)は、1992年にリリースされたハッシュ関数のファミリーです。また、RIPEはRACE Integrity PrimitivesEvaluationsの略です。.
これは、オープンな研究コミュニティによって設計および管理されています。ファミリには、RIPEMD、RIPEMD-160、RIPEMD-128、RIPEMD-320、およびRIPEMD-256を含む5つの機能があります。ただし、最も一般的に使用される機能はRIPEMD-160です。.
RIPEMDの設計は、MessageDirectに基づいています。.
ハッシュ、暗号化、ソルティングの違い
このセクションでは、ハッシュ、暗号化、ソルティングの違いについて簡単に説明します。.
暗号化を始めましょう.
暗号化は、公開鍵を使用して元の情報をスクランブルし、秘密鍵を使用してロックを解除するプロセスです。一方向性関数です.
一方、ハッシュは、検証目的で情報をスクランブルするために使用される一方向性関数です。.
最後の用語は「塩漬け」です.
ソルトはハッシュに似ていますが、ここでは、異なるハッシュ値を作成するために一意の値がパスワードに追加されます。ここでは、ソルト値は一意であり、非表示のままである必要があります.
結論
これにより、暗号化のハッシュが終了します。最初にハッシュが提供するものについて学び、次にそれがどのように機能するか、そのタイプなどをすばやく学ぶことによって、ハッシュの内外を理解しようとしました。!
ご覧のとおり、暗号通貨、パスワード保護、署名検証など、ハッシュの使用例はたくさんあります。ハッシュは独自の方法で独自のものですが、世界中の強力なコンピューターのおかげで、情報を保護する効果は日を追うごとに減少しています。.
研究者たちはまた、量子耐性があり、世界中の計算能力の進歩に耐えることができる、より強力なハッシュ関数をリリースすることにより、現状維持に向けて取り組んでいます.
では、ハッシュについてどう思いますか?以下にコメントしてお知らせください.