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 文字でも変更すると、最終結果も大幅に変わります。

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

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

推薦する

仮想通貨のリスクと規制に関するECB理事会メンバーのスピーチ全文

170年前、アメリカ人は国境を越えて、ゴールドラッシュで富を求め西へと進みました。貪欲と無法によって...

当初の予定より11日遅れた内モンゴル「仮想通貨マイニング突発査察」の全容を解読

11月13日、メディアは、内モンゴル自治区の合同検査チームがいくつかの協会や市を訪問し、仮想通貨「マ...

陳思進:ビットコインはポンジスキームに過ぎない

著者:陳思進 (シニアベンチャーキャピタルコンサルタント)ビットコインは仮想通貨として機能しません。...

李碩 | S9を3万元で売った

2019年と2020年は鉱山労働者にとってハイライトとなる年です。おそらく彼らは、何が突然みんなの注...

モニタリングにより、8,000 BTCがCoinbaseから転送されたことがわかり、コミュニティの注目を集めている。

暗号通貨トレーダーは4億6,​​300万ドル相当のビットコインの突然の動きを追跡している。分析追跡ソ...

データ: すべての取引所/マイニングプールにおけるビットコインの総流出入の分析

この記事にリアルタイムのオンチェーンおよび市場データのサポートを提供してくれた Cryptoquan...

ビットコインが初めて可能にする6つのビジネスモデル

ビットコインは単なる新しい支払い方法でもなく、単に価値を保管する手段でもありません。おそらく最も重要...

ビットコインはまだイーサリアムと競争できるのか?

ビットコインのジレンマ。今週初め、イーサリアムがスポットETFの承認と非証券としての規制の明確化を受...

ブロックチェーン企業MediachainがA16z主導のシードラウンドで150万ドルを獲得

ニューヨークを拠点とするブロックチェーンのスタートアップ企業であるメディアチェーンは、大手ベンチャー...

中国もビットコイン獲得に争い始めているのでしょうか?

著者: Ruan Shengtian WeChat: RDST6666画像ソース: Dazhi中国で...

ビットコインがテスラの業績を低下させる唯一の要因となった理由は何でしょうか?

7月26日、電気自動車メーカーのテスラは非常に印象的な第2四半期の財務報告を発表した。主要指標はす...

オンライン小売業者オーバーストックがビットコイン決済を正式に受け入れ

12月以来、自由な発想を持つオーバーストックのCEO兼会長パトリック・バーンは、同社が6ヶ月以内にビ...

規制当局がオンチェーンステーキングを取り締まる中、コインベースは14%急落

今年初めのビットコインの反発は、不安な暗号通貨界に活力を与えた。しかし現在、米国の規制当局が取り締ま...

SiaCoin: Siaは分散型クラウドストレージプラットフォームの試みです

SiaCoin について知らない人のために説明すると、Sia は分散型クラウド ストレージ プラット...