Не совсем ответ, но больше, чем я могу сделать читаемым в комментариях.
Эта примечание к справочной странице OpenSSL устарело (примечание). OpenSSL 0.9.8, использующий API «EVP», который среди прочего делает командная строка dgst, выбрал хэш и PKalg вместе и в результате мог выполнять DSA только с SHA1 (как указано в исходном FIPS без суффикса) и назвал его DSS1 (как ты нашел). Кроме того, он мог генерировать параметры DSA только с подгруппой (q) размером 160, хотя он мог создавать группу (p) размером > 1 КБ, несмотря на то, что FIPS говорит от 512 до 1 КБ с шагом 64 (что было хорошо). еще в 1995 году).
В версиях 1.0.0 и 1.0.1 с новыми и улучшенными API вы можете генерировать все размеры параметров FIPS186-3 (1k/160, 2k/224, 2k/256, 3k/256) и подписывать/проверять DSA любого разумного размера с любым из 4 исходных хэша SHA-2, где хэш длиннее q (подгруппа) усекается в соответствии с FIPS и, таким образом, в основном тратится впустую. (Три варианта «косой черты» SHA-2, добавленные в IIRC FIPS180-4, еще не реализованы в OpenSSL в виде хэшей, а тем более для подписей.)
Как вы, по-видимому, подтвердили, OpenSSL, начиная с 0.9.8, поддерживает RSA (я почти уверен) со всеми хэшами от MD2 до SHA512. Но SHA512 похож на ставку Шнайера высотой в милю; для того, чтобы RSA сохранил свою номинальную силу, вам нужно более 15 кбит в соответствии с NIST и ECRYPT (см. www.keylength.com), и это будет очень медленно.
ECDSA производит одинаково небольшие значения сигнатуры и, как ожидается, будет лучше масштабироваться при более высоких сильных сторонах сейчас или в ближайшее время.
Если, когда и как это (или они) доступны в PHP, я ничего не знаю.
И, как всегда с криптографией, если вы взаимодействуете с одной или несколькими другими системами, также проверьте их возможности.
(примечание) После ажиотажа прошлого месяца (кашель, кашель) количество людей, работающих над OpenSSL, подскочило вверх, а некоторые даже занимаются скучными делами, такими как документация и тестирование, которые отставали на годы, поэтому я отправлю запрос на исправление. на этом.
person
dave_thompson_085
schedule
06.06.2014