Новгородский университет

Главная
Свежий номер
Архив
Состав редакции

Наше ноу-хау. Криптография на страже

Татьяна Лаврентьева

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


Криптография - это искусство скрытия информации в последовательности битов от любого несанкционированного доступа. Для достижения этой цели используют шифрование: сообщение с помощью некоторого алгоритма комбинируется с секретной дополнительной информацией (ключом), в результате чего получается криптограмма. Долгое время способы разработки алгоритмов шифрования определялись исключительно хитростью и изобретательностью их авторов. И лишь в ХХ веке этой областью заинтересовались математики, а впоследствии - и физики.

Надежность процедуры шифрования доказана только для метода "одноразовых блокнотов", предложенного в 1917 году Гильбертом Вернамом.

Теория шифрования с использованием открытого ключа была создана Уэтфилдом Диффи и Мартином Хеллманом в 1976 г.

Где сегодня применяется криптография? Для сокрытия документов от посторонних глаз, для доказательства авторства электронных документов, для "электронных" денег и для множества других вещей. Защита данных достигается шифрованием, т.е. преобразованием, которое делает данные недоступными для посторонних.

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

Для любой системы передачи информации характерны следующие действующие лица: объекты X и Y, обменивающиеся информацией и некто Z, пытающийся перехватить эту информацию. Задача заключается в том, чтобы исключить возможность расшифровки информации Z. Однако на практике это жесткое требование заменяется более мягким: необходимо сделать расшифровку сообщения достаточно трудной для Z. Классический подход состоит в том, что ключ, использующийся как для шифровки, так и для расшифровки сообщения, должен быть известен только X и Y. Такие системы называются криптосистемами с закрытым ключом.

И вот мною разработана программа шифрования и дешифрования текста. Она сделана на языке Паскаль. В программе используется 253 символа:

MassivPassword: Array [1..255] Of Integer;

С помощью этой программы можно зашифровать любой текст как на русском, так и на английском языке; а также его затем дешифровать:

GoToXY(20,10);

Write("l. Шифрование файла.1);

GoToXY(20,11);

Write("2. Дешифрование файла.");

GoToXY(20,12);

Также использую:

READLN(Password..) - после ввода значений курсор встанет в начало следующей строки и следующий ввод начнётся с новой строки.

WRITE(V1,V2..); выводит на экран монитора, в файл, на принтер список вывода. Элементы вывода - это константы, переменные или выражения целого, вещественного, строкового, символьного или булевского типов; Оператор GOTO (безусловного перехода); Существует краткая форма оператора IF:

IF S THEN A,

где S - логическое выражение, которое проверяется, А - оператор, который выполняется, если S - истинно, т.е.

If Number=l

Then

While Not EOF(FileOne) Do Begin.

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

Я думаю, что проблема массового применения криптографии скорее психологическая. Само понятие приватности, частной жизни, силой выбито коммунистическим режимом из многих наших сограждан: жизнь в стране бараков и исправительных лагерей не способствовала укреплению чувства собственного достоинства и неприкосновенности честной жизни. Но я глубоко убеждена - переход к цивилизованному демократическому обществу АБСОЛЮТНО НЕВОЗМОЖЕН без осознания гражданами чувства собственного достоинства. Пока мы твердо не решим, что государство существует и работает на нас, а не мы являемся его винтиками, никакие киоски с "Кока-Колой" не приблизят нас к демократии. Поэтому ограждение нашей общественной, частной и коммерческой жизни с помощью криптографии от бесцеремонного вмешательства государства является не игрушкой интернетчиков, а одним из реальных инструментов защиты наших прав и свобод.

Если каждый из нас будет ежедневно в своей работе в Сети использовать программы криптографии и убедит всех своих друзей и знакомых делать то же самое - это и будет настоящей гражданской акцией по защите наших прав. Тогда и придет время криптографии для массового пользователя.

Var

FileOne:FileOfChar;

FileTworFileOfChar;

NameFile: String;

Pas sword: String;

Kod: Integer;

ASCILInteger;

Number integer;

LengthPassword integer;

I:Byte;

MassivPassword: Array [1..255] Of Integer;

Symbol: Char;

Begin ClrScr;

TextColor(7);

Write('Bведите кодовую строку:'); ReadLn(Password);

LengthPassword-Length(Password);

For I:=l To LengthPassword Do

MassivPassword[I]:=Ord(Password[I]);

Number:=3;

Repeat

TextCo1or(l4);

GoToXY(15,9);

Write(Chr(201));

For I:=l To 30 Do Write(Chr(205));

Write(Chr(187));

GoToXY(15,10);

Write(Chr(186));

GoToXY(15,H); Write(Chr(186)); GoToXY(15,12); Write(Chr{186)); GoToXY(46,10); Write(Chr(186));

GoToXY(46,H); Write(Chr(186)); GoToXY(46,12); Write(Chr(186)); GoToXY(15,13); Write(Chr(200));

For I:=l To 30 Do Write(Chr(205)); Write(Chr(188));

TextColor(7);

GoToXY(7,7);

Write('Bbi6epexe пункт меню (ПРОБЕЛ переключение, ENTER подтверждение).');

GoToXY(20,10);

Write('l. Шифрование файла.1); GoToXY(20,ll);

Write('2. Дешифрование файла.'); GoToXY(20,12);

Write(T3. Выход.');

If ASCII=32 Then Number:-Number+l; IfNumber>3 Then Number-Number-3;

Case Number Of

1:

Begin

TextColor(12);

GoToXY(20,10);

Write('l. Шифрование файла. ');

TextColor(7);

End;

2:

Begin

TextColor(12);

GoToXY(20,ll);

Write('2. Дешифрование файла. ');

TextColor(7);

End;

3:

Begin

TextColor(12);

GoToXY(20,12);

Write('3. Выход. ');

TextColor(7);

End;

End;

GotoXY(20,9+Number);

Symbol "ReadKey ;

ASCII:=Ord(Symbol);

Until ASCII- 13;

I:=0;

IfNumber=l Then

While Not EOF(FileOne) Do Begin

Read(FileOne,Symbol);

ASCII -Ord(Symbol);

ASCII :=ASClI+MassivPassword[I] ;

If ASCU>255 Then ASCH-ASCII-255;

Symbol:=Chr(ASClI);

Write(FileTwo,Symbol);

If I>LengthPassword Then I:=0;

End;

If Number=2 Then

While Not EOF(FileOne) Do Begin

I-I+l;

Read(FileOne,Symbol);

ASCII:Ord(Symbol);

ASCII :=ASCII-MassivPassword[I];

If ASCIKl Then ASCII:=ASCII+255;

Symbol-Chr(ASCII);

Write(FileTwo,Symbol);

If I>LengthPassword Then I:=0;

End;

IfNumbero3 Then Begin

Reset(FileTwo);

ReWrite(FileOne);

While Not EOF(FileTwo) Do Begin

Read(FileTwo,Symbol);

Write(FileOne,Symbol);

End;

End;

Erase(FileTwo);

Close(FileOne);

Close(FileTwo);

ClrScr; End.