процес перевіряння; перевіряння (verification process)
Процес, що має на вході підписане повідомлення, перевірковий ключ і параметри проблемної області, а на виході видає результат перевіряння підпису: підпис має силу чи ні
свідоцтво (witness)
Елемент даних, що забезпечує перевірювачу доказ підпису.
СИМВОЛИ, УГОДИ ТА УМОВНІ ПОЗНАКИ ДЛЯ РИСУНКІВ
Символи
В усіх частинах цього стандарту використовуються такі символи:
Н — геш-атрибут;
Н — повторно обчислений геш-атрибут;
К — рандомізатор;
М — повідомлення;
М2 — частини підготовленого повідомлення;
R — перша частина підпису;
р — повторно обчислена перша частина підпису;
S — друга частина підпису;
Т — призначення;
X — ключ підпису;
Y — перевірковий ключ;
Z — набір (один чи більше) параметрів проблемної області;
П — попередній підпис;
fq — повторно обчислений попередній підпис;
Z —підпис;
A mod N — залишок від ділення цілого числа А на ціле число N;
А = В (mod N) — ціле число Д конгруентне цілому числу В по модулю N, тобто (А - В) mod N = 0.
Угода щодо кодування
Всі цілі числа записують так, що найбільш значуща цифра (біт чи байт) знаходиться на крайній лівій позиції.
Умовні познаки для рисунків
Умовні познаки для рисунків у всіх частинах цього стандарту такі:
дані;
необов’язкові процедури обробляння даних;
процедура;
основна процедура;
необов’язкова частина основної процедури;
*- потік даних;
необов’язковий потік даних;
два потоки даних, принаймні один з яких є обов’язковим.
6 ЗАГАЛЬНА МОДЕЛЬ
Механізм складання цифрового підпису з доповненням визначають переліком таких процесів:
процес генерування ключа;
процес підписування;
процес перевіряння.
У процесі підписування підписувач обчислює свій цифровий підпис для певного повідомлення. Підпис разом з довільною частиною тексту формує доповнення, що додається до повідомлення, щоб сформувати підписане повідомлення (рисунок 1),
Рисунок 1 — Підписане повідомлення
Залежно від застосований є різні шляхи формування доповнення і з’єднання його з повідомленням, Головна вимога полягає в тому, щоб перевірювач зміг встановити правильний підпис до повідомлення.
Для успішного перевіряння також важливо, щоб до процесу перевіряння перевірювач зміг зв’язати правильний перевірковий ключ з підписом. Для передавання перевірювачу даних ідентифікації підписувана чи засвідченої копії його перебіркового ключа може використовуватися довільний текст. У деяких випадках є потреби в тому, щоб дані ідентифікації підписувана були частиною повідомлення М, так що вони стають захищеними підписом.
Механізм цифрового підписування повинен задовольняти такі вимоги:
коли є тільки перевірковий ключ і немає ключа підпису щодо обчислювання, неможливо відтворити будь-яке повідомлення і підпис, що діє для цього повідомлення;
підписи, виконані підписувачем, не можна використовувати як для створення будь-якого нового повідомлення, так і для відновлення ключа підпису, тому що вони мають силу підпису тільки до цього повідомлення;
навіть підписувач щодо обчислювання не може знайти два різних повідомлення з однаковим підписом.
Примітка. Можливість обчислення залежить від специфічних вимог безпеки та оточення.
ЗАСОБИ ДЛЯ УВ’ЯЗУВАННЯ МЕХАНІЗМУ ПІДПИСУВАННЯ і ГЕШ-ФУНКЦІЇ
Якщо механізм цифрового підписування використовує геш-функцію, то треба ув'язати застосовані механізми підписування і геш-функції. Без такого ув’язування супротивник може претендувати на використання слабкої геш-функції (або несправжньої) і таким чином підробити підпис. Є різні засоби виконання необхідних ув'язувань. У цьому розділі наведено чотири такі засоби в порядку збільшення ризику.
Користувач механізму цифрового підпису повинен провести оцінювання ризику, розглядаючи можливі втрати І вигоди від різних альтернатив. Це оцінювання враховує втрати, пов’язані з можливістю підробити підпис.
Щоб використати специфічний механізм підписування, потрібна специфічна геш-функція. Процес перевіряння повинен використовувати тільки цю специфічну геш-функцію. В ISO/IEC 14888-3 наведено приклад такого вибору, коли механізм DSA вимагає використання SHA-1.
Є певний набір геш-функцій, і в кожному підписаному повідомленні за допомогою ідентифікатора геш-функції, включеного (як частина) в обчислення підпису, точно вказується, яка геш-функція використовувалася з передбачуваного набору геш-функцій.
Ідентифікатор геш-функції — це певне розширення геш-коду: він указує, як одержати геш-код. Процес перевіряння повинен використовувати винятково ту геш-функцію, що зазначена за допомогою ідентифікатора в підписаному повідомленні. Відповідний приклад наведено в ISO/IEC 9796-2.
У сертифікованих параметрах проблемної області точно вказується використовувана геш-функція з передбачуванного набору. У межах сертифікованої проблемної області процес перевіряння повинен використовувати винятково ту геш-функцію, що зазначена в сертифікаті. Поза цією областю є ризик використання неточних сертифікованих повноважень. Якщо можуть бути створені інші сертифікати, то можуть бути створені й інші підписи. Тоді атакований користувач може знаходитись у ситуації суперечки з сертифікованим повноваженням, що створене іншим сертифікатом.
Передбачається, що набір геш-функцій і використовувана геш-функція визначаються іншим методом, наприклад, зазначенням у повідомленні чи двосторонньою угодою. Тоді процес перевіряння повинен використовувати тільки ту геш-функцію, яка позначена цим іншим методом. Однак є ризик, що супротивник зможе підробляти підпис, використовуючи іншу геш-функцію.
ПРОЦЕС ГЕНЕРУВАННЯ КЛЮЧА
Процес генерування ключа в механізмі цифрового підпису складається з таких двох процедур:
генерування параметрів проблемної області;
генерування ключа підпису і перевіркового ключа.
Перша процедура виконується один раз, коли встановлюється проблемна область. Отриманий у результаті набір параметрів проблемної області Z необхідний у наступних процесах і функціях. Друга процедура використовується для кожного підписувана вже в межах проблемної області, і виходами для неї є ключ підпису X і перевірковий ключ Y.
Внаслідок специфіки набору параметрів проблемної області значення ключа підпису X, що буде використовуватися, з великою ймовірністю відрізняється від значень, раніше використаних.
Примітка. Може вимагатися обґрунтування параметрів проблемної області і ключів. Однак це не належить до сфери застосування цього стандарту.
9 ПРОЦЕС ПІДПИСУВАННЯ
Для процесу підписування необхідні такі елементи даних:
параметри проблемної області Z;
ключ підпису X;
повідомлення А4;
ідентифікатор геш-функції (необов’язковий);
інший текст (необов’язковий).
Для ув’язування механізму підписування і геш-функції може використовуватися ідентифікатор геш- функції (див. розділ 7).
Процес підписування з використанням механізму отримування цифрового підпису з доповненням складається з таких процедур:
виконання попереднього підпису;
готування повідомлення для підписання;
обчислення свідоцтва;
обчислення підпису.
Перша процедура необов’язкова. Механізм підписування без попереднього підпису називається детермінованим. Механізм підписування з виконанням попереднього підпису називається рандомізованим.
Свідоцтво для цифрового підпису — це елемент даних, значення якого визначають під час підписування. Правильність значення свідоцтва перевіряється в процесі перевіряння. Свідоцтво обчислюють як функцію повідомлення, або функцію попереднього підпису, або обидві разом.
Якщо свідоцтво не залежить від попереднього підпису чи попереднього підпису немає, то його називають детермінованим. Детерміноване свідоцтво не повинне передаватися перевірювачу, який також може його обчислювати, оскільки підписувач обчислює його тільки як функцію повідомлення. Процес підписування з детермінованим свідоцтвом зображений на рисунку 2.
Рисунок 2 — Процес підписування з детермінованим свідоцтвом
Якщо свідоцтво залежить від попереднього підпису, воно називається рандомізованим. Значення рандомізованого свідоцтва обчислюється підписувачем, і він формує першу частину підпису. Процес підписування з рандомізованим свідоцтвом зображений на рисунку 3.
Виконання попереднього підпису
Процедура виконання попереднього підпису необхідна в рандомізованому механізмі підписування і складається з таких двох кроків:
створення рандомізатора К;
обчислення попереднього підпису Гі.
Результат першого кроку — рандомізатор К, що є секретною величиною, яку використовує тільки процес підписування. З метою збереження таємності ключа підпису для кожного повідомлення треба використовувати таке значення К, що з великою ймовірністю відрізняється від значень рандомізатора використовуваних раніше ключів (у межах строку служби ключа підпису). У наступному кроці попередній підпис П обчислюють через значення К за допомогою функції, що залежить від параметрів проблемної області Z та, можливо, від ключа підпису X. Виходами процедури виконання попереднього підпису є рандомізатор /Ста попередній підпис П.
Рисунок 3 — Процес підписування з рандомізованим свідоцтвом
Рандомізатори можна створювати, а попередні підписи обчислювати заздалегідь і секретно зберігати для подальшого використання процесом підписування. У таких випадках рандомізатор не можна обчислювати як (псевдовипадкову) функцію повідомлення.
Готування повідомлення
У процесі підписування повідомлення (чи його частини) може слугувати як вхідні дані або для обчислювання свідоцтва, або для обчислювання підпису (чи його другої частини), або і того, й іншого разом. З цією метою з повідомлення М беруть дві частини даних і М2. Процес готування повідомлення повинен задовольняти одну з двох умов:
повне повідомлення М повинне бути відновлюване для даних Мі і М2;
щодо обчислювання неможливо знайти такі два повідомлення М та М', щоб отримані з них пари (Мі, М2) і (М, М'2) були однаковими.
Характерно, що в першому випадку або Мі - М, а М2— порожньо, або М2= М, а Мі — порожньо, або Мі = М2~ М.В іншому випадку або Мі, або М2, або обоє є геш-атрибутами М.
Обчислювання свідоцтва
Детерміноване свідоцтво обчислюють як геш-атрибут Н повідомлення Мі за допомогою геш- функції, стійкої до колізій (див. рис. 2). Якщо геш-функція однозначно не визначається механізмом підписування чи параметрами проблемної області, то її ідентифікатор повинен бути включений у геш- атрибут та в підписане повідомлення (див. розділ 7).
Рандомізоване свідоцтво залежить від попереднього підпису П і не обов’язково від МА. Обчислювання рандомізованого свідоцтва як частини обчислювання підпису описане в 9.4.
Обчислювання підпису
У детермінованому механізмі входами в цю процедуру є свідоцтво Н, ключ підпису X і, необов’язково, частина повідомлення М2. У цьому випадку виходом цього кроку 3 і є підпис £ (див. рис. 2).
У рандомізованому механізмі з детермінованим свідоцтвом входами в цю процедуру є рандоміза- тор К, ключ підпису X, детерміноване свідоцтво Нта попередній підпис П. Виходом цієї процедури є повний підпис S, що має одну частину 3 чи дві частини — R і 3 (див. рис. 2).
У рандомізованому механізмі з рандомізованим свідоцтвом ця процедура складається з двох кроків. Спочатку обчислюється свідоцтво R, що залежить від попереднього підпису П і, необов’язково, від Л4-|. Якщо в обчислюванні свідоцтва використовується геш-функція, то її треба точно визначити (див. розділ 7). На другому кроці входами є рандомізатор К, ключ підпису X, рандомізоване свідоцтво R і, необов’язково, частина М2 підготовленого повідомлення. Виходом другого кроку є S. Підпис S має одну частину S чи дві частини — R і S (див. рис. 3).
10 ПРОЦЕС ПЕРЕВІРЯННЯ