パターンをそのまま使わないのはなぜか
人間のジェスチャは、ランダムな暗号鍵よりもはるかに小さく、予測しやすい空間から生まれます。導出関数は、入力されたパターンを固有のソルトと設定された作業パラメータと組み合わせます。その出力は、保護された鍵素材の解錠に関与します。パターン自体が恒久的なファイルの鍵として使われるわけではありません。
例:攻撃者が可能性の高いパターンを10,000通り試す場合、候補1つごとに、設定された Argon2id のメモリと計算のコストを支払わなければならないはずです。正当な利用者は、ロック解除のときに1回だけそのコストを払います。それでも、角から角への単純な直線は、攻撃者の推測リストの早い段階に現れる可能性があるため、依然として不適切な選択です。
「メモリハード」がもたらすもの
専用の推測用ハードウェアは、独立した推測を何百万回も安価に行える場合に威力を発揮します。推測1回ごとにまとまったメモリを要求すれば、資源コストが上がり、並列化が制限されます。ただしパラメータは実機に合わせて調整する必要があります。低すぎれば耐性が弱まり、高すぎれば実用に耐えない遅延やメモリ不足を招きます。
ソルトは秘密情報ではない
固有のランダムなソルトは、同じパターンが保管庫やインストールをまたいで同じ導出結果を生むことを防ぎます。ソルトは暗号化された記録と一緒に保存できます。その役割は一意性であり、秘匿ではありません。
パターンの強度は依然として重要
単純な文字、直線、繰り返しの形、誕生日を位置に置き換えたもの、他人に描くところを見られたパターンは避けてください。自分にとっては覚えやすいが、ありふれた図柄ではない、長めの形を使ってください。復旧用の情報は別に保管し、リカバリーフレーズを、それが復旧するはずの保管庫の中のメモにしないでください。
実践的な方法については「強い保管庫パターンの選び方」をご覧ください。
技術的な参照情報
RFC 9106 は Argon2 とその Argon2id 変種を、サイドチャネル耐性とトレードオフ耐性に対するハイブリッドな手法を含めて説明しています。Argon2id を使っていること自体は、製品が安全であることの証明にはなりません。パラメータ、鍵の分離、保存方法、失敗時の扱いも重要です。
ガイド確認日:2026年8月28日。
Noah はまず、機微でないデータでテストします。「NullVault がパターンに Argon2id を使う理由を検討するにあたり、まず機微でない項目を1つ使う」。次に Noah は2つ目の確認手順に従います。「該当するアプリまたは端末をロックし、新しいセッションから結果を確認する」。この架空のシナリオは判断の流れを示すものであり、製品テストの報告ではありません。
- 「NullVault がパターンに Argon2id を使う理由」で説明した結果は、エクスポート済み、共有済み、キャッシュ済み、クラウド同期済みのコピーを自動的には対象としません。
- 認証情報の紛失、アプリコンテナの削除、端末の初期化、未検証のバックアップにより、保護されたデータが利用できなくなることがあります。
パターンをそのまま暗号鍵として使わないのはなぜですか?
人間のジェスチャは、ランダムな鍵よりもはるかに小さく予測しやすい空間から生まれます。導出関数は、入力された秘密情報をソルトと意図的なコストと組み合わせるため、推測が高価になります。
メモリハードとはどういう意味ですか?
その関数が、計算だけでなくまとまった量のメモリも必要とするよう設計されている、という意味です。これにより、専用ハードウェアで多数の候補を並列に試すコストが上がります。