(57)【特許請求の範囲】
【請求項１】
デジタル署名の生成方法であって、
装置が、有効性判定条件を満たすデジタル署名パラメータｒを生成することと、
前記装置が、秘密鍵ｄＡ、値範囲が［１，ｎ−１］の乱数ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000020
に基づいてデジタル署名パラメータｓを生成することと、
前記装置が、生成されたデジタル署名パラメータｓが０であるか否かを判断し、０の場合、前記デジタル署名パラメータｓが０でないものとなるまで、有効性判定条件を満たすデジタル署名パラメータｒを生成し直し、前記秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、前記生成し直されたデジタル署名パラメータｒ及び前記楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直すことと、
前記装置が、最終的に取得されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、デジタル署名（ｒ，ｓ）を取得することと、を含むことを特徴とする方法。
【請求項２】
前記装置が
0006353536.tif 000021
に基づいてデジタル署名パラメータｓを生成することは、
前記装置が、デジタル署名パラメータｒと乱数ｋに対して大整数加法演算を行って、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行うことと、
前記装置が、秘密鍵ｄＡに１を加算し、楕円曲線パラメータｎに対してモジュロ逆演算を行うことと、
前記装置が、モジュロ演算の演算結果とモジュロ逆演算の演算結果に対して大整数乗法演算を行うことと、
前記装置が、該大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得することと、を含むことを特徴とする請求項１に記載の方法。
【請求項３】
デジタル署名パラメータｓを生成する前に、
前記装置が、秘密鍵ｄＡ、ｒの有効性判定条件の演算結果ｒ＋ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いてデジタル署名パラメータｓを生成するように、ｒの有効性判定条件の演算結果ｒ＋ｋを取得すること、をさらに含むことを特徴とする請求項１又は２に記載の方法。
【請求項４】
デジタル署名パラメータｓを生成する前に、
前記装置が、秘密鍵ｄＡ、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いてデジタル署名パラメータｓを生成するように、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを取得すること、をさらに含むことを特徴とする請求項１又は２に記載の方法。
【請求項５】
デジタル署名の生成装置であって、
ハッシュ値ＺＡ及び署名されるメッセージＭを取得するパラメータ入力インターフェース手段と、
前記パラメータ入力インターフェース手段により取得されたハッシュ値ＺＡ及び署名されるメッセージＭに対してカスケード演算を行い、
-M
を生成するカスケード演算手段と、
前記カスケード演算手段により生成された
-M
に対して暗号ハッシュ演算を行い、メッセージダイジェスト情報ｅを生成する暗号ハッシュアルゴリズム演算手段と、
値範囲が［１，ｎ−１］の乱数ｋを生成する乱数発生器と、
前記乱数発生器により生成された乱数ｋに基づいて楕円曲線アルゴリズムスカラー乗法演算（ｘ１，ｙ１）＝ｋＧを行い、楕円曲線点の横座標ｘ１を取得するＥＣＣアルゴリズム演算手段であって、Ｇが楕円曲線パラメータである、ＥＣＣアルゴリズム演算手段と、
前記暗号ハッシュアルゴリズム演算手段により生成されたメッセージダイジェスト情報ｅのデータ型を整数型に変換し、前記ＥＣＣアルゴリズム演算手段により生成された楕円曲線点の横座標ｘ１のデータ型を整数型に変換するデータ型変換手段と、
前記データ型変換手段によりデータ型が変換されたメッセージダイジェスト情報ｅ及び楕円曲線点の横座標ｘ１を用いて、デジタル署名パラメータｒを生成する大整数演算手段と、
前記大整数演算手段により生成されたデジタル署名パラメータｒに対して有効性判定を行う有効性判定手段と、
デジタル署名（ｒ，ｓ）を出力するパラメータ出力インターフェース手段と、を含み、
前記デジタル署名パラメータｒが有効性判定条件を満たしていない場合、前記乱数発生器は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、前記ＥＣＣアルゴリズム演算手段は前記乱数発生器により生成し直された乱数ｋに基づいて楕円曲線点の横座標ｘ１を取得し直し、前記データ型変換手段は取得し直された楕円曲線点の横座標ｘ１に対してデータ型の変換を行い、前記大整数演算手段は前記メッセージダイジェスト情報ｅ及び生成し直された楕円曲線点の横座標ｘ１に基づいてデジタル署名パラメータｒを生成し直し、前記有効性判定手段は生成し直されたデジタル署名パラメータｒ及び生成し直された乱数ｋを用いて、生成し直されたデジタル署名パラメータｒに対して有効性判定を行い、
前記大整数演算手段は、秘密鍵ｄＡ、前記乱数発生器により生成された前記乱数ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000022
に基づいてデジタル署名パラメータｓを生成し、
前記有効性判断手段は、前記大整数演算手段により生成されたデジタル署名パラメータｓが０であるか否かを判断し、
０の場合、前記乱数生成器は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、前記大整数演算手段は、デジタル署名パラメータｒを生成し直し、前記生成し直されたデジタル署名パラメータｒが有効性判定条件を満たしているとき、前記秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、前記生成し直されたデジタル署名パラメータｒ及び前記楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直し、
前記データ型変換手段は、前記大整数演算手段により最終的に生成されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、前記デジタル署名（ｒ，ｓ）を取得することを特徴とする装置。
【請求項６】
デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、
前記デジタル署名パラメータｒと前記乱数発生器により生成された乱数ｋに対して大整数加法演算して、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行い、
秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、
前記モジュロ演算の結果と前記モジュロ逆演算の結果に対して大整数乗法演算を行い、
前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得することを特徴とする請求項５に記載の装置。
【請求項７】
前記有効性判定手段がデジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを用いてデジタル署名パラメータｒの有効性を判定する場合、前記大整数演算手段は、前記デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ及び前記乱数生成器により生成された前記乱数ｋを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを生成し、
デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、
前記ｒの有効性判定条件の演算結果ｒ＋ｋを用いて楕円曲線パラメータｎに対してモジュロ演算を行い、
秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、
前記モジュロ演算の結果と前記モジュロ逆演算の結果に対して大整数乗法演算を行い、
前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得することを特徴とする請求項５に記載の装置。
【請求項８】
前記有効性判定手段がデジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを用いてデジタル署名パラメータｒの有効性を判定する場合、前記大整数演算手段は、前記デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ、前記乱数生成器により生成された前記乱数ｋ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを生成し、
デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、
秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、
前記ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎと前記モジュロ逆演算の結果に対して大整数乗法演算を行い、
前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得することを特徴とする請求項５に記載の装置。
【請求項９】
前記秘密鍵ｄＡを生成する秘密鍵生成手段と、
前記秘密鍵生成手段により生成された前記秘密鍵ｄＡを保存する秘密鍵記憶手段と、をさらに含み、
前記大整数演算手段は、前記秘密鍵記憶手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成することを特徴とする請求項５〜８のいずれかに記載の装置。
【請求項１０】
前記パラメータ入力インターフェース手段は前記秘密鍵ｄＡを取得し、前記大整数演算手段は前記パラメータ入力インターフェース手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成し、或いは
前記装置は秘密鍵記憶手段をさらに含み、前記パラメータ入力インターフェース手段は前記秘密鍵ｄＡを取得し、前記秘密鍵記憶手段は前記パラメータ入力インターフェース手段により取得された前記秘密鍵ｄＡを保存し、前記大整数演算手段は前記秘密鍵記憶手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する、ことを特徴とする請求項５〜８のいずれかに記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１３年８月１６日に中国特許庁に提出された、出願番号が２０１３１０３６３３４９．７であり、且つ発明名称が「デジタル署名の生成方法及び装置」である中国特許出願の優先権を主張し、その全内容を本願に援用する。
【０００２】
本発明は、情報技術分野に関し、特にデジタル署名の生成方法及び装置に関する。
【背景技術】
【０００３】
ＳＭ２デジタル署名アルゴリズムはＳＭ２暗号アルゴリズム（Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｅｙｐｔｏｇｒａｐｈｉｃ  Ａｌｇｏｒｉｔｈｍ  ＳＭ２  Ｂａｓｅｄ  ｏｎ  Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅｓ）の１つの構成部分として、ユーザ身元の認証及び情報整合性チェックの機能領域に好適に適用している。ＳＭ２デジタル署名アルゴリズムの応用プロセスでは、アルゴリズムの演算効率はアルゴリズムの応用者に常に注目されている重点である。ＳＭ２デジタル署名アルゴリズムは、ＳＭ２デジタル署名生成アルゴリズム（ＳＭ２ ｄｉｇｉｔａｌ  ｓｉｇａｎｔｕｒｅ  ｇｅｎｅｒａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）及びＳＭ２デジタル署名検証アルゴリズム（ＳＭ２  ｄｉｇｉｔａｌ  ｓｉｇａｎｔｕｒｅ  ｖｅｒｉｆｉｃａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）により構成されている。
【０００４】
署名されるメッセージがＭであると仮定すると、メッセージＭのデジタル署名（ｒ，ｓ）を取得するため、ユーザＡがデジタル署名を利用する必要がある場合、以下のＳＭ２デジタル署名生成アルゴリズムにより実現してもよい。
Ａ１：
-M=ZA||M
と設定する。
ここで、
||
はカスケード演算（ｃａｓｃａｄｉｎｇ  ｏｐｅｒａｔｉｏｎ）を表し、ＺＡは暗号ハッシュ関数（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｈａｓｈ  ｆｕｎｃｔｉｏｎ）により算出された、デジタル署名を生成するユーザＡのハッシュ値である。
Ａ２：
e=Hv(-M)
を計算し、ｅのデータ型をビットストリングから整数に変換する。
ここで、Ｈｖ（）は、メッセージダイジェスト長さがｖビットの暗号ハッシュ関数、例えばＳＭ３暗号ハッシュアルゴリズムである。
Ａ３：乱数発生器を用いて乱数
k∈[1, n-1]
を生成する。
ここで、ｎは楕円曲線パラメータである。
Ａ４：楕円曲線点（ｘ１，ｙ１）＝［ｋ］Ｇを計算し、結果ｘ１はフィールド要素であり、ｘ１のデータ型を整数に変換する。
ここで、Ｇは楕円曲線の基点であり、［ｋ］ＧはｋとＧのスカラー乗法（ドット積）を表す。
楕円曲線方程式を用い、その類型は素数フィールド方程式ｙ２＝ｘ３＋ａｘ＋ｂ又は二元フィールド拡張方程式ｙ２＋ｘｙ＝ｘ３＋ａｘ２＋ｂを選択してもよい。
Ａ５：
0006353536.tif 000002
式１
を計算し、即ち（ｅ＋ｘ１）を用いてｎに対してモジュロ演算を行う。
ｒ＝０又はｒ＋ｋ＝ｎの場合、Ａ３に戻る。
Ａ６：
0006353536.tif 000003
式２
を計算する。
Ｓ＝０の場合、Ａ３に戻る。
ここで、ｄＡは上記ユーザＡの秘密鍵である。
Ａ７：ｒ、ｓのデータ型を整数からバイトストリングに変換し、メッセージＭのデジタル署名は（ｒ，ｓ）である。
【０００５】
ユーザＡはシステム又は装置であってもよく、上記ＳＭ２デジタル署名生成アルゴリズムはユーザＡ内部に設けられたサブシステム、ハードウェアモジュール、ユーザＡ内で実行可能なソフトウェアモジュール等により実行されてもよいし、ユーザＡと通信接続され、ユーザＡにより呼び出されたシステム又は装置により実行されてもよい。
【０００６】
ユーザＡは長さがｅｎｔｌｅｎＡビットの識別可能な識別子ＩＤＡを有し、ＥＮＴＬＡは整数ｅｎｔｌｅｎＡから変換された２つのバイトである。上記ＳＭ２デジタル署名生成アルゴリズムでは、Ｇの座標ＸＧ、ＹＧとＰＡの座標ＸＡ、ＹＡのデータ型をビットストリングに変換し、
Zv= H256(ENTLA||IDA||a||b||xG||yG||xA||yA)
となる。ここで、ＰＡはユーザＡの公開鍵であり、Ｈ２５６（）はメッセージダイジェスト長さが２５６ビットの暗号ハッシュ関数、例えばＳＭ３暗号ハッシュアルゴリズムである。
【０００７】
また、具体に手順を実現するプロセスでは、通常、当業者は、手順を実現するように、式２を例えば以下の式３及び式３に変形し、式２における（１＋ｄＡ）−１の負整数指数冪乗演算を（１＋ｄＡ）−１  ｍｏｄ  ｎのモジュロ逆演算に変換する。
0006353536.tif 000004
式３
0006353536.tif 000005
式４
【０００８】
ＳＭ２デジタル署名生成アルゴリズムはＥＣＣアルゴリズムの理論に基づいて実現され、実現されるプロセスでは、大整数（big integer）乗法、大整数モジュラー乗算演算などの大整数演算はアルゴリズムの演算効率に影響を与える最も重要な要素であり、従来のＳＭ２デジタル署名生成アルゴリズムは一定の演算効率の要求を満たすことができるが、従来技術には、演算効率をさらに向上する解決案がまだない。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本願は、ＳＭ２デジタル署名生成アルゴリズムに基づくデジタル署名生成の演算効率をさらに向上するデジタル署名の生成方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の目的は以下の態様により実現される。
【００１１】
デジタル署名の生成方法であって、装置が、有効性判定条件を満たすデジタル署名パラメータｒを生成することと、前記装置が、秘密鍵ｄＡ、値範囲が［１，ｎ−１］の乱数ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000006
に基づいてデジタル署名パラメータｓを生成することと、前記装置が、生成されたデジタル署名パラメータｓが０であるか否かを判断し、０の場合、前記デジタル署名パラメータｓが０でないものとなるまで、有効性判定条件を満たすデジタル署名パラメータｒを生成し直し、前記秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、前記生成し直されたデジタル署名パラメータｒ及び前記楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直すことと、前記装置が、最終的に取得されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、デジタル署名（ｒ，ｓ）を取得することと、を含むことを特徴とする方法を提供する。
【００１２】
本願の実施例に係る方法によれば、デジタル署名パラメータｓを取得する場合に大整数演算の回数を低減でき、ＳＭ２デジタル署名生成アルゴリズムに基づくデジタル署名生成の演算効率を向上できる。
【００１３】
好ましくは、前記装置が
0006353536.tif 000007
に基づいてデジタル署名パラメータｓを生成することは、前記装置が、デジタル署名パラメータｒと乱数ｋに対して大整数加法演算を行って、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行うことと、前記装置が、秘密鍵ｄＡに１を加算し、楕円曲線パラメータｎに対してモジュロ逆演算を行うことと、前記装置が、モジュロ演算の演算結果とモジュロ逆演算の演算結果に対して大整数乗法演算を行うことと、前記装置が、該大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得することと、を含む。
【００１４】
上記処理プロセスによりデジタル署名パラメータｓを生成することで、１回の大整数乗法又は１回の大整数モジュラー乗算演算を低減できる。
【００１５】
上記の任意の実施例では、好ましくは、デジタル署名パラメータｓを生成する前に、該方法は、前記装置が、秘密鍵ｄＡ、ｒの有効性判定条件の演算結果ｒ＋ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いてデジタル署名パラメータｓを生成するように、ｒの有効性判定条件の演算結果ｒ＋ｋを取得すること、をさらに含んでもよい。
【００１６】
デジタル署名パラメータｓを生成する場合、ｒの有効性判定条件の演算結果（ｒ＋ｋ）を直接に用いることができ、演算効率をさらに向上できる。
【００１７】
上記の任意の実施例では、好ましくは、デジタル署名パラメータｓを生成する前に、該方法は、前記装置が、秘密鍵ｄＡ、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いてデジタル署名パラメータｓを生成するように、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを取得すること、をさらに含んでもよい。
【００１８】
（ｒ・ｄＡ）  ｍｏｄ  ｎの演算を回避することで、１回の大整数モジュラー乗算演算を低減できる。
【００１９】
デジタル署名の生成装置であって、ハッシュ値ＺＡ及び署名されるメッセージＭを取得するパラメータ入力インターフェース手段と、前記パラメータ入力インターフェース手段により取得されたハッシュ値ＺＡ及び署名されるメッセージＭに対してカスケード演算を行い、
-M
を生成するカスケード演算手段と、前記カスケード演算手段により生成された
-M
に対して暗号ハッシュ演算を行い、メッセージダイジェスト情報ｅを生成する暗号ハッシュアルゴリズム演算手段と、値範囲が［１，ｎ−１］の乱数ｋを生成する乱数発生器と、前記乱数発生器により生成された乱数ｋに基づいて楕円曲線アルゴリズムスカラー乗法演算（ｘ１，ｙ１）＝ｋＧを行い、楕円曲線点の横座標ｘ１を取得するＥＣＣアルゴリズム演算手段であって、Ｇが楕円曲線パラメータである、ＥＣＣアルゴリズム演算手段と、前記暗号ハッシュアルゴリズム演算手段により生成されたメッセージダイジェスト情報ｅのデータ型を整数型に変換し、前記ＥＣＣアルゴリズム演算手段により生成された楕円曲線点の横座標ｘ１のデータ型を整数型に変換するデータ型変換手段と、前記データ型変換手段によりデータ型が変換されたメッセージダイジェスト情報ｅ及び楕円曲線点の横座標ｘ１を用いて、デジタル署名パラメータｒを生成する大整数演算手段と、前記大整数演算手段により生成されたデジタル署名パラメータｒに対して有効性判定を行う有効性判定手段と、デジタル署名（ｒ，ｓ）を出力するパラメータ出力インターフェース手段と、を含み、前記デジタル署名パラメータｒが有効性判定条件を満たしていない場合、前記乱数発生器は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、前記ＥＣＣアルゴリズム演算手段は前記乱数発生器により生成し直された乱数ｋに基づいて楕円曲線点の横座標ｘ１を取得し直し、前記データ型変換手段は取得し直された楕円曲線点の横座標ｘ１に対してデータ型の変換を行い、前記大整数演算手段は前記メッセージダイジェスト情報ｅ及び生成し直された楕円曲線点の横座標ｘ１に基づいてデジタル署名パラメータｒを生成し直し、前記有効性判定手段は生成し直されたデジタル署名パラメータｒ及び生成し直された乱数ｋを用いて、生成し直されたデジタル署名パラメータｒに対して有効性判定を行い、前記大整数演算手段は、秘密鍵ｄＡ、前記乱数発生器により生成された前記乱数ｋ、前記デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式  
0006353536.tif 000008
に基づいてデジタル署名パラメータｓを生成し、前記有効性判断手段は、前記大整数演算手段により生成されたデジタル署名パラメータｓが０であるか否かを判断し、０の場合、前記乱数生成器は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、前記大整数演算手段は、デジタル署名パラメータｒを生成し直し、前記生成し直されたデジタル署名パラメータｒが有効性判定条件を満たしているとき、前記秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、前記生成し直されたデジタル署名パラメータｒ及び前記楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直し、前記データ型変換手段は、前記大整数演算手段により最終的に生成されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、前記デジタル署名（ｒ，ｓ）を取得する。
【００２０】
本願の実施例に係る装置によれば、デジタル署名パラメータｓを取得する場合、大整数演算の回数を低減でき、ＳＭ２デジタル署名生成アルゴリズムに基づくデジタル署名生成の演算効率を向上できる。
好ましくは、デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、前記デジタル署名パラメータｒと前記乱数発生器により生成された乱数ｋに対して大整数加法演算して、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行い、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、前記モジュロ演算の結果と前記モジュロ逆演算の結果に対して大整数乗法演算を行い、前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【００２１】
上記処理プロセスによりデジタル署名パラメータｓを生成することで、１回の大整数乗法又は１回の大整数モジュラー乗算演算を低減できる。
【００２２】
上記の任意の装置の実施例では、好ましくは、前記有効性判定手段がデジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを用いてデジタル署名パラメータｒの有効性を判定する場合、前記大整数演算手段は、前記デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ及び前記乱数生成器により生成された前記乱数ｋを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを生成し、デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、前記ｒの有効性判定条件の演算結果ｒ＋ｋを用いて楕円曲線パラメータｎに対してモジュロ演算を行い、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、前記モジュロ演算の結果と前記モジュロ逆演算の結果に対して大整数乗法演算を行い、前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【００２３】
デジタル署名パラメータｓを生成する場合、ｒの有効性判定条件の演算結果（ｒ＋ｋ）を直接に用いることができ、演算効率をさらに向上できる。
【００２４】
上記の任意の装置の実施例では、好ましくは、前記有効性判定手段がデジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを用いてデジタル署名パラメータｒの有効性を判定する場合、前記大整数演算手段は、前記デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ、前記乱数生成器により生成された前記乱数ｋ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを生成し、デジタル署名パラメータｓを生成する場合、前記大整数演算手段は、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、前記ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎと前記モジュロ逆演算の結果に対して大整数乗法演算を行い、前記大整数乗法演算の結果から前記デジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【００２５】
（ｒ・ｄＡ）  ｍｏｄ  ｎの演算を回避することで、１回の大整数モジュラー乗算演算を低減できる。
【００２６】
上記の任意の実施例では、大整数演算手段に用いられる秘密鍵は、該装置により生成されてもよいし、外部から取得されてもよい。以下は例を参照しながら説明する。
【００２７】
（方式１）
前記装置は、前記秘密鍵ｄＡを生成する秘密鍵生成手段と、前記秘密鍵生成手段により生成された前記秘密鍵ｄＡを保存する秘密鍵記憶手段と、をさらに含み、前記大整数演算手段は、前記秘密鍵記憶手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【００２８】
（方式２）
前記パラメータ入力インターフェース手段は前記秘密鍵ｄＡを取得し、前記大整数演算手段は前記パラメータ入力インターフェース手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【００２９】
（方式３）
前記装置は秘密鍵記憶手段をさらに含み、前記パラメータ入力インターフェース手段は前記秘密鍵ｄＡを取得し、前記秘密鍵記憶手段は前記パラメータ入力インターフェース手段により取得された前記秘密鍵ｄＡを保存し、前記大整数演算手段は前記秘密鍵記憶手段から前記秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施例に係る第１種の方法のフローチャートである。
【図２】本発明の実施例に係る第２種の方法のフローチャートである。
【図３】本発明の実施例に係る第３種の方法のフローチャートである。
【図４】本発明の実施例に係る装置を示す図である。
【発明を実施するための形態】
【００３１】
本願の実施例に係るデジタル署名を生成する方法、装置では、装置が、有効性判定条件を満たすデジタル署名パラメータｒを生成し、秘密鍵ｄＡ、値範囲が［１，ｎ−１］の乱数ｋ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000009
に基づいてデジタル署名パラメータｓを生成し、生成されたデジタル署名パラメータｓが０であるか否かを判断し、０の場合、デジタル署名パラメータｓが０でないものとなるまで、有効性判定条件を満たすデジタル署名パラメータｒを生成し直し、秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、生成し直されたデジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直し、最終的に取得されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、デジタル署名（ｒ，ｓ）を取得する。デジタル署名パラメータｓを取得する場合、大整数演算の回数を低減でき、ＳＭ２デジタル署名生成アルゴリズムに基づくデジタル署名生成の演算効率を向上できる。
【００３２】
以下は図面を参照しながら、本願の実施例に係る態様を詳細に説明する。
【００３３】
図１に示すように、本願の実施例に係るデジタル署名の生成方法は具体的に以下の処理を含む。
【００３４】
ステップ１００：  装置は有効性判定条件を満たすデジタル署名パラメータｒを生成する。
【００３５】
ここで、有効性判定条件を満たすことは、得られたデジタル署名パラメータｒが０ではなく、且つｒ＋ｋがｎではないことを指す。ｎは楕円曲線パラメータであり、ｋは値範囲が［１，ｎ−１］の乱数である。
【００３６】
ＳＭ２デジタル署名生成アルゴリズムにおけるｒの計算方法を用いて有効性判定条件を満たすデジタル署名パラメータを生成してもよいが、これに限定されない。
【００３７】
ステップ１１０：該装置は、秘密鍵ｄＡ、乱数ｋ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000010
式５
に基づいてデジタル署名パラメータｓを生成する。
【００３８】
ここで、式５は上記の式２の簡略化された形式である。式５に基づいてデジタル署名パラメータｓを生成し、ｒ・ｄＡ演算を行う必要がなく、１回の大整数演算を低減できる。式の簡略化の原理は以下の通りである。
0006353536.tif 000011
【００３９】
ここで、秘密鍵ｄＡは、デジタル署名の使用者（例えばユーザＡ）の秘密鍵である。該デジタル署名の使用者は、システム又は装置であってもよく、具体的には、デジタル署名の使用者は、ユーザ装置（ＵＥ）であってもよいし、身元認証に関与するネットワークノード、例えば基地局、モビリティ管理エンティティ（ＭＭＥ）などであってもよい。
【００４０】
ステップ１２０：該装置は、生成されたデジタル署名パラメータｓが０であるか否かを判断し、０でない場合、ステップ１３０を実行し、０の場合、生成されたデジタル署名パラメータｓが０でないものとなるまで、有効性判定条件を満たすデジタル署名パラメータｒを生成し直し、秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、生成し直されたデジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直す。
【００４１】
ステップ１３０：該装置は、最終的に取得されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、デジタル署名（ｒ，ｓ）を取得する。
【００４２】
上記操作を実行してデジタル署名を生成するデジタル署名生成者（即ち上記装置）は、デジタル署名使用者内部に設けられたサブシステム、ハードウェアモジュール、デジタル署名使用者内で実行可能なソフトウェアモジュール等であってもよいし、デジタル署名使用者と通信接続した、デジタル署名使用者により呼び出されたシステム又は装置であってもよい。
【００４３】
デジタル署名使用者の秘密鍵については、デジタル署名生成者がデジタル署名使用者の内部に設けられたサブシステム、ハードウェアモジュール、デジタル署名使用者内で実行可能なソフトウェアモジュール等である場合、デジタル署名生成者は該秘密鍵を生成、保存してもよい。デジタル署名使用者の秘密鍵について、デジタル署名生成者は、デジタル署名使用者側から取得して保存してもよいし、デジタル署名使用者側から取得して応用し、保存しなくてもよい。
【００４４】
実際の応用プロセスでは、式５に基づいて、具体的には、１回の大整数乗法演算又は大整数モジュラー乗算演算を低減するように、異なる実施方法によりデジタル署名パラメータｓを取得してもよい。
【００４５】
好ましい態様の１つでは、該装置は、秘密鍵ｄＡ、乱数ｋ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000012
式６
に従ってデジタル署名パラメータｓを生成する。
【００４６】
式６は
0006353536.tif 000013
の変形である。
【００４７】
言い換えれば、該装置はデジタル署名パラメータｒと乱数ｋに対して大整数加法演算を行った後に、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行い、秘密鍵ｄＡに１を加算し、楕円曲線パラメータｎに対してモジュロ逆演算を行い、モジュロ演算の演算結果とモジュロ逆演算の演算結果に対して大整数乗法演算を行い、該大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【００４８】
式の簡略化の原理は以下の通りである。
0006353536.tif 000014
【００４９】
該好ましい態様では、デジタル署名パラメータｓを計算する際に、式６を用いて実現する。
【００５０】
なお、デジタル署名パラメータｓの生成の具体的な方法は該好ましい実施例に限定されない。本願の実施例が簡略化された式５を提出し、式５に基づく具体的な実現方法は当業者にとって容易想到できるものであり、本願の保護範囲内のものに該当する。
【００５１】
上記のいずれかの実施例では、デジタル署名生成の演算効率をさらに向上するため、デジタル署名パラメータｓを生成する前に、ｒの有効性判定条件の演算結果ｒ＋ｋをさらに取得してもよい。該装置は、秘密鍵ｄＡ、ｒの有効性判定条件の演算結果ｒ＋ｋ、秘密鍵ｄＡ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを直接に生成してもよい。
【００５２】
上記の何れかの実施例では、デジタル署名生成の演算効率を向上するため、デジタル署名パラメータｓを生成する前に、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎをさらに取得してもよい。該装置は、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎ、秘密鍵ｄＡ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを直接に生成してもよい。該好ましい態様では、有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎに基づいてｒの有効性を判断することは、有効性判定条件の演算結果ｒ＋ｋに基づいてｒの有効性を判断することと等価的なものである。その等価原理として、ＳＭ２デジタル署名生成アルゴリズムでは、デジタル署名パラメータｒ及び乱数ｋの値範囲が共に［１，ｎ−１］にあり、ｒ＋ｋの値範囲が［２，２ｎ−２］にあるため、（ｒ＋ｋ）  ｍｏｄ  ｎ＝０はｒ＋ｋ＝ｎと等価的なものである。それに応じて、判定性条件を満たすデジタル署名パラメータｒを生成するプロセスでは、ｒ＋ｋ＝ｎとなるか否かを判断することの代わりに、（ｒ＋ｋ）  ｍｏｄ  ｎ＝０となるか否かを判断してもよい。
【００５３】
署名されるメッセージがＭであると仮定すると、以下は、式６を一例として、図２を参照しながら、Ｍのデジタル署名（ｒ，ｓ）の取得の実現方法を詳細に説明する。該実現方法は具体的に以下の操作を含む。
【００５４】
ステップ２００：デジタル署名使用者のハッシュ値及びメッセージＭに対してカスケード演算を行い、即ち
-M=ZA||M
と設定する。
【００５５】
ステップ２１０：メッセージダイジェスト情報ｅを取得し、即ち
e=Hv(-M)
を計算し、ｅのデータ型をビットストリングから整数に変換する。
【００５６】
ステップ２２０：乱数発生器を用いて乱数
k∈[1, n-1]
を生成する。
【００５７】
ステップ２３０：楕円曲線点（ｘ１，ｙ１）＝［ｋ］Ｇを計算し、結果ｘ１はフィールド要素であり、ｘ１のデータ型を整数に変換する。
【００５８】
ステップ２４０：デジタル署名パラメータｒを生成し、即ち
0006353536.tif 000015
式１
を計算する。
【００５９】
ステップ２５０：ｒに対して有効性判定を行う。ｔ＝ｒ＋ｋと仮定し、ｒ及びｔの値を判断し、ｒ＝０又はｔ＝ｎの場合、ｒが有効性判定条件を満たさなく、ステップ２２０に戻り、ｒ≠０且つｔ≠ｎの場合、ｒが有効性判定条件を満たし、ステップ２６０を実行する。
【００６０】
ステップ２６０：デジタル署名使用者の秘密鍵ｄＡ、ｒの有効性判定条件の演算結果ｒ＋ｋ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000016
式７
に従ってデジタル署名パラメータｓを生成する。
【００６１】
なお、式７は上記の式６である。その相違点として、式７は、デジタル署名ｓを生成する時に、ｒ＋ｋを繰り返し計算する必要がなく、ｒの有効性判定条件の演算結果ｒ＋ｋを用いることを意味する。
【００６２】
ステップ２７０：ｓの値が０であるか否かを判断し、ｓ＝０の場合、ステップ２２０に戻り、そうでない場合、ステップ２８０を実行する。
【００６３】
ステップ２８０：取得されたデジタル署名パラメータｒ、ｓのデータ型を整数からバイトストリングに変換し、得られたメッセージＭのデジタル署名が（ｒ，ｓ）である。
【００６４】
図２に示される実施例では、式７を用いてデジタル署名パラメータｓを生成し、１回の大整数乗法又は１回の大整数モジュラー乗算演算を低減でき、式７を用いてデジタル署名パラメータｓを生成する時に、ｒの有効性判定条件の演算結果（ｒ＋ｋ）を直接に用いることができ、演算効率をさらに向上できる。
【００６５】
署名されるメッセージがＭであると仮定すると、以下は、式６を一例とし、図３を参照しながらＭのデジタル署名（ｒ，ｓ）の取得の実施形態を詳細に説明する。該実施形態は具体的に以下の操作を含む。
【００６６】
ステップ３００：デジタル署名使用者のハッシュ値及びメッセージＭに対してカスケード演算を行い、即ち
-M=ZA||M
と設定する。
【００６７】
ステップ３１０：メッセージダイジェスト情報ｅを取得し、即ち
e=Hv(-M)
を計算し、ｅのデータ型をビットストリングから整数に変換する。
【００６８】
ステップ３２０：乱数発生器を用いて乱数
k∈[1, n-1]
を生成する。
【００６９】
ステップ３３０：楕円曲線点（ｘ１，ｙ１）＝［ｋ］Ｇを計算し、結果ｘ１はフィールド要素であり、ｘ１のデータ型を整数に変換する。
【００７０】
ステップ３４０：デジタル署名パラメータｒを生成し、即ち
0006353536.tif 000017
式１
を計算する。
【００７１】
ステップ３５０：ｒに対して有効性判定を行う。ｔ＝（ｒ＋ｋ）  ｍｏｄ  ｎと仮定し、ｒ及びｔの値を判断し、ｒ＝０又はｔ＝０の場合、ｒが有効性判定条件を満たさなく、ステップ３２０に戻り、ｒ≠０且つｔ≠０の場合、ｒが有効性判定条件を満たし、ステップ３６０を実行する。
【００７２】
ステップ３６０：デジタル署名使用者の秘密鍵ｄＡ、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000018
式８
に従ってデジタル署名パラメータｓを生成する。
【００７３】
なお、式８は上記の式６である。その相違点として、式７は、デジタル署名ｓを生成する時に、（ｒ＋ｋ）  ｍｏｄ  ｎを繰り返し計算する必要がなく、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを用いることを意味する。
【００７４】
ステップ３７０：ｓの値が０であるか否かを判断し、ｓ＝０の場合、ステップ３２０に戻り、そうでない場合、ステップ３８０を実行する。
【００７５】
ステップ３８０：取得されたデジタル署名パラメータｒ、ｓのデータ型を整数からバイトストリングに変換し、得られたメッセージＭのデジタル署名が（ｒ，ｓ）である。
【００７６】
図３に示される実施例では、式８を用いてデジタル署名パラメータｓを生成し、１回の大整数乗法又は１回の大整数モジュラー乗算演算を低減でき、式８を用いてデジタル署名パラメータｓを生成する時に、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを直接に用いることができ、演算効率をさらに向上できる。
【００７７】
また、本願の実施形態を用いてデジタル署名の生成方法を改善する場合、式３に比べて１回の大整数乗法演算を節約し、式４に比べて１回の大整数モジュラー乗算演算を節約することに相当する。
【００７８】
方法と同じ発明の思想に基づいて、本発明の実施例はデジタル署名の生成装置をさらに提供し、その構成は図４に示し、具体的にはパラメータ入力インターフェース部４０１、カスケード演算部４０２、暗号ハッシュアルゴリズム演算部４０３、乱数発生器４０４、ＥＣＣアルゴリズム演算部４０５、データ型変換部４０６、大整数演算部４０７、有効性判定部４０８及びパラメータ出力インターフェース部４０９を含む。
【００７９】
パラメータ入力インターフェース部４０１は、ハッシュ値ＺＡ及び署名されるメッセージＭを取得する。
【００８０】
パラメータ入力インターフェース部４０１は、取得されたハッシュ値ＺＡ及び署名されるメッセージＭをカスケード演算部４０２に出力する。
【００８１】
カスケード演算部４０２は、パラメータ入力インターフェース部４０１により取得されたハッシュ値ＺＡ及び署名されるメッセージＭに対してカスケード演算を行い、
-M
を生成する。
【００８２】
カスケード演算部４０２は、生成された
-M
を暗号ハッシュアルゴリズム演算部４０３に出力する。
【００８３】
暗号ハッシュアルゴリズム演算部４０３は、カスケード演算部４０２により生成された
-M
に対して暗号ハッシュ演算を行い、メッセージダイジェスト情報ｅを生成する。
【００８４】
暗号ハッシュアルゴリズム演算部４０３は、生成されたメッセージダイジェスト情報ｅをデータ型変換部４０６に出力する。
【００８５】
乱数発生器４０４は、値範囲が［１，ｎ−１］の乱数ｋを生成する。
【００８６】
乱数発生器４０４は、生成された乱数をＥＣＣアルゴリズム演算部４０５に送信する。
【００８７】
ＥＣＣアルゴリズム演算部４０５は、乱数発生器４０４により生成された乱数ｋに基づいて楕円曲線アルゴリズムスカラー乗法演算（ｘ１，ｙ１）＝ｋＧを行い、楕円曲線点の横座標ｘ１を取得し、Ｇが楕円曲線パラメータである。
【００８８】
ＥＣＣアルゴリズム演算部４０５は、取得された楕円曲線点の横座標ｘ１をデータ型変換部４０６に出力する。
【００８９】
データ型変換部４０６は、暗号ハッシュアルゴリズム演算部４０３により生成されたメッセージダイジェスト情報ｅのデータ型を整数型に変換し、ＥＣＣアルゴリズム演算部４０５により生成された楕円曲線点の横座標ｘ１のデータ型を整数型に変換する。
【００９０】
データ型変換部４０６は、データ型が変換されたメッセージダイジェスト情報ｅ及び楕円曲線点の横座標ｘ１を大整数演算部４０７に出力する。
【００９１】
大整数演算部４０７は、データ型変換部４０６によりデータ型が変換されたメッセージダイジェスト情報ｅ及び楕円曲線点の横座標ｘ１を用いて、デジタル署名パラメータｒを生成する。
【００９２】
大整数演算部４０７は、デジタル署名パラメータｒを有効性判定部４０８に出力する。
【００９３】
有効性判定部４０８は、大整数演算部４０７により生成されたデジタル署名パラメータｒに対して有効性判定を行う。
【００９４】
デジタル署名パラメータｒが有効性判定条件を満たしていない場合、乱数発生器４０４は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、ＥＣＣアルゴリズム演算部４０５は乱数発生器４０４により生成し直された乱数ｋに基づいて楕円曲線点の横座標ｘ１を取得し直し、データ型変換部４０６は取得し直された楕円曲線点の横座標ｘ１に対してデータ型の変換を行い、大整数演算部４０７はメッセージダイジェスト情報ｅ及び生成し直された楕円曲線点の横座標ｘ１に基づいてデジタル署名パラメータｒを生成し直し、有効性判定部４０８は生成し直されたデジタル署名パラメータｒ及び生成し直された乱数ｋを用いて、生成し直されたデジタル署名パラメータｒに対して有効性判定を行う。
【００９５】
デジタル署名パラメータｒが有効性判定条件を満たさない場合、有効性判定部４０８が乱数発生器４０４をトリガして乱数を生成し直してもよいし、他に設定された制御部が乱数発生器４０４をトリガして乱数を生成し直してもよい。
【００９６】
大整数演算部４０７は、秘密鍵ｄＡ、乱数発生器４０４により生成された乱数ｋ、デジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、以下の式
0006353536.tif 000019
に基づいてデジタル署名パラメータｓを生成する。
【００９７】
有効性判断部４０８は、大整数演算部４０７により生成されたデジタル署名パラメータｓが０であるか否かを判断する。
【００９８】
０の場合、乱数生成器４０４は値範囲が［１，ｎ−１］の乱数ｋを生成し直し、大整数演算部４０７は、デジタル署名パラメータｒを生成し直し、生成し直されたデジタル署名パラメータｒが有効性判定条件を満たしているとき、秘密鍵ｄＡ、生成し直された値範囲が［１，ｎ−１］の乱数ｋ、生成し直されたデジタル署名パラメータｒ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｓを生成し直す。
【００９９】
データ型変換部４０６は、大整数演算部４０７により最終的に生成されたデジタル署名パラメータｒ及び０でないデジタル署名パラメータｓのデータ型をバイトストリングに変換し、デジタル署名（ｒ，ｓ）を取得する。
【０１００】
パラメータ出力インターフェース部４０９は、デジタル署名（ｒ，ｓ）を出力する。
【０１０１】
好ましくは、デジタル署名パラメータｓを生成する場合、大整数演算部４０７は、デジタル署名パラメータｒと乱数発生器４０４により生成された乱数ｋに対して大整数加法演算して、大整数加法演算の結果を用いて楕円曲線パラメータｎに対してモジュロ演算を行い、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、モジュロ演算の結果とモジュロ逆演算の結果に対して大整数乗法演算を行い、大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【０１０２】
図４に示される実施例では、好ましくは、有効性判定部４０８がデジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを用いてデジタル署名パラメータｒの有効性を判定する場合、大整数演算部４０７は、デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ及び乱数生成器４０４により生成された乱数ｋを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果ｒ＋ｋを生成する。
【０１０３】
デジタル署名パラメータｓを生成する場合、大整数演算部４０７は、ｒの有効性判定条件の演算結果ｒ＋ｋを用いて楕円曲線パラメータｎに対してモジュロ演算を行い、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、モジュロ演算の結果とモジュロ逆演算の結果に対して大整数乗法演算を行い、大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【０１０４】
図４に示される実施例では、好ましくは、有効性判定部４０８がデジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを用いてデジタル署名パラメータｒの有効性を判定する場合、大整数演算部４０７は、デジタル署名パラメータｒを生成した後に、生成されたデジタル署名パラメータｒ、乱数生成器４０４により生成された乱数ｋ及び楕円曲線パラメータｎを用いて、デジタル署名パラメータｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎを生成する。
【０１０５】
デジタル署名パラメータｓを生成する場合、大整数演算部４０７は、秘密鍵ｄＡに１を加算して、楕円曲線パラメータｎに対してモジュロ逆演算を行い、ｒの有効性判定条件の演算結果（ｒ＋ｋ）  ｍｏｄ  ｎとモジュロ逆演算の結果に対して大整数乗法演算を行い、大整数乗法演算の結果からデジタル署名パラメータｒを引いて、楕円曲線パラメータｎに対してモジュロ演算を行い、デジタル署名パラメータｓを取得する。
【０１０６】
図４に示される任意の実施例では、大整数演算部４０７に用いられる秘密鍵ｄＡは本装置により生成されてもよいし、外部から取得されてもよい。以下は例を挙げて説明する。
【０１０７】
（方式１）
本願の実施例に係る装置は秘密鍵生成部及び秘密鍵記憶部をさらに含む。秘密鍵生成部は、秘密鍵ｄＡを生成する。秘密鍵記憶部は、秘密鍵生成部により生成された秘密鍵ｄＡを保存する。
【０１０８】
それに応じて、大整数演算部４０７は、秘密鍵記憶部から秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【０１０９】
（方式２）
パラメータ入力インターフェース部４０１は秘密鍵ｄＡを取得する。それに応じて、大整数演算部４０７はパラメータ入力インターフェース部４０１から秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【０１１０】
（方式３）
本願の実施例に係る装置は秘密鍵記憶部をさらに含む。パラメータ入力インターフェース部４０１は秘密鍵ｄＡを取得する。秘密鍵記憶部はパラメータ入力インターフェース部４０１により取得された秘密鍵ｄＡを保存する。それに応じて、大整数演算部４０７は秘密鍵記憶部から秘密鍵ｄＡを取得してデジタル署名パラメータｓを生成する。
【０１１１】
なお、本発明の実施例に提供されるものは方法、システム又はコンピュータプログラムプロダクトであってもよい。従って、本願は、完全なハードウェア実施例、完全なソフトウェア実施例、又はソフトウェアとハードウェアを組み合わせた実施例の形を採用してもよい。また、本願は、１つ又は複数のコンピュータに利用可能なプログラムコードを含むコンピュータに利用可能な記憶媒体（磁気ディスクメモリ、ＣＤ−ＲＯＭ、光学的メモリ等を含むが、それらに限定されない）に実施されるコンピュータプログラムプロダクトの形を採用してもよい。
【０１１２】
本願は、本願の実施例に係る方法、装置（システム）及びコンピュータプログラムプロダクトのフローチャート及び／又はブロック図を参照しながら説明される。なお、コンピュータプログラム指令により、フローチャート及び／又はブロック図の各フロー及び／又はブロック、並びにフローチャート及び／又はブロック図のフロー及び／又はブロックの組み合わせを実現してもよい。これらのコンピュータプログラム指令を汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ又は他のプログラム可能なデータ処理装置の処理器に提供して機器を生成し、コンピュータ又は他のプログラム可能なデータ処理装置の処理器により実行される指令を介して、フローチャートの１つ若しくは複数のフロー、及び／又はブロック図の１つ若しくは複数のブロックにおける指定の機能を実現するための装置を生成する。
【０１１３】
これらのコンピュータプログラム指令は、コンピュータ又は他のプログラム可能なデータ処理装置に特定の方式で作動させるコンピュータ読み取り可能な記憶装置に記憶されてもよく、該コンピュータ読み取り可能な記憶装置に記憶された指令に指令装置を含む製造品を生成させ、該指令装置はフローチャートの１つ若しくは複数のフロー及び／又はブロック図の１つ若しくは複数のブロックにおける指定の機能を実現する。
【０１１４】
これらのコンピュータプログラム指令は、コンピュータ又は他のプログラム可能なデータ処理装置にセットアップされてもよく、コンピュータ又は他のプログラム可能な装置において一列の操作ステップを実行してコンピュータで実現される処理を生成し、コンピュータ又は他のプログラム可能な装置において実行される指令は、フローチャートの１つ若しくは複数のフロー及び／又はブロック図の１つ若しくは複数のブロックにおける指令の機能を実現するためのステップを提供する。
【０１１５】
本願の好ましい実施例を説明しているが、当業者が一旦基本的な進歩性概念を知れば、これらの実施例に対して他の変更及び修正を行うことができる。このため、添付された特許請求の範囲が好ましい実施例並びに本願の範囲に入る全ての変更及び修正を含むと解釈される。
【０１１６】
なお、当業者は本願の主旨及び範囲から離脱することなく本願に対して各種の変更及び変形を行ってもよい。これによって、本願のこれらの変更及び変形が本願の特許請求の範囲及びそれと同等な技術的な範囲に属すれば、本願はこれらの変更及び変形をさらに含む。
【図１】
0006353536.tif 000023
【図２】
0006353536.tif 000024
【図３】
0006353536.tif 000025
【図４】
0006353536.tif 000026