ОПНЦПЮЛЛЮ ЬХТПНБЮМХЕ ДЮММШИ

Криптография Криптография Предисловие Идея сделать информацию недоступной для посторонних появилась так же давно, как и сама письменность. С тех пор криптография и криптографический анализ достигли очень высокого уровня. Появилось множество алгоритмов как шифрования, так и взлома шифров. Чего стоит, например, разгадка письменностей практически всех известных древних цивилизаций. Особенно большой прорыв в этой области был сделан после изобретения компьютера. Появились шифры, на взлом которых, по подсчетам прошлых лет, понадобились бы годы или даже столетия. Но фантастическое развитие информационных технологий сыграло злую шутку с разработчиками алгоритмов шифрования. Развитие сетевых технологий, возможность распараллеливания вычислений, а главное ≈ развитие криптоанализа позволили взламывать шифры, которые еще недавно считались абсолютно надежными. Но наука идет впереди техники. Появляются все новые и новые методы защиты информации и, соответственно, новые методы взлома. И конца этому не видно. Достаточно легко придумать свой алгоритм шифрования, но как доказать его надежность? Сложность алгоритма также не гарантирует его надежности, а лишь увеличивает вероятность существования в нем ╚дыр╩. Давайте же попытаемся сориентироваться в существующих на сегодняшний день средствах защиты информации. Ключи и замки В настоящее время информацию защищают такими криптографическими методами, как шифрование, причем существуют шифрование с закрытым (симметричная криптосистема) и открытым ключом, электронная подпись и стеганография. Начнем с самого простого ≈ шифрования с закрытым ключом. В криптосистемах этого типа используют единый ключ как для шифрования, так и для дешифрования. В основе почти всех симметричных криптосистем лежат блочные шифры. Входная информация делится на равные блоки, потом к каждому из них может дописываться аутентификационная информация, а затем каждый блок шифруется в зависимости от ключа. Одним из условий является достаточно большой размер блока, чтобы исключить статистический анализ шифра. Для обеспечения успешной дешифровки процедура шифрования блока должна быть обратимой, а незначительное изменение ключа или входной информации должно приводить к значительным изменениям в шифре. Чтобы исключить возможность тотального перебора ключей за разумное время, размер ключа необходимо сделать достаточно большим. Также надо исключить возможность появления ╚плохих╩ ключей, при использовании которых входная информация некачественно шифруется, то есть шифр легко разгадать, или не шифруется вовсе. Одним из самых старых алгоритмов шифрования с закрытым ключом является алгоритм DES (Data Encryption Standard ≈ стандарт шифрования данных), который широко применяется и по сей день. Размер блока в алгоритме DES составляет 64 бита, а размер ключа ≈ 56 бит. Алгоритмы, созданные на основе DES, просты, поэтому можно достичь очень высокой скорости шифрования данных и эти алгоритмы могут быть реализованы аппаратно. Однако чем проще алгоритм, тем быстрее будет происходить подбор ключей. И в настоящее время стало возможным осуществлять тотальный перебор ключей к алгоритму DES за реальное количество времени. Стандарт DES безнадежно устарел. Ему на смену пришли более совершенные алгоритмы. Появился Тройной DES (Triple DES) ≈ данные сначала шифруются по алгоритму DES с одним ключом, затем дешифруются по этому же алгоритму, но уже с другим ключом, а затем вновь шифруются с третьим ключом. Примечательно, что Тройной DES совместим со стандартным DES. Если все три ключа взять одинаковыми, то Тройной DES превратится в DES. Таким образом размер ключа увеличивается в три раза, но во столько же раз больше уходит времени на шифрование и дешифрование. Еще один из вариантов усовершенствования алгоритма DES ≈ это DESX. Здесь перед шифрованием по алгоритму DES блок входной информации складывается по модулю два с первым ключом, затем происходит шифрование по алгоритму DES, но уже с другим ключом, а потом полученная информация вновь складывается по модулю два, но уже с третьим ключом. DESX, в отличие от Тройного DES, по скорости ненамного отстает от DES. Если первый и третий ключи DESX взять нулевыми, то DESX также превратится в DES. Кроме Тройного DES и DESX, появилось множество других симметричных криптосистем. Это и MD5 ≈ алгоритм, который изначально был разработан для вычисления хеш-функции, но успешно применяется для шифрования, и RC6, созданный компанией RSA Data Security, Inc. Алгоритм RC6 лег в основу нового американского стандарта шифрования AES (Advanced Encryption Standard), пришедшего на смену DES. В России также проходили разработки в этой области, и в 1989 году был принят Российский стандарт шифрования ≈ ГОСТ 28147-89, который намного превосходил американский DES. Пароли и отзывы Существует множество хороших алгоритмов шифрования, но на практике зачастую применяются устаревшие или непроверенные алгоритмы. Например, в семействе операционных систем Windows 9x есть функция идентификации пользователей. При входе в Windows пользователю вежливо предлагается ввести свое идентификационное имя (login) и пароль. Все пароли Windows хранятся в файлах с расширением pwl в каталоге операционной системы, например C:\Windows\sasha.pwl. В этих же файлах хранятся все пароли для входа в Интернет, если, конечно, пользователь предпочитает хранить пароли в файле, а не в голове или записной книжке. Вся информация в pwl-файлах хранится в зашифрованном виде, но алгоритм шифрования не обеспечивает должной защиты информации. Если файл с паролями попадет в руки злоумышленника, то специальная программа за несколько часов работы на обычном персональном компьютере расшифрует его. Самое интересное то, что программу взлома pwl-файлов сможет написать программист средней квалификации. Она работает очень просто: шифруются всевозможные комбинации символов, и полученный шифр сравнивается с шифром из pwl-файла. Если оба шифра совпадут, то исходная комбинация букв и является исходным паролем. А если немного вникнуть в тонкости алгоритма шифрования, то полный перебор можно ограничить, отметая заведомо неверные комбинации символов. Еще один пример неграмотного использова ния криптосистем ≈ это работа CGI-интерфейса. CGI-интерфейс позволяет пользователю не только просматривать статические web-странички, но и запускать программы на стороне сервера и получать результаты работы этих программ в окне своего web-броузера. Исходные данные для работы CGI-скриптов посылаются из форм в HTML-документах. Например, при покупке через Интернет пользователь на web-страничке магазина заполняет анкету, где указывает товар, который хочет приобрести, свой домашний адрес, номер кредитной карточки и т. д. Когда он нажимает на кнопку ОК, то данные пересылаются на web-сервер, где запускается программа их обработки. Известно, что подобный пакет можно перехватить, поэтому при необходимости данные могут шифроваться. Если мы пересылаем номер своей кредитной карточки, то шифрование просто необходимо, а во многих системах на основе Unix и Linux шифрование данных производится по старому алгоритму DES, который, как известно, не гарантирует достаточную надежность. Также симметричные криптосистемы широко применяются в программах архивации данных. Практически каждый современный архиватор имеет функцию шифрования. Производители архиваторов утверждают, что их программы гарантируют сохранность зашифрованной информации. Но не стоит слепо верить в надежность непроверенных алгоритмов, вдруг существуют ╚дыры╩ и в этих системах. Например, разработаны программы, которые за несколько часов взламывают пароли к RAR и ZIP-архивам. Есть над чем задуматься. И все же главный недостаток симметричных криптосистем даже с самым совершенным алгоритмом шифрования ≈ это необходимость сообщать ключ к шифру, а значит, необходимость надежного канала связи. Но если такой надежный канал имеется, то тогда зачем вообще шифровать? Чтобы устранить этот недостаток, и были разработаны криптосистемы с открытым ключом. Эти системы характеризуются тем, что для шифрования используется один ключ ≈ открытый, а для дешифрования другой ≈ закрытый. Открытый и закрытый ключи связаны между собой. При этом данная зависимость такова, что установить открытый ключ, зная закрытый, с вычислительной точки зрения очень трудно. Ключ шифрования может быть сделан общедоступным, и в этом случае проблема получения общего секретного ключа для связи отпадает. Если сделать общедоступным ключ дешифрования, то на базе полученной системы можно построить систему аутентификации передаваемых сообщений. Поскольку в большинстве случаев один ключ из пары делается общедоступным, такие системы получили также название криптосистем с открытым ключом. Криптосистема с открытым ключом определяется тремя алгоритмами: генерации ключей, шифрования и дешифрования. Алгоритм генерации ключей открыт, и, подав на вход случайную строку надлежащей длины, можно получить пару ключей. Один из ключей публикуется, а второй, называемый секретным, хранится в тайне. В настоящее время существует несколько криптосистем с открытым ключом. Наиболее широкое использование получила система Ривеста ≈ Шамира ≈ Эйделмана (Rivest, Shamir, Adlеman ≈ RSA). Кратко алгоритм можно описать следующим образом. Пользователь A выбирает пару различных простых чисел p и q, вычисляет их произведение n = p∙q и выбирает число d, такое, что НОД(d, ф(n)) = 1, где ф(n) ≈ функция Эйлера (количество чисел, меньших n и взаимно простых с n). Если n = p∙q, где p и q ≈ простые числа, то ф(n) = (p √ 1)∙(q √ 1). Затем он вычисляет величину e, такую, что d∙e mod ф(nA) = 1, и размещает в общедоступной справочной таблице пару (e, n), являющу- юся открытым ключом пользователя A. Когда пользователь B желает передать сообщение X пользователю A, то он его шифрует по следующей схеме: X => X▓ = Xe mod n Пользователь А производит дешифрование полученного сообщения с помощью обратного преобразования: X▓ => X = Xd mod n Стойкость этого алгоритма опирается на сложность решения задачи разложения числа на простые множители. Зная числа p и q, очень просто вычислить их произведение n, но при известном n крайне затруднительно найти его разложение на простые сомножители. При n > 10145 эта задача выходит за пределы возможностей современной вычислительной техники. Но на практике не все так просто, как в теории. Откуда пользователь А возьмет два больших простых числа p и q, причем настолько больших, чтобы их произведение было больше 10145? Существует множество алгоритмов генерации больших простых чисел, но не все они удобны. Во-первых, алгоритм должен быть достаточно быстрым, чтобы пользователю хватило терпения; во-вторых, алгоритм должен генерировать как можно больше разных m-разрядных простых чи- сел, чтобы снизить до минимума вероятность случайного совпадения ключей у разных пользователей системы и вероятность угадывания ключа злоумышленником. Например, самый простой способ получить простое число, предложенный еще Евклидом, заключается в следующем: надо перемножить k первых простых чисел и к полученному произведению прибавить 1 (2∙3∙5∙7 + 1 = 211 ≈простое число). Но этот алгоритм позволяет получить очень мало простых чисел, содержащих одинаковое число разрядов. Допустим, пользователь А по методу Евклида нашел два простых числа p и q, а открытый ключ n = p∙q попал в руки злоумышленника. Если злоумышленник будет искать делители n среди чисел, полученных по методу Евклида, то ему не составит большого труда их найти. Так что метод Евклида не подходит. Для генерации простых чисел можно использовать, например, такой способ: генератор случайных чисел вырабатывает m-разрядное нечетное число (четное число уже не простое) и проверяется, простое ли оно. Если число не простое, то оно увеличивается на 2 и вновь проверяется, и так до тех пор, пока мы не найдем простого числа. Такой алгоритм тоже нам не подходит, поскольку он очень медленный. Сейчас используют специальные алгоритмы генерации псевдопростых чисел. Полученное по этому алгоритму число с вероятностью более 99,9% простое. Подписи и сертификаты Еще один широко используемый метод защиты информации ≈ это электронная подпись. Идея цифровой подписи заключается в следующем: к файлу приписывается специальная информация, которая идентифицирует этот файл и его владельца. Если злоумышленник изменит подписанный файл, то электронная подпись не будет соответствовать файлу. Любая система электронной подписи работает следующим образом: сначала вычисляется хеш-функция подписываемого файла ≈ специальное преобразование, на вход которого подается файл, а на выходе получается слово фиксированной длины. Это слово ≈ своеобразная контрольная сумма файла. Затем результат хеширования шифруется с открытым ключом. Полученный шифр и есть электронная подпись файла. В принципе можно шифровать весь файл, но алгоритм шифрования с открытым ключом очень трудоемок, и гораздо быстрее зашифровать хеш-функцию подписываемого файла. Все вышеизложенные методы были прекрасно реализованы в программном пакете PGP. Пакет PGP (Pretty Good Privacy) является на сегодня самым распространенным продуктом, позволяющим использовать современные надежные криптографические алгоритмы для защиты информации в персональных компьютерах. К основным преимуществам данного пакета, выделяющим его среди других аналогичных продуктов, следует отнести следующие: Открытость. Исходный код всех версий программ PGP доступен в открытом виде. Любой эксперт может убедиться в том, что в программе эффективно реализованы криптографические алгоритмы. Так как сам способ реализации известных алгоритмов был доступен специалистам, то открытость повлекла за собой и другое преимущество ≈ эффективность программного кода. Стойкость. Для реализации основных функций использованы лучшие (по крайней мере на начало 90-х) из известных алгоритмов, при этом допуская использование достаточно большой длины ключа для надежной защиты данных. Бесплатность. Готовые базовые продукты PGP (равно как и исходные тексты программ) доступны в Интернете, в частности на официальном сайте PGP Inc. www.pgpi.org. Поддержка как централизованной (через серверы ключей), так и децентрализованной (через ╚сеть доверия╩) модели распределения открытых ключей. В пакете PGP реализованы следующие функции: генерация пары из закрытого/открытого ключа; шифрование файла с помощью открытого ключа любого пользователя PGP (в том числе своего); расшифровка файла с помощью своего закрытого ключа; наложение цифровой подписи с помощью своего закрытого ключа на файл (аутентификация файла) или на открытый ключ другого пользователя (сертификация ключа); проверка (верификация) своей подписи или подписи другого пользователя с помощью его открытого ключа. Подпрограммы пакета PGP используются во многих других программах, так или иначе связанных с шифрованием. Например, в клиенты электронной почты (Microsoft Outlook, The Bat! и др.) встроены процедуры шифрования/дешифрования писем. Еще один замечательный программный продукт на основе PGP ≈ PGP Phone. Он предназначен для обеспечения конфиденциальности, когда вы общаетесь при помощи IP-телефонии. IP-телефония ≈ это просто замечательное изобретение. Голос можно передавать не только по телефонным линиям, но и через Интернет. При этом вы можете звонить в любую точку земного шара, а платите только за время работы в Сети. Еще одно очень важное применение электронной подписи ≈ это технология ActiveX. Технология ActiveX была разработана компанией Microsoft для внедрения различных объектов (например, документов Word, графиков, математических формул и т. п.) в web-странички. В принципе сценарии ActiveX могут выполнять любые действия ≈ это своеобразные программы, которые подобно апплетам Java выполняются на машине клиента. Однако Java-апплеты не могут обращаться к жесткому диску пользователя, в то время как сценарии ActiveX имеют доступ ко всем ресурсам. Такой подход существенно расширяет возможности, но создает опасность для пользователя. Чтобы обеспечить свою безопасность, пользователю целесообразно использовать ActiveX-сценарии только от проверенных производителей. Для этого сценарии ActiveX сертифицируются электронной подписью, причем ключи для электронной подписи выдает за определенную плату ведомство сертификатов (например, VeriSign ≈ www.verisign.com) На сервере ведомства сертификатов помещается информация об авторе сценария ActiveX. Если у вас в настройках броузера в разделе ╚Безопасность╩ указано ╚Проверять сертификаты╩, то, когда вы заходите на web-страничку с элементом ActiveX, перед загрузкой сценария броузер обратится к серверу ведомства сертификатов и проверит сценарий на подлинность. Картинки и разговоры Еще один метод защиты информации, о котором я хотел бы рассказать, ≈ это стеганография, то есть маскировка секретной информации внутри несекретной. Удобнее всего прятать свои секреты в графических, звуковых, видео и других мультимедиа-файлах. Почему-то стеганография используется гораздо реже по сравнению с другими методами, а ведь у нее большие перспективы. С помощью стеганографии можно создать безопасный канал связи в рамках незащищенного канала. Представьте себе телефонный разговор, где в звуке запрятаны секретные данные. Но самое главное, что методами стеганографии можно решить проблему авторского права на мультимедиа-продукты. Первая попытка уже сделана компанией Digimarc Corporation (www.digimarc.com). Эта компания создала специальный графический фильтр Digimarc (водяной знак), который входит в состав пакета Adobe Photoshop. Фильтр выполняет следующие действия: создает электронную подпись графического изображения, а затем методами стеганографии прячет подпись внутри самого изображения, причем подпись записывается много раз. И теперь если злоумышленник украдет у вас хотя бы часть изображения, то внутри нее все равно будет храниться информация об истинном создателе. Для использования фильтра пользователю надо только зарегистрироваться на сервере компании Digimarc Corporation и получить персональный идентификационный номер (ключ электронной подписи). Аналогичным образом можно защищать от посягательств на авторское право не только графику, но и аудио-файлы, и видео. Единственный недостаток стеганографических систем ≈ они никогда не будут открытыми. Если опубликовать алгоритмы маскировки в файлах, то ни о какой секретности не может быть и речи. Пожалуй, мы рассказали обо всех существующих на сегодняшний день методах защиты информации. Несмотря на их количество, мало кто из рядовых пользователей прибегает к их помощи. А в России, где все надеются на русский ╚авось╩, ≈ и подавно. Сегодня защита информации, как это ни парадоксально, забота не пользователей, а производителей средств защиты информации. Производители должны сами заботиться о безопасности клиентов, им и карты в руки. ПЮГДЕКШ summer ЙСУНММШИ ЯОА ДНЯРЮБЙЮ ЯОА ДНЯРЮБЙЮ ЯОА ДНЯРЮБЙЮ ЯОА ДНЯРЮБЙЮ ЯОА ДНЯРЮБЙЮ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ ДБЮ ЖБЕР snr УНКНДХКЭМХЙ zanussi УНКНДХКЭМХЙ zanussi УНКНДХКЭМХЙ zanussi ЙСОХРЭ ЮИЯАЕЯР ЙСКЕП ОПНЖЕЯЯНПМШИ ЙКЕХРЭ 88 КЧЙЯ ОПНДЮРЭ ЙЮИР ОНЯРЮБЫХЙ БХМЮ ЛСФВХМЮ БШУНДМНИ ДХУПНХВМНЕ ГЕПЙЮКН hi-fi hi-fi hi-fi ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ТКЧНПЕЯЖЕМРМШИ ЙПЮЯЙЮ ДЕБЕКНОЕПЯЙЮЪ ЙНЛОЮМХЪ АЮУХКЮ ОПНХГБНДХРЕКЭ ЯХКСЩР ЯКХЛЕМР КХТР ЛЮПЬПСРХГЮРНП ЙПЮЯЙЮ ДБСУЙНЛОНМЕМРМШИ КХБМЕЯАНПМШЕ ПЕЬЕРЙЮ НГНМЮРНП БНГДСУЮ ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ЯСЬХКЭМШИ ЛЮЬХМЮ electrolux ДНЦНБНП ЯСППНЦЮРМШИ ЛЮРЭ ЙПСРНИ xxx БХДЕН ЯКХЛ КХТР ЯХЯРЕЛЮ ДШЛНСДЮКЕМХЪ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ НАКХЖНБЙЮ ЩКЕЙРПНЙЮЛХМ ЙНЯРПНЛЮ ЙНЛЛЕПВЕЯЙХИ ЮКЭРЕПМЮРХБМШИ ЛЕДХЖХМЮ ОПНЦПЮЛЛЮ ЬХТПНБЮМХЕ ДЮММШИ