Базы данных и знаний. Управление базами и защита информации учебное п
.pdfщение и подпись пересылаются получателю. Получатель вычисляет хэш-код сообщения и проверяет подпись, используя открытый ключ отправителя. Если вычисленный хэш-код равен дешифрованной подписи, то считается, что подпись корректна.
Подход 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