中文

基于生成式预训练变换模型的密码学哈希函数实现源代码变体的自动创建

密码学与安全 2024-07-11 v2 人工智能 机器学习

摘要

生成式预训练变换模型(GPT)是一类在生成新颖且连贯的自然语言方面出色的大型语言机器学习模型。本研究考察了GPT模型生成SHA-1密码学哈希函数实现的新颖且正确版本,尤其是非常不安全的版本的能力。使用了Llama-2-70b-chat-h、Mistral-7B-Instruct-v0.1和zephyr-7b-alpha三个GPT模型。通过修改localGPT框架和langchain,为模型提供完整源代码和头文件的词嵌入上下文,最终生成了超过150,000个函数重写GPT输出文本块,其中约50,000个能够被解析为C代码并进行编译。对生成的代码进行分析,包括可编译性、算法正确性、内存泄漏、编译器优化稳定性以及与参考实现的字符距离。令人惊讶的是,一些生成的函数变体在某些测试向量正确时,却在其他测试向量不正确,具有很高的实现安全风险。此外,许多函数实现不符合SHA-1的参考算法,但产生的哈希值具有哈希函数的一些基本特征。许多函数重写包含严重缺陷,如内存泄漏、整数溢出、越界访问、使用未初始化的值以及编译器优化不稳定。采用编译器优化设置和SHA-256哈希校验和对编译后的二进制文件进行聚类,以识别语法虽不同但等效的实现。通过该聚类方法,生成了超过100,000个新的且正确的SHA-1代码版本,其中每个组件C函数都与原始代码不同。

关键词

引用

@article{arxiv.2404.15681,
  title  = {Automated Creation of Source Code Variants of a Cryptographic Hash Function Implementation Using Generative Pre-Trained Transformer Models},
  author = {Elijah Pelofske and Vincent Urias and Lorie M. Liebrock},
  journal= {arXiv preprint arXiv:2404.15681},
  year   = {2024}
}