プロが教えるわが家の防犯対策術!

なぜデータの整合性を確認する時はハッシュ値で確認するのでしょうか?ハッシュ値は衝突する可能性があるのですからハッシュ値よりバイナリを比較した方が良いと思うのですが

A 回答 (5件)

この手のものには、全てのケースで使える万能な方法、というのはありません。


メリットデメリットを考えて、適切な方法を使う/不適切な方法を使わないことが大切です。


バイナリでの全数比較するためには、比較対象になる「信用できる正しいファイル」が必要です。
内蔵ディスクから外付けディスクへのコピーの検証なら、「内蔵」のを「信用できる正しいファイル」と見做すことができます。
※ コピーしてから検証するまでの間に「内蔵」の方が変化する可能性は0ではありません。
ですが、その確率は非常に低いので、「見做す」ことができます。


対して、ネットからのダウンロードを考えると、「信用できる正しいファイル」の入手は困難です。
もう一度ダウンロードするのと同じ「バイナリでの比較」では、信用できないデータ同士を比較するという、何をやってるかわからない状態です。
USBメモリやDVDに「信用できる正しいファイル」を入れて送ってもらうのなら信用度は上がりますが、それならダウンロードする意味がありません。

ハッシュ値は
・本体に比べるとサイズが小さいので、通信時の誤り発生率が本体よりも小さい(はず)
・Webサイトに公開されている場合、それを見る人が多いので、改竄が発見される可能性が高い
・ハッシュ関数が工夫されていて、同じハッシュを持ちながら、内容が異なるファイルを意図的に作るのは非常に難しい
等と、**本体に比べれば**信用できます。
    • good
    • 1
この回答へのお礼

ありがとう

ご回答ありがとうございました

お礼日時:2023/07/09 22:54

例えばダウンロードしたファイルが正しいかを確認する場合、正しいハッシュ値が公知であれば、ファイル本体を1回ダウンロードしてハッシュ値を計算するだけで済みます。



そういった現実的な手法として、ハッシュ値が使われてるのだと。
まあ現実を無視することもカネさえあれば実現できますが。
    • good
    • 1
この回答へのお礼

ありがとう

ご回答ありがとうございました!

お礼日時:2023/07/06 21:24

>それはハッシュ値にも言えることなのではないでしょうか?



だ・・か・・ら・・
整合性の問題、奥が深いですよ。
    • good
    • 1
この回答へのお礼

ありがとう

そうなのですね!ご回答ありがとうございました!

お礼日時:2023/07/06 21:20

バイナリを比較するのだと同じデータを2つ用意して一致確認ということになるけど、それで何が分かるの?


ハッシュ値を比較する方法はデータ本体と比べて小さいハッシュ値を比較することで検証できるから意味があるのです。SHA-2のような暗号論的ハッシュ関数ではハッシュ値が一致する異なるデータは作ろうと思っても事実上作れないので、衝突のリスクを考える必要はないです。
    • good
    • 1
この回答へのお礼

うーん・・・

>バイナリを比較するのだと同じデータを2つ用意して一致確認ということになるけど、それで何が分かるの?

整合性の有無が分かります


>ハッシュ値を比較する方法はデータ本体と比べて小さいハッシュ値を比較することで検証できるから意味があるのです

データ本体と比べて小さいハッシュ値を比較することで検証できることに、なんの意味があるのでしょうか?


>SHA-2のような暗号論的ハッシュ関数ではハッシュ値が一致する異なるデータは作ろうと思っても事実上作れないので、衝突のリスクを考える必要はないです。

偶然衝突する可能性があるためリスクを考えなくてよいわけではないと思うのですが、、

お礼日時:2023/07/06 19:04

効率が良いから


かな
>ハッシュ値よりバイナリを比較した方が良いと思うのですが
比較すべきバイナリをどうやって用意するのかしら?

用意した比較用のバイナリに誤りがあった場合、元のデータが正しいにもかかわらず、誤りがあると判断されるという可能性もありますね。

整合性の問題、奥が深いですよ。
    • good
    • 1
この回答へのお礼

ありがとう

>用意した比較用のバイナリに誤りがあった場合、元のデータが正しいにもかかわらず、誤りがあると判断されるという可能性もありますね。

それはハッシュ値にも言えることなのではないでしょうか?

お礼日時:2023/07/06 19:01

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