(57)【特許請求の範囲】
【請求項１】
外部からアクセス可能なユーザ領域と、特別な手順を経ることによりアクセス可能なセキュア領域と、前記セキュア領域に対するアクセスの認証制御を行うアクセス認証制御部とを有するメモリ装置であって、
前記ユーザ領域に設定され所定のプログラム情報を格納するデータ格納部と、
前記セキュア領域のうち一度書込まれると読出しおよび再書込みが不可能な領域に設定され前記データ格納部に対する再書込みアクセスに必要な第１のキー情報（PSW）を格納
する第１キー格納部と、
前記第１のキー情報（PSW）に基づいて前記データ格納部に対する再書込みを許可する
かを判定する再書込み判定部と、
前記再書込み判定部における判定結果に基づいて前記データ格納部に対する書込みアクセス制御を行うアクセス制御部と、
前記第１のキー情報（PSW）の再生に必要な第２のキー情報（pIDe）を格納する第２キ
ー格納部と、
前記セキュア領域に設定され前記プログラム情報の取得に必要な第３のキー情報（uKe
）を格納する第３キー格納部とを有し、
前記第３のキー情報（uKe）は、前記第２のキー情報（pIDe）を用いて前記プログラム
情報の取得に必要なキー情報（Kd）が復号化可能となるよう暗号化されている、
ことを特徴とするメモリ装置。
【請求項２】
請求項１に記載のメモリ装置において、
前記再書込み判定部は、前記データ格納部に対するプログラム情報の再書込み要求時に入力されたキー情報が前記第１のキー情報（PSW）に一致する場合に、当該プログラム情
報の再書込みを許可する、
ことを特徴とするメモリ装置。
【請求項３】
請求項１または２に記載のメモリ装置の各格納部に対応する情報を書込むメモリ書込み装置であって、
前記第１のキー情報（PSW）を生成して前記第１キー格納部に書込む第１処理部と、
前記第２のキー情報（pIDe）を生成して前記第２キー格納部に書込む第２処理部と、
前記アクセス制御部を介して前記データ格納部に所定のプログラム情報を書込むプログ
ラム書込み処理部と、
を有することを特徴とするメモリ書込み装置。
【請求項４】
請求項３に記載のメモリ書込み装置において、
前記プログラム情報に基づいて識別情報（pID）を生成する識別情報生成部をさらに備
え、
第１のキー情報（PSW）および第２のキー情報（pIDe）の両方または何れか一方が、前
記識別情報（pID）に基づき前記プログラム情報に関連付けられて生成されている、
ことを特徴とするメモリ書込み装置。
【請求項５】
請求項１または２に記載のメモリ装置にプログラム情報を書込むメモリ書込み装置であって、
前記アクセス制御部を介して前記データ格納部に所定のプログラム情報を書込むプログラム書込み処理部と、
前記第２格納部に格納されている情報を読み出して前記第１のキー情報（PSW）に対応
する被認証情報を生成する被認証情報生成部と、
生成された前記被認証情報とともにプログラム情報の再書込み要求を前記メモリ装置に送信する再書込み要求部とを有する、
ことを特徴とするメモリ書込み装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュＲＯＭ（Read OnlyMemory）等の書込み可能なメモリ装置および
当該メモリ装置に所定のプログラム情報を書込むためのメモリ書込み装置に関する。
【背景技術】
【０００２】
従来、制御プログラムを格納する媒体として、フラッシュＲＯＭ（以下、「ＦＲＯＭ」という）等のＲＯＭ媒体が用いられている。これらのＲＯＭ媒体は、書き換え可能であるため、適宜、制御プログラムを書き換えることにより、リユースが可能である。このようにリユースを行うことにより、資源の浪費を抑制でき、物的・人的リソースの有効活用を図ることができる。
【０００３】
しかし、この種のＲＯＭ媒体が、パチンコ遊技装置やスロットマシーンに搭載される場合には、制御プログラムの改竄・盗用等に十分な配慮を払う必要がある。健全な遊技の実現のため、パチンコ遊技装置やスロットマシーンでは、国家公安委員会の規則に則った検査・認定が必要である。具体的には、保安電子通信技術協会による試験を受ける必要があり、これに合格したもののみが遊技場に設置可能となっている。しかし、この試験に合格した後に、不正に、制御プログラムが改竄されると、健全な遊技の実現が阻害される惧れがあり、上記検査・認定を行う意味がなくなる。よって、この種のＲＯＭ媒体が、パチンコ遊技装置やスロットマシーン等に搭載される場合には、制御プログラムの改竄を確実に抑止する必要がある。
【０００４】
また、最近、パチンコ遊技装置やスロットマシーン等では画像コンテンツの充実が図られ、これとともに、画像コンテンツに対する知的財産権（著作権、等）の保護要請が高まっている。しかし、ＲＯＭ媒体は、汎用品であるが故に、不特定多数の第三者によるリユースないし書き換えの機会が増加し易い。このように、リユースの際の物流経路が多くなると、その分、制御プログラムが拡散の機会に晒され易くなる。よって、現状では、画像コンテンツに対する知的財産権の保護体制が十分であるとは言い難いものとなっている。
【特許文献１】特開平１１−２７６７０４号
【特許文献２】特開平２００４−１０３０２７号
【特許文献３】特許第３４９５４０９号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記問題を解消するためになされたものであり、プログラムの改竄と拡散を抑制しながらメモリ媒体のリユースを円滑化できるメモリ装置およびメモリ書込み装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題に鑑み本発明は、以下の特徴を有する。
【０００７】
上記課題に鑑み本発明は、以下の特徴を有する。
請求項１の発明は、外部からアクセス可能なユーザ領域と、特別な手順を経ることによりアクセス可能なセキュア領域と、前記セキュア領域に対するアクセスの認証制御を行うアクセス認証制御部とを有するメモリ装置に関する。このメモリ装置は、前記ユーザ領域に設定され所定のプログラム情報を格納するデータ格納部と、前記セキュア領域のうち一度書込まれると読出しおよび再書込みが不可能な領域に設定され前記データ格納部に対する再書込みアクセスに必要な第１のキー情報（PSW）を格納する第１キー格納部と、前記
第１のキー情報（PSW）に基づいて前記データ格納部に対する再書込みを許可するかを判
定する再書込み判定部と、前記再書込み判定部における判定結果に基づいて前記データ格納部に対する書込みアクセス制御を行うアクセス制御部と、前記第１のキー情報（PSW）
の再生に必要な第２のキー情報（pIDe）を格納する第２キー格納部と前記セキュア領域に設定され前記プログラム情報の取得に必要な第３のキー情報（uKe）を格納する第３キー
格納部とを有する。前記第３のキー情報（uKe）は、前記第２のキー情報（pIDe）を用い
て前記プログラム情報の取得に必要なキー情報（Kd）が復号化可能となるよう暗号化されていることを特徴とする。
【０００８】
請求項２の発明は、請求項１に記載のメモリ装置において、前記再書込み判定部は、前記データ格納部に対するプログラム情報の再書込み要求時に入力されたキー情報が前記第１のキー情報（PSW）に一致する場合に、当該プログラム情報の再書込みを許可することを特徴とする。
【０００９】
請求項１および２の発明によれば、第２キー格納部から第２のキー情報（pIDe）を読み出して第１のキー情報（PSW）を再生し、再生した第１のキー情報（PSW）をメモリ装置に提示することにより、プログラム情報の再書込みを行うことができる。よって、メモリ装置のリユースを円滑に行うことができる。
【００１０】
ただし、この場合、第１のキー情報（PSW）の再生方法が、暗号化手法等により秘匿化された状態にあると、制御プログラムを不正に改竄しようとしても、その前段階において第１のキー情報（PSW）を適正に再生することができず、結果的に、制御プログラムの不正改竄を抑止できる。よって、このように第１のキー情報（PSW）の再生方法を秘匿化することにより、プログラム情報の不正改竄を未然に防止することができる。
【００１１】
さらに、このように第１のキー情報（PSW）の再生方法を秘匿化すれば、当該再生方法を知るもののみがプログラム情報を書き換えることができ、不特定多数の第三者によるリユースの機会を制限することができる。よって、当該メモリ装置をリユースする際の物流経路を、第１のキー情報（PSW）の再生方法を知るもののみに制限することができ、その結果、リユースの際の制御プログラムの拡散機会を効果的に抑制することができる。
【００１２】
このように請求項１および２の発明によれば、プログラムの改竄と拡散を効果的に抑制しながらメモリ装置のリユースを円滑かつ適正に行うことができる。
【００１３】
なお、請求項１および２の発明では、リユース時に、第２のキー情報（pIDe）が外部に読出し可能である必要がある。したがって、第２のキー情報（pIDe）の格納場所は、メモリ装置内の記録領域のうち、外部に読出し可能な領域に設定される必要がある。たとえば、第２のキー情報（pIDe）は、ユーザ領域、または、セキュア領域内の外部に読出し可能な領域に格納される。
【００１５】
また、請求項１および２の発明によれば、第３のキー情報（uKe）と第２のキー情報（pIDe）をメモリ装置から適正に読み出せない限り、プログラム情報を取得できないため、
プログラム情報の不正拡散を抑制することができる。また、上記リユース時の認証過程の他、このようにプログラム情報の取得過程においても、第２のキー情報（pIDe）が利用されるため、第２のキー情報（pIDe）の役割が強化される。
【００１６】
請求項３の発明は、請求項１または２に記載のメモリ装置の各格納部に対応する情報を書込むメモリ書込み装置に関する。このメモリ書込み装置は、前記第１のキー情報（PSW
）を生成して前記第１キー格納部に書込む第１処理部と、前記第２のキー情報（pIDe）を生成して前記第２キー格納部に書込む第２処理部と、前記アクセス制御部を介して前記データ格納部に所定のプログラム情報を書込むプログラム書込み処理部とを有することを特徴とする。
【００１７】
本発明によれば、第１キー格納部および第２キー格納部に、それぞれ、第１のキー情報（PSW）と第２のキー情報（pIDe）が格納されるため、請求項１および２の発明と同様の理由から、プログラムの改竄と拡散を効果的に抑制でき、且つ、メモリ装置のリユースを円滑かつ適正に行うことができる。
【００１８】
請求項４の発明は、請求項３に記載のメモリ書込み装置において、前記プログラム情報に基づいて識別情報（pID）を生成する識別情報生成部をさらに備え、第１のキー情報（PSW）および第２のキー情報（pIDe）の両方または何れか一方が、前記識別情報（pID）に
基づき前記プログラム情報に関連付けられて生成されていることを特徴とする。
【００１９】
本発明によれば、第１のキー情報（PSW）および第２のキー情報（pIDe）の両方または何れか一方が、識別情報（pID）を介して、プログラム情報に関連付けられるため、プログラム情報を参照することによって第１のキー情報（PSW）または第２のキー情報（pIDe）が適正であるかを判定でき、逆に、第１のキー情報（PSW）または第２のキー情報（pIDe）を参照することによってプログラム情報が適正であるかを判定することができる。よって、これら情報を互いに参照し合うことにより、何れかの情報が不正に改竄されたかを検証することができる。
【００２０】
請求項５の発明は、請求項１または２に記載のメモリ装置にプログラム情報を書込むメモリ書込み装置である。このメモリ書込み装置は、上記請求項１ないし３の何れかに記載のメモリ装置をリユースする際に必要な構成を備えている。すなわち、このメモリ装置は、前記アクセス制御部を介して前記データ格納部に所定のプログラム情報を書込むプログラム書込み処理部と、前記第２格納部に格納されている情報を読み出して前記第１のキー情報（PSW）に対応する被認証情報を生成する被認証情報生成部と、生成された前記被認
証情報とともにプログラム情報の再書込み要求を前記メモリ装置に送信する再書込み要求部とを有する。
【００２１】
よって、請求項５の発明によれば、請求項１および２の発明と同様の理由から、プログラムの改竄と拡散を効果的に抑制でき、且つ、メモリ装置のリユースを円滑かつ適正に行うことができる。
【発明の効果】
【００３１】
以上のとおり本発明によれば、プログラムの改竄と拡散を抑制しながらメモリ媒体のリユースを円滑化できるメモリ装置、メモリ書込み装置を提供することができる。
【００３２】
本発明の効果ないし意義は、以下に示す実施の形態の説明により更に明らかとなろう。ただし、以下の実施の形態は、あくまでも、本発明を実施化する際の一つの例示形態であって、本発明は、以下の実施の形態に記載されたものに何ら制限されるものではない。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態につき図面を参照して説明する。
【００３４】
なお、本実施の形態におけるＲＯＭライター２００は、ハードウェア的には、ＭＰＵ、メモリ、その他のＬＳＩなどで実現できる。また、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。図２および図８には、ハードウェアおよびソフトウェアによって実現されるＲＯＭライター２００の機能ブロックが示されている。ただし、これらの機能ブロックが、ハードウェアのみ、ソフトウェアのみ、あるいは、それらの組合せ等、いろいろな形態で実現できることは言うまでもない。
【００３５】
また、本実施の形態に係るメモリ装置１００は、メモリ領域とＭＰＵおよび所定の処理を実現するための制御プログラムにて実現できる。図１および図８には、メモリ装置１００の制御プログラムに関する機能ブロックが、概念的なエリア区分とともに示されている。
【００３６】
さらに、本実施の形態に係るアプリケーションプログラム３００は、たとえば、遊技装置上の画像ボードにロードされ、ＭＰＵによって実行されることにより、所定の機能が実現されるものである。図４および図１０には、アプリケーションプログラム３００によって実現される機能のうち、メモリ装置１００に対する読出し制御に関する機能のみが機能ブロックとして示されている。
【実施例１】
【００３７】
図１に、実施例１に係るメモリ装置１００の構成（機能ブロック図）を示す。メモリ装置１００は、たとえば、ＦＲＯＭからなっている。メモリ装置１００は、特別な手順を経ることによりアクセス可能なセキュア領域１００ａと、通常のアクセス制御にて外部からアクセス可能なユーザ領域１００ｂに区分されている。
【００３８】
セキュア領域１００ａには、当該セキュア領域に対するアクセス認証制御を行うアクセス認証制御部１０１と、一度書込まれると読出しおよび再書込みが不可能なパスワード領域１０２が配されている。また、ユーザ領域１００ｂには、ユーザ領域１００ｂに対するデータ書込みおよび読出し制御を行うアクセス制御部１０３が配されている。
【００３９】
アクセス認証制御部１０１は、ＲＯＭライター２００（後述）から書込み要求があり、また、アプリケーションプログラム（以下、「アプリケーション」という）３００（後述）から読出し要求があった場合に、当該書込み要求および読出し要求の適否を判定する。そして、書込み要求が適正であれば、ユーザ領域１００ｂに格納された暗号化製品コードｐＩＤｅをＲＯＭライター２００に送信させる指示をアクセス制御部１０３に出力し、さらに、これに応じてＲＯＭライター２００から受信した書込みパスワードＰＳＷがパスワード領域１０２内の書込みパスワードＰＳＷに一致する場合に、ユーザ領域１００ｂへの書込みを許可する指示を書き込みアクセス制御部１０３に出力する。
【００４０】
また、アクセス認証制御部１０１は、アプリケーション３００からの読出し要求が適正である場合に、セキュア領域１００ａ内の所定の格納領域に格納された暗号化暗号鍵ｕＫｅを読み出して、アプリケーション３００に送信する。
【００４１】
パスワード領域１０２は、書込みパスワードＰＳＷを格納する。アクセス制御部１０３は、アクセス認証制御部１０１からの指示に応じて、ユーザ領域１００ｂに格納された暗号化製品コードｐＩＤｅをＲＯＭライター２００に送信する。また、アクセス制御部１０３は、アクセス認証制御部１０１からの指示に応じて、ユーザ領域１００ｂに対する書込み禁止状態を解除し、ユーザ領域１００ｂに対する書込みアクセスを行う。
【００４２】
図２に、実施例１に係るＲＯＭライター２００の構成（機能ブロック図）を示す。図示の如く、ＲＯＭライター２００は、キー発行部２０１と、データ暗号化部２０２と、ｐＩＤ生成部２０３と、ｐＩＤ暗号化部２０４と、キー暗号化部２０５と、パスワード生成部２０６と、ｐＩＤ復号化部２０７を備えている。
【００４３】
キー発行部２０１は、暗号鍵Ｋｅを発行する。データ暗号化部２０２は、キー発行部２０１によって発行された暗号鍵Ｋｅを用いてプログラムデータＤＡＴを暗号化し（暗号化関数：Ｃ（Ｋｅ，ＤＡＴ））、暗号化したプログラムデータＤＡＴｅを、書き込みアクセス制御部１０３に送信する。
【００４４】
ｐＩＤ生成部２０３は、プログラムデータＤＡＴに所定の演算処理Ｐ（ＤＡＴ）を施して製品コードｐＩＤを生成する。ここで、製品コードｐＩＤは、たとえば、既存のチェックサムと同様、プログラムデータＤＡＴを一定のビット幅毎に加算して生成され、あるいは、プログラムデータＤＡＴにインタリーブを掛けながらチェックサム処理を施して生成される。
【００４５】
ｐＩＤ暗号化部２０４は、ｐＩＤ生成部２０３にて生成された製品コードｐＩＤを暗号化し（暗号化関数：Ｂ（ｐＩＤ））、暗号化された製品コードｐＩＤｅを書き込みアクセス制御部１０３に送信する。
【００４６】
キー暗号化部２０５は、ｐＩＤ生成部２０３にて生成された製品コードｐＩＤを用いて暗号鍵Ｋｅを暗号化し（暗号化関数：Ａ（Ｋｅ，ｐＩＤ））、暗号化された暗号鍵ｕＫｅをアクセス認証制御部１０１に送信する。
【００４７】
パスワード生成部２０６は、ｐＩＤ生成部２０３にて生成された製品コードｐＩＤに所定の演算処理Ｑ（ｐＩＤ）を施してパスワードＰＳＷを生成し、生成したパスワードＰＳＷをアクセス認証制御部１０１に送信する。また、パスワード生成部２０６は、ｐＩＤ復号化部２０７にて復号化された製品コードｐＩＤに上記演算処理Ｑ（ｐＩＤ）を施してパスワードＰＳＷを生成し、生成したパスワードＰＳＷをアクセス認証制御部１０１に送信する。
【００４８】
ｐＩＤ復号化部２０７は、アクセス制御部１０３から受信した暗号化製品コードｐＩＤｅに復号化演算処理Ｂ−１（ｐＩＤｅ）を施して製品コードｐＩＤを復号化し、復号化した製品コードｐＩＤをパスワード生成部２０６に出力する。なお、演算処理Ｂ−１（ｐＩＤｅ）は、ｐＩＤ暗号化部２０４における演算処理Ｂ（ｐＩＤ）の逆演算処理である。
【００４９】
図３に、メモリ装置１００に最初にプログラムデータＤＡＴを書込む場合（初期書込み）の処理フローを示す。
【００５０】
初期書込み時、まず、前処理として、書込み認証処理が行われる。すなわち、ＲＯＭライター２００は、メモリ装置１００のアクセス認証制御部１０１に、アクセス認証のためのコマンド列を送信する。これを受けて、アクセス認証制御部１０１は、受信したコマンド列の適否を判定し、コマンド列が適正である場合に、ＲＯＭライター２００による書込みを許可し、アクセス制御部１０３に書込み禁止を解除する指示を出力する。
【００５１】
このようにして、書込み可能となると、ＲＯＭライター２００は、キー発行部２０１にて暗号鍵Ｋｅを発行し（Ｓ１０１）、データ暗号化部２０２を機能させる。データ暗号化部２０２は、発行された暗号鍵Ｋｅを用いて随時プログラムデータＤＡＴを暗号化し（Ｓ１０２）、暗号化したプログラムデータＤＡＴｅをアクセス制御部１０３に送信する（Ｓ１０４）。これにより、メモリ装置１００のユーザ領域１００ｂに暗号化プログラムデータＤＡＴｅが書込まれる。
【００５２】
かかる書込み処理に並行して、ｐＩＤ生成部２０３は、随時、プログラムデータＤＡＴに対し演算処理Ｐ（ＤＡＴ）を実行し、製品コードｐＩＤの生成を行う（Ｓ１０３）。
【００５３】
しかして、全てのプログラムデータＤＡＴに対する書込み処理が終了すると（Ｓ１０５：ＹＥＳ）、ｐＩＤ生成部２０３にて生成された製品コードｐＩＤが、ｐＩＤ暗号化部２０４、キー暗号化部２０５、パスワード生成部２０６に供給される。
【００５４】
これを受けて、ｐＩＤ暗号化部２０４は、製品コードｐＩＤを暗号化して暗号化ｐＩＤｅを生成し（Ｓ１０６）、これをアクセス制御部１０３に送信する（Ｓ１０７）。これにより、暗号化製品コードｐＩＤｅがユーザ領域１００ｂの所定の格納領域に格納される。
【００５５】
また、キー暗号化部２０５は、製品コードｐＩＤを用いて暗号鍵Ｋｅに演算処理Ａ（Ｋｅ，ｐＩＤ）を施し、暗号化暗号鍵ｕＫｅを生成する（Ｓ１０８）。そして、これをアクセス認証制御部１０１に送信する（Ｓ１０９）。これを受けて、アクセス認証制御部１０１は、暗号化暗号鍵ｕＫｅをセキュア領域１００ａ内の読出し可能領域に格納する（Ｓ１１０）。
【００５６】
さらに、パスワード生成部２０６は、ｐＩＤ生成部２０３から受信した製品コードｐＩＤに演算処理Ｑ（ｐＩＤ）を施してパスワードＰＳＷを生成する（Ｓ１１１）。そして、これをアクセス認証制御部１０１に送信する（Ｓ１１２）。これを受けて、アクセス認証制御部１０１は、パスワードＰＳＷをセキュア領域１００ａ内のパスワード領域１０２に格納する（Ｓ１１３）。これにより、メモリ装置１００に対する初期書込み処理が終了する。
【００５７】
図４に、実施例１に係るアプリケーション３００の構成（機能ブロック図）を示す。図示の如く、アプリケーション３００は、キー復号化部３０１と、データ復号化部３０２とを備えている。
【００５８】
キー復号化部３０１は、メモリ装置１００のユーザ領域１００ｂから暗号化製品コードｐＩＤｅを読出し、読み出した暗号化製品コードｐＩＤｅに復号化処理Ｂ−１（ｐＩＤｅ）を施して復号化製品コードｐＩＤｄを生成する。さらに、キー復号化部３０１は、メモリ装置１００のセキュア領域１００ａから暗号化暗号鍵ｕＫｅを読出し、復号化製品コードｐＩＤｄと暗号化暗号鍵ｕＫｅに演算処理Ａ−１（ｕＫｅ，ｐＩＤｄ）を施して復号化暗号鍵Ｋｄを生成する。
【００５９】
なお、演算処理Ｂ−１（ｐＩＤｅ）は、ＲＯＭライター２００における演算処理Ｂ（ｐＩＤ）の逆演算処理であり、演算処理Ａ−１（ｕＫｅ，ｐＩＤｄ）は、ＲＯＭライター２００における演算処理Ａ（ｕＫｅ，ｐＩＤ）の逆演算処理である。
【００６０】
データ復号化部３０２は、メモリ装置１００のユーザ領域１００ｂから暗号化プログラムデータＤＡＴｅを読出し、キー復号化部３０１から受信した復号化暗号鍵Ｋｄと読み出した暗号化プログラムデータＤＡＴｅに対し復号化処理Ｃ−１（Ｋｄ，ＤＡＴｅ）を施して、暗号化プログラムデータＤＡＴｅを復号する。そして、復号化したプログラムデータＤＡＴを後段の機能ブロックに提供する。
【００６１】
なお、復号化処理Ｃ−１（Ｋｄ，ＤＡＴｅ）は、ＲＯＭライター２００における暗号化処理Ｃ（Ｋｅ，ＤＡＴ）の逆演算処理である。
【００６２】
図５に、メモリ装置１００からプログラムデータＤＡＴｅを読み出す場合の処理フローを示す。
【００６３】
データ読出し時、アプリケーション３００は、キー復号化部３０１において、メモリ装置１００のユーザ領域１００ｂから暗号化製品コードｐＩＤｅを読出す（Ｓ２０１）。さらに、キー復号化部３０１は、読み出した暗号化製品コードｐＩＤｅに演算処理Ｂ−１（ｐＩＤｅ）を施して、復号化製品コードｐＩＤｄを生成する（Ｓ２０２）。
【００６４】
しかる後、アプリケーション３００は、メモリ装置１００のアクセス認証処理部１０１に対し、アクセス認証のためのコマンド列を送信する（Ｓ２０３）。これを受けて、アクセス認証制御部１０１は、コマンド列の適否を判定し（Ｓ２０４）、受信したコマンド列が適正である場合（Ｓ２０５：ＹＥＳ）に、セキュア領域１０１ａから暗号化製品コードｕＫｅを読み出してアプリケーション３００に送信する（Ｓ２０７）。一方、受信したコマンド列が不適正であれば（Ｓ２０５：ＮＯ）、暗号化製品コードｕＫｅの送信を拒否する（Ｓ２０６）。
【００６５】
アプリケーション３００は、アクセス認証処理部１０１に対してアクセス要求を行った後、暗号化暗号鍵ｕＫｅの受信を待つ（Ｓ２０８）。ここで、暗号化暗号鍵ｕＫｅを受信できなければ（Ｓ２０８：ＮＯ）、エラー処理が行われる（Ｓ２０９）。一方、暗号化暗号鍵コードｕＫｅをメモリ装置１００から受信した場合（Ｓ２０８：ＹＥＳ）には、キー復号化部３０１において、暗号化暗号鍵ｕＫｅと復号化製品コードｐＩＤｄを用いて演算処理Ａ−１（ｕＫｅ，ｐＩＤｄ）が行われ、復号化暗号鍵Ｋｄが生成される（Ｓ２１０）。
【００６６】
しかる後、データ復号化部３０２において、随時、ユーザ領域１０１ｂから暗号化プログラムデータＤＡＴｅが読み出される（Ｓ２１１）。データ復号化部３０２は、読み出した暗号化プログラムデータＤＡＴｅを復号化暗号鍵Ｋｄを用いて復号化し、復号化したプログラムデータＤＡＴを後段の機能ブロックに送信する（Ｓ２１２）。データ復号化部３０２におけるデータ読出しと復号化は、読み出すべきデータが終了するまで実行される（Ｓ２１３）。しかして、読出しデータが終了すると（Ｓ２１３：ＹＥＳ）、読出し処理が終了する。
【００６７】
図６に、メモリ装置２００内のプログラムデータを書き換える場合の処理フローを示す。
【００６８】
データ書き換え時、ＲＯＭライター２００は、ｐＩＤ復号化部２０７において、メモリ装置１００のユーザ領域１００ｂから暗号化製品コードｐＩＤｅを読出す（Ｓ３０１）。さらに、ｐＩＤ復号化部２０７は、読み出した暗号化製品コードｐＩＤｅに演算処理Ｂ−１（ｐＩＤｅ）を施して製品コードｐＩＤを取得し、取得した製品コードｐＩＤをパスワード生成部２０６に送信する（Ｓ３０２）。これを受けて、パスワード生成部２０６は、受信した製品コードｐＩＤに演算処理Ｑ（ＩＤ）を施して、パスワードＰＳＷを生成する（Ｓ３０３）。
【００６９】
しかる後、パスワード生成部２０６は、メモリ装置１００のアクセス認証処理部１０１に対し、書込み要求を送信する。このとき、パスワード生成部２０６は、アクセス認証のためのコマンド列とＳ３０３にて生成したパスワードＰＳＷをアクセス認証処理部１０１に送信する（Ｓ３０４）。
【００７０】
これを受けて、アクセス認証制御部１０１は、受信した書込み要求の適否を判定する（Ｓ３０５）。すなわち、まず、受信したコマンド列の適否を判定し（Ｓ３０６）、受信したコマンド列が適正であると（Ｓ３０６：ＹＥＳ）、さらに、受信したパスワードＰＳＷが、パスワード領域１０２内のパスワードＰＳＷに一致するかを判定する（Ｓ３０７）。そして、両パスワードが一致すれば（Ｓ３０７：ＹＥＳ）、アクセス制御部１０３を書込み可能状態に設定し、書込み許可通知をＲＯＭライター２００に送信する（Ｓ３０８）。
【００７１】
一方、受信したコマンド列が不適正であれば（Ｓ３０６：ＮＯ）、当該書込み要求を拒否する（Ｓ３０９）。また、コマンド列は適正である（Ｓ３０６：ＹＥＳ）が、パスワードが不適正である（Ｓ３０７：ＮＯ）場合にも、当該書込み要求を拒否する（Ｓ３０９）。
【００７２】
ＲＯＭライター２００は、アクセス認証処理部１０１に対して書き込み要求を行った後、書込み許可通知の受信を待つ（Ｓ３１０）。ここで、書込み許可通知を受信できなければ（Ｓ３１０：ＮＯ）、エラー処理が行われる（Ｓ３１１）。一方、書込み許可通知をメモリ装置１００から受信した場合（Ｓ２１０：ＹＥＳ）には、ユーザ領域１００ｂに対するプログラムデータＤＡＴの書込み処理を行う（Ｓ３１２）。
【００７３】
図７に、図６のＳ３１２における書込み処理時の処理フローを示す。
【００７４】
この書込み処理において、ＲＯＭライター２００は、キー発行部２０１にて暗号鍵Ｋｅを発行し（Ｓ３２１）、データ暗号化部２０２を機能させる。データ暗号化部２０２は、発行された暗号鍵Ｋｅを用いて随時プログラムデータＤＡＴを暗号化し（Ｓ３２２）、暗号化したプログラムデータＤＡＴｅをアクセス制御部１０３に送信する（Ｓ３２３）。これにより、メモリ装置１００のユーザ領域１００ｂに暗号化プログラムデータＤＡＴｅが書込まれる。
【００７５】
しかして、全てのプログラムデータＤＡＴに対する書込み処理が終了すると（Ｓ３２４：ＹＥＳ）、ｐＩＤ復号化部２０７にて復号化された製品コードｐＩＤと、キー発行部２０１にて発行された暗号化鍵Ｋｅをもとに、キー暗号化部２０５において、暗号化暗号鍵ｕＫｅが生成される（Ｓ３２５）。そして、生成された暗号化暗号鍵ｕＫｅがアクセス認証制御部１０１に送信される（Ｓ３２６）。これを受けて、アクセス認証制御部１０１は、暗号化暗号鍵ｕＫｅをセキュア領域１００ａ内の読出し可能領域に上書きし（Ｓ３２７）、暗号化暗号鍵ｕＫｅを書き換えられる。これにより、当該書込み処理が終了する。
【００７６】
なお、図７の処理フローは、暗号化暗号鍵ｕＫｅの格納領域が書き換え可能な領域である場合の処理フローである。暗号化暗号鍵ｕＫｅの格納領域が書き換え不可能な場合には、図７のＳ３２５〜Ｓ３２７の処理ステップが省略される。また、Ｓ３２１において暗号鍵Ｋｅを発行する代わりに、図５のＳ２０１〜Ｓ２１０と同様の処理を行って、プログラムデータＤＡＴを暗号化するための暗号鍵Ｋｄが、メモリ装置１００内のセキュア領域１００ａに格納された暗号化暗号鍵ｕＫｅから生成される。
【００７７】
以上、本実施例によれば、ユーザ領域１００ｂから暗号化製品コードｐＩＤｅを読み出してパスワードＰＳＷを生成し、生成したパスワードＰＳＷをメモリ装置１００に提示することにより、プログラムデータＤＡＴの再書込みを行うことができる。よって、メモリ装置１００のリユースを円滑に行うことができる。
【００７８】
ただし、この場合、パスワードを生成するための演算処理Ｂ−１（ｐＩＤ）が秘匿化された状態にあると、制御プログラムを書き換えまたは改竄しようとしても、適正なパスワードＰＳＷを取得することができないため、結果的に、制御プログラムの不正な変更・改竄を抑止できる。よって、本実施例によれば、プログラムデータの不正改竄を未然に防止することができる。
【００７９】
さらに、このようにパスワードを生成するための演算処理Ｂ−１（ｐＩＤ）を秘匿化すると、当該演算処理を知るもののみがプログラムデータＤＡＴを書き換えることができ、不特定多数の第三者によるリユースの機会を制限することができる。よって、当該メモリ装置１００をリユースする際の物流経路を、当該演算処理Ｂ−１（ｐＩＤ）を知るもののみに制限することができ、その結果、リユースの際の制御プログラムの拡散機会を効果的に抑制することができる。
【００８０】
このように本実施例によれば、プログラムの改竄と拡散を効果的に抑制しながらメモリ装置のリユースを円滑かつ適正に行うことができる。
【００８１】
また、本実施例によれば、暗号化暗号鍵ｕＫｅと暗号化製品コードｐＩＤｅをメモリ装置１００から適正に読み出すことができ、さらに、これら暗号化暗号鍵ｕＫｅと暗号化製品コードｐＩＤｅを適正に復号化して復号化暗号鍵Ｋｄを取得できない限り、プログラムデータＤＡＴを取得できないため、プログラムデータＤＡＴの不正拡散を抑制することができる。
【００８２】
さらに、本実施例によれば、パスワードＰＳＷ、暗号化暗号鍵ｕＫｅおよび暗号化製品コードｐＩＤｅが、何れも、プログラムデータＤＡＴをもとに生成した製品コードｐＩＤから生成されるため、これらは、プログラムデータＤＡＴに関連付けられることとなる。このため、ユーザ領域１０１ｂに格納されたプログラムデータＤＡＴを参照することによってパスワードＰＳＷ、暗号化暗号鍵ｕＫｅおよび暗号化製品コードｐＩＤｅの適否を検証でき、逆に、パスワードＰＳＷ、暗号化暗号鍵ｕＫｅおよび暗号化製品コードｐＩＤｅを参照することによってプログラムデータＤＡＴが適正であるかを判定することができる。よって、これらデータを互いに参照し合うことにより、何れかのデータが不正に改竄されたかを検証することができる。
【実施例２】
【００８３】
図８に、実施例２に係るメモリ装置１００とＲＯＭライター２００の構成（機能ブロック）を示す。
【００８４】
本実施例では、メモリ装置１００のユーザ領域１００ｂに、暗号化認証コードａＩＤｅが格納され、プログラムデータＤＡＴは暗号化されずにそのままユーザ領域１００ｂに格納される。一方、ＲＯＭライター２００には、認証コードａＩＤを発行するａＩＤ発行部２１１と、認証コードａＩＤと暗号鍵２０１に対し演算処理Ｄ（Ｋｅ，ａＩＤ）を施して暗号化認証コードａＩＤｅを生成するａＩＤ暗号化部２１２が新たに配され、プログラムデータＤＡＴを暗号化するデータ暗号化部２０２が省略されている。
【００８５】
図９に、本実施例におけるメモリ装置１００に最初にプログラムデータＤＡＴを書込む場合（初期書込み）の処理フローを示す。
【００８６】
上記実施例１と同様、初期書込み時には、まず、前処理として、書込み認証処理が行われる。すなわち、ＲＯＭライター２００は、メモリ装置１００のアクセス認証制御部１０１に、アクセス認証のためのコマンド列を送信する。これを受けて、アクセス認証制御部１０１は、受信したコマンド列の適否を判定し、コマンド列が適正である場合に、ＲＯＭライター２００による書込みを許可し、アクセス制御部１０３に書込み禁止を解除する指示を出力する。
【００８７】
このようにして、書込み可能となると、ＲＯＭライター２００は、プログラムデータＤＡＴをアクセス制御部１０３に送信する（Ｓ１２１）。これにより、メモリ装置１００のユーザ領域１００ｂにプログラムデータＤＡＴが書込まれる。かかる書込み処理に並行して、随時、プログラムデータＤＡＴに対する演算処理Ｐ（ＤＡＴ）がｐＩＤ生成部２０３において実行され、製品コードｐＩＤの生成が行われる（Ｓ１２２）。
【００８８】
しかして、全てのプログラムデータＤＡＴに対する書込み処理が終了すると（Ｓ１２３：ＹＥＳ）、ｐＩＤ生成部２０３にて生成された製品コードｐＩＤが、ｐＩＤ暗号化部２０４、キー暗号化部２０５、パスワード生成部２０６に供給される。
【００８９】
これを受けて、ｐＩＤ暗号化部２０４は、製品コードｐＩＤを暗号化して暗号化ｐＩＤｅを生成し（Ｓ１２４）、これをアクセス制御部１０３に送信する（Ｓ１２５）。これにより、暗号化製品コードｐＩＤｅがユーザ領域１００ｂの所定の格納領域に格納される。
【００９０】
これに並行して、キー発行部２０１とａＩＤ発行部２１１から、それぞれ、暗号鍵Ｋｅと認証コードａＩＤが発行される（Ｓ１２６，１２７）。これを受けてａＩＤ暗号化部２１２は、暗号化鍵Ｋｅと認証コードａＩＤに上記演算処理を施して暗号化認証コードａＩＤｅを生成し（Ｓ１２８）、これをアクセス制御部１０３に送信する（Ｓ１２９）。これにより、暗号化認証コードａＩＤｅがユーザ領域１００ｂの所定の格納領域に格納される。
【００９１】
以下、上記図３（実施例１）のＳ１０８〜Ｓ１１３の処理が行われ、暗号化暗号鍵ｕＫｅとパスワードＰＳＷが、それぞれ、メモリ装置１００のセキュア領域１００ａとパスワード領域１０２に格納される。これにより、メモリ装置１００に対する初期書込み処理が終了する。
【００９２】
図１０に、実施例２に係るアプリケーション３００の構成（機能ブロック図）を示す。図示の如く、アプリケーション３００は、キー復号化部３０１と、ａＩＤ復号化部３１１と、ａＩＤ認証部３１２を備えている。
【００９３】
キー復号化部３０１は、上記実施例１と同様の処理を行って復号化暗号鍵Ｋｄを生成する。
【００９４】
ａＩＤ復号化部３１１は、メモリ装置１００のユーザ領域１００ｂから暗号化認証コードａＩＤｅを読出し、キー復号化部３０１から受信した復号化暗号鍵Ｋｄと、読み出した暗号化認証コードａＩＤｅに対し復号化処理Ｄ−１（Ｋｄ，ａＩＤｅ）を施して、復号化認証コードａＩＤｄを生成する。なお、復号化処理Ｄ−１（Ｋｄ，ａＩＤｅ）は、ＲＯＭライター２００における暗号化処理Ｃ（Ｋｅ，ａＩＤ）の逆演算処理である。
【００９５】
ａＩＤ認証部３１２は、適正な認証コードａＩＤｃを保持しており、この認証コードａＩＤｃと、ａＩＤ復号化部３１１にて復号化された復号化認証コードａＩＤｄとを比較して、両者が一致するかを判定する。そして、両者が一致するときにのみ、メモリ装置１００のユーザ領域１００ｂからプログラムデータＤＡＴの読出しを許可する。
【００９６】
図１１に、メモリ装置１００からプログラムデータＤＡＴを読み出す場合の処理フローを示す。
【００９７】
データ読出し時、アプリケーション３００は、キー復号化部３０１において、メモリ装置１００のユーザ領域１００ｂから暗号化製品コードｐＩＤｅと暗号化認証コードａＩＤｅを読出す（Ｓ２２１）。その後、上記図５（実施例１）のＳ２０２〜Ｓ２１０と同様の処理が行われ、復号化暗号鍵Ｋｄが取得される。
【００９８】
しかる後、ａＩＤ復号化部３１１において、復号化暗号鍵Ｋｄと、Ｓ２２１にて読み出した暗号化認証コードａＩＤｅに対し、復号化処理Ｄ−１（Ｋｄ，ａＩＤｅ）が行われ、復号化認証コードａＩＤｄが生成される（Ｓ２２２）。そして、ａＩＤ認証部３１２において、上記の如く、復号化認証コードａＩＤｄの適否が判定される（Ｓ２２３）。
【００９９】
復号化認証コードａＩＤｄが不適正の場合（Ｓ２２３：ＮＯ）、エラー処理が行われる（Ｓ２０９）。復号化認証コードａＩＤｄが適正である場合(Ｓ２２３:ＹＥＳ)、ユーザ領域１００ｂからプログラムデータＤＡＴが読み出され、後段の機能ブロックに提供される（Ｓ２２４）。しかして、読出しデータが終了すると（Ｓ２２５：ＹＥＳ）、読出し処理が終了する。
【０１００】
次に、メモリ装置２００内のプログラムデータを書き換える場合の処理であるが、この処理のうち、メモリ装置１０１に対するプログラムデータの書込みを開始するまでの処理は、上記図６（実施例１）のＳ３０１〜Ｓ３１１と同じである。本実施例では、図６のＳ３１２における処理が、図７のものから図１２のように変更される。
【０１０１】
すなわち、書込みが許可されると、ＲＯＭライター２００は、プログラムデータＤＡＴをアクセス制御部１０３に送信する（Ｓ３３１）。これにより、メモリ装置１００のユーザ領域１００ｂにプログラムデータＤＡＴが書込まれる。
【０１０２】
しかして、全てのプログラムデータＤＡＴに対する書込み処理が終了すると（Ｓ１３３２：ＹＥＳ）、キー発行部２０１とａＩＤ発行部２１１から、それぞれ、暗号鍵Ｋｅと認証コードａＩＤが発行される（Ｓ３３３、３３４）。これを受けてａＩＤ暗号化部２１２は、暗号化鍵Ｋｅと認証コードａＩＤに演算処理を施して暗号化認証コードａＩＤｅを生成し（Ｓ３３５）、これをアクセス制御部１０３に送信する（Ｓ３３５）。これにより、暗号化認証コードａＩＤｅがユーザ領域１００ｂの所定の格納領域に格納される。
【０１０３】
さらに、上記図７のＳ３２５と同様、ｐＩＤ復号化部２０７にて復号化された製品コードｐＩＤと、キー発行部２０１にて発行された暗号化鍵Ｋｅをもとに、キー暗号化部２０５において、暗号化暗号鍵ｕＫｅが生成される（Ｓ３３７）。そして、生成された暗号化暗号鍵ｕＫｅがアクセス認証制御部１０１に送信される（Ｓ３２８）。これを受けて、アクセス認証制御部１０１は、暗号化暗号鍵ｕＫｅをセキュア領域１００ａ内の読出し可能領域に上書きし（Ｓ３３９）、暗号化暗号鍵ｕＫｅを書き換えられる。これにより、当該書込み処理が終了する。
【０１０４】
なお、図１２の処理フローは、図７と同様、暗号化暗号鍵ｕＫｅの格納領域が書き換え可能な領域である場合の処理フローである。暗号化暗号鍵ｕＫｅの格納領域が書き換え不可能な場合には、Ｓ３３７〜Ｓ３３９の処理ステップが省略される。また、Ｓ３３３において暗号鍵Ｋｅを発行する代わりに、図１１のＳ２２１およびＳ２０２〜Ｓ２１０と同様の処理を行って、暗号鍵Ｋｄが、メモリ装置１００内のセキュア領域１００ａに格納された暗号化暗号鍵ｕＫｅから生成される。
【０１０５】
本実施例においても、上記実施例１と同様、プログラムの改竄と拡散を効果的に抑制しながらメモリ装置のリユースを円滑かつ適正に行うことができる。なお、本実施例では、プログラムデータが暗号化されずにユーザ領域１００ｂに格納されるため、プログラムデータに対するセキュリティ能力が上記実施例１に比べやや低くなる。しかし、その反面、プログラムデータの書き込みと読み出し時に、プログラムデータに対する暗号化処理と復号化処理が不要となるため、処理の簡素化を図ることができ、メモリ装置１００に対する書込み速度と読み出し速度を高めることができる。
【０１０６】
なお、上記実施例１、２において、メモリ装置１００をリユースする際にも初回書込み時と同様、製品コードｐＩＤをプログラムデータＤＡＴから生成すると、製品コードｐＩＤが初回書込み時のものから変化することとなる。このため、こうすると、製品コードｐＩＤに関連付けられたパスワードＰＳＷも初回設定時のものから変えなければならないこととなるが、上記実施例１、２では、パスワード領域１０２は書き換え不能領域であるため、初回設定されたパスワードＰＳＷはリユース時に亘って再生・使用する必要がある。したがって、このように製品コードｐＩＤをリユース時のプログラムデータＤＡＴに応じて更新する場合には、間接アドレッシング手法を用いて、最新の製品コードｐＩＤと、初回設定された製品コードｐＩＤの両方をメモリ装置１００に格納するようにする。具体的には、ｐＩＤｅ生成関数Ｂの中で初回設定されたｐＩＤへの間接アドレスのエンコードが可能なようにし、また、その逆関数Ｂ−１の中でこの間接アドレスをデコード可能なようにしておく。こうすることで、メモリ装置１００のリユースを円滑に行うことができる。
【０１０７】
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に何ら制限されるものではない。また、本発明の実施形態も、上記以外に、種々の変更が可能である。たとえば、上記実施例１，２では、暗号化製品コードｐＩＤｅがユーザ領域１００ｂに格納されたが、暗号化製品コードｐＩＤｅをセキュア領域１００ａに格納するようにしても良い。
【０１０８】
本発明の実施の形態は、特許請求の範囲に示された技術的思想の範囲内において、適宜、種々の変更が可能である。
【図面の簡単な説明】
【０１０９】
【図１】実施例１に係るメモリ装置の構成を示す図
【図２】実施例１に係るＲＯＭライターの構成を示す図
【図３】実施例１に係る初期書込み時の処理フローを示す図
【図４】実施例１に係るアプリケーションプログラムの機能ブロックを示す図
【図５】実施例１に係るプログラムデータ読出し時の処理フローを示す図
【図６】実施例１に係るプログラムデータ書き換え時の処理フローを示す図
【図７】実施例１に係るプログラムデータ書き換え時の処理フローを示す図
【図８】実施例２に係るメモリ装置とＲＯＭライターの構成を示す図
【図９】実施例２に係る初期書込み時の処理フローを示す図
【図１０】実施例２に係るアプリケーションプログラムの機能ブロックを示す図
【図１１】実施例２に係るプログラムデータ読出し時の処理フローを示す図
【図１２】実施例２に係るプログラムデータ書き換え時の処理フローを示す図
【符号の説明】
【０１１０】
１００  メモリ装置
１００ａ  セキュア領域
１００ｂ  ユーザ領域
１０１  アクセス認証制御部
１０２  パスワード領域
１０３  アクセス制御部
２００  ＲＯＭライター
２０１  キー発行部
２０３  ｐＩＤ生成部
２０４  ｐＩＤ暗号化部
２０５  キー暗号化部
２０６  パスワード生成部２０６
２０７  ｐＩＤ復号化部
【図１】
0004785823.tif 000002
【図２】
0004785823.tif 000003
【図３】
0004785823.tif 000004
【図４】
0004785823.tif 000005
【図５】
0004785823.tif 000006
【図６】
0004785823.tif 000007
【図７】
0004785823.tif 000008
【図８】
0004785823.tif 000009
【図９】
0004785823.tif 000010
【図１０】
0004785823.tif 000011
【図１１】
0004785823.tif 000012
【図１２】
0004785823.tif 000013