Защита информации цифровая подпись — страница 4

  • Просмотров 2697
  • Скачиваний 182
  • Размер файла 76
    Кб

(x(-y)(p-1)(q-1)+1)mod n = 1*x = x. А теперь вспомним как мы создавали открытый и закрытый ключи. Мы подбирали с помощью алгоритма Евклида d такое, что e*d+(p-1)(q-1)*y=1, то есть e*d=(-y)(p-1)(q-1)+1. А следовательно в последнем выражении предыдущего абзаца мы можем заменить показатель степени на число (e*d). Получаем (xe*d)mod n = x. То есть для того чтобы прочесть сообщение ci=((mi)e)mod n достаточно возвести его в степень d по модулю m : ((ci)d)mod n = ((mi)e*d)mod n = mi. На самом деле

операции возведения в степень больших чисел достаточно трудоемки для современных процессоров, даже если они производятся по оптимизированным по времени алгоритмам. Поэтому обычно весь текст сообщения кодируется обычным блочным шифром (намного более быстрым), но с использованием ключа сеанса, а вот сам ключ сеанса шифруется как раз асимметричным алгоритмом с помощью открытого ключа получателя и помещается в начало файла.

1.2.        1.2.1.   Общие сведения Криптографы со своей стороны вели поиски более эффективных систем открытого шифрования и в 1985 году Т.Эль-Гамаль (США) предложил следующую схему на основе возведения в степень по модулю большого простого числа P. Задается большое простое число P и целое число A, 1 < A < P. Сообщения представляются целыми числами M из интервала 1 < M < P. 1.2.2.   Шифрование

сообщений Протокол передачи сообщения M выглядит следующим образом. абоненты знают числа A и P; абоненты генерируют независимо друг от друга случайные числа: Ka, Kb удовлетворяющих условию: 1 < K < P получатель вычисляет и передаёт отправителю число B, определяемое последовательностью: В = A Kb mоd(P) отправитель шифрует сообщение M и отправляет полученную последовательность получателю

C = M * B Ka mоd(P) получатель расшифровывает полученное сообщение D = ( A Ka ) -Kb mоd(P) M = C * D mоd(P) В этой системе открытого шифрования та же степень защиты, что для алгоритма RSA с модулем N из 200 знаков, достигается уже при модуле P из 150 знаков. Это позволяет в 5-7 раз увеличить скорость обработки информации. Однако, в таком варианте открытого шифрования нет подтверждения подлинности сообщений.

1.2.3.   Подтверждение подлинности отправителя Для того, чтобы обеспечить при открытом шифровании по модулю простого числа P также и процедуру подтверждения подлинности отправителя Т.ЭльГамаль предложил следующий протокол передачи подписанного сообщения M: абоненты знают числа A и P; отправитель генерирует случайное число и хранит его в секрете: Ka удовлетворяющее условию: 1 < Ka < P вычисляет и передаёт получателю