Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

SHA-384(シャ384)とは | 意味や読み方など丁寧でわかりやすい用語解説

SHA-384(シャ384)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

エスエイチエーさんびゃくよんじゅうはち (エスエイチエーサンビャクヨンジュウハチ)

英語表記

SHA-384 (エスエイチエー サンヨンハチ)

用語解説

SHA-384は、暗号学的ハッシュ関数の一種であり、データの完全性検証やセキュリティ用途に幅広く利用される重要な技術である。まず概要として、SHA-384は、Secure Hash Algorithm 2(セキュアハッシュアルゴリズム2)ファミリーに属するハッシュ関数であり、National Institute of Standards and Technology(NIST、アメリカ国立標準技術研究所)によって標準化されている。この関数は、任意の長さの入力データ(テキストファイル、画像ファイル、プログラムコード、パスワードなど)を受け取り、常に固定された384ビット(48バイト)の短い「ハッシュ値」または「メッセージダイジェスト」と呼ばれる出力データを生成する。このハッシュ値は、元のデータの一種の「指紋」のようなものであり、データが少しでも変更されると全く異なるハッシュ値が生成されるという特性を持つ。また、ハッシュ値から元のデータを逆算して復元することは計算上非常に困難であるという「一方向性」も備えており、この性質がセキュリティを担保する上で不可欠である。これにより、データの改ざん検出、デジタル署名、パスワードの安全な保存といった多くの情報セキュリティアプリケーションで中心的な役割を果たす。

詳細として、SHA-384の技術的な側面と具体的な用途について掘り下げる。SHA-384は、より広いSHA-2ファミリーの一部であり、SHA-256、SHA-512といった他のアルゴリズムとともに開発された。これは、先行するSHA-1アルゴリズムに潜在的な脆弱性が指摘されたことを受け、より高いセキュリティレベルを確保するために設計されたものである。特にSHA-384は、SHA-512アルゴリズムを基盤としている点が特徴的である。SHA-512は内部的に64ビットのワード(データの最小単位)で処理を行い、512ビットのハッシュ値を出力するが、SHA-384はSHA-512と全く同じコアアルゴリズムと内部構造を使用しつつ、異なる初期ハッシュ値(IV: Initial Vector)を用いることで独立性を保っている。そして最終的な出力段階で、SHA-512が生成する512ビットのハッシュ値のうち、先頭の384ビットだけを切り出してハッシュ値として採用する。このような設計により、SHA-384はSHA-512と同等の堅牢なセキュリティ強度を保ちながら、用途によっては短い出力長で済ませたい場合に選択肢となる。

SHA-384が持つ暗号学的特性は、そのセキュリティを確立する上で極めて重要である。第一に「一方向性」とは、ハッシュ値から元の入力データを導き出すことが計算上不可能であるという性質を指す。これは、たとえハッシュ値が第三者に知られても、元の秘密データ(パスワードなど)が漏洩するリスクを大幅に低減する。第二に「衝突耐性」とは、異なる二つの入力データから同じハッシュ値が生成されること(これを「衝突」と呼ぶ)を意図的に見つけ出すことが非常に困難であるという性質である。これには、与えられた入力と同じハッシュ値を持つ別の入力を見つける「第二原像耐性」と、任意の二つの異なる入力ペアで同じハッシュ値になるものを見つける「衝突耐性」の両方が含まれる。SHA-384の384ビットという出力長は、現在の計算能力では衝突を見つけるための総当たり攻撃が現実的に不可能とされるレベルの耐性を提供する。第三に「雪崩効果」とは、入力データにごくわずかな変更(例えば1ビットの反転)を加えるだけで、出力されるハッシュ値が予測不能なほど大きく変化する性質を指す。この特性により、データの改ざんを極めて高い確率で検出できる。

これらの特性から、SHA-384は多様なセキュリティシナリオで活用される。最も一般的な用途の一つは、Webサービスにおける「パスワードの保存」である。ユーザーのパスワードそのものをデータベースに保存する代わりに、パスワードのハッシュ値を保存することで、万が一データベースが攻撃者に漏洩しても、元のパスワードが直接盗まれることを防ぐ。さらに安全性を高めるため、パスワードに「ソルト」と呼ばれるランダムな文字列を付加してからハッシュ化する手法が広く用いられる。また、「デジタル署名」では、電子文書のハッシュ値を計算し、それを秘密鍵で暗号化することで署名とする。これにより、文書の作成者認証と、文書が署名後に改ざんされていないことの検証が可能となる。ファイルやソフトウェアのダウンロード時における「データ完全性の検証」も重要な用途である。提供元がファイルのSHA-384ハッシュ値を公開していれば、ダウンロードしたファイルのハッシュ値を自分で計算し、公開値と比較することで、ファイルが破損していないか、あるいは悪意を持って改ざんされていないかを確認できる。他にも、ブロックチェーン技術におけるトランザクションの整合性検証やブロックの連結、VPN(Virtual Private Network)におけるセッションの整合性チェックなど、多岐にわたる分野でSHA-384はその信頼性と堅牢性を発揮している。

SHA-384のパフォーマンスに関して補足すると、SHA-512と同じく64ビットのワード処理を基本としているため、現代の64ビットアーキテクチャを持つCPU環境では、32ビットワードを扱うSHA-256よりも効率的に処理できる場合が多い。これは、CPUのレジスタサイズとデータ処理単位が一致するため、処理速度の向上に寄与する。このような特性を持つSHA-384は、高いセキュリティ要件が求められるシステムにおいて、現在でも標準的かつ推奨される暗号学的ハッシュアルゴリズムの一つとして広く採用され続けている。

関連コンテンツ