Подписи DSA значительно короче, чем подписи RSA. Подписи DSA в два раза больше параметра Q
; если вы используете значения по умолчанию OpenSSL, Q равно 160 битам, поэтому ваши подписи умещаются в 320 бит.
Если вы можете переключиться на представление base-64 (для которого требуются только прописные и строчные буквы, цифры и два других символа), вам потребуется 53 символа, что можно сделать с 11 группами по 5. Не целых 16, которые вы хотели, но все еще в рамках возможности ввода пользователем.
На самом деле, мне приходит в голову, что вы могли бы вдвое сократить количество бит, необходимое в лицензионном ключе. Подписи DSA состоят из двух чисел R
и S
, каждый размером Q
. Однако все значения R
могут быть предварительно вычислены подписывающим лицом (вами) - единственное требование - вы никогда не будете использовать их повторно. Таким образом, это означает, что вы можете предварительно рассчитать целую таблицу значений R
, скажем, 1 миллион из них (занимая 20 МБ), и распределить их как часть приложения. Теперь, когда вы создаете лицензионный ключ, вы выбираете следующее неиспользуемое значение R
и генерируете значение S
. Сам лицензионный ключ содержит только индекс значения R
(требуется только 20 бит) и полное значение S
(160 бит).
И если вы близки к продаже миллиона копий приложения - это хорошая проблема - просто создайте новую версию с новой таблицей R
.