1. процес перевіряння; перевіряння (verification process)

Процес, що має на вході підписане повідомлення, перевірковий ключ і параметри проблемної об­ласті, а на виході видає результат перевіряння підпису: підпис має силу чи ні

  1. свідоцтво (witness)

Елемент даних, що забезпечує перевірювачу доказ підпису.

  1. СИМВОЛИ, УГОДИ ТА УМОВНІ ПОЗНАКИ ДЛЯ РИСУНКІВ

    1. Символи

В усіх частинах цього стандарту використовуються такі символи:

Н — геш-атрибут;

Н — повторно обчислений геш-атрибут;

К — рандомізатор;

М — повідомлення;

М2 — частини підготовленого повідомлення;

R — перша частина підпису;

р — повторно обчислена перша частина підпису;

S — друга частина підпису;

Т — призначення;

X — ключ підпису;

Y — перевірковий ключ;

Z — набір (один чи більше) параметрів проблемної області;

П — попередній підпис;

fq — повторно обчислений попередній підпис;

Z —підпис;

A mod N — залишок від ділення цілого числа А на ціле число N;

А = В (mod N) ціле число Д конгруентне цілому числу В по модулю N, тобто (А - В) mod N = 0.

  1. Угода щодо кодування

Всі цілі числа записують так, що найбільш значуща цифра (біт чи байт) знаходиться на крайній лівій позиції.

  1. Умовні познаки для рисунків

Умовні познаки для рисунків у всіх частинах цього стандарту такі:

дані;

необов’язкові процедури обробляння даних;

процедура;

основна процедура;

необов’язкова частина основної процедури;

*- потік даних;

необов’язковий потік даних;

два потоки даних, принаймні один з яких є обов’язковим.

6 ЗАГАЛЬНА МОДЕЛЬ

Механізм складання цифрового підпису з доповненням визначають переліком таких процесів:

  • процес генерування ключа;

  • процес підписування;

  • процес перевіряння.

У процесі підписування підписувач обчислює свій цифровий підпис для певного повідомлення. Підпис разом з довільною частиною тексту формує доповнення, що додається до повідомлення, щоб сформувати підписане повідомлення (рисунок 1),

Рисунок 1 — Підписане повідомлення



Залежно від застосований є різні шляхи формування доповнення і з’єднання його з повідомлен­ням, Головна вимога полягає в тому, щоб перевірювач зміг встановити правильний підпис до повідом­лення.

Для успішного перевіряння також важливо, щоб до процесу перевіряння перевірювач зміг зв’язати правильний перевірковий ключ з підписом. Для передавання перевірювачу даних ідентифікації підпи­сувана чи засвідченої копії його перебіркового ключа може використовуватися довільний текст. У де­яких випадках є потреби в тому, щоб дані ідентифікації підписувана були частиною повідомлення М, так що вони стають захищеними підписом.

Механізм цифрового підписування повинен задовольняти такі вимоги:

  • коли є тільки перевірковий ключ і немає ключа підпису щодо обчислювання, неможливо відтво­рити будь-яке повідомлення і підпис, що діє для цього повідомлення;

  • підписи, виконані підписувачем, не можна використовувати як для створення будь-якого нового повідомлення, так і для відновлення ключа підпису, тому що вони мають силу підпису тільки до цьо­го повідомлення;

  • навіть підписувач щодо обчислювання не може знайти два різних повідомлення з однаковим підписом.

Примітка. Можливість обчислення залежить від специфічних вимог безпеки та оточення.

  1. ЗАСОБИ ДЛЯ УВ’ЯЗУВАННЯ МЕХАНІЗМУ ПІДПИСУВАННЯ і ГЕШ-ФУНКЦІЇ

Якщо механізм цифрового підписування використовує геш-функцію, то треба ув'язати застосовані механізми підписування і геш-функції. Без такого ув’язування супротивник може претендувати на ви­користання слабкої геш-функції (або несправжньої) і таким чином підробити підпис. Є різні засоби ви­конання необхідних ув'язувань. У цьому розділі наведено чотири такі засоби в порядку збільшення ризику.

Користувач механізму цифрового підпису повинен провести оцінювання ризику, розглядаючи мож­ливі втрати І вигоди від різних альтернатив. Це оцінювання враховує втрати, пов’язані з можливістю підробити підпис.

  1. Щоб використати специфічний механізм підписування, потрібна специфічна геш-функція. Про­цес перевіряння повинен використовувати тільки цю специфічну геш-функцію. В ISO/IEC 14888-3 на­ведено приклад такого вибору, коли механізм DSA вимагає використання SHA-1.

  2. Є певний набір геш-функцій, і в кожному підписаному повідомленні за допомогою ідентифіка­тора геш-функції, включеного (як частина) в обчислення підпису, точно вказується, яка геш-функція використовувалася з передбачуваного набору геш-функцій.

Ідентифікатор геш-функції — це певне розширення геш-коду: він указує, як одержати геш-код. Процес перевіряння повинен використовувати винятково ту геш-функцію, що зазначена за допомогою ідентифікатора в підписаному повідомленні. Відповідний приклад наведено в ISO/IEC 9796-2.

    1. У сертифікованих параметрах проблемної області точно вказується використовувана геш-функ­ція з передбачуванного набору. У межах сертифікованої проблемної області процес перевіряння повинен використовувати винятково ту геш-функцію, що зазначена в сертифікаті. Поза цією областю є ризик використання неточних сертифікованих повноважень. Якщо можуть бути створені інші сертифікати, то можуть бути створені й інші підписи. Тоді атакований користувач може знаходитись у ситуації суперечки з сертифікованим повноваженням, що створене іншим сертифікатом.

    2. Передбачається, що набір геш-функцій і використовувана геш-функція визначаються іншим методом, наприклад, зазначенням у повідомленні чи двосторонньою угодою. Тоді процес перевіряння повинен використовувати тільки ту геш-функцію, яка позначена цим іншим методом. Однак є ризик, що супротивник зможе підробляти підпис, використовуючи іншу геш-функцію.

  1. ПРОЦЕС ГЕНЕРУВАННЯ КЛЮЧА

Процес генерування ключа в механізмі цифрового підпису складається з таких двох процедур:

  • генерування параметрів проблемної області;

  • генерування ключа підпису і перевіркового ключа.

Перша процедура виконується один раз, коли встановлюється проблемна область. Отриманий у результаті набір параметрів проблемної області Z необхідний у наступних процесах і функціях. Друга процедура використовується для кожного підписувана вже в межах проблемної області, і виходами для неї є ключ підпису X і перевірковий ключ Y.

Внаслідок специфіки набору параметрів проблемної області значення ключа підпису X, що буде використовуватися, з великою ймовірністю відрізняється від значень, раніше використаних.

Примітка. Може вимагатися обґрунтування параметрів проблемної області і ключів. Однак це не належить до сфери застосування цього стандарту.

9 ПРОЦЕС ПІДПИСУВАННЯ

Для процесу підписування необхідні такі елементи даних:

  • параметри проблемної області Z;

  • ключ підпису X;

  • повідомлення А4;

  • ідентифікатор геш-функції (необов’язковий);

  • інший текст (необов’язковий).

Для ув’язування механізму підписування і геш-функції може використовуватися ідентифікатор геш- функції (див. розділ 7).

Процес підписування з використанням механізму отримування цифрового підпису з доповненням складається з таких процедур:

  • виконання попереднього підпису;

  • готування повідомлення для підписання;

  • обчислення свідоцтва;

  • обчислення підпису.

Перша процедура необов’язкова. Механізм підписування без попереднього підпису називається детермінованим. Механізм підписування з виконанням попереднього підпису називається рандомізованим.



Свідоцтво для цифрового підпису — це елемент даних, значення якого визначають під час підпи­сування. Правильність значення свідоцтва перевіряється в процесі перевіряння. Свідоцтво обчислю­ють як функцію повідомлення, або функцію попереднього підпису, або обидві разом.

Якщо свідоцтво не залежить від попереднього підпису чи попереднього підпису немає, то його на­зивають детермінованим. Детерміноване свідоцтво не повинне передаватися перевірювачу, який також може його обчислювати, оскільки підписувач обчислює його тільки як функцію повідомлення. Процес підписування з детермінованим свідоцтвом зображений на рисунку 2.

Рисунок 2 — Процес підписування з детермінованим свідоцтвом



Якщо свідоцтво залежить від попереднього підпису, воно називається рандомізованим. Значен­ня рандомізованого свідоцтва обчислюється підписувачем, і він формує першу частину підпису. Про­цес підписування з рандомізованим свідоцтвом зображений на рисунку 3.

  1. Виконання попереднього підпису

Процедура виконання попереднього підпису необхідна в рандомізованому механізмі підписування і складається з таких двох кроків:

  • створення рандомізатора К;

  • обчислення попереднього підпису Гі.

Результат першого кроку — рандомізатор К, що є секретною величиною, яку використовує тільки процес підписування. З метою збереження таємності ключа підпису для кожного повідомлення треба використовувати таке значення К, що з великою ймовірністю відрізняється від значень рандомізато­ра використовуваних раніше ключів (у межах строку служби ключа підпису). У наступному кроці попе­редній підпис П обчислюють через значення К за допомогою функції, що залежить від параметрів про­блемної області Z та, можливо, від ключа підпису X. Виходами процедури виконання попереднього підпису є рандомізатор /Ста попередній підпис П.

Рисунок 3 — Процес підписування з рандомізованим свідоцтвом



Рандомізатори можна створювати, а попередні підписи обчислювати заздалегідь і секретно збе­рігати для подальшого використання процесом підписування. У таких випадках рандомізатор не мож­на обчислювати як (псевдовипадкову) функцію повідомлення.

  1. Готування повідомлення

У процесі підписування повідомлення (чи його частини) може слугувати як вхідні дані або для обчислювання свідоцтва, або для обчислювання підпису (чи його другої частини), або і того, й іншого разом. З цією метою з повідомлення М беруть дві частини даних і М2. Процес готування повідом­лення повинен задовольняти одну з двох умов:

  • повне повідомлення М повинне бути відновлюване для даних Мі і М2;

  • щодо обчислювання неможливо знайти такі два повідомлення М та М', щоб отримані з них пари (Мі, М2) і (М, М'2) були однаковими.

Характерно, що в першому випадку або Мі - М, а М2 порожньо, або М2= М, а Мі — порожньо, або Мі = М2~ М.В іншому випадку або Мі, або М2, або обоє є геш-атрибутами М.

  1. Обчислювання свідоцтва

Детерміноване свідоцтво обчислюють як геш-атрибут Н повідомлення Мі за допомогою геш- функції, стійкої до колізій (див. рис. 2). Якщо геш-функція однозначно не визначається механізмом підписування чи параметрами проблемної області, то її ідентифікатор повинен бути включений у геш- атрибут та в підписане повідомлення (див. розділ 7).

Рандомізоване свідоцтво залежить від попереднього підпису П і не обов’язково від МА. Обчислю­вання рандомізованого свідоцтва як частини обчислювання підпису описане в 9.4.

  1. Обчислювання підпису

У детермінованому механізмі входами в цю процедуру є свідоцтво Н, ключ підпису X і, необов’яз­ково, частина повідомлення М2. У цьому випадку виходом цього кроку 3 і є підпис £ (див. рис. 2).

У рандомізованому механізмі з детермінованим свідоцтвом входами в цю процедуру є рандоміза- тор К, ключ підпису X, детерміноване свідоцтво Нта попередній підпис П. Виходом цієї процедури є повний підпис S, що має одну частину 3 чи дві частини — R і 3 (див. рис. 2).

У рандомізованому механізмі з рандомізованим свідоцтвом ця процедура складається з двох кроків. Спочатку обчислюється свідоцтво R, що залежить від попереднього підпису П і, необов’язко­во, від Л4-|. Якщо в обчислюванні свідоцтва використовується геш-функція, то її треба точно визначи­ти (див. розділ 7). На другому кроці входами є рандомізатор К, ключ підпису X, рандомізоване свідоцтво R і, необов’язково, частина М2 підготовленого повідомлення. Виходом другого кроку є S. Підпис S має одну частину S чи дві частини — R і S (див. рис. 3).

10 ПРОЦЕС ПЕРЕВІРЯННЯ