ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とする方法。請求項1に記載の方法であって、前記初期化コードにジャンプして実行するステップより後に、前記RAMのセキュア領域を設定するステップと、仮想計算機コードを検証するステップと、前記仮想計算機コードを前記RAMのセキュア領域にロードするステップと、前記仮想計算機コードにジャンプして実行するステップと、を有することを特徴とする方法。ROMのブートコードを実行するステップと、RAMのセキュア領域を設定するステップと、初期化コードを検証するステップと、初期化コードを前記RAMのセキュア領域にロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とする方法。請求項3に記載の方法であって、前記初期化コードにジャンプして実行するステップより後に、前記RAMとは異なるRAMのセキュア領域を設定するステップと、仮想計算機コードを検証するステップと、前記仮想計算機コードを前記RAMとは異なるRAMのセキュア領域にロードするステップと、前記仮想計算機コードにジャンプして実行するステップと、を有することを特徴とする方法。請求項3に記載の方法であって、前記初期化コードにジャンプして実行するステップより後に、仮想計算機コードを検証するステップと、前記仮想計算機コードを前記RAMのセキュア領域にロードするステップと、前記仮想計算機コードにジャンプして実行するステップと、を有することを特徴とする方法。請求項1から5に記載の方法であって、前記初期化コードは暗号化されており、前記初期化コードにジャンプして実行するステップより前に、前記初期化コードを復号するステップを有することを特徴とする方法。請求項1から6に記載の方法であって、前記仮想計算機コードは暗号化されており、前記仮想計算機コードにジャンプして実行するステップより前に、前記仮想計算機コードを復号するステップを有することを特徴とする方法。ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとをコンピュータに実行させるためのプログラム。ROMのブートコードを実行する手段と、初期化コードを検証する手段と、初期化コードをRAMにロードする手段と、前記初期化コードにジャンプして実行する手段とを有することを特徴とする集積回路。ROMのブートコードを実行する手段と、初期化コードを検証する手段と、初期化コードをRAMにロードする手段と、前記初期化コードにジャンプして実行する手段とを有することを特徴とするシステム。しかしながら、従来の構成では、初期化コード1006または仮想計算機コード1012が悪意のあるハッカーなどによって改竄されることにより、セキュアブートの信頼性低下が懸念される。例えば、記憶装置1004に記憶された初期化コード1006または仮想計算機コード1012の認証が成功したとしても、RAM1003にロードする前に、記憶装置1004に記憶された初期化コード1006または仮想計算機コード1012を改竄されることが懸念される。また、RAM1003にロードした初期化コード1006または仮想計算機コード1012が改竄されることも懸念される。本発明は、従来の課題を解決するもので、強固なセキュアブートを実現するための方法およびシステムを提供することを目的とする。上記課題を解決するための、請求項1に記載の発明は、ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とする方法である。請求項2に記載の発明は、請求項1に記載の方法であって、前記初期化コードにジャンプして実行するステップより後に、前記RAMのセキュア領域を設定するステップと、仮想計算機制御コードを検証するステップと、前記仮想計算機制御コードを前記RAMのセキュア領域にロードするステップと、前記仮想計算機制御コードにジャンプして実行するステップとを有することを特徴とする方法である。請求項3に記載の発明は、ROMのブートコードを実行するステップと、RAMのセキュア領域を設定するステップと、初期化コードを検証するステップと、初期化コードを前記RAMのセキュア領域にロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とする方法である。請求項4に記載の発明は、前記初期化コードにジャンプして実行するステップより後に、前記RAMとは異なるRAMのセキュア領域を設定するステップと、仮想計算機制御コードを検証するステップと、前記仮想計算機制御コードを前記RAMとは異なるRAMのセキュア領域にロードするステップと、前記仮想計算機制御コードにジャンプして実行するステップとを有することを特徴とする方法である。請求項5に記載の発明は、請求項3に記載の方法であって、前記初期化コードにジャンプして実行するステップより後に、仮想計算機制御コードを検証するステップと、前記仮想計算機制御コードを前記RAMのセキュア領域にロードするステップと、前記仮想計算機制御コードにジャンプして実行するステップとを有することを特徴とする方法である。請求項6に記載の発明は、前記初期化コードは暗号化されており、前記初期化コードにジャンプして実行するステップより前に、前記初期化コードを復号するステップを有することを特徴とする方法である。請求項7に記載の発明は、前記仮想計算機制御コードは暗号化されており、前記仮想計算機制御コードにジャンプして実行するステップより前に、前記仮想計算機制御コードを復号するステップを有することを特徴とする方法である。請求項8に記載の発明は、ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とするプログラムである。請求項9に記載の発明は、ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とする集積回路である。請求項10に記載の発明は、ROMのブートコードを実行するステップと、初期化コードを検証するステップと、初期化コードをRAMにロードするステップと、前記初期化コードにジャンプして実行するステップとを有することを特徴とするシステムである。本発明によれば、仮想計算機コード1012を仮想計算機ハード1008と仮想計算機制御コード1009で実現し、あらかじめ初期化コード1006または仮想計算機制御コード1009を暗号化して記憶装置1004に保存しておく。また、セキュアブートのシーケンスにおいて、RAM1003のセキュア領域を設定し、初期化コード1006または仮想計算機制御コード1009を復号してRAM1003のセキュア領域にロードすることによって、悪意のあるハッカーなどによる意図した改竄が困難になる効果がある。以下本発明の実施の形態について、図面を参照しながら説明する。実施の形態1図1は、本発明の実施の形態1におけるセキュアブートのブロック図であり、1001はCPU、1002はROMReadOnlyMemory、1003はRAMRandomAccessMemory、1004はハードディスクやフラッシュなどの記憶装置、1005はROM1002に記憶したブートコード、1006は記憶装置1004に記憶した初期化コード1006である。ブートコード1005は、システムがブートした際に最初に実行するソフトウェアである。初期化コード1006は、ブートコード1005から呼び出されるソフトウェアであり、ハードウェアの初期化などを実行するソフトウェアである。図6は、本発明の実施の形態1におけるセキュアブートの処理の流れを示すフローチャートである。システムがブートした際に、ステップS1001でROM1002のブートコード1005を実行する。ステップS1002でブートコード1005が記憶装置1004の暗号化された初期化コード1006を検証する。暗号の具体例として、AESアルゴリズムを用いる方法がある。また、検証の具体例として、例えばブートコード1005が暗号化された初期化コード1006のハッシュ値を計算し、あらかじめブートコード1005が保持しておいた期待ハッシュ値と比較し、ハッシュ値が同一であれば認証が成功したとみなす方法がある。ステップS1003で、暗号化された初期化コード1006が正しくない場合はステップS1008でブートを停止する。ステップS1003で、暗号化された初期化コード1006が正しい場合は、ステップS1004で暗号化された初期化コード1006を復号する。復号の具体例として、ブートコード1005の一部にAESプログラムと鍵を保持しておき、実行する方法がある。ステップS1005で、ブートコード1005が初期化コード1006をRAM1003にロードし、ステップS1006でブートコード1005がRAM1003の初期化コード1006にジャンプする。ステップS1007で初期化コード1006を実行し、ハードウェアの初期化などを行う。かかる構成によれば、あらかじめ初期化コード1006を暗号化して記憶装置1004に保存しておくことによって、悪意のあるハッカーなどによる意図した改竄が困難になる効果がある。記憶装置1004上の初期化コード1006は暗号化による秘匿性が確保される。なお、システムは必ずROM1002上のブートコード1005から起動するため、ブートコード1005の完全性が担保され、悪意のあるハッカーなどによる意図した改竄が困難になる効果がある。なお、本実施の形態において、検証方法としてハッシュを利用したが、例えばデジタル署名などコードの完全性を検証する方法であれば何でもよい。また、暗号化された初期化コード1006を検証しているが、初期化コード1006を復号してから検証してもよい。また、初期化コード1006が正しくない場合はステップS1008でブートを停止するが、ブートを停止しなくてもよいし、再ブートしてもよいし、初期化コード1006が正しくないことを示すフラグをレジスタに設定しておき、システムがブート後にレジスタを参照してからシステムを停止してもよい。また、暗号の具体例として、AESアルゴリズムを利用したが、秘匿性を向上させる方法であれば何でもよい。実施の形態2図2は、本発明の実施の形態2におけるセキュアブートのブロック図である。図2において、図1と同じ構成要素については同じ符号を用い、説明を省略する。1007はハッシュ検証や暗復号処理を行う暗号エンジン、1008はハイパーバイザとも呼ばれ、複数の異なるOSを並列に実行できるようにするハードウェアである仮想計算機ハード、1009は仮想計算機ハード1008を制御するためのソフトウェアである仮想計算機制御コードである。図9は、本発明の実施の形態2におけるセキュアブートを実行することによって立ち上がったシステムのソフトウェア構成を示す図である。図9において、図11と同じ構成要素については同じ符号を用い、説明を省略する。ハードウェア2005は、図2のCPU1001、ROM1002、RAM1003、記憶装置1004および暗号エンジン1007を含む。仮想計算機ハード2006は、図2の仮想計算機ハード1008に相当する。図7は、本発明の実施の形態2におけるセキュアブートの処理の流れを示すフローチャートである。システムがブートした際に、ステップS2001でROM1002のブートコード1005を実行する。ステップS2002でブートコード1005が暗号エンジン1007を使って記憶装置1004の初期化コード1006を検証する。暗号エンジン1007は、例えば初期化コード1006に対する期待ハッシュ値を保持しており、初期化コード1006のハッシュ値を生成して比較することにより検証する。ステップS2003で、初期化コード1006が正しくない場合はステップS2013でブートを停止する。ステップS2003で、初期化コード1006が正しい場合は、ステップS2004でブートコード1005が初期化コード1006をRAM1003にロードする。ステップS2005でブートコード1005がRAM1003の初期化コード1006にジャンプする。ステップS2006で初期化コード1006を実行する。ステップS2007で初期化コード1006がRAM1003のセキュア領域を設定する。RAM1003には、特定のCPU、デバイス、OS、アプリが特定のアドレスにアクセス可能なように、RAMアクセス制限機能が付いており、例えばセキュアモードのセキュアアプリ2002とセキュアOS2004のみがアクセス可能なセキュア領域を設定することが出来る。具体的な設定方法として、例えばRAMアクセス制限機能が持つセキュア領域を設定可能な専用レジスタに、セキュア領域の先頭アドレスと末尾アドレスを設定する方法がある。ステップS2008で初期化コード1006が暗号エンジン1007を使って記憶装置1004の仮想計算機制御コード1009を検証する。ステップS2009で、仮想計算機制御コード1009が正しくない場合はステップS2013でブートを停止する。ステップS2009で、仮想計算機制御コード1009が正しい場合は、ステップS2010で、初期化コード1006が仮想計算機制御コード1009をRAM1003のセキュア領域にロードし、ステップS2011で初期化コード1006がRAM1003のセキュア領域の仮想計算機制御コード1009にジャンプする。ステップS2012で仮想計算機制御コード1009を実行し、仮想計算機ハード1008を動かす。かかる構成によれば、RAM1003のセキュア領域の設定し、仮想計算機制御コード1009をRAM1003のセキュア領域にロードすることによって、悪意のあるハッカーなどによる意図した改竄が困難になる効果がある。RAM1003上の仮想計算機制御コード1009は、セキュアモードのセキュアアプリ2002として動作し、秘匿性と完全性が確保される。なお、本実施の形態において、記憶装置1004上の初期化コード1006、仮想計算機制御コード1009は暗号化してもよく、その場合は実施の形態1と同様の復号処理が行われる。また、暗号エンジン1007でハッシュ検証や暗号処理を行ったが、ブートコード1005や初期化コード1006がソフトウェアで保持して実行してもよい。また、暗号エンジン1007が期待ハッシュ値を保持しているが、記憶装置1004に記憶してもよい。その場合、期待ハッシュ値を暗号化または署名付与してもよい。また、RAM1003はRAMアクセス制限機能が付いているとしたが、RAMアクセス制限機能をRAM1003とは独立させて、別の構成としてもよい。また、先頭アドレスと末尾アドレスでセキュア領域を設定しているが、先頭アドレスとサイズなど領域を設定できるパラメータであれば何でもよい。また、RAM1003のセキュア領域の設定は、仮想計算機制御コード1009をロードする前であれば、いつ行ってもよい。実施の形態3図3は、本発明の実施の形態3におけるセキュアブートのブロック図である。図3において、図2と同じ構成要素については同じ符号を用い、説明を省略する。1010は、CPU1001とは別のCPUである。1011は、RAM1003とは別のRAMである。図8は、本発明の実施の形態3におけるセキュアブートの処理の流れを示すフローチャートである。システムがブートした際に、CPU1001がステップS3001でROM1002のブートコード1005を実行する。ステップS3002でブートコード1005がRAM1003のセキュア領域を設定する。ステップS3003でブートコード1005が暗号エンジン1007を使って記憶装置1004の暗号化された初期化コード1006を検証する。ステップS3004で、初期化コード1006が正しくない場合はステップS3016でブートを停止する。ステップS3004で、初期化コード1006が正しい場合は、ステップS3005でブートコード1005が暗号エンジン1007を使って初期化コード1006を復号する。ステップS3006で、ブートコード1005が初期化コード1006をRAM1003のセキュア領域にロードし、ステップS3007でブートコード1005がRAM1003のセキュア領域の初期化コード1006にジャンプする。ステップS3008で初期化コード1006を実行し、ステップS3009で初期化コード1006がRAM別1011のセキュア領域を設定する。ステップS3010で初期化コード1006が暗号エンジン1007を使って記憶装置1004の仮想計算機制御コード1009を検証する。ステップS3011で、仮想計算機制御コード1009が正しくない場合はステップS3016でブートを停止する。ステップS3011で、仮想計算機制御コード1009が正しい場合は、ステップS3012で、CPU1001がCPU別1010に制御を移し、ステップS3013で、初期化コード1006が仮想計算機制御コード1009をRAM別1011のセキュア領域にロードし、ステップS3014で初期化コード1006がRAM別1011のセキュア領域の仮想計算機制御コード1009にジャンプする。ステップS3015で仮想計算機制御コード1009を実行し、仮想計算機ハード1008を動かす。かかる構成によれば、あらかじめ初期化コード1006または仮想計算機制御コード1009を暗号化して記憶装置1004に保存しておく。また、RAM1003またはRAM別1011のセキュア領域を設定し、初期化コード1006または仮想計算機制御コード1009を復号してRAM1003またはRAM別1011のセキュア領域にロードすることによって、悪意のあるハッカーなどによる意図した改竄が困難になる効果がある。なお、本実施の形態において、図4に示す通り、RAM1003に対して初期化コード1006をロードし、RAM別1011に対して仮想計算機制御コード1009をロードしているが、図5に示す通り、RAM1003に対して初期化コード1006と仮想計算機制御コード1009をロードしてもよい。また、ステップS3012で、CPU1001がCPU別1010に制御を移したが、制御を移すタイミングはいつ行ってもよく、制御を移さずに1つのCPUで処理を行ってもよい。また、CPU別1010の起動タイミングは、CPU1001がCPU別1010に制御を移す前であればいつでもよい。また、CPU別1010は1つとしたが、複数あってもよい。また、CPU1001とCPU別1010は同一製品でも、異なった製品でもよい。また、RAM1003とRAM別1011は同一製品でも、異なった製品でもよい。また、初期化コード1006をロードする前であれば、RAM1003のセキュア領域の設定はいつでもよい。また、仮想計算機制御コード1009をロードする前であれば、RAM別1011のセキュア領域の設定はいつでもよい。