(57)【要約】【課題】電子的な透かし情報の埋込場所の解析および改竄の困難性と、透かし情報チェック時の手間の軽減の両立を図る。【解決手段】透かし情報データデコーダ２０との間で各種情報のやりとりを行う外部入出力端子１５Ａと、透かし情報を記憶するランダムロジック１２と、外部入出力端子１５Ａを介して入力された読出指示信号に基づいて、ランダムロジック１２から透かし情報を読み出し、読み出した透かし情報を予め設定された複数の出力フォーマットの内いずれか一つの出力フォーマットを用いて外部入出力端子１５Ａを介して出力する透かし情報データ出力器１６と、を備える。【選択図】図１
2010086168.tif 000002
【特許請求の範囲】
【請求項１】
外部機器との間で各種情報のやりとりを行う外部入出力端子と、
透かし情報を記憶する情報記憶部と、
前記外部入出力端子を介して入力された読出指示信号に基づいて、前記情報記憶部から
前記透かし情報を読み出し、読み出した前記透かし情報を予め設定された複数の出力フォ
ーマットの内いずれか一つの出力フォーマットを用いて前記外部入出力端子を介して出力
する透かし情報出力部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記読出指示信号は、前記予め設定された複数の出力フォーマットの内いずれかを指定
する情報を含み、
前記情報出力部は、前記指定された出力フォーマットにより前記透かし情報を出力する
ことを特徴とする情報処理装置。
【請求項３】
請求項１または請求項２記載の情報処理装置において、
前記透かし情報出力部は、前記透かし情報を出力するとともに、当該出力した透かし情
報の出力フォーマットを特定するためのフォーマット特定情報を出力することを特徴とす
る情報処理装置。
【請求項４】
請求項１または請求項３記載の情報処理装置において、
前記透かし情報出力部は、前記読出指示信号が入力されるたびに、用いる前記出力フォ
ーマットをランダムに選択することを特徴とする情報処理装置。
【請求項５】
請求項１または請求項４のいずれかに記載の情報処理装置において、
各種演算を行い、前記外部入出力端子を介して演算結果を出力する演算部を備え、
前記透かし情報出力部は、前記演算部および前記外部入出力端子を介して前記透かし情
報を出力することを特徴とする情報処理装置。
【請求項６】
請求項１ないし請求項５のいずれかに記載の情報処理装置において、
前記情報記憶部は、プログラムを記憶し、
前記プログラムを構成する各命令コードの不使用ビットに前記透かし情報を構成するビ
ットを書き込むことにより前記プログラムに前記透かし情報を埋め込むことを特徴とする
情報処理装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の情報処理装置において、
前記情報記憶部は、ランダムロジック回路として構成されていることを特徴とする情報
処理装置。
【請求項８】
外部機器との間で各種情報のやりとりを行う外部入出力端子と、透かし情報を記憶する
情報記憶部と、を備えた情報処理装置の制御方法において、
前記外部入出力端子を介して入力された読出指示信号に基づいて、前記情報記憶部から
前記透かし情報を読み出す情報読出過程と、
読み出した前記透かし情報を予め設定された複数の出力フォーマットの内いずれか一つ
の出力フォーマットを用いて外部入出力端子を介して出力する透かし情報出力過程と、
を備えたことを特徴とする情報処理装置の制御方法。
【請求項９】
外部機器との間で各種情報のやりとりを行う外部入出力端子と、透かし情報を記憶する
情報記憶部と、を備えた情報処理装置をコンピュータにより制御するための制御プログラ
ムにおいて、
前記外部入出力端子を介して入力された読出指示信号に基づいて、前記情報記憶部から
前記透かし情報を読み出させる機能と、
読み出した前記透かし情報を予め設定された複数の出力フォーマットの内いずれか一つ
の出力フォーマットを用いて外部入出力端子を介して出力させる機能と、
を前記コンピュータに実現させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
情報処理装置、情報処理装置の制御方法及び制御プログラムに係り、特に電子機器の出
所などを特定するために用いられる透かし情報を読み出すための技術に関する。
【背景技術】
【０００２】
従来、プログラム制作者とは別個のプログラム販売者が、販売対象のプログラムに自己
の電子署名を自由に追加して、当該販売対象のプログラムの出所を明らかにするに際し、
動作に影響を与えないダミーモジュールをプログラムに追加し、当該ダミーモジュール内
に電子署名を透かし情報として埋め込むものが提案されている（例えば、特許文献１参照
）。
【特許文献１】特開２００５−１００３４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来の手法によれば、プログラムに追加されたダミーモジュール内に電子署名とし
て透かし情報を埋め込む構成を採っているため、プログラムコードを解析して、実際の動
作に影響を与えない領域を特定することにより、透かし情報である電子署名の埋め込まれ
ている領域を容易に特定される可能性があり、電子署名を容易に改竄されるおそれがあっ
た。
ところで、ワンチップマイクロコンピュータ等の半導体装置の完成品から複製品を作成
する場合には、当該半導体装置のロジック回路をそのまま複製するのが一般的である。
【０００４】
したがって半導体装置にプログラム及び透かし情報（電子署名）を書き込むに当たって
は、電子的な透かし情報の埋込場所の解析を困難とし、透かし情報の改竄を困難とするた
めの手法として、透かし情報に対応する値を出力可能なロジック回路を組み込むことが考
えられる。
このような構成を採ることにより、正規品以外の複製品を容易に特定が可能となる。
しかしながら、このような構成を採った場合に、半導体装置が正規品の複製機器である
か否かを判別するためには、当該半導体装置から透かし情報を抽出する必要があり、この
ためには、一般的に以下の手順を踏む必要がある。
【０００５】
（１）複製機器の配線情報を顕微鏡写真などから取得し、ネットリストに落とし込む。
（２）得られたネットリストに対して、特定の条件でシミュレーションを行い、全レジ
スタの値をダンプする。
（３）ダンプされた全レジスタの値に基づいて、透かし情報に関連するレジスタ（例え
ば、プログラムカウントレジスタ、命令レジスタなど）を特定する。この場合にレジスタ
の値からレジスタを特定できるのは、設計時と同一の条件で動作させた場合に、設計時に
透かし情報に関連するレジスタにおいて得られた値と、同一の値を有するレジスタとなる
からである。
（４）特定したレジスタの値から埋め込んだ透かし情報を特定する。
【０００６】
上記手順によれば、透かし情報を抽出することは可能であるが、ネットリストを作成す
るのに膨大な時間とコストがかかってしまうという問題点が生じることとなる。
そこで、本発明の目的は、電子的な透かし情報の埋込場所の解析および改竄の困難性と
、透かし情報チェック時の手間の軽減の両立を図ることが可能な情報処理装置、情報処理
装置の制御方法及び制御プログラムならびに透かし情報を埋め込んだプログラムが記録さ
れた記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の第１態様は、外部機器との間で各種情報のやりとり
を行う外部入出力端子と、透かし情報を記憶する情報記憶部と、前記外部入出力端子を介
して入力された読出指示信号に基づいて、前記情報記憶部から前記透かし情報を読み出し
、読み出した前記透かし情報を予め設定された複数の出力フォーマットの内いずれか一つ
の出力フォーマットを用いて前記外部入出力端子を介して出力する透かし情報出力部と、
を備えたことを特徴としている。
【０００８】
上記構成によれば、情報記憶部は、透かし情報を記憶する。
情報出力部は、外部入出力端子を介して入力された読出指示信号に基づいて、情報記憶
部から透かし情報を読み出し、読み出した透かし情報を予め設定された複数の出力フォー
マットの内いずれか一つの出力フォーマットを用いて外部入出力端子を介して出力する。
したがって、読み出した透かし情報を予め設定された複数の出力フォーマットの内いず
れか一つの出力フォーマットを用いて外部入出力端子を介して出力することとなるので、
読み出しが容易にもかかわらず、出力フォーマットがわからなければ、解析は困難であり
、電子的な透かし情報の埋込場所の解析および改竄の困難性と、透かし情報チェック時の
手間の軽減の両立を図ることができる。
【０００９】
本発明の第２態様は、第１態様において、前記読出指示信号は、前記予め設定された複
数の出力フォーマットの内いずれかを指定する情報を含み、前記情報出力部は、前記指定
された出力フォーマットにより前記透かし情報を出力することを特徴とする。
上記構成によれば、ユーザの所望する出力フォーマットで、透かし情報を出力させるこ
とができる。
【００１０】
本発明の第３態様は、第１態様または第２態様において、前記透かし情報出力部は、前
記透かし情報を出力するとともに、当該出力した透かし情報の出力フォーマットを特定す
るためのフォーマット特定情報を出力することを特徴とする。
上記構成によれば、透かし情報が入力される装置側で容易に出力フォーマットを特定し
て透かし情報の抽出を迅速に行える。
【００１１】
本発明の第４態様は、第１態様または第３態様において、前記透かし情報出力部は、前
記読出指示信号が入力されるたびに、用いる前記出力フォーマットをランダムに選択する
ことを特徴とする。
上記構成によれば、読み出し指示信号が入力されるたびに出力フォーマットが変更され
るため、より一層、透かし情報の解析を困難とすることができる。
【００１２】
本発明の第５態様は、第１態様または第４態様において、各種演算を行い、前記外部入
出力端子を介して演算結果を出力する演算部を備え、前記透かし情報出力部は、前記演算
部および前記外部入出力端子を介して前記透かし情報を出力することを特徴とする。
上記構成によれば、透かし情報の出力経路が複数確保され、より確実に透かし情報を出
力することが可能となる。
【００１３】
本発明の第６態様は、第１態様ないし第５態様のいずれかにおいて、前記情報記憶部は
、プログラムを記憶し、前記プログラムを構成する各命令コードの不使用ビットに前記透
かし情報を構成するビットを書き込むことにより前記プログラムに前記透かし情報を埋め
込むことを特徴とする。
上記構成によれば、記憶容量の増大を招くこともなく、また、プログラムの実行に影響
を与えることもなく、透かし情報を埋込むことが可能となる。したがって、透かし情報の
解析及び改竄を困難とすることができる。
【００１４】
本発明の第７態様は、第１態様ないし第６態様のいずれかにおいて、前記情報記憶部は
、ランダムロジック回路として構成されていることを特徴とする。
上記構成によれば、透かし情報は、ランダムロジック回路に記憶されているので、その
解析および改竄が困難となる。
【００１５】
本発明の第８態様は、外部機器との間で各種情報のやりとりを行う外部入出力端子と、
透かし情報を記憶する情報記憶部と、を備えた情報処理装置の制御方法において、前記外
部入出力端子を介して入力された読出指示信号に基づいて、前記情報記憶部から前記透か
し情報を読み出す情報読出過程と、読み出した前記透かし情報を予め設定された複数の出
力フォーマットの内いずれか一つの出力フォーマットを用いて外部入出力端子を介して出
力する透かし情報出力過程と、を備えたことを特徴とする。
上記構成によれば、読み出した透かし情報を予め設定された複数の出力フォーマットの
内いずれか一つの出力フォーマットを用いて外部入出力端子を介して出力することとなる
ので、読み出しが容易にもかかわらず、出力フォーマットがわからなければ、解析は困難
であり、電子的な透かし情報の埋込場所の解析および改竄の困難性と、透かし情報チェッ
ク時の手間の軽減の両立を図ることができる。
【００１６】
本発明の第９態様は、外部機器との間で各種情報のやりとりを行う外部入出力端子と、
透かし情報を記憶する情報記憶部と、を備えた情報処理装置をコンピュータにより制御す
るための制御プログラムにおいて、前記外部入出力端子を介して入力された読出指示信号
に基づいて、前記情報記憶部から前記透かし情報を読み出させる機能と、読み出した前記
透かし情報を予め設定された複数の出力フォーマットの内いずれか一つの出力フォーマッ
トを用いて外部入出力端子を介して出力させる機能と、を前記コンピュータに実現させる
ことを特徴とする。
上記構成によれば、読み出した透かし情報を予め設定された複数の出力フォーマットの
内いずれか一つの出力フォーマットを用いて外部入出力端子を介して出力することとなる
ので、読み出しが容易にもかかわらず、出力フォーマットがわからなければ、解析は困難
であり、電子的な透かし情報の埋込場所の解析および改竄の困難性と、透かし情報チェッ
ク時の手間の軽減の両立を図ることができる。
【発明を実施するための最良の形態】
【００１７】
次に図面を参照して本発明の好適な実施の形態について説明する。
図１は、実施形態の情報処理装置の概要構成ブロック図である。
図１は、実施形態の情報処理装置の概要構成ブロック図である。
情報処理装置１０は、例えば、ワンチップのマイクロコンピュータとして構成され、図
１に示すように、ＡＬＵ１１、透かし情報データを含む各種データを記憶するランダムロ
ジック（回路）１２、レジスタ群１３、周辺回路１４、入出力端子１５Ａを備えた入出力
（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）回路１５およびランダムロジック１２から透かし情報デー
タを読み出し、入出力回路１５の入出力端子１５Ａから出力する透かし情報データ出力器
１６を有している。
【００１８】
ここで、ＡＬＵ１１は、ランダムロジック１２に格納されているプログラムおよびデー
タに基づいて、各種情報処理を実行するとともに、装置の各部を制御する。
ランダムロジック１２は、論理素子の組み合わせによって構成され、入力の値によって
、その時点における出力が定まる論理回路をいう。すなわち、ランダムロジック１２は、
通常のＲＯＭのように、内部状態を記憶する機能を有し、入力と内部状態の双方により、
その出力が定まる順序回路ではなく、ある入力が与えられたときに、当該入力のみに依存
して定まる出力が与えられる回路である。したがって、ランダムロジック１２は、通常の
ＲＯＭのように、マトリクス状に配置された記憶素子としてのセルを有しておらず、論理
素子の組み合わせによって構成される。
【００１９】
レジスタ群１３は、複数のレジスタによって構成され、ＡＬＵ１１によって実行される
プログラムおよびデータを一時的に格納するメモリとして機能する。
周辺回路１４は、割り込み回路、タイマ回路、ＤＭＡ回路を有している。割り込み回路
は、例えば、タイマ回路、ＤＭＡ回路、または、入出力回路１５の入出力端子を介して接
続された外部機器に起因する割り込みを発生し、ＡＬＵ１１に通知する。タイマ回路は、
例えば、日時情報を生成してＡＬＵ１１に供給する。ＤＭＡ回路は、ＡＬＵ１１を介さず
に、レジスタ群１３のレジスタ間で情報を転送したり、入出力回路１５に接続された外部
機器とレジスタ群１３との間で情報を転送したりする回路である。なお、周辺回路１４と
して、これ以外の回路（例えば、コプロセッサを有していてもよい。あるいは、周辺回路
１４自体を有しない構成としてもよい。すなわち、周辺回路１４は必須の構成要素ではな
い。
入出力回路１５は、透かし情報データデコーダ２０を含む外部機器との間で情報を授受
する際のインタフェース動作を行う回路である。
【００２０】
次に、ランダムロジック１２における透かし情報データの埋込について説明する。
通常、ＡＬＵ１１等のプロセッサにおいては、処理の簡略化のため、固定ビット長で命
令（＝命令コード＋オペランド）を定義している。このため命令の種類によっては、当該
命令の動作に影響を与えない、すなわち、機能、役割を与えられていないビットが命令の
命令コード中に含まれる。これらのビットは、各命令の実行において用いられることはな
いため、以下においては、不使用ビットという。不使用ビットのビット数は、命令により
異なり、１ビット〜複数ビットがある。なお、本願における命令は、汎用プロセッサのよ
うに仕様が公開されているものではなく、非公開のものであり、ビット列が判明したとし
ても、その内容が直ちに理解できるものではない。換言すれば、あるビット列に対して、
いずれの命令（例えば、ａｄｄ命令、ｓｕｂ命令など）を割り当てるかはシステム設計時
において任意となっている。同様に命令のビット数についても任意に設計可能である。
【００２１】
図２は、１６ビット長の命令を有するプロセッサの命令セットの例を説明する図である
。
上述したように、各命令は、命令コードを含んでおり、さらに必要に応じて、オペラン
ドを含んでいる。例えば、ａｎｄ命令は、１６ビット中、第６ビット〜第１５ビット（Ｍ
ＳＢ）が命令コードであり、第０ビット〜第５ビットは、オペランドである。また、ｊｍ
ｐ命令は、１６ビット中、第１０ビット〜第１５ビット（ＭＳＢ）が命令コードであり、
第０ビット〜第９ビットは、オペランドである。また、ｎｏｐ命令は、オペランドが存在
せず、１６ビット全部が命令コードである。
図２に示すように、命令のうち、ｌｉ命令（即値ロード命令）、ｌｄ命令（データロー
ド命令）、ｓｔ命令（データストア命令）については、不使用ビットが存在していない。
これに対し、ａｄｄ命令（加算命令）、ｓｕｂ命令（減算命令）、ａｎｄ命令（論理積
命令）、ｏｒ命令（論理和命令）およびｘｏｒ命令（排他的論理和命令）については、図
２に斜線部分で示すように、第６ビットから第１０ビットの５ビットの不使用ビットが存
在している。
【００２２】
また、ｊｍｐ命令（ジャンプ命令）及びｊｚ命令（零時ジャンプ命令）については、図
２に斜線部分で示すように、第１０ビットの１ビットの不使用ビットが存在している。
また、ｎｏｐ命令（ノーオペレーション命令）については、図２に斜線部分で示すよう
に、第０ビットから第１０ビットの１１ビットの不使用ビットが存在している。
これらの不使用ビットは、その値を書き換えたとしても命令の実行に何ら影響を与えな
い。
そこで、本実施形態のランダムロジック１２においては、これらの不使用ビットの少な
くとも一部に透かし情報データを構成するビットを書き込むことにより、元のプログラム
のサイズ、動作に影響を与えることなく、透かし情報を埋め込むことが可能となっている
。
【００２３】
図３は、透かし情報埋込処理の機能説明図である。
また、図４は透かし情報埋込処理の処理フローチャートである。
まず、プログラムのソースを読み込み（ステップＳ１）、コンパイルしてバイナリコー
ドとする（ステップＳ２）。
一方、透かし情報としての認証情報を読み込み（ステップＳ３）、透かし情報データに
変換する（ステップＳ４）。なお、透かし情報としては、認証情報に限らず、所望の情報
をデータ化したものであればよい。
続いて、プログラムのバイナリコードに含まれる命令コード及び対応する不使用ビット
の位置を検索する（ステップＳ５）。
この場合において、命令コード及び不使用ビットの位置の検索の手順としては、以下の
（Ａ１）〜（Ａ３）のようなものが考えられる。
【００２４】
（Ａ１）  プログラムの格納アドレスにしたがって、命令コード及び当該命令コードに
おける不使用ビット位置を検索する。
例えば、アドレスの先頭から最後尾に向かって順に命令コードを検索し、各命令コード
を構成する不使用ビットもアドレスの先頭から最後尾に向かって順に検索する。
【００２５】
（Ａ２）  プログラムの格納アドレスにしたがって、所定の種類の命令コード及び当該
命令コードにおける不使用ビット位置を検索する。
例えば、所定の種類の命令コードとして、ａｄｄ命令およびｓｕｂ命令を検索対象とす
る場合、アドレスの先頭から最後尾に向かって順にａｄｄ命令およびｓｕｂ命令の命令コ
ードを検索し、各命令コードを構成する不使用ビットもアドレスの先頭から最後尾に向か
って順に検索する。
【００２６】
（Ａ３）  プログラムに予め定めた特定のデータを予め定めた特定の順番で入力して処
理を行わせたと仮定した場合の処理実行順に命令コード及び当該命令コードにおける不使
用ビット位置を検索する。
例えば、入力データとして“０”を入力し続けた場合にプログラムが実行される順番で
命令コードを検索し、各命令コードを構成する不使用ビットについてはアドレスの先頭か
ら最後尾に向かって順に検索する。
【００２７】
続いてＭＰＵは、検索された不使用ビットに透かし情報データを構成するビット列を順
に埋め込む（ステップＳ６）。
この場合において、透かし情報データを構成するビット列を埋め込む手順としては、以
下の（Ｂ１）〜（Ｂ３）のようなものが考えられる。
【００２８】
（Ｂ１）  検索された各命令コードを構成する不使用ビットのうち、ＬＳＢ側（第０ビ
ット側）からＭＳＢ側に向かって、あるいは、ＭＳＢ側からＬＳＢ側に向かって順に透か
し情報データを構成するビット列を埋め込む。
例えば、各命令が１６ビット長の固定ビット長で形成されている場合に、第６ビットか
ら第１０ビットが不使用ビットである場合に、ＬＳＢ側から埋め込む場合、第６ビットか
ら第１０ビットに向かってビット列を順に埋め込むこととなる。
【００２９】
（Ｂ２）  少なくとも透かし情報データを構成するビット列を埋め込むのに十分な数の
不使用ビットが検索された時点で、検索された不使用ビットを含む命令コードについて、
命令コードが検索された順番で下位ビット側あるいは上位ビット側から順番に透かし情報
データを構成するビット列を埋め込む。
例えば、ａｄｄ命令→ｓｕｂ命令→ｎｏｐ命令が順番に検索された場合、上述の例の場
合、ａｄｄ命令およびｓｕｂ命令については、第６ビットから第１０ビットの５ビットの
不使用ビットが存在し、ｎｏｐ命令については、第０ビットから第１０ビットの１１ビッ
トの不使用ビットが存在しているので、下位ビット側から順番に透かし情報データを構成
するビット列を埋め込む場合には、ｎｏｐ命令の第０ビット→ｎｏｐ命令の第１ビット→
…→ｎｏｐ命令の第４ビット→ｎｏｐ命令の第５ビット→ａｄｄ命令の第６ビット→ｓｕ
ｂ命令の第６ビット→ｎｏｐ命令の第６ビット→ａｄｄ命令の第７ビット→ｓｕｂ命令の
第７ビット→ｎｏｐ命令の第７ビット→…→ａｄｄ命令の第１０ビット→ｓｕｂ命令の第
１０ビット→ｎｏｐ命令の第１０ビットの順番でビット列を順に埋め込むこととなる。
【００３０】
（Ｂ３）  検索された各命令コードを構成する不使用ビットのうち、所定の位置の所定
数のビットに順に透かし情報データを構成するビット列を埋め込む。
例えば、検索された各命令コードの不使用ビットのうち、それぞれ最上位ビット（上述
のａｄｄ命令の場合、第１０ビット）に１ビットの透かし情報データを構成するビットを
埋め込む。
（Ｂ４）  上記（Ｂ１）〜（Ｂ３）の手順において、残りの不使用ビットには、透かし
情報データを構成するビット列を繰り返し埋め込んだり、任意のデータをランダムに書き
込んだりするように構成してもよい。
【００３１】
これらの結果、透かし情報を埋め込んだバイナリコードのプログラムが生成されるので
、これを各種電子機器のファームウェアとして、ＲＯＭあるいはＥＥＰＲＯＭなどの書き
換え可能な不揮発性メモリに書き込んで、電子機器に組み込むこととなる（ステップＳ７
）。
そして、図３に示すように、その後、複製されたことが疑われるＲＯＭあるいはＥＥＰ
ＲＯＭなどの書き換え可能な不揮発性メモリが見いだされた場合には、透かし情報データ
を書き込んだのと同様の手順で、ＲＯＭあるいはＥＥＰＲＯＭなどの書き換え可能な不揮
発性メモリから透かし情報データを抽出して、読み出し（ステップＳ１１）、書き込んだ
透かし情報と照合し（ステップＳ１２）、書き込んだ透かし情報と同一の透かし情報ある
いは同一の透かし情報と特定可能な程度の透かし情報の一部が読み出された場合には複製
がなされたと容易に判別することが可能となる。
この結果、不法な複製がなされることを抑止できるとともに、不法な複製がなされた場
合に対処することが可能となる。
【００３２】
ここで、透かし情報の埋込処理の具体例について説明する。
図５は、プログラムのソースコードの一例の説明図である。
図５に示すプログラムにおいて、途中には条件分岐命令として、演算結果が０であった
場合にラベルＬＡＢＥＬに分岐させるｊｚ命令が記載されている。
図６は、図５に示したプログラムのメインルーチンであるＳＴＡＲＴルーチンをコンパ
イルした場合の、バイナリコードのビット配列を説明するための図である。
図６中、ハッチングで示した部分は、命令コード中の不使用ビット位置を表しており、
図６の場合、全部で２７ビットの不使用ビットが含まれている。
【００３３】
図７は、透かし情報データのビット列の説明図である。
図７においては、透かし情報データのビット列は、２６ビットで構成されており、理解
を容易にするため各ビットをアルファベット「Ａ」〜「Ｚ」で表記している。すなわち、
「Ａ」〜「Ｚ」は、それぞれ１ビットであり、その値は“０”または“１”である。
【００３４】
図８は、第１具体例の透かし情報データのビット列の埋込状態の説明図である。
第１具体例は、上述した（Ａ１）の手順で命令コードおよび不使用ビットを検索し、上
述した（Ｂ１）の手順に従ってＬＳＢ側から命令コード中の不使用ビットに透かし情報デ
ータのビット列を埋め込んだ場合のものである。
この場合には、第１番目にアドレス＝“１００ｈ”（ｈは１６進数を表わす。以下同じ
。）に格納されているａｎｄ命令が検索され、ａｎｄ命令を構成する不使用ビットの第６
ビットから第１０ビットに対し、第６ビットから第１０ビットに向かう順番で透かし情報
データビット列のうち、「Ａ」〜「Ｅ」の５ビット分を順次埋め込むこととなる。
続いて、第２番目にアドレス＝“１０２ｈ”に格納されているａｄｄ命令が検索され、
ａｄｄ命令を構成する不使用ビットの第６ビットから第１０ビットに対し、第６ビットか
ら第１０ビットに向かう順番で透かし情報データビット列のうち、「Ｆ」〜「Ｊ」の５ビ
ット分を順次埋め込むこととなる。
【００３５】
同様に、アドレス＝“１０６ｈ”に格納されているｘｏｒ命令を構成する不使用ビット
の第６ビットから第１０ビットに対し、透かし情報データビット列のうち、「Ｋ」〜「Ｏ
」の５ビット分が順次埋め込まれ、アドレス＝“１０８ｈ”に格納されているｓｕｂ命令
を構成する不使用ビットの第６ビットから第１０ビットに対し、透かし情報データビット
列のうち、「Ｐ」〜「Ｔ」の５ビット分が順次埋め込まれ、アドレス＝“１０Ａｈ”に格
納されているｊｚ命令を構成する不使用ビットの第１０ビットに対し、透かし情報データ
ビット列のうち、「Ｕ」の１ビット分が埋め込まれ、アドレス＝“１１０ｈ”に格納され
ているｏｒ命令を構成する不使用ビットの第６ビットから第１０ビットに対し、透かし情
報データビット列のうち、「Ｖ」〜「Ｚ」の５ビット分が順次埋め込まれることとなる。
【００３６】
次に透かし情報データが埋め込まれたランダムロジック１２から透かし情報データの読
み出しを行う読出処理について説明する。
図９は、透かし情報データデコーダの処理フローチャートである。
図１０は、情報処理装置の処理フローチャートである。
まず、透かし情報データデコーダ２０は、情報処理装置１０の入出力回路１５を介して
透かし情報データ出力器１６に対し、起動指示データを出力する（ステップＳ２１）。
この場合において、起動指示データには、透かし情報の解析をより困難にするために、
透かし情報データの出力データフォーマットを指定するための出力フォーマットデータを
含めることが可能となっている。
【００３７】
すなわち、入出力回路１５を介して出力される透かし情報データに所定のダミーデータ
を含めたり（例えば、ＡＢＣ→ＡＸＢＣなど。ただし、Ａ、Ｂ、Ｃは透かし情報データ、
Ｘはダミーデータである。）、透かし情報データの実データ（純粋な透かし情報のみを含
む）の出力順番をランダムロジック１２から読み出された順番とは入れ替えたりすること
ができるようにされている（例えば、ＡＢＣ→ＢＣＡなど）。この出力フォーマットデー
タによれば、予め定めた複数種類の出力フォーマットのうち、いずれかが指定されること
となる。この結果、透かし情報データの全ビット数、各透かし情報データのビット数、各
透かし情報データの出力順等が当該指定されたフォーマットに準じたものとなる。
このフォーマットの指定の有無は、オペレータが予め透かし情報データデコーダ２０に
設定しておくものである。出力フォーマットそのものをオペレータが指定できる他、透か
し情報データデコーダ２０自身がランダムに指定するようにオペレータが指定することも
可能である。
【００３８】
一方、透かし情報データ出力器１６は、透かし情報データデコーダ２０により起動指示
データが入力されるまでは待機状態となる（ステップＳ３１；Ｎｏ）。
そして透かし情報データデコーダにより起動指示データが入力されると（ステップＳ３
１；Ｙｅｓ）、透かし情報データ出力器１６は、動作状態に移行し、起動指示データに出
力フォーマットデータが含まれ、出力フォーマットが指定されているか否かを判別する（
ステップＳ３２）。
ステップＳ３２の判別において、出力フォーマットが指定されていない場合には（ステ
ップＳ３２；Ｎｏ）、透かし情報データ出力器１６は、ランダムロジック１２から所定ビ
ット範囲のデータを読み出し、ランダムに選択したフォーマットで出力することとなる（
ステップＳ３３）。
【００３９】
具体的には、図８に示した場合に、所定ビット範囲が第１５ビット目〜第８ビット目の
場合に、アドレス＝“１００ｈ”に格納されている透かし情報データ（実データとしては
、「ＥＤＣ」）の出力フォーマットとしては、例えば、以下の（１）〜（３）のようなフ
ォーマットで出力される。
（１）    「０００１１ＥＤＣ」
（２）    「ＣＤＥ１１０００」
（３）    「０Ｘ０Ｘ０Ｘ１ＸＥＸＤＸＣＸ」  （Ｘは、ダミーデータ）
【００４０】
なお、出力フォーマットは予め定めておき、透かし情報データ出力器が対応可能なもの
であれば、任意に設定可能である。
また、ランダムに選択したフォーマットは、一連の透かし情報データが出力されるまで
は固定としたり、所定出力個数毎に更新したりすることも可能である。
ステップＳ３２の判別において、出力フォーマットが指定されている場合には（ステッ
プＳ３２；Ｙｅｓ）、透かし情報データ出力器１６は、ランダムロジック１２から所定ビ
ット範囲のデータを読み出し、指定されたフォーマットで出力することとなる（ステップ
Ｓ３４）。
【００４１】
そして、透かし情報データ出力器１６は、データ出力が完了したか否かを判別する（ス
テップＳ３５）。
ステップＳ３５の判別において、未だデータ出力が完了していない場合には、透かし情
報データ出力器１６は、処理を再びステップＳ３２に移行し、データ出力処理を継続する
。
また、ステップＳ３５の判別において、データ出力が完了した場合には、処理を終了し
、再び起動指示データが入力されるまで待機状態となる。
【００４２】
一方、透かし情報データデコーダ２０は、ステップＳ２１の処理において、フォーマッ
トが指定済みであったか否かを判別する（ステップＳ２２）。
ステップＳ２２の判別において、フォーマットの指定を行っていなかったと判別された
場合には（ステップＳ２２；Ｎｏ）、透かし情報データデコーダ２０は、透かし情報デー
タ出力器１６からランダムに選択したフォーマットで出力されているので、当該出力フォ
ーマットがいずれのフォーマットなのかを解析するフォーマット解析処理を行う（ステッ
プＳ２３）。この解析は、情報処理装置１０にどのような透かし情報データが書き込まれ
ているかは、設計時点でわかっているので、その内容と、書込アドレスとの関係に基づい
て行うこととなる。
【００４３】
続いて透かし情報データデコーダ２０は、フォーマット解析処理が終了したか否かを判
別する（ステップＳ２４）。
ステップＳ２４の判別において、未だフォーマット解析処理が終了していない場合には
（ステップＳ２４；Ｎｏ）、透かし情報データ出力器１６から出力されている透かし情報
データをバッファリングして蓄えつつ、処理をステップＳ２３に移行して、フォーマット
解析処理を継続することとなる。
ステップＳ２４の判別において、フォーマット解析処理が終了し、透かし情報データの
実データ部分が抽出できる状態となったならば（ステップＳ２４；Ｙｅｓ）、透かし情報
データデコーダ２０は、透かし情報データ出力器１６から入力された透かし情報データか
ら透かし情報としての透かし文字列の抽出を行う透かし文字列抽出処理を行う（ステップ
Ｓ２５）。
【００４４】
そして透かし情報データデコーダ２０は、抽出した透かし文字列を外部のホストコンピ
ュータなどに出力する（ステップＳ２６）。
続いて、透かし情報データデコーダ２０は、透かし文字列の出力が完了したか否かを判
別する（ステップＳ２７）。
ステップＳ２７の判別において、未だ透かし文字列の出力が完了していない場合には（
ステップＳ２７；Ｎｏ）、透かし情報データデコーダ２０は、再び処理をステップＳ２５
に移行し、透かし文字列の抽出及び出力を継続することとなる。
また、ステップＳ２７の判別において、透かし文字列の出力が完了した場合には（ステ
ップＳ２７；Ｙｅｓ）、透かし情報データデコーダ２０は、処理を終了することとなる。
【００４５】
図１１は、透かし情報データデコーダの出力例の説明図である。
図１１において、理解の容易のためアンダーバー（＿）を表示しているが、実際の出力
データには含まれるものではない。
図１１は、図８に示した場合について、アドレス＝“１００ｈ”〜アドレス＝“１１４
ｈ”の透かし文字列の出力状態を示したものであり、第１０ビットｂ１０〜第８ビットｂ
８のうち、数字の０が表示されている部分以外の部分に、透かし情報が含まれていること
がわかる。また、第１５ビットｂ１５〜第１１ビットｂ１１には、命令コードが格納され
ていることがわかる。
【００４６】
以上の説明のように、本実施形態によれば、情報処理装置１０に透かし情報データデコ
ーダ２０を接続し、入出力回路１５を介して、透かし情報データ出力器１６に起動指示デ
ータを入力するだけで、容易に透かし情報データを出力させることができる。この場合に
おいて、出力フォーマットは複数種類の中から選択されるようになっているので、単一の
出力フォーマットで出力される場合と比較してより透かし情報の解析が困難となっている
。また、仮に情報処理装置１０の複製時に情報データ出力器１６が除去されてしまった場
合でも、ランダムロジック１２は残っているので、従来方法を用いて透かし情報をこちら
から読み取ることも可能であり、製造権を持つ者に無断で、勝手に複製するデッドコピー
製品であること等が予測される場合には、予め埋め込んであった透かし文字列を読み取る
ことにより、デッドコピー製品であることを容易に特定することが可能となる。
【００４７】
以上の説明においては、情報処理装置１０の透かし情報データ出力器１６が、透かし情
報データの出力フォーマットに関する情報を出力することは無かったが、透かし情報を出
力するとともに、当該出力した透かし情報の出力フォーマットを特定するためのフォーマ
ット特定情報を同時にあるいは、先だって出力するように構成することも可能である。
この構成によれば、透かし情報データデコーダ２０側では、出力フォーマットの解析を
行う必要がなくなり、より迅速に透かし文字列を出力することが可能となる。
以上の説明においては、透かし情報データは、透かし情報データ出力器１６から、直接
入出力回路１５の入出力端子１５Ａを介して出力されていたが、透かし情報データ出力器
１６をＡＬＵ１１に接続する信号ラインを設け、ＡＬＵ１１をスルーさせて、入出力回路
１５の入出力端子を介して透かし情報データを出力するように構成することも可能である
。
【図面の簡単な説明】
【００４８】
【図１】実施形態の情報処理装置の概要構成ブロック図である。
【図２】１６ビット長の命令を有するプロセッサの命令セットの例を説明する図である。
【図３】透かし情報埋込処理の機能説明図である。
【図４】透かし情報埋込処理の処理フローチャートである。
【図５】プログラムのソースコードの一例の説明図である。
【図６】図５に示したプログラムのメインルーチンであるＳＴＡＲＴルーチンをコンパイルした場合の、バイナリコードのビット配列を説明するための図である。
【図７】透かし情報データのビット列の説明図である。
【図８】第１具体例の透かし情報データのビット列の埋込状態の説明図である。
【図９】透かし情報データデコーダの処理フローチャートである。
【図１０】情報処理装置の処理フローチャートである。
【図１１】透かし情報データデコーダの出力例の説明図である。
【符号の説明】
【００４９】
１０…情報処理装置、１１…ＡＬＵ（ＣＰＵ）、１２…ランダムロジック、１３…レジ
スタ群、１４…周辺回路、１５…入出力回路、１５Ａ…入出力端子、１６…情報データ出
力器、１６…情報データ出力器、２０…情報データデコーダ。
【図１】
2010086168.tif 000003
【図２】
2010086168.tif 000004
【図３】
2010086168.tif 000005
【図４】
2010086168.tif 000006
【図５】
2010086168.tif 000007
【図６】
2010086168.tif 000008
【図７】
2010086168.tif 000009
【図８】
2010086168.tif 000010
【図９】
2010086168.tif 000011
【図１０】
2010086168.tif 000012
【図１１】
2010086168.tif 000013