毎日色々と面倒なことが多い。その中の1つはサイトへのログインの際のパスワードの管理だろう。しかもこのパスワードは、サイト毎にレギュレーションがあって、大文字・小文字・記号・何文字以上などまちまちである。これを、その都度作って打ち込むのだが、時々忘れてしまう。このため、サイトからメールを送って、パスワードの新規作成を行う。これが毎日でなくても何日かおきに起きる。
鍵をかけたメモをスマホに保存しているが、時々それに記入することを忘れることもある。MacやiPhoneは親切にも解読されにくいパスワードを提案してくれるが、これを採用する事は無い。なぜなら、システムの助けがないときには、思い出す事は不可能だからだ。これを実感したのは、去年アメリカの友人が来たときに、新幹線のEX予約で予約したチケットを券売機で受け取る時だった。普段は、チケットレッスで紙のチケットは知らなかったが、マニュアルでパスワードを入れなければいけなかった。
このようなことを考えると、システムが提案するパスワードを採用する事は無い。有料版のLastPassとAppleの提供している「パスワード」アプリを併用しているが、それでもこれがうまくいかないこともある。理由は単に整理が追いついていないからだ。
当然このような管理にはAIの助けを借りるのが良いかもと思っているところに、AIによるパスワードの問題についての記事を読んだ。AIにパスワードを生成してもらうと似たようなものが大量生産されると言う内容だった。これで知ったのは、大規模言語モデル(LLM)そのもの設計思想からパスワードの生成には向いていないという事実だ。
記事によれば、サイバーセキュリティ企業Irregularが行った調査では、AI生成パスワードは安心できないということだ。研究チームは、評判の高い生成AI、Claudeに対し、別々のチャット画面から50回、「推測されにくいパスワードを作って」とだけ依頼した。結果はかなり奇妙だった。例えば「K9#mPx$vL2nQ8wR」とまったく同じ文字列が、50回のうち10回も繰り返し出力されたと言うのである。50個のうち、本当に「一度きり」のパスワードと呼べるものは23個しかなかったそうだ。
別のAIでも状況はよく似ていた。ChatGPTやGeminiでも、文字列の先頭や末尾に特定のパターンが頻発し、構造のよく似たパスワードが量産されていることが確認されている。ぱっと見にはバラバラに見えながら、統計的に眺めると「癖」がくっきり浮かび上がってくるというのだ。
ここで、素朴な疑問が湧く。なぜ自然言語で高度な対話ができるAIが、単なる「記号の羅列」でつまずくのか。
この鍵は、大規模言語モデル(LLM)の設計思想にあると言う。
LLMは、決してランダムなサイコロを振っているわけではない。彼らは膨大な人間の文章データを読み込み、「この文脈なら、次に現れそうなトークン(文字や単語)は何か」を確率的に推定し続ける存在だ。言い換えれば、「もっともらしい次の一文字/一語」を選び続けることに長けた確率計算エンジンである。
優秀なミステリー作家がどれほど意外な結末を書こうとしても、その作品にはかならず「らしさ」がにじむ。文体、展開のリズム、伏線の張り方など作家固有のパターンは、どうしても消しきれない。同じように、LLMもまた学習データから「パスワードらしい文字列」の型を学び、その型に沿った出力を無意識に再生してしまうという。
大規模言語モデル(LLM)は無秩序を生み出しているのではなく、「無秩序に見えるもっともらしいパターン」を生成しているにすぎない。ここが本質的なポイントだ。
この「もっともらしさ」は、セキュリティの世界ではむしろ致命的な弱点になる。暗号やパスワードの強さを決めるのは、見た目のゴチャゴチャ感ではない。重要なのは、どれだけ結果を予測しにくいかを示す「エントロピー」という指標だという。
真にランダムに生成された16文字のパスワードであれば、およそ100〜120ビットのエントロピーを持つとされる。一方でIrregularの推定によれば、LLMが生み出す16文字パスワードのエントロピーは、たった20〜27ビット程度にとどまる。桁がひとつ違うどころではない。
この差は、現実世界のリスクに直結する。
エントロピーが低いということは、「当たり」の候補が人間の想像以上に狭い領域に集中しているということだ。もし攻撃者がAIの出力パターンをあらかじめ学習してしまえば、総当たり攻撃(ブルートフォース)の効率は飛躍的に高まる。もはやスーパーコンピューターは必要ない。何十年も前の古びたデスクトップPCでも、AIの「癖」を前提に的を絞った攻撃を仕掛ければ、数時間でアカウントをこじ開けられてしまう可能性があるそうだ。
どうすればいいのか。
パスワードだけはAIに任せないことだ。乱数生成の専門機能を持つ、パスワードマネージャーを使えば、暗号論的な乱数に基づくパスワードをワンクリックで作れる。しかし、この方法は、マニュアルでパスワードを使わなければいけないと言うことを考えると避けたい。
だから、普段からやっている方法が有効だと思う。それは、単語を2〜3個選び、途中で数字や記号を複数混ぜる方法だ。そして、サイトやサービスが対応していれパスキーへの移行することだろう。
結論としては、大規模言語モデル(LLM)は、人間の言語的直感をなぞることにかけては驚くほど有能だが、ランダムであることを要求される場面には根本的に不向きと言うことだ。にもかかわらず、AIなら何でも人間以上にうまくやってくれるはずだという期待を無自覚に投げかけてしまう。このズレが、今回のLLM生成パスワードの問題を通じて分かってきた。
