Схема цифровой подписи RSA PSS-ES
Ниже будет рассмотрена вероятностная схема цифровой подписи на основе PSS-R (PSS - Probabilistic Signature Scheme - вероятностная схема шифрования, PSS-R - PSS with message recovery). В этой схеме рекомендуется, но не навязывается использование криптосистемы RSA, что и отражено в ее названии. Ее основное достоинство заключается в том, что можно использовать один и тот же ключевой набор для шифрования с открытым ключом и для цифровой подписи. То есть, если абонент A, посылая сообщение абоненту B, шифрует это сообщение с помощью открытого ключа B - пары (N,e). Абонент B дешифрует зашифрованное сообщение с помощью соответствующего секретного ключа - (N,d). Для того чтобы подписать сообщение M, пользователь B использует тот же секретный ключ (N,d). Как обычно, любой желающий может проверить эту подпись, используя открытый ключ B (N,e).
Опишем саму схему PSS-ES. Параметрами схемы являются целые числа k,k1,k0 и две хэш-функции:
H:{0,1}k-k 1 --> {0,1} k 1
и
G:{0,1} k 1 --> {0,1}k-k 1 .
Схема набивки, используемая в этой системе, описывается следующим образом:
μ(M,k) = w||s, где
Схема набивки
Схема шифрования и цифровой подписи PSS-ES основана на PSS-R (вероятностная схема цифровой подписи с восстановлением сообщения в процессе проверки подписи) и k-разрядной однонаправленной функции с ловушкой f. Как PSS-R схема подписи PSS-ES восстанавливает сообщение в процессе проверки подписи. Поэтому можно подписывать только сообщения фиксированной длины - (k - k0 - k1) бит. Для подписи сообщения M произвольной длины необходимо использовать хэш-функцию.
Генерация ключей.
Пользователь генерирует пару (f,f-1), где f - открытый ключ, а f-1 - секретный.
Шифрование.
Дано сообщение M из {0,1} k-k 1 -k 0 и случайное число r из {0,1}k 0 , результатом зашифрования будет число c = f(μ (M,r))
Расшифрование.
Получено зашифрованное сообщение c.
  1. Вычислить (w,s) = f-1(c).
  2. Вычислить M||r = G(w) ⊕ s.
  3. Если w = H(M||r), то результатом расшифрования будет M и алгоритм завершен, иначе алгоритм завершается с ошибкой.
Генерация подписи.
Дано сообщение M из {0,1} k-k 1 -k 0 и случайное число r из {0,1}k 0 , подписью к нему будет число σ = f-1 (μ(M,r)).
Проверка подписи.
Дана подпись σ, алгоритм верификации вычисляет (w,s) = f(σ) и вычисляет
M||r = G(w) ⊕ s
Если w = H(M||r), то алгоритм проверки подписи принимает подпись и возвращает M, иначе алгоритм отвергает подпись.

back next
Hosted by uCoz