JP2004005562A - コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス - Google Patents

コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス Download PDF

Info

Publication number
JP2004005562A
JP2004005562A JP2003103321A JP2003103321A JP2004005562A JP 2004005562 A JP2004005562 A JP 2004005562A JP 2003103321 A JP2003103321 A JP 2003103321A JP 2003103321 A JP2003103321 A JP 2003103321A JP 2004005562 A JP2004005562 A JP 2004005562A
Authority
JP
Japan
Prior art keywords
program
error correction
correction
instruction
computer program
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.)
Withdrawn
Application number
JP2003103321A
Other languages
English (en)
Inventor
Hisae Tanaka
田中 寿恵
Motoyuki Itou
伊藤 基志
Giichi Yamamoto
山本 義一
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003103321A priority Critical patent/JP2004005562A/ja
Publication of JP2004005562A publication Critical patent/JP2004005562A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

【課題】
【解決手段】デバイス100のプログラムメモリ102に格納される制御プログラムは、改竄から保護すべき部分として誤り訂正符号が付加された保護プログラムと、前記保護プログラムの誤り訂正を行う命令と、誤り訂正の結果として得られる訂正プログラムを呼び出す命令を含む非保護プログラムとを含む。マイコン101は、プログラムメモリ102から読み出した保護プログラムに対して、誤り訂正回路104で誤り訂正を行わせ、訂正後のプログラムを書き換え可能メモリ103から読み出して実行する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、制御プログラムおよびその生成方法並びにこの制御プログラムを作成するための方法に関し、特に、改竄を防除することが可能な制御プログラムに関する。
【0002】
【従来の技術】
プログラム及びソフトウェアとして、音楽または映像などのコンテンツプログラム、および、制御プログラムなどがあるが、以下の説明において、特に言及しない場合、「プログラム」及び「ソフトウェア」は制御プログラムを意味する。制御プログラムは、その命令に基づいてマイコンを動作させる(即ち、制御プログラムがマイコンの動作を制御する)のに対し、一般のコンテンツプログラムはマイコンからの命令に従って読み出される点で、両者は異なる。
【0003】
近年、コンテンツプログラムがデジタル化され、著作権の保護が重要な問題となっている。この問題の解決手法の一つとして、コンテンツプログラムを暗号化することが挙げられる。コンテンツプログラムを暗号化した場合、暗号化されたコンテンツプログラムを再生するためには、暗号を解読する必要がある。そこで、暗号化されたコンテンツプログラムを再生する再生装置を開発する者は、暗号作成者とライセンスを結び、暗号の解読方法を入手し、それを再生装置に組み込む。
【0004】
暗号の解読手段がLSIなどのハードウェアとしてデバイスに組み込まれている場合、LSIの製造技術をもつ専門の人でない限り、LSIの中のアルゴリズムを解析することは不可能である。しかしながら、暗号の解読がソフトウェアによって行われる場合、例えば、そのソフトウェアの実行ファイルを逆アセンブルすることで、他人(ハッカーなど)に暗号を解読され、不正に改竄される恐れがある。そうしたハッカーに対抗するために、解読が困難なソフトウェア技術が開発されている。
【0005】
また、ハッカーによりプログラムが解析されることを防止するために、ハードウェアとソフトウェアの組み合わせによる制御プログラムの隠蔽方法が、特許文献1に開示されている。
【0006】
【特許文献1】
特開2001−265459号公報
【0007】
【発明が解決しようとする課題】
ソフトウェア技術だけで暗号解読処理を行うプログラムは、ソフトウェア技術によって解読し、改竄することが不可能とは言えない。また、LSIなどのハードウェアによる暗号解読手段をデバイスに組み込むことは、近年の開発競争において、開発速度の観点及びコスト面から不利となる傾向がある。
【0008】
そこで、本発明は、上記の問題点を鑑み、ハッカーなどによる改竄をより低コストで効果的に防除することが可能な制御プログラムおよびデバイスを提供することを目的とする。
【0009】
【課題を解決するための手段】
上記の目的を達成するために、本発明にかかるコンピュータプログラムは、CPUを有するデバイスの動作を前記CPUを介して制御するためのコンピュータプログラムであって、誤り訂正符号が付加された保護プログラムと、前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムとを含むことを特徴とする。
【0010】
上記の目的を達成するために、本発明は、上述のコンピュータプログラムを記録した媒体としても、実現される。
【0011】
また、上記の目的を達成するために、本発明にかかるデバイスは、CPUと、プログラムメモリと、書き換え可能メモリとを備えたデバイスであって、前記プログラムメモリは、前記CPUを介して当該デバイスを制御するコンピュータプログラムを格納し、前記コンピュータプログラムは、誤り訂正符号が付加された保護プログラムと、前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムとを含み、前記書き換え可能メモリは、前記誤り訂正の結果として得られた訂正プログラムを格納し、前記CPUは、前記書き換え可能メモリから前記訂正プログラムを読み出して実行することを特徴とする。
【0012】
また、上記の目的を達成するために、本発明にかかるコンピュータプログラムの生成方法は、CPUを有するデバイスにおいて前記CPUを介して前記デバイスの動作を制御するコンピュータプログラムを生成するための方法であって、前記コンピュータプログラムのうち保護すべき部分に誤り訂正符号を付加した保護プログラムを作成するステップと、前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムのプログラムソースに、前記保護プログラムをプログラムソース形式に変換して結合するステップと、前記結合されたプログラムソースをコンパイルおよびリンクするステップとを含むことを特徴とする。
【0013】
【発明の実施の形態】
上述の本発明にかかるコンピュータプログラムは、改竄から保護すべき部分(保護プログラム)に誤り訂正符号を付加されている。この保護プログラムを実行する際に誤り訂正符号を用いて誤り訂正を行うことにより、たとえ保護プログラムが改竄されたとしても、誤り訂正が可能な範囲であれば、改竄前の状態に戻すことができる。これにより、ハッカーなどによるプログラム改竄を効果的に防除し得るコンピュータプログラムを提供できる。
【0014】
本発明にかかるコンピュータプログラムは、誤り訂正回路を含むデバイスを制御するためのプログラムであって、前記保護プログラムの誤り訂正を行う命令は、前記誤り訂正回路に誤り訂正を実行させるための命令であることが好ましい。
【0015】
このように、デバイスのハードウェア回路によって誤り訂正を行うことにより、プログラムの逆アセンブルなどを行ってもプログラムの動作を解析することができない。これにより、改竄をより効果的に防除し得る。
【0016】
本発明にかかるコンピュータプログラムにおいて、前記訂正プログラムが、少なくとも一つの関数と、前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含んでいてもよい。
【0017】
本発明にかかるコンピュータプログラムにおいて、前記保護プログラムが、前記誤り訂正符号の付加と可逆的なデータ変換処理の両方を施されており、前記非保護プログラムが、前記データ変換処理の逆変換処理を行う命令を含んでもよい。
【0018】
なお、誤り訂正符号の付加と可逆的なデータ変換処理の順序は、どちらが先であってもよい。すなわち、保護プログラムは、誤り訂正符号を付加した後にデータ変換処理を行うことによって得られたものでもよいし、データ変換処理を施した後に誤り訂正符号を付加したものであってもよい。
【0019】
本発明にかかるコンピュータプログラムにおいて、前記コンピュータプログラムは、前記データ変換処理の逆変換処理を行う復元回路を含むデバイスを制御するためのプログラムであり、前記逆変換を行う命令は、前記復元回路に逆変換処理を実行させるための命令であることが好ましい。
【0020】
このように、保護プログラムの実行時に、保護プログラムに対する逆変換処理をハードウェア回路で実行させることにより、プログラムの逆アセンブルを行ってもプログラムの動作を解析することができない。これにより、改竄をより効果的に防除し得る。
【0021】
本発明にかかるコンピュータプログラムにおいて、前記保護プログラムに対して誤り訂正および前記逆変換処理を施した結果として得られる訂正プログラムは、少なくとも一つの関数と、前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含んでもよい。
【0022】
また、上述の構成にかかる本発明のデバイスによれば、改竄から保護すべき部分に誤り訂正符号を付加したコンピュータプログラムを用い、この保護プログラムを実行する際に誤り訂正符号を用いて誤り訂正を行うことにより、たとえ保護プログラムが改竄されたとしても、誤り訂正が可能な範囲であれば、改竄前の状態に戻すことができる。これにより、ハッカーなどによるプログラム改竄を効果的に防除し得るデバイスを提供できる。
【0023】
本発明にかかるデバイスにおいて、前記保護プログラムから誤りが検出された場合、誤りの訂正が不可能であれば、デバイスの少なくとも一部分の動作を制限してもよい。
【0024】
この構成によれば、保護プログラムに対して改竄が行われたとしても、誤りの訂正が可能な範囲の改竄であれば、誤り訂正によって改竄前の状態に戻せるので、改竄による影響はない。また、誤りの訂正が不可能であれば、デバイスの少なくとも一部分の動作を制限することにより、改竄による被害を防止できる。なお、デバイスの少なくとも一部分の動作の制限とは、改竄による被害を防止するという目的を達成できれば、どのような制限であってもよい。これらに限定されないが、例えば、CPUやデバイス全体の動作の停止、上位または外部デバイスとの通信の中止などの制限を行ってもよい。
【0025】
本発明にかかるデバイスにおいて、前記保護プログラムから誤りが検出された場合、誤りの訂正が可能か否かにかかわらず、デバイスの少なくとも一部分の動作を制限してもよい。
【0026】
この構成によれば、保護プログラムに対して改竄が行われた場合、誤りが検出されれば、誤り訂正が可能な範囲であってもデバイスの少なくとも一部分の動作を制限することにより、改竄による被害をより確実に防止できる。
【0027】
本発明にかかるデバイスを、誤り訂正回路をさらに含んだ構成とし、前記保護プログラムの誤り訂正を行う命令が、前記誤り訂正回路に誤り訂正を実行させるための命令であるものとしても良い。
【0028】
本発明にかかるデバイスにおいて、前記CPUは、前記訂正プログラムの実行後、当該訂正プログラムを前記書き換え可能メモリから消去してもよい。
【0029】
これにより、書き換え可能メモリに残った訂正プログラムをハッカーなどに解読されてしまうという事態を防止できる。なお、訂正プログラムの消去とは、書き換え可能メモリに訂正プログラムが実質的に残らない状態となればよく、例えば、無意味なデータを上書きするなどの方法によって実行し得る。
【0030】
本発明にかかるデバイスにおいて、前記保護プログラムは、前記誤り訂正符号の付加と可逆的なデータ変換処理の両方を施されており、前記非保護プログラムは、前記データ変換処理の逆変換処理を行う命令を含んでもよい。
【0031】
本発明にかかるデバイスを、前記データ変換処理の逆変換処理を行う復元回路をさらに備えた構成とし、前記データ変換処理の逆変換処理を行う命令を、前記逆変換処理を前記復元回路に行わせる命令としてもよい。
【0032】
本発明にかかるデバイスにおいて、前記誤り訂正回路が、前記復元回路として用いられる構成であってもよい。誤り訂正回路が復元回路を兼ねることにより、構成を簡略化して低コストなデバイスを実現できる。
【0033】
本発明にかかるデバイスにおいて、前記保護プログラムに対して誤り訂正を施した結果として得られる訂正プログラムは、少なくとも一つの関数と、前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含み、前記相対番地リストは、前記書き換え可能メモリ上で前記訂正プログラム内の所定位置に配置されてもよい。
【0034】
本発明にかかるデバイスにおいて、前記保護プログラムに対して誤り訂正および前記逆変換処理を施した結果として得られる訂正プログラムは、少なくとも1つの関数と、前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含み、前記相対番地リストは、前記書き換え可能メモリ上で前記訂正プログラム内の所定位置に配置されてもよい。
【0035】
また、上述した本発明にかかるコンピュータプログラムの生成方法によれば、改竄から保護すべき部分に誤り訂正符号が付加されたコンピュータプログラムを提供することができる。
【0036】
以下、図面を参照して本発明の実施の一形態を詳細に説明する。
【0037】
(実施の形態1)
図1は、本発明の実施の形態1におけるデバイス100の構成の一例を示すブロック図である。図1において、101は小型演算子であるマイコン、102は不揮発性メモリであるプログラムメモリ、103は書き換え可能メモリ、104は誤り訂正回路、105は内部バスである。
【0038】
プログラムメモリ102は、制御プログラムを格納する。マイコン101は、プログラムメモリ102に格納された制御プログラムの命令に従って、デバイス100を制御する。書き換え可能メモリ103は、マイコン101の処理データなどを一時的に格納する。誤り訂正回路104は、データを誤り訂正する。内部バス105は、マイコン101、プログラムメモリ102、書き換え可能メモリ103、および誤り訂正回路104を相互に接続する。ここで、プログラムメモリ102として、再生専用メモリ、1回書き込み可能メモリ、またはフラッシュメモリを使用してもよい。また、書き込み可能メモリ103として、データの保持動作が不要なスタックメモリ、またはデータの保持動作が必要なダイナミックメモリ、具体的にはDRAMを使用してもよい。
【0039】
図2は、プログラムメモリ102に格納する、実行可能形式の制御プログラムを作成する方法を示したフローチャートである。本明細書において、保護プログラムとは、改竄から保護すべきプログラムを指す。保護プログラムには冗長ビットが付加されている。また、制御プログラム内の保護プログラム以外のプログラムを、非保護プログラムと称する。
【0040】
ステップ201で、プログラムメモリ102に格納する制御プログラムのうち改竄から保護すべき保護プログラムとなる部分のプログラムソース211を生成する。
【0041】
ステップ202で、プログラムソース211をコンパイル及びリンクし、実行可能形式のバイナリデータ212を生成する。
【0042】
ステップ203で、実行可能形式のバイナリデータ212に冗長ビット(パリティ)を付加し、誤り訂正符号に符号化することにより、バイナリデータ213を生成する。符号化の方法については後述する。この時、バイナリデータ213は、符号化処理前のバイナリデータ212より少なくともパリティ分、サイズが増加する。この符号化処理により、デバイス100の誤り訂正回路104で、誤りの検出及び訂正を行うことができる。従って、プログラムが改竄された場合に、改竄を検出し、元のプログラムに戻すことが可能となる。
【0043】
ステップ204で、バイナリデータ213を、他のプログラムソースに組み入れやすいように、プログラムソース形式のデータ配列214に変換する。前記データ配列214のプログラムソース形式としては、例えば、C言語のchar型の配列表記を内容として持つインクルードファイル形式を用いることができる。
【0044】
ステップ205で、非保護プログラムのプログラムソースに、データ配列214に変換された保護プログラムを挿入し、全制御プログラムソース215を作成する。なお、前記非保護プログラムは、前記保護プログラムを呼び出すプログラムを含む。
【0045】
ステップ206で、全制御プログラムソース215をコンパイルおよびリンクして、プログラムメモリ102に格納する実行可能形式のバイナリデータ216を生成する。これにより、保護プログラムにパリティが付加された制御プログラムが、バイナリデータ216として形成される。
【0046】
次に、実行可能形式のバイナリデータ212の符号化方法の一例として、図3に示されるDVDの内符号(PI)である符号長182バイト、情報数172バイト、パリティ10バイトのリードソロモン(RS)符号に符号化する方法について説明する。
【0047】
図3は、PIの構成を示した図である。B[i](i=0〜181)は、1バイトを表し、8ビットに相当する。B[0]〜B[171]はデータ部分、B[172]〜B[181]はパリティ部分で、実行可能形式のバイナリデータ212の各8ビットが、B[0]〜B[171]に対応する。但し、元のバイナリデータが172バイトに足りない場合、元のバイナリデータに0埋めされたデータを付け加える。PIのパリティ部分は、以下のパリティ検査符号多項式P(X)により、多項式表示される。
【0048】
【数1】
Figure 2004005562
【0049】
ここで、I(X)は情報記号多項式と呼ばれ、データ部分を多項式表示したもので、
【0050】
【数2】
Figure 2004005562
【0051】
であり、G(x)は生成多項式で、
【0052】
【数3】
Figure 2004005562
【0053】
である。但し、αは原始多項式
【0054】
【数4】
Figure 2004005562
【0055】
の根である。PIのパリティ部分は、
【0056】
【数5】
Figure 2004005562
【0057】
と多項式表示することもできる。即ち、(数1)と(数5)のXの係数を比較することにより、パリティ部分B[172]〜B[181]の値が求まる。なお、(数1)〜(数5)を解く手段は、どのようなものであってもよい。
【0058】
この符号化処理を、ソフトウェアなどで実現し、実行可能形式のバイナリデータ212が全て符号化されるまで行うことにより、パリティが付加されたバイナリデータ213が生成される。
【0059】
ここで、本発明にかかる制御プログラムをマイコンで実行しようとする際に、制御プログラム内の保護プログラムを誤り訂正する方法の一例について、図4を用いて説明する。図4は、保護プログラムを誤り訂正する方法の一例を示すフローチャートである。ここでは、保護プログラムを上記のPIに符号化した場合を例に、説明する。まず、ステップ401で、誤り箇所を特定するための位置情報を示すシンドロームを計算する。シンドロームは、誤り訂正するデータを、
【0060】
【数6】
Figure 2004005562
【0061】
とする時、次のように定義できる。
【0062】
【数7】
Figure 2004005562
【0063】
ステップ402で、シンドロームが0ならば誤りがないと判断し、ステップ410に進み、マイコンに誤りなしと通知し、誤り訂正処理を終了する。0でなければ、次のステップに進む。
【0064】
ステップ403で、シンドロームから誤り位置多項式を導出する。誤り位置多項式は、誤り位置L,L,…,L(mは誤り個数)の逆数を根に持つ多項式で、
【0065】
【数8】
Figure 2004005562
【0066】
である。誤り位置多項式の係数は、シンドロームで定義され、誤り位置多項式の係数とシンドロームとの間に成り立つ連立方程式を行列を使って解くピーターソン法や、連立方程式を多項式を使って解く逐次的計算法であるユークリッド法やBM法などのアルゴリズムを用いて求められる。
【0067】
ステップ404で、誤り位置多項式が計算できたならば、次のステップに進む。計算できなければ、訂正可能個数より多くの誤りが発生していると判断し、ステップ409に進み、マイコンに誤りが訂正不能であることを通知し、誤り訂正処理を終了する。
【0068】
ステップ405で、誤り位置多項式に(数4)の原始多項式の根であるαの−i乗(i=0〜181)を順次代入し、誤り位置多項式が0となるiを求めることにより、誤り位置を計算する。
【0069】
ステップ406で、誤り位置が計算できたならば、次のステップに進む。計算できなければ、ステップ409に進み、マイコンに誤りが訂正不能であることを通知し、誤り訂正処理を終了する。
【0070】
ステップ407で、ステップ406で求めた誤り位置とシンドロームとの間の連立方程式を解くことにより、誤りの値を計算する。
【0071】
ステップ408で、ステップ406で求めた誤り位置に対応するデータの値から、ステップ407で求めた誤りの値を引くことにより、誤り訂正の対象データの訂正を行う。
【0072】
図1の誤り訂正回路104は、上記の誤り訂正手順の処理を行うことができる回路であれば、任意の構成を用いることができる。また上記のPI符号とその符号化の方法は一例にすぎず、誤り訂正ができる符号であれば、どのような符号及び符号化の方法であってもよい。また、誤り訂正の方法も、誤りの検出と訂正ができれば、どのような方法であってもよい。
【0073】
例えば、上記では誤り訂正符号としてリードソロモン(RS)符号を用いる例を説明したが、誤り訂正符号は、RS符号に限定されない。これ以外に、例えば、いわゆるBlu−ray Discに用いられている誤り訂正符号や、BCH符号、畳み込み符号などの任意の符号を用いることができる。
【0074】
ここで、図5〜図8を用いて、本発明にかかる制御プログラムを、図1に示した構成の本発明にかかるデバイス100で実行する場合の手順の一例について説明する。
【0075】
図5は、保護プログラムの命令を実行する方法のフローチャートを示し、図6、図7、図8は、図5のステップ501、502、503のデバイスの状態を示している。
【0076】
図6、図7、図8において、図1と同じ構成要素について同一番号を付し、説明は省略する。
【0077】
本明細書において、保護プログラムに対して誤り訂正処理を行って得られるプログラムを、訂正プログラムと称する。
【0078】
まず、ステップ501で、マイコン101からの指令により、図6に示されるように、プログラムメモリ102に格納された制御プログラムのうち、保護プログラム611を書き換え可能メモリ103に複製することにより、複製プログラム612を作る。複製プログラム612の内容は、保護プログラム611と同一である。なお、図6のプログラムメモリ102において、保護プログラム611が格納された領域以外に格納されているのは、非保護プログラム610である。非保護プログラム610は、保護プログラム611内の関数を呼び出す命令を含む(詳細は後述する)。
【0079】
ステップ502で、マイコン101からの指令により、書き換え可能メモリ103上の複製プログラム612を、誤り訂正回路104を用いて誤り訂正することにより、図7に示されるように、書き換え可能メモリ103上に、訂正プログラム613を生成する。この誤り訂正は、例えば、上記において図4を参照して説明した手順によって行えばよい。
【0080】
誤り訂正回路104が誤りを検出し、かつ、その誤りが訂正不能であることをマイコン101に通知した場合(図4のステップ409)、マイコン101は、制御プログラムが改竄されているものと判断し、例えば上位装置(図示せず)との通信を打ち切るなどの処理を施し、マイコン101自身やデバイス100全体の動作を停止させる。誤り訂正回路104で検出された誤りが訂正可能である場合は、誤り訂正を行うことにより(図4のステップ408)、改竄された制御プログラムを元の制御プログラムに戻す。なお、誤りを検出した場合、その誤りが訂正可能であっても、上述のように上位装置との通信を打ち切ったりマイコン101またはデバイス100全体の動作を停止させたりするなどの処理を施してもよい。このような処理を施すことにより、デバイス100において正規の制御プログラム以外のプログラム(すなわち改竄されたプログラム)が動作できないようにすることができる。
【0081】
例えば、これを、著作権保護すべきコンテンツを記録したDVDの不正コピーを防除する処理を行うための制御プログラムに適用したとする。すなわち、デバイス100がDVDレコーダであって、このデバイス100におけるDVDへの記録を制御するための制御プログラムのうち、不正コピー防止プログラムが、保護プログラムとして、例えば図2を参照して説明したように誤り訂正符号が付加されているものとする。例えば、DVDへの不正コピーを行うことを目的としてこの保護プログラムに対して改竄が加えられたとしても、その改竄が誤り訂正符号によって訂正できる範囲内であれば、誤り訂正によって元のプログラムに戻すことができる。訂正できない場合は、上述のようにマイコン101やデバイス100全体の動作を停止させるなどの処理を行うことにより、不正コピーをさせない。従って、どのように改竄がなされたとしても、不正コピーをさせず、DVDのコンテンツの著作権を守ることができる。また、誤り訂正できる範囲内の改竄であれば、改竄部分を訂正して元のプログラムに戻すため、改竄したはずのプログラムが改竄前と同じ動作をする。これにより、改竄者を混乱させ、制御プログラムの解読および改竄を困難にすることができる。
【0082】
ステップ503で、マイコン101が、図8で示された訂正プログラム613の中の関数(モジュールとも呼ぶ)を呼び出す。モジュール呼び出し処理503の詳細な説明は後述する。
【0083】
ステップ504で、呼び出した関数から戻ってきた後に、マイコン101は、図8で示される訂正プログラム613が存在する領域の全体に無意味な値(例えば0)を上書きすることにより、訂正プログラム613を消去する。
【0084】
なお、ステップ502の誤り訂正処理の全てをソフトウェアで実行することも可能であるが、この誤り訂正処理を行うソフトウェア部分を解析すれば、保護プログラムが解読される危険性がある。従って、実施の形態1のように、デバイス100に固有のハードウェアである誤り訂正回路104を用いて誤り訂正処理を行うことが好ましい。これにより、デバイス100のユーザのみが制御プログラムを使用できるので、保護プログラムが不正に解読されることを防ぐことができる。
【0085】
次に、関数の呼び出し処理(図5のステップ503)の具体例について説明する。図9は、図6の保護プログラム611が誤り訂正回路104によって誤り訂正された後の訂正プログラム613の構成を概念的に示す図である。訂正プログラム613は、相対番地リスト70と、プログラム部76とを含む。プログラム部76は、訂正プログラム613の外部(即ち図6の非保護プログラム610)から呼び出される公開関数71、72と、訂正プログラム613の内部から相対番地で呼び出される内部関数73、74、75とを含む。例えば、公開関数71、72は非保護プログラム610から呼び出される。公開関数71は、相対番地で内部関数73、74を呼び出す。公開関数72は、相対番地で内部関数73、75を呼び出す。公開関数が呼び出すことのできる関数の数は任意である。
【0086】
相対番地リスト70は、訂正プログラム613の先頭からみた公開関数71、72の相対番地を列挙したものである。これらの番地の情報は、図8の書き換え可能メモリ103に対する訂正プログラム613の位置に依存しない情報であり、図2のステップ201で、このテーブルを作成するようにプログラミングすることで実現できる。
【0087】
図10は、マイコン101に対するアドレス空間800を示す。マイコン101に対するアドレス空間800において、プログラムメモリ102と書き換え可能メモリ103は、それぞれ独自の番地が割り付けられた領域801、802にそれぞれ位置する。訂正プログラム613は、上述したように保護プログラム611を複製し、誤り訂正回路104で訂正したものであり、書き換え可能メモリ103に割当てられた領域802のうち、マイコン101が指定する所定の番地(図10では番地a1)を先頭とする領域(図10では領域804)に配置される。この時、訂正プログラム804の先頭に、相対番地リスト70が配置される(図10では領域805)。相対番地リスト70は、公開関数71の相対番地r1と公開関数72の相対番地r2とを含む。
【0088】
アドレス空間800における公開関数71の絶対番地は、訂正プログラム613の先頭番地a1に、公開関数71の相対番地r1を加算することによって求められる。従って、マイコン101は、アドレス空間800における公開関数71の絶対番地を指定することで、公開関数71を呼び出すことができる。公開関数72についても同様に、訂正プログラム613の先頭番地a1に、公開関数72の相対番地r2を加算して求められる絶対番地を指定することにより、呼び出せる。
【0089】
なお、図10に示される訂正プログラム613の相対番地リスト805は、訂正プログラム805の先頭に配置されているが、本発明はこれに限定されない。相対番地リスト805は、訂正プログラム613に対する外部プログラム(即ち非保護プログラム610)から指定されることが可能な位置に配置されていればよい。
【0090】
(実施の形態2)
本発明の他の実施形態について、以下に説明する。
【0091】
図11は、本発明の実施の形態2において、実行形式の制御プログラムを作成する方法を示すフローチャートである。図11において、図2と同じ処理とデータについて同一番号を付し、説明は省略する。実施の形態1と異なるのは、ステップ202とステップ203との間に、制御プログラム中の保護プログラム部分に対して可逆的なデータ変換を施すデータ変換処理(ステップ1101)が追加されていることである。
【0092】
ステップ1101では、ステップ202で生成された実行可能形式のバイナリデータ212に可逆的なデータ変換を施して、変換済みバイナリデータ1111を生成する。データ変換処理1101の詳細な説明は後述する。このバイナリデータ1111は、そのままマイコンで処理させても、マイコンに所望の動作をさせることはできない。また、データ変換を行うだけなので、ステップ1101の前後でプログラムサイズは変化しない。このデータ変換処理を行うことにより、保護プログラムを逆アセンブルなどのソフトウェア処理によって解析されないようにし、改竄されにくくすることができる。
【0093】
ステップ203でバイナリデータ1111を符号化処理することにより、符号化したバイナリデータ1112が得られる。次に、ステップ204で、バイナリデータ1112を、プログラムソース形式のデータ配列1113に変換する。そして、ステップ205で、データ配列1113を非保護プログラムのプログラムソースと結合することにより、全制御プログラムソース1114が得られる。最後に、全制御プログラムソース1114をコンパイルおよびリンクすることにより、実行可能形式のバイナリデータ1115を生成し、プログラムメモリに格納する。
【0094】
実施の形態1と比較すると、ステップ1101でデータ変換処理を行った後のバイナリデータ1111に、ステップ203で符号化処理を施すため、バイナリデータ1112、データ配列1113、全制御プログラムソース1114、および、バイナリデータ1115は、図2に示すバイナリデータ213、データ配列214、全制御プログラムソース215、および、バイナリデータ216とはそれぞれ異なるものとなる。但し、サイズは同じである。
【0095】
次に、実行可能形式のバイナリデータ212のデータ変換処理(図11のステップ1101)の一例について、図12を用いて説明する。図12は、バイナリデータをデータ変換する方法の一例を示すフローチャートである。図13は、ステップ1101のデータ変換処理を行うための回路の一例であり、DVDでデータをスクランブルする際に用いられているスクランブル回路と同様の回路である。図13において、r〜r14は、1ビットのシフトレジスタの値、1301はシフトレジスタ、1302は1ビットの排他的論理和を表す。ここでは、図13のシフトレジスタ1301を用いて、バイナリデータ212を8ビットずつデータ変換する方法を例に説明する。
【0096】
まず、ステップ1201で、スクランブルの初期値である15ビットのシードをシフトレジスタ1301に設定する。ステップ1202で、データ変換するバイナリデータ212の8ビットを、d(最下位ビット)〜d(最上位ビット)とすると、シフトレジスタ1301のr〜rの8ビットと、d〜dの8ビットの排他的論理和をとり、データを変換する。ステップ1203で、バイナリデータ212を全て変換したならば、データ変換処理を終了する。そうでなければ、ステップ1204に進む。ステップ1204で、シードを変更するならば、ステップ1201に進む。そうでなければ、ステップ1205に進む。シードの変更は、あらかじめ決めておいたバイト数のバイナリデータ212を変換するごとに行う。ステップ1205で、シフトレジスタ1301を8ビットシフトさせ、ステップ1202に進む。上記の処理をバイナリデータ212が全て変換されるまで行い、データ変換後のバイナリデータ(図11の1111)を生成する。
【0097】
ここで例えば、シードとしてrに1、r〜r14に0を設定し、16進数で表記するものとする。00,01,02,03であるバイナリデータを上記の手順でデータ変換すると、00は01と排他的論理和がとられ、01に変換される。01はシードを8ビットシフトさせた後の00と排他的論理和がとられ、01に変換される。02は22と、03は04と排他的論理和がとられ、20と07にそれぞれ変換される。
【0098】
上記のDVDに用いられているようなスクランブルによるデータ変換の方法は一例に過ぎず、可逆的なデータ変換が行える変換方法であれば、どのような方法であっても良い。
【0099】
例えば、Blu−ray Discドライブに用いられているシフトレジスタを用いてデータ変換を行っても良い。また、誤り訂正理論で用いられる基礎体であるGF(2)に、前述の(数4)の原始多項式の根であるαを追加して生成したガロア拡大体GF(2)の元のべき乗表現α(i=0〜254)は、(数9)のようにαを(数4)の原始多項式で割り算した余りとして多項式表現される。ここで、Vは多項式の係数である。
【0100】
【数9】
Figure 2004005562
【0101】
多項式の係数をベクトルで表したものがベクトル表現であり、8次元のベクトルで表現される。よって、元のべき乗表現とベクトル表現とは1対1に対応しており、べき乗表現の乗数iとベクトル表現の各要素を1ビットとみなした8ビットの値も1対1に対応する。これにi=255のときの8ビットの値を0とすると、(数10)で表され、可逆的な8ビットのデータ変換ができる。
【0102】
【数10】
Figure 2004005562
【0103】
よって、この対応関係を用いて、バイナリデータ212を8ビットずつデータ変換してもよい。
【0104】
図14は、本発明の実施の形態2におけるデバイス1400の構成の一例を示すブロック図である。図14において、図1と同じ構成要素については同一番号を付し、説明は省略する。デバイス1400は、主に、可逆的に変換された保護プログラムに対して逆変換を施すためのデータ復元回路1401が追加された点において、実施の形態1のデバイス100と異なる。
【0105】
データ復元回路1401は、図12のデータ変換処理により変換されたデータを復元する場合、データ変換するバイナリデータ212の代わりに、復元するバイナリデータに図12と同じ処理を行うことによって復元されるため、図12のステップ1202〜1205の処理を行うことができる回路であれば良い。デバイス1400がDVDドライブやBlu−ray Diskドライブである場合、データ復元回路1401としてこれらのドライブが有するスクランブル回路を用いれば、(1)新たな回路設計の必要がない、(2)シードをソフトウェアで変化させればより解読されにくくできる、といった利点がある。また、ガロア拡大体GF(2)の元のべき乗表現の乗数iとベクトル表現の各要素を1ビットとみなした8ビットの値との対応関係を用いてデータ変換を行うと、一般的に誤り訂正回路には、この対応関係により変換されたデータを復元するデータ復元回路があらかじめ存在するので、図14に示すようにデータ復元回路1401を別個に設ける代わりに、誤り訂正回路104をデータ復元回路1401として流用することも可能である。また、データ復元回路として、暗号化回路を用いることも可能である(データ変換処理として暗号化処理を行い、データ復元回路として暗号の復号化回路を用いることも可能である)。
【0106】
図15は、本発明の実施の形態2における制御プログラムの命令を実行する方法のフローチャートを示す。図15において、図5と同じ処理については同一番号を付し、説明は省略する。実施の形態1と異なるのは、データ復元処理1501が追加されていることである。図15では、プログラム訂正処理(ステップ502)の後にデータ復元処理(ステップ1501)を行うとしているが、図11の制御プログラムの実行可能形式を作成する方法のステップ1101とステップ203と逆の順序であれば、どちらから処理を行ってもよい。
【0107】
ステップ1501のデータ復元処理の全てをソフトウェアで実行することも可能であるが、逆アセンブルなどにより解読される危険性がある。従って、本発明の実施の形態2のように、デバイス1400に固有のハードウェアであるデータ復元回路1401を用いてデータ復元処理を行うことが好ましい。これにより、デバイス1400のユーザのみが制御プログラムを使用することができ、保護プログラムが不正に解読されることを防ぐことができる。
【0108】
その他のステップについては、実施の形態1と同様である。このように、本実施形態によれば、データ変換処理を行うため、保護プログラムが改竄されにくくなる。また、改竄された場合でも、誤り訂正符号によって改竄の検出または訂正を行うことにより、不正な動作を止めることができる。
【0109】
本実施形態における保護プログラム内の関数の呼び出し方法は、実施の形態1と同様である。
【0110】
以上のように、本発明は改竄から保護するプログラムを符号化し、それを含む制御プログラムを作成し、誤り訂正回路によって訂正処理を行うことにより、改竄の検出及び訂正ができるため、設計した制御プログラム以外の動作はできないようにすることができる。
【0111】
更に、制御プログラムを作成する時にデータ変換処理を、制御プログラムを実行する時にデータ復元回路によって行われるデータ復元処理を加えることにより、より改竄されにくくすることができる。
【0112】
また、制御プログラムの訂正アルゴリズムと復元アルゴリズムを、デバイスに組み込まれたハードウェアと制御プログラム自身とで分担させれば、非常に高度なソフトウェア技術を有した人物であっても、制御プログラムだけを解析しただけでは分からない。更に、保護すべき処理を全てハードウェアで実現する場合、もしくは、全てをソフトウェアで実現するのと比較して、開発期間及びコスト及び安全性の面で優れている。
【0113】
なお、本発明の好適な応用例として、これらはあくまでも一例であって本発明を限定するものではないが、以下のようなものが挙げられる。
【0114】
1.リージョンコード比較処理用プログラムへの適用
DVD及びDVD再生装置には、地域を識別するためのリージョンコードが付加されている。DVDを再生する場合は、ディスクに付加されているリージョンコードと、再生装置に付加されているリージョンコードとを比較し、再生可能地域であることを確認した場合のみ、再生を行う。このようにリージョンコードの比較処理を行う理由は次のとおりである。
【0115】
例えば、ある国において、映画のDVDが発売されたとき、他の国ではその映画がまだ映画館で上映されているとする。この場合、前者の国で発売されたDVDを、後者の国の再生装置で見ることができたなら、映画館でその映画を見ようとする人は減少してしまう。リージョンコードの比較処理を行うことによって、映画上映中または上映前の地域では、そのDVDを再生できないようにすることで、これを防ぐことができる。
【0116】
また、宗教上の問題などで、特定のコンテンツの再生を禁止する地域がある場合、リージョンコード比較処理を行うことによって、禁止されたコンテンツを再生できないようにすることもできる。
【0117】
しかし、リージョンコード比較処理の制御プログラムを改竄して比較処理を行わないようにされた場合、再生不可地域であっても再生されてしまい、上記のような地域保護ができなくなる。
【0118】
そこで、リージョンコード比較処理の制御プログラムを保護プログラムとして誤り訂正符号を付加することにより、改竄されても訂正可能な範囲内であれば、正しいリージョンコード比較処理を行って、不正な再生を防ぐことができる。また、訂正不能であった場合でも、改竄されたことはわかるため、機器を停止させるなど、再生させないようにすることができる。したがって、どのように改竄されても不正再生を防止することができる。
【0119】
2.ドライブとホスト間の相互認証処理用のプログラムへの適用
DVDの再生やコピーを行う際、DVDドライブとホスト間で相互認証を行い、相互認証が確認できた場合のみ、暗号化されたデータを解くためのキーをホストに渡す。しかし、相互認証処理のプログラムを改竄され、相互認証しないようにされた場合、暗号化されたデータを解くためのキーが無条件でホストに渡るため、著作権を保護することができなくなる。
【0120】
そこで、相互認証処理のプログラムを保護プログラムとして誤り訂正符号を付加すれば、改竄されても訂正範囲内であれば、改竄前の状態に訂正することができる。これにより、正しい相互認証処理を行うことができる。また、訂正不能であっても、改竄されたことはわかるため、暗号を解くキーをホストに渡さないようにすることができる。したがって、どのように改竄されても、不正再生や不正コピーを防止することができる。
【0121】
なお、本発明は、コンピュータで使用可能なまたは読み取り可能なコンピュータプログラム記録媒体として実現することも可能である。本発明のコンピュータプログラムを記録するための媒体としては、制御プログラムを格納することができる任意の記録媒体を用いることができる。記録媒体の例としては、これらに限定されないが、例えば、磁気テープ、磁気ディスク、光ディスク、光磁気ディスク、磁気カード、メモリ等を挙げることができる。また、記録媒体上では、本発明にかかるコンピュータプログラム(制御プログラム)は、例えば圧縮された状態で記録されていてもよい。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるデバイスの構成の一例を示すブロック図である。
【図2】本発明の実施の形態1におけるプログラムメモリに格納する制御プログラムの実行可能形式を作成する方法を示すフローチャートである。
【図3】DVDの内符号(PI)の構成を示す図である。
【図4】本発明の実施の形態1における保護プログラムを誤り訂正する方法の一例を示すフローチャートである。
【図5】本発明の実施の形態1における保護プログラムの命令を実行する方法を示すフローチャートである。
【図6】本発明の実施の形態1におけるプログラム複製処理におけるプログラム領域の配置図である。
【図7】本発明の実施の形態1におけるプログラム訂正処理におけるプログラム領域の配置図である。
【図8】本発明の実施の形態1におけるモジュール呼出処理におけるプログラム領域の配置図である。
【図9】本発明の実施の形態1における誤り訂正回路によって誤り訂正された後の訂正プログラムの構成を示す図である。
【図10】本発明の実施の形態1におけるマイコンに対するアドレス空間を示す図である。
【図11】本発明の実施の形態2におけるプログラムメモリに格納する制御プログラムの実行可能形式を作成する方法を示すフローチャートである。
【図12】本発明の実施の形態2におけるバイナリデータをデータ変換する方法を示すフローチャートである。
【図13】本発明の実施の形態2におけるデータ変換に用いるスクランブル回路の構成を示す回路図である。
【図14】本発明の実施の形態2におけるデバイスの構成の一例を示すブロック図である。
【図15】本発明の実施の形態2における制御プログラムの命令を実行する方法を示すフローチャートである。
【符号の説明】
70,805 相対番地リスト
71,72 公開関数
73,74,75 内部関数
100,1400 デバイス
101 マイコン
102 プログラムメモリ
103 書き換え可能メモリ
104 誤り訂正回路
105 内部バス
211 保護プログラムのプログラムソース
212 保護プログラムの実行可能形式のバイナリデータ
213,1112 符号化したバイナリデータ
214,1113 データ配列(プログラムソース形式)
215,1114 全制御プログラムソース
216,1115 実行可能形式のバイナリデータ
610 非保護プログラム
611 保護プログラム
612 複製プログラム
613,804 訂正プログラム
800 アドレス空間
801 プログラムメモリ領域
802 書き換え可能メモリ領域
1111 データ変換後のバイナリデータ
1401 データ復元回路

Claims (22)

  1. CPUを有するデバイスの動作を前記CPUを介して制御するためのコンピュータプログラムであって、
    誤り訂正符号が付加された保護プログラムと、
    前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムとを含むことを特徴とするコンピュータプログラム。
  2. 誤り訂正回路を含むデバイスを制御するためのプログラムであって、
    前記保護プログラムの誤り訂正を行う命令は、前記誤り訂正回路に誤り訂正を実行させるための命令である、請求項1に記載のコンピュータプログラム。
  3. 前記訂正プログラムは、
    少なくとも一つの関数と、
    前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含む、請求項1に記載のコンピュータプログラム。
  4. 前記保護プログラムは、前記誤り訂正符号の付加と可逆的なデータ変換処理の両方を施されており、
    前記非保護プログラムは、前記データ変換処理の逆変換処理を行う命令を含む、請求項1に記載のコンピュータプログラム。
  5. 前記データ変換処理の逆変換処理を行う復元回路を含むデバイスを制御するためのプログラムであり、
    前記逆変換を行う命令は、前記復元回路に逆変換処理を実行させるための命令である、請求項4に記載のコンピュータプログラム。
  6. 前記保護プログラムに対して誤り訂正および前記逆変換処理を施した結果として得られる訂正プログラムが、
    少なくとも一つの関数と、
    前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含む、請求項4に記載のコンピュータプログラム。
  7. 請求項1〜6のいずれか一項に記載のコンピュータプログラムを記録した記録媒体。
  8. CPUと、プログラムメモリと、書き換え可能メモリとを備えたデバイスであって、
    前記プログラムメモリは、前記CPUを介して当該デバイスを制御するコンピュータプログラムを格納し、
    前記コンピュータプログラムは、
    誤り訂正符号が付加された保護プログラムと、
    前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムとを含み、
    前記書き換え可能メモリは、前記誤り訂正の結果として得られた訂正プログラムを格納し、
    前記CPUは、前記書き換え可能メモリから前記訂正プログラムを読み出して実行することを特徴とするデバイス。
  9. 前記保護プログラムから誤りが検出された場合、誤りの訂正が不可能であれば、デバイスの少なくとも一部分の動作を制限する、請求項8に記載のデバイス。
  10. 前記保護プログラムから誤りが検出された場合、誤りの訂正が可能か否かにかかわらず、デバイスの少なくとも一部分の動作を制限する、請求項8に記載のデバイス。
  11. 誤り訂正回路をさらに含み、
    前記保護プログラムの誤り訂正を行う命令は、前記誤り訂正回路に誤り訂正を実行させるための命令である、請求項8に記載のデバイス。
  12. 前記CPUは、前記訂正プログラムの実行後、当該訂正プログラムを前記書き換え可能メモリから消去する、請求項8に記載のデバイス。
  13. 前記保護プログラムは、前記誤り訂正符号の付加と可逆的なデータ変換処理の両方を施されており、
    前記非保護プログラムは、前記データ変換処理の逆変換処理を行う命令を含む、請求項8に記載のデバイス。
  14. 前記データ変換処理の逆変換処理を行う復元回路をさらに備え、
    前記データ変換処理の逆変換処理を行う命令は、前記逆変換処理を前記復元回路に行わせる命令である、請求項13に記載のデバイス。
  15. 前記誤り訂正回路が、前記復元回路として用いられる、請求項14に記載のデバイス。
  16. 前記保護プログラムに対して誤り訂正を施した結果として得られる訂正プログラムは、
    少なくとも一つの関数と、
    前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含み、
    前記相対番地リストは、前記書き換え可能メモリ上で前記訂正プログラム内の所定位置に配置される、請求項8に記載のデバイス。
  17. 前記保護プログラムに対して誤り訂正および前記逆変換処理を施した結果として得られる訂正プログラムは、
    少なくとも1つの関数と、
    前記訂正プログラム内における各関数の相対的な番地を示す相対番地リストとを含み、
    前記相対番地リストは、前記書き換え可能メモリ上で前記訂正プログラム内の所定位置に配置される、請求項13に記載のデバイス。
  18. CPUを有するデバイスにおいて前記CPUを介して前記デバイスの動作を制御するコンピュータプログラムを生成するための方法であって、
    前記コンピュータプログラムのうち保護すべき部分に誤り訂正符号を付加した保護プログラムを作成するステップと、
    前記保護プログラムの誤り訂正を行う命令と、前記誤り訂正の結果として得られる訂正プログラムを呼び出す命令とを含む非保護プログラムのプログラムソースに、前記保護プログラムをプログラムソース形式に変換して結合するステップと、
    前記結合されたプログラムソースをコンパイルおよびリンクするステップとを含むことを特徴とする、コンピュータプログラム生成方法。
  19. 前記コンピュータプログラムは、誤り訂正回路を含むデバイスを制御するためのプログラムであって、
    前記保護プログラムの誤り訂正を行う命令は、前記誤り訂正回路に誤り訂正を実行させるための命令である、請求項18に記載のコンピュータプログラム生成方法。
  20. 前記保護プログラムに、可逆的なデータ変換処理を施すステップをさらに含み、
    前記非保護プログラムは、前記データ変換処理の逆変換処理を行う命令を含む、請求項18に記載のコンピュータプログラム生成方法。
  21. 前記コンピュータプログラムは、前記データ変換処理の逆変換処理を行う復元回路を含むデバイスを制御するためのプログラムであり、
    前記逆変換処理を行う命令は、前記復元回路に逆変換処理を実行させるための命令である、請求項18に記載のコンピュータプログラム生成方法。
  22. 前記保護プログラムが、少なくとも一つの関数を含み、
    前記保護プログラム内における各関数の相対的な番地を示す相対番地リストを前記コンピュータプログラム内に作成するステップをさらに含む、請求項18に記載のコンピュータプログラム生成方法。
JP2003103321A 2002-04-08 2003-04-07 コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス Withdrawn JP2004005562A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003103321A JP2004005562A (ja) 2002-04-08 2003-04-07 コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002104828 2002-04-08
JP2003103321A JP2004005562A (ja) 2002-04-08 2003-04-07 コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス

Publications (1)

Publication Number Publication Date
JP2004005562A true JP2004005562A (ja) 2004-01-08

Family

ID=30446731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003103321A Withdrawn JP2004005562A (ja) 2002-04-08 2003-04-07 コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス

Country Status (1)

Country Link
JP (1) JP2004005562A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9461023B2 (en) 2011-10-28 2016-10-04 Bridgelux, Inc. Jetting a highly reflective layer onto an LED assembly
US9653437B2 (en) 2011-01-09 2017-05-16 Bridgelux, Inc. Packaging a substrate with an LED into an interconnect structure only through top side landing pads on the substrate

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9653437B2 (en) 2011-01-09 2017-05-16 Bridgelux, Inc. Packaging a substrate with an LED into an interconnect structure only through top side landing pads on the substrate
US9893039B2 (en) 2011-01-09 2018-02-13 Bridgelux, Inc. Packaging a substrate with an LED into an interconnect structure only through top side landing pads on the substrate
US9985004B2 (en) 2011-01-09 2018-05-29 Bridgelux, Inc. Packaging a substrate with an LED into an interconnect structure only through top side landing pads on the substrate
US10325890B2 (en) 2011-01-09 2019-06-18 Bridgelux, Inc. Packaging a substrate with an LED into an interconnect structure only through top side landing pads on the substrate
US9461023B2 (en) 2011-10-28 2016-10-04 Bridgelux, Inc. Jetting a highly reflective layer onto an LED assembly

Similar Documents

Publication Publication Date Title
US7095853B2 (en) System and method for preventing an illegal copy of contents
US6252961B1 (en) Method and apparatus for performing data encryption and error code correction
US7283633B2 (en) Information recording and/or reproducing method and information recording and/or reproducing device
US6691229B1 (en) Method and apparatus for rendering unauthorized copies of digital content traceable to authorized copies
JP4889638B2 (ja) 検証方法、検証プログラム、記録媒体、情報処理装置、集積回路
US8341429B2 (en) Data transfer device
JP2003208755A (ja) 記録方法、記録装置、再生方法及び再生装置
US7433488B2 (en) Information recording medium drive device, information processing apparatus, data replay control system, data replay control method, and computer program
US20040153918A1 (en) Tamper-resistant computer program product
JP2004030882A (ja) レンダリング装置、コピー制御方法及びプログラム
JP3735591B2 (ja) 信号処理装置、信号処理方法、及び記憶媒体
JP3837368B2 (ja) 著作権保護システム、記録機器及び復号機器
JP2004005562A (ja) コンピュータプログラム、その生成方法およびこれを記録した媒体、並びにコンピュータプログラムを実行するデバイス
US7127618B2 (en) Data protection via reversible data damage
KR100734385B1 (ko) 데이터 처리 장치, 데이터 기록 장치, 데이터 재생 장치 및데이터 기억 방법
JP2004220682A (ja) 暗号キー管理システム、av信号記録再生装置、生産・サービス用設備及びコンピュータ・ソフトウェア
JP2006011682A (ja) 情報記録媒体検証装置、および情報記録媒体検証方法、並びにコンピュータ・プログラム
KR20060090562A (ko) 데이터 처리 장치, 데이터 기록 장치, 데이터 재생 장치 및데이터 기억 방법
US7278020B2 (en) Digital watermarking apparatus and application apparatus using the same
JP2008283660A (ja) 光学式記憶媒体およびそのデータの暗号化用に対応する暗号法
JP2001155421A (ja) 記録装置、記録方法、再生装置、再生方法及び記録媒体
WO2011096344A1 (ja) 情報記録装置、情報再生装置、情報再生方法及び情報記録方法
US20010034838A1 (en) Control program, device including the control program, method for creating the control program, and method for operating the control program
JPWO2006051791A1 (ja) データ再生方法及びデータ処理装置
JP2004014112A (ja) 著作権保護システム、記録機器及び復号機器

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060704