(57)【要約】【課題】記憶した秘密鍵が不正な手段で第三者に取得されることを防止できる。【解決手段】フィスカルデータを記憶するフィスカルプリンター１６は、公開鍵暗号方式に係る秘密鍵Ｋ２、及び、公開鍵を生成すると共に、秘密鍵Ｋ２を暗号化するための暗号化鍵Ｋ１を生成し、生成した秘密鍵Ｋ２を暗号化鍵Ｋ１にて暗号化してフィスカルメモリー５０に記憶すると共に、暗号化鍵Ｋ１をＲＴＣ揮発性メモリー３０ａに記憶するメイン制御部２５と、不正なアクセスを検出する不正検出部３５と、不正検出部３５により不正が検出された場合、ＲＴＣ揮発性メモリー３０ａに記憶された暗号化鍵Ｋ１を消去する鍵消去部３６と、を備える。【選択図】図１
2014103435.tif 000002
【特許請求の範囲】
【請求項１】
フィスカルデータを記憶する情報処理装置であって、
公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成すると共に、前記秘密鍵を暗号化するための暗号化鍵を生成し、生成した前記秘密鍵を前記暗号化鍵にて暗号化して第１のメモリーに記憶すると共に、前記暗号化鍵を第２のメモリーに記憶する制御部と、
不正なアクセスを検出する不正検出部と、
前記不正検出部により不正が検出された場合、前記第２のメモリーに記憶された前記暗号化鍵を消去する鍵消去部と、を備えることを特徴とする情報処理装置。
【請求項２】
前記第２のメモリーは、揮発性メモリーであり、
前記鍵消去部は、
前記不正検出部により不正が検出された場合、前記第２のメモリーへの電力の供給を遮断することにより前記暗号化鍵を消去することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２のメモリーは、
ＲＴＣが有する揮発性メモリー、又は、前記制御部のワークエリアが形成されたＲＡＭであることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
フィスカルデータを記憶する情報処理装置の制御方法であって、
公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成すると共に、前記秘密鍵を暗号化するための暗号化鍵を生成し、
生成した前記秘密鍵を前記暗号化鍵にて暗号化して第１のメモリーに記憶し、
前記暗号化鍵を第２のメモリーに記憶し、
不正なアクセスを検出した場合、前記第２のメモリーに記憶した前記暗号化鍵を消去することを特徴とする情報処理装置の制御方法。
【請求項５】
フィスカルデータを記憶し、
不正なアクセスを検出する不正検出部と、
前記不正検出部により不正が検出された場合、第２のメモリーに記憶された暗号化鍵を消去する鍵消去部と、を備える情報処理装置を制御する制御部により実行されるプログラムであって、
前記制御部に、
公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成させると共に、前記秘密鍵を暗号化するための前記暗号化鍵を生成させ、生成させた前記秘密鍵を前記暗号化鍵にて暗号化させて第１のメモリーに記憶させると共に、前記暗号化鍵を第２のメモリーに記憶させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィスカルデータを記憶する情報処理装置、当該情報処理装置の制御方法、及び、当該情報処理装置を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、商品を販売等する店舗に設けられ、取引に関する情報（売上に関する情報や、課税に関する情報等）を含むフィスカルデータを記憶する情報処理装置（電子式キャッシュレジスター、レシート用のプリンター）が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０５−１２０５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した情報処理装置のように、フィスカルデータを記憶するものでは、公開鍵暗号方式に係る秘密鍵を利用して、フィスカルデータに対する改ざんの有無を検出するためのデジタル署名を生成するものがある。このような情報処理装置では、秘密鍵が不正な手段を介して第三者に取得されることを防止する必要がある。
本発明は、上述した事情に鑑みてなされたものであり、記憶した秘密鍵が不正な手段で第三者に取得されることを防止することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、フィスカルデータを記憶する情報処理装置であって、公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成すると共に、前記秘密鍵を暗号化するための暗号化鍵を生成し、生成した前記秘密鍵を前記暗号化鍵にて暗号化して第１のメモリーに記憶すると共に、前記暗号化鍵を第２のメモリーに記憶する制御部と、不正なアクセスを検出する不正検出部と、前記不正検出部により不正が検出された場合、前記第２のメモリーに記憶された前記暗号化鍵を消去する鍵消去部と、を備えることを特徴とする。
この構成によれば、不正検出部により不正が検出された場合、第２のメモリーに記憶された暗号化鍵が消去され、第１のメモリーに記憶された秘密鍵の復号化ができなくなる。すなわち、不正な手段によっては、第三者が秘密鍵を取得できない。
【０００６】
また、本発明は、前記第２のメモリーは、揮発性メモリーであり、前記鍵消去部は、前記不正検出部により不正が検出された場合、前記第２のメモリーへの電力の供給を遮断することにより前記暗号化鍵を消去することを特徴とする。
この構成によれば、第２のメモリーが揮発性メモリーであることを活用して、的確に、暗号化鍵の消去を実現できる。
【０００７】
また、本発明は、前記第２のメモリーは、ＲＴＣが有する揮発性メモリー、又は、前記制御部のワークエリアが形成されたＲＡＭであることを特徴とする。
この構成によれば、フィスカルデータを記憶する情報処理装置の構成部材であるＲＴＣ又はＲＡＭを有効利用できる。
【０００８】
また、上記目的を達成するために、本発明は、フィスカルデータを記憶する情報処理装置の制御方法であって、公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成すると共に、前記秘密鍵を暗号化するための暗号化鍵を生成し、生成した前記秘密鍵を前記暗号化鍵にて暗号化して第１のメモリーに記憶し、前記暗号化鍵を第２のメモリーに記憶し、不正なアクセスを検出した場合、前記第２のメモリーに記憶した前記暗号化鍵を消去することを特徴とする。
この制御方法によれば、不正が検出された場合、第２のメモリーに記憶された暗号化鍵が消去され、第１のメモリーに記憶された秘密鍵の復号化ができなくなる。すなわち、不正な手段によっては、第三者が秘密鍵を取得できない。
【０００９】
また、上記目的を達成するために、本発明は、フィスカルデータを記憶し、不正なアクセスを検出する不正検出部と、前記不正検出部により不正が検出された場合、前記第２のメモリーに記憶された前記暗号化鍵を消去する鍵消去部と、を備える情報処理装置を制御する制御部により実行されるプログラムであって、前記制御部に、公開鍵暗号方式に係る秘密鍵、及び、公開鍵を生成させると共に、前記秘密鍵を暗号化するための暗号化鍵を生成させ、生成させた前記秘密鍵を前記暗号化鍵にて暗号化させて第１のメモリーに記憶させると共に、前記暗号化鍵を第２のメモリーに記憶させることを特徴とする。
このプログラムによれば、不正が検出された場合、第２のメモリーに記憶された暗号化鍵が消去され、第１のメモリーに記憶された秘密鍵の復号化ができなくなる。すなわち、不正な手段によっては、第三者が秘密鍵を取得できない。
【発明の効果】
【００１０】
本発明によれば、記憶した秘密鍵が不正な手段で第三者に取得されることを防止できる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理システムの構成を示す図である。
【図２】フィスカルプリンターの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係る情報処理システム１の構成を示す図である。
図１に示すように、情報処理システム１は、フィスカルプリンター１６（情報処理装置）を備えており、このフィスカルプリンター１６にホストコンピューター１５、及び、フィスカルデータ読出装置４０が接続可能な構成となっている。
フィスカルプリンター１６は、ホストコンピューター１５の制御の下、レシートを発行すると共に、ホストコンピューター１５から入力されたフィスカル情報（フィスカルデータ）を記憶する。
フィスカル情報（フィスカルデータ）とは、商品等の販売取引に関する情報（売上に関する情報や課税額等に関する情報）であって、記憶すべき情報として予め定められた情報のことである。このフィスカル情報は、例えば、政府等の国家機関による店舗からの税金の徴収に際し、国家機関が当該店舗における取引の実態を把握するために参照する情報として利用される。本実施形態では、フィスカル情報として、後述する書込レシートデータ５４、及び、日計売上データ５３の２種類のデータが存在する。
なお、以下の説明では、フィスカルプリンター１６が出力するレシートは、店舗のレジカウンターにおいて顧客による会計に際して発行されるレシートであり、必ず、購入した商品ごとの小計金額Ｔ１（商品ごとに、商品の単価と購入数量の積によって算出される金額。）と、合計金額Ｔ２（小計金額Ｔ１の和によって算出される金額。）、及び、支払金額Ｔ３（合計金額Ｔ２に消費税等の税を加味して算出される金額。）が記録されているものとする。
【００１３】
図１に示すように、フィスカルプリンター１６は、管理基板２０、プリンター基板２１、及び、サブ基板２２の３つの基板を備えている。
管理基板２０には、メイン制御部２５（制御部）と、ＰＣコネクター２６ａと、フィスカルコネクター２６ｂと、通信ＩＣ２７と、ＲＯＭ２８と、ＳＲＡＭ２９と、ＲＴＣ３０と、ＥＪメモリー３１と、ＥＪメモリー制御部３２と、バッファーＩＣ３３と、不正検出部３５と、鍵消去部３６と、が実装されている。
メイン制御部２５は、フィスカルプリンター１６の各部を中枢的に制御するものであり、ＣＰＵやその他の周辺回路を備えている。ＰＣコネクター２６ａは、フィスカルプリンター１６の通常使用時においてホストコンピューター１５が接続されるコネクターである。ホストコンピューター１５は、ＰＣコネクター２６ａを介してフィスカルプリンター１６にレシートの発行に係る動作を行わせる制御コマンドを出力し、また、フィスカル情報として、後述する日計売上データ５３を出力する。フィスカルコネクター２６ｂは、フィスカルデータ読出装置４０が接続されるコネクターである。フィスカルデータ読出装置４０とは、後述するＥＪメモリー３１や、フィスカルメモリー５０（第１のメモリー）に記憶されたデータを読み出すための装置であり、例えば国家機関（政府等）に係る者等の、特別な許可を得た者だけが所持し得る。上述したホストコンピューター１５はＰＣコネクター２６ａに接続された状態が維持されるが、フィスカルデータ読出装置４０は、ホストコンピューター１５と異なり、データの読み出しが行われる際に、適宜、フィスカルコネクター２６ｂに接続される。
【００１４】
通信ＩＣ２７は、ＰＣコネクター２６ａ及びフィスカルコネクター２６ｂに接続され、メイン制御部２５の制御の下、ホストコンピューター１５や、フィスカルデータ読出装置４０との間でデータの送受信を行う。ＲＯＭ２８は、メイン制御部２５が各種制御を行うための制御プログラム（ファームウェア）等の各種データを不揮発的に記憶する。
ＳＲＡＭ２９は、メイン制御部２５のＣＰＵのワークエリアとして機能する揮発性のメモリーであり、各種データを一時的に記憶する。
ＲＴＣ３０（Real-time clock：リアルタイムクロック）は、現在日時（年月日、時刻）を示すデータをメイン制御部２５に出力する。ＲＴＣ３０は、ＲＴＣ揮発性メモリー３０ａ（第２のメモリー）を備えている。このＲＴＣ揮発性メモリー３０ａは、ＲＴＣ３０に対して電力が供給されている間のみ記憶したデータを保持する揮発性メモリーであり、現在日時（年月日、時刻）を示すデータが記憶されており、当該データは、図示せぬ制御回路によって、時間の経過に応じて適切に更新される。なお、ＲＴＣ揮発性メモリー３０ａには、暗号化鍵Ｋ１が記憶されるが、これについては後述する。
これらＳＲＡＭ２９、ＲＴＣ３０には、フィスカルプリンター１６の電源がオフされた場合であっても、電池３４からバックアップ用の電力が供給される。
ＥＪメモリー３１は、ＮＡＮＤ型フラッシュメモリーであり、大容量のデータを記憶可能である。特に、本実施形態では、ＥＪメモリー３１は、ＭＬＣタイプのＮＡＮＤ型フラッシュメモリーである。
周知の通り、ＭＬＣタイプのＮＡＮＤ型フラッシュメモリーは、ＳＬＣタイプのものと比較して、低コストで大容量化が可能である。従って、後に明らかとなるとおり、頻繁に書込みに係る処理が発生する可能性があり、かつ、記憶されるデータのサイズが増大するペースが速い可能性がある書込レシートデータ５４を記憶するメモリーとして適している。
ＥＪメモリー３１において、書込レシートデータ５４及びこれに付随するデータが書き込まれる記憶領域は、１つのアドレスに対して１度しかデータを書き込めないメモリーとして機能する。これにより、ＥＪメモリー３１に書き込まれたフィスカルデータが後から編集されることが防止され、ＥＪメモリー３１に記憶されたフィスカルデータ対する改ざんが防止されている。ＥＪメモリー制御部３２は、ＣＰＵを備え、メイン制御部２５の制御の下、ＥＪメモリー３１に対してデータの読み書き、消去を行う。バッファーＩＣ３３は、ＥＪメモリー３１に対するデータの読み出し、書き込みの効率を向上するために設けられたバッファーを制御する。
これらＥＪメモリー３１、ＥＪメモリー制御部３２、及び、バッファーＩＣ３３は、エポキシ樹脂によって管理基板２０に封止されており、ＥＪメモリー３１が管理基板２０から物理的に取り外された上で、ＥＪメモリー３１に記憶されたデータが改ざんされることが防止されている。
【００１５】
通信モジュール３７は、電話網やインターネット等のネットワークを介して、政府等が管理するサーバー装置等の外部機器通信するためのモジュールである。外部機器との通信するときの規格は、ＧＰＲＳの規格等、何であってもよい。
管理基板２０に実装された不正検出部３５、及び、鍵消去部３６については、後述する。
【００１６】
また、プリンター基板２１には、プリンター制御部４５が実装されており、プリンター制御部４５は、ホストコンピューター１５が出力した制御コマンドに基づいて、記録機構４６を制御して、レシートを発行する。
記録機構４６は、ロール紙の印刷面に熱を与えることにより画像を記録するサーマルヘッド４６ａや、ロール紙を搬送する搬送機構４６ｂ、所定の位置でロール紙を切断する切断機構４６ｃ等を備えており、プリンター制御部４５の制御の下、これら機構や装置を動作させて、レシートを発行する。
プリンター基板２１には、プリンター側コネクター４２が設けられ、管理基板２０には、管理側コネクター４３が設けられており、これらプリンター側コネクター４２と、管理側コネクター４３とが接続されることにより、管理基板２０と、プリンター基板２１とが接続される。
本実施形態では、レシートの発行に際し、まず、フィスカルプリンター１６に接続されたホストコンピューター１５が、制御コマンドを生成し、生成した制御コマンドをＰＣコネクター２６ａを介してメイン制御部２５に出力する。制御コマンドが入力されたメイン制御部２５は、入力された制御コマンドをプリンター制御部４５に出力する。
【００１７】
サブ基板２２には、フィスカルメモリー５０（第１のメモリー）と、フィスカルメモリー制御部５１とが実装されている。
フィスカルメモリー５０は、シリアルバスを採用した素子を利用した、いわゆるシリアルフラッシュメモリーである。周知の通り、シリアルフラッシュメモリーは、ＮＡＮＤ型フラッシュメモリーと比較して、記憶したデータの信頼性が高く、かつ、データの書込み可能回数が多い、という特徴がある。
フィスカルメモリー５０には、フィスカル書込日時データ５２、及び、日計売上データ５３が記憶されるが、これらについては後述する。フィスカルメモリー５０において、日計売上データ５３及びこれに付随するデータが書き込まれる記憶領域である日計売上データ記憶領域５０ａは、１つのアドレスに対して１度しかデータを書き込めないメモリーとして機能する。これにより、フィスカルメモリー５０に書き込まれたフィスカルデータが後から編集されることが防止され、フィスカルメモリー５０に記憶されたフィスカルデータ対する改ざんが防止されている。
フィスカルメモリー制御部５１は、プログラム可能な論理回路を書き込んだデバイスであるＣＰＬＤ（Complex programmable logic device）を備え、メイン制御部２５の制御の下、フィスカルメモリー５０に対してデータの読み書き、消去を行う。
これらフィスカルメモリー５０、及び、フィスカルメモリー制御部５１は、エポキシ樹脂によってサブ基板２２に封止されており、例えば、フィスカルメモリー５０がサブ基板２２から物理的に取り外された上で、フィスカルメモリー５０に記憶されたデータが改ざんされることが防止されている。
【００１８】
次いで、ＥＪメモリー３１に記憶される書込レシートデータ５４、及び、フィスカルメモリー５０に記憶される日計売上データ５３について説明する。上述したように、これらデータは、フィスカルデータに該当する。
書込レシートデータ５４とは、フィスカルプリンター１６によって発行されるレシートに記録される情報を示すデータであって、記憶すべきデータとして予め定められているデータのことである。例えば、レシートに、顧客が購入した商品毎に、商品を示す情報や、商品の単価を示す情報、当該商品を購入した個数を示す情報、各商品の購入に係る代金を示す情報、全ての商品の総購入代金を示す情報等が記録されている場合であって、これら情報を示すデータが記憶すべきデータとして予め定められている場合、これら情報を示すデータが書込レシートデータ５４に該当する。
上述したように、本実施形態では、フィスカルプリンター１６によってレシートを発行する場合、ホストコンピューター１５によって制御コマンドが生成され、この制御コマンドがメイン制御部２５に出力され、さらに、制御コマンドがメイン制御部２５からプリンター制御部４５に出力される。その際、メイン制御部２５は、制御コマンドから、書込レシートデータ５４として記憶すべき情報を抽出し、抽出したこれら情報に基づいて書込レシートデータ５４を生成し、生成した書込レシートデータ５４を、ＥＪメモリー制御部３２を制御して、ＥＪメモリー３１に記憶する。
本実施形態では、書込レシートデータ５４には、レシートにおける小計金額Ｔ１と、合計金額Ｔ２と、支払金額Ｔ３が含まれている。すなわち、上述したように、本実施形態に係るフィスカルプリンター１６が発行するレシートには、小計金額Ｔ１と、合計金額Ｔ２、及び、支払金額Ｔ３が記録されているが、メイン制御部２５は、制御コマンドから、少なくともこれら３つの情報を抽出し、書込レシートデータ５４としてＥＪメモリー３１に記憶する。
【００１９】
ここで、メイン制御部２５は、ＥＪメモリー３１に書込レシートデータ５４を書き込む際、ＲＴＣ３０から現在日時（日付＋時刻）を示すデータを取得し、取得したデータに基づいて日時を示すデータであるＥＪ書込日時データ５５を生成し、書込レシートデータ５４と、ＥＪ書込日時データ５５とを対応付けて書き込む。つまり、書込レシートデータ５４のそれぞれは、ＥＪメモリー３１に書き込まれた日時を示すデータであるＥＪ書込日時データ５５と対応づけてＥＪメモリー３１に記憶される。
さらに、メイン制御部２５は、書込レシートデータ５４を書き込む際、書込レシートデータ５４を元データとして、所定のハッシュ関数に基づいて、ハッシュ値を求め、求めたハッシュ値をフィスカルプリンター１６固有の秘密鍵Ｋ２で暗号化することによりデジタル署名たるＥＪデジタル署名５６を生成し、書込レシートデータ５４と、ＥＪデジタル署名５６とを対応付けて書き込む。つまり、書込レシートデータ５４のそれぞれは、各データに基づいて生成されるＥＪデジタル署名５６と対応付けてＥＪメモリー３１に記憶される。
フィスカルデータ読出装置４０や、その他のフィスカルプリンター１６に記憶されたフィスカルデータの調査、検査を行う装置（例えば、政府が管理するサーバー装置）は、各フィスカルプリンター１６がＥＪデジタル署名５６を生成する際に使用するハッシュ関数を管理すると共に、各フィスカルプリンター１６の秘密鍵Ｋ２に対応する公開鍵Ｋ３を管理しており、後述するように、ある１のフィスカルプリンター１６から受信した書込レシートデータ５４と、対応するＥＪデジタル署名５６とに基づいて、書込レシートデータ５４に対する改ざんを検出可能である。
なお、ＥＪ書込日時データ５５と、書込レシートデータ５４とを対応づけて記憶する１つの理由は、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２０】
日計売上データ５３とは、フィスカルプリンター１６によるレシートの発行が行われた会計によって得た「１日」の総売上のことである。「１日」とは、本実施形態では、情報処理システム１が適用された店舗における開店から閉店までの期間のことである。
つまり、集計データは、レシートに含まれる会計情報（売上金額）を集計した情報に関するデータである。
ホストコンピューター１５は、レジカウンターにおいて行われる会計ごとにフィスカルプリンター１６を制御してレシートを発行すると共に、会計ごとの売上金額（＝レシートにおける支払金額Ｔ３）を累積的に記憶する。そして、ホストコンピューター１５は、店舗の閉店後、所定のタイミング（例えば、担当者の指示があったタイミングや、所定の時刻に至ったタイミング）で、累積的に記憶した会計ごとの売上金額に基づいて、対応するフィスカルプリンター１６に係る「１日」における総売上を計算し、計算した総売上に基づいて、日計売上データ５３を生成し、生成した日計売上データ５３をメイン制御部２５に出力する。日計売上データ５３が入力されると、メイン制御部２５は、フィスカルメモリー制御部５１を制御し、フィスカルメモリー５０に日計売上データ５３を書き込む。
ここで、メイン制御部２５は、フィスカルメモリー５０に日計売上データ５３を書き込む際、ＲＴＣ３０に現在日時を示すデータを出力させ、このデータに基づいて、書き込みを行った日時を取得し、取得した日時を示すデータであるフィスカル書込日時データ５２（集計データ）と、日計売上データ５３とを対応づけた状態で、フィスカルメモリー５０に日計売上データ５３を書き込む。つまり、日計売上データ５３のそれぞれは、フィスカルメモリー５０に書き込まれた日時を示すデータであるフィスカル書込日時データ５２と対応づけてフィスカルメモリー５０に記憶される。
さらに、メイン制御部２５は、日計売上データ５３を書き込む際、日計売上データ５３に基づいて、デジタル署名たるフィスカルデジタル署名５８を生成し、日計売上データ５３と、フィスカルデジタル署名５８とを対応付けて書き込む。つまり、日計売上データ５３のそれぞれは、各データに基づいて生成されるフィスカルデジタル署名５８と対応付けてフィスカルメモリー５０に記憶される。
本例では、フィスカルデジタル署名５８を生成する際に使用するハッシュ関数、及び、秘密鍵Ｋ２は、ＥＪデジタル署名５６を生成する際に使用するものと同一であるものとするが、別々であってもよい。
このように、本実施形態では、フィスカル書込日時データ５２と、日計売上データ５３とを対応づけて記憶するが、これは、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２１】
一方、ホストコンピューター１５は、ホスト制御部４４を備えている。ホスト制御部４４は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路を備え、ホストコンピューター１５の各部を中枢的に制御するものであり、アプリケーション実行部４４ａ、及び、プリンタードライバー実行部４４ｂを備えている。
アプリケーション実行部４４ａは、ホストコンピューター１５が備える所定の記憶部に記憶されたアプリケーションプログラムを読み出して実行することにより、発行するレシートに記録すべき情報を含んだアプリ出力データを生成し、生成したアプリ出力データをプリンタードライバー実行部４４ｂに出力する。例えば、アプリケーション実行部４４ａは、図示せぬバーコードリーダーからの入力値に基づいて、顧客が購入した商品の商品コードを特定するとともに、所定のデータベースにアクセスし、商品コードを利用して当該商品の単価や、商品名を取得する等して、上述した小計金額、合計金額、及び、支払金額を含む各種情報を取得し、取得した情報に基づいて、アプリ出力データを生成する。
プリンタードライバー実行部４４ｂは、ホストコンピューター１５が備える所定の記憶部に記憶されたプリンタードライバーを読み出して実行することにより、アプリケーション実行部４４ａから入力されたアプリ出力データに基づいて、フィスカルプリンター１６のコマンド仕様に準拠して、フィスカルプリンター１６にレシートの発行に係る一連の動作を行わせる制御コマンドを生成し、フィスカルプリンター１６に出力する。
制御コマンドには、例えば、画像の記録の開始を指示するコマンドや、サーマルヘッド４６ａを駆動させることを指示するコマンド、ロール紙を搬送方向に所定量だけ送ることを指示するコマンド、切断機構４６ｃによりロール紙の切断を指示するコマンド等の各種コマンドが含まれている。
【００２２】
ところで、上述したように、本実施形態では、書込レシートデータ５４に対応付けてＥＪデジタル署名５６が記憶され、また、日計売上データ５３に対応付けてフィスカルデジタル署名５８が記憶される。これらデジタル署名は、上述したように、秘密鍵Ｋ２を利用して生成されるものである。
この秘密鍵Ｋ２は後述するように、フィスカルプリンター１６の機能によって生成され、記憶されるが、記憶された秘密鍵Ｋ２が不正の手段によって第三者に取得された場合、書込レシートデータ５４や、日計売上データ５３の改ざんや、その他の不正へと結びつく可能性があるため、秘密鍵Ｋ２が不正の手段によって第三者に取得されることを防止しなければならない。
以上を踏まえ、本実施形態に係るフィスカルプリンター１６は、以下の構成を有している。
【００２３】
図２は、秘密鍵Ｋ２を生成し、記憶する際のフィスカルプリンター１６の動作を示すフローチャートである。
まず、フィスカルプリンター１６のメイン制御部２５は、所定の事象が発生したことをトリガーとして、秘密鍵Ｋ２の生成を開始する（ステップＳＡ１）。本実施形態では、フィスカルプリンター１６の出荷後、ユーザーにより初めて当該プリンターの電源が投入されたことが、トリガーの１つなる。この他、ユーザーによって明示の指示があった場合や、所定の初期化が行われ場合等にも、当該事象をトリガーとして、メイン制御部２５によって秘密鍵Ｋ２の生成が開始される。
次いで、メイン制御部２５は、ＲＳＡ暗号方式等の所定の公開鍵暗号方式に係る秘密鍵Ｋ２、及び、公開鍵Ｋ３のペアを生成する（ステップＳＡ２）。なお、当該鍵ペアを生成するためのアルゴリズムが、メイン制御部２５の機能を実現するためのプログラム（ファームウェア）に実装されている。
なお、本例では、説明の便宜のため、ステップＳＡ２において、秘密鍵Ｋ２、及び、公開鍵Ｋ３について、１組のペアが生成されるものとして、以下の処理を説明する。しかしながら、ステップＳＡ２では、仕様や、ユーザーの要求に応じて、複数の鍵ペアが生成される場合もある。この場合、生成される秘密鍵Ｋ２のデータサイズは、大きいものとなる。後に明らかとなるとおり、本実施形態では、秘密鍵Ｋ２を、ＲＴＣ揮発性メモリー３０ａや、ＳＲＡＭ２９等の揮発性メモリーに記憶しないが、これは、データ容量が小さく、記憶のために電力の供給を必要とする不揮発性メモリーに対して、データサイズの大きい秘密鍵Ｋ２を記憶するのは、適切でないからである。
次いで、メイン制御部２５は、ＡＥＳ暗号方式等の所定の暗号方式に準拠して、ステップＳＡ２で生成した秘密鍵Ｋ２を暗号化するための暗号化鍵Ｋ１を生成する（ステップＳＡ３）。暗号化鍵Ｋ１を生成するためのアルゴリズムを有するプログラムが、メイン制御部２５の機能を実現するためのプログラムに実装されている。
次いで、メイン制御部２５は、ステップＳＡ３で生成した暗号化鍵Ｋ１を利用して、秘密鍵Ｋ２を暗号化する（ステップＳＡ４）。以下、暗号化鍵Ｋ１によって暗号化された秘密鍵Ｋ２のことを「暗号化後秘密鍵Ｋ４」という。
【００２４】
次いで、メイン制御部２５は、暗号化後秘密鍵Ｋ４をフィスカルメモリー５０の記憶領域に形成された秘密鍵記憶領域５０ｂに記憶する。上述したとおり、フィスカルメモリー５０は、シリアルフラッシュメモリーによって構成されているため、ＲＴＣ揮発性メモリー３０ａや、ＳＲＡＭ２９と比較して、記憶可能な容量が非常に大きく、暗号化後秘密鍵Ｋ４が複数存在する場合であっても、全ての暗号化後秘密鍵Ｋ４を格納するのに十分な容量の秘密鍵記憶領域５０ｂを確保可能である。
次いで、メイン制御部２５は、ステップＳＡ２で生成した公開鍵Ｋ３を、予め定められた外部機器に出力する（ステップＳＡ６）。外部機器は、例えば、フィスカルデータ読出装置４０であり、また、ホストコンピューター１５であり、また、通信モジュール３７を介して通信可能なサーバー装置（不図示）である。これにより、外部機器において、ＥＪデジタル署名５６や、フィスカルデジタル署名５８を利用した、データの正当性の確認を実行できる。なお、公開鍵Ｋ３を、フィスカルメモリー５０等のメモリーの記憶する構成であってもよい。
次いで、メイン制御部２５は、ステップＳＡ３で生成した暗号化鍵Ｋ１をＲＴＣ揮発性メモリー３０ａに記憶する（ステップＳＡ７）。上述したように、本実施形態では、秘密鍵Ｋ２を利用して、ＥＪデジタル署名５６、及び、フィスカルデジタル署名５８が生成される。当該生成に係る処理に際し、メイン制御部２５は、ＲＴＣ揮発性メモリー３０ａにアクセスして、暗号化鍵Ｋ１を取得して、当該暗号化鍵Ｋ１によってフィスカルメモリー５０の秘密鍵記憶領域５０ｂに記憶された暗号化後秘密鍵Ｋ４を復号化して秘密鍵Ｋ２を生成する。そして、メイン制御部２５は、生成した秘密鍵Ｋ２を利用して、上記署名を生成する。
このように、本実施形態では、秘密鍵Ｋ２は、そのままフィスカルメモリー５０に記憶されるのではなく、暗号化鍵Ｋ１によって暗号化されてから当該メモリーに記憶される。このため、フィスカルメモリー５０に対する不正のアクセスによって第三者に秘密鍵Ｋ２自体が取得されることを防止できる。
一方で、ＲＴＣ揮発性メモリー３０ａに記憶された暗号化鍵Ｋ１と、フィスカルメモリー５０に記憶された暗号化後秘密鍵Ｋ４がセットで不正の手段により第三者に取得された場合、当該第三者が秘密鍵Ｋ２を生成し、利用可能となってしまう。これを踏まえ、フィスカルメモリー５０は、不正検出部３５、及び、鍵消去部３６を有する。
【００２５】
不正検出部３５は、第三者によるフィスカルメモリー５０に対する不正のアクセスを検出する機能ブロックである。
当該不正検出部３５は、物理的なアクセス、ソフトウェア的なアクセスにかかわらず、不正なアクセスを所定の手段によって検出する。以下、具体例を挙げて不正検出部３５の構成を説明する。
例えば、不正検出部３５は、フィスカルプリンター１６のカバー、その他の部品、装置が不正の手段により取り外された場合に、その旨の信号が入力される構成となっており、当該信号の入力により、不正のアクセスを検出する。
また例えば、不正検出部３５は、ＰＣコネクター２６ａや、フィスカルコネクター２６ｂ、通信モジュール３７を介して入力されるデータを監視し、不正なデータの入力があれば、不正のアクセスがあったものと判別する。
また例えば、不正検出部３５には、傾きセンサーや、振動センサー等が接続され、フィスカルプリンター１６の設置後、所定の閾値以上の傾きが検出された場合や、所定の閾値以上の振動が検出された場合に、不正のアクセスを検出する。
また例えば、不正検出部３５には、ＧＰＳセンサーが搭載され、フィスカルプリンター１６が所定の範囲を超えて移動した場合に、不正のアクセスを検出する。
以上、具体例を挙げて不正検出部３５の構成を説明したが、当該構成はこれに限らず、既存の全ての不正を検出する手段を適用可能である。
【００２６】
鍵消去部３６は、不正検出部３５により不正のアクセスが検出された場合、電池３４からＲＴＣ３０のＲＴＣ揮発性メモリー３０ａに出力される電力の供給を遮断し、ＲＴＣ揮発性メモリー３０ａに記憶されている暗号化鍵Ｋ１を消去する。
例えば、鍵消去部３６は、所定の信号処理回路であり、不正検出部３５が不正なアクセスを検出した場合、その旨の信号が入力される構成となっている。また、電池３４からＲＴＣ３０への電力供給線には、スイッチング回路が、鍵消去部３６の制御の下で開閉可能に設けられている。そして、不正検出部３５から、不正なアクセスを検出した旨の信号が入力されると、鍵消去部３６は、上記スイッチング回路に信号を出力して、スイッチング回路を開状態とし、電池３４からＲＴＣ３０への電力の供給を遮断する。
また例えば、鍵消去部３６は、電池３４からＲＴＣ３０への電力供給線と物理的一体性をもった部材であり、不正検出部３５による不正の検出に応じて、電力供給線から物理的に離反され、これにより、電池３４からＲＴＣ３０への電力の供給を遮断する。
以上、具体例を挙げて鍵消去部３６の構成を説明したが、当該構成はこれに限らず、既存の全ての不正を検出する手段を適用可能である。
【００２７】
このように、本実施形態では、不正検出部３５、及び、鍵消去部３６の協働により、フィスカルプリンター１６に対する不正なアクセスが検出されると、ＲＴＣ揮発性メモリー３０ａへの電力の供給が遮断されて、当該メモリーに記憶された暗号化鍵Ｋ１が消去される。
これにより、不正な手段で第三者が暗号化後秘密鍵Ｋ４を取得したとしても、暗号化鍵Ｋ１を取得することはできず、従って、暗号化後秘密鍵Ｋ４を復号化して秘密鍵Ｋ２を取得することができない。これにより、第三者による秘密鍵Ｋ２の悪用を確実に防止可能である。
【００２８】
以上説明したように、本実施形態では、フィスカルプリンター１６は、公開鍵暗号方式に係る秘密鍵Ｋ２、及び、公開鍵Ｋ３を生成すると共に、秘密鍵Ｋ２を暗号化するための暗号化鍵Ｋ１を生成し、生成した秘密鍵Ｋ２を暗号化鍵Ｋ１にて暗号化してフィスカルメモリー５０（第１のメモリー）に記憶すると共に、暗号化鍵Ｋ１をＲＴＣ揮発性メモリー３０ａ（第２のメモリー）に記憶するメイン制御部２５（制御部）と、不正なアクセスを検出する不正検出部３５と、不正検出部３５により不正が検出された場合、ＲＴＣ揮発性メモリー３０ａに記憶された暗号化鍵Ｋ１を消去する鍵消去部３６と、を備えている。
この構成によれば、不正検出部３５により不正が検出された場合、ＲＴＣ揮発性メモリー３０ａに記憶された暗号化鍵Ｋ１が消去され、フィスカルメモリー５０に記憶された暗号化後秘密鍵Ｋ４の復号化ができなくなる。すなわち、不正な手段によっては、第三者が秘密鍵Ｋ２を取得できない。
【００２９】
また、本実施形態では、ＲＴＣ揮発性メモリー３０ａは、揮発性メモリーであり、鍵消去部３６は、不正検出部３５により不正が検出された場合、ＲＴＣ揮発性メモリー３０ａへの電力の供給を遮断することにより暗号化鍵Ｋ１を消去する。
この構成によれば、ＲＴＣ揮発性メモリー３０ａが揮発性メモリーであることを活用して、的確に、暗号化鍵Ｋ１の消去を実現できる。
【００３０】
また、本実施形態では、暗号化鍵Ｋ１は、ＲＴＣ揮発性メモリー３０ａに記憶される。
この構成によれば、ＥＪ書込日時データ５５、及び、フィスカル書込日時データ５２を生成するために必須の構成部材であるＲＴＣ３０を有効活用して、本願発明の効果を得るために適切記憶領域に、暗号化鍵Ｋ１を記憶することができる。
【００３１】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、暗号化鍵Ｋ１をＲＴＣ揮発性メモリー３０ａに記憶していたが、ＳＲＡＭ２９（第２のメモリー）であってもよい。この場合、鍵消去部３６は、不正検出部３５によって不正なアクセスが検出された場合、ＳＲＡＭ２９に対する電力の供給を遮断して、当該メモリーに記憶された暗号化鍵Ｋ１を消去する。
また例えば、本実施形態では、揮発性メモリーに対する電力供給の遮断という手段によって、当該揮発性メモリーに記憶された暗号化鍵Ｋ１を消去していたが、これに限らずソフトウェア的な手段によってメモリー上の暗号化鍵Ｋ１を消去するようにしてもよい。
また例えば、上述した実施形態では、フィスカル情報（フィスカルデータ）として、書込レシートデータ５４と、フィスカル書込日時データ５２とを例示したが、フィスカル情報がこれらデータに限られないことは言うまでもない。また例えば、図１に示す各機能ブロックはハードウェアとソフトウェアの協働により任意に実現可能であり、特定のハードウェア構成を示唆するものではない。また、各機能ブロックの機能を、外部接続される別の装置に持たせるようにしてもよく、また、説明した各種動作について、外部接続される記憶媒体に記憶させたプログラムを実行することにより、実行するようにしてもよい。
【符号の説明】
【００３２】
１…情報処理システム、１５…ホストコンピューター、１６…フィスカルプリンター（情報処理装置）、２９…ＳＲＡＭ（第２のメモリー）、３０ａ…ＲＴＣ揮発性メモリー（第２のメモリー）、３５…不正検出部、３６…鍵消去部、３８…ＲＴＣ、５０…フィスカルメモリー（第１のメモリー）、５３…日計売上データ（フィスカルデータ）、５４…書込レシートデータ（フィスカルデータ）。
【図１】
2014103435.tif 000003
【図２】
2014103435.tif 000004