(57)【要約】【課題】パチンコやパチスロといった遊技機において従来の不正防止対策だけでは防ぎきれなかった不正行為に対して効果的に対処しうる不正防止対策を提供する。【解決手段】メイン基板５には、メインＣＰＵ１０及びメインＣＰＵ１０用の認証チップ１２が搭載されており、サブ基板７には、サブＣＰＵ１４及びサブＣＰＵ１４用の認証チップ１６が搭載されている。認証チップ１２は、容易に取り外すことができないよう、実装後に証紙カバー３２よって覆われる。遊技機の動作を不正に改変しようとする不正遊技者が認証チップを取り外すために証紙カバー３２を取り外そうとすると、認証チップ１２の配線が容易に切断され、認証チップ１２はメインＣＰＵ１０との間で認証処理の実行ができなくなり、これを検出したメインＣＰＵ１０はその動作を停止する。【選択図】図２
2007089942.tif 000002
【特許請求の範囲】
【請求項１】
遊技機の動作を制御する制御用プログラムが格納されたプログラム記憶回路を有し、当該制御用プログラムに基づいて遊技機の動作を制御する集積回路化された遊技機用制御装置において、
チップを認識するために付与されるチップ認識番号であって、自己に付与されたものを格納するチップ認識番号格納回路と、
通信により他のチップから送られてきた他のチップのチップ認識番号を格納する他チップ認識番号格納回路とを少なくとも備え、
別体として集積回路化された認証チップとの間で通信によりそれぞれのチップ認識番号を交換する初期化処理を任意の時点に実行するとともに、ゲーム動作の実行中に前記認証チップとの間で通信により認証処理を周期的に実行し、当該初期化処理又は認証処理が適正に行えないときは動作を停止し又はその旨の信号を出力するようにしたことを特徴とする遊技機用制御装置。
【請求項２】
前記チップ認識番号は、チップを個別に識別できるＩＤ番号であって、前記チップ認識番号格納回路は、自己に付与されたＩＤ番号を格納するＩＤ番号格納回路であることを特徴とする請求項１に記載の遊技機用制御装置。
【請求項３】
前記初期化処理を電源投入後ゲームの動作の実行前に毎回実行することを特徴とする請求項１又は２に記載の遊技機用制御装置。
【請求項４】
さらに、別体として集積回路化された他の遊技機用制御装置との間でも、前記初期化処理及び認証処理を実行し、当該初期化処理又は認証処理が適正に行えないときは動作を停止し又はその旨の信号を出力するようにしたことを特徴とする請求項１乃至３のうちいずれか一項に記載の遊技機用制御装置。
【請求項５】
前記認証手段との間の通信及び前記他の遊技機用制御装置との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものである、請求項１乃至４のうちいずれか一項に記載の遊技機用制御装置。
【請求項６】
内部に乱数発生回路が設けられ、前記認証処理の際に当該乱数発生回路により生成された乱数を含めて暗号化してデータの送受信を行うものである、請求項５に記載の遊技機用制御装置。
【請求項７】
電源投入時に、セキュリティチェック動作を実行するセキュリティチェック機能を有する、請求項１乃至６のうちいずれか一項に記載の遊技機用制御装置。
【請求項８】
請求項１乃至７のうちいずれか一項に記載の遊技機用制御装置との間で認証処理を実行する、前記遊技機用制御装置とは別体として集積回路化された認証チップであって、
それぞれのチップに付与されたチップ認識番号であって、自己に付与されたものを格納するチップ認識番号格納回路と、
通信により他のチップから送られてきた他のチップのチップ認識番号を格納する他チップ認識番号格納回路とを少なくとも備え、
耐タンパ性を有することを特徴とする遊技機用認証チップ。
【請求項９】
前記チップ認識番号は、チップを個別に識別できるＩＤ番号であって、前記チップ認識番号格納回路は、自己に付されたＩＤ番号を格納するＩＤ番号格納回路であることを特徴とする請求項８に記載の遊技機用認証チップ。
【請求項１０】
前記遊技機用制御装置との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものである、請求項８又は９に記載の遊技機用認証チップ。
【請求項１１】
内部に乱数発生回路が設けられ、前記認証処理の際に当該乱数発生回路により生成された乱数を含めて暗号化してデータの送受信を行うものである、請求項１０に記載の遊技機用認証チップ。
【請求項１２】
プログラムに基づいて遊技機の動作を制御する制御装置が搭載された基板を備える遊技機において、
前記制御基板が搭載された基板と同一の基板に前記制御装置とは別体として実装され、遊技機の動作中に前記制御装置との間で通信により周期的に認証処理を実行する認証手段であって、耐タンパ性を有する認証手段を設け、
前記認証処理が適正に行えない場合には、前記制御装置はその動作を停止し又はその旨の信号を出力するようにしたことを特徴する遊技機。
【請求項１３】
前記制御基板と前記認証手段との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものである、請求項１２に記載の遊技機。
【請求項１４】
前記制御装置及び認証手段には乱数発生回路が設けられ、前記認証処理の際にそれぞれの乱数発生回路により生成された乱数を含めて暗号化するものとする、請求項１３に記載の遊技機。
【請求項１５】
前記制御装置は、電源投入時におけるセキュリティチェック機能を有するものである、請求項１２乃至１４のうちいずれか一項に記載の遊技機。
【請求項１６】
プログラムに基づいて遊技機の動作を制御する制御装置が搭載された基板を複数備える遊技機において、
異なる基板に搭載された前記制御装置同士は通信可能とされており、
前記制御装置が搭載された基板と同一の基板に、前記制御装置とは別体として実装され、遊技機の動作中に前記制御装置との間で通信により周期的に認証処理を実行する認証手段であって、耐タンパ性を有する認証手段を設け、
前記各制御装置及び前記各認証手段には、任意に付与され必要に応じて読み出すことのできるチップ認識番号が付与してあり、
任意の時点で、少なくとも直接通信できるチップ同士の間で互いのチップ認識番号を交換し合う初期化処理を行うようにされ、
前記初期化処理又は認証処理が適正に行えない場合には、前記制御装置がその動作を停止し又はその旨の信号を出力するようにしたことを特徴する遊技機。
【請求項１７】
前記チップ認識番号は、チップを個別に識別できるＩＤ番号であることを特徴とする請求項１６に記載の遊技機。
【請求項１８】
前記初期化処理を電源投入後ゲームの動作の実行前に毎回実行することを特徴とする請求項１６又は１７に記載の遊技機。
【請求項１９】
前記制御装置同士の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものである、請求項１６乃至１８のいずれか一項に記載の遊技機。
【請求項２０】
前記制御装置と前記認証手段との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものである、請求項１６乃至１９のうちいずれか一項に記載の遊技機。
【請求項２１】
前記制御装置及び認証手段には乱数発生回路が設けられ、前記認証処理の際にそれぞれの乱数発生回路により生成された乱数を含めて暗号化するものとする、請求項１９又は２０に記載の遊技機。
【請求項２２】
前記制御装置は、電源投入時におけるセキュリティチェック機能を有するものである、請求項１６乃至２１のうちいずれか一項に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ等が搭載されている遊技機の動作を制御する遊技機用制御基板、特に、偽造基板との不正な取り替えを有効に防止しうる遊技機用制御基板及びこれを備えた遊技機に関する。
【背景技術】
【０００２】
遊技場（遊技ホール）に設置されるパチンコやパチスロ等の遊技機には、遊技動作を制御する制御プログラムや制御データの不正な改竄を防止するために、従来から、セキュリティチェック機能を有するセキュリティチップが搭載されている。セキュリティチェック機能とは、遊技機のゲーム動作を制御する制御装置（通常はＣＰＵ。以下、ＣＰＵという。）において実行されるゲームのための制御プログラムや制御データを変数としてハッシュ演算を行って得られたセキュリティコードを予め記憶手段に格納しておき、遊技機の電源が投入されるたびに毎回、当該制御プログラム／制御データ変数とした同様のハッシュ演算を行い、得られた結果を予め格納されているセキュリティコードと照合し、両者が不一致と判定された場合にはＣＰＵの動作を停止するように制御する機能である。このセキュリティチェック機能によって、制御プログラムや制御データが不正遊技者に有利となるように書き換えられた偽造ＲＯＭが遊技機用制御基板に仕込まれるといった不正行為を、かなりの程度まで抑止することができる。このようなセキュリティチップについては、例えば、本願出願人が出願人となっている特開平１０−４００９９号公報（特願平８−１９８１８３）に記載されている。
【０００３】
【特許文献１】特開平１０−４００９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、正規の基板上で、セキュリティチェック機能（セキュリティコードと一致しない場合には停止する）を有するＣＰＵが偽造チップと差し替えられる不正が行われた場合には、チェック機能はもちろんＣＰＵを停止するという機能が働かず、偽造チップはそのまま動作を継続する。このため、遊技機の外部から照合機を接続してＣＰＵを個別にチェックするまではこのような不正を検知することが難しい。
【０００５】
あるいはまた、ＣＰＵと同じ基板に搭載されているＩ／Ｏチップとほぼ同じ外観のＩ／Ｏチップを偽造し、この中に偽のＣＰＵと改竄したプログラムを仕込み、これを同じく外観上本来の基板とほとんど区別のつかない偽造基板に搭載し、ここに、何らかの方法で入手した本物のＣＰＵを実装する。こうして得られた偽造基板を、遊技ホールに設置されている遊技機、あるいはこれから設置される予定の遊技機の正規の基板と入れ替える。入れ替えられた基板上の偽造ＣＰＵ及び改竄プログラムは、遊技機の電源が投入された時点では動作せずに元々のＣＰＵにセキュリティチェック処理を行わせ、遊技機の本来の動作については仕込んである偽造ＣＰＵ及び改竄プログラムに処理を行わせる、といった不正が報告されている。
【０００６】
このような不正行為を放置しておくと、特定の遊技場や遊技機メーカが損害を被ることにとどまらず、遊技機業界及び遊技場業界が公正なルールの下で運営されているという前提が崩れ、善意の遊技者の業界に対する信頼が揺らぎ、業界全体に大きな不利益が及ぶ。このため、このような従来の不正行為対策だけでは対処しきれない新たな不正行為に対して有効に対処しうる方策が求められている。
【０００７】
本発明がなされた目的は、このようにパチンコやパチスロといった遊技機において従来の不正防止対策だけでは防ぎきれなかった不正行為に対して効果的に対処しうる不正防止対策を見いだすことにあった。
【課題を解決するための手段】
【０００８】
そこで、上記の課題を解決するために、遊技機の動作を制御する制御用プログラムが格納されたプログラム記憶回路を有し、当該制御用プログラムに基づいて遊技機の動作を制御する集積回路化された遊技機用制御装置（例えば後述のメインＣＰＵ又はサブＣＰＵ）において、チップを認識するために付与されるチップ認識番号であって、自己に付与されたものを格納するチップ認識番号格納回路と、通信により他のチップから送られてきた他のチップのチップ認識番号を格納する他チップ認識番号格納回路とを少なくとも設け、別体として集積回路化された認証チップとの間で通信によりそれぞれのチップ認識番号を交換する初期化処理を任意の時点に実行するとともに、ゲーム動作の実行中に前記認証チップとの間で通信により認証処理を周期的に実行し、当該初期化処理又は認証処理が適正に行えないときは動作を停止し又はその旨の信号を出力するようにした。
【０００９】
前記チップ認識番号はチップを個別に識別できるＩＤ番号とすることができ、その場合は、前記チップ認識番号格納回路は、自己に付与されたＩＤ番号を格納するＩＤ番号格納回路とすることができる。前記初期化処理は、電源投入後ゲームの動作の実行前に毎回実行することができる。
【００１０】
さらに、別体として集積回路化された他の遊技機用制御装置との間でも、初期化処理及び認証処理を実行し、当該初期化処理又は認証処理が適正に行えないときは動作を停止し又はその旨の信号を出力するようにすると、より望ましい。認証手段との間の通信及び他の遊技機用制御装置との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものとすることができる。また、遊技機用制御装置内に乱数発生回路を設け、認証処理の際に当該乱数発生回路により生成された乱数を含めて暗号化してデータの送受信を行うようにすると、より好ましい。さらに、遊技機用制御装置は、電源投入時にセキュリティチェック動作を実行するセキュリティチェック機能を有するものとすれば、不正行為を抑止する効果がより高まる。
【００１１】
さらに、上記の遊技機用制御装置との間で認証処理を実行する遊技機用認証チップは、遊技機用制御装置とは別体として集積回路化されたものであり、それぞれのチップに付与されたチップ認識番号であって自己に付与されたものを格納するチップ認識番号格納回路と、通信により他のチップから送られてきた他のチップのチップ認識番号を格納する他チップ認識番号格納回路とが少なくとも設けられ、耐タンパ性を持たせる。遊技機用認証チップのチップ認識番号も、チップを個別に識別できるＩＤ番号とすることができ、その場合はチップ認識番号格納回路を自己に付されたＩＤ番号を格納するＩＤ番号格納回路とすることができる。遊技機用認証チップと遊技機用制御装置との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行うことが望ましい。また、遊技機用認証チップの内部に乱数発生回路を設け、前記認証処理の際に当該乱数発生回路により生成された乱数を含めて暗号化してデータの送受信を行うことが望ましい。
【００１２】
本発明に係る遊技機は、プログラムに基づいて遊技機の動作を制御する制御装置が搭載された基板を備えるものであって、前記制御基板が搭載された基板と同一の基板に前記制御装置とは別体として実装され、遊技機の動作中に前記制御装置との間で通信により周期的に認証処理を実行する認証手段であって耐タンパ性を有する認証手段を設け、認証処理が適正に行えない場合には、前記制御装置はその動作を停止し又はその旨の信号を出力するようにする。制御基板と前記認証手段との間の通信は、暗号鍵を用いた暗号化されたデータの送受信により行われるものとすることができる。
【００１３】
前記制御装置及び認証手段に乱数発生回路を設け、認証処理の際にそれぞれの乱数発生回路により生成された乱数を含めて暗号化することができる。また、制御装置は、電源投入時におけるセキュリティチェック機能を有するものとすることができる。
【００１４】
本発明に係る他の遊技機は、プログラムに基づいて遊技機の動作を制御する制御装置が搭載された基板を複数備えるものであって、異なる基板に搭載された前記制御装置同士は通信可能とされており、前記制御装置が搭載された基板と同一の基板に、前記制御装置とは別体として実装され、遊技機の動作中に前記制御装置との間で通信により周期的に認証処理を実行する認証手段であって耐タンパ性を有する認証手段を設け、各制御装置及び各認証手段には、任意に付与され必要に応じて読み出すことのできるチップ認識番号が付与してあり、任意の時点で、少なくとも直接通信できるチップ同士の間で互いのチップ認識番号を交換し合う初期化処理を行うようにされ、初期化処理又は認証処理が適正に行えない場合には、前記制御装置がその動作を停止し又はその旨の信号を出力するようにする。チップ認識番号は、例えば、チップを個別に識別できるＩＤ番号である。
【発明の効果】
【００１５】
上記のように、遊技機用制御装置と認証チップとの間で周期的に認証処理を行わせるようにし、かかる認証処理が実行されない場合には遊技機用制御装置が適正に動作しないようにしたことにより、遊技機用制御装置だけを単体で別の基板に載せ替えても適正に動作しないため、遊技機用制御装置を偽造基板に載せ替える不正行為を有効に抑止できる。
【００１６】
また、認証処理を行わせるために遊技機用制御装置と認証チップを対で別の基板に載せ替えようとしても、認証チップには耐タンパ性が付与されており、認証チップを正規の基板から取り外そうとすると、例えば自己破壊して適正に動作しなくなるため、偽造基板に遊技機用制御装置を載せ替えるといった不正行為はより困難となる。
【発明を実施するための最良の形態】
【００１７】
ここで、図面を参照しつつ本発明の実施の形態について説明する。
【００１８】
図１は、遊技場（遊技ホール）ごとに遊技機の情報をオンラインで一元管理する遊技機管理システムのネットワーク構成を示す図である。複数の遊技場Ａ、Ｂ、Ｃ、・・・は、公衆回線３００を介してホストコンピュータ１００に接続されている。ホストコンピュータ１００は、各遊技場に設置されている遊技機それぞれについての稼働状況を監視するために設けられたものであり、それぞれの遊技場内の各遊技機の稼働状況は、データベース２００に書き込まれて管理される。
【００１９】
データベース２００には、少なくとも遊技機内に使用されている各チップ（後述のメインＣＰＵ１０、サブＣＰＵ１４、認証チップ１２、１６をそれぞれ「チップ」ともいう）ごとに付与されている固有のＩＤ番号（チップ一つひとつを個体として特定する番号）と、それぞれの稼働状況がリンクされて格納され、管理される。不正使用が発覚して動作を停止している遊技機があれば、ホストコンピュータ１００からデータベース２００を調べることによって、これを知ることができる。図１のデータベース２００において、ＩＤｍは、遊技機に搭載されているメインＣＰＵのＩＤ番号、ＩＤｓは遊技機に搭載されているサブＣＰＵのＩＤ番号、ＩＤｘ１は遊技機に搭載されているメインＣＰＵ用の認証チップのＩＤ番号、ＩＤｘ２は遊技機に搭載されているサブＣＰＵ用の認証チップのＩＤ番号である。
【００２０】
図２は、図１に示した各遊技場Ａ、Ｂ、Ｃ、・・・におけるネットワーク構成と、遊技機の内部構造を示した図である。遊技場ごとに設けられるホールコンピュータ（Ｈ．Ｃ．）４００ｉは、当該遊技場に設置された遊技機００１、００２、００３、・・・の稼働状況を一元管理する。ホールコンピュータ４００ｉに遊技機の情報を集約することによって、遊技場内の各遊技機の状況を監視できる。ホールコンピュータ４００ｉの情報は、公衆回線３００を介して、図１に示したホストコンピュータ１００に送ることができる。また、台検査装置１８を各遊技機に接続することによって、遊技機の動作状況や遊技機に使用されているチップのＩＤ番号などを遊技機ごとに個別に読み取ることができる。
【００２１】
図２に示すように、各遊技機には、遊技機用制御基板として、メイン基板５、サブ基板７という２つの基板が含まれている。なお、ここではサブ基板７は１枚だけを示しているが、実際には複数のサブ基板が設けられている場合が多い。メイン基板５には、メインＣＰＵ１０及びメインＣＰＵ１０用の認証チップ１２が搭載されており、サブ基板７には、サブＣＰＵ１４及びサブＣＰＵ１４用の認証チップ１６が搭載されている。メインＣＰＵ１０は外部通信手段２０に接続されており、これにより遊技機は外部通信手段２０を介してホールコンピュータ４００ｉによる監視が可能となる。また、携帯可能な台検査装置１８を任意の遊技機の所定の端子に接続するができる。この場合、台検査装置１８は、外部通信手段２０を介さずに直接メインＣＰＵ１０に接続され、メインＣＰＵ１０が所定の動作をしているか又は遊技機に実装されたチップのＩＤ番号を読み出して確認することにより、個別に監視することができる。
【００２２】
ところで、メインＣＰＵ１０及びサブＣＰＵ１４のように遊技機の基本動作の制御に関わる部品は、不正行為の対象となり易いため種々の規制や業界の内規が存在している。そして、このような部品については、必要に応じて基板から取り外し、検査する必要があることから、それぞれの基板への実装の際には、取り外しが可能なようにソケットに差し込むか、少なくともハンダ付けによって実装しておかなければならない。したがって、メインＣＰＵ１０及びサブＣＰＵ１４を、後述のように自己破壊性とすることは、不具合の原因（故障なのか、不正品なのか等）を特定する必要があることから採用することができない。
【００２３】
図３及び図４は、遊技機用制御基板であるメイン基板５とサブ基板７の構成をより詳しく示した図である。図３と図４の違いは、図３では認証チップ１２及び認証チップ１６が、有線でそれぞれメインＣＰＵ１０及びサブＣＰＵ１に接続されているのに対し、図４では、これらが無線で通信するようになっている点である。図３及び図４において、メイン基板５は、遊技機におけるゲームの中心となる制御を行う基板である。例えばパチンコ機やパチスロ機のスタート検出後に、大当たり抽選を行い、大当たりの場合はパチンコの大当たり動作や、パチスロのボーナスゲームの進行を制御する。メインＣＰＵ（メインチップとも呼ばれる）１０は、内蔵されたＲＯＭに遊技機動作の制御プログラムが格納されており、この制御プログラムに従って遊技機制御のメイン処理を行う。
【００２４】
メインＣＰＵ１０は、前述のセキュリティチェック機能が搭載されたセキュリティチップとされている。すなわち、メインＣＰＵ１０は予め、ユーザプログラムそのものを変数として暗号化ハッシュ関数の演算を実行し、得られたハッシュ値に基づいたセキュリティコードを作成する。このセキュリティコードは、予めユーザプログラムとともに記憶しておく。メインＣＰＵ１０は、電源を立ち上げる度に毎回チップ内で前述の暗号化ハッシュ値算出の演算を実行し、そこで得られたものと、予め記憶してあるセキュリティコードとを比較する。そして、一致していればその後の動作を継続するが、不一致と判定された場合には、ユーザプログラムを実行できないよう動作を停止する。かかるセキュリティチェック機能はサブＣＰＵ（サブチップとも呼ばれる）１４にも搭載されており、プログラムの改竄といった不正使用の防止が図られている。
【００２５】
図３及び図４において、メイン基板５に搭載された入出力回路１８は、遊技機を構成するパチンコでは、スタート検出スイッチからの入力、入賞口の開閉出力、ランプ出力などの制御に対する入出力を行うチップ又は回路からなる。パチスロでは、スタートレバーの検出入力、リールの回転出力などの制御に対する入出力を行う。サブ基板７に登載されたサブＣＰＵ１４は、パチンコでは、メインＣＰＵ１０より受けたコマンドにより玉の払出し機構等の既定の動作を行う。なお、図３及び図４において、外部照合手段２２は、図２に示した外部通信手段２０と、これと接続されるホールコンピュータ４００ｉを含めた部分に対応するものであっても良いし、携帯可能な照合器（図示せず）のようなものであっても良い。
【００２６】
図５及び図６は、外部照合手段２２とメイン基板５との接続の仕方を説明するための図である。図５の例では、メインＣＰＵ１０が外部照合手段２２に対する通信手段を独立して有していて外部照合手段２２がメイン基板５の端子５ａを介してメインＣＰＵ１０に接続されている場合であり、図６の例では、外部照合手段２２との通信がチップ間通信と兼用となっているため外部照合手段２２がメイン基板５の端子５ａを介してメインＣＰＵ１０とサブＣＰＵ１４の間の配線につながり、ここからメインＣＰＵ１０につながっている場合である。なお、サブ基板７のサブＣＰＵ１４に対しても、メインＣＰＵ１０と同様に外部照合手段２２を接続することができる。
【００２７】
図７は、認証チップ１２とメインＣＰＵ１０とを導線で接続した様子を示している。この例では、電源（ＶＤＤ）、データ（ＤＡＴ）、ストローブ（ＳＴＢ）、グランド（ＧＮＤ）の各配線パターン３０によって、認証チップ１２とメインＣＰＵ１０とが接続されている。サブ基板７上の認証チップ１６とサブＣＰＵ１４との間にも同様の導線が設けられている。
【００２８】
認証チップ１２は、容易に取り外すことができないように、実装後に基板に固定された証紙カバー３２よって覆われる。証紙カバー３２には証紙が貼付されている。「証紙」とは、チップが遊技機組合等の公的若しくは半公的な認証機関によって検査を受け、遊技機に使用することを承認されたことを示す証明書の役割を果たすものであり、個別の番号や印章などが付されたものである。遊技機の動作を不正に改変しようとする不正遊技者が認証チップを取り外すために証紙カバー３２を取り外そうとすると、後述のように認証チップ１２の配線が容易に切断されようになっており、これにより認証チップ１２が所定の動作をしなくなる。このため認証チップ１２はメインＣＰＵ１０との間で後述の認証処理の実行ができなくなり、これを検出したメインＣＰＵ１０はその動作を停止する。これは、メインＣＰＵ１０を耐タンパ性構造とする方法の一例である。
【００２９】
次に、図８〜図１１を参照しながら認証チップの実装方法について説明する。認証チップ１２（１６）は、本発明に基づいて耐タンパ性とされるが、図８〜図１１は、認証チップに耐タンパ性を付与する方法の実施例を示している。ただし、これらの図に示す方法以外の方法で耐タンパ性を付与する場合も、本発明の技術的範囲に含まれる。
【００３０】
図８は、認証チップ１２（１６）を基板５（７）に実装する方法の一例を示した断面図、図９は、図８の状態を斜め上方から見た斜視図である（ただし、図９では証紙カバー３２を省略してある）。認証チップ１２（１６）は、その下部が強力な接着剤２８によって基板５（７）に固定され、このため、認証チップ１２（１６）を基板５（７）から剥がそうとすると、チップのパッケージが破れ、内部の回路が自己破壊するようにされている。また、認証チップの上部に設けられた上部導体２６は、複数の導線２４を介して基板５（７）の配線パターン３０と電気的に接続されており、認証チップが基板から電源（ＧＮＤを含む）の供給を受けるとともに、ＣＰＵとの間で信号の授受を行うことができるようになっている。
【００３１】
認証チップ１２（１６）はさらに証紙カバー３２で覆われ、これは強力な接着剤２８によって認証チップ１２（１６）に固定されている。このようにして固定された認証チップ１２（１６）を基板５（７）から無理矢理取り外そうとすると、導線２４が切断されて電源の供給及び信号の授受ができなくなるので、認証チップ１２（１６）は動作を停止し、後述の認証処理ができなくなる。この認証処理は、後述のように乱数や暗号鍵を用いた暗号化を行ってなされるため、正規のメインＣＰＵ１０と認証チップ１２、正規のサブＣＰＵ１４と認証チップ１６との間でなければ実行されず、また、例えば１秒という時間間隔で絶えず行うようにする。ＣＰＵ１０又はサブＣＰＵ１４は、認証チップ１２（１６）との間でこの認証処理ができないと判断すると、その時点で動作を停止する。
【００３２】
図１０は、図８及び図９の変形例であり、この例では、図８及び図９の導線２４の代わりにより細いワイヤ３４を用いて、認証チップ１２（１６）の上部導体と基板５（７）上の配線パターン３とを電気的に接続している。その他の部分については図８及び図９の実施例と同様である。図１０の実施例でも、認証チップ１２（１６）を基板５（７）から取り外そうとすると、導線３４が切断され、また、認証チップ１２（１６）自身も自己破壊して正常に動作しなくなる。
【００３３】
図１１は、さらに別の方法で認証チップ１２（１６）を基板５（７）に固定する実施例の断面図である。この例では、基板５（７）に凹部３６を設け、この内部に認証チップ１２（１６）を埋め込み、強力な接着剤で固定している。上部導体２６は、基板の配線パターンとほぼ同じ高さであり、両者の電気的な接続はハンダ付け又は溶接によって行うことができる。さらに、この認証チップ１２（１６）の上に証紙カバー３２を設け、これを接着剤で固定する。この場合も、認証チップ１２（１６）を基板の凹部３６からとりはずそうとすると、上部導体２６が切断され、また、認証チップ１２（１６）自身も自己破壊する。
【００３４】
認証チップ１２（１６）を、上記で説明したいくつかの実施例のように基板に固定することによって、不正使用の目的で認証チップ１２（１６）を基板から取り外すことは困難となり、仮に取り外しを試みても導線２４が切断され、チップ自身が自己破壊することによって認証チップ１２（１６）が機能しなくなることで、耐タンパ性が付与される。認証チップ１２（１６）が機能しなくなると、対応するメインＣＰＵ１０及びサブＣＰＵ１４は、後述の認証処理ができなくなる。この認証処理は、後述のよう乱数や暗号鍵を用いた暗号化を行ってなされるため、正規のメインＣＰＵ１０と認証チップ１２、正規のサブＣＰＵ１４と認証チップ１６との間でなければ実行されず、また、例えば１秒という時間間隔で絶えず行うようにされており、かつ、ＣＰＵ１０又はサブＣＰＵ１４は、認証チップ１２（１６）との間でこの認証処理ができないと判断すると、その時点で動作を停止するようにされている。このため、セキュリティチェック機能をかいくぐるためにメインＣＰＵ１０等を、偽のＣＰＵ等が仕込まれた偽造基板に付け替え、この偽造基板を正規の基板と入れ替えるといった不正行為を効果的に防止することができる。
【００３５】
図１２は、メインＣＰＵ１０内部の構成を示すブロック図である。同図に示すように、メインＣＰＵ１０の内部で、遊技機制御用ＣＰＵのバス上に共有メモリ、ブートＲＯＭ、ブートＲＡＭ、ユーザＲＯＭ、ユーザＲＡＭ、ウォッチドッグタイマー回路、不正アドレス実行禁止回路、タイマー回路、セキュリティチェック回路が接続されている。共有メモリは、通信回路４０を介して他チップとの通信を実行する。通信回路４０は、個別ＩＤ番号格納回路につながっており、ここに、各チップから送られてきたそれぞれのＩＤ番号を格納するとともに、格納されたＩＤ番号を読み出すことができる。通信回路４０はまた、外部照合回路を介して外部照合手段に接続され、外部照合手段によって、ＩＤ番号の読み出し、通信結果の読み出しが行われる。さらに通信回路４０は、認証チップ１２との間で、後述のように、認証処理のための通信をすることができる。
【００３６】
図１３は、サブＣＰＵ１４の構成を示すブロック図である。サブＣＰＵ１４の構成は、メインＣＰＵ１０とほぼ同様である。サブＣＰＵ１４は、通信回路４１を介して、認証チップ１６との間で、後述のように、認証処理のための通信をすることができる。
【００３７】
図１４は、前述の通信回路４０、４１の構成を示すブロック図である。通信回路４０（４１）には、通信制御回路、チップ間送受信回路、遊技機制御用ＣＰＵ停止回路、送受信データバッファ、通信結果格納回路、暗号／復号回路、乱数発生回路、他チップＩＤ番号格納回路、乱数値等格納回路、暗号鍵格納回路、通信監視タイマー、共有メモリアクセス監視回路、基板認証用送受信回路が含まれている。
【００３８】
通信制御回路は、ＣＰＵ又はハードロジック回路によって構成されており、クロック回路からクロック信号を受けて、通信シーケンス（プロトコル）を制御する。チップ間送受信回路は、他のチップ（メインＣＰＵ１０であればサブＣＰＵ１４、サブＣＰＵ１４であればメインＣＰＵ１０）との間でシリアルデータを送受信する回路であり、同じくクロック回路からクロック信号を受けて、シリアルデータを監視するとともに、フレーミングエラー、パリティエラーなどを検出する。遊技機制御用ＣＰＵ停止回路は、他チップとの間での初期化及び相互認証の可否を判定し、初期化又は相互認証ができない場合にはＣＰＵを停止させる。送受信データバッファは、送信時には暗号化した送信データを一旦バッファリングして送信し、受信時には受信データを一旦バッファリングして復号化を行う。
【００３９】
通信結果格納回路は、通信の状態（回線接続中、回線断、遊技機稼働中、エラー発生回数など）を格納する回路である。暗号／復号回路は、通信データの暗号化及び復号化を行う。乱数発生回路は、暗号鍵の生成、通信データの拡散に使用する乱数を生成する。他チップＩＤ番号格納回路は、通信対象となる他のチップから送られてきたＩＤ番号を格納する。乱数値等格納回路は、通信対象となるチップから送られてきた乱数値、自チップで生成した乱数値等を格納する。暗号鍵格納回路は、通信対象チップと自チップのデータにより算出された暗号用共通鍵を格納する。通信監視タイマーは、通信時の応答データの時間監視、送信データの送出時間の監視を行う。共有メモリアクセス監視回路は、共有メモリの書き込みエリアに書き込みがあったかどうかを定期的に監視し、書き込みがあった場合には共有メモリの書き込みデータを読み出し、送信処理を起動する。他に、共有メモリへの書き込み信号をトリガーとして送信処理を起動する方法もある。受信処理により共有メモリ読み出しエリアへのデータを受信した場合には、共有メモリ読み出しエリアへ受信データの更新を行う。
【００４０】
基板認証用受信回路は、認証チップ１２（１６）との間で、認証処理を実行し、認証処理が適正に行えない場合には、図１２、図１３に示したリセット回路に信号を送り、メインＣＰＵ１０又はサブＣＰＵ１４の動作を停止させる。
【００４１】
図１５も、図１４と同じく、通信回路４０（４１）の構成を示すブロック図であるが、図１５の実施例は図４、図５、図６に対応するものであり、通信回路４０（４１）内にＲ／Ｆ回路４２が設けられ、これによって認証チップ１２又は１６との間で無線による通信を行うようになっている。
【００４２】
図１６は、認証チップ１２及び１６の構成の一例を示すブロック図である。認証チップ１２（１６）は、図１４、図１５に示した、メインＣＰＵ１０及びサブＣＰＵ１４の通信回路４０（４１）が通信を行う相手方となるチップであり、その構成は通信回路４０（４１）と類似しているが、通信制御回路にパワーオンリセット回路が接続されている点、他のＣＰＵチップとの通信を行わないことからチップ間送受信回路が設けられていない点、共有メモリアクセス監視回路が設けられていない点が、通信回路４０（４１）とは異なっている。
【００４３】
図１７は、図１６と同じく認証チップ１２及び１６の構成の一例を示すブロック図であるが、図１６の実施例がメインＣＰＵ１０又はサブＣＰＵ１４との間の通信が有線であるのに対し、図１７の実施例は、認証チップにＲ／Ｆ回路５６が設けられており、これによりメインＣＰＵ１０又はサブＣＰＵ１４との間で無線による通信を行うようにされている。
【００４４】
図１８は、メインＣＰＵ１０、メインＣＰＵ１０用の認証チップ１２、サブＣＰＵ１４、そしてサブＣＰＵ１４用の認証チップ１６がそれぞれ保有する情報と、各チップ間の相互認証関係を示した図である。ここで、各チップにおいて太い実線で示したものが自己を表す８バイトからなるＩＤ番号であり、電源が切られてもデータが消滅しないようＥＥＰＲＯＭ等の不揮発性メモリに格納されている。
【００４５】
メインＣＰＵ１０（ＩＤ番号：ＩＤｍ）と、同じ基板上の認証チップ１２（ＩＤ番号：ＩＤｘ１）との間では、初期化処理によって互いに相手のＩＤ番号を交換して保持し合い、その後、交換されたＩＤ番号を用いて相互認証を行う。同様に、サブＣＰＵ１４（ＩＤ番号：ＩＤｓ）と、同じ基板上の認証チップ１６（ＩＤ番号：ＩＤｘ２）との間でも初期化処理によって互いに相手のＩＤ番号を交換して保持し合い、このＩＤ番号を用いてその後の相互認証を行う。メインＣＰＵ１０とサブＣＰＵ１４の間でも、初期化処理により互いに相手のＩＤ番号を交換し合い、これを用いて相互認証を行う。
【００４６】
メインＣＰＵ１０とサブＣＰＵ１４は、それぞれの認証チップの認証状態を示す情報として、それぞれ認証チップ１２認証情報と認証チップ１６認証情報を持ち、さらにメインＣＰＵ１０がサブＣＰＵ１４を認証している情報を示すサブチップ認証情報と、サブＣＰＵ１４がメインＣＰＵ１０を認証している状態を示すメインチップ認証情報を持っている。
【００４７】
メインＣＰＵ１０は、自分のＩＤ番号ＩＤｍについては、図１２に示したメインＣＰＵ１０の個別ＩＤ番号格納回路に格納し、認証チップ１２のＩＤ番号ＩＤｘ１及びサブＣＰＵ１４のＩＤ番号ＩＤｓは、図１４に示した通信回路４０内の他チップＩＤ番号格納回路に格納する。認証チップ１２認証情報及びサブチップ認証情報については、同じく通信回路４０内の通信結果格納回路に格納する。
【００４８】
メインＣＰＵ１０は、自己が相互認証に必要とする情報の他に、他の基板（サブ基板）上のチップの認証関係を外部照合手段２２へ送信するために、図１４の通信回路４０内の通信結果格納回路に、認証チップ１２認証情報、ＩＤｍ、ＩＤｓ、ＩＤｘ１、ＩＤｘ２を格納している。
【００４９】
サブＣＰＵ１４は、自分のＩＤ番号ＩＤｓについては、図１３に示したサブＣＰＵ１４の個別ＩＤ番号格納回路に格納し、認証チップ１６のＩＤ番号ＩＤｘ２及びメインＣＰＵ１０のＩＤ番号ＩＤｍは、図１４に示した通信回路４１内の他チップＩＤ番号格納回路に格納する。認証チップ１６認証情報及びメインチップ認証情報については、同じく通信回路４１内の通信結果格納回路に格納する。
【００５０】
認証チップ１２は、自分のＩＤ番号ＩＤｘ１を図１６又は図１７に示した個別ＩＤ番号格納回路に格納するとともに、メインＣＰＵ１０のＩＤ番号ＩＤｍを他チップＩＤ番号格納回路に格納する。認証チップ１６は、自分のＩＤ番号ＩＤｘ２を個別ＩＤ番号格納回路に格納するとともに、サブＣＰＵ１４のＩＤ番号ＩＤｓを他チップＩＤ番号格納回路に格納する。
【００５１】
図１９及び図２０は、各種通信電文のデータフォーマットを示した図である。このうち、図２０（５）は、送受信されるすべての場合におけるデータのビット構成を示しており、各データは図示の通り８ビットのデータとして送受信される。通信データは、通常の通信規格（ＣＡＮ、ＬＩＮ、ＢＳＣ等）で通信する場合には、フラグ、コマンド、ＢＣＣ以外の部分を暗号化して転送する。フラグ以外の部分をすべて暗号化して転送する場合も考えられるが、その場合は独自の送信手順となる。
【００５２】
図１９及び図２０に示すように、通信電文中には乱数を含むようにしてある。このように電文中に乱数を含み、さらにその電文を暗号化することによって、乱数以外のデータが同じであっても暗号化された電文は乱数が異なるごとに異なる電文となることから、不正使用の意図を持つ第三者が解析を試みる場合の困難性が非常に高い。
【００５３】
図１９（１）は初期化に関する通信データフォーマットを示しており、上段は初期化コマンド電文、下段は初期化応答電文のデータフォーマットである。この初期化は、通信で直接リンクされるチップ間で行われる処理である。具体的には図１９（１）上段の初期化コマンド電文は、メインＣＰＵ１０から認証チップ１２へ、メインＣＰＵ１０からサブＣＰＵ１４へ、又はサブＣＰＵ１４から認証チップ１６へ発せられ、このコマンドを受け取った側は図１９（１）下段の初期化応答電文を返す。
【００５４】
図１９（１）の初期化コマンドでは、初期化を命令するコマンドの他に、初期化コマンドを送る側が自己のＩＤ（認証元ＩＤ１〜８は、ＩＤ番号が８バイトであることを示す）及び送信データ拡散用の送信乱数を送る。フィラー（ｆｉｌｌｅｒ）は、固定長フォーマットの空きを埋めるために挿入される。この初期化処理により、初期化し合うチップ同士は互いに相手のＩＤ番号を保持することができる。なお、送信乱数は、図１４及び図１５に示したメインＣＰＵ１０及びサブＣＰＵ１４内の乱数発生回路又は図１６に示した認証チップ１２、１６内の乱数発生回路において生成される。
【００５５】
図１９（２）は、認証の際に送受信されるデータのフォーマットを示しており、上段は認証コマンド電文、下段は認証応答電文である。具体的には図１９（２）上段の認証コマンド電文は、メインＣＰＵ１０から認証チップ１２へ送られる場合と、サブＣＰＵ１４から認証チップ１６へ送られる場合がある。認証コマンド電文を送る側（すなわちメインＣＰＵ１０又はサブＣＰＵ１４）は、認証コマンドとともに自分のＩＤ番号を基に算出したハッシュ値及び相手のＩＤ番号（初期化処理により既に取得している）を基に算出したハッシュ値、その他に乱数１及び乱数２、さらに送信乱数を送信する。これを受け取った認証チップ１２（１６）は、まず、正しく認証できたかどうかを判定し、その結果を図１９（２）下段の「応答コード」に反映させて相手方（すなわちメインＣＰＵ１０又はサブＣＰＵ１４）に送信する。
【００５６】
図１９（３）は、メインＣＰＵ１０が、直接リンクされていない認証チップ、すなわちサブＣＰＵ１４用の認証チップ１６のＩＤ番号ＩＤｘ２を要求する際の電文のデータフォーマットである。したがって、上段の「サブチップ要求コマンド」には、サブＣＰＵ１４用の認証チップ１６のＩＤ番号をメインＣＰＵ１０へ送る旨のコマンドが含まれる。これを受け取ったサブＣＰＵ１４は、自己が保持している認証チップ１６のＩＤ番号ＩＤｘ２を図１９（３）下段のフォーマットでメインＣＰＵ１０に送信する。
【００５７】
図２０（４）は、遊技機に外部から接続される外部照合手段（図４参照）とメインＣＰＵ１０との間でやり取りされるＩＤ読み出し処理のデータフォーマットを示している。上段のＩＤ読み出しコマンドは、外部照合手段からメインＣＰＵ１０に対して送られるＩＤ読み出しコマンドのデータフォーマットであって、関係するすべてのチップのＩＤ番号を送り返すようにとの命令が含まれている。
【００５８】
メインＣＰＵ１０は、このデータを受け取ってコマンドの要求を解析し、その応答として、図２０（４）下段に示すデータフォーマットで、メインＣＰＵ１０自身のＩＤ番号ＩＤｍ（メインチップＩＤ１〜８）、サブＣＰＵ１４のＩＤ番号ＩＤｓ（サブチップＩＤ１〜８）、認証チップ１２のＩＤ番号ＩＤｘ１（認証チップ１２ＩＤ１〜８）、そして認証チップ１６のＩＤ番号ＩＤｘ２（認証チップ１６ＩＤ１〜８）を、それぞれの認証状態（正しく認証したか否かを示す情報）とともに、送信乱数を付加して、図２０（４）下段に示すデータフォーマットで外部照合手段に転送する。
【００５９】
図１９及び図２０に示すように各チップのＩＤ番号は８バイトであり、初期化の際には前述のようにこの８バイトのＩＤ番号を互いに交換し合う。これに対し、メインＣＰＵ１０と認証チップ１２との間、及びサブＣＰＵ１４と認証チップ１６との間で認証処理を行う場合は、それぞれのＩＤ番号に基づいて所定のハッシュ演算を行い、得られたハッシュ値だけをやり取りして認証処理を行う。図１９、図２０の例では、フラグを除いて８バイトのデータ長で示しているが、ＦＥＥＬ８、ＤＥＳといった暗号方式では、８バイトの整数倍で暗号化を行うので、フラグ（データの先頭を示す符号）を除く部分が１６バイトや３２バイトなどの８バイトの整数倍の長さとなることもある。また、図１９、図２０の例ではコマンドが１パケットのように示してあるが、コマンドや応答電文が複数パケットにまたがるものとすることもできる。
【００６０】
図２１は、メインＣＰＵ１０とサブＣＰＵ１４の間で、初期化処理の際に互いのＩＤ番号をやり取りする通信を行う場合の暗号化について説明した図である。メインＣＰＵ１０と認証チップ１２との間の初期化、サブＣＰＵ１４と認証チップ１６の間の初期化も、それぞれのＩＤ番号や暗号値を除いて、図２１の場合と同様である。
【００６１】
メインＣＰＵ１０とサブＣＰＵ１４には、予め共通のデフォルト暗号鍵ｋ０が付与されており、通信回路４０（４１）の暗号鍵格納回路（図１４参照）に格納されている。メインＣＰＵ１０とサブＣＰＵ１４の間の初期化では、この暗号鍵ｋ０を使ってまずメインＣＰＵ１０のＩＤ番号（ＩＤｍ）と送信乱数Ｒｘに基づいて暗号化し、これをサブＣＰＵ１４へ送信する。サブＣＰＵ１４は同じくこの暗号鍵ｋ０を使ってサブＣＰＵ１４のＩＤ番号（ＩＤｓ）と送信乱数Ｒｘに基づいて暗号化し、これをメインＣＰＵ１０へ送信する。こうして両者が互いのＩＤ番号を保有した後、二つのＩＤ番号（ＩＤｍとＩＤｓ）を基に、所定の関数ｆｋによって、
ｋ２＝ｆｋ（ＩＤｍ，ＩＤｓ）
という演算を行い、新たな暗号鍵ｋ２を生成する。
【００６２】
図２２は、メインＣＰＵ１０とサブＣＰＵ１４の間で相互認証のための通信を行う場合の暗号化について説明した図である。メインＣＰＵ１０と認証チップ１２の間の認証処理のための暗号化、サブＣＰＵ１４と認証チップ１６の間の認証処理のための暗号化も、それぞれのＩＤ番号や乱数値を除いて、図２２の場合と同様である。
【００６３】
図２２に示すメインＣＰＵ１０と認証チップ１２との間の認証処理では、それぞれのＩＤ番号（ＩＤｍ及びＩＤｘ１）と、送信乱数Ｒ１、Ｒ２、Ｒｘに基づいて、まずハッシュ関数の演算を行って１バイトのハッシュ値
ｈ（ＩＤｍ＋ＩＤｓ＋Ｒ１＋Ｒ２＋Ｒｘ）
を求める。これに対してさらに暗号鍵ｋ２を使って暗号化を行い、これを互いに送受信する。受信した側は、復号化すると共にハッシュ値を基に戻して、互いに認証し合う。
【００６４】
図２３は、ＡＣＫ／ＮＡＫにより電文の到達を確認する方式を説明する図である。メインＣＰＵ１０及び認証チップ１２の間で電文１及び電文２のやり取りがなされたとき、相手方に正常に到達すれば、ＡＣＫ信号が返される。これにより、データを送った側は、正常に届いたことを知る。電文３が正常に届かずに異常が生じた場合には、ＮＡＫ信号が返される。その場合、送った側はもう一度電文３を送り直す。正常に送られると、ＡＣＫ信号が返される。このような処理を所定回数（例えば３回）繰り返す。
【００６５】
図２４は、電源が投入された後最初に実行される、メインＣＰＵ１０による初期化処理及びセキュリティチェック処理を示したフローチャートである。メインＣＰＵ１０はまず、図１９（１）上段に示したデータフォーマットの初期化コマンド電文を暗号化し、認証チップ１２に対して送信する（Ｓ２４０１）。このとき用いられる暗号鍵は前述のようにｋ０である。このデータを受信した認証チップ１２は、図１９（１）下段に示したデータフォーマットの初期化応答電文を暗号鍵ｋ０で暗号化して送信するので、メインＣＰＵ１０はこれを受信する（Ｓ２４０２）。メインＣＰＵ１０は、認証チップ１２との間で初期化が正常に行われたと判断すると（Ｓ２４０３）、メインＣＰＵ１０と認証チップ１２の共通鍵ｋ１を生成する（Ｓ２４０４）。
【００６６】
続いて、メインＣＰＵ１０は、サブＣＰＵ１４に対し、上記と同様に初期化コマンド電文を暗号鍵ｋ０で暗号化して送信する（Ｓ２４０５）。これに対して、サブＣＰＵ１４は、メインＣＰＵ１０に対して上記と同様に初期化応答電文を暗号鍵ｋ０で暗号化して送信するので、メインＣＰＵ１０はこれを受信する（Ｓ２４０６）。メインＣＰＵ１０は、サブＣＰＵ１４との間で初期化が正常に行われたと判断すると（Ｓ２４０７）、メインＣＰＵ１０とサブＣＰＵ１４の共通鍵ｋ２を生成する（Ｓ２４０８）。
【００６７】
以上の処理により認証チップ１２及びサブＣＰＵ１４との間で初期化処理が正常に終了したときは、メインＣＰＵ１０は、遊技機制御プログラムのセキュリティチェックを実行する（Ｓ２４０９）。セキュリティチェックは、遊技機制御プログラムが記録されているＲＯＭに記憶されているデータを基に演算で得られた値が、メインＣＰＵ１０内に格納されている正しい値と一致するか否かを判定することによって行われる診断処理、すなわち、正しい遊技機制御プログラムが実行されているかどうかを判定する処理である。このセキュリティチェックが正常に行われた場合には（Ｓ２４１０）、遊技機制御プログラムを起動し（Ｓ２４１１）、次の認証処理に移行する。一方、Ｓ２４０３、Ｓ２４０７、Ｓ２４１０のいずれかにおいて異常があると判定された場合には、遊技機制御用ＣＰＵ（メインＣＰＵ１０）の動作を停止する（Ｓ２４１２）。
【００６８】
図２５は、メインＣＰＵ１０による認証チップ１２及びサブＣＰＵ１４に対して実行する認証処理のフローチャートである。メインＣＰＵ１０は、まず自己のＩＤ番号（ＩＤｍ）、認証チップ１２のＩＤ番号（ＩＤｘ１）、及び所定の送信乱数に基づいて送信元（メインＣＰＵ１０）と送信先（認証チップ１２）のハッシュ値（各１バイト）を算出する（Ｓ２５０１）。このハッシュ値が得られたら、図１９（２）上段に示したデータフォーマットの認証用電文を、生成された暗号鍵ｋ１で暗号化し、認証チップ１２に対して送信する（Ｓ２５０２）。
【００６９】
このデータを受け取った認証チップ１２は後述の処理を実行し、その結果をメインＣＰＵ１０に対して返送するので（暗号鍵：ｋ１）、メインＣＰＵ１０はこれを受信する（Ｓ２５０３）。メインＣＰＵ１０は、受信したデータを復号化し、その中のデータに基づいてハッシュ値の再計算を行う（Ｓ２５０４）。そしてこの算出されたデータを最初に計算された結果と比較し、一致すれば認証条件が満たされたと判定し、不一致であれば、認証条件が満たされないと判定する（Ｓ２５０５）。Ｓ２５０５において認証条件が満たされないと判定すると、遊技機制御用ＣＰＵの動作を停止する（Ｓ２５１２）。
【００７０】
Ｓ２５０５において認証条件が満たされたと判定すると、続いて、サブＣＰＵ１４に対する認証処理に移行し、まず自己のＩＤ番号（ＩＤｍ）、サブＣＰＵ１４のＩＤ番号（ＩＤｓ）、及び所定の送信乱数に基づいて送信元（メインＣＰＵ１０）と送信先（サブＣＰＵ１４）のハッシュ値（各１バイト）を算出する（Ｓ２５０６）。このハッシュ値が得られたら、図１９（２）上段に示したデータフォーマットの認証用電文を暗号鍵ｋ２で暗号化し、これをサブＣＰＵ１４に対して送信する（Ｓ２５０７）。
【００７１】
このデータを受け取ったサブＣＰＵ１４は後述の処理を実行し、その結果をメインＣＰＵ１０に返送するので（暗号鍵：ｋ２）、メインＣＰＵ１０はこれを受信する（Ｓ２５０８）。メインＣＰＵ１０は、受信したデータを復号化し、その中のデータに基づいてハッシュ値の再計算を行う（２５０９）。そして、この算出されたデータを最初に計算された結果と比較し、一致すれば認証条件が満たされたと判定し、不一致であれば、認証条件が満たされないと判定する（Ｓ２５１０）。
【００７２】
Ｓ２５１０において認証条件が満たされないと判定すると、遊技機制御用ＣＰＵの動作を停止する（Ｓ２５１２）。Ｓ２５１０において認証条件が満たされたと判定すると、インターバルの時間をおき（Ｓ２５１１）、以後、同様にＳ２５０１からの処理を実行する。インターバルの時間は、例えば１秒程度とすることができる。
【００７３】
図２６は、電源が投入された後に実行される、サブＣＰＵ１４における初期化処理及びセキュリティチェック処理を示したフローチャートである。サブＣＰＵ１４はまず、図１９（１）上段に示したデータフォーマットの初期化コマンド電文を暗号化し、認証チップ１６に対して送信する（Ｓ２６０１）。このとき用いられる暗号鍵は前述のｋ０である。このデータを受信した認証チップ１６は、図１９（１）下段に示したデータフォーマットの初期化応答電文を同じく暗号鍵ｋ０で暗号化して送信するので、サブＣＰＵ１４はこれを受信する（Ｓ２６０２）。サブＣＰＵ１４は、認証チップ１６との間で初期化が正常に行われたと判断すると（Ｓ２６０３）、サブＣＰＵ１４と認証チップ１６の共通鍵ｋ３を生成する（Ｓ２６０４）。
【００７４】
続いて、サブＣＰＵ１４は、メインＣＰＵ１０から、暗号鍵ｋ０で暗号化されたサブＣＰＵ初期化コマンドを受信する（Ｓ２６０５）。これは、図２４のＳ２４０５に対応するものである。これに対してサブＣＰＵ１４は、メインＣＰＵ１０に、図１９（１）下段に示したデータフォーマットの初期化応答電文を暗号鍵ｋ０で暗号化して送信する（Ｓ２６０６）。サブＣＰＵ１４は、メインＣＰＵ１０との間で初期化が正常に行われたと判断すると（Ｓ２６０７）、メインＣＰＵ１０とサブＣＰＵ１４の共通鍵ｋ２を生成する（Ｓ２６０８）。
【００７５】
以上の処理により認証チップ１６及びメインＣＰＵ１０との間で初期化処理が正常に終了したときは、サブＣＰＵ１４は、サブチップ遊技機制御プログラムのセキュリティチェックを実行する（Ｓ２６０９）。このセキュリティチェックが正常に行われた場合には（Ｓ２６１０）、遊技機制御プログラムを起動し（Ｓ２６１１）、次の認証処理に移行する。一方、Ｓ２６０３、Ｓ２６０７、Ｓ２６１０のいずれかにおいて異常があると判定された場合には、遊技機制御用ＣＰＵ（サブＣＰＵ１４）の動作を停止する（Ｓ２６１２）。
【００７６】
図２７は、サブＣＰＵ１４における認証処理のフローチャートである。サブＣＰＵ１４は、まず自己のＩＤ番号（ＩＤｓ）、認証チップ１６のＩＤ番号（ＩＤｘ２）、及び所定の送信乱数に基づいて送信元（サブＣＰＵ１４）と送信先（認証チップ１６）のハッシュ値（各１バイト）を算出する（Ｓ２７０１）。このハッシュ値が得られたら、図１９（２）上段に示したデータフォーマットの認証用電文を暗号鍵ｋ３で暗号化し、認証チップ１６に対して送信する（Ｓ２７０２）。
【００７７】
このデータを受け取った認証チップ１６は後述の処理を実行し、その結果をサブＣＰＵ１４に対して暗号鍵ｋ３で暗号化して返送するので、サブＣＰＵ１４はこれを受信する（Ｓ２７０３）。サブＣＰＵ１４は、受信したデータを復号化し、その中のデータに基づいてハッシュ値の再計算を行う（Ｓ２７０４）。そしてこの算出されたデータを最初に計算された結果と比較し、一致すれば認証条件が満たされたと判定し、不一致であれば、認証条件が満たされないと判定する（Ｓ２７０５）。Ｓ２７０５において認証条件が満たされないと判定すると、遊技機制御用ＣＰＵ（メインＣＰＵ１０）の動作を停止する（Ｓ２７１０）。
【００７８】
Ｓ２７０６において認証条件が満たされたと判定すると、続いて、メインＣＰＵから送られる、暗号鍵ｋ２で暗号化されたサブチップ１４用の認証コマンドを受信する（Ｓ２７０６）。これは、図２５のＳ２５０７に対応する。サブＣＰＵ１４は、この認証コマンドを受信すると、まず自己のＩＤ番号（ＩＤｓ）、メインＣＰＵ１０のＩＤ番号（ＩＤｍ）、及び所定の送信乱数に基づいて送信元（メインＣＰＵ１０）と送信先（サブＣＰＵ１４）のハッシュ値（各１バイト）を算出する（Ｓ２７０７）。このハッシュ値が得られたら、図１９（２）下段に示したデータフォーマットの認証用電文を暗号鍵ｋ２で暗号化し、これをメインＣＰＵ１０に返送する（Ｓ２７０８）。サブＣＰＵ１４は、Ｓ２７０６で受信したデータの中のハッシュ値とＳ２７０７で算出したハッシュ値とを比較し、認証条件が満たされているか否かを判定する（Ｓ２７０９）。
【００７９】
Ｓ２７０９において認証条件が満たされないと判定すると、遊技機制御用ＣＰＵ（メインＣＰＵ１０）の動作を停止する（Ｓ２７１０）。Ｓ２７０９において認証条件が満たされたと判定すると、以後、同様にＳ２７０１からの処理を実行する。
【００８０】
図２８は、認証チップ１２における初期化処理及び認証処理を示したフローチャートである。認証チップ１２は、まずメインＣＰＵ１０から、図１９（１）上段にデータフォーマットを示した初期化コマンド（暗号鍵ｋ０で暗号化されている）を受信する（Ｓ２８０１）。これは図２４のＳ２４０１の処理に対応する。認証チップ１２は、これに対し所定の処理を行った後、図１９（１）下段にデータフォーマットを示した初期化応答電文を暗号鍵ｋ０で暗号化して返送し（Ｓ２８０２）、メインＣＰＵ１０との間の共通鍵ｋ１を生成する（Ｓ２８０３）。
【００８１】
初期化処理が済むと、認証処理に移行する。認証チップ１２は、図２５のＳ２５０２に対応してメインＣＰＵ１０から、認証コマンドが送られると、これを受信する（Ｓ２８０４）。この認証コマンドは、メインＣＰＵ１０において共通鍵ｋ１で暗号化されたものであり、認証チップ１２はこれを共通鍵ｋ１で復号化する。
【００８２】
続いて、認証チップ１２はハッシュ値を求める計算を行い（Ｓ２８０５）、その結果をメインＣＰＵ１０から送られてきたデータと比較する（Ｓ２８０６）。そして、一致していれば、正常である旨の応答コードを生成し（Ｓ２８０７）、一致していなければ、異常である旨の応答コードを生成する（Ｓ２８０８）。そしていずれも場合も、図１９（２）下段にデータフォーマットを示した認証応答用の電文のためのハッシュ値の計算を行い（Ｓ２８０９）、これが得られたら共通鍵ｋ１で暗号化してメインＣＰＵ１０へ返送する（Ｓ２８１０）。
【００８３】
図２９は、認証チップ１６における初期化処理及び認証処理を示したフローチャートである。認証チップ１６は、まずサブＣＰＵ１４から、図１９（１）上段にデータフォーマットを示した初期化コマンド（暗号鍵ｋ０で暗号化されている）を受信する（Ｓ２９０１）。これは図２６のＳ２６０１の処理に対応する。認証チップ１６は、これに対し所定の処理を行った後、図１９（１）下段にデータフォーマットを示した初期化応答電文を暗号鍵ｋ０で暗号化して返送し（Ｓ２９０２）、サブＣＰＵ１４との間の共通鍵ｋ３を生成する（Ｓ２９０３）。
【００８４】
初期化処理が済むと、認証処理に移行する。認証チップ１６は、図２７のＳ２７０２に対応してサブＣＰＵ１４から認証コマンドが送られるとこれを受信する（Ｓ２９０４）。この認証コマンドは、サブＣＰＵ１４において共通鍵ｋ３で暗号化されたものであり、認証チップ１６はこれを共通鍵ｋ３で復号化する。
【００８５】
続いて、認証チップ１６はハッシュ値を求める計算を行い（Ｓ２９０５）、その結果をサブＣＰＵ１４から送られてきたデータと比較する（Ｓ２９０６）。そして、一致していれば、正常である旨の応答コードを生成し（Ｓ２９０７）、一致していなければ、異常である旨の応答コードを生成する（Ｓ２９０８）。そしていずれも場合も、図１９（２）下段にデータフォーマットを示した認証応答用の電文のためのハッシュ値の計算を行い（Ｓ２９０９）、これがえられたら共通鍵ｋ３で暗号化してサブＣＰＵ１４へ返送する（Ｓ２９１０）。
【００８６】
図３０は、メインＣＰＵ１０が外部照合手段２２から各チップのＩＤ番号を読み出すようにとの指示を受けた場合の処理を示したフローチャートであり、図３１は、外部照合手段２２における、メインＣＰＵ１０から各チップのＩＤ番号を読み出す際の処理を示したフローチャートである。これまでの説明で明らかなように、メインＣＰＵ１０は、認証チップ１２及びサブＣＰＵ１４のＩＤ番号は保持し格納しているが、認証チップ１６のＩＤ番号については保持していない。
【００８７】
外部照合装置２２は、遊技機に接続すると、メインＣＰＵ１０に対し、図２０（４）上段にそのデータフォーマットを示すＩＤ読み出しコマンドを送信することができる（Ｓ３１０１）。このときの暗号化の共通鍵はｋｘである。メインＣＰＵ１０が、外部照合手段２２からこのＩＤ読み出しコマンドを受信すると（Ｓ３００１）、まず共通鍵ｋｘで復号化してコマンドを解読し、続いて、サブＣＰＵ１４に対して、図１９（３）上段にデータフォーマットを示すサブチップ要求コマンドを、暗号鍵ｋ２で暗号化して送信する（Ｓ３００２）。サブＣＰＵ１４はこれを受信すると、自己が保持する認証チップ１６のＩＤ番号（ＩＤｘ２）を、図１９（３）下段に示すフォーマットの電文を暗号鍵ｋ２で暗号化してメインＣＰＵ１０に送信し、メインＣＰＵ１０はこれを受信する（Ｓ３００３）。
【００８８】
メインＣＰＵ１０は、Ｓ３００３において認証チップ１６のＩＤ番号を取得すると、すべてのチップのＩＤ番号を保持したことになるので、図２０（４）下段にそのデータフォーマットを示したＩＤ読み出し応答の電文を、共通の暗号鍵ｋｘで暗号化して外部照合手段２２に送信する。外部照合手段２２はこれを受信すると（Ｓ３１０２）、これを同じ暗号鍵ｋｘで復号化する。そして、必要に応じて自己のディスプレーに表示し、又はホストコンピュータへ送信する（Ｓ３１０３）。
【００８９】
図３２は、メインＣＰＵ１０、サブＣＰＵ１４、認証チップ１２、そして認証チップ１６の各チップ間で行われる初期化処理及び認証処理を時系列的に表したシーケンス図であり、図３３は、外部照合手段２２によって実行される各チップのＩＤ番号の読み出し処理を時系列的に表したシーケンス図である。いずれのシーケンス図も、時間は同図の上から下へ流れる。これらの図を見ることによって、各チップ間でどのような信号がどういう暗号鍵で暗号化されてどの時点で送受信されるかが一見して理解できる。
【００９０】
図３２から分かるように、遊技機に電源が投入されて最初に行われるのは、初期化処理である。初期化処理が正常に終了すると、各チップ間では認証コマンドの送信及び認証応答が、例えば１秒という周期で繰り返し実行される。これらの処理のうちで一回でも以上が検出された場合にはメインＣＰＵ１０及びサブＣＰＵ１４は動作を停止し、その旨を内部のメモリに記憶しておく。なお、電源電圧の低下等で不正使用がなくても初期化や認証が正常に行えない場合を考慮して、例えば所定の回数異常を検出した場合のみメインＣＰＵ１０及びサブＣＰＵ１４は動作を停止するようにしてもよい。
【００９１】
以上説明したように、電源投入時にメインＣＰＵ１０、サブＣＰＵ１４、認証チップ１２、認証チップ１６の間で初期化処理を行い、その後周期的にこれらのチップの間で認証処理を実行するようにし、しかも認証チップ１２及び１６に対して上述のように耐タンパ性を付与したことにより、不正集団が何らかの方法で正規のＣＰＵを入手し、これを偽造ＣＰＵ及び偽造プログラム等を仕込んだ偽造基板に載せ替え、これを遊技機の正規の基板と差し替えることにより、電源投入時のセキュリティチェックだけは本来のＣＰＵに実行させ、実際のゲーム動作はこの偽造ＣＰＵ又は偽造プログラム等に制御を行わせ、改竄したプログラム又はデータに基づいて不正遊技者に有利なように遊技機を動作させるという不正行為を行おうとしても、認証チップとの間の認証処理が実行できないためいずれかのＣＰＵがその動作を停止し、遊技機はそれ以降の動作を続行できなくなる。また、メインＣＰＵ１０と認証チップ１２、サブＣＰＵ１４と認証チップ１６を対の状態で偽造基板に載せ替えようとしても、認証チップ１２（１６）を取り外した時点で適正に動作しなくなるため、偽造基板にこれらを対の状態で載せ替える不正行為を有効に封じることができる。
【００９２】
なお、上記の実施形態では、メインＣＰＵ１０、サブＣＰＵ１４、認証チップ１２及び１４にそれぞれに、各チップを唯一の存在として識別することができる固有のＩＤ番号が格納されている場合について説明したが、この番号は必ずしも各チップ固有のものである必要はなく、各チップ間の通信においてお互いを認識し合うことができるものであれば、任意に付される番号であってもよい。
【００９３】
また、上記の実施形態では、遊技機の電源投入時に毎回初期化処理を行う場合について説明したが、初期化処理については、例えば遊技機の工場出荷前の検査時や遊技ホールに設置される際など任意の時点に電源が投入された際に１回だけ行うようにし、それ以降は認証処理のみを行う構成としてもよい。
【図面の簡単な説明】
【００９４】
【図１】遊技場（ホール）ごとに遊技機の情報をオンラインで一元管理する遊技機管理システムのネットワーク構成を示す図である。
【図２】図１に示した各遊技場Ａ、Ｂ、Ｃ、・・・におけるネットワーク構成を示した図である。
【図３】遊技機用制御基板であるメイン基板とサブ基板の構成をやや詳しく示した図である。
【図４】遊技機用制御基板であるメイン基板とサブ基板の構成をやや詳しく示した図である。
【図５】遊技機用制御基板であるメイン基板とサブ基板の構成をより詳しく示した図である。
【図６】遊技機用制御基板であるメイン基板とサブ基板の構成をより詳しく示した図である。
【図７】遊技機用制御基板であるメイン基板とサブ基板の構成をより詳しく示すとともに、認証チップとメインチップとの間の配線接続を示した図である。
【図８】認証チップの実装方法の一実施例示した断面図である。
【図９】図８の認証チップの実装方法を詳細に示した斜視図である。
【図１０】認証チップの実装方法の他の実施例を示した断面図である。
【図１１】認証チップの実装方法のさらに別の実施例を示した断面図である。
【図１２】メインＣＰＵ１０内部の構成を示すブロック図である。
【図１３】サブＣＰＵ１４の構成を示すブロック図である。
【図１４】通信回路４０、４１の構成を示すブロック図である。
【図１５】通信回路４０、４１の構成を示すブロック図である。
【図１６】認証チップ１２及び１６の構成の一例を示すブロック図である。
【図１７】認証チップ１２及び１６の構成の一例を示すブロック図である。
【図１８】メインＣＰＵ１０、メインＣＰＵ１０用の認証チップ１２、サブＣＰＵ１４、サブＣＰＵ１４用の認証チップ１６がそれぞれ保有する情報と、各チップ間の相互認証関係を示した図である。
【図１９】種通信電文のデータフォーマットを示した図である。
【図２０】種通信電文のデータフォーマットを示した図である。
【図２１】メインＣＰＵ１０とサブＣＰＵ１４の間で初期化処理の際に互いのＩＤ番号をやり取りする通信を行う場合の暗号化について説明した図である。
【図２２】メインＣＰＵ１０とサブＣＰＵ１４の間で相互認証のための通信を行う場合の暗号化について説明した図である。
【図２３】ＡＣＫ／ＮＡＫにより電文の到達を確認する方式を説明する図である。
【図２４】電源が投入された後最初にメインＣＰＵ１０により実行される初期化処理及びセキュリティチェック処理を示したフローチャートである。
【図２５】メインＣＰＵ１０による認証チップ１２及びサブＣＰＵ１４に対して実行する認証処理のフローチャートである。
【図２６】電源が投入された後に実行されるサブＣＰＵ１４における初期化処理及びセキュリティチェック処理を示したフローチャートである。
【図２７】サブＣＰＵ１４における認証処理のフローチャートである。
【図２８】認証チップ１２における初期化処理及び認証処理を示したフローチャートである。
【図２９】認証チップ１６における初期化処理及び認証処理を示したフローチャートである。
【図３０】メインＣＰＵ１０が外部照合手段２２から各チップのＩＤ番号を読み出すようにとの指示を受けた場合の処理を示したフローチャートである。
【図３１】外部照合手段２２におけるメインＣＰＵ１０から各チップのＩＤ番号を読み出す際の処理を示したフローチャートである。
【図３２】メインＣＰＵ１０、サブＣＰＵ１４、認証チップ１２、そして認証チップ１６の各チップ間で行われる初期化処理及び認証処理を時系列的に表したシーケンス図である。
【図３３】外部照合手段２２によって実行される各チップのＩＤ番号の読み出し処理を時系列的に表したシーケンス図である。
【符号の説明】
【００９５】
５  メイン基板
７  サブ基板
１０  メインＣＰＵ
１２  認証チップ
１４  サブＣＰＵ
１６  認証チップ
１８  台検査装置
２０  外部通信手段
２２  外部照合手段
２４  導線
２６  上部導体
２８  接着剤
３０  配線パターン
３２  証紙カバー
３４  ワイヤ
４０  通信回路
４１  通信回路
４２  Ｒ／Ｆ回路
【図１】
2007089942.tif 000003
【図２】
2007089942.tif 000004
【図３】
2007089942.tif 000005
【図４】
2007089942.tif 000006
【図５】
2007089942.tif 000007
【図６】
2007089942.tif 000008
【図７】
2007089942.tif 000009
【図８】
2007089942.tif 000010
【図９】
2007089942.tif 000011
【図１０】
2007089942.tif 000012
【図１１】
2007089942.tif 000013
【図１２】
2007089942.tif 000014
【図１３】
2007089942.tif 000015
【図１４】
2007089942.tif 000016
【図１５】
2007089942.tif 000017
【図１６】
2007089942.tif 000018
【図１７】
2007089942.tif 000019
【図１８】
2007089942.tif 000020
【図１９】
2007089942.tif 000021
【図２０】
2007089942.tif 000022
【図２１】
2007089942.tif 000023
【図２２】
2007089942.tif 000024
【図２３】
2007089942.tif 000025
【図２４】
2007089942.tif 000026
【図２５】
2007089942.tif 000027
【図２６】
2007089942.tif 000028
【図２７】
2007089942.tif 000029
【図２８】
2007089942.tif 000030
【図２９】
2007089942.tif 000031
【図３０】
2007089942.tif 000032
【図３１】
2007089942.tif 000033
【図３２】
2007089942.tif 000034
【図３３】
2007089942.tif 000035