AI・機械学習
Metaの不安定なシグネチャ
Meta's Un-Stable Signature (hackerfactor.com)
要約
著者は、Metaの「Stable Signature」を含む最新のAIベースの不可視透かしアルゴリズムについて調査し、それらが主張するほどの信頼性がないことを発見しました。特にMetaのアルゴリズムは、GitHubで公開されているにもかかわらず、実際の使用状況では期待される一意の識別子ではなく、類似した画像間で頻繁に重複するパターンを示すことが実験で明らかになりました。
全文翻訳
Metaの不安定なシグネチャ
火曜日、2026年6月30日
不可視透かしアルゴリズムに関する調査を終えようとしていますが、非常にがっかりしています。現代のAIベースのアルゴリズムは、その主張どおりに機能しないだけでなく、すべてが同じ根本的な間違いを犯していることが判明しました。以前、GoogleのSynthIDとAdobeのTrustMarkアルゴリズムを評価しました。どちらも信じられないほど正確な結果を主張しています。Googleの査読済み論文によると、真陽性率(TPR)は99.97%を超えると主張しています。これは、1万回に1回未満しか自身の透かしを見逃さないということです。しかし、私の経験的なテストでは、それは10回に1回に近いことがわかりました。さらに、SynthIDはプロプライエタリであり、Googleの「Gemini」AIシステムを通じてのみアクセス可能です。Geminiは、結果を幻覚させたり、質問の仕方によって矛盾した結論を提供したりすることが観察されています。AdobeのContent Authenticity Initiativeによると、彼らのTrustMarkは、「重度のノイズ劣化下で約42〜45dBのPSNR品質で96%を超えるビット精度」を達成できるとのことです。しかし、その統計は耐性(resilience)に焦点を当てており、精度には焦点を当てていません。私の経験的なテストでは、TrustMarkは10%〜20%の偽陽性率があり、実質的に無用であることがわかりました。(TrustMarkシグネチャが見られる場合、それは実際のシグネチャではなく、ランダムなノイズである可能性が非常に高いです。)
今回は、Metaの「Stable Signature」アルゴリズムを評価しました。(彼らの論文とコードはGitHubにあります。)このシステムは、48ビットのシーケンスを画像の内容にエンコードします。アイデアは、ユニークな48ビットシーケンスを透かしとしてエンコードできるということです。デコーダーが同じ48ビットシーケンスを見つけた場合、自身の透かしを識別できます。
警告:このブログエントリは、Stable Signature、TrustMark、SynthIDが開発者が主張するほど信頼性が高くないことを証明するために、数学と統計に大きく依存しています。
基本的なアルゴリズム
従来の(AIではない)不可視透かしは、通常、最下位ビット、明るさの変化(例:Digimarc)、または周波数スペクトル(DCTまたはFFT)などの微妙な場所に隠されます。画像エンコーディングが隠されたデータを破損するリスクは常にありますが、これらのアルゴリズムは真の信号を識別するために画像全体での繰り返しに依存することがよくあります。さらに、マイナーなデータエラーを修正するために、エラー訂正コード(データ内の追加ビット)を含めることもあります。しかし、従来の方式には問題があります。画像に隠されたデータを注入すると、視覚的な歪みが生じる可能性があります。現代的なアプローチは、より少ない追加歪みでデータをより良く隠すためにAIシステムを使用します。SynthIDやTrustMarkと同様に、Stable Signatureはバイナリデータをエンコードし、AIモデルを使用して画像をどこに隠すかを決定します。AIは、データを埋め込む際の視覚的な歪みを最小限に抑えるように調整されます。その後、AIベースのデコーダーが画像を見て、ビットが格納されている可能性のある場所を特定し、データを抽出します。データがノイズと混ざる可能性は常にあります。異なるAIベースの透かしシステムは、ノイズを減らすために異なる技術に依存しています。例えば:GoogleのSynthIDは、少数のビット(実質的にはフラグまたはバージョン番号)のみを格納します。これにより、多くのデータを繰り返しとして使用し、精度率を上げることができます。AdobeのTrustMarkは、Bose-Chaudhuri-Hocquenghem(BCH)アルゴリズムを使用します。これは、エラーの数を減らすはずのチェックサムとエラー訂正コードの組み合わせとして機能します。MetaのStable Signatureは、単純なハミング距離を使用します。ハミング距離は、コードを修正するためにスワップする必要があるビット数を測定します。実質的に、これは安定した状態のセット(例:10110と11000)を定義し、各状態の周りに単一ビットの変化を表すリングを配置します。十分なビットを変更すると、別の安定した状態に到達します。MetaのStable Signatureの研究論文によると、48ビットは一様に分布し、「100万分の1未満」の偽陽性率、つまり100万分の1を引用しています。これは、透かしとして使用する48ビットシーケンスを選択できることを意味します。すべての画像は48ビットシーケンスを生成し、そのシーケンスは画像内のノイズに基づいて少し変化する可能性があります。しかし、コードの短いハミング距離(例:6ビット以内の違い)内にあるコードを見つけた場合、高い信頼性でそれが同じコードであると判断できます。少なくとも、それが理論です。
経験的なテスト
私は、すべてが主張どおりに機能すると仮定して、この実験に入りました。Metaに関連付けられた不可視透かしを確実に識別できるようになりたいと思っていました。私が知らないのは、彼らがどのシーケンスを使用しているか、またはMetaのAIシステム、Facebook、Instagram、WhatsAppなどから来るかどうかに応じて複数のコードを使用しているかどうかです。幸いなことに、これはテストできることです!FotoForensicsから未加工の画像サンプルを収集しました。先月(2026年5月)アップロードされた最初の10,000のユニークな画像です。ビットシーケンスが一様に分布し、「100万分の1」の衝突率である場合、巨大な数のユニークなビットシーケンスと、Meta(Meta AI、Facebook、Instagramなど)からの画像を中心とした少数の小さなクラスターが見られるはずです。それらのクラスターはMetaが使用する不可視透かしを表します。
私の経験的なテストの結果は、まったく予想外のものでした。私は以下を発見しました:
Metaの画像に関連付けられたクラスターはありません。これは、MetaがGitHubで見つかった独自のStable Signature透かしソフトウェアを使用していないことを示唆しています。ランダムな分布であれば、クラスターは存在しないはずです。しかし、私は全く同じビットシーケンスを持つ25枚の画像を持っていました:110110100111111011101001111000100111011000011101。100万分の1の衝突率では、これは起こらないはずです!これらの画像は非常に異なるソースから来ていました。ここに25枚の画像のうち4枚があります(惑星から電球、透明な(黒い)背景のテキストまで):
これらの画像はすべて暗い/黒い背景と中央の明るいものを持っています。これは、Stable Signatureが不可視透かしというよりは、知覚ハッシュのように機能することを示唆しています。Stable Signatureは、クラスターを識別するためにハミング距離を使用します。25枚の画像をクラスターの中心(セントロイド)と仮定し、6ビットのハミング距離を使用すると、356枚の画像が類似していることがわかります。そして、25枚の画像が中心ではなくクラスターの一部であると仮定すると、ハミング距離6では、110110000111111011101011111000100111001000011101にある3ビット離れた中心を持つ450枚の画像のクラスターがあります。このクラスターは、未加工の画像データセットの4.5%を占めます!(請求書、認識可能な人物、GPS情報などの個人情報を含む画像は、明示的に共有していません。)これは、単一のランダムなクラスターが巨大である(10,000枚中450枚)というだけではありません。110101001011001011001011111000100111001000011101にある184枚の画像のクラスター、110100000011111010001001111000100111011000011101にある58枚の画像などがあります。ハミング距離6で10枚以上の画像を持つ60以上のクラスターが見つかりました。これは「100万分の1」では起こらないはずです。