(57)【要約】【課題】データの改ざんによる不正行為を防止する技術を提供する。【解決手段】本明細書で開示する暗号処理システムは、第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを備える。第１情報処理装置は、開発元識別子を用いて第１秘密鍵を生成し、第１秘密鍵を用いて第１公開鍵を作成する。第２情報処理装置は、開発環境に含まれる第１公開鍵と第２秘密鍵とを用いた共通鍵の作成と、第２秘密鍵を用いた第２公開鍵の作成とを実行し、共通鍵を用いてデータを暗号化する。第３情報処理装置は、設計元で設定された開発元識別子を記憶する記憶部を備え、第２公開鍵と暗号化データを記憶する記憶装置と接続される。第３情報処理装置は、開発元識別子を用いて第１秘密鍵を生成し、第２公開鍵と第１秘密鍵とを用いて共通鍵を作成し、共通鍵を用いて記憶装置に記憶された暗号化データを復号する。【選択図】図５
2019165518.tif 000002
【特許請求の範囲】
【請求項１】
第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを備える暗号処理システムであって、
データ作成プログラムと前記第３情報処理装置とを提供する設計元で用いられる前記第１情報処理装置は、
前記設計元が設定した前記開発元を識別する開発元識別子を用いて第１秘密鍵を生成する第１生成部と、
前記第１秘密鍵を用いて第１公開鍵を作成する第１作成部と、
前記第１公開鍵を前記データ作成プログラムに付与する処理を実行する第１処理部と、
を備え、
前記設計元から提供される前記データ作成プログラムを実行する、前記開発元で用いられる前記第２情報処理装置は、
前記データ作成プログラムに付与された第１公開鍵と、前記開発元が設定した第２秘密鍵とを取得する取得部と、
前記第１公開鍵と前記第２秘密鍵とを用いた共通鍵の作成と、前記第２秘密鍵を用いた第２公開鍵の作成とを実行する第２作成部と、
前記データ作成プログラムで作成されたデータを、前記共通鍵を用いて暗号化する暗号化部と、
前記第２作成部により作成された前記第２公開鍵と、前記暗号化部により暗号化された暗号化データとを前記第３情報処理装置に接続される記憶装置に記憶する処理を実行する第２処理部と、
を備え、
前記顧客に提供される前記第３情報処理装置は、
前記設計元で設定された前記開発元識別子を記憶する記憶部と、
前記記憶装置と接続される接続部と、
前記記憶部に記憶された前記開発元識別子を用いて前記第１秘密鍵を生成する第２生成部と、
前記記憶装置に記憶された前記第２公開鍵と、前記生成部により生成された前記第１秘密鍵とを用いて前記共通鍵を作成する第３作成部と、
前記共通鍵を用いて前記記憶装置に記憶された前記暗号化データを復号する復号部と、
を備えることを特徴とする暗号処理システム。
【請求項２】
前記第３情報処理装置は、
前記第１公開鍵が付与された前記データ作成プログラムとともに、前記設計元から前記開発元へ提供され、前記記憶装置とともに前記開発元から前記顧客に提供される情報処理装置である
ことを特徴とする請求項１に記載の暗号処理システム。
【請求項３】
前記第１生成部は、
前記設計元で設定したマスターキーと、前記開発元識別子とを用いて前記第１秘密鍵を生成し、
前記記憶部は、さらに、
前記設計元で設定された前記マスターキーを記憶し、
前記第２生成部は、
前記記憶部に記憶されている前記マスターキーと、前記開発元識別子とを用いて前記第１秘密鍵を生成する
ことを特徴とする請求項１または２に記載の暗号処理システム。
【請求項４】
前記第１生成部は、
前記開発元識別子を暗号鍵に用いて前記マスターキーを含む値を暗号化することにより前記第１秘密鍵を生成し、
前記第２生成部は、
前記第１生成部と同じ暗号化処理を用いて前記第１秘密鍵を生成する
ことを特徴とする請求項３に記載の暗号処理システム。
【請求項５】
前記記憶部は、
耐タンパ性を有する記憶領域を有し、
前記第１処理部は、
前記開発者識別子を、前記耐タンパ性を有する記憶領域に記憶する
ことを特徴とする請求項１から４のいずれか一つに記載の暗号処理システム。
【請求項６】
前記記憶部は、
耐タンパ性を有する記憶領域を有し、
前記第１処理部は、
前記マスターキーと前記開発者識別子とを前記耐タンパ性を有する記憶領域に記憶する
ことを特徴とする請求項３または４に記載の暗号処理システム。
【請求項７】
前記第３情報処理装置は、
前記顧客が有する遊技機で用いられる画像処理装置であり、
前記第１情報処理装置は、
前記画像処理装置を設計する前記設計元で用いられるコンピュータ装置であり、
前記第２情報処理装置は、
前記開発元で用いられる前記記憶装置に記憶する暗号化データを生成するコンピュータ装置である
ことを特徴とする請求項１から６のいずれか一つに記載の暗号処理システム。
【請求項８】
第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを備える暗号処理システムにより実行される暗号処理方法であって、
データ作成プログラムと前記第３情報処理装置とを提供する設計元で用いられる前記第１情報処理装置は、
前記設計元が設定した前記開発元を識別する開発元識別子を用いて第１秘密鍵を生成し、
前記第１秘密鍵を用いて第１公開鍵を作成し、
前記第１公開鍵を前記データ作成プログラムに付与し、
前記設計元から提供される前記データ作成プログラムを実行する、前記開発元で用いられる前記第２情報処理装置は、
前記データ作成プログラムに付与された第１公開鍵と、前記開発元が設定した第２秘密鍵とを取得し、
前記第１公開鍵と前記第２秘密鍵とを用いた共通鍵の作成と、前記第２秘密鍵を用いた第２公開鍵の作成とを実行し、
前記データ作成プログラムで作成されたデータを、前記共通鍵を用いて暗号化し、
前記作成した前記第２公開鍵と、前記暗号化した暗号化データとを前記第３情報処理装置に接続される記憶装置に記憶し、
前記設計元で設定された前記開発元識別子を記憶する記憶部と、前記記憶装置と接続される接続部とを備える、前記顧客に提供される前記第３情報処理装置は、
前記記憶部に記憶された前記開発元識別子を用いて前記第１秘密鍵を生成し、
前記記憶装置に記憶された前記第２公開鍵と、前記生成した前記第１秘密鍵とを用いて前記共通鍵を作成し、
前記共通鍵を用いて前記記憶装置に記憶された前記暗号化データを復号する
ことを特徴とする暗号処理方法。
【請求項９】
第１情報処理装置のプロセッサと、第２情報処理装置のプロセッサと、第３情報処理装置のプロセッサとに実行させる暗号処理プログラムであって、
データ作成プログラムと前記第３情報処理装置とを提供する設計元で用いられる前記第１情報処理装置のプロセッサに、
前記設計元が設定した前記開発元を識別する開発元識別子を用いて第１秘密鍵を生成し、
前記第１秘密鍵を用いて第１公開鍵を作成し、
前記第１公開鍵を前記データ作成プログラムに付与する
処理を実行させ、
前記設計元から提供される前記データ作成プログラムを実行する、前記開発元で用いられる前記第２情報処理装置のプロセッサに、
前記データ作成プログラムに付与された第１公開鍵と、前記開発元が設定した第２秘密鍵とを取得し、
前記第１公開鍵と前記第２秘密鍵とを用いた共通鍵の作成と、前記第２秘密鍵を用いた第２公開鍵の作成とを実行し、
前記データ作成プログラムで作成されたデータを、前記共通鍵を用いて暗号化し、
前記作成した前記第２公開鍵と、前記暗号化した暗号化データとを前記第３情報処理装置に接続される記憶装置に記憶する
処理を実行させ、
前記設計元で設定された前記開発元識別子を記憶する記憶部と、前記記憶装置と接続される接続部とを備える、前記顧客に提供される前記第３情報処理装置のプロセッサに、
前記記憶部に記憶された前記開発元識別子を用いて前記第１秘密鍵を生成し、
前記記憶装置に記憶された前記第２公開鍵と、前記生成した前記第１秘密鍵とを用いて前記共通鍵を作成し、
前記共通鍵を用いて前記記憶装置に記憶された前記暗号化データを復号する
処理を実行させることを特徴とする暗号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを暗号化及び復号する技術に関する。
【背景技術】
【０００２】
パチンコやスロットなどの遊技機で用いられる画像処理装置では、画像データやプログラムデータなど（以下、データともいう。）を暗号化した暗号化データを記憶装置に格納しておき、遊技の進行に応じて、暗号化データを復号して利用する技術が知られている。
【０００３】
パチンコやスロットなどの遊技機において、暗号化データを復号して利用する技術は、データを改ざんし、不正な方法で出玉を獲得する、いわゆるゴト行為を防止するために重要な技術である。
【０００４】
関連する他の技術として、データＲＯＭには、複数の断片画像データであって、それぞれが圧縮符号化され、そして全体が、共通鍵方式に基づき、共通鍵ＫＣで暗号化された暗号化画像データＥＰＤと、その共通鍵ＫＣを、公開鍵方式に基づき、公開鍵ＫＰで暗号化することにより得られた暗号化共通鍵ＥＫＣとが格納される。ＲＳＡ方式復号部は、データＲＯＭから暗号化共通鍵ＥＫＣを読み込み、ＲＳＡ公開鍵方式に基づき、公開鍵ＫＰに対応する秘密鍵ＫＳにより、その暗号化共通鍵ＥＫＣを復号して共通鍵ＫＣを得、それを共通鍵方式復号部へ送る。データバス制御部は、共通鍵方式復号部に対して、データＲＯＭからの暗号化画像データＥＰＤの読込みとその復号を指示すると共に、その復号された画像データＰＤをデコーダに送る（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２２３５９９
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述した暗号化技術では、例えば、公開鍵ＫＰを含むデータの開発環境を第三者が手に入れると、新規に共通鍵ＫＣを設定することにより、データＲＯＭの全面書き換えを行うことが可能となるので、データの改ざんによる不正行為を防止できないことがある。
本発明は、一側面として、データの改ざんによる不正行為を防止する技術を提供する。
【課題を解決するための手段】
【０００７】
本明細書で開示する暗号処理システムのひとつに、第１情報処理装置と、第２情報処理装置と、第３情報処理装置とを備える暗号処理システムがある。データ作成プログラムと第３情報処理装置とを提供する設計元で用いられる第１情報処理装置は、第１生成部と、第１作成部と、第１処理部とを備える。第１生成部は、設計元が設定した開発元を識別する開発元識別子を用いて第１秘密鍵を生成する。第１作成部は、第１秘密鍵を用いて第１公開鍵を作成する。第１処理部は、第１公開鍵をデータ作成プログラムに付与する処理を実行する。
設計元から提供されるデータ作成プログラムを実行することにより動作する、開発元で用いられる第２情報処理装置は、取得部と、第２作成部と、暗号化部と、第２処理部とを備える。取得部は、データ作成プログラムに付与された第１公開鍵と、開発元が設定した第２秘密鍵とを取得する。第２作成部は、第１公開鍵と第２秘密鍵とを用いた共通鍵の作成と、第２秘密鍵を用いた第２公開鍵の作成とを実行する。暗号化部は、データ作成プログラムで作成されたデータを、共通鍵を用いて暗号化する。第２処理部は、第２作成部により作成された第２公開鍵と、暗号化部により暗号化された暗号化データとを第３情報処理装置に接続される記憶装置に記憶する処理を実行する。
顧客に提供される第３情報処理装置は、記憶部と、接続部と、第２生成部と、第３作成部と、復号部とを備える。記憶部は、設計元で設定された開発元識別子を記憶する。接続部は、記憶装置と接続される。第２生成部は、記憶部に記憶された開発元識別子を用いて第１秘密鍵を生成する。第３作成部は、記憶装置に記憶された第２公開鍵と、生成部により生成された第１秘密鍵とを用いて共通鍵を作成する。復号部は、共通鍵を用いて記憶装置に記憶された暗号化データを復号する。
【発明の効果】
【０００８】
１実施態様によれば、データの改ざんによる不正行為を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】暗号処理システムの一実施例を示す図である。
【図２】開発元識別子を用いた暗号処理システムの一実施例を示す図である。
【図３】秘密鍵Ｐの生成処理を示す図である。
【図４】公開鍵Ａと開発元ＩＤとの対応関係の説明図である。
【図５】暗号処理システムの一実施例を示すブロック図である。
【図６】第１情報処理装置における処理を示すフローチャートである。
【図７】秘密鍵Ｐを作成する処理を示すフローチャートである。
【図８】第２情報処理装置における処理を示すフローチャートである。
【図９】第３情報処理装置における処理を示すフローチャートである。
【図１０】コンピュータ装置の一実施例を示すブロック図である。
【発明を実施するための形態】
【００１０】
［実施形態］
実施形態の暗号処理システムについて説明する。
図１は、暗号処理システム３００の一実施例を示す図である。
暗号処理システム３００は、第４情報処理装置４と、第５情報処理装置５と、第６情報処理装置６とを含む。
【００１１】
第４情報処理装置４は、例えば、第６情報処理装置６の設計及び製造を行なう会社（以下、設計元ともいう。）で用いられるコンピュータ装置である。第５情報処理装置５は、例えば、設計元から提供されたデータ作成プログラム（以下、開発環境ともいう。）を用いて、画像データやプログラムデータなどの開発を行なう会社（以下、開発元ともいう。）で用いられるコンピュータ装置である。第６情報処理装置６は、例えば、パチンコ、スロット及びゲーム機などの遊技機で用いられる画像処理装置である。以下の説明において、設計元の処理は、第４情報処理装置４を用いて処理されるものである。また、開発元の処理は、第５情報処理装置５を用いて処理されるものである。なお、第６情報処理装置６は、遊技機などに用いられる画像処理装置の他、例えば、パソコン、輸送機器、ゲーム機、及びＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）装置などに用いられる各種情報処理装置でもよい。
【００１２】
パチンコやスロットなどの遊技機で用いられる画像処理装置において、データの改ざんによる不正行為を防止するため、暗号処理において、Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（以下、ＤＨともいう。）鍵交換を用いる技術が知られている。暗号処理とは、鍵作成処理と、暗号化処理と、復号処理とを含むものとする。以下の説明では、一例として、第６情報処理装置６は、遊技機に用いられる画像処理装置であるものとして説明する。
【００１３】
具体的には、設計元は、ＤＨ鍵交換を行うための生成元ｇと、素数ｎとを設定し、開発元と共有する。また、設計元は、設定した素数ｎを第６情報処理装置６にハードワイヤード（以下、結線論理ともいう。）で記憶する。さらに、設計元は、任意の乱数などを用いて秘密鍵ｐを生成し、第６情報処理装置６にハードワイヤードで秘密鍵ｐを記憶する。
【００１４】
設計元は、生成元ｇと、秘密鍵ｐと、素数ｎとを下記式（１）に代入して、公開鍵ａを作成する。そして、設計元は、作成した公開鍵ａを開発元に提供する（Ｓ５０１）。具体的には、設計元は、開発元に提供するデータ作成プログラムに公開鍵ａを含ませることにより、公開鍵ａを開発元に提供する。
公開鍵ａ＝g^p mod ｎ・・・（１）
【００１５】
また、開発元は、乱数などを用いて秘密鍵ｓを生成し、生成元ｇ、秘密鍵ｓと、素数ｎとを下記式（２）に代入して、公開鍵ｂを作成する。そして、開発元は、作成した公開鍵ｂを第６情報処理装置６に含まれる記憶装置に格納する（Ｓ５０２）。
公開鍵ｂ＝g^s mod ｎ・・・（２）
さらに、開発元は、公開鍵ａと、秘密鍵ｓと、素数ｎとを下記式（３）に代入して、共通鍵ｄｈを作成する（Ｓ５０３）。
共通鍵ｄｈ＝a^s mod ｎ・・・（３）
【００１６】
開発元は、共通鍵ｄｈを用いて、開発元が作成した画像データやプログラムデータなどを暗号化する。そして、開発元は、暗号化した暗号化データを第６情報処理装置６の記憶装置に格納する（Ｓ５０４）。
【００１７】
第６情報処理装置６は、起動時に、第６情報処理装置６に含まれる記憶装置から公開鍵ｂを読み出し、さらに、ハードワイヤードで記憶された秘密鍵ｐと、素数ｎとを読み出し、下記式（４）に代入して、共通鍵ｄｈを作成する（Ｓ５０５）。
共通鍵ｄｈ＝b^p mod ｎ・・・（４）
第６情報処理装置６は、遊技の進行に応じて、記憶装置から暗号化データを読み出し、生成した共通鍵ｄｈを用いて暗号化データを復号する（Ｓ５０６）。
上述のように、暗号処理システム３００において、開発元は、秘密鍵ｓを秘密にすることにより、データの改ざんによる不正行為を防止することができる。
【００１８】
しかし、暗号処理システム３００では、公開鍵ａが１種類であるため、設計元から各開発元に公開鍵ａを含む共通の開発環境が提供される。したがって、暗号処理システム３００において、公開鍵ａを含む開発環境が第三者に手に入れられたとき、第三者によるデータの改ざんを防止できないことがある。
【００１９】
具他的には、公開鍵ａを含む開発環境を第三者が手に入れ、第三者が任意に秘密鍵ｓａを設定し、任意の秘密鍵ｓａを用いて公開鍵ｂａと、共通鍵ｄｈａとを作成する。また、第三者は、共通鍵ｄｈａを用いて改ざん目的で作成したデータを暗号化した不正な暗号化データを作成する。さらに、第三者は、作成した不正な公開鍵ｂａと、不正な暗号化データとを記憶した不正な記憶装置を作成する。そして、第三者は、第６情報処理装置６に含まれる記憶装置と、作成した不正な記憶装置とを差し替える。すると、第６情報処理装置６は、改ざんされたデータを復号してそのデータに従った処理を実行することになる。したがって、暗号処理システム３００では、データの改ざんによる不正行為を防止することができないことがある。
【００２０】
図２は、開発元識別子を用いた暗号処理システムの一実施例を示す図である。
図２を参照して、データを作成する開発元を識別する開発元識別子（以下、開発元ＩＤともいう。）を用いた暗号処理システム１００の一実施例を説明する。具体的には、データの改ざんによる不正行為を防止するために、各開発元に、各開発元を識別する開発元ＩＤを用いて作成された公開鍵Ａ（第１公開鍵）を含む、開発環境を提供するというものである。
【００２１】
暗号処理システム１００は、第１情報処理装置１（以下、鍵作成装置ともいう。）と、第２情報処理装置２（以下、暗号化装置ともいう。）と、第３情報処理装置３（以下、復号装置ともいう。）とを含む。
【００２２】
第１情報処理装置１は、設計元で用いられるコンピュータ装置である。第２情報処理装置２は、開発元で用いられるコンピュータ装置である。第３情報処理装置３は、例えば、復号装置を含む画像処理装置である。以下の説明において、設計元の処理は、第１情報処理装置１を用いて処理されるものである。また、開発元の処理は、第２情報処理装置２を用いて処理されるものである。なお、第３情報処理装置３は、遊技機などに用いられる画像処理装置の他、例えば、復号装置を含む、パソコン、輸送機器、ゲーム機、及びＶＲ装置などに用いられる各種情報処理装置でもよい。
【００２３】
設計元は、ＤＨ鍵交換を行うための生成元Ｇ（第１設定値）と、素数Ｎ（第２設定値）とを設定し、開発元と共有する。さらに、設計元は、マスターキー（第３設定値）と、開発元ＩＤとを設定し、第３情報処理装置３に設定したマスターキーと、開発元ＩＤと、素数Ｎとをハードワイヤードで記憶する。
【００２４】
より具体的には、マスターキーと、素数Ｎとは、第３情報処理装置３に含まれる集積回路上の配線やヒューズを用いた第１結線論理（以下、第１数値記憶部ともいう。）を用いて記憶される。また、開発元ＩＤは、第３情報処理装置３に含まれる集積回路を実装する基板上の第２結線論理（以下、第２数値記憶部ともいう。）を用いて記憶される。
【００２５】
第３情報処理装置３に含まれる集積回路は、例えば、電源とグランドとの間にプルアップ抵抗と、ヒューズとを直列に接続し、かつプルアップ抵抗と、ヒューズとの間に出力線を接続した１以上の選択回路を有する第１結線論理を含む。このとき、プルアップ抵抗は電源側に接続され、ヒューズはグランド側に接続される。
【００２６】
設計元は、集積回路をパッケージングする前の段階で、第１結線論理に含まれる各選択回路のヒューズ部分に高電圧をかけてヒューズを焼き切る、またはそのままにするという選択をする。これにより、設計元は、第１結線論理に含まれる各出力線からの出力のＨレベルと、Ｌレベルとを切り替えて第１結線論理に、マスターキーと、素数Ｎとの値を記憶する。
【００２７】
第３情報処理装置３は、集積回路上の第１結線論理からの出力を検出し、マスターキーと、素数Ｎとを読み出す。上記の第１結線論理の構成は一例であり、例えば、プルダウン抵抗を用いる構成やアンチヒューズを用いる構成などの、他の構成を用いてもよい。また、マスターキーと、素数Ｎとは、ＥＰＲＯＭ  （Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）や、電子ヒューズ（ｅＦｕｓｅ）を用いて記憶されてもよい。
【００２８】
第３情報処理装置３に含まれる集積回路を実装する基板は、例えば、電源とグランドとの間の接続と開放とを切り替える２本のピンと、グランド側のピンとグランドとの間に接続されるプルダウン抵抗と、グランド側のピンとプルダウン抵抗との間に接続される出力線とを備えた１以上の選択回路を有する第２結線論理を含む。
【００２９】
設計元は、ピンヘッダを基板上に配置して、第２結線論理に含まれる各選択回路の２本のピンにジャンパを刺す、または刺さないという選択をする。これにより、設計元は、第２結線論理に含まれる各出力線からの出力のＨレベルと、Ｌレベルとを切り替えて第２結線論理に、開発元ＩＤの値を記憶する。
【００３０】
第３情報処理装置３は、基板上の第２結線論理からの出力を検出し、開発元ＩＤを読み出す。上記の第２結線論理の構成は一例であり、例えば、第２結線論理に含まれる選択回路の２本のピンを配線により接続する構成、ディップスイッチを用いる構成、出力線に電源またはグランドを直接接続する構成などの、他の構成を用いてもよい。
なお、マスターキーと、開発元ＩＤと、素数Ｎとは、それぞれ、第１結線論理及び第２結線論理のいずれか、または両方を適宜選択して記憶されてもよい。
以下の説明では、第１結線論理及び第２結線論理のことを、単に記憶部または記憶装置ともいう。
【００３１】
図３は、秘密鍵Ｐの生成処理を示す図である。
図３を参照して、秘密鍵Ｐ（第１秘密鍵）の生成処理を説明する。
設計元は、カウンタから出力される指定数の各カウント値と、設定したマスターキーとをそれぞれ組み合わせた組合値Ｃを生成する。また、設計元は、開発元ＩＤを暗号鍵として用いて、生成した複数の組合値Ｃをそれぞれ暗号化処理する。さらに、設計元は、暗号化処理をした指定数の暗号化組合値ＣＣを連結して秘密鍵Ｐを作成する（Ｓ６０１）。
【００３２】
図２を参照して説明する。
設計元は、生成元Ｇと、秘密鍵Ｐと、素数Ｎとを下記式（５）に代入して、公開鍵Ａを作成する。そして、設計元は、作成した公開鍵Ａを含む、開発環境を開発元に提供する（Ｓ６０２）。
公開鍵Ａ＝G^P mod Ｎ・・・（５）
【００３３】
また、開発元は、乱数などを用いて秘密鍵Ｓを生成し、生成元Ｇ、秘密鍵Ｓと、素数Ｎとを下記式（６）に代入して、公開鍵Ｂを作成する。そして、開発元は、作成した公開鍵Ｂを第３情報処理装置３に含まれる記憶装置に格納する（Ｓ６０３）。
公開鍵B＝G^S mod Ｎ・・・（６）
さらに、開発元は、公開鍵Ａと、秘密鍵Ｓと、素数Ｎとを下記式（７）に代入して、共通鍵ＤＨ（共通鍵）を作成する（Ｓ６０４）。
共通鍵DH＝A^S mod Ｎ・・・（７）
【００３４】
そして、開発元は、共通鍵ＤＨを用いて、開発元が作成した画像データやプログラムデータなどを暗号化する。そして、開発元は、暗号化した暗号化データを第３情報処理装置３の記憶装置に格納する（Ｓ６０５）。
【００３５】
図３を参照して説明する。
第３情報処理装置３は、起動時に、カウンタから出力される指定数の各カウント値と、設定したマスターキーとをそれぞれ組み合わせた組合値Ｃを生成する。また、第３情報処理装置３は、開発元ＩＤを暗号鍵に用いて、生成した複数の組合値Ｃをそれぞれ暗号化処理する。さらに、第３情報処理装置３は、暗号化処理をした指定数の暗号化組合値ＣＣを連結して秘密鍵Ｐを作成する（Ｓ６０６）。
【００３６】
図２を参照して説明する。
そして、第３情報処理装置３は、記憶装置から公開鍵Ｂと、素数Ｎとを読み出し、読み出した公開鍵Ｂと、素数Ｎと、作成した秘密鍵Ｐとを下記式（８）に代入して、共通鍵ＤＨを作成する（Ｓ６０７）。
共通鍵DH＝B^P mod Ｎ・・・（８）
第３情報処理装置３は、遊技の進行に応じて、記憶装置から暗号化データを読み出し、生成した共通鍵ＤＨを用いて暗号化データを復号する（Ｓ６０８）。
以上により、暗号処理システム１００において、開発元は、秘密鍵Ｓを秘密にすることにより、データの改ざんによる不正行為を防止することができる。
【００３７】
図４は、公開鍵Ａと顧客ＩＤとの対応関係の説明図である。
図４を参照して、公開鍵Ａと顧客ＩＤとの対応関係を説明する。
暗号処理システム１００では、第１情報処理装置１と第３情報処理装置３とで秘密鍵Ｐを生成するとき、互いに開発元ＩＤを用いるので、開発元ＩＤと公開鍵Ａとの間に対応関係が生じる。これにより、第３情報処理装置３は、第２結線論理に記憶された開発元ＩＤに対応する公開鍵Ａではない、他の公開鍵を用いて作成された共通鍵で暗号化データを復号したとき、破損した画像データや起動できないプログラムデータを出力することになる。このとき、第３情報処理装置３は、まともに動作しなくなる。
【００３８】
また、暗号処理システム１００では、設計元は、開発元ＩＤに対応する公開鍵Ａを含む開発環境と、開発元ＩＤを記憶している第３情報処理装置３とを各開発元に提供する。よって、第三者は、第３情報処理装置３に対応する公開鍵Ａを含む開発環境を手に入れることが困難である。したがって、第三者は、データを改ざんし、改ざんしたデータを記憶した不正な記憶装置を第３情報処理装置３の記憶装置と差し替えても、第３情報処理装置３にまともにデータを出力させることができない。以上により、第３情報処理装置３は、データの改ざんによる不正行為を防止することができる。
【００３９】
図５は、暗号処理システムの一実施例を示すブロック図である。
図５を参照して、第１情報処理装置１（鍵作成装置）と、第２情報処理装置２（暗号化装置）と、第３情報処理装置３（復号装置）とを含む暗号化システム１００についてさらに説明する。第１情報処理装置１と、第２情報処理装置２と、第３情報処理装置３とは、例えば、後述するコンピュータ装置２００である。
【００４０】
第１情報処理装置は、例えば、設計元で使用されるコンピュータ装置である。また、第２情報処理装置は、例えば、開発元で使用されるコンピュータ装置であり、設計元から提供される、開発元を識別する開発元ＩＤに対応する公開鍵Ａを含むデータ作成プログラムを実行する。第３情報処理装置３は、設計元で設計及び製造され、開発元に提供されるコンピュータ装置であり、例えば、パチンコやスロットなどの遊技機に用いられる画像処理装置である。データ作成プログラムは、第３情報処理装置３の記憶装置に格納するデータを作成するためのプログラムである。
【００４１】
暗号化システム１００では、ＤＨ鍵交換が用いられる。設計元は、ＤＨ鍵交換を行うための生成元Ｇと、素数Ｎとを設定する。そして、設計元と、開発元との間で生成元Ｇと、素数Ｎとを予め共有する。さらに、設計元は、第３情報処理装置の第２記憶部５０に第３情報処理装置３の提供先である開発元の開発元ＩＤと、素数Ｎと、マスターキーとを格納する。
【００４２】
第１情報処理装置１は、第１制御部１０を含む。第１制御部１０は、第１取得部１１と、第１カウント部１２と、第１生成部１３と、第１作成部１４とを含む。
【００４３】
第１取得部１１は、生成元Ｇと、素数Ｎと、マスターキーと、開発元ＩＤとを取得する。第１取得部１１は、例えば、設計元からの入力を受け付けることにより、生成元Ｇと、素数Ｎと、マスターキーと、開発元ＩＤとを取得する。生成元Ｇと、素数Ｎと、マスターキーと、開発元ＩＤとは、例えば、設計元で任意に設定される値である。生成元Ｇと素数Ｎとは、ＤＨ鍵交換で用いられる値である。マスターキーは、例えば、設計元が任意に設定し、秘密にされる値である。開発元ＩＤは、例えば、設計元が第３情報処理装置３の提供先の開発元それぞれに任意に振り分ける識別子である。
【００４４】
そして、第１取得部１１は、第１生成部１３に、マスターキーと、開発元ＩＤとを出力する。さらに、第１取得部１１は、第１作成部１４に、生成元Ｇと、素数Ｎとを出力する。
第１カウント部１２は、値をカウントし、指定数Ｄのカウント値を第１生成部１３に出力する。指定数Ｄは、例えば、開発元により指定される。
【００４５】
指定数Ｄは、秘密鍵Ｐのビット数を暗号化組合値ＣＣのビット数で除算した数である。すなわち、指定数Ｄは、例えば、カウント値とマスターキーとを組み合わせた暗号化組合値ＣＣのビット数Ｌと、秘密鍵Ｐのビット数Ｍとを下記式（９）に代入して得られる値である。
指定数Ｄ＝M/L・・・（９）
【００４６】
具体的には、第１カウント部１２は、例えば、暗号化組合値ＣＣが１２８ｂｉｔであり、秘密鍵Ｐのビット数が２０４８ｂｉｔであるとき、指定数Ｄ＝１６となるので、０〜１５までカウントし、１６個のカウント値を出力する。なお、第１カウント部１２は、指定数Ｄ個の異なる値のカウント値を出力してもよい。指定数が１６のとき、第１カウント部１２は、１６個の異なる値のカウント値を出力してもよい。
第１生成部１３は、開発元ＩＤを用いて秘密鍵Ｐを生成する。
【００４７】
第１生成部１３は、一例として、図３に示すように、第１カウント部１２でカウントされた各カウント値と、マスターキーとを組み合わせて指定数の組合値Ｃを生成する。そして、第１生成部１３は、開発元ＩＤを暗号鍵に用いて、生成した各組合値Ｃを暗号化処理し、暗号化処理をした指定数の暗号化組合値ＣＣを連結して秘密鍵Ｐを生成する。第１生成部１３は、第１作成部１４に、生成した秘密鍵Ｐを出力する。
【００４８】
組合値Ｃは、例えば、マスターキーと、カウント値との論理和でもよい。また、組合値Ｃは、例えば、マスターキーと、カウント値との加算や論理積でもよいし、連結でもよい。
【００４９】
また、暗号化処理は、例えば、ＤＥＳ（Ｄａｔａ  ＥＮｃｒｙｐｔｉｏＮ  ＳｔａＮｄａｒｄ）、やＡＥＳ（ＡｄｖａＮｃｅｄ  ＥＮｃｒｙｐｔｉｏＮ  ＳｔａＮｄａｒｄ）などの任意のブロック暗号処理を用いてもよい。
【００５０】
第１作成部１４は、秘密鍵Ｐで生成元Ｇをべき乗した値を、素数Ｎで除算した余りである公開鍵Ａを作成する。より具体的には、第１作成部１４は、第１取得部１１から入力された生成元Ｇ及び素数Ｎと、第１生成部１３から入力された秘密鍵Ｐとを式（５）に代入して、公開鍵Ａを作成する。そして、第１作成部１４は、公開鍵Ａを開発元に提供する。第１作成部１４は、例えば、公開鍵Ａを、データ作成プログラムに組み込んでもよい。これにより、開発元には、第２情報処理装置２でデータ作成プログラムを実行したとき、公開鍵Ａが提供される。すなわち、第１作成部１４は、各開発元で異なる開発元ＩＤを用いて生成した秘密鍵Ｐを生成し、生成した秘密鍵Ｐを用いて公開鍵Ａを作成し、各開発元に異なる公開鍵Ａを提供する。
【００５１】
第２情報処理装置２は、第２制御部２０と、第１記憶部３０とを含む。第２制御部２０は、第２取得部２１と、第２作成部２２と、暗号化部２３とを含む。第１記憶部３０は、第１設定情報３１と、第１鍵情報３２とを記憶する。
第１設定情報３１は、開発元と共有する生成元Ｇと、素数Ｎとを含む。第１鍵情報３２は、公開鍵Ａを含む。
【００５２】
第２取得部２１は、公開鍵Ａと開発元が任意に設定した秘密鍵Ｓ（第２秘密鍵）を取得する。そして、第２取得部２１は、第２作成部２２に、秘密鍵Ｓを出力する。また、第２取得部２１は、秘密鍵Ｓを第１鍵情報３２に格納してもよい。
【００５３】
第２取得部２１は、例えば、第２情報処理装置２で実行されるデータ作成プログラムに組み込まれた公開鍵Ａを取得する。そして、第２取得部２１は、公開鍵Ａを第１鍵情報３２に格納する。
【００５４】
第２作成部２２は、生成元Ｇを秘密鍵Ｓでべき乗した値を素数Ｎで除算した余りである公開鍵Ｂ（第２公開鍵）を作成する。具体的には、第２作成部２２は、第１記憶部３０から読み出した生成元Ｇ及び素数Ｎと、第２取得部２１から入力された秘密鍵Ｓとを式（６）に代入して、公開鍵Ｂを作成する。そして、第２作成部２２は、作成した公開鍵Ｂを、第３情報処理装置３に接続される記憶装置に格納する。第３情報処理装置３が画像処理装置であるとき、公開鍵Ｂは、例えば、ＣＧＲＯＭの先頭の領域に格納されてもよい。
【００５５】
第２作成部２２は、公開鍵Ａを秘密鍵Ｓでべき乗した値を、素数Ｎで除算した余りである共通鍵ＤＨを作成する。具体的には、第２作成部２２は、第１記憶部３０から読み出した素数Ｎ及び公開鍵Ａと、第２取得部２１から入力された秘密鍵Ｓとを式（７）に代入して、共通鍵ＤＨを作成する。
【００５６】
暗号化部２３は、第２作成部２２で作成された共通鍵ＤＨを用いて、開発元が第２情報処理装置２でデータ作成プログラムを実行することにより作成したデータを暗号化する。そして、暗号化部２３は、暗号化データを第３情報処理装置３の第２記憶部５０に格納する。また、暗号化処理は、復号部４４の復号処理と対応した処理であればよく、例えば、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、またはＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などの任意の暗号処理を用いてもよい。
【００５７】
第３情報処理装置３は、第３制御部４０と、第２記憶部５０とを含む。第３制御部４０は、第２カウント部４１と、第２生成部４２と、第３作成部４３と、復号部４４とを含む。第２記憶部５０は、第２設定情報５１と、第２鍵情報５２と、識別情報５３と、データ情報５４とを記憶する。
【００５８】
第２設定情報５１は、マスターキーと、素数Ｎとを含む。第２鍵情報５２は、公開鍵Ｂを含む。識別情報５３は、開発元ＩＤを含む。データ情報５４は、暗号化データを含む。
【００５９】
第２記憶部５０は、例えば、集積回路上の第１結線論理を用いて数値を記憶する第１数値記憶部を含む。さらに、第２記憶部５０は、例えば、集積回路を実装する基板上の第２結線路理を用いて数値を記憶する第２数値記憶部を含む。そして、マスターキーと、素数Ｎとは、第１数値記憶部に記憶されてもよい。開発元ＩＤは、第２数値記憶部に記憶されてもよい。なお、マスターキーと、開発元ＩＤと、素数Ｎとは、それぞれ、第１数値記憶部及び第２数値記憶部のいずれか、または両方を適宜選択して記憶されてもよい。
【００６０】
第２カウント部４１は、値をカウントし、指定数Ｄのカウント値を第２生成部４２に出力する。第２カウント部４１のカウント処理は、第１カウント部１２と同様のカウント処理であり、第１カウント部１２と同じ値のカウント値を出力するものである。
第２生成部４２は、開発元ＩＤを用いて秘密鍵Ｐを生成する。
【００６１】
第２生成部４２は、一例として、図３に示すように、第２カウント部４１でカウントされた各カウント値と、マスターキーとを組み合わせて指定数の組合値Ｃを生成する。そして、第２生成部４２は、開発元ＩＤを暗号鍵に用いて、生成した各組合値Ｃを暗号化処理し、暗号化処理をした指定数の暗号化組合値ＣＣを連結して秘密鍵Ｐを生成する。第２生成部４２は、第２作成部２２に、生成した秘密鍵Ｐを出力する。第２生成部４２の生成処理は、第１生成部１３と同様の生成処理であり、第１生成部１３と同じ秘密鍵Ｐを出力するものである。
【００６２】
第３作成部４３は、第２生成部４２から入力された秘密鍵Ｐで公開鍵Ｂをべき乗した値を、素数Ｎで除算した余りである共通鍵ＤＨを作成する。具体的には、第３生成部４３は、秘密鍵Ｐと、公開鍵Ｂと、素数Ｎとを式（８）に代入して、共通鍵ＤＨを作成する。
【００６３】
復号部４４は、共通鍵ＤＨを用いて、第２記憶部５０に格納されている暗号化データを復号する。また、復号処理は、暗号化部２３の暗号化処理と対応した処理であればよく、例えば、ＤＥＳまたはＡＥＳなどの任意の暗号処理を用いてもよい。
【００６４】
上記の説明では、第１生成部１３と第２生成部４２とは、マスターキーとカウンタ値とを用いて生成した複数の組合値Ｃを、開発元ＩＤを暗号鍵として用いてそれぞれ暗号化処理をする。そして、第１生成部１３と第２生成部４２とは、複数の組合値Ｃを暗号化して生成した複数の暗号化組合値ＣＣを連結して、秘密鍵Ｐを作成するものとして説明したが、これに限定されるものではない。
【００６５】
第１生成部１３と第２生成部４２とは、開発元ＩＤを用いて、任意の方法で秘密鍵Ｐを生成してもよい。具体的には、第１生成部１３と第２生成部４２とは、例えば、開発元ＩＤと、マスターキーとを暗号鍵として用いて暗号化処理をして秘密鍵Ｐを生成してもよい。また、第１生成部１３と第２生成部４２とは、例えば、開発元ＩＤとカウンタ値とを用いて複数の組合値Ｃ２を生成し、マスターキーを暗号鍵として用いてそれぞれ暗号化処理をした複数の暗号化組合値ＣＣ２を生成してもよい。そして、第１生成部１３と第２生成部４２とは、複数の暗号化組合値ＣＣ２を連結して秘密鍵Ｐを作成してもよい。
【００６６】
また、第１生成部１３と第２生成部４２とは、擬似乱数生成器を含み、擬似乱数生成器に開発元ＩＤを入力して秘密鍵Ｐを生成してもよい。すなわち、秘密鍵Ｐは、擬似乱数生成器を用いて生成されてもよい。擬似乱数生成器は、暗号論的擬似乱数生成器（ＣＳＰＲＮＧ）でもよい。
【００６７】
なお、ＣＳＰＲＮＧとは、Ｃｒｙｐｔｏｇｒａｐｈｉｃａｌｌｙ  Ｓｅｃｕｒｅ  Ｐｓｅｕｄｏ  ＲａＮｄｏｍ  Ｎｕｍｂｅｒ  ＧｅＮｅｒａｔｏｒの略であり、暗号技術での利用に適した特性を持つ暗号論的擬似乱数生成器のことである。
【００６８】
図６は、第１情報処理装置における処理を示すフローチャートである。
図６を参照して、第１情報処理装置における処理を説明する。
第１取得部１１は、マスターキーと、開発元ＩＤとを取得したか否かを判定する（Ｓ１０１）。そして、第１取得部１１は、マスターキーと、開発元ＩＤとを取得していないとき（Ｓ１０１でＮｏ）、Ｓ１０１の処理を繰り返し実行する。
第１取得部１１は、マスターキーと、開発元ＩＤとを取得したとき（Ｓ１０１にてＹｅｓ）、第１生成部１３に、マスターキーと、開発元ＩＤとを出力する。
【００６９】
第１生成部１３は、第１取得部１１から入力されたマスターキーと、開発元ＩＤとを取得すると、秘密鍵Ｐを生成する（Ｓ１０２）。そして、第１生成部１３は、秘密鍵Ｐを第１作成部１４に出力する。
【００７０】
図７は、秘密鍵Ｐを作成する処理を示すフローチャートである。
図７を参照して、Ｓ１０２における秘密鍵Ｐを作成する処理を説明する。
第１生成部１３は、第１カウント部１２からカウント値が入力されたか否かを判定する（Ｓ２０１）。第１生成部１３は、第１カウント部１２からカウント値が入力されていないとき（Ｓ２０１にてＮｏ）、Ｓ２０１の処理を繰り返し実行する。
【００７１】
第１生成部１３は、第１カウント部１２からカウント値が入力されたとき（Ｓ２０１にてＹｅｓ）、第１カウント部１２でカウントされたカウント値と、マスターキーとを組み合わせて組合値Ｃを生成する（Ｓ２０２）。
第１生成部１３は、開発元ＩＤを暗号鍵に用いて、生成した組合値Ｃを暗号化処理し、暗号化組合値ＣＣを生成する（Ｓ２０３）。
【００７２】
第１生成部１３は、入力されたカウント値の数（以下、カウント数ともいう。）が指定数Ｄであるか否かを判定する（Ｓ２０４）。第１生成部１３は、カウント数が指定数Ｄでないとき（Ｓ２０４にてＮｏ）、Ｓ２０１の処理を実行する。これ以降の処理では、Ｓ２０１において、第１生成部１３は、前回までに入力されたカウント値と異なるカウント値が入力されたか否かを判定する。そして、第１生成部１３は、前回までに取得したカウント値と異なるカウント値が入力されたとき、Ｓ２０２の処理を実行する。第１生成部１３は、例えば、第１カウント部１２によりカウント値がインクリメントされている場合には、Ｓ２０１において、０、１、２、３・・・の順で指定数Ｄの異なるカウント値が入力されるまでＳ２０１〜Ｓ２０４の処理を繰り返し実行する。
【００７３】
第１生成部１３は、カウント数が指定数Ｄのとき（Ｓ２０４にてＹｅｓ）、Ｓ２０３において生成された指定数の暗号化組合値ＣＣを連結させて秘密鍵Ｐを生成する（Ｓ２０５）。
【００７４】
そして、第１生成部１３は、第１カウント部１２のカウント値をリセットする（Ｓ２０６）。第１生成部１３は、例えば、第１カウント部１２によりによりカウント値がインクリメントされている場合には、Ｓ２０６において、カウント部（第１カウント部１２または第２カウント部４１）のカウント値を０にする。
【００７５】
図６を参照して説明する。
第１取得部１１は、生成元Ｇと、素数Ｎとを取得したか否かを判定する（Ｓ１０３）。第１取得部１１は、生成元Ｇと、素数Ｎとを取得していないとき（Ｓ１０３にてＮｏ）、Ｓ１０３の処理を繰り返し実行する。
第１取得部１１は、生成元Ｇと、素数Ｎとを取得したとき（Ｓ１０３にてＹｅｓ）、第１作成部１４に生成元Ｇと、素数Ｎとを出力する。
【００７６】
第１作成部１４は、第１取得部１１から入力された生成元Ｇ及び素数Ｎと、第１生成部１３から入力された秘密鍵Ｐとを式（５）に代入し、公開鍵Ａを作成する（Ｓ１０４）。
そして、第１作成部１４は、公開鍵Ａをデータ作成プログラムに組み込む（Ｓ１０５）。
【００７７】
上述の説明では、Ｓ１０２において、マスターキーとカウンタ値とを用いて生成した複数の組合値Ｃを、開発元ＩＤを暗号鍵として用いて暗号化処理し、暗号化組合値ＣＣを連結して秘密鍵Ｐを作成する処理を説明したが、これに限定されるものではない。Ｓ１０２では、開発元ＩＤを用いて、任意の方法で秘密鍵Ｐを生成してもよい。また、Ｓ１０２では、擬似乱数生成器に開発元ＩＤを入力して秘密鍵Ｐを生成してもよい。すなわち、秘密鍵Ｐは、擬似乱数生成器を用いて生成されてもよい。
【００７８】
図８は、第２情報処理装置における処理を示すフローチャートである。
図８を参照して、第２情報処理装置における処理を説明する。
以下の説明では、第２情報処理装置２にデータ作成プログラムがインストールされ、データ作成プログラムに組み込まれている公開鍵Ａは、第２取得部２１により取得され、第１記憶部３０に格納されているものとする。
【００７９】
第２取得部２１は、秘密鍵Ｓを取得したか否かを判定する（Ｓ３０１）。そして、第２取得部２１は、秘密鍵Ｓを取得していないとき（Ｓ３０１でＮｏ）、Ｓ３０１の処理を繰り返し実行する。
第２取得部２１は、秘密鍵Ｓを取得したとき（Ｓ３０１にてＹｅｓ）、第２作成部２２に秘密鍵Ｓを出力する。
【００８０】
第２作成部２２は、秘密鍵Ｓが入力されると、秘密鍵Ｓと、第１記憶部３０に格納されている生成元Ｇと、素数Ｎとを式（６）に代入し、公開鍵Ｂを作成する（Ｓ３０２）。
【００８１】
さらに、第２作成部２２は、第２取得部２１から秘密鍵Ｓが入力されると、秘密鍵Ｓと、素数Ｎと、第１記憶部３０に格納されている公開鍵Ａとを式（７）に代入し、共通鍵ＤＨを作成する（Ｓ３０３）。
そして、第２作成部２２は、第３情報処理装置３の第２記憶部５０に公開鍵Ｂを格納する（Ｓ３０４）。
暗号化部２３は、第２作成部２２で作成された共通鍵ＤＨを用いて、開発元が作成したデータを暗号化する（Ｓ３０５）。
そして、暗号化部２３は、暗号化データを第３情報処理装置３の第２記憶部５０に格納する（Ｓ３０６）。
【００８２】
図９は、第３情報処理装置における処理を示すフローチャートである。
図９を参照して、第３情報処理装置３における処理を説明する。
以下の説明では、第２情報処理装置２で作成された公開鍵Ｂは、第２記憶部５０に格納されているものとする。
第２生成部４２は、例えば、第３情報処理装置３が起動されたとき、第２記憶部５０に格納されているマスターキーと、開発元ＩＤと、第２カウント部４１のカウント値とを用いて、秘密鍵Ｐを作成する（Ｓ４０１）。第２生成部４２の秘密鍵Ｐの作成処理は、図３を用いて説明した第１生成部１３の秘密鍵Ｐの作成処理と同様であるため説明を省略する。
【００８３】
第３作成部４３は、第２生成部４２で作成された秘密鍵Ｐと、第２記憶部５０に格納されている素数Ｎと、公開鍵Ｂとを式（８）に代入して、共通鍵ＤＨを作成する（Ｓ４０２）。
復号部４４は、共通鍵ＤＨを用いて、第２記憶部５０に格納されている暗号化データを復号する（Ｓ４０３）。
【００８４】
上述の説明では、Ｓ４０１において、マスターキーとカウンタ値とを用いて生成した複数の組合値Ｃを、開発元ＩＤを暗号鍵として用いて暗号化処理し、暗号化組合値ＣＣを連結して秘密鍵Ｐを作成する処理を説明したが、これに限定されるものではない。Ｓ４０１では、開発元ＩＤを用いて、任意の方法で秘密鍵Ｐを生成してもよい。また、Ｓ４０１では、擬似乱数生成器に開発元ＩＤを入力して秘密鍵Ｐを生成してもよい。すなわち、秘密鍵Ｐは、擬似乱数生成器を用いて生成されてもよい。
【００８５】
図１０は、コンピュータ装置の一実施例を示すブロック図である。
図１０を参照して、コンピュータ装置２００の構成について説明する。
図１０において、コンピュータ装置２００は、制御回路２０１と、記憶装置２０２と、読書装置２０３と、記録媒体２０４と、通信インターフェイス２０５と、入出力インターフェイス２０６と、入力装置２０７と、表示装置２０８と、結線論理２０９とを含む。また、通信インターフェイス２０５は、ネットワーク２１０と接続される。そして、各構成要素は、バス２１１により接続される。第１情報処理装置１と、第２情報処理装置２と、第３情報処理装置３とは、それぞれコンピュータ装置２００に記載の構成要素の一部または全てを適宜選択して構成することができる。
【００８６】
制御回路２０１は、コンピュータ装置２００全体の制御をする。そして、制御回路２０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マルチコアＣＰＵ、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）およびＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などのプロセッサである。そして、制御回路２０１は、例えば、図５において、第１制御部１０、第２制御部２０、及び第３制御部４０として機能する。
【００８７】
記憶装置２０２は、各種データを記憶する。そして、記憶装置２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリや、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）などである。記憶装置２０２は、例えば、図５において、第１記憶部３０と、第２記憶部５０として機能する。そして、記憶装置２０２は、第１記憶部３０として機能するとき、図５に示す、第１設定情報３１と、第１鍵情報３２とを記憶してもよい。また、記憶装置２０２は、第２記憶部５０として機能するとき、図５に示す、第２設定情報５１と、第２鍵情報５２と、識別情報５３と、データ情報５４とを記憶しても良い。
【００８８】
また、ＲＯＭは、ブートプログラムなどのプログラムを記憶している。ＲＡＭは、制御回路２０１のワークエリアとして使用される。ＨＤは、ＯＳ、アプリケーションプログラム、ファームウェアなどのプログラム、および各種データを記憶している。
【００８９】
第１情報処理装置１の記憶装置２０２は、制御回路２０１を、第１取得部１１と、第１カウント部１２と、第１生成部１３と、第１作成部１４として機能させる鍵作成プログラムを記憶してもよい。また、第２情報処理装置２の記憶装置２０２は、第２取得部２１と、第２作成部２２と、暗号化部２３として機能させる暗号化プログラムと、データ作成プログラムとを記憶してもよい。さらに、第３情報処理装置３の記憶装置２０２は、第２カウント部４１と、第２生成部４２と、第３作成部４３と、復号部４４として機能させる復号プログラムを記憶してもよい。また、第１情報処理装置１〜第３情報処理装置３の記憶装置２０２は、制御回路２０１を、第１制御部１０と、第２制御部２０と、第３制御部４０として機能させる暗号処理プログラムを記憶してもよい。
【００９０】
情報処理装置１〜情報処理装置３は、暗号処理をするとき、記憶装置２０２に記憶されたプログラムをＲＡＭに読み出す。ＲＡＭに読み出されたプログラムを制御回路２０１で実行することにより、情報処理装置１〜情報処理装置３は、それぞれ取得処理と、カウント処理と、生成処理と、作成処理と、暗号化処理と、復号処理との１以上を含む暗号処理を実行する。
【００９１】
なお、上述の各プログラムは、制御回路２０１が通信インターフェイス２０５を介してアクセス可能であれば、ネットワーク２１０上のサーバが有する記憶装置に記憶されていても良い。
【００９２】
読書装置２０３は、制御回路２０１に制御され、着脱可能な記録媒体２０４のデータのリード／ライトを行なう。そして、読書装置２０３は、例えば、ＦＤＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＤＶＤＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＢＤＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｋ  Ｄｒｉｖｅ）およびＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などである。
【００９３】
記録媒体２０４は、各種データを保存する。記録媒体２０４は、例えば、鍵作成プログラム、暗号化プログラム、復号プログラム、及び暗号処理プログラムのいずれか１以上を記憶する。さらに、記録媒体２０４は、図５に示す、第１設定情報３１と、第１鍵情報３２と、第２設定情報５１と、第２鍵情報５２と、識別情報５３と、データ情報５４とを記憶しても良い。
【００９４】
そして、記録媒体２０４は、読書装置２０３を介してバス２１１に接続され、制御回路２０１が読書装置２０３を制御することにより、データのリード／ライトが行なわれる。また、記録媒体２０４は、例えば、ＳＤメモリーカード（ＳＤ  Ｍｅｍｏｒｙ  Ｃａｒｄ）、ＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｋ）、およびフラッシュメモリなどの非一時的記録媒体である。
【００９５】
通信インターフェイス２０５は、ネットワーク２１０を介してコンピュータ装置２００と他の装置とを通信可能に接続する。また、通信インターフェイス２０５は、無線ＬＡＮの機能を有するインターフェイス、および近距離無線通信機能を有するインターフェイスを含んでも良い。そして、無線ＬＡＮインターフェイスは、例えば、無線ＬＡＮ規格として、Ｗｉ−Ｆｉ（登録商標）をサポートしても良い。近距離無線インターフェイスは、例えば、近距離無線通信規格として、Ｂｌｕｅｔｏｏｔｈ（登録商標）をサポートしても良い。ＬＡＮは、Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略である。
【００９６】
入出力インターフェイス２０６は、例えば、キーボード、マウス、およびタッチパネルなどの入力装置２０７と接続され、接続された入力装置２０７から各種情報を示す信号が入力されると、バス２１１を介して入力された信号を制御回路２０１に出力する。また、入出力インターフェイス２０６は、制御回路２０１から出力された各種情報を示す信号がバス２１１を介して入力されると、接続された各種装置にその信号を出力する。入出力インターフェイス２０６は、例えば、ユーザによる生成元Ｇ、素数Ｎ、マスターキー、開発元ＩＤ及び秘密鍵Ｓの入力を受け付けても良い。入出力インターフェイス２０６は、制御回路２０１と共に動作することにより、例えば、図５において、第１取得部１１、及び第２取得部２１として機能する。
表示装置２０８は、各種情報を表示する。表示装置２０８は、タッチパネルでの入力を受け付けるための情報を表示しても良い。
【００９７】
結線論理２０９は、例えば、ハードワイヤードで形成された論理メモリである。そして、結線論理２０９は、例えば、第３情報処理装置３に備えられ、素数Ｎと、マスターキーと、開発元ＩＤとを格納する。結線論理２０９は、例えば、図５において、第２記憶部５０に含まれる第１数値記憶部及び第２数値記憶部として機能する。素数Ｎと、マスターキーとは、例えば、第１数値記憶部に記憶される。また、開発元ＩＤは、例えば、第２数値記憶部に記憶される。
ネットワーク２１０は、例えば、ＬＡＮ、無線通信、またはインターネットなどであり、コンピュータ装置２００と他の装置を通信接続する。
【００９８】
以上のように、鍵作成装置（第１情報処理装置１）及び復号装置（第３情報処理装置３）は、ＤＨ鍵交換において、開発元ＩＤを用いて秘密鍵Ｐを生成する。また、鍵作成装置は、生成した秘密鍵Ｐを用いて、公開鍵Ａを作成する。これにより、復号装置は、復号装置にハードワイヤードで記憶している開発元ＩＤに対応する公開鍵Ａではない、他の公開鍵を用いて作成された共通鍵で暗号化データを復号したとき、破損した画像データや起動できないプログラムデータを出力することになる。このとき、復号装置は、画像データやプログラムデータをまともに、表示及び実行できなくなる。暗号処理システム１００では、設計元は、開発元ＩＤに対応する公開鍵Ａを含む開発環境と、開発元ＩＤを記憶している復号装置とを各開発元に提供する。よって、第三者は、復号装置に対応する公開鍵Ａを含む開発環境を手に入れることが困難である。したがって、第三者は、データを改ざんし、改ざんしたデータを記憶した不正な記憶装置を復号装置の記憶装置と差し替えても、復号装置にまともにデータを出力させることができない。以上により、鍵作成装置及び復号装置は、データの改ざんによる不正行為を防止することができる。
【００９９】
実施形態の鍵作成装置及び復号装置は、開発元ＩＤと、マスターキーとを用いて秘密鍵Ｐを生成する。これにより、第三者は、マスターキーと、開発元ＩＤとを知らないと、鍵作成装置及び復号装置で秘密鍵Ｐを生成するために使用されている暗号化アルゴリズムを知ったとしても、秘密鍵Ｐを生成することができない。したがって、鍵作成装置及び復号装置は、データの改ざんによる不正行為を防止することができる。
【０１００】
実施形態の鍵作成装置及び復号装置は、暗号論的擬似乱数生成器（ＣＳＰＲＮＧ）を含み、暗号論的擬似乱数生成器を用いて秘密鍵Ｐを生成する。したがって、鍵作成装置及び復号装置は、暗号論的に適した秘密鍵Ｐを生成することができる。
【０１０１】
鍵作成装置及び復号装置は、例えば、マスターキーと指定数の各カウント値とを組み合わせた指定数の組合値Ｃを、それぞれ暗号化処理した暗号化組合値ＣＣを連結することにより秘密鍵Ｐを作成している。また、安全なブロック暗号アルゴリズムを用いたＣＴＲモードで、平文とＸＯＲする前のデータはＣＳＰＲＮＧと呼んで差し支えない性質を持つことがわかっている。したがって、鍵作成装置及び復号装置は、暗号論的に適した秘密鍵Ｐを生成することができる。
【０１０２】
実施形態の鍵作成装置及び復号装置は、カウンタにより、秘密鍵Ｐのビット数を暗号化組合値ＣＣのビット数で除算した指定数Ｄをカウントし、そのカウント値とマスターキーとを組み合わせた指定数Ｄの組合値Ｃを用いて暗号化組合値ＣＣを生成する。そして、鍵作成装置及び復号装置は、指定数の暗号化組合値ＣＣを連結することで秘密鍵Ｐを生成している。これにより、復号装置は、ハードワイヤードでの記憶が困難である長いビット数の秘密鍵Ｐに代えて、短いビット数であるマスターキー、開発元ＩＤと、素数Ｎとをハードワイヤードで記憶すればよいため、製造コストを削減することができる。
【０１０３】
実施形態の復号装置は、マスターキー及び素数Ｎを、復号装置に含まれる集積回路上の第１結線論理を用いて数値を記憶する。集積回路は、マスターキー及び素数Ｎを記憶したあとにパッケージングされるので、第三者による、マスターキーの取得を困難にしている。したがって、復号装置は、データの改ざんによる不正行為を防止することができる。
【０１０４】
実施形態の復号装置は、復号装置に含まれる集積回路を実装する基板上の第２結線論理を用いて数値を記憶する。基板は、筐体の内部に固定されているので、開発元ＩＤを得るために基板の配線を確認しようとするとき、筐体を開いて確認する必要がある。これにより、復号装置は、第三者による、開発元ＩＤの取得を困難にしている。したがって、復号装置は、開発元ＩＤの不正な書き換えを抑制することができる。
【０１０５】
実施形態の復号装置は、マスターキー及び素数Ｎを、第１結線論理に記憶し、開発元ＩＤを、第２結線論理で記憶する。マスターキー及び素数Ｎは、集積回路内の第１結線論理に記憶されるので低コストである。また、開発元ＩＤは、ビット数が多くある必要がないので、基板上の第２結線論理に記憶しても低コストを実現できる。これにより、復号装置は、ビット数の多いマスターキー及び素数Ｎを集積回路内の配線によるハードワイヤードで設定し、ビット数の少ない開発者ＩＤを実装面積の大きな基板上のヒューズ又はピンにより設定して実装面積を小さくすることができる。
【０１０６】
実施形態の復号装置は、開発元ＩＤを、基板上の第２結線論理に記憶する。第２結線論理は、例えば、基板上でピンの短絡と開放とを選択することで、開発元ＩＤを設定する構成にすることができる。これにより、復号装置は、設計元から開発元へ基板を提供する際の、開発元ＩＤの設定を容易にすることができる。
【０１０７】
実施形態の暗号化装置は、開発元ＩＤを用いて生成された秘密鍵Ｐを用いて作成された公開鍵Ａと、秘密鍵Ｓとを取得する。そして、暗号化装置は、公開鍵Ａと、秘密鍵Ｓとを用いて共通鍵ＤＨを作成し、作成した共通鍵ＤＨでデータを暗号化した暗号化データを復号装置の記憶装置に格納する。これにより、暗号化装置は、公開鍵Ａに対応する開発元ＩＤを格納した復号装置のみに、暗号化データから元のデータを復号させることができる。したがって、暗号化装置は、データの改ざんによる不正行為を防止することができる。
【０１０８】
なお、本実施形態は、以上に述べた実施形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１０９】
１  第１情報処理装置
２  第２情報処理装置
３  第３情報処理装置
１０  第１制御部
２０  第２制御部
３０  第１記憶部
４０  第３制御部
５０  第２記憶部
１００、３００  暗号処理システム
２００  コンピュータ装置
２０１  制御回路
２０２  記憶装置
２０３  読書装置
２０４  記録媒体
２０５  通信Ｉ/Ｆ
２０６  入出力Ｉ/Ｆ
２０７  入力装置
２０８  表示装置
２０９  結線論理
２１０  ネットワーク
２１１  バス
【図１】
2019165518.tif 000003
【図２】
2019165518.tif 000004
【図３】
2019165518.tif 000005
【図４】
2019165518.tif 000006
【図５】
2019165518.tif 000007
【図６】
2019165518.tif 000008
【図７】
2019165518.tif 000009
【図８】
2019165518.tif 000010
【図９】
2019165518.tif 000011
【図１０】
2019165518.tif 000012