元Webデザイナー兼コーダーの備忘録

HTML,CSSの入門記事やブログのカスタマイズについてアウトプットしています。

 menu

【TVアニメ】ゴジラS.P<シンギュラポイント>で出てくるハッシュ関数(MD5)について

ゴジラS.Pでハッシュ関数の話が出てきます。ハッシュは、基本情報技術者試験で出題されることもあるので、一応触れておこうと思います。

ゴジラS.P<シンギュラポイント>とは

ゴジラ”の新たなプロジェクトとして、完全新作TVアニメシリーズ『ゴジラ S.P <シンギュラポイント>』が始動!これまでの作品とはまったく違う、まったく新しいオリジナルストーリーが、全13話のTVアニメとして展開。人類に訪れる未曽有の脅威に、女性研究者の“カミノメイ”と、男性技術者の“アリカワユン”という2人の若き天才が、周囲の人間たちと共に挑んでいく姿が壮大なスケールで描かれる。 イントロダクション | 完全新作TVアニメシリーズ「ゴジラ シンギュラポイント Godzilla Singular Point」公式サイトより抜粋

ゴジラのアニメ作品です。これまでの作品とは趣が異なり、SFに寄った話になっています。

ハッシュ関数とは

簡単にいうと、ハッシュで求めるものは「割り算の余り」です。割り算の余りがハッシュ値です。それをプログラム上で関数化したものがハッシュ関数です。ハッシュ関数にはいくつか種類があります。MD5は、そのひとつです。

暗号とハッシュの違い

暗号は、解けることが前提です。何かの法則に基づいて暗号化します。法則が分かれば暗号は解けて、答えが分かります。例えば、推理もので出てくるダイイングメッセージは、解けることが前提で出てくると思います。

ハッシュは、解けることを前提としていません。こちらもある法則に基づいてハッシュ化します。しかし、法則が分かっても元の答えを導くのは困難です。ハッシュにはそのような特性があります。

ハッシュの利用例

本人だけが知っていれば良いものに、ハッシュを使うのが良いです。例えば、Webサービスのログイン認証です。この場合、最初にパスワードをハッシュ化したものをデータベースに保存します。次回からは「DBに保存しているハッシュ値」と「ログイン時に入力されたパスワードをハッシュ化して得られたハッシュ値」を比較して、合っているか確認します。合っていれば認証成功です。本当はもっと複雑なことをしていると思いますが、簡潔にいうと以上のようなことをしています。

ログイン認証でハッシュが使われるのは、セキュリティ対策のためです。ハッシュ値が漏洩しても元のパスワードが何なのか解読するのは困難であるからです。

作中のハッシュ関数についてのやり取り

作中に出てくる新素材が「この世では有り得ない物質」と語られるのですが、それがどのくらい有り得ないのかの例えとして、ハッシュ関数が登場します。

以下に、作中で出てくるハッシュ関数の入出力値を抜粋します。

  • どんなものでも=0832ad2a043c385c29fc71b1b1119c93
  • 0123456789=781e5e245d69b566979b86e28d23f2c7
  • へのへのもへじ=a326a4127563c583fb1aabf73b3c6c89
  • 国破山河在=d1dbad34e95de498739ae267841c6223
  • THIS IS A PEN.=5eeca5705306a253af453f8095293baf
  • はんにゃしんぎょう=7e7a48c0416fbd1b3f604fdb1dc47fe3
  • print("Hello World!")=5373a64586b720d400d7129dd72af164

  • ???=14980c8b8a96fd9e279796a61cf82c9c

ハッシュ値が「14980c8b8a96fd9e279796a61cf82c9c」になる入力値を探すシーンがあります。ヒントは「解けばわかる」なので、答えは「解けばわかる」です。「解けばわかる」をハッシュ化すると「14980c8b8a96fd9e279796a61cf82c9c」になります。参考サイトで確認できるので、気になる方は確認してみてください。

参考サイト