Обычно в первой строке этого файла sig (если он, конечно, в тектовом формате base64, а не в бинарном) имеется информация об алгоритме шифрования. Находите библиотеку для работы с этим алгоритмом (хоть для js, хоть для php) и при наличии публичного ключа без проблем декодируете эту подпись.
Я использовал библиотеки openpgp.js и TweetNaCl.js, немного игрался также с jsencrypt для алгоритма RSA, никаких проблем нет, подпись декодируется. Для php тоже, конечно, есть библиотеки для разных алгоритмов. Главное — знать алгоритм кодирования и иметь публичный ключ.