В основном PKCS # 1 v1.5 состоит из трех частей:
- сами операции RSA,
- отступы PKCS # 1 и
- кодировка ASN.1 хэша.
Хэш закодирован в ASN.1 и включает идентификатор объекта ASN.1, который однозначно определяет используемый хэш и значение, например:
DigestInfo ::= SEQUENCE {
digestAlgorithm AlgorithmIdentifier,
digest OCTET STRING
}
Это непосредственно скопировано из спецификаций PKCS # 1 (которые довольно читабельны и общедоступны). Обратите внимание, что в стандартах кодирование также указывается в байтах.
Операции Blackberry предоставляют только 1) и 2), что означает, что вы должны предоставить ASN.1, DER-кодированную структуру, содержащую хеш самостоятельно. Такая структура не определена для шифрования / дешифрования, удаляется только заполнение.
Шифрование использует случайное (внутреннее) заполнение и неслучайное заполнение для подписей. Это позволяет вам дважды зашифровать «ДА», в то время как перехватчик не может определить, ДА или НЕТ. Заполнение также требуется для защиты подписи от атак.