← Ultimi articoli
💻 computer science

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

Questo articolo dimostra che i software birthmark basati su k-grammi degli opcode Java rimangono efficaci nel rilevare il plagio di codice assistito da LLM attraverso vari modelli e misure di similarità, nonostante le sfide poste dal parafrasamento del codice.

Autori originali: Nikolay Fedorov, Akito Monden, Hiroki Inayoshi, Haruaki Tamada, Masateru Tsunoda

Pubblicato 2026-07-07
📖 5 min di lettura🧠 Approfondimento

Autori originali: Nikolay Fedorov, Akito Monden, Hiroki Inayoshi, Haruaki Tamada, Masateru Tsunoda

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina di avere la ricetta segreta per una torta deliziosa. Nei vecchi tempi, se qualcuno avesse voluto rubare la tua ricetta, avrebbe dovuto copiarla parola per parola. Era facile begerli perché la grafia o la digitazione sarebbero state esattamente uguali.

Ma ora, immagina un robot chef super intelligente (un'IA) che può guardare la tua ricetta, riscriverla interamente e fornirti una nuova versione che ha lo stesso identico sapore ma appare completamente diversa. Cambia il carattere, sostituisce "zucchero" con "dolcificante", riorganizza i passaggi e usa tazometri diversi. Per l'occhio umano, sembra una ricetta del tutto nuova. Questo è ciò che il documento chiama plagio di codice assistito da LLM.

Ecco come i ricercatori in questo articolo hanno affrontato il problema di scovare questi ladri "robot-chef", spiegato in modo semplice:

Il Problema: La riscrittura "Magica"

Gli sviluppatori di software scrivono codice (le istruzioni per i computer). I Large Language Models (LLM) sono strumenti di IA che possono prendere il codice esistente e "parafrasarlo". Cambiano l'aspetto e la struttura del codice così tanto che i tradizionali rilevatori di plagio (che cercano parole o righe identiche) vengono ingannati. Il programma fa ancora esattamente la stessa cosa, ma sembra scritto da una persona diversa.

La Soluzione: Il "Segno Particolare del Software"

I ricercatori non hanno cercato di leggere il codice riscritto come farebbe un essere umano. Invece, hanno utilizzato qualcosa chiamato Software Birthmarks (Segni particolari del software).

Pensa a un segno di nascita come a un'impronta digitale unica. Anche se cambi vestiti, taglio di capelli o occhiali, la tua impronta digitale rimane la stessa.

  • Come l'hanno creata: Hanno preso la "ricetta" del computer (il codice), l'hanno tradotta in un elenco di istruzioni macchina di base (chiamate opcode) e l'hanno frammentata in piccoli pezzi da 2 a 6 istruzioni alla volta.
  • L'analogia: Immagina di avere una frase: "Il gatto si sedette sul tappeto".
    • Un 1-gram (pezzo di 1) è solo le parole: "Il", "gatto", "si", "sedette"... (Troppo comune; molte frasi hanno "il").
    • Un 2-gram (pezzo di 2) sono coppie: "Il gatto", "gatto si", "si sedette"... (Più unico).
    • Un 3-gram è un triplo: "Il gatto si", "gatto si sedette"... (Ancora più unico).

Hanno trasformato l'intero programma in un sacchetto di questi pezzi. Anche se l'IA ha riorganizzato le frasi, il tipo specifico di pezzi (l'impronta digitale) sarebbe probabilmente ancora presente.

L'Esperimento: Chi è il miglior ladro?

I ricercatori hanno testato tre diversi "robot chef" (modelli di IA):

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

Hanno preso veri programmi Java open-source, hanno chiesto a queste IA di riscriverli e poi hanno cercato di scovare le IA usando il loro metodo dell' "impronta digitale". Hanno anche testato diversi modi per confrontare le impronte digitali (come contare quanti pezzi corrispondono rispetto a quanto sia vicina l'ordine).

Le Scoperte: Cosa ha funzionato?

1. La dimensione del pezzo conta (La zona "Goldilocks")

  • Troppo piccolo (1 pezzo): Era come cercare di identificare una persona solo dalla parola "il". Troppe persone la usano, quindi non era una buona impronta digitale.
  • Troppo grande (6 pezzi): Era come cercare di abbinare un intero paragrafo. Se l'IA spostava anche solo una frase, l'intero paragrafo non corrispondeva e l'impronta digitale si rompeva.
  • Giusto il mezzo (2 o 3 pezzi): Questo era il punto ideale. Questi piccoli gruppi di istruzioni erano abbastanza unici da identificare il codice originale ma abbastanza robusti da sopravvivere alla riscrittura dell'IA.

2. Il modo in cui confronti conta

  • L'ordine non conta: I ricercatori hanno scoperto che guardare l'ordine delle istruzioni (come controllare se i passaggi seguono esattamente la stessa sequenza) era una cattiva idea. L'IA ha rimescolato l'ordine così tanto che questo metodo è fallito.
  • Contare conta: Il metodo migliore era semplicemente contare quanti pezzi unici apparivano sia nel codice originale che in quello riscritto, indipendentemente dall'ordine. È come dire: "Entrambe le ricette contengono 'farina' e 'uova?'" piuttosto che "Hanno aggiunto le uova prima della farina?".

3. Quale IA è stata la più difficile da scovare?

  • ChatGPT-5.1-Codex-Mini è stato il più subdolo. È riuscito a riscrivere il codice in modo così approfondito da essere il più difficile da rilevare, pur producendo comunque codice che effettivamente funzionava (compilava senza errori).
  • Le altre due IA (DeepSeek e Claude) erano più facili da scovare perché le loro riscritture lasciavano dietro di sé "impronte digitali" più evidenti.

In sintesi

Anche se l'IA può riscrivere il codice per farlo sembrare completamente diverso, non può cambiare il "DNA" fondamentale del modo in cui pensa il computer. Guardando piccoli e unici schemi di istruzioni macchina (birthmarks) e contando quanti corrispondono, possiamo ancora scovare il ladro, anche se sta usando un robot super intelligente per travestire il crimine.

L'articolo conclude che questo metodo funziona bene contro il plagio dell'IA moderna, specialmente quando si utilizzano piccoli pezzi di codice (2 o 3 istruzioni) e ci si concentra su cosa c'è nel codice piuttosto che su dove si trova.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →