Множинний підпис

Множинний (колективний) підпис (англ. Aggregate signature) — схема (протокол) реалізації електронного підпису (ЕЦП), що дозволяє декільком користувачам підписувати єдиний документ.

Колективний підпис надає можливість одночасного підписання електронного документа, оскільки формується в результаті єдиного неподільного перетворення і не може бути розділена на індивідуальні підпису; крім цього, її можна розширити, тобто вбудувати в неї додаткову підпис ще одного або декількох осіб[1].

Введення

Термін «колективний підпис» співзвучний з терміном «груповий підпис», однак ці поняття різні. У протоколі групової ЕЦП вирішується завдання забезпечення можливості будь-якому користувачеві з деякої групи сформувати підпис від імені всієї групи. У протоколі групової ЕЦП також регламентується наявність конкретних осіб, які можуть визначати список людей, які сформували підпис (тим самим останні мають гіпотетичну можливість підписатися за будь-якого з членів групи). У разі колективної роботи з електронними документами необхідно мати можливість їх підписи багатьма користувачами[2]. Варіант схеми з генерацією набору індивідуальних користувачів ЕЦП, що підписують один електронний документ, володіє кількома вираженими недоліками — лінійним збільшенням розміру колективної ЕЦП (КЭЦП) із збільшенням числа підписантів, а також необхідністю додаткових перевірок цілісності і повноти колективної цифрового підпису для виключення можливості підміни кількості та поіменного складу учасників, що підписали документ.

Концепція колективного відкритого ключа

На основі відкритих ключів учасників виробляється колективний відкритий ключ, що дозволяє виробити і перевірити справжність колективної електронного цифрового підпису. На колективний відкритий ключ накладається ряд обмежень за розміром, цілісності, незалежності від користувачів, одночасності генерації колективного відкритого ключа і нерозривності. Іншими словами — з КЕЦП не можна обчислити валідність КЕЦП для будь-якого іншого набору учасників з безлічі поточних, КЕЦП не прив'язана до складу учасників — будь-які користувачі можуть об'єднуватися в групи і виробити свою КЕЦП. Колективний відкритий ключ — функція відкритих ключів користувачів — є базисом, на якому будується весь протокол колективної підпису[3].

КЕЦП виробляється у відповідності з перерахованими вимогами за допомогою алгоритмів, стабільність яких забезпечується за рахунок наступних обчислювально-важких завдань: дискретне логарифмування в мультиплікативної групи великої простого порядку, витяг коренів великий простий ступеня за великим простому модулю, дискретне логарифмування в групі точок еліптичної кривої спеціального виду.[3].

Реалізація протоколів на основі стандартів ЕЦП

Стандарт ЕЦП — ГОСТ Р 34.10−94

Згідно стандарту ГОСТ Р 34.10−94[4] накладаються обмеження на просте число p в двійковоиму представленні яке використовується: біт або  біт. Число такий, що  для або  для . Для генерації і перевірки ЕЦП використовують число , таке що , де  — генератор підгрупи досить великого простого порядку .

Алгоритм обчислення ЕЦП

1. Генерується випадкове число . 
2. Обчислюється значення  що є першою частиною підпису. 
3. По ГОСТ Р 34.11–94 обчислюється хеш-функція   від підписуваного повідомлення. 
4. Обчислюється друга частина підпису: , де  — секретний ключ. Якщо 
 , процедура генерації підпису повторюється.

Алгоритм перевірки достовірності ЕЦП

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

Реалізація протоколу КЕЦП

Кожен -й користувач формує відкритий ключ виду , де — особистий (секретний) ключ, = , , … , .

Колективним відкритим ключем є добуток

 

Кожен користувач вибирає випадковий секретний ключ — число, яке використовується лише один раз.

Обчислюється

 
 
 є доступним для всіх учасників колективу, що виробляють КЕЦП 

Потім кожен з учасників колективу, що виробляють КЕЦП, по визначеній ним значенням і результату обчислює

 
 - частина підпису. 

Колективнмим підписом буде пара величин , де — сума всіх по модулю [3].

Перевірка колективного електронного цифрового підпису

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

 

Якщо , то КЕЦП сукупності користувачів є справжньою, так як вона могла бути сформована тільки за участю кожного користувача з цієї групи, оскільки для її формування потрібно використання секретного ключа кожного з них. Зазначимо, що аутентифікація значень здійснюється автоматично при перевірці достовірності колективної ЕЦП. Якщо порушник спробує підмінити будь-яке з цих значень або замінити на раніше використані значення, то факт втручання в протокол буде відразу виявлено при перевірці достовірності ЕЦП, тобто буде отримано . Очевидно, що розмір КЕЦП не залежить від [3].

Доказ коректності запропонованого алгоритму КЕЦП

В рівнянні  підставляємо отриману підпис - пару (R,S), де R — добуток Ri по модулю q, S — сумма Si по модулю q: Переконуємося, що воно виконується: [3] Розглянемо формальний доказ стійкості протоколу КЕЦП при використанні перевірочного рівняння

, регламентується стандартом ЕЦП ГОСТ Р 34.10-94.

Можливість підробки КЕЦП

Очевидно, що для порушників складність підробки КЕЦП визначається складністю підробки індивідуального підпису окремого учасника групи. Можливості виникають у користувачів, які об'єднують свої зусилля, щоб сформувати КЕЦП, що відноситься до колективу, в якому крім них входить ще один або кілька інших користувачів, які про це не сповіщаються (доказ для обох випадків аналогічно).

Нехай m-1 користувачів хочуть сформувати КЕЦП, перевіряється за колективним відкритого ключа , де , тобто  користувачів об'єднують свої зусилля, щоб сформувати пару чисел таку, що . Тобто вони можуть підробити підпис під відкритий ключ , тобто обчислити значення  і , які задовольняють рівняння  . З цього випливає можливість підробити цифровий підпис в базовій схемі ЕЦП, так як .

Атака на обчислення секретного ключа іншого співвласника КЕЦП

Нехай  - це ЕЦП, сформована -м користувачем до документу, який відповідає хеш-функції  (атаку виконують  користувачів). Тоді виконується:  і обчислюють . для . Потім обчислюються параметри и , які задовільняють рівнянням , де . Вводячи позначення . Маємо , де и . Це означає, що атакуючі отримали правильне значення колективного підпису , в якій беруть участь вони і ще один користувач, що володіє відкритим ключем . Згідно допущенню з отриманої колективного підпису атакуючі можуть обчислити секретний ключ .З виразу для і формули  легко отримати: . Атакуючі вирахували секретний ключ -го користувача за його індивідуальної ЕЦП, сформованої в рамках базового алгоритму ЕЦП. Це доводить пропозицію про те, що запропонований протокол КЕЦП не знижує стійкості базового алгоритму ЕЦП.

Стандарт ЕЦП — ГОСТ Р 34.10−2001

Згідно стандарту ГОСТ Р 34.10−2001[5] накладаються обмеження на просте число p  яке використовується, просте число q и точку G. Просте число  — модуль еліптичної кривої (ЕК), яка задається в декартовій системі координат рівнянням з коефіцієнтами  і : ( — поле Галуа порядка ). Просте число  — порядок циклічної підгрупи точок еліптичної кривої. Точка  — точка на еліптичній кривій з координатами , відмінна від точки початку координат, але для якої точка збігається з початком координат. Секретним ключем є досить велике ціле число . Відкритим ключем є точка .

Формування підпису

1. Генерується випадкове ціле число . 
2. Обчислюються координати точки ЕК  і визначається значення , де  — координата точки . 
3. Обчислюється значення , де . 
Підписом є пара чисел .[5]

Перевірка підпису

Перевірка підпису полягає у обчисленні координат точки ЕК:

а також у визначенні значення та перевірці виконання рівності .[5]

Реалізація протоколу КЕЦП

Кожен учасник групи формує відкритий ключ виду

, де - особистий (секретний) ключ, .

Колективним відкритим ключем є сума

Кожен учасник групи виробляє число — разовий випадковий секретний ключ. За допомогою це разового випадкового ключа обчислюються координати точки . Результат обчислення розсилається всім учасникам групи для колективного використання. Обчислюється сума

З одержаної суми обчислюється значення . Кожен учасник групи обчислює свою частину підписи:

[3]

Перевірка КЕЦП

Обчислюють

По отриманому результату обчислюється

Якщо , то КЭЦП сукупності m користувачів є справжньою, так як вона могла бути сформована тільки за участю кожного користувача з цієї групи, так як для формування КЭЦП потрібна наявність секретного ключа кожного з учасників.

Реалізація множинного підпису на основі RSA

Схема подвійного підпису

Схема подвійний цифрового підпису розширює звичайну схему RSA. У схемі подвійний цифрового підпису генерується не пара ключів (відкритий / закритий ключ), а трійка (два приватних і один публічний). За аналогією зі звичайною схемою RSA учасники вибирають модуль обчислення  — добуток двох простих довгих чисел. Вибираються 2 випадкових приватних ключа і в діапазоні від 1 до , кякі будуть взаємно прості з , де  — функция Ейлера.Вироблення відкритого ключа здійснюється за формулою . Величина буде публічним ключем. Для того, щоб підписати величину , перший учасник обчислює. Результат обчислення передається на вхід другого учасника групи. У другого учасника з'являється можливість побачити, що він буде підписувати. Для цього він отримує величину  з величини ,йому необхідно буде обчислити . Перевірка підпису здійснюється за допомогою .[6]

Розширення схеми подвійного підпису на учасників

Генеруються . Публічний ключ буде обчислюватися по формулі. Кожний -й учасник підписує повідомлення M по формулі . Потім обчислюється величина . Перевірка підпису здійснюється за формулою .

Примітки

  1. Молдовян Николай Андреевич, Еремеев Михаил Алексеевич, Галанов Алексей Игоревич. МНОЖЕСТВЕННАЯ ПОДПИСЬ: НОВЫЕ РЕШЕНИЯ НА ОСНОВЕ ПОНЯТИЯ КОЛЛЕКТИВНОГО ОТКРЫТОГО КЛЮЧА // Журнал "Информационно-управляющие системы". — 2008.  Вип. 1.
  2. B. Schneier. Прикладная криптография // John Wiley & Sons. — 1996. — С. 98.
  3. Николай Андреевич Молдовян, Андрей Алексеевич Костин, Лидия Вячеславовна Гортинская, Михаил Юрьевич Ананьев. РЕАЛИЗАЦИЯ ПРОТОКОЛА КОЛЛЕКТИВНОЙ ПОДПИСИ НА ОСНОВЕ СТАНДАРТОВ ЭЦП // Журнал "Информационно-управляющие системы". — 2005.
  4. ГОСТ Р 34.10–94. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи // Госстандарт Российской Федерации. — 1994.  25 травня.
  5. ГОСТ Р 34.10–2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи // Госстандарт Российской Федерации. — 2001.  Помилка: неправильний час.
  6. Mihir Bellare,Gregory Neven. .
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.