Математико-алгоритмические методы криптозащиты

Проведение эксперимента по применению различных видов шифрования данных. Сравнение алгоритмов криптозащиты DES и RSA. Выявление их особенностей, устойчивости к взлому, достоинств и недостатков. Анализ сфер применения. Обзор исходных текстов программ.

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 21.08.2017
Размер файла 869,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

00000060: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000070: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000080: 00 00 00 00 41 0F A6 77 ¦ F7 E4 F6 F4 34 85 09 AB

00000090: C2 13 82 C8 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000000A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000000B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000000C0: 00 00 00 00 FC CC 48 D6 ¦ 31 4D 6C F9 94 C4 DF 2A

000000D0: D8 F4 A6 30 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000000E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000000F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000100: 00 00 00 00 AB 1C 25 48 ¦ 25 18 8F 75 27 A3 B7 3F

00000110: 37 23 B0 6C 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000120: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000130: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000140: 00 00 00 00 E8 D4 44 3D ¦ EE DA 4F 7B 23 70 77 6F

00000150: 85 D4 7A 2C 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000160: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000170: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000180: 00 00 00 00 F1 0D 68 D8 ¦ 25 4C 4F 66 89 B8 CC 9B

00000190: CB CF 1F 60 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000001A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000001B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000001C0: 00 00 00 00 E7 21 FC 0D ¦ 54 E7 8D 07 F0 6E 82 45

000001D0: B6 AA 6D F8 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000001E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000001F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000200: 00 00 00 00 6F 4A DB 92 ¦ 6A AB 9C 0A 5C EA 97 BD

00000210: EF 22 A7 08 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000220: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000230: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000240: 00 00 00 00 12 B8 1C 7D ¦ 15 29 C0 3D CC CA BD 0F

00000250: B7 00 7A 82 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000260: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000270: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000280: 00 00 00 00 6B F6 35 55 ¦ 7A FC 88 DB 4F 02 8C C6

00000290: B4 75 BE A2 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000002A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000002B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000002C0: 00 00 00 00 14 66 C5 16 ¦ FD 53 C3 5C F2 26 6D 7D

000002D0: 62 E1 2E 8C 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000002E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000002F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000300: 00 00 00 00 5A 36 3E 0B ¦ 61 D7 BE B3 F6 04 F3 A4

00000310: C8 49 8A D2 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000320: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000330: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000340: 00 00 00 00 DD 29 80 6F ¦ B5 D7 76 24 E2 0E AF 2E

00000350: A2 C8 87 34 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000360: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000370: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000380: 00 00 00 00 21 31 BB D3 ¦ 69 67 AE 46 BF 81 98 BC

00000390: C0 2E 1C A8 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000003A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000003B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000003C0: 00 00 00 00 AC 2C 08 75 ¦ 4A 62 9A CA 8E 9D 81 03

000003D0: 70 03 38 18 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000003E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000003F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000400: 00 00 00 00 24 D8 08 6A ¦ 7F 5B 54 A0 E3 EF 3C F4

00000410: 50 96 77 AA 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000420: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000430: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000440: 00 00 00 00 37 92 0D 58 ¦ ED 70 C6 FF 49 83 36 C5 00000450: 7A AA 1F 2C 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000460: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000470: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000480: 00 00 00 00 CB FC 6A 24 ¦ 20 1D 58 B0 B3 1C AD 16

00000490: DF E2 43 72 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004C0: 00 00 00 00 3E 87 6E 26 ¦ 4A 77 9A 48 45 F4 01 C3

000004D0: 04 CD 6B CC 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000500: 00 00 00 00 45 4D 81 5E ¦ AD B9 01 92 F8 FD B9 1E

00000510: C0 8B 03 B8 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000520: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000530: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000540: 00 00 00 00 B8 A8 B1 68 ¦ A6 75 00 1C D1 89 26 01

00000550: 87 F9 27 12 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000560: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000570: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000580: 00 00 00 00 44 40 9E 5B ¦ F7 2D C8 1E AC 6F A5 52

00000590: A2 4B 3F EC 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000005A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000005B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000450: 7A AA 1F 2C 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000460: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000470: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000480: 00 00 00 00 CB FC 6A 24 ¦ 20 1D 58 B0 B3 1C AD 16

00000490: DF E2 43 72 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004C0: 00 00 00 00 3E 87 6E 26 ¦ 4A 77 9A 48 45 F4 01 C3

000004D0: 04 CD 6B CC 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004E0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000004F0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000500: 00 00 00 00 45 4D 81 5E ¦ AD B9 01 92 F8 FD B9 1E

00000510: C0 8B 03 B8 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000520: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000530: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000540: 00 00 00 00 B8 A8 B1 68 ¦ A6 75 00 1C D1 89 26 01

00000550: 87 F9 27 12 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000560: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000570: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

00000580: 00 00 00 00 44 40 9E 5B ¦ F7 2D C8 1E AC 6F A5 52

00000590: A2 4B 3F EC 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000005A0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

000005B0: 00 00 00 00 00 00 00 00 ¦ 00 00 00 00 00 00 00 00

Приложение 2 Исходные тексты программ

Пр 2.1. Исходные тексты программы шифрования DES.

Файл AlgDes.cpp

#include <io.h>

#include <dir.h>

#include <mem.h>

#include <conio.h>

#include <fcntl.h>

#include <stdio.h>

#include "des.h"

//extern void cdecl des_cryption( char far *source, char far *dest, char far *K );

//extern void cdecl encryption_key( char far *key, char far *K );

//extern void cdecl decryption_key( char far *key, char far *K );

#define BUF_SIZE 4096 /* Размер буфера ввода-вывода */

/* должен быть кратен 8 */

char buf[BUF_SIZE] = "DES_crypt", /* Буфер ввода-вывода */

K[16*8], /* Таблица ключей */

drive[MAXDRIVE],

dir[MAXDIR],

path[MAXPATH];

int main( int argc, char *argv[] )

{

int file_argc=0, /* Позиция файла в argv */

dest, /* Дескриптор получателя */

source, /* Дескриптор источника */

size, /* Количество прочитанных байтов */

i;

enum

{

Encryption,

Decryption

} decr_encr = Encryption; /* Шифрование-дешифрование */

printf("Algoritm DES\n");

_fmode = O_BINARY; /* Двоичный режим */

if( argc > 1 ) /* Разбор командной строки */

for( i = 1; i < argc; i++ )

if( argv[i][0] != '/' )

file_argc = i;

else

switch( argv[i][1] ) /* Разбор опций */

{

case 'D' :

case 'd' :

decr_encr = Decryption; /* Дешифровать */

break;

case 'E':

case 'e':

decr_encr = Encryption; /* Шифровать */

}

if( file_argc == 0 ) /* Не указано имя файла в КС */

{

printf("Использование:\n");

printf(" DES [<options>] <source_file> [<options>]\n");

printf("Options:\n");

printf(" /e Encrypt <source_file>. (DEFAULT)\n");

printf(" /d Decrypt <source_file>.\n");

}

else

{

if( decr_encr == Encryption ) /* Шифрование */

{ /* Разбор имени файла */

long file_length;

encryption_key( getpass( "Enter password:" ), K );

fnsplit( argv[ file_argc ], drive, dir, buf+10, buf+19 );

fnmerge( path, drive, dir, buf+10, ".des" );

if( ( source = open( argv[file_argc], O_RDONLY|O_BINARY ) ) == -1 )

{

perror( "Fatal Error" );

return (1);

}

if( ( file_length = filelength( source ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

return (1);

}

/* Размер шифруемого текста должен быть кратен 8 */

buf[9] = (unsigned char)( 8 - (unsigned char)file_length & 7 ) & 7;

if( ( size = read( source, buf + buf[9] + 24,

BUF_SIZE - buf[9] - 24 ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

return (1);

}

/* Шифруем заглавную часть файла */

for( i = 24; (i - 24) < (size + buf[9]); i += 8 )

des_cryption( buf + i, buf + i, K );

if( ( dest = creatnew( path, 0 ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

return (1);

}

/* Запись заглавной части */

if( write( dest, buf, i ) == -1 )

{

perror( "Fatal Error" );

close( source );

close( dest );

return (1);

}

}

else /* Дешифрование */

{

decryption_key( getpass( "Enter password:" ), K );

if( ( source = open( argv[file_argc], O_RDONLY|O_BINARY ) ) == -1 )

{

perror( "Fatal Error" );

return (1);

}

if( ( size = read( source, buf, BUF_SIZE ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

return (1);

}

/* Проверка формата файла */

if( (size < 24) || ( (size&7) != 0 ) )

{

printf( "Error in file structure !\n" );

return (1);

}

if( memcmp( buf, "DES_crypt", 9 ) != 0 ) /* Наш файл ? */

{

printf( "Error in file structure !\n" );

return (1);

}

/* Восстанавливаем имя исходного файла */

fnsplit( argv[ file_argc ], drive, dir, NULL, NULL );

fnmerge( path, drive, dir, buf + 10, buf + 19 );

/* Обрабатываем заголовок */

for( i = 24; i < size; i += 8 )

des_cryption( buf + i, buf + i, K );

if( ( dest = creatnew( path, 0 ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

return (1);

}

if( write( dest, buf + buf[9] + 24, size - buf[9] - 24 ) == -1 )

{

perror("Fatal Error");

close(source);

close(dest);

return (1);

}

}

/* Цикл шифрования-дешифрования */

for(;;)

{

if( ( size = read( source, buf, BUF_SIZE ) ) == -1 )

{

perror( "Fatal Error" );

close( source );

close( dest );

return (1);

}

if( size == 0 ) /* Конец файла */

break;

if( (size & 7) != 0 ) /* Что-то нечисто !!! */

{

printf( "General failure error !\n" );

return (1);

}

for( i = 0; i < size; i += 8 ) /* Шифрование-дешифрование буфера */

des_cryption( buf + i, buf + i, K );

if( write( dest, buf, i ) == -1 )

{

perror( "Fatal Error" );

close( source );

close( dest );

return (1);

}

}

close( source );

close( dest );

printf( "Ok\n" ); /* Примите наши поздравления! */

}

return (0);

}

Файл Des.h

extern "C" void des_cryption( char far *source, char far *dest, char far *K );

extern "C" void encryption_key( char far *key, char far *K );

extern "C" void decryption_key( char far *key, char far *K );

Файл Des.ASM

TITLE Data Encryption Standard

.MODEL COMPACT, C

.DATA

S1 DB 0E0H, 000H, 040H, 0F0H, 0D0H, 070H, 010H, 040H

DB 020H, 0E0H, 0F0H, 020H, 0B0H, 0D0H, 080H, 010H

DB 030H, 0A0H, 0A0H, 060H, 060H, 0C0H, 0C0H, 0B0H

DB 050H, 090H, 090H, 050H, 000H, 030H, 070H, 080H

DB 040H, 0F0H, 010H, 0C0H, 0E0H, 080H, 080H, 020H

DB 0D0H, 040H, 060H, 090H, 020H, 010H, 0B0H, 070H

DB 0F0H, 050H, 0C0H, 0B0H, 090H, 030H, 070H, 0E0H

DB 030H, 0A0H, 0A0H, 000H, 050H, 060H, 000H, 0D0H

S2 DB 0FH, 03H, 01H, 0DH, 08H, 04H, 0EH, 07H

DB 06H, 0FH, 0BH, 02H, 03H, 08H, 04H, 0EH

DB 09H, 0CH, 07H, 00H, 02H, 01H, 0DH, 0AH

DB 0CH, 06H, 00H, 09H, 05H, 0BH, 0AH, 05H

DB 00H, 0DH, 0EH, 08H, 07H, 0AH, 0BH, 01H

DB 0AH, 03H, 04H, 0FH, 0DH, 04H, 01H, 02H

DB 05H, 0BH, 08H, 06H, 0CH, 07H, 06H, 0CH

DB 09H, 00H, 03H, 05H, 02H, 0EH, 0FH, 09H

S3 DB 0A0H, 0D0H, 000H, 070H, 090H, 000H, 0E0H, 090H

DB 060H, 030H, 030H, 040H, 0F0H, 060H, 050H, 0A0H

DB 010H, 020H, 0D0H, 080H, 0C0H, 050H, 070H, 0E0H

DB 0B0H, 0C0H, 040H, 0B0H, 020H, 0F0H, 080H, 010H

DB 0D0H, 010H, 060H, 0A0H, 040H, 0D0H, 090H, 000H

DB 080H, 060H, 0F0H, 090H, 030H, 080H, 000H, 070H

DB 0B0H, 040H, 010H, 0F0H, 020H, 0E0H, 0C0H, 030H

DB 050H, 0B0H, 0A0H, 050H, 0E0H, 020H, 070H, 0C0H

S4 DB 07H, 0DH, 0DH, 08H, 0EH, 0BH, 03H, 05H

DB 00H, 06H, 06H, 0FH, 09H, 00H, 0AH, 03H

DB 01H, 04H, 02H, 07H, 08H, 02H, 05H, 0CH

DB 0BH, 01H, 0CH, 0AH, 04H, 0EH, 0FH, 09H

DB 0AH, 03H, 06H, 0FH, 09H, 00H, 00H, 06H

DB 0CH, 0AH, 0BH, 01H, 07H, 0DH, 0DH, 08H

DB 0FH, 09H, 01H, 04H, 03H, 05H, 0EH, 0BH

DB 05H, 0CH, 02H, 07H, 08H, 02H, 04H, 0EH

S5 DB 020H, 0E0H, 0C0H, 0B0H, 040H, 020H, 010H, 0C0H

DB 070H, 040H, 0A0H, 070H, 0B0H, 0D0H, 060H, 010H

DB 080H, 050H, 050H, 000H, 030H, 0F0H, 0F0H, 0A0H

DB 0D0H, 030H, 000H, 090H, 0E0H, 080H, 090H, 060H

DB 040H, 0B0H, 020H, 080H, 010H, 0C0H, 0B0H, 070H

DB 0A0H, 010H, 0D0H, 0E0H, 070H, 020H, 080H, 0D0H

DB 0F0H, 060H, 090H, 0F0H, 0C0H, 000H, 050H, 090H

DB 060H, 0A0H, 030H, 040H, 000H, 050H, 0E0H, 030H

S6 DB 0CH, 0AH, 01H, 0FH, 0AH, 04H, 0FH, 02H

DB 09H, 07H, 02H, 0CH, 06H, 09H, 08H, 05H

DB 00H, 06H, 0DH, 01H, 03H, 0DH, 04H, 0EH

DB 0EH, 00H, 07H, 0BH, 05H, 03H, 0BH, 08H

DB 09H, 04H, 0EH, 03H, 0FH, 02H, 05H, 0CH

DB 02H, 09H, 08H, 05H, 0CH, 0FH, 03H, 0AH

DB 07H, 0BH, 00H, 0EH, 04H, 01H, 0AH, 07H

DB 01H, 06H, 0DH, 00H, 0BH, 08H, 06H, 0DH

S7 DB 040H, 0D0H, 0B0H, 000H, 020H, 0B0H, 0E0H, 070H

DB 0F0H, 040H, 000H, 090H, 080H, 010H, 0D0H, 0A0H

DB 030H, 0E0H, 0C0H, 030H, 090H, 050H, 070H, 0C0H

DB 050H, 020H, 0A0H, 0F0H, 060H, 080H, 010H, 060H

DB 010H, 060H, 040H, 0B0H, 0B0H, 0D0H, 0D0H, 080H

DB 0C0H, 010H, 030H, 040H, 070H, 0A0H, 0E0H, 070H

DB 0A0H, 090H, 0F0H, 050H, 060H, 000H, 080H, 0F0H

DB 000H, 0E0H, 050H, 020H, 090H, 030H, 020H, 0C0H

S8 DB 0DH, 01H, 02H, 0FH, 08H, 0DH, 04H, 08H

DB 06H, 0AH, 0FH, 03H, 0BH, 07H, 01H, 04H

DB 0AH, 0CH, 09H, 05H, 03H, 06H, 0EH, 0BH

DB 05H, 00H, 00H, 0EH, 0CH, 09H, 07H, 02H

DB 07H, 02H, 0BH, 01H, 04H, 0EH, 01H, 07H

DB 09H, 04H, 0CH, 0AH, 0EH, 08H, 02H, 0DH

DB 00H, 0FH, 06H, 0CH, 0AH, 09H, 0DH, 00H

DB 0FH, 03H, 03H, 05H, 05H, 06H, 08H, 0BH

.CODE

PUBLIC des_cryption, encryption_key, decryption_key

;****************************************************************************;

;** ШИФРОВАНИЕ/ДЕШИФРОВАНИЕ **;

;****************************************************************************;

;

;****************************************************************************;

;** **;

;** Заголовок : IP MACRO **;

;** Назначение: начальная перестановка IP шифруемого блока **;

;** На входе : DS:SI указывают на исходную 8-байтовую последовательность **;

;** На выходе : AX:BX - блок L0, **;

;** : CX:DX - блок R0 **;

;** Регистры : AX,BX,CX,DX,SI,DI изменяют свое значение **;

;** Такты : 482(86) 367(286) 879(386) 453(486) **;

;** **;

;****************************************************************************;

;

IP MACRO

LOCAL IP_L10

MOV AH, 80H ; Хитрый счетчик на 8 проходов

CLD

IP_L10: LODSB ; Загрузка очередного байта

SHL AL, 1 ; Формирование байтов выходного блока

RCR CH, 1 ; 5-й байт

SHL AL, 1

RCR BH, 1 ; 1-й байт

SHL AL, 1

RCR CL, 1 ; 6-й байт

SHL AL, 1

RCR BL, 1 ; 2-й байт

SHL AL, 1

RCR DH, 1 ; 7-й байт

SHL AL, 1

RCR DI, 1 ; 3-й байт

SHL AL, 1

RCR DL, 1 ; 8-й байт

SHL AL, 1

RCR AH, 1 ; 4-й байт

JNC IP_L10

MOV SI, BX ; Размещение преобразованного

MOV BX, DI ; блока в выходных регистрах

MOV BL, AH

MOV AX, SI

ENDM

;****************************************************************************;

;** **;

;** Заголовок : E MACRO **;

;** Назначение : преобразование E **;

;** На входе : CX:DX - блок R **;

;** На выходе : AH:CH:AL:CL:старший байт DI:DH: **;

;** : младший байт DI:DL<->B1:B2:B3:B4:B5:B6:B7:B8 **;

;** Регистры : AX,CX,DX,DI изменяют свое значение **;

;** Такты : 44(86) 41(286) 62(386) 37(486) **;

;** **;

;****************************************************************************;

;

E MACRO

MOV AX, CX ; AX:DI = CX:DX = Ri

MOV DI, DX

SHL DX, 1 ; Циклический сдвиг Ri влево

RCL CX, 1

ADC DX, 0

AND DX, 3F3FH ; Формирование 6-разрядных

AND CX, 3F3FH ; блоков

SHR AX, 1 ; Циклический сдвиг Ri вправо

RCR DI, 1

RCL AX, 1

ROR AX, 1

SHR AX, 1 ; Формирование 6-разрядных

SHR AX, 1 ; блоков

AND AX, 3F3FH

SHR DI, 1

SHR DI, 1

AND DI, 3F3FH

ENDM

;****************************************************************************;

;** **;

;** Заголовок : XOR_WITH_KEY MACRO **;

;** Назначение : исключающее ИЛИ результата преобразования E с ключом **;

;** На входе : AX:CX:DI:DX - результат преобразования E, ES:SI -> Ki **;

;** На выходе : AH:CH:AL:CL:старший байт DI:DH: **;

;** : младший байт DI:DL<->B1:B2:B3:B4:B5:B6:B7:B8 **;

;** : после сложения с ключом, то есть вход матриц Si **;

;** Регистры : AX,CX,DX,DI изменяют свое значение **;

;** Такты : 76(86) 28(286) 24(386) 8(486) **;

;** **;

;****************************************************************************;

; алгоритм криптозащита шифрование исходный

XOR_WITH_KEY MACRO

XOR AX, ES:[SI]

XOR CX, ES:[SI+2]

XOR DI, ES:[SI+4]

XOR DX, ES:[SI+6]

ENDM

;****************************************************************************;

;** **;

;** Заголовок : S MACRO **;

;** Назначение : преобразование с помощью таблиц Si **;

;** На входе : AX:CX:DI:DX-результат сложения преобразования E с ключом **;

;** На выходе : AX:BX - результат преобразования с помощью таблиц Si **;

;** Регистры : AX,BX,CX изменяют свое значение **;

;** Такты : 153(86) 68(286) 64(386) 22(486) **;

;** **;

;****************************************************************************;

;

S MACRO

SUB BX, BX

MOV BL, AH

MOV AH, [BX+S1]

MOV BL, CH

OR AH, [BX+S2] ; AH = S1:S2

MOV BL, AL

MOV AL, [BX+S3]

MOV BL, CL

OR AL, [BX+S4] ; AL = S3:S4

MOV CX, DI

MOV BL, CH

MOV CH, [BX+S5]

MOV BL, DH

OR CH, [BX+S6] ; CH = S5:S6

MOV BL, CL

MOV CL, [BX+S7]

MOV BL, DL

OR CL, [BX+S8] ; CL = S7:S8

MOV BX, CX ; BX = S5:S6:S7:S8

ENDM

;****************************************************************************;

;** **;

;** Заголовок : P MACRO **;

;** Назначение : перестановка P **;

;** На входе : AX:BX - результат преобразования с помощью таблиц Si **;

;** На выходе : CX:DX - результат перестановки P **;

;** Регистры : AX,BX,CX,DX изменяют свое значение **;

;** Такты : 148(86) 148(286) 414(386) 222(486) **;

;** **;

;****************************************************************************;

;

P MACRO ; Обрабатываемые биты:

ROL AH, 1

RCL CL, 1 ; Байт 2, бит 1

ROL AH, 1

RCL DH, 1 ; Байт 3, бит 1

ROR AH, 1

ROR AH, 1

ROR AH, 1

RCL DH, 1 ; Байт 3, бит 2

ROR BH, 1

RCL DH, 1 ; Байт 3, бит 3

ROR AL, 1

RCL CH, 1 ; Байт 1, бит 1

ROR AL, 1

RCL CL, 1 ; Байт 2, бит 2

ROR AL, 1

RCL DH, 1 ; Байт 3, бит 4

ROR AH, 1

RCL CH, 1 ; Байт 1, бит 2

ROR BH, 1

RCL CL, 1 ; Байт 2, бит 3

ROL BH, 1

ROL BH, 1

ROL BH, 1

ROL BH, 1

ROL BH, 1

RCL DL, 1 ; Байт 4, бит 1

ROL BH, 1

RCL CH, 1 ; Байт 1, бит 3

ROL BH, 1

RCL CH, 1 ; Байт 1, бит 4

ROR AL, 1

RCL DL, 1 ; Байт 4, бит 2

ROR BL, 1

RCL DH, 1 ; Байт 3, бит 5

ROR BL, 1

ROR BL, 1

RCL DL, 1 ; Байт 4, бит 3

ROR BL, 1

RCL CH, 1 ; Байт 1, бит 5

ROR AL, 1

RCL CH, 1 ; Байт 1, бит 6

ROR BL, 1

RCL CH, 1 ; Байт 1, бит 7

ROR BL, 1

RCL DH, 1 ; Байт 3, бит 6

ROR BL, 1

RCL CL, 1 ; Байт 2, бит 4

ROR AH, 1

RCL DL, 1 ; Байт 4, бит 4

ROR AH, 1

RCL CL, 1 ; Байт 2, бит 5

ROL BH, 1

RCL DL, 1 ; Байт 4, бит 5

ROR AL, 1

RCL DL, 1 ; Байт 4, бит 6

ROR AH, 1

RCL DL, 1 ; Байт 4, бит 7

ROR AH, 1

RCL DH, 1 ; Байт 3, бит 7

ROR BL, 1

RCL DL, 1 ; Байт 4, бит 8

ROL BH, 1

ROL BH, 1

ROL BH, 1

RCL CH, 1 ; Байт 1, бит 8

ROL BH, 1

RCL CL, 1 ; Байт 2, бит 6

ROR BL, 1

ROR BL, 1

RCL CL, 1 ; Байт 2, бит 7

ROR AL, 1

RCL CL, 1 ; Байт 2, бит 8

ROR AL, 1

RCL DH, 1 ; Байт 3, бит 8

ENDM

;****************************************************************************;

;** **;

;** Заголовок : XOR_L_F MACRO **;

;** Назначение : исключающее ИЛИ результата функции F с L(i-1) **;

;** На входе : AX:BX - L(i-1), CX:DX - F(R(i-1),Ki) **;

;** На выходе : CX:DX - Ri **;

;** Регистры : CX,DX изменяют свое значение **;

;** Такты : 6(86) 4(286) 4(386) 2(486) **;

;** **;

;****************************************************************************;

;

XOR_L_F MACRO

XOR CX, AX

XOR DX, BX

ENDM

;****************************************************************************;

;** **;

;** Заголовок : DIS_IP MACRO **;

;** Назначение : обратная перестановка IP шифруемого блока **;

;** На входе : CX:DX:AX:BX - переставляемые данные ( R16:L16 ), **;

;** : ES:DI-адрес области сохранения зашифрованного сообщения **;

;** На выходе : Зашифрованное сообщение помещено в память **;

;** Регистры : AX,BX,CX,DX,SI,DI,BP изменяют свое значение **;

;** Такты : 482(86) 366(286) 886(386) 456(486) **;

;** **;

;****************************************************************************;

DIS_IP MACRO

LOCAL DIS_IP_L10

MOV SI, AX

MOV BP, 8 ; Счетчик цикла

DIS_IP_L10: SHR DL, 1 ; Формирование байтов выходного блока

RCR AL, 1 ; 4-й байт

SHR BL, 1

RCR AL, 1 ; 8-й байт

SHR DH, 1

RCR AL, 1 ; 3-й байт

SHR BH, 1

RCR AL, 1 ; 7-й байт

SHR CL, 1

RCR AL, 1 ; 2-й байт

SHR SI, 1

RCR AL, 1 ; 6-й байт

SHR CH, 1

RCR AL, 1 ; 1-й байт

SHR AH, 1

RCR AL, 1 ; 5-й байт

STOSB ; Запись зашифрованного блока

DEC BP

JNZ DIS_IP_L10

ENDM

;****************************************************************************;

;** **;

;** Заголовок : des_cryption PROC **;

;** Назначение : процедура шифрования данных по алгоритму DES **;

;** : параметры получает согласно С стандарту вызова функций **;

;** На входе : source - указатель на восьмибайтовый шифруемый блок **;

;** : dest - указатель на область сохранения закрытых данных **;

;** : K указывает расположение ключей Ki **;

;** На выходе : зашифрованное сообщение помещено в память **;

;** Регистры : AX,BX,CX,DX,ES изменяют свое значение **;

;** Такты : 10088(86) 6203(286) 11549(386) 5803(486) **;

;** **;

;****************************************************************************;

;

des_cryption PROC source:FAR PTR BYTE,dest:FAR PTR BYTE,K:FAR PTR BYTE

PUSH SI ; Организуем связь с С

PUSH DI

PUSH DS

LDS SI, source ; Адрес исходного блока

IP ; Начальная перестановка IP

POP DS

LES SI, K ; Адрес таблицы ключей Ki

PUSH BP

MOV BP, 16 ; 16-проходный DES

des_cryption_L10: PUSH CX

PUSH DX ; Запоминаем R(i-1)

PUSH AX

PUSH BX ; Запоминаем L(i-1)

E

XOR_WITH_KEY

S

P ; CX:DX = F(R(i-1), Ki)

POP BX

POP AX ; AX:BX = L(i-1)

XOR_L_F ; CX:DX = Ri = L(i-1) (+) F

POP BX

POP AX ; AX:BX = Li = R(i-1)

ADD SI, 8 ; Следующий ключ

DEC BP

JZ des_cryption_L20

JMP des_cryption_L10

des_cryption_L20: POP BP

LES DI, dest ; Адрес зашифрованного блока

DIS_IP ; Конечная перестановка

POP DI

POP SI

RET

des_cryption ENDP

;****************************************************************************;

;** СОЗДАНИЕ КЛЮЧЕЙ **;

;****************************************************************************;

;

;****************************************************************************;

;** **;

;** Заголовок : PC1 MACRO **;

;** Назначение : начальная перестановка ключей PC1 **;

;** На входе : DS:SI указывают на исходный восьмибайтовый ключ **;

;** На выходе : BX:AX - блок D0, CX:DX - блок C0 **;

;** Регистры : AX,BX,CX,DX,SI изменяют свое значение **;

;** Такты : 452(86) 337(286) 789(386) 414(486) **;

;** **;

;****************************************************************************;

;

PC1 MACRO

LOCAL PC1_L10

MOV BH, 80H ; Хитрый счетчик

CLD

PC1_L10: LODSB ; Читаем ключ

SHL AL, 1

RCR CH, 1 ; 1-й байт C0

SHL AL, 1

RCR CL, 1 ; 2-й байт C0

SHL AL, 1

RCR DH, 1 ; 3-й байт C0

SHL AL, 1

RCR DL, 1 ; 4-й полубайт C0 и D0

SHL AL, 1

RCR AH, 1 ; 3-й байт D0

SHL AL, 1

RCR BL, 1 ; 2-й байт D0

SHL AL, 1

RCR BH, 1 ; 1-й байт D0

JNC PC1_L10

MOV AL, DL ; Формирование 4-го байта D0

SHL AL, 1

SHL AL, 1

SHL AL, 1

SHL AL, 1

ENDM

;****************************************************************************;

;** **;

;** Заголовок : ROL_KEY MACRO **;

;** Назначение : циклический сдвиг ключей **;

;** На входе : CX:DX - блок C(i-1), BX:AX - блок D(i-1), **;

;** : SI побитно кодирует количество сдвигов **;

;** На выходе : CX:DX - блок Ci, BX:AX - блок Di **;

;** Регистры : AX,BX,CX,DX,SI изменяют свое значение **;

;** Такты : 42/54(86) 30/45(286) 43/70(386) 22/36(486) **;

;** : (зависит от количества сдвигов) **;

;** **;

;****************************************************************************;

;

ROL_KEY MACRO

LOCAL ROL_KEY_L10

AND DL, 0F0H ; 28-разрядный циклический

SHL DX, 1 ; левый сдвиг C0

RCL CX, 1

ADC DL, 0FH

AND AL, 0F0H ; 28-разрядный циклический

SHL AX, 1 ; левый сдвиг D0

RCL BX, 1

ADC AL, 0FH

SHR SI, 1 ; Признак количества сдвигов

JC ROL_KEY_L10

AND DL, 0F0H ; 28-разрядный циклический

SHL DX, 1 ; левый сдвиг C0

RCL CX, 1

ADC DL, 0FH

AND AL, 0F0H ; 28-разрядный циклический

SHL AX, 1 ; левый сдвиг D0

RCL BX, 1

ADC AL, 0FH

ROL_KEY_L10: ENDM

;****************************************************************************;

;** **;

;** Заголовок : PC2_FOR_C MACRO **;

;** Назначение : перестановка PC2 для блока Ci **;

;** На входе : CX:DX - блок Ci **;

;** На выходе : BX:AX - перестановка блока Ci **;

;** Регистры : AX,BX,CX,DX изменяют свое значение **;

;** Такты : 140(86) 138(286) 349(386) 203(486) **;

;** **;

;****************************************************************************;

;

PC2_FOR_C MACRO ; Обрабатываемые биты:

SUB AX, AX

MOV BX, AX

ROR CL, 1

RCL AL, 1 ; Байт 4, бит 3

ROR CH, 1

ROR CH, 1

RCL AL, 1 ; Байт 4, бит 4

ROR CH, 1

ROR CH, 1

ROR CH, 1

ROR CH, 1

RCL AH, 1 ; Байт 2, бит 3

ROR DH, 1

ROR DH, 1

RCL BL, 1 ; Байт 3, бит 3

ROL DL, 1

ROL DL, 1

ROL DL, 1

RCL AL, 1 ; Байт 4, бит 5

ROL DL, 1

RCL AH, 1 ; Байт 2, бит 4

ROR CL, 1

RCL AH, 1 ; Байт 2, бит 5

ROR CL, 1

RCL BH, 1 ; Байт 1, бит 3

ROR DH, 1

ROR DH, 1

ROR DH, 1

RCL AL, 1 ; Байт 4, бит 6

ROR DH, 1

RCL BL, 1 ; Байт 3, бит 4

ROR DH, 1

ROR DH, 1

RCL BH, 1 ; Байт 1, бит 4

ROR CL, 1

RCL AL, 1 ; Байт 4, бит 7

ROR CL, 1

RCL BL, 1 ; Байт 3, бит 5

ROR CL, 1

RCL BH, 1 ; Байт 1, бит 5

ROR DH, 1

RCL BH, 1 ; Байт 1, бит 6

ROR CH, 1

RCL AL, 1 ; Байт 4, бит 8

ROR CH, 1

RCL BH, 1 ; Байт 1, бит 7

ROR CH, 1

ROR CH, 1

ROR CH, 1

RCL AH, 1 ; Байт 2, бит 6

ROR CH, 1

RCL BH, 1 ; Байт 1, бит 8

ROR CH, 1

RCL BL, 1 ; Байт 3, бит 6

ROR DL, 1

ROR DL, 1

ROR DL, 1

RCL BL, 1 ; Байт 3, бит 7

ROR DH, 1

ROR DH, 1

ROR DH, 1

RCL AH, 1 ; Байт 2, бит 7

ROR CL, 1

RCL AH, 1 ; Байт 2, бит 8

ROR CH, 1

ROR CH, 1

ROR CH, 1

ROR CH, 1

RCL BL, 1 ; Байт 3, бит 8

ENDM

;****************************************************************************;

;** **;

;** Заголовок : PC2_FOR_D MACRO **;

;** Назначение : перестановка PC2 для блока Di **;

;** На входе : CX:DX - блок Di **;

;** На выходе : BX:AX - перестановка блока Di **;

;** Регистры : AX,BX,CX,DX изменяют свое значение **;

;** Такты : 133(86) 132(286) 340(386) 194(486) **;

;** **;

;****************************************************************************;

;

PC2_FOR_D MACRO ; Обрабатываемые биты:

SUB AX, AX

MOV BX, AX

ROR CL, 1

RCL BL, 1 ; Байт 3, бит 3

ROL CH, 1

ROL CH, 1

RCL AH, 1 ; Байт 2, бит 3

ROL DH, 1

ROL DH, 1

RCL AL, 1 ; Байт 4, бит 3

ROR CL, 1

ROR CL, 1

RCL AL, 1 ; Байт 4, бит 4

ROR CL, 1

RCL AL, 1 ; Байт 1, бит 3

ROR CL, 1

RCL AH, 1 ; Байт 2, бит 4

ROL DH, 1

ROL DH, 1

ROL DH, 1

RCL AL, 1 ; Байт 3, бит 4

ROL DH, 1

RCL AL, 1 ; Байт 4, бит 5

ROL DH, 1

RCL AH, 1 ; Байт 2, бит 5

ROL DH, 1

RCL AL, 1 ; Байт 1, бит 4

ROL DH, 1

RCL AH, 1 ; Байт 2, бит 6

ROR CL, 1

RCL AL, 1 ; Байт 3, бит 5

ROL CH, 1

RCL AL, 1 ; Байт 1, бит 5

ROR CL, 1

ROR CL, 1

RCL AL, 1 ; Байт 1, бит 6

ROL DH, 1

ROL DH, 1

RCL AL, 1 ; Байт 1, бит 7

ROL DL, 1

ROL DL, 1

ROL DL, 1

RCL AL, 1 ; Байт 1, бит 8

ROL DL, 1

RCL AL, 1 ; Байт 3, бит 6

ROL CH, 1

ROL CH, 1

RCL AH, 1 ; Байт 2, бит 7

ROL CH, 1

RCL AL, 1 ; Байт 3, бит 7

ROL CH, 1

ROL CH, 1

RCL AL, 1 ; Байт 4, бит 6

ROL CH, 1

RCL AL, 1 ; Байт 4, бит 7

ROL CH, 1

ROL CH, 1

ROL CH, 1

RCL AL, 1 ; Байт 4, бит 8

ROL DH, 1

RCL AH, 1 ; Байт 2, бит 8

ROR DL, 1

ROR DL, 1

ROR DL, 1

ROR DL, 1

RCL AL, 1 ; Байт 3, бит 8

ENDM

;****************************************************************************;

;** **;

;** Заголовок : encryption_key PROC **;

;** Назначение : процедура формирования ключей для шифрования **;

;** : параметры получает согласно С стандарту вызова функций **;

;** На входе : key - указатель на восьмибайтовый ключ шифрования **;

;** : K указывает расположение ключей Ki **;

;** На выходе : Сформированные ключи Ki помещены в память **;

;** Регистры : AX,BX,CX,DX,ES изменяют свое значение **;

;** Такты : 8107(86) 6299(286) 13689(386) 7727(486) **;

;** **;

;****************************************************************************;

;

encryption_key PROC key:FAR PTR BYTE,K:FAR PTR BYTE

PUSH SI ; Организуем связь с С

PUSH DI

PUSH DS

LDS SI, key ; Адрес восьмибайтового ключа

PC1

LDS DI, K ; Адрес области сохранения ключей Ki

MOV SI, 8103H ; Кодируем количество сдвигов

encryption_key_L10: ROL_KEY

PUSH CX ; Сохраняем Ci

PUSH DX

MOV ES, BX ; Сохраняем Di

MOV BP, AX

PC2_FOR_C

MOV [DI], BX ; Записываем первую часть Ki

MOV [DI+2], AX

MOV CX, ES ; CX:DX = Di

MOV DX, BP

PC2_FOR_D

MOV [DI+4], BX ; Записываем вторую часть Ki

MOV [DI+6], AX

MOV BX, ES ; AX:BX = Di

MOV AX, BP

POP DX ; CX:DX = Ci

POP CX

ADD DI, 8 ; Следующий ключ Ki

OR SI, SI

JZ encryption_key_L20

JMP encryption_key_L10

encryption_key_L20: POP DS

POP DI

POP SI

RET

encryption_key ENDP

;****************************************************************************;

;** **;

;** Заголовок : decryption_key PROC **;

;** Назначение : процедура формирования ключей для дешифрования **;

;** : параметры получает согласно С стандарту вызова функций **;

;** На входе : key - указатель на восьмибайтовый ключ шифрования, **;

;** : K указывает расположение ключей Ki **;

;** На выходе : сформированные ключи Ki помещены в память **;

;** Регистры : AX,BX,CX,DX,ES изменяют свое значение **;

;** Такты : 8111(86) 6302(286) 13691(386) 7728(486) **;

;** **;

;****************************************************************************;

;

decryption_key PROC key:FAR PTR BYTE,K:FAR PTR BYTE

PUSH SI ; Организуем связь с С

PUSH DI

PUSH DS

LDS SI, key ; Адрес восьмибайтового ключа

PC1

LDS DI, K ; Адрес области сохранения ключей Ki

ADD DI, 15*8 ; Формируем ключи в порядке

; K16,K15,...,K1

MOV SI, 8103H ; Кодируем количество сдвигов

decryption_key_L10: ROL_KEY

PUSH CX ; Сохраняем Ci

PUSH DX

MOV ES, BX ; Сохраняем Di


Подобные документы

  • Сущность и история разработки алгоритма криптозащиты Эль-Гамаля. Основы этого типа шифрования, особенности генерации ключей. Специфика реализации системы криптозащиты средствами процессора ADSP-2181 в расширенных полях Галуа. Блок-схемы программирования.

    контрольная работа [1,0 M], добавлен 13.01.2013

  • История криптографии. Сравнение алгоритмов шифрования, применение в операционной системе. Анализ продуктов в области пользовательского шифрования. Включение и отключение шифрования на эллиптических кривых. Использование хеш-функции. Электронная подпись.

    курсовая работа [492,6 K], добавлен 18.09.2016

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.

    курсовая работа [564,3 K], добавлен 09.05.2012

  • Общие сведения об алгоритмах. Свойство и этапы построения алгоритма. Нисходящее проектирование программ. Основные алгоритмические структуры. Принципы структурной алгоритмизации. Массивы случайных чисел. Ввод исходных данных. Определение и вывод данных.

    методичка [435,3 K], добавлен 09.12.2014

  • Описание основных уязвимостей технологии передачи информации Wi-Fi: атаки, угрозы криптозащиты, анонимность. Принципы и методы обеспечения безопасности беспроводных сетей. Технологии целостности и конфиденциальности передаваемых через сеть данных.

    контрольная работа [539,3 K], добавлен 25.12.2014

  • История алгоритмов симметричного шифрования (шифрования с закрытым ключом). Стандарты на криптографические алгоритмы. Датчики случайных чисел, создание ключей. Сфера интересов криптоанализа. Системы электронной подписи. Обратное преобразование информации.

    краткое изложение [26,3 K], добавлен 12.06.2013

  • Программа на языке Turbo Pascal для шифрования данных с помощью шифра Тритемиуса. Входные, выходные данные. Схема алгоритма и текст программы. Порядок ввода исходных данных и описание получаемых результатов. Тестовых задания и анализ их функционирования.

    курсовая работа [4,0 M], добавлен 06.01.2011

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.