Skip to content

Instantly share code, notes, and snippets.

@ewxrjk
Created April 24, 2016 09:51
Show Gist options
  • Save ewxrjk/77ae14ed374841de9827890e8277e639 to your computer and use it in GitHub Desktop.
Save ewxrjk/77ae14ed374841de9827890e8277e639 to your computer and use it in GitHub Desktop.
RFC3526 4096-bit prime
$ cat 4096.py
import pyprimes
p=0xFFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A92108011A723C12A787E6D788719A10BDBA5B2699C327186AF4E23C1A946834B6150BDA2583E9CA2AD44CE8DBBBC2DB04DE8EF92E8EFC141FBECAA6287C59474E6BC05D99B2964FA090C3A2233BA186515BE7ED1F612970CEE2D7AFB81BDD762170481CD0069127D5B05AA993B4EA988D8FDDC186FFB7DC90A6C08F4DF435C934063199FFFFFFFFFFFFFFFF
print pyprimes.is_prime(p)
q=(p-1)//2
print "%#x" % q
print pyprimes.is_prime(q)
print pow(2,q,p)
$ python 4096.py
/Users/richard/Library/Python/2.7/lib/python/site-packages/pyprimes/__init__.py:278: MaybeComposite: 1044388881413152506679602719846529545831269060992135009022588756444338172022322690710444046669809783930111585737890362691860127079270495454517218673016928427459146001866885779762982229321192368303346235204368051010309155674155697460347176946394076535157284994895284821633700921811716738972451834979455897010306333468590751358365138782250372269117968985194322444535687415522007151638638141456178420621277822674995027990278673458629544391736919766299005511505446177668154446234882665961680796576903199116089347634947187778906528008004756692571666922964122566174582776707332452371001272163776841229318324903125740713574141005124561965913888899753461735347970011693256316751660678950830027510255804846105583465055446615090444309583050775808509297040039680057435342253926566240898195863631588888936364129920059308455669454034010391478238784189888594672336242763795138176353222845524644040094258962433613354036104643881925238489224010194193088911666165584229424668165441688927790460608264864204237717002054744337988941974661214699689706521543006262604535890998125752275942608772174376107314217749233048217904944409836238235772306749874396760463376480215133461333478395682746608242585133953883882226786118030184028136755970045385534758453247 is only only probably prime
warnings.warn(message, MaybeComposite)
True
0x7fffffffffffffffe487ed5110b4611a62633145c06e0e68948127044533e63a0105df531d89cd9128a5043cc71a026ef7ca8cd9e69d218d98158536f92f8a1ba7f09ab6b6a8e122f242dabb312f3f637a262174d31bf6b585ffae5b7a035bf6f71c35fdad44cfd2d74f9208be258ff324943328f6722d9ee1003e5c50b1df82cc6d241b0e2ae9cd348b1fd47e9267afc1b2ae91ee51d6cb0e3179ab1042a95dcf6a9483b84b4b36b3861aa7255e4c0278ba3604650c10be19482f23171b671df1cf3b960c074301cd93c1d17603d147dae2aef837a62964ef15e5fb4aac0b8c1ccaa4be754ab5728ae9130c4c7d02880ab9472d45556216d6998b8682283d19d42a90d5ef8e5d32767dc2822c6df785457538abae83063ed9cb87c2d370f263d5fad7466d8499eb8f464a702512b0cee771e9130d697735f897fd036cc504326c3b01399f643532290f958c0bbd90065df08babbd30aeb63b84c4605d6ca371047127d03a72d598a1edadfe707e884725c16890549084008d391e0953c3f36bc438cd085edd2d934ce1938c357a711e0d4a341a5b0a85ed12c1f4e5156a26746ddde16d826f477c97477e0a0fdf6553143e2ca3a735e02eccd94b27d04861d1119dd0c328adf3f68fb094b867716bd7dc0deebb10b8240e68034893ead82d54c9da754c46c7eee0c37fdbee48536047a6fa1ae49a0318ccffffffffffffffff
/Users/richard/Library/Python/2.7/lib/python/site-packages/pyprimes/__init__.py:278: MaybeComposite: 522194440706576253339801359923264772915634530496067504511294378222169086011161345355222023334904891965055792868945181345930063539635247727258609336508464213729573000933442889881491114660596184151673117602184025505154577837077848730173588473197038267578642497447642410816850460905858369486225917489727948505153166734295375679182569391125186134558984492597161222267843707761003575819319070728089210310638911337497513995139336729314772195868459883149502755752723088834077223117441332980840398288451599558044673817473593889453264004002378346285833461482061283087291388353666226185500636081888420614659162451562870356787070502562280982956944449876730867673985005846628158375830339475415013755127902423052791732527723307545222154791525387904254648520019840028717671126963283120449097931815794444468182064960029654227834727017005195739119392094944297336168121381897569088176611422762322020047129481216806677018052321940962619244612005097096544455833082792114712334082720844463895230304132432102118858501027372168994470987330607349844853260771503131302267945499062876137971304386087188053657108874616524108952472204918119117886153374937198380231688240107566730666739197841373304121292566976941941113393059015092014068377985022692767379226623 is only only probably prime
warnings.warn(message, MaybeComposite)
True
1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment