def test_nfsPolyGeneration64bit(self): n = 8202545090182721807 d = 3 (m,nfspoly) = nfspolygen.generateNFSPoly(n,d) self.assertFalse(nfspolygen.reducible(nfspoly)) self.assertEqual(nfspoly.coeffs[-1],1) self.assertEqual(nfspoly.evaluate(m),n)
def test_nfsPolyGeneration(self): n = 45113 d = 3 (m,nfspoly) = nfspolygen.generateNFSPoly(n,d) self.assertFalse(nfspolygen.reducible(nfspoly)) self.assertEqual(nfspoly.coeffs[-1],1) self.assertEqual(nfspoly.evaluate(m),n)
import poly import nfspolygen import etcmath import primemath import math if __name__ == '__main__': semiprimeSize = 100 n = primemath.generateLargePrime(semiprimeSize/2)*primemath.generateLargePrime(semiprimeSize/2) print "n = %s" % (n) d = 3 (m,nfsPoly) = nfspolygen.generateNFSPoly(n,d) print "Using poly %s, m = %s" % (nfsPoly,m) B = M = etcmath.calculateB(n) print "Using bound %s" % B prefactorBase = primemath.generatePrimes(B) K = (int)(3*math.log(n,10)) # for quadratic characters afBaseFile = open("afbase.txt", "w") rfBaseFile = open("rfbase.txt", "w") print "Generating af and rf bases..." for p in prefactorBase: if(p > B): break rfBaseFile.write(str([m%p,p])+"\n") K += 1 roots = poly.getRootsModPFast(nfsPoly,p) for root in roots: afBaseFile.write(str([root,p])+"\n") K += 1
import poly import nfspolygen import etcmath import primemath import math if __name__ == '__main__': semiprimeSize = 64 n = primemath.generateLargePrime(semiprimeSize/2)*primemath.generateLargePrime(semiprimeSize/2) print "n = %s" % (n) d = 3 (m,nfsPoly) = nfspolygen.generateNFSPoly(n,d) print "Using poly %s, m = %s" % (nfsPoly,m) B = M = etcmath.calculateB(n) print "Using bound %s" % B prefactorBase = primemath.generatePrimes(B) K = (int)(3*math.log(n,10)) # for quadratic characters afBaseFile = open("afbase.txt", "w") rfBaseFile = open("rfbase.txt", "w") print "Generating af and rf bases..." for p in prefactorBase: if(p > B): break rfBaseFile.write(str([m%p,p])+"\n") K += 1 roots = poly.getRootsModPFast(nfsPoly,p) for root in roots: afBaseFile.write(str([root,p])+"\n") K += 1