(57)【要約】【課題】第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明する。【解決手段】生成装置２１０は、第２の鍵ペアを構成する第２の公開鍵ａｘ・ｇ１を生成した際に、証明データであるｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）を算出して記憶する（Ｓ３０１）。生成装置２１０は、算出した証明データを受領装置２２０に提供する（Ｓ３０２）。証明データを受領した受領装置２２０は、第２の公開鍵ａｘ・ｇ１が第１の公開鍵ａ・ｇ１の所有者により生成されたものであることの証明を証明装置２３０に求める証明要求を送信する（Ｓ３０３）。証明装置２３０は、証明要求に応じて、証明データの検証式を計算することによって、当該証明データを検証する（Ｓ３０４）。そして、証明装置２３０は、検証結果を受領装置２２０からの証明要求に対する応答として、送信する（Ｓ３０５）。【選択図】図３
2020048221.tif 000002
【特許請求の範囲】
【請求項１】
第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための方法において、第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、
前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、
前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、
前記検証の結果を前記証明要求に対する応答として送信するステップと
を含むことを特徴とする方法。
【数１】
2020048221.tif 000010
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【請求項２】
前記Ｎは２以上であり、
ｎ２は前記第２の鍵ペアに与えられる属性を表すデータであることを特徴とする請求項１に記載の方法。
【請求項３】
前記証明要求は、前記第２の公開鍵ａｘ・ｇ１を含むことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記証明要求は、前記証明データを含むことを特徴とする請求項１又は２に記載の方法。
【請求項５】
コンピュータに、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための方法を実行させるためのプログラムにおいて、
前記方法は、第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、
前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、
前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、
前記検証の結果を前記証明要求に対する応答として送信するステップと
を含むことを特徴とするプログラム。
【数１】
2020048221.tif 000011
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【請求項６】
第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための装置において、
第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、
前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信し、
前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証し、
前記検証の結果を前記証明要求に対する応答として送信することを特徴とする装置。
【数１】
2020048221.tif 000012
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【請求項７】
第１の識別子に関連づけて生成された第２の識別子の信頼性を証明するための方法において、第１の定数をａ、巡回群Ｇ１の生成元をｇ１、第１の識別子をａ・ｇ１、第２の定数をａｘ、第２の識別子をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、
前記第２の識別子ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、
前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、
前記検証の結果を前記証明要求に対する応答として送信するステップと
を含むことを特徴とする方法。
【数１】
2020048221.tif 000013
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一態様は、公開鍵の信頼性を証明するための装置、方法及びそのためのプログラムに関する。
【背景技術】
【０００２】
インターネット上の経済活動が拡がりを見せる中で、そうした活動の主体を信頼性をもって識別することの必要性が高まっている。
【０００３】
インターネット上で送信されるデータの信頼性を保証するためには、電子証明書が用いられることが多い。電子証明書は、送信されるデータに対して電子署名を行うための秘密鍵に対応する公開鍵の所有者を認証するものであり、信頼できる認証局によって発行される。データの受信者は、電子証明書の正当性を確認するとともに公開鍵により電子署名を検証する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
今後、インターネット上で行われるやりとりに確実な信頼性が求められる場面は増加することが見込まれ、それに伴い、用途に応じたさまざまな形の電子認証に対する需要の増大が想定される。
【０００５】
しかしながら、現在の認証局を中心とした公開鍵暗号方式では、柔軟な対応が容易ではない。
【０００６】
本発明は、このような問題点に鑑みてなされたものであり、その第１の目的は、信頼できる第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて第２の秘密鍵及び第２の公開鍵により構成される第２の鍵ペアを生成する装置、方法及びそのためのプログラムを提供することにある。
【０００７】
また、本発明の第２の目的は、第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための装置、方法及びそのためのプログラムを提供することにある。
【０００８】
また、本発明の第３の目的は、第１の鍵ペアに関連づけて生成された第２の鍵ペアを用いた電子署名を実行又は検証するための装置、方法及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
このような目的を達成するために、本発明の第１の態様は、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて第２の秘密鍵及び第２の公開鍵により構成される第２の鍵ペアを生成する方法において、第１の秘密鍵をａ、巡回群Ｇの生成元をｇ、第１の公開鍵をａ・ｇ、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇとして、整数ｘを決定するステップと、第１の秘密鍵ａ（ａは整数）に前記ｘを乗じて第２の秘密鍵ａｘを算出して記憶するステップと、前記第１の公開鍵ａ・ｇに前記ｘを乗じて又は前記第１の秘密鍵ａに前記ｘ及び前記ｇを乗じて前記第２の公開鍵ａｘ・ｇを算出して記憶するステップとを含むことを特徴とする。
【００１０】
また、本発明の第２の態様は、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて第２の秘密鍵及び第２の公開鍵により構成される第２の鍵ペアを生成する方法において、第１の秘密鍵をａ、巡回群Ｇの生成元をｇ、第１の公開鍵をａ・ｇ、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇとして、整数ｘを決定するステップと、第２の秘密鍵ａｘ（ａｘは整数）を決定するステップと、前記第１の公開鍵ａ・ｇ（ａは整数）に前記ｘを乗じて、前記第１の秘密鍵ａに前記ｘ及び前記ｇを乗じて、又は前記第２の秘密鍵ａｘに前記ｇを乗じて前記第２の公開鍵ａｘ・ｇを算出して記憶するステップとを含むことを特徴とする。
【００１１】
また、本発明の第３の態様は、第１又は第２の態様において、前記巡回群Ｇの元は、楕円曲線の点であることを特徴とする。
【００１２】
また、本発明の第４の態様は、第３の態様において、前記第１の鍵ペアによる署名方式は、楕円曲線ＤＳＡであることを特徴とする。
【００１３】
また、本発明の第５の態様は、第１から第４のいずれかの態様において、前記第２の公開鍵ａｘ・ｇを計算した第１の装置から前記第１の装置以外の第２の装置に前記第１の公開鍵ａ・ｇを送信するステップをさらに含むことを特徴とする。
【００１４】
また、本発明の第６の態様は、第１から第５のいずれかの態様において、前記第２の公開鍵ａｘ・ｇを計算した第１の装置から前記第１の装置以外の第２の装置に前記第２の公開鍵ａｘ・ｇを送信するステップをさらに含むことを特徴とする。
【００１５】
また、本発明の第７の態様は、第１から第５のいずれかの態様において、前記第２の公開鍵ａｘ・ｇを生成した第１の装置の表示画面に前記第２の公開鍵ａｘ・ｇを表示するステップをさらに含むことを特徴とする。
【００１６】
また、本発明の第８の態様は、第１から第７のいずれかの態様において、前記第２の公開鍵ａｘ・ｇを生成した第１の装置以外の第２の装置に前記第２の秘密鍵ａｘを送信するステップをさらに含むことを特徴とする。
【００１７】
また、本発明の第９の態様は、第１から第７のいずれかの態様において、前記第２の公開鍵ａｘ・ｇを生成した第１の装置の表示画面に前記第２の秘密鍵ａｘを表示するステップをさらに含むことを特徴とする。
【００１８】
また、本発明の第１０の態様は、第１から第７のいずれかの態様において、前記第２の秘密鍵ａｘ・ｇを生成した第１の装置以外の記憶媒体に前記第２の秘密鍵ａｘを記憶することを特徴とする。
【００１９】
また、本発明の第１１の態様は、第１から第１０のいずれかの態様において、前記ｘは、疑似乱数であることを特徴とする。
【００２０】
また、本発明の第１２の態様は、コンピュータに、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて第２の秘密鍵及び第２の公開鍵により構成される第２の鍵ペアを生成する方法を実行させるためのプログラムにおいて、前記方法は、第１の秘密鍵をａ、巡回群Ｇの生成元をｇ、第１の公開鍵をａ・ｇ、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇとして、整数ｘを決定するステップと、第２の秘密鍵ａｘ（ａｘは整数）を決定するステップと、前記第１の公開鍵ａ・ｇ（ａは整数）に前記ｘを乗じて、前記第１の秘密鍵ａに前記ｘ及び前記ｇを乗じて、又は前記第２の秘密鍵ａｘに前記ｇを乗じて前記第２の公開鍵ａｘ・ｇを算出して記憶するステップとを含むことを特徴とする。
【００２１】
また、本発明の第１３の態様は、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて第２の秘密鍵及び第２の公開鍵により構成される第２の鍵ペアを生成するための装置において、第１の秘密鍵をａ、巡回群Ｇの生成元をｇ、第１の公開鍵をａ・ｇ、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇとして、整数ｘを決定し、第２の秘密鍵ａｘ（ａｘは整数）を決定し、前記第１の公開鍵ａ・ｇ（ａは整数）に前記ｘを乗じて、前記第１の秘密鍵ａに前記ｘ及び前記ｇを乗じて、又は前記第２の秘密鍵ａｘに前記ｇを乗じて前記第２の公開鍵ａｘ・ｇを算出して記憶することを特徴とする。
【００２２】
また、本発明の第１４の態様は、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための方法において、第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、前記検証の結果を前記証明要求に対する応答として送信するステップとを含むことを特徴とする。
【００２３】
【数１】
2020048221.tif 000003
【００２４】
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【００２５】
また、本発明の第１５の態様は、第１４のいずれかの態様において、前記Ｎは２以上であり、ｎ２は前記第２の鍵ペアに与えられる属性を表すデータであることを特徴とする。
【００２６】
また、本発明の第１６の態様は、第１４又は第１５の態様において、前記証明要求は、前記第２の公開鍵ａｘ・ｇ１を含むことを特徴とする。
【００２７】
また、本発明の第１７の態様は、第１４又は第１５の態様において、前記証明要求は、前記証明データを含むことを特徴とする。
【００２８】
また、本発明の第１８の態様は、コンピュータに、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための方法を実行させるためのプログラムにおいて、前記方法は、第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、前記検証の結果を前記証明要求に対する応答として送信するステップとを含むことを特徴とする。
【００２９】
【数２】
2020048221.tif 000004
【００３０】
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【００３１】
また、本発明の第１９の態様は、第１の秘密鍵及び第１の公開鍵により構成される第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための装置において、第１の秘密鍵をａ、巡回群Ｇ１の生成元をｇ１、第１の公開鍵をａ・ｇ１、第２の秘密鍵をａｘ、第２の公開鍵をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、前記第２の公開鍵ａｘ・ｇ１の信頼性の証明を求める証明要求を受信し、前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証し、前記検証の結果を前記証明要求に対する応答として送信することを特徴とする。
【００３２】
【数３】
2020048221.tif 000005
【００３３】
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【００３４】
また、本発明の第２０の態様は、第１の識別子に関連づけて生成された第２の識別子の信頼性を証明するための方法において、第１の定数をａ、巡回群Ｇ１の生成元をｇ１、第１の識別子をａ・ｇ１、第２の定数をaｘ、第２の識別子をａｘ・ｇ１、Ｈ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）をハッシュ関数として、前記第２の識別子ａｘ・ｇ１の信頼性の証明を求める証明要求を受信するステップと、前記証明要求に応じて、式（１）で表される検証式を計算してｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）及びａｘ・Ｈ（ｎ１，ｎ２，・・・ｎＮ）を含む証明データを検証するステップと、前記検証の結果を前記証明要求に対する応答として送信するステップとを含むことを特徴とする。
【００３５】
【数４】
2020048221.tif 000006
【００３６】
ここで、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群とし、Ｇ１×Ｇ２からＧＴへの双線形写像ｅが定義可能であり、かつ、ハッシュ関数Ｈ（ｎ１，ｎ２，・・・ｎＮ）を任意の第１から第Ｎのデータの組み合わせから巡回群Ｇ２への写像として定義可能であり、ｎ１はａｘ・ｇ１であるとする。
【発明の効果】
【００３７】
本発明の一態様によれば、第１の鍵ペアに関連づけて生成された第２の鍵ペアを構成する第２の公開鍵が第１の鍵ペアを構成する第１の公開鍵の子鍵であることを数学的に証明可能に第２の鍵ペアを定義することによって、認証局を必要とすることなく、電子署名可能な第２の鍵ペアの生成が可能となる。
【図面の簡単な説明】
【００３８】
【図１】本発明の第１の実施形態にかかる、第１の鍵ペアから第２の鍵ペアを生成する方法の流れ図である。
【図２】本発明の第２の実施形態にかかる、第１の鍵ペアから生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するためのシステムを示す図である。
【図３】本発明の第２の実施形態にかかる、第１の鍵ペアから生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するための方法の流れの一例を示す図である。
【発明を実施するための形態】
【００３９】
以下、図面を参照して本発明の実施形態を詳細に説明する。
（第１の実施形態）  
【００４０】
図１に、本発明の第１の実施形態にかかる第１の鍵ペアから第２の鍵ペアを生成するための方法の流れ図を示す。鍵ペアの生成は、以下で説明する処理を実行可能な任意の装置において行うことができ、例示として、スマートフォン、タブレット等の携帯機器とすることができる。第２の鍵ペアの生成時にインターネット等のコンピュータ・ネットワークに接続していることは必ずしも必要ではない。
【００４１】
当該装置においては、Ｇ１をｇ１を生成元とする巡回群、Ｇ２をｇ２を生成元とする巡回群、ＧＴをｇＴを生成元とする巡回群として、写像ｅがＧ１×Ｇ２からＧＴへの写像、ハッシュ関数Ｈ’（ｍ）が任意のデータｍからＧ２への写像として定義されており、写像ｅ及びハッシュ関数Ｈ’（ｍ）を計算可能である。加えて、写像ｅは、ａ及びｂを任意の整数として、次式で示される双線形性を満たすものとする。
【００４２】
【数５】
2020048221.tif 000007
【００４３】
生成元ｇ１、ｇ２の位数は素数であることが好ましく、各生成元により生成される巡回群Ｇ１、Ｇ２の元の数は一例として３２バイト、すなわち２５６ビット程度以上であることが好ましい。ここで、巡回群Ｇ１、Ｇ２における演算は加法的に記述しており、たとえば、生成元ｇ１をａ回繰り返し加算する演算をａ・ｇ１を表記し、「ａを生成元ｇ１に乗じる」と呼ぶ。なお、ａｘのように整数の集合の元同士の乗算も本明細書において表記として用いられるが、これは巡回加法群における乗算とは異なるものであることを念のため付言する。本明細書においては、巡回群Ｇ１、Ｇ２を加法群として表記するが、巡回乗法群として表記しても本発明と等価であってその技術的範囲に属することも念のため付言する。
【００４４】
まず、第１の鍵ペアとして、事前に生成された第１の秘密鍵ａ及び第１の公開鍵ａ・ｇ１を読み出す（Ｓ１０１）。ここで、ａは整数であり、たとえば乱数として定めることが好ましい。次に、整数ｘを決定する（Ｓ１０２）。ここで、整数ｘは、たとえば乱数又は疑似乱数として定めることでき、１以外であることが望ましい。一例としてｉを整数、ａ＋ｉを引数としたハッシュ値を疑似乱数ｘとすることができ、このようにするとｉ番目に決定されたｘを記憶しておかなくとも適宜ｉ番目のｘとして計算可能である。そして、第２の鍵ペアとして、ｘを乗じて第２の秘密鍵ａｘ及び第２の公開鍵ａｘ・ｇ１を計算し、記憶する（Ｓ１０３）。
【００４５】
公開鍵ａ・ｇ１は、本実施形態において、従来の信頼できる認証局が発行した電子証明書によって、その所有者が認証されているものとすることができる。あるいは、認証局による認証以外の何らかの形で信頼性が付与されているものとすることができる。
【００４６】
第１の鍵ペアを用いて任意のデータｍに対する電子署名を行う場合、ａ・Ｈ’（ｍ）を署名ｓとすれば、公開された生成元ｇ１及び第１の公開鍵ａ・ｇ１を用いて、データｍ及び署名ｓの受領者は次式が計算可能であり、左辺と右辺が一致することによって署名ｓを検証することができるため、上述のように定めた第１の鍵ペアが暗号方式として成り立つことが分かる。
【００４７】
【数６】
2020048221.tif 000008
【００４８】
同様に、第２の鍵ペアも暗号方式として成り立つことが分かるが、第２の公開鍵ａｘ・ｇ１が信頼性が付与された第１の公開鍵ａ・ｇ１の所有者によって生成されたことが証明可能でなければ、第２の鍵ペアによる署名は、第２の秘密鍵ａｘにより署名されたということ以上の信頼性が得られない。この点については、第２の実施形態において説明する。
【００４９】
任意のデータｍに対する電子証明の暗号方式としては、生成元ｇ１により生成される巡回群Ｇ１の元が楕円曲線上の点であり、各元の間に既知の所定の関係が成り立つ場合に楕円曲線ＤＳＡ等の楕円曲線を用いた暗号方式を採用することができる。
【００５０】
ここで、上述の説明では、事前に第１の秘密鍵ａ及び第１の公開鍵ａ・ｇ１が決定され、記憶されているものとしているが、第１の秘密鍵ａを事前に決定しておき、必要に応じて第１の公開鍵ａ・ｇ１を計算してもよい。また、上述の説明では、第１の秘密鍵ａ及び第１の公開鍵ａ・ｇ１が決定された後に整数ｘを決定するものとしているが、整数ｘが決定された後に、第１の秘密鍵ａ、そして必要に応じて第１の公開鍵ａ・ｇ１が決定されてもよい。また、第１の秘密鍵ａを直接的に決定するのではなく、整数ｘ及び第２の秘密鍵ａｘをそれぞれ乱数又は疑似乱数として決定して記憶し、これらの値から第１の秘密鍵ａを算出してもよい。換言すれば、第２の鍵ペアの生成には、第１の鍵ペアに関連づけて生成されるさまざまな態様を含む。また、ａの値及びａｘの値から必要に応じてｘの値を算出してもよい。
【００５１】
第１の秘密鍵ａは、バックアップのために外部の記憶媒体又は記憶装置に記憶されることは考えられるが、原則として外部に開示されることのないデータである。ｘについても、原則として外部に開示される性質のデータではない。
【００５２】
本実施形態にかかる第２の鍵ペアの生成の一特徴は、第２の秘密鍵ａｘが第１の秘密鍵ａと同様に整数の集合の元であり、第２の公開鍵ａｘ・ｇが第１の公開鍵ａ・ｇと同様に生成元ｇが生成する巡回群Ｇ１の元であって、第２の鍵ペアが第１の鍵ペアと同一の形式（ｆｏｒｍａｔ）であることから、第２の鍵ペアから第３の鍵ペア、第３の鍵ペアから第４の鍵ペアのように繰り返し子鍵ペアの生成が可能である点が挙げられる。
【００５３】
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。また、一例として、「ａの場合にｂする」という記載は、明示した場合を除き、「ａの場合に常にｂする」ことを必ずしも意味しないことに留意されたい。
【００５４】
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム（以下「方法等」）において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
【００５５】
（第２の実施形態）  
図２に、本発明の第２の実施形態にかかる、第１の鍵ペアから生成された第２の鍵ペアを構成する第２の公開鍵の信頼性を証明するためのシステムを示す。
【００５６】
システム２００は、第１の鍵ペアから第２の鍵ペアを生成して第２の鍵ペアを構成する第２の公開鍵を送信する送信装置２１０と、第２の公開鍵を受領する受領装置２２０と、第２の公開鍵の信頼性を証明する証明装置２３０とを備える。送信装置２１０、受信装置２２０及び証明装置２３０は、互いにコンピュータ・ネットワークを介して通信可能である。
【００５７】
証明装置２３０は、通信インターフェースなどの通信部２３１と、プロセッサ、ＣＰＵ等の処理部２３２と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部２３３とを備えるコンピュータであり、所定のプログラムを実行することによって、以下で説明する各処理を実現することができる。証明装置２３０は、１又は複数の装置ないしサーバを含むことがあり、また当該プログラムは、１又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。送信装置２１０及び受領装置２２０については図示しないものの、同様のハードウェアの構成を有することができる。
【００５８】
送信装置２１０において、第１の実施形態で説明した方法によって生成された第２の鍵ペアを構成する第２の公開鍵ａｘ・ｇ１は、それを受領した受領装置２２０においてその信頼性を確認することが出来なければ、その所有者を識別する役割を果たすことができない。そこで、本実施形態において、受信装置２２０は、証明装置２３０に対して第２の公開鍵ａｘ・ｇ１の信頼性の証明を要求する。
【００５９】
具体的には、証明装置２３０は、受領装置２２０を介して間接的に又は送信装置２１０から直接的に、第２の公開鍵ａｘ・ｇ１に加えて、証明データとしてｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）を受け取る。証明装置２３０は、何らかの形で既知でアクセス可能な生成元ｇ１及び第１の公開鍵ａ・ｇ１を用い、次の署名データの検証式を計算して三辺が一致することに基づいて、第２の公開鍵ａｘ・ｇ１が第１の公開鍵ａ・ｇ１の所有者により生成されたものであることを証明することができる。ここで、ｎはａｘ・ｇ１であり、Ｈ（ｎ）はＧ２への写像であって上述の電子署名に用いるＨ’（ｍ）と同一でも異なるものでもよい。
【００６０】
【数７】
2020048221.tif 000009
【００６１】
整数ｘを知らなければｘ・Ｈ（ｎ）を算出することが出来ず、加えて整数ａを知らなければａｘ・Ｈ（ｎ）を算出することが出来ないため、三辺が一致することで、ａ及びｘ又はａ及びａｘを知ることなく、ｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）の提供者は第２の公開鍵ａｘ・ｇ１を生成した第１の公開鍵ａｇ１の所有者であることが証明される。
【００６２】
上述の説明では、子鍵ペアを生成する親鍵ペアが１組である場合について考えてきたが、複数の親鍵ペアが存在し得る場合には、いずれの親鍵ペアを構成する親公開鍵との関係で子公開鍵であることの証明を行うのかの特定が必要となる。
【００６３】
なお、証明装置２３０は受領装置２２０と同一としてもよく、この場合、第２の公開鍵ａｘ・ｇ１の信頼性を自ら証明することができる。また、証明装置２３０は送信装置２１０と同一としてもよく、この場合、第２の公開鍵ａｘ・ｇ１の生成者が自らその信頼性を証明することとなる。
【００６４】
図３に、証明装置が証明データを生成装置から受け取る例において、第２の公開鍵の信頼性を証明する方法の流れを示す。上述の説明においては、送信装置という用語を用いたが、より一般化して生成装置という用語を図３においては用いる。
【００６５】
生成装置２１０は、第２の鍵ペアを構成する第２の公開鍵ａｘ・ｇ１を生成した際に又はその前後に、証明データであるｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）を算出して記憶する（Ｓ３０１）。生成装置２１０は、算出した証明データを受領装置２２０に提供する（Ｓ３０２）。受領装置２２０への与え方として、コンピュータ・ネットワークを介した受領装置２２０への送信、証明データを記憶した記憶媒体の受領装置２２０への接続、生成装置２１０の表示画面に表示された証明データの受領装置２２０への入力、生成装置２１０の表示画面に表示された証明データ又はこれに対応するデータの受領装置２２０の撮像素子による読み取り等のさまざまな態様が挙げられる。生成装置２１０から受領装置２２０又はその他の装置への第１の公開鍵ａ・ｇ１及び第２の公開鍵ａｘ・ｇ１の提供についても、同様にさまざまな態様が挙げられる。
【００６６】
証明データは、Ｈ（ｎ）を含むことができる一方、証明装置２３０又は証明装置２３０に証明データを提供する生成装置２１０若しくは受領装置２２０において必要に応じてＨ（ｎ）を計算可能としてもよい。
【００６７】
証明データを受領した受領装置２２０は、第２の公開鍵ａｘ・ｇ１が第１の公開鍵ａ・ｇ１の所有者により生成されたものであること、換言すれば第２の公開鍵ａｘ・ｇ１が第１の公開鍵ａｇ１と親子関係にあることの証明を証明装置２３０に求める証明要求を送信する（Ｓ３０３）。
【００６８】
証明要求は、この例では証明データを含むが、証明データが生成装置２１０から証明装置２３０に直接提供される例においては含む必要がない。上述したように、生成装置２１０が証明装置２３０を兼ねる場合においては、「提供」は自らに対する提供を含む。加えて、「証明要求」は、受領装置２２０が証明装置２３０を兼ねる場合においては、自らに対する要求を含む。
【００６９】
また、証明要求は、証明対象である親子関係における子鍵である第２の公開鍵ａｘ・ｇ１を含むことができ、また、当該親子関係における親鍵である第１の公開鍵ａ・ｇ１を含むことができる。親鍵及び子鍵の少なくとも一方は、生成装置２１０から直接的又は間接的に証明装置２３０に提供して証明装置２３０に予め記憶しておき、証明要求における明示的な指定を不要とすることができる。
【００７０】
証明装置２３０は、証明要求に応じて、証明データの検証式を計算することによって、当該証明データを検証する（Ｓ３０４）。
【００７１】
そして、証明装置２３０は、検証結果を受領装置２２０からの証明要求に対する応答として、送信する（Ｓ３０５）。受領装置２２０が証明装置２３０を兼ねる場合においては、自らの記憶装置又は記憶媒体に検証結果を記憶することとなるが、このような処理を自らに対する「送信」の概念に含めてもよい。
【００７２】
上述の説明では、第１の公開鍵ａ・ｇ１及び第２の公開鍵ａｘ・ｇ１を「公開鍵」として位置付けてきたが、インターネット上で何らかの活動を行う主体の「識別子」としても位置付けることができる。具体的には、第１の識別子に基づいて又は第１の識別子に関連づけて生成された第２の識別子の信頼性を評価する装置、方法及びそのためのプログラムとして、本発明の精神を解することができる。
【００７３】
（第３の実施形態）  
送信装置２１０は、受領装置２２０に対して、第１の秘密鍵ａは秘匿しつつ、第２の公開鍵ａｘ・ｇ１に加えて第２の秘密鍵ａｘを渡すこともできる。第２の秘密鍵ａｘの提供の態様としては、その他のデータと同様にさまざまな態様が考えられる。この場合、受領装置２２０は、第２の鍵ペアを用いてデータｍに対する電子署名を行うことが可能となる。そして、送信装置２１０からｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）を含む証明データを受け取っていれば、必要に応じて、電子署名の受信者に対してａｘ・ｇ１、ｘ・Ｈ（ｎ）及びａｘ・Ｈ（ｎ）をデータｍ及びそれに対する署名ｓとともに渡して、当該受信者は、当該電子署名が第１の公開鍵ａ・ｇ１の所有者により生成された第２の鍵ペアによるものであることを示すことができる。
【００７４】
受領装置２２０は、ここでは署名装置として機能しており、データｍに署名ｓが付加された署名済みデータの一部として、又は当該署名済みデータとは別データとして証明データ、そして必要に応じて第１の公開鍵ａ・ｇ１及び第２の公開鍵ａｘ・ｇ１の少なくとも一方を他の装置に送信する。
【００７５】
また、受領装置２２０は、第２の秘密鍵ａｘの提供を受けている場合、第２の鍵ペアのさらに子鍵ペアとして第３の秘密鍵ａｘｙ及び第３の公開鍵ａｘｙ・ｇ１から構成される第３の鍵ペアを生成することが可能である。ここで整数ｙは乱数又は疑似乱数として定めることができ、１以外であることが望ましい。
【００７６】
（第４の実施形態）  
上述の実施形態では、Ｇ２への写像Ｈ（ｎ）の引数として単一のパラメータｎを考えてきたが、Ｎ個の引数を有するＨ（ｎ１，ｎ２，・・・ｎＮ）（Ｎは１以上の整数）としてもよい。
【００７７】
たとえばＮ＝２の場合、ｎ１を第２の公開鍵ａｘ・ｇ１とし、ｎ２を任意の文字列ｓｔｒとすることができる。文字列ｓｔｒの例としては、第２の鍵ペアの有効期限の日付、第２の公開鍵の受領者のメールアドレス等のＩＤ等が挙げられる。より一般的に、ｎ２は第２の鍵ペアに与えられる属性を表す任意のデータとすることができる。
【００７８】
また、生成装置２１０は、第２の鍵ペアの生成の前に第２の鍵ペアの生成要求を受領装置２２０又はその他の装置から受信して生成を開始してもよく、生成要求に含まれる何らかのデータを引数ｎ２の値としてもよい。
【符号の説明】
【００７９】
２００  システム
２１０  送信装置
２２０  受領装置
２３０  証明装置
２３１  通信部
２３２  処理部
２３３  記憶部
【図１】
2020048221.tif 000014
【図２】
2020048221.tif 000015
【図３】
2020048221.tif 000016