JP4527640B2 - データ読出装置 - Google Patents

データ読出装置 Download PDF

Info

Publication number
JP4527640B2
JP4527640B2 JP2005268429A JP2005268429A JP4527640B2 JP 4527640 B2 JP4527640 B2 JP 4527640B2 JP 2005268429 A JP2005268429 A JP 2005268429A JP 2005268429 A JP2005268429 A JP 2005268429A JP 4527640 B2 JP4527640 B2 JP 4527640B2
Authority
JP
Japan
Prior art keywords
data
read
transfer
control unit
unit
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 - Fee Related
Application number
JP2005268429A
Other languages
English (en)
Other versions
JP2007080051A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Priority to JP2005268429A priority Critical patent/JP4527640B2/ja
Priority to US11/515,394 priority patent/US20070079051A1/en
Publication of JP2007080051A publication Critical patent/JP2007080051A/ja
Application granted granted Critical
Publication of JP4527640B2 publication Critical patent/JP4527640B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Description

本発明は、記録媒体などからデータを読み出して、処理に供するデータ読出装置に関する。
従来、不正なプログラムの実行等を防止する装置として、特許文献1に開示されているように、プログラムのハッシュ値を用いて、実行の可否を判断させるものがある。こうした装置では、実行が指示されたプログラム全体を記録媒体からメモリ上の所定連続領域に読み込み、当該所定連続領域内に読み込まれたプログラムのハッシュ値を演算して、認証処理を実行する。
また、実行の対象となるプログラムを暗号化しておき、実行時に復号するものもあるが、この場合も暗号化された状態のプログラム全体を一旦、メモリ上の所定連続領域に読み込んで処理を行っている。
特開2004−13608号公報
このように、上記従来の方法で認証処理を行う場合、プログラムの全体を保持可能なサイズの連続領域をメモリ内に確保する必要がある。しかしながら、プログラムのサイズは、処理が高度化するにつれて大きくなり、プログラムの全体を保持できるサイズの連続領域の確保が困難になりつつある。
本発明は上記実情に鑑みて為されたもので、プログラムなど、認証の対象となるデータの全体を保持できるサイズの連続領域をメモリ内に確保することなく、認証処理を行うことができるデータ読出装置を提供することを、その目的の一つとする。
上記従来例の問題点を解決するための本発明は、データ読出装置であって、読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部と、前記制御部が読み出したデータを保持する記憶部と、を含み、前記制御部が、記憶部内に確保した複数の記憶領域についてのサイズの情報に基づいて、前記記録媒体に格納されている読み出し対象となるデータを、複数のセグメントに分割して読み出し、当該分割して読み出されたセグメントについて順次、認証情報を演算し、読み出し対象となったデータの認証処理を行うことを特徴としている。
またここで、前記制御部は、複数の処理要素を含んでなり、前記複数の処理要素の少なくとも一部が、前記複数に分割された各セグメントをそれぞれ分担して処理して部分認証情報を演算し、各処理要素によって演算された部分認証情報を用いて演算される認証情報が、前記読み出し対象となったデータの認証処理に供されることとしてもよい。
さらに、前記制御部は、複数の処理要素を含んでなり、前記複数の処理要素の間でデータを転送する際に、転送元の処理要素が、前記記憶部内に確保した複数の記憶領域のアドレス及びサイズを記録する転送リストを生成し、記憶部内に確保した複数の記憶領域についてのサイズの情報に基づいて、転送の対象となるデータを複数のセグメントに分割して、前記複数の記憶領域に格納し、転送先となる処理要素が、前記転送元の処理要素が生成した転送リストを参照しつつ、前記複数の記憶領域に格納されている、セグメントに分割されたデータを取得することとしてもよい。
また、本発明の一態様に係る認証方法は、読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部と、前記制御部が読み出したデータを保持する記憶部と、を含むデータ読出装置を用い、前記制御部に、前記記憶部内に確保した複数の記憶領域についてのサイズの情報に基づいて、前記記録媒体に格納されている読み出し対象となるデータを、複数のセグメントに分割して読み出し、当該分割して読み出されたセグメントについて順次、認証情報を演算し、読み出し対象となったデータの認証処理を行わせることを特徴としている。
さらに本発明の別の態様に係るプログラムは、読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部と、前記制御部が読み出したデータを保持する記憶部と、を含むコンピュータに、記憶部内に確保した複数の記憶領域についてのサイズの情報に基づいて、前記記録媒体に格納されている読み出し対象となるデータを、複数のセグメントに分割して読み出す手順と、当該分割して読み出されたセグメントについて順次、認証情報を演算し、読み出し対象となったデータの認証処理を行う手順と、を実行させることを特徴としている。
本発明の実施の形態について図面を参照しながら説明する。本実施の形態のデータ読出装置は、例えばパーソナルコンピュータや、家庭用ゲーム機などであり、図1に示すように、制御部11と、記憶部12と、入出力ユニット13と、外部記憶部14と、操作部15と、表示部16とを含んで構成されている。
制御部11は、例えばプロセッサチップであり、外部記憶部14にセットされた外部記憶媒体から読み出されるプログラム(例えばパーソナルコンピュータによって実行されるアプリケーションや、ゲームプログラムなど)を記憶部12に格納して実行する。本実施の形態の制御部11の具体的な構成及び動作については、後に詳しく述べる。
記憶部12は、RAM(Random Access Memory)等の記憶素子を含んで構成され、制御部11によって実行されるプログラムを保持する。また、この記憶部12は、制御部11が処理を行うときに必要となるデータを保持するワークメモリとしても動作する。
入出力ユニット13は、いわゆるブリッジチップであり、制御部11と、外部記憶部14と、操作部15とに接続されている。この入出力ユニット13は、制御部11から入力される指示に従って、制御部11が出力する信号(出力信号)の出力先を選択し、当該選択した出力先に対して、制御部11の出力信号を選択的に出力する。また、入出力ユニット13は、外部記憶部14や操作部15から入力される信号を制御部11に出力する。
外部記憶部14は、例えばBlu-ray Discや、DVD等の外部記録媒体から、記録されている情報を読み取って、入出力ユニット13を介して制御部11に出力する。本実施の形態では、この外部記憶部14にセットされる外部記憶媒体には、プログラムが暗号化されて保持され、またプログラム全体から演算されるハッシュ値が、認証情報として保持されている。操作部15は、例えばゲーム用のコントローラ、マウス、キーボード等であり、ユーザの操作を受け入れて、当該操作の内容を制御部11に出力する。
表示部16は、グラフィックス処理ボード等であり、制御部11から入力される指示に従って、画像を描画し、当該描画した画像の情報を外部に接続されているディスプレイ(家庭用テレビジョン装置等)に出力して、表示させる。
ここで制御部11の具体的な構成例について述べる。本実施の形態の制御部11は、例えば、図2に示すように、複数の処理要素として、主制御ユニット21と、少なくとも一つの補助制御ユニット22と、外部インタフェース部23とを含み、補助制御ユニット22は、さらに、補助制御部31と、この補助制御部31に対応して設けられるローカルストレージ部32、及びデータ転送部33とを含んで構成されている。また、主制御ユニット21は、主制御部41と、キャッシュメモリ部42とを含む。これら主制御ユニット21と、各補助制御ユニット22とは、内部バスBを介して接続されている。
補助制御ユニット22の補助制御部31は、外部インタフェース部23を介して取得されるプログラムや、ローカルストレージ部32に格納されているプログラムに従って動作するプログラム制御デバイスである。本実施の形態の補助制御部31は、例えば外部記憶部14からプログラムを読み出して認証・復号の処理を行う。この認証・復号の処理については後に詳しく述べる。
ローカルストレージ部32は、メモリ素子であり、補助制御部31によって実行されるプログラムなどを保持するとともに、補助制御部31のワークメモリとして動作する。データ転送部33は、DMA(Direct Memory Access)であり、記憶部12内の指定されたメモリ領域からデータを読み出して、ローカルストレージ部32に格納する。また、このデータ転送部33は、補助制御部31によって処理されたデータを、記憶部12内の指定されたメモリ領域に格納する。このデータ転送部33の動作についても、後に詳しく述べる。なお、ここでは記憶部12から読み出すこととしたが、キャッシュメモリ部42から読み出すこととしてもよい。データ転送部33もまた、処理されたデータを記憶部12の代わりにキャッシュメモリ部42に格納してもよい。
主制御ユニット21の主制御部41は、例えばCPU等のプログラム制御デバイスであり、キャッシュメモリ部42や、記憶部12に格納されているプログラムに従って動作する。この主制御部41は、外部記憶部14から、外部記憶媒体に格納されているデータを読み出す際には、当該データの認証・復号に関する処理を実行する。この主制御部41の処理の内容についても、後に詳しく述べる。
キャッシュメモリ部42は、記憶素子であり、主制御部41によって実行されるプログラムを保持する。また、このキャッシュメモリ部42は、主制御部41のワークメモリとしても動作する。外部インタフェース部43は、記憶部12と入出力ユニット13と外部記憶部14と操作部15と表示部16とを含む外部の各部とデータを送受する。
次に、本実施の形態のデータ読み取り装置が、実行の対象となるプログラムなどのデータを認証する際の動作について述べる。なお、ここでは、プログラムの認証を例として説明することとし、また認証されるプログラムは、暗号化されているものとし、当該暗号化されているプログラムの読み出し及び、復号されたプログラムの実行は主制御ユニット21によって行われ、認証や復号の処理は補助制御ユニット22によって行われるものとする。
[主制御ユニット−補助制御ユニット間のデータ転送]
このため制御部11では、認証の対象となるプログラムの少なくとも一部が、主制御ユニット21から補助制御ユニット22のローカルストレージ部32内に転送されることになる。この転送は、データ転送部33によって行われる。そこでまず、具体的なデータ転送部33の動作例の一つを説明する。ここで説明する動作例では、データ転送部33は、図3に示すように、転送リストとして、読み出し転送リスト(R)と、書込み転送リスト(W)とのデータを参照して、記憶部12との間でデータの転送を行う。
ここで図3に示す読み出し転送リストは、ヘッダ部(H)と、リスト部(L)とを含んでなり、リスト部には、実効アドレス(EA)と、サイズ情報(SZ)と、有効フラグ(VE)と、読み込み完了を表すフラグ(完了フラグRC)とを互いに関連づけてなるエントリーが少なくとも一つ保持される。ここで実効アドレス(EA)は、記憶部12上のアドレス値を指す。ここで有効フラグは、転送の対象となるデータが記憶部12上に用意できたことを表す「有効」と、転送の対象となるデータが未だ用意されていないことを表す「無効」とのいずれかを表す値に設定され、完了フラグは、処理が完了していないことを表す「未了」と、処理が完了したことを表す「完了」とのいずれかを表す値に設定される。当初、有効フラグは「無効」に、完了フラグは「未了」に設定される。
主制御部41は、図4に示すように記憶部12内で空き領域を探索する(S1)。そして探索の結果見いだされた領域(この時点で有意なデータが格納されていない領域)のアドレス値を実効アドレスとして読み出し転送リスト(R)を、補助制御ユニット22ごと(つまりデータ転送部33ごと)に生成し、記憶部12に格納する(S2)。ここでは有効フラグは「無効」、完了フラグは「未了」に設定される。
主制御部41は、例えば実行の対象となるプログラム等のデータを外部インタフェース部43を介して外部記憶部14側から取得し、処理S1にて見いだした領域のうち、読み出し転送リスト上のエントリの有効フラグが「無効」となっている領域に、各領域のサイズ分ずつのデータのセグメントに分割しながら順次、格納する(S3)。そして格納を完了した領域に係る読み出し転送リスト上のエントリの有効フラグを「有効」に設定する。
補助制御ユニット22のデータ転送部33は、所定の複写タイミングで、対応して作成されている読み出し転送リストを、記憶部12から読み出して、ローカルストレージ部32に複写する(S4)。
なお、補助制御ユニット22が以下の処理を行っている間、主制御部41は、完了フラグが「完了」に設定されているエントリを読み出し転送リストから見いだすと、当該エントリの有効フラグを「無効」、完了フラグを「未了」に再設定しておく(S5)。また、主制御部41は、有効フラグが「無効」である領域に対して、実行の対象となるプログラム等のデータを外部インタフェース部43を介して外部記憶部14側から取得して格納する処理S3から繰り返して処理を続け、データの読み出しが完了するまで処理を継続する。
補助制御ユニット22のデータ転送部33は、ローカルストレージ部32に複写した読み出し転送リストを参照して、先頭のエントリーから順に注目エントリーとして選択する(S6)。そして当該注目エントリーに含まれる有効フラグが「有効」であり、かつ完了フラグが「未了」を表すものとなっているか否かを調べる(S7)。
ここで、有効フラグが「有効」であり、かつ完了フラグが「未了」を表すものとなっていなければ、処理を中断する。また、有効フラグが「有効」であり、かつ完了フラグが「未了」を表すものとなっていれば、注目エントリーの実効アドレスによって表される記憶部12上のアドレスから、注目エントリーのサイズ情報によって示されるサイズのデータを読み出して、ローカルストレージ部32に格納し(S8)、注目エントリーの完了フラグを「完了」に設定する(S9)。
データ転送部33は、ローカルストレージ部32内の読み出し転送リストの内容を更新すると、当該更新された読み出し転送リストを記憶部12に上書きして格納する(S10)。すなわち、このデータ転送部33は、絶えず記憶部12とローカルストレージ部32との間で、読み出し転送リストの同期を行うよう動作している。そしてデータ転送部33は、処理S4から繰り返して処理を続ける。
なお、補助制御ユニット22が読み出し転送リストをローカルストレージ32に複写してから(処理S4)、ローカルストレージ32にて更新した読み出し転送リストを記憶部12に書き戻すまで(処理S10)の間、主制御ユニット21による読み出し転送リストのエントリにおける有効フラグ等の設定については、待ち行列に格納しておき、処理S10にて書き戻された後に設定を反映させる。また、主制御ユニット21が有効フラグ等の設定を書込んでいる間は、補助制御ユニット22は複写処理(処理S4)を待機することとしてもよい。
補助制御部31は、処理S8にて読み出され、ローカルストレージ32に格納されたデータについて、復号、認証などの処理を実行する。
また、補助制御部31と主制御部41とは、図5に示すように、データ転送部33に対して、ローカルストレージ部32に格納されているデータを、記憶部12へと転送させる指示を行う。この指示は、書込み転送リスト(W)を用いて行われる。この書込み転送リストは、主制御部41によって生成されるものであり、図3に示した読み出し転送リストと同様の構造を有しており、ヘッダ部と、リスト部とを含む(不図示)。ここでリスト部には、実効アドレスと、サイズ情報と、有効フラグと、書込み完了を表すフラグ(完了フラグ)とを互いに関連づけてなるエントリーが少なくとも一つ保持される。ここで実効アドレスは、記憶部12上のアドレス値を指す。ここで有効フラグは、データを保持する空き領域が用意できたことを表す「有効」と、データを保持する空き領域が未だ用意されていないことを表す「無効」とのいずれかを表す値に設定され、完了フラグは、処理が完了していないことを表す「未了」と、処理が完了したことを表す「完了」とのいずれかを表す値に設定される。当初、有効フラグは「無効」に、完了フラグは「未了」に設定される。
すなわち、主制御部41は、記憶部12内で空き領域を探索する処理を所定のタイミングごとに行っている(S11)。主制御部41が空き領域を少なくとも一つ見いだすと、書込み転送リストのエントリーから、有効フラグが「無効」となっているエントリーを見いだし、当該エントリーの実効アドレスと、サイズとを、記憶部12上で見いだした空き領域の実効アドレスおよびサイズに設定する。さらに有効フラグを「有効」に設定する(S12)。
一方、補助制御部31は、主制御部41の処理とは非同期的にローカルストレージ部32から記憶部12へと書き出すべきデータの処理(例えば、復号、認証等の処理)を実行しているが、この処理が完了すると、当該データが格納されているローカルストレージ部32上のアドレスおよびサイズ(以下、このアドレスとサイズの情報とを区別のためそれぞれ「対象アドレス」、「対象サイズ」と呼ぶ)とともに、データの書き出しの指示をデータ転送部33に出力する(S13)。
データ転送部33は、このデータの書き出しの指示を受けると、書込み転送リストを参照して、有効フラグが「有効」、完了フラグが「未了」となっており、かつ、サイズの情報が、対象サイズ以上であるエントリーを探索する(S14)。ここで、かかるエントリーが見いだされたときには、記憶部12の当該エントリーに含まれる実効アドレス以下の空き領域に、対象アドレスから対象サイズ分のデータを転送する(S15)。この転送が完了すると、データ転送部33は、当該エントリーの完了フラグを「完了」に設定する(S16)。
データ転送部33は、また、有効フラグが「有効」、完了フラグが「未了」となっているが、サイズの情報が対象サイズ未満であるエントリーが複数見いだされたときには、次のように処理してもよい。すなわち、データ転送部33は、上記見いだした複数のエントリーをサイズ情報の大きい順に並べ替えて、その順序で、順次サイズの和を演算する。この演算の途中で、和が対象サイズを超えた場合は、そこまでに和に含めたエントリーを注目エントリー群として、書き込みの対象となるデータを、当該注目エントリー群のサイズに分割して、各実効アドレス以下の各空き領域に、分割後のデータを転送する。そして、注目エントリー群に含まれる各完了フラグを「完了」に設定する。また、リストの先頭から順にエントリーを探索して、有効フラグが「有効」、完了フラグが「未了」であるエントリーに示される実効アドレスからサイズ情報に示されるサイズ分順次転送してもよい。これにより転送の対象となるデータは各サイズ分ごとのデータごとに分割されるが、転送を行なうことができる。
[認証処理]
次に、本実施の形態のデータ読み出し装置がプログラムを認証する動作について述べる。外部記憶部14に、外部記憶媒体がセットされ、プログラムの実行が指示されると、主制御ユニット21の主制御部41が、記憶部12内の空き領域を探索する。ここで、空き領域のサイズは、プログラムの全体が格納できるサイズでなくてもよく、また領域が連続している必要もなく、断片的なものでかまわない。また、主制御部41は、記憶部12上に、復号後のプログラムを格納する連続領域を確保しておく。
主制御部41は、見いだされた空き領域の先頭実効アドレスおよびサイズの情報を取得し、読み出し転送リストを生成する。例えば、記憶部12内において、128キロバイト(以下、128kなどと略記する)、12k、256k、32k、4k、24k、1024k、24kの8つの空き領域が見いだされたとすると、主制御部41が生成する読み出し転送リストは、図6に示すような状態となる。また、主制御部41は、見いだした空き領域のサイズに応じて、外部記憶媒体に格納されているプログラムを複数のセグメント(プログラムセグメント)に分割して読み出し、各プログラムセグメントを対応するサイズの空き領域に書き込む。
例えば、上記の例の場合、主制御部41は、外部記憶媒体に格納されているプログラムを、これらのサイズに従って、先頭から各サイズの和である、1504k分を読み出し、さらに読出した部分を128k、12k、256k、32k、4k、24k、1024k、24kの8つのセグメントに分割して、各空き領域に格納する。
さらに、主制御部41は、読み出し転送リスト上のエントリーのうち、プログラムセグメントを書き込んだ領域に対応するエントリーの有効フラグを「有効」に変更して、読み出し転送リストを更新する。そして主制御部41は、読み出し転送リストを更新した旨を、データ転送部33へ通知する。また、主制御部41は、同様にして書込み転送リストを生成する。
データ転送部33では、更新の通知を受けるタイミングを複写タイミングとして、読み出し転送リストを、ローカルストレージ部32に複写する。
データ転送部33は、さらに、ローカルストレージ部32に複写した読み出し転送リストを参照して、先頭のエントリーから順に有効フラグが「有効」となっており、かつ完了フラグが「未了」となっているものを探索する。そして、有効フラグが「有効」、かつ完了フラグが「未了」となっているエントリーの実効アドレスによって表される記憶部12上のアドレスから、当該エントリーのサイズ情報によって示されるサイズのプログラムセグメントを読み出して、ローカルストレージ部32に格納する。
上記の例では、まず128k分のプログラムセグメントがローカルストレージ部32に転送され、以下、12k、256k、32k、4k、24k、1024k、24kの各プログラムセグメントがローカルストレージ部32に転送される。データ転送部33は、転送を完了したエントリーの完了フラグを「完了」に変更する。データ転送部33は、読み出し転送リストの末尾のエントリーまで探索を終えると、再度、先頭のエントリーに戻って探索の処理を続ける。
また、データ転送部33は、読み出し転送リストを更新すると、これを記憶部12に上書きする。主制御部41では、読み出し転送リストを所定のタイミングごとに参照し、完了フラグが「完了」となっているエントリーがあるか否かを調べる。ここで、完了フラグが「完了」となっているエントリーがあれば、当該エントリーに含まれるサイズの情報を参照して、外部記憶媒体に格納されているプログラムのうち、引き続く(読出し済みの部分に続く)位置から、当該参照したサイズ情報によって表されるサイズ分のプログラム部分をプログラムセグメントとして読み出して、記憶部12上で、上記エントリーに含まれる実効アドレスの情報によって示されるアドレス以下に格納する。そして、当該エントリーの有効フラグを「有効」、完了フラグを「未了」に設定する。
一方、補助制御部31は、ローカルストレージ部32に格納されたプログラムの部分データを読み出して、当該読み出した部分データ(プログラムセグメント)を処理の対象として、復号処理を行い、復号の結果をローカルストレージ部32に格納する。そして、補助制御部31は、この処理対象となったプログラムセグメントの認証処理を行う。ここで認証処理は、処理の対象となったプログラムセグメントについて認証情報の一例としてのハッシュ値を演算する処理である。なお、一連のデータ全体についてのハッシュ値の演算は、当該データの途中で演算を中断しても、当該途中の点から演算を再開できるようになっているものとする。このような演算を行うことのできるハッシュ値は、広く知られているので、ここでの詳細な説明を省略する。
補助制御部31は、過去のハッシュ値の演算結果がローカルストレージ部32に格納されているときには、当該演算結果と、対象となったプログラムセグメントとを用いてハッシュ値の演算を行い、その演算結果をローカルストレージ部32に格納する。なお、過去のハッシュ値の演算結果がローカルストレージ部32に格納されていないとき(ハッシュ値の演算を開始したとき)には、対象となったプログラムセグメントとを用いてハッシュ値の演算を行い、その演算結果をローカルストレージ部32に格納する。
補助制御部31は、復号済みのプログラムセグメントの格納先のアドレス(対象アドレス)とサイズ(対象サイズ)とを含む、データの書き出しの指示を、データ転送部33に出力する。
データ転送部33は、補助制御部31からデータの書き出しの指示を受けると、書込み転送リストを参照して、先頭のエントリーから順に、有効フラグが「有効」、完了フラグが「未了」となっているエントリーを探索する。ここで、かかるエントリーが見いだされたときには、記憶部12上の当該エントリーに含まれる実効アドレス以下の空き領域に、対象アドレスから始まる、対象サイズ分のデータを転送する。この転送が完了すると、データ転送部33は、当該エントリーの完了フラグを「完了」に設定する。
主制御ユニット21の主制御部41は、読み出し転送リストと、書込み転送リストとを所定のタイミングごとに調べる。そして読み出し転送リストのエントリーのうち、完了フラグが「完了」となっているエントリーを見いだすと、当該エントリーの有効フラグを「無効」に設定して、空き領域に戻す。この処理により、当該完了フラグが「完了」となったエントリーで示される実効アドレス以下の領域が空き領域となり、再度書込みの処理に利用できるようになる。
また、書込み転送リストのエントリーのうち、完了フラグが「完了」となっているエントリーを見いだすと、そのエントリーに含まれる実効アドレスとサイズの情報とを参照して、記憶部12の、当該実効アドレスを先頭とし、サイズの情報によって表されるサイズのデータ(復号後のプログラムセグメント)を、記憶部12上のプログラムの格納領域に複写する。そして、上記エントリーの完了フラグをリセットして、「未了」の状態とする。
主制御部41は、外部記憶媒体に格納されているプログラムの末尾まで読み出すと、処理の終了を補助制御部31に通知するとともに、読み出し転送リストの各エントリーの有効フラグを「無効」に設定する。
補助制御部31は、処理の終了の通知を受けた後、ローカルストレージ部32内に転送されたプログラムセグメントについて、ハッシュ値の演算を終了すると、外部記憶媒体に格納されているハッシュ値の情報と、演算されたハッシュ値の情報を比較し、一致していれば、正当なプログラムであると判断し、その判断結果を、当該演算の結果を主制御部41に通知する。
このとき、記憶部12には、補助制御ユニット22によって復号されたプログラムが格納されていることとなるので、主制御部41は、補助制御部31からの通知を確認して、正当なプログラムであると判断された場合に、当該復号されたプログラムを実行する。なお、正当なプログラムであると判断されなかった場合は、当該プログラムの実行を行わないようにしてもよい。
なお、ここまでの説明では、補助制御部31を一つだけ利用する場合を例として説明したが、既に述べたように、主制御部41が複数の補助制御ユニット22のそれぞれに対応した読み出し転送リスト、及び書込み転送リストの生成・更新を行い、各補助制御ユニット22が対応した読み出し転送リストや書込み転送リストを用いて認証の対象となるプログラムセグメントを取得して認証や復号の処理を行うようにしてもよい。このように複数の補助制御ユニット22に対応した読み出し転送リストなどが生成され、各補助制御ユニット22が認証の対象となるプログラムセグメントを分担して処理することで、処理効率が向上する。
この場合、主制御部41は、認証の処理を行った各補助制御ユニット22から、認証処理の結果(例えばハッシュ値の元となる情報、すなわち部分認証情報)を受け入れて、ハッシュ値を生成し、当該生成したハッシュ値を用いて認証の処理を行うこととする。
また、この場合、各補助制御ユニット22に対応する読み出し転送リストや書込み転送リストには、それぞれ所定数のエントリーを含み、転送リストのサイズを固定長としておいてもよい。
本実施の形態によると、プログラムなど、認証の対象となるデータを分割して認証を行うので、その全体を保持可能なサイズの連続領域をメモリ内に確保することなく認証処理を行うことができる。
本発明の実施の形態に係るデータ読出装置の例を表す構成ブロック図である。 本発明の実施の形態に係る制御部の内容例を表す構成ブロック図である。 本発明の実施の形態に係る読み出し転送リストの構造例を表す説明図である。 本発明の実施の形態に係るデータの転送処理例を表す流れ図である。 本発明の実施の形態に係るデータの転送処理例を表す流れ図である。 本発明の実施の形態に係る読み出し転送リストの内容例を表す説明図である。
符号の説明
11 制御部、12 記憶部、13 入出力ユニット、14 外部記憶部、15 操作部、16 表示部、21 主制御ユニット、22 補助制御ユニット、31 補助制御部、32 ローカルストレージ部、33 データ転送部、41 主制御部、42 キャッシュメモリ部、43 外部インタフェース部。

Claims (4)

  1. 読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部と、
    前記制御部が読み出したデータを保持する記憶部と、
    を含み、
    前記制御部は、複数の処理要素を含んでなり、
    前記複数の処理要素の間でデータを転送する際に、転送元の処理要素が、前記記憶部内の空き領域を探索して、探索の結果見出された複数の記憶領域のアドレス及びサイズを記録する転送リストを生成し、前記記録媒体に格納されている読み出し対象となるデータを、前記転送リストに記録された前記各記憶領域のサイズに応じたサイズの複数のセグメントに分割して順次読み出し、読み出したセグメントを前記各記憶領域に格納し、
    転送先となる処理要素が、前記転送元の処理要素が生成した転送リストを参照して、当該転送リストに記録されたアドレスにより示される記憶領域から、当該転送リストに記録されたサイズに応じたサイズのセグメントに分割されたデータを順次取得して、当該取得したセグメントについてハッシュ値を演算し、
    前記転送先の処理要素によって演算されたハッシュ値が、前記読み出し対象となるデータが正当か否かの判断に用いられることを特徴とするデータ読出装置。
  2. 請求項1に記載のデータ読出装置において、
    前記転送元の処理要素は、前記転送先となる処理要素が前記記憶領域の一つに格納されたセグメントを取得したと判断した場合に、当該記憶領域を空き領域とみなして、既に読み出されたセグメントに続く他のセグメントを読み出して、当該空き領域に格納することを特徴とするデータ読出装置。
  3. 読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部であって、複数の処理要素を含む制御部と、
    前記制御部が読み出したデータを保持する記憶部と、
    を含むデータ読出装置を用い、
    前記複数の処理要素の間でデータを転送する際に、転送元の処理要素が、
    前記記憶部内の空き領域を探索し、探索の結果見出された複数の記憶領域のアドレス及びサイズを記録する転送リストを生成する手順と、
    前記記録媒体に格納されている読み出し対象となるデータを、前記転送リストに記録された前記各記憶領域のサイズに応じたサイズの複数のセグメントに分割して順次読み出し、当該分割して読み出されたセグメントを前記各記憶領域に格納する手順と、
    を実行し、
    転送先となる処理要素が、
    前記転送元の処理要素が生成した転送リストを参照して、当該転送リストに記録されたアドレスにより示される記憶領域から、当該転送リストに記録されたサイズに応じたサイズのセグメントに分割されたデータを順次取得して、当該取得したセグメントについてハッシュ値を演算する手順を実行し、
    前記転送先の処理要素によって演算されたハッシュ値が、前記読み出し対象となるデータが正当か否かの判断に用いられることを特徴とする認証方法。
  4. 読み出しの対象となるデータを格納した記録媒体から、当該読み出しの対象となるデータを読み出す制御部であって、複数の処理要素を含む制御部と、
    前記制御部が読み出したデータを保持する記憶部と、を含むコンピュータにおいて
    前記複数の処理要素の間でデータを転送する際に、転送元の処理要素に、
    前記記憶部内の空き領域を探索し、探索の結果見出された複数の記憶領域のアドレス及びサイズを記録する転送リストを生成する手順と、
    前記記録媒体に格納されている読み出し対象となるデータを、前記転送リストに記録された前記各記憶領域のサイズに応じたサイズの複数のセグメントに分割して順次読み出し、当該分割して読み出されたセグメントを前記各記憶領域に格納する手順と、
    を実行させ、
    転送先となる処理要素に、
    前記転送元の処理要素が生成した転送リストを参照して、当該転送リストに記録されたアドレスにより示される記憶領域から、当該転送リストに記録されたサイズに応じたサイズのセグメントに分割されたデータを順次取得して、当該取得したセグメントについてハッシュ値を演算する手順を実行させるプログラムであって、
    前記転送先の処理要素によって演算されたハッシュ値が、前記読み出し対象となるデータが正当か否かの判断に用いられるプログラム。
JP2005268429A 2005-09-15 2005-09-15 データ読出装置 Expired - Fee Related JP4527640B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005268429A JP4527640B2 (ja) 2005-09-15 2005-09-15 データ読出装置
US11/515,394 US20070079051A1 (en) 2005-09-15 2006-09-01 Data reading device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005268429A JP4527640B2 (ja) 2005-09-15 2005-09-15 データ読出装置

Publications (2)

Publication Number Publication Date
JP2007080051A JP2007080051A (ja) 2007-03-29
JP4527640B2 true JP4527640B2 (ja) 2010-08-18

Family

ID=37903189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005268429A Expired - Fee Related JP4527640B2 (ja) 2005-09-15 2005-09-15 データ読出装置

Country Status (2)

Country Link
US (1) US20070079051A1 (ja)
JP (1) JP4527640B2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7500023B2 (en) 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
GB0719250D0 (en) * 2007-10-02 2007-11-14 Iti Scotland Ltd Anti-hack method
US7908403B2 (en) * 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US7941570B2 (en) * 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7937507B2 (en) 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7899944B2 (en) * 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US7904605B2 (en) * 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US7917813B2 (en) * 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US7840718B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US9081962B2 (en) 2008-04-30 2015-07-14 Graeme Harkness Anti-tamper techniques
US8055807B2 (en) * 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8805850B2 (en) * 2012-05-23 2014-08-12 International Business Machines Corporation Hardware-accelerated relational joins
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
JP5796725B2 (ja) * 2013-03-22 2015-10-21 カシオ計算機株式会社 認証処理装置、認証処理方法及びプログラム
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US11586372B2 (en) 2021-07-01 2023-02-21 Samsung Electronics Co., Ltd. Use of copy location to selectively set or selectively clear bits of metadata during live migration

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62134728A (ja) * 1985-12-06 1987-06-17 Nec Corp プログラム間デ−タ転送方式
JPH10124635A (ja) * 1996-10-25 1998-05-15 Toppan Printing Co Ltd Icカードおよびicカードシステム
JPH10143439A (ja) * 1996-11-12 1998-05-29 Fujitsu Ltd データ処理装置
JPH11184715A (ja) * 1997-12-24 1999-07-09 Matsushita Electric Ind Co Ltd データ処理プロセス実行制御装置
JP2002311827A (ja) * 2001-04-18 2002-10-25 Matsushita Electric Works Ltd 情報処理装置
US20020194209A1 (en) * 2001-03-21 2002-12-19 Bolosky William J. On-disk file format for a serverless distributed file system
JP2003006173A (ja) * 2001-04-18 2003-01-10 Matsushita Electric Works Ltd 情報処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4783730A (en) * 1986-09-19 1988-11-08 Datapoint Corporation Input/output control technique utilizing multilevel memory structure for processor and I/O communication
CN1434936A (zh) * 1999-12-22 2003-08-06 西加特技术有限责任公司 用于管理将数据转移入和转移出磁盘驱动器中缓冲器的缓冲器管理系统
US6795264B2 (en) * 2001-10-25 2004-09-21 Texas Instruments Incorporated LBA tracking for system data management
US7136982B2 (en) * 2001-11-09 2006-11-14 Danger, Inc. Apparatus and method for allocating memory blocks
US7558953B2 (en) * 2002-01-18 2009-07-07 Telefonaktiebolaget L M Ericsson (Publ) Loading data into a mobile terminal
JP2004013608A (ja) * 2002-06-07 2004-01-15 Hitachi Ltd プログラムの実行および転送の制御
US20040111626A1 (en) * 2002-12-09 2004-06-10 Doron Livny Security processing of unlimited data size
US7424571B2 (en) * 2004-07-27 2008-09-09 Gigafin Networks, Inc. Array machine context data memory
US7373520B1 (en) * 2003-06-18 2008-05-13 Symantec Operating Corporation Method for computing data signatures
EP1494460A1 (fr) * 2003-07-02 2005-01-05 THOMSON Licensing S.A. Procédé et dispositif d'authentification de données numériques par module d'extension d'authentification
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
US20050283566A1 (en) * 2003-09-29 2005-12-22 Rockwell Automation Technologies, Inc. Self testing and securing ram system and method
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62134728A (ja) * 1985-12-06 1987-06-17 Nec Corp プログラム間デ−タ転送方式
JPH10124635A (ja) * 1996-10-25 1998-05-15 Toppan Printing Co Ltd Icカードおよびicカードシステム
JPH10143439A (ja) * 1996-11-12 1998-05-29 Fujitsu Ltd データ処理装置
JPH11184715A (ja) * 1997-12-24 1999-07-09 Matsushita Electric Ind Co Ltd データ処理プロセス実行制御装置
US20020194209A1 (en) * 2001-03-21 2002-12-19 Bolosky William J. On-disk file format for a serverless distributed file system
JP2002311827A (ja) * 2001-04-18 2002-10-25 Matsushita Electric Works Ltd 情報処理装置
JP2003006173A (ja) * 2001-04-18 2003-01-10 Matsushita Electric Works Ltd 情報処理装置

Also Published As

Publication number Publication date
US20070079051A1 (en) 2007-04-05
JP2007080051A (ja) 2007-03-29

Similar Documents

Publication Publication Date Title
JP4527640B2 (ja) データ読出装置
TWI446166B (zh) 判定快取策略的方法、處理器和設定快取策略的系統
US20080049113A1 (en) Image sensing apparatus
US20120303880A1 (en) Method and apparatus for encrypting and processing data in flash translation layer
TWI582592B (zh) 用於存取快取記憶體的方法與裝置
CN108229190B (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
JP6213345B2 (ja) 転送装置、決定方法、及びデータ処理装置
US20060143405A1 (en) Data processing device
JP4643351B2 (ja) 機器及びプログラム起動方法
JP2006040140A (ja) 情報処理装置及びマルチヒット制御方法
JP5979966B2 (ja) 回路設計支援装置及び回路設計支援方法及びプログラム
JP5374751B2 (ja) メモリ管理方法
JPH06139149A (ja) 多重仮想空間制御装置
JP2009278491A (ja) マイクロプロセッサ及びマイクロプロセッサ応用装置
JP3464738B2 (ja) コピー防止機能付きrom
WO2019183849A1 (zh) 数据处理方法和设备
JP3642533B2 (ja) プログラムカード及びこれを用いた計算機
JP2007286990A (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
JP7201545B2 (ja) 帳票処理プログラム、帳票処理方法、及び帳票処理装置
JP2848437B2 (ja) マルチクラスタ排他制御装置
JPH0477915A (ja) 磁気ディスク制御装置
JP2003196259A (ja) データ駆動型情報処理装置およびデータ処理方法
WO2011096073A1 (ja) メモリ管理方法
JP4494950B2 (ja) テーブル切替プログラムおよびコンピュータシステム
JP5792526B2 (ja) メモリシステムおよび情報保護方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100210

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100603

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

Free format text: PAYMENT UNTIL: 20130611

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4527640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees