(57)【要約】【課題】情報記録媒体に格納されたソフトウェアと電子機器端末において、ソフトウェアの不正複製を防止すると共に、正当な電子機器端末においては、ソフトウェアを実行することが可能となるソフトウェア実行制御方式を提供する。【解決手段】情報記録媒体１の相互認証の成立を条件としてアクセスすることが可能な秘匿領域４には、非秘匿領域５に格納されるソフトウェア８に関する鍵情報６やハッシュ情報７を備え、ソフトウェア実行制御部１０は秘匿領域４に格納されている情報をもとにソフトウェアの実行を制御する。【選択図】  図１
2004240719.tif 000002
【特許請求の範囲】
【請求項１】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
【請求項２】
前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項１に記載のソフトウェア実行制御方法。
【請求項３】
前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項１に記載のソフトウェア実行制御方法。
【請求項４】
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする請求項１に記載のソフトウェア実行制御方法。
【請求項５】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
【請求項６】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
【請求項７】
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする請求項６に記載のソフトウェア実行制御方法。
【請求項８】
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項６に記載のソフトウェア実行制御方法。
【請求項９】
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項６に記載のソフトウェア実行制御方法。
【請求項１０】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
【請求項１１】
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、
各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする請求項１０に記載のソフトウェア実行制御方法。
【請求項１２】
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、
前記各々の領域に対するオフセット情報を含み、
前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする請求項１０に記載のソフトウェア実行制御方法。
【請求項１３】
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項１０に記載のソフトウェア実行制御方法。
【請求項１４】
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項１０に記載のソフトウェア実行制御方法。
【請求項１５】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法。
【請求項１６】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とするソフトウェア実行制御方法。
【請求項１７】
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、
前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
【発明の詳細な説明】
【０００１】
【説明の属する技術分野】
本発明は、デジタルデータを記録するための半導体メモリカード及びその読み出し装置に関し、特にデジタルデータがソフトウェアである場合のソフトウェア実行制御方法に関する。
【０００２】
【従来の技術】
デジタルデータであるソフトウェアはデータの欠損なしに無制限にコピー可能であり、近年のネットワーク環境の発達により、正規の所有権を保有しないユーザがネットワーク環境を利用して不正に入手することも可能となっている。これらのソフトウェアは、一般的に、インストール時に正規の所有者のみがソフトウェアベンダーから取得しているＩＤ情報を入力することによってインストールが可能となる仕組みで構成されている。しかし、これらのＩＤ情報がソフトウェアのコピーと共に漏洩した場合、正規の所有権を保有しないユーザであってもソフトウェアをインストールすることが可能となる。
【０００３】
ソフトウェアの実行を制御する方法として、ソフトウェアの実行を行うユーザはユーザ固有情報として認証鍵を内蔵したハードウェアを保有し、ユーザがソフトウェアを起動しソフトウェア内に組み込まれているアクセス認証ルーチンに及ぶと、パラレルポートやＵＳＢポートに前もって接続されている認証鍵を内蔵したハードウェアと通信を行い、正しい認証鍵の存在が確認されると次のステップへ実行を移し、正しい認証鍵の存在が確認されない場合には、ソフトウェアは自らを停止し以降の実行が行われないようにする方法がある。この方法によると正規の認証鍵を内蔵したハードウェアを所有したユーザ以外には、ソフトウェアを実行させることができなくなることが可能となる。
【０００４】
しかし、このような方法ではソフトウェア内に当該ハードウェアと認証を行うためのモジュールが必要となる。そのため、専用のソフトウェアでモジュールを組み込んでおくなどの処理が必要となる。
【０００５】
また、ソフトウェア自身全体を専用の鍵で暗号化しておき、実行時には鍵を使用して復号化を行い、ソフトウェアを実行する方法もある。例えば特許文献１では、記録媒体に格納してあるソフトウェアに対してソフトウェア鍵を使用して暗号化しておき、実行する際には該当鍵として復号化する方法について書かれている。ここでは、ソフトウェアを暗号化する鍵に対して乱数を用いて暗号化しておき、記録媒体が接続されるホスト側では、同じ乱数を使用して復号化している。
【０００６】
一方では、半導体メモリカードに著作件保護機能を有し、デジタルコンテンツを暗号化して保持する方法もある。例えば特許文献２では、半導体メモリカードに著作権保護機能を有し、電子機器と半導体メモリカードで認証を行い、認証が成功した場合には、デジタルコンテンツを暗号化している鍵を取得することが可能となる方法となることが記述されている。
【０００７】
【特許文献１】
特開平９−１８５５０１号公報
【特許文献２】
特開２００１−１４４４１号公報
【０００８】
【発明が解決しようとする課題】
近年、小型の電子機器であるＰＤＡなどのモバイル機器が多く普及しているものの、一般的に、それら携帯電子機器は内部データ容量が比較的少ない。一方で、ソフトウェアのデータ容量はより大きくなってきているため、電子機器にインストールされるソフトウェアの数や量は制限されてしまっている。このため、情報記録媒体にソフトウェアをインストールしておき、そのような携帯電子機器に情報記録媒体を装着して格納してあるソフトウェアを使用することが想定できる。この場合、さらにソフトウェアの不正コピーを防ぐため、ソフトウェアを暗号化して情報記録媒体内に格納し、実行時には復号化して使用することも想定できるが、小型の電子機器の処理能力はパソコンなどに比べて一般的に低いため、格納されたソフトウェアが高速に処理されることは困難である。しかし、そのような場合に好都合となる具体的なソフトウェア実行制御方法について、前述の特許文献１、特許文献２では開示されていない。
【０００９】
本発明は、かかる課題を鑑みてなされたもので、情報記録媒体に暗号化されたソフトウェアと、暗号化に使用する鍵を保持しておき、ＰＤＡなどの携帯電子機器に情報記録媒体が装着されると保持されているソフトウェアを高速に実行することを可能とする情報記録媒体内に格納されるソフトウェアの実行制御方法に関する。
【００１０】
【課題を解決するための手段】
上記目的を達成するための発明のうち、請求項１の発明は半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とする。
【００１１】
請求項２の発明は、請求項１に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【００１２】
請求項３の発明は、請求項１に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【００１３】
請求項４の発明は、請求項１に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする。
【００１４】
請求項５の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【００１５】
請求項６の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【００１６】
請求項７の発明は、請求項６に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする。
【００１７】
請求項８の発明は、請求項６に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【００１８】
請求項９の発明は、請求項６に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【００１９】
請求項１０の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【００２０】
請求項１１の発明は、請求項１０に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする。
【００２１】
請求項１２の発明は、請求項１０に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、前記各々の領域に対するオフセット情報を含み、前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする。
【００２２】
請求項１３の発明は、請求項１０に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【００２３】
請求項１４の発明は、請求項１０に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【００２４】
請求項１５の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法としている。
【００２５】
請求項１６の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とする。
【００２６】
請求項１７の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とする。
【００２７】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明するが、これによって本発明の技術範囲が制限されるものではないのはもちろんである。
【００２８】
（実施の形態１）
図１は、本発明の実施の形態１に係るソフトウェア実行制御方法の全体の概略を示す図である。
【００２９】
図１に示すソフトウェア実行制御方法は、情報記録媒体１、情報記録媒体Ｉ／Ｆ９、ソフトウェア実行制御部１０を備える。
【００３０】
情報記録媒体１は、例えば、ＳＤメモリカード等の半導体メモリとＣＰＵとを備え、相互認証処理の成立を条件として半導体メモリと外部のデータの伝送を許す著作件保護機能を備えたインテリジェントなカードであり、固有情報２、メモリ領域３、秘匿領域４、非秘匿領域５、鍵情報６、ハッシュ情報７、ソフトウェア８を備える。
【００３１】
固有情報２は、情報記録媒体１に固有の情報であり、メモリ領域３内に暗号化して保存するデータを暗号化するための鍵等に使用する情報である。メモリ領域３は、情報記録媒体１と、ソフトウェア実行制御部１０の相互認証処理の成立を条件としてアクセスすることが可能な秘匿領域４と、相互認証処理をしなくてもアクセスすることが可能な非秘匿領域５から構成される。図１の情報記録媒体１には、非秘匿領域５にソフトウェア８が格納されており、秘匿領域４にはソフトウェア８を例えば、ＤＥＳやトリプルＤＥＳなどに代表されるような特定の暗号アルゴリズムを用いて暗号化する際に使用される鍵を含む情報である鍵情報６と、そのソフトウェア８を入力データとして、ＭＤ５やＳＨＡ−１などの与えられた原文から固定長の擬似乱数を生成する一方向関数であるハッシュ関数を使用して算出されるハッシュ値を含む情報であるハッシュ情報７が格納されている。
【００３２】
情報記録媒体Ｉ／Ｆ９は、情報記録媒体１を接続するためのＩ／Ｆであり、ＰＤＡなどの携帯電子機器であるならば、情報記録媒体１を接続するためのスロット部にあたる。
【００３３】
ソフトウェア実行制御部１０は、情報記録媒体１に格納されているソフトウェア８などの情報の処理を行う、ハードウェアまたはソフトウェアで構成されるシステムであり、相互認証処理部１１、ハッシュ情報処理部１２、復号処理部１３、実行判定部１４を備える。
【００３４】
相互認証処理部１１は、暗号化処理を含めた所謂チャレンジ・レスポンス方式などの処理方法によって情報記録媒体１と互いに認証処理を行う相互認証処理を行う機能を備える。ハッシュ情報処理部１２は入力されたデジタルデータのハッシュ値を算出する機能を備える。復号処理部１３はデジタルデータの復号処理を行う機能を備える。実行判定部１４は、ハッシュ情報の結果等に基づいて、情報記録媒体１から読み込んだソフトウェア８が実行可能であるか否かを判定する機能を備える。
【００３５】
このようなハードウェアまたはソフトウェアで構成されるソフトウェア実行制御部がパソコンや、電子機器などの機器に内蔵されることによって、情報記録媒体１に格納されているソフトウェア８の実行を制御することが可能となる。
【００３６】
図２は、情報記録媒体１の秘匿領域４内に格納されている情報について具体的な一例を示している。図２で鍵情報６とハッシュ情報７は非秘匿領域５に格納されているソフトウェア８に関する情報であり、これらはファイル２０に格納されている。図２ではさらに、ファイル２０が、データオフセット０からオフセットＸまでは鍵情報、オフセットＸからオフセットＹまではハッシュ情報、オフセットＹからオフセットＺまではその他の情報として利用情報２１が格納される一例を示している。なお、ここでの利用情報２１はソフトウェア８の利用情報について記述されているものであり、ソフトウェア８の利用制限回数や、利用期限、識別情報などから構成される情報である。
【００３７】
また、図２では、ファイル２０には１つのソフトウェア８に関する鍵情報６とハッシュ情報７と利用情報２１から構成される図を示しているが、非秘匿領域５に格納される複数のソフトウェア８に関する鍵情報６やハッシュ情報７や利用情報２１等の情報が１つのファイルに含まれているような構成であってもよい。また、ファイル２０に示すような秘匿領域４に格納されているこのような鍵情報６やハッシュ情報７や利用情報などのその他の情報のすべてまたは一部が、情報記録媒体１の固有情報２を用いて暗号化されて秘匿領域４内に格納されているような構成でもよい。
【００３８】
図２のような構成の情報が情報記録媒体１の秘匿領域４に格納されていることによって、情報記録媒体１の非秘匿領域５に格納されているソフトウェア８を実行する機器は、ソフトウェア実行制御部１０を介して情報記録媒体１と相互認証処理を成立させて、まず、秘匿領域４に格納されている情報を読み出す必要がある。次に、読み出された鍵情報６やハッシュ情報７、利用情報２１をもとにソフトウェア８の実行を制御することが可能となる。
【００３９】
次に、情報記録媒体１に格納されているデータの構成について説明する。
【００４０】
図３は秘匿領域４に格納されている鍵情報６とハッシュ情報７の、非秘匿領域５に格納されているソフトウェア８との関係の概要について示している。図において、非秘匿領域５に格納されているソフトウェア８は、まず、（１）で示すように鍵を用いて暗号化される。このとき暗号化した鍵を含む鍵情報６が秘匿領域４に格納される。次に（２）で示すように暗号化されたソフトウェア８のハッシュ値が算出される。同様にこのとき算出されたハッシュ値を含むハッシュ値情報７が秘匿領域４に格納される。
【００４１】
図４は、図３で示した方法によって秘匿領域４に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体１の秘匿領域４や非秘匿領域５にデータを書く機能を有するパソコンや携帯電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体１に格納されるソフトウェアに対して暗号化アルゴリズムを用いて暗号化する（ステップＳ１０）。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく（ステップＳ１１）。次に、ステップＳ１０において暗号化されたソフトウェアからハッシュ情報を算出する（ステップＳ１２）。このとき、算出したハッシュ情報は保持しておく（ステップＳ１３）。次に、情報記録媒体１と相互認証処理を行う（ステップＳ１４）。相互認証処理が失敗した場合には、情報記録媒体１にデータを格納することなく処理を終了する（ステップＳ１５）。相互認証処理が成功した場合には、暗号化されたソフトウェアを情報記録媒体１内に非秘匿領域５に書き込む（ステップＳ１６）。次に、保持していた鍵情報やハッシュ情報やその他利用情報２１などの情報を情報記録媒体１内の秘匿領域４に書き込んで（ステップＳ１７）、処理を終了する。
【００４２】
このような処理によって構成された情報が、情報記録媒体１の秘匿領域４に、暗号化されたソフトウェア８が非秘匿領域５に書き込まれるため、ソフトウェア５の不正利用を防ぐことが可能となる。
【００４３】
（実施の形態２）
ここでは実施の形態２として、情報記録媒体１の秘匿領域４に格納される鍵情報６とハッシュ情報７の算出方法が実施の形態１と異なる方法について示す。その他システム全体の構成については、実施の形態１と同様であるためここでの説明は割愛する。
【００４４】
図５は、実施の形態１の図３で示していたハッシュ情報７の算出方法の異なる場合について示している。図において、非秘匿領域５に格納されているソフトウェア８は、まず、（１）で示すようにハッシュ値が計算される。このとき算出されたハッシュ値を含むハッシュ情報７が秘匿領域４に格納される。次に（２）で示すように鍵を用いて暗号化される。そして暗号化に使用した鍵を含む鍵情報６が秘匿領域４に格納される。
【００４５】
図６は、図５で示した方法によって秘匿領域４に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体１の秘匿領域４や非秘匿領域５にデータを書く機能を有するパソコンや、電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体１に格納されるソフトウェアに対してハッシュアルゴリズムを用いてハッシュ値を算出する（ステップＳ２０）。このとき、算出したハッシュ情報は保持しておく（ステップＳ２１）。次に、ソフトウェアに対して暗号化アルゴリズムを使用して暗号化する（ステップＳ２２）。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく（ステップＳ２３）。以降の手順は実施の形態１の図３で示したステップＳ１４からステップＳ１７で示した処理方法と同様である。
【００４６】
このような処理によって構成された情報が、情報記録媒体１の秘匿領域４に、暗号化されたソフトウェア５が非秘匿領域５に書き込まれるため、ソフトウェア５の不正利用を防ぐことが可能となる。
【００４７】
（実施の形態３）
ここでは、実施の形態３として、実施の形態１や実施の形態２の方法によって示されたソフトウェア実行制御方法を実現するために、情報記録媒体１の秘匿領域４に格納されるハッシュ情報７に関して、特にハッシュ値の算出方法について示す。その他システム全体の構成はついては実施の形態１で示した実行制御方法と同様であるためここでの説明は割愛する。
【００４８】
図７は、ハッシュ情報７に関して詳細に示した一例の図である。秘匿領域４に格納されているハッシュ情報７はハッシュ値を計算する対象のデータのどの部分をハッシュ値計算に使用するかを表す情報と、その領域から計算されたハッシュ値から構成される。図７ではハッシュ値を計算する対象のデータのオフセットＡからＢまでの長さＮと、オフセットＣからＤまでの長さＭの領域のデータを用いてハッシュ値を計算して、ハッシュ情報７としていることを示す図である。ハッシュ情報７内の第１ハッシュ対象領域情報７１は、ハッシュ値を算出する対象のデータであるソフトウェア８のオフセットＡからＢのオフセット情報などの情報から構成されている。一方、ハッシュ情報７内の第２ハッシュ対象領域情報７２は、ハッシュの値を算出する対象のデータであるソフトウェア８のオフセットＣからオフセットＤといったオフセット情報などの情報から構成されている。ハッシュ情報７内のハッシュ値７３は、第１ハッシュ対象領域情報７１と第２ハッシュ対象領域情報７２から算出されるハッシュ値が書き込まれている。このように、秘匿領域４のハッシュ情報７にハッシュ値を計算するためのデータのオフセット等といった情報を書き込めることによって、ソフトウェア８に関する任意のサイズやオフセットのハッシュ情報を設定することが可能となる。
【００４９】
ここで示したソフトウェア８のオフセットＡ、Ｂ、Ｃ、Ｄの値はソフトウェア８のデータの大きさによって、例えば一定の数式を用いて決まる任意の値であってもよいし、ソフトウェア内の重要な部分の改竄チェックを行うために、ソフトウェア８を提供する提供者が任意に決めるような値であってもよい。なお、ここでは、ハッシュ対象領域情報として２つ格納している例を示しているが、１つでも構わず、また２つ以上の情報が格納できる仕組みとなっていてもよい。
【００５０】
さらに、ソフトウェア８のハッシュ値算出のために使用される領域から、複数の領域のハッシュ値を予め算出しておき、秘匿領域４のハッシュ情報７内のハッシュ値領域７３に格納される値は、その複数の領域のハッシュ値を算出した値の論理演算によって得られる値でもよい。さらにこのとき、ここではＡからＢ、ＣからＤまでの領域を同一ハッシュ関数によってハッシュ値を算出する例を示しているが、ハッシュ値算出対象領域に応じて、用いるハッシュ関数の種類を変更してもよく、図示はしていないがどのようなハッシュ関数を使用したかという情報とともに第１ハッシュ対象領域情報７１や第２ハッシュ対象領域情報７２内といったハッシュ情報内７内に保持しておき、各々の領域から算出されたハッシュ値の論理演算によって得られる値の論理演算によって得られる値であってもよい。
【００５１】
さらに、図８に示すように第１ハッシュ対象領域情報８１や第２ハッシュ対象領域情報８２のように、ハッシュ値算出のために使用される各々の領域から算出されるハッシュ値、オフセット情報、使用したハッシュ関数の種類を特定する識別子から構成されるハッシュ情報であってもよい。
【００５２】
以上のようなハッシュ値の計算方法は、実施の形態１や実施の形態２で示したソフトウェア実行制御方法を実現するためのデータの格納方法において、本実施の形態で示したハッシュ情報７の構造とハッシュ情報の算出方法の方法に代えて実行可能であることはいうまでもない。
【００５３】
このような実施の形態に係るハッシュ情報の算出を行えば、ソフトウェア全体のハッシュ値を算出する必要がなくなり、情報記録媒体１の情報を読み込んで処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【００５４】
（実施の形態４）
ここでは、実施の形態４として、実施の形態３で示されたハッシュ情報の算出方法に加えて、特に鍵情報によって暗号化される領域について示す。その他のシステム全体の構成については、実施の形態１と同様であるためここでの説明は割愛する。
【００５５】
図９は、秘匿領域４に格納されている鍵情報６とハッシュ情報７に関して詳細に示した図の一例である。図９において、秘匿領域４に格納されているハッシュ情報７の算出方法は、実施の形態３で図７を用いて示した方法と同様であるため、ここでは説明を割愛する。
【００５６】
図９では、ソフトウェア８のオフセットＡからＢ、ＣからＤがハッシュ情報の算出に使用されていることを示している。このとき、ソフトウェア８のオフセット０からＡまでと、ＢからＣまでと、ＤからＥまでの領域のみが暗号化され、その領域を暗号化する際に使用した鍵に関する鍵情報が秘匿領域４の鍵情報６に格納される。暗号化される方法としては、オフセット０からＡ、ＢからＣ、ＤからＥまでを足されて秘匿領域４に格納されている鍵情報６によって暗号化されてもよいし、それぞれの領域が鍵情報６によって別々の暗号アルゴリズムによって暗号化されていてもよい。このような場合、ソフトウェア８は何れの領域も暗号化或いはハッシュ値計算のどちらか一方に使用されることになる。
【００５７】
さらに図１０は、図９で示した方法を拡張した一例である。図１０では、特に、ソフトウェア８のオフセットＡとＡ’で示している部分が図９で示した構成とは異なる。図１０では、ソフトウェア８のオフセット０からＡ’までが鍵情報を用いて暗号化され、ＡからＢまでがハッシュ情報を算出するために使用される領域を示している。つまり、ＡからＡ’までの領域は暗号化にもハッシュ値の計算にも使用される領域となる。このような構造にした場合、ソフトウェア８の暗号化を行う領域がどの場所に位置しているかは、秘匿領域４のハッシュ情報７の第１ハッシュ対象領域７１や第２ハッシュ対象領域情報７２などの、ハッシュ対象領域情報から算出することができないため、鍵情報６内の第１暗号化対象領域情報９１はソフトウェア８のオフセット０からＡ’のオフセット情報などの情報が、第２暗号化対象領域情報９２はソフトウェア８のオフセットＢからＣのオフセット情報などの情報で構成されている。また、図１０中には図示していないが、これらの情報には図９の説明の部分で示したようにどのような暗号アルゴリズムを使用したかという情報が含まれていてもよい。さらに図１１で示すように第１暗号化対象領域情報１１１や第２暗号化対象領域情報１１２のように、暗号化の対象となる各々の領域の暗号化に使用される鍵の値、オフセット情報、使用した暗号化アルゴリズムを示す暗号化処理方法の情報から構成される鍵情報であってもよい。なお、このような鍵情報の構成は図９の構成に用いることも可能である。
【００５８】
図９で示した構成方法では、実施の形態１と実施の形態２で示したソフトウェア８の暗号化とハッシュ値の計算において、どちらを先に処理を行ってその値を格納するかといった違いはなくなる。一方、図１０や図１１で示した構成方法では、暗号化される領域とハッシュ値を算出するための領域が重なっている。そのため、実施の形態１や実施の形態２で示した方法における、ソフトウェアの暗号化の処理方法や鍵情報６の構造、ハッシュ情報７の算出方法やハッシュ情報７の構造のところを図１０や図１１で示した方法・構造に代えて実行可能であることは言うまでもない。また、図１０や図１１では、ソフトウェア８の全ての領域が暗号化またはハッシュ情報の算出のために使用される領域のように示しているが、ソフトウェア８に暗号化やハッシュ情報７の算出に使用されない領域があってもよい。
【００５９】
このような実施の形態に係る、暗号化処理を行うことによって、情報記録媒体１に格納するソフトウェア全体のハッシュ値の計算や、ソフトウェア全体の暗号化をする必要がなくなり、情報記録媒体１のソフトウェアを読み込んだり、ソフトウェアを書き込んだりする処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【００６０】
（実施の形態５）
ここでは、実施の形態５として、秘匿領域４に格納されている、鍵情報６とハッシュ情報７を含む情報と、非秘匿領域５に格納されているソフトウェアの組み合わせを識別できる方法の一例について示す。その他、システム全体の構成の概要については実施の形態１と同様であるためここでの説明は割愛する。
【００６１】
図１２は、秘匿領域４に格納されている鍵情報６とハッシュ情報７や各種情報を含んで１つのファイル２０に格納され、ソフトウェア１２０は通し番号をつけた形で非秘匿領域５に格納されている図を示している。非秘匿領域５内のソフトウェアはｐｒｏｇｒａｍ００１．ｐｒｇ１２０のように、固有ファイル名＋通し番号＋拡張子というファイル名をつけている。
【００６２】
この場合に該当するソフトウェアは、秘匿領域４の鍵情報とハッシュ情報は、ソフトウェアの通し番号が００１であるため、ファイル２０の１番目のエントリである鍵情報１とハッシュ情報１がソフトウェアｐｒｏｇｒａｍ００１．ｐｒｇ１２０に該当する情報となる。同様に、鍵情報２とハッシュ情報２は、非秘匿領域５のソフトウェアｐｒｏｇｒａｍ００２．ｐｒｇ１２１の鍵情報とハッシュ情報に該当する。このように秘匿領域４に格納されている鍵情報とハッシュ情報が格納されているエントリ番号と、非秘匿領域５に格納されているソフトウェアのファイル名に付けられている番号が１対１に対応することで、容易に秘匿領域４の情報と非秘匿領域５の情報を対応させることが可能となる。
【００６３】
このような形式は、実施の形態１から実施の形態４のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域４の情報と非秘匿領域５の情報を対応させることが可能となる。
【００６４】
（実施の形態６）
ここでは、実施の形態６として、実施の形態５で示した秘匿領域４に格納されている情報と非秘匿領域５に格納されている情報の対応に関して、別の方法の一例について示す。その他システム全体の構成については、実施の形態１と同様であるためここでの説明は割愛する。
【００６５】
図１３は、秘匿領域４に格納されている鍵情報６とハッシュ情報７を含む情報と、非秘匿領域５に格納されているソフトウェアとの組み合わせを識別する方法の一例を示している図である。秘匿領域４には鍵情報６とハッシュ情報７に加えて利用情報としてソフトウェア名格納情報１３０が格納されている。一方、非秘匿領域５にはソフトウェア８が格納されている。図１３において非秘匿領域５に格納されているソフトウェア名はｐｒｏｇｒａｍＡ．ｅｘｅであり、そのソフトウェア名が秘匿領域４のソフトウェア名格納情報１３０に格納されている。これにより非秘匿領域５に格納されているデータのうちどのソフトウェアと、秘匿領域４に格納されている鍵情報やハッシュ情報が対応するかがソフトウェアファイル名で容易に確認することが可能となる。
【００６６】
このような形式は、実施の形態１から実施の形態４のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域４の情報と非秘匿領域５に格納されているソフトウェアを対応させることが可能となる。
【００６７】
【発明の効果】
以上説明したように、本発明による構造の情報記録媒体内にソフトウェアとそのソフトウェアに関する鍵情報とハッシュ情報を格納することによって、ソフトウェアの不正利用を防ぐことが可能となる。また、鍵情報によって暗号化されるソフトウェアの領域や、ハッシュ情報を算出するために使用されるソフトウェアの領域・サイズは任意に設定することが可能である。
【００６８】
このため、比較的内部メモリ容量が小さく、ソフトウェアを多数インストールすることが困難な電子機器においても、当該ソフトウェア実行制御部を組み込み、ソフトウェアが格納された情報記録媒体を使用することによって、不正にソフトウェアが利用されることを防止することが可能となる。また、ソフトウェア実行制御部が処理するソフトウェアの復号化処理やハッシュ値の検算処理は、必ずしもソフトウェア全体の領域に対してする必要はないため、比較的高速に処理することが可能となりその実用的効果は大きい。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるソフトウェア実行制御方法の概要を示す構成図
【図２】本発明の実施の形態１における秘匿領域の情報の概要を示す図
【図３】本発明の実施の形態１における鍵情報とハッシュ情報の概要を示す図
【図４】本発明の実施の形態１における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図５】本発明の実施の形態２における鍵情報とハッシュ情報の概要を示す図
【図６】本発明の実施の形態２における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図７】本発明の実施の形態３における鍵情報とハッシュ情報の概要を示す図
【図８】本発明の実施の形態３における鍵情報とハッシュ情報の概要を示す図
【図９】本発明の実施の形態４における鍵情報とハッシュ情報の概要を示す図
【図１０】本発明の実施の形態４における鍵情報とハッシュ情報の概要を示す図
【図１１】本発明の実施の形態４における鍵情報とハッシュ情報の概要を示す図
【図１２】本発明の実施の形態５における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【図１３】本発明の実施の形態６における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【符号の説明】
１  情報記録媒体
２  固有情報
３  メモリ領域
４  秘匿領域
５  非秘匿領域
６  鍵情報
７  ハッシュ情報
８  ソフトウェア
９  情報記録媒体Ｉ／Ｆ
１０  ソフトウェア実行制御部
１１  相互認証処理部
１２  ハッシュ情報処理部
１３  復号処理部
１４  実行判定部
２０  ファイル
２１  利用情報
７１，８１  第１ハッシュ対象領域情報
７２，８２  第２ハッシュ対象領域情報
７３  ハッシュ値
８３  第ｎハッシュ対象領域情報
９１，１１１  第１暗号化対象領域情報
９２，１１２  第２暗号化対象領域情報
９３  鍵
１１３  第ｎ暗号化対象領域情報
１２０，１２１  ソフトウェア
１３０  ソフトウェア名格納情報
【図１】
2004240719.tif 000003
【図２】
2004240719.tif 000004
【図３】
2004240719.tif 000005
【図４】
2004240719.tif 000006
【図５】
2004240719.tif 000007
【図６】
2004240719.tif 000008
【図７】
2004240719.tif 000009
【図８】
2004240719.tif 000010
【図９】
2004240719.tif 000011
【図１０】
2004240719.tif 000012
【図１１】
2004240719.tif 000013
【図１２】
2004240719.tif 000014
【図１３】
2004240719.tif 000015