(57)【要約】【課題】主制御部によって送信された制御コマンドに基づいて所定の処理をおこなう周辺部を備える電子機器に対する不正を防止すること。【解決手段】主制御基板３１０は、個体を認証するための個体認証データを分割数分生成するとともに、動作順序を認証するための同期コードおよび動作コードを生成し、これらの認証値を周辺基板３２０に送信する。同期コードは、分割数に基づいて選択されたパケット情報を用いて生成される。周辺基板３２０は、個体認証データを用いて主制御基板３１０の個体を認証するとともに、個体の認証が成立した際の個体認証データの個数に基づいて同期コードの元となるパケット情報の種類を特定し、同期コードおよび動作コードを用いて動作順序を認証する。個体および動作の両方が認証できた場合、周辺基板３２０は、主制御基板３１０によって送信された制御コマンドを認証し、所定の処理をおこなう。【選択図】図３
2011030610.tif 000002
【特許請求の範囲】
【請求項１】
主制御部と、前記主制御部によって送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、
前記主制御部は、
所定のデータを記憶するデータ記憶手段と、
前記主制御部の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定手段と、
前記データ記憶手段内の前記データを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成手段と、
前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記主制御部の動作順序を認証するための動作コードを生成する動作コード生成手段と、
前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺部に送信する送信手段と、を備え、
前記周辺部は、
前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを受信する受信手段と、
前記分割数分の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記データ記憶手段内の全ての前記データに対して前記２項演算をおこなった値とが一致するか否かに基づいて前記主制御部の個体を認証する個体認証手段と、
前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御部の動作順序を認証するとともに、前記動作コードを用いて前記主制御部の動作順序を認証する動作認証手段と、
前記個体認証手段による認証および前記動作認証手段による２種類の認証が成立した場合に、前記主制御部によって送信された制御コマンドを認証するコマンド認証手段と、
を備え、
前記同期コード生成手段は、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定し、
前記動作認証手段は、前記個体認証手段による認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする電子機器。
【請求項２】
前記同期コード生成手段は、前記制御コマンドの送信に伴って連続して出力される前記パケット情報と、前記制御コマンドの送信に伴って所定の間隔ごとに出力される前記パケット情報と、のいずれかを用いて前記同期コードを生成することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記決定手段は、それぞれの前記個体認証値ごとに前記データ量を決定し、
前記個体認証値生成手段は、前記個体認証値ごとにそれぞれ決定された前記データ量分の前記データを用いて当該個体認証値を生成することを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記送信手段は、前記個体認証値、前記同期コードおよび前記動作コードを前記制御コマンドに付加して前記周辺部に送信することを特徴とする請求項１〜３のいずれか一つに記載の電子機器。
【請求項５】
前記個体認証値、前記同期コードおよび前記動作コードのうち少なくともいずれか１つは、前記制御コマンドの少なくとも一部を用いて生成されることを特徴とする請求項４に記載の電子機器。
【請求項６】
前記主制御部は、前記個体認証値、前記同期コードおよび前記動作コードを所定の暗号化方法で暗号化する暗号化手段をさらに備え、前記送信手段は、前記暗号化手段によって暗号化された前記個体認証値、前記同期コードおよび前記動作コードを送信し、
前記周辺部は、前記暗号化された前記個体認証値および前記同期コードおよび前記動作コードを前記暗号化方法に対応する復号化方法で復号化する復号化手段をさらに備え、前記個体認証手段および前記動作認証手段は、前記復号化手段によって復号化された前記個体認証値および前記動作認証値を用いて認証をおこなうことを特徴とする請求項１〜５のいずれか一つに記載の電子機器。
【請求項７】
前記暗号化手段は、前記分割数に応じて前記暗号化方法を変更し、
前記復号化手段は、前記主制御部の個体が認証された際に前記２項演算の対象となった前記個体認証値の数に応じて前記復号化方法を変更することを特徴とする請求項６に記載の電子機器。
【請求項８】
前記同期コード生成手段は、前記分割数を特定値で割った時の余りの数に基づいて前記パケット情報の種類を決定し、
前記動作認証手段は、前記個体認証値の数を特定値で割った時の余りの数に基づいて前記パケット情報の種類を特定することを特徴とする請求項１〜７のいずれか一つに記載の電子機器。
【請求項９】
前記同期コード生成手段は、前回の分割数と今回の分割数との差分に基づいて前記パケット情報の種類を決定し、
前記動作認証手段は、前回の認証時における前記個体認証値の数と今回の認証時における前記個体認証値の数との差分に基づいて、前記パケット情報の種類を特定することを特徴とする請求項１〜７のいずれか一つに記載の電子機器。
【請求項１０】
前記データ記憶手段は、前記主制御部で用いられるプログラムデータを記憶することを特徴とする請求項１〜９のいずれか一つに記載の電子機器。
【請求項１１】
前記２項演算は、加算または排他的論理和演算であることを特徴とする請求項１〜１０のいずれか一つに記載の電子機器。
【請求項１２】
請求項１〜１１のいずれか一つに記載の電子機器を備え、前記主制御部は主制御基板であり、前記周辺部は周辺基板であることを特徴とする遊技機。
【請求項１３】
電子機器に搭載され、周辺基板に所定の処理をおこなわせる制御コマンドを送信する主制御基板であって、
所定のデータを記憶するデータ記憶手段と、
前記主制御基板の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定手段と、
前記データ記憶手段内の前記データを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成手段と、
前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記主制御基板の動作順序を認証するための動作コードを生成する動作コード生成手段と、
前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺基板に送信する送信手段と、を備え、
前記同期コード生成手段は、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定することを特徴とする主制御基板。
【請求項１４】
電子機器に搭載され、主制御基板によって送信された制御コマンドに基づいて所定の処理をおこなう周辺基板であって、
前記主制御基板によって送信された前記主制御基板の個体を認証するための複数の個体認証値と、前記主制御基板の動作順序を認証するための動作認証値として、前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードおよび前記主制御基板の動作順序を認証するための動作コードを受信する受信手段と、
前記複数の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記２項演算の結果の期待値とが一致するか否かに基づいて前記主制御基板の個体を認証する個体認証手段と、
前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御基板の動作順序を認証するとともに、前記動作コードを用いて前記主制御基板の動作順序を認証する動作認証手段と、
前記個体認証手段による認証および前記動作認証手段による２種類の認証が成立した場合に、前記主制御基板によって送信された制御コマンドを認証するコマンド認証手段と、
を備え、
前記動作認証手段は、前記個体認証手段による認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする周辺基板。
【請求項１５】
主制御部と、前記主制御部によって送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、
前記主制御部において、
前記主制御部の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定工程と、
前記主制御部内に記憶されている所定のデータを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成工程と、
前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成工程と、
前記主制御部の動作順序を認証するための動作コードを生成する動作コード生成工程と、
前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺部に送信する送信工程と、を含み、
前記周辺部において、
前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを受信する受信工程と、
前記分割数分の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記データ記憶手段内の全ての前記データに対して前記２項演算をおこなった値とが一致するか否かに基づいて前記主制御部の個体を認証する個体認証工程と、
前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御部の動作順序を認証するとともに、前記動作コードを用いて前記主制御部の動作順序を認証する動作認証工程と、
前記個体認証工程における認証および前記動作認証工程における２種類の認証が成立した場合に、前記主制御部によって送信された制御コマンドを認証するコマンド認証工程と、
を含み、
前記同期コード生成工程では、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定し、
前記動作認証工程では、前記個体認証工程における認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする認証方法。
【請求項１６】
請求項１５に記載の認証方法をコンピュータに実行させることを特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の基板を備え、これらの基板間の通信の認証をおこなう電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラムに関する。
【背景技術】
【０００２】
従来、複数の基板を備えた電子機器において、これら各基板に対する不正を防止するための様々な技術が提案されている。複数の基板を備えた電子機器としては、たとえば、ぱちんこ遊技機などがある。ぱちんこ遊技機には、電子機器全体の動作を司る主制御基板と、電子機器の各部の動作をおこなう被制御基板（周辺部）とを備えている。この主制御基板は、周辺部に制御コマンドを含む制御信号を出力し、その他の周辺部は、主制御基板から送信された制御信号にしたがって動作を実行する機能を備えている。
【０００３】
主制御基板に対する不正には、たとえば、正規の主制御基板を不正な制御基板に取り替えたり、主制御基板がおこなう処理を規定したプログラムコードを改ざんしたりするなどの方法がある。このような不正を防止するため、たとえば、主制御基板内に搭載されたＲＯＭに記録されているプログラムデータをＲＯＭチェッカによってチェックして、ＲＯＭの不正交換などを防止する技術が提案されている（たとえば、下記特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３３３１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献１の技術によれば、プログラムデータの改ざんは検知できるが、正規な主制御基板と被制御基板との間に不正な制御基板が接続されてしまうのを防止することができない。このため、不正な制御基板から出力される制御信号によって、被制御基板が不正な制御をおこなってしまうという問題がある。
【０００６】
ここで、図１７および図１８を用いて、従来技術による不正防止技術について説明する。図１７は、従来技術による不正防止技術の概要を示す説明図である。また、図１８は、不正な制御基板の挿入例を示す説明図である。図１７に示すように、正規の主制御基板１７０１は、周辺基板１７０２に対して正規の制御信号ＲＳを出力して、周辺基板１７０２の動作を制御する。正規の主制御基板１７０１には、検査用ポート１７０３が設けられている。この検査用ポート１７０３から正規の主制御基板１７０１の内部に設けられたＲＯＭなどに記録されたプログラムデータを検査して、正規の主制御基板１７０１に不正がおこなわれていないかを検査する。
【０００７】
ところが、図１８に示すように、正規の主制御基板１７０１と周辺基板１７０２との間に、不正な制御基板１８０１が挿入されてしまう場合がある。不正な制御基板１８０１は、正規の主制御基板１７０１から出力された正規の制御信号ＲＳを破棄または無視し、替わりに不正な制御信号ＦＳを周辺基板１７０２に出力する。ここで、周辺基板１７０２は、入力された信号が、正規の制御信号ＲＳであるか不正な制御信号ＦＳであるかを判別することができない。このため、周辺基板１７０２は、不正な制御信号ＦＳにしたがって動作してしまうという問題がある。
【０００８】
また、検査用ポート１７０３は正規の主制御基板１７０１のみに設けられているため、検査用ポート１７０３を用いた検査をおこなっても、正規の主制御基板１７０１内の処理に対する検査結果が返ってしまう。このため、検査用ポート１７０３を用いた検査をおこなっても、不正な制御基板１８０１による不正制御を検知することができないという問題がある。
【０００９】
この発明は、上述した従来技術による問題点を解消するため、正規な主制御基板と周辺部との間に不正な制御基板が接続されるのを防止して、ぱちんこ遊技機などの電子機器に対する不正を防止することができる電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかる電子機器は、主制御部と、前記主制御部によって送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、前記主制御部は、所定のデータを記憶するデータ記憶手段と、前記主制御部の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定手段と、前記データ記憶手段内の前記データを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成手段と、前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記主制御部の動作順序を認証するための動作コードを生成する動作コード生成手段と、前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺部に送信する送信手段と、を備え、前記周辺部は、前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを受信する受信手段と、前記分割数分の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記データ記憶手段内の全ての前記データに対して前記２項演算をおこなった値とが一致するか否かに基づいて前記主制御部の個体を認証する個体認証手段と、前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御部の動作順序を認証するとともに、前記動作コードを用いて前記主制御部の動作順序を認証する動作認証手段と、前記個体認証手段による認証および前記動作認証手段による２種類の認証が成立した場合に、前記主制御部によって送信された制御コマンドを認証するコマンド認証手段と、を備え、前記同期コード生成手段は、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定し、前記動作認証手段は、前記個体認証手段による認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする。
【００１１】
この請求項１の発明によれば、主制御部は、データ記憶手段内のデータの分割数に基づいて同期コードの生成に用いるパケット情報の種類を決定する。分割数は主制御部のみが知る値なので、不正解析者は、同期コードの生成に用いるパケット情報の種類を特定することができない。これにより、主制御部と周辺部との間に不正な制御部が挿入された場合に、同期コードを照合することによって不正を検知することができる。
【００１２】
また、請求項１の発明によれば、分割数そのものを決定するのではなく、認証値の生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
【００１３】
また、請求項１の発明によれば、周辺部は、主制御部の個体と動作順序とがそれぞれ認証された場合にのみ、主制御部から送信された制御コマンドを認証する。主制御部の個体を認証することによって、主制御部が不正な制御部に交換されたことを検知することができる。また、主制御部の動作順序を認証することによって、主制御部の動作の連続性を認証することができ、たとえば信号切替回路などを搭載した不正な制御部を検知することができる。
【００１４】
さらに、請求項１の発明によれば、周辺部は、同期コードおよび動作コードの２種類のコードを用いて主制御部の動作順序を認証する。２種類のコードを用いて二重に認証処理をおこなうことにより、認証の強度を向上させ、不正な制御コマンドによる不正な処理が実行されるのを防止することができる。
【００１５】
また、請求項２の発明にかかる電子機器は請求項１に記載の発明において、前記同期コード生成手段は、前記制御コマンドの送信に伴って連続して出力される前記パケット情報と、前記制御コマンドの送信に伴って所定の間隔ごとに出力される前記パケット情報と、のいずれかを用いて前記同期コードを生成することを特徴とする。
【００１６】
この請求項２の発明によれば、それぞれ異なる相関関係を有するパケット情報を用いて同期コードを生成することができる。
【００１７】
また、請求項３の発明にかかる電子機器は、請求項１または２に記載の発明において、前記決定手段は、それぞれの前記個体認証値ごとに前記データ量を決定し、前記個体認証値生成手段は、前記個体認証値ごとにそれぞれ決定された前記データ量分の前記データを用いて当該個体認証値を生成することを特徴とする。
【００１８】
この請求項３の発明によれば、それぞれの個体認証値を生成するごとにデータ量を決定することができる。これにより、あらかじめデータ量を決定しておく場合と比較して、分割数が不正に窃取される可能性をさらに低減することができる。
【００１９】
また、請求項４の発明にかかる電子機器は、請求項１〜３のいずれか一つに記載の発明において、前記送信手段は、前記個体認証値、前記同期コードおよび前記動作コードを前記制御コマンドに付加して前記周辺部に送信することを特徴とする。
【００２０】
この請求項４の発明によれば、認証値を単体で送信する場合と比較して、主制御部と周辺部との間の通信負荷の増大を抑えることができる。また、請求項４の発明によれば、認証値を単体で送信する場合と比較して、通信データ中から認証値が抽出され、解析されてしまう可能性を低減することができる。
【００２１】
また、請求項５の発明にかかる電子機器は、請求項４に記載の発明において、前記個体認証値、前記同期コードおよび前記動作コードのうち少なくともいずれか１つは、前記制御コマンドの少なくとも一部を用いて生成されることを特徴とする。
【００２２】
この請求項５の発明によれば、認証値の生成方法が解析されたり、認証値が再利用されたりする可能性を低減することができる。
【００２３】
また、請求項６の発明にかかる電子機器は、請求項１〜５のいずれか一つに記載の発明において、前記主制御部は、前記個体認証値、前記同期コードおよび前記動作コードを所定の暗号化方法で暗号化する暗号化手段をさらに備え、前記送信手段は、前記暗号化手段によって暗号化された前記個体認証値、前記同期コードおよび前記動作コードを送信し、前記周辺部は、前記暗号化された前記個体認証値および前記同期コードおよび前記動作コードを前記暗号化方法に対応する復号化方法で復号化する復号化手段をさらに備え、前記個体認証手段および前記動作認証手段は、前記復号化手段によって復号化された前記個体認証値および前記動作認証値を用いて認証をおこなうことを特徴とする。
【００２４】
この請求項６の発明によれば、不正解析者によって認証値が不正に盗取された場合に、認証値の生成方法が解析されたり、認証値が再利用される可能性を低減させることができる。
【００２５】
また、請求項７の発明にかかる電子機器は、請求項６に記載の発明において、前記暗号化手段は、前記分割数に応じて前記暗号化方法を変更し、前記復号化手段は、前記主制御部の個体が認証された際に前記２項演算の対象となった前記個体認証値の数に応じて前記復号化方法を変更することを特徴とする。
【００２６】
この請求項７の発明によれば、不正解析者は、認証値の暗号化方法の切り替えタイミングを知ることができず、認証値の生成方法が解析されたり、認証値が再利用される可能性をさらに低減させることができる。
【００２７】
また、請求項８の発明にかかる電子機器は請求項１〜７のいずれか一つに記載の発明において、前記同期コード生成手段は、前記分割数を特定値で割った時の余りの数に基づいて前記パケット情報の種類を決定し、前記動作認証手段は、前記個体認証値の数を特定値で割った時の余りの数に基づいて前記パケット情報の種類を特定することを特徴とする。
【００２８】
また、請求項９の発明にかかる電子機器は請求項１〜７のいずれか一つに記載の発明において、前記同期コード生成手段は、前回の分割数と今回の分割数との差分に基づいて前記パケット情報の種類を決定し、前記動作認証手段は、前回の認証時における前記個体認証値の数と今回の認証時における前記個体認証値の数との差分に基づいて、前記パケット情報の種類を特定することを特徴とする。
【００２９】
この請求項８および９の発明によれば、パケット情報の種類を決定する際に、分割数に対して演算処理をおこなうので、分割数と利用するパケット情報との対応関係が複雑になる。したがって、不正解析者による解析がより困難な認証値を送信することができる。
【００３０】
また、請求項１０の発明にかかる電子機器は請求項１〜９のいずれか一つに記載の発明において、前記データ記憶手段は、前記主制御部で用いられるプログラムデータを記憶することを特徴とする。
【００３１】
この請求項１０の発明によれば、主制御部に記録されたプログラムコードの不正な書き換えや、主制御部のデータ記憶手段の不正な取り替えなどを検出することができる。
【００３２】
また、請求項１１の発明にかかる電子機器は、請求項１〜１０のいずれか一つに記載の発明において、前記２項演算は、加算または排他的論理和演算であることを特徴とする。
【００３３】
この請求項１１の発明によれば、個体認証値の生成に用いる２項演算として、加算または排他的論理和演算を切り替えて用いることができる。
【００３４】
また、請求項１２の発明にかかる遊技機は、請求項１〜１１のいずれか一つに記載の電子機器を備え、前記主制御部は主制御基板であり、前記周辺部は周辺基板であることを特徴とする。
【００３５】
この請求項１２の発明によれば、主制御基板は、データ記憶手段内のデータの分割数に基づいて同期コードの生成に用いるパケット情報の種類を決定する。分割数は主制御基板のみが知る値なので、不正解析者は、同期コードの生成に用いるパケット情報の種類を特定することができない。これにより、主制御基板と周辺基板との間に不正な制御基板が挿入された場合に、同期コードを照合することによって不正を検知することができる。
【００３６】
また、請求項１２の発明によれば、分割数そのものを決定するのではなく、認証値の生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
【００３７】
また、請求項１２の発明によれば、周辺基板は、主制御基板の個体と動作順序とがそれぞれ認証された場合にのみ、主制御基板から送信された制御コマンドを認証する。主制御基板の個体を認証することによって、主制御基板が不正な制御基板に交換されたことを検知することができる。また、主制御基板の動作順序を認証することによって、主制御基板の動作の連続性を認証することができ、たとえば信号切替回路などを搭載した不正な制御基板を検知することができる。
【００３８】
さらに、請求項１２の発明によれば、周辺基板は、同期コードおよび動作コードの２種類のコードを用いて主制御基板の動作順序を認証する。２種類のコードを用いて二重に認証処理をおこなうことにより、認証の強度を向上させ、不正な制御コマンドによる不正な処理が実行されるのを防止することができる。
【００３９】
また、請求項１３の発明にかかる主制御基板は、電子機器に搭載され、周辺基板に所定の処理をおこなわせる制御コマンドを送信する主制御基板であって、所定のデータを記憶するデータ記憶手段と、前記主制御基板の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定手段と、前記データ記憶手段内の前記データを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成手段と、前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記主制御基板の動作順序を認証するための動作コードを生成する動作コード生成手段と、前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺基板に送信する送信手段と、を備え、前記同期コード生成手段は、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定することを特徴とする。
【００４０】
この請求項１３の発明によれば、データ記憶手段内のデータの分割数に基づいて同期コードの生成に用いるパケット情報の種類を決定する。分割数は主制御基板のみが知る値なので、不正解析者は、同期コードの生成に用いるパケット情報の種類を特定することができない。これにより、主制御基板と周辺基板との間に不正な制御基板が挿入された場合に、同期コードを照合することによって不正を検知することができる。
【００４１】
また、請求項１３の発明によれば、分割数そのものを決定するのではなく、認証値の生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
【００４２】
また、請求項１４の発明にかかる周辺基板は、電子機器に搭載され、主制御基板によって送信された制御コマンドに基づいて所定の処理をおこなう周辺基板であって、前記主制御基板によって送信された前記主制御基板の個体を認証するための複数の個体認証値と、前記主制御基板の動作順序を認証するための動作認証値として、前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードおよび前記主制御基板の動作順序を認証するための動作コードを受信する受信手段と、前記複数の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記２項演算の結果の期待値とが一致するか否かに基づいて前記主制御基板の個体を認証する個体認証手段と、前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御基板の動作順序を認証するとともに、前記動作コードを用いて前記主制御基板の動作順序を認証する動作認証手段と、前記個体認証手段による認証および前記動作認証手段による２種類の認証が成立した場合に、前記主制御基板によって送信された制御コマンドを認証するコマンド認証手段と、を備え、前記動作認証手段は、前記個体認証手段による認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする。
【００４３】
この請求項１４の発明によれば、主制御基板の個体と動作順序とがそれぞれ認証された場合にのみ、主制御基板から送信された制御コマンドを認証する。主制御基板の個体を認証することによって、主制御基板が不正な制御部に交換されたことを検知することができる。また、主制御基板の動作順序を認証することによって、主制御基板の動作の連続性を認証することができ、たとえば信号切替回路などを搭載した不正な制御基板を検知することができる。
【００４４】
また、請求項１４の発明によれば、同期コードおよび動作コードの２種類のコードを用いて主制御基板の動作順序を認証する。２種類のコードを用いて二重に認証処理をおこなうことにより、認証の強度を向上させ、不正な制御コマンドによる不正な処理が実行されるのを防止することができる。
【００４５】
また、請求項１５の発明にかかる認証方法は、主制御部と、前記主制御部によって送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、前記主制御部において、前記主制御部の個体を認証するための個体認証値の生成に用いる前記データの量（以下、「データ量」という）を決定する決定工程と、前記主制御部内に記憶されている所定のデータを前記データ量に分割し、分割した前記データに対してそれぞれ結合法則を満たす２項演算をおこなって、分割した前記データの数（以下、「分割数」という）分の前記個体認証値を生成する個体認証値生成工程と、前記制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する同期コード生成工程と、前記主制御部の動作順序を認証するための動作コードを生成する動作コード生成工程と、前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを前記周辺部に送信する送信工程と、を含み、前記周辺部において、前記分割数分の前記個体認証値、前記同期コードおよび前記動作コードを受信する受信工程と、前記分割数分の前記個体認証値に対して前記２項演算をおこなった演算結果と、前記データ記憶手段内の全ての前記データに対して前記２項演算をおこなった値とが一致するか否かに基づいて前記主制御部の個体を認証する個体認証工程と、前記同期コードに含まれる前記パケット情報の差分を用いて前記主制御部の動作順序を認証するとともに、前記動作コードを用いて前記主制御部の動作順序を認証する動作認証工程と、前記個体認証工程における認証および前記動作認証工程における２種類の認証が成立した場合に、前記主制御部によって送信された制御コマンドを認証するコマンド認証工程と、を含み、前記同期コード生成工程では、前記同期コードの生成に用いる前記パケット情報の種類を前記分割数に基づいて決定し、前記動作認証工程では、前記個体認証工程における認証が成立した際に前記２項演算の対象となった前記個体認証値の数に基づいて前記パケット情報の種類を特定して前記同期コードを用いた認証をおこなうことを特徴とする。
【００４６】
この請求項１５の発明によれば、主制御部は、データ記憶手段内のデータの分割数に基づいて同期コードの生成に用いるパケット情報の種類を決定する。分割数は主制御部のみが知る値なので、不正解析者は、同期コードの生成に用いるパケット情報の種類を特定することができない。これにより、主制御部と周辺部との間に不正な制御部が挿入された場合に、同期コードを照合することによって不正を検知することができる。
【００４７】
また、請求項１５の発明によれば、分割数そのものを決定するのではなく、認証値の生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
【００４８】
また、請求項１５の発明によれば、周辺部は、主制御部の個体と動作順序とがそれぞれ認証された場合にのみ、主制御部から送信された制御コマンドを認証する。主制御部の個体を認証することによって、主制御部が不正な制御部に交換されたことを検知することができる。また、主制御部の動作順序を認証することによって、主制御部の動作の連続性を認証することができ、たとえば信号切替回路などを搭載した不正な制御部を検知することができる。
【００４９】
さらに、請求項１５の発明によれば、周辺部は、同期コードおよび動作コードの２種類のコードを用いて主制御部の動作順序を認証する。２種類のコードを用いて二重に認証処理をおこなうことにより、認証の強度を向上させ、不正な制御コマンドによる不正な処理が実行されるのを防止することができる。
【００５０】
また、請求項１６の発明にかかる認証プログラムは、請求項１５に記載の認証方法をコンピュータに実行させることを特徴とする。
【００５１】
この請求項１６の発明によれば、請求項１５に記載の認証方法をコンピュータに実行させることができる。
【発明の効果】
【００５２】
本発明にかかる電子機器、遊技機、主制御基板、周辺基板、認証方法および認証プログラムによれば、正規な主制御基板と周辺部との間に不正な制御基板が接続されるのを防止して、ぱちんこ遊技機などの電子機器に対する不正を防止することができる。
【図面の簡単な説明】
【００５３】
【図１】本発明のぱちんこ遊技機の遊技盤の一例を示す正面図である。
【図２】ぱちんこ遊技機の制御部の内部構成を示すブロック図である。
【図３】主制御基板および周辺基板の機能的構成を示すブロック図である。
【図４】主制御部による演出制御部の制御処理の手順を示すフローチャートである。
【図５】主制御部による演出制御部の制御処理の手順を示すフローチャートである。
【図６】大当たり関連コマンドの送信タイミングを示すタイムチャートである。
【図７】演出制御部による図柄変動処理の手順を示すフローチャートである。
【図８】演出制御部による大当たり時の処理の手順を示すフローチャートである。
【図９】ランプ制御部による図柄変動時のランプ制御処理の手順を示すフローチャートである。
【図１０】主制御部が出力する制御信号のデータフォーマットを模式的に示す説明図である。
【図１１】主制御部における個体認証データ（個体検査値）の生成方法を模式的に示す説明図である。
【図１２】主制御部におけるパケット情報の選択方法を模式的に示す説明図である。
【図１３】主制御部による制御信号の送信処理の手順を示すフローチャートである。
【図１４】周辺部による主制御部の認証処理の手順を示すフローチャートである。
【図１５】周辺部による個体認証処理の手順を示すフローチャートである。
【図１６】制御部間のデータの流れの一例を示すシーケンス図である。
【図１７】従来技術による不正防止技術の概要を示す説明図である。
【図１８】不正な制御基板の挿入例を示す説明図である。
【発明を実施するための形態】
【００５４】
（実施の形態）
以下に添付図面を参照して、この発明にかかる電子機器の機能を有したぱちんこ遊技機と、このぱちんこ遊技機に搭載されている複数の基板間（主制御基板および周辺基板）の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムの好適な実施の形態を詳細に説明する。
【００５５】
（ぱちんこ遊技機の基本構成）
図１は、本発明のぱちんこ遊技機の遊技盤の一例を示す正面図である。遊技盤１０１の下部位置に配置された発射部（図２参照）の駆動によって発射された遊技球は、レール１０２ａ，１０２ｂ間を上昇して遊技盤１０１の上部位置に達した後、遊技領域１０３内を落下する。遊技領域１０３には、図示を省略する複数の釘が設けられ、遊技球を各種の方向に向けて落下させるとともに、落下途中の位置には、遊技球の落下方向を変化させる風車や、入賞口が配設されている。
【００５６】
遊技盤１０１の遊技領域１０３の中央部分には、図柄表示部１０４が配置されている。図柄表示部１０４としては、たとえば液晶表示器（ＬＣＤ）が用いられる。なお、図柄表示部１０４としては、ＬＣＤに限らずＣＲＴなどを用いることもできる。図柄表示部１０４の下方には、始動入賞させるための始動入賞口１０５が配設されている。図柄表示部１０４の左右には、それぞれ入賞ゲート１０６が配設されている。
【００５７】
入賞ゲート１０６は、遊技球の通過を検出し、始動入賞口１０５を一定時間だけ開放させる抽選をおこなうために設けられる。図柄表示部１０４の側部や下方などには普通入賞口１０７が配設されている。普通入賞口１０７に遊技球が入賞すると、普通入賞時の賞球数（たとえば１０個）の払い出しをおこなう。遊技領域１０３の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口１０８が設けられている。
【００５８】
上述した図柄表示部１０４は、特定の入賞口に遊技球が入賞したとき（始動入賞時）に、複数の図柄の表示の変動を開始させ、所定時間後に図柄が停止する。この停止時に特定図柄（たとえば「７７７」）に揃ったとき、大当たり状態となる。大当たり状態のとき、下方に位置する大入賞口１０９が一定の期間開放を所定ラウンド（たとえば１５ラウンド）繰り返し、入賞した遊技球に対応した賞球数を払い出す。
【００５９】
図２は、ぱちんこ遊技機の制御部の内部構成を示すブロック図である。制御部２００は、複数の制御部により構成されている。図示の例では、主制御部２０１と、周辺部（演出制御部２０２、賞球制御部２０３）とを有する。主制御部２０１は、ぱちんこ遊技機の遊技にかかる基本動作を制御する。演出制御部２０２は、遊技中の演出動作を制御する。賞球制御部２０３は、払い出す賞球数を制御する。
【００６０】
主制御部２０１は、ＲＯＭ２１２に記憶されたプログラムデータに基づき、遊技内容の進行に伴う基本処理を実行するＣＰＵ２１１と、ＣＰＵ２１１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２１３、各検出部２２１〜２２４から各種データを受信するとともに、演出制御部２０２および賞球制御部２０３への各種データの送信をおこなうインタフェース（Ｉ／Ｆ）２１４などを備えて構成される。主制御部２０１は、たとえばいわゆる主制御基板によってその機能を実現する。
【００６１】
この主制御部２０１の入力側には、始動入賞口１０５に入賞した入賞球を検出する始動入賞口検出部２２１と、入賞ゲート１０６を通過した遊技球を検出するゲート検出部２２２と、普通入賞口１０７に入賞した遊技球を検出する普通入賞口検出部２２３と、大入賞口１０９に入賞した入賞球を検出する大入賞口検出部２２４とがＩ／Ｆ２１４を介して接続されている。これらの検出部としては、近接スイッチなどを用いて構成できる。
【００６２】
この主制御部２０１の出力側には、大入賞口開閉部２３１が接続され、この大入賞口開閉部２３１の開閉を制御する。大入賞口開閉部２３１は、大当たり時に大入賞口１０９を一定期間開放する機能であり、ソレノイドなどを用いて構成される。この大当たりは、生成した乱数（大当たり判定用乱数）に基づいて所定の確率（たとえば３００分の１など）で発生するようあらかじめプログラムされている。
【００６３】
演出制御部２０２は、主制御部２０１から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてＲＯＭ２４２に記憶されたプログラムデータを実行して遊技中における演出制御をおこなう。この演出制御部２０２は、演出処理を実行するＣＰＵ２４１と、ＣＰＵ２４１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２４３、図柄表示部１０４に表示させる画像データを書き込むＶＲＡＭ２４４、主制御部２０１からの各種データの受信およびランプ制御部２５１や音声制御部２５２への各種データの送信をおこなうインタフェース（Ｉ／Ｆ）２４５などを備えて構成される。演出制御部２０２は、たとえばいわゆる演出基板によってその機能を実現する。また、演出制御部２０２の出力側には、上述した図柄表示部（ＬＣＤ）１０４、ランプ制御部２５１、音声制御部２５２がＩ／Ｆ２４５を介して接続されている。ランプ制御部２５１はランプ２６１の点灯を制御する。また、音声制御部２５２はスピーカ２６２から出力される音声を制御する。
【００６４】
賞球制御部２０３は、主制御部２０１から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてＲＯＭ２８２に記憶されたプログラムデータを実行して賞球制御をおこなう。この賞球制御部２０３は、賞球制御の処理を実行するＣＰＵ２８１と、ＣＰＵ２８１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２８３、主制御部２０１からの各種データの受信および発射部２９２との各種データの送受信をおこなうインタフェース（Ｉ／Ｆ）２８４などを備えて構成される。賞球制御部２０３は、たとえばいわゆる賞球基板によってその機能を実現する。
【００６５】
賞球制御部２０３は、接続される払出部２９１に対して入賞時の賞球数を払い出す制御をおこなう。また、発射部２９２に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。払出部２９１は、遊技球の貯留部から所定数を払い出すためのモータなどからなる。賞球制御部２０３は、この払出部２９１に対して、各入賞口（始動入賞口１０５、普通入賞口１０７、大入賞口１０９）に入賞した遊技球に対応した賞球数を払い出す制御をおこなう。
【００６６】
発射部２９２は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサと、遊技球を発射させるソレノイドなどを備える。賞球制御部２０３は、発射部２９２のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイドなどを駆動させて遊技球を間欠的に発射させ、遊技盤１０１の遊技領域１０３に遊技球を送り出す。
【００６７】
上記構成の主制御部２０１と、演出制御部２０２と、賞球制御部２０３は、それぞれ異なるプリント基板（主制御基板、演出基板、賞球基板）に設けられる。これに限らず、たとえば、賞球制御部２０３は、主制御部２０１と同一のプリント基板上に設けることもできる。
【００６８】
（主制御基板および周辺基板の機能的構成）
図３は、主制御基板（主制御部）および周辺基板（演出制御部、賞球制御部）の機能的構成を示すブロック図である。まず、主制御部２０１としての機能を有する主制御基板３１０の機能的構成について説明する。図３に示すように、主制御基板３１０は、周辺基板３２０を動作させるための制御コマンドを送信する機能部であり、データ記憶部３１１、決定部３１２、個体認証値生成部３１３、同期コード生成部３１４、動作コード生成部３１５、暗号化部３１６、送信部３１７によって構成される。
【００６９】
データ記憶部３１１は、所定のデータを記憶する。所定のデータとは、たとえば主制御基板３１０で用いられるプログラムデータである。データ記憶部３１１としては、たとえば、主制御部２０１のＲＯＭ２１２（図２参照）の一部を用いることができる。なお、データ記憶部３１１に記憶されたデータは、書き換えや消去がおこなわれない固定データとする。
【００７０】
決定部３１２は、主制御基板３１０の個体を認証するための個体認証データ（個体認証値）の生成に用いるデータの量（以下、「データ量」という）を決定する。決定部３１２は、たとえば、乱数生成回路や乱数生成プログラムによって生成された値をデータ量として決定したり、主制御基板３１０の他の処理において生成される値を所定のタイミングで参照し、その値をデータ量として決定したりする。
【００７１】
個体認証値生成部３１３は、データ記憶部３１１内のデータを、決定部３１２によって決定されたデータ量に分割し、分割したデータに対してそれぞれ結合法則を満たす２項演算をおこなって、主制御基板３１０の個体を認証するための個体認証データを、分割したデータの数（以下、「分割数」という）だけ生成する。
【００７２】
結合法則を満たす２項演算とは、たとえば加算または排他的論理和演算である。個体認証値生成部３１３は、分割されたデータのそれぞれに対して加算または排他的論理和演算をおこなって、分割数分の個体認証データを生成する。個体認証値生成部３１３が個体認証データの生成に用いた２項演算を、以下「個体認証値生成用演算」という。個体認証値生成部３１３は、個体認証データを生成する際、データ記憶部３１１に記憶された全てのデータを、重複なく用いるようにする。具体的には、たとえば、決定部３１２によって決定された量のデータを、データ記憶部３１１内のアドレスの先頭から順番に読み出して、個体認証データを生成する。
【００７３】
ここで、個体認証データは、主制御部２０１（すなわち主制御基板３１０）の個体を認証するために用いる認証値である。個体を認証するとは、主制御基板３１０を物理的（ハードウェア的）に認証する、という意味であり、主制御基板３１０が不正な制御基板に付け替えられていないことを認証することを意味する。不正な制御基板では、個体認証データを生成するのは非常に困難である。したがって、主制御基板３１０の固定認証データによる認証が失敗した場合には、不正な制御基板による制御がおこなわれようとしていることが検知できる。
【００７４】
同期コード生成部３１４は、制御コマンドの送信に伴って出力されるパケット情報を含んだ同期コードを生成する。同期コードは、主制御基板３１０による制御コマンドの送信が継続して実行されていることを確認するための情報である。同期コードは、その生成手順によって同期コードＡと同期コードＢとの２種類に分けられる。具体的には、主制御基板３１０の動作検査値として任意の間隔ごとに出力されたパケット情報を含んだ同期コードＡおよび同じく動作検査値として連続して出力されたパケット情報を含んだ同期コードＢがある。
【００７５】
上述したように、本発明では、制御コマンドの送信が継続して実行されていることを確認するための情報としてパケット情報が用いられている。パケット情報は、主制御基板３１０の制御コマンドの生成など、主制御基板３１０の動作に伴って、任意の間隔、たとえば、所定の時間間隔や所定のクロック数間隔、または命令実行数間隔などに設定された出力タイミングで出力される。
【００７６】
・同期コードＡ
そこで、同期コードＡは、このような所定の出力タイミングで出力されたパケット情報（以下、「間欠パケット情報」という）を用いて生成される。なお、上述したように、同期コード生成のために利用するパケット情報は、制御コマンドの生成に関する動作に限定されず、主制御基板３１０が連続して動作していることを認証可能な情報であればよい。そして、パケット情報は、任意の間隔ごとに出力されているため、連続した出力タイミングのパケット情報を比較した場合に、パケット情報同士はお互いの所定間隔の時間差や命令実行数量などの変化量をもつという相関関係を有している。
【００７７】
したがって、後述する動作認証部３２４では、この複数のパケット情報同士の相関関係を求めることによって主制御基板３１０の動作の継続性を認証する。なお、同期コードＡは、パケット情報として取得した値をそのまま利用してもよいし、これらの値に所定の演算を施して暗号化した値を利用してもよい。
【００７８】
また、同期コードＡは、制御コマンドの出力処理以前のタイミングで、主制御基板３１０の動作検査値としてあらかじめ設定された所定の間隔ごとに出力されたパケット情報を含んで生成してもよい。このように、同期コードＡは、主制御基板３１０の利用者（遊技者ではなく、たとえば、主制御基板３１０を遊技機に搭載する管理者や、業者など）の設定するタイミングに応じた同期コードを生成できる。このような構成にすることによって、同期コードを第三者にとってより解析の困難な情報とすることができる。
【００７９】
・同期コードＢ
一方、同期コードＢは、主制御基板３１０の動作に伴って、連続した間隔、たとえば、所定の時間間隔や所定のクロック数間隔、または命令実行数間隔などに設定された出力タイミングで出力されたパケット情報（以下、「連続パケット情報」という）を含んだ情報である。なお、同期コードＡと同様に、同期コードＢを生成のために利用するパケット情報は、制御コマンドの生成に関する動作に限定されず、主制御基板３１０が連続して動作していることを認証可能な情報であればよい。そして、パケット情報は、連続したタイミングで出力されているため、所定の間隔の相関関係を有している。
【００８０】
したがって、後述する動作認証部３２４では、この複数のパケット情報同士の相関関係を求めることによって主制御基板３１０の動作の継続性を認証する。そして、同期コードＢも、パケット情報として取得した値をそのまま利用してもよいし、これらの値に所定の演算を施して暗号化した値を利用してもよい。
【００８１】
また、同期コードＢは、制御コマンドの出力処理以前のタイミングで、主制御基板３１０の動作検査値としてあらかじめ設定された所定の間隔ごとに出力されたパケット情報を含んで生成してもよい。このように、同期コードＢは、主制御基板３１０の利用者（遊技者ではなく、たとえば、主制御基板３１０を遊技機に搭載する管理者や、業者など）の設定するタイミングに応じた同期コードを生成できる。このような構成にすることによって、同期コードを第三者にとってより解析の困難な情報とすることができる。
【００８２】
このように、所定の制御コマンドが出力された際に同期コードを参照することによって、主制御基板３１０にて実行されている動作が継続しておこなわれているか否かを簡易的に判定することができる。したがって、図１８で説明したような、不正な制御基板１８００１による不正行為への防御策を講じることができる。具体的には、同期コードによって認証した動作順序が継続した動作であると判定できなければ、主制御基板３１０から送信された制御コマンド以外の不正な制御基板から送信された制御コマンドであると判断し、不正制御を検知することができる。
【００８３】
ここで、同期コード生成部３１４は、決定部３１２によって決定された分割数に基づいて、同期コードの生成に用いるパケット情報の種類を決定する。すなわち、同期コード生成部３１４は、間欠パケット情報を用いて同期コードＡを生成するか、連続パケット情報を用いて同期コードＢを生成するかを分割数に基づいて決定する。同期パケット情報の種類を決定する手法としては、たとえば、分割数２の場合は間欠パケット、分割数３の場合は連続パケット・・というように、選択するパケット情報を分割数ごとに決めておく方法がある。また、たとえば、分割数が偶数の場合は同期コードの生成に用いるパケット情報の種類を決定し、分割数が奇数の場合は現在用いている種類の同期コードを継続して用いる、などの方法がある。また、分割数に対して各種演算を施した値に基づいてパケット情報を変更してもよい。
【００８４】
他の手法として、分割数を特定値で割った時の余りの数に基づいて、間欠パケット情報または連続パケット情報のどちらかを選択してもよい。さらに、他の手法として、たとえば、前回の分割数と今回の分割数との差分に基づいて、間欠パケット情報または連続パケット情報のどちらかを選択してもよい。
【００８５】
動作コード生成部３１５は、主制御基板３１０の動作順序を認証するための動作コードを生成する。動作コードは、主制御基板３１０による制御コマンドの送信が継続して実行されていることを確認するための情報である。具体的には、たとえば、プログラム機能の処理番号、認証コードなどの認証値生成処理の実行回数、所定の法則で変動する値などによって構成された検査値である。周辺基板３２０では、この動作コードを参照することにより、主制御基板３１０の動作（ここでは、制御コマンドの送信）順序が連続しておこなわれているか否かを判断することができる。
【００８６】
なお、動作コードは、主制御基板３１０による制御コマンド送信の動作順序に関する情報以外にも、動作をおこなうための制御コマンドの実行プログラムの動作手順に対応して設定されている機能番号などの情報を含んでいてもよい。このとき、動作順序に関する複数の情報をそのまま含んでもよいし、これらの情報に所定の演算を施して暗号化した値を含んでもよい。
【００８７】
このように、所定の制御コマンドを出力した際の主制御基板３１０がどのような動作中であるかを認証する動作コードを用いることによって、動作コードによって認証した動作順序が連続していなければ、主制御基板３１０から送信された制御コマンド以外の不正な制御基板から送信された制御コマンドであると判断し、不正制御を検知することができる。なお、同期コードおよび動作コードは、ともに主制御基板３１０の動作順序を認証するための値であるので、この２つを合わせて「動作認証データ」と呼ぶ。
【００８８】
暗号化部３１６は、個体認証データや同期コード、動作コードを所定の暗号化方法で暗号化する。暗号化部３１６による暗号化方法は任意であるが、暗号化部３１６において複数の暗号化方法を用いることができる場合、分割数に基づいて暗号化方法を変更してもよい。たとえば、暗号化部３１６で２つの暗号化方法を用いることができる場合、分割数が偶数の場合は第１の方法、奇数の場合は第２の方法、というように変更する。また、暗号化部３１６は、後述する制御信号内の制御コマンドを用いて個体認証データや同期コード、動作コードを暗号化するようにしてもよい。
【００８９】
なお、個体認証値生成部３１３は、個体認証データを生成する際に、同期コードや動作コードの一部もしくは全てを用いるようにしてもよい。この場合、たとえば、分割されたデータのうち１つに、同期コードや動作コードの一部もしくは全てを付加して２項演算をおこなって個体認証データを生成する。また、暗号化部３１６において個体認証データを暗号化する際に、同期コードや動作コードの一部もしくは全てを用いるようにしてもよい。同様に、同期コード生成部３１４は、同期コードや動作コードを生成する際に、個体認証データの一部もしくは全てを用いるようにしてもよい。また、暗号化部３１６において同期コードや動作コードを暗号化する際に、個体認証データの一部もしくは全てを用いるようにしてもよい。
【００９０】
送信部３１７は、個体認証データ、同期コードおよび動作コードを周辺基板３２０に送信する。送信部３１７は、たとえば、主制御基板３１０から周辺基板３２０に送信される制御信号に認証データを付加することにより、周辺基板３２０に認証データを送信する。
【００９１】
つぎに、演出制御部２０２や賞球制御部２０３などの周辺部としての機能を有する周辺基板３２０の機能的構成について説明する。図３に示すように、周辺基板３２０は、受信部３２１、復号化部３２２、個体認証部３２３、動作認証部３２４、コマンド認証部３２５によって構成される。
【００９２】
受信部３２１は、主制御基板３１０によって送信された個体認証データ、同期コードおよび動作コードを受信する。受信部３２１は、たとえば、認証データが付加された制御信号を受信することによって、これらの認証データを受信する。
【００９３】
復号化部３２２は、暗号化部３１６による暗号化方法に対応する復号化方法で個体認証データ、同期コードおよび動作コードを復号化する。復号化部３２２は、暗号化部３１６による暗号化方法が分割数に基づいて変更される場合、主制御基板３１０の個体に対する認証が成立した際に、個体認証部３２３による演算の対象となった個体認証データの数に基づいて復号化方法を変更する。
【００９４】
個体認証部３２３は、分割数分の個体認証データに対して、個体認証値生成用演算をおこない、その演算結果と、演算結果の期待値とが一致するか否かに基づいて主制御基板３１０の個体を認証する。演算結果の期待値とは、データ記憶部３１１内の全てのデータに対して、個体認証値生成用演算をおこなった値である。個体認証値生成用演算は結合法則を満たすため、データ記憶部３１１内の全てのデータから生成された期待値と、分割したデータから生成された個体認証データに対して同じ演算をおこなった値とは一致するはずである。これにより、個体認証部３２３は、主制御基板３１０に記憶されているデータが変化していないことを確認し、主制御基板３１０の個体の正当性を認証する。
【００９５】
なお、個体認証データが、同期コードや動作コードの一部もしくは全てと、分割されたデータとを用いて生成されている場合、個体認証部３２３は、同期コードや動作コードの一部もしくは全てと、データ記憶部３１１内の全てのデータに対して個体認証値生成用演算をおこなった値とを用いて生成された期待値を用いて、主制御部２０１の個体を認証する。
【００９６】
動作認証部３２４は、同期コードに含まれるパケット情報の差分を用いて主制御部２０１の動作順序を認証するとともに、動作コードを用いて主制御部２０１の動作順序を認証する。ここで、動作認証部３２４は、個体認証部３２３による認証が成立した際に２項演算の対象となった個体認証値の数に基づいてパケット情報の種類を特定して認証をおこなう。「個体認証部３２３による認証が成立した際に２項演算の対象となった個体認証データの数」とは、すなわち分割数である。動作認証部３２４は、まず、分割数に基づいて、同期コードがどちらの種類のパケット情報を用いて生成されているかを特定する。なお、分割数からパケット情報の種類を特定する方法は、主制御基板３１０の同期コード生成部３１４による変更方法に対応している。そして、特定したコードに対応した方法で認証処理をおこない、主制御基板３１０の動作順序を認証する。
【００９７】
コマンド認証部３２５は、個体認証部３２３による認証および動作認証部３２４による２種類の認証（同期コードに対する認証および動作コードに対する認証）が成立した場合に、主制御基板３１０が正しい制御コマンドを出力していると認証する。周辺基板３２０は、コマンド認証部３２５によって認証された制御コマンドに基づく処理をおこなう。コマンド認証部３２５は、どちらか一方の認証が失敗した場合には、不正な制御基板から不正制御をおこなうための不正な制御コマンド（不正な制御信号）が出力されていると判断して、制御コマンドを破棄するとともに、ユーザに不正を報知するようにしてもよい。
【００９８】
（ぱちんこ遊技機の基本動作）
上記構成によるぱちんこ遊技機の基本動作の一例を説明する。主制御部２０１は、各入賞口に対する遊技球の入賞状況を制御コマンドとして賞球制御部２０３に出力する。賞球制御部２０３は、主制御部２０１から出力された制御コマンドに応じて、入賞状況に対応した賞球数の払い出しをおこなう。
【００９９】
また、主制御部２０１は、始動入賞口１０５に遊技球が入賞するごとに、対応する制御コマンドを演出制御部２０２に出力し、演出制御部２０２は、図柄表示部１０４の図柄を変動表示させ、停止させることを繰り返す。大当たりの発生が決定しているときには、対応する制御コマンドを演出制御部２０２に出力し、演出制御部２０２は、所定の図柄で揃えて停止させる。このとき同時に、大入賞口１０９を開放する制御をおこなう。演出制御部２０２は、大当たり発生期間中、および大当たり発生までの間のリーチ時や、リーチ予告時などには、図柄表示部１０４に対して、図柄の変動表示に加えて各種の演出表示をおこなう。このほか、各種役物に対して特定の駆動をおこなったり、ランプ２６１の表示状態を変更するなどの演出をおこなう。
【０１００】
そして、大当たり発生時には、大入賞口１０９が複数回開放される。１回の開放が１ラウンドとして、たとえば１５回のラウンドが繰り返し実行される。１ラウンドの期間は、遊技球がたとえば１０個入賞したとき、あるいは所定期間（たとえば３０秒）とされている。この際、賞球制御部２０３は、大入賞口１０９に対する遊技球１個の入賞あたり、たとえば１５個の賞球数で払い出しをおこなう。大当たり終了後は、この大当たり状態が解除され、通常の遊技状態に復帰する。
【０１０１】
（各制御部による処理の詳細）
つぎに、各制御部がおこなう各種処理の詳細について説明する。はじめに、主制御部２０１による演出制御部２０２の制御処理について説明する。図４および図５は、主制御部による演出制御部の制御処理の手順を示すフローチャートである。なお、図４〜図９においては、演出制御部２０２の制御処理の手順を明確にするため、補正データ、認証データおよび付随データについては考慮しないものとする。すなわち、図４〜図９の説明において、「コマンドを送信する」とは、「当該コマンドを示すデータ（制御コマンドデータ）を含む制御信号を送信する」との意味であり、たとえば補正データや認証データや付随データ（図１０参照）の有無は考慮しないものとする。
【０１０２】
図４および図５のフローチャートにおいて、主制御部２０１は、まず、ぱちんこ遊技機の電源がオンにされるまで待機する（ステップＳ４０１：Ｎｏのループ）。ぱちんこ遊技機の電源がオンにされると（ステップＳ４０１：Ｙｅｓ）、主制御部２０１は、演出制御部２０２や賞球制御部２０３などの周辺部に対して電源オンコマンドを送信する（ステップＳ４０２）。電源オンコマンドが送信されると、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２、図柄表示部１０４のそれぞれに対して電源オン時の演出用の制御コマンド（具体的には、ランプの点灯や音声の出力、デモ画面の表示などを指示する制御コマンド）を送信する。
【０１０３】
つぎに、主制御部２０１は、ＲＯＭ２１２またはＲＡＭ２１３に記録されている未抽選入賞回数データを参照して、未抽選入賞回数が０回か否かを判断する（ステップＳ４０３）。未抽選入賞回数とは、始動入賞口に検出された入賞球の数（入賞回数）から、入賞球に対応する抽選がおこなわれた回数（既抽選回数）を減じた数である。未抽選入賞回数が０回の場合（ステップＳ４０３：Ｙｅｓ）、主制御部２０１は、デモが開始されてから経過した時間を計測する（ステップＳ４０４）。
【０１０４】
デモが開始されてから所定時間が経過すると（ステップＳ４０５：Ｙｅｓ）、主制御部２０１は、演出制御部２０２に客待ちデモコマンドを送信して（ステップＳ４０６）、ステップＳ４０７に移行する。デモが開始されてから所定時間が経過しない場合は（ステップＳ４０５：Ｎｏ）、そのままステップＳ４０７に移行する。ステップＳ４０６で客待ちデモコマンドが送信されると、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２、図柄表示部１０４に対して客待ちデモ用の制御信号を送信する。また、ステップＳ４０３で、未抽選入賞回数が０回ではない場合は（ステップＳ４０３：Ｎｏ）、ステップＳ４１０に移行する。
【０１０５】
つぎに、主制御部２０１は、始動入賞口検出部２２１によって始動入賞口への入賞球が検出されたか否か判断する（ステップＳ４０７）。始動入賞口への入賞球が検出されると（ステップＳ４０７：Ｙｅｓ）、主制御部２０１は、デモが開始されてから計測していた時間をクリアして（ステップＳ４０８）、未抽選入賞回数に１を加える（ステップＳ４０９）。つづいて、主制御部２０１は、大当たり判定用乱数を取得して（ステップＳ４１０）、未抽選入賞回数から１を減算し（ステップＳ４１１）、図５のステップＳ４１２に移行する。また、ステップＳ４０７で、始動入賞口への入賞球が検出されない場合は（ステップＳ４０７：Ｎｏ）、ステップＳ４０４に戻り、以降の処理を継続する。
【０１０６】
つぎに、主制御部２０１は、ステップＳ４１０で取得した大当たり判定用乱数が、あらかじめ定められた大当たり乱数であるか否かを判断する（ステップＳ４１２）。大当たり判定用乱数が大当たり乱数である場合（ステップＳ４１２：Ｙｅｓ）、主制御部２０１は、演出制御部２０２に大当たりリーチコマンド（図柄変動コマンド）を送信する（ステップＳ４１３）。主制御部２０１は、図柄変動時間が経過するまで待機して（ステップＳ４１４：Ｎｏのループ）、図柄変動時間が経過すると（ステップＳ４１４：Ｙｅｓ）、演出制御部２０２に図柄停止コマンドを送信する（ステップＳ４１５）。
【０１０７】
つぎに、主制御部２０１は、演出制御部２０２に大当たり開始コマンドを送信し（ステップＳ４１６）、つづけて、大当たり中の各ラウンドに対応するコマンド（大当たりコマンド）を順次送信する（ステップＳ４１７）。そして、主制御部２０１は、全てのラウンドの大当たりコマンドの送信が終わると、大当たり終了コマンドを送信して（ステップＳ４１８）、ステップＳ４２２に移行する。
【０１０８】
一方、ステップＳ４１２で、大当たり判定用乱数が大当たり乱数でなかった場合（ステップＳ４１２：Ｎｏ）、主制御部２０１は、演出制御部２０２にはずれリーチコマンド（図柄変動コマンド）を送信する（ステップＳ４１９）。主制御部２０１は、図柄変動時間が経過するまで待機して（ステップＳ４２０：Ｎｏのループ）、図柄変動時間が経過すると（ステップＳ４２０：Ｙｅｓ）、演出制御部２０２に図柄停止コマンドを送信する（ステップＳ４２１）。
【０１０９】
主制御部２０１は、ぱちんこ遊技機の電源がオフにされるまでは（ステップＳ４２２：Ｎｏ）、図４のステップＳ４０３に戻り、以降の処理を繰り返す。そして、ぱちんこ遊技機の電源がオフにされると（ステップＳ４２２：Ｙｅｓ）、主制御部２０１は、演出制御部２０２に終了処理コマンドを送信して（ステップＳ４２３）、本フローチャートによる処理を終了する。
【０１１０】
図６は、大当たり関連コマンド（大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド）の送信タイミングを示すタイムチャートである。大当たりリーチコマンドは、実際に大当たりが発生するよりも頻繁に、かつランダムに送信される。また、大当たり開始コマンドは、実際に大当たりが発生した場合に、大当たり状態に移行する際に１度だけ送信される。また、大当たりコマンドは、大当たり状態に移行した後、ラウンドごとに継続的に送信される。また、大当たり終了コマンドは、大当たり状態の全てのラウンドが終了し、通常の状態に移行する際に１度だけ送信される。
【０１１１】
つぎに、演出制御部２０２による処理について説明する。以下では、図柄変動時（大当たりリーチコマンド（図５のステップＳ４１３参照）または、はずれリーチコマンド（図５のステップＳ４１９参照）を受信した場合）および、大当たり時の演出制御部２０２の処理について説明する。
【０１１２】
図７は、演出制御部による図柄変動処理の手順を示すフローチャートである。図７のフローチャートにおいて、演出制御部２０２は、まず、図柄変動コマンドである大当たりリーチコマンド（図５のステップＳ４１３参照）、または、はずれリーチコマンド（図５のステップＳ４１９参照）を受信するまで待機する（ステップＳ７０１：Ｎｏのループ）。図柄変動コマンドを受信すると（ステップＳ７０１：Ｙｅｓ）、演出制御部２０２は、変動演出選択用の乱数を取得して（ステップＳ７０２）、取得した乱数に基づいて変動演出の種類を選択する（ステップＳ７０３）。そして、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２に対して変動演出別の演出開始コマンドを送信する（ステップＳ７０４）。
【０１１３】
演出制御部２０２は、変動演出の演出時間が経過したか否かや（ステップＳ７０５）、主制御部２０１から図柄停止コマンド（図５のステップＳ４１５，Ｓ４２１参照）を受信したか否かを判断する（ステップＳ７０６）。演出時間が経過した場合（ステップＳ７０５：Ｙｅｓ）、または、図柄停止コマンドを受信した場合（ステップＳ７０６：Ｙｅｓ）、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２に対して演出停止コマンドを送信する（ステップＳ７０７）。また、演出時間が経過せず（ステップＳ７０５：Ｎｏ）、かつ図柄停止コマンドを受信しない場合は（ステップＳ７０６：Ｎｏ）、ステップＳ７０５に戻り、以降の処理を繰り返す。
【０１１４】
つぎに、演出制御部２０２の大当たり時の処理について説明する。図８は、演出制御部による大当たり時の処理の手順を示すフローチャートである。図８のフローチャートにおいて、演出制御部２０２は、まず、主制御部２０１から大当たり開始コマンド（図５のステップＳ４１６参照）を受信するまで待機する（ステップＳ８０１：Ｎｏのループ）。大当たり開始コマンドを受信すると（ステップＳ８０１：Ｙｅｓ）、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２に対して大当たり開始処理コマンドを送信する（ステップＳ８０２）。
【０１１５】
つぎに、演出制御部２０２は、主制御部２０１からラウンド別の大当たりコマンド（図５のステップＳ４１７参照）を受信するまで待機する（ステップＳ８０３：Ｎｏのループ）。大当たりコマンドを受信すると（ステップＳ８０３：Ｙｅｓ）、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２に対して受信したラウンド別の大当たりコマンドに対応するラウンド別処理コマンドを送信する（ステップＳ８０４）。
【０１１６】
つづいて、演出制御部２０２は、主制御部２０１から大当たり終了コマンド（図５のステップＳ４１８参照）を受信するまで待機する（ステップＳ８０５：Ｎｏのループ）。大当たり終了コマンドを受信すると（ステップＳ８０５：Ｙｅｓ）、演出制御部２０２は、ランプ制御部２５１や音声制御部２５２に対して大当たり終了処理コマンドを送信して（ステップＳ８０６）、本フローチャートによる処理を終了する。
【０１１７】
つづいて、ランプ制御部２５１によるランプ制御処理について説明する。ここでは、演出制御部２０２から図柄変動コマンドを受信した場合（図柄変動時）の処理について説明する。図９は、ランプ制御部による図柄変動時のランプ制御処理の手順を示すフローチャートである。図９のフローチャートにおいて、ランプ制御部２５１は、まず、演出制御部２０２から演出開始コマンドを受信するまで待機する（ステップＳ９０１：Ｎｏのループ）。
【０１１８】
演出制御部２０２から演出開始コマンドを受信すると（ステップＳ９０１：Ｙｅｓ）、ランプ制御部２５１は、コマンド別に用意されているデータを読み出して（ステップＳ９０２）、コマンド別の選択ルーチンを実行し（ステップＳ９０３）、ランプデータをセットする（ステップＳ９０４）。そして、ランプ制御部２５１は、ランプ２６１に対してランプデータを出力する（ステップＳ９０５）。ランプ制御部２５１から出力されたランプデータに基づいて、ランプ２６１は点灯または消灯する。
【０１１９】
ランプ制御部２５１は、演出制御部２０２から演出停止コマンドを受信するまでは（ステップＳ９０６：Ｎｏ）、ステップＳ９０５に戻り、ランプデータの出力を継続する。演出停止コマンドを受信すると（ステップＳ９０６：Ｙｅｓ）、ランプ制御部２５１は、ランプデータの出力を停止して（ステップＳ９０７）、本フローチャートによる処理を終了する。
【０１２０】
なお、図９にはランプ制御部２５１の処理を記載したが、音声制御部２５２による音声制御も、図９の処理とほぼ同様である。音声制御部２５２による音声制御処理は、図９の処理において、ステップＳ９０４，Ｓ９０５，Ｓ９０７の「ランプデータ」を「音声データ」と読み替えればよい。
【０１２１】
このように、演出制御部２０２や賞球制御部２０３などの周辺部は、主制御部２０１によって出力された制御コマンドに基づいて各種の処理をおこなう。一方、たとえば、主制御部２０１と周辺部との間に不正な制御基板が接続された場合（図１８参照）などのように、制御コマンドの出力元が正規の主制御部２０１ではない場合、周辺部は不正な制御基板から出力された不正な制御コマンドによって不正な動作をおこなってしまう。
【０１２２】
これを防止するため、本実施の形態にかかるぱちんこ遊技機では、主制御部２０１と周辺部との間で認証処理をおこなう。より詳細には、周辺部を認証者、主制御部２０１を被認証者とした認証処理をおこない、主制御部２０１から送信される制御信号の正当性を認証する。この認証処理に用いる認証値（認証データ）は、主制御部２０１に記録されているプログラムデータを任意に分割したデータを元に生成されている。この認証処理によって、主制御部２０１が不正な制御基板に交換されたり、主制御部２０１と周辺部との間に不正な制御基板が取り付けられるなどの不正を検知して、ぱちんこ遊技機への不正を防止することができる。
【０１２３】
本実施の形態では、認証データを制御コマンドデータに付加して送信する。認証データを制御コマンドデータに付加することによって、認証データ単体で送信する場合と比較して、主制御部２０１と周辺部との間の通信負荷の増大を抑えることができる。また、認証データを制御コマンドデータに付加することによって、認証データを単体で送信する場合と比較して、通信データ中から認証データが抽出され、解析されてしまう可能性を低減することができる。以下に認証データと制御コマンドデータを含む制御信号のフォーマットについて説明する。
【０１２４】
（制御信号のデータフォーマット）
図１０は、主制御部が出力する制御信号のデータフォーマットを模式的に示す説明図である。図１０には、主制御部２０１が出力する通常の制御信号１０１０および認証データ付制御信号１０２０が示されている。
【０１２５】
通常の制御信号１０１０は、制御コマンドデータ１００１および付随データ１００２を含んでいる。制御コマンドデータ１００１は、たとえばリーチコマンドや大当たり開始コマンド、ラウンド別コマンドなどの各コマンド固有のデータである。また、付随データ１００２は、制御コマンドデータ１００１に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドデータ１００１に基づく処理に必要なデータである。
【０１２６】
一方、認証データ付制御信号１０２０は、制御コマンドデータ１００１および付随データ１００２に加え、認証データ１００３を含んでいる。認証データ１００３には、個体認証データ１００３ａ、同期コード１００３ｂ、動作コード１００３ｃの３種類の認証データが含まれている。個体認証データ１００３ａは、上述したように制御コマンドデータ１００１および付随データ１００２を送信した主制御部２０１の個体を認証するためのデータである。個体認証データは、具体的には以下のように生成される。
【０１２７】
（個体認証データ（個体検査値）の生成方法）
図１１は、主制御部における個体認証データ（個体検査値）の生成方法を模式的に示す説明図である。個体認証データは、主制御部２０１のＲＯＭ２１２などに記録されたデータを用いて生成する。より詳細には、ＲＯＭ２１２の所定の領域に格納されたデータを、任意のデータ量に分割した上で、分割した領域にそれぞれ格納されたデータに対して結合法則を満たす２項演算（半群演算）をおこなって個体検査値を算出する。半群演算としては、たとえば、加算や排他的論理和演算などが挙げられる。そして、個体検査値に対して所定の演算（たとえば、暗号化処理）をおこなって得られた値を認証データとする。なお、個体検査値を暗号化するか否かは任意であるが、不正防止の観点から暗号化することが望ましい。
【０１２８】
個体検査値に対して所定の演算をおこなう際に、個体検査値が付加される制御コマンドを用いてもよい。一般に、不正な制御部は、正規の主制御部２０１と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。今回送信する制御コマンドを用いて個体認証データ１００３ａを生成すれば、不正な制御部によって認証値が再利用された場合であっても、認証値と制御コマンドの整合がとれず、不正を検知することができる。
【０１２９】
また、個体検査値に対して所定の演算をおこなう際に、一緒に送信される同期コード１００３ｂ（またはパケット情報）や動作コード１００３ｃの一部または全てを用いてもよい。前述のように、周辺部では、個体認証データ１００３ａ、同期コード１００３ｂおよび動作コード１００３ｃの３つの認証データを用いて認証をおこなう。１つの認証データを他の認証データを用いて生成することにより、認証データ１００３に対して不正がおこなわれた場合に不正を検知しやすくなり、認証強度を向上させることができる。
【０１３０】
主制御部２０１は、たとえば、１つの個体検査値を生成するごとに、その生成に用いるデータの量（データ量）を決定する。この場合、主制御部２０１は、ＲＯＭ２１２の所定領域内の全てのデータを用いて個体検査値を生成するまで、データ量の決定と個体検査値の生成とを繰り返す。このため、いくつの個体検査値が生成されるか（すなわち、分割数がいくつになるか）は、ＲＯＭ２１２の所定領域内の全てのデータを用いて個体検査値を生成するまでわからない。
【０１３１】
なお、１つの個体検査値を生成するごとにデータ量を決定するのではなく、あらかじめ個体検査値の生成に用いるデータの量を決定しておいてもよい。また、全ての個体検査値の生成に用いるデータ量を等しくするようにしてもよい。この場合、データ量を決定した時点で分割数が予測可能となる。
【０１３２】
個体検査値を算出するために用いるデータの種類は任意であるが、たとえば、主制御部２０１のＲＯＭ２１２に記録されたプログラムデータ（命令コードや固定データ）を用いることができる。主制御部２０１のＲＯＭ２１２に記録されたプログラムデータを用いることによって、プログラムコードの不正な書き換えや、主制御部２０１のＲＯＭ２１２の不正な取り替えなどを検出することができる。
【０１３３】
たとえば、図１１に示すプログラムデータ格納部１１００には、１２個のデータ（０ｘ０１〜０ｘ０９，０ｘ０Ａ〜０ｘ０Ｃ、１つのデータのデータ量は１バイト）が格納されている。検査値の生成に用いるデータ量を４バイト、３バイト、５バイトとする場合、プログラムデータ格納部１１００は、たとえば４バイト分のデータを含む第１ブロック１１００ａ、３バイト分のデータを含む第２ブロック１１００ｂ、５バイト分のデータを含む第３ブロック１１００ｃ、の３つに分割できる。すなわち、分割数は３となる。主制御部２０１は、これらの各ブロックに格納されたデータに対してそれぞれ半群演算をおこなって個体検査値を算出する。なお、上述したデータ量は例示である。
【０１３４】
たとえば、半群演算として加算を用いる方法を方式Ａとすると、第１ブロック１１００ａに格納された４バイト分のデータ０ｘ０１，０ｘ０２，０ｘ０３，０ｘ０４を加算して第１検査値０ｘ０Ａが得られる。同様に、第２ブロック１１００ｂに格納された３バイト分のデータ０ｘ０５，０ｘ０６，０ｘ０７を加算して第２検査値０ｘ１２が、第３ブロック１１００ｃに格納された５バイト分のデータ０ｘ０８，０ｘ０９，０ｘ０Ａ，０ｘ０Ｂ，０ｘ０Ｃを加算して第３検査値０ｘ３２がそれぞれ得られる。
【０１３５】
また、たとえば、半群演算として排他的論理和演算を用いる方法を方式Ｂとすると、第１ブロック１１００ａに格納された４バイト分のデータ０ｘ０１，０ｘ０２，０ｘ０３，０ｘ０４に排他的論理和演算をおこない第１検査値０ｘ０４が得られる。同様に、第２ブロック１１００ｂに格納された３バイト分のデータ０ｘ０５，０ｘ０６，０ｘ０７に排他的論理和演算をおこない第２検査値０ｘ０４が、第３ブロック１１００ｃに格納された５バイト分のデータ０ｘ０８，０ｘ０９，０ｘ０Ａ，０ｘ０Ｂ，０ｘ０Ｃに排他的論理和演算をおこない第３検査値０ｘ０Ｃがそれぞれ得られる。
【０１３６】
そして、得られた個体検査値に対して暗号化処理をおこなって個体認証データ１００３ａとする。この暗号化処理の際、上述のように、制御コマンドデータ１００１や付随データ１００２、同期コード１００３ｂ（またはパケット情報）、動作コード１００３ｃなどを含めて暗号化処理をおこなってもよい。このとき、これらのデータをそのまま用いてもよいし、これらのデータに対してハッシュ関数による演算やパリティチェック、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：ＣＲＣ）、チェックサムなどの演算をおこなって得た値を用いてもよい。
【０１３７】
一方、認証者である周辺部は、プログラムデータ格納部１１００に格納されたデータ全体に対して半群演算をおこなった値を期待値として保持している。たとえば、方式Ａの場合の期待値は０ｘ０１〜０ｘ０Ｃの和である０ｘ４Ｅとなる。また、方式Ｂの場合の期待値は０ｘ０１〜０ｘ０Ｃの排他的論理和である０ｘ０Ｃとなる。周辺部では、主制御部２０１による検査値生成方法の数と同じ数の期待値を保持している。
【０１３８】
周辺部は、受信した認証データ付制御信号１０２０から個体検査値を取り出して、個体検査値に対して半群演算をおこなった値を期待値と照合する。個体検査値は半群演算を用いて生成されているので、分割したプログラムデータから生成した個体検査値の全てに対して同じ半群演算をおこなえば、プログラムデータ全体に対して半群演算をおこなった期待値と一致するはずである。個体検査値に対して半群演算をおこなった個体値と期待値とが一致すると、周辺部は主制御部２０１を認証する。
【０１３９】
なお、周辺部における半群演算処理は、分割したデータから生成した個体検査値を結合する処理に対応するため、「結合処理」と呼ぶ。また、認証が成立した際の結合処理に用いた個体検査値の数を「結合数」という。周辺部における結合数と主制御部２０１における分割数とは同じ数となる。
【０１４０】
図１０の説明に戻り、同期コード１００３ｂおよび動作コード１００３ｃは、主制御部２０１の動作順序を認証するためのデータである。このうち、同期コード１００３ｂは、任意の出力タイミングで出力されたパケット情報（間欠パケット情報）、または、連続した間隔で出力されたパケット情報（連続パケット情報）のいずれかを用いて生成されている。同期コード１００３ｂの生成に、いずれのパケット情報を用いるかは、分割数に基づいて決定される。以下にパケット情報の選択方法の具体例について説明する。
【０１４１】
（パケット情報の選択方法）
図１２は、主制御部におけるパケット情報の選択方法を模式的に示す説明図である。分割数に基づいてパケット情報を選択する方法としては、たとえば、図１２に示すような方法が挙げられる。
【０１４２】
＜選択例１：分割数／Ｘの余り値＞
選択例１では、分割数として決定された値を特定値Ｘで除算した際の余り値に基づいて、同期コード１００３ｂの生成に用いるパケット情報を選択する。たとえば、特定値Ｘ＝４、分割数＝７であれば、余り値＝３となり、図１２の選択例１では、間欠パケット情報を選択する。
【０１４３】
＜選択例２：前回の分割数−今回の分割数の絶対値＞
選択例２では、前回決定された分割数と今回決定された分割数の減算した際の絶対値に基づいて、同期コードの生成に用いるパケット情報を選択する。たとえば、前回の分割数＝３、今回の分割数＝４であれば、絶対値｜−１｜＝１となり図１２の選択例２では、間欠パケット情報を選択する。
【０１４４】
この他、たとえば、分割数が偶数の場合は同期コードの生成に用いるパケット情報の種類を変更し、分割数が奇数の場合は現在用いている種類のパケット情報を継続して用いる、などの方法がある。
【０１４５】
同期コード１００３ｂや動作コード１００３ｃは、そのままの値を送信してもよいし、暗号化処理をおこなって送信してもよい。暗号化処理の際、各コードとともに、同時に送信される制御コマンドデータ１００１や付随データ１００２に関するデータを含めて暗号化処理をおこなってもよい。制御コマンドデータ１００１や付随データ１００２に関するデータとは、制御コマンドデータ１００１や付随データ１００２そのものや、制御コマンドデータ１００１や付随データ１００２に対してハッシュ関数による演算やパリティチェック、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：ＣＲＣ）、チェックサムなどの演算をおこなって得られた値などである。
【０１４６】
一般に、不正な制御部は、正規の主制御部２０１と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。このため、制御コマンドデータ１００１や付随データ１００２を含めれば、不正な制御部によって同期コード１００３ｂや動作コード１００３ｃが再利用された場合であっても、同期コード１００３ｂや動作コード１００３ｃと制御コマンドの整合がとれず、不正を検知することができる。
【０１４７】
また、認証データ付制御信号１０２０を出力するタイミングは任意である。たとえば、所定時間ごとに認証データ付制御信号１０２０を出力してもよいし、常に認証データ付制御信号１０２０を出力してもよい。また、たとえば制御信号内の制御コマンドデータ１００１が特定の種類のコマンドである場合に、認証データ１００３を付加するようにしてもよい。
【０１４８】
さらに、制御コマンドデータ１００１、付随データ１００２、認証データ１００３の並び方は、図１０に示す順番に限らず、たとえば認証データ１００３を制御信号の先頭にしたり、制御コマンドデータ１００１と付随データ１００２との間に認証データ１００３を挿入してもよい。
【０１４９】
（制御信号の送受信処理）
つづいて、主制御部２０１と周辺部との間でおこなう制御信号の送受信処理について説明する。図１３は、主制御部２０１による制御信号の送信処理の手順を示すフローチャートである。本フローチャートでは、個体検査値（個体認証データ）を生成するごとに、データ量を決定する場合の処理について説明する。主制御部２０１は、制御コマンドの送信タイミングになるまで待機して（ステップＳ１３０１：Ｎｏ）、制御コマンドの送信タイミングになると（ステップＳ１３０１：Ｙｅｓ）、個体認証値の生成に用いるデータ量を決定する（ステップＳ１３０２）。つぎに、主制御部２０１は、ステップＳ１３０２で決定した量のプログラムデータを読み出し、読み出したデータに対して半群演算をおこなって個体検査値を算出し（ステップＳ１３０３）、個体検査値に対して暗号化処理をおこなって個体認証データを生成する（ステップＳ１３０４）。
【０１５０】
プログラムデータ格納部１１００内の全てのデータを用いて個体検査値を生成するまで（ステップＳ１３０５：Ｎｏ）、主制御部２０１は、ステップＳ１３０２に戻り、以降の処理を繰り返す。ここで、「プログラムデータ格納部１１００内の全てのデータを用いて」とは、プログラムデータ格納部１１００内のデータをもれなく、かつ重複なく用いて、という意味である。主制御部２０１は、たとえばプログラムデータ格納部１１００の先頭から順番にデータを読み出して個体検査値の生成に用いる。２つ目以降の個体検査値を生成する場合は、前の個体検査値の生成に用いたプログラムデータの次の領域に書き込まれたデータを、ステップＳ１３０２で決定した量だけ読み出して検査値を生成する。なお、最後の個体検査値を生成する際は、ステップＳ１３０２で決定したデータ量に足りない可能性があるが、主制御部２０１は、取得できる分のプログラムデータのみを用いて個体検査値を生成する。なお、個体検査値または個体認証データの生成は、制御コマンドの送信タイミングとなる前におこなっておいてもよい。
【０１５１】
プログラムデータ格納部１１００内の全てのデータを用いて個体検査値を生成すると（ステップＳ１３０５：Ｙｅｓ）、主制御部２０１は、ステップＳ１３０４で生成した個体認証データの個数、すなわち分割数に基づいて、同期コードの生成に用いるパケット情報の種類を決定する（ステップＳ１３０６）。具体的には、間欠パケット情報または連続パケット情報のいずれかを選択する。そして、決定したパケット情報を取得して、そのパケット情報を元にして同期コードを生成する（ステップＳ１３０７）。また、主制御部２０１は、動作順序に関する値を取得して、動作コードを生成する（ステップＳ１３０８）。なお、ステップＳ１３０６とステップＳ１３０７とを入れ替えて、間欠パケット情報および連続パケットの両方をそれぞれ用いて２つの同期コードを生成しておき、どちらの同期コードを利用するかを後から決定するようにしてもよい。
【０１５２】
つづいて、主制御部２０１は、個体認証データ、同期コードおよび動作コード（認証データ）を制御コマンドデータに付加して（ステップＳ１３０９）、周辺部に認証データ付制御信号を送信する（ステップＳ１３１０）。認証データ付制御信号は連続して送信してもよいし、通常の制御信号に混ぜて送信してもよい。また、認証データの送信順序も任意である。主制御部２０１は、全ての認証データを送信するまで（ステップＳ１３１１：Ｎｏ）、ステップＳ１３１０に戻り、認証データ付制御信号の送信を繰り返す。そして、全ての認証データを送信すると（ステップＳ１３１１：Ｙｅｓ）、本フローチャートによる処理を終了する。
【０１５３】
つぎに、周辺部による主制御部２０１の認証処理について説明する。図１４は、周辺部による主制御部の認証処理の手順を示すフローチャートである。図１４のフローチャートにおいて、周辺部は、まず、主制御部２０１から認証データ付制御信号を受信するまで待機する（ステップＳ１４０１：Ｎｏのループ）。主制御部２０１から認証データ付制御信号を受信すると（ステップＳ１４０１：Ｙｅｓ）、周辺部は、受信した認証データ付制御信号に含まれている個体認証データを用いて主制御部２０１の個体を認証する（ステップＳ１４０２）。周辺部による個体認証処理の詳細は、図１５を用いて詳細に説明する。
【０１５４】
主制御部２０１の個体に対する認証が成立すると（ステップＳ１４０３：Ｙｅｓ）、周辺部は、個体に対する認証が成立した際に処理の対象となった個体認証データの数、すなわち結合数に基づいて、同期コードの生成に用いられているパケット情報の種類を特定する（ステップＳ１４０４）。そして、周辺部は、同期コードおよび動作コードを用いて主制御部２０１の動作順序を認証する（ステップＳ１４０５）。なお、同期コードを用いた認証は、ステップＳ１４０４で特定したパケット情報に対応する方法でおこなう。
【０１５５】
同期コードを用いた認証および動作コードを用いた認証の両方が成立し（ステップＳ１４０６：Ｙｅｓ）、主制御部２０１の動作に対する認証が成立すると、周辺部は、受信した制御信号が正しい信号であるとして認証し（ステップＳ１４０７）、制御コマンドに基づく処理をおこなって（ステップＳ１４０８）、本フローチャートによる処理を終了する。一方、主制御部２０１の動作に対する認証が成立しなかった場合や（ステップＳ１４０６：Ｎｏ）、個体に対する認証が成立しなかった場合（ステップＳ１４０３：Ｎｏ）、周辺部は受信した制御信号を不正な制御信号として報知して（ステップＳ１４０９）、本フローチャートによる処理を終了する。
【０１５６】
つづいて、周辺部による個体認証処理（図１４のステップＳ１４０２）について説明する。図１５は、周辺部による個体認証処理の手順を示すフローチャートである。図１５のフローチャートにおいて、周辺部は、個体認証データ（個体認証データを含む制御信号）を受信するまで待機して（ステップＳ１５０１：Ｎｏのループ）、個体認証データを受信すると（ステップＳ１５０１：Ｙｅｓ）、個体認証データに復号化処理をおこなって個体検査値を取得する（ステップＳ１５０２）。
【０１５７】
周辺部は、取得した個体検査値を個体検査値用メモリに格納して（ステップＳ１５０３）、個体検査値用メモリ内の全ての個体検査値に対して半群演算（結合処理）をおこなう（ステップＳ１５０４）。個体検査値用メモリ内の検査値が１つの場合は、結合処理をおこなわずにそのままステップＳ１５０５に移行する。
【０１５８】
そして、周辺部は、演算結果（結合結果）と保持している期待値とを照合して、結合結果と期待値とが一致するか否かを判断する（ステップＳ１５０５）。結合結果と期待値とが一致する場合（ステップＳ１５０５：Ｙｅｓ）、周辺部は、主制御部２０１の個体に対する認証を成立させる（ステップＳ１５０６）。そして、個体検査値用メモリ内のデータを消去して（ステップＳ１５０７）、本フローチャートによる処理を終了する。
【０１５９】
一方、ステップＳ１５０５において、結合結果と期待値が一致しない場合（ステップＳ１５０５：Ｎｏ）、周辺部は、所定数以上の個体認証データを受信するまで（ステップＳ１５０８：Ｎｏ）、ステップＳ１５０１に戻り、個体認証データの受信および結合処理を繰り返す。所定数以上の個体認証データを受信すると（ステップＳ１５０８：Ｙｅｓ）、周辺部は、主制御部２０１に対する認証を不成立として（ステップＳ１５０９）、本フローチャートによる処理を終了する。所定数は任意の数であるが、たとえば、プログラムデータ格納部１１００に格納可能なデータの数（最大分割数）とすることができる。
【０１６０】
（パケット情報選択処理の具体例）
つづいて、図１３〜図１５に示す処理のうち、同期コードの生成に用いるパケット情報選択処理の具体例について説明する。図１６は、制御部間のデータの流れの一例を示すシーケンス図である。図１６においては、分割数に基づいたコードの選択例として、図１２に示した選択例１（ここでは、Ｘ＝３とする）によって利用するコードを選択するものとする。図１６では、説明の便宜上、個体検査値の生成に用いるデータ量を一括して決定するように示しているが、図１３のフローチャートのように、個体検査値を生成するごとにデータ量を決定してもよい。
【０１６１】
まず、主制御部２０１は、任意の方法で個体検査値の生成に用いるデータ量を決定する。たとえば、全データ量が１２バイトあり、個体検査値の生成に用いるデータ量を、それぞれ４バイト、３バイト、５バイトとすると、３つの個体検査値を生成することになり、分割数＝３となる（ステップＳ１６０１）。主制御部２０１は、プログラムデータ格納部１１００の先頭から順に４バイト、３バイト、５バイトのデータを読み出し、それぞれのデータを用いて３つの個体検査値を算出し、さらに所定の演算をおこなって個体認証データを生成する（ステップＳ１６０２）。
【０１６２】
つぎに、主制御部２０１は、分割数に基づいて、動作認証データとして用いるパケット情報を選択する（ステップＳ１６０３）。具体的には、分割数（この場合「３」）をＸの値（この場合「３」）で割り、その余りの値によってコードを決定する。この場合、３を３で割った余りは０であるため、主制御部２０１は間欠パケット情報を選択する。主制御部２０１は、間欠パケットを用いて同期コードを生成するとともに動作コードを生成する（ステップＳ１６０４）。そして、主制御部２０１は、個体認証データ、同期コードおよび動作コードを含む認証データ付制御信号を周辺部に送信する（ステップＳ１６０５）。
【０１６３】
つづいて、周辺部における処理について説明する。周辺部は、主制御部２０１から送信された認証データ付制御信号を受信する（ステップＳ１６０６）。そして、認証データ付制御信号から個体認証データを抽出し、復号化をおこなって個体検査値を取得し、取得した個体検査値に対して結合処理をおこない（ステップＳ１６０７）、結合結果を個体認証用期待値と照合する。結合結果が個体認証用期待値と一致すると、周辺部は主制御部２０１の個体に対する認証を成立させる（ステップＳ１６０８）。今回の場合は、３つの個体検査値を用いて結合処理をおこなった際に個体認証用期待値と一致するはずである（結合数＝３）。
【０１６４】
周辺部は、同期コードの生成に用いられているパケット情報の種類を結合数に基づいて判別する（ステップＳ１６０９）。具体的には、今回の場合は結合数である３をＸである３で割った余りは０であるため、間欠パケット情報であると判別し（図１２参照）、同期コードおよび動作コードを用いて主制御部２０１の動作順序を認証する（ステップＳ１６１０）。そして、周辺部は、主制御部２０１の個体に対する認証および動作に対する認証が成立したので、制御信号内の制御コマンドに基づく処理をおこなう（ステップＳ１６１１）。ここまでが一連の切り替え処理の流れである。
【０１６５】
２回目の処理の説明に移り、主制御部２０１は、再び任意の方法で個体検査値の生成に用いるデータ量を決定する。たとえば、個体検査値の生成に用いるデータ量を、それぞれ４バイト、３バイト、２バイト、３バイトとすると、４つの個体検査値を生成することになり、分割数＝４となる（ステップＳ１６１２）。主制御部２０１は、プログラムデータ格納部１１００の先頭から順に４バイト、３バイト、２バイト、３バイトのデータを読み出し、それぞれのデータを用いて４つの個体検査値を算出し、さらに演算をおこなって個体認証データを生成する（ステップＳ１６１３）。
【０１６６】
また、主制御部２０１は、分割数に基づいて、同期コードの生成に用いるパケット情報を選択する（ステップＳ１６１４）。具体的には、分割数（この場合「４」）をＸの値（この場合「３」）で割る。この余りの値は１であるため、主制御部２０１は連続パケット情報を選択する。主制御部２０１は、連続パケットを用いて同期コードを生成するとともに動作コードを生成する（ステップＳ１６１５）。そして、主制御部２０１は、個体認証データ、同期コードおよび動作コードを含む認証データ付制御信号を周辺部に送信する（ステップＳ１６１６）。
【０１６７】
つづいて、周辺部は、主制御部２０１から送信された認証データ付制御信号を受信し（ステップＳ１６１７）、個体認証データから個体検査値を取得して、取得した個体検査値に対して結合処理をおこなう（ステップＳ１６１８）。結合結果が個体認証用期待値と一致すると、周辺部は主制御部２０１の個体に対する認証を成立させる（ステップＳ１６１９）。今回の場合は、４つの個体検査値を用いて結合処理をおこなった際に期待値と一致するはずである（結合数＝４）。
【０１６８】
周辺部は、同期コードの生成に用いられているパケット情報を判別するため、結合数である４をＸである３で割る。この余りは１であるため、連続パケット情報であると判別し（ステップＳ１６２０）、同期コードおよび動作コードを用いて主制御部２０１の動作順序を認証する（ステップＳ１６２１）。そして、周辺部は、主制御部２０１の個体に対する認証および動作に対する認証が成立したので、制御信号内の制御コマンドに基づく処理をおこなう（ステップＳ１６２２）。以上が一連の流れとなる。
【０１６９】
なお、上述した実施の形態では、検査値の暗号化に際して単一の暗号化方法を用いたが、検査値の生成方式と同様に複数の暗号化方法を切り替えてもよい。これにより、不正解析者によって認証データが解析される可能性を低減することができる。
【０１７０】
以上説明したように、本実施の形態にかかるぱちんこ遊技機は、主制御基板３１０において、データ記憶部３１１内のデータの分割数に基づいて同期コードの生成に用いるパケット情報の種類を決定する。分割数は主制御基板３１０のみが知る値なので、不正解析者は、同期コードの生成に用いるパケット情報の種類を特定することができない。これにより、主制御基板３１０と周辺基板３２０との間に不正な制御基板が挿入された場合に、同期コードを照合することによって不正を検知することができる。
【０１７１】
また、本実施の形態にかかるぱちんこ遊技機の主制御基板３１０は、分割数そのものを決定するのではなく、認証値の生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
【０１７２】
また、本実施の形態にかかるぱちんこ遊技機の周辺基板３２０は、主制御基板３１０の個体と動作順序とがそれぞれ認証された場合にのみ、主制御基板３１０から送信された制御コマンドを認証する。主制御基板３１０の個体を認証することによって、主制御基板３１０が不正な制御基板に交換されたことを検知することができる。また、主制御基板３１０の動作順序を認証することによって、主制御基板３１０の動作の連続性を認証することができ、たとえば信号切替回路などを搭載した不正な制御基板を検知することができる。
【０１７３】
さらに、本実施の形態にかかるぱちんこ遊技機の周辺基板３２０は、同期コードおよび動作コードの２種類のコードを用いて主制御基板３１０の動作順序を認証する。２種類のコードを用いて二重に認証処理をおこなうことにより、認証の強度を向上させ、不正な制御コマンドによる不正な処理が実行されるのを防止することができる。
【０１７４】
なお、本実施の形態で説明した主制御部および周辺部の制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【０１７５】
以上のように、本発明は、制御部への不正が懸念される電子機器やその電子機器に搭載される制御基板に有用であり、特に、ぱちんこ遊技機、スロット遊技機、その他各種の遊技機に適している。
【符号の説明】
【０１７６】
３１０  主制御基板
３１１  データ記憶部
３１２  決定部
３１３  個体認証値生成部
３１４  同期コード生成部
３１５  動作コード生成部
３１６  暗号化部
３１７  送信部
３２０  周辺基板
３２１  受信部
３２２  復号化部
３２３  個体認証部
３２４  動作認証部
３２５  コマンド認証部
【図１】
2011030610.tif 000003
【図２】
2011030610.tif 000004
【図３】
2011030610.tif 000005
【図４】
2011030610.tif 000006
【図５】
2011030610.tif 000007
【図６】
2011030610.tif 000008
【図７】
2011030610.tif 000009
【図８】
2011030610.tif 000010
【図９】
2011030610.tif 000011
【図１０】
2011030610.tif 000012
【図１１】
2011030610.tif 000013
【図１２】
2011030610.tif 000014
【図１３】
2011030610.tif 000015
【図１４】
2011030610.tif 000016
【図１５】
2011030610.tif 000017
【図１６】
2011030610.tif 000018
【図１７】
2011030610.tif 000019
【図１８】
2011030610.tif 000020