При использовании RSA, как указано PKCS # 1 , данные, которые должны быть подписаны, сначала хешируются с помощью хэш-функции, а затем получают дополняется (более или менее сложная операция который преобразует результат хеширования в модульное целое число), а затем к этому числу применяется математическая операция RSA. Результатом является целое число n , где n - длина в битах «модуля», обычно называемого «размером ключа RSA». По сути, для RSA-1024 n равно 1024. 1024-битное целое число кодируется как 128 байтов, в точности, согласно методу кодирования, описанному в PKCS # 1 (PKCS # 1 очень читабелен и не слишком длинный).
Возможность использования ключа RSA n для подписи данных с помощью хэш-функции, которая выдает выходные данные длиной m , зависит от деталей заполнения. Как следует из названия, заполнение включает в себя добавление некоторых дополнительных данных к выводу хеша, поэтому n должно быть больше m , оставляя место для дополнительных данных. 1024-битный ключ может использоваться с SHA-512 (который генерирует 512-битные строки). Вы не можете использовать 640-битный ключ с SHA-512 (и в любом случае вы не будете использовать его, поскольку 640-битные ключи RSA могут быть сломаны - хотя и не тривиально).