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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
可能な素数生成装置を提供する。 【解決手段】情報セキュリティ装置は、素数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
実現する情報セキュリテイ技術に関する。
基づくデータ通信が広く普及してきており、このデータ
通信においては、秘密通信方式やデジタル署名方式が用
いられる。ここで、秘密通信方式とは、特定の通信相手
以外に通信内容を漏らすことなく通信を行なう方式であ
る。またデジタル署名方式とは、通信相手に通信内容の
正当性を示したり、発信者の身元を証明する通信方式で
ある。
は、公開鍵暗号方式とよばれる暗号方式が用いられる。
公開鍵暗号方式は通信相手が多数のとき、通信相手ごと
に異なる暗号鍵を容易に管理するための方式であり、多
数の通信相手と通信を行なうのに不可欠な基盤技術であ
る。公開鍵暗号方式を用いる秘密通信では、暗号化鍵と
復号化鍵とが異なり、復号化鍵は秘密にするが、暗号化
鍵は公開する。秘密にする復号化鍵を秘密鍵と呼び、公
開する暗号化鍵を公開鍵と呼ぶ。
式では、整数の素因数分解問題を解くことが、計算量の
上で困難であることを安全性の根拠としている。素因数
分解問題とは、p、qを素数とし、整数n=p×qとす
るとき、整数nに対して、素数p、qを求める問題であ
る。ここで、×は通常の乗算である。なお、素因数分解
問題については、岡本龍明、太田和夫共編、「暗号・ゼ
ロ知識問題・数論」、共立出版、1990、144〜1
51ページに詳しく述べられている。
式)素因数分解問題を応用するRSA暗号方式について
説明する。 (1)鍵の生成 次に示すようにして公開鍵及び秘密鍵を計算する。 ・ランダムに大きい素数p、qを選択し、その積n=p
×qを計算する。
L=LCM(p−1、q−1)を計算する。 ・Lと互いに素でLより小さい整数eをランダムに選
ぶ。 1≦e≦L−1、GCD(e、L)=1 ここで、GCD(e、L)は、e及びLの最大公約数を
示している。
ようにして、得られた整数e及び整数nが、公開鍵であ
る。また、整数dが、秘密鍵である。 (2)暗号文の生成 公開鍵である整数e及び整数nを用いて、平文mに暗号
演算を施して暗号文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と一致する。
は、べき乗を示す。例えば、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ページに詳しく
説明されている。
いて、説明する。この確率的素数生成方法は、素数判定
法であるMiller-Rabin法を応用している。Miller-Rabin
法については、A.J. Menezes, P.C. van Oorschot, S.
A. Vanstone,“Handbook ofapplied cryptography”,
CRC Press, 1997, 138〜140ページに詳しく説明されて
いる。この素数判定法による判定される素数は、「素数
である確率が高い」数であり、100%素数であるとは
限らないということを注意しておく。
L2 、・・・、Ln とが与えられているものとする。こ
こで、小さい素数の一例は、「2、3、5、7」であ
る。前記確率的素数生成方法では、次に示すステップを
繰り返すことにより、素数を生成する。 (ステップ1)初期値として、自然数xを変数Nに代入
する。
ち、素数L1 、L2 、・・・、Ln のいずれでも割り切
れない数であって、最も小さい数を得、得られた数を変
数Nに代入する。 (ステップ3)Miller-Rabin法により変数Nの値が素数
であるか否かを判定する。ここで、変数Nに対して素数
判定を10回繰り返す。判定の結果、素数であると判定
される場合には、変数Nの値を素数として出力する。素
数でないと判定される場合には、ステップ2へ戻って、
素数が出力されるまで、処理を繰り返す。
で割り切れない数を求める理由は、ステップ3の素数判
定の回数を減らすためである。即ち、素数判定する対象
となる数を2、3、5、7で割り切れない数だけに絞っ
ている。2×x+1 mod210が2、3、5、7で
割り切れない数は47個あるため、上記のように、2、
3、5、7で割り切れない数のみを対象として素数判定
すると、素数判定する回数は、47/210に削減でき
る。
変数Nの値が合成数(素数でない数)であるとき、Mill
er-Rabin法による素数判定が成立する確率は、1/4以
下であることが知られている。このように、得られた変
数Nの値が合成数であっても、Miller-Rabin法による素
数判定が成立する可能性がある。そのため、前記確率的
素数生成方法は、確率的にのみ素数を生成でき、確定的
に素数を生成できないという問題がある。
記確率的素数生成方法を用いて素数を生成する場合の計
算量について説明する。ここでは、冪乗剰余演算の回数
で計算量を見積もるものとする。前記確率的素数生成方
法では、上述したように、素数と思われる数に対して
は、Miller-Rabin法による素数判定を10回繰り返す。
以下では、合成数に対して行われるMiller-Rabin法によ
る素数判定の回数の平均を求める。
とすると、第i+1回目の素数判定試行を行う確率P
i+1 は、第i回のPi の確率で素数判定試行を行い、か
つ1/4以下の確率でさらに素数判定試行を行う確率で
ある。従って、 Pi+1 ≦ Pi × 1/4 である。第1回目の素数判定試行は、必ず行うため、そ
の確率は1であるので、P1 =1である。よって、 Pi ≦ (1/4)**(i−1) である。
き、冪乗剰余演算を1回行う。前記確率的素数生成方法
では、Miller-Rabin法による素数判定を最大で10回行
うため、1つの合成数に対する冪乗剰余演算回数の平均
値は、
素数となる確率は、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 となる。
に、
とき、多くとも116.8回であることが保証されてい
る。素数判定を行う数を2、3、5、7で割り切れない
数に絞り込まない場合、即ち、全ての数を素数判定を行
う対象にする場合、冪乗剰余演算の回数は、平均的に、
の値は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ページに詳しく説
明されている。
テップを繰り返すことにより、素数を生成する。あらか
じめサイズLenqの素数qが与えられている。 (ステップ1)Lenq−1ビットの乱数Rを選択す
る。なお、乱数Rの先頭ビットは、必ず1となるように
する。
する。 N=2×q×R+1 (ステップ3)数Nが素数であるか否かを、次に示す第
1判定及び第2判定がともに、成立する場合に、素数と
判定する。他の場合に、素数でないと判定する。
力する。素数でないと判定される場合には、ステップ1
へ戻って、素数が出力されるまで、処理を繰り返す。
法とよばれ、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が素数になる。そのため、確定的に素数で
あることを判定でき、確定的な素数生成が可能になる。
定的素数生成方法では、サイズLenqの素数qを基に
して、サイズ2×Lenqの素数Nを生成する。従っ
て、Maurer法による確定的素数生成方法を用いて
所定長の素数を生成する場合には、前記所定長以下の素
数の生成を繰り返し行う。例えば、512ビット長の素
数を生成する場合には、あらかじめ与えられた8ビット
の素数を基にして16ビットの素数を生成する。次に、
生成した16ビットの素数を基にして32ビットの素数
を生成する。次に、生成した32ビットの素数を基にし
て64ビットの素数を生成する。以下同様の素数生成を
繰り返して、512ビットの素数を生成する。
よい。 22R≠1 mod N (確定的素数生成方法の計算量)次に、Maurer法
による確定的素数生成方法を用いて素数を生成する場合
の計算量について説明する。
算の回数で計算量を見積もる。つまり、256ビットの
素数を用いて、512ビットの素数を生成する場合につ
いて考える。一般に、正整数Rを任意に選ぶとき、正整
数Rが素数となる確率は、1/(ln R)程度である
ので、この場合、512ビットの素数を生成するために
Pocklington 判定を試す回数は、ln 2512 と見積も
ることができる。従来例2では奇数のみに対して、素数
判定を行うので、この個数は、(ln 2512 )/2と
なる。
ller-Rabin判定を通過する確率と等しく、1/4以下で
ある。従って、1つの合成数に対して行う冪乗剰余演算
の回数は、1+1/4以下である。当然、素数に対して
行う冪乗剰余演算回数は、2である。以上より、256
ビットの素数を用いて、512ビットの素数を生成する
ために行う512ビットの冪乗剰余演算回数は、 (1+1/4)((ln 2512 )/2−1)+2=2
22.6 以下である。
成する場合も同様に考えると、256ビットの冪乗剰余
演算における判定回数は、(ln 2256 )/2であ
り、256ビットの素数を生成するために行う256ビ
ットの冪乗剰余演算回数は、 (1+1/4)((ln 2256 )/2−1)+2 以下である。冪乗剰余演算の計算量は、法Nに依存し、
Nの3乗のオーダである。従って、256ビットの冪乗
剰余演算8回を、512ビットの冪乗剰余演算1回相当
と考える。
様に考えると、従来例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
2256 )/2−1)/8+((ln 2512 )/2−
1) }+2(1/512+1/64+1/8+
1)=237.4 以下である。
16.8回以下に比べれば、計算量が2倍以上多いこと
になる。以上説明したように、従来例2によると、確定
的な素数生成が可能であるが、従来例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 、L
2 、・・・、Ln に係る数を除外した選択により、取得
した前記素数qの2倍のビット長を有する数Nを生成す
る生成手段と、生成した数Nの素数判定を行い、数Nが
素数であると判定とされた場合に、数Nを素数として出
力する判定手段とを備える。
Li (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の素数判定を
行うように構成してもよい。
Nについて、第1判定式 2N-1 =1 mod N が
成立するか否かを判定し、さらに、生成した前記数N及
び前記数Rについて、第2判定式 22R≠1 mod
N が判定するか否かを判定し、第1判定式及び第2判
定式の両方が成立する場合に、数Nが素数であると判定
するように構成してもよい。
数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の素数判定を行うように構成しても
よい。
(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を算出する情報
合成部とを含むように構成してもよい。
ステム1について、説明する。 1.1 コンテンツ配信システム1の構成 コンテンツ配信システム1は、図1に示すように、メモ
リカード10、携帯情報端末装置(以下、PDAと呼
ぶ。)20、ヘッドフォン21、パーソナルコンピュー
タ(以下、PCと呼ぶ。)30、配信サーバ装置40及
び携帯電話50から構成されている。
ル著作物を暗号化して暗号化デジタル著作物を得、得ら
れた暗号化デジタル著作物を、インターネット60を介
して、PC30へ送信し、PC30は、暗号化デジタル
著作物を受信する。利用者は、メモリカード10をPC
30に装着し、PC30は、受信した暗号化デジタル著
作物をメモリカード10へ書き込む。メモリカード10
は、暗号化デジタル著作物を復号して、デジタル著作物
を生成し、生成したデジタル著作物を記憶する。次に、
利用者は、暗号化デジタル著作物が書き込まれているメ
モリカード10をPDA20に装着する。PDA20に
は、ヘッドフォン21が接続されており、PDA20
は、メモリカード10に書き込まれているデジタル著作
物を変換して電気信号を生成し、生成した電気信号をヘ
ッドフォン21へ出力する。ヘッドフォン21は、電気
信号を音声に変換して、音声を出力する。
デジタル著作物を暗号化して暗号化デジタル著作物を
得、得られた暗号化デジタル著作物を、インターネット
60、携帯電話網62及び無線基地局61を介して、携
帯電話50へ送信し、携帯電話50は、暗号化デジタル
著作物を受信する。利用者は、メモリカード10を携帯
電話50に装着し、携帯電話50は、受信した暗号化デ
ジタル著作物をメモリカード10へ書き込む。メモリカ
ード10は、書き込まれている暗号化デジタル著作物を
復号して、音楽であるデジタル著作物を生成して、生成
したデジタル著作物を記憶する。携帯電話50は、メモ
リカード10に記憶されているデジタル著作物を変換し
て電気信号を生成し、生成した電気信号を音声に変換し
て、音声を出力する。
置40から音楽であるデジタル著作物を受信して、楽し
むことができる。 1.2 メモリカード10 メモリカード10は、図2に示すように、素数生成部1
01、生成制御部102、素数記憶部103、乱数生成
部104、秘密鍵記憶部105、公開鍵生成部106、
公開鍵記憶部107、復号部108、メモリ部109、
制御部112、認証部113及び送受信部114から構
成されている。
ロプロセッサ、ROM、RAMなどから構成されるコン
ピュータシステムである。前記RAMには、コンピュー
タプログラムが記憶されている。前記マイクロプロセッ
サが、前記コンピュータプログラムに従って動作するこ
とにより、メモリカード10は、その機能を達成する。
記憶するための領域を備えている。 (2)公開鍵記憶部107 公開鍵記憶部107は、公開鍵としての数nと数eとを
記憶するための領域を備えている。
0とから構成されている。一般領域111及びセキュア
領域110は、それぞれ情報を記憶するための領域であ
る。一般領域111は、外部からの情報の自由な書き込
みと、情報の自由な読み出しが許可される領域である。
一方、セキュア領域110は、認証部113により、メ
モリカード10が装着される相手の装置の正当性が認証
された場合にのみ、情報の書き込み及び情報の読み出し
が許可される領域である。
ための領域を備えている。 (5)生成制御部102 生成制御部102は、素数生成部101へ、素数qと、
素数qのビットサイズLenqと、2以外の小さな素数
であるL1 、L2 、・・・、Ln と、(L1 ×L2×・・・×
Ln )のビットサイズLenLとを出力し、次に、素数
生成部101から1個の素数pを受け取り、受け取った
素数pを素数pa として素数記憶部103へ書き込む。
素数qと、素数qのビットサイズLenqと、2以外の
小さな素数であるL1 、L2 、・・・、Ln と、(L1 ×
L2×・・・×Ln )のビットサイズLenLとを出力し、
次に、素数生成部101から1個の素数pを受け取り、
受け取った素数pを素数pb として素数記憶部103へ
書き込む。
enqと、2以外の小さな素数であるL1 、L2 、・・
・、Ln と、(L1 ×L2 ×・・・×Ln )のビットサイズ
LenLとについては、後述する。上記に説明している
ように、生成制御部102は、素数生成部101を2
回、制御することにより、2個の素数を生成している。
後述するように、素数生成部101により素数を生成す
るプロセスにおいて、乱数を用いているので、生成され
た2個の素数が偶然一致する可能性は、低いと考えられ
る。しかしながら、生成された2個の素数が偶然一致し
た場合において、生成制御部102は、再度2回目の素
数生成をするように、素数生成部101を制御し、必ず
異なる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’とから
なるパラメタ群を用いるとしてもよい。
である。また、素数(L1 、L2 、・・・、Ln )≠素数
(L1 ’、L2 ’、・・・、Lj ’)である。これは、素
数(L 1 、L2 、・・・、Ln )と、素数(L1 ’、
L2 ’、・・・、Lj ’の少なくとも1個が異なっている
ことを示している。 (6)素数生成部101 素数生成部101は、図3に示すように、乱数生成部1
31、判定対象生成部132、第1素数判定部133、
第2素数判定部134及び制御部135から構成されて
いる。
数qのビットサイズの2倍のビットサイズをもつ素数p
を出力する。
の小さな素数である。また、(L1 ×L2 ×・・・×
Ln )のビットサイズLenLは予め与えられているも
のであるとする。小さな素数の例として、想定する入力
qのビットサイズより小さな素数、例えばL1 =3、L
2 =5などが挙げられる。
は、生成制御部102からビットサイズLenq及びL
enLを受け取り、受け取ったビットサイズLenq及
びLenLを用いて、(Lenq−LenL−1)ビッ
トサイズの乱数R’を生成し、生成した乱数R’を判定
対象生成部132へ出力する。
部133から後述する第1判定情報を受け取る。また、
第2素数判定部134から後述する第2判定情報を受け
取る。乱数生成部131は、第1判定情報、又は第2判
定情報を受け取ると、再度、受け取ったビットサイズL
enq及びLenLを用いて、(Lenq−LenL−
1)ビットサイズの乱数R’を生成し、生成した乱数
R’を判定対象生成部132へ出力する。
132は、生成制御部102から素数qを受け取り、乱
数生成部131から乱数R’を受け取る。次に、判定対
象生成部132は、受け取った素数qと乱数R’とを用
いて、以下の式を満たす数Rと数Nとを生成する。
数判定部134へ出力し、生成した数Nを第1素数判定
部133及び第2素数判定部134へ出力する。
133は、判定対象生成部132から数Nを受け取り、
受け取った数Nを用いて、次に示す判定式1の成立を判
定する。 2N-1 =1 mod N (判定式1) 判定式1が成立する場合には、その旨を示す第1判定情
報を第2素数判定部134へ出力する。判定式1が成立
しない場合には、その旨を示す第1判定情報を乱数生成
部131へ出力する。
134は、判定対象生成部132から数Nと数Rとを受
け取り、また、第1素数判定部133から、判定式1が
成立する旨を示す第1判定情報受け取る。判定式1が成
立する旨を示す第1判定情報を受け取ると、次に、第2
素数判定部134は、受け取った数Nと数Rとを用い
て、次に示す判定式2の成立を判定する。
制御部102へ出力する。判定式2が成立しない場合に
は、その旨を示す第2判定情報を乱数生成部131へ出
力する。 (制御部135)制御部135は、素数生成部101を
構成する各要素を制御する。
数判定部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ページに詳しく述べられている。
部101は素数を出力する。また、乱数R’のビットサ
イズがLenq−LenL−1であるので、数Rのビッ
トサイズがLenq−1になり、数Nのビットサイズが
2×Lenqになる。
及び素数pb を読み出し、読み出した素数pa と素数p
b とを乗じて整数n=pa ×pb を算出し、算出した整
数nを秘密鍵記憶部105及び公開鍵記憶部107へ書
き込み、数(p a −1)と数(pb −1)との最小公倍
数L=LCM(pa −1、pb −1)を算出する。
104から乱数eを受け取り、受け取った乱数eを用い
て、数d=e-1 mod L を算出し、算出した数d
を秘密鍵記憶部105へ書き込み、乱数eを公開鍵記憶
部107へ書き込む。 (8)乱数生成部104 乱数生成部104は、乱数eを生成し、生成した乱数e
を公開鍵生成部106へ出力する。
乱数eを読み出し、読み出した整数n及び乱数eをPC
30へ出力する。また、送受信部114は、配信サーバ
装置40からインターネット60及びPC30を介し
て、暗号文cを受信し、受信した暗号文cをメモリ部1
09内の一般領域111へ書き込む。
し、秘密鍵記憶部105から数d及び整数nを読み出
し、読み出した数d及び整数nを用いて、次の式によ
り、暗号文cを復号して、復号文m’を生成する。m’
=cd mod n次に、復号部108は、生成した復号
文m’をメモリ部109内のセキュア領域110へ書き
込む。
装置との間で、相手の装置の正当性を認証する。正当性
が認証された場合に、メモリ部109内のセキュア領域
110への情報の書き込み及びセキュア領域110から
の情報の読み出しを許可する。
制御する。1.3 PC30PC30は、図4に示すよ
うに、送受信部301、認証部302、制御部303、
送受信部304、入力部305、表示部306から構成
されている。
ッサ、ROM、RAM、ハードディスクユニット、液晶
ディスプレィユニット、キーボード、マウスなどから構
成されるコンピュータシステムである。前記RAM又は
前記ハードディスクユニットには、コンピュータプログ
ラムが記憶されている。前記マイクロプロセッサが、前
記コンピュータプログラムに従って動作することによ
り、前記装置は、その機能を達成する。
及び乱数eを受け取り、受け取った整数n及び乱数e
を、インターネット60を介して、配信サーバ装置40
へ送信する。また、PC30は、配信サーバ装置40か
ら、インターネット60を介して、暗号文cを受け取
り、受け取った暗号文cを、メモリカード10の送受信
部114へ送信する。
01、公開鍵記憶部402、暗号化部403、制御部4
04及び情報記憶部405から構成されている。この装
置は、PC30と同様に、コンピュータシステムであ
り、マイクロプロセッサが、コンピュータプログラムに
従って動作することにより、前記装置は、その機能を達
成する。
る。平文mは、具体的には、デジタルの音楽情報であ
る。 (2)公開鍵記憶部402 公開鍵記憶部402は、公開鍵としての整数n及び乱数
eを記憶するための領域を備えている。
介して、整数n及び乱数eを受信し、受信した整数n及
び乱数eを公開鍵記憶部402へ書き込む。また、送受
信部401は、暗号化部403から、暗号文cを受け取
り、受け取った暗号文cを、インターネット60を介し
て、PC30へ送信する。
出し、公開鍵記憶部402から整数n及び乱数eを読み
出し、読み出した整数n及び乱数eを用いて、次の式に
より、平文mを暗号化して、暗号文cを生成する。c=
me mod n次に、暗号化部403は、生成した暗号
文cを送受信部401へ出力する。
を制御する。 1.5 PDA20及びヘッドフォン21 PDA20は、メモリカード10のメモリ部109内の
セキュア領域110に書き込まれている復号文m’を読
み出し、読み出した復号文m’をアナログの音声信号に
変換し、音声信号をヘッドフォン21へ出力する。
換して出力する。 1.6 携帯電話50 携帯電話50は、無線電波を用いて、他の電話機との間
で通信を行うことができる携帯型の電話機としての構成
を有し、さらに、PC30及びPDA20と同様の構成
を有する。
ロプロセッサ、ROM、RAM、液晶ディスプレィユニ
ット、入力部、通信部、マイク、スピーカなどから構成
されるコンピュータシステムである。前記RAMには、
コンピュータプログラムが記憶されている。前記マイク
ロプロセッサが、前記コンピュータプログラムに従って
動作することにより、携帯電話50は、その機能を達成
する。
リカード10から整数n及び乱数eを受け取り、受け取
った整数n及び乱数eを、インターネット60を介し
て、配信サーバ装置40へ送信する。また、携帯電話5
0は、配信サーバ装置40から、インターネット60を
介して、暗号文cを受け取り、受け取った暗号文cを、
メモリカード10の送受信部114へ送信する。
モリカード10に記憶されているデジタル著作物を変換
して電気信号を生成し、生成した電気信号を音声に変換
して、音声を出力する。 1.7 コンテンツ配信システム1の動作 (1)コンテンツ配信システム1の動作コンテンツ配信
システム1の動作について、図6に示すフローチャート
を用い て説明する。
ランダムに素数pa 及び素数pb を生成し、生成した素
数pa 及び素数pb を素数記憶部103へ書き込む(ス
テップS101)。次に、公開鍵生成部106は、素数
記憶部103から素数pa 及び素数pb を読み出し、読
み出した素数pa と素数pb とを乗じて整数n=pa×
pb を算出し、算出した整数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)。
は、PC30からインターネット60及び送受信部40
1を介して、整数n及び乱数eを、受信して記憶し(ス
テップS106)、暗号化部403は、情報記憶部40
5から平文mを読み出し、公開鍵記憶部402から整数
n及び乱数eを読み出し、読み出した整数n及び乱数e
を用いて、次の式により、平文mを暗号化して、暗号文
cを生成する。
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)。
部109内のセキュア領域110に書き込まれている復
号文m’を読み出し(ステップS111)、読み出した
復号文m’をアナログの音声信号に変換し、音声信号を
ヘッドフォン21へ出力する。ヘッドフォン21は、音
声信号を音声に変換して出力する(ステップS11
2)。
は、制御部112が、メモリカード10を構成する各要
素を制御することにより行われる。 (2)素数生成部101の動作 素数生成部101の動作について、図7に示すフローチ
ャートを用いて説明する。
−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へ戻って処理を繰り返す。
第2素数判定部134は、22R≠1mod N(判定式
2)の成立を判定し、成立しない場合は(ステップS1
35)、ステップS132へ戻って処理を繰り返す。成
立する場合は(ステップS135)、素数として数Nを
生成制御部102へ出力し、素数生成部101は、処理
を終了する。
は、制御部135が、素数生成部101を構成する各要
素を制御することにより行われる。 1.8 計算量の評価 素数生成部101による計算量について説明する。以下
において、L1 =3、L2 =5、L3 =7、n=3、L
enq=256ビットとし、2×Lenq=512ビッ
トの冪乗剰余演算における演算回数を見積もる。
となる確率は、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 のいずれでも割り切れない。
の数が、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ページに詳しく説明されている。
は、 (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と同じ確率である。
する確率は、Miller-Rabin判定を通過する確率と等し
く、1/4以下である。従って、1つの合成数に対して
行う冪乗剰余演算の回数は、1+1/4以下である。当
然、素数に対して行う冪乗剰余演算回数は、2である。
以上より、256ビットの素数を用いて、512ビット
の素数を生成するために行う512ビットの冪乗剰余演
算回数は、 (1+1/4)((ln 2512 )×8/35−1)+
2=89.5 以下である。
ビットの素数から、2×Lenq=512ビットの素数
を生成するが、第1の実施の形態の素数生成部101を
再帰的に使用することで、簡単に素数が分かる16ビッ
トの素数から、512ビットの素数を生成することがで
きる。よって、128ビットから256ビットの素数を
生成する場合も同様に考えると、256ビットの素数を
生成するために行う256ビットの冪乗剰余演算回数
は、 (1+1/4) ((ln 2256 )×8/35−1)
+2=45.1 以下である。
し、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
2512 )×8/35−1)}+2(1/512+1/6
4+1/8+1)=109.0 以下である。
べて、計算量が小さく、また、確定的に素数生成が可能
になる。また、確定的な素数生成法である従来例2と比
べて、2.2倍高速である。以上に説明したように、第
1の実施の形態によると、従来例と比較すると、確定的
な素数生成の計算時間を短縮できるという優れた効果が
ある。
と、 N=1 mod 2、 N=1 mod L1 、 N=1 mod L2 、・・ N=1 mod Ln を満たす素数Nに限定して、素
数生成を行うので、生成できる素数の種類が少ない。
定されることは、暗号の使用法によっては、安全性の面
で懸念される場合がある。次に示す第2の実施の形態
は、この問題を解決することを目的としている。 2.第2の実施の形態 本発明に係る別の実施の形態としてのコンテンツ配信シ
ステム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へ書き込む。
へ、素数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へ書き込む。
01b 素数生成部101bは、素数q、q mod L1 、q
mod L2 、・・・、q mod Ln (L1 、L
2 、・・・、Ln は2以外の小さな素数)及び素数qのビ
ットサイズLenqが与えられた場合、素数qのビット
サイズの2倍のビットサイズをもつ素数pを生成して出
力する。
×L2 ×・・・×Ln )のビットサイズLenLは予め与
えられているものとする。また、小さな素数の例とし
て、入力される素数qのビットサイズより小さな素数が
挙げられる。素数生成部101bは、図8に示すよう
に、部分情報設定部136b、乱数生成部131b、判
定対象生成部132b、第1素数判定部133b、第2
素数判定部134b及び制御部135bから構成され
る。
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へ出力する。
下に説明する。部分情報設定部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) を計算する。
・、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 )を求め
る。
本 栄司、「暗号理論入門」、共立出版、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 とする。
た数uを判定対象生成部132bへ出力する。(2)乱
数生成部131b 乱数生成部131bは、生成制御部102からLenq
及びLenLを受け取り、受け取ったLenq及びLe
nLを用いて、(Lenq−LenL−1)ビット長の
乱数R’を生成し、生成した乱数R’を判定対象生成部
132bへ出力する。
定部133bから後述する第3判定情報を受け取る。ま
た、第2素数判定部134bから後述する第4判定情報
を受け取る。乱数生成部131bは、第3判定情報、又
は第4判定情報を受け取ると、再度、受け取ったビット
サイズLenq及びLenLを用いて、(Lenq−L
enL−1)ビットサイズの乱数R’を生成し、生成し
た乱数R’を判定対象生成部132bへ出力する。
q、L1 、L2 、・・・、Ln を受け取り、部分情報設定
部136bから数uを受け取り、乱数生成部131bか
ら乱数R’を受け取る。次に、受け取った素数q、L
1 、L2 、・・・、Ln 、数u及び乱数R’を用いて、以
下の式を満たす数R及び数Nを生成する。
Nを第2素数判定部134bへ出力し、生成した数Nを
第1素数判定部133bへ出力する。(4)第1素数判
定部133b第1素数判定部133bは、判定対象生成
部132bから数Nを受け取り、受け取った数Nを用い
て、次の判定式3が成立するか否かを判定する。
は、成立する旨を示す第3判定情報を第2素数判定部1
34bへ出力する。判定式3が成立しない場合には、成
立しない旨を示す第3判定情報を乱数生成部131bへ
出力する。 (5)第2素数判定部134b 第2素数判定部134bは、判定対象生成部132bか
ら数R及び数Nを受け取る。また、第1素数判定部13
3bから判定式3が成立する旨を示す第3判定情報を受
け取る。
部134bは、受け取った数R及び数Nを用いて、次の
判定式4が成立するか否かを判定する。 22R≠1 mod N (判定式4) 判定式4が成立する場合には、第2素数判定部134b
は、数Nを素数pとして生成制御部102へ出力する。
判定部134bは、判定式4が成立しない旨を示す第4
判定情報を乱数生成部131bへ出力する。 (6)制御部135b 制御部135bは、素数生成部101bを構成する各要
素を制御する。 2.3 素数生成部101bの検証 第1素数判定部133b及び第2素数判定部134b
は、それぞれ素数生成部101の第1素数判定部133
及び第2素数判定部134と同じであるので、素数生成
部101bは、素数生成部101と同様、素数を出力す
る。
−LenL−1であるので、RのビットサイズがLen
q−1になり、Nのビットサイズが2×Lenqにな
る。 2.4 素数生成部101bの動作 素数生成部101bの動作について図9に示すフローチ
ャートを用いて説明する。
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へ戻って処理を繰り返す。
2素数判定部134bは、判定式4の成立を判定し、成
立しない場合は(ステップS156)、ステップS15
3へ戻って処理を繰り返す。成立する場合は(ステップ
S156)、第2素数判定部134bは、素数pとして
数Nを生成制御部102へ出力し(ステップS15
7)、素数生成部101bは、処理を終了する。
る。ただし、第1の実施の形態の計算量と比べて、部分
情報設定部136bの計算量のみが増加する。しかし、
部分情報設定部136bは、mod L1 、modL
2 、・・・、mod Ln の計算、及び中国人の剰余定理
の計算のみであり、2×Lenqビットの数の計算と比
較して、小さくほとんど0とみなしても問題ない。
量に関し、第1の実施の形態と同等の効果が望める。ま
た、N=N1 mod L1 、N2 mod L2 、・・
・、Nn modLn であり、N1 、N2 、・・・、Nn は
乱数であるので、素数生成部101bは、生成する素数
を限定しない。そのため、素数が限定されることによる
安全性の懸念がなくなる。
(1)生成する素数を限定しない、(2)確定的な素数
を生成する、(3)従来例と比較して高速に素数を生成
するという優れた効果がある。以上に説明したように第
2の実施の形態によると、従来例と比較して、確定的な
素数生成の計算時間を短縮でき、さらに、生成する素数
の種類を限定しないため、素数を限定することによる安
全性の懸念がなくなり、安全性の面でもよい。このこと
から、高速な暗号方式や署名方式を可能にする素数生成
部を提供することができ,その実用的価値は大きい。
ぞれ説明した素数生成を適用する暗号通信システム(図
示していない)について説明する。暗号通信システム
は、管理センタ装置、ユーザA装置及びユーザB装置か
ら構成される。管理センタ装置、ユーザA装置及びユー
ザB装置は、それぞれ、相互にネットワークを介して接
続されている。
形態に示す生成制御部102及び素数生成部101を備
え、生成制御部102及び素数生成部101により2個
の素数pa 及び素数pb を生成する。なお、管理センタ
装置は、内部に、第2の実施の形態に示す生成制御部1
02及び素数生成部101bを備えるとしてもよい。以
下に、暗号通信システムの動作について、図10に示す
フローチャートを用いて説明する。ここでは、素因数分
解することが計算量上困難であることを安全性の根拠と
するRSA暗号を応用している。RSA暗号について
は、岡本 龍明、山本 博資、「現代暗号」、産業図
書、1997、110〜113ページが詳しく説明され
ている。
01により、ランダムに素数pa 及び素数pb を生成し
(ステップS171)、素数pa 及び素数pbを用い
て、n=pa ×pb 、及びL=LCM(pa −1、pb
−1)を計算する(ステップS172)。
e(1≦e≦L−1,GCD(e,L)=1)を発生さ
せ、d=e-1 mod Lを計算する(ステップS17
3)。ここで、GCD(e,L)は、eとLの最大公約
数である。その後、管理センタ装置は、素数pa 、素数
pb 及び数dを秘密鍵として、ユーザA装置に対して秘
密裏に送信し(ステップS174)、ユーザB装置に対
して、数n及び数eをユーザA装置の公開鍵として公開
して送信する(ステップS175)。
ップS176)。ここで、mは、ユーザB装置がユーザ
A装置へ送信するメッセージである。次に、ユーザB装
置は、得られたcを暗号文として、ユーザA装置に送信
する(ステップS177)。
号メッセージm’を得る(ステップS178)。ここ
で、 cd =(me )d mod n =m**(e×d mod L) mod n =m1 mod n =m mod n となることから、メッセージmが復号メッセージm’と
同一であることは明らかである。
ップS171において、素数生成が行われる。この素数
生成のステップにおいて、第1の実施の形態又は第2の
実施の形態に示す生成制御部及び素数生成部が用いられ
るので、第1の実施の形態又は第2の実施の形態におい
て説明した効果が得られる。
小さな素数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を素数として生成する。
前記素数qと前記乱数R’から、R=L1 ×L2 ×・・・
×Ln ×R’と、N=2×R×q+1とを生成し、生成
した前記N及び前記Rを用いて、前記Nの素数判定を行
う。また、素数qと2以外の前記素数qより小さな素数
L1 、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の素数判定を行う。
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 L
i(i=1、2、・・・、n)を満たすuを計算する。
2N-1 =1 mod Nの成立を判定し、前記N及びR
に対し、22R≠1 mod Nの成立を判定する。この
ように、本発明によると、確定的な素数生成ができると
ともに、従来例と比較して、計算時間を短縮できる。ま
た、生成する素数の種類を限定しないようにできるの
で、素数を限定することによる安全性の懸念がなくな
り、安全性の面でもよい。
可能にする情報セキュリティ装置及び素数生成装置を提
供することができ,その実用的価値は大きい。 5.その他の変形例 以上、実施の形態に基づいて説明したが、本発明はこれ
らの実施の形態に限られないことは勿論である。次のよ
うに構成してもよい。
生成部により、整数Lenを入力とし、Lenビットの
素数を出力するとしてもよい。 (2)上記において説明した素数生成部は、独立した1
個の装置であるとしてもよい。 (3)本発明は、本実施の形態に示す素数生成部を備え
る素数応用装置であるとしてもよい。素数応用装置の具
体的な例は、暗号化装置及び暗号復号装置からなる暗号
通信システム、デジタル署名作成装置及び署名検証装置
からなるデジタル署名システムである。これらのシステ
ムは、情報を安全かつ確実に扱う情報セキュリティシス
テムである。
定部134、第1素数判定部133b、第2素数判定部
134bは、上記実施の形態と異なる素数判定式を使用
するとしてもよい。例えば、第1素数判定部133及び
第1素数判定部133bは、次の判定式を用いるとして
もよい。
である。また、第2素数判定部134及び第2素数判定
部134bは、つぎの判定式を用いるとしてもよい。 b2R≠1 mod N 又は、 GCD(b2R−1、N)=1 としてもよい。但し、bは1≦b≦N−1を満たす整数
である。
ているが、その他のデジタル情報であるとしてもよい。
例えば、音声、動画像、静止画像、文章、表形式のデー
タ、コンピュータプログラムなどのデジタル情報である
としてもよい。 (6)上記の実施の形態において、RSA暗号を適用す
るセキュリティシステムにおける素数生成部について説
明しているが、素数生成部の利用は、RSA暗号を適用
するセキュリティシステムに限定されるものではない。
例えば、楕円暗号において、素数生成部を適用すること
が可能である。楕円暗号では、1個の素数を生成して用
いる。
してもよい。また、これらの方法をコンピュータにより
実現するコンピュータプログラムであるとしてもよい
し、前記コンピュータプログラムからなるデジタル信号
であるとしてもよい。また、本発明は、前記コンピュー
タプログラム又は前記デジタル信号をコンピュータ読み
取り可能な記録媒体、例えば、フレキシブルディスク、
ハードディスク、CD―ROM、MO、DVD、DVD
−ROM、DVD−RAM、半導体メモリなど、に記録
したものとしてもよい。また、これらの記録媒体に記録
されている前記コンピュータプログラム又は前記デジタ
ル信号であるとしてもよい。
ラム又は前記デジタル信号を、電気通信回線、無線又は
有線通信回線、インターネットを代表とするネットワー
ク等を経由して伝送するものとしてもよい。また、本発
明は、マイクロプロセッサとメモリとを備えたコンピュ
ータシステムであって、前記メモリは、上記コンピュー
タプログラムを記憶しており、前記マイクロプロセッサ
は、前記コンピュータプログラムに従って動作するとし
てもよい。
号を前記記録媒体に記録して移送することにより、又は
前記プログラム又は前記デジタル信号を前記ネットワー
ク等を経由して移送することにより、独立した他のコン
ピュータシステムにより実施するとしてもよい。 (7)上記実施の形態及び上記変形例をそれぞれ組み合
わせるとしてもよい。
をすることが計算量の上で困難であることを根拠とし
て、2個の素数を生成し生成した2個の素数の乗算を用
いて、所定の情報を安全かつ確実に扱い、各素数生成の
際に、既知の素数qの2倍のビット長を有する素数Nを
生成する情報セキュリティ装置であって、素数q及びn
個の素数L1 、L2 、・・・、Ln を取得し、ここで、
素数L1 、L2 、・・・、Ln は、それぞれ素数qより
小さい2以外の素数であり、素数qは、 q=1mod
Li (i=1、2、・・・、n) を満たす取得手段
と、取得した前記素数L1 、L2 、・・・、Ln に係る
数を除外した選択により、取得した前記素数qの2倍の
ビット長を有する数Nを生成する生成手段と、生成した
数Nの素数判定を行い、数Nが素数であると判定とされ
た場合に、数Nを素数として出力する判定手段とを備え
る。
きるとともに、従来と比較して、計算時間を短縮でき
る。また、前記生成手段は、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の素数判定を行う。
る。また、前記生成手段は、取得した前記素数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の素数判定を行う。
限定することなく、計算時間を短縮できる。
ク図である。
る。
る。
ある。
チャートである。
である。
ある。
トである。
トである。
Claims (12)
- 【請求項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】 前記生成手段は、 N=1 mod Li (i=1、2、・・・、n) を
満たす前記数Nを生成することを特徴とする請求項1に
記載の情報セキュリティ装置。 - 【請求項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】 前記判定手段は、生成した前記数Nにつ
いて、 第1判定式 2N-1 =1 mod N が成立するか否かを判定し、 さらに、生成した前記数N及び前記数Rについて、 第2判定式 22R≠1 mod N が判定するか否かを判定し、 第1判定式及び第2判定式の両方が成立する場合に、数
Nが素数であると判定することを特徴とする請求項3に
記載の情報セキュリティ装置。 - 【請求項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】 前記部分情報生成部は、 整数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】 前記判定手段は、生成した前記数Nにつ
いて、 第1判定式 2N-1 =1 mod N が成立するか否かを判定し、 さらに、生成した前記数N及び前記数Rについて、 第2判定式 22R≠1 mod N が判定するか否かを判定し、 第1判定式及び第2判定式の両方が成立する場合に、数
Nが素数であると判定することを特徴とする請求項6に
記載の情報セキュリティ装置。 - 【請求項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】 既知の素数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】 既知の素数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】 既知の素数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】 既知の素数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を素数として出力する判定ステ
ップとを含むことを特徴とする記録媒体。
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)
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 |
-
2002
- 2002-03-27 JP JP2002089675A patent/JP4102090B2/ja not_active Expired - Lifetime
Cited By (5)
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 |