(57)【要約】【課題】耐タンパデバイスとそれを動作させる端末の間で、署名処理を分割して実行し、秘密鍵を漏洩することなくより高速な署名処理を実現する。【解決手段】制御部１１０が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を演算処理部１２０に実行させ、演算結果を耐タンパデバイス１３０に送信する。耐タンパデバイス１３０は、受信した演算結果を用いて、秘密鍵を必要とする演算処理のみを実行し、制御部１１０に演算結果を送信する。制御部は、送信部１４０を介して、暗号化された署名を検証サーバ２００に送信する。【選択図】図３
2015037298.tif 000002
【特許請求の範囲】
【請求項１】
耐タンパデバイスを備えた端末であって、
演算処理を行う演算処理手段と、
ＩＤ型署名暗号処理において、秘密鍵を必要とする演算処理のみを前記耐タンパデバイス内で実行させ、他の演算処理を前記演算処理手段にて実行させる制御手段と、
前記ＩＤ型署名暗号処理において、暗号化された署名を検証サーバに送信する送信手段と、
を備えたことを特徴とする端末。
【請求項２】
前記ＩＤが前記端末の電話番号であることを特徴とする請求項１に記載の端末。
【請求項３】
前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とする請求項１または請求項２に記載の端末。
【請求項４】
耐タンパデバイスと演算処理手段と制御手段と送信手段とを備えた端末におけるＩＤ型署名暗号方法であって、
前記制御手段が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を前記演算処理手段に実行させる第１のステップと、
該演算結果を前記耐タンパデバイスに送信する第２のステップと、
前記耐タンパデバイスが、該受信した演算結果を用いて、前記秘密鍵を必要とする演算処理のみを実行する第３のステップと、
前記耐タンパデバイスが、前記制御手段に演算結果を送信する第４のステップと、
前記制御手段が、前記送信手段を介して、暗号化された署名を検証サーバに送信する第５のステップと、
を備えたことを特徴とするＩＤ型署名暗号方法。
【請求項５】
前記ＩＤが前記端末の電話番号であることを特徴とする請求項４に記載のＩＤ型署名暗号方法。
【請求項６】
前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とする請求項４または請求項５に記載のＩＤ型署名暗号方法。
【請求項７】
耐タンパデバイスと演算処理手段と制御手段と送信手段とを備えた端末におけるＩＤ型署名暗号方法をコンピュータに実行させるためのプログラムであって、
前記制御手段が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を前記演算処理手段に実行させる第１のステップと、
該演算結果を前記耐タンパデバイスに送信する第２のステップと、
前記耐タンパデバイスが、該受信した演算結果を用いて、前記秘密鍵を必要とする演算処理のみを実行する第３のステップと、
前記耐タンパデバイスが、前記制御手段に演算結果を送信する第４のステップと、
前記制御手段が、前記送信手段を介して、暗号化された署名を検証サーバに送信する第５のステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
前記ＩＤが前記端末の電話番号であることを特徴とする請求項７に記載のプログラム。
【請求項９】
前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とする請求項７または請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、耐タンパデバイスとそれを動作させるホスト端末の間で、署名処理を分割して実行し、秘密鍵を漏洩することなくより高速な署名処理を実現する端末、ＩＤ型署名暗号方法およびプログラムに関する。
【背景技術】
【０００２】
ソフトウェアは、許可無く改竄されたり、ウィルスが混入されたりすることで、正常に利用できないことがある。この対策のため、電子署名を用いて、ソフトウェアが改竄されていないか、又はウィルス等の悪意のあるソフトウェアが混入されていないか否かを確認する方法が提案されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｆ. Ｈｅｓｓ.  Ｅｆｆｉｃｉｅｎｔ  Ｉｄｅｎｔｉｔｙ  Ｂａｓｅｄ  Ｓｉｇｎａｔｕｒｅ  Ｓｃｈｅｍｅｓ Ｂａｓｅｄ  ｏｎ  Ｐａｉｒｉｎｇｓ,“ ＳＡＣ  ２００２, ＬＮＣＳ  ２５９５,  ｐｐ.３１０−３２４.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１で開示された技術では、耐タンパデバイス内ですべての処理を実行することは処理負荷が大きかった。また、ホスト端末側ですべての処理を行うと、秘密鍵が漏洩する危険性があった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、耐タンパデバイスとそれを動作させる端末の間で、署名処理を分割して実行し、秘密鍵を漏洩することなくより高速な署名処理を実現する端末、ＩＤ型署名暗号方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の事項を提案している。
【０００７】
（１）本発明は、耐タンパデバイスを備えた端末であって、演算処理を行う演算処理手段と、ＩＤ型署名暗号処理において、秘密鍵を必要とする演算処理のみを前記耐タンパデバイス内で実行させ、他の演算処理を前記演算処理手段にて実行させる制御手段と、前記ＩＤ型署名暗号処理において、暗号化された署名を検証サーバに送信する送信手段と、を備えたことを特徴とする端末を提案している。
【０００８】
（２）本発明は、（１）の端末について、前記ＩＤが前記端末の電話番号であることを特徴とする端末を提案している。
【０００９】
（３）本発明は、（１）または（２）の端末について、前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とする端末を提案している。
【００１０】
（４）本発明は、耐タンパデバイスと演算処理手段と制御手段と送信手段とを備えた端末におけるＩＤ型署名暗号方法であって、前記制御手段が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を前記演算処理手段に実行させる第１のステップと、
該演算結果を前記耐タンパデバイスに送信する第２のステップと、前記耐タンパデバイスが、該受信した演算結果を用いて、前記秘密鍵を必要とする演算処理のみを実行する第３のステップと、前記耐タンパデバイスが、前記制御手段に演算結果を送信する第４のステップと、前記制御手段が、前記送信手段を介して、暗号化された署名を検証サーバに送信する第５のステップと、を備えたことを特徴とするＩＤ型署名暗号方法を提案している。
【００１１】
（５）本発明は、（４）のＩＤ型署名暗号方法について、前記ＩＤが前記端末の電話番号であることを特徴とするＩＤ型署名暗号方法を提案している。
【００１２】
（６）本発明は、（４）または（５）のＩＤ型署名暗号方法について、前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とするＩＤ型署名暗号方法を提案している。
【００１３】
（７）本発明は、耐タンパデバイスと演算処理手段と制御手段と送信手段とを備えた端末におけるＩＤ型署名暗号方法をコンピュータに実行させるためのプログラムであって、前記制御手段が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を前記演算処理手段に実行させる第１のステップと、該演算結果を前記耐タンパデバイスに送信する第２のステップと、前記耐タンパデバイスが、該受信した演算結果を用いて、前記秘密鍵を必要とする演算処理のみを実行する第３のステップと、前記耐タンパデバイスが、前記制御手段に演算結果を送信する第４のステップと、前記制御手段が、前記送信手段を介して、暗号化された署名を検証サーバに送信する第５のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００１４】
（８）本発明は、（７）のプログラムについて、前記ＩＤが前記端末の電話番号であることを特徴とするプログラムを提案している。
【００１５】
（９）本発明は、（７）または（８）のプログラムについて、前記耐タンパデバイスがＵＩＭ（Ｕｓｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ）であることを特徴とするプログラムを提案している。
【発明の効果】
【００１６】
本発明によれば、高速かつ安全性の高い署名並びにユーザ認証を実現できるという効果がある。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態に係るシステムの構成を示す図である。
【図２】本発明の実施形態に係る端末の構成を示す図である。
【図３】本発明の実施形態に係るＩＤ型署名暗号方法の処理を示す図である。
【図４】本発明の実施形態に係るＩＤ型署名暗号方法の処理の具体例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００１９】
＜実施形態＞
図１から図４を用いて、本発明の実施形態について説明する。
【００２０】
＜システムの構成＞
図１に示すように、本実施形態に係るシステムは、端末１００と検証サーバ２００とから構成されている。
【００２１】
端末１００は、ＩＤ型署名の生成処理を本体のＣＰＵとＵＩＭとに分割して行う。つまり、秘密鍵を用いる処理については、ＵＩＭで実行し、その他の処理を本体のＣＰＵで行う。なお、詳細については、後述する。検証サーバ２００は、端末１００が生成したＩＤ型署名の正当性を検証する。
【００２２】
＜端末の構成＞
図２に示すように、本実施形態に係る端末は、制御部１１０と、演算処理部１２０と、耐タンパデバイス１３０と、送信部１４０とから構成されている。
【００２３】
演算処理部１２０は、端末全体の主たる演算処理を行う。制御部１１０は、ＩＤ型署名暗号処理において、秘密鍵を必要とする演算処理のみを耐タンパデバイス１３０内で実行させ、他の演算処理を演算処理部１２０にて実行させる。送信部１４０は、ＩＤ型署名暗号処理において、暗号化された署名を検証サーバ２００に送信する。
【００２４】
以下、具体的に、各構成要素の機能について説明する。
まず、Ｐ∈Ｇ1とし、乱数ｓ∈（Ｚ/ｑＺ）＊をマスター鍵。Ｐｐｕｂ＝ｓＰを公開鍵、Ｈ1：{０，１}＊→Ｇ1とＨ：{０，１}×Ｇ2→（Ｚ/ｑＺ）＊をハッシュ関数とし、公開個人情報ＩＤ∈{０、１}＊に対して、公開鍵をＱＩＤ＝Ｈ1（ＩＤ）∈Ｇ1、秘密鍵をＳＩＤ＝ｓＱＩＤとする。
【００２５】
上記の前提のもとに、メッセージｍ∈{０，１}＊を秘密鍵ＳＩＤで署名するために、端末は、任意のＰ∈Ｇ1＊と乱数ｋ∈（Ｚ/ｑＺ）＊を用いて以下の３つのステップの演算を行う。
【００２６】
１）ｒ：＝ｅ（Ｐ1、Ｐ）ｋ∈Ｇ1
２）ｖ：＝Ｈ（ｍ、ｒ）∈（Ｚ/ｑＺ）＊
３）ｕ：＝ｖＳＩＤ＋ｋＰ1∈Ｇ1
このとき、署名は、（ｕ、ｖ）∈Ｇ1×（Ｚ/ｑＺ）＊である。
【００２７】
上記、３つのステップのうち、秘密鍵ＳＩＤを用いる演算は、最後のステップのみである。そのため、制御部は、ステップ１）、ステップ２）の演算を演算処理部１２０において実行させ、ステップ３）のみの演算を耐タンパデバイス１３０に実行させる。
【００２８】
また、検証サーバ２００は、公開鍵ＱＩＤと端末から受信したメッセージｍおよび署名（ｕ、ｖ）とからｒ´＝ｅ（ｕ、Ｐ）ｅ（ＱＩＤ、−Ｐｐｕｂ）ｖを計算し、ｖ＝Ｈ（ｍ、ｒ´）となることを確認して認証を行う。
【００２９】
本例において、（ｕ、ｖ）が、上記のように与えられているとすれば、
ｒ´＝ｅ（ｕ、Ｐ）ｅ（ＱＩＤ、−Ｐｐｕｂ）ｖ
＝ｅ（ｖＳＩＤ＋ｋＰ1、Ｐ）ｅ（ＱＩＤ、−Ｐｐｕｂ）ｖ
＝ｅ（ｖｓＱＩＤ、Ｐ）ｅ（ｋＰ1、Ｐ）ｅ（ＱＩＤ、−Ｐｐｕｂ）ｖ
＝ｅ（ＱＩＤ、Ｐｐｕｂ）ｖｅ（ｋＰ1、Ｐ）ｅ（ＱＩＤ、Ｐｐｕｂ）-ｖ
＝ｅ（Ｐ1、Ｐ）ｋ＝ｒ
が成り立つため、ｖ＝Ｈ（ｍ、ｒ）となる。なお、署名の際に、端末が任意にＰ1∈Ｇ1をとるため、予めｅ（Ｐ1、Ｐ）は、計算されているとしてもかまわず、たとえば、Ｐ1＝Ｐとしてもよい。
【００３０】
＜端末の処理＞
図３および図４を用いて、本実施形態に係る端末の処理について説明する。
【００３１】
まず、図３に示すように、制御部１１０が、ＩＤ型署名暗号処理において、秘密鍵を必要としない演算処理を演算処理部１２０に実行させ（ステップＳ１１０）、演算結果を耐タンパデバイス１３０に送信する（ステップＳ１２０）。
【００３２】
次に、耐タンパデバイス１３０が、受信した演算結果を用いて、秘密鍵を必要とする演算処理のみを実行し（ステップＳ１３０）、制御部１１０に演算結果を送信する（ステップＳ１４０）。そして、制御部１１０は、送信部１４０を介して、署名を検証サーバ２００に送信する（ステップＳ１５０）。
【００３３】
以下、図４を用いて、具体的に、本実施形態に係る端末の処理について説明する。
まず、Ｐ∈Ｇ1とし、乱数ｓ∈（Ｚ/ｑＺ）＊をマスター鍵。Ｐｐｕｂ＝ｓＰを公開鍵、Ｈ1：{０，１}＊→Ｇ1とＨ：{０，１}×Ｇ2→（Ｚ/ｑＺ）＊をハッシュ関数とし、公開個人情報ＩＤ∈{０、１}＊に対して、公開鍵をＱＩＤ＝Ｈ1（ＩＤ）∈Ｇ1、秘密鍵をＳＩＤ＝ｓＱＩＤとする。
【００３４】
上記の前提のもとに、メッセージｍ∈{０，１}＊を秘密鍵ＳＩＤで署名するために、端末は、任意のＰ∈Ｇ1＊と乱数ｋ∈（Ｚ/ｑＺ）＊を用いて以下の３つのステップの演算を行う。
【００３５】
１）ｒ：＝ｅ（Ｐ1、Ｐ）ｋ∈Ｇ1
２）ｖ：＝Ｈ（ｍ、ｒ）∈（Ｚ/ｑＺ）＊
３）ｕ：＝ｖＳＩＤ＋ｋＰ1∈Ｇ1
このとき、署名は、（ｕ、ｖ）∈Ｇ1×（Ｚ/ｑＺ）＊である。
【００３６】
上記、３つのステップのうち、秘密鍵ＳＩＤを用いる演算は、最後のステップのみである。そのため、制御部は、ステップ１）、ステップ２）の演算を演算処理部１２０において実行させ、ステップ３）のみの演算を耐タンパデバイス１３０に実行させる。
【００３７】
つまり、まず、演算処理部１２０が、乱数ｋを生成して、ｒ：＝ｅ（Ｐ1、Ｐ）ｋ∈Ｇ1を演算し（ステップＳ２１０）、次いで、メッセージｍと演算したｒとから、ｖ：＝Ｈ（ｍ、ｒ）∈（Ｚ/ｑＺ）＊を演算する（ステップＳ２２０）。
【００３８】
制御部１１０は、演算処理部１２０から乱数ｋとｖとを受信し、耐タンパデバイス１３０に送信する（ステップＳ２３０）。
【００３９】
耐タンパデバイス１３０は、格納されているＳＩＤを用いて、ｕ：＝ｖＳＩＤ＋ｋＰ1∈Ｇ1を演算し（ステップＳ２４０）、送信部１４０が、演算したｕを検証サーバ２００に送信する（ステップＳ２５０）。
【００４０】
以上、説明したように、本実施形態によれば、耐タンパデバイスと端末の演算処理部との間で、署名処理を分割して実行させることにより、秘密鍵の漏洩を防止しつつ、高速な署名処理を実現することができる。
【００４１】
なお、端末の処理をコンピュータシステムが読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを端末に読み込ませ、実行することによって本発明の端末を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００４２】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００４３】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４４】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００４５】
１００；端末
１１０；制御部
１２０；演算処理部
１３０；耐タンパデバイス
１４０；送信部
２００；検証サーバ
【図１】
2015037298.tif 000003
【図２】
2015037298.tif 000004
【図３】
2015037298.tif 000005
【図４】
2015037298.tif 000006