説明

素数算出装置、鍵発行システム及び素数算出方法

正当に生成されたものであるか否かを確認できる素数を算出する素数算出装置を提供する。 素数算出装置は、乱数を生成し、管理識別子に前記乱数を乗じて乗算値Rを算出し、2×w×素数q+1=検証値 (mod 管理情報)を満たすwについて、N=2×(乗算値R+w)×素数q+1により、素数候補Nを算出する。次に、算出された素数候補Nが素数であるか否かを判定し、素数であると判定される場合に、算出された素数候補Nを素数として出力する。


Notice: Undefined index: DEJ in /mnt/www/gzt_disp.php on line 298

【特許請求の範囲】
【請求項1】
既知の素数qより大きい素数候補Nを算出して素数判定する素数算出装置であって、
既知の素数q、生成すべき素数に対応し奇数の管理情報及び所定の検証値を記憶している情報記憶手段と、
乱数を生成する乱数生成手段と、
素数q、前記管理情報及び前記検証値を読み出し、前記管理情報に前記乱数を乗じて乗算値Rを算出し、2×w×素数q+1=検証値(mod管理情報)を満たすwについて、N=2×(乗算値R+w)×素数q+1により、素数候補Nを算出する候補算出手段と、
算出された素数候補Nが素数であるか否かを判定する素数判定手段と、
素数であると判定される場合に、算出された素数候補Nを素数として出力する出力手段と
を備えることを特徴とする素数算出装置。
【請求項2】
前記情報記憶手段に記憶されている前記検証値は、1であり、
前記候補算出手段は、N=2×乗算値R×素数q+1により、素数候補Nを算出する
ことを特徴とする請求項1に記載の素数算出装置。
【請求項3】
前記素数判定手段は、
前記素数候補Nに対して、2N−1=1 mod Nを満たすか否かを判定する第1判定部と、
前記第1判定部により満たすと判定される場合に、さらに、素数候補N及び乗算値Rに対して、22R≠1 mod Nを満たすか否かを判定し、満たすと判定するときに、素数候補Nが素数であると決定し、又はGCD(22R−1、N)=1を満たすか否かを判定し、満たすと判定するときに、素数候補Nが素数であると決定する第2判定部と
を含むことを特徴とする請求項1に記載の素数算出装置。
【請求項4】
前記情報記憶手段は、さらに、既知の素数g及び一意の発行識別子を記憶しており、
前記素数算出装置は、さらに、
前記素数g及び発行識別子を用いて、一意に素数を生成する素数生成関数を施して、素数gpを生成し、生成した素数gpを出力する素数生成手段と、
生成した素数gpを、前記管理情報として前記情報記憶手段に書き込む書込手段と
を含むことを特徴とする請求項1に記載の素数算出装置。
【請求項5】
前記素数生成手段は、
前記発行識別子と変数cとの結合体を生成し、
素数候補=2×素数g×f(結合体)+1を算出し、
算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力し、
変数cは、0又は正整数である
ことを特徴とする請求項4に記載の素数算出装置。
【請求項6】
前記素数生成手段は、
生成した素数候補が、素数でないと判定される場合に、変数cに1の値を加算し、
前記発行識別子と、1の値が加算された変数cとの結合体を生成し、
素数候補=2×素数g×f(結合体)+1を算出し、
算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力する
ことを特徴とする請求項5に記載の素数算出装置。
【請求項7】
前記素数算出装置は、さらに、
前記素数判定手段により素数であると判定されるまで、前記乱数生成手段、前記候補算出手段及び前記素数判定手段に対して、乱数の生成と、素数候補Nの算出と、前記判定とを繰り返すように制御する繰返制御手段
を含むことを特徴とする請求項1に記載の素数算出装置。
【請求項8】
前記素数算出装置は、さらに、
既知の素数pを記憶している前段素数記憶手段と、
乱数R’を算出する前段乱数算出手段と、
前記素数p及び生成された前記乱数R’を用いて、N’=2×乱数R’×素数p+1により、素数候補N’を算出する前段候補算出手段と、
算出された素数候補N’が素数であるか否かを判定する前段素数判定手段と、
素数であると判定される場合に、算出された素数候補N’を、前記素数qとして、前記情報記憶手段に書き込む前段書込手段と、
前記前段素数判定手段により素数であると判定されるまで、前記前段乱数算出手段、前記前段候補算出手段及び前記前段素数判定手段に対して、乱数R’の生成と、素数候補N’の算出と、前記判定とを繰り返すように制御する前段繰返制御手段
を含むことを特徴とする請求項7に記載の素数算出装置。
【請求項9】
前記素数算出装置は、RSA暗号の公開鍵及び秘密鍵を生成する鍵生成装置であり、
前記素数算出装置は、さらに、
算出された素数Nを用いて、RSA暗号の公開鍵を生成する公開鍵生成手段と、
生成された公開鍵を用いて、RSA暗号の秘密鍵を生成する秘密鍵生成手段とを含む
ことを特徴とする請求項7に記載の素数算出装置。
【請求項10】
前記公開鍵生成手段は、前記繰返制御手段に対して、新たに素数N’が得られるように指示し、前記素数N及び新たに得られた素数N’を用いて、n=素数N×素数N’により、数nを算出し、乱数eを生成し、
算出された数nと生成された乱数eとの組が前記公開鍵であり、
前記秘密鍵生成手段は、e×d=1 mod Lを満たすdを算出し、
Lは、素数N−1と素数N’−1との最小公倍数であり、
算出されたdが前記秘密鍵である
ことを特徴とする請求項9に記載の素数算出装置。
【請求項11】
前記情報記憶手段は、さらに、前記検証値とは異なる別の検証値を記憶しており、
前記公開鍵生成手段は、前記繰返制御手段に対して、新たに素数N’が得られるように指示し、
前記候補算出手段は、N’=2×乗算値R×素数q+前記別の検証値により、素数候補N’を算出し、
前記公開鍵生成手段は、前記素数N及び新たに得られた素数N’を用いて、n=素数N×素数N’により、数nを算出し、乱数eを生成し、
算出された数nと生成された乱数eとの組が前記公開鍵であり、
前記秘密鍵生成手段は、e×d=1 mod Lを満たすdを算出し、
Lは、素数N−1と素数N’−1との最小公倍数であり、
算出されたdが前記秘密鍵である
ことを特徴とする請求項9に記載の素数算出装置。
【請求項12】
前記素数算出装置は、端末装置に対して、RSAの秘密鍵及び公開鍵を生成し、発行する鍵発行サーバ装置であり、
前記素数算出装置は、さらに、
生成した前記秘密鍵を、端末装置に対して出力する鍵出力手段と、
生成した前記公開鍵を、公開する公開手段とを含む
ことを特徴とする請求項9に記載の素数算出装置。
【請求項13】
前記素数算出装置は、さらに、
前記端末装置を一意に識別する端末装置識別子を取得する識別子取得手段と、
取得した端末装置識別子を含む前記管理情報を生成する管理情報生成手段と、
生成した前記管理情報を前記識別子記憶手段に書き込む書込手段と
含むことを特徴とする請求項12に記載の素数算出装置。
【請求項14】
前記素数算出装置は、さらに、
鍵発行サーバ装置としての当該素数算出装置を一意に識別するサーバ識別子を予め記憶しているサーバ識別子記憶手段を含み、
前記管理情報生成手段は、さらに、前記サーバ識別子記憶手段から前記サーバ識別子を読み出し、読み出したサーバ識別子をさらに含む前記管理情報を生成する
ことを特徴とする請求項13に記載の素数算出装置。
【請求項15】
請求項1の素数算出装置により出力された素数Nを検証する素数検証装置であって、
前記管理情報及び前記検証値を記憶している情報記憶手段と、
素数Nから前記検証値を減じて素数減算値を得る減算手段と、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断手段と、
割り切れると判断される場合に、前記素数Nの利用を許可し、割り切れないと判断する場合に、前記素数Nの利用を禁止する制御手段と
を備えることを特徴とする素数検証装置。
【請求項16】
前記素数算出装置は、1である前記検証値を記憶しており、N=2×乗算値R×素数q+1により、素数候補Nを算出し、
前記情報記憶手段に記憶されている前記検証値は、1であり、
前記減算手段は、素数Nから1を減じて減算値を得る
ことを特徴とする請求項15に記載の素数検証装置。
【請求項17】
前記素数算出装置は、さらに、既知の素数g及び一意の発行識別子を記憶しており、前記素数g及び発行識別子を用いて、一意に素数を生成する素数生成関数を施して、素数gpを生成し、生成した素数gpを出力し、生成した素数gpを、前記管理情報として前記情報記憶手段に書き込み、
前記情報記憶手段は、さらに、前記素数g及び前記発行識別子を記憶しており、
前記素数検証装置は、さらに、
前記素数g及び発行識別子を用いて、一意に素数を生成する素数生成関数を施して、素数gpを生成し、生成した素数gpを出力する素数生成手段と、
生成した素数gpを、前記管理情報として前記情報記憶手段に書き込む書込手段と
を含むことを特徴とする請求項15に記載の素数検証装置。
【請求項18】
前記素数算出装置は、前記発行識別子と変数cとの結合体を生成し、素数候補=2×素数g×f(結合体)+1を算出し、算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力し、変数cは、0又は正整数であり、
前記素数生成手段は、
前記発行識別子と変数cとの結合体を生成し、
素数候補=2×素数g×f(結合体)+1を算出し、
算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力する
ことを特徴とする請求項17に記載の素数検証装置。
【請求項19】
前記素数算出装置は、生成した素数候補が、素数でないと判定される場合に、変数cに1の値を加算し、前記発行識別子と、1の値が加算された変数cとの結合体を生成し、素数候補=2×素数g×f(結合体)+1を算出し、算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力し、
前記素数生成手段は、
生成した素数候補が、素数でないと判定される場合に、変数cに1の値を加算し、
前記発行識別子と、1の値が加算された変数cとの結合体を生成し、
素数候補=2×素数g×f(結合体)+1を算出し、
算出した素数候補が、素数であるか否かを判定し、素数であると判定される場合に、素数候補を、前記素数gpとして出力する
ことを特徴とする請求項18に記載の素数検証装置。
【請求項20】
前記素数算出装置は、RSA暗号の公開鍵及び秘密鍵を生成する鍵生成装置であり、さらに、算出された素数Nを用いて、RSA暗号の公開鍵を生成し、生成された公開鍵を用いて、RSA暗号の秘密鍵を生成し、
前記素数検証装置は、前記公開鍵を検証する鍵検証装置であり、
前記素数検証装置は、さらに、
前記公開鍵を取得する取得手段と、
取得した前記公開鍵の正当性を検証する検証手段と
を含むことを特徴とする請求項15に記載の素数検証装置。
【請求項21】
前記素数算出装置は、新たに素数N’を得、前記素数N及び新たに得られた素数N’を用いて、n=素数N×素数N’により、数nを算出し、乱数eを生成し、算出された数nと生成された乱数eとの組が前記公開鍵であり、e×d=1 mod Lを満たすdを算出し、Lは、素数N−1と素数N’−1との最小公倍数であり、算出されたdが前記秘密鍵であり、
前記取得手段は、前記公開鍵として、数nと乱数eとの組を取得し、
前記検証手段は、
取得した数nから、前記検証値の二乗値を減じて公開鍵減算値を得る減算部と、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断部と、
割り切れると判断される場合に、前記公開鍵の出力を許可し、割り切れないと判断する場合に、前記公開鍵Nの出力を禁止する制御手段と
を含むことを特徴とする請求項20に記載の素数検証装置。
【請求項22】
前記素数算出装置は、さらに、前記検証値とは異なる別の検証値を記憶しており、N=2×乗算値R×素数q+前記別の検証値により、素数候補N’を算出することにより、新たに素数N’を得、前記素数N及び新たに得られた素数N’を用いて、n=素数N×素数N’により、数nを算出し、乱数eを生成し、算出された数nと生成された乱数eとの組が前記公開鍵であり、e×d=1 mod Lを満たすdを算出し、Lは、素数N−1と素数N’−1との最小公倍数であり、算出されたdが前記秘密鍵であり、
前記情報記憶手段は、前記別の検証値を記憶しており、
前記取得手段は、前記公開鍵として、数nと乱数eとの組を取得し、
前記検証手段は、
前記検証値と前記別の検証値を乗じて、乗算値を得、取得した数nから、前記乗算値を減じて公開鍵減算値を得る減算部と、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断部と、
割り切れると判断される場合に、前記公開鍵の出力を許可し、割り切れないと判断する場合に、前記公開鍵Nの出力を禁止する制御手段と
を含むことを特徴とする請求項20に記載の素数検証装置。
【請求項23】
前記素数検証装置は、鍵検証サーバ装置であり、
前記取得手段は、端末装置に対してRSAの公開鍵及び秘密鍵を生成する鍵発行サーバ装置から、前記公開鍵を取得する
ことを特徴とする請求項20に記載の素数検証装置。
【請求項24】
前記情報記憶手段に記憶されている前記管理情報は、前記端末装置を一意に識別する端末装置識別子を含み、
前記判断手段は、得られた素数減算値が、前記端末装置識別子を含む前記管理情報で割り切れるか否かを判断する
ことを特徴とする請求項23に記載の素数検証装置。
【請求項25】
前記情報記憶手段に記憶されている前記管理情報は、鍵発行サーバ装置としての前記素数算出装置を一意に識別するサーバ識別子を含み、
前記判断手段は、得られた素数減算値が、前記サーバ識別子を含む前記管理情報で割り切れるか否かを判断する
ことを特徴とする請求項24に記載の素数検証装置。
【請求項26】
前記素数検証装置は、公開鍵証明書発行サーバ装置であって、さらに、
前記検証手段により、前記公開鍵が正当であると認定された場合に、少なくとも前記公開鍵を含む公開鍵情報にデジタル署名を施して、署名データを生成し、少なくとも前記署名データ及び前記公開鍵を含む公開鍵証明書を生成する証明書生成手段と、
生成した公開鍵証明書を出力する証明書出力手段と
を含むことを特徴とする請求項23に記載の素数検証装置。
【請求項27】
端末装置と、前記端末装置に対して、RSAの秘密鍵及び公開鍵を生成し、発行する鍵発行サーバ装置とから構成される鍵発行システムであって、
前記鍵発行サーバ装置は、
既知の素数q、生成すべき素数に対応する管理情報及び所定の検証値を記憶している情報記憶手段と、
乱数を生成する乱数生成手段と、
素数q、前記管理情報及び前記検証値を読み出し、前記管理情報に前記乱数を乗じて乗算値Rを算出し、N=2×乗算値R×素数q+検証値により、素数候補Nを算出する候補算出手段と、
算出された素数候補Nが素数であるか否かを判定する素数判定手段と、
素数であると判定される場合に、算出された素数候補Nを素数として出力する出力手段と、
前記素数判定手段により素数であると判定されるまで、前記乱数生成手段、前記候補算出手段及び前記素数判定手段に対して、乱数の生成と、素数候補Nの算出と、前記判定とを繰り返すように制御する繰返制御手段と、
出力された素数Nを用いて、RSA暗号の公開鍵を生成する公開鍵生成手段と、
生成された公開鍵を用いて、RSA暗号の秘密鍵を生成する秘密鍵生成手段と、
生成した前記秘密鍵を、端末装置に対して出力する鍵出力手段と、
生成した前記公開鍵を、公開する公開手段とを含み、
前記端末装置は、前記秘密鍵を取得して記憶し、記憶している秘密鍵を利用する
ことを特徴とする鍵発行システム。
【請求項28】
前記鍵発行サーバ装置は、新たに素数N’を得、前記素数N及び新たに得られた素数N’を用いて、n=素数N×素数N’により、数nを算出し、乱数eを生成し、算出された数nと生成された乱数eとの組が前記公開鍵であり、e×d=1 mod Lを満たすdを算出し、Lは、素数N−1と素数N’−1との最小公倍数であり、算出されたdが前記秘密鍵であり、
前記鍵発行システムは、さらに、
前記鍵発行サーバ装置から、前記公開鍵として、数nと乱数eとの組を取得する取得手段と、
取得した前記公開鍵の正当性を検証する検証手段とを備える鍵検証サーバ装置を含み、
前記検証手段は、
取得した数nから、前記検証値の二乗値を減じて公開鍵減算値を得る減算部と、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断部と、
割り切れると判断される場合に、前記公開鍵の出力を許可し、割り切れないと判断する場合に、前記公開鍵Nの出力を禁止する制御手段と
を含むことを特徴とする請求項29に記載の鍵発行システム。
【請求項29】
既知の素数q、生成すべき素数に対応し奇数の管理情報及び所定の検証値を記憶している情報記憶手段を備え、既知の素数qより大きい素数候補Nを算出して素数判定する素数算出装置で用いられる素数算出方法であって、
乱数を生成する乱数生成ステップと、
素数q、前記管理情報及び前記検証値を読み出し、前記管理情報に前記乱数を乗じて乗算値Rを算出し、2×w×素数q+1=検証値(mod管理情報)を満たすwについて、N=2×(乗算値R+w)×素数q+1により、素数候補Nを算出する候補算出ステップと、
算出された素数候補Nが素数であるか否かを判定する素数判定ステップと、
素数であると判定される場合に、算出された素数候補Nを素数として出力する出力ステップと
を含むことを特徴とする素数算出方法。
【請求項30】
既知の素数q、生成すべき素数に対応し奇数の管理情報及び所定の検証値を記憶している情報記憶手段を備え、既知の素数qより大きい素数候補Nを算出して素数判定する素数算出装置で用いられる素数算出用のコンピュータプログラムであって、
乱数を生成する乱数生成ステップと、
素数q、前記管理情報及び前記検証値を読み出し、前記管理情報に前記乱数を乗じて乗算値Rを算出し、2×w×素数q+1=検証値(mod管理情報)を満たすwについて、N=2×(乗算値R+w)×素数q+1により、素数候補Nを算出する候補算出ステップと、
算出された素数候補Nが素数であるか否かを判定する素数判定ステップと、
素数であると判定される場合に、算出された素数候補Nを素数として出力する出力ステップと
を含むことを特徴とするコンピュータプログラム。
【請求項31】
前記コンピュータプログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項30に記載のコンピュータプログラム。
【請求項32】
前記コンピュータプログラムは、
搬送波に乗せられて送信される
ことを特徴とする請求項30に記載のコンピュータプログラム。
【請求項33】
請求項1の素数算出装置により出力された素数Nを検証し、前記管理情報及び前記検証値を記憶している情報記憶手段を備える素数検証装置で用いられる素数検証方法であって、
素数Nから前記検証値を減じて素数減算値を得る減算ステップと、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断ステップと、
割り切れると判断される場合に、前記素数Nの利用を許可し、割り切れないと判断する場合に、前記素数Nの利用を禁止する制御ステップと
を含むことを特徴とする素数検証方法。
【請求項34】
請求項1の素数算出装置により出力された素数Nを検証し、前記管理情報及び前記検証値を記憶している情報記憶手段を備える素数検証装置で用いられる素数検証用のコンピュータプログラムであって、
素数Nから前記検証値を減じて素数減算値を得る減算ステップと、
得られた素数減算値が、前記管理情報で割り切れるか否かを判断する判断ステップと、
割り切れると判断される場合に、前記素数Nの利用を許可し、割り切れないと判断する場合に、前記素数Nの利用を禁止する制御ステップと
を含むことを特徴とするコンピュータプログラム。
【請求項35】
前記コンピュータプログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項34に記載のコンピュータプログラム。
【請求項36】
前記コンピュータプログラムは、
搬送波に乗せられて送信される
ことを特徴とする請求項34に記載のコンピュータプログラム。

【国際公開番号】WO2005/064844
【国際公開日】平成17年7月14日(2005.7.14)
【発行日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願番号】特願2005−516591(P2005−516591)
【国際出願番号】PCT/JP2004/019110
【国際出願日】平成16年12月21日(2004.12.21)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】