logo
Коды и шифры

Шифрование программ, данных и сообщений

К началу 70-х годов большинство крупных компаний, правительственных учреждений и научно-исследовательских институтов уже использовали компьютеры; распространялись и компьютерные сети. Обычно в учреждении была одна или несколько больших ЭВМ, так называемых "мэйнфрэймов" с многочисленными телетайпами, а впоследствии с графическими терминалами, подключенными к ним с помощью телефонных линий. Многие из этих организаций использовали компьютеры, размещенные как в "головном офисе", так и в отдаленных местах. И чтобы различные пользователи могли безопасно связаться друг с другом, требовалась некоторая общая форма шифрования. Алгоритм шифрования пришлось бы сделать общедоступным, поскольку всем пользователям необходимо было знать, как именно должно производиться шифрование, а индивидуальным пользователям необходимо было бы иметь свои собственные секретные ключи, без которых невозможно было бы расшифровать их послания. В свою очередь, отсюда следовало, что метод шифрования должен быть исключительно стойким.

С появлением компьютерных сетей , в дополнение к уже упомянутым проблемам возникли новые аспекты безопасности. Вот два примера:

  1. "Проблема проверки подлинности документа". Допустим, что пользователь X получает по электронной почте письмо, которое, судя по всему, прислал ему Y. Как может X проверить, что письмо действительно послал Y, и (даже если это так), что оно не подвергнуто изменениям? То, что в письме есть электронный адрес Y, ничего не гарантирует, поскольку некто мог воспользоваться компьютером Y в отсутствие хозяина. Даже если Y пользуется паролем, вполне возможно, что после входа в связь он, оставив компьютер включенным, вышел на несколько минут из комнаты - такая вредная привычка провоцирует несанкционированный доступ. Это могло позволить третьему лицу, Z, воспользоваться компьютером Y в его отсутствие, чтобы послать сообщение для X. Если X - это банк, а Y - его клиент, а сообщение уполномочивает X перевести большую сумму денег со счета Y на заокеанский счет, то банк нуждается в способе проверки подлинности сообщения, иначе совершить мошенничество будет очень легко. Кроме того, возможно ли, что Y действительно послал X сообщение, а Z каким-то образом перехватил его и частично изменил ради собственной выгоды?

  2. "Проблема удостоверения подлинности подписи". Допустим, пользователь X послал пользователю Y сообщение, в котором уполномочил его на какие-либо действия. Впоследствии X отрицает, что он посылал сообщение для Y. Спорящие обращаются к третьему лицу (возможно, к судье), которому необходимо решить, посылал ли в действительности X это сообщение, или нет. Существует ли способ, при котором X, подписав сообщение, не мог бы впоследствии отрицать, что оно было им послано, и наоборот, Y не мог бы утверждать, что получил сообщение иного содержания?

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