Olá! Fiz uma melhoria na minha criptografia e agora acho que está perfeita. Veja a descrição:

Chaves: simétrica (2 chaves);
Tipo: numérica (pode ter quantos números quiser e sem alterar o peso da criptografia);
Possibilidades de chaves: infinito;
Tipo da cifra: cifra por bloco (o tamanho do bloco é definido pelo MMC entre a quantidade de números da chave 1 e chave 2);
Peso de processamento: leve;
Peso na memória: meio pesado (cada caractere torna-se 4 bytes no texto cifrado);

As chaves são totalmente independente uma da outra, sendo assim dois processos de cifra. Por conta disso, elas não precisam ter o mesmo tamanho!
O valor de cada caractere varia de acordo com sua posição no bloco, sendo assim, só poderá se repetir no próximo bloco da cifra. Por exemplo: se usarmos a primeira chave tendo 10 valores e a segunda 11, o tamanho do bloco será de 110, ou seja, um mesmo caractere terá 110 valores para ele. Esse número pode ser bem maior, já que pode-se usar quantos números quiser nas chaves sem alterar o peso da cifra!

Um hash falso? A primeira chave modifica a segunda e vice e versa, ou seja, cria um hash impossibilitando a quebra por tentativa e erro. Mas, como que descriptografa sendo que é um hash? Simples: tendo as duas chaves, dá pra retirar no decriptamento a segunda chave fazendo com que a cifra volte a ser uma cifra normal.

Não é possível conseguir uma das chaves tendo apenas o texto cifrado e o algorítimo da cifra, porque para isso, teria que quebrar o hash antes, mas para quebrar o hash precisa da segunda chave. Ou seja, um precisa do outro criando assim um loop infinito, assim como uma equação com duas incógnitas!

Digam, meus caros, o que acharam dessa criptografia?
Se poder, compare com o nível de segurança de outras criptografias.

Grato pela atenção!