А,В, Соколов, 0,М, Степанюк Проблемы защиты информации Характеристика угроз и способы защиты от них Криптографическая защита и биометрия Электронная цифровая подпись Стеганография А. ...
-- [ Страница 8 ] --Алгоритмы, в которых открытый текст обрабатывается побитно, называются пото ковыми алгоритмами или потоковыми шифрами. В других алгоритмах открытый текст разбивается на блоки, состоящие из нескольких бит. Такие алгоритмы называются блочными, или блочными шифрами. В современных компьютерных алгоритмах блоч ного шифрования длина блока обычно составляет 64 бита.
Основное преимущество несимметричных алгоритмов перед симметричными со стоит в том, что секретный ключ, позволяющий расшифровывать всю получаемую информацию, известен только получателю сообщения. Кроме того, первоначальное распределение ключей в системе не требует передачи секретного ключа, который мо жет быть перехвачен нарушителем. Несимметричные алгоритмы получили новое ка чество Ч на их основе строятся протоколы цифровой подписи. Для аутентификации с использованием симметричных алгоритмов часто требуется участие доверенной тре тьей стороны, которая, как, например, в схеме Kerberos, хранит копии секретных клю чей всех пользователей. Компрометация третьей стороны может привести к компро метации всей системы аутентификации. В системах с открытым ключом эта проблема устранена потому, что каждый пользователь отвечает за безопасность только своего секретного ключа.
Симметричные алгоритмы при обнаружении в них каких-либо слабостей могут быть доработаны путем внесения небольших изменений, а для несимметричных такая воз можность отсутствует.
Симметричные алгоритмы работают значительно быстрее, чем алгоритмы с откры тым ключом. На практике несимметричные алгоритмы шифрования часто применяют ся в совокупности с симметричными алгоритмами: открытый текст зашифровывается симметричным алгоритмом, а секретный ключ этого симметричного алгоритма зашиф ровывается на открытом ключе несимметричного алгоритма. Такой механизм называ ют цифровым конвертом (digital envelope).
Наиболее широко в настоящее время применяются следующие алгоритмы шифро вания:
Q DES (Data Encryption Standard);
Q Blowfish;
Q IDEA (International Decryption-Encryption Algorithm);
а ГОСТ 28147-89;
Q RSA (авторы: Rivest, Shamir и Alderman);
a PGP.
В симметричных криптоалгоритмах (DES, ГОСТ, Blowfish, RC5, IDEA) для шиф рования и расшифрования информации используется один и тот же секретный ключ.
Достоинствами таких алгоритмов являются:
О простота программной и аппаратной реализации;
Q высокая скорость работы в прямом и обратном направлениях;
Q обеспечение необходимого уровня защиты информации при использовании ко ротких ключей.
К основным недостаткам этих криптоалгоритмов следует отнести увеличение зат рат по обеспечению дополнительных мер секретности при распространении ключей, а 324 :
также то, что алгоритм с секретным ключом выполняет свою задачу только в услови ях полного доверия корреспондентов друг другу.
В несимметричных криптоалгоритмах (RSA, PGP, ECC) прямое и обратное преоб разования выполняются с использованием открытого и секретного ключей, которые не имеют взаимосвязи, позволяющей по одному ключу вычислить другой. С помощью открытого ключа практически любой пользователь может зашифровать свое сообще ние или проверить электронно-цифровую подпись. Расшифровать такое сообщение или поставить подпись может только владелец секретного ключа.
Такие алгоритмы позволяют реализовать протоколы типа цифровой подписи, обес печивают открытое распространение ключей и надежную аутентификацию в сети, ус тойчивую даже к полному перехвату трафика.
Шифрование в компьютерной сети Поскольку высок уровень компьютерных преступлений, связанных с несанкцио нированным доступом к информации в сетях различного масштаба, существует необ ходимость создавать определенные механизмы защиты сетей. Практика показала, что единственно надежным механизмом защиты информации в сетевых каналах связи яв ляется ее шифрование, а значит, использование криптографического преобразования конфиденциальных данных. При этом обеспечение защиты информации указанным методом не должно нарушать работу сети в реальном масштабе времени, что возмож но при выполнении шифрования со скоростью до 1 Гбит/с и выше.
Рассмотрим особенности шифрования в компьютерных сетях более подробно.
Виды шифрования в сетевых каналах связи Одной из отличительных характеристик любой компьютерной сети является ее деление на так называемые уровни, каждый из которых отвечает за соблюдение опре деленных условий и выполнение функций, необходимых для общения между компью терами, связанными в сеть. Это деление на уровни имеет фундаментальное значение для создания стандартных компьютерных сетей. Поэтому в 1984 году несколько международных организаций и комитетов объединили свои усилия и выработали при мерную модель компьютерной сети, известную под названием OSI (Open Systems Interconnection Ч Модель открытых сетевых соединений).
Согласно модели OSI, коммуникационные функции разнесены по уровням. Функ ции каждого уровня не зависят от функций ниже- и вышележащих уровней. Каждый уровень может непосредственно общаться только с двумя соседними. Модель OSI определяет 7 уровней: верхние 3 служат для связи с конечным пользователем, а нижних ориентированы на выполнение коммуникационных функций в реальном мас штабе времени (рис. 4.4).
Теоретически шифрование данных для передачи по каналам связи компьютерной сети может осуществляться на любом уровне модели OSI. На практике это обычно делается либо на самых нижних, либо на самых верхних уровнях. Если данные шифруются на нижних уровнях, шифрование называется канальным, а если на верхних, то такое шиф Глава 4. Криптографические методы защиты информации Передача Протоколы: Прием Управление прикладными програ чмами APPLICATION i t Управление представлением да иных PRESENTATION i t Управление сеансами SESSION i t Управление транспортировкой д<энных TRANSPORT t * Пакбты 1 Пакеты NETWORK 1 t Кадры Кадры Управления DATALINK * информационным каналом t Биты ьиты ^ Управления PHYSICAL изическии физическим каналом I компьютер №1 Передающая среда компьютер № Рис. 4.4. Модель открытых сетевых соединений рование называется сквозным. Оба этих подхода к шифрованию данных имеют свои пре имущества и недостатки. Возможна комбинация указанных видов шифрования (рис. 4.5).
При канальном шифровании шифруются абсолютно все данные, проходящие по каждому каналу связи, включая открытый текст сообщения, а также информацию о его маршрутизации и об используемом коммуникационном протоколе. Однако в этом случае любой интеллектуальный сетевой узел (например, коммутатор) будет вынуж ден расшифровывать входящий поток данных, чтобы соответствующим образом его обработать, снова зашифровать и передать на другой узел сети.
Тем неменее, канальное шифрование представляет собой очень эффективное сред ство защиты информации в компьютерных сетях. Поскольку шифрованию подлежат все данные, передаваемые от одного узла сети к другому, у криптоаналитика нет ника кой дополнительной информации о том, кто служит источником этих данных, кому они предназначены, какова их структура и т. д. А если еще позаботиться и о том, что бы, пока канал простаивает, передавать по нему случайную битовую последователь ность, сторонний наблюдатель не сможет даже сказать, где начинается и где заканчи вается текст передаваемого сообщения.
Не слишком сложной является и работа с ключами. Одинаковыми ключами следу ет снабдить только два соседних узла сети связи, которые затем могут менять исполь зуемые ключи независимо от других пар узлов.
Самый большой недостаток канального шифрования заключается в том, что данные приходится шифровать при передаче по каждому физическому каналу компьютерной сети. Отправка информации в незашифрованном виде по какому-то из каналов ставит под угрозу обеспечение безопасности всей сети. В результате стоимость реализации канального шифрования в больших сетях может оказаться чрезмерно высокой.
Кроме того, при использовании канально rfw шифрования^ - ^ виды го шифрования дополнительно потребуется шифрования дополнительно потребуется g сети _^/ защищать каждый узел компьютерной сети, " Канальное по шифрование которому передаются данные. Если або шифрование ненты сети полностью доверяют друг другу, Комбинированное и каждый ее узел находится там, где он защи шифрование щен от злоумышленников, на этот недоста Рис. 4.5. Виды шифрования ток канального шифрования можно не обра в компьютерной сети щать внимания. Однако на практике такое положение встречается чрезвычайно редко.
Ведь в каждой фирме есть конфиденциальные данные, ознакомиться с которыми мо гут только сотрудники одного отдела, а за его пределами доступ к этим данным необ ходимо ограничивать до минимума.
При сквозном шифровании криптографический алгоритм реализуется на одном из верхних уровней модели OSI. Шифрованию подлежит только содержательная часть сообщения. По мере шифрования добавляется служебная информация, необходимая для маршрутизации сообщения, и результат переправляется на более низкие уровни для отправки адресату.
Передаваемое сообщение теперь не требуется постоянно шифровать и расшифро вывать при его прохождении через каждый промежуточный узел сети. Оно остается зашифрованным на всем пути от отправителя к получателю.
Основная проблема, с которой сталкиваются пользователи сетей, где применяется сквозное шифрование, связана с тем, что служебная информация, используемая для маршрутизации сообщений, передается по сети в незашифрованном виде. Опытный криптоаналитик может извлечь для себя массу полезной информации, зная, кто с кем, как долго и в какие часы общается через компьютерную сеть. Для этого ему даже не потребуется быть в курсе предмета общения.
Сквозное шифрование по сравнению с канальным характеризуется более сложной работой с ключами, так как каждая пара пользователей компьютерной сети должна быть снабжена одинаковыми ключами, прежде чем они смогут связаться друг с дру гом. А поскольку криптографический алгоритм реализуется на верхних уровнях мо дели OSI, приходится также сталкиваться со многими существенными различиями в коммуникационных протоколах и интерфейсах в зависимости от типов сетей и объе диняемых в сеть компьютеров. Все это затрудняет практическое применение сквозно го шифрования.
Комбинация канального и сквозного шифрования данных в компьютерной сети обходится значительно дороже, чем каждое из них. Однако именно такой подход по зволяет наилучшим образом защитить данные, передаваемые по сети. Шифрование в каждом канале связи не позволяет противнику анализировать служебную информа цию, используемую для маршрутизации, а при сквозном шифровании уменьшается вероятность доступа к незашифрованным данным в узлах сети.
При комбинированном шифровании работа с ключами ведется следующим обра зом: сетевые администраторы отвечают за ключи, используемые при канальном шиф ровании, а о ключах, применяемых при сквозном шифровании, заботятся сами пользо ватели.
Глава 4. Криптографические методы защиты информации Аппаратное шифрование Большинство средств криптографической защиты данных реализовано в виде спе циализированных физических устройств. Эти устройства встраиваются в линию связи и шифруют всю передаваемую по ней информацию. Преобладание аппаратного шиф рования над программным обусловлено несколькими причинами:
Q более высокая скорость шифрования;
О аппаратуру легче физически защитить от проникновения извне;
Q аппаратура шифрования более проста в отладке.
Криптографические алгоритмы состоят из огромного числа сложных операций с битами открытого текста. Современные универсальные компьютеры плохо приспо соблены для эффективного выполнения этих операций, а специализированное обору дование умеет делать это гораздо быстрее.
Программа, выполняемая на персональном компьютере, практически беззащитна.
Вооружившись отладчиком, злоумышленник может внести в нее скрытые изменения, чтобы понизить стойкость используемого криптографического алгоритма, и никто ничего не заметит. Аппаратура же обычно помещается в особые контейнеры, чтобы нельзя было изменить схему ее функционирования. Чип покрывают специальным хи мическим составом, и при любой попытке преодолеть защитный слой этого чипа про исходит самоуничтожение его внутренней логической структуры. И даже в случае, когда электромагнитное излучение может служить хорошим источником информа ции о том, что творится внутри микросхемы, от этого излучения легко избавиться, заэкранировав микросхему. Аналогичным образом можно заэкранировать и компью тер, однако сделать это гораздо сложнее, чем миниатюрную микросхему.
Очень часто шифрование требуется там, где дополнительное компьютерное обо рудование совершенно излишне. Телефоны, факсимильные аппараты и модемы значи тельно дешевле оборудовать устройствами аппаратного шифрования, чем встраивать в них микрокомпьютеры с соответствующим программным обеспечением.
Даже в компьютерах установка специализированного шифровального оборудова ния создает меньше проблем, чем модернизация системного программного обеспече ния с целью добавления в него функций шифрования данных. В идеале шифрование должно осуществляться незаметно для пользователя. Чтобы добиться этого при по мощи программных средств, средства шифрования должны быть упрятаны глубоко в недра операционной системы. С готовой и отлаженной операционной системой проде лать это безболезненно не так-то просто. Но даже любой непрофессионал сможет под соединить шифровальный блок к персональному компьютеру, с одной стороны, и к внешнему модему, с другой.
Современный рынок аппаратных средств шифрования информации предлагает по тенциальным покупателям следующие разновидности таких средств:
Q самодостаточные шифровальные модули (они самостоятельно выполняют всю работу с ключами);
Q блоки шифрования в каналах связи;
Q шифровальные платы расширения.
Большинство устройств первого и второго типов являются узкоспециализирован ными, и поэтому прежде чем принимать окончательное решение об их приобретении, необходимо досконально изучить ограничения, которые при установке накладывают эти устройства на общую конструкцию, операционные системы и прикладное программ ное обеспечение. А иначе можно выбросить деньги на ветер, ни на йоту не приблизив шись к желанной цели. Правда, иногда выбор облегчается тем, что некоторые компа нии торгуют коммуникационным оборудованием, которое уже имеет предустановленную аппаратуру шифрования данных.
Платы расширения для персональных компьютеров являются более универсаль ным средством аппаратного шифрования и обычно могут быть легко сконфигурирова ны таким образом, чтобы шифровать всю информацию, которая записывается на жест кий диск компьютера, а также все данные, пересылаемые на дискеты и в последовательные порты. Как правило, защита от электромагнитного излучения в шифровальных платах расширения отсутствует, поскольку нет смысла защищать эти платы, если аналогичные меры не предпринимаются в отношении всего компьютера.
Программное шифрование файлов Любой криптографический алгоритм можно реализовать в виде соответствующей программы. Преимущества такой реализации очевидны: программные средства шиф рования легко копировать, они просты в использовании, их нетрудно модифицировать в соответствии с конкретными потребностями.
Во всех распространенных операционных системах имеются встроенные средства шифрования файлов. Обычно они предназначены для шифрования отдельных файлов, и работа с ключами целиком возлагается на пользователя. Поэтому применение этих средств требует особого внимания. Во-первых, ни в коем случае нельзя хранить клю чи на диске вместе с зашифрованными с их помощью файлами, а, во-вторых, незашиф рованные копии файлов необходимо удалить сразу после шифрования.
Конечно, злоумышленник может добраться до компьютера и незаметно внести неже лательные изменения в программу шифрования. Однако основная проблема состоит со всем не в этом. Если злоумышленник в состоянии проникнуть в помещение, где установ лен компьютер, он вряд ли будет возиться с программой, а просто установит скрытую камеру в стене, подслушивающее устройство в телефон или датчик для ретрансляции элек тромагнитного излучения в компьютер. В конце концов, если злоумышленник может бес препятственно все это сделать, сражение с ним проиграно, даже еще не начавшись.
На первый взгляд, шифрование файлов можно полностью уподобить шифрованию сообщений, отправителем и получателем которых является одно и то же лицо, а сре дой передачи служит одно из компьютерных устройств хранения данных (магнитный или оптический диск, магнитная лента, оперативная память). Однако все не так про сто, как кажется на первый взгляд.
Если при передаче по коммуникационным каналам сообщение затеряется по пути от отправителя к получателю, его можно попытаться передать снова. При шифрова нии данных, предназначенных для хранения в виде компьютерных файлов, дела обсто ят иначе. Если вы не в состоянии расшифровать свой файл, вам вряд ли удастся сде лать это и со второй, и с третьей, и даже с сотой попытки. Ваши данные будут потеряны раз и навсегда. Это означает, что при шифровании файлов необходимо предусмотреть специальные механизмы предотвращения возникновения ошибок в шифрот^ксте.
Глава 4. Криптографические методы защиты информации Криптография помогает превратить большие секреты в маленькие. Вместо того чтобы безуспешно пытаться запомнить содержимое огромного файла, человеку доста точно его зашифровать и сохранить в памяти использованный для этой цели ключ.
Если ключ применяется для шифрования сообщения, то его требуется иметь под ру кой лишь до тех пор, пока сообщение не дойдет до своего адресата и не будет им успешно расшифровано. В отличие от шифрованных сообщений, шифрованные файлы могут храниться годами, и в течение всего этого времени необходимо помнить и дер жать в секрете соответствующий ключ.
Есть и другие особенности шифрования файлов, о которых необходимо помнить вне зависимости от применяемого криптографического алгоритма:
01 нередко после шифрования файла его незашифрованная копия остается на другом маг нитном диске, на другом компьютере или в виде распечатки, сделанной на принтере;
Q размер блока в блочном алгоритме шифрования может значительно превышать размер отдельной порции данных в структурированном файле, в результате чего зашифрованный файл окажется намного длиннее исходного;
Q скорость шифрования файлов при помощи выбранного для этой цели криптогра фического алгоритма должна соответствовать скоростям, на которых работают устройства ввода/вывода современных компьютеров;
О! работа с ключами является довольно непростым делом, поскольку разные пользо ватели должны иметь доступ не только к различным файлам, но и к отдельным частям одного и того же файла.
Если файл представляет собой единое целое (например, содержит какой-то текст), восстановление этого файла в исходный вид не потребует больших усилий: перед ис пользованием достаточно просто расшифровать весь файл. Однако если файл струк турирован (например, разделен на записи и поля, как это делается в базах данных), то расшифрование всего файла целиком требуется каждый раз, когда необходим доступ к отдельным порциям данных, за счет чего работа с таким файлом чрезвычайно неэф фективна. Шифрование порций данных в структурированном файле делает его уязви мым по отношению к атаке, при которой злоумышленник отыскивает в этом файле нужную порцию данных и заменяет ее на другую по своему усмотрению.
У пользователя, который хочет зашифровать каждый файл, размещенный на жест ком диске компьютера, имеются две возможности. Если он использует один и тот же ключ для шифрования всех файлов, то впоследствии окажется не в состоянии разгра ничить доступ к ним со стороны других пользователей. Кроме того, это приведет к тому, что у криптоаналитика будет много шифротекста, полученного на одном ключе, что существенно облегчит вскрытие этого ключа.
Лучше шифровать каждый файл на отдельном ключе, а затем зашифровать все ключи при помощи мастер-ключа. Тем самым пользователи будут избавлены от суеты, свя занной с организацией надежного хранения множества ключей. Разграничение досту па групп пользователей к различным файлам будет осуществляться путем деления множества всех ключей на подмножества и шифрования этих подмножеств на различ ных мастер-ключах. Стойкость такой криптосистемы будет значительно выше, чем в случае использования единого ключа для шифрования всех файлов на жестком диске, поскольку ключи можно генерировать случайным образом, поэтому они будут более стойкими против словарной атаки.
330 ;
Х Общая характеристика современных стандартов шифрования Очевидно, что в основе защиты информации лежит процесс шифрования. Лучшие умы человечества на протяжении всей истории занимались проблемами составления шифров. Главное, к чему все стремились, Ч это создать криптоустойчивые шифры.
Разработанные шифры и соответствующие ключи в дальнейшем использовали в алго ритмах шифрования. Алгоритмов шифрования существует великое множество, мы рассмотрим лишь самые популярные из них, получившие статус стандартов. Это DES (Data Encryption Standard), RSA (алгоритм Rivest-Shamir-Adleman), PGP, наш отече ственный ГОСТ 28147-89 (который в иностранной литературе чаще называется про сто GOST) и другие. Причем современные шифры Ч это не только собственно алго ритмы шифрования, а криптографические системы, где определены также возможные типы и параметры ключей, способы организации работы с ключами и зашифрованны ми сообщениями, правила определения подлинности и целостности сообщений и т. п.
Основа каждого стандарта Ч определенные математические построения, знать кото рые не обязательно. Гораздо важнее знать особенности и область применения того или иного стандарта.
В основе любой криптографической системы лежат алгоритм шифрования, прото кол взаимодействия участвующих сторон и процедура управления ключами.
Протокол Ч это последовательность шагов, которые предпринимают стороны для совместного решения задачи. Все шаги следуют в порядке строгой очередности, и ни один из них не может быть сделан прежде, чем закончится предыдущий. Кроме того, любой протокол подразумевает участие, по крайней мере, двух сторон. В одиночку можно, например, смешать и выпить коктейль, но к протоколу это не имеет никакого отношения. Поэтому придется угостить кого-нибудь сделанным коктейлем, чтобы его приготовление и дегустация стали настоящим протоколом. И наконец, протокол обя зательно предназначен для достижения какой-то цели.
Протоколы имеют и другие отличительные черты:
Q каждый участник протокола должен быть заранее оповещен о шагах, которые ему предстоит предпринять;
Q все участники протокола должны следовать его правилам добровольно, без при нуждения;
Q необходимо, чтобы протокол допускал только однозначное толкование, а его шаги были совершенно четко определены и не допускали возможности их не правильного понимания;
Q протокол должен содержать описание реакции его участников на любые ситуа ции, возникающие в ходе реализации этого протокола, иными словами, недопу стимым является положение, когда для возникшей ситуации протоколом не оп ределено соответствующее действие.
Криптографическим протоколом называется такой, в основе которого лежит набор правил и процедур, определяющих использование криптоалгоритма и ключей шифро вания. Однако целью криптографического протокола зачастую является не только со хранение информации в тайне от посторонних. Участники криптографического про токола могут быть близкими друзьями, у которых нет друг от друга секретов, а могут Глава 4. Криптографические методы защиты информации являться настолько непримиримыми врагами, что каждый из них отказывается сооб щить другому, какое сегодня число. Тем не менее, им может понадобиться поставить подписи под совместным договором или удостоверить свою личность. В данном слу чае нужна криптография, чтобы предотвратить или обнаружить подслушивание по сторонними лицами, не являющимися участниками протокола, а также не допустить мошенничества. Поэтому часто требуется, чтобы криптографический протокол обес печивал следующее: его участники могут сделать или узнать больше того, что опреде лено протоколом.
В повседневной жизни нам приходится сталкиваться с протоколами буквально на каждом шагу: играя в любые игры, делая покупки в магазине или голосуя на выборах.
Многими протоколами нас научили пользоваться родители, школьные учителя и дру зья. Остальные мы сумели узнать самостоятельно.
Теперь люди все чаще общаются при помощи компьютеров. Компьютеры же, в от личие от большинства людей, в школу не ходили, у них не было родителей, да и учить ся самостоятельно они не в стоянии. Поэтому компьютеры приходится снабжать фор мализованными протоколами, чтобы они смогли делать то, что люди выполняют особо не задумываясь. Например, если в магазине не окажется кассового аппарата, вы все равно сможете купить в нем необходимую вещь. Однако такое кардинальное измене ние протокола поставило бы бедный компьютер в полный тупик.
Большинство протоколов, которые люди используют при общении друг с другом с глазу на глаз, хорошо себя зарекомендовали только потому, что участники имеют воз можность вступить в непосредственный контакт. Взаимодействие с другими людьми через компьютерную сеть, наоборот, подразумевает анонимность. Будете ли вы иг рать с незнакомцем в преферанс, видя, как он тасует колоду и раздает карты? Довери те ли вы свои деньги совершенно постороннему человеку, чтобы он купил вам что нибудь в магазине? Пошлете ли вы свой бюллетень голосования по почте, зная, что с ним сможет ознакомиться любой из почтовых работников и потом рассказать всем о ваших нетрадиционных политических пристрастиях?
Глупо считать, что компьютерные пользователи ведут себя более честно. То же самое касается и сетевых администраторов, и проектировщиков компьютерных сетей.
Большинство из них и в самом деле честные люди, однако есть и такие, кто может причинить большие неприятности. Поэтому так нужны криптографические протоко лы, использование которых позволяет защититься от непорядочных людей.
Остановимся на рассмотрении характеристик стандартов шифрования, наиболее часто используемых в компьютерных системах.
Популярный алгоритм шифрования данных DES применяется правительством США как стандарт с 1977 года. Для шифрования алгоритм использует 64-битный ключ, блок данных из 64-и бит и 16-и проходов (циклов). Этот алгоритм достаточно быстр и эф фективен. Однако в изначальном виде этот стандарт недостаточно криптоустойчив, т. к.
прямые атаки с перебором ключей занимают, при сегодняшнем уровне технологий, разумный срок. Поэтому в настоящее время используются всевозможные его модифи кации, такие как 3-DES и каскадный 3-DES.
За счет внесения дополнительных изменений в алгоритм (таких, например, как вве дение дополнительных избыточных ключей или обратной связи) эти модификации стали гораздо более устойчивы к прямым атакам. Главным же недостатком этой системы 332..
= :
является то, что она использует так называемые симметричные ключи: для шифрова ния и дешифрации сообщения используется один и тот же секретный ключ. Поэтому необходимым условием успешного использования этой системы является наличие сек ретного защищенного канала для передачи ключа. Если злоумышленник перехватит ключ для шифрования, то он легко может при помощи этого же ключа осуществить расшифровку секретного сообщения. Если же защищенный канал передачи существу ет, то вполне разумно тогда передать и само сообщение по этому же каналу, не прибе гая к процедуре шифрования.
Государственный стандарт ГОСТ 28147-89 был утвержден в 1989 году как сред ство обеспечения безопасности, являющееся стандартом для государственных учреж дений. Хотя он и не является основным криптосредством защищенных линий прави тельственной связи, однако это единственный более-менее открытый стандарт такого рода для исследования и использования самым широким кругом людей. Несмотря на то что в России ГОСТ играл ту же роль, что и DES в США, этот стандарт стал упот ребляться и в других странах. Например, алгоритм шифрования популярного архива тора ARJ построен как раз на использовании алгоритмов ГОСТ.
ГОСТ очень схож с DES. В нем так же используются 64-битные блоки. Тем не менее есть и ряд различий, например, в ГОСТ совершается 32 прохода вместо 16-и, ключ гораздо длиннее и состоит из 256 бит и т. д. В общем, среди специалистов принято считать, что он по своим характеристикам превосходит DES. Однако в на стоящее время и его расшифровка лежит в пределах современных технологий.
И точно так же ему присущи все недостатки алгоритмов, использующих симметрич ные ключи.
Сегодня популярен стандарт шифрования RSA. Во многом это произошло благо даря распространенности в Internet программы PGP (Pretty Good Privacy) Филиппа Зиммермана. RSA -это алгоритм несимметричного шифрования, стойкость которого зависит от сложности факторизации больших целых чисел. В настоящее время алго ритм взлома RSA не разработан математически, а за счет использования очень длин ных ключей и некоторой медленности всего алгоритма перебор за разумное время попросту невозможен.
В несимметричных алгоритмах используются два разных ключа: один известен всем, а другой держится в тайне. Обычно для шифрования и расшифровки используются оба ключа. Но данные, зашифрованные одним ключом, можно расшифровать только с по мощью другого ключа. Это обстоятельство делает RSA очень удобным для использо вания в электронной переписке. Открытый ключ делается общедоступным (его попро сту можно вставлять в реквизиты вашего письма). Каждый может зашифровать сообщение и послать его вам. А расшифровать сообщение, даже зная открытый ключ, невозможно. Для этого надо знать второй, закрытый ключ, который есть только у от правителя. Однако и здесь существуют свои трудности:
О в случае утраты секретного ключа придется уведомлять всех владельцев откры той половины о смене ключей;
Q трудно убедиться в подлинности присланного вам открытого ключа.
Кроме того, отправителя легко подделать. Для того чтобы убедиться в подлиннос ти ключа, порой используют целую лцепочку доверия, где каждый последующий пе редающий на 100% уверен в подлинности ключа (вследствие давнего знакомства, бли Глава 4. Криптографические методы защиты информации зости расположения к отправителю или в силу других причин), подтверждает эту под линность своей подписью и пересылает ключ дальше.
Однако следует разделять собственно алгоритм RSA и другие продукты лаборато рии RSA Data Security. Например, существует еще алгоритм RC5 Ч быстрый блоч ный шифр, который имеет размер блока 32, 64 или 128 бит, ключ длиной от 0 до бит, от 0 до 255 проходов..
Рассмотрим стандарты и системы шифрования более подробно.
Стандарт шифрования данных DES и его практическая реализация Стандарт шифрования данных DES (Data Encryption Standard) является одним из известных алгоритмов криптографической защиты данных, используемых до недавне го времени в США. Этот стандарт Ч типичный представитель криптоалгоритмов, ис пользующих симметричное шифрование. Благодаря таким качествам, как обеспече ние высокого уровня защиты информации, простота и экономичность в реализации, он нашел широкое применение в различных областях государственной и военной дея тельности. Рассмотрим детально принцип шифрования данных с помощью алгоритма DES.
Сегодня стандарт шифрования DES используется в Соединенных Штатах, за не большим исключением, практически везде. Правительственная связь, электронные банковские переводы, гражданские спутниковые коммуникации и даже пароли компь ютерных систем Ч везде, в той или иной мере, применяется защита, основанная на DES. Криптоалгоритм DES, получивший официальный статус стандарта в 1977 году, ознаменовал наступление новой эпохи в криптографии. Сертифицировав алгоритм защиты, американское правительство дало зеленую улицу изучению криптографичес ких алгоритмов и благословило попытки взлома систем, построенных на их основе.
Логическая структура функционирования алгоритма DES иллюстрируется схемой обработки данных, изображенной на рис. 4.6.
Приведенная схема описывает как процесс шифрования, так и расшифровки ин формации. Алгоритм шифрования данных преобразует открытый текст в шифротекст или наоборот, в зависимости от режима использования. Как видно из структурной схе мы, алгоритм имеет два входа по 64 бита каждый: один Ч для шифруемого открытого текста (при дешифровке Ч для шифротекста), другой Ч для ключа, и один 64-битный выход для полученного шифротекста (при расшифровке Ч для открытого текста). Из 64-х бит ключа непосредственно в процессе шифрования участвуют только 56 бит.
Это связано с тем, что ключ представляется в виде восьмибитовых символов кода ASCII, каждый символ которого имеет один бит проверки на четность. Именно эти провероч ные биты и не используются в алгоритме DES.
Основными блоками преобразования данных согласно алгоритму DES являются блоки перестановки, замены и сложения по модулю 2. В стандарте DES предусмотре но использование трех типов перестановок: простые, расширенные и сокращенные.
Простые перестановки осуществляют изменение порядка следования бит данных.
В расширенных перестановках некоторые биты используются повторно, а в сокра щенных Ч часть битов данных просто отбрасывается.
Ключ 64 бита Выход 64 бита Вход 64 бита 64(56) Блок Блок Блок начальной обратной сокращенной перестановки перестановки перестановки 32 Правый Левый регистр регистр Блок сокращенной перестановки Блок расширенной престановки Ключ шифрования 48 цикла сложения по молдулю Рис. 4.6. Логическая структурная схема алгоритма шифрования данных DES Первым преобразованием, которому подвергаются входные данные, является на чальная перестановка, имеющая достаточно регулярный характер. Точны^ порядок замены показан на рис. 4.7. При такой перестановке первый входной бит на выходе становится сороковым, второй Ч восьмым и т. д. Начальная перестановка использует ся только для удобства реализации и не имеет самостоятельной криптографической ценности.
Глава 4. Криптографические методы защиты информации Данные После начальной перестановки по- лученные 64 бита данных делятся на 11011....
58 50 42 34 26 18 две части по 32 бита, которые записы 60 52 44 36 28 20 ваются в два регистра Ч левый и пра- 62 54 46 38 30 22 14 64 56 48 40 32 24 16 вый. Именно после этого и начинает 57 49 41 33 25 17 ся работа основного цикла алгоритма 59 51 43 35 27 19 шифрования. 61 53 45 37 29 21 Из правого регистра 32 бита посту- 63 55 47 39 31 23 15 пают на вход блока расширенной пе 57 58 59 60 61 62 63 рестановки, который производит их регулярное преобразование таким об Рис. 4.7. Порядок замены входных данных разом, что первый, четвертый, пятый и восьмой биты каждого из четырех октетов преобразуемых бит используются дваж ды. Таким образом, на выходе блока расширенной перестановки появляется уже не 32, а 48 бит. Правило преобразования данных в блоке расширенной перестановки пред ставлено на рис. 4.8. Как видно из рисунка, при расширенной перестановке 1-й выход ной бит соответствует 32-му входному биту, 2-й выходной бит Ч 1-му входному и т. д.
С выхода блока расширенной перестановки полученные 48 бит данных поступают на сумматор по модулю 2, где складываются с 48 битами ключа шифрования. Полу ченные в результате этой операции 48 бит данных разделяются на 8 секстетов, посту пающих на 8 соответствующих S-блоков замены. С.выходов S-блоков 32 бита (8 раз по 4 бита) поступают на блок простой перестановки, задаваемой табл. 4.1, согласно ко торой в простой перестановке 1-й выходной бит равен 16-му входному, 2-й выходной бит Ч 7-му входному и т. д.
Таблица 4.1. Правило простой перестановки 16 7 20 29 12 28 1 15 23 18 5 2 8 32 27 3 13 30 22 11 В конце основного цикла данные с выхода блока простой перестановки складывают ся по модулю 2 с данными, поступившими в левый регистр после начальной перестанов ки. Результат суммирования поступает в правый регистр, а содержащиеся в нем после начальной перестановки 32 бита без изменений переписываются в левый регистр.
Описанная процедура основного цикла шифрования повторяется 16 раз, прежде чем содержимое правого и левого регистра объединяется в единый 64-битный блок данных и после блока обратной перестановки, осуществляющего перестановку, об ратную по отношению к начальной перестановке, поступает на выход алгоритма DES.
Отметим, что при формировании 64-битного блока данных, содержимое регистров объединяется в последовательности правого и левого регистров.
, 30 31 (С Данные из правого регистра Выходная последовательность 8 6 10 11 12 12 13 14 15 16 16 17 18 19 20 20 21 22 23 24 24 25 26 27 28 V 28 29 30 31 32 Рис. 4.8. Работа блока расширенной перестановки Блоки замены в алгоритме DES (в литературе обычно обозначаемые как S-блоки) имеют 6-битные входы и 4-битные выходы. Правило замены в каждом S-блоке опреде ляется соответствующими таблицами SIЧS8, представленными ниже.
Первый и последний биты 6-битного входа каждого S-блока задают число в диапа зоне от 0 до 3, которое определяет номер строки в таблице замены, биты 2-~5 задают число в интервале 0Ч15, определяя таким образом номер элемента таблицы замены в соответствующей строке. Каждый элемент таблицы замены, представленный в двоич ном виде, определяет 4 бита на выходе соответствующего S-блока.
Рассмотрим преобразования, производимые с ключом шифрования до его сумми рования с данными, поступающими с выхода блока регистра перестановки. На каж дом из 16-и циклов шифрования данные с выхода блока регистра перестановки сумми руются с новым ключом шифрования. В правой части рис. 4.6 представлен процесс формирования ключа шифрования для каждого из 16-и циклов.
64 бита исходного ключа преобразуются в первом блоке сокращенной перестанов ки, где отбрасывается каждый восьмой бит. Если исходный ключ записан в виде 8-и символов кода ASCII, то каждый восьмой отбрасываемый бит является избыточным битом проверки на четность. Результат, полученный в блоке сокращенной переста новки 1, Ч 56 бит, записывается в регистры С и D, содержащие по 28 бит каждый.
Правило перестановки первого блока сокращенной перестановки, с учетом распреде ления выходных данных по регистрам, задается следующими таблицами:
Регистр С Регистр D 57 41 33 25 17 9 63 55 49 47 39 23 1 26 18 58 50 42 34 62 54 46 38 30 10 59 51 43 35 2 14 61 6 45 37 19 52 3 60 36 11 13 5 28 20 Глава 4. Криптографические методы защиты информации 1 15 8 14 6 4 7 3 9 13 0 0 1 3 4 7 2 14 1 13 15 8 12 0 10 6 9 0 14 7 11 4 1 10 13 5 6 9 2 3 13 10 15 4 2 11 8 3 6 12 3 5 1 10 9 14 3 5 12 0 0 15 13 4 2 1 13 7 0 10 5 14 12 9 3 6 2 8 11 1 13 6 4 8 15 0 12 5 9 3 10 1 9 7 4 14 10 13 0 6 8 15 3 3 S 7 9 1 14 6 10 8 11 13 3 0 5 0 1 11 15 4 7 2 13 8 6 0 3 5 10 10 12 7 13 15 3 14 5 6 9 0 8 1 9 4 3 0 10 8 5 7 15 6 13 Ss 2 12 4 1 10 11 6 5 3 15 13 14 8 1 14 2 4 7 0 11 12 13 5 10 3 9 8 1 4 11 8 2 10 13 7 15 5 6 3 0 11 12 7 2 13 15 0 10 4 8 6 9 12 2 13 3 4 7 1 10 9 6 8 1 12 1 14 4 2 7 9 5 6 13 10 15 4 1 14 2 8 12 3 7 0 10 9 15 5 14 4 2 12 5 10 11 6 0 3 9 15 12 7 5 11 2 14 15 0 8 13 3 9 10 1 11 12 4 9 1 10 3 5 15 8 13 0 7 11 14 15 8 0 9 1 4 12 3 7 6 13 1 7 14 2 4 5 0 15 11 13 10 1 14 5 12 11 9 3 2 8 4 6 15 1 4 5 0 14 9 3 7 12 15 13 6 13 3 5 11 1 12 14 2 0 7 4 9 3 6 12 0 13 2 1 4 10 14._.
338,.....
Согласно этим таблицам, первый бит регистра С соответствует 57-му биту исход ного ключа шифрования, а первый бит регистра D Ч 63-му биту ключа шифрования.
Оба регистра обеспечивают возможность циклического сдвига содержащихся в них данных. На каждом цикле алгоритма шифрования производится циклический сдвиг содержимого регистров на 1 или 2 бита влево. Величина сдвига (в битах) на соответ ствующем цикле задается следующим алгоритмом:
Цикл 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 22 22 Затем содержимое двух регистров объединяется и подвергается второй сокращен ной перестановке, порядок которой задается табл. 4.2. На каждом цикле алгоритма шифрования на выходе сокращенной перестановки образуется ключ шифрования дан ного цикла.
Таблица 4.2. Порядок второй сокращенной перестановки 14 17 24 1 3 28 6 21 23 19 12 7 16 27 20 41 52 37 30 51 45 33 49 39 34 46 36 42 50 Процесс расшифрования аналогичен процессу шифрования, за исключением фор мирования ключей на соответствующих циклах алгоритма. При этом содержимое ре гистров С и D сдвигается вправо, а величина сдвига (в битах) задается следующим алгоритмом:
Цикл 1 2 3 4 5 6 7 8 9 10 И 12 13 14 15 Сдвиг 0 1 2 2 2 2 2 2 1 2 2 2 22 2 Таким образом, процесс расшифрования является инверсным по отношению к шиф рованию данных.
Одна из широко распространенных систем криптографической защиты, использу ющая стандарт DES, Ч разработанная в середине 80-х годов прошлого столетия сис тема Kerberos, использование которой предполагает наличие высоконадежного серве ра, хранящего исходные копии ключей для взаимодействия с каждым пользователем.
Эта система представляет собой часть спецификации открытой вычислительной сре ды DCE (Distributed Computing Environment) фонда OSF.
Среди предлагающих продукты на базе DCE такие компании, как IBM и Hewlett Packard. Kerberos должна стать также частью системы защиты Windows NT 5.0. На практике криптографические системы с секретными ключами, как правило, быстрее Глава 4. Криптографические методы защиты информации систем с открытыми ключами, обеспечивающими ту же степень защиты. Однако пре имущество последних в том, что они не позволяют отказаться от авторства, а также обеспечивают проверку целостности сообщений любого сорта.
Система Kerberos (Цербер) обеспечивает защиту сети от несанкционированного доступа, базируясь исключительно на программных решениях, и предполагает много кратное шифрование передаваемой по сети управляющей информации. Kerberos обес печивает идентификацию пользователей сети и серверов, не основываясь на сетевых адресах и особенностях операционных систем рабочих станций пользователей, не тре буя физической защиты информации на всех машинах сети и исходя из предположе ния, что пакеты в сети могут быть легко прочитаны и при желании изменены.
Kerberos имеет структуру типа клиент-сервер и состоит из клиентских частей, установленных на всех компьютерах сети (рабочие станции пользователей и серве ры), и Kerberos-сервера (или серверов), располагающегося на каком-либо (не обяза тельно выделенном) компьютере. Kerberos-сервер, в свою очередь, делится на две рав ноправные части: сервер идентификации (authentication server) и сервер выдачи разрешений (ticket granting server). Следует отметить, что существует и третий сервер Kerberos, который, однако, не участвует в идентификации пользователей, а предназна чен для административных целей. Область действия Kerberos (realm) распространяет ся на тот участок сети, все пользователи которого зарегистрированы под своими име нами и паролями в базе Kerberos-сервера и где все серверы обладают общим кодовым ключом с идентификационной частью Kerberos. Эта область не обязательно должна быть участком локальной сети, поскольку Kerberos не накладывает ограничения на тип используемых коммуникаций. Упрощенно модель работы Kerberos можно опи сать следующим образом.
Пользователь (Kerberos-клиент), желая получить доступ к ресурсу сети, направля ет запрос идентификационному серверу Kerberos, который идентифицирует пользова теля с помощью его имени и пароля и выдает разрешение на доступ к серверу выдачи разрешений, а тот, в свою очередь, дает разрешение на использование необходимых ресурсов сети. Однако данная модель не отвечает на вопрос о надежности защиты информации, поскольку, с одной стороны, пользователь не может посылать иденти фикационному серверу свой пароль по сети, а с другой Ч разрешение на доступ к обслуживанию в сети не может быть послано пользователю в виде обычного сообще ния. И в том, и в другом случаях информацию можно перехватить и использовать для несанкционированного доступа в сеть. Чтобы избежать подобных неприятностей, Kerberos применяет сложную систему многократного шифрования при передаче лю бой управляющей информации в сети. Доступ пользователей к сетевым серверам, фай лам, приложениям, принтерам и т. д. осуществляется по следующей схеме.
Пользователь (это клиентская часть Kerberos, установленная на рабочей станции пользователя) направляет запрос идентификационному серверу на выдачу разреше ния на получение разрешения (ticket granting ticket), которое даст возможность обра титься к серверу выдачи разрешений. Идентификационный сервер адресуется к базе данных, хранящей информацию о всех пользователях, и на основании содержащегося в запросе имени пользователя определяет его пароль. Затем клиенту отсылается раз решение на получение разрешения и специальный код сеанса (session key), которые шифруются с помощью пароля пользователя, как ключа. При получении этой инфор мации пользователь на его рабочей станции должен ввести свой пароль, и если он совпадает с хранящимися в базе Kerberos-сервера, разрешение на получение разре шения и код сеанса будут успешно расшифрованы. Таким образом решается пробле ма с защитой пароля Ч в данном случае он не передается по сети.
После того как клиент зарегистрировался с помощью идентификационного сер вера Kerberos, он отправляет запрос серверу выдачи разрешений на получение дос тупа к требуемым ресурсам сети. Этот запрос (или разрешение на получение раз решения) содержит имя пользователя, его сетевой адрес, отметку времени, срок жизни этого разрешения и код сеанса. Запрос зашифровывается два раза: сначала с помощью специального кода, который известен только идентификационному серве ру и серверу выдачи разрешений, а затем, как уже было сказано, с помощью пароля пользователя. Это предотвращает не только возможность использования разреше ния при его перехвате, но и делает его недоступным самому пользователю. Чтобы сервер выдачи разрешений дал клиенту доступ к требуемым ресурсам, недостаточ но только разрешения на получение разрешения. Вместе с ним клиент посылает так называемый аутентикатор (authenticator), шифруемый с помощью сеансового ключа и содержащий имя пользователя, его сетевой адрес и еще одну отметку вре мени. Сервер выдачи разрешений расшифровывает полученное от клиента разре шение на получение разрешения, проверяет, не истек ли срок его грдности, а затем сравнивает имя пользователя и его сетевой адрес, находящиеся в разрешении, с данными, которые указаны в заголовке пакета пришедшего сообщения^ Однако на этом проверки не заканчиваются.
Сервер выдачи разрешений расшифровывает аутентикатор с помощью кода сеанса и еще раз сравнивает имя пользователя и его сетевой адрес с предыдущими двумя значениями, и только в случае положительного результата может быть уверен, что клиент именно тот, за кого себя выдает. Поскольку аутентикатор используется для идентификации клиента всего один раз и только в течение определенного периода вре мени, становится практически невозможным одновременный перехват разрешения на получение разрешения и аутентикатора для последующих попыток несанкциони рованного доступа к ресурсам сети.
Каждый раз при необходимости доступа к серверу сети клиент посылает запрос многоразового использования и новый аутентикатор. После успешной идентифика ции клиента в качестве источника запроса сервер выдачи разрешений отсылает пользо вателю разрешение на доступ к ресурсам сети (которое может использоваться много кратно в течение некоторого периода времени) и новый код сеанса. Это разрешение зашифровано с помощью кода, известного только серверу выдачи разрешений и серве ру, к которому клиент требует доступа, и содержит внутри себя копию нового кода сеанса.
Все сообщение (разрешение и новый код сеанса) зашифровано с помощью старого кода сеанса, поэтому расшифровать его может только клиент. После расшифровки клиент посылает целевому серверу, ресурсы которого нужны пользователю, разреше ние на доступ и аутентикатор, зашифрованные с помощью нового кода сеанса. Для обеспечения еще более высокого уровня защиты, клиент, в свою очередь, может по требовать идентификации целевого сервера, чтобы обезопасить себя от возможного перехвата информации, дающей право на доступ к ресурсам сети. В этом случае он Глава 4. Криптографические методы защиты информации требует от сервера высылки значения отметки времени, увеличенного на единицу и зашифрованного с помощью кода сеанса. Сервер извлекает копию кода сеанса, храня щуюся внутри разрешения на доступ к серверу, использует его для расшифровки аутен тикатора, прибавляет к отметке времени единицу, зашифровывает полученную инфор мацию с помощью кода сеанса и отсылает ее клиенту. Расшифровка этого сообщения позволяет клиенту идентифицировать сервер. Использование в качестве кода отметки времени обеспечивает уверенность в том, что пришедший клиенту ответ от сервера не является повтором ответа на какой-либо предыдущий запрос.
Теперь клиент и сервер готовы к передаче необходимой информации с должной степенью защиты. Клиент обращается с запросами к целевому серверу, используя полученное разрешение. Последующие сообщения зашифровываются с помощью кода сеанса.
Более сложной является ситуация, когда клиенту необходимо предоставить сер веру право пользоваться какими-либо ресурсами от его имени. В качестве примера можно привести ситуацию, когда клиент посылает запрос серверу печати, которому затем необходимо получить доступ к файлам пользователя, расположенным на файл сервере. Кроме того, при входе в удаленную систему пользователю необходимо, чтобы все идентификационные процедуры выполнялись так же, как и с локальной машины. Эта проблема решается установкой специальных флажков в разрешении на получение разрешения (дающих одноразовое разрешение на доступ к серверу от имени клиента для первого примера и обеспечивающих постоянную работу в этом режиме для второго).
Поскольку разрешения строго привязаны к сетевому адресу обладающей ими стан ции, то при наличии подобных флажков сервер выдачи разрешений должен указать в разрешении сетевой адрес того сервера, которому передаются полномочия на действия от имени клиента.
Следует отметить также, что для всех описанных выше процедур идентификации необходимо обеспечить доступ к базе данных Kerberos только для чтения. Но иногда требуется изменять базу, например, в случае изменения ключей или добавления но вых пользователей. Тогда используется третий сервер Kerberos Ч административный (Kerberos Administration Server). He вдаваясь в подробности его работы, отметим, что его реализации могут различаться (так, возможно ведение нескольких копий базы од новременно).
При использовании Kerberos-серверов сеть делится на области действия. Схема доступа клиента, находящегося в области действия одного Kerberos-сервера, к ресур сам сети, расположенным в области действия другого, осуществляется следующим образом.
Оба Kerberos-сервера должны быть обоюдно зарегистрированы, то есть знать об щие секретные ключи и, следовательно, иметь доступ к базам пользователей друг дру га. Обмен этими ключами между Kerberos-серверами (для работы в каждом направле нии используется свой ключ) позволяет зарегистрировать сервер выдачи разрешений каждой области как клиента в другой области. После этого клиент, требующий досту па к ресурсам, находящимся в области действия другого Kerberos-сервера, может по лучить разрешение от сервера выдачи разрешений своего Kerberos по описанному выше алгоритму.
_^ 342 :
: :
Это разрешение, в свою очередь, дает право доступа к серверу выдачи разреше ний другого Kerberos-сервера и содержит в себе отметку о том, в какой Kerberos области зарегистрирован пользователь. Удаленный сервер выдачи разрешений ис пользует один из общих секретных ключей для расшифровки этого разрешения (который, естественно, отличается от ключа, используемого в пределах этой обла сти) и при успешной расшифровке может быть уверен, что разрешение выдано кли енту соответствующей Kerberos-области. Полученное разрешение на доступ к ре сурсам сети предъявляется целевому серверу для получения соответствующих услуг.
Следует, однако, учитывать, что большое число Kerberos-серверов в сети ведет к увеличению количества передаваемой идентификационной информации при связи меж ду разными Kerberos-областями. При этом увеличивается нагрузка на сеть и на сами Kerberos-серверы. Поэтому более эффективным следует считать наличие в большой сети всего нескольких Kerberos-серверов с большими областями действия, нежели ис пользование множества Kerberos-серверов. Так, Kerberos-система, установленная ком панией Digital Equipment для большой банковской сети, объединяющей отделения в Нью-Йорке, Париже и Риме, имеет всего один Kerberos-сервер. При этом несмотря на наличие в сети глобальных коммуникаций, работа Kerberos-системы практически не отразилась на производительности сети.
К настоящему времени Kerberos выдержал уже пять модификаций. Пятая версия системы Kerberos имеет ряд новых свойств, из которых можно выделить следующие.
Уже рассмотренный ранее механизм передачи полномочий серверу на действия от имени клиента, значительно облегчающий идентификацию в сети в ряде сложных слу чаев, является нововведением пятой версии. Пятая версия обеспечивает упрощенную идентификацию пользователей в удаленных Kerberos-областях с сокращенным чис лом передач секретных ключей между этими областями. Данное свойство, в свою оче редь, базируется на механизме передачи полномочий. Если в предыдущих версиях Kerberos для шифрования был применен исключительно алгоритм DES, надежность которого вызывала некоторые сомнения, то в данной версии возможно использование алгоритмов шифрования, отличных от DES.
Перспективный стандарт AES Алгоритм шифрования DES давно критикуют за целый ряд недостатков, в том чис ле, за слишком маленькую длину ключа Ч всего 56 разрядов. Кроме того в январе 1999 года закодированное посредством DES сообщение было взломано с помощью связанных через Internet в единую сеть 100 тыс. персональных компьютеров. И на это потребовалось менее 24-х часов. В связи с этим стало очевидным, что в ближайшие несколько лет, учитывая появление более дешевого и высокопроизводительного обо рудования, алгоритм DES окажется несостоятельным.
Чтобы решить эту проблему, еще в 1997 году NIST выпустил запрос на коммента рий RFC (Request For Comment), где описывался предполагаемый Усовершенство ванный стандарт шифрования AES (Advanced Encryption Standard), который должен прийти на смену стандарту DES. В 1998 году NIST (National Institute of Standards and Technology), который был предшественником современного Национального институ Глава 4. Криптографические методы защиты информации л та по стандартам и технологии, объявил конкурс на создание алгоритма, удовлетворя ющего требованиям, выдвинутым институтом:
U применение одного или более открытых алгоритмов шифрования;
Q общедоступность и отсутствие лицензионных отчислений;
D использование симметричного шифрования;
О поддержка минимального размера блока в 128 разрядов и размеров ключей в 128, 192 и 256 разрядов;
G бесплатное распространение по всему миру;
Q приемлемая производительность для различных приложений.
Перед проведением первого тура конкурса в NIST поступило 21 предложение, из которых 15 удовлетворяли выдвинутым критериям. Затем были проведены исследова ния этих решений, в том числе связанные с дешифровкой и проверкой производитель ности, и получены экспертные оценки специалистов по криптографии.
В результате в качестве стандарта AES был выбран алгоритм Rijndael, разработан ный двумя бельгийскими учеными, специалистами по криптографии. Правительство США объявило, что авторами наиболее перспективного алгоритма шифрования стали Джон Димен из компании Proton World International и Винсент Риджмен, сотрудник Католического университета.
Алгоритм Rijndael является нетрадиционным блочным шифром, поскольку в нем для криптопреобразований не используется сеть Фейштеля. Он представляет каждый блок кодируемых данных в виде таблицы двумерного массива байтов размером 4*4, 4*6 или 4*8 в зависимости от установленной длины блока. Далее, на соответствую щих этапах, производятся преобразования либо независимых столбцов, либо незави симых строк, либо вообще отдельных байтов в таблице.
Все преобразования в шифре имеют строгое математическое обоснование. Сама структура и последовательность операций позволяют выполнять данный алгоритм эффективно как на 8-битных, так и на 32-битных процессорах. Это позволяет достичь приемлемой производительности при работе на самых разных платформах: от смарт карт до крупных серверов. В структуре алгоритма заложена возможность параллель ного выполнения некоторых операций, что на многопроцессорных рабочих станциях может поднять скорость шифрования еще в 4 раза.
Rijndael представляет собой итеративный блочный шифр, имеющий блоки пере менной длины и ключи различной длины. Длина ключа и длина блока может быть 128, 192 или 256 бит независимо друг от друга. Согласно структуре шифра разнообразные преобразования взаимодействуют с промежуточным результатом шифрования, назы ваемым состоянием (state).
Это состояние можно представить в виде прямоугольного массива байтов, ко торый имеет 4 строки, а число столбцов Nb равно длине блока, деленной на 32.
Ключ шифрования также представлен в виде прямоугольного массива с четырьмя строками. В этом массиве число столбцов Nk равно длине ключа, деленной на 32.
Пример представления состояния и ключа шифрования в виде массивов представ лен на рис. 4.9.
В некоторых случаях ключ шифрования показан как линейный массив 4-байтовых слов. Слова состоят из 4-х байт, которые находятся в одном столбце (при представле нии в виде прямоугольного массива).
аО,3 аО, аО,1 аО,2 аО, аО, а1,3 а1, а1,С а1, а1,1 а1, а2,3 а2, а2,1 а2,2 а2, а2, аЗ,3 аЗ,4 аЗ, аЗ,1 аЗ, аЗ.О Ключ Состояние (Мв - 6) шифрования (NK - 4) Рис. 4.9. Пример представления состояния (Nb=6) и ключа шифрования (Nk=4) в виде массивов Входные данные для шифра, например, открытый текст, обозначаются как байты состояния в порядке аО,0, al,0, аЗ,0, аО,1, al,l, аЗД,а4,1... После завершения дей ствия шифра выходные данные получаются из байтов состояния в том же порядке.
Алгоритм состоит из некоторого количества раундов Ч цикловых преобразований в диапазоне от 10 до 14. Это зависит от размера блока и длины ключа, в которых последовательно выполняются следующие операции:
Q замена байт Ч ByteSub;
Q сдвиг строк Ч ShiftRow;
Q замешивание столбцов Ч MixColumn;
Q добавление циклового ключа Ч AddRoundKey.
Число циклов обозначается Nr и зависит от значений Nb и Nk (рис. 4.10).
Преобразование ByteSub представляет собой нелинейную замену байт, выполняе мую независимо с каждым байтом состояния. Порядок замены определяется инверти руемыми S-блоками (таблицами замены), которые построены как композиции двух преобразований:
Q получение обратного элемента относительно умножения в поле GF(28);
О применение афинного преобразования (над GF(2)).
Применение преобразования ByteSub к состоянию представлено на рис. 4.11.
Преобразование сдвига строк ShiftRow заключается в том, что последние три строки состояния циклически сдвигаются на различное число байт. При этом первая строка состояния остается без изменения, вторая Ч сдвигается на С1 байт, третья строка сдви гается на С2 байт, а четвертая Ч на СЗ байт. Значения сдвигов С1, С2 и СЗ различны и зависят от длины блока Nb. Величины этих сдвигов в байтах представлены в табл. 4. Таблица 4.3. Величина сдвига строк для разной длины блоков Значение сдвига, байт Длина блока, байт С, С2 Сз 4 1 2 6 1 2 8 Мк = 4 12 Мк = 6 14 Мк = Рис. 4.10. Число циклов в зависимости от длины ключа и длины блока Глава 4. Криптографические методы защиты информации Э _J ii Lр ^3ft4-Ur ао.о ао,1 < "Be* -Bp.1 Bi З B0.4 B0, и Х ".
Х* аи ;
lu аи ai.s B1.0 B1. 31,0 3 B1.4 B1. 32.0 32,1 i )2.2 32.3 32,4 32,5 B2.0 B2.1 B2.2 B2, B2,3 B2. аз.о 33.1 г 3.2 33,3 33,4 33.5 Вз.о B3.1 B3.2 Вз.з B3.4 03, Рис. 4.11. Применение преобразования ByteSub к состоянию mnоp >jm п о П J сдвиг на С1 байт r--_r......
J d e f... Ь> d е f...
w X У z... Р"?
сдвиг на СЗ байт.-Ч Ч1г> w X У Рис. 4.12. Пример операции сдвига последних трех строк состояния на определенную величину Пример операции сдвига последних трех строк состояния на определенную вели чину представлен на рис. 4.12.
Преобразование замешивания столбцов MixColumn (рис. 4.13) основано на мате матическом преобразовании, перемещающем данные внутри каждого столбца. В этом преобразовании столбцы состояния рассматриваются как многочлены над GF(28) и умножаются по модулю х4+1 на многочлен С(х).
Операция AddRoundKey Ч добавление к состоянию циклового ключа посредством простого EXOR. Сам цикловой ключ вырабатывается из ключа шифрования посред ством алгоритма выработки ключей (key schedule). Его длина равна длине блока Nb.
Преобразование AddRoundKey представлено на рис. 4.14.
aoj ао> -ввГ Во#. -80,1 в ао.о ао,1 В0.4 В0, 1, Х-.
- аи В1,о В1,1 B1J Е В1.4 В1. 1.3 31.4 31. 31. 31. В2.1 В В2.4 B2.S 32,4 32.5 В2, 32,0 2, 32, B2.J 32) вз, аз,о Вз.о В3.4 В3, В 33.4 33, Зз,1 3.3 ^ ^^ Х^ asj Вз.) Рис. 4.13. Преобразование замешивания столбцов MixColumn ko.o ko,, km koj ko,< ko. ao.o ao,i ао.г 30,3 30.4 30. e k,,o kn k,,z k.j kt,< ki.s ai.o ai,i 31,2 a.,3 31.4 31. ku IU.1 ku kz.j k2.4 kzi 32.0 32,1 azj 32,3 32.4 32, kio lo,i ku 10.3 ku k3. аз.о 33.1 33,2 33.3 аэ.4 33, Рис. 4.14. Преобразование AddRoundKey 346. :
Алгоритм выработки ключей содержит два этапа:
Q расширение ключа (key expansion);
О выбор циклового ключа (round key selection).
В основе алгоритма лежат следующее: общее число бит цикловых ключей равно длине блока, умноженной на число циклов плюс 1. Например, для длины блока 128 бит и 10-и циклов потребуется 1408 бит циклового ключа. Ключ шифрования превращается в расши ренный ключ (expanded key). Цикловые ключи выбирают из расширенного ключа так:
первый цикловой ключ содержит первые Nb слов, второй Ч следующие Nb слов и т. д.
Расширенный ключ представляет собой линейный массив 4-битных слов. Первые Nk слов содержат ключ шифрования. Все остальные слова определяются рекурсив но из слов с меньшими индексами, то есть каждое последующее слово получается посредством EXOR предыдущего слова и слова на Nk позиций ранее. Для слов, по зиция которых кратна Nk, перед EXOR применяется преобразование к предыдуще му слову, а затем еще прибавляется цикловая константа. Преобразование содержит циклический сдвиг байтов в слове, обозначаемый rotl, затем следует применение таблицы замены байт Ч SubByte. Алгоритм выработки ключей зависит от величины Nk. Расширенный ключ всегда должен получаться из ключа шифрования и никогда не указываться напрямую. При этом нет ограничений на выбор ключа шифрования.
Выбор циклового ключа заключается в том, что каждый цикловой ключ получается из слов массива циклового ключа, как показано для Nb = 6 и Nk = 4 на рис. 4.15.
Выработка ключей может быть сделана и без использования массива. Это характерно для реализаций, в которых критично требование к занимаемой памяти. В этом случае цик ловые ключи можно вычислить на лету посредством использования буфера из Nk слов.
Теперь рассмотрим особенности реализации алгоритма Rijndael. Этот алгоритм является байт-ориентированным, т. е. полностью может быть сформулирован в терми нах операций с байтами. В алгоритме широко используются алгебраические операции в конечных полях, наиболее сложно реализуемо умножение в поле GF(28), Непосред ственное выполнение этих операций привело бы к крайне неэффективной реализации алгоритма. Однако байтовая структура шифра открывает широкие возможности для программной реализации. Замена байта по таблице и последующее умножение на кон станту в конечном поле GF(28) могут быть представлены как одна замена по таблице.
Поскольку в прямом шифре используются три константы (01,02,03), то понадобятся три такие таблицы, в обратном шифре, соответственно, Ч четыре (ОЕ, OD, 0В, 09).
При надлежащей организации процесса шифрования построчный байтовый сдвиг мат рицы данных можно не выполнять. При реализации на 32-битных платформах воз можно реализовать байтовую замену и умножение элемента матрицы данных на стол бец матрицы М как одну замену 8-и бит на 32 бита.
Таким образом, вся программная реализация раунда шифрования для варианта 128 битных блоков данных сводится к четырем командам загрузки элемента ключа в регистр, шестнадцати командам загрузки байта в регистр и извлечению из памяти индексированно го значения. Данное значение используется в операции побитового лисключающего или.
Для процессоров Intel Pentium с недостаточным количеством регистров сюда надо добавить еще 4 команды выгрузки содержимого регистров в память, тогда на указан ных процессорах раунд шифрования по алгоритму Rijndael можно выполнить за команд или за 20 тактов процессора с учетом возможности параллельного выполне Глава 4. Криптографические методы защиты информации Ко К1 К2 Кз К4 Кб Кб К7 Кв Кэ Кю Kn K12 Юз К Цикловой ключ Цикловой ключ Рис. 4.15. Расширение ключа и выбор циклового ключа ния команд этим процессором. Для 14 раундов получаем 280 тактов процессора на цикл шифрования плюс несколько дополнительных тактов на лишнее прибавление ключа. Добавив несколько тактов на внутрипроцессорные задержки, получим оценку 300 тактов на цикл шифрования. На процессоре Pentium Pro-200 это теоретически позволяет достичь быстродействия примерно 0,67 млн блоков в секунду, или, с уче том размера блока в 128 бит, примерно 8,5 Мбайт/с. Для меньшего числа раундов скорость пропорционально возрастет.
Указанная выше оптимизация потребует, однако, определенных расходов опера тивной памяти. Для каждого столбца матрицы М строится свой вектор замены одного байта на 4-байтное слово. Кроме того, для последнего раунда, в котором отсутствует умножение на матрицу М, необходим отдельный вектор замен такого же размера. Это требует использования 5*28*4=5 кбайт памяти для хранения узлов замен для зашиф рования и столько же для узлов замен расшифрования Ч всего 10 кбайт. Для совре менных компьютеров на базе Intel Pentium под управлением ОС Windows 9x/NT/ это не выглядит чрезмерным требованием.
Байт-ориентированная архитектура алгоритма Rijndael позволяет весьма эффек тивно реализовать его на 8-битных микроконтроллерах, используя только операции загрузки/выгрузки регистров, индексированного извлечения байта из памяти и поби тового суммирования по модулю 2. Указанная особенность позволит также выпол нить эффективную программную реализацию алгоритма. Раунд шифрования требует выполнения 16-байтных замен плюс четырех операций побитового лисключающего или над 128-битными блоками, которые можно выполнить в три этапа. В итоге полу чаем 4 операции на раунд, или 57 операций на 14-раундовый цикл шифрования с уче том лишней операции побитового прибавления ключа по модулю 2.
Отечественный стандарт шифрования данных ГОСТ 28147- Стандарт шифрования ГОСТ 28147-89 также относится к симметричным (одно ключевым) криптографическим алгоритмам. Он введен в действие с июля 1990 года и устанавливает единый алгоритм криптографических преобразований для систем об мена информацией в вычислительных сетях, определяет правила шифрования и рас шифровки данных, а также выработки имитовставки. Алгоритм в основном удовлет воряет современным криптографическим требованиям, не накладывает ограничений на степень секретности защищаемой информации и обеспечивается сравнительно не сложными аппаратными и программными средствами.
Стандарт шифрования ГОСТ 28147 89 удобен как для аппаратной, так и для программной реализации. При размере блока данных 64 бита основная работа ведется с половинками этого блока (32 битными словами), что позволяет эф фективно реализовать указанный стан дарт шифрования на большинстве современных компьютеров Стандарт шифрования ГОСТ 28147-89 предусматривает шифрова ние и расшифровку данных в следую щих режимах работа:
О простая замена;
О гаммирование;
Q гаммирование с обратной связью;
Q выработка имитовстйвки.
Структурная схема алгоритма криптопреобразования, выполненного >! по ГОСТ 28147-89, изображена на рис.
Сук 4.16. Эта схема состоит из:
Q сумматоров по модулю 2 Ч СМ и СМ5 ;
Блок подстановки Ключевое К запоминающее О сумматоров по модулю 232 Ч устройство СМ1 и СМЗ;
КЗУ Ре Регистр циклического сдвига R О сумматора по модулю 232-1 Ч СМ4;
Сумматор по модулю О накопителей с константами С1 и СМ С2 Ч Н6 и Н5, соответственно;
Q основных 32-разрядных накопи Рис. 4.16. Структурная схема алгоритма телей HI и Н2;
криптопреобразования, выполненного О вспомогательных 32-разрядных по ГОСТ 28147- накопителей НЗ и Н4:
Q ключевого запоминающего устройства КЗУ;
Q блока подстановки К;
Q регистра циклического сдвига R.
Сумматоры по модулю 2 обеспечивают сложение по модулю 2 поступающих на их входы данных, представленных в двоичном виде.
Сумматоры по модулю 232 выполняют операцию суммирования по модулю двух 32-разрядных чисел по правилу:
А [+] В = А + В, если А + В < 232, А [+] В = А + В Ч 232, если А + В > 232.
Сумматор по модулю 232-1 выполняет операцию суммирования по модулю 232- двух 32-разрядных чисел по правилу:
А[+]В = А + В, если А + В < 232-1, Глава 4. Криптографические методы защиты информации А[+]В = А + В Ч(232-1), если А + В> 232-1.
Накопители с константами Н6 и Н5 содержат 32-разрядные константы, соответ ственно, С1 Ч 00100000100000001000000010000000;
С2 Ч10000000100000001000000010000000.
Основные 32-разрядные накопители служат для обеспечения всех режимов работы алгоритма.
Вспомогательные 32-разрядные накопители используются для обеспечения рабо ты алгоритма в режиме гаммирования.
Ключевое запоминающее устройство предназначено для формирования ключевой последовательности W длиной 256 бит, представленной в виде восьми 32-разрядных чисел Xi (табл. 4.4) [i = 0(1)7]. Последовательность W = UXi = XO U XI U... U X7, где U Ч знак объединения множеств.
Таблица 4.4. Числа, формирующие ключевую последовательность 32 2 Х х, 64 35 34 96 66 Х 128 98 Х 160 129 Х4..
.
163 162 Х5..
.
224 195 Х6..
.
256 Х Блок подстановки осуществляет дополнительное к ключевой последовательности шифрование передаваемых данных с помощью таблиц замен. Он состоит из восьми узлов замены К1,..., К8. Поступающий на блок подстановки 32-разрядный вектор разбивается на 8 последовательных 4-разрядных векторов (слов), каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены. Узел замены представляет собой таблицу из 16-и строк по 4 бита в каждой (рис. 4.17).
1 45 12 13....16 17....2021....2425....2829.... i 4 5 6 2 3 i I I i ijl i j i 1 ! i i i K1 K2 Ke Рис. 4.17. Схема блока подстановки 1 1 0 1 1 0 1 1 2 1 0 0 0 1 1 г С Х0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 0 Рис. 4.18. Принцип работы блока подстановки Входной вектор определяет адрес строки в таблице замены, а заполнение является выходным вектором. Затем выходные 4-разрядные векторы объединяются в один 32 разрядный вектор. Принцип работы блока подстановки рассмотрим на примере, пред ставленном на рис. 4.18.
Пусть имеется блок данных с заполнением 0110. В десятичной системе счисления заполнение 0110 соответствует числу 6. По таблице замен находим строку с номером 6. Результатом является заполнение 0101, соответствующее узлу замены К1.
Таблица блока подстановки содержит набор кодовых элементов, общих для вычис лительной сети и практически редко изменяющихся.
Регистр циклического сдвига R предназначен для осуществления операции цикли ческого сдвига шифруемых данных на 11 разрядов в сторону старших разрядов в виде:
R(r32, r31,..., r2, rl) Ч (г21, г20,..., rl, г32,..., г22) Заметим, что при суммировании и циклическом сдвиге двоичных векторов старши ми считаются разряды накопителей с большими номерами.
Рассмотрим последовательность функционирования алгоритма криптографического преобразования в основных режимах работы.
Режим простой замены Суть работы алгоритма в режиме простой замены поясним с помощью рис. 4.19.
Открытые данные, предназначенные для шифрования, разбиваются на блоки по бит в каждом, которые обозначим через TOi [i = l(l)m], где m Ч число 64-разрядных блоков передаваемых открытых данных. После этого выполняются следующие про цедуры:
Глава 4. Криптографические методы защиты информации Ти ТшН ' Сумматор по модулю СМ Блок подстановки К Регистр циклического сдвига R Сумматор по модулю СМ Рис. 4.19. Структурная схема работы алгоритма криптопреобразования в режиме простой замены Q первая последовательность бит Т01 разделяется на две последовательности и записывается в накопители: в накопитель Н2 Ч старшие разряды, в накопитель HI Ч младшие разряды;
Q в ключевое запоминающее устройство вводится ключевая последовательность длиной 256 бит;
01 выполняется итеративный процесс шифрования, состоящий из 32-х циклов.
Первый цикл происходит в следующей последовательности:
1. Содержимое накопителя HI суммируется по модулю 232 в сумматоре СМ1 с содержимым строки ХО из ключевого запоминающего устройства.
2. Результат суммирования из сумматора СМ1 поступает на блок подстановки, где происходит поблочная замена результата по 4 бита в таблице замен.
3. С выхода блока подстановки шифруемые данные сдвигаются на 11 разрядов вле во в регистре сдвига и поступают на сумматор СМ2.
циклы ШИФРОВАНИЯ 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 26 27 28 29 30 31 Хо Х1 Х2 Хз Хб Хб Х7 Хо Х1 Х2 Хз Х4 Х5 Хб Х Хо Х1 Х2 Хз Х5 Хб Х7 Хо Х1 Х2 Хз Х4 Хб Хб Х Х Х Ключи, выбираемые из запоминающего устройства Рис. 4.20. Ключи, соответствующие каждому циклу шифрования 352.... :
: :
4. В сумматоре СМ2 содержимое регистра сдвига складывается по модулю 2 с со держимым накопителя Н2.
5. Начальное содержимое накопителя HI поступает в накопитель Н2, а результат суммирования в сумматоре СМ2 заносится в накопитель Н1.
Следующие 31 цикл аналогичны первому, за исключением того, что для выполне ния очередного цикла из ключевого запоминающего устройства выбирается ключ в последовательности, представленной на рис. 4.20.
После выполнения 32-го, последнего цикла, полученный результат из сумматора СМ2 поступает в накопитель Н2, а в накопителе HI сохраняется результат предыду щего цикла. Информация, содержащаяся в накопителях HI и Н2, представляет собой первый 64-разрядный блок зашифрованных данных. Остальные блоки открытых дан ных шифруются в режиме простой замены аналогично.
При расшифровке закрытых данных порядок выбора ключей из ключевого запоми нающего устройства происходит в обратной последовательности.
Режим гаммирования Режим гаммирования заключается в том, что открытые данные, предварительно разбитые на 64-битные блоки, поразрядно складываются по модулю 2 с гаммой шифра Гш, представляемой в виде 64-битных блоков:
Гш={Г1, Г2,..., Гт}={П}т, [i=l(l)m], где т Ч количество 64-разрядных блоков, определяемое длиной шифруемого со общения.
Процесс шифрования данных в рассматриваемом режиме работы алгоритма пояс ним с помощью рис. 4.16.
В ключевое запоминающее устройство вводится ключевая последовательность дли ной 256 бит и формируется синхропосылка S в виде 64-разрядной двоичной последо вательности S = {S1,..., 864} = {Si}64, которая записывается в накопители HI и Н следующим образом:
Q S1 Ч в первый разряд накопителя HI;
О S2 Ч во второй разряд накопителя Н2;
а ;
Q S32 Ч в 32-й разряд накопителя HI;
Q S33 Ч в первый разряд накопителя Н2;
а ;
Q S64 Ч в 32-й разряд накопителя Н2.
Полученная синхропосылка S затем шифруется в режиме простой замены. Резуль тат шифрования из накопителя HI переписывается в накопитель НЗ, а из накопителя Н2 Ч в накопитель Н4.
Содержимое накопителя Н4 суммируется по модулю 232-1 с константой С1 в сум маторе СМ4, результат суммирования записывается в накопитель Н4.
Содержимое накопителя НЗ суммируется по модулю 232 с константой С2 в сумма торе СМЗ, результат суммирования записывается в накопитель НЗ.
Далее содержимое накопителя Н4 переписывается в накопитель Н2, а содержи мое накопителя НЗ Ч в накопитель HI. Полученные таким образом данные в нако пителях HI и Н2 шифруются в режиме простой замены, а результатом шифрова Глава 4. Криптографические методы защиты информации ния является формирование в этих же накопителях 64-разрядного блока гамма шифра П.
Полученный гамма-шифр Г1 суммируется поразрядно по модулю 2 с первым 64-раз рядным блоком открытых данных ТО 1 в сумматоре СМ5. Результат суммирования Ч пер вый 64-разрядный блок зашифрованных данных Тш1.
Шифрование второго и последующих блоков открытых данных осуществляется с помощью формирования второго и последующих гамма-шифров в соответствии с рас смотренными преобразованиями режима простой замены. Если в последнем m блоке открытых данных число двоичных разрядов меньше 64, неиспользованная часть гам ма-шифра Гш просто отбрасывается.
Расшифровка данных выполняется в обратной последовательности на основе зна ния ключевой последовательности и синхропосылки S, которая не является секрет ным элементом шифрования и может храниться в запоминающем устройстве или пе редаваться в незащищенном виде по каналам связи.
Режим гаммирования с обратной связью Принцип работы алгоритма в режиме гаммирования с обратной связью отличается от принципа работы предыдущего режима тем, что если на первом шаге при формировании гамма-шифра используется синхропосылка, то на всех последующих шагах Ч предыду щий блок зашифрованных данных. За счет этого достигается сцепление блоков шифруе мых данных: каждый блок данных при шифровании зависит от всех предыдущих.
Шифрование открытых данных в этом режиме происходит по той же схемной реа лизации, что и в режиме гаммирования, и отличается лишь введением дополнительной обратной связи с выхода сумматора СМ5 на входы накопителей HI и Н2.
Для пояснения процесса шифрования данных в режиме гаммирования с обратной свя зью вновь обратимся к рис. 4.16 и приведем последовательность выполняемых процедур.
В ключевое запоминающее устройство вводится ключевая последовательность дли ной 256 бит, после чего формируется синхропосылка S, записываемая в накопители HI и Н2, содержимое которых шифруется в режиме простой замены. Результат шиф рования в накопителях HI и Н2 представляет собой первый 64-разрядный блок гамма шифра П.
Полученный гамма-шифр Г1 суммируется поразрядно по модулю 2 с первым 64-раз рядным блоком открытых данных Т01 в сумматоре СМ5. Результат суммирования Ч пер вый 64-разрядный блок зашифрованных данных Тш1. Первый блок зашифрованных данных Тш1 по обратной связи поступает на накопители Н1 и Н2 и является исходной информацией для формирования второго блока гамма-шифра Г2.
Содержимое накопителей HI и Н2 шифруется в режиме простой замены. Резуль тат шифрования в накопителях Н1 и Н2 представляет второй 64-разрядный блок гам ма-шифра Г2. Этот гамма-шифр суммируется по модулю 2 поразрядно со вторым 64 разрядным блоком открытых данных Т02 в сумматоре СМ 5. В результате получается второй 64-разрядный блок зашифрованных данных Тш2 и т. д. Если в последнем m блоке открытых данных Тот число двоичных разрядов меньше 64, неиспользованная часть гамма-шифра отбрасывается.
Расшифровка данных происходит в обратном порядке на основе знания ключевой последовательности и синхропосылки S.
123ак. 354....
;
Режим выработки имитовставки Режим выработки имитовставки предназначен для обнаружения случайных и пред намеренных ошибок при передаче шифрованных данных потребителям и одинаков для любого из режимов шифрования открытых данных.
Имитовставка представляет собой дополнительный блок данных U из L бит, кото рый формируется либо перед шифрованием всего сообщения, либо совместно с шиф рованием по блокам. Число двоичных разрядов L в имитовставке определяется крип тографическими требованиями с учетом вероятности возникновения ложной имитовставки:
Ро = 2 -L.
Первые блоки открытых данных, которые участвуют в формировании имитовстав ки, как правило, содержат служебную информацию (адресную часть, время, синхро посылку) и не зашифровываются.
Процесс формирования имитовставки поясним также с помощью рис. 4.16.
Как и в рассмотренных выше режимах, в ключевое запоминающее устройство вво дится ключевая последовательность длиной 256 бит. Далее первый 64-разрядный блок открытых данных Tol поступает в накопители HI и Н2, содержимое которых подвер гается преобразованию, соответствующему первым 16-и циклам итеративного про цесса шифрования в режиме простой замены. Результат шифрования в режиме про стой замены с накопителей HI и Н2 суммируется по модулю 2 со вторым блоком открытых данных То2 в сумматоре СМ5.
Результат суммирования из сумматора СМ5 поступает в накопители HI и Н2 и после 16-и циклов шифрования в режиме простой замены суммируется по модулю 2 с третьим блоком открытых данных в сумматоре СМ5 и т. д.
Последний 64-разрядный блок открытых данных ТОт, дополненный при необхо димости до полного 64-разрядного числа нулями, суммируется по модулю 2 с резуль татом работы алгоритма на (т-1) шаге в сумматоре СМ5 и снова зашифровывается по первым 16-и циклам режима простой замены.
Из полученного таким образом последнего заполнения накопителей HI и Н2 выби рается имитовставка U длиной L бит. В большинстве практических случаев в качестве имитовставки используется содержимое накопителя HI (32 младших бита последнего блока зашифрованных данных).
Имитовставка U передается по каналам связи в конце зашифрованных данных или после каждого шифрованного блока. Поступившие данные расшифруются и из полу ченных блоков открытых данных TOi вырабатывается имитовставка U, которая срав нивается с имитовставкой, полученной по каналу связи. В случае несовпадения ими товставок расшифрованные данные считают ложными.
Познакомившись с принципом работы криптографического алгоритма ГОСТ 28147 89, рассмотрим его эффективность и практическую реализацию.
Российский стандарт шифрования ГОСТ 28147-89 удобен как для аппаратной, так и для программной реализации. При размере блока данных 64 бита основная работа ведется с половинками этого блока Ч 32-битными словами, что позволяет эффектив но реализовать российский стандарт шифрования на большинстве современных ком пьютеров. При реализации на 32-битных машинах наиболее трудоемка операция заме ны. Предусмотренные ГОСТом подстановки в 4-битных группах при программной Глава 4. Криптографические методы защиты информации реализации дают возможность попарно объединить и выполнить замену в 8-битных группах, что существенно эффективнее. Надлежащая организация замены позволяет также избежать вращения слова на выходе функции шифрования, если хранить узлы замены как массивы 4-байтовых слов, в которых уже выполнено вращение.
Такая раздутая таблица замен потребует для своего хранения 4*28*4 = 212 байт или 4К оперативной памяти. Указанные шаги оптимизации позволяют реализовать раунд шифрования по ГОСТу за 10 машинных команд, включая выделение и загрузку в регистры отдельных байтов из 4-байтовых слов. С учетом способности процессоров Intel Pentium параллельно выполнять команды, раунд ГОСТа может быть реализован за 6 тактов работы процессора, а весь процесс шифрования Ч за 32*6 = 192 такта.
Добавляя еще 8 тактов на различные внутрипроцессорные задержки, получим оценку затрат процессорного времени на реализацию цикла шифрования по алгоритму ГОСТ 28147-89 в 200 тактов. На процессоре Pentium Pro 200 это позволит достичь предела быстродействия шифрования миллион блоков в секунду, или 8 Мбайт/с (на самом деле эта величина будет меньше).
Рассматриваемый алгоритм шифрования может быть также эффективно реализован и на 8-битных микроконтроллерах, поскольку составляющие его элементарные опера ции входят в систему команд большинства наиболее распространенных контроллеров.
При этом суммирование по модулю 232 придется разделить на одну операцию сложения без переноса и три операции сложения с переносом, выполняемые каскадно. Все ос тальные операции также легко могут быть представлены в виде 8-байтовых операндов.
При аппаратной реализации ГОСТа один раунд предполагает последовательное выполнение трех операций над 32-битными аргументами: суммирование, замена, вы полняемая одновременно во всех восьми 4-битных группах, и побитовое суммирова ние по модулю 2. Циклический сдвиг не является отдельной операцией, так как обес печивается простой коммутацией проводников. Таким образом, при аппаратной реализации цикл шифрования требует выполнения 106 элементарных операций, и эту работу нельзя распараллелить.
Характеристики быстродействия программных реализаций, выполненных по алго ритму ГОСТ 28147-89 и новому американскому стандарту шифрования Ч шифру Rijndael, представлены в табл. 4.5.
Таблица 4.5. Показатели быстродействия реализаций алгоритмов шифрования ГОСТ 281 47-89 Rijndael, 14 раундов Процессор 2,04 Мбайт/с 2,46 Мбайт/с Pentium 9,36 Мбайт/с 8,30 Мбайт/с Pentium III Из табл. 4.5 видно, что рассмотренные алгоритмы обладают сопоставимыми ха рактеристиками быстродействия при реализации на 32-битных платформах. При ис пользовании 8-битных платформ картина будет примерно такой же.
Что касается аппаратной реализации, то, в отличие от алгоритмов шифрования ГОСТа, Rijnael позволяет достичь высокой степени параллелизма при выполнении шифрования, оперирует блоками меньшего размера и содержит меньшее число раун дов, в силу чего его аппаратная реализация на базе одной и той же технологии теоре тически может быть более быстродействующей (примерно в 4 раза).
356 : = Проведенное выше сопоставление параметров алгоритмов шифрования ГОСТ28147 89 и Rijndael показывает, что, несмотря на существенное различие архитектурных принципов, на которых базируются шифры, их основные рабочие параметры пример но одинаковы. Исключением является то, что, по всей вероятности, Rijnael будет иметь определенное преимущество в быстродействии перед ГОСТом при аппаратной реали зации на базе одной и той же технологии. По ключевым параметрам криптостойкости для алгоритмов такого рода ни один из них не обладает значительным преимуществом;
примерно одинаковы и скорости оптимальной программной реализации для процес соров Intel Pentium, что можно экстраполировать на все современные 32-разрядные процессоры. Таким образом, можно сделать вывод, что отечественный стандарт шиф рования соответствует требованиям, предъявляемым к современным шифрам, и мо жет оставаться стандартом еще достаточно долгое время. Очевидным шагом в его опти мизации может стать переход от замен в 4-битных группах к байтовым заменам, за счет чего должна возрасти устойчивость алгоритма к известным видам криптоанализа.
Система PGP Ч мировой стандарт доступности Много лет назад проблема защиты частной жизни граждан не стояла так уж остро, в связи с тем, что вмешаться в личную жизнь было технически достаточно трудно (труд этот был, как мы можем сейчас сказать, не автоматизирован). В настоящее вре мя благодаря развитию информационных технологий компьютеры могут делать то, что не всегда могут делать люди, в частности, искать в речевых или текстовых фраг ментах определенные ключевые фразы. И не только это. Теперь стало гораздо легче перехватывать информацию, особенно в сети Internet, которая общедоступна и содер жит множество точек, где сообщения можно перехватить. Организации и фирмы, ко торые могут себе позволить тратить крупные средства на защиту своей информации, применяют сложные дорогостоящие системы шифрования, строят свои службы безо пасности, используют специальные технические средства и т. п.
Алгоритмы шифрования реализуются программными или аппаратными средства ми. Существует великое множество чисто программных реализаций различных алго ритмов. Из-за своей дешевизны (некоторые из них и вовсе распространяются бесплат но), а также высокого быстродействия процессоров, простоты работы и безотказности они вполне конкурентоспособны. В этой связи нельзя не упомянуть программный пакет PGP (Pretty Good Privacy), в котором комплексно решены практически все проблемы защиты передаваемой информации. Благодаря PGP рядовые граждане могут доста точно надежно защищать свою информацию, причем с минимальными затратами.
Система PGP, начиная с 1991 года, остается самым популярным и надежным сред ством криптографической защиты информации всех пользователей сети Internet. Сила PGP состоит в превосходно продуманном и чрезвычайно мощном механизме обработ ки ключей, быстроте, удобстве и широте их распространения. Существуют десятки не менее сильных алгоритмов шифрования, чем тот, который используется в PGP, но популярность и бесплатное распространение сделали PGP фактическим стандартом для электронной переписки во всем мире.
Программа PGP разработана в 1991 году Филиппом Зиммерманом (Philip Zimmermann). В ней применены сжатие данных перед шифрованием, мощное управ Глава 4. Криптографические методы защиты информации ление ключами, вычисление контрольной функции для цифровой подписи, надежная генерация ключей.
В основе работы PGP лежат сразу два криптоалгоритма Ч обычный алгоритм шиф рования с закрытым ключом и алгоритм шифрования с открытым ключом (рис. 4.21).
Зачем это нужно? Алгоритм шифрования с закрытым ключом требует защищенного канала для передачи этого самого ключа (ведь одним и тем же ключом можно как зашифровать, так и расшифровать сообщение). Система с открытым ключом позволя ет распространять ключ для зашифровки сообщения совершенно свободно (это и есть открытый ключ), однако расшифровать сообщение можно при помощи второго, зак рытого ключа, который хранится только у пользователя. Более того, это справедливо и в обратную сторону Ч расшифровать сообщение, зашифрованное закрытым клю чом, можно только при помощи открытого ключа. Недостатком данного алгоритма является крайне низкая скорость его выполнения.
Однако, при шифровании сообщения в PGP оба эти ограничения обойдены доста точно оригинальным способом. Вначале генерируется случайным образом ключ для алгоритма с закрытым ключом (кстати, в качестве такого алгоритма используется очень стойкий алгоритм IDEA). Ключ этот генерируется только на один сеанс, причем та ким образом, что повторная генерация того же самого ключа практически невозмож на. После зашифровки сообщения к нему прибавляется еще один блок, в котором со держится данный случайный ключ, но уже зашифрованный при помощи открытого ключа алгоритма с открытым ключом RSA. Таким образом, для расшифровки необхо димо и достаточно знать закрытый ключ RSA.
Для пользователя все это выглядит гораздо проще: он может зашифровать сообще ние общедоступным открытым ключом и отправить это сообщение владельцу закры того ключа. И только этот владелец и никто иной сможет прочесть сообщение. При этом программа PGP работает очень быстро. Как же она это делает?
Когда пользователь шифрует сообщение с помощью PGP, программа сначала сжи мает текст, убирая избыточность, что сокращает время на отправку сообщения через модем и повышает надежность шифрования. Большинство приемов криптоанализа (взлома зашифрованных сообщений) основаны на исследовании рисунков, прису щих текстовым файлам. Путем сжатия эти рисунки ликвидируются. Затем програм ма PGP генерирует сессионный ключ, который представляет собой случайное число, созданное за счет движений вашей мыши и нажатий клавиш клавиатуры.
Закрытый ключ Открытый ключ получателя получателя Случайное число, У 001 001 1010101100/ используемое как Шифрованный + ключ сеанса ключ сеанса Ключ сеанса ь Несимметричное ^ Несимметрична шифрование оасшифоование 1г 1 ":№(№? Юстас Юстас ^ Симметричное _+ №$%!&$ ^ Симметричное шифрование л@$@% расшифоование @ Сообщение Сообщени Шифрованное сообщение Рис. 4.21. Принцип работы криптоалгоритма PGP 358 : :
Как только данные будут зашифрованы, сессионный ключ зашифровывается с по мощью открытого ключа получателя сообщения, который отправляется к получателю вместе с зашифрованным текстом.
Расшифровка происходит в обратной последовательности. Программа PGP полу чателя сообщения использует закрытый ключ получателя для извлечения временного сессионного ключа, с помощью которого программа ^атем дешифрует текст.
Тем не менее при работе с программой PGP возникает проблема: при шифровании исходящих сообщений открытым ключом своего корреспондента, отправитель сооб щений не может их потом прочитать, ввиду того, что исходящее сообщение шифрует ся с помощью закрытого ключа отправителя и открытого ключа его корреспондента Чтобы этого избежать, в настройках программы PGP есть опция, позволяющая за шифровывать свои исходящие сообщения таким образом, чтобы их можно было потом взять из архива и прочитать.
Ключи, используемые программой, хранятся на жестком диске компьютера в за шифрованном состоянии в виде двух файлов, называемых кольцами (keyrings): одного для открытых ключей, а другого Ч для закрытых. В течение работы с программой PGP открытые ключи корреспондентов вносятся в открытые кольца. Закрытые ключи хранятся в закрытом кольце. Если вы потеряли закрытое кольцо, то не сможете рас шифровать информацию, зашифрованную с помощью ключей, находящихся в этом кольце.
Хотя открытый и закрытый ключи взаимосвязаны, чрезвычайно сложно получить закрытый ключ, исходя из наличия только открытого ключа, однако это возможно, если вы имеете мощный компьютер. Поэтому крайне важно выбирать ключи подходя щего размера: достаточно большого для обеспечения безопасности и достаточно ма лого для обеспечения быстрого режима работы. Кроме этого, необходимо учитывать личность того, кто намеревается прочитать ваши зашифрованные сообщения, насколько он заинтересован в их расшифровке, каким временем он располагает и какие у него имеются ресурсы.
Более длинные ключи будут более надежными в течение длительного срока. По этому, если вам необходимо так зашифровать информацию, чтобы она хранилась в течение нескольких лет, следует применить мощный ключ.
Открытые ключи для шифрования можно разместить на одном из PGP-серверов.
С этого момента каждый, кто хочет, может послать вам электронную почту в зашиф рованном виде. Если вы используете преимущественно одну и ту же почтовую про грамму, шифрование и дешифровка будут не сложнее простого нажатия кнопки. Если же вы используете разные программы, то достаточно поместить письмо в буфер и дать команду шифровать в буфере. После этого можно вернуть письмо в почтовую про грамму и отослать. Существуют три основных способа шифрования информации:
G напрямую в почтовой программе (самый удобный);
Q через копирование текста в буфер обмена Windows;
Q через шифрование всего файла, который затем прикрепляется к сообщению.
Программа PGP предназначена, в первую очередь, для защиты электронной по чты, хотя ее можно использовать и для защиты файлов на жестком диске. Особенно привлекательными чертами PGP являются многочисленные plug-ins для таких попу лярных почтовых программ, как Eudora, Netscape и Outlook. Plug-ins настраивают PGP Глава 4. Криптографические методы защиты информации для этих программ и дополняют их некоторыми приятными мелочами, например, до полнительными кнопками на панели инструментов. Пиктограмма в правом нижнем углу (tray), всплывающая панель инструментов (floating toolbox) и меню правой кноп ки мыши (right-click menu) в PGP очень логичны и удобны, поэтому она проста в уп равлении.
Можно столкнуться с системой защиты PGP в программе Nuts & Bolts фирмы Helix Software. Это та же программа, только PGP Ч более новой версии. Компания Network Associates поглотила Helix и завладела правами на продукт. Новая версия PGP for Personal Privacy совместима с предыдущими версиями, в том числе Nuts & Bolts.
Рекомендуется использовать связку популярной почтовой программы The Bat! (за одно поддержав производителей отечественного программного обеспечения) и PGP.
Безусловным достоинством этой программы является то, что она позволяет использо вать как внешнюю программу PGP (то есть оригинальную, непосредственно от разра ботчиков), так и установить специальное дополнение к программе, дающее возмож ность работать с PGP (основанное на популярной библиотеке SSLeay). Все основные возможности PGP поддерживаются в полной мере и достаточно просты в употребле нии.
Заметим, что PGP позволяет шифровать сообщение и составлять электронную подпись (ее еще часто называют сигнатурой или PGP-сигнатурой). Если с шифровани ем все достаточно понятно, то сигнатура нуждается в дополнительном пояснении. Все дело в том, что сообщение может быть не только прочтено, но и модифицировано. Для установки факта целостности сообщения вычисляется дайджест сообщения Ч аналог контрольной суммы, но более надежный в силу его уникальности.
Программа PGP применяет так называемую хэш-функцию. Ее работа заключается в следующем. Если произошло какое-либо изменение информации, пусть даже на один бит, результат хэш-функции будет совершенно иным. Дайджест шифруется при помо щи закрытого ключа и прилагается к самому сообщению. Теперь получатель может при помощи открытого ключа расшифровать дайджест отправителя, затем, вычислив заново дайджест для полученного сообщения, сравнить результаты. Полное совпаде ние дайджестов говорит о том, что сообщение не изменилось при пересылке.
Шифрование и электронную подпись можно использовать и одновременно. В этом случае отправитель при помощи открытого ключа получателя шифрует сообщение, а потом подписывает его при помощи своего закрытого ключа. В свою очередь получа тель сначала проверяет целостность сообщения, применяя открытый ключ отправите ля, а потом расшифровывает сообщение, используя уже собственный закрытый ключ.
Все это кажется достаточно сложным, однако на практике усваивается быстро. Доста точно обменяться с кем-нибудь парой писем с помощью PGP.
В настоящий момент программа доступна на платформах UNIX, DOS, Macintosh и VAX. Пакет программ PGP свободно распространяется по Internet для некоммерчес ких пользователей вместе с 75-страничным справочным руководством.
Однако следует сразу предупредить пользователей, что система PGP не сертифи цирована для применения в Российской Федерации. Поэтому следует избегать ее ис пользования в государственных организациях, коммерческих банках и т. п. Но для личного пользования граждан она является великолепным средством защиты от пося гательств на свою частную жизнь.
Криптографические ключи Известно, что все без исключения алгоритмы шифрования используют криптогра фические ключи. Именно поэтому одна из задач криптографии Ч управление ключа ми, т. е. их генерация, накопление и распределение. Если в компьютерной сети зареги стрировано п пользователей и каждый может связаться с каждым, то для нее необходимо иметь п*(п-1)/2 различных ключей. При этом каждому из п пользователей следует предоставить (п-1) ключ, т. к. от их выбора в значительной степени зависит надеж ность защиты конфиденциальной информации. Выбору ключа для криптосистемы при дается особое значение.
Более того, так как практически любой криптографический ключ может быть рас крыт злоумышленником, то необходимо использовать определенные правила выбора, генерации, хранения и обновления их в процессе сеансов обмена секретными сообще ниями, а также их доставки безопасным способом до получателей. Также известно, что для одноключевых криптосистем необходим защищенный канал связи для управ ления ключом. Для двухключевых криптосистем нет необходимости в таком канале связи.
Процесс генерации ключей должен быть случайным. Для этого можнё использо вать генераторы случайных чисел, а также их совокупность с каким-нибудь непредс казуемым фактором, например, выбором битов от показаний таймера. При накопле нии ключи нельзя записывать в явном виде на носители. Для повышения безопасности ключ должен быть зашифрован другим ключом, другой Ч третьим и т. д. Последний ключ в этой иерархии шифровать не нужно, но его следует размещать в защищенной части аппаратуры. Такой ключ называется мастер-ключом.
Выбранные ключи необходимо распределять таким образом, чтобы не было зако номерностей в изменении ключей от пользователя к пользователю. Кроме того, надо предусмотреть частую смену ключей, причем частота их изменения определяется дву мя факторами: временем действия и объемом информации, закрытой с их использова нием.
Выбор длины криптографического ключа Криптографические ключи различаются по своей длине и, следовательно, по силе:
ведь чем длиннее ключ, тем больше число возможных комбинаций. Скажем, если про грамма шифрования использует 128-битные ключи, то ваш конкретный ключ будет одной из 2128 возможных комбинаций нулей и единиц. Злоумышленник с большей вероятностью выиграет в лотерею, чем взломает такой уровень шифрования методом грубой силы (т. е. планомерно перебирая ключи, пока не встретится нужный). Для сравнения: чтобы подобрать на стандартном компьютере симметричный 40-битный ключ, специалисту по шифрованию потребуется около 6 часов. Даже шифры со 128 битным ключом до некоторой степени уязвимы, т. к. профессионалы владеют изощ ренными методами, которые позволяют взламывать даже самые сложные коды.
Надежность симметричной криптосистемы зависит от стойкости используемого криптографического алгоритма и от длины секретного ключа. Допустим, что сам ал горитм идеален: вскрыть его можно только путем опробования всех возможных клю Глава 4. Криптографические методы защиты информации чей. Этот вид криптоаналитической атаки называется методом тотального перебора.
Чтобы применить данный метод, криптоаналитику понадобится немного шифротек ста и соответствующий открытый текст. Например, в случае блочного шифра ему до статочно получить в свое распоряжение по одному блоку шифрованного и соответ ствующего открытого текста. Сделать это не так уж и трудно.
Криптоаналитик может заранее узнать содержание сообщения, а затем перехва тить его при передаче в зашифрованном виде. По некоторым признакам он также мо жет догадаться, что посланное сообщение представляет собой не что иное, как тексто вый файл, подготовленный с помощью распространенного редактора, компьютерное изображение в стандартном формате, каталог файловой подсистемы или базу данных.
Для криптоаналитика важно то, что в каждом из этих случаев в открытом тексте пере хваченного шифросообщения известны несколько байт, которых ему хватит, чтобы предпринять атаку.
Подсчитать сложность атаки методом тотального перебора достаточно просто. Если ключ имеет длину 64 бита, то суперкомпьютер, который может опробовать 1 млн клю чей за 1 с, потратит более 5000 лет на проверку всех возможных ключей. При увеличе нии длины ключа до 128 бит этому же суперкомпьютеру понадобится 1025 лет, чтобы перебрать все ключи. Можно сказать, что 1025 Ч это достаточно большой запас на дежности для тех, кто пользуется 128-битными ключами.
Однако прежде чем броситься спешно изобретать криптосистему с длиной ключа, например, в 4000 байт, следует вспомнить о сделанном выше предположении: исполь зуемый алгоритм шифрования идеален в том смысле, что вскрыть его можно только методом тотального перебора. Убедиться в этом на практике бывает не так просто, как может показаться на первый взгляд.
Криптография требует утонченности и терпения. Новые сверхсложные криптосис темы при более внимательном рассмотрении часто оказываются очень нестойкими.
А внесение даже крошечных изменений в стойкий криптографический алгоритм мо жет существенно понизить его стойкость. Поэтому надо пользоваться только прове ренными шифрами, которые известны уже в течение многих лет, и не бояться прояв лять болезненную подозрительность по отношению к новейшим алгоритмам шифрования, вне зависимости от заявлений их авторов об абсолютной надежности этих алгоритмов.
Важно также не забывать о том, что стойкость алгоритма шифрования должна оп ределяться ключом, а не деталями самого алгоритма. Чтобы быть уверенным в стой кости используемого шифра, недостаточно проанализировать его при условии, что противник досконально знаком с алгоритмом шифрования. Нужно еще и рассмотреть атаку на этот алгоритм, при которой враг может получить любое количество шифро ванного и соответствующего открытого текста. Более того, следует предположить, что криптоаналитик имеет возможность организовать атаку с выбранным открытым текстом произвольной длины.
К счастью, в реальной жизни большинство людей, интересующихся содержанием ваших шифрованных файлов, не обладают квалификацией высококлассных специали стов и необходимыми вычислительными ресурсами, которые имеются в распоряже нии правительств мировых супердержав. Последние же вряд ли будут тратить время и деньги, чтобы прочесть ваше пылкое сугубо личное послание. Однако, если вы плани 362, ;
руете свергнуть лантинародное правительство, вам необходимо всерьез задуматься о стойкости применяемого алгоритма шифрования.
Многие современные алгоритмы шифрования с открытым ключом основаны на однонаправленности функции разложения на множители числа, являющегося произ ведением двух больших простых чисел. Эти алгоритмы также могут быть подвергну ты атаке, подобной методу тотального перебора, применяемому против шифров с сек ретным ключом, с одним лишь отличием: опробовать каждый ключ не потребуется, достаточно суметь разложить на множители большое число.
Конечно, разложение большого числа на множители Ч задача трудная. Однако сразу возникает резонный вопрос, насколько трудная. К несчастью для криптографов, ее решение упрощается, и, что еще хуже, значительно более быстрыми темпами, чем ожидалось. Например, в середине 70-х годов считалось, что для разложения на мно жители числа из 125 цифр потребуются десятки квадрильонов лет. А всего два десяти летия спустя с помощью компьютеров, подключенных к сети Internet, удалось доста точно быстро разложить на множители число, состоящее из 129 цифр. Этот прорыв стал возможен благодаря тому, что за прошедшие 20 лет были не только предложены новые, более быстрые, методы разложения на множители больших чисел, но и возрос ла производительность используемых компьютеров.
Поэтому квалифицированный криптограф должен быть очень осторожным и ос мотрительным, когда работает с длинным открытым ключом. Необходимо учитывать, насколько ценна засекречиваемая с его помощью информация и как долго она должна оставаться в тайне для посторонних.
А почему не взять 10 000-битный ключ? Ведь тогда отпадут все вопросы, связан ные со стойкостью несимметричного алгоритма шифрования с открытым ключом, ос нованном на разложении большого числа на множители. Но дело в том, что обеспече ние достаточной стойкости шифра Ч не единственная забота криптографа. Имеются дополнительные соображения, влияющие на выбор длины ключа, и среди них Ч воп росы, связанные с практической реализуемостью алгоритма шифрования при выбран ной длине ключа.
Чтобы оценить длину открытого ключа, будем измерять доступную криптоанали тику вычислительную мощь в так называемых мопс-годах, т. е. количеством операций, которые компьютер, способный работать со скоростью 1 млн операций в секунду, выполняет за год. Допустим, что злоумышленник имеет доступ к компьютерным ре сурсам общей вычислительной мощностью 1000 мопс-лет, крупная корпорация Ч мопс-лет, правительство Ч 109 мопс-лет. Это вполне реальные цифры, если учесть, что при реализации упомянутого выше проекта разложения числа из 129 цифр его участники задействовали всего 0,03% вычислительной мощи Internet, и чтобы добить ся этого, им не потребовалось принимать какие-либо экстраординарные меры или выходить за рамки закона. Из табл. 4.6 видно, сколько требуется времени для разло жения различных по длине чисел.
Сделанные предположения позволяют оценить длину стойкого открытого ключа в зависимости от срока, в течение которого необходимо хранить зашифрованные с его помощью данные в секрете (табл. 4.7). При этом нужно помнить, что криптографичес кие алгоритмы с открытым ключом часто применяются для защиты очень ценной ин формации на весьма долгий период времени. Например, в системах электронных пла Глава 4. Криптографические методы защиты информации Таблица 4.6. Связь длины чисел и времени, необходимого для их разложения на множители Количество бит в двоичном представлении числа Количество мопс-лет для разложения на множители 768 3X1 1024 3X1 1280 3X1 1536 3X1 2048 3X1 тежей или при нотариальном заверении электронной подписи. Идея потратить несколь ко месяцев на разложение большого числа на множители может показаться кому-то очень привлекательной, если в результате он получит возможность рассчитываться за свои покупки по чужой кредитной карточке.
Таблица 4.7. Рекомендуемая длина открытого ключа (в битах) Крупная корпорация Хакер Год Правительство 2000 1024 1280 2005 1280 2010 1280 1536 2048 С приведенными в табл. 4.7 данными согласны далеко не все криптографы. Неко торые из них наотрез отказываются делать какие-либо долгосрочные прогнозы, счи тая это бесполезным делом, другие Ч чересчур оптимистичны, рекомендуя для сис тем цифровой подписи длину открытого ключа всего 512Ч1024 бита, что является совершенно недостаточным для обеспечения надлежащей долговременной защиты.
Криптоаналитическая атака против алгоритма шифрования обычно бывает направ лена в самое уязвимое место этого алгоритма. Для организации шифрованной связи часто используются криптографические алгоритмы как с секретным, так и с открытым ключом. Такая криптосистема называется гибридной. Стойкость каждого из алгорит мов, входящих в состав гибридной криптосистемы, должна быть достаточной, чтобы успешно противостоять вскрытию. Например, глупо применять симметричный алго ритм с ключом длиной 128 бит совместно с несимметричным алгоритмом, в котором длина ключа составляет всего 386 бит. И наоборот, не имеет смысла задействовать симметричный алгоритм с ключом длиной 56 бит вместе с несимметричным алгорит мом с ключом длиной 1024 бита.
Таблица 4.8. Длины ключей для симметричного и несимметричного алгоритмов шифрования, обладающих одинаковой стойкостью Длина ключа, бит Для несимметричного алгоритма Для симметричного алгоритма 364, : ;
В табл. 4.8 перечисляются пары длин ключей для симметричного и несимметрич ного криптографического алгоритма, при которых стойкость обоих алгоритмов про тив криптоаналитической атаки методом тотального перебора приблизительно одина кова. Из этих данных следует, что если используется симметричный алгоритм с 112-битным ключом, то вместе с ним должен применяться несимметричный алгоритм с 1792-битным ключом. Однако на практике ключ для несимметричного алгоритма шифрования обычно выбирают более стойким, чем для симметричного, поскольку с помощью первого защищаются значительно большие объемы информации и на более продолжительный срок.
Способы генерации ключей Поскольку стойкость шифра определяется секретностью ключа, то вскрытию мо жет подвергнуться не сам шифр, а алгоритм генерации ключей. Иными словами, если для генерации ключей используется нестойкий алгоритм, криптосистема будет нестой кой.
Длина ключа в DES-алгоритме составляет 56 бит. Вообще говоря, в качестве клю ча можно использовать любой 56-битный вектор. На практике это правило часто не соблюдается. Например, широко распространенная программа шифрования файлов Norton Discreet, входящая в пакет Norton Utilities (версии 8.0 или более младшей вер сии), которая предназначена для работы в операционной системе DOS, предлагает пользователю программную реализацию DES-алгоритма. Однако при вводе ключа раз решается подавать на вход программы только те символы, старший бит представле ния которых в коде ASCII равен нулю. Более того, пятый бит в каждом байте введен ного ключа является отрицанием шестого бита, и в нем игнорируется младший бит.
Это означает, что мощность ключевого пространства сокращается до 240 ключей. Та ким образом, программа Norton Discreet реализует алгоритм шифрования, ослаблен ный в десятки тысяч раз по сравнению с настоящим DES-алгоритмом.
В табл. 4.9 приведено количество возможных ключей в зависимости от различных ограничений на символы, которые могут входить в ключевую последовательность, а также указано время, необходимое для проведения атаки методом тотального перебо ра, при условии, что перебор ведется со скоростью 1 млн ключей в секунду.
Из табл. 4.9 следует, что при переборе 1 млн ключей в секунду можно в приемле мые сроки вскрывать 8-байтовые ключи из строчных букв и цифр, 7-байтовые буквен но-цифровые ключи, 6-байтовые ключи, составленные из печатаемых ASCII-симво лов, и 5-байтовые ключи, в которые могут входить любые ASCII-символы. А если учесть, что вычислительная мощность компьютеров увеличивается вдвое за 1,5 года, то для успешного отражения атаки методом тотального перебора в течение ближай шего десятилетия необходимо заблаговременно позаботиться о том, чтобы использу емый ключ был достаточно длинным.
Когда отправитель сам выбирает ключ, с помощью которого он шифрует свои со общения, его выбор обычно оставляет желать лучшего. Например, некий Петр Серге евич Иванов скорее предпочтет использовать в качестве ключа Ivanov, чем такую пос ледовательность символов, как &h>7)g\*. И вовсе не потому, что он принципиально не желает соблюдать элементарные правила безопасности. Просто свою фамилию Ива Глава 4. Криптографические методы защиты информации Таблица 4.9. Количество возможных ключей в зависимости от ограничений на символы ключевой последовательности Длина символов ключевой последовательности, байт 5 6 4 Количество Время Количество Время Количество Время Количество Время Количество Время возможных полного возможных полного полного ВОЗМОЖНЫХ ПОЛНОГО возможных полного ВОЗМОЖНЫХ ключей ключей перебора перебора ключей перебора ключей перебора ключей перебора 2,3 час 1,3x1 07 8,1х10 2,2x10" 4,7x1 05 3,2x1 0е 0,6с 13с 6 мин 2,5 дн Строчные буквы (26) 23 час 7 7,9х 6 1,8с 6,1x1 0 37 мин 2.9x1 0 34 дн.
Строчные буквы и 1,8x1 0 2 мин 2,3x1 цифры (36) 42 дн.
7,0 лет 1,6x1 Буквы и цифры (62) 9,3x10 5,8хЮ 3,6x10" 2,3x10" 16с 16 мин 17 час 2,3 лет 211 лет 7,8x1 09 2,2 час 11 6,7хЮ 8,2x1 07 8,6 дн.
Печатаемые 7,5х10 7,1х 1,5 мин символы (95) 14дн. 1в 7,3х10 2400 1,9хЮ 4,4x1 09 1,2x1 010 2,9x1 1,3 час 9,0 лет Все ASCII-символы лет лет нов помнит гораздо лучше, чем абракадабру из восьми произвольно взятых символов.
Однако при использовании такого ключа сохранить свою переписку в тайне ему не поможет и самый стойкий алгоритм шифрования в мире, особенно если ключи совпа дают с именами ближайших родственников и записывает он эти ключи на клочках бумаги, которые наклеивает на компьютер. В ходе хорошо организованной атаки ме тодом тотального перебора квалифицированный криптоаналитик не будет применять все ключи последовательно, один за другим. Он сначала проверит те из них, которые хоть что-то значат для Иванова. Такая разновидность атаки методом тотального пере бора называется словарной атакой, поскольку противник использует словарь наибо лее вероятных ключей. В этот словарь обычно входят:
Q Имя, фамилия, отчество, инициалы, год рождения и другая личная информация, имеющая отношение к данному человеку. Например, при словарной атаке против Петра Сергеевича Иванова в первую очередь следует проверить PSI. PSIPSI, PIVANOV, Pivanov, psivanov, peteri, petel, IvanovP, peterivanov, Peter-Ivanov и т. д.
О Словарная база данных, составленная из имен людей, героев мультфильмов и мифи ческих животных, ругательств, чисел (как цифрами, так и прописью), названий худо жественных фильмов, научно-фантастических романов, астероидов, планет и цветов радуги, общепринятых сокращений и т. д. В общей сложности для одного конкретно го человека такая база данных насчитывает более 60 тыс. словарных единиц.
Q Слова, которые получены путем внесения различных изменений в словарную базу данных, составленную на предыдущем этапе. Сюда относятся обратный порядок написания слова, замена в нем латинских букв о, 1, z, s на цифры 0,1, и 5 соответственно, слова во множественном числе и т. д. Это дает дополни тельно еще около миллиона словарных единиц для использования в качестве возможного ключа к шифру.
Q Слова, полученные с помощью замены строчных букв на заглавные. Например, вместе со словом Ivanov будут проверяться слова iVanov, ivAnov, ivaNov, ivanOv, ivanoV, IVanov, IvAnov, IvaNov, IvanOv, IvanoV и т. д. Однако вычислительная мощь современных компьютеров позволяет проверять только одно-, двух- и трех буквенные замены строчных букв на заглавные.
И Слова на различных иностранных языках. Хотя компьютерные пользователи, в основном, работают с англоязычными операционными системами (DOS, UNIX, Windows и др.), существуют локализованные версии распространенных операци онных систем, в которых допускается использование другого языка. Это означа ет, что в качестве ключа на вход программы шифрования может быть подана лю бая фраза на родном языке ее пользователя. Следует также учитывать, что ключ может быть транслитерирован с любого языка (например, с/русского или китайс кого) на английский и затем в таком виде введен в программу шифрования.
Q Пары слов. Поскольку количество вероятных пар слов, из которых может состо ять криптографический ключ, слишком велико, на практике криптоаналитики обычно ограничиваются словами из трех и четырех букв.
Поэтому, если все же требуется сохранить ключ в памяти, а запомнить выражение (например, 36f9 67a3 f9cb d931) трудно, тогда для генерации ключа можно использо вать правила, которые очевидны для вас, но не для постороннего:
Q Составьте ключ из нескольких слов, разделенных знаками препинания. Напри мер, легко запоминаются ключи типа Yankee! Go home.
Q Используйте в качестве ключа сочетание букв, которые представляют собой ак роним более длинного слова. К примеру, отбросив гласные буквы в предыду щем выражении, можно сгенерировать ключ Ynk! G hm.
Более привлекателен подход, при котором вместо отдельного слова используется достаточно длинное, легко запоминающееся предложение на русском, английском или другом языке. Такое выражение в криптографии называется паролем. Для преобразо вания пароля в псевдослучайный битовый ключ можно применить любую однонаправ ленную хэш-функцию.
Пароль следует выбирать достаточно длинным, чтобы полученный в результате его преобразования ключ был случайным. Известно, что в предложении на английс ком языке каждая буква содержит примерно 1,3 бита информации. Тогда, чтобы полу чить 64-битный ключ, пароль должен состоять примерно из 49 букв, что соответству ет английской фразе из 10 слов.
Пароль должен быть составлен так, чтобы его было легко вспоминать, и в то же время он должен быть достаточно уникальным. Цитата из высказываний Козьмы Прут кова, которая у всех на слуху, вряд ли подойдет, поскольку его сочинения имеются в форме, доступной для воспроизведения на компьютере, и, следовательно, могут быть использованы в словарной атаке. Лучше воспользоваться творчеством малоизвестно го поэта или драматурга, процитировав его с ошибками. Эффект будет сильнее, если в цитате, использованной для генерации ключа, присутствуют иностранные слова. Иде ально подходят для этой цели незатейливые ругательства Ч их не придется записы вать, чтобы запомнить. Достаточно стукнуть по пальцу молотком, и пароль автомати чески придет вам в голову. Надо только сдержаться и не произнести его вслух, чтобы не подслушали посторонние.
Несмотря на все сказанное, залогом наилучшей защиты служит не шаманство при выборе пароля, а случайность полученного ключа. Хороший ключ Ч это случайный ключ, а значит, заранее будьте готовы к тому, что запомнить его наизусть очень труд Глава 4. Криптографические методы защиты информации но. Поскольку в компьютерах используется исключительно цифровая информация, то далее мы будем предполагать, что сообщение, которое мы хотим криптографически преобразовать, переводится в последовательность двоичных цифр. Любая информа ция (письма, музыка или телевизионный сигнал) может быть представлена в двоичном коде.
Надежный ключ представляет собой случайный битовый вектор. К примеру, если он имеет длину 56 бит, это значит, что в процессе его генерации с одинаковой вероят ностью может получиться любой из 256 возможных ключей. Источником случайных ключей обычно служит природный случайный генератор. Кроме того, источником случайного ключа может быть криптографически надежный генератор псевдослучай ных двоичных последовательностей. Лучше, чтобы процесс генерации ключей был автоматизирован.
Использовать хороший генератор случайных чисел является очень важно, однако не следует слишком долго спорить о том, какой из генераторов лучше. Важнее приме нять стойкие алгоритмы шифрования и надежные процедуры работы с ключами.
Во всех алгоритмах шифрования имеются так называемые нестойкие ключи. Это означает, что некоторые из ключей к шифру менее надежны, чем остальные. Поэтому при генерации ключей нужно автоматически проверять их на стойкость и генериро вать новые вместо тех, которые эту проверку не прошли. К примеру, в DES-алгоритме имеются всего 24 нестойких ключа из общего количества 256, и, следовательно, веро ятность найти нестойкий ключ пренебрежимо мала. Кроме того, откуда криптоанали тику знать, что для зашифрования конкретного сообщения или файла был применен именно нестойкий ключ? А сознательный отказ от использования нестойких ключей дает противнику дополнительную информацию о вашей криптосистеме, что весьма нежелательно. С другой стороны, проверить ключи на нестойкость достаточно про сто, чтобы этим пренебрегать.
Генерировать открытые ключи сложнее, чем секретные, поскольку открытые клю чи должны обладать определенными свойствами (например, произведением двух про стых чисел).
Рассмотрим подробнее процесс формирования различных ключей. Чтобы услож нить шифр, используется не одна-единственная таблица, с помощью которой можно по некоторому правилу переставить буквы или цифры исходного сообщения, а не сколько таблиц в определенном порядке. Этот порядок и образует ключ шифрования.
Если мы используем только две таблицы, обозначенные как ключ 0 и ключ 1, то типовым ключом может быть, например, 1101101. В связи с тем, что таблиц несколь ко, теперь мы будем иметь дело с многоалфавитной подстановкой. И таких таблиц теоретически может быть сколь угодно много. Относительно этого нового источника сложности в шифре возникает вопрос: можно ли упростить таблицы подстановок, сде лав их меньше? Конечно же, да. Простейшая двоичная подстановка, которую только можно выполнить, Ч это замена одной двоичной цифры на другую. В этом случае существует всего две различные таблицы подстановок. Рассмотрим их. При этом каж дая таблица будет соответствовать одному из двух основных типов ключа, как показа но на рис. 4.22.
Мы предположим, что таблица, помеченная Ключ 1, заменяет нули сообщения на единицы и, наоборот, таблица, помеченная Ключ 0, оставляет все цифры сообще Сообщение Шифр Ключ 0 1 0 1 Ключ 1 0 Сообщение 010110., шифр шифр Расшифрованное = сообщение = Ключ Ключ Сумматор по модулю Рис. 4.22. Двоичная подстановка ния неизменными. Оказывается, что тот же самый эффект можно получить с помощью сложения по модулю 2: две одинаковые цифры в результате такой операции дают О, две различные Ч 1. Поэтому в рассматриваемом случае шаблонный ключ можно на звать также аддитивным ключом. Ключ шифрования для сложения по модулю 2 может быть произвольной последовательностью единиц и нулей. Чтобы зашифровать двоич ное представление, прибавляют цифры ключа к каждой цифре сообщения. При рас шифровке вычитают цифры (это то же самое, что и сложение по модулю 2), Рассмотрим, что получится, если мы будем шифровать сообщение (последователь ность двоичных цифр), например, 010110, преобразуя ее в другую последовательность, используя ключ Ключ 1 и Ключ 0 в некотором произвольном порядке: 110101 (см.
рис. 4.22). Согласно правилу, по которому Ключ 1 заменяет нули сообщения на еди ницы и наоборот, а Ключ 0 оставляет все цифры неизменными, получим шифрован ное сообщение 100011. Это сложение по модулю 2, удобное тем, что вычитание по мо дулю 2 есть то же самое, что и сложение, поэтому исходное сообщение может быть восстановлено просто прибавлением последовательности цифр ключа (она известна тому, кому направлено сообщение) к последовательности цифр шифрованного сообщения.
Результатом этих преобразований будет расшифрованное сообщение 010110, Сразу возникает вопрос: имеет ли рассмотренный простой шифр какое-либо практи ческое значение? Поскольку этот шифр, в сущности, использует лишь две таблицы под становки минимального размера, очевидно, что мы должны переключаться между ними часто, и делать это случайным образом, то есть прибавлять к данным случайную последо вательность ключевых цифр. Предположим, это мы сделали. Тогда получим потенциаль но нераскрываемый шифр. С точки зрения теории информации этот шифр делает следую щее: к каждому биту информации сообщения прибавляется один бит информации (а точнее, дезинформации!) ключа. Этого достаточно, чтобы полностью разрушить любую структу ру, которую исходное сообщение могло бы иметь, если только цифры ключа взяты в слу чайном порядке, скажем, определяемом подбрасыванием монеты, и ключевая последова тельность имеет такую же длину, как сообщение, и никогда не повторяется.
Стойкость такого метода определяется исключительно тем, что для каждой цифры сообщения мы полностью и случайным образом меняем ключ. Это единственный класс Глава 4. Криптографические методы защиты информации шифров, для которых можно доказать нераскрываемость в абсолютном смысле этого слова.
Даже если злоумышленник пытается вскрыть систему с помощью грубой силы, например, опробует все возможные прибавляемые ключи (26 или 64, в случае нашего 6-битного сообщения), он получит все возможные открытые тексты, включая тот, ко торый мы в действительности зашифровали, но не получит информации о том, какое сообщение правильное. Даже сам дьявол, который мог бы опробовать все возможные ключи в одно мгновение, не мог бы внести определенность. Эта система хорошо изве стна и используется всеми правительствами под разными именами, такими, как систе ма Вернама или одноразовый блокнот.
В реальных системах требуется, чтобы на передающей и приемной сторонах были одинаковые ключи, синхронизированные посредством таймера. Цифры сообщения и цифры ключа складываются по модулю 2, полученный в результате зашифрованный поток передается через канал связи, после чего ключ вычитается из данных (прибавля ется по модулю 2). Для трафика большого объема обширные запасы ключевых цифр должны быть заблаговременно доставлены получателю и храниться у него.
Фундаментальный недостаток системы Вернама состоит в том, что для каждого бита переданной информации получателю необходимо хранить один заранее подго товленный бит ключевой информации. Более того, эти биты должны следовать в слу чайной последовательности, и эту последовательность нельзя использовать вторично.
Если необходимо шифровать трафик большого объема, то выполнить это требование трудно. Поэтому система Вернама используется только для передачи сообщений наи высшей секретности.
Чтобы обойти проблему предварительной передачи получателю сообщения сек ретного ключа большого объема, инженеры и изобретатели придумали много остро умных схем генерации очень длинных потоков псевдослучайных цифр из нескольких коротких потоков в соответствии с некоторым алгоритмом. Получателя шифрованно го сообщения при этом необходимо снабдить точно таким же генератором, как и у отправителя. Конечно, такой алгоритм предполагает использование систематических процедур, добавляющих регулярности в шифротекст, обнаружение которых может помочь аналитику дешифровать сообщение.
Один из основных методов построения подобных генераторов заключается в ис пользовании двух или более битовых потоков, данные которых побитно складываются для получения единого смешанного потока. Например, простой длинный поток би тов ключа может быть заменен двумя циклическими генераторами двоичных последо вательностей, длины которых являются простыми или взаимно простыми числами (рис.
4.23). Так как в этом случае величины длин двоичных последовательностей не имеют общих множителей, полученный из них поток имеет период повторения, равный про изведению их длин.
Pages: | 1 | ... | 6 | 7 | 8 | 9 | 10 | ... | 11 | Книги, научные публикации