← 最新の論文
💻 computer science

AST-Level Semantic Watermarking Framework for AI-Generated Code: Robust Provenance Attribution via Structural Invariants

本論文は、意味を保持する構造的変異を通じて、AI生成コードの構文的トポロジーに暗号学的に検証可能な署名を埋め込む、新しいモデル非依存のASTレベルのウォーターマーキング・フレームワークを提案しており、これにより堅牢なプロベナンス(由来)の帰属を実現し、フォーマット変更、リネーミング、デッドコード注入といった一般的なコード変換に対して既存のテキストレベルの手法を大幅に上回る性能を達成している。

原著者: Alamin Abubakar Nataala

公開日 2026-08-18
📖 1 分で読めます☕ さくっと読める

原著者: Alamin Abubakar Nataala

原論文は CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

現代のソフトウェア制作の時代において、静かな革命が進んでいる。コンピュータコードを書く能力を持つ強力な人工知能システムである大規模言語モデルは、デジタルアプリケーションの構築を加速させるツールとして開発者の間で標準的なものとなっている。しかし、この利便性は重大な課題をもたらしている。機械がプログラムを書いた場合、実際に誰がそれを作成したのかを判別することがほぼ不可能になるのである。人間による努力と機械による生成の境界線が曖昧になり、ソフトウェア企業や研究者が盗用、剽窃、そして未検証のコードの拡散に対して脆弱な状態に置かれている。これを解決するために、専門家たちは長い間、テキストの中にデジタル署名、すなわちウォーターマーク(電子透かし)を隠そうと試みてきた。しかし、これらの伝統的な手法は脆弱である。それらは言葉の間の空白に秘密のメッセージを書き込むようなものであり、文書が再入力されたりフォントが変更されたりした瞬間に破壊されてしまう。コード自体は変わらないが、隠されたメッセージは消えてしまうのである。

最近の研究で詳述されている新しいアプローチは、戦略をテキストの表面からプログラムの基礎となる論理へと転換させている。メッセージを言葉の中に隠すのではなく、この手法はコードの構造の中にメッセージを隠すのである。研究者たちは、コンピュータプログラムを単なるテキストの行としてではなく、抽象構文木(Abstract Syntax Tree)として知られる、独自の論理の階層的な地図として扱うシステムを開発した。この地図は、コードのフォーマットや名称に関係なく、異なる部分がどのように接続し、相互作用するかを示すものである。数学的に保証された微細な変更(例えば、結果に影響を与えない計算における2つの数字の順序を入れ替えることや、特定の種類のループを、同等ではあるが異なる別の種類のループに変えることなど)を行うことで、システムはプログラムのDNAの中に暗号化された署名を埋め込む。これらの変更は、実行中のコンピュータには目に見えず、ソフトウェアの動作を変えることもないが、コードが大幅に編集されたり書き換えられたりしても、消えることのない永続的で検出可能な痕跡を残す。

このフレームワークの核となるのは、tree-sitterと呼ばれるツールであり、これはコードを読み取り、詳細を失うことなくその論理的な骨格を再構築できる高精度なパーサーとして機能する。詳細を破棄してしまう標準的なツールとは異なり、このシステムはソースファイルの正確なバイト単位のレイアウトを保持しながら、コードの論理を表すツリー構造を構築する。研究者たちはこれを利用して、プログラムを壊すことなく安全に変更を加えることができる特定の箇所を特定した。彼らは主に3つのタイプの変換に焦点を当てた。第一に、足し算のように、項の順序を変えても結果が変わらない「交換法則」が成り立つ操作を探した。これらの数字の順序を入れ替えることは、1ビットのデータを符号化する安全な方法となる。第二に、互いに依存しない独立したステートメント(文)、つまり互いに依存関係のないコードの行を特定し、その順序を並べ替えた。第三に、特定の制御構造を、例えば、ある数までカウントアップする標準的なループを、全く同じ結果をもたらす別の種類のループへと変換した。

ウォーターマークを埋め込むために、システムは秘密鍵を使用して、これらの構造的変更の特定のシーケンスを生成する。そして、コードをスキャンして、適格な箇所を見つけ出し、秘密鍵によって指示された変更を適用する。例えば、鍵が特定の加算の順序を入れ替えるよう指示していれば、システムはそれを行う。もし鍵が元の順序を維持するよう指示していれば、そのままにする。これらの変更は、使用される言葉ではなく言語の論理に基づいているため、空白を整理したり変数をリネームしたりする標準的なフォーマッタ(整形ツール)を通過しても生き残る。開発者がコードをフォーマッタに通してファイル全体を再構成したとしても、論理構造は維持され、隠された署名は存続する。このシステムは、署名を削除するために別の人工知能にコードの書き換えを依頼するといった、ウォーターマークを消去しようとする攻撃に対しても堅牢であるように設計されている。

コードにウォーターマークが含まれているかどうかを検証するために、研究者たちは逆方向に機能する検出エンジンを構築した。それは、コードを受け取り、その論理ツリーを再構築し、変更を加えることができた箇所を確認する。そして、それらの箇所の状態を、秘密鍵によって生成された期待されるパターンと照合する。もしコードにウォーターマークが埋め込まれていれば、変更のパターンは秘密鍵と一致する頻度が、ランダムな確率よりもはるかに高くなる。研究者たちは、観察された一致がランダムな変動のベースラインと比較して、どの程度高いかを測定するために統計テストを用いた。一致数が十分に多ければ、システムは、そのコードがウォーターマークを適用した特定のAIモデルによって生成されたと高い信頼度で結論付ける。このプロセスは厳密かつ数学的であり、検出が推測ではなく、統計的に有意な発見であることを保証している。

研究者たちは、このフレームワークがどの程度耐えうるかを確認するために、幅広い攻撃に対してテストを行った。ウォーターマーク付きのコードがフォーマットツールを通過したり、変数がリネームされたり、あるいはコードを整理するために別のAIモデルによって書き換えられたりするシナリオをシミュレートした。これらのテストにおいて、従来のテキストベースのウォーターマーク手法はほぼ完全に失敗した。コードがフォーマットされると、テキストベースの署名は破壊され、クリーンなコードでの検出率はごくわずかな割合まで低下した。対照的に、この新しい構造的アプローチは、フォーマット後でも99%近い検出率を維持した。コードが変数リネームの対象となった場合でも、構造的手法はほとんどすべてのケースでウォーターマークを検出したが、古い構造的手法は苦戦した。さらには、署名を削除するために別の人工知能がパラフレーズ(言い換え)や書き換えを行った場合でも、この新しいフレームワークは84%を超える検出率を維持した。この回復力は、システムがコードのあちこちに署名の多くのコピーを埋め込んでいることによる。たとえ書き換えプロセスによって一部のマークが破壊されたとしても、その起源を証明するのに十分な数が残るのである。

この研究は、これらの変更がコードを壊したり、速度を低下させたりするのではないかという懸念にも対処している。研究者たちは、適用したすべての変換がプログラムの正確な出力を保持し、速度やメモリ使用量を変えないことを検証した。コードは完璧にコンパイルされ、実行された。機能的な劣化はゼロであった。これは、AIの執筆プロセス中にバイアスをかけようとする他の手法(これらは時としてエラーや無効なコードを引き起こす可能性がある)との決定的な違いである。完成したコードに対してのみ数学的に安全な入れ替えを行うことで、このフレームワークはソフトウェアが完全に機能し続けることを保証している。検出プロセス自体も効率的であり、ソースのプロベナンス(出自)を検証するために迅速に実行できる統計テストに依存している。

この研究の意義は、単なる著作権保護にとどまらない。人工知能がソフトウェア・サプライチェーンに統合されるにつれ、コードの起源を検証する能力はセキュリティの問題となる。もしコードにAIによって導入された隠れた脆弱性が含まれている場合、その原因を特定するにはそのソースを知ることが不可欠である。このフレームワークは、その起源を追跡する方法を提供し、ミッションクリティカルなソフトウェアが検証され、信頼されることを確実にする。研究者たちは、この手法が数千の生成されたスクリプトのデータセットに対して機能することを示し、それがスケーラブルであり、実世界の利用に向けた準備ができていることを証明した。この研究はPythonコードを用いて行われたが、構造的不変性の原理は多くのプログラミング言語に適用可能であり、デジタルツールの未来を保護するための幅広い道筋を示唆している。

これらの知見は、人工知能の時代における知的財産の保護方法に関する根本的な転換を示唆している。ウォーターマークを脆弱なテキストの表面から、堅牢な論理の骨格へと移動させることで、研究者たちは消去が困難で検証が容易なシステムを作り上げた。結果は、このアプローチが単なる理論的な可能性ではなく、現代のソフトウェア開発に特徴的な激しい編集や書き換えにも耐えうる実用的な解決策であることを示している。人間と機械のコードの境界線が引き続けて曖昧になる中で、この構造的ウォンタリングは、私たちが構築するソフトウェアにおいて透明性と責任を維持するための信頼できる手段を提供する。この研究は、プログラムの論理そのものの中に、永続的で壊すことのできない署名を埋め込むことが可能であり、表面がいかに変化しようとも、コードの真の起源を可視化し続けることができることを裏付けている。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →