Keccak(ケチャック)とは?
Keccak(ケチャック)とは、データを固定長のハッシュ値に変換する「暗号ハッシュ関数」の一種で、現在の標準規格であるSHA-3の基礎となったアルゴリズムです。
暗号資産やブロックチェーンの世界では、ハッシュ関数は以下のような用途で重要な役割を果たします。
-
データ改ざんの防止
-
トランザクションの検証
-
マイニング計算
-
アドレス生成
Keccakは従来のハッシュ関数よりも安全性や設計思想が大きく進化したアルゴリズムとして知られており、暗号理論の分野でも重要な技術の一つです。
ハッシュ関数とは?(基礎)
Keccakを理解するためには、まずハッシュ関数の役割を知ることが重要です。
ハッシュ関数とは、任意のデータを入力すると、固定長のデータ(ハッシュ値)を生成する暗号技術のことです。
例えば
出力:185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
のように、どんな長さのデータでも一定の長さの文字列に変換されます。
ハッシュ関数には主に次の特徴があります。
-
同じ入力は必ず同じハッシュ値になる
-
元のデータを復元できない
-
少しの変更で全く違うハッシュ値になる
-
同じハッシュ値を作ること(衝突)が非常に困難
この仕組みによって、データの安全性や整合性が保たれています。
Keccakの開発者
Keccakは、次の4人の暗号研究者によって設計されました。
-
Guido Bertoni
-
Joan Daemen
-
Michaël Peeters
-
Gilles Van Assche
このアルゴリズムは多目的な暗号関数として設計され、特にハッシュ関数として高い評価を受けています。
SHAとは何か?
Keccakの説明では、よく**SHA(Secure Hash Algorithm)**という言葉が出てきます。
SHAとは、米国標準技術研究所(NIST)が公開した暗号ハッシュ関数の標準規格です。
代表的なSHAアルゴリズムには次のものがあります。
| アルゴリズム | 特徴 |
|---|---|
| SHA-1 | 古いハッシュ関数(現在は安全性に問題) |
| SHA-2 | 現在広く使われている |
| SHA-3 | Keccakをベースにした新しい規格 |
つまり、Keccak = SHA-3のベースになったアルゴリズムと理解すると分かりやすいでしょう。
Keccakが登場した背景
Keccakが開発された背景には、SHA-1の安全性問題があります。
2004年頃、研究者たちはSHA-1に対する**衝突攻撃(コリジョン攻撃)**の可能性を示しました。
衝突攻撃とは、異なる2つのデータが同じハッシュ値を生成してしまう攻撃のことです。
その後、2017年にはGoogleが実際にSHA-1の衝突生成に成功したことを発表し、SHA-1は安全ではないと広く認識されるようになりました。
このような背景から、米国標準技術研究所(NIST)は新しいハッシュ関数の標準を作るための国際コンペティション
を開催しました。
その結果、2012年に選ばれたのがKeccakです。
そしてKeccakは正式にSHA-3として標準化されました。
Keccakの特徴(スポンジ構造)
Keccakの最大の特徴は、スポンジ構造(Sponge Construction)と呼ばれる仕組みを採用していることです。
これは従来のSHAアルゴリズムとは異なる設計です。
従来のハッシュ構造
SHA-1やSHA-2はマークル・ダムガード構造という設計を使っています。
Keccakの構造
Keccakはこれとは異なり、スポンジ構造という新しい方式を採用しています。
この仕組みでは
-
データを内部状態に吸収する(吸収フェーズ)
-
ハッシュ値を絞り出す(スクイーズフェーズ)
という2段階の処理を行います。
名前の通り、スポンジが水を吸って絞るような動作をするため、この名前が付けられました。
この設計により、
-
柔軟性が高い
-
安全性の証明がしやすい
-
多目的な暗号処理に使える
といったメリットがあります。
暗号資産・ブロックチェーンでの関係
暗号資産では、ハッシュ関数は非常に重要です。
例えば次のような用途があります。
マイニング
マイニングではハッシュ計算が大量に行われます。
代表的な例が
-
SHA-256(ビットコイン)
です。
アドレス生成
暗号資産のウォレットアドレスは、ハッシュ関数を使って生成されます。
トランザクション検証
取引データの改ざんを防ぐためにも、ハッシュ関数が使われています。
現在のところ、
-
SHA-256
-
SHA-2系アルゴリズム
が広く使われていますが、将来的にはSHA-3(Keccak系)の利用が増える可能性もあります。
なお、ブロックチェーンの一部ではKeccak系ハッシュがすでに利用されています。
Keccakの注意点
Keccak自体は非常に安全性の高い暗号技術とされていますが、いくつか理解しておくべきポイントがあります。
SHA-2はまだ安全と考えられている
現在でも
-
SHA-256
-
SHA-512
などのSHA-2系アルゴリズムは安全と考えられており、世界中のシステムで広く使われています。
暗号アルゴリズムは将来変わる可能性がある
暗号技術は研究が進むにつれて、
-
新しい攻撃方法
-
新しい理論
が発見されることがあります。
そのため、より安全なアルゴリズムが今後も開発され続ける可能性があります。
まとめ
Keccak(ケチャック)とは、SHA-3の基礎となった暗号ハッシュ関数であり、次世代の暗号標準として重要な技術です。
ポイントをまとめると次の通りです。
-
Keccakは暗号ハッシュ関数の一種
-
SHA-3のベースとなったアルゴリズム
-
NISTのコンペティションで2012年に採用
-
スポンジ構造という新しい設計を採用
-
将来の暗号技術の重要な基盤
暗号資産やブロックチェーンの世界では、ハッシュ関数はセキュリティの根幹を支える技術です。
Keccakは、その中でも次世代の暗号アルゴリズムとして注目される重要な技術の一つといえるでしょう。
こちらもご覧ください










