View Single Post
Old 2021-04-01, 13:36   #1

23×33×37 Posts
Default Do easy to factor semi-primes exist?

I am working on a "cryptocurrency"-like proof of work that uses factoring large numbers as a proof of work. You can review the archive of it here if you want: MODERATOR NOTE: link removed

Basically a user generates a private key, then hashes it using some algorithm like sha-2 or sha-3 to get a public key. They then hash this public key with something like skien-1024 to get a large random number (and truncate to a given acceptable length). They then provide a prime factor of this number that is between 7/16ths and 1/2 the length of the number. So for the network to verify the PoW, they do a primality check of the factor, and divide the large number by the proposed factor. If it checks out, it is a valid proof of work (and of course the person who generated the challenge is the only one who can spend it because they are the only one that knows the private key). We would start around 140 or 150 digit numbers so people can complete a proof of work in about a week with a decent computer.

Is there any potential attack vectors to this method? My thought is one possibility is that someone generates mass amounts of numbers looking for one that is "easy to factor". But my gut tells me that if there exists a prime factor in the number that is between 7/16th and 1/2 of the digit length of the number, then it is not easy to factor generally. Also one would need to factor it to determine whether it is easy to factor, correct? Of course you can do checks to the number like primality checks but my point is, if it does indeed contain a prime factor of said length, then no "testing" would be able to determine if this number with said prime factor is easier than another number with said prime factor without factoring them, correct?

Another question I have is; could factoring algorithms be modified to do this challenge significantly faster than a typical GNFS or RSA algorithm, since only 1 factor is needed, or would you just run it through our typical programs and see if it returns a factor of required length?


Last fiddled with by Dr Sardonicus on 2021-04-01 at 14:01
  Reply With Quote