Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных и знаний. Управление базами и защита информации учебное п

.pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
1.29 Mб
Скачать

щение и подпись пересылаются получателю. Получатель вычисляет хэш-код сообщения и проверяет подпись, используя открытый ключ отправителя. Если вычисленный хэш-код равен дешифрованной подписи, то считается, что подпись корректна.

Подход DSS также использует сильную хэш-функцию. Хэш-код является входом функции подписи вместе со случайным числом k, созданным для этой конкретной подписи. Функция подписи также зависит от закрытого ключа отправителя KRa и множества параметров, известных всем участникам. Можно считать, что это множество состоит из глобального открытого ключа KUG. Результатом является подпись, состоящая из двух компонентов, обозначенных как s и r.

Для проверки подписи получатель также создает хэш-код полученного сообщения. Этот хэш-код вместе с подписью является входом в функцию верификации. Функция верификации зависит от глобального открытого ключа KUG и от открытого ключа отправителя KUa. Выходом функции верификации является значение, которое должно равняться компоненту r подписи, если подпись корректна. Функция подписи такова, что только отправитель, знающийзакрытыйключ, может создать корректную подпись.

Теперьрассмотримдеталиалгоритма, используемого в DSS.

7.4.1. Алгоритм цифровой подписи

DSS основан на трудности вычисления дискретных логарифмов и базируется на схеме, первоначально представленной ElGamal и Schnorr. Существует три параметра, которые являются открытыми и могут быть общими для большой группы пользователей. 160-битное простое число q, т.е. 2159 < q < 2160. Простое число р длиной между 512 и 1024 битами должно быть таким, чтобы q было делителем (р – 1), т.е. 2L-1 < p < 2L,

где 512 < L < 1024 и (p-1)/q является целым. g = h(p-1)/q mod p,

где h является целым между 1 и (р-1) и g должно быть больше,

181

чем 1,10. Зная эти числа, каждый пользователь выбирает закрытый ключ и создает открытый ключ. Закрытый ключ х должен быть числом между 1 и (q-1) и должен быть выбран случайно или псевдослучайно, x – случайное или псевдослучайное целое, 0 < x < q ,

Открытый ключ вычисляется из закрытого ключа как у = gx mod p. Вычислить у по известному х довольно просто. Однако, имея открытый ключ у, вычислительно невозможно определить х, который является дискретным логарифмом у по основанию g., т.е y = gx mod p, х уникально для каждой подписи. k – случайное или псевдослучайное целое, 0 < k < q, уникальное для каждого подписывания.

Для создания подписи отправитель вычисляет две величины, r и s, которые являются функцией от компонентов открытого ключа (p, q, g), закрытого ключа пользователя (х), хэш-кода сообщения Н (М) и целого k, которое должно быть создано случайно или псевдослучайно и должно быть уникальным при каж-

дом подписывании. r = (gk mod p) mod qs = [ k-1 (H (M) + xr) ] mod q Подпись = (r, s).

Получатель выполняет проверку подписи с использованием следующих формул. Он создает величину v, которая является функцией от компонентов общего открытого ключа, открытого ключа отправителя и хэш-кода полученного сообщения. Если эта величина равна компоненту r в подписи, то подпись считается действительной.

w = s-1 mod q

u1 = [ H (M) w ] mod q u2 = r w mod q

v = [ (gu1 yu2) mod p ] mod q

подпись корректна, если v = r

Программная реализация алгоритма электронной подписит

(рис. 7.7)

182

Рис. 7.7. Выпадающее меню

Чтобы проверить работу алгоритма, достаточно выбрать пункт меню “Создание подписи”. После нажатия программа пошагово показывает работу алгоритма и выдает результаты в виде списка, который показан на рис. 7.8.

Рис. 7.8. Результат работы программы

183

Чтобы завершить работу программы, нужно нажать кнопку “Выход” главного меню программы. Исходный код алгоритма, использующийся в программе, приведен ниже:

begin

St:='Создание открытых ключей P,q,g,y'; wr(st);

P:=124540019;

q:=17389;

Form1.Memo1.Lines.Add('P= '+inttostr(P)); Form1.Memo1.Lines.Add('q= '+inttostr(q)); k:=(p-1) div q; Form1.Memo1.Lines.Add('k:=(p-1)/q= '+inttostr(k)); g:=110217528;

Form1.Memo1.Lines.Add('g число= '+inttostr(g)); Nodd(g,k,p,t);

Form1.Memo1.Lines.Add('t=g^k mod p= '+inttostr(t));

X:=12496;

Form1.Memo1.Lines.Add('X Секретный ключ.= '+inttostr(x));

Nodd(t,x,p,y); Form1.Memo1.Lines.Add('Y=t^x mod p= '+inttostr(y));

St:=' ';wr(st);

st:='Генерация подписи';wr(st); // выбираем произвольное целое k1:=9557;

Form1.Memo1.Lines.Add('k1 число произвольное= '+inttostr(k1));

// Вычисляем R =t^k1 mod q Nodd(t,k1,P,R); R:= R mod q;

Form1.Memo1.Lines.Add('R =(t^k1 mod p)mod q= '+inttostr(R));

h:=5246;

Form1.Memo1.Lines.Add('Hesh = '+inttostr(H)); Nodd(k1,q-2,q,R1); Form1.Memo1.Lines.Add('обратная от k1= k1^(q-2) mod q '+inttostr(r1));

s:=((h+x*r)) mod q; s:=(s*r1) mod q;

184

Form1.Memo1.Lines.Add('s= K1^-1*(h+x*r) mod q = '+inttostr(s));

// Подпись R,S Form1.Memo1.Lines.Add('Подпись R,S = '+inttostr(r)+' '+inttostr(s));

St:=' ';wr(st); St:='Проверка подписи'; Wr(st);

St:='Вычислим обратное w от s =s^(q-2) mod q'; Wr(st);

Nodd(s,q-2,q,W);

Form1.Memo1.Lines.Add('w = '+inttostr(W)); U1:=W*H mod q;

u2:= W*R mod q;

Form1.Memo1.Lines.Add('U1 = '+inttostr(U1)+' U2 = '+inttostr(U2));

St:='Вычислим результат V=((T^u1*y^u2) mod p0 mod q';

Wr(st);

Nodd(t,u1,p,t1);

Nodd(y,u2,p,t2); T3:=(T1*T2) mod P; T4:=T3 mod q;

Form1.Memo1.Lines.Add('if t4=r подпись действительна '+inttostr(r)+' '+inttostr(t4));

end;

Procedure wr(st:ts); begin

Form1.Memo1.Lines.Add(st);

end;

7.5.Контрольные вопросы

1.Электронный документооборот ОМЕГА.

2.Понятие информации.

3.Правовые, организационные требования защиты инфор-

мации.

4.Источники угроз и защита информации.

185

5.Понятие криптологии.

6.Понятие криптографии и решаемые задачи.

7.Математические основы криптографии.

8.Место ключей в криптографии.

9.Симметричные и ассиметричные системы шифрования

ирасшифрования.

10.Протокол Аутентификации Мидхема Шредера.

11.Блочный алгоритм DES, 2DES , 3DES.

12.Блочный алгоритм AES, RS%, Mars, BlowFish, TwoFish.

13.Блочный алгоритм IDEA, SAFER.

14.Блочный алгоритм российского ГОСТ 28147-89.

15 Ассиметричный алгоритм RSA, Эль-Гамаля, ДиффиХелмана.

16.Функция хеширования SHA, MD5, SHA-1.

17.Функция хеширования SHA-256< Ansix9.30.2.

18.Электронная подпись.

19.Система шифрования Crypto Api.

20.Delphi и Windows Api для защиты секретов.

186

Список рекомендуемой литературы

1.Gilles Brassard. Modern Cryptology / Brassard Gilles. – Berlin etc.: Springer-Verlag, 1988. (Lecture Notes in Computer Science; 325).

2.Schneier Bruce. Applied Cryptography: Protocols, Algorithms and Source Code in C / Bruce Schneier. – John Wiley & Sons, 1993. – 618 p.

3.Мафтик С. Механизмы защиты в сетях ЭВМ / С. Маф-

тик; пер. с англ. – М.: Мир, 1993. – 216 с.

4.Дориченко С.А. 25 этюдов о шифрах / С.А. Дориченко, В.В. Ященко. – М.: Теис, 1994. – 71 с. – (Математические основы криптологии).

5.Жельников В. Криптография от папируса до компьютера

/В. Жельников. – М.: ABF, 1996. – 335 с.

6.Петров А.А. Компьютерная безопасность. Криптографические методы / А.А. Петров. – М.: ДМК, 2000.

7.Введение в кpиптогpафию / под общ. pед. В.В. Ященко. –

М.: МЦНМО, 2000. – 288 c.

8.Варфоломеев А.А. Методы криптографии и их примене-

ние в банковских технологиях / А.А. Варфоломеев, М.Б. Пеленицын. – М.: МИФИ, 1995. – 116 с.

9.FIPS publication 46 Data Encryption Standard // Federal Information Processing Standards Publ. – 1977.

10.Eli Biham. Differential Cryptanalysis of DES-like cryptosystems / Biham Eli, Shamir Adi // Journal of Cryptology. – 1991. – 4(1). – P. 3–72.

11.Eli Biham. Differential Cryptanalysis of the full 16-round DES / Biham Eli, Shamir Adi. // Advances in Cryptology – CRYPTO'92. – Berlin etc.: Springer-Vergal, 1993. (Lecture Notes in Computer Science; 740).

187

12.Matsui Mitsuru. Linear Cryptoanalysis Method for DES Cipher

/Mitsuru Matsui // Advances in Cryptology – EUROCRYPT'93. – Berlin ect.: Springer-Vergal, 1994. (Lecture Notes in Computer Science; 765). – P. 380–397.

13.Campbell K.W. DES is Not a Group / K.W. Campbell, M.J. Wiener // Advances in Cryptology – CRYPTO'92. – Berlin etc.: Springer-Vergal, 1993. (Lecture Notes in Computer Science; 740). – P. 512–520.

14.Merkle R.C. On the security of multiple encryption /

R.C. Merkle, M.E. Hellman // Communications of the ACM. – 1981. – Vol. 24. – P. 465–467.

15.ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.

16.Винокуров А. ГОСТ не прост..., а очень прост! / А. Ви-

нокуров // Монитор. – 1995. – С. 60–73.

17.Xuejia Lai. Massey A proposal for a New Block Encryption Standard / Lai Xuejia, L. James // Advances in Cryptology – EUROCRYPT'90. – Berlin ect.: Springer-Vergal, 1991. (Lecture Notes in Computer Science; 473). – P. 389–404.

18.Meier Willi. On the security of the IDEA Block Cipher / Willi Meier // Advances in Cryptology – EUROCRYPT'93. – Berlin ect.: Springer-Vergal, 1994. (Lecture Notes in Computer Science; 765). – P. 371–385.

19.Yvo Desmedt. Unconditionally secure authentification schemes and practical and theoretical consequences / Desmedt Yvo // Advances in Cryptology – CRYPTO'85. – Berlin.

20.Норенков И.П. Информационная поддержка наукоемких изделий (CALS-технологии) / И.П. Норенков, П.К. Кузьмик. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002.

21.Управление жизненным циклом продукции / А.Ф. Колчин [и др.]. – М.: Анахарсис, 2002.

188

22.Технологии интегрированной логистической поддержки изделий машиностроения / Е.В. Судов [и др.]. – М.: Информ-

бюро, 2006.

23.Компьютеризированные интегрированные производства

иCALS-технологии в машиностроении / под ред. Б.И. Черпако-

ва. – М., 1999. – 512 c.

24.NATO CALS Handbook, 2000.

25.DEF-STAN-0060. Integrated Logistic Support, 1999.

26.ГОСТ Р 34.10-94. Информационная технология. Крип-

тографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма.

27.ГОСТ Р 34.11-94 Информационная технология. Криптографическая защита информации. Функция хэширования.

28.Методология функционального моделирования. Рекомендации по стандартизации(Проект). – М.: ГосстандартРФ, 2001.

189

Учебное издание

Липин Юрий Николаевич

БАЗЫ ДАННЫХ И ЗНАНИЙ. УПРАВЛЕНИЕ БАЗАМИ И ЗАЩИТА ИНФОРМАЦИИ

Учебное пособие

Корректор Е.Б. Хасанова

Подписано в печать 05.06.2008. Формат 60 90/16. Усл. печ. л. 12,0. Тираж 100 экз. Заказ № 136/2008.

Издательство Пермского государственного технического университета.

Адрес: 614990, г. Пермь, Комсомольский проспект, 29, к. 113.

Тел. (342) 219-80-33.

190