新月の開発
373f7f9b :
Anonymous
2013-12-08 10:58
>>ba32298d
返信ありがとうございます。
C言語版apolloでは、1ループ毎にp+=2,q+=2していますね。
for(count = 0;count < RSACreateGiveup;count++,mpz_add_ui(p,p,2),mpz_add_ui(q,q,2)){
カウンタのチェックがおかしいのはC言語版由来のようです。
if(count != RSACreateGiveup) return 0;
上のようになっていますが、if(count != RSACreateGiveup-1) return 0;が正しいと思います。
(p,qを更新しないため)実質1回しか鍵を作っていないPython版と違い、300回試行するのだから問題はあまり無いのかもしれません。
そもそも問題というか、
key_dが0なら勿論鍵として使えませんし、0x7743^(ed)==0x7743(mod n)というのは、RSA暗号化・復号化を試してみるだけのテストですから、
ここでの判定がおかしくても署名や検証に失敗するだけです。Python版でも大した問題はないですね。
Powered by
shinGETsu
.
Amazonのアソシエイトとして、新月サンプルゲートウェイは適格販売により収入を得ています。
[ad] ハイスクール・フリート 5.1ch Blu-ray Disc BOX
[ad] くまクマ熊ベアー 第1巻
[ad] アンダーニンジャ
[ad] 「私、能力は平均値でって言ったよね!」Blu-ray BOX
[ad] 劇場版ハイスクール・フリート