プロが教える店舗&オフィスのセキュリティ対策術

今勉強している任意倍長精度整数の素数を判定するアルゴリズム内で
x^q mod n
という計算をするところがあるのですが、
正確に計算しようとすると計算量が膨れ上がってしまって
高速にできなくて困っています。
参考にしている文献に
"x^q mod nの計算ではx^q mod nを正確に求める必要は無く、
x^q ≡ x^q' (mod n)となる x^q'でよい"という記述があるのですが
どういう意味なのかよくわかりません。

どなたか教えていただけないでしょうか?

A 回答 (3件)

ん~, 「繰り返しごとにやると計算量が増えてしまい」の意味が今一つわからない (ビット数が減るので x^q を計算してから n で割るよりは高速なはず) んですけど....


とりあえず, 「現在どのように計算しているのか」を挙げてもらえればヒントになるかもしれません.
    • good
    • 0

フェルマーの小定理(オイラーの定理)は使ってますか?


http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7% …
    • good
    • 0

どうせ x^q は一発で計算できないわけです. 言い替えれば何らかの処理を繰り返して x^q を計算するんだから, その繰り返しご

とに mod n を計算すれば出てくる数値は必ず n 未満になりますよね.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

qが9桁前後で、繰り返しごとにやると計算量が増えてしまい
高速にできなくて困っています

お礼日時:2007/02/06 18:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!