最新閲覧日:

よろしくお願いいたします。
現在セキュリティの勉強をしております。
で、ハッシュについて確認したく投稿いたしました。

自分なりに勉強をして、
送信者がデータをハッシュ関数を使用してメッセージダイジェストを
作成し、受けても同じ事を行うのはわかりました。
つまり、
[データ]+[メッセージダイジェスト(データに添付する)]+[デジタル署名(データに添付する)]
の3点をまとめて暗号化し、
受け取った相手が秘密鍵で
[データ]+[メッセージダイジェスト]+[デジタル署名]に複合し
自分でもハッシュ関数を使用してメッセージダイジェストを作成し
送り手のダイジェストと比較すると理解しましたが
正しいのでしょうか?
また、同じハッシュ関数で自分でも作成するみたいですが
どこにハッシュ関数の情報が載っているのですか?
いまいち自信が持てませんのでアドバイスお願いいたします。

このQ&Aに関連する最新のQ&A

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:http://www.faqs.org/rfcs/rfc1321.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
専門家の方からのアドバイスとても
うれしいです。
参考URLもものすごく勉強になります。
ハッシュについてはご指摘の通り
奥が深い割に、あまり資料も少ないみたいですね。
でも、何とかがんばってみます。
誠にありがとうございました。

お礼日時:2001/05/13 06:37

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報