(実施の形態)
以下に添付図面を参照して、この発明にかかる電子機器の機能を有したぱちんこ遊技機と、このぱちんこ遊技機に搭載されている複数の基板間(主制御基板および周辺基板)の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムの好適な実施の形態を詳細に説明する。
(ぱちんこ遊技機の基本構成)
図1は、本発明のぱちんこ遊技機の遊技盤の一例を示す正面図である。遊技盤101の下部位置に配置された発射部(図2参照)の駆動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。遊技領域103には、図示を省略する複数の釘が設けられ、遊技球を各種の方向に向けて落下させるとともに、落下途中の位置には、遊技球の落下方向を変化させる風車や、入賞口が配設されている。
遊技盤101の遊技領域103の中央部分には、図柄表示部104が配置されている。図柄表示部104としては、たとえば液晶表示器(LCD)が用いられる。なお、図柄表示部104としては、LCDに限らずCRTなどを用いることもできる。図柄表示部104の下方には、始動入賞させるための始動入賞口105が配設されている。図柄表示部104の左右には、それぞれ入賞ゲート106が配設されている。
入賞ゲート106は、遊技球の通過を検出し、始動入賞口105を一定時間だけ開放させる抽選をおこなうために設けられる。図柄表示部104の側部や下方などには普通入賞口107が配設されている。普通入賞口107に遊技球が入賞すると、普通入賞時の賞球数(たとえば10個)の払い出しをおこなう。遊技領域103の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口108が設けられている。
上述した図柄表示部104は、特定の入賞口に遊技球が入賞したとき(始動入賞時)に、複数の図柄の表示の変動を開始させ、所定時間後に図柄が停止する。この停止時に特定図柄(たとえば「777」)に揃ったとき、大当たり状態となる。大当たり状態のとき、下方に位置する大入賞口109が一定の期間開放を所定ラウンド(たとえば15ラウンド)繰り返し、入賞した遊技球に対応した賞球数を払い出す。
図2は、ぱちんこ遊技機の制御部の内部構成を示すブロック図である。制御部200は、複数の制御部により構成されている。図示の例では、主制御部201と、周辺部(演出制御部202、賞球制御部203)とを有する。主制御部201は、ぱちんこ遊技機の遊技にかかる基本動作を制御する。演出制御部202は、遊技中の演出動作を制御する。賞球制御部203は、払い出す賞球数を制御する。
主制御部201は、ROM212に記憶されたプログラムデータに基づき、遊技内容の進行に伴う基本処理を実行するCPU211と、CPU211の演算処理時におけるデータのワークエリアとして機能するRAM213、各検出部221〜224から各種データを受信するとともに、演出制御部202および賞球制御部203への各種データの送信をおこなうインタフェース(I/F)214などを備えて構成される。主制御部201は、たとえばいわゆる主制御基板によってその機能を実現する。
この主制御部201の入力側には、始動入賞口105に入賞した入賞球を検出する始動入賞口検出部221と、入賞ゲート106を通過した遊技球を検出するゲート検出部222と、普通入賞口107に入賞した遊技球を検出する普通入賞口検出部223と、大入賞口109に入賞した入賞球を検出する大入賞口検出部224とがI/F214を介して接続されている。これらの検出部としては、近接スイッチなどを用いて構成できる。
この主制御部201の出力側には、大入賞口開閉部231が接続され、この大入賞口開閉部231の開閉を制御する。大入賞口開閉部231は、大当たり時に大入賞口109を一定期間開放する機能であり、ソレノイドなどを用いて構成される。この大当たりは、生成した乱数(大当たり判定用乱数)に基づいて所定の確率(たとえば300分の1など)で発生するようあらかじめプログラムされている。
演出制御部202は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてROM242に記憶されたプログラムデータを実行して遊技中における演出制御をおこなう。この演出制御部202は、演出処理を実行するCPU241と、CPU241の演算処理時におけるデータのワークエリアとして機能するRAM243、図柄表示部104に表示させる画像データを書き込むVRAM244、主制御部201からの各種データの受信およびランプ制御部251や音声制御部252への各種データの送信をおこなうインタフェース(I/F)245などを備えて構成される。演出制御部202は、たとえばいわゆる演出基板によってその機能を実現する。また、演出制御部202の出力側には、上述した図柄表示部(LCD)104、ランプ制御部251、音声制御部252がI/F245を介して接続されている。ランプ制御部251はランプ261の点灯を制御する。また、音声制御部252はスピーカ262から出力される音声を制御する。
賞球制御部203は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてROM282に記憶されたプログラムデータを実行して賞球制御をおこなう。この賞球制御部203は、賞球制御の処理を実行するCPU281と、CPU281の演算処理時におけるデータのワークエリアとして機能するRAM283、主制御部201からの各種データの受信および発射部292との各種データの送受信をおこなうインタフェース(I/F)284などを備えて構成される。賞球制御部203は、たとえばいわゆる賞球基板によってその機能を実現する。
賞球制御部203は、接続される払出部291に対して入賞時の賞球数を払い出す制御をおこなう。また、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。払出部291は、遊技球の貯留部から所定数を払い出すためのモータなどからなる。賞球制御部203は、この払出部291に対して、各入賞口(始動入賞口105、普通入賞口107、大入賞口109)に入賞した遊技球に対応した賞球数を払い出す制御をおこなう。
発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサと、遊技球を発射させるソレノイドなどを備える。賞球制御部203は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイドなどを駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
上記構成の主制御部201と、演出制御部202と、賞球制御部203は、それぞれ異なるプリント基板(主制御基板、演出基板、賞球基板)に設けられる。これに限らず、たとえば、賞球制御部203は、主制御部201と同一のプリント基板上に設けることもできる。
(主制御基板および周辺基板の機能的構成)
図3は、主制御基板(主制御部)および周辺基板(演出制御部、賞球制御部)の機能的構成を示すブロック図である。まず、主制御部201としての機能を有する主制御基板310の機能的構成について説明する。図3に示すように、主制御基板310は、周辺基板330を動作させるための制御コマンドを送信する機能部であり、制御コマンド格納部311、データ記憶部312、補正データ生成部313、決定部314、認証データ生成部315、ダミー認証データ生成部316、ダミー補正データ生成部317、付加部318、送信部319によって構成される。
制御コマンド格納部311は、周辺基板330に送信する制御コマンドのデータ(制御コマンドデータ)を格納する。また、データ記憶部312は、主制御基板310に固有の値や所定の命令コードや固定データなどのプログラムデータを記憶する。主制御基板310に固有の値とは、たとえば主制御基板310が複数ある場合に、それぞれの主制御基板310を識別可能な値である。
主制御基板310は、たとえば、データ記憶部312に記憶された所定のプログラムデータにしたがって、制御コマンド格納部311から周辺基板330に送信する制御コマンドを選択して、周辺基板330に制御コマンドを送信する。データ記憶部312としては、たとえば、主制御部201のROM212(図2参照)の一部を用いることができる。なお、制御コマンド格納部311とデータ記憶部312とを別個に設けるのではなく、一体としてもよい。たとえば、データ記憶部312に制御コマンドデータとプログラムデータと主制御基板310に固有の値とを格納してもよい。
補正データ生成部313は、主制御基板310から送信されたデータの照合に用いる期待値を補正するための補正データを生成する。期待値とは、たとえば周辺基板330にあらかじめ(製造時など)保持されている値であり、周辺基板330において主制御基板310から送信されたデータの照合をおこなう際に用いる値である。また、期待値は、固定した値ではなく、たとえば基本値から演算により生成される値でもよい。また、周辺基板330は、1つの主制御基板310に対して、1つの期待値を保持してもよいし、認証データの生成に用いる全ての2項演算ごとに複数の期待値を保持してもよい。なお、主制御基板310が複数ある場合、それぞれの主制御基板310に対して期待値は異なることとする。このため、たとえば主制御基板310が他の主制御基板310に変更された場合、他の主制御基板310が正当な主制御基板310であっても、周辺基板330の期待値が補正されないと、周辺基板330においては照合がおこなえなくなってしまったり、正当な主制御基板310を不正な制御基板と判断してしまったりする。このような照合の不具合を防ぐために、主制御基板310は、周辺基板330に保持されている期待値を補正するための補正データを周辺基板330に送信する。
補正データ生成部313が補正データを生成するタイミングは、たとえば主制御基板310が他の主制御基板310に変更された場合である。この場合、補正データ生成部313は、周辺基板330に保持された変更前の主制御基板310に対応する期待値を、変更後の他の主制御基板310から送信されたデータの照合に用いる期待値に補正するための補正データを生成する。
また、補正データ生成部313が補正データを生成するタイミングは、たとえば周辺基板330に保持された期待値が1つのみであるときに、主制御基板310が認証データの生成に用いる演算方法を切り替えた場合である。この場合、補正データ生成部313は、主制御基板310が演算方法を切り替える前の主制御基板310に対応する期待値を、主制御基板310が演算方法を切り替えた後の主制御基板310に対応する期待値に補正するための補正データを生成する。
補正データ生成部313による補正データの生成方法としては、データ記憶部312によって記憶された固有の値やプログラムデータを用いて補正データを生成してもよい。具体的には、補正データ生成部313は、たとえば主制御基板310が他の主制御基板310に変更された場合、変更後の他の主制御基板310に設定されている固有の値と、データ記憶部312に記憶されている変更前の主制御基板310に設定されていた固有の値との差分を、補正データとして生成する。さらに、補正データ生成部313は、固有の値とともに、今回送信する制御コマンドを用いて補正データを生成してもよい。また、補正データ生成部313は、データ記憶部312に記憶されたプログラムデータを用いて補正データを生成してもよい。さらに、補正データ生成部313は、プログラムデータとともに、今回送信する制御コマンドを用いて補正データを生成してもよい。
決定部314は、主制御部201を認証するための認証データの生成に用いるデータの量(以下、「データ量」という)を決定する。決定部314は、たとえば、乱数生成回路や乱数生成プログラムによって生成された値をデータ量として決定したり、主制御基板310の他の処理において生成される値をデータ量として決定したりする。
認証データ生成部315は、主制御基板310を認証するための認証データを生成する。認証データ生成部315は、結合法則を満たす2種類以上の2項演算の中から所定の2項演算を選択し、データ記憶部312内のデータを、決定部314によって決定されたデータ量に分割し、分割したデータに対してそれぞれ所定の2項演算をおこなって、分割したデータの数(以下、「分割数」という)分の認証データを生成する。具体的には、認証データ生成部315は、データ記憶部312内に記憶されたプログラムデータや主制御基板310に固有の値を決定部314によって決定されたデータ量に分割し、分割数分の認証データを生成する。結合法則を満たす2項演算とは、たとえば加算または排他的論理和演算である。この場合、認証データ生成部315は、加算または排他的論理和演算のいずれかを選択し、分割されたデータのそれぞれに対して選択した演算をおこなって分割数分の認証データを生成する。
また、認証データ生成部315は、認証データを生成する際、データ記憶部312に記憶された全てのデータを、重複なく用いるようにする。具体的には、たとえば、決定部314によって決定された量のデータを、データ記憶部312内のアドレスの先頭から順番に読み出して、認証データを生成する。
認証データ生成部315は、たとえばデータ記憶部312によって記憶されたプログラムデータを用いて認証データを生成してもよい。さらに、認証データ生成部315は、プログラムデータとともに、今回送信する制御コマンドを用いて認証データを生成してもよい。また、認証データ生成部315は、後述する制御信号内の制御コマンドを用いて認証データを生成するようにしてもよい。この場合、認証データ生成部315は、データ記憶部312内のデータとともに制御コマンドを、決定部314によって決定されたデータ量に分割する。認証データは、認証者(周辺基板330)が、周辺基板330に保持されている期待値を用いて照合をおこなうことにより、主制御基板310を正規の主制御基板310であると認証するための情報である。
ここで、認証データ生成部315は、認証データを生成することにより知り得た分割数に基づいて、主制御基板310によって保持される全ての2項演算の中から次回の認証データの生成に用いる2項演算を選択する。具体的には、たとえば、分割数が奇数の場合は今回用いた演算と異なる演算に変更し、偶数の場合には今回と同じ演算を用いる。また、認証データ生成部315は、認証データを生成するにあたり予測し得た分割数に基づいて、次回の認証データの生成に用いる2項演算を選択してもよい。また、認証データ生成部315は、結合法則を満たす2項演算を1つのみ保持するものであってもよい。
ダミー認証データ生成部316は、認証データ生成部315の知り得た分割数に基づいて認証データのダミーデータ(以下、「ダミー認証データ」という)を生成する。ダミー認証データ生成部316は、たとえば、分割数と同数のダミー認証データを生成する。具体的には、たとえば、認証データ生成部315の知り得た分割数が2である場合、ダミー認証データ生成部316は、2つのダミー認証データを生成する。後述するように、この2つのダミー認証データは、たとえば認証データが送信された直後に周辺基板330に送信される。分割数は、主制御基板310のみが知る値である。そのため、第三者は、認証データとダミー認証データを区別することができず、第三者によって、認証データが不正に窃取されるのを防止することができる。
ダミー認証データは、認証データの送信タイミングを第三者によって解析されるのを防止するために送信されるデータである。ダミー認証データと認証データは、周辺基板330が識別できないように生成される。これにより、主制御基板310以外の者は、認証データとダミー認証データを区別することができなくすることができる。なお、ダミー認証データは、たとえば、主制御基板310と周辺基板330との間でおこなう認証処理とは異なる他の認証処理に用いる認証データであってもよい。
また、ダミー認証データの生成数は、主制御基板310と周辺基板330との間で適宜取り決めておけばよい。たとえば、ダミー認証データ生成部316は、ダミー認証データを送信するタイミングごとに分割数分のダミー認証データを生成してもよいし、認証データ生成部315が分割数を知り得たまたは予測し得たタイミングで1つのダミー認証データを生成してもよい。たとえば、ダミー認証データ生成部316は、分割数が奇数であるときに、ダミー認証データを生成するようにしてもよい。また、ダミー認証データ生成部316は、分割数に対して所定の演算をおこなった値の数だけダミー認証データを生成してもよいし、分割数によってダミー認証データの生成数の取り決めを切り替えてもよい。このとき、主制御基板310は、ダミー認証データの生成数を、たとえばROM212内の記憶領域に記憶してもよい。
また、ダミー認証データ生成部316は、認証データ生成部315と同様に、決定部314によって決定されたデータ量で、たとえば分割数と同数のダミー認証データを生成してもよい。これによって、主制御基板310は、ダミー認証データを生成するときの熱量などが正規な分割数分の認証データを生成して送信するのと同程度で、ダミー認証データを生成することができる。このため、正規の認証データの送信タイミングを第三者によって解析されるのを、さらに防止することができる。
ダミー補正データ生成部317は、補正データのダミーデータ(以下、「ダミー補正データ」という)を生成する。ダミー補正データは、補正データの送信タイミングを第三者によって解析されるのを防止するために送信されるデータである。また、ダミー補正データは、周辺基板330に保持されている期待値を補正したようにみせかける処理(ダミー補正処理)に用いられる情報であってもよい。さらに、ダミー補正データは、上述した期待値とは異なる他の値を補正するデータであってもよい。
付加部318は、周辺基板330に送信する制御コマンドに、補正データ生成部313によって生成された補正データまたはダミー補正データ生成部317によって生成されたダミー補正データを付加して制御信号を生成する。また、付加部318は、周辺基板330に送信する制御コマンドに、認証データ生成部315によって生成された認証データを付加して制御信号を生成する。また、付加部318は、補正データ、ダミー補正データまたは認証データを付加していない制御コマンドに、ダミー認証データ生成部316によって生成されたダミー認証データを付加して制御信号を生成する。
また、付加部318は、主制御基板310から周辺基板330に送信される順序が決定されている制御コマンドに、制御コマンドの送信順序にしたがって補正データ、ダミー補正データ、認証データまたはダミー認証データを付加してもよい。この場合、付加部318は、補正データ、ダミー補正データ、認証データまたはダミー認証データが所望の順序で送信されるように、これらのデータを制御コマンドに付加する。ここで、補正データ、ダミー補正データ、認証データまたはダミー認証データを付加する制御コマンドは、同様の種類の制御コマンドとしてもよいし、異なる種類の制御コマンドとしてもよい。
具体的には、付加部318は、たとえば、周辺基板330に送信する制御コマンドが大当たりコマンドである場合、この大当たりコマンドに補正データ、ダミー補正データ、認証データまたはダミー認証データを付加してもよい。また、付加部318は、たとえば、分割数分の認証データまたはダミー認証データを付加する制御コマンドが大当たりコマンドである場合、この大当たりコマンドよりも前に送信される大当たりリーチコマンドまたは大当たり開始コマンドに補正データまたはダミー補正データを付加してもよい。
また、付加部318は、認証データ生成部315によって生成された分割数分の認証データをそれぞれ別の制御コマンドに付加し終える前に、補正データまたはダミー補正データを所定の制御コマンドに付加する。具体的には、付加部318は、分割数分の認証データ中の最後に送信される認証データを付加する前に、補正データまたはダミー補正データを所定の制御コマンドに付加する。たとえば、付加部318は、補正データを周辺基板330に送信するタイミングで、所定の制御コマンドに補正データを付加するか、ダミー補正データを付加するかを選択して付加する。
より具体的には、付加部318は、たとえば認証データ生成部315の知り得た分割数を3とした場合、3番目に送信される認証データを付加する前に、補正データまたはダミー補正データの一方を選択して所定の制御コマンドに付加する。なお、たとえば電源投入後、最初に補正データを送信するタイミングである場合、付加部318は、補正データを所定の制御コマンドに付加するのがよい。これによって、周辺基板330は、認証処理をおこなう前に補正処理をおこなうことができる。
また、付加部318は、認証データを制御コマンドに付加した後、ダミー認証データを制御コマンドに付加する前に、補正データを所定の制御コマンドに付加してもよい。具体的には、付加部318は、たとえば分割数分の認証データを制御コマンドに付加し終えた後、分割数分のダミー認証データを制御コマンドに付加し始める前に、補正データを所定の制御コマンドに付加する。このとき、付加部318は、補正データに代えてダミー補正データを所定の制御コマンドに付加してもよい。さらに、付加部318は、ダミー認証データを制御コマンドに付加した後、次回の認証処理に用いられる認証データを付加する前に、補正データまたはダミー補正データを制御コマンドに付加してもよい。
また、付加部318は、認証データ生成部315によって生成された分割数分の認証データを付加した後に、ダミー認証データを所定の制御コマンドに付加する。このとき、付加部318は、分割数分のダミー認証データを所定の制御コマンドに付加してもよい。また、付加部318は、たとえば、分割数分の認証データを付加した直後に、分割数分のダミー認証データを付加してもよい。
また、ダミー認証データを付加するタイミングは、主制御基板310と周辺基板330との間で適宜取り決めておけばよい。たとえば、認証データ生成部315の知り得た分割数が2である場合、周辺基板330に送信する制御コマンドに対して2つおきにダミー認証データを付加するようにしてもよい。また、分割数によってダミー認証データを付加するタイミングの取り決めを切り替えるようにしてもよい。
また、付加部318は、周辺基板330に送信する制御コマンドごとに、分割数分の認証データのそれぞれを付加する。分割数分の認証データを付加する順序は任意である。付加部318は、認証データを生成した順序で認証データを制御コマンドに付加してもよいし、認証データを生成した順序と異なる順序で認証データを制御コマンドに付加してもよい。また、付加部318は、周辺基板330に送信する制御コマンドごとに、分割数分のダミー認証データのそれぞれを付加する。分割数分のダミー認証データを付加する順序は任意である。
なお、付加部318は、電源を投入されてから電源がオフされるまでの間に、複数回、制御コマンドに補正データまたはダミー補正データを付加してもよい。また、付加部318は、補正データを制御コマンドに付加した後、全ての制御コマンドに認証データまたはダミー認証データを付加してもよいし、いずれかの制御コマンドに認証データを付加してもよい。
送信部319は、付加部318によって補正データの付加された制御コマンド(以下、「補正データ付制御コマンド」という)、認証データの付加された制御コマンド(以下、「認証データ付制御コマンド」という)、ダミー認証データの付加された制御コマンド(以下、「ダミー認証データ付制御コマンド」という)またはダミー補正データの付加された制御コマンド(以下、「ダミー補正データ付制御コマンド」という)を周辺基板330に送信する。
また、送信部319は、分割数分の認証データ付制御コマンドを送信し終える前に補正データ付制御コマンドまたはダミー補正データ付制御コマンドを周辺基板330に送信する。また、送信部319は、たとえば今回送信するコマンドが大当たりコマンドである場合に、分割数分の認証データ付制御コマンド、分割数分のダミー認証データ付制御コマンド、または補正データ付制御コマンドもしくはダミー補正データ付制御コマンドを周辺基板330に送信してもよい。このとき、送信部319は、分割数分の認証データを送信した直後に、分割数分のダミー認証データを送信してもよい。
また、送信部319は、今回送信するコマンドが大当たりコマンドでない場合、補正データ、ダミー補正データもしくは認証データが付加されていない制御コマンド、またはダミー認証データ付制御コマンドを周辺基板330に送信してもよい。なお、送信部319は、今回送信するコマンドが大当たりコマンドであっても、補正データ、ダミー補正データまたは認証データが付加されていない場合、ダミー認証データ付制御コマンドを周辺基板330に送信してもよい。
このように、付加部318および送信部319は、周辺基板330において主制御基板310の認証処理がおこなわれる前までに、補正データを周辺基板330に送信することができる。このため、たとえば主制御基板310が他の主制御基板310に変更された場合に、期待値が補正される前に認証処理がおこなわれるのを防ぐことができる。
また、このように補正データを付加することによって、たとえば認証データ生成部315が主制御基板310によって保持された複数の2項演算の中から選択した2項演算を用いて認証データを生成する場合に、周辺基板330は、主制御基板310が演算方法を切り替える度に、期待値を補正することができる。これによって、周辺基板330における認証処理において、正当な主制御基板310が不当な主制御基板310であると認証されるのを防ぐことができる。
また、付加部318および送信部319は、分割数分の認証データを周辺基板330に送信し終える前に、補正データまたはダミー補正データを周辺基板330に送信することができる。これによって、主制御基板310は、補正データを送信するタイミングで、補正データまたはダミー補正データを選択して送信することができる。このため、補正データを送信するタイミングを第三者に知られることを防ぐことができる。
また、付加部318および送信部319は、分割数分の認証データを送信し終えた後、ダミー認証データを送信する前に、補正データを周辺基板330に送信することができる。これによって、主制御基板310がたとえば分割数分のダミー認証データを送信している間に、周辺基板330は次の認証処理に用いられる期待値を補正することができる。このため、周辺基板330において認証処理がおこなわれた後、次の認証処理がおこなわれる前までに、たとえば認証データの演算方法が切り替わることなどにより期待値を補正する必要が生じたとしても、周辺基板330は、次の認証処理がおこなわれる前までに補正処理をおこなうことができる。また、このとき、主制御基板310は、補正データに代えてダミー補正データを周辺基板330に送信してもよい。この場合、制御基板310がたとえば分割数分のダミー認証データを送信している間に、周辺基板330ではダミー補正処理がおこなわれる。このため、補正処理をおこなうタイミングを第三者に知られることを防ぐことができる。
また、付加部318および送信部319は、分割数分の認証データ付制御コマンドを周辺基板330に送信し終える前に、補正データを制御コマンドに付加して補正データ付制御コマンドを周辺基板330に送信する。このように補正データを送信することで、たとえば1つの認証データと次の認証データとの間に補正データを送信することができる。これによって、制御コマンドに付加されているのが補正データであるか認証データであるかを第三者は識別することができない。このため、補正データを送信するタイミングを第三者に知られることをさらに防ぐことができる。
また、付加部318および送信部319は、分割数分の認証データ付制御コマンドを周辺基板330に送信する。分割数は主制御基板310のみが知る値であるため、第三者は周辺基板330に送信される認証データの数を知ることができない。これによって、分割数分の認証データを結合して算出された値(主制御基板310に対する認証を成立させるための値)が第三者に知られることを防ぐことができる。したがって、補正データや主制御基板310に対する認証を成立させるための値が窃取されることを防ぐことができるため、認証の強度を向上させることができる。
また、付加部318および送信部319は、分割数分のダミー認証データ付制御コマンドを周辺基板330に送信する。これによって、たとえば、周辺基板330は、分割数分のダミー認証データを受信した場合、認証データと同じ数のダミー認証データを用いて、認証データを受信した場合と同様の処理をおこなうことができる。これによって、周辺基板330は、周辺基板330における処理時間または処理によって発生する熱量などが正規な認証データを受信し認証処理をおこなうのと同様となるように、ダミー認証データを用いて主制御基板310を仮に認証する処理(ダミー認証処理)をおこなうことができる。
また、付加部318および送信部319は、分割数分の認証データ付制御コマンドを周辺基板330に送信した直後に、分割数分のダミー認証データ付制御コマンドを周辺基板330に送信する。これによって、周辺基板330は、認証データの直後に受信した結合数分のデータがダミー認証データであるとして識別することができる。このため、周辺部の処理負荷を増大させることなく認証データとダミー認証データとを識別して、認証処理またはダミー認証処理をおこなうことができる。
また、付加部318および送信部319によって同様の種類の制御コマンドに補正データ、認証データまたはダミー認証データを付加することで、同様の種類の制御コマンドを送信するときにのみ、補正処理、認証処理またはダミー認証処理をおこなうことができる。このため、全ての制御コマンドを送信するときに補正処理、認証処理またはダミー認証処理をおこなうのと比べると、これらの処理による主制御基板310や周辺基板330の処理負荷を減らすことができる。たとえば、主制御基板310が周辺基板330に送信する大当たりコマンドに補正データ、認証データまたはダミー認証データを付加する場合、大当たりコマンドは大当たり中の各ラウンドごとに送信されるため、大当たり状態にある一定期間中に補正処理、認証処理およびダミー認証処理をおこなうことができる。たとえば、周辺基板330は、認証処理をおこなう前に、補正処理をおこなうことができる。そして、周辺基板330は、認証処理をおこなった直後に、ダミー認証処理をおこなうことができる。このため、補正処理と認証処理との時間的な間隔が短くなり、認証処理の強度を向上させることができる。このとき、付加部318および送信部319は、補正データに代えてダミー補正データを制御コマンドに付加して送信してもよい。
また、付加部318および送信部319によって同様の種類の制御コマンドに補正データまたはダミー補正データを付加することで、補正処理またはダミー補正処理をおこなうことができる。このため、全ての制御コマンドを送信するときに補正処理またはダミー補正処理をおこなうのと比べると、これらの処理による主制御部や周辺部の処理負荷を減らすことができる。
また、付加部318および送信部319によって同様の種類の制御コマンドに補正データまたはダミー補正データを付加することで、補正データを付加した制御コマンドの種類を第三者に知られたとしても、補正データを送信するタイミングを第三者に知られることを防ぐことができる。このため、補正データが第三者によって窃取されることを防ぐことができる。
また、付加部318および送信部319によって同様の種類の制御コマンドに認証データまたはダミー認証データを付加することで、認証データを付加した制御コマンドの種類を第三者に知られたとしても、認証データを送信するタイミングを第三者に知られることを防ぐことができる。このため、認証データが第三者によって窃取されることを防ぐことができる。
また、付加部318および送信部319によって、認証データを付加する制御コマンドとは異なる種類の制御コマンドに補正データを付加して送信することで、主制御基板310は、制御コマンドの送信順序にしたがって、補正データまたは認証データが所望の順序で送信されるように、補正データまたは認証データを付加することができる。この場合、主制御基板310は、たとえば、主制御基板310から周辺基板330に送信される順序が決定されている制御コマンドに、補正データまたは認証データを付加する。これにより、主制御基板310は、主制御部の処理負荷を増大させることなく任意のタイミングで、補正データまたは認証データを送信することができる。また、主制御基板310は、たとえば分割数分の認証データ中の最後に送信される認証データが送信される前に補正データを送信することができる。より具体的には、たとえば、主制御基板310は、認証データを大当たりコマンドに付加し、この大当たりコマンドよりも前に送信される大当たりリーチコマンドまたは大当たり開始コマンドに補正データを付加する場合、認証処理がおこなわれる前に補正処理をおこなうことができる。
また、付加部318および送信部319によって、補正データと、ダミー補正データと、認証データまたはダミー認証データとをそれぞれ異なる種類の制御コマンドに付加して送信することで、周辺基板330は、制御コマンドの種類によって、補正データと、ダミー補正データと、認証データまたはダミー認証データとを識別することができる。ここで、周辺基板330は、分割数に基づき認証データとダミー認証データとを識別する。これによって、周辺基板330は、周辺基板330の処理負荷を増大させることなく、補正データ、ダミー補正データ、認証データまたはダミー認証データを識別して、補正処理、ダミー補正処理、認証処理またはダミー認証処理をおこなうことができる。これによって、設定の難易度を低くすることができ、設定にかかる時間を短縮することができる。このとき、主制御基板310は、認証データを付加する制御コマンドとは異なる種類の制御コマンドに、ダミー認証データを付加してもよい。
また、主制御基板310から周辺基板330に期待値の補正データを送信するため、主制御基板310が変更された際に、周辺基板330を変更したり周辺基板330に保持されている期待値の設定を変更しなくても、変更後の主制御基板310に対応した期待値に簡単に補正することができる。また、送信部319は、期待値をそのままを送信せず、補正値のみを送信する。したがって、たとえば第三者によって送信したデータが窃取されても、期待値が解読されないため、認証処理の強度を向上させることができる。
また、付加部318は、所定の種類の制御コマンドに補正データ、ダミー補正データ、認証データまたはダミー認証データを付加する場合、たとえば主制御基板310に大当たりコマンドを送信する際にのみ、制御信号に補正データ、ダミー補正データ、認証データまたはダミー認証データを付加する。このため、たとえば補正データやダミー補正データ、認証データ、ダミー認証データを付加しない制御信号のみを送信するような従来の主制御基板を、これらのデータを付加した制御信号を送信するような本実施の形態にかかる主制御基板310に変更する場合、全ての制御コマンドの送信処理に補正データ、ダミー補正データ、認証データまたはダミー認証データの付加処理を追加する手間を省くことができる。このように、単一の制御コマンドの送信処理のみに付加処理を追加すればよいため、処理を追加するための設定の難易度が容易であり、設定にかかる時間を短縮することができる。
つぎに、演出制御部202や賞球制御部203などの周辺部としての機能を有する周辺基板330の機能的構成について説明する。図3に示すように、演出制御部202、賞球制御部203などの周辺基板330は、受信部331、補正部332、演算値記憶部333、認証部334、報知信号出力部335によって構成される。
受信部331は、主制御基板310によって送信された補正データ付制御コマンド、ダミー補正データ付制御コマンド、認証データ付制御コマンドまたはダミー認証データ付制御コマンドを含む制御信号を受信する。受信部331は、あらかじめ定められた順序によって、受信した制御信号が、補正データ付制御コマンド、ダミー補正データ付制御コマンド、認証データ付制御コマンドまたはダミー認証データ付制御コマンドのいずれかのコマンドを含んだ制御信号であるかを判断してもよい。この場合、受信部331は、受信したデータが認証データであるかダミー認証データであるかは識別しなくてもよい。
演算値記憶部333は、受信部331によって受信された認証データ付制御コマンドから認証データを抽出し、この認証データに対して2項演算をおこなって検査値を取得する。そして、演算値記憶部333は、取得した検査値と演算値記憶部333内にすでに記憶されている検査値とを結合し、結合された検査値を記憶する。このとき、演算値記憶部333は、認証データ付制御コマンドから抽出した認証データが、主制御基板310に対する認証を成立させるために必要な分割数分の認証データのうち、最初に抽出された認証データである場合、この認証データから取得した検査値に対して結合処理をおこなわずに検査値を記憶する。演算値記憶部333によって選択される演算方法は、主制御基板310が認証データを生成するために用いた2項演算と一致するようにする。認証データから取得した検査値を結合し、主制御基板310に対する認証を成立させるための値を生成する方法については、後述する。
また、演算値記憶部333は、受信部331によって受信されたダミー認証データ付制御コマンドからダミー認証データを抽出し、このダミー認証データに対して演算をおこなって仮の検査値を取得してもよい。このときの演算方法は、認証データに対しておこなう2項演算と同じ演算方法を用いてもよいし、異なる演算方法を用いてもよい。演算値記憶部333は、ダミー認証データに対して演算をおこなって取得した仮の検査値を、他の(別種類の)認証処理に用いてもよい。他の認証処理とは、たとえば期待値の補正処理が必要のない認証処理である。また、ダミー認証データに対して演算をおこなって取得した仮の検査値は、ダミー認証処理をおこなうための情報であってもよい。この場合、受信部331によってダミー認証データ付制御コマンドが受信されたとしても、演算値記憶部333は、受信部331によって認証データ付制御コマンドが受信されたときと同様の処理をおこなうことができる。
また、演算値記憶部333は、主制御基板310に対する認証が成立したとき、演算値記憶部333内に記憶した検査値を削除する。つまり、演算値記憶部333は、主制御基板310に対する認証が成立するまで、認証データから抽出した検査値に対して結合処理をおこない、結合された検査値を記憶する。また、演算値記憶部333は、ダミー認証データに対して演算をおこなって取得した仮の検査値を演算値記憶部333内に記憶した場合、この仮の検査値を、主制御基板310に対する認証が成立したときに削除してもよい。また、演算値記憶部333は、仮の検査値を他の認証処理に用いた場合、他の認証が成立したときに削除してもよい。
また、演算値記憶部333は、たとえば抽出した認証データに対して2種類以上の2項演算をおこなう場合、2項演算ごとに検査値を記憶してもよい。この場合、演算値記憶部333は、周辺基板330が主制御基板310によって選択された2項演算を知らなくても、主制御基板310に対する認証を成立させる値を生成することができる。たとえば、電源を投入後、主制御基板310に対する認証がまだ1回も成立していない場合でも、周辺基板330は、主制御基板310に対する認証を成立させるための値を生成することができ、主制御基板310を認証することができる。
補正部332は、受信部331によって補正データ付制御コマンドを受信した場合、この補正データ付制御コマンドを用いて周辺基板330に保持されている期待値を補正する。補正部332は、受信した補正データが暗号化されている場合、この補正データを復元した値を用いて期待値を補正する。また、補正部332は、主制御基板310が保持する全ての2項演算ごとに複数の期待値を周辺基板330が保持する場合、複数の期待値を全て補正してもよい。この場合、補正部332は、複数の期待値のそれぞれに対応する複数の補正データを受信してもよい。また、補正部332は、受信した補正データが複数の期待値中の1つの期待値に対する補正データであるとき、複数の期待値のうちの少なくとも1つの期待値を、主制御基板310に対する認証を成立させる値と一致する値となるように補正してもよい。
また、補正部332は、周辺基板330が保持する複数の期待値のうち、補正をおこなう期待値を識別することができる場合は、主制御基板310の照合に用いる期待値のみを補正してもよい。補正をおこなう期待値を識別することができる場合とは、たとえば、周辺基板330が、主制御基板310に対する認証が成立した際に認証データの数(結合数)を知ることによって、主制御基板310によって保持される全ての2項演算の中から次回の認証処理に用いられる2項演算を知り得る場合である。
また、補正部332は、受信部331によってダミー補正データ付制御コマンドが受信された場合、実際には周辺基板330が保持している期待値を変更せずに、補正処理をおこなったときと同様の処理をおこなう。これによって、周辺基板330において補正データを用いて補正処理をおこなうタイミングを第三者に知られることを防ぐことができる。
また、期待値の補正タイミングは、たとえば主制御基板310が分割数を知り得たまたは予測し得たことにより、分割数が決定されたときである。この場合、主制御基板310は、補正をおこなう期待値に応じて補正データを生成し、この補正データを周辺基板330に送信する。補正部332は、主制御基板310から送信された補正データを用いて期待値を補正する。これによって、補正部332は、周辺基板330が2項演算を切り替えた後、認証処理をおこなう前に補正処理をおこなうことができる。
補正部332は、たとえば、制御コマンドに補正データが付加されているか否かを判断し、制御コマンドに補正データが付加されている場合、補正データを用いて周辺基板330の期待値を補正する。また、補正部332は、所定の種類の制御コマンドに補正データが付加されている場合、制御コマンドが所定の制御コマンドであるか否かを判断し、制御コマンドが所定の制御コマンドである場合に、補正データを用いて周辺基板330の期待値を補正することとしてもよい。
認証部334は、受信部331によって認証データ付制御コマンドを受信した場合、この認証データ付制御コマンドを用いて算出された値が、補正部332によって補正された期待値と一致するか否かに基づいて主制御基板310を認証する。認証部334は、たとえば、制御コマンドに認証データが付加されているか否かを判断し、主制御基板310から送信された制御コマンドに認証データが付加されている場合、認証データ付制御コマンドを用いて算出された値と、所定の期待値と、が一致するか否かに基づいて主制御基板310を認証する。
ここで、所定の期待値とは、たとえば、データ記憶部312内の全てのデータに対して上述した2項演算をおこなった値である。認証部334がおこなう2項演算と、主制御基板310の認証データ生成部315がおこなう2項演算は、同じ種類の2項演算である。この2項演算は結合法則を満たすため、データ記憶部312内の全てのデータから生成された期待値と、分割したデータから生成された認証データに対して同じ演算をおこなった値とは一致する。これにより、認証部334は、主制御基板310の正当性を認証することができる。
具体的には、認証部334は、演算値記憶部333に記憶された検査値と、補正部332によって補正された期待値と、が一致するか否かに基づいて主制御基板310を認証する。期待値は、データ記憶部312内の所定のデータに対して2項演算をおこない算出された値である。また、演算値記憶部333に記憶された検査値は、データ記憶部312内の所定のデータを決定部314によって決定されたデータ量に分割して生成された認証データに対して2項演算をおこない算出された値を結合した値である。2項演算は結合法則を満たすため、演算値記憶部333に記憶された検査値と期待値とは一致する。これにより、認証部334は、主制御基板310の正当性を認証する。
また、認証部334は、受信部331によってダミー認証データ付制御コマンドを受信した場合、主制御基板310を仮に認証する(ダミー認証処理)。具体的には、たとえば、認証部334は、受信部331によってダミー認証データ付制御コマンドを受信した場合、演算値記憶部333に記憶された仮の検査値と、期待値とが一致しなくても、主制御基板310を認証する。また、認証部334は、演算値記憶部333に記憶された仮の検査値と、期待値とが一致するか否かの処理を省略して、主制御基板310を認証してもよい。このようにすることで、周辺基板330は、受信部331がダミー認証データを受信したときでも、認証データを受信した場合と処理時間または処理の際に生じる熱量などが同様となる。このため、周辺基板330において正規な認証データを受信したタイミングを第三者に知られることを防ぐことができる。これによって、より認証の強度を上げることができる。
また、認証部334は、演算値記憶部333に記憶され、主制御基板310に保持される全ての2項演算ごとに生成された検査値のいずれか一つと、補正部332によって補正された期待値と、が一致するか否かに基づいて主制御基板310を認証してもよい。これにより、周辺基板330は、認証を成立させるために必要な認証データの数または認証データの生成に用いる演算方法を知らなくても、分割数分の認証データを結合し、主制御基板310の認証処理をおこなうことができる。また、主制御基板310に対する認証を成立させるための値を生成するための認証データの数を知り得る者を限定することができ、認証の強度を向上させることができる。
また、演算値記憶部333および認証部334は、主制御基板310に対する認証が成立した際に2項演算の対象となった認証データの数(以下、「結合数」という)に基づいて認証データとダミー認証データとを識別する。たとえば、認証が成立した際に2項演算の対象となった数分の認証データを受信した後、結合数のデータをダミー認証データとして識別する。具体的には、たとえば、認証が成立した際に2項演算の対象となった認証データの直後に受信したデータのうち、認証成立時の2項演算の対象となった認証データの数分のデータをダミー認証データとして識別する。より詳細には、認証が成立した際に2項演算の対象となった認証データの数が2である場合、その2つの認証データを受信した直後に受信したデータのうち2つをダミー認証データとして識別する。
主制御基板310に対する認証が成立した際に2項演算の対象となった認証データの数(結合数)は、分割数と一致するため、演算値記憶部333および認証部334は、どのデータがダミー認証データであるかを識別することができる。よって、周辺基板330は、認証データとダミー認証データとが混在する場合であっても、認証データを識別して正規の主制御基板310に対する認証処理をおこなうことができる。
ここで、分割数は主制御基板310のみが知る値なので、第三者は、主制御基板310の認証が成立するタイミングを知ることができない。また、周辺基板330は、主制御基板310に対する認証が成立した際に2項演算の対象となった認証データの数(結合数)に基づいて、認証データとダミー認証データとを識別する。このため、結合数は、周辺基板330のみが知る値となる。したがって、第三者は、分割数および結合数を知ることができないので、認証データとダミー認証データとを識別することができない。このため、第三者によって分割数分の認証データが窃取され、分割数分の認証データが結合されることによって、主制御基板310に対する認証を成立させるための値が不正に窃取される可能性を低減することができ、主制御基板310と周辺基板330との間の認証処理の強度を向上させることができる。
また、周辺基板330において、正規の認証データを受信した際の処理量とダミー認証データを受信した際の処理量が異なると、どのタイミングで認証データを送信しているか
を第三者に知られてしまう可能性がある。このため、たとえば、ダミー認証データを用いてダミー認証処理をおこなうようにして、周辺基板330における処理量が変動しないようにしてもよい。
報知信号出力部335は、認証部334によって主制御基板310が認証されなかった場合、報知信号を出力する。周辺基板330が演出制御部202の場合、報知信号出力部335は、たとえば、図柄表示部104やランプ制御部251、音声制御部252(図2参照)などに報知信号を出力する。また、報知信号出力部335は、ぱちんこ遊技機を管理するセンター制御装置などに報知信号を出力することとしてもよい。
報知信号出力部335によって出力された報知信号に基づいて、図柄表示部104やランプ制御部251、音声制御部252は、主制御基板310に不正がおこなわれた可能性がある旨を報知する演出を実行する。この演出は、たとえば、図柄表示部104に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させるなどである。また、図柄表示部104の輝度を変えたり、色を変えたり、ランプ制御部251に対して所定のランプ261を表示制御するようにしてもよい。いずれにせよ、当該ぱちんこ遊技機の前を通過した際に、従業員がその状態に気がつくようにしてあればよい。また、この演出は、顧客がその状態に気がつかないような演出でもよく、また、顧客が容易に気がつく演出であってもよい。顧客が容易に気がつく演出にすれば、不正行為を効率的に抑止することができる。
また、報知信号に「大当たり中」や「確率変動中」などのぱちんこ遊技機の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、ぱちんこ遊技機を管理するセンター制御装置などによって不正行為がおこなわれているか否かの判断をおこなってもよい。たとえば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるかについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
なお、図3において、期待値は、他の構成部から周辺基板330に送信されることとしてもよい。他の構成部とは、たとえば、他の周辺部や期待値を生成するための専用の処理部(以下、「期待値算出部」という)などである。主制御部や期待値算出部は、あらかじめ記憶されている期待値を周辺基板330に送信してもよいし、照合処理ごとに期待値を生成してもよい。また、外部接続用I/F(図示なし)を介して、外部の機器から周辺基板330や期待値算出部に期待値を算出するために必要な係数などを送信してもよい。このように、周辺基板330に、あらかじめ期待値を記憶させずに、他の構成部から取得する場合、補正部332は、受信部331によって受信された補正データから補正値を取得し、認証部334は、取得された期待値および補正値を用いて算出された値が、受信部331によって受信された認証データ付制御コマンドを用いて算出された値と一致するか否かを判断してもよい。
また、周辺基板330は、補正後の期待値(最終期待値)そのものを固定値として保持しなくてもよい。この場合、たとえば製造時から、補正データによる補正処理をおこなわないと、認証データを受信した場合は認証が不成立となるように設計する。このようにすることで、最終期待値を知り得る者を限定することができ、期待値に関する情報の流出などのリスクを低減することができる。
付加部318は、補正値を分散させて付加してもよい。たとえば16ビットの補正値の場合、上位8ビットと、下位8ビットとを、2回に分けて付加してもよい。なお、分割するビット数は任意であり、さらに、ビット位置はランダムでもよい。すなわち、16ビットの補正値を、ビット位置に関わらず、たとえば2ビットと、5ビットと、9ビットと、の3回に分けて付加してもよい。この場合、所定の制御コマンドから補正値を分散させた数の制御コマンドに順次補正値を付加すればよい。また、受信部331は、所定の制御コマンドから補正値を分散させた回数の制御コマンドが補正データ付制御コマンドであると判断してもよい。補正値の分散の回数は、主制御基板310および周辺基板330にあらかじめ設定されていてもよい。
また、補正データ生成部313や認証データ生成部315は、補正データや認証データに、複数回の暗号化処理をおこなってもよい。また、補正データ生成部313や認証データ生成部315は、2種類以上の暗号化方法のいずれかを選んで暗号化処理をおこなってもよい。この場合、周辺基板330においては、2種類以上の復号化方法によって復号化して誤り検査値を取得し、認証部334によって、取得されたいずれかの誤り検査値が期待値と一致した場合に、主制御基板310を認証してもよい。
また、認証データ生成部315は、認証データを生成することにより知り得た分割数に基づいて認証データの暗号化方法を変更してもよい。具体的には、たとえば、分割数が奇数の場合は今回用いた暗号化方法と異なる暗号化方法に変更し、偶数の場合には今回用いた暗号化方法と同じ暗号化方法で暗号化する。認証部334は、認証データ生成部315における暗号化方法が分割数に基づいて変更される場合、主制御基板310に対する認証が成立した際に認証部334による演算の対象となった認証データの数に基づいて復号化方法を変更してもよい。
(ぱちんこ遊技機の基本動作)
上記構成によるぱちんこ遊技機の基本動作の一例を説明する。主制御部201は、各入賞口に対する遊技球の入賞状況を制御コマンドとして賞球制御部203に出力する。賞球制御部203は、主制御部201から出力された制御コマンドに応じて、入賞状況に対応した賞球数の払い出しをおこなう。
また、主制御部201は、始動入賞口105に遊技球が入賞するごとに、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、図柄表示部104の図柄を変動表示させ、停止させることを繰り返す。大当たりの発生が決定しているときには、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、所定の図柄で揃えて停止させる。このとき同時に、大入賞口109を開放する制御をおこなう。演出制御部202は、大当たり発生期間中、および大当たり発生までの間のリーチ時や、リーチ予告時などには、図柄表示部104に対して、図柄の変動表示に加えて各種の演出表示をおこなう。このほか、各種役物に対して特定の駆動をおこなったり、ランプ261の表示状態を変更するなどの演出をおこなう。
そして、大当たり発生時には、大入賞口109が複数回開放される。1回の開放が1ラウンドとして、たとえば15回のラウンドが繰り返し実行される。1ラウンドの期間は、遊技球がたとえば10個入賞したとき、あるいは所定期間(たとえば30秒)とされている。この際、賞球制御部203は、大入賞口109に対する遊技球1個の入賞あたり、たとえば15個の賞球数で払い出しをおこなう。大当たり終了後は、この大当たり状態が解除され、通常の遊技状態に復帰する。
(各制御部による処理の詳細)
つぎに、各制御部がおこなう各種処理の詳細について説明する。はじめに、主制御部201による演出制御部202の制御処理について説明する。図4および図5は、主制御部による演出制御部の制御処理の手順を示すフローチャートである。なお、図4〜9においては、演出制御部202の制御処理の手順を明確にするため、補正データ、認証データ、ダミー認証データおよび付随データについては考慮しないものとする。すなわち、図4〜図9の説明において、「コマンドを送信する」とは、「当該コマンドを示すデータ(制御コマンドデータ)を含む制御信号を送信する」との意味であり、たとえば補正データや認証データ、ダミー認証データ、付随データ(図10参照)の有無は考慮しないものとする。
図4および図5のフローチャートにおいて、主制御部201は、まず、ぱちんこ遊技機の電源がオンにされるまで待機する(ステップS401:Noのループ)。ぱちんこ遊技機の電源がオンにされると(ステップS401:Yes)、主制御部201は、演出制御部202や賞球制御部203などの周辺部に対して電源オンコマンドを送信する(ステップS402)。電源オンコマンドが送信されると、演出制御部202は、ランプ制御部251や音声制御部252、図柄表示部104、それぞれに対して電源オン時の演出用の制御コマンド(具体的には、ランプの点灯や音声の出力、デモ画面の表示などを指示する制御コマンド)を送信する。
つぎに、主制御部201は、ROM212またはRAM213に記憶されている未抽選入賞回数データを参照して、未抽選入賞回数が0回か否かを判断する(ステップS403)。未抽選入賞回数とは、始動入賞口105に検出された入賞球の数(入賞回数)から、入賞球に対応する抽選がおこなわれた回数(既抽選回数)を減じた数である。未抽選入賞回数が0回の場合(ステップS403:Yes)、主制御部201は、デモが開始されてから経過した時間を計測する(ステップS404)。
デモが開始されてから所定時間が経過すると(ステップS405:Yes)、主制御部201は、演出制御部202に客待ちデモコマンドを送信して(ステップS406)、ステップS407に移行する。デモが開始されてから所定時間が経過しない場合は(ステップS405:No)、そのままステップS407に移行する。ステップS406で客待ちデモコマンドが送信されると、演出制御部202は、ランプ制御部251や音声制御部252、図柄表示部104に対して客待ちデモ用の制御信号を送信する。また、ステップS403で、未抽選入賞回数が0回ではない場合は(ステップS403:No)、ステップS410に移行する。
つぎに、主制御部201は、始動入賞口検出部221によって始動入賞口105への入賞球が検出されたか否か判断する(ステップS407)。始動入賞口105への入賞球が検出されると(ステップS407:Yes)、主制御部201は、デモが開始されてから計測していた時間をクリアして(ステップS408)、未抽選入賞回数に1を加える(ステップS409)。つづいて、主制御部201は、大当たり判定用乱数を取得して(ステップS410)、未抽選入賞回数から1を減算し(ステップS411)、図5のステップS412に移行する。また、ステップS407で、始動入賞口105への入賞球が検出されない場合は(ステップS407:No)、ステップS404に戻り、以降の処理を継続する。
つぎに、主制御部201は、ステップS410で取得した大当たり判定用乱数が、あらかじめ定められた大当たり乱数であるか否かを判断する(ステップS412)。大当たり判定用乱数が大当たり乱数である場合(ステップS412:Yes)、主制御部201は、演出制御部202に大当たりリーチコマンド(図柄変動コマンド)を送信する(ステップS413)。主制御部201は、図柄変動時間が経過するまで待機して(ステップS414:Noのループ)、図柄変動時間が経過すると(ステップS414:Yes)、演出制御部202に図柄停止コマンドを送信する(ステップS415)。
つぎに、主制御部201は、演出制御部202に大当たり開始コマンドを送信し(ステップS416)、つづけて、大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を順次送信する(ステップS417)。そして、主制御部201は、全てのラウンドの大当たりコマンドの送信が終わると、大当たり終了コマンドを送信して(ステップS418)、ステップS422に移行する。
一方、ステップS412で、大当たり判定用乱数が大当たり乱数でなかった場合(ステップS412:No)、主制御部201は、演出制御部202にはずれリーチコマンド(図柄変動コマンド)を送信する(ステップS419)。主制御部201は、図柄変動時間が経過するまで待機して(ステップS420:Noのループ)、図柄変動時間が経過すると(ステップS420:Yes)、演出制御部202に図柄停止コマンドを送信する(ステップS421)。
主制御部201は、ぱちんこ遊技機の電源がオフにされるまでは(ステップS422:No)、図4のステップS403に戻り、以降の処理を繰り返す。そして、ぱちんこ遊技機の電源がオフにされると(ステップS422:Yes)、主制御部201は、演出制御部202に終了処理コマンドを送信して(ステップS423)、本フローチャートによる処理を終了する。
図6は、大当たり関連コマンド(大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド)の送信タイミングを示すタイムチャートである。大当たりリーチコマンドは、実際に大当たりが発生するよりも頻繁に、かつランダムに送信される。また、大当たり開始コマンドは、実際に大当たりが発生した場合に、大当たり状態に移行する際に1度だけ送信される。また、大当たりコマンドは、大当たり状態に移行した後、ラウンドごとに継続的に送信される。また、大当たり終了コマンドは、大当たり状態の全てのラウンドが終了し、通常の状態に移行する際に1度だけ送信される。
つぎに、演出制御部202による処理について説明する。以下では、図柄変動時(大当たりリーチコマンド(図5のステップS413参照)または、はずれリーチコマンド(図5のステップS419参照)を受信した場合)および、大当たり時の演出制御部202の処理について説明する。
図7は、演出制御部による図柄変動処理の手順を示すフローチャートである。図7のフローチャートにおいて、演出制御部202は、まず、図柄変動コマンドである大当たりリーチコマンド(図5のステップS413参照)、または、はずれリーチコマンド(図5のステップS419参照)を受信するまで待機する(ステップS701:Noのループ)。図柄変動コマンドを受信すると(ステップS701:Yes)、演出制御部202は、変動演出選択用の乱数を取得して(ステップS702)、取得した乱数に基づいて変動演出の種類を選択する(ステップS703)。そして、演出制御部202は、ランプ制御部251や音声制御部252に対して変動演出別の演出開始コマンドを送信する(ステップS704)。
演出制御部202は、変動演出の演出時間が経過したか否かや(ステップS705)、主制御部201から図柄停止コマンド(図5のステップS415,S421参照)を受信したか否かを判断する(ステップS706)。演出時間が経過した場合(ステップS705:Yes)、または、図柄停止コマンドを受信した場合(ステップS706:Yes)、演出制御部202は、ランプ制御部251や音声制御部252に対して演出停止コマンドを送信する(ステップS707)。また、演出時間が経過せず(ステップS705:No)、かつ図柄停止コマンドを受信しない場合は(ステップS706:No)、ステップS705に戻り、以降の処理を繰り返す。
つぎに、演出制御部202の大当たり時の処理について説明する。図8は、演出制御部による大当たり時の処理の手順を示すフローチャートである。図8のフローチャートにおいて、演出制御部202は、まず、主制御部201から大当たり開始コマンド(図5のステップS416参照)を受信するまで待機する(ステップS801:Noのループ)。大当たり開始コマンドを受信すると(ステップS801:Yes)、演出制御部202は、ランプ制御部251や音声制御部252に対して大当たり開始処理コマンドを送信する(ステップS802)。
つぎに、演出制御部202は、主制御部201からラウンド別の大当たりコマンド(図5のステップS417参照)を受信するまで待機する(ステップS803:Noのループ)。大当たりコマンドを受信すると(ステップS803:Yes)、演出制御部202は、ランプ制御部251や音声制御部252に対して受信したラウンド別の大当たりコマンドに対応するラウンド別処理コマンドを送信する(ステップS804)。
つづいて、演出制御部202は、主制御部201から大当たり終了コマンド(図5のステップS418参照)を受信するまで待機する(ステップS805:Noのループ)。大当たり終了コマンドを受信すると(ステップS805:Yes)、演出制御部202は、ランプ制御部251や音声制御部252に対して大当たり終了処理コマンドを送信して(ステップS806)、本フローチャートによる処理を終了する。
つづいて、ランプ制御部251によるランプ制御処理について説明する。ここでは、演出制御部202から図柄変動コマンドを受信した場合(図柄変動時)の処理について説明する。図9は、ランプ制御部による図柄変動時のランプ制御処理の手順を示すフローチャートである。図9のフローチャートにおいて、ランプ制御部251は、まず、演出制御部202から演出開始コマンドを受信するまで待機する(ステップS901:Noのループ)。
演出制御部202から演出開始コマンドを受信すると(ステップS901:Yes)、ランプ制御部251は、コマンド別に用意されているデータを読み出して(ステップS902)、コマンド別の選択ルーチンを実行し(ステップS903)、ランプデータをセットする(ステップS904)。そして、ランプ制御部251は、ランプ261に対してランプデータを出力する(ステップS905)。ランプ制御部251から出力されたランプデータに基づいて、ランプ261は点灯または消灯する。
ランプ制御部251は、演出制御部202から演出停止コマンドを受信するまでは(ステップS906:No)、ステップS905に戻り、ランプデータの出力を継続する。演出停止コマンドを受信すると(ステップS906:Yes)、ランプ制御部251は、ランプデータの出力を停止して(ステップS907)、本フローチャートによる処理を終了する。
なお、図9にはランプ制御部251の処理を記載したが、音声制御部252による音声制御も、図9の処理とほぼ同様である。音声制御部252による音声制御処理は、図9の処理において、ステップS904,S905,S907の「ランプデータ」を「音声データ」と読み替えればよい。
このように、演出制御部202や賞球制御部203などの周辺部は、主制御部201によって出力された制御コマンドに基づいて各種の処理をおこなう。一方、たとえば、主制御部201と周辺部との間に不正な制御基板が接続された場合(図18参照)などのように、制御コマンドの出力元が正規の主制御部201ではない場合、周辺部は不正な制御基板から出力された不正な制御コマンドによって不正な動作をおこなってしまう。
この不正な動作を防止するため、本実施の形態にかかる電子機器では、たとえばぱちんこ遊技機において、主制御部201から出力される制御コマンドが所定のコマンドである場合、主制御部201と周辺部との間で認証処理をおこなう。所定のコマンドとは、具体的には、大当たり状態の継続中に送信される大当たりコマンドである。この認証処理によって、主制御部201が不正な制御基板に交換されたり、主制御部201と周辺部との間に不正な制御基板が取り付けられるなどの不正を検知して、ぱちんこ遊技機への不正を防止することができる。
一方、周辺部においては、主制御部201に対する認証処理をおこなう際に、周辺部に保持されている期待値によって、主制御部201から出力されたデータを照合し、このデータを用いて算出された値と、期待値とが一致する場合に、主制御部201を認証する。このとき、たとえばぱちんこ遊技機の仕様が変更されたり、賞球数や確率の変更があった場合に、主制御部201を他の主制御部201に変更すると、周辺部には変更前の主制御部201に応じた期待値が保持されているため、変更後の他の主制御部201を認証することができない。このため、変更後の他の主制御部201を、正規な制御基板であるにも関わらず不正な制御基板と認証してしまい、認証処理を誤ってしまう。
この認証処理の誤りを防止するため、本実施の形態にかかる電子機器では、たとえばぱちんこ遊技機において、主制御部201から出力される制御コマンドが所定のコマンドである場合、主制御部201から周辺部へ、期待値の補正をおこなうための補正データを送信する。そして、周辺部においては、この補正データを用いて期待値の補正処理をおこなう。所定のコマンドとは、具体的には、大当たり状態の継続中に送信される大当たりコマンドである。この認証処理によって、主制御部201が他の主制御部201に変更されても、周辺部を変更したり、期待値を変更したりせずに、変更後の他の主制御部201に応じた期待値に補正することができる。したがって、認証処理の誤りを防止し、たとえば主制御部201が変更されても、変更後の他の主制御部201を正規の制御基板であると認証することができる。また、補正値のみを送信し、期待値そのものは送信しないため、第三者に期待値が窃取されにくく、ぱちんこ遊技機への不正を防止することができる。
(制御信号のデータフォーマット)
つづいて、主制御部201が周辺部に出力する制御信号のデータフォーマットについて説明する。図10は、主制御部が出力する制御信号のデータフォーマットを模式的に示す説明図である。図10に示すように、主制御部201が出力する通常の制御信号1010には、制御コマンドデータ1001および付随データ1002が含まれている。制御コマンドデータ1001は、たとえば大当たりリーチコマンドや大当たり開始コマンド、ラウンド別コマンドなどの各コマンド固有のデータである。また、付随データ1002は、制御コマンドデータ1001に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドデータ1001に基づく処理に必要なデータである。
一方、主制御部201は、制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合、制御コマンドデータ1001および付随データ1002に加え、認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を含んだ、認証データ付制御信号1020、補正データ付制御信号1030、ダミー認証データ付制御信号1040またはダミー補正データ付制御信号1050を周辺部に出力する。
認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を制御信号に含めることによって、認証データ単体、補正データ単体、ダミー認証データ単体またはダミー補正データ単体で送信する場合と比較して、主制御部201と周辺部との間の通信負荷を減らすことができる。また、認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を制御信号に含めることによって、これらのデータを単体で送信する場合と比較して、通信データ中から認証データ1003または補正データ1004が抽出され、解析されてしまう可能性を低減することができる。また、補正データ付制御信号1030、ダミー認証データ付制御信号1040、ダミー補正データ付制御信号1050および分割数分の認証データ付制御信号1020は任意の順序でランダムに送信されるため、全ての制御コマンドを送信するときに認証処理をおこなうのと比べると、認証処理による主制御部201や周辺部の処理負荷を減らすことができる。
認証データ1003は、周辺部が保持している期待値と照合することで、制御コマンドデータ1001および付随データ1002が正規の主制御部201から出力されたものであることを、認証するためのデータである。また、認証データ1003は、結合法則を満たす2項演算を用いて算出される。認証データ1003は、たとえば、主制御部201のROM212に記憶されたプログラムデータを、決定部314によって決定されたデータ量に分割することによって生成された値である。また、認証データ1003は、たとえば、ROM212に記憶されたプログラムデータの全てまたは一部に対して、ハッシュ関数による演算やパリティチェック、巡回冗長検査(Cyclic Redundancy Check:CRC)、チェックサムなどの、誤り検出演算をおこなって得られた値(以下、「プログラムコード認証値」という)を、所定の暗号化方式で暗号化し、決定部314によって決定されたデータ量に分割することによって生成された値であってもよい。認証データ1003のより具体的な生成方法については、後述する。
上述したように、認証データ1003は、主制御部201のROM212に記憶されたプログラムデータを、決定部314によって決定されたデータ量に分割し、この分割したデータに対して結合法則を満たす2項演算をおこない生成される。このため、周辺部は、分割数分の認証データ1003に対して主制御部201と同様の2項演算をおこない、この2項演算によって算出された値の結合結果と期待値とを照合して認証をおこなうことで、制御信号の出力元が正規の主制御部201であるか否かを判断することができる。また、主制御部201のROM212に記憶されたプログラムコードの不正な書き換えや、主制御部201のROM212の不正な取り替えなどを検出することができる。
なお、主制御部201は、それぞれの制御信号に対して異なる認証データ1003を生成するものとする。具体的には、たとえば、認証データ1003を生成するために用いるROM212内のプログラムコードの範囲を異ならせたり、認証データ1003を生成するための誤り検出演算を異ならせるようにする。また、認証データ1003を生成するにあたって用いるデータは、プログラムコードに限らず、ROM212に記憶された任意のデータであってもよい。
また、補正データ1004は、周辺部において主制御部201から送信されたデータの照合に用いる期待値を補正するためのデータである。補正データ1004は、たとえば主制御部201に固有の値を元に生成された値である。具体的には、補正データ1004は、主制御部201が複数ある場合、それぞれの主制御部201を識別可能な値であり、たとえば、主制御部201が他の主制御部201に変更された場合、周辺部に保持された変更前の主制御部201に応じた期待値を、変更後の他の主制御部201に応じた期待値に補正するための値である。より具体的には、補正データ1004は、主制御部201が他の主制御部201に変更された場合、変更される前の主制御部201に設定されていた固有の値と、変更された後の他の主制御部201に設定されている固有の値との差分である。また、補正データ1004は、たとえば、認証データ1003と同様に、主制御部201のROM212に記憶されたプログラムデータを元に生成された値でもよい。
また、認証データ1003や補正データ1004には、認証データ1003や補正データ1004とともに送信される制御コマンドデータ1001や付随データ1002に関するデータを含ませてもよい。制御コマンドデータ1001や付随データ1002に関するデータとは、制御コマンドデータ1001や付随データ1002そのものや、制御コマンドデータ1001や付随データ1002に対して上述したような誤り検出方式を用いた演算をおこなって得られた値などである。
一般に、不正な制御基板は、正規の主制御部201と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。認証データ1003や補正データ1004とともに送信する制御コマンドデータ1001や付随データ1002を用いて認証データ1003や補正データ1004を生成すれば、不正な制御基板によって認証データ1003や補正データ1004が再利用された場合であっても、認証データ1003や補正データ1004と制御コマンドデータ1001の整合がとれず、不正を検知することができる。
認証データ1003や補正データ1004に制御コマンドデータ1001や付随データ1002に関するデータを含ませる場合、主制御部201は制御コマンドデータ1001や付随データ1002に関するデータとたとえばプログラムコード認証値とを合わせて暗号化して、認証データ1003や補正データ1004を生成してもよい。
ここで、通常の制御信号1010は、認証データ1003や補正データ1004が含まれていないため、認証データ付制御信号1020や補正データ付制御信号1030より、データサイズが小さくなる。このため、認証データ1003や補正データ1004の付加された制御信号が見破られやすくなり、これらのデータが窃取されやすくなる。
このような問題を防ぐために、認証データ1003や補正データ1004を含まない通常の制御信号1010に、補正データ1004や認証データ1003と同程度のサイズのダミー補正データ1006またはダミー認証データ1005を付加し、ダミー補正データ付制御信号1050またはダミー認証データ付制御信号1040としてもよい。
ダミー認証データ1005は、認証データ1003のダミーデータであり、周辺部において認証処理に無効なデータである。すなわち、ダミー認証データ1005は、周辺部が保持している期待値と照合をおこなわずに、制御コマンドデータ1001および付随データ1002が正規の主制御部201から出力されたものであることを、仮に認証するためのデータである。また、ダミー認証データ1005は、周辺部が保持している期待値と照合をおこない、照合の結果が一致または不一致のいずれでも、制御コマンドデータ1001および付随データ1002が正規の主制御部201から出力されたものであることを、仮に認証するためのデータである。
ダミー認証データ1005は、たとえば認証データ1003と同様の値によって生成されてもよい。また、ダミー認証データ1005は、他の(別種類の)認証処理に用いる認証データであってもよい。また、ダミー認証データ1005は、たとえば、主制御部201と周辺部との間でおこなう認証処理とは異なる他の認証処理に用いる認証データであってもよい。
ダミー認証データ1005の送信数は、上述した認証データ1003の生成に用いた分割数によって決定される。たとえば、認証データ1003の生成時における分割数が2である場合、生成された2つの認証データ1003を送信した後、2つのダミー認証データ1005を送信するようにする。より詳細には、2つの認証データ1003をそれぞれ付加した2つの認証データ付制御信号1020を送信した後、ダミー認証データ1005を付加したダミー認証データ付制御信号1040を2つ送信する。
また、周辺部は、認証データ1003を用いた認証処理が成立した際の認証データ1003の数(結合数)から、ダミー認証データ1005の送信数を知ることができる。たとえば、上述した例では、認証処理が成立した際の認証データ1003の数(結合数)は2である。このため、次に受信する2つの制御信号に含まれているのはダミー認証データ1005であり、認証処理に用いずに破棄すればよいと判断することができる。一方、第三者は、分割数を知ることができないため、認証データ1003とダミー認証データ1005とを区別することができない。これにより、認証データ1003が第三者に窃取される可能性を低減することができ、認証処理の強度を向上させることができる。なお、上述した分割数とダミー認証データ1005の送信タイミングとの関係は一例であり、主制御部201と周辺部との間で任意の取り決めをしておけばよい。
ダミー補正データ1006は、補正データ1004のダミーデータであり、周辺部において補正処理に無効なデータである。すなわち、ダミー補正データ1006は、周辺部が保持している期待値を変更することなく、期待値を補正する処理と同様の処理をおこなうためのデータであってもよい。また、ダミー補正データ1006は、たとえば補正データ1004と同様の値によって生成されてもよい。また、ダミー補正データ1006は、主制御部201と周辺部との間でおこなう認証処理に用いる期待値とは異なる他の値を補正するためのデータであってもよい。
なお、制御コマンドデータ1001と、付随データ1002と、認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006と、の並び方は、図10に示す順番に限らず、たとえば認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を制御信号の先頭にしてもよい。または、制御コマンドデータ1001と付随データ1002との間に認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を挿入してもよい。また、制御コマンドデータ1001および付随データ1002とは別個に認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を出力することとしてもよい。たとえば、大当たりコマンドを含む制御信号を送信した後、n−1回目の制御信号送信時にダミー認証データ1005を付加して、n回目の制御信号送信時に補正データ1004またはダミー補正データ1006を付加して、n+1回目の制御信号送信時に認証データ1003を付加する、などとしてもよい。
また、ダミー認証データ1005は、認証データ1003または補正データ1004もしくはダミー補正データ1006を含まない通常の制御信号1010の全てに付加してもよいし、所定のコマンドデータ(大当たりコマンド)を含む制御信号のうちの、認証データ1003または補正データ1004もしくはダミー補正データ1006を含まない通常の制御信号1010に付加してもよい。このようにすることで、通常の制御信号1010のデータサイズを、認証データ付制御信号1020や補正データ付制御信号1030と同程度とすることができる。このため、第三者にデータサイズの違いによって認証データ1003や補正データ1004が付加されている制御信号を見破られることを防ぐことができる。
なお、認証データ付制御信号1020、補正データ付制御信号1030、ダミー認証データ付制御信号1040またはダミー補正データ付制御信号1050を出力するタイミングは任意である。たとえば、所定時間ごとに認証データ付制御信号1020または補正データ付制御信号1030を送信することができるように、認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を付加してもよい。また、補正データ付制御信号1030またはダミー補正データ1006を出力しないときに常に認証データ付制御信号1020またはダミー認証データ付制御信号1040を出力してもよい。また、たとえば制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合に、認証データ1003、補正データ1004、ダミー認証データ1005またはダミー補正データ1006を付加するようにしてもよい。また、分割数分の認証データ付制御信号1020および補正データ付制御信号1030と、分割数分のダミー認証データ1005およびダミー補正データ1006とをランダムに送信してもよい。
(認証データ(検査値)の生成方法)
図11は、主制御部における認証データ(検査値)の生成方法を模式的に示す説明図である。認証データ1003は、主制御部201のROM212などに記憶されたデータを用いて生成する。より詳細には、ROM212の所定の領域に格納されたデータを、任意のデータ量に分割した上で、分割した領域にそれぞれ格納されたデータに対して結合法則を満たす2項演算(半群演算)をおこなって検査値を算出する。半群演算としては、たとえば、加算や排他的論理和演算などが挙げられる。そして、検査値に対して所定の演算(たとえば、暗号化処理)をおこなって得られた値を認証データとする。なお、検査値を暗号化するか否かは任意であるが、不正防止の観点から暗号化することが望ましい。また、検査値に対して所定の演算をおこなう際に、検査値が付加される制御コマンドを用いてもよい。一般に、不正な制御基板は、正規の主制御部と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。今回送信する制御コマンドを用いて認証データ1003を生成すれば、不正な制御基板によって認証データが再利用された場合であっても、認証データと制御コマンドの整合がとれず、不正を検知することができる。
主制御部201は、たとえば、1つの検査値を生成するごとに、その生成に用いるデータの量(データ量)を決定する。この場合、主制御部201は、ROM212の所定領域内の全てのデータを用いた検査値の生成が完了するまで、データ量の決定と検査値の生成とを繰り返す。このため、いくつの検査値が生成されるか(すなわち、分割数がいくつになるか)は、ROM212の所定領域内の全てのデータを用いた検査値の生成が完了するまでわからない。
なお、1つの検査値を生成するごとにデータ量を決定するのではなく、あらかじめ検査値の生成に用いるデータの量を決定しておいてもよい。また、全ての検査値の生成に用いるデータ量を等しくするようにしてもよい。この場合、データ量を決定した時点で分割数が予測可能となる。
検査値を算出するために用いるデータの種類は任意であるが、たとえば、主制御部201のROM212に記憶されたプログラムデータ(命令コードや固定データ)を用いることができる。主制御部201のROM212に記憶されたプログラムデータを用いることによって、プログラムコードの不正な書き換えや、主制御部201のROM212の不正な取り替えなどを検出することができる。
たとえば、図11に示すプログラムデータ格納部1100には、12個のデータ(0x01〜0x09,0x0A〜0x0C、1つのデータのデータ量は1バイト)が格納されている。検査値の生成に用いるデータ量を4バイト、3バイト、5バイトとする場合、プログラムデータ格納部1100は、たとえば4バイト分のデータを含む第1ブロック1100a、3バイト分のデータを含む第2ブロック1100b、5バイト分のデータを含む第3ブロック1100c、の3つに分割できる。すなわち、分割数は3となる。主制御部201は、これらの各ブロックに格納されたデータに対してそれぞれ半群演算をおこなって検査値を算出する。なお、上述したデータ量は例示である。
たとえば、半群演算として加算を用いる方法を方式Aとすると、第1ブロック1100aに格納された4バイト分のデータ0x01,0x02,0x03,0x04を加算して第1検査値0x0Aが得られる。同様に、第2ブロック1100bに格納された3バイト分のデータ0x05,0x06,0x07を加算して第2検査値0x12が、第3ブロック1100cに格納された5バイト分のデータ0x08,0x09,0x0A,0x0B,0x0Cを加算して第3検査値0x32がそれぞれ得られる。
また、たとえば、半群演算として排他的論理和演算を用いる方法を方式Bとすると、第1ブロック1100aに格納された4バイト分のデータ0x01,0x02,0x03,0x04に排他的論理和演算をおこない第1検査値0x04が得られる。同様に、第2ブロック1100bに格納された3バイト分のデータ0x05,0x06,0x07に排他的論理和演算をおこない第2検査値0x04が、第3ブロック1100cに格納された5バイト分のデータ0x08,0x09,0x0A,0x0B,0x0Cに排他的論理和演算をおこない第3検査値0x0Cがそれぞれ得られる。
そして、得られた検査値に対して暗号化処理をおこなって認証データとする。この暗号化処理の際、検査値とともに、同時に送信される制御コマンドデータ1001や付随データ1002に関するデータを含めて暗号化処理をおこなってもよい。制御コマンドデータ1001や付随データ1002に関するデータとは、制御コマンドデータ1001や付随データ1002そのものや、制御コマンドデータ1001や付随データ1002に対してハッシュ関数による演算やパリティチェック、巡回冗長検査(Cyclic Redundancy Check:CRC)、チェックサムなどの演算をおこなって得られた値などである。
一般に、不正な制御基板は、正規の主制御部201と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。このため、制御コマンドデータ1001や付随データ1002を用いて認証データ1003を生成すれば、不正な制御基板によって認証データ1003を再利用された場合であっても、認証データ1003と制御コマンドの整合がとれず、不正を検知することができる。
一方、認証者である周辺部は、プログラムデータ格納部1100に格納されたデータ全体に対して半群演算をおこなった値を期待値として保持している。たとえば、方式Aの場合の期待値は0x01〜0x0Cの和である0x4Eとなる。また、方式Bの場合の期待値は0x01〜0x0Cの排他的論理和である0x0Cとなる。周辺部では、主制御部201による検査値生成方法の数と同じ数の期待値を保持していてもよい。また、周辺部では、1つの期待値のみを保持し、主制御部201による検査値生成方法が切り替わる度に、主制御部201から周辺部に補正データ1004を送信し、この補正データ1004によって期待値を補正してもよい。
周辺部は、受信した認証データ付制御信号1020から検査値を取り出して、検査値に対して半群演算をおこなった値を期待値と照合する。検査値は半群演算を用いて生成されているので、分割したプログラムデータから生成した検査値の全てに対して同じ半群演算をおこなえば、プログラムデータ全体に対して半群演算をおこなった期待値と一致するはずである。検査値に対して半群演算をおこなった値と期待値とが一致すると、周辺部は主制御部201を認証する。
なお、周辺部における半群演算処理は、分割したプログラムデータから生成した検査値を結合する処理に対応するため、「結合処理」と呼ぶ。また、認証が成立した際の結合処理に用いた検査値の数を「結合数」という。周辺部における結合数と主制御部201における分割数とは同じ数となる。
ここで、主制御部201は、たとえば認証データを生成することにより知り得た分割数に基づいて、ダミー認証データを生成して周辺部に送信する。また、周辺部は、主制御部201に対する認証が成立した際に2項演算の対象となった認証データの数(結合数)に基づいて、認証データとダミー認証データとを識別する。分割数および結合数は主制御部201および周辺部のみが知る値なので、第三者は、認証データとダミー認証データとを識別することができない。このため、第三者によって分割数分の認証データが窃取され、分割数分の認証データが結合されることによって、主制御部201に対する認証を成立させるための値が不正に窃取される可能性を低減することができる。これにより、主制御部201と周辺部との間の認証処理の強度を向上させることができる。
また、主制御部201は、分割数分のダミー認証データを生成してもよい。周辺部は、分割数分のダミー認証データを受信した場合、認証データを受信した場合と同様の処理をおこなうことができる。これによって、周辺部は、周辺部における処理時間または処理によって発生する熱量などが正規な認証データを受信し認証をおこなうのと同様となるように、ダミー認証データを用いて主制御部201を仮に認証する処理(ダミー認証処理)をおこなうことができる。したがって、第三者に周辺部において認証処理をおこなうタイミングを知られることを防ぐことができるため、より認証の強度を上げることができる。
また、主制御部201は、分割数分の認証データを送信した直後に、分割数分のダミー認証データを送信してもよい。これによって周辺部は、認証データの直後に受信した結合数分の値がダミー認証データであるとして識別することができる。これにより、周辺部の処理負荷を増大させることなく認証データとダミー認証データとを識別して、認証処理をおこなうことができる。
(制御信号の送受信処理)
つづいて、図12〜図14を用いて、主制御部201と周辺部との間でおこなう制御信号の送受信処理について説明する。以下、主制御部201と演出制御部202との間の制御信号の送受信処理について説明するが、主制御部201と賞球制御部203との間の制御信号の送受信処理も同様の手順でおこなわれる。以下の説明では、制御信号の送信時には必ず認証データ1003、ダミー認証データ1005または補正データ1004もしくはダミー補正データ1006を付加して送信するものとしているが、これに限らず、所定のタイミング、たとえば所定の制御コマンドの送信時にのみ認証データ1003、ダミー認証データ1005または補正データ1004もしくはダミー補正データ1006を付加するようにしてもよい。
図12および図13は、主制御部による制御信号の送信処理の手順を示すフローチャートである。本フローチャートでは、検査値(認証データ)を生成するごとに、データ量を決定する場合の処理について説明する。図12のフローチャートにおいて、主制御部201は、まず、主制御部201の電源がオンにされるまで待機する(ステップS1201:Noのループ)。主制御部201の電源がオンにされた場合(ステップS1201:Yes)、主制御部201は、残ダミー認証データ数が0か否かを判断する(ステップS1202)。ここで、残ダミー認証データ数とは、周辺部に対して送信するダミー認証データ1005の残数である。主制御部201は、たとえば、ROM212内の記憶領域に記憶されている残ダミー認証データ数の値を参照して、ステップS1202の判断をおこなう。残ダミー認証データ数が0ではない場合は(ステップS1202:No)、主制御部201は、ダミー認証データ1005を送信するためにステップS1213に移行する(図13参照)。
一方、残ダミー認証データ数が0の場合(ステップS1202:Yes)、送信すべきダミー認証データ1005はないので、主制御部201は認証データ1003を送信するため、検査値の生成に用いるプログラムデータのデータ量を決定する(ステップS1203)。データ量の決定方法は任意である。
つぎに、主制御部201は、たとえば、プログラムデータ格納部1100の先頭から、ステップS1202で決定した量のプログラムデータを読み出し、読み出したデータに対して半群演算をおこなって検査値を算出し、検査値に対して暗号化処理をおこなって認証データ1003を生成する(ステップS1204)。この処理により、検査値および認証データ1003が生成される。また、検査値の生成方法(生成に用いる演算の種類など)は、主制御部201の工場出荷時、電源投入後に最初に生成される検査値のデータ量が決定された時、または前回の認証データ1003送信時に決定されていてもよいし、前回電源がオフされるときに用いていた検査値の生成方法を引き続き用いてもよい。
つぎに、制御コマンドの送信タイミングとなるまで待機する(ステップS1205:Noのループ)。制御コマンドの送信タイミングとなった場合(ステップS1205:Yes)、主制御部201は、制御コマンドデータ1001および付随データ1002をセットする(ステップS1206)。
つぎに、主制御部201は、補正に関するデータまたは認証データ1003の送信タイミングか否かを判断する(ステップS1207)。ここで、補正に関するデータとは、補正データ1004やダミー補正データ1006であり、周辺部において補正処理または補正処理と同様の処理をおこなうための情報である。つまり、ステップS1207において、主制御部201は、制御信号内に認証データ1003、補正データ1004またはダミー補正データ1006が含まれているか否かを判断する。
つぎに、ステップS1207において、補正に関するデータまたは認証データ1003の送信タイミングである場合(ステップS1207:Yes)、主制御部201は、補正に関するデータの送信タイミングか否かを判断する(ステップS1208)。ステップS1208において補正に関するデータの送信タイミングではない場合(ステップS1208:No)、主制御部201は、ステップS1204,S1206で生成した制御コマンドデータ1001、付随データ1002、認証データ1003からなる制御信号(認証データ付制御信号1020)を演出制御部202に送信する(ステップS1209)。
主制御部201は、プログラムデータ格納部1100内の全てのデータを用いて検査値を生成するまで(ステップS1210:No)、ステップS1203に戻り、以降の処理をくり返しおこなう。ここで、「プログラムデータ格納部1100内の全てのデータを用いて」とは、プログラムデータ格納部1100内のデータをもれなく、かつ重複なく用いて、という意味である。2つ目以降の検査値を生成する場合、主制御部201は、たとえば、前の検査値生成に用いたプログラムデータの次の領域に書き込まれたデータを、ステップS1203で決定した量だけ読み出して検査値を生成する。なお、最後の検査値を生成する際は、ステップS1203で決定したデータ量に足りない可能性があるが、主制御部201は、取得できる分のプログラムデータのみを用いて検査値を生成する。なお、ステップS1203〜S1209の処理は、認証データ1003の送信タイミングとなる前にあらかじめおこなっておいてもよい。
プログラムデータ格納部1100内の全てのデータを用いて検査値を生成すると(ステップS1210:Yes)、図13に示すように、主制御部201は、ダミー認証データ1005の送信処理をおこなう。具体的には、主制御部201は、生成した認証データ1003(検査値)の数、すなわち分割数を、ダミー認証データ1005の送信数としてROM212内の記憶領域に記憶する(ステップS1211)。このダミー認証データ1005の送信数が、残ダミー認証データ数の初期値である。つづいて、主制御部201は、ダミー認証データ1005を生成する(ステップS1212)。
そして、主制御部201は、ダミー認証データ1005を付加したダミー認証データ付制御信号1040を送信し(ステップS1213)、ROM212の記憶領域に記憶した残ダミー認証データ数の値を−1する(ステップS1214)。つぎに、主制御部201は、主制御部201の電源がオフにされたか否かを判断する(ステップS1215)。ステップS1215において、主制御部201が、主制御部201の電源がオフではないと判断した場合(ステップS1215:No)、ステップS1202に戻り、以降の処理を繰り返しおこなう。
また、ステップS1208において、補正に関するデータの送信タイミングである場合(ステップS1208:Yes)、主制御部201は、補正データ1004の送信タイミングか否かを判断する(ステップS1216)。ステップS1216において補正データ1004の送信タイミングである場合(ステップS1216:Yes)、主制御部201は、補正データ1004を生成する(ステップS1217)。そして、主制御部201は、ステップS1206,ステップS1217で生成した制御コマンドデータ1001、付随データ1002、補正データ1004からなる制御信号(補正データ付制御信号1030)を演出制御部202に送信する(ステップS1218)。このとき、主制御部201は、分割数分の認証データ付制御信号1020を演出制御部202に送信し終える前に、補正データ付制御信号1030を演出制御部202に送信する。
つぎに、主制御部201は、ステップS1210に進み、プログラムデータ格納部1100内の全てのデータを用いて検査値を生成し終えたか否かを判断する。このとき、主制御部201は、認証データ1003を生成するにあたり、プログラムデータ格納部1100内のデータをまだ全て用いていないはずである。そのため、主制御部201は、ステップS1210においてプログラムデータ格納部1100内の全てのデータを用いて検査値を生成し終えたか否かを判断せずに、ステップS1203に戻り、以降の処理をおこなってもよい。
また、ステップS1216において補正データ1004に代えてダミー補正データ1006を送信する場合(ステップS1216:No)、主制御部201は、ダミー補正データ1006を生成する(ステップS1219)。そして、主制御部201は、ステップS1206,ステップS1219で生成した制御コマンドデータ1001、付随データ1002、ダミー補正データ1006からなる制御信号(ダミー補正データ付制御信号1050)を演出制御部202に送信する(ステップS1220)。このとき、主制御部201は、分割数分の認証データ付制御信号1020を演出制御部202に送信し終えた後、ダミー認証データ付制御信号1040を演出制御部202に送信する前に、ダミー補正データ付制御信号1050を演出制御部202に送信してもよい。
一方、ステップS1207において補正に関するデータまたは認証データ1003の送信タイミングでない場合(ステップS1207:No)、主制御部201は、ステップS1206でセットした制御コマンドデータ1001および付随データ1002からなる制御信号(通常の制御信号1010)を演出制御部202に送信する(ステップS1221)。そして、主制御部201は、ステップS1210に進み、プログラムデータ格納部1100内の全てのデータを用いて検査値を生成し終えたか否かを判断し、以降の処理をおこなう。また、ステップS1215において電源がオフにされた場合(ステップS1215:Yes)、本フローチャートによる処理を終了する。
また、図12および図13のフローチャートにおいては、ステップS1212においてダミー認証データ1005を生成するとしているが、これに限らず、ダミー認証データ1005は、ステップS1213において制御信号(ダミー認証データ付制御信号1040)を送信するごとに生成してもよいし、ステップS1211において残ダミー認証データ数が決定されたタイミングで残ダミー認証データ数分だけ生成してもよい。また、あらかじめ適当な数のダミー認証データ1005を生成しておき、必要に応じて使用するようにしてもよい。また、ステップS1212,S1213において、分割数分のダミー認証データ1005を生成して送信しているが、ダミー認証データ1005を1つのみ生成して送信することとしてもよい。
また、図12および図13のフローチャートにおいては、ステップS1205:Yesにおいて制御コマンドの送信タイミングとなった後、ステップS1206において制御コマンドデータ1001および付随データ1002をセットしているが、これに限るものではない。たとえば、ステップS1218において補正データ付制御信号1030を送信する前に、制御コマンドデータ1001および付随データ1002をセットしてもよい。同様に、ステップS1209,ステップS1220,S1221において、認証データ付制御信号1020、ダミー補正データ付制御信号1050または通常の制御信号1010をそれぞれ送信する前に、制御コマンドデータ1001および付随データ1002をセットしてもよい。
また、図12および図13のフローチャートにおいては、ステップS1203〜ステップS1210の処理をおこなって、分割数分の認証データ付制御信号1020を送信する間に、認証データ付制御信号1020、補正データ付制御信号1030、ダミー補正データ付制御信号1050および通常の制御信号1010を任意の順序でランダムに送信する構成でもよい。また、周辺部にすでに補正された期待値が保持されている場合、補正データ付制御信号1030を送信せずに、分割数分の認証データ付制御信号1020のみを送信してもよい。
また、図12および図13のフローチャートにおいては、ステップS1207:Noにおいて補正に関するデータまたは認証データ1003の送信タイミングでない場合に、通常の制御信号1010を送信するとしているが、これに限るものではない。たとえば今回送信する制御コマンドが大当たりコマンドである場合に、補正に関するデータまたは認証データ1003を送信し、今回送信する制御コマンドが大当たりコマンド以外のコマンドである場合に、通常の制御信号1010を送信する構成でもよい。
このように、主制御部201は、周辺部に制御コマンドを送信する際に、制御コマンドデータ1001に認証データ1003、ダミー認証データ1005または補正データ1004もしくはダミー補正データ1006を付加する。そして、主制御部201は、分割数分の認証データ1003を送信した後に、分割数分のダミー認証データ1005を送信する。ここで、分割数は主制御部201のみが知る値なので、第三者は、周辺部に送信される認証データ1003の数を知ることができない。したがって、認証データ1003が抽出される可能性を低減することができる。また、主制御部201は、分割数分の認証データ1003を送信する間に、補正データ1004に代えてダミー補正データ1006を送信することができる。これによって、補正データ1004が抽出される可能性を低減することができる。
また、このとき、主制御部201は、分割数分の認証データ1003を送信した後、分割数分のダミー認証データ1005を送信し始める前に、補正データ1004を送信してもよい。これによって、主制御基板310がたとえば分割数分のダミー認証データ1005を送信している間に、周辺部は次の認証処理に用いられる期待値を補正することができる。このため、周辺部において認証処理がおこなわれた後、次の認証処理がおこなわれる前までに期待値を補正する必要が生じたとしても、周辺部は、次の認証処理がおこなわれる前までに補正処理をおこなうことができる。
また、主制御部201は、周辺部に大当たりコマンドを送信する際にのみ、制御コマンドデータ1001に認証データ1003、ダミー認証データ1005または補正データ1004もしくはダミー補正データ1006を付加する構成としてもよい。この場合、大当たりコマンドは、他のコマンドと比較して発生頻度が低いため、制御信号中から、補正データ1004または認証データ1003が抽出される可能性を低減することができる。また、大当たりコマンドは大当たり状態に移行した後、ラウンドごとに継続的に送信されるため、1回の大当たり状態の間に、認証データ1003、ダミー認証データ1005または補正データ1004もしくはダミー補正データ1006を続けて送信することができる。このため、1度大当たり状態になれば、期待値の補正をおこなってから間隔を開けずに認証処理をおこなうことができる。さらに、ダミー認証処理やダミー補正処理も間隔を空けずにおこなうことができるため、補正処理または認証処理をおこなうタイミングを第三者に知られることを防ぐことができる。これによって、補正処理から認証処理の間に不正な制御基板が挿入される可能性が低くなり、認証の強度を向上させることができる。
また、主制御部201は、周辺部に大当たり開始コマンドを送信する際に、制御コマンドデータ1001に補正データ1004またはダミー補正データ1006を付加し、周辺部に大当たりコマンドを送信する際に、制御コマンドデータ1001に認証データ1003またはダミー認証データ1005を付加する構成としてもよい。大当たり開始コマンドは、大当たり状態を開始させるコマンドであり、他のコマンドと比較して送信頻度が低い。よって、制御信号中から補正データ1004が抽出される可能性を低減することができる。大当たりコマンドは、大当たり開始コマンドが送信され大当たり状態に移行した後、ラウンドごとに継続的に送信されるため、1度大当たり状態になれば、周辺部において補正処理がおこなわれた後に、分割数分の認証データ1003を続けて送信することができる。これによって、補正処理から認証処理の間に不正な制御基板が挿入される可能性が低くなり、認証の強度を向上させることができる。さらに、主制御部201は、分割数分の認証データ1003を送信した後、分割数分のダミー認証データ1005を続けて送信することができる。周辺部は認証処理の後に続けてダミー認証処理をおこなうことができるため、認証処理をおこなうタイミングを第三者に知られることを防ぐことができる。
また、この場合、周辺部は、制御コマンドの種類によって、補正データ1004と、ダミー補正データ1006と、認証データ1003またはダミー認証データ1005とを識別することができる。ここで、周辺部は、分割数に基づき認証データ1003とダミー認証データ1005とを識別する。これにより、周辺部は、周辺部の処理負荷を増大させることなく、補正データ1004、ダミー補正データ1006、認証データ1003またはダミー認証データ1005を識別して、補正処理、ダミー補正処理、認証処理またはダミー認証処理をおこなうことができる。このとき、主制御部201は、認証データ1003を付加する制御コマンドとは異なる種類の制御コマンドに、ダミー認証データ1005を付加する構成としてもよい。
また、主制御部201は、周辺部に大当たりリーチコマンドを送信する際にのみ、制御コマンドデータ1001に補正データ1004、ダミー補正データ1006、認証データ1003またはダミー認証データ1005を付加する構成としてもよい。この場合、大当たりリーチコマンドは、大当たり状態になる前に、実際に大当たりが発生するよりも頻繁に、かつランダムに送信される。このため、たとえば大当たりリーチコマンドを少数ずつ連続して送信する場合、大当たり状態になる前に、補正処理、ダミー補正処理、認証処理またはダミー認証処理のいずれの処理もおこなうことができる。
また、主制御部201は、周辺部に電源オンコマンドを送信する際にのみ、制御コマンドデータ1001に補正データ1004を付加する構成としてもよい。電源オンコマンドは、ぱちんこ遊技機の電源の投入時やリセット時など、ぱちんこ遊技機の初期化処理をおこなう際に送信される。初期化処理は、ぱちんこ遊技機のメインの処理である遊技(ゲーム進行)関連処理とは異なる処理区分に分類される。初期化処理中に補正処理を組み込めば、遊技関連処理中に補正処理を組み込む場合と比較して、プログラム設計やテストにかかる工程(工数)を低減することができる。すなわち、初期化処理中に補正処理を組み込むことによって、開発コストの低減や品質管理上のメリットを得ることができる。
また、主制御部201は、周辺部に客待ちデモコマンドを送信する際にのみ、制御コマンドデータ1001に補正データ1004またはダミー補正データ1006を付加する構成としてもよい。そして、主制御部201は、客待ちデモコマンドによって客待ちデモが開始され、客待ちデモ停止コマンドによって停止されるまでの間に、周辺部に任意の制御コマンドを送信する際に、制御コマンドデータ1001に認証データ1003またはダミー認証データ1005を付加する構成としてもよい。客待ちデモコマンドや客待ちデモ停止コマンドは、客待ちデモを開始または停止させるコマンドである。また、客待ちデモは、ぱちんこ遊技機のメインの処理である遊技(ゲーム進行)関連処理がおこなわれていないときに表示される。これによって、補正処理、ダミー補正処理、認証処理またはダミー認証処理による処理負荷が遊技関連処理に影響を与えることがない。このため、主制御部201や周辺部が高度な処理能力を有していない場合や、遊技関連処理の処理負荷が大きいぱちんこ遊技機であっても、補正処理機能および認証処理機能を追加することができる。また、非遊技状態の間に、補正処理と認証処理の両方をこの順におこなうことができるため、遊技状態になる前に、不正を検知することができる。このため、遊技状態を、不正のない安全な状態でおこなうことができる。また、非遊技状態の間に、認証処理とダミー認証処理とをおこなうことができるため、第三者に認証処理をおこなうタイミングを知られることを防止することができる。これによって、認証処理の強度を向上させることができる。
主制御部201は、周辺部にはずれコマンドを送信する際にのみ、制御コマンドデータ1001に補正データ1004、ダミー補正データ1006、認証データ1003またはダミー認証データ1005を付加する構成としてもよい。この場合、はずれコマンドは、大当たり抽選時の抽選結果として最も発生頻度が高いため、補正処理、ダミー補正処理、認証処理またはダミー認証処理をおこなう回数が増え、認証の強度を上げることができる。さらに、はずれコマンドの発生頻度が高いことで、補正データ1004を付加した後にダミー補正データ1006、認証データ1003またはダミー認証データ1005を付加するのであれば、はずれコマンドにランダムに補正データ1004、ダミー補正データ1006、認証データ1003またはダミー認証データ1005を付加することができる。
つぎに、演出制御部202による制御信号の受信処理について説明する。図14は、演出制御部202による制御信号の受信処理の手順を示すフローチャートである。図14のフローチャートにおいて、演出制御部202は、まず、主制御部201から制御信号を受信するまで待機する(ステップS1401:Noのループ)。主制御部201から制御信号を受信すると(ステップS1401:Yes)、残ダミー認証データ数が0か否かを判断する(ステップS1402)。周辺部は、たとえば、ROM242,282内の記憶領域に記憶されている残ダミー認証データ数の値を参照して、ステップS1402の判断をおこなう。
残ダミー認証データ数が0の場合(ステップS1402:Yes)、受信した制御信号に含まれているのは通常の(ダミーではない)認証データ1003、または補正データ1004もしくはダミー補正データ1006(補正に関するデータ)であるので、演出制御部202は、受信した制御信号に補正に関するデータが含まれているか否かを判断する(ステップS1403)。制御信号に補正に関するデータが含まれているか否かの判断は、たとえば、データ量が通常の制御信号よりも多い制御信号のうちの、周辺部の電源が投入されてからn番目の制御信号か否かを判断したり、補正データ1004もしくはダミー補正データ1006が含まれていることを示すフラグが制御信号に立てられているか否かを判断したりすることによっておこなう。
ステップS1403において、制御信号に補正に関するデータが含まれている場合(ステップS1403:Yes)、演出制御部202は、受信した制御信号に補正データ1004が含まれているか否かを判断する(ステップS1404)。そして、制御信号に補正データ1004が含まれている場合(ステップS1404:Yes)、演出制御部202は、制御信号から抽出した補正データ1004を用いて演出制御部202に保持されている期待値を補正し(ステップS1405)、ステップS1406に進む。
また、ステップS1404において、制御信号に補正データ1004が含まれていない場合(ステップS1404:No)、制御信号にはダミー補正データ1006が含まれているため、演出制御部202は、ステップS1405の処理を省略してステップS1406に進む。このとき、演出制御部202は、ダミー補正処理をおこなってもよい。
また、ステップS1403において、演出制御部202は、受信した制御信号に補正データ1004またはダミー補正データ1006が含まれているか否かではなく、制御信号に含まれる制御コマンドデータ1001が所定の制御コマンドのデータであるか否かを判断してもよい。この場合、演出制御部202は、制御信号に含まれる制御コマンドデータ1001が所定の制御コマンドのデータである場合に、制御信号から補正データ1004またはダミー補正データ1006を抽出する。そして、演出制御部202は、補正データ1004を抽出した場合にステップS1405に進み、ダミー補正データ1006を抽出した場合にステップS1406に進んでもよい。
また、ステップS1403において、演出制御部202は、たとえば補正データ1004またはダミー補正データ1006を付加する制御コマンドを大当たりコマンドとした場合、電源が投入されてから、もしくは大当たり状態になってから、n回目の大当たりコマンドのデータであるか否かを判断してもよい。この場合、演出制御部202は、n回目の大当たりコマンドのデータである場合に、制御信号から補正データ1004またはダミー補正データ1006を抽出し、ステップS1405またはステップS1406に進むこととしてもよい。
つぎに、制御信号に含まれている制御コマンドデータ1001および付随データ1002に基づく処理をおこなって(ステップS1406)、ステップS1401に戻り、次の制御信号を受信するまで待機し、以降の処理を繰り返しおこなう。
また、ステップS1402において、残ダミー認証データ数が0でない場合(ステップS1402:No)、受信した制御信号に含まれているのはダミー認証データ1005であるので、周辺部は認証処理をおこなわず、記憶領域に記憶されている残ダミー認証データ数の値を−1して(ステップS1417)、ステップS1406に進み、制御信号に含まれている制御コマンドデータ1001および付随データ1002に基づく処理をおこなう。また、ステップS1417の処理の後、周辺部が分割数分のダミー認証データ1005を受信し終えた場合、すなわち残ダミー認証データ数=0の場合、周辺部は、主制御部201を仮に認証する処理をおこなってもよいし、省略してもよい。
一方、ステップS1403において、制御信号に補正に関するデータが含まれていない場合(ステップS1403:No)、演出制御部202は、ステップS1401において受信した制御信号に、認証データ1003が含まれているか否かを判断する(ステップS1407)。制御信号に認証データ1003が含まれているか否かの判断は、たとえば、制御信号のデータ量が通常の制御信号よりも多いか否かを判断することによっておこなう。
また、ステップS1407において、演出制御部202は、受信した制御信号に認証データ1003が含まれているか否かではなく、制御信号に含まれる制御コマンドデータ1001が所定の制御コマンドのデータであるか否かを判断してもよい。この場合、演出制御部202は、制御信号に含まれる制御コマンドデータ1001が所定の制御コマンドのデータである場合に、制御信号に認証データ1003が含まれていると判断し、ステップS1408に進む。また、ステップS1407において、演出制御部202は、たとえば補正データ1004を付加する制御コマンドを大当たりコマンドとした場合、電源が投入(または、リセット)されてから、もしくは大当たり状態になってから、n回目以外の大当たりコマンドのデータであるか否かを判断してもよい。この場合、演出制御部202は、電源が投入(または、リセット)されてから、もしくは大当たり状態になってから、n回目以外の大当たりコマンドのデータである場合に、制御信号に認証データ1003が含まれていると判断してもよい。
制御信号に認証データ1003が含まれている場合(ステップS1407:Yes)、演出制御部202は、制御信号から認証データ1003を抽出し、さらに復号化処理をおこなって検査値を取得する(ステップS1408)。演出制御部202は、取得した検査値を検査値用メモリに格納して(ステップS1409)、検査値用メモリ内の全ての検査値に対して半群演算(結合処理)をおこなう(ステップS1410)。なお、ステップS1410でおこなう半群演算の種類は、前回の認証データ1003受信時に決定されている。また、検査値用メモリ内の検査値が1つの場合は、結合処理をおこなわずにそのままステップS1411に移行する。
つぎに、補正された期待値を取得する(ステップS1411)。そして、検査値用メモリ内に記憶されている検査値の演算結果(結合結果)と期待値とが一致するか否かを判断する(ステップS1412)。このとき、演出制御部202は、検査値の演算結果と期待値とが一致するか否かではなく、検査値の演算結果と期待値とが所定の関係にあるか否かを判断してもよい。所定の関係とは、たとえば、検査値の演算結果に所定の演算をおこなって得た値が期待値と一致する、などの関係である。
検査値の演算結果と期待値とが一致する場合(ステップS1412:Yes)、演出制御部202は、制御信号を送信した主制御部201の正当性を認証する。そして、演出制御部202は、検査値用メモリ内のデータを消去するとともに(ステップS1413)、認証が成立した際に結合処理の対象になった認証データ1003の数、すなわち結合数を残ダミー認証データ数として、ROM212の記憶領域に記憶する(ステップS1414)。そして、ステップS1406に進み、制御信号に含まれている制御コマンドデータ1001および付随データ1002に基づく処理をおこなう。
一方、ステップS1412において、検査値の演算結果と期待値とが一致しない場合(ステップS1412:No)、演出制御部202は、所定数以上の検査値を受信するまで(ステップS1415:No)、ステップS1401に戻り、結合処理を繰り返す。所定数以上の検査値を受信すると(ステップS1415:Yes)、演出制御部202は、制御信号を送信した主制御部201の正当性を認証せず、制御コマンドデータ1001および付随データ1002を破棄するとともに、報知信号出力部335(図3参照)から報知信号を出力して(ステップS1416)、本フローチャートによる処理を終了する。所定数は任意の数であるが、たとえば、プログラムデータ格納部1100に格納可能なデータの数(最大分割数)とすることができる。認証が成立しなかった場合、ステップS1416では、データの破棄と報知のいずれかのみをおこなうこととしてもよい。
また、ステップS1407において、制御信号に認証データ1003が含まれていない場合(ステップS1407:No)、すなわち制御信号が通常の制御信号1010の場合、演出制御部202は、期待値との照合をおこなわず、そのままステップS1406に進み、制御コマンドデータ1001および付随データ1002に基づく処理をおこなう。
なお、図14のフローチャートにおいては、演出制御部202があらかじめ期待値を保持せず、期待値が他の構成部から送信される場合、ステップS1405においては期待値を補正せず、補正データ1004を抽出してデータ記憶部312などに記憶しておく。そして、ステップS1411において期待値を他の構成部から取得した後に、記憶された補正データ1004を用いて期待値を補正し、ステップS1412に進み、補正された期待値が認証データ1003と一致するか否かを判断してもよい。
(制御部間の制御信号の流れの一例)
つぎに、主制御部201と周辺部との間の制御信号の流れを、図15および図16のシーケンス図を用いて説明する。ここで、周辺部は、たとえば演出制御部202や賞球制御部203(図2)である。図15および図16は、制御部間の制御信号の流れの一例を示すシーケンス図である。図15および図16において、点線Aに囲まれた部分が1回分のダミー補正処理のステップであり、点線Bに囲まれた部分が1回分の補正処理のステップであり、点線Cに囲まれた部分が1回分の認証処理およびダミー認証処理のステップである。なお、図15および図16のシーケンス図においては、ダミー補正処理(点線Aに囲まれた部分)、補正処理(点線Bに囲まれた部分)および認証処理(点線Cに囲まれた部分)を分けて処理しているが、1回分の認証処理がおこなわれている最中に補正処理またはダミー補正処理がおこなわれてもよい。また、図15および図16では、説明の便宜上、検査値の生成に用いるデータ量を一括して決定するように示しているが、図12および図13のフローチャートのように、検査値を生成するごとにデータ量を決定してもよい。
図15に示すように、制御コマンドデータ1001が所定の制御コマンドの場合、主制御部201は、制御コマンドデータ1001および付随データ1002をセットする(ステップS1501)。また、主制御部201は、ダミー補正データ1006を生成する(ステップS1502)。ここで、ダミー補正データ1006は、主制御部201の備える記録部などに記録された所定のプログラムコードなどから生成した誤り検出可能な数値であってもよい。誤り検査値は、好適には、実際の誤り検査値とソルト値との演算結果値がよい。
つぎに、主制御部201は、制御コマンドデータ1001、付随データ1002、ダミー補正データ1006を含むダミー補正データ付制御信号1050を周辺部に送信する(ステップS1503)。なお、ステップS1503においては、付随データ1002がセットされた制御コマンドデータ1001と、ダミー補正データ1006とを、別々に周辺部に送信してもよい。また、この場合、送信順序は、順不同でよい。
周辺部は、ステップS1503で送信されたダミー補正データ付制御信号1050を受信する(ステップS1504)。そして、実際には期待値の変更をおこなわずに、制御コマンドデータ1001および付随データ1002に基づく処理をおこなう(ステップS1505)。ステップS1504においてダミー補正データ付制御信号1050を受信した場合、周辺部は、ダミー補正処理をおこなってもよい。
つぎに、制御コマンドデータ1001が所定の制御コマンドの場合、主制御部201は、補正値を生成する(ステップS1511)。補正値は、主制御部201の照合用の期待値を補正する値であり、補正データ1004の元となる値である。補正値は、好適には、実際の補正値とソルト値との演算結果値がよい。なお、ステップS1511における補正値の生成は、後述するステップS1513において補正データ1004を生成する前であればよい。
そして、制御コマンドデータ1001が所定の制御コマンドである場合、主制御部201は、制御コマンドデータ1001および付随データ1002をセットする(ステップS1512)。また、主制御部201は、ステップS1511において生成した補正値を用いて補正データ1004を生成する(ステップS1513)。ステップS1513においては、たとえば暗号化演算式によって補正データ1004を生成する。なお、暗号化演算による暗号化処理を、2回以上おこなってもよい。
つぎに、主制御部201は、制御コマンドデータ1001、付随データ1002、補正データ1004を含む補正データ付制御信号1030を周辺部に送信する(ステップS1514)。なお、ステップS1514においては、所定のコマンドに付随データ1002がセットされた制御コマンドデータ1001と、補正データ1004とを、別々に周辺部に送信してもよい。また、この場合、送信順序は、順不同でよい。
周辺部は、ステップS1514で送信された補正データ付制御信号1030を受信する(ステップS1515)。つぎに、周辺部は、補正データ1004を復元する(ステップS1516)。ステップS1516においては、ステップS1513において用いた暗号化演算式に対応する復号化演算式によって補正データ1004を復元し、補正値を取得する。
つぎに、ステップS1516において取得された補正値を用いて期待値補正処理をおこなう(ステップS1517)。なお、たとえば周辺部にあらかじめ期待値が保持されていない場合、ステップS1517において、周辺部は、他の制御部から期待値を取得し、取得された期待値に期待値補正処理をおこなう。そして、周辺部は、制御コマンドデータ1001および付随データ1002に基づく処理をおこなう(ステップS1518)。
なお、具体的には、ステップS1517において、あらかじめ保持されていた期待値(旧期待値)が、補正処理によって補正された期待値(新期待値)となる。そして、周辺部は、この補正された期待値(新期待値)を主制御部201の照合用の期待値として保持する。
つぎに、図16に示すように、主制御部201は、認証データ1003およびダミー認証データ1005の送信処理をおこなう。図16において、当初の残ダミー認証データ数は0である。このため、主制御部201は、まず、任意の方法で今回の認証処理に用いる認証データの生成に用いるデータ量を決定する。たとえば、全データ量が12バイトあり、検査値の生成に用いるデータ量を、それぞれ7バイト、5バイトとすると、2つの検査値を生成することになり、今回の分割数=2となる(ステップS1521)。主制御部201は、プログラムデータ格納部1100の先頭から順に7バイト、5バイトのデータを読み出し、それぞれのデータを用いて2つの検査値(第1検査値および第2検査値)を算出し、さらに暗号化処理をおこなって2つの認証データ1003(第1認証データおよび第2認証データ)を生成する(ステップS1522)。そして、周辺部に対して第1認証データを含む第1認証データ付制御信号を送信する(ステップS1523)。
周辺部は、主制御部201から送信された制御信号(第1認証データ付制御信号)を受信する(ステップS1524)。周辺部は、残ダミーデータ数が0であるか否かに基づいて、受信したデータが認証データ付制御信号1020であるかダミー認証データ付制御信号1040であるかを判断する。この時点では残ダミーデータ数は0なので、周辺部は受信したデータが認証データ付制御信号1020であると判断し(ステップS1525)、第1認証データ付制御信号内の第1認証データを復号化して第1検査値を取得し、期待値と照合する。この場合、期待値と検査値は不一致であるため、認証は不成立となる(ステップS1526)。
つぎに、主制御部201が第2認証データを含む第2認証データ付制御信号を送信し(ステップS1527)、周辺部が制御信号(第2認証データ付制御信号)を受信する(ステップS1528)。周辺部は、第2認証データ付制御信号内の第2認証データを復号化して第2検査値を取得し、第1検査値と第2検査値とで結合処理をおこない(ステップS1529)、結合結果と期待値とを照合する。今回の場合は、結合結果と期待値とが一致するので、周辺部は主制御部201に対する認証を成立させる(ステップS1530)。
第2認証データ付制御信号を送信後、主制御部201は、分割数に基づいてダミー認証データ1005の送信数を決定する(ステップS1531)。この場合、分割数が2であるため、今回の認証データ付制御信号1020の送信後、2つのダミー認証データ1005を送信するものとする。すなわち、残ダミー認証データ数=2とする。
また、周辺部は、主制御部201の認証が成立した際の検査値の数、すなわち結合数に基づいてこれから受信するダミー認証データ1005の数を認定する(ステップS1532)。この場合、結合数が2であるため、今回の認証データ付制御信号1020の受信後、2つのダミー認証データ1005を受信するものと認定する。すなわち、残ダミー認証データ数=2とする。
主制御部201は、残ダミー認証データ数を決定後、残ダミー認証データ数分のダミー認証データ1005を生成し(ステップS1533)、周辺部にダミー認証データ付制御信号1040を送信する。今回の場合、主制御部201は2つのダミー認証データ1005を生成し、2つのダミー認証データ付制御信号(第1ダミー認証データ付制御信号および第2ダミー認証データ付制御信号)を送信する。なお、上述のように、ダミー認証データ1005の生成タイミングは任意である。すなわち、ダミー認証データ1005は、制御信号(ダミー認証データ付制御信号1040)を送信するごとに生成してもよいし、残ダミー認証データ数が決定されたタイミングで残ダミー認証データ数分だけ生成してもよい。また、あらかじめ適当な数のダミー認証データ1005を生成しておき、必要に応じて使用するようにしてもよい。
主制御部201は、第1ダミー認証データ付制御信号を送信すると(ステップS1534)、残ダミー認証データ数を−1して残ダミー認証データ数=1とする(ステップS1535)。周辺部が制御信号(第1ダミー認証データ付制御信号)を受信すると(ステップS1536)、この時点では残ダミーデータ数は2なので、周辺部は受信したデータがダミー認証データ付制御信号1040であると判断し(ステップS1537)、付加されているデータ(ダミー認証データ)を破棄する(ステップS1538)。そして、残ダミー認証データ数を−1して、残ダミー認証データ数=1とする(ステップS1539)。
つづいて、主制御部201は、第2ダミー認証データ付制御信号を送信すると(ステップS1540)、残ダミー認証データ数を−1して残ダミー認証データ数=0とする(ステップS1541)。周辺部が制御信号(第2ダミー認証データ付制御信号)を受信すると(ステップS1542)、この時点では残ダミー認証データ数は1なので、周辺部は受信したデータがダミー認証データ付制御信号1040であると判断し(ステップS1543)、付加されているダミー認証データを破棄する(ステップS1544)。そして、残ダミー認証データ数を−1して、残ダミー認証データ数=0とする(ステップS1545)。ステップS1545において、周辺部が分割数分のダミー認証データ1005を受信し終えた場合、周辺部は、主制御部201を仮に認証する処理をおこなってもよいし、省略してもよい。
ここまでが一連の認証データ1003およびダミー認証データ1005の送受信処理である。この後、主制御部201は、残ダミー認証データ数が0であるため、ステップS1521のように任意の方法で分割数を決定し、以降のステップと同様の処理をおこなう。以上のような手順を繰り返して、主制御部201および周辺部は認証データ1003およびダミー認証データ1005の送受信をおこない、認証処理を継続しておこなう。
上述した認証処理では、認証データ1003の生成ごとに認証データ1003を生成する際の演算方法が異なる場合、認証データ1003を生成した後(ステップS1522)、検査値の結合結果と期待値の照合がおこなわれる前までに(ステップS1530)、周辺部に補正データ付制御信号1030を送信し、期待値を補正してもよい。
なお、図15および図16のシーケンス図においては、一例として大当たりコマンド以外のコマンドのときに通常の制御信号1010を送信し、大当たりコマンドのときに補正データ付制御信号1030、認証データ付制御信号1020、ダミー認証データ付制御信号1040またはダミー補正データ付制御信号1050を送信してもよい。具体的には、たとえば分割数分の認証データ付制御信号1020を送信し終えるまでの間の大当たりコマンド以外のときに、補正データ1004や認証データ1003の付加されていない通常の制御信号1010を送信してもよい。また、分割数分の認証データ付制御信号1020を送信し終えるまでの間に、通常の制御信号1010を複数回送信してもよいし、送信しなくてもよい。
また、図15および図16のシーケンス図において、周辺部は、ステップS1517において期待値補正をおこなった後に、補正後の期待値(最終期待値)そのものを固定値として保持しなくてもよい。この場合、たとえば製造時から、補正データ1004による補正処理(B)をおこなわないと、主制御部201を仮に認証する処理(C)においては認証が成立となり、認証処理(C)においては認証が不成立となるように設計してもよい。このようにすることで、最終期待値を知り得る者を限定することができ、期待値に関する情報の流出などのリスクを低減することができる。
また、図15および図16のシーケンス図における具体例においては、暗号化演算式および復号化演算式に、排他的論理和を用いたが、四則や暗号演算など、他の演算式を用いてもよい。すなわち、主制御部201および周辺部において、あらかじめ相互で定められている認証方式や演算式であればよい。
また、認証データ1003を用いた認証処理は、認証データ1003を受信する度におこなうのではなく、分割数分の認証データ1003を複数回受信した時点でおこなうこととしてもよい。この場合、周辺部は、たとえば、第1制御コマンドデータおよび第1制御データとともに第1認証データを受信した場合、認証処理をおこなわずに、第1制御コマンドデータおよび第1制御データに基づく処理をおこなう。そして、周辺部は、第2制御コマンドデータおよび第2制御データとともに第2認証データを受信した場合、第2制御コマンドデータおよび第2制御データに基づく処理をおこなう前に、第1認証データを用いた認証処理をおこなう。このとき、周辺部は、第1認証データと第2認証データの両方を用いて認証処理をおこなってもよい。このように、複数の認証データ1003を受信した時点で認証処理をおこなえば、エラーによって制御信号に余分なデータが付加されてしまった場合などに、誤って認証処理をおこなってしまうことを防ぐことができる。
また、上述した説明では、大当たりコマンドを送信する際に補正データ1004、認証データ1003、ダミー認証データ1005およびダミー補正データ1006を送信することとしてもよい。また、他の制御コマンドを送信する際に補正データ1004、認証データ1003、ダミー認証データ1005およびダミー補正データ1006を送信することとしてもよい。具体的には、たとえば、電源オンコマンドや大当たりリーチコマンド、大当たり開始コマンド、大当たり終了コマンド、客待ちデモコマンド、はずれコマンドなどのうち、いずれか(複数でも可)を送信する際に認証データ1003を送信することとしてもよい。このようにすることで、さらに補正データ1004や認証データ1003の送信されたタイミングが第三者に見破られることを防ぎ、補正データ1004や認証データ1003が窃取されることをより防ぐことができる。
以上説明したように、本実施の形態にかかる電子機器(たとえば、ぱちんこ遊技機)では、所定の制御コマンドを送信する際、周辺部において主制御部の照合に用いる期待値を補正するための補正データを用いて期待値補正処理をおこなう。また、補正データは、主制御部に固有の値や主制御部に記憶されたプログラムデータによって生成される。たとえば、補正データは主制御部が変更された場合、変更前の主制御部に固有の値と、変更後の主制御部に固有の値との差分によって生成される。これによって、主制御部の照合に用いる最終期待値(補正後の期待値)そのものを、主制御部から周辺部に送信しないため、照合に用いる最終期待値が第三者に窃取されることを防ぐことができる。
また、本実施の形態にかかる電子機器では、主制御部は、分割数分の認証データ中の最後に送信される認証データを送信する前までに、任意のタイミングで、補正データを送信する。したがって、補正データおよび分割数分の認証データをランダムに送信することができるため、補正データの送信されるタイミング、すなわち補正処理のおこなわれるポイントが第三者に見破られることを防ぐことができる。したがって、期待値に関する情報の流出などのリスクをより軽減することができる。
また、本実施の形態にかかる電子機器では、主制御部は、認証データを送信した後に、ダミー認証データを周辺部に送信する。第三者は認証データとダミー認証データとを識別することができないため、認証データがいつ送信されたのかを第三者に知られることを防ぐことができる。また、主制御部は、周辺部に補正データを送信するタイミングで、補正データを送信するか、補正データのダミーデータ(ダミー補正データ)を送信するかを選択して送信する。これによって、補正データがいつ送信されたのかを第三者に知られることを防ぐことができる。したがって、補正データや認証データが第三者によって窃取されることを防ぐことができる。
また、本実施の形態にかかる電子機器では、主制御部は、補正データまたはダミー補正データを周辺部に送信する際に、同様の種類の制御コマンドに補正データまたはダミー補正データを付加する。これによって、同様の種類の制御コマンドを送信するときにのみ、補正処理またはダミー補正処理をおこなうことができる。このため、全ての制御コマンドを送信するときに補正処理またはダミー補正処理をおこなうのと比べると、これらの処理による主制御部や周辺部の処理負荷を減らすことができる。
また、本実施の形態にかかる電子機器は、同様の種類の制御コマンドに補正データまたはダミー補正データを付加することで、補正データを付加した制御コマンドの種類を第三者に知られたとしても、補正データを送信するタイミングを第三者に知られることを防ぐことができる。このため、補正データが第三者によって窃取されることを防ぐことができる。
また、本実施の形態にかかる電子機器では、主制御部は、認証データを生成することにより知り得た分割数に基づいてダミー認証データを生成して周辺部に送信する。また、周辺部は、主制御部に対する認証が成立した際に2項演算の対象となった認証データの数(結合数)に基づいて、認証データとダミー認証データとを識別する。分割数および結合数は主制御部および周辺部のみが知る値なので、第三者は、認証データとダミー認証データとを識別することができない。このため、第三者によって分割数分の認証データが窃取され、分割数分の認証データが結合されることによって、主制御部に対する認証を成立させるための値が不正に窃取される可能性を低減することができる。これにより、主制御部と周辺部との間の認証処理の強度を向上させることができる。
また、本実施の形態にかかる電子機器では、認証データは、主制御部に記憶されたデータを分割して生成される。分割数は主制御部のみが知る値であるため、第三者は分割数を知ることができない。このため、たとえば第三者に1つの認証データが知られたとしても、分割数分の認証データを結合して算出された値が第三者に知られることを防ぐことができる。したがって、認証に関する情報の流出などのリスクをより軽減することができる。
また、本実施の形態にかかる電子機器では、周辺部は、認証データと同じ数のダミー認証データを受信し、認証データを受信した場合と同様の処理をおこなう。これによって、周辺部は、周辺部における処理時間または処理によって発生する熱量などが正規な認証データを受信し認証処理をおこなうのと同様となるように、主制御部を仮に認証する処理(ダミー認証処理)をおこなうことができる。したがって、第三者に周辺部において認証処理をおこなうタイミングを知られることを防ぐことができるため、より認証の強度を上げることができる。
また、本実施の形態にかかる電子機器では、周辺部は、認証データの直後に受信した結合数分の値がダミー認証データであるとして識別することができる。これにより、周辺部の処理負荷を増大させることなく認証データとダミー認証データとを識別して、認証処理をおこなうことができる。
また、本実施の形態にかかる電子機器では、周辺部は、ダミー補正データを受信した場合、実際には期待値を変更することなく、期待値を補正したようにみせかける処理(ダミー補正処理)をおこなうことができる。これによって、周辺部は、補正処理をおこなうタイミングで、補正処理に代えてダミー補正処理をおこなうことができる。このため、補正処理をおこなうタイミングを第三者に知られることを防ぐことができる。
また、本実施の形態にかかる電子機器では、周辺部は、認証データを受信した後に、ダミー認証データを受信する。上述したように、第三者は、認証データとダミー認証データとを識別することができない。このため、認証処理をおこなうタイミングを第三者に知られることを防ぐことができる。したがって、認証の強度を上げることができる。
また、本実施の形態にかかる電子機器では、周辺部は、制御コマンドの種類によって、補正データと、ダミー補正データと、認証データまたはダミー認証データとを識別することができる。ここで、周辺部は、分割数に基づき認証データとダミー認証データとを識別する。これにより、周辺部は、周辺部の処理負荷を増大させることなく、補正データ、ダミー補正データ、認証データまたはダミー認証データを識別して、補正処理、ダミー補正処理、認証処理またはダミー認証処理をおこなうことができる。これによって、設定の難易度を低くすることができ、設定にかかる時間を短縮することができる。
また、本実施の形態にかかる電子機器では、認証データは、正規の主制御部に格納されたプログラムデータによって生成される。そして、認証データを用いて算出された値と、補正データを用いて補正された期待値とが一致する場合、主制御部を正規の主制御部と認証することができる。このため、正規の主制御部が不正な制御基板に交換されたり、正規の主制御部と周辺部との間に不正な制御基板が取り付けられたことを検知することができる。また、主制御部が他の正規の主制御部に変更された場合、誤って変更後の主制御部を不正な制御基板と認証することを防ぐことができる。さらに、今回送信する制御コマンドデータや付随データを含めて補正データや認証データを生成することとすれば、不正な制御基板による補正データや認証データの再利用を防止して、電子機器への不正を防止することができる。
また、本実施の形態にかかる電子機器は、主制御部の照合に用いる最終期待値(補正後の期待値)そのものである固定値を周辺部に保持させないことで、照合に用いる最終期待値を知り得る者を限定することができる。この場合、具体的には、たとえば製造時から、期待値の補正処理をおこなわないと、主制御部を仮に認証する処理においては認証が成立となり、認証処理においては認証が不成立となるように設計してもよい。これにより、期待値に関する情報の流出などのリスクを軽減することができる。
また、本実施の形態にかかる電子機器では、主制御部は、認証データを付加した後、所定の制御コマンドを送信する際に、ダミー認証データを付加することができる。ダミー認証データは、認証処理に用いられないデータであり、周辺部はダミー認証処理をおこなうことができる。したがって、認証データの送信されるタイミング、すなわち認証処理のおこなわれるポイントが第三者に見破られることを防ぎ、認証に関する情報の流出などのリスクをより軽減することができる。
また、本実施の形態にかかる電子機器では、主制御部が周辺部に大当たりコマンドを送信する場合に、周辺部において主制御部を照合するための期待値の補正処理をおこない、さらに主制御部の正当性を認証する認証処理をおこなう。よって、大当たり状態中のタイミング設計のみを変更することによって、既存のぱちんこ遊技機に補正処理および認証処理を実行させることができる。また、補正処理や認証処理を全ての制御コマンドの送信時におこなう場合と比べると、大当たりコマンドが送信されている期間(大当たり状態である期間)に認証処理や補正処理をおこなうのみであるため、主制御部や周辺部の処理負荷を減らすことができる。
また、本実施の形態にかかる電子機器は、認証データまたは補正データを付加する制御コマンドを大当たりコマンドとした場合、大当たりコマンドは大当たり中の各ラウンドごとに送信されるため、大当たり状態にある一定期間中に補正処理と認証処理とをおこなうこととなる。このように、補正処理と認証処理との間隔が少ないため、認証処理の確度を向上させることができ、主制御部や周辺部への不正をより確実に検知することができる。
また、本実施の形態にかかる電子機器は、主制御部において、分割数そのものを決定するのではなく、認証データの生成に用いるデータ量を決定する。このため、分割数が不正に窃取される可能性を低減することができる。
なお、本実施の形態で説明した主制御部および周辺部の制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記憶媒体に記憶され、コンピュータによって記憶媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。