Подписать сообщение Openssl C API в 32-битном и проверить подпись в 64-битном Openssl

Я скомпилировал openssl 1.0.2 with FIPS 2.0.16 Object Module. Я буду использовать его, чтобы подписать какой-нибудь файл с помощью закрытого ключа и проверить подпись с помощью открытого ключа. Я буду использовать алгоритмы EVP_*.

Подписание файла закрытым ключом произойдет в веб-интерфейсе, затем файл и подпись будут помещены на какое-то устройство, где будет проверена целостность файла путем проверки подписи с использованием открытого ключа.

  1. Теперь мой вопрос заключается в том, что веб-интерфейс будет иметь 64 BIT libcrypto.a, а устройство, на котором проверяется подпись, может иметь 32/64 BIT libcrypto.a, поэтому будет ли подпись, сгенерированная для обоих 64/32 bit, одинаковой?
  2. Могу ли я подписать с помощью 64 BIT libcrypto.a и проверить подпись с помощью 32 BIT libcrypto.a?

person Dinesh Gowda    schedule 18.09.2019    source источник


Ответы (1)


Не имеет значения, используете ли вы 32-битную или 64-битную libcrypto. Вы можете создать подпись с помощью одного и проверить ее с помощью другого, и наоборот.

Теперь мой вопрос заключается в том, что веб-интерфейс будет иметь 64-битную libcrypto.a, а устройство, на котором проверяется подпись, может иметь 32/64-битную libcrypto.a, поэтому будет ли подпись, сгенерированная для 64/32-битной, одинаковой?

Это зависит от того, что вы подразумеваете под «то же самое». Как я уже сказал выше, не имеет значения, используете ли вы 32-битную или 64-битную libcrypto. Алгоритмы используются те же. Однако не все алгоритмы подписи являются детерминированными, т. е. некоторые алгоритмы, такие как DSA и ECDSA, включают в подпись случайный компонент. Поэтому, если вы дважды подписываете одни и те же данные одним и тем же ключом, вы можете получить разные результаты. Однако обе подписи будут действительными, и обе будут проверены.

person Matt Caswell    schedule 18.09.2019
comment
Спасибо, Мэтт, я проверю и сообщу вам результат. - person Dinesh Gowda; 18.09.2019