(57)【要約】【課題】ノードへの負担を軽減するために、セキュリティ処理計算の一部を委託するシステムにおいて、被計算委託サーバを用いて、サーバ証明書の検証結果をノードが把握できるようにする。【解決手段】本発明に係る通信装置は、複数の被計算委託サーバとの間で情報の授受を行う送受信手段と、各被計算委託サーバとの間で適切な鍵及び暗号アルゴリズムを選択して、被計算サーバとの間で授受する情報を暗号化又は復号する暗号処理手段と、暗号処理手段により暗号化された署名検証に必要なパラメータを、各被計算委託サーバに与えて、各被計算委託サーバに署名検証計算を委託する検証計算委託手段と、各被計算委託サーバから取得した署名検証の各検証結果の評価を行う結果判定手段とを備える。【選択図】      図１
2016220062.tif 000002
【特許請求の範囲】
【請求項１】
複数の被計算委託サーバとの間で情報の授受を行う送受信手段と、
上記各被計算委託サーバとの間で適切な鍵及び暗号アルゴリズムを選択して、上記被計算サーバとの間で授受する情報を暗号化又は復号する暗号処理手段と、
上記暗号処理手段により暗号化された署名検証に必要なパラメータを、上記各被計算委託サーバに与えて、上記各被計算委託サーバに署名検証計算を委託する検証計算委託手段と、
上記各被計算委託サーバから取得した署名検証の各検証結果の評価を行う結果判定手段と
を備えることを特徴とする通信装置。
【請求項２】
上記検証計算委託手段が、上記署名検証に必要なパラメータとして、署名対象メッセージ若しくは当該署名対象メッセージを一意に識別する情報と、署名検証鍵と、署名情報とを含む情報を、委託先の上記各被計算委託サーバに与えるものであることを特徴とする請求項１に記載の通信装置。
【請求項３】
上記検証計算委託手段が、公開鍵証明書における署名情報の検証を委託するパラメータとして、当該公開鍵証明書の発行先の識別情報若しくは当該識別情報に一意に変換可能な識別情報を含む情報を、委託先の上記各被計算委託サーバに与えることを特徴とする請求項１に記載の通信装置。
【請求項４】
上記各被計算委託サーバによる署名検証の計算が、楕円曲線ディジタル署名アルゴリズムにおける署名検証計算であり、
上記結果判定手段が、上記複数の被計算委託サーバのそれぞれから取得した、有理点のＸ成分の整数表現値と署名情報の第１の成分値とを含む各検証結果を比較し、全ての上記有理点のＸ成分の整数表現値と署名情報の第１の成分値が等しい場合に検証成功と判定し、そうでない場合に検証失敗と判定する
ことを特徴とする請求項１〜３のいずれかに記載の通信装置。
【請求項５】
署名検証の委託元である通信装置との間で情報の授受を行う送受信手段と、
上記通信装置との間で適切な鍵及び暗号アルゴリズムを選択して、上記通信装置との間で授受する情報を暗号化又は復号する暗号処理手段と、
署名検証の委託元である通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行い、その署名検証の検証結果を委託元に与える検証計算手段と
を備えることを特徴とするサーバ。
【請求項６】
上記検証計算手段が、楕円曲線ディジタル署名アルゴリズムにおける署名検証計算を行うものであり、有理点のＸ成分の整数表現値と署名情報の第１の成分値とを含む検証結果を委託元に与えることを特徴とする請求項５に記載のサーバ。
【請求項７】
上記検証計算手段が、公開鍵証明書における認証局により生成された署名情報の検証を行うものであり、
上記委託元から取得した署名検証に必要なパラメータが、上記公開鍵証明書の発行先の識別情報又は当該識別情報に一意に変換可能な識別情報を含み、
上記検証計算手段が、上記公開鍵証明書の発行先の識別情報若しくは当該識別情報に一意に変換可能な識別情報を持つエンティティの上記公開鍵証明書を取得し、その取得した公開鍵証明書における署名情報を、上記認証局の署名検証鍵を用いて署名検証の計算を行う
ことを特徴とする請求項５に記載のサーバ。
【請求項８】
署名検証の委託元である通信装置と、
上記通信装置から署名検証計算の委託を受けて、署名検証計算を行う複数のサーバと
を備える署名検証委託システムにおいて、
上記通信装置が、暗号化された署名検証に必要なパラメータを、上記各サーバに送信し、
上記各サーバが、上記通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行ない、その署名検証の検証結果を委託元に送信し、
上記通信装置が、上記各サーバから取得した署名検証の各検証結果の評価を行う
ことを特徴とする署名検証委託システム。
【請求項９】
上記通信装置が、上記署名検証に必要なパラメータとして、署名対象メッセージ若しくは当該署名対象メッセージを一意に識別する情報と、署名検証鍵と、署名情報とを含む情報を、上記各サーバに送信することを特徴とする請求項８に記載の署名検証委託システム。
【請求項１０】
上記通信装置が、公開鍵証明書における署名検証に必要なパラメータとして、当該公開鍵証明書の発行先の識別情報若しくは当該識別情報に一意に変換可能な識別情報を含む情報を、上記各サーバに送信し、
上記各サーバが、公開鍵証明書における認証局により生成された署名情報の検証を行うものであり、上記公開鍵証明書の発行先の識別情報若しくは当該識別情報に一意に変換可能な識別情報を持つエンティティの上記公開鍵証明書を取得し、その取得した公開鍵証明書における署名情報を、上記認証局の署名検証鍵を用いて署名検証の計算を行ない、得られた検証結果を上記通信装置に送信する
ことを特徴とする署名検証委託システム。
【請求項１１】
上記各サーバによる署名検証の計算が、楕円曲線ディジタル署名アルゴリズムにおける署名検証計算であり、
上記通信装置が、上記複数の被計算委託サーバのそれぞれから取得した、有理点のＸ成分の整数表現値と署名情報の第１の成分値とを含む各検証結果を比較し、全ての上記有理点のＸ成分の整数表現値と署名情報の第１の成分値が等しい場合に検証成功と判定し、そうでない場合に検証失敗と判定する
ことを特徴とする請求項８〜１０のいずれかに記載の署名検証委託システム。
【請求項１２】
署名検証の委託元である通信装置と、
上記通信装置から署名検証計算の委託を受けて、署名検証計算を行う複数のサーバと
を備える署名検証委託システムの署名検証委託方法において、
上記通信装置が、暗号化された署名検証に必要なパラメータを、上記各サーバに送信し、
上記各サーバが、上記通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行ない、その署名検証の検証結果を委託元に送信し、
上記通信装置が、上記各サーバから取得した署名検証の各検証結果の評価を行う
ことを特徴とする署名検証委託方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、サーバ、署名検証委託システム及び署名検証委託方法に関し、例えば、盗聴や改ざん等に対して安全な通信（セキュアな通信）を確立するネットワークを構築するクライアント及びサーバに適用し得るものである。
【背景技術】
【０００２】
ＴＬＳプロトコル（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｐｒｏｔｏｃｏｌ：ＲＦＣ５２４６）は、クライアントとサーバとの間にセキュアな通信路を構築するための通信プロトコルである。
【０００３】
例えば、センサネットワークのように、通信帯域やノードの計算リソースが制限されたネットワーク環境において、ノードが証明書ベースのＴＬＳハンドシェイクプロトコルを実施することは、通信帯域や計算リソースの観点で、ノードに大きな負担をかけることになる。その結果、ノードは、本来行うべき処理や通信が遅延することになる。
【０００４】
そのため、ノードへの負担を軽減するために、セキュリティ処理計算の一部を委託するシステムが求められている。
【０００５】
特許文献１には、ＴＬＳハンドシェイクプロトコルにおいて、本来、ノードが行う通信、及びセキュリティ処理計算の一部を、外部のサーバに委託するシステムが開示されている。
【０００６】
また、非特許文献１には、検証委託可能な署名方式が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特願２０１４−１６０６４３号公報
【非特許文献】
【０００８】
【非特許文献１】南雲皓介，田中圭介，“検証委託署名方式とその安全性について”，暗号と情報セキュリティシンポジウム，第３１回，セッション１Ｃ３−１，２０１４年１月２１日
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ＴＬＳハンドシェイクプロトコルの主要な役割として、クライアントと、サーバとの間で暗号セッション鍵の確立と、通信相手の認証を行うことが挙げられる。
【００１０】
特に、なりすましのエンティティを排除するための認証は、重要なファクタである。
【００１１】
証明書ベースのＴＬＳハンドシェイクプロトコルを行う前に先立って、各エンティティ（ｅｇ．ＴＬＳクライアント、ＴＬＳサーバ）は、証明書認証局（ＣＡ：Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）から発行された公開鍵ペアのうち、秘密鍵を秘密裏に持つ。また公開鍵はＣＡの署名とともに公開鍵証明書に記載されて、各エンティティが持つ。この公開鍵証明書は、ＣＡの署名が付与されるため、当該ＣＡ以外は偽造できない。
【００１２】
証明書ベースのＴＬＳハンドシェイクプロトコルでは、エンティティ認証の第１のステップとして、被認証側エンティティが検証側エンティティに公開鍵証明書を渡し、検証側は公開鍵証明書に記載されている内容を確認し、さらにＣＡの署名を検証する。次に、第２ステップとして、検証側エンティティは、被認証側エンティティが公開鍵に対応する秘密鍵情報を持っているかをテストすることで認証が完結する。
【００１３】
特許文献１に示されているＴＬＳハンドシェイクの一部処理委託システムは、ＴＬＳクライアントとなるノードの通信や計算処理の一部を、無線ＮＷ管理端末や計算サーバに委託することを特徴とする。しかし、システム中の無線ＮＷ管理端末にＴＬＳサーバの証明書（以下、サーバ証明書とも呼ぶ。）の検証を一任するため、もし無線ＮＷ管理端末が信頼できない場合には、認証への信頼性を保つことができない。例えば、無線ＮＷ管理端末が、ノードが所望するＴＬＳサーバとは別のＴＬＳサーバに接続してＴＬＳハンドシェイクを実行した場合、ノードはこれを検出することができない。
【００１４】
一方、非特許文献１では、Ｂｉｌｉｎｅａｒ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ問題に基づいた検証委託可能なディジタル署名方式が提案されている。しかし、この方式は、現時点でＴＬＳのような標準プロトコルのディジタル署名方式として採用されていないため、利用することができない。また、当該非特許文献１の７．２節の記載によれば、検証委託した場合であっても１回のｂｉｌｉｎｅａｒ  ｍａｐ計算と、具体的な数値は不明ながらＭ＋ｒ回の指数演算が必要になるなど、委託するノード側で比較的負担の大きな計算が必要となる。
【００１５】
そこで、本発明は、上記課題に鑑み、ノードへの負担を軽減するために、セキュリティ処理計算の一部を委託するシステムにおいて、被計算委託サーバを用いて、サーバ証明書の検証結果をノードが把握することを可能とするものである。
【課題を解決するための手段】
【００１６】
かかる課題を解決するために、第１の本発明に係る通信装置は、（１）複数の被計算委託サーバとの間で情報の授受を行う送受信手段と、（２）各被計算委託サーバとの間で適切な鍵及び暗号アルゴリズムを選択して、被計算サーバとの間で授受する情報を暗号化又は復号する暗号処理手段と、（３）暗号処理手段により暗号化された署名検証に必要なパラメータを、各被計算委託サーバに与えて、各被計算委託サーバに署名検証計算を委託する検証計算委託手段と、（４）各被計算委託サーバから取得した署名検証の各検証結果の評価を行う結果判定手段とを備えることを特徴とする。
【００１７】
第２の本発明に係るサーバは、（１）署名検証の委託元である通信装置との間で情報の授受を行う送受信手段と、（２）通信装置との間で適切な鍵及び暗号アルゴリズムを選択して、通信装置との間で授受する情報を暗号化又は復号する暗号処理手段と、（３）署名検証の委託元である通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行い、その署名検証の検証結果を委託元に与える検証計算手段とを備えることを特徴とする。
【００１８】
第３の本発明に係る署名検証委託システムは、署名検証の委託元である通信装置と、通信装置から署名検証計算の委託を受けて、署名検証計算を行う複数のサーバとを備える署名検証委託システムにおいて、（１）通信装置が、暗号化された署名検証に必要なパラメータを、各サーバに送信し、（２）各サーバが、通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行ない、その署名検証の検証結果を委託元に送信し、（３）通信装置が、各サーバから取得した署名検証の各検証結果の評価を行うことを特徴とする。
【００１９】
第４の本発明に係る署名検証委託方法は、署名検証の委託元である通信装置と、通信装置から署名検証計算の委託を受けて、署名検証計算を行う複数のサーバとを備える署名検証委託システムの署名検証委託方法において、（１）通信装置が、暗号化された署名検証に必要なパラメータを、各サーバに送信し、（２）各サーバが、通信装置から取得した署名検証に必要なパラメータを用いて署名検証の計算を行ない、その署名検証の検証結果を委託元に送信し、（３）通信装置が、各サーバから取得した署名検証の各検証結果の評価を行うことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、ノードへの負担を軽減するために、セキュリティ処理計算の一部を委託するシステムにおいて、被計算委託サーバを用いて、サーバ証明書の検証結果をノードが把握できる。
【図面の簡単な説明】
【００２１】
【図１】実施形態に係るネットワークシステムの構成を示す構成図である。
【図２】実施形態に係るノードの内部構成を示す内部構成図である。
【図３】実施形態に係る被計算委託サーバの内部構成を示す内部構成図である。
【図４】実施形態に係るネットワークシステムにおける署名検証委託方法の処理動作を示すシーケンス図である。
【発明を実施するための形態】
【００２２】
（Ａ）主たる実施形態
本発明に係る通信装置、サーバ、署名検証委託システム及び署名検証委託方法の主たる実施形態を、図面を参照しながら詳細に説明する。
【００２３】
（Ａ−１）サーバ証明書の署名の検証方法の例
以下の実施形態では、ノードがＴＬＳサーバのサーバ証明書を受け取った後、被計算委託サーバを用いてサーバ証明書を検証する事例を説明する。例えば、サーバ証明書の署名は、楕円曲線暗号を利用した署名方式であるＥＣＤＳＡ署名方式（ダイジェスト関数にＳＨＡ２５６を利用する。）を仮定するが、これに限定されるものではなく、別の公開鍵署名方式であってもよい。
【００２４】
なお、楕円曲線暗号を利用したＴＬＳプロトコルについてはＲＦＣ４４９２に定義されている。この実施形態の説明に先立って、ＥＣＤＳＡ署名生成及び署名検証を説明する。
【００２５】
（ＥＣＤＳＡ署名生成）
素数ｐに対して素体Ｆｐ上の楕円曲線Ｅ（Ｆｐ）と、Ｅ（Ｆｐ）上のベースポイントＧ及び、Ｇの位数Ｎはシステム共通のパラメータである。本実施形態ではＮは素数とする。また、署名者は署名鍵ｘを秘密に保持し、Ｇのｘ倍点であるｘＧを検証鍵として公開する。ここでは検証鍵ｘＧ＝Ｐｘとする。
【００２６】
署名者は、メッセージＭのディジタル署名σを生成するとき、以下の手順を実行する。なお、整数表現（値）とは、メッセージＭを一意に識別する値であり、例えばハッシュ値などを用いることができる。また、メッセージＭは、種々の情報とすることができるが、例えばＩＰアドレス等のようにノードの識別情報とすることができる。
（ｉ）整数ｋ∈［１，Ｎ−１］をランダムに選ぶ
（ｉｉ）ｋＧ＝（ｘｋ，ｙｋ）を計算し、ｘｋを整数表現ｒにする
（ｉｉｉ）ｒ≡０（ｍｏｄＮ）ならば（ｉ）に戻る
（ｉｖ）メッセージＭのダイジェスト関数値の整数表現をｍとする
（ｖ）整数ｓを、式（１）で計算する。
ｓ＝ｋ−１（ｍ＋ｘｒ）  ｍｏｄ  Ｎ    …（１）
ただし、ｋ−１は素体Ｆｐの乗法群における逆元である
（ｖｉ）（ｒ，ｓ）が署名σとなる。
【００２７】
（ＥＣＤＳＡ署名検証）
検証者は、予め署名者の公開鍵Ｐｘを安全に入手しているものとする。検証者は、メッセージＭと、署名σ＝（ｒ，ｓ）を入手すると、以下の手順により、署名σが当該署名者によって生成され、かつメッセージＭに改ざんがないことを検証する。
（ｉ）メッセージＭのダイジェスト関数値の整数表現ｍを計算する
（ｉｉ）式（２）に従って計算を行い、得られた有理点のＸ成分ｘｋ’を整数表現ｒ’に変換する
ｍｓ−１Ｇ＋ｒｓ−１Ｐｘ＝（ｘｋ’，ｙｋ’）    …（２）
（ｉｉｉ）ｒ＝ｒ’ならば検証成功とし、そうでなければ検証失敗とする。
【００２８】
（Ａ−２）実施形態の構成
図１は、この実施形態に係るネットワークシステムの構成を示す構成図である。図１において、実施形態に係るネットワークシステム１０は、無線ネットワーク５００に接続可能な複数のノード１００と、インターネット６００に接続可能な被計算委託サーバ３００と４００とを有する。
【００２９】
なお、無線ＮＷ管理端末２００は、無線ネットワーク５００とインターネット６００との間に介在しており、無線ネットワーク５００とインターネット６００との間で授受される情報を中継するものである。
【００３０】
ノード１００は、無線ＮＷ管理端末２００をネットワークコーディネータとする無線ネットワーク５００のノード（通信装置）である。ノード１００は、無線ＮＷ管理端末２００を経由してインターネット６００上の被計算委託サーバ（３００、４００）と通信することができる。ノード１００と被計算委託サーバ３００、４００との間の通信方法は、必ずしも１通りではないが、例えばＺｉｇＢｅｅＩＰ標準規格を適用することが挙げられる。
【００３１】
被計算委託サーバ（３００，４００）は、インターネット６００上のサーバであり、本実施形態ではノード１００が行う署名検証計算をノード１００に代わって実行し、検証計算結果をノード１００に返信するものである。なお、ノード１００は、被計算委託サーバ３００と事前共通鍵Ｋ１を、被計算委託サーバ４００と事前共有鍵Ｋ２をそれぞれ予め共有している。
【００３２】
また、本実施形態では、２台の被計算委託サーバを用いて、署名検証計算を行う場合を例示するが、３台以上の被計算委託サーバを用いて署名検証計算を代行するようにしても良い。
【００３３】
本実施形態ではＥＣＤＳＡ署名方式を前提として説明する。以下では、ノード１００、被計算委託サーバ（３００、４００共に同一構成）の構成を順に説明する。
【００３４】
（Ａ−２−１）ノード１００の内部構成
図２は、実施形態に係るノード１００の内部構成を示す内部構成図である。図２において、ノード１００は、送受信部１０１、暗号処理部１０２、事前共有鍵保持部１０３、検証計算委託部１０４、結果判定部１０５を有する。なお、ノード１００のハードウェアは、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、入出力インタフェース部、無線通信部等を有するものであり、ＣＰＵが、ＲＯＭに格納されている処理プログラムを処理することにより、ノード１００の機能を実現する。また、処理プログラムがノード１００にインストールされることにより、ノード１００としての機能が構築されるものとしても良い。
【００３５】
送受信部１０１は、被計算委託サーバ３００及び４００と通信する処理部又は装置である。送受信部１０１は、通信するための適切な手段（例えば、通信プロトコル、通信インタフェース等）を有している。
【００３６】
暗号処理部１０２は、事前共有鍵保持部１０３に記憶されている共有鍵である暗号鍵から適切な鍵を選んで、所定の暗号アルゴリズムを用いてメッセージを暗号化したり、若しくは、暗号化されたメッセージを復号化したりするものである。暗号処理部１０２による暗号化処理は、リプレイ攻撃を考慮したカウンタの利用や、メッセージ改ざんを検出するためのメッセージ認証符号の生成・検証も行うものとする。
【００３７】
事前共有鍵保持部１０３は、被計算委託サーバ３００及び４００との間で共有する共通鍵Ｋ１及び共通鍵Ｋ２を記憶している。
【００３８】
検証計算委託部１０４は、被計算委託サーバ３００及び４００に署名検証計算を被計算委託サーバ３００及び４００に委託するものである。具体的には、検証計算委託部１０４は、被計算委託サーバ３００及び４００のそれぞれと共有する事前共通鍵を用いて、署名の検証に必要なパラメータを暗号化し、それら暗号化した署名に必要なパラメータをそれぞれ、被計算委託サーバ３００及び被計算委託サーバ４００に送信する。より具体的には、本実施形態の場合、公開鍵証明書の署名対象メッセージをＭとし、ＭのＳＨＡ−２５６ダイジェスト関数値の整数表現情報をｍとし、同じく公開鍵証明書に記載されているメッセージＭに対するＣＡによるディジタル署名情報をσ＝（ｒ，ｓ）とし、該署名情報σを検証するための公開鍵をＰＫとするとき、該パラメータは（ｍ，ＰＫ，σ）である。
【００３９】
結果判定部１０５は、被計算委託サーバ３００から検証結果Ｒ１を取得し、又同様に、被計算委託サーバ４００から検証結果Ｒ２を取得し、検証の成否を判定する。ただし、検証結果Ｒ１及び検証結果Ｒ２は、被計算委託サーバ３００及び４００により暗号化されて送られてくる。
【００４０】
ここで、検証結果Ｒ１は、被計算委託サーバ３００において、前述のディジタル署名情報σ、公開鍵ＰＫを用いて、前述の式（２）により計算して得られた、有理点のＸ成分を整数表現に変換した結果ｒ１’と、ディジタル署名情報の第１の成分ｒ（便宜的にｒ１とする。）とを含む情報（ｒ１，ｒ１’）である。
【００４１】
同様に、検証結果Ｒ２は、被計算委託サーバ４００において、ディジタル署名情報σを、公開鍵ＰＫを用いて、前述の式（２）により計算して得られた、有理点のＸ成分を整数表現に変換した結果ｒ２’と、ディジタル署名情報の第１の成分ｒ（便宜的にｒ２とする。）とを含む情報（ｒ２，ｒ２’）である。
【００４２】
この実施形態において結果判定部１０５は、送受信部１０１を介して、検証結果Ｒ１及び検証結果Ｒ２を受信した際、ｒ１＝ｒ１’＝ｒ２＝ｒ２’が成立する場合に、「検証成功」と判定する。一方、成立しない場合、結果判定部１０５は「検証失敗」と判定する。
【００４３】
（Ａ−２−２）被計算委託サーバの内部構成
図３は、この実施形態に係る被計算委託サーバ７００の内部構成を示す内部構成図である。
【００４４】
被計算委託サーバ３００及び４００の内部構成は、基本的には同一の構成を備えて共通の機能を実現するものである。したがって、図３では、被計算委託サーバ７００と表現して、被計算委託サーバ３００及び４００の共通の機能を説明する。
【００４５】
図３において、被計算委託サーバ７００は、送受信部７０１、暗号処理部７０２、事前共有鍵保持部７０３、検証計算部７０４を有する。
【００４６】
なお、被計算委託サーバ７００のハードウェアは、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＥＥＰＲＯＭ、入出力インタフェース部、無線通信部等を有するものであり、ＣＰＵが、ＲＯＭに格納されている処理プログラムを処理することにより、被計算委託サーバ７００の機能を実現する。また、処理プログラムが被計算委託サーバ７００にインストールされることにより、被計算委託サーバ７００としての機能が構築されるものとしても良い。
【００４７】
送受信部７０１は、ノード１００と通信する処理部又は装置であり、通信手段（通信プロトコル、通信インタフェース）を有する。
【００４８】
暗号処理部７０２は、事前共有鍵保持部７０３において記憶されている共有鍵である暗号鍵から適切な鍵を選んで所定の暗号アルゴリズムを用いてメッセージを暗号化したり、若しくは、暗号化されたメッセージを復号化したりするものである。
【００４９】
事前共有鍵保持部７０３は、ノード１００との間で共有する、共通鍵Ｋ１若しくは共通鍵Ｋ２を記憶している。すなわち、被計算委託サーバ３００は、事前共有鍵保持部７０３に共通鍵Ｋ１をあらかじめ記憶しており、被計算委託サーバ４００は、事前共有鍵保持部７０３に共通鍵Ｋ２をあらかじめ記憶している。例えば、事前共有鍵保持部７０３は、ノード１００の識別情報と共通鍵とを対応付けて保持しており、ノード１００の識別情報に基づいて、対応する共通鍵を読み出すことができる構成となっている。ノード１００の識別情報は、ノード１００を特定することができる１又は複数の情報とすることができ、例えば、ＭＡＣアドレス等のアドレス情報としても良いし、ノード１００を一意に特定できる情報としても良い。いずれにしても、ノード１００から署名検証委託の要求を取得したときに、要求元のノード１００の共通鍵を読み出す種々の方法を適用することができる。
【００５０】
検証計算部７０４は、署名の検証に必要なパラメータを受信して、署名方式に規定される署名検証計算を行うものである。本実施形態において、該パラメータは、前述の（ｍ，ＰＫ，σ）であり、送受信部７０１においてノード１００から暗号化された状態で受信し、暗号処理部７０２により復号されることで検証計算部７０４は該パラメータを取得する。次に、検証計算部７０４は、ハッシュ値ｍを上述の式（２）により計算して得られた、有理点のＸ成分を整数表現に変換した結果ｒ’と、ディジタル署名情報の第１の成分ｒとを含む情報を、暗号処理部７０２に出力する。暗号処理部７０２により暗号化されて得た情報Ｒは、ノード１００に送信される。
【００５１】
（Ａ−３）実施形態の動作
次に、この実施形態に係るネットワークシステム１０における署名検証委託方法の処理動作を、図面を参照しながら詳細に説明する。
【００５２】
図４は、この実施形態に係るネットワークシステム１０における署名検証委託方法の処理動作を示すシーケンス図である。
【００５３】
いま、ノード１００は検証者であり、メッセージＭと、該メッセージＭに対する署名者のディジタル署名σと、安全に入手した署名者の公開鍵ＰＫとがノード１００に与えられているものとする。
【００５４】
以下、図４を用いて、ノード１００が、被計算委託サーバ３００，４００を用いてディジタル署名σを公開鍵ＰＫで検証する処理の流れを説明する。
【００５５】
（ステップｓ１）
ノード１００において、暗号処理部１０２は、事前共有鍵保持部１０３に記憶されている共有鍵Ｋ１を暗号鍵として、パラメータ（ｍ，ＰＫ，σ）を暗号化する。そして、暗号処理部１０２は、暗号メッセージｅｎｃ（Ｋ１，ｍ｜｜ＰＫ｜｜σ）を送受信部１０１に与える。送受信部１０１は、暗号メッセージｅｎｃ（Ｋ１，ｍ｜｜ＰＫ｜｜σ）を含む信号を被計算委託サーバ３００に送信する。
【００５６】
同様に、暗号処理部１０２は、事前共有鍵保持部１０３に記憶されている共有鍵Ｋ２を暗号鍵として、パラメータ（ｍ，ＰＫ，σ）を暗号化して、暗号メッセージｅｎｃ（Ｋ２，ｍ｜｜ＰＫ｜｜０）を得る。そして、暗号処理部１０２は、送受信部１０１を介して、暗号メッセージｅｎｃ（Ｋ２，ｍ｜｜ＰＫ｜｜０）を含む信号を被計算委託サーバ４００に送信する。ここで、ｅｎｃ（Ｋ，Ｘ）はメッセージＸを鍵Ｋで暗号化する関数であり、“｜｜”記号はメッセージの連結を行う演算子である。
【００５７】
（ステップｓ２）
被計算委託サーバ３００において、送受信部７０１は、ノード１００から取得した暗号メッセージｅｎｃ（Ｋ１，ｍ｜｜ＰＫ｜｜σ）を暗号処理部７０２に与える。暗号処理部７０２は、事前共有鍵保持部７０３に記憶している共通鍵Ｋ１を用いて、暗号メッセージｅｎｃ（Ｋ１，ｍ｜｜ＰＫ｜｜σ）を復号する。検証計算部７０４は、ハッシュ値ｈを整数表現ｍに変換した上で上述の式（２）により計算して得られた、有理点のＸ成分を整数表現に変換した結果ｒ’と、ディジタル署名情報の第１の成分ｒとを含む結果Ｒ１を生成する。
【００５８】
同様に、被計算委託サーバ４００において、送受信部７０１は、ノード１００から受信した暗号メッセージｅｎｃ（Ｋ２，ｍ｜｜ＰＫ｜｜σ）を暗号処理部７０２に与える。暗号処理部７０２は、事前共有鍵保持部７０３に記憶している共通鍵Ｋ２を用いて、暗号メッセージｅｎｃ（Ｋ２，ｍ｜｜ＰＫ｜｜σ）を復号する。検証計算部７０４は、ハッシュ値ｈを整数表現ｍに変換した上で、式（２）により計算して得られた、有理点のＸ成分を整数表現に変換した結果ｒ’と、ディジタル署名情報の第１の成分ｒとを含む結果Ｒ２を生成する。
【００５９】
（ステップｓ３）
被計算委託サーバ３００において、検証計算部７０４は、生成した有理点のＸ成分を整数表現に変換した結果ｒ’と、ディジタル署名情報の第１の成分ｒとを含む結果Ｒ１を暗号処理部７０２に出力する。暗号処理部７０２は、事前共有鍵保持部２０３で記憶されている共有鍵Ｋ１で、結果Ｒ１を暗号化した暗号メッセージｅｎｃ（Ｋ１，Ｒ１）を送受信部７０１に与える。送受信部７０１は、暗号メッセージｅｎｃ（Ｋ１，Ｒ１）をノード１００に送信する。
【００６０】
同様に、被計算委託サーバ４００において、検証計算部７０４は、生成した有理点のＸ成分を整数表現に変換した結果ｒ’と、ディジタル署名情報の第１の成分ｒとを含む結果Ｒ２を暗号処理部７０２に出力する。暗号処理部７０２は、事前共有鍵保持部２０３で記憶されている共有鍵Ｋ２で、結果Ｒ２を暗号化した暗号メッセージｅｎｃ（Ｋ２，Ｒ２）を送受信部７０１に与える。送受信部７０１は、暗号メッセージｅｎｃ（Ｋ２，Ｒ２）をノード１００に送信する。
【００６１】
（ステップｓ４）
ノード１００において、送受信部１０１は、被計算委託サーバ３００及び４００からの暗号メッセージｅｎｃ（Ｋ１，Ｒ１）及びｅｎｃ（Ｋ２，Ｒ２）を受信する。暗号メッセージｅｎｃ（Ｋ１，Ｒ１）及びｅｎｃ（Ｋ２，Ｒ２）は、暗号処理部１０２に与えられる。暗号処理部１０２は、事前共有鍵保持部１０３に記憶されている共有鍵Ｋ１及びＫ２を用いて、暗号メッセージｅｎｃ（Ｋ１，Ｒ１）及びｅｎｃ（Ｋ２，Ｒ２）のそれぞれを復号する。この暗号処理部１０２により復号された結果Ｒ１及びＲ２は、結果判定部１０５に与えられる。結果判定部１０５は、暗号処理部１０２から取得した結果Ｒ１及びＲ２に基づいて、ｒ１＝ｒ１’＝ｒ２＝ｒ２’が成立する場合に検証成功と判定する。また、結果判定部１０５は、上記が成立しない場合、検証失敗と判定する。
【００６２】
（Ａ−４）実施形態の効果
以上のように、この実施形態によれば、本来ノードが行うべきＥＣＤＳＡディジタル署名検証計算を、外部のサーバで行わせることにより、ノードへの計算負荷を低減することができる。ノードは、被計算委託サーバとの間で事前に共有した暗号鍵を用いて通信しているため、計算の委託や、結果の取得を行う際に内容が改ざんされたり、リプレイ攻撃を受けたりするリスクを十分に低くすることができる。
【００６３】
また、被計算委託サーバが本来行うべき計算とは異なる計算をした場合であっても、独立した２台の被計算委託サーバの検証結果を比較することにより検知することができる。その結果、ノードは署名検証計算を、安全に委託することができる。
【００６４】
さらに、ノードにおいて、検証結果を評価するための、検証結果の比較以外の演算は発生しない。そのため、ノードの計算に係る負荷を軽減することができる。
【００６５】
（Ｂ）他の実施形態
上述した実施形態においても種々の変形実施形態を言及したが、本発明は、以下の変形実施形態にも適用することができる。
【００６６】
（Ｂ−１）ノードにおける結果判定部は、検証結果Ｒ１とＲ２が食い違う場合に、独自にディジタル署名検証計算を行うようにしても良い。つまり、ノードは、被計算委託サーバが不正な計算を行っていないかを検証することもできる。
【００６７】
（Ｂ−２）本発明を、ＴＬＳハンドシェイクプロトコルにおける公開鍵証明書の検証に利用する場合、もしノードが公開鍵証明書を入手してから実施形態に従うプロトコルを実施した場合、公開鍵証明書が一般的なサイズとして、例えば１キロバイト程度もあることから、ノードの通信量が大きくなってしまう。
【００６８】
ところで公開鍵証明書の検証は、それに含まれるＣＡのディジタル署名の検証を行うことであるから、（ｍ，ＰＫ，σ）のうち、ｍは公開鍵証明書に記述されている情報のハッシュ計算で取得でき、署名σは該公開鍵証明書に記載されている。ＰＫは、ＣＡの署名検証鍵であり、事前に入手しておくことができる。
【００６９】
よって、ノードは、（ｍ，ＰＫ，σ）の代りに、ＴＬＳサーバのアドレス情報（例えば、ＩＰアドレス）又は当該アドレス情報に一意に変換可能な識別情報を暗号化して各被計算委託サーバに送信し、被計算委託サーバは、ＴＬＳハンドシェイクメッセージのＣｌｉｅｎｔＨｅ１１ｏをＴＬＳサーバに送信することにより、得られたＴＬＳサーバの応答から公開鍵証明書を入手し、検証結果Ｒ１若しくは検証結果Ｒ２を計算することができる。
【符号の説明】
【００７０】
１０…ネットワークシステム、１００…ノード、１０１…送受信部、１０２…暗号処理部、１０３…事前共有鍵保持部、１０４…検証計算委託部、１０５…結果判定部、３００及び４００…被計算委託サーバ、７０１…送受信部、７０２…暗号処理部、７０３…事前共有鍵保持部、７０４…検証計算部。
【図１】
2016220062.tif 000003
【図２】
2016220062.tif 000004
【図３】
2016220062.tif 000005
【図４】
2016220062.tif 000006