JP2004240719A - ソフトウェア実行制御方法 - Google Patents
ソフトウェア実行制御方法 Download PDFInfo
- Publication number
- JP2004240719A JP2004240719A JP2003029218A JP2003029218A JP2004240719A JP 2004240719 A JP2004240719 A JP 2004240719A JP 2003029218 A JP2003029218 A JP 2003029218A JP 2003029218 A JP2003029218 A JP 2003029218A JP 2004240719 A JP2004240719 A JP 2004240719A
- Authority
- JP
- Japan
- Prior art keywords
- information
- software
- area
- recording medium
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】情報記録媒体に格納されたソフトウェアと電子機器端末において、ソフトウェアの不正複製を防止すると共に、正当な電子機器端末においては、ソフトウェアを実行することが可能となるソフトウェア実行制御方式を提供する。
【解決手段】情報記録媒体1の相互認証の成立を条件としてアクセスすることが可能な秘匿領域4には、非秘匿領域5に格納されるソフトウェア8に関する鍵情報6やハッシュ情報7を備え、ソフトウェア実行制御部10は秘匿領域4に格納されている情報をもとにソフトウェアの実行を制御する。
【選択図】 図1
【解決手段】情報記録媒体1の相互認証の成立を条件としてアクセスすることが可能な秘匿領域4には、非秘匿領域5に格納されるソフトウェア8に関する鍵情報6やハッシュ情報7を備え、ソフトウェア実行制御部10は秘匿領域4に格納されている情報をもとにソフトウェアの実行を制御する。
【選択図】 図1
Description
【0001】
【説明の属する技術分野】
本発明は、デジタルデータを記録するための半導体メモリカード及びその読み出し装置に関し、特にデジタルデータがソフトウェアである場合のソフトウェア実行制御方法に関する。
【0002】
【従来の技術】
デジタルデータであるソフトウェアはデータの欠損なしに無制限にコピー可能であり、近年のネットワーク環境の発達により、正規の所有権を保有しないユーザがネットワーク環境を利用して不正に入手することも可能となっている。これらのソフトウェアは、一般的に、インストール時に正規の所有者のみがソフトウェアベンダーから取得しているID情報を入力することによってインストールが可能となる仕組みで構成されている。しかし、これらのID情報がソフトウェアのコピーと共に漏洩した場合、正規の所有権を保有しないユーザであってもソフトウェアをインストールすることが可能となる。
【0003】
ソフトウェアの実行を制御する方法として、ソフトウェアの実行を行うユーザはユーザ固有情報として認証鍵を内蔵したハードウェアを保有し、ユーザがソフトウェアを起動しソフトウェア内に組み込まれているアクセス認証ルーチンに及ぶと、パラレルポートやUSBポートに前もって接続されている認証鍵を内蔵したハードウェアと通信を行い、正しい認証鍵の存在が確認されると次のステップへ実行を移し、正しい認証鍵の存在が確認されない場合には、ソフトウェアは自らを停止し以降の実行が行われないようにする方法がある。この方法によると正規の認証鍵を内蔵したハードウェアを所有したユーザ以外には、ソフトウェアを実行させることができなくなることが可能となる。
【0004】
しかし、このような方法ではソフトウェア内に当該ハードウェアと認証を行うためのモジュールが必要となる。そのため、専用のソフトウェアでモジュールを組み込んでおくなどの処理が必要となる。
【0005】
また、ソフトウェア自身全体を専用の鍵で暗号化しておき、実行時には鍵を使用して復号化を行い、ソフトウェアを実行する方法もある。例えば特許文献1では、記録媒体に格納してあるソフトウェアに対してソフトウェア鍵を使用して暗号化しておき、実行する際には該当鍵として復号化する方法について書かれている。ここでは、ソフトウェアを暗号化する鍵に対して乱数を用いて暗号化しておき、記録媒体が接続されるホスト側では、同じ乱数を使用して復号化している。
【0006】
一方では、半導体メモリカードに著作件保護機能を有し、デジタルコンテンツを暗号化して保持する方法もある。例えば特許文献2では、半導体メモリカードに著作権保護機能を有し、電子機器と半導体メモリカードで認証を行い、認証が成功した場合には、デジタルコンテンツを暗号化している鍵を取得することが可能となる方法となることが記述されている。
【0007】
【特許文献1】
特開平9−185501号公報
【特許文献2】
特開2001−14441号公報
【0008】
【発明が解決しようとする課題】
近年、小型の電子機器であるPDAなどのモバイル機器が多く普及しているものの、一般的に、それら携帯電子機器は内部データ容量が比較的少ない。一方で、ソフトウェアのデータ容量はより大きくなってきているため、電子機器にインストールされるソフトウェアの数や量は制限されてしまっている。このため、情報記録媒体にソフトウェアをインストールしておき、そのような携帯電子機器に情報記録媒体を装着して格納してあるソフトウェアを使用することが想定できる。この場合、さらにソフトウェアの不正コピーを防ぐため、ソフトウェアを暗号化して情報記録媒体内に格納し、実行時には復号化して使用することも想定できるが、小型の電子機器の処理能力はパソコンなどに比べて一般的に低いため、格納されたソフトウェアが高速に処理されることは困難である。しかし、そのような場合に好都合となる具体的なソフトウェア実行制御方法について、前述の特許文献1、特許文献2では開示されていない。
【0009】
本発明は、かかる課題を鑑みてなされたもので、情報記録媒体に暗号化されたソフトウェアと、暗号化に使用する鍵を保持しておき、PDAなどの携帯電子機器に情報記録媒体が装着されると保持されているソフトウェアを高速に実行することを可能とする情報記録媒体内に格納されるソフトウェアの実行制御方法に関する。
【0010】
【課題を解決するための手段】
上記目的を達成するための発明のうち、請求項1の発明は半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とする。
【0011】
請求項2の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【0012】
請求項3の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【0013】
請求項4の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする。
【0014】
請求項5の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0015】
請求項6の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0016】
請求項7の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする。
【0017】
請求項8の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【0018】
請求項9の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【0019】
請求項10の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0020】
請求項11の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする。
【0021】
請求項12の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、前記各々の領域に対するオフセット情報を含み、前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする。
【0022】
請求項13の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【0023】
請求項14の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【0024】
請求項15の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法としている。
【0025】
請求項16の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とする。
【0026】
請求項17の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とする。
【0027】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明するが、これによって本発明の技術範囲が制限されるものではないのはもちろんである。
【0028】
(実施の形態1)
図1は、本発明の実施の形態1に係るソフトウェア実行制御方法の全体の概略を示す図である。
【0029】
図1に示すソフトウェア実行制御方法は、情報記録媒体1、情報記録媒体I/F9、ソフトウェア実行制御部10を備える。
【0030】
情報記録媒体1は、例えば、SDメモリカード等の半導体メモリとCPUとを備え、相互認証処理の成立を条件として半導体メモリと外部のデータの伝送を許す著作件保護機能を備えたインテリジェントなカードであり、固有情報2、メモリ領域3、秘匿領域4、非秘匿領域5、鍵情報6、ハッシュ情報7、ソフトウェア8を備える。
【0031】
固有情報2は、情報記録媒体1に固有の情報であり、メモリ領域3内に暗号化して保存するデータを暗号化するための鍵等に使用する情報である。メモリ領域3は、情報記録媒体1と、ソフトウェア実行制御部10の相互認証処理の成立を条件としてアクセスすることが可能な秘匿領域4と、相互認証処理をしなくてもアクセスすることが可能な非秘匿領域5から構成される。図1の情報記録媒体1には、非秘匿領域5にソフトウェア8が格納されており、秘匿領域4にはソフトウェア8を例えば、DESやトリプルDESなどに代表されるような特定の暗号アルゴリズムを用いて暗号化する際に使用される鍵を含む情報である鍵情報6と、そのソフトウェア8を入力データとして、MD5やSHA−1などの与えられた原文から固定長の擬似乱数を生成する一方向関数であるハッシュ関数を使用して算出されるハッシュ値を含む情報であるハッシュ情報7が格納されている。
【0032】
情報記録媒体I/F9は、情報記録媒体1を接続するためのI/Fであり、PDAなどの携帯電子機器であるならば、情報記録媒体1を接続するためのスロット部にあたる。
【0033】
ソフトウェア実行制御部10は、情報記録媒体1に格納されているソフトウェア8などの情報の処理を行う、ハードウェアまたはソフトウェアで構成されるシステムであり、相互認証処理部11、ハッシュ情報処理部12、復号処理部13、実行判定部14を備える。
【0034】
相互認証処理部11は、暗号化処理を含めた所謂チャレンジ・レスポンス方式などの処理方法によって情報記録媒体1と互いに認証処理を行う相互認証処理を行う機能を備える。ハッシュ情報処理部12は入力されたデジタルデータのハッシュ値を算出する機能を備える。復号処理部13はデジタルデータの復号処理を行う機能を備える。実行判定部14は、ハッシュ情報の結果等に基づいて、情報記録媒体1から読み込んだソフトウェア8が実行可能であるか否かを判定する機能を備える。
【0035】
このようなハードウェアまたはソフトウェアで構成されるソフトウェア実行制御部がパソコンや、電子機器などの機器に内蔵されることによって、情報記録媒体1に格納されているソフトウェア8の実行を制御することが可能となる。
【0036】
図2は、情報記録媒体1の秘匿領域4内に格納されている情報について具体的な一例を示している。図2で鍵情報6とハッシュ情報7は非秘匿領域5に格納されているソフトウェア8に関する情報であり、これらはファイル20に格納されている。図2ではさらに、ファイル20が、データオフセット0からオフセットXまでは鍵情報、オフセットXからオフセットYまではハッシュ情報、オフセットYからオフセットZまではその他の情報として利用情報21が格納される一例を示している。なお、ここでの利用情報21はソフトウェア8の利用情報について記述されているものであり、ソフトウェア8の利用制限回数や、利用期限、識別情報などから構成される情報である。
【0037】
また、図2では、ファイル20には1つのソフトウェア8に関する鍵情報6とハッシュ情報7と利用情報21から構成される図を示しているが、非秘匿領域5に格納される複数のソフトウェア8に関する鍵情報6やハッシュ情報7や利用情報21等の情報が1つのファイルに含まれているような構成であってもよい。また、ファイル20に示すような秘匿領域4に格納されているこのような鍵情報6やハッシュ情報7や利用情報などのその他の情報のすべてまたは一部が、情報記録媒体1の固有情報2を用いて暗号化されて秘匿領域4内に格納されているような構成でもよい。
【0038】
図2のような構成の情報が情報記録媒体1の秘匿領域4に格納されていることによって、情報記録媒体1の非秘匿領域5に格納されているソフトウェア8を実行する機器は、ソフトウェア実行制御部10を介して情報記録媒体1と相互認証処理を成立させて、まず、秘匿領域4に格納されている情報を読み出す必要がある。次に、読み出された鍵情報6やハッシュ情報7、利用情報21をもとにソフトウェア8の実行を制御することが可能となる。
【0039】
次に、情報記録媒体1に格納されているデータの構成について説明する。
【0040】
図3は秘匿領域4に格納されている鍵情報6とハッシュ情報7の、非秘匿領域5に格納されているソフトウェア8との関係の概要について示している。図において、非秘匿領域5に格納されているソフトウェア8は、まず、(1)で示すように鍵を用いて暗号化される。このとき暗号化した鍵を含む鍵情報6が秘匿領域4に格納される。次に(2)で示すように暗号化されたソフトウェア8のハッシュ値が算出される。同様にこのとき算出されたハッシュ値を含むハッシュ値情報7が秘匿領域4に格納される。
【0041】
図4は、図3で示した方法によって秘匿領域4に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体1の秘匿領域4や非秘匿領域5にデータを書く機能を有するパソコンや携帯電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体1に格納されるソフトウェアに対して暗号化アルゴリズムを用いて暗号化する(ステップS10)。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく(ステップS11)。次に、ステップS10において暗号化されたソフトウェアからハッシュ情報を算出する(ステップS12)。このとき、算出したハッシュ情報は保持しておく(ステップS13)。次に、情報記録媒体1と相互認証処理を行う(ステップS14)。相互認証処理が失敗した場合には、情報記録媒体1にデータを格納することなく処理を終了する(ステップS15)。相互認証処理が成功した場合には、暗号化されたソフトウェアを情報記録媒体1内に非秘匿領域5に書き込む(ステップS16)。次に、保持していた鍵情報やハッシュ情報やその他利用情報21などの情報を情報記録媒体1内の秘匿領域4に書き込んで(ステップS17)、処理を終了する。
【0042】
このような処理によって構成された情報が、情報記録媒体1の秘匿領域4に、暗号化されたソフトウェア8が非秘匿領域5に書き込まれるため、ソフトウェア5の不正利用を防ぐことが可能となる。
【0043】
(実施の形態2)
ここでは実施の形態2として、情報記録媒体1の秘匿領域4に格納される鍵情報6とハッシュ情報7の算出方法が実施の形態1と異なる方法について示す。その他システム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0044】
図5は、実施の形態1の図3で示していたハッシュ情報7の算出方法の異なる場合について示している。図において、非秘匿領域5に格納されているソフトウェア8は、まず、(1)で示すようにハッシュ値が計算される。このとき算出されたハッシュ値を含むハッシュ情報7が秘匿領域4に格納される。次に(2)で示すように鍵を用いて暗号化される。そして暗号化に使用した鍵を含む鍵情報6が秘匿領域4に格納される。
【0045】
図6は、図5で示した方法によって秘匿領域4に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体1の秘匿領域4や非秘匿領域5にデータを書く機能を有するパソコンや、電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体1に格納されるソフトウェアに対してハッシュアルゴリズムを用いてハッシュ値を算出する(ステップS20)。このとき、算出したハッシュ情報は保持しておく(ステップS21)。次に、ソフトウェアに対して暗号化アルゴリズムを使用して暗号化する(ステップS22)。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく(ステップS23)。以降の手順は実施の形態1の図3で示したステップS14からステップS17で示した処理方法と同様である。
【0046】
このような処理によって構成された情報が、情報記録媒体1の秘匿領域4に、暗号化されたソフトウェア5が非秘匿領域5に書き込まれるため、ソフトウェア5の不正利用を防ぐことが可能となる。
【0047】
(実施の形態3)
ここでは、実施の形態3として、実施の形態1や実施の形態2の方法によって示されたソフトウェア実行制御方法を実現するために、情報記録媒体1の秘匿領域4に格納されるハッシュ情報7に関して、特にハッシュ値の算出方法について示す。その他システム全体の構成はついては実施の形態1で示した実行制御方法と同様であるためここでの説明は割愛する。
【0048】
図7は、ハッシュ情報7に関して詳細に示した一例の図である。秘匿領域4に格納されているハッシュ情報7はハッシュ値を計算する対象のデータのどの部分をハッシュ値計算に使用するかを表す情報と、その領域から計算されたハッシュ値から構成される。図7ではハッシュ値を計算する対象のデータのオフセットAからBまでの長さNと、オフセットCからDまでの長さMの領域のデータを用いてハッシュ値を計算して、ハッシュ情報7としていることを示す図である。ハッシュ情報7内の第1ハッシュ対象領域情報71は、ハッシュ値を算出する対象のデータであるソフトウェア8のオフセットAからBのオフセット情報などの情報から構成されている。一方、ハッシュ情報7内の第2ハッシュ対象領域情報72は、ハッシュの値を算出する対象のデータであるソフトウェア8のオフセットCからオフセットDといったオフセット情報などの情報から構成されている。ハッシュ情報7内のハッシュ値73は、第1ハッシュ対象領域情報71と第2ハッシュ対象領域情報72から算出されるハッシュ値が書き込まれている。このように、秘匿領域4のハッシュ情報7にハッシュ値を計算するためのデータのオフセット等といった情報を書き込めることによって、ソフトウェア8に関する任意のサイズやオフセットのハッシュ情報を設定することが可能となる。
【0049】
ここで示したソフトウェア8のオフセットA、B、C、Dの値はソフトウェア8のデータの大きさによって、例えば一定の数式を用いて決まる任意の値であってもよいし、ソフトウェア内の重要な部分の改竄チェックを行うために、ソフトウェア8を提供する提供者が任意に決めるような値であってもよい。なお、ここでは、ハッシュ対象領域情報として2つ格納している例を示しているが、1つでも構わず、また2つ以上の情報が格納できる仕組みとなっていてもよい。
【0050】
さらに、ソフトウェア8のハッシュ値算出のために使用される領域から、複数の領域のハッシュ値を予め算出しておき、秘匿領域4のハッシュ情報7内のハッシュ値領域73に格納される値は、その複数の領域のハッシュ値を算出した値の論理演算によって得られる値でもよい。さらにこのとき、ここではAからB、CからDまでの領域を同一ハッシュ関数によってハッシュ値を算出する例を示しているが、ハッシュ値算出対象領域に応じて、用いるハッシュ関数の種類を変更してもよく、図示はしていないがどのようなハッシュ関数を使用したかという情報とともに第1ハッシュ対象領域情報71や第2ハッシュ対象領域情報72内といったハッシュ情報内7内に保持しておき、各々の領域から算出されたハッシュ値の論理演算によって得られる値の論理演算によって得られる値であってもよい。
【0051】
さらに、図8に示すように第1ハッシュ対象領域情報81や第2ハッシュ対象領域情報82のように、ハッシュ値算出のために使用される各々の領域から算出されるハッシュ値、オフセット情報、使用したハッシュ関数の種類を特定する識別子から構成されるハッシュ情報であってもよい。
【0052】
以上のようなハッシュ値の計算方法は、実施の形態1や実施の形態2で示したソフトウェア実行制御方法を実現するためのデータの格納方法において、本実施の形態で示したハッシュ情報7の構造とハッシュ情報の算出方法の方法に代えて実行可能であることはいうまでもない。
【0053】
このような実施の形態に係るハッシュ情報の算出を行えば、ソフトウェア全体のハッシュ値を算出する必要がなくなり、情報記録媒体1の情報を読み込んで処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【0054】
(実施の形態4)
ここでは、実施の形態4として、実施の形態3で示されたハッシュ情報の算出方法に加えて、特に鍵情報によって暗号化される領域について示す。その他のシステム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0055】
図9は、秘匿領域4に格納されている鍵情報6とハッシュ情報7に関して詳細に示した図の一例である。図9において、秘匿領域4に格納されているハッシュ情報7の算出方法は、実施の形態3で図7を用いて示した方法と同様であるため、ここでは説明を割愛する。
【0056】
図9では、ソフトウェア8のオフセットAからB、CからDがハッシュ情報の算出に使用されていることを示している。このとき、ソフトウェア8のオフセット0からAまでと、BからCまでと、DからEまでの領域のみが暗号化され、その領域を暗号化する際に使用した鍵に関する鍵情報が秘匿領域4の鍵情報6に格納される。暗号化される方法としては、オフセット0からA、BからC、DからEまでを足されて秘匿領域4に格納されている鍵情報6によって暗号化されてもよいし、それぞれの領域が鍵情報6によって別々の暗号アルゴリズムによって暗号化されていてもよい。このような場合、ソフトウェア8は何れの領域も暗号化或いはハッシュ値計算のどちらか一方に使用されることになる。
【0057】
さらに図10は、図9で示した方法を拡張した一例である。図10では、特に、ソフトウェア8のオフセットAとA’で示している部分が図9で示した構成とは異なる。図10では、ソフトウェア8のオフセット0からA’までが鍵情報を用いて暗号化され、AからBまでがハッシュ情報を算出するために使用される領域を示している。つまり、AからA’までの領域は暗号化にもハッシュ値の計算にも使用される領域となる。このような構造にした場合、ソフトウェア8の暗号化を行う領域がどの場所に位置しているかは、秘匿領域4のハッシュ情報7の第1ハッシュ対象領域71や第2ハッシュ対象領域情報72などの、ハッシュ対象領域情報から算出することができないため、鍵情報6内の第1暗号化対象領域情報91はソフトウェア8のオフセット0からA’のオフセット情報などの情報が、第2暗号化対象領域情報92はソフトウェア8のオフセットBからCのオフセット情報などの情報で構成されている。また、図10中には図示していないが、これらの情報には図9の説明の部分で示したようにどのような暗号アルゴリズムを使用したかという情報が含まれていてもよい。さらに図11で示すように第1暗号化対象領域情報111や第2暗号化対象領域情報112のように、暗号化の対象となる各々の領域の暗号化に使用される鍵の値、オフセット情報、使用した暗号化アルゴリズムを示す暗号化処理方法の情報から構成される鍵情報であってもよい。なお、このような鍵情報の構成は図9の構成に用いることも可能である。
【0058】
図9で示した構成方法では、実施の形態1と実施の形態2で示したソフトウェア8の暗号化とハッシュ値の計算において、どちらを先に処理を行ってその値を格納するかといった違いはなくなる。一方、図10や図11で示した構成方法では、暗号化される領域とハッシュ値を算出するための領域が重なっている。そのため、実施の形態1や実施の形態2で示した方法における、ソフトウェアの暗号化の処理方法や鍵情報6の構造、ハッシュ情報7の算出方法やハッシュ情報7の構造のところを図10や図11で示した方法・構造に代えて実行可能であることは言うまでもない。また、図10や図11では、ソフトウェア8の全ての領域が暗号化またはハッシュ情報の算出のために使用される領域のように示しているが、ソフトウェア8に暗号化やハッシュ情報7の算出に使用されない領域があってもよい。
【0059】
このような実施の形態に係る、暗号化処理を行うことによって、情報記録媒体1に格納するソフトウェア全体のハッシュ値の計算や、ソフトウェア全体の暗号化をする必要がなくなり、情報記録媒体1のソフトウェアを読み込んだり、ソフトウェアを書き込んだりする処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【0060】
(実施の形態5)
ここでは、実施の形態5として、秘匿領域4に格納されている、鍵情報6とハッシュ情報7を含む情報と、非秘匿領域5に格納されているソフトウェアの組み合わせを識別できる方法の一例について示す。その他、システム全体の構成の概要については実施の形態1と同様であるためここでの説明は割愛する。
【0061】
図12は、秘匿領域4に格納されている鍵情報6とハッシュ情報7や各種情報を含んで1つのファイル20に格納され、ソフトウェア120は通し番号をつけた形で非秘匿領域5に格納されている図を示している。非秘匿領域5内のソフトウェアはprogram001.prg120のように、固有ファイル名+通し番号+拡張子というファイル名をつけている。
【0062】
この場合に該当するソフトウェアは、秘匿領域4の鍵情報とハッシュ情報は、ソフトウェアの通し番号が001であるため、ファイル20の1番目のエントリである鍵情報1とハッシュ情報1がソフトウェアprogram001.prg120に該当する情報となる。同様に、鍵情報2とハッシュ情報2は、非秘匿領域5のソフトウェアprogram002.prg121の鍵情報とハッシュ情報に該当する。このように秘匿領域4に格納されている鍵情報とハッシュ情報が格納されているエントリ番号と、非秘匿領域5に格納されているソフトウェアのファイル名に付けられている番号が1対1に対応することで、容易に秘匿領域4の情報と非秘匿領域5の情報を対応させることが可能となる。
【0063】
このような形式は、実施の形態1から実施の形態4のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域4の情報と非秘匿領域5の情報を対応させることが可能となる。
【0064】
(実施の形態6)
ここでは、実施の形態6として、実施の形態5で示した秘匿領域4に格納されている情報と非秘匿領域5に格納されている情報の対応に関して、別の方法の一例について示す。その他システム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0065】
図13は、秘匿領域4に格納されている鍵情報6とハッシュ情報7を含む情報と、非秘匿領域5に格納されているソフトウェアとの組み合わせを識別する方法の一例を示している図である。秘匿領域4には鍵情報6とハッシュ情報7に加えて利用情報としてソフトウェア名格納情報130が格納されている。一方、非秘匿領域5にはソフトウェア8が格納されている。図13において非秘匿領域5に格納されているソフトウェア名はprogramA.exeであり、そのソフトウェア名が秘匿領域4のソフトウェア名格納情報130に格納されている。これにより非秘匿領域5に格納されているデータのうちどのソフトウェアと、秘匿領域4に格納されている鍵情報やハッシュ情報が対応するかがソフトウェアファイル名で容易に確認することが可能となる。
【0066】
このような形式は、実施の形態1から実施の形態4のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域4の情報と非秘匿領域5に格納されているソフトウェアを対応させることが可能となる。
【0067】
【発明の効果】
以上説明したように、本発明による構造の情報記録媒体内にソフトウェアとそのソフトウェアに関する鍵情報とハッシュ情報を格納することによって、ソフトウェアの不正利用を防ぐことが可能となる。また、鍵情報によって暗号化されるソフトウェアの領域や、ハッシュ情報を算出するために使用されるソフトウェアの領域・サイズは任意に設定することが可能である。
【0068】
このため、比較的内部メモリ容量が小さく、ソフトウェアを多数インストールすることが困難な電子機器においても、当該ソフトウェア実行制御部を組み込み、ソフトウェアが格納された情報記録媒体を使用することによって、不正にソフトウェアが利用されることを防止することが可能となる。また、ソフトウェア実行制御部が処理するソフトウェアの復号化処理やハッシュ値の検算処理は、必ずしもソフトウェア全体の領域に対してする必要はないため、比較的高速に処理することが可能となりその実用的効果は大きい。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるソフトウェア実行制御方法の概要を示す構成図
【図2】本発明の実施の形態1における秘匿領域の情報の概要を示す図
【図3】本発明の実施の形態1における鍵情報とハッシュ情報の概要を示す図
【図4】本発明の実施の形態1における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図5】本発明の実施の形態2における鍵情報とハッシュ情報の概要を示す図
【図6】本発明の実施の形態2における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図7】本発明の実施の形態3における鍵情報とハッシュ情報の概要を示す図
【図8】本発明の実施の形態3における鍵情報とハッシュ情報の概要を示す図
【図9】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図10】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図11】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図12】本発明の実施の形態5における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【図13】本発明の実施の形態6における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【符号の説明】
1 情報記録媒体
2 固有情報
3 メモリ領域
4 秘匿領域
5 非秘匿領域
6 鍵情報
7 ハッシュ情報
8 ソフトウェア
9 情報記録媒体I/F
10 ソフトウェア実行制御部
11 相互認証処理部
12 ハッシュ情報処理部
13 復号処理部
14 実行判定部
20 ファイル
21 利用情報
71,81 第1ハッシュ対象領域情報
72,82 第2ハッシュ対象領域情報
73 ハッシュ値
83 第nハッシュ対象領域情報
91,111 第1暗号化対象領域情報
92,112 第2暗号化対象領域情報
93 鍵
113 第n暗号化対象領域情報
120,121 ソフトウェア
130 ソフトウェア名格納情報
【説明の属する技術分野】
本発明は、デジタルデータを記録するための半導体メモリカード及びその読み出し装置に関し、特にデジタルデータがソフトウェアである場合のソフトウェア実行制御方法に関する。
【0002】
【従来の技術】
デジタルデータであるソフトウェアはデータの欠損なしに無制限にコピー可能であり、近年のネットワーク環境の発達により、正規の所有権を保有しないユーザがネットワーク環境を利用して不正に入手することも可能となっている。これらのソフトウェアは、一般的に、インストール時に正規の所有者のみがソフトウェアベンダーから取得しているID情報を入力することによってインストールが可能となる仕組みで構成されている。しかし、これらのID情報がソフトウェアのコピーと共に漏洩した場合、正規の所有権を保有しないユーザであってもソフトウェアをインストールすることが可能となる。
【0003】
ソフトウェアの実行を制御する方法として、ソフトウェアの実行を行うユーザはユーザ固有情報として認証鍵を内蔵したハードウェアを保有し、ユーザがソフトウェアを起動しソフトウェア内に組み込まれているアクセス認証ルーチンに及ぶと、パラレルポートやUSBポートに前もって接続されている認証鍵を内蔵したハードウェアと通信を行い、正しい認証鍵の存在が確認されると次のステップへ実行を移し、正しい認証鍵の存在が確認されない場合には、ソフトウェアは自らを停止し以降の実行が行われないようにする方法がある。この方法によると正規の認証鍵を内蔵したハードウェアを所有したユーザ以外には、ソフトウェアを実行させることができなくなることが可能となる。
【0004】
しかし、このような方法ではソフトウェア内に当該ハードウェアと認証を行うためのモジュールが必要となる。そのため、専用のソフトウェアでモジュールを組み込んでおくなどの処理が必要となる。
【0005】
また、ソフトウェア自身全体を専用の鍵で暗号化しておき、実行時には鍵を使用して復号化を行い、ソフトウェアを実行する方法もある。例えば特許文献1では、記録媒体に格納してあるソフトウェアに対してソフトウェア鍵を使用して暗号化しておき、実行する際には該当鍵として復号化する方法について書かれている。ここでは、ソフトウェアを暗号化する鍵に対して乱数を用いて暗号化しておき、記録媒体が接続されるホスト側では、同じ乱数を使用して復号化している。
【0006】
一方では、半導体メモリカードに著作件保護機能を有し、デジタルコンテンツを暗号化して保持する方法もある。例えば特許文献2では、半導体メモリカードに著作権保護機能を有し、電子機器と半導体メモリカードで認証を行い、認証が成功した場合には、デジタルコンテンツを暗号化している鍵を取得することが可能となる方法となることが記述されている。
【0007】
【特許文献1】
特開平9−185501号公報
【特許文献2】
特開2001−14441号公報
【0008】
【発明が解決しようとする課題】
近年、小型の電子機器であるPDAなどのモバイル機器が多く普及しているものの、一般的に、それら携帯電子機器は内部データ容量が比較的少ない。一方で、ソフトウェアのデータ容量はより大きくなってきているため、電子機器にインストールされるソフトウェアの数や量は制限されてしまっている。このため、情報記録媒体にソフトウェアをインストールしておき、そのような携帯電子機器に情報記録媒体を装着して格納してあるソフトウェアを使用することが想定できる。この場合、さらにソフトウェアの不正コピーを防ぐため、ソフトウェアを暗号化して情報記録媒体内に格納し、実行時には復号化して使用することも想定できるが、小型の電子機器の処理能力はパソコンなどに比べて一般的に低いため、格納されたソフトウェアが高速に処理されることは困難である。しかし、そのような場合に好都合となる具体的なソフトウェア実行制御方法について、前述の特許文献1、特許文献2では開示されていない。
【0009】
本発明は、かかる課題を鑑みてなされたもので、情報記録媒体に暗号化されたソフトウェアと、暗号化に使用する鍵を保持しておき、PDAなどの携帯電子機器に情報記録媒体が装着されると保持されているソフトウェアを高速に実行することを可能とする情報記録媒体内に格納されるソフトウェアの実行制御方法に関する。
【0010】
【課題を解決するための手段】
上記目的を達成するための発明のうち、請求項1の発明は半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とする。
【0011】
請求項2の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【0012】
請求項3の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする。
【0013】
請求項4の発明は、請求項1に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする。
【0014】
請求項5の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0015】
請求項6の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0016】
請求項7の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする。
【0017】
請求項8の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【0018】
請求項9の発明は、請求項6に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする。
【0019】
請求項10の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法としている。
【0020】
請求項11の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする。
【0021】
請求項12の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、前記各々の領域に対するオフセット情報を含み、前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする。
【0022】
請求項13の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【0023】
請求項14の発明は、請求項10に記載のソフトウェア実行制御方法に加え、前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする。
【0024】
請求項15の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法としている。
【0025】
請求項16の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とする。
【0026】
請求項17の発明は、半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とする。
【0027】
【発明の実施の形態】
以下、図面を用いて本発明の実施の形態について説明するが、これによって本発明の技術範囲が制限されるものではないのはもちろんである。
【0028】
(実施の形態1)
図1は、本発明の実施の形態1に係るソフトウェア実行制御方法の全体の概略を示す図である。
【0029】
図1に示すソフトウェア実行制御方法は、情報記録媒体1、情報記録媒体I/F9、ソフトウェア実行制御部10を備える。
【0030】
情報記録媒体1は、例えば、SDメモリカード等の半導体メモリとCPUとを備え、相互認証処理の成立を条件として半導体メモリと外部のデータの伝送を許す著作件保護機能を備えたインテリジェントなカードであり、固有情報2、メモリ領域3、秘匿領域4、非秘匿領域5、鍵情報6、ハッシュ情報7、ソフトウェア8を備える。
【0031】
固有情報2は、情報記録媒体1に固有の情報であり、メモリ領域3内に暗号化して保存するデータを暗号化するための鍵等に使用する情報である。メモリ領域3は、情報記録媒体1と、ソフトウェア実行制御部10の相互認証処理の成立を条件としてアクセスすることが可能な秘匿領域4と、相互認証処理をしなくてもアクセスすることが可能な非秘匿領域5から構成される。図1の情報記録媒体1には、非秘匿領域5にソフトウェア8が格納されており、秘匿領域4にはソフトウェア8を例えば、DESやトリプルDESなどに代表されるような特定の暗号アルゴリズムを用いて暗号化する際に使用される鍵を含む情報である鍵情報6と、そのソフトウェア8を入力データとして、MD5やSHA−1などの与えられた原文から固定長の擬似乱数を生成する一方向関数であるハッシュ関数を使用して算出されるハッシュ値を含む情報であるハッシュ情報7が格納されている。
【0032】
情報記録媒体I/F9は、情報記録媒体1を接続するためのI/Fであり、PDAなどの携帯電子機器であるならば、情報記録媒体1を接続するためのスロット部にあたる。
【0033】
ソフトウェア実行制御部10は、情報記録媒体1に格納されているソフトウェア8などの情報の処理を行う、ハードウェアまたはソフトウェアで構成されるシステムであり、相互認証処理部11、ハッシュ情報処理部12、復号処理部13、実行判定部14を備える。
【0034】
相互認証処理部11は、暗号化処理を含めた所謂チャレンジ・レスポンス方式などの処理方法によって情報記録媒体1と互いに認証処理を行う相互認証処理を行う機能を備える。ハッシュ情報処理部12は入力されたデジタルデータのハッシュ値を算出する機能を備える。復号処理部13はデジタルデータの復号処理を行う機能を備える。実行判定部14は、ハッシュ情報の結果等に基づいて、情報記録媒体1から読み込んだソフトウェア8が実行可能であるか否かを判定する機能を備える。
【0035】
このようなハードウェアまたはソフトウェアで構成されるソフトウェア実行制御部がパソコンや、電子機器などの機器に内蔵されることによって、情報記録媒体1に格納されているソフトウェア8の実行を制御することが可能となる。
【0036】
図2は、情報記録媒体1の秘匿領域4内に格納されている情報について具体的な一例を示している。図2で鍵情報6とハッシュ情報7は非秘匿領域5に格納されているソフトウェア8に関する情報であり、これらはファイル20に格納されている。図2ではさらに、ファイル20が、データオフセット0からオフセットXまでは鍵情報、オフセットXからオフセットYまではハッシュ情報、オフセットYからオフセットZまではその他の情報として利用情報21が格納される一例を示している。なお、ここでの利用情報21はソフトウェア8の利用情報について記述されているものであり、ソフトウェア8の利用制限回数や、利用期限、識別情報などから構成される情報である。
【0037】
また、図2では、ファイル20には1つのソフトウェア8に関する鍵情報6とハッシュ情報7と利用情報21から構成される図を示しているが、非秘匿領域5に格納される複数のソフトウェア8に関する鍵情報6やハッシュ情報7や利用情報21等の情報が1つのファイルに含まれているような構成であってもよい。また、ファイル20に示すような秘匿領域4に格納されているこのような鍵情報6やハッシュ情報7や利用情報などのその他の情報のすべてまたは一部が、情報記録媒体1の固有情報2を用いて暗号化されて秘匿領域4内に格納されているような構成でもよい。
【0038】
図2のような構成の情報が情報記録媒体1の秘匿領域4に格納されていることによって、情報記録媒体1の非秘匿領域5に格納されているソフトウェア8を実行する機器は、ソフトウェア実行制御部10を介して情報記録媒体1と相互認証処理を成立させて、まず、秘匿領域4に格納されている情報を読み出す必要がある。次に、読み出された鍵情報6やハッシュ情報7、利用情報21をもとにソフトウェア8の実行を制御することが可能となる。
【0039】
次に、情報記録媒体1に格納されているデータの構成について説明する。
【0040】
図3は秘匿領域4に格納されている鍵情報6とハッシュ情報7の、非秘匿領域5に格納されているソフトウェア8との関係の概要について示している。図において、非秘匿領域5に格納されているソフトウェア8は、まず、(1)で示すように鍵を用いて暗号化される。このとき暗号化した鍵を含む鍵情報6が秘匿領域4に格納される。次に(2)で示すように暗号化されたソフトウェア8のハッシュ値が算出される。同様にこのとき算出されたハッシュ値を含むハッシュ値情報7が秘匿領域4に格納される。
【0041】
図4は、図3で示した方法によって秘匿領域4に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体1の秘匿領域4や非秘匿領域5にデータを書く機能を有するパソコンや携帯電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体1に格納されるソフトウェアに対して暗号化アルゴリズムを用いて暗号化する(ステップS10)。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく(ステップS11)。次に、ステップS10において暗号化されたソフトウェアからハッシュ情報を算出する(ステップS12)。このとき、算出したハッシュ情報は保持しておく(ステップS13)。次に、情報記録媒体1と相互認証処理を行う(ステップS14)。相互認証処理が失敗した場合には、情報記録媒体1にデータを格納することなく処理を終了する(ステップS15)。相互認証処理が成功した場合には、暗号化されたソフトウェアを情報記録媒体1内に非秘匿領域5に書き込む(ステップS16)。次に、保持していた鍵情報やハッシュ情報やその他利用情報21などの情報を情報記録媒体1内の秘匿領域4に書き込んで(ステップS17)、処理を終了する。
【0042】
このような処理によって構成された情報が、情報記録媒体1の秘匿領域4に、暗号化されたソフトウェア8が非秘匿領域5に書き込まれるため、ソフトウェア5の不正利用を防ぐことが可能となる。
【0043】
(実施の形態2)
ここでは実施の形態2として、情報記録媒体1の秘匿領域4に格納される鍵情報6とハッシュ情報7の算出方法が実施の形態1と異なる方法について示す。その他システム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0044】
図5は、実施の形態1の図3で示していたハッシュ情報7の算出方法の異なる場合について示している。図において、非秘匿領域5に格納されているソフトウェア8は、まず、(1)で示すようにハッシュ値が計算される。このとき算出されたハッシュ値を含むハッシュ情報7が秘匿領域4に格納される。次に(2)で示すように鍵を用いて暗号化される。そして暗号化に使用した鍵を含む鍵情報6が秘匿領域4に格納される。
【0045】
図6は、図5で示した方法によって秘匿領域4に保持される情報を作成する場合のフローチャートを示している。ここで、示しているフローチャートは、情報記録媒体1の秘匿領域4や非秘匿領域5にデータを書く機能を有するパソコンや、電子機器等のホスト機器が行う処理方法について示している。まずホスト機器は情報記録媒体1に格納されるソフトウェアに対してハッシュアルゴリズムを用いてハッシュ値を算出する(ステップS20)。このとき、算出したハッシュ情報は保持しておく(ステップS21)。次に、ソフトウェアに対して暗号化アルゴリズムを使用して暗号化する(ステップS22)。このとき、ソフトウェアを暗号化したときに使用した鍵情報を保持しておく(ステップS23)。以降の手順は実施の形態1の図3で示したステップS14からステップS17で示した処理方法と同様である。
【0046】
このような処理によって構成された情報が、情報記録媒体1の秘匿領域4に、暗号化されたソフトウェア5が非秘匿領域5に書き込まれるため、ソフトウェア5の不正利用を防ぐことが可能となる。
【0047】
(実施の形態3)
ここでは、実施の形態3として、実施の形態1や実施の形態2の方法によって示されたソフトウェア実行制御方法を実現するために、情報記録媒体1の秘匿領域4に格納されるハッシュ情報7に関して、特にハッシュ値の算出方法について示す。その他システム全体の構成はついては実施の形態1で示した実行制御方法と同様であるためここでの説明は割愛する。
【0048】
図7は、ハッシュ情報7に関して詳細に示した一例の図である。秘匿領域4に格納されているハッシュ情報7はハッシュ値を計算する対象のデータのどの部分をハッシュ値計算に使用するかを表す情報と、その領域から計算されたハッシュ値から構成される。図7ではハッシュ値を計算する対象のデータのオフセットAからBまでの長さNと、オフセットCからDまでの長さMの領域のデータを用いてハッシュ値を計算して、ハッシュ情報7としていることを示す図である。ハッシュ情報7内の第1ハッシュ対象領域情報71は、ハッシュ値を算出する対象のデータであるソフトウェア8のオフセットAからBのオフセット情報などの情報から構成されている。一方、ハッシュ情報7内の第2ハッシュ対象領域情報72は、ハッシュの値を算出する対象のデータであるソフトウェア8のオフセットCからオフセットDといったオフセット情報などの情報から構成されている。ハッシュ情報7内のハッシュ値73は、第1ハッシュ対象領域情報71と第2ハッシュ対象領域情報72から算出されるハッシュ値が書き込まれている。このように、秘匿領域4のハッシュ情報7にハッシュ値を計算するためのデータのオフセット等といった情報を書き込めることによって、ソフトウェア8に関する任意のサイズやオフセットのハッシュ情報を設定することが可能となる。
【0049】
ここで示したソフトウェア8のオフセットA、B、C、Dの値はソフトウェア8のデータの大きさによって、例えば一定の数式を用いて決まる任意の値であってもよいし、ソフトウェア内の重要な部分の改竄チェックを行うために、ソフトウェア8を提供する提供者が任意に決めるような値であってもよい。なお、ここでは、ハッシュ対象領域情報として2つ格納している例を示しているが、1つでも構わず、また2つ以上の情報が格納できる仕組みとなっていてもよい。
【0050】
さらに、ソフトウェア8のハッシュ値算出のために使用される領域から、複数の領域のハッシュ値を予め算出しておき、秘匿領域4のハッシュ情報7内のハッシュ値領域73に格納される値は、その複数の領域のハッシュ値を算出した値の論理演算によって得られる値でもよい。さらにこのとき、ここではAからB、CからDまでの領域を同一ハッシュ関数によってハッシュ値を算出する例を示しているが、ハッシュ値算出対象領域に応じて、用いるハッシュ関数の種類を変更してもよく、図示はしていないがどのようなハッシュ関数を使用したかという情報とともに第1ハッシュ対象領域情報71や第2ハッシュ対象領域情報72内といったハッシュ情報内7内に保持しておき、各々の領域から算出されたハッシュ値の論理演算によって得られる値の論理演算によって得られる値であってもよい。
【0051】
さらに、図8に示すように第1ハッシュ対象領域情報81や第2ハッシュ対象領域情報82のように、ハッシュ値算出のために使用される各々の領域から算出されるハッシュ値、オフセット情報、使用したハッシュ関数の種類を特定する識別子から構成されるハッシュ情報であってもよい。
【0052】
以上のようなハッシュ値の計算方法は、実施の形態1や実施の形態2で示したソフトウェア実行制御方法を実現するためのデータの格納方法において、本実施の形態で示したハッシュ情報7の構造とハッシュ情報の算出方法の方法に代えて実行可能であることはいうまでもない。
【0053】
このような実施の形態に係るハッシュ情報の算出を行えば、ソフトウェア全体のハッシュ値を算出する必要がなくなり、情報記録媒体1の情報を読み込んで処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【0054】
(実施の形態4)
ここでは、実施の形態4として、実施の形態3で示されたハッシュ情報の算出方法に加えて、特に鍵情報によって暗号化される領域について示す。その他のシステム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0055】
図9は、秘匿領域4に格納されている鍵情報6とハッシュ情報7に関して詳細に示した図の一例である。図9において、秘匿領域4に格納されているハッシュ情報7の算出方法は、実施の形態3で図7を用いて示した方法と同様であるため、ここでは説明を割愛する。
【0056】
図9では、ソフトウェア8のオフセットAからB、CからDがハッシュ情報の算出に使用されていることを示している。このとき、ソフトウェア8のオフセット0からAまでと、BからCまでと、DからEまでの領域のみが暗号化され、その領域を暗号化する際に使用した鍵に関する鍵情報が秘匿領域4の鍵情報6に格納される。暗号化される方法としては、オフセット0からA、BからC、DからEまでを足されて秘匿領域4に格納されている鍵情報6によって暗号化されてもよいし、それぞれの領域が鍵情報6によって別々の暗号アルゴリズムによって暗号化されていてもよい。このような場合、ソフトウェア8は何れの領域も暗号化或いはハッシュ値計算のどちらか一方に使用されることになる。
【0057】
さらに図10は、図9で示した方法を拡張した一例である。図10では、特に、ソフトウェア8のオフセットAとA’で示している部分が図9で示した構成とは異なる。図10では、ソフトウェア8のオフセット0からA’までが鍵情報を用いて暗号化され、AからBまでがハッシュ情報を算出するために使用される領域を示している。つまり、AからA’までの領域は暗号化にもハッシュ値の計算にも使用される領域となる。このような構造にした場合、ソフトウェア8の暗号化を行う領域がどの場所に位置しているかは、秘匿領域4のハッシュ情報7の第1ハッシュ対象領域71や第2ハッシュ対象領域情報72などの、ハッシュ対象領域情報から算出することができないため、鍵情報6内の第1暗号化対象領域情報91はソフトウェア8のオフセット0からA’のオフセット情報などの情報が、第2暗号化対象領域情報92はソフトウェア8のオフセットBからCのオフセット情報などの情報で構成されている。また、図10中には図示していないが、これらの情報には図9の説明の部分で示したようにどのような暗号アルゴリズムを使用したかという情報が含まれていてもよい。さらに図11で示すように第1暗号化対象領域情報111や第2暗号化対象領域情報112のように、暗号化の対象となる各々の領域の暗号化に使用される鍵の値、オフセット情報、使用した暗号化アルゴリズムを示す暗号化処理方法の情報から構成される鍵情報であってもよい。なお、このような鍵情報の構成は図9の構成に用いることも可能である。
【0058】
図9で示した構成方法では、実施の形態1と実施の形態2で示したソフトウェア8の暗号化とハッシュ値の計算において、どちらを先に処理を行ってその値を格納するかといった違いはなくなる。一方、図10や図11で示した構成方法では、暗号化される領域とハッシュ値を算出するための領域が重なっている。そのため、実施の形態1や実施の形態2で示した方法における、ソフトウェアの暗号化の処理方法や鍵情報6の構造、ハッシュ情報7の算出方法やハッシュ情報7の構造のところを図10や図11で示した方法・構造に代えて実行可能であることは言うまでもない。また、図10や図11では、ソフトウェア8の全ての領域が暗号化またはハッシュ情報の算出のために使用される領域のように示しているが、ソフトウェア8に暗号化やハッシュ情報7の算出に使用されない領域があってもよい。
【0059】
このような実施の形態に係る、暗号化処理を行うことによって、情報記録媒体1に格納するソフトウェア全体のハッシュ値の計算や、ソフトウェア全体の暗号化をする必要がなくなり、情報記録媒体1のソフトウェアを読み込んだり、ソフトウェアを書き込んだりする処理を行うパソコンや、携帯電子機器などの機器は計算量を減らすことが可能となる。
【0060】
(実施の形態5)
ここでは、実施の形態5として、秘匿領域4に格納されている、鍵情報6とハッシュ情報7を含む情報と、非秘匿領域5に格納されているソフトウェアの組み合わせを識別できる方法の一例について示す。その他、システム全体の構成の概要については実施の形態1と同様であるためここでの説明は割愛する。
【0061】
図12は、秘匿領域4に格納されている鍵情報6とハッシュ情報7や各種情報を含んで1つのファイル20に格納され、ソフトウェア120は通し番号をつけた形で非秘匿領域5に格納されている図を示している。非秘匿領域5内のソフトウェアはprogram001.prg120のように、固有ファイル名+通し番号+拡張子というファイル名をつけている。
【0062】
この場合に該当するソフトウェアは、秘匿領域4の鍵情報とハッシュ情報は、ソフトウェアの通し番号が001であるため、ファイル20の1番目のエントリである鍵情報1とハッシュ情報1がソフトウェアprogram001.prg120に該当する情報となる。同様に、鍵情報2とハッシュ情報2は、非秘匿領域5のソフトウェアprogram002.prg121の鍵情報とハッシュ情報に該当する。このように秘匿領域4に格納されている鍵情報とハッシュ情報が格納されているエントリ番号と、非秘匿領域5に格納されているソフトウェアのファイル名に付けられている番号が1対1に対応することで、容易に秘匿領域4の情報と非秘匿領域5の情報を対応させることが可能となる。
【0063】
このような形式は、実施の形態1から実施の形態4のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域4の情報と非秘匿領域5の情報を対応させることが可能となる。
【0064】
(実施の形態6)
ここでは、実施の形態6として、実施の形態5で示した秘匿領域4に格納されている情報と非秘匿領域5に格納されている情報の対応に関して、別の方法の一例について示す。その他システム全体の構成については、実施の形態1と同様であるためここでの説明は割愛する。
【0065】
図13は、秘匿領域4に格納されている鍵情報6とハッシュ情報7を含む情報と、非秘匿領域5に格納されているソフトウェアとの組み合わせを識別する方法の一例を示している図である。秘匿領域4には鍵情報6とハッシュ情報7に加えて利用情報としてソフトウェア名格納情報130が格納されている。一方、非秘匿領域5にはソフトウェア8が格納されている。図13において非秘匿領域5に格納されているソフトウェア名はprogramA.exeであり、そのソフトウェア名が秘匿領域4のソフトウェア名格納情報130に格納されている。これにより非秘匿領域5に格納されているデータのうちどのソフトウェアと、秘匿領域4に格納されている鍵情報やハッシュ情報が対応するかがソフトウェアファイル名で容易に確認することが可能となる。
【0066】
このような形式は、実施の形態1から実施の形態4のいずれにおいても適用することが可能となり、どの実施の形態においても、容易に秘匿領域4の情報と非秘匿領域5に格納されているソフトウェアを対応させることが可能となる。
【0067】
【発明の効果】
以上説明したように、本発明による構造の情報記録媒体内にソフトウェアとそのソフトウェアに関する鍵情報とハッシュ情報を格納することによって、ソフトウェアの不正利用を防ぐことが可能となる。また、鍵情報によって暗号化されるソフトウェアの領域や、ハッシュ情報を算出するために使用されるソフトウェアの領域・サイズは任意に設定することが可能である。
【0068】
このため、比較的内部メモリ容量が小さく、ソフトウェアを多数インストールすることが困難な電子機器においても、当該ソフトウェア実行制御部を組み込み、ソフトウェアが格納された情報記録媒体を使用することによって、不正にソフトウェアが利用されることを防止することが可能となる。また、ソフトウェア実行制御部が処理するソフトウェアの復号化処理やハッシュ値の検算処理は、必ずしもソフトウェア全体の領域に対してする必要はないため、比較的高速に処理することが可能となりその実用的効果は大きい。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるソフトウェア実行制御方法の概要を示す構成図
【図2】本発明の実施の形態1における秘匿領域の情報の概要を示す図
【図3】本発明の実施の形態1における鍵情報とハッシュ情報の概要を示す図
【図4】本発明の実施の形態1における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図5】本発明の実施の形態2における鍵情報とハッシュ情報の概要を示す図
【図6】本発明の実施の形態2における鍵情報とハッシュ情報の処理手順を示すフローチャート
【図7】本発明の実施の形態3における鍵情報とハッシュ情報の概要を示す図
【図8】本発明の実施の形態3における鍵情報とハッシュ情報の概要を示す図
【図9】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図10】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図11】本発明の実施の形態4における鍵情報とハッシュ情報の概要を示す図
【図12】本発明の実施の形態5における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【図13】本発明の実施の形態6における秘匿領域の情報と非秘匿領域の情報の関係を示す図
【符号の説明】
1 情報記録媒体
2 固有情報
3 メモリ領域
4 秘匿領域
5 非秘匿領域
6 鍵情報
7 ハッシュ情報
8 ソフトウェア
9 情報記録媒体I/F
10 ソフトウェア実行制御部
11 相互認証処理部
12 ハッシュ情報処理部
13 復号処理部
14 実行判定部
20 ファイル
21 利用情報
71,81 第1ハッシュ対象領域情報
72,82 第2ハッシュ対象領域情報
73 ハッシュ値
83 第nハッシュ対象領域情報
91,111 第1暗号化対象領域情報
92,112 第2暗号化対象領域情報
93 鍵
113 第n暗号化対象領域情報
120,121 ソフトウェア
130 ソフトウェア名格納情報
Claims (17)
- 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項1に記載のソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項1に記載のソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする請求項1に記載のソフトウェア実行制御方法。
- 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。 - 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。
- 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。
- 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。
- 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、
各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする請求項10に記載のソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、
前記各々の領域に対するオフセット情報を含み、
前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする請求項10に記載のソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項10に記載のソフトウェア実行制御方法。 - 前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項10に記載のソフトウェア実行制御方法。 - 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法。 - 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とするソフトウェア実行制御方法。 - 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、
前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003029218A JP2004240719A (ja) | 2003-02-06 | 2003-02-06 | ソフトウェア実行制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003029218A JP2004240719A (ja) | 2003-02-06 | 2003-02-06 | ソフトウェア実行制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004240719A true JP2004240719A (ja) | 2004-08-26 |
Family
ID=32956449
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003029218A Pending JP2004240719A (ja) | 2003-02-06 | 2003-02-06 | ソフトウェア実行制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004240719A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010102579A (ja) * | 2008-10-24 | 2010-05-06 | Hitachi Ltd | 情報処理装置、及びコンピュータプログラム |
| JP2025510173A (ja) * | 2022-03-21 | 2025-04-14 | 杭州海康机器人股▲ふん▼有限公司 | 暗号化方法、装置及び電子機器 |
-
2003
- 2003-02-06 JP JP2003029218A patent/JP2004240719A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010102579A (ja) * | 2008-10-24 | 2010-05-06 | Hitachi Ltd | 情報処理装置、及びコンピュータプログラム |
| JP2025510173A (ja) * | 2022-03-21 | 2025-04-14 | 杭州海康机器人股▲ふん▼有限公司 | 暗号化方法、装置及び電子機器 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4913871B2 (ja) | セキュアコンテンツおよびアプリケーションのコピーを防ぐセキュリティメカニズムを有するメモリカードのアップグレード | |
| JP5116325B2 (ja) | 情報処理装置、ソフトウェア更新方法及び画像処理装置 | |
| TWI851820B (zh) | 積體電路、用於安全地管理用於資料安全的多個密鑰的系統以及由積體電路執行的方法 | |
| US9158896B2 (en) | Method and system for generating a secure key | |
| JP4550050B2 (ja) | 利用認証方法、利用認証プログラム、情報処理装置および記録媒体 | |
| US20060168580A1 (en) | Software-management system, recording medium, and information-processing device | |
| JP5097130B2 (ja) | 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム | |
| US20090282263A1 (en) | Method and apparatus for a trust processor | |
| US20050132226A1 (en) | Trusted mobile platform architecture | |
| US20080025503A1 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
| CN101231622A (zh) | 基于闪存的数据存储方法和设备、及数据读取方法和设备 | |
| CN113343215A (zh) | 嵌入式软件的授权和认证方法及电子设备 | |
| CN101103628B (zh) | 主机装置、便携式存储装置以及用于更新元信息的方法 | |
| JP2009080772A (ja) | ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム | |
| JP6343869B2 (ja) | 携帯端末装置及び復号処理プログラム | |
| US20060155651A1 (en) | Device and method for digital rights management | |
| KR101405915B1 (ko) | 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법 | |
| JP2008033512A (ja) | セキュリティチップ及びプラットフォーム | |
| KR101054075B1 (ko) | 보호키 사용 제한 방법 및 장치 | |
| JP2004240719A (ja) | ソフトウェア実行制御方法 | |
| CN100472391C (zh) | 许可信息管理设备和许可信息管理方法 | |
| CN100410831C (zh) | 随机捆绑软件安装方法 | |
| JPWO2006046484A1 (ja) | 認証方法 | |
| Dolgunov | Enabling optimal security for removable storage devices | |
| CN114329564B (zh) | 私有化格式文件的处理方法、电子设备及介质 |