(57)【要約】【課題】非対称性を持つ鍵共有方式を認証機能付きの鍵共有方式に変換可能にすることを目的とする。【解決手段】鍵共有装置１０では、鍵選択部２２は、分類の異なる２つの静的鍵から、鍵共有の相手側とは異なる１つの静的鍵を選択する。一時鍵生成部２６は、鍵選択部２２によって選択された静的鍵と同じ分類の一時鍵を生成する。共有鍵生成部２７は、鍵選択部２２によって選択された静的鍵と、相手側によって生成された一時鍵とを用いて、共有鍵を生成する。【選択図】図６
2019075757.tif 000002
【特許請求の範囲】
【請求項１】
２つの静的鍵から１つの静的鍵を選択する鍵選択部と、
前記鍵選択部によって選択された静的鍵を用いて、相手側と共有する共有鍵を生成する鍵生成部と
を備える鍵共有装置。
【請求項２】
前記鍵選択部は、分類の異なる２つの静的鍵のうち、前記相手側によって選択される静的鍵と異なる分類の静的鍵を選択する
請求項１に記載の鍵共有装置。
【請求項３】
前記鍵選択部は、鍵の共有を開始する開始側か否かに応じて、静的鍵を選択する
請求項２に記載の鍵共有装置。
【請求項４】
前記鍵生成部は、
前記鍵選択部によって選択された静的鍵と同じ分類の一時鍵を生成する一時鍵生成部と、
前記鍵選択部によって選択された静的鍵と、前記相手側によって生成された一時鍵とを用いて、前記共有鍵を生成する共有鍵生成部と
を備える請求項３に記載の鍵共有装置。
【請求項５】
前記２つの静的鍵は、数１に示す公開鍵Ａ１及び秘密鍵ａ１の組と、公開鍵Ａ２及び秘密鍵ａ２の組とであり、
前記一時鍵生成部は、数２に示す一時鍵Ｘを生成する
請求項４に記載の鍵共有装置。
【数１】
2019075757.tif 000008
【数２】
2019075757.tif 000009
【請求項６】
前記共有鍵生成部は、数３に示す一時鍵Ｙを用いて、数４に示す値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とに基づき共有鍵を生成する
請求項５に記載の鍵共有装置。
【数３】
2019075757.tif 000010
【数４】
2019075757.tif 000011
【請求項７】
コンピュータが、２つの静的鍵から１つの静的鍵を選択し、
コンピュータが、選択された静的鍵を用いて、相手側と共有する共有鍵を生成する鍵共有方法。
【請求項８】
２つの静的鍵から１つの静的鍵を選択する鍵選択処理と、
前記鍵選択処理によって選択された静的鍵を用いて、相手側と共有する共有鍵を生成する鍵生成処理と
をコンピュータに実行させる鍵共有プログラム。
【請求項９】
２つの鍵共有装置間で共有鍵を共有する鍵共有システムであり、
一方の鍵共有装置は、２つの分類の静的鍵から選択された一方の分類の静的鍵を用いて、共有鍵を生成し、
他方の鍵共有装置は、前記２つの分類の静的鍵から選択された他方の分類の静的鍵を用いて、共有鍵を生成する鍵共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、２者間で鍵を共有する技術に関する。
【背景技術】
【０００２】
量子計算機の開発が、世界的に進められている。量子計算機の出現に対しても安全性を維持できる暗号方式として、同種写像を用いた暗号の提案が行われている。
【０００３】
非特許文献１には、１ラウンドのＤｉｆｆｉｅ−Ｈｅｌｌｍａｎ（以下、ＤＨ）鍵共有方式を、認証機能付きの方式に変換するＢｉｃｌｉｑｕｅ変換法が記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｆｕｊｉｏｋａ，  Ａ．：  Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ  ｏｆ  ｓｔｒｏｎｇｌｙ  ｓｅｃｕｒｅ  ａｕｔｈｅｎｔｉｃａｔｅｄ  ｋｅｙ  ｅｘｃｈａｎｇｅｓ  ｗｉｔｈｏｕｔ  ＮＡＸＯＳ  ｔｅｃｈｎｉｑｕｅ．  ＩＥＩＣＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ９６−Ａ（６），  １０８８−１０９９  （２０１３），  ａ  ｐｒｅｌｉｍｉｎａｒｙ  ｖｅｒｓｉｏｎ  ｏｆ  ｔｈｉｓ  ｐａｐｅｒ  ａｐｐｅａｒｅｄ  ｉｎ  ＩＷＳＥＣ  ２０１１  （２０１１）
【非特許文献２】Ｄｅ  Ｆｅｏ，  Ｌ．，  Ｊａｏ，  Ｄ．，  Ｐｌｕｔ，  Ｊ．：  Ｔｏｗａｒｄｓ  ｑｕａｎｔｕｍ−ｒｅｓｉｓｔａｎｔ  ｃｒｙｐｔｏｓｙｓｔｅｍｓ  ｆｒｏｍ  ｓｕｐｅｒｓｉｎｇｕｌａｒ  ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｉｓｏｇｅｎｉｅｓ．  Ｊ．  Ｍａｔｈ．  Ｃｒｙｐｔ．  ８（３），  ２０９−２４７  （２０１４）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＤＨ鍵共有方式は、耐量子性を持たない。これまでは、耐量子性を持つ、１ラウンドの認証機能付きの鍵共有方式がなかった。
耐量子性を持つ、１ラウンドの認証機能付きの鍵共有方式を構成するための候補となる技術として、超特異同種写像ＤＨ（以下、ＳＩＤＨ）鍵共有方式（非特許文献２参照）がある。ＳＩＤＨ鍵共有方式は、最近になって活発に研究されるようになっているものの、ＳＩＤＨ鍵共有方式の非対称性から認証機能付きの鍵共有方式への変換法が知られていない。
この発明は、非対称性を持つ鍵共有方式を認証機能付きの鍵共有方式に変換可能にすることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る鍵共有装置は、
２つの静的鍵から１つの静的鍵を選択する鍵選択部と、
前記鍵選択部によって選択された静的鍵を用いて、相手側と共有する共有鍵を生成する鍵生成部と
を備える。
【発明の効果】
【０００７】
この発明では、２つの静的鍵から選択された１つの静的鍵を用いて共有鍵を生成する。これにより、非対称性を持つ鍵共有方式を認証機能付きの鍵共有方式に変換することが可能になる。
【図面の簡単な説明】
【０００８】
【図１】ＳＩＤＨ鍵共有方式の説明図。
【図２】ＳＩＤＨ鍵共有方式のアルゴリズムを示す図。
【図３】記法の説明図。
【図４】ＳＩＤＨ鍵共有方式のアルゴリズムを簡潔化して示す図。
【図５】実施の形態１に係る鍵共有システム１の構成図。
【図６】実施の形態１に係る鍵共有装置１０の構成図。
【図７】実施の形態１に係る事前処理のフローチャート。
【図８】実施の形態１に係る鍵共有処理のフローチャート。
【図９】実施の形態１に係る鍵共有処理のアルゴリズムを示す図。
【図１０】変形例２に係る鍵共有装置１０の構成図。
【発明を実施するための形態】
【０００９】
実施の形態１．
実施の形態１では、非対称性を持つ鍵共有方式として、ＳＩＤＨ鍵共有方式を例として説明する。
【００１０】
＊＊＊記法の説明＊＊＊
以下で用いられる記法を説明する。ここでは、ＳＩＤＨ鍵共有方式を説明した上で、記法を説明する。
なお、文中での下付き文字及び上付き文字の記載に制限がある。そのため、以下の文中では、“＿”を下付き文字を表すための記号とし、“＾”を上付き文字を表す記号として用い、文中では表現できない下付き文字及び上付き文字をこられの記号を用いて表す。例えば、Ｎ＿ｉはＮｉを表し、Ｎ＾ｉはＮｉを表すものとする。
【００１１】
＜ＳＩＤＨ鍵共有方式＞
図１及び図２を参照して、ＳＩＤＨ鍵共有方式を説明する。ここでは、ＡｌｉｃｅとＢｏｂが鍵共有を行うとする。
２つの小素数ＬＡ，ＬＢ（例えば、ＬＡ＝２，ＬＢ＝３）と、小さい値ｆとに対して、数１１になるように大きい素数ｐが選択される。
【数１１】
2019075757.tif 000003
ここで、値ｅＡ，ｅＢは、数１１における式（２）が成立するように選択される。また、数１１における記号Θは、ランダウの記号であり、漸近的に上下からおさえられることを意味する。また、λは、セキュリティパラメータである。
位数ｐ２の有限体Ｆ＿｛ｐ２｝上に定義された超特異楕円曲線Ｅであって、数１２に示す有理点群を持つ超特異楕円曲線Ｅが選択される。
【数１２】
2019075757.tif 000004
【００１２】
位数ＬＡ＾｛ｅＡ｝の核を持つ同種写像φＡと、位数ＬＢ＾｛ｅＢ｝の核を持つ同種写像φＢが用いられる。同種写像φＡに対して、その核をＫｅｒ（φＡ）＝＜ＲＡ＞とし、同種写像φＢに対して、その核をＫｅｒ（φＢ）＝＜ＲＢ＞とする。φＢ（ＲＡ）を核とする同種写像をφＢＡとし、φＡ（ＲＢ）核とする同種写像をφＡＢとする。
すると、図１に示す関係が成立する。つまり、超特異楕円曲線Ｅから同種写像φＡにより超特異楕円曲線ＥＡ＝Ｅ／＜ＲＡ＞が得られ、超特異楕円曲線ＥＡから同種写像φＡＢにより超特異楕円曲線Ｅ／＜ＲＡ，ＲＢ＞が得られる（ルート１）。また、超特異楕円曲線Ｅから同種写像φＢにより超特異楕円曲線ＥＢ＝Ｅ／＜ＲＢ＞が得られ、超特異楕円曲線ＥＢから同種写像φＢＡにより超特異楕円曲線Ｅ／＜ＲＡ，ＲＢ＞が得られる（ルート２）。
【００１３】
数１３に示す超特異楕円曲線Ｅ上の点ＰＡ，ＱＡ，ＰＢ，ＱＢが生成元として選択される。超特異楕円曲線Ｅと、生成元ＰＡ，ＱＡ，ＰＢ，ＱＢと、値ＬＡ，ＬＢ，ｅＡ，ｅＢとが公開パラメータとされる。
【数１３】
2019075757.tif 000005
また、ＡｌｉｃｅとＢｏｂの秘密鍵空間が、それぞれ、数１４に示すＳＫＡ，ＳＫＢとされる。
【数１４】
2019075757.tif 000006
【００１４】
図２に示すように、Ａｌｉｃｅは、秘密鍵空間ＳＫＡからランダムに選択された秘密鍵（ｍＡ，ｎＡ）を用いて、ＲＡ＝ｍＡＰＡ＋ｎＡＱＡを計算する。Ａｌｉｃｅは、ＲＡを用いて超特異楕円曲線ＥＡと、同種写像φＡとを計算する。そして、Ａｌｉｃｅは、超特異楕円曲線ＥＡと、同種写像φＡを用いて計算されたφＡ（ＰＢ）及びφＡ（ＱＢ）とをＢｏｂに送信する。
同様に、Ｂｏｂは、秘密鍵空間ＳＫＢからランダムに選択された秘密鍵（ｍＢ，ｎＢ）を用いて、ＲＢ＝ｍＢＰＢ＋ｎＢＱＢを計算する。Ｂｏｂは、ＲＢを用いて超特異楕円曲線ＥＢと、同種写像φＢとを計算する。そして、Ｂｏｂは、超特異楕円曲線ＥＢと、同種写像φＢを用いて計算されたφＢ（ＰＡ）及びφＢ（ＱＡ）とをＡｌｉｃｅに送信する。
【００１５】
Ａｌｉｃｅは、秘密鍵（ｍＡ，ｎＡ）と、Ｂｏｂによって送信されたφＢ（ＰＡ）及びφＢ（ＱＡ）とを用いて、ＲＢＡ＝ｍＡφＢ（ＰＡ）＋ｎＡφＢ（ＱＡ）を計算する。Ａｌｉｃｅは、ＲＢＡと、Ｂｏｂによって送信された超特異楕円曲線ＥＢとから、共有鍵ＫＡｌｉｃｅ＝ｊ（ＥＢ／＜ＲＢＡ＞）を計算する。ここで、ｊは、ｊ−不変量である。
同様に、Ｂｏｂは、秘密鍵（ｍＢ，ｎＢ）と、Ａｌｉｃｅによって送信されたφＡ（ＰＢ）及びφＡ（ＱＢ）とを用いて、ＲＡＢ＝ｍＢφＡ（ＰＢ）＋ｎＢφＡ（ＱＢ）を計算する。Ｂｏｂは、ＲＡＢと、Ａｌｉｃｅによって送信された超特異楕円曲線ＥＡとから、共有鍵ＫＢｏｂ＝ｊ（ＥＡ／＜ＲＡＢ＞）を計算する。
【００１６】
つまり、鍵共有を行う一方（ここではＢｏｂ）が図１のルート１の計算を行い、他方（ここではＡｌｉｃｅ）が図１のルート２の計算を行う。
ここで、＜ｍＡφＢ（ＰＡ）＋ｎＡφＢ（ＱＡ）＞＝＜φＢ（ＲＡ）＞＝ｋｅｒφＢＡであり、＜ｍＢφＡ（ＰＢ）＋ｎＢφＡ（ＱＢ）＞＝＜φＡ（ＲＢ）＞＝ｋｅｒφＡＢである。そのため、ｊ−不変量の間の等式ＫＡｌｉｃｅ＝ｊ（ＥＢ／ｋｅｒφＢＡ）＝ｊ（Ｅ／＜ＲＡ，ＲＢ＞）＝ｊ（ＥＡ／ｋｅｒφＡＢ）＝ＫＢｏｂが成立する。したがって、Ｋ＝ＫＡｌｉｃｅ＝ＫＢｏｂが共有鍵となる。
【００１７】
ここで、Ａｌｉｃｅが用いる公開パラメータＰＡ，ＱＡ及び秘密鍵空間ＳＫＡはＬＡのべき乗に基づく要素であり、Ｂｏｂが用いる公開パラメータＰＢ，ＱＢ及び秘密鍵空間ＳＫＢはＬＢのべき乗に基づく要素である。したがって、公開パラメータＰＡ，ＱＡ及び秘密鍵空間ＳＫＡと、公開パラメータＰＢ，ＱＢ及び秘密鍵空間ＳＫＢとは、異なる分類の要素である。ＡｌｉｃｅとＢｏｂとは、必ず異なる分類の要素を用いる必要があり、同じ分類の要素を用いて鍵共有を行うことはできない。
このように、鍵共有を行う二者間で用いる情報が異なることを、非対称性と呼ぶ。つまり、ＳＩＤＨ鍵共有方式は非対称性を持つ。
【００１８】
＜記法＞
図３を参照して、ＳＩＤＨ鍵共有方式を簡潔に記載するための記法を説明する。
公開パラメータに含まれる超特異楕円曲線Ｅ及び生成元ＰＡ，ＱＡ，ＰＢ，ＱＢが“ｇ”と記述される。Ａｌｉｃｅの秘密鍵（ｍＡ，ｎＡ）が“ａ”と記述され、Ｂｏｂの秘密鍵（ｍＢ，ｎＢ）が“ｂ”と記述される。
上述した超特異楕円曲線Ｅの集合がＳＳＥＣｐと記述される。補助ねじれ点基底を有する上述した超特異楕円曲線Ｅの集合が、ＳＳＥＣｐ，Ａ及びＳＳＥＣｐ，Ｂと記述される。ＳＳＥＣｐ，ＡはＡｌｉｃｅがＢｏｂに送信する情報の集合であり、ＳＳＥＣｐ，ＢはＢｏｂがＡｌｉｃｅに送信する情報の集合である。
【００１９】
そして、“ｇａ”と“ｇｂ”と“（ｇｂ）ａ”と“（ｇａ）ｂ”とが以下のように定義される。
ｇａ：＝（ＥＡ：φＡ（ＰＢ），φＡ（ＱＢ））∈ＳＳＥＣｐ，Ａ，ｗｈｅｒｅ  ＲＡ＝ｍＡＰＡ＋ｎＡＱＡ，φＡ：Ｅ→ＥＡ＝Ｅ／＜ＲＡ＞
ｇｂ：＝（ＥＢ：φＢ（ＰＡ），φＢ（ＱＡ））∈ＳＳＥＣｐ，Ｂ，ｗｈｅｒｅ  ＲＢ＝ｍＢＰＢ＋ｎＢＱＢ，φＢ：Ｅ→ＥＢ＝Ｅ／＜ＲＢ＞
（ｇｂ）ａ：＝ｊ（ＥＢＡ），ｗｈｅｒｅ  ＲＢＡ＝ｍＡφＢ（ＰＡ）＋ｎＡφＢ（ＱＡ），φＢＡ：ＥＢ→ＥＢＡ＝ＥＢ／＜ＲＢＡ＞
（ｇａ）ｂ：＝ｊ（ＥＡＢ），ｗｈｅｒｅ  ＲＡＢ＝ｍＢφＡ（ＰＢ）＋ｎＢφＡ（ＱＢ），φＡＢ：ＥＡ→ＥＡＢ＝ＥＡ／＜ＲＡＢ＞
【００２０】
以上の記法を用いて、ＳＩＤＨ鍵共有方式を記述すると、図４に示すようになる。
ここで、公開パラメータは、ｇ＝（Ｅ；ＰＡ，ＱＡ，ＰＢ，ＱＢ）と、ｅ＝（ＬＡ，ＬＢ，ｅＡ，ｅＢ）である。
Ａｌｉｃｅは、秘密鍵空間ＳＫＡからランダムに選択された秘密鍵ａを用いて、ｇａを計算する。そして、Ａｌｉｃｅは、ｇａをＢｏｂに送信する。同様に、Ｂｏｂは、秘密鍵空間ＳＫＢからランダムに選択された秘密鍵ｂを用いて、ｇｂを計算する。そして、Ｂｏｂは、ｇｂをＡｌｉｃｅに送信する。
Ａｌｉｃｅは、秘密鍵ａと、Ｂｏｂによって送信されたｇｂとを用いて、共有鍵ＫＡｌｉｃｅ＝（ｇｂ）ａを計算する。同様に、Ｂｏｂは、秘密鍵ｂと、Ａｌｉｃｅによって送信されたｇａとを用いて、共有鍵ＫＢｏｂ＝（ｇａ）ｂを計算する。共有鍵ＫＡｌｉｃｅ＝（ｇｂ）ａ＝（ｇａ）ｂ＝共有鍵ＫＢｏｂである。
【００２１】
＊＊＊構成の説明＊＊＊
図５を参照して、実施の形態１に係る鍵共有システム１の構成を説明する。
鍵共有システム１は、複数の鍵共有装置１０を備える。図５では、鍵共有システム１は、鍵共有装置１０Ａ〜鍵共有装置１０Ｄの鍵共有装置１０を備える。鍵共有装置１０は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）及びスマートフォンといったコンピュータである。鍵共有装置１０間は、伝送路３０を介して接続されている。伝送路３０は、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。
【００２２】
図６を参照して、実施の形態１に係る鍵共有装置１０の構成を説明する。
鍵共有装置１０は、プロセッサ１１と、メモリ１２と、ストレージ１３と、通信インタフェース１４とのハードウェアを備える。プロセッサ１１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２３】
プロセッサ１１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１は、具体例としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００２４】
メモリ１２は、データを一時的に記憶する記憶装置である。メモリ１２は、具体例としては、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００２５】
ストレージ１３は、データを保管する記憶装置である。ストレージ１３は、具体例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、ストレージ１３は、ＳＤ（登録商標，Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＣＦ（ＣｏｍｐａｃｔＦｌａｓｈ，登録商標）、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
【００２６】
通信インタフェース１４は、外部の装置と通信するためのインタフェースである。通信インタフェース１４は、具体例としては、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＨＤＭＩ（登録商標，Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）のポートである。
【００２７】
鍵共有装置１０は、機能構成要素として、受信部２１と、鍵選択部２２と、鍵生成部２３と、送信部２４とを備える。鍵生成部２３は、静的鍵生成部２５と、一時鍵生成部２６と、共有鍵生成部２７とを備える。鍵共有装置１０の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ１３には、鍵共有装置１０の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ１１によりメモリ１２に読み込まれ、プロセッサ１１によって実行される。これにより、鍵共有装置１０の各機能構成要素の機能が実現される。
【００２８】
図６では、プロセッサ１１は、１つだけ示されていた。しかし、プロセッサ１１は、複数であってもよく、複数のプロセッサ１１が、各機能を実現するプログラムを連携して実行してもよい。
【００２９】
＊＊＊動作の説明＊＊＊
図７から図９を参照して、実施の形態１に係る鍵共有システム１の動作を説明する。
実施の形態１に係る鍵共有システム１の動作は、実施の形態１に係る鍵共有方法に相当する。また、実施の形態１に係る鍵共有システム１の動作は、実施の形態１に係る鍵共有プログラムの処理に相当する。
【００３０】
鍵共有システム１は、公開パラメータとして、ｇ＝（Ｅ；Ｐ１，Ｑ１，Ｐ２，Ｑ２）と、ｅ＝（Ｌ１，Ｌ２，ｅ１，ｅ２）とを用いる。なお、ここでは、添え字が、図４で説明したＳＩＤＨ鍵共有方式における“Ａ”及び“Ｂ”から“１”及び“２”に変更されている。公開パラメータには、Ｌ１のｅ１乗に基づく（Ｐ１，Ｑ１）とＬ２のｅ２乗に基づく（Ｐ２，Ｑ２）との２つの分類のパラメータが含まれている。
また、鍵共有システム１は、数１５に示す（Ｐ１，Ｑ１）と同じ分類である、Ｌ１のｅ１乗に基づく秘密鍵空間ＳＫ１と、（Ｐ２，Ｑ２）と同じ分類である、Ｌ２のｅ２乗に基づく秘密鍵空間ＳＫ２とを用いる。
【数１５】
2019075757.tif 000007
【００３１】
図７を参照して、実施の形態１に係る事前処理を説明する。
事前処理は、鍵共有システム１が備える各鍵共有装置１０により、後述する鍵共有処理が行われる前に実行される。ここでは、鍵共有装置１０Ａと鍵共有装置１０Ｂとが鍵共有を行う場合を例として説明する。
【００３２】
（ステップＳ１１：公開パラメータ取得処理）
受信部２１は、公開パラメータを取得する。
具体的には、受信部２１は、公開用のサーバから、公開パラメータであるｇ＝（Ｅ；Ｐ１，Ｑ１，Ｐ２，Ｑ２）と、ｅ＝（Ｌ１，Ｌ２，ｅ１，ｅ２）とを受信して、メモリ１２に書き込む。公開パラメータは、鍵共有システム１の管理装置によって生成され、公開用のサーバに記憶されている。
【００３３】
（ステップＳ１２：静的鍵生成処理）
静的鍵生成部２５は、ステップＳ１１で取得された公開パラメータに基づき、静的鍵を生成する。
具体的には、鍵共有装置１０Ａでは、静的鍵生成部２５は、メモリ１２から公開パラメータを読み出す。静的鍵生成部２５は、秘密鍵空間ＳＫ１からランダムに要素を選択して静的秘密鍵ａ１＝（ｍＡ，１，ｎＡ，１）を生成する。静的鍵生成部２５は、秘密鍵空間ＳＫ２からランダムに要素を選択して静的秘密鍵ａ２＝（ｍＡ，２，ｎＡ，２）を生成する。また、静的鍵生成部２５は、静的秘密鍵ａ１を用いて、静的公開鍵Ａ１＝ｇ＾ａ１を生成する。静的鍵生成部２５は、静的秘密鍵ａ２を用いて、静的公開鍵Ａ２＝ｇ＾ａ２を生成する。静的鍵生成部２５は、静的秘密鍵ａ１及び静的公開鍵Ａ１の組と、静的秘密鍵ａ２及び静的公開鍵Ａ２の組とをメモリ１２に書き込む。
同様に、鍵共有装置１０Ｂでは、静的鍵生成部２５は、メモリ１２から公開パラメータを読み出す。静的鍵生成部２５は、秘密鍵空間ＳＫ１からランダムに要素を選択して静的秘密鍵ｂ１＝（ｍＢ，１，ｎＢ，１）を生成する。静的鍵生成部２５は、秘密鍵空間ＳＫ２からランダムに要素を選択して静的秘密鍵ｂ２＝（ｍＢ，２，ｎＢ，２）を生成する。また、静的鍵生成部２５は、静的秘密鍵ｂ１を用いて、静的公開鍵Ｂ１＝ｇ＾ｂ１を生成する。静的鍵生成部２５は、静的秘密鍵ｂ２を用いて、静的公開鍵Ｂ２＝ｇ＾ｂ２を生成する。静的鍵生成部２５は、静的秘密鍵ｂ１及び静的公開鍵Ｂ１の組と、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組とをメモリ１２に書き込む。
ここで、静的秘密鍵ａ１及び静的公開鍵Ａ１の組と、静的秘密鍵ａ２及び静的公開鍵Ａ２の組と、静的秘密鍵ｂ１及び静的公開鍵Ｂ１の組と、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組とをそれぞれ静的鍵と呼ぶ。静的秘密鍵ａ１及び静的公開鍵Ａ１の組と、静的秘密鍵ｂ１及び静的公開鍵Ｂ１の組とは、Ｌ１のべき乗に基づく要素であり、（Ｐ１，Ｑ１）と同じ分類である。静的秘密鍵ａ２及び静的公開鍵Ａ２の組と、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組とは、Ｌ２のべき乗に基づく要素であり、（Ｐ２，Ｑ２）と同じ分類である。
【００３４】
（ステップＳ１３：鍵公開処理）
送信部２４は、ステップＳ１２で生成された静的公開鍵をメモリ１２から読み出す。そして、送信部２４は、読み出された静的公開鍵を公開用のサーバに送信して、鍵共有システム１が備える各鍵共有装置１０に公開する。
鍵共有装置１０Ａであれば、送信部２４は、静的公開鍵Ａ１及び静的公開鍵Ａ２をメモリ１２から読み出し、読み出された静的公開鍵Ａ１及び静的公開鍵Ａ２を公開用のサーバに送信する。鍵共有装置１０Ｂであれば、送信部２４は、静的公開鍵Ｂ１及び静的公開鍵Ｂ２をメモリ１２から読み出し、読み出された静的公開鍵Ｂ１及び静的公開鍵Ｂ２を公開用のサーバに送信する。
【００３５】
図８及び図９を参照して、実施の形態１に係る鍵共有処理を説明する。
前提として、鍵共有装置１０は、鍵共有を行う相手側の静的公開鍵を公開用のサーバから取得して、メモリ１２に記憶しているものとする。
【００３６】
（ステップＳ２１：鍵選択処理）
鍵選択部２２は、分類の異なる２つの静的鍵から、１つの静的鍵を選択する。
具体的には、鍵選択部２２は、分類の異なる２つの静的鍵から、相手側と異なる分類の静的鍵を選択する。つまり、鍵共有装置１０Ａでは、鍵選択部２２は、静的秘密鍵ａ１及び静的公開鍵Ａ１の組と、静的秘密鍵ａ２及び静的公開鍵Ａ２の組とのうち、鍵共有を行う相手側である鍵共有装置１０Ｂと異なる組を選択する。同様に、鍵共有装置１０Ｂでは、鍵選択部２２は、静的秘密鍵ｂ１及び静的公開鍵Ｂ１の組と、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組とのうち、鍵共有を行う相手側である鍵共有装置１０Ａと異なる組を選択する。
具体例としては、鍵選択部２２は、鍵の共有を開始する開始側か否かに応じて、２つの静的鍵のうち、一方を選択する。これに限らず、予め定められたルールに従い、互いに異なる組が選択されるようにしておけばよい。鍵選択部２２は、選択された静的鍵をメモリ１２に書き込む。
ここでは、鍵選択部２２は、鍵の共有を開始する開始側の鍵共有装置１０（ここでは、鍵共有装置１０Ａとする）である場合には、（Ｐ１，Ｑ１）と同じ分類である、静的秘密鍵ａ１及び静的公開鍵Ａ１の組を選択する。一方、鍵選択部２２は、開始側に応答して鍵の共有を行う応答側の鍵共有装置１０（ここでは、鍵共有装置１０Ｂとする）である場合には、（Ｐ２，Ｑ２）と同じ分類である、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組を選択する。例えば、鍵共有開始前の事前通信でどちらが開始側であるかを特定することが可能である。
【００３７】
（ステップＳ２２：一時鍵生成処理）
一時鍵生成部２６は、ステップＳ２１で選択された静的鍵と同じ分類の一時鍵を生成する。
具体的には、一時鍵生成部２６は、ステップＳ２１で選択された静的鍵と同じ分類の秘密鍵空間からランダムに要素を選択して一時秘密鍵を生成する。開始側の鍵共有装置１０Ａの一時鍵生成部２６は、静的秘密鍵ａ１及び静的公開鍵Ａ１の組と同じ分類の秘密鍵空間ＳＫ１からランダムに要素を選択して一時秘密鍵ｘ＝（ｍｘ，ｎｘ）を生成する。また、応答側の鍵共有装置１０Ｂの一時鍵生成部２６は、静的秘密鍵ｂ２及び静的公開鍵Ｂ２の組と同じ分類の秘密鍵空間ＳＫ２からランダムに要素を選択して一時秘密鍵ｙ＝（ｍｙ，ｎｙ）を生成する。
また、一時鍵生成部２６は、一時秘密鍵を用いて、一時公開鍵を生成する。開始側の鍵共有装置１０Ａの一時鍵生成部２６は、一時秘密鍵ｘを用いて、一時公開鍵Ｘ＝ｇｘを生成する。また、応答側の鍵共有装置１０Ｂの一時鍵生成部２６は、一時秘密鍵ｙを用いて、一時公開鍵Ｙ＝ｇｙを生成する。
一時秘密鍵と一時公開鍵とを総称して一時鍵と呼ぶ。一時鍵生成部２６は、生成された一時鍵をメモリ１２に書き込む。
【００３８】
（ステップＳ２３：一時公開鍵送信処理）
送信部２４は、ステップＳ２２で生成された一時公開鍵を、鍵共有の相手側の鍵共有装置１０に送信する。
具体的には、送信部２４は、メモリ１２から一時公開鍵を読み出す。送信部２４は、読み出された一時公開鍵を、通信インタフェース１４を介して相手側の鍵共有装置１０に送信する。すると、一時公開鍵は、伝送路３０を通って、相手側の鍵共有装置１０に送信され、相手側の鍵共有装置１０の受信部２１によって受信される。
開始側の鍵共有装置１０Ａの送信部２４は、一時公開鍵Ｘを応答側の鍵共有装置１０Ｂに送信する。鍵共有装置１０Ｂの受信部２１は、一時公開鍵Ｘを受信してメモリ１２に書き込む。また、応答側の鍵共有装置１０Ｂは、一時公開鍵Ｙを開始側の鍵共有装置１０Ａに送信する。鍵共有装置１０Ａの受信部２１は、一時公開鍵Ｙを受信してメモリ１２に書き込む。
【００３９】
（ステップＳ２４：共有鍵生成処理）
共有鍵生成部２７は、ステップＳ２１で選択された静的鍵と、ステップＳ２２で生成された一時秘密鍵と、ステップＳ２３で相手側によって生成された一時公開鍵と、相手側の静的公開鍵とを用いて、共有鍵を生成する。
具体的には、共有鍵生成部２７は、ステップＳ２１で選択された静的鍵と、ステップＳ２２で生成された一時秘密鍵と、ステップＳ２３で受信された相手側の一時公開鍵と、相手側の静的公開鍵とを、メモリ１２から読み出す。そして、共有鍵生成部２７は、以下のように、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とを計算し、メモリ１２に書き込む。
開始側の鍵共有装置１０Ａの共有鍵生成部２７は、値Ｚ１＝Ｙ＾ａ１、値Ｚ２＝Ｂ２ｘ、値Ｚ３＝Ｂ２＾ａ１、値Ｚ４＝Ｙｘのように、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とを計算する。応答側の鍵共有装置１０Ｂの共有鍵生成部２７は、値Ｚ１＝Ａ１ｙ、値Ｚ２＝Ｘ＾ｂ２、値Ｚ３＝Ａ１＾ｂ２、値Ｚ４＝Ｘｙのように、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とを計算する。
ここで、値Ｚ１＝Ｙ＾ａ１＝（ｇｙ）＾ａ１＝（ｇ＾ａ１）ｙ＝Ａ１ｙである。値Ｚ２＝Ｂ２ｘ＝（ｇ＾ｂ２）ｘ＝（ｇｘ）＾ｂ２＝Ｘ＾ｂ２である。値Ｚ３＝Ｂ２＾ａ１＝（ｇ＾ｂ２）＾ａ１＝（ｇ＾ａ１）＾ｂ２＝Ａ１＾ｂ２である。値Ｚ４＝Ｙｘ＝（ｇｙ）ｘ＝（ｇｘ）ｙ＝Ｘｙである。したがって、開始側の鍵共有装置１０Ａで計算される値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４と、応答側の鍵共有装置１０Ｂで計算される値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とは、いずれも等しい。
【００４０】
共有鍵生成部２７は、計算された値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とを用いて、共通鍵Ｋを生成する。
具体例としては、共有鍵生成部２７は、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とを入力としてハッシュ関数Ｈを計算して、共通鍵Ｋを生成する。この際、共有鍵生成部２７は、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４とに加え、プロトコルの識別子であるΠと、開始側の鍵共有装置１０Ａの識別子Ａと、応答側の鍵共有装置１０Ｂの識別子Ｂと、開始側の鍵共有装置１０Ａの一時公開鍵Ｘと、応答側の鍵共有装置１０Ｂの一時公開鍵Ｙとも入力としてもよい。つまり、共有鍵生成部２７は、Ｋ＝Ｈ（Π，Ｚ１，Ｚ２，Ｚ３，Ｚ４，Ａ，Ｂ，Ｘ，Ｙ）を計算して、共通鍵Ｋを計算してもよい。
【００４１】
なお、値Ｚ１と値Ｚ２と値Ｚ３と値Ｚ４との一部を１つの値にまとめるといった修正を加えてもよい。
【００４２】
＊＊＊実施の形態１の効果＊＊＊
以上のように、実施の形態１に係る鍵共有システム１は、２つの分類の静的鍵を用意しておき、鍵共有の相手側と異なる静的鍵を用いるようにする。これにより、非対称性を持つ鍵共有方式を認証機能付きの鍵共有方式に変換することが可能になる。
【００４３】
認証機能付きの鍵共有について説明する。
認証機能付きの鍵共有のプロトコルでは、鍵共有を行う二者は、自身の静的な公開鍵を持ち、一時公開鍵を交換する。そして、鍵共有を行う二者は、相手側の静的な公開鍵と、相手側から受け取った一時公開鍵と、自身の静的な公開鍵に対応する静的な秘密鍵と、自身の一時公開鍵に対応する一時秘密鍵とに基づき共有鍵を計算する。
静的な公開鍵及び静的な秘密鍵を総称して静的鍵と呼ぶ。静的鍵は、長期間変更されない鍵である。一時公開鍵及び一時秘密鍵を総称して一時鍵と呼ぶ。一時鍵は、共有鍵を生成する際に一時的に用いられる鍵である。共有鍵は、二者間で共有される鍵である。
認証機能付きの鍵共有プロトコルでは、相手側の静的な公開鍵を用いて共有鍵が計算される。静的な公開鍵は、長期間変更されない鍵である。そのため、共有鍵を共有する相手を特定可能である。
【００４４】
また、実施の形態１に係る鍵共有システム１は、ＳＩＤＨ鍵共有方式を変換することにより、１ラウンドの認証機能付きの鍵共有方式を実現することが可能である。
【００４５】
１ラウンドについて説明する。
１ラウンドは、鍵共有を行う二者がメッセージを独立かつ同時に送ることが可能であることを意味する。つまり、１ラウンドは、二者のうち一方から他方へメッセージを送り、このメッセージを受けて他方から一方へメッセージを返すという往復通信が不要であることを意味する。この往復通信が必要であることは２ｐａｓｓと呼ばれる。１ラウンドの認証機能付きの鍵共有方式を実現することにより、鍵共有装置１０は、鍵共有の開始前に一時鍵を計算しておくことが可能である。そして、鍵共有を行う鍵共有装置１０同士で、同時に一時鍵の交換を行うことが可能である。したがって、効率的に鍵共有を行うことが可能である。
【００４６】
なお、文献“Ｆｕｊｉｏｋａ，  Ａ．，  Ｓｕｚｕｋｉ，  Ｋ．，  Ｘａｇａｗａ，  Ｋ．，  Ｙｏｎｅｙａｍａ，  Ｋ．：  Ｓｔｒｏｎｇｌｙ  ｓｅｃｕｒｅ  ａｕｔｈｅｎｔｉｃａｔｅｄ  ｋｅｙ  ｅｘｃｈａｎｇｅ  ｆｒｏｍ  ｆａｃｔｏｒｉｎｇ，  ｃｏｄｅｓ，  ａｎｄ  ｌａｔｔｉｃｅｓ．  Ｄｅｓ．  Ｃｏｄｅｓ  Ｃｒｙｐｔｏｇｒａｐｈｙ  ７６（３），４６９−５０４  （２０１５），  ａ  ｐｒｅｌｉｍｉｎａｒｙ  ｖｅｒｓｉｏｎ  ａｐｐｅａｒｅｄ  ｉｎ  ＰＫＣ  ２０１２  （２０１２）”に記載された方法で実現される認証機能付きの鍵共有方式は、往復通信が必要であり、１ラウンドの認証機能付きの鍵共有方式ではない。
また、実施の形態１に係る鍵共有システム１で実現される認証機能付きの鍵共有方式は、単一の楕円曲線において実現される方式である。そのため、上記文献に記載された鍵共有方式に比べ、通信するデータサイズを小さくすることができる。つまり、効率的な鍵共有方式を実現することができる。
【００４７】
また、実施の形態１に係る鍵共有システム１は、２つの分類の静的鍵を用意しておき、開始側か応答側かによって静的鍵を選択する。そのため、実施の形態１に係る鍵共有システム１で実現される認証機能付きの鍵共有方式は、認証システムを攻撃する方法である反射攻撃に対する耐性がある。反射攻撃については、文献“Ｔａｎｅｎｂａｕｍ，  Ａ．Ｓ．：  Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ．  Ｐｅａｒｓｏｎ  （２００２）”に記載がある。
【００４８】
また、実施の形態１に係る鍵共有システム１で実現される認証機能付きの鍵共有方式は、量子計算機に対して安全性を担保できるだけでなく、量子ランダムオラクルモデルにおける安全性についても証明可能である。
【００４９】
＊＊＊他の構成＊＊＊
＜変形例１＞
実施の形態１では、非対称性を持つ鍵共有方式として、ＳＩＤＨ鍵共有方式を例として説明した。しかし、ＳＩＤＨ鍵共有方式に限らず、他の鍵共有方式に対して２つの静的鍵を用意しておき、鍵共有の相手側と異なる静的鍵を用いるようにするという技術を適用して、その鍵共有方式を認証機能付きの鍵共有方式に変換することも可能である。適用対象の鍵共有方式が耐量子性を持つ方式であれば、変換して得られた認証機能付きの鍵共有方式も耐量子性を持つ方式である可能性がある。
【００５０】
＜変形例２＞
実施の形態１では、各機能構成要素がソフトウェアで実現された。しかし、変形例２として、各機能構成要素はハードウェアで実現されてもよい。この変形例２について、実施の形態１と異なる点を説明する。
【００５１】
図１０を参照して、変形例２に係る鍵共有装置１０の構成を説明する。
各機能構成要素がハードウェアで実現される場合には、鍵共有装置１０は、プロセッサ１１とメモリ１２とストレージ１３とに代えて、電子回路１５を備える。電子回路１５は、各機能構成要素と、メモリ１２と、ストレージ１３との機能とを実現する専用の回路である。
【００５２】
電子回路１５としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が想定される。
各機能構成要素を１つの電子回路１５で実現してもよいし、各機能構成要素を複数の電子回路１５に分散させて実現してもよい。
【００５３】
＜変形例３＞
変形例３として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【００５４】
プロセッサ１１とメモリ１２とストレージ１３と電子回路１５とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【符号の説明】
【００５５】
１０  鍵共有装置、１１  プロセッサ、１２  メモリ、１３  ストレージ、１４  通信インタフェース、１５  電子回路、２１  受信部、２２  鍵選択部、２３  鍵生成部、２４  送信部、２５  静的鍵生成部、２６  一時鍵生成部、２７  共有鍵生成部、３０  伝送路。
【図１】
2019075757.tif 000012
【図２】
2019075757.tif 000013
【図３】
2019075757.tif 000014
【図４】
2019075757.tif 000015
【図５】
2019075757.tif 000016
【図６】
2019075757.tif 000017
【図７】
2019075757.tif 000018
【図８】
2019075757.tif 000019
【図９】
2019075757.tif 000020
【図１０】
2019075757.tif 000021