(57)【要約】【課題】高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を備えた電子機器を提供すること。【解決手段】主制御基板３１０は、周辺基板３２０に送信する制御コマンドが所定の制御コマンドである場合、主制御基板３１０を認証するための認証コードと、主制御基板３１０の動作検査値として連続して出力されたパケット情報を含んだ同期コードをそれぞれ生成し、認証コードと同期コードとを制御コマンドに付加する。コードが付加された制御コマンドは、周辺基板３２０に送信される。周辺基板３２０は、制御コマンドを受信すると、制御コマンドに付加された認証コードを用いて主制御基板３１０を認証し、同期コードを用いて主制御基板３１０の動作順序を認証する。そして、認証コードによる認証と同期コードによる認証との双方が成立した場合に、主制御基板３１０が正しい制御コマンドを出力していると認証する。【選択図】図３
2010148606.tif 000002
【特許請求の範囲】
【請求項１】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、
前記主制御部は、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段と、
前記制御コマンドを前記周辺部に送信する送信手段と、を備え、
前記周辺部は、
前記送信手段によって送信された前記制御コマンドを受信する受信手段と、
前記受信手段によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証手段と、
前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする電子機器。
【請求項２】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、
前記主制御部は、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信手段と、を備え、
前記周辺部は、
前記送信手段によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信手段と、
前記受信手段によって受信された認証コードを用いて、前記主制御部を認証する基板認証手段と、
前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする電子機器。
【請求項３】
前記同期コード生成手段は、前記認証コード生成手段によって前記認証コードの生成に利用される情報の一部もしくはすべてと、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって同期コードを生成し、
前記動作認証手段は、前記基板認証手段によって認証された認証コードと、前記受信手段によって受信された同期コードとを用いた所定の演算の演算結果を、前記制御コマンド送信時の前記主制御部の動作の連続性を認証するための検査値として、前記動作順序の認証をおこなうことを特徴とする請求項１または２に記載の電子機器。
【請求項４】
前記認証コード生成手段は、前記同期コード生成手段によって前記同期コードの生成に利用される情報の一部もしくはすべてと、当該主制御部の誤り検査値とを用いた所定の演算によって認証コードを生成し、
前記基板認証手段は、前記動作認証手段によって認証された同期コードと、前記受信手段によって受信された認証コードとを用いた所定の演算の演算結果を前記主制御部の誤り検査値として、前記主制御部の認証をおこなうことを特徴とする請求項１または２に記載の電子機器。
【請求項５】
前記制御コマンド認証手段は、前記認証コードもしくは前記同期コードを用いて、前記制御コマンド送信時の前記主制御部の動作順序に関する情報のうち、指定された情報が認証された場合に、前記主制御部が正しい制御コマンドを出力していると認証することを特徴とする請求項１〜４のいずれか一つに記載の電子機器。
【請求項６】
電子機器に搭載され、被制御部となる周辺基板に対して制御コマンドを送信する主制御基板であって、
前記周辺基板に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御基板を認証するための認証コードを生成する認証コード生成手段と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御基板の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、
前記制御コマンドとともに、前記認証コード生成手段および前記同期コード生成手段によって生成された各コードを前記周辺基板に送信する送信手段と、
を備えることを特徴とする主制御基板。
【請求項７】
前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段とを備え、
前記送信手段は、前記付加手段によって前記認証コードと前記同期コードとが付加された制御コマンドを前記周辺基板に送信することを特徴とする請求項６に記載の主制御基板。
【請求項８】
電子機器に搭載され、主制御基板から送信された制御コマンドに応じた処理をおこなう周辺基板であって、
前記主制御基板から送信された前記制御コマンドとともに、前記認証コードおよび前記同期コードを受信する受信手段と、
前記受信手段によって受信された認証コードを用いて、前記主制御基板を認証する基板認証手段と、
前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御基板の動作順序を認証する動作認証手段と、
前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御基板が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、
を備えることを特徴とする周辺基板。
【請求項９】
前記受信手段は、前記制御コマンドとともに、前記認証コードと前記同期コードとを受信しなかった場合、前記制御コマンドに前記認証コードと前記同期コードとが付加されているか否かを判断し、
前記認証コードと前記同期コードとが付加されていると判断された場合に、
前記基板認証手段と、前記動作認証手段とは、前記制御コマンドに付加されている認証コードと同期コードとを用いて、それぞれ認証をおこなうことを特徴とする請求項８に記載の周辺基板。
【請求項１０】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、
前記主制御部において、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、
前記認証コード生成工程によって生成された認証コードと、前記同期コード生成工程によって生成された同期コードとを前記制御コマンドに付加する付加工程と、
前記制御コマンドを前記周辺部に送信する送信工程と、を含み、
前記周辺部において、
前記送信工程によって送信された前記制御コマンドを受信する受信工程と、
前記受信工程によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証工程と、
前記受信工程によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、
前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、
を含むことを特徴とする認証方法。
【請求項１１】
制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、
前記主制御部において、
前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、
前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、
前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信工程と、を含み、
前記周辺部において、
前記送信工程によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信工程と、
前記受信工程によって受信された認証コードを用いて、前記主制御部を認証する基板認証工程と、
前記受信工程によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、
前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、
を含むことを特徴とする認証方法。
【請求項１２】
請求項１０または１１に記載の認証方法をコンピュータに実行させることを特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の基板を備え、これらの基板間の通信の認証をおこなう電子機器と、主制御基板、周辺基板、認証方法および認証プログラムに関する。
【背景技術】
【０００２】
従来、複数の基板を備えた電子機器において、これら各基板に対する不正を防止するための様々な技術が提案されている。複数の基板を備えた電子機器とは、たとえば、ぱちんこ遊技機などがある。ぱちんこ遊技機には、電子機器全体の動作を司る主制御基板と、電子機器の各部の動作をおこなう被制御基板（周辺基板）とを備えている。この主制御基板は、周辺基板に制御コマンドを含む制御信号を出力し、その他の周辺基板は、主制御基板から送信された制御信号にしたがって動作を実行する機能を備えている。
【０００３】
このような構成の電子機器の場合、主制御基板に対する不正としては、たとえば、正規の主制御基板を不正な制御基板に取り替えたり、主制御基板がおこなう処理を規定したプログラムコードを改ざんしたりといった手法がある。このような不正を防止するため、たとえば、主制御基板内に搭載されたＲＯＭに記録されているプログラムデータをＲＯＭチェッカによってチェックして、ＲＯＭの不正交換などを防止する技術が提案されている（たとえば、下記特許文献１参照。）。
【０００４】
また、他の技術では、主制御基板のプログラムカウンタの値（ＰＣ値）や主制御基板内の所定の機能部の処理時間を計測した計測値に基づいたチェック符号を生成して周辺基板へ送信する。そして、周辺基板では、受信したチェック符号を解析し、解析結果が正常でない場合には、周辺基板上の動作を停止するといった機能を備えた遊技機も提供されている（たとえば、下記特許文献２参照。）。
【０００５】
【特許文献１】特開平１１−３３３１０８号公報
【特許文献２】特開平１１−２７６６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術を用いた場合、プログラムデータの改ざんは検知できるが、正規の主制御基板と、被制御部となる周辺基板との間に不正な制御基板が接続されてしまうと、この不正な制御基板から出力される不正な制御信号による不正制御を防止することができない。
【０００７】
図１３は、従来技術による不正防止技術の概要を示す説明図である。また、図１４は、不正な制御基板の挿入例を示す説明図である。ここで、図１３、１４を用いて不正な制御基板による不正制御について具体的に説明する。図１３に示すように、通常、正規の主制御基板１３０１は、周辺基板１３０２に対して正規の制御信号ＲＳを出力して、周辺基板１３０２の動作を制御する。また、正規の主制御基板１３０１には、検査用ポート１３０３が設けられている。この検査用ポート１３０３から正規の主制御基板１３０１の内部に設けられたＲＯＭなどに記録されたプログラムデータを検査して、正規の主制御基板１３０１に不正がおこなわれていないかを検査する。
【０００８】
ところが、図１４に示すように、周辺基板１３０２の不正制御をおこなうために、正規の主制御基板１３０１と周辺基板１３０２との間に不正な制御基板１４０１が挿入されてしまう場合がある。この不正な制御基板１４０１は、正規の主制御基板１３０１から出力された正規の制御信号ＲＳを破棄または無視し、替わりに不正な制御信号ＦＳを周辺基板１３０２に出力する。
【０００９】
上記特許文献１の技術の場合、周辺基板１３０２は、入力された信号が正規の制御信号ＲＳであるか不正な制御信号ＦＳであるかを判別することができない。したがって、周辺基板１３０２に不正な制御信号ＦＳが入力された場合には、不正操作を検出できず、不正な制御信号ＦＳの制御内容に応じた動作をおこなってしまうという問題があった。
【００１０】
また、検査用ポート１３０３は正規の主制御基板１３０１にのみ設けられている。したがって、検査用ポート１３０３を用いた検査をおこなっても、この検査結果は、正規の主制御基板１３０１内の処理の評価に過ぎず、主制御基板１３０１と周辺基板１３０２との間の信号を検査することはできない。したがって、検査用ポート１３０３を備えていても、不正な制御基板１４０１による不正制御を検知することができないという問題があった。
【００１１】
また、図１５は、信号切替回路による信号切り替えの概要を示す説明図である。図１５のように、不正な制御基板１４０１のなかには、不正な制御信号ＦＳを出力するための不正な処理をおこなうＣＰＵ１４０２に加えて、信号切替回路１４０３が搭載されていることがある。信号切替回路１４０３が搭載されている場合、不正な制御基板１４０１は、正規のＣＰＵ１３０４から出力される制御信号ＲＳの初期診断や検査動作時には、正規の制御信号ＲＳを出力させ、その他の動作時には、不正な制御信号ＦＳを出力させるように切り替えることができる。
【００１２】
すなわち、信号切替回路１４０３によって検査用ポート１３０３を用いた検査や、ＣＰＵの動作診断をおこなうときだけ正規のＣＰＵ１３０４から出力された正規の制御信号ＲＳを出力させることができる。したがって、周辺基板１３０２は検査用ポート１３０３や、動作診断などの不正防止技術を利用しても不正な制御信号ＦＳの出力を検出できないという問題があった。
【００１３】
また、上述の問題への対策案として、上記特許文献２のように主制御基板のプログラムカウンタの値（ＰＣ値）や主制御基板内の所定機能部の処理時間を計測した計測値に基づいたチェック符号を利用して主制御基板から送信された制御信号の認証をおこなう技術がある。しかしながら、実行命令の格納位置を示すＰＣ値や、所定の機能部の処理時間を計測した情報からチェック符号を生成した場合、主制御基板によってどのような命令が実行されたかといった具体的な処理内容に関する情報を送信していることになる。
【００１４】
上述のような情報が傍受された場合、主制御基板によって実行されている処理ルーチンの処理時間や、実行命令の格納位置を示すＰＣ値からプログラムを解析するためのヒントを与えてしまうなど、重要情報を流出してしまう可能性があるというリスクがあった。
【００１５】
この発明は、上述した従来技術による問題点を解消するため、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を備えた電子機器、主制御基板、周辺基板、認証方法および認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかる電子機器は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、前記主制御部は、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段と、前記制御コマンドを前記周辺部に送信する送信手段と、を備え、前記周辺部は、前記送信手段によって送信された前記制御コマンドを受信する受信手段と、前記受信手段によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証手段と、前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【００１７】
この請求項１の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。また、主制御部は、周辺部における認証処理のために、あらたに認証コードと同期コードとを生成しているが、これらのコードは制御コマンドに付加される。したがって、第三者が主制御部からの出力信号を観察した場合、主制御部からは、不正防止機能を含まない通常の制御信号である制御コマンドのみが出力されているようにみせることができる。
【００１８】
また、請求項２の発明にかかる電子機器は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器であって、前記主制御部は、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信手段と、を備え、前記周辺部は、前記送信手段によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信手段と、前記受信手段によって受信された認証コードを用いて、前記主制御部を認証する基板認証手段と、前記受信手段によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【００１９】
この請求項２の発明によれば、主制御部自身を認証するための認証コードと、主制御部から周辺部に所定の制御コマンドが送信される場合に、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。
【００２０】
また、請求項３の発明にかかる電子機器は、請求項１または２に記載の発明において、前記同期コード生成手段は、前記認証コード生成手段によって前記認証コードの生成に利用される情報の一部もしくはすべてと、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって同期コードを生成し、前記動作認証手段は、前記基板認証手段によって認証された認証コードと、前記受信手段によって受信された同期コードとを用いた所定の演算の演算結果を、前記制御コマンド送信時の前記主制御部の動作の連続性を認証するための検査値として、前記動作順序の認証をおこなうことを特徴とする。
【００２１】
この請求項３の発明によれば、主制御部では、認証コードの生成に利用した情報を含んだ同期コードが生成される。すなわち、周辺基板によって同期コードを用いた認証をおこなうには認証コードを参照しなければならない。したがって、周辺基板では、認証コードの認証が成功してはじめて同期コードの認証をおこなうことができる。
【００２２】
また、請求項４の発明にかかる電子機器は、請求項１または２に記載の発明において、前記認証コード生成手段は、前記同期コード生成手段によって前記同期コードの生成に利用される情報の一部もしくはすべてと、当該主制御部の誤り検査値とを用いた所定の演算によって認証コードを生成し、前記基板認証手段は、前記動作認証手段によって認証された同期コードと、前記受信手段によって受信された認証コードとを用いた所定の演算の演算結果を前記主制御部の誤り検査値として、前記主制御部の認証をおこなうことを特徴とする。
【００２３】
この請求項４の発明によれば、主制御部では、同期コードの生成に利用した情報を含んだ認証コードが生成される。すなわち、周辺基板によって認証コードを用いた認証をおこなうには同期コードを参照しなければならない。したがって、周辺基板では、同期コードの認証が成功してはじめて認証コードの認証をおこなうことができる。
【００２４】
また、請求項５の発明にかかる電子機器は、請求項１〜４のいずれか一つに記載の発明において、前記制御コマンド認証手段は、前記認証コードもしくは前記同期コードを用いて、前記制御コマンド送信時の前記主制御部の動作順序に関する情報のうち、指定された情報が認証された場合に、前記主制御部が正しい制御コマンドを出力していると認証することを特徴とする。
【００２５】
この請求項５の発明によれば、周辺部において、主制御部にかかる情報のうち、どの情報が認証された場合に、正しい制御コマンドが出力されていると認証するかを任意に設定することができる。
【００２６】
また、請求項６の発明にかかる主制御基板は、電子機器に搭載され、被制御部となる周辺基板に対して制御コマンドを送信する主制御基板であって、前記周辺基板に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御基板を認証するための認証コードを生成する認証コード生成手段と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御基板の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成手段と、前記制御コマンドとともに、前記認証コード生成手段および前記同期コード生成手段によって生成された各コードを前記周辺基板に送信する送信手段と、を備えることを特徴とする。
【００２７】
また、請求項７の発明にかかる主制御基板は、請求項６に記載の発明において、前記認証コード生成手段によって生成された認証コードと、前記同期コード生成手段によって生成された同期コードとを前記制御コマンドに付加する付加手段とを備え、前記送信手段は、前記付加手段によって前記認証コードと前記同期コードとが付加された制御コマンドを前記周辺基板に送信することを特徴とする。
【００２８】
この請求項６、７の発明によれば、被制御部である周辺基板によって主制御基板を認証させるため、主制御基板では、任意の認証方式のなかから任意の数の認証方式のコードを生成し、制御コマンドとともに周辺基板に送信することができる。また、請求項１０の場合は、制御コマンドに各コード（認証コード、同期コード）を付加しているため、主制御基板から送信した情報を第三者に傍受された場合であっても、従来と同じように、制御コマンドのみが送信されているようにみせることができる。
【００２９】
また、請求項８の発明にかかる周辺基板は、電子機器に搭載され、主制御基板から送信された制御コマンドに応じた処理をおこなう周辺基板であって、前記主制御基板から送信された前記制御コマンドとともに、前記認証コードおよび前記同期コードを受信する受信手段と、前記受信手段によって受信された認証コードを用いて、前記主制御基板を認証する基板認証手段と、前記受信手段によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御基板の動作順序を認証する動作認証手段と、前記基板認証手段による認証と、前記動作認証手段による認証との双方が成立した場合に、前記主制御基板が正しい制御コマンドを出力していると認証する制御コマンド認証手段と、を備えることを特徴とする。
【００３０】
また、請求項９の発明にかかる周辺基板は、請求項８に記載の発明において、前記受信手段は、前記制御コマンドとともに、前記認証コードと前記同期コードとを受信しなかった場合、前記制御コマンドに前記認証コードと前記同期コードとが付加されているか否かを判断し、前記認証コードと前記同期コードとが付加されていると判断された場合に、前記基板認証手段と、前記動作認証手段とは、前記制御コマンドに付加されている認証コードと同期コードとを用いて、それぞれ認証をおこなうことを特徴とする。
【００３１】
この請求項８、９の発明によれば、制御コマンドの受信とともに、制御コマンドに付加された複数のコード（認証コードや、同期コード）を取得した場合、もしくは制御コマンドと同時に送信された複数のコード（認証コードや、同期コード）を受信した場合、これらの各コードを用いて、制御コマンドの送信元である主制御基板の動作順序の認証をおこなうことができる。さらに、この認証結果を利用して制御コマンドの正当性を認証することもできる。
【００３２】
また、請求項１０の発明にかかる認証方法は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、前記主制御部において、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、前記認証コード生成工程によって生成された認証コードと、前記同期コード生成工程によって生成された同期コードとを前記制御コマンドに付加する付加工程と、前記制御コマンドを前記周辺部に送信する送信工程と、を含み、前記周辺部において、前記送信工程によって送信された前記制御コマンドを受信する受信工程と、前記受信工程によって受信された制御コマンドに付加された認証コードを用いて、前記主制御部を認証する基板認証工程と、前記受信工程によって受信された制御コマンドに付加された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、を含むことを特徴とする。
【００３３】
この請求項１０の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。また、主制御部は、周辺部における認証処理のために、あらたに認証コードと同期コードとを生成しているが、これらのコードは制御コマンドに付加する。したがって、第三者が主制御部からの出力信号を観察した場合、主制御部からは、不正防止機能を含まない通常の制御信号である制御コマンドのみが出力されるようにみせることができる。
【００３４】
また、請求項１１の発明の発明にかかる認証方法は、制御コマンドを送信する主制御部と、前記主制御部から送信された制御コマンドに基づいて所定の処理をおこなう周辺部と、を備える電子機器における認証方法であって、前記主制御部において、前記周辺部に送信する前記制御コマンドが所定の制御コマンドである場合、当該主制御部を認証するための認証コードを生成する認証コード生成工程と、前記制御コマンドの送信に伴って、前記制御コマンド送信時の当該主制御部の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する同期コード生成工程と、前記制御コマンド、前記認証コードおよび前記同期コードを前記周辺部に送信する送信工程と、を含み、前記周辺部において、前記送信工程によって送信された前記制御コマンド、前記認証コードおよび前記同期コードを受信する受信工程と、前記受信工程によって受信された認証コードを用いて、前記主制御部を認証する基板認証工程と、前記受信工程によって受信された同期コードに含まれているパケット情報の差分を用いて前記制御コマンド送信時の前記主制御部の動作順序を認証する動作認証工程と、前記基板認証工程による認証と、前記動作認証工程による認証との双方が成立した場合に、前記主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証工程と、を含むことを特徴とする。
【００３５】
この請求項１１の発明によれば、主制御部自身を認証するための認証コードと、主制御部から送信される制御コマンドの出力の順序を認証するための同期コードとがそれぞれ認証された場合に、はじめて正規の主制御部から正規の制御コマンドが出力されたことを認証できる。
【００３６】
また、請求項１２の発明にかかる認証プログラムは、請求項１０または１１に記載の認証方法をコンピュータに実行させることができる。
【発明の効果】
【００３７】
本発明にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムによれば、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能とを実現できるという効果を奏する。
【発明を実施するための最良の形態】
【００３８】
（実施の形態）
以下に添付図面を参照して、この発明にかかる電子機器の機能を搭載した遊技機と、この遊技機に搭載されている複数の基板間（主制御基板および周辺基板）の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムの好適な実施の形態を詳細に説明する。
【００３９】
（遊技機の基本構成）
図１は、本発明にかかる電子機器を搭載したぱちんこ遊技機の構成の一例を示す説明図である。遊技盤１０１の下部位置に配置された発射部（図２参照）の駆動によって発射された遊技球は、レール１０２ａ，１０２ｂ間を上昇して遊技盤１０１の上部位置に達した後、遊技領域１０３内を落下する。遊技領域１０３には、図示を省略する複数の釘が設けられ、遊技球を各種の方向に向けて落下させるとともに、落下途中の位置には、遊技球の落下方向を変化させる風車や、入賞口が配設されている。
【００４０】
遊技盤１０１の遊技領域１０３の中央部分には、図柄表示部１０４が配置されている。図柄表示部１０４としては、たとえば液晶表示器（ＬＣＤ）が用いられる。なお、図柄表示部１０４としては、ＬＣＤに限らずＣＲＴなどを用いることもできる。図柄表示部１０４の下方には、始動入賞させるための始動入賞口１０５が配設されている。図柄表示部１０４の左右には、それぞれ入賞ゲート１０６が配設されている。
【００４１】
入賞ゲート１０６は、遊技球の通過を検出し、始動入賞口１０５を一定時間だけ開放させる抽選をおこなうために設けられる。図柄表示部１０４の側部や下方などには普通入賞口１０７が配設されている。普通入賞口１０７に遊技球が入賞すると、普通入賞時の賞球数（たとえば１０個）の払い出しをおこなう。遊技領域１０３の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口１０８が設けられている。
【００４２】
上述した図柄表示部１０４は、特定の入賞口に遊技球が入賞したとき（始動入賞時）に、複数の図柄の表示の変動を開始させ、所定時間後に図柄が停止する。この停止時に特定図柄（たとえば「７７７」）に揃ったとき、大当たり状態となる。大当たり状態のとき、下方に位置する大入賞口１０９が一定の期間開放を所定ラウンド（たとえば１５ラウンド）繰り返し、入賞した遊技球に対応した賞球数を払い出す。
【００４３】
図２は、ぱちんこ遊技機の制御部の内部構成を示すブロック図である。制御部２００は、複数の制御部により構成されている。図示の例では、主制御部２０１と、演出制御部２０２と、賞球制御部２０３とを有する。主制御部２０１は、ぱちんこ遊技機の遊技にかかる基本動作を制御する。演出制御部２０２は、遊技中の演出動作を制御する。賞球制御部２０３は、払い出す賞球数を制御する。
【００４４】
主制御部２０１は、ＲＯＭ２１２に記憶されたプログラムデータに基づき、遊技内容の進行に伴う基本処理を実行するＣＰＵ２１１と、ＣＰＵ２１１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２１３、各検出部２２１〜２２４から各種データを受信するとともに、演出制御部２０２および賞球制御部２０３への各種データの送信をおこなうインタフェース（Ｉ／Ｆ）２１４などを備えて構成される。主制御部２０１は、たとえばいわゆる主制御基板によってその機能を実現する。なお、上述したＲＯＭ２１２に記憶されたプログラムデータとは、プログラムコードや書き換え不可能な固定データを意味する。
【００４５】
この主制御部２０１の入力側には、始動入賞口１０５に入賞した入賞球を検出する始動入賞口検出部２２１と、入賞ゲート１０６を通過した遊技球を検出するゲート検出部２２２と、普通入賞口１０７に入賞した遊技球を検出する普通入賞口検出部２２３と、大入賞口１０９に入賞した入賞球を検出する大入賞口検出部２２４とがＩ／Ｆ２１４を介して接続されている。これらの検出部としては、近接スイッチなどを用いて構成できる。
【００４６】
この主制御部２０１の出力側には、大入賞口開閉部２３１が接続され、この大入賞口開閉部２３１の開閉を制御する。大入賞口開閉部２３１は、大当たり時に大入賞口１０９を一定期間開放する機能であり、ソレノイドなどを用いて構成される。この大当たりは、生成した乱数（大当たり判定用乱数）に基づいて所定の確率（たとえば３００分の１など）で発生するようあらかじめプログラムされている。
【００４７】
演出制御部２０２は、主制御部２０１から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてＲＯＭ２４２に記憶されたプログラムデータを実行して遊技中における演出制御をおこなう。この演出制御部２０２は、演出処理を実行するＣＰＵ２４１と、ＣＰＵ２４１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２４３、図柄表示部１０４に表示させる画像データを書き込むＶＲＡＭ２４４、主制御部２０１からの各種データの受信およびランプ制御部２５１や音声制御部２５２への各種データの送信をおこなうインタフェース（Ｉ／Ｆ）２４５などを備えて構成される。演出制御部２０２は、たとえばいわゆる演出基板によってその機能を実現する。また、演出制御部２０２の出力側には、上述した図柄表示部（ＬＣＤ）１０４、ランプ制御部２５１、音声制御部２５２がＩ／Ｆ２４５を介して接続されている。
【００４８】
賞球制御部２０３は、主制御部２０１から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいてＲＯＭ２８２に記憶されたプログラムデータを実行して賞球制御をおこなう。この賞球制御部２０３は、賞球制御の処理を実行するＣＰＵ２８１と、ＣＰＵ２８１の演算処理時におけるデータのワークエリアとして機能するＲＡＭ２８３、主制御部２０１からの各種データの受信および発射部２９２との各種データの送受信をおこなうインタフェース（Ｉ／Ｆ）２８４などを備えて構成される。賞球制御部２０３は、たとえばいわゆる賞球基板によってその機能を実現する。
【００４９】
賞球制御部２０３は、接続される払出部２９１に対して入賞時の賞球数を払い出す制御をおこなう。また、発射部２９２に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。払出部２９１は、遊技球の貯留部から所定数を払い出すためのモータなどからなる。賞球制御部２０３は、この払出部２９１に対して、各入賞口（始動入賞口１０５、普通入賞口１０７、大入賞口１０９）に入賞した遊技球に対応した賞球数を払い出す制御をおこなう。
【００５０】
発射部２９２は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサと、遊技球を発射させるソレノイドなどを備える。賞球制御部２０３は、発射部２９２のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイドなどを駆動させて遊技球を間欠的に発射させ、遊技盤１０１の遊技領域１０３に遊技球を送り出す。
【００５１】
上記構成の主制御部２０１と、演出制御部２０２と、賞球制御部２０３は、それぞれ異なるプリント基板（主制御基板、演出基板、賞球基板）に設けられる。これに限らず、たとえば、賞球制御部２０３は、主制御部２０１と同一のプリント基板上に設けることもできる。
【００５２】
（ぱちんこ遊技機の基本動作）
上記構成によるぱちんこ遊技機の基本動作の一例を説明する。主制御部２０１は、各入賞口に対する遊技球の入賞状況を制御コマンドとして賞球制御部２０３に出力する。賞球制御部２０３は、主制御部２０１から出力された制御コマンドに応じて、入賞状況に対応した賞球数の払い出しをおこなう。
【００５３】
また、主制御部２０１は、始動入賞口１０５に遊技球が入賞するごとに、対応する制御コマンドを演出制御部２０２に出力し、演出制御部２０２は、図柄表示部１０４の図柄を変動表示させ、停止させることを繰り返す。大当たりの発生が決定しているときには、対応する制御コマンドを演出制御部２０２に出力し、演出制御部２０２は、所定の図柄で揃えて停止させる。このとき同時に、大入賞口１０９を開放する制御をおこなう。演出制御部２０２は、大当たり発生期間中、および大当たり発生までの間のリーチ時や、リーチ予告時などには、図柄表示部１０４に対して、図柄の変動表示に加えて各種の演出表示をおこなう。このほか、各種役物に対して特定の駆動をおこなわせたり、ランプ２６１の表示状態を変更させたりといった演出をおこなう。
【００５４】
そして、大当たり発生時には、大入賞口１０９が複数回開放される。１回の開放が１ラウンドとして、たとえば１５回のラウンドが繰り返し実行される。１ラウンドの期間は、遊技球がたとえば１０個入賞したとき、あるいは所定期間（たとえば３０秒）とされている。この際、賞球制御部２０３は、大入賞口１０９に対する球技球１個の入賞あたり、たとえば１５個の賞球数で払い出しをおこなう。大当たり終了後は、この大当たり状態が解除され、通常の遊技状態に復帰する。
【００５５】
（主制御基板および周辺基板の認証処理にかかる機能的構成）
一般的なぱちんこ遊技機では、遊技者からの遊技球の投入に応じて上述したような基本動作を繰り返す。本実施の形態では、このようなぱちんこ遊技機に対して何らかの方法で不正な制御基板が挿入され、遊技者に提供された場合であっても、遊技時に不正な制御基板から出力された不正な制御コマンド（制御信号）を検知する機能を備えている。具体的には、主制御部２０１から送信された制御コマンドの認証をおこない、この認証結果に応じて、不正な制御コマンドを検知する。以下、この制御コマンドを認証するための機能について説明する。
【００５６】
図３は、主制御基板および周辺基板の認証処理にかかる機能的構成を示すブロック図である。図３において、主制御基板３１０は、図２にて説明した主制御部２０１によって構成されている。また、周辺基板３２０は、図２にて説明した演出制御部２０２あるいは、賞球制御部２０３によって構成され、本発明にかかる認証処理をおこなう。
【００５７】
・主制御基板の機能的構成
主制御基板３１０は、周辺基板３２０を動作させるための制御コマンドを送信する機能部であり、制御コマンド出力部３１１と、認証コード生成部３１２と、同期コード生成部３１３と、付加部３１４と、送信部３１５とによって構成される。
【００５８】
制御コマンド出力部３１１には、周辺基板３２０に送信する制御コマンドのデータ（制御コマンドデータ）が格納されている。そして、制御コマンド出力部３１１は、所定のプログラムコードにしたがって、格納されている制御コマンドの中から周辺基板３２０に送信する制御コマンドを選択して、付加部３１４に出力する。
【００５９】
認証コード生成部３１２は、周辺基板３２０に送信する制御コマンドが所定の制御コマンドである場合、主制御基板３１０を認証するための認証コードを生成する。周辺基板３２０では、主制御基板３１０の正当性を認証するための認証コードを用いて認証処理をおこなう。
【００６０】
認証コードは、主制御基板３１０を認証者が正規の主制御基板であると認証するための情報である。具体的には、たとえば、主制御部２０１（図２参照）に格納されたプログラムデータのすべて、もしくは一部から誤り検査値を生成し、この誤り検査値に所定の演算を施した値を認証コードとして利用する。なお、誤り検査値とは、プログラムデータのすべて、もしくは一部からハッシュ関数による演算やパリティチェック、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：ＣＲＣ）、チェックサムなどの誤り検出演算をおこなって得られた値である。
【００６１】
上述のように、認証コード生成部３１２は、主制御基板３１０をあらわす独自の情報から認証コードを生成する。たとえば、正規の主制御基板３１０が不正な基板に交換されたり、正規の主制御基板３１０と周辺基板３２０との間に不正な基板が取り付けられた場合であっても、不正な基板では、主制御基板３１０を認証する認証コードを生成するのは非常に困難である。
【００６２】
したがって、主制御基板３１０の認証コードによる認証が失敗した場合には、不正な基板による制御がおこなわれようとしていることが検知できる。また、今回送信する制御コマンドのデータ自身や付随データを利用して認証コードを生成してもよい。ここで述べている付随データとは、制御コマンドの内容に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドに基づく処理に必要なデータである。この場合、不正な制御基板による認証コードの再利用を防止して、より確実に周辺基板３２０への不正制御を検出させることができる。
【００６３】
同期コード生成部３１３は、制御コマンド出力部３１１における制御コマンドの送信に伴って、制御コマンド送信時の主制御基板３１０の動作検査値として連続して出力されたパケット情報を含んだ同期コードを生成する。生成された同期コードは、付加部３１４に出力される。
【００６４】
ここで、同期コードについて詳しく説明する。同期コードは、主制御基板３１０による制御コマンドの送信が継続して実行されていることを確認するための情報である。上述したように、同期コードは、主制御基板３１０の制御コマンドの生成に伴って、連続した出力タイミングで出力されたパケット情報が含まれている。この連続したタイミングで出力されたパケット情報は、所定の間隔の相関関係を有している。したがって、後述する動作認証部３２３では、この複数のパケット情報同士の相関関係を求めることによって主制御基板３１０の動作の継続性を認証する。なお、同期コードは、パケット情報として取得した値をそのまま利用してもよいし、これらの値に所定の演算を施して暗号化した値を利用してもよい。
【００６５】
このように、所定の制御コマンドが出力された際に同期コードを参照することによって、主制御部３１０にて実行されている動作が継続しておこなわれているか否かを簡易的に判定することができる。したがって、図１５にて説明したような、不正な制御基板１４０１の内部に信号切替回路１４０３が搭載されてしまうような不正行為への防御策を講じることができる。具体的には、同期コードによって認証した動作順序が継続した動作であると判定できなければ、主制御基板３１０から送信された制御コマンド以外の不正な制御基板から送信された制御コマンドであると判断し、不正制御を検知することができる。
【００６６】
付加部３１４は、認証コード生成部３１２によって生成された認証コードを制御コマンド出力部３１１から出力された制御コマンドに付加する。同じく、付加部３１４は、同期コード生成部３１３によって生成された同期コードを制御コマンドに付加する。各コードが付加された制御コマンドは、付加部３１４から送信部３１５に出力される。
【００６７】
また、送信部３１５は、認証コードと同期コードとが付加された制御コマンドを周辺基板３２０に送信する。なお、本実施の形態において「制御コマンドを送信する」とは、「制御コマンドデータを含む制御信号を送信する」との意味であり、たとえば認証コードや、その他上述したような付随データの有無は考慮しないものとする。
【００６８】
また、上述した認証コード生成部３１２や、同期コード生成部３１３では、それぞれ独立して各コードを生成しているが、コード生成の際に、一方のコードを利用してもよい。たとえば、認証コード生成部３１２は、同期コード生成部３１３によって同期コードを生成する際に利用する情報（たとえば、計時時間の情報）の一部もしくはすべてと、主制御部３１０の動作検査値として連続して出力されたパケット情報とを用いた所定の演算によって認証コードを生成してもよい。また、逆の手順を用いて、同期コード生成部３１３が、認証コード生成部３１２によって認証コードを生成する際に利用する情報（たとえば、誤り検査値）の一部もしくはすべてと、制御コマンド送信時の主制御基板３１０の動作順序の検査値とを用いた所定の演算によって同期コードを生成してもよい。
【００６９】
なお、上述した構成では、認証コードと、同期コードとが制御コマンドに付加される構成を説明したが、認証コードと同期コードとを制御コマンドを認証するための認証データとして、制御コマンドと別々に送信するような構成であってもよい。この場合は、送信部３１６からは、制御コマンドと、各コードとのそれぞれを送信する。
【００７０】
また、上述した認証コードと、同期コードとを制御コマンドに付加して送信する手法と、認証コードと同期コードとを制御コマンドと別々に送信する手法とのいずれの場合も、送信する制御コマンドのデータ自身や付随データを利用して認証コードと同期コードとを生成してもよい。ここで述べている付随データとは、制御コマンドの内容に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドに基づく処理に必要なデータである。このような付随データを利用した場合、不正な制御基板による認証コードの再利用を防止することができる。したがって、より確実に周辺基板３２０への不正制御を検出させることができる。
【００７１】
・周辺基板の機能的構成
つぎに、周辺基板３２０の機能的構成について説明する。図３のように、周辺基板３２０は、受信部３２１と、基板認証部３２２と、動作認証部３２３と、制御コマンド認証部３２４とによって構成される。
【００７２】
受信部３２１は、主制御基板３１０の送信部３１６によって送信された制御コマンドを受信する。なお、上述したように、制御コマンドと別に認証コードや同期コードが送信された場合には、制御コマンドと、この制御コマンドの認証データとして認証コードや、同期コードを受信する。
【００７３】
ここで、制御コマンドに認証コードや同期コードが付加されている場合の受信部３２１の機能について、より詳細に説明する。制御コマンドに認証コードや同期コードが付加されている場合、受信部３２１では、制御コマンドに各種コードが付加されているか否かの判断をおこなわなければならない。
【００７４】
通常、主制御基板３１０では、制御コマンドに認証コードや同期コードを付加する場合、任意のルールにしたがった付与処理がおこなわれる。たとえば、制御コマンドを８ビットとした場合のルールとして、主制御基板３１０は、上位側の５ビットを実際の制御コマンド用に割り当て、下位側の３ビットを認証コードや同期コードの付与用に割り当てたものを制御コマンドとして送信する。
【００７５】
上述のような送信処理の場合、周辺基板３２０の受信部３２１は、受信した制御コマンドの下位側の３ビットを参照して、認証コードや同期コードが付与されているか否かを判断するように設定する。そして、受信した制御コマンドに認証コードや同期コードが付与されていた場合には、その認証コードもしくは同期コードを用いて下記に示す処理によって制御コマンドの認証をおこなう。
【００７６】
また、他のルールとして、主制御基板３１０は、上述のように単純に制御コマンドとその他コード（認証コードや同期コード）のビットを繋ぎ合わせるのではなく、制御コマンドとその他コードとの双方が８ビットの値から構成され、これら８ビットの値を加算したものを認証コードや同期コードが付与された制御コマンドとして送信する。
【００７７】
上述のような送信処理の場合、周辺基板３２０の受信部３２１は、受信した制御コマンドから、今回主制御基板３１０から送信される制御コマンドであると期待される制御コマンド（８ビットの値）を減算する。この期待される制御コマンドは、周辺基板３２０が正規の基板であれば、前回や前々回に受信し、なおかつ、周辺基板３２０によって認証された（具体的な認証手順は、後述する）制御コマンドから容易に特定することができる。また、リセット直後など、前回や前々回に受信した制御コマンドの記録は蓄積されていない場合は、初期化指示をあらわす制御コマンドが送信されると特定することができる。
【００７８】
したがって、周辺基板３２０の受信部３２１は、制御コマンド（８ビットの値）を減算後の値を認証コードもしくは同期コードとして下記に示す処理によって制御コマンドの認証をおこなう。なお、このとき、受信した制御コマンドから減算する値を認証コードもしくは同期コードとし、減算後の値が期待される制御コードであるか否かを判定してもよい。
【００７９】
基板認証部３２２は、受信部３２１によって受信された制御コマンドに付加された認証コードを用いて、主制御基板３１０を認証する。このとき、認証コードに所定の演算（暗号化）が施されている場合には、主制御基板３１０の認証コード生成部３１２の演算処理の内容に応じて、所定の演算をおこない、認証コードを取得する。そして、この認証コードが、主制御基板３１０をあらわす検査値であった場合、主制御基板３１０を正規の基板であると認証する。なお、基板認証部３２２は、受信部３２１によって直接認証コードを受信した場合には、この認証コードを用いて主制御基板３１０を認証する。
【００８０】
動作認証部３２３は、受信部３２１によって受信された制御コマンドに付加された同期コードを用いて、制御コマンド送信時の主制御基板の動作順序を認証する。上述したように、同期コードには連続するタイミングで生成された複数のパケット情報が含まれている。したがって、これら複数のパケット情報の差分を求めることによって、パケット情報同士が所定の相関関係が保たれているか否かを判断することができる。所定の相関関係が保たれている場合には、制御コマンド送信処理が継続性をもっており、他の不正な制御基板から送信された制御コマンドではないため、正しい動作順序であると認証される。
【００８１】
ここでも、同期コードに所定の演算が施されている場合には、主制御基板３１０の同期コード生成部３１４の演算処理の内容に応じて、所定の演算をおこない、同期コードを取得する。そして、この同期コードが、主制御基板３１０の動作の継続状態をあらわす検査値であった場合（すなわち、連続した出力タイミングで出力されたパケット情報によって生成されている値である場合）、主制御基板３１０の動作が正しい順序の動作であると認証する。なお、基板認証部３２２は、受信部３２１によって直接同期コードを受信した場合には、この同期コードを用いて主制御基板３１０の動作順序の認証をおこなう。
【００８２】
また、上述の説明では、基板認証部３２２と、動作認証部３２３とはそれぞれ独立して認証処理をおこなっているが、認証コードの一部を利用して同期コードを生成している、または、同期コードの一部を利用して認証コードを生成しているような場合には、どちらか一方のコードの認証が終了した後に、もう一方のコードの認証をおこなう。
【００８３】
制御コマンド認証部３２４は、基板認証部３２２による認証と、動作認証部３２３による認証との双方が成立した場合に、主制御基板３１０が正しい制御コマンドを出力していると認証する。ここで、どちらか一方の認証が失敗した場合には、不正な制御基板から不正制御をおこなうための不正な制御コマンド（不正な制御信号）が出力されていると判断され、不正制御が検知される。
【００８４】
以上説明したように、被認証者である主制御基板３１０には、認証者である周辺基板３２０によって認証処理をおこなうために、認証コードと同期コードとの二種類のコードを生成する機能を備えている。これら、二種類のコードは、所定の制御コマンドの送信と連動して生成される。また、周辺基板３２０では、送信された二種類のコードを用いてそれぞれ異なる方式で認証をおこなう。そして、双方の認証が成功して、はじめて正しい制御コマンドを受信したと認証する。
【００８５】
なお、本実施の形態では、同一の電子機器内に被認証者の主制御基板３１０と、認証者の周辺基板３２０とが搭載されている例を挙げているが、異なる電子機器に搭載された主制御基板と周辺基板とが、制御部−被制御部の関係となる場合もある。
【００８６】
このような場合、たとえば、被制御部に対して制御コマンドを送信する主制御基板は、被制御部に送信する制御コマンドが所定の制御コマンドである場合、主制御基板および動作内容に関する情報を認証するための認証用のコード（本実施の形態では、認証コードや同期コード）を異なる認証方式で複数個生成するコード生成部と、制御コマンドとともに、複数のコードを被制御部に送信する送信部を備えていればよい。
【００８７】
また、制御部から制御コマンドを受信する周辺基板は、主制御基板３１０から送信された制御コマンドとともに制御部に関する情報を認証する認証方式の異なる複数のコードとを受信する受信部と、受信された複数のコードを用いて、それぞれ主制御部に関する情報を認証するコード認証部と、コード認証部による認証結果に応じて、主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証部とを備えていればよい。
【００８８】
（認証処理の手順）
つぎに、図３によって説明した主制御基板３１０から出力される制御コマンドの認証処理の手順について説明する。上述したように、本実施の形態では、主制御基板３１０からの制御コマンドの送信に伴い、認証コードと同期コードとの二つのコードが周辺基板３２０に送信される。周辺基板３２０では、主制御基板３１０から送信された二つのコードを利用して受信した制御コマンドが正規の主制御基板３１０から送信された制御コマンドであるか否かを認証する。以下に、同期コードと認証コードを用いた主制御基板３１０および周辺基板３２０それぞれの認証処理の手順について説明する。
【００８９】
・制御コマンド送信処理
図４−１は、本発明にかかる主制御基板の制御コマンド送信処理の手順を示すフローチャートである。図４−１のフローチャートにおいて、まず、制御コマンド出力部３１１から所定の制御コマンドが出力されたか否かを判断する（ステップＳ４１１）。ここで、所定の制御コマンドが出力されるまで待ち（ステップＳ４１１：Ｎｏのループ）、所定の制御コマンドが出力されると（ステップＳ４１１：Ｙｅｓ）、制御コマンドが認証コード生成部３１２に入力され、認証コード生成部３１２によって主制御基板３１０を認証するための認証コードを生成する（ステップＳ４１２）。
【００９０】
また、同期コード生成部３１３では、ステップＳ４１１によって出力された制御コマンドの動作順序に応じた主制御基板３１０の同期コードを生成する（ステップＳ４１３）。認証コードと同期コードとの双方が生成されると、付加部３１４によって、制御コマンドにステップＳ４１２、ステップＳ４１３によって生成された各コード（認証コード、同期コード）を付加する（ステップＳ４１４）。最後に、送信部３１５から、制御コマンドを周辺基板３２０に送信し（ステップＳ４１５）、一連の処理を終了する。
【００９１】
以上説明した制御コマンド送信処理において、認証コードと同期コードの生成順序は特に限定されないが、上述したように認証コードを用いて同期コードを生成する場合や同期コードを用いて認証コードを生成する場合には、他のコードを生成する際に利用されるコードを先に生成する。
【００９２】
・制御コマンド受信処理
図４−２は、本発明にかかる周辺基板の制御コマンド受信処理の手順を示すフローチャートである。図４−２のフローチャートにおいて、まず、受信部３２１において、制御コマンドを受信したか否かを判断する（ステップＳ４２１）。ここで、制御コマンドを受信するまで待ち（ステップＳ４２１：Ｎｏのループ）、制御コマンドを受信すると（ステップＳ４２１：Ｙｅｓ）、制御コード認証部３２２において、制御コマンドに付加された認証コードを用いて主制御基板３１０を認証する（ステップＳ４２２）。
【００９３】
ステップＳ４２２の処理において認証が成功したか否かを判断し（ステップＳ４２３）、認証が成功した場合（ステップＳ４２３：Ｙｅｓ）、ステップＳ４２１において受信した制御コマンドに付加された同期コードを用いて主制御基板３１０の動作順序を認証する（ステップＳ４２４）。そして、ステップＳ４２４の処理において認証が成功したか否かを判断し（ステップＳ４２５）、認証が成功した場合（ステップＳ４２５：Ｙｅｓ）、ステップＳ４２１において受信した制御コマンドを正しい信号とし認証し（ステップＳ４２６）、一連の処理を終了する。
【００９４】
なお、ステップＳ４２３、ステップＳ４２５において、認証が失敗した場合（ステップＳ４２３：Ｎｏ，ステップＳ４２５：Ｎｏ）、ステップＳ４２１において受信した制御コマンドを不正な制御コマンドとして検知して（ステップＳ４２７）、一連の処理を終了する。
【００９５】
以上説明したように、被認証者である主制御基板３１０には、認証者である周辺基板３２０によって認証処理をおこなうために、認証コードと相対時間コードとの二種類のコードを生成する機能を備えている。これら、二種類のコードは、所定の制御コマンドの送信と連動して生成される。また、周辺基板３２０では、送信された二種類のコードを用いてそれぞれ異なる方式で認証をおこなう。そして、双方の認証が成功して、はじめて正しい制御コマンドを受信したと認証する。
【００９６】
なお、本実施の形態では、同一の電子機器内に被認証者の主制御基板３１０と、認証者の周辺基板３２０とが搭載されている例を挙げているが、異なる電子機器に搭載された主制御基板と周辺基板とが、制御部−被制御部の関係となる場合もある。
【００９７】
このような場合、たとえば、被制御部に対して制御コマンドを送信する主制御基板は、被制御部に送信する制御コマンドが所定の制御コマンドである場合、主制御基板および動作内容に関する情報を認証するための認証用のコード（本実施の形態では、認証コードや相対時間コード）を異なる認証方式で複数個生成するコード生成部と、制御コマンドとともに、複数のコードを被制御部に送信する送信部を備えていればよい。
【００９８】
また、制御部から制御コマンドを受信する周辺基板は、制御部から送信された制御コマンドとともに主制御部に関する情報を認証する認証方式の異なる複数のコードとを受信する受信部と、受信された複数のコードを用いて、それぞれ主制御部に関する情報を認証するコード認証部と、コード認証部による認証結果に応じて、主制御部が正しい制御コマンドを出力していると認証する制御コマンド認証部とを備えていればよい。
【００９９】
このように、複数のコードを認証データとして、それぞれ認証するような構成であれば、主制御基板３１０や周辺基板３２０の処理能力が低い場合であっても、各認証処理を処理負荷の軽いものに設定すれば、認証処理の内容の組み合わせと、認証回数とによって認証強度を高めることができる。また、複数のコードのうち、認証処理の正否を正規の制御コマンドを受信したか否かの判断に利用しないダミーのコードを含めてもよい。このようなダミーのコードを含ませることによって、第三者による認証コードの解析をより困難にすることができる。
【０１００】
（認証処理の実施例）
つぎに、主制御基板３１０と周辺基板３２０による認証処理の具体的な実施例１〜６について説明する。ここでは、上述したように、主制御基板３１０から所定の制御コマンドが送信される際の認証コードと同期コードと生成と送信のタイミング、また、周辺基板３２０による受信と認証のタイミングに限定して説明する。
【０１０１】
・同期コードの生成および認証
まず、本発明の特徴となっている同期コードの生成と認証について詳細に説明する。同期コードには、主制御基板３１０によって生成されるパケット情報のうち少なくとも２つの（２回分の）連続する出力タイミングによって出力されたパケット情報が含まれている。ここで述べている出力タイミングとは、主制御基板３１０の処理速度に応じた出力タイミングである。すなわち、１クロックタイミングごとにパケット情報を出力可能であれば、１クロックタイミングごとが出力タイミングとなり、４クロックタイミングごとにパケット情報を出力可能であれば、４クロックタイミングごとが出力タイミングとなる。
【０１０２】
このような連続した出力タイミングで出力された２つのパケット情報同士の相関情報から同期状態を検証する。たとえば、１回目のパケット（以下、「パケット１」という）の基本値＝０ｘ０３、２回目のパケット（以下、「パケット２」という）の基本値＝０ｘ０５であり、パケット１とパケット２との相関条件（認証成立条件）は「＋２」となる。そして、主制御基板から送信するパケット１の検査値は、基本値のままの０ｘ０３となり、パケット２の検査値は、パケット１＋パケット２すなわち、０ｘ０３＋０ｘ０５となり、「０ｘ０８」が送信される。
【０１０３】
そして、周辺基板３２０において受信するパケット１は、基本値のままの０ｘ０３となり、パケット２は、０ｘ０８となる。そして、パケット２の基本値を算出するため、受信したパケット２からパケット１を引き、０ｘ０８−０ｘ０３＝０ｘ０５を求める。
【０１０４】
パケット１とパケット２との双方の基本値が求まると、２つのパケットの相関関係を求める。すなわち、パケット２基本値−パケット１基本値＝０ｘ０５−０ｘ０３となり、相関値は０ｘ０２となる。この値は、パケット１の基本値とパケット２の基本値との相関条件（＋２であること）を満たすので認証成立と判断される。
【０１０５】
なお、パケット１とパケット２を用いた演算処理において、演算結果が桁あふれしないように桁数を調整してもよいし、桁あふれしない数値範囲でパケット１とパケット２の基本値を選定してもよいし、さらに、符号なし演算として計算してもよい。また、認証強度を上げるために、認証処理ごとに相関条件を変更してもよい。たとえば、１回目の相関条件は「＋２」、２回目の相関条件は「＋５」、３回目の相関条件は「＋１」などとしてもよい。ただし、上述のような相関関係の変更ルールを適用する場合には、あらかじめ主制御基板３１０と周辺基板３２０との相互で共有しておくか、通知する手段や工程を用意しておく。
【０１０６】
また、単純に連続するパケット情報を送信しただけでは、第三者にパケット情報の差分を解析されてしまう可能性もある。したがって、解析を防ぐために基本値に前処理を施してもよい。たとえば、パケット情報の基本値に排他的論理和演算などの各種演算処理を施してもよい。また、基本値への前処理は、パケット１とパケット２のような連続した出力タイミングによって出力された２つのパケット情報のうちのいずれか一方にのみ施してもよいし、双方に施してもよい。
【０１０７】
＜実施例１：同期コードを基準に認証＞
実施例１では、同期コードを基準に認証をおこなう。図５は、実施例１の認証処理の手順を示すフローチャートである。図５のフローチャートのように、被認証者である主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータ（制御コマンドに関連するデータがある場合）を生成する（ステップＳ５０１）。そして、このステップＳ５０１の生成処理をトリガに、正規のＣＰＵの同期コードＶｓｎを生成する（ステップＳ５０２）。
【０１０８】
ステップＳ５０２において生成される同期コードＶｓｎは、下記（１）式となる。なお、ここでは、一回の認証処理について説明しているため、ｎ＝０からスタートしたとする。したがって、ここでは同期コードＶｓ０となる。また、変数Ｓｎの値の好適な例としては、たとえば、継続動作検査値とソルト値との演算結果値が挙げられる。
【０１０９】
同期コードＶｓｎ＝Ｅｃ（Ｓｎ，Ｂｎ）      …（１）
Ｅｃ（）：暗号化演算式
Ｓｎ    ：動作の継続動作を認証可能な継続動作検査値（たとえば、連続した同期パケット）
Ｂｎ    ：付加情報（任意に設定可能な値であり、カウンタ値や擬似乱数などの動的に変更する値）
ｎ      ：処理順序（ここでは初期値＝０から開始）
【０１１０】
同期コードＶｓ０が生成されると、続いて、正規のＣＰＵの誤り検査値であるＣｎを用いて正規のＣＰＵの認証コードＶｃｎが生成される（ステップＳ５０３）。このステップＳ５０３において生成される認証コードＶｃｎは、下記（２）式となり、ステップＳ５０３において生成された同期コードＶｓｎの生成式に用いた変数Ｓｎを含んだ構成となっている。なお、変数Ｓｎにかわって、同期コードの生成式に用いた変数Ｂｎを含んだ構成にしてもよい。さらに、変数Ｓｎ，Ｂｎの双方を含んだ構成であってもよい。また、Ｃｎの値の好適な例としては、たとえば、誤り検査値とソルト値との演算結果値が挙げられる。
【０１１１】
認証コードＶｃｎ＝Ｅｃ（Ｃｎ，Ｓｎ）または＝Ｅｃ（Ｃｎ，Ｂｎ）      …（２）
Ｃｎ    ：プログラムコード／データから生成した誤り検査値
【０１１２】
ステップＳ５０３ではｎ＝０番目の処理であるため生成されるコードは、認証コードＶｃ０となる。同期コードＶｓ０と認証コードＶｃ０とが生成されると、まず、ステップＳ５０１にて生成した制御コマンドおよびデータを、周辺基板３２０に送信し（ステップＳ５０４）、続いて、同期コードＶｓ０を周辺基板３２０に送信し（ステップＳ５０５）、さらに、認証コードＶｃ０を周辺基板３２０に送信し（ステップＳ５０６）、一回の認証処理にかかる主制御基板３１０の処理が終了する。
【０１１３】
一方、認証者側の周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータと、同期コードＶｓ０と認証コードＶｃ０との受信をトリガに認証処理を開始する。まず、同期コードＶｓ０を認証する（ステップＳ５１１）。ここで、同期コードを認証するには、下記（３）式を用いて変数Ｓｎを復号化しなければならない。
【０１１４】
Ｓｎ＝Ｄｃ（Ｖｓｎ，Ｂｎ）      …（３）
Ｄｃ（）：復号化演算式
【０１１５】
続いて、主制御基板３１０から送信された認証コードＶｃ０を認証する（ステップＳ５１２）。ここでも、下記（４）式を用いて変数Ｓｎもしくは変数Ｂｎを復号化しなければならない。
【０１１６】
Ｃｎ＝Ｄｃ（Ｖｃｎ，ＳｎまたはＢｎ）      …（４）
【０１１７】
このステップＳ５１１およびステップＳ５１２の双方の認証が完了してはじめて、制御コマンドおよびデータの処理が可能となり（ステップＳ５１３）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって同期コードＶｓ１、認証コードＶｃ１が生成される。
【０１１８】
ここで、上述の処理を用いた具体的な計算例を例示する。ここでは一例として暗号化演算Ｅｃ（Ａ，Ｂ）とした場合、ＡｘｏｒＢを実行し、復号化演算Ｄｃ（Ａ，Ｂ）としてＡｘｏｒＢを実行する。そして、Ａ＝０ｘ１１，Ｂ＝０ｘ２２であった場合、Ｅｃ（０ｘ１１，０ｘ２２）⇒０ｘ１１  ｘｏｒ  ０ｘ２２⇒０ｘ３３となる（⇒：演算処理）。したがって、Ａ，Ｂとしては、上述したように、変数Ｓｎ，Ｂｎ，Ｃｎなどが用いられるため、Ｓ０＝０ｘ１１，Ｂ０＝０ｘ０１，Ｃ０＝０ｘ７７であった場合、Ｖｓ０＝Ｅｃ（０ｘ１１，０ｘ０１）⇒０ｘ１１  ｘｏｒ  ０ｘ０１⇒０ｘ１０となる。つぎに、Ｖｃ０＝Ｅｃ（０ｘ７７，０ｘ１１）⇒０ｘ７７  ｘｏｒ  ０ｘ１１⇒０ｘ６６となる。この時、被認証者である主制御基板３１０は、０ｘ１０と０ｘ６６とを送信する。
【０１１９】
そして被認証者である周辺基板３２０は、０ｘ１０と０ｘ６６とを受信して復号する。Ｓ０＝Ｄｃ（０ｘ１０，０ｘ０１）⇒０ｘ１０  ｘｏｒ  ０ｘ０１⇒０ｘ１１となる。そして、周辺基板３２０は、０ｘ１１が期待される誤り検査値であるか否かを判定する。たとえば、検査値＝期待値＝０ｘ１１であれば認証成立となる。
【０１２０】
したがって、Ｃ０＝Ｄｃ（０ｘ６６，０ｘ１１）⇒０ｘ６６  ｘｏｒ  ０ｘ１１⇒０ｘ７７となる。そして、つぎに、認証者は０ｘ７７が期待される誤り検査値であるか否かを判定する。ここでも、たとえば、検査値＝期待値＝０ｘ７７であれば認証成立となる。
【０１２１】
このように実施例１の場合、認証コードＶｃ０には、同期コードＶｓ０の生成式の変数が含まれているため、認証コードＶｃ０の認証には、同期コードＶｓ０の受信および認証が必須となる。
【０１２２】
＜実施例２：認証コードを基準に認証＞
図６は、実施例２の認証処理の手順を示すフローチャートである。実施例２では、認証コードを基準に認証する。図６のフローチャートのように、被認証者である主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータ（制御コマンドに関連するデータがある場合）を生成する（ステップＳ６０１）。そして、このステップＳ６０１の生成処理をトリガに、正規のＣＰＵの認証コードＶｃｎを生成する（ステップＳ６０２）。
【０１２３】
ステップＳ６０２において生成される認証コードＶｃｎは、下記（５）式となる。なお、上述したように、ここでは一回の認証処理について説明しているため、ｎ＝０からスタートしたとする。したがって、ここでは正確には認証コードＶｃ０となる。
【０１２４】
認証コードＶｃｎ＝Ｅｃ（Ｃｎ，Ｂｎ）      …（５）
【０１２５】
認証コードＶｃ０が生成されると、続いて正規のＣＰＵの同期コードＶｓ０が生成される（ステップＳ６０３）。このステップＳ６０２において生成される同期コードＶｓ０は、下記（６）式となり、ステップＳ６０１において生成された認証コードの生成式の変数Ｃｎを含んだ構成となっている。ここでも、変数Ｃｎに替わって、認証コードの生成式に用いた変数Ｂｎを含んだ構成にしてもよい。さらに、変数Ｃｎ，Ｂｎの双方を含んだ構成であってもよい。
【０１２６】
同期コードＶｓｎ＝Ｅｃ（Ｓｎ，Ｃｎ）または＝Ｅｃ（Ｓｎ，Ｂｎ）      …（６）
【０１２７】
認証コードＶｃ０と同期コードＶｓ０とが生成されると、まず、ステップＳ６０１にて生成した制御コマンドおよびデータを、周辺基板３２０に送信し（ステップＳ６０４）、続いて、認証コードＶｃ０を周辺基板３２０に送信する（ステップＳ６０５）。そして、さらに、同期コードＶｓ０を周辺基板３２０に送信し（ステップＳ６０６）、一回の認証処理にかかる主制御基板３１０の処理が終了する。
【０１２８】
一方、認証者である周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータと、同期コードＶｓ０と認証コードＶｃ０との受信をトリガに認証処理を開始する。まず、認証コードＶｃ０を認証する（ステップＳ６１１）。ここで、認証コードＶｃ０を認証するには、下記（７）式を用いて変数Ｃｎを復号化しなければならない。
【０１２９】
Ｃｎ＝Ｄｃ（Ｖｃｎ，Ｂｎ）      …（７）
【０１３０】
続いて、主制御基板３１０から送信された同期コードＶｓ０を認証する（ステップＳ６１２）。ここでも、下記（８）式を用いて変数ＣｎもしくはＢｎを復号化しなければならない。
【０１３１】
Ｃｎ＝Ｄｃ（Ｖｓｎ，ＣｎまたはＢｎ）      …（８）
【０１３２】
このステップＳ６１１およびステップＳ６１２の双方の認証が完了してはじめて、制御コマンドおよびデータの処理が可能となり（ステップＳ６１３）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって認証コードＶｃ１、同期コードＶｓ１が生成される。このように実施例２の場合、同期コードＶｓｎには、認証コードＶｃ０の生成式の変数が含まれているため、同期コードＶｓ０の認証には、認証コードＶｃ０の受信および認証が必須となる。
【０１３３】
＜実施例３：実施例１の認証を複数回ごとに実行＞
実施例３では、実施例１の認証を複数回ごとに実行する。図７は、実施例３の認証処理の手順を示すフローチャートである。図７のフローチャートでは、図５のフローチャートと同様に、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータ、同期コードＶｓ０、認証コードＶｃ０を生成する（ステップＳ７０１〜ステップＳ７０３）。ステップＳ７０１〜ステップＳ７０３の処理によって生成された各データ（制御コマンドおよびデータ、同期コードＶｓ０、認証コードＶｃ０）は、周辺基板３２０へ送信される（ステップＳ７０４〜ステップＳ７０６）。
【０１３４】
周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータ、同期コードＶｓ０、認証コードＶｃ０を受信すると、そのまま制御コマンドおよびデータの処理をおこなう（ステップＳ７１１）。
【０１３５】
そして、主制御基板３１０では、つぎの生成処理に移行する（ｎ＝１）。したがって、制御コマンドおよびデータを生成すると（ステップＳ７０７）、同期コードＶｓ１、認証コードＶｃ１を生成する（ステップＳ７０８，ステップＳ７０９）。そして、生成された各データ（制御コマンドおよびデータ、同期コードＶｓ１、認証コードＶｃ１）は、周辺基板３２０へ送信される（ステップＳ７１０〜ステップＳ７１２）。
【０１３６】
周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータ、同期コードＶｓ１、認証コードＶｃ１の受信をトリガに認証処理を開始する。まず、同期コードＶｓ０，Ｖｓ１を認証する（ステップＳ７１２）。続いて、主制御基板３１０から送信された認証コードＶｃ０，Ｖｃ１を認証する（ステップＳ７１３）。
【０１３７】
なお、同期コードＶｓ０，Ｖｓ１は、連続して認証してもよいし、認証コードＶｃ０の認証が終了した後に同期コードＶｓ１を認証し、その後認証コードＶｃ１を認証するような手順であってもよい。ｎの順番で認証をおこなう場合、認証エラーが発生した場合に、どの処理順序において不正処理が発生したかを即座に確認することができる。
【０１３８】
上述したようなステップＳ７１２およびステップＳ７１３の認証がすべて完了してはじめて、ｎ＝１回目に送信された制御コマンドおよびデータの処理が可能となり（ステップＳ７１４）、一回の認証処理を終了する。このように、実施例３では、制御コマンドおよびデータを複数回送信するたびに、１回の認証処理をおこなうため、周辺基板３２０における処理負担を軽減することができる。
【０１３９】
＜実施例４：実施例２の認証を複数回ごとに実行＞
実施例４では、実施例２の認証を複数回ごとに実行する。図８は、実施例４の認証処理の手順を示すフローチャートである。図８のフローチャートでは、図６のフローチャートと同様に、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータ、認証コードＶｃ０、同期コードＶｓ０を生成する（ステップＳ８０１〜ステップＳ８０３）。ステップＳ８０１〜ステップＳ８０３の処理によって生成された各データ（制御コマンドおよびデータ、認証コードＶｃ０、同期コードＶｓ０）は、周辺基板３２０へ送信される（ステップＳ８０４〜ステップＳ８０６）。
【０１４０】
周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータ、認証コードＶｃ０、同期コードＶｓ０を受信すると、そのまま制御コマンドおよびデータの処理をおこなう（ステップＳ８１１）。
【０１４１】
そして、主制御基板３１０では、つぎの生成処理に移行する（ｎ＝１）。したがって、制御コマンドおよびデータを生成すると（ステップＳ８０７）、認証コードＶｃ１、同期コードＶｓ１を生成する（ステップＳ８０８、ステップＳ８０９）。そして、生成された各データ（制御コマンドおよびデータ、認証コードＶｃ１、同期コードＶｓ１）は、周辺基板３２０へ送信される（ステップＳ８１０〜ステップＳ８１２）。
【０１４２】
周辺基板３２０では、主制御基板３１０から送信された制御コマンドおよびデータ、認証コードＶｃ１、同期コードＶｓ１の受信をトリガに認証処理を開始する。まず、認証コードＶｃ０，Ｖｃ１を認証する（ステップＳ８１２）。続いて、主制御基板３１０から送信された同期コードＶｓ０，Ｖｓ１を認証する（ステップＳ８１３）。ここでも、認証コードＶｃ０，Ｖｃ１は、連続して認証してもよいし、同期コードＶｓ０の認証が終了した後に認証コードＶｃ１を認証し、その後同期コードＶｓ１を認証するような手順であってもよい。
【０１４３】
上述のようなステップＳ８１２およびステップＳ８１３の認証がすべて完了してはじめて、ｎ＝１回目に送信された制御コマンドおよびデータの処理が可能となり（ステップＳ８１４）、一回の認証処理を終了する。このように、実施例４では、制御コマンドおよびデータを複数回送信するたびに、１回の認証処理をおこなうため、周辺基板３２０における処理負担が軽減できる。
【０１４４】
＜実施例５：実施例１（同期コードを基準に認証）の変形例１＞
実施例５は、実施例１を変形した認証処理をおこなう。図９は、実施例５の認証処理の手順を示すフローチャートである。実施例５では、同期コードＶｓｎが所定回数認証された後、認証コードＶｃの認証をおこなう。図９のフローチャートのように、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータを生成する（ステップＳ９０１）。そして、このステップＳ９０１の生成処理をトリガに、正規のＣＰＵの同期コードＶｓｎを生成する（ステップＳ９０２）。このステップＳ９０１によって生成される同期コードＶｓｎは、実施例１のステップＳ５０２によって生成された同期コードＶｓ０に相当する。
【０１４５】
つぎに、ステップＳ９０１によって生成された制御コマンドおよびデータと、ステップＳ９０２によって生成された同期コードＶｓ０を周辺基板３２０に送信する（ステップＳ９０３、ステップＳ９０４）。周辺基板３２０では、ステップＳ９０４によって送信された同期コードＶｓ０を認証し（ステップＳ９１１）、認証が完了すると、ステップＳ９０３によって送信された制御コマンドおよびデータの処理をおこなう（ステップＳ９１２）。
【０１４６】
ステップＳ９０４の送信が終了した主制御基板３１０は、ｎ＝１回目の処理に移行する。まず、制御コマンドおよびデータを生成し（ステップＳ９０５）、続いて、同期コードＶｓ１を生成する（ステップＳ９０６）。そして、生成された同期コードＶｓ１の生成をトリガに、正規のＣＰＵの認証コードＶｃ０を生成する（ステップＳ９０７）。なお、このステップＳ９０７においてはじめて認証コードが生成されるため認証コードＶｃ０となるが、同期コードはｎ＝１の処理に移行しているため、利用する値は下記（９）式のようになっている。
【０１４７】
認証コードＶｃ０＝Ｅｃ（Ｃ０，Ｓ１）  …（９）
【０１４８】
上記（９）式に示したように、認証コードＶｃ０には、ｎ＝１回目に生成された同期コードＶｓ１の生成式の変数Ｓ１が含まれている。なお、このとき、変数Ｓ１に替わって変数Ｂ１を含んでもよいし、変数Ｓ０，Ｓ１または変数Ｂ０，Ｂ１との合成数（たとえば、四則演算など）を含んでもよい。
【０１４９】
主制御基板３１０は、同期コードＶｓ１と認証コードＶｃ０との生成が終わると、制御コマンドおよびデータと、同期コードＶｓ１と認証コードＶｃ０とをそれぞれ周辺基板３２０に送信する（ステップＳ９０８〜ステップＳ９１０）。以上のステップによって、一回の認証処理にかかる主制御基板３１０の処理が終了する。
【０１５０】
周辺基板３２０では、主制御基板３１０から送信された同期コードＶｓ１を認証する（ステップＳ９１３）。続いて、主制御基板３１０から送信された認証コードＶｃ０を認証する（ステップＳ９１４）。そして、これら双方の認証が完了すると制御コマンドおよびデータを処理し（ステップＳ９１５）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって同期コードＶｓ２，Ｖｓ３、認証コードＶｃ１が生成される。
【０１５１】
このように実施例５の場合、同期コードの生成が所定数（ここでは２回）おこなわれたことをトリガにして認証コードを生成する。また、認証コードＶｃｎには、同期コードＶｓｎの生成式の変数が含まれているため、認証コードＶｃｎの認証には、同期コードＶｓｎの受信および認証が必須となる。
【０１５２】
＜実施例６：実施例２（認証コードを基準に認証）の変形例１＞
実施例６は、実施例２を変形した認証処理をおこなう。図１０は、実施例４の認証処理の手順を示すフローチャートである。実施例６では、認証コードが所定回数認証された後、同期コードの認証をおこなう。図１０のフローチャートのように、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータを生成する（ステップＳ１００１）。そして、このステップＳ１００１の生成処理をトリガに、正規のＣＰＵの認証コードＶｃｎを生成する（ステップＳ１００２）。このステップＳ１００２によって生成される認証コードＶｃｎは、実施例２のステップＳ６０２によって生成された認証コードＶｃ０に相当する。
【０１５３】
つぎに、ステップＳ１００１によって生成された制御コマンドおよびデータと、ステップＳ１００２によって生成された認証コードＶｃ０を周辺基板３２０に送信する（ステップＳ１００３、ステップＳ１００４）。そして、周辺基板３２０では、ステップＳ１００４によって送信された認証コードＶｃ０を認証する（ステップＳ１０１１）。そして、ステップＳ１０１１の認証が完了すると、ステップＳ１００３によって送信された制御コマンドおよびデータを処理する（ステップＳ１０１２）。
【０１５４】
ステップＳ１００３、ステップＳ１００４の送信が終了した主制御基板３１０は、ｎ＝１回目の処理に移行する。まず、制御コマンドおよびデータを生成し（ステップＳ１００５）、続いて、認証コードＶｃ１の生成をおこなう（ステップＳ１００６）。そして、生成された認証コードＶｃ１の生成をトリガに、正規のＣＰＵの同期コードＶｓ０を生成する（ステップＳ１００７）。なお、このステップＳ１００７においてはじめて認証コードが生成されるため認証コードＶｃ０となるが、同期コードはｎ＝１の処理に移行しているため、利用する値は下記（１０）式のようになっている。
【０１５５】
同期コードＶｓ０＝Ｅｃ（Ｓ０，Ｃ１）  …（１０）
【０１５６】
上記（１０）式に示したように、同期コードＶｓ０には、１回目に生成された認証コードＶｃ０の生成式の変数Ｃ１を含んでいる。なお、このとき、変数Ｃ１に替わって変数Ｃ１や、変数Ｂ０，Ｂ１を含んでもよいし、変数Ｃ０，Ｃ１や変数Ｂ０，Ｂ１との合成数を含んでもよい。
【０１５７】
主制御基板３１０では、制御コマンドおよびデータと、認証コードＶｃ１と同期コードＶｓ０との生成が終わると、制御コマンドおよびデータと、認証コードＶｃ１と同期コードＶｓ０とをそれぞれ周辺基板３２０に送信し（ステップＳ１００８〜ステップＳ１０１０）、一回の認証処理にかかる主制御基板３１０の処理が終了する。
【０１５８】
一方、周辺基板３２０では、まず、主制御基板３１０から送信された認証コードＶｃ１を認証する（ステップＳ１０１３）。続いて、主制御基板３１０から送信された同期コードＶｓ０を認証する（ステップＳ１０１４）、そして、これら双方の認証が完了すると制御コマンドおよびデータを処理し（ステップＳ１０１５）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって認証コードＶｃ２，Ｖｃ３、同期コードＶｓ１が生成される。
【０１５９】
このように実施例６の場合、認証コードＶｃｔの生成が所定数（ここでは２回）おこなわれたことをトリガにして同期コードＶｓｎを生成する。また、同期コードＶｓｎには、認証コードＶｃｎの生成式の変数が含まれているため、同期コードＶｓｎの認証には、認証コードＶｃｎの受信および認証が必須となる。
【０１６０】
＜実施例７：実施例１（同期コードを基準に認証）の変形例２＞
実施例７は、実施例１を変形した認証処理をおこなう。図１１は、実施例７の認証処理の手順を示すフローチャートである。実施例７では、主制御基板３１０から所定数のコードが送信された場合に、周辺基板３２０によってこれらのコードそれぞれの認証をおこなう。
【０１６１】
図１１のフローチャートにおいて、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータを生成する（ステップＳ１１０１）。そして、このステップＳ１１０１の生成処理をトリガに、正規のＣＰＵの同期コードＶｓ０を生成する（ステップＳ１１０２）。このステップＳ１１０２によって生成される同期コードＶｓ０は、実施例５のステップＳ９０２によって生成された同期コードＶｓ０に相当する。
【０１６２】
つぎに、ステップＳ１１０１によって生成された制御コマンドおよびデータと、ステップＳ１１０２によって生成された同期コードＶｓ０を周辺基板３２０に送信する（ステップＳ１１０３、ステップＳ１１０４）。周辺基板３２０では、ステップＳ１１０３によって送信された制御コマンドおよびデータを処理する（ステップＳ１１１１）。そして、主制御基板３１０は、ｎ＝１回目の処理に移行し、制御コマンドおよびデータと、同期コードＶｓ１との生成をおこなう（ステップＳ１１０５、ステップＳ１１０６）。このステップＳ１１０６によって生成される同期コードＶｓ１は、実施例５のステップＳ９０６によって生成された同期コードＶｓ１に相当する。
【０１６３】
そして、主制御基板３１０は、同期コードＶｓ０，Ｖｓ１の生成をトリガに、正規のＣＰＵの認証コードＶｃ０を生成する（ステップＳ１１０７）。このステップＳ１１０７によって生成される認証コードＶｃ０は、実施例５のステップＳ９０７によって生成された認証コードＶｃ０に相当する。
【０１６４】
主制御基板３１０では、制御コマンドおよびデータと、同期コードＶｓ１と、認証コードＶｃ０との生成が終わると、制御コマンドおよびデータと同期コードＶｓ１と認証コードＶｃ０とをそれぞれ周辺基板３２０に送信し（ステップＳ１１０８〜ステップＳ１１１０）、一回の認証処理にかかる主制御基板３１０の処理が終了する。このとき、同期コードＶｓ１と認証コードＶｃ０の送信順序（図１１中の１１１０のタイミング）はランダムに変化するように設定してもよい。
【０１６５】
一方、認証者である周辺基板３２０では、ステップＳ１１０８によって送信された制御コマンドおよびデータと、同期コードＶｓ０，Ｖｓ１と認証コードＶｃ０とのすべてコードの受信をトリガとして認証を開始する。まず、主制御基板３１０から送信された同期コードＶｓ０を認証する（ステップＳ１１１２）。続いて、同期コードＶｓ１を認証する（ステップＳ１１１３）。最後に、認証コードＶｃ０を認証する（ステップＳ１１１４）。そして、これらすべての認証が完了すると制御コマンドおよびデータを処理し（ステップＳ１１１５）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって同期コードＶｓ２，Ｖｓ３、認証コードＶｃ１が生成される。
【０１６６】
このように実施例７の場合、同期コードの生成が所定数（ここでは２回）おこなわれたことをトリガにして認証コードを生成する。また、周辺基板３２０でも、所定のコードすべての受信が完了したことをトリガとして、各コードの認証を開始する。また、認証コードＶｃｎには、同期コードＶｓｎの生成式の変数が含まれているため、認証コードＶｃｎの認証には、同期コードＶｓｎの受信および認証が必須となる。
【０１６７】
＜実施例８：実施例２（認証コードを基準に認証）の変形例２＞
実施例８は、実施例２を変形した認証処理をおこなう。図１２は、実施例８の認証処理の手順を示すフローチャートである。実施例８では、実施例７と同様に、主制御基板３１０から所定数のコードが送信された場合に、周辺基板３２０によってこれらのコードそれぞれの認証をおこなう。
【０１６８】
図１２のフローチャートにおいて、主制御基板３１０は、まず、周辺基板３２０へ送信する制御コマンドおよびデータを生成する（ステップＳ１２０１）。そして、このステップＳ１２０１の生成処理をトリガに、正規のＣＰＵの認証コードＶｃ０を生成する（ステップＳ１２０２）。このステップＳ１２０２によって生成される認証コードは、実施例２のステップＳ６０２によって生成された認証コードＶｃ０に相当する。
【０１６９】
つぎに、ステップＳ１２０１によって生成された制御コマンドおよびデータと、ステップＳ１２０２によって生成された認証コードＶｃ０を周辺基板３２０に送信する（ステップＳ１２０３、ステップＳ１２０４）。周辺基板３２０では、ステップＳ１２０３によって送信された制御コマンドおよびデータを処理する（ステップＳ１２１１）。そして、主制御基板３１０は、ｎ＝１回目の処理に移行し、制御コマンドおよびデータと、認証コードＶｃ１の生成をおこなう（ステップＳ１２０５、ステップＳ１２０６）。このステップＳ１２０６によって生成される認証コードＶｃ１は、実施例６のステップＳ１００６によって生成された認証コードＶｃ１に相当する。
【０１７０】
そして、主制御基板３１０は、認証コードＶｃ０，Ｖｃ１の生成をトリガに、正規のＣＰＵの同期コードＶｓ０を生成する（ステップＳ１２０７）。このステップＳ１２０７に
よって生成される同期コードＶｓ０は、実施例６のステップＳ１００７によって生成された同期コードＶｓ０に相当する。
【０１７１】
主制御基板３１０では、制御コマンドおよびデータと、認証コードＶｃ１と、同期コードＶｓ０との生成が終わると、制御コマンドおよびデータと認証コードＶｃ１と同期コードＶｓ０とをそれぞれ周辺基板３２０に送信し（ステップＳ１２０８〜ステップＳ１２１０）、一回の認証処理にかかる主制御基板３１０の処理が終了する。このとき、認証コードＶｃ１と同期コードＶｓ０の送信順序（図１２中の１２１０のタイミング）はランダムに変化するように設定してもよい。
【０１７２】
一方、認証者である周辺基板３２０では、ステップＳ１２０８によって送信された制御コマンドおよびデータと、認証コードＶｃ０，Ｖｃ１と同期コードＶｓ０とのすべてコードの受信をトリガとして認証を開始する。まず、主制御基板３１０から送信された認証コードＶｃ０を認証する（ステップＳ１２１２）。続いて、認証コードＶｃ１を認証する（ステップＳ１２１３）。最後に、同期コードＶｓ０を認証する（ステップＳ１２１４）。そして、これらすべての認証が完了すると制御コマンドおよびデータを処理し（ステップＳ１２１５）、一回の認証処理を終了する。以下、主制御基板３１０からつぎの制御コマンドが送信されると、同様の手順によって認証コードＶｃ２，Ｖｃ３、同期コードＶｓ１が生成される。
【０１７３】
このように実施例６の場合、認証コードの生成が所定数（ここでは２回）おこなわれたことをトリガにして同期コードを生成する。また、周辺基板３２０でも、所定のコードすべての受信が完了したことをトリガとして、各コードの認証を開始する。また、同期コードＶｓｎには、認証コードＶｃｎの生成式の変数が含まれているため、同期コードＶｓｎの認証には、認証コードＶｃｎの受信および認証が必須となる。
【０１７４】
以上説明したように、主制御基板３１０による認証コード、同期コードの生成および送信として様々なバリエーションを設定することができる。同様に、周辺基板３２０においてどのような手順で認証をおこなうかを設定することができる。これらの設定に応じて、処理負荷や認証強度を変化させることができる。したがって、主制御基板３１０、周辺基板３２０の処理能力や、要求される認証強度に応じて設定を調整すればよい。
【０１７５】
また、本発明の本実施の形態にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムでは、認証コードと同期コードという２種類の認証データを利用した認証処理がおこなわれる。この認証処理では、２種類の認証データのうち、どちらか一方のコードが認証されない場合には、不正な制御基板から送信された不正な制御コマンドと判断されることにより、不正な制御信号が検出され、第三者により不正制御を防ぐことができる。
【０１７６】
さらに、本発明では認証コードと同期コードとを用いているが、これらの情報は、たとえ第三者に傍受されたとしても主制御基板の処理内容を解析することは極めて困難である。さらに、上述のように、認証コード、同期コードなど各コード生成、送信、認証の処理内容に関して多様な設定が可能であるため、第三者による主制御基板の動作解析や認証方式、認証用データの解析を困難にし、解析者を混乱させることができる。
【０１７７】
したがって、本発明にかかる電子機器、主制御基板、周辺基板、認証方法および認証プログラムによれば、高い機密保持能力とともに、主制御基板から被制御部である周辺基板に対する不正制御を防止する機能を実現することができる。
【０１７８】
また、本発明では、主制御基板による認証コードや同期コードの生成手順や、送信手順を様々な手法から適宜選択して設定することができる。この設定に応じて、各コードの生成処理の負荷や、周辺基板における認証処理の負荷を調整することができる。したがって、電子機器のスペックに応じた認証処理を実行させることができる。
【０１７９】
なお、本実施の形態で説明した認証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な伝送媒体であってもよい。
【産業上の利用可能性】
【０１８０】
以上のように、本発明は、制御基板と周辺基板間との通信内容への不正が懸念される電子機器やその電子機器に搭載される制御基板および周辺基板に有用であり、特に、ぱちんこ遊技機、スロット遊技機、その他各種の遊技機に適している。
【図面の簡単な説明】
【０１８１】
【図１】本発明にかかる電子機器を搭載したぱちんこ遊技機の構成の一例を示す説明図である。
【図２】ぱちんこ遊技機の制御部の内部構成を示すブロック図である。
【図３】主制御基板および周辺基板の認証処理にかかる機能的構成を示すブロック図である。
【図４−１】本発明にかかる主制御基板の制御コマンド送信処理の手順を示すフローチャートである。
【図４−２】本発明にかかる周辺基板の制御コマンド受信処理の手順を示すフローチャートである。
【図５】実施例１の認証処理の手順を示すフローチャートである。
【図６】実施例２の認証処理の手順を示すフローチャートである。
【図７】実施例３の認証処理の手順を示すフローチャートである。
【図８】実施例４の認証処理の手順を示すフローチャートである。
【図９】実施例５の認証処理の手順を示すフローチャートである。
【図１０】実施例６の認証処理の手順を示すフローチャートである。
【図１１】実施例７の認証処理の手順を示すフローチャートである。
【図１２】実施例８の認証処理の手順を示すフローチャートである。
【図１３】従来技術による不正防止技術の概要を示す説明図である。
【図１４】不正な制御基板の挿入例を示す説明図である。
【図１５】信号切替回路による信号切り替えの概要を示す説明図である。
【符号の説明】
【０１８２】
２０１  主制御部
２０２  演出制御部
２０３  賞球制御部
３１０  主制御基板
３１１  制御コマンド出力部
３１２  認証コード生成部
３１３  同期コード生成部
３１４  付加部
３１５  送信部
３２０  周辺基板
３２１  受信部
３２２  基板認証部
３２３  動作認証部
３２４  制御コマンド認証部
【図１】
2010148606.tif 000003
【図２】
2010148606.tif 000004
【図３】
2010148606.tif 000005
【図４−１】
2010148606.tif 000006
【図４−２】
2010148606.tif 000007
【図５】
2010148606.tif 000008
【図６】
2010148606.tif 000009
【図７】
2010148606.tif 000010
【図８】
2010148606.tif 000011
【図９】
2010148606.tif 000012
【図１０】
2010148606.tif 000013
【図１１】
2010148606.tif 000014
【図１２】
2010148606.tif 000015
【図１３】
2010148606.tif 000016
【図１４】
2010148606.tif 000017
【図１５】
2010148606.tif 000018