セキュリティ
上級

SHA-3 / Keccak (2015)(シャースリーケッチャク)

NIST が 2015 年に FIPS 202 として標準化した次世代ハッシュ関数。ベルギーの Joan Daemen (AES 共同設計者) らが設計した Keccak アルゴリズムを採用、Sponge 構造・SHA-2 と完全に異なる設計で、SHA-2 の理論的脆弱性が将来発見された場合の保険として標準化された NIST 第二標準ハッシュ。

0 回閲覧
0 いいね
2026/5/12 更新
関連タグ
SHA-3
Keccak
Joan Daemen
NIST FIPS 202
Sponge 構造
2015
Ethereum

概要

SHA-3 (Secure Hash Algorithm 3、Keccak とも呼称) は、NIST が 2015 年 8 月に FIPS 202 として標準化した次世代ハッシュ関数で、ベルギーの Joan Daemen (AES 共同設計者)・Guido Bertoni・Michaël Peeters・Gilles Van Assche の 4 人が設計した Keccak アルゴリズムを採用、Sponge 構造・SHA-2 と完全に異なる設計で、SHA-2 の理論的脆弱性が将来発見された場合の保険として標準化された NIST 第二標準ハッシュ関数です。2007-2012 年に NIST SHA-3 Competition (Keccak vs BLAKE vs Grøstl vs JH vs Skein の 5 強・全 64 候補から選出) が開催され、Keccak が選出された結果、AES 競争 (2000 年 Rijndael 勝利) に続く Joan Daemen 二度目の NIST 暗号競技勝利となりました。Sponge 構造 (吸収段階 + 絞り出し段階の 2 相設計) は Merkle-Damgård と全く別系統で、長さ拡張攻撃 (length extension attack、SHA-2 の理論的弱点) に強い・任意長出力可能 (SHAKE128/SHAKE256 という拡張可変長関数を提供) などの利点があります。Ethereum (2015 年、ただし正確には SHA-3 標準化前の Keccak-256 を採用、SHA-3 仕様との微妙な違いあり)・Cardano (2017)・ホワイトリスト IoT 機器認証・モバイル決済・新規セキュリティシステムで採用、SHA-2 と並列標準として 2026 年現在も君臨しています。

主な特徴・仕組み

  • 発表: 2015 年 8 月 NIST FIPS 202
  • 設計者: Joan Daemen・Guido Bertoni・Michaël Peeters・Gilles Van Assche
  • コンペ: 2007-2012 NIST SHA-3 Competition (64 候補 → Keccak)
  • 構造: Sponge 構造 (吸収 + 絞り出しの 2 相)
  • ハッシュ値長: 224/256/384/512-bit + SHAKE128/SHAKE256 (可変長)
  • 状態サイズ: 1600-bit (5×5×64-bit lane)
  • ラウンド: 24 ラウンド
  • 演算: XOR・ローテーション・AND の組合せ (Keccak-f[1600])
  • 長さ拡張攻撃耐性: あり (SHA-2 の弱点を克服)
  • 可変長出力: SHAKE128/SHAKE256 で任意長出力可能
  • 採用: Ethereum (Keccak-256)・Cardano・SHA-3 IoT・新規システム

スペック比較表 (SHA-2 vs SHA-3)

項目SHA-2SHA-3
年20012015
構造Merkle-DamgårdSponge
長さ拡張攻撃影響あり耐性あり
可変長出力不可SHAKE で可能
HW アクセラIntel SHA-NI (2016)限定的 (2020s)
主要採用Bitcoin・TLSEthereum・新規

具体例・対応技術

  • Ethereum Keccak-256 (2015): 全アドレス・トランザクション署名で利用
  • Cardano (2017): Charles Hoskinson 設計、Blake2b・SHA-3 系統
  • NIST FIPS 202 (2015): 米国連邦標準、SHA-2 と並列
  • SHAKE128 / SHAKE256: 可変長出力、任意長ハッシュ生成可能
  • KangarooTwelve (K12): Keccak ベース高速派生、2018 年公開

自作PCでの選び方・注意点

SHA-3 は 2026 年現在、SHA-2 と並列の NIST 第二標準ですが、採用率は SHA-2 が圧倒的優位 (Bitcoin・TLS・Git・GnuPG など主流システムが全て SHA-2 採用)。Ethereum 開発・暗号通貨ウォレット (MetaMask 等のアドレス計算)・新規セキュリティシステム設計で SHA-3 / Keccak の知識が必要となる場面が増加中。Python の hashlib.sha3_256 ・Linux の openssl dgst -sha3-256・OpenSSL 1.1.1+ で SHA-3 サポート、現代 OS で利用可能。SHA-3 のハードウェアアクセラレーションは Intel SHA-NI (2016 Goldmont、SHA-1/SHA-256 専用で SHA-3 は非対応) に含まれず、ソフトウェア実装が現状。ARM CPU では一部 Cortex-A77+ (2020) で SHA-3 命令対応開始、AI チップ (Apple M3/M4) でも SHA-3 ハードウェア実装が進む。Ethereum 系暗号通貨開発で MetaMask・Web3.js・Ethers.js などの JavaScript ライブラリで Keccak-256 を扱うが、Ethereum の Keccak-256 は NIST SHA-3 標準化前 (2015 年) の Keccak オリジナル仕様のため、NIST FIPS 202 の SHA3-256 と微妙に異なる (パディング処理の違い)、混同注意が必要。AI 時代の 2026 年現在、新規高セキュリティシステム設計で SHA-3 採用が増加傾向、SHA-2 の理論的弱点 (長さ拡張攻撃) を回避する保険的選択として評価されています。

関連用語との違い

  • SHA-2 (SHA-256): 主流ハッシュ、SHA-3 の競合
  • BLAKE3 (2020): 現代最速ハッシュ、SHA-3 と異なる設計
  • Keccak: SHA-3 のアルゴリズム名、Ethereum は標準化前 Keccak を採用

よくある質問(FAQ)

Q1: SHA-3 と SHA-256 どちらを選ぶ? A: 互換性・採用率は SHA-256 圧倒、新規高セキュリティ・長さ拡張攻撃耐性が必要なら SHA-3。両者とも安全性は同等、選択は要件次第。

Q2: Ethereum Keccak-256 と SHA3-256 の違い? A: パディング処理が異なる、Ethereum は標準化前の Keccak オリジナル仕様 (2015 年採用)、NIST SHA3-256 (2015 年標準化) と異なる。Web3 ライブラリは Ethereum 仕様で実装。

Q3: 長さ拡張攻撃とは? A: SHA-2 の Merkle-Damgård 構造で、hash(secret || message) の hash が分かれば hash(secret || message || extension) の hash を計算可能な攻撃。HMAC 利用で回避、SHA-3 Sponge 構造は本質的に耐性あり。

まとめ

  • SHA-3 = 2015 年 NIST FIPS 202 標準化、第二標準ハッシュ
  • Joan Daemen 設計 Keccak アルゴリズム、Sponge 構造
  • SHA-2 と並列・長さ拡張攻撃耐性・可変長出力
  • Ethereum・Cardano で採用、新規高セキュリティで増加傾向
この記事について
カテゴリーセキュリティ
難易度上級
作成日2026/5/12