ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段と、を有するTPMTransferPlatformModuleを備えた情報処理装置であって、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割手段と、前記複数のbit列を前記TPMに入力して、それぞれ前記レジスタに記憶させる手段と、を有する情報処理装置。請求項1に記載された情報処理装置において、前記複数のbit列が記憶されている前記レジスタ毎の前記指定値を、前記ソフトウェア毎に前記TPMに入力する条件指定手段を有する情報処理装置。ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段と、を有するTPMTransferPlatformModuleを備えた情報処理装置における正当性検証方法であって、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割工程と、前記分割工程において前記ハッシュ値を分割して生成された前記複数のbit列を、前記TPMに入力して、それぞれ前記レジスタに記憶させる工程と、を有する正当性検証方法。ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段とを有するTPMTransferPlatformModuleを備えた情報処理装置のコンピュータを、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割手段と、前記複数のbit列を前記TPMに入力して、それぞれ前記レジスタに記憶させる手段、として機能させるプログラム。本発明は、上記従来の問題に鑑みなされたものであって、その目的は、TPMを用いた情報処理装置において、TPMが有するPCRのbit長よりも長いbit長のハッシュ値を用いて、ソフトウェアの正当性検証と保存データの暗号化復号を行なえるようにすることである。本発明は、ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段と、を有するTPMTransferPlatformModuleを備えた情報処理装置であって、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割手段と、前記複数のbit列を前記TPMに入力して、それぞれ前記レジスタに記憶させる手段と、を有する情報処理装置である。また、本発明は、ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段と、を有するTPMTransferPlatformModuleを備えた情報処理装置における正当性検証方法であって、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割工程と、前記分割工程において前記ハッシュ値を分割して生成された前記複数のbit列を、前記TPMに入力して、それぞれ前記レジスタに記憶させる工程と、を有する正当性検証方法である。また、本発明は、ソフトウェアのプログラムコードから算出されるハッシュ値を記憶するレジスタと、前記レジスタに記憶された前記ハッシュ値が予め指定された指定値と一致することを条件として、前記ソフトウェアを正当と判断し、暗号化されたデータの復号を行う復号手段とを有するTPMTransferPlatformModuleを備えた情報処理装置のコンピュータを、前記ハッシュ値を分割して、前記レジスタのbit長以下の長さを持つ複数のbit列を生成する分割手段と、前記複数のbit列を前記TPMに入力して、それぞれ前記レジスタに記憶させる手段、として機能させるプログラムである。本発明によれば、TPMを用いた情報処理装置において、TPMが有するPCRのbit長よりも長いbit長のハッシュ値を用いて、ソフトウェアの正当性検証と保存データの暗号化復号を行なうことができる。以下、図面を参照して、本発明の実施の形態を説明する。本実施形態に係る画像形成装置は、印刷動作等の制御を行うコンピュータ情報処理装置を備え、当該情報処理装置は、ハッシュ関数SHA-1にのみ対応する160bit長のPCRを有するTPMを備える。そして、本画像形成装置は、ハッシュ関数SHA-256を用いて、ソフトウェアプログラムについての256bit長のハッシュ値を算出し、当該ハッシュ値を分割して128bit長の2つのbit列を生成し、各bit列を個別のハッシュ値として上記160bit長の2つのPCRにそれぞれ記憶する。また、正当な上記ソフトウェアプログラムについて予め算出されたハッシュ値を、上記と同様に分割して128bit長の2つのbit列を生成し、これら2つのbit列が表す2つの値を、復号条件、即ち、当該ソフトウェアの正当性判断条件としてBlobを生成する。すなわち、本画像形成装置は、正当性検証を行なう対象であるソフトウェア毎に、PCRを2つずつペアにして用いて当該ソフトウェアのハッシュ値を記憶し、当該ペアを構成するPCR毎に復号条件を設定してBlobを生成することで、160bitのハッシュ値にしか対応していない従来のTPMチップを使用して、256bitのハッシュ値に基づく正当性検証を行なうものである。図1は、本発明の一実施形態に係る画像形成装置の構成を示すブロック図である。本画像形成装置1は、印刷機能、画像読取機能、及びファクシミリ通信機能を備えた複合プリンタMFP:MultifunctionPrinterであって、プリンタ不図示やスキャナ不図示により記録用紙への画像形成や原稿読み取り等を行うエンジンサブシステム2と、ファクシミリ装置不図示により公衆回線を介してファクシミリ通信を行なうFAXfacsimile、ファックスサブシステム4と、操作用キーボード不図示等によりユーザからの入力を取得する操作部サブシステム6と、これら3つのサブシステムの動作を統括的に制御する情報処理装置である本体制御部8と、を有している。また、本体制御部8とエンジンサブシステム2はPCIexpress規格に準拠したシリアルバスであるPCIeバス10により接続されており、本体制御部8とFAXサブシステム4及び操作部サブシステム6とは、USBUniversalSerialBus規格に準拠したシリアルバスであるUSBバス12、14により、それぞれ接続されている。図2は、画像形成装置1における情報処理装置である本体制御部8の構成を示すブロック図である。本体制御部8は、CPU20と、CPU20の起動時に実行されるBIOS220等のプログラムが書き込まれたROM22と、データの一時記憶のためのRAM24とで構成されるコンピュータと、データを記憶し保存する固定ディスク装置HDD、HardDiskDrive26と、HDD26へ記憶するデータの暗号化及びHDD26から読み出されたデータの復号を行なうエンコーダ/デコーダ28と、ユーザに対しデータの表示等を行なう液晶表示装置LCD、LiquidCrystalDisplay30と、LCD30の表示画面上に配置され、ユーザがデータ等を入力する際に使用するタッチパネル32と、を有している。また、本体制御部8は、CPU20が実行するソフトウェアの正当性検証等を行なうセキュリティチップであるTPM40と、各種のソフトウェアプログラムを記憶した不揮発性RAMNVRAM50と、を有している。TPM40は、入力されたデータを暗号化するための秘密鍵を記憶したメモリ402と、CPU20がBIOS220等のソフトウェアプログラムについて算出したハッシュ値を記憶するレジスタであるPCR404ないし409と、TPM40内部の動作を制御する制御部410と、入力されたデータを上記秘密鍵により暗号化する暗号化手段412と、入力されたBlobに含まれる暗号化されたデータを、当該Blobに含まれる復号条件が満たされていることを条件に、上記秘密鍵により復号する復号手段414と、を有している。ここで、TPM40は、ハッシュ関数SHA-1が生成する160bitのハッシュ値にのみ対応し、PCR404ないし409が記憶できるハッシュ値の最大のbit長PCR404ないし409のbit長は、160bitとなっている。また、NVRAM50には、OSを含んだソフトウェアプログラムである基本パッケージ502と、エンジンサブシステム2が制御するプリンタ不図示やスキャナ不図示、あるいは、FAXサブシステム4が制御するファクシミリ装置不図示等を動作させるためのソフトウェアプログラムを含むアプリケーションパッケージ504と、TPM40が生成するBlob506ないし508が記憶されている。ここで、Blob506には、HDD26にデータを保存したりHDD26からデータを読み出す際に当該データの暗号化又は復号を行なうための暗号鍵が、暗号化された状態で含まれているものとする。さらに、本体制御部8は、CPU20が、ROM22又はNVRAM50に記憶されているコンピュータプログラムを実行することにより実現される機能実現手段として、分割手段202と、記録手段204と、条件指定手段206と、ブロブ生成手段208と、データ保存手段210と、データ読出し手段212と、を有している。なお、コンピュータプログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。分割手段202は、CPU20がBIOS220等に基づいてハッシュ関数SHA-256により算出した、各ソフトウェアプログラムについての256bitのハッシュ値のbit列を分割して、上位128bitのbit列と下位128bitのbit列に分割する。なお、256bitのハッシュ値の分割方法は、上記に限らず、分割後のbit列の長さが、PCR404ないし409のbit長160bit以下になるような分割方法であればよい。記録手段204は、分割手段202が生成した128bit長の2つのbit列を、個別のハッシュ値としてTPM40に入力し、TPM40が備えるPCR404ないし409のうち、いずれか2つのPCRにそれぞれ記憶させる。条件指定手段206は、ブロブ生成手段208がTPM40によりBlobを生成する際に、ソフトウェアプログラムが正当である場合のハッシュ値を、復号条件正当性判断条件としてTPM40に入力する。ただし、上記正当である場合のハッシュ値は、ハッシュ関数SHA-256により256bitの値として与えられることから、条件指定手段206は、分割手段202と同様の方法により、上記正当である場合のハッシュ値を分割して128bit長の2つのbit列を生成し、これら2つのbit列を、当該ソフトウェアの正当性判断条件としてTPM40に入力する。ブロブ生成手段208は、正当な各ソフトウェアプログラムについて算出されたハッシュ値を条件指定手段206に与えて上記2つのbit列をTPM40に入力させると共に、暗号化対象であるデータをTPM40に入力してBlobを生成する。データ保存手段210は、アプリケーションパッケージ504の実行時等において、HDD26へデータを保存する際に、NVRAM50からBlob506を読み出してTPM40に入力し、Blob506に含まれている暗号鍵をTPM40から取得する。また、取得した当該暗号鍵をエンコーダ/デコーダ28に渡し、エンコーダ/デコーダ28により保存データを暗号化してHDD26に記憶する。データ読出し手段212は、アプリケーションパッケージ504の実行時等において、HDD26からデータを読み出す際に、NVRAM50からBlob506を読み出してTPM40に入力し、Blob506に含まれている暗号鍵をTPM40から取得する。また、取得した当該暗号鍵をエンコーダ/デコーダ28に渡し、HDD26から読み出したデータをエンコーダ/デコーダ28により復号して、平文暗号化されていない状態のデータを得る。上記の構成を備える画像形成装置1は、ユーザが電源を投入すると、CPU20により、ROM22が記憶するBIOS220と、NVRAM50が記憶する基本パッケージ502及びアプリケーションパッケージ504を、順次、RAM24に読み出して実行する。その際、CPU20は、BIOS220及び基本パッケージ502を実行することにより、BIOS220、基本パッケージ502、及びアプリケーションパッケージ504のハッシュ値を算出してTPM40のPCR404ないし409に記憶する。図3は、画像形成装置1の、起動時におけるハッシュ値の記録処理を示した模式図である。図3上部は、本体制御部8のプラットフォーム60、即ちCPU20その他の、プログラムを実行するための基盤となるハードウェアの総体を示し、当該プラットフォーム60上で、BIOS220と、基本パッケージ502と、アプリケーションパッケージ504とが実行される。また、図3下部はTPM40のPCR404ないし409を示している。図3に示す画像形成装置1におけるハッシュ値の記録処理と、図9に示す従来の情報処理装置におけるハッシュ値の記録処理との最大の違いは、図3においては、ハッシュ値算出にSHA-256を使用し、256bitの各ハッシュ値を、PCRを2つずつ使って記憶することである。また、TPM40に対するハッシュ値報告ハッシュ値の入力では、256bitのハッシュ値を、例えば半分ずつの、2つの128bitのbit列に分割し、これら2つのbit列を2つのハッシュ値として別々に報告入力する。画像形成装置1では、電源投入後に、まず、CPU20によりBIOS220が実行を開始し、BIOS220自身のハッシュ値をハッシュ関数SHA-256により算出する。そして、算出された256bitのハッシュ値を分割して2つの128bit長のbit列とし、各bit列を個別のハッシュ値としてTPM40に入力して、PCR404とPCR405にそれぞれ記憶する。次に、BIOS220は、次に実行される基本パッケージ502のハッシュ値をハッシュ関数SHA-256により算出し、上記と同様に2つの128bit長のbit列に分割して、TPM40のPCR406、407にそれぞれ記憶した後、基本パッケージ502に実行を移す。続いて、基本パッケージ502は、次に実行されるアプリケーションパッケージ504のハッシュ値をハッシュ関数SHA-256により算出し、上記と同様に2つの128bit長のbit列に分割して、TPM40のPCR408、409にそれぞれ記憶した後、アプリケーションパッケージ504に実行を移す。また、画像形成装置1は、TPM40により、ユーザパスワード等の秘密情報を含むデータの暗号化及び復号を行なう。図4は、画像形成装置1における、データの暗号化動作及び復号動作を表した模式図である。図4Aは、暗号化動作を示す模式図であり、図4Bは、復号動作を示す模式図である。まず、データの暗号化動作図4Aでは、TPM40に対し、図4A左側に示す暗号化すべきデータDataPと、当該データの復号条件としてPCR404ないし409の値の組み合わせX1、X2、Y1、Y2、Z1、Z2が入力される。ここで、X1、X2は、BIOS220が正当である場合の256bitのハッシュ値を128bit長に分割して得られる2つの値、Y1、Y2は、基本パッケージ502が正当である場合の256bitのハッシュ値を128bit長に分割して得られる2つの値、Z1、Z2は、アプリケーションパッケージ504が正当である場合の256bitのハッシュ値を128bit長に分割して得られる2つの値とする。TPM40は、これら入力情報に基づき、TPM40のメモリ402に保有する秘密鍵によりDataPを暗号化し、暗号化したDataPと復号条件X1、X2、Y1、Y2、Z1、Z2とを含むBlob506を作成する。なお、本実施形態では、HDD26に記憶するデータの暗号化復号に用いる暗号鍵を上記DataPとして、Blob506が作成されるものとする。また、上記の暗号化動作は、例えば、画像形成装置1の初回起動時に、ユーザが初期設定としてユーザパスワードや暗号鍵などの秘密情報を入力したときに実行される。次に、データの復号動作図4Bでは、例えば図4B左側に示すBlob506ないし508が、TPM40にそれぞれ入力される。このTPM40のPCR404ないし409には、それぞれ、BIOS220のハッシュ値を分割したX1、X2、基本パッケージ502のハッシュ値を分割したY1、Y2、及びアプリケーションパッケージ504のハッシュ値を分割したZ1、Z2が記憶されている。さらに、図4Bの図示右側には、各Blob506ないし508に含まれるデータの復号が行なわれるか否かが、それぞれ、○及び×で示されている。Blob506は、復号条件であるPCR404ないし409の値の組み合わせとして6つの値X1、X2、Y1、Y2、Z1、Z2が含まれており、これらの値と、PCR404ないし409に現在記憶されている値が一致するため、Blob506に含まれているDataPは、TPM40により復号されて出力されることとなる。また、Blob507は、復号条件がX1、X2、G1、G2、Z1、Z2となっており、これらの値の組み合わせは、PCR404ないし409に現在記憶されている値X1、X2、Y1、Y2、Z1、Z2とは一致しないため、Blob507に含まれているDataPは復号されない。さらに、Blob508は、復号条件としてPCR404、405の値X1、X2のみが指定されており、これらの値はPCR404、405に現在記憶されている値X1、X2と一致するため、Blob508に含まれているDataPは復号されて出力される。次に、画像形成装置1の動作手順について説明する。画像形成装置1は、起動時にソフトウェアプログラムのハッシュ値を算出してTPM40のPCR404ないし409に記録するハッシュ値記録処理、初回起動時に秘密情報を暗号化してBlobを生成するブロブ生成処理、アプリケーションパッケージ504に含まれるアプリケーショソフトウェア等の実行時において、データ保存の際に保存データを暗号化してHDD26に記憶するデータ保存処理、及び、HDD26に保存されたデータを読み出して復号するデータ読出し処理を行う。まず、画像形成装置1が起動時に行なうハッシュ値記録処理の手順について、図5に示すフロー図にしたがって説明する。まず、ユーザが画像形成装置1の電源を投入すると、CPU20は、ROM22が記憶するBIOS220を、RAM24にダウンロードして実行しS101、BIOS220自身のハッシュ値をハッシュ関数SHA-256により算出するS102。次に、分割手段202は、算出されたハッシュ値を分割して2つの128bit長のbit列を生成しS103、記録手段204は、生成した2つのbit列を個別のハッシュ値としてTPM40に入力し、PCR404、405にそれぞれ記憶させるS104。次に、CPU20は、BIOS220のプログラムに基づき、基本パッケージ502のハッシュ値をハッシュ関数SHA-256により算出しS105、分割手段202は、算出されたハッシュ値を分割して2つの128bit長のbit列を生成するS106。次に、記録手段204は、生成した2つのbit列を個別のハッシュ値としてTPM40に入力し、PCR406、407にそれぞれ記憶させた後S107、基本パッケージ502に実行を移すS108。続いて、CPU20は、基本パッケージ502のプログラムに基づき、アプリケーションパッケージ504のハッシュ値をハッシュ関数SHA-256により算出しS109、分割手段202は、算出されたハッシュ値を分割して2つの128bit長のbit列を生成するS110。次に、記録手段204は、生成した2つのbit列を個別のハッシュ値としてTPM40に入力し、PCR408、409にそれぞれ記憶させた後S111、アプリケーションパッケージ504に実行を移してS112、処理を終了する。次に、画像形成装置1における、ブロブ生成処理の手順について、図6に示すフロー図にしたがって説明する。本処理は、画像形成装置1の初回起動時に、初期設定としてユーザが秘密情報であるデータを入力したときに、開始する。処理を開始すると、ブロブ生成手段208は、改ざんが行なわれていない正当なBIOS220のハッシュ値Xと、正当な基本パッケージ502のハッシュ値Yと、正当なアプリケーションパッケージ504のハッシュ値Zとを、条件指定手段206に渡すS201。ここで、これらのハッシュ値X、Y、Zは、例えば、予め算出してプログラムの中に含めておくことができる。次に、条件指定手段206は、ハッシュ値X、Y、Zを分割し、それぞれ、2つの128bit長のbit列、X1とX2、Y1とY2、及びZ1とZ2を生成しS202、PCR404ないし409の値の組み合わせX1、X2、Y1、Y2、Z1、Z2を、復号条件としてTPM40に入力しS203、ブロブ生成手段208は、初期設定としてユーザが入力したデータをTPM40に入力するS204。なお、本実施形態では、当該データは、HDD26に記憶するデータの暗号化及び復号を行なうための暗号鍵とする。これにより、TPM40は、入力されたデータ暗号鍵を、メモリ402に保存されている秘密鍵により暗号化し、当該暗号化したデータと、上記入力された復号条件とを含むBlob506を出力する。次に、ブロブ生成手段208は、TPM40からBlob506を取得しS205、取得したBlob506をNVRAM50に記憶させた後S206、処理を終了する。次に、画像形成装置1における、データ保存処理の手順について、図7に示すフロー図にしたがって説明する。本処理は、アプリケーションパッケージ504に含まれるアプリケーショソフトウェア等の実行時において、HDD26へのデータ保存を行う際に開始する。処理を開始すると、データ保存手段210は、まずBlob506をNVRAM50から読み出して、TPM40に入力するS301。これに対し、TPM40は、入力されたBlob506に含まれている復号条件、すなわち、PCR404ないし409の値の組み合わせX1、X2、Y1、Y2、Z1、Z2を参照し、この値の組み合わせがPCR404ないし409に現在記憶されている値の組み合わせと一致するか否かを判断する。そして、一致するときは、Blob506に含まれている暗号化されたデータ暗号鍵を、メモリ402に保存されている秘密鍵により復号して出力し、一方、一致しないときは、例えば、所定のエラーコードを出力する。次に、データ保存手段210は、TPM40が暗号鍵を出力したか否かを判断しS302、暗号鍵を出力したときはS302、Yes、出力された暗号鍵をエンコーダ/デコーダ28に入力すると共にS303、HDD26に保存する保存データとそのファイル名とを、エンコーダ/デコーダ28に入力するS304。続いて、エンコーダ/デコーダ28は、暗号鍵により保存データを暗号化し、暗号化した保存データを、上記ファイル名を用いてHDD26に記憶させた後S305、暗号鍵を破棄してS306、処理を終了する。一方、ステップS302においてTPM40が暗号鍵を出力しなかったときはS302、No、データ保存手段210は、LCD30にエラーメッセージを表示してS307、処理を終了する。次に、画像形成装置1におけるデータ読出し処理の手順について、図8に示すフロー図にしたがって説明する。本処理は、アプリケーションパッケージ504に含まれるアプリケーショソフトウェア等の実行時において、HDD26からデータ読出しを行う際に開始する。処理を開始すると、データ読出し手段212は、Blob506をNVRAM50から読み出して、TPM40に入力するS401。次に、データ読出し手段212は、TPM40が暗号鍵を出力したか否かを判断しS402、暗号鍵を出力したときはS402、Yes、出力された暗号鍵をエンコーダ/デコーダ28に入力するS403。そして、エンコーダ/デコーダ28を介して、HDD26に対し、読み出すデータのファイル名を指定するS404。続いて、HDD26は、指定されたファイル名で保存されているデータをエンコーダ/デコーダ28に出力しS405、エンコーダ/デコーダ28は、HDD26が出力したデータを、暗号鍵を用いて復号して出力した後S406、暗号鍵を破棄してS407、処理を終了する。一方、ステップS402においてTPM40が暗号鍵を出力しなかったときはS402、No、データ読出し手段212は、LCD30にエラーメッセージを表示してS408、処理を終了する。以上説明したように、本実施形態では、正当性検証の対象であるソフトウェア毎に、ハッシュ関数SHA-256が生成する256bitのハッシュ値を分割して、128bit長の2つのbit列を生成し、生成したbit列が表す値をTPM40が備えるPCR404ないし409のうち2つのPCRに記憶させる。また、Blobを生成する際には、暗号化データの復号条件即ち、正当性判断条件として、正当な上記ソフトウェアプログラムについての256bitのハッシュ値を、上記と同様に分割し、当該分割によって得られる2つの値の組み合わせを、暗号化データの復号条件即ち、正当性判断条件としてTPM40に入力する。これにより、画像形成装置1は、ハッシュ関数SHA-1が生成する160bit長のハッシュ値にしか対応していないTPM40を用いて、暗号の2010年問題に対応したハッシュ関数SHA-256により算出される256bitのハッシュ値により、正当性検証を行なうことができる。なお、本実施形態では、一例としてMFPの構成を示したが、これに限らず、TPMを用いて正当性検証を行なう機能を持ち、当該機能により正当性が検証されたソフトウェアにより制御されるサブシステムを内包するシステムであれば、どのようなシステムでも、本発明を適用することができる。