説明

フィスカルプリンター

【課題】書き込み速度を低下させることなく、フィスカルメモリーに書き込まれたフィスカル情報の改竄の有無を検出できるフィスカルプリンターを提案すること。
【解決手段】フィスカル情報が書き込まれるフィスカルメモリーモジュール41は、第1メモリー411、フィスカル制御用CPU42、第2メモリー413を有する。フィスカル制御用CPU42によって、フィスカル情報が第1メモリー411に書き込まれる際に、メモリー制御用CPU412は、フィスカル情報に対応する第1ハッシュ値の第2メモリー413に書き込む。第1メモリー411からフィスカル情報を読み出す際には、フィスカル制御用CPU42は、メモリー制御用CPU412を介して第2メモリー413から第1ハッシュ値を読み出し、第1ハッシュ値と、第1メモリー411から読み出したフィスカル情報から算出した第2ハッシュ値を比較して、フィスカル情報の改竄を検出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、レシート等の印刷と共に販売取引に関するフィスカル情報をフィスカルメモリーに記憶保持する機能を備えたフィスカルプリンターに関する。
【背景技術】
【0002】
フィスカルプリンターはPOSシステムなどにおいてキャッシュレジスターのプリンターとして用いられており、レシート等を印刷すると共に、商品等の販売取引に関する販売取引に関する売上金額や課税額等の決済情報(フィスカル情報)を記憶保持する機能を備えている。特許文献1に記載のフィスカルプリンターは、フィスカル情報を記憶保持するためのフィスカルメモリーを搭載している。
【0003】
フィスカルプリンターが記憶するべきフィスカル情報は各国の法律で定められており、フィスカルメモリーに記憶保持されたフィスカル情報は税務監査用データなどとして用いられる。従って、フィスカルメモリーとしては、一旦書き込まれたフィスカル情報の消去や書き換えが行われていないことを保障するために、OTP−ROM(One Time Programmable Read Only Memory)が用いられている。
【0004】
近年、OTP−ROMは需要の低下によって入手が困難な状態となっているので、書き換え可能な不揮発性メモリーによってOTP−ROMを代替することができれば製品生産上非常に有効である。しかし、書き換え可能な不揮発性メモリーをフィスカルメモリーとして用いる場合には、フィスカルメモリーに記憶保持したフィスカル情報の消去や書き換えといった改竄が容易となる。そのため、改竄を防止する措置を講ずるか、或いは、改竄が行われた場合にその改竄を検出可能としておくことによって改竄を抑止することが必要となる。
【0005】
ここで、情報の改竄を防止する技術としては、特許文献2に記載されているように、暗号鍵を用いて情報を暗号化するものが知られている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−276593号公報
【特許文献2】特開2003−69551号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、フィスカル情報を暗号化して改竄を防止する技術では、暗号鍵が不正に利用された場合に、改竄を防止できないという問題がある。また、暗号鍵の不正使用による改竄が行われた場合には、その改竄を検出することができないので、改竄されたフィスカル情報が税務監査用データなどとして用いられてしまうという問題がある。さらに、フィスカル情報の暗号化に際してフィスカルプリンターの制御部の負荷が増加するので、不揮発性メモリーに対するフィスカル情報の書き込み速度が低下するという問題がある。
【0008】
そこで、改竄が行われた場合にその改竄を検出可能とすることによって改竄を抑止することが考えられる。ところが従来技術では、不揮発性メモリーに対する書き込み速度を低下させることなく、書き換え可能な不揮発性メモリーに書き込まれたフィスカル情報の改竄の有無を検出することができるフィスカルプリンターは提案されていない。
【0009】
本発明の課題は、この点に鑑みて、不揮発性メモリーに対する書き込み速度を低下させることなく、不揮発性メモリーに書き込まれたフィスカル情報の改竄の有無を検出することができるフィスカルプリンターを提供することにある。
【課題を解決するための手段】
【0010】
(適用例1)上記の課題を解決するために、本発明のフィスカルプリンターは、フィスカル情報の書き込みおよび読み出しが行われる不揮発性の第1メモリーと、前記フィスカル情報が前記第1メモリーに書き込まれる際に、所定のハッシュ関数を用いて算出された前記フィスカル情報に対応する第1ハッシュ値の書き込みおよび読み出しが行われる第2メモリーと、前記第1メモリーから前記フィスカル情報が読み出される際に、前記第2メモリーから読み出される前記第1ハッシュ値と、前記第1メモリーから読み出されて前記ハッシュ関数を用いて算出された前記フィスカル情報に対応する第2ハッシュ値に基づいて、前記第1メモリーから読み出された前記フィスカル情報が改竄されているか否かを判定する改竄判定部と、を備えていることを特徴とする。
【0011】
(適用例2)さらに、本発明のフィスカルプリンターは、前記フィスカル情報を記憶保持するためのフィスカルメモリーモジュールと、前記フィスカルメモリーモジュールに対して前記フィスカル情報の書き込みおよび読み出しを行なう制御部と、を有し、前記フィスカルメモリーモジュールは、前記制御部によって前記フィスカル情報の書き込みおよび読み出しが行なわれる前記第1メモリーと、前記制御部による前記第1メモリーへの書き込みを監視しているメモリー制御部と、前記メモリー制御部によって書き込みおよび読み出しが行われる不揮発性の前記第2メモリーと、を備え、前記メモリー制御部は、前記フィスカル情報が前記第1メモリーに書き込まれる際に、前記フィスカル情報に対応する前記第1ハッシュ値を前記所定のハッシュ関数を用いて算出して前記第2メモリーに書き込み、前記制御部は、前記第1メモリーから前記フィスカル情報を読み出す際に、前記メモリー制御部を介して前記第2メモリーから前記第1ハッシュ値を読み出すハッシュ値取得部と、前記第1メモリーから読み出した前記フィスカル情報に対応する前記第2ハッシュ値を前記ハッシュ関数を用いて算出するハッシュ値算出部と、前記第2ハッシュ値と前記第1ハッシュ値とに基づいて、前記第1メモリーから読み出した前記フィスカル情報が改竄されているか否かを判定する前記改竄判定部と、を備えていることを特徴とする。
【0012】
本発明によれば、フィスカル情報に改竄がない場合には、第1メモリーへの書き込み時にメモリー制御部によって第2メモリーへ書き込まれた第1ハッシュ値と、第1メモリーから読み出したフィスカル情報から制御部が算出した第2ハッシュ値とで、同じ値を得ることができる。従って、第1ハッシュ値と第2ハッシュ値とを比較することによって、第1メモリーに記憶保持されていたフィスカル情報の改竄の有無を判別できる。よって、改竄されたフィスカル情報がそのまま税務監査用データなどに用いられてしまうことを防止できる。また、制御部は、フィスカル情報を暗号化する必要がなく、直接、第1メモリーに書き込んでいるので、第1メモリーに対する書き込み速度が低下することがない。
【0013】
(適用例3)本発明において、前記メモリー制御部は、前記第1メモリーに書き込まれている前記フィスカル情報全体に基づいてハッシュ値を算出し、当該算出したハッシュ値を前記第1ハッシュ値として前記第2メモリーに書き込み、前記ハッシュ値取得部は、前記メモリー制御部を介して前記第2メモリーから前記第1ハッシュ値を取得し、前記ハッシュ値算出部は、前記第1メモリーから読み出した前記フィスカル情報全体に基づいて前記第2ハッシュ値を算出する。
【0014】
このようにすれば、常にフィスカル情報全体に基づいてハッシュ値を算出すれば良いので、ハッシュ値を算出する処理を簡素化することができ、さらに前記第1ハッシュ値は常にひとつのみのため、前記第2メモリーとして記憶容量の非常に小さなメモリーを用いることが可能となる。また、制御部によるフィスカル情報の第1メモリーに対する書き込みと並行して、メモリー制御部による第1ハッシュ値の算出および第1ハッシュ値の第2メモリーへの書き込みを行うことができる。従って、不揮発性メモリーに対する書き込み速度を低下させることがない。
【0015】
(適用例4)本発明において、前記メモリー制御部は、前記第1メモリーに追加して前記フィスカル情報が書き込みされる1単位毎に、当該追加書き込みされる1単位の前記フィスカル情報と既に前記第2メモリーに書き込まれている前記第1ハッシュ値の少なくとも2つの情報に基づいて1つのハッシュ値を算出し、当該算出したハッシュ値を最新の前記第1ハッシュ値として前記第2メモリーに書き込み、前記ハッシュ値取得部は、前記メモリー制御部を介して前記第2メモリーから最新の前記第1ハッシュ値を取得し、前記ハッシュ値算出部は、追加書き込みした前記1単位のフィスカル情報を前記第1メモリーから読み出す毎に、当該1単位のフィスカル情報と既に算出済みの前記第2ハッシュ値の少なくとも2つの情報に基づいて1つのハッシュ値を算出し、当該算出したハッシュ値を最新の前記第2ハッシュ値とする。
【0016】
このようにすれば、フィスカル情報全体に基づいてハッシュ値を算出する場合と比較して、ハッシュ値を算出する際にメモリー制御部が扱うデータ量を少なくすることができ、ハッシュ値の算出にかかる負荷を低減できる。また、制御部によるフィスカル情報の第1メモリーに対する書き込みと並行して、メモリー制御部による第1ハッシュ値の算出および第1ハッシュ値の第2メモリーへの書き込みを行うことができる。従って、不揮発性メモリーに対する書き込み速度を低下させることがない。
【0017】
(適用例5)また、本発明において、前記フィスカルメモリーモジュールは、前記第1メモリー、前記メモリー制御部および前記第2メモリーを搭載している基板を備えており、 少なくとも、前記メモリー制御部、前記第2メモリーおよび前記メモリー制御部と前記第2メモリーを電気的に接続している配線が前記基板上で樹脂により封止されていることが望ましい。
【0018】
このようにすれば、外部から第2メモリーに直接アクセスすることによって第2メモリーに書き込まれている第1ハッシュ値が書き換えられることを回避できる。
【0019】
(適用例6)また、本発明において、前記第1メモリーは、書き換え可能な不揮発性メモリーであることが望ましい。
【0020】
このようにすれば、広く流通しているフラッシュメモリーなどを利用してフィスカルメモリーモジュールを構成することができる。
【図面の簡単な説明】
【0021】
【図1】フィスカルプリンターの制御系の主要部分を示す概略ブロック図。
【図2】第1、第2メモリーのメモリー領域を説明するための説明図。
【発明を実施するための形態】
【0022】
以下に、図面を参照して、本発明を適用したフィスカルプリンターの実施の形態を説明する。
図1は本実施の形態に係るフィスカルプリンターの制御系の主要部分を示す概略ブロック図である。フィスカルプリンター1は、POSシステムのホスト側のコンピューター2に接続して用いられ、コンピューター2の側から供給される販売取引に関する印刷情報を印刷してレシートとして発行する。また、決済処理の度に、コンピューター2の側から供給される販売取引に関するフィスカル情報を記憶保持する機能を備えている。
【0023】
図1に示すように、フィスカルプリンター1は、プリンター制御回路基板3およびフィスカル制御回路基板4を備えている。プリンター制御回路基板3には、印刷動作を行うために、一般のプリンターと同様なプリンター制御機能を備えたプリンター制御用CPU31および印刷制御用のファームウェア等が記憶されている書き替え可能な不揮発性メモリーであるフラッシュメモリー32が搭載されている。
【0024】
フィスカル制御回路基板4には、フィスカル情報を記憶保持するためのフィスカルメモリーモジュール41と、フィスカルメモリーモジュール41に対するフィスカル情報の書き込みおよび読み出しを行なうフィスカル制御用CPU42(制御部)が搭載されている。フィスカル制御用CPU42には、フィスカル制御用CPU42の演算処理に用いられるRAM43が接続されている。
【0025】
フィスカルメモリーモジュール41は、フィスカル制御用CPU42によってフィスカル情報が書き込まれる第1メモリー411と、フィスカル制御用CPU42による第1メモリー411への書き込みを監視しているメモリー制御用CPU412(メモリー制御部)と、メモリー制御用CPU412によって書き込みおよび読み出しが行われる第2メモリー413を搭載している。
【0026】
第1メモリー411および第2メモリー413は、いずれもフラッシュメモリーなどの書き換え可能な不揮発性メモリーである。そして、第2メモリー413は、後述するように、第1メモリー411よりも容量を小さくすることができる。メモリー制御用CPU412は、フィスカル制御用CPU42によってフィスカル情報が第1メモリー411に書き込まれる際に、フィスカル情報に対応する第1ハッシュ値を算出して第2メモリー413に書き込む。
【0027】
ここで、メモリー制御用CPU412、第2メモリー413およびメモリー制御用CPU412と第2メモリー413を電気的に接続している配線は、図1に2点鎖線で示すように、フィスカル制御回路基板4上において、例えばエポキシ樹脂などで封止されている。この封止により、外部から第2メモリー413に直接アクセスすることによって第2メモリー413に書き込まれている第1ハッシュ値が書き換えられることが防止されている。
【0028】
フィスカル制御用CPU42は、ホスト側のコンピューター2との間で情報の送受信を行うためのインターフェース機能およびプリンター制御用CPU31との間で情報の送受信を行うためのインターフェース機能を備えている。また、第1メモリー411からフィスカル情報を読み出す際に、メモリー制御用CPU412を介して第2メモリー413から第1ハッシュ値を取得するハッシュ値取得部421を備えている。さらに、第1メモリー411から読み出したフィスカル情報に対応する第2ハッシュ値を算出するハッシュ値算出部422を備えている。そしてさらに、第2ハッシュ値と第1ハッシュ値とに基づいて第1メモリー411から読み出したフィスカル情報が改竄されているか否かを判定する改竄判定部423を備えている。
【0029】
次に、フィスカル制御回路基板4には、レシート内容を記憶保持するためのEJ(電子ジャーナル)メモリー44およびEJメモリー制御用CPU45が搭載されている。EJメモリー制御用CPU45はフィスカル制御用CPU42との間で通信を行い、フィスカルプリンター1によるレシート発行毎に、レシート内容に関するテキスト情報を受け取り、受け取った情報をEJメモリー44に記憶保持する。
【0030】
ここで、フィスカル制御回路基板4は、プリンター本体から取り外し可能な状態に取り付けられている。そして、プリンター制御回路基板3に対しては着脱可能なコネクター46を介して電気的に接続されている。コネクター46は、プリンター制御回路基板3に搭載されているプリンター側コネクター端子部33と、フィスカル制御回路基板4に搭載されているフィスカル側コネクター端子部461とを備え、これらが取り外し可能な状態で接続されている。従って、正当な権限のある担当者が、フィスカルプリンター1からフィスカル制御回路基板4を取り外し、そこに搭載されているフィスカルメモリーモジュール41の記憶データを取得することが可能である。
【0031】
(フィスカル情報の書き込みおよび読み出し)
(第1実施形態)
ここで第1実施形態に係るフィスカル情報の書き込みおよび読み出しについて図2を参照して説明する。図2は、第1、第2メモリーのメモリー領域を説明するための説明図である。詳しくは、図2(a)は第1メモリーのメモリー領域を説明し、図2(b)は第2メモリーのメモリー領域を説明するための図である。フィスカル制御用CPU42がフィスカルメモリーモジュール41の第1メモリー411にフィスカル情報を書き込む場合には(ステップST1)、この書き込みを監視しているメモリー制御用CPU412が、第1メモリー411に書き込まれているフィスカル情報全体に基づいて第1ハッシュ値を算出して第2メモリー413に書き込む(ステップST2)。
【0032】
より詳細には、第1メモリー411は、図2(a)に示すように、フィスカル制御用CPU42により、メモリー領域411a、411b・・に順次フィスカル情報が書き込まれていく。そして、メモリー制御用CPU412は、フィスカル制御用CPU42により第1メモリー411に新規にフィスカル情報が書き込まれた際、第1メモリー411内に書き込まれているフィスカル情報全体に基づいて第1ハッシュ値を算出し、このハッシュ値を第2メモリー413に書き込む。ここで、第1メモリー411のメモリー領域411a、411b・・は、固定値長でも良いし、順次書き込まれるフィスカル情報量に応じて可変としても良い。
【0033】
本例では、ハッシュ関数としてSHA−1を使用し、メモリー制御用CPU412によって算出されるフィスカル情報全体に基づいて第1ハッシュ値は20バイトの固定長となる。従って、第2メモリー413の容量はわずか20バイト分あれば足りるため、第2メモリー413には非常に小容量のメモリーを用いることができる。
【0034】
ここで、メモリー制御用CPU412は、常にメモリー領域411a、411b・・書き込まれたフィスカル情報全体に基づいて第1ハッシュ値を算出すれば良いので、第1ハッシュ値を算出する処理を簡素化することができる。また、メモリー制御用CPU412による第1ハッシュ値の算出および第1ハッシュ値の第2メモリー413への書き込みは、フィスカル制御用CPU42によるフィスカル情報の第1メモリー411への書き込みと並行して行うことができる。さらに、フィスカル制御用CPU42は、後述のように、本実施形態によりフィスカル情報の改竄の有無を検出することができるので、フィスカル情報を暗号化する必要がなく、直接、第1メモリー411に書き込んでいる。従って、フィスカル制御用CPU42による第1メモリー411へのフィスカル情報の書き込み速度は低下しない。
【0035】
次に、フィスカル制御用CPU42が第1メモリー411に記憶保持されているフィスカル情報を読み出す際には(ステップST3)、ハッシュ値取得部421が、メモリー制御用CPU412を介して、第1ハッシュ値を第2メモリー413から取得する(ステップST4)。また、ハッシュ値算出部422が第1メモリー411のフィスカル情報全体に基づいて第2ハッシュ値を、第1ハッシュ値を求める際に利用したハッシュ関数と同一のハッシュ関数を用いて算出する。そしてその後、改竄判定部423は第1ハッシュ値と第2ハッシュ値とを比較して第1メモリー411から読み出したフィスカル情報が改竄されているか否かを判定する(ステップST5)。
【0036】
すなわち、フィスカル情報に改竄がない場合には、第1メモリー411への書き込み時にメモリー制御用CPU412によって第2メモリー413へ書き込まれた第1ハッシュ値と、第1メモリー411から読み出したフィスカル情報からフィスカル制御用CPU42が算出した第2ハッシュ値とが、同じ値となる。一方、フィスカル情報に改竄がある場合には、第1ハッシュ値と第2ハッシュ値とが異なる。従って、第1ハッシュ値と第2ハッシュ値に基づいて、第1メモリー411に記憶保持されていたフィスカル情報の改竄の有無を判別できる。よって、改竄されたフィスカル情報がそのまま税務監査用データなどに用いられてしまうことを防止できる。
【0037】
(第2実施形態)
次いで、第2実施形態に係るフィスカル情報の書き込みおよび読み出しについて同じく図2を参照して説明する。なお、第1実施形態と同一の構成等については、同一の番号を付与し、重複する説明は省略する。
【0038】
フィスカル制御用CPU42がフィスカルメモリーモジュール41の第1メモリー411にフィスカル情報を書き込む操作(ステップST1)は、前述の第1実施形態と同様である。一方、この書き込みを監視しているメモリー制御用CPU412は、第1メモリー411に追加してフィスカル情報が書き込みされる毎に、追加書き込みされる1単位(411a、411b、・・のいずれかひとつ)のフィスカル情報と既に第2メモリー413に書き込まれている第1ハッシュ値の少なくとも2つの情報に基づいてひとつのハッシュ値を算出する。そして、算出されたハッシュ値を最新の前記第1ハッシュ値として第2メモリー413に書き込む(ステップST2)。
【0039】
より詳細には、第1メモリー411は、図2(a)に示すように、フィスカル制御用CPU42によりメモリー領域411a、411b・・に順次フィスカル情報が書き込まれていく。そして、メモリー制御用CPU412は、フィスカル制御用CPU42により第1メモリー411に新規にフィスカル情報が書き込まれた際、現在第2メモリー413に書き込まれている第1ハッシュ値を読み出し、その第1ハッシュ値と新規に第1メモリー411に書き込まれたフィスカル情報の両者に基づくハッシュ値を算出する。そして、算出したハッシュ値を最新の第1ハッシュ値として第2メモリー413に書き込む。
【0040】
ここで、第1メモリー411のメモリー領域411a、411b・・は、固定値長でも良いし、順次書き込まれるフィスカル情報量に応じて可変としても良い。さらに、第2メモリー413は、図2(b)に示すように2つのメモリー領域(413x、413y)に分割して、一方を最新の第1ハッシュ値の記憶領域とし、他方をメモリー制御用CPU412が最新の第1ハッシュ値を算出するための演算処理に用いても良い。一方、演算処理に用いるメモリーは、第2メモリー413を用いないでメモリー制御用CPU412が内蔵するメモリーを用いることもできる。
【0041】
また、本例においても、ハッシュ関数としてSHA−1を使用すれば、最新の第1ハッシュ値は20バイトの固定長となるので、第2メモリー413には小容量のメモリーを用いることができる。
【0042】
ここで、メモリー制御用CPU412は、メモリー領域411a、411b・・の1つに新規に書き込まれたフィスカル情報と第2メモリー413に書き込まれている現在の第1ハッシュ値の両者に基づいて新規の第1ハッシュ値を算出するので、フィスカル情報全体に基づいてハッシュ値を算出する場合と比較して扱う情報量が少ないため、メモリー制御用CPU412にかかる負荷が低減する。また、第1の実施形態と同様に、メモリー制御用CPU412による第1ハッシュ値の算出および第1ハッシュ値の第2メモリー413への書き込みは、フィスカル制御用CPU42によるフィスカル情報の第1メモリー411への書き込みと並行して行うことができる。さらに、フィスカル制御用CPU42は、第1実施形態と同様に、フィスカル情報を暗号化する必要がなく、直接、第1メモリー411に書き込んでいる。従って、フィスカル制御用CPU42による第1メモリー411へのフィスカル情報の書き込み速度は低下しない。
【0043】
次に、フィスカル制御用CPU42が第1メモリー411に記憶保持されているフィスカル情報を読み出す際には(ステップST3)、ハッシュ値取得部421が、メモリー制御用CPU412を介して、第1ハッシュ値を第2メモリー413から取得する(ステップST4)。また、ハッシュ値算出部422は、第1メモリー411のメモリー領域411a、411b・・から、最初に書き込まれたフィスカル情報を読み出し第2ハッシュ値を算出する。その後、書き込まれた順に順次ひとつずつフィスカル情報を読み出し、その度に、前回算出した第2ハッシュ値と新規に読み出したフィスカル情報の両者に基づき新しい第2ハッシュ値を算出することを、第1メモリー411に記憶された全てのフィスカル情報が読み出されるまで繰り返す。そしてその後、改竄判定部423は第1ハッシュ値と第2ハッシュ値とを比較して第1メモリー411から読み出したフィスカル情報が改竄されているか否かを判定する(ステップST5)。
【0044】
すなわち、フィスカル情報に改竄がない場合には、第1メモリー411への書き込み時にメモリー制御用CPU412によって第2メモリー413へ書き込まれた第1ハッシュ値と、第1メモリー411から読み出したフィスカル情報からフィスカル制御用CPU42が算出した第2ハッシュ値とが、同じ値となる。一方、フィスカル情報に改竄がある場合には、第1ハッシュ値と第2ハッシュ値とが異なる。従って、第1ハッシュ値と第2ハッシュ値に基づいて、第1メモリー411に記憶保持されていたフィスカル情報の改竄の有無を判別できる。よって、改竄されたフィスカル情報がそのまま税務監査用データなどに用いられてしまうことを防止できる。
【0045】
なお、本発明は上述した実施形態に限定されず、上述した実施形態に種々の変更や改良などを加えることが可能である。変形例を以下に述べる。
【0046】
(変形例)また、第1および第2の実施形態において、フィスカル制御用CPU42がフィスカルメモリーモジュール41に対する読み書きを行う権限を備えているか否かを、フィスカルメモリーモジュール41の側から判断するために、フィスカル制御用CPU42がフィスカルメモリーモジュール41に書き込むフィスカル情報にデジタルシグネチャを付加するようにしてもよい。この場合には、メモリー制御用CPU412がデジタルシグネチャに基づいてフィスカル制御用CPU42が読み書きを行う権限を備えているか否かを認証すればよい。
【0047】
1…フィスカルプリンター、2…コンピューター、3…プリンター制御回路基板、4…フィスカル制御回路基板、31…プリンター制御用CPU、32…フラッシュメモリー、33…プリンター側コネクター端子部、41…フィスカルメモリーモジュール、42…フィスカル制御用CPU(制御部)、43…RAM、44…EJメモリー、45…EJメモリー制御用CPU、46…コネクター、411…第1メモリー、411a,411b…第1メモリーのメモリー領域、412…メモリー制御用CPU(メモリー制御部)、413…第2メモリー、413x,413y…第2実施形態における第2メモリーのメモリー領域、421…ハッシュ値取得部、422…ハッシュ値算出部、423…改竄判定部、461…フィスカル側コネクター端子部。

【特許請求の範囲】
【請求項1】
フィスカル情報の書き込みおよび読み出しが行われる不揮発性の第1メモリーと、
前記フィスカル情報が前記第1メモリーに書き込まれる際に、所定のハッシュ関数を用いて算出された前記フィスカル情報に対応する第1ハッシュ値の書き込みおよび読み出しが行われる第2メモリーと、
前記第1メモリーから前記フィスカル情報が読み出される際に、前記第2メモリーから読み出される前記第1ハッシュ値と、前記第1メモリーから読み出されて前記ハッシュ関数を用いて算出された前記フィスカル情報に対応する第2ハッシュ値に基づいて、前記第1メモリーから読み出された前記フィスカル情報が改竄されているか否かを判定する改竄判定部と、
を備えていることを特徴とするフィスカルプリンター。
【請求項2】
請求項1において、
前記フィスカル情報を記憶保持するためのフィスカルメモリーモジュールと、
前記フィスカルメモリーモジュールに対して前記フィスカル情報の書き込みおよび読み出しを行なう制御部と、を有し、
前記フィスカルメモリーモジュールは、
前記制御部によって前記フィスカル情報の書き込みおよび読み出しが行なわれる前記第1メモリーと、
前記制御部による前記第1メモリーへの書き込みを監視しているメモリー制御部と、
前記メモリー制御部によって書き込みおよび読み出しが行われる不揮発性の前記第2メモリーと、を備え、
前記メモリー制御部は、前記フィスカル情報が前記第1メモリーに書き込まれる際に、前記フィスカル情報に対応する前記第1ハッシュ値を前記所定のハッシュ関数を用いて算出して前記第2メモリーに書き込み、
前記制御部は、
前記第1メモリーから前記フィスカル情報を読み出す際に、前記メモリー制御部を介して前記第2メモリーから前記第1ハッシュ値を読み出すハッシュ値取得部と、
前記第1メモリーから読み出した前記フィスカル情報に対応する前記第2ハッシュ値を前記ハッシュ関数を用いて算出するハッシュ値算出部と、
前記第2ハッシュ値と前記第1ハッシュ値とに基づいて、前記第1メモリーから読み出した前記フィスカル情報が改竄されているか否かを判定する前記改竄判定部と、
を備えていることを特徴とするフィスカルプリンター。
【請求項3】
請求項2において、
前記メモリー制御部は、前記第1メモリーに書き込まれている前記フィスカル情報全体に基づいてハッシュ値を算出し、当該算出したハッシュ値を前記第1ハッシュ値として前記第2メモリーに書き込み、
前記ハッシュ値取得部は、前記メモリー制御部を介して前記第2メモリーから前記第1ハッシュ値を取得し、
前記ハッシュ値算出部は、前記第1メモリーから読み出した前記フィスカル情報全体に基づいて前記第2ハッシュ値を算出することを特徴とするフィスカルプリンター。
【請求項4】
請求項2において、
前記メモリー制御部は、前記第1メモリーに追加して前記フィスカル情報が書き込みされる1単位毎に、当該追加書き込みされる1単位の前記フィスカル情報と既に前記第2メモリーに書き込まれている前記第1ハッシュ値の少なくとも2つの情報に基づいて1つのハッシュ値を算出し、当該算出したハッシュ値を最新の前記第1ハッシュ値として前記第2メモリーに書き込み、
前記ハッシュ値取得部は、前記メモリー制御部を介して前記第2メモリーから最新の前記第1ハッシュ値を取得し、
前記ハッシュ値算出部は、追加書き込みした前記1単位のフィスカル情報を前記第1メモリーから読み出す毎に、当該1単位のフィスカル情報と既に算出済みの前記第2ハッシュ値の少なくとも2つの情報に基づいて1つのハッシュ値を算出し、当該算出したハッシュ値を最新の前記第2ハッシュ値とすることを特徴とするフィスカルプリンター。
【請求項5】
請求項2ないし4のうちのいずれかの項において、
前記フィスカルメモリーモジュールは、前記第1メモリー、前記メモリー制御部および前記第2メモリーを搭載している基板を備えており、
少なくとも、前記メモリー制御部、前記第2メモリーおよび前記メモリー制御部と前記第2メモリーを電気的に接続している配線が前記基板上で樹脂により封止されていることを特徴とするフィスカルプリンター。
【請求項6】
請求項1ないし5のうちのいずれかの項において、
前記第1メモリーは、書き換え可能な不揮発性メモリーであることを特徴とするフィスカルプリンター。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2012−218345(P2012−218345A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−87993(P2011−87993)
【出願日】平成23年4月12日(2011.4.12)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】