Translate

2015年2月13日金曜日

プログラムには「指紋」が付いているらしい

 こんにちは、稲田商会です。

 なにかするときには、きちんと「指紋」を拭き取る必要がありますね。
 まあ、私はなにもしませんが。

精度95%以上! ソースコードは指紋、作者はほぼ特定できる(GIZMODO)
2015.02.11 19:00
ほぼドンピシャでバレバレです。
スペースやタブ、大文字やアンダーバーを組み合わせた命名規則、コメント…コードの書き方には、人によってスタイルがありますよね。それはもう指紋のようなもので、それさえ見えれば、誰がコードを書いたかほとんどわかってしまう…そんな驚きの研究結果が発表されました。
米ドレクセル大学、メリーランド大学、プリンストン大学、独ゲッティンゲン大学の共同チームの研究によると、自然言語処理と機械学習によるコード分析により、95%の精度で作者は特定できるそうです。
解析されるのは、レイアウトや語彙の特性と、「抽象構文木(AST)」です。ASTとは、「コードの書き方からまったく影響を受けずに、コードの型の特性をとらえる」もので、つまり、関数の名前、コメント、スペース入れ方などのクセ以上のものを探し出し、作者を特定するカギにする、というわけです。 
(後略) 
出典:GIZMODO



 他の人の作ったプログラムを見ていると、稀に「なんじゃこりゃ」と言いたくなるようなロジックに遭遇することがあります。
 この場合、自分の頭が悪くてついて行けてないケースと、そのロジックにしないといけない理由が理解出来ないケースの2通りがあると思われます。
 その意味では、ロジックなどを分析して個人特定に使うことは可能だろうと思います。
 でも、ロジックの分析なんてどうやってやるんでしょうね。
 元記事では、レイアウト、語彙の特性、抽象構文木(AST)とのことですが、抽象構文木というのがどのようなものかとても興味があります。

 そういえば、攻殻機動隊でも通常とは違う形に組まれた攻性防壁が好評だとの話が出てきたように思いますが、実際に思いも付かない方法で組まれているものは対処するのがとても大変ですから将来的に起こり得る話のように思われます。

 もし自作のプログラムで何かをしようと考えておられる方が居られるなら、プログラムの「指紋」は消しておくように伝えてあげてください。

 それでは、今回はこのへんで。

0 件のコメント:

コメントを投稿