{"id":738,"date":"2018-01-19T15:06:11","date_gmt":"2018-01-19T05:06:11","guid":{"rendered":"http:\/\/www.nickdu.com\/?p=738"},"modified":"2018-01-19T15:06:11","modified_gmt":"2018-01-19T05:06:11","slug":"generate-large-prime-numbers-using-boost-library","status":"publish","type":"post","link":"https:\/\/nickdu.com\/?p=738","title":{"rendered":"Generate large prime numbers using boost library"},"content":{"rendered":"<p>Recently I am working on a RSA like algorithm project, which needs to generate large secret prime numbers, e.g. 512 bits, or 1024 bits. Luckily we are using\u00a0<a href=\"http:\/\/www.boost.org\/\" target=\"_blank\" rel=\"noopener\">boost library<\/a>, which is inbuilt lots of functions to assist this generation.<\/p>\n<pre lang=\"cpp\">#include &lt;boost\/multiprecision\/miller_rabin.hpp&gt;\n#include &lt;boost\/random\/mersenne_twister.hpp&gt;\n\nusing namespace boost::multiprecision;\nusing namespace boost::random;\n\n...\n\/\/Generate a secret RSA-like 512 bits primes p\ncpp_int p = GetPrime();\n...\ncpp_int GetPrime()\n{\n    mt11213b base_gen(clock());\n    independent_bits_engine&lt;mt11213b, 512, cpp_int&gt; gen(base_gen);\n\n    \/\/ Generate some large random primes\n    \/\/ Note 25 trials of Miller-Rabin \n    \/\/ likelihood that number is prime\n    cpp_int n;\n    do\n    {\n        n = gen();\n    }while (!miller_rabin_test(n, 25));\n    return n;\n}\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Recently I am working on a RSA like algorithm project, which needs to generate large secret prime numbers, e.g. 512 bits, or 1024 bits. Luckily we are using\u00a0boost library, which is inbuilt lots of functions to assist this generation. #include &lt;boost\/multiprecision\/miller_rabin.hpp&gt; #include &lt;boost\/random\/mersenne_twister.hpp&gt; using namespace boost::multiprecision; using namespace boost::random; &#8230; \/\/Generate a secret RSA-like 512 &hellip; <a href=\"https:\/\/nickdu.com\/?p=738\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Generate large prime numbers using boost library&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,2],"tags":[],"class_list":["post-738","post","type-post","status-publish","format-standard","hentry","category-cc","category-it"],"_links":{"self":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts\/738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=738"}],"version-history":[{"count":0,"href":"https:\/\/nickdu.com\/index.php?rest_route=\/wp\/v2\/posts\/738\/revisions"}],"wp:attachment":[{"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=738"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=738"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nickdu.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}