SHA-256、MD-5、ハッシュ関数の原理を理解していますか?

SHA-256、MD-5、ハッシュ関数の原理を理解していますか?

編集者注: この記事は、Blockchain Base Camp (ID: blockchain_camp) からのもので、著者: wagslane、翻訳者: Huohuojiang が Odaily Planet Daily の許可を得て転載したものです。

この記事では、ハッシュ関数が使用される理由とその基本的な動作原理を読者が理解できるように、ハッシュ関数について簡単に紹介します。具体的な証明や実装の詳細は省略し、高レベルの原則に焦点を当てます。

ハッシュ関数を使用する理由は何ですか?

ハッシュ関数は、主にパスワードの安全な保管、バックアップ レコードの検索、データの高速な保管と取得など、インターネットのさまざまな側面で広く使用されています。たとえば、Qvault はハッシュを使用してマスター パスワードを秘密の暗号化キーに拡張します。

(Qvault: https://qvault.io/)

使用例の一覧については、https://en.wikipedia.or/ を参照してください。

この記事では、ハッシュ関数の最も重要な特性とも言える、いくつかの重要な特性に焦点を当てます。

  • ハッシュ関数はデータを決定論的にスクランブルします。

  • ハッシュ関数の出力サイズは、入力が何であっても常に同じです。

  • スクランブルされたデータから元のデータを取得することは不可能です(一方向機能)。

決定論的にデータをスクランブルする

まず、ルービックキューブを想像してください。

リカバリーキューブから始めます。ルービック キューブをランダムに回転させると、最後には、ルービック キューブは最初とはまったく異なる状態になります。同様に、最初からやり直してまったく同じ行動を繰り返すと、まったく同じ結果が継続的に得られます。結果はランダムであるように見えるかもしれませんが、そうではありません。これが「決定論」の意味です。

「決定論」はパスワードを安全に保存する上で重要な役割を果たします。たとえば、私のパスワードが「iLoveBitcoin」だとします。

ハッシュ関数を使用してスクランブルすることができます。

iLoveBitcoin→ “2f5sfsdfs5s1fsfsdf98ss4f84sfs6d5fs2d1fdf15”

これで、誰かがこの暗号化されたバージョンを見ても、私の元のパスワードはわかりません。これは非常に重要です。なぜなら、Web サイトの開発者として、ユーザーのパスワードを検証するために、そのハッシュ (スクランブルされたデータ) を保存するだけでよいからです。

ユーザーが登録すると、パスワードをハッシュしてデータベースに保存します。ユーザーがログインすると、入力を再度ハッシュし、2 つのハッシュを比較するだけです。特定の入力は常に同じハッシュ値を出力するため、この方法では毎回パスワードを正常に検証できます。

ウェブサイトがパスワードをプレーンテキストで保存すると、大きなセキュリティホールが生じます。誰かがサイトにハッキングすると、すべてのメールとパスワードにアクセスでき、それらを使用して他のサイトにログインしようとする可能性があります。

入力が何であっても、出力サイズは常に同じです

1 つの単語をハッシュすると、出力は特定のサイズ (特定のハッシュ関数 SHA-256 の場合は 256 ビット) になります。本をハッシュすると、出力も同じサイズになります。

これは計算時間を節約できるため、もう 1 つの重要な機能です。典型的な例としては、データ マップ内のキーとしてハッシュを使用することです。データ マップは、コンピューター サイエンスでデータを格納するために使用される単純な構造です。

プログラムがマップ内にデータを保存する場合、マップにはキーと値が提供されます。プログラムが値にアクセスする場合、マップに対して適切なキーを提供し、対応する値を受け取ることができます。データマップの利点は、データをすぐに見つけることができることです。キーは、コンピューターが即座に見つけることができるアドレスとして使用されるので、何百万ものレコードを何時間もかけて検索する必要がなくなります。

アドレスと同様に、キーは大きすぎることはできないためです。データ マップに書籍を保存したい場合は、書籍の内容をハッシュし、そのハッシュ値をキーとして使用できます。プログラマーとして、タイトルや著者などで何千ものレコードを並べ替えることなく、ハッシュを使用して本のコンテンツを簡単に見つけることができます。

どのように機能しますか?

これはこの記事の難しい部分です。実際の実装の詳細は省略し、ハッシュを使用してデータを処理するときのコンピューターの動作の基本的な概念に焦点を当てて、シンプルに説明します。

この目的のために私が書いたアルゴリズム、LANEHASH を見てみましょう。

ハッシュしたいデータから始めます

文字と数字を 1 と 0 に変換しました (コンピューター内のすべてのデータは 1 と 0 の形式で保存されており、1 と 0 の異なる組み合わせは異なる文字を表します)

この時点で、さまざまな事前設定された手順を通じてデータを変換します。手順は任意ですが、重要なのは、アルゴリズムが決定論的になるように、LANEHASH を使用するたびに同じ手順に従う必要があることです。最初の 4 ビットを左から右にシフトします。

1ビットごとの間隔:

これら 2 つの部分を 10 進数に変換します。 10 進数は、私たち全員が学校で学んだ「通常の」数値システムです。 (すべてのバイナリ データは実際には数値です。バイナリを 10 進数に変換する方法は、他の Web サイトで調べることができます)

次の 2 つの数値を掛け合わせます。

次にこの数を二乗します。

数値を 2 進数に戻します。

右側から 9 ビットを切り取ると、ちょうど 16 ビットになります。

次に、そのバイナリ データを英語に戻します。

上記のように、入力が同じであれば、最終的には出力も同じになります。ただし、1 文字でも変更すると、最終結果も大幅に変わります。

<<:  エバン・インターナショナルの「執着」:エバンは次の「カナン」となるか?

>>:  半減期後、ビットコインのマイニングはどうなるのでしょうか?あなたのための包括的な分析

推薦する

FTX の影響を受けた機関はどれですか? また、損失額はいくらですか?

2021年6月、FTXはパラダイム、ソフトバンク、セコイアキャピタルなどのベンチャー投資家から10...

ビットコインに反対する人がいる理由はいくつかある

常に反対意見を言う人は、他人を否定したがります。現在、多くのビットコイン懐疑論者がこの話題について再...

アルゴブロックチェーン、テキサスにマイニングファームを建設へ

仮想通貨マイニング企業アルゴ・ブロックチェーンは、仮想通貨マイニング施設の専門設計・製造企業ナビエ社...

カナン・クリエイティブは科学技術イノベーション委員会へのIPOを計画しているが、3つのハードルに直面している

最近、世界第2位のビットコイン採掘機メーカーであるカナンクリエイティブの創業者、張南興氏は、同社が科...

リップル、ニューヨーク州でBサイド向け初のビットライセンスを取得

昨年初め、ニューヨーク州は仮想通貨活動に従事するためにライセンスを必要とし始めました。リップル社はニ...

ハリス氏の大統領候補指名は暗号通貨業界にとって何を意味するのでしょうか?

ジョー・バイデン大統領が突然選挙戦からの撤退を発表したため、カマラ・ハリス副大統領が民主党の大統領候...

「デッドブル」マイクロストラテジーは再び買い、10万ビットコイン以上を保有し、株価は一時10%以上下落した。

デジタル通貨の「筋金入りの強気派」マイクロストラテジーが再びビットコインを購入した。この購入により、...

韓国のビットコイン取引所CoinoneとCoinnestがフォーク計画を発表

韓国の2つのビットコイン取引所、CoinoneとCoinnestは、今後のビットコインネットワークに...

ビットコインは1万元の時代を告げるだろう。チャートブラザーが移動平均戦略を使ったトレード方法を教えます(乾物シェアリング)

人民元建てビットコインが10,000元の大台に乗ろうとしている今、チャートブラザーは、ビットコインに...

高い圧力にさらされている鉱業業界はどうなるのでしょうか?

最近のニュースでは、鉱業の是正が必須であることが示されています。ちょうど一昨日、国家発展改革委員会は...

四川省が暗号通貨産業を調査、ビットコインの「採掘」は結果を待つ

国家エネルギー局四川省監督管理事務所は2021年6月2日に「仮想通貨」に関する研究セミナーを開催した...

ビットコインの激しい変動の理由の一つは、大手機関投資家の参入だ。

最近のビットコインの上昇と下降は投資家たちにジェットコースターのような体験を与えた。先週、ビットコイ...

元マイクロソフト社員が逮捕、1000万ドル相当のデジタル通貨を盗んだ疑い

マイクロソフト社の元社員が16日、同社のオンライン小売プラットフォームから1000万ドル(約6880...