Смекни!
smekni.com

Методические указания и варианты заданий к выполнению лабораторных работ по дисциплине «Информационная безопасность в сетях» (стр. 7 из 7)

d:= a + lrot32(d + (b xor (c and (a xor b))) + data[10] + $02441453,9);

c:= d + lrot32(c + (a xor (b and (d xor a))) + data[15] + $d8a1e681,14);

b:= c + lrot32(b + (d xor (a and (c xor d))) + data[ 4] + $e7d3fbc8,20);

a:= b + lrot32(a + (c xor (d and (b xor c))) + data[ 9] + $21e1cde6,5);

d:= a + lrot32(d + (b xor (c and (a xor b))) + data[14] + $c33707d6,9);

c:= d + lrot32(c + (a xor (b and (d xor a))) + data[ 3] + $f4d50d87,14);

b:= c + lrot32(b + (d xor (a and (c xor d))) + data[ 8] + $455a14ed,20);

a:= b + lrot32(a + (c xor (d and (b xor c))) + data[13] + $a9e3e905,5);

d:= a + lrot32(d + (b xor (c and (a xor b))) + data[ 2] + $fcefa3f8,9);

c:= d + lrot32(c + (a xor (b and (d xor a))) + data[ 7] + $676f02d9,14);

b:= c + lrot32(b + (d xor (a and (c xor d))) + data[12] + $8d2a4c8a,20);

a:= b + lrot32(a + (b xor c xor d) + data[ 5] + $fffa3942,4);

d:= a + lrot32(d + (a xor b xor c) + data[ 8] + $8771f681,11);

c:= d + lrot32(c + (d xor a xor b) + data[11] + $6d9d6122,16);

b:= c + lrot32(b + (c xor d xor a) + data[14] + $fde5380c,23);

a:= b + lrot32(a + (b xor c xor d) + data[ 1] + $a4beea44,4);

d:= a + lrot32(d + (a xor b xor c) + data[ 4] + $4bdecfa9,11);

c:= d + lrot32(c + (d xor a xor b) + data[ 7] + $f6bb4b60,16);

b:= c + lrot32(b + (c xor d xor a) + data[10] + $bebfbc70,23);

a:= b + lrot32(a + (b xor c xor d) + data[13] + $289b7ec6,4);

d:= a + lrot32(d + (a xor b xor c) + data[ 0] + $eaa127fa,11);

c:= d + lrot32(c + (d xor a xor b) + data[ 3] + $d4ef3085,16);

b:= c + lrot32(b + (c xor d xor a) + data[ 6] + $04881d05,23);

a:= b + lrot32(a + (b xor c xor d) + data[ 9] + $d9d4d039,4);

d:= a + lrot32(d + (a xor b xor c) + data[12] + $e6db99e5,11);

c:= d + lrot32(c + (d xor a xor b) + data[15] + $1fa27cf8,16);

b:= c + lrot32(b + (c xor d xor a) + data[ 2] + $c4ac5665,23);

a:= b + lrot32(a + (c xor (b or (not d))) + data[ 0] + $f4292244,6);

d:= a + lrot32(d + (b xor (a or (not c))) + data[ 7] + $432aff97,10);

c:= d + lrot32(c + (a xor (d or (not b))) + data[14] + $ab9423a7,15);

b:= c + lrot32(b + (d xor (c or (not a))) + data[ 5] + $fc93a039,21);

a:= b + lrot32(a + (c xor (b or (not d))) + data[12] + $655b59c3,6);

d:= a + lrot32(d + (b xor (a or (not c))) + data[ 3] + $8f0ccc92,10);

c:= d + lrot32(c + (a xor (d or (not b))) + data[10] + $ffeff47d,15);

b:= c + lrot32(b + (d xor (c or (not a))) + data[ 1] + $85845dd1,21);

a:= b + lrot32(a + (c xor (b or (not d))) + data[ 8] + $6fa87e4f,6);

d:= a + lrot32(d + (b xor (a or (not c))) + data[15] + $fe2ce6e0,10);

c:= d + lrot32(c + (a xor (d or (not b))) + data[ 6] + $a3014314,15);

b:= c + lrot32(b + (d xor (c or (not a))) + data[13] + $4e0811a1,21);

a:= b + lrot32(a + (c xor (b or (not d))) + data[ 4] + $f7537e82,6);

d:= a + lrot32(d + (b xor (a or (not c))) + data[11] + $bd3af235,10);

c:= d + lrot32(c + (a xor (d or (not b))) + data[ 2] + $2ad7d2bb,15);

b:= c + lrot32(b + (d xor (c or (not a))) + data[ 9] + $eb86d391,21);

inc(currenthash[0],a); inc(currenthash[1],b);

inc(currenthash[2],c); inc(currenthash[3],d);

index:= 0; fillchar(hashbuffer,sizeof(hashbuffer),0);

end;

procedure update(const buffer; size: longword);

var pbuf: ^byte;

Begin

inc(lenhi,size shr 29); inc(lenlo,size*8);

if lenlo< (size*8) then inc(lenhi);

pbuf:= @buffer;

while size> 0 do

begin

if (sizeof(hashbuffer)-index)<= dword(size) then

begin

move(pbuf^,hashbuffer[index],sizeof(hashbuffer)-index);

dec(size,sizeof(hashbuffer)-index);

inc(pbuf,sizeof(hashbuffer)-index);

compress;

end

else

begin

move(pbuf^,hashbuffer[index],size);

inc(index,size); size:= 0;

end; end; end;

procedure final(var digest);

Begin

hashbuffer[index]:= $80;

if index>= 56 then compress;

pdword(@hashbuffer[56])^:= lenlo;

pdword(@hashbuffer[60])^:= lenhi; compress;

move(currenthash,digest,sizeof(currenthash)); burn;

End;

Begin

init; update(s[1],length(s));

final(a); result:='';

for i:=0 to 15 do

result:=result+inttohex(a[i],0);

burn;

End;

ЛИТЕРАТУРА:

1. С.Г.Баричев, В.В.Гончаров, Р.Е.Серов. Основы современной криптографии – Москва, Горячая линия – Телеком, 2001

2. А.В.Беляев. "Методы и средства защиты информации" (курс лекций). http://www.citforum.ru/internet/infsecure/index.shtml

3. А. А. Болотов, С. Б. Гашков, А. Б. Фролов, А. А. Часовских, «Алгоритмические основы эллиптической криптографии». Учебное пособие. М.: Изд-во МЭИ. 2000 г., 100 с.

4. А.Володин. «Кто заверит ЭЦП», журнал «Банковские системы», ноябрь 2000, http://www.bizcom.ru/system/2000-11/04.html

5. Т.Илонен. Введение в криптографию (Ylonen Tatu. Introduction to Cryptography), http://www.ssl.stu.neva.ru/psw/crypto/intro.html

6. Ш.Т. Ишмухаметов. Технологии защиты информации в сети, Казань, 2008, 91 с. http://depositfiles.com/files/e9zxcqos9

7. Н.Коблиц. Теория чисел и криптография, М.:, ТВР, 2001 http://gabro.ge/biblio/0708/0081/file/Cryptography/Koblic_-_Teoriya_Chisel_i_Cryptografiya.rar

8. О.Р. Лапонина. Криптографические основы безопасности, курс Интернет-университета, http://www.intuit.ru/department/security/networksec

9. Р.Лидл, Г.Нидеррайтер. Конечные поля, в 2 т., пер.с англ., М.: Мир, 1998, 438 с.

10. А.А. Молдовян, Н.А. Молдовян, Б.Я. Советов. Криптография. М., Лань, 2001

11. А.А. Молдовян, Н.А. Молдовян, Введение в криптосистемы с открытым ключом, БХВ-Петербург, 2005, с. 286 http://cyberdoc.nnm.ru/vvedenie_v_kriptosistemy_s_otkrytym_klyuchom

12. А.Г.Ростовцев. Алгебраические основы криптографии, СПб, Мир и Семья, 2000.

13. А.Г.Ростовцев, Е.Б.Маховенко. Теоретическая криптография . – СПб.: АНО, ПО “Профессионал”, 2005, http://bookpedia.ru/index.php?newsid=1265

14. Г.Семенов. «Цифровая подпись. Эллиптические кривые».

http://www.morepc.ru/security/crypt/os200207010.html?print

14. В.Столлингс. Основы защиты сетей. Приложения и стандарты, М.: Вильямс, 2002, 429 с.

15. Брюс Шнайер. Прикладная криптография, 2-е издание: протоколы, алгоритмы и исходные тексты на языке С, http://www.ssl.stu.neva.ru/psw/crypto/appl_rus/appl_cryp.htm

16. Dr. Michael Ganley, Thales eSecurity Ltd. Метод эллиптических кривых, http://www.racal.ru/rsp/eliptic_curve_cryptography.htm

17. В.М.Фомичев. Дискретная математика и криптология, Диалог-МИФИ, 2003, 399 с.

18. Сайт Криптографический ликбез - http://www.ssl.stu.neva.ru/psw/crypto.html

19. Jovan Dj. Golic. Cryptanalysis of Alleged A5 Stream Cipher, Beograd, Yugoslavia, http://jya.com/a5-hack.htm

20. Ю. Спектор. Использование инструментов криптографии в Delphi-приложе-ниях, http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1271