cafebabe.jp 日々のよしなしごとをのたまうブログ.

114月/110

jmark ― Java言語向け電子透かしツール


Javaクラスファイルに対する電子透かしのためのツールで, http://se.naist.jp/jmark/ で公開されている.

このツールはダミーのメソッドに透かし情報を埋め込む.ダミーであるため,実行することに影響はないが,Java言語にはベリファイアという機能がある.クラスファイルのロード時にクラスファイルのフォーマットが間違っていないか,また,危険なコードが含まれていないかを検証する機構である.

そのため,int 型の変数に対してdouble型の足し算を行う命令を実行するとVerifyErrorが発生する.jmarkではこのようなVerifyErrorが発生しないように電子透かしを埋め込む.

具体的には,jmarkはVerifyErrorが発生しない範囲で置換可能な命令に特定のビットを与えて電子透かしを埋め込む.int型の足し算を行う命令と引き算を行う命令は,プログラムの意味上は大きな違いはあるが,ベリファイアの観点で見れば,全く違いはない.このように,int型の足し算を行う命令,引き算を行う命令,掛け算命令,割り算命令,剰余命令,AND, OR, XOR命令それぞれにビットを与えておき,命令を置き換えることで透かし情報の埋め込みを実現している.

もっと具体的に見れば,命令については以下のような感じでビットを割り当てている.ただし,本来の割り当て方とは異なっている.このようにint型に対する計算命令については8ビットの情報を埋め込むことが可能である.

iadd isub imul idiv imod iand ior ixor
0 1 2 3 4 5 6 7

また,この他にも定数値にはその定数に応じたバイト数の情報を埋め込むことが可能である.

参考文献

  • 門田暁人, 松本健一, 飯田元 ,井上 克郎, 鳥居宏次, "Javaクラスファイルに対する電子透かし法", 情報処理学会論文誌, Vol.41, No.11, pp.3001-3009, Nov. 2000. (in Japanese)
  • Akito Monden, Hajimu Iida, Ken-ichi Matsumoto, Katsuro Inoue and Koji Torii, "A practical method for watermarking Java programs," The 24th Computer Software and Applications Conference (compsac2000), pp. 191-197, Taipei, Taiwan, Oct. 25-27, 2000.
  • Akito Monden, Hajimu Iida, Ken-ichi Matsumoto, Katsuro Inoue and Koji Torii, "Watermarking Java programs," International Symposium on Future Software Technology '99 (ISFST '99), pp.119-124, Nanjing, China, Oct. 1999.
  • 門田暁人, 飯田元, 松本健一, 鳥居宏次: "Javaプログラムを対象とする電子透かし法," 日本ソフトウェア科学会第16回大会論文集, pp.253-256, Sep. 1999. (in Japanese)
  • 門田暁人, 飯田元, 松本健一, 鳥居宏次, 一杉裕志, "プログラムに電子透かしを挿入する一手法," 1998年暗号と情報セキュリティシンポジウム, SCIS '98-9.2.A, Jan. 1998. (in Japanese)
 
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

Spam Protection by WP-SpamFree

No trackbacks yet.