JP2000076064A - プログラムへの透かしの挿入方法及びシステム - Google Patents

プログラムへの透かしの挿入方法及びシステム

Info

Publication number
JP2000076064A
JP2000076064A JP10246962A JP24696298A JP2000076064A JP 2000076064 A JP2000076064 A JP 2000076064A JP 10246962 A JP10246962 A JP 10246962A JP 24696298 A JP24696298 A JP 24696298A JP 2000076064 A JP2000076064 A JP 2000076064A
Authority
JP
Japan
Prior art keywords
watermark
program
information
statements
statement
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10246962A
Other languages
English (en)
Other versions
JP3865347B2 (ja
Inventor
Junichi Toda
潤一 遠田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP24696298A priority Critical patent/JP3865347B2/ja
Publication of JP2000076064A publication Critical patent/JP2000076064A/ja
Application granted granted Critical
Publication of JP3865347B2 publication Critical patent/JP3865347B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 コンピュータプログラムの不正利用が発覚し
た際に発生源を特定できる手段を備えることによって、
作成者でない者による不正利用を安価な構成で抑止す
る。 【解決手段】 プログラムのソースコードから、入れ替
えてもプログラムの仕様に影響がない命令文をいくつか
取り出し、命令文と命令文との間に、ダミー変数に関す
る計算式を挿入し、命令文同士をランダムに入れ替え、
入れ替えた命令文の順序を透かし情報とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータプロ
グラムの不正コピー等による不正行為があった場合に、
その不正行為の発生源を特定可能にする透かしの挿入方
法及びシステムに関するものである。
【0002】
【従来の技術】情報化の発展、コンピュータの普及によ
り、コンピュータプログラムの重要性は増加している。
コンピュータプログラムの最も特筆すべき特徴は、それ
自体がデジタル情報であり、オリジナルと同品質のコピ
ーを高速かつ安価に製造できるという生産性にある。し
かしながら、そういった利点がある反面、不正コピー、
プログラムコードやアルゴリズムの盗用、改ざんといっ
た不正利用が容易に行われてしまう危険性がある。こう
いった背景から、作成者でない者によるコンピュータプ
ログラム(ソフトウェア)の不正利用を防止できる環境
を作る必要があると考えられる。
【0003】現在提案されている主なソフトウェア保護
手法としては、例えば特開平8−95777号公報「ソ
フトウェア利用制御装置」に開示れているように、各種
のコンテンツをネットワークを通じて有料で流通させ
る、いわゆる「超流通」などの形態において特別なハー
ドウェア(サーバコンピュータ)を使った方法や、特開
平10−27123号公報「コンピュータソフトウェア
のコピープロテクト方法」に開示されているように、コ
ピープロテクトをかける方法などが挙げられる。
【0004】
【発明が解決しようとする課題】しかしながら、「超流
通」による方法では、コストが嵩むという問題がある。
また、コピープロテクトのように記録媒体を用いる方法
では、ネットワークを介してコンピュータプログラムを
配布する場合に利用できないという問題がある。作成者
にとって安心できる環境を作るためには、低コストで、
改ざんや盗用に強い耐タンパな性質をソフトウェア自身
に持たせる必要がある。しかし、現実にはコンピュータ
プログラムはデジタル情報であるため、コピーなどを容
易に行うことが可能であり、不正利用自身を防ぐのは難
しいと考えられる。
【0005】本発明の目的は、不正利用自体を防ぐので
はなく、不正利用が発覚した際に、その発生源(不正コ
ピー者)を容易に特定できるような仕掛けをコンピュー
タプログラムに具備させることによって、作成者でない
者による不正利用を安価な構成で抑止することができる
コンピュータプログラムへの透かし挿入方法及びシステ
ムを提供することにある。
【0006】
【課題を解決するための手段】前記目的を達成するため
に、本発明では、現在、画像などの不正利用を防止する
技術として使われている電子透かし手法の考え方をコン
ピュータプログラムに応用する。電子透かし手法とは、
例えば特開平9−191394号公報「電子的すかし挿
入方法」に示されているように、画像、音声などの著作
権を保護する技術の1つであり、画像、音声データの中
にID情報を埋め込むことにより画像データの流用、無
断転載などの不正利用を防ぐ手法である。
【0007】前記電子透かし手法の特徴は、 1.IDを埋め込んだことによりデータが劣化しない 2.ユーザが埋め込まれたIDを取り除くとデータが劣
化する(ユーザがIDを取り除けない)という点にあ
る。
【0008】本発明のプログラムへの透かし挿入方法
は、透かしを挿入したいプログラムのソースコードか
ら、互いに順序を入れ替えてもプログラムの仕様に影響
がない命令文をいくつか選び、その命令文と命令文との
間に、ダミー変数に関する計算式を挿入した後、命令文
同士をランダムに入れ替え、その入れ替えた命令文の順
序を透かし情報として保存することを特徴とする。
【0009】本発明における「透かし」とは、プログラ
ムの仕様に影響を与えず、かつ作成者にとっては意味が
あるが、利用者側にとっては無意味または存在すること
自体が分からないような情報を挿入することである。本
発明では、「透かし」の仕方として、ダミー変数を挿入
し、そのダミー変数を挿入した命令文同士をランダムに
入れ替えるという方法を採用している。
【0010】「透かし情報」とは、上記の方法によって
挿入した「透かし」の仕方を表わす情報であり、本発明
では、入れ替えた命令文の順序の情報を採用している。
【0011】入替え可能な命令文としては、例えば変数
の代入文がある。ダミー変数は、不正なユーザによるプ
ログラムの解析を困難にして、透かしの改ざんを防ぐた
めに用いるものである。
【0012】また、ダミー変数に関する計算式は、入替
え可能な命令文で使われている変数を参照することとす
る。さらに、不正なユーザによるプログラムの解析をよ
り困難にするために、命令文を入れ替えた後ソースコー
ドをコンパイルした際に、生成されたアセンブラコード
に対して難読化を施してもよい。難読化とは、例えば電
子情報通信学会論文誌Vol.J80−D−I No.
7「ループを含むプログラムを難読化する方法の提案」
(門田、高田、鳥居)に示されているように、プログラ
ムの仕様を保ちながらその解析を困難にする変換のこと
である。
【0013】上記の手段によって、不正なユーザが「透
かし」を改ざんしようとして命令文を入れ替えると、ダ
ミー変数の計算式が入れ替えた命令文で使われている変
数を参照していることにより、ダミー変数の計算結果が
変わってしまう。よって、不正なユーザにとっては、
「透かし」を改ざんすると、プログラムの仕様が保たれ
ているかどうかがわかりにくくなり、プログラム仕様を
犠牲にしてまで改ざんしようとする行為を断念せざるを
得なくなり、実質的に不正使用を抑制することが可能に
なる。
【0014】一方、「透かし」を改ざんし得たとして
も、作成者はその改ざん後のプログラムを解析し、作成
者側に保存してある透かし情報と照合することによって
改ざんされたものであることを直ちに発見することがで
きる。
【0015】また、前記の「透かし情報」に対し配付先
別のユーザIDを付加して保存しておくことにより、不
正コピーが多数出回った場合でも、その不正コピーの
「透かし情報」を取り出し、その「透かし情報」に対応
するユーザIDを調べることにより、不正コピー元を直
ちに特定することができる。この結果、作成者でない者
によるコンピュータプログラムの不正利用を抑止するこ
とが可能になる。
【0016】
【発明の実施の形態】以下、本発明の一実施形態につい
て図面を用いて説明する。
【0017】図1は、本発明を適用した透かし挿入シス
テムの一実施形態を示すシステム構成図である。
【0018】本実施形態の透かし挿入システム110
は、入力部111、表示部112、出力部113、中央
処理部114、透かし挿入可能領域検出部115、透か
し挿入可能領域記憶部116、透かし挿入部117、透
かし情報記憶部118、透かし取り出し部119から構
成されており、透かし挿入可能領域の検出、透かしの挿
入、透かし情報の取り出しなどの処理を行う。
【0019】入力部111は、透かしを挿入したいプロ
グラムのソースコードなどを入力するためのものであ
る。表示部112は、透かし情報などを表示するための
ものである。出力部113は、透かしを挿入した実行形
式プログラムなどを出力するためのものである。中央処
理部114は、透かし挿入可能領域の検出、透かしの挿
入、透かしの取り出しなどの処理を制御する。
【0020】透かし挿入可能領域検出部115は、プロ
グラムのソースコードから透かしを挿入できる部分を検
出する。透かし挿入可能領域記憶部116は、プログラ
ムのソースコードのうち透かしを挿入できる部分を記憶
する。透かし挿入部117は、プログラムのソースコー
ドに透かしを挿入し、ソースコードをコンパイルする。
透かし情報記憶部118は、挿入した透かしの情報を記
憶する。透かし取り出し部119は、実行形式プログラ
ムから透かしを取り出す。
【0021】本実施形態の透かし挿入システム110
は、次に挙げる3つの特徴的な処理を行う。
【0022】(1)透かし挿入可能領域の検出 (2)透かしの挿入 (3)透かしの取り出し 透かし挿入可能領域の検出処理は、挿入対象のプログラ
ム中に透かしを挿入できる場所を検出するための処理で
あり、挿入対象のプログラムに透かしを実際に挿入する
前に、最初に1回だけ行う。透かしの挿入処理は、配布
先のユーザを識別するIDを埋め込むための処理であ
り、配布対象のプログラムをユーザに配布するたびに作
成者の管理化または作成者の委任を受けた管理者の管理
下で行う。
【0023】透かしの取り出し処理は、プログラムの配
布先のユーザを特定するための処理であり、プログラム
の不正利用を調査するときに行う。プログラムの配布先
を特定したい場合の例としては、プログラムの不正コピ
ーが出回っており、不正コピーの出所を突き止めたい場
合などがある。以下3つの処理について詳しく説明す
る。
【0024】まずはじめに、透かし挿入可能領域の検出
処理について図2の透かし挿入可能領域検出フロー図を
用いて説明する。プログラムの作成者は、透かしを挿入
したいプログラムのソースコードを入力部111から入
力する(ステップ21)。プログラムのソースコードが
入力されると、中央処理部114は、入力されたプログ
ラムに対してプログラムIDを一意に割り当てる(ステ
ップ22)。プログラムIDを割り当てると、中央処理
部114は、ソースコードを透かし挿入可能領域検出部
115へ送る。透かし挿入可能領域検出部115は、送
られたソースコードを解析して、相互に入れ替えてもプ
ログラムの仕様に影響がないような命令文の組を検出す
る(ステップ23)。
【0025】図3は、ステップ23における透かし挿入
可能領域検出処理の説明図である。図3において、命令
文31、命令文32および命令文33は、それぞれ異な
る変数を参照する代入文である。従って、命令文31、
命令文32、命令文33を相互に入れ替えてもプログラ
ムの仕様に影響はない。入替え可能な命令文を検出する
と、透かし挿入可能領域検出部115は、命令文の情報
を透かし挿入可能領域として中央処理部114へ送る。
中央処理部114は、送られた透かし挿入可能領域と、
この透かし挿入可能領域を含むプログラムのプログラム
IDとを透かし挿入可能領域記憶部116へ送る(ステ
ップ24)。
【0026】図4は、透かし挿入可能領域記憶部116
に記憶する透かし挿入可能領域情報の例である。透かし
挿入可能領域情報40は、プログラムを識別するための
プログラムID41、プログラムのオリジナルソースコ
ード42、入替え可能な命令文を表す透かし挿入可能領
域43から構成されている。
【0027】図5は、透かし挿入可能領域43の例を示
すものであり、入替え可能な命令文のソースコード中の
ソース行番号51、入替え可能な命令文52、命令文を
識別するためのコードID53から構成されている。な
お、この図5の例は図3の命令文に対応している。な
お、図3の例では、透かし挿入可能領域43は1箇所だ
けであるが、2箇所以上あってもよい。ただし、その場
合は、コードID53の表記を工夫して(例、A1、A
2、…、B1、B2、…)、どの命令文が相互に入替え
可能であるかを識別できるようにしておく必要がある。
【0028】透かし挿入可能領域情報40を送ると、中
央処理部114は、表示部112に割り当てたプログラ
ムIDを表示して(ステップ25)処理を終了する。プ
ログラムIDは、透かしの挿入処理の際、透かし挿入シ
ステム110に透かしを挿入したいプログラムを識別さ
せるために、プログラムの作成者が入力する情報であ
る。このため、プログラムの作成者は、表示されたプロ
グラムIDを記録しておく必要がある。
【0029】次に、透かしの挿入処理について図6の透
かし挿入フロー図を用いて説明する。プログラムの作成
者は、透かしを挿入したいプログラムのプログラムID
と、プログラムの配布先のユーザ情報を入力部111か
ら入力する(ステップ61)。プログラムIDとユーザ
情報が入力されると、中央処理部114は、入力された
プログラムIDに基づいて、透かし挿入可能領域記憶部
116から透かし挿入可能領域情報40を参照し、その
透かし挿入可能領域情報40を透かし情報挿入部117
へ送る(ステップ62)。
【0030】透かし挿入可能領域情報40が送られてく
ると、透かし挿入部117は、前記透かし挿入可能領域
情報40に基づいて入れ替え可能な命令文と命令文の間
にダミー変数に関する計算式を挿入する(ステップ6
3)。ダミー変数は、透かしの改ざん防止のためだけに
用いるものである。ダミー変数の計算式は、入れ替える
命令文で使われている変数を参照することとする。な
お、ダミー変数の計算結果は、プログラムの仕様や、透
かし情報自体とは何ら関連性がない。計算式を挿入する
と、透かし挿入部117は、入替え可能な命令文をラン
ダムに入れ替える(ステップ64)。
【0031】図7は、ステップ63とステップ64にお
ける透かし挿入処理の説明図である。命令文71、命令
文72および命令文73は透かし挿入可能領域である。
ステップ63において、命令文71と命令文72との間
に、ダミー変数に関する計算式74が挿入される。ま
た、命令文72と命令文73との間に、ダミー変数に関
する計算式75が挿入される。計算式74と計算式75
は、命令文71、命令文72および命令文73で使われ
ている変数a、b、およびcを参照している。ステップ
64において、命令文71、命令文72および命令文7
3をランダムに入れ替える。
【0032】命令文を入れ替えると、透かし挿入部11
7は、ソースコードをコンパイルする(ステップ6
5)。ソースコードをコンパイルすると、透かし挿入部
117は、入替えた命令文の順序情報を透かし情報とし
て中央処理部114へ送る。中央処理部114は、送ら
れた透かし情報と、透かし情報に対応するプログラムI
Dと、入力されたユーザ情報とを透かし情報記憶部11
8へ送り、記憶させる(ステップ66)。
【0033】図8は、透かし情報記憶部118に記憶す
る透かし情報80の例である。透かし情報80は、プロ
グラムを識別するためのプログラムID81、入れ替え
た命令文の順序を表す命令文順序情報82、プログラム
配布先のユーザを識別するためのユーザID83、およ
び付加的な情報84から構成されている。ユーザID8
3は、透かし情報記憶部118が透かし情報80を記憶
させて保存する際、一意に割り当てる。付加的な情報8
4の例として、配布先のユーザの氏名、住所、電話番
号、メールアドレスなどが挙げられる。
【0034】図9は、命令文順序情報82の例である。
命令文順序情報82は、命令文のコードID91、命令
文に対応するアセンブラコード92、アセンブラコード
のアセンブラ行番号93から構成されている。透かし情
報80が送られると、透かし情報記憶部118は、透か
し情報80におけるプログラムID81と命令文順序情
報82が、すでに記憶されている透かし情報80と重複
していないかどうかをチェックする(ステップ67)。
重複している場合は、ステップ65に戻って命令文を入
れ替え直す。重複していない場合は、透かし情報記憶部
118は、送られた透かし情報80にユーザID83を
付加して透かし情報80を記憶して保存する(ステップ
68)。
【0035】この重複チェックの処理により、ユーザI
D毎に異なる透かしが挿入され、その透かし情報が記憶
部118に保存されることになる。
【0036】透かし情報80が記憶されると、中央処理
部114は、出力部113から透かしを挿入した実行形
式プログラムを出力して(ステップ69)処理を終了す
る。このようにして透かしを挿入した実行形式プログラ
ムはユーザに配布される。
【0037】次に、ユーザに配付した実行形式プログラ
ムから透かしを取り出す処理について図10の透かし取
り出しフロー図を用いて説明する。プログラムの作成者
は、透かしを取り出したいプログラムの実行形式ファイ
ルを入力部111から入力する(ステップ101)。さ
らに、プログラムIDを入力部111から入力する(ス
テップ102)。
【0038】実行形式プログラムとプログラムIDが入
力されると、中央処理部114は、入力されたプログラ
ムIDに基づいて、透かし情報記憶部118に保存して
おいた当該プログラムIDに対応する透かし情報80を
取り出し、前記実行形式プログラムと共に透かし取り出
し部119へ送る(ステップ103)。この場合、同じ
プログラムIDのプログラムを複数のユーザに配付した
場合には、そのプログラムIDを持つ全ての透かし情報
80が取り出されて透かし取り出し部119へ送られ
る。
【0039】実行形式プログラムと透かし情報80が送
られてくると、透かし取り出し部119は、実行形式プ
ログラムを逆アセンブルした後、透かしに用いた命令文
の順序を解析し、命令文順序情報82を生成する。この
場合、透かしに用いた命令文の範囲は、透かし情報記憶
部118から取り出した透かし情報80内の命令文順序
情報82におけるアセンブラ行番号93の範囲によって
分かる。
【0040】命令文順序情報82を生成したならば、透
かし取り出し部119は、生成した命令文順序情報82
と透かし情報記憶部118から取り出した透かし情報8
0内の命令文順序情報82とを照合し、両者が一致する
(または同じ意味を持つ)命令文順序情報82を持つ透
かし情報80を選択抽出し、その選択抽出した透かし情
報80を中央処理部114へ送る(ステップ104)。
【0041】図11は、ステップ103とステップ10
4における透かし取り出し処理の説明図である。実行形
式プログラムが逆アセンブルされると、命令文の順序が
解析されて、命令文順序情報82が生成される。そし
て、生成された命令文順序情報82と透かし情報記憶部
118から取り出した透かし情報80内の命令文順序情
報82とが照合され、両者が一致する(または同じ意味
を持つ)命令文順序情報82を持つ透かし情報80が選
択抽出され、その選択抽出された透かし情報80内のユ
ーザID83や付加的な情報84が取り出される。
【0042】中央処理部114は、取り出されたユーザ
ID83や付加的な情報84を表示部112に表示して
(ステップ105)処理を終了する。
【0043】このように本実施形態では、命令文の順序
を透かしとしてプログラムに挿入している。従って、不
正なユーザが、プログラムの仕様を変えずに透かしを改
ざんするためには、透かし挿入可能領域の命令文を入れ
替える必要がある。ところが、透かし挿入可能領域の命
令文を入れ替えると、ダミー変数の計算結果が変わって
しまう。図7の例では、命令文入れ替え前はダミー変数
dの計算結果は「2」であるが、命令文入れ替え後はダ
ミー変数dの計算結果は「−4」となる。このため、不
正なユーザが透かし挿入可能領域の命令文を入れ替えた
としても、不正なユーザにとっては命令文入れ替え後も
プログラムの仕様が保たれているかどうかがわかりにく
くなり、プログラム仕様を犠牲にしてまで改ざんしよう
とする行為を断念せざるを得なくなり、実質的に不正使
用を抑制することが可能になる。
【0044】一方、「透かし」を改ざんし得たとして
も、作成者はその改ざん後のプログラムを解析し、作成
者側に保存してある透かし情報と照合することによって
改ざんされたものであることを直ちに発見することがで
きる。また、「透かし情報」に対し配付先別のユーザI
Dを付加して保存しておくことにより、不正コピーが多
数出回った場合でも、その不正コピーの「透かし」を取
り出し、その「透かし」に対応するユーザIDを調べる
ことにより、不正コピー元を直ちに特定することができ
る。この結果、作成者でない者によるコンピュータプロ
グラムの不正利用を抑止することが可能になる。また、
透かし挿入後に難読化を施せば、不正なユーザがプログ
ラムを解析することがより一層困難になり、不正利用を
抑制する上でさらに効果的である。なお、上記実施形態
において、透かし挿入システム110における透かし挿
入可能領域検出機能、透かし挿入可能領域記憶機能、透
かし挿入機能、透かし情報記憶機能、透かし取り出し機
能は、中央処理部114で実行可能なコンピュータプロ
グラムで構成されるものであるが、これらの機能を構成
するプログラムの全部または一部をCD−ROM等の記
憶媒体に記録し、あるいはインターネット等の通信媒体
を介して有料でプログラム作成者に提供することができ
る。上記機能をプログラム作成者のコンピュータで実行
することにより、それぞれのプログラム作成者が作成し
たコンピュータプログラムに対し独自の「透かし」を挿
入し、不正利用を抑止し、著作権の保護に貢献すること
ができる。
【0045】
【発明の効果】以上説明したように、本発明の透かし挿
入方法を用いれば、プログラム仕様を犠牲にしてまで改
ざんしようとする行為を断念せざるを得なくなり、不正
使用を安価な構成で抑制することが可能になる。また、
「透かし」を改ざんし得たとしても、作成者はその改ざ
ん後のプログラムを解析し、作成者側に保存してある
「透かし情報」と照合することによって改ざんされたも
のであることを直ちに発見することができる。さらに、
「透かし情報」に対し配付先別のユーザIDを付加して
保存しておくことにより、不正コピーが多数出回った場
合でも、その不正コピーの「透かし」を取り出し、その
「透かし」に対応するユーザIDを調べることにより、
不正コピー元を直ちに特定することができる。この結
果、作成者でない者によるコンピュータプログラムの不
正利用を抑止することが可能になる。また、透かし挿入
後に難読化を施せば、不正なユーザがプログラムを解析
することがより一層困難になり、不正利用を抑制する上
でさらに効果的である。
【図面の簡単な説明】
【図1】本発明の実施形態を示すシステム構成図であ
る。
【図2】図1の実施形態における透かし挿入可能領域検
出フロー図である。
【図3】図1の実施形態における透かし挿入可能領域検
出処理の説明図である。
【図4】図1の実施形態における透かし挿入可能領域情
報を示す図である。
【図5】図1の実施形態における透かし挿入可能領域を
示す図である。
【図6】図1の実施形態における透かし挿入フロー図で
ある。
【図7】図1の実施形態における透かし挿入処理の説明
図である。
【図8】図1の実施形態における透かし情報を示す図で
ある。
【図9】図1の実施形態における命令文順序を示す図で
ある。
【図10】図1の実施形態における透かし取り出しフロ
ー図である。
【図11】図1の実施形態における透かし取り出し処理
の説明図である。
【符号の説明】
80…透かし情報、82…命令文順序情報、83…ユー
ザID、110…透かし挿入システム、111…入力
部、112…表示部、113…出力部、114…中央処
理部、115…透かし挿入可能領域検出部、116…透
かし挿入可能領域記憶部、117…透かし挿入部、11
8…透かし情報記憶部、119…透かし取り出し部。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータを用いて透かしを挿入した
    いプログラムのソースコードから、順序を入れ替えても
    プログラムの仕様に影響がない命令文を複数個取り出
    し、その命令文と命令文との間に、ダミー変数に関する
    計算式を挿入し、命令文同士をランダムに入れ替え、入
    れ替えた命令文の順序を透かし情報として保存すること
    を特徴とするプログラムへの透かしの挿入方法。
  2. 【請求項2】 前記透かし情報に対し配付先別の識別情
    報を付加して記憶装置に保存しておくことを特徴とする
    請求項1記載のプログラムへの透かしの挿入方法。
  3. 【請求項3】 前記命令文を入れ替えたソースコードを
    コンパイルした際に生成されたアセアセンブラコードに
    難読化を施すことを特徴とする請求項1または2記載の
    プログラムへの透かしの挿入方法。
  4. 【請求項4】 プログラムのソースコードを入力する入
    力手段と、配付先ユーザの識別情報等を表示する表示手
    段と、透かしの挿入に関する全体の処理を制御する制御
    手段と、前記入力手段により入力されたプログラムのソ
    ースコードから透かしを挿入できる部分を検出する検出
    手段と、検出した透かしの挿入可能部分を記憶する第1
    の記憶手段と、検出した透かしの挿入可能部分に透かし
    を挿入する透かし挿入手段と、挿入した透かしに関する
    情報を記憶する第2の記憶手段と、透かしを挿入した実
    行形式プログラムを出力する出力手段と、実行形式プロ
    グラムから透かしを取り出す手段とを備えることを特徴
    とする透かし挿入システム。
  5. 【請求項5】 プログラムに透かしを挿入するための透
    かし挿入用プログラムを記録した記録媒体であって、 透かしを挿入したいプログラムのソースコードから、透
    かしを挿入できる部分を検出する第1の処理と、 この第1の処理で検出した部分に透かしを挿入する第2
    の処理と、 挿入した透かしに関する情報を記憶装置に記憶する第3
    の処理と、 透かしを挿入した実行形式プログラムを出力する第4の
    処理と、 実行形式プログラムから透かしを取り出す第5の処理
    と、を含むコンピュータが実行可能な透かし挿入用プロ
    グラムが記録されていることを特徴とする透かし挿入処
    理用記録媒体。
JP24696298A 1998-09-01 1998-09-01 プログラムへの透かしの挿入方法及びシステム Expired - Fee Related JP3865347B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24696298A JP3865347B2 (ja) 1998-09-01 1998-09-01 プログラムへの透かしの挿入方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24696298A JP3865347B2 (ja) 1998-09-01 1998-09-01 プログラムへの透かしの挿入方法及びシステム

Publications (2)

Publication Number Publication Date
JP2000076064A true JP2000076064A (ja) 2000-03-14
JP3865347B2 JP3865347B2 (ja) 2007-01-10

Family

ID=17156323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24696298A Expired - Fee Related JP3865347B2 (ja) 1998-09-01 1998-09-01 プログラムへの透かしの挿入方法及びシステム

Country Status (1)

Country Link
JP (1) JP3865347B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004038531A2 (en) * 2002-10-25 2004-05-06 Matsushita Electric Industrial Co., Ltd. Watermark insertion apparatus and watermark extraction apparatus
JP2005173903A (ja) * 2003-12-10 2005-06-30 Japan Science & Technology Agency プログラム認証システム
JP2005235076A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd コンピュータシステム、中央装置及びプログラム実行方法
JP2006318464A (ja) * 2005-05-12 2006-11-24 Xerox Corp 実行可能コードのコピーについての固有の識別を生成する方法及びその管理
JP2006318465A (ja) * 2005-05-12 2006-11-24 Xerox Corp 実行可能コードのコピーについての固有の識別を生成する方法及びその管理
JP2007503038A (ja) * 2003-08-20 2007-02-15 マクロヴィジョン ヨーロッパ リミテッド コード難読化およびエミュレーションによるプロセッサ制御
US7552092B2 (en) 2003-08-28 2009-06-23 Panasonic Corporation Program distribution method and system
JP2012032900A (ja) * 2010-07-29 2012-02-16 Kddi Corp ソフトウェアの不正配布検出装置、ソフトウェアの不正配布検出方法およびプログラム
JP2012043322A (ja) * 2010-08-23 2012-03-01 Kddi Corp ソフトウェアの不正流用検出装置、ソフトウェアの不正流用検出方法およびプログラム
US8225077B2 (en) 2008-03-25 2012-07-17 Panasonic Corporation Obfuscation device for generating a set of obfuscated instructions, processing device, method, program, and integrated circuit thereof

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004038531A3 (en) * 2002-10-25 2004-11-25 Matsushita Electric Ind Co Ltd Watermark insertion apparatus and watermark extraction apparatus
WO2004038531A2 (en) * 2002-10-25 2004-05-06 Matsushita Electric Industrial Co., Ltd. Watermark insertion apparatus and watermark extraction apparatus
JP4688805B2 (ja) * 2003-08-20 2011-05-25 マクロヴィジョン ヨーロッパ リミテッド コード難読化およびエミュレーションによるプロセッサ制御
JP2007503038A (ja) * 2003-08-20 2007-02-15 マクロヴィジョン ヨーロッパ リミテッド コード難読化およびエミュレーションによるプロセッサ制御
US7552092B2 (en) 2003-08-28 2009-06-23 Panasonic Corporation Program distribution method and system
JP2005173903A (ja) * 2003-12-10 2005-06-30 Japan Science & Technology Agency プログラム認証システム
JP4497450B2 (ja) * 2003-12-10 2010-07-07 独立行政法人科学技術振興機構 プログラム認証システム
JP2005235076A (ja) * 2004-02-23 2005-09-02 Fujitsu Ltd コンピュータシステム、中央装置及びプログラム実行方法
JP4514473B2 (ja) * 2004-02-23 2010-07-28 富士通株式会社 コンピュータシステム、中央装置及びプログラム実行方法
US7865961B2 (en) 2004-02-23 2011-01-04 Fujitsu Limited Computer system, central unit, and program execution method
JP2006318465A (ja) * 2005-05-12 2006-11-24 Xerox Corp 実行可能コードのコピーについての固有の識別を生成する方法及びその管理
JP2006318464A (ja) * 2005-05-12 2006-11-24 Xerox Corp 実行可能コードのコピーについての固有の識別を生成する方法及びその管理
US8225077B2 (en) 2008-03-25 2012-07-17 Panasonic Corporation Obfuscation device for generating a set of obfuscated instructions, processing device, method, program, and integrated circuit thereof
JP2012032900A (ja) * 2010-07-29 2012-02-16 Kddi Corp ソフトウェアの不正配布検出装置、ソフトウェアの不正配布検出方法およびプログラム
JP2012043322A (ja) * 2010-08-23 2012-03-01 Kddi Corp ソフトウェアの不正流用検出装置、ソフトウェアの不正流用検出方法およびプログラム

Also Published As

Publication number Publication date
JP3865347B2 (ja) 2007-01-10

Similar Documents

Publication Publication Date Title
JP3243331B2 (ja) ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体
US20040202324A1 (en) Program electronic watermark processing apparatus
AU716912B2 (en) Electronic copy protection mechanism
US5995625A (en) Electronic cryptographic packing
US7937693B2 (en) System and method for obfuscation of reverse compiled computer code
JPH08221268A (ja) マルチメディア・タイトルの保護頒布のための方法及びシステム
KR20010043172A (ko) 아날로그 문서의 디지털 인증
JP5285188B2 (ja) デジタルワークの分配及び利用を制御するためのシステム
JP2005085188A (ja) プログラム保護方法、プログラム保護プログラムおよびプログラム保護装置
JP2000076064A (ja) プログラムへの透かしの挿入方法及びシステム
JPH1031587A (ja) データ端末装置およびコンピュータプログラム
US8661559B2 (en) Software control flow watermarking
US20050289358A1 (en) Method and system for sensitive information protection in structured documents
JP3765145B2 (ja) 電子情報配布方法
JP2006195826A (ja) ソフトウェアプロテクト方法及びソフトウェアプロテクト機能を有する事務コンピュータ
Mambo et al. Fingerprints for copyright software protection
CN112470150A (zh) 控制方法、内容管理系统、程序及数据结构
CN107577715B (zh) So文件的保护方法及装置
JP2002032290A (ja) 検査方法及び検査システム
JP2002152486A (ja) ベクトル型画像データのための電子透かし処理方法及び電子透かし情報管理システム
JP2005167607A (ja) 画像処理システム
CN115296821B (zh) 一种用于数字藏品管理的数据处理系统
KR101172669B1 (ko) 온라인 워터마크 서비스 시스템
CN117009931A (zh) 水印添加和水印应用方法、装置、设备及存储介质
JP2007316792A (ja) 電子鍵システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060911

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061002

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees