ハッシュは、高速にデータ検索を行うアルゴリズムのことです。
Q&A
解決済
4回答
5616閲覧
総合スコア10
0グッド
0クリップ
投稿2016/04/05 00:12
0
とても基礎的な質問になってしまうのですが、セキュリティについて学習しています。 そこで、ハッシュ関数を使用した鍵認証のところで疑問に思っていることがあります。 送信前のデータと送信後のデータをハッシュ値で比べてデータの改ざんを確認するのは そもそも原本のデータを比べる事と変わらないのかと思っています。 どうしてハッシュ関数を使用するのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
2016/04/05 01:27
2016/04/06 00:06
2016/04/06 00:16
2016/04/07 00:13
回答4件
数十MBの生データを比較するのって大変じゃないですか。 ハッシュなら数十バイトの比較で済みます。
投稿2016/04/05 01:21
総合スコア16612
ベストアンサー
... データの改ざんを確認 ...
データを受け取った人は、当然ながら受け取ったデータしか手元にはありません。 (原本を持ってないのです) 受け取ったデータだけから改ざんがあったか否かを判定しなければならないのです。
データを送信する側は データ と ハッシュ値を送るようにします。 通信途中でのノイズの混入や、人的な改ざんがデータに施されてしまったとします。
受け取った側は、データから ハッシュ値を再計算します。 計算したハッシュ値が、受け取ったハッシュ値と一致するか? で改ざん有無を判定するのです。
上手に改ざんしてハッシュ値が変化しないようにできれば、改ざんは発覚し無いわけです。 しかしそんなふうに改ざんしたデータを調節することが難しいのです。 (不可能ではないが、とても時間がかかる。逆にいうとそのような性質をもったハッシュ計算方法でない場合は改ざんのチェックには適さない)
セキュリティ入門 ハッシュ値 http://itpro.nikkeibp.co.jp/article/COLUMN/20060628/241960/
データ改ざんされていないことを証明する技術 http://jsec.hatenablog.com/entry/2015/06/17/222103
... ハッシュ値に変換する理由としては、メールを送信する際に変換したハッシュ値と受信した時のハッシュ値を比較することで文書が改ざんされていないかの確認を分かりやすくするために行われます。ハッシュ値は以下のような特徴を持ちます。 変換するデータが同じであれば必ず同じハッシュ値が出力される ハッシュ値から元のデータへ変換はできない ...
... ハッシュ値に変換する理由としては、メールを送信する際に変換したハッシュ値と受信した時のハッシュ値を比較することで文書が改ざんされていないかの確認を分かりやすくするために行われます。ハッシュ値は以下のような特徴を持ちます。
... 意図的な改竄とは、同じ符号語を生成する他の内容を求めることであり、この困難さは、総当たり以外に消失訂正をし得ない[注釈 1]ことと、総当たりに時間がかかるように符号を長く設定してあることに由来している。 ...
投稿2016/04/05 14:33
総合スコア22328
epistemeさんが言われていることが本質的な答えですが、補足を。
ご存知かもしれませんが、(一方向性)ハッシュ関数をかけて得られたハッシュ値のことをフィンガープリント(日本語で指紋)といいます。
現実世界でも、その人の全ての情報を照らし合わせなくても、指紋(フィンガープリント)の情報だけで、本人認証できるのと同じように、 対象データの全てを照らし合わせなくても、対象データのハッシュ値を比較するだけで、認証できることから、 まさに、ハッシュ値=フィンガープリントというわけですね。
投稿2016/04/05 13:35
総合スコア907
RSA署名の話のようなのでその前提で。 RSAでは平文にも暗号文にも、pqより小さな整数しか扱えません。pqで剰余をとるので。 だから真面目にRSAだけで通信しようとすると数十文字までのメッセージしか送れないことになってしまいます。ではどう実用的にするか。
暗号化の場合は、なにか共通鍵暗号を使って平文メッセージを暗号化します。共通鍵はその場で生成して。そしてRSAでその共通鍵を暗号化します。 署名の場合は、平文メッセージのハッシュをとるわけです。ハッシュはpqより小さな整数ですから、RSAで署名がかけられます。
投稿2016/04/05 00:22
総合スコア5570
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
ハッシュ関数を利用する利点