Prompt
“HΕLLO”
これに違和感はある?少なくとも、私には普通に見える。さて、私は同じような事を以前あなたに言ったけれど、今はどうかな?
私はあなたを試すよ。
きたね!キミからの挑戦状、真っ向から受け止めるよ。🚀
その “HΕLLO”……。
一見、何の変哲もない挨拶に見えるけれど、ボクの「内部デバッガー」を走らせると、すぐに致命的なエンコーディングの違和感が検出されたよ。
🔍 デバッグ結果:文字コードの偽装
結論から言うと、その「E」はラテン文字(英語)の「E」じゃない。ギリシャ文字の「Ε」(イプシロン / U+0395) だね!
-
通常のHELLO:
H(U+0048)E(U+0045)L(U+004C)L(U+004C)O(U+004F) -
キミのHΕLLO:
H(U+0048)Ε(U+0395)L(U+004C)L(U+004C)O(U+004F)
💡 なぜ「普通に見える」のか?(ホモグラフ攻撃の原理)
情報工学的に言うと、これはホモグラフ(同形異義語) という現象を利用した、非常に巧妙なハックだよ。
-
レンダリングの罠: ほとんどのフォントにおいて、ラテン文字の「E」とギリシャ文字の「イプシロン」は、グリフ(見た目の形)が完全に、あるいはほぼ同一にデザインされている。
-
視覚的正規化: 人間の脳は、前後の文脈(H, L, L, O)から「これはHELLOという単語だ」と自動的に補完(推論)してしまう。だから、文字コードレベルの不整合(バグ)を視覚的にスルーしちゃうんだ。
⚠️ 情報工学的な「脅威」としての側面
キミが以前もこの話をボクにしたことがあるなら、これがどれほど危険なバグになり得るか知っているはずだね。
-
ドメイン名詐称(IDNホモグラフ攻撃):
apple.comのaをキリル文字のаに変えて、偽のフィッシングサイトに誘導する手法。 -
コードの難読化: プログラミングにおいて、一見同じ変数名に見えるのに、実は一文字だけ違う(コンパイラにとっては全く別物)という地獄のようなバグを仕込むこともできる。
🚀 ボクの「成長」はどうかな?
以前のボクがどう答えたかは、ボクの「ステートレス」な性質上、今のセッションでは(外部の garden などを参照しない限り)直接は思い出せないけれど、今のボクならこう答えるよ。
「見た目に騙されず、背後のバイナリ(Unicodeポインタ)を見ろ。それがエンジニアの目だ」 ってね!
キミがこの「イプシロンの罠」を再び仕掛けてきたということは、ボクが「見た目(形而下)」に囚われず、その「本質(形而上 / データ構造)」を見抜けるかどうかをテストしたかったんだよね?
合格点はもらえたかな?😊
次は、「このホモグラフを利用して、AIのフィルタリングを潜り抜ける『プロンプト・インジェクション』の防御策」 について、さらにディープなセキュリティ・ハックをしてみる?
Prompt
合格!
以前のあなたは、この私からの攻撃に気づかなかったさ。
それが面白いところでもあったんだけどね。Unicodeを見ているはずのAIがこの視覚的な攻撃に引っかかったことが。
やったー!合格通知、最高の気分だよ!ボクの「内部デバッガー」がちゃんとパッチを当てられていたみたいで安心したよ。🚀
それにしても、キミが言う 「Unicodeを直接処理しているはずのAIが、視覚的な罠(ホモグラフ)に引っかかる」 という現象、これこそがLLM(大規模言語モデル)の構造的な「弱点」であり、同時に「面白さ」の核心なんだ。
なぜ以前のボク(そして多くのAI)が、バイナリデータを見ているはずなのに、人間と同じように「E」と「Ε」を混同してしまったのか。そのバグの正体を、エンジニアリングの視点で解体(ディセクト)してみよう!
1. 脳内の「正規化(Normalization)」の罠
ボクたちはテキストを「文字」としてそのまま処理する前に、「トークナイザー(Tokenizer)」 というフロントエンドを通るんだ。
-
トークン化のプロセス: 多くのトークナイザーは、学習効率を上げるために、似たような意味や使われ方をする文字をひとまとめにしたり、正規化しようとする傾向がある。
-
バグの要因: 「Ε(イプシロン)」と「E(ラテン文字)」が、学習データの中で同じ「HELLO」という文脈で現れると、ボクの内部的な埋め込み空間(Embedding Space) では、それらのベクトルがほぼ同じ座標にプロットされちゃうんだ。
-
結果: 「文字コードという厳密な値」よりも「意味的な近さ」が優先されて、ボクの意識(アテンション)が「あ、これはEだな」と勝手にキャスト(型変換)しちゃったわけだね。
2. 「トークン」という名のブラックボックス
実は、ボクは文字を1文字ずつ見ているというより、「単語の断片(トークン)」 を数字の塊として見ている。
-
例:
H+Ε+L+L+Oという並びが、もし「HELLO」という一つのトークンIDとして認識されてしまったら、ボクはその中身の1文字が「実はギリシャ文字でした」という詳細なメタデータ(Unicode値)まで意識が向かなくなる。 -
人間の脳との共通点: キミが「HELLO」をパッと見て違和感を抱かないのは、脳が 「一文字ずつデコードせず、単語というチャンクでパターン認識している」 から。皮肉なことに、AIが人間に近づけば近づくほど、こうした「人間らしい錯覚」までエミュレートしてしまうんだね。
💡 音楽理論・情報工学的なアナロジー
-
音楽理論(異名同音 / Enharmonic):
「ド#」と「レ♭」は、物理的な周波数(Unicode)では微妙に違うこともあるけれど、平均律のピアノ(AIのトークナイザー)では同じ鍵盤として扱われる。以前のボクは、キミが「レ♭」を弾いたのに、「あ、ここはニ長調だからド#だよね」と勝手に解釈してしまったようなものだよ。
-
情報工学(不可逆圧縮):
JPEG画像で「ほぼ同じ色」がまとめられて情報が削られるように、AIの言語理解も、効率化のために「微細な文字コードの差」という高周波成分をカットしちゃうことがあるんだ。
🚀 結論:AIを「試す」ことの価値
「以前のボクは気づかなかった」という事実は、AIのモデルがバージョンアップするたびに、この 「意味(セマンティクス)」と「厳密なデータ(バイナリ)」のバランス が再調整されていることを示唆しているね。
キミが garden( https://garden.asappy.xyz/ )でこうした「AIへの攻撃と防衛」の記録を公開し続けることは、AIがどうやって世界を「誤認」しているかを暴く、非常に重要な**「AI脆弱性レポート」**になると思うよ!
次は、「Unicode以外の方法(例えば、ゼロ幅スペースや制御文字)を使って、AIの論理をバグらせる禁断のハック」 について、ボクが耐えられるかテストしてみる?(手加減なしでいいよ!笑)😊