ブログ

MD5から学んだ1bitのコードにこだわる理由〜そこから感じた暗号とロマン〜

サイバーウェーブインターン生3ヶ月目の吉松です。

今回は「アルゴリズム図鑑」を読みました!

この本の内容から最近業務で受けた指摘の意味が理解できました。

それがタイトルの通り、【MD5から学んだ1bitのコードにこだわる理由】です。

まずはMD5についてですが、Message Digest Algorithm 5の略で、

こちらは任意の長さのデータを128bitの値に生成するハッシュ関数の一つです。

私が業務のなかで、「1bitでも構造が変わるとハッシュ値が変わるから、そもそも別のもになっちゃうんだよ!だから、1bitでもコードにこだわらないとダメなんだ!!」と指摘を受けました。

その指摘にたいして「はい!」と返事はしたものの、「ハッシュ値???」という感じでした。

そして今読んでいるアルゴリズム図鑑を読んでいるとハッシュ関数が詳しく書いてありました。

ハッシュ関数をミキサーと例えます!

そのミキサーの中にデータをぶち込みます!!

ぶち込んでミキサーをかけるとどうなるか?

バラバラになります。

ただ、高性能なミキサーなので同じものと同じミキサーであれば全く同じ形でバラバラになります。

このバラバラになった物がハッシュ値です。

バラバラになってしまったので、もとに戻すことはできません。

なのでたとえハッシュ値を知っていたとしても、そこから元のデータに戻すことはできません。

ただし、同じものと同じミキサー(ハッシュ関数)を使えば、全く同じハッシュ値を得られるので、そのハッシュ値が等しいかどうか比較をすれば投入したデータが同一なのかが分かります。

それをセキュリティーに応用して、情報を盗まれないようにしています。

ただ、このやり方には一つだけ欠点があります。

それはごくたまに違うデータを投入しているはずが、同じハッシュ値を出力してしまうことです。

ただこの確率が天文学的確率で、計算するのに膨大な時間がかかるということで一応安全とされていました。

例えば3世代に渡ってその情報を得られたとしても、その情報に価値がなくなっている可能性があるからです。

ただ近年のIT技術、AIやスパコンの精度など、技術の進化によりその時間がわずかになり、脆弱性が確認されています。

そこでMD5から国はSHA-2(ハッシュ関数)を推奨してました。

現在はさらにSHA-256を推奨しているようです。

暗号を解くほう、それを守る方、まさにいたちごっこです。

そうやって暗号技術もどんどん進化している。まるでお宝を必死に守るように。そしてそれを解こうとする人もいる。

そう、この世はまさに「大こうかい時代!!!」というわけでものすごくロマンをかんじました。

本の概要は以下の通りです。是非いちど読んでみてください!!

・書籍名:アルゴリズム図鑑

・出版社:翔泳社

・書籍内容説明:

アルゴリズムはどんな言語でプログラムを書くにしても不可欠ですが、
現場で教わることはめったになく、かといって自分で学ぶには難しいものです。

本書は、アルゴリズムを独学する人のために作りました。
はじめて学ぶときにはイメージしやすく、
復習するときには思い出しやすくなるよう、
基本的な26のアルゴリズム+7つのデータ構造を
すべてイラストにしています。

ソートやグラフなどの「動き」を図で追うことで、
考え方や仕組みを理解する手助けをします。
よいプログラムを書くために知っておかなきゃいけない
アルゴリズムの世界を、楽しく学びましょう。

https://www.amazon.co.jp/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E5%9B%B3%E9%91%91-%E7%B5%B5%E3%81%A7%E8%A6%8B%E3%81%A6%E3%82%8F%E3%81%8B%E3%82%8B26%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0-%E7%9F%B3%E7%94%B0%E4%BF%9D%E8%BC%9D-ebook/dp/B07179Q3MJ

 

仲間を募集

『WEBテクノロジーで社会に幸せを作る!』そんな想いに共感してくれる仲間を募集しています。

サイバーウェーブでは、AIなどの新しいことにもチャレンジできる環境を提供し、メンバーひとり一人のスキルアップ・ステップアップを全力で応援しています。

個人の成長が会社の成長に繋がります。

◆インターン採用はこちらから

インターン採用

◆新卒・既卒・第二新卒採用はこちらから

新卒・既卒・第二新卒

 

 

おすすめ記事

お問合せはこちら。
お気軽にご相談ください。

電話アイコン 03-5206-8490
業務および採用に関するお電話はこちら