由于CV领域和NLP领域的后门攻击和风格转换技术已经很成熟,本文主要针对PL领域进行风格转换。代码风格转换不同于CV领域插入肉眼不可见的像素点,代码是不连续的,不能插入连续的触发器,也不同于NLP领域,自然语言的语法没有PL受限,代码风格转换前后的代码除了要保证语义等价外,还得保证语法正确,这是实现代码风格转换的挑战。
另外,现有代码风格转换器存在一些问题,例如采用深度学习网络转换代码风格受到代码长度的限制,代码过长可能导致模型输出不正确,同时当处理大量数据集的时候,这类方法生成速度过于缓慢,不适用于大批量的代码风格转换。现有使用语法转换器的方法也存在语言受限,转换速度仍然过慢,转换率过低等问题,因此设计一个高效率、高转换率、多语言的代码风格转换器也是一项挑战。因此,本文研究将从以下几个部分进行深入探讨:
(1)代码风格转换器设计:针对现有代码风格转换器在语言支持上的局限性,本文设计的转换器将支持多种编程语言,包括但不限于Java、C、C++、Python等。
(2)高效的代码风格转换算法:提出一种新的高效算法,以提高代码风格转换速度。
(3)后门攻击应用:设计一种基于等价语义转换的后门注入方法,将隐蔽水印嵌入到代码中,确保水印在不影响代码功能和性能的前提下,能够有效保护代码数据集的版权。
(4)隐蔽性评估:为了评估本文风格转换器的隐蔽性,对CV和NLP领域两种防御方法进行的测试。