M = w-1C mod P w-1は wのまいなす一乗と言う意味です
この式でMを求めるプログラミングをCで作りたいのですが上手く想像ができないのですが何をつかえばいいかヒントをもらえないでしょうか?
ヒントをもらってから一度作ってみてまた投稿したいのでお願いしますm(__)m
mod計算?
Re: mod計算?
W-1C愛川 さんが書きました:M = w-1C mod P w-1は wのまいなす一乗と言う意味です
の
C
とは何でしょうか?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: mod計算?
ライセンス的に問題がなければ、The GNU MP Bignum Libraryを使うのが簡単でしょう。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: mod計算?
https://ja.wikipedia.org/wiki/Merkle-He ... 7%E5%8F%B7
これの復号部分をC言語で作りたいという状況ですご指摘お願いしますm(_ _)m
これの復号部分をC言語で作りたいという状況ですご指摘お願いしますm(_ _)m
Re: mod計算?
やっぱり,整数の剰余類環上での話ですね。
であれば,w-1の説明は混乱を避けるために,wの-1乗ではなくwの(乗法の)逆元と書いてください。
で,互いに素な整数の乗法の逆元を求めるには,拡張ユークリッド互除法というものを使います。
まぁ,実際はwとqの組を求めるときにユークリッド互除法を使って調べて,その途中結果からw-1も求めておけばよいと思います。
そして,wは暗号にも復号にも使わないので,秘密鍵としてwのかわりにw-1を保持すれば十分だと思います。
オフトピック
Wikipediaの該当ページにおける変数の使用方法におけるq,rについて,互いに素が条件なのでqは素数である必要は無く,剰余体上の話とは限らない
で,互いに素な整数の乗法の逆元を求めるには,拡張ユークリッド互除法というものを使います。
まぁ,実際はwとqの組を求めるときにユークリッド互除法を使って調べて,その途中結果からw-1も求めておけばよいと思います。
そして,wは暗号にも復号にも使わないので,秘密鍵としてwのかわりにw-1を保持すれば十分だと思います。
Re: mod計算?
なるほど...ユーグリッド互助法を使うプログラミング作ればいいのですね!ご指摘ありがとうございますm(_ _)m
何の関数を使うかとは教えていただけないでしょうか?
何の関数を使うかとは教えていただけないでしょうか?