News for hackers. Stuff that matters.
Re:How hard can generating 1024-bit primes be? by opticfluorine on Friday May 03, 2024 @04:25PM (#40251995)
> The random number returned is OR-ed with 0b1000000000000001 to set its first and last bit to 1. The last bit set to 1 makes it an odd number and the first bit set to 1 ensures that it is a sufficiently large number which covers the entire range of bits I need.

I can understand setting the low bit to 1 since an even number will never be a prime (edit: obviously except 2). But why set the high bit to 1 as well? Admittedly I don't know much about prime numbers or crypto, but it seems to me like this is just giving up a bit of entropy unnecessarily. What am I missing here?

Re:How hard can generating 1024-bit primes be? by glitchcomet on Friday May 03, 2024 @05:24PM (#40252549)
As the other comments have mentioned, by setting the first bit to one it looses a bit of entropy but ensures that the prime is large enough. Another thing to add is that in RSA two primes are multiplied together. If one of them is 1024 bits the other can be ~200 bits (if i remember correctly) and still reach the required number of entropy bits for the key. So, having both primes be 1024-bit adds a bit of wiggle room too.
Re:How hard can generating 1024-bit primes be? by lordnacho on Friday May 03, 2024 @04:28PM (#40252012)
Same as generating a 2 digit number. If the first digit is a zero, it is not a 2 digit number.
Re:How hard can generating 1024-bit primes be? by opticfluorine on Friday May 03, 2024 @04:34PM (#40252088)
For the purposes of key generation, however, wouldn't you want the full n bits of entropy? Otherwise the search space for a brute force factorization (haha right) is 2^(n-1) instead of 2^n, or half as many possibilities. The domain of the product is still [0..2^(2n)] so the resulting key is the desired 2^(2n) bits.

I guess another way to pose my question would be: is there an issue with sampling the entire 2^n space that makes us only take the highest 2^(n-1) subset of integers instead when selecting factors for a key?

Re:How hard can generating 1024-bit primes be? by adgjlsfhk1 on Friday May 03, 2024 @04:37PM (#40252120)
you want the nth bit to be set because otherwise there is a small but noticable chance that you generate a surprisingly weak prime.
Re:How hard can generating 1024-bit primes be? by opticfluorine on Friday May 03, 2024 @04:43PM (#40252183)
Out of curiosity, if it is known that the nth bit is set, don't I also have the same risk but in (n-1) bits? Genuinely curious here.

Edit: Ah, nevermind, I see now why I don't have that issue. It's because I can't easily iterate the primes in that domain even though I can iterate the reduced number of bits. Thanks!

Re:How hard can generating 1024-bit primes be? by bobbylarrybobby on Friday May 03, 2024 @04:55PM (#40252286)
Losing one bit of entropy to generate a prime that's definitely not only 50 bits long seems like a worthy tradeoff.
Re:How hard can generating 1024-bit primes be? by kadoban on Friday May 03, 2024 @04:31PM (#40252048)
You are giving up a bit of entropy, yeah, but you still have 1022, it's probably safer than wondering if a 1020 bit prime is fine even if they asked for a 1024 bit one. Eg we usually don't consider 00042 a 5-digit number.

Technically probably depends on exactly what you're using it for which choice is optimal, but I'd think the one in the article is the safer default.

Re:How hard can generating 1024-bit primes be? by toast0 on Friday May 03, 2024 @09:12PM (#40254001)
Another factor is if your high bit is always set, and you encode the prime with that bit, your prime always takes the same number of byte to encode.

Variable byte encoding can lead to problems, if you need to exchange the data between different software, unless the specifications are very clear, and well tested. (See problems with RSA based DHE if the server public key has leading zeros)