JP2004240719A - Software execution control method - Google Patents

Software execution control method Download PDF

Info

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
Application number
JP2003029218A
Other languages
Japanese (ja)
Inventor
Makoto Ochi
誠 越智
Shinji Inoue
信治 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003029218A priority Critical patent/JP2004240719A/en
Publication of JP2004240719A publication Critical patent/JP2004240719A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a software execution control system for preventing the illegal duplication of software concerning software stored in an information recording medium and an electronic equipment terminal, and for executing the software concerning a legal electronic equipment terminal. <P>SOLUTION: A secrecy area 4 accessible with the establishment of the two-way authentication of an information recording medium 1 as a condition is provided with key information 6 or hash information 7 associated with software 8 stored in a non-secrecy area 5, and a software execution control part 10 controls the execution of the software based on information stored in the secrecy area 4. <P>COPYRIGHT: (C)2004,JPO&NCIPI

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 ソフトウェア名格納情報
[0001]
[Technical field to which the description belongs]
The present invention relates to a semiconductor memory card for recording digital data and a reading device therefor, and more particularly to a software execution control method when digital data is software.
[0002]
[Prior art]
Software that is digital data can be copied indefinitely without loss of data, and the recent development of the network environment has made it possible for users who do not have proper ownership to illegally obtain it using the network environment ing. In general, such software is configured to be installed by only an authorized owner by inputting ID information acquired from a software vendor at the time of installation. However, when such ID information is leaked together with the copy of the software, even a user who does not have the proper ownership can install the software.
[0003]
As a method of controlling the execution of the software, it is assumed that the user who executes the software owns hardware having an authentication key as user-specific information, and the user starts the software and reaches an access authentication routine embedded in the software. Communicates with hardware that has a built-in authentication key connected in advance to the parallel port or USB port, and if the presence of the correct authentication key is confirmed, execution proceeds to the next step, and the presence of the correct authentication key is not confirmed In such a case, there is a method in which the software stops itself and prevents subsequent execution. According to this method, it becomes possible for anyone other than the user who owns the hardware having the proper authentication key to execute the software.
[0004]
However, such a method requires a module for performing authentication with the hardware in software. Therefore, it is necessary to perform processing such as installing a module using dedicated software.
[0005]
There is also a method in which the entire software itself is encrypted with a dedicated key, and the key is decrypted at the time of execution to execute the software. For example, Patent Literature 1 describes a method of encrypting software stored in a recording medium using a software key, and decrypting the software when the software is executed. Here, the key for encrypting the software is encrypted using a random number, and the host connected to the recording medium decrypts the key using the same random number.
[0006]
On the other hand, there is a method in which a semiconductor memory card has a copyright protection function and encrypts and holds digital contents. For example, in Patent Document 2, a semiconductor memory card has a copyright protection function, authentication is performed between an electronic device and a semiconductor memory card, and if authentication is successful, a key for encrypting digital content can be obtained. It is described that it becomes a possible method.
[0007]
[Patent Document 1]
JP-A-9-185501
[Patent Document 2]
JP 2001-14441 A
[0008]
[Problems to be solved by the invention]
In recent years, mobile devices such as PDAs, which are small electronic devices, have become widespread, but in general, these portable electronic devices have relatively small internal data capacity. On the other hand, as the data capacity of software has become larger, the number and amount of software installed in electronic devices have been limited. For this reason, it can be assumed that software is installed on the information recording medium, and the software stored with the information recording medium mounted on such a portable electronic device is used. In this case, in order to further prevent unauthorized copying of software, it can be assumed that the software is encrypted and stored in the information recording medium, and is decrypted and used at the time of execution. In general, it is difficult for stored software to be processed at high speed. However, a specific software execution control method that is advantageous in such a case is not disclosed in Patent Documents 1 and 2 described above.
[0009]
SUMMARY OF THE INVENTION The present invention has been made in view of such a problem, and holds an encrypted software and a key used for encryption on an information recording medium, and mounts the information recording medium on a portable electronic device such as a PDA. Accordingly, the present invention relates to a method for controlling the execution of software stored in an information recording medium that enables the stored software to be executed at high speed.
[0010]
[Means for Solving the Problems]
Among the inventions for achieving the above object, the invention of claim 1 is a software comprising an information recording medium constituted by a nonvolatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. An execution control method, wherein the information recording medium has a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and without passing through a specific authentication processing procedure. Also provided with a non-concealed area accessible, the secret area is key information that is information about a key for encrypting the software that is digital data stored in the non-confidential area of the information recording medium, The software stored in the non-confidential area is obtained as an input value by a hash function which is a so-called one-way function. Hash information that is information about a hash value to be stored in the non-secret area, the software encrypted by the key is provided, and the software execution control unit passes through the information recording medium and a specific authentication processing procedure. Reading the key information and the hash information stored in the secret area of the information recording medium, and calculating a decryption process and a hash value of the software stored in the non-secret area of the information recording medium. A function of controlling the execution of the software.
[0011]
According to a second aspect of the present invention, in addition to the software execution control method according to the first aspect, the key information stored in the secret area of the information recording medium encrypts the software stored in the non-secret area. The hash information stored in the secret area of the information recording medium includes information of a key for encrypting, and the software stored in the non-secret area encrypted by the key is encrypted. It is characterized in that it has a configuration including a hash value obtained by using the converted data as an input value for a hash function which is a so-called one-way function.
[0012]
According to a third aspect of the present invention, in addition to the software execution control method according to the first aspect, the key information stored in the secret area of the information recording medium encrypts the software stored in the non-secret area. The hash information stored in the secret area of the information recording medium includes information of a key for encrypting the data, and is a so-called one-way function using data before encryption by the key as an input value. The present invention is characterized in that the configuration includes a hash value obtained by using the hash function.
[0013]
According to a fourth aspect of the present invention, in addition to the software execution control method according to the first aspect, the hash information stored in the secret area of the information recording medium is encrypted after the encryption in the software file or after the encryption. It is characterized in that data of a part of the area before the data is used as an input value to a hash function which is a so-called one-way function.
[0014]
The invention of claim 5 is a software execution control method including an information recording medium including a non-volatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium, and the key information that is stored in the non-secret area. The data after or before the software is encrypted is used as the input value to the so-called one-way function hash function. In the case of using, information about a unique hash value with respect to the software, wherein a partial area used as an input value to a hash function of the software is obtained by using data composed of a plurality of areas, Hash information including offset information for each of the areas, the non-secret area includes the software encrypted by the key, and the software execution control unit executes the information recording medium and the specific authentication processing. The key information and the hash information stored in the secret area of the information recording medium are read through a procedure, and the decryption processing and the hash value of the software stored in the non-secret area of the information recording medium are performed. Software having a function of controlling the execution of the software by calculating It is a line control method.
[0015]
The invention according to claim 6 is a software execution control method including an information recording medium including a non-volatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium, and the key information that is stored in the non-secret area. The data after or before the software is encrypted is used as the input value to the so-called one-way function hash function. When used, the hash value is calculated using data in which a part of the area used as the input value to the hash function of the software is composed of a plurality of areas, and the hash value of each calculated area is calculated. The hash information including a logical operation result, the non-secret area includes the software encrypted by the key, and the software execution control unit passes through the information recording medium and the specific authentication processing procedure. Reading the key information and the hash information stored in the secret area of the information recording medium, and calculating a decryption process and a hash value of the software stored in the non-secret area of the information recording medium. And a function for controlling the execution of the software.
[0016]
According to a seventh aspect of the present invention, in addition to the software execution control method according to the sixth aspect, the hash information stored in the secret area of the information recording medium is encrypted after or after the software is encrypted. When the previous data is used as an input value to a hash function that is a so-called one-way function, a hash function in which each area is not necessarily the same using data in which the data includes a plurality of areas is used. A hash value is calculated using the hash value, and a value obtained by a logical operation result of the calculated hash value is included in the hash information.
[0017]
In the invention according to claim 8, in addition to the software execution control method according to claim 6, the hash information stored in the secret area of the information recording medium is encrypted after or after the software is encrypted. When the previous data is used as an input value to a hash function which is a so-called one-way function, a part of an area used as an input value to the hash function of the software is configured by a plurality of areas, and each area Are calculated using a hash function that is not necessarily the same, and a value calculated solely for the software obtained by a logical operation result of the calculated hash value for each calculated area, and at least the respective values The information of the function used for calculating the hash value of the area or the information of the offset which is the information of the area in the software is Characterized in that it is included in the serial hash information.
[0018]
According to a ninth aspect of the present invention, in addition to the software execution control method according to the sixth aspect, the hash information stored in the secret area of the information recording medium is encrypted after or after the software is encrypted. When the previous data is used as an input value to a hash function which is a so-called one-way function, a part of the area used as an input value to the hash function of the software uses data configured from a plurality of areas. In each of the regions, a hash value is calculated using a hash function that is not necessarily the same, and at least the calculated hash value for each of the calculated respective regions or the calculated hash value of each of the regions is used. The hash information may include information on the set function or offset information that is information on an area in the software.
[0019]
The invention according to claim 10 is a software execution control method including an information recording medium including a nonvolatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting a partial area of the software that is digital data stored in the non-secret area of the information recording medium; The data stored in the area after the software is encrypted or before it is encrypted is converted into a so-called one-way function, And hash information that is information on a hash value obtained as an input value to the lock function, the non-secret area includes software in which a part of the area is encrypted by the key, and the software execution control unit includes: The key information and the hash information stored in the secret area of the information recording medium are read through the information recording medium and the specific authentication processing procedure, and are stored in the non-secret area of the information recording medium. A software execution control method having a function of controlling execution of the software by decoding the software or calculating a hash value.
[0020]
According to an eleventh aspect of the present invention, in addition to the software execution control method according to the tenth aspect, key information, which is information on a key stored in the secret area of the information recording medium, is stored in the non-secret area. In the software that is digital data, an area excluding some unencrypted areas is divided into a plurality of areas, and information on a unique key for the software when performing encryption processing on each area, The key information includes offset information for the area.
[0021]
According to a twelfth aspect of the present invention, in addition to the software execution control method according to the tenth aspect, key information, which is information about a key stored in the secret area of the information recording medium, is stored in the non-secret area. In the software that is digital data, an area excluding a part of an unencrypted area is divided into a plurality of areas, and key information for each area when each area is subjected to encryption processing, and each of the areas , And each of the areas to be encrypted of the software is encrypted by the same encryption algorithm using the encryption key.
[0022]
According to a thirteenth aspect of the present invention, in addition to the software execution control method according to the tenth aspect, key information, which is information on a key stored in the secret area of the information recording medium, is stored in the non-secret area. Key information including only key information for the software when the area of the software which is digital data, except for some unencrypted areas, is divided into a plurality of areas and each area is subjected to encryption processing. The software is characterized in that the respective areas are encrypted using an encryption algorithm that is not necessarily the same using the key.
[0023]
According to a fourteenth aspect of the present invention, in addition to the software execution control method according to the tenth aspect, key information, which is information on a key stored in the secret area of the information recording medium, is stored in the non-secret area. Among the software that is digital data, an area excluding a part of the area that is not encrypted is divided into a plurality of areas and at least key information different from the software when performing encryption processing on each area, or Information indicating an encryption algorithm for encrypting each area, or key information including an offset indicating which part of the software has been encrypted, and the software uses the key to The region is encrypted by an encryption algorithm that is not necessarily the same.
[0024]
The invention of claim 15 is a software execution control method including an information recording medium including a non-volatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium, and the key information that is stored in the non-secret area. It is information on a hash value obtained by a hash function which is a so-called one-way function using software as an input value. And the non-confidential area includes the software encrypted by the key, and the software execution control unit passes the information recording medium and the specific authentication processing procedure to the information recording medium. The key information and the hash information stored in the secret area are read, and the software execution is controlled by calculating a decryption process and a hash value of the software stored in the non-secret area of the information recording medium. The software area stored in the non-concealed area and encrypted using the key stored in the secret area, and the software stored in the non-concealed area Is not the same as the area of the software when using as the input value of the so-called one-way function hash function. It is a software execution control method according to claim.
[0025]
The invention according to claim 16 is a software execution control method including an information recording medium including a non-volatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium, and the key information that is stored in the non-secret area. It is information on a hash value obtained by a hash function which is a so-called one-way function using software as an input value. And the non-confidential area includes the software encrypted by the key, and the software execution control unit passes the information recording medium and the specific authentication processing procedure to the information recording medium. The key information and the hash information stored in the secret area are read, and the software execution is controlled by calculating a decryption process and a hash value of the software stored in the non-secret area of the information recording medium. The key information and the hash information stored in the confidential area, so that the software stored in the non-concealed area can be uniquely identified. The entry number of the key information, the hash information, and a part of the software file name are the same number. And wherein the door.
[0026]
The invention according to claim 17 is a software execution control method including an information recording medium including a nonvolatile memory such as a semiconductor memory and a software execution control unit implemented by hardware or software. The medium includes a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium, and a non-secret area that can be accessed without passing through the specific authentication processing procedure, The secret area includes key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium, and the key information that is stored in the non-secret area. It is information on a hash value obtained by a hash function which is a so-called one-way function using software as an input value. Hash information and usage information including a file name of the software corresponding to the key information and the hash information stored in the non-secret area, and the non-secret area is encrypted by the key. The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium via the information recording medium and the specific authentication processing procedure, and It has a function of controlling the execution of the software by calculating a decryption process or a hash value of the software stored in the non-secret area of the recording medium.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings, but it is needless to say that the technical scope of the present invention is not limited thereby.
[0028]
(Embodiment 1)
FIG. 1 is a diagram schematically illustrating an entire software execution control method according to Embodiment 1 of the present invention.
[0029]
The software execution control method shown in FIG. 1 includes an information recording medium 1, an information recording medium I / F 9, and a software execution control unit 10.
[0030]
The information recording medium 1 is, for example, an intelligent card having a semiconductor memory such as an SD memory card and a CPU, and having a copyright protection function that allows transmission of external data to the semiconductor memory on condition that a mutual authentication process is established. Yes, it includes unique information 2, memory area 3, secret area 4, non-secret area 5, key information 6, hash information 7, and software 8.
[0031]
The unique information 2 is information unique to the information recording medium 1, and is information used as a key for encrypting data to be encrypted and stored in the memory area 3. The memory area 3 has an information recording medium 1 and a secret area 4 that can be accessed on condition that the mutual authentication processing of the software execution control unit 10 is established. It is composed of a non-secret area 5. In the information recording medium 1 of FIG. 1, software 8 is stored in a non-secret area 5, and software 8 is stored in the secret area 4 using a specific encryption algorithm represented by, for example, DES or triple DES. Key information 6 that is information including a key used when encrypting data, and using software 8 as input data to generate a fixed-length pseudo-random number from a given original text such as MD5 or SHA-1 Hash information 7, which is information including a hash value calculated using a hash function as a function, is stored.
[0032]
The information recording medium I / F 9 is an I / F for connecting the information recording medium 1 and, if it is a portable electronic device such as a PDA, corresponds to a slot for connecting the information recording medium 1.
[0033]
The software execution control unit 10 is a system composed of hardware or software for processing information such as software 8 stored in the information recording medium 1, and includes a mutual authentication processing unit 11, a hash information processing unit 12, A decoding processing unit 13 and an execution determination unit 14 are provided.
[0034]
The mutual authentication processing unit 11 has a function of performing a mutual authentication process of performing an authentication process with the information recording medium 1 by a processing method such as a so-called challenge response method including an encryption process. The hash information processing unit 12 has a function of calculating a hash value of the input digital data. The decoding processing unit 13 has a function of decoding digital data. The execution determination unit 14 has a function of determining whether the software 8 read from the information recording medium 1 is executable based on a result of the hash information or the like.
[0035]
Since the software execution control unit including such hardware or software is incorporated in a device such as a personal computer or an electronic device, the execution of the software 8 stored in the information recording medium 1 can be controlled. It becomes.
[0036]
FIG. 2 shows a specific example of information stored in the secret area 4 of the information recording medium 1. In FIG. 2, key information 6 and hash information 7 are information on software 8 stored in non-secret area 5, and these are stored in file 20. FIG. 2 further shows an example of file 20 in which usage information 21 is stored as key information from data offset 0 to offset X, hash information from offset X to offset Y, and other information from offset Y to offset Z. Is shown. Here, the usage information 21 describes the usage information of the software 8 and is information including the number of times of use of the software 8, the usage period, the identification information, and the like.
[0037]
FIG. 2 shows the file 20 including the key information 6, the hash information 7, and the usage information 21 for one piece of software 8, but shows a plurality of pieces of software 8 stored in the non-secret area 5. A configuration in which information such as the key information 6, the hash information 7, and the usage information 21 are included in one file may be adopted. In addition, all or a part of the other information such as the key information 6, the hash information 7, and the usage information stored in the confidential area 4 as shown in the file 20 is the unique information 2 of the information recording medium 1. A configuration may be used in which the data is encrypted and stored in the secret area 4.
[0038]
Since the information having the configuration as shown in FIG. 2 is stored in the secret area 4 of the information recording medium 1, the device that executes the software 8 stored in the non-secret area 5 of the information recording medium 1 performs software execution control. It is necessary to establish a mutual authentication process with the information recording medium 1 via the unit 10 and first read out the information stored in the secret area 4. Next, the execution of the software 8 can be controlled based on the read key information 6, hash information 7, and usage information 21.
[0039]
Next, the configuration of data stored in the information recording medium 1 will be described.
[0040]
FIG. 3 shows an outline of the relationship between the key information 6 and the hash information 7 stored in the secret area 4 and the software 8 stored in the non-secret area 5. In the figure, software 8 stored in the non-secret area 5 is first encrypted using a key as shown in (1). At this time, key information 6 including the encrypted key is stored in secret area 4. Next, a hash value of the encrypted software 8 is calculated as shown in (2). Similarly, the hash value information 7 including the calculated hash value is stored in the secret area 4.
[0041]
FIG. 4 shows a flowchart in the case where the information held in the secret area 4 is created by the method shown in FIG. The flowchart shown here shows a processing method performed by a host device such as a personal computer or a portable electronic device having a function of writing data in the secret area 4 and the non-secret area 5 of the information recording medium 1. First, the host device encrypts software stored in the information recording medium 1 using an encryption algorithm (step S10). At this time, key information used when encrypting the software is stored (step S11). Next, hash information is calculated from the software encrypted in step S10 (step S12). At this time, the calculated hash information is held (step S13). Next, a mutual authentication process is performed with the information recording medium 1 (step S14). If the mutual authentication processing has failed, the processing ends without storing data in the information recording medium 1 (step S15). If the mutual authentication process is successful, the encrypted software is written in the non-secret area 5 in the information recording medium 1 (step S16). Next, the stored information such as key information, hash information, and other usage information 21 is written into the secret area 4 in the information recording medium 1 (step S17), and the process ends.
[0042]
Since the information configured by such processing is written in the secret area 4 of the information recording medium 1 and the encrypted software 8 is written in the non-secret area 5, unauthorized use of the software 5 can be prevented.
[0043]
(Embodiment 2)
Here, as the second embodiment, a method of calculating the key information 6 and the hash information 7 stored in the secret area 4 of the information recording medium 1 which is different from the first embodiment will be described. Other configurations of the entire system are the same as those in the first embodiment, and thus description thereof will be omitted.
[0044]
FIG. 5 shows a case where the method of calculating the hash information 7 shown in FIG. 3 of the first embodiment is different. In the figure, the software 8 stored in the non-confidential area 5 first calculates a hash value as shown in (1). At this time, the hash information 7 including the calculated hash value is stored in the secret area 4. Next, as shown in (2), it is encrypted using a key. Then, key information 6 including the key used for the encryption is stored in the secret area 4.
[0045]
FIG. 6 shows a flowchart in the case where the information held in the secret area 4 is created by the method shown in FIG. The flowchart shown here shows a processing method performed by a personal computer having a function of writing data in the secret area 4 and the non-secret area 5 of the information recording medium 1 and a host device such as an electronic device. First, the host device calculates a hash value using a hash algorithm for software stored in the information recording medium 1 (step S20). At this time, the calculated hash information is held (step S21). Next, the software is encrypted using an encryption algorithm (step S22). At this time, key information used when encrypting the software is stored (step S23). Subsequent procedures are the same as the processing method shown in steps S14 to S17 of the first embodiment shown in FIG.
[0046]
Since the information composed by such processing is written in the secret area 4 of the information recording medium 1 and the encrypted software 5 is written in the non-secret area 5, unauthorized use of the software 5 can be prevented.
[0047]
(Embodiment 3)
Here, as the third embodiment, in order to realize the software execution control method shown by the method of the first or second embodiment, the hash information 7 stored in the secret area 4 of the information recording medium 1 is described. In particular, a method of calculating a hash value will be described. Other configurations of the entire system are the same as those of the execution control method described in the first embodiment, and thus description thereof will be omitted.
[0048]
FIG. 7 is a diagram of an example showing the hash information 7 in detail. The hash information 7 stored in the secret area 4 includes information indicating which part of the data for which the hash value is to be calculated is used for the hash value calculation, and the hash value calculated from the area. In FIG. 7, the hash value is calculated using the data of the area having the length N from the offset A to B and the length M from the offset C to D of the data for which the hash value is to be calculated. FIG. The first hash target area information 71 in the hash information 7 is composed of information such as offset information from the offset A to the offset B of the software 8 which is the data whose hash value is to be calculated. On the other hand, the second hash target area information 72 in the hash information 7 is composed of information such as offset information such as an offset C to an offset D of the software 8 which is data for which a hash value is to be calculated. As the hash value 73 in the hash information 7, a hash value calculated from the first hash target area information 71 and the second hash target area information 72 is written. As described above, by writing information such as an offset of data for calculating a hash value in the hash information 7 of the secret area 4, it is possible to set hash information of an arbitrary size and offset regarding the software 8.
[0049]
The values of the offsets A, B, C, and D of the software 8 shown here may be arbitrary values determined by, for example, a certain mathematical expression depending on the size of the data of the software 8, or may be important values in the software. It may be a value arbitrarily determined by the provider of the software 8 in order to check for tampering of the part. Here, an example is shown in which two pieces of hash target area information are stored, but one may be used, and a mechanism that can store two or more pieces of information may be used.
[0050]
Furthermore, a hash value of a plurality of areas is calculated in advance from an area used for calculating a hash value of the software 8, and a value stored in a hash value area 73 in the hash information 7 of the secret area 4 is: A value obtained by a logical operation of a value obtained by calculating a hash value of the plurality of areas may be used. Furthermore, at this time, an example is shown in which the hash values are calculated for the areas from A to B and C to D using the same hash function, but the type of the hash function to be used is changed according to the hash value calculation target area. Although not shown, it is held in the hash information 7 such as the first hash target area information 71 and the second hash target area information 72 together with information on what kind of hash function was used, It may be a value obtained by a logical operation of a value obtained by a logical operation of a hash value calculated from each area.
[0051]
Further, as shown in FIG. 8, as in the first hash target area information 81 and the second hash target area information 82, a hash value calculated from each area used for hash value calculation, offset information, It may be hash information composed of an identifier for specifying the type of the hash function.
[0052]
The hash value calculation method as described above is the same as the data storage method for realizing the software execution control method described in the first and second embodiments, except that the structure of the hash information 7 shown in the present embodiment is different from that of the first embodiment. Needless to say, the method can be executed instead of the method of calculating the hash information.
[0053]
By calculating the hash information according to such an embodiment, it is not necessary to calculate the hash value of the entire software, and a device such as a personal computer or a portable electronic device that reads information from the information recording medium 1 and processes the information. The amount of calculation can be reduced.
[0054]
(Embodiment 4)
Here, as the fourth embodiment, in addition to the method of calculating hash information described in the third embodiment, particularly, an area encrypted by key information will be described. Other configurations of the entire system are the same as those of the first embodiment, and thus description thereof will be omitted.
[0055]
FIG. 9 is an example of a diagram showing the key information 6 and the hash information 7 stored in the secret area 4 in detail. In FIG. 9, the method of calculating the hash information 7 stored in the secret area 4 is the same as the method shown in FIG. 7 in the third embodiment, and a description thereof will be omitted.
[0056]
FIG. 9 shows that offsets A to B and C to D of the software 8 are used for calculating hash information. At this time, only the area from offset 0 to A, from B to C, and from D to E of the software 8 is encrypted, and key information on the key used in encrypting the area is stored in the secret area 4. It is stored in the key information 6. As an encryption method, the offset 0 to A, B to C, and D to E may be added and encrypted by the key information 6 stored in the secret area 4, or each area may be encrypted by a key. The information 6 may be encrypted by different encryption algorithms. In such a case, the software 8 uses any area for either encryption or hash value calculation.
[0057]
FIG. 10 is an example in which the method shown in FIG. 9 is extended. In FIG. 10, particularly, the portions indicated by offsets A and A ′ of the software 8 are different from the configuration shown in FIG. In FIG. 10, offsets 0 to A ′ of the software 8 are encrypted using key information, and A to B indicate areas used for calculating hash information. That is, the area from A to A ′ is an area used for both encryption and calculation of the hash value. With such a structure, the location of the area where the software 8 is to be encrypted is located in the first hash target area 71 or the second hash target area information 72 of the hash information 7 of the secret area 4. Cannot be calculated from the hash target area information, the first encryption target area information 91 in the key information 6 contains information such as the offset information from offset 0 to A ′ of the software 8 as the second encryption target area information. Reference numeral 92 denotes information such as offset information of offsets B to C of the software 8. Although not shown in FIG. 10, these pieces of information may include information about what kind of encryption algorithm was used as shown in the description of FIG. Further, as shown in FIG. 11, as in the first encryption target area information 111 and the second encryption target area information 112, the value of the key used for encryption of each area to be encrypted and the offset information Key information composed of information of an encryption processing method indicating the used encryption algorithm. Note that such a configuration of the key information can be used for the configuration of FIG.
[0058]
In the configuration method shown in FIG. 9, in the encryption of software 8 and the calculation of the hash value shown in the first embodiment and the second embodiment, the difference is that which one is processed first and the value is stored. Disappears. On the other hand, in the configuration methods shown in FIGS. 10 and 11, the area to be encrypted and the area for calculating the hash value overlap. Therefore, in the methods shown in the first and second embodiments, the processing method of software encryption, the structure of key information 6, the calculation method of hash information 7, and the structure of hash information 7 are shown in FIGS. It goes without saying that the present invention can be executed in place of the method / structure shown in FIG. 10 and 11, all the areas of the software 8 are shown as areas used for encryption or calculation of hash information. There may be unused areas.
[0059]
By performing the encryption processing according to such an embodiment, it is not necessary to calculate the hash value of the entire software stored in the information recording medium 1 or to encrypt the entire software. A device such as a personal computer or a portable electronic device that performs a process of reading data or writing software can reduce the amount of calculation.
[0060]
(Embodiment 5)
Here, as a fifth embodiment, an example of a method for identifying a combination of information stored in the secret area 4 and including the key information 6 and the hash information 7 and software stored in the non-secret area 5 will be described. . In addition, since the outline of the configuration of the entire system is the same as that of the first embodiment, the description is omitted here.
[0061]
FIG. 12 shows that the key information 6 and the hash information 7 stored in the secret area 4 and the hash information 7 and various kinds of information are stored in one file 20, and the software 120 is stored in the non-secret area 5 with a serial number. FIG. The software in the non-secret area 5 is program001. As in prg120, a file name of unique file name + serial number + extension is given.
[0062]
In the software corresponding to this case, the key information and the hash information of the confidential area 4 have the serial number 001 of the software. The information corresponds to prg120. Similarly, the key information 2 and the hash information 2 are stored in the software program 002. This corresponds to the key information and hash information of prg121. As described above, the entry number in which the key information and the hash information stored in the secret area 4 are stored and the number assigned to the file name of the software stored in the non-secret area 5 have a one-to-one correspondence. By doing so, it is possible to easily make the information of the secret area 4 correspond to the information of the non-secret area 5.
[0063]
Such a format can be applied to any of the first to fourth embodiments, and in any of the embodiments, the information in the secret area 4 and the information in the non-secret area 5 can be easily associated with each other. It becomes possible.
[0064]
(Embodiment 6)
Here, as the sixth embodiment, an example of another method regarding the correspondence between the information stored in the secret area 4 and the information stored in the non-secret area 5 described in the fifth embodiment will be described. Other configurations of the entire system are the same as those in the first embodiment, and thus description thereof will be omitted.
[0065]
FIG. 13 is a diagram illustrating an example of a method of identifying a combination of information including the key information 6 and the hash information 7 stored in the secret area 4 and software stored in the non-secret area 5. . The secret area 4 stores software name storage information 130 as usage information in addition to the key information 6 and the hash information 7. On the other hand, software 8 is stored in the non-secret area 5. In FIG. 13, the software name stored in the non-secret area 5 is programA. exe, and the software name is stored in the software name storage information 130 of the secret area 4. As a result, it is possible to easily confirm which software of the data stored in the non-secret area 5 corresponds to the key information or the hash information stored in the secret area 4 by the software file name.
[0066]
Such a format can be applied to any of the first to fourth embodiments. In any of the embodiments, the information of the secret area 4 and the information of the secret area 5 are easily stored. Software can be made compatible.
[0067]
【The invention's effect】
As described above, by storing software, key information and hash information relating to the software in the information recording medium having the structure according to the present invention, it is possible to prevent unauthorized use of the software. Further, the area of the software encrypted by the key information and the area and size of the software used to calculate the hash information can be set arbitrarily.
[0068]
For this reason, even in an electronic device having a relatively small internal memory capacity and in which it is difficult to install a large number of software, the software execution control unit is incorporated and an information recording medium in which the software is stored is used to illegally execute the software. Can be prevented from being used. Also, since the software decryption processing and hash value verification processing performed by the software execution control unit do not necessarily have to be performed on the entire area of the software, the processing can be performed at a relatively high speed. Is big.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing an outline of a software execution control method according to a first embodiment of the present invention;
FIG. 2 is a diagram showing an outline of information of a secret area according to the first embodiment of the present invention.
FIG. 3 is a diagram showing an outline of key information and hash information according to the first embodiment of the present invention.
FIG. 4 is a flowchart showing a procedure for processing key information and hash information according to the first embodiment of the present invention;
FIG. 5 is a diagram showing an outline of key information and hash information according to Embodiment 2 of the present invention.
FIG. 6 is a flowchart showing a processing procedure of key information and hash information in Embodiment 2 of the present invention.
FIG. 7 is a diagram showing an outline of key information and hash information according to Embodiment 3 of the present invention.
FIG. 8 is a diagram showing an outline of key information and hash information in Embodiment 3 of the present invention.
FIG. 9 is a diagram showing an outline of key information and hash information according to Embodiment 4 of the present invention.
FIG. 10 is a diagram showing an outline of key information and hash information according to a fourth embodiment of the present invention.
FIG. 11 is a diagram showing an outline of key information and hash information according to a fourth embodiment of the present invention.
FIG. 12 is a diagram showing a relationship between information of a secret area and information of a non-secret area according to the fifth embodiment of the present invention.
FIG. 13 is a diagram illustrating a relationship between information of a secret area and information of a non-secret area according to the sixth embodiment of the present invention.
[Explanation of symbols]
1 Information recording medium
2 unique information
3 Memory area
4 Secret area
5 Non-secret area
6 key information
7 Hash information
8 Software
9 Information recording medium I / F
10 Software execution control unit
11 Mutual authentication processing unit
12 Hash information processing unit
13 Decryption processing unit
14 Execution determination unit
20 files
21 Usage information
71, 81 First hash target area information
72, 82 Second hash target area information
73 hash value
83 nth hash target area information
91, 111 First encryption target area information
92, 112 Second encryption target area information
93 keys
113 n-th encryption target area information
120, 121 software
130 Software name storage information

Claims (17)

半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
Hash information that is information about a hash value obtained by a hash function that is a so-called one-way function with the software stored in the non-secret area as an input value,
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and a specific authentication processing procedure, and reads the non-secret area of the information recording medium. A software execution control method having a function of controlling the execution of the software by decoding the software stored in the software and calculating a hash value.
前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化された前記非秘匿領域に格納されている前記ソフトウェアが暗号化されたデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項1に記載のソフトウェア実行制御方法。
The key information stored in the secret area of the information recording medium includes key information for encrypting the software stored in the non-secret area,
The hash information stored in the secret area of the information recording medium is a so-called one-way function using, as an input value, the software encrypted data stored in the non-secret area encrypted by the key. 2. The software execution control method according to claim 1, wherein the configuration includes a hash value obtained by using the hash function as follows.
前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報は前記非秘匿領域に格納されている前記ソフトウェアを暗号化するための鍵の情報を含んでおり、
前記情報記録媒体の前記秘匿領域に格納されている前記ハッシュ情報は、前記鍵によって暗号化される以前のデータを入力値として所謂一方向関数であるハッシュ関数に使用することによって得られるハッシュ値を含む構成であることを特徴とする請求項1に記載のソフトウェア実行制御方法。
The key information stored in the secret area of the information recording medium includes key information for encrypting the software stored in the non-secret area,
The hash information stored in the secret area of the information recording medium is a hash value obtained by using data before being encrypted by the key as an input value for a hash function that is a so-called one-way function. The software execution control method according to claim 1, wherein the software execution control method includes:
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアファイル内の暗号化された後または暗号化される前の一部の領域のデータを、所謂一方向関数であるハッシュ関数への入力値として使用することを特徴とする請求項1に記載のソフトウェア実行制御方法。The hash information stored in the confidential area of the information recording medium is obtained by encrypting data of a part of the software file after or before encryption in the software file by using a hash function which is a so-called one-way function. 2. The software execution control method according to claim 1, wherein the method is used as an input value to a software. 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて得られる、前記ソフトウェアに対して唯一のハッシュ値に関する情報と、各々の前記領域に対するオフセット情報を含むハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
When the data stored in the non-concealed area after encryption or before encryption is used as an input value to a hash function that is a so-called one-way function, when the hash function of the software is used. A part of a region used as an input value is obtained by using data composed of a plurality of regions. Hash information including information on a unique hash value for the software and offset information for each of the regions. With
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A software execution control method having a function of controlling execution of the software by decoding the software stored in an area and calculating a hash value.
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果が含まれるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
When the data stored in the non-concealed area after encryption or before encryption is used as an input value to a hash function that is a so-called one-way function, when the hash function of the software is used. A hash value is calculated using a data in which a partial area used as an input value is composed of a plurality of areas, and hash information including a logical operation result of the calculated hash value for each of the calculated areas is provided. ,
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A software execution control method having a function of controlling execution of the software by decoding the software stored in an area and calculating a hash value.
前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記データが複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された前記ハッシュ値の論理演算結果によって得られる値が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。The hash information stored in the secret area of the information recording medium uses data after or before the software is encrypted as an input value to a hash function that is a so-called one-way function. In the case, the data is composed of a plurality of regions, each region is calculated with a hash function using a hash function that is not necessarily the same for each region, and obtained by a logical operation result of the calculated hash value. The software execution control method according to claim 6, wherein a value to be obtained is included in the hash information. 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成され、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、算出された各々の領域に対するハッシュ値の論理演算結果によって得られる前記ソフトウェアに対して唯一算出される値と、少なくとも前記各々の領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。The hash information stored in the secret area of the information recording medium uses data after or before the software is encrypted as an input value to a hash function that is a so-called one-way function. In the case, a part of the area used as an input value to the hash function of the software is composed of a plurality of areas, and each area calculates a hash value using a hash function that is not necessarily the same, and is calculated. And a value uniquely calculated for the software obtained by a logical operation result of a hash value for each area, and at least information of a function used for calculating the hash value of each area or information in the software. 7. The software according to claim 6, wherein offset information that is area information is included in the hash information. A execution control method. 前記情報記録媒体の前記秘匿領域に格納されているハッシュ情報は、前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として使用する場合、前記ソフトウェアのハッシュ関数への入力値として使用される一部の領域が複数の領域から構成されるデータを用いて、各々の領域はそれぞれ同一とは限らないハッシュ関数を用いてハッシュ値を算出し、少なくとも算出された各々の前記各領域に対する前記ハッシュ値または、前記各領域の前記ハッシュ値算出のために使用した関数の情報または、前記ソフトウェア内の領域の情報であるオフセットの情報が前記ハッシュ情報に含まれることを特徴とする請求項6に記載のソフトウェア実行制御方法。The hash information stored in the secret area of the information recording medium uses data after or before the software is encrypted as an input value to a hash function that is a so-called one-way function. In the case, a partial area used as an input value to the hash function of the software uses data composed of a plurality of areas, and each area uses a hash function that is not necessarily the same as each area to generate a hash value. The calculated, at least the calculated hash value for each of the respective areas, or information of a function used for calculating the hash value of each of the areas, or information of an offset which is information of an area in the software, is The software execution control method according to claim 6, wherein the software execution control method is included in hash information. 半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の領域を暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアが暗号化された後または暗号化される前のデータを、所謂一方向関数であるハッシュ関数への入力値として得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって一部の領域が暗号化されたソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
In the secret area, among the software that is digital data stored in the non-secret area of the information recording medium, key information that is information about a key for encrypting a partial area,
Hash information, which is information about a hash value obtained as an input value to a hash function, which is a so-called one-way function, using data after or before the software stored in the non-secret area is encrypted. With
The non-secret area includes software in which a part of the area is encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A software execution control method having a function of controlling execution of the software by decoding the software stored in an area and calculating a hash value.
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報と、
各々の前記領域に対するオフセット情報を含む鍵情報であることを特徴とする請求項10に記載のソフトウェア実行制御方法。
Key information, which is information about a key stored in the secret area of the information recording medium, is an area of the software, which is digital data stored in the non-secret area, excluding some unencrypted areas. Is divided into a plurality of areas, and the only key information for the software when performing encryption processing on each area,
11. The software execution control method according to claim 10, wherein the key information includes offset information for each of the areas.
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記各々の領域に対する鍵の情報と、
前記各々の領域に対するオフセット情報を含み、
前記ソフトウェアの暗号化される領域は当該暗号化鍵によって各々の前記領域は同一の暗号アルゴリズムによって暗号化されることを特徴とする請求項10に記載のソフトウェア実行制御方法。
Key information, which is information about a key stored in the secret area of the information recording medium, is an area of the software, which is digital data stored in the non-secret area, excluding some unencrypted areas. Is divided into a plurality of areas, the key information for each area when performing encryption processing of each area,
Including offset information for each of the regions,
The software execution control method according to claim 10, wherein each of the areas to be encrypted of the software is encrypted by the same encryption algorithm using the encryption key.
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して唯一の鍵の情報を含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項10に記載のソフトウェア実行制御方法。
Key information, which is information about a key stored in the secret area of the information recording medium, is an area of the software, which is digital data stored in the non-secret area, excluding some unencrypted areas. Is key information including only key information for the software when the area is divided into a plurality of areas and each area is encrypted,
11. The software execution control method according to claim 10, wherein the software is encrypted using the key by using an encryption algorithm that is not necessarily the same for each of the areas.
前記情報記録媒体の前記秘匿領域に格納されている鍵に関する情報である鍵情報は、前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアのうち、一部の暗号化されない領域を除く領域が、複数の領域に分かれ各々の領域を暗号処理する際の前記ソフトウェアに対して各々異なる少なくとも鍵の情報または、前記各々の領域を暗号化するための暗号化アルゴリズムを示す情報または、前記ソフトウェアのどの部分の暗号化を行ったかを示すオフセットを含む鍵情報であり、
前記ソフトウェアは前記鍵を使用して前記各々の領域を同一とは限らない暗号化アルゴリズムによって暗号化されていることを特徴とする請求項10に記載のソフトウェア実行制御方法。
Key information, which is information about a key stored in the secret area of the information recording medium, is an area of the software, which is digital data stored in the non-secret area, excluding some unencrypted areas. Is divided into a plurality of areas, and at least different key information for the software when encrypting each area, or information indicating an encryption algorithm for encrypting each area, or Key information including an offset indicating which part has been encrypted,
11. The software execution control method according to claim 10, wherein the software is encrypted using the key by using an encryption algorithm that is not necessarily the same for each of the areas.
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵を使用して暗号化される前記非秘匿領域に格納されている前記ソフトウェアの領域と、前記非秘匿領域に格納されている前記ソフトウェアを所謂一方向関数であるハッシュ関数の入力値として使用する際の前記ソフトウェアの領域とは同一領域ではないことを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
Hash information that is information about a hash value obtained by a hash function that is a so-called one-way function with the software stored in the non-secret area as an input value,
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A function of controlling the execution of the software by calculating a decryption process and a hash value of the software stored in the area,
The area of the software stored in the non-secret area, which is encrypted using the key stored in the secret area, and the software stored in the non-secret area, using a so-called one-way function. A software execution control method, wherein an area of the software used as an input value of a certain hash function is not the same area.
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェア実行を制御する機能を有し、
前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報は、前記非秘匿領域に格納されている前記ソフトウェアを一意に識別できるように、前記秘匿領域内のファイル構成における前記鍵情報と前記ハッシュ情報のエントリ番号と前記ソフトウェアのファイル名の一部が同一番号であることを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
Hash information that is information about a hash value obtained by a hash function that is a so-called one-way function with the software stored in the non-secret area as an input value,
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A function of controlling the execution of the software by calculating a decryption process and a hash value of the software stored in the area,
The key information and the hash information stored in the secret area are the key information and the hash in a file configuration in the secret area so that the software stored in the non-secret area can be uniquely identified. A software execution control method, wherein an entry number of information and a part of a file name of the software are the same number.
半導体メモリなどの不揮発性メモリで構成される情報記録媒体と、ハードウェアまたはソフトウェアで実装されるソフトウェア実行制御部から構成されるソフトウェア実行制御方法であって、
前記情報記録媒体は、前記情報記録媒体固有の情報である固有情報も利用した特定の認証処理手順の成功をもってアクセス可能な秘匿領域と、
特定の認証処理手順を経なくともアクセス可能な非秘匿領域を備え、
前記秘匿領域には前記情報記録媒体の前記非秘匿領域に格納されているデジタルデータである前記ソフトウェアを暗号化するための鍵に関する情報である鍵情報と、
前記非秘匿領域に格納されている前記ソフトウェアを入力値として所謂一方向関数であるハッシュ関数によって得られるハッシュ値に関する情報であるハッシュ情報と、
前記非秘匿領域に格納されている前記鍵情報や前記ハッシュ情報が対応する前記ソフトウェアのファイル名を含めた利用情報とを備え、
前記非秘匿領域には、前記鍵によって暗号化された前記ソフトウェアを備え、
前記ソフトウェア実行制御部は前記情報記録媒体と前記特定の認証処理手順を経て前記情報記録媒体の前記秘匿領域に格納されている前記鍵情報と前記ハッシュ情報を読み出し、前記情報記録媒体の前記非秘匿領域に格納されている前記ソフトウェアの復号化処理やハッシュ値を計算することによって前記ソフトウェアの実行を制御する機能を有することを特徴とするソフトウェア実行制御方法。
An information recording medium including a nonvolatile memory such as a semiconductor memory, and a software execution control method including a software execution control unit implemented by hardware or software,
The information recording medium, a secret area that can be accessed with the success of a specific authentication processing procedure that also uses unique information that is information unique to the information recording medium,
Equipped with a non-secret area that can be accessed without going through a specific authentication processing procedure,
Key information that is information about a key for encrypting the software that is digital data stored in the non-secret area of the information recording medium in the secret area,
Hash information, which is information about a hash value obtained by a hash function that is a so-called one-way function with the software stored in the non-secret area as an input value,
The key information and the hash information stored in the non-confidential area include usage information including a file name of the software corresponding thereto,
The non-secret area includes the software encrypted by the key,
The software execution control unit reads the key information and the hash information stored in the secret area of the information recording medium through the information recording medium and the specific authentication processing procedure, and reads the non-secret information of the information recording medium. A software execution control method having a function of controlling execution of the software by decoding the software stored in an area and calculating a hash value.
JP2003029218A 2003-02-06 2003-02-06 Software execution control method Pending JP2004240719A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003029218A JP2004240719A (en) 2003-02-06 2003-02-06 Software execution control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003029218A JP2004240719A (en) 2003-02-06 2003-02-06 Software execution control method

Publications (1)

Publication Number Publication Date
JP2004240719A true JP2004240719A (en) 2004-08-26

Family

ID=32956449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003029218A Pending JP2004240719A (en) 2003-02-06 2003-02-06 Software execution control method

Country Status (1)

Country Link
JP (1) JP2004240719A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102579A (en) * 2008-10-24 2010-05-06 Hitachi Ltd Information processor and computer program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102579A (en) * 2008-10-24 2010-05-06 Hitachi Ltd Information processor and computer program

Similar Documents

Publication Publication Date Title
US8751818B2 (en) Method and apparatus for a trust processor
JP4913871B2 (en) Upgrade memory cards with security mechanisms to prevent copying of secure content and applications
KR100792287B1 (en) Method for security and the security apparatus thereof
US8213612B2 (en) Secure software download
US9158896B2 (en) Method and system for generating a secure key
US20090282254A1 (en) Trusted mobile platform architecture
JP5097130B2 (en) Information terminal, security device, data protection method, and data protection program
JPWO2005096158A1 (en) Usage authentication method, usage authentication program, information processing apparatus, and recording medium
KR20100044253A (en) Device and method for a backup of rights objects
US20060155651A1 (en) Device and method for digital rights management
US20070153580A1 (en) Memory arrangement, memory device, method for shifting data from a first memory device to a second memory device, and computer program element
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
US7685435B2 (en) Program development method, program development supporting system, and program installation method
CN101174941B (en) Off-line digital copyright protection method and device for mobile terminal document
JP2009080772A (en) Software starting system, software starting method and software starting program
JP6343869B2 (en) Portable terminal device and decryption processing program
JP2009059008A (en) File management system
JP2008033512A (en) Security chip and platform
US20190044709A1 (en) Incorporating software date information into a key exchange protocol to reduce software tampering
JPWO2006046484A1 (en) Authentication method
CN113343215A (en) Embedded software authorization and authentication method and electronic equipment
JP2004240719A (en) Software execution control method
JP2008003774A (en) Microcomputer
KR101054075B1 (en) Method and device to restrict use of protection key
JP2008252290A (en) Image processor and program processing method of same