I am using blowfish-448, until now the keys have been generated using a crypto random number generator full filling the 448bits vector. I read about exploit in case of weak keys and reflection keys attack. Mine concern is if the generation approach we are using is secure or if does exist a more secure way.
-
$\begingroup$ It is unlikely that whatever protocol you are using with Blowfish is secure if it was designed by someone who reached for Blowfish, or during an era in the dark ages of crypto engineering when reaching for Blowfish was a reasonable thing to do. You should consider revisiting the whole protocol if you can. $\endgroup$– Squeamish OssifrageCommented Feb 6, 2018 at 1:26
1 Answer
I am using blowfish-448, until now the keys have been generated using a crypto random number generator full filling the 448bits vector.
This is fine assuming your cryptographic (pseudo-) random number generator is actually good. If this wasn't a valid strategy, this would have produced strong warnings about using Blowfish already.
I read about exploit in case of weak keys and reflection keys attack.
Yes, there exist weak keys for blowfish, but hitting them when utilizing the full space has negligible probability (also it appears that they don't even break the full blowfish but rather a larger part than with normal keys).
Mine concern is if the generation approach we are using is secure or if does exist a more secure way.
Yes, you really should migrate off Blowfish to AES. It will (most likely) be faster and likely more secure and you won't suffer from small-block attacks like Sweet32.
-
$\begingroup$ Thank you, unfortunately the message we have to encrypt is 64 bits long and blowfish was chosen as the only secure alternative at that time. $\endgroup$– SlevinCommented Feb 3, 2018 at 20:17
-
$\begingroup$ Even now, Blowfish should be quite secure. It is largely obsolete, but no attacks have been found that result in breaking a full-round implementation short of very specially chosen weak keys (and AES has a similar issue anyway with related keys, at least for the key schedule of the 192- and 256-bit versions). For encrypting a single message who's size is the same as the Blowfish block size, it should be totally fine. $\endgroup$– forestCommented Mar 7, 2018 at 6:44