(57)【要約】【課題】記録媒体に記録可能な電子機器において、プログラム等に対する改変が行われたことを検出可能とする。【解決手段】電子機器１は、記録媒体に記録すべき情報を含んだアプリ出力データを生成するアプリケーション実行部６１と、アプリ出力データに基づいて制御データを出力するプリンタードライバー実行部６２と、制御データに基づいて記録媒体に画像を記録する記録部３６と、記録媒体に記録された画像を光学的に読み取るスキャナー３９と、制御データによって画像として記録媒体に記録させようとした情報の内容と、スキャナー３９により読み取られた画像の内容との同一性を判別する同一性判別部７２ｃと、を備える。【選択図】図５
2012091413.tif 000002
【特許請求の範囲】
【請求項１】
所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成するアプリケーション実行部と、
前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力する記録制御部と、
前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録する記録部と、
前記記録部により前記記録媒体に記録された画像を光学的に読み取る光学読取部と、
前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容の少なくとも一部と、前記光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別する同一性判別部と、を備えることを特徴とする電子機器。
【請求項２】
前記記録制御部が出力する制御データには、前記記録媒体に文字列を示す画像を記録させるためのデータが含まれており、
前記光学読取部が読み取った文字列に係る画像に対して光学文字認識を行う光学文字認識部をさらに備え、
前記同一性判別部は、
前記記録制御部が出力する制御データによって画像として記録させようとした文字列の内容の少なくとも一部と、前記光学文字認識部が認識した文字列の画像の内容の少なくとも一部との同一性を判別することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記記録制御部が出力する制御データには、レシートの発行に際して当該レシートに記録すべき金額を表す文字列の画像を記録させるためのデータが含まれており、
前記光学文字認識部は、前記記録部により前記記録媒体に記録された金額を表す文字列の画像のうち、少なくとも１つの画像に対して光学文字認識を行い、
前記同一性判別部は、
前記記録制御部が出力する制御データによって画像として記録させようとした各種金額を表す文字列のうち、前記光学文字認識部による光学文字認識の対象となった画像に対応する文字列の内容の少なくとも一部と、前記光学文字認識部が認識した金額を表す文字列の画像の内容の少なくとも一部との同一性を判別することを特徴とする請求項２に記載の電子機器。
【請求項４】
ホストコンピューターと、前記ホストコンピューターの制御の下、前記記録部により前記記録媒体に画像を記録する記録装置とを備え、
前記ホストコンピューターが前記アプリケーション実行部、及び、前記記録制御部を備えると共に、
前記記録装置が、前記同一性判別部を備えることを特徴とする請求項１ないし３のいずれかに記載の電子機器。
【請求項５】
ホストコンピューターと、前記ホストコンピューターの制御の下、前記記録部により前記記録媒体に画像を記録する記録装置とを備え、
前記ホストコンピューターが前記アプリケーション実行部、前記記録制御部、及び、前記同一性判別部を備えることを特徴とする請求項１ないし３のいずれかに記載の電子機器。
【請求項６】
前記同一性判別部によりの少なくとも一部の同一性がないと判別された場合、少なくとも前記記録部の動作を停止することを特徴とする請求項１ないし５のいずれかに記載の電子機器。
【請求項７】
アプリケーション実行部により、所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成し、
記録制御部により、前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力し、
記録部により、前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録すると共に、光学読取部により、前記記録部により前記記録媒体に記録された画像を光学的に読み取り、
同一性判別部により、前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容の少なくとも一部と、前記光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別することを特徴とする電子機器の制御方法。
【請求項８】
電子機器を制御する制御部により実行されるプログラムであって、
前記制御部を、
所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成するアプリケーション実行部と、
前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力する記録制御部と、
前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録する記録部と、
前記記録部により前記記録媒体に記録された画像を光学的に読み取る光学読取部と、
前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容の少なくとも一部と、前記光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別する同一性判別部と、として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体に記録可能な電子機器、電子機器の制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、取引に関する情報等が記録されたレシートを発行するプリンターを備えた電子機器（商品販売データ処理装置）が知られている（例えば、特許文献１参照）。
この種の電子機器では、以下のようにして、レシートを発行するものがある。すなわち、ホストコンピューターによってプリンターを制御する構成とした上で、ホストコンピューターにインストールされたアプリケーションの機能により、顧客が購入した商品の商品名や、商品の値段をサーバー上のデータベースから取得したり、合計支払金額を算出したりすることにより、レシートに記録すべき情報を生成する。次いで、アプリケーションの機能により生成された情報に基づいて、ホストコンピューターのプリンタードライバーの機能により、プリンターに記録に係る動作をさせる制御データを生成する。プリンターは、制御データに基づいて、ロール紙等の記録媒体に画像を記録してレシートを発行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９１９３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した電子機器のように、プリンタードライバーの機能により生成された制御データに基づいて、プリンターが記録媒体に画像を記録するものでは、制御データによってプリンターに画像として記録させようとした情報の内容と、記録媒体に記録された画像が示す情報の内容とが異なるものとなるように、例えば、プリンターのプログラムが改変されることがあるものと想定される。このような改変は、政府等の国家機関が、当該店舗における取引の実態を把握する際、プリンターにより発行されたレシートや、レシートを発行させる動作を行わせる制御データを利用する場合において、取引の実態を偽ることを目的として行われる場合がある。この場合、不正が行われたことを検出することが求められる。
本発明は、上述した事情に鑑みてなされたものであり、記録媒体に記録可能な電子機器において、プログラム等に対する改変が行われたことを検出可能な電子機器、電子機器の制御方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、電子機器であって、所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成するアプリケーション実行部と、前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力する記録制御部と、前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録する記録部と、前記記録部により前記記録媒体に記録された画像を光学的に読み取る光学読取部と、前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容の少なくとも一部と、前記光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別する同一性判別部と、備えることを特徴とする。
上記構成によれば、記録制御部が出力した制御データの内容と、実際に記録媒体に記録される画像の内容との同一性が損なわれるように、記録部の制御に係るプログラム等が改変された場合であっても、同一性判別部によって、記録制御部が出力した制御データの内容と、光学読取部により読み取られた画像の内容との同一性を判別することにより、上記のような改変が行われた可能性があることを適切に検出できる。
特に、上記によれば、同一性判別部は、記録制御部が出力した制御データの内容と、光学読取部により読み取られた画像の内容との同一性を判別するため、記録制御部に係る構成要素（例えば、記録制御部の制御用のプログラム）ではなく、制御データに基づいて処理を行う構成要素（例えば、記録部の制御に係るプログラム）に対する改変を検出でき、改変された構成要素をある程度特定することが可能である。
【０００６】
また、上記発明の電子機器であって、本発明は、前記記録制御部が出力する制御データには、前記記録媒体に文字列を示す画像を記録させるためのデータが含まれており、前記光学読取部が読み取った文字列に係る画像に対して光学文字認識を行う光学文字認識部をさらに備え、前記同一性判別部は、前記記録制御部が出力する制御データによって画像として記録させようとした文字列の内容の少なくとも一部と、前記光学文字認識部が認識した文字列の画像の内容の少なくとも一部との同一性を判別することを特徴とする。
この構成によれば、記録部の制御に係るプログラム等に対して、記録媒体に記録すべき文字列が変更されるような改変が行われた場合であっても、光学文字認識部による光学文字認識を利用して、同一性判別部の判別結果に基づいて、上記改変が行われた可能性があることを適切に検出できる。
【０００７】
また、上記発明の電子機器であって、本発明は、前記記録制御部が出力する制御データには、レシートの発行に際して当該レシートに記録すべき金額を表す文字列の画像を記録させるためのデータが含まれており、前記光学文字認識部は、前記記録部により前記記録媒体に記録された金額を表す文字列の画像のうち、少なくとも１つの画像に対して光学文字認識を行い、前記同一性判別部は、前記記録制御部が出力する制御データによって画像として記録させようとした金額を表す文字列のうち、前記光学文字認識部による光学文字認識の対象となった画像に対応する文字列の内容と、前記光学文字認識部が認識した金額を表す文字列の画像の内容との同一性を判別することを特徴とする。
ここで、レシートとしての記録媒体に記録されるべき各種金額を変更することによって、不正に利益を得ることは可能であるため、不正の目的を持って、レシートに記録すべき各種金額が変更されるように、記録制御部の制御に係るプログラムや、記録部の制御に係るプログラム等に対して改変が行われる場合があるものと考えられる。
これを踏まえ、上記構成によれば、記録部の制御に係るプログラム等に対して、レシートとしての記録媒体に記録すべき各種金額が変更されるような改変が行われた場合であっても、光学文字認識部による光学文字認識を利用して、同一性判別部の判別結果に基づいて、上記改変が行われた可能性があることを適切に検出できる。
【０００８】
また、上記発明の電子機器であって、本発明は、ホストコンピューターと、前記ホストコンピューターの制御の下、前記記録部により前記記録媒体に画像を記録する記録装置とを備え、前記ホストコンピューターが前記アプリケーション実行部、及び、前記記録制御部を備えると共に、前記記録装置が、前記同一性判別部を備えることを特徴とする。
ここで、アプリケーション実行部、及び、記録制御部を備えるホストコンピューターが、記録装置を制御して、画像を記録する構成を有する電子機器は、広く存在する。そして、上記構成によれば、記録装置が同一性判別部を備えているため、同一性の判別に際し、ホストコンピューターと記録装置との間で複雑なデータの送受信を行う必要がなく、処理効率の向上を図ることができる。
【０００９】
また、上記発明の電子機器であって、本発明は、ホストコンピューターと、前記ホストコンピューターの制御の下、前記記録部により前記記録媒体に画像を記録する記録装置とを備え、前記ホストコンピューターが前記アプリケーション実行部、前記記録制御部、及び、前記同一性判別部を備えることを特徴とする。
ここで、アプリケーション実行部、及び、記録制御部を備えるホストコンピューターが、記録装置を制御して、画像を記録する構成を有する電子機器は、広く存在する。そして、記録装置が備えるＣＰＵ等の制御手段よりも、ホストコンピューターが備える制御手段の方が、処理能力が高い場合が多い。また、同一性判別部の処理は、アプリケーション実行部が生成したデータの内容と、光学読取部により読み取られた画像の内容との同一性を判別するものであり、処理が複雑であり、制御手段に対する負荷が大きくなる場合がある。
以上を踏まえ、上記構成によれば、ホストコンピューターが同一性判別部を備えているため、ホストコンピューターの高い処理能力を有する制御手段により、高い処理効率で、同一性の判別に係る処理を実行できる。
【００１０】
また、上記発明の電子機器であって、前記同一性判別部により同一性がないと判別された場合、少なくとも前記記録部の動作を停止することを特徴とする。
これにより、何らかの改変が行われた可能性がある状態で、記録部により記録媒体に画像が記録されることを防止できる。また、改変をすれば記録部の動作が停止するという構成を有すること自体が、当該改変に対する抑止力となる。
【００１１】
また、上記目的を達成するために、本発明は、電子機器の制御方法であって、アプリケーション実行部により、所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成し、記録制御部により、前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力し、記録部により、前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録すると共に、光学読取部により、前記記録部により前記記録媒体に記録された画像を光学的に読み取り、同一性判別部により、前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容の少なくとも一部と、前記光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別することを特徴とする。
この制御方法によれば、記録制御部が出力した制御データの内容と、実際に記録媒体に記録される画像の内容との同一性が損なわれるように、記録部の制御に係るプログラム等が改変された場合であっても、同一性判別部によって、記録制御部が出力した制御データの内容と、光学読取部により読み取られた画像の内容との同一性を判別することにより、上記のような改変が行われた可能性があることを適切に検出できる。
特に、上記によれば、同一性判別部は、記録制御部が出力した制御データの内容の少なくとも一部と、光学読取部により読み取られた画像の内容の少なくとも一部との同一性を判別するため、記録制御部に係る構成要素（例えば、記録制御部の制御用のプログラム）ではなく、制御データに基づいて処理を行う構成要素（例えば、記録部の制御に係るプログラム）に対する改変を検出でき、改変された構成要素をある程度特定することが可能である。
【００１２】
また、上記目的を達成するために、本発明は、電子機器を制御する制御部により実行されるプログラムであって、前記制御部を、所定のアプリケーションを実行することにより、記録媒体に記録すべき情報を含んだデータを生成するアプリケーション実行部と、前記アプリケーション実行部が生成したデータに基づいて、前記記録媒体に記録に係る動作を行わせるための制御データを出力する記録制御部と、前記記録制御部が出力した制御データに基づいて前記記録媒体に画像を記録する記録部と、前記記録部により前記記録媒体に記録された画像を光学的に読み取る光学読取部と、前記記録制御部が出力した制御データによって画像として前記記録媒体に記録させようとした情報の内容と、前記光学読取部により読み取られた画像の内容との同一性を判別する同一性判別部と、として機能させることを特徴とする。
このプログラムを実行すれば、記録制御部が出力した制御データの内容と、実際に記録媒体に記録される画像の内容との同一性が損なわれるように、記録部の制御に係るプログラム等が改変された場合であっても、同一性判別部によって、記録制御部が出力した制御データの内容と、光学読取部により読み取られた画像の内容との同一性を判別することにより、上記のような改変が行われた可能性があることを適切に検出できる。
特に、上記によれば、同一性判別部は、記録制御部が出力した制御データの内容と、光学読取部により読み取られた画像の内容との同一性を判別するため、記録制御部に係る構成要素（例えば、記録制御部の制御用のプログラム）ではなく、制御データに基づいて処理を行う構成要素（例えば、記録部の制御に係るプログラム）に対する改変を検出でき、改変された構成要素をある程度特定することが可能である。
【発明の効果】
【００１３】
本発明によれば、記録媒体に記録可能な電子機器において、プログラム等に対する改変が行われたことが検出可能となる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る電子機器の機能的構成を示すブロック図である。
【図２】サーマルヘッド、スキャナー、及び、切断機構の位置関係を明示する図。
【図３】同一性判別モジュールの動作を示すフローチャートである。
【図４】第２実施形態に係る電子機器の機能的構成を示すブロック図である。
【図５】第３実施形態に係る電子機器の機能的構成を示すブロック図である。
【図６】同一性判別モジュールの動作を示すフローチャートである。
【図７】第４実施形態に係る電子機器の機能的構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。
＜第１実施形態＞
図１は、本実施形態に係る電子機器１の機能的構成を示すブロック図である。
図１に示すように、電子機器１は、ホストコンピューター１０と、フィスカルプリンター１１（記録装置）と、を備えており、これらホストコンピューター１０、及び、フィスカルプリンター１１が協働して各種処理を実行する。
フィスカルプリンター１１は、ホストコンピューター１０の制御の下、レシートを発行すると共に、ホストコンピューター１０から入力されたフィスカル情報を含むデータを記憶する。フィスカル情報とは、商品等の販売取引に関する情報（売上に関する情報や課税額等に関する情報）であって、記憶すべき情報として予め定められた情報のことである。このフィスカル情報は、例えば、政府等の国家機関による店舗からの税金の徴収に際し、国家機関が当該店舗における取引の実態を把握するために参照する情報として利用される。本実施形態では、フィスカル情報を含むデータとして、後述する書込レシートデータ１３、及び、日計売上データ１４の２種類のデータが存在する。
なお、以下の説明では、フィスカルプリンター１１が出力するレシートは、顧客が購入した商品の代金の支払いに際して発行されるレシートであり、必ず、顧客が支払うべき代金の総計を示す合計購入金額が記録されるものとする。
【００１６】
図１に示すように、フィスカルプリンター１１は、管理基板１５、プリンター基板１６、および、サブ基板１７の３つの基板を備えている。
管理基板１５には、メイン制御部２０（制御部）と、ＰＣコネクター２１と、フィスカルコネクター２２と、通信ＩＣ２３と、ＲＯＭ２４と、ＳＲＡＭ２５と、ＲＴＣ２６と、ＥＪメモリー２７と、第１メモリー制御部２８と、バッファーＩＣ２９と、同一性判別モジュール３０と、が実装されている。
【００１７】
メイン制御部２０は、フィスカルプリンター１１の各部を中枢的に制御するものであり、ＣＰＵやその他の周辺回路を備えている。
ＰＣコネクター２１は、フィスカルプリンター１１の通常使用時においてホストコンピューター１０が接続されるコネクターである。ホストコンピューター１０は、ＰＣコネクター２１を介してフィスカルプリンター１１にレシートの発行に係る動作を行わせる制御データを出力し、また、フィスカル情報を含むデータである日計売上データ１４を出力する。
フィスカルコネクター２２は、フィスカルデータ読出装置３４が接続されるコネクターである。フィスカルデータ読出装置３４とは、後述するＥＪメモリー２７や、フィスカルメモリー４５に記憶されたデータを読み出すための装置であり、例えば国家機関（政府等）に係る者等の、特別な許可を得た者だけが所持し得る。上述したホストコンピューター１０はＰＣコネクター２１に接続された状態が維持されるが、フィスカルデータ読出装置３４は、ホストコンピューター１０と異なり、データの読み出しが行われる際に、適宜、フィスカルコネクター２２に接続される。
【００１８】
通信ＩＣ２３は、ＰＣコネクター２１及びフィスカルコネクター２２に接続され、メイン制御部２０の制御の下、ホストコンピューター１０や、フィスカルデータ読出装置３４との間でデータの送受信を行う。
また、通信ＩＣ２３は、同一性判別モジュール３０に接続され、この同一性判別モジュール３０と、ホストコンピューター１０のホスト制御部６０との間での通信の制御を行う。ホスト制御部６０のアプリケーション実行部６１（後述）は、アプリ出力データ（後述）を、直接、同一性判別モジュール３０に出力可能である。
ＲＯＭ２４は、メイン制御部２０が各種制御を行うための制御プログラム（ファームウェア）や、制御データ等を不揮発的に記憶する。
ＳＲＡＭ２５は、メイン制御部２０のＣＰＵのワークエリアとして機能する揮発性のメモリーであり、各種データを一時的に記憶する。
ＲＴＣ２６（Real-time clock：リアルタイムクロック）は、現在日時（年月日、時刻）を示すデータをメイン制御部２０に出力する。
【００１９】
ＥＪメモリー２７は、ＮＡＮＤ型フラッシュメモリーであり、大容量のデータを記憶可能である。ＥＪメモリー２７は、第１メモリー制御部２８の制御の下、１つのアドレスに対して１度しかデータを書き込めないメモリーとして機能する。これにより、ＥＪメモリー２７に書き込まれたデータが後から編集されることが防止され、ＥＪメモリー２７に記憶されたデータ対する改ざんが防止されている。
第１メモリー制御部２８は、ＣＰＵを備え、メイン制御部２０の制御の下、ＥＪメモリー２７に対してデータの読み書きを行う。第１メモリー制御部２８は、ＥＪメモリー２７に対して、データ、具体的には、フィスカル情報を含むデータである書込レシートデータ１３（後述）を書き込む場合、当該データを暗号化した上でデータを書き込む。暗号化されたデータを復号するための機能は、上述したフィスカルデータ読出装置３４等の、フィスカル情報を含むデータを正規に読み出すことが許可された、限られた装置のみが有している。これにより、書込レシートデータ１３の内容の漏洩の防止が図られている。
バッファーＩＣ２９は、ＥＪメモリー２７に対するデータの読み出し、書き込みの効率を向上するために設けられたバッファーを制御する。
これらＥＪメモリー２７、第１メモリー制御部２８、及び、バッファーＩＣ２９は、エポキシ樹脂によって管理基板１５に封止されており、ＥＪメモリー２７が管理基板１５から物理的に取り外された上で、ＥＪメモリー２７に記憶されたデータが改ざんされることが防止されている。
【００２０】
図１を参照して説明する。プリンター基板１６には、プリンター制御部３５が実装されており、ホストコンピューター１０が出力した制御データに基づいて、記録部３６を制御して、レシートを発行する。
記録部３６は、ロール紙の印刷面に熱を与えることにより画像を記録するサーマルヘッド３７（図２）や、ロール紙を搬送する搬送機構、所定の位置でロール紙を切断するための切断機構３８（図２）等を備えており、プリンター制御部３５の制御の下、これら機構や装置を動作させて、レシートを発行する。
また、プリンター制御部３５には、光学読取部たるスキャナー３９（図２）が接続されている。スキャナー３９は、ロール紙の記録面（画像が記録される側の面）を光学的に読み取るイメージスキャナーであり、ロール紙の記録面を走査して検出値をプリンター制御部３５に出力する。プリンター制御部３５は、スキャナー３９の検出値に基づいて、ロール紙の記録面を示す画像データを生成する。以下、１のレシートについて、プリンター制御部３５が生成した画像データを、「レシート画像データ」という。本実施形態では、レシート画像データは、２値化されたビットマップ形式のデータであり、データ上でドットマトリクス状に配置された各画素について、画素ごとに、黒色を示す値、又は、白色を示す値のいずれかの値を保持している。
プリンター制御部３５は、レシート画像データを生成した後、メイン制御部２０を介することなく、レシート画像データを同一性判別モジュール３０に出力する。
【００２１】
図２は、サーマルヘッド３７、スキャナー３９、及び、切断機構３８の位置関係を模式的に示す図である。
図２に示すように、ロール紙の搬送経路４０上に、サーマルヘッド３７が設けられており、このサーマルヘッド３７の搬送方向（図２において矢印Ｙ１で示す方向）の下流に、スキャナー３９が設けられており、さらにこのスキャナー３９の搬送方向の下流に切断機構３８が設けられている。
レシートを発行する場合、図示せぬ搬送機構により、ロール紙が搬送方向に搬送されると共に、サーマルヘッド３７によって画像が記録される。そして、サーマルヘッド３７の下流に位置するスキャナー３９によって、画像が記録されたロール紙がスキャンされ、検出値がプリンター制御部３５に出力される。画像の記録、及び、スキャンの後、ロール紙は、さらに搬送され、所定の位置で切断機構３８により切断される。これにより、紙片に所定の画像が記録されたレシートが発行される。
【００２２】
図１を参照して説明する。プリンター基板１６には、プリンター側コネクター４２が設けられ、管理基板１５には、管理側コネクター４３が設けられており、これらプリンター側コネクター４２と、管理側コネクター４３とが接続されることにより、管理基板１５と、プリンター基板１６とが接続される。
本実施形態では、レシートの発行に際し、まず、フィスカルプリンター１１に接続されたホストコンピューター１０が、制御データを生成し、生成した制御データをＰＣコネクター２１を介してメイン制御部２０に出力する。制御データが入力されたメイン制御部２０は、入力された制御データをプリンター制御部３５に出力する。
【００２３】
サブ基板１７には、フィスカルメモリー４５と、第２メモリー制御部４６とが実装されている。
フィスカルメモリー４５は、ＥＰＲＯＭを備えるメモリーである。フィスカルメモリー４５には、日計売上データ１４が記憶されるが、これらについては後述する。フィスカルメモリー４５は、第２メモリー制御部４６の制御の下、１つのアドレスに対して１度しかデータを書き込めないメモリーとして機能する。これにより、フィスカルメモリー４５に書き込まれたデータが後から編集されることが防止され、フィスカルメモリー４５に記憶されたデータ対する改ざんが防止されている。
第２メモリー制御部４６は、プログラム可能な論理回路を書き込んだデバイスであるＣＰＬＤ（Complex programmable logic device）を備え、メイン制御部２０の制御の下、フィスカルメモリー４５に対してデータの読み書きを行う。第２メモリー制御部４６は、フィスカルメモリー４５に対して、データ、具体的には、フィスカル情報を含むデータである日計売上データ１４（後述）を書き込む場合、当該データを暗号化した上でデータを書き込む。ここで暗号化されたデータを復号するための機能は、上述したフィスカルデータ読出装置３４等の、フィスカル情報を含むデータを正規に読み出すことが許可された限られた装置のみが有している。これにより、日計売上データ１４の内容の漏洩の防止が図られている。
これらフィスカルメモリー４５、及び、第２メモリー制御部４６は、エポキシ樹脂によってサブ基板１７に封止されており、例えば、フィスカルメモリー４５がサブ基板１７から物理的に取り外された上で、フィスカルメモリー４５に記憶されたデータが改ざんされることが防止されている。
【００２４】
次いで、ＥＪメモリー２７に記憶される書込レシートデータ１３、及び、フィスカルメモリー４５に記憶される日計売上データ１４について説明する。上述したように、これらデータは、フィスカル情報を含むデータに該当する。
書込レシートデータ１３とは、フィスカルプリンター１１によって発行されるレシートに記録される情報を示すデータであって、記憶すべきデータとして予め定められているデータのことである。例えば、レシートに、顧客が購入した商品毎に、商品を示す情報や、商品の単価を示す情報、当該商品を購入した個数を示す情報、商品の購入にかかる代金を示す情報、全ての商品の総購入代金を示す情報等が記録されている場合であって、これら情報を示すデータが記憶すべきデータとして予め定められている場合、これら情報を示すデータが書込レシートデータ１３に該当する。上述したように、本実施形態では、フィスカルプリンター１１によってレシートを発行する場合、ホストコンピューター１０によって制御データが生成され、この制御データがメイン制御部２０に出力され、さらに、制御データがメイン制御部２０からプリンター制御部３５に出力される。その際、メイン制御部２０は、制御データから、書込レシートデータ１３として記憶すべき情報を抽出し、抽出したこれら情報を書込レシートデータ１３として、第１メモリー制御部２８を制御して、ＥＪメモリー２７に記憶する。
【００２５】
ここで、メイン制御部２０は、ＥＪメモリー２７に書込レシートデータ１３を書き込む際、ＲＴＣ２６から現在日時を示すデータを取得し、取得したデータに基づいて、書き込みを行った日時を取得し、取得した日時を示すデータ（ＥＪ書込日時データ５０）と、書込レシートデータ１３とを対応づけた状態で、書込レシートデータ１３を書き込む。つまり、書込レシートデータ１３のそれぞれは、ＥＪメモリー２７に書き込まれた日時を示すデータであるＥＪ書込日時データ５０と対応づけてＥＪメモリー２７に記憶される。
このように、本実施形態では、ＥＪ書込日時データ５０と、書込レシートデータ１３とを対応づけて記憶するが、これは、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２６】
日計売上データ１４とは、店舗における１日ごとの総売上を示すデータのことであり、店舗の営業終了後、ホストコンピューター１０がその日における総売上を計算し、計算した総売上に基づいて、日計売上データ１４を生成し、生成した日計売上データ１４をメイン制御部２０に出力する。日計売上データ１４が入力されると、メイン制御部２０は、第２メモリー制御部４６を制御し、フィスカルメモリー４５に日計売上データ１４を書き込む。
ここで、メイン制御部２０は、フィスカルメモリー４５に日計売上データ１４を書き込む際、ＲＴＣ２６に現在日時を示すデータを出力させ、このデータに基づいて、書き込みを行った日時を取得し、取得した日時を示すデータ（フィスカル書込日時データ５１）と、日計売上データ１４とを対応づけた状態で、フィスカルメモリー４５に日計売上データ１４を書き込む。つまり、日計売上データ１４のそれぞれは、フィスカルメモリー４５に書き込まれた日時を示すデータであるフィスカル書込日時データ５１と対応づけてフィスカルメモリー４５に記憶される。
このように、本実施形態では、フィスカル書込日時データ５１と、日計売上データ１４とを対応づけて記憶するが、これは、国によっては、法律や、規則によりそのことが義務づけられているからである。
【００２７】
図１を参照して説明する。ホストコンピューター１０は、ホスト制御部６０を備えている。ホスト制御部６０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路を備え、ホストコンピューター１０の各部を中枢的に制御するものであり、アプリケーション実行部６１、及び、プリンタードライバー実行部６２（記録制御部）を備えている。
【００２８】
アプリケーション実行部６１は、ホストコンピューター１０が備える所定の記憶部に記憶されたアプリケーションプログラムを読み出して実行することにより、発行するレシートに記録すべき情報を含んだアプリ出力データを生成し、生成したアプリ出力データをプリンタードライバー実行部６２に出力する。
例えば、アプリケーション実行部６１は、図示せぬバーコードリーダーからの入力値に基づいて、顧客が購入した商品の識別コードを特定するとともに、所定のデータベースにアクセスし、識別コードを利用して当該商品の単価や、商品名を取得し、さらに、取得した単価や、消費税等に基づいて合計購入金額を算出する。そして、アプリケーション実行部６１は、あらかじめ設定された、レシートにおける左右のマージンや、フォントサイズ、フォントの種類、文字と文字のピッチ、所定のロゴや各種情報（商品名や、商品単価、合計購入金額）のレシートにおける配置位置の取り決め等に基づいて、発行するレシートのどこにどのような情報を記録するかを明示したデータを含むアプリ出力データを生成する。
なお、ユーザーは、アプリケーションプログラムの機能によって提供されるユーザーインターフェースを利用して、各種設定を可能である。
また、アプリ出力データにおいて、文字については、Ｕｎｉｃｏｄ等の文字コードとして表現されている。例えば、レシートにおける所定の位置に、合計購入金額として「９０００円」という文字列を記録する場合には、「９」、「０」、「円」のそれぞれの文字は、対応する文字コードによって表現されている。
【００２９】
本実施形態では、アプリケーション実行部６１が出力したアプリ出力データは、プリンタードライバー実行部６２に出力されるだけでなく、さらに、フィスカルプリンター１１に出力される。フィスカルプリンター１１に出力されたアプリ出力データは、詳細は後述するが、メイン制御部２０を介することなく同一性判別モジュール３０に出力され、同一性判別モジュール３０により所定の処理が施される。
つまり、本実施形態では、アプリケーション実行部６１が出力したアプリ出力データは、プリンタードライバー実行部６２による処理、及び、メイン制御部２０による処理が施されることなく、そのまま、同一性判別モジュール３０に入力される構成となっている。
【００３０】
プリンタードライバー実行部６２は、ホストコンピューター１０が備える所定の記憶部に記憶されたプリンタードライバーを読み出して実行することにより、アプリケーション実行部６１から入力されたアプリ出力データに基づいて、フィスカルプリンター１１のコマンド仕様に準拠して、フィスカルプリンター１１にレシートの発行に係る一連の動作を行わせる制御データを生成し、フィスカルプリンター１１に出力する。
制御データには、例えば、画像の記録の開始を指示するコマンドや、サーマルヘッド３７を駆動させることを指示するコマンド、ロール紙を搬送方向に所定量だけ送ることを指示するコマンド、切断機構３８によりロール紙の切断を指示するコマンド等の各種コマンドが含まれている。
【００３１】
ここで、プリンタードライバー実行部６２による、アプリ出力データに含まれた文字コードに対する処理について説明する。
本実施形態に係るフィスカルプリンター１１は、ＲＯＭ２４に形成された所定の記憶領域内で、文字毎にフォントデータを記憶している。フォントデータとは、文字をロール紙に記録可能な態様で表現する実データのことであり、例えば、ビットマップフォントデータや、スケイラブルフォントデータである。
さらに、ホストコンピューター１０は、文字コードのそれぞれと、各文字コードに対応するフォントデータの上記記憶領域における位置（番地）を示す情報と、を対応づけたテーブルを記憶しており、プリンタードライバー実行部６２は、当該テーブルを参照して、文字コードを、当該文字コードに対応するフォントデータの位置を示す情報に変換する。
【００３２】
プリンタードライバー実行部６２は、フィスカルプリンター１１のメイン制御部２０に制御データを出力する。
【００３３】
次いで、同一性判別モジュール３０について説明する。
同一性判別モジュール３０は、以下に説明する処理を実行するために専用的に設けられたモジュールであり、ＣＰＵや、ＲＯＭ、ＲＡＭ、その他の周辺回路を備えている。
この同一性判別モジュール３０は、エポキシ樹脂によって管理基板１５に封止されており、同一性判別モジュール３０を構成する各要素に対して物理的にアクセスできない構成となっている。これにより、例えば、ＲＯＭが管理基板１５から物理的に取り外された上で、ＲＯＭに記憶されたデータが改ざんされることが防止される。
図１に示すように、同一性判別モジュール３０は、アプリ出力データ分析部７０、光学文字認識部７１、及び、同一性判別部７２を備えている。
以下、アプリ出力データ分析部７０、光学文字認識部７１、及び、同一性判別部７２の説明と併せて、同一性判別モジュール３０の動作について説明する。
これらアプリ出力データ分析部７０、光学文字認識部７１、及び、同一性判別部７２の機能は、ＣＰＵがＲＯＭに記憶されたプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。
【００３４】
図３は、同一性判別モジュール３０の動作を示すフローチャートである。この図３に示す動作は、レシートを発行する度に実行される。
上述したように、レシートの発行に際し、ホストコンピューター１０のホスト制御部６０のアプリケーション実行部６１は、当該レシートに係るアプリ出力データを生成し、生成したアプリ出力データを同一性判別モジュール３０に出力する。これに応じて、同一性判別モジュール３０は、アプリケーション実行部６１が出力したアプリ出力データを取得する（ステップＳＡ１）。
次いで、同一性判別モジュール３０のアプリ出力データ分析部７０は、アプリ出力データから、レシートに記録される合計購入金額を示す情報を抽出し、合計購入金額の値（数値）を特定する（ステップＳＡ２）。より詳細には、上述したように、アプリ出力データにおいて、合計購入金額は、Ｕｎｉｃｏｄｅ等の所定の文字コードで表現されているため、同一性判別部７２は、アプリ出力データを分析して、合計購入金額を示す文字列（円やドル等の通貨の単位を示す文字に係るものを除く）を示すデータを特定すると共に、特定した文字列を示すデータを、整数型のデータにデータ型変換し、合計購入金額の値を数値として特定する。なお、アプリ出力データから、合計購入金額の値を特定する方法は、既存の各種方法を利用できる。
【００３５】
さらに、上述したように、レシートの発行に際し、プリンター制御部３５は、記録部３６を制御して、ロール紙を搬送しつつ、ロール紙に所定の画像を記録する。このロール紙の搬送、ロール紙への画像の記録に応じて、スキャナー３９によってロール紙の記録面の読み取りが実行され、プリンター制御部３５は、スキャナー３９の検出値に基づいて、レシート画像データを生成し、生成したレシート画像データを、同一性判別モジュール３０に出力する。これに応じて、同一性判別モジュール３０は、プリンター制御部３５が出力したレシート画像データを取得する（ステップＳＡ３）。
次いで、同一性判別モジュール３０の光学文字認識部７１は、ステップＳＡ３で取得したレシート画像データから、合計購入金額を示す画像が含まれた画像データを切り出して、当該画像データに対して光学文字認識を実行することにより、レシートに画像として記録された合計購入金額の値（数値）を特定する（ステップＳＡ４）。
以下、一例を挙げて光学文字認識部７１の動作を具体的に説明する。なお、本実施形態では、レシートにおいて、合計購入金額が記録される位置に対応する所定の位置には、「合計」という文字が必ず記録されるものとする。
【００３６】
ステップＳＡ４において、例えば、光学文字認識部７１は、パターンマッチング処理により、レシート画像データにおける、「合計」という文字に係る画像の位置を検出する。そして、「合計」に係る画像の位置に基づいて、レシート画像データにおいて、合計購入金額を示す画像が位置する領域を特定し、特定した領域に対応させて、レシート画像データから画像データを切り出す。そして、光学文字認識部７１は、切り出した画像データに対して、パターンマッチング処理により、所定の方向（合計購入金額を示す文字列が並ぶ方向）に延びる文字列（＝合計購入金額を示す文字列。ただし、通貨の単位を示す文字に係るものを除く）の各文字について認識し、認識結果に基づいて、合計購入金額を数値として特定する。
なお、合計購入金額を構成する各文字は、０〜９の数字に係る文字である。このため、パターンマッチング処理では、０〜９の数字に対応するテンプレートデータという、非常に限定されたテンプレートをデータを利用して処理を行えばよく、誤認識が非常に少ない。また、ユーザーの設定に応じて、文字の大きさ、フォント、ピッチ等は、一意に定まるため、これら設定に対応したテンプレートを予め用意しておくことができ、誤認識が非常に少ない。
次いで、同一性判別モジュール３０の同一性判別部７２は、ステップＳＡ２においてアプリ出力データ分析部７０の処理により特定した合計購入金額の値と、ステップＳＡ４において光学文字認識部７１の処理により特定した合計購入金額の値とを比較する（ステップＳＡ５）。このステップＳＡ５では、アプリケーション実行部が出力したアプリ出力データにおける合計購入金額の内容と、実際にレシートに記録された合計購入金額の画像の内容との同一性の有無を判別している。
【００３７】
ここで、ステップＳＡ６において、ステップＳＡ２で特定した合計購入金額の値と、ステップＳＡ４で特定した合計購入金額の値とが一致しない場合の状況について説明する。
本来、レシートには、アプリケーション実行部６１により算出された合計購入金額の値に基づいて、合計購入金額を示す画像が記録される。従って、ステップＳＡ２で特定した合計購入金額（アプリケーション実行部が出力したアプリ出力データにおける合計購入金額）の値と、ステップＳＡ４で特定した合計購入金額（実際にレシートに記録された合計購入金額）の値とは、一致するはずである。
一方で、プリンタードライバーが改変されたり、また、プリンター制御部３５により読み出される制御プログラムが改変されたり、また、基板上の所定の回路が改変された場合、これら値が異なる状況となり得る。プログラムの改変等は、政府等の国家機関が、当該店舗における取引の実態を把握する際、プリンターにより発行されたレシートや、レシートを発行させる動作を行わせる制御データを利用する場合において、取引の実態を偽ることを目的として行われる場合がある。
つまり、ステップＳＡ２で特定した合計購入金額の値と、ステップＳＡ４で特定した合計購入金額の値とが一致しない場合は、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた可能性がある、ということである。
本実施形態では、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた場合、ステップＳＡ２で特定した合計購入金額（アプリケーション実行部が出力したアプリ出力データにおける合計購入金額）の値と、ステップＳＡ４で特定した合計購入金額（実際にレシートに記録された合計購入金額）の値と、が異なる状態となることに着目し、同一性判別部７２は、合計購入金額の値の判別を通して、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた可能性があることを適切に検出している。特に、同一性の判別の対象が、アプリケーション実行部６１により生成されたアプリ出力データであるため、フィスカルプリンター１１に対する改変（例えば、メイン制御部２０の制御プログラムの改変）のみならず、ホストコンピューター１０に対する改変（例えば、プリンタードライバーに対する改変）があった可能性があることも検出できる。
【００３８】
さて、ステップＳＡ６において、ステップＳＡ２で特定した合計購入金額の値と、ステップＳＡ４で特定した合計購入金額の値とが一致する場合（ステップＳＡ６：ＹＥＳ）、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムに対して改変が行われた可能性について検出されていないため、同一性判別モジュール３０は、処理を終了する。
一方、ステップＳＡ６において、ステップＳＡ２で特定した合計購入金額の値と、ステップＳＡ４で特定した合計購入金額の値とが一致しない場合（ステップＳＡ６：ＮＯ）、すなわち、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた可能性がある場合、同一性判別モジュール３０は、メイン制御部２０に、少なくとも記録部３６による画像の記録に係る動作を停止させる旨の信号を出力し、以後のフィスカルプリンター１１によってレシートの発行をできない状態とする（ステップＳＡ７）。
このように、本実施形態では、上記２つの値が一致しない場合、フィスカルプリンター１１によるレシートの発行ができない状態となる。これにより、上記のような改変が行われた場合に、改変が行われた状態で、レシートの発行が継続して行われることを防止できると共に、改変をすれば記録部３６の動作が停止するという構成を有すること自体が、当該改変に対する抑止力となる。
【００３９】
フィスカルプリンター１１の動作を停止した後、同一性判別モジュール３０は、ホストコンピューター１０に対し、その旨の信号を出力する（ステップＳＡ８）。当該信号が入力されたホストコンピューター１０のホスト制御部６０は、例えば、表示パネル（不図示）に、上記した合計購入金額の不一致によりフィスカルプリンター１１の動作を停止した旨の表示を行って、ユーザーにその旨報知する。
【００４０】
以上説明したように、本実施形態に係る電子機器１において、ホストコンピューター１０は、アプリケーション実行部６１と、記録制御部たるプリンタードライバー実行部６２と、を備え、また、フィスカルプリンター１１は、プリンタードライバー実行部６２が出力（生成）した制御データに基づいて、記録媒体たるロール紙に画像を記録する記録部３６と、光学読取部たるスキャナー３９と、同一性判別モジュール３０と、を備えている。そして、同一性判別モジュール３０は、スキャナーの読み取り結果に基づいて生成されたレシート画像データに基づいて、レシートに実際に記録された合計購入金額の画像が示す値を特定し、当該値と、アプリケーション実行部６１が出力（生成）したアプリ出力データの内容（アプリケーションの機能により算出された合計購入金額の値）と、が一致するか否かを判別する。
つまり、本実施形態では、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた場合、ステップＳＡ２で特定した合計購入金額（アプリケーション実行部が出力したアプリ出力データにおける合計購入金額）の値と、ステップＳＡ４で特定した合計購入金額（実際にレシートに記録された合計購入金額）の値と、が異なる状態となることに着目し、同一性判別モジュール３０は、合計購入金額の値の判別を通して、プリンタードライバーや、プリンター制御部３５によって読み出されるプログラムの改変、所定の回路の改変が行われた可能性があることを適切に検出している。特に、同一性の判別の対象が、アプリケーション実行部６１により生成されたアプリ出力データであるため、フィスカルプリンター１１に対する改変（例えば、メイン制御部２０の制御プログラムの改変）のみならず、ホストコンピューター１０に対する改変（例えば、プリンタードライバーに対する改変）があった可能性があることも検出できる。
【００４１】
また、本実施形態では、アプリケーション実行部６１が出力するアプリ出力データには、ロール紙に記録すべき文字列としての合計購入金額を示す情報が含まれている。また、フィスカルプリンター１１の同一性判別モジュール３０は、ロール紙に実際に記録された画像（合計購入金額にかかる画像）について光学文字認識を行う光学文字認識部７１を備えている。
そして、同一性判別モジュール３０の同一性判別部７２は、上記アプリ出力データに含まれる合計購入金額の値と、光学文字認識部７１の読み取り結果に基づいて特定された合計購入金額の値とが一致するか否かを判別する。
これによれば、アプリケーションの機能により算出された合計購入金額と、異なる購入金額をレシートに記録させるような改変が行われた場合であっても、その可能性があることを適切に検出できる。
特に、合計購入金額は、金銭のやり取りの基準となり、また、売り上げの算出の基準となる値であるため、不正に、レシートに記録される合計購入金額を異ならせるような改変が行われる可能性があると言えるが、このような場合に、改変が行われた可能性があることを適切に検出できる。
【００４２】
また、本実施形態では、ホストコンピューター１０が、アプリケーション実行部６１、及び、プリンタードライバー実行部６２を備えると共に、フィスカルプリンター１１が、同一性判別モジュール３０を備えている。
ここで、アプリケーション実行部６１、及び、プリンタードライバー実行部６２を備えるホストコンピューター１０が、フィスカルプリンター１１等の記録装置を制御して、画像を記録する構成は、広く普及している。そして、上記によれば、フィスカルプリンター１１が同一性判別モジュール３０を備えているため、同一性の判別に際し、ホストコンピューター１０とフィスカルプリンター１１との間で複雑なデータの送受信を行う必要がなく、処理効率の向上を図ることができる。
【００４３】
また、本実施形態では、ステップＳＡ６の判別の結果、各合計購入金額の値が異なる場合は、改変が行われた可能性があるとして、記録部３６によるロール紙に対する画像の記録が停止し、フィスカルプリンター１１によるレシートの発行ができない状態となる。これにより、上記のような改変が行われた場合に、改変が行われた状態で、レシートの発行が継続して行われることを防止できると共に、改変をすれば記録部３６の動作が停止するという構成を有すること自体が、当該改変に対する抑止力となる。
【００４４】
＜第２実施形態＞
次いで、第２実施形態について説明する。
図４は、本実施形態に係る電子機器１ｂの機能的構成を示すブロック図である。
なお、図１と図４とで、同一の構成要素については、同一の符号を付し、その説明を省略する。
図１と、図４との比較において明らかなように、本実施形態では、フィスカルプリンター１１の管理基板１５に同一性判別モジュール３０が実装されておらず、ホストコンピューター１０のホスト制御部６０は、同一性判別実行部８０を備えている。同一性判別実行部８０は、同一性判別モジュール３０と同一の機能を有するものであり、アプリ出力データ分析部７０ｂ、光学文字認識部７１ｂ、及び、同一性判別部７２ｂを備えている。同一性判別実行部８０の機能は、ホスト制御部６０のＣＰＵがプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。
また、プリンター制御部３５は、メイン制御部２０を介することなく、直接、通信ＩＣ２３に対して信号を出力できる。
【００４５】
ある１つのレシートを発行する場合における電子機器１ｂの動作について説明すると、レシートの発行に際し、アプリケーション実行部６１は、当該レシートに係るアプリ出力データを、プリンタードライバー実行部６２に出力すると共に、同一性判別実行部８０に出力する。
同一性判別実行部８０のアプリ出力データ分析部７０ｂは、アプリ出力データから、レシートに記録される合計購入金額を示す情報を抽出し、合計購入金額の値（数値）を特定する。特定の方法は、上述したアプリ出力データ分析部７０の場合と同様である。
さらに、プリンター制御部３５は、スキャナー３９の読み取り結果に基づいて、発行されるレシートに係るレシート画像データを生成し、生成したレシート画像データを、通信ＩＣ２３を介してホストコンピューター１０のホスト制御部６０に出力する。
同一性判別実行部８０の光学文字認識部７１ｂは、入力されたレシート画像データに基づいて、レシートに画像として記録された合計購入金額の値を特定する。特定の方法は、上述した光学文字認識部７１の場合と同様である。
同一性判別実行部８０の同一性判別部７２は、アプリ出力データ分析部７０ｂにより特定された合計購入金額の値と、光学文字認識部７１ｂにより特定された合計購入金額の値とが一致するか否かを判別する。これにより、プリンタードライバーが改変されたり、また、プリンター制御部３５により読み出される制御プログラムが改変されたり、また、基板上の所定の回路が改変されたことを検出可能である。
【００４６】
このように、本実施形態では、ホストコンピューター１０が、同一性の判別に係る処理を実行する同一性判別実行部８０を備えている。
ここで、ホストコンピューター１０のＣＰＵの処理能力の方が、フィスカルプリンター１１のＣＰＵの処理能力よりも高い場合が多く、また、同一性判別実行部８０が実行する処理は、比較的複雑な処理であり、ＣＰＵに対する負荷が大きいと言える。そして、ホストコンピューター１０が、同一性判別実行部８０を備えることにより、高い処理効率で、同一性の判別に係る処理を実行できる。
【００４７】
＜第３実施形態＞
図５は、本実施形態に係る電子機器１ｃの機能的構成を示すブロック図である。
なお、図１と図５とで、同一の構成要素については、同一の符号を付し、その説明を省略する。
図１と図５との比較において明らかなように、本実施形態では、同一性判別モジュール３０ｃは、第１実施形態のアプリ出力データ分析部７０に代えて、制御データ分析部８２を備えている。
【００４８】
図６は、本実施形態に係る同一性判別モジュール３０ｃの動作を示すフローチャートである。
本実施形態では、レシートの発行に際し、プリンタードライバー実行部６２は、当該レシートの発行に係る制御データを生成すると、当該制御データをメイン制御部２０に出力すると共に、同一性判別モジュール３０ｃに出力する。この点、第１実施形態と異なっている。
プリンタードライバー実行部６２から同一性判別モジュール３０ｃへの制御データの出力後、同一性判別モジュール３０ｃの制御データ分析部８２は、制御データを取得し（ステップＳＢ１）、取得した制御データに基づいて、制御データによって画像としてロール紙に記録させようとした合計購入金額の値を特定する（ステップＳＢ２）。
より詳細には、制御データ分析部８２は、制御データに含まれる各種のコマンドに係るデータから、合計購入金額に係る画像をロール紙に記録させるコマンドに係るデータを抽出する。上述したように、当該コマンドに係るデータにおいて、合計購入金額を示す文字列の各文字は、各文字の文字コードに対応するフォントデータの位置（番地）を示す情報によって表現されているため、制御データ分析部８２は、上記位置を示す情報に基づいて、合計購入金額を示す文字列に含まれる各文字を、Ｕｎｉｃｏｄｅ等の文字コードに変換し、変換後のデータから、データ型変換を行い、合計購入金額の値を数値として特定する。なお、制御データから、合計購入金額の値を特定する方法は、既存の各種方法を利用できる。
【００４９】
ステップＳＢ３、及び、ステップＳＢ４の処理は、ステップＳＡ３、及び、ステップＳＡ４の処理と同様であるため、その説明を省略する。
ステップＳＢ６において、同一性判別モジュール３０ｃの同一性判別部７２ｃは、上述した制御データ分析部により特定された合計購入金額の値と、光学文字認識部７１により特定された合計購入金額の値とが一致するか否かを判別する。これにより、また、プリンター制御部３５により読み出される制御プログラムが改変されたり、また、基板上の所定の回路が改変されたりしたことを検出可能である。
ステップＳＢ７、及び、ステップＳＢ８の処理は、ステップＳＡ７、及び、ステップＳＡ８の処理と同様であるため、その説明を省略する。
【００５０】
以上説明したように、本実施形態に係る電子機器１において、ホストコンピューター１０は、アプリケーション実行部６１と、記録制御部たるプリンタードライバー実行部６２と、を備え、また、フィスカルプリンター１１は、プリンタードライバー実行部６２が出力（生成）した制御データに基づいて、記録媒体たるロール紙に画像を記録する記録部３６と、光学読取部たるスキャナー３９と、同一性判別モジュール３０ｃと、を備えている。
そして、同一性判別モジュール３０ｃの同一性判別部７２ｃは、制御データ分析部８２が特定した合計購入金額の値（制御データによって画像としてロール紙に記録させようとした情報の内容の少なくとも一部）と、光学文字認識部が特定した合計購入金額の値（ロール紙に実際に記録された情報の内容の少なくとも一部）と、が一致するか否かを判別する。
つまり、本実施形態では、プリンター制御部３５によって読み出されるプログラムの改変や、所定の回路の改変等が行われた場合、ステップＳＢ２で特定した合計購入金額の値と、ステップＳＢ４で特定した合計購入金額の値と、が異なる状態となることに着目し、同一性判別モジュール３０ｃは、合計購入金額の値の判別を通して、プリンター制御部３５によって読み出されるプログラムの改変や、所定の回路の改変が行われた可能性があることを適切に検出している。
特に、同一性の判別の対象が、プリンタードライバーにより生成された制御データであるため、ホストコンピューター１０側の改変（例えば、プリンタードライバーに対する改変）ではなく、制御データに基づいて処理を行う構成要素に対する改変（例えば、メイン制御部２０の制御プログラムの改変）を検出でき、改変された構成要素をある程度特定することが可能である。
【００５１】
また、本実施形態では、プリンタードライバー実行部６２が出力する制御データには、レシートの発行に際して、ロール紙に記録すべき各種金額を表す文字列の画像を記録させるためのデータが含まれている。また、フィスカルプリンター１１の同一性判別モジュール３０ｃは、ロール紙に実際に記録された画像（合計購入金額にかかる画像）について光学文字認識を行う光学文字認識部７１を備えている。
そして、同一性判別モジュール３０ｃの同一性判別部７２ｃは、制御データが示す合計購入金額の値と、光学文字認識部７１の読み取り結果に基づいて特定された合計購入金額の値とが一致するか否かを判別する。
これによれば、制御データによりロール紙に記録させようとした合計購入金額と、異なる合計購入金額をレシートに記録させるような改変が行われた場合であっても、その可能性があることを適切に検出できる。
特に、合計購入金額は、金銭のやり取りの基準となり、また、売り上げの算出の基準となる値であるため、不正に、レシートに記録される合計購入金額を異ならせるような改変が行われる可能性があると言えるが、このような場合に、改変が行われた可能性があることを適切に検出できる。
【００５２】
また、本実施形態では、ホストコンピューター１０が、アプリケーション実行部６１、及び、プリンタードライバー実行部６２を備えると共に、フィスカルプリンター１１が、同一性判別モジュール３０ｃを備えている。
ここで、アプリケーション実行部６１、及び、プリンタードライバー実行部６２を備えるホストコンピューター１０が、フィスカルプリンター１１等の記録装置を制御して、画像を記録する構成は、広く普及している。そして、上記によれば、フィスカルプリンター１１が同一性判別モジュール３０ｃを備えているため、同一性の判別に際し、ホストコンピューター１０とフィスカルプリンター１１との間で複雑なデータの送受信を行う必要がなく、処理効率の向上を図ることができる。
【００５３】
また、本実施形態では、ステップＳＢ６の判別の結果、各合計購入金額の値が異なる場合は、改変が行われた可能性があるとして、記録部３６によるロール紙に対する画像の記録が停止し、フィスカルプリンター１１によるレシートの発行ができない状態となる。これにより、上記のような改変が行われた場合に、改変が行われた状態で、レシートの発行が継続して行われることを防止できると共に、改変をすれば記録部３６の動作が停止するという構成を有すること自体が、当該改変に対する抑止力となる。
【００５４】
＜第４実施形態＞
次いで、第４実施形態について説明する。
図７は、本実施形態に係る電子機器１ｄの機能的構成を示すブロック図である。
なお、図７は、図５と対応した図面であり、図５と図７とで、同一の構成要素については、同一の符号を付し、その説明を省略する。
図５と、図７との比較において明らかなように、本実施形態では、フィスカルプリンター１１の管理基板１５に同一性判別モジュール３０ｃが実装されておらず、ホストコンピューター１０のホスト制御部６０は、同一性判別実行部８０ｄを備えている。同一性判別実行部８０ｄは、同一性判別モジュール３０ｃと同一の機能を有するものであり、制御データ分析部８２ｄ、光学文字認識部７１ｄ、及び、同一性判別部７２ｄを備えている。同一性判別実行部８０ｄの機能は、ホスト制御部６０のＣＰＵがプログラムを実行する等、ハードウェアとソフトウェアとの協働により実現される。
また、プリンター制御部３５は、メイン制御部２０を介することなく、直接、通信ＩＣ２３に対して信号を出力できる。
【００５５】
ある１つのレシートを発行する場合における電子機器１ｄの動作について説明すると、レシートの発行に際し、プリンタードライバー実行部６２は、当該レシートの発行に係る制御データを生成すると、当該制御データをメイン制御部２０に出力すると共に、同一性判別実行部８０ｄに出力する。この点、第３実施形態と異なっている。
プリンタードライバー実行部６２から同一性判別実行部８０ｄへの制御データの出力後、同一性判別実行部８０ｄの制御データ分析部８２ｄは、制御データを取得し、取得した制御データに基づいて、制御データによって画像としてロール紙に記録させようとした合計購入金額の値を特定する。特定の方法は、上述した制御データ分析部８２と同様である。
さらに、本実施形態では、プリンター制御部３５は、スキャナー３９の読み取り結果に基づいて、発行されるレシートに係るレシート画像データを生成し、生成したレシート画像データを、通信ＩＣ２３を介してホストコンピューター１０のホスト制御部６０に出力する。
同一性判別実行部８０ｄの光学文字認識部７１ｄは、入力されたレシート画像データに基づいて、レシートに画像として記録された合計購入金額の値を特定する。特定の方法は、上述した光学文字認識部７１の場合と同様である。
同一性判別実行部８０ｄの同一性判別部７２ｄは、制御データ分析部８２ｄにより特定された合計購入金額の値と、光学文字認識部７１ｄにより特定された合計購入金額の値とが一致するか否かを判別する。これにより、プリンター制御部３５により読み出される制御プログラムが改変されたり、また、基板上の所定の回路が改変されたりしたことを検出可能である。
【００５６】
このように、本実施形態では、ホストコンピューター１０が、同一性の判別に係る処理を実行する同一性判別実行部８０ｄを備えている。
ここで、ホストコンピューター１０のＣＰＵの処理能力の方が、フィスカルプリンター１１のＣＰＵの処理能力よりも高い場合が多く、また、同一性判別実行部８０ｄが実行する処理は、比較的複雑な処理であり、ＣＰＵに対する負荷が大きいと言える。そして、ホストコンピューター１０が、同一性判別実行部８０ｄを備えることにより、高い処理効率で、同一性の判別に係る処理を実行できる。
【００５７】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した各実施形態では、アプリケーション実行部６１が出力するアプリ出力データに係る合計購入金額の値、及び、プリンタードライバー実行部６２が出力する制御データに係る合計購入金額の値のいずれかと、レシートに実際に記録された合計購入金額の値とを比較する構成であったが、例えば、第１実施形態において、フィスカルプリンター１１に同一性判別モジュール３０を設けると共に、さらに、ホストコンピューター１０に、当該同一性判別モジュール３０と同様の機能を有する同一性判別実行部８０（第２実施形態参照）を設け、アプリ出力データに係る合計購入金額の値、及び、制御データに係る合計購入金額の値の双方と、レシートに実際に記録された合計購入金額の値とを比較するようにしてもよい。
さらに、レシートに記録された行数、または、レシートの印刷に用いられた記録紙の長さと、アプリ出力データに含まれる改行コマンドの数を比較するようにしてもよい。
さらに、比較対象を、アプリ出力データに係る合計購入金額の値、及び、制御データに係る合計購入金額の値のいずれかに切り替えることができるようにしてもよい。
また、上述の動作、特に、同一性の判別に係る動作を行わせるプログラムを外部装置の記憶媒体に記憶させて、当該外部機器と、フィスカルプリンター１１、又は、ホストコンピューターとを接続し、当該外部装置からプログラムを読み出した上述したような各種処理を実行する構成としてもよい。
【符号の説明】
【００５８】
１、１ｂ、１ｃ、１ｄ…電子機器、１０…ホストコンピューター、１１…フィスカルプリンター（記録装置）、２０…メイン制御部（制御部）、３５…プリンター制御部（制御部）、３６…記録部、３９…スキャナー（光学読取部）、６０…ホスト制御部（制御部）、６１…アプリケーション実行部、６２…プリンタードライバー実行部（記録制御部）、７１、７１ｂ、７１ｄ…光学文字認識部、７２、７２ｂ、７２ｃ、７２ｄ…同一性判別部。
【図１】
2012091413.tif 000003
【図２】
2012091413.tif 000004
【図３】
2012091413.tif 000005
【図４】
2012091413.tif 000006
【図５】
2012091413.tif 000007
【図６】
2012091413.tif 000008
【図７】
2012091413.tif 000009