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