That post seems to be missing.
solrize 6 points 2 years ago

This is a pretty lame article. The idea is just use a bignum library, or a language with native bignums. While a few optimizations help, basically just generate random 1024 bit random numbers until you something that passes a pseudoprime test, and call it a day. The rest of the article converts the above into a beginning Rust exercise but I think it's preferable to not mix up the two.

From the prime number theorem, around 1/700th of numbers at that size are prime. By filtering out numbers with small divisors you may end up doing 100 or so pseudoprime tests, let's say Fermat tests (3**n mod n == 3). A reasonable library on today's machines can do one of those tests in around 1ms, so you are good.

RSA is deprecated in favor of elliptic curve cryptography these days anyway.

path: 0 9854586, hotness: undefined, score: 6, children: 3
farcaster 11 points 2 years ago
path: 0 9854586 9854937, hotness: undefined, score: 11, children: 2
solrize 6 points 2 years ago

There's two things going on in the exercise: 1) some introductory Rust programming; 2) some introductory math and crypto.

Maybe it's just me but I think it's better to separate the two. If you're going to do a prime number generation exercise, it will be easier in (e.g.) Python since the bignum arithmetic is built in, you don't have all the memory management headache, etc. If you're going to do a Rust exercise, imho it is better to focus on Rust stuff.

path: 0 9854586 9854937 9855160, hotness: undefined, score: 6, children: 1
farcaster 4 points 2 years ago
path: 0 9854586 9854937 9855160 9855220, hotness: undefined, score: 4, children: 0
blazebra 2 points 2 years ago

Nice article, I enjoyed it. Why float sqrt has been used? Integer sqrt is way faster and easily supports integers of any lengths

path: 0 9902808, hotness: undefined, score: 2, children: 6
farcaster 1 point 2 years ago
path: 0 9902808 9907403, hotness: undefined, score: 1, children: 5
blazebra 1 point 2 years ago

Algorithm is so plain and simple, it doesn’t require nightly or Rust specifically to implement.

path: 0 9902808 9907403 9915762, hotness: undefined, score: 1, children: 4
farcaster 0 points 2 years ago
path: 0 9902808 9907403 9915762 9916333, hotness: undefined, score: 0, children: 3
blazebra 1 point 2 years ago

Integer sqrt is usually not a library function and it’s very easy to implement, just a few lines of code. Algorithm is well defined on Wikipedia you read a lot. And yes, it doesn’t use FPU at all and it’s quite fast even on i8086.

path: 0 9902808 9907403 9915762 9916333 9916871, hotness: undefined, score: 1, children: 2

thanks for using Leebra!

go to feed...