(57)【特許請求の範囲】
【請求項１】
群Ｇの元Ｐ、Ｑ、整数ｋを離散対数検証装置に入力してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、
Ｐの位数ｑに対して、
ｋ1 ＝ｋ2ｋ ｍｏｄ ｑ
なる関係式を満たす整数ｋ1 、ｋ2 をｋ1 、ｋ2生成装置によって求める過程と、
上記Ｐ、Ｑ、ｋ1 、ｋ2に対し、ｋ1Ｐ−ｋ2Ｑを、ｋ1Ｐ−ｋ2Ｑ演算器によって求める過程と、
上記ｋ1Ｐ−ｋ2Ｑ演算器の演算結果が群Ｇの元の加法の単位元Ｏであるか否かを比較装置によって検査し、単位元であれば上記比較装置によって「成り立っている」を出力し、単位元でなければ「成り立っていない」を出力する過程を有する、
ことを特徴とする離散対数検証方法。
【請求項２】
請求項１に記載される離散対数検証方法において、
上記整数ｋ1 、ｋ2 を求める過程は、最短ベクトル問題近似装置による最短ベクトル問題近似解を求める方法、拡張ユークリッドの互除法装置によるユークリッドの互除法の内の何れかの方法を採用して求めることを特徴とする離散対数検証方法。
【請求項３】
群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証装置であり、Ｐの位数ｑに対してｋ1＝ｋ2ｋ ｍｏｄ ｑなる関係式を満足する整数ｋ1 、ｋ2 を求め、ｋ2Ｑ＝ｋ1Ｐを検査して、この式の関係が満足していれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成した離散対数検証装置において、
整数ｋ、ｑが入力され、整数ｋ1、ｋ2を生成出力するｋ1、ｋ2生成装置を具備し、
元Ｐ、Ｑが入力されると共にｋ1、ｋ2生成装置により生成されたｋ1、ｋ2が入力され、ｋ1Ｐとｋ2Ｑの差を発生出力するｋ1Ｐ−ｋ2Ｑ演算器を具備し、
上記ｋ1Ｐ−ｋ2Ｑ演算器の演算結果が入力され、その入力された群Ｇの元ｋ1Ｐ−ｋ2Ｑが加法の単位元Ｏであるか否かを検査し、ＯであればＹｅｓを出力し、ＯでなければＮｏを出力する比較装置を具備することを特徴とする離散対数検証装置。
【請求項４】
請求項３に記載される離散対数検証装置において、
ｋ1、ｋ2生成装置は最短ベクトル問題疑似装置、或いは拡張ユークリッド互除法装置により形成したことを特徴とする離散対数検証装置。
【請求項５】
群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、Ｐの位数ｑに対して、
ｋ1 ＝ｋ2ｋ ｍｏｄ ｑ
なる関係式を満たす整数ｋ1 、ｋ2 を求め、
ｋ2 Ｑ＝ｋ1 Ｐ                （１）
を検査し、式（１）の関係が満足されていれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成される離散対数検証装置のコンピュータに対して、
ｋ1、ｋ2生成装置が入力された整数ｋ、ｑに基づいて整数ｋ1、ｋ2を生成出力すべき指令をし、
ｋ1Ｐ−ｋ2Ｑ演算器が入力されたＰ、Ｑ、ｋ1、ｋ2 に基づいてｋ1Ｐとｋ2Ｑの差を発生出力すべき指令をし、
比較装置がｋ1Ｐ−ｋ2Ｑ演算器より入力された群の元が加法の単位元Ｏであるか否かを検査すべき指令をすることを特徴とする離散対数検証プログラム。
【請求項６】
群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、Ｐの位数ｑに対して、
ｋ1 ＝ｋ2ｋ ｍｏｄ ｑ
なる関係式を満たす整数ｋ1 、ｋ2 を求め、
ｋ2 Ｑ＝ｋ1 Ｐ                （１）
を検査し、式（１）の関係が満足されていれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成される離散対数検証装置のコンピュータに対して、
ｋ1、ｋ2生成装置が入力された整数ｋ、ｑに基づいて整数ｋ1、ｋ2を生成出力すべき指令をし、
ｋ1Ｐ−ｋ2Ｑ演算器が入力されたＰ、Ｑ、ｋ1、ｋ2 に基づいてｋ1Ｐとｋ2Ｑの差を発生出力すべき指令をし、
比較装置がｋ1Ｐ−ｋ2Ｑ演算器より入力された群の元が加法の単位元Ｏであるか否かを検査すべき指令をする離散対数検証プログラムを記憶したことを特徴とするプログラム記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体に関し、特に、「Ｑ＝ｋＰの関係が成り立っているか否か」という命題をこれとは別の等価な命題である「ｋ2Ｑ＝ｋ1Ｐの関係が成り立っているか否か」に置き換える情報セキュリティ技術において使用される群、環上のべき乗或いはべき加算演算を実行する離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体に関する。
【０００２】
【従来の技術】
近年、インターネットの如き情報伝送技術が発達し、公衆電話回線を介して情報を伝送がなされている。公衆電話回線は誰でも利用することができるものであるところから、中継される情報が盗聴、改ざんされる恐れに曝されている。盗聴の如き悪意のある行為に対抗するは情報伝送に際してセキュリティ技術を適用することが有効である。
従来、情報セキュリティ技術として公開鍵暗号方法の概念が提唱された。この公開鍵暗号方法を実施するに際して、べき乗剰余演算、べき加算演算がよく使用されている。べき加算演算とは、入力された整数ｋ、群の元Ｐ、元Ｐの位数ｑにより、
Ｑ＝ｋＰ
なる値Ｑを求める演算である。
【０００３】
以上の検査において、整数ｋおよびｑが大きい数である場合、べき加算演算はｋ、ｑの大きさの３乗に比例する演算コストを要する。演算コストとは、プログラムについてみると時間が大きいことを意味し、装置についてみると全体の回路その他の構造の規模が大きいことを意味する。
一方、この公開鍵暗号方法を実施するに際して、群Ｇの元Ｐ、Ｑ、整数ｋおよびｑを入力し、この入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査し、｛成り立っている、成り立っていない｝の何れかを出力するべき加算検査関数もよく使用される。
【０００４】
従来は、べき加算関数を使用してｋＰを演算し、Ｑと等しいか否かを検査することを実行している。これを図７に示される離散対数検証装置を参照して説明する。
図７において、離散対数検証装置はコンピュータを主要な構成部材として構成されている。１０１はべき加算装置であり、１０２は比較装置である。ここで、べき加算装置１０１はべき加算関数を使用し、ｋＰを演算出力する。比較装置１０２は、べき加算装置１０１の演算結果であるｋＰおよびＱを入力して両者が等しいか否かを検査し、等しければＹｅｓを出力し、等しくなければＮｏを出力する。
図８は図７の離散対数検証装置の動作フローチャートである。
【０００５】
【発明が解決しようとする課題】
上述した通りのべき加算検査関数は演算コストが高い。このべき加算検査関数には、べき加算関数を使用するところから、べき加算関数と同等以上のコストを要する問題がある。
この発明は、「Ｑ＝ｋＰの関係が成り立っているか否か」という命題をこれとは別の等価な命題である「ｋ2Ｑ＝ｋ1Ｐの関係が成り立っているか否か」に置き換えることにより上述の高コストの問題を解消した離散対数検証方法、この方法を実施する装置、プログラムおよびプログラムを記憶した記憶媒体を提供するものである。
【０００６】
【課題を解決するための手段】
請求項１：群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、Ｐの位数ｑに対して、
ｋ1 ＝ｋ2ｋ ｍｏｄ ｑ
なる関係式を満たす整数ｋ1 、ｋ2 を求め、
ｋ2 Ｑ＝ｋ1 Ｐ                （１）
を検査し、式（１）の関係が満足していれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力する離散対数検証方法を構成した。
【０００７】
そして、請求項２：請求項１に記載される離散対数検証方法において、整数ｋ1 、ｋ2 を最短ベクトル問題近似解を求める方法、ユークリッドの互除法、ＬＬＬ法の内の何れかの方法を採用して求める離散対数検証方法を構成した。
また、請求項３：群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証装置であり、Ｐの位数ｑに対し、ｋ1＝ｋ2 ｋｍｏｄ ｑなる関係式を満足する整数ｋ1 、ｋ2 を求め、ｋ2Ｑ＝ｋ1Ｐを検査して、この式の関係が満足していれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成した離散対数検証装置において、整数ｋ、ｑが入力され、整数ｋ1、ｋ2 を生成出力するｋ1、ｋ2生成装置２０１を具備し、元Ｐ、Ｑが入力されると共にｋ1、ｋ2生成装置１により生成されたｋ1、ｋ2が入力され、ｋ1Ｐとｋ2Ｑの差を発生出力するｋ1Ｐ−ｋ2Ｑ演算器２０２を具備し、入力された群の元が加法の単位元Ｏであるか否かを検査し、ＯであればＹｅｓを出力し、ＯでなければＮｏを出力する比較装置２０３を具備する離散対数検証装置を構成した。
【０００８】
更に、請求項４：請求項３に記載される離散対数検証装置において、ｋ1、ｋ2生成装置２０１は最短ベクトル問題疑似装置３０１、或いは拡張ユークリッド互除法装置４０１により形成した離散対数検証装置を構成した。
ここで、請求項５：群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、Ｐの位数ｑに対して、ｋ1 ＝ｋ2ｋ ｍｏｄ ｑなる関係式を満たす整数ｋ1 、ｋ2 を求め、
ｋ2 Ｑ＝ｋ1 Ｐ        （１）
を検査し、式（１）の関係が満足されていれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成される離散対数検証装置のコンピュータに対して、ｋ1、ｋ2生成装置２０１が入力された整数ｋ、ｑに基づいて整数ｋ1、ｋ2を生成出力すべき指令をし、ｋ1Ｐ−ｋ2Ｑ演算器２０２が入力されたＰ、Ｑ、ｋ1、ｋ2 に基づいてｋ1Ｐとｋ2 Ｑとを発生出力すべき指令をし、比較装置２０３が入力された群の元が加法の単位元Ｏであるか否かを検査すべき指令をする離散対数検証プログラムを構成した。
【０００９】
そして、請求項６：群Ｇの元Ｐ、Ｑ、整数ｋの入力に対してＱ＝ｋＰなる関係が成り立っているか否かを検査する離散対数検証方法において、Ｐの位数ｑに対して、ｋ1 ＝ｋ2ｋ ｍｏｄ ｑなる関係式を満たす整数ｋ1 、ｋ2 を求め、
ｋ2 Ｑ＝ｋ1 Ｐ                （１）
を検査し、式（１）の関係が満足されていれば「成り立っている」を出力し、満足していなければ「成り立っていない」を出力するコンピュータを主要な構成部材として構成される離散対数検証装置のコンピュータに対して、ｋ1、ｋ2生成装置２０１が入力された整数ｋ、ｑに基づいて整数ｋ1、ｋ2を生成出力すべき指令をし、ｋ1Ｐ−ｋ2Ｑ演算器２０２が入力されたＰ、Ｑ、ｋ1 、ｋ2 に基づいてｋ1Ｐとｋ2Ｑとを発生出力すべき指令をし、比較装置２０３が入力された群の元が加法の単位元Ｏであるか否かを検査すべき指令をする離散対数検証プログラムを記憶したプログラム記憶媒体を構成した。
【００１０】
【発明の実施の形態】
最短ベクトル問題を解くアルゴリズムにＬＬＬアルゴリズム、その他のアルゴリズムがある（A Course in Computational Algebraic Number Theory（ISBN  3-540-55640-0）のp.84〜ｐ.108 2.6 Lattice Reduction Algorithms および Applications of the LLL Algorithm 参照 ）。これらのアルゴリズムは複数のベクトル（ｖ1 、ｖ2 、・・・・、ｖn ）の入力に対して線形結合（ａ1ｖ1、ａ2ｖ2、・・・・、ａnｖn）で表現することができる値の内のノルムの小さいものを出力するものである。この様なアルゴリズムを使用することにより、或る整数ｑ、ｋに対して、
ａｑ＝ｋ1 −ｋ2 ｋ
を満足する整数ａ、ｋ1 、ｋ2 を求めることができる。但し、ｋ1 、ｋ2 はｋより小さい整数であり、一例として、０≦｜ｋ1｜、｜ｋ2｜≦√（ｋ）である。
【００１１】
Ｑ＝ｋＰの例において、予め、Ｐの位数がｑであることがわかっている場合、この整数ｋ1 、ｋ2 使用すると、Ｑ＝ｋＰの検査を、
ｋ2Ｑ＝ｋ1Ｐ        式（１）
の検査に置き換えることができる。
式（１）を演算するコストはｋ1 、ｋ2 の大きさに比例する。従って、ｋ1 、ｋ2 の大きさがＱ＝ｋＰの式のｋより何れも小さい場合、式（１）の検査を行うことにより、Ｑ＝ｋＰの検査を直接に実行する従来例と比較して、小さいコストで検査を実行することができる。
【００１２】
以上は最短ベクトル問題を解くアルゴリズムを使用して検査のコストを小さくする例であるが、他に適当なｋ1 、ｋ2 を求めるアルゴリズムがあれば、これを使用して同様に検査のコストを小さくすることができる。
【００１３】
【実施例】
この発明の実施の形態を図１の実施例を参照して具体的に説明するに、離散対数検証装置はコンピュータを主要な構成部材として構成される。ここで、２０１はｋ1、ｋ2生成装置、２０２はｋ1Ｐ−ｋ2Ｑ演算器、２０３は比較装置である。ｋ1、ｋ2生成装置１には整数ｋ、Ｐの位数がｑが入力される。ｋ1Ｐ−ｋ2Ｑ演算器２０２には、Ｐ、Ｑが入力されると共にｋ1、ｋ2生成装置１により生成されたｋ1、ｋ2が入力される。ここで、Ｐ、Ｑは群の元、ｑはＰの位数であり、ｋ、ｑは整数である。ｑはＰ、Ｑの位数の整数倍である。この離散対数検証装置は、入力されたｋ、ｑ、Ｐ、Ｑに対してｋ2Ｑ＝ｋ1Ｐなる関係が成り立っているか否かを判定し、成り立っていれば比較装置２０３からＹｅｓを出力し、成り立っていなければＮｏを出力する。
【００１４】
対象とする群は加法群、乗法群の何れも対象とすることができるが、図１は加法群の場合を示す。ｋ1、ｋ2生成装置２０１は、図３に示される最短ベクトル問題疑似装置３０１により構成することができる。ｋ1、ｋ2生成装置２０１は、また、図５に示される拡張ユークリッド互除法装置により構成することができる。なお、図３および図５については後で各別に説明される。ｋ1、ｋ2生成装置２０１は、入力されたｋ、ｑからｋ1−ｋ2ｋがｑで割り切れる整数ｋ1、ｋ2を出力する。ｋ1Ｐ−ｋ2Ｑ演算器２０２は、入力された整数ｋ1、ｋ2、群の元Ｐ、Ｑに基づいてｋ1Ｐ−ｋ2Ｑを求める。比較装置２０３は入力された群の元が加法の単位元Ｏであるか否かを検査し、ＯであればＹｅｓを出力し、ＯでなければＮｏを出力する。
【００１５】
図２は図１の離散対数検証装置の動作フローチャートである。
図３を参照して他の実施例を説明するに、これはｋ1、ｋ2生成装置２０１を最短ベクトル問題疑似装置３０１により形成した実施例である。最短ベクトル問題疑似装置３０１はＬＬＬ法に基づいて構成することができる。離散対数検証装置１において、入力された整数ｋ、ｑに基づいて、２個のベクトル（ｋ、−１）、（ｑ、０）を形成し、これらを最短ベクトル問題疑似装置３０１に入力する。最短ベクトル問題疑似装置３０１は、入力された２個のベクトル（ｋ、−１）、ベクトル（ｑ、０）の線形結合で表現することができるベクトルの内のノルムの小さいベクトル（ｋ1 、ｋ2 ）を出力する。このベクトルｋ1 、ｋ2 はｋ1−ｋ2ｋがｑの倍数とされる。図３の離散対数検証装置１の動作フローチャートは図４に示される。
【００１６】
図５を参照して更なる実施例を説明するに、これはｋ1、ｋ2生成装置２０１を拡張ユークリッド互除法装置４０１により形成した離散対数検証装置１の実施例である。４０２は比較装置である。
この離散対数検証装置１において、整数ｋ、ｑは拡張ユークリッド互除法装置４０１に入力される。拡張ユークリッド互除法装置４０１は、
ｓiｑ＋ｔiｋ＝ｒi        但し、０≦ｉ
０≦ｒi+1＜ｒi           但し、０≦ｉ
｜ｓi｜＜｜ｓi+1｜       但し、１≦ｉ
｜ｔi｜＜｜ｔi+1｜       但し、０≦ｉ
ｒi-1｜ｔi｜＋ｒi｜ｔi-1｜＝ｎ       但し、１≦ｉ
を満足する系列｛ｓi、ｔi、ｒi｝０、  但し、ｉ＝０、１、２、・・・・・・
を出力する。比較装置４０２はこれら系列の内の√（ｑ）≦ｒm を満足する最小のｍを選択し、（ｒm+1、ｔm+1）を出力する。ここで、ｒi 、ｔiはｒiｋ−ｔi がｑの倍数となる。図５の離散対数検証装置１の動作フローチャートは図６に示される。
【００１７】
以上の説明は加法群の場合についての説明であるが、この説明は乗法群についても同様に適用することができる。
【００１８】
【発明の効果】
以上の通りであって、最短ベクトル問題を解くアルゴリズムを使用することにより、或る整数ｑ、ｋに対して、ａｑ＝ｋ1 −ｋ2 ｋを満足する整数ａ、ｋ1 、ｋ2 を求めることができる。ここで、予め、Ｐの位数がｑであることがわかっている場合、この整数ｋ1 、ｋ2 使用すると、Ｑ＝ｋＰの式の検査をｋ2Ｑ＝ｋ1Ｐの式の検査に置き換えることができる。ｋ2Ｑ＝ｋ1Ｐを演算するコストはｋ1 、ｋ2 の大きさに比例する。従って、ｋ1 、ｋ2 の大きさが、何れも、Ｑ＝ｋＰの式のｋより小さい場合、ｋ2Ｑ＝ｋ1Ｐの検査を行うことにより、Ｑ＝ｋＰの検査を直接に実行する従来例と比較して、小さいコストで検査を実行することができる。ｋ1 、ｋ2 の大きさをｋの半分程度にすることにより従来例と比較して２倍程度にべき加算検査関数の検査を高速化することができる。数値により具体的に説明すると、ｋ＝２160程度の大きさの数値とし、ｋ1 、ｋ2＝２80程度の大きさの数値とする場合、コンピュータにおいて処理されるｋ1 、ｋ2 のビット数はｋのビット数と比較して１／２程度であるところから、検査速度は２倍程度に高速化することができる訳である。
【００１９】
そして、この発明は、剰余環上の暗号の他に楕円曲線暗号、超楕円曲線暗号、Ｃａｂ曲線の暗号その他一般の群の上で構成することができる。この発明は、また、暗号、署名において行なわれる検査一般に適用することができて汎用性は高い。
【図面の簡単な説明】
【図１】実施例を説明する図。
【図２】最短ベクトル問題型の実施例を説明する図。
【図３】拡張ユークリッド互除法型の実施例を説明する図。
【図４】離散対数検証装置の動作フローチャート。
【図５】最短ベクトル問題型の実施例の動作フローチャート。
【図６】拡張ユークリッド互除法型の実施例の動作フローチャート。
【図７】従来例を説明する図。
【図８】従来例の動作フローチャート。
【符号の説明】
１  離散対数検証装置          ２０１  ｋ1、ｋ2生成装置
２０２  ｋ1Ｐ−ｋ2Ｑ演算器        ２０３  比較装置
３０１  最短ベクトル問題疑似装置  ４０１  拡張ユークリッド互除法装置
４０２  比較装置
【図１】
0003768888.tif 000002
【図２】
0003768888.tif 000003
【図３】
0003768888.tif 000004
【図４】
0003768888.tif 000005
【図５】
0003768888.tif 000006
【図６】
0003768888.tif 000007
【図７】
0003768888.tif 000008
【図８】
0003768888.tif 000009