arquivo grande de criptografia e descriptografia usando rsa em java

Estou usando o algoritmo RSA para criptografia e descriptografia de um arquivo com tamanho maior que o tamanho da chave rsa.

No código abaixo para criptografia, estou lendo o conteúdo do arquivo em blocos e convertendo em texto cifrado. O tamanho do bloco é 32 bytes.

FileInputStream fin1 = new FileInputStream(genfile);

FileOutputStream fout = new FileOutputStream(seedcipher);

byte[] block = new byte[32];
int i;
while ((i = fin1.read(block)) != -1)
{
    byte[] inputfile= cipher.doFinal(block);
    fout.write(inputfile);
}

fin1.close();

Na parte de descriptografia, a mesma descriptografia em bloco é feita no código em que mencionei o tamanho do bloco como 128 bytes

FileInputStream fin1 = new FileInputStream(encryptedfile);
FileOutputStream fout = new FileOutputStream(seedcipher);

DataInputStream dos =new DataInputStream(fin1);
DataOutputStream dosnew =new DataOutputStream(fout);
byte[] block = new byte[128];
int i;
while ((i = fin1.read(block)) != -1)
{
    byte[] inputfile= cipher.doFinal(block);
      fout.write(inputfile);
}

O tamanho do arquivo de entrada é 81,3 kB e o arquivo contém

0
1
2
3
4.....29000 

Depois que o arquivo é descriptografado, a saída contém alguns valores extras que não são relevantes. por que esses dados extras estão no resultado?

questionAnswers(3)

yourAnswerToTheQuestion