RSA暗号書いてみた
https://github.com/shive/try_rsa
$ make keygen python keygen.py P = fe03 Q = fc95 N = fa9ecbbf / log2(N): 31.9694 K = 10001 U = da17e869 (V = dec9) len(ORIGIN) = 22 b'\x8c\xc3\x92r\x82\xe2\x8a^\x82\xc6\x82\xd1\x82\xb1\x82\xde\x90\x85\x82\xcc\x89\xb9' origin_number: 5.485 b989cc828590de82b182d182c6825e8ae2827292c38c encrypt_number: 5.993 dcbe91b6fd2c1e876b607a14d133386db8e174c221a9f723 decrypt_number: 5.485 b989cc828590de82b182d182c6825e8ae2827292c38c $ make scons -Q scons: `.' is up to date. ./rsa origin: 古池や蛙とびこむ水の音 0000b989cc828590de82b182d182c6825e8ae2827292c38c encrypt: (binary) dcbe91b6fd2c1e876b607a14d133386db8e174c221a9f723 decrypt: 古池や蛙とびこむ水の音 0000b989cc828590de82b182d182c6825e8ae2827292c38c
公開鍵は(0xfa9ecbbf,0x10001)。OpenSSLはK=0x10001で固定らしい。本来何でもいい。秘密鍵は(0xfa9ecbbf,0xda17869)。
これだと鍵長は32bitということでいいのかな?SSH用の鍵とか鍵長を2048bitとかにしてるから素因数分解をするのは不可能というのがよくわかる。この32bitでももう想像もつかん。