(57)【要約】【課題】  外部媒体に記録されたアプリケーションプログラムの起動時間を短縮することのできる機器及びプログラム起動方法の提供を目的とする。【解決手段】  プログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器であって、前記外部媒体に記録されているプログラムを一意に識別するための第一の識別情報と、当該機器内の記録媒体に保存されているプログラムを一意に識別するための第二の識別情報とに基づいて、前記外部媒体に記録されているプログラムと当該機器内の記録媒体に保存されているプログラムとの同一性を判定する同一性判定手段と、前記同一性判定手段によって前記同一性が肯定された場合に、当該機器内の記録媒体に保存されているプログラムを起動するプログラム起動手段とを有することにより上記課題を解決する。【選択図】  図６
2006309449.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器であって、
前記外部媒体に記録されているプログラムを一意に識別するための第一の識別情報と、当該機器内の記録媒体に保存されているプログラムを一意に識別するための第二の識別情報とに基づいて、前記外部媒体に記録されているプログラムと当該機器内の記録媒体に保存されているプログラムとの同一性を判定する同一性判定手段と、
前記同一性判定手段によって前記同一性が肯定された場合に、当該機器内の記録媒体に保存されているプログラムを起動するプログラム起動手段とを有することを特徴とする機器。
【請求項２】
前記第一の識別情報の情報量は、前記外部媒体に記録されているプログラムの情報量より少ないことを特徴とする請求項１記載の機器。
【請求項３】
前記機器内の記録媒体に保存されているプログラムは、前記外部媒体に記録されているプログラムがコピーされたものであることを特徴とする請求項１又は２記載の機器。
【請求項４】
前記プログラム起動手段は、前記機器内の記録媒体が利用可能となるまでは、前記外部媒体に記録されているプログラムを起動することを特徴とする請求項１乃至３いずれか一項記載の機器。
【請求項５】
前記外部媒体には当該外部媒体に記録されているプログラムの前記第一の識別情報として当該プログラムに対する電子署名が記録されており、
前記同一性判定手段は、前記電子署名と当該機器内の記録媒体に保存されているプログラムに対する電子署名とに基づいて前記同一性を判定することを特徴とする請求項１乃至４いずれか一項記載の機器。
【請求項６】
前記外部媒体には前記電子署名を復号するための復号鍵が記録されており、
前記プログラム起動手段は、前記電子署名を前記復号鍵によって復号した値と、起動の対象とされるプログラムのメッセージダイジェストとが一致した場合に、当該プログラムを起動することを特徴とする請求項５記載の機器。
【請求項７】
前記復号鍵は、当該機器内の記録媒体にコピーしないことを特徴とする請求項６記載の機器。
【請求項８】
プログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器におけるプログラム起動方法であって、
前記外部媒体に記録されているプログラムを一意に識別するための第一の識別情報と、当該機器内の記録媒体に保存されているプログラムを一意に識別するための第二の識別情報とに基づいて、前記外部媒体に記録されているプログラムと当該機器内の記録媒体に保存されているプログラムとの同一性を判定する同一性判定手順と、
前記同一性判定手順において前記同一性が肯定された場合に、当該機器内の記録媒体に保存されているプログラムを起動するプログラム起動手順とを有することを特徴とするログラム起動方法。
【請求項９】
前記第一の識別情報の情報量は、前記外部媒体に記録されているプログラムの情報量より少ないことを特徴とする請求項８記載のプログラム起動方法。
【請求項１０】
前記機器内の記録媒体に保存されているプログラムは、前記外部媒体に記録されているプログラムがコピーされたものであることを特徴とする請求項８又は９記載のプログラム起動方法。
【請求項１１】
前記プログラム起動手順は、前記機器内の記録媒体が利用可能となるまでは、前記外部媒体に記録されているプログラムを起動することを特徴とする請求項８乃至１０いずれか一項記載のプログラム起動方法。
【請求項１２】
前記外部媒体には当該外部媒体に記録されているプログラムの前記第一の識別情報として当該プログラムに対する電子署名が記録されており、
前記同一性判定手順は、前記電子署名と当該機器内の記録媒体に保存されているプログラムに対する電子署名とに基づいて前記同一性を判定することを特徴とする請求項８乃至１１いずれか一項記載のプログラム起動方法。
【請求項１３】
前記外部媒体には前記電子署名を復号するための復号鍵が記録されており、
前記プログラム起動手順は、前記電子署名を前記復号鍵によって復号した値と、起動の対象とされるプログラムのメッセージダイジェストとが一致した場合に、当該プログラムを起動することを特徴とする請求項１２記載のプログラム起動方法。
【請求項１４】
前記復号鍵は、当該機器内の記録媒体にコピーしないことを特徴とする請求項１３記載のプログラム起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器及びプログラム起動方法に関し、特にプログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器及び前記機器におけるプログラム起動方法に関する。
【背景技術】
【０００２】
コピー機能、ファクシミリ（ＦＡＸ）機能、プリント機能、及びスキャナ機能等を一台の筐体によって実現するいわゆるＭＦＰ（Multi Function Peripheral）と称される複合機等においては、様々なプログラムがＣＰＵによって処理されることにより各種の機能が実現されている。近年では、出荷時に既に組み込まれているものだけでなく、ＳＤカード等のポータブルな記録媒体によって提供されたアプリケーションを実行可能な複合機も存在し、このような複合機ではユーザが利用開始後に機能強化を行えるようになっている。ＳＤカードによってアプリケーションを提供することで、複合機の拡張性が向上し、利便性を高めることができる。また、ＳＤカードはＨＤＤ（Hard Disk Drive）に比べてハード的な信頼性が高い（すなわち、ハード的に破損する可能性が低い）といったメリットもある。
【０００３】
図１は、従来の複合機におけるプログラムの配置構成例を説明するための図である。図１において、ＣＰＵ５０１、チップセット５０２、ＲＡＭ５０３、ＲＯＭ５０４及びＨＤＤ（Hard Disk Drive）５０５は、複合機５００に内蔵されている部品である。また、ＳＤカード５０６は、複合機５００が備えるＳＤカードスロットに差し込まれて利用される。ＲＯＭ５０４には、基本プログラム（いわゆるＯＳ（Operating System）等）５１１が記録されており、ＳＤカード５０６には、コピープログラム５１２、ファックスプログラム５１３及びプリンタプログラム５１４等のアプリケーションプログラムが記録されている。したがってＣＰＵ５０１は、ＲＯＭ５０４に記録された基本プログラム５１１上でＳＤカード５０６に記録された各種のアプリケーションを実行することで複合機５００の機能を実現する。なお、ＨＤＤ５０５は、主に複合機５００によってスキャンされた画像データの保存領域等として用いられている。
【０００４】
図１の複合機５００の起動時の処理概要について説明する。図２は、従来の複合機における起動時の処理概要を説明するためのシーケンス図である。なお、図２では、基本プログラム５１１は、既にメモリ上に読み込まれ起動されていることを前提としている。
【０００５】
まず、基本プログラム５１１によってＨＤＤ５０５及びＳＤカード５０６のソフト的破損チェックが行われる（Ｓ１０１、Ｓ１０２）。ここで、ソフト的破損チェックとは、ＨＤＤ５０５又はＳＤカード５０６が利用可能な状態にあるかをチェックする処理である。例えば、前回の利用時にいきなり電源を切られた等のソフト的な破損が生じ得る操作が行われていないかをチェックし、そのような操作が行われている場合は記録媒体内を走査してソフト的な破損が生じていないか等が確認される。
【０００６】
ＳＤカード５０６のソフト的破損チェックが完了すると（Ｓ１０３）、基本プログラム５１１は、コピープログラム５１２をＳＤカード５０６からメモリ上に読み込み（Ｓ１０４、Ｓ１０５）、起動する（Ｓ１０６）。同様に、基本プログラム５１１は、ファックスプログラム５１３及びプリンタプログラム５１４についてもＳＤカード５０６からメモリ上に読み込み起動する（Ｓ１０７〜Ｓ１１２）。
【０００７】
これをアクティビティ図に示すと図３のようになる。図３は、従来の複合機における起動処理を説明するためのアクティビティ図である。
【０００８】
まず、基本プログラム５１１が起動される（Ｓ１５１）。続いて、基本プログラム５１１によってＨＤＤ５０５のソフト的破損チェック（Ｓ１５２）と、ＳＤカード５０６のソフト的破損チェック（Ｓ１５３）とが並列的に行われる。
【０００９】
少なくともＳＤカード５０６の破損チェックが完了すると、基本プログラム５１１は、ＳＤカード５０６からメモリ上へアプリケーションを一つ読み込み（Ｓ１５４）、起動する（Ｓ１５５）。全てのアプリケーションについてＳＤカード５０６からメモリ上への読み込み及び起動が繰り返される（Ｓ１５６）。全てのアプリケーションの起動が完了すると（Ｓ１５７）、ユーザは、複合機５００のコピー、ファックス又はプリンタ等の機能の利用が可能となる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、ＳＤカードは読み込み速度に関してＨＤＤに劣るという欠点がある。したがって、複合機を起動する際に各種のアプリケーションをＳＤカードから読み込むという処理は、複合機の起動時間を増加させるという問題がある。
【００１１】
本発明は、上記の点に鑑みてなされたものであって、外部媒体に記録されたアプリケーションプログラムの起動時間を短縮することのできる機器及びプログラム起動方法の提供を目的とする。
【課題を解決するための手段】
【００１２】
そこで上記課題を解決するため、本発明は、プログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器であって、前記外部媒体に記録されているプログラムを一意に識別するための第一の識別情報と、当該機器内の記録媒体に保存されているプログラムを一意に識別するための第二の識別情報とに基づいて、前記外部媒体に記録されているプログラムと当該機器内の記録媒体に保存されているプログラムとの同一性を判定する同一性判定手段と、前記同一性判定手段によって前記同一性が肯定された場合に、当該機器内の記録媒体に保存されているプログラムを起動するプログラム起動手段とを有することを特徴とする。
【００１３】
このような機器では、外部媒体からプログラムを読み込む必要はない。したがって、外部媒体に記録されたアプリケーションプログラムの起動時間を短縮することができる。
【００１４】
また、上記課題を解決するため、本発明は、上記機器におけるプログラム起動方法としてもよい。
【発明の効果】
【００１５】
本発明によれば、外部媒体に記録されたアプリケーションプログラムの起動時間を短縮することのできる機器及びプログラム起動方法を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を説明する。図４は、本発明の実施の形態における複合機の概略構成例を示す図である。図４において、複合機１０は機器の一例であり、ＣＰＵ１１、チップセット１２、ＲＡＭ１３、ＲＯＭ１４、ＨＤＤ（Hard Disk Drive）１５等を有している。また、複合機１０には、非図示のＳＤ（Secure Digital）カードスロットが備えられ、当該ＳＤカードスロットにはＳＤカード１６が差し込まれている。
【００１７】
ＣＰＵ１１は、ＲＯＭ１４、ＨＤＤ１５及びＳＤカード１６等に記録されているプログラムを処理することにより複合機１０に係る機能を実現する。チップセット１２は、ＣＰＵ１１やＲＡＭ１３等を相互接続すると共にこれらの動作を制御する。ＲＡＭ１３は、主にＣＰＵ１１がプログラムを処理する際の作業用のメモリ領域として用いられる。
【００１８】
ＲＯＭ１４は、予め基本プログラム２１が記録されたＲＯＭである。基本プログラム２１は、いわゆるＯＳ（Operating System）に相当する。ＨＤＤ（Hard Disk Drive）１５は、複合機１０の内部の記録媒体として、複合機１０によってスキャンされた画像データの保存に用いられる。ＨＤＤ１５は、また、本実施の形態においてＳＤカード１６に記録されている各種プログラムのキャッシュ用の記憶領域としても用いられる。
【００１９】
ＳＤカード１６は、複合機１０に対してプログラムを配布するための外部媒体の一例であり、配布の対象として認証鍵２２、コピープログラム２３ａ、コピー署名２４ａ、ファックスプログラム２５ａ、ファックス署名２６ａ、プリンタプログラム２７ａ及びプリンタ署名２８ａ等が記録されている。
【００２０】
コピープログラム２３ａ、ファックスプログラム２５ａ、及びプリンタプログラム２７ａは、それぞれ複合機１０においてコピー機能、ファックス機能、プリンタ機能を実現するためのアプリケーションプログラムである。すなわち、複合機１０は、工場出荷時にＲＯＭ１４に組み込まれたプログラムだけでなく、ＳＤカード１６によって提供される各種アプリケーションを実行することにより機能強化を図ることができる。したがって、複合機１０は、ＳＤカード１６に記録されたアプリケーションと異なるアプリケーションが記録された別のＳＤカードによって、更に機能拡張を実現することも可能である。一般に、ＳＤカードは、ＨＤＤに比較してハード的な信頼性が高く、かかる観点からＳＤカードによるアプリケーションの配布にはメリットがあるといえる。
【００２１】
ＳＤカード１６には、更に、コピー署名２４ａ、ファックス署名２６ａ及びプリンタ署名２８ａが記録されている。コピー署名２４ａはコピープログラム２３ａの、ファックス署名２６ａはファックスプログラム２５ａの、プリンタ署名２８ａはプリンタプログラム２７ａの電子署名であり、各電子署名は対応するアプリケーションプログラムを一意に識別するための情報及び対応するアプリケーションプログラムが改ざんされていなことを検証するための情報として用いられる。
【００２２】
すなわち、ＳＤカード１６は、他のコンピュータ等において容易に読み書きが可能であるという特性を有するが、かかる特性は記録されている情報の改ざんに対する脆弱性につながる。そこで、各アプリケーションプログラムについて電子署名を関連付けておくことにより、複合機１０が、アプリケーションプログラムの改ざんを検知することが可能となり、ウィルス等が混入されたアプリケーションプログラムが不用意に起動されるのを防止することができる。
【００２３】
図５は、アプリケーションプログラムの電子署名の生成方法を説明するための図である。図５に示されるように、まず、アプリケーションプログラム３０１に対して所定のメッセージダイジェスト関数を適用することによりアプリケーションプログラム３０１のメッセージダイジェスト３０２を生成する。続いてメッセージダイジェスト３０２を認証鍵２２で暗号化することにより電子署名３０３が生成される。
【００２４】
すなわち、コピー署名２４ａは、コピープログラム２３ａのメッセージダイジェストを認証鍵２２で暗号化したものである。同様に、ファックス署名２６ａ、プリンタ署名２８ａは、それぞれファックスプログラム２５ａのメッセージダイジェスト又はプリンタプログラム２７ａのメッセージダイジェストを認証鍵２２で暗号化したものである。なお、各アプリケーションプログラムの改ざん検知の仕方については後述する。
【００２５】
ところで、図４において、ＨＤＤ１５には、コピープログラム２３ｂ、コピー署名２４ｂ、ファックスプログラム２５ｂ、ファックス署名２６ｂ、プリンタプログラム２７ｂ、及びプリンタ署名２８ｂが記録されていることが示されている。これらは、ＳＤカード１６に記録されているアプリケーションプログラム及び電子署名がコピーされたものである。後述するように、アプリケーションプログラム及び電子署名のコピーは、少なくともＳＤカード１６からアプリケーションが起動された際に実行される。すなわち、ＳＤカード１６を用いてアプリケーションが利用される以前は、ＨＤＤ１５には、これらのアプリケーションプログラム及び電子署名は記録されていない。
【００２６】
以下、図４の複合機１０の処理手順について説明する。図６は、第一の実施の形態の複合機における起動時の処理概要を説明するためのシーケンス図である。図６においては、既に各アプリケーションプログラム及び電子署名がＳＤカード１６からＨＤＤ１５にコピーされていることを前提とする。
【００２７】
まず、基本プログラム２１によってＨＤＤ１５及びＳＤカード１６のソフト的破損チェックが行われる（Ｓ２０１、Ｓ２０２）。ここで、ソフト的破損チェックとは、ＨＤＤ１５又はＳＤカード１６が利用可能な状態にあるかをチェックする処理である。例えば、前回の利用時にいきなり電源を切られた等のソフト的な破損が生じ得る操作が行われていないかをチェックし、そのような操作が行われている場合は記録媒体内を走査してソフト的な破損が生じていないか等が確認される。
【００２８】
ＨＤＤ１５及びＳＤカード１６双方のソフト的破損チェックが完了し、双方へのアクセスが可能となった段階で、基本プログラム２１は、ＨＤＤ１５からコピー署名２４ｂを（Ｓ２０５、Ｓ２０６）、ＳＤカード１６からコピー署名２４ａを（Ｓ２０７、Ｓ２０８）それぞれメモリ上に読み込む。続いて、基本プログラム２１は、メモリ上に読み込まれたコピー署名２４ａとコピー署名２４ｂとの値を比較することにより、コピープログラム２３ａとコピープログラム２３ｂとの同一性を判定する（Ｓ２０９）。この同一性は、コピー署名２４ａとコピー署名２４ｂとの値が同じであれば肯定される。
【００２９】
図７は、ＳＤカードとＨＤＤとにおけるアプリケーションプログラムの同一性の判定方法を概念的に示す図である。図中では、ＸＸＸプログラムとＹＹＹプログラムとの同一性を、それぞれの電子署名であるＸＸＸ署名とＹＹＹ署名との値を比較することにより判定する様子が示されている。
【００３０】
コピープログラム２３ａとコピープログラム２３ｂとの同一性が肯定された場合、基本プログラム２１は、コピープログラム２３ｂをＨＤＤ１５よりメモリ上に読み込む（Ｓ２１０、Ｓ２１１）。続いて、基本プログラム２１は、メモリ上に読み込まれたコピープログラム２３ｂをＳＤカード１６におけるコピープログラム２３ａの代わりに起動する（Ｓ２１２）。すなわち、コピープログラム２３ａとコピープログラム２３ｂとが同一であれば、読み込み速度の速いＨＤＤ１５に記録されているコピープログラム２３ｂを利用することで、コピープログラムの読み込み処理にかかる時間を短縮しようというわけである。
【００３１】
以降、基本プログラム２１は、ファックスプログラム２５ａ及びプリンタプログラム２７ａについても、ＳＤカード１６とＨＤＤ１５とにおける電子署名の値の比較を行い、両者が同一であれば、ＨＤＤ１５におけるファックスプログラム２５ｂ、プリンタプログラム２７ｂを起動する（Ｓ２１３〜Ｓ２２８）。
【００３２】
図６の処理をアクティビティ図に示すと図８のようになる。図８は、第一の実施の形態の複合機における起動処理を説明するためのアクティビティ図である。
【００３３】
まず、基本プログラム２１が起動される（Ｓ２５１）。続いて、基本プログラム２１によってＨＤＤ１５のソフト的破損チェック（Ｓ２５２）と、ＳＤカード１６のソフト的破損チェック（Ｓ２５３）とが並列的に行われる。
【００３４】
ＨＤＤ１５及びＳＤカード１６の双方のソフト的破損チェックが完了すると、基本プログラム２１は、一つのアプリケーションプログラム（以下「カレントアプリ」という。）に対する電子署名をＨＤＤ１５及びＳＤカード１６のそれぞれよりをメモリ上に読み込み、二つの電子署名（例えば、コピー署名２４ｂとコピー署名２４ａ）の値を比較する（Ｓ２５４）。
【００３５】
続いて、基本プログラム２１は、二つの電子署名の値が同一であるか否かを判定し（Ｓ２５５）、同一である場合は、カレントアプリをＨＤＤ１５よりメモリ上に読み込む（Ｓ２５６）。続いて、基本プログラム２１は、既にメモリ上に読み込まれているカレントアプリの電子署名に基づいて、カレントアプリを認証する（Ｓ２５７）。ここで、アプリケーションプログラムの認証とは、当該アプリケーションプログラムが改ざんされていないことを検証することをいう。
【００３６】
すなわち、電子署名を比較することにより、ＨＤＤ１５におけるカレントアプリとＳＤカード１６におけるカレントアプリとが同一であることは、一応推定される。しかし、例えば、もともとＳＤカード１６におけるカレントアプリが改ざんされている場合や、ＨＤＤ１５へのコピー後にＨＤＤ１５におけるカレントアプリが改ざんされている可能性がある。したがって、これから起動しようとしているＨＤＤ１５から読み込まれたカレントアプリが改ざんされていないことを、その起動前に検証しておくことがセキュリティ上の観点から好ましい。
【００３７】
図９は、アプリケーションプログラムの認証方法を説明するための概念図である。図９では、アプリケーションプログラム４０１の認証を行う例が示されている。この場合、アプリケーションプログラム４０１にメッセージダイジェスト関数を適用してメッセージダイジェスト４０２を生成する。一方で、アプリケーションプログラム４０１の電子署名４０３を認証鍵２２で復号化することにより復号データ４０４を生成する。そして、メッセージダイジェスト４０２と復号データ４０４とを比較し、両者が同一であればアプリケーションプログラム４０１は認証される。
【００３８】
したがって、ステップＳ２５７において基本プログラム２１は、カレントアプリのメッセージダイジェストの生成、既にメモリ上に読み込まれているカレントアプリの電子署名の認証鍵２２による復号化、及び、メッセージダイジェストと復号化された電子署名との比較を行うことによりカレントアプリを認証する。なお、アプリケーションプログラムの認証処理は、便宜上、図６においては説明を省略されている。
【００３９】
カレントアプリが認証されると、基本プログラム２１は、ＨＤＤ１５からメモリ上に読み込まれたカレントアプリを起動する（Ｓ２５８）。
【００４０】
一方、ステップＳ２５５において二つの電子署名が一致しなかった場合、若しくはＨＤＤ１５に対応する電子署名がない場合、又はステップＳ２５７においてカレントアプリが認証されなかった場合、基本プログラム２１は、カレントアプリをＳＤカード１６からメモリ上に読み込む（Ｓ２５９）。なお、過去にＳＤカード１６よりアプリケーションプログラムを起動したことが無い場合は、後述のステップＳ２６５によるコピー処理が実行されていないため、ＨＤＤ１５にはアプリケーションプログラム及びその電子署名は記録されていない。したがって、この場合、ステップＳ２５５においてＨＤＤ１５には対応する電子署名が無いと判定される。
【００４１】
続いて、基本プログラム２１は、ＳＤカード１６より読み込んだカレントアプリについて認証を行う（Ｓ２６０）。すなわち、当該カレントアプリのメッセージダイジェストの生成、既にメモリ上に読み込まれているカレントアプリの電子署名の認証鍵２２による復号化、及び、メッセージダイジェストと復号化された電子署名との比較を行う。カレントアプリが認証された場合、基本プログラム２１は、ＳＤカード１６より読み込まれたカレントアプリを起動する（Ｓ２５８）。カレントアプリが認証されなかった場合、基本プログラム２１は、処理を中止する。
【００４２】
なお、ステップＳ２５４〜Ｓ２５８までの処理は、ＳＤカード１６に記録されている他の全てのアプリケーションプログラムについて実行される（Ｓ２６１）。
【００４３】
全てのアプリケーションプログラムが起動されると（Ｓ２６２）、基本プログラム２１は、ＨＤＤ１５の空き容量を確認し、ＳＤカード１６に記録されている全てのアプリケーションプログラムとそれらの電子署名とを記録する領域（以下「コピー領域」という。）がＨＤＤ１５に残っているかを判定する（Ｓ２６３）。ＨＤＤ１５にコピー領域が有る場合、基本プログラム２１は、ＳＤカード１６に記録されている全てのアプリケーションプログラムとそれらの電子署名とをＨＤＤ１５にコピーする（Ｓ２６５）。ＨＤＤ１５にコピー領域が無い場合、基本プログラム２１は、過去にＳＤカードよりＨＤＤ１５にコピーされたアプリケーションプログラム等を古い順に削除し（Ｓ２６４）、コピー領域を確保した後、コピーを実行する（Ｓ２６５）。したがって、次回に複合機１０が起動される際は、基本的にＨＤＤ１５にコピーされたアプリケーションプログラムが起動される。
【００４４】
なお、ステップＳ２６５ではＳＤカード１６のデッドコピーを防止するため認証鍵２２のコピーは実行されない。すなわち、仮にＨＤＤ１５からのコピーによって別のＳＤカードが作成されたとしても、当該別のＳＤカードには認証鍵２２は含まれていない。したがって、当該別のＳＤカードを複合機１０に差し込んで複合機１０を起動しようとしても、認証鍵２２がＳＤカード内に無いためアプリケーションプログラムの認証に失敗し、複合機１０を起動することはできないからである。
【００４５】
要するに、ＨＤＤ１５にＳＤカード１６内の全てのアプリケーションがコピーされたとしても、コピーされたアプリケーションプログラムはそのコピー元であるＳＤカード１６が複合機１０に差し込まれているときのみに有効（利用可能）なのであり、これによって、ＳＤカード１６のデッドコピーの防止が担保される。
【００４６】
上述したように、第一の実施の形態における複合機１０によれば、ＳＤカード１６に比べて読み込み速度の速いＨＤＤ１５よりアプリケーションを用いて擬似的にＳＤカード１６内のアプリケーションを起動するため、ＳＤカード１６内のアプリケーションの起動処理の処理時間を短縮化することができ、ひいては複合機１０の起動処理の処理時間を短縮化することができる。
【００４７】
また、アプリケーションプログラムの同一性の判定のためにＳＤカード１６へのアクセスが生じるが、この際にＳＤカード１６から読み込まれるのはアプリケーションプログラムより情報量の少ない電子署名であるため、当該処理による性能劣化の影響を小さく抑えることができる。
【００４８】
なお、アプリケーションの同一性の判定のために用いられる、当該アプリケーションプログラムを一意に識別するための情報は、必ずしも電子署名である必要はない。少なくとも当該アプリケーションプログラムを一意に識別でき、また当該アプリケーションプログラムより情報量の少ない情報であればよい。例えば、アプリケーションプログラムのメッセージダイジェストや、名前とバージョン番号との組み合わせ等、運用に合わせて適宜選択すればよい。
【００４９】
ところで、ＨＤＤ１５からのアプリケーションプログラムの読み込みの開始は、ＨＤＤ１５のソフト的破損チャックが完了した後である必要がある。したがって、第一の実施の形態において、基本プログラム２１は、ＳＤカード１６のみならずＨＤＤ１５のソフト的破損チェックの完了を待ち合わせた上で、以降の処理を開始していた。しかし、ＨＤＤ１５の記憶容量の大きさ等の要因より、ＨＤＤ１５のソフト的破損チェックは時として数十秒若しくはそれ以上の時間を要するときがある。例えば、前回の利用時にいきなり電源を切られた等のソフト的な破損が生じ得る操作が行われている場合等である。かかる場合に、ＨＤＤ１５のソフト的破損チェックの完了を待ち合わせていたのでは、ＨＤＤ１５よりアプリケーションプログラムを読み込むことにより短縮される時間以上のオーバーヘッドが生じ、かえって複合機１０の起動時間が長くなってしまう。そこで、第二の実施の形態として、ＨＤＤ１５のソフト的破損チェックに長時間を要する場合であっても複合機１０の起動時間が不当に長くなるのを防止した例について説明する。なお、第二の実施の形態における複合機１０の構成は、第一の実施の形態におけるものと同様でよい。
【００５０】
図１０は、第二の実施の形態の複合機における起動時の処理概要を説明するためのシーケンス図である。図１０においても、既に各アプリケーションプログラム及び電子署名がＳＤカード１６からＨＤＤ１５にコピーされていることを前提とする。
【００５１】
まず、基本プログラム２１によってＨＤＤ１５及びＳＤカード１６のソフト的破損チェックが行われる（Ｓ３０１、Ｓ３０２）。基本プログラム２１は、ＳＤカード１６のソフト的破損チェックが完了すると、ＨＤＤ１５のソフト的破損チェックを待ち合わせることなく、アプリケーションの起動処理を開始する。
【００５２】
すなわち、ＳＤカード１６からコピー署名２４ａ及びコピープログラム２３ａをメモリ上に読み込み（Ｓ３０４〜Ｓ３０７）、ＳＤカード１６より読み込まれたコピープログラム２３ａを起動する（Ｓ３０８）。なお、起動前にコピープログラム２３ａの認証が行われるが、図１０においては便宜上省略している。
【００５３】
コピープログラム２３ａを起動が完了した段階で、ようやくＨＤＤ１５のソフト的破損チェックが完了したとする（Ｓ３０９）。
【００５４】
すると、基本プログラム２１は、ＨＤＤ１５の利用を開始する。すなわち、基本プログラム２１は、ＨＤＤ１５からファックス署名２６ｂを（Ｓ３１０、Ｓ３１１）、ＳＤカード１６からファックス署名２６ａを（Ｓ３１２、Ｓ３１３）それぞれメモリ上に読み込む。続いて、基本プログラム２１は、メモリ上に読み込まれたファックス署名２６ａとファックス署名２６ｂとの値を比較することにより、ファックスプログラム２５ａとファックスプログラム２５ｂとの同一性を判定する（Ｓ３１４）。
【００５５】
ファックスプログラム２５ａとファックスプログラム２５ｂとの同一性が肯定されると、基本プログラム２１は、ファックスプログラム２５ｂをＨＤＤ１５よりメモリ上に読み込み（Ｓ３１５、Ｓ３１６）、ファックスプログラム２５ｂを起動する（Ｓ３１７）。
【００５６】
以降、基本プログラム２１は、プリンタプログラム２７ａについても、ＳＤカード１６とＨＤＤ１５とにおける電子署名の値の比較を行い、両者が同一であれば、ＨＤＤ１５におけるプリンタプログラム２７ｂを起動する（Ｓ３１８〜Ｓ３２５）。
【００５７】
すなわち、図１０の処理によれば、ＨＤＤ１５が利用できない間はＳＤカード１６からアプリケーションプログラムが起動されるため、ＨＤＤ１５が利用可能となるまでの時間が複合機１０の起動時間にそのまま影響するのを回避することができる。したがって、ＨＤＤ１５のソフト的破損チェックの遅れ等により、ＨＤＤ１５が利用可能となるまでの時間が増加したとしても、複合機１０の起動時間が不当に長くなるのを防止することができる。
【００５８】
図１０の処理をアクティビティ図に示すと図１１のようになる。図１１は、第二の実施の形態の複合機における起動処理を説明するためのアクティビティ図である。
【００５９】
まず、基本プログラム２１が起動される（Ｓ３５１）。続いて、基本プログラム２１によってＨＤＤ１５のソフト的破損チェック（Ｓ３５２）と、ＳＤカード１６のソフト的破損チェック（Ｓ３５３）とが並列的に行われる。
【００６０】
少なくともＳＤカード１６の破損チェックが完了すると、基本プログラム２１は、ＳＤカード１６上における一つのアプリケーションを処理対象とし（以下、処理対象とされたアプリケーションを「カレントアプリ」という。）、カレントアプリの電子署名をＳＤカード１６からメモリ上に読み込む（Ｓ３５４）。続いて、基本プログラム２１は、カレントアプリをＳＤカード１６からメモリ上に読み込み（Ｓ３５５）、電子署名を用いてカレントアプリの認証を行う（Ｓ３５６）。カレントアプリが認証されなかった場合、基本プログラムは処理を中止する。カレントアプリが認証された場合、基本プログラムは、ＳＤカード１６から読み込まれたカレントアプリを起動する（Ｓ３５７）。
【００６１】
続いて、基本プログラム２１は、ＳＤカード１６に記録されている全てのアプリケーションプログラムを起動したか否かを判定する（Ｓ３５８）。全てのアプリケーションの起動が完了した場合、基本プログラム２１は、ステップＳ３７５以降のＳＤカード１６からＨＤＤ１５へのアプリケーションプログラム及びその電子署名のコピー処理を実行する。
【００６２】
まだ起動されていないアプリケーションプログラムが残っている場合、基本プログラム２１は、ＨＤＤ１５のソフト的破損チェックが完了しているか否かを判定する（Ｓ３５９）。ＨＤＤ１５のソフト的破損チェックが完了していない場合、基本プログラム２１は、まだ起動されていないアプリケーションプログラムを処理対象として、上述したステップＳ３５３以降の処理を繰り返す。
【００６３】
ＨＤＤ１５のソフト的破損チェックが完了している場合、基本プログラム２１は、ＨＤＤ１５からのアプリケーションプログラムの起動を開始する（Ｓ３６０）。すなわち、まだ起動されていないアプリケーションプログラムを処理対象として、ステップＳ３６７以降の処理を実行する。なお、ステップＳ３６７以降の処理は、図８において説明したステップＳ２５４以降の処理と同様であるため、ここでの説明は省略する。
【００６４】
上述したように、第二の実施の形態における複合機１０によれば、ＨＤＤ１５にアクセスできない時間が長引いた場合であっても、ＳＤカード１６からアプリケーションプログラムを起動することにより、複合機１０の起動処理時間が不当に長くなることを防止することができる。
【００６５】
なお、上記においては、プログラムを配布するための外部媒体としてＳＤカードを例に挙げて説明したが、かかる外部媒体は、ＣＤ−ＲＯＭをはじめ様々な記録媒体によって代替してもよい。また、プログラムを配布するための外部媒体に記録されているプログラムを起動可能な機器として複合機を例に挙げて説明したが、かかる機器は複合機に限らず、コピー機、プリンタ、スキャナ装置、又はＦＡＸ装置等、一つの機能に特化した機器であってもよい。また、画像処理に関連した機器に限らず、アプリケーションを実行可能な機器であれば、様々な機器に対して本発明は適用可能である。
【００６６】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００６７】
【図１】従来の複合機におけるプログラムの配置構成例を説明するための図である。
【図２】従来の複合機における起動時の処理概要を説明するためのシーケンス図である。
【図３】従来の複合機における起動処理を説明するためのアクティビティ図である。
【図４】本発明の実施の形態における複合機の概略構成例を示す図である。
【図５】アプリケーションプログラムの電子署名の生成方法を説明するための図である。
【図６】第一の実施の形態の複合機における起動時の処理概要を説明するためのシーケンス図である。
【図７】ＳＤカードとＨＤＤとにおけるアプリケーションプログラムの同一性の判定方法を概念的に示す図である。
【図８】第一の実施の形態の複合機における起動処理を説明するためのアクティビティ図である。
【図９】アプリケーションプログラムの認証方法を説明するための概念図である。
【図１０】第二の実施の形態の複合機における起動時の処理概要を説明するためのシーケンス図である。
【図１１】第二の実施の形態の複合機における起動処理を説明するためのアクティビティ図である。
【符号の説明】
【００６８】
１０、５００        複合機
１１、５０１        ＣＰＵ
１２、５０２        チップセット
１３、５０３        ＲＡＭ
１４、５０４        ＲＯＭ
１５、５０５        ＨＤＤ
１６、５０６        ＳＤカード
２１、５１１        基本プログラム
２２                認証鍵
２３ａ、２３ｂ、５１２      コピープログラム
２４ａ、２４ｂ      コピー署名
２５ａ、２５ｂ、５１３      ファックスプログラム
２６ａ、２６ｂ      ファックス署名
２７ａ、２７ｂ、５１４      プリンタプログラム
２８ａ、２８ｂ      プリンタ署名
【図１】
2006309449.tif 000003
【図２】
2006309449.tif 000004
【図３】
2006309449.tif 000005
【図４】
2006309449.tif 000006
【図５】
2006309449.tif 000007
【図６】
2006309449.tif 000008
【図７】
2006309449.tif 000009
【図８】
2006309449.tif 000010
【図９】
2006309449.tif 000011
【図１０】
2006309449.tif 000012
【図１１】
2006309449.tif 000013