精度95%以上! ソースコードは指紋、作者はほぼ特定できる

2015.02.11 19:00
  • このエントリーをはてなブックマークに追加

150130coding.jpg


ほぼドンピシャでバレバレです。

スペースやタブ、大文字やアンダーバーを組み合わせた命名規則、コメント…コードの書き方には、人によってスタイルがありますよね。それはもう指紋のようなもので、それさえ見えれば、誰がコードを書いたかほとんどわかってしまう…そんな驚きの研究結果が発表されました。

米ドレクセル大学、メリーランド大学、プリンストン大学、独ゲッティンゲン大学の共同チームの研究によると、自然言語処理と機械学習によるコード分析により、95%の精度で作者は特定できるそうです。

解析されるのは、レイアウトや語彙の特性と、抽象構文木(AST)」です。ASTとは、「コードの書き方からまったく影響を受けずに、コードの型の特性をとらえる」もので、つまり、関数の名前、コメント、スペース入れ方などのクセ以上のものを探し出し作者を特定するカギにする、というわけです。

研究チームが開発した機械学習ソフトウェアで、Google Code Jamに公開されているコードの分析を試しに行ってみたところ、あるひとりの人が書いた630行のコードを分析すれば、95%の精度でその作者が特定できたそうです。コードの行数を増やして1,900行にすると、特定の精度は97%になるとか!

このコード解析、すぐに使えそうな分野が思い浮かびますよね。そう、当局がハッカーを見つけたり、オンライン詐欺の犯人を特定したり、という使い方です。あと、他人のコードをちょっと拝借、なんていうケースもバレちゃったりするんでしょうか。「特定されたら困る!」という人は、今から誰かのコードの書き方をそっくりマネする練習を始めた方がいいかもしれない…ですかね?


image by Olly/Shutterstock
source: Drexel via IT World

Jamie Condliffe - Gizmodo US[原文
(conejo)

  • このエントリーをはてなブックマークに追加
  • リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
  • Dustin Boswell,Trevor Foucher|オライリージャパン
  • デーモン君のソース探検―BSDのソースコードを探る冒険者たちのための手引き書 (BSD magazine Books)
  • 氷山 素子|アスキー
特別企画

家事で空気は汚れる? 「Dyson Pure Cool Link」でチェックしてみた

Sponsored by Dyson 風が強くて気持ちいい扇風機と、微細なアレルゲンも取り除いてくれる空気清浄機。2in1なダイソン・エアマルチプライアーシリーズ最新モデルが、さらなる進化を遂げました...
続きを読む»

・関連メディア