Криптографическая защита информации

Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Южно-Уральский государственный университет
Факультет экономики и предпринимательства
Кафедра «Предпринимательство и менеджмент»








Криптографическая защита информации

Краткий курс лекций























Челябинск
Издательский центр ЮУрГУ
2009






Одобрено учебно-методической комиссией факультета экономики и предпринимательства


Рецензенты:
А.С. Макаров, О.Г. Завьялов






Криптографическая защита информации: Краткий курс лекций
/ Составитель Я.Д. Гельруд. – Челябинск: Издательский центр ЮУрГУ, 2009. – 148 с.



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

Краткий курс лекций предназначен для студентов специальности 090103 «Организация и технология защиты информации».








© Издательский центр ЮУрГУ, 2009







Оглавление

Раздел 1. Общие подходы к криптографической защите информации

Тема 1. Теоретические основы криптографии
4

Тема 2. Простейшие и исторические шифры и их анализ
23

Тема 3. Математические основы криптографии
38

Раздел 2. Основные криптографические примитивы и принципы их построения

Тема 4. Классификация шифров
67

Тема 5. Поточные шифры
98

Тема 6. Блочные шифры
115

Тема 7. Хеш-функции
131

Тема 8. Криптосистемы с открытым ключом
141


Раздел 1. Общие подходы к криптографической защите информации

Тема 1. Теоретические основы криптографии
1.1. Криптография
В переводе с греческого языка слово криптография означает тайнопись. Смысл этого термина выражает основное предназначение криптографии – защитить или сохранить в тайне необходимую информацию.
Криптография дает средства для защиты информации, и поэтому она является частью деятельности по обеспечению безопасности информации.
Существуют различные методы защиты информации. Можно, например, физически ограничить доступ к информации путем хранения ее в надежном сейфе или строго охраняемом помещении. При хранении информации такой метод удобен, однако при ее передаче приходится использовать другие средства.
Можно воспользоваться одним из известных методов сокрытия информации:
– скрыть канал передачи информации, используя нестандартный способ передачи сообщений;
– замаскировать канал передачи закрытой информации в открытом канале связи, например, спрятав информацию в безобидном "контейнере" с использованием тех или других стеганографических способов либо обмениваясь открытыми сообщениями, смысл которых согласован заранее;
– существенно затруднить возможность перехвата противником передаваемых сообщений, используя специальные методы передачи по широкополосным каналам, сигнала под уровнем шумов, либо с использованием "прыгающих" несущих частот и т. п.
В отличие от перечисленных методов криптография не "прячет" передаваемые сообщения, а преобразует их в форму, недоступную для понимания противником. При этом обычно исходят из предположения о полном контроле противником канала связи. Это означает, что противник может не только пассивно перехватывать передаваемые сообщения для последующего их анализа, но и активно изменять их, а также отправлять поддельные сообщения от имени одного из абонентов.
Помимо сокрытия существуют и другие проблемы защиты передаваемой информации. Например, при полностью открытом информационном обмене возникает проблема достоверности полученной информации. Для ее решения необходимо обеспечить:
– проверку и подтверждение подлинности содержания и источника сообщения, а также
– предотвращение и обнаружение обмана и других умышленных нарушений со стороны самих участников информационного обмена.
Для решения этой проблемы обычные средства, применяемые при построении систем передачи информации, подходят далеко не всегда. Именно криптография дает средства для обнаружения обмана в виде подлога или отказа от ранее совершенных действий, а также других неправомерных действий.
Поэтому можно сказать, что современная криптография является областью знаний, связанной с решением таких проблем безопасности информации, как конфиденциальность, целостность, аутентификация и невозможность отказа сторон от авторства. Достижение этих требований безопасности информационного взаимодействия и составляет основные цели криптографии. Они определяются следующим образом.
Обеспечение конфиденциальности – решение проблемы защиты информации от ознакомления с ее содержанием со стороны лиц, не имеющих права доступа к ней. В зависимости от контекста вместо термина "конфиденциальная" информация могут выступать термины "секретная", "частная", "ограниченного доступа" информация.
Обеспечение целостности – гарантирование невозможности несанкционированного изменения информации. Для гарантии целостности необходим простой и надежный критерий обнаружения любых манипуляций с данными. Манипуляции с данными включают вставку, удаление и замену.
Обеспечение аутентификации – разработка методов подтверждения подлинности сторон (идентификация) и самой информации в процессе информационного взаимодействия. Информация, передаваемая по каналу связи, должна быть аутентифицирована по источнику, времени создания, содержанию данных, времени пересылки и т. д.
Обеспечение невозможности отказа от авторства – предотвращение возможности отказа субъектов от некоторых из совершенных ими действий. Рассмотрим средства для достижения этих целей более подробно.
Конфиденциальность
Традиционной задачей криптографии является проблема обеспечения конфиденциальности информации при передаче сообщений по контролируемому противником каналу связи. В простейшем случае эта задача описывается взаимодействием трех субъектов (сторон). Владелец информации, называемый обычно отправителем, осуществляет преобразование исходной (открытой) информации (сам процесс преобразования называется шифрованием) в форму передаваемых получателю по открытому каналу связи шифрованных сообщений с целью ее защиты от противника.
Под противником понимается любой субъект, не имеющий права ознакомления с содержанием передаваемой информации. В качестве противника может выступать криптоаналитик, владеющий методами раскрытия шифров. Законный получатель информации осуществляет расшифрование полученных сообщений. Противник пытается овладеть защищаемой информацией (его действия обычно называют атаками). При этом он может совершать как пассивные, так и активные действия. Пассивные атаки связаны с прослушиванием, анализом трафика, перехватом, записью передаваемых шифрованных сообщений, дешифрованием, т. е. попытками "взломать" защиту с целью овладения информацией.
При проведении активных атак противник может прерывать процесс передачи сообщений, создавать поддельные (сфабрикованные) или модифицировать передаваемые шифрованные сообщения. Эти активные действия называют попытками имитации и подмены соответственно.
Под шифром обычно понимается семейство обратимых преобразований, каждое из которых определяется некоторым параметром, называемым ключом, а также порядком применения данного преобразования, называемым режимом шифрования.
Ключ – это важнейший компонент шифра, отвечающий за выбор преобразования, применяемого для зашифрования конкретного сообщения. Обычно ключ представляет собой некоторую буквенную или числовую последовательность. Эта последовательность как бы "настраивает" алгоритм шифрования.
Каждое преобразование однозначно определяется ключом и описывается некоторым криптографическим алгоритмом. Один и тот же криптографический алгоритм может применяться для шифрования в различных режимах. Тем самым реализуются различные способы шифрования (простая замена, гаммирование и т. п. способы шифрования, которые будут рассмотрены ниже). Каждый режим шифрования имеет как свои преимущества, так и недостатки. Поэтому выбор режима зависит от конкретной ситуации. При расшифровании используется криптографический алгоритм, который в общем случае может отличаться от алгоритма, применяемого для зашифрования сообщения. Соответственно могут различаться ключи зашифрования и расшифрования. Пару алгоритмов зашифрования и расшифрования обычно называют криптосистемой (шифрсистемой), а реализующие их устройства – шифртехникой.
Если обозначить через М открытое, а через С шифрованное сообщения, то процессы зашифрования и расшифрования можно записать в виде равенств
Еk1(М)=С, Dk2(С) = М,
в которых алгоритмы зашифрования Е и расшифрования D должны удовлетворять равенству
D k2(E k1(M))=M.
Различают симметричные и асимметричные криптосистемы. В симметричных системах знание ключа зашифрования k1 позволяет легко найти ключ расшифрования k2 (в большинстве случаев эти ключи просто совпадают). В асимметричных криптосистемах знание ключа k1 не позволяет определить ключ k2. Поэтому для симметричных криптосистем оба ключа должны сохраняться в секрете, а для асимметричных – только один – ключ расшифрования k2, а ключ k1 можно сделать открытым (общедоступным). В связи с этим их называют еще шифрами с открытым ключом.
Симметричные криптосистемы принято подразделять на поточные и блочные системы. Поточные системы осуществляют зашифрование отдельных символов открытого сообщения. Блочные же системы производят зашифрование блоков фиксированной длины, составленных из подряд идущих символов сообщения.
Асимметричные криптосистемы, как правило, являются блочными. При их использовании можно легко организовать передачу конфиденциальной информации в сети с большим числом пользователей. В самом деле, для того чтобы послать сообщение, отправитель открыто связывается с получателем, который либо передает свой ключ отправителю, либо помещает его на общедоступный сервер. Отправитель зашифровывает сообщение на открытом ключе получателя и отправляет его получателю. При этом никто, кроме получателя, обладающего ключом расшифрования, не сможет ознакомиться с содержанием передаваемой информации. В результате такая система шифрования с общедоступным ключом позволяет существенно сократить объем хранимой каждым абонентом секретной ключевой информации.
Возможна и другая симметричная ситуация, когда открытый и секретный ключи меняются местами. Предположим, например, что для проведения контроля соблюдения выполнения каждой стороной договора об ограничении испытаний ядерного оружия создаются пункты контроля, которые ведут запись и конфиденциальную передачу сторонам, участвующим в договоре, сейсмологической информации. Поскольку на каждом таком пункте контролируемая сторона одна, а участников договора может быть очень много, то необходимо обеспечить такое шифрование информации, при котором зашифровать сообщение мог бы только один отправитель, а расшифровать мог бы каждый.
Не существует единого шифра, подходящего для всех случаев жизни. Выбор способа шифрования (то есть криптографического алгоритма и режима его использования) зависит от особенностей передаваемой информации (ее ценности, объема, способа представления, необходимой скорости передачи и т. д.), а также возможностей владельцев по защите своей информации (стоимость применяемых технических устройств, удобство использования, надежность функционирования и т. п.). Имеется большое разнообразие видов защищаемой информации: текстовая, телефонная, телевизионная, компьютерная и т. д., причем у каждого вида информации имеются свои существенные особенности, которые надо учитывать при выборе способа шифрования. Большое значение имеют объемы и требуемая скорость передачи шифрованной информации, а также помехозащищенность используемого канала связи. Все это существенным образом влияет на выбор криптографического алгоритма и организацию защищенной связи.
Наличие надежного криптографического алгоритма и правильный выбор режима еще не гарантируют владельцу защищенность передаваемой информации. Немаловажную роль играет правильность их использования. Поскольку даже самые стойкие шифры при неправильном использовании существенно теряют свои качества, то конфиденциальность передаваемой информации во многом зависит от того, какие ошибки допускает ее владелец при использовании криптографической защиты. А то, что все пользователи допускают ошибки, – неизбежно и является непреложным и важным (для криптоаналитика) фактом, поскольку любые криптографические средства, какими бы они ни были удобными и прозрачными, всегда мешают пользователям в работе, а различные тонкости известны только криптоаналитикам и, как правило, непонятны пользователям этих средств. Более того, в качестве субъектов взаимодействия могут выступать не только люди, но и различные процессы, осуществляющие обработку информации в автоматизированной системе без участия человека. Поэтому защищенность информации в системе существенно зависит от того, насколько правильно там реализована криптографическая подсистема, отвечающая за выполнение криптографических функций. Одно наличие такой подсистемы еще ничего не гарантирует.
Подчеркнем разницу между терминами "расшифрование" и "дешифрование". При расшифровании действующий ключ считается известным, в то время как при дешифровании ключ неизвестен. Тем самым расшифрование должно осуществляться столь же просто, как и зашифрование; дешифрование представляет собой значительно более сложную задачу. Именно в этом и состоит смысл шифрования.
Для разных шифров задача дешифрования имеет различную сложность. Уровень сложности этой задачи и определяет главное свойство шифра – способность противостоять попыткам противника завладеть защищаемой информацией. В связи с этим говорят о криптографической стойкости шифра (или просто стойкости), различая более стойкие и менее стойкие шифры. Методы вскрытия шифров разрабатывает наука, носящая название криптоанализ. Термин криптоанализ ввел У. Фридман в 1920 г.
В иностранной литературе часто используется термин криптология в качестве области знаний, объединяющей криптографию и криптоанализ, при этом криптография понимается как наука о создании шифров. Если следовать такому толкованию, то можно прийти к тезису о том, что задачи создания криптографической защиты и ее преодоления принципиально различаются. На самом деле было бы нелогично считать защиту надежной без проведения детального криптоанализа. В связи с этим, применительно к задаче обеспечения конфиденциальности, мы будем считать термины криптография и криптология синонимами, понимая их как название науки о синтезе шифров и "взломе" шифров.
Целостность
Наряду с конфиденциальностью не менее важной задачей является обеспечение целостности информации, другими словами, неизменности ее в процессе передачи или хранении. Решение этой задачи предполагает разработку средств, позволяющих обнаруживать не столько случайные искажения (для этой цели вполне подходят методы теории кодирования с обнаружением и исправлением ошибок), сколько целенаправленное навязывание противником ложной информации. Для этого в передаваемую информацию вносится избыточность. Как правило, это достигается добавлением к сообщению некоторой проверочной комбинации, вычисляемой с помощью специального алгоритма и играющей роль контрольной суммы для проверки целостности полученного сообщения. Главное отличие такого метода от методов теории кодирования состоит в том, что алгоритм выработки проверочной комбинации является "криптографическим", то есть зависящим от секретного ключа. Без знания секретного ключа вероятность успешного навязывания противником искаженной или ложной информации мала. Такая вероятность служит мерой имитостойкости шифра, то есть способности самого шифра противостоять активным атакам со стороны противника.
Итак, для проверки целостности к сообщению М добавляется проверочная комбинация S, называемая кодом аутентификации сообщения (сокращенно – КАС) или имитовставкой. В этом случае по каналу связи передается пара С=(М,S). При получении сообщения М пользователь вычисляет значение проверочной комбинации и сравнивает его с полученным контрольным значением S. Несовпадение говорит о том, что данные были изменены.
Как правило, код аутентификации является значением некоторой (зависящей от секретного ключа) криптографической хэш-функции (так называется функция, принимающая значения некоторой фиксированной размерности) от данного сообщения: hk(M) = S. К кодам аутентификации предъявляются определенные требования. К ним относятся:
– невозможность вычисления значения hk(М) = S для заданного сообщения М без знания ключа k;
– невозможность подбора для заданного сообщения М с известным значением hk(M)=S другого сообщения m1 с известным значением hk(М1) = S1, без знания ключа k .
Первое требование направлено против создания поддельных (сфабрикованных) сообщений при атаках типа имитация; второе – против модификации передаваемых сообщений при атаках типа подмена.
Аутентификация
Аутентификация – установление подлинности. В общем случае этот термин может относиться ко всем аспектам информационного взаимодействия: сеансу связи, сторонам, передаваемым сообщениям и т. д.
Установление подлинности (то есть проверка и подтверждение) всех аспектов информационного взаимодействия является важной составной частью проблемы обеспечения достоверности получаемой информации. Особенно остро эта проблема стоит в случае не доверяющих друг другу сторон, когда источником угроз может служить не только третья сторона (противник), но и сторона, с которой осуществляется взаимодействие.
Рассмотрим эти вопросы более подробно.
Применительно к сеансу связи (транзакции) аутентификация означает проверку: целостности соединения, невозможности повторной передачи данных противником и своевременности передачи данных. Для этого, как правило, используют дополнительные параметры, позволяющие "сцепить" передаваемые данные в легко проверяемую последовательность. Это достигается, например, путем вставки в сообщения некоторых специальных чисел или меток времени. Они позволяют предотвратить попытки повторной передачи, изменения порядка следования или обратной отсылки части переданных сообщений. При этом такие вставки в передаваемом сообщении необходимо защищать (например, с помощью шифрования) от возможных подделок и искажений.
Применительно к сторонам взаимодействия аутентификация означает проверку одной из сторон того, что взаимодействующая с ней сторона – именно та, за которую она себя выдает. Часто аутентификацию сторон называют также идентификацией (Формально это некорректно, так как под идентификацией понимают процедуру установления присвоенного данной стороне уникального системного имени-идентификатора, которое позволяет отличать ее от других сторон; обычно идентификация заключается в предъявлении этого имени и предшествует процедуре аутентификации, то есть подтверждению правильности идентификации).
Основным средством для проведения идентификации являются протоколы идентификации, позволяющие осуществлять идентификацию (и аутентификацию) каждой из участвующих во взаимодействии и не доверяющих друг другу сторон. Различают протоколы односторонней и взаимной идентификации.
Протокол – это распределенный алгоритм, определяющий последовательность действий каждой из сторон. В процессе выполнения протокола идентификации каждая из сторон не передает никакой информации о своем секретном ключе, а хранит его у себя и использует для формирования ответных сообщений на запросы, поступающие при выполнении протокола.
Наконец, применительно к самой информации аутентификация означает проверку того, что информация, передаваемая по каналу, является подлинной по содержанию, источнику, времени создания, времени пересылки и т. д.
Проверка подлинности содержания информации сводится, по сути, к проверке ее неизменности (с момента создания) в процессе передачи или хранения, то есть проверке целостности.
Аутентификация источника данных означает подтверждение того, что исходный документ был создан именно заявленным источником.
Заметим, что если стороны доверяют друг другу и обладают общим секретным ключом, то аутентификацию сторон можно обеспечить применением кода аутентификации. Действительно, каждое успешно декодированное получателем сообщение может быть создано только отправителем, так как только он знает их общий секретный ключ. Для не доверяющих друг другу сторон решение подобных задач с использованием общего секретного ключа становится невозможным. Поэтому при аутентификации источника данных нужен механизм цифровой подписи, который будет рассмотрен ниже.
В целом, аутентификация источника данных выполняет ту же роль, что и протокол идентификации. Отличие заключается только в том, что в первом случае имеется некоторая передаваемая информация, авторство которой требуется установить, а во втором требуется просто установить сторону, с которой осуществляется взаимодействие.
Цифровая подпись
В некоторых ситуациях, например в силу изменившихся обстоятельств, отдельные лица могут отказаться от ранее принятых обязательств. В связи с этим необходим некоторый механизм, препятствующий подобным попыткам.
Так как в данной ситуации предполагается, что стороны не доверяют друг другу, то использование общего секретного ключа для решения поставленной проблемы становится невозможным. Отправитель может отказаться от факта передачи сообщения, утверждая, что его создал сам получатель (отказ от авторства). Получатель легко может модифицировать, подменить или создать новое сообщение, а затем утверждать, что оно получено от отправителя (приписывание авторства). Ясно, что в такой ситуации арбитр при решении спора не будет иметь возможность установить истину.
Основным механизмом решения этой проблемы является так называемая цифровая подпись.
Хотя цифровая подпись и имеет существенные отличия, связанные с возможностью отделения от документа и независимой передачей, а также возможностью подписывания одной подписью всех копий документа, она во многом аналогична обычной "ручной" подписи.
Схема цифровой подписи включает два алгоритма, один – для вычисления, а второй – для проверки подписи. Вычисление подписи может быть выполнено только автором подписи. Алгоритм проверки должен быть общедоступным, чтобы проверить правильность подписи мог каждый.
Для создания схемы цифровой подписи можно использовать симметричные шифрсистемы. В этом случае подписью может служить само зашифрованное на секретном ключе сообщение. Однако основной недостаток таких подписей состоит в том, что они являются одноразовыми: после каждой проверки секретный ключ становится известным. Единственный выход из этой ситуации в рамках использования симметричных шифрсистем – это введение доверенной третьей стороны, выполняющей функции посредника, которому доверяют обе стороны. В этом случае вся информация пересылается через посредника, он осуществляет перешифрование сообщений с ключа одного из абонентов на ключ другого. Естественно, эта схема является крайне неудобной.
При использовании шифрсистем с открытым ключом возможны два подхода к построению системы цифровой подписи.
Первый подход состоит в преобразовании сообщения в форму, по которой можно восстановить само сообщение и тем самым проверить правильность "подписи". В данном случае подписанное сообщение имеет, как правило, ту же длину, что и исходное сообщение. Для создания такого "подписанного сообщения" можно, например, произвести зашифрование исходного сообщения на секретном ключе автора подписи. Тогда каждый может проверить правильность подписи путем расшифрования подписанного сообщения на открытом ключе автора подписи.
При втором подходе подпись вычисляется и передается вместе с исходным сообщением. Вычисление подписи заключается в преобразовании исходного сообщения в некоторую цифровую комбинацию (которая и является подписью). Алгоритм вычисления подписи должен зависеть от секретного ключа пользователя. Это необходимо для того, чтобы воспользоваться подписью мог бы только владелец ключа. В свою очередь, алгоритм проверки правильности подписи должен быть доступен каждому. Поэтому, как правило, этот алгоритм зависит от открытого ключа пользователя. В данном случае длина подписи не зависит от длины подписываемого сообщения.
Одновременно с проблемой цифровой подписи возникла проблема построения бесключевых криптографических хэш-функций. Дело в том, что при вычислении цифровой подписи оказывается более удобным осуществить сначала хэширование, то есть свертку текста в некоторую комбинацию фиксированной длины, а затем уже подписывать полученную комбинацию с помощью секретного ключа. При этом функция хэширования, хотя и не зависит от ключа и является открытой, должна быть "криптографической". Имеется в виду свойство односторонности этой функции: по значению комбинации-свертки никто не должен иметь возможность подобрать соответствующее сообщение.
В настоящее время имеются стандарты на криптографические хэш-функции, утверждаемые независимо от стандартов на криптографические алгоритмы и схемы цифровой подписи.
1.2. Управление секретными ключами
Порядок использования криптографической системы определяется системами установки и управления ключами.
Система установки ключей определяет алгоритмы и процедуры генерации, распределения, передачи и проверки ключей.
Система управления ключами определяет порядок использования, смены, хранения и архивирования, резервного копирования и восстановления, замены или изъятия из обращения скомпрометированных, а также уничтожения старых ключей.
Предварительное распределение ключей
Для надежной защиты информации, передаваемой по открытому каналу связи, применяют криптографические средства. Чтобы воспользоваться ими, необходимо осуществить первоначальный выбор и установку ключей. Для генерации ключей могут применяться различные алгоритмы. Выбранные ключи необходимо как-либо передать взаимодействующим сторонам. Поэтому для первоначального распределения ключей необходим защищенный канал связи.
Самый надежный способ первоначального распределения ключей – это личная встреча всех взаимодействующих сторон. Можно использовать также специальных курьеров, которые будут развозить ключи. Однако при большом числе взаимодействующих сторон требуется предварительная рассылка значительного объема ключевой информации и последующее ее хранение. Поэтому на практике применяют специальные системы предварительного распределения ключей, предусматривающие распределение и хранение не самих ключей, а некоторой меньшей по объему исходной информации, на основе которой в дальнейшем каждая сторона может вычислить ключ для взаимодействия с другой стороной. Система предварительного распределения ключей включает два алгоритма. С помощью первого алгоритма осуществляется генерация исходной информации. Эта информация включает открытую часть, которая будет передана всем сторонам или помещена на общедоступном сервере, а также секретные части каждой стороны. Второй алгоритм предназначен для вычисления действующего значения ключа для взаимодействия между абонентами по имеющейся у них секретной и общей открытой части исходной ключевой информации.
Система предварительного распределения ключей должна быть устойчивой, то есть учитывать возможность раскрытия части ключей при компрометации, обмане или сговоре абонентов, и гибкой – допускать возможность быстрого восстановления путем исключения скомпрометированных и подключения новых абонентов.
Пересылка ключей
После того как предварительное распределение ключей произведено, может потребоваться передача ключей для каждого конкретного сеанса взаимодействия. Передача этих ключей может осуществляться с помощью шифрования с использованием ранее полученных ключей.
Для передачи зашифрованных ключей по открытому каналу связи между не доверяющими друг другу абонентами требуется решение всего комплекса задач по установлению подлинности различных аспектов взаимодействия, начиная от подлинности субъектов взаимодействия, подлинности передаваемых сообщений, подлинности самого сеанса связи и кончая подтверждением правильности (идентичности) полученных абонентами ключей.
Для централизованного управления пересылкой ключей создаются специальные доверенные центры, выполняющие функции центров распределения или перешифрования ключей. Различие между этими центрами заключается в том, что в первом случае генерация ключей осуществляется в центре распределения, а во втором случае – самими абонентами.
Открытое распределение ключей
Наиболее просто распределение ключей осуществляется в системах открытого распределения (секретных) ключей. Для сетей связи с большим числом абонентов традиционные подходы к построению системы распределения ключей оказываются очень неудобными. Диффи и Хеллман впервые показали, как можно решить эту задачу, используя незащищенный канал связи.
В предложенной ими системе открытого распределения ключей каждая из сторон изначально имеет свой секретный параметр. Стороны реализуют определенный протокол взаимодействия по открытому каналу связи. При этом они обмениваются некоторыми сообщениями (образованными с помощью своих секретных параметров) и по результатам этого обмена вычисляют общий секретный связной ключ. В более поздних работах такие протоколы стали называть протоколами выработки общего ключа, поскольку изначально ни одна из сторон не имеет ключа и как такового распределения или пересылки ключей в нем не происходит.
В исходном виде система Диффи и Хеллмана имела существенные недостатки, связанные с возможностью для третьей стороны по осуществлению активного вхождения в канал связи и проведению полного контроля передаваемой информации. Однако после небольших модификаций и дополнений их протокол уже позволяет осуществлять не только выработку общего ключа, но и одновременно проверять и подтверждать правильность вычислений, а также проводить взаимную аутентификацию взаимодействующих сторон.
Схема разделения секрета
Еще одной задачей современной криптографии, тесно связанной с проблемой распределения ключей и активно развивающейся в последние годы, является задача построения схем разделения секрета. Для многих практически важных приложений, связанных с запуском или активизацией критических процессов или определяющих порядок получения доступа к значимым данным, ответственное лицо должно ввести секретный ключ. Чтобы обезопасить процедуру принятия решения и не отдавать все на волю одного человека, являющегося обладателем ключа, используют метод разделения секрета. Он состоит в назначении определенной группы лиц, которая имеет право принимать решение. Каждый член группы владеет определенной долей секрета (точнее, специально выбранным набором данных), полная совокупность которых позволяет восстановить секретный ключ. При этом схема разделения секрета выбирается с таким условием, что для восстановления секретного ключа требуется обязательное присутствие всех членов группы, так как в случае отсутствия хотя бы одного из участников объединение долей оставшихся членов группы гарантированно не позволяет получить никакой информации о секретном ключе. Таким образом, схема разделения секрета определяется двумя алгоритмами, удовлетворяющими сформулированному выше условию: первый алгоритм определяет порядок вычисления значений долей по сданному значению секретного ключа, а второй предназначен для восстановления значения секрета по известным долям.
Задачу построения схемы разделения секрета можно обобщить
– либо путем введения так называемой структуры доступа, когда решение может приниматься не одной, а несколькими различными группами, причем часть из участников может наделяться правом "вето",
– либо путем добавления механизмов, позволяющих обнаружить обман или сговор участников,
– либо введением специального протокола распределения долей между участниками с подтверждением правильности полученной информации и аутентификацией сторон.

1.3. Инфраструктура открытых ключей.
Сертификаты
Создание цифровой подписи позволило решить проблему сертификации открытых ключей. Она заключается в том, что перед тем как использовать открытый ключ некоторого абонента для отправки ему конфиденциального сообщения, отправитель должен быть уверен, что открытый ключ действительно принадлежит этому абоненту. Открытые ключи необходимо очень тщательно обезопасить, в том смысле, что если сервер, на котором они хранятся, не обеспечивает их целостность и аутентичность, то злоумышленник имеет возможность, подменив открытый ключ одного из абонентов, выступать от его имени. Поэтому для защиты открытых ключей создаются специальные центры сертификации, которые играют роль доверенной третьей стороны и заверяют открытые ключи каждого из абонентов своими цифровыми подписями.
Сертификат представляет собой набор данных, заверенный цифровой подписью центра, включающий открытый ключ и список дополнительных атрибутов, принадлежащих абоненту. К таким атрибутам относятся: имена пользователя и центра сертификации, номер сертификата, время действия сертификата, предназначение открытого ключа (цифровая подпись, шифрование) и т. д.
Международный стандарт ISO X.509 определяет общую структуру сертификатов открытых ключей и протоколы их использования для аутентификации в распределенных системах.
Центры сертификации
Центр сертификации предназначен для регистрации абонентов, изготовления сертификатов открытых ключей, хранения изготовленных сертификатов, поддержания в актуальном состоянии справочника действующих сертификатов и выпуска списка досрочно отозванных сертификатов.
Для сетей с большим числом абонентов создается несколько центров сертификации. Центры сертификации объединяются в древовидную структуру, в корне которой находится главный центр сертификации, который выдает сертификаты подчиненным ему отраслевым центрам, тем самым обеспечивая доверие к открытым ключам этих центров. Каждый центр вышестоящего уровня аналогичным образом делегирует право выпуска сертификатов подчиненным ему центрам. В результате доверие сертификату открытого ключа каждого центра основано на заверении его сертификата ключом вышестоящего центра. Сертификаты главного центра подписывает сам главный центр.
Зная иерархию и подчиненность друг другу центров сертификации, можно всегда точно установить, является ли абонент владельцем данного открытого ключа.
Основная трудность при создании центров сертификации заключается в их юридическом статусе и потенциальных финансовых возможностях по выплате компенсаций за ущерб, понесенный в результате невыполнения подписанных цифровыми подписями с использованием сертификатов, выданных и им центром, договоров и контрактов, сорванных по причине отказов от цифровых подписей или их подделки.
1.4. Формальные модели шифров
Для того чтобы иметь возможность доказывать в криптографии точные результаты, нужны математические модели основных исследуемых объектов, к которым относятся в первую очередь шифр и открытый текст. Введем сначала алгебраическую модель шифра (шифрсистемы), предложенную К.Шенноном. С моделями открытых текстов мы познакомимся ниже.
Как мы уже знаем, криптография защищает информацию с помощью шифрования – процедуры, использующей некое обратимое преобразование. При этом преобразование открытого текста в шифрованный называется зашифрованием, а обратный процесс – расшифрованием. Шифрование предполагает наличие множества обратимых преобразований. Выбор преобразования из указанного множества для зашифрования данного сообщения осуществляется с помощью ключа. Имеется однозначное соответствие между множеством ключей и множеством преобразований.
Выбор ключа естественным образом определяет функцию (вообще говоря, многозначную), отображающую множество возможных открытых текстов в множество возможных шифрованных текстов. Способ вычисления значения этой функции для произвольного аргумента будем называть правилом зашифрования. Выбранный ключ будем называть ключом зашифрования. Требование однозначности расшифрования определяет обратную функцию, отображающую множество возможных (при выбранном ключе) шифрованных текстов в множество возможных открытых текстов. Способ вычисления значения этой функции для произвольного аргумента будем называть правилом расшифрования. Ключ, определяющий выбор правила расшифрования, будем называть ключом расшифрования.
Формализуем сказанное.
Пусть X,K,Y – конечные множества возможных открытых текстов, ключей и шифрованных текстов соответственно; Еk: Х > Y – правило зашифрования на ключе k ( К. Множество {Еk : k ( К} обозначим через Е, а множество {Еk(х): х(X} – через Еk(X). Пусть Dk :Еk (X) > Х – правило расшифрования на ключе k ( К, и D – множество {Dk : k ( K}.
Здесь и далее мы будем предполагать, что если k ( К представляется в виде k=(kkз, kkр), где kз – ключ зашифрования, a kр – ключ расшифрования (причем kз(kр), то Еk понимается как функция Еkз , a Dk – как функция Dkр.
Определение 1. Шифром (шифрсистемой) назовем совокупность
(А=(X,K,Y,E,D)
введенных множеств, для которых выполняются следующие свойства:
для любых х ( Х и k ( К выполняется равенство
Dk (Еk (х)) = х;
2)Y= ( Еk (X).
k(K
Неформально, шифр – это совокупность множеств возможных открытых текстов (то, что шифруется), возможных ключей (то, с помощью чего шифруется), возможных шифр-текстов (то, во что шифруется), правил зашифрования и правил расшифрования.
Отметим, что условие 1) отвечает требованию однозначности расшифрования. Условие 2) означает, что любой элемент у ( Y может быть представлен в виде Еk(х) для подходящих элементов х ( Х и k ( К . Отметим также, что в общем случае утверждение "для любых k ( К и у ( Еk(X) выполняется равенство Ek(Dk(y)) = у" является неверным.
Легко проверить, что из условия 1) следует свойство инъективности функции Еk. Другими словами, если х1, х2 ( Х , причем х1 ( х2, то при любом k ( К выполняется неравенство Еk (х1) (Еk (х2).
По сути дела определение 1 вводит математическую модель, отражающую основные свойства реальных шифров. В силу этого мы будем отождествлять реальный шифр с его моделью (А, которую будем назвать алгебраической моделью шифра. Для подавляющего большинства известных шифров несложно составить такую модель, как это будет видно из дальнейшего.
Введем теперь вероятностную модель шифра. Следуя К. Шеннону, определим априорные распределения вероятностей Р(Х), Р(К) на множествах Х и К соответственно. Тем самым для любого х ( Х определена вероятность рХ(х) ( Р(Х) и для любого k ( К – вероятность рК(k) ( Р(К), причем выполняются равенства
и
В тех случаях, когда нам требуется знание распределений Р(Х) и Р(К), мы будем пользоваться вероятностной моделью (В, состоящей из пяти множеств, связанных условиями 1) и 2) определения 1, и двух вероятностных распределений:
(В = (X, К, Y, Е, D, Р(Х), Р(К)).
Забегая вперед, отметим, что вероятностные характеристики шифров используются лишь в криптоанализе – разделе криптографии, посвященном решению задач вскрытия (или взлома) шифров.
В большинстве случаев множества Х и Y представляют собой объединения декартовых степеней некоторых множеств А и В соответственно, так что для некоторых натуральных L и L1,

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

Определение 2. Пусть K ( S(A), где S(A) – симметрическая
группа подстановок множества А. Для любого ключа k(K, открытого текста х=(х1,...,хm) и шифрованного текста у =(у1,..., уm) правила зашифрования и расшифрования шифра простой замены в алфавите А определяются формулами:
Еk(х)= (k(х1),...,k(хm)),
Dk(y)= (k -1(у1),..., k -1(уm)),
где k -1 – подстановка, обратная к k.
В более общей ситуации для шифра простой замены


причем |А|=|В|, а К представляет собой множество биекций множества А на множество В. Правила зашифрования и расшифрования определяются для
k ( К, х ( X, у ( Y (и обратной к k биекции k -1) формулами (1).
Определим еще один шифр, называемый шифром перестановки.
Определение 3. Пусть Х = Y = АL и пусть К ( SL, где SL – симметрическая группа подстановок множества {l,2,...,L}. Для любого ключа k, открытого текста х=(х1,...,хL) и шифрованного текста у=(у1,...,уL) правила зашифрования и расшифрования шифра перестановки определяются формулами:
Еk(х)= (хk(1)),...,хk(L))),
Dk(y)= (уk-1(1)),...,уk-1(L))),
где k -1 – подстановка, обратная к k.
Шифры, введенные определениями 2 и 3, являются представителями двух наиболее важных классов симметричных шифров, а именно шифров замены и шифров перестановки, которые будут подробно рассматриваться ниже. Другими симметричными шифрами являются композиции (или последовательные применения) некоторых шифров замены и шифров перестановки.
Приведем пример асимметричного шифра. В следующем определении шифра RSA мы будем пользоваться общепринятыми в алгебре терминологией и обозначениями.
Определение 4. Пусть п = pq, где р и q – простые числа. Пусть Х = Y = Zn – кольцо вычетов по модулю п. Положим
К= {(п,р, q, а, b): а,b ( Zn , п =pq, ab ( 1(mod((n))},
где ( – функция Эйлера. Представим ключ k ( К в виде k=(kз,kр), где kз=(n,b) и kр=(n,p,q,a) – ключи зашифрования и расшифрования соответственно. Правила зашифрования и расшифрования шифра RSA определим для
х ( Х и у ( Y формулами:
Еkз(х) = хb mod п, Dkр (у) = уа mod п. (2)
Аббревиатура RSA определяется начальными буквами фамилий создателей этого шифра – Rivest, Shamir, Adleman. Корректность формул (2) следует из малой теоремы Ферма.
Введенные определения и термины не исчерпывают полный перечень необходимых нам понятий, которые будут вводиться далее по необходимости.
1.5. Модели открытых текстов
Введенная нами математическая модель шифра (В содержит вероятностные распределения Р(Х) и Р(К) на множествах открытых текстов и ключей соответственно. Если Р(К) определяется свойствами устройств, служащих для генерации ключей (которые могут быть случайными или псевдослучайными), то Р(Х) определяется частотными характеристиками самих текстов, подлежащих шифрованию. Характер таких текстов может быть различный: это могут быть обычные литературные тексты, формализованные данные межмашинного обмена и т. д. Так или иначе, открытые тексты обладают многими закономерностями, некоторые из которых наследуются шифрованными текстами. Именно это является определяющим фактором, влияющим на надежность шифрования.
Математические модели открытого текста
Потребность в математических моделях открытого текста продиктована, прежде всего, следующими соображениями. Во-первых, даже при отсутствии ограничений на временные и материальные затраты по выявлению закономерностей, имеющих место в открытых текстах, нельзя гарантировать того, что такие свойства указаны с достаточной полнотой. Например, хорошо известно, что частотные свойства текстов в значительной степени зависят от их характера. Поэтому при математических исследованиях свойств шифров прибегают к упрощающему моделированию, в частности, реальный открытый текст заменяется его моделью, отражающей наиболее важные его свойства. Во-вторых, при автоматизации методов криптоанализа, связанных с перебором ключей, требуется "научить" ЭВМ отличать открытый текст от случайной последовательности знаков. Ясно, что соответствующий критерий может выявить лишь адекватность последовательности знаков некоторой модели открытого текста.
Один из естественных подходов к моделированию открытых текстов связан с учетом их частотных характеристик, приближения для которых можно вычислить с нужной точностью, исследуя тексты достаточной длины. Основанием для такого подхода является устойчивость частот k-грамм или целых словоформ реальных языков человеческого общения(то есть отдельных букв, слогов, слов и некоторых словосочетаний). Основанием для построения модели может служить также и теоретико-информационный подход, развитый в работах К. Шеннона.
Учет частот k-грамм приводит к следующей модели открытого текста. Пусть Р(k)(А) представляет собой массив, состоящий из приближений для вероятностей p(b1b2...bk) появления k-грамм b1b2...bk в открытом тексте, k(N, А= {a1,..., an} – алфавит открытого текста, bi ( A, i =1,,k.
Тогда источник "открытого текста" генерирует последовательность c1,c2,...,ck,ck+1,... знаков алфавита А, в которой k -грамма c1c2...,ck появляется с вероятностью р(c1c2...ck) ( Р(k)(А), следующая k -грамма c2c3...ck+1 появляется с вероятностью р(c2c3...ck+1) ( Р(k)(А) и т. д. Назовем построенную модель открытого текста вероятностной моделью k -го приближения.
Таким образом, простейшая модель открытого текста – вероятностная модель первого приближения – представляет собой последовательность знаков c1,c2,... , в которой каждый знак ci, i = 1,2,..., появляется с вероятностью р(ci) ( Р(1)(А), независимо от других знаков. Будем называть также эту модель позначной моделью открытого текста. В такой модели открытый текст c1c2...ck имеет вероятность


В вероятностной модели второго приближения первый знак с1 имеет вероятность р(с1) ( P(1)(А), а каждый следующий знак сi зависит от предыдущего и появляется с вероятностью


где р(ci-1ci) ( Р(2)(А), р(ci-1) ( Р(1)(А), i=2,3,.... Другими словами, модель открытого текста второго приближения представляет собой простую однородную цепь Маркова. В такой модели открытый текст c1c2...ck имеет вероятность

Модели открытого текста более высоких приближений учитывают зависимость каждого знака от большего числа предыдущих знаков. Ясно, что, чем выше степень приближения, тем более "читаемыми" являются соответствующие модели. Проводились эксперименты по моделированию открытых текстов с помощью ЭВМ.
Приведем примеры "открытых текстов", выработанных компьютером на основе частотных характеристик (алфавита со знаком пробела) собрания сочинений Р. Желязны объемом 10652970 байтов:
1. (Позначная модель) олисъ проситете пригнуть стречи разве возникл;
2. (Второе приближение) н умере данного отствии официант простояло его то;
3. (Третье приближение) уэт быть как ты хоть а что я спящихся фигурой куда п;
4. (Четвертое приближение) ество что ты и мы сдохнуть пересовались ярким сторож;
5. (Пятое приближение) луну него словно него словно из ты в его не полагаете помощи я д;
6. (Шестое приближение) о разведения которые звенел в тонкостью огнем только.
Как видим, тексты вполне "читаемы".
Отметим, что с более общих позиций открытый текст может рассматриваться как реализация стационарного эргодического случайного процесса с дискретным временем и конечным числом состояний.
Критерии распознавания открытого текста
Заменив реальный открытый текст его моделью, мы можем теперь построить критерий распознавания открытого текста. При этом можно воспользоваться либо стандартными методами различения статистических гипотез, либо наличием в открытых текстах некоторых запретов, таких, например, как биграмма ЪЪ в русском тексте. Проиллюстрируем первый подход при распознавании позначной модели открытого текста.
Итак, согласно нашей договоренности, открытый текст представляет собой реализацию независимых испытаний случайной величины, значениями которой являются буквы алфавита А={а1,...,аn}, появляющиеся в соответствии с распределением вероятностей Р(А) = (р(а1),...,р(аn)). Требуется определить, является ли случайная последовательность c1,c2,...,ck букв алфавита А открытым текстом или нет.
Пусть Н0 – гипотеза, состоящая в том, что данная последовательность – открытый текст, Н1 – альтернативная гипотеза. В простейшем случае последовательность c1,c2,...,ck можно рассматривать при гипотезе Н1 как случайную и равновероятную. Эта альтернатива отвечает субъективному представлению о том, что при расшифровании криптограммы с помощью ложного ключа получается "бессмысленная" последовательность знаков. В более общем случае можно считать, что при гипотезе Н1 последовательность c1,c2,...,ck представляет собой реализацию независимых испытаний некоторой случайной величины, значениями которой являются буквы алфавита А={а1,...,аn}, появляющиеся в соответствии с распределением вероятностей Q(A)=(q(а1),...,q(аn)). При таких договоренностях можно применить, например, наиболее мощный критерий различения двух простых гипотез, который дает лемма Неймана-Пирсона.
В силу своего вероятностного характера такой критерий может совершать ошибки двух родов. Критерий может принять открытый текст за случайный набор знаков. Такая ошибка обычно называется ошибкой первого рода, ее вероятность равна (= р{Н1 /Н0}. Аналогично вводится ошибка второго рода и ее вероятность (=р{h0/h1}. Эти ошибки определяют качество работы критерия. В криптографических исследованиях естественно минимизировать вероятность ошибки первого рода, чтобы не "пропустить" открытый текст. Лемма Неймана-Пирсона при заданной вероятности первого рода минимизирует также вероятность ошибки второго рода.
Критерии на открытый текст, использующие запретные сочетания знаков, например, k-граммы подряд идущих букв, будем называть критериями запретных k-грамм. Они устроены чрезвычайно просто. Отбирается некоторое число s редких k-грамм, которые объявляются запретными. Теперь, просматривая последовательно k-грамму за k-граммой анализируемой последовательности c1,c2,...,ck, мы объявляем ее случайной, как только в ней встретится одна из запретных k-грамм, и открытым текстом в противном случае. Такие критерии также могут совершать ошибки в принятии решения. В простейших случаях их можно рассчитать. Несмотря на свою простоту, критерии запретных k-грамм являются весьма эффективными.
Контрольные вопросы
–Чем отличаются подходы к обеспечению безопасности информации в криптографии и в методах сокрытия информации?
–Какими методами обеспечивается конфиденциальность информации?
–Что такое целостность информации?
–Для каких аспектов информационного взаимодействия необходима аутентификация?
–Какие средства используются для обеспечения невозможности отказа от авторства?
–В чем суть предварительного распределения ключей?
–В чем разница между обычным и открытым распределениями ключей?
–Для чего нужны схемы разделения секрета?
–Что такое сертификат открытого ключа?
–Каковы функции центра сертификации ключей?
–Чем отличаются алгебраическая и вероятностная модели шифра?
–С какими целями в криптографии вводят модели открытых текстов?
–Как подсчитать вероятность данного открытого текста в модели первого приближения?
–Какие подходы используются для распознавания открытых текстов?
–Какая идея воплощена в расположении клавиш на клавиатуре пишущей машинке, компьютера, логотипа?

Тема 2. Простейшие и исторические шифры и их анализ

Понятие "Безопасность" охватывает широкий круг интересов как отдельных лиц, так и целых государств. В наше мобильное время видное место отводится проблеме информированной безопасности, обеспечению защиты конфиденциальной информации от ознакомления с ней конкурирующих групп. Недаром великий психолог Вильям Шекспир в "Короле Лире" изрек: "Чтоб мысль врага узнать, сердца вскрывают, а не то, что письма".
О важности сохранения информации в тайне знали уже в древние времена, когда с появлением письменности появилась и опасность прочтения ее нежелательными лицами.
Существовали три основных способа защиты информации. Один из них предполагал защиту ее чисто силовыми методами: охрана документа - носителя информации - физическими лицами, передача его специальным курьером и т.д. Второй способ получил название "стеганография" латино-греческое сочетание слов, означающих в совокупности "тайнопись". Он заключался в сокрытии самого факта наличия информации. В данном случае использовались так называемые симпатические чернила. При соответствующем "проявлении" бумаги текст становится видимым. Один из примеров сокрытия информации приведен в трудах древнегреческого историка Геродота. На голове раба, которая брилась наголо, записывалось нужное сообщение. И когда волосы его достаточно отрастали, раба отправляли к адресату, который снова брил его голову и считывал полученное сообщение.
Третий способ защиты информации заключался в преобразовании смыслового текста в некий набор хаотических знаков (или букв алфавита). Получатель данного донесения имел возможность преобразовать его в то же самое осмысленное сообщение, если обладал ключом к его построению. Этот способ защиты информации называется криптографическим. Криптография – слово греческое и в переводе означает "тайнопись". Термин ввел Д. Валлис. Основные понятия криптографии – шифр (от арабского "цифра"; арабы первыми стали заменять буквы на цифры с целью защиты исходного текста). Секретный элемент шифра, недоступный посторонним, называется ключом шифра. Как правило, в древние времена использовались так называемые шифры замены и шифры перестановки.
По утверждению ряда специалистов криптография по возрасту – ровесник египетских пирамид. В документах древних цивилизаций – Индии, Египта, Месопотамии – есть сведения о системах и способах составления шифрованных писем.
В древнеиндийских рукописях описаны 64 способа письма. Один из самых старых шифрованных текстов из Месопотамии представляет собой табличку, написанную клинописью и содержащую рецепт для изготовления глазури для гончарных изделий. Для написания его были использованы редко употребляемые клинописные знаки, игнорировались некоторые гласные и согласные и употреблялись числа вместо имен.
Шифрованные тексты Древнего Египта – это чаще всего религиозные тексты и медицинские рецепты.
Совершенно отсутствуют сведения об использовании шифров в Древнем Китае, что объясняется, по-видимому, сложностью употреблявшегося иероглифического письма.
Наиболее полные и достоверные сведения о шифрах относятся к Древней Греции.
Так, еще в V-IV вв. до н. э. греки применяли специальное шифрующее устройство. По описанию Плутарха, оно состояло из двух палок одинаковой длины и толщины. Одну оставляли себе, а другую отдавали отъезжающему. Эти палки называли скиталами. Когда правителям нужно было сообщить какую-нибудь важную тайну, они вырезали длинную и узкую, вроде ремня, полосу папируса, наматывали ее на свою скиталу, не оставляя на ней никакого промежутка, так чтобы вся поверхность палки была охвачена этой полосой. Затем, оставляя папирус на скитале в том виде, как он есть, писали на нем все, что нужно, а написав, снимали полосу и без палки отправляли адресату. Так как буквы на ней разбросаны в беспорядке, то прочитать написанное он мог, только взяв свою скиталу и намотав на нее без пропусков эту полосу.
Аристотелю принадлежит способ дешифрования этого шифра. Надо изготовить длинный конус и, начиная с основания, обертывать его лентой с шифрованным сообщением, постепенно сдвигая ее к вершине. В какой-то момент начнут просматриваться куски сообщения. Так можно определить диаметр скиталы.
В Древней Греции (П в. до н. э.) был известен шифр, называемый "квадрат Полибия". Это устройство представляло собой квадрат 5х5, столбцы и строки которого нумеровали цифрами от 1 до 5(или буквами от А до Е). В каждую клетку этого квадрата записывалась одна буква. (В греческом варианте одна клетка оставалась пустой, в латинском - в одну клетку помещали две буквы i и j). В результате каждой букве отвечала пара чисел(букв), и шифрованное сообщение превращалось в последовательность пар чисел(букв). Например,
А

В

С

D

Е


F

G

Н

I,J

К


L

М

N

O
Р


Q

R

S

Т

U


V

W

Х

Y

Z


13 34 22 24 44 34 15 42 22 34 43 45 32
Это сообщение записано при использовании латинского варианта "квадрата Полибия", в котором буквы расположены в алфавитном порядке.
В 1 в. до н.э. Ю. Цезарь во время войны с галлами, переписываясь со своими друзьями в Риме, что описано историком Древнего Рима Светонием, заменял в сообщении первую букву латинского алфавита (А) на четвертую (D), вторую (В) – на пятую (Е), наконец, последнюю – на третью.
Сообщение об одержанной им победе выглядело так: YHQL YLGL YLFL
Император Август (I в. н. э.) в своей переписке заменял первую букву на вторую, вторую – на третью и т. д., наконец, последнюю – на первую:
Его любимое изречение было: "GFTUJOB М F О U F"
Были и другие способы защиты информации, разработанные в античные времена. Древнегреческий полководец Эней Тактика в IV веке до н.э. предложил устройство, названное впоследствии "диском Энея". Принцип его был прост. На диске диаметром 10-15 см и толщиной 1-2 см высверливались отверстия по числу букв алфавита. В центре диска помещалась "катушка" с намотанной на ней ниткой достаточной длины. При зашифровании нитка "вытягивалась" с катушки и последовательно протягивалась через отверстия, в соответствии с буквами шифруемого текста. Диск и являлся посланием. Получатель послания последовательно вытягивал нитку из отверстий, что позволяло ему получать передаваемое сообщение, но в обратном порядке следования букв. При перехвате диска недоброжелатель имел возможность прочитать сообщение тем же образом, что и получатель. Но Эней предусмотрел возможность легкого уничтожения передаваемого сообщения при угрозе захвата диска. Для этого было достаточно выдернуть "катушку" с закрепленным на ней концом нити до полного выхода всей нити из всех отверстий диска.
Идея Энея была использована в создании и других оригинальных шифров замены. Скажем, в одном из вариантов вместо диска использовалась линейка с числом отверстий, равных количеству букв алфавита. Каждое отверстие обозначалось своей буквой; буквы по отверстиям располагались в произвольном порядке. К линейке была прикреплена катушка с намотанной на нее ниткой. Рядом с катушкой имелась прорезь. При шифровании нить протягивалась через прорезь, а затем через отверстие, соответствующее первой букве шифруемого текста, при этом на нити завязывался узелок в месте прохождения ее через отверстие; затем нить возвращалась в прорезь и аналогично зашифровывалась вторая буква текста и т.д. После окончания шифрования нить извлекалась и передавалась получателю сообщения. Тот, имея идентичную линейку, протягивал нить через прорезь до отверстий, определяемых узлами, и восстанавливал исходный текст по буквам отверстий.
Это устройство получило название "линейка Энея". Шифр, реализуемый линейкой Энея, является одним из примеров шифра замены: когда буквы заменяются на расстояния между узелками с учетом прохождения через прорезь. Ключом шифра являлся порядок расположения букв по отверстиям в линейке. Посторонний, получивший нить (даже имея линейку, но без нанесенных на ней букв), не сможет прочитать передаваемое сообщение.
Аналогичное "линейке Энея" "узелковое письмо" получило распространение у индейцев Центральной Америки. Свои сообщения они также передавали в виде нитки, на которой завязывались разноцветные узелки, определявшие содержание сообщения.
Заметным вкладом Энея в криптографию является предложенный им, так называемый книжный шифр, описанный в сочинении "Об обороне укрепленных мест". Эней предложил прокалывать малозаметные дырки в книге или в другом документе над буквами (или под ними) секретного сообщения. Интересно отметить, что в первой мировой войне германские шпионы использовали аналогичный шифр, заменив дырки на точки, наносимые симпатическими чернилами на буквы газетного текста. Книжный шифр в современном его виде имеет несколько иной вид. Суть этого шифра состоит в замене букв на номер строки и номер этой буквы в строке и заранее оговоренной странице некоторой книги. Ключом такого шифра является книга и используемая страница в ней. Этот шифр оказался "долгожителем" и применялся даже во времена второй мировой войны.
Квадрат Полибия, шифр Цезаря, линейка Энея входят в класс шифров, называемых "подстановка" или "простая замена". Это такой шифр, в котором каждой букве алфавита соответствует буква, цифра, символ или какая-нибудь их комбинация.
В известных рассказах "Пляшущие человечки" Конан Дойля и "Золотой жук" Эдгара По используемые шифры относятся к указанному классу шифров. В другом классе шифров – "перестановка" – буквы сообщения каким-нибудь способом переставляются между собой. К этому классу принадлежит шифр скитала.
К классу "перестановка" относится шифр "маршрутная транспозиция" и его вариант "постолбцовая транспозиция". В каждом из них в данный прямоугольник [п(т] сообщение вписывается заранее обусловленным способом, а столбцы нумеруются или обычным порядком следования, или в порядке следования букв ключа – буквенного ключевого слова. Так, ниже в первом прямоугольнике столбцы нумеруются в обычном порядке следования – слева направо, а во втором – в порядке следования букв слова "Петербург".
Используя расположение букв этого ключа в алфавите, получим набор чисел [538461972]:
1

2

3

4

5

6

7

8

9


5

3
8
4
6
1
9
7
2


П

Р

И

Л

Е

П

Л

Я

Я


П

Р

И

Л

Е

П

Л

Я

Я


Р

Д

У

М

Е

Р

П

Я

С


С
Я
П
Р
Е
М
У
Д
Р

У

М

П

Р

Е

М

У

Д

Р


У

М

П

Р

Е

М

У

Д

Р


В

Б

А

Ь

Ш

Е

Д

У

Б


Б
У
Д
Е
Ш
Ь
А
Б
В

В первом случае шифрованный текст найдем, если будем выписывать буквы очередного столбца в порядке следования столбцов (прямом или обратном), во втором, если будем выписывать буквы столбца в порядке следования букв ключа. Таким образом, будем иметь:
1) прувр дмбиу палмр ьеееш прмел пудяя дуясрб;
2) пммья ррвря мулрр епсуб ееешя ддбип пдлууа;
(Из послания Даниила Заточенаго к великому князю Ярославу Всеволодичю)
К классу "перестановка" принадлежит и шифр, называемый "решетка Кардана". Это прямоугольная карточка с отверстиями, чаще всего квадратная, которая при наложении на лист бумаги оставляет открытыми лишь некоторые его части. Число строк и столбцов в карточке четно. Карточка сделана так, что при ее последовательном использовании (поворачивании) каждая клетка лежащего под ней листа окажется занятой. Карточку сначала поворачивают вдоль вертикальной оси симметрии на 180°, а затем вдоль горизонтальной оси также на 180°. И вновь повторяют ту же процедуру:

Если решетка Кардано - квадрат, то возможен второй вариант самосовмещений фигуры, а именно, последовательные повороты вокруг центра квадрата на 90°:

Рассмотрим примеры:

13 EMBED Word.Picture.8 1415
Легко прочесть зашифрованное квадратной решеткой Кардано сообщение:
"вавочс муноти мыжрое ьухсой мдосто яаснтв"
Второе сообщение:
"ачшдеалб еымтяовн лыриелбм оянгеаюш дтинрент еоеыпрни"
также нетрудно расшифровать, пользуясь прямоугольной решеткой.
Перестановки используются также в методе, основанном на применении маршрутов Гамильтона. Этот метод реализуется путем выполнения следующих шагов.
Шаг 1. Исходная информация разбивается на блоки. Если длина шифруемой информации не кратна длине блока, то на свободные места последнего блока помещаются специальные служебные символы-заполнители (например, *).
Шаг 2. Символами блока заполняется таблица, в которой для каждого порядкового номера символа в блоке отводится вполне определенное место (рис. 1).
Шаг 3. Считывание символов из таблицы осуществляется по одному из маршрутов. Увеличение числа маршрутов повышает криптостойкость шифра. Маршруты выбираются либо последовательно, либо их очередность задается ключом К.
Шаг 4. Зашифрованная последовательность символов разбивается на блоки фиксированной длины L. Величина L может отличаться от длины блоков, на которые разбивается исходная информация на шаге 1.

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

Маршрут № 2
Таблица
Маршрут № 1
Рис.1. Вариант 8-элементной таблицы и маршрутов Гамильтона

Из таблицы символы считываются в порядке следования номеров элементов. Ниже приводится пример шифрования информации с использованием маршрутов Гамильтона. Пусть требуется зашифровать исходный текст То = <МЕТОДЫ_ПЕРЕСТАНОВКИ>. Ключ и длина зашифрованных блоков соответственно равны: К=<2,1,1>, L=4. Для заданных условий маршруты с заполненными матрицами имеют вид, показанный на рис. 2.




Маршрут № 2

Маршрут № 1
Маршрут № 1

Рис. 2. Пример шифрования с помощью маршрутов Гамильтона
Шаг 1. Исходный текст разбивается на три блока:
<МЕТОДЫ_П>;
<ЕРЕСТАНО>;
<ВКИ*****>.
Шаг 2. Заполняются три матрицы с маршрутами 2,1,1 (рис.2).
Шаг 3. Получение шифртекста путем расстановки символов в соответствии с маршрутами.
Т= <ОП_ТМЕЫДЕСРЕТАОНИ*КВ****>.
Шаг 4. Разбиение на блоки шифртекста
Т=<ОП_Т МЕЫД ЕСРЕ ТАОН И*КВ ****>.
Крах Священной Римской империи породил средневековье. Этот период в жизни человечества характеризуется и упадком интеллектуальной деятельности. Во времена, когда сама грамотность была доступна очень узкому кругу людей, необходимость в криптографической защите информации стояла не столь остро. Так, король франков и Священной Римской империи Карл Великий научился читать и писать в возрасте 50 лет, а "завоеватель Вселенной" Чингис-хан остался безграмотным на всю жизнь. Тем не менее, Карл Великий уже знал и использовал некоторые шифры замены. Просвещение и грамотность в эти времена сосредоточились в церкви, и тайнопись стала ее монополией. Церковь постановила, что простым прихожанам нельзя скрывать тайны от "господа"; их тайнопись - это "ересь". За использование тайнописи предусматривались жесткие меры наказания, вплоть до смертной казни.
Тем не менее, криптография не умерла. Серьезный вклад в ее развитие внесли арабы. Некоторые историки считают, что криптография как наука зародилась именно в арабском мире. Именно в арабских книгах впервые были описаны методы криптоанализа (дешифрования). Термин "шифр" арабского происхождения. В начале XV в. арабы опубликовали энциклопедию "Шауба Алъ-Аща", в которой есть специальный раздел о шифрах. В этой энциклопедии указан способ раскрытия шифра простой замены. Он основан на различной частоте повторяемости букв в тексте. В этом разделе есть перечень букв в порядке их повторяемости на основе изучения текста Корана. Заметим, что в русском тексте чаще всего встречается буква "О", затем буква "Е" и на третьем месте стоят буквы "И" и "А". Более точно: на 1000 букв русского текста в среднем приходится 90 букв "О", 72 буквы "Е" или "Ё" и по 60 букв "И" и "А" и т.д.
Неудобство шифров типа "подстановка" ("простая замена") в случае использования стандартного алфавита, очевидно. Таблица частот встречаемости букв алфавита позволяет определить один или несколько символов, а этого иногда достаточно для дешифрования всего сообщения ("Пляшущие человечки" Конан Дойля или "Золотой жук" Эдгара По). Поэтому обычно пользуются разными приемами, чтобы затруднить дешифрование. Для этой цели используют многобуквенную систему шифрования – систему, в которой одному символу отвечает одна или несколько комбинаций двух и более символов. Другой прием - использование нескольких алфавитов. В этом случае для каждого символа употребляют тот или иной алфавит в зависимости от ключа, который связан каким-нибудь способом с самим символом или с его порядком в передаваемом сообщении.
В процессе шифрования (и дешифрования) используется таблица ("таблица Виженера"), которая устроена следующим образом: в первой строке выписывается весь алфавит, в каждой следующей осуществляется циклический сдвиг на одну букву. Так получается квадратная таблица, число строк которой равно числу столбцов и равно числу букв в алфавите. Ниже представлена таблица Тв, составленная из 31 буквы русского алфавита (без букв Ё и Ъ). Чтобы зашифровать какое-нибудь сообщение, поступают следующим образом. Выбирается слово – лозунг (например, "монастырь") и подписывается с повторением над буквами сообщения.
Чтобы получить шифрованный текст, находят очередной знак лозунга, начиная с первого в вертикальном алфавите, а ему соответствующий знак сообщения в горизонтальном. В данном примере сначала находим столбец, отвечающий букве "м" лозунга, а затем строку, соответствующую букве "р" открытого текста. На пересечении выделенных столбца и строки находим букву "э". Так продолжая дальше, находим шифрованный текст полностью:
м о н а с т ы р ь м о н а с т ы р ь м о н
р а с к и н у л о с ь м о р е ш и р о к о
э о я к щ а п ы й ю й щ о в ч ф ш л ь ш ы
АБВГД

ЪЭЮЯ_


БВГДЕ.
ЭЮЯА

ВГДЕЖ...
ЮЯАБ


.


_АБВГ.

ЫЪЭЮЯ

Таблица Виженера




Тв=
Пример. Требуется с помощью ключа К = <ЗОНД> зашифровать исходный текст Т = <БЕЗОБЛАЧНОЕ_НЕБО>.
БЕЗОБЛАЧНОЕ_НЕБО ЗОНДЗОНДЗОНДЗОНД ИУФТИШНЫФЫТГФУОТ
ИУФТ ИШНЫ ФЫТГ ФУОТ
ЗОНД ЗОНД ЗОНД ЗОНД
БЕЗО БЛАЧ НОЕ_ НЕБО БЕЗОБЛАЧНОЕ НЕБО
Криптостойкость методов полиалфавитной замены значительно выше методов простой замены, так как одни и те же символы исходной последовательности могут заменяться разными символами. Однако стойкость шифра к статистическим методам криптоанализа зависит от длины ключа.
Для повышения криптостойкости может использоваться модифицированная матрица шифрования. Она представляет собой матрицу размерности [11,R], где R – число символов алфавита. В первой строке располагаются символы в алфавитном порядке. Остальные 10 строк нумеруются от 0 до 9. В этих строках символы располагаются случайным образом.
В качестве ключей используются, например, непериодические бесконечные числа (, е и другие. Очередной п-й символ исходного текста заменяется соответствующим символом из строки матрицы шифрования, номер которой совпадает с п-й цифрой бесконечного числа.
Аббат Тритемиус – автор первой печатной книги о тайнописи (1518г.) – предложил несколько шифров и среди них шифр, который можно считать усовершенствованием шифра Цезаря. Этот шифр устроен так. Все буквы алфавита нумеруют по порядку (от 1 до 33 в русском варианте). Затем выбирают какое-нибудь слово, называемое «ключом», например «Вологда», и подписывают под сообщением с повторением, как показано ниже:
о п е р а ц и я н а ч и н а е т с я в в о с к р е с е н ь е
в о л о г д а в о л о г д а в о л о г д а в о л о г д а в о
Чтобы поучить шифрованный текст, складывают номер очередной буквы с номером соответствующей буквы ключа. Если полученная сумма больше 33, то из нее вычитают 33. В результате получают последовательность чисел от 1 до 33. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст. Разбивая этот текст на группы одной длины (например, по 5), получают шифрованное сообщение:
"СЯСАД ЫЙВЭМ ЖМТБЗ ВЮОЁЖ ПФЪЭФ ХЙОЯФ"
Если под ключом шифра понимать однобуквенное слово "В" (в русском варианте), то мы получим шифр Цезаря. В этом случае для того же текста шифрованное сообщение принимает вид
"СТЗУГ ЩЛВРГ ЪЛРГЗ ХФВЕЕ СФНУЗ ФЗРЯЗ"
Появившийся в XVIII в. шифр "по книге" можно рассматривать как дальнейшее усовершенствование шифра Ю. Цезаря. Чтобы воспользоваться этим шифром, два корреспондента договариваются об определенной книге, имеющейся у каждого из них. Например, Гашек Я. Похождения бравого солдата Швейка. М., 1977. В качестве ключа каждый из них может выбрать "слово" той же длины, что и передаваемое сообщение. Этот ключ кодируется парой чисел, а именно номером страницы и номером строки на ней, и передается вместе с шифрованным сообщением. Например, (287,2) определяет "слово", т. е. текст избранной книги: "Внимательно прочитав эту страницу, офицеры ничего не поняли..." Этому ключу отвечает последовательность чисел:
03 15 10 14 01 20 06 13 30 15 16 17 18 16 25 10 20 01 03 31 20 21 19 20 18 01 15 10 24 21...
Зная этот ключ, можно легко расшифровать сообщение:
РОНЮП ЕЧХВШ РХЩЮЩ ХУШРМ ШВЧФА
(Заметим, что в названной книге на указанной странице описывается вариант шифра "по книге".)
Примером нераскрываемого шифра может служить "одноразовый шифровальный блокнот" – шифр, в основе которого лежит та же идея, что и в шифре Цезаря. Назовем расширенным алфавитом совокупность букв алфавита, знаков препинания {.,:;?!()-"} и знака пробела между словами. Число символов расширенного алфавита в русском варианте равно 44. Занумеруем символы расширенного алфавита числами от 0 до 43. Тогда любой передаваемый текст можно рассматривать как последовательность {ап} чисел множества А={0,1,2, ...,43}. Предположим, что имеем случайную последовательность {сп} из чисел множества А той же длины, что и передаваемый текст (ключ). Складывая по модулю 44 число ап передаваемого текста с соответствующим числом сп ключа ап+сп (bп(mod 44), получим последовательность {bп} знаков шифрованного текста. Чтобы получить передаваемый текст, можно воспользоваться тем же ключом:
ап (bп – cп(mod 44).
У двух абонентов, находящихся в секретной переписке, имеются два одинаковых блокнота. В каждом из них на нескольких листах напечатана случайная последовательность чисел множества А. Отправитель свой текст шифрует указанным выше способом при помощи первой страницы блокнота. Зашифровав сообщение, он уничтожает использованную страницу и отправляет его второму абоненту, получатель шифрованного текста расшифровывает его и также уничтожает использованный лист блокнота. Нетрудно видеть, что одноразовый шифр нераскрываем в принципе, так как символ в тексте может быть заменен любым другим символом и этот выбор совершенно случаен. Случайная последовательность чисел множества А может быть получена при помощи "вертушки со стрелкой". Обод вертушки разделен на 44 равные части (дуги). Каждая из них помечена числами от 0 до 43. Запуская вертушку, получим какое-нибудь из чисел множества А. Так продолжая дальше, можем получить случайную последовательность любой длины.
С появлением радио- и телеграфных линий всякую информацию удобно передавать, используя двоичный код, например азбуку Морзе. В современных системах шифрования обычно шифруют сообщения, записанные двоичным кодом. Далее будет рассмотрена система шифрования двоичной последовательности, в которой идея шифра Цезаря получает дальнейшее развитие.
ТАЙНОПИСЬ В РОССИИ
Первое известное применение тайнописи в России относится к ХIП в. Эту систему называли "тарабарской грамотой". В этой системе согласные буквы заменяются по схеме:
Б В Г Д Ж З К Л М Н
Щ Ш Ч Ц Х Ф Т С Р П
(при шифровании буквы, расположенные на одной вертикали, переходят одна в другую), остальные буквы остаются без изменения. Так, известная пословица, записанная этим шифром, выглядит так:
МЫЩАЛ ЧОСОШ ЫЧПИЕК
Образцом алфавита, придуманного во второй половине XVII в. специально для передачи секретных сообщений, может служить тайнопись "уголки" и ключ к ней. Эта тайнопись состоит в замене обычных букв угольниками и четырехугольниками, заимствованными из решетки, составленной из двух параллельных линий, пересеченных двумя такими же линиями под прямым углом. В полученных клетках размещены по четыре и три буквы в порядке следования букв алфавита. В тайнописи буквы заменяются, при этом первая – простым угольником, а следующие - тем же угольником с одной, двумя или тремя точками, смотря по месту буквы в нем.
Ключ к шифру "уголки"






а

б

в

г

д

е

л

ж

з

и

й















к

л

м

н

о

п

р

с

т

у

ф













х

ц

ч

ш

щ

ъ

ы

ь

э

ю

я


Прочитайте сообщение:




















..







..



..

.

.

..

..





















В эпоху Петра I в качестве системы шифрования широко употреблялась «цифирь» или "цифирная азбука". Цифирь – это шифр простой замены, в котором буквам сообщения соответствовали шифрообозначения, представляющие собой буквы, слоги, слова или какие-нибудь другие знаки. При этом использовались и "пустышки" – шифрообозначения, которым не соответствовали никакие знаки открытого текста, т. е. передаваемого сообщения. В госархиве сохранились письма Петра, в которых он передавал цифири различным деятелям для корреспонденции (П.А Толстому, А.Д.Меньшикову,...). В эпоху царствования Елизаветы Петровны обычным делом была перлюстрация переписки иностранных дипломатов. Результаты этой "работы" несколько paз в месяц докладывались царице. Некоторое время "специалисты" по перлюстрации пропускали те места корреспонденции, смысл которых им был непонятен. В 1742 г. канцлер Алексей Петрович Бестужев-Рюмин пригласил на службу в коллегию иностранных дел математика, академика Петербургской АН Христиана Гольдбаха. С этого времени перлюстраторам было дано распоряжение тщательно копировать письма, не опуская при этом кажущихся им мелочей. В результате только за июль-декабрь 1743 г. X. Гольдбах смог дешифровать 61 письмо министров прусского и французского дворов. В итоге переписка иностранных послов в конце XVIII в. перестала быть тайной для дешифровальной службы России. За свою успешную работу Гольдбах был пожалован в тайные советники с ежегодным окладом в 4500 руб.
Шифры подполья
а) Тюремная азбука – аналог квадрата Полибия.
Она позволяла путем перестукивания сообщаться заключенным разных камер. Эта азбука устроена так: в прямоугольник 6х5 вписываются буквы русского алфавита в обычном порядке следования, кроме букв ё, й, ъ. Каждая из основных букв русского алфавита (без букв ё, й, ъ) определяется парой чисел – номером строки и столбца. Поэтому вопрос: "Кто здесь?" изображается следующим образом:
.. .. . . .. . .. .. . . .. .. . .
С применением этого шифра связаны некоторые исторические казусы. Так, декабристы, посаженные в тюрьму после неудавшегося восстания, не смогли установить связь с находившимся в "одиночке" князем Одоевским. Оказалось, что этот князь (хорошо образованный по тем временам) не помнил естественный порядок расположения букв в русском и французском алфавитах (другими языками он не владел). Декабристы для русского алфавита использовали прямоугольник размера 5x6 (5 строк и 6 столбцов) и редуцированный до 30 букв алфавит.
"Тюремный шифр", строго говоря, не шифр, а способ перекодировки сообщения с целью его приведения к виду, удобному для передачи по каналу связи (через стенку). Дело в том, что в таблице использовался естественный порядок расположения букв алфавита. Отметим, что при произвольном расположении букв в квадрате возникает одно затруднение: либо нужно помнить отправителю и получателю сообщения заданный произвольный порядок следования букв в таблице (ключ шифра), что, вообще говоря, затруднительно, либо иметь при себе запись этих букв. Во втором случае появляется опасность ознакомления с ключом посторонних лиц. Поэтому в ряде случаев ключ составляется следующим образом. Берется некоторое "ключевое слово", которое легко запомнить, например, "CRYPTOLOGY", удаляют из него повторы букв (получают "CRYPTOLG") и записывают его в начальных клетках квадрата. В оставшиеся клетки записываются остальные буквы алфавита в естественном порядке. В таком шифре ключом является указанное "ключевое слово" ("пароль"). Заметим, кстати, что таким же образом можно легко запомнить порядок следования букв и в "линейке Энея".
б) Парный шифр, ключом которого является фраза, содержащая 15 разных букв. Подписывая под этими буквами буквы в алфавитном порядке, не вошедшие в этот ключ, получаем разбиение 30 основных букв русского алфавита на пары. Чтобы получить из сообщения шифрованный текст, заменяют каждую букву сообщения своим напарником. Так, выбирая в качестве ключа фразу "железный шпиц дома лежит", получим разбиение основных букв русского алфавита на пары, как указано ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Ж Е Л Е З Н Ы Й Ш П И Ц Д О М А Л Е Ж И Т
Б B Г K P C У Ф X Ч Щ Ь Э Ю Я
Таким образом, получаем отображение букв основного алфавита на последовательность, состоящую из тех же букв:
абвгдежзиклмнопрстуфхцчшщьыэюя
южeлщвбкxзгэpьфныяшпичцудосмат
Поэтому сообщение "Встреча отменяется, явка раскрыта", переходит в следующий шифротекст:
ЕЫЯНВ ЦЮЬЯЭ ВРТВЯ ЫТТЕЗ ЮНЮЫЗ НСЯЮ
Очевидно, что в качестве ключа можно также использовать любую фразу, в которой имеется не менее 15 разных букв основного алфавита.
Пример 1:
И МОСКВА НЕ СРАЗУ СТРОИЛАСЬ
АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЭЮЯ ХИФБВЧСЩБПЮГЦДКШЖЭЫВАНЕРЗЯУТЛЬ
Пример 2:
У КРИВОЙ НАТАЛЬИ ВСЕ ЛЮДИ КАНАЛЬИ
АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЭЮЯ ХУМИЯЫРИЗГЧВФПОЖЩЦБНАТЛЬСШЕЮЭД
ВОПРОС. Пользуясь ключами примеров 1 и 2, получить новые шифротексты сообщения "Встреча отменяется, явка раскрыта".
в) По стихотворению – вариант шифра "по книге". Корреспонденты договариваются о достаточно объемном стихотворном произведении, которое заучивают наизусть. Например, роман "Евгений Онегин" или поэма "Кому на Руси жить хорошо". Каждую букву сообщения шифруют парой чисел – номером строки, где встречается эта буква, и номером буквы в ней. Пусть выбрана поэма "Кому на Руси жить хорошо". Пролог поэмы начинается строфой:
В каком году – рассчитывай,
В какой земле – угадывай,
На столбовой дороженьке
Сошлись семь мужиков:
Семь временнообязанных,
Подтянутой губернии
Уезда Терпигорева,
Пустопорожней волости,
Из смежных деревень:
Заплатова, Дырявина,
Разутова, Знобишина,
Горелова, Неелова –
Неурожайка тож,
Сошлися и заспорили:
Кому живется весело,
Вольготно на Руси?
Пользуясь этим текстом, нетрудно шифровать и расшифровывать любое сообщение, например:
14,5 5,5 7,5 5,10 2,5 2,1 2,12 6,3 8,5 15,7 13,2 7,8 14,7 7,6 5,4 6,6 7,2 12,5 5,4 11,3 10,13 5,15 2,1 15,1 1,16 3,3 5,3 6,14 13,1 4,5 8,4 5,4
Из истории второй мировой войны
В воскресенье, 7 декабря 1941 г., рано утром японская авиация нанесла внезапный удар по военно-морской базе США в Перл-Харборе (Гавайские о-ва) и вывела из строя основные силы американского Тихоокеанского флота. К этому событию японцы готовились с августа 1941 г. Американцы тогда уже умели читать военно-морскую переписку японцев. Незадолго до этого нападения японские агенты на Гавайских островах получили указание сообщать о точном местонахождении и перемещениях военных кораблей США. Американские военачальники и администрация президента сначала не придали этой информации должного значения, и поэтому распоряжение Рузвельта о превентивных мерах поступило на базу тогда, когда военные корабли уже горели.
С конца 1941 г. наши союзники по антигитлеровской коалиции регулярно формировали на английской военно-морской базе в Исландии конвои – специальные соединения из транспортных и военных судов – и направляли их в северные порты СССР. Переход такого каравана судов длился 10-14 суток. Во второй половине 1942 г. в СССР был отправлен конвой PQ-17. Внезапно где-то на полпути конвой был атакован немецкими подлодками и с воздуха. В результате из 36 судов было потоплено 24, на дно было отправлено 3350 грузовиков, 430 танков и 100 000 т разного груза. Предыстория этого события такова. В июле 1942 г. финский центр радиоперехвата принял телеграмму, переданную азбукой Морзе с советской авиабазы вблизи Мурманска и зашифрованную несложным шифром. В ней сообщались все данные о конвое PQ-17, его времени отправления, месте назначения, количестве судов и характере грузов. В финском центре смогли расшифровать эту телеграмму и передать ее немцам. Аналогичная история повторилась и со следующим конвоем.
Криптография и археология
Многие народы, населявшие Землю, бесследно исчезли, о других остались лишь археологические памятники со следами неведомой письменности или упоминания в трудах греческих или римских историков. И лишь иногда удается оживить эти памятники, заставить заговорить их на современных языках. Геродот в своей "Истории" сообщает, что египтяне пишут справа налево и что они употребляют двоякого рода письмо: одно называют священным (иератическим), другое – общенародным (демотическим). Но уже в IV в. египетские иероглифы воспринимаются как рисуночное письмо, в котором отдельные знаки обозначают самостоятельные понятия. Более того, высказываются и мнения, что иероглифы являются орнаментами и простыми украшениями. Только в эпоху Возрождения появился интерес к загадочным иероглифам. Чтобы воскресить египетскую письменность, пришлось потрудиться многим ученым. Упомянем некоторых из них. Первый, кто пытался оживить египетские иероглифы, был иезуит Анастасий Кирхер. Он же показал, что коптский язык – исчезающий язык египетских христиан – был древнеегипетским народным языком. Датский ученый Карстен Нибур, занимаясь в Каире копированием всех доступных ему иероглифических надписей, обнаружил, что число различных иероглифов невелико. Поэтому египетскую письменность нельзя рассматривать как целиком идиографическую, т. е. такую, в которой для каждого слова имеется отдельный знак. В 1799 г. при отступлении наполеоновских войск из Египта совершенно случайно вблизи г. Poзeттa был найден камень, испещренный письменными знаками. Уже с первого взгляда можно было установить, что эта надпись состоит из трех частей: верхняя составлена из иероглифов, самая нижняя - из греческих букв, а к средней сначала и не знали, как подступиться. Розетский камень привлек внимание европейских ученых. И только в 1821 г. Жан Франсуа Шампольон завершил многолетнюю работу над расшифрованием египетской письменности. В результате он мог передавать демотический текст, знак за знаком, иератическим письмом и это последнее – иероглифами, на что до него никто не был способен. Свой вклад в расшифровку египетских иероглифов внесли также английский ученый Томас Юнг, немецкий ученье Лепсиус и многие другие.
Клинопись была забыта даже более основательно, чем египетские иероглифы. Геродот упоминает о персидских буквах, а Страбон – об "ассирийской письменности", но ни они, ни древние евреи, видимо, не знали о клине как основном элементе этой письменности. Только в XIX в. европейским ученым удалось заставить заговорить древнеперсидскую клинопись. Среди них в первую очередь следует назвать Георга Фридриха Гротенфенда.
Поразительным открытием было дешифровка хеттской письменности. Дело в том, что о хеттах молчали все доступные европейцам исторические источники. И только в одной книге – Библии – об этом народе говорится в разных местах. Швейцарский востоковед Людвиг Буркхард во время одного из своих путешествий вблизи сирийского города Хама нашел камень, покрытый знаками, отличными от египетских. Прошло несколько десятилетий, прежде чем стало ясно, что это письменность исчезнувшего народа – хеттов. Но только в 1917 г. чешский ученый Бедржих Грозный опубликовал труд "Язык хеттов, его строй и принадлежность к индогерманской группе языков".
Загадочной до сих пор остается Индская цивилизация (IV-II тысячелетия до н.э.). Она открыта в начале XX в. По-видимому, индская цивилизация была культурой бронзового века. Ее города были застроены 2-3-этажными домами с водопроводом и канализацией, земледелие также достигло определенных успехов: выращивали пшеницу, хлопок и другие культуры; домашнее животноводство было представлено коровами, буйволами, свиньями, овцами... На керамике и металлических предметах сохранились надписи. Но до сих пор неизвестен ни язык этой письменности, ни какие-нибудь связи с народами, ныне населяющими полуостров Индостан.
До сих пор остаются непонятыми письмена древних жителей островов Пасхи.
ОТВЕТЫ К ШИФРОВАННЫМ СООБЩЕНИЯМ
"Cogito, ergo sum" – лат. "Я мыслю, следовательно, существую".(Р.Декарт)
"Veni, vidi, vici" – лат. "Пришел, увидел, победил".(Ю. Цезарь. Донесение Сенату о победе над понтийским царем)
"Festina lente " – лат. "Торопись медленно".
"В чужой монастырь со своим уставом не ходят".
"Да, были люди в наше время – не то, что нынешнее племя – богатыри,.." (М.Ю. Лермонтов)
"Над Россией безоблачное небо ".
"Рыба с головы гниет".
Россия, вперед!
Иванову доверять нельзя явку сменить.
Тема 3. Математические основы криптографии
3.1. Элементы алгебры и теории чисел
3.1.1. Модулярная арифметика. Основные определения.
Пусть а и п – натуральные числа. "Разделить число а на число п с остатком" – это значит найти целые числа а и r, удовлетворяющие условию
а = q п + r, где 0 ( r < п.
При этом число q называют неполным частным, а r – остатком от деления числа а на число п.
Если остаток r равен нулю, то говорят, что число п делит число а, или, по-другому, п является делителем числа а и обозначают п|а.
Наибольшее целое число, делящее одновременно целые числа а и b, называется их наибольшим делителем и обозначается НОД(a, b) или просто (а, b). Если (а, b)=1, то а и b называются взаимно простыми числами.
3.1.2. Алгоритм Евклида нахождения наибольшего общего делителя
Алгоритм Евклида нахождения наибольшего общего делителя двух целых чисел заключается в проведении следующей последовательности операций деления с остатком:
а = q b + r, где 0 ( r b=q1r+ r1, где 0 (r1r =q2r1+ r2, где 0 ( r2r1 =q3r2+ r3, где 0 ( r3
rk =qk+2rk+1+ rk+2, где 0 ( rk+2
rп-1 =qп+1rп.
Корректное завершение алгоритма гарантируется тем, что остатки от делений образуют строго убывающую последовательность натуральных чисел. Из приведенных равенств следует, что
(а, b) = (b, r) = (r, r1) =... = (rn-1, rn) = rn.
Поэтому наибольший делитель чисел а и b совпадает с rn.
НОД двух чисел равен последнему отличному от нуля остатку в алгоритме Евклида.
Как следствие из алгоритма Евклида, можно получить утверждение, что наибольший делитель целых чисел а и b может быть представлен в виде линейной комбинации этих чисел, т. е. существуют целые числа и и v такие, что справедливо равенство
а и + b v = rn.
Пример. Применим алгоритм Евклида к нахождению (175, 77).
(1) 175=772+21,
(2) 77=213+14,
(3) 21 =14 1 + 7,
(4) 14 = 7 2.
Последний положительный остаток – r3 = 7. Значит, (175, 77) = 7.
Из предпоследнего соотношения (3) имеем
21 – 14 1 =7.
Подставляя сюда вместо 14 его представление из (2) получим
21 – (77 – 213) 1 =7 или 214 – 771=7.
Подставляя сюда вместо 21 его представление из (1) получим
(175 – 772)4 – 771=7 или 1754 – 779=7.
Понятие наибольшего общего делители можно ввести и для нескольких чисел а1,а2,...,ап. Его обозначают (а1,а2,...,ап). Наибольший общий делитель нескольких чисел можно вычислить последовательно. Например, (а1,а2,а3)= ((а1,а2),ап), (а1,а2, а3,а4)= ((а1,а2, а3),а4) и т.д.
3.1.3. Взаимно простые числа
Теорема 2.3.1 (критерий взаимной простоты чисел). Два целых а и b будут взаимно простыми тогда и только тогда, когда найдутся целые и и v такие, что аu + bv =1.
Из критерия взаимной простоты вытекают следующие свойства.
Свойство 1. (a,b)=1, (a,c) =1 => (a,bc) =1.
Свойство 2. а| bc, (a,b)=l => a|c.
Свойство 3. a|с, b|с, (a,b) =1=> ab|c.
3.1.4. Наименьшее общее кратное
Если а|М, b|М, то число M(N называют общим кратным целых чисел a,b(Z. Наименьшее общее кратное (НОК) чисел a и b принято обозначать [a,b].
Теорема 1. Если М – общее кратное целых а и b, то [a,b] |М.
Теорема 2. Справедливо соотношение [a,b]=ab/(a,b).
Наименьшее общее кратное нескольких чисел также можно вычислять последовательно.
3.1.5. Простые числа
Натуральное число р > 1 называется простым, если оно не имеет других натуральных делителей, кроме 1 и p. Простым числом будет наименьший, отличный от единицы делитель целого а, а > 1.
Теорема (Евклид). Существует бесконечно много простых чисел.
Отметим еще несколько свойств простых чисел (р – простое).
Свойство 1. (р,а)(1=> р|а.
Свойство 2. p|ab=> р|а либо р|b.
Свойство легко обобщается на случай нескольких чисел а, b, с,...
Теорема 2. Всякое целое, больше единицы, разложимо в произведение простых множителей. Это разложение единственно с точностью до порядка следования множителей. В разложении некоторые множители могут повторяться. Если объединить повторения, то получается каноническое разложение числа а на простые множители:
13 EMBED Equation.3 1415.



3.1.6. Сравнения
Будем рассматривать целые числа в связи с остатками от их деления на натуральное т, называемое модулем. Если два целых а и b имеют одинаковые остатки от деления на т, то они называются сравнимыми по модулю т. Сравнимость чисел а и b записывают в виде
a ( b(mod m).
Отметим следующие легко доказываемые либо очевидные свойства.
Свойство 1. a ( b(mod m) ( m|a–b.
Свойство 2. a ( b(mod m), b ( c(mod m) => a ( c(mod m).
Свойство 3. Сравнения можно почленно складывать.
Пусть а1 ( b1(mod m), а2 ( b2(mod m). Тогда (а1+а2)((b1 +b2)(mod m).
Свойство 4. Сравнения можно почленно перемножать.
Аналогично предыдущему, (а1а2)((b1b2)(mod m).
Свойство 5. К обеим частям сравнения можно прибавить одно и то же число.
Свойство 6. Обе части сравнения можно умножить на одно и то же число.
Свойство 7. Обе части сравнения можно разделить на их общий делитель, если он взаимно прост с модулем.
Свойство 8. Обе части сравнения и модуль можно сокращать на их общий делитель.
Свойство 9. а ( b(mod m1), а ( b(mod m2)=> а ( b(mod [m1, m2]).
Свойство 10. а ( b(mod m), d|b, d|m, =>d|a.
Свойство 11. а ( b(mod m), => (a,m)=(b,m).
3.1.7. Классы вычетов
Числа, сравнимые по модулю т, образуют класс вычетов по модулю т. Все числа из одного класса имеют один и тот же остаток r от деления на т. Любое число а из класса вычетов называется вычетом по модулю т. Соответствующий класс обозначается через
·. Поскольку отношение a(b(modт) является бинарным отношением эквивалентности, то имеем разбиение целых чисел на классы эквивалентности (классы вычетов). Всего имеется т классов вычетов по модулю т: 13 EMBED Equation.3 1415.
Свойство 1. a (b(mod m) <=>
Свойство 2. a ( b(mod m) <=> (.
Взяв из каждого класса по одному вычету, получим полную систему вычетов. Например, наряду с 13 EMBED Equation.3 1415 полной системой вычетов будет 13 EMBED Equation.3 1415
Свойство 3. Любые т чисел, попарно несравнимые по модулю т, образуют полную систему вычетов.
Свойство 4. Если (а, т)=1 и х пробегает полную систему вычетов по модулю т, то ах + b, где b любое целое, также пробегает полную систему вычетов по модулю т.
Согласно свойству 11 сравнений, числа одного класса вычетов имеют с модулем т один и тот же общий делитель. Рассмотрим те классы, для которых этот делитель равен единице. Взяв от каждого такого класса по одному вычету, получим приведенную систему вычетов. Например, приведенная система по модулю 42 будет 1, 5, 11, 13, 17, 19, 23, 25, 29, 31, 37, 41.
Свойство 5. Если (а,т) = 1 и х пробегает приведенную систему вычетов по модулю т, то ах также будет пробегать приведенную систему вычетов по модулю т.
3.1.8. Функция Эйлера
Количество классов вычетов в приведенной системе вычетов обозначают через ((т) и называют функцией Эйлера. Она определена для всех натуральных чисел и представляет собой количество чисел ряда 0,1,, т, взаимно простых с т.
Примеры. ((1) = 1, ((2) = 1, ((3) = 2, ((4) = 2, ((5) = 4, ( (6) = 2.
Очевидны следующие свойства (р простое).
Свойство 1. ((р)=р-1.
Свойство 2. ((рk)= рk – рk-1, k(N.
Лемма 1. (мультипликативность функции Эйлера).
(a,b)=1 => ((ab)= ((a) ((b).
Используя лемму и каноническое разложение числа на простые множители
13 EMBED Equation.3 1415 имеем
13 EMBED Equation.3 1415
Теорема 1 (Ферма), ар-1(l(mod р), если (а,р) =1.
Теорема 2 (Эйлер), а((т)(l(mod т), если (а,т) =1.
3.1.9. Сравнения первой степени
Рассмотрим сравнение
aх (b(mod m) (1)
при условии (а,т) =1. Под решением любого сравнения понимают класс вычетов по модулю т, один элемент которого (а значит, и все) удовлетворяет сравнению. В нашем случае найдутся целые и, v такие, что аи + mv = 1. Следовательно, аи (l(mod т). Будем называть и обратным к а по модулю т. Умножим обе части сравнения 1 на и. Получим
x=bu(mod m). (2)
Следовательно, сравнение имеет единственное решение по модулю т.
Пусть (а,т)=d > 1. По свойству 10 условие d|b является необходимым условием разрешимости сравнения 1. Будем считать его выполненным. Пусть a=a1d, b=b1d, m=m1d. Тогда наше сравнение равносильно а1х = =b1(modm1). Имеем одно решение х ( x1(mod m1). По модулю т имеем d решений:
х1, х1 + т1, х1 + 2m1,...,х1 + (d -1)m1.
Теорема 1. Пусть (а,т) = d. Сравнение ax =b(mod m) разрешимо тогда
и только тогда, когда d|b. В этом случае оно имеет d решений.
При небольшом т сравнение ax (b(mod m) решается подбором. Для этого достаточно найти число и такое, что аи (l(mod m); это можно сделать с помощью алгоритма Евклида. В качестве и можно также взять
u = а((т)-1(способ Эйлера).
3.1.10. Система сравнений первой степени
Система сравнений
a1х ( b1(mod m1);
a2x ( b2(mod m2);
(3.1.10.1)
anx ( bn(mod mn)
сводится к системе
х ( b1(mod m1);
x ( b2(mod m2); (3.1.10.2)

x ( bn(mod mn).

Для решения последней достаточно уметь решать систему
х ( b1(mod m1);
x ( b2(mod m2). (3.1.10.3)
Система (3.1.10.3) в случае ее разрешимости имеет единственное решение по модулю [т1,т2]. Исходная система (3.1.10.1) в случае ее разрешимости имеет единственное решение по модулю [т1,т2, ...,тn].
В случае, когда все модули т1,т2, ...,mn попарно взаимно простые, к системе (3.1.10.2) применим так называемый китайский способ. Определим числа х1,х2, ...,хп из условий т2т3 ...mnx1 (l(mod т1), т1т3 ...mnх2 (1(mod т2), , т1т2 ...mn-1хп(1 (mod тт). Тогда решением системы (3.1.10.2) будет число
х= т2т3 ...mnx1b1 + т1т3 ...mnx2b2 + ...+ т1т2 ...mn-1xпbп.
Теорема (китайская теорема об остатках). Система сравнений (3.1.10.2) при попарно взаимно простых модулях имеет единственное решение по модулю произведения.
3.1.11. Первообразные корни
Говорят, что число а, взаимно простое с модулем т, принадлежит показателю (, если ( такое наименьшее натуральное число, что выполняется сравнение a( (l(mod т). Справедливы следующие свойства.
Свойство 1. Числа a0, a1,, a( -1 попарно несравнимы по модулю т.
Свойство 2. а( ( a( (mod т) <=> ( ( ((mod ().
Свойство 3. ( |((т). Число, принадлежащее показателю ((т), называется первообразным корнем по модулю т.
Свойство 4. По любому простому модулю р существует первообразный корень.
Гауссом доказано существование первообразных корней по модулям рk и 2рk при любом нечетном простом р. Легко убедиться, что при т = 4 первообразный корень также существует. Таким образом, первообразные корни существуют по модулям 2, 4, рk, 2 рk, где р нечетное простое, k(N.
Первообразные корни по всем остальным модулям отсутствуют.
Нахождение первообразных корней упрощает следующее свойство.
Свойство 5. Пусть с = ((т) и q1,q2, ...,qk различные простые делители числа с. Число a, взаимно простое с модулем т, будет первообразным корнем тогда и только тогда, когда не выполнено ни одно из следующих сравнений:
ac/q1 (1(mod m), ac/q2 (l(mod m),..., ac/qk (l(mod m). (3.1.11.1)
Пример. Пусть т = 41. Имеем с =((41) = 40= 235. Итак, первообразный корень не должен удовлетворять двум сравнениям
а8 (1(mod 41), a20 (l(mod 41).
Испытываем числа 2, 3, 4, ...: 28 (10, 220 ( 1, 38 ( 1, 48 ( 18, 420 ( 1, 58 ( 18, 520 ( 1, 68 = 10, 620 = 40. Отсюда видим, что 6 является наименьшим первообразным корнем по модулю 41.
3.1.12. Индексы по модулям рk и 2рk
Обозначим через т модуль вида рk или 2рk, а через g – первообразный корень по этому модулю. Положим с=((т).
Свойство 1. Если число ( принимает последовательно значения 0, 1, ..., с -1, то g( пробегает приведенную систему вычетов по модулю т.
Для чисел а, взаимно простых с т, введем понятие индекса, называемого иногда дискретным логарифмом.
Пусть а ( g((mod т). Число ( (( (0) называется индексом числа а по модулю т при основании g. Используются обозначения ( = indga или ( = ind а. В силу теоремы Эйлера индекс определен по модулю с. Тем самым было бы правильнее говорить о классе вычетов по модулю с.
Свойство 2. ind ab (ind а + ind b (mod с).
Свойство 3. ind an ( n ind а(modc).
Если воспользоваться таблицами индексов, то можно решать показательные и степенные сравнения путем их индексирования (дискретного логарифмирования). В самом деле, степенное сравнение xn ( a(mod т) равносильно сравнению n ind x ( ind a(modc), решение которого при наличии таблиц не составляет труда. Положим d = (п, с).
Свойство 4. Сравнение хn (a(mod т) разрешимо тогда и только тогда, когда d делит ind а. В случае разрешимости имеется d решений.
3.1.13. Символ Лежандра
В п. 3.1.9 мы изучали сравнение ax ( b(modm). Рассмотрим сравнение ax2+bх+ с ( 0 (mod m). Путем выделения квадрата приведем его к виду (2ах + b)2 = b2 – 4ас (mod 4am). Полагая у = 2ax + b, d = b2 – 4ас, имеем сравнение у2(d(mod4am). Фактически исходное сравнение сведено к сравнению вида х2(а(mod m). Рассмотрим случай, когда т – простое.
Пусть р – нечетное простое число, (а,р)=1. Символ Лежандра определяется равенством =1, если сравнение х2 ( a(mod р) разрешимо, и = –1 в противном случае. Говорят также, что в первом случае а является квадратичным вычетом по модулю р и квадратичным невычетом во втором.
Таким образом, = (1.
Пример. Квадратичные вычеты по mod 7 – это 1, 2, 4: невычеты – 3, 5, 6. Если g – первообразный корень по mod p, то каждое целое g2k – квадратичный вычет, а каждое g2k+1 – квадратичный невычет.
Свойство 1. = , где (а,р)=(b,р) =1.
Теорема 1 (критерии Эйлера). Если (а,р)=1, то


Свойство 2. 13 EMBED Equation.3 1415
3.1.14. Квадратичный закон взаимности
Гаусс доказал следующую лемму, упрощающую вычисление символа Лежандра.
Лемма 1. где
Теорема 1 (квадратичный закон взаимности). Для любых нечетных простых р, q выполнено равенство
13 EMBED Equation.3 1415

3.1.15. Символ Якоби
Символ Якоби является обобщением символа Лежандра и служит для упрощения вычисления последнего. Пусть Р – нечетное натуральное число, Р=р1р2(((рs – его разложение на простые множители. Для всякого целого а, (a,Р)=1, символ Якоби определяется по формуле
13 EMBED Equation.3 1415
Отметим следующие свойства.
Свойство 1.
Свойство 2.

Свойство 3.

Свойство 4.
Заметим, что из равенства 13 EMBED Equation.3 1415 нe следует, что а является квадратичным
вычетом по модулю Р. В действительности, а является квадратичным вычетом по модулю Р тогда и только тогда, когда а квадратичный вычет по модулю
каждого простого рi, i= 1, 2, ..., s. В то же время из равенства 13 EMBED Equation.3 1415 следует, что a – квадратичный невычет по mod P.
Теорема 1. Пусть Р и Q – положительные взаимно простые нечетные модули. Тогда

3.1.16. Цепные дроби
Пусть ( – положительное вещественное число. Положим q1 =[(]. Тогда, если ( нецелое, то 13 EMBED Equation.3 1415
где (2 >1. Продолжая этот процесс, получаем

Следовательно
Представление ( в указанном виде называется разложением ( в цепную (непрерывную) дробь. При иррациональном ( цепная дробь, очевидно, оказывается бесконечной. При рациональном ( дробь будет конечной. Покажем это.
Пусть ( =a/b . Применим алгоритм Евклида:
13 EMBED Equation.3 1415
Следовательно, 13 EMBED Equation.3 1415
Теорема 1. Всякое иррациональное ( разлагается в бесконечную цепную дробь. Всякое рациональное ( разлагается в конечную цепную дробь.
3.1.17. Подходящие дроби
Далее будем использовать запись
( =[ q1, q2,, qs, (s+1].
Числа q1, q2,, qs называются неполными частными, а рациональное число (s= [q1, q2,, qs] – s-й подходящей дробью числа ( . Через Рs обозначается числитель, а через Qs – знаменатель подходящей дроби (s.
Например, P1 =q1, Q1 =1. Удобно считать, что Р0 =1, Q0 =0. Имеет место следующий закон образования подходящих дробей.
Теорема 1. Рs =qsPs-1 +Ps-2 , Qs =qsQs-1 +Qs-2
Теорема 2. (s –(s-1 =(–1)s/(QsQs-1). РsQs-1 – QsPs-1 =(–1)s
Следствие 1. Все подходящие дроби несократимы.
Теорема 3. При (s (( подходящие дроби (1,(2,..., (s, с четными номерами являются последовательными приближениями (, с одной стороны, а с нечетными номерами – с другой, т.е.
(1 < ( 3< ...< ( < ...< (4 <(2.
3.1.18. Подходящие дроби в качестве наилучших приближений
Несократимую дробь a/b(b > 0) назовем наилучшим приближением первого рода числа ( ( R, если

В случае, когда выполняется условие


говорят о наилучшем приближении второго рода, которое является и наилучшим приближением первого рода. Обратное утверждение неверно. Легко проверить, что 1/3 является наилучшим приближением лишь первого рода числа 1/5.
Теорема 1. Всякая подходящая дробь (s, s>1 есть наилучшее приближение второго рода.
Теорема 2. |(Qs-1– Ps-1| > |(Qs – Ps |, а значит, |( – Ps-1/Qs-1| > | ( – Ps/Qs|.
Теорема 3. Если P/Q – несократимая дробь, Q > 0, такая, что


то P/Q – подходящая дробь числа ( .
В заключение отметим факт, который потребуется в дальнейшем:
При разложении рационального числа P/Q в цепную дробь длина последней ограничена сверху величиной 2log2Q +1.


Задания
1. Показать, что 30 | т5 – т, 6|т(т2 + 5), 42 | т7 – т, 30 | тп(т4 – n4) при любых натуральных т, п.
2. Показать, что при натуральном т произведение (т + 1)(m + 2) (т + т) делится на 2m.
3. Будут ли целыми числа
4. Пусть (а, b) = 1. Показать, что (a + b, а – b) ( 2.
5. Вычислить НОДы: (549, 387), (589, 343), (12606, 6494), (6188, 4709) и найти их линейные разложения.
6. Доказать, что НОД можно определить как такой общий делитель, который делится на любой другой общий делитель.
7. Пусть (а,b) = 1, ab = с2 . Показать, что числа а и b будут квадратами.
8. Показать, что р2 – q2 кратно 24, где р, q – простые числа, большие 3.
9. Доказать бесконечность множества простых чисел вида 4т + 3.
10. Доказать бесконечность множества простых чисел вида 6m+ 5.
11. Пусть k – натуральное. Доказать, что в натуральном ряду имеется бесконечно много отрезков т, т + 1,..., т + k, не содержащих простых чисел.
12. Найти канонические разложения чисел 82798848, 81057226635.
13. Разложить на простые множители числа 10!, 15!, 20!, 30!.
14. Сколькими нулями оканчиваются числа 50!, 100!?
15. Найти функцию Эйлера для чисел 375, 720, 957, 988, 1200, 4320.
16. Сколько чисел в интервале от 1 до 120 не взаимно простых с 30?
17. Дано ((а) =120, а = рq, где р, q – простые. Найти a, если р – q =2.
18. Доказать, что уравнение 15х2 – 7у2 = 9 не имеет решений в целых числах.
19. Решить в целых числах уравнение х2 + у2 = z2.
20. Доказать, что сумма квадратов пяти последовательных целых чисел не может быть точным квадратом.
21. Решить в целых числах уравнения 53х + 47у =1, 22х + 32у =18.
22. Путем перебора решить сравнения:
1) 5х2 – 15х +22(0(mod 3), 4) 7x ( 31(mod 6),
2) х3 – 12 (0(mod 5), 5) 12x ( 1(mod 7),
3) 3х ( 1(mod 5), 6) 6x + 5 ( 6(mod 7).
23. Способом Эйлера решить сравнения:
1) 5х ( 0(mod 7), 3) 5x ( 7(mod 7),
2) 25х ( 15(mod 7), 4) 5x ( 26(mod 12).
24. Решить системы сравнений:
x ( 3(mod 8), x ( 2(mod l7),
х ( 11(mod 20), 5x ( 3(mod 9),
x ( l(mod l5), 8x ( 4(mod l4).




25. Решить системы сравнений китайским способом:
x ( 2(mod 7), x ( 3(mod 8),
x ( 9(mod 11), x ( 2(mod 9),
x ( 3(mod 13), x ( 5(mod 7).
26. Составить таблицы индексов:
по mod 29 с основанием 2,
по mod 23 с основанием 5.
Путем индексирования решить сравнения:
1) 2х ( (mod 67), 5) 37х16 ( 62(mod 73),
2) 52х (38(mod 29), 6) 2x3 ( 17(mod 41),
3) 13х ( (mod 47), 7) 5x4 ( 3(mod 11).
4) 12х ( 17(mod 31), 8) 27x5 ( 2(mod 31).
27. Пусть а принадлежит показателю (, b – показателю (, ((,()=1. Показать, что ab принадлежит показателю ((.
28. Пусть а принадлежит показателю (, b – показателю (. Как построить элемент, принадлежащий показателю [(,(]?
29. Пусть а принадлежит показателю (. Какому показателю принадлежит a(?
30. Пусть g – первообразный корень по модулю т. Сколько всего первообразных корней по этому модулю?
31. Вычислить символы Лежандра и Якоби:


32. Найти все квадратичные вычеты по модулю числа р:
р=11, p=13, р=17.
33. Доказать, что при р = 4k + 1 числа а и р-а одновременно квадратичные вычеты или невычеты, а при р= 4k + 3 наоборот.
34. Решить сравнения: х2 (19 (mod 31), х2 ( 15 (mod 53), x2 (11 (mod 59).
35. Решить сравнения: х2 + 8х – 20 ( 0(mod 45), 5x2 + х + 4 ( 0(mod 10).
36. Пользуясь леммой Гаусса и представлением


доказать, что

37. Показать, что для любого целого d и любого нечетного простого р количество решений сравнения х2 ( d (mod p) равно
38. Найти способ решения сравнений вида х2 ( 4(mod m).
39. Доказать, что количество решений уравнения х2 + у2 = р, (х,у)=1, х >0, у>0 равно количеству решений сравнения z2 + 1 ( 0(mod p).
40. Разложить в цепные дроби числи 170/109, 99/170, 125/92, ((.



3.2. Группы
3.2.1. Понятие группы
Группой называется непустое множество G с алгебраической операцией ( на нем, для которой выполняются первые три из четырех следующих аксиом.
1. Операция ( ассоциативна, т.е. для любых а, b, с ( G
a((b(с) =(a(b) (с.
2. В G имеется единичный элемент (или единица) е такой, что для любого
а ( G
а(е=е(а=а.
3. Для каждого а ( G существует обратный элемент а –1 ( G такой, что
а(a-1 = а-1 (a = е.
4. Для любых а,b ( G
а(b=b(a.
Если дополнительно группа удовлетворяет четвертой аксиоме, то группа называется абелевой (или коммутативной).
Для групповой операции будем использовать мультипликативное обозначение и вместо а(b писать аb, называя этот элемент произведением элементов а и b. Иногда для групповой операции используют аддитивную запись: а + b. В этом случае вместо единицы пишут ноль, а вместо а–1 – -а. Такие обозначения обычно резервируют для абелевых групп.
В группе имеется лишь один единичный элемент. Действительно, если е' – еще одна единица, то е' = е'е= е. Для любого элемента имеется лишь один обратный. Пусть х и у – обратные элементы для а ( G. Тогда по ассоциативности
х=хе=х(ау)=(ха)у= еу= у.
Примеры. Mножество Z челых чисел образуют группу относительно операции сложсния. То же можно сказать относительно рациональных чисел Q, вещественных чисел R и комплексных чисел С.
Обозначим через 13 EMBED Equation.3 1415 классы вычетов по модулю 5. Определим их сложение по модулю 5. (13 EMBED Equation.3 1415 и т.д.). Эта группа обозначается через Z5 и называется (аддитивной) группой классов вычетов по модулю 5. Аналогично строится группа классов вычетов Zт по любому модулю т. Если взять все классы вычетов, взаимно простые с модулем т, и определить их умножение по модулю т, то получается группа, обозначаемая через Z*m. Отметим, что существование обратного элемента для а ( Z*m вытекает из разрешимости сравнения ax ( l(mod m) при (а,т) = 1.
Число элементов конечной группы G называется порядком группы и обозначается через |G|. Например, |Zm| =m, |Z*m|= ((т).
Мультипликативная группа G называется циклической, если она порождена одним элементом, т.е. в ней имеется такой элемент а(образующий), что любой другой элемент b представим в виде b = an, п ( Z. Если п – отрицательное, то под an понимается произведение (а-1)-п. Циклическими являются группы Z и Zm. Группа Z*m – циклическая лишь в случае, когда по модулю т существует первообразный корень. В циклической группе, конечной или нет, может быть несколько образующих элементов. В аддитивной группе Z образующими будут элементы 1 и -1. Циклическая группа всегда коммутативна.
Существует удобный способ задания конечной группы – в виде таблицы. Обычно она называется таблицей Кэли. Ее строки и столбцы помечаются элементами группы, и на пересечении строки, помеченной элементом а, и столбца, помеченного элементом b, ставится элемент ab.
3.2.2. Подгруппы групп
Подмножество H группы G называется подгруппой этой группы, если H образует группу относительно операции группы G.
Подгруппы группы G, отличные от тривиальных подгрупп {e}G, называются собственными подгруппами.
Теорема 3.2.1. Подмножество Н группы G будет ее подгруппой тогда и только тогда, когда выполняются условия:
a, b ( Н =>ab ( H;
a ( Н =>a-1 ( H.
Теорема 3.2.2. Если Н – подгруппа группы G, то отношение RH на G, определяемое условием
(а, b) ( RH <=>а = bh для некоторого h ( H,
является бинарным отношением эквивалентности.
Классы эквивалентности по отношению RH называются левыми смежными классами группы G по подгруппе Н и обозначаются
аН ={аh| h(H}.
Смежные классы группы по подгруппе либо совпадают, либо не пересекаются. Аналогично определяются правые смежные классы по подгруппе Н, которые имеют вид Нa ={ha | h ( Н}. Для абелевой группы эти два понятия идентичны.
Пусть, например, G = Z, Н = 2Z – подгруппа четных чисел. Тогда имеем два смежных класса: 2Z – четные числа, 1 + 2Z нечетные.
Теорема 3.2.3. Если Н – конечная группа, то каждый (левый или правый) смежный класс по ней содержит |Н| элементов.
Теорема 3.2.4. Пусть G – конечная группа. Тогда
|G|=[G:H] |Н|.
Следствие 3.2.1. (Лагранж). Порядок конечной группы делится на порядок любой ее подгруппы.
Пусть а (G. Положим ап =аа(((а, если п натуральное, ап =(а-1)-п, если п – целое отрицательное, и, наконец, а0 = е. Таким образом можно рассмотреть подмножество
(a( = { ап| n(Z}.
Оно, как легко показать, является подгруппой группы G. Эта подгруппа называется циклической подгруппой, порожденной элементом а. Ее порядок называется порядком элемента а. Иными словами, элемент а ( G называется элементом порядка т ( N, если ат = е, где т – наименьшее натуральное с этим условием. Легко показать, что т|l, если аl = е. Если такого т нет, то элемент а называется элементом бесконечного порядка. Из теоремы Лагранжа вытекает, что порядок конечной группы G делится на порядок любого ее элемента а. Поэтому a(G( = е. Поскольку |Z*m|= ((т), то в качестве еще одного следствия получается теорема Эйлера о том, что если (а,т) =1, то
а((m) ( 1(mod m).
В дальнейшем нам потребуется утверждение о порядках элементов в абелевой группе G. Пусть a,b(G и их порядки т и п соответственно, причем (m,п) = 1. Покажем, что порядок произведения аb равен тп. Обозначим порядок ab через (. Тогда (аb)(, а значит, (аb)(m =1 => a(mb(m=1 => b(m=1 => п|(т => n|(. Аналогично показывается, что т|(. Поэтому тп|(. Последнее, в силу минимальности (, означает ( = тп. Доказанное является частным случаем следующего утверждения.
Теорема 3.2.5. Пусть даны два элемента a,b(G абелевой группы. Тогда в группе найдется элемент порядка [т, п].
3.2.3. Циклические группы
Пусть <а> – циклическая группа, порожденная элементом а.
Теорема 1. Каждая подгруппа циклической группы также является циклической.
Теорема 2. В конечной циклической группе <а> порядка т элемент ak порождает подгруппу порядка m(k, т) -1.
Теорема 3. Если d – положительный делитель т, то G содержит единственную подгруппу индекса d.
Теорема 4. Для любого положительного делителя l числа т группа содержит в точности одну подгруппу порядка l.
Теорема 5. Пусть l – положительный делитель порядка конечной циклической группы <а>. Тогда <а> содержит (( l) элементов порядка l.
Теорема 6. Конечная циклическая группа <а> порядка т содержит (( т) образующих. Элемент al является образующим лишь при условии (l,m)=1.

3.2.4. Гомоморфизмы групп
Отображение f: G ( G( группы G в группу G( называется гомоморфизмом, если оно согласовано с операциями на группах G и G', т.е. f(ab) = f(a)f(b) для любых двух элементов a,b (G. Если это отображение сюръективное, то оно называется эпиморфизмом. В этом случае группа G' называется гомоморфным образом группы G. Приставка «моно» употребляется в случае, когда гомоморфизм инъективен. Биективный гомоморфизм называется изоморфизмом. Для изоморфных групп употребляется обозначение G Н. Изоморфизм группы G на себя называется автоморфизмом.
Примеры. Обозначим через GL(n, R) группу по умножению всех невырож-енных матриц п-го порядка с вещественными элементами. Тогда отображение А(det A, A(GL(n, R) будет эпиморфизмом на мультипликативную группу поля вещественных чисел R*.
Еще один пример эпиморфизма дает отображение (: Z ( Zт, при котором ((а)= а, т.е. элемент a ( Z отображается в соответствующий класс вычетов по модулю т.
Ядром гомоморфизма f: G ( H называется множество
ker f = {a(G|f(a)=e'},
где e' единичный элемент группы H.
В случае гомоморфизма GL(n,R) ( R* ядром будет подгруппа матриц с единичным определителем. Ядром во втором примере является группа чисел тZ, кратных модулю т.
Сохранив для аддитивной группы поля вещественных чисел обозначение R и обозначив через R+ мультипликативную группу положительных вещественных чисел, имеем изоморфизм R+ R, заданный функцией у = ln x.
Легко показать, что ядро любого гомоморфизма является подгруппой H группы G c важным дополнительным условием: g-1Hg = H для любого элемента g(G. Такие подгруппы называются нормальными подгруппами (нормальными делителями). Используется обозначение Н(G. Условие нормальности, как нетрудно видеть, можно переписать в виде gH = Hg, или gHg-1 = Н. В абелевой группе все подгруппы являются нормальными.
Если Н – нормальная подгруппа группы G, то множество смежных классов группы G по подгруппе Н можно наделить групповой структурой. Соответствующая группа называется фактор-группой группы G по подгруппе Н и обозначается G/H. Определим композицию смежных классов по формуле (g1H)(g2H) =g1g2H. Докажем корректность. Пусть g1h1 и g2h2 другие представители смежных классов. Toгда g1h1g2h2 можно представить в виде g1g2hґ1h2 так как в силу gH=Hg произведение h1g2 представить в видс g2hґ1. Потому (g1h1g2h2)Н=(g1g2)((hґ1h2)Н)= g1g2Н.
Теорема 3.4.1 (о гомоморфизме). Пусть f: G ( G1 эпиморфизм. Тогда
ker f ( G, причем группа G1 изоморфна фактор-группе G/ker f. Если Н – нормальная подгруппа группы G, то f:G(G/H, определяемое условием f(а)=аН, является эпиморфизмом, причем ker f = Н.

3.2.5. Группы подстановок
Обозначим через Х конечное множество, а его элементы – через 1,2,...,п. Рассмотрим все биекции (подстановки) (: Х ( X. Легко видеть, что они образуют группу относительно операции композиции отображений. Эта группа называется симметрической группой п-й степени и обозначается через Sn или через S(X). Нетрудно показать, что |Sn |= п!. Так, например, группа S3 состоит из шести подстановок:
13 EMBED Equation.3 1415
В нижней строке указаны образы элементов 1, 2, 3, расположенных в верхней строке. Условимся при вычислении произведения подстановок (1(2 выполнять отображения справа налево, т.е. сначала отображение (2, а затем (1. Например:


Подгруппы симметрической группы называются группами подстановок.
Подстановку вида 1(2(3((k(1 назовем циклом длиной k и обозначим (1,2,,k). Два цикла называются независимыми, если перемещаемые ими элементы попарно различны. Независимые циклы коммутируют, т. e. для них выполнено условие (1(2 =(2(1. Цикл длиной 2 называется транспозицией.
Теорема 1. Каждая подстановка единственным образом разложима в произведение независимых циклов.
Теорема 2. Каждая подстановка (( Sn является произведением транспозиций.
Ни о какой единственности не может быть и речи хотя бы потому, что для любой транспозиции ( и подстановки ( имеем ((2=(. Тем не менее, характер четности числа k в разложении подстановки в произведение транспозиций (=(1(2(k определяется подстановкой ( однозначно. В самом деле, умножение подстановки на транспозицию меняет характер четности перестановки (=a1a2an на противоположный. Поэтому, если транспозиции (1(2(k приводят перестановку a1a2an к виду 1,,n, то (=(k(1, и наоборот, поэтому характер четности подстановки ( совпадает с характером четности перестановки a1a2an. Подстановка называется четной или нечетной в зависимости от четности числа k.
Теорема 3. При п > 1 количество четных подстановок равно количеству нечетных подстановок и равно п!/2.
Нетрудно показать, что все четные перестановки образуют подгруппу группы Sn. Эта подгруппа называется знакопеременной группой и обозначается через Аn. При n>1 имеем разложение Sn = Аn ((1,2)Аn. Поэтому [Sn: Аn]=2. Для любой подстановки ((Sn смежные классы (Аn и Аn( состоят из всех четных или всех нечетных подстановок в зависимости от четности подстановки (. Поэтому Sn (Sn.
Теорема 4 (Кэли). Всякая конечная группа G изоморфна подгруппе симметрической группы Sn, где п =|G |.
3.2.6. Действие группы на множестве
Пусть G – произвольная конечная группа, Х – конечное множество из п элементов. Будем говорить, что G действует на X, если задан любой гомоморфизм G(S(X). Тем самым задано отображение декартова произведения G ( Х в множество X. Если g(((S(X), то (g,x) ( ((х). Вместо (g,x) будем писать gx = ((х). При этом выполняются очевидные свойства
е(х) = х, х ( X; (gh)x = g(h(x)), g, h ( G.
Два элемента х, х'( Х называются эквивалентными относительно группы G, действующей на X, если х' =gx. Легко проверяются свойства рефлексивности, транзитивности и симметричности. Соответствующие классы эквивалентности называются орбитами. Орбиту, содержащую элемент х0, удобно обозначать символом G(х0), т.е. G(х0) ={gх0|g(G}. Например, Sn(l)={1, 2,..., п}.
Пусть х0 – элемент из Х. Рассмотрим множество St(х0) ={g(G|gх0=х0}. Легко убедиться, что St(х0) – подгруппа в G. Она называется стабилизатором элемента х0. Для рассмотренного примера St(1) – множество всех подстановок, оставляющих элемент 1 на месте. Очевидно, St(1)( Sn-1, т. е. это фактически симметрическая группа на множестве 2,3,,п.
Теорема 1. Card G(x0)= [G: St(x0)].
Левые смежные классы находятся во взаимно однозначном соответствии с элементами орбиты G(x0).
Из этой теоремы и теоремы Лагранжа следует, что длина любой орбиты конечной группы является делителем порядка группы.
Группа перестановок G ( Sn, действующая на множестве Х = {1, 2,..., п}, называется транзитивной, если орбита некоторой (а значит, и любой) точки совпадает со всем множеством X. Транзитивной будет вся группа Sn и, как нетрудно убедиться, знакопеременная группа Ап. Определим действие группы G на левых смежных классах по подгруппе Н по правилу g(g1H) = (g1g2)H. В этом случае также имеем дело с транзитивностью. В самом деле, если g1H и g2H два смежных класса, то g2g1-1g1H = g2H.

3.3. Кольца и поля
3.3.1. Определения
Кольцом называется множество R с двумя бинарными операциями, обозначаемыми символами «+» и «», такими, что:
1) R – абелева группа относительно операции «+»;
2) операция умножения ассоциативна, т.е. для всех a,b,c (R (ab)c = а(bс);
3) выполняются законы дистрибутивности, т.е. для всех a,b,c (R
а(b + с) = ab + ас и (b + с)а = bа + сa.
Условимся называть нейтральный элемент аддитивной группы кольца нулем и обозначать его символом 0. Противоположный к а элемент обозначают через -а. Вместо а + (–b) обычно пишут а–b. Легко доказываются свойства а0 = 0а = 0 для всех а ( R. Из этого следует, что (-а)b = а(-b) = -ab для всех a,b ( R. Простейшими примерами колец являются кольца целых чисел Z и многочленов R[x] с вещественными коэффициентами.
Кольцо называется кольцом с единицей, если оно имеет мультипликативную единицу, т.е. такой элемент е, что ае = еа = а для любого а(R.
Кольцо называется коммутативным, если операция умножения коммутативна.
Два элемента кольца а ( 0, b(0 называются делителями нуля, если ab = 0. Приведем пример делителей нуля. Рассмотрим кольцо классов вычетов Zm по модулю т. Оно состоит из элементов 0, 1, 2,..., т –1. Операция сложения над этими элементами была определена ранее. Аналогично определяется умножение. Выполняем обычное умножение чисел и при необходимости берем остаток от деления на т. Если т – составное, т=ab, то делителями нуля будут а, b.
Кольцо называется областью целостности, если оно является коммутативным кольцом с единицей и без делителей нуля.
Коммутативное кольцо называется полем, если его ненулевые элементы образуют группу относительно операции умножения. Очевидно, всякое поле содержит не менее двух элементов. Отметим простейшие свойства полей.
Свойство 3.7.1. В поле нет делителей нуля.
Равенство ab = 0 при а ( 0 влечет a-1ab = а-10, а значит, b=0.
Свойство 3.7.2. В поле второй закон дистрибутивности вытекает из первого.
Теорема 3.7.1. Конечная область целостности является полем.
Теорема 3.7.2. Кольцо классов вычетов Zm будет областью целостности, а значит, и полем лишь при простом т.
Поле Zр называется полем Галуа порядка р и обозначается через Fр.

3.3.2. Подкольца
Подмножество S кольца R называется подкольцом этого кольца, если оно замкнуто относительно имеющихся операций сложения и умножения и само образует кольцо относительно этих операций.
Подкольцо Н кольца R называется идеалом (двусторонним идеалом) этого кольца, если для всех а ( Н, r ( R имеет место аr ( Н, rа ( Н.
Примеры. Множество целых чисел Z является подкольцом поля рациональных чисел Q, но не идеалом. Легко подобрать одно целое и одно рациональное число, произведение которых не будет целым.
Пусть R – коммутативное кольцо, а (R. Положим Н={ar( r (R}. Тогда H – идеал кольца R. В частности, числа, кратные данному модулю т в кольце Z, образуют идеал mZ.
Пусть R – коммутативное кольцо. Идеал Н кольца R называется главным идеалом кольца R, если существует элемент а (R такой, что Н={ar( r (R}. В этом случае Н называют главным идеалом, порожденным элементом а.
Пусть кольцо R содержит единичный элемент. Рассмотрим циклическую подгруппу аддитивной группы кольца, порожденную единицей. Она автоматически будет подкольцом, так как

Она автоматически будет изоморфна либо аддитивной группе кольца Z, либо аддитивной группе одного из колец вычетов Zm. В первом случае говорят, что характеристика кольца R равна нулю, char R = 0. Во втором случае полагает char R = т.
Теорема 3.8.1. Характеристика области целостности либо равна нулю, либо является простым числом.
Центром кольца R называется множество всех его элементов а ( R, для которых
ах = ха при всех х ( R.
Центр коммутативного кольца R совпадает с R.
Теорема 3.8.2. Центр любого кольца является его подкольцом.
Если Н – идеал кольца R, то факторгруппа R/H также наделяется структурой кольца. Определим умножение смежных классов по формуле
(а + Н)(b+ H)=аb+ Н.
Убедимся в корректности определения. Пусть а + h1 и b + h2 – другие представители смежных классов. Тогда (a +h1)(b+h2)= ab + ah2 + bh1 + h1h2. Три последних слагаемых принадлежат идеалу, поэтому имеем тот же смежный класс. Смежные классы по идеалу называют также классами вычетов по модулю идеала. При таком определении классы вычетов наследуют аксиомы кольца, и поэтому они образуют кольцо, называемое фактор-кольцом кольца R по идеалу Н. Оно обозначается R/Н.
Фактически мы уже имели дело с фактор-кольцом Z/тZ. Эти фактор-кольца можно задавать с помощью таблиц Кэли. В случае р=3 имеем таблицы умножения и сложения поля Галуа F3:
(

0

1

2


0

0

0

0


1

0

1

2


2

0

2

1


+

0

1

2


0

0

1

2


1

1

2

0


2

2

0

1


Следует отметить, что фактор-кольцо наследует не все свойства кольца. Например, в кольце Z/6Z есть делители нуля 2( 3=0, хотя в самом кольце Z их нет.
3.3.3. Гомоморфизмы колец
В дальнейшем мы чаще всего будем рассматривать кольца с единицами. Пусть R и S – кольца. Гомоморфизмом (: R > S называется отображение, для которого
((a+b)= ((a)+ ((b), ((ab)= ((a) ((b), ((е)=е'
для всex a,b ( R.
Термины «ядро», «образ», «эпиморфизм», «мономорфизм», «изоморфизм», «автоморфизм» и «эндоморфизм» имеют тот же смысл, что и для групп.
Теорема 1. Если ( – гомоморфизм кольца R на кольцо S, то ker ( – идеал кольца R, причем кольцо S изоморфно фактор-кольцу R /ker (. Обратно, если Н – идеал кольца R, то отображение (: R –> R/H, определяемое условием ((а)=а+Н, является эпиморфизмом R на R/H с ядром Н.
Теорема 2. В любой области целостности R положительной харатеристики р отображение х > хр является мономорфизмом ( : R -> R.
В заключение отметим, что в кольце Z любой идеал главный, так как является аддитивной подгруппой бесконечной циклической группы.

3.3.4. Евклидовы кольца
Теория делимости целых чисел может быть значительно обобщена. В частности, ее можно развить для колец многочленов над произвольными полями.
Евклидовым кольцом называется область целостности R вместе с нормой v:R*> N ( {0} (R* – множество ненулевых элементов кольца, N ( {0} – неотрицательные целые числа), которая удовлетворяет следующим условиям:
v(ab) ( v(a) для любых x,y(R*;
для любых а ( R, b ( R* существуют элементы q и r такие, что
а = bq + r, где либо r = 0, либо v(r) < v(b).
Евклидово кольцо – это кольцо Z вместе с нормой, являющейся обычным модулем. Кольцо многочленов F[x] над любым полем F также является евклидовым. В качестве нормы следует взять степень многочлена. Менее очевидно, что евклидово кольцо образуют целые гауссовские числа, т.е. числа вида а + bi, а, b ( Z. Здесь в качестве нормы следует взять квадрат модуля v(a+bi) = а2 + b2. Эти числа обозначают Z[i].
Теорема 1. В евклидовом кольце R для любых а,b ( R*
v(ab) = v(a),
если b – обратим, и v(ab) >v(a) в противном случае.
Следствие 1. В евклидовом кольце элемент a обратим тогда и только тогда, когда v(a)=v(е).
Например, обратимые элементы кольца Z – это ±1. В кольце целых гауссовских чисел обратимыми будут четыре элемента: ±1, ±i.
Теорема 2. В евклидовом кольце все идеалы главные.
В силу наличия в евклидовом кольце алгоритма деления с остатком для него можно построить теорию делимости, аналогичную теории делимости для кольца целых чисел. В частности, можно ввести понятия НОК и НОД двух элементов. Для нахождения НОД можно использовать алгоритм Евклида. В евклидовом кольце любой элемент можно разложить в произведение простых элементов. Однако это разложение менее определенное, чем каноническое разложение целого числа, из-за наличия в произвольном евклидовом кольце обратимых элементов. Отметим в связи с этим, что все обратимые элементы евклидова кольца образуют группу по умножению. Она называется группой единиц кольца и обозначается через U(R). Например, U(Z)= ±1, U(Z[i])=[±l,±i], U(R[x])=R*. Назовем элемент р(R* простым, если он необратим и не раскладывается в произведение двух необратимых множителей. Два простых элемента называются ассоциированными, если они отличаются обратимым множителем, т.е. р=uq, где u(U(R) Например, 5 и –5 – простые ассоциированные элементы в кольце Z. Отношение ассоциированности является бинарным отношением эквивалентности. Поэтому имеем разбиение простых элементов на непересекающиеся классы ассоциированных.
Теорема 3. В евклидовом кольце всякий ненулевой необратимый элемент можно представить в виде произведения степеней попарно неассоциированных простых элементов. В этом разложении классы простых элементов и их степени определены однозначно.

3.3.5. Простые и максимальные идеалы
Идеал Н кольца R называется простым, если ab ( Н => а ( Н либо b ( Н. Идеал Н кольца R называется максимальным, если он не содержится ни в каком большем идеале, кроме самого кольца R.
Теорема 1. Пусть R – коммутативное кольцо с единицей, Н – идеал кольца R.
l. Идеал Н прост тогда и только тогда, когда фактор-кольцо R/H является областью целостности.
2. Идеал Н максимален тогда и только тогда, когда фактор-кольцо R/H является полем.
Следствие 1. Всякий максимальный идеал прост.
Данная теорема позволяет строить новые конечные поля, отличные от полей типа Fp.
Теорема 3.11.2. В евклидовом кольце идеал Н = аR, являющийся автоматически главным, максимален тогда и только тогда, когда а – простой элемент.
Пример. Многочлен х2 + х + 1 является простым элементом кольца многочленов над полем F2, поскольку его приводимость означает наличие корней в этом поле. Здесь, конечно, мы используем то обстоятельство, что он может разлагаться лишь на два множителя первой степени. Представителями классов вычетов являются элементы 0, 1, х, х +1. Над ними можно производить сложение и умножение по модулю х2 + х + 1. Тем самым построено поле F4 . Приведем таблицы умножения и сложения в этом поле.


0

1

х

х+1


+

0

1

х

х+1


0

0

0

0

0


0

0

1

х

х+1


1

0

1

х

х+ 1


1

1

0

х+1

х


х

0

х

х+1

1


х
х
х+1
0
1

х+1
0
х+1
1
х

х+1
х+1
х

1

0



3.3.6. Конечные расширения полей
Пусть F и Р – два поля, причем F ( Р. Тогда F называется подполем поля Р, которое в свою очередь называется надполем поля F, или его расширением. Каждое поле содержит так называемое простое подполе, т.е. поле, порожденное единицей. Если характеристика поля положительна (равна р), то простое подполе изоморфно Fр. Если характеристика равна нулю, то простое подполе изоморфно полю рациональных чисел. Таким образом, каждое поле является расширением своего простого подполя.
Поле Р можно рассматривать как векторное пространство над полем F. Размерность этого пространства называется степенью расширения F ( Р и обозначается [P: F]. Например: [С: R] = 2, [R: Q] = (, [F4 : F2]= 2.
Теорема 1. Пусть даны два расширения F ( Р, Р ( К конечной степени. Тогда
[K:F]=[P:F][K:P].
Элемент ( ( Р называется алгебраическим над полем F, если он является корнем многочлена f(х)(F(x), f(x)=0. Многочлен f(x) называется аннулирующим многочленом элемента (. Среди всех аннулирующих многочленов можно выбрать многочлен наименьшей степени со старшим коэффициентом, равным единице. Такой многочлен называется минимальным многочленом элемента (. Минимальный многочлен очевидно неприводим, т.е. не разлагается в произведение многочленов меньшей степени. Минимальный многочлен определен однозначно.
Теорема 2. Всякое расширение F ( Р конечной степени алгебраично, т.е. все элементы поля Р алгебраичны над полем F.
Теорема 3. Все аннулирующие многочлены для данного элемента (( Р образуют главный идеал в кольце F[x]. Он порожден минимальным многочленом т(х), т.е. имеет вид m(x)F[x].
Пусть F ( Р – произвольное расширение, ((Р. Обозначим через F[(] наименьшее подкольцо поля Р, содержащее элемент ( и поле F, a через F(()– наименьшее подполе с аналогичным условием. Очевидно, что
F[(]={f(()|f(x) (F[x]},


Теорема 4. Если элемент ( алгебраичен над F, тo F[(]=F(()(F[x]/m(x)F[x], где т(х) – минимальный многочлен для (.
F ( F[(] называется простым алгебраическим расширением. Элемент ( называется примитивным элементом расширения. Степень этого расширения равна степени минимального многочлена. Пусть т(х) =(0 + (1х + ...+ (пxп. Тогда п элементов 1, (, (2,..., (п-1 образуют базис расширения. В самом деле, они линейно независимы, так как их меньше, чем степень минимального многочлена. Пусть f(а) – произвольный элемент поля F[(]. Разделим многочлен f(x) с остатком на т(х). Имеем f(x) = т(x)g (х) + r(х). Поэтому f(()=r((), что линейно выражается через 1, (, (2, ..., (п-1.

3.3.7. Поле разложения
Пусть f(x) – неприводимый многочлен над полем F. Покажем, что для него существует конечное расширение поля F, содержащее все корни многочлена f(x). Такое расширение принято называть полем разложения. Более точно расширение Р поля F называют полем разложения многочлена f(x), если:
f(x) разлагается на линейные множители в Р[х];
P порождено как поле корнями многочлена f(x) и полем F.
Поле разложения – это наименьшее поле, в котором f(x) разлагается на линейные множители.
Теорема 1. Пусть многочлен т(х) неприводим над полем F, Тогда над расширением Р = F[x]/m(x)F[x] многочлен т(х) имеет корень х( = ((х), где ( - канонический эпиморфизм на фактор-кольцо (:f[x] (F[x]/m(x)F[x].
Теорема 2. Пусть F поле, f(х) произвольный ненулевой многочлен f(х) ( F[x]. Тогда его поле разложения существует и имеет степень не больше чем п! над F.
Теорема 3. Поле разложения данного многочлена под полем F определяется с точностью до изоморфизма.

3.3.8. Конечные поля
Всякое конечное поле Р содержит простое подполе Fp = Fp. Поскольку поле Р конечное, оно имеет конечную степень п над простым подполем. Обозначим через р1, p2,.., рп базис Р над Fp. Тогда любой элемент х ( Р можно однозначно записать в виде х = f1p1 + f2p2 + ...+ fnрn, fi(Fp. Для каждого коэффициента fi имеется р возможностей выбора. Поэтому порядок поля Р необходимо равен рп. Однако мы не знаем, для каких п поле действительно существует.
Наша ближайшая цель доказать существование поля Галуа для любого простого р и натурального п. Положим q = рп,
Лемма 1. Многочлен f(x) = хq – х не имеет кратных корней в любом поле характеристики р, в котором он разлагается на линейные множители.
Заметим, что для любого ненулевого корня многочлена хq –х верно (q-1 =1.
Теорема 1. Поле разложения многочлена xq – х содержит в точности рп элементов.
Следствие 1. Существует лишь одно с точностью до изоморфизма поле
Теорема 2. Мультипликативная группа любого конечного поля Р циклична.
Образующий элемент циклической группы называется примитивным
элементом этого поля. Его можно взять в качестве примитивного элемента расширения Fp ( . Поэтому верна следующая теорема.
Теорема 3. Всякое конечное поле характеристики р является простым алгебраическим расширением поля Fp.
Минимальный многочлен примитивного элемента поля имеет степень п. Поэтому можно сказать, что это поле изоморфно фактор-кольцу Fp[x]/m(x)Fp[x] для некоторого неприводимого многочлена т(х) степени п. При этом т(х)|(хq – 1).

3.3.9. Порядки неприводимых многочленов
Теорема 1. Поле является полем разложения всякого неприводимого многочлена f(х) степени п над полем .
Следствие 1. Порядки всех корней неприводимого многочлена равны.
Назовем порядком многочлена f(x)(Fp[x], f(0) ( 0 наименьшее натуральное е, при котором многочлен f(x) делит xе –1. Порядок обозначается ord(f(x)).
Следствие 2. Пусть f(x) – неприводимый многочлен степени п над полем Fp. Порядок этого многочлена совпадает с порядком любого его корня в мультипликативной группе поля разложения.

3.3.10. Линейные рекуррентные последовательности
Последовательность элементов s0, s1, поля Fq, удовлетворяющих условию
sn+k = ak-1sn+k-1 + ak-2sn+k-2 + + a0sk , (3.3.1)
где ak-1,ak-2,a0 – фиксированные элементы поля, называется линейной рекуррентой (ЛРП) k-го порядка над полем Fq. Эта последовательность полностью определяется вектором начального состояния S0= (s0,s1,,sk-1) и коэффициентами ak-1,ak-2,a0.
С линейной рекуррентой можно связать матрицу





Рассмотрим теперь последующие состояния ЛРП S1=(s1, s2,,sk), S2=(s2,s3,,sk+1), Определение (3.3.1) можно переписать в виде
Si= Si-1A, i=l, 2, (3.3.2)
Далее рассматриваются лишь ЛРП с условием a0(0. В этом случае матрица А является элементом группы GL(k,Fq) всех невырожденных матриц k-го порядка с элементами из поля Fq. Поскольку эта группа конечна, то матрица А имеет конечный порядок как элемент группы.
Теорема 1. Любая линейная рекуррента при a0(0 является чисто периодической последовательностью.

3.3.11. Последовательности максимального периода
Под периодом ЛРП будем понимать ее минимальный период.
Рассмотрим характеристический многочлен f(x) =|хЕ – S| матрицы S. Легко подсчитать, что f(x)=xk – sk-1xk-1 –...– s1x– s0. Можно показать, что он будет такжс и минимальным многочленом матрицы S. Этот многочлен называется характеристическим многочленом ЛРП (3.3.1).
Теорема 1. Пусть многочлен f(x)= |xE-A| неприводим. Тогда его порядок совпадает с порядком матрицы S как элемента группы GL(k, Fq).
Теорема 2. Минимальный период линейной рекурренты с неприводимым характеристическим многочленом f(x), f(0)(0 при ненулевом начальном состоянии равен порядку многочлена f(x).
Данная теорема показывает, как для генерации последовательностей максимального периода можно использовать примитивные многочлены.

3.3.12. Задания
Выяснить, обладают ли свойствами ассоциативности и коммутативности операции ( на множестве А, если
A=N, x(y=x+2y; A=N, x(y = xy;
A=N, x(y=3xy; A=N, x(y =НОД(x,y);
A=Z, x(y=x – y; A=Z, x(y = x2+ y2;
A=R, x(y = sinxcosy; A=R, x(y = x(y(.
2. Какие из указанных числовых множеств являются группами относительно заданных операций:
1) множество степеней данного вещественного числа с целыми показателями относительно умножения;
2) множество комплексных чисел с фиксированным модулем относительно операции умножения;
3) множество положительных действительных чисел относительно операции умножения;
4) отрезок [0,1] относительно операции умножения;
5) отрезок [0,1] относительно операции ((( = {(+(};
6) корни всех степеней из единицы относительно умножения?
3. Какие из указанных множеств квадратных матриц фиксированного порядка образуют группу относительно операции умножения:
1) множество симметрических матриц с вещественными элементами;
2) множество невырожденных матриц с вещественными элементами;
3) множество целочисленных матриц с определителем, равным ±1;
4) множество верхних треугольных матриц с вещественными элементами;
5) множество ортогональных матриц;
6) множество диагональных матриц?
Доказать, что множество функций вида у =(ах + b)(сх + d)-1, где a,b, с, d (R, ad–bc(0, является группой относительно операции композиции функций.
5. Доказать, что если в группе G выполнено условие х2 = е, х ( G, то группа G коммутативна.
Доказать, что в любой группе (ab)-1 =b-1а-1 и вообще
(a1a2an) -1 =an-1an-1-1a1-1.
7. Доказать, что множество всех квадратных матриц данного порядка, в каждой строке и каждом столбце которых один элемент равен 1, а остальные 0, образует группу.
8. Составить таблицу Кэли для циклической группы пятого порядка.
9. Найти с точностью до изоморфизма вес группы порядков 3,4, 6. Составить их таблицы Кэли.
10. Доказать, что в конечной группе любое подмножество Н, замкнутое по умножению (h1,h2(H( h1h2(H ), будет подгруппой.
11. Доказать, что для нетривиального смежного класса gH(e(gH) выполняется условие h1,h2(gH( h1h2(H.
12. Доказать, что пересечение двух подгрупп будет подгруппой.
13. Показать, что в любой группе подстановок, содержащей хотя бы одну нечетную подстановку, количество четных подстановок равно количеству нечетных.
14. Найти все подгруппы групп S6,Z6,Z24.
15. Разложить:
1) аддитивную группу вещественных чисел по подгруппе целых чисел;
2) аддитивную группу комплексных чисел по подгруппе целых гауссовских чисел;
3) симметрическую группу Sn по подгруппе подстановок, оставляющей элемент 1 на месте;
4) группу Z6 по своим подгруппам;
5) группу S3 по своим подгруппам.
16. Пусть a (G. Доказать, что множество элементов {х | ха = ах, х(G}, называемое централизатором элемента а, является подгруппой.
17. Доказать, что множество элементов {х | ха = ах, (х(G}, называемое централизатором группы, является нормальной подгруппой.
18. Найти централизаторы элементов


в группе GL(2,R).
19. Найти центр группы GL(2,R).
20. Показать, что порядки элементов а и а-1 равны.
21. Показать, что порядки элементов аb и bа равны.
22. Доказать, что аддитивные группы вещественных и рациональных чисел не являются циклическими.
23. Пусть А и В нормальны в G, A(B=e, тогда каждый элемент a(A перестановочен с каждым элементом b(B.
24. Подгруппа, порожденная элементами вида аbа-1b-1 (коммутаторами), называется коммутантом. Доказать, что
аbа-1b-1= е ( аb=bа;
К ( G;
3) фактор-группа G/K – абелева;
4) если G/ Н – абелева, то К ( Н.
25. Определить с точностью до изоморфизма все абелевы группы порядка 8.
26. Пусть Н – подмножество группы G c условием h1,h2(H( h1h2(H. Доказать, что |Н| ( 0.5|G|.
27. Вычислить следующие произведения подстановок:
1) (1,2) (1,3) (1,4) (2,3) (3,5);
2) (125) (124) (129);
3) f100 , где

28. Найти подстановку Х, если АХВ2 = С,


29. Доказать, что две подстановки сопряжены тогда и только тогда, когда имеют одинаковое количество циклов каждой длины.
30. Доказать, что в булевом кольце (х2 = х):
1) умножение коммутативно;
2) х + х = 0;
3) кольцо не является областью целостности.
31. Доказать, что в определении кольца с единицей не обязательно требовать, чтобы операция «+» была коммутативной.
32. Доказать, что следующие подмножества являются подкольцами в кольце Мп(R):
1) диагональные матрицы;
2) верхнетреугольные матрицы.
33. Найти все подкольца колец вычетов Z7, Z10, Z12.
34. Может ли в кольце, не являющемся полем, содержаться некоторое поле?
35. Показать, что эндоморфизмы абелевой группы образуют кольцо.
36. Показать, что биекция а+b(2 ( а+b(3 не является изоморфизмом полей Q((2),Q((3) и что эти поля вообще неизоморфны.
37. Докажите, что Q((2 + (3) = Q((2 – (3) = Q((2, (3).
38. Установить, что I – идеал кольца К. Является ли фактор-кольцо полем?
1) К ={а+bi | а,b(Z}, I ={а + bi | a,b (3Z}.
2) K={a+ b(2| a,b(Z,}, I ={a + b(2| a,b(3Z}.
3) K=Z3[x], I=(x2 +1).
4) K=Z2[x], I=(x2 + х).
5) K=R[x], I=(x2 +1).
39. Найдите идеал, порожденный множеством М, если
1) М ={3,5} в кольце Z;
2) М ={4,10} в кольце Z;
3) М ={х6–1,х4–1} в кольце R[x];
4) М ={х, х + 1} в кольце R[x].
40) Доказать, что фактор-кольцо R[x]/(x4 + x3 + х +1) не может быть полем ни для какого коммутативного кольца R.
41) Вычислить образ (2х + 1)-1 в фактор-кольце F[x]/(x3 – 2), где
1) F=Q;
2) F=Z5;
3) F=F7.
42. Доказать, что (xm –1) |(xn – 1) ( m |n над любым полем коэффициентов.
43. Является ли С[0,1] областью целостности? Показать, что отображение f(f(а) является эпиморфизмом, а ядро – максимальным идеалом.
44. Показать, что если р(х) приводим, то идеал (р(х)) немаксимален.
45. Показать, что х2 + х + 1, х3 + х + 1, х4 + х + 1 неприводимы над F2 и что нет других неприводимых многочленов 2-й и 3-й степени.
46. Составить таблицы умножения и сложения для колец Z2[x]/(х2 + х + 1), Z2[x]/(х3 +х+1), Z2[x]/( х3 + х2 + 1).
47. Применив алгоритм Евклида, найти наибольшие общие делители многочленов с коэффициентами из поля F:
1) F=F2, х7 + 1, х5 + х3 + 1;
2) F=F2, х5 +x+ 1, х6 + х5 + х4 + 1;
F=F3, х8 + 2х5 + х3 + х2 + 1, 2х6 + х5 + 2х3 + 2х2 + 1;
48. Вычислить f(3), если f(х)=х214 + 3х152 + 2х47 + 2( F5[x].
49. Решить, если возможно, сравнения:
1) (х2 + 1)f(х) = l(mod(x3 + 1)) в F3[х];
2) (х4 + х3 + х2 + 1)f(х) = х2 + l(mod(x3 + 1)) в F2[х].
50. Пусть f(х) ( Fp[x], тогда (f(x))p= f(xp). Доказать.
51. Доказать, что в коммутативном кольце характеристики р

Доказать неприводимость многочленов х2 +1, х2 + х + 4 над полем F11 и построить изоморфизм фактор-колец
F11[x]/(x2 + 1) ( F11[x]/(x2 + x + 4).
52. Найти порядки многочленов: х10 + x9 + x3 + x2 (F2[x],
х8 + х7 + х3 + х + 1 (F2[x], x7 + х6 + x4 – х2 + х (F3[x],
(x2 + х + l)5 (х3 + х + 1) (F2[x]. Какие из них неприводимы?
53. Найти примитивный многочлен степени 6 над полем F2.
54. Найти примитивный элемент ( в Z[x]/(x2 - 2), представить степени (2,...,(8 в виде а + b(2, a, b (F3. Однозначно ли такое представление?
55. Можно ли вложить F4 в F8?
56. Найти все примитивные элементы полей F7, F9, F17.
57. Найти базис поля F25 над простым подполем. Разложить все элементы по этому базису. Найти примитивный элемент ( этого поля и для любого элемента ( (F25 найти п такое, что ( = (п.
58. Доказать, что если I – идеал кольца К, то I[x] – идеал кольца К[х].
59. Показать, что элемент (2 +i имеет степень 4 над Q и степень 2 над R. Найти его минимальные многочлены.
60. Доказать, что если многочлен F(х) неприводим в Fq[x], то F(aх+b) также неприводим, где a,b (Fq , a(0,
Разложить многочлены на неприводимые множители: х9 + х+1 над F2,
х7 + х6 + х5 – х3 + х2 –х–1 над F3.
62. С помощью матриц дать представление для элементов поля F8, используя многочлен х3 + х + 1. Дать аналогичное представление для F16, F9.
63. Доказать неприводимость многочлена х4 + х + 1 над F2 и построить таблицы операций для его поля корня.
64. Показать, что поле корня х3 + х +1 над F2 есть поле разложения.
65. Найти поля разложения (х2 –3)(х3 +1) над Q, (х2 –3)(х2 –2х–2) над Q,
х3 + х + 1 над F2.
66. Найти изоморфизм полей разложения х3 + 2х + 1 и х3 + 2х + 2 над F3.
67. Найти степени неприводимых множителей многочлена х17 – 1 над F2 и его поле разложения.
Установить примитивность многочленов x6 +x5+ x2 +х+1 над F2, x5 – х+1 над F3.
Найти хотя бы один примитивный многочлен степени 3 над полем F4.
Установить неприводимость, примитивность и найти порядок
х4 + х3 + х2 – х – 1 над полем F3.
Пусть A – любое множество автоморфизмов поля F. Показать, что элементы, инвариантные относительно всех а ( А, образуют подполе S(A)( F.
Над нолем F2 рассматривается рекуррентное уравнение si – si-2 + si-3 =0. Вычислить периоды всех 8 последовательностей и их внутрипериодные значения.
Построить регистр сдвига с обратной связью, реализующий соотношение из предыдущею задания.
Тема 4. Классификация шифров
4.1. Классификация шифров по типу преобразования
В качестве первичного признака, по которому производится классификация шифров, используется тип преобразования, осуществляемого с открытым текстом при шифровании. Если фрагменты открытого текста (отдельные буквы или группы букв) заменяются некоторыми их эквивалентами в шифртексте, то соответствующий шифр относится к классу шифров замены. Если буквы открытого текста при шифровании лишь меняются местами друг с другом, то мы имеем дело с шифром перестановки. С целью повышения надежности шифрования шифрованный текст, полученный применением некоторого шифра, может быть еще раз зашифрован с помощью другого шифра. Все возможные такие композиции различных шифров приводят к третьему классу шифров, которые обычно называют композиционными шифрами. Заметим, что композиционный шифр может не входить ни в класс шифров замены, ни в класс шифров перестановки. В результате получаем первый уровень классификации шифров (рис. 3).

Шифры замены



Шифры перестановки



Композиционные шифры


Рис. 3
4.2. Классификация шифров замены
Определим модель (А=(X,K,Y,E,D) произвольного шифра замены. Будем считать, что открытые и шифрованные тексты являются словами в алфавитах А и В соответственно: х(.а*, Y(B*, (A(=n, (B(=m. Здесь и далее С* обозначает множество слов конечной длины в алфавите С.
Перед зашифрованием открытый текст предварительно представляется в виде последовательности подслов, называемых шифрвеличинами. При зашифровании шифрвеличины заменяются некоторыми их эквивалентами в шифртексте, которые назовем шифробозначениями. Как шифрвеличины, так и шифробозначения представляют собой слова из А* и В* соответственно.
Пусть U = {u1,...,uN} – множество возможных шифрвеличин, V={v1,...,vM} – множество возможных шифробозначений. Эти множества должны быть такими, чтобы любые тексты x(X, y(Y можно было представить словами из
U*, V* соответственно. Требование однозначности расшифрования влечет неравенства N ( n, M ( m, M ( N.
Для определения правила зашифрования Еk(х) в общем случае нам понадобится ряд обозначений и понятие распределителя, который, по сути, и будет выбирать в каждом такте шифрования замену соответствующей шифрвеличине.
Поскольку М ( N , множество V можно представить в виде объединения непересекающихся непустых подмножеств V(i). Рассмотрим произвольное семейство, состоящее из r таких разбиений множества V:
r ( N ,
и соответствующее семейство биекций
(( : U(
для которых , i=1,,N.
Рассмотрим также произвольное отображение ( : К ( N > N*r, где Nr = {1, 2,..., r}, такое, что для любых k ( К, l ( N
j= 1,...,l. (1)
Назовем последовательность((k,l) распределителем, отвечающим данным значениям k ( К, l( N.
Теперь мы сможем определить правило зашифрования произвольного шифра замены. Пусть
х ( X, х = х1,...хl, x(U, i= 1,,l; k( К
и Тогда Еk(х) = у, где у = у1уl,
j=1,,l. (2)
В качестве уj можно выбрать любой элемент множества . Всякий раз при шифровании этот выбор можно производить случайно, например, с помощью некоторого рандомизатора типа игровой рулетки.
Если ключ зашифрования совпадает с ключом расшифрования: kз = kр, то такие шифры называют симметричными, если же kз ( kр – асимметричными.
В связи с указанным различием в использовании ключей сделаем еще один шаг в классификации (рис. 4).

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

для многозначных шифров замены:

Исторически известный шифр – пропорциональной замены представляет собой пример шифра многозначной замены, шифр гаммирования – пример шифра однозначной замены. Далее мы будем заниматься в основном изучением однозначных замен, получивших наибольшее практическое применение. Итак, далее М = N и , i = 1,,М .
Заметим, что правило зашифрования Еk естественно "рассматривается как" отображение, Еk :U* > V *.
В силу инъективности (по k) отображения Еk и того, что (U(=(V(, введенные в общем случае отображения (( являются биекциями (( :U ( V, определенными равенствами , i=1,,N, a=1,,r.
Число таких биекций не превосходит N!.
Для шифра однозначной замены определение правила зашифрования можно уточнить: в формуле (2) включение следует заменить равенством
j=1,,l. (2’)
Введем еще ряд определений.
Если для некоторого числа q ( N выполняются включения vi ( Вq, i=1,,N, то соответствующий шифр замены будем называть шифром равнозначной замены. В противном случае – шифром разнозначной замены (рис. 5).

Равнозначные замены



Разнозначные замены


Рис. 5
В подавляющем большинстве случаев используются шифры замены, для которых U ( Аp, для некоторого р ( N. При р=1 говорят о поточных шифрах замены, при р > 1 – о блочных шифрах замены (рис. 6).

Рис.6
Относительно деления шифров на поточные и блочные подробнее см. в Темах 5 и 6.
Следующее определение. В случае r = 1 шифр замены называют одноалфавитным шифром замены или шифром простой замены. В противном случае – многоалфавитным шифром замены (рис. 7).

Рис.7
Ограничиваясь наиболее важными классами шифров замены и исторически известными классами шифров перестановки, сведем результаты классификации в схему, изображенную на рис.8.

Рис. 8
Прокомментируем приведенную схему. Подчеркнем, что стрелки, выходящие из любого прямоугольника схемы, указывают лишь на наиболее значимые частные подклассы шифров. Пунктирные стрелки, ведущие из подклассов шифров перестановки, означают, что эти шифры можно рассматривать и как блочные шифры замены в соответствии с тем, что открытый текст делится при шифровании на блоки фиксированной длины, в каждом из которых производится некоторая перестановка букв. Одноалфавитные и многоалфавитные шифры могут быть как поточными, так и блочными. В то же время шифры гаммирования, образующие подкласс многоалфавитных шифров, относятся к поточным, а не к блочным шифрам. Кроме того, они являются симметричными, а не асимметричными шифрами.
Далее мы рассмотрим свойства большинства из указанных на схеме классов шифров.

4.3 Шифры перестановки
В историческом обзоре упоминались некоторые типы шифров перестановки. Среди них – шифр Сцитола, атбаш, поворотная решетка Кардано. В самом общем виде шифр перестановки определен в гл. 3. Ключом шифра является перестановка номеров букв открытого текста. Зависимость ключа от длины текста создает значительные неудобства в использовании шифра. В силу этого был предложен ряд частных шифров перестановок, которые можно применять для зашифрования текстов любой длины.
4.3.1. Маршрутные перестановки
Широкое применение получили так называемые маршрутные перестановки, основанные на некоторой геометрической фигуре. Отрезок открытого текста записывается в такую фигуру по некоторой траектории. Шифрованным текстом является последовательность, полученная при выписывании текста по другой траектории. Например, можно записывать сообщение в прямоугольную таблицу, выбрав такой маршрут: будем двигаться по горизонтали, начиная с левого верхнего угла, поочередно слева направо и справа налево. Списывать же сообщение будем по другому маршруту: по вертикалям, начиная с верхнего правого угла и двигаясь поочередно сверху вниз и снизу вверх.
Пример (маршрутной перестановки)
Зашифруем указанным выше способом фразу пример маршрутной перестановки, используя прямоугольную таблицу размером 4х7:
п

р

и

м

е

р

м


н

т

у

р

ш

р

а


о

й

п

е

р

е

с


и

к

в

о

н

а

т


Зашифрованная фраза выглядит следующим образом:
мастаеррешрноермиупвкйтрпнои
Обращение описанных шагов при расшифровании не представляет труда.
Широкое распространение получила разновидность маршрутной перестановки, называемая вертикальной перестановкой. В этой системе также используется прямоугольная таблица, в которую сообщение записывается обычным образом (по строкам слева направо). Выписывается же сообщение по вертикалям (сверху вниз), при этом столбцы выбираются в порядке, определяемом числовым ключом.
Пример (вертикальной перестановки)
Зашифруем фразу вот пример шифра вертикальной перестановки, используя прямоугольник размером 6 х 7 и числовой ключ (5,1,4,7,2,6,3).

5 1 4 7 2 6 3
в

о

т

п

р

и

м


е

р

ш

и

ф

р

а


в

е

р

т

и

к

а


л

ь

н

о

й

п

е


р

е

с

т

а

н

о


в

к

и










Отметим, что нецелесообразно заполнять последнюю строку прямоугольника "нерабочими" буквами, так как это дало бы противнику, получившему в свое распоряжение данную криптограмму, сведения о длине числового ключа. В самом деле, в этом случае длину ключа следовало бы искать среди делителей длины сообщения.
Теперь, выписывая буквы по столбцам в порядке, указанном числовым ключом, получим такую криптограмму:
ореьекрфийамааеотшрнсивевлрвиркпнпитот
При расшифровании, в первую очередь, надо определить число длинных столбцов, то есть число букв в последней строке прямоугольника. Для этого нужно разделить число букв в сообщении на длину числового ключа. Ясно, что остаток от деления и будет искомым числом. Когда это число определено, буквы криптограммы можно водворить на их собственные места, и сообщение будет прочитано естественным образом.
В нашем примере 38=7(5+3, поэтому в заполненной таблице имеется 3 длинных и 4 коротких столбца.
Более сложные маршрутные перестановки могут использовать другие геометрические фигуры и более "хитрые" маршруты, как, например, при обходе шахматной доски "ходом коня", пути в некотором лабиринте и т.п. Возможные варианты зависят от фантазии составителя системы и, конечно, естественного требования простоты ее использования.
4.3.2. Элементы криптоанализа шифров перестановки
Укажем сначала основные идеи, используемые при вскрытии вертикальных перестановок.
Заметим, что буквы каждого столбца заполненного прямоугольника выписываются в криптограмму подряд, то есть криптограмма разбивается на отрезки, являющиеся столбцами таблицы. Поэтому при дешифровании следует попытаться соединить две группы последовательных букв криптограммы так, чтобы они образовывали хорошие ("читаемые") с точки зрения обычного текста комбинации. Для этого естественно использовать наиболее частые биграммы открытого текста, которые можно составить из букв рассматриваемого шифрованного текста. Если для первой пробы выбрано, скажем, сочетание СТ (самая частая биграмма русского языка), то мы можем по очереди приписывать к каждой букве С криптограммы каждую букву Т из нее. При этом несколько букв, стоящих до и после данной буквы С, и несколько букв, стоящих до и после данной буквы Т, соединяются в пары, то есть получаются два столбца букв, записанные рядом:
С



Т


I П
Конечно, мы не знаем длины столбцов, но некоторые ограничения на них можно получить, используя положение конкретных букв. Так, столбцы должны иметь одинаковые длины или первый столбец может быть длиннее второго на одну букву, и тогда эта буква – последняя буква сообщения.
Если приписываемые друг к другу буквы разделены, скажем, только двумя буквами, то, как легко видеть, мы можем составить в соседних столбцах не более трех пар, и длина каждого столбца не превышает четырех. Кроме того, ограничением может послужить появление запретной биграммы (например, гласная – мягкий знак).
Для выбранного сочетания СТ получается по одной паре столбцов для каждого конкретного выбора букв С и Т из криптограммы, и из них целесообразно отобрать ту пару, которая содержит наиболее частые биграммы.
Заметим, что при автоматизации этого процесса можно приписать каждой биграмме вес, равный частоте ее появления в открытом тексте. Тогда целесообразно отобрать ту пару столбцов, которая имеет наибольший вес. Кстати, появление одной биграммы с низкой частотой может указать на то, что длину столбца надо ограничить.
Выбрав пару столбцов, мы аналогичным образом можем подобрать к ним третий (справа или слева) и т.д. Описанная процедура значительно упрощается при использовании вероятных слов, то есть слов, которые могут встретиться в тексте с большой вероятностью.
Рассмотрим также метод, применимый к любым шифрам перестановки. Допустим, что к двум или более сообщениям (или отрезкам сообщений) одинаковой длины применяется один и тот же шифр перестановки. Тогда очевидно, что буквы, которые находились на одинаковых местах в открытых текстах, окажутся на одинаковых местах и в шифрованных текстах.
Выпишем зашифрованные сообщения одно под другим так, что первые буквы всех сообщений оказываются в первом столбце, вторые – во втором и т.д. Если предположить, что две конкретные буквы в одном из сообщений идут одна за другой в открытом тексте, то буквы, стоящие на тех же местах в каждом из остальных сообщений, соединяются подобным же образом. Значит, они могут служить проверкой правильности первого предположения, подобно тому, как комбинации, которые дают два столбца в системе вертикальной перестановки, позволяют проверить, являются ли соседними две конкретные буквы из этих столбцов. К каждому из указанных двухбуквенных сочетаний можно добавить третью букву для образования триграммы и т.д. Если располагать не менее чем четырьмя сообщениями одинаковой длины, то можно с уверенностью гарантировать их вскрытие подобным образом.

4.4. Шифры замены
Мы будем рассматривать лишь однозначные замены, для которых правило зашифрования является обычной однозначной функцией. Одноалфавитные однозначные замены обычно называют шифрами простой замены.
4.4.1. Поточные шифры простой замены
Наибольшее распространение получили поточные шифры простой замены, множества шифрвеличин и шифробозначений которых совпадают с алфавитом открытого текста. Как указывалось в главе 2, ключом такого шифра является подстановка k на множестве А, верхняя строка которой представляет собой естественную последовательность букв алфавита, а нижняя – систематически перемешанную или случайную последовательность букв из А.
Помимо явного задания (в виде двустрочной записи) ключ может быть задан некоторой формулой, как, например, для определяемого ниже шифра Цезаря (который иногда называют также сдвиговым шифром) и аффинного шифра. При использовании этих шифров буквы алфавита А удобно отождествлять с их порядковыми номерами, так что, например, для латинского алфавита
а(0, b(1,..., z(25.
Шифр Цезаря
K=Z26.
Для x=(x1,..,xl), y=(y1,...,yl),
k ( К полагаем
у = Еk(х) =(x1 +k,..., xl +k),
х = Dk(у) = (у1 + (26 – k),..., уl + (26 – k)),
где + и – операции кольца вычетов Z26.
Аффинный шифр
K=Z*26 x Z26. Для k=((,() (K, a( 0,
x=(x1,..,xl), y=(y1,...,yl), полагаем
у = Еk(х) =(((x1 +(,...,((xl +(),
х = Dk(у) =((у1 + (26 – ())(( -1,..., (уl + (26 – ())(( -1),
где + и – операции кольца Z , а ( -1 – элемент из мультипликативной группы Z*26 , обратный к а.

Пример
Зашифруем слово CRYPTOGRAPHY с помощью аффинного шифра, полагая k=(3,5). Данный ключ индуцирует следующую подстановку на Z :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
5 8 11 14 17 20 23 0 3 6 9 12 15 18 21 24 1 4 7 10 13 16 19 22 25 2
Если декодировать числа в буквы, то получим следующее соответствие для букв:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
F I L O R U X A D G J M P S V Y B E H K N Q T W Z C
Слову CRYPTOGRAPHY соответствует числовая последовательность х=(2,17,24,15,19,14,9,17,0,15,7,24). Зашифровать открытый текст мы можем двумя способами. Во-первых, можно воспользоваться полученной подстановкой, заменяя каждую букву слова (найденную в верхней строке) ее образом в нижней строке: LEZYKVXEFYAZ. Во-вторых, можно вычислить значение функции зашифрования Еk(х), исходя из ее определения:
у= Еk(х)=(3(2+5, 3(17+5, 3(24+5, 3(15+5, 3(19+5, 3(14+5, 3(9+5, 3(17+5, 3(0+5, 3(15+5, 3(7+5, 3(24+5)=(11,4,25,24,10,21,23,4,5,24,0,25).
В буквенном эквиваленте у совпадает с полученным ранее шифрованным текстом.
Для расшифрования у следует вычислить 3-1 в группе Z*26. Очевидно, что 3-1 =9. Теперь расшифруем у в соответствии с определением правила расшифрования:
х = Dk(у) =((11+21)9, (4+21)9, (25+21)9, (24+21)9, (10+21)(9, (21+21)(9, (23+21)( 9, (4+21)( 9,(5+21)( 9, (24 + 21)9, (0 + 21)9, (25 + 21)9)= =(2,17,24,15,19,14,6,17,0,15,7,24).
Здесь мы воспользовались определением операций сложения и умножения в кольце Z26, заменяя результат обычных целочисленных вычислений остатком от деления на 26.
В связи с рассмотрением аффинного шифра полезно напомнить один хорошо известный алгебраический результат.
Теорема. Отображение f : Zn> Zn определяемое для фиксированных a,b(Zn формулой f(x) = а x + b(mod n), является биективным тогда и только тогда, когда (а,п)=1.
До сих пор мы предполагали, что шифробозначениями являются отдельные знаки алфавита. Однако это вовсе не обязательное условие. Как отмечалось выше, имеются шифры равнозначной замены и шифры разнозначной замены. В первом случае все шифробозначения имеют одинаковые значности, например один, два и т. д. Во втором – разные значности, например, некоторые шифробозначения могут быть отдельными знаками, другие – состоять из пары или большего числа знаков. По соображениям экономии и скорости шифрования значность шифробозначений не должна быть большой. В большинстве известных примеров разнозначных шифров значность шифробозначений не превосходит двух. Приведем один из таких примеров.
Пример (шифра простой неравнозначной замены)
Рассматривается прямоугольник размером 4 х 7, в который записан систематически перемешанный английский алфавит (расширенный символами "." и знаком раздела "/"), построенный на основе ключевого слова INCITATUS:
Шифры замены
I

N

С

Т

А

U

S


0

1

86

3

5

94

6


В

D

Е

F

G

Н

J


80

83

2

89

91

95

98


К

L

М

0

Р

Q

R


81

84

87

4

92

96

7


V

W

X

Y

Z

.

/


82

85

88

90

93

97

99


Нумерация букв алфавита произведена по столбцам (сверху вниз), при этом восемь самых частых букв (A,E,I,N,0,R,S,T) занумерованы числами от 0 до 7, а остальные – двузначными числами от 80 до 99. Такую таблицу легко запомнить. Работать же удобнее с эквивалентной таблицей:
0 1 2 3 4 5 6 7 8 9

I

N

Е

Т

О

A

S

R

-

-


8
В

К

V

D

L

W

С

M

X

F


9
Y

G

Р

Z

U

H

Q

.

J

/


При зашифровании открытый текст записывается со знаком пробела между словами. Точка, встретившаяся в тексте, считается отдельным словом. После этого производится замена шифрвеличин на шифробозначения согласно таблице, при этом цифровые данные не изменяются.
4.4.2. Криптоанализ поточного шифра простой замены
Рассмотрим сначала простейший случай – однобуквенной замены.
Любой метод вскрытия шифра простой однобуквенной замены основан на том обстоятельстве, что с точностью до переобозначений частотные характеристики т-грамм шифртекста и открытого текста одинаковы. При этом существенно используются априорные частотные характеристики предполагаемого открытого текста, получаемые с учетом "характера переписки". Такие характеристики являются более "рельефными" для литературных текстов и менее "рельефными" для формализованных электронных текстов. Чем менее рельефно распределение знаков текста, тем сложнее задача вскрытия шифра простой замены. Для открытых текстов с "почти равномерным" распределением знаков эта задача становится практически не решаемой. Это следует учитывать и не питать иллюзий о простоте вскрытия простой замены, о которой часто упоминается в популярных книгах по защите информации. Методы "рандомизации" или "сжатия" открытых текстов, например, с использованием компьютерных архиваторов значительно усложняют задачу вскрытия шифра простой замены.
Как будет ясно из дальнейшего, рельефность диаграммы текста тесно связана с такой его важной теоретико-информационной характеристикой, как избыточность. Далее мы будем решать задачу вскрытия простой замены лишь при условии, что предполагаемые открытые тексты – это литературные тексты с "приличной" избыточностью. Кроме того, мы будем считать, что при дешифровании мы располагаем достаточно большим числом знаков шифртекста, чтобы опираться не на "фокусы", использованные, например, в известных произведениях Э. А. По и А. Конан Дойля, а в большей степени на "статистику".
Алгоритм вскрытия простой замены по тексту криптограммы достаточно сложно формализовать. При любой попытке формализации теряется какой-нибудь важный нюанс. Поэтому мы укажем лишь основные идеи, лежащие в основе такого алгоритма. Обычно выделяют следующие этапы алгоритма:
Алгоритм 1
1. Подсчет частот встречаемости шифробозначений, а также некоторых их сочетаний, например биграмм и триграмм подряд идущих знаков.
2. Выявление шифробозначений, заменяющих гласные и согласные буквы.
3. Выдвижение гипотез о значениях шифробозначений и их проверка. Восстановление истинного значения шифробозначений.
Сделаем ряд замечаний и уточнений. Если длина текста достаточно велика, то найденные на этапе I частоты окажутся близкими к табулированным значениям частот знаков (соответственно – биграмм или триграмм). Проведенная на этом этапе работа служит основанием для выдвижения гипотез о значениях шифрвеличин, соответствующих данным шифробозначениям. При этом учитывается, что каждая буква имеет группу предпочтительных связей, которые составляют ее наиболее характерную особенность. Как правило, такие гипотезы подтверждаются не полностью. Хорошим критерием при этом является "читаемость" восстанавливаемого открытого текста. Выделение шифробозначений, отвечающих гласным и согласным, основано на характерных свойствах этих букв. Добавим к ним следующие соображения (относимые к большинству европейских языков). Если шифробозначение часто встречается, равномерно располагается по шифртексту, в отдельных местах чередуется через 1, 2 или 3 знака, сочетается со средними и редкими (по частоте) шифробозначениями, то это дает основания полагать, что такое шифробозначение скрывает гласную букву. Удвоение гласных в открытом тексте происходит реже, чем согласных. Если некоторое шифробозначение признано гласной, то буква, часто сочетающаяся с ней, скорее всего согласная. В открытом тексте чрезвычайно редко встречаются три и более подряд идущие гласные. Четыре и более подряд идущие согласные также редки. Важно учитывать также процентное соотношение чисел гласных и согласных в открытом тексте.
При проверке гипотез о значениях шифробозначений полезен поиск в шифртексте слов с характерной структурой, которые часто встречаются в открытом тексте. Для русского языка – это, например, слова сколько, которое, что и т. п. Для английского языка – слова every, that, look, the и т.п. Такие слова выделяются в шифртексте посредством интервалов между повторяющимися частыми буквами, характерными сочетаниями гласных и согласных.
Если с помощью приведенных соображений произведено несколько идентификаций шифробозначений, то дальнейшая работа по вскрытию текста криптограммы не представляет особого труда.
Задача дешифрования еще более упрощается, если известно, что использовался сдвиговый или аффинный шифр. Так, для аффинного шифра бывает достаточно идентифицировать лишь пару шифробозначений с тем, чтобы полностью восстановить открытый текст.
Из наших рассмотрений становится понятным, что наиболее трудно формализуемым фрагментом алгоритма 1 является проверка выдвигаемых гипотез о значениях шифробозначений. Трудность состоит в формулировке критерия, подтверждающего или отвергающего ту или иную гипотезу. Приведем эвристический алгоритм дешифрования.
Мерой близости служит следующая "целевая функция" f(t), связывающая матрицы ((t) и В:
(1)
Будем исходить из того естественного предположения, что если у – данная криптограмма и Dk – правило расшифрования на ключе k данного шифра простой замены, то для истинного ключа ku значение

должно быть минимальным.
Идея основного шага алгоритма состоит в том, чтобы исходя из некоторого первичного "приближения" k для ключа ku, основанного, например, на диаграмме частот букв, немного его изменять неким "разумным" способом, уменьшая значение целевой функции f(t).
Приведем теперь формальное описание алгоритма.
Алгоритм 2
1. Построить начальный вариант ключа k на основе сравнения частот знаков криптограммы и открытого текста.
2. Положить v = f(Dk(у)).
3. Положить k'= k.
4. Поменять местами в нижней строке подстановки k' некоторую пару букв, скажем а и (.
5. Положить v'=f(Dk((y)).
6. Если v' < v, то положить k = k', v'=v и перейти к 4.
7. Перейти к шагу 3.
Алгоритм заканчивается, когда условие v'Переход на шаге 4 от k к k', связанный с транспозицией пары символов, имеет под собой следующее основание. На шаге 5 вычисляется величина

где (1(t) – матрица, полученная из матрицы ((t) путем перестановки в ней столбцов с номерами а и (, а также строк с теми же номерами.
В силу отмеченного свойства на шаге 5 алгоритма не нужно проводить трудоемкую операцию вычисления матрицы биграмм (ij(Dk((y)) непосредственно по "расшифрованному" тексту Dk((y). Достаточно вычислить лишь матрицу ((Dk(у)), а на следующих шагах алгоритма производить в ней одноименные перестановки строк и столбцов.
Выбор транспозиции (a, () на шаге 4 можно производить, например, следующим естественным образом. Пусть s=(s1,s2,...,sn) – вектор, образованный буквами криптограммы, упорядоченными по убыванию частот. Тогда последовательность транспозиций можно выбрать такой:
(s1,s2), (s2,s3),,(sn-2,sn-1), (sn-1,sn),
·
(s1,s3), (s2,s4),,(sn-2,sn),

(s1,sn).
Алгоритм 2 является достаточно эффективным.
Отметим некоторые особенности вскрытия равнозначных и разнозначных шифров простой замены.
Если шифр простой замены не является однобуквенным, то при вскрытии криптограммы необходимо попытаться восстановить множество шифрвеличин. Если эта задача решена, то дальнейшая работа ничем не отличается от той, которую мы проделали для шифра однобуквенной простой замены.
Заметим, что в литературных открытых текстах часто встречаются повторения фрагментов, состоящих из трех и большего числа букв. При применении к тексту шифра простой замены соответствующие повторения остаются и в шифрованном тексте. Если в криптограмме встретилось несколько повторений, то их успешно можно использовать для определения значности шифробозначений.
Очевидно, что для равнозначного шифра простой замены длины повторений и расстояния между ними должны быть кратны значности шифра. Находя наибольший общий делитель этих чисел, мы с большой вероятностью получаем искомую значность. Некоторые сомнения в правильности определения значности помогает устранить подсчет общего числа шифробозначений. Если это число близко к ожидаемому числу шифробозначений (скажем, к числу букв алфавита), и диаграмма их повторяемости близка к табличной, то, скорее всего, значность определена верно.
Для разнозначного шифра дело обстоит несколько сложнее. В этом случае числа, равные длинам повторений и расстояниям между ними, скорее всего, взаимно просты в совокупности. Однако и для таких шифров задача определения множества шифробозначений не безнадежна. В этом помогает естественное ограничение, которым обычно пользуются при составлении таблицы шифробозначений. Оно связано с требованием однозначности расшифрования и заключается в том, чтобы ни одно из шифробозначений не являлось началом никакого другого шифробозначения (в теории кодирования в подобной ситуации говорят о префиксном коде). Если значность шифробозначений колеблется в незначительных пределах, то перебор сравнительно небольшого числа вариантов приводит (с учетом ограничения) к правильному определению большинства шифробозначений. Некоторые затруднения могут возникать лишь при определении значности шифробозначений, редко встречающихся в тексте. Как правило, эти проблемы решаются вместе с попытками прочтения тех участков криптограммы, для которых восстановленная значность шифробозначений не вызывает сомнений.
Увеличение значности шифробозначений делает шифр неэкономным, поэтому получили распространение шифры, использующие одно- и двузначные шифробозначения, подобные рассмотренному выше в примере цифровому шифру. Понятно, что для таких шифров наибольшую повторяемость в шифртексте имеют цифры, с которых начинаются двузначные шифробозначения. Выдвигая гипотезы о таких цифрах и отмечая в шифртексте соответствующие двузначные шифробозначения, можно восстановить и однозначные шифробозначения, оказавшиеся в шифртексте между некоторыми двузначными шифробозначениями. Дальнейшая работа по вскрытию открытого текста для разнозначного шифра ничем не отличается от уже знакомой нам работы для однобуквенной простой замены.
4.4.3. Блочные шифры простой замены
Как мы убедились, задача вскрытия простой однобуквенной замены является не слишком сложной. Основная слабость такого шифра состоит в том, что избыточность открытого текста, полностью проникающая в шифртекст, делает (за счет малого числа шифрвеличин, которыми являются буквы алфавита) очень рельефной диаграмму повторяемости знаков криптограммы. Это побудило в свое время криптографов к устранению этой слабости за счет увеличения числа шифрвеличин. Интуитивно понятно, что чем больше разница между числом шифрвеличин и числом букв алфавита, тем более равномерной должна стать диаграмма повторяемости знаков шифртекста. Первым естественным шагом в этом направлении стало увеличение значности шифрвеличин, то есть использование блочных шифров простой замены.
Простейший блочный шифр оперирует с биграммными шифрвеличинами. Одними из первых таких шифров были биграммные шифры Порта и Плейфера. Приведем описание шифра Плейфера, нашедшего широкое применение в начале ХХ века.
Основой шифра Плейфера является прямоугольная таблица, в которую записан систематически перемешанный алфавит (для удобства запоминания). Правило зашифрования состоит в следующем.
Буквы биграммы (i, j), i ( j (являющейся шифрвеличиной) находятся в данной таблице. При зашифровании биграмма (i, j) заменяется биграммой (k,l), где k и l определяются в соответствии с правилами 1-3.
1. Если i и j не лежат в одной строке или одном столбце, то их позиции образуют противоположные вершины прямоугольника. Тогда k и l – другая пара вершин, причем k – вершина, лежащая в той же строке, что и i.
2. Если i и j лежат в одной строке, то k и l – буквы той же строки, расположенные непосредственно справа от i и j соответственно. При этом если одна из букв – последняя в строке, то считается, что ее "правым соседом" является первая буква той же строки.
3. Аналогично, если i и j лежат в одном столбце, то они заменяются их "соседями снизу".
При зашифровании открытый текст представляется в виде последовательности биграмм. Если текст имеет нечетную длину или содержит биграмму, состоящую из одинаковых букв, то в него добавляются "пустышки" следующим образом. "Пустышкой" является некоторая редкая для данного типа текста буква (или знак), которая вставляется между одинаковыми буквами биграммы или добавляется в текст для того, чтобы его длина стала четной. Такие изменения открытoго текста, как правило, не мешают при расшифровании. Проиллюстрируем сказанное следующим примером.
Пример (шифра Плейфера)
Пусть шифр использует прямоугольник размером 5 х 6, в который записан систематически перемешанный русский 30-буквенный алфавит на основе ключевого слова командир:
к

о
м

а

н

д


и

р

б

в

г

е


ж

з

л

п

с

т


у

ф

х

ц

ч

ш


щ

ь

ы

э

ю

я


Зашифруем фразу "автором метода является Уитстон". В качестве "пустышки" будем использовать редкую букву ф. Представим фразу в виде последовательности биграмм:
АВ ТО РО МФ ME ТО ДА ЯВ ЛЯ ЕТ СЯ УИ ТС ТО НФ
(Нам пришлось дважды вставить "пустышку".)
В соответствии со сформулированными правилами получаем шифртекст:
ВП ЗД ЗР ОХ ДБ ЗД КН ЭЕ ТЫ ТШ ШД ЩЖ ЖТ ЗД ОЧ или без пробелов
впздзрохдбздкнэетытшшдщжжтздоч
Криптоанализ шифра Плейфера опирается на частотный анализ биграмм, триграмм и четырехграмм шифртекста и особенности замены шифрвеличин на шифробозначения, связанные с расположением алфавита в прямоугольнике. При этом существенную информацию о заменах дает знание того, что используется систематически перемешанный алфавит.
Шифрвеличинами для другого широко известного блочного шифра – шифра Хилла (названного по имени Лестора Хилла) – являются п-граммы открытого текста (п > 1), представленного некоторым числовым кодом (так что алфавитом открытого текста служит кольцо вычетов по модулю мощности алфавита Zm).
Правило зашифрования представляет собой линейное преобразование кольца Zm : если х=(х1,...,хn) – n-грамма открытого текста, k =(kij) – некоторая обратимая матрица над Zm (ключ) и y=(y1,...,yn) – n-грамма шифртекста, то у=Еk(х) = k х. Соответственно х =Dk (у) = k -1 у,
где k -1 – матрица, обратная к матрице k.
Подчеркнем, что матричные операции здесь производятся над кольцом Zm.
Проиллюстрируем введенное определение примером.
Пример (шифра Хилла)
Положим п = 4 и зашифруем фразу:
без труда не вынешь рыбку из пруда
записанную в 30-буквенном русском алфавите. Условимся о числовом кодировании букв в соответствии с таблицей:
А

Б

В

Г

Д

Е

Ж

З

И

К

Л

М

Н

О

П


1

18

11

6

0

15

20

5

21

23

13

4

16

8

25



Р

С

Т

У

Ф

X

Ц

Ч

Ш

Щ

Ь

Ы

Э

Ю

Я


24

10

19

26

12

2

28

7

17

22

3

29

27

14

9


В качестве ключа выберем матрицу


являющуюся обратимой над кольцом Z30. Несложно убедиться в том, что


Запишем открытый текст по столбцам матрицы Т :


и получим шифртекст в виде столбцов матрицы k Т:


Теперь осталось воспользоваться числовым кодом, чтобы выписать шифртекст в буквенном виде:
токцжишшеюыстщчрбвсцьцтржишш
Замечание. Из соображений удобства в применении получили широкое распространение шифры, для которых правила зашифрования и расшифрования идентичны. Такие шифры называются обратимыми. Шифр Хилла является обратимым в том и только том случае, когда k -1= k, или иначе: k2 = Е, где Е – единичная матрица. Матрица, удовлетворяющая этому свойству, называется инволютивной.
Из курса алгебры известен критерий обратимости квадратной матрицы над кольцом Zm.
Теорема. Квадратная матрица М над кольцом Zm обратима тогда и только тогда, когда ((М(,т)=1, то есть определитель (М( взаимно прост с т.
Заметим, что правило зашифрования ЕМ (с матрицей Мn(n) в шифрсистеме Хилла является обратимым линейным преобразованием n-мерного модуля
. Такая функция является лишь одним из примеров простого задания обратимого преобразования > , являющегося, очевидно, биекцией на . Любая же такая биекция потенциально может рассматриваться как правило зашифрования блочного шифра простой замены (если п – размер блока), выбираемого некоторым ключом. Поскольку число обратимых линейных преобразований модуля составляет (при n >2, m >2) лишь незначительную часть общего числа рассматриваемых биекций, то же самое можно сказать и о доле, которую составляют (при данном п) шифрсистемы Хилла в множестве возможных блочных шифров простой замены.
Естественным обобщением шифра Хилла является аффинный блочный шифр, правило зашифрования Е(А,b)(х) которого определяется формулой:
Е(А,b)(х)=х(А+ b.
При этом А является "обратимой п х п матрицей, а b – фиксированным п-мерным вектором над Zm.
Как и при рассмотрении предыдущих шифров, приведем некоторые соображения о криптоанализе аффинного блочного шифра и, в частности, шифра Хилла.
Увеличение значности шифрвеличин резко усложняет попытки вскрытия открытого текста по известному тексту криптограммы. Однако свойство линейности, присущее рассматриваемым шифрам, конечно, является их криптографической слабостью. Чтобы показать это, рассмотрим следующую криптоатаку на аффинный шифр.
Предположим, что известны п+1 пар блоков открытого текста и соответствующих им блоков шифртекста:
(х0,у0),,(хn,уn), хi, уi ( , полученных на одном ключе (A, b). Требуется этот ключ найти.
Для решения поставленной задачи положим:
x(i)=хi – x0, y(i)=yi – y0, i=1,,n.
Тогда x(i) и y(i) оказываются связанными линейным соотношением y(i)=х(i)А.
Аналогичное соотношение имеет место и для матриц

и :


из которого находим матрицу А в виде произведения
Наконец, вектор b находится, например, по формуле b = y0 х0А. Естественно, что такое решение корректно лишь в том случае, когда матрица
обратима.
Поскольку обращение матрицы и вычисление произведения матриц являются не слишком трудоемкими операциями, то таковой же является и поставленная задача.
Более детальное рассмотрение блочных шифров простой замены будет продолжено в Теме 6.
4.4.4. Многоалфавитные шифры замены
Напомним, что правило зашифрования многоалфавитного шифра однозначной замены определяется следующим образом. Пусть х=(х1,...,хn) – открытый текст, представленный последовательностью шифрвеличин хi (U, i=1,,n, и k – произвольный ключ. Тогда
Еk(х) = ((((х1),..., (n(хn)), (2)
где (i , i =1,, n – некоторые подстановки на множестве всех шифрвеличин, однозначно определяемые данным ключом. При этом здесь и далее мы ограничимся рассмотрением случая, когда множества шифрвеличин и шифробозначений совпадают друг с другом (U = V ).
На практике используются в основном поточные многоалфавитные шифры, среди которых выделяются два больших подкласса – шифры, реализуемые дисковыми шифраторами, и шифры гаммирования. В следующем подпункте мы остановимся на дисковых шифрах, а шифрам гаммирования, в силу их большой значимости, отведем отдельную главу.
4.4.5. Дисковые многоалфавитные шифры замены
Общая характеристика и принцип действия дискового шифратора были даны в Теме 2. Здесь мы рассмотрим правило зашифрования и некоторые свойства такого шифра.
Прежде всего, следует выписать преобразование символов алфавита (в качестве которого, как и ранее, будем рассматривать множество Zn={0,1,...,–1}), осуществляемое движущимся диском. Для этого рассмотрим два соседних угловых положения диска при его повороте (по часовой стрелке). Пусть в исходном положении диск реализует подстановку

Введем в рассмотрение подстановку


После поворота на угол 2(/n, диск реализует подстановку, представимую в виде произведения подстановок:


Теперь очевидно, что при повороте диска на угол 2m(/n, m=1,,n–1, диск будет реализовать подстановку T-m(X(Tm.
Рассмотрим теперь дисковый шифратор, состоящий из нескольких насаженных на общую ось дисков, так что символы с входной розетки, попадая на блок дисков, последовательно проходят перепайки каждого из дисков, попадая на контакты выходной розетки. Обычно при работе такого шифратора диски при шифровании очередного знака открытого текста сдвигаются (по определенному правилу) на некоторые угловые положения (кратные 2(/n). Схема движения дисков является ключевым элементом шифратора. Получим правило зашифрования текущего знака открытого текста такого шифратора.
Пусть в начальных угловых положениях рассматриваемые диски реализуют подстановки Х1,...,ХN из симметрической группы Sn (они также являются ключевыми элементами) и в данный такт шифрования данные диски находятся в соответствующих угловых положениях (1,...,(N, (i( 0,, п–1. Это означает, что i-й диск реализует подстановку Т -(i (Xi Т(i. Тогда очередная буква открытого текста x будет зашифрована в букву
у = Т -(1 (X1 Т(1 -(2 (X2 Т(2 -(3 ( Т(N-1 -(N (XN (х).
Формально определить правило зашифрования любого открытого текста для дискового шифратора чрезвычайно сложно (в связи с обилием различных ключевых элементов). Для поточных шифров, как правило, бывает достаточно знания правила зашифрования буквы текста.
Число простых замен, из которых "состоит" многоалфавитный шифр, реализуемый дисковым шифратором, может быть чрезвычайно большим. Чем больше это число, тем сложнее криптоанализ такого шифра. В связи с этим параметры дисковых схем (число дисков, реализуемые ими подстановки, схемы движения дисков и т. д.) должны быть тщательно продуманы.
Схемы токопрохождения электрических импульсов в дисковом шифраторе могут усложняться за счет введения "отражающего экрана", вместо выходной розетки. В результате этого импульс тока вторично проходит через блок дисков, только в противоположную сторону. Такая "обратимая" схема токопрохождения была использована в знаменитой "Энигме".
Криптоанализ дисковых шифраторов является весьма сложной задачей.

4.5. Шифры гаммирования
Напомним, что в основе рассматриваемых систем шифрования лежит метод "наложения" ключевой последовательности – гаммы – на открытый текст. "Наложение" заключается в позначном (побуквенном) сложении или вычитании по тому или иному модулю. Хотя мы уже отмечали выше, что данные шифрсистемы относятся к многоалфавитным системам замены, шифры гаммирования имеют целый ряд особенностей и заслуживают отдельного рассмотрения. В силу простоты своей технической реализации и высоких криптографических качеств эти шифры получили широкое распространение.
Исторически первый шифр гаммирования совпадал, по сути, с шифром Виженера, однако без использования самой таблицы Виженера. Заметим, что таблица Виженера представляет собой квадрат, каждая строка и каждый столбец которого – некоторая перестановка знаков данного алфавита. Произвольная такая таблица называется латинским квадратом. Идя по пути обобщения, введем понятие шифра табличного гаммирования.
4.5.1. Табличное гаммирование
Шифр табличного гаммирования в алфавите А={a1,...,an} определяется произвольным латинским квадратом L на А и способом получения последовательности букв из А, называемой гаммой шифра. Буква аi открытого текста под действием знака гаммы аj переходит в букву аk шифрованного текста, содержащуюся в j-й строке и i-м столбце квадрата L (подразумевается, что строки и столбцы в L занумерованы в соответствии с порядком следования букв в алфавите А).
С алгебраической точки зрения буква аk есть результат применения к буквам аi и аj квазигрупповой операции *, табличным заданием которой является латинский квадрат L: аk = аi * аj.
В случае шифра Виженера квазигруппа (А,*) является группой (Zn,+). При этом уравнение шифрования имеет вид
bi=(ai+(i)mod n, (1)
а {(i} представляет собой периодическую последовательность, образованную повторением некоторого ключеого слова.
Наряду со сложением используется и вычитание знаков гаммы. Соответствующие уравнения шифрования принимают вид
bi=(ai – (i )mod n (2)
или
bi=((i –ai)mod n. (3)
Шифры гаммирования с уравнениями шифрования (1) – (3) обычно называют шифрами модульного гаммирования.
Если в качестве квазигрупповой операции * на множестве 5-мерных двоичных векторов используется операция покоординатного сложения по модулю 2, то получаем шифр Вернама.
Шифры гаммирования замечательны тем, что при их применении для зашифрования и расшифрования требуется лишь один узел. В самом деле, знаки открытого текста находятся из тех же уравнений при взаимной замене аi на bi. Такие шифры обычно называют обратимыми (см. замечание после примера шифра Хилла).
4.5.2. О возможности восстановления вероятностей знаков гаммы
Криптоанализ произвольного шифра табличного гаммирования во многом схож с криптоанализом шифра модульного гаммирования. Рассмотрим основные идеи анализа на примере шифра с уравнением (1).
Занумеруем буквы алфавита А числами от 0 до п –1 и воспользуемся формальными моделями рассматриваемых последовательностей (см. гл. 2). Пусть рi, ri, и si, вероятности появления знака i в открытом тексте, гамме и в шифрованном тексте соответственно. Тогда задание вероятностных распределений на знаках открытого текста и гаммы (которые естественно считать независимыми) индуцирует распределение вероятностей знаков шифртекста по формуле:
(5)
в которой разность j-i берется по модулю п. (Достаточно заметить, что b = j <=> а = j – i, ( =i, и воспользоваться формулой полной вероятности.)
Из формулы (5) следует, что если ri = 1/п при всех i =0,, п -1, то и sj =1/п при всех j = 0,, п 1. Это означает, что при зашифровании открытого текста равновероятной гаммой получается шифртекст, вероятностные свойства которого не отличаются от самой равновероятной гаммы. Это обстоятельство не оставляет шансов криптоаналитику использовать диаграмму повторяемости букв открытого текста, поскольку при наложении гаммы эта информация как бы стирается. Поэтому на практике стремятся к тому, чтобы по своим вероятностным свойствам гамма была близка к случайной равновероятной последовательности.
Возникает естественный вопрос о том, можно ли при использовании неравновероятной гаммы восстановить ее вероятностные характеристики непосредственно по шифртексту и можно ли эту информацию использовать при криптоанализе шифра гаммирования.
Попытаемся сначала оценить вероятности ri непосредственно по шифртексту. При этом мы должны располагать достаточно точными приближениями распределений
р=(р0,...,рn-1), s=(s0,...,sn-1)
(получаемыми с помощью подсчета частот встречаемости знаков).
Рассмотрим соотношение (5) как систему линейных уравнений относительно неизвестных ri, i == 0,,п –1. Нетрудно заметить, что матрица рассматриваемой системы имеет вид


Такая матрица называется циркулянтом. В ней каждый столбец получается циклическим сдвигом предыдущего столбца. Известно, что определитель |Р| циркулянта равен произведению
f((0)f((1)f((n -1),
где {(0,,(n-1} – множество всех корней степени n из 1 (в поле комплексных чисел), причем
f(х) = р0 + pn -1 х + ... + р1 хn-1.
В том случае, когда (Р(( 0, вектор r однозначно определяется из соотношения
r =P -1 s. (6)
Приведем (без доказательства) формулу для Р -1:

(7)

где

Условие (Р(( 0 можно проверить непосредственно по данному распределению вероятностей букв открытого текста.
Пользуясь (6) и (7), можно вычислить приближение r' для r , подставляя вместо s в (6) вектор v = 1/l(v0,...,vn-1), где vi – число вхождений символа i в шифрованный текст (длиной l):
r' =1/l(P -1 v),
откуда

4.5.3. Восстановление текстов, зашифрованных неравновероятной гаммой
Пример (использования шифра модульного гаммирования)
Рассмотрим следующую постановку задачи. Пусть при использовании шифра модульного гаммирования в результате, например, некоторой неисправности гаммообразующего устройства, т.е. устройства, вырабатывающего гамму, в ней встречаются не все знаки. Предположим, далее, что гамма состоит лишь из знаков (1,...,(m, т < п, которые встречаются с вероятностями r(1,...,r(m, соответственно. Будем также предполагать, что исходный открытый текст является обычным литературным текстом. В этих условиях требуется дешифровать полученную криптограмму.
Заметим, что к подобной постановке задачи можно было прийти иначе. Выделив несколько знаков гаммы, имеющих достаточную суммарную вероятность, например 0.8, предположим, что лишь они использовались при шифровании. Это предположение может привести к потере истинного варианта при построении некоторого метода вскрытия. Вероятность потери можно оценить при этом стандартными методами статистики.
При решении поставленной задачи примем во внимание, что в i-м такте шифрованию подлежала одна из следующих букв открытого текста:
ti(1)=si – (1,..., ti(m)=si – (m, (8)
где si – буква шифртекста.
Поэтому знаки открытого текста следует искать в колонках таблицы, изображенной на рис. 9:

Рис.9
Отбирая по одному знаку из каждой колонки так, чтобы получился "читаемый" текст, мы получим возможность восстановить открытый текст.
Описанный метод относится к классу так называемых методов бесключевого чтения (когда открытый текст восстанавливается без предварительного определения ключа) и называется методом чтения в колонках.
Метод чтения в колонках можно усовершенствовать за счет упорядочения букв в колонках. В самом деле, в каждом такте возможные знаки открытого текста t(1)=s – (1,..., t(m)=s – (m имеют априорные вероятности рt(1),...,рt(m), которые считаются известными. В нашем случае имеется также дополнительная информация, а именно, известно, что произошло событие "si = s". При этом
p{si=s/ ti=t(k)}= r(k , k=1,,m.
Отсюда по формуле Байеса получаем

(9)

Теперь можно упорядочить вероятности (8) знаков открытого текста в каждой колонке таблицы в соответствии с убыванием вычисленных апостериорных вероятностей. Поступив таким образом, мы поместим наиболее вероятные знаки открытого текста в начало таблицы, чем облегчим чтение в колонках.
С ростом т чтение в колонках становится затруднительным, а при т=п и при условии, что при шифровании использовалась случайная равновероятная гамма, каждая колонка содержит все знаки алфавита, ни одному из которых нельзя отдать предпочтения. Поэтому в последовательности колонок можно прочитать любой текст, то-есть нет возможности получить информацию об истинном сообщении.
Пример (использования неисправности в реализации шифра Вернама)
Рассмотрим шифр гаммирования, определяемый уравнением (4), называемый шифром Вернама. Знаки открытого текста и знаки гаммы представляются при этом 5-мерными двоичными векторами.
В случае обрыва одного из "проводков", идущих от источника гаммы, последовательность знаков гаммы будет содержать лишь половину возможных своих значений. Соответствующая координата в любом 5-мерном векторе гаммы будет равна нулю. В случае обрыва двух или большего числа "проводков" векторы гаммы будут содержать два или большее число нулевых координат. Число возможных знаков гаммы будет сокращаться вдвое при каждом обрыве. Таким образом, подобная неисправность схемы приводит к постановке задачи, указанной в предыдущем пункте. В рассматриваемом случае подобную неисправность можно обнаружить по шифртексту.
Покажем, как это сделать при условии, что "исправная" гамма является случайной и равновероятной. Будем при этом рассматривать позначные модели открытого текста, гаммы и шифртекста, то есть считать, что они являются реализациями случайных независимых испытаний полиномиальных схем с соответствующими распределениями вероятностей р(А), r(A), s(A) на знаках открытого текста, гаммы и шифртекста. Естественно также условиться, что распределения р(А) и r(А) являются независимыми. При этом распределение s(A) определяется формулой
(10)
где х – знак открытого текста, ( – знак гаммы, у – знак шифртекста.
Итак, в нашем случае алфавитом открытого текста, шифрованного текста и гаммы является множество
А={(а1,а2,а3,а4,а5) : аi (Z2 , i=1,,5},
образующее абелеву группу относительно операции ( покоординатного сложения векторов по модулю 2. При обрыве, например, первого соединения возможные знаки гаммы образуют подмножество
В={(0, (2, (3, (4, (5) : (i (Z2 , i=2,,5},
являющееся подгруппой группы (А, (). Точно так же и при любых других обрывах множество знаков гаммы образует подгруппу В группы (А, ().
Разложим группу А = {а1,,аn} в левые смежные классы по подгруппе В :
А=В ((g2(B) ((((gr(B), (11)
где gi ( A, i=2,,r, – представители соответствующих смежных классов.
Теперь с использованием частотных свойств используемого кода (например, МТК-2 или др.), аналогичных частотам букв в открытом текcте, можно подсчитать значения вероятностей знаков смежных классов gi(B, i=1,,r, из разложения (11) по формуле

где a ( gi(B. Этот подсчет может быть проведен для любых комбинаций обрывов. Теперь остается определить частоты символов шифртекста и сравнить их с рассчитанными заранее эталонными диаграммами. Сравнение выявит характер неисправности, и задача восстановления открытого текста будет сведена к чтению в колонках.
Заметим, что вместо 5-мерных можно было рассматривать и n-мерные векторы, п > 5. Предложенный метод работает и в этом, более общем случае.
5.5.4. Повторное использование гаммы
Как и раньше, мы предполагаем, что алфавит А открытыx текстов, гаммы и шифртекстов представляет собой множество чисел Zn= {0,1,...,п–1} .
Пусть в распоряжении криптоаналитика оказались две криптограммы, полученные наложением одной и той же гаммы на два разных открытых текста:
S1=T1+Г(mod n), S2 = Т2 + Г(mod n),
где

Рассмотрим возможности криптоаналитика по восстановлению исходных открытых текстов.
Прежде всего, можно найти позначную разность
S = S1 – S2 = T1 – Т2 (mod n).
Пусть S = {si}, i=1,2 . Тогда поставленная задача сводится к попытке подобрать пару открытых текстов, разность которых совпадает с известной последовательностью S . Будем в связи с этим говорить о разложении S на два составляющих открытых текста. В случае, когда данные тексты являются нормативными текстами, например, на русском, английском или другом языке, для решения последней задачи используется ряд подходов. Интуитивно понятно, что при достаточной длине текстов маловероятна возможность множественного представления данной последовательности S в виде разности T1 – T2. Как правило, такое разложение бывает единственным.
Один из таких подходов (хорошо известных из истории криптографии) связан с использованием некоторого запаса слов или словоформ, часто встречающихся в открытых текстах. Это могут быть, например, стандарты переписки, частые k-граммы и т. п.
Предположим сначала, что одно из вероятных слов встретилось в начале первого сообщения:
вероятное слово
В таком случае можно вычислить начало второго сообщения:
T2 =T1 – S.
Если l > 5, легко определить, является ли начало T2 читаемым" или нет. В первом случае нужно попытаться прочить начало T2 по смыслу. Во втором случае нужно сдвинуть начало вероятного слова в T1, и проделать то же самое.
Если удалось развить T2 до m знаков (т> l), то можно вычислить и соответствующие m –1 знаки, используя
T1 =T2 + S,
и попытаться, в свою очередь, развить по смыслу T1.
Продолжая этот процесс далее, мы частично или полностью восстановим оба текста или убедимся в том, что опробуемого вероятного слова данные тексты не содержат. В последнем случае следует попытаться ту же процедуру проделать для следующего вероятного слова.
Может оказаться так, что при опробовании некоторого слова удается восстановить лишь часть каждого из текстов, а дальнейшее развитие их по смыслу бесперспективно. В таком случае следует продолжить работу с другим вероятным словом.
Конечно, данный метод далеко не всегда приводит к успеху. Но нельзя пренебрегать шансом, который он дает.
Пример
Возьмем два текста на английском языке, содержащих наиболее часто встречающуюся триграмму THE:
T1 = THE APPLE, T2 = TELL THEM,
и зашифруем их одной и той же гаммой Г = ONETWOTHRE. При этом будем пользоваться числовыми значениями букв согласно следующей таблице:
00

01

02

03

04

05

06

07

08

09

10

11

12


А

В

С

D

E

F

G

H

I

J

К

L

M



13

14

15

16

17

18

19

20

21

22

23

24

25


N

0

Р

Q

R

S

Т

U

V

W

X

Y

Z



В результате зашифрования получаем:

T1

19

07

04

00

15

15

11

04


T2

19

04

11

11

19

07

04

12


Г

14

13

04

19

22

14

19

07


S1

07

20

08

19

11

03

04

11


S2

07

17

15

04

15

21

23

19


S

00

03

19

15

22

08

07

18


Предположим теперь, что триграмма THE находится в начале T1, тогда можно вычислить начало T2:
T1= T2+S=

Т

Н

Е

А




19

07

04

00


T2= T1– S=
Т

Е

L

L




19

04

11

11


Дальнейшие попытки продолжить по смыслу T1 или T2 к успеху не приводят. Поэтому предположим, что T2 также содержит THE. С учетом полученного результата, мы получаем два варианта расположения триграммы THE в тексте T2. В первом из них триграмма THE расположена, начиная с пятой позиции, во втором – начиная с шестой позиции.
Рассмотрим первый вариант:
T2

19

04

11

11

19

07

04




Т

Е

L

L

Т

Н

Е


T1

19

07

04

00

15

15

11




Т

Н

Е

A

Р

Р

L


Теперь ясно, что T1 = THE APPLE, откуда получаем T2 = TELL THEM.
Идея другого способа разложения разности открытых текстов состоит в упорядочении возможных вариантов пар букв (ti, zi) по убыванию апостериорных вероятностей p(ti = v, z1 = v – u /si = и), и, v ( A, i = 1,2,... , построении для каждого i упорядоченных колонок, состоящих из таких пар, и попытке чтения (аналогичной изложенной выше) в колонках сразу двух открытых текстов. При этом (как и ранее) используются позначные модели рассматриваемых последовательностей и аналог формулы (9).
4.5.5. Криптоанализ шифра Виженера
Рассмотрим шифр модульного гаммирования с уравнением (1), для которого гамма является периодической последовательностью знаков алфавита. Как указывалось ранее, такая гамма обычно получалась периодическим повторением некоторого ключевого слова. Например, ключевое слово KEY дает гамму KEYKEYKEY... . Рассмотрим задачу вскрытия такого шифра по тексту одной криптограммы достаточной длины.
Пусть ( – длина ключевого слова. Обычно криптоанализ шифра Виженера проводится в два этапа. На первом этапе определяется число (, на втором этапе – само ключевое слово.
Для определения числа ( применяется так называемый тест Казиски, названный в честь Ф. Казиски, применившего его в 1863 г. Тест основан на простом наблюдении того, что два одинаковых отрезка открытого текста, отстоящих друг от друга на расстоянии, кратном (, будут одинаково зашифрованы. В силу этого в шифртексте ищутся повторения длины, не меньшей трех, и расстояния между ними. Обратим внимание на то, что случайно такие одинаковые отрезки могут появиться в тексте с достаточно малой вероятностью.
Пусть d1,d2,... – найденные расстояния между повторениями и d – наибольший общий делитель этих чисел. Тогда ( должно делить d. Чем больше повторений имеет текст, тем более вероятно, что ( совпадает с d. Для уточнения значения ( можно использовать так называемый индекс совпадения, введенный в практику У. Фридманом в 1920 г.
Для строки х = (х1,...,xm) длины т, составленной из букв алфавита А, индексом совпадения в х, обозначаемым Ic(х), будем называть вероятность того, что две случайно выбранные буквы из х совпадают.
Пусть А = {a1,...,аn}. Будем отождествлять буквы алфавита с числами, так что а1 ( 0,..., an-1( n 2, аn ( n 1.
Теорема. Индекс совпадения в х вычисляется по формуле

(14)

где fi – число вхождений буквы аi в х, i (Zn.
Пусть х – строка осмысленного текста. Допустим, как и ранее, что буквы в х появляются на любом месте текста с соответствующими вероятностями р0,,pn-1 независимо друг от друга, где рi – вероятность появления буквы i в осмысленном тексте, i(Zn. В такой модели открытого текста вероятность того, что две случайно выбранные буквы из х совпадают с i(Zn, равна рi2, следовательно,
(17)
Взяв за основу значения вероятностей рi, приведенные в Приложении 1 для открытых текстов, получим значения индексов совпадения для ряда европейских языков:
Таблица 6. Индексы совпадения европейских языков
Язык

Русский

Англ.

Франц.

Нем.

Итал.

Испан.


Ic(х)(

0,0529

0,0662

0,0778

0,0762

0,0738

0,0775



Предположим, что х – реализация независимых испытаний случайной величины, имеющей равномерное распределение на Zn. Тогда индекс совпадения вычисляется по формуле Ic(х)=1/n.
Вернемся к вопросу об определении числа (.
Пусть y1y2,,ym – данный шифртекст. Выпишем его с периодом (:
Y1
Y2



Y(


y1

y2

...

y(


y(+1

y(+2



y2(


y2(+1

y2(+2



y3(



и обозначим столбцы получившейся таблицы через Y1 ,Y2 ,,Y(.
Если ( – это истинная длина ключевого слова, то каждый столбец Yi , i(1,, ( , представляет собой участок открытого текста, зашифрованный простой заменой.
В силу сказанного выше (для английского языка) Ic(Yi)= 0,066 при любом i. С другой стороны, если ( отлично от длины ключевого слова, то столбцы Yi будут более "случайными", поскольку они являются результатом зашифрования фрагментов открытого текста некоторым многоалфавитным шифром. Тогда Ic(Yi) будет ближе (для английского языка) к числу 1/26=0,038.
Заметная разница значений Ic(х) для осмысленных открытых текстов и случайных последовательностей букв (для английского языка – 0,066 и 0,038, для русского языка – 0,053 и 0,030) позволяет в большинстве случаев установить точное значение ( .
Предположим, что на первом этапе мы нашли длину ключевого слова (. Рассмотрим теперь вопрос о нахождении самого ключевого слова. Для его нахождения можно использовать так называемый взаимный индекс совпадения.
Пусть х=(х1,...,хm),у=(у1,...,yl) – две строки букв алфавита А. Взаимным индексом совпадения в х и у, обозначаемым МIc(х,у), называется вероятность того, что случайно выбранная буква из х совпадает со случайно выбранной буквой из у.
Пусть fi – число вхождений буквы аi в х, gi – число вхождений буквы аi в y, i(Zn.
Теорема. Взаимный индекс совпадения в х и у вычисляется по формуле


(19)
Пусть k=(k1,...,k( ) – истинное ключевое слово. Попытаемся оценить индексы М1c(Yi, Yj).
Для этого напомним, что Ys является результатом зашифрования фрагмента открытого текста простой заменой букв алфавита (подстановкой) со сдвигом s. На основании этого получаем:

(20)
Заметим, что сумма в правой части последнего равенства зависит только от разности (si -sj)mod n, которую назовем относительным сдвигом Yi и Yj, поэтому Yi и Yj с относительными сдвигами s и п – s имеют одинаковые взаимные индексы совпадения. Приведем таблицу значений сумм (20) для английского языка:
Таблица 7. Взаимный индекс совпадения при сдвиге s
Сдвиг s

0

1

2

3

4

5

6

7

8

9

10

11

12

13


MIc(x,y)

0,066

0,039

0,032

0,034

0,044

0,033

0,036

0,039

0,034

0,034

0,038

0,045

0,039

0,043



Аналогичные таблицы можно получить и для других языков.
Обратим внимание на то, что ненулевые "сдвиги" дают взаимные индексы совпадения, изменяющиеся в пределах от 0,032 до 0,045, в то время как при нулевом сдвиге индекс М1с(х,у) близок к 0,066. Это наблюдение позволяет определить величины относительных сдвигов si – sj столбцов Yi и Yj .
Используя изложенный метод, мы сможем связать системой уравнений относительные сдвиги различных пар столбцов Yi и Yj .В результате останется 26 вариантов для ключевого слова, из которых можно выбрать наиболее предпочтительный вариант (если ключевое слово является осмысленным).
Следует отметить, что предложенный метод будет эффективным для не слишком больших значений (. Это объясняется тем, что для хороших приближений индексов совпадения требуются тексты достаточно большой длины.
Контрольные вопросы
Приведите пример шифра перестановки, который может рассматриваться и как блочный шифр замены.
Как определить по криптограмме, полученной с помощью шифра вертикальной перестановки, число коротких столбцов заполненного открытым текстом основного прямоугольника?
Какие свойства открытого текста используются при вскрытии шифра вертикальной перестановки?
Каким образом можно использовать вероятные слова для вскрытия ряда криптограмм, полученных на одном ключе шифра перестановки?
С какими примерами шифров замены и перестановки Вы познакомились в историческом обзоре?
Существуют ли шифры, не являющиеся ни шифрами замены, ни шифрами перестановки?
Приведите пример шифра многозначной замены.
Может ли блочный шифр быть шифром разнозначной замены?
Может ли шифр простой замены быть равнозначным, разнозначным, блочным шифром?
В каком случае шифр гаммирования является одноалфавитным шифром?
Каково максимальное число простых замен, из которых может состоять многоалфавитный шифр?
Можно ли рассматривать множество возможных открытых и шифрованных текстов как множество шифровеличин и шифрообозначений шифра замены?
Какие шифры называются шифрами простой замены?
Что является ключом шифра простой замены? Каково максимально возможное число ключей шифра простой замены?
Что более целесообразно для надежной защиты информации:
архивация открытого текста с последующим шифрованием или шифрование открытого текста с последующей архивацией?
Имеет ли шифр Плейфера эквивалентные ключи, то есть такие ключи, на которых любые открытые тексты шифруются одинаково? Сколько различных неэквивалентных ключей имеет шифр Плейфера?
Предположим, что матричный шифр Хилла используется для зашифрования открытого текста, представленного в виде двоичной последовательности. Сколько ключей имеет такой шифр?
В чем слабость шифра гаммирования с неравновероятной гаммой?
Является ли надежным шифрование литературного текста с помощью модульного гаммирования, использующего гамму, два знака которой имеют суммарную вероятность, совпадающую с суммарной вероятностью остальных знаков? Почему?
Почему наложение на открытый текст гаммы, представляющей собой периодическую последовательность небольшого периода, не дает надежной защиты?
Почему недопустимо использовать дважды одну и ту же гамму (даже случайную и равновероятную!) для зашифрования разных открытых текстов?
Почему в качестве гаммы нецелесообразно использовать текст художественного произведения? Можете ли Вы предложить метод вскрытия такого шифра?
Можно ли по шифртексту получить приближения для вероятностей знаков гаммы?
Назовите основные этапы работы по вскрытию шифра Виженера.
Каким образом рассчитывается индекс совпадения для реального языка?
Из каких простых замен «состоит» шифр гаммирования (как многоалфавитный шифр)?
Тема 5. Поточные шифры
5.1. Принципы построения поточных шифрсистем
В силу ряда естественных причин, связанных с простотой реализации и необходимостью достижения высоких скоростей шифрования, наибольшее распространение получили шифры, осуществляющие побуквенное зашифрование с помощью некоторого множества подстановочных преобразований алфавита открытых сообщений. Другими словами, речь идет об эндоморфных поточных многоалфавитных шифрах замены с множествами шифрвеличин и шифробозначений, совпадающими с алфавитом открытых сообщений. Далее рассматриваемые поточные шифры мы будем предполагать именно такими.
Для построения многоалфавитного поточного шифра замены необходимо указать его распределитель, определяющий порядок использования шифрующих преобразований, и сами эти преобразования, то есть простые замены, составляющие данный шифр замены. Применительно к рассматриваемому случаю правило зашифрования формулируется следующим образом.
Пусть А – алфавит открытых сообщений, совпадающий с множествами шифрвеличин и шифробозначений, {(а : А(А} – совокупность из r биекций множества А, х=а1,а2,аl – произвольный открытый текст, k(K – выбранный ключ зашифрования. Пусть
((k,l)=а1(k)...аl(k), (aj(k)(Nr, j=1,,l) (5.1)
является распределителем, отвечающим данным значениям k(K, l(N , где ( : К ( N > Nr. некоторое отображение в множество Nr = {1,2,. ..,r} . Тогда правило зашифрования определяется формулой Еk(х)=у, где y=b1b2 bl и (5.2)
Таким образом, задача построения рассматриваемого шифра сводится к выбору множества шифрующих преобразований {(а} и отображения (, задающего распределитель.
В соответствии со сказанным выше, поточная шифрсистема представляется в виде двух основных блоков, отвечающих за выработку распределителя и собственно зашифрование очередного знака открытого текста. Первый блок вырабатывает последовательность номеров шифрующих преобразований, то есть фактически управляет порядком процедуры шифрования. Поэтому этот блок называют управляющим блоком, а вырабатываемую им последовательность номеров преобразований – управляющей последовательностью (или управляющей гаммой).
Второй блок в соответствии со знаком управляющей последовательности реализует собственно алгоритм зашифрования текущего знака. В связи с этим этот блок называют шифрующим блоком.
Под номером преобразования следует понимать некий набор символов, достаточный для однозначной идентификации преобразования и удобный с точки зрения практической реализации шифра. Например, номером преобразования может быть двоичный вектор заданной длины.
Достаточно, чтобы в каждом такте шифрующий блок обеспечивал возможность зашифрования лишь текущего знака aj открытого текста в соответствии с (5.2). При этом совсем не обязательно строить целиком подстановочное преобразование aj(k) на всем алфавите А.
Обычно управляющая гамма представляет собой псевдослучайную последовательность, удовлетворяющую некоторой рекуррентной зависимости. В общем случае рекуррентная последовательность (на заданном множестве А) определяется формулой
x(i +m)=f(х((i),..., x(i + т -1)), i > 0,
в которой f : А m > А – некоторая функция от т переменных.
Для получения рекуррентных последовательностей используются различные датчики псевдослучайных чисел. Наиболее известным таким датчиком с хорошо изученными свойствами является линейный конгруэнтный генератор над конечным кольцом или полем. Закон его функционирования представляется в виде
х(i +1) = а х(i) +b, i > 0.
Обобщением линейного конгруэнтного генератора являются конгруэнтные генераторы, определяемые формулой вида
x(i+1)=f(x(i)), i > 0, (5.3)
в которой f : A > A – произвольное отображение, легко вычисляемое для любого аргумента. Достаточно полно исследованы свойства таких генераторов, задаваемых полиномиальными преобразованиями f .
Изучались также генераторы, определяемые неполиномиальной рекуррентной зависимостью. Примером является целочисленный генератор, основанный на ''методе середины квадратов", для которого вычисление х(i+1) с помощью (3) сводится к отбрасыванию определенного числа знаков из десятичной (или двоичной) записи числа х(i)2.
Исследования подобных, а также других генераторов, определяемых некими алгоритмическими правилами, показывают, что они уступают по своим (необходимым в криптографических приложениях) аналитическим и статистическим качествам рекуррентным последовательностям. Дело в том, что аналитическое представление преобразований позволяет проводить более глубокие исследования и строить последовательности с лучшими криптографическими качествами. В настоящее время большинство датчиков псевдослучайных чисел, в том числе реализованных в программных продуктах ведущих фирм, построены на основе регистров сдвига с линейными функциями обратной связи, или коротко – линейных регистров сдвига (ЛРС).
Вид алгоритмов, реализуемых шифрующими блоками поточных шифрсистем, может изменяться в широких пределах. При этом требования к свойствам шифрующего блока в значительной степени зависят от качества управляющей последовательности.
С целью усложнения задачи восстановления управляющей последовательности по виду применяемого шифрующего преобразования может быть использован способ построения шифрующего блока, при котором многим различным знакам управляющих последовательностей отвечают одинаковые шифрующие преобразования. В таком случае, даже если полностью известно шифрующее преобразование, криптоаналитик не сможет однозначно определить управляющую последовательность и тем самым упростить задачу нахождения ключей криптографического алгоритма.
Если множество шифрующих преобразований {(а} достаточно велико, то можно обеспечить стойкость шифрования даже при повторном использовании ключей. Для этого достаточно, чтобы в множестве {(а} содержались npeo6paзования, переводящие любую пару букв открытого текста в любую пару букв шифрованного текста. Тогда по паре текстов, зашифрованных на одном и том же ключе, нельзя получить информацию об открытых текстах, поскольку любой паре букв шифртекстов может соответствовать произвольная пара букв открытых текстов.
Следует отметить, что указанные качества шифрующего блока повышают криптографическую стойкость, но достигаются за счет избыточности числа простых замен, составляющих данный шифр замены. Действительно, если исключить возможность повторного использования ключей и обеспечить необходимые свойства управляющей последовательности, то можно ограничиться множеством из А подстановок {(а}, нижние строки которых образуют латинский квадрат. В этом случае мы приходим к введенному ранее шифру табличного гаммирования.
Сформулируем ряд требований, обычно предъявляем к блокам поточной шифрсистемы, нарушение которых приводит к появлению аналитических или статистических слабостей алгоритма шифрования, снижающих его стойкость.
Требования к управляющему блоку:
– период управляющей гаммы должен превышать максимально возможную длину открытых сообщений, подлежащих шифрованию;
– статистические свойства управляющей гаммы должны приближаться к свойствам случайной равновероятной последовательности;
– в управляющей гамме должны отсутствовать простые аналитические зависимости между близко расположенными знаками;
– криптографический алгоритм получения знаков управляющей гаммы должен обеспечивать высокую сложность определения секретного ключа.
Требование к шифрующему блоку:
– применение алгоритма шифрования должно носить универсальный характер и не зависеть от вида шифруемой информации.
Иногда выдвигается дополнительное требование:
– способ построения шифрующего блока должен обеспечивать криптографическую стойкость шифра при перекрытиях управляющей гаммы, в частности при повторном использовании ключей.
Заметим, что выполнение перечисленных требований является необходимым, но не достаточным условием криптографической стойкости поточного шифра.
Примеры поточных шифрсистем
Шифрсистема А5
А5 – шифрсистема гаммирования, применяемая для шифрования телефонных сеансов в европейской системе мобильной цифровой связи GSM (Group Special Mobile). В открытой печати криптосхема А5 официально не публиковалась. Британская телефонная компания передала всю техническую документацию Брэдфордскому университету. Через некоторое время детали о конструкции А5 стали просачиваться в печать и, в конце концов, появились в INTERNET. Описание алгоритма приведено в работе.
В системах GSM алгоритм А5 используется для защиты информации между абонентом и базовой станцией, так что фактически в сеансе связи двух абонентов шифрование происходит дважды. Это дает возможность использования атаки на основе известного открытого текста. Кроме того, следует отметить, что 64-битовый секретный сеансовый ключ (которым служит совокупность начальных заполнений ЛРС) генерируется с помощью другого алгоритма, исходя из "основного" (master) ключа, специфического для каждого пользователя, и открытого случайного 128-битового ключа, передаваемого в незащищенной форме с базовой станции абоненту. Тем самым успешное вскрытие одного или нескольких сеансовых ключей дает подходы к определению основного ключа пользователя.
Шифрсистема Гиффорда
Д. Гиффорд предложил схему поточного шифра, которая использовалась с 1984 по 1988 г. агентством Associated Press. Криптосхема генератора представляет 8-байтовый регистр сдвига с линейной функцией обратной связи f и нелинейной функцией выхода h. Ключом являются 64 бита начального заполнения регистра. Схема реализует шифр гаммирования.
В 1994 г. Кейном и Шерманом был предложен метод определения ключа данной криптосхемы, использующий память объема 218 бит и имеющий сложность 227 элементарных операций, что существенно меньше сложности тотального перебора всех 264 начальных состояний. Программа, реализующая данный метод на сети из 8 станций Sparс, находила ключ по одному шифрованному сообщению достаточной длины среднем за 4 часа.

5.3. Линейные регистры сдвига
Широкое распространение в криптографических приложениях линейных регистров сдвига над конечными полями и кольцами обусловлено целым рядом факторов. Среди них можно отметить:
– пользование только простейших операций сложения и умножения, аппаратно реализованных практически на всех вычислительных средствах;
– высокое быстродействие создаваемых на их основе криптографических алгоритмов;
– большое количество теоретических исследований свойств рекуррентных последовательностей (ЛРП), свидетельствующих об их удовлетворительных криптографических свойствах.
Введем ряд определений.
Последовательностью над полем Р будем называть любую функцию и:n0>Р, заданную на множестве целых неотрицательных чисел и принимающую значения в поле.
Последовательность и называют линейной рекуррентной последовательностью (ЛРП) порядка т>0 над полем Р, если существуют константы f0,...,fт -1 (P такие, что
u(i+m)=
ЛРП реализуется схемой линейного регистра сдвига.
В очередном такте работы регистра значения, содержащиеся в ячейках его накопителя, умножаются на соответствующие коэффициенты (fj) и суммируются, после чего происходит (левый) сдвиг информации в регистре, а в освободившуюся крайнюю ячейку записывается вычисленное значение суммы. Заметим при этом, что операции сложения и умножения выполняются в поле Р.
Равенство, выражающее зависимость между знаками линейной рекуррентной последовательности, называют законом рекурсии, многочлен
характеристическим многочленом ЛРП и, а вектор
и=(u(0),...,u(m – 1)) – начальным вектором ЛРП (или начальным заполнением ЛРС).
Характеристический многочлен ЛРП и, имеющий наименьшую степень, называется ее минимальным многочленом, а степень минимального многочлена – линейной сложностью ЛПР и.
Линейная сложность ЛРП определяет минимальную длину линейного регистра сдвига, реализующего данную последовательность.
Периодом последовательности и называется наименьшее натуральное число t, для которого существует натуральное число ( > 0 такое, что для всех i >0 справедливо равенство u((+i+t)=u(( +i).
Из вида закона рекурсии следует, что в случае, когда Р – конечное поле из q элементов, максимальное значение периода ЛРП порядка т равно qm –1. В самом деле, нулевой начальный вектор порождает последовательность, состоящую из одних нулей, а число различных заполнений регистра длины т равно qm.
Последовательности, имеющие максимально возможный период, получили название линейных рекуррентных последовательностей максимального периода или просто максимальныx рекуррентных последовательностей.
Значения периодов линейных рекуррентных последовательностей определяются свойствами их минимальных многочленов. В частности, для того чтобы линейная рекуррентная последовательность порядка т над полем из q элементов имела максимальный период, необходимо и достаточно, чтобы минимальный многочлен был примитивным многочленом. Так называется неприводимый многочлен, корень которого имеет в мультипликативной группе поля разложения порядок qm –1.
Несмотря на то, что имеется достаточно много критериев проверки неприводимости многочленов над конечными полями и методов их построения, доказать то, что заданный неприводимый многочлен примитивен, удается в исключительных случаях.
Для конечного поля из q элементов будем использовать стандартное обозначение GF(q) .
Утверждение 1.Если F(x) – неприводимый многочлен над полем GF(2) степени т, и 2m –1 – простое число, то F(x) – примитивный многочлен.
Общий подход к построению примитивных многочленов состоит в построении неприводимых многочленов и непосредственном вычислении их периодов. Проверка максимальности периода неприводимого многочлена может быть осуществлена с помощью следующего утверждения:
Утверждение 2. Неприводимый многочлен F(x) примитивен в том и только в том случае, когда для любого простого числа р , делящего qm – 1, многочлен не сравним с 1 по модулю многочлена F(x).
Построение примитивных многочленов представляет собой сложную задачу, решение которой даже в частных случаям сопряжено со значительными трудностями вычислительного характера. На практике используются таблицы неприводимых и примитивных многочленов над конечными полями.
Закон рекурсии дает удобный способ вычисления очередного знака ЛРП через предыдущие, но при изучении ее свойств более предпочтительной формой задания является формула общего члена последовательности, представляющая собой аналитическое выражение члена последовательности в виде функции от его номера. Рассмотрим этот способ представления на примере ЛРП над конечными полями с неприводимыми характеристическими многочленами.
Пусть P=GF(q) и Q – поле из q m элементов, являющееся расширением поля Р. Тогда функцией "след" из поля Q в поле Р называется отображение
вида
В силу свойств конечных полей справедливы равенства

означающие, что функция "след" является линейным отображением над полем Р.
лемма 1. Для любого ненулевого а ( Р и любого b( Р число решений уравнения равно qm-1.
Теорема 1. Пусть – неприводимый многочлен над
полем Р степени т, ( корень F(x) в поле Q. Тогда для ЛРП {u(i)} с характеристическим многочленом F(x) существует единственная константа а ( Р, такая, что
Пусть и – ЛРП максимального периода над полем Р и
v((1,,(k) число решений системы уравнений


то-есть число появлений мультиграммы (1,,(k на периоде последовательности и.
Утверждение 3. Пусть F(x) – примитивный многочлен степени т над полем Р и ( – корень F(x) в поле Q. Тогда любая ненулевая мультиграмма ((1,,(k) встречается на периоде ЛРП и ровно
v((1,,(k)=qm-k
раз, а число вхождений нулевой мультиграммы на единицу меньше.
Представленные результаты показывают, что линейные рекуррентные последовательности над полем позволяют обеспечить первые два из трех требований к псевдослучайным последовательностям, используемым при построении управляющих блоков поточных шифрсистем. За счет выбора закона рекурсии можно гарантировать достаточную величину периода получаемой псевдослучайной последовательности и хорошие статистические качества. В самом деле, ее период совпадает с числом всех ненулевых векторов длины, равной степени минимального многочлена ЛРП, и каждый из этих векторов встречается на периоде последовательности в точности один раз.
Вместе с тем аналитическое строение ЛРП оказывается очень простым. Для определения начального вектора по некоторому отрезку последовательности достаточно решить несложную систему линейных уравнений. Поэтому при использовании линейных регистров сдвига в криптографических приложениях необходимо предусматривать процедуры, повышающие сложность аналитического строения вырабатываемых ими рекуррентных последовательностей.
5.4. Алгоритм Берлекемпа-Месси
Основным параметром, характеризующим сложность аналитического строения псевдослучайной последовательности, является ее линейная сложность, то есть степень минимального многочлена последовательности. Фактически минимальный многочлен определяет закон рекурсии линейного регистра сдвига минимальной длины, с помощью которого может быть получена данная псевдослучайная последовательность.
Любая периодическая последовательность может рассматриваться как линейная рекуррентная последовательность. Поэтому для любой периодической последовательности существует некоторый линейный регистр сдвига, который ее вырабатывает. Если элементы, образующие период последовательности, выбираются случайно, то степень минимального многочлена такой последовательности близка к величине ее периода. Поэтому линейная сложность может рассматриваться как характеристика сложности аналитического строения псевдослучайной последовательности. Низкую линейную сложность имеют слабые в криптографическом отношении последовательности. Вместе с тем высокая линейная сложность не гарантирует отсутствия других недостатков. Например, для генерации последовательности, период которой имеет вид (0,0,,0,1), требуется линейный регистр, длина которого совпадает с длиной периода этой последовательности, однако ясно, что считать эту последовательность случайной нельзя.
Эффективным методом нахождения линейного регистра сдвига минимальной длины, генерирующего заданную последовательность, является алгоритм Берлекемпа-Месси.
Пусть Р – некоторое поле, е – единица поля Р. Обозначим через и=(u(0),...,u(l – 1)) начальный отрезок произвольной последовательности и элементов поля Р. Будем говорить, что многочлен

вырабатывает отрезок и, если
то-есть если данный отрезок последовательности является отрезком некоторой линейной рекуррентной последовательности с характеристическим многочленом G(x).
Алгоритм Берлекемпа-Месси строит многочлен G(x) наименьшей степени, вырабатывающий отрезок и. Приведем одну из многочисленных модификаций алгоритма со сложностью, оцениваемой величиной 6т2(1+о(1)) операций поля Р.
Определим операцию умножения последовательности на многочлен.
Для произвольного многочлена
и последовательности v положим H(x)v=w, где


Будем говорить, что многочлен G(x) степени т вырабатывает l ( т знаков последовательности и, если выполняется равенство

то есть если первые l т знаков последовательности v равны нулю, а следующий за ними отличен от нуля.
Для многочлена G(x)(P[x] степени т и последовательности и введем параметры lи(G) и kи(G) = lи(G) – т, где lи(G) – число знаков последовательности и, вырабатываемых многочленом G(x). Ясно, что kи(G) – максимальное число первых подряд идущих нулей в последовательности G(x)u (либо ().
Будем индуктивно строить последовательность многочленов G0(x), G1(x),... неубывающих степеней 0= т0 < т1 ( т2 (... .
Начальные условия: G0(x)=e, т0 =0.
Этап 1. Если
то полагаем
Если G1(x)и = 0, то есть если kи(G1) = (, то G1(x) – искомый минимальный многочлен ЛРП и. В противном случае строим G2(x).
Этап t+1. Пусть многочлены G0(x),...,Gt(x) уже построены, и степень degGj(x) многочлена Gj(x) равна тj, причем 0= т0 < т1 ( ( тt. Пусть выполняются соотношения




Определим число s = s(t) так, чтобы выполнялись условия тt = тt-1 = = тs+1 > тs (такое s найдется, так т1 > т0). Положим
если kt ( ks,

если kt > ks.
Если Gt+1(x)u = 0, то нужный многочлен построен. В противном случае строим Gt+2(x) .
Теорема 2. Если и – линейная рекуррентная последовательность над полем Р с минимальным многочленом F(x) степени т, то F(x)= Gr(x) для некоторого подходящего значения r ( 2т–1–k0.
5.5. Усложнение линейных рекуррентных последовательностей
Алгоритм Берлекемпа-Месси позволяет для каждой линейной рекуррентной последовательности построить вырабатывающий ее линейный регистр сдвига минимальной длины. Однако при создании стойких криптографических алгоритмов необходимо гарантировать определенную величину линейной сложности не для одной конкретной ЛРП, а для целого класса псевдослучайныx последовательностей, получаемых при различныx ключах. При этом, как правило, мощность класса рассматриваемых последовательностей бывает настолько велика, что применить алгоритм Берлекемпа-Месси к каждой последовательности не представляется возможным. Поэтому важной криптографической задачей является построение целых классов псевдослучайных последовательностей с высокой линейной сложностью.
Описанные выше свойства линейных регистров сдвига показывают, что, несмотря на достаточно большой период и хорошие статистические качества, линейные рекуррентные последовательности имеют очень простое строение. Поэтому в криптографических приложениях используют различные способы усложнения аналитического строения линейных рекуррент.

Фильтрующие генераторы
Первый способ заключается в применении к элементам линейной рекуррентной последовательности некоторой функции f (F(x) –характеристический многочлен, определяющий закон рекурсии ЛРС).
В литературе подобные узлы усложнения ЛРП получит название фильтрующих генераторов. Их результирующей последовательностью является нелинейно "фильтрованное" содержимое регистра сдвига. "Фильтрующая" функция f должна выбираться так, чтобы выходная последовательность имела распределение, близкое к равномерному распределению, и высокую линейную сложность.
Известно, что любая функция над конечным полем может быть задана некоторым полиномом. Поэтому при изучении фильтрующих генераторов достаточно рассмотреть только полиномиальные усложнения линейных рекуррент.
Пусть и – линейная рекуррентная последовательность над полем Р из q элементов с характеристическим многочленом F{x) степени т, и функция f(x1,...,xm) имеет вид:

Тогда выходная последовательность фильтрующего генератора определяется следующим равенством:


Рассмотрим случай, наиболее интересный с практической стороны, когда F(x) – примитивный многочлен степени т над полем Р. Поскольку, усложненная последовательность является суммой произведений некоторых линейных рекуррентных последовательностей, отличающихся друг от друга сдвигами, продемонстрируем методику изучения таких последовательностей на примере доказанной А.А.Нечаевым теоремы о произведении линейной рекуррентной последовательности на ее сдвиг.
Теорема 3. Пусть и – линейная рекуррентная последовательность над полем Р = GF(q) характеристики р с примитивным характеристическим многочленом F(x) cmeпени т, элементы которой задаются равенством
где ( – корень F(x) в поле GF(qт) из qт элементов, а(GF(qт). Тогда элементы последовательности v, задаваемой равенством
v(i)= u{i) u(i + k), i>0,
удовлетворяют соотношению


где если т=2(, s=(;
в остальных случаях.

Следствие. Если в условиях теоремы 0 7, то

где МS(x) – минимальный многочлен элемента над полем GF(q).
В общем случае описание строения минимального многочлена линейной рекуррентной последовательности удобно проводить, исходя из свойств его корней.
Для примитивного многочлена F(x) с корнем ( обозначим через F(t)(x) многочлен вида

где Wq(k) обозначает q-ичный вес числа k, то есть число ненулевых цифр в q-ичной записи числа k. Положим
Утверждение 4. Пусть и – линейная рекуррентная последовательность над полем GF(q) c примитивным характеристическим многочленом F(x) степени т, ( – корень F(x) в GF(qт). Тогда ранг последовательности v, полученной из последовательности и помощью функции f(x1,...,xm), degf(x)(x), причем многочлен F(x) является характеристическим многочленом последовательности v.
Таким образом, несмотря на то, что фильтрованную последовательность нельзя получить с помощью сдвигового регистра с линейной обратной связью той же длины, что и исходный регистр, ее всегда можно получить с помощью регистра большей длины.
Заметим, что степень многочлена F(t)(x) равна числу целочисленных
наборов (i0,...,im –1), таких, что 0

Данная величина является верхней оценкой линейной сложности класса выходных последовательностей фильтрующего генератоpa, полученных при различных начальных заполнения регистра сдвига. Задача получения нижних оценок ранга усложнений линейных рекуррент представляется существенно более сложной. В частности, даже если ограничиться классом последовательностей, полученных с помощью функций усложнения фиксированной степени нелинейности, то в этом классе будут содержаться рекурренты, линейная сложность которых меняется в диапазоне от т degF(х).
Таким образом, для получения псевдослучайных последовательностей с высоким уровнем линейной сложности функция усложнения фильтрующего генератора должна иметь достаточно высокую степень нелинейности.
Комбинирующие генераторы
Второе направление синтеза псевдослучайных последовательностей с высокой линейной сложностью связано с использованием в одной схеме нескольких линейных peгистров сдвига. Генератор псевдослучайных последовательностей, реализующий усложнение нескольких линейных рекуррент с помощью одной общей функции усложнения, получил название комбинирующего генератора.
Рассмотрим один частный случай комбинирующего генератора, когда функция усложнения f имеет степень нелинейности t, и ее представление свободно от квадратов:
(5.7)
Теорема 4. Пусть и1,...,иt ЛРП максимального периода с примитивными характеристическими многочленами F1(х),...,Ft(х) над полем GF(q) попарно взаимно простых степеней: ns= degFs(x), (ns, nj)=1 для s( j, s,j=1,,t.
Тогда для функции усложнения вида (7) линейная сложность последовательности v вида v(i)=f(u1(i),u2(i),,ut(i)), i( 0
равна (5.8)

где

Композиции линейных регистров сдвига
Рассмотрим еще один тип генераторов, представляющий собой композицию линейных регистров сдвига. Так называется схема, в которой выход одного из регистров подается на вход другого регистра.
Функционирование такой схемы описывается следующим образом. Пусть v – ЛРП, вырабатываемая первым регистром сдвига, закон рекурсии которого определяется характеристическим многочленом F(x).
Пусть задано начальное состояние второго регистра сдвига, закон рекурсии которого определяется характеристическим многочленом


Тогда выходная последовательность композиции регистров сдвига задается соотношением

Непосредственно из определения композиции регистров сдвига вытекает, что минимальный многочлен выходной последовательности делится на минимальный многочлен последовательности v и делит произведение F(x)(G(x).
Схемы с динамическим изменением закона рекурсии
Рассмотренные способы усложнения линейных рекуррент объединяет идея повышения линейной сложности исходных последовательностей за счет применения дополнительных функций усложнения. При этом законы функционирования регистров остаются неизменными.
Альтернативный способ усложнения ЛРП состоит в изменении закона рекурсии в процессе работы криптографического алгоритма. Привлекательным представляется использование нелинейной логики в цепи обратной связи регистровых преобразований. Однако общая теория подобных схем еще недостаточно разработана, в связи с чем трудно гарантировать необходимые свойства соответствующих последовательностей.
Один из путей построения подобных схем основан на динамическом изменении закона рекурсии линейного регистра сдвига.
Рассмотрим, например, вопрос о строении псевдослучайной последовательности, получаемой с помощью линейного регистра сдвига, закон функционирования которою меняется в зависимости от четности номера вырабатываемого знака.
Рассмотрим два многочлена А(х)=хт + (аjхj, В(х) =хт + ( bk хk степени т и последовательность v, удовлетворяющую условиям:


Ясно, что в четных тактах закон рекурсии последовательности v определяется характеристическим многочленом А(х), а в нечетных тактах – характеристическим многочленом В(х).
Образуем многочлены A(0)(x), A(1)(x), B(0)(x), B(1)(x) следующим образом:


Несложно проверить, что получаемая в результате последовательность v является линейной рекуррентной последовательностью с характеристическим многочленом
Н(x)=A(1)(x)B(1)(х) – A(0)(x)B(0)(x).
К классу операторов с динамическим изменением закона рекурсии относятся также линейные регистры сдвига с неравномерным движением информации. Так называются регистры, для которых число тактов работы до получения (i+1)-го знака выходной последовательности зависит либо от значения числа i, либо от состояния регистра в такте i. Получаемая в результате последовательность будет некоторой выборкой с переменным шагом из исходной ЛРП, вырабатываемой линейным регистром сдвига.
В одном из возможных вариантов значение шага выборки меняется в соответствии с некоторой последовательностью периода t. В этом случае удается описать минимальные многочлены получаемых псевдослучайных последовательностей
Теорема 5. Пусть d0,...,dt –1 – набор из t > 1 чисел множества 0,,qn – 2 и
Пусть при i= k(t + r элементы последовательности v задаются
формулой
где с – нулевой, а ( примитивный элементы поля GF(qn). Пусть, кроме того, простые делители числа t делят , но не делят (qn –1,D).
Пусть, наконец, qn ( 1(тоd 4), если t кратно четырем. Тогда минимальный многочлен Мv(х) последовательности v имеет вид Мv(х)=Р(хt), где Р(х) –минимальный многочлен элемента ( D.
Схемы с элементами памяти
Дополнительные возможности для усложнения ЛРП открывает использование в криптографических алгоритмах элементов памяти.
Один из наиболее широко известных классов датчиков псевдослучайных чисел, построенных с использованием памяти, составляют генераторы Макларена-Марсальи. Принцип работы таких генераторов в самом общем виде можно сформулировать следующим образом.
Пусть имеются три последовательности и массив памяти. Будем записывать элементы первой последовательности в память по адресам, которые определяются элементами второй последовательности. Элементы выходной последовательности получаются при считывании значений, хранящихся в массиве памяти, в соответствии с элементами третьей последовательности. Таким образом, первая последовательность определяет, какие знаки заносятся в память, вторая последовательность управляет процессом записи этих элементов в память, а третья – процессом считывания из памяти элементов выходной последовательности.
Рассмотрим частный случай, когда процессами записи и считывания управляет одна и та же последовательность.
Пусть и и v – последовательности над полем Р, а выходная последовательность у вырабатывается с использованием q ячеек памяти R0,...,Rq–1. Если Rj(i) – заполнение j-й ячейки памяти перед началом i-го такта работы схемы, то преобразование информации в i-м такте описывается формулами
y(i)=Rv(i)(i),
если j ( v(i),
если j = v(i).
Таким образом, последовательность v определяет адреса, по которым в память записываются элементы последовательности и.
Рассмотрим вопрос о периодах выходных последовательностей генератора Макларена-Марсальи указанного типа.
Пусть последовательность и имеет период (, а адресная последовательность v принимает значения 0,1,...,q-1 и имеет период t. Начальное заполнение памяти R0(0),...,Rq–1(0) выбирается произвольно.
Пусть i0 – такое наименьшее натуральное число, что для любого k({0,1,..., q–1} существует i ({0,1,..., i0} такое, что v(i)=k. Другими словами, через i0 тактов работы схемы память будет заполнена только элементами последовательности и.
Теорема 6. Пусть ( – период последовательности и, t – период последовательности v, причем ((,t)=1, ( >t. Тогда для значения периода Т выходной последовательности у выполняется равенство Т=(s, где s=t/d и d( еq/e.
5.6. Методы анализа поточных шифров
Рассмотрим некоторые методы анализа поточных шифрсистем на примере шифров гаммирования. В первую очередь необходимо исследовать вероятностные характеристики гаммы. Как мы уже знаем, имеются подходы к получению оценок вероятностей элементов неравновероятной гаммы по шифртексту, которые можно использовать при бесключевом чтении.
Второй подход связан с попытками линеаризации уравнений гаммообразования, то есть сведения задачи нахождения ключей криптографических алгоритмов к решению некоторой системы линейных уравнений.
При таком подходе определяющую роль играет линейная сложность исследуемых последовательностей. Значение линейной сложности определяет размеры системы линейных уравнений, которую надо решить для определения ключа по известной шифрующей гамме. Поэтому линейная сложность определяет эффективность криптоатаки на основе известного открытого текста для шифров гаммирования в классе методов линеаризации. Это обусловливает актуальность разработки методов построения псевдослучайных последовательностей с высокой линейной сложностью.
К вопросу о статистических зависимостях в шифрующей гамме примыкают методы анализа, основанные на наличии у функции усложнения хороших приближений в классе линейных функций. Примером отображений, не имеющих линейных статистических аналогов хорошего качества, является класс бент-функций.
В случае наличия у функции усложнения линейного приближения криптоаналитик может заменить исследуемую схему схемой с линейной функцией усложнения. Если усложнению подвергалась линейная рекуррентная последовательность, то при такой замене результирующая гамма является суммой линейной рекурренты и некоторой случайной последовательности с "завышенной" вероятностью появления нуля. Тем самым задача сводится фактически к возможности определения ключа по "искаженному" выходу линейного регистра сдвига. Если число искажений невелико, то их появление не оказывает существенного влияния на сложность определения ключа.
Отметим, что функция усложнения может обеспечивать высокий уровень линейной сложности и хорошие статистические качества результирующей гаммы (например, равновероятность появления ее элементов), но при этом она может иметь приближение в классе линейных функций с большой вероятностью совпадения значений, что сводит на нет перечисленные положительные качества.
При оценке криптографических качеств поточных шифров, помимо алгебраических и статистических свойств шифрующей гаммы, необходимо учитывать также наличие между знаками гаммы зависимостей комбинаторного характера. Например, при использовании в качестве гаммы линейной рекуррентной последовательности с малым числом ненулевых коэффициентов в законе рекурсии может иметь место ситуация, когда значительное число знаков гаммы зависит лишь от небольшого числа знаков ключа. Если такая ситуация имеет место, то криптоаналитик получает возможность проверки гипотез о значениях части ключа, основываясь на статистических свойствах открытых сообщений, что является несомненной слабостью соответствующего алгоритма шифрования.
Таким образом, при создании криптографически стойких поточных шифрсистем необходимо учитывать возможности применения криптоаналитиком всей совокупности статистических, аналитических и комбинаторных свойств используемых преобразований. При этом дополнительные трудности создают постоянно возрастающие возможности вычислительной техники, позволяющие провести экспериментальные исследования тех характеристик поточных шифров, которые не удается изучить теоретически. В связи с этим необходимо подчеркнуть, что приведенные выше требования к поточным шифрам являются необходимыми, но далеко не достаточными для создания стойких шифров. Вывод о криптографической стойкости конкретного шифра может быть сделан только на основе его комплексных исследований, проведенных с привлечением квалифицированных специалистов-криптографов.

Контрольные вопросы
1. В чем заключаются достоинства и недостатки систем поточного шифрования?
2. Почему возникает проблема синхронизации поточных шифров?
3. Что с точки зрения криптографического алгоритма определяет управляющий блок?
Какой необходимый минимум функциональных возможностей должен быть заложен в шифрующем блоке?
За счет чего можно обеспечить стойкость алгоритма шифрования при повторном использовании ключей?
Какие причины обусловили широкое использование линейных регистров сдвига в качестве управляющих блоков поточных шифрсистем?
7. Какой период имеет ненулевая линейная рекуррентная последовательность над полем GF(2) с характеристическим многочленом x5+х2+1? Какова частота появления триграммы (0,1,1) на периоде этой последовательности?
8. Какова длина отрезка, необходимого для восстановления минимального многочлена заданной линейной рекуррентной последовательности с помощью алгоритма Берлекемпа-Месси?
9. Для каких целей применяются усложнения линейных рекуррентных последовательностей?
10. Какую минимальную степень нелинейности должна иметь булева функция от т переменных в фильтрующем генераторе, чтобы после ее применения к знакам линейной рекуррентной последовательности над полем GF(2) с примитивным характеристическим многочленом F(x) степени т линейная сложность выходной последовательности была бы больше т3?
11. Какие существуют типы генераторов Макларена-Mаpсальи?

6. Блочные шифры
6.1. Принципы построения блочных шифров
Как правило, алфавитом, на котором действует блочный шифр, является множество двоичных векторов-блоков открытого текста одинаковой длины (64, 128 и т. д.). Сама реализация преобразований столь больших алфавитов является сложной задачей, а использование преобразований с целью шифрования требует от них еще ряда специальных качеств.
К.Шеннон сформулировал общий принцип построения шифрующих преобразований – принцип "перемешивания". Суть его состоит в требовании, чтобы применение шифрующего преобразования к наборам аргументов, отличающихся в незначительном числе позиций, приводило к существенному изменению результата. Обеспечить выполнение этого требования в сочетании с простотой реализации конкретного отображения в общем случае представляется затруднительным. Поэтому К.Шеннон предложил реализовывать сложные преобразования в виде суперпозиции нескольких простых некоммутирующих отображений. Подход К.Шеннона, использующий итеративное построение преобразований, в настоящее время является магистральным путем синтеза блочных шифров.
Блочные шифры реализуются путем многократного применения к блокам открытого текста некоторых базовых преобразований. Базовые преобразования должны удовлетворять ряду требований, обусловленных тем, что они, во-первых, должны быть просто реализуемым, в том числе программным способом на ЭВМ, и, во-вторых, при небольшом числе итераций давать аналитически сложные преобразования.
Обычно используются базовые преобразования двух типов – сложные в криптографическом отношении локальные преобразования над отдельными частями шифруемых блоков и простые преобразования, переставляющие между собой части шифруемых блоков. В криптографической литературе первые преобразования получили название "перемешивающих", а вторые – "рассеивающих". Качественно можно сказать, что перемешивание усложняет восстановление взаимосвязи статистических и аналитических свойств открытого и шифрованного текстов, а рассеивание распространяет влияние одного знака открытого текста на большое число знаков шифртекста, что позволяет сгладить влияние статистических свойств открытого текста на свойства шифртекста. Следует отметить, что в данном случае перемешивание понимается в обычном смысле, а не как качественное свойство шифра, введенное К. Шенноном.
Алгоритм шифрования выполняет некоторое число циклов (итераций). Каждый цикл состоит в применении преобразований первого и второго типов. Такой принцип построения дает возможность реализовать каждый цикл шифрования с использованием однотипных узлов, а также выполнять расшифрование путем обработки данных в обратном направлении.
Удобной моделью для реализации базовых преобразований служат регистры сдвига. При этом рассеивающие преобразования определяются функциями обратной связи, a перемешивающие – сдвигами информации в регистре.
Получили распространение алгоритмы, в которых осуществляются преобразования над векторами, представляющими собой левую и правую половины содержимого регистра сдвига. Для построения таких алгоритмов часто используется сеть Фейстеля (Feistel Network).
Преобразование, реализуемое сетью Фейстеля в i-м цикле шифрования, имеет вид
(6.1)

где Х – входной блок, разделенный на две половины Х1 и Х2, а (Y1, Y2) – результат зашифрования блока Х на ключе ki с помощью функции fi.
Алгоритм шифрования реализуется несколькими итерациями преобразования сети Фейстеля с использованием ключа k. При этом очередная (i-я) итерация использует в качестве входного блока Х результат предыдущей итерации и ключ ki, вычисляемый определенным образом по ключу k. Функция fi может зависеть или не зависеть от номера итерации.
Ценность преобразований подобного вида заключается в том, что даже если fi не является обратимой функцией, преобразование сети Фейстеля обратимо. В самом деле, из (6.1) следует, что

6.2. Примеры блочных шифров
Американский стандарт шифрования данных DES
Стандарт шифрования данных DES (Data Encryption Standart) опубликован Национальным бюро стандартов США в 1977 г. В 1980 г. этот алгоритм был принят Национальным институтом стандартов и технологий США (НИСТ) в качестве стандарта шифрования данных для защиты от несанкционированного доступа к важной, но несекретной информации в государственных и коммерческих организациях США.
К достоинствам DES можно отнести простоту ключевой системы, высокую скорость аппаратной и программной реализации, достаточно высокую криптографическую стойкость алгоритма шифрования при заданной длине ключа.
Алгоритм DES, используя комбинацию ряда подстановок и перестановок, осуществляет шифрование 64-битовых блоков данных с помощью 56-битового ключа k.
Процесс шифрования состоит в начальной перестановке битов входного блока, шестнадцати циклах шифрования и, наконец, конечной перестановке битов.
Отметим, что все приводимые ниже таблицы являются стандартными и должны использоваться при реализации алгоритма DES в неизменном виде. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс вскрытия шифра путем подбора ключа.
В приводимом ниже описании алгоритма DES использованы следующие обозначения:
Li и Ri – левая и правая половины 64-битного i-го исходного блока;
( – операция побитового сложения векторов-блоков по модулю 2;
ki – 48-битовые ключи;
f – функция шифрования;
IP – начальная перестановка степени 64.
При зашифровании очередного блока Т его биты подвергаются начальной перестановке IP согласно табл. 9.
Таблица 9. Начальная перестановка IP
58

50

42

34

26

18

10

2


60

52

44

36

28

20

12

4


62

54

46
38

30

22

14

6


64

56

48

40

32

24

16

8


57

49

41

33

25

17

9

1


59

51

43

35

27

19

11

3


61

53

45

37

29

21

13

5


63

55

47

39

31

23

15

7



При этом бит 58 блока Т становится битом 1, бит 50 битом 2 и т. д. Полученный после перестановки блок IP(Т) разделяется на две половины: L0, состоящую из 32 старит бит, и R0, состоящую из 32 младших бит.
Затем выполняется итеративный процесс шифрования, состоящий из 16 циклов преобразования Фейстеля. Результат i-й итерации Тi =LiRi определяется формулами (5.1), где Y1 =Li a Y2 =Ri
Результатом последней итерации является блок Т16 =L16R16. По окончании шифрования осуществляется восстановление позиций битов применением к Т16 обратной перестановки IP -1.
При расшифровании данных все действия выполняются в обратном порядке.
Для вычисления значения функции f используются:
функция расширения Е; преобразование S, составленное из восьми преобразований S-блоков S1,S2,...,S8; перестановка Р. Аргументами функции f являются вектор Ri-1 (32 бита) и вектор ki (48 бит). Функция Е "расширяет" 32-битовый вектор Ri-1 до 48-битового вектора Е(Ri-1) путем дублирования некоторых битов вектора Ri-1, при этом порядок следования битов в Е(Ri-1) указан в табл. 10.
Таблица 10
32

1

2

3

4

5


4

5

6

7

8

9


8

9

10

11

12

13


12

13

14

15

16

17


16

17

18

19

20

21


20

21

22

23

24

25


24

25

26

27

28

29


28

29

30

31

32

1


Первые три бита в Е(Ri-1) – это соответственно биты 32, 1 и 2 вектора Ri-1, а последние три бита – это соответственно биты 31, 32, 1 вектора Ri-1.
Полученный результат складывается побитно по модулю 2 с текущим значением ключа ki и затем представляется в виде восьми последовательных 6-битовых блоков В1,..., В8.
Далее каждый из блоков Вj трансформируется в 4-битовый блок Вj( с помощью подходящей таблицы S-блока Sj , список которых приведен в табл. 11. Преобразование блока Вj в Вj( осуществляется следующим образом. Пусть, например, В2 равен 111010. Первый и последний разряды (10) являются двоичной записью числа a. Аналогично средние 4 разряда (1101) представляют число b. В нашем примере a =2, b = 13. Таким образом, пара (a, b) однозначно определяет число, находящееся в таблице S2 на пересечении строки с номером а и столбца с номером b. В данном случае это число равно 3. Записывая его в двоичной форме, получаем В2, равный 0011.
Значение f(Ri-1 , ki) теперь получается применением перестановки битов Р, заданной таблицей 12 к результирующему 32-битовому блоку В1(В2(В8(.
Таблица 11


НОМЕР СТОЛБЦА





0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15



Н О МЕ Р

С Т Р О К И

0 1 2 3

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 4 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

S1


0 1 2 3

15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

S2


0 1
2 3

10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

S3


0 1 2 3

7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

S4


0 1 2 3

2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

S5


0 1 2 3

12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 1 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

S5


0 1
2 3

4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

S7


0 1 2 3

13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

S8

Таблица 12
16

7

20

21


29

12

28

17


1

15

23

26


5

18

31

10


2

8

24

14


32

27

3

9


19

13

30

6


22

11

4

25



На каждой итерации используется текущее значение ключа ki (48 бит), получаемое из исходного ключа k следующим образом.
Сначала пользователи выбирают сам ключ k, содержащий 56 случайных значащих битов. Восемь битов, находящихся в позициях 8,16,...,64, добавляются в ключ таким образом, чтобы каждый байт содержал нечетное число единиц. Это используется для обнаружения ошибок при обмене и хранении ключей. Значащие 56 бит ключа подвергаются перестановке, приведенной в табл. 13.
Таблица 13
57

49

41

33

25

17

9


1

58

50

42

34

26

18


10

2

59

51

43

35

27


19

11

3

60

52

44

36


63

55

47

39

31

23

15


7

62

54

46

38

30

22


14

6

61

53

45

37

29


21

13

5

28

20

12

4



Эта перестановка определяется двумя блоками С0 и D0 по 28 бит в каждом (они занимают соответственно верхнюю и нижнюю половины таблицы). Так, первые три бита в С0 есть соответственно 57, 49, 41 биты ключа. Затем индуктивно определяются блоки Сi и Di , i = 1,,16.
Если уже определены C i-1 и Di-1, тo Сi, и Di получаются из них одним или двумя левыми циклическими сдвигами согласно табл. 14.
Таблица 14
i

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15



Число сдвигов

1

1

2

2

2

2

2

2

1

2

2

2

2

2

1


Теперь определим ключи ki, 1 ( i ( 16. Ключ ki состоит из 48 битов, выбираемых из битов блока СiDi согласно таблице 15. Первыми тремя битами в ki являются биты 14, 17, 11 из блока СiDi. Отметим, что 8 из 56 бит (с номерами 9, 18, 22, 25, 35, 38, 43, 54) из СiDi отсутствуют в ki.
Таблица 15
14

17

11

24

1

5


3

28

15

6

21

10


23

19

12

4

26

8


16

7

27

20

13

2


41

52

31

37

47

55


30

40

51

45

33

48


44

49

39

56

34

53


46

42

50

36

29

32


Сделаем несколько замечаний.
Нелинейность преобразований, осуществляемых DES, определяется только S-блоками. Их выбор не имеет достаточно обстоятельного обоснования. Высказывались мнения о том, что S-блоки имеют некоторую "лазейку", позволяющую осуществлять контроль за шифрованной перепиской. Официальная же версия такова. В 1976 г. АНБ заявило, что выбор S-блоков определен следующими требованиями:
– каждая строка табличного задания каждого S-блока должна являться перестановкой множества {0,1,...,15};
– S-блоки не должны являться линейными или аффинными функциями своих входов;
– изменение одного бита входа S-блока должно приводить к изменению, по крайней мере, двух битов выхода;
– для каждого S-блока и любого входа х значение S(x) и S(x((0,0,1,1,0,0)) должны различаться, по крайней мере, двумя битами.
Криптоанализ DES приводит ко многим нелинейным системам уравнений. Дело в том, что каждый бит блока шифртекста является функцией от всех битов блока открытого текста и ключа. Известные аналитические методы вскрытия DES не дают существенного выигрыша по сравнению с полным перебором всего множества из 256 ключей. К недостаткам алгоритма DES относится небольшое (по современным меркам) число ключей, что дает возможность их полного перебора на быстродействующей вычислительной технике за реальное время.
Официально DES являлся стандартом шифрования данных до 31 декабря 1998 г. В 1997 г. был объявлен конкурс на новый стандарт, который был назван AES (Advanced Encryption Standard). 2 октября 2000 г. Национальный институт стандартов и технологий (НИСТ) США объявил победителя "конкуpca AES". Однако для того, чтобы этот алгоритм завоевал мировое признание, необходимы серьезные исследования его свойств специалистами различных стран.
Стандарт шифрования данных ГОСТ 28147-89
В России установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отдельных вычислительных комплексах и ЭВМ. Он определяется ГОСТом 28147-89. Этот алгоритм предназначен для аппаратной и программной реализации, удовлетворяет необходимым криптографическим требованиям и не накладывает ограничений на степень секретности и защищаемой информации. Алгоритм реализует шифрование 64-битовых блоков данных с помощью 256-битового ключа.
Открытые данные, подлежащие зашифрованию, разбиваются на 64-разрядные блоки. Процедура зашифрования 64-разрядного блока Т0 включает 32 цикла (j =1,,32). 256 бит ключа k задаются в виде восьми 32-разрядных подключей ki:
k = k7k6k5k4k3k2k1k0.
Последовательность битов блока
Т0 = (а1(0),,а32(0), b1(0),,b32(0))
разбивается на две половины по 32 бита (взятые в обратном порядке):
а(0)=(а32(0),,а1(0)),
b(0)=(b32(0),,b1(0)).
Уравнения шифрования на j-м цикле шифрования представляются в виде:

при j = 1,,24,

при j = 25,,31,

Вычисление значения функции f производится в два этапа. На первом этапе ее 32-битовый аргумент х разбивается на восемь последовательных 4-битовых вектора, каждый из которых преобразуется в некоторый 4-битовый вектор соответствующим узлом замены Si, i = 1,,8. Каждый узел замены можно представить в виде таблицы-перестановки шестнадцати чисел от 0 до 15, представленных в виде двоичных векторов длины 4. Восемь преобразованных S -блоками векторов последовательно соединяются в 32-битовый вектор S(x). На втором этапе с помощью регистра сдвига R производится циклический сдвиг вектора S(x) влево на 11 позиций.
S-блоки представляют собой ключевые элементы, которые являются общими для каждой сети связи. Они должны храниться в секрете.
Результатом зашифрования блока Т0 является блок Тш составленный после 32-го цикла шифрования в следующем порядке:
Тш = (а1(32),,а32(32), b1(32),,b32(32)).
Алгоритм шифрования, определяемый ГОСТом 28147-89, из-за значительно большей длины ключа является существенно более стойким, нежели алгоритм шифрования DES.
6.3. Режимы использования блочных шифров
Для решения разнообразных криптографических задач блочные шифры используют в нескольких режимах работы. Рассмотрим этот вопрос на примере шифра DES.
Алгоритм DES может использоваться в следующих четырех режимах:
режим электронной кодовой книги (ЕСВ – Electronic Code Book);
режим сцепления блоков (СВС – Cipher Block Chaining);
режим обратной связи по шифртексту (CFB – Cipher Feed Back);
режим обратной связи по выходу (OFB – Output Feed Back).
Режим электронной кодовой книги (ЕСВ) отвечает обычному использованию DES как блочного шифра, осуществляющего некоторую простую замену блоков открытого текста. В режиме сцепления блоков (СВС) каждый блок Сi, i ( 1, шифртекста перед очередным зашифрованием складывается по модулю 2 со следующим блоком открытого текста Мi+1. При этом вектор С0 полагается равным начальному вектору IV (Initial Vector). Начальный вектор меняется ежедневно и хранится в секрете.
В режимах СFB и OFB алгоритм DES функционирует по аналогии с «шифром Вернама», в режиме OFB – как синхронный шифр, в режиме СFB – как шифр с самосинхронизацией.
Кроме перечисленных режимов, DES имеет также "режим т-битовой обратной связи". Этот режим оперирует с т-битовыми блоками.
Указанные режимы имеют свои достоинства и недостатки. Основное достоинство режима ЕСВ – простота реализации. Недостаток – в возможности проведения криптоанализа «со словарем». Дело в том, что вследствие большой избыточности в открытом тексте вполне возможны повторения 64-битовых блоков. Это приводит к тому, что одинаковые блоки открытого текста будут представлены идентичными блоками шифртекста, что дает криптоаналитику возможность при наличии достаточно большого числа пар открытого и шифрованного текста восстанавливать с большой вероятностью блоки отрытого текста по шифртексту.
В режимах ЕСВ и OFB искажение при передаче одного 64-битого блока шифртекста Сi приводит к искажению после расшифрования соответствующего блока Мi открытого текста, но не влияет на следующие блоки. Это свойство используется для шифрования информации, предназначенной для передачи по каналам связи с большим числом искажений. Вместе с тем при использовании режима OFB остается открытым вопрос о периоде получаемой выходной гаммы, который в некоторых предположениях может составлять величину порядка 232.
В режимах СВС и СРВ искажение при передаче одного блока шифртекста Сi приводит к искажению на приеме не более двух блоков открытого текста – Мi, Мi+1. В то же время изменение блока Мi приводит к тому, что Сi, и все последующие блоки шифртекста будут искажены. Это свойство оказывается полезным для целей аутентификации. Такие режимы применяются для выработки кода аутентификации сообщения.
Так, в режиме СВС берется вектор инициализации, состоящий из одних нулей. Затем с помощью ключа k вырабатываются блоки С1,...,Сn шифртекста. Кодом аутентификации сообщения (КАС) служит блок Сn .
Если требуется обеспечить лишь целостность сообщении, отправитель передает блоки М1,...,Мn вместе с Сn. Tогда противнику, желающему изменить сообщение, нужно соответствующим образом изменить и блок Сn . Возможность этого маловероятна, если только противник не располагает секретным ключом k.
Если же нужно обеспечить шифрование и аутентификацию, то отправитель сначала использует ключ k1 для выработки КАС, затем шифрует последовательность блоков M1,...,Mn, Мn+1 = КАС на втором ключе k2, и получает последовательность блоков С1,...,Сn,Сn+1. Получатель должен сначала расшифровать С1,...,Сn,Сn+1 на ключе k2, а затем проверить (с помощью k), что Мn+1 это КАС для M1,...,Mn.
Можно поступить и иначе: сначала использовать k для зашифрования M1,...,Mn, получая С1,...,Сn, а затем k2 для получения КАС. Получатель же будет использовать k2 для проверки КАС, а затем k для расшифрования С1,...,Сn.
Во всех перечисленных режимах вместо алгоритма DЕS может быть использован любой алгоритм блочного шифрования, в частности российский стандарт ГОСТ 28147-89.
В российском стандарте также предусмотрено несколько режимом использования: режим простой замены, режим шифрования с обратной связью и режим гаммирования с обратной связью, которые являются аналогами соответственно режимов ЕСВ, СВС и СFВ. Для того чтобы избавиться от указанной выше проблемы неопределенности длины периода гаммы в режиме OFB, в российском стандарте введен режим гаммирования, при котором блочный шифр используется в качестве узла усложнения некоторой последовательности гарантированного периода. Для выработки этой последовательности обычно применяются линейные регистры сдвига или счетчики по некоторому модулю.
Уравнение шифрования имеет вид
Сi =Мi(F((i), i=1,2,...,
где F – преобразование, осуществляемое блочным шифром, (i – блоки, сформированные узлом выработки исходной гаммы из начального вектора (1, который передается в начале сообщения в открытом или зашифрованном виде.
Ошибка при передаче, состоящая в искажении символа, приводит при расшифровании к искажению только одного блока, поэтому сохраняются все преимущества шифра гаммирования.
6.4. Комбинирование алгоритмов блочного шифрования
Как было указано выше, алгоритм шифрования DES сегодня уже не является достаточно стойким. Возникает естественный вопрос: нельзя ли использовать его в качестве строительного блока для создания другого алгоритма с более длинным ключом? Уже в 80-х годах была предложена идея многократного шифрования, т.е. использования блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста.
Рассмотрим двукратное шифрование блока открытого текста с помощью двух разных ключей. В этом случае сначала шифруют блок М ключом k1, а затем получившийся шифртекст Еk1(М) шифруют ключом k2. В результате двукратного шифрования получают криптограмму
С = Еk2(Еk1(М)).
Если множество преобразований, реализуемых блочным шифром, является группой (относительно операции композиции преобразований), то всегда найдется такой ключ k, что С = Еk(М). В таком случае двукратное шифрование не дает преимущества по сравнению с однократным шифрованием. В противном случае после двукратного шифрования нужно будет определять оба использованных ключа. Следовательно, трудоемкость перебора ключей по сравнению с однократным шифрованием возводится в квадрат.
Известно, что множество преобразований, реализуемых полной схемой DES, не образует группу. Там же показано, что множество преобразований DES порождает группу подстановок (степени 264), мощность которой превышает число 102499. Поэтому многократное шифрование с помощью DES имеет смысл.
Возможны варианты двойного и тройного шифрования с использованием алгоритма DES. В одном из них предлагается шифровать блок М открытого текста три раза с помощью двух ключей k1 и k2. Уравнение шифрования в этом случае имеет вид С = Еk1(Dk2(Еk1(М))). Введение в такую схему операции расшифрования Dk2 обеспечивает совместимость схемы со схемой однократного использования DES. Для этого достаточно выбрать одинаковые ключи.
При трехкратном шифровании можно применить три различных ключа. Уравнение шифрования в этом случае принимает вид С = Еk3(Dk2(Еk1(М))). При этом возрастает общая длина результирующего ключа и соответственно возрастает стойкость шифра. Следует отметить, что такое возрастание не может быть безграничным, оно происходит до тех пор, пока суммарное число ключей (256-s) не превзойдет общее число преобразований, реализуемых схемой, то есть общее число простых замен, "из которых состоит" данный шифр замены.
6.5. Методы анализа алгоритмов блочного шифрования
Базовым при использовании блочных шифров является режим простой замены. В связи с этим рассмотрим ряд вопросов, связанных с эксплуатацией блочных шифров в этом режиме и влияющих на их криптографическую стойкость. Как отмечалось выше, серьезным недостатком режима простой замены является то, что зашифрование одинаковых блоков исходного текста дает идентичные блоки шифр текста. В результате криптоаналитик лишь на основе шифрованных данных может делать выводы о свойствах исходною текста. Примером таких выводов может служить определение факта рассылки писем с одинаковым содержанием в несколько адресов. Если некоторые блоки открытого текста повторились, то во всех зашифрованных сообщениях, независимо от используемых ключей, на одинаковых местах будут встречаться повторяющиеся блоки шифрованных текстов.
Другой пример – передача ключей в зашифрованном виде по линиям связи. Повторение блоков в одном шифрованном тексте показывает, что часть битов в передаваемом ключе повторились, и что в дальнейшем трудоемкость перебора ключей при их тотальном опробовании может быть сокращена за счет учета повторений.
Показательно, что при случайном выборе блоков открытого текста их повторение является не столь уж редким событием. Напомним известный парадокс "дней рождений", который заключается в том, что если имеется выборка объема, сравнимого с (N , из множества из N элементов, то вероятность того, что в ней окажутся два одинаковых элемента, сравнима с 1/2. Этот парадокс показывает, что при случайном выборе блоков открытого текста для получения повтора достаточно взять в среднем порядка (N блоков, где N – общее число блоков, которые теоретически могут встретиться в открытом тексте. Применительно к алгоритмам DES и ГОСТ, которые оперируют с двоичными векторами длины 64, это означает, что в среднем, уже среди 232 блоков открытого текста, будут встречаться повторяющиеся. Следует отметить, что при шифровании осмысленных текстов на естественных языках повторения будут появляться еще чаще, поскольку в осмысленных текстах в силу используемой лексики и грамматических правил встречаются далеко не вес сочетания букв и знаков алфавита.
К блочным шифрам, используемым в режиме простой замены, могут быть применены и некоторые методы анализа шифров простой замены в обычных алфавитах. В частности, при достаточно большой длине шифртекста можно применять методы анализа, использующие статистические характеристики открытых текстов. Например, вычисляя частоты появления блоков в шифрованном тексте и проводя опробование часто повторяющихся блоков, начиная с наиболее вероятных сочетаний знаков в открытом тексте, можно составить словарь соответствия между блоками открытого и шифрованного текстов. Далее, развивая текст по смыслу с учетом избыточности открытых текстов, найденные блоки открытого текста можно дополнять соседними блоками. При этом одновременно восстанавливается открытый текст и дополняется словарь соответствия. Этот метод эффективен, когда наблюдается стандартность переписки. Например, всегда стандартны заголовки деловых бумаг, юридических и прочих документов.
Еще одна слабость блочных шифров в режиме простой замены при шифровании осмысленных текстов связана с тем фактом, что в открытом тексте могут появляться не все сочетания знаков, что проявляется в фактическом сокращении числа пользуемых соответствий между блоками открытого и шифрованного текстов. Однако эта слабость легко устранима, если перед шифрованием применить к открытому тексту процедуру сжатия информации, например, использовать стандартные алгоритмы архивации данных.
Следующим моментом, на который следует обратить внимание, является проблема последнего неполного блока данных при шифровании текстов, длины которых не кратны размеру блока. При использовании блочного шифра этот неполный блок должен быть каким-либо образом дополнен до стандартной длины. Если при этом алгоритм дополнения выбран неудачно, например, блок дополняется одними нулями, то при определении соответствующего блока открытого текста у криптоаналитика появляются дополнительные возможности. Эта проблема может показаться надуманной, поскольку относится только к последнему блоку сообщения. Однако именно в конце сообщения обычно ставится подпись и, следовательно, появляются подходы к определению по шифртексту авторства сообщения.
Отдельно остановимся на методах анализа криптографических алгоритмов, основанных на принципе многократного использования блочных шифров. Р.Меркль и М.Хеллмнп на примере DES показали, как, используя метод встречи посередине, можно вскрыть схему двукратного шифрования.
Рассмотрим метод вскрытия блочного шифра при использовании двойного шифрования в общем случае.
Предположим, что известны блок М открытого текста и соответствующий ему блок С шифрованного текста. Алгоритм вскрытия неизвестных ключей k1 и k2 состоит из двух этапов.
На первом этапе перебираются все возможные варианты ключа k1. Для каждого варианта k ключа k1 вычисляются значения ADR(k) =Еk(М), после чего значения k помещаются в память по адресу ADR(k).
На втором этапе опробуются возможные варианты ключа k2. Для опробуемого варианта k' ключа k2 вычисляются значения ADR(k') = Dk’(C) и производится обращение в память по адресу ADR(k'). Если по этому адресу памяти записи отсутствуют, то происходит переход к опробованию следующего варианта k' ключа k2. Если же по адресу ADR(k') в памяти хранится ключ k, то образуется допустимая пара ключей (k,k'), удовлетворяющая равенству С=Еk’(Еk(М)).
Заметим, что в ячейку памяти с номером ADR(k') могут попасть несколько вариантов ключа k (для этого память необходимо соответствующим образом организовать). Для каждого из них пара (k,k') является допустимым ключом. Несложно заметить, что для реализации данного алгоритма требуется 2(К( опробований и столько же операций обращения к памяти, где (К( общее число ключей шифра. Таким образом, вместо (К(2 операций, требуемых при полном переборе ключей, затраты метода встречи посередине составляют порядка 4(К( операций (операции опробования и обращения к памяти для простоты считают приблизительно равносильными по сложности). Заметим, что такой резкий эффект снижения трудоемкости достигается за счет использовании большой (и специальным образом организованной) памяти.
В заключение отметим, что помимо перебора ключей и метода встречи посередине, при исследованиях блочных шифров успешно применяются методы линейного и дифференциального анализа.
Идея метода линейного анализа состоит в линеаризации уравнений шифрования, то есть замене сложных преобразований, описывающих алгоритм шифрования, их приближениями в классе линейных функций. Под приближением в классе линейных функций (или линейным аналогом) понимается линейная функция, значения которой для достаточно большого числа наборов аргументов совпадают со значениями данной функции шифрования. Чем выше вероятность совпадения значений линейного аналога со значениями функции шифрования при случайном и равновероятном выборе аргументов, тем лучше качество аналога.
Таким образом, линейный анализ сводит задачу определения ключей к решению системы линейных уравнений, в которой правые части уравнений известны с некоторой вероятностью. Из общих принципов математической статистики вытекает, что если распределение значений правых частей уравнений системы отлично от равномерного распределения и имеется достаточно большое число уравнений, то решение такой системы линейных уравнений может быть найдено статистическими методами.
Блочные шифры строятся, как правило, по итеративному принципу. Поэтому даже использование на каждой итерации функций, не имеющих хороших аналогов, не гарантирует отсутствия аналогов в результирующем преобразовании. Проблема построения блочных шифров, для которых удается доказать отсутствие линейных аналогов, является весьма сложной задачей современной прикладной криптографии.
Методы дифференциального (или иначе, разностного) анализа строятся в предположении, что криптоаналитик имеет для анализа несколько текстов, зашифрованных на одном ключе, и дополнительно предполагается известной информация о том, как различаются между собой открытые тексты (при этом сами открытые тексты могут быть неизвестны). В этом случае криптоаналитик получает информацию о том, как заданные отличия в открытых текстах проявляются в шифртекстах, или, другими словами, как разность аргументов шифрующего преобразования отражается на изменении его значений. Поскольку шифрующее преобразование однозначно определяется ключом, то информация о зависимостях между разностями значений аргументов и разностями соответствующих значений функции шифрования может быть использована при построении алгебраических и статистическим методов вскрытия ключей алгоритма шифрования.
Заметим, что аналогичная ситуация возникает в случае, когда криптоаналитику удается получить результат зашифрования некоторого сообщения на разных ключах с дополнительной информацией о различиях использованных ключей. В ряде работ некоторые разновидности такого подхода, получившие общее название метода дифференциальных искажений, применялись для вскрытия ключей криптографических алгоритмов, использовавшихся для защиты информации в платежных системах на основе интеллектуальных карт.
6.6. Рекомендации по использованию алгоритмов блочного шифрования
При практическом использовании блочных шифров, помимо чисто криптографических проблем, необходимо учитывать особенности конкретной системы криптографической защиты информации, ее функции и условия эксплуатации. Эти факторы определяют выбор режима шифрования и условий, в которых необходимо оценивать надежность построенной системы защиты.
Основными достоинствами режима простой замены являются простота реализации и тот факт, что изменения одного блока шифртекста вызывают изменения только в одном блоке открытого текста. К недостаткам этого режима, помимо упомянутыx выше, можно отнести также неустойчивость системы защиты перед модификацией сообщения, заключающуюся в перестановке блоков шифртекста. Такое нарушение целостности данных может оказаться незамеченным, поскольку при расшифровании каждого блока будет получен осмысленный результат. В особенности это замечание касается передачи формализованных сообщений.
Вследствие отмеченных недостатков блочные шифры редко используются в режиме простой замены для шифрования длинных сообщений. Режим простой замены применяется в основном в системах передачи ключей и в платежных системах, где сообщения состоят из небольшого числа блоков и, следовательно, вероятность шифрования двух одинаковых блоков открытого текста на одном ключе очень мала.
Для практического использования блочных шифров можно предложить модификацию режима простой замены, заключающуюся в замене части битов блоков открытого текста их порядковыми номерами в сообщении. Такой подход несколько снижает скорость передачи информации, поскольку часть блока перестает нести содержательную информации». Но, с другой стороны, при такой модификации одинаковые блоки открытого текста вследствие различия их порядковых номеров будут представлены различными блоками шифрованного текста.
К достоинствам режима гаммирования следует отнести решение проблемы повторений, возникающих при зашифровании одинаковых блоков сообщения, поскольку в режиме гаммирования одинаковые блоки открытого текста преобразуются в различные блоки шифртекста. Снимается также вопрос о способе дополнения последнего неполного блока данных, так как лишние биты гаммы просто отбрасываются. Перестановка блоков шифртекста также будет обнаружена при расшифровании. Свойство нераспространения ошибок является более выраженным: искажение при передаче одного бита блока приводит при расшифровании в режиме простой замены к искажению всего блока, а в режиме гаммирования - к искажению всего лишь одного бита.
Однако оборотная сторона эффекта нераспространения искажений состоит в том, что появляется возможность целенаправленной модификации шифртекста и открытого текста с точностью до конкретного разряда. Кроме того, необходимо обеспечить уникальность гаммы, что требует для всех сообщений уникальных синхропосылок (иначе возможны повторения используемой гаммы).
Чаще блочные шифры используются в режиме шифрования с обратной связью, когда очередной блок шифртекста зависит не только от ключа, но и от предшествующих блоков шифртекста. Гаммирование с обратной связью устойчиво к перестановкам блоков шифрованного текста и к целенаправленным модификациям шифртекста. В таких системах отсутствует проблема последнего неполного блока данных и одновременно снимается острота проблемы обеспечения уникальности синхропосылки.
Контрольные вопросы
1. Каковы с точки зрения криптографии преимущества и недостатки перехода к шифрованию сообщений в алфавитах большой мощности?
Как реализуется предложенный К.Шенноном принцип "перемешивания" при практической реализации алгоритмов блочного шифрования?
Каковы основные недостатки алгоритма DES и пути их устранения?
Как связан "парадокс дней рождений" с криптографическими качествами блочных шифров в режиме простой замены
В каких случаях можно рекомендовать использовать блочный шифр в режиме простой замены?
От каких потенциальных слабостей позволяет избавиться использование блочных шифров в режимах шифрования с обратной связью?


7. Криптографические хэш-функции
7.1. Функции хэширования и целостность данных
Хэш-функции – это функции, предназначенные для "сжатия" произвольного сообщения или набора данных, записанного, как правило, в двоичном алфавите, в некоторую битовую комбинацию фиксированной длины, называемую сверткой. Хэш-функции имеют разнообразные применения при проведении статистических экспериментов, при тестировании логических устройств, при построении алгоритмов быстрого поиска и проверки целостности записей в базах данных. Например, для осуществления быстрого поиска нужного сообщения в большом списке сообщений различной длины удобнее сравнивать друг с другом не сами сообщения, а короткие значения их сверток, играющих одновременно роль контрольных сумм. Основным требованием к таким хэш-функциям является равномерность распределения их значений при случайном выборе значений аргументов.
В криптографии хэш-функции применяются для решения следующих задач:
–построения систем контроля целостности данных при их передаче или хранении,
–аутентификации источника данных.
При решении первой задачи для каждого набора данных вычисляется значение хэш-функции (называемое кодом аутентификации сообщения или имитовставкой), которое передается или хранится вместе с самими данными. При получении данных пользователь вычисляет значение свертки и сравнивает его с имеющимся контрольным значением. Несовпадение говорит о том, что данные были изменены.
Хэш-функция, служащая для выработки имитовставки, должна позволять (в отличие от обычной контрольной суммы) осуществлять обнаружение не только случайных ошибок в наборах данных, возникающих при их хранении и передаче, но и сигнализировать об активных атаках злоумышленника, пытающегося осуществить навязывание ложной информации. Для того чтобы злоумышленник не смог самостоятельно вычислить контрольное значение свертки и тем самым осуществить успешную имитацию или подмену данных, хэш-функция должна зависеть от секретного, не известного злоумышленнику, параметра – ключа пользователя. Этот ключ должен быть известен передающей и проверяющей сторонам. Такие хэш-функции будем называть ключевыми.
Имитовставки, формируемые с помощью ключевых хэш-функций, не должны позволять противнику создавать поддельные (сфабрикованные) сообщения (fabrication) при атаках типа имитация (impersonation) и модифицировать передаваемые сообщения (modification) при атаках типа "подмена" (substitution).
При решении второй задачи – аутентификации источника данных – мы имеем дело с не доверяющими друг другу сторонами. В связи с этим подход, при котором обе стороны обладают одним и тем же секретным ключом, уже неприменим. В такой ситуации применяют схемы цифровой подписи, позволяющие осуществлять аутентификацию источника данных. Как правило, при этом сообщение, прежде чем быть подписано личной подписью, основанной на секретном ключе пользователя, "сжимается" с помощью хэш-функции, выполняющей функцию кода обнаружения ошибок (см. далее). В данном случае хэш-функция не зависит от секретного ключа и может быть фиксирована и известна всем. Основными требованиями к ней являются гарантии невозможности подмены подписанного документа, а также подбора двух различных сообщений с одинаковым значением хэш-функции (в этом случае говорят, что такая пара сообщений образует коллизию).
Формализуя сказанное, введем следующее определение. Обозначим через Х множество, элементы которого будем называть сообщениями. Обычно сообщения представляют собой последовательности символов некоторого алфавита, как правило, двоичного. Пусть Y – множество двоичных векторов фиксированной длины.
Хэш-функцией называется всякая функция h: Х > Y, легко вычислимая и такая, что для любого сообщения М значение h(M) = Н (свертка) имеет фиксированную битовую длину.
Обычно число возможных сообщений значительно превосходит число возможных значений сверток, в силу чего для каждого значения свертки имеется большое множество прообразов, то есть сообщений с заданным значением хэш-функции. Заметим, что при случайном и равновероятном выборе сообщений условие равномерности распределения значений хэш-функции эквивалентно наличию одинакового числа прообразов для каждого значения свертки.
Как правило, хэш-функции строят на основе так называемых одношаговых сжимающих функций у = f(x1, х2) двух ременных, где хi и у – двоичные векторы длины т и п соответственно, причем п – длина свертки. Для получения значения h(M) сообщение М сначала разбивается на блоки длины т (при этом если длина сообщения не кратна т, то последний блок неким специальным образом дополняется до полного), а затем к полученным блокам m1, М2,.., МN применяют следующую последовательную процедуру вычисления свертки:
Н0 = v, Нi = f(Мi ,Hi-1), i=1,...,N, h(M)=HN. (7.1)
Здесь v – некоторый фиксированный начальный вектор, Если функция f зависит от ключа, то этот вектор можно положить равным нулевому вектору. Если же функция f не зависит от ключа, то для исключения возможности перебора коротких сообщений (при попытках обращения хэш-функции) этот вектор можно составить из фрагментов, указывающих дату, время, номер сообщения и т. п.
При таком подходе свойства хэш-функции h полностью определяются свойствами одношаговой сжимающей функции f.
Особо выделяют два важных типа криптографических хэш-функции – ключевые и бесключевые. Первые применяются в системах с симметричными ключами. Ключевые хэш-функции называют кодами аутентификации сообщений (КАС) (message authentication code (MAC)). Они дают возможность без дополнительных средств гарантировать как правильность источника данных, так и целостность данных в системах с доверяющими друг другу пользователями.
Бесключевые хэш-функции называются кодами обнаружения ошибок (modification detection code (MDC) или manipulation detection code, message integrity code (МIС)). Они дают возможность с помощью дополнительных средств (например, шифрования, использования защищенного канала или цифровой подписи) гарантировать целостность данных. Эти хэш-функции могут применяться в системах как с доверяющими, так и не доверяющими друг другу пользователями. Рассмотрим их более подробно.
7.2. Ключевые функции хэширования
В криптографических приложениях к ключевым функциям хэширования предъявляются следующие основные требования:
– невозможность фабрикации;
– невозможность модификации.
Первое требование означает высокую сложность подбора сообщения с правильным значением свертки. Второе – высокую сложность подбора для заданного сообщения с известным значением свертки другого сообщения с правильным значением свертки.
Иногда эти свойства объединяют в одно более сильное свойство – свойство вычислительной устойчивости. Это требование означает высокую сложность подбора для заданного множества сообщений {х1,..,хt} (быть может, пустого) с известными значениями сверток еще одного сообщения х, х( хi, i=1,...,t, с правильным значением свертки (возможен случай h(x) = h(хi), i({1,...,t}).
Заметим, что здесь и всюду ниже слова "высокая сложность" означают такую вычислительную сложность задачи, при которой ее решение с использованием вычислительной техники за реальное время невозможно.
Ключевые функции применяются в ситуациях, когда стороны доверяют друг другу и могут иметь общий секретный ключ. Обычно в этих условиях не требуется, чтобы система обеспечивала защиту в случае отказа получателя от факта получения сообщения или его подмены. Поэтому от ключевых хэш-функций не требуется устойчивости к коллизиям.
Обычные атаки на ключевые хэш-функции заключаются в имитации, то есть в передаче сфабрикованных сообщений в пустом канале, а также в подмене передаваемых сообщений с целью навязывания приемной стороне ложных сообщений.
Заметим, что из свойства вычислительной устойчивости вытекает невозможность определения ключа, используемого хэш-функцией, так как знание ключа дает возможность вычислять значение свертки для любого набора данных. В то же время обратное утверждение неверно, так как подбор значения функции хэширования возможен в некоторых случаях без предварительного определения ключа.
В качестве примера рассмотрим широко распространенную хэш-функцию, построенную на основе одношаговой сжимающей функции вида
fk(x,Н)=Еk(х(Н),
где Ek алгоритм блочного шифрования.
Для вычисления значения h(M) сообщение М представляется в виде последовательности n-битовых блоков М1,М2,..,МN. Если при этом длина сообщения не кратна длине блока, то последний блок неким специальным образом дополняется до полного блока. Алгоритм вычисления свертки имеет следующий вид:
Н0 = 0, Нi = Еk (Мi (Hi-1), i=1,...,N, h(M)=HN. (7.2)
Данный алгоритм фактически совпадает с режимом шифрования со сцеплением блоков (см. 6), с той лишь разницей, что в качестве результата берется не весь шифртекст Н1,Н2,..,НN, а только его последний блок. Такой режим в ГОСТе 28147-89 называется режимом выработки имитовставки.
Еще одной основой для построения ключевых хэш-функций могут служить бесключевые хэш-функции. При этом для вычисления значения свертки ключ приписывается к исходному сообщению.
Заметим, что если ключ просто дописывать в начало или в конец исходного сообщения, то это может приводить к потенциальным слабостям, позволяющим в некоторых случаях осуществлять модификацию сообщений.
Пусть, например, ключ k добавляется к началу сообщения согласно формуле hk(х) = h(k,x). Если функция h построена на основе одношаговой сжимающей функции по формуле (7.1), то по известным значениям М и H=h(k,M) можно вычислять значения этой функции для любых сообщений вида ( М, М') с дописанным произвольным окончанием М'. Это объясняется итеративностью процедуры вычисления функции, в силу которой для нахождения значения H'=h(k,M,M') не требуется знание ключа k, достаточно воспользоваться уже вычисленным "промежуточным" значением H. Поэтому такая функция не устойчива к модификации.
В случае когда ключ добавляется в конец сообщения согласно формуле H =hk (M)=h(M,k), знание коллизии для функции h, то есть пары х1,х2, х1(х2, такой, что h(х1) = h(х2), позволяет вычислять значения h(х1,k) =h(х2,k) для любого ключа k. Поэтому трудоемкость модификации сообщения М= х1 оценивается не величиной 0(2n), а сравнима с трудоемкостью поиска коллизии, оцениваемой "величиной 0(2п/2}, так как в данном случае применима атака, основанная на парадоксе "дней рождений".
В связи с этим более предпочтительными являются способы введения ключа, при которых ключ вставляется в сообщение не один, а, по крайней мере, два раза. Можно указать два таких способа:
H=h(k,y,M,k),
H=h(k, y1,h(k, y2,M)),
где y, y1, у2 – дополнения ключа k до размера, кратного длине блока п. Для определенных бесключевых хэш-функций h такой подход позволяет строить эффективно вычислимые и устойчивые к атакам ключевые хэш-функции. Недостатком такого метода является слишком большая длина п свертки. Для целей проверки целостности обычно выбирают длину свертки п в пределах 32-64, а для аутентификации необходимо условие п > 128.
В заключение отметим, что существуют ключевые хэш-функции, не использующие какую-либо основу типа блочного шифрования или вычисления бесключевой хэш-функции, а разработанные независимо с учетом эффективной реализации на современных ЭВМ. Примером служит ключевая хэш-функция, используемая в алгоритме МАА (Message Authenticator Algorithm), утвержденном стандартом ISO 8731-2.
7.3. Бесключевые функции хэширования
Обычно требуется, чтобы бесключевые хэш-функции обладали следующими свойствами:
1) однонаправленность,
2) устойчивость к коллизиям,
3) устойчивость к нахождению второго прообраза,
означающими соответственно высокую сложность нахождения сообщения с заданным значением свертки; пары сообщений с одинаковыми значениями свертки; второго сообщения с тем же значением свертки для заданного сообщения с известным значением свертки.
Например, хэш-функция CRC-32, представляющая собой контрольную сумму, является линейным отображением и поэтому не удовлетворяет ни одному из этих трех свойств.
Использование в качестве бесключевой хэш-функции рассмотренной выше функции (2), построенной на основе алгоритма блочного шифрования в режиме выработки имитовставки, также нецелесообразно, так как обратимость блочного шифрования позволяет подбирать входное сообщение для любого значения свертки при фиксированном и общеизвестном ключе.
Для построения примера хэш-функции, удовлетворяющей свойству 1), рассмотрим функцию, заданную формулой gk(х)=Еk(х)(x, где Еk - алгоритм блочного шифрования. Такая функция является однонаправленной по обоим аргументам. Поэтому на ее основе можно построить хэш-функцию по правилу (7.1), определив одношаговую сжимающую функцию одной из следующих формул:
f(х,H)=ЕH(х)(x
или
f(х,H)=Еx(H)(H.
Первая из этих функций лежит в основе российского стандарта хэш-функции, а вторая – в основе американского стандарта SHA.
Справедливо следующее
Утверждение 1. Если функция хэширования h построена на основе одношаговой сжимающей функции f по правилу (7.1), то из устойчивости к коллизиям функции f следует устойчивость к коллизиям функции h.
Укажем взаимозависимость между свойствами 1) и 2).
Утверждение 2. Если хэш-функция устойчива к коллизиям, то она устойчива к нахождению второго прообраза.
Утверждение 3. Устойчивая к коллизиям хэш-функция не обязана быть однонаправленной.
В качестве примера несжимающей функции приведем функцию h(x)=x, которая, очевидно, является устойчивой к коллизиям и к нахождению второго прообраза, но не является однонаправленной.
В качестве примера сжимающей хэш-функции рассмотрим функцию h, определенную условиями
h(x) = (1, х), если битовая длина х равна п,
h(x) = (0, g(x)), если битовая длина х больше п,
где g(x) – сжимающая п-битовая функция, устойчивая к коллизиям. Функция h также является устойчивой к коллизиям и к нахождению второго прообраза, но, очевидно, не является однонаправленной.
Утверждение 4. Пусть h': X >Y – хэш-функция и |Х| > 2|Y|. Тогда если существует эффективный алгоритм обращения функции h, то существует вероятностный алгоритм нахождения коллизии функции h с вероятностью успеха, большей 1/2.
Заметим, что трудоемкость подбора прообраза для однонаправленной функции или трудоемкость поиска второго прообраза оцениваются величиной 0(2п). В то же время трудоемкость поиска коллизии оценивается величиной 0(2п/2), так как в данной ситуации применима атака, основанная на парадокce "дней рождений".
Рассмотрим конкретные примеры хэш-функций, построенных на основе некоторых алгоритмов преобразования блоков.
Пусть Ek – алгоритм блочного шифрования, п – размер блока, l – размер ключа и G – некоторое отображение, ставящее в соответствие вектору длины п вектор длины l. Рассмотрим следующие одношаговые сжимающие функции, построенные на основе алгоритма Ek:
а) f(х,H)=Ex (H)(H (Дэвис-Мейер);
б) f(х,H)=EG(H) (x)(x (Матиас-Мейер-Осеас);
в) f(х,H)=EG(H) (x)(x(Н (Миагучи-Принель).
Значением любой из хэш-функции, построенных по правилу (7.1) из приведенных одношаговых сжимающих функций, является вектор длины п, равной размеру блока. В случае если эта величина оказывается недостаточной, ее можно увеличить, заменив одношаговую функцию f на функцию f' с удвоенной размерностью значений. Это можно сделать, например, путем двукратного применения функции f с последующим перемешиванием полублоков согласно формуле:
f '(х, Н1, Н2)= (( f (х, Н1), f (х, Н1)),
в которой ( переставляет произвольные полублоки а, b, с, d по правилу (((а,b),(с,d)) = (a,d,c,b). Такой подход, использующий схему (б), реализован в конструкции одношаговой функции MDC-2.
Другие примеры бесключевых хэш-функций дают известные алгоритмы MD-4, MD-5 и SHA. Они оперируют с блоками длины п, совпадающей с длиной результирующего значения свертки, причем п = 128 для алгоритма MD-4 и п= 160 для MD-5 и SHA. Указанные алгоритмы спроектированы специально с учетом эффективной реализации на 32-разрядных ЭВМ.
При их использовании исходное сообщение М разбивается на блоки длиной т= 512 бит. Последний блок формируется путем дописывания к концу сообщения комбинации 10...0 до получения блока размера 448 бит, к которому затем добавляется комбинация из 64 бит, представляющая битовую длину сообщения. Затем вычисляется значение свертки согласно процедуре (7.1) с использованием одношаговой сжимающей функции, заданной формулой f(x,H)= Ex (H)(H , где х блок сообщения длины т = 512 бит, Н блок из п бит, a Ex некоторое преобразование множества блоков. Значение начального вектора определяется в описании преобразования Ex.
В стандарте хэш-функций ГОСТ Р 34.11-94 приняты значения п = т = 512. Одношаговая сжимающая функция f(x,H), используемая для вычисления последовательности значений Нi = f(хi, Нi-1), построена на базе четырех параллельно работающих схем блочного шифрования (ГОСТ 28147-89), каждая из которых имеет 256-битовый ключ и оперирует с блоками размера 64 бита. Каждый из ключей вычисляется в соответствии с некоторой линейной функцией от блока исходного сообщения хi и значения Hi-1. Значение Нi является линейной функцией от результата шифрования, блока исходного сообщения хi и значения Нi-1. После вычисления значения HN для последовательности блоков М1,М2,..,МN применяют еще два шага вычисления согласно формуле
Н = h(М) = f(Z ( МN, f(L, НN )),
где Z - сумма по модулю два всех блоков сообщения, a L – длина сообщения.
7.4. Целостность данных и аутентификация сообщений
Термин "аутентификация" означает установление подлинности. Он может относиться ко всем аспектам взаимодействия: сеансу связи, сторонам, передаваемым сообщениям и т.д. Применительно к самой информации аутентификация означает проверку того, что данные, передаваемые по каналу связи, являются подлинными по своему источнику и содержанию, по времени создания, времени пересылки и т. д.
Рассмотрим эти свойства более подробно.
Целостность данных – свойство, позволяющее убедиться в том, что данные не изменялись неавторизованным способом с тех пор, как они были созданы, переданы или сохранены авторизованным источником. Под изменениями обычно понимают пропуски, вставки, замены и перестановки фрагментов сообщения.
Аутентификация источника данных – получение подтверждения того, что рассматриваемый документ был создан именно указанным соответствующим образом источником информации. Подчеркнем, что при этом не требуется проверка времени создания и единственности документа, важно только то, что он был создан в некоторый (обычно неопределенный) момент времени в прошлом. Нарушение "единственности документа" подразумевает его повторную передачу или повторное использование. Если источник сообщений фиксирован, то вместо термина "аутентификация источника данных" используют термин "аутентификация сообщений".
Целостность данных и аутентификация источника данных тесно связаны друг с другом. Действительно, если данные подверглись модификации, то у них автоматически изменился источник. Если же не установлен источник, то без ссылки на него нельзя разрешить проблему целостности. В связи с этим будем считать по определению, что аутентификация источника данных включает проверку целостности данных.
Рассмотрим примеры.
1. Для обеспечения целостности хранимых данных (М) можно добавить к ним значение криптографической хэш-функции (М, hk(М)), зависящей от ключа, известного только владельцу информации. Такой способ автоматически решает проблему аутентификации источника данных.
2. Для обеспечения целостности передаваемого сообщения можно так же, как и в п. 1, использовать хэш-функцию, зависящую от секретного ключа, известного отправителю и получателю. Аутентификация источника гарантируется тем, что секретный ключ известен только двум сторонам. При этом, однако, исключается возможность разрешения споров, связанных с отказом от авторства. Поэтому аутентификация источника с помощью ключевой хэш-функции возможна только при взаимодействии доверяющих друг другу сторон.
3. При аутентификации источника можно использовать симметричное шифрование, добавляя предварительно к исходному сообщению некоторый секретный, известный только отправителю и получателю, идентификатор. Такой способ, однако, не гарантирует целостности получаемых данных. Дело в том, что шифрование может допускать возможность модификации данных при передаче. Кроме того, для его реализации требуется секретный канал для обмена подобными идентификаторами.
4. Аутентификация источника возможна также при совместном использовании бесключевой хэш-функции и симметричного шифрования. Для этого достаточно воспользоваться одной из следующих форм передаваемого сообщения: Еk(M,h(M)) или (М, Еk(h(М))). В рассматриваемом случае можно повторить те же комментарии, что и в п. 2. К этому следует добавить, что алгоритм шифрования Еk должен быть стойким к атакам на основе известного открытого текста.
5. На практике чаще, чем предыдущие, применяются схемы, использующие бесключевые хэш-функции в сочетании с асимметричным шифрованием. Подобным образом на основе схемы (M,Еk(h(M))) строятся алгоритмы вычисления цифровой подписи. Подобные схемы позволяют решать проблему аутентификации источника как при взаимодействии доверяющих друг другу, так и не доверяющих друг другу сторон.
6. Возможно совместное использование ключевой хэш-функции и симметричного шифрования в соответствии с одной из следующих схем:



и т. д. При таком подходе не только ключи шифрования (k1) и хэш-функции (k2) должны быть независимыми, но и сами алгоритмы шифрования и вычисления значения хэш-функции также должны иметь существенные различия. В противном случае возникают дополнительные соотношения, которые можно использовать для отбраковки ключей.
В заключение рассмотрим вопрос о дополнительном гарантировании единственности и своевременности передачи сообщений. В этом случае используется термин "аутентификация транзакции", означающий аутентификацию сообщения подтверждением единственности и своевременности передачи данных. Такой тип аутентификации предоставляет возможность защиты от повторного использования ранее переданныx сообщений, что является необходимым в тех случаях, когда подобная угроза может привести к нежелательным последствиям. Примером таких приложений являются электронные банковские платежи или системы автоматизированного управления подвижными объектами.
Для обеспечения единственности и своевременности передачи сообщений обычно используются дополняющие аутентификацию параметры, которые вставляются в передаваемые сообщения. Это могут быть метки времени или некоторые последовательности чисел. Если метки времени позволяют установить время создания или передачи документа, то последовательность чисел гарантирует правильность порядка получения сообщений. Помимо этого для аутентификации последующих сообщений могут использоваться случайные числа, передаваемые в предыдущих сообщениях. Такой способ позволяет организовать "жесткое сцепление" идущих друг за другом сообщений.
7.5. Возможные атаки на функции хэширования
Простейшая атака с целью создания поддельного сообщения, применимая к любой хэш-функции, состоит в следующем. Злоумышленник может осуществить генерацию некоторого числа (r1) сообщений, вычислить значения их сверток и сравнить получившиеся значения с известными значениями сверток некоторого множества (из r2) переданных ранее сообщений. Атака окажется успешной при получении хотя бы одного совпадения. Вероятность успеха Р можно оценить на основании парадокса "дней рождений". Известно, что эта вероятность оценивается по формуле


где п – длина свертки, е – основание натуральных логарифмов. Наибольшей эта вероятность становится при r1 = r2 = 2п/2. В этом случае ее значение приблизительно равно 0,63.
Ранее указывалось, что во многих случаях хэш-функции строятся на основе одношаговых сжимающих функций. Поэтому имеется тесная связь атак на хэш-функцию с атаками на соответствующую одношаговую сжимающую функцию. В частности, последняя должна обладать практически всеми теми же свойствами, которыми обладает и сама хэш-функция.
Итеративный способ построения хэш-функции позволяет иногда при ее обращении или построении коллизий использовать метод "встречи посередине". Для защиты от этой опасности в конце сообщения обычно дописывают блоки с контрольной суммой и длиной сообщения.
Возможны атаки, использующие слабости тех схем, на базе которых построены хэш-функции. Например, для построения коллизий хэш-функций, основанных на алгоритмах блочного шифрования, можно использовать наличие слабых ключей или свойство дополнения (как это имеет место у алгоритма DES), наличие неподвижных точек (для которых Еk(х)= х), коллизии ключей (то есть пар различных ключей, для которых выполняется равенство Еk (х) = Еk’ (х)) и т. п.
Контрольные вопросы
Для каких целей применяются хэш-функции?
2. Перечислите основные требования, предъявляемые к хэш-функциям.
3. Почему нельзя использовать в качестве хэш-функции линейные отображения?
4. Сравните требования, предъявляемые к ключевым и бесключевым хэш-функциям.

Тема 8. Криптосистемы с открытым ключом
Системы шифрования с открытыми ключами называют также асимметричными системами. Они следующим o6pазом используются для организации конфиденциальной связи в сети пользователей.
Каждый из корреспондентов системы обладает ключом k =(kз,kр), состоящим из открытого ключа kз и секретного ключа kр . Открытый ключ определяет правило зашифрования Еk, а секретный ключ – правило расшифрования Dk). Эти правила связаны соотношением Dk(Ek(M)) = С для любого открытого текста М и любого шифрованного текста С. Знание открытого ключа не позволяет за приемлемое время (или с приемлемой сложностью) он определить секретный ключ.
Для удобства записи обозначим правила зашифрования и расшифрования (на выбранном ключе k) произвольного корреспондента А символами ЕА и DА соответственно.
Корреспондент В, желая послать конфиденциальное сообщение М корреспонденту А, получает копию ЕА, вычисляет шифртекст С=ЕА(М), который направляет по каналу связи корреспонденту А. Получив сообщение С, корреспондент А применяет к нему преобразование DА, получая открытый текст М.
Открытый ключ не требуется сохранять в тайне. Необходимо лишь обеспечить его аутентичность, что, как правило сделать легче, чем обеспечить рассылку и сохранность секретныx ключей.
Как мы уже отмечали ранее, системы шифрования с открытыми ключами осуществляют блочное шифрование, поэтому открытый текст перед зашифрованием разбивается на блоки выбранного размера, которые последовательно преобразуются таким же образом, как это происходит при использовании блочного шифра в режиме простой замены.
Асимметричные системы шифрования обеспечивают значительно меньшие скорости шифрования, нежели симметричные, в силу чего они обычно используются не столько для шифрования сообщений, сколько для шифрования пересылаемых между корреспондентами ключей, которые затем используются в симметричных системах.
Рассмотрим конкретные примеры систем шифрования с открытыми ключами.
8.1. Шифрсистема RSA
Система RSA была предложена в 1978 г. и в настоящее время является наиболее распространенной системой шифрования с открытым ключом. Напомним ее определение, приведенное в Теме 1 (определение 4).
Пусть п = р q целое число, представимое в виде произведения двух больших простых чисел p,q. Выберем числа е и d из условия
еd(1(mod ((n)), (8.1)
где ((п) = (р – 1) (q–1) – значение функции Эйлера от числа п. Пусть k=(n,p,q,e,d) – выбранный ключ, состоящий из открытого ключа kз =(n,e) и секретного ключа kр = (n,p,q,d). Пусть М – блок открытого текста и С – соответствующий блок шифрованного текста. Тогда правила зашифрования и расшифрования определяются формулами:
С = Еk(М) = Mе(mod n), Dk(C) = Cd(mod n) . (8.2)
Заметим, что в соответствии с (2) Dk(С) = М. Это вытекает из следующих рассуждений. Для любого целого числа М и любого простого р справедливо сравнение
М р ( M(mod р). (8.3)
В самом деле, (8.3) равносильно сравнению
Мр – M ( 0(mod р)
или сравнению
M( Мр-1 – 1) ( 0(mod р) (8.4)
Если НОД(М,р)=р, то р делит М, и поэтому М ( 0(mod p), откуда следует (8.4). Если же НОД(М,р) = 1, то, согласно малой теореме Ферма, Мр-1(l(modp), откуда также следует (8.4).
Согласно (8.1), существует целое число r, такое, что e( d = r(((п)+ 1. Отсюда и из (8.3) получаем следующую цепочку равенств и сравнений:
С d =(Me)d =Me(d = Мr(((п)+ 1=Mr(p-l)(q-l)+l = Mrp(q-l)(M-rq+r+l =
= Mr(q-l)(M-rq+r+l) = Mr(q-l) (M-r(q+r+l ( M(mod р). (8.5)
Аналогично можно показать, что
С d = M(mod р). (8.6)
Поскольку р и q разные простые числа, то на основании известных свойств сравнений из (8.5), (8.6) получаем:
С d = M(mod n).
Отсюда и следует корректность определения (8.2). Для того чтобы лучше представить себе технические детали, возникающие при зашифровании и расшифровании, приведем пример работы с RSA.
Пример
Зашифруем аббревиатуру RSA, используя р=17, q=31. Для этого вычислим n=pq=527 и ((п) = (p–1)(q –1) =480 . Выберем, далее, в качестве е число, взаимно простое с ((п), например е = 7. С помощью алгоритма Евклида найдем целые числа и и v, удовлетворяющие соотношению e(u+((n)(v =1:
480=7(68+4,
7=4(1+3,
4=3(1+1,
1=4–3(1=4–(7–4(1)(1=4(2–7(1=(480–7(68)2–7(1=480(2–7(137,
v=2, и= –137.
Поскольку –137 = 343(mod 480), то d = 343. Проверка:
7(343=2401=l(mod 480).
Теперь представим данное сообщение в виде последовательности чисел, содержащихся в интервале 0,,526. Для этою буквы R,S и А закодируем пятимерными двоичными векторами, воспользовавшись двоичной записью их порядковых номеров в английском алфавите:
R = 18 = (10010), S =19= (10011), А = 1 = (00001).
Тогда RSA= (100101001100001). Укладываясь в заданный интервал 0,,526, получаем следующее представление:
RSA=(100101001),(100001)=(M1 = 297, М2 = 33).
Далее последовательно шифруем М1 и М2:
С1 = Еk(М1) = M1e = 2977 (mod 527) = 474.
При этом мы воспользовались тем, что
2977 =((2972)3297)(mod 527)=((2003(mod 527)297)(mod 527),
С2 = Еk(М2 )= М2e = ЗЗ7 (mod 527) = 407.
В итоге получаем шифртекст: у1 = 474, у2 = 407.
При расшифровании нужно выполнить следующую последовательность действий. Во-первых, вычислить
Dk(C1)=(C1)343(mod 527).
Отметим, что при возведении в степень удобно воспользоваться тем, что 343 =256+64+16+4+2+1. На основании этого представления получаем:
4742 = 174(mod 527), 4744(mod 527) = 237, 4748 (mod 527) = 307,
47416 (mod 527) = 443, 47432 (mod 527) = 205, 47464 (mod 527) = 392,
474128 (mod 527) = 307, 474256 (mod 527) = 443,
в силу чего
474343 (mod 527) = (443 392 443 237 174 474)(mod 527) = 297.
Аналогично
407343 (mod 527) =33.
Возвращаясь к буквенной записи, получаем после расшифрования RSA.
Проанализируем вопрос о стойкости системы RSA. Нетрудно показать, что сложность нахождения секретного ключа системы RSA определяется сложностью разложения числа п на простые множители. В связи с этим нужно выбирать числа р и q таким образом, чтобы задача разложения числа п была достаточно сложна в вычислительном плане. Для этого рекомендуются следующие требования:
1) числа р и q должны быть достаточно большими, не слишком сильно отличаться друг от друга и в то же время быть не слишком близкими друг другу;
2) числа р и q должны быть такими, чтобы наибольший общий делитель чисел р–1 и q– 1 был небольшим; желательно, чтобы НОД(р–1, q–1) = 2 ;
3) р и q должны быть сильно простыми числами (сильно простым называется такое простое число r, что r+1 имеет большой простой делитель, r-1 имеет большой простой делитель s, такой, что число s – 1 также обладает достаточно большим простым делителем).
В случае когда не выполнено хотя бы одно из указанных условий, имеются эффективные алгоритмы разложения п на простые множители.
В настоящее время самые большие простые числа, вида п = р q, которые удается разложить на множители известными методами, содержат в своей записи 140 десятичных знаков. Поэтому, согласно указанным рекомендациям, числа р и q в системе RSA должны содержать не менее 100 десятичных знаков.
Следует подчеркнуть необходимость соблюдения осторожности в выборе модуля RSA (числа п) для каждого из корреспондентов сети. В связи с этим можно сказать следующее.
Самостоятельно можно убедиться в том, что, зная одну из трех величин: р, q или ((п), можно легко найти секретный ключ RSA. Известно также, что, зная секретную экспоненту расшифрования d, можно легко разложить модуль п на множители. В этом случае удается построить вероятностный алгоритм разложения п. Отсюда следует, что каждый корреспондент сети, в которой для шифрования используется система RSA, должен иметь свой уникальный модуль.
В самом деле, если в сети используется единый для всех модуль п, то такая организация связи не обеспечивает конфиденциальности, несмотря на то, что базовая система RSA может быть стойкой. Выражаясь другими словами, говорят о несостоятельности протокола с общим модулем. Несостоятельность следует из того, что знание произвольной пары экспонент (ei,di) позволяет, как было отмечено, разложить п на множители. Поэтому любой корреспондент данной сети имеет возможность найти секретный ключ любого другого корреспондента. Более того, это можно сделать даже без разложения п на множители.
Как отмечалось ранее, системы шифрования с открытыми ключами работают сравнительно медленно. Для повышения скорости шифрования RSA на практике используют малую экспоненту зашифрования.
Если выбрать число е небольшим или таким, чтобы в его двоичной записи было мало единиц, то процедуру шифрования можно значительно ускорить. Например, выбрав е=3 (при этом ни р–1, ни q–1 не должны делиться на 3), мы можем реализовать шифрование с помощью одного возведения в квадрат по модулю п и одного перемножения. Выбрав е = 216 +1=65537 – число, двоичная запись которого содержит только две 1, мы сможем реализовать шифрование с помощью 16 возведений в квадрат по модулю п и одного перемножения. Если экспонента е выбирается случайно, то реализация шифрования по алгоритму RSA потребует s возведений в квадрат по модулю п и в среднем s/2 умножений по тому же модулю, где s – длина двоичной записи числа п. Вместе с тем выбор небольшой экспоненты е может привести к негативным последствиям. Дело в том, что у нескольких корреспондентов могут оказаться одинаковые экспоненты е.
Пусть, например, три корреспондента имеют попарно взаимно простые модули п1, п2, п3, и общую экспоненту е = 3. Если еще один пользователь посылает им некое циркулярное сообщение М, то криптоаналитик противника может получить в свое распоряжение три шифрованных текста yi( М3 (mod ni), i = 1,2,3. Далее он может найти решение у системы сравнений
y ( y1(mod n1),
у ( y2(mod n2),
y ( y3(mod n3),
лежащее в интервале 0 < у < n1 п2 n3. По китайской теореме об остатках такое решение единственно, а так как М3 Отметим, что выбор малой экспоненты расшифрования d также нежелателен в связи с возможностью определения d простым перебором. Известно также, что если d < , то экспоненту d легко найти, используя непрерывные дроби.
8.2. Шифрсистема Эль-Гамаля
Шифрсистема Эль-Гамаля была предложена в 1985г. и является фактически одним из вариантов метода выработки открытых ключей Диффи-Хеллмана (который будет рассмотрен далее). Криптографическая стойкость данной системы основана на сложности проблемы логарифмирования в мультипликативной группе конечного простого поля.
В соответствии с терминологией, введенной в 2, шифрсистема Эль-Гамаля (X, К, Y ,E,D) определяется следующим образом. Для нее
Х= Z*p, Y =Z*p(Z*p, K={(p,(,(,g)(( g (( (mod p)},
где p – достаточно большое простое число, ( – порождающий элемент группы Z*p, g – целое число из интервала 1( g ( p–2. Ключ k=(p,(,(,g) представляется в виде открытого ключа kз = (p,(,() и секретного ключа kр=(g). Правило зашифрования на ключе k определяется формулой
Еk(M)=(C1,C2),
где С1 ( ( r (mod p), С2 = М ( r(mod p),
и r – случайно выбираемое число (рандомизатор) из интервала 0( r( р –2.
Правило расшифрования на ключе k определяется формулой
Dk(C1,C2)=C2(C1g)–1(mod p).
Несложно проверить, что такое определение корректно, то есть что выполняется равенство Dk(Ek(M)) = М при любых k ( К и М ( Х .
Введение в правило зашифрования рандомизатора r делает шифр Эль-Гамаля шифром многозначной замены (см. 4). В связи со случайным характером выбора параметра r подобную схему шифрования называют еще схемой вероятностного шифрования. Для нее открытый текст и ключ не определяют шифртекст однозначно.
Для выработки открытого и секретного ключей каждый из абонентов системы осуществляет следующие операции:
1) выбирает большое простое число р и некоторый порождающий элемент ( группы Z*p;
2) случайно выбирает целое число g, 1( g( p-2, и вычисляет ( ((g(mod p);
3) публикует открытый ключ (р,(,(), оставляя в секрете число g.
Следует отметить, что в приведенной системе необходимо использовать различные значения рандомизатора r для зашифрования различных открытых текстов М и М'. В самом деле, в противном случае соответствующие шифртексты (C1,C2) и (
·1,
·2) оказываются связанными соотношением C2(
·2)–1=M(M') –1 и М' может быть легко вычислен, если известен М.
Как уже отмечалось, стойкость системы Эль-Гамаля определяется сложностью решения задачи дискретного логарифмирования в Z*p. В настоящее время эта задача практически нереализуема для значений р, содержащих не менее 150 десятичных знаков. Рекомендуется также, чтобы число р –1 содержало большой простой делитель.
Система Эль-Гамаля может быть обобщена для применения в любой конечной циклической группе G. Криптографическая стойкость такой обобщенной схемы определяется сложностью задачи логарифмирования в группе G . При этом групповая операция в G должна быть легко реализуемой. В качестве G чаще всего выбираются следующие три группы:
1) мультипликативная группа Z целых чисел по модулю простого числа p;
2) мультипликативная группа GF(2m)* конечного поля GF(2m) характеристики 2;
3) группа точек эллиптической кривой над конечным полем.
Вероятностный характер шифрования можно отнести к достоинствам системы Эль-Гамаля, так как схемы вероятностного шифрования обладают, как правило, большей стойкостью по сравнению со схемами с детерминированным процессом шифрования. Недостатком системы является удвоение длины открытого текста при шифровании.
8.3. Шифрсистема Мак-Элиса
Идея, лежащая в основе данной системы, состоит в выборе корректирующего кода, исправляющего определенное число ошибок, для которого существует эффективный алгоритм декодирования. С помощью секретного ключа этот код "маскируется" под общий линейный код, для которого, как известно, задача декодирования не имеет эффективного решения.
В системе Мак-Элиса параметрами системы, общими для всех абонентов, являются целые числа k, п и t. Для получения открытого и соответствующего секретного ключа каждому из абонентов системы следует осуществить следующую последовательность действий:
1) выбрать порождающую матрицу G=Gk( n двоичного (n,k) -линейного кода, исправляющего t ошибок, для которого известен эффективный алгоритм декодирования;
2) случайно выбрать двоичную невырожденную матрицу S = Sk( k ;
3) случайно выбрать подстановочную матрицу Р = Рn( n ;
4) вычислить произведение матриц G1 = S G Р .
Открытым ключом является пара (G1, t), секретным тройка (S, G, Р).
Для того чтобы зашифровать сообщение М , предназначенное для абонента А, абоненту В следует выполнить следующие действия:
1) представить М в виде двоичного вектора длины k;
2) выбрать случайный бинарный вектор ошибок Z длины п, содержащий не более t единиц;
3) вычислить бинарный вектор С = М GA + Z и направить его абоненту А.
Получив сообщение С, абонент А вычисляет вектор С1 = С Р-1, с помощью которого, используя алгоритм декодирования кода с порождающей матрицей G, получает далее векторы М1 и М = М1 S-1.
Чтобы убедиться в корректности приведенного алгоритма расшифрования, достаточно заметить, что
C1=CP-1 =(MCA+Z) Р-1 =(MSGP+Z)P-1 =(MS) G+ZP-1,
где ZР-1 – вектор, содержащий не более t единиц. Поэтому алгоритм декодирования кода с порождающей матрицей G декодирует С в М1 = М S.
В качестве кода, исправляющего ошибки в системе Мак-Элиса, можно использовать код Гоппы (см., например, [Пит64]). Известно, что для любого неприводимого полинома g(x) степени t над полем GF(2m) существует бинарный код Гоппы длины п = 2m и размерности k ( п – mt, исправляющий до t ошибок включительно, для которого имеется эффективный алгоритм декодирования. В настоящее время не известны эффективные алгоритмы дешифрования системы Мак-Элиса, использующей код Гоппы, при правильном выборе параметров системы.
Вместе с тем рекомендуемые параметры для этой системы – п=1024, t=38, k>644 – приводят к тому, что открытый ключ имеет размер около 219 бит, а длина сообщения увеличивается при шифровании примерно в 1,6 раза, к связи с чем данная система не получила широкого распространения.
8.4. Шифрсистемы на основе "проблемы рюкзака"
''Проблема рюкзака" (или "ранца") может быть сформулирована следующим образом. Пусть задано множество натуральных чисел А={а1,а2,...,ап} и натуральное число S. Требуется установить, имеется ли такое подмножество множества А, сумма элементов которого была бы равна S. Эквивалентной является следующая формулировка: существует ли такой набор чисел хi({0,1}, i(n, для которого

Данная проблема получила свое название в связи с тем, что поставленная задача может быть переформулирована также в следующем виде. Имеется набор предметов с известными весами и рюкзак, который может выдержать вес, не превышающий заданной величины. Можно ли выбрать набор предметов для погрузки в рюкзак так, чтобы они в точности имели максимально возможный вес.
"Проблема рюкзака" является весьма сложной, ее решение с полиномиальной сложностью в настоящее время не известно.
Идея построения системы шифрования на основе "проблемы рюкзака" заключается в выделении некоторого подкласса задач об укладке рюкзака, решаемых сравнительно легко, и "маскировки" задач этого класса (с помощью некоторого преобразования параметров) под общий случай. Параметры подкласса определяют секретный ключ, а параметры модифицированной задачи – открытый ключ. В качестве легко решаемой задачи Р.Меркль и М.Хеллман в 1978г. предложили задачу об укладке "супервозрастающего" рюкзака. Изложим ее суть.
Назовем супервозрастающей последовательность натуральных чисел (b1,b2,...,bп), обладающую свойством

Можно убедиться в том, что "проблема рюкзака" для супервозрастающей последовательности может быть решена с помощью процедуры, состоящей в выполнении следующих шагов:
1. Положить i = п.
2. Если i > 1, то положить хi равным 1 и S равным S – bi, если S>bi, и положить хi равным 0 в противном случае.
3. Положить i равным i –1 и возвратиться к шагу 2.
В системе, основанной на проблеме рюкзака, величина п является параметром системы.
Для вычисления открытого и соответствующего секретного ключа каждый из абонентов системы осуществляет следующую последовательность действий.
Выбирает супервозрастающую последовательность (b1,b2,...,bп) и модуль т, такой, что

2. Выбирает случайное число W, 13. Выбирает случайную перестановку л чисел {1,2,...,n}.
4. Вычисляет ai=W b((i) mod m для i = 1,,п.
Открытым ключом является набор (а1,а2,...,ап), секретным ключом – набор ((,m,W,(b1,b2,...,bп)).
Чтобы зашифровать сообщение М, предназначенное для абонента А, абонент В осуществляет следующие шаги с помощью открытого ключа (а1,а2,...,ап) абонента А:
1. Представляет М в виде бинарной последовательности М=М1М2...Мп длины п.
2. Вычисляет С = и направляет его к А.
Абонент А, получив С, вычисляет Н =W-1C mod m, a затем, решая "проблему рюкзака" для супервозрастающей " последовательности, находит числа zi ({0,1}, такие, что

Биты последовательности М вычисляются по формуле
Мi= z((i) , i = 1,,п.
Корректность проведенной процедуры расшифрования вытекает из следующих рассуждений. Поскольку


и 0 < Н < т, то Н= и, следовательно, алгоритм решения "проблемы рюкзака" действительно находит биты открытого текста, переставленные в соответствии с перестановкой л.
Вместе с тем доказано, что существует алгоритм полиномиальной сложности, который может быть использован противником для получения открытого текста М по шифртексту С. Этот алгоритм, исходя из аi , находит пару таких целых чисел и1 , т1, что отношение и1 /т1 близко к отношению и/т
(где u=W-1modm, a W,m являются частью секретного ключа). Кроме того, числа Вi=uiai(modm), 1Контрольные вопросы
1. В чем состоят преимущества систем с открытыми ключами перед симметричными шифрсистемами?
2. Сложностью какой математической задачи определяется стойкость системы RSA?
3. К какому типу принадлежит схема шифрования, используемая в системе Эль-Гамаля? В чем ее преимущества?
4. Чем вызваны трудности в практической реализации системы Мак-Элиса?
5. Придумайте алгоритм вычисления аd(тоd п), имеющий сложность 0(ln п).
6. Постройте пример шифра Эль-Гамаля для р = 127. Зашифруйте и расшифруйте выбранное Вами т ( 126.

Литература

А.В. Аграновский. Р.А. Хади. Практическая криптография. М., Солон-Р, 2002.
Алфёров, А.П., Зубов, А.Ю., Кузьмин, А.С., Черёмушкин, А.В. Основы криптографии. -М.: Гелиос АРВ, 2005.
Андрончик, А. Н. и др. Защита информации в компьютерных сетях. Практический курс: учебное пособие / А. Н. Андрончик, В. В. Богданов, Н. А. Домуховский, А. С. Коллеров, Н. И. Синадский, Д. А. Хорьков, М. Ю. Щербаков; Под ред. Н. И.Синадского – Екатеринбург: ГОУ ВПО УГТУ - УПИ, 2008. – 246 с.
Анохин М. И., Варновский Н. П., Сидельников В. М., Ященко В. В. Криптография в банковском деле. М.: Изд-во МИФИ, 1997.
Аршинов М. Н., Садовский Л. Е. Коды и математика. М.: Наука, 1983.
А.В. Бабаш, Г.П. Шанкин. Криптография. М., Солон-Р, 2002.
А.П. Баранов, Н.П. Борисенко, П.Д. Зегжда, С.С. Корт, А.Г. Ростовцев "Математические основы информационной безопасности" .
С. Баричев, Р. Серов "Основы современной криптографии"
A.A-Большаков, А.Б. Петряев, В.В. Платонов, Л.М. Ухлинов. "Основы обеспечения безопасности данных в компьютерных системах и сетях. Часть 1. Методы, средства и механизмы защиты данных", ВИККА им. Можайского, СПБ, 1995.
Брассар Ж. Современная криптология. М.: Полимед, 1999.
Бейкер А. Введение в теорию чисел. Мн.: Вышэйш. шк., 1995.
Березин Б. В., Дорошкевич П. В. Цифровая подпись на основе традиционной криптографии // Защита информации. 1992. Вып. 2. С.148167.
Болл У., Коксетер Г. Математические эссе и развлечения (криптография и криптографический анализ). М.; Мир, 1986.
Брассар Ж. Современная криптология. М.:Полимед,1999.
Варфоломеев А. А., Пеленицын М. Б. Методы криптографии и их применение в банковских технологиях. М.: Изд-во МИФИ, 1995.
Варфоломеев А. А., Жуков А. Е., Пудовкина М. А. Поточные криптосистемы. Основные свойства и методы анализа стойкости. М.: Изд-во МИФИ, 2000.
Варфоломеев А. А., Домнина О. С., Пеленицын М. Б, Управление ключами в системах криптографической защиты банковской информации. М.: Изд-во МИФИ, 1996.
Введение в криптографию / Под ред. В.В. Ященко. М.: МЦНМО, 2001.
М. Вельшенбах. Криптография на Си и C++ в действии. Под редакцией П.В. Семьянова. М., Триумф, 2004.
Гайкович В., Першин А. Безопасность электронных банковских систем. М.: Единая Европа, 1994.
Герасименкo В.А., Малюк A.A. Основы защиты информации: Учеб. пособие. М.:МИФИ, 1997.
Диффи У., Хеллман М. Э. Защищенность и имитостойкость. Введение в криптографию // ТИИЭР. 1979. Т. 67. № 3.
Духан, Е. И. Применение программно-аппаратных средств защиты компьютерной информации: учеб. пособие / Е. И. Духан, И. Н. Синадский, Д. А. Хорьков. – Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2007. – 174 с.
Жельников В. Криптография от папируса до компьютера. М.: ABF, 1996.
Зубов, А.Ю. Криптографические методы защиты информации. Совершенные шифры. -М.: Гелиос АРВ, 2005.
Дэвид Кан. Взломщики кодов. - М.: Центрполиграф, 2000.
Д.Кан "Разведчики и цензура"
Нил Коблиц, Курс теории чисел и криптографии, М. ТВП, 2001
Конхейм А. Г. Основы криптографии. М.: Радио и связь, 1987.
Кузьминов Т. В. Криптографические методы защиты информации. Новосибирск: Наука, 1998.
Лидл Р., Нидеррайтер Г. Конечные поля: В 2 т. М.: Мир, 1988.
Мельников В.В. Защита информации в компьютерных системах. М.: Финансы и статистика, 1997.
Молдовян Н.А. Проблематика и методы криптологии. СПб.: Изд-во СПбГУ, 1998.
Молдовян Н.А. Скоростные и блочные шифры. СПб.: Изд-во СПбГУ, 1998.
А.А. Молдовян, Н.А. Молдовян, Б.Я. Советов. Криптография. М.. Лань, 2001.
МэссиДж.Л. Современная криптология: введение // ТИИЭР. 1988. Т. 76. № 5.
Нечаев В.И. Элементы криптографии. Основы теории защиты информации. М.: Высш. шк., 1999.
Ноден П., Китте К. Алгебраическая алгоритмика. М.: Мир, 1999.
ОрловВ.А., Филиппов Л.И. Теория информации в упражнениях и задачах. М.: Высш. шк., 1976.
Петров А. А. Компьютерная безопасность. Криптографические методы защиты. М.:ДМК, 2000.
Романец Ю.В., Тимофеев П.А., Шаньгин В.Ф. Защита информации в компьютерных системах и сетях. -М.: Радио и связь, 1999.
Ростовцев А.Г., Матвеев В.А. Защита информации в компьютерных системах. Элементы криптологии. Под редакцией П. Д. Зегжды. Издание СПбГТУ, 1993.
40. Ростовцев А.Г. Алгебраические основы криптографии. СПб, Мир и Семья, 2000.
Ростовцев А.Г.. Маховенко Е.Б. Введение в криптографию с открытым ключом. СПб, Мир и Семья, 2001.
Саломаа А. Криптография с открытым ключом.М.:Мир, 1996.
Сачков В.Н, Введение в комбинаторные методы дискретной математики. М.: Наука, 1982.
Сингх, С. Книга шифров. Тайная история шифров и их расшифровки. -М.: АСТ - Астрель, 2006.
Словарь криптографических терминов. Под ред. Погорелова Б.А., Сачкова В.Н. -М.: МЦНМО, 2006.
Соболева Т. А. Тайнопись в истории России. История криптографической службы России XVIII-начала XX в. -М.: Международные отношения, 1994.
Столлингс В. Криптография и защита сетей. Принципы и практика. -М.: Изд. Дом "Вильяме" 2-е изд., 2001.
Утешев А.Ю., Черкасов Т.М.. Шапошников А.А. Цифры и шифры. СПб.: Изд-во СПбГУ. 2001.
Фомичёв, В.М. Дискретная математика и криптология. 2-е изд. -М.: “ДИАЛОГ-МИФИ”, 2009.
Харин Ю.С., Агиевич С.В. Компьютерный практикум по математическим методам защиты информации. Мн.: БГУ, 2001.
Харин Ю.С., Берник В.И., Матвеев Г.А. Математические основы криптологии. Мн.: БГУ, 1999.
Хинчин А.Я. Цепные дроби. M.: Физматгиз, 1964.
Хоффман Л. Современные методы защиты информации. – М.:Мир,1970.
А.Чмора. Современная прикладная криптография. М., Гелиос, 2002.
Шеннон К. Теория связи в секретных системах//В кн.: Работы по теории информации и кибернетике.- М.: ИЛ,1963.
Брюс Шнайер. Прикладная криптография, 2-е издание: протоколы, алгоритмы. исходные тексты на языке Си. Под редакцией П.В. Семьянова. М., Триумф, 2002.
Периодические издания
журнал "Защита информации. Конфидент"
журнал "Проблемы информационной безопасности. Компьютерные системы"
ИНТЕРНЕТ-ИСТОЧНИКИ
А. В. Бабаш, Г.П. Шанкин, Криптография, 2007, 511 стр., DJVU, 9.5 мб
[ Cкачайте файл, чтобы посмотреть ссылку ]
Панасенко Сергей, Алгоритмы шифрования. Специальный справочник. 2009 г., 576 стр., djvu, 7,41Mb
[ Cкачайте файл, чтобы посмотреть ссылку ]
Московский Государственный Технический Университет им. Н.Э. Баумана, Кафедра ИУ-8, Жуков А.Е. Системы блочного шифрования. Пособие по курсу «Криптографические методы защиты информации»
[ Cкачайте файл, чтобы посмотреть ссылку ]
Московский Государственный Технический Университет им. Н.Э. Баумана, Кафедра ИУ-8, Жуков А.Е. Системы поточного шифрования. Пособие по курсу «Криптографические методы защиты информации»
[ Cкачайте файл, чтобы посмотреть ссылку ]
Практическая Криптография, Нильс Фергюсон, Брюс Шнайер, Изд. Вильямс, 2005,416 стр.
[ Cкачайте файл, чтобы посмотреть ссылку ]
"Handbook of Applied Cryptography".
[ Cкачайте файл, чтобы посмотреть ссылку ]










13PAGE 15


13PAGE 149915


13PAGE 15


13PAGE 1415115





























































































































































































































































































































































































































































































































































































































































































































































































































































































































13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

















































13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415










































































13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

























13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415



13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415

13 EMBED Equation.3 1415













 " * 2 4
·
·
· ‹Root Entry15Times New Roman Гельруд Я.Д. Гельруд Я.Д.

Приложенные файлы

  • doc 8942301
    Размер файла: 2 MB Загрузок: 0

Добавить комментарий