← 最新论文
💻 computer science

Detection of LLM-assisted Code Plagiarism Using k-gram Software Birthmarks

本文证明了基于 Java 操作码的 k-gram 软件指纹在检测不同模型及相似度度量下的 LLM 辅助代码抄袭方面仍然有效,尽管面临着代码改写的挑战。

原作者: Nikolay Fedorov, Akito Monden, Hiroki Inayoshi, Haruaki Tamada, Masateru Tsunoda

发布于 2026-07-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Nikolay Fedorov, Akito Monden, Hiroki Inayoshi, Haruaki Tamada, Masateru Tsunoda

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你拥有一份美味蛋糕的秘密食谱。在过去,如果有人想偷走你的食谱,他们必须逐字逐句地抄袭。这很容易被发现,因为手写或打字的样式看起来会完全一样。

但现在,想象一下有一个超级聪明的机器人厨师(AI),它可以查看你的食谱,将其完全重写,并给出一个全新的版本,虽然看起来完全不同,但味道却一模一样。它改变了字体,把“糖”换成了“甜味剂”,重新排列了步骤,并使用了不同的量杯。在人类眼中,这看起来像是一个全新的食谱。这就是这篇论文所讨论的 LLM 辅助代码剽窃(LLM-assisted code plagiarism)

以下是研究人员如何解决捕捉这些“机器人厨师”小偷的问题,其过程解释如下:

问题所在:“魔法”般的重写

软件开发人员编写代码(计算机指令)。大语言模型(LLMs)是能够对现有代码进行“改写”的 AI 工具。它们会改变代码的外观和结构,使其看起来大不相同,从而骗过传统的剽窃检测器(这些检测器寻找的是完全相同的单词或行)。程序执行的功能仍然完全相同,但看起来像是出自另一个人之手。

解决方案:“软件胎记”

研究人员并没有像人类那样去阅读重写后的代码。相反,他们使用了被称为 软件胎记(Software Birthmarks) 的技术。

把胎记想象成一个独特的指纹。即使你换了衣服、发型或眼镜,你的指纹依然保持不变。

  • 他们是如何制作它的: 他们获取了计算机的“食谱”(代码),将其翻译成一系列基础的机器指令(称为操作码/opcodes),然后将它们切成每次 2 到 6 条指令的小块。
  • 类比: 想象你有一个句子:“猫坐在垫子上。”
    • 1-gram(1 个块) 只是单词:“猫”、“坐”、“在”……(太常见了;许多句子都有“在”这个词)。
    • 2-gram(2 个块) 是配对:“猫坐”、“坐在”、“在垫”……(更具唯一性)。
    • 3-gram 是三连组:“猫坐在”、“坐在垫上”……(甚至更具唯一性)。

他们将整个程序变成了一个由这些小块组成的“袋子”。即使 AI 重新排列了句子,这些特定类型的块(指纹)很可能仍然存在。

实验:谁是最好的小偷?

研究人员测试了三种不同的“机器人厨师”(AI 模型):

  1. ChatGPT-5.1-Codex-Mini
  2. DeepSeek-V4-Flash
  3. Claude-Haiku-4.5

他们提取了真实的开源 Java 程序,要求这些 AI 重写它们,然后尝试使用他们的“指纹”方法来抓捕这些 AI。他们还测试了比较指纹的不同方式(例如,计算有多少块匹配,以及顺序有多接近)。

研究结果:什么起作用了?

1. 块的大小至关重要(“金发姑娘”原则/适中原则)

  • 太小(1 个块): 这就像试图仅凭单词“的”来识别一个人。太多人使用它,所以它不是一个好的指纹。
  • 太大(6 个块): 这就像试图匹配整个段落。如果 AI 仅仅移动了一个句子,整个段落就无法匹配,指纹就会失效。
  • 刚刚好(2 或 3 个块): 这是最佳区间。这些小的指令组既足够独特,可以识别原始代码,又足够坚固,能够经受住 AI 重写的考验。

2. 比较方式很重要

  • 顺序无关紧要: 研究人员发现,观察指令的顺序(比如检查步骤是否按完全相同的序列排列)是一个糟糕的主意。AI 把顺序打乱得非常厉害,以至于这种方法失败了。
  • 计数才是关键: 最好的方法是简单地统计在原始代码和重写代码中出现了多少个独特的块,而不考虑顺序。这就像是在问:“这两个食谱是否都包含‘面粉’和‘鸡蛋’?”而不是问“他们是在加入面粉之前还是之后加入的鸡蛋?”

3. 哪个 AI 最难被抓到?

  • ChatGPT-5.1-Codex-Mini 是最狡猾的。它成功地进行了彻底的重写,使得它最难被检测到,同时它生成的代码仍然可以正常运行(编译无误)。
  • 其他两个 AI(DeepSeek 和 Claude)更容易被抓到,因为它们的重写留下了更明显的“指纹”。

核心结论

尽管 AI 可以重写代码使其看起来完全不同,但它无法改变计算机思考方式的根本“DNA”。通过观察微小且独特的机器指令模式(胎记)并统计有多少个匹配项,即使小偷使用了超级聪明的机器人进行伪装,我们仍然可以抓住他们。

论文得出结论,这种方法在应对现代 AI 剽窃方面效果很好,特别是当使用较小的代码块(2 或 3 条指令)并专注于代码中“有什么”而非“在哪里”时。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →