(57)【要約】【課題】耐タンパモジュール外のプログラムの変更を容易に検出することである。【解決手段】予め設定されたブートプログラムを含むブート部のハッシュ値を記憶するフラッシュメモリ４５と、入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力するＣＰＵ４１と、を有する耐タンパ性を有するモジュール４０と、前記ブート部を記憶するフラッシュメモリ３５と、前記ブート部に記憶されたプログラムの実行により、フラッシュメモリ３５に記憶されたブート部をＣＰＵ４１に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記ブート部の使用を伴う端末装置の動作を許可に設定するＣＰＵ３１と、を備える。【選択図】図３
2008244992.tif 000002
【特許請求の範囲】
【請求項１】
予め設定されたブートプログラムを含むブート部のハッシュ値を記憶する第１の記憶手段と、
入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力する第１の制御手段と、を有する耐タンパモジュールと、
前記ブート部を記憶する第２の記憶手段と、
前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶されたブート部を前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記ブート部の使用を伴う端末装置の動作を許可に設定する第２の制御手段と、を備える端末装置。
【請求項２】
前記第２の記憶手段は、前記ブート部とそれ以外のデータ及びプログラムを含む拡張部とを記憶し、
前記第１の記憶手段は、予め設定された前記ブート部及び前記拡張部のハッシュ値を記憶し、
前記第１の制御手段は、前記算出したブート部のハッシュ値及び入力される拡張部のハッシュ値と、前記記憶されたブート部及び拡張部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力し、
前記第２の制御手段は、前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶された拡張部のハッシュ値を算出し、当該算出した拡張部のハッシュ値と、前記第２の記憶手段に記憶されたブート部とを前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記記憶されたブート部及び拡張部の使用を伴う端末装置の動作を許可に設定する請求項１に記載の端末装置。
【請求項３】
情報を出力する第１の出力手段を備え、
前記第２の記憶手段は、端末装置の所属に固有の出力データである第１の固定出力データを記憶し、
前記拡張部は、前記第１の固定出力データを含み、
前記第２の制御手段は、前記動作を許可に設定した後に、前記第１の出力手段に所定情報を出力する際に、前記記憶された第１の固定出力データを読み出して当該所定情報を当該第１の固定出力データとともに前記第１の出力手段に出力させる請求項２に記載の端末装置。
【請求項４】
情報を出力する第２の出力手段を備え、
前記第１の記憶手段は、端末装置の所属に固有の出力データである第２の固定出力データを記憶し、
前記第２の制御手段は、前記動作を許可に設定した後に、前記第２の出力手段に所定情報を出力する際に、前記記憶された第２の固定出力データを読み出して当該所定情報を当該第２の固定出力データとともに前記第２の出力手段に出力させる請求項１から３のいずれか一項に記載の端末装置。
【請求項５】
情報を出力する第３の出力手段と、
端末装置の認証を行うとともに当該端末装置に固有の出力データである第３の固定出力データを提供する認証装置と通信する通信手段と、を備え、
前記第２の制御手段は、前記動作を許可に設定した後に、前記通信手段を介して認証要求を前記認証装置に送信し、当該認証装置から認証が許可される場合に、前記第３の固定出力データを前記認証装置から受信し、前記第３の出力手段に所定情報を出力する際に、当該所定情報を前記受信された第３の固定出力データとともに前記第３の出力手段に出力させる請求項１から４のいずれか一項に記載の端末装置。
【請求項６】
コンピュータを、
予め設定されたブートプログラムを含むブート部のハッシュ値を記憶する第１の記憶手段と、
入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力する第１の制御手段と、を有する耐タンパモジュール、
前記ブート部を記憶する第２の記憶手段、
前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶されたブート部を前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記ブート部の使用を伴う端末装置の動作を許可に設定する第２の制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置及びプログラムに関する。
【背景技術】
【０００２】
従来、顧客との取引を行う端末が実施されている。端末としては、耐タンパモジュールを有する端末が考えられている（例えば、特許文献１参照）。耐タンパ性は、取引端末の筐体のこじ開けなどの不正アクセスから機密情報の漏洩を防止する能力である。耐タンパ性は、例えば、配線を樹脂で固めることで、配線からの信号盗聴を不可能にしたり、所定の検知手段により端末の筐体が開けられたことが検知されると、内部のフラッシュＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）の内容を破壊する機能を付加することなどにより実現されている。
【０００３】
このため、不正な第三者に耐タンパモジュールが開けられても、その中の記録媒体に記録されたデータを盗まれることがない。耐タンパモジュールを有する端末としては、例えば、本体に耐タンパモジュールを合体させて使用していた。
【０００４】
また、ハッシュを用いて、プログラムの改ざんを検出する方法が考えられている（例えば、特許文献２参照）。
【特許文献１】特開２００３−１６５２７号公報
【特許文献２】特開２００５−１８０９６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の耐タンパモジュールを有する端末では、耐タンパモジュール外のプログラムが改ざんや不正利用されるおそれがあった。また、プログラムの改ざん防止を強固にすることで、意図的か過失によるものかはともかく、容易な方法で誤用、転用、悪用を防止する要請がある。
【０００６】
プログラムの変更検出をするにあたり、モジュール間のインタフェース速度が遅いと、実用にならないという点がある。耐タンパモジュールとして、ＩＣ（Integrated Circuit）カード技術を応用したＳＡＭ（Secure Application Module）等のチップではインタフェースが低速のシリアルであり、せっかくの高度な耐タンパ機能が活きないおそれがあった。
【０００７】
本発明の課題は、耐タンパモジュール外のプログラムの変更を容易に検出することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明の端末装置は、
予め設定されたブートプログラムを含むブート部のハッシュ値を記憶する第１の記憶手段と、
入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力する第１の制御手段と、を有する耐タンパモジュールと、
前記ブート部を記憶する第２の記憶手段と、
前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶されたブート部を前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記ブート部の使用を伴う端末装置の動作を許可に設定する第２の制御手段と、を備える。
【０００９】
請求項２に記載の発明は、請求項１に記載の端末装置において、
前記第２の記憶手段は、前記ブート部とそれ以外のデータ及びプログラムを含む拡張部とを記憶し、
前記第１の記憶手段は、予め設定された前記ブート部及び前記拡張部のハッシュ値を記憶し、
前記第１の制御手段は、前記算出したブート部のハッシュ値及び入力される拡張部のハッシュ値と、前記記憶されたブート部及び拡張部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力し、
前記第２の制御手段は、前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶された拡張部のハッシュ値を算出し、当該算出した拡張部のハッシュ値と、前記第２の記憶手段に記憶されたブート部とを前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記記憶されたブート部及び拡張部の使用を伴う端末装置の動作を許可に設定する。
【００１０】
請求項３に記載の発明は、請求項２に記載の端末装置において、
情報を出力する第１の出力手段を備え、
前記第２の記憶手段は、端末装置の所属に固有の出力データである第１の固定出力データを記憶し、
前記拡張部は、前記第１の固定出力データを含み、
前記第２の制御手段は、前記動作を許可に設定した後に、前記第１の出力手段に所定情報を出力する際に、前記記憶された第１の固定出力データを読み出して当該所定情報を当該第１の固定出力データとともに前記第１の出力手段に出力させる。
【００１１】
請求項４に記載の発明は、請求項１から３のいずれか一項に記載の端末装置において、
情報を出力する第２の出力手段を備え、
前記第１の記憶手段は、端末装置の所属に固有の出力データである第２の固定出力データを記憶し、
前記第２の制御手段は、前記動作を許可に設定した後に、前記第２の出力手段に所定情報を出力する際に、前記記憶された第２の固定出力データを読み出して当該所定情報を当該第２の固定出力データとともに前記第２の出力手段に出力させる。
【００１２】
請求項５に記載の発明は、請求項１から４のいずれか一項に記載の端末装置において、
情報を出力する第３の出力手段と、
端末装置の認証を行うとともに当該端末装置に固有の出力データである第３の固定出力データを提供する認証装置と通信する通信手段と、を備え、
前記第２の制御手段は、前記動作を許可に設定した後に、前記通信手段を介して認証要求を前記認証装置に送信し、当該認証装置から認証が許可される場合に、前記第３の固定出力データを前記認証装置から受信し、前記第３の出力手段に所定情報を出力する際に、当該所定情報を前記受信された第３の固定出力データとともに前記第３の出力手段に出力させる。
【００１３】
請求項６に記載の発明のプログラムは、
コンピュータを、
予め設定されたブートプログラムを含むブート部のハッシュ値を記憶する第１の記憶手段と、
入力されるブート部のハッシュ値を算出し、当該算出したブート部のハッシュ値と、前記記憶されたブート部のハッシュ値と、が一致するか否かを判別し、その判別結果を出力する第１の制御手段と、を有する耐タンパモジュール、
前記ブート部を記憶する第２の記憶手段、
前記ブート部に記憶されたプログラムの実行により、前記第２の記憶手段に記憶されたブート部を前記第１の制御手段に入力してその判別結果を取得し、当該判別結果においてハッシュ値が一致する場合に、前記ブート部の使用を伴う端末装置の動作を許可に設定する第２の制御手段、
として機能させる。
【発明の効果】
【００１４】
本発明によれば、耐タンパモジュール外のブート部であって、ブートプログラムを含むブート部の変更を容易に検出できる。
【発明を実施するための最良の形態】
【００１５】
以下、添付図面を参照して本発明に係る好適な第１〜第４の実施の形態及び変形例を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
【００１６】
（第１の実施の形態）
図１〜図９を参照して、本発明に係る第１の実施の形態を説明する。先ず、図１〜図５を参照して、本実施の形態の装置構成を説明する。図１に、本実施の形態の決済システム１の構成を示す。
【００１７】
図１に示すように、決済システム１は、センタサーバ１０と、端末装置としての電子機器２０と、を備えて構成される。センタサーバ１０は、通信ネットワークＮを介して電子機器２０と通信接続されている。
【００１８】
決済システム１では、例えば、店舗等に電子機器２０が設置され、カード会社等のセンタサーバ１０に管理される。カード情報を有するカード情報を有するクレジットカード等のＩＣ（Integrated Circuit）カードにより顧客が商品購入の決済をする場合に、電子機器２０でＩＣカードの情報を読み取りセンタサーバ１０に送信する。センタサーバ１０は、ＩＣカードの認証後に決済処理を行う。
【００１９】
通信ネットワークＮは、例えば、ＷＡＮ（Wide Area Network）とするが、ＬＡＮ（Local Area Network）等の通信ネットワークとしてもよく、電話回線、専用線、移動体通信網、通信衛星網、ＣＡＴＶ（Cable Television）回線、インターネットプロバイダ等を含めてもよい。
【００２０】
次いで、センタサーバ１０の内部構成を説明する。図２に、センタサーバ１０の内部構成を示す。
【００２１】
図２に示すように、センタサーバ１０は、ＣＰＵ（Central Processing Unit）１１と、入力部１２と、ＲＡＭ１３と、表示部１４と、記憶部１５と、通信部１６と、を備えて構成され、各部がバス１７を介して接続される。
【００２２】
ＣＰＵ１１は、センタサーバ１０の各部を中央制御する。ＣＰＵ１１は、記憶部１５に記憶されているシステムプログラム及び各種アプリケーションプログラムの中から指定されたプログラムをＲＡＭ１３に展開し、ＲＡＭ１３に展開されたプログラムとの協働で、各種処理を実行する。
【００２３】
ＣＰＵ１１は、第１の端末管理プログラムとの協働で、電子機器２０の本体部３０からＩＤ情報を受信して、ＩＤ情報が正当である場合に、認証ＯＫ信号を本体部３０に送信する。また、ＣＰＵ１１は、本体部３０から決済情報を受信して、決済情報に基づいて決済に関する信用確認処理等を行い、その決済の結果に応じた決済許可信号又は決済不許可信号を本体部３０に送信する。
【００２４】
入力部１２は、カーソルキー、文字、数字入力キー及び各種機能キーなどを備えたキーボードを含む構成とし、操作者により各キーが押下された操作信号をＣＰＵ１１に出力する。また、入力部１２は、マウス等のポインティングデバイスを含み、位置入力信号を受け付けてＣＰＵ１１に送信することとしてもよい。
【００２５】
ＲＡＭ１３は、揮発性のメモリであり、実行される各種プログラムやこれら各種プログラムに係るデータ等を格納するワークエリアを有し、その情報を一時的に格納する。
【００２６】
表示部１４は、ＬＣＤ（Liquid Crystal Display）、ＣＲＴ（Cathode Ray Tube）等で構成され、ＣＰＵ１１からの表示信号に従って画面表示を行う。
【００２７】
記憶部１５は、磁気記録媒体を有するＨＤＤ（Hard Disk Drive）等により構成され、各種プログラム及び各種データを記録媒体から読み出し及び書き込み可能に記憶する。
【００２８】
また、記憶部１５は、第１の端末管理プログラムと、鍵Ｔ１と、を記憶する。
【００２９】
通信部１６は、モデム、ＴＡ（Terminal Adapter）、ルータ、ネットワークカード等により構成され、接続される通信ネットワークＮ上の電子機器２０等の外部機器と情報を送受信する。
【００３０】
次いで、電子機器２０の構成を説明する。図３に、電子機器２０の内部構成を示す。
【００３１】
図３に示すように、電子機器２０は、本体部３０と、耐タンパモジュールとしてのモジュール４０と、を備えて構成される。モジュール４０は、本体部３０に対し、着脱可能な構成として説明する。しかし、本体部３０とモジュール４０とが、一体型である構成としてもよい。
【００３２】
本体部３０は、耐タンパ性がない又は弱い部分である。本体部３０は、第２の制御手段としての出力手段ＣＰＵ３１と、第１〜第３の出力手段としてのプリント部３２と、ＲＡＭ３３と、第１〜第３の出力手段としての表示部３４と、第２の記憶手段としてのフラッシュメモリ３５と、通信手段としての通信部３６と、を備えて構成される。
【００３３】
ＣＰＵ３１、ＲＡＭ３３、通信部３６は、センタサーバ１０のＣＰＵ１１、ＲＡＭ１３、通信部１６と同様の構成であり、異なる部分を主として説明する。
【００３４】
ＣＰＵ３１は、フラッシュメモリ３５に記憶されたブートプログラム３５１との協働で、アプリ部３５Ｂのハッシュ値を算出し、アプリ部３５Ｂのハッシュ値及びブート部３５Ａをモジュール４０に送信し、それらの変更が行われていないことを示すプログラムＯＫ信号をモジュール４０から受信した場合に、ブート部３５Ａ及びアプリ部３５Ｂの使用を許可し、ＩＤ情報をセンタサーバ１０に送信して認証を得て、ＩＣカードのカード情報及び暗証情報を含む決済情報を生成しセンタサーバ１０に送信して決済処理を行う。このとき、ＣＰＵ３１は、フラッシュメモリ３５のアプリ部３５Ｂに記憶された固定データ３５５の固定表示データを含む表示画面を表示部３４に表示させ、固定データ３５５の固定プリントデータを含む情報をプリント部３２により記録紙にレシートとしてプリントさせる。
【００３５】
また、ＣＰＵ３１は、モジュール４０のＣＰＵ４１とデータ通信が可能である。
【００３６】
プリント部３２は、例えば、サーマルプリンタであり、レシート用、ジャーナル用（商品登録内容の記録用）のロール紙を有し、ＣＰＵ３１から入力される指示に従って、各ロール紙に対して金額データ等をプリントアウトする。また、プリント部３２は、レシートの出力時に、固定プリントデータを固定的にプリントする。
【００３７】
表示部３４は、ＬＣＤ等で構成され、ＣＰＵ３１からの表示信号に従って画面表示を行う。また、表示部３４は、表示画面の表示時に、固定表示データを固定的に表示する。
【００３８】
フラッシュメモリ３５は、各種プログラム及び各種データを読み出し及び書き込み可能に記憶する。フラッシュメモリ３５は、後述するブートプログラム３５１としての第１のブートプログラム、認証プログラム３５２、アプリケーションプログラム３５３、固定データ出力プログラム３５４、固定データ３５５と、各種データと、鍵Ｄ１で暗号化された暗号化データｄ１と、端末ＩＤ１０１と、を記憶する。
【００３９】
フラッシュメモリ３５に代えて、例えばハードディスクからＲＡＭにロードされたもの、電源バックアップされたＲＡＭ、フラッシュメモリ以外の不揮発メモリ等として構成してもよい。
【００４０】
通信部３６は、通信ネットワークＮを介してセンタサーバ１０とデータの送受信を行う。
【００４１】
モジュール４０は、耐タンパ性を有する。モジュール４０は、第１の制御手段としてのＣＰＵ４１と、入力部４２と、ＲＡＭ４３と、カードリーダ４４と、第１の記憶手段としてのフラッシュメモリ４５と、を備えて構成される。
【００４２】
ＣＰＵ４１、ＲＡＭ４３、フラッシュメモリ４５は、本体部３０のＣＰＵ３１、ＲＡＭ３３、フラッシュメモリ３５と同様の構成であり、異なる部分を主として説明する。
【００４３】
ＣＰＵ４１は、フラッシュメモリ４５に記憶された第１のモジュール処理プログラムとの協働で、本体部３０からアプリ部３５Ｂのハッシュ値及びブート部３５Ａ自体を受信し、ブート部３５Ａのハッシュ値を算出し、アプリ部３５Ｂのハッシュ値及び算出したブート部３５Ａのハッシュ値と、フラッシュメモリ４５に記憶されたハッシュ値４５１とが一致するか否かを判別し、一致する場合に、プログラムＯＫ信号を本体部３０に送信する。その後、ＣＰＵ４１は、本体部３０からカード情報読み取り指示及び暗証情報入力指示を受信し、カードリーダ４４によりＩＣカードからカード情報を読み取り、入力部４２から暗証情報の入力を受付け、カード情報及び暗証情報を鍵Ｔ１で暗号化して本体部３０に送信する。
【００４４】
入力部４２は、数字入力キー及び各種機能キーなどを備えたキーボードを含む構成とし、操作者により各キーが押下された操作信号をＣＰＵ４１に出力する。
【００４５】
カードリーダ４４は、図示しないソケット等の接続部等を備える。接続部は、ＩＣカードが接続され、その接続されたＩＣカードのカード情報を読み取る。
【００４６】
ＩＣカードは、各顧客が有する決済用の記録媒体としてのカードである。ＩＣカードは、接触式又は非接触式のカードであり、各ＩＣカードでユニークなカード情報を記憶するＩＣチップを備える。決済用の記録媒体としては、ＩＣカードに代えて、磁気カード、生体認証カード等、他の記録媒体としてもよい。
【００４７】
フラッシュメモリ４５は、第１のモジュールプログラムと、鍵Ｔ１，Ｄ１と、ハッシュ値４５１と、を記憶する。
【００４８】
次に、図４及び図５を参照して、決済システム１の各装置に記憶される情報を説明する。図４に、電子機器２０に記憶されるプログラム等の情報を示す。図５に、決済システム１の各装置に記憶される鍵等の情報を示す。
【００４９】
図４に示すように、フラッシュメモリ３５を、記憶データの種類に応じて、ブート部３５Ａと、アプリ部３５Ｂと、データ部３５Ｃと、に分ける。ブート部３５Ａは、ブートプログラム３５１と、認証プログラム３５２と、を記憶する。アプリ部３５Ｂは、アプリケーションプログラム３５３と、固定データ出力プログラム３５４と、固定データ３５５と、を記憶する。データ部３５Ｃは、各種データを記憶する。
【００５０】
通常、プログラムを起動するときには、プログラムを起動させるためのプログラム、すなわちブートプログラム３５１が存在し、ブートプログラム３５１が起動したアプリケーションプログラム３５３が実際の処理を担当する。アプリケーションプログラム３５３は、各種アプリケーションのプログラムであり、ブートプログラム３５１及び認証プログラム３５２以外のプログラムとする。
【００５１】
認証プログラム３５２は、ブート部３５Ａ及びアプリ部３５Ｂの正当性を認証するするプログラムである。認証プログラム３５２は、一種のアプリケーションプログラムであるが、ブートプログラム３５１の実行開始に連動して実行される。固定データ出力プログラム３５４は、アプリケーションプログラムの一種であり、電子機器２０で固定データ３５５を表示及びプリントするデータである。固定データ３５５は、電子機器２０でのアプリケーションプログラム実行時に、プリント部３２に毎回固定的にプリントする固定プリントデータと、表示部３４に毎回固定的に表示する固定表示データと、を含む。固定データ３５５は、電子機器２０の使用者、店等の所属に固有のデータであり、その所属を識別可能に出力するためのデータである。固定データ３５５は、例えば、電子機器２０が設けられた店舗の店名、電話番号等の文字データや、店名ロゴ等の画像データである。
【００５２】
データ部３５Ｃは、アプリケーションプログラム３５３の実行時等に用いるデータや、アプリケーションプログラム３５３等により処理した結果のデータを記憶する。
【００５３】
モジュールのフラッシュメモリ４５は、ハッシュ値４５１を記憶する。ハッシュ値４５１は、アプリ部３５Ｂ及びブートプログラム３５１の認証（変更検出）に用いる予め設定されたハッシュ値であり、アプリ部３５Ｂのハッシュ値及びブートプログラム３５１のハッシュ値をマージした値と等価である。
【００５４】
図５に示すように、決済システム１において、センタサーバ１０の記憶部１５には、鍵Ｔ１が記憶されている。鍵Ｔ１は、センタサーバ１０が電子機器２０を認証するための鍵であり、電子機器ごとにユニークな鍵である。
【００５５】
本体部３０のフラッシュメモリ３５（データ部３５Ｃ）には、鍵Ｄ１で暗号化された暗号化データｄ１と、端末ＩＤ１０１と、が記憶されている。鍵Ｄ１は、本体部３０にあるデータを暗号化または復号化するための鍵である。暗号化データｄ１は、例えば、決済処理に使用されるカード判別データである。カード判別データは、ＩＣカードの機能を判別したり、ＩＣカードのカード情報のリストを含み、使えないＩＣカードを判定するための情報である。端末ＩＤとは、電子機器毎にユニークな識別情報である。端末ＩＤ１０１は、電子機器２０の認証に用いる。
【００５６】
モジュール４０のフラッシュメモリ４５には、鍵Ｔ１と、鍵Ｄ１と、が記憶されている。
【００５７】
各鍵の暗号化及び復号化には、互いに相応する鍵を用いて行われる。例えば、ある鍵を用いて情報を暗号化した場合に、その鍵に相応する鍵を用いると暗号化された情報の復号化が可能となる。本実施の形態では、暗号化する鍵と、復号化する鍵とが、同一である共通の共通鍵方式で暗号化及び復号化するものとして説明する。しかし、公開鍵方式や、セション鍵方式等の方式で暗号化及び復号化する構成としてもよい。公開鍵方式では、公開鍵と秘密鍵のペアが互いに相応する鍵となる。
【００５８】
次に、図６及び図７を参照して、決済システム１の動作を説明する。図６に、第１のモジュール処理、第１のブート処理、第１の端末管理処理の流れを示す。図７に、図６の第１のモジュール処理、第１のブート処理、第１の端末管理処理の続きの流れを示す。
【００５９】
電子機器２０のモジュール４０で実行される第１のモジュール処理を説明する。モジュール４０において、例えば、アプリ部３５Ｂのハッシュ値が本体部３０（のＣＰＵ３１）から受信開始されたことをトリガとして、フラッシュメモリ４５から読み出されて適宜ＲＡＭ４３に展開された第１のモジュール処理プログラムとＣＰＵ４１との協働で、第１のモジュール処理が実行される。
【００６０】
先ず、アプリ部３５Ｂのハッシュ値が本体部３０から受信される（ステップＳ１１）。そして、ブート部３５Ａ自体が本体部３０から受信される（ステップＳ１２）。そして、所定のハッシュ関数を用いて、受信したブート部３５Ａ自体のハッシュ値が算出される（ステップＳ１３）。
【００６１】
そして、ステップＳ１１で受信したアプリ部３５Ｂのハッシュ値と、ステップＳ１２で算出したブート部３５Ａのハッシュ値とがマージされ、当該マージされたハッシュ値と、フラッシュメモリ４５に予め記憶されたハッシュ値４５１と、が比較され、一致しているか否かが判別される（ステップＳ１４）。
【００６２】
一致していない場合（ステップＳ１４；ＮＯ）、ブート部３５Ａ及びアプリ部３５Ｂの少なくとも一つが変更されたと判別され、電子機器２０の使用が停止に設定され（ステップＳ１５）、第１のモジュール処理が終了する。
【００６３】
一致した場合（ステップＳ１４；ＹＥＳ）、ブート部３５Ａ及びアプリ部３５Ｂが変更されていないと判別され、それらブート部３５Ａ及びアプリ部３５Ｂの認証ＯＫの旨のプログラムＯＫ信号が本体部３０に送信される（ステップＳ１６）。
【００６４】
そして、ＩＣカードのカード読み取り指示が本体部３０から受信される（ステップＳ１７）。そして、カード読み取り指示に応じて、カードリーダ４４によりセットされたＩＣカードのカード情報が読み取られる（ステップＳ１８）。そして、読み取られたカード情報が、フラッシュメモリ３５のデータ部３５Ｃに記憶された鍵Ｔ１により暗号化され、暗号化カード情報として本体部３０に送信される（ステップＳ１９）。
【００６５】
そして、暗証情報入力指示が本体部３０から送信される（ステップＳ２０）。暗証情報とは、カード情報に対応する暗証情報であり、本実施の形態では、暗証番号とする。しかし、パスワード、指紋等の生体情報等、他の暗証情報としてもよい。
【００６６】
そして、暗証情報入力指示に応じて、入力部４２を介してＩＣカードのユーザから暗証情報が入力される（ステップＳ２１）。そして、入力された暗証番号が、データ部３５Ｃに記憶された鍵Ｔ１により暗号化され、暗号化カード情報として本体部３０に送信され（ステップＳ２２）、第１のモジュール処理が終了される。
【００６７】
次いで、電子機器２０の本体部３０で実行される第１のブート処理を説明する。本体部３０において、例えば、電源がオンされたことをトリガとして、フラッシュメモリ３５から読み出されて適宜ＲＡＭ３３に展開されたブートプログラム３５１（第１のブートプログラム）と、ＣＰＵ３１との協働で、第１のブート処理が実行される。
【００６８】
先ず、ブート部３５Ａの認証プログラム３５２が読み出されて実行開始される（ステップＳ３１）。そして、認証プログラム実行により、ハッシュ計算の初期値がクリアされる（ステップＳ３２）。
【００６９】
そして、認証プログラム実行により、フラッシュメモリ３５のアプリ部３５Ｂが読み出されて、所定のハッシュ関数を用いて、アプリ部３５Ｂのハッシュ値が算出される（ステップＳ３３）。そして、認証プログラム実行により、ステップＳ１１に対応して、ステップＳ３３で算出されたアプリ部３５Ｂのハッシュ値がモジュール４０（のＣＰＵ４１）に送信される（ステップＳ３４）。そして、ブート部３５Ａが読み出され、ブート部３５Ａ自体がモジュール４０に送信される（ステップＳ３５）。
【００７０】
そして、認証プログラム実行により、ステップＳ１６に対応して、プログラムＯＫ信号がモジュール４０から受信され、ブート部３５Ａ及びアプリ部３５Ｂ（及びデータ部３５Ｃ）の使用を伴う電子機器２０の動作が許可に設定される（ステップＳ３６）。そして、フラッシュメモリ３５に記憶されたアプリケーションプログラム３５３及び固定データ出力プログラム３５４が読み出されて実行開始される（ステップＳ３７）。以下のステップＳ３８〜Ｓ４８は、アプリケーションプログラム３５３又は固定データ出力プログラム３５４の実行により動作実行される。ステップＳ３８〜Ｓ４８の説明で、特に、固定データ出力プログラムの実行によるステップには、その実行の旨を記載する。そして、ＩＤ情報が生成され、通信部３６を介して、ＩＤ情報がセンタサーバ１０に送信される（ステップＳ３８）。ＩＤ情報は、フラッシュメモリ３５に記憶された端末ＩＤ１０１を含む。
【００７１】
そして、送信したＩＤ情報に対応して、通信部３６を介して、センタサーバ１０による電子機器２０の認証ＯＫを示す認証ＯＫ信号がセンタサーバ１０から受信される（ステップＳ３９）。そして、固定データ出力プログラム実行により、フラッシュメモリ３５のアプリ部３５Ｂの固定データ３５５の固定表示データが読み出され、その固定表示データを含む表示画面情報が表示部３４に表示される（ステップＳ４０）。
【００７２】
そして、ステップＳ１７に対応して、ＩＣカードのカード情報読み取り指示がモジュール４０に送信される（ステップＳ４１）。そして、ステップＳ１９に対応して、暗号化カード情報がモジュール４０から受信される（ステップＳ４２）。そして、ステップＳ２０に対応して、暗証情報入力指示がモジュール４０に送信される（ステップＳ４３）。そして、ステップＳ２２に対応して、暗号化暗証情報がモジュール４０から受信される（ステップＳ４４）。
【００７３】
また、例えば、フラッシュメモリ３５に記憶された使用していないカード情報の暗号化データｄ１がモジュール４０に送信される。モジュール４０で暗号化データｄ１が鍵Ｄ１で復号化され、本体部３０において、その復号化データを用いて、カード情報が使用していないものであるか判別され、使用していないものである場合に、そのＩＣカード６０の決済が禁止に設定されることとしてもよい。
【００７４】
そして、ステップＳ４２，Ｓ４４で受信された暗号化カード情報及び暗号化暗証情報を含む決済情報が、通信部３６を介してセンタサーバ１０に送信される（ステップＳ４５）。決済情報は、暗号化カード情報及び暗号化暗証情報に加えて、例えば、カードユーザが購入した商品の代金等の情報が含まれる。そして、送信した決済情報の決済が許可か否かを示す決済許可情報又は決済不許可情報が、通信部３６を介してセンタサーバ１０から受信される（ステップＳ４６）。
【００７５】
そして、ステップＳ４６で受信された決済許可情報又は決済不許可情報に基づいて、決済処理が行われたか否かが確認される（ステップＳ４７）。そして、固定データ出力プログラム実行により、決済許可である場合に、フラッシュメモリ３５のアプリ部３５Ｂの固定データ３５５の固定プリントデータが読み出され、その固定プリントデータを含む、商品購入結果等の各種情報がプリント部３２により記録紙にレシートとしてプリントアウトされ（ステップＳ４８）、第１のブート処理が終了する。決済不許可である場合に、その旨等がプリント部３２にプリントアウトされることとしてもよい。
【００７６】
次いで、センタサーバ１０で実行される第１の端末管理処理を説明する。センタサーバ１０において、例えば、ステップＳ３８に対応して、通信部１６を介して、ＩＤ情報が本体部３０から受信開始されたことをトリガとして、記憶部１５から読み出されて適宜ＲＡＭ１３に展開された第１の端末管理プログラムとＣＰＵ１１との協働で、第１の端末管理処理が実行される。
【００７７】
先ず、通信部１６を介して、ＩＤ情報が本体部３０から受信される（ステップＳ５１）。そして、ステップＳ３９に対応して、受信したＩＤ情報に基づいて電子機器２０の動作がＯＫである旨の認証ＯＫ信号が生成され、通信部１６を介して、認証ＯＫ信号が本体部３０に送信される（ステップＳ５２）。より具体的には、ＩＤ情報中の端末ＩＤと正当な電子機器の端末ＩＤとの一致が判別され、一致した場合に、認証ＯＫ信号が生成される。一致しない場合には、図示しないが、動作拒否信号が生成され本体部３０に送信され、電子機器２０の動作が停止される。
【００７８】
そして、ステップＳ４５に対応して、通信部１６を介して、決済情報が受信される（ステップＳ５３）。そして、決済情報中の暗号化カード情報及び暗号化暗証情報が記憶部１５に記憶された鍵Ｔ１で復号化される（ステップＳ５４）。そして、ステップＳ５４で復号化されたカード情報及び暗証情報を用いて、ＩＣカードの認証（信用確認処理）が行われる（ステップＳ５５）。また、ＩＣカードが認証された場合には、受信した決済情報の、カードユーザが購入した商品の代金等の情報に基づいて、カード決済が行われる。
【００７９】
そして、ステップＳ４６に対応して、ステップＳ５６のＩＣカードの認証において認証された場合に、決済が許可された旨を示す決済許可情報が生成され、通信部１６を介して決済許可情報が本体部３０に送信され、認証されない場合に、決済が許可されない旨を示す決済不許可情報が生成され、通信部１６を介して決済不許可情報が本体部３０に送信される（ステップＳ５６）。
【００８０】
以上、本実施の形態によれば、モジュール４０のフラッシュメモリ４５にハッシュ値４５１を記憶し、モジュール４０で、本体部３０から送信されるブート部３５Ａ自体のハッシュ値を算出し、このハッシュ値及び本体部３０から送信されるアプリ部３５Ｂのハッシュ値と、ハッシュ値４５１とが一致するか否かを判別する。一致する場合に、ブート部３５Ａ及びアプリ部３５Ｂが変更されていなく、ブート部３５Ａ及びアプリ部３５Ｂの使用を伴う電子機器２０の動作が許可される。
【００８１】
このため、内部データの変更が難しい耐タンパ性を有するモジュール４０にハッシュ値４５１を記憶し、モジュール４０で比較的小容量のブート部３５Ａのハッシュ計算を行うことで、モジュール４０のインターフェース速度が限られていても、ブート部３５Ａ及びアプリ部３５Ｂの変更の高速なチェックが可能である。よって、モジュール４０外のブート部３５Ａ及びアプリ部３５Ｂの変更を容易に検出できる。
【００８２】
また、変更確認をした比較的小容量のブート部３５Ａに認証プログラム３５２を持たせる。このため、モジュール４０の性能に依らない変更検出ができる。
【００８３】
また、アプリ部３５Ｂの変更検出について、そのハッシュ値を、ブート部３５Ａ自身のハッシュ値とマージさせることで、アプリ部３５Ｂのハッシュ値もモジュール４０で保護できる。
【００８４】
また、アプリ部３５Ｂの使用が許可された場合に、フラッシュメモリ３５に記憶された固定データを、それ以降必ず表示及びプリントする。このため、電子機器２０の利用者が見た目で誤用・不正流用を判断でき、電子機器の不正利用を防ぐことができる。例えば、不正に転売等されたカード状などの小型のモジュール４０を使おうと試みても、店名等の表示・プリントデータが固定されているため、利用することはできない。
【００８５】
なお、本実施の形態では、ブート部３５Ａ及びアプリ部３５Ｂの変更を検出する構成であるが、これに限定されるものではない。例えば、モジュール４０のフラッシュメモリ４５にブート部３５Ａのハッシュ値を記憶し、モジュール４０で、本体部３０から送信されるブート部３５Ａ自体のハッシュ値を算出し、算出したハッシュ値と、フラッシュメモリ４５に記憶されたハッシュ値とが一致するか否かを判別する構成としてもよい。一致する場合に、ブート部３５Ａが変更されていなく、ブート部３５Ａの使用を伴う電子機器２０の動作が許可される。
【００８６】
この構成によれば、モジュール４０にブート部３５Ａのハッシュ値を記憶し、モジュール４０で比較的小容量のブート部３５Ａのハッシュ計算を行うことで、モジュール４０のインターフェース速度が限られていても、ブート部３５Ａの変更の高速なチェックが可能である。よって、モジュール４０外のブート部３５Ａの変更を容易に検出できる。
【００８７】
（第２の実施の形態）
図８及び図９を参照して、本発明に係る第２の実施の形態を説明する。本実施の形態の装置構成は、決済システム１を用いるものとし、第１の実施の形態と異なる部分を主として説明する。
【００８８】
第１の実施の形態では、固定データ３５５がフラッシュメモリのアプリ部３５Ｂに記憶される構成であった。本実施の形態では、モジュール４０のフラッシュメモリ４５が、ハッシュ値４５１とともに、固定データ３５５に対応する固定データを記憶する。
【００８９】
また、センタサーバ１０の記憶部１５は、第２の端末管理プログラムを記憶する。本体部３０のフラッシュメモリ３５は、ブートプログラム３５１として第２のブートプログラムを記憶する。モジュール４０のフラッシュメモリ４５は、第２のモジュール処理プログラムを記憶する。
【００９０】
次に、図８及び図９を参照して、決済システム１の動作を説明する。図８に、第２のモジュール処理、第２のブート処理、第２の端末管理処理の流れを示す。図９に、図８の第２のモジュール処理、第２のブート処理、第２の端末管理処理の続きの流れを示す。
【００９１】
電子機器２０のモジュール４０で実行される第２のモジュール処理を説明する。モジュール４０において、例えば、アプリ部３５Ｂのハッシュ値が本体部３０（のＣＰＵ３１）から受信開始されたことをトリガとして、フラッシュメモリ４５から読み出されて適宜ＲＡＭ４３に展開された第２のモジュール処理プログラムとＣＰＵ４１との協働で、第２のモジュール処理が実行される。
【００９２】
ステップＳ６１〜Ｓ６６は、第１のモジュール処理のステップＳ１１〜Ｓ１６と同様である。ステップＳ６６の実行後、表示部３４に表示させるための固定表示データの読み出し指示が本体部３０から受信される（ステップＳ６７）。そして、固定表示データ読み出し指示に応じて、フラッシュメモリ４５から固定データの固定表示データが読み出され、本体部３０に送信される（ステップＳ６８）。
【００９３】
ステップＳ６９〜Ｓ７４は、第１のモジュール処理のステップＳ１７〜Ｓ２２と同様である。ステップＳ７４の実行後、プリント部３２にプリントさせる情報であるプリント情報の読み出し指示が本体部３０から受信される（ステップＳ７５）。そして、プリント情報読み出し指示に応じて、フラッシュメモリ４５から固定データの固定プリントデータが読み出され、本体部３０に送信され（ステップＳ７６）、第２のモジュール処理が終了する。
【００９４】
次いで、電子機器２０の本体部３０で実行される第２のブート処理を説明する。本体部３０において、例えば、電源がオンされたことをトリガとして、フラッシュメモリ３５から読み出されて適宜ＲＡＭ３３に展開された第２のブートプログラムと、ＣＰＵ３１との協働で、第２のブート処理が実行される。
【００９５】
ステップＳ８１〜Ｓ８７は、第１のブート処理のステップＳ３１〜Ｓ３７と同様である。ステップＳ８７の実行後、ステップＳ６７に対応して、固定表示データ読み出し指示がモジュール４０に送信される（ステップＳ８８）。そして、ステップＳ６８に対応して、固定表示データがモジュール４０から受信される（ステップＳ８９）。そして、ステップＳ８９で受信された固定表示データを含む表示画面が表示部３４に表示される（ステップＳ９０）。
【００９６】
ステップＳ９１〜Ｓ９７は、第１のブート処理のステップＳ４１〜Ｓ４７と同様である。ステップＳ９７の実行後、ステップＳ７５に対応して、固定プリントデータ読み出し指示がモジュール４０に送信される（ステップＳ９８）。そして、ステップＳ７６に対応して、固定プリントデータがモジュール４０から受信される（ステップＳ９９）。そして、ステップＳ９９で受信された固定プリントデータを含む、各種情報がプリント部３２により記録紙にレシートとしてプリントアウトされ（ステップＳ１００）、第２のブート処理が終了する。
【００９７】
次いで、センタサーバ１０で実行される第２の端末管理処理を説明する。センタサーバ１０において、例えば、ステップＳ９５に対応して、通信部１６を介して、決済情報が本体部３０から受信開始されたことをトリガとして、記憶部１５から読み出されて適宜ＲＡＭ１３に展開された第２の端末管理プログラムと、ＣＰＵ１１との協働で、第２の端末管理処理が実行される。
【００９８】
ステップＳ１１１〜Ｓ１１４は、第１の端末管理処理のステップＳ５３〜Ｓ５６と同様である。ステップＳ１１４の実行後、第２の端末管理処理が終了する。
【００９９】
以上、本実施の形態によれば、第１の実施の形態と同様の効果を奏するとともに、アプリ部３５Ｂに固定データが無いので、電子機器毎にハッシュ値が変わらない。このため、モジュール４０に設定されるハッシュ値は同一で良いので、電子機器を容易に製造できる。
【０１００】
また、改ざんの難しい耐タンパ性を有するモジュール４０のフラッシュメモリ４５中に固定データを記憶し、その固定データを必ず表示及びプリントする。このため、電子機器２０の利用者が見た目で誤用・不正流用を判断でき、電子機器の不正利用を防ぐことができるとともに、固定データの変更を防ぐことができる。
【０１０１】
（第３の実施の形態）
図１０及び図１１を参照して、本発明に係る第３の実施の形態を説明する。本変形例の装置構成は、決済システム１を用いるものとし、第２の実施の形態と異なる部分を主として説明する。
【０１０２】
第２の実施の形態では、固定データがモジュール４０のフラッシュメモリ４５に記憶され、端末ＩＤ１０１が本体部３０のフラッシュメモリ３５に記憶された。本実施の形態では、センタサーバ１０の記憶部１５は、固定データを記憶する。記憶部１５に記憶される固定データは、登録されている全ての電子機器それぞれの固定データとし、各固定データは、各電子機器の端末ＩＤに対応付けられて記憶部１５に記憶される。また、モジュール４０のフラッシュメモリ４５は、端末ＩＤ１０１を記憶する。
【０１０３】
また、センタサーバ１０の記憶部１５は、第３の端末管理プログラムを記憶する。本体部３０のフラッシュメモリ３５は、ブートプログラム３５１としての第３のブートプログラムを記憶する。モジュール４０のフラッシュメモリ４５は、第３のモジュール処理プログラムを記憶する。
【０１０４】
次に、図１０及び図１１を参照して、決済システム１の動作を説明する。図１０に、第３のモジュール処理、第３のブート処理、第３の端末管理処理の流れを示す。図１１に、図１０の第３のモジュール処理、第３のブート処理、第３の端末管理処理の続きの流れを示す。
【０１０５】
電子機器２０のモジュール４０で実行される第３のモジュール処理を説明する。モジュール４０において、例えば、アプリ部３５Ｂのデータのハッシュ値が本体部３０（のＣＰＵ３１）から受信開始されたことをトリガとして、フラッシュメモリ４５から読み出されて適宜ＲＡＭ４３に展開された第３のモジュール処理プログラムとＣＰＵ４１との協働で、第３のモジュール処理が実行される。
【０１０６】
ステップＳ１２１〜Ｓ１２６は、第１のモジュール処理のステップＳ１１〜Ｓ１６と同様である。ステップＳ１６の実行後、ＩＤ情報の読み出し指示が本体部３０から受信される（ステップＳ１２７）。そして、ＩＤ情報読み出し指示に基づいてフラッシュメモリ４５から、端末ＩＤ１０１が読み出され、端末ＩＤ１０１がフラッシュメモリ４５に記憶された鍵Ｔ１で暗号化され暗号化端末ＩＤとされ、暗号化端末ＩＤ及び暗号化していない端末ＩＤを含むＩＤ情報として本体部３０に送信される（ステップＳ１２８）。
【０１０７】
ステップＳ１２９〜Ｓ１３４は、第１のモジュール処理のステップＳ１７〜Ｓ２２と同様である。ステップＳ１３４の実行後、第３のモジュール処理が終了する。
【０１０８】
次いで、電子機器２０の本体部３０で実行される第３のブート処理を説明する。本体部３０において、例えば、電源がオンされたことをトリガとして、フラッシュメモリ３５から読み出されて適宜ＲＡＭ３３に展開された第３のブートプログラムと、ＣＰＵ３１との協働で、第３のブート処理が実行される。
【０１０９】
ステップＳ１４１〜Ｓ１４７は、第１のブート処理のステップＳ３１〜Ｓ３７と同様である。ステップＳ１４７の実行後、ステップＳ１２７に対応して、ＩＤ情報読み出し指示がモジュール４０に送信される（ステップＳ１４８）。そして、ステップＳ１２８に対応して、ＩＤ情報がモジュール４０から受信され、通信部３６を介して、センタサーバ１０へ送信される（ステップＳ１４９）。
【０１１０】
そして、固定データとしての固定表示データ及び固定プリントデータが、通信部３６を介してセンタサーバ１０から受信される（ステップＳ１５０）。そして、受信した固定表示データを含む表示画面が表示部３４に表示される（ステップＳ１５１）。
【０１１１】
ステップＳ１５２〜Ｓ１５８は、第１のブート処理のステップＳ４１〜Ｓ４７と同様である。ステップＳ１５８の実行後、ステップＳ１５０で受信された固定プリントデータを含む各種情報がプリント部３２により記録紙にレシートとしてプリントアウトされ（ステップＳ１６０）、第３のブート処理が終了する。
【０１１２】
次いで、センタサーバ１０で実行される第３の端末管理処理を説明する。センタサーバ１０において、例えば、ステップＳ１４９に対応して、通信部１６を介して、ＩＤ情報が本体部３０から受信開始されたことをトリガとして、記憶部１５から読み出されて適宜ＲＡＭ１３に展開された第３の端末管理プログラムと、ＣＰＵ１１との協働で、第３の端末管理処理が実行される。
【０１１３】
先ず、通信部１６を介して、ＩＤ情報が本体部３０から受信される（ステップＳ１６１）。そして、受信したＩＤ情報の正当性が確認される（ステップＳ１６２）。ＩＤ情報の正当性の確認は、より具体的には、ＩＤ情報中の暗号化端末ＩＤが記憶部１５に記憶された鍵Ｔ１で復号化される。そして、復号化された端末ＩＤとＩＤ情報中の端末ＩＤとの一致が判別され、一致する場合に、電子機器２０の正当性が認証され、電子機器２０の動作が許可される。一致しない場合には、図示しないが、動作拒否信号が生成され本体部３０に送信され、電子機器２０の動作が停止される。
【０１１４】
そして、受信した端末ＩＤに対応する固定データの固定表示データ及び固定プリントデータが記憶部１５から読み出される（ステップＳ１６３）。そして、ステップＳ１５０に対応して、通信部１６を介して、読み出された固定表示データ及び固定プリントデータが本体部３０に送信される（ステップＳ１６４）。
【０１１５】
ステップＳ１６５〜Ｓ１６８は、第１の端末管理処理のステップＳ５３〜Ｓ５６と同様である。ステップＳ１６８の実行後、第３の端末管理処理が終了する。
【０１１６】
以上、本実施の形態によれば、第２の実施の形態と同様の効果を奏するとともに、電子機器２０が固定データをセンタサーバ１０からダウンロードし、モジュール４０のフラッシュメモリ４５には、ＩＤ情報の生成に関する情報だけを記憶すればよい。このため、本体部３０のプログラムだけで第２の実施の形態と同等の機能が実現でき、またモジュール４０のフラッシュメモリ４５の記憶容量を低く設定でき、さらに表示・プリント内容の自由度を増加できる。
【０１１７】
（第４の実施の形態）
図１２〜図１７を参照して、本発明に係る第４の実施の形態を説明する。先ず、図１２及び図１３を参照して、本実施の形態の装置構成を説明する。図１２に、本実施の形態の電子機器２０Ａの構成を示す。図１３に、ＳＡＭ５０の内部構成を示す。
【０１１８】
本実施の形態の決済システムは、第１の実施の形態の決済システム１の電子機器２０を、電子機器２０Ａに代えた構成とする。このため、決済システム１と同じ部分に同じ符号を付し、異なる部分を主として説明する。
【０１１９】
本実施の形態では、センタサーバ１０の記憶部１５は、固定データとして固定表示データＦ１及び固定プリントデータＦ２を記憶する。記憶部１５に記憶される固定表示データＦ１及び固定プリントデータＦ２は、登録されている全ての電子機器それぞれの固定表示データＦ１及び固定プリントデータＦ２とし、各データは、各電子機器の端末ＩＤに対応付けられて記憶部１５に記憶される。
【０１２０】
図１２に示すように、電子機器２０Ａは、本体部３０と、モジュール４０Ａとを備えて構成される。モジュール４０Ａは、ＣＰＵ４１と、入力部４２と、ＲＡＭ４３と、カードリーダ４４と、フラッシュメモリ４５と、ＳＡＭ５０と、を備えて構成される。また、モジュール４０Ａは、耐タンパ性が無い又は弱いものとして説明するが、耐タンパ性が強い構成としてもよい。
【０１２１】
モジュール４０Ａに耐タンパ性が無い又は弱いため、第１の実施の形態でフラッシュメモリ４５に記憶していた、ハッシュ値４５１、鍵Ｔ１，Ｄ１は、ＳＡＭ５０（のフラッシュメモリ５７）に記憶される。また、本体部３０のフラッシュメモリ３５は、ブートプログラム３５１としての第４のブートプログラムを記憶し、アプリ部３５Ｂに固定データ３５５を記憶しない構成とする。
【０１２２】
次いで、ＳＡＭ５０の構成を説明する。耐タンパモジュールとしてのＳＡＭ５０は、強固な耐タンパ性を有するモジュールであり、例えば、ＩＣカードとして構成される。図１３に示すように、ＳＡＭ５０は、第１の制御手段としてのＣＰＵ５１と、暗号演算部５２と、ＲＡＭ５３と、異常検出部５４と、ＲＯＭ５５と、通信部５６と、第１の記憶手段としてのフラッシュメモリ５７と、を備えて構成され、各部がバス５８を介して接続される。
【０１２３】
ＣＰＵ５１、ＲＡＭ５３、フラッシュメモリ５７については、モジュール４０ＡのＣＰＵ４１、ＲＡＭ４３、フラッシュメモリ４５の構成と同様であり、異なる部分を主として説明する。
【０１２４】
ＣＰＵ５１は、ＲＯＭ５５やフラッシュメモリ５７に記憶されたプログラムとの協働で、各種処理を実行する。例えば、ＣＰＵ５１は、異常検出部５４によりＳＡＭ５０の異常が検出された場合に、ＲＡＭ５３及びフラッシュメモリ５７に記憶された情報を破壊（消去）する。また、ＣＰＵ５１は、フラッシュメモリ５７に記憶された鍵を用いて、暗号演算部５２により情報を暗号化又は復号化させる。なお、ＣＰＵ５１は、異常検出部５４の異常検出時に、ＳＡＭ５０の動作を停止する等の構成としてもよい。
【０１２５】
また、ＣＰＵ５１は、ＳＡＭ処理プログラムとの協働で、本体部３０からモジュール４０を介してアプリ部３５Ｂのハッシュ値及びブート部３５Ａ自体を受信し、ブート部３５Ａのハッシュ値を算出し、アプリ部３５Ｂのハッシュ値及び算出したブート部３５Ａのハッシュ値と、フラッシュメモリ５７に記憶されたハッシュ値とが一致するか否かを判別し、一致する場合に、プログラムＯＫ信号を本体部３０に送信する。その後、ＣＰＵ５１は、本体部３０からＩＤ情報読み出し指示を受信して、ＩＤ情報を生成して鍵Ｔ１で暗号化して本体部３０に送信し、本体部３０から固定表示データＦ３及び固定プリントデータＦ４の読み出し指示を受信して、フラッシュメモリ４５から固定表示データＦ３及び固定プリントデータＦ４を読み出して本体部３０に送信する。
【０１２６】
暗号演算部５２は、ＣＰＵ５１の指示により、フラッシュメモリ５７に記憶された鍵を用いて、各種情報を暗号化し、また暗号化された各種情報を復号化する。
【０１２７】
異常検出部５４は、例えば、電圧センサ、温度センサ、光センサ等の少なくとも一つを備え、善意又は悪意によらず第三者がＳＡＭ５０のデータを読み取ろうと又は変更しようとする際の異常電圧、異常温度、異常光量等を検出し、その異常の旨を示す検出信号をＣＰＵ５１に出力する。
【０１２８】
ＲＯＭ５５には、書き換えが不要であるデータが予め記憶されている。例えば、ＳＡＭ５０のシステムプログラムである。
【０１２９】
通信部５６は、通信制御部により構成され、モジュール４０のＣＰＵ４１と通信接続して情報を送受信する。
【０１３０】
フラッシュメモリ５７は、各種プログラム及び各種データを読み出し又は書き込み可能に記憶する。フラッシュメモリ５７に代えてＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）等の不揮発性のメモリを用いる構成としてもよい。
【０１３１】
フラッシュメモリ５７は、ＳＡＭ処理プログラムと、鍵Ｔ１，Ｄ１と、固定表示データＦ３及び固定プリントデータＦ４と、端末ＩＤ１０１と、予め設定されたブート部３５Ａ及びアプリ部３５Ｂのハッシュ値と、を記憶する。ＳＡＭ処理プログラムは、ＲＯＭ５５に記憶される構成としてもよい。
【０１３２】
次に、図１４〜図１７を参照して、本実施の形態の決済システムの動作を説明する。図１４に、ＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の流れを示す。図１５に、図１４のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きの流れを示す。図１６に、図１５のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きの流れを示す。図１７に、図１６のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きの流れを示す。
【０１３３】
ＳＡＭ５０で実行されるＳＡＭ処理を説明する。ＳＡＭ５０において、例えば、アプリ部３５Ｂのデータのハッシュ値がモジュール４０（のＣＰＵ４１）から受信開始されたことをトリガとして、フラッシュメモリ５７から読み出されて適宜ＲＡＭ５３に展開されたＳＡＭ処理プログラムとＣＰＵ５１との協働で、ＳＡＭ処理が実行される。
【０１３４】
先ず、アプリ部３５Ｂのハッシュ値がモジュール４０から受信される（ステップＳ１７１）。そして、ブート部３５Ａ自体がモジュール４０から受信される（ステップＳ１７２）。そして、所定のハッシュ関数を用いて、受信したブート部３５Ａのハッシュ値が算出される（ステップＳ１７３）。
【０１３５】
そして、ステップＳ１７１で受信したアプリ部３５Ｂのハッシュ値、ステップＳ１７２で算出したブート部３５Ａのハッシュ値と、がマージされ、当該マージされたハッシュ値と、フラッシュメモリ５７に予め記憶されたハッシュ値と、が比較され、一致しているか否かが判別される（ステップＳ１７４）。
【０１３６】
一致していない場合（ステップＳ１７４；ＮＯ）、電子機器２０Ａの使用が停止に設定され（ステップＳ１７５）、ＳＡＭ処理が終了する。一致した場合（ステップＳ１７４；ＹＥＳ）、それらプログラムの認証ＯＫの旨のプログラムＯＫ信号がモジュール４０に送信される（ステップＳ１７６）。
【０１３７】
そして、ＩＤ情報の読み出し指示がモジュール４０から受信される（ステップＳ１７７）。そして、ＩＤ情報読み出し指示に基づいてフラッシュメモリ５７から、端末ＩＤ１０１が読み出され、端末ＩＤ１０１がフラッシュメモリ５７に記憶された鍵Ｔ１で暗号化され暗号化端末ＩＤとされ、暗号化端末ＩＤ及び暗号化していない端末ＩＤを含むＩＤ情報としてモジュール４０に送信される（ステップＳ１７８）。
【０１３８】
そして、固定表示データＦ３及び固定プリントデータＦ４の読み出し指示がモジュール４０から受信される（ステップＳ１７９）。そして、固定表示データＦ３及び固定プリントデータＦ４読み出し指示に応じて、フラッシュメモリ５７に記憶された固定表示データＦ３及び固定プリントデータＦ４が読み出され、モジュール４０に送信され（ステップＳ１８０）、ＳＡＭ処理が終了する。
【０１３９】
次いで、電子機器２０のモジュール４０Ａ（のＣＰＵ４１）で実行される第４のモジュール処理を説明する。モジュール４０Ａにおいて、例えば、アプリ部３５Ｂのハッシュ値が本体部３０（のＣＰＵ３１）から受信開始されたことをトリガとして、フラッシュメモリ４５から読み出されて適宜ＲＡＭ４３に展開された第４のモジュール処理プログラムとＣＰＵ４１との協働で、第４のモジュール処理が実行される。
【０１４０】
先ず、ステップＳ１７１に対応して、アプリ部３５Ｂのハッシュ値が本体部３０から受信され、ＳＡＭ５０に送信される（ステップＳ１８１）。そして、ステップＳ１７２に対応して、ブートプログラム３５１自体が本体部３０から受信され、ＳＡＭ５０に送信される（ステップＳ１８２）。
【０１４１】
そして、ステップＳ１７６に対応して、プログラムＯＫ信号がＳＡＭ５０から受信され、本体部３０に送信される（ステップＳ１８３）。そして、ステップＳ１７７に対応して、ＩＤ情報読み出し指示が本体部３０から受信され、ＳＡＭ５０に送信される（ステップＳ１８４）。そして、ステップＳ１７８に対応して、ＩＤ情報がＳＡＭ５０から受信され、本体部３０に送信される（ステップＳ１８５）。
【０１４２】
そして、ステップＳ１７９に対応して、固定表示データＦ３及び固定プリントデータＦ４読み出し指示が本体部３０から受信され、ＳＡＭ５０に送信される（ステップＳ１８６）。そして、ステップＳ１８０に対応して、固定表示データＦ３及び固定プリントデータＦ４がＳＡＭ５０から受信され、本体部３０に送信される（ステップＳ１８７）。
【０１４３】
ステップＳ１８８〜Ｓ１９３は、第１のモジュール処理のステップＳ１７〜Ｓ２２と同様である。ステップＳ１９３の実行後、第４のモジュール処理が終了する。
【０１４４】
次いで、電子機器２０の本体部３０で実行される第４のブート処理を説明する。本体部３０において、例えば、電源がオンされたことをトリガとして、フラッシュメモリ３５から読み出されて適宜ＲＡＭ３３に展開された第４のブートプログラムと、ＣＰＵ３１との協働で、第４のブート処理が実行される。
【０１４５】
ステップＳ２０１〜Ｓ２０７は、第１のブート処理のステップＳ３１〜Ｓ３７と同様である。そして、ステップＳ２０７の実行後、ステップＳ１８４に対応して、ＩＤ情報読み出し指示がモジュール４０Ａに送信される（ステップＳ２０８）。そして、ステップＳ１８５に対応して、ＩＤ情報がモジュール４０Ａから受信され、通信部３６を介して、センタサーバ１０へ送信される（ステップＳ２０９）。
【０１４６】
そして、固定データとしての固定表示データＦ１及び固定プリントデータＦ２が、通信部３６を介してセンタサーバ１０から受信される（ステップＳ２１０）。そして、受信した固定表示データＦ１を含む表示画面が表示部３４に表示される（ステップＳ２１１）。
【０１４７】
そして、ステップＳ１８６に対応して、固定表示データＦ３及び固定プリントデータＦ４読み出し指示がモジュール４０Ａに送信される（ステップＳ２１２）。そして、ステップＳ１８７に対応して、固定表示データＦ３及び固定プリントデータＦ４がモジュール４０から受信される（ステップＳ２１３）。そして、受信した固定表示データＦ３を含む表示画面が表示部３４に表示される（ステップＳ２１４）。
【０１４８】
ステップＳ２１５〜Ｓ２２１は、第１のブート処理のステップＳ４１〜Ｓ４７と同様である。ステップＳ２２１の実行後、ステップＳ２１０，Ｓ２１３で受信された固定プリントデータＦ２，Ｆ４を含む各種情報がレシートとしてプリント部３２にプリントアウトされ（ステップＳ２２４）、第４のブート処理が終了する。
【０１４９】
次いで、センタサーバ１０で実行される第４の端末管理処理を説明する。センタサーバ１０において、例えば、ステップＳ２０９に対応して、通信部１６を介して、ＩＤ情報が本体部３０から受信開始されたことをトリガとして、記憶部１５から読み出されて適宜ＲＡＭ１３に展開された第４の端末管理プログラムと、ＣＰＵ１１との協働で、第４の端末管理処理が実行される。
【０１５０】
先ず、通信部１６を介して、ＩＤ情報が本体部３０から受信される（ステップＳ２３１）。そして、受信したＩＤ情報の正当性が確認される（ステップＳ２３２）。
【０１５１】
そして、受信したＩＤ情報の端末ＩＤに対応する固定表示データＦ１及び固定プリントデータＦ２が記憶部１５から読み出される（ステップＳ２３３）。そして、ステップＳ２１１に対応して、通信部１６を介して、読み出された固定表示データＦ１及び固定プリントデータＦ２が本体部３０に送信される（ステップＳ２３４）。
【０１５２】
ステップＳ２３５〜Ｓ２３８は、第１の端末管理処理のステップＳ５３〜Ｓ５６と同様である。ステップＳ２３８の実行後、第４の端末管理処理が終了する。
【０１５３】
以上、本実施の形態によれば、第１の実施の形態と同様の効果を奏するとともに、ＳＡＭ５０を用いる。このため、ＳＡＭ５０に記憶した固定データの改ざんがさらに難しく、悪意のある流用に対しても有効に対抗できる。従来型の、筐体の開封センサでは安いドリルでセンサをバイパスできるのに対し、ＳＡＭでは半導体のサブミクロンレベルで対策を施されたものを解析するには高価な専用機器と技術力が必要になるためである。
【０１５４】
また、電子機器２０Ａは、センタサーバ１０及びＳＡＭ５０から固定データを取得できる。このため、ＳＡＭ５０のフラッシュメモリ５７には、ＩＤ情報に関する情報と、最小限の固定データを記憶できる。よって、高価なＳＡＭ５０中の記憶容量を低く設定でき、比較的大容量な固定データをセンタサーバ１０から取得できる。
【０１５５】
（変形例）
図１８を参照して、上記第４の実施の形態の変形例を説明する。図１８に、本変形例の電子機器２０Ｂの内部構成を示す。
【０１５６】
本変形例は、第４の実施の形態の決済システムの電子機器２０Ａを、電子機器２０Ｂに代えた構成である。図１８に示すように、電子機器２０Ｂは、ＣＰＵ６１と、入力部６２と、ＲＡＭ６３と、表示部６４と、フラッシュメモリ６５と、通信部６６と、プリント部６７と、カードリーダ６８と、ＳＡＭ５０と、を備えて構成される。
【０１５７】
ＣＰＵ６１、入力部６２、ＲＡＭ６３、表示部６４、フラッシュメモリ６５、通信部６６、プリント部６７、カードリーダ６８は、それぞれ、電子機器２０ＡのＣＰＵ３１，４１、入力部４２、ＲＡＭ３３，４３、表示部３４、フラッシュメモリ３５，４５、通信部３６、プリント部３２、カードリーダ４４と同様の構成である。
【０１５８】
本変形例によれば、ＳＡＭ５０を一つの耐タンパモジュールと見なすして構成する。このため、耐タンパ部分を最小限にすることができる。
【０１５９】
また、電子機器２０Ｂの冗長部分が少ない（ＳＡＭ５０以外にＣＰＵが一つでよい等）。このため、電子機器を容易に製造でき、低価格化及び小型化を図ることができる。
【０１６０】
なお、上記各実施の形態及び変形例における記述は、本発明に係る端末装置及びプログラムの一例であり、これに限定されるものではない。
【０１６１】
上記第４の実施の形態及び変形例では、ＳＡＭ５０が電子機器に設置されている構成としたが、ＳＡＭ５０を取り外せるとしても取り外せなくてもセキュリティ強度上は同じである。
【０１６２】
また、上記各実施の形態及び変形例では、固定データ出力プログラムがアプリ部３５Ｂに含まれる構成としたが、これに限定されるものではない。例えば、固定データ出力プログラム等がブート部３５Ａに含まれる構成としてもよい。
【０１６３】
また、例えば、上記各実施の形態及び変形例で説明したこの電子機器を音楽プレーヤのようなものとする構成としてもよい。すなわち、センタサーバでオンライン販売の契約を確認できなければ楽曲のダウンロードを許可しない、というような形態も可能である。
【０１６４】
また、上記各実施の形態及び変形例のうちの少なくとも２つを適宜組み合わせる構成としてもよい。また、センタサーバ１０に複数の電子機器２０を接続可能な構成としてもよい。
【０１６５】
また、上記各実施の形態及び変形例における決済システムの各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【図面の簡単な説明】
【０１６６】
【図１】本発明に係る第１の実施の形態の決済システム１の構成を示すブロック図である。
【図２】センタサーバ１０の内部構成を示すブロック図である。
【図３】電子機器２０の内部構成を示すブロック図である。
【図４】電子機器２０に記憶されるプログラム等の情報を示す図である。
【図５】決済システム１の各装置に記憶される鍵等の情報を示す図である。
【図６】第１のモジュール処理、第１のブート処理、第１の端末管理処理を示すフローチャートである。
【図７】図６の第１のモジュール処理、第１のブート処理、第１の端末管理処理の流れを示すフローチャートである。
【図８】第２のモジュール処理、第２のブート処理、第２の端末管理処理を示すフローチャートである。
【図９】図８の第２のモジュール処理、第２のブート処理、第２の端末管理処理の続きを示すフローチャートである。
【図１０】第３のモジュール処理、第３のブート処理、第３の端末管理処理を示すフローチャートである。
【図１１】図１０の第３のモジュール処理、第３のブート処理、第３の端末管理処理の続きを示すフローチャートである。
【図１２】本発明に係る第４の実施の形態の電子機器２０Ａの構成を示すブロック図である。
【図１３】ＳＡＭ５０の内部構成を示すブロック図である。
【図１４】ＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理を示すフローチャートである。
【図１５】図１４のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きを示すフローチャートである。
【図１６】図１５のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きを示すフローチャートである。
【図１７】図１６のＳＡＭ処理、第４のモジュール処理、第４のブート処理、第４の端末管理処理の続きを示すフローチャートである。
【図１８】変形例の電子機器２０Ｂの内部構成を示すブロック図である。
【符号の説明】
【０１６７】
１  決済システム
１０  センタサーバ
１１  ＣＰＵ
１２  入力部
１３  ＲＡＭ
１４  表示部
１５  記憶部
１６  通信部
１７  バス
２０，２０Ａ，２０Ｂ  電子機器
３０  本体部
３１  ＣＰＵ
３２  プリント部
３３  ＲＡＭ
３４  表示部
３５  フラッシュメモリ
３６  通信部
４０，４０Ａ  モジュール
４１  ＣＰＵ
４２  入力部
４３  ＲＡＭ
４４  カードリーダ
４５  フラッシュメモリ
３６  通信部
５０  ＳＡＭ
５１  ＣＰＵ
５２  暗号演算部
５３  ＲＡＭ
５４  異常検出部
５５  ＲＯＭ
５６  通信部
５７  フラッシュメモリ
５８  バス
６１  ＣＰＵ
６２  入力部
６３  ＲＡＭ
６４  表示部
６５  フラッシュメモリ
６６  通信部
６７  プリント部
６８  カードリーダ
【図１】
2008244992.tif 000003
【図２】
2008244992.tif 000004
【図３】
2008244992.tif 000005
【図４】
2008244992.tif 000006
【図５】
2008244992.tif 000007
【図６】
2008244992.tif 000008
【図７】
2008244992.tif 000009
【図８】
2008244992.tif 000010
【図９】
2008244992.tif 000011
【図１０】
2008244992.tif 000012
【図１１】
2008244992.tif 000013
【図１２】
2008244992.tif 000014
【図１３】
2008244992.tif 000015
【図１４】
2008244992.tif 000016
【図１５】
2008244992.tif 000017
【図１６】
2008244992.tif 000018
【図１７】
2008244992.tif 000019
【図１８】
2008244992.tif 000020