IT用語集 › セキュリティ › メモリハード関数

メモリハード関数

セキュリティ Svenska → 更新: 2026-10-23

大量のRAMを必要とする鍵導出関数。専用ハードウェアでも、通常のコンピュータよりずっと安くパスワードを試行することはできない。

メモリハード関数は、計算の間じゅう大きなデータブロックをメモリに保持し、予測しにくい順序で読み出す。このため、GPUやASICを使った総当たり装置は高価になる。並列に試行するたびに、汎用プロセッサと同じ量のメモリが要るからだ。

2009年にコリン・パーシヴァルが発表したscryptが、この種の関数の草分けの一つである。Argon2は2015年のPassword Hashing Competitionで優勝し、RFC 9106で規定されている。scryptはRFC 7914。どちらもメモリ量と時間コストを選べるので、関数をどれだけ重くするかを自分で決められる。

万能の解決策ではない。メモリの上限は、正規のサーバが割けるRAM量とのトレードオフであり、メモリを少なく設定しすぎると、単純なハッシュとほぼ同じ攻撃面が残る。それでも、一回一回の試行が勝負になるパスワードでは、推測する側のコストを引き上げる妥当な手段である。

← 用語集に戻る