スイーツ(笑)と呼ばないで!!
| |||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
11/24/03:03 [PR] |
08/02/09:34 正確には暗号化とメッセージダイジェストは異なるさて、前回、「パスワードを一方向暗号化しても簡単なパスワードを使っていたら意味がない」という記事を書いた。 話をわかりやすくするために「暗号化」という言葉を用いたが、 専門用語で言えば、md5 hashで生成されるものは暗号ではなくメッセージダイジェストと呼ばれるものだ。 確かに、両者ともに、特殊な関数を用いて平文を変換するという意味では同じではある。 しかし、メッセージダイジェストは世界中どこであっても、inputが同じで、かつ、同じ生成関数を用いた場合には同じ結果が得られるのに対して、暗号化というものはそもそも特殊な鍵を用いて行うのでその鍵(ロジックも)を知らない限り同じ結果が得られないという点で異なる。 メッセージダイジェストは、同じinputに対して、同じ結果が保証されているがゆえに改ざんされているかのチェックなどに利用されることも多い。 例えば、前回紹介したmd5は、どんな長さの平文のinputでも128ビットのメッセージダイジェストを生成する。このビット数が決まっていることによる利点は多い。 例えば、パスワードを平文ではなく、暗号化(正確にはメッセージダイジェスト生成)によって保存しようとした場合に、当然DBのパスワード保存用のフィールドを用意することになるが、これが仮にmd5でhashを作成すると決めている場合には、パスワードの長短に関係なく、128ビットを格納できる領域だけを確保すれば良い。DB設計を経験したものであれば、この利点には大きく頷けることだろう。 そのメッセージダイジェストだが、いろいろと種類がある。 代表的なものを書いておく。 (1) md5 これはRSA社が開発したもので128ビットのメッセージダイジェストを生成する。 他にもmd4とかmd2とかもある。 (2) SHA-1 160ビットのメッセージダイジェストを生成する。 最近、ハイスペックマシンの登場によりもう160ビットだと危ないね、と言われ始めている。 (3)SHA-2 SHA-1のアルゴリズムはそのままで、メッセージダイジェストのビット数だけ増やしたもの。 224,256,384,512のビットのいずれかでメッセージダイジェストを作成することができる。 (4)SHA-3 SHA-1とSHA-2とは別のアルゴリズムを使おうということで始まった試み。 ということで、誤解があるといけないので前回の補足として 正確には暗号化とメッセージダイジェストは異なる というお話でした。 PR
|
|
|