Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практическая криптография алгоритмы и их программирование
.pdf
Введение 11
ких ассоциаций у подавляющего большинства математиков и специалистов по
связи. Если необходимо было «закрыть» канал связи, то использовалась специальная аппаратура, которая представлялась для конечных пользователей «черным
ящиком», в который надо было лишь воткнуть проводки, нажать на определенные
кнопки и повернуть ручки.
С начала 90-х годов ситуация резко изменилась. Выпущено уже несколько сотен различных изданий по теме информационной безопасности, в том числе и по
криптографии. Множество книг переведены с иностранных языков, каждый месяц появляются книги русских авторов по прикладной и теоретической криптографии.
К сожалению, количество выпускаемых книг не всегда сопровождается качеством. И особое внимание необходимо уделять именно тому, как вольно обращаются с терминами новоиспеченные «криптоматематики». Некоторые авторы
«книг по криптографии» не имеют никакого отношения даже к математике, не говоря уж о кодах и шифрах. Потому и выходят казусы с «шифрацией», «криптованием» и «дешифрированием» данных.
Конечно, никто не застрахован от возможных нелепостей и казусов, связанных с написанием, редактированием, версткой, макетированием и печатью больших объемов текста. Поэтому авторы просят осведомленных читателей отнестись
с пониманием к возможным техническим «ляпам».
А для того чтобы избежать технических накладок, авторы предлагают считать верными следующие трактовки зарубежных и отечественных терминов:
•
криптографическая атака (cryptoanalitic attack) — попытка криптоаналитика вызвать отклонения от нормального проведения процесса конфиденциального обмена информацией. Соответственно взлом или вскрытие, дешифрование шифра или шифросистемы — это успешное применение криптографической атаки;
•
криптоанализ (cryptanalysis) и криптоаналитик (cryptanalytic) — соответственно набор методик и алгоритмов дешифрования криптографически защищенных сообщений, анализа шифросистем и человек, все это осуществляющий;
•
дешифрование (deciphering) и расшифрование (decryption) — соответственно методы извлечения информации без знания криптографического ключа и
со знанием оного. Термин «дешифрование» обычно применяют по отношению к процессу криптоанализа шифротекста (криптоанализ сам по себе, вообще говоря, может заключаться и в анализе шифросистемы, а не только
зашифрованного ею открытого сообщения);
•
криптографический ключ (cryptographic key, cryptokey, иногда просто
key) — в случае классических криптосистем секретная компонента шифра.
Должен быть известен только законным пользователям процесса обмена
информации;
•
зашифрование (encryption) — процесс зашифрования информации, то есть
применения криптографического преобразования данных, эту информацию
содержащих;

12 Введение
аутентичность данных и систем (authenticity of information) — для данных
•
аутентичность можно определить как факт подтверждения подлинности информации, содержащейся в этих данных, а для систем — способность обеспечивать процедуру соответствующей проверки — аутентификации данных;
аутентификация (authentication) — процедура проверки подлинности дан-
•
ных, то есть того, что эти данные были созданы легитимными (законными)
участниками процесса обмена информации;
гамма-последовательность или просто гамма (gamma sequence, gamma) —
•
обычно этот термин употребляется в отношении последовательности псевдослучайных элементов, которые генерируются по определенному закону и
алгоритму. Однако в случае, когда это не так, употребляется модификация
термина — например, «равновероятная гамма» или «случайная гамма» —
для обозначения последовательностей, элементы которых распределены по
равномерному вероятностному закону, то есть значения имеют сплошной
спектр;
гаммирование (gamma xoring) — процесс «наложения» гамма-последовате-
•
льности на открытые данные. Обычно это суммирование в каком-либо конечном поле (например, в поле GF(2) (см. [4, 6 и 9]) такое суммирование
принимает вид обычного «исключающего ИЛИ» суммирования);
имитозащита — это защита данных в системах их передачи и хранения от
•
навязывания ложной информации. Имитозащита достигается обычно за
счет включения в пакет передаваемых данных имитовставки;
•
имитовставка — блок информации, вычисленный по определенному закону
и зависящий от некоторого криптографического ключа и данных;
•
блочные (блоковые) и поточные (потоковые) шифры — авторы сознательно
используют термин «блочный» шифр, а не «блоковый», как наиболее популярный и устоявшийся. Понятия «поточного» и «потокового» шифров идентичны и одинаково популярны, однако в силу симметрии авторы предпочитают использовать термин «поточный шифр», но «потоковая обработка информации»;
•
криптографическая стойкость, криптостойкость (cryptographic strength) —
устойчивость шифросистемы по отношению ко всем известным видам криптоанализа;
•
принцип Керкхоффа (Kerchkoff) — принцип изобретения и распространения криптографических алгоритмов, в соответствии с которым в секрете
держится только определенный набор параметров шифра (и в обязательном
порядке криптографический ключ), а все остальное может быть открытым
без снижения криптостойкости алгоритма. Этот принцип был впервые
сформулирован в работе голландского криптографа Керкхоффа «Военная
криптография» вместе с дюжиной других, не менее известных (например, о
том, что шифр должен быть удобным в эксплуатации, а также о том, что
шифр должен быть легко запоминаемым);
•
развертывание или разворачивание ключа (key shedule) — процедура вычисления последовательности подключей шифра из основного ключа шифрования;

Введение 13
раунд или цикл шифрования (round) — один комплексный шаг алгоритма, в
•
процессе которого преобразовываются данные;
подключ шифрования (round key, subkey) — криптографический ключ, вы-
•
числяемый и используемый только на этапе шифрования из основного ключа шифрования. Обычно применяется в качестве входа функций усложнения на различных раундах шифрования;
шифр и шифросистема (cipher, cypher, ciphercode) — обычно выход крипто-
•
системы и сама симметричная криптосистема соответственно. В зависимости от контекста шифр может обозначает «шифровку», то есть зашифрованное с его помощью сообщение, либо саму криптографическую систему преобразования информации.
Список литературы
1. Столлингс В. «Криптография и защита сетей», М: Вильямс, 2001.
2. Медведовский И. Д., Семьянов П. В., Платонов В. В., «Атака через Интернет»,
ÑÏá: 1999.
3. В. Г. Проскурин, С. В. Крутов, И. В. Мацкевич: «Защита в операционных сис-
темах», М: Радио и связь: 2000.
4. Аграновский А. В., Хади Р. А., Ерусалимский Я. М., «Открытые системы и
криптография», Телекоммуникации, 2000.
5. Agranovsky A. V., Hady R. A., «Crypto miracles with random oracle», The Proceedings of IEEE SIBCOM'2001, The Tomsk Chapter of the Institute of Electrical and Electronics Engineers, 2001.
6. А. В. Аграновский, А. В. Балакин, Р. А. Хади, «Классические шифры и методы
их криптоанализа», М: Машиностроение, Информационные технологии, ¹ 10, 2001.
7. А. А. Молдовян, Н. А. Молдовян, Советов Б. Я., «Криптография»: СПб.: Издательство «Лань», 2000.
8. С. Расторгуев, «Программные методы защиты информации в компьютерах и сетях», М: Издательство Агентства «Яхтсмен», 1993.
9. А. Ростовцев, «Алгебраические основы криптографии», СПб.: Мир и Семья, 2000.
10. Чмора А. Л., «Современная прикладная криптография», М.: Гелиос АРВ, 2001.
11. Устинов Г. Н., «Основы информационной безопасности», М: Синтег, 2000.
12. Анин Б., «Защита компьютерной информации», СПб: БХВ, 2000.
13. Романец Ю. В., Тимофеев П. А., «Защита информации в компьютерных системах и сетях», М: Радио и связь, 2001.
14. Menezes A., van Oorschot P., Vanstone S., «Handbook of Applied Cryptography», CRC press, 1996.
15. Schneier B., «Applied Cryptography», John Wiley & Sons Inc, 1996.
16. Милославская Н. Г., Толстой А. И., «Интрасети: доступ в Интернет, защита»,
М.: ЮНИТИ-ДАНА, 2000.
17. Gutmann P.: «Network Security», University of Auckland, 1996.
18. Саломаа А.: «Криптография с открытым ключом», Москва: «Мир», 1995.
318 с.
19. Олифер В., Олифер Н.: «Компьютерные сети», Спб.: Издательство «Питер»,
1999. 672 ñ.

Глава 2
Теория секретных систем
С точки зрения криптографии секретная система в большой
степени тождественна системе связи с зашумлением.
Клод Элвуд Шеннон.
Математическая теория секретных систем
Криптография сегодня — это наука об обеспечении безопасности данных
или, как говорят, информационной безопасности. Шифрование — это основное
действие в криптографии, шифрование — это преобразование данных в такую
форму или представление, что понять смысл передаваемых или хранимых данных, не обладая специальной дополнительной информацией (криптографическими ключами), невозможно. Шифрование позволяет обеспечить конфиденциальность, сохраняя информацию в тайне от того, кому она не предназначена.
По определению ISO — международной организации, разрабатывающей
стандарты для открытых систем, задачами обеспечения защиты информации являются:
•
обеспечение конфиденциальности информации (защита передаваемой информации от доступа и копирования любым принципалом (человеком,
компьютером или программой), кроме того, кому доступ определен системой защиты либо непосредственно источником информации).
•
защита информации от искажения (сохранение целостности передаваемой
информации таким образом, что принимающая сторона имеет возможность
определять, была ли изменена информация в процессе передачи. Достигается использованием имитозащиты и хэшей).
•
аутентификация сообщений и пользователей (и идентификация как возможность ведения записей в системе, специальная подпись документов, которые могут стать определяющими в споре об авторстве передаваемой информации).
•
признание авторства (аналогично аутентификации, с той лишь разницей,
что доказательство авторства проводится в случае, когда источник информации отрицает факт передачи информации).
Все эти задачи решаются с помощью применения методов и средств криптографической защиты информации. Криптография существует уже несколько столетий, но только несколько десятилетий как всемирно признанная научная область деятельности. Эти годы являются периодом интенсивного развития как закрытых, так и открытых исследований в различных областях математики с точки
зрения применения ее в криптографии.
Пожалуй, сейчас можно считать, что история современной криптографии (и
уж несомненно, блочных и поточных шифров!) началась с одного-единственного

Глава 2. Теория секретных систем 15
человека — Клода Элвуда Шеннона (30.04.1916—24.02.2001), американского
ученого, профессора Массачусетского политехнического университета (рис. 2.1).
Мало известен тот факт, что профессор Шеннон был дальним родственником Томаса Эдисона, пожалуй, одного из самых известных в мире изобретателей.
Видимо, это повлияло на выбор жизненного пути молодого Клода Шеннона, который с детства увлекался всевозможными конструкторскими поделками и изобретениями.
Выставленные в домашней коллекции, его изобретения столь же удивительны, как и изобретения Эдисона, которыми человечество пользуется до сих пор.
1
Клод Элвуд Шеннон вообще был весьма увлекающимся человеком
. Например,
являясь страстным поклонником игры в шахматы, он построил машину для игры в
шахматы задолго до появления IBM'овского Deep Blue и его поединка с Каспаровым. А в 1965 году Шеннон, находясь по приглашению в России, вызвал на шахматную дуэль чемпиона мира Михаила Ботвинника. И хотя проиграл на 42-м
ходе, все же показал хорошую игру.
Такая удивительная компиляция разных талантов в одном человеке позволяла Шеннону видеть обычные вещи с несколько иной точки зрения, нежели как
это видели все остальные. На вручении Нобелевской премии его ответное слово
прозвучало весьма скромно и достойно великого ученого: «Я лишь заметил то, что
научные достижения в одной научной области могут быть полезны и в других областях».
Естественно ожидать, что все сложное и трудноразрешимое привлекало такого человека. Наверняка именно поэтому Шеннон был увлечен криптографией,
той, какой она была в его время — с первой четверти и до середины XX века.
Поскольку криптография — плод древа военных технологий, ни одно самое большое изобретение Шеннона в криптографии и теории информации не могло бы обойтись без вмешательства военных. Действительно, достоверно известно, что с
1941 (а по всей видимости, и гораздо раньше) по
1972 год он работал не только с исследовательской лабораторией Bell Laboratories, но также тесно сотрудничал и с американскими военными. На
протяжении всей Второй мировой вместе с командой изобратетелей Bell Шеннон работал над различными секретными системами, в том числе с
системой радаров и противовоздушной обороны
для военной авиации.
Ðèñ. 2.1. Клод Элвуд Шеннон
1
К всеобщей скорби, великий ученый и изобретатель Клод Элвуд Шеннон скончался 24
февраля 2001 года в Медфорде, штат Массачусетс, США, в результате продолжительной бо
рьбы с изнуряющей его болезнью Альцгеймера. Эта новость стала трагической вехой, завер
шающей эпоху великих изобретений начала века информационных технологий, праотцом ко
торых был и навсегда останется для всего мира доктор технических наук, профессор Клод Эл
вуд Шеннон.
-
-
-
-

16 Глава 2. Теория секретных систем
Его детищем стала система распознавания «свой — чужой» в американской
авиации, которая использовалась для определения нейтральных и «своих» целей
и отличия их от вражеских. А система радаров долгое время пользовалась большой популярностью у разведок всего мира.
2
Но самым ценным результатом военного союза «Шеннон — УСС»
стала, наверное, математическая теория систем связи («A Mathematical Theory of Communication», опубликованная в «The Bell System Technical Journal» в 1948 году) и последовавшая сразу за ней математическая теория секретных систем.
Зафиксированные в первой работе принципы теории информации и теории
связи стали основополагающими для многих последующих изобретений и открытий на целые десятилетия.
Именно в ней Шеннон предложил схему организации каналов связи, содержащую источник сообщений, их приемник и источник шума, наделив их свойствами вероятностных объектов (рис. 2.2).
Шеннон определил источник как некоторый случайный процесс, генерирующий и передающий по каналу связи сообщения, с определенной априори вероятностью для каждого возможного из них. Для этого он воспользовался классическим определением вероятностного пространства, подчинив появление каждого
сообщения законам классической теории вероятности и сделав сообщения дискретными. В его трактовке каждое сообщение представляло собой неделимые с
точки зрения источника и получателя блоки информации. Это значительно упрощает процесс формального описания различных процессов, которые могут происходить в системе передачи данных, и позволяет записать все законы взаимодействия с помощью вероятностных формул в простых выражениях.
В этой же статье Шеннон предложил собственную версию понятия «информации», дав термину четкое определение и указав в качестве меры этой самой ин-
Ðèñ. 2.2. Схема канала связи по Шеннону
2
Управление стратегических служб (OSS) — предшественник ЦРУ, действовало как ор
ган американской внешней разведки и служба по проведению тайных операций во время Вто
рой мировой войны. Гарри Труман, преемник президента США Теодора Рузвельта, распустил
ОСС в октябре 1945 года.
-
-

Глава 2. Теория секретных систем 17
формации аналог физической энтропии — энтропию информационную. Эту меру
информации Шеннон выразил с помощью логарифмических функций, о чем сообщают все учебники по алгебраической теории кодирования и теории информации.
Однако мало кто объясняет, почему был выбран именно логарифм, видимо считая
это настолько очевидным, что данный факт не требует никаких дополнительных
пояснений.
На самом деле действительно все довольно просто. Как говорится, все гениальное объясняется с помощью простых понятий. С одной стороны, до Шеннона в
теоретической физике существовали понятия энтропии и негэнтропии, связанные
с макро- и микросостояниями систем физических объектов. Они описывали меру
неопределенности состояния физической системы и выражались — подумать только! — через натуральный логарифм.
Идея Шеннона — принять за информацию неопределенность поведения системы получения сообщений — быстро нашла свою естественную аналогию с физическими системами. И Шеннон, предложив рассматривать конечное пространство сообщений, счел разумным использовать логарифмический вид выражения
энтропии сообщения, правда представленного в двоичной форме.
Действительно, логарифмическое представление имеет ряд простых преимуществ. Во-первых, это интуитивно понятное определение, оно вполне вписывалось в существующие общепринятые стандарты измерения и не вызывало отторжения у многочисленного научного сообщества. Монотонность логарифма определяла линейность функции измерения. Да и применение логарифма было и
остается весьма удобным на практике. Например, в измерениях всевозможных
вариантов подключений реле или триггеров — добавление одного такого элемента в схему, по сути, добавляет единицу к аргументу логарифма по основанию два.
Сам же логарифм в этом случае выражает своего рода среднюю длину пути через
все триггеры на схеме. Двойка в основании логарифма появляется тоже достаточно просто — она берется как результат эксперимента «включено/выключено» —
по теме, связанной с подсчетом триггеров в электрической цепи, эффективности
цепей и электропроводности Шеннон защитил магистерскую диссертацию. Так
что ответы на все эти вопросы он знал как свои пять пальцев.
Связав два понятия — энтропию и информативность — вместе, Шеннон немедленно получил определение избыточности текста.
По этому поводу он проводил довольно интересные эксперименты, что называется, «над людьми». Один из таких экспериментов подробно описан им самим и
является своего рода опытной основой для необходимости нахождения числового
эквивалента содержательности сообщения.
Опыт же заключался в том, что выбирался наугад некоторый осмысленный
текст (художественный, публицистический или технический) на английском языке. Затем оттуда поочередно брали по одной букве. Показывая сначала одну букву этого текста, потом две, три и так далее, Шеннон предлагал участникам эксперимента угадать букву, которая, по их мнению, должна была бы непосредственно
следовать за всеми уже показанными. Одновременно с этим подсчитывалось количество угаданных букв и общее количество «угадываний». Начиная с первой
буквы, участники постепенно улучшали свои результаты. Однако начиная с неко
-

18 Глава 2. Теория секретных систем
торого момента отношение количества угаданных букв к общему количеству испытаний стало более или менее постоянным. По размышлениям Шеннона, это
означало, что в данном тексте количество информации, приходящее в среднем на
одну букву, ограничено некоторым числом. Отсюда, скорее всего, и оценки энтропии различных языков.
В работах, подобных этой, а также посвященных анализу открытых и зашифрованных текстов, Шеннон использовал научные результаты, полученные в начале XX века русским ученым А. А. Марковым, специалистом, чьим именем назван
огромный раздел в теории случайных процессов. Подсчитанные Марковым частоты появления символов в различных языках иногда представляют до сих пор актуальный материал для помощи в исследованиях. Надо сказать, что и Клод Шеннон
использовал в криптографии уже найденные результаты и собственные достижения в теории вероятностей весьма активно в собственном же изложении теории
связи и информации.
В 1945 году Шеннон сделал доклад, содержание которого было засекречено,
посвященный секретным системам связи, принципам их построения и некоторым
другим не менее важным составляющим аспектам секретных систем. Позже его
работа была опубликована в качестве статьи. С момента опубликования его секретного доклада «Математическая теория криптографии» в виде статьи начинается настоящий бум в криптографии. Профессиональный криптограф, Шеннон весьма удачно перенес свою стройную схему организации систем связи на поле криптографических битв.
Клод изложил схему секретной системы связи с точки зрения формирования
обычного канала связи, описание которого уже было доступно всем. Источник помех, присутствовавший в классической схеме, был заменен на специалиста-криптографа, пытающегося разгадать шифрованные сообщения криптоаналитика, обладающего всеми необходимыми ресурсами.
Ðèñ. 2.3. Схема канала секретной связи

Глава 2. Теория секретных систем 19
Шеннон в полной мере использовал правило Керкхоффа: его криптографическая система подобна наборному замку с изменяемой комбинацией, используемому для защиты сейфов. Структура замка доступна каждому, кто его приобрел, но
вот комбинация замка держится в секрете и может быть изменена всякий раз,
когда существует подозрение, что она была утеряна — скомпрометирована.
Даже если противник попробует перебрать все возможные комбинации-ключи, он может даже оказаться не в состоянии определить, какой из них оказался
правильным. Подобная открытость — естественное свойство канала связи, чем и
не преминул воспользоваться Шеннон, заменив передатчик на блок зашифрования сообщения с помощью тайного ключа — «комбинации замка», а приемник на
модуль расшифрования.
Испробовав данную модель, Шеннон развил идею, предложив практическое
применение таким математическим характеристикам, как энтропия и емкость канала. Созданная им теория секретных систем содержит множество иных идей,
она сформировала немало важных замечаний и следствий, которыми пользуются
до сих пор. В частности, предложенный им метод построения блочных шифров
оказался основополагающим принципом на многие десятилетия вперед.
Современная криптография
Несомненно, все криптографические исследования оставались одной из самых активных областей информатики на
протяжении последних десяти лет, и многие результаты замечательны и прекрасны.
Д. Кнут. Лекция «Ответы на все вопросы»
5 октября 2001 года в Техническом
университете г. Мюнхена
Современная криптография порядком обросла математической лепниной и
теперь имеет целый набор эффективных средств по моделированию криптографических систем и их анализу. Для того чтобы иметь достаточно представления о
том, какие методы и алгоритмы шифрования реализованы и опубликованы в этой
книге, обратимся к краткому экскурсу в теорию современной криптографии.
Ïîä детерминированной системой шифрования мы будем понимать отображение F : P × K → C, ãäå P, Ñ è Ê — непустые множества, называемые соответственно пространством открытых текстов èëè входов, пространством
шифротекстов èëè выходов и пространством ключей, причем при каждом фиксированном значении k∈K отображение F
: P → C = F(p, k) является мономор-
(k)
физмом. Последнее необходимо для возможности однозначного расшифрования
шифротекста. Для краткости детерминированную систему шифрования принято
называть просто шифром. Порядком системы называется число различных отображений F
, то есть таких, что F
(k)
(k1)
≠ F
ïðè k1 ≠ k2. Степенью системы при-
(k2)
нято называть мощность множества P. Шифр называется нерастягивающим,
åñëè P=C, растягивающим, åñëè P<C è эндоморфным, åñëè P = C.
Если разным ключам системы соответствуют различные отображения F, то систе
-

20 Глава 2. Теория секретных систем
ма называется точной. Ïîä алфавитом будем понимать конечное множество A,
элементы которого называются символами (буквами, знаками). Тогда текст —
это упорядоченный набор символов. Стоит отметить также два важных свойства
систем шифрования, которыми должны обладать все стойкие криптографические
отображения. Рассеиванием называется влияние любого знака открытого текста
или ключа на знаки шифротекста. Это свойство делает восстановление неизвестного ключа по частям трудной, а в идеале неразрешимой задачей. Под перемеши-
ванием понимают использование таких преобразований, которые усложняют поиск связи между открытым и зашифрованным текстом методами статистического
анализа или делают его невозможным (трудноосуществимым).
Виды симметричных шифров
Шифр можно считать симметричным, если для криптографического преобразования данных (после которого они теряют смысл для противника) применяются
одни и те же преобразования, зависящие от одного и того же ключа. Все симметричные системы шифрования можно характеризовать по способам преобразований, выполняемых с открытым текстом: перестановки, моноалфавитные замены,
полиалфавитные замены, подстановки, композиционные и итерационные шифры,
шифры Файстеля.
Шифры перестановки являются простейшими и, вероятно, самыми древними. Они заключаются в том, что символы открытого текста переставляются по
определенному правилу, зависящему от ключа, в пределах этого текста.
Моноалфавитными заменами называют шифры, в которых символы алфавита открытого текста меняются на символы того же алфавита по определенному
правилу, зависящему от ключа.
Полиалфавитные замены — это шифры, в которых символы открытого текста меняются на символы того же либо другого алфавита по определенному правилу, зависящему от ключа и от положения символа в тексте. Полиалфавитная
замена называется подстановкой, если алфавиты открытого и зашифрованного
текстов совпадают.
Пусть имеется семейство систем шифрования F
для которых P = C, то есть пространства входов и выходов всех шифров совпадают. Тогда композиционным (каскадным, послойным) шифром будет называться
шифр, полученный с помощью композиции шифров семейства, задаваемый отображением F : P × (K
k = (k
, ..., k4)∈K1× ... × Kn. При этом отображение Fiпринято называть i-ì öèê-
1
лом шифрования, K
× ... × Kn) → P, ãäå F = F
1
— ключом i-го цикла шифрования èëè цикловым ключом.
i
Итерационным шифром называется композиционный шифр, у которого сов-
падают все циклы шифрования F
и ключевые пространства Ki. Говоря неформаль-
i
но, итерационный шифр — это применение одной и той же криптографической
функции n раз с, вообще говоря, разными ключами.
Шифром Файстеля (сбалансированной сетью Файстеля) называется ком-
F
...°F
позиционный шифр F = F
°
n−1
°
n
, åñëè P = T × T, ãäå Ò — некоторое непус
1
: P × Ki→ C, i = 1, 2, ..., n,
i
F
...°F
°
n−1
°
n
. Его ключом будет
1
-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
