(57)【特許請求の範囲】
【請求項１】
コンピュータに実装した透かし挿入可能領域検出手段が、透かし挿入対象のプログラムのソースコードを受け付け、当該ソースコードから、順序を入れ替えてもプログラムの仕様に影響がない命令文を複数個取り出し、当該命令文の記述行を透かし挿入可能領域として第１の記憶手段に記憶する第１のステップと、
コンピュータに実装した透かし挿入手段が、前記第１の記憶手段に記憶された透かし挿入可能領域内の命令文と命令文との間に、ダミー変数に関する計算式を挿入し、命令文同士をランダムに入れ替え、入れ替えた命令文の順序情報と命令文を入れ替えたソースコードをコンパイルした実行形式プログラムの配付先別の識別情報とを透かし情報として第２の記憶手段に保存する第２のステップと
を備えることを特徴とするプログラムへの透かしの挿入方法。
【請求項２】
コンピュータに実装した透かし取り出し手段が、前記実行形式プログラムを入力とし、その入力された前記実行形式プログラムを逆アセンブルした後、命令文の順序を解析し、その解析結果の命令文の順序情報と前記第２の記憶手段に保存された透かし情報中の入れ替え命令文の順序情報とを照合し、前記入力された実行形式プログラムに関する透かし情報を取り出す第３のステップとをさらに備えることを特徴とする請求項１に記載のプログラムへの透かしの挿入方法。
【請求項３】
透かし挿入対象のプログラムのソースコードを受け付け、当該ソースコードから、順序を入れ替えてもプログラムの仕様に影響がない命令文を複数個取り出し、当該命令文の記述行を透かし挿入可能領域として第１の記憶手段に記憶する透かし挿入可能領域検出手段と、
前記第１の記憶手段に記憶された透かし挿入可能領域内の命令文と命令文との間に、ダミー変数に関する計算式を挿入し、命令文同士をランダムに入れ替え、入れ替えた命令文の順序情報と命令文を入れ替えたソースコードをコンパイルした実行形式プログラムの配付先別の識別情報とを透かし情報として第２の記憶手段に保存する透かし挿入手段と
を備えることを特徴とするプログラムへの透かしの挿入システム。
【請求項４】
前記実行形式プログラムを入力とし、その入力された前記実行形式プログラムを逆アセンブルした後、命令文の順序を解析し、その解析結果の命令文の順序情報と前記第２の記憶手段に保存された透かし情報中の入れ替え命令文の順序情報とを照合し、前記実行形式プログラムに関する透かし情報を取り出す透かし取り出し手段とをさらに備えることを特徴とする請求項３に記載のプログラムへの透かしの挿入システム。
【請求項５】
プログラムに透かしを挿入するための透かし挿入用プログラムを記録した記録媒体であって、
透かし挿入対象のプログラムのソースコードを受け付け、当該ソースコードから、順序を入れ替えてもプログラムの仕様に影響がない命令文を複数個取り出し、当該命令文の記述行を透かし挿入可能領域として第１の記憶手段に記憶する第１のステップと、
前記第１の記憶手段に記憶された透かし挿入可能領域内の命令文と命令文との間に、ダミー変数に関する計算式を挿入し、命令文同士をランダムに入れ替え、入れ替えた命令文の順序情報と命令文を入れ替えたソースコードをコンパイルした実行形式プログラムの配付先別の識別情報とを透かし情報として第２の記憶手段に保存する第２のステップと、
前記実行形式プログラムを入力とし、その入力された前記実行形式プログラムを逆アセンブルした後、命令文の順序を解析し、その解析結果の命令文の順序情報と前記第２の記憶手段に保存された透かし情報中の入れ替え命令文の順序情報とを照合し、前記入力された実行形式プログラムに関する透かし情報を取り出す第３のステップと
をコンピュータに実行させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータプログラムの不正コピー等による不正行為があった場合に、その不正行為の発生源を特定可能にする透かしの挿入方法及びシステムに関するものである。
【０００２】
【従来の技術】
情報化の発展、コンピュータの普及により、コンピュータプログラムの重要性は増加している。コンピュータプログラムの最も特筆すべき特徴は、それ自体がデジタル情報であり、オリジナルと同品質のコピーを高速かつ安価に製造できるという生産性にある。しかしながら、そういった利点がある反面、不正コピー、プログラムコードやアルゴリズムの盗用、改ざんといった不正利用が容易に行われてしまう危険性がある。こういった背景から、作成者でない者によるコンピュータプログラム（ソフトウェア）の不正利用を防止できる環境を作る必要があると考えられる。
【０００３】
現在提案されている主なソフトウェア保護手法としては、例えば特開平８−９５７７７号公報「ソフトウェア利用制御装置」に開示れているように、各種のコンテンツをネットワークを通じて有料で流通させる、いわゆる「超流通」などの形態において特別なハードウェア（サーバコンピュータ）を使った方法や、特開平１０−２７１２３号公報「コンピュータソフトウェアのコピープロテクト方法」に開示されているように、コピープロテクトをかける方法などが挙げられる。
【０００４】
【発明が解決しようとする課題】
しかしながら、「超流通」による方法では、コストが嵩むという問題がある。また、コピープロテクトのように記録媒体を用いる方法では、ネットワークを介してコンピュータプログラムを配布する場合に利用できないという問題がある。作成者にとって安心できる環境を作るためには、低コストで、改ざんや盗用に強い耐タンパな性質をソフトウェア自身に持たせる必要がある。しかし、現実にはコンピュータプログラムはデジタル情報であるため、コピーなどを容易に行うことが可能であり、不正利用自身を防ぐのは難しいと考えられる。
【０００５】
本発明の目的は、不正利用自体を防ぐのではなく、不正利用が発覚した際に、その発生源（不正コピー者）を容易に特定できるような仕掛けをコンピュータプログラムに具備させることによって、作成者でない者による不正利用を安価な構成で抑止することができるコンピュータプログラムへの透かし挿入方法及びシステムを提供することにある。
【０００６】
【課題を解決するための手段】
前記目的を達成するために、本発明では、現在、画像などの不正利用を防止する技術として使われている電子透かし手法の考え方をコンピュータプログラムに応用する。電子透かし手法とは、例えば特開平９−１９１３９４号公報「電子的すかし挿入方法」に示されているように、画像、音声などの著作権を保護する技術の１つであり、画像、音声データの中にＩＤ情報を埋め込むことにより画像データの流用、無断転載などの不正利用を防ぐ手法である。
【０００７】
前記電子透かし手法の特徴は、
１．ＩＤを埋め込んだことによりデータが劣化しない
２．ユーザが埋め込まれたＩＤを取り除くとデータが劣化する（ユーザがＩＤを取り除けない）という点にある。
【０００８】
本発明のプログラムへの透かし挿入方法は、透かしを挿入したいプログラムのソースコードから、互いに順序を入れ替えてもプログラムの仕様に影響がない命令文をいくつか選び、その命令文と命令文との間に、ダミー変数に関する計算式を挿入した後、命令文同士をランダムに入れ替え、その入れ替えた命令文の順序を透かし情報として保存することを特徴とする。
【０００９】
本発明における「透かし」とは、プログラムの仕様に影響を与えず、かつ作成者にとっては意味があるが、利用者側にとっては無意味または存在すること自体が分からないような情報を挿入することである。本発明では、「透かし」の仕方として、ダミー変数を挿入し、そのダミー変数を挿入した命令文同士をランダムに入れ替えるという方法を採用している。
【００１０】
「透かし情報」とは、上記の方法によって挿入した「透かし」の仕方を表わす情報であり、本発明では、入れ替えた命令文の順序の情報を採用している。
【００１１】
入替え可能な命令文としては、例えば変数の代入文がある。ダミー変数は、不正なユーザによるプログラムの解析を困難にして、透かしの改ざんを防ぐために用いるものである。
【００１２】
また、ダミー変数に関する計算式は、入替え可能な命令文で使われている変数を参照することとする。さらに、不正なユーザによるプログラムの解析をより困難にするために、命令文を入れ替えた後ソースコードをコンパイルした際に、生成されたアセンブラコードに対して難読化を施してもよい。難読化とは、例えば電子情報通信学会論文誌Ｖｏｌ．Ｊ８０−Ｄ−Ｉ  Ｎｏ．７「ループを含むプログラムを難読化する方法の提案」（門田、高田、鳥居）に示されているように、プログラムの仕様を保ちながらその解析を困難にする変換のことである。
【００１３】
上記の手段によって、不正なユーザが「透かし」を改ざんしようとして命令文を入れ替えると、ダミー変数の計算式が入れ替えた命令文で使われている変数を参照していることにより、ダミー変数の計算結果が変わってしまう。よって、不正なユーザにとっては、「透かし」を改ざんすると、プログラムの仕様が保たれているかどうかがわかりにくくなり、プログラム仕様を犠牲にしてまで改ざんしようとする行為を断念せざるを得なくなり、実質的に不正使用を抑制することが可能になる。
【００１４】
一方、「透かし」を改ざんし得たとしても、作成者はその改ざん後のプログラムを解析し、作成者側に保存してある透かし情報と照合することによって改ざんされたものであることを直ちに発見することができる。
【００１５】
また、前記の「透かし情報」に対し配付先別のユーザＩＤを付加して保存しておくことにより、不正コピーが多数出回った場合でも、その不正コピーの「透かし情報」を取り出し、その「透かし情報」に対応するユーザＩＤを調べることにより、不正コピー元を直ちに特定することができる。この結果、作成者でない者によるコンピュータプログラムの不正利用を抑止することが可能になる。
【００１６】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用いて説明する。
【００１７】
図１は、本発明を適用した透かし挿入システムの一実施形態を示すシステム構成図である。
【００１８】
本実施形態の透かし挿入システム１１０は、入力部１１１、表示部１１２、出力部１１３、中央処理部１１４、透かし挿入可能領域検出部１１５、透かし挿入可能領域記憶部１１６、透かし挿入部１１７、透かし情報記憶部１１８、透かし取り出し部１１９から構成されており、透かし挿入可能領域の検出、透かしの挿入、透かし情報の取り出しなどの処理を行う。
【００１９】
入力部１１１は、透かしを挿入したいプログラムのソースコードなどを入力するためのものである。表示部１１２は、透かし情報などを表示するためのものである。出力部１１３は、透かしを挿入した実行形式プログラムなどを出力するためのものである。中央処理部１１４は、透かし挿入可能領域の検出、透かしの挿入、透かしの取り出しなどの処理を制御する。
【００２０】
透かし挿入可能領域検出部１１５は、プログラムのソースコードから透かしを挿入できる部分を検出する。透かし挿入可能領域記憶部１１６は、プログラムのソースコードのうち透かしを挿入できる部分を記憶する。透かし挿入部１１７は、プログラムのソースコードに透かしを挿入し、ソースコードをコンパイルする。透かし情報記憶部１１８は、挿入した透かしの情報を記憶する。透かし取り出し部１１９は、実行形式プログラムから透かしを取り出す。
【００２１】
本実施形態の透かし挿入システム１１０は、次に挙げる３つの特徴的な処理を行う。
【００２２】
（１）透かし挿入可能領域の検出
（２）透かしの挿入
（３）透かしの取り出し
透かし挿入可能領域の検出処理は、挿入対象のプログラム中に透かしを挿入できる場所を検出するための処理であり、挿入対象のプログラムに透かしを実際に挿入する前に、最初に１回だけ行う。透かしの挿入処理は、配布先のユーザを識別するＩＤを埋め込むための処理であり、配布対象のプログラムをユーザに配布するたびに作成者の管理化または作成者の委任を受けた管理者の管理下で行う。
【００２３】
透かしの取り出し処理は、プログラムの配布先のユーザを特定するための処理であり、プログラムの不正利用を調査するときに行う。プログラムの配布先を特定したい場合の例としては、プログラムの不正コピーが出回っており、不正コピーの出所を突き止めたい場合などがある。以下３つの処理について詳しく説明する。
【００２４】
まずはじめに、透かし挿入可能領域の検出処理について図２の透かし挿入可能領域検出フロー図を用いて説明する。
プログラムの作成者は、透かしを挿入したいプログラムのソースコードを入力部１１１から入力する（ステップ２１）。
プログラムのソースコードが入力されると、中央処理部１１４は、入力されたプログラムに対してプログラムＩＤを一意に割り当てる（ステップ２２）。
プログラムＩＤを割り当てると、中央処理部１１４は、ソースコードを透かし挿入可能領域検出部１１５へ送る。透かし挿入可能領域検出部１１５は、送られたソースコードを解析して、相互に入れ替えてもプログラムの仕様に影響がないような命令文の組を検出する（ステップ２３）。
【００２５】
図３は、ステップ２３における透かし挿入可能領域検出処理の説明図である。図３において、命令文３１、命令文３２および命令文３３は、それぞれ異なる変数を参照する代入文である。従って、命令文３１、命令文３２、命令文３３を相互に入れ替えてもプログラムの仕様に影響はない。
入替え可能な命令文を検出すると、透かし挿入可能領域検出部１１５は、命令文の情報を透かし挿入可能領域として中央処理部１１４へ送る。中央処理部１１４は、送られた透かし挿入可能領域と、この透かし挿入可能領域を含むプログラムのプログラムＩＤとを透かし挿入可能領域記憶部１１６へ送る（ステップ２４）。
【００２６】
図４は、透かし挿入可能領域記憶部１１６に記憶する透かし挿入可能領域情報の例である。透かし挿入可能領域情報４０は、プログラムを識別するためのプログラムＩＤ４１、プログラムのオリジナルソースコード４２、入替え可能な命令文を表す透かし挿入可能領域４３から構成されている。
【００２７】
図５は、透かし挿入可能領域４３の例を示すものであり、入替え可能な命令文のソースコード中のソース行番号５１、入替え可能な命令文５２、命令文を識別するためのコードＩＤ５３から構成されている。なお、この図５の例は図３の命令文に対応している。
なお、図３の例では、透かし挿入可能領域４３は１箇所だけであるが、２箇所以上あってもよい。ただし、その場合は、コードＩＤ５３の表記を工夫して（例、Ａ１、Ａ２、…、Ｂ１、Ｂ２、…）、どの命令文が相互に入替え可能であるかを識別できるようにしておく必要がある。
【００２８】
透かし挿入可能領域情報４０を送ると、中央処理部１１４は、表示部１１２に割り当てたプログラムＩＤを表示して（ステップ２５）処理を終了する。プログラムＩＤは、透かしの挿入処理の際、透かし挿入システム１１０に透かしを挿入したいプログラムを識別させるために、プログラムの作成者が入力する情報である。このため、プログラムの作成者は、表示されたプログラムＩＤを記録しておく必要がある。
【００２９】
次に、透かしの挿入処理について図６の透かし挿入フロー図を用いて説明する。
プログラムの作成者は、透かしを挿入したいプログラムのプログラムＩＤと、プログラムの配布先のユーザ情報を入力部１１１から入力する（ステップ６１）。
プログラムＩＤとユーザ情報が入力されると、中央処理部１１４は、入力されたプログラムＩＤに基づいて、透かし挿入可能領域記憶部１１６から透かし挿入可能領域情報４０を参照し、その透かし挿入可能領域情報４０を透かし情報挿入部１１７へ送る（ステップ６２）。
【００３０】
透かし挿入可能領域情報４０が送られてくると、透かし挿入部１１７は、前記透かし挿入可能領域情報４０に基づいて入れ替え可能な命令文と命令文の間にダミー変数に関する計算式を挿入する（ステップ６３）。ダミー変数は、透かしの改ざん防止のためだけに用いるものである。ダミー変数の計算式は、入れ替える命令文で使われている変数を参照することとする。なお、ダミー変数の計算結果は、プログラムの仕様や、透かし情報自体とは何ら関連性がない。
計算式を挿入すると、透かし挿入部１１７は、入替え可能な命令文をランダムに入れ替える（ステップ６４）。
【００３１】
図７は、ステップ６３とステップ６４における透かし挿入処理の説明図である。命令文７１、命令文７２および命令文７３は透かし挿入可能領域である。ステップ６３において、命令文７１と命令文７２との間に、ダミー変数に関する計算式７４が挿入される。また、命令文７２と命令文７３との間に、ダミー変数に関する計算式７５が挿入される。計算式７４と計算式７５は、命令文７１、命令文７２および命令文７３で使われている変数ａ、ｂ、およびｃを参照している。ステップ６４において、命令文７１、命令文７２および命令文７３をランダムに入れ替える。
【００３２】
命令文を入れ替えると、透かし挿入部１１７は、ソースコードをコンパイルする（ステップ６５）。
ソースコードをコンパイルすると、透かし挿入部１１７は、入替えた命令文の順序情報を透かし情報として中央処理部１１４へ送る。中央処理部１１４は、送られた透かし情報と、透かし情報に対応するプログラムＩＤと、入力されたユーザ情報とを透かし情報記憶部１１８へ送り、記憶させる（ステップ６６）。
【００３３】
図８は、透かし情報記憶部１１８に記憶する透かし情報８０の例である。透かし情報８０は、プログラムを識別するためのプログラムＩＤ８１、入れ替えた命令文の順序を表す命令文順序情報８２、プログラム配布先のユーザを識別するためのユーザＩＤ８３、および付加的な情報８４から構成されている。ユーザＩＤ８３は、透かし情報記憶部１１８が透かし情報８０を記憶させて保存する際、一意に割り当てる。付加的な情報８４の例として、配布先のユーザの氏名、住所、電話番号、メールアドレスなどが挙げられる。
【００３４】
図９は、命令文順序情報８２の例である。命令文順序情報８２は、命令文のコードＩＤ９１、命令文に対応するアセンブラコード９２、アセンブラコードのアセンブラ行番号９３から構成されている。
透かし情報８０が送られると、透かし情報記憶部１１８は、透かし情報８０におけるプログラムＩＤ８１と命令文順序情報８２が、すでに記憶されている透かし情報８０と重複していないかどうかをチェックする（ステップ６７）。
重複している場合は、ステップ６５に戻って命令文を入れ替え直す。
重複していない場合は、透かし情報記憶部１１８は、送られた透かし情報８０にユーザＩＤ８３を付加して透かし情報８０を記憶して保存する（ステップ６８）。
【００３５】
この重複チェックの処理により、ユーザＩＤ毎に異なる透かしが挿入され、その透かし情報が記憶部１１８に保存されることになる。
【００３６】
透かし情報８０が記憶されると、中央処理部１１４は、出力部１１３から透かしを挿入した実行形式プログラムを出力して（ステップ６９）処理を終了する。このようにして透かしを挿入した実行形式プログラムはユーザに配布される。
【００３７】
次に、ユーザに配付した実行形式プログラムから透かしを取り出す処理について図１０の透かし取り出しフロー図を用いて説明する。
プログラムの作成者は、透かしを取り出したいプログラムの実行形式ファイルを入力部１１１から入力する（ステップ１０１）。さらに、プログラムＩＤを入力部１１１から入力する（ステップ１０２）。
【００３８】
実行形式プログラムとプログラムＩＤが入力されると、中央処理部１１４は、入力されたプログラムＩＤに基づいて、透かし情報記憶部１１８に保存しておいた当該プログラムＩＤに対応する透かし情報８０を取り出し、前記実行形式プログラムと共に透かし取り出し部１１９へ送る（ステップ１０３）。この場合、同じプログラムＩＤのプログラムを複数のユーザに配付した場合には、そのプログラムＩＤを持つ全ての透かし情報８０が取り出されて透かし取り出し部１１９へ送られる。
【００３９】
実行形式プログラムと透かし情報８０が送られてくると、透かし取り出し部１１９は、実行形式プログラムを逆アセンブルした後、透かしに用いた命令文の順序を解析し、命令文順序情報８２を生成する。この場合、透かしに用いた命令文の範囲は、透かし情報記憶部１１８から取り出した透かし情報８０内の命令文順序情報８２におけるアセンブラ行番号９３の範囲によって分かる。
【００４０】
命令文順序情報８２を生成したならば、透かし取り出し部１１９は、生成した命令文順序情報８２と透かし情報記憶部１１８から取り出した透かし情報８０内の命令文順序情報８２とを照合し、両者が一致する（または同じ意味を持つ）命令文順序情報８２を持つ透かし情報８０を選択抽出し、その選択抽出した透かし情報８０を中央処理部１１４へ送る（ステップ１０４）。
【００４１】
図１１は、ステップ１０３とステップ１０４における透かし取り出し処理の説明図である。実行形式プログラムが逆アセンブルされると、命令文の順序が解析されて、命令文順序情報８２が生成される。そして、生成された命令文順序情報８２と透かし情報記憶部１１８から取り出した透かし情報８０内の命令文順序情報８２とが照合され、両者が一致する（または同じ意味を持つ）命令文順序情報８２を持つ透かし情報８０が選択抽出され、その選択抽出された透かし情報８０内のユーザＩＤ８３や付加的な情報８４が取り出される。
【００４２】
中央処理部１１４は、取り出されたユーザＩＤ８３や付加的な情報８４を表示部１１２に表示して（ステップ１０５）処理を終了する。
【００４３】
このように本実施形態では、命令文の順序を透かしとしてプログラムに挿入している。従って、不正なユーザが、プログラムの仕様を変えずに透かしを改ざんするためには、透かし挿入可能領域の命令文を入れ替える必要がある。ところが、透かし挿入可能領域の命令文を入れ替えると、ダミー変数の計算結果が変わってしまう。図７の例では、命令文入れ替え前はダミー変数ｄの計算結果は「２」であるが、命令文入れ替え後はダミー変数ｄの計算結果は「−４」となる。このため、不正なユーザが透かし挿入可能領域の命令文を入れ替えたとしても、不正なユーザにとっては命令文入れ替え後もプログラムの仕様が保たれているかどうかがわかりにくくなり、プログラム仕様を犠牲にしてまで改ざんしようとする行為を断念せざるを得なくなり、実質的に不正使用を抑制することが可能になる。
【００４４】
一方、「透かし」を改ざんし得たとしても、作成者はその改ざん後のプログラムを解析し、作成者側に保存してある透かし情報と照合することによって改ざんされたものであることを直ちに発見することができる。
また、「透かし情報」に対し配付先別のユーザＩＤを付加して保存しておくことにより、不正コピーが多数出回った場合でも、その不正コピーの「透かし」を取り出し、その「透かし」に対応するユーザＩＤを調べることにより、不正コピー元を直ちに特定することができる。この結果、作成者でない者によるコンピュータプログラムの不正利用を抑止することが可能になる。
また、透かし挿入後に難読化を施せば、不正なユーザがプログラムを解析することがより一層困難になり、不正利用を抑制する上でさらに効果的である。
なお、上記実施形態において、透かし挿入システム１１０における透かし挿入可能領域検出機能、透かし挿入可能領域記憶機能、透かし挿入機能、透かし情報記憶機能、透かし取り出し機能は、中央処理部１１４で実行可能なコンピュータプログラムで構成されるものであるが、これらの機能を構成するプログラムの全部または一部をＣＤ−ＲＯＭ等の記憶媒体に記録し、あるいはインターネット等の通信媒体を介して有料でプログラム作成者に提供することができる。上記機能をプログラム作成者のコンピュータで実行することにより、それぞれのプログラム作成者が作成したコンピュータプログラムに対し独自の「透かし」を挿入し、不正利用を抑止し、著作権の保護に貢献することができる。
【００４５】
【発明の効果】
以上説明したように、本発明の透かし挿入方法を用いれば、プログラム仕様を犠牲にしてまで改ざんしようとする行為を断念せざるを得なくなり、不正使用を安価な構成で抑制することが可能になる。
また、「透かし」を改ざんし得たとしても、作成者はその改ざん後のプログラムを解析し、作成者側に保存してある「透かし情報」と照合することによって改ざんされたものであることを直ちに発見することができる。
さらに、「透かし情報」に対し配付先別のユーザＩＤを付加して保存しておくことにより、不正コピーが多数出回った場合でも、その不正コピーの「透かし」を取り出し、その「透かし」に対応するユーザＩＤを調べることにより、不正コピー元を直ちに特定することができる。この結果、作成者でない者によるコンピュータプログラムの不正利用を抑止することが可能になる。
また、透かし挿入後に難読化を施せば、不正なユーザがプログラムを解析することがより一層困難になり、不正利用を抑制する上でさらに効果的である。
【図面の簡単な説明】
【図１】本発明の実施形態を示すシステム構成図である。
【図２】図１の実施形態における透かし挿入可能領域検出フロー図である。
【図３】図１の実施形態における透かし挿入可能領域検出処理の説明図である。
【図４】図１の実施形態における透かし挿入可能領域情報を示す図である。
【図５】図１の実施形態における透かし挿入可能領域を示す図である。
【図６】図１の実施形態における透かし挿入フロー図である。
【図７】図１の実施形態における透かし挿入処理の説明図である。
【図８】図１の実施形態における透かし情報を示す図である。
【図９】図１の実施形態における命令文順序を示す図である。
【図１０】図１の実施形態における透かし取り出しフロー図である。
【図１１】図１の実施形態における透かし取り出し処理の説明図である。
【符号の説明】
８０…透かし情報、８２…命令文順序情報、８３…ユーザＩＤ、１１０…透かし挿入システム、１１１…入力部、１１２…表示部、１１３…出力部、１１４…中央処理部、１１５…透かし挿入可能領域検出部、１１６…透かし挿入可能領域記憶部、１１７…透かし挿入部、１１８…透かし情報記憶部、１１９…透かし取り出し部。
【図１】
0003865347.tif 000002
【図２】
0003865347.tif 000003
【図３】
0003865347.tif 000004
【図４】
0003865347.tif 000005
【図５】
0003865347.tif 000006
【図６】
0003865347.tif 000007
【図７】
0003865347.tif 000008
【図８】
0003865347.tif 000009
【図９】
0003865347.tif 000010
【図１０】
0003865347.tif 000011
【図１１】
0003865347.tif 000012