JP2003005644A - 情報セキュリティ装置、素数生成装置及び素数生成方法 - Google Patents

情報セキュリティ装置、素数生成装置及び素数生成方法

Info

Publication number
JP2003005644A
JP2003005644A JP2002089675A JP2002089675A JP2003005644A JP 2003005644 A JP2003005644 A JP 2003005644A JP 2002089675 A JP2002089675 A JP 2002089675A JP 2002089675 A JP2002089675 A JP 2002089675A JP 2003005644 A JP2003005644 A JP 2003005644A
Authority
JP
Japan
Prior art keywords
prime
generated
mod
determination
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2002089675A
Other languages
English (en)
Other versions
JP4102090B2 (ja
Inventor
Yuichi Fuda
裕一 布田
Takatoshi Ono
貴敏 小野
Motoji Omori
基司 大森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002089675A priority Critical patent/JP4102090B2/ja
Publication of JP2003005644A publication Critical patent/JP2003005644A/ja
Application granted granted Critical
Publication of JP4102090B2 publication Critical patent/JP4102090B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 計算量が少なく、かつ、確定的に素数生成が
可能な素数生成装置を提供する。 【解決手段】情報セキュリティ装置は、素数qを入力と
し、qより大きな素数Nを生成する。2×u×q+1≠
0 mod Li (i=1、2、・・・、n)を満たす
数uを生成する部分情報設定部と、乱数R’を生成する
乱数生成部と、数uと、乱数R’を用いて、R=u+L
1 ×L2 ×・・・×Ln ×R’と、N=2×R×q+1を
生成する判定対象生成部と、数N及び数Rを用いて素数
判定する素数判定部を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、素数生成を用いて
実現する情報セキュリテイ技術に関する。
【0002】
【従来の技術】近年、コンピュータ技術及び通信技術に
基づくデータ通信が広く普及してきており、このデータ
通信においては、秘密通信方式やデジタル署名方式が用
いられる。ここで、秘密通信方式とは、特定の通信相手
以外に通信内容を漏らすことなく通信を行なう方式であ
る。またデジタル署名方式とは、通信相手に通信内容の
正当性を示したり、発信者の身元を証明する通信方式で
ある。
【0003】1.公開鍵暗号方式 これらの秘密通信方式又はデジタル署名方式において
は、公開鍵暗号方式とよばれる暗号方式が用いられる。
公開鍵暗号方式は通信相手が多数のとき、通信相手ごと
に異なる暗号鍵を容易に管理するための方式であり、多
数の通信相手と通信を行なうのに不可欠な基盤技術であ
る。公開鍵暗号方式を用いる秘密通信では、暗号化鍵と
復号化鍵とが異なり、復号化鍵は秘密にするが、暗号化
鍵は公開する。秘密にする復号化鍵を秘密鍵と呼び、公
開する暗号化鍵を公開鍵と呼ぶ。
【0004】公開鍵暗号方式の1種であるRSA暗号方
式では、整数の素因数分解問題を解くことが、計算量の
上で困難であることを安全性の根拠としている。素因数
分解問題とは、p、qを素数とし、整数n=p×qとす
るとき、整数nに対して、素数p、qを求める問題であ
る。ここで、×は通常の乗算である。なお、素因数分解
問題については、岡本龍明、太田和夫共編、「暗号・ゼ
ロ知識問題・数論」、共立出版、1990、144〜1
51ページに詳しく述べられている。
【0005】(素因数分解問題を応用するRSA暗号方
式)素因数分解問題を応用するRSA暗号方式について
説明する。 (1)鍵の生成 次に示すようにして公開鍵及び秘密鍵を計算する。 ・ランダムに大きい素数p、qを選択し、その積n=p
×qを計算する。
【0006】・(p−1)及び(q−1)の最小公倍数
L=LCM(p−1、q−1)を計算する。 ・Lと互いに素でLより小さい整数eをランダムに選
ぶ。 1≦e≦L−1、GCD(e、L)=1 ここで、GCD(e、L)は、e及びLの最大公約数を
示している。
【0007】・d=e-1 mod Lを計算する。この
ようにして、得られた整数e及び整数nが、公開鍵であ
る。また、整数dが、秘密鍵である。 (2)暗号文の生成 公開鍵である整数e及び整数nを用いて、平文mに暗号
演算を施して暗号文cを計算する。
【0008】c=me mod n (3)復号文の生成 秘密鍵である整数dを用いて、暗号文cに復号演算を施
して復号文m’を計算する。 m’=cd mod n なお、 m’=cd mod n =(me d mod n =m**(e×d mod L) mod n =m1 mod n =m mod n であるので、復号文m’は、平文mと一致する。
【0009】なお、この明細書において、演算子**
は、べき乗を示す。例えば、A**xは、Ax であり、
AをX回乗ずることを示す。また、RSA暗号について
は、岡本龍明、山本博資、「現代暗号」、産業図書、1
997、110〜113ページに詳しく説明されてい
る。 2.従来例1−確率的素数生成方法 上記に示した素因数分解を応用したRSA暗号における
公開鍵の生成のステップにおいて、素数生成が行われ
る。素数生成については、A.J. Menezes, P.C. van Oor
schot, S.A. Vanstone, “Handbook of applied crypto
graphy”,CRC Press, 1997, 145〜154ページに詳しく
説明されている。
【0010】従来技術としての確率的素数生成方法につ
いて、説明する。この確率的素数生成方法は、素数判定
法であるMiller-Rabin法を応用している。Miller-Rabin
法については、A.J. Menezes, P.C. van Oorschot, S.
A. Vanstone,“Handbook ofapplied cryptography”,
CRC Press, 1997, 138〜140ページに詳しく説明されて
いる。この素数判定法による判定される素数は、「素数
である確率が高い」数であり、100%素数であるとは
限らないということを注意しておく。
【0011】あらかじめ自然数xと、小さい素数L1
2 、・・・、Ln とが与えられているものとする。こ
こで、小さい素数の一例は、「2、3、5、7」であ
る。前記確率的素数生成方法では、次に示すステップを
繰り返すことにより、素数を生成する。 (ステップ1)初期値として、自然数xを変数Nに代入
する。
【0012】(ステップ2)変数Nより大きい数のう
ち、素数L1 、L2 、・・・、Ln のいずれでも割り切
れない数であって、最も小さい数を得、得られた数を変
数Nに代入する。 (ステップ3)Miller-Rabin法により変数Nの値が素数
であるか否かを判定する。ここで、変数Nに対して素数
判定を10回繰り返す。判定の結果、素数であると判定
される場合には、変数Nの値を素数として出力する。素
数でないと判定される場合には、ステップ2へ戻って、
素数が出力されるまで、処理を繰り返す。
【0013】上記のように、小さい素数2、3、5、7
で割り切れない数を求める理由は、ステップ3の素数判
定の回数を減らすためである。即ち、素数判定する対象
となる数を2、3、5、7で割り切れない数だけに絞っ
ている。2×x+1 mod210が2、3、5、7で
割り切れない数は47個あるため、上記のように、2、
3、5、7で割り切れない数のみを対象として素数判定
すると、素数判定する回数は、47/210に削減でき
る。
【0014】しかしながら、ステップ2により得られた
変数Nの値が合成数(素数でない数)であるとき、Mill
er-Rabin法による素数判定が成立する確率は、1/4以
下であることが知られている。このように、得られた変
数Nの値が合成数であっても、Miller-Rabin法による素
数判定が成立する可能性がある。そのため、前記確率的
素数生成方法は、確率的にのみ素数を生成でき、確定的
に素数を生成できないという問題がある。
【0015】(確率的素数生成方法の計算量)次に、前
記確率的素数生成方法を用いて素数を生成する場合の計
算量について説明する。ここでは、冪乗剰余演算の回数
で計算量を見積もるものとする。前記確率的素数生成方
法では、上述したように、素数と思われる数に対して
は、Miller-Rabin法による素数判定を10回繰り返す。
以下では、合成数に対して行われるMiller-Rabin法によ
る素数判定の回数の平均を求める。
【0016】第i回目の素数判定試行を行う確率をPi
とすると、第i+1回目の素数判定試行を行う確率P
i+1 は、第i回のPi の確率で素数判定試行を行い、か
つ1/4以下の確率でさらに素数判定試行を行う確率で
ある。従って、 Pi+1 ≦ Pi × 1/4 である。第1回目の素数判定試行は、必ず行うため、そ
の確率は1であるので、P1 =1である。よって、 Pi ≦ (1/4)**(i−1) である。
【0017】Miller-Rabin法による素数判定1回につ
き、冪乗剰余演算を1回行う。前記確率的素数生成方法
では、Miller-Rabin法による素数判定を最大で10回行
うため、1つの合成数に対する冪乗剰余演算回数の平均
値は、
【0018】
【数1】
【0019】である。一般にNを任意に選ぶとき、Nが
素数となる確率は、1/(ln N)程度であるので、
平均的には、ln N回の素数判定を行うと素数を発見
できることになる。ここで、ln Nは、Nの自然対数
である。しかし、2、3、5、7で割り切れる数は予め
除外しているので、その回数は、φ(2×3×5×7)
/210=48/210に削減できる。ここで、φ(2
×3×5×7)は、210未満の自然数の2、3、5、
7と互いに素な数の個数を示している。従って、素数判
定を行う数(合成数と最後の素数と思われる数)の個数
は、 8/35×(ln N) である。その中で、最後の数が素数であると考えると、
素数判定を行う合成数の個数は、 (8/35×(ln N))−1 となる。
【0020】以上より、冪乗剰余演算の回数は、平均的
に、
【0021】
【数2】
【0022】以下である。例えば、Nが512ビットの
とき、多くとも116.8回であることが保証されてい
る。素数判定を行う数を2、3、5、7で割り切れない
数に絞り込まない場合、即ち、全ての数を素数判定を行
う対象にする場合、冪乗剰余演算の回数は、平均的に、
【0023】
【数3】
【0024】以下である。Nが512ビットのとき、こ
の値は481.9になる。以上より、従来例1は、冪乗
剰余演算回数が約1/4に削減できる。しかしながら、
上述したように、確定的に素数を出力できない。 3.従来例2−確定的素数生成方法 確定的に素数を生成することができるMaurer法に
よる確定的素数生成方法について説明する。ここで、M
aurer法については、A.J. Menezes, P.C.van Oors
chot, S.A. Vanstone,“Handbook of applied cryptog
raphy”,CRCPress, 1997, 152〜153ページに詳しく説
明されている。
【0025】前記確定的素数生成方法では、次に示すス
テップを繰り返すことにより、素数を生成する。あらか
じめサイズLenqの素数qが与えられている。 (ステップ1)Lenq−1ビットの乱数Rを選択す
る。なお、乱数Rの先頭ビットは、必ず1となるように
する。
【0026】(ステップ2)数Nを以下の式により計算
する。 N=2×q×R+1 (ステップ3)数Nが素数であるか否かを、次に示す第
1判定及び第2判定がともに、成立する場合に、素数と
判定する。他の場合に、素数でないと判定する。
【0027】 (第1判定) 2N-1 =1 mod N (第2判定) GCD(22R−1、N)=1 素数であると判定される場合には、数Nを素数として出
力する。素数でないと判定される場合には、ステップ1
へ戻って、素数が出力されるまで、処理を繰り返す。
【0028】この判定方法は、Pocklingtonの素数判定
法とよばれ、A.J. Menezes, P.C. van Oorschot, S.A.
Vanstone,“Handbook of applied cryptography”,CRC
Press, 1997, 144ページに詳しく述べられている。Poc
klington の素数判定法では、N=2×q×R+1のq
が素数であり、第1判定及び第2判定の結果が真であれ
ば、必ず、Nが素数になる。そのため、確定的に素数で
あることを判定でき、確定的な素数生成が可能になる。
【0029】このようにして、Maurer法による確
定的素数生成方法では、サイズLenqの素数qを基に
して、サイズ2×Lenqの素数Nを生成する。従っ
て、Maurer法による確定的素数生成方法を用いて
所定長の素数を生成する場合には、前記所定長以下の素
数の生成を繰り返し行う。例えば、512ビット長の素
数を生成する場合には、あらかじめ与えられた8ビット
の素数を基にして16ビットの素数を生成する。次に、
生成した16ビットの素数を基にして32ビットの素数
を生成する。次に、生成した32ビットの素数を基にし
て64ビットの素数を生成する。以下同様の素数生成を
繰り返して、512ビットの素数を生成する。
【0030】なお、前記第2判定を次の判定に代えても
よい。 22R≠1 mod N (確定的素数生成方法の計算量)次に、Maurer法
による確定的素数生成方法を用いて素数を生成する場合
の計算量について説明する。
【0031】ここでは、512ビットの数の冪乗剰余演
算の回数で計算量を見積もる。つまり、256ビットの
素数を用いて、512ビットの素数を生成する場合につ
いて考える。一般に、正整数Rを任意に選ぶとき、正整
数Rが素数となる確率は、1/(ln R)程度である
ので、この場合、512ビットの素数を生成するために
Pocklington 判定を試す回数は、ln 2512 と見積も
ることができる。従来例2では奇数のみに対して、素数
判定を行うので、この個数は、(ln 2512 )/2と
なる。
【0032】次に、前記第1判定を通過する確率は、Mi
ller-Rabin判定を通過する確率と等しく、1/4以下で
ある。従って、1つの合成数に対して行う冪乗剰余演算
の回数は、1+1/4以下である。当然、素数に対して
行う冪乗剰余演算回数は、2である。以上より、256
ビットの素数を用いて、512ビットの素数を生成する
ために行う512ビットの冪乗剰余演算回数は、 (1+1/4)((ln 2512 )/2−1)+2=2
22.6 以下である。
【0033】128ビットから256ビットの素数を生
成する場合も同様に考えると、256ビットの冪乗剰余
演算における判定回数は、(ln 2256 )/2であ
り、256ビットの素数を生成するために行う256ビ
ットの冪乗剰余演算回数は、 (1+1/4)((ln 2256 )/2−1)+2 以下である。冪乗剰余演算の計算量は、法Nに依存し、
Nの3乗のオーダである。従って、256ビットの冪乗
剰余演算8回を、512ビットの冪乗剰余演算1回相当
と考える。
【0034】64ビットから128ビットなどの他も同
様に考えると、従来例2全体の計算量を、512ビット
の冪乗剰余演算回数で見積もることができる。16、3
2ビットの素数生成の計算量は、64、128、25
6、512ビットの素数生成の計算量に比べて小さいた
め無視し、従来例2全体の計算量を、512ビットの冪
乗剰余演算回数で表すと、 (1+1/4)×{ ((ln 264)/2−1)/5
12+((ln 2128 )/2−1)/64+((ln
256 )/2−1)/8+((ln 2512 )/2−
1) }+2(1/512+1/64+1/8+
1)=237.4 以下である。
【0035】従来例2における計算量は、従来例1の1
16.8回以下に比べれば、計算量が2倍以上多いこと
になる。以上説明したように、従来例2によると、確定
的な素数生成が可能であるが、従来例1より計算量が多
い。
【0036】
【発明が解決しようとする課題】このように、計算量が
少ない素数生成法では、確定的に素数生成ができないと
いう問題がある。また、確定的に素数生成が可能な素数
法では、計算量が多いという問題がある。本発明は、上
記の問題点を解決し、計算量が少なく、かつ、確定的に
素数生成が可能な素数生成装置、素数生成方法、素数生
成プログラム、素数生成プログラムを記録している記録
媒体及び情報セキュリティ装置を提供することを目的と
する。
【0037】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、素因数分解をすることが計算量の上で困
難であることを根拠として、2個の素数を生成し生成し
た2個の素数の乗算を用いて、所定の情報を安全かつ確
実に扱い、各素数生成の際に、既知の素数qの2倍のビ
ット長を有する素数Nを生成する情報セキュリティ装置
であって、素数q及びn個の素数L1 、L2 、・・・、
n を取得し、ここで、素数L1 、L2、・・・、Ln
は、それぞれ素数qより小さい2以外の素数であり、素
数qは、q=1 mod Li (i=1、2、・・・、
n) を満たす取得手段と、取得した前記素数L1 、L
2 、・・・、Ln に係る数を除外した選択により、取得
した前記素数qの2倍のビット長を有する数Nを生成す
る生成手段と、生成した数Nの素数判定を行い、数Nが
素数であると判定とされた場合に、数Nを素数として出
力する判定手段とを備える。
【0038】ここで、前記生成手段は、N=1 mod
i (i=1、2、・・・、n)を満たす前記数Nを
生成するように構成してもよい。ここで、前記生成手段
は、(Lenq−LenL−1)ビット長の乱数R’を
生成し、ここで、Lenqは、素数qのビット長であ
り、LenLは、(L1 ×L2 ×・・・×Ln )のビッ
ト長である乱数生成部と、生成したR’及び前記素数L
1 、L2 、・・・、Ln を用いて、数R=L1 ×L2 ×
・・・×Ln ×R’により、数Rを生成し、取得した素
数q及び生成した数Rを用いて、数N=2×R×q+1
を生成する判定対象生成部とを含み、前記判定手段は、
前記数N及び前記数Rを用いて、前記数Nの素数判定を
行うように構成してもよい。
【0039】ここで、前記判定手段は、生成した前記数
Nについて、第1判定式 2N-1 =1 mod N が
成立するか否かを判定し、さらに、生成した前記数N及
び前記数Rについて、第2判定式 22R≠1 mod
N が判定するか否かを判定し、第1判定式及び第2判
定式の両方が成立する場合に、数Nが素数であると判定
するように構成してもよい。
【0040】ここで、前記生成手段は、取得した前記素
数qを用いて、2×u×q+1≠0mod Li (i=
1、2、・・・、n) を満たす数uを生成する部分情
報生成部と、乱数R’を生成する乱数生成部と、取得し
た前記素数L1 、L2 、・・・、Ln と、生成した前記
数uと、生成した前記乱数R’を用いて、 R=u+L
1 ×L2 ×・・・×Ln ×R’により、数Rを生成し、
取得した前記素数qと、生成した数Rとを用いて、 N
=2×R×q+1 により、数Nを生成する判定対象生
成部とを含み、前記判定手段は、前記数N及び前記数R
を用いて、前記数Nの素数判定を行うように構成しても
よい。
【0041】ここで、前記部分情報生成部は、整数N1
(1≦N1 ≦L1 −1)、整数N2(1≦N2 ≦L2
1)、・・・、整数Nn (1≦Nn ≦Ln −1)を生成
し、数ui =(Ni −1)/(2×(q mod L
i )) mod Li (i=1、2、・・・、n) を
算出する整数生成部と、算出した前記数ui (i=1、
2、・・・、n)を用いて、数u=ui mod Li
(i=1、2、・・・、n)を満たす数uを算出する情報
合成部とを含むように構成してもよい。
【0042】
【発明の実施の形態】1.第1の実施の形態 本発明に係る1の実施の形態としてのコンテンツ配信シ
ステム1について、説明する。 1.1 コンテンツ配信システム1の構成 コンテンツ配信システム1は、図1に示すように、メモ
リカード10、携帯情報端末装置(以下、PDAと呼
ぶ。)20、ヘッドフォン21、パーソナルコンピュー
タ(以下、PCと呼ぶ。)30、配信サーバ装置40及
び携帯電話50から構成されている。
【0043】配信サーバ装置40は、音楽であるデジタ
ル著作物を暗号化して暗号化デジタル著作物を得、得ら
れた暗号化デジタル著作物を、インターネット60を介
して、PC30へ送信し、PC30は、暗号化デジタル
著作物を受信する。利用者は、メモリカード10をPC
30に装着し、PC30は、受信した暗号化デジタル著
作物をメモリカード10へ書き込む。メモリカード10
は、暗号化デジタル著作物を復号して、デジタル著作物
を生成し、生成したデジタル著作物を記憶する。次に、
利用者は、暗号化デジタル著作物が書き込まれているメ
モリカード10をPDA20に装着する。PDA20に
は、ヘッドフォン21が接続されており、PDA20
は、メモリカード10に書き込まれているデジタル著作
物を変換して電気信号を生成し、生成した電気信号をヘ
ッドフォン21へ出力する。ヘッドフォン21は、電気
信号を音声に変換して、音声を出力する。
【0044】また、配信サーバ装置40は、音楽である
デジタル著作物を暗号化して暗号化デジタル著作物を
得、得られた暗号化デジタル著作物を、インターネット
60、携帯電話網62及び無線基地局61を介して、携
帯電話50へ送信し、携帯電話50は、暗号化デジタル
著作物を受信する。利用者は、メモリカード10を携帯
電話50に装着し、携帯電話50は、受信した暗号化デ
ジタル著作物をメモリカード10へ書き込む。メモリカ
ード10は、書き込まれている暗号化デジタル著作物を
復号して、音楽であるデジタル著作物を生成して、生成
したデジタル著作物を記憶する。携帯電話50は、メモ
リカード10に記憶されているデジタル著作物を変換し
て電気信号を生成し、生成した電気信号を音声に変換し
て、音声を出力する。
【0045】このようにして、利用者は、配信サーバ装
置40から音楽であるデジタル著作物を受信して、楽し
むことができる。 1.2 メモリカード10 メモリカード10は、図2に示すように、素数生成部1
01、生成制御部102、素数記憶部103、乱数生成
部104、秘密鍵記憶部105、公開鍵生成部106、
公開鍵記憶部107、復号部108、メモリ部109、
制御部112、認証部113及び送受信部114から構
成されている。
【0046】メモリカード10は、具体的には、マイク
ロプロセッサ、ROM、RAMなどから構成されるコン
ピュータシステムである。前記RAMには、コンピュー
タプログラムが記憶されている。前記マイクロプロセッ
サが、前記コンピュータプログラムに従って動作するこ
とにより、メモリカード10は、その機能を達成する。
【0047】(1)秘密鍵記憶部105 秘密鍵記憶部105は、秘密鍵としての数nと数dとを
記憶するための領域を備えている。 (2)公開鍵記憶部107 公開鍵記憶部107は、公開鍵としての数nと数eとを
記憶するための領域を備えている。
【0048】(3)メモリ部109 メモリ部109は、一般領域111とセキュア領域11
0とから構成されている。一般領域111及びセキュア
領域110は、それぞれ情報を記憶するための領域であ
る。一般領域111は、外部からの情報の自由な書き込
みと、情報の自由な読み出しが許可される領域である。
一方、セキュア領域110は、認証部113により、メ
モリカード10が装着される相手の装置の正当性が認証
された場合にのみ、情報の書き込み及び情報の読み出し
が許可される領域である。
【0049】(4)素数記憶部103 素数記憶部103は、素数pa 及び素数pb を記憶する
ための領域を備えている。 (5)生成制御部102 生成制御部102は、素数生成部101へ、素数qと、
素数qのビットサイズLenqと、2以外の小さな素数
であるL1 、L2 、・・・、Ln と、(L1 ×L2×・・・×
n )のビットサイズLenLとを出力し、次に、素数
生成部101から1個の素数pを受け取り、受け取った
素数pを素数pa として素数記憶部103へ書き込む。
【0050】次に、同様にして、素数生成部101へ、
素数qと、素数qのビットサイズLenqと、2以外の
小さな素数であるL1 、L2 、・・・、Ln と、(L1 ×
2×・・・×Ln )のビットサイズLenLとを出力し、
次に、素数生成部101から1個の素数pを受け取り、
受け取った素数pを素数pb として素数記憶部103へ
書き込む。
【0051】なお、素数qと、素数qのビットサイズL
enqと、2以外の小さな素数であるL1 、L2 、・・
・、Ln と、(L1 ×L2 ×・・・×Ln )のビットサイズ
LenLとについては、後述する。上記に説明している
ように、生成制御部102は、素数生成部101を2
回、制御することにより、2個の素数を生成している。
後述するように、素数生成部101により素数を生成す
るプロセスにおいて、乱数を用いているので、生成され
た2個の素数が偶然一致する可能性は、低いと考えられ
る。しかしながら、生成された2個の素数が偶然一致し
た場合において、生成制御部102は、再度2回目の素
数生成をするように、素数生成部101を制御し、必ず
異なる2個の素数を採用するようにしてもよい。
【0052】また、生成制御部102は、前記2回の素
数生成の際に、素数qと、ビットサイズLenqと、素
数L1 、L2 、・・・、Ln と、ビットサイズLenLと
からなるパラメタ群を用いるとしているが、2回の素数
生成の際に異なるパラメタ群を用いるとしてもよい。つ
まり、1回めの素数生成の際に、素数qと、ビットサイ
ズLenqと、n個の素数L1 、L2 、・・・、Ln と、
ビットサイズLenLとからなるパラメタ群を用いる。
次に、2回めの素数生成の際に、素数q’と、素数q’
のビットサイズLenq’と、j個の2以外の小さな素
数であるL1 ’、L2 ’、・・・、Lj’と、(L1 ’×L
2 ’×・・・×Lj ’)のビットサイズLenL’とから
なるパラメタ群を用いるとしてもよい。
【0053】ここで、素数q≠素数q’であり、n≠j
である。また、素数(L1 、L2 、・・・、Ln )≠素数
(L1 ’、L2 ’、・・・、Lj ’)である。これは、素
数(L 1 、L2 、・・・、Ln )と、素数(L1 ’、
2 ’、・・・、Lj ’の少なくとも1個が異なっている
ことを示している。 (6)素数生成部101 素数生成部101は、図3に示すように、乱数生成部1
31、判定対象生成部132、第1素数判定部133、
第2素数判定部134及び制御部135から構成されて
いる。
【0054】素数生成部101は、 q=1 mod L1 、 q=1 mod L2 、・・・ q=1 mod Ln を満たす素数qと、 素数qのビットサイズLenqとが与えられたとき、素
数qのビットサイズの2倍のビットサイズをもつ素数p
を出力する。
【0055】ここで、L1 、L2 、・・・、Ln は2以外
の小さな素数である。また、(L1 ×L2 ×・・・×
n )のビットサイズLenLは予め与えられているも
のであるとする。小さな素数の例として、想定する入力
qのビットサイズより小さな素数、例えばL1 =3、L
2 =5などが挙げられる。
【0056】(乱数生成部131)乱数生成部131
は、生成制御部102からビットサイズLenq及びL
enLを受け取り、受け取ったビットサイズLenq及
びLenLを用いて、(Lenq−LenL−1)ビッ
トサイズの乱数R’を生成し、生成した乱数R’を判定
対象生成部132へ出力する。
【0057】また、乱数生成部131は、第1素数判定
部133から後述する第1判定情報を受け取る。また、
第2素数判定部134から後述する第2判定情報を受け
取る。乱数生成部131は、第1判定情報、又は第2判
定情報を受け取ると、再度、受け取ったビットサイズL
enq及びLenLを用いて、(Lenq−LenL−
1)ビットサイズの乱数R’を生成し、生成した乱数
R’を判定対象生成部132へ出力する。
【0058】(判定対象生成部132)判定対象生成部
132は、生成制御部102から素数qを受け取り、乱
数生成部131から乱数R’を受け取る。次に、判定対
象生成部132は、受け取った素数qと乱数R’とを用
いて、以下の式を満たす数Rと数Nとを生成する。
【0059】 R=L1 ×L2 ×・・・×Ln ×R’ N=2×R×q+1 次に、判定対象生成部132は、生成した数Rを第2素
数判定部134へ出力し、生成した数Nを第1素数判定
部133及び第2素数判定部134へ出力する。
【0060】(第1素数判定部133)第1素数判定部
133は、判定対象生成部132から数Nを受け取り、
受け取った数Nを用いて、次に示す判定式1の成立を判
定する。 2N-1 =1 mod N (判定式1) 判定式1が成立する場合には、その旨を示す第1判定情
報を第2素数判定部134へ出力する。判定式1が成立
しない場合には、その旨を示す第1判定情報を乱数生成
部131へ出力する。
【0061】(第2素数判定部134)第2素数判定部
134は、判定対象生成部132から数Nと数Rとを受
け取り、また、第1素数判定部133から、判定式1が
成立する旨を示す第1判定情報受け取る。判定式1が成
立する旨を示す第1判定情報を受け取ると、次に、第2
素数判定部134は、受け取った数Nと数Rとを用い
て、次に示す判定式2の成立を判定する。
【0062】 22R≠1 mod N (判定式2) 判定式2が成立する場合には、素数pとして数Nを生成
制御部102へ出力する。判定式2が成立しない場合に
は、その旨を示す第2判定情報を乱数生成部131へ出
力する。 (制御部135)制御部135は、素数生成部101を
構成する各要素を制御する。
【0063】(素数生成部101の動作の検証)第1素
数判定部133及び第2素数判定部134による判定
は、Pocklington判定である。Pocklington判定について
は、岡本 栄司、「暗号理論入門」、共立出版、1993、2
1ページ及び、A.J. Menezes, P.C. van Oorschot, S.A.
Vanstone,“Handbook of applied cryptography”,CR
C Press, 1997, 144ページに詳しく述べられている。
【0064】N=2×R×q+1のqが素数であり 2N-1 = 1 mod N 22R≠1 mod N の両方が成り立つ場合、Nが素数になるので、素数生成
部101は素数を出力する。また、乱数R’のビットサ
イズがLenq−LenL−1であるので、数Rのビッ
トサイズがLenq−1になり、数Nのビットサイズが
2×Lenqになる。
【0065】(7)公開鍵生成部106 公開鍵生成部106は、素数記憶部103から素数pa
及び素数pb を読み出し、読み出した素数pa と素数p
b とを乗じて整数n=pa ×pb を算出し、算出した整
数nを秘密鍵記憶部105及び公開鍵記憶部107へ書
き込み、数(p a −1)と数(pb −1)との最小公倍
数L=LCM(pa −1、pb −1)を算出する。
【0066】また、公開鍵生成部106は、乱数生成部
104から乱数eを受け取り、受け取った乱数eを用い
て、数d=e-1 mod L を算出し、算出した数d
を秘密鍵記憶部105へ書き込み、乱数eを公開鍵記憶
部107へ書き込む。 (8)乱数生成部104 乱数生成部104は、乱数eを生成し、生成した乱数e
を公開鍵生成部106へ出力する。
【0067】(9)送受信部114 送受信部114は、公開鍵記憶部107から整数n及び
乱数eを読み出し、読み出した整数n及び乱数eをPC
30へ出力する。また、送受信部114は、配信サーバ
装置40からインターネット60及びPC30を介し
て、暗号文cを受信し、受信した暗号文cをメモリ部1
09内の一般領域111へ書き込む。
【0068】(10)復号部108 復号部108は、一般領域111から暗号文cを読み出
し、秘密鍵記憶部105から数d及び整数nを読み出
し、読み出した数d及び整数nを用いて、次の式によ
り、暗号文cを復号して、復号文m’を生成する。m’
=cd mod n次に、復号部108は、生成した復号
文m’をメモリ部109内のセキュア領域110へ書き
込む。
【0069】(11)認証部113 認証部113は、メモリカード10が装着される相手の
装置との間で、相手の装置の正当性を認証する。正当性
が認証された場合に、メモリ部109内のセキュア領域
110への情報の書き込み及びセキュア領域110から
の情報の読み出しを許可する。
【0070】(12)制御部112 制御部112は、メモリカード10を構成する各要素を
制御する。1.3 PC30PC30は、図4に示すよ
うに、送受信部301、認証部302、制御部303、
送受信部304、入力部305、表示部306から構成
されている。
【0071】この装置は、具体的には、マイクロプロセ
ッサ、ROM、RAM、ハードディスクユニット、液晶
ディスプレィユニット、キーボード、マウスなどから構
成されるコンピュータシステムである。前記RAM又は
前記ハードディスクユニットには、コンピュータプログ
ラムが記憶されている。前記マイクロプロセッサが、前
記コンピュータプログラムに従って動作することによ
り、前記装置は、その機能を達成する。
【0072】PC30は、メモリカード10から整数n
及び乱数eを受け取り、受け取った整数n及び乱数e
を、インターネット60を介して、配信サーバ装置40
へ送信する。また、PC30は、配信サーバ装置40か
ら、インターネット60を介して、暗号文cを受け取
り、受け取った暗号文cを、メモリカード10の送受信
部114へ送信する。
【0073】1.4 配信サーバ装置40 配信サーバ装置40は、図5に示すように、送受信部4
01、公開鍵記憶部402、暗号化部403、制御部4
04及び情報記憶部405から構成されている。この装
置は、PC30と同様に、コンピュータシステムであ
り、マイクロプロセッサが、コンピュータプログラムに
従って動作することにより、前記装置は、その機能を達
成する。
【0074】(1)情報記憶部405 情報記憶部405は、あらかじめ平文mを記憶してい
る。平文mは、具体的には、デジタルの音楽情報であ
る。 (2)公開鍵記憶部402 公開鍵記憶部402は、公開鍵としての整数n及び乱数
eを記憶するための領域を備えている。
【0075】(3)送受信部401 送受信部401は、PC30からインターネット60を
介して、整数n及び乱数eを受信し、受信した整数n及
び乱数eを公開鍵記憶部402へ書き込む。また、送受
信部401は、暗号化部403から、暗号文cを受け取
り、受け取った暗号文cを、インターネット60を介し
て、PC30へ送信する。
【0076】(4)暗号化部403 暗号化部403は、情報記憶部405から平文mを読み
出し、公開鍵記憶部402から整数n及び乱数eを読み
出し、読み出した整数n及び乱数eを用いて、次の式に
より、平文mを暗号化して、暗号文cを生成する。c=
e mod n次に、暗号化部403は、生成した暗号
文cを送受信部401へ出力する。
【0077】(5)制御部404 制御部404は、配信サーバ装置40を構成する各要素
を制御する。 1.5 PDA20及びヘッドフォン21 PDA20は、メモリカード10のメモリ部109内の
セキュア領域110に書き込まれている復号文m’を読
み出し、読み出した復号文m’をアナログの音声信号に
変換し、音声信号をヘッドフォン21へ出力する。
【0078】ヘッドフォン21は、音声信号を音声に変
換して出力する。 1.6 携帯電話50 携帯電話50は、無線電波を用いて、他の電話機との間
で通信を行うことができる携帯型の電話機としての構成
を有し、さらに、PC30及びPDA20と同様の構成
を有する。
【0079】この携帯電話50は、具体的には、マイク
ロプロセッサ、ROM、RAM、液晶ディスプレィユニ
ット、入力部、通信部、マイク、スピーカなどから構成
されるコンピュータシステムである。前記RAMには、
コンピュータプログラムが記憶されている。前記マイク
ロプロセッサが、前記コンピュータプログラムに従って
動作することにより、携帯電話50は、その機能を達成
する。
【0080】携帯電話50は、PC30と同様に、メモ
リカード10から整数n及び乱数eを受け取り、受け取
った整数n及び乱数eを、インターネット60を介し
て、配信サーバ装置40へ送信する。また、携帯電話5
0は、配信サーバ装置40から、インターネット60を
介して、暗号文cを受け取り、受け取った暗号文cを、
メモリカード10の送受信部114へ送信する。
【0081】携帯電話50は、PDA20と同様に、メ
モリカード10に記憶されているデジタル著作物を変換
して電気信号を生成し、生成した電気信号を音声に変換
して、音声を出力する。 1.7 コンテンツ配信システム1の動作 (1)コンテンツ配信システム1の動作コンテンツ配信
システム1の動作について、図6に示すフローチャート
を用い て説明する。
【0082】メモリカード10の素数生成部101は、
ランダムに素数pa 及び素数pb を生成し、生成した素
数pa 及び素数pb を素数記憶部103へ書き込む(ス
テップS101)。次に、公開鍵生成部106は、素数
記憶部103から素数pa 及び素数pb を読み出し、読
み出した素数pa と素数pb とを乗じて整数n=pa×
b を算出し、算出した整数nを秘密鍵記憶部105及
び公開鍵記憶部107へ書き込み、数(pa −1)と数
(pb −1)との最小公倍数L=LCM(pa−1、pb
−1)を算出する(ステップS102)。次に、乱数
生成部104は、乱数eを生成し、生成した乱数eを公
開鍵生成部106へ出力する(ステップS103)。次
に、公開鍵生成部106は、乱数eを受け取り、受け取
った乱数eを用いて、数d=e-1 mod L を算出
し、算出した数dを秘密鍵記憶部105へ書き込み、乱
数eを公開鍵記憶部107へ書き込む(ステップS10
4)。次に、送受信部114は、公開鍵記憶部107か
ら整数n及び乱数eを読み出し、読み出した整数n及び
乱数eをPC30へ出力し(ステップS105)、PC
30は、整数n及び乱数eを、インターネット60を介
して、配信サーバ装置40へ送信する(ステップS10
6)。
【0083】配信サーバ装置40の公開鍵記憶部402
は、PC30からインターネット60及び送受信部40
1を介して、整数n及び乱数eを、受信して記憶し(ス
テップS106)、暗号化部403は、情報記憶部40
5から平文mを読み出し、公開鍵記憶部402から整数
n及び乱数eを読み出し、読み出した整数n及び乱数e
を用いて、次の式により、平文mを暗号化して、暗号文
cを生成する。
【0084】c=me mod n (ステップS10
7)次に、暗号化部403は、送受信部401及びイン
ターネット60を介して、暗号文cをPC30へ送信し
(ステップS108)、PC30は、暗号文cを受け取
り、受け取った暗号文cを、メモリカード10の送受信
部114へ送信し、送受信部114は、受信した暗号文
cをメモリ部109内の一般領域111へ書き込む(ス
テップS109)。復号部108は、一般領域111か
ら暗号文cを読み出し、秘密鍵記憶部105から数d及
び整数nを読み出し、読み出した数d及び整数nを用い
て、次の式により、暗号文cを復号して、復号文m’を
生成する。 m’=cd mod n次に、復号部108
は、生成した復号文m’をメモリ部109内のセキュア
領域110へ書き込む(ステップS110)。
【0085】PDA20は、メモリカード10のメモリ
部109内のセキュア領域110に書き込まれている復
号文m’を読み出し(ステップS111)、読み出した
復号文m’をアナログの音声信号に変換し、音声信号を
ヘッドフォン21へ出力する。ヘッドフォン21は、音
声信号を音声に変換して出力する(ステップS11
2)。
【0086】なお、メモリカード10における上記動作
は、制御部112が、メモリカード10を構成する各要
素を制御することにより行われる。 (2)素数生成部101の動作 素数生成部101の動作について、図7に示すフローチ
ャートを用いて説明する。
【0087】乱数生成部131は、Lenq−LenL
−1ビットの乱数R’を生成し、判定対象生成部132
へ出力する(ステップS132)。次に、判定対象生成
部132は、数Rと数Nとを計算し、数Nを第1素数判
定部133へ出力し、数Nと数Rとを第2素数判定部1
34に出力する(ステップS133)。次に、第1素数
判定部133は、2N-1 =1 mod N(判定式1)
の成立を判定し、成立しない場合は(ステップS13
4)、ステップS132へ戻って処理を繰り返す。
【0088】成立する場合には(ステップS134)、
第2素数判定部134は、22R≠1mod N(判定式
2)の成立を判定し、成立しない場合は(ステップS1
35)、ステップS132へ戻って処理を繰り返す。成
立する場合は(ステップS135)、素数として数Nを
生成制御部102へ出力し、素数生成部101は、処理
を終了する。
【0089】なお、素数生成部101における上記動作
は、制御部135が、素数生成部101を構成する各要
素を制御することにより行われる。 1.8 計算量の評価 素数生成部101による計算量について説明する。以下
において、L1 =3、L2 =5、L3 =7、n=3、L
enq=256ビットとし、2×Lenq=512ビッ
トの冪乗剰余演算における演算回数を見積もる。
【0090】一般に、数Rを任意に選ぶ場合、Rが素数
となる確率は、1/(ln R)程度であるので、この
場合、512ビットの素数を生成するためにPocklingto
n 判定を試す回数は、ln (2512 )と見積もること
ができる。ここで、ln Rは、Rの自然対数である。
上記第1の実施の形態では、 N=2×R×q+1 =2×L1 ×L2 ×・・・×Ln ×R’×q+1 であるので、 N=1 mod 2、 N=1 mod L1 、 N=1 mod L2 、・・・ 、N=1 mod Ln であり、Nは、L1 、L
2 、・・・、Ln のいずれでも割り切れない。
【0091】mod (2×L1 ×L2 ×・・・×Ln
の数が、2、L1 、L2 、・・・、Lnで割り切れない確率
は、 φ(2×L1 ×L2 ×・・・×Ln )/(L1 ×L2 ×・・・
×Ln =(2−1)×(L1 −1)×(L2 −1)×
・・・×(Ln −1)/(2×L1 ×L2 ×・・・×Ln ) である。φは、オイラー関数と呼ばれ、辻井 重男、笠
原 正雄、「暗号と情報セキュリティ」、昭晃堂、199
0、11〜12ページに詳しく説明されている。
【0092】従って、Pocklington 判定を試す数の個数
は、 (2−1)×(L1 −1)×(L2 −1)×・・・×(Ln
−1)/(2×L1 ×L2 ×・・・×Ln ) 倍に削減できる。ここで、 L1 =3、L2 =5、L3 =7、n=3であるので、 (2−1)×(3−1)×(5−1)×(7−1)/(2×3×5×7) =48/210 =8/35 となる。これは、従来例1と同じ確率である。
【0093】次に、第1素数判定部133の判定を通過
する確率は、Miller-Rabin判定を通過する確率と等し
く、1/4以下である。従って、1つの合成数に対して
行う冪乗剰余演算の回数は、1+1/4以下である。当
然、素数に対して行う冪乗剰余演算回数は、2である。
以上より、256ビットの素数を用いて、512ビット
の素数を生成するために行う512ビットの冪乗剰余演
算回数は、 (1+1/4)((ln 2512 )×8/35−1)+
2=89.5 以下である。
【0094】第1の実施の形態では、Lenq=256
ビットの素数から、2×Lenq=512ビットの素数
を生成するが、第1の実施の形態の素数生成部101を
再帰的に使用することで、簡単に素数が分かる16ビッ
トの素数から、512ビットの素数を生成することがで
きる。よって、128ビットから256ビットの素数を
生成する場合も同様に考えると、256ビットの素数を
生成するために行う256ビットの冪乗剰余演算回数
は、 (1+1/4) ((ln 2256 )×8/35−1)
+2=45.1 以下である。
【0095】冪乗剰余演算の計算量は、法のNに依存
し、Nの3乗のオーダである。従って、256ビットの
冪乗剰余演算8回を、512ビットの冪乗剰余演算1回
相当と考えられる。64ビットから128ビットなどの
他も同様に考えると第1の実施の形態の素数生成部10
1全体の計算量を、512ビットの冪乗剰余演算回数で
見積もることができる。16、32ビットの素数生成の
計算量は、64、128、256、512ビットの素数
生成の計算量に比べて小さいため無視し、第1の実施の
形態1の素数生成部101全体の計算量を、512ビッ
トの冪乗剰余演算回数で表すと、 (1+1/4){((ln 264)×8/35−1)/
512+((ln 2128 )×8/35−1)/64+
((ln 2256 )×8/35−1)/8+((ln
512 )×8/35−1)}+2(1/512+1/6
4+1/8+1)=109.0 以下である。
【0096】これは、従来例1の116.8回以下と比
べて、計算量が小さく、また、確定的に素数生成が可能
になる。また、確定的な素数生成法である従来例2と比
べて、2.2倍高速である。以上に説明したように、第
1の実施の形態によると、従来例と比較すると、確定的
な素数生成の計算時間を短縮できるという優れた効果が
ある。
【0097】しかしながら、第1の実施の形態による
と、 N=1 mod 2、 N=1 mod L1 、 N=1 mod L2 、・・ N=1 mod Ln を満たす素数Nに限定して、素
数生成を行うので、生成できる素数の種類が少ない。
【0098】暗号への使用を考えると、素数の種類が限
定されることは、暗号の使用法によっては、安全性の面
で懸念される場合がある。次に示す第2の実施の形態
は、この問題を解決することを目的としている。 2.第2の実施の形態 本発明に係る別の実施の形態としてのコンテンツ配信シ
ステム1b(図示していない)について、説明する。
【0099】コンテンツ配信システム1bは、コンテン
ツ配信システム1と同様に構成を有している。メモリカ
ード10は、素数生成部101に代えて、素数生成部1
01bを備えている。ここでは、コンテンツ配信システ
ム1との相違点を中心として説明す。 2.1 メモリカード10の生成制御部102 生成制御部102は、素数生成部101bへ、素数q
と、素数qのビットサイズLenqと、2以外の小さな
素数であるL1 、L2 、・・・、Ln と、(L1 ×L2 ×・
・・×Ln )のビットサイズLenLと、q mod L
1 、q modL2 、・・・、q mod Ln とを出力
し、次に、素数生成部101bから1個の素数pを受け
取り、受け取った素数pを素数pa として素数記憶部1
03へ書き込む。
【0100】次に、同様にして、素数生成部101b
へ、素数qと、素数qのビットサイズLenqと、2以
外の小さな素数であるL1 、L2 、・・・、Ln と、(L
1 ×L2×・・・×Ln )のビットサイズLenL、q m
od L1 、q mod L2、・・・、q mod Ln
とを出力し、次に、素数生成部101bから1個の素数
pを受け取り、受け取った素数pを素数pb として素数
記憶部103へ書き込む。
【0101】2.2 メモリカード10の素数生成部1
01b 素数生成部101bは、素数q、q mod L1 、q
mod L2 、・・・、q mod Ln (L1 、L
2 、・・・、Ln は2以外の小さな素数)及び素数qのビ
ットサイズLenqが与えられた場合、素数qのビット
サイズの2倍のビットサイズをもつ素数pを生成して出
力する。
【0102】ここで、L1 、L2 、・・・、Ln 及び(L1
×L2 ×・・・×Ln )のビットサイズLenLは予め与
えられているものとする。また、小さな素数の例とし
て、入力される素数qのビットサイズより小さな素数が
挙げられる。素数生成部101bは、図8に示すよう
に、部分情報設定部136b、乱数生成部131b、判
定対象生成部132b、第1素数判定部133b、第2
素数判定部134b及び制御部135bから構成され
る。
【0103】(1)部分情報設定部136b 部分情報設定部136bは、生成制御部102から素数
q、q mod L1、q mod L2 、・・・、q m
od Ln を受け取り、 2×u×q+1≠0 mod L1 、 2×u×q+1≠0 mod L2 、・・・ 2×u×q+1≠0 mod Ln を満たす数uを算出し、算出した数uを判定対象生成部
132bへ出力する。
【0104】部分情報設定部136bの詳細について以
下に説明する。部分情報設定部136bは、図8に示す
ように、整数生成部141b及び情報合成部142bか
ら構成される。 (整数生成部141b)整数生成部141bは、乱数N
1 (1≦N1 ≦L1 −1)、N2 (1≦N2 ≦L2
1)、・・・、Nn (1≦Nn ≦Ln −1)を発生し、 ui =(Ni −1)/(2×(q mod Li ))
mod Li (i=1、2、・・・、n) を計算する。
【0105】次に、計算して得たui(i=1、2、・・
・、n)を情報合成部142bへ出力する。 (情報合成部142b)情報合成部142bは、整数生
成部141bからui(i=1、2、・・・、n)を受け取
り、受け取ったui(i=1、2、・・・、n)を用いて、
中国人の剰余定理から、 u=ui mod Li (i=1、2、・・・、n) を満たすu mod(L1 ×L2 ×・・・×Ln )を求め
る。
【0106】ここで、中国人の剰余定理については、岡
本 栄司、「暗号理論入門」、共立出版、1993、1
0ページに詳しく述べられている。具体的には、情報合
成部142bは、 u'2 =((L1 )-1 mod L2 )×((u2 -u1 ) mod L2 )+u1 u'3 =((L1 ×L2 )-1 mod L3 )×((u3 -u'2 ) mod L3 )+
u'2・・・ u'n =((L1 ×L2 ×・・・×Ln-1 )-1 mod Ln )×((un -
u'n-1 ) mod Ln )+u'n-1 を計算し、u=u’n とする。
【0107】次に、情報合成部142bは、計算して得
た数uを判定対象生成部132bへ出力する。(2)乱
数生成部131b 乱数生成部131bは、生成制御部102からLenq
及びLenLを受け取り、受け取ったLenq及びLe
nLを用いて、(Lenq−LenL−1)ビット長の
乱数R’を生成し、生成した乱数R’を判定対象生成部
132bへ出力する。
【0108】また、乱数生成部131bは、第1素数判
定部133bから後述する第3判定情報を受け取る。ま
た、第2素数判定部134bから後述する第4判定情報
を受け取る。乱数生成部131bは、第3判定情報、又
は第4判定情報を受け取ると、再度、受け取ったビット
サイズLenq及びLenLを用いて、(Lenq−L
enL−1)ビットサイズの乱数R’を生成し、生成し
た乱数R’を判定対象生成部132bへ出力する。
【0109】(3)判定対象生成部132b 判定対象生成部132bは、生成制御部102から素数
q、L1 、L2 、・・・、Ln を受け取り、部分情報設定
部136bから数uを受け取り、乱数生成部131bか
ら乱数R’を受け取る。次に、受け取った素数q、L
1 、L2 、・・・、Ln 、数u及び乱数R’を用いて、以
下の式を満たす数R及び数Nを生成する。
【0110】 R=u+L1 ×L2 ×・・・×Ln ×R’ N=2×R×q+1 次に、判定対象生成部132bは、生成した数R及び数
Nを第2素数判定部134bへ出力し、生成した数Nを
第1素数判定部133bへ出力する。(4)第1素数判
定部133b第1素数判定部133bは、判定対象生成
部132bから数Nを受け取り、受け取った数Nを用い
て、次の判定式3が成立するか否かを判定する。
【0111】2N-1 =1 mod N (判定式3) 判定式3が成立する場合には、第1素数判定部133b
は、成立する旨を示す第3判定情報を第2素数判定部1
34bへ出力する。判定式3が成立しない場合には、成
立しない旨を示す第3判定情報を乱数生成部131bへ
出力する。 (5)第2素数判定部134b 第2素数判定部134bは、判定対象生成部132bか
ら数R及び数Nを受け取る。また、第1素数判定部13
3bから判定式3が成立する旨を示す第3判定情報を受
け取る。
【0112】第3判定情報を受け取ると、第2素数判定
部134bは、受け取った数R及び数Nを用いて、次の
判定式4が成立するか否かを判定する。 22R≠1 mod N (判定式4) 判定式4が成立する場合には、第2素数判定部134b
は、数Nを素数pとして生成制御部102へ出力する。
【0113】判定式4が成立しない場合には、第2素数
判定部134bは、判定式4が成立しない旨を示す第4
判定情報を乱数生成部131bへ出力する。 (6)制御部135b 制御部135bは、素数生成部101bを構成する各要
素を制御する。 2.3 素数生成部101bの検証 第1素数判定部133b及び第2素数判定部134b
は、それぞれ素数生成部101の第1素数判定部133
及び第2素数判定部134と同じであるので、素数生成
部101bは、素数生成部101と同様、素数を出力す
る。
【0114】また、乱数R’のビットサイズがLenq
−LenL−1であるので、RのビットサイズがLen
q−1になり、Nのビットサイズが2×Lenqにな
る。 2.4 素数生成部101bの動作 素数生成部101bの動作について図9に示すフローチ
ャートを用いて説明する。
【0115】部分情報設定部136bは、2×u×q+
1≠0 mod(L1 ×L2 ×・・・×Ln )を満たすu
を計算し、計算したuを判定対象生成部132bへ出力
する(ステップS152)。次に、乱数生成部131b
は、Lenq−LenL−1ビットの乱数R’を生成
し、生成した乱数R’を判定対象生成部132bへ出力
する(ステップS153)。判定対象生成部132b
は、RとNを計算し、Nを第1素数判定部133bへ出
力し、NとRを第2素数判定部134bへ出力する(ス
テップS154)。第1素数判定部133bは、判定式
3の成立を判定し、成立しない場合は(ステップS15
5)、ステップS153へ戻って処理を繰り返す。
【0116】成立する場合は(ステップS155)、第
2素数判定部134bは、判定式4の成立を判定し、成
立しない場合は(ステップS156)、ステップS15
3へ戻って処理を繰り返す。成立する場合は(ステップ
S156)、第2素数判定部134bは、素数pとして
数Nを生成制御部102へ出力し(ステップS15
7)、素数生成部101bは、処理を終了する。
【0117】2.4 計算量の評価と効果 計算量については、第1の実施の形態とほぼ同じであ
る。ただし、第1の実施の形態の計算量と比べて、部分
情報設定部136bの計算量のみが増加する。しかし、
部分情報設定部136bは、mod L1 、modL
2 、・・・、mod Ln の計算、及び中国人の剰余定理
の計算のみであり、2×Lenqビットの数の計算と比
較して、小さくほとんど0とみなしても問題ない。
【0118】従って、第2の実施の形態について、計算
量に関し、第1の実施の形態と同等の効果が望める。ま
た、N=N1 mod L1 、N2 mod L2 、・・
・、Nn modLn であり、N1 、N2 、・・・、Nn
乱数であるので、素数生成部101bは、生成する素数
を限定しない。そのため、素数が限定されることによる
安全性の懸念がなくなる。
【0119】従って、素数生成部101bによると、
(1)生成する素数を限定しない、(2)確定的な素数
を生成する、(3)従来例と比較して高速に素数を生成
するという優れた効果がある。以上に説明したように第
2の実施の形態によると、従来例と比較して、確定的な
素数生成の計算時間を短縮でき、さらに、生成する素数
の種類を限定しないため、素数を限定することによる安
全性の懸念がなくなり、安全性の面でもよい。このこと
から、高速な暗号方式や署名方式を可能にする素数生成
部を提供することができ,その実用的価値は大きい。
【0120】3.変形例 第1の実施の形態、又は第2の実施の形態においてそれ
ぞれ説明した素数生成を適用する暗号通信システム(図
示していない)について説明する。暗号通信システム
は、管理センタ装置、ユーザA装置及びユーザB装置か
ら構成される。管理センタ装置、ユーザA装置及びユー
ザB装置は、それぞれ、相互にネットワークを介して接
続されている。
【0121】管理センタ装置は、内部に、第1の実施の
形態に示す生成制御部102及び素数生成部101を備
え、生成制御部102及び素数生成部101により2個
の素数pa 及び素数pb を生成する。なお、管理センタ
装置は、内部に、第2の実施の形態に示す生成制御部1
02及び素数生成部101bを備えるとしてもよい。以
下に、暗号通信システムの動作について、図10に示す
フローチャートを用いて説明する。ここでは、素因数分
解することが計算量上困難であることを安全性の根拠と
するRSA暗号を応用している。RSA暗号について
は、岡本 龍明、山本 博資、「現代暗号」、産業図
書、1997、110〜113ページが詳しく説明され
ている。
【0122】(1)管理センタ装置による公開鍵の生成 管理センタ装置は、生成制御部102及び素数生成部1
01により、ランダムに素数pa 及び素数pb を生成し
(ステップS171)、素数pa 及び素数pbを用い
て、n=pa ×pb 、及びL=LCM(pa −1、pb
−1)を計算する(ステップS172)。
【0123】次に、管理センタ装置は、ランダムに乱数
e(1≦e≦L−1,GCD(e,L)=1)を発生さ
せ、d=e-1 mod Lを計算する(ステップS17
3)。ここで、GCD(e,L)は、eとLの最大公約
数である。その後、管理センタ装置は、素数pa 、素数
b 及び数dを秘密鍵として、ユーザA装置に対して秘
密裏に送信し(ステップS174)、ユーザB装置に対
して、数n及び数eをユーザA装置の公開鍵として公開
して送信する(ステップS175)。
【0124】(2)ユーザB装置による暗号文の生成 ユーザB装置は、c=me mod nを計算する(ステ
ップS176)。ここで、mは、ユーザB装置がユーザ
A装置へ送信するメッセージである。次に、ユーザB装
置は、得られたcを暗号文として、ユーザA装置に送信
する(ステップS177)。
【0125】(3)ユーザA装置による暗号文の復号 ユーザA装置は、m’=cd mod nを計算して、復
号メッセージm’を得る(ステップS178)。ここ
で、 cd =(med mod n =m**(e×d mod L) mod n =m1 mod n =m mod n となることから、メッセージmが復号メッセージm’と
同一であることは明らかである。
【0126】以上説明したように、公開鍵の生成のステ
ップS171において、素数生成が行われる。この素数
生成のステップにおいて、第1の実施の形態又は第2の
実施の形態に示す生成制御部及び素数生成部が用いられ
るので、第1の実施の形態又は第2の実施の形態におい
て説明した効果が得られる。
【0127】4.まとめ 以上説明したように、素数qと2以外の前記素数qより
小さな素数L1 、L2、・・・、Ln (n≧2)とを入力と
し、前記素数qより大きな素数Nを出力する素数生成部
は、素数qが、q=1 mod Li (i=1、2、・・
・、n)を満たし、N=1 mod Li (i=1、
2、・・・、n)を満たすNを素数として生成する。
【0128】また、素数生成部は、乱数R’を生成し、
前記素数qと前記乱数R’から、R=L1 ×L2 ×・・・
×Ln ×R’と、N=2×R×q+1とを生成し、生成
した前記N及び前記Rを用いて、前記Nの素数判定を行
う。また、素数qと2以外の前記素数qより小さな素数
1 、L2 、・・・、Ln (n≧2)を入力とし、前記素
数qより大きな素数Nを出力する素数生成部は、2×u
×q+1≠0 mod Li (i=1、2、・・・、n)
を満たすuを出力し、乱数R’を生成し、生成した前記
u及び前記乱数R’を用いて、R=u+L1×L2 ×・・・
×Ln ×R’と、N=2×R×q+1とを出力し、前記
N及び前記Rを用いて、前記Nの素数判定を行う。
【0129】また、前記素数生成部は、整数N1 (1≦
1 ≦L1 −1)、N2 (1≦N2≦L2 −1)、・・・、
n (1≦Nn ≦Ln −1)を発生し、ui =(Ni
1)/(2×(q mod Li )) mod Li
(i=1、2、・・・、n)を計算し、前記ui (i=
1、2、・・・、n)を用いて、u=ui mod L
i(i=1、2、・・・、n)を満たすuを計算する。
【0130】また、前記素数判定部は、前記Nに対し、
N-1 =1 mod Nの成立を判定し、前記N及びR
に対し、22R≠1 mod Nの成立を判定する。この
ように、本発明によると、確定的な素数生成ができると
ともに、従来例と比較して、計算時間を短縮できる。ま
た、生成する素数の種類を限定しないようにできるの
で、素数を限定することによる安全性の懸念がなくな
り、安全性の面でもよい。
【0131】以上により、高速な暗号方式や署名方式を
可能にする情報セキュリティ装置及び素数生成装置を提
供することができ,その実用的価値は大きい。 5.その他の変形例 以上、実施の形態に基づいて説明したが、本発明はこれ
らの実施の形態に限られないことは勿論である。次のよ
うに構成してもよい。
【0132】(1)本発明は、本実施の形態に示す素数
生成部により、整数Lenを入力とし、Lenビットの
素数を出力するとしてもよい。 (2)上記において説明した素数生成部は、独立した1
個の装置であるとしてもよい。 (3)本発明は、本実施の形態に示す素数生成部を備え
る素数応用装置であるとしてもよい。素数応用装置の具
体的な例は、暗号化装置及び暗号復号装置からなる暗号
通信システム、デジタル署名作成装置及び署名検証装置
からなるデジタル署名システムである。これらのシステ
ムは、情報を安全かつ確実に扱う情報セキュリティシス
テムである。
【0133】(4)第1素数判定部133、第2素数判
定部134、第1素数判定部133b、第2素数判定部
134bは、上記実施の形態と異なる素数判定式を使用
するとしてもよい。例えば、第1素数判定部133及び
第1素数判定部133bは、次の判定式を用いるとして
もよい。
【0134】aN-1 =1 mod N としてもよい。但し、aは1≦a≦N−1を満たす整数
である。また、第2素数判定部134及び第2素数判定
部134bは、つぎの判定式を用いるとしてもよい。 b2R≠1 mod N 又は、 GCD(b2R−1、N)=1 としてもよい。但し、bは1≦b≦N−1を満たす整数
である。
【0135】(5)デジタル著作物は、音楽であるとし
ているが、その他のデジタル情報であるとしてもよい。
例えば、音声、動画像、静止画像、文章、表形式のデー
タ、コンピュータプログラムなどのデジタル情報である
としてもよい。 (6)上記の実施の形態において、RSA暗号を適用す
るセキュリティシステムにおける素数生成部について説
明しているが、素数生成部の利用は、RSA暗号を適用
するセキュリティシステムに限定されるものではない。
例えば、楕円暗号において、素数生成部を適用すること
が可能である。楕円暗号では、1個の素数を生成して用
いる。
【0136】(7)本発明は、上記に示す方法であると
してもよい。また、これらの方法をコンピュータにより
実現するコンピュータプログラムであるとしてもよい
し、前記コンピュータプログラムからなるデジタル信号
であるとしてもよい。また、本発明は、前記コンピュー
タプログラム又は前記デジタル信号をコンピュータ読み
取り可能な記録媒体、例えば、フレキシブルディスク、
ハードディスク、CD―ROM、MO、DVD、DVD
−ROM、DVD−RAM、半導体メモリなど、に記録
したものとしてもよい。また、これらの記録媒体に記録
されている前記コンピュータプログラム又は前記デジタ
ル信号であるとしてもよい。
【0137】また、本発明は、前記コンピュータプログ
ラム又は前記デジタル信号を、電気通信回線、無線又は
有線通信回線、インターネットを代表とするネットワー
ク等を経由して伝送するものとしてもよい。また、本発
明は、マイクロプロセッサとメモリとを備えたコンピュ
ータシステムであって、前記メモリは、上記コンピュー
タプログラムを記憶しており、前記マイクロプロセッサ
は、前記コンピュータプログラムに従って動作するとし
てもよい。
【0138】また、前記プログラム又は前記デジタル信
号を前記記録媒体に記録して移送することにより、又は
前記プログラム又は前記デジタル信号を前記ネットワー
ク等を経由して移送することにより、独立した他のコン
ピュータシステムにより実施するとしてもよい。 (7)上記実施の形態及び上記変形例をそれぞれ組み合
わせるとしてもよい。
【0139】
【発明の効果】上記目的を達成するために、素因数分解
をすることが計算量の上で困難であることを根拠とし
て、2個の素数を生成し生成した2個の素数の乗算を用
いて、所定の情報を安全かつ確実に扱い、各素数生成の
際に、既知の素数qの2倍のビット長を有する素数Nを
生成する情報セキュリティ装置であって、素数q及びn
個の素数L1 、L2 、・・・、Ln を取得し、ここで、
素数L1 、L2 、・・・、Ln は、それぞれ素数qより
小さい2以外の素数であり、素数qは、 q=1mod
i (i=1、2、・・・、n) を満たす取得手段
と、取得した前記素数L1 、L2 、・・・、Ln に係る
数を除外した選択により、取得した前記素数qの2倍の
ビット長を有する数Nを生成する生成手段と、生成した
数Nの素数判定を行い、数Nが素数であると判定とされ
た場合に、数Nを素数として出力する判定手段とを備え
る。
【0140】この構成によると、確定的な素数生成がで
きるとともに、従来と比較して、計算時間を短縮でき
る。また、前記生成手段は、N=1 mod Li (i
=1、2、・・・、n)を満たす前記数Nを生成する。
また、前記生成手段は、(Lenq−LenL−1)ビ
ット長の乱数R’を生成し、ここで、Lenqは、素数
qのビット長であり、LenLは、(L1 ×L2 ×・・
・×Ln )のビット長である乱数生成部と、生成した
R’及び前記素数L1 、L2 、・・・、Ln を用いて、
数R=L1 ×L2 ×・・・×Ln ×R’により、数Rを
生成し、取得した素数q及び生成した数Rを用いて、数
N=2×R×q+1を生成する判定対象生成部とを含
み、前記判定手段は、前記数N及び前記数Rを用いて、
前記数Nの素数判定を行う。
【0141】この構成によると、計算時間を短縮でき
る。また、前記生成手段は、取得した前記素数qを用い
て、2×u×q+1≠0mod Li (i=1、2、・
・・、n) を満たす数uを生成する部分情報生成部
と、乱数R’を生成する乱数生成部と、取得した前記素
数L1 、L2 、・・・、Ln と、生成した前記数uと、
生成した前記乱数R’を用いて、R=u+L 1 ×L2 ×
・・・×Ln ×R’により、数Rを生成し、取得した前
記素数qと、生成した数Rとを用いて、N=2×R×q
+1により、数Nを生成する判定対象生成部とを含み、
前記判定手段は、前記数N及び前記数Rを用いて、前記
数Nの素数判定を行う。
【0142】この構成によると、生成する素数の種類を
限定することなく、計算時間を短縮できる。
【図面の簡単な説明】
【図1】コンテンツ配信システム1の構成を示すブロッ
ク図である。
【図2】メモリカード10の構成を示すブロック図であ
る。
【図3】素数生成部101の構成を示すブロック図であ
る。
【図4】PC30の構成を示すブロック図である。
【図5】配信サーバ装置40の構成を示すブロック図で
ある。
【図6】コンテンツ配信システム1の動作を示すフロー
チャートである。
【図7】素数生成部101の動作を示すフローチャート
である。
【図8】素数生成部101bの構成を示すブロック図で
ある。
【図9】素数生成部101bの動作を示すフローチャー
トである。
【図10】暗号通信システムの動作を示すフローチャー
トである。
【符号の説明】
1 コンテンツ配信システム 10 メモリカード 20 PDA 21 ヘッドフォン 30 PC 40 配信サーバ装置 50 携帯電話 60 インターネット 61 無線基地局 62 携帯電話網 101 素数生成部 102 生成制御部 103 素数記憶部 104 乱数生成部 105 秘密鍵記憶部 106 公開鍵生成部 107 公開鍵記憶部 108 復号部 109 メモリ部 110 セキュア領域 111 一般領域 112 制御部 113 認証部 114 送受信部 131 乱数生成部 132 判定対象生成部 133 第1素数判定部 134 第2素数判定部 135 制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 大森 基司 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5J104 AA23 EA04 EA19 EA32 JA28 NA02 NA18 NA35

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 素因数分解をすることが計算量の上で困
    難であることを根拠として、2個の素数を生成し生成し
    た2個の素数の乗算を用いて、所定の情報を安全かつ確
    実に扱い、各素数生成の際に、既知の素数qの2倍のビ
    ット長を有する素数Nを生成する情報セキュリティ装置
    であって、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得手段と、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成手段と、生成した数N
    の素数判定を行い、数Nが素数であると判定とされた場
    合に、数Nを素数として出力する判定手段とを備えるこ
    とを特徴とする情報セキュリティ装置。
  2. 【請求項2】 前記生成手段は、 N=1 mod Li (i=1、2、・・・、n) を
    満たす前記数Nを生成することを特徴とする請求項1に
    記載の情報セキュリティ装置。
  3. 【請求項3】 前記生成手段は、 (Lenq−LenL−1)ビット長の乱数R’を生成
    し、ここで、Lenqは、素数qのビット長であり、L
    enLは、(L1 ×L2 ×・・・×Ln )のビット長で
    ある乱数生成部と、 生成したR’及び前記素数L1 、L2 、・・・、Ln
    用いて、数R=L1 ×L2 ×・・・×Ln ×R’によ
    り、数Rを生成し、取得した素数q及び生成した数Rを
    用いて、数N=2×R×q+1を生成する判定対象生成
    部とを含み、 前記判定手段は、前記数N及び前記数Rを用いて、前記
    数Nの素数判定を行うことを特徴とする請求項2に記載
    の情報セキュリティ装置。
  4. 【請求項4】 前記判定手段は、生成した前記数Nにつ
    いて、 第1判定式 2N-1 =1 mod N が成立するか否かを判定し、 さらに、生成した前記数N及び前記数Rについて、 第2判定式 22R≠1 mod N が判定するか否かを判定し、 第1判定式及び第2判定式の両方が成立する場合に、数
    Nが素数であると判定することを特徴とする請求項3に
    記載の情報セキュリティ装置。
  5. 【請求項5】 前記生成手段は、 取得した前記素数qを用いて、 2×u×q+1≠0 mod Li (i=1、2、・・
    ・、n) を満たす数uを生成する部分情報生成部と、 乱数R’を生成する乱数生成部と、 取得した前記素数L1 、L2 、・・・、Ln と、生成し
    た前記数uと、生成した前記乱数R’を用いて、 R=u+L1 ×L2 ×・・・×Ln ×R’ により、数Rを生成し、取得した前記素数qと、生成し
    た数Rとを用いて、 N=2×R×q+1 により、数Nを生成する判定対象生成部とを含み、 前記判定手段は、前記数N及び前記数Rを用いて、前記
    数Nの素数判定を行うことを特徴とする請求項1に記載
    の情報セキュリティ装置。
  6. 【請求項6】 前記部分情報生成部は、 整数N1 (1≦N1 ≦L1 −1)、整数N2 (1≦N2
    ≦L2 −1)、・・・、 整数Nn (1≦Nn ≦Ln −1)を生成し、 数ui =(Ni −1)/(2×(q mod Li ))
    mod Li(i=1、2、・・・、n) を算出する整数生成部と、 算出した前記数ui (i=1、2、・・・、n)を用い
    て、 数u=ui mod Li (i=1、2、・・・、n) を満たす数uを算出する情報合成部とを含むことを特徴
    とする請求項5に記載の情報セキュリティ装置。
  7. 【請求項7】 前記判定手段は、生成した前記数Nにつ
    いて、 第1判定式 2N-1 =1 mod N が成立するか否かを判定し、 さらに、生成した前記数N及び前記数Rについて、 第2判定式 22R≠1 mod N が判定するか否かを判定し、 第1判定式及び第2判定式の両方が成立する場合に、数
    Nが素数であると判定することを特徴とする請求項6に
    記載の情報セキュリティ装置。
  8. 【請求項8】 素因数分解をすることが計算量の上で困
    難であることを根拠として、2個の素数を生成し生成し
    た2個の素数の乗算を用いて、所定の情報を安全かつ確
    実に扱い、各素数生成の際に、既知の素数qの2倍のビ
    ット長を有する素数Nを生成するICカードであって、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得手段と、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成手段と、 生成した数Nの素数判定を行い、数Nが素数であると判
    定とされた場合に、数Nを素数として出力する判定手段
    とを備えることを特徴とするICカード。
  9. 【請求項9】 既知の素数qの2倍のビット長を有する
    素数Nを生成する素数生成装置であって、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得手段と、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成手段と、 生成した数Nの素数判定を行い、数Nが素数であると判
    定とされた場合に、数Nを素数として出力する判定手段
    とを備えることを特徴とする素数生成装置。
  10. 【請求項10】 既知の素数qの2倍のビット長を有す
    る素数Nを生成する素数生成装置で用いられる素数生成
    方法であって、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得ステップと、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成ステップと、 生成した数Nの素数判定を行い、数Nが素数であると判
    定とされた場合に、数Nを素数として出力する判定ステ
    ップとを含むことを特徴とする素数生成方法。
  11. 【請求項11】 既知の素数qの2倍のビット長を有す
    る素数Nを生成するコンピュータで用いられる素数生成
    プログラムであって、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得ステップと、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成ステップと、 生成した数Nの素数判定を行い、数Nが素数であると判
    定とされた場合に、数Nを素数として出力する判定ステ
    ップとを含むことを特徴とする素数生成プログラム。
  12. 【請求項12】 既知の素数qの2倍のビット長を有す
    る素数Nを生成するコンピュータで用いられる素数生成
    プログラムを記録しているコンピュータ読み取り可能な
    記録媒体であって、 前記素数生成プログラムは、 素数q及びn個の素数L1 、L2 、・・・、Ln を取得
    し、ここで、素数L1、L2 、・・・、Ln は、それぞ
    れ素数qより小さい2以外の素数であり、素数qは、
    q=1 mod Li (i=1、2、・・・、n) を
    満たす取得ステップと、 取得した前記素数L1 、L2 、・・・、Ln に係る数を
    除外した選択により、取得した前記素数qの2倍のビッ
    ト長を有する数Nを生成する生成ステップと、 生成した数Nの素数判定を行い、数Nが素数であると判
    定とされた場合に、数Nを素数として出力する判定ステ
    ップとを含むことを特徴とする記録媒体。
JP2002089675A 2001-04-17 2002-03-27 情報セキュリティ装置、素数生成装置及び素数生成方法 Expired - Lifetime JP4102090B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002089675A JP4102090B2 (ja) 2001-04-17 2002-03-27 情報セキュリティ装置、素数生成装置及び素数生成方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001-117842 2001-04-17
JP2001117842 2001-04-17
JP2002089675A JP4102090B2 (ja) 2001-04-17 2002-03-27 情報セキュリティ装置、素数生成装置及び素数生成方法

Publications (2)

Publication Number Publication Date
JP2003005644A true JP2003005644A (ja) 2003-01-08
JP4102090B2 JP4102090B2 (ja) 2008-06-18

Family

ID=26613684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002089675A Expired - Lifetime JP4102090B2 (ja) 2001-04-17 2002-03-27 情報セキュリティ装置、素数生成装置及び素数生成方法

Country Status (1)

Country Link
JP (1) JP4102090B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086234A1 (ja) * 2003-03-26 2004-10-07 Matsushita Electric Industrial Co. Ltd. メモリデバイス
US7634084B2 (en) 2003-12-26 2009-12-15 Panasonic Corporation Prime calculation device, method, and key issuing system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086234A1 (ja) * 2003-03-26 2004-10-07 Matsushita Electric Industrial Co. Ltd. メモリデバイス
CN100465924C (zh) * 2003-03-26 2009-03-04 松下电器产业株式会社 存储装置
US7512759B2 (en) 2003-03-26 2009-03-31 Panasonic Corporation Memory device
US7634084B2 (en) 2003-12-26 2009-12-15 Panasonic Corporation Prime calculation device, method, and key issuing system
US7706528B2 (en) 2003-12-26 2010-04-27 Panasonic Corporation Prime calculating apparatus, key issuing system, and prime calculation method

Also Published As

Publication number Publication date
JP4102090B2 (ja) 2008-06-18

Similar Documents

Publication Publication Date Title
US7372961B2 (en) Method of public key generation
JP3862500B2 (ja) 直接埋め込み方式による高速楕円曲線暗号化の方法と装置
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
JP5544355B2 (ja) 共有の秘密の確認の方法およびシステム
JP4668795B2 (ja) 素数算出装置、鍵発行システム及び素数算出方法
JPS5950068B2 (ja) 公開キ−式の暗号装置
JP2003208097A (ja) サイドチャネルアタック耐性を有する暗号演算装置及び方法
EP1251654B1 (en) Information security device, prime number generation device, and prime number generation method
EP1330702B1 (en) Method and system of using an insecure crypto-accelerator
CN108292347A (zh) 一种用户属性匹配方法及终端
JP3402441B2 (ja) 公開鍵暗号化装置、公開鍵暗号復号装置及び復号プログラム記録媒体
CN109361506B (zh) 信息处理方法
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
JP4102090B2 (ja) 情報セキュリティ装置、素数生成装置及び素数生成方法
JP2000137436A (ja) 素体上楕円曲線上の点の演算方法およびその装置
JP2000181347A (ja) 素体上楕円曲線上の点の演算方法およびその装置
Wu et al. Batch public key cryptosystem with batch multi-exponentiation
Okyere-Gamfi et al. An Enhanced Asymmetric Cryptosystem using Multiple Key System
JP2002252611A (ja) 暗号通信システム、送信装置及び受信装置
WO2004070681A2 (ja) 楕円曲線スカラー倍計算方法および装置
JP3518680B2 (ja) 素数生成装置
Dai On the Concrete Security of Identification and Signature Schemes
Haraty et al. Attacking ElGamal based cryptographic algorithms using Pollard's rho algorithm
JP2000200038A (ja) 素数生成方法及び装置並びにrsa暗号化方法及び記録媒体
JPH11202766A (ja) ディジタル署名方式、それを用いた情報通信システム及び通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4102090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110328

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120328

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130328

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140328

Year of fee payment: 6

EXPY Cancellation because of completion of term