- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ハッシュ(メッセージダイジェスト)について)
ハッシュ(メッセージダイジェスト)とは?
このQ&Aのポイント
- ハッシュ(メッセージダイジェスト)とは、データを暗号化するための技術です。
- ハッシュ関数を使用してデータを変換し、一定の長さの固定長の文字列、つまりメッセージダイジェストを生成します。
- このメッセージダイジェストを使用して、データを保護し、改ざんまたは盗まれるリスクを低減することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
質問中に書かれていることは正しいです。受け取ったほうも同じハッシュ関数を用いて, ダイジェストを比較して, 改ざんが起きてないか確認します。 さて, ハッシュ関数の情報ですが, MD5というハッシュ関数はRFC1321という規格になっており, その規格書みたいなやつにソースコードが載っております。ただし, このソースコードはちょっと変更しないと使えないので, 頑張ってください。また, SHAというハッシュ関数があり, こちらはCのコンパイラーによってはsha.hというヘッダーファイルで, 提供されていることがあります。 今, 確認したところによると, 参考URLにてMD5ハッシュ関数のソースコードが提供されています。上手く, ファイルに分けて, C言語にて, コンパイルしてください。間違っている箇所というのは, #define MD MD5という文で, これを#define Md 5に変えてください。 SHAについてはhttp://www.cc.utah.edu/~nahaj/c/sha/sha.c.htmlにてC言語でのソースコードが載っています。 また, 自分で新しいハッシュ関数を発明したいというのなら, 共通鍵暗号を勉強して, どんなことをしても可逆変換不可能なものを考えればいいと思います。ハッシュ関数は重要な関数にも関わらず, あまり, 研究報告がされていないと聞いています(専門家と書いていても今年の3月までなのでごめんなさい)。もしかしたらすごく有名な人になれるかもしれません。 ハッシュ関数は自分は"現代暗号"(岡本龍明, 山本博資)という本で勉強しました。 後は, インターネットで流れている論文です。 研究頑張ってください。
お礼
回答ありがとうございます。 専門家の方からのアドバイスとても うれしいです。 参考URLもものすごく勉強になります。 ハッシュについてはご指摘の通り 奥が深い割に、あまり資料も少ないみたいですね。 でも、何とかがんばってみます。 誠にありがとうございました。