<<実施の形態1>>
以下、図面を参照して本発明を実施するための形態である実施の形態1について説明する。
図1は、本発明の実施の形態1に係る遊技機の一つであるパチンコ遊技機1の機能構成を示すブロック図である。このパチンコ遊技機1は、主制御部10と、後段部20と、周辺部30とを備えている。主制御部10は、データ記憶手段11と、決定手段12と、個体検査値生成手段13と、動作検査値生成手段14とを備えている。データ記憶手段11には、主制御部10で用いられるプログラム等のデータが記憶されている。決定手段12は、データ記憶手段11に記憶されているデータのうち所定のデータを分割する数である分割数を決定する。ここで、所定のデータとは、データ記憶手段11に記憶されているデータの全部又は一部である。
個体検査値生成手段13は、主制御部10の個体としての正当性(アイデンティティ)を認証(以下、個体認証という)するために用いる個体検査値を生成する。具体的には、個体検査値生成手段13は、データ記憶手段11に記憶されている所定のデータを決定手段12が決定した分割数で分割し、分割された各データに対して結合法則を満たす2項演算(例えば、加算、乗算、排他的論理和)を行って、分割数分(分割数と同数)の個体検査値を生成する。
動作検査値生成手段14は、主制御部10の処理動作ごとに出力される各種データ信号(例えば、主制御部10が周辺部30に対し、ある演出処理を実行させために出力する制御コマンドを表した制御信号など)が、後段部20及び周辺部30へ正規のプロセスで連続的に送信されているか(パチンコ遊技機1の動作が継続性を有しているか)を認証(以下、動作認証という)するために用いる動作検査値を生成する。
具体的には、動作検査値生成手段14は、動作検査値の一つとして、主制御部10の処理動作(例えば、制御コマンドの出力)に伴って生成されるパケット情報を用いて複数の同期コードを生成する。このパケット情報は、連続して生成された二つのパケット情報同士が、予め設定した所定の相関関係を有するように生成されているため、受信したパケット情報同士の差分が常に所定の相関関係を有していれば、主制御部10の処理動作は正規の動作順序で実行されていることがわかる。パケット情報は、相関関係の違いによって複数の種類に分類される。また、動作検査値生成手段14は、個体検査値生成手段13によって生成された個体検査値の数(決定手段12によって決定された分割数)に基づいて、複数種類のパケット情報の中から次回の同期コードの生成に用いるパケット情報の種類を選択する。
また、動作検査値生成手段14は、動作検査値の一つとして、主制御部10が行う処理動作ごとに時系列的に一定の関係性を保って変動する値を用いて複数の動作コードを生成する。この変動する値とは、例えば、主制御部10によって実行されるプログラムにおいて所定の機能を実行するための処理ごとに予め重複なく割り当てられた番号(以下、機能番号という)や、主制御部10における認証処理の実行回数(以下、認証回数という)などである。
その後、主制御部10は、生成された分割数分の個体検査値に暗号化処理を施して得られた分割数分の個体認証データのそれぞれと、生成された複数の同期コード及び複数の動作コードからなる複数の動作検査値に暗号化処理を施して得られた複数の動作認証データのそれぞれとを、出力する制御コマンドに付加して後段部20又は周辺部30に送信する。
一方、後段部20は、期待値記憶手段21と、中間認証手段22を備えている。期待値記憶手段21は、主制御部10を構成する動作検査値生成手段14で生成された同期コードに含まれるパケット情報の種類ごとに予め設定された所定の相関関係を一義的に表す情報を期待値(以下、同期コード期待値という)として予め記憶している。また、期待値記憶手段21は、主制御部10を構成する動作検査値生成手段14で生成された動作コードの種類ごとに予め設定され、主制御部10の動作順序を判別可能なように関連付けられたデータを期待値(以下、動作コード期待値)として予め記憶している。なお、同期コード期待値と動作コード期待値とを総称して中間動作認証期待値という。中間認証手段22は、主制御部10から周辺部30を介して送信された動作認証データを用いて中間動作認証を行う。
具体的には、中間認証手段22は、まず、主制御部10から周辺部30を介して送信された動作認証データを用いて、主制御部10の処理動作に対する中間動作認証を行う。中間動作認証では、主制御部10より送信された動作認証データから同期コードを抽出し、抽出した同期コードに含まれるパケット情報が予め設定された所定の相関関係を有するかを確認するため、連続して生成された二つのパケット情報同士の差分(減算に限られない)を求める。そしてこの差分値が示す情報が、期待値記憶手段21に記憶されている同期コード期待値と同一であるかを照合する。また、中間動作認証では、主制御部10より送信された動作認証データから動作コードを抽出し、抽出した動作コードに含まれる機能番号や認証回数を参照し、期待値記憶手段21に記憶されている動作コード期待値と一致するか否かを照合する。そして後段部20は、これらの照合で得られた同期コードを用いた中間動作認証の結果の情報及び動作コードを用いた中間動作認証の結果の情報を併せて、中間動作認証結果として保持する。
その後、後段部20は、中間動作認証結果に暗号化処理を施して中間認証情報を生成し、周辺部30へ送信する。
周辺部30は、期待値記憶手段31と、認証手段32とを備えている。期待値記憶手段31は、主制御部10を構成するデータ記憶手段11に記憶されている所定のデータを用いて2項演算を行って得られた演算値を期待値(以下、個体認証期待値という)として予め記憶している。加えて、期待値記憶手段31は、後段部20から送信される今回の中間動作認証結果のうち、同期コードを用いた中間動作認証結果が同一を示すものであるか非同一を示すものであるかを予測した情報を期待値(以下、動作認証期待値という)として記憶している。認証手段32は、後段部20から送信された中間認証情報に含まれる中間動作認証結果を用いて動作認証を行い、個体認証及び動作認証の両認証処理(以下、認証処理という)の結果からパチンコ遊技機1の正規性を認証する。
具体的には、周辺部30は、まず、主制御部10から送信された動作認証データをそのまま或いは制御コマンドに付加した動作認証データ付制御信号として後段部20に送信する。そして、主制御部10から送信された個体認証データを用いて個体認証を行う。より詳細には、認証手段32は、制御コマンドに付加されて主制御部10から送信された個体認証データ及び動作認証データのうち、個体認証データから個体検査値を抽出し、抽出した個体検査値に対して、上記結合法則を満たす2項演算を行った演算結果と、期待値記憶手段31に記憶されている個体期待値とが一致するか否かによって個体認証が成功したか否かを判断する。
次に、認証手段32は、後段部20より送信された中間動作認証結果や、個体認証が成功したときの個体検査値の数(以下、結合数という)を用いて動作認証を行う。より詳細には、認証手段32は、後段部20より送信された中間動作認証結果に含まれる同期コードを用いた中間動作認証の結果の情報(以下、同期コードでの中間動作認証結果といい、同一又は非同一を示す)と、期待値記憶手段31に予め記憶されている今回の動作認証期待値(今回の認証に関する処理において、主制御部10から周辺部30を介して後段部20に送信されたパケット情報同士の差分値が示す情報と、後段部20が保持する中間動作認証期待値とが同一か否かを予測した情報であって、同一又は非同一を示す)とが一致するか否かを判断する。その後、認証手段32は、後段部20より送信された中間動作認証結果に含まれる動作コードを用いた中間動作認証の結果の情報(以下、動作コードでの中間動作認証結果といい、成功又は不成功を示す)が成功であることを確認して、同期コード及び動作コードの双方で動作認証が成功したか否かを判断する。また、認証手段32は、認証手段32による個体認証が成功したときの個体検査値の数(結合数)に基づいて、次回の認証に関する処理に用いる動作認証期待値を同一又は非同一のいずれかを選択する。
その後、周辺部30は、認証手段32の個体認証及び動作認証のいずれもが成功した場合に、パチンコ遊技機1の正規性を認証し、認証結果に応じた処理を行う。
図2は、本発明の実施の形態1に係る遊技機の1つであるパチンコ遊技機1の外観構成を示す正面図である。また、図3は、図2に示すパチンコ遊技機1の電気的構成を示すブロック図である。
本実施の形態1に係るパチンコ遊技機1は、遊技盤101を備えている。遊技盤101の図2において右下方であって、枠部材110の右下部には、遊技者によって操作され、発射部292(図3参照)を作動させるための操作ハンドル113が設けられている。操作ハンドル113は、遊技者側に突出する形状を呈している。操作ハンドル113は、発射部292を作動させて遊技球を発射させる発射指示部材114を備えている。発射指示部材114は、操作ハンドル113の外周部において、遊技者から見て右回りに回転可能に設けられている。発射部292は、発射指示部材114が遊技者によって直接操作されている場合に、遊技球を発射させる。公知の技術であるため説明を省略するが、操作ハンドル113には、遊技者が発射指示部材114を直接操作していることを検出するセンサなどが設けられている。
発射部292の作動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。遊技領域103には、複数の釘(図示略)や、遊技球の落下方向を変化させる風車(図示略)や、入球口が配設されており、遊技球を各種の方向に向けて落下させるようにしている。ここで、「入球口」は、いずれも後述する第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129cの総称である。
遊技盤101の略中央部分には、図柄表示部104が配置されている。図柄表示部104は、例えば、液晶ディスプレイ(LCD)やプラズマディスプレイパネル(PDP)等のディスプレイを有している。図柄表示部104の下方には、遊技領域103に向けて打ち込まれた遊技球を受入れ可能な第1始動口105が配置されている。第1始動口105の下方には、第2始動口120が配置されている。第2始動口120は、一対の可動片(図示略)が閉状態であるときは遊技球を受け入れることが不可能又は受け入れ困難となっており、この一対の可動片が開状態であるときは、第1始動口105よりも遊技球の受け入れが容易となる。
また、図柄表示部104の左側には、入賞ゲート106が配設されている。入賞ゲート106は、遊技球の通過を検出し、第2始動口120を一定時間だけ開放させる普通図柄の抽選を行うために設けられている。図柄表示部104の左側部や下方等には、複数の普通入賞口107が配設されている。各普通入賞口107に遊技球が入球すると、所定の賞球数(例えば、10個)の払い出しが行われる。遊技領域103の最下部には、どの入球口にも入球しなかった遊技球を回収する回収口108が設けられている。
図柄表示部104は、後述する演出制御部203(図3参照)から第1始動口105又は第2始動口120に遊技球が入球したことが報知されたときに、複数の装飾図柄の変動表示を開始し、所定時間経過後に当該装飾図柄の変動を停止させる。この停止時に特定図柄(例えば、「777」)が揃うと、遊技者は第1大当たり遊技(長当たり遊技)を実行する権利を獲得したこととなり、その後、第1大当たり遊技(長当たり遊技)が開始される。第1大当たり遊技(長当たり遊技)が開始されると、遊技領域103の下方に位置する第1大入賞口開閉装置109における第1大入賞口開閉扉109aが、一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球に対応する賞球が払い出される。
一方、図柄表示部104における上記装飾図柄の停止時に上記特定図柄とは別の特定図柄(例えば、「737」)が揃うと、遊技者は第2大当たり遊技(短当たり遊技)を実行する権利を獲得したこととなり、その後、第2大当たり遊技(短当たり遊技)が開始される。第2大当たり遊技(短当たり遊技)が開始されると、第1大入賞口開閉装置109の右斜め上方に位置する第2大入賞口開閉装置129における第2大入賞口開閉扉129aが、第1大入賞口開閉扉109aの開閉動作に比して短い時間にて一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球がある場合、これに対応する賞球が払い出される。
また、遊技盤101の遊技領域103の外周には、枠部材110が設けられ、開口部から遊技領域103が遊技者側に露出している。枠部材110は、遊技者側に突出する形状を呈している。枠部材110において、遊技領域103の左上部及び右下部には、演出ライト(ランプユニット)111a及び111bがそれぞれ設けられている。各演出ライト111a及び111bは、複数のライト112を備えている。各演出ライト111a及び111bは、上下駆動モータ(図示略)でそれぞれ駆動されることにより、それぞれが備える複数のライト112から照射される光の方向を上下方向、すなわち、パチンコ遊技機1の正面にいる遊技者の頭部と腹部を結ぶ方向に平行な方向に変更可能に構成されている。
また、各ライト112は、各演出ライト111a及び111bを構成する回転駆動モータ(図示略)で駆動されることにより、それぞれ所定半径を有する円の円周方向に移動する。上記構成により、各ライト112から照射された光を回転移動させつつ、各演出ライト111a及び111b全体から照射された光を上下移動させる演出を行うことができる。さらに、枠部材110の下部には、遊技球が供給される受け皿ユニット119が設けられている。この受け皿ユニット119には、貸し玉装置(図示略)から貸し出される遊技球が供給される。
図2において、図柄表示部104の右側には、演出用の役物(以下、「演出役物」という)115が設けられている。演出役物115は、キャラクターとして人間の上半身(特に頭部)を模式的に表している。演出役物115は、キャラクターの瞼部116を開閉して、キャラクターが瞬きをするが如くに、瞼部116を上下方向に沿って移動可能に設けられている。また、演出役物115は、キャラクターの頭部を左右方向に移動可能に設けられている。
また、枠部材110において、操作ハンドル113の左側には、遊技者により操作されるチャンスボタン117が設けられている。チャンスボタン117の操作は、例えば、遊技中における特定のリーチ演出に際し、チャンスボタン117の操作を促すガイダンスが表示されている間だけ有効となる。
加えて、枠部材110には、演出効果音又は不正を知らしめる音響を出力するスピーカ277(図3参照)が組み込まれている。このスピーカ277は、高音・中音・低音の領域を出力できるタイプのものであり、通常演出時は高音・中音・低音をバランスよく出力するが、例えば、特別演出時又は不正等があった場合には、周りによく聞こえるように高音領域を高く出力するように制御される。
次に、本発明の実施の形態1に係るパチンコ遊技機1の電気的構成について、図3に示すブロック図を参照して説明する。パチンコ遊技機1は、電気的な構成上は、制御手段200に、第1始動口検出部221等の各種検出手段や、図柄表示部104等の各種演出手段、役物作動装置231、払出部291、発射部292などが接続されて構成されている。制御手段200は、図3に示す例では、主制御部10と、後段部20と、演出制御部203と、賞球制御部204と、ランプ制御部205とから構成されている。
<主制御部>
主制御部10は、CPU10aと、ROM10bと、RAM10cと、カウンタ回路(タイマ)(図示略)等を備えている。CPU10aは、パチンコ遊技機1の遊技に係る基本動作を制御し、ROM10bに予め記憶されているプログラム(プログラムコード)に基づき、遊技内容の進行に伴う基本処理を実行する。ROM10bには、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行するためのプログラムコードが予め記憶されている。ROM10bの全部又は一部は、例えば、図1に示すデータ記憶手段11に対応させることができる。RAM10cは、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行する際に行う演算処理において、データ等のワークエリアとして機能する。カウンタ回路(タイマ)は、経過時間をカウントする。
この主制御部10では、第1始動口105又は第2始動口120への遊技球の入球を契機として、大当たりの抽選を行うとともに、この抽選結果に基づいて、ROM10bに記憶されている演出に係わるコマンドの選択を行う。
主制御部10の入力側には、第1始動口検出部221と、第2始動口検出部225と、ゲート検出部222と、普通入賞口検出部223と、第1大入賞口検出部214と、第2大入賞口検出部224とが接続されている。第1始動口検出部221は、第1始動口105に遊技球が入球したことを検出して検出結果を主制御部10に送信する。第2始動口検出部225は、第2始動口120に遊技球が入球したことを検出して検出結果を主制御部10に送信する。ゲート検出部222は、入賞ゲート106を遊技球が通過したことを検出して検出結果を主制御部10に送信する。普通入賞口検出部223は、普通入賞口107に入球した遊技球を検出して検出結果を主制御部10に送信する。第1大入賞口検出部214は、第1大入賞口109cに入球した遊技球を検出して検出結果を主制御部10に送信する。第2大入賞口検出部224は、第2大入賞口129cに入球した遊技球を検出して検出結果を主制御部10に送信する。上記各検出部は、例えば、近接スイッチなどを用いて構成することができる。
また、この主制御部10の出力側には、役物作動装置231が接続されている。本実施の形態1では、役物作動装置231は、第1大入賞口開閉扉109a及び第2大入賞口開閉扉129aをそれぞれ開閉させる第1大入賞口開閉ソレノイド109b及び第2大入賞口開閉ソレノイド129bと、第2始動口120を開閉させる第2始動口開閉ソレノイド120bとから構成されている。
役物作動装置231は、主制御部10によって制御され、長当たり遊技時に、第1大入賞口開閉ソレノイド109bを通電して第1大入賞口開閉扉109aを開放したり、短当たり遊技及び小当たり遊技時に、第2大入賞口開閉ソレノイド129bを通電して第2大入賞口開閉扉129aを開放したり、また、上記普通図柄の当選によって第2始動口開閉ソレノイド120bを通電して第2始動口120を開閉したりする。
また、主制御部10は、以上概略説明した、パチンコ遊技機1の遊技に係る基本動作制御の他、本実施の形態1の特徴である、不正防止のために主制御部10の認証に関する処理を実行する手段を備えている。この認証に関する処理を実行する手段は、CPU10aがROM10bに予め記憶されているプログラム(プログラムコード)を実行することにより実現される。この認証に関する処理は、以下に示す[1]〜[7]の通りであるが、[3]等に示す暗号化処理については必要に応じて実行される。
[1]分割数の決定
主制御部10は、ROM10bに予め記憶されている所定のデータ、例えば、所定のプログラムコード(命令コードや固定データ)を分割する数である分割数を決定する。以下、所定のデータの一例として、所定のプログラムコードを用いて説明する。主制御部10は、例えば、乱数生成回路(図示略)や上記プログラムコードを構成する乱数生成プログラムによって生成された値を分割数としたり、主制御部10の他の処理において生成される値を所定のタイミングで参照し、その値を分割数としたりすることができる。この場合、分割数の上限を予め設定しておいてもよい。上記分割数を決定する処理を実行する手段は、例えば、図1に示す決定手段12に対応させることができる。本実施の形態1では、主制御部10は乱数を用いて分割数を決定しているが、これは分割数を決定するための一実施例であって、乱数を用いないで分割数を決定するようにしてもよい。例えば、主制御部10に予め分割数を決定するためのテーブルを保持させておき、分割数を決定するタイミング等で主制御部10がそのテーブルから予め定めた規則に応じて分割数を取得するようにしてもよい。
[2]個体検査値の生成
次に、主制御部10は、ROM10b内の所定のプログラムコードが予め記憶されている記憶領域を[1]の処理において決定された分割数で分割する。そして、主制御部10は、ROM10bの分割された各記憶領域に記憶されているプログラムコードに対して2項演算を行って、主制御部10を個体認証するための分割数分の個体検査値を生成する。なお、個体検査値の生成方式(例えば、個体検査値の生成に用いる結合法則を満たす2項演算の種類等)については、主制御部10と演出制御部203との間で同一のものを予め設定しておけばよい。
「結合法則を満たす2項演算」とは、2項間の演算を行う2項演算のうち、演算子を§とし、任意の数をa,b,cとした場合、式(1)が成立する2項演算をいう。
(a§b)§c=a§(b§c)=a§b§c ・・・(1)
すなわち、「結合法則を満たす2項演算」とは、演算対象a,b,cについて、1度に2項演算を行う演算対象としてどのように分割して演算子§により演算した場合であっても、得られる演算結果が同一値となるような2項演算をいう。ただし、任意の数a,bに対してa♪bの演算結果が常に0になるような演算子♪は、演算子§から除く。上記結合法則を満たす2項演算の定義された集合を一般に半群と呼ぶことから、このような2項演算を以下では半群演算と呼ぶことにする。半群演算としては、例えば、加算、乗算、排他的論理和がある。
以下、半群演算の簡単な具体例を2つ挙げる。
まず、所定のプログラムコードを分割して得られた各データブロックを構成する各データをD0,D1,D2,・・・,DN(Nは各データブロックの最終アドレス)とする。
(A)半群演算として加算(演算子+)が選択されている場合は、式(2)を計算する。
D0+D1+D2+・・・+DN …(2)
(B)半群演算として排他的論理和(演算子XOR)が選択されている場合は、式(3)を計算する。
D0 XOR D1 XOR D2 XOR ・・・ DN …(3)
各個体検査値の生成方法について、図4を参照して説明する。
図4は、主制御部10における個体検査値の生成方法を模式的に示す説明図である。個体検査値は、主制御部10がROM10bに予め記憶されている所定のデータを用いて生成する。より詳細には、主制御部10は、ROM10bの所定の記憶領域を任意の分割数で分割した上で、分割した記憶領域にそれぞれ記憶されたプログラムコードに対して結合法則を満たす2項演算(半群演算)を行って個体検査値を算出する。半群演算としては、上記のように、例えば、加算、乗算や排他的論理和演算などが挙げられる。
(個体検査値生成の計算例)
個体検査値生成の計算の一例を以下に示す。
図4に示すプログラムコード記憶領域400には、12個のプログラムコード(「0x01」〜「0x09」,「0x0A」〜「0x0C」)が記憶されている。分割数を3とした場合、プログラムコード記憶領域400は、例えば、4個のプログラムコードを含む第1ブロック400a、3個のプログラムコードを含む第2ブロック400b、5個のプログラムコードを含む第3ブロック400cに分割できる。主制御部10は、これらの各ブロックに記憶されたプログラムコードに対してそれぞれ半群演算を行って個体検査値を算出する。なお、上記ブロック内のプログラムコード数は例示である。分割したブロック内のプログラムコード数は固定値としてもよいし、ランダムに決定してもよい。
例えば、半群演算として式(2)の加算を用いる方法を方式Aとすると、第1ブロック400aに記憶された4個のプログラムコード「0x01」、「0x02」、「0x03」、「0x04」を加算して第1個体検査値「0x0A」が得られる。同様に、第2ブロック400bに記憶された3個のプログラムコード「0x05」、「0x06」、「0x07」を加算して第2個体検査値「0x12」が、第3ブロック400cに記憶された5個のプログラムコード「0x08」、「0x09」、「0x0A」、「0x0B」、「0x0C」を加算して第3個体検査値「0x32」がそれぞれ得られる。
また、例えば、半群演算として式(3)の排他的論理和演算を用いる方法を方式Bとすると、第1ブロック400aに記憶された4個のプログラムコード「0x01」、「0x02」、「0x03」、「0x04」に排他的論理和演算を行い第1個体検査値「0x04」が得られる。同様に、第2ブロック400bに記憶された3個のプログラムコード「0x05」、「0x06」、「0x07」に排他的論理和演算を行い第2個体検査値「0x04」が、第3ブロック400cに記憶された5個のプログラムコード「0x08」、「0x09」、「0x0A」、「0x0B」、「0x0C」に排他的論理和演算を行い第3個体検査値「0x0C」がそれぞれ得られる。
本実施の形態1では、主制御部10は、後述するように、パチンコ遊技機1の正規性を認証するためのデータを生成し、生成したデータを制御コマンドに付加して後段部20又は演出制御部203に送信する。ここでは、制御コマンドに付加される主制御部10の個体としての正当性を認証するためのデータを総称して「個体認証データ」と呼ぶことにする。個体認証データは、各個体検査値、又はこれら個体検査値に対して暗号化処理を施すことにより得られたデータである。また、制御コマンドに付加されるパチンコ遊技機1の動作の継続性を認証するためのデータを総称して「動作認証データ」と呼ぶことにする。動作認証データは、各動作検査値、又はこれら動作検査値に対して暗号化処理を施すことにより得られたデータである。以下、本実施の形態1では、個体認証データ又は動作認証データは、個体検査値又は動作検査値に暗号化処理を施して得られたデータとして説明するが、本発明はこれに限定されず、個体検査値又は動作検査値そのものを個体認証データ又は動作認証データとして認証に関する処理を行ってもよい。この場合、主制御部10において個体検査値又は動作検査値に暗号化処理を施す必要がなく、後段部20又は演出制御部203で個体検査値又は動作検査値を抽出する際に個体認証データ又は動作認証データの復号化処理を施す必要がないため、認証に関する処理を簡易化することができ、処理負荷の増大を抑制することができる。
なお、上記個体検査値を生成する処理を実行する手段は、例えば、図1に示す個体検査値生成手段13に対応させることができる。
[3]個体認証データの生成
主制御部10は、上記[2]の処理で生成した各個体検査値に対して暗号化処理を施し、制御コマンド(制御コマンドデータ及び付随データ)に付加する個体認証データを生成する。ここで、暗号化方式としては、例えば、シーザー暗号、単一換字暗号、エニグマなど、比較的簡易なものを採用することができる。以下において用いる暗号化方式についても同様である。シーザー暗号は、メッセージ(平文)を構成する文字を一定の文字数だけずらすことによって暗号化する暗号化方式である。単一換字暗号は、平文を構成する文字を別の文字に変換することによって暗号化する暗号化方式である。エニグマは、鍵暗号鍵を用いたエニグマの設定、エニグマを用いた通信鍵の暗号化、通信鍵を用いたエニグマの再設定、平文の暗号化及び、暗号化された通信鍵と暗号化された平文の結合による通信文の生成という過程を経る暗号化方式である。
主制御部10において、各個体検査値に対して暗号化処理を施すことにより得た各個体認証データを演出制御部203に送信した場合には、何らの処理も施していない各個体検査値をそのまま演出制御部203に送信する場合と比較して、各個体検査値を不正行為者により分析される可能性を低減することができる。なお、主制御部10は、個体検査値ごとで異なる暗号化処理を施してもよい。
上記暗号化処理に対して、更に所定の加工処理を加えてもよい。所定の加工処理としては、例えば、暗号化処理が施された各個体検査値を用いた四則演算又は論理演算等を行って所定のデータ長を有する演算データを得る処理、これらの四則演算又は論理演算等により得られた演算データのビット配列を並び変える処理、上記演算データのビットをシフト又はロテイト(rotate)する処理、暗号化処理が施された各個体検査値を構成する複数のビットを取り出して所定の規則に従って並べて1つのデータを生成する処理などが考えられる。
(個体認証データ生成の計算例)
個体認証データ生成の計算の一例を以下に示す。
図4に示す第1個体検査値「0x0A」から個体認証データを生成することを例にとって説明する。上記の暗号化処理として、個体検査値に制御コマンドデータを加算し、次に、得られたデータから「0x03」を減算する処理を採用する。主制御部10は、第1の個体検査値に上記の暗号化処理を施して個体認証データを生成する。
この個体認証データを付加する制御コマンドデータ及び付随データの値を仮に「0xEE」、及び「0x01」とする。暗号化処理では、第1個体検査値「0x0A」に制御コマンドデータの値「0xEE」を加算するので、「0xF8」が得られる。次に、この「0xF8」から「0x03」を減算すると、個体認証データの値「0xF5」が得られる。
同様に、図4に示すプログラムコード記憶領域400に記録された、第2個体検査値「0x12」から個体認証データを生成すると「0xF2」の値、第3個体検査値「0x32」から個体認証データを生成すると「0x1D」の値となる。
なお、個体認証データとともに送信される制御コマンドデータ又はその付随データの少なくともいずれか一方のデータと個体検査値とを併せたデータに暗号化処理を施すことにより個体認証データを生成してもよい。また、個体認証データには、個体認証データとともに送信される制御コマンドデータや付随データに関するデータを含ませてもよい。制御コマンドデータや付随データに関するデータとは、制御コマンドデータや付随データに対して上記加工処理や、ハッシュ関数による演算やパリティチェック、巡回冗長検査(Cyclic Redundancy Check:CRC)、チェックサムなどの演算を行って得られた値などである。
個体認証データとともに送信する制御コマンドデータや付随データを用いて個体認証データを生成することにより、不正な制御部によって個体認証データを再利用された場合であっても、個体認証データと制御コマンドの整合がとれず、不正を検知することができる。また、誤動作により制御コマンドデータが変更された場合であっても、認証は成功しないため、上記雑音等に起因して変更された制御コマンドデータに対応した制御コマンドの実行を防止することもできる。
また、個体認証データに制御コマンドデータや付随データに関するデータを含ませる場合、主制御部10は制御コマンドデータや付随データに関するデータと個体検査値とを合わせて暗号化処理を施して、個体認証データを生成する処理を行ってもよい。
なお、主制御部10が、各個体検査値を生成するタイミングと、各個体検査値を用いて個体認証データを生成するタイミングとは、特に制限はなく、主制御部10の制御プログラム中に、各個体検査値を生成する処理と、各個体検査値を用いて個体認証データを生成する処理とを行うプログラムを組み込んでおけばよい。
[4]動作検査値の生成
主制御部10は、後段部20及び演出制御部203においてパチンコ遊技機1の動作の継続性を認証するために、制御コマンドデータ及び付随データに付加して演出制御部203を介して後段部20に送信する動作検査値として、同期コード及び動作コードを生成し、RAM10cの所定の記憶領域である動作検査値用メモリに記憶する。以下に、同期コード及び動作コードの生成ついて詳細に説明するが、同期コードと動作コードの作成順序は任意である。
{1}同期コードの生成
主制御部10は、動作検査値の一つとしてパチンコ遊技機1の動作の継続性を認証するために、主制御部10の継続性を有する処理動作に伴って生成されるパケット情報を生成し、生成されたパケット情報を取得して同期コードを生成する。パケット情報は、主制御部10が連続して動作していることを認証可能な情報であって、連続した生成タイミングのパケット情報を比較したときに、パケット情報同士はお互いの生成間隔(所定の時間間隔や所定のクロック数間隔、又は命令実行数間隔など)に起因する所定の相関関係を有している。本実施の形態1では、主制御部10の制御コマンドの出力に伴ってパケット情報を生成するとし、連続した制御コマンドの出力タイミングに準じた生成タイミングで生成されたパケット情報同士の差分が、予め設定された所定の相関関係を有するように生成させている。このようにして生成されたパケット情報を受信した側は、パケット情報同士の差分が常に所定の相関関係を有していれば、主制御部10の制御コマンドは正規の動作順序で出力されていると判断することができる。
なお、主制御部10がパケット情報を生成するタイミングと取得するタイミングの関係としては、パケット情報が生成されるタイミングごとに取得するように設定したり、パケット情報が生成されるタイミングとは別のタイミングで取得するように設定したりできるが、本実施の形態1では、パケット情報が生成されるタイミングごとに取得することとする。
主制御部10の動作に伴って生成されるパケット情報は、その生成間隔によって、例えば、次の2種類に分類することができる。具体的には、主制御部10は制御コマンドの出力に伴って連続して生成されるパケット情報(連続パケット情報)と、制御コマンドの出力に伴って特定の間隔ごとに生成されるパケット情報(間欠パケット情報)である。
連続パケット情報とは、主制御部10によって生成される少なくとも2つの(2回分の)連続するタイミングによって生成されたパケット情報である。ここで、連続パケット情報の生成タイミングとして、主制御部10の処理速度に応じた生成タイミングを例に説明すると、1クロックタイミングごとにパケット情報を生成可能であれば1クロックタイミングごとが連続パケット情報の生成タイミングとなり、4クロックタイミングごとにパケット情報を生成可能であれば、4クロックタイミングごとが連続パケット情報の生成タイミングとなる。このとき、主制御部10は、1クロックタイミングごとにパケット情報を生成させ、1クロックタイミングごとにパケット情報を取得して連続パケット情報とする。
間欠パケット情報とは、主制御部10によって生成されるパケット情報のうち少なくとも2つの(2回分の)タイミング(特定の間隔ごとのタイミング)によって生成されたパケット情報である。ここで、特定の間隔ごとのタイミングとは、例えば、連続した生成タイミングが特定の間隔を有して間欠的であることを意味している。この間隔の基準は、1クロックタイミングごとや4クロックタイミングごとといったクロックタイミングを基準としてもよいし、1秒、0.5秒などの時間を基準としてもよい。
具体的には、間欠パケット情報とは、主制御部10によって連続パケット情報が生成される所定の生成タイミングのうちの一部の生成タイミングである、特定の間隔ごとに間欠的に生成された少なくとも2つの(2回分の)パケット情報である。間欠パケット情報の生成タイミングは、例えば、主制御部10が、1クロックタイミングごとにパケット情報を出力可能である場合に、2クロックタイミングごとを間欠パケット情報の生成タイミングと設定することができる。このとき、主制御部10は、2クロックタイミングごとにパケット情報を生成させ、2クロックタイミングごとにパケット情報を取得して間欠パケット情報とする。
このように、パケット情報を用いて同期コードを生成する場合、それぞれのパケット情報は、所定の生成間隔、例えば、所定の時間間隔や所定のクロック数間隔、又は命令実行数間隔などに設定された生成タイミングで生成される。このとき、連続した生成タイミングのパケット情報同士は、所定の相関関係を有する情報として生成される。すなわち、連続して生成されたパケット情報同士の相関関係は、連続的に絶え間なく生成された連続パケット情報と、特定の間隔を有して間欠的に生成された間欠パケット情報とで異なるが、連続パケット情報及び間欠パケット情報においてそれぞれ所定の相関関係を有する。従って、これらのパケット情報を受信する側では、連続する生成タイミングの複数のパケット情報同士の差分(減算に限られない)を求め、得られた差分値が示す情報が、予め設定した所定の相関関係を示していれば、主制御部10で用いられたパケット情報の種類を特定することができ、また、随時確認することで、主制御部10の処理動作が正規の動作順序で連続的に実行されていることを検証することができる。
なお、パケット情報を用いて同期コードを生成する場合、一つのパケット情報を用いて一つの同期コードを生成してもよいし、複数のパケット情報を用いて一又は複数の同期コードを生成してもよい。但し、後述する後段部20での同期コードを用いた中間動作認証において、送信されたパケット情報同士の相関関係を確認できるよう、一つのパケット情報を用いて一つの同期コードを生成する場合は、複数個の同期コードを生成し、後段部20へ一又は複数回の送信を行うこととする。また、同期コードは、パケット情報として生成した値をそのまま利用してもよいし、これらの値に所定の演算を施して暗号化した値を利用してもよい。これらのことは、後述する動作コードの生成の際にも当てはまる。
主制御部10は、間欠パケット情報を用いて同期コードを生成するか、連続パケット情報を用いて同期コードを生成するか、つまり、同期コードの生成に用いるパケット情報の種類を、分割数に基づく所定の取り決めに従って選択することができる。所定の取り決めは、主制御部10と後段部20及び演出制御部203とで共有されており、例えば、次の(選択例1)や(選択例2)のようなものがある。図5に、主制御部10におけるパケット情報の選択方法とする所定の取り決めを模式的に示す。なお、初回のパケット情報の種類については、主制御部10と後段部20及び演出制御部203との間で同一の方式を利用するものと予め設定しておく。
(選択例1:分割数/Xの余り値)
図5に示す選択例1では、分割数として決定された値を予め決められている特定値Xで除算した際の余り値に基づいて、同期コードの生成に用いるパケット情報の種類を選択する。例えば、特定値X=3、分割数=3であれば、余り値=0となり、図5の選択例1では、間欠パケット情報を選択し、特定値X=3、分割数=5であれば、余り値=2となり、図5の選択例1では、連続パケット情報を選択する。
(選択例2:|前回の分割数−今回の分割数|の絶対値)
図5に示す選択例2では、前回決定された分割数と今回決定された分割数の減算した際の絶対値に基づいて、同期コードの生成に用いるパケット情報を選択する。例えば、前回の分割数=3、今回の分割数=5であれば、絶対値|−2|=2となり図5の選択例2では、連続パケット情報を選択する。
その他、所定の取り決めとしては、例えば、分割数2の場合は間欠パケット、分割数3の場合は連続パケット・・・というように、選択するパケット情報を分割数ごとに決めておく方法や、分割数が偶数の場合は同期コードの生成に用いるパケット情報の種類を変更し、分割数が奇数の場合は現在用いている種類のパケット情報を継続して用いる方法などがある。
主制御部10は、主制御部10のみが知る分割数の値に基づいて同期コードの生成に用いるパケット情報の種類を選択することにより、不正行為者に同期コードの生成にどの種類のパケット情報を用いているかを知られることを防止できる。これにより、同期コードが不正に生成されることを防止することができる。以下、本実施の形態1では、所定の取り決めとして図5に示す(選択例1)を採用し、特定値XをX=3とし、初回のパケット情報の種類は連続パケットを採用したとして説明する。また、上記同期コードを生成する処理を実行する手段は、例えば、図1に示す動作検査値生成手段14に対応させることができる。
また、本実施の形態1では、主制御部10の制御コマンドの出力に伴って、毎回の出力の度にパケット情報を生成する連続パケット情報と、主制御部10の制御コマンドの出力に伴うが、毎回の出力の度ではなく特定の間隔ごとにパケット情報を生成する間欠パケット情報との2種類を用いて、同期コードを生成するが、本発明において同期コードの生成タイミングはこれに限定されず、同期コードは、制御コマンドの出力処理以前のタイミングで生成してもよい。具体的には、同期コードは、主制御部10の利用者(遊技者ではなく、例えば、主制御部10を遊技機に搭載する管理者や、業者など)の設定するタイミングに応じた同期コードを生成できる。このような構成にすることによって、同期コードを第三者にとってより解析の困難な情報とすることができる。
{2}動作コードの生成
また、主制御部10は、動作検査値の一つとして主制御部10の動作の継続性を認証するために、主制御部10の継続性を有する処理動作(ここでは、制御コマンドの送信とする)の順序を検証するための情報である動作コードを生成する。動作コードは、機能番号や認証回数などの一定の関係性を保って変動する値を用いて生成される。以下に、機能番号又は認証回数を用いて動作コードとして生成する場合について説明するが、動作コードが何を用いて生成されているかについては、主制御部10と後段部20との間で予め決定されている。動作コードは、機能番号及び認証回数の両方を用いて生成した動作コードなどのように、主制御部10の動作順序を検証するための情報を複数含んでもよい。
まず、機能番号を用いて動作コードを生成する場合について説明する。主制御部10は、自身が出力する各種データ信号のうち、特定のデータ信号に対してその出力順ごとに予め重複なく番号を割り振り、割り振られた番号を機能番号として定義することができる。本実施の形態1では、主制御部10において、自身が実行する各種プログラムの所定の機能を実現するための処理が実行される順番ごとに、予め機能番号が割り振られているとする。主制御部10は、機能番号が割り振られたプログラムを実行すると、所定の機能を実行する毎に機能番号を取得し、取得した機能番号を動作コードとしてRAM10cの所定の記憶領域の動作検査値用メモリに、取得した順番が判別可能な状態で記憶する。この取得された順番に並べられて記憶された複数の動作コードは、主制御部10が各種プログラムを実行した際の動作順序を示している。
機能番号の割り当て方の具体例について説明する。機能番号は、例えば、大当たりリーチコマンド、大当たり開始コマンド及びそれに続く大当たりコマンド(例えば、15ラウンド分)等の連続して生成される制御コマンドに対して割り当てることができる。この場合、大当たりリーチコマンドに機能番号1を割り当てる。次に、大当たり開始コマンドに機能番号2を割り当てる。次に、15ラウンドの大当たりコマンドの各コマンドのそれぞれに機能番号3〜18を割り当てる。このように、時系列的に連続して発生する制御コマンドに連続する機能番号を割り当て、連続して発生する機能番号の連続性を検査することにより、主制御部10の動作の継続性を検証することができる。なお、機能番号は、連続して実行されるプログラムの所定の機能毎に割り当てればよく、そのプログラムの所定の機能の粒度(granularity)については特に制限されない。
次に、認証回数を用いて動作コードを生成する場合について説明する。認証回数とは、パチンコ遊技機1の電源がオンになってから、主制御部10と後段部20及び演出制御部203との間で行われた一連の認証に関する処理の総実行回数のことである。1回の認証に関する処理において、主制御部10での動作検査値の生成処理は1回実行され、後段部20での中間動作認証及び演出制御部203での動作認証も1回実行されるとすると、動作検査値の生成処理の実行回数と中間動作認証や動作認証の認証処理の実行回数とは同一となる。よって、主制御部10は動作検査値の生成処理の実行回数を認証回数として認識し、後段部20及び演出制御部203は中間動作認証及び動作認証の実行回数を認証回数として認識することができる。
また、認証回数を、動作検査値の生成処理及び動作認証処理(中間動作認証処理を含む)の実行回数として定義するだけではなく、個体検査値の生成処理及び個体認証処理の実行回数や動作検査値の生成処理及び個体認証処理の実行回数として定義することもできる。この場合、演出制御部203は、演出制御部203での個体認証の実行回数を後段部20に通知し、後段部20において個体認証の実行回数を認証回数として認識させることができる。なお、個体検査値と動作検査値の生成処理の実行回数、又は個体認証処理と動作認証処理(中間動作認証処理を含む)の実行回数とが異なる場合であってもお互いに対応関係を明確にしておけば、動作コードに用いる認証回数として定義することができる。
そして、主制御部10は、この認証回数を動作コードとしてRAM10cの所定の記憶領域の動作検査値用メモリに記憶している。主制御部10は、認証処理が行われる度にRAM10cに記憶された認証回数の値に+1して、新たな認証回数の値、すなわち新たな動作コードを生成し、この動作コードをRAM10cに記憶する。なお、動作コードを生成する処理を実行する手段は、例えば、図1に示す動作検査値生成手段15に対応させることができる。
[5]動作認証データの生成
主制御部10は、上記[4]の{1}の処理で生成した各同期コード及び上記[4]の{2}の処理で生成した各動作コードに対して暗号化処理を施してもよい。ここで、暗号化方式としては、個体認証データの生成の際に用いた方式と同様のものが考えられる。なお、個体認証データの生成の際に施す暗号化処理と、動作認証データの生成の際に施す暗号化処理とは、同じ暗号化処理でもよく、それぞれ異なる暗号化処理でもよい。また、同期コードごとや動作コードごとで異なる暗号化処理を施してもよい。
ここで、主制御部10は、動作認証データの生成において、機能番号を用いて複数の動作コードを生成した場合、複数の動作コードが生成された順番、すなわち主制御部10の動作順序の情報を維持したまま、同期コードと併せて複数の動作認証データを生成する。例えば、主制御部10は、取得した順番に並べられた複数の機能番号(動作コード)の配列を維持したまま、動作コードのそれぞれに同期コードと併せて暗号化処理を施して、複数の動作認証データを生成する。したがって、配列された複数の動作認証データは、複数の動作コードと同様に、主制御部10が各種のプログラムを実行した際の動作順序を示している。
主制御部10において暗号化処理を施された各同期コード及び各動作コードを演出制御部203を介して後段部20に送信した場合には、何らの処理も施していない各同期コード及び各動作コードをそのまま演出制御部203を介して後段部20に送信する場合と比較して、各同期コード及び各動作コードを不正行為者により分析される可能性を低減することができる。なお、上記暗号化処理に対し、個体認証データの生成の際と同様、更に所定の加工処理を加えてもよい。
また、同期コードとともに送信される制御コマンドデータ又はその付随データの少なくともいずれか一方のデータと同期コードとを併せたデータに暗号化処理を施してもよい。同様に、動作コードとともに送信される制御コマンドデータ又はその付随データの少なくともいずれか一方のデータと動作コードとを併せたデータに暗号化処理を施してもよい。また、同期コード及び動作コードには、これらとともに送信される制御コマンドデータや付随データに関するデータを含ませてもよい。
なお、暗号化処理及び復号化処理等の方式については、主制御部10と後段部20及び演出制御部203との間で予め取り決めておけばよい。例えば、主制御部10で第1の暗号化方式を用いて動作検査値に暗号化処理を施し動作認証データを生成した場合、後段部20は、第1の暗号化方式に対応する復号化方式で復号化処理を施し、動作検査値を抽出して認証に関する処理を行う。その後、後段部20は、得られた結果に対して第2の暗号化方式を用いて暗号化処理を施し、後述する中間認証情報を生成する。演出制御部203は、第2の暗号化方式に対応する復号化方式で復号化処理を施し、後段部20で得られた結果を抽出し認証に関する処理を行う。このようなことは、動作認証データの生成及び動作検査値の抽出の場合に限らず、個体認証データの生成や個体検査値の抽出なども同様に当てはまる。
また、主制御部10は、個体認証データ又は動作認証データの生成に用いる暗号化処理等の方式を予め複数用意しておき、[1]の処理において決定された今回の分割数(データブロックの数)に基づいて、複数の暗号化処理の中から次回の動作認証データの生成に用いる1個の暗号化処理を選択するようにしてもよい。具体的には、主制御部10は、例えば、今回の分割数が奇数の場合は次回の暗号化処理を今回用いた暗号化処理と異なるものを選択し、今回の分割数が偶数の場合は次回の暗号化処理を今回用いた暗号化処理と同一のものを選択する。このとき、復号化処理等の方式の選択方法についても暗号化処理等の方式のときと同様に、例えば、後述する今回の結合数や今回の結合数に基づく復号化方式の選択情報に従って、次回用いられる暗号化方式に対応した復号化方式を選択するように、主制御部10と後段部20及び演出制御部203との間で予め取り決めておけばよい。
なお、これら暗号化処理全般のことについては、後述する後段部20での中間認証情報の生成など、後段部20や演出制御部203での認証に関するデータや情報信号の生成処理においても同様に当てはまる。
[6]制御信号へのデータ付加
主制御部10は、演出制御部203に送信される制御コマンドデータ及び付随データへ、個体認証データ及び動作認証データを付加して認証データ付制御信号を生成する。以下、個体認証データ及び動作認証データを併せて認証データともいう。
[7]制御信号の送信
主制御部10は、認証データ付制御信号を演出制御部203及び演出制御部203を介して後段部20に送信する。
ここで、主制御部10が演出制御部203に送信する制御信号のデータフォーマットの一例について、図6に示す模式図を参照して説明する。図6(1)には、制御コマンドデータ301及び付随データ302が含まれる通常の制御信号310を示す。制御コマンドデータ301は、制御コマンド固有のデータである。また、付随データ302は、制御コマンドデータ301に付随するデータであり、例えば、現在の遊技状態を示すデータなど制御コマンドデータ301に対応する処理を実行するために必要な制御データである。
一方、主制御部10は、演出制御部203に認証データを送信する場合、図6(2)に示すように、制御コマンドデータ301及び付随データ302に加え、個体認証データ303及び動作認証データ304を含んだ認証データ付制御信号320を生成し、出力する。個体認証データ303には個体検査値が含まれ、動作認証データ304には、同期コード304a及び動作コード304bが含まれている。
なお、図6には示していないが、通常の制御信号310及び認証データ付制御信号320には、一般的なデータ通信で伝送される制御信号と同様に、BCC(Block Check Character)等が含まれている場合もある。BCCは、データ伝送の過程で発生するデータ誤りなどをチェックするために、伝送ブロックごとに付加される誤り検出符号である。
なお、認証データ付制御信号320は、図6(2)に示すような制御コマンドデータ301、付随データ302、個体認証データ303、動作認証データ304の順で配置された認証データ付制御信号320に限らず、これらを任意の順番で配置してもよい。例えば、個体認証データ303又は動作認証データ304を制御信号の先頭に設けたり、制御コマンドデータ301と付随データ302との間に個体認証データ303又は動作認証データ304を挿入したりしてもよい。また、同期コード304a及び動作コード304bを逆に配置したり、分離して配置したりしてもよい。
このように、個体認証データ303及び動作認証データ304を制御信号に含めることによって、個体認証データ303又は動作認証データ304を単体で送信する場合と比較して、主制御部10と後段部20及び演出制御部203との間の通信負荷の増大を抑えることができるとともに、通信中のデータの中から個体認証データ303又は動作認証データ304が抽出され、解析されてしまう危険性を低減することができる。
なお、これら制御信号のデータフォーマットなど、各種データや情報信号の伝送形態全般については、後述する演出制御部203から後段部20へ送信される動作認証データ付制御信号など、後段部20や演出制御部203での認証に関するデータや情報信号の伝送形態においても同様に当てはまる。
<後段部>
後段部20は、CPU20aと、ROM20bと、RAM20c等を備えている。CPU20aは、ROM20bに予め記憶されているプログラム(プログラムコード)に基づき処理を行う。ROM20bには、CPU20aが処理を実行するためのプログラムコードと、主制御部10の制御コマンドの出力に伴って生成されるパケット情報の種類ごとに予め設定された所定の相関関係を一義的に示す同期コード期待値と、主制御部10の所定の処理ごとに生成される動作コードの種類ごとに予め設定され、主制御部10の動作順序を判別可能なように関連付けられた動作コード期待値とが予め記憶されている。ROM20bの記憶領域のうち、上記同期コード期待値及び動作コード期待値からなる中間動作認証期待値が予め記憶されている記憶領域は、例えば、図1に示す期待値記憶手段21に対応させることができる。RAM20cは、CPU20aが処理を実行する際に行う演算のワークエリアとして機能する。
本実施の形態1において、この後段部20の認証に関する処理は、以下の[1]〜[6]の通りである。
[1]制御信号の受信
演出制御部203は、主制御部10から送信された認証データ付制御信号のうち、演出制御部203で認証に使用しない動作認証データに制御コマンドデータ及び付随データが付加した動作認証データ付制御信号を後段部20に送信する。後段部20は、動作認証データ付制御信号を受信すると以下の[2]〜[6]の処理を行う。なお後段部20は、制御コマンドデータ及び付随データのみからなる通常の制御信号を受信した場合には、認証に関する処理は行わずに、受信した制御コマンドデータ及び付随データを破棄する。
[2]同期コード、動作コードの抽出
後段部20は、動作認証データ付制御信号から動作認証データを抽出する。次に後段部20は、抽出した動作認証データから同期コード及び動作コードを抽出し、RAM20cの所定の記憶領域である動作検査値用メモリに、制御コマンドの出力順など主制御部10の動作順序が判別可能なように関連付けて同期コード及び動作コードを記憶する。なお、同期コード又は動作コードに主制御部10において暗号化処理が施されている場合、後段部20は、施された暗号化処理に対応する復号化処理を抽出した同期コード又は動作コードに施す。
ここで、本実施の形態1において、例えば、主制御部10の動作検査値生成の際に使用するRAM10cの動作検査値用メモリと、後段部20の動作検査値抽出の際に使用するRAM20cの動作検査値用メモリなど、メモリの所属元は、特に明記しなくても混乱なく識別することができる。よってこれ以降特筆しない限り、メモリの所属元の区別なく同一の名称を使用する(この例では、「動作検査値用メモリ」を使用する)。このことは、個体検査値用メモリも同様とする。
[3]中間動作認証
後段部20は、動作検査値用メモリに記憶されている複数の同期コード及び動作コードを用いて、以下に示す主制御部10の制御コマンド出力に対する中間動作認証を行う。なお、同期コードを用いた中間動作認証と動作コードを用いた中間動作認証の認証順序は任意である。
{1}同期コードを用いた中間動作認証
{1−1}後段部20は、上記動作検査値用メモリに記憶されている複数の同期コードから、主制御部10の制御コマンドが出力された順番に対応させて複数のパケット情報を読み出す。
{1−2}後段部20は、読み出した複数のパケット情報のうち、あるタイミングで生成されたパケット情報と、このパケット情報から所定の生成間隔だけ経過したタイミングで生成されたパケット情報との差分を求める。この差分は減算に限らず、各種の四則演算や論理演算が考えられる。
{1−3}後段部20は、主制御部10との間で共有しパケット情報の種類ごとに予め設定されている、連続する生成タイミングで生成されたパケット情報同士の相関関係を表す情報として記憶している同期コード期待値を、所定の記憶領域から読み出す。読み出す同期コード期待値は、連続パケットを示すものか間欠パケットを示すものかのいずれかとする。本実施の形態1では、連続パケット情報を示す同期コード期待値を読み出すものとする。
{1−4}後段部20は、{1−2}の処理で求めた差分値が示す情報と、{1−3}の処理で読み出した同期コード期待値とが同一か否かを照合する。
{1−5}差分値が示す情報と同期コード期待値が同一の場合、後段部20は、両者が同一であったことを示す同期コードでの中間動作認証結果を生成し、差分値が示す情報と同期コード期待値が非同一の場合、後段部20は、両者が非同一であったことを示す同期コードでの中間動作認証結果を生成する。本実施の形態1では、主制御部10において、初回に同期コードの生成に用いたパケット情報の種類は、連続パケット情報であり、後段部20にて読み出した同期コード期待値は、連続パケット情報を示すものであるため、後段部20の認証に関する処理における初回の同期コードでの中間動作認証結果は、差分値が示す情報と同期コード期待値が同一を示すものが生成される。
(同期コードを用いた中間動作認証の計算例)
以下、後段部20における同期コードを用いた中間動作認証の計算例を説明する。後段部20は、連続した生成タイミングで生成された2つのパケット情報同士の相関関係を求める。例えば、1回目のパケット(以下、「パケット1」という)の基本値=0x03、2回目のパケット(以下「パケット2」という)の基本値=0x05であり、パケット1とパケット2との相関条件は「+2」となる。後段部20は、この相関条件を同期コード期待値として予め記憶している。主制御部10から送信するパケット1に対応する同期コードは、基本値のまま0x03となり、パケット2に対応する同期コードは、パケット1+パケット2すなわち0x03+0x05となり「0x08」が送信される。
そして、後段部20において受信するパケット1は、基本値のまま0x03となり、パケット2は、0x08となる。そして、パケット2の基本値を算出するため、受信したパケット2からパケット1を引き、0x08−0x03=0x05を求める。
パケット1とパケット2との双方の基本値が求まると、2つのパケットの相関関係を求める。すなわち、パケット2基本値−パケット1基本値=0x05−0x03となり、差分値は0x02となる。この値は、パケット1の基本値とパケット2の基本値との相関条件(+2であること)と一致し、同期コード期待値と同一であると判断できるので、後段部20は、両者が同一であったことを示す同期コードでの中間動作認証結果を生成する。その後、後段部20は、RAM20cの動作検査値用メモリに記憶されている同期コードを消去する。
なお、パケット1とパケット2の計算において、計算結果が桁あふれしないように桁数を調整してもよいし、桁あふれしない数値範囲でパケット1とパケット2の基本値を選定してもよいし、さらに、符号なし演算として計算してもよい。また、認証強度を上げるために、認証処理ごとに相関条件を変更してもよい。例えば、1回目の相関条件は「+2」、2回目の相関条件は「+5」、3回目の相関条件は「+1」などとしてもよい。ただし、上述のような相関関係の変更ルールを適用する場合には、予め主制御部10と後段部20及び演出制御部203との相互で共有しておくか、通知する手段や工程を用意しておく。
また、単純に連続するパケット情報を送信しただけでは、第三者にパケット情報の差分を解析されてしまう可能性もある。したがって、解析を防ぐために基本値に前処理を施してもよい。例えば、パケット情報の基本値に排他的論理和演算などの各種演算処理を施してもよい。また、基本値への前処理は、パケット1とパケット2のような任意の間隔ごとに予め設定された生成タイミングによって生成された2つのパケット情報のうちのいずれか一方にのみ施してもよいし、双方に施してもよい。
{2}動作コードを用いた中間動作認証
後段部20は、動作検査値用メモリに記憶されている動作コードを用いて主制御部10の処理動作の順序を検証する。後段部20は、主制御部10が生成する動作コードが、時系列的に一定の関係性を維持しながら生成されているかを検証するための情報として、動作コードの生成方法の種類(機能番号を用いた生成や認証回数を用いた生成など)のそれぞれに対応する動作コード期待値を所定の記憶領域に記憶している。機能番号を用いた動作コードに対応する動作コード期待値は、主制御部10の動作順序が判別可能なように複数の動作コードが関連付けられて形成されたデータ、例えば、複数の動作コードが主制御部10の動作順序を示す順番で配列されたデータテーブルなどである。
また、認証回数を用いた動作コードに対応する動作コード用期待値は、認証回数を示す値である。この場合、後段部20は、動作認証処理が行われる度に動作コード期待値を更新する。具体的には、後段部20は、主制御部10と同様に、動作認証処理が行われる度にRAM20cに記憶された動作コード期待値(認証回数)の値に+1して、新たな動作コード期待値(認証回数)として記憶する。以下に、動作コードが機能番号又は認証回数を用いて生成された場合の動作認証について説明するが、動作コードが何を用いて生成されているかについては、主制御部10との間で予め決定されている。
{2−1}動作コードが機能番号を用いて生成されている場合、動作検査値用メモリから読み出した複数の動作コードと、動作コード期待値としてのデータテーブルとを用いて、複数の動作コードが正規の順序で配列されているかを判断する照合処理を行う。照合処理の結果、複数の動作コードが正規の順序で配列されていた場合には、後段部20は、動作コードを用いた中間動作認証に成功したと判断する。一方、複数の動作コードが正規の順序で配列されていなかった場合には、後段部20は、動作コードでの中間動作認証に成功しなかったと判断する。
{2−2}動作コードが認証回数を用いて生成されている場合、動作検査値用メモリから読み出した複数の動作コードと、動作コード期待値としての認証回数とが一致するか否かを判断する照合処理を行う。照合処理の結果、動作コードと動作コード期待値とが一致した場合には、後段部20は、動作コードを用いた中間動作認証に成功したと判断する。一方、動コードと動作コード期待値とが一致しなかった場合には、後段部20は、動作コードでの中間動作認証に成功しなかったと判断する。そして後段部20は、認証回数を示す動作コード期待値を更新する。
{2−3}上記{2−1}、{2−2}の処理で、動作コードを用いた中間動作認証に成功した場合、後段部20は、成功を示す動作コードでの中間動作認証結果を生成し、動作コードを用いた中間動作認証に成功しなかった場合、後段部20は、不成功を示す動作コードでの中間動作認証結果を生成する。
なお、主制御部10において同期コード及び動作コードに所定の演算が施されている場合、後段部20は、主制御部10の演算処理の内容に応じて所定の演算を行って同期コード及び動作コードを取得する。そして、この同期コード及び動作コードが、主制御部10の動作が正しい順序の動作であることを表す動作検査値であった場合、主制御部10の動作の継続性が確保されていると判断する。なお、後段部20は、直接同期コード及び動作コードを受信した場合には、この同期コード及び動作コードを用いて主制御部10の動作の継続性の認証を行う。以下、本実施の形態1では、動作コードが機能番号を用いて生成されるとして説明する。
{3}中間動作認証結果の生成
後段部20は、{1}の処理において得られた同期コードでの中間動作認証結果と、{2}の処理において得られた動作コードでの中間動作認証結果とに基づいて、今回の後段部20での中間動作認証の結果を示す情報として、以下の{3−1}〜{3−4}のような4種類の中間動作認証結果を生成する。
{3−1}{1}の処理において得られた同期コードでの中間動作認証結果が同一を示し、{2}の処理において得られた動作コードでの中間動作認証結果が成功を示す中間動作認証結果。
{3−2}{1}の処理において得られた同期コードでの中間動作認証結果が非同一を示し、{2}の処理において得られた動作コードでの中間動作認証結果が成功を示す中間動作認証結果。
{3−3}{1}の処理において得られた同期コードでの中間動作認証結果が同一を示し、{2}の処理において得られた動作コードでの中間動作認証結果が不成功を示す中間動作認証結果。
{3−4}{1}の処理において得られた同期コードでの中間動作認証結果が非同一を示し、{2}の処理において得られた動作コードでの中間動作認証結果が不成功を示す中間動作認証結果。
なお、{3−3}及び{3−4}の中間動作認証結果は、{2}の処理において得られた動作コードでの中間動作認証結果がいずれも不成功であるため、{1}の処理で得られた結果に拘わらず、{3−3}及び{3−4}の替わりに一つの不成功を示す中間動作認証結果を生成することとしてもよい。
(中間動作認証結果生成の計算例)
中間動作認証結果の生成の計算の一例を以下に示す。
後段部20は、すべての値の出現確率が等しい一様乱数(uniform random numbers)により1バイト長の乱数(範囲「0x00」〜「0xFF」)を発生させる。例えば、一様乱数により乱数「0x4B」を発生させたとする。後段部20は、同一であったことを示す中間動作認証結果を生成する場合、一様乱数により発生させた乱数「0x4B」の最下位ビットの値を「1」としたデータ「0x4B」を中間動作認証結果として生成する。一方、後段部20は、非同一であったことを示す中間動作認証結果を生成する場合、一様乱数により発生させた乱数「0x4B」の最下位ビットの値を「0」としたデータ「0x4A」を中間動作認証結果として生成する。
[4]中間認証情報信号の生成・送信
後段部20は、[3]の処理で得られた中間動作認証結果に対して、主制御部10で認証データを生成した際と同様の暗号化処理を施して中間認証情報を生成する。後段部20は、生成した中間認証情報の内容に従って中間認証情報信号を生成し、演出制御部203に送信する。具体的には、後段部20は、[3]の処理において動作コードでの中間動作認証が成功し、同期コードでの中間動作認証が同一を示す中間動作認証結果を生成した場合は、その旨を示す中間認証情報信号を生成し、非同一を示す中間動作認証結果を生成した場合は、その旨を示す中間認証情報信号を生成する。また、後段部20は、[3]の処理において、動作コードでの中間動作認証が不成功を示す中間動作認証結果を生成した場合は、その旨を示す中間認証情報信号を生成する。そして後段部20は、生成した中間認証情報信号を演出制御部203に送信するとともに、動作検査値用メモリに記憶されている各データを消去する。なお、これらの後段部20の認証に関する処理([1]〜[4]の処理)の詳細については後述する。また、上記の中間動作認証期待値を予め記憶する手段、及び中間動作認証を実行する手段は、例えば、図1に示す期待値記憶手段21、及び中間認証手段22に対応させることができる。
<演出制御部>
演出制御部203は、CPU203aと、ROM203bと、RAM203cと、VRAM203d等を備えている。CPU203aは、主に遊技中における演出を制御し、ROM203bに予め記憶されているプログラム(プログラムコード)に基づき、主制御部10より送信される制御コマンドに基づいて演出の抽選及び演出処理を実行する。ROM203bには、CPU203aが演出の抽選及び演出処理を実行するためのプログラムコードと、過去の演出パターンとが予め記憶されていることに加え、主制御部10を構成するROM10bに予め記憶されている分割対象の所定のプログラムコードと同一のデータを用いて、複数の半群演算をそれぞれ行って得られた複数の個体認証期待値とが予め記憶されている。ROM203bの記憶領域のうち、上記複数の個体認証期待値が予め記憶されている記憶領域は、例えば、図1に示す期待値記憶手段31に対応させることができる。RAM203cは、CPU203aが演出の抽選及び演出処理を実行する際に行う演算処理や認証に関する処理を実行する際に行う演算処理において、データ等のワークエリアとして機能する。VRAM203dには、図柄表示部104に表示させるための画像データが書き込まれる。
この演出制御部203は、主制御部10より送信される演出に係る制御コマンドを受信すると、この制御コマンドに基づいて抽選を行い、演出背景パターン、リーチ演出パターン、登場キャラクター等の演出を確定するとともに、当該確定した演出の制御を行う。
また、演出制御部203の出力側には、図柄表示部104が接続されており、抽選によって決定された内容のとおりに、図柄表示部104に、例えば、図柄変動の演出表示を展開する。
そして通常、CPU203aがROM203bに記憶されたプログラムを読み込んで、背景画像表示処理、図柄画像表示及び変動処理、キャラクター画像表示処理など各種画像処理を実行し、必要な画像データをROM203bから読み出してVRAM203dに書き込む。背景画像、図柄画像、キャラクター画像は、表示画面上において図柄表示部104に重畳表示される。
すなわち、図柄画像やキャラクター画像は背景画像よりも手前に見えるように表示される。このとき、同一位置に背景画像と図柄画像が重なる場合、Zバッファ法など周知の陰面消去法により各画像データのZバッファのZ値を参照することで、図柄画像を優先してVRAM203dに記憶させる。
また、演出制御部203は、以上概略説明した演出に関する処理の他に、認証データ付制御信号を受信した場合には、ROM203bに予め記憶されているプログラムに基づき、以下の[1]〜[6]に示す認証に関する処理を実行する。演出制御部203の認証処理によって個体認証及び動作認証の両面から最終的な認証判断を行う。
[1]制御信号の受信
演出制御部203は、主制御部10から送信された制御信号が、制御コマンドデータ及び付随データのみからなる通常の制御信号か、制御コマンドデータ及び付随データに加えて、個体認証データ及び動作認証データを含む認証データが付加された認証データ付制御信号かを判断する。受信した制御信号が通常の制御信号である場合、演出制御部203は、制御コマンドデータ及び付随データに基づいて上記演出に関する処理を行い、認証に関する処理を終了する。一方、受信した制御信号が認証データ付制御信号である場合、演出制御部203は、認証に関する処理を継続するとして下記[2]〜[6]の処理を実行する。
[2]個体検査値、動作認証データの抽出
演出制御部203は、認証データ付制御信号から個体認証データ、動作認証データを抽出する。次に演出制御部203は、抽出した個体認証データに対し個体認証データ生成時に使用した暗号化処理に対応する復号化処理を施して個体検査値を抽出し、RAM203cの所定の記憶領域である個体検査値用メモリに記憶するとともに、抽出した動作認証データを、RAM203cの所定の記憶領域である動作検査値用メモリに記憶する。次に、動作検査値用メモリ内の動作認証データに制御コマンドデータ及び付随データを付加して動作認証データ付制御信号を生成し、動作認証データ付制御信号を後段部20へ送信する。なお、演出制御部203は、主制御部10から送信された認証データ付制御信号から個体認証データのみを抽出し、その直後に個体認証データ以外を動作認証データ付制御信号として後段部20へ送信してもよい。
[3]個体認証
演出制御部203は、個体検査値用メモリ内に記憶されているすべての個体検査値に対して、以下に示す順序で半群演算を行うことによって、主制御部10の個体認証処理を行う。
{1}演出制御部203は、上記個体検査値用メモリ内に記憶されているすべての個体検査値を用いて半群演算(以下、結合処理という)を行う。
{2}演出制御部203は、予め記憶されている個体認証期待値をROM203bの所定の記憶領域から読み出す。
{3}演出制御部203は、上記{1}の処理における演算結果(以下、結合結果という)と、上記{2}の処理で読み出した個体認証期待値が一致するか否か判断する。
演出制御部203は、結合結果と個体認証期待値が一致した場合には、個体認証に成功したと判断する。
半群演算は上記結合法則を満たしているため、主制御部10のROM10bに予め記憶されている所定のプログラムコードと同一のデータのすべてに対して半群演算を行って得られた結果である個体認証期待値と、所定のプログラムコードから生成された分割数分の個体検査値に対して半群演算を行って得られた結合結果とは一致する。このとき、すなわち主制御部10に対する個体認証が成功したときは、結合処理の対象となった個体検査値の数(以下、結合数という)と、分割数とは当然に一致する。これにより、演出制御部203は、主制御部10の正当性を認証する。
一方、演出制御部203は、結合結果と個体認証期待値が一致しなかった場合には、個体認証に成功しなかったと判断する。
{4}{3}の処理で個体認証に成功した場合、演出制御部203は、個体認証が成功したことを示す個体認証結果を生成する。
{5}{3}の処理で個体認証が成功しなかった場合、演出制御部203は、主制御部10から受信した個体認証データの数が所定数以上か否かを判断する。所定数は、今回の結合数(分割数)以上かつプログラムコード記憶領域400(図4参照)に記憶されているプログラムコードを分割可能な数(最大分割数)以下の範囲内の任意の数である。
{5−1}受信した個体認証データの数が所定数未満の場合、演出制御部203は、まだ個体認証が行える段階ではないと判断して個体認証結果に換えて、認証中途データとして、例えば、個体認証結果のデータ長と同一のデータ長を有する任意の値(例えば、オール0又はオール1)を生成する。
{5−2}受信した個体認証データの数が所定数以上の場合、演出制御部203は、個体認証が成功しなかったと判断して、個体認証が成功しなかったことを示す個体認証結果を生成する。
(個体認証期待値生成の計算例)
個体認証期待値の生成方法について、図4を参照して説明する。
演出制御部203は、プログラムコード記憶領域400に記憶された分割対象の所定のプログラムコードと同一のデータ全体に対して半群演算を行った値を個体認証期待値として保持している。例えば、方式Aの場合の個体認証期待値は「0x01」〜「0x0C」の和である「0x4E」となる。また、方式Bの場合の個体認証期待値は「0x01」〜「0x0C」の排他的論理和である「0x0C」となる。演出制御部203では、主制御部10による個体検査値生成方法である半群演算の数と同数の個体認証期待値を保持している。
個体認証期待値は、例えば、製造時などに予め演出制御部203を構成するROM203bの所定の記憶領域に記憶させてもよいが、これに限定されず他の構成部から演出制御部203に送信することとしてもよい。他の構成部としては、例えば、賞球制御部204や個体認証期待値を生成するための専用の処理部(以下、個体認証期待値算出部という)などがある。なお、個体認証期待値算出部は、予め記憶されている個体認証期待値を演出制御部203に送信してもよい。また、外部接続用インターフェイス(図示略)を介して、外部の機器から演出制御部203や個体認証期待値算出部に個体認証期待値を算出するために必要な係数などを送信してもよい。このように、演出制御部203を構成するROM203bの所定の記憶領域に、予め個体認証期待値を記憶させずに、他の構成部から取得することとすれば、個体検査値を事後的に変更することが可能となる。このことは、中間動作認証期待値や動作認証期待値にも同様に当てはまる。
[4]中間認証情報信号の受信、中間動作認証結果の抽出
演出制御部203は、後段部20より送信された中間認証情報信号が示す中間認証情報に対して、後段部20での中間認証情報を生成した際に用いた暗号化方式に対応する復号化方式で復号化処理を施し、中間動作認証結果を抽出する。次に、演出制御部203は、抽出した中間動作認証結果をRAM203cの所定の記憶領域である動作検査値用メモリに記憶するとともに、後段部20での中間動作認証の結果を確認する。なお、演出制御部203は、中間認証情報信号を受信するまで以下の認証に関する処理を保留する。
[5]動作認証
演出制御部203は、動作検査値用メモリ内に記憶されている中間動作認証結果や、個体認証が成功した際の結合処理の対象となった個体検査値の数(結合数)を用いて、パチンコ遊技機1の動作認証を行う。動作検査値用メモリに記憶されている中間動作認証結果には、同期コードでの中間動作認証結果と、動作コードでの中間動作結果が含まれている。なお、演出制御部203は、動作認証に先立って結合数を特定しておく。また、同期コードでの中間動作認証結果を用いた動作認証と動作コードでの中間動作認証結果を用いた動作認証の認証順序は任意である。
{1}動作コードでの中間動作認証結果を用いた動作認証
{1−1}演出制御部203は、上記動作検査値用メモリに記憶されている動作コードでの中間動作認証結果を読み出し、後段部20での動作コードを用いた中間動作認証が成功したか否かを判断する。
{1−2}{1−1}の処理で読み出した中間動作認証果が成功を示す場合、演出制御部203は、以下の{2}の同期コードでの中間動作認証結果を用いた動作認証を行う。
{1−3}{1−1}の処理で読み出した中間動作認証果が不成功を示す場合、演出制御部203は、今回の動作認証処理では認証に成功しなかったと判断し、動作認証に成功しなかったことを示す動作認証結果を生成し、{2}の処理は行わず次の[6]に示す認証結果に基づく処理に移行する。
{2}同期コードでの中間動作認証結果を用いた動作認証
{2−1}演出制御部203は、上記動作検査値用メモリに記憶されている同期コードでの中間動作認証結果を読み出す。本実施の形態1では、初回の動作認証では、パケット情報の差分値が示す情報と同期コード期待値が同一を示す中間動作認証結果が読み出されることとなる。
{2−2}演出制御部203は、ROM203bの所定の記憶領域から、今回の動作認証に用いる動作認証期待値を読み出す。動作認証期待値は、今回の認証に関する処理において、主制御部10で生成したと認識するパケット情報の種類に対応したパケット情報同士の差分値が示す情報と、これに対応した同期コード期待値とが同一か否かを予測した情報であって、同一又は非同一を示す情報として演出制御部203に予め記憶されている。本実施の形態1では、初回に読み出す動作認証期待値は、同一を示す情報と予め設定しておく。
{2−3}演出制御部203は、{2−1}の処理で読みだした中間動作認証結果と、{2−2}の処理で読み出した動作認証期待値とが一致するか否かを判断する。
{2−4}演出制御部203は、中間動作認証結果と動作認証期待値が一致する場合は、動作認証に成功したと判断し、中間動作認証結果と動作認証期待値が一致しない場合は、動作認証に成功しなかったと判断する。本実施の形態1では、後段部20より送信された初回の中間動作認証結果は、同一を示すものであり、演出制御部203にて読み出された初回の動作認証期待値は、同一を示す情報であるため、動作認証は成功したと判断されることとなる。
{2−5}{2−4}の処理で動作認証に成功した場合、演出制御部203は、動作認証に成功したことを示す動作認証結果を生成するともに、動作検査値用メモリに記憶されている全てのデータを消去する。そして、演出制御部203は、[3]−{3}の処理で判明した結合数に基づく所定の取り決めに従って、次回に読み出す動作認証期待値の種類を選択する。所定の取り決めとは、主制御部10が同期コードを生成するために用いるパケット情報の種類を選択したものと同一である。すなわち、本実施の形態1では、上記選択例1を採用している。選択例1の場合、後段部20は、個体認証が成功した際の結合数を、主制御部10との間で予め決められている特定値X(ここではX=3)で除算した際の余り値に基づいて、動作認証期待値の種類を特定する。例えば、図5に示すように、特定値X=3、結合数=3であれば、余り値=0となり、非同一を選択する。また、{2−4}の処理で動作認証に成功しなかった場合、演出制御部203は、動作認証に成功しなかったことを示す動作認証結果を生成する。
[6]認証結果に基づく処理
演出制御部203は、[3]の処理である個体認証で得られた個体認証結果、及び[4]−{1}及び[4]−{2}の処理である動作認証で得られた動作認証結果を用いて、パチンコ遊技機1の正規性を個体認証と動作認証の両面から認証し、最終的な認証判断を行う。[3]の処理である個体認証で得られた個体認証結果、及び[4]−{1}及び[4]−{2}の処理である動作認証で得られた動作認証結果のいずれもが、認証成功を示す結果であった場合、演出制御部203は、パチンコ遊技機1の正規性を認証することに成功したと判断する。そして、演出制御部203は、主制御部10から送信された認証データ付制御信号に含まれた制御コマンドデータ及び付随データに基づく処理を実行するとともに、個体検査値用メモリ及び動作検査値用メモリに記憶されている各データを消去し、認証に関する処理を終了する。
一方、[3]の処理である個体認証で得られた個体認証結果、又は[4]−{1}及び[4]−{2}の処理である動作認証で得られた動作認証結果のいずれかが、認証不成功を示す結果であった場合、パチンコ遊技機1の正規性を認証することに成功しなかったと判断する。そして、演出制御部203は、制御コマンドデータ及び付随データに基づく処理を中断し、これらのデータを破棄するとともに、不正行為を検知したとする報知等の処理を行い、個体検査値用メモリ及び動作検査値用メモリに記憶されている各データを消去し、認証に関する処理を終了する。
演出制御部203の入力側には、上記チャンスボタン117が操作されたことを検出するチャンスボタン検出部220が接続されている。また演出制御部203の出力側には、スピーカ277が接続されており、演出制御部203において確定したとおりに、音声が出力されるようにしている。
また演出制御部203の出力側には、ランプ制御部205を備えている。
<その他の制御部>
ランプ制御部205は、演出制御部203より送信された制御コマンドに基づきROM205bから読み込んだプログラムを作動させて演出処理を実行するCPU205aと、上記プログラム及び各種演出パターンデータを記憶するROM205bと、CPU205aの演算処理時におけるデータのワークエリアとして機能するRAM205c等を備えている。ランプ制御部205は、ランプ262、演出ライト111a及び111b、演出役物作動装置254を制御する。演出役物作動装置254は、演出役物115等の、演出用の役物を作動させるモータやソレノイド等によって構成されている。
ランプ制御部205は、遊技盤101や台枠等に設けられている各種ランプ262に対する点灯制御等を行い、また、演出ライト111a及び111bをそれぞれ構成する複数のライト112に対する点灯制御等を行い、各ライト112からの光の照射方向を変更するためにモータに対する駆動制御等を行う。
また、ランプ制御部205は、演出制御部203より送信された制御コマンドに基づき、演出役物115を動作させる演出役物作動装置254のソレノイドや、瞼部116を動作させる演出役物作動装置254のモータに対する駆動制御等を行う。
賞球制御部204は、主制御部10と送受信可能に接続されている。賞球制御部204は、ROM204bに記憶されたプログラムに基づき、賞球制御を行う。この賞球制御部204は、ROM204bに記憶されたプログラムを作動して賞球制御の処理を実行するCPU204aと、CPU204aの演算処理時におけるデータのワークエリアとして機能するRAM204c等を備えている。
賞球制御部204は、接続される払出部291に対して、各入球口(第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129c)に入球した遊技球に対応した賞球数を払い出す制御を行う。また、賞球制御部204は、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサ(図示略)と、遊技球を発射させるソレノイド等(図示略)を備えている。賞球制御部204は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイド等を駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
払出部291は、遊技球の貯留部から所定数を払い出すためのモータ等からなる。
上記構成の主制御部10と、後段部20と、演出制御部203と、賞球制御部204と、ランプ制御部205とは、それぞれ異なるプリント基板(例えば、主制御部10は主制御基板、後段部20は中間基板、演出制御部203は演出制御基板、賞球制御部204は賞球制御基板、ランプ制御部205はランプ制御基板)に搭載されている。これらのうち、中間基板、演出制御基板、賞球制御基板及びランプ制御基板の総称として、「周辺基板」を用いる。なお、例えば、後段部20は、演出制御部203と同一のプリント基板上に搭載することもできる。また、賞球制御部204は、主制御部10と同一のプリント基板上に搭載することもできる。
次に、上記構成のパチンコ遊技機1の動作について、図面を参照して説明する。なお、以下の説明において、「制御コマンドを送信する」とは、「当該制御コマンドを示すデータ(制御コマンドデータ)を含む制御信号を送信する」という意味であり、例えば、図6に示す個体認証データや動作認証データや付随データの有無は考慮しないものとする。
主制御部10による演出制御部203及び賞球制御部204への制御コマンド送信を含む処理について、図7及び図8に示すフローチャートを参照して説明する。
まず、主制御部10は、パチンコ遊技機1の電源投入に伴う初期設定処理を実行(ステップS1)した後、ステップS2へ進む。なお、パチンコ遊技機1に電源が投入された際には、周辺基板が主制御基板から受信する制御コマンドを確実に取り込むために、周辺基板が立ち上がってRAM領域の初期化処理を行い、待機状態となった後、主制御基板が立ち上がるように構成されている。主制御部10は、初期設定処理として、例えば、スタックポインタに予め決められた所定値を設定するとともに、後段部20、演出制御部203及び賞球制御部204が待機状態になることを待つために、所定時間(例えば、約1秒間)だけ待機する。
ステップS2では、主制御部10は、演出制御部203及び賞球制御部204に電源投入コマンドを送信した後、ステップS3へ進む。電源投入コマンドを受信すると、演出制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して電源投入時の演出用の制御コマンド、具体的には、遊技機が非遊技状態における客待ちのデモ画面を表示するための客待ちデモコマンド、あるいは、ランプの点灯等を行うための制御コマンドを送信する。
なお、電源投入コマンドは、電源投入後に電源投入に伴う処理を実行させるための制御コマンドを示し、各制御基板が立ち上がった後に、主制御部10が演出制御部203、賞球制御部204、及び演出制御部203を介して後段部20とランプ制御部205に送信する制御コマンドであって、電源投入後の立ち上げ時における遊技を制御するための初期制御情報、例えば、制御モード、バックアップデータ等を送信するための制御コマンド、あるいは初期演出表示の制御を行うための制御コマンド、例えば、客待ちデモ等の各種のデモ表示を開始させるための制御コマンドである。また、この電源投入コマンドは遊技機のリセットボタンを押圧したときに実行される、上記制御モード、バックアップデータ等を送信するための制御コマンドも含む。
ステップS3では、主制御部10は、RAM10cに記憶されている未抽選入賞回数データを参照して、未抽選入賞回数が0回であるか否かを判断する。ここで、未抽選入賞回数とは、第1始動口検出部221又は第2始動口検出部225で検出された遊技球の数(入賞回数)から、当該遊技球の入球に対応する抽選が行われた回数(既抽選回数)を減じた数である。ステップS3の判断結果が「NO」の場合、すなわち、未抽選入賞回数が0回でない場合には、主制御部10は、後述するステップS10へ進む。一方、ステップS3の判断結果が「YES」の場合、すなわち、未抽選入賞回数が0回である場合には、主制御部10は、ステップS4へ進む。
ステップS4では、主制御部10は、電源投入時のデモが開始されてから経過した時間を計測した後、ステップS5へ進む。ステップS5では、主制御部10は、電源投入時のデモが開始されてから所定時間が経過したか否かを判断する。ステップS5の判断結果が「YES」の場合、すなわち、電源投入時のデモが開始されてから所定時間が経過した場合には、主制御部10は、ステップS6へ進む。なお、上記電源投入時のデモを開始するための制御コマンドは、客待ちデモコマンドとしてもよい。
ステップS6では、主制御部10は、演出制御部203に客待ちデモコマンドを送信した後、ステップS7へ進む。客待ちデモコマンドを受信すると、演出制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して客待ちデモ用の制御信号を送信する。
一方、ステップS5の判断結果が「NO」の場合、すなわち、電源投入時のデモ(又は客待ちデモ)が開始されてから所定時間が経過していない場合には、主制御部10は、ステップS7へ進む。ステップS7では、主制御部10は、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出されたか否かを判断する。ステップS7の判断結果が「YES」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出された場合には、主制御部は、ステップS8へ進む。
一方、ステップS7の判断結果が「NO」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されず、かつ、第2始動口検出部225で第2始動口120への遊技球の入球が検出されない場合には、主制御部は、ステップS4へ戻り、ステップS4以降の処理を繰り返す。
ステップS8では、主制御部10は、客待ちデモ(又は電源投入時のデモ)が開始されてから計測していた時間をクリアした後、ステップS9へ進む。ステップS9では、主制御部10は、未抽選入賞回数に1を加算する。なお、第1始動口検出部221又は第2始動口検出部225で複数の遊技球の入球が検出された場合、このステップS9では、主制御部10は、未抽選入賞回数に入球に相当する数を加算する。そして、主制御部10は、ステップS10へ進む。ステップS10では、主制御部10は、予め用意された乱数カウンタ(例えば、0〜250をカウント)から1つの大当たり判定用乱数を無作為に取得した後、ステップS11へ進む。ステップS11では、主制御部10は、未抽選入賞回数から1を減算した後、ステップS12へ進む。
ステップS12では、主制御部10は、例えば、予めROM10bに記憶されている大当り判定データテーブルを参照して、ステップS10の処理で取得した大当たり判定用乱数が、この大当り判定データテーブルに記憶されている大当たりの乱数値であるか否かを判断する。また、ステップS12では、主制御部10は、取得した大当たり判定用乱数がはずれの乱数の場合には、例えば、大当り判定データテーブルを参照して、さらに「リーチ有りのはずれ」又は「リーチ無しのはずれ」であるかについても判断する。ステップS12の判断結果が「YES」の場合、すなわち、ステップS10で取得した大当たり判定用乱数が予め定められた大当たり乱数である場合には、主制御部10は、ステップS13へ進む。
ステップS13では、主制御部10は、演出制御部203に、例えば、大当たりの種別コード(通常当りか確率変動当りか等)、リーチ有り、図柄変動時間、等の制御データ(付随データ)を含む大当たりリーチコマンド(図柄変動コマンド)を送信した後、ステップS14へ進む。ステップS14では、主制御部10は、図柄変動時間が経過したか否かを判断する。ステップS14の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部10は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS14の判断結果が「YES」となり、主制御部10は、ステップS15へ進む。
ステップS15では、主制御部10は、演出制御部203に図柄停止コマンドを送信した後、ステップS16へ進む。ステップS16では、主制御部10は、演出制御部203に大当たり開始コマンドを送信した後、ステップS17へ進む。ステップS17では、主制御部10は、演出制御部203に大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を順次送信し、すべてのラウンドの大当たりコマンドの送信を終了した後、ステップS18へ進む。ステップS18では、主制御部10は、演出制御部203に大当たり終了コマンドを送信した後、ステップS22へ進む。
一方、ステップS12の判断結果が「NO」の場合、すなわち、ステップS10の処理で取得した大当たり判定用乱数が予め定められた大当たり乱数でない場合には、主制御部10は、ステップS19へ進む。ステップS19では、主制御部10は、「リーチ有りのはずれ」の場合には「はずれリーチコマンド(図柄変動コマンド)」を、「リーチ無しのはずれ」の場合には「はずれコマンド(図柄変動コマンド)」を演出制御部203に送信した後、ステップS20へ進む。
ステップS20では、主制御部10は、図柄変動時間が経過したか否かを判断する。ステップS20の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部10は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS20の判断結果が「YES」となり、主制御部10は、ステップS21へ進む。ステップS21では、主制御部10は、演出制御部203に図柄停止コマンドを送信した後、ステップS22へ進む。
ステップS22では、主制御部10は、パチンコ遊技機1の電源がオフにされたか否かを判断する。ステップS22の判断結果が「NO」の場合、すなわち、パチンコ遊技機1の電源がオフにされていない場合には、主制御部10は、図7に示すステップS3へ戻り、ステップS3以降の処理を繰り返す。
一方、ステップS22の判断結果が「YES」の場合、すなわち、パチンコ遊技機1の電源がオフにされた場合には、主制御部10は、ステップS23へ進む。ステップS23では、主制御部10は、演出制御部203に終了処理コマンドを送信した後、一連の処理を終了する。
ここで、図9に、大当たり関連コマンド(大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド)の送信タイミングの一例であるタイミングチャートを示す。図9(1)に示す大当たりリーチコマンドは、ランダムに送信される。また、図9(2)に示す大当たり開始コマンドは、実際に大当たりが発生した場合に、大当たり状態に移行する際に1度だけ送信される。さらに、図9(3)に示す大当たりコマンドは、大当たり状態に移行した後、ラウンドごとに継続的に送信される。また、図9(4)に示す大当たり終了コマンドは、大当たり状態のすべてのラウンドが終了し、通常の状態に移行する際に1度だけ送信される。
次に、演出制御部203による処理について説明する。以下では、図柄変動時(大当たりリーチコマンド(図8に示すステップS13参照)又は、はずれリーチコマンド(図8に示すステップS19参照)を受信した場合)及び、大当たり時の演出制御部203の処理について説明する。
まず、演出制御部203による図柄変動処理について、図10に示すフローチャートを参照して説明する。
演出制御部203は、主制御部10から、図柄変動コマンドである大当たりリーチコマンド(図8に示すステップS13参照)又ははずれリーチコマンド(図8に示すステップS19参照)のいずれかを受信したか否かを判断する(図10のステップS31参照)。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、大当たりリーチコマンド又ははずれリーチコマンドのいずれかを受信すると、ステップS31の判断結果が「YES」となり、演出制御部203は、ステップS32へ進む。
ステップS32では、演出制御部203は、予め用意された乱数(例えば、0〜250)から1つの変動演出選択用乱数を無作為に取得した後、ステップS33へ進む。ステップS33では、演出制御部203は、ステップS32の処理で取得した変動演出選択用乱数に基づいて変動演出の種類を選択した後、ステップS34へ進む。
ステップS34では、演出制御部203は、図柄表示部104やランプ制御部205に変動演出別の演出開始コマンドを送信した後、ステップS35へ進む。ステップS35では、演出制御部203は、変動演出の演出時間が経過したか否かを判断する。ステップS35の判断結果が「NO」の場合、すなわち、変動演出の演出時間が経過していない場合には、演出制御部203は、ステップS36へ進む。
ステップS36では、演出制御部203は、主制御部10から図柄停止コマンド(図8に示すステップS15及びS21参照)を受信したか否かを判断する。ステップS36の判断結果が「NO」の場合、すなわち、図柄停止コマンドを受信していない場合には、演出制御部203は、ステップS35へ戻り、ステップS35以降の処理を繰り返す。
一方、ステップS36の判断結果が「YES」の場合、すなわち、図柄停止コマンドを受信した場合には、演出制御部203は、ステップS37へ進む。また、ステップS35の判断結果が「YES」の場合、すなわち、変動演出の演出時間が経過した場合にも、演出制御部203は、ステップS37へ進む。ステップS37では、演出制御部203は、図柄表示部104やランプ制御部205に演出停止コマンドを送信した後、一連の処理を終了する。
次に、演出制御部203による大当たり時の処理について、図11に示すフローチャートを参照して説明する。
まず、演出制御部203は、主制御部10から大当たり開始コマンド(図8に示すステップS16参照)を受信したか否かを判断する(図11のステップS41参照)。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、大当たり開始コマンドを受信すると、ステップS41の判断結果が「YES」となり、演出制御部203は、ステップS42へ進む。
ステップS42では、演出制御部203は、図柄表示部104やランプ制御部205に大当たり開始処理コマンドを送信した後、ステップS43へ進む。ステップS43では、演出制御部203は、主制御部10からラウンド別の大当たりコマンド(図8に示すステップS17参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、ラウンド別の大当たりコマンドを受信すると、ステップS43の判断結果が「YES」となり、演出制御部203は、ステップS44へ進む。
ステップS44では、演出制御部203は、図柄表示部104やランプ制御部205に受信したラウンド別の大当たりコマンドに対応するラウンド別処理コマンドを送信した後、ステップS45へ進む。ステップS45では、主制御部10から大当たり終了コマンド(図8に示すステップS18参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、大当たり終了コマンドを受信すると、ステップS45の判断結果が「YES」となり、演出制御部203は、ステップS46へ進む。ステップS46では、演出制御部203は、図柄表示部104やランプ制御部205に、受信した大当たり終了コマンドを送信した後、一連の処理を終了する。
次に、ランプ制御部205によるランプ制御処理について説明する。ここでは、演出制御部203から図柄変動コマンドを受信した場合(図柄変動時)の処理について、図12に示すフローチャートを参照して説明する。
まず、ランプ制御部205は、演出制御部203から演出開始コマンド(図10に示すステップS34参照)を受信したか否かを判断する(図12のステップS51参照)。この判断結果が「NO」の場合には、ランプ制御部205は、同判断を繰り返す。そして、演出開始コマンドを受信すると、ステップS51の判断結果が「YES」となり、ランプ制御部205は、ステップS52へ進む。
ステップS52では、ランプ制御部205は、例えば、ROM205bから予めコマンド別に記憶されているデータを読み出した後、ステップS53へ進む。ステップS53では、ランプ制御部205は、コマンド別の選択ルーチンを実行した後、ステップS54へ進む。ステップS54では、ランプ制御部205は、ランプデータをセットした後、ステップS55へ進む。
ステップS55では、ランプ制御部205は、ランプ262にランプデータを出力した後、ステップS56へ進む。これにより、ランプ262は、ランプ制御部205から出力されたランプデータに基づいて、点灯又は消灯する。ステップS56では、ランプ制御部205は、演出制御部203から演出停止コマンド(図10に示すステップS37参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、ランプ制御部205は、ステップS55へ戻り、ステップS55以降の処理を繰り返す。一方、ステップS56の判断結果が「YES」の場合、すなわち、演出制御部203から演出停止コマンドを受信した場合には、ランプ制御部205は、ステップS57へ進む。ステップS57では、ランプ制御部205は、ランプデータの出力を停止した後、一連の処理を終了する。
以上説明したように、演出制御部203及びランプ制御部205は、主制御部10から送信される制御コマンドに基づいて各種の処理を行っている。賞球制御部204についても同様である。以下、演出制御部203、賞球制御部204及びランプ制御部205の総称として、「周辺部」を用いる。従って、図1に示す本実施の形態1に係るパチンコ遊技機1の周辺部30は、演出制御部203の機能を有する演出制御手段、賞球制御部204の機能を有する賞球制御手段及びランプ制御部205の機能を有するランプ制御手段を備えている。
ところで、上記のように、遊技機に対し行われる不正行為や、雑音等に起因する遊技機の誤動作により、遊技とは無関係に遊技媒体が払い出され遊技店が多大な損害を被ってしまうことがある。そこで、上記不正行為及び雑音等に起因する遊技機の誤動作を防止するため、本実施の形態1に係るパチンコ遊技機1では、演出制御部203の後段に後段部20を設けている。
そして、本実施の形態1においては、主制御部10は、所定のプログラムコードを用いて分割数分の個体認証データを生成するとともに、動作認証データを生成し、これら個体認証データ及び動作認証データを制御コマンドに付加して後段部20又は演出制御部203に送信する。
後段部20は、動作認証データから各動作検査値(同期コード及び動作コード)を用いて中間動作認証を行い、得られた中間動作認証結果に対して暗号化処理を施して得た中間認証情報を演出制御部203に送信する。そして、演出制御部203は、後段部20から受信した中間認証情報から得られた中間動作認証結果を用いて動作認証を行うとともに個体認証データを用いて個体認証を行って最終的な認証結果を得る。このように、後段部20及び演出制御部203を認証者、主制御部10を被認証者とした認証処理を行い、パチンコ遊技機1の正規性を認証する。この認証処理によって、上記不正行為を検知して、パチンコ遊技機1への不正を防止することができるとともに、外部から加えられる電気的な雑音や機械的な振動等に起因するパチンコ遊技機1の誤動作を低減することができる。
以下、主制御部10と後段部20及び演出制御部203との間で行う認証に関する処理について説明する。以下、主制御部10と演出制御部203との間の認証に関する処理について、図13及び図14に示すフローチャートを参照して説明するが、主制御部10と賞球制御部204との間の認証に関する処理も同様の手順で行われる。
図13は、主制御部10による認証に関する処理の手順の一例を示すフローチャートである。主制御部10は通常の制御信号の送信を行いながら(ステップS61)、認証データの送信タイミングであるか否かを判断する(ステップS62)。この判断結果がNOの場合には、主制御部10は、ステップS61に戻り、再びステップS62の判断を行う。認証データの送信タイミングになると、すなわち、出力する制御コマンドが所定の制御コマンドとなると、ステップS62の判断結果が「YES」となり、主制御部10はステップS63に進み分割数を決定する。分割数の決定方法は任意である。また、分割数は認証データの送信タイミングとなる前に決定されてもよい。
次に、主制御部10は、決定した分割数で所定のプログラムコードを分割し、分割された各データそれぞれに対して半群演算を行って個体検査値を算出し(ステップS64)、個体検査値に対して暗号化処理を施して個体認証データを生成する(ステップS65)。この処理により、分割数分の個体検査値及び個体認証データが生成される。なお、個体検査値の生成は、認証データの送信タイミングとなる前に行っておいてもよい。
次に、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS66)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。なお、初回は予め後段部20及び演出制御部203との間で決められている。また、主制御部10は、機能番号を用いて動作コードを生成する(ステップS67)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成する(ステップS68)。
続いて、主制御部10は、個体検査値(個体認証データ)、同期コード及び動作コード(動作認証データ)を制御コマンドデータに付加して、演出制御部203に認証データ付制御信号を送信する(ステップS69)。認証データ付制御信号は連続して送信してもよいし、通常の制御信号に混ぜて送信してもよい。主制御部10は、全ての認証データ(個体認証データ及び動作認証データ)を送信するまで(ステップS70:NO)、ステップS69に戻り、認証データ付制御信号の送信を繰り返す。なお、主制御部10は、生成した認証データのうち未送信の認証データがある場合(ステップS70:NO)、新たに認証データを生成せず、必ずステップS69に戻り認証データ付制御信号の送信を行う。また、認証データを付加する制御コマンドは特に制限されず任意の制御コマンドでよい。そして、全ての認証データを送信すると(ステップS70:YES)、ステップS71に進む。
続いて、主制御部10は、ステップS63で決定した分割数に基づいて、上記選択例1に従い、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類が連続パケット情報か否かを決定する(ステップS71)。次回の認証に関する処理の際に同期コードの生成に用いるパケット情報が連続パケット情報の場合(ステップS71:YES)、主制御部10は、次回の同期コード生成時は連続パケット情報を選択すると決定し(ステップS72)、一連の処理を終了する。一方、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報が連続パケット情報でない場合(ステップS71:NO)、主制御部10は、次回の同期コード生成時は間欠パケット情報を選択すると決定し(ステップS73)、一連の処理を終了する。
次に、後段部20による認証に関する処理について説明する。図14は、後段部20による認証に関する処理の手順の一例を示すフローチャートである。まず、後段部20は、主制御部10から演出制御部203を介して送信された図6に示すような制御信号を受信したか否かを判断する(ステップS81)。この判断結果が「NO」の場合には、後段部20は、同判断を繰り返す。そして、主制御部10から送信された制御信号を受信すると(ステップS81:YES)、後段部20は、ステップS82へ進む。
ステップS82では、後段部20は、受信した制御信号に動作認証データが含まれているか否かを判断する。受信した制御信号に動作認証データが含まれている場合(ステップS82:YES)、後段部20は、ステップS83へ進む。ここで、制御信号に動作認証データが含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ又は付随データを構成する任意のビット又は別個に設けられている識別データ(図示略)が動作認証データが含まれていることを示しているか否かを判断することによって行う。なお、ステップS82の処理において、後段部20は、受信した制御信号に動作認証データが含まれているか否かを判断するのではなく、制御信号に含まれる制御コマンドデータが所定の制御コマンドの制御コマンドデータであるか否かを判断してもよい。
受信した制御信号に動作認証データが含まれている場合(ステップS82:YES)、すなわち、受信した制御信号が動作認証データ付制御信号の場合、後段部20は、受信した認証データ付制御信号に含まれている動作認証データを抽出して復号化処理を行って同期コード及び動作コードを抽出する(ステップS83)。後段部20は、抽出した同期コード及び動作コードを主制御部10の動作順序が判別可能なように配列して動作検査値用メモリに記憶して、ステップS84に進む。
続いて、後段部20は、同期コードを用いた中間動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS84)。そして後段部20は、ステップS84で確認した主制御部10より送信されたパケット情報の相関関係と、予め期待値として保持していた相関条件(同期コード期待値)とを比較し、両者が同一か否かを照合する(ステップS85)。両者が同一であった場合(ステップS85:YES)、後段部20は、同一を示す同期コードでの中間動作認証結果を生成し(ステップS86)、ステップS88へ進む。一方、両者が非同であった一の場合(ステップS85:NO)、後段部20は、非同一を示す同期コードでの中間動作認証結果を生成し(ステップS87)、ステップS88へ進む。なお、後段部20は、抽出した同期コードに含まれるパケット情報又は動作コードに含まれる機能番号が1個の場合は、ステップS84又はステップS88の処理を行わずステップS81に戻り、複数個のパケット情報又は機能番号を取得するまで以降の処理を繰り返す。
続いて、後段部20は、動作コードを用いた中間動作認証として、抽出した動作コードに含まれる機能番号の配列を確認し(ステップS88)、予め期待値として保持していた機能番号の配列順序(動作コード期待値)と一致するか否かを判断する(ステップS89)。両者が一致する場合(ステップS89:YES)、後段部20は、動作コードでの中間動作認証が成功であったと判断し、成功を示す動作コードでの中間動作認証結果を生成し(ステップS90)、ステップS92へ進む。一方、両者が一致しない場合(ステップS89:NO)、後段部20は、動作コードでの中間動作認証が不成功であったと判断し、不成功を示す動作コードでの中間動作認証結果を生成し(ステップS91)、ステップS92へ進む。
続いて、後段部20は、ステップS86又はステップS87で得られた同期コードでの中間動作認証結果、及びステップS90又はステップS91で得られた動作コードでの中間動作認証結果に対して暗号化処理を施し、中間認証情報を生成する(ステップS92)。その後、後段部20は、生成した中間認証情報の内容を示す中間認証情報信号を生成し、演出制御部203へ送信する(ステップS93)。そして、後段部20は、動作検査値用メモリに記憶されているデータを消去するとともに受信した制御コマンドデータ及び付随データを破棄した後(ステップS94)、一連の処理を終了する。
また、ステップS82で、仮に受信した制御信号に動作認証データが含まれていない場合、すなわち、受信した制御信号が通常の制御信号である場合(ステップS82:NO)、後段部20は、認証処理を行わず、受信した制御コマンドデータ及び付随データを破棄した後(ステップS94)、一連の処理を終了する。
次に、演出制御部203による認証に関する処理について説明する。図15は、演出制御部203による認証に関する処理の手順の一例を示すフローチャートである。まず、演出制御部203は、主制御部10から制御信号を受信したか否かを判断する(ステップS101)。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、主制御部10から制御信号を受信すると、ステップS101の判断結果が「YES」となり、演出制御部203は、ステップS102へ進む。
ステップS102では、演出制御部203は、受信した制御信号に各認証データが含まれているか否かを判断する。ステップS102の判断結果が「YES」の場合、すなわち、受信した制御信号に各認証データが含まれている場合、演出制御部203は、ステップS103へ進む。ここで、制御信号に各認証データが含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ又は付随データを構成する任意のビット又は別個に設けられている識別データ(図示略)が、各認証データが含まれていることを示しているか否かを判断するか、あるいは、制御信号に含まれる制御コマンドデータが、認証処理を行うために予め設定した所定の制御コマンドの制御コマンドデータであるか否かを判断してもよい。
受信した制御信号に各認証データが含まれている場合(ステップS102:YES)、すなわち、受信した制御信号が認証データ付制御信号の場合、演出制御部203は、受信した認証データ付制御信号に含まれている個体認証データ及び動作認証データを抽出し、更に個体認証データに対して復号化処理を行って個体検査値を抽出する(ステップS103)。演出制御部203は、抽出した個体検査値を個体検査値用メモリに、抽出した動作認証データを動作検査値用メモリに記憶して、ステップS104へ進む。また、ステップS102で、受信した制御信号に認証データが含まれていない場合、すなわち、受信した制御信号が通常の制御信号である場合(ステップS102:NO)、演出制御部203は、認証処理を行わず、ステップS115へ進む。次に、演出制御部203は、動作検査値用メモリに記憶された動作認証データに制御コマンドデータ及び付随データを付加して動作認証データ付制御信号を生成し、動作認証データ付制御信号を後段部20へ送信し(ステップS104)、ステップS105へ進む。
次に、演出制御部203は、個体認証処理として、個体検査値用メモリ内の全ての個体検査値に対して半群演算(結合処理)を行う(ステップS105)。個体検査値用メモリ内の検査値が1つの場合は、結合処理を行わずにそのままステップS106に進む。そして、演出制御部203は、結合処理の演算結果(結合結果)と保持している個体認証期待値とを照合して、結合結果と個体認証期待値とが一致するか否かを判断する(ステップS106)。結合結果と個体認証期待値とが一致する場合(ステップS106:YES)、演出制御部203は、主制御部10の個体認証は成功であったと判断する(ステップS107)。
次に、演出制御部203は、後段部20より送信される中間認証情報信号を受信したか否かを判断し(ステップS108)、受信するまで同判断を繰り返す。後段部20から送信された中間認証情報信号を受信すると(ステップS108:YES)、演出制御部203は、中間認証情報信号が示す後段部20での中間動作認証結果を抽出し、動作検査値用メモリに記憶する。続いて、演出制御部203は、動作認証処理として、動作検査値用メモリに記憶されている取得した中間動作認証結果を参照し(ステップS109)、動作コードを用いた中間動作認証が成功であったか否かを判断する(ステップS110)。動作コードでの中間動作認証結果が成功を示す場合(ステップS110:YES)、演出制御部203は、後段部20での動作コードを用いた中間動作認証が成功であったと判断し、ステップS111へ進む。一方、動作コードでの中間動作認証結果が不成功を示す場合(ステップS110:NO)、演出制御部203は、主制御部10及び後段部20に対する動作認証は不成功であり、今回のパチンコ遊技機1の認証処理は不成功であったと判断し(ステップS119)、ステップS120へ進む。
続いて、演出制御部203は、後段部20において動作コードを用いた中間動作認証が成功であった場合(ステップS110:YES)、動作検査値用メモリに記憶されている中間動作認証結果のうち、同期コードでの中間動作認証結果を用いて引き続き動作認証処理を行う。演出制御部203は、同期コードでの中間動作認証結果が、主制御部10より送信されたパケット情報の相関関係と、後段部20で予め期待値として保持していた相関条件(同期コード期待値)とが同一を示すものか、非同一を示すものかを確認し、予め期待値として保持していた動作認証期待値を読み出し、中間動作認証結果と動作認証期待値とが一致するか否かを判断する(ステップS111)。中間動作認証結果と動作認証期待値とが一致する場合(ステップS111:YES)、演出制御部203は、主制御部10及び後段部20の動作認証は成功であり(ステップS112)、ステップS107での個体認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断し(ステップS113)、ステップS114へ進む。一方、同期コードでの中間動作認証結果と動作認証期待値とが一致しない場合(ステップS111:NO)、演出制御部203は、主制御部10及び後段部20に対する動作認証は不成功であり、今回のパチンコ遊技機1の認証処理は不成功であったと判断し(ステップS119)、ステップS120へ進む。
ステップS114では、演出制御部203は、ステップS105で判明した結合数に基づいて、上記選択例1に従い、次回の認証に関する処理の際に使用する動作認証期待値において、同一を示す動作認証期待値を使用するか否かを決定する(ステップS114)。次回の認証に関する処理の際の動作認証期待値の種類が同一の場合(ステップS114:YES)、演出制御部203は、次回の同期コードでの中間動作認証結果を照合する際の動作認証期待値に、同一を示す動作認証期待値を選択すると決定し(ステップS115)、ステップS117へ進む。一方、次回の認証に関する処理の際の動作認証期待値の種類が同一でない場合(ステップS114:NO)、演出制御部203は、次回の同期コードでの中間動作認証結果を照合する際の動作認証期待値に、非同一を示す動作認証期待値を選択すると決定し(ステップS116)、ステップS117へ進む。ステップS117では、演出制御部203は、個体検査値用メモリ及び動作検査値用メモリに記憶されているデータを消去するとともに制御コマンドデータ及び付随データに基づく処理を行った後、一連の処理を終了する。
一方、ステップS106において、結合結果と個体認証期待値が一致しない場合(ステップS106:NO)、演出制御部203は、所定数以上の個体認証データを受信するまで(ステップS118:NO)、ステップS101に戻り、個体認証データの受信及び個体検査値の結合処理を繰り返す。所定数以上の個体認証データを受信すると(ステップS118:YES)、演出制御部203は、主制御部10に対する個体認証は不成功であり、今回のパチンコ遊技機1の認証処理は不成功であったと判断し(ステップS119)、ステップS120に進む。ステップS120では、演出制御部203は、制御コマンドデータ及び付随データに基づく処理を中断し、これらのデータを破棄するとともに、不正行為を報知するための報知信号を図柄表示部104やランプ制御部205、あるいはパチンコ遊技機1を管理するセンター制御装置などに送信した後、一連の処理を終了する。なお、ステップS120の処理では、演出制御部203は、データの破棄と報知のいずれか一方のみを行うようにしてもよい。
図柄表示部104やランプ制御部205等は、受信した報知信号に基づいて、主制御部10に不正が行われたおそれがある旨を報知する演出を実行する。この演出は、例えば、図柄表示部104に通常出現しないキャラクターを出現させたり、通常出現するキャラクターを通常とは異なる方法で出現させるなどである。また、図柄表示部104の輝度を変えたり、色を変えたり、ランプ制御部205に対して所定のランプを表示制御するようにしてもよい。いずれにせよ、遊技店の従業員が当該パチンコ遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
また、報知信号に「大当たり中」や「確率変動中」などのパチンコ遊技機1の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、パチンコ遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行ってもよい。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
次に、図13、図14及び図15に示す処理のうち、主制御部10での同期コードの生成に用いるパケット情報の変更処理と、演出制御部203での動作認証期待値の変更処理における具体例について説明する。図16は、主制御部10、後段部20、及び演出制御部203の間のデータの流れの一例を示すシーケンス図である。本実施の形態1では、分割数及び結合数に基づいたパケット情報の種類及び動作認証期待値の選択例として、図5に示した選択例1(ここでは、X=3とする)を用いて説明する。
まず、主制御部10は、ステップS121の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS122へ進む。主制御部10は、例えば、今回の分割数を3と決定する。ステップS122では、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを3個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて3つの個体検査値を生成し(ステップS122)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS123)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS124)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。なお、初回は予め後段部20及び演出制御部203との間で決められており、ここでは、連続パケット情報とする。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS125)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS126)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203に送信する(ステップS127)。その後、主制御部10は、ステップS121で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS128)。ここでは、分割数=3であり、X=3で割ると余り値=0のため、次回用いるパケット情報の種類を連続パケットから間欠パケット情報に変更する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS129)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS130)。そして、演出制御部203は、動作認証データに制御コマンドデータ及び付随データを付加して動作認証データ付制御信号を生成し、動作認証データ付制御信号を後段部20へ送信する(ステップS131)。その後、演出制御部203は、個体認証処理として、抽出した個体検査値に対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS132)。その後、結合結果を予め保持していた個体認証期待値と照合し(ステップS133)、個体認証期待値と一致すると、演出制御部203は、主制御部10の個体認証は成功であったと判断する(ステップS133)。ここでは、3つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=3と判明する。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された動作認証データ付制御信号を受信すると(ステップS134)、動作認証データ付制御信号から動作認証データを抽出するともに、動作認証データから同期コード及び動作コードを抽出する(ステップS135)。そして、後段部20は、同期コードを用いた中間動作認証処理として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS136)。そして、後段部20は、算出した差分値が示す情報と予め保持する同期コード期待値とを照合する(ステップS137)。具体的には、同期コード期待値は、連続又は間欠パケット情報のいずれかの種類におけるパケット情報同士の相関関係を示す情報である。連続又は間欠パケットのどちらの同期コード期待値を読み出すかは、予め主制御部10及び演出制御部203との間で決められており、ここでは、常に連続パケット情報とする。今回は、主制御部10より送信されたパケット情報の種類及び同期コード期待値とも、連続パケット情報であるので両者は同一という結果となる(ステップS137)。
続いて、後段部20は、動作コードを用いた中間動作認証として、抽出した動作コードに含まれる機能番号の配列を確認する(ステップS138)。そして、後段部20は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS139)、動作コード期待値と一致すると、動作コードを用いた中間動作認証が成功であったと判断する(ステップS139)。そして、後段部20は、動作コードでの中間動作認証は成功を示し、同期コードでの中間動作認証は同一を示す結果を生成する。後段部20は、この中間動作認証結果に暗号化処理を施して中間認証情報を生成し(ステップS140)、中間認証情報の内容を示す中間認証情報信号を演出制御部203に送信する(ステップS141)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS142)、中間認証情報信号が示す後段部20での中間動作認証結果を抽出する。そして、演出制御部203は、動作認証処理として、抽出した中間動作認証結果を参照し、予め期待値として保持していた動作認証期待値と照合する(ステップS143)。動作認証期待値は、中間動作認証結果が同一又は非同一のいずれかを示す情報である。同一又は非同一のどちらの動作認証期待値を読み出すかは、前回の認証に関する処理の際に決められている。なお、初回は予め主制御部10及び後段部20との間で決められており、ここでは、同一を示す情報とする。今回は、後段部20より送信された中間動作認証結果及び動作認証期待値とも、同一を示す情報であるので両者は一致する結果となる(ステップS143)。演出制御部203は、中間動作認証結果と動作認証期待値とが一致すると、主制御部10及び後段部20の動作認証は成功であり(ステップS144)、ステップS133での個体認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS144)。その後、演出制御部203は、ステップS132で判明した結合数に基づいて、次回の認証に関する処理の際に動作認証期待値として読み出す情報の種類を選択する。(ステップS145)。ここでは、結合数=3であり、X=3で割ると余り値=0のため、次回用いる動作認証期待値を同一から非同一に変更する。ここまでが一連の選択処理の流れである。
2回目の処理の説明に移る。主制御部10は、ステップS146の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS147へ進む。主制御部10は、例えば、今回の分割数を4と決定する。ステップS147では、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを4個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて4つの個体検査値を生成し(ステップS147)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS148)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS149)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS150)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS151)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203送信する(ステップS152)。その後、主制御部10は、ステップS146で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS153)。ここでは、分割数=4であり、X=3で割ると余り値=1のため、次回用いるパケット情報の種類は間欠パケット情報のまま継続する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS154)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS155)。そして、演出制御部203は、動作認証データに制御コマンドデータ及び付随データを付加して動作認証データ付制御信号を生成し、動作認証データ付制御信号を後段部20へ送信する(ステップS156)。その後、演出制御部203は、個体認証処理として、抽出した個体検査値に対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS157)。その後、結合結果を予め保持していた個体認証期待値と照合し(ステップS158)、個体認証期待値と一致すると、演出制御部203は、主制御部10の個体認証は成功であったと判断する(ステップS158)。ここでは、4つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=4と判明する。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された動作認証データ付制御信号を受信すると(ステップS159)、動作認証データ付制御信号から動作認証データを抽出するともに、動作認証データから同期コード及び動作コードを抽出する(ステップS160)。そして、後段部20は、同期コードを用いた中間動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS161)。そして、後段部20は、算出した差分値が示す情報と予め保持する同期コード期待値とを照合する(ステップS162)。具体的には、同期コード期待値は、連続又は間欠パケット情報のいずれかの種類におけるパケット情報同士の相関関係を示す情報である。連続又は間欠パケットのどちらの同期コード期待値を読み出すかは、前回の認証に関する処理と同様、ここでは、常に連続パケット情報とする。今回は、主制御部10より送信されたパケット情報の種類は間欠パケット情報、同期コード期待値は連続パケット情報であるので、両者は非同一という結果となる(ステップS162)。
続いて、後段部20は、動作コードを用いた中間動作認証として、抽出した動作コードに含まれる機能番号の配列を確認する(ステップS163)。そして、後段部20は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS164)、動作コード期待値と一致すると、動作コードを用いた中間動作認証が成功であったと判断する(ステップS164)。そして、後段部20は、動作コードでの中間動作認証は成功を示し、同期コードでの中間動作認証は非同一を示す結果を生成する。後段部20は、この中間動作認証結果に対して暗号化処理を施し、中間認証情報を生成し(ステップS165)、中間認証情報の内容を示す中間認証情報信号を演出制御部203に送信する(ステップS166)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS167)、中間認証情報信号が示す後段部20での中間動作認証結果を抽出する。そして、演出制御部203は、動作認証処理として、抽出した中間動作認証結果を参照し、予め期待値として保持していた動作認証期待値と照合する(ステップS168)。同一又は非同一のどちらの動作認証期待値を読み出すかは、前回の認証に関する処理の際に決められている。ここでは、非同一を示す情報である。今回は、後段部20より送信された中間動作認証結果及び動作認証期待値とも、非同一を示す情報であるので両者は一致する結果となる(ステップS168)。演出制御部203は、中間動作認証結果と動作認証期待値とが一致すると、主制御部10及び後段部20の動作認証は成功であり(ステップS168)、ステップS158での個体認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS169)。その後、演出制御部203は、ステップS157で判明した結合数に基づいて、次回の認証に関する処理の際に動作認証期待値として読み出す情報の種類を選択する。(ステップS170)。ここでは、結合数=4でありX=3で割ると余り値=1のため、次回用いる動作認証期待値は非同一のまま継続する。ここまでが一連の選択処理の流れである。
3回目の処理の説明に移る。主制御部10は、ステップS171の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS172へ進む。主制御部10は、例えば、今回の分割数を5と決定する。ステップS172は、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを5個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて5つの個体検査値を生成し(ステップS172)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS173)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS174)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS175)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS176)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203に送信する(ステップS177)。その後、主制御部10は、ステップS171で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS178)。ここでは、分割数=5であり、X=3で割ると余り値=2のため、次回用いるパケット情報の種類を間欠パケットから連続パケット情報に変更する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS179)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS180)。そして、演出制御部203は、動作認証データに制御コマンドデータ及び付随データを付加して動作認証データ付制御信号を生成し、動作認証データ付制御信号を後段部20へ送信する(ステップS181)。その後、演出制御部203は、個体認証処理として、抽出した個体検査値に対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS182)。その後、結合結果を予め保持していた個体認証期待値と照合し(ステップS183)、個体認証期待値と一致すると、演出制御部203は、主制御部10の個体認証は成功であったと判断する(ステップS183)。ここでは、5つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=5と判明する。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された動作認証データ付制御信号を受信すると(ステップS184)、動作認証データ付制御信号から動作認証データを抽出するともに、動作認証データから同期コード及び動作コードを抽出する(ステップS185)。そして、後段部20は、同期コードを用いた中間動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS185)。そして、後段部20は、算出した差分値が示す情報と予め保持する同期コード期待値とを照合する(ステップS185)。具体的には、同期コード期待値は、連続又は間欠パケット情報のいずれかの種類におけるパケット情報同士の相関関係を示す情報である。連続又は間欠パケットのどちらの同期コード期待値を読み出すかは、前回の認証に関する処理と同様、ここでは、常に連続パケット情報とする。今回は、主制御部10より送信されたパケット情報の種類は間欠パケット情報、同期コード期待値は連続パケット情報であるので、両者は非同一という結果となる(ステップS187)。
続いて、後段部20は、動作コードを用いた中間動作認証として、抽出した動作コードに含まれる機能番号の配列を確認する(ステップS188)。そして、後段部20は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS189)、動作コード期待値と一致すると、動作コードを用いた中間動作認証が成功であったと判断する(ステップS189)。そして、後段部20は、動作コードでの中間動作認証は成功を示し、同期コードでの中間動作認証は非同一を示す結果を生成する。この中間動作認証結果に対して暗号化処理を施し、中間認証情報を生成し(ステップS190)、中間認証情報の内容を示す中間認証情報信号を演出制御部203に送信する(ステップS191)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS192)、中間認証情報信号が示す後段部20での中間動作認証結果を抽出する。そして、演出制御部203は、動作認証処理として、抽出した中間動作認証結果を参照し、予め期待値として保持していた動作認証期待値と照合する(ステップS193)。同一又は非同一のどちらの動作認証期待値を読み出すかは、前回の認証に関する処理の際に決められている。ここでは、非同一を示す情報である。今回は、後段部20より送信された中間動作認証結果及び動作認証期待値とも、非同一を示す情報であるので両者は一致する結果となる(ステップS193)。演出制御部203は、中間動作認証結果と動作認証期待値とが一致すると、主制御部10及び後段部20の動作認証は成功であり(ステップS193)、ステップS183での個体認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS194)。その後、演出制御部203は、ステップS182で判明した結合数に基づいて、次回の認証に関する処理の際に動作認証期待値として読み出す情報の種類を選択する。(ステップS195)。ここでは、結合数=5でありX=3で割ると余り値=2のため、次回用いる動作認証期待値を非同一から同一に変更する。以上が一連の選択処理の流れである。
このように、本実施の形態1では、主制御部10は、予め記憶された所定のデータ(所定のプログラムコード)を分割して個体検査値を生成するとともに、動作認証に関する処理として、分割された各データの数(分割数)に基づいて、同期コードを生成するために用いるパケット情報の種類を選択する。後段部20は、動作認証に関する処理として、主制御部10で生成されたパケット情報の相関関係が、予め記憶された相関関係の期待値(同期コード期待値)と同一か否かを照合する(同期コードを用いた中間動作認証)。演出制御部203は、個体検査値を用いて個体認証を行うとともに、動作認証に関する処理として、後段部20での照合結果(同期コードでの中間動作認証結果)が、予め記憶された後段部20での照合結果の期待値(動作認証期待値)と一致するか否かを判断する(動作認証)。また、演出制御部203は、個体認証が成功した際に半群演算の対象となった個体検査値の数(結合数)に基づいて、動作認証期待値を変更する。分割数は主制御部10だけが知り得る値であり、結合数は個体認証が成功して初めて演出制御部203が知り得る値である。よって、不正行為者は、主制御部10における同期コード生成に用いるパケット情報や演出制御部203における動作認証期待値の切り替えタイミングを知ることができない。このため、不正行為者が同期コードを不正に生成することを防止し、主制御部10、後段部20、演出制御部203の間の処理に対する認証強度を向上させることができるとともに、上記不正行為及び遊技機の誤動作を検知することができ、これらに起因する不正な制御コマンドの実行を防止することができる。
また、本実施の形態1では、後段部20及び演出制御部203での動作認証に関する処理として、後段部20は、今回の認証に関する処理において主制御部10で生成されたパケット情報の相関関係が、予め記憶された相関関係の期待値(同期コード期待値)と同一か否かを照合する(同期コードを用いた中間動作認証)。そして、演出制御部203は、今回の動作認証に関する処理において後段部20より送信される同期コードを用いた中間動作認証での照合結果(同期コードでの中間動作認証結果)が同一又は非同一のどちらの照合結果であるかを予測した期待値(動作認証期待値)を保持し、これと受信した照合結果とが一致するか否かを判断する(動作認証)。よって、動作認証が成功する場合であっても、後段部20から演出制御部203へ送信される上記照合結果の情報は、同一又は非同一の種類の情報が存在しうる。さらに、同一又は非同一のいずれの照合結果の情報が送信されるかは、主制御部10だけが知り得る分割数に応じて決まる。このため、後段部20と演出制御部203との間で送受信されるデータ信号を不正に窃取しようとする不正行為者は、今回の動作認証に関する処理において、同一又は非同一のいずれの照合結果が正しいかを知ることができない。よって不正行為者を撹乱することができ、後段部20と演出制御部203との間の処理に対する認証強度を向上させることができる。
また、本実施の形態1では、パチンコ遊技機1の動作認証に関する処理として、同期コードおよび動作コードの2種類の動作検査値を用いて動作認証を行う。2種類の動作検査値を用いて二重に認証処理を行うことにより、主制御部10、後段部20、演出制御部203の間の処理に対する動作認証の認証強度を向上させることができる。
また、本実施の形態1では、パチンコ遊技機1の認証処理として、演出制御部203で主制御10の個体認証を行うとともに、後段部20と演出制御部203の両方で動作認証を行っているので、主制御部10に対する上記不正行為及び雑音等に起因するパチンコ遊技機1の誤作動の他、後段部20に対する不正行為及び誤動作を検知することができる。例えば、後段部20と演出制御部203との間に、信号切替回路等が搭載された不正な制御部が介在した場合であっても、不正な制御部は、結合数に基づく演出制御部203での動作認証期待値の切り替えタイミングを知ることができないため、演出制御部203で不正行為を検知することができ、パチンコ遊技機1全体としてのセキュリティ強度を向上させることができる。
また、本実施の形態1では、パチンコ遊技機1の認証処理として、個体認証を演出制御部203で行い、動作認証を後段部20と演出制御部203で行っている。つまり、認証処理の一部を後段部20が実行するので、演出制御部203を構成するCPUの処理負荷の増大を抑制することができる。このため、演出制御部203の処理速度が低下し、演出のための表示がスムーズに行われないなどの問題の発生を防止することができる。
さらに、本実施の形態1では、演出制御部203の後段に後段部20を設けているので、主制御部10を構成するCPU10aと演出制御部203を構成するCPU203aとの間の処理能力の差異や、主制御部10を構成するROM10bやRAM10cと演出制御部203を構成するROM203bやRAM203cとの間の記憶容量の差異を、後段部20において吸収することができる。これにより、主制御部10と演出制御部203との間で処理能力や記憶容量に差異があるにもかかわらず、主制御部10と演出制御部203との間のセキュリティレベルを維持することができる。
例えば、主制御部10を構成するCPU10aの処理能力や主制御部10を構成するROM10bやRAM10cの記憶容量が、演出制御部203を構成するCPU203aの処理能力や演出制御部203を構成するROM203bやRAM203cの記憶容量と比較して余裕がある場合、主制御部10は、各検査値に対して複雑又は高度な暗号化処理を施して得られた認証データを演出制御部203を介して後段部20に送信し、後段部20は、受信した上記認証データを用いて認証に関する処理を行い、得られた結果等に対して比較的簡易又は低度な暗号化処理を施して中間認証情報を生成し、演出制御部203に送信する。そして、演出制御部203は、中間認証情報を用いて認証に関する処理を行う。このように構成することにより、演出制御部203において複雑又は高度な復号化方式を採用しなくても、パチンコ遊技機1として高度のセキュリティレベルを維持することができる。
また、演出制御部203を構成するCPU203aの処理能力や演出制御部203を構成するROM203bやRAM203bの記憶容量が、主制御部10を構成するCPU10aの処理能力や主制御部10を構成するROM10bやRAM10cの記憶容量と比較して余裕がある場合、主制御部10は、各検査値を認証データとしてそのままあるいは比較的簡易又は低度な暗号化処理を施して得られた認証データを演出制御部203を介して後段部20に送信し、後段部20は、受信した上記認証データを用いて認証に関する処理を行い、得られた結果等に対して複雑又は高度な暗号処理を施して、中間認証情報を生成し、演出制御部203に送信する。そして、演出制御部203は、中間認証情報を用いて認証に関する処理を行う。このように構成することにより、主制御部10において複雑又は高度な暗号化方式を採用しなくても、パチンコ遊技機1として高度のセキュリティレベルを維持することができる。
このようなことは、主制御部10及び演出制御部203をそれぞれ構成するCPU10a及び203aの処理能力や、ROM10b及び203b並びにRAM10c及び203cの記憶容量における余裕に差異がある場合だけでなく、このような差異はないが、主制御部10を構成するCPU10a又は演出制御部203を構成するCPU203aが、それぞれ実行するプログラムの一方の全部又は一部が変更された場合(バージョンアップなど)や、各検査値又は中間認証情報等のデータ構造等において、主制御部10と演出制御部203との間で形式的な差異が発生した場合についても同様に当てはまる。
また、本実施の形態1では、後段部20及び演出制御部203での動作認証に関する処理として、後段部20は、主制御部10で生成され演出制御部203を介して送信された動作検査値が、予め保持する中間動作認証期待値と同一か否かを照合し(中間動作認証)、得られた照合結果(中間動作認証結果)を演出制御部203へ送信する。そして、演出制御部203は、後段部20より送信された照合結果(中間動作認証結果)が、予め保持する動作認証期待値と一致するか否かを判断する(動作認証)。また、主制御部10が今回の分割数に基づいて次回の動作検査値の生成方式を切り替えているのに同期して、演出制御部203が今回の結合数に基づいて次回の動作認証期待値の種類を切り替えている。
つまり、動作認証に関する処理を後段部20と演出制御部203の両方で一体的に実行している。そして、個体認証を実施する演出制御部203で判明する結合数に基づいて、自身が保持する動作認証期待値の切り替え処理を実行している。
しかしながら、本実施の形態1はこれに限定されず、後段部20にて動作認証に関する処理を中心的に実行し、演出制御部203では後段部20の動作認証結果を確認する程度に留めるような構成とすることも可能である。このとき、個体認証を実施する演出制御部203で判明する結合数に基づいて、後段部20が保持する動作認証期待値の切り替え処理を実行するために、演出制御部203が、後段部20が次回の動作認証に使用する動作認証期待値の種類を切り替えるか否か(又は、どの種類を選択するか)を示した情報(切替情報)を生成し、結合数が判明した後から次回の動作認証までの間に、後段部20に送信することとすればよい。
具体的には、後段部20は、主制御部10で生成され演出制御部203を介して送信された動作検査値が、予め保持する動作認証期待値と一致するか否かを判断し(動作認証)、得られた動作認証結果を演出制御部203へ送信する。次に、演出制御部203は、後段部20より送信された動作認証結果が成功であったか否かを確認する。そして、演出制御部203は、動作認証結果が成功であった場合、自身で行った個体認証の結果が成功であったことと併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する。その後、演出制御部203は、今回の結合数に基づいて、次回の後段部20での動作認証で使用する動作認証期待値の切替情報を生成し、後段部20へ送信する。このように、後段部20にて動作認証に関する処理を中心的に実行し、演出制御部203では後段部20の動作認証結果を確認する程度に留めるような構成とすることで、後段部20と演出制御部203の両方で一体的に実行する場合と比較して、演出制御部203を構成するCPUの処理負荷の増大を抑制することができ、演出制御部203の処理速度低下による演出表示の不具合等の発生を防止することができる。
このとき、後段部20は、動作認証の成功不成功にかかわらず常に得られた動作認証結果を演出制御部203へ送信する必要はなく、動作認証が不成功の場合のみ動作認証が不成功であったことを示す認証不成功信号を生成し演出制御部203へ送信するように構成することもできる。演出制御部203は、後段部20より認証不成功信号を受信していないときは、後段部20が動作認証に成功しているとみなし、自身で行った個体認証の結果が成功であったことと併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断すればよい。このようにすることで、後段部20から常に動作認証結果を演出制御部203へ送信する場合と比較して、更に演出制御部203を構成するCPUの処理負荷の増大を抑制することができる。
<<実施の形態2>>
以下、本発明の実施の形態2に係るパチンコ遊技機1について説明する。本実施の形態2のパチンコ遊技機1は、後段部20及び周辺部30(演出制御部203)での認証に関する処理が、実施の形態1のパチンコ遊技機1と異なる。具体的には、実施の形態1では、後段部20で中間的な動作認証を行い、周辺部30(演出制御部203)で個体認証及び最終的な動作認証を行っていたのに対し、実施の形態2では、後段部20で個体認証を行い、周辺部30(演出制御部203)で動作認証を行う。これ以外の点は、主制御部10での認証に関する処理を含め、基本的に実施の形態1のパチンコ遊技機1と同様である。以下、実施の形態1のパチンコ遊技機と同一の部材には同一の符号を付してその詳細な説明は省略し、異なる点について重点的に説明する。
後段部20は、期待値記憶手段21と、中間認証手段22を備えている。期待値記憶手段21は、主制御部10を構成するデータ記憶手段11に記憶されている所定のデータと同一のデータを用いて2項演算を行って得られた演算値を個体認証期待値として予め記憶している。中間認証手段22は、主制御部10から送信された個体認証データを用いた個体認証の結果と後述する切替情報を用いて、周辺部30にて個体認証及び動作認証の両面から最終的な認証判断を行う際に用いる中間認証情報を生成する。
具体的には、中間認証手段22は、まず、主制御部10から周辺部30を介して送信された個体認証データを用いて個体認証を行う。より詳細には、制御コマンドに付加されて主制御部10から周辺部30を介して送信された個体認証データから個体検査値を抽出し、抽出した個体検査値に対して、主制御部10と同一の結合法則を満たす2項演算を行った演算結果と、期待値記憶手段21に記憶されている個体認証期待値とが一致するか否かによって個体認証が成功したか否かを判断する。また、中間認証手段22は、個体認証が成功したときの個体検査値の数(結合数)に基づいて、次回の周辺部30で行われる同期コードを用いた動作認証において使用する同期コード期待値の種類を、今回の動作認証で使用している同期コード期待値から切り替えるか否かの情報(以下、切替情報という)を生成する。
その後、後段部20は、個体認証結果と切替情報とに暗号化処理を施して中間認証情報を生成し、周辺部30へ送信する。
一方、周辺部30は、期待値記憶手段31と、認証手段32とを備えている。期待値記憶手段31は、主制御部10で生成される同期コードに含まれるパケット情報の種類ごとに予め設定された所定の相関関係を示す情報を同期コード期待値として予め記憶している。また、期待値記憶手段31は、主制御部10で生成される動作コードの種類ごとに予め設定され、主制御部10の動作順序を判別可能なように関連付けられたデータを動作コード期待値として予め記憶している。なお、同期コード期待値と動作コード期待値とを総称して動作認証期待値という。認証手段32は、後段部20から送信された中間認証情報に含まれる動作認証データを用いて動作認証を行うとともに、中間認証情報に含まれる個体認証結果とを併せて、個体認証及び動作認証の両面から最終的なパチンコ遊技機1の正規性を認証する。
具体的には、周辺部30は、まず、主制御部10から送信された個体認証データをそのまま或いは制御コマンドに付加した個体認証データ付制御信号として後段部20に送信する。そして、主制御部10から送信された動作認証データを用いて動作認証を行う。より詳細には、認証手段32は、主制御部10より送信された動作認証データから同期コードを抽出し、抽出した同期コードに含まれるパケット情報が予め設定された所定の相関関係を有するかを確認するため、連続して生成された二つのパケット情報同士の差分(減算に限られない)を求める。そしてこの差分値が示す情報が、期待値記憶手段31に記憶されている同期コード期待値と一致するか否かを判断する。また、認証手段32は、主制御部10より送信された動作認証データから動作コードを抽出し、抽出した動作コードに含まれる機能番号や認証回数を参照し、期待値記憶手段21に記憶されている動作コード期待値と一致するか否かを判断する。そして、認証手段32は、これらの動作認証が双方とも成功した場合に動作認証が成功したと判断する。また、認証手段32は、後段部20より送信された中間認証情報に含まれる切替情報に基づいて、次回の動作認証において使用する同期コード期待値の種類を選択する。
その後、周辺部30は、後段部20より送信された中間認証情報に含まれる個体認証結果、及び認証手段32での動作認証結果のいずれもが成功であった場合に、パチンコ遊技機1の正規性を認証し、認証結果に応じた処理を行う。
<後段部>
以下、後段部20における認証に関する処理について詳細に説明する。それ以外は実施の形態1と同様であるため、説明を省略する。
[1]制御信号の受信
演出制御部203は、主制御部10から送信された認証データ付制御信号のうち、演出制御部203で認証に使用しない個体認証データをそのまま或いは制御コマンドデータ及び付随データに付加した個体認証データ付制御信号として後段部20に送信する。後段部20は、個体認証データ付制御信号を受信すると、以下の[2]〜[6]の処理を行う。
[2]個体認証データの抽出
後段部20は、個体認証データ付制御信号から個体認証データを抽出する。次に後段部20は、抽出した個体認証データから個体検査値を抽出し、RAM20cの所定の記憶領域である個体検査値用メモリに記憶する。
[3]個体認証
後段部20は、個体検査値用メモリ内に記憶されているすべての個体検査値に対して、以下に示す順序で半群演算を行うことによって、主制御部10の個体認証処理を行う。
{1}後段部20は、上記個体検査値用メモリ内に記憶されているすべての個体検査値を用いて半群演算を行う。
{2}後段部20は、予め記憶されている個体認証期待値をROM20bの所定の記憶領域から読み出す。
{3}後段部20は、上記{1}の処理における結合結果と、上記{2}の処理で読み出した個体認証期待値が一致するか否かを判断する。
後段部20は、結合結果と個体認証期待値が一致した場合には、個体認証に成功したと判断する。また、後段部20は、結合結果と個体認証期待値が一致しなかった場合には、個体認証に成功しなかったと判断する。個体認証が成功したとき、結合数と分割数とは当然に一致する。
{4}{3}の処理で個体認証に成功した場合、後段部20は、個体認証が成功したことを示す個体認証結果を生成する。
{5}{3}の処理で個体認証が成功しなかった場合、後段部20は、主制御部10から受信した個体認証データの数が所定数以上か否かを判断する。所定数は、今回の結合数(分割数)以上かつプログラムコード記憶領域400(図4参照)に記憶されているプログラムコードを分割可能な数(最大分割数)以下の範囲内の任意の数である。
{5−1}受信した個体認証データの数が所定数未満の場合、後段部20は、まだ個体認証が行える段階ではないと判断して個体認証結果に換えて、認証中途データとして、例えば、個体認証結果のデータ長と同一のデータ長を有する任意の値(例えば、オール0又はオール1)を生成する。
{5−2}受信した個体認証データの数が所定数以上の場合、後段部20は、個体認証が成功しなかったと判断して、個体認証が成功しなかったことを示す個体認証結果を生成する。
[4]切替情報の生成
後段部20は、個体認証が成功したときの結合数に基づく所定の取り決めに従って、演出制御部203が保持する同期コード期待値に対する切替情報を生成する。切替情報は、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類を、今回の動作認証で使用している同期コード期待値からどのように変更するかを示した情報である。ここで、所定の取り決めとは、実施の形態1と同様に、主制御部10が同期コードを生成するために用いるパケット情報の種類を選択したものと同一である。すなわち、本実施の形態2でも、上記選択例1を採用するとする。選択例1の場合、後段部20は、個体認証が成功した際の結合数を、主制御部10との間で予め決められている特定値X(ここではX=3)で除算した際の余り値に基づいて、切替情報の種類を選択する。例えば、図5に示すように、特定値X=3、結合数=3であれば、余り値=0となり、間欠パケット情報に対応する同期コード期待値を選択して生成するとする。なお、切替情報に対し所定の演算を施して暗号化した値を利用してもよいし、切替情報の替わりに結合数そのものや結合数に所定の演算を施して暗号化した値を利用してもよい。
[5]中間認証情報の生成
後段部20は、[3]の処理で得られた個体認証結果、[4]の処理で得られた切替情報、又はこれらに対して主制御部10で認証データを生成した際と同様の暗号化処理を施したものを用いて、中間認証情報を生成する。後段部20は、[3]の処理において、個体認証が成功を示す結果を生成した場合は、その旨を示す中間認証情報を生成し、個体認証が成功しなかったことを示す結果を生成した場合は、その旨を示す中間認証情報を生成する。
[6]中間認証情報信号の送信
後段部20は、中間認証情報の内容を示す中間認証情報信号を演出制御部203に送信するとともに、個体検査値用メモリ及び動作検査値用メモリに記憶されている各データを消去する。なお、上記の個体認証期待値を予め記憶する手段、及び個体認証を実行する手段は、例えば、図1に示す期待値記憶手段21、及び中間認証手段22に対応させることができる。
<演出制御部>
以下、周辺部30の一つである演出制御部203が認証に関する処理を行う場合について詳細に説明する。それ以外は実施の形態1と同様であるため、説明を省略する。
[1]制御信号の受信
演出制御部203は、主制御部10から送信された制御信号が、制御コマンドデータ及び付随データのみからなる通常の制御信号か、制御コマンドデータ及び付随データに加えて、認証データが付加された認証データ付制御信号かを判断する。受信した制御信号が通常の制御信号である場合、演出制御部203は、制御コマンドデータ及び付随データに基づいて、実施の形態1と同様に、演出に関する処理を行い、認証に関する処理を終了する。一方、受信した制御信号が認証データ付制御信号である場合、演出制御部203は、認証に関する処理を継続するとして下記[2]〜[5]の処理を実行する。
[2]個体認証データの抽出・送信、及び同期コード・動作コードの抽出
演出制御部203は、主制御部10から送信された認証データ付制御信号から個体認証データ及び動作認証データを抽出し、抽出した動作認証データに対して動作認証データ生成時に使用した暗号化処理に対応する復号化処理を施して同期コード及び動作コードを抽出する。演出制御部203は、抽出した個体認証データをRAM203cの所定の記憶領域である個体検査値用メモリに、抽出した同期コード及び動作コードをRAM203cの所定の記憶領域である動作検査値用メモリに記憶する。次に、個体検査値用メモリ内の個体認証データに制御コマンドデータ及び付随データを付加して個体認証データ付制御信号を生成し、個体認証データ付制御信号を後段部20へ送信する。なお、演出制御部203は、主制御部10から送信された認証データ付制御信号から動作認証データのみを抽出し、その直後に動作認証データ以外を個体認証データ付制御信号として後段部20へ送信してもよい。
[3]動作認証
演出制御部203は、動作検査値用メモリに記憶されている複数の同期コード及び動作コードを用いて、以下に示す主制御部10の制御コマンド出力に対する動作認証を行う。なお、同期コードを用いた動作認証と動作コードを用いた動作認証の認証順序は任意である。
{1}動作コードを用いた動作認証
演出制御部203は、動作検査値用メモリに記憶されている動作コードを用いて主制御部10の処理動作の順序を検証する。演出制御部203は、主制御部10が生成する動作コードが、時系列的に一定の関係性を維持しながら生成されているかを検証するための情報として、動作コード期待値を所定の記憶領域に記憶している。動作コード期待値は、主制御部10の動作順序が判別可能なように主制御部10の動作順序を示す順番で配列されたデータテーブルなどである。
{1−1}演出制御部203は、上記動作検査値用メモリに記憶されている動作コードを読み出し、予め保持する動作コード期待値と一致するか否かを判断する。
{1−2}{1−1}の処理で読み出した動作コードと動作コード期待値が一致する場合、演出制御部203は、動作コードを用いた動作認証に成功したと判断し、以下の{2}の同期コードを用いた動作認証を行う。
{1−3}{1−1}の処理で読み出した動作コードと動作コード期待値が一致しない場合、演出制御部203は、今回の動作認証処理では認証に成功しなかったと判断し、動作認証に成功しなかったことを示す動作認証結果を生成し、{2}の処理は行わず次の[5]に示す認証結果に基づく処理に移行する。
{2}同期コードを用いた動作認証
{2−1}演出制御部203は、上記動作検査値用メモリに記憶されている複数の同期コードから、主制御部10の制御コマンドが出力された順番に対応させて複数のパケット情報を読み出す。
{2−2}演出制御部203は、読み出した複数のパケット情報のうち、あるタイミングで生成されたパケット情報と、このパケット情報から所定の生成間隔だけ経過したタイミングで生成されたパケット情報との差分を求める。この差分は減算に限らず、各種の四則演算や論理演算が考えられる。
{2−3}演出制御部203は、主制御部10との間で共有しパケット情報の種類ごとに予め設定されている、連続する生成タイミングで生成されたパケット情報同士の相関関係を表す情報として記憶している同期コード期待値を、所定の記憶領域から読み出す。読み出す同期コード期待値は、連続パケットを示すものか間欠パケットを示すものかのいずれかとする。本実施の形態2では、実施の形態1と同様、連続パケット情報を示す同期コード期待値を読み出すものとする。
{2−4}演出制御部203は、{2−2}の処理で求めた差分値が示す情報と、{2−3}の処理で読み出した同期コード期待値とが一致するか否かを判断する。
演出制御部203は、差分値が示す情報と同期コード期待値が一致した場合には、動作認証に成功したと判断する。また、演出制御部203は、差分値が示す情報と同期コード期待値が一致しなかった場合には、動作認証に成功しなかったと判断する。
{2−5}{2−4}の処理で動作認証に成功した場合、演出制御部203は、動作認証が成功したことを示す動作認証結果を生成する。
{2−6}{2−4}の処理で動作認証に成功しなかった場合、演出制御部203は、動作認証に成功しなかったことを示す動作認証結果を生成する。
本実施の形態2では、実施の形態1と同様に、主制御部10において初回に同期コードの生成に用いたパケット情報の種類、及び演出制御部203において初回に読み出す同期コード期待値の種類は、共に連続パケット情報に対応するものであるため、動作認証は成功する。
[4]中間認証情報信号の受信、同期コード期待値の変更
演出制御部203は、後段部20より送信された中間認証情報信号から個体認証結果を抽出し、後段部20での個体認証結果を確認する。また、演出制御部203は、中間認証情報信号に含まれる切替情報に従って、次回の認証に関する処理の際に読み出す同期コード期待値の種類を選択する。本実施の形態2における切替情報は、後段部20にて個体認証が成功した際の結合数に基づく図5の選択例1に従って決定されている。
[5]認証結果に基づく処理
演出制御部203は、[3]−{1}及び[3]−{2}の処理で得られた動作認証結果、及び[4]の処理で得られた個体認証結果を用いて、パチンコ遊技機1の正規性を個体認証と動作認証の両面から認証し、最終的な認証判断を行う。[3]−{1}及び[3]−{2}の処理で得られた動作認証結果、及び[4]の処理で得られた個体認証結果のいずれもが、認証成功を示す結果であった場合、演出制御部203は、受信した認証データ付制御信号に含まれた制御コマンドデータ及び付随データに基づく処理を実行するとともに、個体検査値用メモリ及び動作検査値用メモリに記憶されている各データを消去し、認証に関する処理を終了する。
一方、[3]−{1}及び[3]−{2}の処理である動作認証で得られた動作認証結果、又は[4]の処理で得られた個体認証結果のいずれかが、認証不成功を示す結果であった場合、制御コマンドデータ及び付随データに基づく処理を中断し、これらのデータを破棄するとともに、不正行為を検知したとする報知等の処理を行い、個体検査値用メモリ及び動作検査値用メモリに記憶されている各データを消去し、認証に関する処理を終了する。なお、上記の動作認証期待値を予め記憶する手段、及び動作認証を実行する手段は、例えば、図1に示す期待値記憶手段31、及び認証手段32に対応させることができる。
次に、後段部20による認証に関する処理について説明する。図17は、後段部20による認証に関する処理の手順の一例を示すフローチャートである。まず、後段部20は、主制御部10から送信された図6に示すような制御信号を受信したか否かを判断する(ステップS201)。この判断結果が「NO」の場合には、後段部20は、同判断を繰り返す。そして、主制御部10から演出制御部203を介して送信された制御信号を受信すると(ステップS201:YES)、後段部20は、ステップS202へ進む。
ステップS202では、後段部20は、受信した制御信号に個体認証データが含まれているか否かを判断する。受信した制御信号に個体認証データが含まれている場合(ステップS202:YES)、後段部20は、ステップS203へ進む。ここで、制御信号に個体認証データが含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ又は付随データを構成する任意のビット又は別個に設けられている識別データ(図示略)が個体認証データが含まれていることを示しているか否かを判断することによって行う。なお、ステップS202の処理において、後段部20は、受信した制御信号に個体認証データが含まれているか否かを判断するのではなく、制御信号に含まれる制御コマンドデータが所定の制御コマンドの制御コマンドデータであるか否かを判断してもよい。
受信した制御信号に個体認証データが含まれている場合(ステップS202:YES)、すなわち、受信した制御信号が個体認証データ付制御信号の場合、後段部20は、受信した個体認証データ付制御信号に含まれている個体認証データを抽出して復号化処理を行って個体検査値を抽出する(ステップS203)。後段部20は、抽出した個体検査値を個体検査値用メモリに記憶して、ステップS204に進む。
次に、後段部20は、個体認証処理として、個体検査値用メモリ内の全ての個体検査値に対して半群演算(結合処理)を行う(ステップS204)。個体検査値用メモリ内の検査値が1つの場合は、結合処理を行わずにそのままステップS205へ進む。そして、後段部20は、結合処理の演算結果(結合結果)と保持している個体認証期待値とを照合して、結合結果と個体認証期待値とが一致するか否かを判断する(ステップS205)。結合結果と個体認証期待値とが一致する場合(ステップS205:YES)、後段部20は、主制御部10の個体認証が成功であったと判断し、個体認証が成功であったことを示す個体認証結果を生成する(ステップS206)。
続いて、後段部20は、ステップS204で判明した結合数に基づいて、上記選択例1に従い、次回の認証に関する処理の際に演出制御部203で使用する同期コード期待値の種類を選択する際に用いる切替情報を生成する。(ステップS207)。次回の認証に関する処理の際に演出制御部203で使用する同期コード期待値の種類が連続パケット情報に対応する場合(ステップS207:YES)、後段部20は、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類は、連続パケット情報に対応する同期コード期待値を使用することを示す切替情報を生成し(ステップS208)、ステップS210へ進む。一方、次回の認証に関する処理の際に演出制御部203で使用する同期コード期待値の種類が連続パケット情報でない場合(ステップS207:NO)、後段部20は、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類は、間欠パケット情報に対応する同期コード期待値を使用することを示す切替情報を生成し(ステップS209)、ステップS210へ進む。
一方、ステップS205において、結合結果と個体認証期待値が一致しない場合(ステップS205:NO)、後段部20は、所定数以上の個体認証データを受信するまで(ステップS211:NO)、ステップS201に戻り、個体認証データの受信及び個体検査値の結合処理を繰り返す。所定数以上の個体認証データを受信すると(ステップS211:YES)、後段部20は、主制御部10の個体認証が不成功であったと判断し、個体認証が不成功を示す個体認証結果を生成した後(ステップS212)、ステップS210へ進む。
後段部20は、生成した個体認証結果と、連続パケット情報又は間欠パケット情報に対応する同期コード期待値を選択することを示す切替情報とを併せて中間認証情報を生成する(ステップS210)。そして、後段部20は、生成した中間認証情報の内容を示す中間認証情報信号を生成し、演出制御部203へ送信する(ステップS213)。その後、後段部20は、個体検査値用メモリ及び動作検査値用メモリに記憶されているデータを消去するとともに受信した制御コマンドデータ及び付随データを破棄し(ステップS214)、一連の処理を終了する。
また、ステップS202で、仮に受信した制御信号に各認証データが含まれていない場合、すなわち、受信した制御信号が通常の制御信号である場合(ステップS202:NO)、後段部20は、認証処理を行わず、受信した制御コマンドデータ及び付随データを破棄した後(ステップS214)、一連の処理を終了する。
次に、演出制御部203による認証に関する処理について説明する。図18は、演出制御部203による認証に関する処理の手順の一例を示すフローチャートである。まず、演出制御部203は、主制御部10から制御信号を受信したか否かを判断する(ステップS221)。この判断結果が「NO」の場合には、演出制御部203は、同判断を繰り返す。そして、主制御部10から制御信号を受信すると、ステップS221の判断結果が「YES」となり、演出制御部203は、ステップS222へ進む。
ステップS222では、演出制御部203は、受信した制御信号に認証データが含まれているか否かを判断する。ステップS222の判断結果が「YES」の場合、すなわち、受信した制御信号に認証データが含まれている場合、演出制御部203は、ステップS223へ進む。ここで、制御信号に認証データが含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ又は付随データを構成する任意のビット又は別個に設けられている識別データ(図示略)が、認証データが含まれていることを示しているか否かを判断するか、あるいは、制御信号に含まれる制御コマンドデータが、認証処理を行うために予め設定した所定の制御コマンドの制御コマンドデータであるか否かを判断してもよい。
受信した制御信号に認証データが含まれている場合(ステップS222:YES)、すなわち、受信した制御信号が認証データ付制御信号の場合、演出制御部203は、受信した認証データ付制御信号に含まれている個体認証データ及び動作認証データを抽出し、動作認証データに対して復号化処理を行って同期コード及び動作コードを抽出する(ステップS223)。演出制御部203は、抽出した個体認証データを個体検査値用メモリに、抽出した同期コード及び動作コードを動作検査値用メモリに記憶して、ステップS224へ進む。また、ステップS222で、受信した制御信号に認証データが含まれていない場合、すなわち、受信した制御信号が通常の制御信号ある場合(ステップS222:NO)、演出制御部203は、認証処理を行わず、ステップS237へ進む。次に、演出制御部203は、個体検査値用メモリに記憶された個体認証データに制御コマンドデータ及び付随データを付加して個体認証データ付制御信号を生成し、個体認証データ付制御信号を後段部20へ送信し(ステップS224)、ステップS225へ進む。
ステップS225では、演出制御部203は、動作コードを用いた動作認証として、抽出した動作コードに含まれる機能番号の配列を確認し(ステップS225)、予め期待値として保持していた機能番号の配列順序(動作コード期待値)と一致するか否かを判断する(ステップS226)。両者が一致する場合(ステップS226:YES)、演出制御部203は、動作コードを用いた動作認証は成功であったとして、ステップS227へ進む。一方、両者が一致しない場合(ステップS226:NO)、演出制御部203は、主制御部10及び後段部20に対する動作認証は不成功であり、今回のパチンコ遊技機1の認証処理は不成功であったと判断し(ステップS238)、ステップS239へ進む。
ステップS227では、演出制御部203は、同期コードを用いた動作認証処理として、動作検査値用メモリに記憶されている同期コードから取得したパケット情報同士の差分を算出し、求めた差分値が示すパケット情報の相関関係を確認する(ステップS227)。そして演出制御部203は、予め期待値として保持していた同期コード期待値を読み出し、差分値が示す情報と同期コード期待値とが一致するか否かを判断する(ステップS228)。差分値が示す情報と同期コード期待値とが一致する場合(ステップS228:YES)、演出制御部203は、動作認証は成功であったと判断し(ステップS229)、ステップS230へ進む。一方、差分値が示す情報と同期コード期待値が一致しない場合(ステップS228:NO)、演出制御部203は、主制御部10及び後段部20に対する動作認証は不成功であり、今回のパチンコ遊技機1の認証処は不成功であったと判断し(ステップS238)、ステップS239へ進む。なお、演出制御部203は、抽出した動作コードに含まれる機能番号又は同期コードに含まれるパケット情報が1個の場合は、ステップS225又はステップS227の処理を行わずステップS221に戻り、複数個の機能番号又はパケット情報を取得するまで以降の処理を繰り返す。
続いて、演出制御部203は、後段部20より送信される中間認証情報信号を受信したか否かを判断し(ステップS230)、受信するまで同判断を繰り返す。そして、後段部20から送信された中間認証情報信号を受信すると(ステップS230:YES)、演出制御部203は、中間認証情報信号が示す後段部20での個体認証結果が成功か否かを判断する(ステップS231)。中間認証情報に含まれる個体認証結果が成功を示す場合(ステップS231:YES)、演出制御部203はステップS229で得られた動作認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断し(ステップS232)、ステップS233へ進む。また、中間認証情報に含まれる個体認証結果が成功を示す結果でなかった場合(ステップS231:NO)、演出制御部203は、後段部20での個体認証は不成功であり、今回のパチンコ遊技機1の認証処理は不成功であったと判断し(ステップS238)、ステップS239へ進む。
続いて、演出制御部203は、中間認証情報信号が示す切替情報の内容を参照し(ステップS233)、切替情報が、次回の動作認証において使用する同期コード期待値の種類が連続パケット情報に対応した同期コード期待値か否かを判断する(ステップS234)。切替情報が連続パケット情報に対応する同期コード期待値を示すものである場合(ステップS234:YES)、演出制御部203は、次回の動作認証において使用する同期コード期待値の種類を連続パケット情報に対応する同期コード期待値を選択すると決定し(ステップS235)、ステップS237へ進む。切替情報が連続パケット情報に対応する同期コード期待値を示すものでない場合(ステップS234:NO)、演出制御部203は、次回の動作認証において使用する同期コード期待値の種類を間欠パケット情報に対応する同期コードを選択すると決定し(ステップS236)、ステップS237へ進む。ステップS237では、演出制御部203は、個体検査値用メモリ及び動作検査値用メモリに記憶されているデータを消去するとともに制御コマンドデータ及び付随データに基づく処理を行った後、一連の処理を終了する。
ステップS239では、演出制御部203は、制御コマンドデータ及び付随データに基づく処理を中断し、これらのデータを破棄するとともに、不正行為を報知するための報知信号を図柄表示部104やランプ制御部205、あるいはパチンコ遊技機1を管理するセンター制御装置などに送信した後、一連の処理を終了する。なお、ステップS239の処理では、演出制御部203は、データの破棄と報知のいずれか一方のみを行うようにしてもよい。
次に、図13、図17及び図18に示す処理のうち、主制御部10での同期コードの生成に用いるパケット情報の変更処理と、演出制御部203での動作認証期待値としての同期コード期待値の変更処理における具体例について説明する。図19は、主制御部10、後段部20、及び演出制御部203の間のデータの流れの一例を示すシーケンス図である。本実施の形態2では、分割数及び結合数に基づいたパケット情報の種類及び同期コード期待値の選択例として、図5に示した選択例1(ここでは、X=3とする)を用いて説明する。
まず、主制御部10は、ステップS241の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS242へ進む。主制御部10は、例えば、今回の分割数を3と決定する。ステップS242では、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを3個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて3つの個体検査値を生成し(ステップS242)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS243)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS244)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。なお、初回は予め後段部20及び演出制御部203との間で決められており、ここでは、連続パケット情報とする。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS245)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS246)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203に送信する(ステップS247)。その後、主制御部10は、ステップS241で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS248)。ここでは、分割数=3であり、X=3で割ると余り値=0のため、次回用いるパケット情報の種類を連続パケットから間欠パケット情報に変更する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS249)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、動作認証データから同期コード及び動作コードを抽出する(ステップS250)。そして、演出制御部203は、個体認証データに制御コマンドデータ及び付随データを付加して個体認証データ付制御信号を生成し、個体認証データ付制御信号を後段部20へ送信する(ステップS251)。そして、演出制御部203は、動作コードを用いた動作認証処理として、抽出した動作コードに含まれ機能番号の配列を確認する(ステップS252)。そして、演出制御部203は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS253)、動作コード期待値と一致すると、動作コードを用いた動作認証は成功であったと判断する(ステップS253)。
続いて、演出制御部203は、同期コードを用いた動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS254)。その後、算出した差分値が示す情報と、予め保持する同期コード期待値とを照合する(ステップS255)。連続又は間欠パケット情報のどちらの種類の同期コード期待値を読み出すかは、前回の認証に関する処理の際に決められている。なお、初回は予め主制御部10及び後段部20との間で決められており、ここでは、連続パケット情報とする。今回は、主制御部10より送信された同期コードに含まれるパケット情報及び同期コード期待値とも、連続パケット情報を示すものであるので両者は一致する結果となる(ステップS255)。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された個体認証データ付制御信号を受信すると(ステップS256)、個体認証データ付制御信号から個体認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS257)。そして、後段部20は、個体認証処理として、抽出した個体検査値に対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS258)。その後、結合結果を予め保持していた個体認証期待値と照合し、個体認証期待値と一致すると、後段部20は、主制御部10の個体認証が成功であったと判断する(ステップS259)。ここでは、3つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=3と判明する。
続いて、後段部20は、ステップS258で判明した結合数に基づいて、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類を選択する切替情報を生成する(ステップS260)。ここでは、結合数=3であり、X=3で割ると余り値=0のため、次回用いる同期コード期待値の種類は間欠パケットを選択することを示す切替情報を生成する。そして、後段部20は、個体認証結果と切替情報とを併せて、個体認証成功の中間認証情報を生成し(ステップS261)、中間認証情報の内容を示す中間認証情報信号を生成し、演出制御部203に送信する(ステップS262)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS263)、中間認証情報信号から個体認証結果及び切替情報を抽出する(ステップS264)。そして、演出制御部203は、個体認証結果が成功を示すことを確認すると、後段部20での個体認証は成功であり、ステップS255で得られた動作認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS265)。そして、中間認証情報に含まれる切替情報を参照し、切替情報に基づいて、次回の同期コードを用いた動作認証において使用する同期コード期待値の種類を決定する(ステップS266)。今回は、同期コード期待値は連続パケット情報であり、切替情報は間欠パケット情報を示すものを受信したため、ここでは、次回用いる同期コード期待値の種類を連続パケットから間欠パケット情報に変更する(ステップS266)。ここまでが一連の選択処理の流れである。
2回目の処理の説明に移る。まず、主制御部10は、ステップS267の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS268へ進む。主制御部10は、例えば、今回の分割数を4と決定する。ステップS269では、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを4個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて4つの個体検査値を生成し(ステップS268)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS269)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS270)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS271)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS272)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203に送信する(ステップS273)。その後、主制御部10は、ステップS267で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS274)。ここでは、分割数=4であり、X=3で割ると余り値=1のため、次回用いるパケット情報の種類は間欠パケット情報のまま継続する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS275)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、動作認証データから同期コード及び動作コードを抽出する(ステップS276)。そして、演出制御部203は、個体認証データに制御コマンドデータ及び付随データを付加して個体認証データ付制御信号を生成し、個体認証データ付制御信号を後段部20へ送信する(ステップS277)。そして、演出制御部203は、動作コードを用いた動作認証処理として、抽出した動作コードに含まれ機能番号の配列を確認する(ステップS278)。そして、演出制御部203は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS279)、動作コード期待値と一致すると、動作コードを用いた動作認証は成功であったと判断する(ステップS279)。
続いて、演出制御部203は、同期コードを用いた動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS280)。その後、算出した差分値が示す情報と、予め保持する同期コード期待値とを照合する(ステップS281)。連続又は間欠パケット情報のどちらの種類の同期コード期待値を読み出すかは、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。今回は、主制御部10より送信された同期コードに含まれるパケット情報及び同期コード期待値とも、間欠パケット情報を示すものであるので両者は一致する結果となる(ステップS281)。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された個体認証データ付制御信号を受信すると(ステップS282)、個体認証データ付制御信号から個体認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS283)。そして、後段部20は、個体認証処理として、抽出した個体検査値対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS284)。その後、結合結果を予め保持していた個体認証期待値と照合し、個体認証期待値と一致すると、後段部20は、主制御部10の個体認証が成功であったと判断する(ステップS285)。ここでは、4つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=4と判明する。
続いて、後段部20は、ステップS284で判明した結合数に基づいて、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類を選択する切替情報を生成する(ステップS286)。ここでは、結合数=4であり、X=3で割ると余り値=1のため、次回用いる同期コード期待値の種類は間欠パケットを選択することを示す切替情報を生成する。そして、後段部20は、個体認証結果と切替情報とを併せて、個体認証成功の中間認証情報を生成し(ステップS287)、中間認証情報の内容を示す中間認証情報信号を生成し、演出制御部203に送信する(ステップS288)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS289)、中間認証情報信号から個体認証結果及び切替情報を抽出する(ステップS290)。そして、演出制御部203は、個体認証結果が成功を示すことを確認すると、後段部20での個体認証は成功であり、ステップS281で得られた動作認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS291)。そして、中間認証情報に含まれる切替情報を参照し、切替情報に基づいて、次回の同期コードを用いた動作認証において使用する同期コード期待値の種類を決定する(ステップS292)。今回は、同期コード期待値は間欠パケット情報であり、切替情報は間欠パケット情報を示すものを受信したため、ここでは、次回用いる同期コード期待値の種類は間欠パケット情報のまま継続する(ステップS292)。ここまでが一連の選択処理の流れである。
3回目の処理の説明に移る。まず、主制御部10は、ステップS293の処理へ進み、任意の方法で今回の個体認証処理に用いる分割数を決定した後、ステップS294へ進む。主制御部10は、例えば、今回の分割数を5と決定する。ステップS294では、主制御部10は、ROM10bの記憶領域に予め記憶されている所定のプログラムコードを5個のブロック(記憶領域)に分割し、各ブロックに記憶されているプログラムコードを用いて5つの個体検査値を生成し(ステップS294)、これらの個体検査値に暗号化処理を施し個体認証データを生成する(ステップS295)。
続いて、主制御部10は、同期コードの生成に用いるパケット情報の種類を選択し、選択したパケット情報を基にして同期コードを生成する(ステップS296)。具体的には、間欠パケット情報又は連続パケット情報のいずれかのパケット情報であり、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。さらに、主制御部10は、機能番号を用いて動作コードを生成する(ステップS297)。そして、主制御部10は、生成された同期コード及び動作コードに対して暗号化処理を施し、動作認証データを生成し(ステップS298)、個体認証データと併せて認証データ付制御信号を生成し、演出制御部203に送信する(ステップS299)。その後、主制御部10は、ステップS293で決定した分割数に基づいて、次回の認証に関する処理の際に同期コードの生成に用いるパケット情報の種類を選択する(ステップS300)。ここでは、分割数=5であり、X=3で割ると余り値=2のため、次回用いるパケット情報の種類を間欠パケットから連続パケット情報に変更する。
次に、演出制御部203における処理について説明する。演出制御部203は、主制御部10から送信された認証データ付制御信号を受信すると(ステップS301)、認証データ付制御信号から個体認証データ及び動作認証データを抽出するとともに、動作認証データから同期コード及び動作コードを抽出する(ステップS302)。そして、演出制御部203は、個体認証データに制御コマンドデータ及び付随データを付加して個体認証データ付制御信号を生成し、個体認証データ付制御信号を後段部20へ送信する(ステップS303)。そして、演出制御部203は、動作コードを用いた動作認証処理として、抽出した動作コードに含まれ機能番号の配列を確認する(ステップS304)。そして、演出制御部203は、取得した機能番号の配列と予め保持する動作コード期待値とが一致するか否かを判断し(ステップS305)、動作コード期待値と一致すると、動作コードを用いた動作認証は成功であったと判断する(ステップS305)。
続いて、演出制御部203は、同期コードを用いた動作認証として、抽出した同期コードに含まれるパケット情報同士の差分を算出しパケット情報の相関関係を確認する(ステップS306)。その後、算出した差分値が示す情報と、予め保持する同期コード期待値とを照合する(ステップS307)。連続又は間欠パケット情報のどちらの種類の同期コード期待値を読み出すかは、前回の認証に関する処理の際に決められている。ここでは、間欠パケット情報である。今回は、主制御部10より送信された同期コードに含まれるパケット情報及び同期コード期待値とも、間欠パケット情報を示すものであるので両者は一致する結果となる(ステップS307)。その後、演出制御部203は、後段部20より送信される中間認証情報信号を受信するまで認証に関する処理を保留する。
次に、後段部20における処理について説明する。後段部20は、演出制御部203から送信された個体認証データ付制御信号を受信すると(ステップS308)、個体認証データ付制御信号から個体認証データを抽出するとともに、個体認証データから個体検査値を抽出する(ステップS309)。そして、後段部20は、個体認証処理として、抽出した個体検査値対して主制御部10と同一の半群演算を用いて結合処理を施す(ステップS310)。その後、結合結果を予め保持していた個体認証期待値と照合し、個体認証期待値と一致すると、後段部20は、主制御部10の個体認証が成功であったと判断する(ステップS310)。ここでは、5つの個体検査値を用いて結合処理を行った際に個体認証期待値と一致し、今回の結合数=5と判明する。
続いて、後段部20は、ステップS310で判明した結合数に基づいて、次回の演出制御部203で行われる動作認証において使用する同期コード期待値の種類を選択する切替情報を生成する(ステップS312)。ここでは、結合数=5であり、X=3で割ると余り値=2のため、次回用いる同期コード期待値の種類は連続パケットを選択することを示す切替情報を生成する。そして、後段部20は、個体認証結果と切替情報とを併せて、個体認証成功の中間認証情報を生成し(ステップS313)、中間認証情報の内容を示す中間認証情報信号を生成し、演出制御部203に送信する(ステップS314)。
再び、演出制御部203における処理について説明する。演出制御部203は、後段部20から送信された中間認証情報信号を受信すると(ステップS315)、中間認証情報信号から個体認証結果及び切替情報を抽出する(ステップS316)。そして、演出制御部203は、個体認証結果が成功を示すことを確認すると、後段部20での個体認証は成功であり、ステップS307で得られた動作認証結果と併せて、今回のパチンコ遊技機1の認証処理は成功であったと判断する(ステップS317)。そして、中間認証情報に含まれる切替情報を参照し、切替情報に基づいて、次回の同期コードを用いた動作認証において使用する同期コード期待値の種類を決定する(ステップS318)。今回は、同期コード期待値は間欠パケット情報であり、切替情報は連続パケット情報を示すものを受信したため、ここでは、次回用いる同期コード期待値の種類は間欠パケットから連続パケット情報に変更する(ステップS318)。以上が一連の選択処理の流れである。
以上説明したように、本実施の形態2のパチンコ遊技機1は、後段部20及び周辺部30(演出制御部203)での認証に関する処理が、実施の形態1のパチンコ遊技機1と異なり、後段部20で個体認証、周辺部30(演出制御部203)で動作認証を行うものであり、本実施の形態1と同様の効果を得ることができる。
<<実施の形態3>>
上記実施の形態1,2では、後段部20と演出制御部203とは別個のハードウェア構成とする例を示したが、これに限定されない。
例えば、実施の形態1に関していえば、後段部20を構成するCPU20aが有する機能と演出制御部203を構成するCPU203aが有する機能を1個のCPUが有するように構成するとともに、後段部20を構成するROM20bに記憶されているプログラムコードやそれ以外の固定データと演出制御部203を構成するROM203bに記憶されているプログラムコードやそれ以外の固定データを1個のROMに記憶するように構成してもよい。この場合、後段部20と演出制御部203との間におけるデータの送受信は、例えば、後段部20を構成するRAM20cのワークエリアとして機能するとともに、演出制御部203を構成するRAM203cのワークエリアとして機能する1個のRAMにおいて、ある記憶領域から他の記憶領域へのデータの複写や参照すべきアドレスの書き換えなどにより実現することができる。
但し、上記のような場合、1個のCPUが2個のCPUの機能を備えることになるので、一般的には処理負荷が増大する。そこで、例えば、デュアルCPUの構成により後段部20の処理を行う、などが考えられる。
本実施の形態3のパチンコ遊技機1は後段部20と演出制御部203とを1個のソフトウェアで構成したので、実施の形態1及び2において得られる効果の他に、さらに以下に示す効果が得られる。
1.並行開発及び情報セキュリティ向上
演出制御部と後段部とがソフトウェア構成上分離独立している場合は、演出制御部及び後段部をそれぞれ並行して個別に開発することが可能であり、これにより、例えば、以下に示す効果が得られる。
[1]演出制御部と後段部とについて同時に設計、開発を行うことができるため、並行開発できない場合と比較して、製品の開発期間を短縮することができる。
[2]演出制御部と後段部とについてそれぞれ独立した開発体制をとることができるため、演出制御部と後段部の設計製造検証を行う際の業務上の機密情報(例えば、認証処理の方式など、遊技に関する処理など)を、それぞれの開発体制外に流出させる可能性を減らすことができる。
2.検証の容易性
演出制御部と後段部とがソフトウェア構成上分離独立している場合は、演出制御部及び後段部に対しそれぞれ個別に検証を行うことが可能である。したがって、演出制御部と後段部とが分離されていないものに対する検証を行う場合と比較し、それぞれの機能が狭い機能で閉じているため、短期間かつ少人数で検証を行うことができる。
3.認証用のハードウェアとして、演出制御部とは別個のCPU又は専用集積回路などを設けることができない場合であっても、ソフトウェアで容易に認証機能を追加することができる。
4.演出制御部の処理負荷軽減
後段部に実装する認証機能を演出制御部のソフトウェアで実装する場合、演出制御部の処理負荷が増大することになる。そこで、演出制御部を構成するCPUとしてデュアルコアCPUを用いることが考えられる。認証処理を実現するための処理負荷をデュアルコアCPUを利用することによって、処理の分散を図ることが可能になるため、演出制御部の既存の遊技処理をできる限り影響しないように、認証機能を追加することができ、認証機能の実現が容易になる。
<<その他の実施の形態>>
本発明の具体的な構成は上記各実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計の変更等があっても本発明に含まれる。
例えば、実施の形態1では、演出制御部203の後段に後段部20を設ける例を示したが、これに限定されず、賞球制御部204の後段に後段部20を設けてもよい。この場合、賞球制御部204は報知手段を備えていないが、主制御部10と賞球制御部204との間は双方向通信が可能であるので、認証が不成功となった場合には、賞球制御部204から主制御部10に対して、認証が不成功となった旨のデータを送信するように構成してもよい。そして、主制御部10は、上記不成功となった旨のデータを演出制御部203に送信し、演出制御部203において、不成功となった旨のデータに基づいて、不正行為が行われたことを報知させる。
また、実施の形態1〜3に係るパチンコ遊技機1では、後段部20をCPU、ROM、RAM等を備えて構成しているが、同様の機能を持たせたLSI等の集積回路として実現するようにしてもよい。
また、実施の形態1〜3に係るパチンコ遊技機1では、主制御部10と、後段部20及び周辺部30は少なくとも別個のCPU、ROM、RAM等を備えて構成され、各部の機能は別個のプログラム上で実現されているが、一つのミドルウェアで、各部の機能を実現するように構成してもよい。これにより、遊技機の新機種開発において、汎用性の高いミドルウェアとして認証機能を付加させることができ、他機種への水平展開が容易となり機種ごとの設計変更は軽微なもので済むため、低コスト化の実現に貢献することができる。
また、実施の形態1〜3に係るパチンコ遊技機1において、主制御部10は、個体検査値を生成するための所定のデータの分割方法として、乱数生成回路や乱数生成プログラムなどによって生成された値を分割数として決定し、所定のデータを決定された分割数の個数に分割していたが、これに限定されない。主制御部10は、個体検査値生成の対象となる各データブロックを構成するデータの量(以下、データ量という)を決定し、主制御部10は、所定の記憶領域内の所定のデータを、決定したデータ量の分だけ分割する。そして、主制御部10は、データ量で分割されたそれぞれのデータブロックごとに半群演算を行って、主制御部10を認証するための分割したデータブロック数分の個体検査値を生成する。すなわち、分割して得られたデータブロックの数が分割数になる。データ量の決定方法は、乱数生成回路や乱数生成プログラムの他、主制御部10の他の処理において生成される値を所定のタイミングで参照し、その値をデータ量としたりする方法が考えられる。
この場合、主制御部10は、1つの個体検査値を生成するごとに、その生成に用いるデータ量を決定すると、主制御部10の所定の記憶領域内の所定のデータの全てを用いて、個体検査値の生成が完了するまで、データ量の決定と個体検査値の生成とを繰り返すこととなる。このとき、いくつの個体検査値が生成されるか(すなわち、分割数がいくつになるか)は、所定の記憶領域内の所定のデータの全てを用いて個体検査値を生成するまで判明しない。このように、分割数そのものを決定するのではなく、個体検査値の生成に用いるデータ量を決定することで、分割数が不正に窃取される可能性を低減することができる。なお、主制御部10は、1つの個体検査値を生成するごとにデータ量を決定するのではなく、予め個体検査値の生成に用いるデータ量を決定しておいてもよい。また、全ての個体検査値の生成に用いるデータ量を等しくするようにしてもよく、このときはデータ量を決定した時点で分割数が予測可能となる。
また、実施の形態1〜3に係るパチンコ遊技機1において、主制御部10は、同期コードに含まれるパケット情報として連続パケット情報及び間欠パケット情報の2種類のパケット情報から選択するとしたが、これに限定されず、複数種類のパケット情報から選択してもよい。パケット情報の種類は、連続して生成されたパケット情報間の相関条件の値(例えば、パケット情報の基本値の差分値)によって決まる。複数種類のパケット情報は、それぞれ異なる相関関係を有する異なる種類のパケット情報である。この場合、主制御部10は、分割数に基づいて複数種類のパケット情報の中から一つを選択し、選択したパケット情報を次回の同期コードの生成に用いる。後段部20又は周辺部30は、結合数に基づく動作認証ルールや切替情報に従って、パケット情報の種類に固有の相関関係を示す情報である複数種類の動作認証期待値の中から一つを選択し、選択した動作認証期待値を用いて次回の動作認証を行う。
また、実施の形態1〜3に係るパチンコ遊技機1は、所定の半群演算を用いて個体検査値を生成し、所定の個体認証期待値を用いて個体認証処理を行うとしたが、これに限定されない。主制御部10は、複数の半群演算を予め用意しておき、今回の分割数に基づいて、複数の半群演算の中から次回の個体検査値の生成に用いる1個の半群演算を選択するように構成し、後段部20又は周辺部30は、主制御部10における半群演算の切り替えに対応して、今回の結合数に基づいて、次回の結合処理時に用いる半群演算及び個体認証期待値を切り替えるように構成してもよい。具体的には、主制御部10は、例えば、今回の分割数が奇数の場合は次回の半群演算を今回用いたものと異なるものを選択し、今回の分割数が偶数の場合は次回の半群演算を今回用いたものと同一のものを選択する。また、後段部20又は周辺部30は、今回の結合数が奇数の場合には次回の結合処理時の半群演算及び個体認証期待値を今回用いたものと異なるものを選択し、今回の結合数が偶数の場合には次回の結合処理時に用いる半群演算及び個体認証期待値を今回用いたものと同一のものを選択する。この場合、初回の半群演算については、主制御部10と後段部20又は周辺部30との間で同一の方式を利用するものと予め設定しておく。分割数は主制御部10のみが知り得る値であり、結合数は個体認証が成功して初めて後段部20又は周辺部30が知り得る値である。よって、不正行為者は、主制御部10における半群演算や後段部20又は周辺部30における個体認証期待値などの切り替えタイミングを知ることができない。これにより、主制御部10、後段部20又は周辺部30の間の処理に対する認証強度を向上させることができる。
また、本実施の形態1〜3に係るパチンコ遊技機1では、所定のタイミング、例えば、所定の制御コマンドを送信する場合にのみ個体認証データ及び動作認証データを付加するようにしてもよい。この場合、主制御部10は、制御コマンドが所定の制御コマンドか否かを判断し、所定の制御コマンドの場合に個体認証データ及び動作認証データを生成する。主制御部10は、生成した個体認証データ及び動作認証データを制御コマンドに付加した認証データ付制御信号を後段部20又は周辺部30に送信する。なお、主制御部10は、生成した個体認証データ及び動作認証データの全てを送信するまでは、所定のタイミング(例えば、所定の制御コマンドの送信タイミング)になっても新たに個体認証データ及び動作認証データを生成せずに認証データ付制御信号の送信を行う。このように、所定のタイミングのときにのみ個体認証データ及び動作認証データを生成することにより、認証データの生成回数を制限することができ、認証処理による処理負荷を低減することができる。
ここで、所定の制御コマンドとは、パチンコ遊技機1の通電中において、パチンコ遊技機1の動作(例えば、初期化動作や演出動作あるいは客待ちデモンストレーションなど)を指示するために、各種の制御コマンドの中から任意に選定した特定の制御コマンドをいう。所定の制御コマンドとは、より具体的に例を挙げれば、大当たり状態の継続中に送信される大当たりコマンド、大当たり状態の処理を開始させるための大当たり開始コマンド、大当たり状態の処理を終了させるための大当たり終了コマンド、周辺部30に大当たり前のリーチ状態の処理を実行させるための大当たりリーチコマンド、周辺部30に電源投入時の処理を実行させるための電源投入コマンド、周辺部30に非遊技状態におけるデモ表示を実行させるための客待ちデモコマンド、周辺部30に非遊技状態におけるデモ表示を停止させるための客待ちデモ停止コマンド、周辺部30に抽選時の抽選結果がはずれの場合の処理を実行させるためのはずれコマンド、普通電動役物(電動チューリップ)の開放抽選やいわゆるフェイクと呼ばれる大当たりと同様に特別電動役物が短時間だけ開放するような小当たり状態の継続中に送信される小当たりコマンドなどをいう。所定の制御コマンドとしては、上記のものの他、例えば、電源オフコマンド、はずれリーチコマンド、はずれ非リーチコマンド、ラウンド開始コマンド、ラウンド終了コマンドなどがある。
このように構成されるパチンコ遊技機1では、所定の制御コマンドを送信するタイミングで、主制御部10の正当性を認証するための認証データを用いて認証処理を行う。認証処理を行うことによって主制御部10や周辺部30の処理負荷が増大するのは、所定の制御コマンドの制御コマンドデータ301を受信している期間のみであり、主制御部10や周辺部30の処理負荷が増大する割合を抑えることができる。
また、所定の制御コマンドの制御コマンドデータにのみ認証データが付加されるので、周辺部30が実行するプログラムには所定の制御コマンドに関する認証処理を追加するだけでよい。したがって、周辺部30が実行するプログラム全体にわたる新たなタイミングの設計する必要がないので、すべての制御コマンドの制御コマンドデータに認証データが付加される場合と比較して、認証機能を追加するタイミングの設計、機能の実装、機能の検証など、より簡単に、少ない作業工数で実現することができる。
また、主制御部10は、周辺部30に所定の制御コマンドを送信する場合のみ、制御コマンドデータに個体認証データ又は動作認証データの少なくともいずれかを付加する場合、認証処理が行われるのは所定の制御コマンドの制御コマンドデータの送信時のみであるので、主制御部10や周辺部30の処理負荷が認証処理によって増大する割合を抑えることができる。所定の制御コマンドが大当たりコマンドである場合、大当たりコマンドは大当たり中のラウンドごとに送信されるため、大当たり状態にある一定期間中に複数回の認証処理を行うこととなり、認証処理の確度を向上させることができる。
また、所定の制御コマンドが大当たり開始コマンドや大当たり終了コマンドである場合、大当たり開始コマンドや大当たり終了コマンドは、大当たり状態を開始又は終了させる制御コマンドであり、他の制御コマンドと比較して、送信頻度が低い。したがって、制御信号の中から認証データが抽出される可能性を低減することができる。また、制御信号の中から認証データが抽出されても、取得できるサンプル数が少ないため、認証データが解析される危険性を低減することができる。
また、所定の制御コマンドが大当たりリーチコマンドである場合、大当たりリーチは、大当たりと比較して発生頻度が高い。また、大当たりリーチの発生タイミングはランダム性を有する。したがって、大当たりリーチコマンドデータを送信する際に認証処理を行うことにより、時間軸上における認証処理の実施位置が分散される。そして、このように時間軸上における認証処理の実施位置を分散することによって、認証処理の信頼性を向上させることができる。これは、認証データの通信不具合や認証データの改ざんが一定の期間行われた場合であっても、時間をおいてランダムに認証処理が行われるので、通信不具合や改ざんの影響を回避できる可能性が高くなるためである。
さらに、所定の制御コマンドが電源投入コマンドである場合、電源投入コマンドは、パチンコ遊技機1の電源の投入時やリセット時など、パチンコ遊技機1の初期化処理を行う際に送信される。初期化処理は、パチンコ遊技機1のメインの処理である遊技(ゲーム進行)関連処理とは異なる処理区分に分類される。したがって、本発明のように、初期化処理中に認証処理を組み込めば、遊技関連処理中に認証処理を組み込む場合と比較して、プログラム設計やテストにかかる工程(工数)が増加する割合を低減することができる。すなわち、初期化処理中に認証処理を組み込むことによって、開発コストの低減や品質管理上のメリットを得ることができる。また、初期化処理中に認証処理を組み込めば、パチンコ遊技機1の起動直後に認証処理を行うため、遊技店が閉店した後に不正が行われた場合などであっても、顧客が入店する前に不正を検出することができる。よって、不正による被害が発生する危険性を低減することができる。
また、所定の制御コマンドが客待ちデモコマンド又は客待ちデモ停止コマンドである場合、客待ちデモコマンド又は客待ちデモ停止コマンドは、パチンコ遊技機1が非遊技状態、すなわち、パチンコ遊技機1のメインの処理である遊技(ゲーム進行)関連処理が行われていない場合に送信されるので、認証処理による処理負荷の増大が遊技関連処理に影響を与えることがない。このため、主制御部10や周辺部30が高度な処理能力を有していない場合や、遊技関連処理の処理負荷が大きいパチンコ遊技機1であっても、認証処理機能を追加することができる。また、客待ちデモコマンド及び客待ちデモ停止コマンドは、顧客がパチンコ遊技機1を操作する前に発行されるコマンドであるので、顧客がパチンコ遊技機1を操作する前に不正行為を検出することができる。
さらに、所定の制御コマンドがはずれコマンドである場合、「はずれ」は、抽選時の抽選結果として最も発生頻度が高いので、はずれコマンドデータの送信時に制御コマンドに認証データ303を付加することとすれば、抽選から認証処理への流れをパチンコ遊技機1の処理の基本形とみなすことができる。一方、大当たりリーチ時や大当たり時の処理は、パチンコ遊技機1の機種ごとに演出方法が変更されるなど、特殊な処理に区分されるが、はずれ時の処理はパチンコ遊技機1の機種ごとの差異が少ない。このため、本実施の形態1のように、はずれ時の処理に認証処理を組み込めば、認証処理の流れに大きな変更を加えることなく、パチンコ遊技機1の本体を他の機種に再利用することが可能となる。
また、周辺部30は、後段部20に所定の制御コマンドを送信する場合のみ、制御コマンドに個体認証データ又は動作認証データを付加するようにしてもよい。この場合、後段部20の認証処理が行われるのは所定の制御コマンドの送信時のみであるので、周辺部30の処理負荷が認証処理によって増大する割合を抑えることができる。また、この場合、後段部20が実行するプログラムには所定の制御コマンドに関する認証処理を追加するだけでよい。したがって、後段部20が実行するプログラム全体にわたる新たなタイミングの設計する必要がないので、すべての制御コマンドに個体認証データ又は動作認証データが付加される場合と比較して、認証機能を追加するタイミングの設計、機能の実装、機能の検証など、より簡単に、少ない作業工数で実現することができる。
また、実施の形態1〜3に係るパチンコ遊技機1は、主制御部10は、個体認証データ及び動作認証データが付加された認証データ付制御信号の他に、制御コマンドデータ及び付随データに個体認証データのみを付加した個体認証データ付制御信号や、制御コマンドデータ及び付随データに動作認証データのみを付加した動作認証データ付制御信号を各々後段部20又は周辺部30に送信するようにしてもよい。また、後段部20又は周辺部30は、中間認証情報を構成する各種認証結果や各種認証データを別の制御信号に付加し、それぞれ別々に送信してもよい。
また、実施の形態1〜3に係るパチンコ遊技機1は、制御コマンドを送信する際に、個体認証データ及び動作認証データを制御コマンドに付加すると説明したが、本発明に係る遊技機はこれに限定されない。主制御部10は、制御コマンドとは異なるデータ信号に認証データを付加して後段部20又は周辺部30に送信してもよい。例えば、任意のデータ信号に対して所定時間毎に認証データを付加して送信するなど、主制御部10と後段部20又は周辺部30との間で認証データを送受信するタイミングを予め設定しておけばよい。また、主制御部10は、認証データが付加されたデータ信号を、その旨が分かるような、制御コマンドとは異なるデータ構造となるように出力すればよい。
また、主制御部10は、認証データをデータ信号に付加せずに、認証データそのものをデータ信号として送信してもよい。
また、実施の形態1〜3に係るパチンコ遊技機1は、所定の生成方式を用いて動作コードを生成し、所定の動作コード期待値を用いて動作コードによる動作認証に関する処理を行うとしたが、これに限定されない。主制御部10は、複数の動作コード生成方式を予め用意しておき、今回の分割数に基づいて、複数の動作コード生成方式の中から次回の動作コードの生成に用いる1個の動作コード生成方式を選択するように構成し、後段部20又は周辺部30は、主制御部10における動作コード生成方式の切り替えに対応して、結合数に基づいて動作コード生成方式及び動作コード期待値を切り替えるように構成してもよい。具体的には、主制御部10は、例えば、今回の分割数が奇数の場合は次回の動作コード生成方式を今回用いた動作コード生成方式と異なるものを選択し、今回の分割数が偶数の場合は次回の動作コード生成方式を今回用いた動作コード生成方式と同一のものを選択する。また、後段部20又は周辺部30は、結合数が奇数の場合には動作コード期待値を切り替え、結合数が偶数の場合には前回用いた動作コード期待値を継続して使用する。この場合、初回の動作コード生成方式については、主制御部10と後段部20又は周辺部30との間で同一の方式を利用するものと予め設定しておく。分割数は主制御部10のみが知る値であり、結合数は個体認証が成功して初めて後段部20又は周辺部30が知り得る値である。よって、不正行為者は分割数及び結合数を知ることができず、動作コード生成方式の切り替えタイミングを知ることができない。このため、不正行為者が動作コードを不正に生成することを防止し、主制御部10、後段部20又は周辺部30の間の処理に対する認証強度を向上させることができるとともに、上記不正行為及び遊技機の誤動作を検知することができ、これらに起因する不正な制御コマンドの実行を防止することができる。
また、実施の形態1〜3に係るパチンコ遊技機1において、動作コードとして機能番号を用いる場合、機能番号を主制御部10によって実行されるプログラムの所定の機能を実行するための処理毎に実行される順番に従って連続して増加又は減少する番号を重複なく割り当てておいてもよい。このように機能番号を割り当てることにより、後段部20又は周辺部30は、受信した動作認証データから動作コードを抽出し、受信した順に動作コードの値が連続しているか否かを判定することで動作認証を行うことができる。すなわち、後段部20又は周辺部30は、動作認証に関する処理を行うために、予め動作コード期待値を記憶しておいたり、受信した動作コードと動作コード期待値とを用いて照合処理を行ったりする必要がない。これにより、後段部20又は周辺部30の動作認証に関する処理による処理負荷や、後段部20又は周辺部30の記憶領域を占める動作コードによる動作認証に関するデータ量を低減することができる。
また、実施の形態1〜3に係るパチンコ遊技機1において、動作コードとして機能番号及び認証回数を例示したが、動作コードとして制御コマンドの送信回数を用いてもよい。この場合、後段部20又は周辺部30は、受信した制御コマンドの数、すなわち、制御コマンドの受信回数を動作認証用の期待値として動作認証に関する処理を行えばよい。主制御部10は、制御コマンドの送信タイミングになったら、自身の動作検査値用メモリに記憶されている制御コマンドの送信回数の値を+1して更新し、更新した送信回数を動作コードとして取得する。主制御部10は、取得した動作コードに所定の演算や暗号化処理を施して動作認証データを生成し、生成した動作認証データを上記制御コマンドに付加して後段部20又は周辺部30に送信する。後段部20又は周辺部30は、動作認証データを付加された制御コマンドを受信したら、動作認証データを抽出するとともに自身の動作検査値用メモリに記憶されている動作コード期待値の値を+1して更新し、抽出した動作認証データと更新した動作コード期待値とを用いて動作認証に関する処理を行う。
また、動作コードとして主制御部10が生成した個体検査値の数(すなわち分割数の総数)を用いてもよい。この場合、後段部20又は周辺部30は、主制御部10から送信された個体認証データの数(すなわち、結合数の総数)を動作コード期待値として動作認証に関する処理を行えばよい。主制御部10は、動作コードの更新タイミングになったら、動作コードとして自身の動作検査値用メモリに記憶されている個体検査値の数に今回新たに生成した個体検査値の数を加算して個体検査値の数(動作コード)を更新する。後段部20又は周辺部30は、動作コード期待値の更新タイミングになったら、自身の動作検査値用メモリ記憶されている動作コード期待値の値に今回の個体認証処理の対象となった個体検査値の数(すなわち、今回の結合数)を加算して動作コード期待値を更新する。なお、後段部20又は周辺部30において、個体認証と動作コードを用いた動作認証(中間動作認証を含む)とを実行する場所が異なる場合は、個体認証を実行した制御部から動作コードを用いた動作認証を実行した場所へ、今回の結合数を示す情報を相互で共有できるように通知することとすればよい。
また、上記各実施の形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、上記各実施の形態と同様に構成することにより、上記各実施の形態と同様の効果を得ることができる。
また、上記各実施の形態は、その目的及び構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。