説明

電子機器、主制御基板、周辺基板、認証方法および認証プログラム

【課題】高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を備えた電子機器を提供すること。
【解決手段】主制御基板310は、周辺基板320に送信する制御コマンドが所定の制御コマンドである場合、主制御基板310を認証するための認証コードと、主制御基板310の動作検査値として連続して出力されたパケット情報を含んだ同期コードをそれぞれ生成し、認証コードと同期コードとを制御コマンドに付加する。コードが付加された制御コマンドは、周辺基板320に送信される。周辺基板320は、制御コマンドを受信すると、制御コマンドに付加された認証コードを用いて主制御基板310を認証し、同期コードを用いて主制御基板310の動作順序を認証する。そして、認証コードによる認証と同期コードによる認証との双方が成立した場合に、主制御基板310が正しい制御コマンドを出力していると認証する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、複数の基板を備え、これらの基板間の通信の認証をおこなう電子機器と、主制御基板、周辺基板、認証方法および認証プログラムに関する。
【背景技術】
【0002】
従来、複数の基板を備えた電子機器において、これら各基板に対する不正を防止するための様々な技術が提案されている。複数の基板を備えた電子機器とは、たとえば、ぱちんこ遊技機などがある。ぱちんこ遊技機には、電子機器全体の動作を司る主制御基板と、電子機器の各部の動作をおこなう被制御基板(周辺基板)とを備えている。この主制御基板は、周辺基板に制御コマンドを含む制御信号を出力し、その他の周辺基板は、主制御基板から送信された制御信号にしたがって動作を実行する機能を備えている。
【0003】
このような構成の電子機器の場合、主制御基板に対する不正としては、たとえば、正規の主制御基板を不正な制御基板に取り替えたり、主制御基板がおこなう処理を規定したプログラムコードを改ざんしたりといった手法がある。このような不正を防止するため、たとえば、主制御基板内に搭載されたROMに記録されているプログラムデータをROMチェッカによってチェックして、ROMの不正交換などを防止する技術が提案されている(たとえば、下記特許文献1参照。)。
【0004】
また、他の技術では、主制御基板のプログラムカウンタの値(PC値)や主制御基板内の所定の機能部の処理時間を計測した計測値に基づいたチェック符号を生成して周辺基板へ送信する。そして、周辺基板では、受信したチェック符号を解析し、解析結果が正常でない場合には、周辺基板上の動作を停止するといった機能を備えた遊技機も提供されている(たとえば、下記特許文献2参照。)。
【0005】
【特許文献1】特開平11−333108号公報
【特許文献2】特開平11−276699号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上述した従来技術を用いた場合、プログラムデータの改ざんは検知できるが、正規の主制御基板と、被制御部となる周辺基板との間に不正な制御基板が接続されてしまうと、この不正な制御基板から出力される不正な制御信号による不正制御を防止することができない。
【0007】
図13は、従来技術による不正防止技術の概要を示す説明図である。また、図14は、不正な制御基板の挿入例を示す説明図である。ここで、図13、14を用いて不正な制御基板による不正制御について具体的に説明する。図13に示すように、通常、正規の主制御基板1301は、周辺基板1302に対して正規の制御信号RSを出力して、周辺基板1302の動作を制御する。また、正規の主制御基板1301には、検査用ポート1303が設けられている。この検査用ポート1303から正規の主制御基板1301の内部に設けられたROMなどに記録されたプログラムデータを検査して、正規の主制御基板1301に不正がおこなわれていないかを検査する。
【0008】
ところが、図14に示すように、周辺基板1302の不正制御をおこなうために、正規の主制御基板1301と周辺基板1302との間に不正な制御基板1401が挿入されてしまう場合がある。この不正な制御基板1401は、正規の主制御基板1301から出力された正規の制御信号RSを破棄または無視し、替わりに不正な制御信号FSを周辺基板1302に出力する。
【0009】
上記特許文献1の技術の場合、周辺基板1302は、入力された信号が正規の制御信号RSであるか不正な制御信号FSであるかを判別することができない。したがって、周辺基板1302に不正な制御信号FSが入力された場合には、不正操作を検出できず、不正な制御信号FSの制御内容に応じた動作をおこなってしまうという問題があった。
【0010】
また、検査用ポート1303は正規の主制御基板1301にのみ設けられている。したがって、検査用ポート1303を用いた検査をおこなっても、この検査結果は、正規の主制御基板1301内の処理の評価に過ぎず、主制御基板1301と周辺基板1302との間の信号を検査することはできない。したがって、検査用ポート1303を備えていても、不正な制御基板1401による不正制御を検知することができないという問題があった。
【0011】
また、図15は、信号切替回路による信号切り替えの概要を示す説明図である。図15のように、不正な制御基板1401のなかには、不正な制御信号FSを出力するための不正な処理をおこなうCPU1402に加えて、信号切替回路1403が搭載されていることがある。信号切替回路1403が搭載されている場合、不正な制御基板1401は、正規のCPU1304から出力される制御信号RSの初期診断や検査動作時には、正規の制御信号RSを出力させ、その他の動作時には、不正な制御信号FSを出力させるように切り替えることができる。
【0012】
すなわち、信号切替回路1403によって検査用ポート1303を用いた検査や、CPUの動作診断をおこなうときだけ正規のCPU1304から出力された正規の制御信号RSを出力させることができる。したがって、周辺基板1302は検査用ポート1303や、動作診断などの不正防止技術を利用しても不正な制御信号FSの出力を検出できないという問題があった。
【0013】
また、上述の問題への対策案として、上記特許文献2のように主制御基板のプログラムカウンタの値(PC値)や主制御基板内の所定機能部の処理時間を計測した計測値に基づいたチェック符号を利用して主制御基板から送信された制御信号の認証をおこなう技術がある。しかしながら、実行命令の格納位置を示すPC値や、所定の機能部の処理時間を計測した情報からチェック符号を生成した場合、主制御基板によってどのような命令が実行されたかといった具体的な処理内容に関する情報を送信していることになる。
【0014】
上述のような情報が傍受された場合、主制御基板によって実行されている処理ルーチンの処理時間や、実行命令の格納位置を示すPC値からプログラムを解析するためのヒントを与えてしまうなど、重要情報を流出してしまう可能性があるというリスクがあった。
【0015】
この発明は、上述した従来技術による問題点を解消するため、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を備えた電子機器、主制御基板、周辺基板、認証方法および認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
上述した課題を解決し、目的を達成するため、請求項1の発明にかかる電子機器は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、前記主制御部は、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段と、前記制御コマンドを前記周辺部に送信する送信手段と、を備え、前記周辺部は、前記送信手段によって送信された前記制御コマンドを受信する受信手段と、前記受信手段によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証手段と、前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【0017】
この請求項1の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。また、主制御部は、周辺部における認証処理のために、あらたに認証コードと同期コードとを生成しているが、これらのコードは制御コマンドに付加される。したがって、第三者が主制御部からの出力信号を観察した場合、主制御部からは、不正防止機能を含まない通常の制御信号である制御コマンドのみが出力されているようにみせることができる。
【0018】
また、請求項2の発明にかかる電子機器は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、前記主制御部は、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信手段と、を備え、前記周辺部は、前記送信手段によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信手段と、前記受信手段によって受信された認証コードを用いて、前記主制御部を認証する基板認証手段と、前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【0019】
この請求項2の発明によれば、主制御部自身を認証するための認証コードと、主制御部から周辺部に所定の制御コマンドが送信される場合に、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。
【0020】
また、請求項3の発明にかかる電子機器は、請求項1または2に記載の発明において、前記同期コード生成手段は、前記認証コード生成手段によって前記認証コードの生成に利用される情報の一部もしくはすべてと、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって同期コードを生成し、前記動作認証手段は、前記基板認証手段によって認証された認証コードと、前記受信手段によって受信された同期コードとを用いた所定の演算の演算結果を、前記制御コマンド送信時の前記主制御部の動作の連続性を認証するための検査値として、前記動作順序の認証をおこなうことを特徴とする。
【0021】
この請求項3の発明によれば、主制御部では、認証コードの生成に利用した情報を含んだ同期コードが生成される。すなわち、周辺基板によって同期コードを用いた認証をおこなうには認証コードを参照しなければならない。したがって、周辺基板では、認証コードの認証が成功してはじめて同期コードの認証をおこなうことができる。
【0022】
また、請求項4の発明にかかる電子機器は、請求項1または2に記載の発明において、前記認証コード生成手段は、前記同期コード生成手段によって前記同期コードの生成に利用される情報の一部もしくはすべてと、当該主制御部の誤り検査値とを用いた所定の演算によって認証コードを生成し、前記基板認証手段は、前記動作認証手段によって認証された同期コードと、前記受信手段によって受信された認証コードとを用いた所定の演算の演算結果を前記主制御部の誤り検査値として、前記主制御部の認証をおこなうことを特徴とする。
【0023】
この請求項4の発明によれば、主制御部では、同期コードの生成に利用した情報を含んだ認証コードが生成される。すなわち、周辺基板によって認証コードを用いた認証をおこなうには同期コードを参照しなければならない。したがって、周辺基板では、同期コードの認証が成功してはじめて認証コードの認証をおこなうことができる。
【0024】
また、請求項5の発明にかかる電子機器は、請求項1〜4のいずれか一つに記載の発明において、前記制御コマンド認証手段は、前記認証コードもしくは前記同期コードを用いて、前記制御コマンド送信時の前記主制御部の動作順序に関する情報のうち、指定された情報が認証された場合に、前記主制御部が正しい制御コマンドを出力していると認証することを特徴とする。
【0025】
この請求項5の発明によれば、周辺部において、主制御部にかかる情報のうち、どの情報が認証された場合に、正しい制御コマンドが出力されていると認証するかを任意に設定することができる。
【0026】
また、請求項6の発明にかかる主制御基板は、電子機器に搭載され、被制御部となる周辺基板に対して制御コマンドを送信する主制御基板であって、前記周辺基板に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御基板を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御基板の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記制御コマンドとともに、前記認証コード生成手段および前記同期コード生成手段によって生成された各コードを前記周辺基板に送信する送信手段と、を備えることを特徴とする。
【0027】
また、請求項7の発明にかかる主制御基板は、請求項6に記載の発明において、前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段とを備え、前記送信手段は、前記付加手段によって前記認証コードと前記同期コードとが付加された制御コマンドを前記周辺基板に送信することを特徴とする。
【0028】
この請求項6、7の発明によれば、被制御部である周辺基板によって主制御基板を認証させるため、主制御基板では、任意の認証方式のなかから任意の数の認証方式のコードを生成し、制御コマンドとともに周辺基板に送信することができる。また、請求項10の場合は、制御コマンドに各コード(認証コード、同期コード)を付加しているため、主制御基板から送信した情報を第三者に傍受された場合であっても、従来と同じように、制御コマンドのみが送信されているようにみせることができる。
【0029】
また、請求項8の発明にかかる周辺基板は、電子機器に搭載され、主制御基板から送信された制御コマンドに応じた処理をおこなう周辺基板であって、前記主制御基板から送信された前記制御コマンドとともに、前記認証コードおよび前記同期コードを受信する受信手段と、前記受信手段によって受信された認証コードを用いて、前記主制御基板を認証する基板認証手段と、前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御基板の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御基板が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【0030】
また、請求項9の発明にかかる周辺基板は、請求項8に記載の発明において、前記受信手段は、前記制御コマンドとともに、前記認証コードと前記同期コードとを受信しなかった場合、前記制御コマンドに前記認証コードと前記同期コードとが付加されているか否かを判断し、前記認証コードと前記同期コードとが付加されていると判断された場合に、前記基板認証手段と、前記動作認証手段とは、前記制御コマンドに付加されている認証コードと同期コードとを用いて、それぞれ認証をおこなうことを特徴とする。
【0031】
この請求項8、9の発明によれば、制御コマンドの受信とともに、制御コマンドに付加された複数のコード(認証コードや、同期コード)を取得した場合、もしくは制御コマンドと同時に送信された複数のコード(認証コードや、同期コード)を受信した場合、これらの各コードを用いて、制御コマンドの送信元である主制御基板の動作順序の認証をおこなうことができる。さらに、この認証結果を利用して制御コマンドの正当性を認証することもできる。
【0032】
また、請求項10の発明にかかる認証方法は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、前記主制御部において、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、前記認証コード生成工程によって生成された認証コードと、前記同期コード生成工程によって生成された同期コードとを前記制御コマンドに付加する付加工程と、前記制御コマンドを前記周辺部に送信する送信工程と、を含み、前記周辺部において、前記送信工程によって送信された前記制御コマンドを受信する受信工程と、前記受信工程によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証工程と、前記受信工程によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、を含むことを特徴とする。
【0033】
この請求項10の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。また、主制御部は、周辺部における認証処理のために、あらたに認証コードと同期コードとを生成しているが、これらのコードは制御コマンドに付加する。したがって、第三者が主制御部からの出力信号を観察した場合、主制御部からは、不正防止機能を含まない通常の制御信号である制御コマンドのみが出力されるようにみせることができる。
【0034】
また、請求項11の発明の発明にかかる認証方法は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、前記主制御部において、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信工程と、を含み、前記周辺部において、前記送信工程によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信工程と、前記受信工程によって受信された認証コードを用いて、前記主制御部を認証する基板認証工程と、前記受信工程によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、を含むことを特徴とする。
【0035】
この請求項11の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。
【0036】
また、請求項12の発明にかかる認証プログラムは、請求項10または11に記載の認証方法をコンピュータに実行させることができる。
【発明の効果】
【0037】
本発明にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムによれば、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能とを実現できるという効果を奏する。
【発明を実施するための最良の形態】
【0038】
(実施の形態)
以下に添付図面を参照して、この発明にかかる電子機器の機能を搭載した遊技機と、この遊技機に搭載されている複数の基板間(主制御基板および周辺基板)の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムの好適な実施の形態を詳細に説明する。
【0039】
(遊技機の基本構成)
図1は、本発明にかかる電子機器を搭載したぱちんこ遊技機の構成の一例を示す説明図である。遊技盤101の下部位置に配置された発射部(図2参照)の駆動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。遊技領域103には、図示を省略する複数の釘が設けられ、遊技球を各種の方向に向けて落下させるとともに、落下途中の位置には、遊技球の落下方向を変化させる風車や、入賞口が配設されている。
【0040】
遊技盤101の遊技領域103の中央部分には、図柄表示部104が配置されている。図柄表示部104としては、たとえば液晶表示器(LCD)が用いられる。なお、図柄表示部104としては、LCDに限らずCRTなどを用いることもできる。図柄表示部104の下方には、始動入賞させるための始動入賞口105が配設されている。図柄表示部104の左右には、それぞれ入賞ゲート106が配設されている。
【0041】
入賞ゲート106は、遊技球の通過を検出し、始動入賞口105を一定時間だけ開放させる抽選をおこなうために設けられる。図柄表示部104の側部や下方などには普通入賞口107が配設されている。普通入賞口107に遊技球が入賞すると、普通入賞時の賞球数(たとえば10個)の払い出しをおこなう。遊技領域103の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口108が設けられている。
【0042】
上述した図柄表示部104は、特定の入賞口に遊技球が入賞したとき(始動入賞時)に、複数の図柄の表示の変動を開始させ、所定時間後に図柄が停止する。この停止時に特定図柄(たとえば「777」)に揃ったとき、大当たり状態となる。大当たり状態のとき、下方に位置する大入賞口109が一定の期間開放を所定ラウンド(たとえば15ラウンド)繰り返し、入賞した遊技球に対応した賞球数を払い出す。
【0043】
図2は、ぱちんこ遊技機の制御部の内部構成を示すブロック図である。制御部200は、複数の制御部により構成されている。図示の例では、主制御部201と、演出制御部202と、賞球制御部203とを有する。主制御部201は、ぱちんこ遊技機の遊技にかかる基本動作を制御する。演出制御部202は、遊技中の演出動作を制御する。賞球制御部203は、払い出す賞球数を制御する。
【0044】
主制御部201は、ROM212に記憶されたプログラムデータに基づき、遊技内容の進行に伴う基本処理を実行するCPU211と、CPU211の演算処理時におけるデータのワークエリアとして機能するRAM213、各検出部221〜224から各種データを受信するとともに、演出制御部202および賞球制御部203への各種データの送信をおこなうインタフェース(I/F)214などを備えて構成される。主制御部201は、たとえばいわゆる主制御基板によってその機能を実現する。なお、上述したROM212に記憶されたプログラムデータとは、プログラムコードや書き換え不可能な固定データを意味する。
【0045】
この主制御部201の入力側には、始動入賞口105に入賞した入賞球を検出する始動入賞口検出部221と、入賞ゲート106を通過した遊技球を検出するゲート検出部222と、普通入賞口107に入賞した遊技球を検出する普通入賞口検出部223と、大入賞口109に入賞した入賞球を検出する大入賞口検出部224とがI/F214を介して接続されている。これらの検出部としては、近接スイッチなどを用いて構成できる。
【0046】
この主制御部201の出力側には、大入賞口開閉部231が接続され、この大入賞口開閉部231の開閉を制御する。大入賞口開閉部231は、大当たり時に大入賞口109を一定期間開放する機能であり、ソレノイドなどを用いて構成される。この大当たりは、生成した乱数(大当たり判定用乱数)に基づいて所定の確率(たとえば300分の1など)で発生するようあらかじめプログラムされている。
【0047】
演出制御部202は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてROM242に記憶されたプログラムデータを実行して遊技中における演出制御をおこなう。この演出制御部202は、演出処理を実行するCPU241と、CPU241の演算処理時におけるデータのワークエリアとして機能するRAM243、図柄表示部104に表示させる画像データを書き込むVRAM244、主制御部201からの各種データの受信およびランプ制御部251や音声制御部252への各種データの送信をおこなうインタフェース(I/F)245などを備えて構成される。演出制御部202は、たとえばいわゆる演出基板によってその機能を実現する。また、演出制御部202の出力側には、上述した図柄表示部(LCD)104、ランプ制御部251、音声制御部252がI/F245を介して接続されている。
【0048】
賞球制御部203は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてROM282に記憶されたプログラムデータを実行して賞球制御をおこなう。この賞球制御部203は、賞球制御の処理を実行するCPU281と、CPU281の演算処理時におけるデータのワークエリアとして機能するRAM283、主制御部201からの各種データの受信および発射部292との各種データの送受信をおこなうインタフェース(I/F)284などを備えて構成される。賞球制御部203は、たとえばいわゆる賞球基板によってその機能を実現する。
【0049】
賞球制御部203は、接続される払出部291に対して入賞時の賞球数を払い出す制御をおこなう。また、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。払出部291は、遊技球の貯留部から所定数を払い出すためのモータなどからなる。賞球制御部203は、この払出部291に対して、各入賞口(始動入賞口105、普通入賞口107、大入賞口109)に入賞した遊技球に対応した賞球数を払い出す制御をおこなう。
【0050】
発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサと、遊技球を発射させるソレノイドなどを備える。賞球制御部203は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイドなどを駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
【0051】
上記構成の主制御部201と、演出制御部202と、賞球制御部203は、それぞれ異なるプリント基板(主制御基板、演出基板、賞球基板)に設けられる。これに限らず、たとえば、賞球制御部203は、主制御部201と同一のプリント基板上に設けることもできる。
【0052】
(ぱちんこ遊技機の基本動作)
上記構成によるぱちんこ遊技機の基本動作の一例を説明する。主制御部201は、各入賞口に対する遊技球の入賞状況を制御コマンドとして賞球制御部203に出力する。賞球制御部203は、主制御部201から出力された制御コマンドに応じて、入賞状況に対応した賞球数の払い出しをおこなう。
【0053】
また、主制御部201は、始動入賞口105に遊技球が入賞するごとに、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、図柄表示部104の図柄を変動表示させ、停止させることを繰り返す。大当たりの発生が決定しているときには、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、所定の図柄で揃えて停止させる。このとき同時に、大入賞口109を開放する制御をおこなう。演出制御部202は、大当たり発生期間中、および大当たり発生までの間のリーチ時や、リーチ予告時などには、図柄表示部104に対して、図柄の変動表示に加えて各種の演出表示をおこなう。このほか、各種役物に対して特定の駆動をおこなわせたり、ランプ261の表示状態を変更させたりといった演出をおこなう。
【0054】
そして、大当たり発生時には、大入賞口109が複数回開放される。1回の開放が1ラウンドとして、たとえば15回のラウンドが繰り返し実行される。1ラウンドの期間は、遊技球がたとえば10個入賞したとき、あるいは所定期間(たとえば30秒)とされている。この際、賞球制御部203は、大入賞口109に対する球技球1個の入賞あたり、たとえば15個の賞球数で払い出しをおこなう。大当たり終了後は、この大当たり状態が解除され、通常の遊技状態に復帰する。
【0055】
(主制御基板および周辺基板の認証処理にかかる機能的構成)
一般的なぱちんこ遊技機では、遊技者からの遊技球の投入に応じて上述したような基本動作を繰り返す。本実施の形態では、このようなぱちんこ遊技機に対して何らかの方法で不正な制御基板が挿入され、遊技者に提供された場合であっても、遊技時に不正な制御基板から出力された不正な制御コマンド(制御信号)を検知する機能を備えている。具体的には、主制御部201から送信された制御コマンドの認証をおこない、この認証結果に応じて、不正な制御コマンドを検知する。以下、この制御コマンドを認証するための機能について説明する。
【0056】
図3は、主制御基板および周辺基板の認証処理にかかる機能的構成を示すブロック図である。図3において、主制御基板310は、図2にて説明した主制御部201によって構成されている。また、周辺基板320は、図2にて説明した演出制御部202あるいは、賞球制御部203によって構成され、本発明にかかる認証処理をおこなう。
【0057】
・主制御基板の機能的構成
主制御基板310は、周辺基板320を動作させるための制御コマンドを送信する機能部であり、制御コマンド出力部311と、認証コード生成部312と、同期コード生成部313と、付加部314と、送信部315とによって構成される。
【0058】
制御コマンド出力部311には、周辺基板320に送信する制御コマンドのデータ(制御コマンドデータ)が格納されている。そして、制御コマンド出力部311は、所定のプログラムコードにしたがって、格納されている制御コマンドの中から周辺基板320に送信する制御コマンドを選択して、付加部314に出力する。
【0059】
認証コード生成部312は、周辺基板320に送信する制御コマンドが所定の制御コマンドである場合、主制御基板310を認証するための認証コードを生成する。周辺基板320では、主制御基板310の正当性を認証するための認証コードを用いて認証処理をおこなう。
【0060】
認証コードは、主制御基板310を認証者が正規の主制御基板であると認証するための情報である。具体的には、たとえば、主制御部201(図2参照)に格納されたプログラムデータのすべて、もしくは一部から誤り検査値を生成し、この誤り検査値に所定の演算を施した値を認証コードとして利用する。なお、誤り検査値とは、プログラムデータのすべて、もしくは一部からハッシュ関数による演算やパリティチェック、巡回冗長検査(Cyclic Redundancy Check:CRC)、チェックサムなどの誤り検出演算をおこなって得られた値である。
【0061】
上述のように、認証コード生成部312は、主制御基板310をあらわす独自の情報から認証コードを生成する。たとえば、正規の主制御基板310が不正な基板に交換されたり、正規の主制御基板310と周辺基板320との間に不正な基板が取り付けられた場合であっても、不正な基板では、主制御基板310を認証する認証コードを生成するのは非常に困難である。
【0062】
したがって、主制御基板310の認証コードによる認証が失敗した場合には、不正な基板による制御がおこなわれようとしていることが検知できる。また、今回送信する制御コマンドのデータ自身や付随データを利用して認証コードを生成してもよい。ここで述べている付随データとは、制御コマンドの内容に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドに基づく処理に必要なデータである。この場合、不正な制御基板による認証コードの再利用を防止して、より確実に周辺基板320への不正制御を検出させることができる。
【0063】
同期コード生成部313は、制御コマンド出力部311における制御コマンドの送信に伴って、制御コマンド送信時の主制御基板310の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する。生成された同期コードは、付加部314に出力される。
【0064】
ここで、同期コードについて詳しく説明する。同期コードは、主制御基板310による制御コマンドの送信が継続して実行されていることを確認するための情報である。上述したように、同期コードは、主制御基板310の制御コマンドの生成に伴って、連続した出力タイミングで出力されたパケット情報が含まれている。この連続したタイミングで出力されたパケット情報は、所定の間隔の相関関係を有している。したがって、後述する動作認証部323では、この複数のパケット情報同士の相関関係を求めることによって主制御基板310の動作の継続性を認証する。なお、同期コードは、パケット情報として取得した値をそのまま利用してもよいし、これらの値に所定の演算を施して暗号化した値を利用してもよい。
【0065】
このように、所定の制御コマンドが出力された際に同期コードを参照することによって、主制御部310にて実行されている動作が継続しておこなわれているか否かを簡易的に判定することができる。したがって、図15にて説明したような、不正な制御基板1401の内部に信号切替回路1403が搭載されてしまうような不正行為への防御策を講じることができる。具体的には、同期コードによって認証した動作順序が継続した動作であると判定できなければ、主制御基板310から送信された制御コマンド以外の不正な制御基板から送信された制御コマンドであると判断し、不正制御を検知することができる。
【0066】
付加部314は、認証コード生成部312によって生成された認証コードを制御コマンド出力部311から出力された制御コマンドに付加する。同じく、付加部314は、同期コード生成部313によって生成された同期コードを制御コマンドに付加する。各コードが付加された制御コマンドは、付加部314から送信部315に出力される。
【0067】
また、送信部315は、認証コードと同期コードとが付加された制御コマンドを周辺基板320に送信する。なお、本実施の形態において「制御コマンドを送信する」とは、「制御コマンドデータを含む制御信号を送信する」との意味であり、たとえば認証コードや、その他上述したような付随データの有無は考慮しないものとする。
【0068】
また、上述した認証コード生成部312や、同期コード生成部313では、それぞれ独立して各コードを生成しているが、コード生成の際に、一方のコードを利用してもよい。たとえば、認証コード生成部312は、同期コード生成部313によって同期コードを生成する際に利用する情報(たとえば、計時時間の情報)の一部もしくはすべてと、主制御部310の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって認証コードを生成してもよい。また、逆の手順を用いて、同期コード生成部313が、認証コード生成部312によって認証コードを生成する際に利用する情報(たとえば、誤り検査値)の一部もしくはすべてと、制御コマンド送信時の主制御基板310の動作順序の検査値とを用いた所定の演算によって同期コードを生成してもよい。
【0069】
なお、上述した構成では、認証コードと、同期コードとが制御コマンドに付加される構成を説明したが、認証コードと同期コードとを制御コマンドを認証するための認証データとして、制御コマンドと別々に送信するような構成であってもよい。この場合は、送信部316からは、制御コマンドと、各コードとのそれぞれを送信する。
【0070】
また、上述した認証コードと、同期コードとを制御コマンドに付加して送信する手法と、認証コードと同期コードとを制御コマンドと別々に送信する手法とのいずれの場合も、送信する制御コマンドのデータ自身や付随データを利用して認証コードと同期コードとを生成してもよい。ここで述べている付随データとは、制御コマンドの内容に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドに基づく処理に必要なデータである。このような付随データを利用した場合、不正な制御基板による認証コードの再利用を防止することができる。したがって、より確実に周辺基板320への不正制御を検出させることができる。
【0071】
・周辺基板の機能的構成
つぎに、周辺基板320の機能的構成について説明する。図3のように、周辺基板320は、受信部321と、基板認証部322と、動作認証部323と、制御コマンド認証部324とによって構成される。
【0072】
受信部321は、主制御基板310の送信部316によって送信された制御コマンドを受信する。なお、上述したように、制御コマンドと別に認証コードや同期コードが送信された場合には、制御コマンドと、この制御コマンドの認証データとして認証コードや、同期コードを受信する。
【0073】
ここで、制御コマンドに認証コードや同期コードが付加されている場合の受信部321の機能について、より詳細に説明する。制御コマンドに認証コードや同期コードが付加されている場合、受信部321では、制御コマンドに各種コードが付加されているか否かの判断をおこなわなければならない。
【0074】
通常、主制御基板310では、制御コマンドに認証コードや同期コードを付加する場合、任意のルールにしたがった付与処理がおこなわれる。たとえば、制御コマンドを8ビットとした場合のルールとして、主制御基板310は、上位側の5ビットを実際の制御コマンド用に割り当て、下位側の3ビットを認証コードや同期コードの付与用に割り当てたものを制御コマンドとして送信する。
【0075】
上述のような送信処理の場合、周辺基板320の受信部321は、受信した制御コマンドの下位側の3ビットを参照して、認証コードや同期コードが付与されているか否かを判断するように設定する。そして、受信した制御コマンドに認証コードや同期コードが付与されていた場合には、その認証コードもしくは同期コードを用いて下記に示す処理によって制御コマンドの認証をおこなう。
【0076】
また、他のルールとして、主制御基板310は、上述のように単純に制御コマンドとその他コード(認証コードや同期コード)のビットを繋ぎ合わせるのではなく、制御コマンドとその他コードとの双方が8ビットの値から構成され、これら8ビットの値を加算したものを認証コードや同期コードが付与された制御コマンドとして送信する。
【0077】
上述のような送信処理の場合、周辺基板320の受信部321は、受信した制御コマンドから、今回主制御基板310から送信される制御コマンドであると期待される制御コマンド(8ビットの値)を減算する。この期待される制御コマンドは、周辺基板320が正規の基板であれば、前回や前々回に受信し、なおかつ、周辺基板320によって認証された(具体的な認証手順は、後述する)制御コマンドから容易に特定することができる。また、リセット直後など、前回や前々回に受信した制御コマンドの記録は蓄積されていない場合は、初期化指示をあらわす制御コマンドが送信されると特定することができる。
【0078】
したがって、周辺基板320の受信部321は、制御コマンド(8ビットの値)を減算後の値を認証コードもしくは同期コードとして下記に示す処理によって制御コマンドの認証をおこなう。なお、このとき、受信した制御コマンドから減算する値を認証コードもしくは同期コードとし、減算後の値が期待される制御コードであるか否かを判定してもよい。
【0079】
基板認証部322は、受信部321によって受信された制御コマンドに付加された認証コードを用いて、主制御基板310を認証する。このとき、認証コードに所定の演算(暗号化)が施されている場合には、主制御基板310の認証コード生成部312の演算処理の内容に応じて、所定の演算をおこない、認証コードを取得する。そして、この認証コードが、主制御基板310をあらわす検査値であった場合、主制御基板310を正規の基板であると認証する。なお、基板認証部322は、受信部321によって直接認証コードを受信した場合には、この認証コードを用いて主制御基板310を認証する。
【0080】
動作認証部323は、受信部321によって受信された制御コマンドに付加された同期コードを用いて、制御コマンド送信時の主制御基板の動作順序を認証する。上述したように、同期コードには連続するタイミングで生成された複数のパケット情報が含まれている。したがって、これら複数のパケット情報の差分を求めることによって、パケット情報同士が所定の相関関係が保たれているか否かを判断することができる。所定の相関関係が保たれている場合には、制御コマンド送信処理が継続性をもっており、他の不正な制御基板から送信された制御コマンドではないため、正しい動作順序であると認証される。
【0081】
ここでも、同期コードに所定の演算が施されている場合には、主制御基板310の同期コード生成部314の演算処理の内容に応じて、所定の演算をおこない、同期コードを取得する。そして、この同期コードが、主制御基板310の動作の継続状態をあらわす検査値であった場合(すなわち、連続した出力タイミングで出力されたパケット情報によって生成されている値である場合)、主制御基板310の動作が正しい順序の動作であると認証する。なお、基板認証部322は、受信部321によって直接同期コードを受信した場合には、この同期コードを用いて主制御基板310の動作順序の認証をおこなう。
【0082】
また、上述の説明では、基板認証部322と、動作認証部323とはそれぞれ独立して認証処理をおこなっているが、認証コードの一部を利用して同期コードを生成している、または、同期コードの一部を利用して認証コードを生成しているような場合には、どちらか一方のコードの認証が終了した後に、もう一方のコードの認証をおこなう。
【0083】
制御コマンド認証部324は、基板認証部322による認証と、動作認証部323による認証との双方が成立した場合に、主制御基板310が正しい制御コマンドを出力していると認証する。ここで、どちらか一方の認証が失敗した場合には、不正な制御基板から不正制御をおこなうための不正な制御コマンド(不正な制御信号)が出力されていると判断され、不正制御が検知される。
【0084】
以上説明したように、被認証者である主制御基板310には、認証者である周辺基板320によって認証処理をおこなうために、認証コードと同期コードとの二種類のコードを生成する機能を備えている。これら、二種類のコードは、所定の制御コマンドの送信と連動して生成される。また、周辺基板320では、送信された二種類のコードを用いてそれぞれ異なる方式で認証をおこなう。そして、双方の認証が成功して、はじめて正しい制御コマンドを受信したと認証する。
【0085】
なお、本実施の形態では、同一の電子機器内に被認証者の主制御基板310と、認証者の周辺基板320とが搭載されている例を挙げているが、異なる電子機器に搭載された主制御基板と周辺基板とが、制御部−被制御部の関係となる場合もある。
【0086】
このような場合、たとえば、被制御部に対して制御コマンドを送信する主制御基板は、被制御部に送信する制御コマンドが所定の制御コマンドである場合、主制御基板および動作内容に関する情報を認証するための認証用のコード(本実施の形態では、認証コードや同期コード)を異なる認証方式で複数個生成するコード生成部と、制御コマンドとともに、複数のコードを被制御部に送信する送信部を備えていればよい。
【0087】
また、制御部から制御コマンドを受信する周辺基板は、主制御基板310から送信された制御コマンドとともに制御部に関する情報を認証する認証方式の異なる複数のコードとを受信する受信部と、受信された複数のコードを用いて、それぞれ主制御部に関する情報を認証するコード認証部と、コード認証部による認証結果に応じて、主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証部とを備えていればよい。
【0088】
(認証処理の手順)
つぎに、図3によって説明した主制御基板310から出力される制御コマンドの認証処理の手順について説明する。上述したように、本実施の形態では、主制御基板310からの制御コマンドの送信に伴い、認証コードと同期コードとの二つのコードが周辺基板320に送信される。周辺基板320では、主制御基板310から送信された二つのコードを利用して受信した制御コマンドが正規の主制御基板310から送信された制御コマンドであるか否かを認証する。以下に、同期コードと認証コードを用いた主制御基板310および周辺基板320それぞれの認証処理の手順について説明する。
【0089】
・制御コマンド送信処理
図4−1は、本発明にかかる主制御基板の制御コマンド送信処理の手順を示すフローチャートである。図4−1のフローチャートにおいて、まず、制御コマンド出力部311から所定の制御コマンドが出力されたか否かを判断する(ステップS411)。ここで、所定の制御コマンドが出力されるまで待ち(ステップS411:Noのループ)、所定の制御コマンドが出力されると(ステップS411:Yes)、制御コマンドが認証コード生成部312に入力され、認証コード生成部312によって主制御基板310を認証するための認証コードを生成する(ステップS412)。
【0090】
また、同期コード生成部313では、ステップS411によって出力された制御コマンドの動作順序に応じた主制御基板310の同期コードを生成する(ステップS413)。認証コードと同期コードとの双方が生成されると、付加部314によって、制御コマンドにステップS412、ステップS413によって生成された各コード(認証コード、同期コード)を付加する(ステップS414)。最後に、送信部315から、制御コマンドを周辺基板320に送信し(ステップS415)、一連の処理を終了する。
【0091】
以上説明した制御コマンド送信処理において、認証コードと同期コードの生成順序は特に限定されないが、上述したように認証コードを用いて同期コードを生成する場合や同期コードを用いて認証コードを生成する場合には、他のコードを生成する際に利用されるコードを先に生成する。
【0092】
・制御コマンド受信処理
図4−2は、本発明にかかる周辺基板の制御コマンド受信処理の手順を示すフローチャートである。図4−2のフローチャートにおいて、まず、受信部321において、制御コマンドを受信したか否かを判断する(ステップS421)。ここで、制御コマンドを受信するまで待ち(ステップS421:Noのループ)、制御コマンドを受信すると(ステップS421:Yes)、制御コード認証部322において、制御コマンドに付加された認証コードを用いて主制御基板310を認証する(ステップS422)。
【0093】
ステップS422の処理において認証が成功したか否かを判断し(ステップS423)、認証が成功した場合(ステップS423:Yes)、ステップS421において受信した制御コマンドに付加された同期コードを用いて主制御基板310の動作順序を認証する(ステップS424)。そして、ステップS424の処理において認証が成功したか否かを判断し(ステップS425)、認証が成功した場合(ステップS425:Yes)、ステップS421において受信した制御コマンドを正しい信号とし認証し(ステップS426)、一連の処理を終了する。
【0094】
なお、ステップS423、ステップS425において、認証が失敗した場合(ステップS423:No,ステップS425:No)、ステップS421において受信した制御コマンドを不正な制御コマンドとして検知して(ステップS427)、一連の処理を終了する。
【0095】
以上説明したように、被認証者である主制御基板310には、認証者である周辺基板320によって認証処理をおこなうために、認証コードと相対時間コードとの二種類のコードを生成する機能を備えている。これら、二種類のコードは、所定の制御コマンドの送信と連動して生成される。また、周辺基板320では、送信された二種類のコードを用いてそれぞれ異なる方式で認証をおこなう。そして、双方の認証が成功して、はじめて正しい制御コマンドを受信したと認証する。
【0096】
なお、本実施の形態では、同一の電子機器内に被認証者の主制御基板310と、認証者の周辺基板320とが搭載されている例を挙げているが、異なる電子機器に搭載された主制御基板と周辺基板とが、制御部−被制御部の関係となる場合もある。
【0097】
このような場合、たとえば、被制御部に対して制御コマンドを送信する主制御基板は、被制御部に送信する制御コマンドが所定の制御コマンドである場合、主制御基板および動作内容に関する情報を認証するための認証用のコード(本実施の形態では、認証コードや相対時間コード)を異なる認証方式で複数個生成するコード生成部と、制御コマンドとともに、複数のコードを被制御部に送信する送信部を備えていればよい。
【0098】
また、制御部から制御コマンドを受信する周辺基板は、制御部から送信された制御コマンドとともに主制御部に関する情報を認証する認証方式の異なる複数のコードとを受信する受信部と、受信された複数のコードを用いて、それぞれ主制御部に関する情報を認証するコード認証部と、コード認証部による認証結果に応じて、主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証部とを備えていればよい。
【0099】
このように、複数のコードを認証データとして、それぞれ認証するような構成であれば、主制御基板310や周辺基板320の処理能力が低い場合であっても、各認証処理を処理負荷の軽いものに設定すれば、認証処理の内容の組み合わせと、認証回数とによって認証強度を高めることができる。また、複数のコードのうち、認証処理の正否を正規の制御コマンドを受信したか否かの判断に利用しないダミーのコードを含めてもよい。このようなダミーのコードを含ませることによって、第三者による認証コードの解析をより困難にすることができる。
【0100】
(認証処理の実施例)
つぎに、主制御基板310と周辺基板320による認証処理の具体的な実施例1〜6について説明する。ここでは、上述したように、主制御基板310から所定の制御コマンドが送信される際の認証コードと同期コードと生成と送信のタイミング、また、周辺基板320による受信と認証のタイミングに限定して説明する。
【0101】
・同期コードの生成および認証
まず、本発明の特徴となっている同期コードの生成と認証について詳細に説明する。同期コードには、主制御基板310によって生成されるパケット情報のうち少なくとも2つの(2回分の)連続する出力タイミングによって出力されたパケット情報が含まれている。ここで述べている出力タイミングとは、主制御基板310の処理速度に応じた出力タイミングである。すなわち、1クロックタイミングごとにパケット情報を出力可能であれば、1クロックタイミングごとが出力タイミングとなり、4クロックタイミングごとにパケット情報を出力可能であれば、4クロックタイミングごとが出力タイミングとなる。
【0102】
このような連続した出力タイミングで出力された2つのパケット情報同士の相関情報から同期状態を検証する。たとえば、1回目のパケット(以下、「パケット1」という)の基本値=0x03、2回目のパケット(以下、「パケット2」という)の基本値=0x05であり、パケット1とパケット2との相関条件(認証成立条件)は「+2」となる。そして、主制御基板から送信するパケット1の検査値は、基本値のままの0x03となり、パケット2の検査値は、パケット1+パケット2すなわち、0x03+0x05となり、「0x08」が送信される。
【0103】
そして、周辺基板320において受信するパケット1は、基本値のままの0x03となり、パケット2は、0x08となる。そして、パケット2の基本値を算出するため、受信したパケット2からパケット1を引き、0x08−0x03=0x05を求める。
【0104】
パケット1とパケット2との双方の基本値が求まると、2つのパケットの相関関係を求める。すなわち、パケット2基本値−パケット1基本値=0x05−0x03となり、相関値は0x02となる。この値は、パケット1の基本値とパケット2の基本値との相関条件(+2であること)を満たすので認証成立と判断される。
【0105】
なお、パケット1とパケット2を用いた演算処理において、演算結果が桁あふれしないように桁数を調整してもよいし、桁あふれしない数値範囲でパケット1とパケット2の基本値を選定してもよいし、さらに、符号なし演算として計算してもよい。また、認証強度を上げるために、認証処理ごとに相関条件を変更してもよい。たとえば、1回目の相関条件は「+2」、2回目の相関条件は「+5」、3回目の相関条件は「+1」などとしてもよい。ただし、上述のような相関関係の変更ルールを適用する場合には、あらかじめ主制御基板310と周辺基板320との相互で共有しておくか、通知する手段や工程を用意しておく。
【0106】
また、単純に連続するパケット情報を送信しただけでは、第三者にパケット情報の差分を解析されてしまう可能性もある。したがって、解析を防ぐために基本値に前処理を施してもよい。たとえば、パケット情報の基本値に排他的論理和演算などの各種演算処理を施してもよい。また、基本値への前処理は、パケット1とパケット2のような連続した出力タイミングによって出力された2つのパケット情報のうちのいずれか一方にのみ施してもよいし、双方に施してもよい。
【0107】
<実施例1:同期コードを基準に認証>
実施例1では、同期コードを基準に認証をおこなう。図5は、実施例1の認証処理の手順を示すフローチャートである。図5のフローチャートのように、被認証者である主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータ(制御コマンドに関連するデータがある場合)を生成する(ステップS501)。そして、このステップS501の生成処理をトリガに、正規のCPUの同期コードVsnを生成する(ステップS502)。
【0108】
ステップS502において生成される同期コードVsnは、下記(1)式となる。なお、ここでは、一回の認証処理について説明しているため、n=0からスタートしたとする。したがって、ここでは同期コードVs0となる。また、変数Snの値の好適な例としては、たとえば、継続動作検査値とソルト値との演算結果値が挙げられる。
【0109】
同期コードVsn=Ec(Sn,Bn) …(1)
Ec():暗号化演算式
Sn :動作の継続動作を認証可能な継続動作検査値(たとえば、連続した同期パケット)
Bn :付加情報(任意に設定可能な値であり、カウンタ値や擬似乱数などの動的に変更する値)
n :処理順序(ここでは初期値=0から開始)
【0110】
同期コードVs0が生成されると、続いて、正規のCPUの誤り検査値であるCnを用いて正規のCPUの認証コードVcnが生成される(ステップS503)。このステップS503において生成される認証コードVcnは、下記(2)式となり、ステップS503において生成された同期コードVsnの生成式に用いた変数Snを含んだ構成となっている。なお、変数Snにかわって、同期コードの生成式に用いた変数Bnを含んだ構成にしてもよい。さらに、変数Sn,Bnの双方を含んだ構成であってもよい。また、Cnの値の好適な例としては、たとえば、誤り検査値とソルト値との演算結果値が挙げられる。
【0111】
認証コードVcn=Ec(Cn,Sn)または=Ec(Cn,Bn) …(2)
Cn :プログラムコード/データから生成した誤り検査値
【0112】
ステップS503ではn=0番目の処理であるため生成されるコードは、認証コードVc0となる。同期コードVs0と認証コードVc0とが生成されると、まず、ステップS501にて生成した制御コマンドおよびデータを、周辺基板320に送信し(ステップS504)、続いて、同期コードVs0を周辺基板320に送信し(ステップS505)、さらに、認証コードVc0を周辺基板320に送信し(ステップS506)、一回の認証処理にかかる主制御基板310の処理が終了する。
【0113】
一方、認証者側の周辺基板320では、主制御基板310から送信された制御コマンドおよびデータと、同期コードVs0と認証コードVc0との受信をトリガに認証処理を開始する。まず、同期コードVs0を認証する(ステップS511)。ここで、同期コードを認証するには、下記(3)式を用いて変数Snを復号化しなければならない。
【0114】
Sn=Dc(Vsn,Bn) …(3)
Dc():復号化演算式
【0115】
続いて、主制御基板310から送信された認証コードVc0を認証する(ステップS512)。ここでも、下記(4)式を用いて変数Snもしくは変数Bnを復号化しなければならない。
【0116】
Cn=Dc(Vcn,SnまたはBn) …(4)
【0117】
このステップS511およびステップS512の双方の認証が完了してはじめて、制御コマンドおよびデータの処理が可能となり(ステップS513)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって同期コードVs1、認証コードVc1が生成される。
【0118】
ここで、上述の処理を用いた具体的な計算例を例示する。ここでは一例として暗号化演算Ec(A,B)とした場合、AxorBを実行し、復号化演算Dc(A,B)としてAxorBを実行する。そして、A=0x11,B=0x22であった場合、Ec(0x11,0x22)⇒0x11 xor 0x22⇒0x33となる(⇒:演算処理)。したがって、A,Bとしては、上述したように、変数Sn,Bn,Cnなどが用いられるため、S0=0x11,B0=0x01,C0=0x77であった場合、Vs0=Ec(0x11,0x01)⇒0x11 xor 0x01⇒0x10となる。つぎに、Vc0=Ec(0x77,0x11)⇒0x77 xor 0x11⇒0x66となる。この時、被認証者である主制御基板310は、0x10と0x66とを送信する。
【0119】
そして被認証者である周辺基板320は、0x10と0x66とを受信して復号する。S0=Dc(0x10,0x01)⇒0x10 xor 0x01⇒0x11となる。そして、周辺基板320は、0x11が期待される誤り検査値であるか否かを判定する。たとえば、検査値=期待値=0x11であれば認証成立となる。
【0120】
したがって、C0=Dc(0x66,0x11)⇒0x66 xor 0x11⇒0x77となる。そして、つぎに、認証者は0x77が期待される誤り検査値であるか否かを判定する。ここでも、たとえば、検査値=期待値=0x77であれば認証成立となる。
【0121】
このように実施例1の場合、認証コードVc0には、同期コードVs0の生成式の変数が含まれているため、認証コードVc0の認証には、同期コードVs0の受信および認証が必須となる。
【0122】
<実施例2:認証コードを基準に認証>
図6は、実施例2の認証処理の手順を示すフローチャートである。実施例2では、認証コードを基準に認証する。図6のフローチャートのように、被認証者である主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータ(制御コマンドに関連するデータがある場合)を生成する(ステップS601)。そして、このステップS601の生成処理をトリガに、正規のCPUの認証コードVcnを生成する(ステップS602)。
【0123】
ステップS602において生成される認証コードVcnは、下記(5)式となる。なお、上述したように、ここでは一回の認証処理について説明しているため、n=0からスタートしたとする。したがって、ここでは正確には認証コードVc0となる。
【0124】
認証コードVcn=Ec(Cn,Bn) …(5)
【0125】
認証コードVc0が生成されると、続いて正規のCPUの同期コードVs0が生成される(ステップS603)。このステップS602において生成される同期コードVs0は、下記(6)式となり、ステップS601において生成された認証コードの生成式の変数Cnを含んだ構成となっている。ここでも、変数Cnに替わって、認証コードの生成式に用いた変数Bnを含んだ構成にしてもよい。さらに、変数Cn,Bnの双方を含んだ構成であってもよい。
【0126】
同期コードVsn=Ec(Sn,Cn)または=Ec(Sn,Bn) …(6)
【0127】
認証コードVc0と同期コードVs0とが生成されると、まず、ステップS601にて生成した制御コマンドおよびデータを、周辺基板320に送信し(ステップS604)、続いて、認証コードVc0を周辺基板320に送信する(ステップS605)。そして、さらに、同期コードVs0を周辺基板320に送信し(ステップS606)、一回の認証処理にかかる主制御基板310の処理が終了する。
【0128】
一方、認証者である周辺基板320では、主制御基板310から送信された制御コマンドおよびデータと、同期コードVs0と認証コードVc0との受信をトリガに認証処理を開始する。まず、認証コードVc0を認証する(ステップS611)。ここで、認証コードVc0を認証するには、下記(7)式を用いて変数Cnを復号化しなければならない。
【0129】
Cn=Dc(Vcn,Bn) …(7)
【0130】
続いて、主制御基板310から送信された同期コードVs0を認証する(ステップS612)。ここでも、下記(8)式を用いて変数CnもしくはBnを復号化しなければならない。
【0131】
Cn=Dc(Vsn,CnまたはBn) …(8)
【0132】
このステップS611およびステップS612の双方の認証が完了してはじめて、制御コマンドおよびデータの処理が可能となり(ステップS613)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって認証コードVc1、同期コードVs1が生成される。このように実施例2の場合、同期コードVsnには、認証コードVc0の生成式の変数が含まれているため、同期コードVs0の認証には、認証コードVc0の受信および認証が必須となる。
【0133】
<実施例3:実施例1の認証を複数回ごとに実行>
実施例3では、実施例1の認証を複数回ごとに実行する。図7は、実施例3の認証処理の手順を示すフローチャートである。図7のフローチャートでは、図5のフローチャートと同様に、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータ、同期コードVs0、認証コードVc0を生成する(ステップS701〜ステップS703)。ステップS701〜ステップS703の処理によって生成された各データ(制御コマンドおよびデータ、同期コードVs0、認証コードVc0)は、周辺基板320へ送信される(ステップS704〜ステップS706)。
【0134】
周辺基板320では、主制御基板310から送信された制御コマンドおよびデータ、同期コードVs0、認証コードVc0を受信すると、そのまま制御コマンドおよびデータの処理をおこなう(ステップS711)。
【0135】
そして、主制御基板310では、つぎの生成処理に移行する(n=1)。したがって、制御コマンドおよびデータを生成すると(ステップS707)、同期コードVs1、認証コードVc1を生成する(ステップS708,ステップS709)。そして、生成された各データ(制御コマンドおよびデータ、同期コードVs1、認証コードVc1)は、周辺基板320へ送信される(ステップS710〜ステップS712)。
【0136】
周辺基板320では、主制御基板310から送信された制御コマンドおよびデータ、同期コードVs1、認証コードVc1の受信をトリガに認証処理を開始する。まず、同期コードVs0,Vs1を認証する(ステップS712)。続いて、主制御基板310から送信された認証コードVc0,Vc1を認証する(ステップS713)。
【0137】
なお、同期コードVs0,Vs1は、連続して認証してもよいし、認証コードVc0の認証が終了した後に同期コードVs1を認証し、その後認証コードVc1を認証するような手順であってもよい。nの順番で認証をおこなう場合、認証エラーが発生した場合に、どの処理順序において不正処理が発生したかを即座に確認することができる。
【0138】
上述したようなステップS712およびステップS713の認証がすべて完了してはじめて、n=1回目に送信された制御コマンドおよびデータの処理が可能となり(ステップS714)、一回の認証処理を終了する。このように、実施例3では、制御コマンドおよびデータを複数回送信するたびに、1回の認証処理をおこなうため、周辺基板320における処理負担を軽減することができる。
【0139】
<実施例4:実施例2の認証を複数回ごとに実行>
実施例4では、実施例2の認証を複数回ごとに実行する。図8は、実施例4の認証処理の手順を示すフローチャートである。図8のフローチャートでは、図6のフローチャートと同様に、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータ、認証コードVc0、同期コードVs0を生成する(ステップS801〜ステップS803)。ステップS801〜ステップS803の処理によって生成された各データ(制御コマンドおよびデータ、認証コードVc0、同期コードVs0)は、周辺基板320へ送信される(ステップS804〜ステップS806)。
【0140】
周辺基板320では、主制御基板310から送信された制御コマンドおよびデータ、認証コードVc0、同期コードVs0を受信すると、そのまま制御コマンドおよびデータの処理をおこなう(ステップS811)。
【0141】
そして、主制御基板310では、つぎの生成処理に移行する(n=1)。したがって、制御コマンドおよびデータを生成すると(ステップS807)、認証コードVc1、同期コードVs1を生成する(ステップS808、ステップS809)。そして、生成された各データ(制御コマンドおよびデータ、認証コードVc1、同期コードVs1)は、周辺基板320へ送信される(ステップS810〜ステップS812)。
【0142】
周辺基板320では、主制御基板310から送信された制御コマンドおよびデータ、認証コードVc1、同期コードVs1の受信をトリガに認証処理を開始する。まず、認証コードVc0,Vc1を認証する(ステップS812)。続いて、主制御基板310から送信された同期コードVs0,Vs1を認証する(ステップS813)。ここでも、認証コードVc0,Vc1は、連続して認証してもよいし、同期コードVs0の認証が終了した後に認証コードVc1を認証し、その後同期コードVs1を認証するような手順であってもよい。
【0143】
上述のようなステップS812およびステップS813の認証がすべて完了してはじめて、n=1回目に送信された制御コマンドおよびデータの処理が可能となり(ステップS814)、一回の認証処理を終了する。このように、実施例4では、制御コマンドおよびデータを複数回送信するたびに、1回の認証処理をおこなうため、周辺基板320における処理負担が軽減できる。
【0144】
<実施例5:実施例1(同期コードを基準に認証)の変形例1>
実施例5は、実施例1を変形した認証処理をおこなう。図9は、実施例5の認証処理の手順を示すフローチャートである。実施例5では、同期コードVsnが所定回数認証された後、認証コードVcの認証をおこなう。図9のフローチャートのように、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータを生成する(ステップS901)。そして、このステップS901の生成処理をトリガに、正規のCPUの同期コードVsnを生成する(ステップS902)。このステップS901によって生成される同期コードVsnは、実施例1のステップS502によって生成された同期コードVs0に相当する。
【0145】
つぎに、ステップS901によって生成された制御コマンドおよびデータと、ステップS902によって生成された同期コードVs0を周辺基板320に送信する(ステップS903、ステップS904)。周辺基板320では、ステップS904によって送信された同期コードVs0を認証し(ステップS911)、認証が完了すると、ステップS903によって送信された制御コマンドおよびデータの処理をおこなう(ステップS912)。
【0146】
ステップS904の送信が終了した主制御基板310は、n=1回目の処理に移行する。まず、制御コマンドおよびデータを生成し(ステップS905)、続いて、同期コードVs1を生成する(ステップS906)。そして、生成された同期コードVs1の生成をトリガに、正規のCPUの認証コードVc0を生成する(ステップS907)。なお、このステップS907においてはじめて認証コードが生成されるため認証コードVc0となるが、同期コードはn=1の処理に移行しているため、利用する値は下記(9)式のようになっている。
【0147】
認証コードVc0=Ec(C0,S1) …(9)
【0148】
上記(9)式に示したように、認証コードVc0には、n=1回目に生成された同期コードVs1の生成式の変数S1が含まれている。なお、このとき、変数S1に替わって変数B1を含んでもよいし、変数S0,S1または変数B0,B1との合成数(たとえば、四則演算など)を含んでもよい。
【0149】
主制御基板310は、同期コードVs1と認証コードVc0との生成が終わると、制御コマンドおよびデータと、同期コードVs1と認証コードVc0とをそれぞれ周辺基板320に送信する(ステップS908〜ステップS910)。以上のステップによって、一回の認証処理にかかる主制御基板310の処理が終了する。
【0150】
周辺基板320では、主制御基板310から送信された同期コードVs1を認証する(ステップS913)。続いて、主制御基板310から送信された認証コードVc0を認証する(ステップS914)。そして、これら双方の認証が完了すると制御コマンドおよびデータを処理し(ステップS915)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって同期コードVs2,Vs3、認証コードVc1が生成される。
【0151】
このように実施例5の場合、同期コードの生成が所定数(ここでは2回)おこなわれたことをトリガにして認証コードを生成する。また、認証コードVcnには、同期コードVsnの生成式の変数が含まれているため、認証コードVcnの認証には、同期コードVsnの受信および認証が必須となる。
【0152】
<実施例6:実施例2(認証コードを基準に認証)の変形例1>
実施例6は、実施例2を変形した認証処理をおこなう。図10は、実施例4の認証処理の手順を示すフローチャートである。実施例6では、認証コードが所定回数認証された後、同期コードの認証をおこなう。図10のフローチャートのように、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータを生成する(ステップS1001)。そして、このステップS1001の生成処理をトリガに、正規のCPUの認証コードVcnを生成する(ステップS1002)。このステップS1002によって生成される認証コードVcnは、実施例2のステップS602によって生成された認証コードVc0に相当する。
【0153】
つぎに、ステップS1001によって生成された制御コマンドおよびデータと、ステップS1002によって生成された認証コードVc0を周辺基板320に送信する(ステップS1003、ステップS1004)。そして、周辺基板320では、ステップS1004によって送信された認証コードVc0を認証する(ステップS1011)。そして、ステップS1011の認証が完了すると、ステップS1003によって送信された制御コマンドおよびデータを処理する(ステップS1012)。
【0154】
ステップS1003、ステップS1004の送信が終了した主制御基板310は、n=1回目の処理に移行する。まず、制御コマンドおよびデータを生成し(ステップS1005)、続いて、認証コードVc1の生成をおこなう(ステップS1006)。そして、生成された認証コードVc1の生成をトリガに、正規のCPUの同期コードVs0を生成する(ステップS1007)。なお、このステップS1007においてはじめて認証コードが生成されるため認証コードVc0となるが、同期コードはn=1の処理に移行しているため、利用する値は下記(10)式のようになっている。
【0155】
同期コードVs0=Ec(S0,C1) …(10)
【0156】
上記(10)式に示したように、同期コードVs0には、1回目に生成された認証コードVc0の生成式の変数C1を含んでいる。なお、このとき、変数C1に替わって変数C1や、変数B0,B1を含んでもよいし、変数C0,C1や変数B0,B1との合成数を含んでもよい。
【0157】
主制御基板310では、制御コマンドおよびデータと、認証コードVc1と同期コードVs0との生成が終わると、制御コマンドおよびデータと、認証コードVc1と同期コードVs0とをそれぞれ周辺基板320に送信し(ステップS1008〜ステップS1010)、一回の認証処理にかかる主制御基板310の処理が終了する。
【0158】
一方、周辺基板320では、まず、主制御基板310から送信された認証コードVc1を認証する(ステップS1013)。続いて、主制御基板310から送信された同期コードVs0を認証する(ステップS1014)、そして、これら双方の認証が完了すると制御コマンドおよびデータを処理し(ステップS1015)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって認証コードVc2,Vc3、同期コードVs1が生成される。
【0159】
このように実施例6の場合、認証コードVctの生成が所定数(ここでは2回)おこなわれたことをトリガにして同期コードVsnを生成する。また、同期コードVsnには、認証コードVcnの生成式の変数が含まれているため、同期コードVsnの認証には、認証コードVcnの受信および認証が必須となる。
【0160】
<実施例7:実施例1(同期コードを基準に認証)の変形例2>
実施例7は、実施例1を変形した認証処理をおこなう。図11は、実施例7の認証処理の手順を示すフローチャートである。実施例7では、主制御基板310から所定数のコードが送信された場合に、周辺基板320によってこれらのコードそれぞれの認証をおこなう。
【0161】
図11のフローチャートにおいて、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータを生成する(ステップS1101)。そして、このステップS1101の生成処理をトリガに、正規のCPUの同期コードVs0を生成する(ステップS1102)。このステップS1102によって生成される同期コードVs0は、実施例5のステップS902によって生成された同期コードVs0に相当する。
【0162】
つぎに、ステップS1101によって生成された制御コマンドおよびデータと、ステップS1102によって生成された同期コードVs0を周辺基板320に送信する(ステップS1103、ステップS1104)。周辺基板320では、ステップS1103によって送信された制御コマンドおよびデータを処理する(ステップS1111)。そして、主制御基板310は、n=1回目の処理に移行し、制御コマンドおよびデータと、同期コードVs1との生成をおこなう(ステップS1105、ステップS1106)。このステップS1106によって生成される同期コードVs1は、実施例5のステップS906によって生成された同期コードVs1に相当する。
【0163】
そして、主制御基板310は、同期コードVs0,Vs1の生成をトリガに、正規のCPUの認証コードVc0を生成する(ステップS1107)。このステップS1107によって生成される認証コードVc0は、実施例5のステップS907によって生成された認証コードVc0に相当する。
【0164】
主制御基板310では、制御コマンドおよびデータと、同期コードVs1と、認証コードVc0との生成が終わると、制御コマンドおよびデータと同期コードVs1と認証コードVc0とをそれぞれ周辺基板320に送信し(ステップS1108〜ステップS1110)、一回の認証処理にかかる主制御基板310の処理が終了する。このとき、同期コードVs1と認証コードVc0の送信順序(図11中の1110のタイミング)はランダムに変化するように設定してもよい。
【0165】
一方、認証者である周辺基板320では、ステップS1108によって送信された制御コマンドおよびデータと、同期コードVs0,Vs1と認証コードVc0とのすべてコードの受信をトリガとして認証を開始する。まず、主制御基板310から送信された同期コードVs0を認証する(ステップS1112)。続いて、同期コードVs1を認証する(ステップS1113)。最後に、認証コードVc0を認証する(ステップS1114)。そして、これらすべての認証が完了すると制御コマンドおよびデータを処理し(ステップS1115)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって同期コードVs2,Vs3、認証コードVc1が生成される。
【0166】
このように実施例7の場合、同期コードの生成が所定数(ここでは2回)おこなわれたことをトリガにして認証コードを生成する。また、周辺基板320でも、所定のコードすべての受信が完了したことをトリガとして、各コードの認証を開始する。また、認証コードVcnには、同期コードVsnの生成式の変数が含まれているため、認証コードVcnの認証には、同期コードVsnの受信および認証が必須となる。
【0167】
<実施例8:実施例2(認証コードを基準に認証)の変形例2>
実施例8は、実施例2を変形した認証処理をおこなう。図12は、実施例8の認証処理の手順を示すフローチャートである。実施例8では、実施例7と同様に、主制御基板310から所定数のコードが送信された場合に、周辺基板320によってこれらのコードそれぞれの認証をおこなう。
【0168】
図12のフローチャートにおいて、主制御基板310は、まず、周辺基板320へ送信する制御コマンドおよびデータを生成する(ステップS1201)。そして、このステップS1201の生成処理をトリガに、正規のCPUの認証コードVc0を生成する(ステップS1202)。このステップS1202によって生成される認証コードは、実施例2のステップS602によって生成された認証コードVc0に相当する。
【0169】
つぎに、ステップS1201によって生成された制御コマンドおよびデータと、ステップS1202によって生成された認証コードVc0を周辺基板320に送信する(ステップS1203、ステップS1204)。周辺基板320では、ステップS1203によって送信された制御コマンドおよびデータを処理する(ステップS1211)。そして、主制御基板310は、n=1回目の処理に移行し、制御コマンドおよびデータと、認証コードVc1の生成をおこなう(ステップS1205、ステップS1206)。このステップS1206によって生成される認証コードVc1は、実施例6のステップS1006によって生成された認証コードVc1に相当する。
【0170】
そして、主制御基板310は、認証コードVc0,Vc1の生成をトリガに、正規のCPUの同期コードVs0を生成する(ステップS1207)。このステップS1207に
よって生成される同期コードVs0は、実施例6のステップS1007によって生成された同期コードVs0に相当する。
【0171】
主制御基板310では、制御コマンドおよびデータと、認証コードVc1と、同期コードVs0との生成が終わると、制御コマンドおよびデータと認証コードVc1と同期コードVs0とをそれぞれ周辺基板320に送信し(ステップS1208〜ステップS1210)、一回の認証処理にかかる主制御基板310の処理が終了する。このとき、認証コードVc1と同期コードVs0の送信順序(図12中の1210のタイミング)はランダムに変化するように設定してもよい。
【0172】
一方、認証者である周辺基板320では、ステップS1208によって送信された制御コマンドおよびデータと、認証コードVc0,Vc1と同期コードVs0とのすべてコードの受信をトリガとして認証を開始する。まず、主制御基板310から送信された認証コードVc0を認証する(ステップS1212)。続いて、認証コードVc1を認証する(ステップS1213)。最後に、同期コードVs0を認証する(ステップS1214)。そして、これらすべての認証が完了すると制御コマンドおよびデータを処理し(ステップS1215)、一回の認証処理を終了する。以下、主制御基板310からつぎの制御コマンドが送信されると、同様の手順によって認証コードVc2,Vc3、同期コードVs1が生成される。
【0173】
このように実施例6の場合、認証コードの生成が所定数(ここでは2回)おこなわれたことをトリガにして同期コードを生成する。また、周辺基板320でも、所定のコードすべての受信が完了したことをトリガとして、各コードの認証を開始する。また、同期コードVsnには、認証コードVcnの生成式の変数が含まれているため、同期コードVsnの認証には、認証コードVcnの受信および認証が必須となる。
【0174】
以上説明したように、主制御基板310による認証コード、同期コードの生成および送信として様々なバリエーションを設定することができる。同様に、周辺基板320においてどのような手順で認証をおこなうかを設定することができる。これらの設定に応じて、処理負荷や認証強度を変化させることができる。したがって、主制御基板310、周辺基板320の処理能力や、要求される認証強度に応じて設定を調整すればよい。
【0175】
また、本発明の本実施の形態にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムでは、認証コードと同期コードという2種類の認証データを利用した認証処理がおこなわれる。この認証処理では、2種類の認証データのうち、どちらか一方のコードが認証されない場合には、不正な制御基板から送信された不正な制御コマンドと判断されることにより、不正な制御信号が検出され、第三者により不正制御を防ぐことができる。
【0176】
さらに、本発明では認証コードと同期コードとを用いているが、これらの情報は、たとえ第三者に傍受されたとしても主制御基板の処理内容を解析することは極めて困難である。さらに、上述のように、認証コード、同期コードなど各コード生成、送信、認証の処理内容に関して多様な設定が可能であるため、第三者による主制御基板の動作解析や認証方式、認証用データの解析を困難にし、解析者を混乱させることができる。
【0177】
したがって、本発明にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムによれば、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を実現することができる。
【0178】
また、本発明では、主制御基板による認証コードや同期コードの生成手順や、送信手順を様々な手法から適宜選択して設定することができる。この設定に応じて、各コードの生成処理の負荷や、周辺基板における認証処理の負荷を調整することができる。したがって、電子機器のスペックに応じた認証処理を実行させることができる。
【0179】
なお、本実施の形態で説明した認証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【0180】
以上のように、本発明は、制御基板と周辺基板間との通信内容への不正が懸念される電子機器やその電子機器に搭載される制御基板および周辺基板に有用であり、特に、ぱちんこ遊技機、スロット遊技機、その他各種の遊技機に適している。
【図面の簡単な説明】
【0181】
【図1】本発明にかかる電子機器を搭載したぱちんこ遊技機の構成の一例を示す説明図である。
【図2】ぱちんこ遊技機の制御部の内部構成を示すブロック図である。
【図3】主制御基板および周辺基板の認証処理にかかる機能的構成を示すブロック図である。
【図4−1】本発明にかかる主制御基板の制御コマンド送信処理の手順を示すフローチャートである。
【図4−2】本発明にかかる周辺基板の制御コマンド受信処理の手順を示すフローチャートである。
【図5】実施例1の認証処理の手順を示すフローチャートである。
【図6】実施例2の認証処理の手順を示すフローチャートである。
【図7】実施例3の認証処理の手順を示すフローチャートである。
【図8】実施例4の認証処理の手順を示すフローチャートである。
【図9】実施例5の認証処理の手順を示すフローチャートである。
【図10】実施例6の認証処理の手順を示すフローチャートである。
【図11】実施例7の認証処理の手順を示すフローチャートである。
【図12】実施例8の認証処理の手順を示すフローチャートである。
【図13】従来技術による不正防止技術の概要を示す説明図である。
【図14】不正な制御基板の挿入例を示す説明図である。
【図15】信号切替回路による信号切り替えの概要を示す説明図である。
【符号の説明】
【0182】
201 主制御部
202 演出制御部
203 賞球制御部
310 主制御基板
311 制御コマンド出力部
312 認証コード生成部
313 同期コード生成部
314 付加部
315 送信部
320 周辺基板
321 受信部
322 基板認証部
323 動作認証部
324 制御コマンド認証部

【特許請求の範囲】
【請求項1】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、
前記主制御部は、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段と、
前記制御コマンドを前記周辺部に送信する送信手段と、を備え、
前記周辺部は、
前記送信手段によって送信された前記制御コマンドを受信する受信手段と、
前記受信手段によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証手段と、
前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする電子機器。
【請求項2】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、
前記主制御部は、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信手段と、を備え、
前記周辺部は、
前記送信手段によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信手段と、
前記受信手段によって受信された認証コードを用いて、前記主制御部を認証する基板認証手段と、
前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする電子機器。
【請求項3】
前記同期コード生成手段は、前記認証コード生成手段によって前記認証コードの生成に利用される情報の一部もしくはすべてと、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって同期コードを生成し、
前記動作認証手段は、前記基板認証手段によって認証された認証コードと、前記受信手段によって受信された同期コードとを用いた所定の演算の演算結果を、前記制御コマンド送信時の前記主制御部の動作の連続性を認証するための検査値として、前記動作順序の認証をおこなうことを特徴とする請求項1または2に記載の電子機器。
【請求項4】
前記認証コード生成手段は、前記同期コード生成手段によって前記同期コードの生成に利用される情報の一部もしくはすべてと、当該主制御部の誤り検査値とを用いた所定の演算によって認証コードを生成し、
前記基板認証手段は、前記動作認証手段によって認証された同期コードと、前記受信手段によって受信された認証コードとを用いた所定の演算の演算結果を前記主制御部の誤り検査値として、前記主制御部の認証をおこなうことを特徴とする請求項1または2に記載の電子機器。
【請求項5】
前記制御コマンド認証手段は、前記認証コードもしくは前記同期コードを用いて、前記制御コマンド送信時の前記主制御部の動作順序に関する情報のうち、指定された情報が認証された場合に、前記主制御部が正しい制御コマンドを出力していると認証することを特徴とする請求項1〜4のいずれか一つに記載の電子機器。
【請求項6】
電子機器に搭載され、被制御部となる周辺基板に対して制御コマンドを送信する主制御基板であって、
前記周辺基板に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御基板を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御基板の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記制御コマンドとともに、前記認証コード生成手段および前記同期コード生成手段によって生成された各コードを前記周辺基板に送信する送信手段と、
を備えることを特徴とする主制御基板。
【請求項7】
前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段とを備え、
前記送信手段は、前記付加手段によって前記認証コードと前記同期コードとが付加された制御コマンドを前記周辺基板に送信することを特徴とする請求項6に記載の主制御基板。
【請求項8】
電子機器に搭載され、主制御基板から送信された制御コマンドに応じた処理をおこなう周辺基板であって、
前記主制御基板から送信された前記制御コマンドとともに、前記認証コードおよび前記同期コードを受信する受信手段と、
前記受信手段によって受信された認証コードを用いて、前記主制御基板を認証する基板認証手段と、
前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御基板の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御基板が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする周辺基板。
【請求項9】
前記受信手段は、前記制御コマンドとともに、前記認証コードと前記同期コードとを受信しなかった場合、前記制御コマンドに前記認証コードと前記同期コードとが付加されているか否かを判断し、
前記認証コードと前記同期コードとが付加されていると判断された場合に、
前記基板認証手段と、前記動作認証手段とは、前記制御コマンドに付加されている認証コードと同期コードとを用いて、それぞれ認証をおこなうことを特徴とする請求項8に記載の周辺基板。
【請求項10】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、
前記主制御部において、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、
前記認証コード生成工程によって生成された認証コードと、前記同期コード生成工程によって生成された同期コードとを前記制御コマンドに付加する付加工程と、
前記制御コマンドを前記周辺部に送信する送信工程と、を含み、
前記周辺部において、
前記送信工程によって送信された前記制御コマンドを受信する受信工程と、
前記受信工程によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証工程と、
前記受信工程によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、
前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、
を含むことを特徴とする認証方法。
【請求項11】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、
前記主制御部において、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、
前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信工程と、を含み、
前記周辺部において、
前記送信工程によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信工程と、
前記受信工程によって受信された認証コードを用いて、前記主制御部を認証する基板認証工程と、
前記受信工程によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、
前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、
を含むことを特徴とする認証方法。
【請求項12】
請求項10または11に記載の認証方法をコンピュータに実行させることを特徴とする認証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4−1】
image rotate

【図4−2】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−148606(P2010−148606A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−328610(P2008−328610)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000161806)京楽産業.株式会社 (4,820)
【出願人】(300023383)株式会社トリニティーセキュリティーシステムズ (376)
【Fターム(参考)】