(57)【要約】【課題】ホスト端末と耐タンパデバイスとの連携により、高速かつ安全な署名方式を実現する署名装置、方法及びプログラムを提供すること。【解決手段】署名装置１において、ホスト端末１０は、メッセージｍを受信し、乱数ｋを用いて検証のためのデータｒを算出し、算出したデータｒと受信したメッセージｍとのハッシュ値υを算出し、データｋＰ１とハッシュ値υとを用いて、署名用データを作成し、作成した署名用データを、受け付けたパスワードで暗号化した署名用送信データＥを耐タンパデバイス３０に送信する。耐タンパデバイス３０は、送信された署名用送信データＥを、鍵記憶手段３１に記憶されたパスワードによって復号し、復号した署名用データのうちハッシュ値υを、鍵記憶手段３１に記憶された秘密鍵ＳＩＤを用いて暗号化し、暗号化したデータと、データｋＰ１とを用いて、署名データｕを作成し、ホスト端末１０に送信する。【選択図】図１
2015106726.tif 000002
【特許請求の範囲】
【請求項１】
ホスト端末と、耐タンパデバイスとを有する署名装置であって、
前記ホスト端末は、
署名をする対象であるメッセージを受信するメッセージ受信手段と、
パスワードの入力を受け付けるパスワード受付手段と、
乱数を生成する乱数生成手段と、
前記乱数生成手段によって生成された前記乱数を用いて、検証のためのデータを算出する検証データ算出手段と、
前記検証データ算出手段によって算出された検証のためのデータと、前記メッセージ受信手段によって受信された前記メッセージとのハッシュ値を算出するハッシュ値算出手段と、
前記検証データ算出手段によって前記検証のためのデータが算出されるために用いられるデータと、前記ハッシュ値算出手段によって算出された前記ハッシュ値とを用いて、署名用データを作成し、作成した署名用データを、前記パスワード受付手段によって受け付けられたパスワードで暗号化し、署名用送信データを算出する署名用データ算出手段と、
前記署名用データ算出手段によって算出された前記署名用送信データを、前記耐タンパデバイスに送信する署名用データ送信手段と、を備え、
前記耐タンパデバイスは、
パスワードと秘密鍵とを予め記憶する鍵記憶手段と、
前記署名用データ送信手段によって送信された前記署名用送信データを受信する署名用データ受信手段と、
前記署名用データ受信手段によって受信された前記署名用送信データを、前記鍵記憶手段に記憶されたパスワードによって復号する復号手段と、
前記復号手段によって復号された前記署名用データのうち前記ハッシュ値を、前記鍵記憶手段に記憶された前記秘密鍵を用いて暗号化し、暗号化したデータと、復号された前記署名用データのうち前記検証のためのデータが算出されるために用いられるデータとを用いて、署名データを作成する署名作成手段と、
前記署名作成手段によって作成された前記署名データを、前記ホスト端末に送信する署名送信手段と、を備え、
前記ホスト端末は、
前記署名送信手段によって送信された前記署名データを受信する署名受信手段と、
前記署名受信手段によって受信された前記署名データと前記ハッシュ値とを出力する出力手段と、をさらに備える、
署名装置。
【請求項２】
前記ホスト端末は、前記署名受信手段によって受信された前記署名データを検証する検証手段を、さらに備える請求項１に記載の署名装置。
【請求項３】
請求項１に記載の署名装置が実行する方法であって、
前記ホスト端末が実行する方法は、
署名をする対象であるメッセージを受信するメッセージ受信ステップと、
パスワードの入力を受け付けるパスワード受付ステップと、
乱数を生成する乱数生成ステップと、
前記乱数生成ステップによって生成された前記乱数を用いて、検証のためのデータを算出する検証データ算出ステップと、
前記検証データ算出ステップによって算出された検証のためのデータと、前記メッセージ受信ステップによって受信された前記メッセージとのハッシュ値を算出するハッシュ値算出ステップと、
前記検証データ算出ステップによって前記検証のためのデータが算出されるために用いられるデータと、前記ハッシュ値算出ステップによって算出された前記ハッシュ値とを用いて、署名用データを作成し、作成した署名用データを、前記パスワード受付ステップによって受け付けられたパスワードで暗号化し、署名用送信データを算出する署名用データ算出ステップと、
前記署名用データ算出ステップによって算出された前記署名用送信データを、前記耐タンパデバイスに送信する署名用データ送信ステップと、を備え、
前記耐タンパデバイスが実行する方法は、
前記署名用データ送信ステップによって送信された前記署名用送信データを受信する署名用データ受信ステップと、
前記署名用データ受信ステップによって受信された前記署名用送信データを、前記鍵記憶手段に記憶されたパスワードによって復号する復号ステップと、
前記復号ステップによって復号された前記署名用データのうち前記ハッシュ値を、前記鍵記憶手段に記憶された前記秘密鍵を用いて暗号化し、暗号化したデータと、復号された前記署名用データのうち前記検証のためのデータが算出されるために用いられるデータとを用いて、署名データを作成する署名作成ステップと、
前記署名作成ステップによって作成された前記署名データを、前記ホスト端末に送信する署名送信ステップと、を備え、
前記ホスト端末が実行する方法は、
前記署名送信ステップによって送信された前記署名データを受信する署名受信ステップと、
前記署名受信ステップによって受信された前記署名データと前記ハッシュ値とを出力する出力ステップと、をさらに備える、
方法。
【請求項４】
コンピュータに、請求項３に記載の方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト端末と耐タンパデバイスとの間で署名処理を分割して実行する手法に関する。
【背景技術】
【０００２】
従来より、電子文書の偽造や改竄を防止するために、電子文書に電子署名が用いられている。この電子署名により、電子文書の作成者を保証することや、内容の同一性を保証することが可能になる。また、電子署名に用いられる暗号鍵の漏えいを防止するために、暗号鍵を記憶する記憶装置に耐タンパデバイスが用いられている。
【０００３】
このような電子署名を実現する技術として、例えば、非特許文献１では、ペアリングに基づいた効率的なアイデンティティベースの署名方式が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｆｌｏｒｉａｎ  Ｈｅｓｓ，  ｅｆｆｉｃｉｅｎｔ  Ｉｄｅｎｔｉｔｙ  Ｂａｓｅｄ  Ｓｉｇｎａｔｕｒｅ  Ｓｃｈｅｍｅｓ  Ｂａｓｅｄ  ｏｎ  Ｐａｉｒｉｎｇｓ，  ＳＡＣ２００２，  ＬＮＣＳ  ２５９５，  ｐｐ．３１０−３２４，  ２００２．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、非力な耐タンパデバイスですべての処理を実行することになり、処理時間がかかるという問題点があった。一方、ホスト端末上ですべての処理を実行すると、秘密鍵の漏えい等の危険性があった。また、従来の提案方式では、ホスト端末と耐タンパデバイスとの間の通信路が安全ではなかった場合に、署名の偽造が可能であった。
【０００６】
そこで、暗号処理に伴う高度な演算を高速に処理すると共に、耐タンパデバイスの安全性を利用して漏えい等の危険性に対してさらに安全性を高めた署名方式が求められている。
【０００７】
本発明は、ホスト端末と耐タンパデバイスとの連携により、高速かつ安全な署名方式を実現する署名装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
具体的には、以下のような解決手段を提供する。
（１）  ホスト端末と、耐タンパデバイスとを有する署名装置であって、前記ホスト端末は、署名をする対象であるメッセージを受信するメッセージ受信手段と、パスワードの入力を受け付けるパスワード受付手段と、乱数を生成する乱数生成手段と、前記乱数生成手段によって生成された前記乱数を用いて、検証のためのデータを算出する検証データ算出手段と、前記検証データ算出手段によって算出された検証のためのデータと、前記メッセージ受信手段によって受信された前記メッセージとのハッシュ値を算出するハッシュ値算出手段と、前記検証データ算出手段によって前記検証のためのデータが算出されるために用いられるデータと、前記ハッシュ値算出手段によって算出された前記ハッシュ値とを用いて、署名用データを作成し、作成した署名用データを、前記パスワード受付手段によって受け付けられたパスワードで暗号化し、署名用送信データを算出する署名用データ算出手段と、前記署名用データ算出手段によって算出された前記署名用送信データを、前記耐タンパデバイスに送信する署名用データ送信手段と、を備え、前記耐タンパデバイスは、パスワードと秘密鍵とを予め記憶する鍵記憶手段と、前記署名用データ送信手段によって送信された前記署名用送信データを受信する署名用データ受信手段と、前記署名用データ受信手段によって受信された前記署名用送信データを、前記鍵記憶手段に記憶されたパスワードによって復号する復号手段と、前記復号手段によって復号された前記署名用データのうち前記ハッシュ値を、前記鍵記憶手段に記憶された前記秘密鍵を用いて暗号化し、暗号化したデータと、復号された前記署名用データのうち前記検証のためのデータが算出されるために用いられるデータとを用いて、署名データを作成する署名作成手段と、前記署名作成手段によって作成された前記署名データを、前記ホスト端末に送信する署名送信手段と、を備え、前記ホスト端末は、前記署名送信手段によって送信された前記署名データを受信する署名受信手段と、前記署名受信手段によって受信された前記署名データと前記ハッシュ値とを出力する出力手段と、をさらに備える、署名装置。
【０００９】
（１）の構成によれば、（１）に係る署名装置において、ホスト端末は、署名をする対象であるメッセージを受信し、パスワードの入力を受け付け、乱数を生成し、生成した乱数を用いて、検証のためのデータを算出し、算出した検証のためのデータと、受信したメッセージとのハッシュ値を算出し、検証のためのデータを算出するために用いるデータと、算出したハッシュ値とを用いて、署名用データを作成し、作成した署名用データを、受け付けたパスワードで暗号化し、署名用送信データを算出し、算出した署名用送信データを、耐タンパデバイスに送信する。耐タンパデバイスは、鍵記憶手段にパスワードと秘密鍵とを予め記憶し、送信された署名用送信データを受信し、受信した署名用送信データを、鍵記憶手段に記憶されたパスワードによって復号し、復号した署名用データのうちハッシュ値を、鍵記憶手段に記憶された秘密鍵を用いて暗号化し、暗号化したデータと、復号された署名用データのうち検証のためのデータを算出するために用いるデータとを用いて、署名データを作成し、作成した署名データを、ホスト端末に送信する。ホスト端末は、送信された署名データを受信し、受信した署名データとハッシュ値とを出力する。
【００１０】
すなわち、耐タンパデバイスは、秘密鍵を用いる処理を行い、ホスト端末は、パスワードを受け付けて、秘密鍵を用いない処理のすべてを実行する。
したがって、（１）に係る署名装置は、ホスト端末と耐タンパデバイスとの連携により、高速、かつ、安全な署名方式を実現することができる。
【００１１】
（２）  前記ホスト端末は、前記署名受信手段によって受信された前記署名データを検証する検証手段を、さらに備える（１）に記載の署名装置。
【００１２】
したがって、（２）に係る署名装置は、ホスト端末と耐タンパデバイスとの連携により、高速、かつ、より安全な署名方式を実現することができる。
【００１３】
（３）  （１）に記載の署名装置が実行する方法であって、前記ホスト端末が実行する方法は、署名をする対象であるメッセージを受信するメッセージ受信ステップと、パスワードの入力を受け付けるパスワード受付ステップと、乱数を生成する乱数生成ステップと、前記乱数生成ステップによって生成された前記乱数を用いて、検証のためのデータを算出する検証データ算出ステップと、前記検証データ算出ステップによって算出された検証のためのデータと、前記メッセージ受信ステップによって受信された前記メッセージとのハッシュ値を算出するハッシュ値算出ステップと、前記検証データ算出ステップによって前記検証のためのデータが算出されるために用いられるデータと、前記ハッシュ値算出ステップによって算出された前記ハッシュ値とを用いて、署名用データを作成し、作成した署名用データを、前記パスワード受付ステップによって受け付けられたパスワードで暗号化し、署名用送信データを算出する署名用データ算出ステップと、前記署名用データ算出ステップによって算出された前記署名用送信データを、前記耐タンパデバイスに送信する署名用データ送信ステップと、を備え、前記耐タンパデバイスが実行する方法は、前記署名用データ送信ステップによって送信された前記署名用送信データを受信する署名用データ受信ステップと、前記署名用データ受信ステップによって受信された前記署名用送信データを、前記鍵記憶手段に記憶されたパスワードによって復号する復号ステップと、前記復号ステップによって復号された前記署名用データのうち前記ハッシュ値を、前記鍵記憶手段に記憶された前記秘密鍵を用いて暗号化し、暗号化したデータと、復号された前記署名用データのうち前記検証のためのデータが算出されるために用いられるデータとを用いて、署名データを作成する署名作成ステップと、前記署名作成ステップによって作成された前記署名データを、前記ホスト端末に送信する署名送信ステップと、を備え、前記ホスト端末が実行する方法は、前記署名送信ステップによって送信された前記署名データを受信する署名受信ステップと、前記署名受信ステップによって受信された前記署名データと前記ハッシュ値とを出力する出力ステップと、をさらに備える、方法。
【００１４】
したがって、（３）に係る方法は、ホスト端末と耐タンパデバイスとの連携により、高速、かつ、安全な署名方式を実現することができる。
【００１５】
（４）  コンピュータに、（３）に記載の方法の各ステップを実行させるためのプログラム。
【００１６】
したがって、（４）に係るプログラムは、コンピュータに、ホスト端末と耐タンパデバイスとの連携により、高速、かつ、安全な署名方式を実現させることができる。
【発明の効果】
【００１７】
本発明によれば、ホスト端末と耐タンパデバイスとの連携により、高速かつ安全な署名方式を確立することができる。すなわち、本発明によれば、耐タンパデバイスに秘密鍵を記憶させたままで安全に、かつ、高速に署名ができる。
さらに、本発明によれば、ホスト端末でパスワードを用いた利用者確認を実施しているので、耐タンパデバイスの不正使用による署名の偽造を防止することができる。
さらに、本発明によれば、ホスト端末が検証処理を実施することで、中間者攻撃によるＤｏＳ攻撃（Ｄｅｎｉａｌ  ｏｆ  Ｓｅｒｖｉｃｅ  ａｔｔａｃｋ）を監視することができる。
さらに、本発明によれば、ホスト端末から耐タンパデバイスへのデータが盗聴されても、乱数により暗号化されているので解読は困難であり、耐タンパデバイスからホスト端末へのデータが盗聴されても、公開すべきデータが盗聴されるだけなので、安全である。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態における署名装置の処理を説明するための図である。
【図２】本発明の一実施形態に係る署名装置の構成を示す図である。
【図３】本発明の一実施形態に係る署名装置の処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図に従って説明する。
図１は、本発明の一実施形態における署名装置１の処理を説明するための図である。本発明は、ＩＤベースの署名処理を実現する手法であって、次の特徴を有する。
（１）秘密鍵は安全な耐タンパデバイス３０に格納され、秘密鍵を使用する処理のすべては耐タンパデバイス３０が実行する。
（２）秘密鍵を用いない処理のすべてはホスト端末１０で実行される。すなわち、ホスト端末１０と耐タンパデバイス３０とで処理を分担して署名処理を行う。
（３）署名処理において、耐タンパデバイス３０の不正使用による署名の偽造を防止するため、パスワードを用いた利用者確認を実施する。
（４）ホスト端末１０が検証処理を実施することで、中間者攻撃によるＤｏＳ攻撃を監視する。
【００２０】
ここで、ＩＤベースの署名処理は、利用者の公開鍵として、利用者の識別子に関する一意な情報（例えば、利用者のメールアドレスや電話番号等）を利用者の公開鍵として用いることができる。
また、耐タンパデバイス３０は、物理的あるいは論理的に内部の情報を読み取られることに対する耐性の高いデバイスをいう。具体的には、電話番号を特定するための固有のＩＤ番号が記録されたＳＩＭカード（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ  Ｃａｒｄ）等のＩＣカードである。
【００２１】
また、本実施形態で採用される具体的な署名方式について説明する。署名装置１では、ベースとなる署名方式としてＧＡＰ−Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＧＤＨ）署名を採用する。ＧＤＨ署名とは、Ｄｅｃｉｓｉｏｎ−Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＤＨ）問題をペアリングと呼ばれるある種のブラックボックス関数ｅ（Ｐ，Ｑ）を用いることで、解くことが可能であることを利用した署名である。
【００２２】
次に、ペアリング演算を用いたＧＤＨ署名について説明する。楕円曲線上のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ問題に関連して、ＧＤＨグループが定義されている。ＧＤＨグループについて簡単に説明する。Ｇをある楕円曲線上の点の集合とする。「ｇ」を集合Ｇの要素としたとき、集合Ｇにおける楕円曲線上のＤｅｃｉｓｉｏｎａｌ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＤＤＨ）問題とＣｏｍｐｕｔａｔｉｏｎａｌ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ（ＣＤＨ）問題が以下のように定義される。
【００２３】
ＤＤＨ問題：あるａ、ｂ、ｃという自然数があり、ｇ、ａｇ、ｂｇ、ｃｇが与えられた時、ｃ＝ａｂかどうかを判定する問題。
ＣＤＨ問題：あるａ、ｂ、ｃという自然数があり、ｇ、ａｇ、ｂｇが与えられた時、ａｂｇを計算する問題。
【００２４】
このとき、ＤＤＨ問題は、計算量的に簡単であるが、ＣＤＨ問題は、計算量的に難問である場合、この集合ＧをＧＤＨグループと定義する。
【００２５】
これに対し、ある楕円曲線上の点をＰ，Ｑとし、そのＰ，Ｑによっては次にあげる性質を持つことができるペアリングと呼ばれるブラックボックス関数ｅ（Ｐ，Ｑ）を定義できるものが存在する。
ｅ（ａＰ，ｂＱ）＝ｅ（ｂＰ，ａＱ）＝ｅ（ａｂＰ，Ｑ）＝ｅ（Ｐ，ａｂＱ）＝ｅ（Ｐ，Ｑ）ａｂ  ・・・（１）
【００２６】
よって、ｇがペアリング演算の可能な楕円曲線上の点である場合には、上記の性質から、（１）式にｇ、ａｇ、ｂｇ、ｃｇを入力すると、
ｅ（ａｇ，ｂｇ）＝ｅ（ｇ，ｇ）ａｂ  ・・・（２）
ｅ（ｇ，ｃｇ）＝ｅ（ｇ，ｇ）ｃ  ・・・（３）
となり、両者の値が一致するかどうかにより、「ａｂ＝ｃ」であるかどうかを判定でき、ｇはＧＤＨグループＧの要素となりうる。
【００２７】
この性質を利用してＧＤＨ署名が構成される。集合Ｇは、ＧＤＨグループであり、ｇは集合Ｇの要素となる点とする。また、一方向性ハッシュ関数Ｈを、通常使用される任意のビット長のサイズの数値データが固定のビット長のサイズの数値データに写像変換される方式とは異なり、
Ｈ：｛０，１｝＊→Ｇ
のように任意のビット長のサイズの数値データを楕円曲線上の点として表現されるＧＤＨグループＧの要素に写像変換する方式であると定義する。
【００２８】
このとき、ＧＤＨ署名は以下のように定義される。
鍵生成：自然数ｘを選び、ｇからｖ＝ｘｇを計算する。ｘを署名鍵、楕円曲線上の点ｖを検証鍵とする。
署名：署名者は、メッセージ「ｍ∈｛０，１｝＊」に対しｈ＝Ｈ（ｍ）を計算し、さらに自分の署名鍵を用いてσ＝ｘｈを計算する。σをｍに対する署名として公開する。
検証：検証者は、メッセージｍからｈ＝Ｈ（ｍ）を計算し、ｇ、ｖ、ｈ、σを準備する。ｅ（ｇ，σ）とｅ（ｖ，ｈ）を計算し、両者の値が一致したら、署名σは、正しい署名と判定する。
【００２９】
このとき、ｈの値は集合Ｇの要素となるので、ある自然数ｙを用いてｈ＝ｙｇと表現できる。その結果、正しく署名が行われていれば（ｇ，ｖ，ｈ，σ）＝（ｇ，ｘｇ，ｙｇ，ｘｙｇ）となる。したがって、正当な署名であれば上記の検証でのペアリング演算は、ｅ（ｇ，σ）＝ｅ（ｇ，ｘｙｇ）＝ｅ（ｇ，ｇ）ｘｙ＝ｅ（ｘｇ，ｙｇ）＝ｅ（ｖ，ｈ）となり、値が一致することから、検証可能となる。なお、ＧＤＨグループの条件であるＣＤＨ問題の困難性から、署名鍵ｘを知らない第三者がｇ、ｖ、ｈの値から署名σを導出することは不可能である。
【００３０】
署名装置１は、ホスト端末１０（例えば、スマートフォン等）と、耐タンパデバイス３０（例えば、ＩＣカード等）とを有する。耐タンパデバイス３０は、秘密鍵と、共通鍵としてのパスワードとを予め記憶する。
【００３１】
具体的な実施手順を以下に示す。
【００３２】
まず最初に、ホスト端末１０は、署名をする対象であるメッセージｍを受信する。次に、ホスト端末１０は、手順１から手順６の順で署名データを作成し、作成した署名データを出力する。
【００３３】
＜手順１＞
ホスト端末１０は、数１から数３の演算により署名用送信データＥを計算する。さらに具体的に、ホスト端末１０が実行する計算手順を説明する。
（１）ホスト端末１０は、乱数ｋを生成する。
（２）ホスト端末１０は、楕円曲線上の２点（Ｐ１、Ｐ）から検証のためのデータｒを、数１（ペアリング関数）の演算により算出する。
（３）ホスト端末１０は、一方向性ハッシュ関数Ｈを用いて数１の演算により、メッセージｍと検証のためのデータｒとのハッシュ値υを算出する。
（４）ホスト端末１０は、楕円曲線上の２点（Ｐ１、Ｐ）のうち第１の点Ｐ１から数２の演算によりｋＰ１を算出する。
（５）ホスト端末１０は、パスワードを受け付ける。入力されたパスワードは、共通鍵暗号方式の暗号鍵として用いられ、一方、耐タンパデバイス３０で予め記憶されているパスワードは、復号鍵として用いられる。入力されたパスワードが、耐タンパデバイス３０で記憶されているパスワードと異なれば、耐タンパデバイス３０は、復号に失敗する（利用者認証）。パスワードは、受け付けたパスワードのハッシュ値としてもよい。
（６）数３の演算により、ハッシュ値υと、算出したｋＰ１とを、受け付けたパスワードを用いて暗号化した署名用送信データＥを算出する。
【００３４】
【数１】
2015106726.tif 000003
【００３５】
数１において、（Ｚ／ｑＺ）＊のｑは素数である。すなわち、ハッシュ値υは、素数ｑより小さい値となり、ハッシュ値υのデータ長は、一定の長さ以下となる。
【００３６】
【数２】
2015106726.tif 000004
【００３７】
【数３】
2015106726.tif 000005
【００３８】
数３において、εｐｗは、パスワードを共通鍵として暗号化することを表わしている。
【００３９】
＜手順２＞
ホスト端末１０は、署名用送信データＥを耐タンパデバイス３０に送信する。なお、メッセージｍ、及びハッシュ値υはホスト端末１０が保持しておく。
【００４０】
＜手順３＞
耐タンパデバイス３０は、ホスト端末１０から署名用送信データＥを受信し、記憶している秘密鍵ＳＩＤを用いて署名データｕを作成する。さらに具体的に、耐タンパデバイス３０が実行する計算手順を説明する。
（１）耐タンパデバイス３０は、記憶しているパスワードを使って署名用送信データＥを復号し、ハッシュ値υとｋＰ１とを取出す。
（２）耐タンパデバイス３０は、記憶している秘密鍵ＳＩＤを用いて、数４の演算により署名データｕの計算を行う。
【００４１】
【数４】
2015106726.tif 000006
【００４２】
＜手順４＞
耐タンパデバイス３０は、署名データｕをホスト端末１０に返信する。
【００４３】
＜手順５＞
ホスト端末１０は、保持していたメッセージｍと、ハッシュ値υと、受信した署名データｕとから署名の検証処理を実行し、署名データｕが正しいことを確認する。なお、ホスト端末１０は、検証処理を省略してもよい。
【００４４】
＜手順６＞
ホスト端末１０は、メッセージｍに対する署名としてハッシュ値υと署名データｕとを出力する。
【００４５】
図２は、本発明の一実施形態に係る署名装置１の構成を示す図である。署名装置１は、ホスト端末１０と、耐タンパデバイス３０とを有する。
【００４６】
ホスト端末１０は、メッセージ受信手段１１と、パスワード受付手段１２と、乱数生成手段１３と、検証データ算出手段１４と、ハッシュ値算出手段１５と、署名用データ算出手段１６と、署名用データ送信手段１７と、署名受信手段１８と、検証手段１９と、出力手段２０と、を備え、耐タンパデバイス３０は、鍵記憶手段３１と、署名用データ受信手段３２と、復号手段３３と、署名作成手段３４と、署名送信手段３５と、を備える。
【００４７】
ホスト端末１０での処理を各手段ごとに説明する。
メッセージ受信手段１１は、署名をする対象であるメッセージｍを受信する。
パスワード受付手段１２は、パスワードの入力を受け付ける。
【００４８】
乱数生成手段１３は、乱数ｋを生成する。生成される乱数ｋは、乱数発生器による乱数だけではなく、コンピュータのプログラムによる疑似乱数であってよい。
【００４９】
検証データ算出手段１４は、乱数生成手段１３によって生成された乱数を用いて、検証のためのデータを算出する。具体的には、検証データ算出手段１４は、上述の数１の演算により、検証のためのデータｒを算出する。
【００５０】
ハッシュ値算出手段１５は、検証データ算出手段１４によって算出された検証のためのデータｒと、メッセージ受信手段１１によって受信されたメッセージｍとのハッシュ値υを算出する。具体的には、ハッシュ値算出手段１５は、上述の数１の演算により、メッセージｍと検証のためのデータｒとのハッシュ値υを算出する。
【００５１】
署名用データ算出手段１６は、検証データ算出手段１４によって検証のためのデータが算出されるために用いられるデータｋＰ１と、ハッシュ値算出手段１５によって算出されたハッシュ値υとを用いて署名用データを作成し、作成した署名用データを、パスワード受付手段１２によって受け付けられたパスワードで暗号化し、署名用送信データＥを算出する。具体的には、署名用データ算出手段１６は、上述の数３の演算により、署名用送信データＥを算出する。
【００５２】
署名用データ送信手段１７は、署名用データ算出手段１６によって算出された署名用送信データＥを耐タンパデバイス３０に送信する。
【００５３】
ホスト端末１０から送信されたのちの耐タンパデバイス３０での処理を各手段ごとに説明する。
鍵記憶手段３１は、パスワードと秘密鍵ＳＩＤとを予め記憶する。
【００５４】
署名用データ受信手段３２は、署名用データ送信手段１７によって送信された署名用送信データＥを受信する。
【００５５】
復号手段３３は、署名用データ受信手段３２によって受信された署名用送信データＥを、鍵記憶手段３１に記憶されたパスワードによって復号する。
【００５６】
署名作成手段３４は、復号手段３３によって復号された署名用データのうちハッシュ値υを、鍵記憶手段３１に記憶された秘密鍵ＳＩＤを用いて暗号化し、暗号化したデータと、復号された署名用データのうち検証のためのデータが算出されるために用いられるデータｋＰ１とを用いて、上述の数４の演算により、署名データｕを作成する。
【００５７】
署名送信手段３５は、署名作成手段３４によって作成された署名データｕを、ホスト端末１０に送信する。
【００５８】
耐タンパデバイス３０から送信されたのちのホスト端末１０での処理を各手段ごとに説明する。
署名受信手段１８は、耐タンパデバイス３０の署名送信手段３５によって送信された署名データｕを受信する。
【００５９】
検証手段１９は、署名受信手段１８によって受信された署名データｕを検証する。
【００６０】
出力手段２０は、署名受信手段１８によって受信された署名データｕと、ハッシュ値υとを出力する。署名受信手段１８は、署名データｕと、ハッシュ値υとを、メッセージｍの送信先に送信するとしてもよい。
【００６１】
図３は、本発明の一実施形態に係る署名装置１の処理を示すフローチャートである。ホスト端末１０及び耐タンパデバイス３０は、コンピュータ及びその周辺装置が備えるハードウェア並びに該ハードウェアを制御するソフトウェアによって構成され、以下の処理は、それぞれの制御部（例えば、ホスト端末１０のＣＰＵ、及び耐タンパデバイス３０のＣＰＵ）が所定のソフトウェアに従い実行する処理である。
【００６２】
ステップＳ１０１において、ホスト端末１０（メッセージ受信手段１１）は、署名をする対象であるメッセージｍを受信する。
【００６３】
ステップＳ１０２において、ホスト端末１０（パスワード受付手段１２）は、パスワードの入力を受け付ける。
【００６４】
ステップＳ１０３において、ホスト端末１０（乱数生成手段１３、検証データ算出手段１４、ハッシュ値算出手段１５、署名用データ算出手段１６）は、乱数ｋを生成し、生成した乱数ｋを用いて、検証のためのデータｒ（数１）を算出し、受信したメッセージｍと、検証のためのデータｒとのハッシュ値υ（数１）を算出し、算出したハッシュ値υと、検証のためのデータを算出するために用いるデータｋＰ１（数２）とを用いて署名用データを作成する。
【００６５】
ステップＳ１０４において、ホスト端末１０（署名用データ算出手段１６、署名用データ送信手段１７）は、作成した署名用データを、受け付けたパスワードで暗号化し、暗号化した署名用送信データＥ（数３）を耐タンパデバイス３０に送信する。ステップＳ２０１において、耐タンパデバイス３０（署名用データ受信手段３２、復号手段３３）は、署名用送信データＥを受信し、鍵記憶手段３１によって記憶されているパスワードによって復号する。
【００６６】
ステップＳ２０２において、耐タンパデバイス３０（署名作成手段３４）は、復号した署名用データのうちハッシュ値υを、鍵記憶手段３１によって記憶されている秘密鍵ＳＩＤを用いて暗号化し、暗号化したデータとデータｋＰ１とを用いて、上述の数４の演算により、署名データｕを作成する。
【００６７】
ステップＳ２０３において、耐タンパデバイス３０（署名送信手段３５）は、署名データｕをホスト端末１０に送信する。
【００６８】
ステップＳ１０５において、ホスト端末１０（署名受信手段１８、検証手段１９）は、耐タンパデバイス３０から送信された署名データｕを受信し、検証する。
【００６９】
ステップＳ１０６において、ホスト端末１０（出力手段２０）は、署名データｕと、ハッシュ値υとを出力する。
【００７０】
本実施形態によれば、署名装置１において、ホスト端末１０は、署名をする対象であるメッセージｍを受信し、パスワードの入力を受け付け、乱数ｋを生成し、生成した乱数ｋを用いて、検証のためのデータｒを算出し、算出したデータｒと受信したメッセージｍとのハッシュ値υを算出し、検証のためのデータを算出するために用いるデータｋＰ１と、算出したハッシュ値υとを用いて、署名用データを作成し、作成した署名用データを、受け付けたパスワードで暗号化して署名用送信データＥを算出し、算出した署名用送信データＥを、耐タンパデバイス３０に送信する。耐タンパデバイス３０は、鍵記憶手段３１にパスワードと秘密鍵ＳＩＤとを予め記憶し、送信された署名用送信データＥを受信し、受信した署名用送信データＥを、鍵記憶手段３１に記憶されたパスワードによって復号し、復号した署名用データのうちハッシュ値υを、鍵記憶手段３１に記憶された秘密鍵ＳＩＤを用いて暗号化し、暗号化したデータと、復号された署名用データのうちデータｋＰ１とを用いて、署名データｕを作成し、作成した署名データｕを、ホスト端末１０に送信する。ホスト端末１０は、送信された署名データｕを受信し、受信した署名データｕを検証し、受信した署名データｕとハッシュ値υとを出力する。
したがって、署名装置１は、ホスト端末１０と耐タンパデバイス３０との連携により、高速、かつ、安全な署名方式を実現することができる。
【００７１】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００７２】
１    署名装置
１０  ホスト端末
１１  メッセージ受信手段
１２  パスワード受付手段
１３  乱数生成手段
１４  検証データ算出手段
１５  ハッシュ値算出手段
１６  署名用データ算出手段
１７  署名用データ送信手段
１８  署名受信手段
１９  検証手段
２０  出力手段
３０  耐タンパデバイス
３１  鍵記憶手段
３２  署名用データ受信手段
３３  復号手段
３４  署名作成手段
３５  署名送信手段
【図１】
2015106726.tif 000007
【図２】
2015106726.tif 000008
【図３】
2015106726.tif 000009