(57)【特許請求の範囲】
【請求項１】
データを記憶する記憶手段と、
現在日時を取得する日時取得手段と、
前記記憶手段に記憶するデータを受信する受信手段と、
前記受信手段によって受信したデータから、当該データに対して受信時に付与された受信日時に関する情報を取得する受信日時取得手段と、
前記受信日時取得手段によって取得された前記データの受信日時と、前記日時取得手段によって取得した現在日時とに所定時間以上の違いがあるか否かを判断する受信日時判断手段と、
前記受信日時判断手段によって前記受信日時と現在日時とに所定時間以上の違いがないと判断された場合に、前記日時取得手段によってあらたに取得した現在日時を、前記データの一部に書き込む書き込み手段と、
前記書き込み手段によって書き込まれた現在日時からの経過時間を計時する計時手段と、
前記計時手段によって計時された経過時間が、あらかじめ設定された期限を経過しているか否かを判断する期限判断手段と、
前記期限判断手段によって前記期限を経過したと判断された場合に、前記記憶手段によって記憶されたデータの全部または一部であって、連続するディジタルデータを順次読み込む第１の読込手段と、
前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、
前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算または減算し、当該加算または減算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第１の演算処理手段と、
前記第１の演算処理手段によって演算処理されたデータを前記記憶手段へ出力する第１の出力手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記記憶手段は、記憶されていた前記データに、第１の出力手段によって出力されたデータを上書きすることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
コードを入力する入力手段と、
前記入力手段によって入力されたコードが所定のコードであるか否かを判断するコード判断手段と、
前記コード判断手段による判断の結果、前記入力手段によって入力されたコードが所定のコードであると判断された場合に、前記記憶手段によって記憶された、前記第１の出力手段によって出力されたデータの全部または一部であって、前記連続するディジタルデータを順次読み込む第２の読込手段と、
前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、
前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算または加算し、当該減算または加算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第２の演算処理手段と、
前記第２の演算処理手段によって演算処理されたデータを前記記憶手段へ出力する第２の出力手段と、
を備えたことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記記憶手段は、記憶されていた前記第１の出力手段から出力されたデータに、前記第２の出力手段によって出力されたデータを上書きすることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
さらに、前記記憶手段に記憶するデータであって圧縮されたデータを受信または読み取るデータ取得手段と、
前記データ取得手段によって受信または読み取られたデータの解凍処理をおこなう解凍手段と、を備え、
前記受信日時判断手段は、前記解凍手段によって前記データの解凍処理がおこなわれた日時と、前記日時取得手段によって取得した現在日時とに所定時間以上の違いがあるか否かを判断することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記第１の演算処理手段および前記第２の演算処理手段は、所定の連続パターンの配列からなる８ビットのバイナリーコードを前記所定の値として、加算または減算の対象となるディジタルデータに順次加算または減算することを特徴とする請求項３または４に記載の情報処理装置。
【請求項７】
受信手段と、受信日時判断手段と、日時取得手段と、日時取得手段と、受信日時判断手段と、書き込み手段と、期限判断手段と、第１の読込手段と、第１の判定処理手段と、第１の演算処理手段と、第１の出力手段と、を備えた情報処理装置の記憶手段に記憶されたデータの使用期限を制御するデータ使用期限制御方法において、
前記受信手段が、前記記憶手段に記憶するデータを受信する受信工程と、
前記受信日時取得手段が、前記受信工程によって受信したデータから、当該データに対して受信時に付与された受信日時に関する情報を取得する受信日時取得工程と、
前記日時取得手段が、現在日時を取得する日時取得工程と、
前記受信日時判断手段が、前記受信日時取得工程によって取得された前記データの受信日時と、前記日時取得工程によって取得した現在日時とに所定時間以上の違いがあるか否かを判断する受信日時判断工程と、
前記受信日時判断手段によって前記受信日時と現在日時とに所定時間以上の違いがないと判断された場合に、前記書き込み手段が、前記日時取得工程によってあらたに取得した現在日時を、前記データの一部に書き込む書き込み工程と、
前記計時手段が、前記書き込み手段によって書き込まれた現在日時からの経過時間を計時する計時工程と、
前記期限判断手段が、前記計時工程によって計時された経過時間が、あらかじめ設定された期限を経過しているか否かを判断する期限判断工程と、
前記期限判断工程によって前記期限を経過したと判断された場合に、前記第１の読込手段が、前記期限を経過したときまたは前記期限経過後に、前記記憶手段に記憶されていたデータの全部または一部であって、連続するディジタルデータを順次読み込む第１の読込工程と、
前記第１の判定処理手段が、前記第１の読込工程によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定工程と、
前記第１の判定工程によって判定された結果、前記第１の演算手段が、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算または減算し、当該加算または減算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを最下位のデータに加算または減算する第１の演算工程と、
前記第１の演算工程によって演算処理されたデータを前記第１の出力手段が、前記記憶手段へ出力する第１の出力工程と、
を含んだことを特徴とするデータ使用期限制御方法。
【請求項８】
前記記憶手段に記憶されていた前記データに、前記第１の出力工程によって出力されたデータを上書きすることを特徴とする請求項７に記載のデータ使用期限制御方法。
【請求項９】
前記情報処理装置は、さらに入力手段と、コード判断手段と、第２の読込手段と、第２の判定手段と、第２の演算手段と、第２の出力手段とを備え、
前記入力手段が、コードを入力する入力工程と、
前記コード判断手段が、前記入力工程によって入力されたコードが所定のコードであるか否かを判断するコード判断工程と、
前記コード判断工程による判断の結果、前記入力工程によって入力されたコードが所定のコードであると判断された場合に、前記第２の読込手段が、前記記憶手段によって記憶された、前記第１の出力工程によって出力されたデータの全部または一部であって、前記連続するディジタルデータを順次読み込む第２の読込工程と、
前記第２の判定手段が、前記第２の読込工程によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定工程と、
前記第２の判定工程によって判定された結果、前記第２の演算手段が、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算または加算し、当該減算または加算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第２の演算工程と、
前記第２の出力手段が、前記第２の演算工程によって演算処理されたデータを前記記憶手段へ出力する第２の出力工程と、
を含んだことを特徴とする請求項７または８に記載のデータ使用期限制御方法。
【請求項１０】
前記記憶手段に記憶されていた前記第１の出力工程によって出力されたデータに、前記第２の出力工程によって出力されたデータを上書きすることを特徴とする請求項９に記載のデータ使用期限制御方法。
【請求項１１】
さらに、前記情報処理装置は、データ取得手段と、解凍手段と、を備え、
前記データ取得手段が、前記記憶手段に記憶するデータであって圧縮されたデータを受信または読み取るデータ取得工程と、
前記解凍手段が、前記データ取得工程によって受信または読み取られたデータの解凍処理をおこなう解凍工程と、
を含み、
前記受信日時判断工程は、前記解凍工程によって前記データの解凍処理がおこなわれた日時と、前記日時取得工程によって取得した現在日時とに所定時間以上の違いがあるか否かを判断することを特徴とする請求項７〜１０のいずれか一つに記載のデータ使用期限制御方法。
【請求項１２】
前記第１の演算工程および前記第２の演算工程は、所定の連続パターンの配列からなる８ビットのバイナリーコードを前記所定の値として、加算または減算の対象となるディジタルデータに順次加算または減算することを特徴とする請求項９または１０に記載のデータ使用期限制御方法。
【請求項１３】
前記請求項７〜１２のいずれか一つに記載された方法をコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、情報処理装置内に記憶されたデータに使用期限の制御をおこなう情報処理装置、データ使用期限制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
従来、アプリケーションソフトウエアなどのプログラムデータは、いわゆる「お試し版」として、使用者に使用期限付きで使用させ、所定の期限を経過するとその使用が不能となるものがある。このような「お試し版」のプログラムデータは、そのデータ内にタイマーデータを備えており、そのデータが所定の期限を過ぎると、起動を停止するものであったり、操作に必要な（プログラム）データの全部または一部を変更あるいは消去するものであった。
【０００３】
ここで、上記「お試し版」の目的は、使用者に対して所定期間だけ試用させ、その後は、当該プログラムデータの使用料を徴収しようとするものである。したがって、所定期間経過後は、使用料を支払うことなしに当該プログラムデータの使用を確実に制限できる（不能とする）ことが望まれる。そして、上記「お試し版」の目的を達成するために、期限が経過後は、プログラムデータを再び復元できないように変容したり、破壊したり、または消去したりするものがある。
【０００４】
【発明が解決しようとする課題】
しかしながら、期限経過にともない、プログラムデータを復元できないようにするため、当該プログラムデータを継続して使用したいという要望がある場合でも、上記プログラムデータとは別のデータを再度インストールする必要がある。したがって、それまで上記プログラムデータを使用することによって作成したデータなども破壊等されてしまうため、使用期限付きで使用していた状態を保持したまま継続して使用することができないという問題点があった。
【０００５】
また、継続して使用することを前提として、期限経過後はとりあえず容易に戻せる程度の変容のみを施したのでは、その変容を容易に復元されてしまい、不正使用を許容してしまうという問題点があった。
【０００６】
この発明は、上記に鑑みてなされたものであって、期限付きで使用を許可するプログラムを含むデータを、そのデータ・サイズを増大させることなく、使用ができないように内容を変容することで、確実にデータの使用を不能にすることが可能であるとともに、いったん使用を制限したデータをその後に再び使用を可能とする情報処理装置、データ使用期限制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記の目的を達成するために、請求項１に記載の発明にかかる情報処理装置は、データを記憶する記憶手段と、現在日時を取得する日時取得手段と、前記記憶手段に記憶するデータを受信する受信手段と、前記受信手段によって受信したデータから、当該データに対して受信時に付与された受信日時に関する情報を取得する受信日時取得手段と、前記受信日時取得手段によって取得された前記データの受信日時と、前記日時取得手段によって取得した現在日時とに所定時間以上の違いがあるか否かを判断する受信日時判断手段と、前記受信日時判断手段によって前記受信日時と現在日時とに所定時間以上の違いがないと判断された場合に、前記日時取得手段によってあらたに取得した現在日時を、前記データの一部に書き込む書き込み手段と、前記書き込み手段によって書き込まれた現在日時からの経過時間を計時する計時手段と、前記計時手段によって計時された経過時間が、あらかじめ設定された期限を経過しているか否かを判断する期限判断手段と、前記期限判断手段によって前記期限を経過したと判断された場合に、前記記憶手段によって記憶されたデータの全部または一部であって、連続するディジタルデータを順次読み込む第１の読込手段と、前記第１の読込手段によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定処理手段と、前記第１の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算または減算し、当該加算または減算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第１の演算処理手段と、前記第１の演算処理手段によって演算処理されたデータを前記記憶手段へ出力する第１の出力手段と、を備えることを特徴とする。
【０００８】
また、請求項２に記載の発明にかかる情報処理装置は、請求項１に記載の発明において、前記記憶手段が、記憶されていた前記データに、前記第１の出力手段によって出力されたデータを上書きすることを特徴とする。
【０００９】
また、請求項３に記載の発明にかかる情報処理装置は、請求項１または２に記載の発明において、コードを入力する入力手段と、前記入力手段によって入力されたコードが所定のコードであるか否かを判断するコード判断手段と、前記コード判断手段による判断の結果、前記入力手段によって入力されたコードが所定のコードであると判断された場合に、前記記憶手段によって記憶された、前記第１の出力手段によって出力されたデータの全部または一部であって、前記連続するディジタルデータを順次読み込む第２の読込手段と、前記第２の読込手段によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定処理手段と、前記第２の判定処理手段によって判定された結果、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算または加算し、当該減算または加算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第２の演算処理手段と、前記第２の演算処理手段によって演算処理されたデータを前記記憶手段へ出力する第２の出力手段と、を備えたことを特徴とする。
【００１０】
また、請求項４に記載の発明にかかる情報処理装置は、請求項３に記載の発明において、前記記憶手段が、記憶されていた前記第１の出力手段から出力されたデータに、前記第２の出力手段によって出力されたデータを上書きすることを特徴とする。
【００１２】
また、請求項５に記載の発明にかかる情報処理装置は、請求項１〜４のいずれか一つに記載の発明において、さらに、前記記憶手段に記憶するデータであって圧縮されたデータを受信または読み取るデータ取得手段と、前記データ取得手段によって受信または読み取られたデータの解凍処理をおこなう解凍手段と、を備え、前記受信日時判断手段は、前記解凍手段によって前記データの解凍処理がおこなわれた日時と、前記日時取得手段によって取得した現在日時とに所定時間以上の違いがあるか否かを判断することを特徴とする。
【００１３】
また、請求項６に記載の発明にかかる情報処理装置は、請求項３または４に記載の発明において、前記第１の演算処理手段および前記第２の演算処理手段は、所定の連続パターンの配列からなる８ビットのバイナリーコードを前記所定の値として、加算または減算の対象となるディジタルデータに順次加算または減算することを特徴とする。
【００１５】
また、請求項７に記載の発明にかかるデータ使用制限方法は、受信手段と、受信日時判断手段と、日時取得手段と、日時取得手段と、受信日時判断手段と、書き込み手段と、期限判断手段と、第１の読込手段と、第１の判定処理手段と、第１の演算処理手段と、第１の出力手段と、を備えた情報処理装置の記憶手段に記憶されたデータの使用期限を制御するデータ使用期限制御方法において、前記受信手段が、前記記憶手段に記憶するデータを受信する受信工程と、前記受信日時取得手段が、前記受信工程によって受信したデータから、当該データに対して受信時に付与された受信日時に関する情報を取得する受信日時取得工程と、前記日時取得手段が、現在日時を取得する日時取得工程と、前記受信日時判断手段が、前記受信日時取得工程によって取得された前記データの受信日時と、前記日時取得工程によって取得した現在日時とに所定時間以上の違いがあるか否かを判断する受信日時判断工程と、前記受信日時判断手段によって前記受信日時と現在日時とに所定時間以上の違いがないと判断された場合に、前記書き込み手段が、前記日時取得工程によってあらたに取得した現在日時を、前記データの一部に書き込む書き込み工程と、前記計時手段が、前記書き込み手段によって書き込まれた現在日時からの経過時間を計時する計時工程と、前記期限判断手段が、前記計時工程によって計時された経過時間が、あらかじめ設定された期限を経過しているか否かを判断する期限判断工程と、前記期限判断工程によって前記期限を経過したと判断された場合に、前記第１の読込手段が、前記期限を経過したときまたは前記期限経過後に、前記記憶手段に記憶されていたデータの全部または一部であって、連続するディジタルデータを順次読み込む第１の読込工程と、前記第１の判定処理手段が、前記第１の読込工程によって読み込まれたディジタルデータが所定の連続パターンの配列であるか否かを判定する第１の判定工程と、前記第１の判定工程によって判定された結果、前記第１の演算手段が、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する所定数のディジタルデータの全部または一部に対して、所定の値を加算または減算し、当該加算または減算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを最下位のデータに加算または減算する第１の演算工程と、前記第１の演算工程によって演算処理されたデータを前記第１の出力手段が、前記記憶手段へ出力する第１の出力工程と、を含んだことを特徴とする。
【００１６】
また、請求項８に記載の発明にかかるデータ使用制限制御方法は、請求項７に記載の発明において、前記記憶手段に記憶されていた前記データに、前記第１の出力工程によって出力されたデータを上書きすることを特徴とする。
【００１７】
また、請求項９に記載の発明にかかるデータ使用制限制御方法は、請求項７または８に記載の発明において、前記情報処理装置は、さらに入力手段と、コード判断手段と、第２の読込手段と、第２の判定手段と、第２の演算手段と、第２の出力手段とを備え、前記入力手段が、コードを入力する入力工程と、前記コード判断手段が、前記入力工程によって入力されたコードが所定のコードであるか否かを判断するコード判断工程と、前記コード判断工程による判断の結果、前記入力工程によって入力されたコードが所定のコードであると判断された場合に、前記第２の読込手段が、前記記憶手段によって記憶された、前記第１の出力工程によって出力されたデータの全部または一部であって、前記連続するディジタルデータを順次読み込む第２の読込工程と、前記第２の判定手段が、前記第２の読込工程によって読み込まれたディジタルデータが前記所定の連続パターンの配列であるか否かを判定する第２の判定工程と、前記第２の判定工程によって判定された結果、前記第２の演算手段が、前記所定の連続パターンの配列であると判定されたディジタルデータの後に連続する前記所定数のディジタルデータの全部または一部に対して、前記所定の値を減算または加算し、当該減算または加算より前記ディジタルデータが所定のデータ量が増減した場合は、増減分のデータを演算結果とする第２の演算工程と、前記第２の出力手段が、前記第２の演算工程によって演算処理されたデータを前記記憶手段へ出力する第２の出力工程と、を含んだことを特徴とする。
【００１８】
また、請求項１０に記載の発明にかかるデータ利用期限制御方法は、請求項９に記載の発明において、前記記憶手段に記憶されていた前記第１の出力工程によって出力されたデータに、前記第２の出力工程によって出力されたデータを上書きすることを特徴とする。
【００２０】
また、請求項１１に記載の発明にかかるデータ使用期限制御方法は、請求項７〜１０のいずれか一つに記載の発明において、さらに、前記情報処理装置は、データ取得手段と、解凍手段と、を備え、前記データ取得手段が、前記記憶手段に記憶するデータであって圧縮されたデータを受信または読み取るデータ取得工程と、前記解凍手段が、前記データ取得工程によって受信または読み取られたデータの解凍処理をおこなう解凍工程と、を含み、前記受信日時判断工程は、前記解凍工程によって前記データの解凍処理がおこなわれた日時と、前記日時取得工程によって取得した現在日時とに所定時間以上の違いがあるか否かを判断することを特徴とする。
【００２１】
また、請求項１２に記載の発明にかかるデータ使用制限制御方法は、請求項９または１０に記載の発明において、前記第１の演算工程および前記第２の演算工程は、所定の連続パターンの配列からなる８ビットのバイナリーコードを前記所定の値として、加算または減算の対象となるディジタルデータに順次加算または減算することを特徴とする。
【００２３】
また、請求項１３に記載の発明にかかる記録媒体は、請求項７〜１２のいずれか一つに記載された方法をコンピュータに実行させるプログラムを記録したことを特徴とする。これによって、当該プログラムをコンピュータによって読み取ることが可能となり、これによって、請求項７〜１２の動作をコンピュータによって実現することが可能である。
【００２４】
【発明の実施の形態】
以下、この発明にかかる情報処理装置、データ使用制限制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態について添付図面を参照し、詳細に説明する。なお、この実施の形態によってこの発明が限定されるものではない。
【００２５】
〔実施の形態〕
（情報処理装置の内部構成）
まず、この発明の実施の形態にかかる情報処理装置のハードウエア構成について説明する。情報処理装置は、たとえば、パーソナルコンピュータ、ワークステーションであり、パーソナルコンピュータは、ディスクトップ型、ノート型、あるいはモバイル型のものが含まれる。また、携帯電話機やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの携帯情報端末などであってもよく、さらには、テレビゲーム機であってもよい。
【００２６】
図１は、この発明の実施の形態にかかる情報処理装置のハードウエア構成を示すブロック図である。図１のブロック図において、情報処理装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フロッピーディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フロッピーディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インタフェース）１０９と、キーボード１１１と、マウス１１２と、スキャナ１１３と、プリンタ１１４と、（ＰＣ）タイマー１１５と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２７】
ここで、ＣＰＵ１０１は、情報処理装置全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２８】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶する。着脱可能な記録媒体として、ＦＤ１０７の他、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）などであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータに関するウインドウ（ブラウザ）を表示する。たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどである。
【００２９】
Ｉ／Ｆ（インタフェース）１０９は、通信回線１１０を通じてＬＡＮやインターネットなどのネットワークに接続され、ネットワークを介して、他のサーバや情報処理装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワークと内部とのインタフェースを司り、他のサーバや端末装置からのデータの入出力を制御する。たとえば、モデムなどである。また、情報処理装置が携帯電話機のように無線通信をおこなう場合には、Ｉ／Ｆ１０９が通信機（無線送受信機）としての機能も備える。
【００３０】
キーボード１１１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。タッチパネル式の入力パッドなどであってもよい。マウス１１２は、カーソルの移動や範囲選択、あるいはウインドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボール、ジョイスティックなどであってもよい。
【００３１】
スキャナ１１３は、画像を光学的に読み取り、情報処理装置内に画像データを取り込む。また、プリンタ１１４は、画像データや文書データを印刷する。たとえば、レーザプリンタ、インクジェットプリンタなどである。
【００３２】
また、タイマー１１５は、情報処理装置に内蔵されている時計であり、情報処理装置内の西暦、月日、時分秒を管理する。情報処理装置は、このタイマー１１５が示す時刻に基づいて、各種処理の制御をおこなう。
【００３３】
（情報処理装置の機能的構成）
つぎに、この発明の実施の形態にかかる情報処理装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる情報処理装置の構成を機能的に示すブロック図である。
【００３４】
図２のブロック図において、情報処理装置は、圧縮データ受信部２０１、圧縮データ読取部２０２と、解凍処理部２０３と、データ記憶部２０４と、タイマー設定部２０５と、ＰＣタイマー２０６と、判断部２０７と、入力部２０８と、解除コード処理部２０９と、起動処理部２１０と、データ防護処理部２１１と、表示部２１２と、から構成される。
【００３５】
圧縮データ受信部２０１は、ネットワークから、通常のデータのほか、圧縮されたプログラムデータを含む各種データを受信する。圧縮データ受信部２０１は、たとえば、図１に示したＩ／Ｆ１０９によってその機能を実現する。また、圧縮データ読取部２０２は、ＣＤ−ＲＯＭやＦＤなどから、通常のデータのほか、圧縮されたプログラムデータを含む各種データを読み取る。圧縮データ読み取り部２０２は、たとえば、ＦＤＤ１０６によってその機能を実現する。
【００３６】
解凍処理部２０３は、圧縮データ受信部２０１および圧縮データ読取部２０２によって受信されまたは読み取られた圧縮データの解凍処理をおこなう。また、解凍処理がおこなわれたことをタイマー設定部２０５に通知する。解凍処理部２０３は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能（解凍処理）を実現する。
【００３７】
データ記憶部２０４は、解凍処理部２０３によって解凍されたデータを記憶する。また、プログラムデータであれば、データ記憶部２０４に起動指示にしたがって起動ができるような状態で記憶される。データ記憶部２０４は、ＨＤＤ１０４およびＨＤ１０５によってその機能を実現する。
【００３８】
タイマー設定部２０５は、ＰＣタイマー２０６からタイマーデータを受信し、受信したタイマーデータを、解凍処理部２０３によって解凍処理され、データ記憶部２０４に記憶されたデータのタイマーを設定する。タイマー設定部２０５は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能を実現する。また、ＰＣタイマー２０６は、時間を掲示するものであり、たとえば、図１に示したタイマー１１５によってその機能を実現する。
【００３９】
判断部２０７は、タイマー設定部２０５から時間に関する情報を取得し、あらかじめ設定された期限を経過しているか否かを判断する。判断部２０７は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能を実現する。
【００４０】
入力部２０８は、解除データを入力する。また、入力部２０８はプログラムの起動指示に関する情報も入力する。入力部２０８は、たとえば、キーボード１１１またはマウス１１２などによってその機能を実現する。
【００４１】
解除コード処理部２０９は、解除コードが入力された場合には、データ防護処理部２１１に対して、防護キーの除去処理をおこなうように通知する。また、入力部２０８から起動指示があった場合に、解除コードがすでに入力されているか否かを判断する。そして、すでに解除コードが入力されている場合には、データ防護処理をおこなわずに、プログラムの起動処理をおこなうように起動処理部２１０へ通知する。また、解除コードが入力されていない場合には、その旨を判断部２０７へ通知する。判断部２０７は、その通知があった場合に、上述のように、あらかじめ設定された期限を経過しているか否かを判断するようにする。解除コード処理部２０９は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能を実現する。
【００４２】
起動処理部２１０は、起動指示があった場合に、データ記憶部２０４に記憶されたプログラムを所定の手順で起動する。起動処理部２１０は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能を実現する。
【００４３】
データ防護処理部２１１は、データ記憶部２０４に記憶された（プログラム）データに対して防護キー付加処理および防護キー除去処理をおこなう。データ防護処理部２１１は、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５、ＦＤ１０７などにあらかじめ記憶されたプログラムをＣＰＵ１０１が実行することによって上記機能を実現する。なお、その詳細については、後述する。
【００４４】
表示部２１２は、図５に示す解除コード入力画面５００、またはエラーメッセージの表示などをおこなう。表示部２１２は、たとえば、図１に示すディスプレイ１０８によってその機能を実現する。
【００４５】
（プログラムデータのダウンロード・セットアップの内容）
つぎに、この発明の実施の形態にかかる情報処理装置におけるプログラムデータのダウンロード・セットアップの内容（手順）について説明する。図３は、この発明の実施の形態にかかる情報処理装置におけるプログラムデータのダウンロードおよびセットアップの内容（手順）を示すフローチャートである。
【００４６】
図３のフローチャートにおいて、まず、ネットワークを通じて圧縮されたプログラムデータ（以下「圧縮データ」という）を受信する（ステップＳ３０１）。また、ここでは、ネットワークを通じて圧縮データを受信する代わりに、ＣＤ−ＲＯＭなどの着脱可能な記録媒体からデータを読み取ることによって、圧縮データを入力（取り込み）することができる。
【００４７】
つぎに、ステップＳ３０１において受信または入力された圧縮データの解凍処理を実行する（ステップＳ３０２）。その後、ＰＣタイマー２０６から、情報処理装置が持っているタイマーデータ（日時、時刻データ）を取得する（ステップＳ３０３）。そして、取得したタイマーデータとあらかじめ上記プログラムデータに設定されていたタイマーデータとを比較する（ステップＳ３０４）。あらかじめ上記プログラムデータに設定されていたタイマーデータとは、圧縮データをダウンロードする際にスタンプされた日時、時刻に関するデータである。
【００４８】
両者を比較して、両者間に一定時間（日数）以上の違いがあるか否かを判断する（ステップＳ３０５）。そして、一定時間以上の違いがある場合（ステップＳ３０５：Ｙｅｓ）は、セットアッププログラムを停止し（ステップＳ３０６）、すべての処理を終了する。これは、情報処理装置内のタイマーを不正に変更し、当該プログラムの使用期限を不当に延長させることを防止するためである。
【００４９】
各情報処理装置内のタイマーは、情報処理装置ごとに独自のクロックによって作動しているため多少の時刻の誤差は生じる。そのようにして生じた誤差については許容範囲とする。また、悪意を持ってタイマーを変更したのではない場合を考慮し、ステップＳ３０６において、たとえば「タイマーの時刻を再設定した後、もう一度セットアップをやり直してください。」というメッセージを表示した後、セットアッププログラムを停止するようにしてもよい。その場合、タイマーの時刻を調整した後、再度、同様の操作をおこなうことによって、セットアップを完了することができる。
【００５０】
ステップＳ３０５において、一定時間以上の違いがなかった場合（ステップＳ３０５：Ｎｏ）は、情報処理装置内のタイマーデータを上記プログラムデータの所定領域にコピー（上書き）する（ステップＳ３０７）。そして、コピーされたタイマーデータの時刻からタイマーを始動する（ステップＳ３０８）。その後、（プログラム）データを記憶部２０４によって記憶する（ステップＳ３０９）。
【００５１】
また、ステップＳ３０４において、ＣＤ−ＲＯＭなどからプログラムデータが読み取られた場合は、読み取られた時刻（日時）を知り得ない。その場合は、セットアップ有効期限としてあらかじめ設定した時刻（日時）に関するデータをＣＤ−ＲＯＭのプログラムデータ内に格納し、その時刻に関するデータと、情報処理装置内のタイマーデータとを比較する。そして、上記設定した時刻前であれば、上記情報処理装置内のタイマーデータをコピーする。あるいは、ＣＤ−ＲＯＭなどからのセットアップの場合は、ステップＳ３０４〜Ｓ３０６の各ステップをスキップするようにしてもよい。
【００５２】
これによって、解凍されたプログラムデータは、データ記憶部２０４に記憶され、起動可能な状態となる。このようにして、プログラムデータのダウンロードおよびセットアップを完了することができる。
【００５３】
（プログラムの起動の内容）
つぎに、図３のフローチャートで示したような手順でセットアップを完了したプログラムデータの起動の内容（手順）について説明する。図４は、この発明の実施の形態にかかる情報処理装置におけるプログラムのデータ起動の内容（手順）を示すフローチャートである。
【００５４】
図４のフローチャートにおいて、まず、操作者によるプログラムデータの起動の指示（あるいは他のプログラムによる起動命令など）があったか否かを判断する（ステップＳ４０１）。ここで、起動の指示を待って、指示があった場合（ステップＳ４０１：Ｙｅｓ）は、つぎに、すでに解除コードが入力されているか否かを判断する（ステップＳ４０２）。ここで、すでに解除コードが入力されている場合（ステップＳ４０２：Ｙｅｓ）は、ステップＳ４１４へ移行する。解除コードについての詳細は後述する。
【００５５】
一方、ステップＳ４０２において、未だ解除コードが入力されていない場合（ステップＳ４０２：Ｎｏ）は、つぎに、タイマーを参照する（ステップＳ４０３）。そして、タイマーが正常に作動しているか否かを判断する（ステップＳ４０４）。より具体的には、タイマーデータを改変したか否かを判断し、改変された記録がなければ正常に作動していると判断する。これは、タイマーデータの改変による当該プログラムの使用期限が不当に延長されるのを防止するためである。
【００５６】
ここで、正常に作動していないと判断した場合（ステップＳ４０４：Ｎｏ）は、すべての処理を終了し、プログラムの起動処理は実行されない。一方、正常に動作している場合（ステップＳ４０４：Ｙｅｓ）は、つぎに、当該プログラムの使用期限がすでに期限切れになっているか否かを判断する（ステップＳ４０５）。当該プログラムの使用期限はあらかじめ設定されており、その使用期限が、たとえば、タイマー始動から３０日となっている場合には、タイマーが始動した日時から現在の日時（起動指示があった日時）まで、すでに３０日を経過しているか否かで判断する。
【００５７】
また、たとえば、使用期限が２０００年１２月３１日まで、といった使用期限である場合には、タイマーの現在の日時（起動指示があった日時）が、２０００年１２月３１日よりも後か否かで判断する。なお、使用期限が期限切れか否かの判断については、その他の方法であって、周知技術として一般に知られているものであってもよい。
【００５８】
ここで、期限切れでない場合（ステップＳ４０５：Ｎｏ）は、ステップＳ４１４へ移行し、起動処理を実行する。一方、期限切れである場合（ステップＳ４０６：Ｙｅｓ）は、つぎに、ステップＳ４０７においておこなう防護キー付加処理をすでにおこなっているか否かを判断する（ステップＳ４０６）。すでに防護キー付加処理がおこなわれた場合には、データの所定の位置にフラグをたてておく。そして、そのフラグの有無によって、すでに防護キー付加処理がおこなわれたか否かを容易に判断することができる。なお、防護キー付加処理の詳細については後述するが、すでに防護キー付加処理が施されたデータに対して、再度の防護キー付加処理をおこなってしまうと、防護キー除去処理によってもとの正常なデータへ復元できなくなってしまう。そのため、複数回にわたって防護キー付加処理をおこなわないようにする。
【００５９】
ステップＳ４０６において、すでに防護キー付加処理がおこなわれている場合（ステップＳ４０６：Ｙｅｓ）は、防御キー付加処理（ステップＳ４０７）はおこなわずに、ステップＳ４０８へ移行する。一方、未だ防護キー付加処理がおこなわれていない場合（ステップＳ４０６：Ｎｏ）は、防御キー付加処理をおこなう（ステップＳ４０７）。なお、ステップＳ４０７の防護キー付加処理の内容についての詳細は後述する。
【００６０】
ステップＳ４０７において防護キー付加処理がおこなわれた後、つぎに、解除コード入力画面を表示する（ステップＳ４０８）。解除コード入力画面は、たとえば図５に示すポップアップウインドウ５００よって表示部２１２（ディスプレイ１０８）に表示される。図５において、５０１は解除コード入力欄であり、この入力欄にプログラムデータの提供者から提供された解除コードを入力する。解除コードは、たとえば、代金支払いにともなう当該プログラムの継続使用許諾を受けた場合に提供者から提供される。また、解除コードは、複数桁の英数文字からなり、カーソルを解除コード入力欄５０１の所定位置に移動させた後、操作者がキーボード１１１をもちいて入力する。解除コードの入力後、「ＯＫ」ボタン５０２をマウス１１２またはキーボード１１１などでクリックすることによって、解除コードの入力が完了することになる。
【００６１】
そして、解除コードが入力されたか否かを判断し（ステップＳ４０９）、解除コードが入力されていない場合（ステップＳ４０９：Ｎｏ）は、図５に示す「キャンセル」ボタン５０３が押下（クリック）されたか否かを判断する（ステップＳ４１０）。そして、「キャンセル」ボタン５０３が押下されなければ（ステップＳ４１０：Ｎｏ）、ステップＳ４０９へ移行し、ステップＳ４０９とステップＳ４１０の各処理を繰り返しおこなう。一方、「キャンセル」ボタン５０３が押下された場合（ステップＳ４１０：Ｙｅｓ）は、すべての処理を終了する。
【００６２】
ステップＳ４０９において、解除コードが入力された場合（ステップＳ４０９：Ｙｅｓ）、より具体的には、解除コード入力欄５０１に解除コードが入力された後、「ＯＫ」ボタン５０２が押下された場合は、入力された解除コードが正しいか否か、すなわち、あらかじめ格納された解除コードと、入力された解除コードの全部または一部が一致するか否かを判断する（ステップＳ４１１）。ここで、正しくない場合（ステップＳ４１１：Ｎｏ）は、たとえば「解除コードが正しくありません。もう一度入力し直してください。」というエラーメッセージを表示し（ステップＳ４１２）、ステップＳ４０８へ移行し、再度解除コード入力画面を表示する（ステップＳ４０８）。
【００６３】
そして、入力された解除コードが正しい場合（ステップＳ４１１：Ｙｅｓ）は、つぎに、防護キー除去処理をおこなう（ステップＳ４１３）。なお、防護キー除去処理の詳細な内容については後述する。その度、起動処理をおこない（ステップＳ４１４）、すべての処理を終了する。起動処理は通常の技術をもちいるものとし、その説明は省略する。
【００６４】
なお、図４のフローチャートにおいては、プログラムの起動指示があった場合に、期限切れであれば、防護キー付加処理をおこなうようにしたが、プログラムの起動指示とは無関係に、常に、タイマーを監視し、期限切れになった際、直ちに、防護キー付加処理をおこなうようにしてもよい。
【００６５】
（時間の経過にともなうプログラムデータの状態）
つぎに、時間の経過にともない、解凍処理され、データ記憶部２０４に記憶されたプログラムデータがどのような状態になっているかについて説明する。図６は、この発明の実施の形態にかかる情報処理装置のデータ記憶部２０４に記憶されたプログラムデータの時間の経過にともなう状態の変化を示す説明図である。
【００６６】
図６において、ダウンロード・セットアップがおこなわれた際にデータ記憶部２０４に記憶されたプログラムデータは、正常の状態であり、通常に起動処理によってアプリケーションが立ち上がる。そして、所定の期限が経過し期限切れになったのち、最初に起動処理がなされた場合に、図５においても説明したように、防護キー付加され、それによって、正常データが変容データに変えられる。そして、変容されたプログラムデータは、そのままでは、起動することができない。したがって、データ記憶部２０４に記憶されたプログラムデータをコピーして、別の情報処理装置で起動させることができない。
【００６７】
そして、解除コードが入力された際、防護キーが除去され、再び、変容されたプログラムデータは正常のデータに戻される。一度、解除コードが入力された後は、プログラムデータは正常な状態を保持するため、再度、解除コードを入力する必要はない。このようにして、使用期限が切れた後、解除コードを入力するまでの、当該プログラムデータの使用権限がない間は、当該プログラムデータを起動させることができないだけでなく、プログラムデータ自体が変容してしまっているので、そのプログラムデータをコピーして他の情報処理装置にて起動させるという不正な使用を確実に防止することができる。
【００６８】
（防護キー付加処理の内容）
つぎに、実施の形態にかかる情報処理装置が備えるデータ防護処理部２１１がおこなう防護キー付加処理の内容について説明する。実施の形態にかかる情報処理装置のデータ防護処理部２１１は、シリアル入力されるビットデータ列に対してバイト変換をおこなうことでバイト列を取得する。そして、取得したバイト列に含まれる所定のバイトデータの存在を条件として、バイトコードから所定範囲にわたるバイトデータに対して所定の防護キー値を加算（減算）することで符号化をおこなうことを特徴としている。また、図１１に示すように、逆の手順（防護キー除去処理）によって復号化をおこなうことを特徴とする。
【００６９】
図７は、この発明の本実施の形態にかかるデータ防護処理部２１１の構成を示すブロック図である。図７において、データ防護処理部２１１は、第１バッファ７０１と、防護キー付加位置判定部７０２と、防護キー付加処理部７０３と、第２バッファ７０４と、付加条件／付加範囲／防護キー記憶部７０５と、を備える構成となっている。
【００７０】
ここで、付加条件／付加範囲／防護キー記憶部７０５は、付加条件、付加範囲および防護キー値を記憶するものである。ここで、付加条件とは、バイトデータが、どのバイトコードを示した場合にそのバイトデータからいくつ後のバイトデータに対して防護キー値の加算をおこなうかを示すものである。したがって、この付加条件は、所定のバイトコードと加算開始位置を示す数値とから構成される。
【００７１】
また、付加範囲とは、付加条件によって示される加算開始位置から、いくつのバイトデータにわたって防護キー値を加算するかを示すものであり、その範囲を示す数値によって表わされる。防護キー値とは、上記したように、バイトデータに加算する数値を表わすものである。
【００７２】
第１バッファ７０１は、データ記憶部２０４から受け取った（プログラム）データ、特にシリアルビットデータを、少なくとも複数のバイトが構成できる容量分のデータを蓄積する記憶部である。また、この第１バッファ７０１は、ディジタルデータのシリアル−パラレル変換を可能としたＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリとしての機能を果たす。
【００７３】
防護キー付加位置判定部７０２は、第１バッファ７０１に蓄積されたバイトデータをその蓄積順に取り出し、取り出したバイトデータが、上記した付加条件によって示されるバイトコードに一致するか否かを判定するものである。防護キー付加位置判定部７０２は、第１バッファ７０１から取り出したバイトデータが上記付加条件を満たす場合には、たとえば、その旨を示す付加フラグをＯＮ状態にしたり、後述するように付加カウンタをカウントアップする。
【００７４】
防護キー付加処理部７０３は、第１バッファ７０１から取り出されたバイトデータを、防護キー付加位置判定部７０２を介して受け取り、受け取ったバイトデータが上記付加条件を満たす場合に、そのバイトデータに上記防護キー値を加算する。具体的には、防護キー付加処理部７０３は、上記付加フラグや付加カウンタの状態に応じて、バイトデータに対して防護キー値を加算するか否かを判定する。
【００７５】
第２バッファ７０４は、防護キー付加処理部７０３において付加処理が施されたバイトデータおよび付加処理が施されなかったバイトデータを蓄積する記憶部である。また、この第２バッファ７０４は、ディジタルデータのパラレル−シリアル変換を可能としたＦＩＦＯメモリとしての機能を果たす。したがって、データ防護理部２１１は、第１バッファ７０１が受け取ったデータに対し、所定の条件を満たすデータ部のみを変容させることになる。特に、その変容前後において、データサイズに変化がないことを特徴としている。
【００７６】
つぎに、このデータ防護処理部２１１の動作について説明する。ここでは、説明を簡単にするために、上記した付加条件のうち加算開始位置を１とする。これは、付加条件によって示されるバイトコード、すなわち付加処理を実行するきっかけとなるバイトデータのつぎに位置するバイトデータから防護キー値の加算または減算をおこなうことを意味する。
【００７７】
図８は、この発明の本実施の形態にかかる情報処理装置のデータ防護処理部２１１の符号化処理を示すフローチャートである。データ防護処理部２１１は、符号化処理を開始するにあたって、まず、符号化の対象となるデータ記憶部２０４に記憶された（プログラム）データを第１バッファ７０１に取りこむ（ステップＳ８０１）。そして、防護キー付加位置判定部７０２が、第１バッファ７０１から１バイト分のデータを読み出す（ステップＳ８０２）。また、防護キー付加位置判定部７０２は、自身が管理する付加カウンタが０より大きい値を示しているか否かを判定する（ステップＳ８０３）。
【００７８】
ステップＳ８０３において付加カウンタが０である場合（ステップＳ８０３：Ｎｏ）には、防護キー付加位置判定部７０２は、第１バッファ７０１から読み出したバイトデータに対して付加処理を施す必要はないと判断し、現在読み出しているバイトデータが防護キー付加条件、すなわち上記したバイトコードと一致するか否かを判定する（ステップＳ８０８）。
【００７９】
ステップＳ８０８において、バイトデータが防護キー付加条件と一致しない場合（ステップＳ８０８：Ｎｏ）には、防護キー付加位置判定部７０２は、現在読み出しているバイトデータをそのまま次段の防護キー付加処理部７０３に渡し、防護キー付加処理部７０３は付加処理を実行することなく、そのバイトデータを第２バッファ７０４に書き込む（ステップＳ８１０）。
【００８０】
ステップＳ８０８において、バイトデータが防護キー付加条件と一致する場合（ステップＳ８０８：Ｙｅｓ）には、防護キー付加位置判定部７０２は、上記した付加カウンタを１にセットし（ステップＳ８０９）、その後、ステップＳ８１０の処理をおこなう。
【００８１】
一方、ステップＳ８０３において、付加カウンタが０より大きい場合（ステップＳ８０３：Ｙｅｓ）には、防護キー付加位置判定部７０２は、第１バッファ７０１から読み出したバイトデータに対して付加処理を施す必要があると判断し、次段の防護キー付加処理部７０３に、現在読み出しているバイトデータを渡すとともに、付加処理を依頼する。これによって、防護キー付加処理部７０３は、受け取ったバイトデータに、付加条件／付加範囲／防護キー記憶部７０５に記憶されている防護キー値を加算する（ステップＳ８０４）。
【００８２】
図９は、防護キー値の加算処理（付加処理）を説明するための説明図である。ステップＳ８０４における加算処理は、たとえば、図９に示すように、防護キー値がヘキサコード“１Ｅ”で表わされ、第１バッファ７０１から読み出したデータがバイナリコードで“１０１１００１０”と表わされたバイトデータ、すなわちヘキサコード“Ｂ２”で表わされる場合、バイトデータ“Ｂ２”に防護キー値“１Ｅ”を加算することによりおこなう。したがって、この場合、加算結果として、バイナリコード“１１０１００００”と表わされたバイトデータ、すなわちヘキサコード“Ｄ０”を得ることができる。
【００８３】
防護キー付加位置判定部７０２は、防護キー付加処理部７０３による加算処理が終わると、または防護キー付加処理部７０３に対して加算処理を依頼すると、付加カウンタが付加条件／付加範囲／防護キー記憶部７０５に記憶されている付加範囲を超えているか否かを判定する（ステップＳ８０５）。
【００８４】
ステップＳ８０５において、付加カウンタが付加範囲を超えていない場合（ステップＳ８０５：Ｎｏ）は、防護キー付加位置判定部７０２は、付加カウンタの値をインクリメントし（ステップＳ８０７）、その後、ステップＳ８１０の処理をおこなう。一方、ステップＳ８０５において付加カウンタが付加範囲を超えている場合（ステップＳ８０５：Ｙｅｓ）は、防護キー付加位置判定部７０２は、付加カウンタの値をリセットし（ステップＳ８０６）、その後、ステップＳ８１０の処理をおこなう。
【００８５】
ステップＳ８１０の処理後、第２バッファ７０４のデータを順次、データ記憶部２０４へ送出する（ステップＳ８１１）。そして、送出されたデータがデータ記憶部２０４に書き込まれる（上書きされる）（ステップＳ８１２）。
【００８６】
以上の処理によって、データ防護処理部２１１は、第１バッファ７０１に蓄積されたバイトデータに対し、付加条件／付加範囲／防護キー記憶部７０５に記憶された諸条件にしたがった符号化を実現する。図１０は、符号化処理によって得られるバイトデータ列の例を示す図である。
【００８７】
図１０に示すように、付加条件がバイトコード“５Ｄ”のつぎからとし、防護キー値を“１Ｅ”、付加範囲を３とした場合には、データ防護処理部２１１の符号化処理によって、“５Ｄ  ９Ｂ  １１  ４０  Ａ９”の部分は、“５Ｄ  Ｂ９２Ｆ  ５Ｅ  Ａ９”に変容され、“５Ｄ  ８８  ＦＡ  １Ｂ  ３３”の部分は、“５Ｄ  Ａ６  １９  ３９  ３３”に変容される。ここで、“ＦＡ”から“１９”に変容されているように、防護キー値を加算した結果が、１バイトで表わされる数値範囲を超える場合には、その超えた部分の数値を加算結果とする。
【００８８】
また、上記の例においては、防護キー値を一種類のみ設定していたが、防護キー値を複数の値から構成されるデータパターンとして用意しておき、付加範囲の先頭から順に、そのデータパターンが順次示す値を、加算または減算するようにしてもよい。たとえば、図１０に示した例で、付加条件および付加範囲は同じで、防護キー値を“１Ｅ，ＡＢ，７Ｆ”とすると、“５Ｄ”のつぎの“９Ｂ”に対して、“１Ｅ”を加算され、つぎの“１１”に対して“ＡＢ”を加算し、つぎの“４０”に対して“７Ｆ”を加算する。
【００８９】
また、付加条件、付加範囲の設定方法については、以下のような方法であってもよい。たとえば、付加条件を“５Ｄ”のつぎとそのつぎをとばして３つ先からとし、付加範囲を一つおきに３バイトとする。それによって、図１０に示した例をもちいると、加算の対象となるのは、（“９Ｂ”と“１１”をとばした３つ先の）“４０”と“ＤＤ”と“３８”ということになる。いずれにせよ、所定の数値のバイトデータの後に連続する所定数のバイトデータの全部または一部であれば、その内容についてはどのようなものであってもよい。
【００９０】
プログラムは、基本的には８ビットコードの配列として表現されており、そのソースでコマンド等を構成するアルファベットや数値を表わすのに、８ビットコードのうち７ビットしかもちいておらず、最上位ビットである８ビット目を“１”に置換すると、コンピュータ上で認識できないコードになる。したがって、対象のデータがプログラムである場合は、防護キー値として、８ビット目を“１”に置換するようなヘキサコードとして、“８０”〜”ＦＦ”のいずれかをもちいるとより有効である。
【００９１】
（防護データ除去処理の内容）
図１１は、この発明の本実施の形態にかかるデータ防護処理部２１１の別の構成を示すブロック図である。図１１において、データ防護処理部２１１は、第３バッファ１１０１と、防護キー除去位置判定部１１０２と、防護キー除去処理部１１０３と、第４バッファ１１０４と、付加条件／付加範囲／防護キー記憶部１１０５と、を備える構成となっており、上述した防護キー付加処理におけるデータ防御処理部２１１と逆の処理をおこなう。なお、付加条件／付加範囲／防護キー記憶部１１０５は、付加条件／付加範囲／防護キー記憶部７０５と別個に設ける必要はなく、兼用してもよい。
【００９２】
第３バッファ１１０１は、上記した第１バッファ７０１と同様の機能を果たす記憶部である。防護キー除去位置判定部１１０２は、第３バッファ１１０１に蓄積されたバイトデータをその蓄積順に取り出し、取り出したバイトデータが、上記した付加条件によって示されるバイトコードに一致するか否かを判定するものである。防護キー除去位置判定部１１０２は、第３バッファ１１０１から取り出したバイトデータが上記付加条件を満たす場合には、たとえば、その旨を示す付加フラグをＯＮ状態にしたり、後述するように付加カウンタをカウントアップする。したがって、この防護キー除去位置判定部１１０２は、機能としては上記した防護キー付加位置判定部７０２と同じであり、復号化処理部において防護キー除去位置判定部１１０２を設けずに、防護キー付加位置判定部７０２を兼用してもよい。
【００９３】
防護キー除去処理部１１０３は、第３バッファ１１０１から取り出されたバイトデータを、防護キー除去位置判定部１１０２を介して受け取り、受け取ったバイトデータが上記付加条件を満たす場合に、そのバイトデータから上記防護キー値を差し引く。具体的には、防護キー除去処理部１１０３は、上記付加フラグや付加カウンタの状態に応じて、バイトデータに対して防護キー値を差し引くか否かを判定する。
【００９４】
第４バッファ１１０４は、防護キー除去処理部１１０３において除去処理が施されたバイトデータおよび除去処理が施されなかったバイトデータを蓄積する記憶部である。また、この第４バッファ１１０４は、ディジタルデータのパラレル−シリアル変換を可能としたＦＩＦＯメモリとしての機能を果たす。したがって、データ防御処理部２１１は、第３バッファ１１０１が受け取ったデータに対し、所定の条件を満たすデータ部のみを変容させることになる。すなわち、上記した防護キー付加処理によって符号化され変容されたデータに対しては復号化処理を施すことになる。
【００９５】
したがって、データ防護処理部２１１によって防護キーが付加されたプログラムデータは、再びデータ防護処理部２１１をもちいて防護キーの除去をおこなわなければ、その内容を正しく取得することはできない。すなわち、データ防護処理部２１１は、符号化／復号化処理を、付加条件／付加範囲／防護キー記憶部７０５，１１０５に記憶された内容にしたがってデータサイズを増減させることなく実行することができる。
【００９６】
つぎに、データ防護処理部２１１の防護キー除去（復号化）処理について説明する。図１２は、この発明の本実施の形態にかかる情報処理装置のデータ防護処理部２１１の復号化処理を示すフローチャートである。図１２において、データ防護処理部２１１が、復号化処理を開始するにあたって、まず、復号化の対象となる、防護キー付加処理がなされたプログラムデータを第３バッファ１１０１に取りこむ（ステップＳ１２０１）。
【００９７】
そして、防護キー除去位置判定部１１０２が、第３バッファ１１０１から１バイト分のデータを読み出す（ステップＳ１２０２）。また、防護キー除去位置判定部１１０２は、自身が管理する付加カウンタが０より大きい値を示しているか否かを判定する（ステップＳ１２０３）。
【００９８】
ステップＳ１２０３において、付加カウンタが０である場合（ステップＳ１２０３：Ｎｏ）には、防護キー除去位置判定部１１０２は、第３バッファ１１０１から読み出したバイトデータに対して除去処理を施す必要はないと判断し、現在読み出しているバイトデータが防護キー付加条件、すなわち上記したバイトコードと一致するか否かを判定する（ステップＳ１２０８）。
【００９９】
ステップＳ１２０８において、バイトデータが防護キー付加条件と一致しない場合（ステップＳ１２０８：Ｎｏ）には、防護キー除去位置判定部１１０２は、現在読み出しているバイトデータをそのまま次段の防護キー除去処理部１１０３に渡す。そして、防護キー除去処理部１１０３は除去処理を実行することなく、そのバイトデータを第４バッファ１１０４に書き込む（ステップＳ１２１０）。
【０１００】
ステップＳ１２０８において、バイトデータが防護キー付加条件と一致する場合（ステップＳ１２０８：Ｙｅｓ）には、防護キー除去位置判定部１１０２は、上記した付加カウンタを１にセットし（ステップＳ１２０９）、ステップＳ１２１０の処理をおこなう。
【０１０１】
一方、ステップＳ１２０３において、付加カウンタが０より大きい場合（ステップＳ１２０３：Ｙｅｓ）には、防護キー除去位置判定部１１０２は、第３バッファ１１０１から読み出したバイトデータに対して減算処理を施す必要があると判断し、次段の防護キー除去処理部１１０３に、現在読み出しているバイトデータを渡すとともに、減算処理を依頼する。
【０１０２】
これによって、防護キー除去処理部１１０３は、受け取ったバイトデータから、付加条件／付加範囲／防護キー記憶部１１０５に記憶されている防護キー値を差し引く（ステップＳ１２０４）。なお、この減算処理は、図９に示した加算処理と逆の処理であるので、ここではその説明を省略する。
【０１０３】
防護キー除去位置判定部１１０２は、防護キー除去処理部１１０３による減算処理が終わると、または防護キー除去処理部１１０３に対して減算処理を依頼すると、付加カウンタが付加条件／付加範囲／防護キー記憶部１１０５に記憶されている付加範囲を超えているか否かを判定する（ステップＳ１２０５）。
【０１０４】
ステップＳ１２０５において、付加カウンタが付加範囲を超えていない場合（ステップＳ１２０５：Ｎｏ）は、防護キー除去位置判定部１１０２は、付加カウンタの値をインクリメントし（ステップＳ１２０７）、その後、ステップＳ１２１０の処理をおこなう。一方、ステップＳ１２０５において、付加カウンタが付加範囲を超えている場合（ステップＳ１２０５：Ｙｅｓ）は、防護キー除去位置判定部１１０２は、付加カウンタの値をリセットし（ステップＳ１２０６）、その後、ステップＳ１２１０の処理をおこなう。
【０１０５】
ステップＳ１２１０の処理後、第４バッファ１１０４のデータが、補助記憶装置からの読み出しデータとして順次送出される（ステップＳ１２１１）。以上の処理によって、データ防護処理部２１１は、第３バッファ１１０１に蓄積されたバイトデータに対し、付加条件／付加範囲／防護キー記憶部１１０５に記憶された諸条件にしたがった復号化を実現する。
【０１０６】
また、上記付加条件／付加範囲／防護キーを、入力された解除コードの全部または一部に基づいて設定するようにしてもよい。すなわち、上記付加条件／付加範囲／防護キーと上記解除コードの全部または一部を対応させておく。具体的には、解除コードのｎ番目およびｎ＋１番目の英数文字を付加条件とし、解除コードのｍ番目およびｍ＋１番目の英数文字を防護キー値とし、さらに、解除コードのｐ番目の数字を付加範囲とする。
【０１０７】
これによって、図４に示したフローチャートのうちの、ステップＳ４１１およびステップＳ４１２の各ステップを省略することができる。ただし、いったん解除コードの入力を誤ってしまうと、誤った付加条件／付加範囲／防護キーにて防護キー解除（付加）処理が施されてしまうため、変容したプログラムデータを元の正常なデータに戻すことができなくなる。そのため、解除コードの入力の際には、誤入力をしないように操作者に警告を促す必要がある。また、いたずらや不正な方法によっておこなおうとした防護キー除去処理を排除できる。
【０１０８】
以上に説明したように、本実施の形態にかかる情報処理装置によれば、所定の期限が経過した場合に、防護キー付加処理の対象となるデータにかかるシリアルデータをバイトごとに監視して、そのバイトデータが所定のバイトコードに一致しているか否かを判定し、一致している場合には、その一致箇所から所定の個数後に受け取ったバイトデータを開始位置として、その開始位置にあるバイトデータから所定の個数にわたるバイトデータに所定の値を加算することで符号化を実現しているので、データの符号化をデータサイズの変化なくデータの内容を変容することができ、それによって、当該データは使用不能となる。
【０１０９】
また、防護キー除去処理の対象となるデータにかかるシリアルデータをバイトごとに監視して、そのバイトデータが所定のバイトコードに一致しているか否かを判定し、一致している場合には、その一致箇所から所定の個数後に受け取ったバイトデータを開始位置として、その開始位置にあるバイトデータから所定の個数にわたるバイトデータから所定の値を差し引くことで、上記した符号化に対応した復号化を実現することができるので、解除コードの入力などによって、一度変容して使用不能となったデータを再び使用可能にすることができる。
【０１１０】
したがって、本実施の形態にかかる情報処理装置は、対象となるデータのすべてをデータ記憶部２０４から受け取らずとも、実際に受け取った部分から順に符号化／復号化処理を実行することが可能になるので、バッファとして大容量のものを必要とすることなく、装置構成を安価にすることができる。
【０１１１】
なお、以上に説明した本実施の形態では、符号化処理において防護キー値を加算し、復号化処理において防護キー値を減算するとしたが、逆に、符号化処理において防護キー値を減算し、復号化処理において防護キー値を加算するようにしてもよい。
【０１１２】
また、本実施の形態で説明したデータ防護処理方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等の情報処理装置（コンピュータ）で実行することにより実現するようにしてもよい。このプログラムは、ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、伝送媒体として、または上記記録媒体を介して、インターネット等のネットワークを介して配布することができる。
【０１１３】
【発明の効果】
以上説明したように、この発明にかかる情報処理装置またはデータ使用期限制御方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体によれば、期限付きで使用を許可するプログラムを含むデータを、そのデータ・サイズを増大させることなく、使用ができないように内容を変容することで、確実にデータの使用を不能にすることが可能であるとともに、いったん使用を制限したデータをその後に再び使用可能とすることができる。
【図面の簡単な説明】
【図１】この発明の実施の形態にかかる情報処理装置のハードウエア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる情報処理装置の構成を機能的に示すブロック図である。
【図３】この発明の実施の形態にかかる情報処理装置のデータのダウンロードおよびセットアップの内容を示すフローチャートである。
【図４】この発明の実施の形態にかかる情報処理装置のプログラムの起動処理の内容を示すフローチャートである。
【図５】この発明の実施の形態にかかる情報処理装置の解除コード入力画面の一例を示す説明図である。
【図６】この発明の実施の形態にかかる情報処理装置のデータの状態の推移を示す説明図である。
【図７】この発明の実施の形態にかかる情報処置装置のデータ防護処理部の構成を示すブロック図である。
【図８】この発明の実施の形態にかかる情報処理装置のデータ防護処理部の符号化処理の内容を示すフローチャートである。
【図９】この発明の実施の形態にかかる情報処理装置のデータ防護処理部において、防護キー値の加算処理を説明するための説明図である。
【図１０】この発明の実施の形態にかかる情報処理装置の符号化処理によって得られるバイトデータ列の一例を示す説明図である。
【図１１】この発明の実施の形態にかかる情報処置装置のデータ防護処理部の別の構成を示すブロック図である。
【図１２】この発明の実施の形態にかかる情報処理装置のデータ防護処理部の復号化処理の内容を示すフローチャートである。
【符号の説明】
１００  バス
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
１０５  ＨＤ
１０６  ＦＤＤ
１０７  ＦＤ
１０８  ディスプレイ
１０９  Ｉ／Ｆ
１１０  通信回線
１１１  キーボード
１１２  マウス
１１３  スキャナ
１１４  プリンタ
１１５  タイマー
２０１  圧縮データ受信部
２０２  圧縮データ読取部
２０３  解凍処理部
２０４  データ記憶部
２０５  タイマー設定部
２０６  ＰＣタイマー
２０７  判断部
２０８  入力部
２０９  解除コード処理部
２１０  起動処理部
２１１  データ防護処理部
２１２  表示部
５００  解除キー入力画面
７０１  第１バッファ
７０２  防護キー付加位置判定部
７０３  防護キー付加処理部
７０４  第２バッファ
７０５，１１０５  付加条件／付加範囲／防護キー記憶部
１１０１  第３バッファ
１１０２  防護キー除去位置判定部
１１０３  防護キー除去処理部
１１０４  第４バッファ
【図１】
0003979782.tif 000002
【図２】
0003979782.tif 000003
【図３】
0003979782.tif 000004
【図４】
0003979782.tif 000005
【図５】
0003979782.tif 000006
【図６】
0003979782.tif 000007
【図７】
0003979782.tif 000008
【図８】
0003979782.tif 000009
【図９】
0003979782.tif 000010
【図１０】
0003979782.tif 000011
【図１１】
0003979782.tif 000012
【図１２】
0003979782.tif 000013