The "d" private key compontent is apparently wrong
Closed this issue · 5 comments
01:20:54 mm_freak $ it might be a bug, because d isn't used at all
01:21:15 mm_freak $ the code uses optimized CRT operations using the d's residues modulo p - 1 and q - 1
01:21:38 mm_freak $ (the fact that it does it that way is not a bug)
01:22:54 mm_freak $ d33tah: 46730330223584118622160180015036832148732986808519344675210555262940258739805766860224610646919605860206328024326703361630109888417839241959507572247284807035235569619173792292786907845791904955103601652822519121908367187885509270025388641700821735345222087940578381210879116823013776808975766851829020659073
01:23:00 mm_freak $ this is the correct d
01:23:09 mm_freak $ this code is weird in many ways
01:23:11 mm_freak $ also it's insecure
01:23:32 mm_freak $ it has lots of side channels
BTW, I didn't want to criticize, I really like the project, but I copied the "side channels" remark because frankly I have no idea what it's about and I assumed it might be something worth attention.
What are the sources for all this information?
On 19 Sep 2013, at 01:34, Jacek Wielemborek notifications@github.com wrote:
BTW, I didn't want to criticize, I really like the project, but I copied the "side channels" remark because frankly I have no idea what it's about and I assumed it might be something worth attention.
�
Reply to this email directly or view it on GitHub.
#crypto, irc.freenode.net
I will have a look into that.
d is correct in OTServ as well but I do see your point about the weirdness of the code.
Please have a look now:
https://github.com/opentibia/server/blob/master/src/rsa.cpp
I have rewritten the whole code, there is no need of d in otserv.cpp or in files (p and q are the only two required).