(57)【要約】【課題】機器の処理性能に関わらず、処理時間の低下を防止しつつ安全性の高い認証付き鍵共有を実現する。【解決手段】認証付き鍵共有プロトコルにより、第１の機器と第２の機器との間で暗号化通信を行うための共有鍵を生成する鍵共有システムであって、前記第１の機器及び前記第２の機器の少なくとも一方の機器は、前記共有鍵を生成するための共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，１を入力する共有値σｊを計算する計算手段と、前記共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋ（ｋ≠ｊ）の計算を、前記機器とネットワークを介して接続された情報処理装置に委託する委託手段と、前記計算手段により計算した共有値σｊと、前記情報処理装置で計算された共有値σｋとを用いて、前記共有鍵を生成する鍵生成手段と、を有することを特徴とする。【選択図】図１
2019208142.tif 000002
【特許請求の範囲】
【請求項１】
認証付き鍵共有プロトコルにより、第１の機器と第２の機器との間で暗号化通信を行うための共有鍵を生成する鍵共有システムであって、
前記第１の機器及び前記第２の機器の少なくとも一方の機器は、
前記共有鍵を生成するための共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，１を入力する共有値σｊを計算する計算手段と、
前記共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋ（ｋ≠ｊ）の計算を、前記機器とネットワークを介して接続された情報処理装置に委託する委託手段と、
前記計算手段により計算した共有値σｊと、前記情報処理装置で計算された共有値σｋとを用いて、前記共有鍵を生成する鍵生成手段と、
を有することを特徴とする鍵共有システム。
【請求項２】
前記σｊ及びσｋは、前記ペアリング演算をｅ、ｇ１を第１の楕円曲線の部分群の生成元、ｇ２を第２の楕円曲線の部分群の生成元、或る整数ａｌ１，ａｌ２，ｂｍ１，ｂｍ２∈Ｚｑとして、
【数１４】
2019208142.tif 000016
で表される、ことを特徴とする請求項１に記載の鍵共有システム。
【請求項３】
前記秘密鍵ＤＡ，１及び前記秘密鍵ＤＡ，１は、異なる群Ｇ１及びＧ２でそれぞれ生成された秘密鍵又は群Ｇ１で生成された１つの秘密鍵を分割した秘密鍵のいずれかである、ことを特徴とする請求項１又は２に記載の鍵共有システム。
【請求項４】
前記認証付き鍵共有プロトコルは、ＦＳＵ又はＣｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔのいずれかである、ことを特徴とする請求項１乃至３の何れか一項に記載の鍵共有システム。
【請求項５】
認証付き鍵共有プロトコルにより他の機器との間で暗号化通信を行うための共有鍵を生成する機器とネットワークを介して接続される情報処理装置であって、
前記機器からの委託に応じて、前記共有鍵の生成に用いられる共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋを計算する委託計算手段と、
前記委託計算手段により計算した共有値σｋを前記機器に送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項６】
認証付き鍵共有プロトコルにより他の機器との間で暗号化通信を行うための共有鍵を生成する機器であって、
前記共有鍵を生成するための共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，１を入力する共有値σｊを計算する計算手段と、
前記共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋ（ｋ≠ｊ）の計算を、前記機器とネットワークを介して接続された情報処理装置に委託する委託手段と、
前記計算手段により計算した共有値σｊと、前記情報処理装置で計算された共有値σｋとを用いて、前記共有鍵を生成する鍵生成手段と、
を有することを特徴とする機器。
【請求項７】
認証付き鍵共有プロトコルにより、第１の機器と第２の機器との間で暗号化通信を行うための共有鍵を生成する鍵共有システムに用いられる鍵共有方法であって、
前記第１の機器及び前記第２の機器の少なくとも一方の機器が、
前記共有鍵を生成するための共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，１を入力する共有値σｊを計算する計算手順と、
前記共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋ（ｋ≠ｊ）の計算を、前記機器とネットワークを介して接続された情報処理装置に委託する委託手順と、
前記計算手順により計算した共有値σｊと、前記情報処理装置で計算された共有値σｋとを用いて、前記共有鍵を生成する鍵生成手順と、
を実行することを特徴とする鍵共有方法。
【請求項８】
コンピュータを、請求項５に記載の情報処理装置における各手段又は請求項６に記載の機器における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵共有システム、情報処理装置、機器、鍵共有方法及びプログラムに関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）機器同士で通信を行ったり、ＩｏＴ機器とゲートウェイ機器やクラウド上のサーバ装置等とが通信を行ったりする場合に、互いの正当性を確認するための認証が重要になってきている。ＩｏＴ機器を対象とする認証方法としては、例えば、パスワードやＰＫＩ（Public Key Infrastructure）を用いた電子証明書等が一般的であるが、ＩＤベース暗号を用いた認証付き鍵共有プロトコルも知られている。ここで、ＩＤベース暗号とは、任意の文字列で表されたＩＤ等の識別子を公開鍵とすることができる公開鍵暗号である。ＩｏＴ機器でＩＤベース暗号を用いる場合には、例えば、ＩｏＴ機器の製造コードやシリアルナンバー等を公開鍵とすることができる。なお、鍵共有プロトコルは、鍵交換プロトコルとも呼ばれる。
【０００３】
認証付き鍵共有プロトコルでは、一般に、暗号化通信のための鍵共有を行いたいデバイス（例えば、ＩｏＴ機器やサーバ装置等）同士が互いに認証を行った上で、この認証に成功した場合に共有鍵が生成される。ＩＤベース暗号を用いた認証付き鍵共有プロトコルとしては、例えば、Ｐｉｎ（Personal identification number）入力を用いた認証付きの鍵共有プロトコルであるＭ−Ｐｉｎ  Ｆｕｌｌ、ペアリングベースの認証付き鍵共有プロトコルであるＦＳＵ（Fujioka-Suzuki-Ustaoglu）、Ｃｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔ等が知られている。
【０００４】
ここで、ＩＤベース暗号を用いた認証付き鍵共有プロトコルでは、マスター秘密鍵を鍵生成センタ（ＫＧＣ：Key Generation Center）が保持し、このマスター秘密鍵から各デバイスの秘密鍵が発行されることで認証が行われる。各デバイスに発行された秘密鍵が第三者に漏洩した場合、この第三者によるなりすましが可能となってしまうため、各デバイスは秘密鍵を厳格に管理する必要がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】NTT Secure Platform Laboratories, NTT Corporation: Specification of FSU version 1.0, ＜ＵＲＬ：https://info.isl.ntt.co.jp/crypt/eng/archive/dl/fsu/FSU.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、秘密鍵を安全に管理するための方法としては、次の２つの方法が考えられる。１つ目の方法は、耐タンパ性のあるセキュアな記憶領域に秘密鍵を保存することで、秘密鍵自体を漏洩しにくくする方法である。２つ目の方法は、複数の秘密鍵を用いることで、秘密鍵の１つが仮に漏洩した場合でもなりすましができないようにする方法である。
【０００７】
しかしながら、耐タンパ性のあるセキュア領域（例えば、ＳＩＭ（Subscriber Identity Module）等）での計算はＰＣ（パーソナルコンピュータ）等と比較して処理性能が低いため、上記の１つ目の方法を用いる場合、現実的な処理時間で鍵共有の実現が難しいことがある。
【０００８】
ここで、上記の２つ目の方法を用いる場合には、暗号化通信のための鍵共有を行いたいデバイス（例えば、ＩｏＴ機器やサーバ等）とは異なる他のデバイスを準備し、この他のデバイスにも秘密鍵を保存することになる。そこで、上記の１つ目の方法を用いる場合に、この他のデバイスに秘密鍵に関する処理を委託することで、暗号化通信のための鍵共有を行いたいデバイスがＩｏＴ機器等であっても、現実的な処理時間で鍵共有を実現することができるようになる。
【０００９】
本発明の実施の形態は、上記の点に鑑みてなされたもので、機器の処理性能に関わらず、処理時間の低下を防止しつつ安全性の高い認証付き鍵共有を実現することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の実施の形態は、認証付き鍵共有プロトコルにより、第１の機器と第２の機器との間で暗号化通信を行うための共有鍵を生成する鍵共有システムであって、前記第１の機器及び前記第２の機器の少なくとも一方の機器は、前記共有鍵を生成するための共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，１を入力する共有値σｊを計算する計算手段と、前記共有値σｉ（ｉ＝１，・・・，ｎ）のうち、ペアリング演算により計算され、かつ、秘密鍵ＤＡ，２を入力する共有値σｋ（ｋ≠ｊ）の計算を、前記機器とネットワークを介して接続された情報処理装置に委託する委託手段と、前記計算手段により計算した共有値σｊと、前記情報処理装置で計算された共有値σｋとを用いて、前記共有鍵を生成する鍵生成手段と、を有することを特徴とする。
【発明の効果】
【００１１】
機器の処理性能に関わらず、処理時間の低下を防止しつつ安全性の高い認証付き鍵共有を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態における鍵共有システムの全体構成の一例を示す図である。
【図２】本発明の実施の形態における機器のハードウェア構成の一例を示す図である。
【図３】本発明の実施の形態におけるサーバ装置及び委託計算装置のハードウェア構成の一例を示す図である。
【図４】本発明の実施の形態における鍵共有システムの機能構成の一例を示す図である。
【図５】本発明の実施の形態における鍵共有処理の一例を示すシーケンス図（実施例１）である。
【図６】本発明の実施の形態における鍵共有処理の一例を示すシーケンス図（実施例２）である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について説明する。本発明の実施の形態では、処理性能が比較的低いＩｏＴ機器等でも処理時間の低下を防止しつつ安全性の高い認証付き鍵共有を実現可能な鍵共有システム１について説明する。
【００１４】
＜全体構成＞
まず、本発明の実施の形態における鍵共有システム１の全体構成について、図１を参照しながら説明する。図１は、本発明の実施の形態における鍵共有システム１の全体構成の一例を示す図である。
【００１５】
図１に示すように、本発明の実施の形態における鍵共有システム１には、１台以上の機器１０と、サーバ装置２０と、委託計算装置３０とが含まれる。また、機器１０と、サーバ装置２０と、委託計算装置３０とは、例えばインターネット等の通信ネットワークＮを介して通信可能に接続されている。
【００１６】
機器１０は、例えば、各種センサ等のＩｏＴ機器である。機器１０は、他の機器１０又はサーバ装置２０との間で、ＩＤベース暗号を用いた認証付き鍵共有（以降では、単に、「認証付き鍵共有」とも表す。）により、暗号化通信のための鍵（共有鍵）を共有する。このとき、機器１０は、複数の秘密鍵を用いた認証付き鍵共有を行うと共に、これら複数の秘密鍵のうちの一部の秘密鍵に関する処理を委託計算装置３０に委託する。
【００１７】
そして、機器１０は、他の機器１０又はサーバ装置２０との間で共有した共有鍵を用いて、当該他の機器１０又はサーバ装置２０との間で暗号化通信を行う。
【００１８】
なお、ＩｏＴ機器としては、各種センサ以外にも、例えば、各種デジタル家電、照明機器、監視カメラ装置、医療機器、産業用機器等の通信可能な種々の機器が挙げられる。本発明の実施の形態における機器１０は、通常のＰＣ（パーソナルコンピュータ）等と比較して処理性能が低いＩｏＴ機器等を想定して説明するが、機器１０はＩｏＴ機器以外であっても良い。例えば、機器１０は、ウェアラブルデバイスやスマートフォン、タブレット端末等であっても良い。
【００１９】
サーバ装置２０は、機器１０からのデータ（例えば、センシングデータ等）を収集する情報処理装置（コンピュータ）である。サーバ装置２０は、機器１０からのデータを収集する際に、当該機器１０との間で、認証付き鍵共有により、暗号化通信のための共有鍵を共有する。そして、サーバ装置２０は、機器１０との間で共有した共有鍵を用いて、当該機器１０との間で暗号化通信を行う。
【００２０】
委託計算装置３０は、例えば、機器１０と物理的に近い場所に設置されたエッジコンピュータ又はフォグコンピュータである。委託計算装置３０は、機器１０が他の機器１０又はサーバ装置２０との間で認証付き鍵共有を行う際に、この認証付き鍵共有に用いられる複数の秘密鍵のうちの一部の秘密鍵に関する処理を行う。
【００２１】
なお、図１に示す鍵共有システム１の構成は一例であって他の構成であっても良い。例えば、機器１０と委託計算装置３０とは、例えば構内ネットワーク等のローカルネットワークを介して通信可能に接続されていても良い。また、機器１０同士のみで認証付き鍵共有及び暗号化通信が行われる場合、鍵共有システム１には、サーバ装置２０が含まれなくても良い。
【００２２】
＜ハードウェア構成＞
次に、本発明の実施の形態における機器１０、サーバ装置２０及び委託計算装置３０のハードウェア構成について説明する。
【００２３】
≪機器１０≫
以降では、本発明の実施の形態における機器１０のハードウェア構成について、図２を参照しながら説明する。図２は、本発明の実施の形態における機器１０のハードウェア構成の一例を示す図である。
【００２４】
図２に示すように、本発明の実施の形態における機器１０は、プロセッサ１１と、メモリ装置１２と、通信Ｉ／Ｆ１３とを有する。これら各ハードウェアは、それぞれがバス１４を介して通信可能に接続されている。
【００２５】
プロセッサ１１は、例えばＭＰＵ（Micro Processing Unit）やＣＰＵ（Central Processing Unit）等であり、メモリ装置１２からプログラムやデータを読み出して処理を実行する演算装置である。
【００２６】
メモリ装置１２は、例えばＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）、フラッシュメモリ等であり、各種データやプログラム等を記憶する。また、メモリ装置１２には、耐タンパ性があるＳＩＭやフラッシュメモリ等が含まれていても良い。なお、メモリ装置１２には、本発明の実施の形態における機器１０が有する各機能を実現する１以上のプログラムが記憶されている。
【００２７】
通信Ｉ／Ｆ１３は、機器１０を通信ネットワークＮに接続するためのインタフェースである。機器１０は、通信Ｉ／Ｆ１３を介して、他の機器１０やサーバ装置２０、委託計算装置３０等との間でデータ通信を行うことができる。
【００２８】
本発明の実施の形態における機器１０は、図２に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。
【００２９】
≪サーバ装置２０、委託計算装置３０≫
以降では、本発明の実施の形態におけるサーバ装置２０及び委託計算装置３０のハードウェア構成について、図３を参照しながら説明する。図３は、本発明の実施の形態におけるサーバ装置２０及び委託計算装置３０のハードウェア構成の一例を示す図である。なお、サーバ装置２０及び委託計算装置３０は略同様のハードウェア構成で実現可能であるため、以降では、主に、サーバ装置２０のハードウェア構成について説明する。
【００３０】
図３に示すように、本発明の実施の形態におけるサーバ装置２０は、入力装置２１と、表示装置２２と、ＲＡＭ２３と、ＲＯＭ２４と、プロセッサ２５と、外部Ｉ／Ｆ２６と、通信Ｉ／Ｆ２７と、補助記憶装置２８とを有する。これら各ハードウェアは、それぞれがバス２９を介して通信可能に接続されている。
【００３１】
入力装置２１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置２２は、例えばディスプレイ等であり、ユーザに対して処理結果等を表示するのに用いられる。なお、サーバ装置２０及び委託計算装置３０は、入力装置２１及び表示装置２２のうちの少なくとも一方を有していなくても良い。
【００３２】
ＲＡＭ２３は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ２４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。プロセッサ２５は、例えばＣＰＵ等であり、ＲＯＭ２４や補助記憶装置２８等からプログラムやデータをＲＡＭ２３上に読み出して処理を実行する演算装置である。
【００３３】
外部Ｉ／Ｆ２６は、外部装置とのインタフェースである。外部装置には、記録媒体２６ａ等がある。記録媒体２６ａとしては、例えば、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等が挙げられる。記録媒体２６ａには、サーバ装置２０が有する各機能を実現する１以上のプログラムや委託計算装置３０が有する各機能を実現する１以上のプログラム等が記録されていても良い。
【００３４】
通信Ｉ／Ｆ２７は、サーバ装置２０を通信ネットワークＮに接続するためのインタフェースである。サーバ装置２０は、通信Ｉ／Ｆ２７を介して、機器１０との間でデータ通信を行うことができる。
【００３５】
補助記憶装置２８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の不揮発性の記憶装置である。補助記憶装置２８には、サーバ装置２０が有する各機能を実現する１以上のプログラムや委託計算装置３０が有する各機能を実現する１以上のプログラム等が記憶されている。
【００３６】
本発明の実施の形態におけるサーバ装置２０及び委託計算装置３０は、図３に示すハードウェア構成を有することにより、後述する各種処理を実現することができる。なお、図３では、本発明の実施の形態におけるサーバ装置２０及び委託計算装置３０が１台の情報処理装置（コンピュータ）で実現されている場合を示したが、これに限られない。本発明の実施の形態におけるサーバ装置２０及び委託計算装置３０は、複数台の情報処理装置（コンピュータ）で実現されていても良い。
【００３７】
＜機能構成＞
次に、本発明の実施の形態における鍵共有システム１の機能構成について、図４を参照しながら説明する。図４は、本発明の実施の形態における鍵共有システム１の機能構成の一例を示す図である。
【００３８】
≪機器１０≫
図４に示すように、本発明の実施の形態における機器１０は、通信部１０１と、相互認証部１０２と、鍵共有処理部１０３とを有する。これら各機能部は、機器１０にインストールされた１以上のプログラムがプロセッサ１１に実行させる処理により実現される。
【００３９】
また、本発明の実施の形態における機器１０は、記憶部１０４を有する。記憶部１０４は、例えばメモリ装置１２を用いて実現可能である。
【００４０】
通信部１０１は、他の機器１０、サーバ装置２０又は委託計算装置３０との間で各種通信を行う。
【００４１】
相互認証部１０２は、認証付き鍵共有に用いられる複数の秘密鍵のうちの一部の秘密鍵に関する処理を委託計算装置３０に委託する前に、記憶部１０４に予め記憶しておいた共通鍵を用いて、当該委託計算装置３０との間で相互に認証を行う。
【００４２】
鍵共有処理部１０３は、他の機器１０又はサーバ装置２０との間で認証付き鍵共有に関する処理（以降、「鍵共有処理」とも表す。）を行う。
【００４３】
記憶部１０４は、鍵共有処理に用いられる秘密鍵や委託計算装置３０との間の相互認証に用いる共有鍵等を記憶する。なお、記憶部１０４には耐タンパ性のある記憶領域（以降、「耐タンパ領域」とも表す。）が含まれており、少なくとも秘密鍵と共有鍵とが当該耐タンパ領域に記憶されていても良い。以降では、記憶部１０４の耐タンパ領域には、鍵共有処理に用いられる秘密鍵と、委託計算装置３０との間の相互認証に用いる共有鍵とが記憶されているものとする。
【００４４】
≪サーバ装置２０≫
図４に示すように、本発明の実施の形態におけるサーバ装置２０は、通信部２０１と、鍵共有処理部２０２とを有する。これら各機能部は、サーバ装置２０にインストールされた１以上のプログラムが、当該サーバ装置２０のプロセッサ２５に実行させる処理により実現される。
【００４５】
また、本発明の実施の形態におけるサーバ装置２０は、記憶部２０３を有する。記憶部２０３は、例えば、当該サーバ装置２０の補助記憶装置２８やＲＡＭ２３等を用いて実現可能である。
【００４６】
通信部２０１は、機器１０との間で各種通信を行う。鍵共有処理部２０２は、機器１０との間で鍵共有処理を行う。記憶部２０３は、鍵共有処理に用いられる秘密鍵等を記憶する。
【００４７】
≪委託計算装置３０≫
図４に示すように、本発明の実施の形態における委託計算装置３０は、通信部３０１と、相互認証部３０２と、委託計算部３０３とを有する。これら各機能部は、委託計算装置３０にインストールされた１以上のプログラムが、当該委託計算装置３０のプロセッサ２５に実行させる処理により実現される。
【００４８】
また、本発明の実施の形態における委託計算装置３０は、記憶部３０４を有する。記憶部３０４は、例えば、当該委託計算装置３０の補助記憶装置２８やＲＡＭ２３等を用いて実現可能である。
【００４９】
通信部３０１は、機器１０との間で各種通信を行う。相互認証部３０２は、認証付き鍵共有に用いられる複数の秘密鍵のうちの一部の秘密鍵に関する処理を機器１０から受託する前に、記憶部３０４に予め記憶しておいた共通鍵を用いて、当該機器１０との間で相互に認証を行う。
【００５０】
委託計算部３０３は、機器１０から委託された秘密鍵に関する処理を行う。記憶部３０４は、認証付き鍵共有に用いられる複数の秘密鍵のうちの一部の秘密鍵や機器１０との間の相互認証に用いる共有鍵等を記憶する。
【００５１】
＜鍵共有処理＞
以降では、実施例１及び実施例２として、機器１０とサーバ装置２０との間で鍵共有処理を行う場合に説明する。実施例１では、認証付き鍵共有プロトコルをＦＳＵとして、複数の秘密鍵を用いた認証付き鍵共有を行うと共に、これら複数の秘密鍵のうちの一部の秘密鍵に関する処理を委託計算装置３０に委託する場合について説明する。また、実施例２では、認証付き鍵共有プロトコルをＣｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔとして、複数の秘密鍵を用いた認証付き鍵共有を行うと共に、これら複数の秘密鍵のうちの一部の秘密鍵に関する処理を委託計算装置３０に委託する場合について説明する。なお、実施例１及び実施例２では、一例として、機器１０が暗号化通信の送信者（Ｓｅｎｄｅｒ）、サーバ装置２０が暗号化通信の受信者（Ｒｅｃｅｉｖｅｒ）である場合について説明する。
【００５２】
（記号の定義）
実施例１及び実施例２では、以下の記号を用いるものとする。
【００５３】
ＩＤＡ：機器１０の識別子
ＩＤＢ：サーバ装置２０の識別子
ｋ：セキュリティパラメータ
ｐ，ｑ：ｐ≠ｑを満たす素数
Ｇ１：有限体Ｆｐ上の楕円曲線Ｅ１：＝Ｅ（Ｆｐ）における部分群
Ｇ２：Ｆｐのｋ次拡大体上の楕円曲線
【００５４】
【数１】
2019208142.tif 000003
における部分群
ｇ１：Ｇ１の生成元
ｇ２：Ｇ２の生成元
Ｚｑ：ｑを法とする剰余類
ｚ∈Ｚｑ：マスター秘密鍵
Ｚｖ＝ｚｇｖ∈Ｇｖ（ｖ＝１，２）：マスター公開鍵
Ｈ１：文字列（すなわち、オクテット列）からＧ１上の元を生成する関数
Ｈ２：文字列からＧ２上の元を生成する関数
Ｈ：鍵導出関数
ｅ：ＢＮ（Barret-Naehrig）曲線上のＯｐｔｉｍａｌ  Ａｔｅペアリング
なお、ＢＮ曲線上のＯｐｔｉｍａｌ  Ａｔｅペアリングについては、例えば、以下の参考文献１を参照されたい。
【００５５】
［参考文献１］
K. Kasamatsu, S. Kanno, T. Kobayashi and Y. Kawahara: Optimal Ate Pairing draft-kasamatsu-optimal-ate-pairings-00. Network Working Group Internet-Draft: to apper.
ここで、上記で定義した各記号のうち、マスター秘密鍵ｚ以外は公開情報である。
【００５６】
（実施例１）
まず、鍵共有処理の実施例１として、認証付き鍵共有プロトコルにＦＳＵを用いた場合について、図５を参照しながら説明する。図５は、本発明の実施の形態における鍵共有処理の一例を示すシーケンス図（実施例１）である。
【００５７】
機器１０の鍵共有処理部１０３は、秘密鍵ＤＡ，１＝ｚＱＡ，１＝ｚＨ１（ＩＤＡ）∈Ｇ１と、秘密鍵ＤＡ，２＝ｚＱＡ，２＝ｚＨ２（ＩＤＡ）∈Ｇ２とを生成する（ステップＳ１０１）。ここで、鍵共有処理部１０３は、以下のステップＳ１０１−１〜ステップＳ１０１−２により、秘密鍵ＤＡ，１及びＤＡ，２を生成する。
【００５８】
ステップＳ１０１−１：鍵共有処理部１０３は、ＱＡ，１＝Ｈ１（ＩＤＡ）とＱＡ，２＝Ｈ２（ＩＤＡ）とを計算し、ＱＡ，１及びＱＡ，２を公開する。
【００５９】
ステップＳ１０１−２：鍵共有処理部１０３は、鍵生成センタ（ＫＧＣ）にアクセスし、鍵生成センタにより生成された秘密鍵ＤＡ，１＝ｚＱＡ，１とＤＡ，２＝ｚＱＡ，２とを受け取る。これにより、秘密鍵ＤＡ，１と秘密鍵ＤＡ，２とが生成される。
【００６０】
サーバ装置２０の鍵共有処理部２０２は、秘密鍵ＤＢ，１＝ｚＱＢ，１＝ｚＨ１（ＩＤＢ）∈Ｇ１と、秘密鍵ＤＢ，２＝ｚＱＢ，２＝ｚＨ２（ＩＤＢ）∈Ｇ２とを生成する（ステップＳ１０２）。ここで、鍵共有処理部２０２は、以下のステップＳ１０２−１〜ステップＳ１０２−２により、秘密鍵ＤＢ，１及びＤＢ，２を生成する。
【００６１】
ステップＳ１０２−１：鍵共有処理部２０２は、ＱＢ，１＝Ｈ１（ＩＤＢ）とＱＢ，２＝Ｈ２（ＩＤＢ）とを計算し、ＱＢ，１及びＱＢ，２を公開する。
【００６２】
ステップＳ１０２−２：鍵共有処理部２０２は、鍵生成センタ（ＫＧＣ）にアクセスし、鍵生成センタにより生成された秘密鍵ＤＢ，１＝ｚＱＢ，１とＤＢ，２＝ｚＱＢ，２とを受け取る。これにより、秘密鍵ＤＢ，１と秘密鍵ＤＢ，２とが生成される。なお、サーバ装置２０はＲｅｃｅｉｖｅｒであるため、秘密鍵ＤＢ，１は生成されなくても良い。
【００６３】
機器１０の通信部１０１は、秘密鍵ＤＡ，２を委託計算装置３０に送信する（ステップＳ１０３）。
【００６４】
委託計算装置３０の委託計算部３０３は、通信部３０１が秘密鍵ＤＡ，２を受信すると、当該秘密鍵ＤＡ，２を記憶部３０４に保存する（ステップＳ１０４）。
【００６５】
機器１０の鍵共有処理部１０３は、秘密鍵ＤＡ，２を削除すると共に、秘密鍵ＤＡ，１のみを記憶部１０４に保存する（ステップＳ１０５）。
【００６６】
サーバ装置２０の鍵共有処理部２０２は、秘密鍵ＤＢ，１及びＤＢ，２を記憶部２０３に保存する（ステップＳ１０６）。なお、サーバ装置２０はＲｅｃｅｉｖｅｒであるため、秘密鍵ＤＢ，２のみを記憶部２０３に保存し、秘密鍵ＤＢ，１を削除しても良い。
【００６７】
機器１０の鍵共有処理部１０３は、短期秘密鍵ｘＡ∈Ｚｑをランダムに選択した上で、短期公開鍵ＸＡ，１＝ｘＡｇ１と短期公開鍵ＸＡ，２＝ｘＡｇ２とを計算する（ステップＳ１０７）。これにより、短期秘密鍵ｘＡと、短期公開鍵ＸＡ，１及びＸＡ，１とが生成される。なお、短期秘密鍵ｘＡと、短期公開鍵ＸＡ，１及びＸＡ，１とは、例えば、記憶部１０４に記憶される。
【００６８】
サーバ装置２０の鍵共有処理部２０２は、短期秘密鍵ｘＢ∈Ｚｑをランダムに選択した上で、短期公開鍵ＸＢ，１＝ｘＢｇ１と短期公開鍵ＸＢ，２＝ｘＢｇ２とを計算する（ステップＳ１０８）。これにより、短期秘密鍵ｘＢと、短期公開鍵ＸＢ，１及びＸＢ，２とが生成される。なお、短期秘密鍵ｘＢと、短期公開鍵ＸＢ，１及びＸＢ，２とは、例えば、記憶部２０３に記憶される。
【００６９】
機器１０の通信部１０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＡ，１と、短期公開鍵ＸＡ，２とをサーバ装置２０に送信する（ステップＳ１０９）。
【００７０】
サーバ装置２０の鍵共有処理部２０２は、楕円曲線Ｅ１及びＸＡ，２に関するＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値と、楕円曲線Ｅ２及びＸＡ，１に関するＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値とが共に１であり、かつ、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であるか否かを確認する（ステップＳ１１０）。ここで、ＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数は、引数として楕円曲線Ｅと点Ｐとが指定される関数であり、点Ｐが楕円曲線Ｅ上の点である場合に１、そうでない場合に０となる関数である。
【００７１】
なお、上記のステップＳ１１０において、ＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値が０又はｅ（ＸＡ，１，ｇ２）≠ｅ（ｇ１，ＸＡ，２）である場合、鍵共有処理が失敗したものとして、処理を終了するか又は上記のステップＳ１０１からやり直す。以降では、上記のステップＳ１１０において、ＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値が共に１で、かつ、ｅ（ＸＡ，１，ｇ２）＝ｅ（ｇ１，ＸＡ，２）であると確認されたものとする。
【００７２】
サーバ装置２０の鍵共有処理部２０２は、以下により共有値σ１，σ２，σ３，σ４を計算する（ステップＳ１１１）。
【００７３】
σ１＝ｅ（ＱＡ，１，ＤＢ，２）
σ２＝ｅ（ＱＡ，１＋ＸＡ，１，ＤＢ，２＋ｘＢＺ２）
σ３＝ｘＢＸＡ，１
σ４＝ｘＢＸＡ，２
次に、サーバ装置２０の通信部２０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＢ，１と、短期公開鍵ＸＢ，２とを機器１０に送信する（ステップＳ１１２）。
【００７４】
機器１０の相互認証部１０２と、委託計算装置３０の相互認証部３０２とは、共有鍵による相互認証を行う（ステップＳ１１３）。すなわち、機器１０の相互認証部１０２は、記憶部１０４に予め記憶しておいた共通鍵を用いて委託計算装置３０を認証すると共に、委託計算装置３０の相互認証部３０２は、記憶部３０４に予め記憶しておいた共通鍵を用いて機器１０を認証する。これにより、機器１０と委託計算装置３０との間で、互いの正当性が確認される。このように共通鍵を用いることで、機器１０と委託計算装置３０との間の相互認証の処理時間を削減することができる。
【００７５】
以降では、ステップＳ１１３の相互認証に成功したものとする。なお、相互認証に成功した場合、機器１０と委託計算装置３０とはセッション鍵を生成し、このセッション鍵を用いて以降の通信を暗号化するものする。したがって、以降のステップＳ１１５及びステップＳ１２１の通信は、このセッション鍵によって暗号化されているものとする。
【００７６】
機器１０の鍵共有処理部１０３は、ｘＡＺ２を計算する（ステップＳ１１４）。次に、機器１０の通信部１０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＢ，１と、短期公開鍵ＸＢ，２と、計算値ｘＡＺ２とを委託計算装置３０に送信する（ステップＳ１１５）。
【００７７】
委託計算装置３０の委託計算部３０３は、楕円曲線Ｅ１及びＸＢ，２に関するＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値と、楕円曲線Ｅ２及びＸＢ，１に関するＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値とが共に１であり、かつ、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であるか否かを確認する（ステップＳ１１６）。
【００７８】
なお、上記のステップＳ１１６において、ＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値が０又はｅ（ＸＢ，１，ｇ２）≠ｅ（ｇ１，ＸＢ，２）である場合、鍵共有処理が失敗したものとして、処理を終了するか又は上記のステップＳ１０１からやり直す。以降では、上記のステップＳ１１６において、ＧＲＯＵＰＭＥＭＢＥＲＳＨＩＰＴＥＳＴ関数値が共に１で、かつ、ｅ（ＸＢ，１，ｇ２）＝ｅ（ｇ１，ＸＢ，２）であると確認されたものとする。
【００７９】
次に、委託計算装置３０の委託計算部３０３は、以下により共有値σ２を計算する（ステップＳ１１７）。
【００８０】
σ２＝ｅ（ＱＢ，１＋ＸＢ，１，ＤＡ，２＋ｘＡＺ２）
このように、委託計算装置３０では、σ２として、ｅ（ＱＢ，１＋ＸＢ，１，ＤＡ，２＋ｘＡＺ２）を計算する。すなわち、従来のＦＳＵではσ２＝ｅ（ＤＡ，１＋ｘＡＺ１，ＱＢ，２＋ＸＢ，２）を計算しているが（非特許文献１参照）、実施例１では、ペアリングｅの入力を逆転させて、σ２＝ｅ（ＱＢ，１＋ＸＢ，１，ＤＡ，２＋ｘＡＺ２）を計算する。これにより、秘密鍵ＤＡ，２を利用したσ２の計算を行うことが可能になる。
【００８１】
他方で、機器１０の鍵共有処理部１０３は、以下により共有値σ１，σ３，σ４を計算する（ステップＳ１１８）。
【００８２】
σ１＝ｅ（ＱＡ，１，ＤＢ，２）
σ３＝ｘＡＸＢ，１
σ４＝ｘＡＸＢ，２
次に、機器１０の鍵共有処理部１０３は、以下によりｓｉｄを計算する（ステップＳ１１９）。なお、ｓｉｄはセッションＩＤである。
【００８３】
【数２】
2019208142.tif 000004
また、サーバ装置２０の鍵共有処理部２０２は、以下によりｓｉｄを計算する（ステップＳ１２０）。
【００８４】
【数３】
2019208142.tif 000005
委託計算装置３０の通信部３０１は、共有値σ２を機器１０に送信する（ステップＳ１２１）。
【００８５】
機器１０の鍵共有処理部１０３は、通信部１０１が共有値σ２を受信すると、以下により共有鍵Ｋを生成する（ステップＳ１２２）。
【００８６】
【数４】
2019208142.tif 000006
なお、共有鍵Ｋは、例えば、記憶部１０４に記憶される。
【００８７】
サーバ装置２０の鍵共有処理部２０２は、以下により共有鍵Ｋを生成する（ステップＳ１２３）。
【００８８】
【数５】
2019208142.tif 000007
なお、共有鍵Ｋは、例えば、記憶部２０３に記憶される。
【００８９】
これにより、機器１０とサーバ装置２０との間で共有鍵Ｋが共有される。したがって、以降の機器１０及びサーバ装置２０は、共有鍵Ｋを用いた暗号化通信を行うことができるようになる。
【００９０】
以上のように、実施例１の鍵共有処理では、機器１０は２つの秘密鍵ＤＡ，１及びＤＡ，２を異なる群Ｇ１及びＧ２でそれぞれ生成し、秘密鍵ＤＡ，１を機器１０に保存すると共に、秘密鍵ＤＡ，２を委託計算装置３０に保存する。そして、機器１０では秘密鍵ＤＡ，１を用いたペアリング演算（σ１）を行うと共に、委託計算装置３０では秘密鍵ＤＡ，２を用いたペアリング演算（σ２）を行う。
【００９１】
このように、実施例１の鍵共有処理では、複数の秘密鍵ＤＡ，１及びＤＡ，２を用いて共有鍵Ｋを生成する。これにより、例えば、万が一、機器１０から秘密鍵ＤＡ，１が第三者に漏洩した場合であっても、委託計算装置３０に保存されている秘密鍵ＤＡ，２が漏洩しない限り、当該第三者は、なりすまし等を行うことができない。したがって、例えば、機器１０が屋外等に設置され、紛失や盗難の恐れがあるようなＩｏＴ機器であったとしても、第三者の盗難及び秘密鍵ＤＡ，１の漏洩によるなりすまし等を防止することができる。
【００９２】
また、実施例１の鍵共有処理では、σ２を得るためのペアリング演算を委託計算装置３０に委託する。これにより、機器１０が処理性能の低いＩｏＴ機器であったとしても、処理時間を削減することができる。特に、機器１０の耐タンパ領域に秘密鍵ＤＡ，１が記憶されている場合であっても、処理時間の削減により、現実的な処理時間で鍵共有処理を行うことができるようになる。
【００９３】
（実施例２）
次に、鍵共有処理の実施例２として、認証付き鍵共有プロトコルにＣｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔを用いた場合について、図５を参照しながら説明する。図６は、本発明の実施の形態における鍵共有処理の一例を示すシーケンス図（実施例２）である。
【００９４】
機器１０の鍵共有処理部１０３は、秘密鍵ＤＡ，１＝ｚＱＡ，１＝ｚＨ１（ＩＤＡ）∈Ｇ１を生成する（ステップＳ２０１）。ここで、鍵共有処理部１０３は、以下のステップＳ２０１−１〜ステップＳ２０１−２により、秘密鍵ＤＡ，１を生成する。
【００９５】
ステップＳ２０１−１：鍵共有処理部１０３は、ＱＡ，１＝Ｈ１（ＩＤＡ）を計算し、ＱＡ，１を公開する。
【００９６】
ステップＳ２０１−２：鍵共有処理部１０３は、鍵生成センタ（ＫＧＣ）にアクセスし、鍵生成センタにより生成された秘密鍵ＤＡ，１＝ｚＱＡ，１を受け取る。これにより、秘密鍵ＤＡ，１が生成される。
【００９７】
サーバ装置２０の鍵共有処理部２０２は、秘密鍵ＤＢ，１＝ｚＱＢ，１＝ｚＨ１（ＩＤＢ）∈Ｇ１を生成する（ステップＳ２０２）。ここで、鍵共有処理部２０２は、以下のステップＳ２０２−１〜ステップＳ２０２−２により、秘密鍵ＤＢ，１を生成する。
【００９８】
ステップＳ２０２−１：鍵共有処理部２０２は、ＱＢ，１＝Ｈ１（ＩＤＢ）を計算し、ＱＢ，１を公開する。
【００９９】
ステップＳ２０２−２：鍵共有処理部２０２は、鍵生成センタ（ＫＧＣ）にアクセスし、鍵生成センタにより生成された秘密鍵ＤＢ，１＝ｚＱＢ，１を受け取る。これにより、秘密鍵ＤＢ，１が生成される。
【０１００】
機器１０の鍵共有処理部１０３は、ｚ１∈Ｚｑをランダムに選択した上で、以下により秘密鍵ＤＡ，１を秘密鍵Ｄ´Ａ，１とＤ´´Ａ，１とに分割する（ステップＳ２０３）。
【０１０１】
Ｄ´Ａ，１＝ｚ１ＱＡ，１
Ｄ´´Ａ，１＝ＤＡ，１−Ｄ´Ａ，１
次に、機器１０の通信部１０１は、秘密鍵Ｄ´´Ａ，１を委託計算装置３０に送信する（ステップＳ２０４）。
【０１０２】
委託計算装置３０の委託計算部３０３は、通信部３０１が秘密鍵Ｄ´´Ａ，２を受信すると、当該秘密鍵Ｄ´´Ａ，２を記憶部３０４に保存する（ステップＳ２０５）。
【０１０３】
機器１０の鍵共有処理部１０３は、秘密鍵ＤＡ，１及びＤ´´Ａ，１を削除すると共に、秘密鍵Ｄ´Ａ，１のみを記憶部１０４に保存する（ステップＳ２０６）。
【０１０４】
サーバ装置２０の鍵共有処理部２０２は、秘密鍵ＤＢ，１を記憶部２０３に保存する（ステップＳ２０７）。
【０１０５】
機器１０の鍵共有処理部１０３は、短期秘密鍵ｘＡ∈Ｚｑをランダムに選択した上で、短期公開鍵ＸＡ，２＝ｘＡｇ２を計算する（ステップＳ２０８）。これにより、短期秘密鍵ｘＡと、短期公開鍵ＸＡ，２とが生成される。なお、短期秘密鍵ｘＡと、短期公開鍵ＸＡ，２とは、例えば、記憶部１０４に記憶される。
【０１０６】
サーバ装置２０の鍵共有処理部２０２は、短期秘密鍵ｘＢ∈Ｚｑをランダムに選択した上で、短期公開鍵ＸＢ，２＝ｘＢｇ２を計算する（ステップＳ２０９）。これにより、短期秘密鍵ｘＢと、短期公開鍵ＸＢ，２とが生成される。なお、短期秘密鍵ｘＢと、短期公開鍵ＸＢ，２とは、例えば、記憶部２０３に記憶される。
【０１０７】
機器１０の通信部１０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＡ，２とをサーバ装置２０に送信する（ステップＳ２１０）。
【０１０８】
サーバ装置２０の鍵共有処理部２０２は、以下により共有値σ１，σ２，σ３を計算する（ステップＳ２１１）。
【０１０９】
σ１＝ｅ（ｘＢＱＡ，１，Ｚ２）
σ２＝ｅ（ＤＢ，１，ＸＡ，２）
σ３＝ｘＢＸＡ，２
次に、サーバ装置２０の通信部２０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＢ，２とを機器１０に送信する（ステップＳ２１２）。
【０１１０】
機器１０の相互認証部１０２と、委託計算装置３０の相互認証部３０２とは、実施例１と同様に、共有鍵による相互認証を行う（ステップＳ２１３）。すなわち、機器１０の相互認証部１０２は、記憶部１０４に予め記憶しておいた共通鍵を用いて委託計算装置３０を認証すると共に、委託計算装置３０の相互認証部３０２は、記憶部３０４に予め記憶しておいた共通鍵を用いて機器１０を認証する。
【０１１１】
以降では、ステップＳ２１３の相互認証に成功したものとする。なお、相互認証に成功した場合、機器１０と委託計算装置３０とはセッション鍵を生成し、このセッション鍵を用いて以降の通信を暗号化するものする。したがって、以降のステップＳ２１４及びステップＳ２１９の通信は、このセッション鍵によって暗号化されているものとする。
【０１１２】
機器１０の通信部１０１は、識別子ＩＤＡと、識別子ＩＤＢと、短期公開鍵ＸＢ，２とを委託計算装置３０に送信する（ステップＳ２１４）。
【０１１３】
次に、委託計算装置３０の委託計算部３０３は、以下により共有値σ´´２を計算する（ステップＳ２１５）。
【０１１４】
σ´´２＝ｅ（Ｄ´´Ａ，１，ＸＢ，２）
このように、委託計算装置３０では、σ´´２として、ｅ（Ｄ´´Ａ，１，ＸＢ，２）を計算する。すなわち、従来のＣｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔではσ２＝（ＤＡ，１，ＸＢ，２）を計算しているが、実施例２では、ＤＡ，１の代わりにＤ´´Ａ，１を用いて、σ´´２＝ｅ（Ｄ´´Ａ，１，ＸＢ，２）を計算する。なお、従来のＣｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔについては、例えば、以下の参考文献２を参照されたい。
【０１１５】
［参考文献２］
L. Chen, Z. Cheng, N. Smart: Identity-based key agreement protocols from pairings. International Journal of Information Security, July 2007, Volume 6, issue4, pp213-241.
他方で、機器１０の鍵共有処理部１０３は、以下により共有値σ１，σ´２，σ３を計算する（ステップＳ２１６）。
【０１１６】
σ１＝ｅ（ｘＡＱＢ，１，Ｚ２）
σ´２＝ｅ（Ｄ´Ａ，１，ＸＢ，２）
σ３＝ｘＡＸＢ，２
次に、機器１０の鍵共有処理部１０３は、以下によりｓｉｄを計算する（ステップＳ２１７）。
【０１１７】
【数６】
2019208142.tif 000008
また、サーバ装置２０の鍵共有処理部２０２は、以下によりｓｉｄを計算する（ステップＳ２１８）。
【０１１８】
【数７】
2019208142.tif 000009
委託計算装置３０の通信部３０１は、共有値σ´´２を機器１０に送信する（ステップＳ２１９）。
【０１１９】
機器１０の鍵共有処理部１０３は、通信部１０１が共有値σ´´２を受信すると、以下により共有鍵Ｋを生成する（ステップＳ２２０）。
【０１２０】
【数８】
2019208142.tif 000010
なお、共有鍵Ｋは、例えば、記憶部１０４に記憶される。
【０１２１】
サーバ装置２０の鍵共有処理部２０２は、以下により共有鍵Ｋを生成する（ステップＳ２２１）。
【０１２２】
【数９】
2019208142.tif 000011
なお、共有鍵Ｋは、例えば、記憶部２０３に記憶される。
【０１２３】
これにより、機器１０とサーバ装置２０との間で共有鍵Ｋが共有される。したがって、以降の機器１０及びサーバ装置２０は、共有鍵Ｋを用いた暗号化通信を行うことができるようになる。
【０１２４】
以上のように、実施例２の鍵共有処理では、機器１０は１つの秘密鍵ＤＡ，１を生成した上で、この秘密鍵ＤＡ，１を２つの秘密鍵Ｄ´Ａ，１及びＤ´´Ａ，１に分割し、秘密鍵Ｄ´Ａ，１を機器１０に保存すると共に、秘密鍵Ｄ´´Ａ，１を委託計算装置３０に保存する。そして、機器１０では秘密鍵Ｄ´Ａ，１を用いたペアリング演算（σ´２）を行うと共に、委託計算装置３０では秘密鍵Ｄ´´Ａ，１を用いたペアリング演算（σ´´２）を行う。
【０１２５】
このように、実施例２の鍵共有処理では、１つの秘密鍵ＤＡ，１から分割された複数の秘密鍵Ｄ´Ａ，１及びＤ´´Ａ，１を用いて共有鍵Ｋを生成する。これにより、実施例１と同様に、例えば、万が一、機器１０から秘密鍵Ｄ´Ａ，１が第三者に漏洩した場合であっても、委託計算装置３０に保存されている秘密鍵Ｄ´´Ａ，１が漏洩しない限り、当該第三者は、なりすまし等を行うことができない。
【０１２６】
実施例２では機器１０が２回のペアリング演算（σ１及びσ´２）を行う必要があるため、実施例１と比較して、処理時間の削減効果を得ることができないが、上述したように、実施例１と同様の安全性を得ることができる。また、実施例２では、Ｃｈｅｎ−Ｃｈｅｎｇ−Ｓｍａｒｔの認証付き鍵共有プロトコルのアルゴリズムを変更することなく、実施例１と同様の安全性を得ることができる。
【０１２７】
なお、実施例２では、ペアリング演算の性質ｅ（（ｘ１＋ｘ２）Ｐ，Ｑ）＝ｅ（ｘ１，Ｐ）ｅ（ｘ２，Ｐ）により、σ´２σ´´２＝σ２＝ｅ（ＤＡ，１，ＸＢ，２）となることを用いて、秘密鍵ＤＡ，１を分割している。
【０１２８】
＜まとめ＞
以上のように、本発明の実施の形態における鍵共有システム１では、複数の秘密鍵を機器１０が生成した上で、一部の秘密鍵を機器１０に保存する一方で、他の一部の秘密鍵を委託計算装置３０に保存する。そして、本発明の実施の形態における鍵共有システム１では、機器１０が当該一部の秘密鍵を用いた共有値の計算を行う一方で、当該他の一部の秘密鍵を用いた共有値の計算を委託計算装置３０に委託する。これにより、本発明の実施の形態における鍵共有システム１では、安全性の高い認証付き鍵共有を行うことができるようになる。また、このとき、委託計算装置３０が共有値の計算（ペアリング演算）を行うことで、機器１０が比較的処理性能の低いＩｏＴ機器等であっても、認証付き鍵共有の処理時間の低下を防止することができる。
【０１２９】
ここで、本発明の実施の形態は、一般に、ｎ個の共有値σｉ（ｉ＝１，・・・，ｎ）を用いて共有鍵Ｋを生成する認証付き鍵共有プロトコルにおいて、或るｊ，ｋ（ｊ≠ｋ）に対してσｊ，σｋがペアリング演算で計算され、かつ、これらペアリング演算の入力に秘密鍵ＤＡ，１又はＤＡ，２が用いられる場合に、一部の共有値の計算（ペアリング演算）を委託計算装置３０に委託することが可能である。すなわち、或る整数ａｌ１，ａｌ２，ｂｍ１，ｂｍ２∈Ｚｑに対して、σｊ，σｋが、
【０１３０】
【数１０】
2019208142.tif 000012
と表現されている場合、ｂｍ２ｇ１，ａｌ２ｇ２，ＤＡ，１を生成し、σｋの入力を以下のようにする。
【０１３１】
【数１１】
2019208142.tif 000013
これにより、このσｋの計算を委託計算装置３０に委託することができる。
【０１３２】
なお、秘密鍵ではなく公開鍵のみが入力されるペアリング演算を用いる認証付き鍵共有プロトコルであれば、このペアリング演算も委託計算装置３０に委託することが可能である。
【０１３３】
また、認証付き鍵共有プロトコルとしてＦＳＵを用いる場合、機器１０では、従来のＦＳＵと同様に、σ２´＝ｅ（ＤＡ，１＋ｘＡＺ１，ＱＢ，２＋ＸＢ，２）を計算する一方で、委託計算装置３０にσ２´´＝ｅ（ＱＢ，１＋ＸＢ，１，ＤＡ，２＋ｘＡＺ２）を計算させた上で、これらを結合してσ２＝σ２´｜｜σ２´´としても良い。また、このとき、機器１０は、
【０１３４】
【数１２】
2019208142.tif 000014
を計算しておき、
【０１３５】
【数１３】
2019208142.tif 000015
をサーバ装置２０に送信しても良い。これにより、機器１０の共有値の計算（ペアリング演算）の回数が１回増えるものの、サーバ装置２０側でも同様のＭＡＣ（Message Authentication Code）を計算し、この計算結果を機器１０が受け取ることで、機器１０は、委託計算装置３０に委託した計算結果が正しいか否かを検証することができるようになる。特に、機器１０と委託計算装置３０との間の相互認証が成功しなかったにも関わらず、共有値の計算（ペアリング演算）を委託したような場合に有効である。
【０１３６】
なお、実施例１の鍵共有処理では、機器１０の記憶部１０４に秘密鍵ＤＡ，１を保存し、委託計算装置３０の記憶部３０４に秘密鍵ＤＡ，２を保存するという前提の下で、機器１０がＳｅｎｄｅｒ、サーバ装置２０がＲｅｃｉｅｖｅｒである場合について説明した。同様の前提の下で、機器１０がＲｅｃｉｅｖｅｒ、サーバ装置２０がＳｅｎｄｅｒである場合、共有値σ１及びσ２の計算内容をそれぞれσ１＝（ＱＢ，１，ＤＡ，２）及びσ２＝（ＤＡ，１＋ｘＡＺ１，ＱＢ，２＋ＸＢ，２）に変更した上で、機器１０は、共有値σ１の計算を委託計算装置３０に委託し、共有値σ２を自身で計算すれば良い。このとき、機器１０は、例えば、共有値σ１の計算を委託する際に、ＩＤＢとＸＢ，１とＸＢ，２とを委託計算装置３０に送信すれば良い。
【０１３７】
ただし、機器１０がＲｅｃｉｅｖｅｒ、サーバ装置２０がＳｅｎｄｅｒである場合に、委託計算装置３０に計算を委託する共有値と、共有値の計算内容とを変更しないで実現することもできる。この場合、実施例１の鍵共有処理では、共有値の計算の前に、機器１０とサーバ装置２０とが互いに短期公開鍵（ＸＡ，１，ＸＡ，２，ＸＢ，１，ＸＢ，２）を交換するようにすれば良い。
【０１３８】
なお、実施例２の鍵共有処理では、機器１０とサーバ装置２０との間でＳｅｎｄｅｒとＲｅｃｉｅｖｅｒとが入れ替わった場合でも同様の処理を行えば良い。
【０１３９】
また、実施例１及び実施例２の鍵共有処理では、機器１０とサーバ装置２０と間で共有鍵を共有する場合について説明したが、例えば、機器１０と他の機器１０との間で共有鍵を共有しても良い。この場合は、当該機器１０と、当該他の機器１０の両方が、一部の共有値の計算を委託計算装置３０に委託しても良い。
【０１４０】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１４１】
１        鍵共有システム
１０      機器
２０      サーバ装置
３０      委託計算装置
１０１    通信部
１０２    相互認証部
１０３    鍵共有処理部
１０４    記憶部
２０１    通信部
２０２    鍵共有処理部
２０３    記憶部
３０１    通信部
３０２    相互認証部
３０３    委託計算部
３０４    記憶部
【図１】
2019208142.tif 000017
【図２】
2019208142.tif 000018
【図３】
2019208142.tif 000019
【図４】
2019208142.tif 000020
【図５】
2019208142.tif 000021
【図６】
2019208142.tif 000022