• 締切済み

可換な指数関数

 RSA暗号で使われるh(x,y) = x^y mod n という指数関数が入れ替え可能な(h(h(x,y1),y2) = h(h(x,y2),y1))一方向アキュムレータだととある記事に書いてあったので、それに従って以下のような関数fを例に計算してみましたが、f(f(f(x,3),5),7) != f(f(f(x,5),7),3) でした。可換ではないように見えるのですが、どこが間違っているのか教えて下さい。 n = 47 * 59 (47 = 2 * 23 + 1, 59 = 2 * 29 + 1)  f(x,y) = x^y mod n  よろしくお願いします。  

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

や, f(f(f(x, 3), 5), 7) = f(f(f(x, 5), 7), 3) になるはずですけど.... どの x の値に対してどのように計算したらどうなったのかがわからないので「どこが間違っているのか」と聞かれてもねぇ.

bobviv
質問者

お礼

 回答を頂き、有難うございました。式は合っていたようですが、プログラム言語上のミス(intに押し込んでいました^^>)で違った値が表示されていただけでした。  お騒がせして申し訳ありませんでした。