1. Створення відкритого і закритого ключів. Користувач генерує ключову пару: відкритий ключ і закритий ключ і на їх основі будує функції і .
2. Формування ЕЦП за допомогою закритого ключа. Для того, щоб підписати повідомлення , користувач
1) за допомогою криптографічної хеш-функції обчислює його хеш-код ;
2) створює ЕЦП за формулою .
3) пересилає користувачу підписане повідомлення – пару .
3. Перевірка підпису за допомогою відкритого ключа (верифікація). Для перевірки підпису повідомлення користувач
1) за допомогою криптографічної хеш-функции обчислює хеш-код отриманого документа ;
2) перевіряє рівність . Якщо рівність виконана, ЕЦП повідомлення визнається вірною. Інакше підпис вважається підробленим і робиться висновок про те, що цілісність повідомлення порушена.
Зауваження. Запропоновану схему можна доповнити попереднім зашифруванням повідомлення, що пересилається, і підсумковою розшифровкою.
61. Схема електронного цифрового підпису на основі криптосистеми Ель-Гамаля.
1. Створення відкритого і закритого ключів. Користувач генерує ключову пару: відкритий ключ і закритий ключ . Для цього він:
1) вибирає велике просте число і обчислює первісний корінь за модулем ;
2) навмання вибирає ціле число з інтервалу ;
3) обчислює значення ;
4) відкритий ключ – трійка чисел , закритий ключ – число .
2. Формування ЕЦП за допомогою закритого ключа. Для того, щоб підписати повідомлення користувач
1) за допомогою криптографічної хеш-функции обчислює його хеш-код ;
2) вибирає довільне число з відрізання (рандомізатор) з умовою .
3) обчислює ;
4) обчислює ;
5) підписом для повідомлення є пара ;
6) пересилає абонентові пару .
3. Перевірка підпису за допомогою відкритого ключа (верифікація. Для перевірки підпису повідомлення абонент
1) за допомогою криптографічної хэш-функции обчислює хэш-код отриманого документа ;
2) перевіряє рівність . Якщо рівність виконана, ЕЦП повідомлення визнається вірною. Інакше підпис вважається підробленим і робиться висновок про те, що цілісність повідомлення порушена.
62. Схема електронного цифрового підпису на основі криптосистеми RSA.
1. Створення відкритого і закритого ключів. Користувач генерує ключову пару: відкритий ключ і закритий ключ . Для цього:
1) вибираються два випадкових великих простих числа і ;
2) обчислюється їх добуток – число ;
3) обчислюється значення функції Ейлера .
4) вибирається випадкове непарне число , взаємно просте з і таке, що ;
5) обчислюється число , обернене числу за модулем , тобто таке, що (з використанням розширеного алгоритму Евклида для розв’язування діофантового рівняння ). Після цього всі дані, крім , включаючи дані проміжних обчислень, знищуються. Відкритий ключ публікується, а закритий ключ зберігається в секреті.
2. Формування ЕЦП за допомогою закритого ключа. Для того, щоб підписати повідомлення , користувач
1) за допомогою криптографічної хеш-функції обчислює його хеш-код ;
2) шифрує хеш на секретному ключі : .
3) пересилає абоненту пару .
3. Перевірка підпису за допомогою відкритого ключа (верифікація). Для перевірки підпису повідомлення абонент
1) за допомогою криптографічної хеш-функции обчислює хеш-код отриманого документа ;
2) розшифровує за допомогою відкритого ключа : . Якщо , ЕЦП повідомлення визнається вірною. Інакше підпис вважається підробленим і робиться вивід про те, що цілісність повідомлення порушена.
Таким чином, в криптосистемі RSA секретний ключ використовується для обчислення ЕЦП або для розшифрування повідомлень, а відкритий – для перевірки ЕЦП або для зашифрування повідомлень.