Não há limite para o tamanho dos arquivos que um algoritmo criptográfico pode realmente manipular - no entanto, dependendo do caso de uso, existe um risco teórico inerente a tamanhos de dados maiores.
Em primeiro lugar, o Blowfish não é conhecido por ser quebrado no momento atual da escrita.
Em segundo lugar, é uma cifra de bloco e, como tal, é apenas um primitivo. Todas as cifras de bloco são usadas em conjunto com um modo de operação como o CBC. Devido ao paradoxo de aniversário, após 2 ^ 32 blocos (para cifras de tamanho de bloco de 64 bits) as colisões tornam-se prováveis . Isso basicamente significa que depois de (64 * 2 ^ 32) / ((1024) ^ 3) gigabytes, você tem um problema. Felizmente para você, isso funciona com cerca de 256 gigabytes, então no momento isso é apenas uma questão teórica.
Claramente, se estivéssemos usando blocos de 128 bits, usaríamos a fórmula (128 * 2 ^ 64) / ((1024) ^ 3), o que nos dá um gigabyte insano (algo como 4 trilhões) para funcionar com.
Linha de fundo: isso deve ser mais do que bom para um arquivo de 20GB.