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