(57)【要約】      （修正有）【課題】通行券の改竄の有無を検出することができる発券機、電子署名生成器、料金計算機及び判定器を提供する。【解決手段】発券機２０は、秘密鍵記憶部２０３１と、ハッシュ値算出部２０３３と、電子署名生成部２０３４と、出力部２０４とを持つ。秘密鍵記憶部２０３１は、秘密鍵を記憶する。ハッシュ値算出部２０３３は、入口に関する情報を含む入口情報にハッシュ関数を用いることによってハッシュ値を算出する。電子署名生成部２０３４は、前記ハッシュ値及び前記秘密鍵に基づいて電子署名を生成する。出力部２０４は、生成された電子署名と、前記入口情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する。【選択図】図３
2016187146.tif 000002
【特許請求の範囲】
【請求項１】
秘密鍵を記憶する秘密鍵記憶部と、
入口に関する情報を含む入口情報にハッシュ関数を用いることによってハッシュ値を算出するハッシュ値算出部と、
前記ハッシュ値及び前記秘密鍵に基づいて電子署名を生成する電子署名生成部と、
生成された電子署名と、前記入口情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する出力部と、
を備える発券機。
【請求項２】
前記出力部は、前記電子署名と、平文の前記入口情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する、請求項１に記載の発券機。
【請求項３】
前記出力部は、前記電子署名と、平文の前記入口情報と、前記秘密鍵の対となる公開鍵を識別するための識別情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する、請求項２に記載の発券機。
【請求項４】
秘密鍵を記憶する秘密鍵記憶部と、
入口に関する情報を含む入口情報にハッシュ関数を用いることによってハッシュ値を算出するハッシュ値算出部と、
前記ハッシュ値と、前記秘密鍵とに基づいて電子署名を生成する電子署名生成部と、
を備える電子署名生成器。
【請求項５】
発券機に記憶された秘密鍵、及び入口に関する情報を含む入口情報にハッシュ関数を用いて算出されたハッシュ値に基づいて生成された電子署名と、前記入口情報をコード化したコード情報が印刷されて発券された通行券に印刷されている前記コード情報を読み取る読取部と、
前記発券機に記憶されている秘密鍵に対応する公開鍵を発券機毎に記憶する公開鍵束情報記憶部と、
前記公開鍵を用いて、前記コード情報に含まれる電子署名を復号することによって、前記通行券の正当性を判定する判定器と、
前記通行券が正当である場合に、前記入口情報に基づいて通行料金を算出する料金計算部と、
を備える料金計算機。
【請求項６】
前記判定器は、前記公開鍵を用いて、前記コード情報に含まれる電子署名を復号することによって前記ハッシュ値を復元し、前記コード情報に含まれる入口情報にハッシュ関数を用いることによってハッシュ値を算出し、復元された前記ハッシュ値と、算出された前記ハッシュ値とが一致する場合に前記通行券が正当あると判定し、復元された前記ハッシュ値と、算出された前記ハッシュ値とが一致しない場合に前記通行券が不当あると判定する、請求項５に記載の料金計算機。
【請求項７】
前記公開鍵束情報記憶部に記憶されている前記公開鍵のうち、消去対象となる公開鍵を消去する消去部をさらに備える、請求項５記載の料金計算機。
【請求項８】
発券機に記憶された秘密鍵、及び入口に関する情報を含む入口情報にハッシュ関数を用いて算出されたハッシュ値に基づいて生成された電子署名と、前記入口情報をコード化したコード情報が印刷されて発券された通行券に印刷されている前記コード情報に基づいて、前記発券機に記憶されている秘密鍵に対応する公開鍵を発券機毎に記憶する公開鍵束情報記憶部から取得された前記公開鍵を用いて、前記コード情報に含まれる電子署名を復号することによって前記ハッシュ値を復元する復号部と、
前記コード情報に含まれる前記入口情報に、ハッシュ関数を用いることによってハッシュ値を算出するハッシュ値算出部と、
復元された前記ハッシュ値と、算出された前記ハッシュ値とに基づいて前記通行券の正当性を判定する判定部と、
を備える判定器。
【請求項９】
前記判定部は、復元された前記ハッシュ値と、算出された前記ハッシュ値とが一致する場合に前記通行券が正当あると判定し、復元された前記ハッシュ値と、算出された前記ハッシュ値とが一致しない場合に前記通行券が不当あると判定する、請求項８に記載の判定器。
【請求項１０】
前記公開鍵束情報記憶部に記憶されている前記公開鍵のうち、消去対象となる公開鍵を消去する消去部をさらに備える、請求項８に記載の判定器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、発券機、電子署名生成器、料金計算機及び判定器に関する。
【背景技術】
【０００２】
従来、高速道路などの有料道路では通行券が利用されている。この通行券は、有料道路の入口に設置された発券機により発券される。発券機は、磁気やバーコードなどを利用して、入口情報を記録した通行券を発券する。有料道路の出口に設置された料金収受機は、通行券に記録された入口情報を読み取ることによって自動的に通行料金を算出する。この際、料金収受機は、通行券に記録されている入口情報と、通行券そのものとが正しいものであるとして通行料金を算出する。そのため、入口情報が改竄された場合には、料金収受機で正しい通行料金を算出することができない。
しかしながら、従来の方法では、入口から出口までの間に通行券に記録された入口情報が改竄された場合、料金収受機で通行券の改竄を検出することができない場合があった。なお、このような問題は、有料道路に限らず、入口情報が記録された通行券に基づいて入口から出口までの距離に応じた通行料金が算出される場面全てに共通する問題である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−００３３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、通行券の改竄の有無を検出することができる発券機、電子署名生成器、料金計算機及び判定器を提供することである。
【課題を解決するための手段】
【０００５】
実施形態の発券機は、秘密鍵記憶部と、ハッシュ値算出部と、電子署名生成部と、出力部とを持つ。秘密鍵記憶部は、秘密鍵を記憶する。ハッシュ値算出部は、入口に関する情報を含む入口情報にハッシュ関数を用いることによってハッシュ値を算出する。電子署名生成部は、前記ハッシュ値及び前記秘密鍵に基づいて電子署名を生成する。出力部は、生成された電子署名と、前記入口情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する。
【図面の簡単な説明】
【０００６】
【図１】実施形態の通行券判定システム１００のシステム構成を示す図。
【図２】非対称鍵生成装置１０の機能構成を表す概略ブロック図。
【図３】発券機２０の機能構成を表す概略ブロック図。
【図４】発券機２０によって発券される通行券の一例を示す図。
【図５】料金計算機３０の機能構成を表す概略ブロック図。
【図６】公開鍵束テーブルの一例を示す図。
【図７】発券機２０の処理の流れを示すフローチャート。
【図８】料金計算機３０の処理の流れを示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、実施形態の発券機、電子署名生成器、料金計算機及び判定器を、図面を参照して説明する。
図１は、実施形態の通行券判定システム１００のシステム構成を示す図である。
通行券判定システム１００は、入口情報が記録された通行券に基づいて入口から出口までの距離に応じた通行料金が算出される場面に適用される。通行券判定システム１００が適用される場面としては、対距離制が利用されている場面を対象とする。なお、本実施形態では、通行券判定システム１００が、高速道路などの有料道路に適用される場合を例に説明する。
通行券判定システム１００は、非対称鍵生成装置１０、複数台の発券機２０−１〜２０−Ｍ及び複数台の料金計算機３０−１〜３０−Ｎを備える。ここで、Ｍ及びＮは２以上の整数である。なお、以下の説明では、発券機２０−１〜２０−Ｍについて特に区別しない場合には発券機２０と記載する。また、以下の説明では、料金計算機３０−１〜３０−Ｎについて特に区別しない場合には料金計算機３０と記載する。
【０００８】
非対称鍵生成装置１０は、ＲＳＡ（Rivest Shamir Adleman）暗号方式や楕円曲線暗号方式などの公開鍵暗号化方式によって公開鍵及び秘密鍵を生成する。非対称鍵生成装置１０は、発券機２０毎に異なる公開鍵及び秘密鍵を生成する。非対称鍵生成装置１０は、製造工場やセキュリティ管理がなされた場所に設けられる。セキュリティ管理がなされた場所とは、ビルのような機密性の高い建物内に２重、３重のセキュリティが設けられている場所である。非対称鍵生成装置１０は、生成した秘密鍵を発券機２０に登録する。また、非対称鍵生成装置１０は、生成した公開鍵に基づいて公開鍵束テーブルを生成する。公開鍵束テーブルには、公開鍵に関する情報が記録される。非対称鍵生成装置１０は、生成した公開鍵束テーブルの情報を料金計算機３０に送信する。
【０００９】
発券機２０は、有料道路の入口付近に設けられる。発券機２０は、登録された秘密鍵を用いて電子署名を生成し、生成した電子署名、入口情報などを印刷した通行券を発券する。入口情報には、例えば発券機２０が設置されている場所、入口ゲート番号、日時及び通し番号などの情報が含まれる。発券機２０は、電子署名を生成する電子署名生成器を備える。電子署名生成器は、秘密鍵を記憶する。
料金計算機３０は、有料道路の出口付近に設けられる。料金計算機３０は、非対称鍵生成装置１０から送信された公開鍵束テーブルの情報に含まれる公開鍵を用いて通行券を復号することによって通行券の正当性を判定する。料金計算機３０は、通行券が正当である場合に入口情報で示される場所から自装置が備えられている場所までの距離に応じた通行料金を算出する。料金計算機３０は、通行券の正当性を判定する判定器を備える。
【００１０】
図２は、非対称鍵生成装置１０の機能構成を表す概略ブロック図である。
非対称鍵生成装置１０は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、鍵生成プログラムを実行する。鍵生成プログラムの実行によって、非対称鍵生成装置１０は、鍵生成部１０１、生成器識別情報保存部１０２、登録部１０３、公開鍵束生成部１０４を備える装置として機能する。なお、非対称鍵生成装置１０の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。また、鍵生成プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、鍵生成プログラムは、電気通信回線を介して送受信されてもよい。
【００１１】
鍵生成部１０１は、発券機２０毎に異なる公開鍵及び秘密鍵の組を生成する。
生成器識別情報保存部１０２は、発券機２０が備える電子署名生成器の識別情報（以下、「生成器識別情報」という。）を保存する。例えば、生成器識別情報保存部１０２は、生成器識別情報と、電子署名生成器を備える発券機２０の情報とを対応付けて保存する。生成器識別情報保存部１０２が保存する生成器識別情報毎に、異なる公開鍵及び秘密鍵の組合せが生成される。すなわち、各生成器識別情報で同じ公開鍵及び秘密鍵の組合せは存在しない。そのため、生成器識別情報は、公開鍵及び秘密鍵の組合せを識別するための識別情報としても利用される。
登録部１０３は、鍵生成部１０１が生成した秘密鍵を発券機２０に登録する。その後、登録部１０３は、秘密鍵を登録した発券機２０の生成器識別情報と、秘密鍵の対となる公開鍵の情報とを公開鍵束生成部１０４に通知する。登録部１０３は、通知後、登録した秘密鍵の情報を自装置から削除する。
【００１２】
公開鍵束生成部１０４は、鍵生成部１０１が生成した公開鍵と、生成器識別情報とに基づいて公開鍵束テーブルを生成する。より具体的には、まず、公開鍵束生成部１０４は、登録部１０３から通知された公開鍵の情報と、通知された生成器識別情報とを組み合わせる。次に、公開鍵束生成部１０４は、上記処理を発券機２０の数だけ実行する。そして、公開鍵束生成部１０４は、各組合せを記録することによって公開鍵束テーブルを生成する。公開鍵束生成部１０４は、生成した公開鍵テーブルを、不図示の通信部を介して料金計算機３０に送信する。
【００１３】
図３は、発券機２０の機能構成を表す概略ブロック図である。
発券機２０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、発券プログラムを実行する。発券プログラムの実行によって、発券機２０は、入力部２０１、入口情報出力部２０２、電子署名生成器２０３、出力部２０４を備える装置として機能する。なお、発券機２０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、発券プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、発券プログラムは、電気通信回線を介して送受信されてもよい。
【００１４】
入力部２０１は、非対称鍵生成装置１０が生成した秘密鍵の入力を受け付ける。
入口情報出力部２０２は、所定のタイミングで入口情報を出力する。所定のタイミングとは、例えば発券機２０に通行券の発券の指示がなされたタイミングであってもよいし、不図示のセンサから車両を検知したことを通知されたタイミングであってもよい、その他のタイミングであってもよい。
【００１５】
電子署名生成器２０３は、電子署名を生成する。電子署名生成器２０３は、秘密鍵記憶部２０３１、識別情報記憶部２０３２、ハッシュ値算出部２０３３及び電子署名生成部２０３４を備える。
秘密鍵記憶部２０３１は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。秘密鍵記憶部２０３１は、入力部２０１に入力された秘密鍵を記憶する。
識別情報記憶部２０３２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。識別情報記憶部２０３２は、生成器識別情報を記憶する。
【００１６】
ハッシュ値算出部２０３３は、入口情報出力部２０２から出力された入口情報と、識別情報記憶部２０３２に記憶されている生成器識別情報とに基づいて演算を行う。具体的には、ハッシュ値算出部２０３３は、入口情報と識別情報とを加算した情報に、ハッシュ関数を用いることによってハッシュ値を算出する。
電子署名生成部２０３４は、ハッシュ値算出部２０３３によって算出されたハッシュ値を、秘密鍵記憶部２０３１に記憶されている秘密鍵を使用して暗号化することによって電子署名を生成する。暗号化には、ＲＳＡ暗号方式や楕円曲線暗号方式などの公開鍵暗号化方式が用いられてもよい。
【００１７】
出力部２０４は、通行券を発券する。具体的には、まず出力部２０４は、入口情報と、電子署名と、生成器識別情報とをコード化（例えば、１次元バーコード化又は２次元コード（例えばＱＲコード（登録商標））化）する。次に、出力部２０４は、コード化した情報（以下、「コード情報」という。）を通行券に印刷する。そして、出力部２０４は、コード情報が印刷された通行券を発券する。
【００１８】
図４は、発券機２０によって発券される通行券の一例を示す図である。
図４に示されるように、発券機２０によって発券される通行券４１にはコード情報４２が印刷される。図４では、コード情報４２として、１次元バーコードを例に説明しているが、２次元バーコードであってもよい。コード情報４２には、平文の生成器識別情報と、平文の入口情報と、電子署名とが含まれる。通行券４１には、コード情報４２の他に、生成器識別情報及び入口情報が文字として印刷されていてもよい。
【００１９】
図５は、料金計算機３０の機能構成を表す概略ブロック図である。
料金計算機３０は、バスで接続されたＣＰＵやメモリや補助記憶装置などを備え、検定プログラムを実行する。検定プログラムの実行によって、料金計算機３０は、読取部３０１、公開鍵束情報記憶部３０２、取得部３０３、判定器３０４、料金計算部３０５、ログ記録部３０６を備える装置として機能する。なお、料金計算機３０の各機能の全て又は一部は、ＡＳＩＣやＰＬＤやＦＰＧＡ等のハードウェアを用いて実現されてもよい。また、検定プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。また、検定プログラムは、電気通信回線を介して送受信されてもよい。
【００２０】
読取部３０１は、通行券に印刷されているコード情報を読み取る。読取部３０１は、読み取ったコード情報を取得部３０３、判定器３０４及びログ記録部３０６に出力する。
公開鍵束情報記憶部３０２は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。公開鍵束情報記憶部３０２は、非対称鍵生成装置１０が生成した公開鍵束テーブルを記憶する。公開鍵束テーブルは、料金計算機３０の設置時に公開鍵束情報記憶部３０２に記憶されてもよいし、ネットワークを介して定期的に公開鍵束情報記憶部３０２に記憶されてもよいし、ＵＳＢ（Universal Serial Bus）などの記憶媒体から公開鍵束情報記憶部３０２に記憶されてもよいし、その他の方法で公開鍵束情報記憶部３０２に記憶されてもよい。
【００２１】
図６は、公開鍵束テーブルの一例を示す図である。
公開鍵束テーブルは、公開鍵に関する情報を表すレコードを有する。レコードは、生成器識別情報及び公開鍵の各値を有する。生成器識別情報の値は、秘密鍵が登録された発券機２０が備える電子署名生成器２０３の識別情報を表す。なお、生成器識別情報は、秘密鍵及び公開鍵の組合せ毎に異なる生成器識別情報が存在する。つまり、生成器識別情報は、公開鍵及び秘密鍵を識別するための識別情報としても利用される。公開鍵の値は、同じレコードの生成器識別情報で特定される電子署名生成器２０３を備える発券機２０に登録された秘密鍵に対応する公開鍵を表す。
【００２２】
図６に示される例では、公開鍵束テーブルには複数の生成器識別情報が記録されている。これらの生成器識別情報は、“ＳＯＣＮＯ１”、“ＳＯＣＮＯ２”である。図６において、公開鍵束テーブルの最上段に記録されているレコードは、生成器識別情報の値が“ＳＯＣＮＯ１”、公開鍵の値が“ＡＡＡ”である。すなわち、生成器識別情報“ＳＯＣＮＯ１”で特定される電子署名生成器２０３を備える発券機２０に登録された秘密鍵に対応する公開鍵が“ＡＡＡ”であることが表されている。このような場合、生成器識別情報“ＳＯＣＮＯ１”は、公開鍵“ＡＡＡ”を識別するための識別情報として利用される。
【００２３】
図５に戻って、料金計算機３０の説明を続ける。
取得部３０３は、公開鍵束テーブルを参照して、読み取られたコード情報に含まれる平文の生成器識別情報に対応付けられている公開鍵を取得する。
判定器３０４は、通行券の正当性を判定する。判定器３０４は、復号部３０４１、ハッシュ値算出部３０４２及び判定部３０４３を備える。
復号部３０４１は、取得部３０３によって取得された公開鍵を用いて、読み取られたコード情報に含まれる電子署名を復号する。この処理によって、復号部３０４１はハッシュ値を復元する。
【００２４】
ハッシュ値算出部３０４２は、読み取られたコード情報に含まれる平文の生成器識別情報と、平文の入口情報とに基づいてハッシュ値を算出する。例えば、ハッシュ値算出部３０４２は、入口情報と識別情報とを加算した情報に、ハッシュ関数を用いることによってハッシュ値を算出する。
判定部３０４３は、復号部３０４１によって復元されたハッシュ値と、ハッシュ値算出部３０４２が算出したハッシュ値とが一致するか否か判定する。復元されたハッシュ値と、算出されたハッシュ値とが一致する場合、判定部３０４３は通行券が正当な通行券であると判定する。つまり、判定部３０４３は、通行券が改竄されていないと判定する。この場合、判定部３０４３は、料金計算部３０５に通行料金の計算を行うように指示する。一方、復元されたハッシュ値と、算出されたハッシュ値とが一致しない場合、判定部３０４３は通行券が不当な通行券であると判定する。つまり、判定部３０４３は、通行券が改竄されていると判定する。この場合、判定部３０４３は改竄されていることを通知する。
【００２５】
料金計算部３０５は、判定部３０４３からの指示に応じて通行料金の計算を行う。例えば、料金計算部３０５は、入口情報で示される場所（入口）から自装置が設置されている場所（出口）までの距離に応じた通行料金を算出する。
ログ記録部３０６は、磁気ハードディスク装置や半導体記憶装置などの記憶装置を用いて構成される。ログ記録部３０６は、通行券に含まれるコード情報をログとして記録する。ログとは、なんらかの履歴を表す情報であり、例えば通行券の履歴を表す情報である。なお、ログ記録部３０６は、通行券毎に、判定部３０４３の判定結果や公開鍵の情報を通行券の履歴に含めて記録してもよい。
【００２６】
図７は、発券機２０の処理の流れを示すフローチャートである。
入口情報出力部２０２は、所定のタイミングで入口情報を出力する（ステップＳ１０１）。ハッシュ値算出部２０３３は、入口情報と、識別情報記憶部２０３２に記憶されている生成器識別情報とを加算した情報に、ハッシュ関数を用いてハッシュ値を算出する（ステップＳ１０２）。電子署名生成部２０３４は、算出されたハッシュ値と、秘密鍵記憶部２０３１に記憶されている秘密鍵とに基づいて電子署名を生成する（ステップＳ１０３）。その後、出力部２０４は、入口情報と、生成器識別情報と、電子署名とをコード化した後、コード情報を通行券に印刷して通行券を発券する（ステップＳ１０４）。
【００２７】
図８は、料金計算機３０の処理の流れを示すフローチャートである。
読取部３０１は、通行券に印刷されているコード情報を読み取る（ステップＳ２０１）。読取部３０１は、読み取ったコード情報に含まれる平文の生成器識別情報を取得部３０３に出力する。また、読取部３０１は、読み取ったコード情報に含まれる電子署名を復号部３０４１に出力する。また、読取部３０１は、読み取ったコード情報に含まれる生成器識別情報及び入口情報をハッシュ値算出部３０４２に出力する。
【００２８】
取得部３０３は、読取部３０１から出力された生成器識別情報を利用して公開鍵束テーブルから公開鍵を取得する（ステップＳ２０２）。取得部３０３は、取得した公開鍵を復号部３０４１に出力する。復号部３０４１は、取得された公開鍵を使用して電子署名を復号する（ステップＳ２０３）。復号部３０４１は、電子署名を正しく復号できたか否か判定する（ステップＳ２０４）。電子署名を正しく復号できなかった場合（ステップＳ２０４−ＮＯ）、料金計算機３０はエラーを通知する（ステップＳ２０５）。エラーの通知方法としては、音声によるエラー通知であってもよいし、不図示の表示装置にエラーであることを表示させてもよいし、その他の方法であってもよい。その後、料金計算機３０は、処理を終了する。
【００２９】
一方、電子署名を正しく復号できた場合（ステップＳ２０４−ＹＥＳ）、復号部３０４１は電子署名の復号によって復元されたハッシュ値を判定部３０４３に出力する。ハッシュ値算出部３０４２は出力された生成器識別情報と、入口情報とを加算した情報に、ハッシュ関数を用いてハッシュ値を算出する（ステップＳ２０６）。ハッシュ値算出部３０４２は、算出したハッシュ値を判定部３０４３に出力する。判定部３０４３は、復元されたハッシュ値と、ハッシュ値算出部３０４２によって算出されたハッシュ値とが一致するか否か判定する（ステップＳ２０７）。
【００３０】
ハッシュ値が一致しない場合（ステップＳ２０７−ＮＯ）、判定部３０４３は通行券が改竄されていると判定する。そして、料金計算機３０はエラーを通知する（ステップＳ２０５）。その後、料金計算機３０は、処理を終了する。
一方、ハッシュ値が一致する場合（ステップＳ２０７−ＹＥＳ）、判定部３０４３は通行券が改竄されていないと判定する。その後、判定部３０４３は、通行料金を算出する指示を料金計算部３０５に出力する（ステップＳ２０８）。料金計算部３０５は、判定部３０４３からの指示に応じて、入口情報で示される場所から自装置が設置されている場所までの距離に応じた通行料金を算出する（ステップＳ２０９）。
【００３１】
以上のように構成された通行券判定システム１００では、発券機２０が発券する通行券に電子署名が印刷される。したがって、有料道路の出口付近に設置された料金計算機３０は、電子署名に基づいて通行券の正当性を判定することができる。そのため、通行券の改竄の有無を検出することが可能になる。
また、本実施形態における通行券には、電子署名の他に、生成器識別情報及び入口情報が平文で印刷されている。そのため、料金計算機３０は、システムがダウンしたとしても、平文の入口情報に基づいて通行料金を算出できる。さらに、入口情報が暗号化されていないため、入口情報が暗号化されている場合に比べて料金計算機３０による通行料金の計算の処理負荷が少なくて済む。
【００３２】
また、通行券に対して物理的な防護（例えば、特殊インクなど）を使用しなくても電子署名によって改竄の有無が検出できる。そのため、通行券の生成にかかるコストを安くすることができる。
また、通行券判定システム１００では、発券機２０毎に、異なる秘密鍵及び公開鍵の組合せが生成される。したがって、１台の発券機２０の秘密鍵が解析されて公開鍵が入手されたとしても、他の発券機２０の秘密鍵は類推できない。そのため、改竄による被害を最低限に抑えることが可能になる。
【００３３】
また、公開鍵束テーブルに記録されている公開鍵の情報は、各発券機２０が保持している秘密鍵に対応する公開鍵の情報がまとまった情報である。公開鍵の情報は、外部に漏れても問題がないため、厳密な管理が必要ない。そのため、公開鍵束テーブルの管理にかかるコストを抑えることができる。また、たとえ悪意を持ったユーザが公開鍵束テーブルに記録されている公開鍵の情報を不当に入手したとしても公開鍵から秘密鍵を類推することは困難である。つまり、発券機２０が発券する通行券と同様の通行券が作られる可能性が極めて低い。そのため、不当な通行券が利用されてしまう可能性を低減させることができる。
【００３４】
発券機２０は、通行券を発券する度に、その情報を料金計算機３０側に伝達する必要がない。そのため、完全スタンドアロンでも実現できる。なお、利便性を向上させるためにネットワーク化してもよい。
通行券の入口情報は、秘匿性がないため、暗号化の必要性はない。もし、暗号化すると、回収済みの過去の通行券を監査などで見る場合、その時々の秘密鍵を発券時期毎に世代管理しなければならない。さらに、この鍵は厳密な管理が必要になる。それに対して、実施形態における本提案では、料金計算機３０が、通行券に記録されている情報をログとして記録している。つまり、料金計算機３０は、過去に使用された通行券に記録されている情報をログとして記録している。また、通行券に記録されている情報のうち入口情報及び生成器識別情報は暗号化されていない。そのため、監査が容易になる。また、料金計算機３０は、発券時期毎の過去の秘密鍵に対応する公開鍵の情報を常に保持していなくてよい。したがって、過去の秘密鍵に対応する公開鍵の情報の保存による料金計算機３０のメモリへの負担が無くなる。そのため、料金計算機３０は、メモリの容量を他の情報の保存に利用することができる。
また、非対称鍵生成装置１０の登録部１０３は、発券機２０に秘密鍵を登録して公開鍵束生成部１０４に公開鍵の通知を行った後に、秘密鍵の情報を自装置から削除する。したがって、秘密鍵の情報は、発券機２０にしか残らない。そのため、秘密鍵の情報が外部に漏れてしまう可能性を軽減することが可能になる。
【００３５】
＜変形例＞
本実施形態では、通行券判定システム１００が複数台の発券機２０及び複数台の料金計算機３０を備える構成を示したが、通行券判定システム１００は１台の発券機２０及び１台の料金計算機３０を備えるように構成されてもよい。このように構成される場合、公開鍵束テーブルには、１つの生成器識別情報と公開鍵との組合せが記録される。
秘密鍵は、秘密鍵記憶部２０３１に記憶させるタイミングで暗号化されてもよい。この場合、電子署名生成部２０３４は、暗号化された秘密鍵を用いて、ハッシュ値を暗号化することによって電子署名を生成する。
本実施形態では、公開鍵束テーブルに、公開鍵及び秘密鍵の組合せを識別するための識別情報（以下、「鍵識別情報」という。）として、生成器識別情報を例に示したが、これに限定される必要はない。公開鍵束テーブルには、鍵識別情報として、公開鍵及び秘密鍵の組合せを識別することができる識別情報であればどのような識別情報が記録されてもよい。鍵識別情報の具体例として、秘密鍵の識別情報、発券機２０の識別情報及び公開鍵の識別情報などがある。
【００３６】
公開鍵束テーブルには、公開鍵の情報のみが記録されてもよい。このように構成される場合、通行券判定システム１００は以下のように動作する。
まず、料金計算機３０の読取部３０１は、通行券に印刷されているコード情報を読み取る。読取部３０１は、コード情報を読み取ったことを取得部３０３に通知する。また、読取部３０１は、読み取ったコード情報に含まれる電子署名を復号部３０４１に出力する。また、読取部３０１は、読み取ったコード情報に含まれる生成器識別情報及び入口情報をハッシュ値算出部３０４２に出力する。取得部３０３は、読取部３０１からの通知に応じて、公開鍵束テーブルに記録されている公開鍵を全て取得する。そして、取得部３０３は、取得した全ての公開鍵を復号部３０４１に出力する。復号部３０４１は、取得された公開鍵を使用して電子署名を復号する。この際、復号部３０４１は、取得された各公開鍵を順番に使用して、各公開鍵で電子署名を復号する。そして、復号部３０４１は、取得された全ての公開鍵で電子署名を正しく復号できなかった場合にエラーを通知する。一方、いずれかの公開鍵で電子署名を正しく復号できた場合には、復号によって復元されたハッシュ値を判定部３０４３に出力する。
【００３７】
料金計算機３０は、消去部を備えるように構成されてもよい。消去部は、料金計算機３０を操作するユーザなどの指示に応じて、公開鍵束テーブルから消去対象となる公開鍵の情報を消去する。例えば、消去部は、公開鍵束情報から消去対象となる公開鍵が記録されているレコードを消去する。なお、消去部は、料金計算機３０が備える判定器３０４に備えられてもよい。
このように構成されることによって、発券機２０が盗難にあった場合にも対応することができる。以下、詳細に説明する。
有料道路のように、入口に人が常任していなくて発券機２０のみが設置されている場合、発券機２０の盗難が発生する可能性がある。このような場合、盗難にあった発券機２０で通行券が発券されて悪用されることも考えられる。そこで、料金計算機３０が消去部を備えるように構成されることで、盗難にあった発券機２０が備える電子署名生成器２０３の識別情報に対応する公開鍵を消去することができる。これにより、盗難にあった発券機２０で発見された通行券が使用できなくなる。したがって、盗難にあった発券機２０で通行券が発券されて悪用される可能性を低減させることができる。そのため、発券機２０が盗難にあった場合にも対応することが可能になる。
【００３８】
本実施形態では、非対称鍵生成装置１０が、生成した公開鍵束テーブルを料金計算機３０に送信する構成を示したが、これに限定される必要はない。例えば、以下のように構成されてもよい。まず、非対称鍵生成装置１０は、生成した公開鍵束テーブルを、通行券判定システム１００を管理するサーバに送信する。サーバは、非対称鍵生成装置１０から送信された公開鍵束テーブルを保存する。この際、サーバが既に公開鍵テーブルを保存している場合には、新たに送信された公開鍵束テーブルの情報で既に保存している公開鍵テーブルの情報を上書きすることによって公開鍵束テーブルを更新する。料金計算機３０は、第１のタイミングでサーバにアクセスして、サーバから公開鍵束テーブルをダウンロードする。そして、料金計算機３０は、ダウンロードした公開鍵束テーブルを公開鍵束情報記憶部３０２に記録する。第１のタイミングとは、例えば日付が変わったタイミングであってもよいし、料金計算機３０を操作するユーザから指示がなされたタイミングであってもよいし、その他のタイミングであってもよい。このように構成される場合、料金計算機３０が備える公開鍵束情報記憶部３０２は揮発性メモリで構成される。なお、サーバは、クラウド上に設けられてもよい。
【００３９】
従来、上記の課題を解決するための方法として、以下に示す解決方法が考えられる。この点について、本実施形態との差分を説明する。
（解決方法１）
発券機と料金収受機との他に、各装置を管理するセンターの装置を備えるシステムを利用する方法。
このシステムでは、発券機が通行券の発券時に通行券の固有番号と、入口情報とをセンターの装置に送信する。料金収受機は、通行券に記録されている固有番号を元に、センターの装置に照会をかけて入口情報を特定して通行料金の計算を行う。このような構成の場合、何の対策も施されていないシステムと比べて通行券の改竄に対する防衛効果は増すが、料金収受機とセンターの装置との間の通信がきわめて煩雑になる。このような問題は、料金収受機の数に応じて増加する。さらに、料金収受機とセンターの装置との間の通信が困難な場合（例えば、ネットワークが切れた場合）にはシステムがダウンしてしまう。また、通信による負荷によっては通信に遅延が生じてしまい、リアルタイムに処理が出来なくなってしまう場合もある。それに対して、本実施形態における通行券判定システム１００では、発券機２０が通行券を発券し、料金計算機３０が通行券に記録された情報から通行券の正当性を自装置内で判定する。したがって、発券機２０及び料金計算機３０がネットワークを介して通信を行う必要がない。そのため、料金収受機の数が増大したとしても通信による問題は発生しない。さらに、通信による負荷が生じないため、リアルタイムな処理が可能になる。
【００４０】
（解決方法２）
媒体（例えば、通行券など）そのものの耐タンパ性をあげる方法。
この方法は、無線タグや、ＩＣカード方式、又は、特殊なインクを利用することによって媒体や、媒体の記録方式の耐タンパ性を上げる方法である。しかし、この方法では、無線タグや、ＩＣカード方式、又は、特殊なインクを利用する必要があるため、媒体の値段が上がってしまう。そのため、定期券など複数回使用される媒体には利用することができるが、通行券のように１回しか使用されない媒体に利用することは困難である。それに対して、本実施形態における通行券判定システム１００では、通行券に電子署名を印刷することによって改竄の有無を検出するため、無線タグや、ＩＣカード方式、又は、特殊なインクを利用する必要がない。そのため、媒体の値段が上がってしまうこともなく、通行券に利用することができる。
【００４１】
（解決方法３）
入口で入口情報を暗号化し、出口で復号する方法。
この方法では、発券機が共通鍵を使用して入口情報を暗号化する。そして、料金収受機が共通鍵を使用して暗号化された入口情報を復号する。この方法では、解決方法１や解決方法２と比べて耐タンパ性は極めて高い。しかし、この方法では、共通鍵を利用しているため、ひとたび共通鍵の情報が漏れてしまった場合、発券機及び料金収受機全ての鍵を変更する必要がある。そのため、共通鍵の管理が極めて重要になり、運用性がかなり低下してしまう。それに対して、本実施形態における通行券判定システム１００では、発券機２０毎に、異なる秘密鍵及び共通鍵が生成される。したがって、１つの秘密鍵の情報が漏れたとしても他の発券機２０が保持している鍵を変更する必要がない。そのため、変更にかかる手間が少なくて済む。さらに、共通鍵は、外部に漏れたとしても問題がないため厳重に管理する必要がない。そのため、運用性の低下を最低限に抑えることができる。
【００４２】
以上説明した少なくともひとつの実施形態によれば、秘密鍵を記憶する秘密鍵記憶部２０３１と、入口に関する情報を含む入口情報にハッシュ関数を用いることによってハッシュ値を算出するハッシュ値算出部２０３３と、ハッシュ値及び秘密鍵に基づいて電子署名を生成する電子署名生成部２０３４と、生成された電子署名と、入口情報とをコード化した情報であるコード情報を印刷することによって通行券を発券する出力部と２０４とを持つことにより、通行券の改竄の有無を検出することができる。
【００４３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４４】
１０…非対称鍵生成装置，２０（２０−１〜２０−Ｍ）…発券機，３０（３０−１〜３０−Ｎ）…料金計算機，１０１…鍵生成部，１０２…生成器識別情報保存部，１０３…登録部，１０４…公開鍵束生成部，２０１…入力部，２０２…入口情報出力部，２０３…電子署名生成器，２０３１…秘密鍵記憶部，２０３２…識別情報記憶部，２０３３…ハッシュ値算出部，２０３４…電子署名生成部，２０４…出力部，３０１…読取部，３０２…公開鍵束情報記憶部，３０３…取得部，３０４…判定器，３０４１…復号部，３０４２…ハッシュ値算出部，３０４３…判定部，３０５…料金計算部，３０６…ログ記録部
【図１】
2016187146.tif 000003
【図２】
2016187146.tif 000004
【図３】
2016187146.tif 000005
【図４】
2016187146.tif 000006
【図５】
2016187146.tif 000007
【図６】
2016187146.tif 000008
【図７】
2016187146.tif 000009
【図８】
2016187146.tif 000010