・ 2006年4月 ・ |
●
(06/04/24)
|
●
(06/04/17)
|
●
(06/04/10)
|
●
(06/04/03)
|
・ 2006年3月 ・ |
●
(06/03/27)
|
●
(06/03/20)
|
●
(06/03/13)
|
●
(06/03/06)
|
・ 2006年2月 ・ |
●
(06/02/27)
|
●
(06/02/20)
|
●
(06/02/13)
|
●
(06/02/06)
|
・ 2006年1月 ・ |
●
(06/01/30)
|
●
(06/01/23)
|
●
(06/01/16)
|
・ 2005年12月 ・ |
●
(05/12/19)
|
●
(05/12/12)
|
●
(05/12/05)
|
・ 2005年11月 ・ |
●
(05/11/28)
|
●
(05/11/21)
|
●
(05/11/14)
|
●
(05/11/07)
|
・ 2005年10月 ・ |
●
(05/10/31)
|
●
(05/10/24)
|
●
(05/10/17)
|
●
(05/10/03)
|
・ 2005年9月 ・ |
●
(05/09/26)
|
●
(05/09/12)
|
●
(05/09/05)
|
・ 2005年8月 ・ |
●
(05/08/29)
|
●
(05/08/22)
|
●
(05/08/08)
|
●
(05/08/01)
|
・ 2005年7月 ・ |
●
(05/07/25)
|
●
(05/07/11)
|
●
(05/07/04)
|
・ 2005年6月 ・ |
●
(05/06/27)
|
●
(05/06/20)
|
●
(05/06/13)
|
●
(05/06/06)
|
・ 2005年5月 ・ |
●
(05/05/30)
|
●
(05/05/23)
|
●
(05/05/16)
|
●
(05/05/09)
|
・ 2005年4月 ・ |
●
(05/04/25)
|
●
(05/04/18)
|
●
(05/04/11)
|
●
(05/04/04)
|
・ 2005年3月 ・ |
●
(05/03/28)
|
●
(05/03/14)
|
●
(05/03/07)
|
・ 2005年2月 ・ |
●
(05/02/28)
|
●
(05/02/21)
|
●
(05/02/14)
|
●
(05/02/07)
|
・ 2005年1月 ・ |
●
(05/01/31)
|
●
(05/01/24)
|
●
(05/01/17)
|
・ 2004年12月 ・ |
●
(04/12/20)
|
●
(04/12/13)
|
●
(04/12/06)
|
・ 2004年11月 ・ |
●
(04/11/29)
|
●
(04/11/22)
|
●
(04/11/15)
|
●
(04/11/08)
|
●
(04/11/01)
|
・ 2004年10月 ・ |
●
(04/10/25)
|
●
(04/10/18)
|
●
(04/10/04)
|
・ 2004年9月 ・ |
●
(04/09/27)
|
●
(04/09/13)
|
●
(04/09/06)
|
・ 2004年8月 ・ |
●
(04/08/30)
|
●
(04/08/23)
|
●
(04/08/09)
|
●
(04/08/02)
|
・ 2004年7月 ・ |
●
(04/07/26)
|
●
(04/07/12)
|
●
(04/07/05)
|
・ 2004年6月 ・ |
●
(04/06/28)
|
●
(04/06/21)
|
●
(04/06/14)
|
●
(04/06/07)
|
|
|
【第140回】
ハッシュ値と人間の指紋
(06/01/30)
窓の杜高校、超パソコン部の部室。
あらあら、めも理ちゃん。今日は足取りがふらふらなようです。
何かショックなことでもあったのでしょうか?
ハッシュ値
|
うーん、頭が痛くなってきたわ。
|
|
どうしたんですか、めも理ちゃん。ふらふらになっているみたいですね。
|
|
そうなのよ。
|
|
一体何があったのですか?
|
|
ほかの学校のパソコン部との交流会に参加したのよ。そうしたら、分からない単語ばかり出てきて頭がパンクしそうになってしまったわ。
|
|
それは大変でしたね。めも理ちゃんの頭では、理解できないことばかりだったでしょう。
|
|
……少しむかつく言い方ね。
全部が全部分からなかったわけじゃないわよ。でも、“ハッシュ値”という言葉については、まったく理解不能だったわ。
『ダウンロードしたファイルの確認などに使われている』と聞いたんだけど、何のことやらという感じだったわ。
ねえ窓太。ハッシュ値って一体何なの?
|
|
そうですね、それは人間の指紋のようなものですよ。
|
|
指紋?
|
|
そうですよ。
不思議そうな顔をしていますね。それじゃあ少し、ハッシュ値について説明することにいたしましょう。
|
人間の指紋
|
めも理と窓太の4コマまんが 「ハッシュ値」 |
|
さて、めも理ちゃんに質問です。めも理ちゃんがビルの管理をすることになったとします。
このビルに産業スパイが侵入しようとしています。めも理ちゃんなら、どうやって産業スパイを防ぎますか?
|
|
うーん、まるでスパイ映画みたいね。
そうね、ビルに入ろうとする人の指紋を入り口で確認して個人を特定すれば、部外者の侵入を防げるんじゃないの?
実際にテレビのニュース番組などで、指紋から個人を特定する装置があると聞いたことがあるわ。
|
|
ほー、めも理ちゃんも少しは社会の動向を把握しているようですね。
今回の質問のように、セキュリティのために個人を特定する必要がある場合は、指紋といった各人固有の“体の一部”を利用することがあります。
実は、同じようなセキュリティの手法がパソコンのデータの世界でも存在するのです。
|
|
えっ、データにも指があって、指紋を採取できるの?
|
|
違いますよ。めも理ちゃんはいつも短絡的なんですから。
|
|
むっ、失礼な言い方ね。
じゃあ、なんでパソコンのデータでも、セキュリティのために“体の一部”のようなものが必要になるの?
|
|
例えばメールの本文が、送り先へ届くまでの間に、改ざんされてしまったらどうなりますか?
|
|
どうなるの?
|
|
もし、メール本文に書かれている『めも理ちゃん大好き』という文章が、『めも理ちゃん大嫌い』と書き替えられているだけでも大変なことになりますよね。
|
|
げっ、それは大変ね。
|
|
同じように、Web上に公開されているファイルやアプリケーションが、第3者によって改ざんされている可能性もあります。
また、ファイルのダウンロードに失敗して、ダウンロードしたデータが破損している場合もあります。
|
|
なるほど。手に入れたデータが本物と違っていたら非常に困るわね。
|
|
そうでしょう。
そこで、人間の指紋で個人を特定するように、パソコンのファイルやデータが本物であるかを確認するための手段があります。それがハッシュ値です。
|
|
なるほど。必要性は分かったわ。
じゃあ、ハッシュ値というのは、具体的にどういうものなの?
|
|
では、ハッシュ値とはどういったものなのか説明しましょう。
ハッシュ値は、“ハッシュ関数”という特別な計算方法を使って、対象のデータから割り出した短いデータのことです。
元のデータより短いデータになることから、このハッシュ関数は“要約関数”とも呼ばれています。
|
|
短いデータ? 圧縮みたいなもの?
|
|
ハッシュ値は、データの圧縮とは違います。
圧縮ファイルは、解凍することで圧縮前のデータに戻すことができますよね。一方、ハッシュ値は元のデータに復元することはできません。
ハッシュ値は、圧縮したときよりももっと短いデータです。
|
|
ふーん、そんな短いデータが何の役に立つの?
|
|
実はハッシュ値には便利な特長があるのです。
異なる複数のデータから、ハッシュ関数を使ってそれぞれのハッシュ値を計算したとします。すると、各データからもとめたハッシュ値が同じになることはほとんどありません。
また、同じデータからハッシュ値を何度計算しても、必ず同じハッシュ値になります。
ハッシュ値は、各データの指紋みたいなものというわけです。
|
|
理論的なことは分かったけど、実際にどういった場合に利用されているの?
|
|
ハッシュ値はファイルの真偽をチェックするときなどに利用されます。
Web上に公開されているデータのダウンロードページ上には、あらかじめ計算しておいたそのデータのハッシュ値が掲載されていることがあります。
この場合、そのデータをダウンロードした人は、ローカルに保存したデータのハッシュ値を計算すれば、ダウンロードページ上のハッシュ値と見比べることができます。
つまり、Web上にあるデータと、ダウンロードでローカルに保存したデータが同じものであるかどうかを、ハッシュ値をもとに確認できるのです。
もし、計算したハッシュ値が違っていれば、Web上のデータが第3者により改ざんされたか、ダウンロードの途中などにデータが破損したということになります。
|
|
なるほど。
でも、ハッシュ値って、ハッシュ関数とやらを使って計算しないといけないんでしょう。
そんな面倒なことを、私はやりたくないんだけど。
|
|
大丈夫ですよ。めも理ちゃんが計算しなくても、専用のアプリケーションを利用すれば、ファイルをドラッグ&ドロップするだけでハッシュ値を計算できますから。
それじゃあ、ハッシュ値を計算するアプリケーションを紹介しますね。
|
|
ただし、こういったアプリケーションを使う場合は注意しないといけないことがあります。
|
|
それは何なの?
|
|
ハッシュ値には、使用する関数の違いにより、いくつか種類があります。
日本でもっとも利用されているハッシュ値は“MD5”という種類です。ほかには、アメリカ政府が標準で採用している“SHA”というハッシュ値もあります。
種類の異なるハッシュ値同士を比べても意味がありませんので、ファイルの真偽をチェックするときなどは、対応するハッシュ値を計算する必要があります。
|
|
なるほど、種類がたくさんあるのは、ファイルの圧縮と似てるわね。
ある形式で圧縮されたファイルには、対応する解凍ソフトが必要であるように、ハッシュ値も種類によって使い分けるのね。
|
|
そういうことです。どうやら、ちゃんと理解できたようですね。
|
要約
|
ねえ、窓太。世界はもっとハッシュ値を尊重する必要があると思うのよ。
|
|
どうしたんですか、めも理ちゃん。急に哲学的なことを言い出して。
|
|
それがね、国語の授業で、『小説を読んで400字程度の要約を書く』という宿題があったのよ。
|
|
そういえば昨日、そんな宿題が出たと言っていましたね。
|
|
だから、クラスの頭がいい人の要約をそっくりそのまま写して提出したのよ。そうしたら先生に怒られたの。
同じデータを要約したんだから、ハッシュ値のように、同じ結果になるはずじゃない。なぜ、私が怒られないといけないの!
|
|
えー、めも理ちゃん。
国語は数学とは違いますよ。同じ計算方法で計算したら、同じ答えが出るという科目ではないですから。
|
|
むきー、なんでダメなの~!
|
|
はあ、めも理ちゃんに、いらぬ知識を授けてしまったようですね。
|
今回出てきた用語の解説
【ハッシュ値】 ハッシュ関数と呼ばれる計算方法を使って、ファイルやデータから割り出した短いデータのこと。異なる複数のデータからハッシュ値を計算すると、それぞれのハッシュ値が同じになることはほとんどない。また、同じデータからは必ず同じハッシュ値が割り出される。そのために、データが改ざんされていないかどうかを確認するときなどに利用されている。
(クロノス・クラウン:柳井 政和)
|
|
|