奈良先端科学技術大学院大学 » 情報科学研究科 »

ソフトウェア電子透かし - Software Watermarking

ソフトウェアが盗用された場合に, そのソフトウェアから必要な情報を取り出して,著作権侵害の事実を証明することが狙いです. プログラムに透かしを埋め込む/取り出す方法について研究しています.

電子透かし

この研究は主に Java 言語を対象にしています.

Java 言語はオブジェクト指向言語であり,プログラムの部品であるクラスファイルは 再利用性を考えて作られます. Java で作られた一つのソフトウェアは複数のクラスファイルで構成され, 一度自分が作成した便利なクラスファイルは他のソフトウェアで容易に再利用することが可能です. しかし,再利用性が高いということは,他人にクラスファイルを盗まれて勝手に利用されるという 危険性も秘められています.

この盗用を防ぐことはなかなか難しいので,もし盗用されてしまった場合に 盗用された事実の発見や証明が大切になります. そこで電子透かしを入れておくという方法が役に立つということになります.

プログラムに自分のサインを電子透かしとして密かに書き込んでおくことで, 万一,プログラムが盗用された場合にも透かしを取り出すことで, 著作権侵害の事実を明らかにすることができます.

しかし,クラスファイルのどこにでも電子透かしを埋め込めば良いわけではありません. クラスファイルは実行時に検査され, 少しでも仕様と異なる部分があると安全に実行できないとして,ロードされることはありません. また,自分のサインをそのままの形で,例えばクラスファイルに新たな文字列変数を加え, その変数に自分のサインである文字列を代入するような透かしであると, 攻撃者は簡単に透かしを取り外すことができます.

これらを踏まえて,どこに透かしを埋め込めばいいのか, どのように取り出せば良いのかを研究しています.

電子透かしの種類

まだまだ研究の余地はあると思います. プログラムに対する電子透かしは,大きく分けて二通りあります. (1)動的電子透かしと(2)静的電子透かしです.

動的透かしは,特定の入力を与えてプログラムを実行すると透かしが表示される というものです. 例えば,隠しコマンドを入れるとコピーライト表示が出るような物も これに含まれます.

静的透かしは,プログラムを実行せずに透かしが取り出せるというものです.

具体的にどのような方法で透かしを入れるかはアイデア次第. すでにいくつか特許が出ています.

発表文献

論文誌

国際会議

国内会議

関連リンク


Copyright © 2006 Software Engineering Laboratory, NARA INSTITUTE of SCIENCE and TECHNOLOGY. All Rights Reserved.