(57)【要約】  チップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）が開示される。本チップシステムは、複数の暗号化キーが保存された第１メモリと、第２メモリと、暗号化キー設定値が保存された第３メモリと、複数の暗号化キーの中で暗号化キー設定値に対応する暗号化キーを用いて、外部非揮発性メモリに保存された暗号化されたデータを復号化し、復号化されたデータを第２メモリに保存し、第２メモリに保存されたデータを用いてブートを行うＣＰＵとを含む。それにより、ブートのセキュリティ性を向上させることができる。
2016511848.tif 000002
【特許請求の範囲】
【請求項１】
チップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）において、
複数の暗号化キーが保存された第１メモリと、
第２メモリと、
暗号化キー設定値が保存された第３メモリと、
前記複数の暗号化キーの中で前記暗号化キー設定値に対応する暗号化キーを用いて、外部非揮発性メモリに保存された暗号化されたデータを復号化し、復号化されたデータを前記第２メモリに保存し、前記第２メモリに保存されたデータを用いてブートを行うプロセッサと
を含むチップシステム。
【請求項２】
前記第１メモリには、前記複数の暗号化キーと別途に初期化データが保存され、
前記プロセッサは、前記初期化データを用いて初期化動作を行った後、前記暗号化されたデータに対する復号化作業を行うことを特徴とする請求項１に記載のチップシステム。
【請求項３】
予め設定された時間の間、外部ポートを通じた前記プロセッサへのアクセスを制限する第１回路部を更に含むことを特徴とする請求項２に記載のチップシステム。
【請求項４】
前記第１回路部は、
パワーオンになると、前記プロセッサへのアクセスをディセーブルさせるためのディセーブル信号を前記プロセッサに出力し、システム準備が完了すると、前記プロセッサへのアクセスをイネーブルさせるためのイネーブル信号を前記プロセッサに出力することを特徴とする請求項３に記載のチップシステム。
【請求項５】
前記第１回路部は、第１レジスタを含み、
前記プロセッサは、
前記システム準備が完了すると前記第１レジスタの保存値を変更することを特徴とする請求項４に記載のチップシステム。
【請求項６】
前記第１メモリに対するアクセスを制御するための第２回路部及び第３回路部を更に含むことを特徴とする請求項５に記載のチップシステム。
【請求項７】
前記第２回路部は、第２レジスタを含み、前記第３回路部は、第３レジスタを含み、
前記プロセッサは、
前記システム準備が完了すると、前記第１メモリに対するアクセスをディセーブルさせるための制御値を前記第２レジスタに保存し、前記第１メモリに対するアクセスを前記第２メモリに対するアクセスに変更させるための制御値を前記第３レジスタに保存することを特徴とする請求項６に記載のチップシステム。
【請求項８】
前記プロセッサは、
復号化作業に失敗すると、無限ループを実行することを特徴とする請求項１に記載のチップシステム。
【請求項９】
前記プロセッサは、
パワーオンになると、前記第３メモリに保存された選択値または外部ピンによって指定されたメモリを確認し、前記第１メモリが指定された状態なら、前記暗号化されたデータを用いるセキュアブートを行い、前記第２メモリが指定された状態なら、前記外部非揮発性メモリに保存された非暗号化データを用いるノーマルブートを行うことを特徴とする請求項１に記載のチップシステム。
【請求項１０】
前記第１メモリは、ＭＡＳＫ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）またｏｎｅ−ｔｉｍｅ  ｐｒｏｇｒａｍｍａｂｌｅ（ＯＴＰ）  ＲＯＭであり、
前記第２メモリは、ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ（ＳＲＡＭ）であり、
前記第３メモリは、ｅｌｅｃｔｒｉｃａｌ  ｆｕｓｅ（ＥＦＵＳＥ）メモリであることを特徴とする請求項１に記載のチップシステム。
【請求項１１】
非揮発性メモリ及びチップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）を含む画像形成装置のブート方法において、
前記チップシステム内の第１メモリに保存された初期化データを用いて初期化動作を行う初期化ステップと、
前記初期化動作が行われると、前記第１メモリに保存された複数の暗号化キーの中の１つを用いて、前記非揮発性メモリに保存された暗号化されたデータを復号化するステップと、
復号化されたデータを前記チップシステム内の第２メモリに保存するステップと、
前記第２メモリに保存されたデータを用いてブートを行うステップと
を含むブート方法。
【請求項１２】
前記画像形成装置がパワーオンされると、前記チップシステム内の第３メモリまたは外部ピンを介して入力される入力値によって指定されたメモリを確認するステップと、
前記指定されたメモリが前記第１メモリなら、前記チップシステム内のプロセッサに対するアクセスをディセーブルさせるステップと
を更に含むことを特徴とする請求項１１に記載のブート方法。
【請求項１３】
前記復号化または前記復号化されたデータの認証が完了すると、前記プロセッサに対するアクセスをイネーブルさせるステップを更に含むことを特徴とする請求項１２に記載のブート方法。
【請求項１４】
前記復号化または前記復号化されたデータの認証が完了すると、前記第１メモリに対するアクセスをディセーブルさせるステップと、
前記第１メモリに対するアクセスを前記第２メモリに対するアクセスに変更させるためのレジスタ設定を行うステップと
を更に含むことを特徴とする請求項１３に記載のブート方法。
【請求項１５】
前記第１メモリがリセットベクトルによって指定されると、指示を検索（ｒｅｔｒｉｅｖｅ）する前記リセットベクトルに応じてプロセッサで前記第１メモリにアクセスするステップを更に含むことを特徴とする請求項１１に記載のブート方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チップシステムと、それを用いる画像形成装置及びそのブート方法に関し、より詳細には、暗号化されたデータを用いてセキュアブートを行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法に関する。
【背景技術】
【０００２】
電子技術の発達により、多様な電子製品が開発されている。特に、コンピュータの普及に伴い、コンピュータの周辺機器の普及率も次第に向上している。コンピュータ周辺機器とは、コンピュータの活用性を高めるための機器を意味する。代表的には、プリンタ、スキャナ、コピー機、複合機等のような画像形成装置がある。
【０００３】
画像形成装置は、用紙やその他の媒体上に画像を形成する画像形成ジョブを行う装置である。画像形成ジョブを行うために、インクやトナーのような現像剤が使われてよい。トナーを使用するレーザ方式の画像形成装置の場合、帯電ユニット、現像ユニット、転写ユニット、露光ユニット、定着ユニット等が使用される。このようなユニットのように、ジョブ実行によって消耗するユニットを消耗品ユニットとしてよい。消耗品ユニットは、一定期間以上使用すると、特性が変質して優れた印刷の品質を期待することができなくなる。特に、トナーを収めるトナーカートリッジの場合、トナーが無くなるとトナーカートリッジそのものを取り替えなければならない場合がある。このような状況に備え、製品の製造メーカでは完成品と別途に消耗品ユニットも販売している。
【０００４】
最近は、消耗品ユニットの交換時期を正確に判断できるようにするために、消耗品ユニット内にメモリを内蔵する場合がある。内蔵されるメモリには各消耗品ユニットの使用に関連する各種情報が保存される。しかし、従来は、消耗品ユニットに内蔵されたメモリに対して第三者が容易にアクセスできるという問題点があった。それにより、メモリに保存される情報が変更されるおそれがあり、それにより、消耗品ユニットの使用及び管理が困難になるという問題点があった。それを受け、消耗品ユニットのメモリに対するセキュリティ性を強化しようとする試みがあった。
【０００５】
しかし、メモリそのものではなく、消耗品ユニットと通信する装置本体に対するハッキングが行われるおそれもあった。特に、装置本体に搭載されたメインメモリ内のブート過程を変更し、消耗品ユニットに適用されたセキュリティ技術を迂回するその場しのぎの方法が開発されるおそれがある。よって、ブート過程そのもののセキュリティ性を向上させることができる技術が必要になってきた。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、暗号化データの保存された非揮発性メモリを用いたセキュアブートを行うチップシステムと、それを用いる画像形成装置及びそのセキュアブート方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
以上のような目的を達成するための本発明の一実施形態によると、チップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）は、複数の暗号化キーが保存された第１メモリと、第２メモリと、暗号化キー設定値が保存された第３メモリと、前記複数の暗号化キーの中で前記暗号化キー設定値に対応する暗号化キーを用いて、外部非揮発性メモリに保存された暗号化されたデータを復号化し、復号化されたデータを前記第２メモリに保存し、前記第２メモリに保存されたデータを用いてブートを行うＣＰＵとを含む。
【０００８】
そして、前記第１メモリには、前記複数の暗号化キーと別途に初期化データが保存され、前記ＣＰＵは、前記初期化データを用いて初期化動作を行った後、前記暗号化されたデータに対する復号化作業を行ってよい。
【０００９】
または、チップシステムは、予め設定された時間の間、外部ポートを通じたＣＰＵアクセスを制限する第１回路部を更に含んでよい。
【００１０】
そして、前記第１回路部は、パワーオンになると、前記ＣＰＵアクセスをディセーブルさせるためのディセーブル信号を前記ＣＰＵに出力し、システム準備が完了すると、前記ＣＰＵアクセスをイネーブルさせるためのイネーブル信号を前記ＣＰＵに出力してよい。
【００１１】
なお、前記第１回路部は、第１レジスタを含み、前記ＣＰＵは、前記システム準備が完了すると前記第１レジスタの保存値を変更してよい。
【００１２】
そして、前記第１メモリに対するアクセスを制御するための第２回路部及び第３回路部を更に含んでよい。
【００１３】
なお、前記第２回路部は、第２レジスタを含み、前記第３回路部は、第３レジスタを含み、前記ＣＰＵは、前記システム準備が完了すると、前記第１メモリに対するアクセスをディセーブルさせるための制御値を前記第２レジスタに保存し、前記第１メモリに対するアクセスを前記第２メモリに対するアクセスに変更させるための制御値を前記第３レジスタに保存してよい。
【００１４】
一方、前記ＣＰＵは、前記復号化作業に失敗すると、無限ループを実行してよい。
【００１５】
そして、前記ＣＰＵは、パワーオンになると、前記第３メモリに保存された選択値または外部ピンによって指定されたメモリを確認し、前記第１メモリが指定された状態なら、前記暗号化されたデータを用いるセキュアブートを行い、前記第２メモリが指定された状態なら、前記外部非揮発性メモリに保存された非暗号化データを用いるノーマルブートを行ってよい。
【００１６】
そして、前記第１メモリはＭＡＳＫ  ＲＯＭまたはＯＴＰ  ＲＯＭであり、前記第２メモリはＳＲＡＭであり、前記第３メモリはＥＦＵＳＥメモリであってよい。
【００１７】
一方、本発明の一実施形態によると、画像形成装置は、ＣＲＵＭチップが装着された消耗品ユニットと、前記消耗品ユニットを用いて画像形成ジョブを行い、前記画像形成ジョブの実行によって前記ＣＲＵＭチップに記録されたデータをアップデータさせる制御部とを含んでよい。
【００１８】
ここで、前記制御部は、暗号化されたデータが記録された非揮発性メモリと、前記画像形成装置がターンオンされると、前記暗号化されたデータを用いてセキュアブートを行い、前記セキュアブートが完了すると、ユーザ命令に応じて前記画像形成装置を制御するチップシステムとを含んでよい。
【００１９】
そして、前記チップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）は、複数の暗号化キーが保存された第１メモリと、第２メモリと、暗号化キー設定値が保存された第３メモリと、前記複数の暗号化キーの中で前記暗号化キー設定値に対応する暗号化キーを用いて、前記非揮発性メモリに保存されたデータを復号化し、復号化されたデータを前記第２メモリに保存し、前記第２メモリに保存されたデータを用いてブートを行うＣＰＵとを含んでよい。
【００２０】
そして、前記第１メモリには、前記複数の暗号化キーと別途に初期化データが保存され、前記ＣＰＵは、前記初期化データを用いて初期化動作を行った後、前記暗号化されたデータに対する復号化作業を行ってよい。
【００２１】
なお、前記チップシステムは、ブートイベントが発生すると、予め設定された時間の間、外部ポートを通じたＣＰＵアクセスを制限してよい。
【００２２】
そして、前記チップシステムはパワーオンになると、前記ＣＰＵアクセスをディセーブルさせるためのディセーブル信号を前記ＣＰＵに出力し、システム準備が完了すると、前記ＣＰＵアクセスをイネーブルさせるためのイネーブル信号を前記ＣＰＵに出力する第１回路部を更に含んでよい。
【００２３】
なお、前記第１回路部は、前記レジスタを含み、前記ＣＰＵは、前記システム準備が完了すると前記第１レジスタの保存値を変更してよい。
【００２４】
そして、前記ＣＰＵは、システム準備が完了すると、前記第１メモリに対するアクセスをディセーブルさせ、前記第１メモリに対するアクセスを前記第２メモリに対するアクセスに変更させるためのレジスタ設定作業を行ってよい。
【００２５】
なお、前記ＣＰＵは、パワーオンになると、前記第３メモリに保存された選択値または外部ピンによって指定されたメモリを確認し、前記第１メモリが指定された状態なら、前記暗号化されたデータを用いるセキュアブートを行い、前記第２メモリが指定された状態なら、前記外部非揮発性メモリに保存された非暗号化データを用いるノーマルブートを行ってよい。
【００２６】
そして、前記第１メモリはＭＡＳＫ  ＲＯＭまたはＯＴＰ  ＲＯＭであり、前記第２メモリはＳＲＡＭであり、前記第３メモリはＥＦＵＳＥメモリであってよい。
【００２７】
一方、非揮発性メモリ及びチップシステム（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）を含む画像形成装置のブート方法は、前記チップシステム内の第１メモリに保存された初期化データを用いて初期化動作を行う初期化ステップと、前記初期化動作が行われると、前記第１メモリに保存された複数の暗号化キーの中の１つを用いて、前記非揮発性メモリに保存された暗号化されたデータを復号化するステップと、復号化されたデータを前記チップシステム内の第２メモリに保存するステップと、前記第２メモリに保存されたデータを用いてブートを行うステップとを含む。
【００２８】
そして、前記画像形成装置がパワーオンされると、前記チップシステム内の第３メモリまたは外部ピンを介して入力される入力値によって指定されたメモリを確認するステップと、前記指定されたメモリが前記第１メモリなら、前記チップシステム内のＣＰＵに対するアクセスをディセーブルさせるステップとを更に含んでよい。
【００２９】
なお、システム準備が完了すると、前記ＣＰＵに対するアクセスをイネーブルさせるステップを更に含んでよい。
【００３０】
そして、前記システム準備が完了すると、前記第１メモリに対するアクセスをディセーブルさせるステップと、前記第１メモリに対するアクセスを前記第２メモリに対するアクセスに変更させるためのレジスタ設定を行うステップとを更に含んでよい。
【発明の効果】
【００３１】
以上説明したように、本発明によれば、ブート過程そのもののセキュリティ性を向上させることができ、第三者の悪意あるハッキングによる被害を防止することができるようになる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係るチップシステムの構成を示すブロック図である。
【図２】本発明の一実施形態に係るセキュアブート方法を説明するためのフローチャートである。
【図３】本発明の別の実施形態に係るチップシステムの構成を示すブロック図である。
【図４】本発明の更に別の実施形態に係るチップシステムの搭載されたメインボードの構成を示すブロック図である。
【図５】本発明の別の実施形態に係るセキュアブート方法を説明するためのフローチャートである。
【図６】本発明の更に別の実施形態に係るセキュアブート方法を説明するためのフローチャートである。
【図７】図４のチップシステムの細部構成の一例を示す回路図である。
【図８】セキュアパームウェアのレイアウトの一例を示す図である。
【図９】セキュアブートを行うためのメモリマップの一例を示す図である。
【図１０】チップシステムの搭載された画像形成装置の構成の一例を示すブロック図である。
【図１１】消耗品ユニットに装着可能なＣＲＵＭチップ構成の一例を示すブロック図である。
【発明を実施するための形態】
【００３３】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。
【００３４】
電子装置はパワーオンになると、正常に動作するためにブート過程を行うのは一般的である。ブート過程を通じて電子装置は適切な初期化を行いプログラムをローディングして実行させることができる。電子装置の初期状態を決定するブート過程は、電子装置の重要な運営パラメータに影響を及ぼし、電子装置が使用される際に実質的な影響を及ぼしかねない。
【００３５】
よって、ブート過程を誰にでも容易に変更できるようにすると、最初に意図していなかったプログラムがローディングされるおそれがあるため、ブート過程を任意に変更できないように安全にブートできる方法、すなわち、セキュアブート方法が必要になる。セキュアブートのために、ブートデータは暗号化された状態で電子装置内の非揮発性メモリに保存されてよい。電子装置の動作を制御するチップシステム１００は、非揮発性メモリにアクセスした後、暗号化されたデータを復号化してセキュアブート過程を行うことができる。以下では、チップシステムの構成及びセキュアブート方法に対する多様な実施形態について具体的に説明する。
【００３６】
図１は、本発明の一実施形態に係るチップシステムの構成を示すブロック図である。図１によると、チップシステム１００は、暗号化されたデータの保存された非揮発性メモリ２００を用いてセキュアブートを行う。図１のチップシステム１００及び非揮発性メモリ２００は１つの電子装置内に内蔵されてよい。
【００３７】
チップシステム１００は、非揮発性メモリ２００に保存された暗号化されたデータを用いてブート過程を行う。具体的には、ブートＢＳＳ（Ｂｌｏｃｋ  Ｓｔａｒｔｅｄ  Ｓｙｍｂｏｌ）、カーネル、ＯＳ、他のＯＳ（Ｗｉｒｅｌｅｓｓ  Ｓｔａｃｋ）、Ｅｎｇｉｎｅ、Ｅｍｕｌａｔｉｏｎ、Ｆｉｘｅｄ  Ｓｅｇｍｅｎｔ、Ｈｅａｐ、認証キー、暗号化されたＯＳ、デバイスドライバ等のような多様なデータが暗号化されて非揮発性メモリ２００に保存されてよい。
【００３８】
暗号化方式としては、多様な方式が使用されてよい。例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式、ＴＤＥＳ（Ｔｒｉｐｌｅ  ＤＥＳ）方式、ＡＥＳ（高級暗号標準：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号化方式、ＳＥＥＤアルゴリズム、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）方式、ＡＲＩＡアルゴリズム等が使用されてよい。
【００３９】
ＤＥＳ方式は、５６ビットのキーを使用する対称キー暗号アルゴリズムを用いて暗号化及び復号化する方式であり、ＴＤＥＳ方式とは、ＤＥＳを３回繰り返して使用する方式である。ＡＥＳ方式は、１２８ビットの大きさのブロックを１２８、１６０、１９２、２２４、２５６ビット等、１２８以上の全ての３２の倍数ビット長のキーを使って暗号化及び復号化する方式である。ＳＥＥＤ方式は、ＡＥＳと類似するように、暗号化キー１２８ビットまたは２５６ビットを用いて暗号化及び復号化を行う１２８ビットブロック暗号方式である。なお、ＲＳＡ方式は、一方向関数を用いる公開キー暗号システムの一種であり、ＡＲＩＡ（Ａｃａｄｅｍｙ−Ｒｅｓｅａｒｃｈ  Ｉｎｓｔｉｔｕｔｅ−Ａｇｅｎｃｙ）アルゴリズムは１２８ビットブロックを１２８、１９２、２５６ビットのキーを用いて暗号化及び復号化するブロック暗号化方式である。
【００４０】
非揮発性メモリ２００には、このように多様なデータが多様な暗号化方式によって暗号化されて保存されてよい。保存されたデータや暗号化方式は、図１のチップシステム１００及び非揮発性メモリ２００の搭載される製品の特性やその他の使用環境に応じて選択的に適用されてよい。
【００４１】
図１によると、チップシステム１００は、第１メモリ１１０と、第２メモリ１２０と、ＣＰＵ１３０とを含んでよい。第１メモリ１１０には、暗号化キーが保存されてよい。第１メモリ１１０は、マスクＲＯＭ（ＭＡＳＫ  ＲＯＭ）やＯＴＰ（Ｏｎｅ  Ｔｉｍｅ  Ｐｒｏｇｒａｍｍａｂｌｅ）メモリ等で実現されてよい。
【００４２】
マスクＲＯＭとは、製造過程で内容を予め記憶しておくメモリであって、ユーザがその内容を変更することができないＲＯＭである。ＯＴＰメモリは、インシステム（ｉｎ−ｓｙｓｔｅｍ）プログラミングに使用されてよいが、一旦プログラミングされると変更することができないプログラマブルＲＯＭの一種である。
【００４３】
暗号化キーは、非揮発性メモリ２００に保存されたデータ、特に、ブートコードを復号化するためのキーを意味する。上述のように、非揮発性メモリ２００には多様な方式のうちの１つで暗号化されたデータが保存されてよく、それに対応するビットの暗号化キーが第１メモリ１１０に保存されてよい。
【００４４】
その他に、第１メモリ１１０にはブートローダー（Ｂｏｏｔ  Ｌｏａｄｅｒ）情報も保存されていてよい。ブートローダーとは、運営体制が始動される前に予め実行され、カーネル（ｋｅｒｎｅｌ）が正しく始動できるように必要な全ての関連作業を仕上げて最終的に運営体制を始動させるプログラムを意味する。すなわち、運営体制は、実際命令語が駆動されるカーネル、プログラムに含まれた命令語をカーネルに伝えるフレームワーク、そして、カーネルとフレームワーク上で駆動されるＵＩのように、大きく３つの部分に区分される。ブートローダーは、カーネルを始動させる前にハードウェアを用意する役割を担うプログラムを意味する。具体的には、第１メモリ１１０にはプライベートブートローダー情報が保存されてよい。プライベートブートローダー情報は、システム初期化に必要な情報を含んでよい。
【００４５】
第２メモリ１２０は、ブートに使用されるための内部メモリである。第２メモリ１２０は、初期化の必要がないＳＲＡＭ等で構成されてよいが、それに限定されるものではない。
【００４６】
ＣＰＵ１３０は、チップシステム１００の外部に存在する非揮発性メモリに保存された暗号化されたデータを、第１メモリ１１０に保存された暗号化キーを用いて復号化し、復号化されたデータを第２メモリ１２０に保存する。その後、ＣＰＵ１３０は、第２メモリ１２０に保存されたデータを用いてブートを行うことができる。復号化方式は、データ暗号化方式に対応する方式で行われてよい。
【００４７】
仮に、ＡＥＳ方式が採用された場合を例に挙げると、暗号化するデータと初期に入力したＣｉｐｈｅｒ  ＫｅｙをＸＯＲ演算するＡｄｄＲｏｕｎｄＫｅｙ過程、その演算結果値を特定規則によって置き換えるＳｕｂＢｙｔｅｓ過程、データ行（ｒｏｗ）例をシフトさせるＳｈｉｆｔＲｏｗｓ過程、データ列をミックスさせるＭｉｘＣｏｌｕｍｎ過程を１０回繰り返して暗号化を行う。非揮発性メモリ２００には、このような方式で暗号化されたデータが保存されてよい。ＣＰＵ１３０は、各暗号化過程に対応する逆過程を繰り返し行い、暗号化されたデータを復号化することができる。復号化されたデータは第２メモリ１２０に保存され、ＣＰＵ１３０は保存されたデータを用いて後続ブート過程を行う。
【００４８】
または、ＲＳＡ方式が採用された場合を例に挙げると、ＲＳＡ方式では公開キー｛Ｎ、Ｅ｝と個人キー｛Ｎ、Ｄ｝とを用いて暗号化及び復号化を行う。具体的には、２つの大きい素数ｐとｑを選定した後、Ｍｏｄｕｌｕｓ  Ｎ＝ｐ＊ｑとＰＩ（Ｎ）を計算する。そして、ＰＩ（Ｎ）＝（ｐ−ａ）（ｑ−１）と互いに素な関係になるように任意にＥを選定し、Ｅ＊Ｄ  ｍｏｎ  ＰＩ（Ｎ）＝１の関係にあるＤを拡張されたユークリッドアルゴリズムを用いて算出する。結果的に、公開キー｛Ｎ、Ｅ｝と個人キー｛Ｎ、Ｄ｝とを用いてＲＳＡ暗号化を行うことができる。ＲＳＡ暗号化は、Ｅ（Ｍ）＝Ｍ＾Ｅ  ｍｏｄ  Ｎ＝Ｃのような数式を用いて行われてよい。ここで、Ｍは暗号化しようとするデータを意味する。非揮発性メモリ２００には、このような数式によって暗号化されたブートコードが保存されてよい。この場合、ＣＰＵ１３０は、Ｄ（Ｃ）＝Ｃ＾Ｄ  ｍｏｄ  Ｎ＝（（Ｍ＾Ｅ）＾Ｄ）ｍｏｄ  Ｎ）＝Ｍのような数式を用いてＲＳＡ復号化を行うことができる。復号化されたデータは第２メモリ１２０に保存され、ＣＰＵ１３０は保存されたデータを用いて後続ブート過程を行う。
【００４９】
このような方式によると、チップシステム１００は外部メモリ２００に保存されたデータを暗号化された状態でチップシステム１００の内部にローディングした後、復号化してブートを行うことができる。よって、第三者が外部メモリ２００及びチップシステム１００の間で通信されるデータをハッキングするとしても、ブート過程を変更させることができないようになるため、ブートセキュリティ性が向上できる。
【００５０】
図２は、本実施形態に係るセキュアブート方法を具体的に説明するためのフローチャートである。図２によると、チップシステムの搭載された電子装置がパワーオンになると（Ｓ２１０）、チップシステムは第１メモリ１１０にアクセスして第１メモリ１１０に保存されたデータを検出する（Ｓ２２０）。具体的には、ＣＰＵ１３０は、特定アドレスが割り当てられたリセットベクトル（ｒｅｓｅｔ  ｖｅｃｔｏｒ）に行ってインストラクション（ｉｎｓｔｒｕｃｔｉｏｎ）をフェッチ（ｆｅｔｃｈ）する。本実施形態において、リセットベクトルのアドレスは第１メモリ１１０に指定されていてよい。
【００５１】
ＣＰＵ１３０は、第１メモリ１１０が指定された場合、第１メモリ１１０に保存されたデータを用いてセキュアブートを行う。第１メモリ１１０にはシステム初期化に必要なコード、暗号化された外部プログラムコードの復号化のために必要なコードや暗号化キー等のような多様なデータが保存されてよい。
【００５２】
ＣＰＵ１３０は、第１メモリ１１０からシステム初期化に必要なコードを検出し、基本ハードウェアに対する初期化作業を行う（Ｓ２３０）。初期化作業には、チップシステム１００の内部で使用されるクロック（ｃｌｏｃｋ）を内部ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）回路を用いて速くする動作や、ＤＤＲメモリに使用するためにＤＤＲコントローラを初期化する動作等が含まれてよい。その他に、各種応用プログラム初期駆動、電子装置の内部または外部に接続された装置との通信チャネル形成に必要なセットアップ、メモリ値初期化、内部レジスタ値セッティング、ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）セッティング、シリアルセッティング、ＭＡＣアドレス獲得、イーサネット（登録商標）ポートセッティング（Ｅｔｈｅｒｎｅｔ（登録商標）  ｐｏｒｔ  ｓｅｔｔｉｎｇ）等のような多様な初期化動作が更に含まれてよい。なお、チップシステム１００の搭載された電子装置に同時に搭載された他のハードウェアを用意させる動作も含まれてよい。このような初期化動作は、チップシステム１００の搭載された電子装置の種類に応じて多様に実現されてよい。初期化の他にも、第１メモリ１１０に保存されたコードを行うことができる。例えば、Ｂｏｏｔ  Ｏｐｔｉｏｎ  Ｐｉｎ設定（ＳＰＩ／ＮＡＮＤ／ＳＤ）値を読み込んで当該ブートオプションに応じて暗号化されたデータを第２メモリ１２０にローディングすることができる。
【００５３】
その後、ＣＰＵ１３０は、チップシステム１１０の内部にローディングされた暗号化されたデータを復号化する（Ｓ２４０）。ＣＰＵ１３０は、第１メモリ１１０に保存された暗号化キーを用いて復号化を行うことができる。ＣＰＵ１３０は、復号化されたデータを第１メモリ１２０、ＤＤＲメモリ等に保存する（Ｓ２５０）。そして、復号化されたデータを用いてブートを行う（Ｓ２６０）。
【００５４】
すなわち、ＣＰＵ１３０は、復号化されたブートＢＳＳ（Ｂｌｏｃｋ  Ｓｔａｒｔｅｄ  Ｓｙｍｂｏｌ）、カーネルコード、ＯＳ、他のＯＳ（Ｗｉｒｅｌｅｓｓ  Ｓｔａｃｋ)、Ｅｎｇｉｎｅ、Ｅｍｕｌａｔｉｏｎ、Ｆｉｘｅｄ  Ｓｅｇｍｅｎｔ、Ｈｅａｐ等のようなデータを用いて、ブートを行うことができる。ブートとは、カーネルをロードし、フレームワークを実行させた後、ＵＩを実行して運営体制を始動する行為を意味する。
【００５５】
以上のように、本実施形態によると、チップシステム１００内部の暗号化されていない第１及び第２メモリと、外部の非揮発性メモリ２００に保存された暗号化されたデータを用いて、セキュリティ性の強化されたブートを行うことができる。
【００５６】
図３は、本発明の別の実施形態に係るチップシステムの構成を示すブロック図である。図３によると、チップシステム１００は、第１メモリ１１０と、第２メモリ１２０と、ＣＰＵ１３０の他に、第３メモリ１４０を更に含んでよい。
【００５７】
本実施形態によると、第１メモリ１１０には、複数の暗号化キーが保存されてよい。第３メモリ１４０は、複数の暗号化キーの中から１つを選択するための設定値が保存されてよい。本明細書においては、このような設定値を暗号化キー設定値と称する。第３メモリ１４０は、ＯＴＰメモリ種類の１つであるＥＦＵＳＥメモリで実現されてよいが、必ずしもそれに限定されるものではない。
【００５８】
ＣＰＵ１３０は、第３メモリ１４０に保存された設定値に応じて、第１メモリ１１０に保存された複数の暗号化キーのうちいずれかを選択するかを決定する。チップシステム１００またはチップシステム１００の搭載された電子装置の製作者は使用中のキー（ｋｅｙ）が露出された場合、第３メモリ１４０の内容を変更してキーを変更する。
【００５９】
本実施形態によると、１つの暗号化キーが露出されるとしても、チップシステムそのものを取り替える必要がなく、第３メモリ１４０にプログラミングされる設定値のみを変更して簡単に対処することができるようになる。
【００６０】
第２メモリ１２０及びＣＰＵ１３０の他の動作については、上述の第１実施形態で説明した内容と同様であるため、繰り返し説明は省略する。
【００６１】
図４は、チップシステム１００及び非揮発性メモリ２００の搭載されたメインボード３００の構成を示すブロック図である。図４によると、チップシステム１００と非揮発性メモリ２００とは、１つのメインボード３００上に搭載されてよい。メインボード３００内には、チップシステム１００及び非揮発性メモリ２００の他にも、多様な部品が搭載されてよいが、説明の便宜上それに対する図示は省略する。
【００６２】
チップシステム１００は、第１メモリ１１０と、第２メモリ１２０と、ＣＰＵ１３０と、第３メモリ１４０と、バス１５０とを含む。図４によると、ＣＰＵ１３０は、第１ないし第３メモリ１１０、１２０、１４０をはじめとする各種構成要素とバス１５０を介して接続されてよい。バス１５０は、アドレスバス、データバス、制御バス（ｃｏｎｔｒｏｌ  ｂｕｓ）等のような多様なバスを含んでよい。
【００６３】
図３及び図４に示すチップシステム１００は、第３メモリ１４０を用いて暗号化方式を適切に選択することができる。
【００６４】
図５は、図３または図４に示すチップシステムにおけるセキュアブート方法を説明するためのフローチャートである。図５によると、チップシステム１００の搭載された電子装置がパワーオンになると（Ｓ５１０）、チップシステム１００のＣＰＵ１３０は、第１メモリ１１０にアクセスし（Ｓ５２０）、初期化データを確認する。第１メモリ１１０へのアクセスは、リセットベクトルからフェッチされるインストラクションによって行われてよい。ＣＰＵ１３０は、確認された初期化データによって基本ハードウェアを初期化する初期化動作を行う（Ｓ５３０）。初期化動作の例については、上述の図２に対する説明で具体的に記載しているため、繰り返し説明は省略する。一方、ＣＰＵ１３０は、セキュアブートが行われる間には、外部ポートを介したＣＰＵ１３０のアクセスアを禁止することもできる。
【００６５】
初期化が行われると、ＣＰＵ１３０は第３メモリ１４０に保存された選択値を確認し（Ｓ５４０）、第１メモリ１１０に保存された複数の暗号化キーのうち、選択値に対応する暗号化キーを選択する（Ｓ５５０）。ＣＰＵ１３０は、暗号化キーが選択されると、非揮発性メモリ２００に保存された暗号化されたデータを暗号化キーを用いて復号化し、認証を行う（Ｓ５６０）。復号化されたデータは第２メモリ１２０及びＤＤＲメモリ等にコピーされる。
【００６６】
復号化は、上述のように、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式、ＴＤＥＳ（Ｔｒｉｐｌｅ  ＤＥＳ）方式、ＡＥＳ（高級暗号標準：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号化方式、ＳＥＥＤアルゴリズム、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）方式、ＡＲＩＡ方式等のような多様な暗号化アルゴリズムによって行われてよい。
【００６７】
認証は、データの中で認証コードの有効性を検証する過程である。認証のためには、ＨＭＡＣ−ＳＨＡ２５６、ＨＭＡＣ−ＳＨＡ１、ＨＭＡＣ−ＭＤ５等のような認証アルゴリズムが使用されてよい。これらの認証アルゴリズムは、１つの秘密キーを共有するキー基盤の認証アルゴリズムとして、特に、ＨＭＡＣ手続きは、ＲＦＣ  ２０４（メッセージ認証コードのためのキーハッシング（Ｋｅｙｅｄ−Ｈａｓｈｉｎｇ））に定義されている。このように、復号化のための暗号化キー値、認証のためのキー値等は第１メモリ１１０に保存されていることは上述の通りである。
【００６８】
ＣＰＵ１３０は、有効ではない認証コードと判別されたり、復号化に失敗すると（Ｓ５７０）、プログラムの実行を停止し、無限ループに陥るようになる（Ｓ５９５）。一方、復号化及び認証に成功して全てのシステム準備が完了すると、ＣＰＵ１３０はアドレスマップを変更する（Ｓ５８０）。それにより、第１メモリ１１０に対するアクセスが試みられたとき、第２メモリ１２０に対するアクセスに強制的に切り替えられる。
【００６９】
その後は、ＣＰＵ１３０は、第２メモリ１２０にコピーされている復号化されたデータを用いてブートを行う（Ｓ５９０）。ブート過程は、既に上述しているため、繰り返し説明は省略する。
【００７０】
一方、以上のような実施形態では、セキュアブートを行うチップシステムの構成及び動作について説明したが、チップシステムの使用環境に応じてセキュアブート及びノーマルブートを選択的に行うことができる実施形態で実現されてよい。
【００７１】
図６は、本発明の更に別の実施形態に係るチップシステムにおけるブート方法を説明するためのフローチャートである。本実施形態によると、非揮発性メモリ２００には暗号化されたデータ、非暗号化されたデータが同時に保存されてよい。
【００７２】
このような状態で、電子装置がパワーオンになると（Ｓ６１０）、ＣＰＵ１３０はセキュアブートを行うか、ノーマルブートを行うかを判断する（Ｓ６１５）。すなわち、パワーオンになると、ＣＰＵ１３０はリセットベクトルに行ってインストラクションをフェッチ（ｆｅｔｃｈ）する。リセットベクトルは、第１メモリ１１０または第２メモリ１２０に指定されていてよい。すなわち、第１メモリ１１０と第２メモリ１２０とは、同一のアドレス（例えば、０ｘｆｆｆｆ００００）にバス１５０によってマッピングされている。ＣＰＵ１３０は、リセットベクトルでアドレス０ｘｆｆｆｆ００００を確認すると、第１メモリ１１０及び第２メモリ１２０のうち、指定されたメモリにアクセスするようになる。メモリは、ＣＰＵ１３０に接続された外部ピンを介して入力される指定値や第３メモリ１４０に保存された指定値によって指定されてよい。
【００７３】
第２メモリ１２０が指定された場合には、セキュアブートではないノーマルブートを行うと判断する（Ｓ６１５：Ｎ）。この場合、ＣＰＵ１３０は、非揮発性メモリ２００にアクセスして非暗号化されたデータを用いてノーマルブートを行う（Ｓ６２０）。
【００７４】
一方、第１メモリ１１０が指定された場合には、セキュアブートを行うと判断する（Ｓ６１５：Ｙ）。セキュアブートを行う場合には、ＣＰＵ１３０は第１メモリ１１０にアクセスし（Ｓ６２５）、初期化データを検出する（Ｓ６３０）。それに先立ち、ＣＰＵ１３０は外部ポートを通じたＣＰＵ１３０のアクセスを強制的に禁止させることができる。
【００７５】
そして、初期化データを用いて各種基本ハードウェアを初期化させる（Ｓ６３５）。そして、非揮発性メモリ２００に保存された暗号化されたデータを第２メモリ１２０にローディングさせる。
【００７６】
その後、ＣＰＵ１３０は、セキュアブートモードか否かを判断することもできる（Ｓ６３５）。すなわち、上述のように、外部ピン（以下、第１外部ピン）や第３メモリ１４０を用いて、第１メモリ１１０を指定するのとは別に、セキュアブートを行うか否かを選択することができる。例えば、非揮発性メモリ２００に暗号化されていないデータを保存するとしても、第１メモリ１１０を用いてブートを行うことができる。この場合、復号化過程は省略される。セキュアブートモードか否かは、第３メモリ１４０内の更に別の指定値や、更に別の外部ピン（以下、第２外部ピン）を用いて設定することができる。
【００７７】
セキュアブートモードが設定された状態なら、ＣＰＵ１３０は第１メモリ１１０に保存された暗号化キーを用いて復号化及び認証を行う（Ｓ６４０）。復号化及び認証は、それぞれ上述のような多様なアルゴリズムに応じて行われてよい。
【００７８】
復号化及び認証のうち少なくとも一方が失敗すると（Ｓ６４５：Ｎ）、ＣＰＵ１３０は無限ループに陥るようになる（Ｓ６６０）。一方、復号化及び認証に成功すると（Ｓ６４５：Ｙ）、アドレスマップを変更し（Ｓ６５０）、その後のステップでは第１メモリ１１０の代わりに第２メモリ１２０を用いる動作が行われることができるようにする。それにより、第１メモリ１１０に保存されたコードは、アドレスマップ変更後は、アクセスができなくなる。このとき、ＪＴＡＧでもＣｏｄｅ及びＫｅｙ値の追跡が不可能であり、アクセス時には０ｘｆｆｆｆｆｆと読まれるように設計されてよい。
【００７９】
アドレスマップが変更されてからは、第２メモリ１２０にコピーされたデータ（例えば、１次ブートローダー（１ｓｔ  ｂｏｏｔｌｏａｄｅｒ））にジャンプ（ｊｕｍｐ）して、それを用いたブートを行う（Ｓ６５５）。１次ブートローダーとは、２次ブートローダーをメモリにローディングするためのブートローダーを意味する。ユーザインターフェース提供及びカーネルをローディングするブートローダーの中核機能は、２次ブートローダーで行われる。空間不足を考慮して、ブートローダーを１次及び２次ブートローダーに区分して実現することができる。
【００８０】
以上で説明したように、チップシステムは多様な形態で実現され、セキュアブートを行うことができる。
【００８１】
図７は、チップシステムの細部構成の一例を説明するための図である。図７によると、チップシステム１００は、第１メモリ１１０と、第２メモリ１２０と、ＣＰＵ１３０と、第３メモリ１４０と、バス１５０の他にも、ＤＤＲコントローラ１８５及びその他の多様な回路部１５５、１６０、１６５、１７０、１７５、１８０を含んでよい。図７においては、第１メモリ１１０がＭＡＳＫ  ＲＯＭで実現され、第２メモリ１２０はＳＲＡＭで実現され、第３メモリ１４０はＥＦＵＳＥメモリで実現された場合を示す。第３メモリ１４０は、暗号化キーを選択するための設定値（Ｋｅｙ  １、２、３）とセキュアブート有無を設定するための指定値（ＭＡＳＫ  ＲＯＭ）等が保存されてよい。
【００８２】
各回路部１５５、１６０、１６５、１７０、１７５、１８０は、レジスタ、論理回路、マルチプレクサ等のような多様な素子の組み合わせからなってよい。第１回路部１５５は、第１レジスタ１５５−１を含む。ＣＰＵ１３０は、第１回路部１５５を用いて外部ポートを介したＣＰＵアクセスを制御することができる。具体的には、第１回路部１５５は、第１レジスタ１５５−１に書き込まれた値に対応するＪＴＡＧ＿ＥＮ信号をＣＰＵ１３０に入力する。
【００８３】
すなわち、ブートイベントが発生すると、第４回路部１７０は外部ピンを介して入力される値と、第３メモリ１４０を介して入力される指定値に対するＯＲ演算結果を出力する。ブートイベントは、チップシステムまたはチップシステムの搭載された装置がパワーンオンになる場合を含む。セキュアブートを行おうとする場合、第３メモリ１４０には１が記録されてよく、それにより、第４回路部１７０では１が出力される。第４回路部１７０の出力値は第２回路部１６０及び第３回路部１６５にそれぞれ入力される。
【００８４】
第２回路部１６０及び第３回路部１６５は、それぞれ第１メモリ１１０に対するアクセスを制御するための第２及び第３レジスタ１６０−１、１６５−１を含む。第２回路部１６０に入力される第４回路部１７０の出力値１は反転される。
【００８５】
よって、第２回路部１６０には０が入力される。第２回路部１６０は、ＯＲゲートを用いて入力値０と第２レジスタ１６０−１の保存値のＯＲ演算値とを出力する。初期状態で、第２レジスタ１６０−１には０のような値が記録され得るため、結果的に第２回路部１６０は第１回路部１５０に０を出力する。
【００８６】
第１回路部１５０では第１レジスタ１５５−１を含む。第１回路部１５０は第１レジスタ１５５−１に保存された値及び外部値を選択的に出力するマルチプレクサを含む。第２回路部１６０で０が入力されると、第１回路部１５０はＣＰＵアクセスをディセーブルさせるための信号をＣＰＵ１３０に出力する。それにより、外部ポートを介するＣＰＵアクセスが予め設定された時間、例えばパワーンオンの後にセキュアブートが行われる間に制限されてよい。
【００８７】
ＣＰＵ１３０はパワーオンになると、第３メモリ１４０に保存された選択値または外部ピンを介して入力される入力値によって指定されたメモリを確認する。確認の結果、指定されたメモリが第１メモリ１１０であれば、ＣＰＵアクセスをディセーブルさせるための第１値（例えば、１）を第１レジスタ１５５−１に保存する。
【００８８】
一方、ＣＰＵ１３０は、システム準備が完了すると、ＣＰＵアクセスをイネーブルさせるための第２値（例えば、０）を第１レジスタ１５５−１に保存する。なお、第２回路部１６０内の第２レジスタ１６０−１の保存値も変更する。
【００８９】
具体的に、ＣＰＵ１３０はシステム準備が完了すると、第１メモリ１１０に対するアクセスをディセーブルさせるための制御値（例えば、１）を第２レジスタ１６０−１に記録し、第１メモリ１１０の全領域データを読み込めないようにする。第２レジスタ１６０−１の保存値が１に変更されると、第２回路部１６０の出力値は１に変更される。
【００９０】
なお、ＣＰＵ１３０は、第１メモリ１１０に対するアクセスを第２メモリ１２０に対するアクセスに変更させるための制御値（例えば、１）を第３レジスタ１６５−１に記録する。この場合、ＣＰＵ１３０が第１メモリ１１０に接近する際、第２メモリ１２０に接近されるように自動的に変更される。第２メモリ１２０には、復号化されたコードが予めコピーされており、ＣＰＵ１３０はこれを用いることができる。
【００９１】
第４回路部１７０は、外部ピンまたは第３メモリ１４０を介して入力される指定値を提供するＯＲゲートを含むことができる。ＣＰＵ１３０は、第４回路部１７０を介して入力される指定値に応じてセキュアブート有無を判断することができる。
【００９２】
マルチプレクサ１７５は、第２メモリ１２０または第２回路部１６０から入力される値を選択的にバス１５０に入力する。
【００９３】
フラッシュブートローダー１８０は、ブートローダーを保存するためのフラッシュメモリを意味する。フラッシュブートローダー１８０は、ノーマルブートを行う際、非揮発性メモリ２００に保存されたプライベートブートローダーをローディングする。ＣＰＵ１３０は、フラッシュブートローダー１８０を用いてノーマルブートを行う。
【００９４】
ＤＤＲコントローラ１８５は、外部のＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）メモリ４００に対するデータＲ／Ｗを制御するためのコントローラである。
【００９５】
以上のように、チップシステム１００は多様な形態で実現され、非揮発性メモリ２００及びＤＤＲメモリ３００等と一緒に使用されてよい。
【００９６】
図８は、第１メモリ１１０に保存されるデータのレイアウトの一例を示す。図８によると、第１メモリ１１０には認証コード９１０、セキュアブートローダーヘッダ９２０、第１ブートローダー９３０等が保存される。
【００９７】
認証コード９１０は、多様な暗号化アルゴリズムによって暗号化されて保存されてよい。例えば、上述のように、ＨＭＡＣ−ＳＨＡ２５６、ＨＭＡＣ−ＳＨＡ１、ＨＭＡＣ−ＭＤ５等のような認証アルゴリズム等によって暗号化されて保存されてよい。
【００９８】
セキュアブートローダーヘッダ９２０は、電子署名情報、オフセット値、サイズ、日付情報、ユーザＩＤ等を含んでよい。図８において、セキュアブートローダーヘッダ９２０は、上述のように、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式、ＴＤＥＳ（Ｔｒｉｐｌｅ  ＤＥＳ）方式、ＡＥＳ（高級暗号標準：Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号化方式、ＳＥＥＤアルゴリズム、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）方式、ＡＲＩＡアルゴリズム等のような多様な暗号化アルゴリズムのいずれかによって暗号化されて保存されてよい。
【００９９】
第１ブートローダー９３０も、内部セキュリティ性のために暗号化された状態で保存されてよい。
【０１００】
図８において、ブートローダー９３０は、内部のセキュリティ性のために複数のＮＯＰ指示に応じて開始されるように実現されてよい。
【０１０１】
図９は、チップシステム１００のメモリマップの一例を示す。図９によると、第１メモリ１１０には特定アドレスにプライベートブートローダーが保存されている。プライベートブートローダーはノーマルブート時に使用されてよい。
【０１０２】
一方、セキュアブートが行われる場合、ＣＰＵ１３０は非揮発性メモリ２００に保存された第１ブートローダーをストーンレジスタ内の領域１９１や第２メモリ１２０内の特定領域１９２にローディングさせる。そして、暗号化キーを用いて第１ブートローダーを復号化した後、復号化された第１ブートローダーを第２メモリ１２０内の特定領域１２１にコピー（ｃｏｐｙ）する。第２メモリ１２０には読み込み／書き込み動作のためのＲＷセクション１２２、汎用領域１２３等のように多様な領域が設けられてよい。
【０１０３】
以上のように、チップシステムは多様な内部メモリを用いて外部非揮発性メモリ２００の暗号化されたデータを処理することができる。
【０１０４】
なお、電子装置の生産者または電子装置を使用するサービス事業者は電子装置内部に自分だけが知っている秘密キーを安全に保存することを望む場合がある。秘密キーは、多様な用途に使用することができる。例えば、秘密キーは、カーネルの一部領域または全領域を暗号化したり、電子装置と生産者または電子装置とサービス事業者の間で安全な通信チャネルを作るのに使用することもできる。チップシステム１００内の第１メモリ１１０や第３メモリ１４０をＯＴＰメモリで実現し、上述の秘密キーを保存することもできる。
【０１０５】
以上のような多様な実施形態に係るチップシステムは、多様な類型の電子装置に使用されてよい。一例として、プリンタや複合機、ファクシミリ、スキャナ等のような画像形成装置に使用されてよい。
【０１０６】
本発明の一実施形態によると、画像形成装置は各種消耗品ユニット及び制御部を含んでよい。制御部は、消耗品ユニットを用いて画像形成ジョブを行うことができる。消耗品ユニットがＣＲＵＭチップが装着された形態の場合には、制御部は画像形成ジョブの実行によってＣＲＵＭチップに記録されたデータをアップデートさせることができる。
【０１０７】
制御部は、非揮発性メモリ及びチップシステムを含んでよい。非揮発性メモリには、暗号化されたデータが記録されてよい。チップシステムは、画像形成装置がターンオンされると、非揮発性メモリに保存された暗号化されたデータを用いてセキュアブートを行い、セキュアブートが完了するとユーザ命令に応じて画像形成装置を制御することができる。
【０１０８】
図１０は、画像形成装置の細部構成の一例を示すブロック図である。図１０によると、画像形成装置１０００は、制御部１１００、保存部１２００、ユーザインターフェース部１３００、通信部１４００、電源供給部１５００、複数の消耗品ユニット１６００−１〜１６００−ｎを含む。
【０１０９】
保存部１２００は、ＨＤＤやその他のストレージを含んでよい。保存部１２００は、必ずしも内蔵メモリのみで実現されるものではなく、画像形成装置１０００に着脱可能な外付けメモリで実現されてよい。
【０１１０】
ユーザインターフェース部１３００は、ユーザから各種選択命令を受信するための部分である。ユーザインターフェース部１３００は、ディスプレイパネル及び少なくとも１つ以上のボタンを含んでよい。この場合、ディスプレイパネルはタッチスクリーンで実現されてよい。ユーザインターフェース部１３００は、各種ＵＩ画面を提供し、ユーザはＵＩ画面を直接タッチしたり、ユーザインターフェース部１３００に具備されたボタンを操作して各種ユーザ命令を入力することができる。
【０１１１】
通信部１４００は、ネットワークまたはローカルで外部デバイスと接続され、データ及びコマンドを受信することができる。すなわち、通信部１４００は、ホストパソコンとの間でローカルインターフェースで接続されたり、ネットワークと有線または無線で接続されて複数個の外部デバイスと接続されてよい。無線通信規格としては、米国のＩＥＥＥ（米国電気電子学会）８０２．１１規格、欧州のハイパーＬＡＮ（ｈｙｐｅｒ  ＬＡＮ）規格、日本のＭＭＡＣ−ＰＣ規格等が使用されてよい。その他に、Ｗｉ−Ｆｉやブルートゥース、Ｚｉｇｂｅｅ（登録商標）、ＮＦＣ（Ｎｅａｒｆｉｅｌｄ  Ｆｒｅｑｕｅｎｃｙ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）等のような多様な通信方式によって通信を行うことができる。
【０１１２】
電源供給部１５００は、画像形成装置１０００内の各構成要素に対して電源を供給する役割を担う。具体的には、電源供給部１５００は、外部から常用交流電源を受け（ＡＣ＿ＩＮ）、トランスフォーマ（ｔｒａｎｓｆｏｒｍｅｒ）、インバータ（ｉｎｖｅｒｔｅｒ）、整流器等のような素子を用いて、各構成要素に適した電位レベルの直流電源に変換して出力（ＤＣ＿ＯＵＴ）することができる。
【０１１３】
制御部１１００は、チップシステム（ＳｏＣ）１００及び非揮発性メモリ２００を含む。それにより、画像形成装置１０００がターンオンされると、制御部１１００はセキュアブートを行う。セキュアブートは、上述のように多様な方式で行われてよい。セキュアブートを行うチップシステム１００の構成及び動作の多様な例については、既に上述において具体的に説明しているため、繰り返し説明は省略する。
【０１１４】
ブートが完了すると、制御部１１００は通信部１４００を介して接続された外部デバイスのデータ及びコマンドや、ユーザインターフェース１３００を介して入力されたユーザ選択命令等に応じて、画像形成装置セット全般を制御する。
【０１１５】
具体的には、ホストパソコンに設置されたプリンタドライバまたはアプリケーションで印刷命令が実行されると、ホストパソコンのプリンタドライバは当該文書を所定のプリント言語に変換した印刷データを生成する。制御部１１００は、このような印刷データを通信部１４００を介して受信する。制御部１１００は、ハーフトーンテーブル（Ｈａｌｆｔｏｎｅ  Ｔａｂｌｅ）を用いて、印刷データを“０”と“１”で構成されたビットマップイメージに変換した後、複数の消耗品ユニット１６００−１〜１６００−ｎを制御してビットマップイメージを用紙上に印刷する。
【０１１６】
消耗品ユニット１６００−１〜１６００−ｎは、画像形成装置１０００の種類に応じて多様に設けられてよい。一例として、レーザ複合機の場合なら、消耗品ユニット１６００−１〜１６００−ｎは、給紙部、帯電部、露光部、現像部、転写部、定着部、排紙部、スキャニング部、スキャンモータ等で構成されてよい。これらの各消耗品ユニット１６００−１〜１６００−ｎのうち少なくとも一部は、ＣＲＵＭチップ１６１０−１〜１６１０−ｎを含んでよい。
【０１１７】
ＣＲＵＭチップ１６１０−１〜１６１０−ｎは、メモリのみで実現されてよく、メモリ及びＣＰＵを含む形態で実現されてよい。なお、制御部１１００とは別にＯ／Ｓを有し、そのＯ／Ｓを用いて自主的に初期化を行うこともできる。ＣＲＵＭチップ１６１０−１〜１６１０−ｎは、制御部１１００との間で認証を行い、認証に成功すると、暗号化データ通信を行うことができる。その他にも、ＣＲＵＭチップ１６１０−１〜１６１０−ｎは多様な形態で構成されてよい。
【０１１８】
図１１は、ＣＲＵＭチップの細部構成の一例を示すブロック図である。図１１によると、本ＣＲＵＭチップ１６１０は、Ｏ／Ｓメモリ１６１１、非揮発性メモリ１６１２、揮発性メモリ１６１３、ＣＰＵ１６１４、クリプトユニット（Ｃｒｙｐｔｏ  Ｕｎｉｔ）１６１５、テンパー検出器（ｔｅｍｐｅｒ  ｄｅｔｅｃｔｏｒ）１６１６、インターフェース部１６１７を含む。図示はしていないが、ＣＲＵＭチップ１６１０内には、クロック信号を出力するクロック部（図示せず）や、認証のためのランダム値を生成するランダム値生成部（図示せず）等が更に含まれてよく、一部の構成要素  は削除されてよく、他の構成要素に含まれてよい。
【０１１９】
Ｏ／Ｓメモリ１６１１には、消耗品ユニット１６１０を駆動させるためのＯ／Ｓが保存される。非揮発性メモリ１６１２１には、消耗品ユニット、ＣＲＵＭチップ等に関連する各種データ及びプログラムが保存されてよい。具体的には、電子署名情報や、各種暗号化プログラムコード、消耗品ユニットの状態情報（例えば、トナー残量情報、交換時期情報、残り印刷枚数情報等）、固有情報（例えば、製造会社情報、製造日時情報、シリアルナンバー、製品モデル名）、Ａ／Ｓ情報等が保存されてよい。ＣＰＵ１６１４は、非揮発性メモリ１６１２に保存されたプログラム及びデータを揮発性メモリ１６１３にローディングさせ、使用することができる。
【０１２０】
クリプトユニット１６１５は、暗号化アルゴリズムをサポートし、ＣＰＵ１６１４が画像形成装置の本体に設けられた制御部１１００との間で認証や暗号化された通信を行うことができるようにする。具体的には、クリプトユニット１６１５は、上述の多様な暗号化アルゴリズムを使って認証または暗号化データ通信を行うことができる。
【０１２１】
テンパー検出器１６１６は、多様な物理的なハッキングの試み、すなわち、テンパーリングを防御するためのユニットである。具体的には、電圧、温度、圧力、光、周波数等の動作環境に対してモニタリングをし、Ｄｅｃａｐのような試みがある場合、データを消したり物理的に遮断する。この場合、テンパー検出器１６１６は、別途の電源を具備することもできる。
【０１２２】
このように、クリプトユニット１６１５及びテンパー検出器１６１６を備えることで、ハードウェアやソフトウェア全てを用いる体系的なデータセキュリティが可能になる。
【０１２３】
インターフェース部１６１７は、ＣＰＵ１６１４及び制御部１１００を接続させる役割を担う。具体的には、シリアルインターフェースや無線インターフェースで実現されてよい。
【０１２４】
以上のように、チップシステムは、画像形成装置に搭載され、セキュアブートを行うことができる。それにより、ブート過程を変更したり、消耗品ユニットのデータを第三者がハッキングして使用することを防止することができる。その他にも、チップシステムは画像形成装置以外の多様な電子装置に搭載されて使用されてよい。
【０１２５】
このようなセキュアブート動作は、非一時的な読み取り可能な媒体に保存されたプログラムによって行われてよい。非一時的な読み取り可能な媒体とは、レジスタやキャッシュ、メモリ等のような短い間データを保存する媒体ではなく、半永久的にデータを保存し、機器によって読み取り（ｒｅａｄｉｎｇ）が可能な媒体を意味する。具体的には、上述の多様なアプリケーションまたはプログラムは、ＣＤやＤＶＤ、ハードディスク、ブルーレイディスク、ＵＳＢ、メモリカード、ＲＯＭ等のような非一時的な読み取り可能な媒体に保存されて提供されてよい。
【０１２６】
具体的には、チップシステム内の第１メモリに保存された初期化データを用いて初期化動作を行う初期化ステップと、初期化動作が行われると、第１メモリに保存された複数の暗号化キーの中の１つを用いて、非揮発性メモリに保存された暗号化されたデータを復号化するステップと、復号化されたデータをチップシステム内の第２メモリに保存するステップと、第２メモリに保存されたデータを用いてブートを行うステップとを順次に行うためのプログラムコードが保存された非一時的な読み取り可能な媒体が使用されてよい。
【０１２７】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明は以上の実施形態に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的趣旨の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１２８】
１００  チップシステム
１１０  第１メモリ
１２０  第２メモリ
１３０  ＣＰＵ
１４０  第３メモリ
１５０  バス
【図１】
2016511848.tif 000003
【図２】
2016511848.tif 000004
【図３】
2016511848.tif 000005
【図４】
2016511848.tif 000006
【図５】
2016511848.tif 000007
【図６】
2016511848.tif 000008
【図７】
2016511848.tif 000009
【図８】
2016511848.tif 000010
【図９】
2016511848.tif 000011
【図１０】
2016511848.tif 000012
【図１１】
2016511848.tif 000013
【国際調査報告】
2016511848.tif 000014
2016511848.tif 000015