Detection of LLM-assisted Code Plagiarism Using k-gram Software Birthmarks
Este artículo demuestra que las marcas de nacimiento de software de k-gram basadas en opcodes de Java siguen siendo efectivas para detectar el plagio de código asistido por LLM a través de varios modelos y medidas de similitud, a pesar de los desafíos planteados por el parafraseo de código.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que tienes una receta secreta para un pastel delicioso. En los viejos tiempos, si alguien quería robarte la receta, tendría que copiarla palabra por palabra. Era fácil atraparlos porque la caligrafía o el mecanografiado se verían exactamente iguales.
Pero ahora, imagina que un chef robot superinteligente (una IA) puede mirar tu receta, reescribirla por completo y darte una nueva versión que sabe exactamente igual pero se ve completamente diferente. Cambia la fuente, sustituye "azúcar" por "endulzante", reorganiza los pasos y utiliza diferentes tazas de medida. Para el ojo humano, parece una receta totalmente nueva. Esto es lo que el artículo denomina plagio de código asistido por LLM.
Aquí te explico cómo los investigadores de este artículo abordaron el problema de atrapar a estos ladrones "chef robot", explicado de forma sencilla:
El Problema: La reescritura "mágica"
Los desarrolladores de software escriben código (las instrucciones para las computadoras). Los Modelos de Lenguaje Extensos (LLM) son herramientas de IA que pueden tomar código existente y "parafrasearlo". Cambian la apariencia y la estructura del código tanto que los detectores de plagio tradicionales (que buscan palabras o líneas idénticas) son engañados. El programa sigue haciendo exactamente lo mismo, pero parece haber sido escrito por una persona diferente.
La Solución: La "Marca de Nacimiento" del Software
Los investigadores no intentaron leer el código reescrito como lo haría un humano. En su lugar, utilizaron algo llamado Marcas de Nacimiento de Software (Software Birthmarks).
Piensa en una marca de nacimiento como una huella dactilar única. Incluso si cambias de ropa, de peinado o de gafas, tu huella dactilar permanece igual.
- Cómo la crearon: Tomaron la "receta" de la computadora (el código), la tradujeron en una lista de instrucciones básicas de máquina (llamadas opcodes) y las trocearon en pequeños fragmentos de 2 a 6 instrucciones a la vez.
- La analogía: Imagina que tienes una frase: "El gato se sentó en la alfombra".
- Un 1-grama (trozo de 1) es solo las palabras: "El", "gato", "se"... (Demasiado común; muchas frases tienen "el").
- Un 2-grama (trozo de 2) son pares: "El gato", "gato se", "se sentó"... (Más único).
- Un 3-grama es tríos: "El gato se", "gato se sentó"... (Aún más único).
Convirtieron todo el programa en una bolsa de estos trozos. Incluso si la IA reorganizaba las frases, los tipos específicos de trozos (la marca de nacimiento) probablemente seguirían ahí.
El Experimento: ¿Quién es el mejor ladrón?
Los investigadores probaron tres "chefs robot" diferentes (modelos de IA):
- ChatGPT-5.1-Codex-Mini
- DeepSeek-V4-Flash
- Claude-Haiku-4.5
Tomaron programas Java reales de código abierto, pidieron a estas IA que reescribieran el código y luego intentaron atrapar a las IA usando su método de "marca de nacimiento". También probaron diferentes formas de comparar las marcas de nacimiento (como contar cuántos trozos coinciden frente a qué tan cerca está el orden).
Los Hallazgos: Qué funcionó
1. El tamaño del trozo importa (La zona "Goldilocks")
- Demasiado pequeño (1 trozo): Era como intentar identificar a una persona solo por la palabra "el". Demasiada gente la usa, por lo que no era una buena huella dactilar.
- Demasiado grande (6 trozos): Era como intentar emparejar un párrafo entero. Si la IA movía solo una frase, el párrafo entero no coincidía y la huella dactilar se rompía.
- Justo el tamaño adecuado (2 o 3 trozos): Este fue el punto ideal. Estos pequeños grupos de instrucciones eran lo suficientemente únicos para identificar el código original, pero lo suficientemente robustos para sobrevivir a la reescritura de la IA.
2. Cómo comparas importa
- El orden no importa: Los investigadores descubrieron que observar el orden de las instrucciones (como verificar si los pasos seguían la secuencia exacta) era una mala idea. La IA desordenó el orden tanto que este método falló.
- Contar importa: El mejor método fue simplemente contar cuántos trozos únicos aparecían tanto en el código original como en el reescrito, independientemente del orden. Es como decir: "¿Ambas recetas contienen 'harina' y 'huevos?'" en lugar de "¿Añadieron los huevos antes que la harina?".
3. ¿Qué IA fue la más difícil de atrapar?
- ChatGPT-5.1-Codex-Mini fue la más astuta. Logró reescribir el código de forma tan profunda que fue la más difícil de detectar y, aun así, produjo código que realmente funcionaba (compilaba sin errores).
- Las otras dos IA (DeepSeek y Claude) fueron más fáciles de atrapar porque sus reescrituras dejaban "marcas de nacimiento" más obvias.
La Conclusión
Aunque la IA puede reescribir el código para que parezca completamente diferente, no puede cambiar el "ADN" fundamental de cómo piensa la computadora. Al observar patrones pequeños y únicos de instrucciones de máquina (marcas de nacimiento) y contar cuántos coinciden, aún podemos atrapar al ladrón, incluso si están usando un chef robot superinteligente para disfrazar el crimen.
El artículo concluye que este método funciona bien contra el plagio de IA moderna, especialmente cuando se utilizan trozos pequeños de código (2 o 3 instrucciones) y al centrarse en qué hay en el código en lugar de dónde está.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.