JP3748847B2 - 格納装置、プログラム、ならびに、格納方法 - Google Patents

格納装置、プログラム、ならびに、格納方法 Download PDF

Info

Publication number
JP3748847B2
JP3748847B2 JP2002316380A JP2002316380A JP3748847B2 JP 3748847 B2 JP3748847 B2 JP 3748847B2 JP 2002316380 A JP2002316380 A JP 2002316380A JP 2002316380 A JP2002316380 A JP 2002316380A JP 3748847 B2 JP3748847 B2 JP 3748847B2
Authority
JP
Japan
Prior art keywords
storage
value
read
unit
stored
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.)
Expired - Lifetime
Application number
JP2002316380A
Other languages
English (en)
Other versions
JP2004152001A (ja
Inventor
昌二 森
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.)
Konami Group Corp
Original Assignee
Konami Corp
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 Konami Corp filed Critical Konami Corp
Priority to JP2002316380A priority Critical patent/JP3748847B2/ja
Publication of JP2004152001A publication Critical patent/JP2004152001A/ja
Application granted granted Critical
Publication of JP3748847B2 publication Critical patent/JP3748847B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、格納装置、プログラム、ならびに、格納方法に関する。
【0002】
【従来の技術】
コンピュータを用いた各種の情報処理のおいては、値をメモリやハードディスクなどの揮発性記憶装置や不揮発性記憶装置に格納したり、読み出したりする処理は極めて重要である。
【0003】
一方で、このような処理を行うプログラムは、ユーザが所有するコンピュータにおいて実行されるのが一般的である。したがって、値の格納や読出を行うための格納装置は、ユーザの所有物であることがきわめて多い。したがって、ユーザや当該コンピュータにおいて実行されるアプリケーションには、このような格納装置に格納される値を任意に書き換える機会が与えられることになる。
【0004】
【発明が解決しようとする課題】
しかしながら、あるプログラムが用いるためにメモリ等に格納した値をユーザや他のアプリケーション任意に書き換えうることとすると、当該プログラムが誤動作するおそれが生ずる、という問題がある。
【0005】
このほか、ユーザが所有するコンピュータ自体の故障や電源切れなどにより、格納装置の動作が不安定となり、格納された値が変化してしまうような場合にも、同様の問題が生ずる。
【0006】
【発明が解決しようとする課題】
そこで、格納装置に格納された値が不用意に書き換えられたり変化したりしないようにし、書き換えられたり変化したりした場合には、できるだけこれを修復し、必要に応じて、各種の報告を行う技術が強く求められている。
【0007】
本発明は、このような課題を解決するためになされたもので、格納される値の不用意な書き換えや変化を修復するのに好適な格納装置、これをコンピュータによって実現するプログラム、ならびに格納方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0009】
本発明の第1の観点に係る格納装置は、複数の格納読出処理部と、格納要求受付部と、読出要求受付部と、読出出力部と、を備え、以下のように構成する。
【0010】
すなわち、格納要求受付部は、格納すべき値を指定する格納要求を受け付けて、これを格納値として複数の格納読出処理部のそれぞれに与える。したがって、同じ値が、格納値として複数の格納読出処理部のそれぞれに与えられることとなる。
【0011】
一方、読出要求受付部は、格納された値を読み出すべき旨の読出要求を受け付ける。したがって、読出要求受付部が当該要求を受け付けることを契機として、当該格納装置に過去に格納された値を読み出す処理が開始される。
【0012】
さらに、複数の格納読出処理部のそれぞれは、変換計算部と、格納部と、逆変換計算部と、を備え、以下のように構成する。
【0013】
まず、当該格納読出処理部は、他の格納読出処理部とは異なる所定の変換計算と、これに対応付けられる所定の逆変換計算と、を用いる。ここで、当該所定の変換計算と、これに対応する所定の逆変換計算とは、当該格納値として与えられうる任意の値に当該所定の変換計算を適用した結果に当該所定の逆変換計算を適用すると、当該値が得られる関係にある。すなわち、後者は前者の逆関数である。
【0014】
まず、変換計算部は、当該格納値が与えられた場合、これに当該所定の変換計算を適用し、その結果を変換済値として得る。変換計算は各格納読出処理部ごとに異なるので、得られる変換済値は、偶然一致する場合を除き、互いに異なる値となる。
【0015】
一方、格納部は、得られた変換済値を格納する。したがって、各格納読出処理部は、一般には、互いに異なる値を格納部に格納することとなる。
【0016】
さらに、逆変換計算部は、当該読出要求が受け付けられた場合、格納部に格納された値に当該所定の逆変換計算を適用し、その結果を出力値として得る。格納部には、変換計算部によって計算された変換済値が記憶されているのが通例であり、変換計算と逆変換計算とは、上記のような関係を有するため、格納部に変換済値がそのまま格納されていれば、得られる出力値は、最後に与えられた格納値に一致するはずである。一方、格納された値の改変・変更がされていれば、得られる出力値は、格納値と異なる可能性が極めて高い。したがって、異なる値に適用するとできるだけ(もしくは、必ず)異なる値が得られるような逆変換計算と、これに対応付けられる変換計算を採用することが望ましい。
【0017】
一方、読出出力部は、複数の格納読出処理部のそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力し、異なるものがある場合、最大多数の出力値を、読出要求に対する結果として出力する。すなわち、読出要求が受け付けられると、各格納読出処理部から出力される値が一致する場合はそのままそれを結果として出力する。これは、最後に与えられた格納値に一致するはずである。また、一致しないものがある場合には、多数決によって、これを決する。これは、最後に与えられた格納値に一致する可能性が最も高いものである。
【0018】
本発明により、格納された値が不用意に書き換えられたり変化した場合であっても、できるだけ元の値を修復するのに好適な格納装置であって、従来のメモリや各種の記憶装置と置き換え可能なものを提供することができる。
【0019】
また、本発明の格納装置は、更新部をさらに備え、更新部は、複数の格納読出処理部のそれぞれから得られた出力値に異なるものがある場合、当該最大多数の出力値以外の出力値が得られた格納読出処理部のそれぞれに、当該最大多数の出力値を格納値として与えて更新させるように構成することができる。すなわち、多数決によって少数派となった格納読出処理部には、多数派の値が再度書き込まれることとなり、格納装置が記憶する値の一貫性が保たれることとなる。
【0020】
本発明により、格納された値が不用意に書き換えられたり変化した場合であっても、書き換えられた部分、変化した部分そのものをできるだけ元の値に戻すのに好適な格納装置を提供することができる。
【0021】
また、本発明の格納装置は、報告部をさらに備え、報告部は、複数の格納読出処理部のそれぞれから得られた出力値に異なるものがある場合であって、最大多数の出力値が複数種類ある場合、エラーが発生した旨の報告をするように構成することができる。すなわち、多数決によって格納されている値を決することができない場合、たとえば、格納読出処理部が3つある場合であって、互いに異なる値を出力値として出力した場合には、エラーが発生した旨の報告をすることとなる。
【0022】
本発明により、格納装置に記憶されている情報が修復不能なまでに改変・変更されている場合には、これをエラーとして発見することができるようになる。
【0023】
また、本発明の格納装置において、複数の格納読出処理部が備える格納部のそれぞれは、メモリ内に動的に確保され、所定の条件が満たされる場合、異なるアドレスに動的に再確保されるように構成することができる。すなわち、格納部のそれぞれのアドレスは、条件によって適宜変化することとなる。
【0024】
本発明により、各格納読出処理部が備える格納部のそれぞれのアドレスが適宜変化するため、たとえば悪意あるアプリケーションが格納部のアドレスを追跡することにより値の改変や変更を試みようとしても、これをできるだけ防止することができる。
【0025】
また、本発明の格納装置において、複数の格納読出処理部のいずれか少なくとも1つにおいて、これが備える格納部は、複数の記憶装置を有し、以下のように構成することができる。
【0026】
すなわち、格納部は、得られた変換済値を複数の記憶装置に分割して記憶し、これが備える逆変換計算部は、当該読出要求が受け付けられた場合、当該複数の記憶装置に分割して記憶された値を結合して、これを当該格納部に格納された値とする。たとえば、変換済値をビット列として見たときの、下位の所定ビット列を1つの格納装置に、それ以外のビット列を他の格納装置に、それぞれ分割して記憶する。必要があれば、これらのビット列を単に結合すれば、変換済値が得られることとなる。
【0027】
本発明により、たとえば、1つの格納装置をユーザが利用するローカルなコンピュータ、他の格納装置をユーザが利用するサーバに配置することができ、ローカルなコンピュータ側で値の改変や変更があっても、適宜これを修復したり、改変や変更を検出することができるようになる。
【0028】
また、本発明の格納装置において、複数の格納読出処理部のそれぞれについて、格納部は、当該格納値のハッシュ値をさらに格納し、逆変換計算部は、当該読出要求が受け付けられた場合、「当該所定の逆変換計算を適用した結果のハッシュ値と格納部に格納されたハッシュ値とが等しいか否か」を検査し、読出出力部は、複数の格納読出処理部のうち、当該検査の結果が「等しい」もののそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力するように構成することができる。
【0029】
すなわち、逆変換計算の結果のハッシュ値が正しい(格納値のハッシュ値と等しい)場合にのみ、出力値を多数決の候補として採用するので、改変・変更の可能性が極めて低い格納読出処理部のみを多数決に参加させることとなる。
【0030】
本発明により、改変・変更の可能性が極めて低い格納読出処理部の出力値のみを利用して多数決を行うため、読み出した値に対する改変・変更の修復や検出の可能性を増すことができる。
【0031】
また、本発明の格納装置において、複数の格納読出処理部のそれぞれについて、格納部は、当該変換済値のハッシュ値をさらに格納し、逆変換計算部は、当該読出要求が受け付けられた場合、「格納部に格納された値のハッシュ値と格納部に格納されたハッシュ値とが等しいか否か」を検査し、読出出力部は、複数の格納読出処理部のうち、当該検査の結果が「等しい」もののそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力するように構成することができる。
【0032】
すなわち、格納部に格納された値のハッシュ値が正しい(変換済値のハッシュ値と等しい)場合にのみ、出力値を多数決の候補として採用するので、改変・変更の可能性が極めて低い格納読出処理部のみを多数決に参加させることとなる。
【0033】
本発明により、改変・変更の可能性が極めて低い格納読出処理部の出力値のみを利用して多数決を行うため、読み出した値に対する改変・変更の修復や検出の可能性を増すことができる。
【0034】
また、本発明の格納装置において、複数の格納読出処理部が備える変換計算部と逆変換計算部と、は、あらかじめコンピュータ通信網からダウンロードしたプログラムを実行して当該所定の変換計算と当該所定の逆変換計算とを適用し、所定の条件が満たされる場合、当該プログラムを当該コンピュータ通信網から再ダウンロードするように構成することができる。すなわち、プログラムを、適宜コンピュータ通信網からダウンロードして、これを新たな変換計算と逆変換計算のプログラムとして利用する。
【0035】
本発明により、悪意あるアプリケーションにより格納装置に対する改変や変更が発覚した場合であっても、あらたな変換計算と逆変換計算のアルゴリズムを利用させることにより、当該アプリケーションによる将来の攻撃を防止することができる。
【0036】
本発明の他の観点に係るプログラムは、コンピュータ(ゲーム装置であって、コンピュータ通信網に接続されるものを含む。)を、上記の格納装置として機能させるように構成する。このプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【0037】
本発明の他の観点に係る格納方法は、複数の格納読出処理工程と、格納要求受付工程と、読出要求受付工程と、読出出力工程と、を備え、以下のように構成する。
【0038】
すなわち、格納要求受付工程では、格納すべき値を指定する格納要求を受け付けて、これを格納値として複数の格納読出処理工程のそれぞれに与える。一方、読出要求受付工程では、格納された値を読み出すべき旨の読出要求を受け付ける。
【0039】
さらに、複数の格納読出処理工程のそれぞれは、変換計算工程と、格納工程と、逆変換計算工程と、を備え、以下のように構成する。
【0040】
まず、各格納読出処理工程においては、互いに異なる所定の変換計算と、これに対応付けられる所定の逆変換計算と、を用い、互いに異なる格納部を用いる。ここで、当該格納値として与えられうる任意の値に当該所定の変換計算を適用した結果に当該所定の逆変換計算を適用すると、当該値が得られる。
【0041】
すなわち、変換計算工程では、当該格納値が与えられた場合、これに当該所定の変換計算を適用し、その結果を変換済値として得る。一方、格納工程では、得られた変換済値を、当該格納部に格納する。さらに、逆変換計算工程では、当該読出要求が受け付けられた場合、当該格納部に格納された値に当該所定の逆変換計算を適用し、その結果を出力値として得る。
【0042】
一方、読出出力工程では、複数の格納読出処理工程のそれぞれにて得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力し、異なるものがある場合、最大多数の出力値を、読出要求に対する結果として出力する。
【0043】
【発明の実施の形態】
以下に本発明の実施形態を説明する。なお、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本願発明の範囲に含まれる。
【0044】
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係る格納装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0045】
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD(Digital Versatile Disk)−ROMドライブ108と、NIC(Network Interface Card)109と、を備える。
【0046】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の格納装置が実現される。
【0047】
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【0048】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、ゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータを記録される。
【0049】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。
【0050】
インターフェース104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
【0051】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームの進行状態を示すデータ、チャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0052】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0053】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0054】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0055】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0056】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 103に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0057】
NIC 109は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integraged Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line Modem)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0058】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0059】
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0060】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態のゲーム装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0061】
図2は、本実施形態に係る格納装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0062】
格納装置201は、複数の格納読出処理部202と、格納要求受付部204と、読出要求受付部205と、読出出力部206と、報告部207を備える。
【0063】
格納要求受付部204は、格納すべき値を指定する格納要求を受け付け、読出要求受付部205は、格納された値を読み出すべき旨の読出要求を受け付け、読出出力部206は、読出要求に対する結果として、最後に受け付けた格納要求で指定された値(である可能性が高い値)を出力する。したがって、格納装置201は、従来のメモリやハードディスクのような格納装置と透過的に置き換えることができる。
【0064】
なお、これらの各要素は、いずれも複数の格納読出処理部202と協調動作するが、その詳細については以下に述べる。
【0065】
図3は、格納装置201に対する値の格納要求に対する処理の流れを示すフローチャートである。これによって、メモリやハードディスク等の記憶領域に対する値の書込処理と同等の処理が実現されることになる。以下、本図を参照して説明する。
【0066】
まず、格納装置201は、格納要求受付部204により、格納すべき値を指定する格納要求を受け付ける(ステップS301)。以下、理解を容易にするため、当該格納要求に指定された格納すべき値をvとする。各種の整数値、浮動小数点値、固定小数点値、文字列、ビットストリーム等、コンピュータによって表現可能な任意の値を、格納すべき値vとして用いることができる。
【0067】
そして、格納要求受付部204は、複数の格納読出処理部202のそれぞれに、当該格納すべき値vを格納値として与えるが、本実施形態では、これを繰り返し処理により実現する。以下、理解を容易にするため、複数の格納読出処理部202のそれぞれをs0,s1,…,sN-1と表記することとする。すなわち、格納読出処理部202は、N個あることとなる。Nは、3以上であることが望ましい。
【0068】
繰返し処理によって実行するため、RAM 103などに確保されたカウンタiに、まず0を設定する。(ステップS302)。そして、iがN未満であるか否かを調べる(ステップS303)。iがN未満である場合(ステップS303;Yes)、ステップS304に進むが、これは、i (0≦i≦N-1)番目の格納読出処理部si202に対して格納値vを与えることに対応する。以下、詳細に説明する。
【0069】
図4は、格納読出処理部202の概要構成を示す模式図である。格納読出処理部202は、変換計算部401と、格納部402と、逆変換計算部403と、を備える。
【0070】
格納読出処理部si202には、所定の変換計算fi(・)と、所定の逆変換計算gi(・)とが、対応付けられている。これらは、格納値として与えられる可能性があるすべての値xについて、関係
gi(fi(x)) = x
を満たすものである。このような変換計算の具体例については、後述する。なお、変換計算f0(・),f1(・),…,fN-1(・)は、互いに異なることが望ましい。
【0071】
さて、格納読出処理部si202に格納値vが与えられると、変換計算部401は、格納値vに所定の変換計算fi(・)を適用し、その結果fi(v)を変換済値として得る(ステップS304)。この変換計算は、CPU 101が行う。
【0072】
そして、この結果fi(v)を、格納部402に格納する(ステップS305)。格納部402は、RAM 103や外部メモリ106、ハードディスク等のあらかじめ割り当てられた記憶領域である。以下、理解を容易にするため、格納読出処理部si202が備える格納部402をmiと表記する。m0,m1,…,mN-1のアドレスは、互いに異なるものとしなければならない。
【0073】
また、m0,m1,…,mN-1は、メモリ内に動的に確保することが望ましい。さらに、確保されたm0,m1,…,mN-1に対しては、そのそれぞれについて乱数を発生させ、この値を格納することが望ましい。これらの対策をとることにより、悪意あるアプリケーションが格納装置201に記憶された値を盗み出したり、これを書き換える可能性を減らすことができる。
【0074】
ついで、カウンタiの値を1増やし(ステップS306)、ステップS303に戻るが、iの値がN以上である場合(ステップS303;No)、すべての格納読出処理部si202において、格納部mi402に対する書き込みが終わったことになり、値の格納要求に対する処理を終了する。
【0075】
図5は、格納装置201に対する値の読出要求に対する処理の流れを示すフローチャートである。これによって、メモリやハードディスク等の記憶領域に対する値の読出処理と同等の処理が実現されることになる。以下、本図を参照して説明する。
【0076】
まず、格納装置201の読出要求受付部205は、格納された値を読み出すべき旨の読出要求を受け付ける(ステップS501)。そして、カウンタiの値を0に初期化し(ステップS502)、iがN未満であるか否かを調べる(ステップS503)。iがN未満である場合(ステップS503;Yes)、格納読出処理部si202に対して、以下の処理を行う。
【0077】
すなわち、格納部mi402に格納されている値を読み出す(ステップS504)。理解を容易にするため、読み出された値をyiとおく。格納部mi402に格納された値が改変されたり変化していなければ、最後の格納値vに対して所定の変換計算を適用した値fi(v)と値yiとは、等しいはずである。
【0078】
そして、読み出した値yiに対して、所定の逆変換計算gi(・)を適用して、出力値
vi = gi(yi)
を得る(ステップS505)。この逆変換計算は、CPU 101が行う。
【0079】
上述のように、gi(・)は、fi(・)の逆関数であるから、格納部mi402に格納された値が改変されたり変化したりしていなければ、最後の格納値vと出力値viとは等しいはずである。この出力値viは、すべてのRAM 103などの一時的な記憶域に保存しておく。
【0080】
そして、iの値を1増やして(ステップS506)、ステップS503に戻るが、iの値がN以上である場合(ステップS503;No)、ステップS506に進む。すなわち、RAM 103などに保存された出力値v0,v1,…,vN-1がすべて等しいか、それとも、異なる値が存在するかを調べる(ステップS507)。
【0081】
すべて等しい場合(ステップS507;Yes)、各格納部m0,m1,…,mN-1に対する改変や予期しない変化はなかったこととなり、格納装置201の読出出力部206は、当該値v0 =v1 = … = vN-1を、読出要求に対する結果v'として出力して(ステップS508)、本処理を終了する。尚、これは、最後の格納値vに等しい。
【0082】
一方、異なる値が存在する場合(ステップS507;No)、出力値v0,v1,…,vN-1における値の頻度を求め(ステップS509)、唯一の最大多数の値v'を得ることができる(最頻値v'が1つである)か否かを調べる(ステップS510)。たとえば、N=3である場合に、
v0 = 511、v1 = 511、v2 = 71024であればv' = 511とし、
v0 = 123、v1 = 16542、v2 = 123であればv' = 123とし、
v0 = 999、v1 = 8192、v2 = 8192であればv' = 8192とする、
ということである。
【0083】
そして、唯一の最大多数の値v'が得られた場合(ステップS510;Yes)、読出要求に対する結果として出力して(ステップS511)、本処理を終了する。すなわち、多数決をとることにより、最後の格納値vの推定値としてv'を使うことになる。Nの値が3以上であることが望ましいのは、このように多数決をとるためである。
【0084】
一方、最大多数の値v'が複数得られた場合(ステップS510;No)、典型的には、出力値v0,v1,…,vN-1がすべて異なる値であった場合は、報告部207がエラーが発生した旨の報告をして(ステップS512)、本処理を終了する。
【0085】
本実施形態では、メモリ等の改変・変化があった場合であっても、元の値をできるだけ修復することにより、プログラムの誤動作をできるだけ防止することができる。また修復不可能な場合には、エラーが発生した旨の報告をすることができる。
【0086】
(変換計算・逆変換計算の実施形態)
以下では、変換計算・逆変換計算の実施形態について述べる。上述した条件を満たす変換計算・逆変換計算であれば、いかなるものも採用することができるが、計算時間や実現の容易さを考慮して、以下のような種々の実施形態を採用することができる。
【0087】
まず、格納値vが整数である場合について考える。この場合は、CPU 101のレジスタに対する演算をそのまま利用できることが多い。
【0088】
第1の手法としては、定数に対する排他的論理和(eXclusive OR;XOR)を利用するものである。すなわち、定数ciに対して、
fi(x) = x XOR ci
gi(x) = x XOR ci
のようにする。この場合は、定数ciを、各格納読出処理部202によって異なるものとすればよい。
【0089】
第2の手法としては、定数に対する加算と減算を利用するものである。すなわち、定数ciに対して、
fi(x) = x + ci
gi(x) = x - ci
のようにする。この場合も、定数ciを、各格納読出処理部202によって異なるものとすればよい。
【0090】
また、これらを適宜組み合わせてもよい。たとえばCPU 101のレジスタが16ビットである場合には、65536を法とする整数演算が行われ、加減算や排他的論理和演算では、情報が失われることがなく高速な演算が期待できることから、乗除算等を用いるよりも有利である。
【0091】
次に、格納値vが文字列である場合について考える。以下、理解を容易にするため、長さMの文字列xに含まれる文字コードを、先頭から順にp0,p1,…,pM-1と表記することとする。
【0092】
これに対して、長さLの文字列t(同様に文字コードを先頭から順にq0,q1,…,qN-1であるとする。)を用意する。
【0093】
そして、演算u = h(x,t)により得られる長さMの文字列u(同様に文字コードを先頭から順にr0,r1,…,rM-1であるとする。)を考える。演算h(x,t)は、以下のように定義する。
rj = pj XOR q(j MOD N)
【0094】
ここで、j MOD Nは、jをNで割ったときの余りを求める演算である。このように定義した場合、定文字列tiに対して
fi(x) = h(x,ti)
gi(x) = h(x,ti)
のようにする。この場合、低文字列tiを、各格納読出処理部202によって異なるものとすればよい。この場合は、変換計算と逆変換計算で、同じプログラムを利用することができるため、コード量の低減に役立つほか、定文字列tiを変化させるだけでさまざまなバリエーションを得ることができる。
【0095】
なお、定数ciは、あらかじめ定めた値とするほか、以下のようにして決めることもできる。すなわち、NIC 109を介して接続されたサーバから数バイトの値を受信し、もしくは、ゲーム装置100に電源を投入した時刻等から数バイトの値を取得し、これを種として、所定の乱数生成アルゴリズムを用いて、定数ciを順次決めていくことができる。乱数生成アルゴリズムは漸化式の形態をとることが多いため、定数ciを順に決めるのに好適である。
【0096】
(その他の実施形態)
本実施形態は、上記実施形態において唯一の最大多数の値v'が得られた場合に、これと異なる出力値を出力した格納読出処理部si202に対する更新を行うものである。図6は、本実施形態に係る格納装置の概要構成を示す模式図である。以下、本図を参照して説明する。尚、図2に示すものと同じ機能を果たす要素には、同じ符号を付してある。
【0097】
本実施形態の格納装置201は、上記実施形態の各要素の他、更新部601をさらに備える。本実施形態では、上記実施形態におけるステップS511に続いて、更新部601が以下の更新処理を実行する。図7は、この更新処理の流れを示すフローチャートである。
【0098】
まず、カウンタiを0に初期化し(ステップS701)、カウンタiの値がN未満であるか否かを調べる(ステップS702)。N未満である場合(ステップS702;Yes)、vi = v'であるか否かを調べる(ステップS703)。vi = v'である場合(ステップS703;Yes)、iの値を1増やして(ステップS704)、ステップS702に戻る。
【0099】
一方、vi ≠ v'である場合(ステップS703;No)、格納読出処理部si202に対して、格納値としてv'を与えることになる。変換計算部401が格納値v'に所定の変換計算fi(・)を適用し、その結果fi(v')を変換済値として得る(ステップS705)。そして、この結果fi(v')を、格納部mi402に格納して(ステップS706)、ステップS704に進む。
【0100】
一方、カウンタiの値がN以上である場合(ステップS702;No)、すべての更新は終わったことになり、本処理を終了する。
【0101】
本実施形態では、メモリ等の改変・変化があった場合であっても、その領域そのものを修復することにより、プログラムの誤動作をできるだけ防止することができる。
【0102】
(その他の実施形態)
上記実施形態では、格納部402m0,m1,…,mN-1は、それぞれ異なるアドレスに確保し、動的に確保することが望ましいとしていたが、所定の条件が満たされる場合に(たとえば、一定時間が経過するごとに)、これらの領域を再確保してもよい。この場合、m0,m1,…,mN-1のアドレスが、プログラムの進行にともなって変化するため、値の改変を行うような悪意あるプログラムの追跡を困難にすることができる。このほか、当該プログラムが起動されるごとに乱数で確保するアドレスを選択することによっても同様の効果を得ることができる。
【0103】
また、変換計算fi(・)と逆変換計算gi(・)とを動的にロード可能なライブラリによるプログラム(「ダイナミック・ローディング・ライブラリ(Dynamic Loading Library;DLL)」や「共有オブジェクト(Shared Object;SO)」)によって表現し、所定の条件が満たされる場合(たとえば、一定時間が経過するごとに)、これらを変更するような態様を採用してもよい。この場合、当該プログラムを当該コンピュータ通信網から再ダウンロードするように構成することができる。本実施態様では、悪意あるプログラムに変換計算fi(・)と逆変換計算gi(・)が知得されてしまった後であっても、新たな変換計算および逆変換計算を格納装置201にダウンロードさせて利用させることで、当該悪意あるプログラムに対する防御を行うことができる。
【0104】
なお、この場合、当該ダウンロードされるライブラリについては電子署名を付加し、ライブラリを利用する際に当該電子署名を検査して、悪意ある第三者が偽装ライブラリを利用できないようにすることが望ましい。
【0105】
(その他の実施形態)
上記実施形態では、逆変換計算部403により得られた値をそのまま格納装置201の出力として採用していたが、本実施形態は、これに対してさらに変更を加えるものである。すなわち、ハッシュ値を用いることにより、さらにメモリ等の書き換え・変更に対する防御力を高めんとするものである。
【0106】
第1の手法は、格納部402にfi(v)が格納される際に、さらにvのハッシュ値も併せて格納するものである。この手法では、逆変換計算部403がgi(yi) = viを計算する際に、併せてviのハッシュ値を計算する。そして、格納部402に格納されているハッシュ値と、ここで計算されたハッシュ値とが等しいか否かを検査する。
【0107】
一方、読出出力部206では、各格納読出処理部202の検査の結果を調べ、「2つのハッシュ値が等しい」場合にのみ、当該格納読出処理部202から得られた値を多数決の対象とする。たとえば、4つの格納読出処理部202のうち3つにおける検査結果が「2つのハッシュ値が等しい」であり、残りの1つが「等しくない」であった場合は、「等しい」となった3つの格納読出処理部202から得られた値で多数決をとる。ハッシュ値が等しくない場合は、格納部402に格納された値が変更・改変されていると考えられるからである。
【0108】
ハッシュ値の計算方法は、公知のハッシュ関数を用いるもの、CRC(Cyclic Redundancy Check)やチェックサム、メッセージダイジェストアルゴリズムで用いられるMD2、MD4、MD5等をハッシュ値として用いるものなどが考えられる。また、公開鍵暗号システムにおける署名をハッシュ値として適用してもよい。
【0109】
第2の手法は、格納部402にfi(v)が格納される際に、さらにfi(v)のハッシュ値も併せて格納するものである。この手法では、逆変換計算部403がgi(yi) = viを計算する際に、併せてyiのハッシュ値を計算する。あとは、上記の手法と同様である。さらに、これら第1と第2の手法を組み合わせて適用してもよい。
【0110】
(その他の実施形態)
本実施形態は、格納部402を複数の記憶装置に分割するものである。たとえば、ゲーム装置100の外部メモリ106(動作中の値の変更・改変防止に対応する際にはRAM 103であるが、以下理解を容易にするため、外部メモリ106を代表例として説明する。)と、NIC 109およびインターネットを介して接続されたサーバが有するハードディスクと、に分割する形態が考えられる。
【0111】
そして、格納部402に格納される値fi(v)をこれら2つに分割して記憶する。たとえば、値fi(v)が1024バイトである場合、外部メモリ106にはそのうちの1020バイトを、サーバ側には残りの4バイトを、それぞれ記憶する、という形態が考えられる。このようにして、2つの記憶装置に記憶された値を割符として用いるとともに、サーバへ当該値を通知するための通知トラフィックを低減することができる。なお、外部メモリ106には、1024バイト全体を記憶し、サーバ側に記憶される4バイトの部分を無視するような形態をとってもよい。
【0112】
また、ハッシュ値を利用する実施形態においては、外部メモリ106には値fi(v)をそのまま記憶し、サーバ側にはハッシュ値を記憶する、という形態を採用することもできる。
【0113】
さらに、ゲーム装置100がハードディスクやフレキシブルディスクドライブを内蔵する場合はそのハードディスクやフレキシブルディスクも本実施形態の記憶装置として利用することができる。分割して記憶する対象の記憶装置は、複数であれば、3つ以上であってもよい。
【0114】
【発明の効果】
以上説明したように、本発明によれば、格納される値の不用意な書き換えや変化を修復するのに好適な格納装置、これをコンピュータによって実現するプログラム、ならびに格納方法を提供することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態に係る格納装置が実現される典型的なゲーム装置の概要構成を示す模式図である。
【図2】 本発明の格納装置の実施形態の概要構成を示す模式図である。
【図3】 格納装置に対する値の格納要求に対する処理の流れを示すフローチャートである。
【図4】 格納読出処理部の概要構成を示す模式図である。
【図5】 格納装置に対する値の読出要求に対する処理の流れを示すフローチャートである。
【図6】 本発明の格納装置の他の実施形態の概要構成を示す模式図である。
【図7】 更新処理の流れを示すフローチャートである。
【符号の説明】
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
201 格納装置
202 格納読出処理部
204 格納要求受付部
205 読出要求受付部
206 読出出力部
207 報告部
401 変換計算部
402 格納部
403 逆変換計算部
601 更新部

Claims (10)

  1. 複数の格納読出処理部と、格納要求受付部と、読出要求受付部と、読出出力部と、を備える格納装置であって、
    (a)前記格納要求受付部は、格納すべき値を指定する格納要求を受け付けて、これを格納値として前記複数の格納読出処理部のそれぞれに与え、
    (b)前記読出要求受付部は、格納された値を読み出すべき旨の読出要求を受け付け、
    (c)前記複数の格納読出処理部のそれぞれは、変換計算部と、格納部と、逆変換計算部と、を備え、
    前記変換計算部は、当該格納値が与えられた場合、これに他の格納読出処理部のいずれとも異なる所定の変換計算を適用し、その結果を変換済値として得て、
    前記格納部は、前記得られた変換済値を格納し、
    前記逆変換計算部は、当該読出要求が受け付けられた場合、前記格納部に格納された値に、所定の逆変換計算であって当該格納値として与えられうる任意の値に当該所定の変換計算を適用した結果に当該所定の逆変換計算を適用すると当該値が得られる逆変換計算を適用し、その結果を出力値として得て、
    (d)前記読出出力部は、
    前記複数の格納読出処理部のそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力し、
    異なるものがある場合、最大多数の出力値を、読出要求に対する結果として出力する
    ことを特徴とするもの。
  2. 請求項1に記載の格納装置であって、更新部をさらに備え、
    前記更新部は、前記複数の格納読出処理部のそれぞれから得られた出力値に異なるものがある場合、当該最大多数の出力値以外の出力値が得られた格納読出処理部のそれぞれに、当該最大多数の出力値を格納値として与えて更新させる
    ことを特徴とするもの。
  3. 請求項1に記載の格納装置であって、報告部をさらに備え、
    前記報告部は、前記複数の格納読出処理部のそれぞれから得られた出力値に異なるものがある場合であって、最大多数の出力値が複数種類ある場合、エラーが発生した旨の報告をする
    ことを特徴とするもの。
  4. 請求項1に記載の格納装置であって、
    前記複数の格納読出処理部が備える格納部のそれぞれは、メモリ内に動的に確保され、所定の条件が満たされる場合、異なるアドレスに動的に再確保される
    ことを特徴とするもの。
  5. 請求項1に記載の格納装置であって、
    前記複数の格納読出処理部のいずれか少なくとも1つにおいて、
    これが備える格納部は、複数の記憶装置を有し、
    当該格納部は、前記得られた変換済値を当該複数の記憶装置に分割して記憶し、
    これが備える逆変換計算部は、当該読出要求が受け付けられた場合、当該複数の記憶装置に分割して記憶された値を結合して、これを当該格納部に格納された値とする
    ことを特徴とするもの。
  6. 請求項1に記載の格納装置であって、
    (e)前記複数の格納読出処理部のそれぞれについて、
    前記格納部は、当該格納値のハッシュ値をさらに格納し、
    前記逆変換計算部は、当該読出要求が受け付けられた場合、「当該所定の逆変換計算を適用した結果のハッシュ値と前記格納部に格納されたハッシュ値とが等しいか否か」を検査し、
    (f)前記読出出力部は、
    前記複数の格納読出処理部のうち、当該検査の結果が「等しい」もののそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力する
    ことを特徴とするもの。
  7. 請求項1に記載の格納装置であって、
    (e)前記複数の格納読出処理部のそれぞれについて、
    前記格納部は、当該変換済値のハッシュ値をさらに格納し、
    前記逆変換計算部は、当該読出要求が受け付けられた場合、「前記格納部に格納された値のハッシュ値と前記格納部に格納されたハッシュ値とが等しいか否か」を検査し、
    (f)前記読出出力部は、
    前記複数の格納読出処理部のうち、当該検査の結果が「等しい」もののそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力する
    ことを特徴とするもの。
  8. 請求項1に記載の格納装置であって、
    前記複数の格納読出処理部が備える変換計算部と逆変換計算部と、は、あらかじめコンピュータ通信網からダウンロードしたプログラムを実行して当該所定の変換計算と当該所定の逆変換計算とを適用し、所定の条件が満たされる場合、当該プログラムを当該コンピュータ通信網から再ダウンロードする
    ことを特徴とするもの。
  9. コンピュータ(ゲーム装置であって、コンピュータ通信網に接続されるものを含む。)を、複数の格納読出処理部、格納要求受付部、読出要求受付部、および、読出出力部として機能させるプログラムであって、
    (a)前記格納要求受付部は、格納すべき値を指定する格納要求を受け付けて、これを格納値として前記複数の格納読出処理部のそれぞれに与え、
    (b)前記読出要求受付部は、格納された値を読み出すべき旨の読出要求を受け付け、
    (c)前記複数の格納読出処理部のそれぞれは、変換計算部と、格納部と、逆変換計算部と、を備え、
    前記変換計算部は、当該格納値が与えられた場合、これに他の格納読出処理部のいずれとも異なる所定の変換計算を適用し、その結果を変換済値として得て、
    前記格納部は、前記得られた変換済値を格納し、
    前記逆変換計算部は、当該読出要求が受け付けられた場合、前記格納部に格納された値に所定の逆変換計算であって、当該格納値として与えられうる任意の値に当該所定の変換計算を適用した結果に当該所定の逆変換計算を適用すると、当該値が得られる逆変換計算を適用し、その結果を出力値として得て、
    (d)前記読出出力部は、
    前記複数の格納読出処理部のそれぞれから得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力し、
    異なるものがある場合、最大多数の出力値を、読出要求に対する結果として出力する
    ように機能させることを特徴とするプログラム。
  10. 複数の格納読出処理工程と、格納要求受付工程と、読出要求受付工程と、読出出力工程と、を備える格納方法であって、
    (a)前記格納要求受付工程では、格納すべき値を指定する格納要求を受け付けて、これを格納値として前記複数の格納読出処理工程のそれぞれに与え、
    (b)前記読出要求受付工程では、格納された値を読み出すべき旨の読出要求を受け付け、
    (c)前記複数の格納読出処理工程のそれぞれは、変換計算工程と、格納工程と、逆変換計算工程と、を備え、
    前記変換計算工程では、当該格納値が与えられた場合、これに他の格納読出処理工程とは異なる所定の変換計算を適用し、その結果を変換済値として得て、
    前記格納工程では、前記得られた変換済値を、他の格納読出処理工程とは異なる格納部に格納し、
    前記逆変換計算工程では、当該読出要求が受け付けられた場合、当該格納部に格納された値に、所定の逆変換計算であって、当該格納値として与えられうる任意の値に当該所定の変換計算を適用した結果に当該所定の逆変換計算を適用すると、当該値が得られる逆変換計算を適用し、その結果を出力値として得て、
    (d)前記読出出力工程では、
    前記複数の格納読出処理工程のそれぞれにて得られた出力値がすべて同じ場合、これを、読出要求に対する結果として出力し、
    異なるものがある場合、最大多数の出力値を、読出要求に対する結果として出力する
    ことを特徴とする方法。
JP2002316380A 2002-10-30 2002-10-30 格納装置、プログラム、ならびに、格納方法 Expired - Lifetime JP3748847B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002316380A JP3748847B2 (ja) 2002-10-30 2002-10-30 格納装置、プログラム、ならびに、格納方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002316380A JP3748847B2 (ja) 2002-10-30 2002-10-30 格納装置、プログラム、ならびに、格納方法

Publications (2)

Publication Number Publication Date
JP2004152001A JP2004152001A (ja) 2004-05-27
JP3748847B2 true JP3748847B2 (ja) 2006-02-22

Family

ID=32460110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002316380A Expired - Lifetime JP3748847B2 (ja) 2002-10-30 2002-10-30 格納装置、プログラム、ならびに、格納方法

Country Status (1)

Country Link
JP (1) JP3748847B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664965B2 (en) * 2004-04-29 2010-02-16 International Business Machines Corporation Method and system for bootstrapping a trusted server having redundant trusted platform modules
JP4608949B2 (ja) * 2004-05-28 2011-01-12 富士ゼロックス株式会社 データ破壊検知装置及び方法並びにデータ復旧装置及び方法
JP4494908B2 (ja) * 2004-09-03 2010-06-30 株式会社コナミデジタルエンタテインメント 数値記録装置、数値記録方法、ならびに、プログラム
US7873803B2 (en) * 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
US10521143B2 (en) * 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
JP7218222B2 (ja) * 2019-03-14 2023-02-06 ルネサスエレクトロニクス株式会社 半導体装置、演算機能診断方法、及びプログラム
JP7327100B2 (ja) * 2019-11-15 2023-08-16 富士フイルムビジネスイノベーション株式会社 データ管理システム、データ管理装置及びデータ管理プログラム

Also Published As

Publication number Publication date
JP2004152001A (ja) 2004-05-27

Similar Documents

Publication Publication Date Title
US11036392B2 (en) Determining when to use convergent encryption
US10372357B2 (en) Securely recovering stored data in a dispersed storage network
US7945784B1 (en) Method and system to perform secret sharing
US20050041811A1 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
US10650160B2 (en) Enhancing security for multiple storage configurations
JP3748847B2 (ja) 格納装置、プログラム、ならびに、格納方法
US20230350918A1 (en) Storage Network for Rebuilding Encoded Data Slices and Processing System for Use Therewith
EP1876523A1 (en) Computation of A MOD (2^n - 1)
CN115248919A (zh) 一种函数接口的调用方法、装置、电子设备及存储介质
US11237904B2 (en) Tracking data access in a dispersed storage network
US11784814B2 (en) Arithmetic device and method
US20180089020A1 (en) Managing rebuilding performance in a dispersed storage network
JP2009116661A (ja) 記憶装置、記憶方法、ならびに、プログラム
CN116483313A (zh) 信息处理方法、装置、电子设备及计算机可读存储介质
JP5427117B2 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
US10506045B2 (en) Memory access using deterministic function and secure seed
JP2009169171A (ja) 楕円曲線の点圧縮装置、楕円曲線の点展開装置、それらの方法及びプログラム
US10534668B2 (en) Accessing data in a dispersed storage network
US20140281761A1 (en) Reversible corruption of a digital medium stream by multi-valued modification in accordance with an automatically generated mask
JP2010107947A (ja) Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置
JP2006025409A (ja) 画像処理装置及び画像処理方法
JP2012185601A (ja) 配信システム、サーバ装置、端末装置、サービス方法、端末方法、並びにプログラム
JP2008178005A (ja) データ検証システム、その方法、識別子生成装置、データ検証装置、それらプログラム及び記録媒体
US11182249B1 (en) Block ID encoding in an erasure coded storage system
AU2016250457A1 (en) Cache oblivious algorithm for butterfly code

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051125

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: 20051129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051129

R150 Certificate of patent or registration of utility model

Ref document number: 3748847

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081209

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20081209

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20081209

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20091209

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20101209

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20101209

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111209

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131209

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term