2048bitの数が素数でないことを確認するには
RSA公開鍵から素数の積を取り出す方法はphp使われていたので、node.jsで一部試してみた
bigintモジュールで出来る
事前にGNU MPがインストールされていることが前提
OSX
Ubuntu
apt-get install libgmp-dev
bigintモジュール本体のインストール
npm install bigint
コード
var bigint = require('bigint'); console.log(bigint('0xB0F977574AB8417031405CF722B2B73C8A6E32F32B42E3A1C44341AC58EA61F4E3CAD5E953426043E4B01319FA78246E29BA2D60C8B0B919DF0D39D12EC1069EA697C72FCBC3D112A26477D8683A75EF6935E3548A7A2532271516CB96DFC097CF30E66FF9A06916764D13AA0847E6A4E355B94EA60FA7A9A21887CA83CB2EFE47A9C2F2354E6E0C418066752040865BD5E29D06A1CAD2BCCAD00D6463F7E3FA95ABC352FFB0B07DA8998DBBFA69C587EAB13499E4D3A20E3749F88FF2A477EAB2610C707E51B17E649C223FD9AABD38227C6E055A725B6A48207987D9214D1129A9DB3B649148EBA0E57C87323E4035600411B487DB6100BE219DDAF6D17889').probPrime());
まとめ
GNU MPというライブラリが多倍長整数を扱う一般的なライブラリの一つの様です。これを使うことで、node.js以外でも様々なスクリプト言語で大きな数が扱えるようです。関連記事
- 東大の過去問をPerlに解かせようとしたらbignumとbigintの違いを知った
- 東大の入試問題をNode.jsに解かせてみた:
- 1/7がつくる楕円をJulia言語でプロットする
- node.jsでtruncatable primeを試したら、OpenSSLをビルドした件