Чтение онлайн

на главную

Жанры

Шрифт:

Сразу после соединения с сервером, тоесть в обработчикеTfrmClient. TCPClient-Connected, приведенном в листинге 11.28, клиентская программа отправляет имя пользователя серверу. При отсоединении от сервера (тот же листинг 11.28) происходит соответствующее оформление внешнего вида формы frmClient.

...

Листинг 11.28.

Обработка присоединения/отсоединения от сервера

procedure TfrmClient.TCPClientConnected(Sender: TObject);

begin

//Отправляем на сервер имя пользователя

TCPClient.WriteLn(\'name:\' + txtUser.Text);

end;

procedure TfrmClient.TCPClientDisconnected(Sender: TObject);

begin

//Оформим форму для отсоединенного от сервера состояния

Disconnect;

end;

Ключевой обработчик (именно по таймеру проверяется факт прихода

сообщения от сервера) приведен в листинге 11.29. Для элемента управления TCPClient значение тайм-аута установлено для того, чтобы при отсутствии принятых данных клиентская программа не переходила надолго в состояние ожидания, а генерировалось исключение, по которому и можно судить, что данных еще нет (см. блок try в этом обработчике).

...

Листинг 11.29.

Проверка, есть ли данные от сервера

procedure TfrmClient.Timer1Timer(Sender: TObject);

var strMessage: string;

begin

//Проверим, нет ли для нас сообщения

if (TCPClient.Connected)then

begin

try

strMessage := TCPClient.ReadLn;

if (strMessage <> \'\')then

ProcessMessage(strMessage);

except

on EIdReadTimeout do ; //Ошибки тайм-аута игнорируем

else

//При остальных ошибках отсоединяемся от сервера

TCPClient.Disconnect;

end;

end;

end;

end.

...

Примечание

Чтобы при запуске клиентского приложения из среды Delphi постоянно не появлялись сообщения об исключениях (возникают при истечении тайм-аута в TfrmClient.TimeiiTimer), снимите флажок Stop on Delphi Exceptions на вкладке Language Exceptions диалогового окна Debugger Options (меню Tools → Debugger Options).

На этом рассмотрение сетевого взаимодействия средствами Delphi в рамках этой книги завершается. Конечно, в главе перечислены далеко не все типы соединений и служб, поддерживаемых хотя бы компонентами, поставляемыми вместе с Delphi. Для рассмотрения работы со всеми имеющимися компонентами понадобилось бы написать целую книгу. Тем не менее хочется надеяться, что приведенные в главе примеры помогут вам в освоении механизмов программного взаимодействия между частями компьютерной сети.

Глава 12 Шифрование

• Основы криптографии

• Шифр простой подстановки

• Транспозиция

• Шифр Виженера и его варианты

• Шифр с автоключом

• Взлом

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

В отношении задачи о секретной передаче нетрудно прийти к выводу, что есть три способа ее реализации в компьютерных системах:

• создание абсолютно надежного канала связи, к которому есть доступ только у отправителя и адресата;

• использование общедоступного канала связи, но скрытие самого факта передачи информации;

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

Что касается первого способа, то при современном уровне развития науки и техники сделать такой канал связи между удаленными абонентами для неоднократной передачи больших объемов информации практически нереально.

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

Первые следы стеганографических методов теряются в глубокой древности. Например, известен такой способ скрытия письменного сообщения: голову раба брили, на коже головы писали сообщение и после отрастания волос раба отправляли к адресату.

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

Оттуда же известен метод «микроточки»: сообщение записывается с помощью современной техники на очень маленький носитель (микроточку), который пересылается с обычным письмом, например, под маркой или где-нибудь в другом, заранее обусловленном месте.

В настоящее время в связи с широким распространением компьютеров известно много тонких методов «запрятывания» защищаемых данных внутри больших объемов информации,

хранящейся на компьютере.

Третий способ является предметом изучения криптографии. В ее область входит разработка методов преобразования (шифрования) информации с целью защиты от незаконных пользователей. Такие методы и способы преобразования информации называются шифрами.

12.1. Основы криптографии

Американский математик Клод Шеннон написал работу «Теория связи в секретных системах», в которой он обобщил накопленный до него опыт разработки шифров. В этой работе указано на то, что даже в самых сложных шифрах в качестве типичных компонентов можно выделить шифры замены, шифры перестановки или и х сочетание.

Для начала рассмотрим эти шифры, а позжереализуем их. Начнем, пожалуй, с шифра замены как с самого простого и наиболее популярного. Примерами самых распространенных из известных шифров замены могут служить шифр Цезаря, «цифирная азбука» Петра Великого и «пляшущие человечки» А. Конан Дойла. Из самого названия видно, что шифр замены осуществляет преобразование заменой букв или других «частей» открытого текста на аналогичные «части» шифрованного текста. Легко дать математическое описание шифра замены. Пусть X и Y – два алфавита (открытого и шифрованного текстов соответственно), состоящие из одинакового количества символов. Пусть также g: X → Y – взаимнооднозначное отображение X в Y. Тогда шифр замены действует так: открытый текст х1х2…хп преобразуется в шифрованный текст g(x1)g(x2)…g(xn).

Шифр перестановки, как видно из названия, осуществляет преобразование перестановки букв в открытом тексте. Примером одного из известных шифров перестановкой может служить шифр «Сцитала». Обычно открытый текст разбивается на отрезки равной длины, и каждый отрезок шифруется независимо. Пусть, например, длина отрезков равна п и g – взаимнооднозначное отображение множества {1,2…., п} в себя. Тогда шифр перестановки действует так: отрезок открытого текста х1х2…хп преобразуется в отрезок шифрованного текста xg(1)xg(2)…xg(n).

Важнейшим для развития криптографии был вывод К. Шеннона о существовании и единственности абсолютно стойкого шифра. Единственным таким шифром является какая-нибудь форма так называемой ленты однократного использования, в которой открытый текст «объединяется» с полностью случайным ключом такой же длины.

Этот вывод был доказан К. Шенноном с помощью разработанного им теоретико-информационного метода исследования шифров. Мы не будем здесь останавливаться на этом подробно, заинтересованному читателю рекомендуем изучить работу К. Шеннона.

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

• полная случайность (равновероятность) ключа (это, в частности, означает, что ключ нельзя выработать с помощью какого-либо детерминированного устройства);

• равенство длины ключа и длины открытого текста;

• однократность использования ключа.

В случае нарушения хотя бы одного из этих условий шифр перестает быть абсолютно стойким и появляются принципиальные возможности для его вскрытия (хотя реализовать их может быть чрезвычайно сложно).

Но, оказывается, именно эти условия и делают абсолютно стойкий шифр очень дорогим и непрактичным. Прежде чем пользоваться таким шифром, мы должны обеспечить всех законных пользователей достаточным запасом случайных ключей и исключить возможность их повторного применения. А это сделать очень трудно и дорого.

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

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

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

Поделиться:
Популярные книги

Пропала, или Как влюбить в себя жену

Юнина Наталья
2. Исцели меня
Любовные романы:
современные любовные романы
6.70
рейтинг книги
Пропала, или Как влюбить в себя жену

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

Бракованная невеста. Академия драконов

Милославская Анастасия
Фантастика:
фэнтези
сказочная фантастика
5.00
рейтинг книги
Бракованная невеста. Академия драконов

Возвышение Меркурия. Книга 2

Кронос Александр
2. Меркурий
Фантастика:
фэнтези
5.00
рейтинг книги
Возвышение Меркурия. Книга 2

Наследник павшего дома. Том II

Вайс Александр
2. Расколотый мир [Вайс]
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наследник павшего дома. Том II

Попаданка в академии драконов 2

Свадьбина Любовь
2. Попаданка в академии драконов
Любовные романы:
любовно-фантастические романы
6.95
рейтинг книги
Попаданка в академии драконов 2

Теневой путь. Шаг в тень

Мазуров Дмитрий
1. Теневой путь
Фантастика:
фэнтези
6.71
рейтинг книги
Теневой путь. Шаг в тень

Архил...? Книга 2

Кожевников Павел
2. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Архил...? Книга 2

Искатель. Второй пояс

Игнатов Михаил Павлович
7. Путь
Фантастика:
фэнтези
боевая фантастика
6.11
рейтинг книги
Искатель. Второй пояс

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

70 Рублей - 2. Здравствуй S-T-I-K-S

Кожевников Павел
Вселенная S-T-I-K-S
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
70 Рублей - 2. Здравствуй S-T-I-K-S

Не верь мне

Рам Янка
7. Самбисты
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Не верь мне