(57)【要約】【課題】公開鍵暗号において規定される公開鍵を適用したスカラー倍点の加算［ｋＰ＋ｌＱ］の算出を擬似加算と２倍算のみで実行可能とする。【解決手段】有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、秘密鍵ｄを、ｄ∈Ｚ、公開鍵を、２つの公開鍵ペアＱ，Ｒとして、Ｑ＝ｄＰ、Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ、これらいずれかのＲからなる公開鍵ペアＱ，Ｒを生成し、公開鍵暗号システムにおいて規定される署名検証において、上記の公開鍵を適用した演算処理によって、スカラー倍点の加算［ｋＰ＋ｌＱ］の算出を擬似加算と２倍算のみで実行可能とした。【選択図】図３
2008046295.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行う公開鍵暗号システム構築方法であり、
演算処理部において実行する鍵生成ステップとして、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する鍵生成ステップを実行することを特徴とする公開鍵暗号システム構築方法。
【請求項２】
前記鍵生成ステップは、
有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成するステップであることを特徴とする請求項１に記載の公開鍵暗号システム構築方法。
【請求項３】
前記鍵生成ステップは、
有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成するステップであることを特徴とする請求項１に記載の公開鍵暗号システム構築方法。
【請求項４】
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行する暗号演算方法であり、
演算処理部において実行する演算ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する演算ステップを有することを特徴とする暗号演算方法。
【請求項５】
前記演算ステップは、
有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出するステップであることを特徴とする請求項４に記載の暗号演算方法。
【請求項６】
前記演算ステップは、
有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出するステップであることを特徴とする請求項４に記載の暗号演算方法。
【請求項７】
前記演算ステップは、
公開鍵暗号方式において規定される署名検証処理として実行する演算であり、署名検証処理アルゴリズムで必要となる前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱを実行するステップであることを特徴とする請求項４に記載の暗号演算方法。
【請求項８】
前記暗号演算方法は、さらに、
前記演算処理部において、前記演算ステップの入力値として適用する前記Ｐ，Ｑの差分値の算出処理を実行する入力値算出ステップを実行し、
前記入力値算出ステップは、
入力としてＰ，Ｑ、およびＰとＱの差分値Ｒを入力とした擬似加算ＶＡＤＤ（Ｐ，Ｑ，Ｒ）を実行するステップであることを特徴とする請求項４に記載の暗号演算方法。
【請求項９】
公開鍵暗号方式において適用する鍵の生成を行う情報処理装置であり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する演算処理部、
を有することを特徴とする情報処理装置。
【請求項１０】
前記演算処理部は、
有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する処理を実行する構成であることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記演算処理部は、
有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する処理を実行する構成であることを特徴とする請求項９に記載の情報処理装置。
【請求項１２】
公開鍵暗号方式において規定される公開鍵を適用した演算を実行する情報処理装置であり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する演算処理部、
を有することを特徴とする情報処理装置。
【請求項１３】
前記演算処理部は、
有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する処理を実行する構成であることを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記演算処理部は、
有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する処理を実行する構成であることを特徴とする請求項１２に記載の情報処理装置。
【請求項１５】
前記演算処理部は、
公開鍵暗号方式において規定される署名検証処理に含まれる演算として、署名検証処理アルゴリズムで必要となる前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱを実行する構成であることを特徴とする請求項１２に記載の情報処理装置。
【請求項１６】
前記演算処理部は、前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱの演算アルゴリズムにおける入力値として適用するＰ，Ｑの差分値の算出処理としての入力値算出処理を実行する構成であり、
前記入力値算出処理を、
入力としてＰ，Ｑ、およびＰとＱの差分値Ｒを入力とした擬似加算ＶＡＤＤ（Ｐ，Ｑ，Ｒ）により実行する構成であることを特徴とする請求項１２に記載の情報処理装置。
【請求項１７】
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行わせるコンピュータ・プログラムであり、
演算処理部において実行させる鍵生成ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成させる鍵生成ステップを実行させることを特徴とするコンピュータ・プログラム。
【請求項１８】
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行させるコンピュータ・プログラムであり、
演算処理部において実行させる演算ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出させる演算ステップを実行させることを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、例えば公開鍵暗号において実行される署名検証処理における演算の効率化を実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保が重要な問題となっている。セキュリティ確保の１つの方法が暗号技術である。暗号化方式には、大別して共通鍵方式、公開鍵方式がある。共通鍵方式は、対称暗号方式ともよばれ、発信者、受信者の双方で共通の鍵を保有する。共通鍵方式の代表的な方法として、ＤＥＳ（Data Encryption Standard）がある。ＤＥＳアルゴリズムの特徴は、暗号化と復号とをほぼ同じアルゴリズムで実行可能なことである。
【０００３】
この共通鍵暗号に対して、発信者と受信者の鍵を異なるものとした構成が公開鍵方式または非対称暗号方式である。公開鍵暗号方式では、暗号化、復号化に共通の鍵を用いる共通鍵暗号方式と異なり、秘密に保つ必要のある秘密鍵は、特定の１人が持てばよいため鍵の管理において有利である。ただし、公開鍵暗号方式は共通鍵暗号方式に比較してデータ処理速度が遅く、一般には、秘密鍵の配送、ディジタル署名等のデータ量の少ない対象に多く用いられている。公開鍵暗号方式の代表的なものにはＲＳＡ（Rivest-Shamir-Adleman）暗号がある。これは非常に大きな２つの素数（例えば１５０桁）の積を用いるものであり、大きな２つの素数（例えば１５０桁）の積の素因数分解する処理の困難さを利用している。
【０００４】
公開鍵暗号方式としては、上述したＲＳＡ方式の他にｎが素数の場合の離散対数問題の困難さを利用した離散対数暗号が知られている。米国標準のディジタル署名方式として知られるＤＳＡ（Digital Signature Standard）には、この離散対数暗号が用いられている。また、V.Miller, N.Koblitzによって提案された楕円曲線暗号（ＥＣＣ：Ellipitic Curve Cryptography）が、安全性および高速性の点で昨今注目されている。楕円曲線暗号は、１６０ｂｉｔの鍵でＲＳＡ１０２４ｂｉｔの鍵と同等の強度を持つと言われる。
【０００５】
楕円曲線暗号の応用のひとつとして、署名生成・検証技術が挙げられる。特にＡｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄ  Ｉｎｓｔｉｔｕｔｅ（ＡＮＳＩ）にて制定された署名生成・検証技術、Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ（ＥＣＤＳＡ）は署名生成・検証処理における標準として広く使用されている。なお、ＥＣＤＳＡについては、例えば非特許文献１に記載されている。
【０００６】
一般に、楕円曲線暗号（ＥＣＣ）は、素体上の楕円曲線ｙ２＝ｘ３＋ａｘ＋ｂ（４ａ３＋２７ｂ２≠０）や、２の拡大体上の楕円曲線ｙ２＋ｘｙ＝ｘ３＋ａｘ２＋ｂ（ｂ≠０）などを用いる。これらの曲線上の点に無限遠点（Ｏ）を加えた集合は、加法に関して有限群をなし、無限遠点（Ｏ）はその単位元となる。以下、この有限群上の点の加法を＋で表す。この有限群上の異なる２点Ｐ，Ｑの加算Ｐ＋Ｑを「点の加算」、点Ｐと点Ｐの加算Ｐ＋Ｐ＝２Ｐを「点の２倍算」と呼ぶ。また、点Ｐをｋ回加算した点Ｐ＋Ｐ＋…＋Ｐ＝ｋＰを求める演算を「点のスカラー倍算」と呼ぶ。点のスカラー倍算は、点の加算、および点の２倍算を用いて構成できることが知られている。
【０００７】
また、モンゴメリ型楕円曲線Ｂｙ２＝ｘ３＋Ａｘ２＋ｘ（（Ａ２−４）Ｂ≠０）を用いて点のスカラー倍算法を高速に行なう手法については、モンゴメリ・ラダー（Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒ）と呼ばれ、非特許文献４、非特許文献５、特許文献１にも記載されている。同様に、種数２の超楕円曲線に応用する提案も、Ｄｕｑｕｅｓｎｅ（非特許文献２）、Ｇａｕｄｒｙ（非特許文献３）によって提案されている。
【０００８】
これらの文献に記載されている手法は、例えば、擬似加算を用いてスカラー倍算を計算することで効率化を図るものである。擬似加算は、有限群上の異なる２点Ｐ，Ｑの加算Ｐ＋Ｑを行なう場合点Ｐ，Ｑの情報に加えてＰ−Ｑなどの差分データを入力として用いて、加算結果Ｐ＋Ｑを算出する処理である。この処理により、高速な加算結果Ｐ＋Ｑの算出が可能となる。しかし、このような擬似加算のみでは加算結果を得られない場合がある。暗号プロトコルによっては、このような擬似加算を用いることができない場合があり、実際の加算処理を行なうことが必要となる、その１つの例が、楕円曲線暗号（ＥＣＤＳＡ）における署名検証アルゴリズムである。
【０００９】
例えば、楕円曲線暗号（ＥＣＤＳＡ）における署名検証アルゴリズムにおいては、スカラー倍点の加算［ｋＰ＋ｌＱ］を算出する演算ステップが存在する。このスカラー倍点の加算［ｋＰ＋ｌＱ］ステップは、通常、擬似加算のみの処理では行なえない。従って、ｋＰ＋ｌＱを算出するための専用の計算アルゴリズムや、加算手法を適用することが必要となっていた。しかし、このような１つの演算ステップの実行のために、専用のアルゴリズムや加算手法を実行するためには、計算コストの増大や、プロトコル実装におけるコスト増大などの問題をもたらすことになる。
【特許文献１】特開２００２−３２３８５２
【非特許文献１】Ａｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ．  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｒｙｐｔｏｇｒａｐｈｙ  ｆｏｒ  ｔｈｅ  Ｆｉｎａｎｃｉａｌ  Ｓｅｒｖｉｃｅｓ  Ｉｎｄｕｓｔｒｙ：  Ｔｈｅ  Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ（ＥＣＤＳＡ），ＡＮＳＩ  Ｘ９．６２−２００５，２００５
【非特許文献２】Ｓｙｌｖａｉｎ  Ｄｕｑｕｅｎｓｎｅ．Ｍｏｎｔｇｏｍｅｒｙ  Ｓｃａｌａｒ  Ｍｕｌｔｉｐｌｉｃａｔｉｏｎ  ｆｏｒ  Ｇｅｎｕｓ  ２  Ｃｕｒｖｅ．Ｉｎ  Ｄｕｎｃａｎ  Ｂｕｅｌｌ，ｅｄｉｔｏｒ，Ａｌｇｏｒｉｔｈｍｉｃ  Ｎｕｍｂｅｒ  Ｔｈｅｏｒｙ，Ｖｏｌ．３０７６  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｐｐ．１５３−１６８．Ｓｉｘｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ，  ＡＮＴＳ−ＶＩ，ＳｐｒｉｎｇｅｒＶｅｒｌａｇ，２００４．
【非特許文献３】Ｐ．Ｇａｕｄｒｙ．Ｆａｓｔ  ｇｅｎｕｓ  ２  ａｒｉｔｈｍｅｔｉｃ  ｂａｓｅｄ  ｏｎ  Ｔｈｅｔａ  ｆｕｎｃｔｉｏｎｓ．  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，Ｊｕｌｙ  ２００５．２００５／０３１４．
【非特許文献４】Ｐｅｔｅｒ  Ｌ．  Ｍｏｎｔｇｏｍｅｒｙ．Ｓｐｅｅｄｉｎｇ  ｔｈｅ  Ｐｏｌｌａｒｄ  ａｎｄ  ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｍｅｔｈｏｄｓ  ｏｆ  ｆａｃｔｏｒｉｚａｔｉｏｎｓ．Ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎ，Ｖｏｌ  ４８，Ｎｕｍｂｅｒ  １７７，ｐｐ．２４３−２６４．Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ，Ｊａｎｕａｒｙ  １９８７．
【非特許文献５】秋下徹．Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における高速なスカラー倍同時計算法．Ｉｎ  Ｔｅｃｈｎｉｃａｌ  ｒｅｐｏｒｔ，第１０１巻，ｐｐ．９７−１０３．ＩＥＩＣＥ，ＩＳＥＣ２００１−３２，２００１．
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上記問題点に鑑みてなされたものであり、暗号処理におけるスカラー倍点の加算［ｋＰ＋ｌＱ］の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
【００１１】
特に、本発明は、暗号処理におけるスカラー倍点の加算［ｋＰ＋ｌＱ］の算出処理を擬似加算と２倍算の計算のみで実行することを可能として、例えば、楕円曲線暗号（ＥＣＤＳＡ）における署名検証アルゴリズムにおいて必要とされるスカラー倍点の加算［ｋＰ＋ｌＱ］を専用の計算アルゴリズムや、加算手法を適用することなしに実現する公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の側面は、
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行う公開鍵暗号システム構築方法であり、
演算処理部において実行する鍵生成ステップとして、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する鍵生成ステップを実行することを特徴とする公開鍵暗号システム構築方法にある。
【００１３】
さらに、本発明の公開鍵暗号システム構築方法の一実施態様において、前記鍵生成ステップは、有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成するステップであることを特徴とする。
【００１４】
さらに、本発明の公開鍵暗号システム構築方法の一実施態様において、前記鍵生成ステップは、有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成するステップであることを特徴とする。
【００１５】
さらに、本発明の第２の側面は、
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行する暗号演算方法であり、
演算処理部において実行する演算ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する演算ステップを有することを特徴とする暗号演算方法にある。
【００１６】
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出するステップであることを特徴とする。
【００１７】
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出するステップであることを特徴とする。
【００１８】
さらに、本発明の暗号演算方法の一実施態様において、前記演算ステップは、公開鍵暗号方式において規定される署名検証処理として実行する演算であり、署名検証処理アルゴリズムで必要となる前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱを実行するステップであることを特徴とする。
【００１９】
さらに、本発明の暗号演算方法の一実施態様において、前記暗号演算方法は、さらに、前記演算処理部において、前記演算ステップの入力値として適用する前記Ｐ，Ｑの差分値の算出処理を実行する入力値算出ステップを実行し、前記入力値算出ステップは、入力としてＰ，Ｑ、およびＰとＱの差分値Ｒを入力とした擬似加算ＶＡＤＤ（Ｐ，Ｑ，Ｒ）を実行するステップであることを特徴とする。
【００２０】
さらに、本発明の第３の側面は、
公開鍵暗号方式において適用する鍵の生成を行う情報処理装置であり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する演算処理部、
を有することを特徴とする情報処理装置にある。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する処理を実行する構成であることを特徴とする。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する処理を実行する構成であることを特徴とする。
【００２３】
さらに、本発明の第４の側面は、
公開鍵暗号方式において規定される公開鍵を適用した演算を実行する情報処理装置であり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する演算処理部、
を有することを特徴とする情報処理装置にある。
【００２４】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する処理を実行する構成であることを特徴とする。
【００２５】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する処理を実行する構成であることを特徴とする。
【００２６】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、公開鍵暗号方式において規定される署名検証処理に含まれる演算として、署名検証処理アルゴリズムで必要となる前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱを実行する構成であることを特徴とする。
【００２７】
さらに、本発明の情報処理装置の一実施態様において、前記演算処理部は、前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理ｋＰ＋ｌＱの演算アルゴリズムにおける入力値として適用するＰ，Ｑの差分値の算出処理としての入力値算出処理を実行する構成であり、
前記入力値算出処理を、
入力としてＰ，Ｑ、およびＰとＱの差分値Ｒを入力とした擬似加算ＶＡＤＤ（Ｐ，Ｑ，Ｒ）により実行する構成であることを特徴とする。
【００２８】
さらに、本発明の第５の側面は、
情報処理装置において、公開鍵暗号方式において適用する鍵の生成を行わせるコンピュータ・プログラムであり、
演算処理部において実行させる鍵生成ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成させる鍵生成ステップを実行させることを特徴とするコンピュータ・プログラムにある。
【００２９】
さらに、本発明の第６の側面は、
情報処理装置において、公開鍵暗号方式において規定される公開鍵を適用した演算を実行させるコンピュータ・プログラムであり、
演算処理部において実行させる演算ステップであり、
有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、
前記ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出させる演算ステップを実行させることを特徴とするコンピュータ・プログラムにある。
【００３０】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３１】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００３２】
本発明の一実施例の構成によれば、有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成し、公開鍵暗号システムにおいて規定される署名検証において、上記の公開鍵を適用した演算処理によって効率的な演算が可能となる。具体的には、署名検証アルゴリズムにおけるスカラー倍点の加算［ｋＰ＋ｌＱ］の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに、擬似加算と２倍算のみで、実行可能として効率的な演算が実現される。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の公開鍵暗号システム構築方法、暗号演算方法、および情報処理装置、並びにコンピュータ・プログラムの詳細について説明する。
【００３４】
以下、以下の項目に従って本発明の詳細な説明を行なう。
１．楕円曲線およびＫｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系についての説明
（１．１）．楕円曲線上の離散対数問題に基づく暗号系についての説明
（１．２）．Ｋｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系についての説明
（１．３）スカラー倍点の加算ｋＰ＋ｌＱにおける問題点
２．擬似加算と２倍算によりスカラー倍点の加算ｋＰ＋ｌＱの算出を行なう構成
３．情報処理装置構成例
【００３５】
［１．楕円曲線およびＫｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系についての説明］
まず、本発明の具体的な説明の前に、前提となる楕円曲線およびＫｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系について説明する。説明は、以下の２つの項目について行なう。
（１．１）．楕円曲線上の離散対数問題に基づく暗号系についての説明
（１．２）．Ｋｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系についての説明
【００３６】
（１．１）．楕円曲線上の離散対数問題に基づく暗号系についての説明
楕円曲線上の離散対数問題に基づく暗号系（楕円曲線暗号）は、背景技術の欄においても述べたように、ＭｉｌｌｅｒとＫｏｌｂｌｉｔｚがそれぞれ独立に提案した公開暗号系であり、安全性および高速性の点で昨今注目されている。安全性の根拠をＤｉｆｆｉｅ，Ｈｅｌｌｍａｎが提案した有限Ａｂｅｌ群Ｇ上の離散対数問題におき、有限Ａｂｅｌ群Ｇとして楕円曲線の群構造を選択したものであり、同様の拡張で、超楕円曲線暗号などの可換群の構造を持つＡｂｅｌ多様体を適用した公開鍵暗号系がこれまでにも様々に提案されてきた。離散対数問題とは次のように定義される。
【００３７】
＊定義１．１（離散対数問題）
離散対数問題は、以下のような問題として定義される。
Ｇを有限Ａｂｅｌ群，ｘ，ｙ∈Ｇとする。
このとき、
ｙ＝ｎｘ
を満たす整数ｎを求めよ。
【００３８】
また、同様に、Ｇを楕円曲線の群構造とした楕円曲線上の離散対数問題は以下のように定義される。
＊定義１．２（楕円曲線上の離散対数問題）
Ｆｑを位数ｑの有限体、Ｅ／ＦｑをＦｑ上定義されるｏｒｄｉｎａｒｙな楕円曲線とする。
Ｅ／Ｆｑ上の有理点Ｐ，Ｑに対して、
Ｑ＝ｎＰ
を満たす整数ｎを求めよ。
として定義される。
【００３９】
注意深く選択された楕円曲線上の離散対数問題に対して、指数時間以上に有効な攻撃アルゴリズムは現在まで知られていない。この数論に基づく安全性を根拠に暗号系が構築されている。
【００４０】
（１．１．１）Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線を用いた暗号系
ここでは説明の為、有限体の標数を、
ｃｈａｒＦｑ≠２
とする。一般にＦｑ上定義される楕円曲線ＥはＷｅｒｉｅｒｓｔｒａｕｓｓ標準型、
Ｅ／Ｆｑ：ｙ２＝ｘ３＋ａｘ＋ｂ，    ただし、ａ，ｂ∈Ｆｑ
として与えられる。
【００４１】
これに対して、素因数分解の高速化を実現する為のアイデアから導入されたＭｏｎｔｇｏｍｅｒｙ型楕円曲線ＥＭが知られている。Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線は、
ＥＭ／Ｆｑ：Ｂｙ２＝ｘ３＋Ａｘ２＋ｘ，    ただし、Ａ，Ｂ∈Ｆｑ，（Ａ２−４）Ｂ≠０
として与えられる。
【００４２】
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線は暗号系構成要素として必要な点の整数倍演算（スカラー倍算）を事前計算無しに高速に計算できることから注目され、標数２の場合に拡張されたり、ハードウェア（Ｈ／Ｗ）的な暗号攻撃への耐性の面からも楕円曲線暗号への応用と研究が進んでいる。
【００４３】
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線の群演算の特徴は、曲線上の２つの有理点の差分点要素の内、ｘ座標が既知ならばｙ座標の情報を用いることなく加算及び２倍算を導出できることにある。ＥＭ／Ｆｑ上の有理点のアフィン（Ａｆｆｉｎ）座標系表示を（ｘ，ｙ）とするならば、
ｘ＝Ｘ／Ｚ，
ｙ＝Ｙ／Ｚ
によって射影座標系表示（Ｘ，Ｙ，Ｚ）を得られる。
このとき、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における加算及び２倍算は次の定義のように与えられる。
【００４４】
＊定義１．３（Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線おける加法）
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線おける加法は以下のように定義することができる。
ＥＭ／Ｆｑ上の有理点
Ｐ１＝（Ｘ１，Ｙ１，Ｚ１），
Ｐ２＝（Ｘ２，Ｙ２，Ｚ２）≠Ｐ１
とその差分点、
Ｐ０＝−Ｐ１＋Ｐ２＝Ｐ２−Ｐ１＝（Ｘ０，Ｙ０，Ｚ０）
が与えられた際、Ｐ１とＰ２との加算点
Ｐ３＝Ｐ１＋Ｐ２＝（Ｘ３，Ｙ３，Ｚ３）は、
Ｘ３＝Ｚ０（（Ｘ１−Ｚ１）（Ｘ２＋Ｚ２）＋（Ｘ１＋Ｚ１）（Ｘ２−Ｚ２））２
Ｚ３＝Ｘ０（（Ｘ１−Ｚ１）（Ｘ２＋Ｚ２）−（Ｘ１＋Ｚ１）（Ｘ２−Ｚ２））２
として示すことができる。
【００４５】
なお、差分点は、その構造からも理解されるように、Ｐ０＝Ｐ２−Ｐ１でも、Ｐ０＝Ｐ１−Ｐ２でも構わない、以下では、簡単のため差分点Ｐ０＝Ｐ２−Ｐ１の形を代表として説明する。
【００４６】
＊定義１．４（Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線おける２倍算）
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線おける２倍算は以下のように定義することができる。
ＥＭ／Ｆｑ上の有理点
Ｐ１＝（Ｘ１，Ｙ１，Ｚ１）
が与えられた際、
その２倍点
Ｐ２＝２Ｐ１＝（Ｘ２，Ｙ２，Ｚ２）は、
４Ｘ１Ｚ１＝（Ｘ１＋Ｚ１）２−（Ｘ１−Ｚ１）２
Ｘ２＝（Ｘ１＋Ｚ１）２（Ｘ１−Ｚ１）２
Ｚ２＝４Ｘ１Ｚ１（（Ｘ１−Ｚ１）２＋（４Ｘ１Ｚ１）（Ａ＋２）／４）
として示すことができる。
【００４７】
（１．１．２）Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算
楕円曲線上の離散対数問題に基づく暗号系の重要な要素のひとつとして、楕円曲線上の有理点Ｐの整数ｋ倍点ｋＰの計算、すなわちスカラー倍算を如何に高速に行うかという問題がある。楕円曲線上のスカラー倍算については、様々な手法が研究、提案されているが、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線のスカラー倍算についても、前述した加法、２倍算を用いて効率的なスカラー倍算を行なう加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を構成できることが知られている。
【００４８】
この加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）はスカラー倍点ｋＰを求めるとき、
Ｕｔ＝Ｐｔ，Ｖｔ＝２Ｐ
を初期値として整数ｋの２進表現、
ｋ＝（ｋｔｋｔ−１・・・ｔ１ｋ０）
のｋｔ−１から順に見ていき、
ｋｉが１ならば、
Ｕｉ＝Ｕｉ＋１＋Ｖｉ＋１，Ｖｉ＝２Ｖｉ＋１
とし、
ｋｉが０ならば、
Ｕｉ＝２Ｕｉ＋１，Ｖｉ＝Ｕｉ＋１＋Ｖｉ＋１
とする計算を逐次的に行うものであり、ＵｉとＶｉの差が常にＰとなるのが大きな特徴である。以下、手順を示すが、特徴が分かり易いようにＭｏｎｔｇｏｍｅｒｙ型楕円曲線における加法、２倍算を関数の形で定義する。
【００４９】
＊定義１．５（ＭｏｎＡＤＤ）
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における擬似加算（ＭｏｎＡＤＤ）を以下のように定義する。
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線ＥＭ／Ｆｑ上の点Ｐ１，Ｐ２と、
その差分点Ｐ０＝Ｐ１−Ｐ２
を入力として、定義１．３で示した計算を実施する関数を、
ＭｏｎＡＤＤ＝（Ｐ０，Ｐ１，Ｐ２）＝Ｐ１＋Ｐ２
とする。
【００５０】
なお、擬似加算は、Ｐ１とＰ２との加算結果Ｐ１＋Ｐ２を得る際に、入力として、
（ａ）Ｐ１とＰ２と、その差分値であるＰ０＝Ｐ１−Ｐ２、または、
（ｂ）Ｐ１とＰ２と、その差分値であるＰ０＝Ｐ２−Ｐ１、
これら（ａ）または（ｂ）のいずれかを入力とし、
出力として、
Ｐ１とＰ２との加算結果であるＰ１＋Ｐ２
を得る加算処理である。
【００５１】
なお、上記説明において、擬似加算は、Ｐ１とＰ２との加算結果Ｐ１＋Ｐ２を得るという説明としたが、例えば、Ｐ１と（−Ｐ２）との加算結果は、［Ｐ１−Ｐ２］と表現可能であり、Ｐ１と（−Ｐ２）との加算結果Ｐ１−Ｐ２を算出する場合に、Ｐ１と（−Ｐ２）との差分として、
（ａ）Ｐ０＝Ｐ１−（−Ｐ２、）＝Ｐ１＋Ｐ２、または、
（ｂ）Ｐ０＝Ｐ２−（−Ｐ１、）＝Ｐ１＋Ｐ２、
をＰ１とＰ２と併せて入力として適用して、
出力として、
Ｐ１と−Ｐ２との加算結果であるＰ１−Ｐ２
を得る加算処理も擬似加算である。
【００５２】
従って、
ＭｏｎＡＤＤ＝（Ｐ０，Ｐ１，Ｐ２）
として示される擬似加算において、
差分点Ｐ０は、Ｐ１−Ｐ２，Ｐ２−Ｐ１，Ｐ１＋Ｐ２のいずれかとして表現可能であり、求める加算点は、Ｐ１＋Ｐ２，Ｐ２−Ｐ１，Ｐ１−Ｐ２のいずれかとして表現可能となる。
【００５３】
＊定義１．６（ＭｏｎＤＢＬ）
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における２倍算（ＭｏｎＤＢＬ）を以下のように定義する。
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線ＥＭ／Ｆｑ上の点Ｐ１を入力として、定義１．４で示した計算を実施する関数を、
ＭｏｎＤＢＬ（Ｐ１）＝２Ｐ１
とする。
【００５４】
このとき、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算：ｋＰの手順は、以下に示すアルゴリズム１（Ａｌｇｏｒｉｔｈｍ１）となる。
【００５５】
【数１】
2008046295.tif 000003
【００５６】
上記アルゴリズム１は、
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線上の点Ｐ、
スカラー量ｋ
を入力として、
出力として、
ｋＰ
のスカラー倍算結果を得るアルゴリズムである。
【００５７】
上記アルゴリズムは、上述の
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における擬似加算（ＭｏｎＡＤＤ）、
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における２倍算（ＭｏｎＤＢＬ）、
を利用して、効率的なスカラー倍算を行なう加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した演算を行なうアルゴリズムとして構成されている。
【００５８】
加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した演算の具体例として、スカラー量ｋ＝２５の場合の手順を示す。
ｋ＝２５＝（１１００１）２
であるから、初期値を、
Ｕ＝Ｐ，
Ｖ＝２Ｐ＝ＭｏｎＤＢＬ（Ｐ）
として図示すると、図１に示す加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した計算手順が得られる。
【００５９】
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）は、図１に示すような構成となることから、Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒと呼ばれる。
【００６０】
前述したように、加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）はスカラー倍点ｋＰを求めるとき、
Ｕｔ＝Ｐｔ，Ｖｔ＝２Ｐ
を初期値として整数ｋの２進表現、
ｋ＝（ｋｔｋｔ−１・・・ｔ１ｋ０）
のｋｔ−１から順に見ていき、
ｋｉが１ならば、
Ｕｉ＝Ｕｉ＋１＋Ｖｉ＋１，Ｖｉ＝２Ｖｉ＋１
とし、
ｋｉが０ならば、
Ｕｉ＝２Ｕｉ＋１，Ｖｉ＝Ｕｉ＋１＋Ｖｉ＋１
とする計算を逐次的に行う。
【００６１】
図１において、
ｋ＝２５＝（１１００１）２
であり、
（ｋ４，ｋ３，ｋ２，ｋ１，ｋ０）＝（１，１，０，０，１）
となる。
初期値は、
Ｕ＝Ｐ，
Ｖ＝２Ｐ＝ＭｏｎＤＢＬ（Ｐ）
となる。
【００６２】
まず、ｉ＝３において、
ｋ３＝１であり、
Ｕ４＝Ｐ，Ｖ４＝２Ｐ
であるから、
Ｕ３＝Ｕ４＋Ｖ４＝３Ｐ
Ｖ３＝２Ｖ４＝４Ｐ
となる。
【００６３】
次に、ｉ＝２において、
ｋ２＝０であり、
Ｕ３＝３Ｐ，Ｖ３＝４Ｐ
であるから、
Ｕ２＝２Ｕ３＝６Ｐ
Ｖ２＝Ｕ３＋Ｖ３＝７Ｐ
となる。
【００６４】
次に、ｉ＝１において、
ｋ１＝０であり、
Ｕ２＝６Ｐ，Ｖ２＝７Ｐ
であるから、
Ｕ１＝２Ｕ２＝１２Ｐ
Ｖ１＝Ｕ２＋Ｖ２＝１３Ｐ
となる。
【００６５】
次に、ｉ＝０において、
ｋ０＝１であり、
Ｕ１＝１２Ｐ，Ｖ１＝１３Ｐ
であるから、
Ｕ０＝Ｕ１＋Ｖ１＝２５Ｐ
Ｖ０＝２Ｖ１＝２６Ｐ
となる。
【００６６】
この結果、
ｋ＝２５＝（１１００１）２
とした場合のスカラー倍算結果２５Ｐが算出される。このように、スカラー倍点ｋＰを求めるときに、加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した演算とすることで、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算において加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した演算が、前述のアルゴリズム１（Ａｌｇｏｒｉｔｈｍ１）に示すアルゴリズムであり、具体的には、
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における擬似加算（ＭｏｎＡＤＤ）、
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における２倍算（ＭｏｎＤＢＬ）、
これらの演算が行なわれることになる。
【００６７】
（１．１．３）ＥＣＤＳＡ（楕円曲線署名アルゴリズム）
楕円曲線暗号の応用のひとつとして、署名生成・検証技術が挙げられる。特にＡｍｅｒｉｃａｎ  Ｎａｔｉｏｎａｌ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ（ＡＮＳＩ）において制定された署名生成・検証技術、Ｅｌｌｉｐｔｉｃ  Ｃｕｒｖｅ  Ｄｉｇｉｔａｌ  Ｓｉｇｎａｔｕｒｅ  Ａｌｇｏｒｉｔｈｍ（ＥＣＤＳＡ）は標準として広く使用されている。以下、ＥＣＤＳＡについて簡単に説明する。
【００６８】
前提として、有限体Ｆｑ上定義される楕円曲線をＥ／Ｆｑとし、その位数＃Ｅ（Ｆｑ）は大きな素数ｎを因数として持つものとする。また位数ｎとなるベースポイントをＰとする。閉区間［１，ｎ−１］より選択した整数を秘密鍵ｄとし、ベースポイントＰのｄ倍点を公開鍵Ｑとする。公開鍵の生成方法は具体的に前述のＭｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算アルゴリズムであるアルゴリズム１（Ａｌｇｏｒｉｔｈｍ１）を用いて計算する。曲線定義およびベースポイントの定義情報としてのドメインパラメータ、および鍵情報についてまとめると以下のようになる。
ドメインパラメータ：Ｅ／Ｆｑ，Ｐ
公開鍵；Ｑ＝ｄＰ
秘密鍵：ｄ∈［１，ｎ−１］
である。
【００６９】
（ＥＣＤＳＡ署名生成処理）
ＥＣＤＳＡ署名生成について説明する。署名生成者は署名を付けるメッセージｍに対して、あるハッシュ関数ｈａｓｈを作用させダイジェストを得る。なお、使用するハッシュ関数としては様々なハッシュ関数が適用可能である。このダイジェストはｂｉｎａｒｙ表現として先頭ｂｉｔをＭＳＢとする整数ｅとして扱うものとする。
【００７０】
次に署名生成者は閉区間［１，ｎ−１］より整数ｋをランダムに選択し、ベースポイントの整数倍Ａ＝ｋＰを計算する。署名値として楕円曲線上の有理点のｘ座標要素をなんらかの手順で整数に変換するｅｌｔ２ｉｎｔによってＡのｘ座標要素ａを求める。また、ダイジェストｅとａの整数ｄ（署名生成者の秘密鍵）倍の和を作り、ｋの逆元を掛けたｓをＺ／ｎＺ上で計算する。署名生成者はａとｓの組（ａ，ｓ）を署名とする。この一連の手順をアルゴリズム２（Ａｌｇｏｒｉｔｈｍ２）として以下に示す。
【００７１】
【数２】
2008046295.tif 000004
【００７２】
（ＥＣＤＳＡ署名検証処理）
次に、署名検証について説明する。署名検証者は署名（ａ'，ｓ'）が付けられたメッセージｍ'に対してあるハッシュ関数ｈａｓｈを作用させダイジェストを得る。このダイジェストはｂｉｎａｒｙ表現として先頭ｂｉｔをＭＳＢとする整数ｅ'として扱うものとする。次に署名検証者は署名（ａ'，ｓ'）の要素ａ'，ｓ'それぞれが、閉区間［１，ｎ−１］に入っているかどうかを判定する。
【００７３】
閉区間［１，ｎ−１］の範囲外である場合は、署名は不正であるとして破棄される。閉区間［１，ｎ−１］の範囲内であることが確認されたらｓ'のＺ／ｎＺ上での逆元ｃを求め、ｅ'，ａ'をそれぞれＺ／ｎＺ上でｃ倍した中間値ｋ，ｌを計算する。得られたｋ，ｌとベースポイントＰ，署名生成者の公開鍵Ｑより、
Ｂ＝ｋＰ＋ｌＱ
を計算する。署名生成時と同様、楕円曲線上の有理点のｘ座標要素をなんらかの手順で整数に変換するｅｌｔ２ｉｎｔによってＢのｘ座標要素ｂを求める。最後にｂとａ'とを比較し、一致すれば署名（ａ'，ｓ'）はメッセージｍ'に対して正しく付けれたものであると判断する。一致しない場合は、不正であるものとして破棄される。この一連の手順をアルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）として以下に示す。
【００７４】
【数３】
2008046295.tif 000005
【００７５】
このアルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）では、ステップ１０が、ｋ，ｌとベースポイントＰ，署名生成者の公開鍵Ｑより、
Ｂ＝ｋＰ＋ｌＱ
を計算するステップである。この計算ステップは、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線上の点Ｐ，Ｑそれぞれのスカラー倍算結果ｋＰ，ｌＱの加算点を求める処理である。この異なる２点Ｐ，Ｑのスカラー倍算の加算処理は、計算負荷の大きい処理である。この異なる２点Ｐ，Ｑのスカラー倍算の加算処理を高速に実行する手法として、本発明の出願人は、先にスカラー倍同時計算手法を提案している。この手法は、既に特許取得済みである特開２００２−３２３８５２に記載されている。以下この手法について簡単に説明する。
【００７６】
（１．１．４）Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍同時計算
以下、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線において、２つのスカラー倍算の和、
ｋＰ＋ｌＱ
を効率よく計算する方法について説明する。この手法は、スカラー倍同時計算手法として、
特開２００２−３２３８５２号公報、
秋下徹．Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における高速なスカラー倍同時計算法．Ｉｎ  Ｔｅｃｈｎｉｃａｌ  ｒｅｐｏｒｔ，第１０１巻，ｐｐ．９７−１０３．ＩＥＩＣＥ，ＩＳＥＣ２００１−３２，２００１．
に記載されている。
【００７７】
このスカラー倍同時計算手法は、例えば、前述したＥＣＤＳＡ署名検証手順のアルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）のステップ１０（ｓｔｅｐ１０）の
Ｂ＝ｋＰ＋ｌＱ
を計算する場合に有効である。
【００７８】
ｋＰ＋ｌＱを算出する手順をアルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）＝ＳＩＭＵＬ１（Ｐ，Ｑ，ｋ，ｌ）として以下に示す。
【００７９】
【数４】
2008046295.tif 000006
【００８０】
アルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）におけるｓｔｅｐ１は、入力Ｐ，ＱからＰ＋Ｑ，Ｑ−Ｐを計算するステップである。ここで現れる（＋）は、点ＰとＱの疑似ではない加算であり、前述の［定義１．３］から明らかなように、疑似加算ＭｏｎＡＤＤではこの値を計算することができない。そのため通常は異なる加算公式を用いて計算することが必要になる。この加算公式については、「Ｐｅｔｅｒ  Ｌ．  Ｍｏｎｔｇｏｍｅｒｙ．Ｓｐｅｅｄｉｎｇ  ｔｈｅ  Ｐｏｌｌａｒｄ  ａｎｄ  ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｍｅｔｈｏｄｓ  ｏｆ  ｆａｃｔｏｒｉｚａｔｉｏｎｓ．Ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎ，Ｖｏｌ  ４８，Ｎｕｍｂｅｒ  １７７，ｐｐ．２４３−２６４．Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ，Ｊａｎｕａｒｙ  １９８７．」に記載されている。
【００８１】
また、アルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）におけるｓｔｅｐ１のＰ＋Ｑ，Ｑ−ＰはＰとＱとの差分点という意味で、前述の［定義１．３］でも触れた通り、Ｐ＋Ｑ，Ｐ−Ｑの形でも成り立つ。
【００８２】
このアルゴリズム４に示すスカラー倍同時計算手法を適用することで、例えばＭｏｎｔｇｏｍｅｒｙ型楕円曲線上の点Ｐ，Ｑそれぞれのスカラー倍算結果ｋＰ，ｌＱの加算点としての
Ｂ＝ｋＰ＋ｌＱ
を高速に算出することができる。
【００８３】
ただし、この手法の問題点としてあるのは、ｓｔｅｐ１において、入力Ｐ，ＱからＰ＋Ｑ，Ｑ−Ｐを計算するステップが、前述した擬似加算の適用では算出できるものではなく、擬似ではない異なる加算公式を実装することが必要なため、このｓｔｅｐ１の計算コストが高いということが問題点である。
【００８４】
この問題点を解決した本発明の手法については、後段の［２．擬似加算と２倍算によりスカラー倍点の加算ｋＰ＋ｌＱの算出を行なう構成］において詳細に説明する。
【００８５】
（１．２）．Ｋｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系についての説明
次に、Ｋｕｍｍｅｒ曲面上の離散対数問題に基づく暗号系について説明する。Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算を高速に行う手法として図１を参照して説明したＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒを種数２の超楕円曲線に応用する提案が、Ｇａｕｄｒｙや、Ｄｕｑｕｅｓｎｅによって、下記文献において、提案されている。
「Ｓｙｌｖａｉｎ  Ｄｕｑｕｅｎｓｎｅ．Ｍｏｎｔｇｏｍｅｒｙ  Ｓｃａｌａｒ  Ｍｕｌｔｉｐｌｉｃａｔｉｏｎ  ｆｏｒ  Ｇｅｎｕｓ  ２  Ｃｕｒｖｅ．Ｉｎ  Ｄｕｎｃａｎ  Ｂｕｅｌｌ，ｅｄｉｔｏｒ，Ａｌｇｏｒｉｔｈｍｉｃ  Ｎｕｍｂｅｒ  Ｔｈｅｏｒｙ，Ｖｏｌ．３０７６  ｏｆ  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，ｐｐ．１５３−１６８．Ｓｉｘｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ，  ＡＮＴＳ−ＶＩ，ＳｐｒｉｎｇｅｒＶｅｒｌａｇ，２００４．」、「Ｐ．Ｇａｕｄｒｙ．Ｆａｓｔ  ｇｅｎｕｓ  ２  ａｒｉｔｈｍｅｔｉｃ  ｂａｓｅｄ  ｏｎ  Ｔｈｅｔａ  ｆｕｎｃｔｉｏｎｓ．  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，Ｊｕｌｙ  ２００５．２００５／０３１４．」
【００８６】
このアイデアは、超楕円曲線そのものの因子計算にＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒを直接用いることは不可能だが、群構造として同型なＫｕｍｍｅｒ曲面（クンマー曲面）上の問題としてスカラー倍を扱うというものである。以下、上記文献「Ｐ．Ｇａｕｄｒｙ．Ｆａｓｔ  ｇｅｎｕｓ  ２  ａｒｉｔｈｍｅｔｉｃ  ｂａｓｅｄ  ｏｎ  Ｔｈｅｔａ  ｆｕｎｃｔｉｏｎｓ．  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，Ｊｕｌｙ  ２００５．２００５／０３１４．」に従って、Ｋｕｍｍｅｒ曲面の定義と群演算、スカラー倍算について説明する。本来、超楕円曲線とＫｕｍｍｅｒ曲面との間にある関係についての事実が学術的に非常に重要ではあるが省略し、本発明に直接的に関連する項目のみ、簡単に触れる。
【００８７】
＊定義１．７（Ｋｕｍｍｅｒ曲面）
Ｋｕｍｍｅｒ曲面を以下のように定義する。
Ｓ２をＳｉｅｇｅｌ上半平面とし、Ω∈Ｓ２をｉｍａｇｉｎａｒｙ  ｐａｒｔが０より大きい２×２複素行列とする。このとき、
φ：Ｃ２→Ｐ３（Ｃ）
ｚ→（ｖ１（２ｚ），ｖ２（２ｚ），ｖ３（２ｚ），ｖ４（２ｚ））
で定義されるφの像の軌跡をΩで関連づけられたＫｕｍｍｅｒ曲面という。
【００８８】
ここで、ｖｉは基本Ｔｈｅｔａ関数と呼ばれる関数である。詳細は前述の文献を参照されたい。以降、Ｋｕｍｍｅｒ曲面をＴｈｅｔａ関数
ａ＝ｖ１（０），ｂ＝ｖ２（０），ｃ＝ｖ３（０），ｄ＝ｖ４（０），
Ａ＝Θ１（０），Ｂ＝Θ２（０），Ｃ＝Θ３（０），Ｄ＝Θ４（０），
これらを用いてパラメータ化（ｐａｒａｍｅｔｒｉｚｅ）し、
Ｋ＝Ｋａ，ｂ，ｃ，ｄ
として示す。
【００８９】
（１．２．１）Ｋｕｍｍｅｒ曲面におけるスカラー倍算
Ｇａｕｄｒｙ等はＫｕｍｍｅｒ曲面上の点について２倍算と「疑似」加法の群演算を明示的に与えており、これによりスカラー倍算において、先に図１を参照して説明したＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプのａｄｄｉｔｉｏｎ  ｃｈａｉｎが構成できることを示している。
【００９０】
楕円曲線の場合と同様にＫｕｍｍｅｒ曲面における２倍算と疑似加法を関数の形で定義する。これらの計算には、以下に与える６つの定数の事前計算を必要とする。
ｙ０＝（ａ／ｂ），
ｚ０＝（ａ／ｃ），
ｔ０＝（ａ／ｄ），
ｙ０'＝（Ａ／Ｂ）２，
ｚ０'＝（Ａ／Ｃ）２，
ｔ０'＝（Ａ／Ｄ）２，
【００９１】
＊定義１．８（ＫｕｍｍｅｒＤＢＬ）
Ｋｕｍｍｅｒ曲面における２倍算（ＫｕｍｍｅｒＤＢＬ）を以下のように定義する。
Ｋｕｍｍｅｒ曲面Ｋ上の点、
Ｐ１＝（ｘ１，ｙ１，ｚ１，ｔ１）
を入力として、
Ｐ１の２倍点、
２Ｐ１＝（ｘ２，ｙ２，ｚ２，ｔ２）
を求める関数を、
ＫｕｍｍｅｒＤＢＬ（Ｐ１）＝２Ｐ１
と定義する。この具体的な計算手順をアルゴリズム５（Ａｌｇｏｒｉｔｈｍ５）として示す。
【００９２】
【数５】
2008046295.tif 000007
【００９３】
＊定義１．９（ＫｕｍｍｅｒＡＤＤ）
Ｋｕｍｍｅｒ曲面における擬似加算（ＫｕｍｍｅｒＡＤＤ）を以下のように定義する。
Ｋｕｍｍｅｒ曲面Ｋ上の点、
Ｐ１＝（ｘ１，ｙ１，ｚ１，ｔ１）
Ｐ２＝（ｘ２，ｙ２，ｚ２，ｔ２）
と、その差分点、
Ｐ３'＝（ｘ３'，ｙ３'，ｚ３'，ｔ３'）＝−Ｐ１＋Ｐ２＝Ｐ２−Ｐ１
を入力として、Ｐ１とＰ２の加算点、
Ｐ３＝Ｐ１＋Ｐ２
を求める疑似加算関数を
ＫｕｍｍｅｒＡＤＤ（Ｐ１，Ｐ２，Ｐ３'）＝Ｐ１＋Ｐ２
と定義する。
なお、差分点は、ＭｏｎｔｇｏｍｅｒｙＰ型楕円曲線の場合と同様、Ｐ３'＝Ｐ２−Ｐ１のみならず、Ｐ３'＝Ｐ１−Ｐ２として表現することもできる。
【００９４】
上記のＰ１とＰ２の加算点、
Ｐ３＝Ｐ１＋Ｐ２
を求める疑似加算関数ＫｕｍｍｅｒＡＤＤの具体的な計算手順をアルゴリズム６（Ａｌｇｏｒｉｔｈｍ６）として以下に示す。
【００９５】
【数６】
2008046295.tif 000008
【００９６】
Ｋｕｍｍｅｒ曲面における疑似加算、２倍算を用いて、楕円曲線の場合（Ａｌｇｏｒｉｔｈｍ１）と同様に、Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプのａｄｄｉｔｉｏｎ  ｃｈａｉｎを持つスカラー倍算が構成できる。この計算手順は、以下に示すアルゴリズム７（Ａｌｇｏｒｉｔｈｍ７）となる。
【００９７】
【数７】
2008046295.tif 000009
【００９８】
このアルゴリズム７は、
Ｋｕｍｍｅｒ曲面上の点Ｐ、
スカラー量ｋ
を入力として、
出力として、
ｋＰ
のスカラー倍算結果を得るアルゴリズムである。
【００９９】
上記アルゴリズムは、上述の
Ｋｕｍｍｅｒ曲面における擬似加算（ＫｕｍｍｅｒＡＤＤ）、
Ｋｕｍｍｅｒ曲面における２倍算（ＫｕｍｍｅｒＤＢＬ）、
を利用して、効率的なスカラー倍算を行なう加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を適用した演算を行なうアルゴリズムとして構成されている。
【０１００】
（１．２．２）Ｋｕｍｍｅｒ曲面上の離散対数問題
Ｋｕｍｍｅｒ曲面上の点について、疑似加算及び２倍算が定義され、スカラー倍算が構成されたことで、不完全（疑似的）ではあるが加法群の群構造が導入された。この事実はＫｕｍｍｅｒ曲面上に離散対数問題が定義できることに他ならない。前述の離散対数問題に習って定義すれば、次のように説明できる。
【０１０１】
＊定義１．１０（Ｋｕｍｍｅｒ曲面上の離散対数問題）
Ｋｕｍｍｅｒ曲面上の離散対数問題は、以下の問題として定義される。
Ｆｑを位数ｑの有限体、
Ｋ／ＦｑをＦｑ上定義されるＫｕｍｍｅｒ曲面とする。
Ｋ／Ｆｑ上の点Ｐ，Ｑに対して、
Ｑ＝ｎＰ
を満たす整数ｎを求めよ。
【０１０２】
Ｋ／Ｆｑの群位数は、Ｇａｕｄｒｙが示した条件下で、
以下の超楕円曲線
【数８】
2008046295.tif 000010
のヤコビアンと群位数が等しくなることが知られている。従って、注意深く選択されたＫｕｍｍｅｒ曲面では、安全な超楕円曲線暗号と同等の安全性を持つ暗号系を構築できる可能性があることが分かる。
【０１０３】
Ｄｕｑｕｅｓｎｅが示した内容は、Ｋｕｍｍｅｒ曲面と関係づけられる超楕円曲線の形や条件が異なるが、スカラー倍算が構成できること、離散対数問題が定義できるという本質は同じものである。
【０１０４】
（１．３）スカラー倍点の加算ｋＰ＋ｌＱにおける問題点
上述したＭｏｎｔｇｏｍｅｒｙ型楕円曲線を使った暗号や、Ｋｕｍｍｅｒ曲面を使った暗号では、前述したように疑似加算を用いてスカラー倍算ｋＰを効率良く計算することができる。しかし、このタイプの暗号では、様々な暗号プロトコルを構成する場合、疑似加算だけでなく、実際の加算が必要な場合もあり、この時に、大きな問題が生じる。
【０１０５】
この一つの例が、前述したようにＥＣＤＳＡの署名検証アルゴリズム、すなわち先に説明したアルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）で用いられるステップ１０（ｓｔｅｐ１０）のスカラー倍点の加算ｋＰ＋ｌＱの計算である。なお、前述したようにＫｕｍｍｅｒ曲面の暗号の場合もＭｏｎｔｇｏｍｅｒｙ型楕円曲線と同じ演算性質を持つ。このことからＫｕｍｍｅｒ曲面上の点を用いてＥＣＤＳＡの署名検証アルゴリズム（Ａｌｇｏｒｉｔｈｍ３）を一般化することができる。
【０１０６】
このように実際、加算アルゴリズムが要求される暗号プロトコルへの対応方法に関して、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線、Ｋｕｍｍｅｒ曲面を用いた暗号系それぞれに場合について述べる。
【０１０７】
まず、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線の場合、前述したＭｏｎＡＤＤとは異なる加法公式を用いることができる。この加法公式については、「Ｐｅｔｅｒ  Ｌ．  Ｍｏｎｔｇｏｍｅｒｙ．Ｓｐｅｅｄｉｎｇ  ｔｈｅ  Ｐｏｌｌａｒｄ  ａｎｄ  ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｍｅｔｈｏｄｓ  ｏｆ  ｆａｃｔｏｒｉｚａｔｉｏｎｓ．Ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎ，Ｖｏｌ  ４８，Ｎｕｍｂｅｒ  １７７，ｐｐ．２４３−２６４．Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ，Ｊａｎｕａｒｙ  １９８７．」に記載されている。
【０１０８】
従って、前述したアルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）を実行することが可能であり、スカラー倍点の加算ｋＰ＋ｌＱを計算することができる。しかし、このために異なる計算手段を用意しなければいけないことは、暗号プロトコルを実装する者にとって大きなコストと言える。
【０１０９】
一方、Ｋｕｍｍｅｒ曲面暗号の場合、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線のように点に関して完全な加法群を構成すること、即ち曲面上で通常の点の加算を明示的に与えることは難しい。その為、楕円曲線暗号に比べて、加算をその手順の中に必要とされる暗号プロトコルを実現する上で深刻である。単純な解決方法は、始めにＫｕｍｍｅｒ曲面上の点として、それぞれのスカラー倍ｋＰ，ｌＱを別々に計算する。次に、それらを加法が定義されている同型な種数２の超楕円曲線のＪａｃｏｂｉ多様体上の因子へ移す。因子の加算を実行し、Ｋｕｍｍｅｒ曲面の点に再び引き戻すことでｋＰ＋ｌＱを得る。
【０１１０】
しかし、この方法はＧａｕｄｒｙの論文「Ｐ．Ｇａｕｄｒｙ．Ｆａｓｔ  ｇｅｎｕｓ  ２  ａｒｉｔｈｍｅｔｉｃ  ｂａｓｅｄ  ｏｎ  Ｔｈｅｔａ  ｆｕｎｃｔｉｏｎｓ．  Ｃｒｙｐｔｏｌｏｇｙ  ｅＰｒｉｎｔ  Ａｒｃｈｉｖｅ，Ｊｕｌｙ  ２００５．２００５／０３１４．」に記載されているように、Ｊａｃｏｂｉ多様体上の因子と対応するＫｕｍｍｅｒ曲面上の点との間にある対応関係が非常に複雑であり、実施の際に非常に多くの計算量がかかってしまう。
【０１１１】
従って、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線にせよ、Ｋｕｍｍｅｒ曲面を用いた暗号にせよ、スカラー倍点の加算ｋＰ＋ｌＱの計算を異なる加算方法を用いること無しに計算することは、実装上、大変有意義であり、且つ解決すべき問題である。
【０１１２】
［２．擬似加算と２倍算によりスカラー倍点の加算ｋＰ＋ｌＱの算出を行なう構成］
次に、擬似加算と２倍算によりスカラー倍点の加算ｋＰ＋ｌＱの算出を行なう本発明に従った処理について説明する。
【０１１３】
本発明の提案する構成の１つは、公開鍵暗号方式における鍵の設定手法であり、本発明に従った鍵の設定手法を適用することで、公開鍵暗号方式における署名検証処理において実行する２つの異なる点Ｐ，Ｑのスカラー倍算：ｋＰ，ＬＱの加算点、
ＫＰ＋ｌＱ
の算出を擬似加算と２倍算により実行することが可能となる。
【０１１４】
本発明の提案する公開鍵暗号方式について説明する。
本発明の提案する公開鍵暗号方式は、先に、図１を参照して説明したＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプの加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を持つスカラー倍算が構成可能な有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式であり、
ベースポイントをＰ∈Ｖ／Ｆｑとした場合、
秘密鍵：ｄ∈Ｚとする。
公開鍵は、以下のＱ，Ｒのペアとして設定する。
１つの公開鍵Ｑは、
ベースポイントＰの秘密鍵：ｄ倍の点、
Ｑ＝ｄＰとする。
さらに、もう１つの公開鍵Ｒを、
Ｑとの差分がＰとなる点Ｒ、すなわち、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記のいずれかに設定する。
【０１１５】
これらＱ，Ｒのペアを公開鍵とする。
このように公開鍵Ｑ，Ｒを設定することで、例えば、公開鍵暗号方式における署名検証処理において算出する必要のある点Ｐ，Ｑのスカラー倍点，ｋＰ，ｌＱの加算点、すなわち、
ＫＰ＋ｌＱ
の算出を、疑似加算と２倍算のみで計算することが可能となる。なお、この方式では、前述したスカラー倍同時計算が可能であり、スカラー倍同時計算ｋＰ＋ｌＱにおいて、通常の加算を用いずに疑似加算と２倍算のみで計算が可能となり、高速な演算が実現される。
【０１１６】
以下、本発明の処理構成について、詳細に説明する。なお、以下では、先に、図１を参照して説明したＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプの加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を持つスカラー倍算が構成可能な有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式として説明する。
【０１１７】
ただし、先に説明したように、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線を用いた暗号とＫｕｍｍｅｒ曲面を用いた暗号は疑似加算と２倍算に関して同じ性質を持つものであり、本発明は、Ｋｕｍｍｅｒ曲面を用いた暗号においても、全く同様に適用可能である。
【０１１８】
（２．１）本発明に従った実施例における定義
まず、本発明に従った実施例における定義について説明する。
以下の本発明に従った実施例における公開鍵暗号方式は、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線を用いた方式であり、多様体Ｖ／Ｆｑ上で定義可能なＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプの加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を持つスカラー倍算は、Ｖ／Ｆｑ上の疑似加算及び２倍算から構成されるものとする。
【０１１９】
疑似加算は、多様体Ｖ／Ｆｑ上の点Ｐ１，Ｐ２と、その差分点Ｐ０＝Ｐ２−Ｐ１を入力し、加算点Ｐ３＝Ｐ１＋Ｐ２を出力する。
なお、前述たように、差分点はＰ０＝Ｐ１−Ｐ２と示すこともでき、以下では、差分点はＰ０＝Ｐ２−Ｐ１を代表例として示す。
２倍算は、多様体Ｖ／Ｆｑ上の点Ｐ１を入力し、２倍点Ｐ２＝２Ｐ１を出力するものとする。
【０１２０】
これら擬似加算とて２倍算は、それぞれ関数の形で、
ＶＡＤＤ（Ｐ１，Ｐ２，Ｐ０）＝Ｐ１＋Ｐ２，
ＶＤＢＬ（Ｐ１）＝２Ｐ１
と定義する。
【０１２１】
擬似加算ＶＡＤＤ（Ｐ１，Ｐ２，Ｐ０）は、前述したように、Ｐ１とＰ２との加算結果Ｐ１＋Ｐ２を得る際に、入力として、
（ａ）Ｐ１とＰ２と、その差分値であるＰ０＝Ｐ１−Ｐ２、または、
（ｂ）Ｐ１とＰ２と、その差分値であるＰ０＝Ｐ２−Ｐ１、
これら（ａ）または（ｂ）のいずれかを入力とし、
出力として、
Ｐ１とＰ２との加算結果であるＰ１＋Ｐ２
を得る加算処理である。
【０１２２】
（２．２）２つの要素Ｑ，Ｒを公開鍵とする公開鍵暗号系の構成方法について
次に、スカラー倍同時計算ｋＰ＋ｌＱを通常の加算を用いずに疑似加算と２倍算のみで計算することを可能とした公開鍵方式の実現方法、すなわち、２つの要素Ｑ，Ｒを公開鍵とする公開鍵暗号系の構成方法について説明する。
【０１２３】
まず、Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプの加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を持つスカラー倍算が定義可能な、多様体Ｖ／Ｆｑ上定義される離散対数問題の困難性に根拠をおく公開鍵暗号方式において、ベースポイントとなる生成元Ｐ∈Ｖ／Ｆｑを決定する。
次に、ある乱数ｄ∈Ｚを選択し、このｄを暗号系の秘密鍵とする。すなわち、
秘密鍵：ｄ∈Ｚ
とする。
【０１２４】
さらに、この秘密鍵ｄ、及びベースポイントＰを入力とし、Ｐのｄ倍点Ｑ、及びＱとの差分がＰとなる点、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
を計算し、
Ｑ，Ｒのペアを公開鍵とする。
【０１２５】
本発明に従った公開鍵暗号構成方法、すなわち鍵生成シーケンスについて、図２を参照して説明する。従来の鍵生成シーケンスと対比するため、図２（ａ）に従来の鍵生成シーケンス、図２（ｂ）に本発明に従った鍵生成シーケンスを示す。
【０１２６】
図２（ａ）示す従来の鍵生成シーケンスにおいては、まず、ステップＳ１０１において、ある乱数ｄ∈Ｚを選択し、このｄを暗号系の秘密鍵とする。すなわち、
秘密鍵：ｄ∈Ｚ
とする。
【０１２７】
次に、ステップＳ１０２において、先に説明したＭｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算のアルゴリズム１（Ａｌｇｏｒｉｔｈｍ１）、または、Ｋｕｍｍｅｒ曲面におけるスカラー倍算のアルゴリズム７（Ａｌｇｏｒｉｔｈｍ７）を適用して、Ｐのｄ倍点としてのＱ、
Ｑ＝ｄＰ
を算出し、ステップＳ１０３において、
Ｑ＝ｄＰを公開鍵として決定する。
【０１２８】
一方、本発明に従った鍵決定シーケンスを図２（ｂ）示す。ステップＳ２０１は、従来の鍵生成シーケンスにおけるステップＳ１０１と同様であり、ある乱数ｄ∈Ｚを選択し、このｄを暗号系の秘密鍵とする。すなわち、
秘密鍵：ｄ∈Ｚ
とする。
【０１２９】
次に、ステップＳ２０２では、以下に示すアルゴリズム８（Ａｌｇｏｒｉｔｈｍ８）を適用してＰのｄ倍点Ｑ、及びＱとの差分がＰとなる点、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
を計算し、
ステップＳ２０３において、Ｑ，Ｒのペアを公開鍵として公開する。
【０１３０】
【数９】
2008046295.tif 000011
【０１３１】
上記の本発明に従った公開鍵生成アルゴリズムであるアルゴリズム８（Ａｌｇｏｒｉｔｈｍ８）の計算方法は、Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒを適用してスカラー倍算を行なう点は、先に説明したＭｏｎｔｇｏｍｅｒｙ型楕円曲線におけるスカラー倍算のアルゴリズム１（Ａｌｇｏｒｉｔｈｍ１）、または、Ｋｕｍｍｅｒ曲面におけるスカラー倍算のアルゴリズム７（Ａｌｇｏｒｉｔｈｍ７）と同様であるが、アルゴリズム１およびアルゴリズム７では、計算結果に現れる
（ｄ＋１）Ｐ
つまり、アルゴリズム８におけるＲの情報を冗長な情報として捨ててしまうのに対し、本発明に従った公開鍵生成アルゴリズムであるアルゴリズム８（Ａｌｇｏｒｉｔｈｍ８）では、Ｑとともに、
Ｒ＝（ｄ＋１）Ｐ
を公開鍵として扱うことに大きな違いがある。
【０１３２】
なお、上記アルゴリズム８では、
公開鍵ペアＱ，Ｒとして
Ｑ＝ｄＰ
Ｒ＝（ｄ＋１）Ｐ
の算出を行なう例であるが、前述したようにＲは、
Ｒ＝（ｄ−１）Ｐ
としてもよい。
【０１３３】
公開鍵Ｒとして、ベースポイントＰの（ｄ−１）倍点を得るには、アルゴリズム８において、
ｄ'＝ｄ−１
として入力に与え、結果として得られた
Ｑ'＝（ｄ−１）Ｐ，
Ｒ'＝ｄＰ
から、
Ｑ＝Ｒ'，
Ｒ＝Ｑ'
とすれば良い。
【０１３４】
このように、アルゴリズム８によって、本発明に従った公開鍵暗号方式における公開鍵Ｑ，Ｒを算出する。
【０１３５】
（２．３）本発明の公開鍵暗号方式におけるスカラー倍同時計算
次に、上述した鍵の設定とした公開鍵暗号方式において、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出、すなわち、
ｋＰ＋ｌＱ
の算出処理について説明する。
【０１３６】
本発明に従った公開鍵方式においては、スカラー倍同時計算ｋＰ＋ｌＱを通常の加算を用いずに疑似加算と２倍算のみで計算する。すなわち、従来法では実現できなかった、スカラー倍同時計算ｋＰ＋ｌＱを通常の加算を用いずに疑似加算と２倍算のみで計算する。
【０１３７】
本発明に従った公開鍵方式では、前述した処理によって、
ベースポイントＰ∈Ｖ／Ｆｑ、を決定する。
秘密鍵：ｄ∈Ｚ
公開鍵ペア：Ｑ，Ｒとして、
Ｑ＝ｄＰ
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
が設定されている。
【０１３８】
このような設定において、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出
ｋＰ＋ｌＱを算出するスカラー倍同時計算のシーケンスについて、図３を参照して説明する。従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスと対比するため、図３（ａ）に従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンス、図３（ｂ）に本発明に従った公開鍵暗号方式におけるスカラー倍同時計算シーケンスを示す。
【０１３９】
まず、図３（ａ）に示す従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスについて説明する。ステップＳ３０１において、スカラー倍同時計算ｋＰ＋ｌＱの計算要素としてのスカラー量ｋ，ｌ、および、ベースポイントＰ、公開鍵Ｑを入力する。
【０１４０】
ステップＳ３０２において、スカラー倍同時計算ｋＰ＋ｌＱを、先に説明したアルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）に従って実行する。すなわち、ＳＩＭＵＬ１（Ｐ，Ｑ，ｋ，ｌ）を実行し、ステップＳ３０３において、実行結果として、スカラー倍点の加算結果
Ｂ＝ｋＰ＋ｌＱ
を得る。
【０１４１】
ＳＩＭＵＬ１は、先に説明したアルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）で定義される。このアルゴリズム４は、擬似加算のみでは実行することができず、通常の加算なしでは処理することができなかった。すなわち、前述したように、アルゴリズム４（Ａｌｇｏｒｉｔｈｍ４）におけるｓｔｅｐ１は、入力Ｐ，ＱからＰ＋Ｑ，Ｑ−Ｐを計算するステップであり、ここで現れる（＋）は、点ＰとＱの疑似ではない通常の加算であり、前述の［定義１．３］から明らかなように、疑似加算ＭｏｎＡＤＤではこの値を計算することができない。そのため特定の別に用意した加算公式を用いて計算することが必要になる。
【０１４２】
次に、図３（ｂ）に示す本発明の公開鍵暗号方式におけるスカラー倍同時計算シーケンスでは、通常の加算処理を用いることなく疑似加算と２倍算のみで計算する。
【０１４３】
ステップＳ４０３において、Ｖ／Ｆｑ上の点Ｐ，Ｑのスカラー倍点ｋＰ，ｌＱを同時に計算するＳＩＭＵＬ２（Ｐ，Ｑ，Ｕ，Ｖ，ｋ，ｌ）を実行する。このＳＩＭＵＬ２は、疑似加算と２倍算のみでスカラー倍同時計算ｋＰ＋ｌＱを算出するアルゴリズムである。このアルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）を以下に示す。
【０１４４】
【数１０】
2008046295.tif 000012
【０１４５】
上記アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）に示すＳＩＭＵＬ２は、通常の加算を手順から排除するために、あらかじめＰとＱの差分点、
Ｕ＝Ｐ＋Ｑ，
Ｖ＝Ｑ−Ｐ
を入力として与えるように変更を加えたことが従来の同時計算アルゴリズムＳＩＭＵＬ１との違いである。なお、先に説明した例と同様、差分点の形は、Ｕ＝Ｐ＋Ｑ，Ｖ＝Ｐ−Ｑとしてもよい。
【０１４６】
図３（ｂ）に示す本発明の公開鍵暗号方式におけるスカラー倍同時計算シーケンスについて説明する。まず、ステップＳ４０１において、スカラー倍同時計算ｋＰ＋ｌＱの計算要素としてのスカラー量ｋ，ｌ、および、ベースポイントＰ、公開鍵ペアＱ，Ｒを入力する。
【０１４７】
ここで公開鍵Ｑ，Ｒは、先に説明したアルゴリズム８（Ａｌｇｏｒｉｔｈｍ８）を適用して算出されるＱ，Ｒであり、Ｐのｄ倍点Ｑ、及びＱとの差分がＰとなる点、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
のＱ，Ｒのペアからなる公開鍵のペアである。
なお、ここでは、まず、
Ｑ＝ｄＰ
Ｒ＝（ｄ＋１）Ｐ
この設定の場合について説明する。
【０１４８】
ステップＳ４０２では、上記アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）の実行前の処理として、
Ｕ＝Ｒ、
Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
としてＵ，Ｖを設定する。
【０１４９】
すなわち、
Ｕを公開鍵ペアＱ，Ｒの一方Ｒとして設定し、
ＶをベースポイントＰと、公開鍵ペアＱ，Ｒの一方の公開鍵Ｑの加算値を、Ｒを適用した擬似加算によって算出する。
擬似加算：Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
の入力値Ｐ，Ｑ，Ｒは、
Ｐ＝Ｐ
Ｑ＝ｄＰ
Ｒ＝（ｄ＋１）Ｐ
であり、
Ｒ＝（ｄ＋１）Ｐ＝ｄＰ＋Ｐ＝Ｑ＋Ｐ
であるので、
Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）は、
Ｐ，Ｑ，Ｒ＝Ｐ＋Ｑを入力として、
出力として、
Ｐ−Ｑ，Ｑ−Ｐを算出する擬似加算となる。
【０１５０】
このように、ステップＳ４０２では、
Ｕ＝Ｒ、
Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
としてＵ，Ｖを設定する。
このステップＳ４０２の処理は、ステップＳ４０３におけるスカラー倍同時計算ｋＰ＋ｌＱの事前処理であり、スカラー倍同時計算ｋＰ＋ｌＱを行なうための入力値として適用するＵ，Ｖを算出する処理である。
【０１５１】
Ｕ，Ｖの算出処理をステップＳ４０２において実行した後、ステップＳ４０３において、上記アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）に示すＳＩＭＵＬ２（Ｐ，Ｑ，Ｕ，Ｖ，ｋ，ｌ）を実行する。このＳＩＭＵＬ２では、従来方式で必要だった通常加算が不要になり、スカラー倍同時計算ｋＰ＋ｌＱを加算を用いずに疑似加算と２倍算のみで計算することができる。何故なら、ＰとＱとの差分点として定義されるＰ＋Ｑ，Ｑ−Ｐはそれぞれ、
Ｐ＋Ｑ＝Ｒ
Ｑ−Ｐ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
で与えられるためである。
【０１５２】
すなわち、
Ｐ＋Ｑ＝Ｒ
このＲは、公開鍵Ｒとして既知の値であり、
Ｑ−Ｐ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
として擬似加算によって算出できるからである。
【０１５３】
このように、本発明の鍵設定を行った公開鍵暗号方式においては、例えば、署名検証処理において必要となるスカラー倍点の加算点の算出、すなわち、
ｋＰ＋ｌＱ
の算出処理を、前述のアルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）の適用により、擬似加算および２倍算のみで行なうことが可能となる。
【０１５４】
上記、説明は、公開鍵のペアＱ，Ｒの設定を、
Ｑ＝ｄＰ
Ｒ＝（ｄ＋１）Ｐ
とした設定の場合の説明であったが、公開鍵ペアＱ，Ｒを、
Ｑ＝ｄＰ，
Ｒ＝（ｄ−１）Ｐ
とした設定の場合においても、ＰとＱの差分点Ｐ＋Ｑ，Ｑ−Ｐは、
Ｐ＋Ｑ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
Ｑ−Ｐ＝Ｒ
であることから、上記アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）と全く同じ手順でスカラー倍同時計算ｋＰ＋ｌＱを、通常の加算を用いずに疑似加算と２倍算のみで計算することができる。
【０１５５】
このように、本発明によれば、Ｍｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプのスカラー倍算が実行できる暗号、例えば、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線暗号やＫｕｍｍｅｒ曲面を用いた暗号において、
ベースポイントをＰ、
公開鍵を
Ｑ＝ｄＰ、および、
Ｑとの差分がＰとなる点、
Ｒ＝（ｄ＋１）Ｐ、または
Ｒ＝（ｄ−１）Ｐ
として、Ｑ，Ｒを公開鍵として設定することで、
スカラー倍点の加算ｋＰ＋ｌＱを、アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）を適用したスカラー倍同時計算が可能となり、通常加算を行なうことなく、疑似加算と２倍算を適用した算出処理として実行することが可能となる。
【０１５６】
アルゴリズム９（Ａｌｇｏｒｉｔｈｍ９）に示すスカラー倍同時計算を用いて実行するＤＳＡ署名検証処理のアルゴリズムについて説明する。
公開鍵Ｑ，Ｒのペアを、
Ｑ＝ｄＰ，
Ｒ＝（ｄ＋１）Ｐ
として設定した場合、以下に示すアルゴリズム１０（Ａｌｇｏｒｉｔｈｍ１０）によってＤＳＡ署名検証プロトコルを実行することができる。
【０１５７】
【数１１】
2008046295.tif 000013
【０１５８】
上記アルゴリズム１０のステップ１１に示す
Ｂ＝ＳＩＭＵＬ２（Ｐ，Ｑ，Ｕ，Ｖ，ｋ，ｌ）
が、前述のアルゴリズム９、すなわち、擬似加算と、２倍算により
ｋＰ＋ｌＱ
の算出を実行するステップである。
【０１５９】
その事前処理として、アルゴリズム１０のステップ１０において、
Ｕ＝Ｒ，
Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）
これらのＵ，Ｖ算出処理利が実行される。このステップ１０で算出するＵ，Ｖは、ステップ１１における、
Ｂ＝ＳＩＭＵＬ２（Ｐ，Ｑ，Ｕ，Ｖ，ｋ，ｌ）
の入力値、すなわち、前述のアルゴリズム９において、楕円曲線上の点Ｐ，Ｑのスカラー倍点の加算
ｋＰ＋ｌＱ
のスカラー倍同時計算処理のための入力として適用される。この入力を設定して、前述のアルゴリズム９を適用したスカラー倍同時計算を実行することで、擬似加算および２倍算を適用してｋＰ＋ｌＱを算出することが可能となる。
【０１６０】
なお、公開鍵Ｑ，Ｒのペアが、
Ｑ＝ｄＰ，
Ｒ＝（ｄ−１）Ｐ
の場合には、上記アルゴリズム１０（Ａｌｇｏｒｉｔｈｍ１０）のステップ１０を、
１０：  Ｕ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ），Ｖ＝Ｒ
と変更する。
【０１６１】
この変更により、次のステップ１１において前述のアルゴリズム９を適用したスカラー倍同時計算を擬似加算および２倍算を適用した処理として実行することが可能となる。
【０１６２】
Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線暗号の場合、先に説明したアルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）に示されたＥＣＤＳＡ署名検証の代わりに上記のアルゴリズム１０を実行することで、前述したＭｏｎＡＤＤとは異なる加法公式が不要になる。すなわち、先に、［（１．３）スカラー倍点の加算ｋＰ＋ｌＱにおける問題点］の項目において説明したＭｏｎＡＤＤとは異なる加法公式は不要になる。この加法公式は、先に説明したように、「Ｐｅｔｅｒ  Ｌ．  Ｍｏｎｔｇｏｍｅｒｙ．Ｓｐｅｅｄｉｎｇ  ｔｈｅ  Ｐｏｌｌａｒｄ  ａｎｄ  ｅｌｌｉｐｔｉｃ  ｃｕｒｖｅ  ｍｅｔｈｏｄｓ  ｏｆ  ｆａｃｔｏｒｉｚａｔｉｏｎｓ．Ｉｎ  Ｍａｔｈｅｍａｔｉｃｓ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎ，Ｖｏｌ  ４８，Ｎｕｍｂｅｒ  １７７，ｐｐ．２４３−２６４．Ａｍｅｒｉｃａｎ  Ｍａｔｈｅｍａｔｉｃａｌ  Ｓｏｃｉｅｔｙ，Ｊａｎｕａｒｙ  １９８７．」に記載されている。
【０１６３】
このように本発明に従った公開鍵暗号方式において生成した公開鍵を適用した署名検証処理では、ＭｏｎＡＤＤと異なる特別の加法公式を用意する必要がなくなり、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線の点Ｐ，Ｑのスカラー倍加算点
ｋＰ＋ｌＱ
を擬似加算と２倍算を適用して算出することが可能となり、ＥＣＤＳＡ署名検証プロトコルの実装コストを削減することができる。
【０１６４】
また、Ｋｕｍｍｅｒ曲面を用いた暗号の場合、先に、［（１．３）スカラー倍点の加算ｋＰ＋ｌＱにおける問題点］の項目において説明したように、アルゴリズム３（Ａｌｇｏｒｉｔｈｍ３）に示されたＥＣＤＳＡ署名検証をＫｕｍｍｅｒ曲面に拡張しようとした場合、通常の加算が定義できなかったため、ＥＣＤＳＡ署名検証の実現ができないか、あるいは非常に大きな計算コストがかかることになる。しかし、上述の本発明に従った公開鍵を適用した署名検証アルゴリズムであるアルゴリズム１０は、ＥＣＤＳＡ署名検証をＫｕｍｍｅｒ曲面に拡張したＤＳＡ署名検証プロトコルとして利用することが可能であり、Ｋｕｍｍｅｒ曲面の点Ｐ，Ｑのスカラー倍加算点
ｋＰ＋ｌＱ
を擬似加算と２倍算を適用して算出することが可能となり、ＤＳＡ署名検証プロトコルの実装コストを削減することができる。
【０１６５】
［３．情報処理装置構成例］
次に、上述の実施例で述べた一連の処理を実行する情報処理装置の構成例について説明する。上述の実施例で述べた一連の処理は、ハードウェア、ソフトウェアの組み合わせにより行うことができる。即ち、汎用のコンピュータや、マイクロコンピュータにプログラムを実行させることにより行う構成とすることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータや１チップのマイクロコンピュータ等にインストールされる。図４は、上述した一連の処理を実行するプログラムがインストールされる情報処理装置の一実施の形態の構成例を示している。
【０１６６】
図４に示す情報処理装置の構成例は１つの例であり、システムは、ここに示すべての機能を必ずしも備えることが要求されるものではない。図４に示すＣＰＵ(Central processing Unit)１０１は、各種アプリケーションプログラムや、ＯＳ（Operating System）を実行するプロセッサである。ＲＯＭ（Read-Only-Memory）１０２は、ＣＰＵ１０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。ＲＡＭ（Random Access Memory）１０３は、ＣＰＵ１０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【０１６７】
ＨＤＤ１０４はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。暗号演算処理手段１０５は、例えば公開鍵暗号システムにおける鍵の生成や、署名検証処理など、上述した実施例において説明した処理を実行する。
【０１６８】
暗号演算処理手段１０５は、例えば、前述の実施例で説明したように、有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成する処理を実行する。
【０１６９】
例えば、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線を適用するシステムである場合は、暗号演算処理手段１０５は、有限体Ｆｑ上定義されるＭｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとして、上述した秘密鍵ｄ、公開鍵ペアＱ，Ｒを生成する。
【０１７０】
また、Ｋｕｍｍｅｒ曲面を適用するシステムである場合は、有限体Ｆｑ上定義されるＫｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式において、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとして、上述した秘密鍵ｄ、公開鍵ペアＱ，Ｒを生成する。
【０１７１】
さらに、暗号演算処理手段１０５は、例えば、前述の実施例において説明したアルゴリズム９，アルゴリズム１０などを適用して、公開鍵暗号システムにおいて規定される署名検証処理に伴う演算を実行する。具体的には、有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑ、秘密鍵ｄを、ｄ∈Ｚ、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒが規定された公開鍵暗号方式において、ベースポイントＰと公開鍵Ｑとのスカラー倍点ｋＰ，ｌＱの加算処理、すなわち、
ｋＰ＋ｌＱ
上記演算を、入力として、Ｐ，Ｑ，ｋ，ｌの他、Ｐ，Ｑの差分値を入力とした演算を実行して擬似加算および２倍算の計算のみによって算出する。
【０１７２】
なお、暗号演算処理手段１０５は、Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線Ｅ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式においては、ベースポイントＰを、Ｐ∈Ｅ／Ｆｑとし、Ｋｕｍｍｅｒ曲面Ｋ／Ｆｑ上の離散対数問題に困難性の根拠をおく公開鍵暗号方式においては、ベースポイントＰを、Ｐ∈Ｋ／Ｆｑとして、演算処理を実行して、ｋＰ＋ｌＱを擬似加算および２倍算の計算のみによって算出する。
【０１７３】
なお、暗号演算処理手段１０５は、前述したように、アルゴリズム９、すなわち、ｋＰ＋ｌＱの演算アルゴリズムにおける入力値として適用するＰ，Ｑの差分値の算出処理として、
Ｕ＝Ｒ、および擬似加算：Ｖ＝ＶＡＤＤ（Ｐ，Ｑ，Ｒ）を実行する。
【０１７４】
なお、ここでは、暗号演算処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをＲＯＭ１０２に格納し、ＣＰＵ１０１がＲＯＭ格納プログラムを読み出して実行するように構成してもよい。メモリ（セキュアモジュール）１０６は例えば耐タンパ構造を持つメモリとして構成され、暗号処理に必要な鍵データなどの格納領域として使用可能である。なお、これらのデータは、他のメモリ領域、記憶媒体に格納することも可能である。
【０１７５】
バス１２１はＰＣＩ（Peripheral Component Internet/Interface）バス等により構成され、各モジュール、入出力インタフェース１２２を介した外部装置とのデータ転送を可能にしている。
【０１７６】
入力部１１１は、例えばキーボード、ポインティングデバイス等によって構成され、ＣＰＵ１０１に各種のコマンド、データを入力するためにユーザにより操作される。出力部１１２は、例えばＣＲＴ、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。
【０１７７】
通信部１１３はシステムの接続したエンティテイ、例えば暗号データの通信エンティテイとの通信処理を実行し、ＣＰＵ１０１の制御の下に、各記憶部から供給されたデータ、あるいはＣＰＵ１０１によって処理されたデータ、暗号化されたデータ等を送信したり、他エンティテイからのデータを受信する処理を実行する。
【０１７８】
ドライブ１１４は、フレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１５の記録再生を実行するドライブであり、各リムーバブル記録媒体１１５からのプログラムまたはデータ再生、リムーバブル記録媒体１１５に対するプログラムまたはデータ格納を実行する。
【０１７９】
各記憶媒体に記録されたプログラムまたはデータを読み出してＣＰＵ１０１において実行または処理を行なう場合は、読み出したプログラム、データはインタフェース１２２、バス１２１を介して例えば接続されているＲＡＭ１０３に供給される。
【０１８０】
上述の実施例において説明したフロー図やアルゴリズムに従った処理、例えば、鍵生成処理や、スカラー倍点の加算処理ｋＰ＋ｌＱ、署名検証処理などを実行するためのプログラムは例えばＲＯＭ１０２に格納されてＣＰＵ１０１によって処理されるか、あるいはハードディスクに格納されＨＤＤ１０４を介してＣＰＵ１０１に供給されて実行される。
【０１８１】
図４に示す暗号演算処理手段１０５について、機能別に詳細な処理ブロックとして示した図が図５である。図５に示すように、暗号演算処理手段１０５は、データの暗号化処理、復号処理、署名生成、検証等、各種暗号処理に伴う演算を実行する暗号処理演算部２０１、楕円曲線やＫｕｍｍｅｒ曲面などの暗号処理において適用する曲線や曲面などの暗号の定義生成処理を実行する楕円曲線生成部２０２、公開鍵暗号方式に適用する公開鍵、秘密鍵の生成処理を実行する公開鍵秘密鍵生成部２０３、鍵の生成、その他各種演算に用いる乱数を発生する乱数発生部２０４、暗号処理演算に適用する各種パラメータ等を記憶する記憶部２０５を有する。
【０１８２】
例えば、公開鍵暗号方式に適用する公開鍵、秘密鍵の生成処理を実行する公開鍵秘密鍵生成部２０３では、前述したように、先に、図１を参照して説明したＭｏｎｔｇｏｍｅｒｙ  Ｌａｄｄｅｒタイプの加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を持つスカラー倍算が構成可能な有限体Ｆｑ上定義される多様体Ｖ／Ｆｑおいて、
ベースポイントをＰ∈Ｖ／Ｆｑとし、
秘密鍵を、ｄ∈Ｚ、
公開鍵を、
Ｑ＝ｄＰとする。
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
として、Ｑ，Ｒの公開鍵のペアを生成する。
【０１８３】
外部から入力された平文の暗号化、暗号文の復号、または署名の生成、署名の検証処理等を実行する場合は、楕円曲線生成部２０２でまずＭｏｎｔｇｏｍｅｒｙ曲線やＫｕｍｍｅｒ曲面を生成し、公開鍵秘密鍵生成部２０３において生成した鍵を用いて、暗号処理演算部２０１において各種暗号処理を実行する。
【０１８４】
例えば、暗号処理演算部２０１は、楕円曲線生成部２０３において定義されたＭｏｎｔｇｏｍｅｒｙ曲線やＫｕｍｍｅｒ曲面に基づいて、署名生成検証など、前述のスカラー倍点の加算処理ｋＰ＋ｌＱを伴う署名検証処理など、様々な暗号処理演算を実行する。スカラー倍点の加算処理ｋＰ＋ｌＱは、上述した実施例に従った処理として実行され、擬似加算および２倍算を適用した演算として実行され署名検証を効率的に行なうことが可能となる。
【０１８５】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１８６】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１８７】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１８８】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１８９】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１９０】
上述した本発明の一実施例の構成によれば、有限体Ｆｑ上定義される多様体Ｖ／Ｆｑ上においてベースポイントＰを、Ｐ∈Ｖ／Ｆｑとした場合、
秘密鍵ｄを、ｄ∈Ｚ、
公開鍵を、２つの公開鍵ペアＱ，Ｒとして、
Ｑ＝ｄＰ、
Ｒ＝（ｄ＋１）Ｐ、または、Ｒ＝（ｄ−１）Ｐ
上記いずれかのＲからなる公開鍵ペアＱ，Ｒを生成し、公開鍵暗号システムにおいて規定される署名検証において、上記の公開鍵を適用した演算処理によって効率的な演算が可能となる。具体的には、署名検証アルゴリズムにおけるスカラー倍点の加算［ｋＰ＋ｌＱ］の算出を、専用の計算アルゴリズムや、加算手法を適用することなしに、擬似加算と２倍算のみで、実行可能として効率的な演算を実現する。
【図面の簡単な説明】
【０１９１】
【図１】Ｍｏｎｔｇｏｍｅｒｙ型楕円曲線における加法鎖（ａｄｄｉｔｉｏｎ  ｃｈａｉｎ）を示す図である。
【図２】本発明の一実施例に従った公開鍵暗号構成方法、すなわち鍵生成シーケンスについて、従来の鍵生成シーケンスと比較して説明する図である。
【図３】本発明の一実施例に従った公開鍵暗号方式におけるスカラー倍同時計算のシーケンスについて、従来の公開鍵暗号方式におけるスカラー倍同時計算シーケンスと比較して説明する図である。
【図４】暗号処理を実行する暗号処理装置構成例を示す図である。
【図５】暗号演算処理手段の構成例を示す図である。
【符号の説明】
【０１９２】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
１０５  暗号演算処理手段
１０６  メモリ
１１１  入力部
１１２  出力部
１１３  通信部
１１４  リムーバブル記憶媒体
１２１  バス
１２２  入出力インタフェース
２０１  暗号処理演算部
２０２  楕円曲線生成部
２０３  公開鍵秘密鍵生成部
２０４  乱数発生部
２０５  記憶部
【図１】
2008046295.tif 000014
【図２】
2008046295.tif 000015
【図３】
2008046295.tif 000016
【図４】
2008046295.tif 000017
【図５】
2008046295.tif 000018