Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Автентифікація користувача. Цифровий підпис. Стандарт DSA.




Завдання надійної автентифікації користувачів є прерогативою криптографії. Очевидно, що для прийняття рішення про автентичність клієнта може бути прийнято на основі якої-небудь вже існуючої на сервері інформації про клієнта, тобто встановлення попередньо захищеного каналу вважається виконаним і виходить за рамки власне процесу автентифікації. Також традиційним для задачі автентифікації є оперування парольною фразою. Парольна фраза в такому випадку відіграє роль секретного ключа. Автентифікація з допомогою повноцінних 128-бітних і більше ключів і за допомогою асиметричних технологій вимагає використання спеціальних носіїв. Отже завдання подібної автентифікації не відрізняється від перевірки автентичності блоку даних і також потрапляє під дію інших криптоалгоритмів. Останнім часом з розвитком Web-технологій з'явився спосіб автентифікації користувачів на основі призначених для користувача цифрових сертифікатів. У цьому випадку користувач повинен зробити попередню роботу по генерації пари ключів та отримання сертифіката. В даний час існують два основні методи аутентифікації користувачів:

- З односпрямованою передачею парольної інформації або її частини

- За технологією «запит - відповідь»

Криптосистема з відкритим ключем RSA часто використовується не тільки для шифрування, але і для побудови схеми електронного підпису. Нехай EA(X) = xemodn суть відкрита функція зашифрування, а DA(X) = xdmodn суть секретна функція розшифрування.

Схема електронного підпису RSA:

1. Абонент А обчислює хеш-образ h (p) повідомлення p.

2. Абонент А зашифровує отримане значення h (p) на своєму секретному ключі d, обчислюючи підпис s = (h(p))dmodn і відправляє абоненту. А також документ-підпис (p, s).

3. Абонент У розшифровує s на відкритому ключі е відправника, тобто обчислює semodn.

4. Абонент У обчислює хеш-образ h (p) отриманого повідомлення і перевіряє рівність h (p) = semodn.

У разі позитивного результату перевірки підпис приймається, у противному випадку відкидається. В якості хеш-функції у схемі підпису RSA використовуються функції сімейства MD.

DSA (Digital Signature Algorithm) - алгоритм з використанням відкритого ключа для створення електронного підпису, але не для шифрування. Секретне створення хеш-значення і публічна перевірка її - тільки одна людина може створити хеш-значення повідомлення, але будь-хто може перевірити її коректність. Заснований на обчислювальній складності взяття логарифмів в кінцевих полях.

Алгоритм DSA грунтується на двох обчислювальний завданнях, пов'язаних з дискретного логарифмування. Одним завданням є складність обчислення логарифма в Z * p, інше завдання - складність логарифмування в циклічній підгрупі порядку q. Алгоритм є окремим випадком цифрового підпису Ель-Гамаля (ElGamal) і був представлений як стандарт FIPS PUB 186-94 (DSS).

1. Генерація ключів DSA

Вибирається просте число q, таке, що 2159 <q <2160.

Вибирається t, т.ч. 0 <= t <= 8 і вибирається просте число p так, що 2511 +64 t <p <2512 +64 t, причому q повинно ділити (p-1).

Знаходиться виробляє елемент a для циклічної групи Z * p порядку q (для цього вибирається g Оz * p і обчислюється a = g (p-1) / q mod p, Якщо a? = 1, то пр. елемент знайдено).

Вибирається випадкове ціле a, т. ч. 1 <= a <= q-1.

Обчислюється y = a a mod p.

Секретним ключем є a, відкритим ключем - (p, q, a, y)

2. Підпис повідомлення

Є повідомлення m. Підпис повідомлення секретним ключем виглядає наступним чином.

Вибирається випадкове секретне число k, 0 <k <q (разовий секретний ключ).

Обчислюється r = (a k mod p) mod q.

Обчислюється k-1 mod q.

Обчислюється s = k-1 {h (m) + ar} mod q, де h (m)-значення хеш-функції від повідомлення m.

Підписом для повідомлення m є пара (r, s).

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

Є відкритий ключ (p, q, a, y), повідомлення m, підпис повідомлення (r, s).

Перевірити, що 0 <r <q і 0 <s <q. Якщо це не так, відкинути підпис.

Обчислити w = s-1 mod q і h (m).

Обчислити u1 = wh (m) mod q і u2 = rw mod q.

Обчислити v = (a u1yu2 mod p) mod q.

Підпис вірна, тільки якщо v = r.

4. Доведення коректності підпису

Якщо (r, s) є коректною підписом для повідомлення m, тоді має виконуватися h (m) =- ar + ks (mod q). Помножимо обидві частини рівності на w і отримаємо, що wh (m) + arw = k (mod q). А це є u1 + au2 = k (mod q). Тобто отримуємо, що (a u1a au2 mod p) mod q = (ak mod p) mod q. Або (au1yu2 mod p) mod q = (a k mod p) mod q. Це є v = r, що й потрібно було довести.

У даному алгоритмі пропонується використовувати просте p розміром від 512 до 1024 біт. Розмір в 512 біт забезпечує мінімальну захищеність. Рекомендований розмір - не менше 768 біт. Згідно FIPS 186, алгоритм не допускає простих чисел більше 1024 біт.

Зовсім не обов'язково існування унікальних p і q для кожного користувача алгоритму. FIPS допускає використання p, q і a в якості системних параметрів для групи користувачів. Однак для підвищення безпеки роботи краще використовувати унікальні значення.










Последнее изменение этой страницы: 2018-04-12; просмотров: 507.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...