(57)【要約】【課題】サブシステムのハイバネーション起動時に、当該ハイバネーション起動に係るデータの正当性検証を効率的に行うことが可能な情報処理装置、情報処理方法及びプログラムを提供すること。【解決手段】サブシステムと当該サブシステムの正当性を検証するメインシステムとを有する情報処理装置であって、前記サブシステムは、ハイバネーション起動に係るデータを記憶する第１記憶部と、前記ハイバネーション起動に際して、前記データのハッシュ値を算出する算出部と、前記算出部が算出したハッシュ値を前記メインシステムに送信する第１通信部と、前記データを用いて前記サブシステムを前記ハイバネーション起動させるとともに、前記データの正当性が前記メインシステムで確認されるまでの間、前記サブシステムの機能の一部又は全てを無効化する起動制御部と、を備える。【選択図】図４
2020088746.tif 000002
【特許請求の範囲】
【請求項１】
サブシステムと当該サブシステムの正当性を検証するメインシステムとを有する情報処理装置であって、
前記サブシステムは、
ハイバネーション起動に係るデータを記憶する第１記憶部と、
前記ハイバネーション起動に際して、前記データのハッシュ値を算出する算出部と、
前記算出部が算出したハッシュ値を前記メインシステムに送信する第１通信部と、
前記データを用いて前記サブシステムを前記ハイバネーション起動させるとともに、前記データの正当性が前記メインシステムで確認されるまでの間、前記サブシステムの機能の一部又は全てを無効化する起動制御部と、
を備え、
前記メインシステムは、
前記サブシステムの前記ハイバネーション起動に係る正規のデータのハッシュ値を記憶する第２記憶部と、
前記サブシステムから送信された前記ハッシュ値を受信する第２通信部と、
前記第２記憶部に記憶されたハッシュ値と、前記第２通信部が受信したハッシュ値とが一致したことを条件に、前記第１記憶部に記憶された前記データの正当性が確認できたと判定する正当性検証部と、
を備える情報処理装置。
【請求項２】
前記第１通信部及び前記第２通信部は、前記ハッシュ値の送受信に先駆けて、公開鍵の鍵交換により第１暗号化通信を確立する、請求項１に記載の情報処理装置。
【請求項３】
前記第１記憶部に記憶された前記データの少なくとも一部は、前記メインシステムが保持する暗号鍵によって暗号化されており、
前記算出部は、前記第１暗号化通信で前記メインシステムから提供される前記暗号鍵を用いて復号された前記データから前記ハッシュ値を算出し、
前記起動制御部は、復号後の前記データを用いて前記サブシステムを前記ハイバネーション起動する、請求項２に記載の情報処理装置。
【請求項４】
前記第１記憶部の前記データは、前記サブシステムのブートプログラムと、前記暗号鍵で一部又は全てが暗号化されたハイバネーションイメージとを有し、
前記起動制御部は、前記ブートプログラムの正当性を確認したことを条件に、前記サブシステムに前記暗号鍵を提供する請求項３に記載の情報処理装置。
【請求項５】
前記第１通信部及び前記第２通信部は、前記第１記憶部に記憶された前記データの正当性が前記正当性検証部で確認された後、前記公開鍵とは異なる他の公開鍵の鍵交換により第２暗号化通信を確立する、請求項２〜４の何れか一項に記載の情報処理装置。
【請求項６】
サブシステムと当該サブシステムの正当性を検証するメインシステムとを有する情報処理装置で実行される情報処理方法であって、
前記サブシステムは、
ハイバネーション起動に際して、前記サブシステムの第１記憶部に記憶された前記ハイバネーション起動に係るデータのハッシュ値を算出する算出工程と、
前記算出工程で算出されたハッシュ値を前記メインシステムに送信する送信工程と、
前記データを用いて前記サブシステムを前記ハイバネーション起動させるとともに、前記データの正当性が前記メインシステムで確認されるまでの間、前記サブシステムの機能の一部又は全てを無効化する起動制御工程と、
を実行し、
前記メインシステムは、
前記サブシステムから送信された前記ハッシュ値を受信する受信工程と、
前記受信工程で受信された前記ハッシュ値と、前記メインシステムの第２記憶部に記憶された前記サブシステムの前記ハイバネーション起動に係る正規のデータのハッシュ値とが一致したことを条件に、前記第１記憶部に記憶された前記データの正当性が確認できたと判定する正当性検証工程と、
を実行する情報処理方法。
【請求項７】
サブシステムと当該サブシステムの正当性を検証するメインシステムとを有する情報処理装置の、前記サブシステムのコンピュータを、
ハイバネーション起動に際して、前記サブシステムの第１記憶部に記憶された前記ハイバネーション起動に係るデータのハッシュ値を算出する算出手段と、
前記算出手段が算出したハッシュ値を前記メインシステムに送信する第１通信手段と、
前記データを用いて前記サブシステムを前記ハイバネーション起動させるとともに、前記ハッシュ値に基づく前記データの正当性が前記メインシステムで確認されるまでの間、前記サブシステムの機能の一部又は全てを無効化する起動制御手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
画像処理装置や複合機（ＭＦＰ：Multi-Function  Peripheral）等の情報処理装置では、データの改ざん等を防ぐため、ＴＰＭ（Trusted  Platform  Module）等のセキュリティ向上のための技術が用いられている。
【０００３】
また、従来、メインシステム（本体制御部）と、サブシステム（エンジン、操作部等）とを有するＭＦＰにおいて、なりすまし攻撃を防ぐための、サブシステムの起動時に正当性検証を行う技術が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の技術では、サブシステムが通常のブートシーケンスでＯＳ起動することを前提としており、ハイバネーションイメージを用いて起動する場合の正当性検証については何ら考慮されていない。
【０００５】
本発明は、上記に鑑みてなされたものであって、サブシステムのハイバネーション起動時に、当該ハイバネーション起動に係るデータの正当性検証を効率的に行うことが可能な情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、サブシステムと当該サブシステムの正当性を検証するメインシステムとを有する情報処理装置であって、前記サブシステムは、ハイバネーション起動に係るデータを記憶する第１記憶部と、前記ハイバネーション起動に際して、前記データのハッシュ値を算出する算出部と、前記算出部が算出したハッシュ値を前記メインシステムに送信する第１通信部と、前記データを用いて前記サブシステムを前記ハイバネーション起動させるとともに、前記データの正当性が前記メインシステムで確認されるまでの間、前記サブシステムの機能の一部又は全てを無効化する起動制御部と、を備え、前記メインシステムは、前記サブシステムの前記ハイバネーション起動に係る正規のデータのハッシュ値を記憶する第２記憶部と、前記サブシステムから送信された前記ハッシュ値を受信する第２通信部と、前記第２記憶部に記憶されたハッシュ値と、前記第２通信部が受信したハッシュ値とが一致したことを条件に、前記第１記憶部に記憶された前記データの正当性が確認できたと判定する正当性検証部と、を備える。
【発明の効果】
【０００７】
本発明によれば、サブシステムのハイバネーション起動時に、当該ハイバネーション起動に係るデータの正当性検証を効率的に行うことができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態にかかる画像形成装置（情報処理装置）の装置構成の一例を示す図である。
【図２】図２は、図１に示した本体制御部（メインシステム）のハードウェア構成の一例を示す図である。
【図３】図３は、図１に示した操作部（サブシステム）のハードウェア構成の一例を示す図である。
【図４】図４は、実施形態の本体制御部及び操作部が備える機能構成の一例を示す図である。
【図５】図５は、実施形態の画像形成装置で実行される正当性検証処理の一例を説明するための図である。
【図６】図６は、実施形態に係る操作部の動作の一例を示すフローチャートである。
【０００９】
以下に添付図面を参照して、情報処理装置、情報処理方法及びプログラムの実施形態を詳細に説明する。以下では、情報処理装置として、印刷機能、画像読取機能、及びファクシミリ通信機能等を備えたＭＦＰ（Multifunction  Printer）等の画像形成装置を用いた例を説明するが、これに限定されるものではない。
【００１０】
図１は、実施形態にかかる画像形成装置の装置構成の一例を示す図である。画像形成装置１は、メインシステムである本体制御部２と、サブシステムであるエンジン部３、ＦＡＸ部４及び操作部５等とを備える。ここで、本体制御部２と、各サブシステム（エンジン部３、ＦＡＸ部４及び操作部５）とは、ＵＳＢ（Universal  Serial  Bus）規格に準拠したシリアルバスであるＵＳＢバス１１によりそれぞれ接続される。また、本体制御部２と各サブシステムとは、Ｉ２Ｃ（Inter-Integrated  Circuit）規格に準拠したシリアルバスであるＩ２Ｃバス１２によりそれぞれ接続される。
【００１１】
エンジン部３は、スキャナシステムとプリンタシステムとを備える。スキャナシステムは、原稿の画像を主走査及び副走査して原稿の画像を所定の解像度で読み取って、読み取った画像データを本体制御部２に出力する。プリンタシステムは、本体制御部２から受け取った画像データに基づいて所定の画像形成方式、例えば、電子写真方式で画像を記録出力する。
【００１２】
ＦＡＸ部４は、公衆回線等のファクシミリ通信可能な回線に接続される。ＦＡＸ部４は、本体制御部２の制御の下、送信元のファクシミリ装置からファクシミリデータを受信する受信処理を実行する。また、ＦＡＸ部４は、エンジン部３のスキャナシステムで読み取られたデータにて所定の画像処理を施し、画像処理後のデータを送信先のファクシミリ装置に送信する送信処理を実行する。
【００１３】
操作部５は、例えば、テンキー、クリア／ストップキー、スタートキー、ファックスキー等の各種操作キー、タッチパネル付き液晶ディスプレイ等を有した表示操作部５１４（図３参照）を備える。操作部５（表示操作部５１４）の表示画面には、例えば、機能キー及びコピー部数、プリント部数や画像形成装置１の状態を示すメッセージ等の各種情報が表示される。
【００１４】
本体制御部２は、各サブシステムを制御することで、画像形成装置１の動作を統括的に制御する。また、本体制御部２は、サブシステムになりすました攻撃からセキュリティを確保するため、サブシステムの起動時に当該サブシステムの起動に係るデータの正当性を検証するための処理（正当性検証処理）を実行する。
【００１５】
図２は、本体制御部２のハードウェア構成の一例を示す図である。図２に示すように、本体制御部２は、ＣＰＵ（Central  Processing  Unit）２１、ＲＡＭ（Random  Access  Memory）２２、不揮発性メモリ２３、ＴＰＭ（Trusted  Platform  Module）２４、ＵＳＢインタフェース２５及びＩ２Ｃインタフェース２６等を備えている。
【００１６】
不揮発性メモリ２３は、例えばフラッシュＲＯＭ（Flash  Read  Only  Memory）等の記憶装置で実現される。不揮発性メモリ２３は、画像形成装置１のブートプログラム２３ａ及びシステムＯＳ２３ｂ、サブシステムとの暗号化通信に用いる第１通信鍵２３ｃ及び第２通信鍵２３ｄ、サブシステム暗号鍵２３ｅ等を格納する。
【００１７】
ブートプログラム２３ａは、本体制御部２の起動時に実行されるプログラムである。システムＯＳ２３ｂは、本体制御部２のシステムプログラムである。第１通信鍵２３ｃ及び第２通信鍵２３ｄは、デフィー・ヘルマン鍵共有による暗号化通信に使用する通信鍵である。第１通信鍵２３ｃ及び第２通信鍵２３ｄは、公開鍵（巨大素数及び生成元）等の要素を含む。ここで、第１通信鍵２３ｃ及び第２通信鍵２３ｄのうち、少なくとも第２通信鍵２３ｄは、ＴＰＭ２４が保持する秘密鍵により暗号化（ＢＬＯＢ化）された状態で保持される。サブシステム暗号鍵２３ｅは、サブシステムの起動に不可欠なデータを復号するための暗号鍵である。サブシステム暗号鍵２３ｅは、ＴＰＭ２４が保持する秘密鍵により暗号化（ＢＬＯＢ化）された状態で保持される。
【００１８】
ＴＰＭ２４は、ＣＰＵ、ＲＯＭ、ＲＡＭ、不揮発性メモリ、タイマー等を含むハードウェアチップである。ＴＰＭ２４は、公開鍵、秘密鍵の生成、保管、演算機能が実装されており、エンドースメント鍵やStorage  Root  Key等の重要な鍵をＴＰＭ２４内部で管理することが可能となっている。
【００１９】
また、ＴＰＭ２４は、ＴＰＭ２４内部に、第２記憶部の一例であるＰＣＲ（Platform  Configuration  Registers）と呼ばれる不揮発性メモリ（レジスタ）を保持している。ＴＰＭ２４は、プラットフォーム構成情報（ソフトウェアの計測値）をＰＣＲに保管（記憶）し、通知する機能を有している。これらの機能はそれぞれＲＴＳ（Root  of  Trust  for  Storage）、ＲＴＲ（Root  of  Trust  for  Reporting）と呼ばれ、ＲＴＭ（Root  of  Trust  for  Measurements）で計測したソフトウェアのインテグリティ情報（ハッシュ値）を保管する。
【００２０】
ここで、ハッシュ値とは、ソフトウェア等のデータを、ＳＨＡ−１等のハッシュ関数と呼ばれる特殊な関数により演算して得られる数値を意味する。ハッシュ関数は、データが異なれば異なるハッシュ値を生成する。このため、算出したハッシュ値が、例えば過去に算出したハッシュ値と一致すれば、そのデータは変更等が行われていない同一のデータであると判断することができる。
【００２１】
図２では、ＴＰＭ２４は、４つのＰＣＲ２４ａ〜ＰＣＲ２４ｄ（ＰＣＲ１〜ＰＣＲ４）を備えた例を示している。ここで、ＰＣＲ１には、本体制御部２用に用意された正規のブートプログラム２３ａのハッシュ値が格納される。ＰＣＲ２には、本体制御部２用に用意された正規のシステムＯＳ２３ｂのハッシュ値が格納される。ＰＣＲ３には、後述するサブシステム用に用意された正規のブートプログラム５１３ａのハッシュ値（ブートハッシュ値）が格納される。ＰＣＲ４には、後述するサブシステム用に用意された正規のハイバネーションイメージ５１３ｅのハッシュ値（イメージハッシュ値）が格納される。これらのハッシュ値は、例えば画像形成装置１の出荷時又はハイバネーションイメージ５１３ｅの作成時にＴＰＭ２４内部の不揮発性メモリに格納される。
【００２２】
なお、ＴＰＭ２４が備えるＰＣＲの構成は、図２に限定されないものとする。例えば、サブシステム毎にＰＣＲ３、ＰＣＲ４に相当するＰＣＲを備えてもよい。また、ＴＰＭ２４で後述するサブシステムＯＳ５１３ｂの正当性を検証する場合には、サブシステムＯＳ５１３ｂのハッシュ値を格納するためのＰＣＲを備えてもよい。
【００２３】
ＣＰＵ２１は、不揮発性メモリ２３のブートプログラム２３ａ及びシステムＯＳ２３ｂを実行し画像形成装置１の各部を制御することで、画像形成装置１の動作を制御する。また、ＣＰＵ２１は、印刷対象やＦＡＸ送信の対象となる画像データに対し画像処理を行ったりもする。
【００２４】
また、ＣＰＵ２１は、ＴＰＭ２４と協働することで、画像形成装置１の起動時やサブシステムの起動時に正当性検証処理を実行する。
【００２５】
具体的には、ＣＰＵ２１は、本体制御部２の起動時に、不揮発性メモリ２３に記憶されたブートプログラム２３ａのハッシュ値を算出し、ＴＰＭ２４にレポート（入力）することで、ＰＣＲ１に記憶されたハッシュ値と照合させる。そして、ＣＰＵ２１は、両ハッシュ値が一致するとブートプログラム２３ａの正当性が確認されたと判定し、ブートプログラム２３ａを実行する。また、ＣＰＵ２１は、ブートプログラム２３ａの正当性が確認されると、不揮発性メモリ２３に記憶されたシステムＯＳ２３ｂのハッシュ値を算出し、ＴＰＭ２４にレポート（入力）することで、ＰＣＲ２に記憶されたハッシュ値と照合させる。そして、ＣＰＵ２１は、両ハッシュ値が一致するとシステムＯＳ２３ｂの正当性が確認されたと判定し、システムＯＳ２３ｂを実行する。このように、ブートプログラム２３ａ、システムＯＳ２３ｂのブートステージ毎に、各データのハッシュ値が順次検証されることでトラストチェーン、つまりソフトウェアの階層毎に算出された一連のハッシュ値が記録される。なお、サブシステムの正当性検証処理については後述する。
【００２６】
ＵＳＢインタフェース２５は、サブシステムであるエンジン部３、ＦＡＸ部４及び操作部５との間で、ＵＳＢバス１１を介した通信を行う。また、Ｉ２Ｃインタフェース２６は、サブシステムであるエンジン部３、ＦＡＸ部４及び操作部５との間で、Ｉ２Ｃバス１２を介した通信を行う。
【００２７】
次に、サブシステムの構成について説明する。以下では、操作部５を例にサブシステムの構成について説明する。図３は、サブシステムである操作部５のハードウェア構成の一例を示す図である。図３に示すように、操作部５は、第１モジュール部５１と、第２モジュール部５２とを有する。
【００２８】
第１モジュール部５１は、操作部５の基本機能を実現するためのモジュールであり、ＣＰＵ５１１、ＲＡＭ５１２、不揮発性メモリ５１３、表示操作部５１４及びＵＳＢインタフェース５１５等を備える。
【００２９】
不揮発性メモリ５１３は、第１記憶部の一例であり、例えば、フラッシュＲＯＭ等の記憶装置で実現される。不揮発性メモリ５１３は、操作部５のブートプログラム５１３ａ及びサブシステムＯＳ５１３ｂ、本体制御部２との暗号化通信に用いる第１通信鍵５１３ｃ及び第２通信鍵５１３ｄ等を格納する。
【００３０】
ブートプログラム５１３ａは、操作部５の起動時に実行されるプログラムである。サブシステムＯＳ５１３ｂは、操作部５のシステムプログラムである。サブシステムＯＳ５１３ｂには、操作部５の主要な機能を実現するための各種プログラムが含まれる。例えば、サブシステムＯＳ５１３ｂには、表示操作部５１４やＵＳＢインタフェース５１５を使用するためのドライバプログラム等、各種のプログラムが含まれる。
【００３１】
第１通信鍵５１３ｃ及び第２通信鍵５１３ｄは、デフィー・ヘルマン鍵共有による暗号化通信に使用する通信鍵である。第１通信鍵５１３ｃ及び第２通信鍵５１３ｄは、公開鍵（巨大素数及び生成元）等の要素を含む。ここで、第２通信鍵５１３ｄは、サブシステム暗号鍵２３ｅで暗号化された状態で保持される。また、第２通信鍵５１３ｄは、後述するハイバネーションイメージ５１３ｅの暗号化領域５１３ｆに含めて保持する構成としてもよい。
【００３２】
また、不揮発性メモリ５１３は、操作部５の起動時に使用するハイバネーションイメージ５１３ｅを格納する。ハイバネーションイメージ５１３ｅは、操作部５が正常動作している時のＲＡＭ５１２のメモリ内容をバックアップしたものである。なお、本実施形態では、ブートプログラム５１３ａとハイバネーションイメージ５１３ｅとが、操作部５のハイバネーション起動に係るデータに対応する。
【００３３】
操作部５では、操作部５の起動時や後述する休止状態からの復帰時に、不揮発性メモリ５１３に記憶されたハイバネーションイメージ５１３ｅをＲＡＭ５１２に展開することで、ハイバネーション起動を行う。より具体的には、操作部５は、ブートプログラム５１３ａを起動した後、ハイバネーションイメージ５１３ｅをＲＡＭ５１２に展開することで、ハイバネーションイメージ５１３ｅが取得された時のＲＡＭ５１２の状態を復元する。これにより、操作部５では、ハイバネーションイメージ５１３ｅが作成された際のメモリ状態（作業中途状態）を復元することができるため、操作部５の起動時間の高速化を図ることができる。なお、本実施形態では、ハイバネーションイメージ５１３ｅは固定であるとする。ハイバネーションイメージ５１３ｅを固定とすることで、操作部５をシャットダウンするまでの時間や休止状態に移行するまでの時間の高速化を図ることができる。
【００３４】
また、本実施形態では、セキュリティ強化のため、ハイバネーションイメージ５１３ｅの少なくとも一部（暗号化領域５１３ｆ）が、本体制御部２が保持するサブシステム暗号鍵２３ｅにより暗号化されているものとする。つまり、操作部５は、サブシステム暗号鍵２３ｅを用いて暗号化領域５１３ｆを復号しない限り、起動（ハイバネーション起動）することができないよう構成されている。
【００３５】
表示操作部５１４は、テンキー、クリア／ストップキー、スタートキー、ファックスキー等の各種操作キー、タッチパネル付き液晶ディスプレイ等を有する。表示操作部５１４は、ＣＰＵ５１１の制御の下、文字や画像等を表示する。また、表示操作部５１４は、ユーザ操作を受け付け、その操作内容に応じた操作信号をＣＰＵ５１１に出力する。
【００３６】
ＵＳＢインタフェース５１５は、本体制御部２との間で各種データの送受信を行う。例えば、ＵＳＢインタフェース５１５は、ＣＰＵ５１１の制御の下、表示操作部５１４を介して入力された操作信号を本体制御部２に送信する。
【００３７】
ＣＰＵ５１１は、第１モジュール部５１の各部を制御することで、操作部５の基本機能を実現する。具体的には、ＣＰＵ５１１は、不揮発性メモリ５１３に記憶されたブートプログラム２３ａ及びシステムＯＳ２３ｂを実行し第１モジュール部５１の各部を制御することで、第１モジュール部５１の動作を制御する。例えば、ＣＰＵ５１１は、ＵＳＢインタフェース５１５を介して本体制御部２から送信される情報に基づき、画像形成装置１の状態を表示操作部５１４に表示させる。また、表示操作部５１４を介して入力された操作信号を、ＵＳＢインタフェース５１５を介して本体制御部２に送信する。
【００３８】
また、ＣＰＵ５１１は、操作部５（第１モジュール部５１）を休止状態に移行させる機能を備えている。ここで、休止状態は、操作部５を作業中途状態のまま動作を中断させることを意味する。休止状態に移行するトリガは特に限らず、種々の形態を採用することが可能である。例えば、本体制御部２からの指示に応じて第１モジュール部５１を休止状態に移行させてもよい。なお、休止状態では、ＲＡＭ５１２、不揮発性メモリ５１３、表示操作部５１４及びＵＳＢインタフェース５１５への電源供給が停止されるとともに、ＣＰＵ５１１の消費電力も低減されるものとするが、ＣＰＵ５１１と第２モジュール部５２との間の通信機能は維持されるものとする。
【００３９】
ＣＰＵ５１１は、操作部５の起動時や休止状態からの復帰時に、第２モジュール部５２と協働することで、操作部５の起動制御を行う。例えば、ＣＰＵ５１１は、第２モジュール部５２からの指示に応じて、休止状態から復帰する処理を実行する。
【００４０】
第２モジュール部５２は、Ｉ２Ｃインタフェース５２１と、プロセッサ５２２とを備え、第１モジュール部５１とは独立した回路構成となっている。つまり、第２モジュール部５２は、第１モジュール部５１が休止状態に移行した場合であっても、動作を継続するよう構成されている。
【００４１】
Ｉ２Ｃインタフェース５２１は、メインシステムである本体制御部２との間で、Ｉ２Ｃバス１２を介した通信を行う。
【００４２】
プロセッサ５２２は、例えばＡＳＩＣ（Application  Specific  Integrated  Circuit）等で構成される。プロセッサ５２２は、操作部５の起動時や休止状態からの復帰時に、Ｉ２Ｃインタフェース５２１を介して本体制御部２との間で正当性の検証に係る情報の授受を行う。また、プロセッサ５２２は、操作部５の起動時や休止状態からの復帰時に、ＣＰＵ５１１と協働することで、操作部５の正当性検証処理を本体制御部２とともに実行する。
【００４３】
次に、図４を参照して、サブシステムの正当性検証処理に係る画像形成装置１の機能構成について説明する。図４は、本体制御部２及び操作部５が備える機能構成の一例を示す図である。
【００４４】
図４に示すように、操作部５は、機能部として、第１通信部５０１、算出部５０２及び起動制御部５０３を備える。これらの機能部は、プロセッサ５２２、又はプロセッサ５２２とＣＰＵ５１１との協働により実現される。かかる機能部は、例えば、不揮発性メモリ５１３等に記憶されたプログラムの実行によりソフトウェア的に実現されてもよいし、専用プロセッサによりハードウェア的に実現されてもよい。
【００４５】
第１通信部５０１は、Ｉ２Ｃインタフェース５２１を制御することで、本体制御部２との間でＩ２Ｃバス１２を介した通信路（Ｉ２Ｃ通信路）を確立する。また、第１通信部５０１は、起動制御部５０３の制御の下、本体制御部２（第２通信部２０１）との間で暗号化通信を確立する。
【００４６】
具体的には、第１通信部５０１は、不揮発性メモリ５１３に記憶された第１通信鍵５１３ｃに基づきデフィー・ヘルマン鍵共有を行うことで、本体制御部２の第２通信部２０１との間で、Ｉ２Ｃ通信路を介した第１暗号化通信を確立する。また、第１通信部５０１は、不揮発性メモリ５１３に記憶された第２通信鍵５１３ｄに基づきデフィー・ヘルマン鍵共有を行うことで、本体制御部２の第２通信部２０１との間で、Ｉ２Ｃ通信路を介した第２暗号化通信を確立する。なお、第２暗号化通信の確立は、Ｉ２Ｃ通信路に限らず、ＵＳＢ通信路（ＵＳＢバス１１）で行ってもよい。
【００４７】
算出部５０２は、起動制御部５０３の制御の下、不揮発性メモリ５１３に記憶されたブートプログラム５１３ａ及びハイバネーションイメージ５１３ｅのハッシュ値をそれぞれ算出する。
【００４８】
具体的には、算出部５０２は、不揮発性メモリ５１３に記憶されたブートプログラム５１３ａをハッシュ関数で演算することで、ブートプログラム５１３ａのハッシュ値（以下、ブートハッシュ値）を算出する。また、算出部５０２は、暗号化領域５１３ｆが復号されたハイバネーションイメージ５１３ｅをハッシュ関数で演算することで、ハイバネーションイメージ５１３ｅのハッシュ値（以下、イメージハッシュ値）を算出する。なお、算出部５０２は、暗号化領域５１３ｆが復号されたハイバネーションイメージ５１３ｅから、ハッシュ値を算出する。
【００４９】
起動制御部５０３は、操作部５が起動又は休止状態から復帰する際の、ハイバネーション起動を制御する。具体的には、起動制御部５０３は、操作部５の起動又は休止状態からの復帰に際し、まず、第１通信部５０１を制御することで、本体制御部２との間で第１暗号化通信を確立させる。第１暗号化通信の確立後、算出部５０２で算出されたブートハッシュ値を本体制御部２に送信し、ブートプログラム５１３ａの正当性検証結果を待機する。
【００５０】
ブートハッシュ値に対する応答として、本体制御部２からサブシステム暗号鍵２３ｅが提供されると、起動制御部５０３は、ブートプログラム５１３ａの正当性が確認されたと判定し、ブートプログラム５１３ａを起動（実行）する。
【００５１】
次いで、起動制御部５０３は、本体制御部２から提供されたサブシステム暗号鍵２３ｅを用いてハイバネーションイメージ５１３ｅの暗号化領域５１３ｆすると、復号後のハイバネーションイメージ５１３ｅをＲＡＭ５１２に展開し、ハイバネーションイメージ５１３ｅが作成された際のメモリ状態を復元する。また、起動制御部５０３は、復号後のハイバネーションイメージ５１３ｅから算出されたイメージハッシュ値を本体制御部２に送信し、ハイバネーションイメージ５１３ｅの正当性検証結果を待機する。メモリ状態の復元により、サブシステムＯＳ５１３ｂの使用が可能となるため、表示操作部５１４やＵＳＢインタフェース５１５を動作させることができる。
【００５２】
ところで、電源オン等により本体制御部２と操作部５とを同時に起動したような場合、起動処理が完了するまでの起動時間は、より複雑な処理を行う本体制御部２と比較して、操作部５の方が早いことが一般的である。特に、本実施形態の構成では、操作部５はハイバネーション起動を行うため、本体制御部２の起動時間よりも操作部５の起動時間の方が短くなる。一方、ハイバネーションイメージ５１３ｅの正当性を確認してから起動を行う場合には、本体制御部２の起動処理に追従する必要があるため、待機時間が発生しハイバネーションイメージ５１３ｅによる高速起動の利点が失われることになる。
【００５３】
本実施形態の起動制御部５０３は、上述したようにハイバネーションイメージ５１３ｅの正当性の検証結果を待たずにメモリ状態を復元することで、ハイバネーション起動を実行する。これにより、起動制御部５０３は、本体制御部２での正当性の検証結果に先駆けて、表示操作部５１４のＵＩ表示等を行うことができるため、ユーザに対し操作部５（画像形成装置１）の高速起動を体感させることができる。
【００５４】
なお、ハイバネーションイメージ５１３ｅの正当性が確認されるまでの間は、操作部５（第１モジュール部５１）の機能を制限することがセキュリティ上好ましい。そこで、起動制御部５０３は、ハイバネーションイメージ５１３ｅの正当性が確認されるまでの間、第１モジュール部５１の機能の一部又は全てを使用することができないよう制限する。
【００５５】
具体的には、起動制御部５０３は、ハイバネーションイメージ５１３ｅの正当性が確認されるまでの間、表示操作部５１４の機能を制限することで、操作部５（画像形成装置１）に対する操作入力を無効化する。例えば、図３の破線に示すように、プロセッサ５２２と表示操作部５１４とがＩ２Ｃ等で直接接続される構成の場合には、プロセッサ５２２が起動制御部５０３として、表示操作部５１４の動作を制御してもよい。この場合、例えば、プロセッサ５２２は、機能を制限する間、Ｉ２ＣのＳＤＡ信号及びＳＤＬ信号を強制的にＬＯＷにする等の方法を用いることで、表示操作部５１４の機能を直接制御してもよい。
【００５６】
機能制限の対象機器は、表示操作部５１４に限らず、サブシステムの特性に応じて適宜設定することが可能であるとする。例えば、起動制御部５０３は、ＵＳＢインタフェース２５を介して本体制御部２との間のデータ通信が行われないよう、ＵＳＢインタフェース２５の機能を制限してもよい。
【００５７】
なお、起動制御部５０３は、イメージハッシュ値に対する応答として、本体制御部２から第２通信鍵２３ｄに基づいたデータが提供されると、ハイバネーションイメージ５１３ｅの正当性が確認されたと判定する。ハイバネーションイメージ５１３ｅの正当性が確認された場合には、起動制御部５０３は、表示操作部５１４等に施していた機能制限を解除し、第１モジュール部５１を通常動作可能な状態とする。そして、起動制御部５０３は、第１通信部５０１を制御することで、本体制御部２との間で第２暗号化通信を確立させる。
【００５８】
一方、本体制御部２は、機能部として、第２通信部２０１と正当性検証部２０２とを備える。これらの機能部は、ＣＰＵ２１、又はＣＰＵ２１とＴＰＭ２４との協働により実現される。かかる機能部は、例えば、不揮発性メモリ２３等に記憶されたプログラムの実行によりソフトウェア的に実現されてもよいし、専用プロセッサによりハードウェア的に実現されてもよい。
【００５９】
第２通信部２０１は、Ｉ２Ｃインタフェース２６を制御することで、操作部５との間でＩ２Ｃバス１２を介したＩ２Ｃ通信路を確立する。また、第２通信部２０１は、正当性検証部２０２の制御の下、操作部５との間で暗号化通信を確立する。
【００６０】
具体的には、第２通信部２０１は、不揮発性メモリ２３に記憶された第１通信鍵２３ｃに基づきデフィー・ヘルマン鍵共有を行うことで、操作部５の第１通信部５０１との間で、第１暗号化通信を確立する。また、第２通信部２０１は、不揮発性メモリ２３に記憶された第２通信鍵２３ｄに基づきデフィー・ヘルマン鍵共有を行うことで、操作部５の第１通信部５０１との間で、第２暗号化通信を確立する。
【００６１】
正当性検証部２０２は、操作部５が起動又は休止状態から復帰する際に、操作部５の不揮発性メモリ５１３に記憶されたブートプログラム５１３ａ及びハイバネーションイメージ５１３ｅの正当性を検証する。具体的には、正当性検証部２０２は、操作部５の起動又は休止状態からの復帰に際して、まず第２通信部２０１を制御することで、操作部５との間で第１暗号化通信を確立させる。
【００６２】
第１暗号化通信の確立後、正当性検証部２０２は、操作部５からブートハッシュ値を受信すると、そのブートハッシュ値をＴＰＭ２４にポスト（入力）することで、ＰＣＲ３に記憶されたハッシュ値と比較させる。ここで、両ハッシュ値が一致場した場合、正当性検証部２０２は、操作部５に記憶されたブートプログラム５１３ａの正当性が確認できたと判定する。そして、正当性検証部２０２は、不揮発性メモリ２３に記憶されたサブシステム暗号鍵２３ｅを復号し、ブートプログラム５１３ａの正当性が確認できた証として、復号後のサブシステム暗号鍵２３ｅを操作部５に送信する。
【００６３】
また、正当性検証部２０２は、サブシステム暗号鍵２３ｅの送信後、操作部５からイメージハッシュ値を受信すると、そのイメージハッシュ値をＴＰＭ２４に入力することで、ＰＣＲ４に記憶されたハッシュ値と比較させる。ここで、両ハッシュ値が一致した場合、正当性検証部２０２は、操作部５に記憶されたハイバネーションイメージ５１３ｅの正当性が確認できたと判定する。そして、正当性検証部２０２は、ハイバネーションイメージ５１３ｅの正当性が確認できた証として、第２通信部２０１を制御することで、操作部５との間で第２暗号化通信を確立させる。
【００６４】
なお、正当性検証部２０２は、自装置（本体制御部２）の起動時においても、不揮発性メモリ２３に記憶されたブートプログラム２３ａ及びシステムＯＳ２３ｂのハッシュ値をそれぞれ算出し、ＰＣＲ１及びＰＣＲ２のハッシュ値と比較することで、正当性の検証を行うものとする。つまり、上述した操作部５の正当性検証処理は、自装置の正当性が確認されたこと条件に実行されるものとなる。
【００６５】
次に、図５を参照して、画像形成装置１で実行されるサブシステムの正当性検証処理について説明する。ここで、図５は、画像形成装置１で実行される正当性検証処理の一例を説明するための図である。なお、本処理では、画像形成装置１の電源オンにより、本体制御部２と操作部５とが同時に起動する場合の処理について説明する。
【００６６】
画像形成装置１の電源が投入されると、本体制御部２では、正当性が確認されたブートプログラム２３ａによって起動を開始し、同じく正当性が確認されたシステムＯＳ２３ｂの起動を行う。
【００６７】
システムＯＳ２３ｂが起動すると、第２通信部２０１は、不揮発性メモリ２３に格納されている第１通信鍵２３ｃに基づき、公開鍵（巨大素数ｐ及び生成元ｇ）を取得する（ステップＳ１０１）。次いで、第２通信部２０１は、秘密の値ａを乱数生成する（ステップＳ１０２）。
【００６８】
続いて、第２通信部２０１は、Ｉ２Ｃインタフェース２６を初期化することで、操作部５との間のＩ２Ｃ通信路を有効化する（ステップＳ１０３）。そして、第２通信部２０１は、秘密の値ａ、巨大素数ｐ及び生成元ｇに基づいて公開鍵となるデータＡ（Ａ＝ｇ＊＊ａ  ｍｏｄ  ｐ）を算出すると、Ｉ２Ｃ通信路を介して操作部５に送信する（ステップＳ１０４）。なお、式中の「＊＊」は、べき乗を意味する。
【００６９】
一方、操作部５では、画像形成装置１の電源投入に伴い動作を開始すると、第１通信部５０１が、不揮発性メモリ５１３に格納されている第１通信鍵５１３ｃに基づき、公開鍵（巨大素数ｐ及び生成元ｇ）を取得する（ステップＳ２０１）。次いで、第１通信部５０１は、秘密の値ｂを乱数生成する（ステップＳ２０２）。
【００７０】
続いて、第１通信部５０１は、Ｉ２Ｃインタフェース５２１を初期化することで、本体制御部２との間のＩ２Ｃ通信路を有効化する（ステップＳ２０３）。そして、第１通信部５０１は、秘密の値ｂ、巨大素数ｐ及び生成元ｇに基づいて公開鍵となるデータＢ（Ｂ＝ｇ＊＊ｂ  ｍｏｄ  ｐ）を算出すると、Ｉ２Ｃ通信路を介して本体制御部２に送信する（ステップＳ２０４）。
【００７１】
本体制御部２では、操作部５から送信されたデータＢを受け取ると、第２通信部２０１は、公開鍵Ｋａを下記式（１）により算出し、以降の暗号鍵とする（ステップＳ１０５）。
Ｋａ＝Ｂ＊＊ａ  ｍｏｄ  ｐ・・・（１）
【００７２】
また、操作部５では、本体制御部２から送信されたデータＡを受け取ると、第１通信部５０１は、公開鍵Ｋｂを下記式（２）により算出し、以降の暗号鍵とする（ステップＳ２０５）。
Ｋｂ＝Ａ＊＊ｂ  ｍｏｄ  ｐ・・・（２）
【００７３】
上記の暗号鍵を本体制御部２及び操作部５が取得することで、デフィー・ヘルマン鍵共有が成立する。以降、本体制御部２と操作部５とは、公開鍵Ｋａ、Ｋｂを暗号鍵とした第１暗号化通信を開始する。
【００７４】
続いて、操作部５では、算出部５０２がブートプログラム５１３ａのハッシュ値（ブートハッシュ値）を算出すると、第１通信部５０１は、算出されたブートハッシュ値を本体制御部２に送信する（ステップＳ２０６）。
【００７５】
本体制御部２の正当性検証部２０２は、操作部５からブートハッシュ値を受け取ると、そのブートハッシュ値をＴＰＭ２４にレポート（入力）する（ステップＳ１０６）。ここで、ＴＰＭ２４は、ＰＣＲ３に記憶されたハッシュ値と、操作部５から送信されたブートハッシュ値とを比較する。正当性検証部２０２は、ＴＰＭ２４の比較結果に基づき、ブートプログラム５１３ａが正当であるか否かを判定する。
【００７６】
正当性検証部２０２は、両ハッシュ値の一致によりブートプログラム５１３ａの正当性を確認すると、不揮発性メモリ２３にＢＬＯＢ化して格納されているサブシステム暗号鍵２３ｅを解凍する。次いで、第２通信部２０１は、解凍されたサブシステム暗号鍵２３ｅを、操作部５に送信する（ステップＳ１０７）。
【００７７】
操作部５では、本体制御部２から送信されたサブシステム暗号鍵２３ｅを受け付けると、起動制御部５０３がブートプログラム５１３ａを起動する。次いで、起動制御部５０３は、サブシステム暗号鍵２３ｅを用いてハイバネーションイメージ５１３ｅの暗号化領域５１３ｆを解凍し、解凍したハイバネーションイメージ５１３ｅをＲＡＭ５１２上に展開する（ステップＳ２０７）。次いで、算出部５０２が解凍後のハイバネーションイメージ５１３ｅのハッシュ値（イメージハッシュ値）を算出すると、第１通信部５０１は、算出されたイメージハッシュ値を本体制御部２に送信する（ステップＳ２０８）。
【００７８】
本体制御部２の正当性検証部２０２は、操作部５からイメージハッシュ値を受け取ると、そのイメージハッシュ値をＴＰＭ２４にレポート（入力）する（ステップＳ１０８）。ここで、ＴＰＭ２４は、ＰＣＲ４に記憶されたハッシュ値と、操作部５から送信されたイメージハッシュ値とを比較する。正当性検証部２０２は、ＴＰＭ２４の比較結果に基づき、ハイバネーションイメージ５１３ｅが正当であるか否かを判定する。
【００７９】
正当性検証部２０２は、両ハッシュ値の一致によりハイバネーションイメージ５１３ｅの正当性を確認すると、不揮発性メモリ２３にＢＬＯＢ化して格納されている第２通信鍵２３ｄを解凍する。次いで、第２通信部２０１は、第２通信鍵２３ｄに基づき公開鍵の生成に係る巨大素数ｐ、生成元ｇを取得する（ステップＳ１０９）。次いで、第２通信部２０１は、秘密の値ａを乱数生成する（ステップＳ１１０）。そして、第２通信部２０１は、秘密の値ａ、巨大素数ｐ及び生成元ｇに基づいて公開鍵となるデータＡ（Ａ＝ｇ＊＊ａ  ｍｏｄ  ｐ）を算出すると、Ｉ２Ｃ通信路を介して操作部５に送信する（ステップＳ１１１）。
【００８０】
一方、操作部５では、イメージハッシュ値を本体制御部２に送信すると、第１通信部５０１は、サブシステム暗号鍵２３ｅを用いて復号された第２通信鍵５１３ｄに基づき、公開鍵の生成に係る巨大素数ｐ、生成元ｇを取得する（ステップＳ２０９）。次いで、第１通信部５０１は、秘密の値ｂを乱数生成する（ステップＳ２１０）。そして、第１通信部５０１は、秘密の値ｂ、巨大素数ｐ及び生成元ｇに基づいて公開鍵となるデータＢ（Ｂ＝ｇ＊＊ｂ  ｍｏｄ  ｐ）を算出すると、Ｉ２Ｃ通信路を介して本体制御部２に送信する（ステップＳ２１１）。
【００８１】
本体制御部２の第２通信部２０１は、操作部５から受け取ったデータＢから公開鍵Ｋａを、上記式（１）により算出して以降の暗号鍵とし（ステップＳ１１２）、第２暗号化通信を開始する。同様に、操作部５の第１通信部５０１は、本体制御部２から受け取ったデータＡから公開鍵Ｋｂを上記式（２）により算出して、以降の暗号鍵とし（ステップＳ２１２）、第２暗号化通信を開始する。
【００８２】
第２暗号化通信の開始後、本体制御部２及び操作部５は通常動作を開始する。これにより、ユーザは、操作部５を介して画像形成装置１の状態を確認したり、操作部５を介して画像形成装置１を操作したりすることができる。
【００８３】
このように、サブシステムである操作部５は、本体制御部２と第１暗号化通信を確立した後、正当性が確認されたブートプログラム５１３ａにより動作を開始する。また、操作部５は、本体制御部２でハイバネーションイメージ５１３ｅの正当性が確認される前に、ハイバネーションイメージ５１３ｅをＲＡＭ５１２に展開することでハイバネーション起動を実行する。そして、操作部５は、本体制御部２でハイバネーションイメージ５１３ｅの正当性が確認されると、本体制御部２との間で第２暗号化通信を確立し、通常動作を行う。
【００８４】
次に、図６を参照し、上述した正当性検証処理に伴う操作部５の動作について説明する。ここで、図６は、サブシステムである操作部５の動作の一例を示すフローチャートである。なお、本処理は、上述した正当性検証処理のバックグラウンドで実行されるものである。
【００８５】
まず、操作部５の起動制御部５０３は、本体制御部２から送信される情報に基づき、本体制御部２でハイバネーションイメージ５１３ｅの正当性が確認されたか否かを判定する（ステップＳ３０１）。例えば、上述した正当性検証処理の場合、起動制御部５０３は、本体制御部２からデータＡを受け付けたか否かに基づき（ステップＳ１０８参照）、ハイバネーションイメージ５１３ｅの正当性が確認されたか否かを判定する。なお、本体制御部２から、正当性の検証結果が明示的に送信される場合、起動制御部５０３は、本体制御部２から送信された検証結果に基づき、ハイバネーションイメージ５１３ｅの正当性が確認されたか否かを判定する。
【００８６】
起動制御部５０３は、ハイバネーションイメージ５１３ｅの正当性が確認されと判定した場合（ステップＳ３０１；Ｙｅｓ）、表示操作部５１４等の操作部５の機能を有効化し（ステップＳ３０２）、本処理を終了する。これにより、ユーザは、操作部５（表示操作部５１４）を介して画像形成装置１を操作することが可能となる。
【００８７】
一方、ハイバネーションイメージ５１３ｅの正当性が確認されない場合（ステップＳ３０１；Ｎｏ）、起動制御部５０３は、ステップＳ３０３に移行する。
【００８８】
ここで、「ハイバネーションイメージ５１３ｅの正当性が確認されない場合」とは、本体制御部２で正当性の検証が失敗（ハッシュ値の不一致）と判定された場合や、ハイバネーションイメージ５１３ｅの正当性が確認されるまでの間、つまりステップＳ１１１で本体制御部２から送信されたデータＡを受信するまでの時間を意味する。なお、検証失敗の判定方法は特に問わないものとする。例えば、起動制御部５０３は、イメージハッシュ値を本体制御部２に送信してからの経過時間が、所定のタイムアウト時間に達したことを条件に検証失敗と判定してもよい。また、本体制御部２から正当性の検証結果が送信される場合には、その検証結果に基づき検証失敗を判定してもよい。
【００８９】
ステップＳ３０３において、起動制御部５０３は、操作部５の一部又は全ての機能を無効化（制限）する（ステップＳ３０３）。例えば、起動制御部５０３は、表示操作部５１４の機能を無効化する。
【００９０】
次いで、起動制御部５０３は、正当性の検証が失敗したか否かを判定する（ステップＳ３０４）。ここで、正当性の検証が失敗していないと判定した場合（ステップＳ３０４；Ｎｏ）、起動制御部５０３は、ステップＳ３０１に処理を戻す。一方、正当性の検証が失敗したと判定した場合（ステップＳ３０４；Ｙｅｓ）、起動制御部５０３は、操作部５の機能を無効化したまま、本処理を終了する。
【００９１】
これにより、操作部５では、本体制御部２での正当性検証を待たずにハイバネーション起動した場合であっても、正当性が確認されない限り操作部５を使用することはできない。したがって、改竄されたハイバネーションイメージ５１３ｅを用いて操作部５を起動した場合であって、操作部５自身や本体制御部２に対して不正な操作が行われてしまうことを未然に防ぐことができる。なお、起動制御部５０３は、正当性検証結果の待機中や正当性の検証が失敗した場合には、その状態を表すメッセージ等を表示操作部５１４に表示させてもよい。
【００９２】
以上のように、本実施例の画像形成装置１では、操作部５のハイバネーションイメージ５１３ｅの一部をサブシステム暗号鍵２３ｅで暗号化して本体制御部２の不揮発性メモリ２３に格納しておき、操作部５のブートプログラム５１３ａの正当性が確認されたことを条件に、サブシステム暗号鍵２３ｅを操作部５に提供する。これにより、操作部５では、ブートプログラム５１３ａの正当性が確認されない限り、ハイバネーション起動を行うことができないため、操作部５になりすましたデバイスの進入を確実に防止することができる。
【００９３】
また、本実施形態の画像形成装置１では、メインシステムである本体制御部２が行う一連のトラストチェーンにより、操作部５のハイバネーションイメージ５１３ｅの正当性を検証する。そして、サブシステムである操作部５では、本体制御部２での正当性検証を待たずにハイバネーション起動し、本体制御部２で正当性が確認されるまでの間、操作部５の機能の一部又は全てを無効化する。
【００９４】
これにより、画像形成装置１では、本体制御部２での正当性検証結果に先駆けて、操作部５の表示操作部５１４にＵＩ表示等を行うことができるため、ハイバネーション起動による高速起動をユーザに体感させることができる。また、画像形成装置１では、正当性が確認されるまでの間、操作部５を介した操作を無効化することができるため、操作部５になりすましたデバイスによる進入を確実に防止し、本体制御部２等に蓄積されている情報のセキュリティを確保することができる。したがって、本実施形態の画像形成装置１によれば、サブシステムである操作部５のハイバネーション起動時に、本体制御部２等に対するセキュリティを確保しながら、操作部５のハイバネーション起動に係るデータの正当性検証を効率的に行うことができる。
【００９５】
なお、上述の実施形態では、操作部５を用いてサブシステムの構成及び処理内容を説明したが、エンジン部３、ＦＡＸ部４等のサブシステムについても、同様の構成及び処理内容を有している。但し、ハイバネーションイメージ５１３ｅの正当性が確認までの間、無効化する機能は、サブシステムの特性に応じて設定されるものとする。
【００９６】
また、上述の実施形態では、操作部５のサブシステムＯＳ５１３ｂについては、正当性の検証を行わない形態としたが、これに限らず、サブシステムＯＳ５１３ｂについても、ブートプログラム５１３ａ又はハイバネーションイメージ５１３ｅと同様に、正当性を検証する形態としてもよい。この場合には、サブシステムＯＳ５１３ｂもハイバネーション起動に係るデータとし取り扱うことになる。また、ＴＰＭ２４は、ブートプログラム５１３ａ及びハイバネーションイメージ５１３ｅと同様に、サブシステムＯＳ５１３ｂのハッシュ値をＰＣＲに保持する。
【００９７】
また、上述の実施形態では、第１モジュール部５１が第１通信鍵５１３ｃ及び第２通信鍵５１３ｄを保持する構成としたが、これに限らず、第２モジュール部５２が保持する形態としてもよい。
【００９８】
また、上述の実施形態では、本体制御部２とエンジン部３との間を、ＵＳＢバス１１で接続する形態としたが、これに限らず、ＰＣＩ（Peripheral  Component  Interconnect）バスを用いて接続する形態としてもよい。また、他のサブシステムについても、ＵＳＢバス１１以外の規格で接続する形態としてもよい。
【００９９】
以上、本発明に係る実施の形態について説明したが、本発明は、上述の実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【０１００】
また、上述した実施の形態の情報処理装置（画像形成装置１）で実行されるソフトウェア（プログラム）は、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）、ＵＳＢ（Universal  Serial  Bus）などのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネットなどのネットワーク経由で提供又は配布するように構成してもよい。また、各種プログラムを、ＲＯＭなどに予め組み込んで提供するように構成してもよい。
【符号の説明】
【０１０１】
１  画像形成装置
２  本体制御部
３  エンジン部
４  ＦＡＸ部
５  操作部
２０１  第２通信部
２０２  正当性検証部
５０１  第１通信部
５０２  算出部
５０３  起動制御部
５１１  ＣＰＵ
５１２  ＲＡＭ
５１３  不揮発性メモリ
５１４  表示操作部
５１５  ＵＳＢインタフェース
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特許第５４９３９４６号公報
【図１】
2020088746.tif 000003
【図２】
2020088746.tif 000004
【図３】
2020088746.tif 000005
【図４】
2020088746.tif 000006
【図５】
2020088746.tif 000007
【図６】
2020088746.tif 000008