Ejemplo n.º 1
0
	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)
Ejemplo n.º 2
0
	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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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