検索 ≡

AIの用語を、実際に触って確かめて書いています

用語辞典

ハッシュ関数

一言でいうと
どんな長さのデータからも決まった長さの「指紋」のような値を作り、そこから元に戻すのは計算上ほぼ不可能にした関数。

何のことか

米国立標準技術研究所(NIST)の用語集は、ハッシュ関数をこう定義しています[1]。

A function that maps a bit string of arbitrary length to a fixed-length bit string

(任意の長さのビット列を、決まった長さのビット列に対応づける関数)

1文字のデータでも、大きなファイルでも、出てくる値の長さは同じです。この出てきた値をハッシュ値と呼びます。同じ用語集は、ハッシュ値を「メッセージにハッシュ関数を適用した結果」(The result of applying a hash function to a message)としています[2]。

どんな性質があるのか

NIST の用語集が挙げる定義から、主な性質を3つ拾います[1]。

  • 内容全体で決まる: 値は「ファイルやメッセージの内容全体に左右される」(depends on the entire contents of the file or message)。用語集は、ハッシュ関数を「ファイルやメッセージの指紋のようなもの」(A hash function can be considered to be a fingerprint of the file or message)と考えられる、と書いています。
  • 元に戻せない(一方向性): 「無作為に選ばれた出力が与えられたとき、その出力になる入力を見つけることは計算上実行できない」(Given a randomly chosen target output, it is computationally infeasible to find any input that maps to that output)。用語集は「この性質は一方向性と呼ばれる」(This property is called the one-way property)としています。
  • ぶつからない(衝突しにくい): 「同じ出力になる2つの異なる入力を見つけることは計算上実行できない」(It is computationally infeasible to find any two distinct inputs that map to the same output)。

よくある誤解:暗号化と同じものか

同じではありません。総務省の用語集は、暗号化したデータを戻すこと(復号)を「暗号化されたデータを元に戻して、人やコンピュータが識別できる情報にすること。」と説明しています[4]。暗号化したデータは、この復号で元に戻せます。これに対してハッシュ関数は、上のとおり出力から入力を見つけられないように作られています。「元に戻す」使い方をしないのがハッシュ関数です。

ニュースで読むときの注意

情報漏えいの発表では、「パスワードのハッシュ値」「ハッシュ化したパスワード」という言い方がよく出てきます(例:「銀のさら」など3ブランドの漏えい、ファンケルとアテニアの漏えい)。これは、漏れたのがパスワードの文字列そのものではなく、ハッシュ関数を通した結果だった、という意味です。

ハッシュ値に関わる言葉として、NIST の用語集にはソルト(salt)もあります。「暗号の処理で使う、秘密ではない値。通常は、ある1件について行った計算の結果を、攻撃者が使い回せないようにするためのもの」(A non-secret value used in a cryptographic process, usually to ensure that the results of computations for one instance cannot be reused by an attacker)という定義です[3]。

同じパスワードを別のサービスでも使っていた場合については、総務省が「サービスから流出したアカウント情報を使って、他のサービスへの不正ログインを試す攻撃の手口が知られています。」と注意しています[5]。使い回したパスワードは「他のサービスから何らかの原因でパスワードが漏洩してしまえば、第三者に重要情報にアクセスされてしまう可能性があります。」とも書いています[5](情報漏えい、多要素認証)。

たとえるなら

材料を全部ミキサーにかけて作ったスムージーのようなものです。同じ材料を同じ量入れれば、毎回同じ味になります。材料が1つ違えば味が変わります。でも、できあがったスムージーから元の果物を取り出して並べ直すことはできません。

出典

  1. NIST Computer Security Resource Center「Glossary: hash function」
  2. NIST Computer Security Resource Center「Glossary: hash value」
  3. NIST Computer Security Resource Center「Glossary: salt」
  4. 総務省「国民のためのサイバーセキュリティサイト」用語集(は行)
  5. 総務省「国民のためのサイバーセキュリティサイト」安全なパスワードの設定・管理

出典

5件
  1. NIST Computer Security Resource Center「Glossary: hash function」csrc.nist.gov
  2. NIST Computer Security Resource Center「Glossary: hash value」csrc.nist.gov
  3. NIST Computer Security Resource Center「Glossary: salt」csrc.nist.gov
  4. 総務省「国民のためのサイバーセキュリティサイト」用語集(は行)soumu.go.jp
  5. 総務省「国民のためのサイバーセキュリティサイト」安全なパスワードの設定・管理soumu.go.jp

次に読む

用語

情報漏えい

預かった名簿が外に出る・なくなる・壊れること。重いものは国への報告と本人への連絡が義務になる。

用語

多要素認証

パスワードだけに頼らず、種類の違う確かめ方を2つ以上組み合わせてログインさせる仕組み。

用語

個人情報

生きている人の情報のうち、誰のことか分かるもの。名前と組み合わせた連絡先や、公開されている情報も入る。

こういう用語を週1回まとめて