以下、図面を参照して本発明を実施するための最良の形態について説明する。
図1は、本発明の実施の形態に係る遊技機の1つであるパチンコ遊技機1の外観構成を示す正面図、図2は、図1に示すパチンコ遊技機1の電気的構成を示すブロック図である。
本実施の形態に係るパチンコ遊技機1は、遊技盤101を備えている。遊技盤101の図1において右下方であって、枠部材110(後述)の右下部には、遊技者によって操作され、発射部292(図2参照)を作動させるための操作ハンドル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(図2参照)から第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には、図示を省略する貸し玉装置から貸し出される遊技球が供給される。
図1において、図柄表示部104の右側には、演出用の役物(以下、「演出役物」という)115が設けられている。演出役物115は、キャラクターとして人間の上半身(特に頭部)を模式的に表している。演出役物115は、キャラクターの瞼部116を開閉して、キャラクターが瞬きをするが如くに、瞼部116を上下方向に沿って移動可能に設けられている。また、演出役物115は、キャラクターの頭部を左右方向に移動可能に設けられている。
また、枠部材110において、操作ハンドル113の左側には、遊技者により操作されるチャンスボタン117が設けられている。チャンスボタン117の操作は、例えば、遊技中における特定のリーチ演出に際し、チャンスボタン117の操作を促すガイダンスが表示されている間だけ有効となる。
加えて、枠部材110には、演出効果音又は不正を知らしめる音響を出力するスピーカ277(図2参照)が組み込まれている。このスピーカ277は、高音・中音・低音の領域を出力できるタイプのものであり、通常演出時は高音・中音・低音をバランス良く出力するが、例えば、特別演出時又は不正等があった場合には、周りに良く聞こえるように高音領域を高く出力するように制御される。
次に、本発明の実施の形態に係るパチンコ遊技機1の電気的構成について、図2に示すブロック図を参照して説明する。パチンコ遊技機1は、電気的な構成上は、制御手段200に、既述し、後述する、第1始動口検出部221等の各種検出手段や、図柄表示部104等の各種演出手段、役物作動装置231、払出部291、発射部292などが接続されて構成されている。
制御手段200は、図2に示す例では、主制御部201と、中間部202と、副制御部203と、賞球制御部204と、ランプ制御部205とから構成されている。
主制御部201は、パチンコ遊技機1の遊技に係る基本動作を制御し、ROM201bに予め記憶されているプログラム(主制御プログラムコード)に基づき、遊技内容の進行に伴う基本処理を実行するCPU201aと、CPU201aの演算処理時におけるデータのワークエリアとして機能するRAM201cと、経過時間をカウントするためのカウンタ回路(タイマ)(図示略)等を備えて構成されている。
この主制御部201では、第1始動口105又は第2始動口120への遊技球の入球を契機として、大当たりの抽選を行うとともに、この抽選結果に基づいて、ROM201bに記憶されている演出に係わるコマンドの選択を行う。
上記主制御部201の入力側には、第1始動口検出部221と、第2始動口検出部225と、ゲート検出部222と、普通入賞口検出部223と、第1大入賞口検出部214と、第2大入賞口検出部224とが接続されている。第1始動口検出部221は、第1始動口105に遊技球が入球したことを検出して検出結果を主制御部201に供給する。第2始動口検出部225は、第2始動口120に遊技球が入球したことを検出して検出結果を主制御部201に供給する。ゲート検出部222は、入賞ゲート106を遊技球が通過したことを検出して検出結果を主制御部201に供給する。普通入賞口検出部223は、普通入賞口107に入球した遊技球を検出して検出結果を主制御部201に供給する。第1大入賞口検出部214は、第1大入賞口109cに入球した遊技球を検出して検出結果を主制御部201に供給する。第2大入賞口検出部224は、第2大入賞口129cに入球した遊技球を検出して検出結果を主制御部201に供給する。以上説明した各検出部は、例えば、近接スイッチなどを用いて構成することができる。
また、この主制御部201の出力側には、役物作動装置231が接続されている。本実施の形態では、上記役物作動装置231は、第1大入賞口開閉扉109a及び第2大入賞口開閉扉129a(図1参照)をそれぞれ開閉させる第1大入賞口開閉ソレノイド109b及び第2大入賞口開閉ソレノイド129bと、第2始動口120(図1参照)を開閉させる第2始動口開閉ソレノイド120bとから構成されている。
上記役物作動装置231は、主制御部201によって制御され、長当たり遊技時に、第1大入賞口開閉ソレノイド109bを通電して第1大入賞口開閉扉109aを開放したり、短当たり遊技及び小当たり遊技時に、第2大入賞口開閉ソレノイド129bを通電して第2大入賞口開閉扉129aを開放したり、また、上記普通図柄の当選によって第2始動口開閉ソレノイド120bを通電して第2始動口120を開閉したりする。
また、主制御部201は、以上概略説明した、パチンコ遊技機1の遊技に係る基本動作制御の他、本実施の形態の特徴である、不正防止のための認証に関する処理を実行する手段を備えている。この認証に係る手段は、CPU201aがROM201bに予め記憶されているプログラムを実行することにより実現される。この認証に関する処理の概略は、以下の通りであるが、[2]〜[4]の処理については必要に応じて実行される。
[1]主制御部201が正規の主制御部であると認証するための第1認証値を生成する。ここで、第1認証値としては、例えば、パチンコ遊技機1又はCPU201aに固有に付与されている識別番号(ID)、プログラムカウンタ(PC)の値、スタックポインタ値、乱数発生部により発生された乱数、ROM201bに記憶されている所定の主制御プログラムコードを用いて作成した主制御プログラムコード検査値、ROM201bに記憶された任意のデータ(例えば、データテーブルの特定アドレスに記憶されているデータ)等が考えられる。これらのうち、主制御プログラムコード検査値とは、ROM201bに記憶された主制御プログラムコードのすべて又は一部に対して、ハッシュ関数による演算やパリティチェック、巡回冗長検査(CRC:Cyclic Redundancy Check)、チェックサム(Check Sum)などの、誤り検出演算を行って得られた値、又はこれら得られた値にパリティチェック処理を施した値、すなわち、主制御プログラムコードの正当性を検出可能な値をいう。
[2]上記[1]の処理で生成した第1認証値に対して暗号化処理を施す。ここで、暗号化方式としては、例えば、シーザー暗号、単一換字暗号、エニグマなど、比較的簡易なものを採用することができる。以下において用いる暗号化方式についても同様である。シーザー暗号は、メッセージ(平文)を構成する文字を一定の文字数だけずらすことによって暗号化する暗号化方式である。単一換字暗号は、平文を構成する文字を別の文字に変換することによって暗号化する暗号化方式である。エニグマは、鍵暗号鍵を用いたエニグマの設定、エニグマを用いた通信鍵の暗号化、通信鍵を用いたエニグマの再設定、平文の暗号化及び、暗号化された通信鍵と暗号化された平文の結合による通信文の生成という過程を経る暗号化方式である。
以下、上記シーザー暗号、単一換字暗号、エニグマなどの暗号化方式を用いた暗号化処理及び再暗号化処理を「狭義の暗号化処理」及び「狭義の再暗号化処理」と呼ぶことにする。一方、上記狭義の暗号化処理、上記狭義の再暗号化処理、上記狭義の暗号化処理が施されていない又は上記狭義の暗号化処理若しくは上記狭義の再暗号化処理が施された第1認証値に対して行う所定の加工処理、上記所定の加工処理が施された第1認証値を暗号化(狭義)又は再暗号化(狭義)する処理を総称して、「広義の暗号化処理」と呼ぶことにする。
所定の加工処理としては、例えば、上記狭義の暗号化処理が施されていない又は上記狭義の暗号化処理が施された第1認証値を用いた四則演算又は論理演算等を行って所定のデータ長を有する演算データを得る処理、これらの四則演算又は論理演算等により得られた演算データのビット配列を並び変える処理、上記演算データのビットをシフト又はロテイトする処理、若しくは、上記狭義の暗号化処理が施されていない又は上記狭義の暗号化処理が施された第1認証値を構成する複数のビットを取り出して所定の規則に従って並べて1つのデータを生成する処理などが考えられる。
以下では、上記[1]の処理で生成した第1認証値、この第1認証値に対して上記[2]の広義の暗号化処理を施すことにより得られたデータを総称して、「認証データ」という。
[3]中間部202を介して副制御部203に送信される制御コマンドを示すデータ(制御コマンドデータ)及び後述する付随データへ、認証データを付加して認証データ付制御信号(図9参照)を生成する。
[4]認証データ付制御信号を中間部202に送信する。
なお、これら認証に関する処理の詳細については、後述する。
一方、中間部202は、ROM202bに予め記憶されているプログラム(中間処理プログラムコード)に基づき、中間処理を実行するCPU202aと、CPU202aの演算処理時におけるデータのワークエリアとして機能するRAM202c等を備えて構成されている。本実施の形態において、この中間処理の概略は、以下の通りである。
[1]主制御部201から送信された、制御コマンドデータ及び付随データのみからなる通常の制御信号、又は制御コマンドデータ、付随データ及び認証データからなる認証データ付制御信号を受信する。
[2]上記した通常の制御信号を副制御部203にそのまま送信する。
[3]上記した認証データ付制御信号については以下の処理が実行されるが、(d)の第2認証値生成処理以外の処理については、常にこれらすべての処理が実行される訳ではない。
(a)認証データが主制御部201で[2]の狭義の暗号化処理又は狭義の再暗号化処理が施されているデータからなる場合には、復号化処理又は再復号化処理を施す。
(b)認証データが主制御部201で[2]の所定の加工処理が施されたデータからなる場合又は、認証データが主制御部201で[2]の所定の加工処理が施された後、狭義の暗号化処理又は狭義の再暗号化処理が施されたデータからなり、かつ、中間部202で上記(a)の復号化処理又は再復号化処理が施された場合には、当該データから第1認証値を復元する。
(c)(b)の復元処理が施された第1認証値が主制御部201で[2]の狭義の暗号化処理が施されている場合には、復号化処理を施す。
(d)主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値を生成する。ここで、第2認証値としては、例えば、パチンコ遊技機1、CPU201a又はCPU202aに固有に付与されているID、PCの値、スタックポインタ値、乱数発生部により発生された乱数、ROM202bに記憶されている所定の中間処理プログラムコードを用いて作成した中間処理プログラムコード検査値、ROM202bに記憶された任意のデータ(例えば、データテーブルの特定アドレスに記憶されているデータ)等が考えられる。これらのうち、中間処理プログラムコード検査値とは、ROM202bに記憶された中間処理プログラムコードのすべて又は一部に対して、ハッシュ関数による演算やパリティチェック、巡回冗長検査(CRC)、チェックサムなどの、誤り検出演算を行って得られた値、又はこれら得られた値にパリティチェック処理を施した値、すなわち、中間処理プログラムコードの正当性を検出可能な値をいう。
(e)認証データが主制御部201で[1]の生成処理が施されたままの第1認証値である場合の当該第1認証値、(a)の復号化処理又は再復号化処理が施された第1認証値、(b)の復元処理が施された第1認証値、(b)の復元処理が施され(c)の復号化処理が施された第1認証値のいずれかに対して狭義の暗号化処理を施す。
(f)(d)の第2認証値生成処理で生成された第2認証値に対して狭義の暗号化処理を施す。
(g)狭義の暗号化処理が施された又は狭義の暗号化処理が施されていない第1認証値若しくは、狭義の暗号化処理が施された又は狭義の暗号化処理が施されていない第2認証値と、例えば、制御コマンドデータ又は付随データのいずれか一方又は両方、制御コマンドデータ又は付随データのいずれか一方又は両方を所定の変換式に基づいて変換したデータ(以下「変換制御コマンドデータ」という。)、あるいは、乱数発生部により発生された乱数等の所定の数値などとについて、四則演算や論理演算等の中間演算を行う。ここで、「中間演算」とは、中間部202において行われる、主制御部201又は中間部202のいずれか一方又は両方の認証に関するデータとその他のデータとを用いた演算をいう。
(h)主制御部201を構成するCPU201a又は副制御部203を構成するCPU203aがそれぞれ実行するプログラムの全部又は一部が変更される(バージョンアップなど)ことにより、認証方式に実質的な変更はないが、第1認証値、第2認証値又は(g)の処理で得られた中間演算の結果(以下「中間演算結果」という。)等のデータ構造等において、形式的な差異が発生した場合には、主制御部201と副制御部203との間において、第1認証値、第2認証値又は中間演算結果等のデータ構造等の形式的な差異がなくなるようにする。以下、この処理を「データ構造変換」と呼ぶことにする。
(i)狭義の暗号化処理が施された第1認証値、狭義の暗号化処理が施された第2認証値、中間演算結果のいずれかに対して狭義の暗号化処理又は狭義の再暗号化処理を施す。
(j)狭義の暗号化処理が施されていない若しくは狭義の暗号化処理が施された又は狭義の再暗号化処理が施された若しくは(h)の処理でデータ構造変換された第1認証値(以下「第1認証値等」という。)、狭義の暗号化処理が施されていない若しくは狭義の暗号化処理が施された又は狭義の再暗号化処理が施された若しくはデータ構造変換された第2認証値(以下「第2認証値等」という。)、狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された若しくはデータ構造変換された中間演算結果(以下「中間処理結果等」という。)のうち、2つ以上のデータに対して、主制御部201の認証に関する処理[2]で説明した所定の加工処理を行う。以下、所定の加工処理を行うことにより得られたデータを「加工処理データ」と呼ぶことにする。
(k)加工処理データに対して狭義の暗号化処理を施す。
(l)制御コマンドデータ及び付随データに、以上説明した(a)〜(k)の処理又はこれらの処理の組み合わせた処理で得られた結果、主制御部201で[1]の生成処理が施されたままの第1認証値、(d)の生成処理が施されたままの第2認証値(以下「中間処理情報」という。)を付加して中間処理情報付制御信号を生成する。中間処理情報としては、例えば、第1認証値等、第2認証値等、中間演算結果等、狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された加工処理データの少なくとも1つを含む。
[4]中間処理情報付制御信号を副制御部203に送信する。
なお、これらの中間処理の詳細については、後述する。
また、副制御部203の入力側には、上記チャンスボタン117が操作されたことを検出するチャンスボタン検出部220が接続されている。この副制御部203は、主に遊技中における演出の制御を行うものであり、主制御部201より中間部202を介して送信される制御コマンドデータに基づいて演出の抽選及び演出処理を実行するCPU203aと、プログラム及び過去の演出パターンを記憶するROM203bと、CPU203aの演算処理時におけるデータのワークエリアとして機能するRAM203cと、図柄表示部104に表示させるための画像データが書き込まれるVRAM203d等を備えている。
この副制御部203は、主制御部201より中間部202を介して送信される演出に係る制御コマンドデータを受信すると、この制御コマンドデータに基づいて抽選を行い、演出背景パターン、リーチ演出パターン、登場キャラクター等の演出を確定するとともに、当該確定した演出の制御を行う。
また、副制御部203の出力側には、図柄表示部104が接続されており、抽選によって決定された内容のとおりに、図柄表示部104に、例えば、図柄変動の演出表示を展開する。
そして通常、CPU203aがROM203bに記憶されたプログラムを読み込んで、背景画像表示処理、図柄画像表示及び変動処理、キャラクター画像表示処理など各種画像処理を実行し、必要な画像データをROM203bから読み出してVRAM203dに書き込む。背景画像、図柄画像、キャラクター画像は、表示画面上において図柄表示部104に重畳表示される。
すなわち、図柄画像やキャラクター画像は背景画像よりも手前に見えるように表示される。このとき、同一位置に背景画像と図柄画像が重なる場合、Zバッファ法など周知の陰面消去法により各画像データのZバッファのZ値を参照することで、図柄画像を優先してVRAM203dに記憶させる。
また、副制御部203は、以上概略説明した処理の他に、中間処理情報付制御信号を受信した場合には、ROM203bに予め記憶されているプログラムに基づき、認証に関する処理を実行する。本実施の形態において、この認証に関する処理の概略は、以下の通りであるが、常にこれらすべての処理が実行される訳ではない。
[1]中間処理情報を構成する、第1認証値等、第2認証値等、中間演算結果等、加工処理データのいずれかに狭義の暗号化処理又は狭義の再暗号化処理が施されている場合には、復号化処理又は再復号化処理を施す。
[2]狭義の暗号化処理が施されていない又は[1]の処理で復号化処理又は再復号化処理が施された中間演算結果等、狭義の暗号化処理が施されていない又は[1]の処理で復号化処理又は再復号化処理が施された加工処理データから、第1及び第2認証値を取り出す。
[3][2]の処理で取り出された第1認証値又は第2認証値に狭義の暗号化処理又は狭義の再暗号化処理が施されている場合には、復号化処理又は再復号化処理を施す。
[4]主制御部201で[1]の生成処理が施されたままの第1認証値、中間部202で[3](d)の生成処理が施されたままの第2認証値あるいは、[1]〜[3]のいずれかの処理で得られた第1及び第2認証値を用いて、主制御部201が正規の主制御部であるか否か又は中間部202が正規の中間部であるか否かのいずれか一方又は両方について、2回の認証を行う。
[5][4]の処理で得られた2回の認証結果(以下「第1及び第2認証結果」という。)に応じて、制御コマンドデータに基づく処理を行う。
[6]第1認証結果又は第2認証結果のいずれか一方又は両方が認証の不成功を示す場合には、その旨の報知等を行う。
なお、これら認証に関する処理の詳細については、後述する。
また副制御部203の出力側には、スピーカ277が接続されており、副制御部203において確定したとおりに、音響が出力されるようにしている。
また副制御部203の出力側には、ランプ262、演出ライト111a及び111b、演出役物作動装置254を制御するランプ制御部205を備えている。演出役物作動装置254は、演出役物115等の、演出用の役物を作動させるモータやソレノイド等によって構成されている。
ランプ制御部205は、副制御部203より送信された制御コマンドデータに基づきROM205bから読み込んだプログラムを作動させて演出処理を実行するCPU205aと、上記プログラム及び各種演出パターンデータを記憶するROM205bと、CPU205aの演算処理時におけるデータのワークエリアとして機能するRAM205c等を備えて構成される。
上記ランプ制御部205は、遊技盤101や台枠等に設けられている各種ランプ262に対する点灯制御等を行い、また、演出ライト111a及び111bをそれぞれ構成する複数のライト112に対する点灯制御等を行い、各ライト112からの光の照射方向を変更するためにモータに対する駆動制御等を行う。
また、ランプ制御部205は、副制御部203より送信された制御コマンドデータに基づき、演出役物115を動作させるソレノイドに対する駆動制御等を行い、瞼部116を動作させるモータに対する駆動制御等を行う。
さらに、上記主制御部201には賞球制御部204が双方向にて送信可能に接続されている。賞球制御部204は、ROM204bに記憶されたプログラムに基づき、賞球制御を行う。この賞球制御部204は、ROM204bに記憶されたプログラムを作動して賞球制御の処理を実行するCPU204aと、CPU204aの演算処理時におけるデータのワークエリアとして機能するRAM204c等を備えて構成されている。
賞球制御部204は、接続される払出部291に対して、各入球口(第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129c)に入球した遊技球に対応した賞球数を払い出す制御を行う。また、賞球制御部204は、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。払出部291は、遊技球の貯留部から所定数を払い出すためのモータ等からなる。
発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサ(図示略)と、遊技球を発射させるソレノイド等(図示略)を備えている。賞球制御部204は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイド等を駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
上記構成の主制御部201と、中間部202と、副制御部203と、賞球制御部204と、ランプ制御部205とは、それぞれ異なるプリント基板(主制御基板、中間基板、副制御基板、賞球制御基板、ランプ制御基板)に搭載されている。これらのうち、中間基板、副制御基板、賞球制御基板及びランプ制御基板の総称として、「周辺基板」を用いる。なお、例えば、賞球制御部204は、主制御部201と同一のプリント基板上に搭載することもできる。また、中間部202は、副制御部203と同一のプリント基板上に搭載することもできる。
次に、上記構成のパチンコ遊技機1の動作について、図面を参照して説明する。なお、以下の説明において、「制御コマンドを送信する」とは、「当該制御コマンドを示すデータ(制御コマンドデータ)を含む制御信号を送信する」という意味であり、例えば、図9に示す認証データや付随データの有無は考慮しないものとする。
(A)主制御部201による中間部202及び賞球制御部204への制御コマンド送信を含む処理について、図3及び図4に示すフローチャートを参照して説明する。
まず、主制御部201は、パチンコ遊技機1の電源投入に伴う初期設定処理を実行(図3のステップS1参照)した後、ステップS2へ進む。なお、パチンコ遊技機1に電源が投入された際には、周辺基板が主制御基板から送信される制御コマンドを確実に取り込むために、周辺基板が立ち上がってRAM領域の初期化処理を行い、待機状態となった後、主制御基板が立ち上がるように構成されている。主制御部201は、初期設定処理として、例えば、スタックポインタに予め決められた所定値を設定するとともに、中間部202、副制御部203及び賞球制御部204が上記した待機状態になることを待つために、所定時間(例えば、約1秒間)だけ待機する。
ステップS2では、主制御部201は、中間部202及び賞球制御部204に電源投入コマンドを送信した後、ステップS3へ進む。電源投入コマンドが送信されると、中間部202は、当該電源投入コマンドを副制御部203に送信する。電源投入コマンドが送信されると、副制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して電源投入時の演出用の制御コマンド、具体的には、遊技機が非遊技状態における客待ちのデモ画面を表示するための客待ちデモコマンド、あるいは、ランプの点灯等を行うための制御コマンドを送信する。
なお、上記した電源投入コマンドとは電源投入後に電源投入に伴う処理を実行させるための制御コマンドを示し、各制御基板が立ち上がった後に、主制御部201が中間部202、中間部202を介して副制御部203、主制御部201が賞球制御部204に送信する制御コマンドであって、電源投入後の立ち上げ時における遊技を制御するための初期制御情報、例えば、制御モード、バックアップデータ等を送信するための制御コマンド、あるいは初期演出表示の制御を行うための制御コマンド、例えば、客待ちデモ等の各種のデモ表示を開始させるための制御コマンドである。また、この電源投入コマンドは遊技機のリセットボタンを押圧したときに実行される、上記制御モード、バックアップデータ等を送信するための制御コマンドも含む。
ステップS3では、主制御部201は、RAM201cに記憶されている未抽選入賞回数データを参照して、未抽選入賞回数が0回であるか否かを判断する。ここで、未抽選入賞回数とは、第1始動口検出部221又は第2始動口検出部225で検出された遊技球の数(入賞回数)から、当該遊技球の入球に対応する抽選が行われた回数(既抽選回数)を減じた数である。ステップS3の判断結果が「NO」の場合、すなわち、未抽選入賞回数が0回でない場合には、主制御部201は、後述するステップS10へ進む。一方、ステップS3の判断結果が「YES」の場合、すなわち、未抽選入賞回数が0回である場合には、主制御部201は、ステップS4へ進む。
ステップS4では、主制御部201は、電源投入時のデモが開始されてから経過した時間を計測した後、ステップS5へ進む。ステップS5では、主制御部201は、電源投入時のデモが開始されてから所定時間が経過したか否かを判断する。ステップS5の判断結果が「YES」の場合、すなわち、電源投入時のデモが開始されてから所定時間が経過した場合には、主制御部201は、ステップS6へ進む。なお、上記した電源投入時のデモを開始するための制御コマンドは、客待ちデモコマンドとしてもよい。
ステップS6では、主制御部201は、中間部202に客待ちデモコマンドを送信した後、ステップS7へ進む。客待ちデモコマンドが送信されると、中間部202は、当該客待ちデモコマンドを副制御部203に送信する。客待ちデモコマンドが送信されると、副制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して客待ちデモ用の制御信号を送信する。
一方、ステップS5の判断結果が「NO」の場合、すなわち、電源投入時のデモ(又は客待ちデモ)が開始されてから所定時間が経過していない場合には、主制御部201は、ステップS7へ進む。ステップS7では、主制御部201は、第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では、主制御部201は、客待ちデモ(又は電源投入時のデモ)が開始されてから計測していた時間をクリアした後、ステップS9へ進む。ステップS9では、主制御部201は、未抽選入賞回数に1を加算する。なお、第1始動口検出部221又は第2始動口検出部225で複数の遊技球の入球が検出された場合、このステップS9では、主制御部201は、未抽選入賞回数に入球に相当する数を加算する。そして、主制御部201は、ステップS10へ進む。ステップS10では、主制御部201は、予め用意された乱数カウンタ(例えば、0〜250をカウント)から1つの大当たり判定用乱数を無作為に取得した後、ステップS11へ進む。ステップS11では、主制御部201は、未抽選入賞回数から1を減算した後、図4に示すステップS12へ進む。
図4に示すステップS12では、主制御部201は、例えば、予めROM201bに記憶されている大当り判定データテーブルを参照して、ステップS10の処理で取得した大当たり判定用乱数が、この大当り判定データテーブルに記憶されている大当たりの乱数値であるか否かを判断する。また、ステップS12では、取得した大当たり判定用乱数がはずれの乱数の場合には、例えば、大当り判定データテーブルを参照して、さらに「リーチ有りのはずれ」又は「リーチ無しのはずれ」であるかについても判断する。ステップS12の判断結果が「YES」の場合、すなわち、ステップS10で取得した大当たり判定用乱数が予め定められた大当たり乱数である場合には、主制御部201は、ステップS13へ進む。
ステップS13では、主制御部201は、中間部202に、例えば、大当たりの種別コード(通常当りか確率変動当りか、等)、リーチ有り、図柄変動時間、等の制御データ(付随データ)を含む大当たりリーチコマンド(図柄変動コマンド)を送信した後、ステップS14へ進む。大当たりリーチコマンド(図柄変動コマンド)が送信されると、中間部202は、当該大当たりリーチコマンド(図柄変動コマンド)を副制御部203に送信する。ステップS14では、主制御部201は、図柄変動時間が経過したか否かを判断する。ステップS14の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部201は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS14の判断結果が「YES」となり、主制御部201は、ステップS15へ進む。
ステップS15では、主制御部201は、中間部202に図柄停止コマンドを送信した後、ステップS16へ進む。図柄停止コマンドが送信されると、中間部202は、当該図柄停止コマンドを副制御部203に送信する。ステップS16では、主制御部201は、中間部202に大当たり開始コマンドを送信した後、ステップS17へ進む。大当たり開始コマンドが送信されると、中間部202は、当該大当たり開始コマンドを副制御部203に送信する。ステップS17では、主制御部201は、中間部202に大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を順次送信し、すべてのラウンドの大当たりコマンドの送信を終了した後、ステップS18へ進む。各ラウンドに対応する大当たりコマンドが順次送信されると、中間部202は、各ラウンドに対応する大当たりコマンドを副制御部203に順次送信する。ステップS18では、主制御部201は、中間部202に大当たり終了コマンドを送信した後、ステップS22へ進む。大当たり終了コマンドが送信されると、中間部202は、当該大当たり終了コマンドを副制御部203に送信する。
一方、ステップS12の判断結果が「NO」の場合、すなわち、ステップS10の処理で取得した大当たり判定用乱数が予め定められた大当たり乱数でない場合には、主制御部201は、ステップS19へ進む。ステップS19では、主制御部201は、「リーチ有りのはずれ」の場合には「はずれリーチコマンド(図柄変動コマンド)」を、「リーチ無しのはずれ」の場合には「はずれコマンド(図柄変動コマンド)」を中間部202に送信した後、ステップS20へ進む。はずれリーチコマンド又ははずれコマンドが送信されると、中間部202は、当該制御コマンド(図柄変動コマンド)を副制御部203に送信する。
ステップS20では、主制御部201は、図柄変動時間が経過したか否かを判断する。ステップS20の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部201は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS20の判断結果が「YES」となり、主制御部201は、ステップS21へ進む。ステップS21では、主制御部201は、中間部202に図柄停止コマンドを送信した後、ステップS22へ進む。図柄停止コマンドが送信されると、中間部202は、当該図柄停止コマンドを副制御部203に送信する。
ステップS22では、主制御部201は、パチンコ遊技機1の電源がオフにされたか否かを判断する。ステップS22の判断結果が「NO」の場合、すなわち、パチンコ遊技機1の電源がオフにされていない場合には、主制御部201は、図3に示すステップS3へ戻り、ステップS3以降の処理を繰り返す。
一方、ステップS22の判断結果が「YES」の場合、すなわち、パチンコ遊技機1の電源がオフにされた場合には、主制御部201は、ステップS23へ進む。ステップS23では、主制御部201は、中間部202に終了処理コマンドを送信した後、一連の処理を終了する。終了処理コマンドが送信されると、中間部202は、当該終了処理コマンドを副制御部203に送信する。
ここで、図5に、大当たり関連コマンド(大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド)の送信タイミングの一例であるタイミングチャートを示す。図5(1)に示す大当たりリーチコマンドは、ランダムに送信される。また、図5(2)に示す大当たり開始コマンドは、実際に大当たりが発生した場合に、大当たり状態に移行する際に1度だけ送信される。さらに、図5(3)に示す大当たりコマンドは、大当たり状態に移行した後、ラウンドごとに継続的に送信される。また、図5(4)に示す大当たり終了コマンドは、大当たり状態のすべてのラウンドが終了し、通常の状態に移行する際に1度だけ送信される。
(B)次に、副制御部203による処理について説明する。以下では、図柄変動時(大当たりリーチコマンド(図4に示すステップS13参照)又は、はずれリーチコマンド(図4に示すステップS19参照)を受信した場合)及び、大当たり時の副制御部203の処理について説明する。
[1]まず、副制御部203による図柄変動処理について、図6に示すフローチャートを参照して説明する。
まず、副制御部203は、主制御部201から中間部202を介して、図柄変動コマンドである大当たりリーチコマンド(図4に示すステップS13参照)又ははずれリーチコマンド(図4に示すステップS19参照)のいずれかを受信したか否かを判断する(図6のステップ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は、主制御部201から中間部202を介して図柄停止コマンド(図4に示すステップS15及びS21参照)を受信したか否かを判断する。ステップS36の判断結果が「NO」の場合、すなわち、図柄停止コマンドを受信していない場合には、副制御部203は、ステップS35へ戻り、ステップS35以降の処理を繰り返す。
一方、ステップS36の判断結果が「YES」の場合、すなわち、図柄停止コマンドを受信した場合には、副制御部203は、ステップS37へ進む。また、ステップS35の判断結果が「YES」の場合、すなわち、変動演出の演出時間が経過した場合にも、副制御部203は、ステップS37へ進む。ステップS37では、副制御部203は、図柄表示部104やランプ制御部205に演出停止コマンドを送信した後、一連の処理を終了する。
[2]次に、副制御部203による大当たり時の処理について、図7に示すフローチャートを参照して説明する。
まず、副制御部203は、主制御部201から中間部202を介して大当たり開始コマンド(図4に示すステップS16参照)を受信したか否かを判断する(図7のステップS41参照)。この判断結果が「NO」の場合には、副制御部203は、同判断を繰り返す。そして、大当たり開始コマンドを受信すると、ステップS41の判断結果が「YES」となり、副制御部203は、ステップS42へ進む。
ステップS42では、副制御部203は、図柄表示部104やランプ制御部205に大当たり開始処理コマンドを送信した後、ステップS43へ進む。ステップS43では、副制御部203は、主制御部201から中間部202を介してラウンド別の大当たりコマンド(図4に示すステップS17参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、副制御部203は、同判断を繰り返す。そして、ラウンド別の大当たりコマンドを受信すると、ステップS43の判断結果が「YES」となり、副制御部203は、ステップS44へ進む。
ステップS44では、副制御部203は、図柄表示部104やランプ制御部205に受信したラウンド別の大当たりコマンドに対応するラウンド別処理コマンドを送信した後、ステップS45へ進む。ステップS45では、主制御部201から中間部202を介して大当たり終了コマンド(図4に示すステップS18参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、副制御部203は、同判断を繰り返す。そして、大当たり終了コマンドを受信すると、ステップS45の判断結果が「YES」となり、副制御部203は、ステップS46へ進む。ステップS46では、副制御部203は、図柄表示部104やランプ制御部205に大当たり終了処理コマンドを送信した後、一連の処理を終了する。
(C)次に、ランプ制御部205によるランプ制御処理について説明する。ここでは、副制御部203から図柄変動コマンドを受信した場合(図柄変動時)の処理について、図8に示すフローチャートを参照して説明する。
まず、ランプ制御部205は、副制御部203から演出開始コマンド(図6に示すステップS34参照)を受信したか否かを判断する(図8のステップ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から演出停止コマンド(図6に示すステップS37参照)を受信したか否かを判断する。この判断結果が「NO」の場合には、ランプ制御部205は、ステップS55へ戻り、ステップS55以降の処理を繰り返す。一方、ステップS56の判断結果が「YES」の場合、すなわち、副制御部203から演出停止コマンドを受信した場合には、ランプ制御部205は、ステップS57へ進む。ステップS57では、ランプ制御部205は、ランプデータの出力を停止した後、一連の処理を終了する。
以上説明したように、副制御部203及びランプ制御部205は、主制御部201から供給される制御コマンドに基づいて各種の処理を行っている。賞球制御部204についても同様である。以下、副制御部203、賞球制御部204及びランプ制御部205の総称として、「周辺部」を用いる。
一方、上記したように、遊技機に対し行われる、遊技とは無関係にメダルや遊技球などの遊技媒体を強制的に払い出させる不正行為のうち、主制御基板(主制御部)や周辺基板(周辺部)に関するものとして以下に示すものがある。
(1)正規な主制御基板と不正な主制御基板との交換
(2)主制御基板に搭載されたCPUが実行する正規なプログラムが記憶されたROMと上記プログラムを改ざんした不正なプログラムが記憶されたROMとの交換
(3)主制御基板と周辺基板との間に不正な基板(なりすまし基板)を設けた上での上記(2)のROM交換
このような不正行為が行われた場合、周辺部は不正な制御部から出力された不正な制御コマンドデータによって不正な動作を行ってしまう。何故なら、既存の制御コマンドデータには送信者(主制御部201)を識別するための情報が含まれていないので、制御コマンドデータを受信する周辺部では、送信された制御コマンドデータが、正規な制御部から送信されたものか否か識別できないためである。
また、上記した不正行為に限らず、例えば、主制御部から周辺部に制御コマンドデータが送信されている際に、遊技機に外部から電気的な雑音や機械的な振動等が加えられることにより、この雑音等の影響により制御コマンドデータにビットエラーが発生し、制御コマンドデータが変更されてしまうことがある。この場合、本来周辺部に送信されるべき制御コマンドデータが大当たりコマンド以外の制御コマンドのデータであるにも関わらず、ビットエラーが発生して当該制御コマンドデータが大当たりコマンドデータに変更されてしまうと、上記した不正行為が行われた場合でなくても、遊技者に不当に多くの遊技媒体(例えば、遊技球やメダルなど)が払い出され、遊技場が多大な損害を被ってしまう。
そこで、上記不正行為及び雑音等に起因する遊技機の誤動作を防止するため、本実施の形態に係るパチンコ遊技機1では、主制御部201と副制御部203との間に中間部202を設けている。
そして、本実施の形態においては、主制御部201は、出力する制御コマンドが所定の制御コマンドである場合、主制御部201を認証するための第1認証値から得られた認証データを所定の制御コマンドに付加して中間部202に供給する。中間部202は、主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値を生成する。次に、中間部202は、主制御部201から取得した第1認証値又は第2認証値について、復号化処理、再復号化処理、第1認証値の復元処理、狭義の暗号化処理、狭義の再暗号化処理、データ構造変換、中間演算、所定の加工処理等の中間処理を行って得た中間処理情報を、副制御部203に供給する。
そして、副制御部203は、中間部202から取得した中間処理情報から得られた第1及び第2認証値を用いて主制御部201が正規の主制御部であるか否か又は、中間部202が正規の中間部であるか否かのいずれ一方又は両方の2回の認証を行うとともに、この認証により得られた第1認証結果又は第2認証結果の少なくとも1つに応じた処理を行う。ここで、所定の制御コマンドとは、パチンコ遊技機1の通電中において、パチンコ遊技機1の動作、例えば、初期化動作や演出動作(大当たりコマンドやリーチコマンド等)、あるいは客待ちデモンストレーションなどを指示するために、主制御部201が中間部202を介して副制御部203に送信する各種の制御コマンドの中から、予め任意に選定した特定の制御コマンドをいう。
次に、主制御部201が中間部202に供給する制御信号のデータフォーマットの一例について、図9に示す模式図を参照して説明する。図9(1)に示すように、主制御部201が出力する通常の制御信号300には、制御コマンドデータ301及び付随データ302が含まれている。この場合の制御コマンドデータ301は、上記した所定の制御コマンド以外の制御コマンド固有のデータである。また、付随データ302は、制御コマンドデータ301に付随するデータであり、例えば、現在の遊技状態を示すデータなど制御コマンドデータ301に対応する処理を実行するために必要な制御データである。
一方、主制御部201は、制御信号内の制御コマンドデータ301が上記した所定の制御コマンド固有のデータである場合、図9(2)に示すように、制御コマンドデータ301及び付随データ302に加え、認証データ303を含んだ認証データ付制御信号310を生成し、出力する。なお、図9には示していないが、通常の制御信号300及び認証データ付制御信号310には、一般的なデータ通信で伝送される制御信号と同様に、BCC(Block Check Character)等が含まれている場合もある。BCCは、データ伝送の過程で発生するデータ誤りなどをチェックするために、伝送ブロックごとに付加される誤り検出符号である。後述する認証データ付制御信号311、312、通常の制御信号320、中間処理情報付制御信号321、322及び323についても同様である。
なお、認証データ付制御信号は、図9(2)に示すような制御コマンドデータ301、付随データ302、認証データ303の順で配置された認証データ付制御信号310に限らず、例えば、図9(3)に示すように、認証データ303を制御信号の先頭に設けた認証データ付制御信号311としたり、図9(4)に示すように、制御コマンドデータ301と付随データ302との間に認証データ303を挿入した認証データ付制御信号312としたりしても良い。また、制御コマンドデータ301及び付随データ302とは別個に認証データ303を出力することとしても良い。例えば、大当たりコマンドデータを含む制御信号を送信した後、3回目の制御信号送信時に認証データ303を付加する、などとしても良い。
このように、認証データ303を制御信号に含めることによって、認証データ303単体で送信する場合と比較して、主制御部201と副制御部203との間の通信負荷の増大を抑えることができる。また、認証データ303を制御信号に含めることによって、認証データ303を単体で送信する場合と比較して、通信データ中から認証データ303が抽出され、解析されてしまう危険性を低減することができる。また、認証処理は、所定の制御コマンドの制御コマンドデータを送信するときにのみ行われるため、主制御部201や副制御部203の処理負荷が認証処理によって増大する割合を抑えることができる。
また、主制御部201において、主制御部201を認証するための第1認証値に対して狭義の暗号化処理、狭義の再暗号化処理、所定の加工処理等を施すことにより認証データ303を得た後、この認証データ303を中間部202に送信した場合には、何らの処理も施していない第1認証値をそのまま中間部202に供給する場合と比較して、第1認証値を不正者により分析される可能性を低減することができる。
また、主制御部201が所定の主制御プログラムコードを用いて第1認証値を生成した場合には、主制御部201が実行する主制御プログラムの改ざんによる不正行為をより的確に検出することができ、その主制御プログラムコードの正当性を認証することが可能になる。
また、中間部202が所定の制御コマンドに付加された認証データ303から得られた第1認証値と、内部で生成した、主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値とに対して中間処理を行うとともに、副制御部203が所定の制御コマンドに付加された中間処理情報304から得られた第1及び第2認証値を用いて主制御部201が正規の主制御部であるか否か又は、中間部202が正規の中間部であるか否かのいずれ一方又は両方の2回の認証をするので、上記した(1)〜(3)等の主制御部201に対する不正行為及び雑音等に起因するパチンコ遊技機1の誤動作の他、中間部202に対する上記した(1)〜(3)等と同様な不正行為及び雑音等に起因するパチンコ遊技機1の誤動作を防止することができ、セキュリティの向上を図ることができる。
また、所定の制御コマンドの制御コマンドデータ301にのみ認証データ303が付加されるので、副制御部203が実行するプログラムには所定の制御コマンドに関する認証処理を追加するだけで良い。したがって、副制御部203が実行するプログラム全体にわたる新たなタイミングの設計する必要がないので、すべての制御コマンドの制御コマンドデータ301に認証データ303が付加される場合と比較して、認証機能を追加するタイミングの設計、機能の実装、機能の検証など、より簡単に、少ない作業工数で実現することができる。
さらに、主制御部201と副制御部203との間に中間部202を設けているので、主制御部201を構成するCPU201aと副制御部203を構成するCPU203aとの間で処理能力に差異があったり、主制御部201を構成するROM201bと副制御部203を構成するROM203bとの間で記憶容量に差異があったりしたとしても、主制御部201と副制御部203との間のセキュリティレベルを維持しつつ、主制御部201と副制御部203との間における上記した差異を中間部202において吸収することができる。
例えば、主制御部201を構成するCPU201aの処理能力や主制御部201を構成するROM201bの記憶容量が副制御部203を構成するCPU203aの処理能力や副制御部203を構成するROM203bの記憶容量と比較して余裕がある場合、主制御部201は第1認証値に対して複雑又は高度な暗号化演算を行って得られた認証データ303を中間部202に供給し、中間部202は受信した上記認証データ303から得られた第1認証値と、内部で生成した第2認証値とに対して比較的簡易又は低度な暗号化演算を行って得られた中間処理情報304を副制御部203に供給する。そして、副制御部203で中間処理情報304から得られた第1及び第2認証値を用いて主制御部201又は中間部202のいずれか一方又は両方について認証する。このように構成することにより、複雑又は高度な認証方式を採用しなくても、比較的簡易な認証方式を採用した認証処理を複数回行えば、主制御部201と中間部202との間及び中間部202と副制御部203との間において、高度のセキュリティレベルを維持することができる。
また、副制御部203を構成するCPU203aの処理能力や副制御部203を構成するROM203bの記憶容量が主制御部201を構成するCPU201aの処理能力や主制御部201を構成するROM201bの記憶容量と比較して余裕がある場合、主制御部201は第1認証値を認証データ303としてそのままあるいは比較的簡易又は低度な暗号化演算を行って得られた認証データ303を中間部202に供給し、中間部202は受信した上記認証データ303から得られた第1認証値と、内部で生成した、主制御部201又は中間部202のいずれか一方又は両方を認証するための第2認証値に対して複雑又は高度な再暗号化演算を行ったり、上記認証データ303から得られた第1認証値に対して復号化処理等を施した後に上記第2認証値とともにより複雑又は高度な再暗号化演算を行ったりする中間演算を行って得られた中間処理情報304を副制御部203に供給する。そして、副制御部203で中間処理情報304から得られた第1及び第2認証値を用いて主制御部201又は中間部202のいずれか一方又は両方について認証する。このように構成することにより、複雑又は高度な認証方式を採用しなくても、比較的簡易な認証方式を採用した認証処理を複数回行えば、主制御部201と中間部202との間及び中間部202と副制御部203との間において、可能な限りセキュリティレベルを維持することができる。
このようなことは、主制御部201及び副制御部203をそれぞれ構成するCPU201a及び203aの処理能力やROM201b及び203bの記憶容量における余裕に差異がある場合だけでなく、このような差異はないが、主制御部201を構成するCPU201a又は副制御部203を構成するCPU203aがそれぞれ実行するプログラムの一方の全部又は一部が変更された場合(バージョンアップなど)や、第1認証値、第2認証値又は中間演算結果等のデータ構造等において、主制御部210と副制御部203との間で形式的な差異が発生した場合についても同様に当てはまる。
中間部202が主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値を生成するとともに、認証データ303に関する復号化処理、再復号化処理、認証データ303からの第1認証値の復元処理又は復号化処理、第1及び第2認証値に関する狭義の暗号化処理、狭義の再暗号化処理又は制御コマンドデータ等との中間演算、データ構造変換、所定の加工処理などの中間処理を行って得られた中間処理情報304を副制御部203に送信し、副制御部203が上記した中間処理情報304を構成する第1認証値等、第2認証値等、中間演算結果等、加工処理データの復号化処理又は再復号化処理や第1及び第2認証値の復元処理等を行った後、第1及び第2認証値を用いて2回認証を行うことによって、副制御部203は、得られた認証結果に基づいて、制御信号の出力元が正規の主制御部201であるか否か、正規の中間部202であるか否かを判断することができる。
なお、副制御部203が第1及び第2認証値を用いて認証を行うには、副制御部203を構成するROM等の記憶手段に認証に必要なデータ(以下、「期待値」等という。)が予め記憶されている必要があることは言うまでもない。また、主制御部201のROM201bに記憶された主制御プログラムコードや中間部202のROM202bに記憶された中間処理プログラムコードの不正な書き換えや、主制御部201のROM201bや中間部202のROM202bの不正な取り替えなどを検出することができる。
<i>なお、主制御部201は、それぞれの制御信号に対して異なる認証データ303を生成するものとしても良い。具体的には、例えば、第1認証値のうち、主制御プログラムコード検査値は、制御コマンドに対応させて主制御部201のROM201b内の主制御プログラムコードが記憶されているアドレスの範囲を異ならせたり、第1認証値から認証データ303を生成するための誤り検出演算等の加工処理を行う処理方法を異ならせたりするようにする。
また、認証データ303には、認証データ303とともに送信される制御コマンドデータ301や付随データ302に関するデータを含ませても良い。制御コマンドデータ301や付随データ302に関するデータとは、制御コマンドデータ301や付随データ302そのものや、制御コマンドデータ301や付随データ302に対して上述した加工処理を行って得られた値などである。
一般に、不正な制御部は、正規の主制御部201と異なる制御コマンドデータを送信することによって、副制御部203に不正な動作を行わせようとする。認証データ303とともに送信する制御コマンドデータ301や付随データ302を用いて認証データ303を生成すれば、不正な制御部によって認証データ303を再利用された場合であっても、認証データ303と制御コマンドの整合がとれず、不正を検知することができる。
また、上記した不正行為に限らず、電気的な雑音や機械的な振動等に起因して、制御コマンドデータにビットエラーが発生し、制御コマンドデータが変更された場合、認証は成功しないため、上記した雑音等に起因して変更された制御コマンドデータに対応した制御コマンドの実行を防止することもできる。
また、認証データ303に制御コマンドデータ301や付随データ302に関するデータを含ませる場合、主制御部201は制御コマンドデータ301や付随データ302に関するデータと第1認証値とを合わせて狭義の暗号化処理を施して、認証データ303を生成する処理を行っても良い。
認証データ303は、上記した「所定の加工処理」を行って生成する他、この「所定の加工処理」で生成したデータと、認証データ303を付加する所定の制御コマンドの制御コマンドデータ301又は付随データ302とを、四則演算、あるいは論理演算などを行って生成しても良い。
また、主制御部201が、第1認証値を生成するタイミングと、第1認証値を用いて認証データ303を生成するタイミングとは、特に制限はなく、所定の制御コマンドの制御コマンドデータ301が送信されるまでに生成されるように、主制御部201の制御プログラム中に、第1認証値を生成する処理と、第1認証値を用いて認証データ303を生成する処理とを行うプログラムを組み込んでおけば良い。
以上、<i>において、主制御部201での第1認証値及び認証データ303に関する処理について説明したことは、中間部202での第2認証値及び中間処理情報304に関する処理にも同様に当てはまる。なお、第2認証値を生成する際、第1認証値の一部又は全部の情報が第2認証値に含まれるようにしても良い。このように構成すれば、制御信号の中から中間処理情報304が抽出された場合でも、第2認証値が解析されてしまう危険性を低減することができるので、複雑又は高度な認証方式を採用しなくても、中間部202と副制御部203との間において、高度のセキュリティレベルを維持することができる。
次に、中間部202が副制御部203に供給する制御信号のデータフォーマットの一例について、図10に示す模式図を参照して説明する。主制御部201から図9(1)に示す通常の制御信号300が供給された場合には、中間部202は、図10(1)に示すように、制御コマンドデータ301及び付随データ302が含まれる通常の制御信号320をそのまま副制御部203に供給する。一方、主制御部201から、例えば、図9(2)〜(4)に示す認証データ付制御信号310〜312等が供給された場合には、中間部202は、第2認証値の生成、認証データ303から得られた第1認証値と上記第2認証値の狭義の暗号化処理、狭義の再暗号化処理、中間演算等の中間処理を行って、中間処理情報304を生成し、例えば、図10(2)〜(4)に示す中間処理情報付制御信号321〜323等を生成し、副制御部203に供給する。
このように、中間処理情報304を制御信号に含めることによって、中間処理情報304単体で送信する場合と比較して、中間部202と副制御部203との間の通信負荷の増大を抑えることができる。また、中間処理情報304を制御信号に含めることによって、中間処理情報304を単体で送信する場合と比較して、通信データ中から中間処理情報304が抽出され、解析されてしまう危険性を低減することができる。また、認証処理は、所定の制御コマンドの制御コマンドデータを送信するときにのみ行われるため、主制御部201や副制御部203の処理負荷が認証処理によって増大する割合を抑えることができる。
また、中間部202において、主制御部201又は中間部202のいずれか一方又は両方を認証するための第2認証値に対して狭義の暗号化処理、狭義の再暗号化処理、中間演算、データ構造変換等を施すことにより中間処理情報304を得た後、この中間処理情報304を副制御部203に送信した場合には、何らの処理も施していない第2認証値をそのまま副制御部203に供給する場合と比較して、第2認証値を不正者により分析される可能性を低減することができる。
また、中間部202が所定の中間処理プログラムコードを用いて第2認証値を生成した場合には、中間部202が実行する中間処理プログラムの改ざんによる不正行為をより的確に検出することができ、その中間処理プログラムコードの正当性を認証することが可能になる。
さらに、第1及び第2認証値を用いて、主制御部201が正規の主制御部であるか否か及び中間部202が正規の中間部であるか否かの認証を副制御部203が行うので、上記した(1)〜(3)等の主制御部201に対する不正行為及び雑音等に起因するパチンコ遊技機1の誤動作の他、中間部202に対する上記した(1)〜(3)等と同様な不正行為及び雑音等に起因するパチンコ遊技機1の誤動作を防止することができ、セキュリティの向上を図ることができる。
また、所定の制御コマンドの制御コマンドデータ301にのみ中間処理情報304が付加されるので、副制御部203が実行するプログラムには所定の制御コマンドに関する認証処理を追加するだけで良い。したがって、副制御部203が実行するプログラム全体にわたる新たなタイミングの設計する必要がないので、すべての制御コマンドの制御コマンドデータ301に中間処理情報304が付加される場合と比較して、認証機能を追加するタイミングの設計、機能の実装、機能の検証など、より簡単に、少ない作業工数で実現することができる。
なお、この実施の形態では、2個の第1及び第2認証値を用いる例を示しているが、これに限定されない。認証値の個数は、主制御部201や中間部202が認証コードを作成するためのプログラム容量及びそのプログラムの処理速度などの処理能力、等を考慮して適切に設定する。例えば、主制御部201や中間部202の処理能力の余裕が低い場合には認証値の個数を2個又は3個程度に設定することが望ましいが、処理能力が高い場合には、認証値の個数を4個以上にしても良い。さらに、認証データ303や中間処理情報304を付加する所定の制御コマンドごとに、認証値の個数を変えても良い。このように、複数の認証値を用いて複数回の認証を行えば、例えば、主制御部201を構成するCPU201aの処理能力又は副制御部203を構成するCPU203aの処理能力が低く、高度の認証処理ができないため、処理負荷の軽い認証方式を採用せざるを得ない場合でも、複数回の認証を行うことにより、セキュリティの向上を図ることができる。
(D)次に、主制御部201と中間部202及び周辺部との間で行う制御信号の送受信処理について説明する。以下、主制御部201と中間部202との間の制御信号の送受信処理について、図11及び図12に示すフローチャートを参照して説明するが、主制御部201と賞球制御部204との間の制御信号の送受信処理も同様の手順で行われる。
図11は、主制御部201による制御信号の送信処理の一例を示すフローチャートである。まず、主制御部201は、現在、制御コマンドデータの送信タイミングであるか否かを判断する(図11のステップS61参照)。この判断結果が「NO」の場合には、主制御部201は、同判断を繰り返す。そして、制御コマンドデータの送信タイミングとなると、ステップS61の判断結果が「YES」となり、主制御部201は、ステップS62へ進む。
ステップS62では、主制御部201は、今回送信する制御コマンドが所定の制御コマンドか否かを判断する。ステップS62の判断結果が「YES」の場合、すなわち、今回送信する制御コマンドが所定の制御コマンドである場合には、主制御部201は、ステップS63へ進む。ステップS63では、主制御部201は、制御コマンドデータ301(所定の制御コマンドの制御コマンドデータ)及び付随データ302をRAM201cの所定の記憶領域にセットした後、ステップS64へ進む。
ステップS64では、主制御部201は、第1認証値を生成する処理を行い、この生成した第1認証値をRAM201cに記憶する処理を行った後、ステップS65へ進む。なお、ステップS64の処理の前に第1認証値が生成されてRAM201cに記憶されている場合には、第1認証値を生成する処理を行う必要はない。
ステップS65では、主制御部201は認証データ生成プログラムにより、上記したステップS64の処理で生成した第1認証値を用いた認証データ生成処理を行う。そして、ステップS64の処理で生成した第1認証値又は認証データ生成処理を行って得たデータを認証データ303としてRAM201cに記憶する処理を行う。この認証データ生成処理としては、以下に示す(1)〜(4)のいずれかの処理又はこれらの処理を組み合わせた処理を行う。
(1)第1認証値に対して狭義の暗号化処理を施す。ここで、暗号化方式としては、例えば、シーザー暗号、単一換字暗号、エニグマなど、比較的簡易なものを採用することができる。以下において用いる暗号化方式についても同様である。
(2)狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された第1認証値に対して所定の加工処理を行う。ここで、所定の加工処理としては、例えば、狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された第1認証値を用いた四則演算又は論理演算等を行って所定のデータ長を有する演算データを得る処理、これらの四則演算又は論理演算等により得られた演算データのビット配列を並び変える処理、上記演算データのビットをシフト又はロテイトする処理、若しくは、狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された第1認証値を構成する複数のビットを取り出して所定の規則に従って並べて1つのデータを生成する処理などが考えられる。
(3)上記(1)の狭義の暗号化処理が施された第1認証値に対して狭義の再暗号化処理を施す。
(4)上記(2)の所定の加工処理が施された第1認証値に対して狭義の暗号化処理を施す。
なお、異なる2種以上の認証値を生成して、これら生成した認証値を用いて認証データ303を生成する場合も、ステップS64及びステップS65の処理と同様な処理を行う。また、ステップS63の処理とステップS64の処理の順序を入れ替えても良い。
ステップS66では、主制御部201は、上記したステップS63及びステップS65のそれぞれの処理で生成した制御コマンドデータ301、付随データ302及び認証データ303を含む制御信号(認証データ付制御信号)を生成し、中間部202に送信した後、一連の処理を終了する。
一方、ステップS62の判断結果が「NO」の場合、すなわち、今回送信する制御コマンドが所定の制御コマンドでない場合には、主制御部201は、ステップS67へ進む。ステップS67では、主制御部201は、制御コマンドデータ301(所定の制御コマンド以外の制御コマンドの制御コマンドデータ)及び付随データ302をRAM201cの所定の記憶領域にセットした後、ステップS68へ進む。ステップS68では、主制御部201は、上記したステップS67の処理でセットした制御コマンドデータ301及び付随データ302を含む制御信号(通常の制御信号)を生成し、中間部202に送信した後、一連の処理を終了する。
このように、主制御部201は、中間部202に所定の制御コマンドの制御コマンドデータを送信する場合のみ、制御コマンドデータ301に認証データ303を付加する。認証処理が行われるのは所定の制御コマンドの制御コマンドデータの送信時のみであるので、主制御部201や副制御部203の処理負荷が認証処理によって増大する割合を抑えることができる。
次に、中間部202による制御信号の受送信処理について説明する。図12は、中間部202による制御信号の受送信処理の一例を示すフローチャートである。まず、中間部202は、主制御部201から送信された制御信号を受信したか否かを判断する(図12のステップS71参照)。この判断結果が「NO」の場合には、中間部202は、同判断を繰り返す。そして、主制御部201から送信された制御信号を受信すると、ステップS71の判断結果が「YES」となり、中間部202は、ステップS72へ進む。
ステップS72では、中間部202は、受信した制御信号に認証データ303が含まれているか否かを判断する。ステップS72の判断結果が「YES」の場合、すなわち、受信した制御信号に認証データ303が含まれている場合には、中間部202は、ステップS73へ進む。ここで、制御信号に認証データ303が含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ301又は付随データ302を構成する任意のビット又は別個に設けられている識別データ(図示略)が認証データ303が含まれていることを示しているか否かを判断することによって行う。なお、ステップS72の処理において、中間部202は、受信した制御信号に認証データ303が含まれているか否かを判断するのではなく、制御信号に含まれる制御コマンドデータ301が所定の制御コマンドの制御コマンドデータであるか否かを判断しても良い。
ステップS73では、中間部202は、制御信号から認証データ303を抽出し、中間処理を行った後、ステップS74へ進む。この中間処理としては、以下に示す(a)〜(k)の処理のうち、(d)の第2認証値生成処理と、(d)の第2認証値生成処理以外の処理のいずれか又はこれらの処理の組み合わせた処理を行う。
(a)認証データ303が主制御部201で狭義の暗号化処理又は狭義の再暗号化処理が施されているデータからなる場合には、復号化処理又は再復号化処理を施す。
(b)認証データ303が主制御部201で所定の加工処理が施されたデータからなる場合又は、認証データ303が主制御部201で所定の加工処理が施された後、狭義の暗号化処理又は狭義の再暗号化処理が施されたデータからなり、かつ、(a)の復号化処理又は再復号化処理が施された場合には、当該データから第1認証値を復元する。
(c)(b)の復元処理が施された第1認証値が主制御部201で狭義の暗号化処理が施されている場合には、復号化処理を施す。
(d)主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値を生成する。
(e)認証データ303が第1認証値からなる場合には当該第1認証値、認証データ303が主制御部201で狭義の暗号化処理又は狭義の再暗号化処理が施されたデータからなる場合には(a)の復号化処理又は再復号化処理が施された第1認証値、認証データ303が主制御部201で加工処理が施されたデータからなる場合には(b)の復元処理が施された第1認証値、認証データ303が主制御部201で加工処理及び狭義の暗号化処理が施されたデータからなる場合には(a)の復号化処理及び(b)の復元処理が施された第1認証値、認証データ303が主制御部201で狭義の暗号化処理、加工処理及び狭義の暗号化処理が施されたデータからなる場合には(a)の復号化処理、(b)の復元処理及び(c)の復号化処理が施された第1認証値に対して狭義の暗号化処理を施す。
(f)(d)の第2認証値生成処理で生成された第2認証値に対して狭義の暗号化処理を施す。
(g)狭義の暗号化処理が施された又は狭義の暗号化処理が施されていない第1認証値若しくは、狭義の暗号化処理が施された又は狭義の暗号化処理が施されていない第2認証値と、当該認証データ303とともに受信した制御コマンドデータ301又は付随データ302のいずれか一方又は両方、これらの制御コマンドデータ301又は付随データ302のいずれか一方又は両方を所定の変換式に基づいて変換した変換制御コマンドデータ、あるいは、乱数発生部により発生された乱数等の所定の数値などとについて、四則演算や論理演算等の中間演算を行う。
(h)第1認証値、第2認証値又は中間演算結果等のデータ構造等において、形式的な差異が発生している場合には、データ構造変換を行う。
(i)狭義の暗号化処理が施された第1認証値、狭義の暗号化処理が施された第2認証値、中間演算結果のいずれかに対して狭義の暗号化処理又は再暗号化処理を施す。
(j)第1認証値等、第2認証値等、中間処理結果等のうち、2つ以上のデータに対して、所定の加工処理を施す。
(k)加工処理データに対して狭義の暗号化処理を施す。
(l)制御コマンドデータ及び付随データに、主制御部201で[1]の生成処理が施されたままの第1認証値、中間部202で(d)の第2認証値生成処理が施されたままの第2認証値あるいは、以上説明した(a)〜(k)の処理又はこれらの処理の組み合わせた処理で得られたデータを含む中間処理情報を付加して中間処理情報付制御信号を生成する。中間処理情報としては、例えば、第1認証値等、第2認証値等、中間演算結果等、狭義の暗号化処理が施されていない又は狭義の暗号化処理が施された加工処理データの少なくとも1つを含む。
ステップS74では、中間部202は、制御信号に含まれている制御コマンドデータ301、付随データ302と、上記したステップS73の処理で得られた中間処理情報304とを含む制御信号(中間処理情報付制御信号)を生成し、副制御部203に送信した後、一連の処理を終了する。
一方、ステップS72の判断結果が「NO」の場合、すなわち、受信した制御信号に認証データ303が含まれていない場合、すなわち、通常の制御信号である場合には、中間部202は、ステップS75へ進む。ステップS75では、中間部202は、送信された通常の制御信号をそのまま副制御部203に送信した後、一連の処理を終了する。
このように、中間部202は、副制御部203に所定の制御コマンドの制御コマンドデータを送信する場合のみ、制御コマンドデータ301に中間処理情報304を付加する。主制御部210又は中間部202の認証処理が行われるのは所定の制御コマンドの制御コマンドデータの送信時のみであるので、副制御部203の処理負荷が認証処理によって増大する割合を抑えることができる。
次に、副制御部203による制御信号の受信処理について説明する。図13は、副制御部203による制御信号の受信処理の一例を示すフローチャートである。まず、副制御部203は、中間部202から送信された制御信号を受信したか否かを判断する(図13のステップS81参照)。この判断結果が「NO」の場合には、副制御部203は、同判断を繰り返す。そして、中間部202から送信された制御信号を受信すると、ステップS81の判断結果が「YES」となり、副制御部203は、ステップS82へ進む。
ステップS82では、副制御部203は、受信した制御信号に中間処理情報304が含まれているか否かを判断する。ステップS82の判断結果が「YES」の場合、すなわち、受信した制御信号に中間処理情報304が含まれている場合には、副制御部203は、ステップS83へ進む。ここで、制御信号に中間処理情報304が含まれているか否かの判断は、例えば、制御信号のデータ量が通常の制御信号よりも多いか否かや、制御信号において、制御コマンドデータ301又は付随データ302を構成する任意のビット又は別個に設けられている識別データ(図示略)が中間処理情報304が含まれていることを示しているか否かを判断するか、あるいは、制御信号に含まれる制御コマンドデータ301が認証処理を行うために予め設定した所定の制御コマンドの制御コマンドデータであるか否かを判断しても良い。
ステップS83では、副制御部203は、制御信号から中間処理情報304を抽出し、認証処理を行った後、ステップS84へ進む。この認証処理としては、例えば、以下に示す[1]〜[4]の処理又はこれらの処理の組み合わせた処理を行う。
[1]中間処理情報304を構成する、上記した、第1認証値等、第2認証値等、中間演算結果等、加工処理データのいずれかに対して狭義の暗号化処理又は狭義の再暗号化処理が施されている場合には、復号化処理又は再復号化処理を施す。
[2]狭義の暗号化処理が施されていない又は[1]の処理で復号化処理又は再復号化処理が施された中間演算結果等、狭義の暗号化処理が施されていない又は[1]の処理で復号化処理又は再復号化処理が施された加工処理データから、第1及び第2認証値を取り出す。
[3][2]の処理で取り出された第1認証値又は第2認証値に対して狭義の暗号化処理又は狭義の再暗号化処理が施されている場合には、復号化処理又は再復号化処理を施す。
[4]主制御部201で[1]の生成処理が施されたままの第1認証値、中間部202で[3](d)の第2認証値生成処理が施されたままの第2認証値あるいは、[1]〜[3]のいずれかの処理で得られた第1及び第2認証値を用いて、主制御部201が正規の主制御部であるか否か又は中間部202が正規の副制御部であるか否かのいずれか一方又は両方について、2回の認証を行う。
[4]における2回の認証処理は、例えば、以下に示す手法により行う。すなわち、例えば、主制御部201で[1]の生成処理が施されたままの第1認証値、中間部202で[3](d)の第2認証値生成処理が施されたままの第2認証値あるいは、[1]〜[3]のいずれかの処理で得られた第1及び第2認証値とそれぞれに対応する期待値とが一致するか否かを判断する。なお、副制御部203は、第1及び第2認証値とそれぞれに対応する期待値とが一致するか否かではなく、第1及び第2認証値とそれぞれに対応する期待値とが所定の関係にあるか否かを判断しても良い。所定の関係とは、例えば、第1及び第2認証値に所定の演算を行って得た値が第1及び第2認証値とそれぞれに対応する期待値と一致する、などの関係をいう。
副制御部203が照合に用いる期待値は、例えば、製造時など、予め副制御部203を構成するROM203bの所定の記憶領域に記憶させておく。なお、副制御部203が照合に用いる期待値を、他の構成部から副制御部203に送信することとしても良い。他の構成部としては、例えば、賞球制御部204や第1及び第2認証値のそれぞれに対応する期待値を生成するための専用の処理部(以下、「期待値算出部」という。)などがある。期待値算出部は、予め記憶されている各期待値を副制御部203に送信しても良いし、照合処理ごとに各期待値を生成しても良い。また、外部接続用インターフェイス(図示略)を介して、外部の機器から副制御部203や期待値算出部に各期待値を算出するために必要な係数などを送信しても良い。このように、副制御部203を構成するROM203bの所定の記憶領域に、予め第1及び第2認証値のそれぞれに対応する期待値を記憶させずに、他の構成部から取得することとすれば、第1及び第2認証値とを事後的に変更することが可能となる。
ステップS84では、副制御部203は、ステップS83の処理で得られた第1及び第2認証結果がいずれも認証に成功したことを示しているか否かを判断する。ステップS84の判断結果が「YES」の場合、すなわち、ステップS83の処理で得られた第1及び第2認証結果がいずれも認証に成功したことを示している場合には、副制御部203は、ステップS85へ進む。また、ステップS82の判断結果が「NO」の場合、すなわち、受信した制御信号に中間処理情報304が含まれていない場合、つまり、通常の制御信号である場合にも、副制御部203は、ステップS85へ進む。
ステップS85では、副制御部203は、制御コマンドデータ301及び付随データ302に基づく処理を行った後、一連の処理を終了する。一方、ステップS84の判断結果が「NO」の場合、すなわち、ステップS83の処理で得られた第1認証結果又は第2認証結果のいずれかが認証に成功したことを示していない場合には、副制御部203は、ステップS86へ進む。ステップS86では、副制御部203は、制御コマンドデータ301及び付随データ302を破棄するとともに、不正行為を報知するための報知信号を図柄表示部104やランプ制御部205、あるいはパチンコ遊技機1を管理するセンター制御装置などに送信した後、一連の処理を終了する。なお、ステップS86の処理では、副制御部203は、データの破棄と報知のいずれか一方のみを行うこととしても良い。
図柄表示部104やランプ制御部205等は、供給された報知信号に基づいて、主制御部201又は中間部202に不正が行われた可能性がある旨を報知する演出を実行する。この演出は、例えば、図柄表示部104に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させるなどである。また、図柄表示部104の輝度を変えたり、色を変えたり、ランプ制御部205に対して所定のランプを表示制御するようにしても良い。いずれにせよ、遊技店の従業員が当該パチンコ遊技機1の前を通過した際に、従業員がその状態に気がつくようにしてあれば良い。また、この演出は、顧客がその状態に気がつかないような演出でも良く、また、顧客が容易に気がつく演出であっても良い。顧客が容易に気がつく演出にすれば、不正行為を効率的に抑止することができる。
また、報知信号に「大当たり中」や「確率変動中」などのパチンコ遊技機1の遊技状態に関する情報を含めても良い。これらの遊技状態に関する情報に基づいて、パチンコ遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行っても良い。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのが良い。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしても良い。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
次に、主制御部201、中間部202及び副制御部203がそれぞれ実行する処理の相互関係の一例について、図14及び図15に示す処理シーケンスを参照して説明する。制御コマンドデータ301が所定の制御コマンド以外の制御コマンドの制御コマンドデータである場合、主制御部201は、制御コマンドデータ301及び付随データ302をRAM201cの所定の記憶領域にセット(図14のステップS91参照)した後、ステップS92へ進む。ステップS92では、主制御部201は、制御コマンドデータ301及び付随データ302を含む通常の制御信号を生成し、中間部202に送信する。
中間部202は、ステップS92の処理で送信された通常の制御信号を受信した後(ステップS93参照)、ステップS94へ進む。ステップS94では、中間部202は、送信された通常の制御信号をそのまま副制御部203に送信する。副制御部203は、ステップS94の処理で送信された通常の制御信号を受信した後(ステップS95参照)、ステップS96へ進む。ステップS96では、副制御部203は、通常の制御信号に含まれている制御コマンドデータ301及び付随データ302に基づく処理を行う。このように、制御コマンドデータ301が所定の制御コマンド以外の制御コマンドの制御コマンドデータである場合には、中間部202は、中間処理を行うことなく、受信した制御コマンドデータ301及び付随データ302を含み、認証データ303を含まない通常の制御信号をそのまま副制御部203に送信し、副制御部203は、受信した通常の制御信号に含まれている制御コマンドデータ301及び付随データ302に基づく処理を行う。
一方、制御コマンドデータ301が所定の制御コマンドの制御コマンドデータである場合、主制御部201は、制御コマンドデータ301及び付随データ302をRAM201cの所定の記憶領域にセットした(図15のステップS101参照)後、ステップS102へ進む。ステップS102では、主制御部201は、第1認証値を生成する処理を行って、この生成した第1認証値をRAM201cに記憶する処理を行った後、ステップS103へ進む。なお、ステップS102の処理の前に第1認証値が生成されてRAM201cに記憶されている場合には、第1認証値を生成する処理を行う必要はない。
ステップS103では、主制御部201は、認証データ生成処理プログラムにより、上記ステップS102の処理で生成した第1認証値を用いた認証データ生成処理を行う。そして、この認証データ生成処理を行って得たデータを認証データ303としてRAM201cに記憶する処理を行った後、ステップS104へ進む。なお、この認証データ生成処理を行う方法は、前記した通りであるのでその説明は省略する。
ステップS104では、主制御部201は、制御コマンドデータ301、付随データ302及び認証データ303を含む認証データ付制御信号を生成し、中間部202に送信する。
一方、中間部202は、ステップS104の処理で送信された認証データ付制御信号を受信した(ステップS105参照)後、ステップS106へ進む。ステップS106では、中間部202は、主制御部201が正規の主制御部であるとの認証又は、中間部202が正規の中間部であるとの認証のいずれか一方又は両方を行うための第2認証値を生成するとともに、この第2認証値と、認証データ付制御信号に含まれる認証データ303から得られた第1認証値とに対して前記した中間処理を行った後、ステップS107へ進む。
ステップS107では、中間部202は、認証データ付制御信号に含まれている制御コマンドデータ301、付随データ302と、上記ステップS106の処理で得られた中間処理情報304とを含む中間処理情報付制御信号を生成し、副制御部203に送信する。
これにより、副制御部203は、ステップS107の処理で送信された中間処理情報付制御信号を受信した(ステップS108参照)後、ステップS109へ進む。ステップS109では、副制御部203は、制御信号から中間処理情報304を抽出し、中間処理情報304から第1及び第2認証値を取り出し、第1及び第2認証値を用いて2回の認証処理を行い、その結果(第1及び第2認証結果)を得た後、ステップS110へ進む。
ステップS110では、副制御部203は、ステップS109の処理で得られた第1及び第2認証結果がいずれも認証に成功したことを示しているか否かを判断する。ステップS110の判断結果が「YES」の場合、すなわち、ステップS109の処理で得られた第1及び第2認証結果がいずれも認証に成功したことを示している場合には、副制御部203は、ステップS111へ進む。ステップS111では、副制御部203は、制御コマンドデータ301及び付随データ302に基づく処理を行う。
一方、ステップS110の判断結果が「NO」の場合、すなわち、ステップS109の処理で得られた第1認証結果又は第2認証結果のいずれかが認証に成功したことを示していない場合、すなわち、認証不成功の場合には、副制御部203は、ステップS112へ進む。ステップS112では、副制御部203は、制御コマンドデータ301及び付随データ302を破棄するとともに、不正行為を報知するための報知信号を図柄表示部104やランプ制御部205に送信する。
なお、中間部202は、認証データ303から得られた第1認証値と、内部で生成した第2認証値とに対する中間処理は、認証データ303を受信する度に行うのではなく、複数の認証データ303を受信した時点で行うこととしても良い。この場合、中間部202は、例えば、所定の制御コマンドの制御コマンドデータ301、付随データ302及び認証データ303を含む認証データ付制御信号を1回目に受信した場合、中間処理を行わずに、そのまま副制御部203に送信する。そして、中間部202は、所定の制御コマンドの制御コマンドデータ301、付随データ302及び認証データ303を含む認証データ付制御信号を2回目に受信した場合、1回目に受信した認証データ303に対する中間処理を行う。このとき、中間部202は、1回目に受信した認証データ303と2回目に受信した認証データ303の両方から得られた2個の第1認証値と、内部で生成した第2認証値とに対する中間処理を行っても良い。このように、複数の認証データ303を受信した時点で中間処理を行えば、エラーによって制御信号に余分なデータが付加されてしまった場合などに、誤って中間処理を行ってしまう危険性を低減させることができる。副制御部203における認証処理についても同様である。
以上説明したように、本実施の形態に係るパチンコ遊技機1では、主制御部201が所定の制御コマンドの制御コマンドデータを送信する際、主制御部201の正当性を認証するための第1認証値を生成するとともに、必要に応じて、第1認証値に対して狭義の暗号化処理、狭義の再暗号化処理、所定の加工処理等を行って所定のデータ長を有する認証データ303を生成した後に中間部202に送信している。また、主制御部201が所定の制御コマンドの制御コマンドデータを送信する際、中間部202は、必要に応じて、認証データ303に対して復号化処理又は再復号化処理、第1認証値の復元処理を施している。同時に、中間部202は、主制御部201又は中間部202の正当性を認証するための第2認証値を生成するとともに、必要に応じて、認証データ303に関する復号化処理又は再復号化処理、第1認証値の復元処理又は復号化処理、第1認証値又は第2認証値の狭義の暗号化処理、狭義の再暗号化処理、中間演算、データ構造変換、狭義の暗号化処理、狭義の再暗号化処理、所定の加工処理等を行って所定のデータ長を有する中間処理情報304を生成した後に副制御部203に送信している。さらに、副制御部203において、送信された中間処理情報304を構成する第1認証値等、第2認証値等、中間演算結果等、加工処理データの復号化処理又は再復号化処理や第1及び第2認証値の復元処理等を行った後、上記第1及び第2認証値を用いて2回の認証処理を行っている。このため、以下に示す不正行為を検知することができる。また、今回送信する制御コマンドデータ301や付随データ302を含めて認証データ303及び中間処理情報304を生成することとすれば、不正な主制御部による認証データ303の再利用及び不正な中間部による中間処理情報304の再利用を防止して、より確実にパチンコ遊技機1への不正行為を検知することができる。
(1)正規な主制御基板と不正な主制御基板との交換
(2)主制御基板に搭載されたCPUが実行する正規なプログラムが記憶されたROMと上記プログラムを改ざんした不正なプログラムが記憶されたROMとの交換
(3)主制御基板と周辺基板との間に不正な基板(なりすまし基板)を設けた上での上記(2)のROM交換
また、上記した不正行為に限らず、電気的な雑音や機械的な振動等に起因して、制御コマンドデータにビットエラーが発生し、制御コマンドデータが変更された場合、認証は成功しないため、上記した雑音等に起因して変更された制御コマンドデータに対応した制御コマンドの実行を防止することもできる。
また、本実施の形態に係るパチンコ遊技機1では、主制御部201が副制御部203に所定の制御コマンドの制御コマンドデータを送信する場合に、中間部202において認証データ303に関する復号化処理又は再復号化処理、認証データ303からの第1認証値の復元処理、復号化処理、再復号化処理、第2認証値の生成、第1認証値又は第2認証値と制御コマンドデータ等との中間演算、第1認証値又は第2認証値等のデータ構造変換、第1認証値又は第2認証値等の加工処理などを含む中間処理を行うとともに、副制御部203において、主制御部201又は中間部202のいずれか一方又は両方の正当性を認証する2回の認証処理を行う。したがって、例えば、大当たり状態中のタイミング設計のみを変更することによって、既存のパチンコ遊技機1に認証処理を実行させることができる。また、認証処理を行うことによって主制御部201や副制御部203の処理負荷が増大するのは、例えば、大当たりコマンドデータが送信されている期間(大当たり状態である期間)のみであり、主制御部201や副制御部203の処理負荷が増大する割合を抑えることができる。
また、本実施の形態に係るパチンコ遊技機1では、主制御部201から送信される制御信号に含まれる制御コマンドデータが所定の制御コマンドの制御コマンドデータである場合、制御コマンドデータ301及び付随データ302に認証データ303を付加するので、認証データ303単体で送信する場合と比較して、主制御部201と副制御部203との間の通信負荷の増大を抑えることができる。また、認証データ303を制御信号に含めることによって、認証データ303を単体で送信する場合と比較して、通信データ中から認証データ303が抽出され、解析されてしまう危険性を低減することができる。
また、本実施の形態に係るパチンコ遊技機1では、主制御部201において、主制御部201を認証するための第1認証値に対して狭義の暗号化処理、狭義の再暗号化処理、所定の加工処理等を施すことにより認証データ303を得た後、この認証データ303を中間部202に供給した場合には、何らの処理も施していない第1認証値をそのまま中間部202に供給する場合と比較して、第1認証値を不正者により分析される可能性を低減することができる。また、主制御部201が所定の主制御プログラムコードを用いて第1認証値を生成した場合には、主制御部201が実行する主制御プログラムの改ざんによる不正行為をより的確に検出することができ、その主制御プログラムコードの正当性を認証することが可能になる。
さらに、本実施の形態に係るパチンコ遊技機1では、第1及び第2認証値を用いて、主制御部201が正規の主制御部であるか否か及び中間部202が正規の中間部であるか否かの認証を副制御部203が行うので、上記した(1)〜(3)等の主制御部201に対する不正行為及び雑音等に起因するパチンコ遊技機1の誤動作の他、中間部202に対する上記した(1)〜(3)等と同様な不正行為及び雑音等に起因するパチンコ遊技機1の誤動作を防止することができ、セキュリティの向上を図ることができる。
また、所定の制御コマンドの制御コマンドデータ301にのみ認証データ303が付加されるので、副制御部203が実行するプログラムには予め設定した所定の制御コマンドに関する処理に認証処理を追加するだけで良い。したがって、副制御部203が実行するプログラム全体にわたる新たなタイミングの設計する必要がないので、すべての制御コマンドの制御コマンドデータ301に認証データ303が付加される場合と比較して、認証機能を追加するタイミングの設計、機能の実装、機能の検証など、より簡単に、少ない作業工数で実現することができる。
また、本実施の形態に係るパチンコ遊技機1では、認証データ303から得られた第1認証値と、内部で生成した第2認証値とに対する中間処理を中間部202が実行するので、副制御部203が実行する、認証用のプログラム及び演出用のプログラムの構成が比較的簡単となるため、他の機能との整合性を保つことが容易となる。また、パチンコ遊技機1の機種ごとに副制御部203が実行する演出処理が異なる場合であっても、副制御部203が実行する認証処理は共通化が可能であるため、パチンコ遊技機1の機種ごとのパチンコ遊技機1全体のプログラム設計が容易であり、設計時間の短縮化を図ることができるとともに、作業効率が向上する。
さらに、本実施の形態によれば、主制御部201と副制御部203との間に中間部202を設けているので、主制御部201を構成するCPU201aと副制御部203を構成するCPU203aとの間で処理能力に差異があったり、主制御部201を構成するROM201bと副制御部203を構成するROM203bとの間で記憶容量に差異があったりしたとしても、主制御部201と副制御部203との間のセキュリティレベルを維持しつつ、主制御部201と副制御部203との間における上記した差異を中間部202において吸収することができる。
例えば、主制御部201を構成するCPU201aの処理能力や主制御部201を構成するROM201bの記憶容量が副制御部203を構成するCPU203aの処理能力や副制御部203を構成するROM203bの記憶容量と比較して余裕がある場合、主制御部201は第1認証値に対して複雑又は高度な暗号化演算を行って得られた認証データ303を中間部202に供給し、中間部202は受信した上記認証データ303から得られた第1認証値と、内部で生成した第2認証値とに対して比較的簡易又は低度な暗号化演算を行って得られた中間処理情報304を副制御部203に供給する。そして、副制御部203で中間処理情報304から得られた第1及び第2認証値を用いて主制御部201又は中間部202のいずれか一方又は両方について認証する。このように構成することにより、複雑又は高度な認証方式を採用しなくても、比較的簡易な認証方式を採用した認証処理を複数回行えば、主制御部201と中間部202との間及び中間部202と副制御部203との間において、高度のセキュリティレベルを維持することができる。
また、副制御部203を構成するCPU203aの処理能力や副制御部203を構成するROM203bの記憶容量が主制御部201を構成するCPU201aの処理能力や主制御部201を構成するROM201bの記憶容量と比較して余裕がある場合、主制御部201は第1認証値を認証データ303としてそのままあるいは比較的簡易又は低度な暗号化演算を行って得られた認証データ303を中間部202に供給し、中間部202は受信した上記認証データ303から得られた第1認証値と、内部で生成した、主制御部201又は中間部202のいずれか一方又は両方を認証するための第2認証値に対して複雑又は高度な再暗号化演算を行ったり、上記認証データ303から得られた第1認証値を復号化処理等を施した後に上記第2認証値とともにより複雑又は高度な再暗号化演算を行ったりする中間演算を行って得られた中間処理情報304を副制御部203に供給する。そして、副制御部203で中間処理情報304から得られた第1及び第2認証値を用いて主制御部201又は中間部202のいずれか一方又は両方について認証する。このように構成することにより、複雑又は高度な認証方式を採用しなくても、比較的簡易な認証方式を採用した認証処理を複数回行えば、主制御部201と中間部202との間及び中間部202と副制御部203との間において、可能な限りセキュリティレベルを維持することができる。
このようなことは、主制御部201及び副制御部203をそれぞれ構成するCPU201a及び203aの処理能力やROM201b及び203bの記憶容量における余裕に差異がある場合だけでなく、このような差異はないが、主制御部201を構成するCPU201a又は副制御部203を構成するCPU203aがそれぞれ実行するプログラムの一方の全部又は一部が変更された場合(バージョンアップなど)や、第1認証値、第2認証値又は中間演算結果等のデータ構造等において、主制御部201と副制御部203との間で形式的な差異が発生した場合についても同様に当てはまる。
以上、本発明の実施の形態について図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計の変更等があっても本発明に含まれる。
例えば、上述の実施の形態では、中間部202は、図10(2)〜(4)に示すデータフォーマットを有する中間処理情報付制御信号を副制御部203に供給する例を示したが、これに限定されない。中間処理情報付制御信号のデータフォーマットは、例えば、図16(1)〜(3)に示すものでも良い。すなわち、第1認証値と第2認証値とは、所定の加工処理を施して1つの加工処理データを生成することなく、別個に制御コマンドデータ301に付加して副制御部203に供給する。ただし、第1及び第2認証値に対して、個別に、狭義の暗号化処理、狭義の再暗号化処理又は中間演算等を施しても良い。
また、上述の実施の形態では、主制御部201と副制御部203との間に中間部202を設ける例を示したが、これに限定されず、主制御部201と賞球制御部204との間に中間部を設けても良い。この場合、賞球制御部204は報知手段を備えていないが、主制御部201と賞球制御部204との間は双方向通信が可能であるので、認証が不成功となった場合には、賞球制御部204から主制御部201に対して、制御コマンドデータ及び付随データとともに認証が不成功となった旨のデータを送信するように構成しても良い。そして、主制御部201は、上記不成功となった旨のデータを中間部202を介して副制御部203に送信し、副制御部203において、上記不成功となった旨のデータに基づいて、不正行為が行われたことを報知させる。
また、上述の実施の形態では、副制御部203が主制御部201又は中間部202のいずれか一方又は両方を2回に認証する例を示したが、これに限定されず、副制御部203が主制御部201又は中間部202のいずれか一方又は両方を3回以上認証するように構成しても良い。
また、上述の実施の形態では、中間部202が第1認証値等、第2認証値等を含む中間処理情報304を制御コマンドデータ301及び付随データ302に付加して生成した中間処理情報付制御信号を副制御部203に送信する例を示したが、これに限定されない。例えば、中間部202は、少なくとも第1及び第2認証値等を含む中間処理情報304を2回に分けて副制御部203に送信しても良い。このように構成すれば、上記した実施の形態と比較して、不正行為者にすべてのデータを把握されることを抑止することができる。さらに、上記した実施の形態と比較して、第1認証値等及び第2認証値等の送信方法及び認証機能を追加するタイミングの設計・機能の実装・機能の検証など、より簡単に、少ない作業工数で実現することができる。
また、上述の実施の形態では、本発明をパチンコ遊技機1に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、上述の実施の形態と同様に構成することにより、上述の実施の形態と同様の効果を得ることができる。