【解説】SHA256ハッシュ値とは? 何故ファイル配布場所に書いてあるのか | 経済的生活日誌

【解説】SHA256ハッシュ値とは? 何故ファイル配布場所に書いてあるのか

SHA256ハッシュ値とは? 何故ファイル配布場所に書いてあるのかソフトウェア

ソフトウェアやモデルなど大容量ファイルによく併記されているSHA256ハッシュというものの役割を、チェクサムという実例を交えつつ簡単に解説していきます。

また、7zipでハッシュ値を求めファイル整合性を確かめる方法も解説しています。

この記事を読むと、hugging face🤗等のファイル配布場所になぜhash値が書いてあるのかが理解できます。

チェック!!
さくいん! 本サイトのAI関連記事まとめ どれから見れば良いのか?!


数十記事ある本サイトのAI関連記事を体系的にまとめました。

目的別にどれから見れば良いのかわかります!!

AI記事索引ページはコチラ

1,SHA256ハッシュとはどういうものか

ハッシュ値とは

ハッシュ値とは、ある文字列やファイルに対して特定のアルゴリズム(算出方法・ハッシュ関数)を用いて出力された値のことです。

ハッシュ関数には、算出対象のファイルの大きさに関わらず、常にハッシュ関数ごとに決まった桁数の文字列を出力するという特徴があります。

ハッシュ値を算出することをハッシュ化と言い、ハッシュ関数の違いにより様々な種類のハッシュ化を行えます。

そしてSHA256ハッシュ関数の1です。

SHA-256

SHA-256は、「SHA」Secure Hash Algorithm(セキュア・ハッシュ・アルゴリズム))というシリーズのハッシュ関数のバージョン2に属する関数です。

SHAシリーズハッシュ関数のうち、バージョン2のことを「SHA-2」と書きます。

SHA-2には以下の通り6種類あり、その中でもSHA256は最もメジャーなハッシュ関数です。

  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256

そして、SHA-256ハッシュ関数は、どんなファイルに対しても長さ64文字(16進表記)のハッシュ値を算出します。

2,ハッシュ値が役立つ具体的な場面・例

ハッシュ値をファイルに併記する理由

ハッシュ関数は、ファイルが少しでも変化すると全く違うハッシュ値を算出します。

そして前述の通り、ハッシュ関数はどんなファイルに対しても一定の長さの文字列を出力するため、比較的少ない文字列を見るだけでファイルが改ざんされたりしていないかを確かめることができるというわけです。

この時ファイルに併記されたハッシュ値のことをチェックサムと言うことがあります。

用途の具体例

大容量のファイルなどは特に、まれにダウンロード中にファイルの一部が欠落してしまうことがあるためよくハッシュ値が併記されています。

例えばこの5GBくらいの画像生成AIのモデルファイルのように。

v2-1_768-ema-pruned.ckpt · stabilityai/stable-diffusion-2-1 at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

他にも、ファイルに僅かな欠損があってもいけない&偽のファイルが配布されやすいOSなどソフトウェアにも併記されています。

例えばこれはUbuntu 22.04というOSのdailybuildされたファイルのチェックサムです。

http://ftp.jaist.ac.jp/pub/Linux/ubuntu-cdimage/ubuntu-server/daily-live/current/SHA256SUMS

自分でハッシュ値を求めてファイルの整合性を確かめる方法

ファイルの圧縮・展開ソフト「7zip」はハッシュ値の計算も可能です。

圧縮・解凍ソフト 7-Zip
圧縮・解凍ソフト7-Zipは、7z、ZIP、RAR、LZH、ISO、TAR、DMG、MSIなど、さまざまなデータフォーマットに1つで対応している世界的にデファクトのフリーソフトウェアです。AES256による暗号化(パスワード圧縮および解凍)も可能なおすすめのソフトです。

7zipをインストールしたら、チェックサム(ファイルのSHA-256ハッシュ値)を算出したいファイルを右クリックしてください。

そして、「7-Zip」→「CRC SHA」→「SHA-256」とクリックしていきます。

数秒の計算が終わると、結果が表示されました。

自分で算出したハッシュ値は
SHA256: dcd690123cfc64383981a31d955694f6acf2072a80537fdb612c8e58ec87a8ac
でした。

そしてファイル配布場所のハッシュ値は以下の通りで、一致していますね。

SHA256: dcd690123cfc64383981a31d955694f6acf2072a80537fdb612c8e58ec87a8ac

https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.safetensors

つまり正常にダウンロードできたというわけです。

まとめ SHA-256などのハッシュ値がファイルに併記される理由とは

まとめると以下の通りです。

まずハッシュ関数について

  • ハッシュ関数とはファイルの大きさに関わらず特定の文字数を出力する関数
  • SHAは数あるハッシュ関数の1つ
  • SHAにも複数のバージョンがあり、SHA-2シリーズが主流
  • SHA-2のうち、特に普及しているのがSHA256
  • SHA256は常に64文字の文字列を出力

ハッシュ値を併記(チェックサム)する意味

  • ファイルが少しでも変わるとハッシュ値も変わる
  • ファイルの整合性を確かめるハッシュ値をチェックサムという
  • 改ざんされやすいファイル(OS)や、ダウンロード時に欠落しやすい大容量ファイルによくチェックサムを使う
  • 7zipを使い、自分でダウンロードしたファイルのチェックサムを求めることができる

チェックサムを求めて安心してファイルをダウンロードしましょう!!

タイトルとURLをコピーしました