Загальна схема побудови ЕЦП
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 секретний ключ використовується для обчислення ЕЦП або для розшифрування повідомлень, а відкритий – для перевірки ЕЦП або для зашифрування повідомлень.