Core Concepts
GPTモデルを使用して、暗号化ハッシュ関数SHA-1の実装のユニークなバリアントを大量に生成することができる。しかし、生成されたコードには深刻な欠陥が含まれている可能性がある。
Abstract
この研究では、GPTモデルを使用して暗号化ハッシュ関数SHA-1の実装のユニークなバリアントを大量に生成することを探っています。
主な結果は以下の通りです:
合計137,466個の関数の書き換えを試みましたが、そのうち46,962個しか全てのコンパイル設定でコンパイルできませんでした。つまり、GPTの出力の半分以上が有効なCコードとして解析できませんでした。
生成された関数の多くに深刻な欠陥が含まれていました。例えば、1,000個以上のインスタンスで、変数の未初期化や条件付きジャンプの依存性などの基本的な問題が見つかりました。
一部の関数は、一部のテストベクトルでは正しい出力を生成しましたが、他のテストベクトルでは正しくない出力を生成するという、セキュリティ上の重大な欠陥を含んでいました。これは、十分にテストされていないと見なされる可能性があります。
一部の関数は、基本的な要件を満たすハッシュ関数のように見えましたが、SHA-1アルゴリズムとは全く異なるものでした。これらは潜在的に安全性の低い代替ハッシュ関数として悪用される可能性があります。
このように、現在のGPTモデルを使ってコードを自動生成すると、深刻な欠陥が含まれる可能性が高いことが示されました。GPTモデルは研究ツールとしては有用ですが、実用的なコード生成には適していません。
Stats
SHA-1初期化関数の定数は、元の実装と同じでした。
コンパイルに失敗したバイナリには、以下のようなエラーが含まれていました:
SIGSEGV: 9,369回
SIGABRT: 562回
SIGILL: 9回
SIGFPE: 3回
SIGBUS: 17回
また、943個のコンパイルされたバイナリが無限ループに陥りました。