Non è possibile firmare blocchi di dati di grandi dimensioni utilizzando uno degli schemi di firma asimmetrici comunemente utilizzati.
Per firmare dati più grandi, dovresti dividerlo in blocchi e firmare, ma se lo fai senza noces / padding / etc, è molto insicuro.
Se utilizzi una libreria di alto livello per le tue firme, molto probabilmente già hash i dati che gli dai da firmare in modo da non doverlo fare da soli.
Puoi dare un'occhiata a questa risposta che riguarda la dimensione massima che puoi cifrare con RSA, ma nella crittografia RSA e la firma è praticamente la stessa operazione. Qui sono alcuni dettagli in più.
Quindi se hai una chiave 4096 bit (dovresti avere almeno quella dimensione) puoi iscriverti a 501 byte. Dal momento che desideri firmare più di questo, nella maggior parte dei casi, devi cancellare i dati e firmare l'hash.
Un altro punto è che la maggior parte delle operazioni di crittografia asimmetriche sono molto lente rispetto all'hashing o alla crittografia simmetrica, quindi non vuoi firmare migliaia di blocchi e quindi verificarli.