ифрування або генерації підпису повідомлення використовується таємний ( private ) ключ, який відомий тільки користувачеві. А для перевірки підпису і для дешифрування використовується відкритий ( public ) ключ, який генерується на основі секретного ключа за допомогою деякої односторонньої функції. Тобто за значенням відкритого ключа обчислити секретний практично неможливо (використовуючи сучасні обчислювальні засоби, за доступний для огляду інтервал часу), ніж згенерувати відкритий ключ з секретного. Таким чином, відкритий ключ можна повідомляти кому завгодно і навіть публікувати його.
Розглянемо загальну схему роботи системи шифрування з відкритим ключем. Нехай сторона А хоче послати конфіденційне повідомлення m стороні B . А отримує копію відкритого ключа В - e B , і використовує функцію шифрування Enc деякого алгоритму шифрування для обчислення криптограми c = Enc eB (m) . Потім А передає криптограму з стороні В , яка використовує функцію дешифрування Dec зі своїм секретним ключем d b для отримання вихідного повідомлення m = Dec dB (c) span> . Передбачається, що зловмисник, знаючи тільки e b < span align = "justify">, не зможе розшифрувати криптограму c , тобто e b може передаватися по незахищеному каналу. Важливо лише, щоб сторона А отримала незіпсовану копію ключа e У , інакше повідомлення буде зашифровано на невірному ключі і розшифрувати його буде вже неможливо.
Тепер розглянемо загальну схему роботи алгоритму цифрового підпису з ...