Проблемы безопасности сетей
Главных проблем безопасности в сети не так уж и много. Вот их самый краткий, но вполне достаточный перечень:
=> Как предотвратить проникновение в сеть и манипуляции с данными?
=> Как предотвратить разглашение информации в сети?
=> Какие места системы безопасности сети менее всего устойчивы?
=> Какова модель предполагаемого нарушителя?
Проблема предотвращения несанкционированного доступа, безусловно, самая важная, хотя не единственная. Ей посвящено чуть не все содержание этой главы. Необходимо заметить: администраторами сетей почти всегда правильно оценивается значение программных средств контроля и криптографической техники, но мало кто из них уделяет достаточное внимание мониторингу работы пользователей. Большинство взломов систем происходит из-за того, что администратору сети поручают несвойственную ему дополнительную обязанность следить за строгим соблюдением пользователями правил работы, которую в большинстве случаев он выполнить не в состоянии. Поэтому в действительно секретной сети кроме администратора нужен еще и офицер безопасности, внимательно следящий за действиями пользователей и непрерывно ведущий мониторинг.
Разглашение информации слишком часто встречается в практике работы сетей потому, что люди постоянно находятся под прессом обстоятельств и не всегда осознают последствия кажущихся им мелкими действий. Но, скажите, какой толк вкладывать большие деньги в шифрующие сетевые карты, если администратор, временами уезжая на рыбалку, будет просить присмотреть за системой своего друга из другой фирмы, передав ему эквивалент супервизора, или пользователи будут уходить на обед, не выгрузившись из системы? Основой противодействия разглашению информации должна служить строгая регламентация всех действий пользователей и персонала, обеспечиваемая главным образом административными, а уже потом техническими и программными средствами. Наиболее надежной является такая организация системы при которой пользователь сознает ответственность за те или иные свои действия. Достаточно указать ему, что, уйдя со станции, не выгрузившись, он будет нести ту же самую ответственность, как если бы ушел, не заперев сейф. В то же время программы обеспечения секретности должны помочь ему не забывать про рутинные обязанности.
Нужно защищать все компоненты системы: оборудование, программы, данные и персонал. Система защиты должна быть многоуровневой и строиться по уровням секретности. Для надежной защиты необходимо распределить функции между этими уровнями так, чтобы осуществлялось необходимое дублирование функций защиты и происходила компенсация недостатков одного уровня другим. Криптографическая защита должна быть применена на всех верхних уровнях, однако ее применение должно соответствовать предполагаемым угрозам. Так как совокупные затраты на защиту велики, то усиливать надо в первую очередь слабые ее элементы. Как у цепочки прочность защиты определяется лишь самым слабым звеном.
Что движет хакерами? Причины для хакерства могут быть различные. Кроме иррационального поведения со стороны хакера, имеются четыре основных повода: персональная месть, самореклама, попытка вызвать разрушающий основы общества хаос или нажива. При мести хакерство основано на социальном или персональном заказе отмщения за реальную или воображаемую обиду. Некоторые лично мотивированные случаи хакерства побуждены идеализмом - жертва выбирается в этих случаях так, чтобы хакер был уверен, что ее наказание даст абстрактную пользу людям. Разрушение сетей правительственных и крупных коммерческих компаний чаще всего относится к этому типу. Анархически настроенные молодые люди были наиболее видными проводниками таких действий до последнего времени, так как считали хакерство достойным ответом на безнравственные законы и действия правительств. Другой тип хакерства можно назвать пропагандистским, потому что он преследует получение гласности для освещения специфической точки зрения хакеров или для саморекламы. Действительно, приписка в вирусе: "Sofia. Dark Adventure.", эквивалентна визитной карточке, так как достаточно просмотреть файлы регистрации софийских BBS, чтобы найти автора. Чисто политическое хакерство неизвестно, так как оно вряд ли может вызывать значимые изменения политики и больше смахивает на пропагандистский демарш (Примером тому может служить вирус "производства КНР", призывающий заклеймить позором убийц площади Тяньаньмынь. Хотя был случай уничтожения файлов Пентагона с именами призывников на вьетнамскую войну, но это, вроде бы. сделал не хакер, а системный администратор.) . А хакерство ради наживы - это то, чем рано или поздно кончают неудачники в личной или деловой сфере. Публикации сообщают, что покинувшие Россию профессиональные программисты, не навдя работы, нередко принимают предложения преступных группировок, которые используют их как хакеров для грабежа банков. Эти "золотые воротнички" практически неуловимы, так как обычная операция хорошо планируется и длится всего несколько минут, а связь ведется из номера отеля, снятого на вымышленное лицо.
Вопреки популярному изображению, хакеры не всегда молодые мальчики. Социологи США нашли, что треть арестованных за преступления хакеров были женщины, в то время, как лишь седьмая часть, были до 21 года. Изучение показало также, что половина хакеров имеет возраст между 25 и 30 годами. Ответчики по компьютерным преступлениям вписываются в три категории: пираты, хакеры и крекеры (взломщики). Пираты главным образом нарушают авторское право, создавая незаконные версии программ и данных. Хакеры получают неправомочный доступ к компьютерам других пользователей и файлам в них. Однако они, как правило, не повреждают и не копируют файлы, удовлетворяясь сознанием своей власти над системами. Крекеры - наиболее серьезные нарушители. Они позволяют себе все. Сотрудники служб компьютерной безопасности и антихакеры делят всех нарушителей на четыре группы по отношению к жертве:
* не знающие фирму посторонние;
* знающие фирму посторонние и бывшие сотрудники;
* служащие непрограммисты;
* служащие программисты.
Не стоит недооценивать возможности непрофессионалов по совершению компьютерных преступлений. Как метко написано в руководстве для офицеров морской пехоты США о рядовых: "Они невежественны, но очень сметливы". Нелояльные сотрудники, имеющие доступ к компьютерам, играют главную роль в большинстве финансовых преступлений. Это скорее организационная, чем техническая проблема. Если хорошо отобранным наемным служащим хорошо платят, мало вероятно, что они представят угрозу безопасности. Технология может играть здесь лишь вспомогательную роль. Статистика приводит очень печальные данные, утверждая, что лишь четверть сотрудников банка вполне лояльна, четверть, безусловно, настроена к фирме враждебно и не имеет моральных ограничителей, лояльность же оставшейся половины зависит исключительно от обстоятельств. Процедуры безопасности могут обеспечивать проверку паролей и строгий контроль доступа к ценным общим данным, но взломщика, хорошо знающего внутреннее устройство системы, практически невозможно остановить.
Программы архивации файлов
Ряд программ обслуживания архивов файлов позволяет использовать криптографическую технику. Наиболее известны из них программы ZIP и ARJ. Среди традиционных средств поддержки архивов как добавление, удаление, обновление, распечатка и извлечение файлов, в них входят операции "взбивания" файлов с паролем при их помещении в архив и извлечении. Задание пароля осуществляется ключом -s (S-от английского слова scramble, что означает смешивать, взбивать, соединять. В программе ARJ используется ключ G - garble - подтасовывать, искажать.). Так, например, создание секретного архива всех файлов из директории может быть выполнено утилитой PKZIP при помощи пароля Trivia так:
>PKZIP -sTrivia archive *.*
К особенностям работы с программами архивации нужно отнести неудовлетворительное задание пароля, который отображается на экране и может быть подсмотрен как визуально, так и техническими средствами перехвата излучения мониторов компьютеров. Кроме того, шифрование захватывает область данных архива, которая легко реконструируется, как длина исходного файла, его название и ряд резервных нулевых байт. Из-за этого, несмотря на серьезное вообще-то взбивание текста с паролем, возникают серьезные опасения в возможности криптографической атаки на ключ. Поэтому данные способы засекречивания сообщений устойчивы лишь от любопытных, но не от хакеров и тем более от государственных криптографических служб. Известно множество "ломалок" для шифрованных архивов, которые подбирают ключ, контролируя контрольную сумму. Эффективность их очень невелика, так как по контрольной сумме ключ вскрывается уж очень неоднозначно, а примененный способ тотального опробования ключей годится лишь для сверхбыстродействующих ЭВМ. Однако периодически приходится ломать архивы, ключи к которым пользователи забыли или ввели с ошибкой. Обычно они смутно помнят ключ, который вроде бы вводили. Простенькая программа модификации этого ключа, учитывающая ошибки при наборе, позволяет примерно в половине случаев подобрать ключ за пару часов работы даже слабенькой персональной ЭВМ.
Программы шифрования файлов и дисков
Программ, обеспечивающих шифрование на уровне файлов, сейчас великое множество для DES и для RSA алгоритмов, так как большинство из них распространяется бесплатно. Так, английская фирма Lattice специализируется на выпуске пакетов прикладных программ SecretDisk для криптографической защиты индивидуальных файлов. Остановимся лишь на трех популярных, хотя и давно извест- ных программах.
Программа PC Secure из пакета PC Tools позволяет шифровать отдельные файлы и целые директории. PCSecure обладает рядом привлекательных свойств, которые сделали ее первым широко извест- ным средством криптографической защиты данных. После загрузки программы на экране дисплея появляется меню, позволяющее выбрать нужные режимы и команды. Вход в разделы меню достигается нажатием клавиши Alt. На рисунке ниже указан подраздел меню для работы с файлами [File].
PCSecure | File | Options Help(F1) |
Encrypt File | ||
Decrypt File | ||
About | ||
eXit |
Для шифрования файлов выбирают "Encrypt File", а для расшифровывания "Decrypt File".
В диалоге можно выбрать файл или директорию для шифрования или расшифровывания. Для этого курсор устанавливают в списке файлов на нужный объект и нажимают Enter. Если выбранный объект представляет собой директорию (его имя заключено в квадратные скобки, как [BLACKOUT]), то PCSecure входит в нее и отображает в списке файлов на экране ее содержимое. Чтобы выбрать все файлы директории для шифрования или расшифрования, необходимо набрать Alt-D. Спецификацию файлов можно ввести и вручную с клавиатуры. При этом допускаются обозначения драйвера, пути и джокеров в виде символов "?" и "*" (Джокер (карточный термин, карта изображающая шута) - символ, который заменяется произвольной одной буквой или цифрой (?). или же группой символов произвольной длины (*).). Клавишей табуляции можно переключать высвеченные режимы. Клавиша Enter выбирает только высвеченный режим.
При задании ключа шифрования в PCSecure используется специальное диалоговое окно. В качестве ключа можно ввести от 5 до 32 любых печатных символов. Ключ вводится дважды для проверки правильности его набора, не отображаясь на экране. Нажатием клавиши F9 можно переключаться между набором текстового и шестнадцатеричного ключа. При шестнадцатеричном ключе, он должен состоять из 16 знаков (0-9, A-F).
PCSecure при шифровании и расшифровывании предупреждает пользователя, если:
не прошел автотест метода DES;
наборы ключа отличаются друг от друга;
длина ключа меньше 5 символов;
расшифруется файл не зашифрованный в
PCSecure.
Перед началом шифрования необходимо проверить и переустановить необходимые режимы работы. Они сохраняются в файле шифровки и используются при расшифровывании, подавляя текущее значение режимов. Для переустановки режимов выбирается подраздел меню "Options". Его ввод на экране дисплея приведен ниже.
PCSecure File | Options | Нelp(FI) |
Full DES Encryption | ||
Quick Encryption | ||
Compression | ||
One Key | ||
Hidden | ||
Read-Only | ||
Delete Original File | ||
Expert Mode | ||
Save Preferences |
В меню можно выбрать режим, когда при шифровании файлу шифровки дается то же самое имя, которое было у исходного. В этом случае шифровка записывается прямо на место исходного файла, уничтожая находящуюся в нем информацию. Так как файл шифровки всегда несколько больше по размеру исходного файла, то достигает- ся полное уничтожение оригинала и высокая секретность. Если же этот режим выключен, то PCSecure установит расширение имени файла шифровки SEC и использует то же самое имя, какое имел исходный файл. Таким образом, одновременное шифрование файлов PROG1.С и PROGI.PRJ становится невозможным, так как они получают имя PROG1.SEC, но оригиналы при этом сохраняются на диске. Если шифровка идет без удаления исходного файла, то новый файл с шифровкой получает расширение SEC. При расшифровке его PCSecure пытается создать файл с исходным именем. Если такой файл уже существует, то появляется запрос на его перепись. Запрос дает возможность снять программу, чтобы изменить имя файла.
Важной и сомнительной особенностью является возможность выбора режима "черного входа". Если он установлен, то расшифровывание файлов можно производить с помощью привилегированного ключа (backdoor key - ключ от черного входа) даже в том случае, если индивидуальный ключ утерян. Для достижения максимальной секретности от режима "черного входа" необходимо отказываться. Выбранные в меню режимы можно сохранить, и тогда они будут использоваться по умолчанию при последующих шифрованиях. Наиболее секретный метод зашифровки файлов в PCSecure обеспечивается установкой экспертного режима, удаления оригинала, сжатия и метода DES шифрования. Самый быстрый режим шифрования достигается включением режимов быстрого шифрования и сжатия.
Другой пример: Diskreet - программа из комплекта Norton Utilites, которая позволяет шифровать файлы или устанавливать логический драйвер, данные на котором всегда хранятся в шифрован- ном виде на жестком диске. Программа Diskreet предлагает два вида засекречивания данных. Вопервых, она может создать секретный диск, который авторы называют "NDisk". Доступ к данным на этом диске не может быть осуществлен без пароля. Секретный диск оформляется в виде файла заданного размера в корневой директории с именем SECRET. Читать содержимое этого файла можно обычным способом, однако данные на нем подвергаются шифрованию. Заметим, что в файле могут быть обнаружены фрагменты связного нешифрованного текста. Они уже были на диске в момент создания этого файла и оказались на его пустых местах. В заполненном до отказа секретном диске ничего прочесть не удастся. Поэтому перед созданием секретного диска нужно смыть все данные с пустых кластеров, чтобы на него не попали ненужные данные. Во-вторых, Diskreet позволяет вести шифрование отдельных файлов так, чтобы сделать недоступным их содержимое. После вызова Diskreet выберите из меню режим [Files], если предполагается шифрование файлов или же [Disks], если предстоит работа с секретным диском.
Вызов программы Diskreet осуществляется набором ее имени с последующим указанием ключей, необходимых для установки нужных режимов ее работы в виде команды DISKREET [ключи]. Употребимы следующие ключи:
/ЕNCRYPT:файл | Шифрование файла |
/DECRYPT:файл | Расшифровывание файла |
/PASSWORD:пароль | Пароль для работы с файлом |
/SHOW[:бyквa_дискa] | Открытие секретного диска |
/HIDE[:бyквa_диска] | Закрытие секретного диска |
/CLOSE | Закрытие всех дисков |
/ON | Подключение драйвера |
/OFF | Отключение драйвера |
File Disk Options Quit! F1=Help
Diskreet
Diskreet is a security program which can either
encrypt files or can set up logical drives
which are always encrypted.
Files Encrypt/Decrypt files Disks Create/Modify encrypted drives Quit Quit the Diskreet program
Press Alt or F10 to activate menu Diskreet
В разделе [Files] можно проводить криптографические преобразования файлов и менять режимы работы с ними. Шифровка файлов выбирается установкой [Files] в меню Diskreet и последующим нажатием Е. Можно в шифрование войти и сразу, набрав Alt-E. После этого на экране появляется диалоговое окно указанного ниже вида.
File Disk Options Quit! F1=Help
Select files to encrypt
File name: *.*_____
Directory: C:\SECURE\
Files | Dir | Drives |
image.cfg | .. | A: |
diskreet.exe | T | B: |
diskreet.ini | C: | |
diskreet.sys | ||
OK | Cancel | |
Encrypt a file |
File Disk Options Quit! F1=Help
File Encryption Options
Encryption Method
(x)Fast proprietary method
( )DES (more secure but slower)
[x]Wipe/Delete original files after encryption
[ ]Set Encrypted file to Hidden
[ ]Set Encrypted file to Read-Only
[x]Use same password for entire session
Save OK Cancel
File encryption/decryption options
В этом окне можно выбирать индивидуальные режимы, используя нажатия клавиш со стрелками вверх и вниз, с последующим нажатием клавиши пробела, чтобы выбрать или отменить установленный режим. Допускается два метода шифрования: упрощенный и DES-метод. DES является правительственным стандартом шифрования в США, он несколько медленнее, но обеспечивает повышенную секретность. Можно выбрать режимы удаления информации из исходных файлов после шифрования, устанавливать шифровкам атрибуты файлов "только на чтение" и "спрятанные", а также использовать единый пароль на всю сессию работы. Длина пароля в Diskreet допускается от 6 до 40 символов.
В разделе меню [Disks] можно просматривать дискеты, закрывать все секретные диски, изменять их размер, удалять и менять пароли. На экране дисплея окно раздела представляется в таком виде:
File Disk Options Quit! F1=Help
Search floppies... Alt-S
Close all Alt-C
Adjust size...
Delete...
change disk Password...
File encryption/decryption options
Для просмотра дискет можно в меню Diskreet высветить [Disks] с последующим нажатием Alt-S или F9-D-S. Эта команда выбирается, когда нужно просмотреть дискеты для секретного диска. Можно также выбрать нужный диск входом в список драйверов и высвечиванием того драйвера, который нужно просмотреть. Этот раздел доступен лишь в том случае, если драйвер Diskreet.Sys установлен в файле Config.Sys.
Закрытие всех дисков производится в меню Diskreet высвечиванием [Disks] и последующим нажатием Alt-C или F9-D-C. После того, как секретный диск закрыт, никто не сможет иметь доступ к его содержимому до тех пор, пока не введет правильный пароль. Эта команда позволяет закрыть все секретные диски как жесткие, так и гибкие. Иначе секретные диски будут доступны всем после их открытия, пока ЭВМ не будет выключена или система перегружена.
Изменение размеров диска позволяет расширить или сжать секретный диск. Эту команду можно выполнить, выбрав из меню Diskreet высвечиванием [Disks] с последующим нажатием Alt-S или F9-D-A. При появлении диалогового окна изменения размеров диска, можно сделать ключами со стрелками, выбрав расширение его размеров [Expand) или сжатие [Shrink], а также нажав клавиши Е или S. Используя ключи со стрелками вверх и вниз, курсором выбирается позиция с новым размером диска и нажимается пробел, чтобы установить этот выбор. Если нужен специфический размер диска, которого нет в таблице, то необходимо ввести его в килобайтах.
Команда удаления диска позволяет удалить имеющийся секретный диск. Можно ее выбрать из меню Diskreet высвечиванием [Disks] с последующим нажатием F9-D-D. Когда покажется диалоговое окно удаления диска, то курсором нужно выбрать удаляемый секретный диск. Диск будет удален, и пространство, занятое им, будет перезаписано несмысловой информацией, чтобы предупредить последующее восстановление. Смена пароля диска производится в режиме диалога высвечиванием [Disks], и последующим нажатием F9-D-P, чтобы выбрать смену дискового пароля. Дисковый пароль необходим, чтобы открыть секретный диск, изменить его имя, размер, пароль или установки по умолчанию. Убедитесь, что пароль набран правильно. Хорошенько запомните используемый пароль! Если он будет забыт, то нет способа восстановить шифрованные данные (Правильнее сказать, взлом шифровки без ключа возможен, но для DiskReet стоит несколько сотен тысяч долларов США и требует применения сверхбыстродействующих ЭВМ.).
В следующем разделе меню [Options] можно установить необходимые для работы Diskreet режимы и параметры. Окно этого раздела имеет следующий вид.
Disk Options Quit! F1=Help
System settings...
startup Disks...
Auto-close timeouts...
Keyboard & screen lock...
Security...
Change main password...
File encryption/decryption options
Установка системных режимов Diskreet выполняется в режиме диалога высвечиванием [Disks] и последующим нажатием Alt-S или Alt-O-S. Изменение режимов управления диском изменяет одновременно и существующий файл Config.Sys. Однако новые режимы Diskreet не начнут выполняться, пока система не будет перегружена.
Установку загружаемого диска можно выбрать в окне меню высвечиванием [Disks], и последующим нажатием Alt-O-D. Эта команда позволит выбрать секретный диск, который будет автоматически открываться при включении или перегрузке компьютера. При появлении диалогового окна установки загружаемого диска нужно, используя клавиши со стрелками, высветить букву драйвера нужного секретного диска и нажать Е, чтобы изменить значения по умолчанию. Появившееся меню позволит выбрать режим задания пароля - при включении компьютера и перегрузке системы или же при первом обращении к секретному диску.
Установку задержки для автоматического закрытия можно выбрать в диалоге высвечиванием [Disks] и последующим нажатием F9-O-A. После этого система будет автоматически закрывать все открытые секретные диски, если с ними не велось никакой работы более определенного отрезка времени. Нажмите пробел, чтобы выбрать или отменить эту команду. Затем можно ввести желаемую величину задержки в минутах. Этот режим полезен, если периодически приходится покидать компьютер, оставляя его без присмотра. Если это было задано при установке, то механизм автоматического закрытия секретных дисков сработает, когда к ним не было доступа больше определенного периода времени. Это тоже удобная особенность Diskreet. позволяющая отходить от компьютера, не беспокоясь за хранимые в нем данные. Максимальный размер задержки закрытия секретного диска по умолчанию устанавливается в 59 минут, что, несомненно, недопустимо велико. Однако задержка меньше чем в 5 минут часто срабатывает и раздражает перенаборами пароля.
Быстрое закрытие диска и гашение экрана по нажатию специальных клавиш устанавливается набором Alt-O-К. Этот выбор обеспечивает защиту секретного диска от несанкционированного доступа. В отсутствие пользователя посторонние могут читать экран или попытаться с клавиатуры осуществить доступ к открытому секретному диску. Быстрое закрытие диска позволяет в любое время, набрав заданную комбинацию клавиш моментально закрыть все открытые секретные диски так, что любая попытка доступа к ним потребует набора пароля. Гашение экрана позволяет при наборе заданной комбинации клавиш моментально гасить изображение на экране, защищая его от просмотра посторонними. Для быстрого закрытия диска и гашения экрана служат следующие комбинации клавиш, выбираемые при установке Diskreet:
две клавиши SHIFT
две клавиши SHIFT и клавиша CTRL
левая клавиша SHIFT и клавиша CTRL
правая клавиша SHIFT и клавиша CTRL
две клавиши SHIFT и клавиша ALT
левая клавиша SHIFT и клавиша ALT
правая клавиша SHIFT и клавиша ALT
клавиша CTRL и клавиша ALT
Режим секретности можно изменить в диалоге высвечиванием [Disks] и последующим нажатием F9-0, а, используя клавишу со стрелкой вверх, высветить режим секретности. В этом диалоге можно определить судьбу областей диска при создании, удалении или изменении размеров секретного диска. Клавишами со стрелками выбирается требуемый режим, а пробелом он устанавливается. Наиболее предпочтителен режим очистки, который удаляет все лишние и неиспользуемые данные из области занимаемой секретным диском.
Изменение главного пароля можно сделать в диалоге высвечиванием [Disks] и последующим нажатием F9-0-C. Главный пароль требуется, чтобы получить доступ к следующим процедурам:
сменить величину задержки для автоматического закрытия диска;
сменить пароль открытия диска;
сменить клавиши закрытия диска;
сменить сам главный пароль.
Убедитесь, что главный пароль тоже запомнили и набрали правильно. Если не можете запомнить главный пароль, проще удалить файл Diskreet.ini с жесткого диска. В этом случае Diskreet будет принимать за главный пароль нажатие клавиши Enter. Если решили, не надеясь на свою память, записать пароль, то защитите его так, как стали бы защищать хранимые с его помощью данные, например, положите в свой бумажник или заприте в сейф. Сохраняйте данные вашего закрытого диска! После потери сетевого питания или системного сбоя проверяйте состояние файлов, которые в это время шифровались или закрытых дисков, с которыми велась работа. Может случиться так, что секретные данные стали после сбоя общедоступными или были повреждены.
Если Diskreet работает в среде Windows, то становятся недоступными быстрое закрытие и закрытие по тайм-ауту. Необходимо заметить, что идеология Windows противоречит концепции секретности, так как ряд встроенных в эту систему механизмов, вроде OLE, может приводить к практически не отслеживаемой передаче прав. При работе Diskreet под сетью тоже будьте бдительны - есть возможности проникновения посторонних на открытый хозяином секретный диск, удаленного подсматривания паролей и несанкционированного копирования секретной информации. Правильнее всего перед началом работы с Diskreet выгрузиться из сети и все работы по шифрованию вести только на изолированной машине.
Теперь коротко опишем популярную в Интернет программу шифрования PGP. PGP использует для шифрования быстрый традиционный алгоритм шифрования, а ключ для него шифруется по медленному алгоритму с открытым ключом. Конечно же, для повышения надежности шифрования используется лишь аналог DES, называемый IDEA. Ключ IDEA длиной в 128 бит, на первый взгляд кажется коротким. Но как считают специалисты. он по стойкости эквивалентен ключу RSA 3100 бит, в то время как обычно используется ключ из 1024 бит. Таким образом, в цепочке шифрования самым слабым звеном PGP является система шифрования с открытым ключом, к тому же очень медленная, но от которой отказаться трудно из-за возможности открытого распределения ключей.
Шифрование файла по открытому ключу можно выполнить следующей командой PGP с UNIXподобным синтаксисом:
рgр -е имя_файла идентификатор_ключа
Например, чтобы зашифровать сообщение в файле private. txt для Мери Энн, достаточно набрать команду:
рgр -е private.txt "Mary Ann"
После этого программа PGP найдет открытый ключ с идентификатором Mary Ann и зашифрует им файл private.txt, в результате получится файл шифровки private.pgp. Отметим, что идентификатор не чувствителен к регистру символов и допустимыми будут также формы написания "mary аnn" "MARY ANN". Перед шифрованием PGP сожмет исходный файл сообщения с помощью достаточно широко распространенной программы архивации ZIP. Если сообщение циркулярное и его нужно послать нескольким адресатам, достаточно в командной строке перечислить идентификаторы получателей:
рgр -е private.txt "Mary Ann" "Clinton" "Eltsin"
Это позволит получить файл шифровки private.pgp, который смогут прочесть только Мери Энн, Билл Клинтон, Борис Ельцин и больше никто. Число абонентов, которых можно указать в команде, неограниченно. Если нужно и зашифровать, и подписать сообщение, это можно сделать командой:
рgр -es private.txt "Mary Ann"
В этом случае цифровая подпись "встраивается" в файл шифровки private.pgp. Так же, как было указано выше, выполняется и циркулярное шифрование с подписью:
рgр -es private.txt "Mary Ann" "Clinton" "Eltsin"
Расшифровка полученного сообщения или проверка цифровой подписи выполняется еще проще. командой:
рgр private
Если расширение файла, как в приведенном примере, опущено, то предполагается стандартное расширение PGP. При расшифровывании, которое выполняется полностью автоматически, PGP одновременно проверяет встроенную цифровую подпись и сообщает о ее правильности.
Самой примечательной стороной PGP для пользователей, является хороший интерфейс в управлении ключами. Именно управление ключами со времен Юлия Цезаря вызывало ночные кошмары криптографов. Мало того, что секретные ключи тяжело распространять, неавтоматизированное их хранение вызывает тошноту. Чтобы расшифровать сообщение, криптографу обычно приходится расшифровывать сначала файл ключей и, взяв оттуда нужный ключ, лишь потом приступать к расшифровке сообщения. Эта проблема элегантно решена в PGP. Чтобы сгенерировать пару своих собственных ключей из открытого и закрытого, набирают команду:
PGP -kg
После этого PGP показывает меню, из которого надо выбрать желаемую длину ключа. Длина ключей делится на уровни:
слабый коммерческий;
сильный коммерческий;
"военный"
Не следует увлекаться большими секретностью и длиной ключа, так как это резко замедляет скорость. Кроме длины ключа PGP запросит идентификатор, в качестве которого лучше всего использовать имя или псевдоним, что хорошо запоминается. Кроме того, PGP запросит пароль, который будет защищать ключ от использования посторонними. Пароль может набираться любыми символами с пробелами и так же должен перенабираться. Замена прописных букв на строчные и наоборот при вводе пароля недопустима.
Пара ключей, открытый и секретный, образуются из случайных чисел, получаемых точным измерением временных интервалов между нажатиями кнопок клавиатуры. PGP просит набрать случайный текст, но учитывает не значения символов, а интервалы между их нажатиями. Генерация ключей может занять значительное время в несколько секунд и даже минут при длинном ключе и слабенькой ЭВМ. PGP использует криптографически стойкий генератор случайных чисел для того, чтобы создать ключи на время сеанса криптосвязи. Исходный файл для этого находится в специальной директории для файлов PGP, определяемой переменной оборудования SET PGPPATH=C:\PGP, и называется "randseed.bin". Если этот файл не существует, он автоматически создается из настоящих случайных чисел, определяемых интервалами между нажатиями клавиш. Кроме этих случайных чисел для формирования исходного файла используются, похоже, и другие случайные величины, например, дата и время. Этот файл служит начальным заполнением стандартного генератора случайных чисел и шифруется, чтобы уменьшить риск от вскрытия нападающим по нему ключей. Риск вскрытия ключей в PGP и так невелик, потому что файл randseed.bin обновляется непосредственно до и после каждой сессии шифрования. Если вы не доверяете алгоритмам, получающим случайные числа алгоритмически, поймите, что те же самые алгоритмы используются и в шифровании, чтобы закрыть сообщение. Еще раз подчеркнем, что PGP использует настоящие случайные числа, чтобы сформировать свои ключи.
PGP хранит ключи в двух файлах: для отрытых и для секретных ключей, называемых "связками". Иногда бывает нужно приобщить к своей связке новый ключ. Для этого достаточно набрать команду:
рgр -ka файл_ключей
Расширение файла ключей по умолчанию принимается PGP. Если этот ключ уже есть в связке, то PGP не добавляет новый и не заменяет им старый. Все ключи из файла ключей будут добавлены в связку, кроме дубликатов. А удалить ключ из связки можно командой:
рgр -kr идентификатор
Если удаляемому ключу соответствует несколько идентификаторов, то пользователь предупреждается об этом и запрашивается подтверждение на удаление таких ключей. Просмотр содержимого связки ключей выполняется командой:
pgp-kv
В результате печатается список ключей в связке по их идентификаторам. Аналогично выполняется подтверждение авторства ключей по их цифровой подписи командой:
pgp -kv
Для того, чтобы получить справку по командам PGP, достаточно ввести:
pgp -h
При работе с PGP надо помнить, что в шифросистеме с открытыми ключами последние никак не защищаются от копирования. Более того, чем шире открытые ключи распространены, тем лучше. Однако, очень важно защищать личные ключи от искажений и подделок. Это самая слабая сторона шифросистем с открытым ключом. Предположим, что по электронной почте нужно послать компаньону сообщение. Для этого из электронной доски объявлений, BBS, выполняющей роль криптоцентра, получается открытый ключ компаньона. Этим ключом шифруется конфиденциальное сообщение и отсылается адресату. Однако открытый ключ компаньона в BBS мог быть подменен хакером на фиктивный. Перехватив, дешифровав и уничтожив шифровку сообщения, хакер может свое собственное сообщение зашифровать открытым ключом компаньона и послать ему от вашего имени. Избежать этого можно только с помощью криптоцентра, которому можно доверять и выполняющему роль нотариуса, удостоверяющего истинность подписей и их даты. В любом случае открытый ключ можно использовать только в том случае, если достоверно известна его подлинность. Нужно различать доверие к ключу и доверие к владельцу ключа. Ключ может быть верен, а его хозяин - хакер. Доверие необязательно переносимо. Если я верю другу, а тот верит своей жене, то это вовсе не значит, что я ей доверяю. Лучше всего хранить свои связки ключей на дискете, которая не только физически защищена от записи во время криптосвязи, но и прятать ее в сейф между сеансами.
Простейшие алгоритмы генерации
Заслуга конструирования длинных псевдослучайных рядов с хорошими статистическими свойствами полностью принадлежит криптографии. Не следует думать, что они нужны лишь криптографам - картирование Венеры стало возможным, когда длина периода случайного ряда импульсов превысила 10**40. Фотографирование этой планеты нельзя было сделать потому, что она всегда закрыта плотным слоем облаков. Локация же ее с Земли затруднена обилием помех и высокими требованиями к разрешению. Поэтому зондирование выполнялось случайной последовательностью импульсов указанного периода. После 300 зондирований, на что ушло более полгода, была получена карта, где различимы объекты размером около километра, а по высоте разрешение получено такое, какое достигнуто не везде на Земле. Генераторы псевдослучайных чисел используются очень широко в сотнях программных приложений от конструирования ядерных реакторов и радиолокационных систем раннего обнаружения до поисков нефти и многоканальной связи. Генерация псевдослучайных последовательностей давно занимала математиков. Одним из первых было предложение получать их как значения дробной части многочлена первой степени:
Yn = Ent (a*n+b)
Если n пробегает значения натурального ряда чисел, то поведение Yn выглядит весьма хаотичным. Еще Карл Якоби доказал, что при рациональном коэффициенте а множество {Yn} конечно, а при иррациональном бесконечно и всюду плотно в интервале от 0 до 1. Для многочленов больших степеней такая задача была решена лишь в 1916 году выдающимся математиком нашего века Германом Вейлем. Кроме того, он установил критерий равномерности распределения любой функции от натурального ряда чисел. Небезынтересно привести его в краткой формулировке.
КРИТЕРИЙ ВЕЙЛЯ. Чтобы ряд х1, х2, x3, ... был распределен равномерно в интервале от 0 до 1, необходимо и достаточно, чтобы для любой интегрируемой по Риману функции f(x) было справедливо соотношение P{=Mf(x)}=1.
Это соотношение выражает свойство, называемое эргодичностью и заключающееся в том, что среднее по реализациям псевдослучайных чисел равно среднему по всему их множеству с вероятностью 1. Таким образом, Вейль доказал, что эргодичность гарантирует отсутствие экзотичности в поведении последовательности Xn.
Однако эти результаты далеки от практики получения псевдослучайных рядов чисел. Дело в том, что теорема Якоби относится к действительным числам х и у, которые не могут быть использованы при вычислениях, потому что иррациональные действительные числа требуют для своей записи бесконечного числа знаков. Попытки замены настоящего иррационального числа его приближением на ЭВМ для генерации псевдослучайной последовательности опасны, так как получаемые последовательности оканчиваются циклами с коротким периодом. Завершают доказательство непригодности полиномиальных и других функциональных преобразований натурального ряда чисел для получения псевдослучайных последовательностей результаты Пуанкаре. В частности он установил, что непрерывное отображение Т области U числового пространства в себя обязательно приводит к короткой цикличности траекторий Tn(х) для всюду плотного в U множества точек, если учитывать попадание траекторий точек в их сколь угодно малые окрестности или ряды чисел, созданные таким методом, отягчены периодичностями.
Несмотря на непригодность для криптографии простых последовательностей чисел, рассмотрим все же самые распространенные из них. Наиболее древний вычислительный способ генерации псевдослучайных чисел на ЭВМ принадлежит Джону фон Нейману и относится к 1946 году. Этот способ базировался на том, что каждое последующее случайное число образуется возведением предыдущего в квадрат и отбрасыванием цифр с обоих концов. Способ Неймана оказался ненадежным и очень быстро от него отказались. Из простейших процедур, имитирующих случайные числа, наиболее употребляем так называемый конгруэнтный способ, приписываемый Д.Х. Лемеру:
G(n+1)=KGn+C MOD M
В нем каждое последующее псевдослучайное число G(n+1) получается из предыдущего Gn умножением его на К, сложением с С и взятием остатка от деления на М. Весь фокус здесь в том, чтобы подобрать хорошие значения К, С и М, на что были потрачены десятилетия работы математиков. Подбор почти иррациональных К ничего не дает. Например, выбрав закон генерации последовательности G(N+1) = Ent (sqr(2)*Gn) на IBM PC при формате представления чисел с плавающей запятой IEEE в 4 байта, получим псевдослучайные ряды, обязательно заканчивающиеся циклами с периодами длиной всего лишь 1225 и 147 в зависимости от начального заполнения. Разумнее вычисления вести в целых числах. Для них было установлено, что при С=0 и М=2**N наибольший период М/4 достигается при K=3+8*i или K=5+8*i и нечетном начальном числе. При достаточно больших К ряд производит впечатление случайного. Насколько это верно читатель может выяснить самостоятельно следующей программой:
'----------проверка случайности ряда чисел
DEFINT A-Z: SCREEN 2: CLS
n = 1
DO
nold = n: n = FnRnd% (n)
PSET (nold/64,CVL(MKI$(n)+MKI$(0) )\512)
LOOP UNTIL n = 1
END
'----генерация ряда чисел с периодом 16384
DEF FnRnd% (n) =CVI(LEFT$(MKL$(1381&*n) ,2))
В ней случайность ряда проверяется отображением на экране дисплея пар его чисел (Gn+1, Gn) в прямоугольнике размером 128 х 512. Это простой и удобный способ проверки случайности рядов чисел, так как на глаз заметны малейшие закономерности в получаемом орнаменте. Из опытов с этой программой можно убедиться, что как ни экспериментируй с подбором К, все равно закономерности видны и чисто случайного рада чисел не получишь. Вспомните ехидное предложение Додо "становиться строго в беспорядке" из "Алисы в стране чудес". Результат можно несколько улучшить. Если С нечетно и K=1+4*i, то период ряда равен М. После долгих поисков К исследователи остановились на значениях 69069 и 71365. Кроме значений М=2**N широко используются выборы простых М, например, простого числа М=2**31-1, известного со времен Эйлера (Это число "плохо" тем, что в двоичной записи содержит лишь единицы. Однако оно может использоваться, если вычисления выполняются в десятичной арифметике.)
Однако обратимся к фактам. В 1948 году фон Нейман предложил генератор псевдослучайных чисел, который через год подвергся резкой критике. В 1972 году в пакете прикладных программ IBM 360 на языке Фортран появилась программа RANDU, а в 1977-м Форсайт показал, что тройки ее последовательных значений лежат на 15 параллельных плоскостях. В 1979 году Скраг опубликовал компактный алгоритм генерации псевдослучайных чисел, а через год Плаке доказал его статистическую неудовлетворительность. Этому списку нет конца: более месяца работы автор потерял из-за некомпетентно сделанного генератора случайных чисел в системе М86 ЕС 1840, который использовался для моделирования сложных процессов. В журнале "Наука и жизнь" за октябрь 1986 года М. Максимов поместил статью-предупреждение под названием "Случайны ли случайные числа?", где совершенно справедливо отметил негодность используемых генераторов. По его данным, генератор FRAN у БК-0010 имеет длину периода всего лишь 2**15, а бьет рекорды бессмыслицы генератор Бейсика ДВК, который имеет период лишь 8192 и последовательные тройки его "случайных" чисел, функционально связанные уравнением Gn-6*G(n+1)+9*G(n+2), равны целым числам. Не иначе, как от отчаяния, рад исследователей одновременно использует два и даже три разных генератора, смешивая их значения. Если разные генераторы независимы, то сумма их последовательностей обладает дисперсией, равной сумме дисперсий отдельных последовательностей. Иначе говоря, случайность рядов возрастает при их суммировании. Это дает слабую надежду на возможность конструирования генератора с приемлемыми для криптографии свойствами: случайностью и большой длиной периода.
Заметим, что некоторые "запутывания" последовательностей псевдослучайных чисел лишь ухудшают их статистические свойства. Далеко не всегда сложность формирования рада порождает случайность распределения. Например, генератор случайных чисел из игровой программы неизвестного происхождения для программируемого калькулятора использовал в качестве случайных чисел первые цифры последовательности {83**K}. Легко доказывается, что такой генератор будет на 14% чаще давать цифру 7, чем 8. В литературе приводится громадное количество формул для генерации случайных рядов, и автору довелось испытать их не один десяток, но, не то чтобы хорошей, а даже удовлетворительной по статистическим свойствам найти не удалось. Сдается, что часть подобных способов генерации случайных рядов предложена в качестве шутки криптографами, желающими упростить себе работу. Однако в системах программирования обычно используют все же конгруэнтные генераторы по алгоритму, предложенному Национальным бюро стандартов США, который, имея длину периода 2**24, обеспечивает очень неплохие статистические свойства. К сожалению, длина его периода для криптографии слишком мала и, кроме того, было доказано, что последовательности, генерируемые конгруэнтными генераторами, не являются криптографически стойкими. Если дана часть такой последовательности достаточной длины, то ее параметры могут быть восстановлены.
Интересный класс генераторов случайных чисел неоднократно предлагался многими специалистами целочисленной арифметике, в частности Джорджем Марсалиа и Арифом Зейманом. Генераторы этого типа основаны на использовании последовательностей Фибоначчи. Классический пример такой последовательности {0, 1, 1, 2, 3, 5, 8, 13, 21, 34...}. За исключением первых двух ее членов, каждый последующий член равен сумме двух предшествующих. Если брать только последнюю цифру каждого числа в последовательности, то получится последовательность чисел {0, 1, 1, 2, 5, 8, 3, 1, 4, 5, 9, 4...} Если эта последовательность применяется для начального заполнения массива большой длины, то, используя этот массив, можно создать генератор случайных чисел Фибоначчи с запаздыванием, где складываются не соседние, а удаленные числа. Марсалиа и Зейман предложили ввести в схему Фибоначчи "бит переноса", который может иметь начальное значение 0 или 1. Построенный на этой основе генератор "сложения с переносом" приобретает интересные свойства, на их основании можно создавать последовательности, период которых значительно больше, чем у применяемых в настоящее время конгруэнтных генераторов. По образному выражению Марсалиа, генераторы этого класса можно рассматривать как усилители случайности. "Вы берете случайное за- полнение длиной в несколько тысяч бит и генерируете длинные последовательности случайных чисел". Однако большой период сам по себе еще не является достаточным условием. Слабые места гамм бывает трудно обнаружить и аналитику требуется применять утонченные методы анализа последовательностей, чтобы выделить определенные закономерности, которые скрыты в большом массиве цифр.
Последнее, на чем следует остановить внимание, это особенности использования стандартных генераторов случайных чисел в различных языках программирования, если уж ими пришлось воспользоваться. Так отметим, что известный в Бейсике оператор RANDOMIZE (Он такой же, как и во всех других языках программирования. например. Pascal или C++.) , применяемый для начальной установки генератора случайных чисел, может ошарашить пользователя. Ибо после выполнения:
RANDOMIZE 231
х = RND
RANDOMIZE 231
у = RND
необязательно получится х=у, потому что оператор RANDOMIZE переустанавливает не всё случайное число из 3 байт, а лишь его часть из 2 байт. Точная установка может быть произведена функцией RND, как x=RND(-231). Не нужно думать, что эта проблема встречается лишь при программировании на Бейсике. Паскаль и Си всех фирм дают те же результаты. А вот увеличение периода последовательности сделать несколько сложнее. Для этого можно использовать функцию:
FUNCTION Rand (х, у)
х = RND (-х)
у = RND (-у): IF у = О THEN у = RND (-у)
Rand = (х+у) MOD 1
END FUNCTION
Период такой функции равен 2**24-(2**24-1), но вот свойства его ряда не обязаны при любых исходных х и у быть такими же хорошими, как у RND.
При создании с помощью встроенного генератора случайных чисел объектов, имеющих число состояний большее, чем у генератора, его приходится использовать несколько раз, переустанавливая по заранее заданному ключу. Например, следующий фрагмент программы:
FOR i = 1 ТО 5
х = RND (-gamma (i))
FOR j = 0 TO 32
SWAP map (j), map (32 * RND)
NEXT: NEXT
производит случайную перестановку 33 элементов массива map, которая может быть сделана примерно 2**118 способами, и при длине периода генератора в 2**24, его нужно запустить не менее 5 раз, чтобы реализовать все варианты перестановки.
Противодействие угрозам
Все ли читатели хранят дома деньги в сейфе? Было бы неразумно покупать сейф для того, чтобы хранить суммы не существенно превышающие среднестатистическую зарплату. Поэтому когда у меня дома был несгораемый шкаф, то в нем прятались лишь лекарства и патроны, и не от грабителей, а от детей. Далее, зачем грабителям тратить большие деньги, чтобы проникнуть в такой сейф? Таким образом, мы подошли к мысли о соответствии размера ущерба от вероятного взлома величине потерь от реализации мер защиты. Конечно, на защиту нет смысла тратить больше, чем стоят данные. Каков же реальный объем потерь от несанкционированного доступа? Это в первую очередь зависит от специфики данных и самой организации хранителя. Отмечено также, что профессиональные программисты гораздо выше оценивают возможный ущерб от несанкционированного доступа к данным, чем люди далекие от ЭВМ. Это хорошо согласуется с теорией приписывания в психологии, по которой люди оценивают мотивацию и поведение других людей, приписывая им свои знания и возможности. Следовательно, хороший программист может натворить много бед, а от плохого большого вреда не увидишь. В оценке возможного ущерба профессиональные программисты оказываются более точными, чем даже финансисты. А вот возможность доступа к данным могут оценить лишь специалисты другого рода, те, кому приходилось проходить сквозь стены и вскрывать шифры. Теперь, наконец, рассмотрим меры по защите данных, оценивая их по эффективности для разных видов угроз.
Сначала обратимся к законодательству. Оно необходимо, скорее всего лишь для того, чтобы руководители при реализации своих мер компьютерной безопасности не превратились в гангстеров. Однако законы очень дорого стоят обществу. Если съезд народных посланников дня два пообсуждает, как правильно назвать закон об охране информации, а потом еще раз пять возвращается к его чтениям, дополнениям и изменениям, то с носа каждого жителя России, включая младенцев и престарелых, балерин и бомжей, отвалится не меньше чем один доллар. Американцы, любящие все подсчитывать, установили, что только принятие закона 1974 года им обошлось единовременно 30 миллионов долларов, но еще более крупная сумма должна ежегодно тратиться на его поддержание. А ведь таких правовых актов было несколько! Поэтому неизбежные вложения в законодательство дороги, а отдача от них будет небольшая еще в течение долгого времени. Рассмотрим теперь административный барьер. Охранник - необходимый элемент защиты организаций, но он может защитить лишь саму ЭВМ, а не данные, находящиеся в ней, даже если охранника посадить за компьютер. Несмотря на то, что охранники могут сильно отфильтровать поток нежелательных посетителей, но полностью остановить смогут, лишь не пропуская вообще никою, например, ночью. Проведенный в шестидесятых годах эксперимент по проникновению людей на территории закрытых объектов города Москва показал, что пройти удалось всюду. Интересно, что проникшие просили не наказывать охрану, так как проходили, взывая к самым благородным человеческим чувствам. Однако без охранников в России никак нельзя - обойдется дороже. Дверь на замке - эффективное средство защиты от любопытных, но не более того. Конечно, лучше всего кодовый замок - не нужно носить с собой ключа и больше шансов, что дверь будут захлопывать, а не держать открытой. Стены служат лишь для защиты от любопытных, так как железобетонная стена проламывается профессионалом не более чем за 10 минут (Любопытные заметили, что в закрытых для посетителей помещениях фирмы IBM стены имеют необычно большую 114 США толщину в 33 сантиметра.). Сигнализация - эффективное средство против кражи самой ЭВМ, но, увы, нет сигнализации против хищения данных. Кража данных осуществляется обычно у всех на виду.
Полицейские, охранники и их собаки представляют собой активную защиту, а устройства обнаружения и сигнализации пассивны и профилактические. Самые старые технические средства состояли из замков на дверях и решетках на окнах. Начиная с 60-х, увеличение краж и международный компьютерный разбой стимулировали изобретение многочисленных, гораздо более сложных устройств безопасности. Системы предупреждения стали все более автоматизированными, особенно в отношении датчиков и связи. Миниатюризация в электронике привела к разработке охранного оборудования меньшего по размерам, более надежного, легче устанавливаемого и поддерживаемого. Большие комплексы зданий используют телевизионный контроль залов, стоек и лифтов. В последнее время телевизионный контроль вытесняется оптоволоконным. Оптический кабель передает изображение надежнее телевизионных систем и более качественно.
Больше всего постороннего, проникшего к компьютеру, будут беспокоить системы, вызывающие тревогу, когда они обнаружат его присутствие. Тревога бывает слышимая: звонок, гудок, сирена или видимая, типа мигалок. Некоторые системы не обнаруживают себя, но тайно передают сигнал к полицейской станции или хозяину по пейджеру. Система защиты может обнаружить злоумышленников несколькими способами. Сигнализация объемной защиты обнаруживает движение в пределах охраняемой области, используя фотоэлектрические, инфракрасные, ультразвуковые, микроволновые и другие устройства. Фотоэлектрические системы посылают невидимый луч света с передатчика на приемник. Если луч прерван злоумышленником, то вызывается тревога. Обычно такие лучи хорошо видны, если осмотреть помещение, куда хочешь войти, не глазами, а через прибор ночного видения или такой же прицел. Иногда фотоэлектрические устройства по их характерному виду легко заметить в узких проходах для людей, турникетах, как в метро. Однако они могут быть хорошо замаскированы, так как многие пластмассы пропускают невидимый инфракрасный свет. Инфракрасные датчики, основаны на том, что все стены объектов и мебель, а также человеческие существа испускают определенное количество инфракрасной тепловой энергии. Ее величина остается относительно постоянной, изменяясь очень медленно во времени. Инфракрасная система обнаруживает лишь внезапные резкие изменения теплового фона. Если злоумышленник войдет в защищенную область, то маленькое, но внезапное, изменение теплового фона поднимет тревогу. Такого рода устройства ничем себя не обнаруживают, л внешним видом они бывают уж очень разными, Однако они ненадежны - срабатывают от включившегося калорифера или порыва воздуха из от- крытой форточки и так далее. Из-за инерционности таких систем иногда грабителям удается их отключить. Ультразвуковые датчики обнаруживают изменения в частоте волн, излучаемых ими же. Эти сигнальные системы производят ультразвуковые волны с частотами выше слышимых человеческим ухом. Частота этих волн изменяется слегка от эффекта Доплера, когда они отражаются от перемещающегося объекта. Ультразвуковая сигнализация вызывает тревогу, если обнаруживает такие изменения частоты.
Практически этим системам охранники не очень верят, так как они срабатывают от легкого движения занавески, а люди часто забывают, уходя, закрыть форточки. Известен случай, когда такая система срабатывала, а вместо грабителей охрана ловила мышей. Работу этих датчиков можно подавить акустической сиреной, конечно, кроме сирены грабителю понадобится, естественно, еще и защита ушей от нее. Подобный тип систем, микроволновых, работают тем же самым путем, но излучают электромагнитные волны вместо ультразвуковых. Вызвав ложную тревогу с дюжину раз, грабитель легко может добиться того, что охранники сами отключат систему к дьяволу. Системы ненадежны, но люди еще ненадежнее.
Предприниматели, боящиеся промышленного шпионажа, и правительственные учреждения, где хотят обеспечить национальную безопасность, используют порой персональные идентификаторы сотрудников, чтобы ограничивать доступ лиц. Имеются системы контроля доступа, которые распознают форму ладони руки (игравшие в компьютерные игры знают, что отрубив руку у охранника и засунув ее в датчик, такую систему можно пройти). В России подобные системы пока не ставились. Имеются также устройства наблюдения, чтобы просматривать помещения. Зарубежные отели, например, начали ставить оптоволоконные системы просматривания в каждом помещении. Но конечно же одна из самых хороших охран - собаки. Это очень бестолковые создания, с которыми грабителям невозможно договориться. (Собаководы знают, что кобелька несложно выманить куда угодно подстилкой из-под сучки во время течки или парализовать собаку ультразвуковой сиреной.)
Ряд средств защиты данных специфичны для ЭВМ. Удаленность помещения с ЭВМ может, например, предупредить подсматривание изображения на дисплее специальными техническими средствами. Так, с 10 метров подсматривать трудно, а дальше 50 метров современными средствами невозможно. Кроме того, удаленность помещения затрудняет проникновение в него посторонних. Если работает одновременно три и больше дисплеев одного типа, то прямое подсматривание очень сложно из-за взаимных помех. Сходный эффект могут, видимо, дать простые генераторы шума или случайных импульсов, имитирующие видеосигнал дисплея. Экранирование помещения делает невозможным подсматривание изображения на терми- нале электронными средствами. Однако это дорогая и хлопотливая мера защиты.
Воровство сообщений гораздо дешевле взлома шифров, поэтому очень широко применяется. Подслушивающие устройства, на жаргоне называемые жучками, дешевы и могут быть установлены за несколько секунд. Начиная с $20, они имеют неплохое качество. Продают их не на штуки а упаковками по 5-10 сразу. Можно держать пари, что этот расход ничто по сравнению с вознаграждением от выяснения планов работ, стратегий маркетинга и технологии изделия. По данным служб безопасности, сейчас идет настоящая эпидемия подслушивания. Телефон, параллельный модему, конечно, является самым удобным местом, чтобы установить подслушивающее устройство. Но это не означает что подслушивание будет ограничено лишь беседами по телефону. Многие современные телефоны имеют микрофоны, которые всегда работают, даже когда трубка повешена. Это дает возможность нарушителям вести постоянное прослушивание всех бесед в той комнате, где телефон, и перехватывать все данные, передаваемые по модему. Жучок может стоять внутри компьютера и даже в подставке под клавиатурой. Вообще число мест, где можно найти жучки, ограничено только воображением атакующей стороны.
Службы безопасности используют специальные приемники поиска, чтобы найти жучки. Если в помещении имеется излучение радиочастоты, приемник показывает ее на маленьком мониторе. Тогда, прослеживая максимум излучения, находят его источник, жучок. Для жучков, вделанных в стены. также используют нелинейный датчик перехода, который может обнаружить электронные изделия под слоем штукатурки или бетона. Этот датчик, как радиолокатор, посылает в стены, пол или мебель импульс, который вызывает колебания в электронных изделиях. По этим колебаниям жучки и будут обнаружены. Заметим, что КГБ не ставил тысячи жучков в новом здании американского посольства - ни одного не было найдено. Просто в строительный раствор попала крупная партия бра- кованных радиодеталей. Посольство поэтому стало жесткой кроватью для спецслужб США. Всякий раз, когда их люди с датчиками принимались искать жучки, то они, расковыряв стену, находили там негодную электронную штучку. Обнаружение жучков от этого стало много труднее, чем поиск иглы в стоге сена. Для обнаружения жучка, работающего в телефонной линии вне офиса, службы безопасности используют телефонный анализатор. Он выполняет множество измерений параметров телефонной линии между собой и офисом. Сопротивление, напряжение и баланс лишь немногие из них. Если жучок находится в линии, то он обычно отражает посланный анализатором импульс как у радара, и можно точно указать, где в линии жучок был поставлен. Перехват в телефонной линии не только незаконен, но чрезвычайно труден, так как потребляет значительное время. От этого, лишь факсы и телефоны ключевых исполнителей обычно единственно подходят для такого подслушивания. Если же это прослушивание идет на самой АТС или за ней, то обнаружить его практически невозможно, хотя и подслушивать стало тоже много труднее.
Раньше, все что нужно было сделать, это взять пару зажимов и наушники, поместить их на правильные контакты и слушать беседу абонентов. Сейчас цифровая передача сигнала делает эту задачу очень трудной - беседы преобразуются в несвязный поток цифр и складываются вместе снова в звуки в другом конце линии (Широко распространенное в прежние годы и справедливое тогда мнение, что многие телефонные разговоры прослушиваются. сейчас неверно. Теперь это сложно и дорого сделать. Щелчки в трубке, подключения посторонних абонентов и другие помехи обычно вызываются просто сбоями аппаратуры АТС.) Стоимость поиска жучков настолько велика, что приводить ее нет смысла. Руководитель крупной компании, хорошо известный читателям по прессе и рекламе, узнав сумму гонорара за очистку своего офиса от жучков даже перекрестился и... отказался.
И все же обнаружение жучка легче, чем того урода, что ожучковал офис. Предложите службе безопасности, чтобы радиосигналы были прослежены до того места, где находится регистратор сигналов жучка. После того, как найдено записывающее устройство, пусть непрерывно следят за ним, пока хакер не прибудет, чтобы сменить записанную пленку на новую. Сильный ход - вывести жучок из строя и ждать, когда негодяй возвратится, чтобы заменить его. Очень просто выполнить и следующий трюк. Обнаружив жучок, рядом с ним ставят генератор радиопомех. Однако не включают его сразу на всю мощность, а повышают ее ежедневно чуть не с нуля. Порой у шпионов от этого складывается впечатление, что садятся батареи или происходит что-то неладное в самом жучке.
Теперь рассмотрим аппаратные средства защиты. Они весьма дороги и в России мало распространены. Возможно применение съемных жестких дисков или дисков Бернулли, так как затраты на их покупку могут быть хоть отчасти оправданы облегчением ряда операций по хранению и перемещению данных. Аппаратура, использующая ключи в виде магнитных и электронных карточек, недавно начала широко распространяться в России. Магнитные карты появились довольно давно. Они представляют из себя пластиковую карточку стандартного размера, спереди на которой напечатан типографским способом текст, а сзади приклеены от одной до трех магнитных полосок. На каждой из этих полос может храниться до строки текста. Сейчас они активно вытесняются электронными карточками, такими же по виду, но хранящими информацию на встроенной микросхеме или микропроцессоре. Емкость их памяти гораздо больше. Различные типы карт производятся многими фирмами: Bull, Motorola, Philips, Shiumbeiger и др. Электронные карточки имеют массу применений:
=> в виде денег, когда карточка используется как
дебетная или кредитная;
=> как удостоверение личности при расчетах по
банковскому счету для хранения данных клиен-
та и установления процедур аутентификации;
=> как ключ шифрования или криптографический
процессор; как электронный документ - про-
пуск на предприятие, водительское удостовере-
ние, медицинская карта, накладная для грузов;
=> как электронный ключ для систем охранной
сигнализации доступа в помещения и к обору-
дованию.
Информация в памяти карточек хранится в зашифрованном виде для чего обычно используется DES алгоритм, но встречается и RSA, дающий больше возможностей. Базой для вычисления пароля берется уникальный серийный номер карточки. Повторные попытки несанкционированного доступа к информации на карте обычно приводят к стиранию ее кода. Примером наиболее распространенной карточки для идентификации доступа к компьютеру является IBM Personal Security Card с устройством считывания и идентификации подписи IBM-4754. Кроме того, что это устройство считывает карты, оно еще требует подписи ее владельца, регистрируя не только очертание подписи, но и особенности нажима пера. Это делает процедуру идентификации настолько надежной, что она была принята швейцарскими банками. Несмотря на все свои достоинства, обычные ключи, карточки и пароли для загрузки системы чрезвычайно мало эффективны. Они часто передаются другим людям и их очень просто обойти. Более того, они создают иллюзию недоступности данных, что совершенно недопустимо. В принципе, можно сделать надежную аппаратуру с паролем на входе, но для этого нужно перепрограммировать микросхему BIOS или применить специальную плату SecureBoard, которая хоть и дает безопасность при загрузке, но, к сожалению, конфликтует со многими программными приложениями и играми.
Криптографическая защита представляется наиболее дешевой и эффективной из всех рассматриваемых. Секретный диск, создаваемый средствами криптографии, представляется весьма надежным от проникновения в него устройством. Хотя перед вводом пароля следует убедиться, что имеешь дело с оригинальной программой, а не шутихой из предыдущего абзаца. К сожалению, все известные криптографические программные средства предусматривают только задание пароля, а не обмен паролями между пользователем и системой - так называемое "рукопожатие". Военные давно уже выработали правило рукопожатия и в ответ на пароль требовали отзыв, чтобы убедиться, что часовой настоящий, а не диверсант, пытающийся лишь выведать пароль. Криптографическое преобразование файлов является единственным средством, гарантирующим абсолютную защиту от вскрытия его содержимого при условиях, которые будут описаны ниже. Кроме криптографических программ часто используются специальные программы для смывания с дисков и файлов информации, которая должна быть уничтожена. Смывание диска и файлов означает прописывание их содержимого какой-то несекретной информацией, например, нулями, для того, чтобы содержащиеся в них данные исчезли физически. Ведь обычное удаление файлов убирает данные только логически, и, если на их место не была записана другая информация, то данные можно восстановить. Сходный результат дает запись в файл другого файла, большего по размеру, а затем стирание его, хотя эта операция менее надежна и данные иногда все-таки могут быть восстановлены специальными программами. Особенно удобно смывание незанятых областей диска по окончании работы над данными, которые были закодированы. Однако эта операция может занять несколько минут, что иногда раздражает медлительностью.
Из всего сказанного можно понять центральное место криптографии в защите данных на ЭВМ, которая, не требуя больших затрат, обеспечивает абсолютную их защиту. Вместе с тем нужно учитывать, что лишь административные меры могут защитить саму криптографию, ее ключи и людей от возможного обмана или угроз применения физической силы. Конечно, есть опасность перестараться в реализации мер защиты. Но трудность защиты состоит в том, что не только источники потенциальной угрозы плохо известны, но и подавляющее большинство компьютерных преступлений остается неизвестным для потерпевших. К сожалению, безопасность данных нельзя ни доказать, ни, тем более, принять на веру.
ПСЕВДОСЛУЧАЙНЫЕ ПОСЛЕДОВАТЕЛЬНОСТИ ЧИСЕЛ
Секретные ключи представляют собой основу криптографических преобразований, для которых, следуя правилу Керкхофа, стойкость хорошей шифровальной системы определяется лишь секретностью ключа. Однако в практике создание, распределение и хранение ключей редко были сложными технически, хотя и дорогими задачами. Основная проблема классической криптографии долгое время заключалась в трудности генерирования непредсказуемых двоичных последовательностей большой длины с применением короткого случайного ключа. Для ее решения широко используются генераторы двоичных псевдослучайных последовательностей. Существенный прогресс в разработке и анализе этих генераторов был достигнут лишь к началу шестидесятых годов. Поэтому в данной главе рассмотрены правила получения ключей и генерации на их основе длинных псевдослучайных последовательностей, используемых криптографическими системами для преобразования сообщения в шифровку.
Получаемые программно из ключа, случайные или псевдослучайные ряды чисел называются на жаргоне отечественных криптографов гаммой, по названию у - буквы греческого алфавита, которой в математических записях обозначаются случайные величины. Интересно отметить, что в книге "Незнакомцы на мосту", написанной адвокатом разведчика Абеля, приводится термин гамма, который специалисты ЦРУ пометили комментарием - "музыкальное упражнение?", то есть в пятидесятые годы они не знали его смысла. Получение и размножение реализаций настоящих случайных рядов опасно, сложно и накладно. Физическое моделирование случайности с помощью таких физических явлений, как радиоактивное излучение, дробовой шум в электронной лампе или туннельный пробой полупроводникового стабилитрона не дают настоящих случайных процессов. Хотя известны случаи удачных применений их в генерации ключей, например, в российском криптографическом устройстве КРИПТОН. Поэтому вместо физических процессов для генерации гаммы применяют программы для ЭВМ, которые хотя и называются генераторами случайных чисел, но на самом деле выдающие детерминированные числовые ряды, которые только кажутся случайными по своим свойствам. От них требуется, чтобы, даже зная закон формирования, но не зная ключа в виде начальных условий, никто не смог бы отличить числовой ряд от случайного, как будто он получен бросанием идеальных игральных костей. Можно сформулировать три основных требования к криптографически стойкому генератору псевдослучайной последовательности или гаммы:
1. Период гаммы должен быть достаточно большим для шифрования сообщений различной длины.
2. Гамма должна быть трудно предсказуемой. Это значит, что если известны тип генератора и кусок гаммы, то невозможно предсказать следующий за этим куском бит гаммы с вероятностью выше х. Если криптоаналитику станет известна какая-то часть гаммы, он все же не сможет определить биты, предшествующие ей или следующие за ней.
3. Генерирование гаммы не должно быть связано с большими техническими и организационными трудностями.
Самая важная характеристика генератора псевдослучайных чисел - информационная длина периода, после которого числа либо начнут просто повторяться, либо их можно будет предсказывать. Эта длина фактически определяет возможное число ключей системы и зависит от алгоритма получения псевдослучайных чисел. Требуемую длину периода определяет степень секретности данных. Чем длиннее ключ, тем труднее его подобрать. Однако не только длина ключа гарантирует его стойкость к взлому. В том случае, если содержание шифрованного сообщения жизненно важно для государства и им заинтересуется национальная служба безопасности, то заранее нужно быть готовым к неудаче в столь неравном состязании. Люди из спецслужб легко найдут требуемый ключ своими специфическими неджентльменскими методами, далекими от математики и криптографии. Скорее всего, ключ им даст сам владелец на блюдечке с голубой каемкой и будет этому искренне рад.
Вторая проблема состоит в следующем: на основании чего можно сделать заключение, что гамма конкретного генератора является непредсказуемой? Пока в мире нет еще универсальных и практически проверяемых критериев, позволяющих утверждать это. Неизвестна и общая теория криптоанализа, которая могла бы быть применена для такого доказательства, за исключением все возрастающего количества конкретных способов анализа, выработанных для различных практических целей. Интуитивно случайность воспринимается как непредсказуемость. Чтобы гамма считалось случайной, как минимум необходимо, чтобы ее период был очень большим, а различные комбинации бит определенной длины равномерно распределялись по всей ее длине. Итак, второе требование к ряду заключается в подтверждаемом статистически подобии его свойств настоящей случайной выборки. Каждый порядок элементов гаммы должен быть так же случаен, как и любой другой. Это требование статистики можно толковать и как сложность закона формирования ряда псевдослучайных чисел. Практически, если по достаточно длинной реализации этот закон вскрыть не удается ни на статистическом уровне, ни аналитически, то этим нужно удовлетвориться. Чем длиннее требуемая длина ряда, тем жестче к нему требования. Теперь подробнее расскажем, как вскрывались скрытые закономерности в последовательностях чисел. С древнейших времен люди наблюдали и изучали периодически повторяющиеся процессы, как фазы Луны, движения планет, чередования времен года, но не все такие цикличности выражены явно. Например, солнечные пятна, наблюдаемые невооруженным глазом с начала нашей эры и в телескопы с начала XVII века, дают пример скрытой периодичности в II лет, впервые обнаруженной Генрихом Швабе лишь в 1843 году. А вот среднегодовые температуры и изменение климата Земли связаны с циклами в 19 лет. Работы Винера и Хинчина поставили анализ периодичностей с головы на ноги. Ими предложено оценивать спектр случайных колебаний значений элементов гаммы как преобразование Фурье функции автокорреляции. При этом шумоподобному равномерному спектру гаммы без скрытых периодичностей соответствует автокорреляционная функция в виде одиночного выброса в нуле, то есть так называемая дельта-функция. Этот результат можно интерпретировать как непохожесть последовательности на себя при любом ее сдвиге.
И, наконец, последнее третье требование связано с возможностью практической реализации генератора в виде программы или электронного устройства, быстродействием, необходимым для применения в современных коммуникациях, а также удобством его практического использования.
Рекуррентные двоичные последовательности
Изложим теперь способ построения последовательностей случайных чисел с гарантировано хорошими для криптографии свойствами. Читатели, не интересующиеся практикой криптографии или стохастического моделирования, могут спокойно опустить эту подглавку и перейти к следующей. Для тех, кто решит все-таки изучить ее, сделаем несколько замечаний. Автор не рассчитывал на серьезную математическую подготовку читателей - в подавляющем большинстве институтов и университетов страны курс теории конечных полей если и читается, то лишь факультативно. Поэтому систематичности и строгости изложения ожидать не приходится. Цель - освоение принципов программной реализации хороших рядов псевдослучайных чисел, что достигается приведением аналогов и разбором конкретных примеров. Тем не менее, программисты по-видимому будут удовлетворены приведенной детальностью изложения, а ценители математической строгости могут уточнить неясные для себя вопросы, обратившись к книге "Современная прикладная алгебра" Г. Биркгоф и Т. Барти (Москва, "Мир", 1976) или же анналам математики Бурбаки.
По определению сложности закона генерации ряда чисел, если сложность последовательности {Gi} равна m, то любые m+1 последовательные ее значения зависимы. Если же эта зависимость представима линейной, то получается рекуррентное соотношение следующего вида:
C0*Gi+C1*G(i-1)+...+Cm*G(i-m)=0
При этом C0 и Cm обязаны быть неравными нулю. По начальным данным Go, Gi, ... Gm-1 длины m строится бесконечная последовательность. Каждый ее последующий член определяется из m предыдущих. Последовательности такого вида легко реализуются на ЭВМ. Особенно простой вид их реализации получается когда все с, и д, принимают лишь значения 0 и 1, что соответствует значениям отдельных бит. На множестве таких чисел определены алгебраические операции сложения и умножения, то есть имеется поле из двух элементов. Поля указанного типа с конечным числом элементов называются по фамилии их первооткрывателя Эвариста Галуа и для поля с n элементами обозначаются как GF(n), где GF - аббревиатура от слов Galois Field (поле Галуа). Они существуют, лишь когда n равно простому числу, и тогда называются простыми, или степени простого числа, и тогда называются расширениями соответствующего простого поля. Так, поле из 2 элементов GF(2) - простое поле порядка 2, a GF(4) - его расширение. При вычислениях на ЭВМ используются поля Галуа из элементов {0, 1}, обозначаемые GF(2**N) и соответствующие строкам данных длиной в N бит. Таблицы арифметических операций в GF(2) будут следующими:
+ | 0 | 1 | * | 0 | 1 | |
0 | 0 | 1 | 0 | 0 | 0 | |
1 | 1 | 0 | 1 | 0 | 1 |
(10010101 )=x**7+x**4+x**2+1
Представление битовых полей данных в ЭВМ многочленами упрощает рассмотрение операции их сдвига. Сдвигу данных влево на один бит соответствует умножение многочлена на х, а вправо - деление на х.
Совокупность всех многочленов степени меньше n представляет собой векторное пространство размерности n над GF(2), так как многочлены можно складывать, вычитать или умножать на константу.
Теперь, фиксировав неразрешимый над GF(2) многочлен f(x) степени n+1, рассмотрим остатки от деления на него других многочленов. Их множество совпадает с множеством многочленов степени не больше n. Например, f(x)=x**2+x+1 над GF(2) неприводим, потому что f(0)=1 и f(1)=1. Для него остатками будут элементы {0, 1, х, х+1}. На множестве этих остатков можно задать арифметические операции сложения и умножения, рассматривая остатки от деления на многочлен f(x). Легко проверить, что определенные таким образом сложение и умножение обладают всеми необходимыми свойствами обычных арифметических операций: коммутативностью, ассоциативностью и дистрибутивностью. Результат сложения или умножения над двумя элементами из приведенного множества тоже ему принадлежит. И, наконец, в множестве определены О и 1 так, что для произвольного элемента х имеем 0+х=х и 1*х=х. Таким образом, получено GF(4) - расширение поля GF(2) присоединением к нему остатков от деления произвольных многочленов на неприводимый над ним многочлен х**2+х+1. Выбирая разные неприводимые многочлены, можно получать разные расширения GF(2).
Из школьного курса математики известно, что над полем комплексных чисел любой многочлен разложим на линейные множители или, что то же самое, имеет столько корней, какова его степень. Однако это не так для других полей - в полях действительных или рациональных чисел многочлен х**2+х+1 корней не имеет и не может быть разложен на линейные множители. Аналогично, в поле GF(2) многочлен х**2+х+1 тоже не имеет корней, что просто проверить непосредственно: 1*1+1+1=1 и 0*0+0+1 =1. Тем не менее у f(x)=x**2+x+1 в поле Галуа GF(4) существует корень х, соответствующий многочлену х из таблиц выше, так как f(x)= х**2 +х+1 по модулю f(x).
Элементы поля Галуа GF(2**N) относительно умножения образуют абелеву группу, то есть на этом множестве для любых его элементов х, у и z выполняются аксиомы:
x*y=y*x*x*(y*z)=(x*y)*zx*1=1*xx*1/x=1/x*x=1
Если рассмотреть степени произвольного элемента х из GF(2**N), то обнаружим, что они образуют абелеву подгруппу. Такие подгруппы принято именовать циклическими. Число элементов этой подгруппы называют порядком элемента х. Из такого определения порядка следует, что если многочлен р(х) принадлежит GF(2**N) и имеет порядок k, то р(х)**K=1. Разберем теперь несколько важных свойств, касающихся порядка элементов в GF(2 ), изложенных в виде теорем.
ТЕОРЕМА 1. Если f(x) - неприводимый многочлен над GF(2), то выполняется равенство f(x**2)=f(x)**2.
Это равенство доказывается тем, что все попарные произведения в f(x)**2 равны нулю над GF(2). Например, (х**2+х+1)**2=х**4+x**2+1.
ТЕОРЕМА 2. Если неприводимый многочлен f(x) над GF(2**N) имеет порядок k, то k делит 2**N-1.
Это следует из теоремы Лагранжа, утверждающей, что число элементов группы G делится на число элементов любой своей подгруппы Н. Подгруппа Н расслаивает группу G на смежные классы элементов, не пересекающиеся меж собой. Так, элементы х и у считаются принадлежащими одному классу по подгруппе Н, если у/х принадлежит Н. Поскольку классы не пересекаются и содержат одинаковое число элементов, то число элементов группы делится на число элементов в подгруппе. Из теоремы 2 вытекает важное следствие, что если 2**N-1 простое число, то мультипликативная группа GF(2**N) циклическая и порядок любого ее неединичного элемента тоже равен 2**N-1.
ТЕОРЕМА 3. Любой многочлен р(х) из GF(2**N) удовлетворяет уравнению х**k=х, где К=2**N.
Порядок ненулевого р(х) делит 2**N-1 и имеем х**(K-1)=1, а так как для р(х)=0 имеем уравнение х=0, то в результате любой р(х) удовлетворяет уравнению х**K=х.
Отметим особое положение уравнения х**K=х, где К=2**N , поскольку его корни порождают все элементы поля GF(2 ). Так как уравнение х**(K-1)-х=0 имеет корнем х=0, то, разделив его на х, получаем уравнение х**(K-1)-1=0, все корни которого ненулевые. Производная уравнения имеет вид (x**k-x)=2*N*x**(n-1)-1=1, и у нее нет общих корней с исходным уравнением. Следовательно, в этом уравнении все корни различны, и так как их число равно 2**n, то они совпадают со всеми элементами поля GF(2).
ТЕОРЕМА 4. Многочлен х**k-1 делит х**M-1 в том и только в том случае, если k делит M.
Это вытекает из того факта, что если все корни х**k-1 являются также и корнями х**m-1, то m должно делиться на k.
Теперь обратимся к использованию полиномов в практике вычислений на ЭВМ, широко распространено и легко реализуется программно. Рассмотрим электронную схему деления данных в поле из N бит на полином:
f(x) = C0+C1*x+...+ Cn*х**N
На схеме биты показаны квадратными клетками. Шаг процедуры деления состоит в сдвиге данных влево на один бит и дозаписи освобождающегося крайнего правого бита суммой значений бит по модулю 2, умноженных на соответствующие коэффициенты многочлена f(x), то есть не все ячейки сдвига соединены с относящимися к ним сумматорами. В результате последовательного выполнения отдельных шагов деления исходных данных а(х), справа в данные дозаписывается последовательность s(x), которая выражается формулой:
s(x)=a(x)/f(x)=S0+S1*x+S2*x**2+...
справедливость которой просто проверить, приравнивая коэффициенты при х в уравнении s(x)*f(x)=a(x). Таким образом, получена связь между линейными рекуррентными последовательностями, делением многочленов над GF(2) и алгоритмом реализации деления на ЭВМ. Например, пусть имеем над GF(2) рекуррентное соотношение Gi+G(i-1)+G(i-3)=0. Многочлен, который ему отвечает, равен 1+х+х**3. Это неприводимый многочлен над GF(2), который порождает расширение GF(8). Мультипликативная группа в GF(8) имеет 7 элементов и циклична в силу простоты числа 7. Электронная схема этого рекуррентного генератора представляется так:
3 2 1
¦ LT- ¦
¦ ---T----T--+--¬ ¦
L--+--+----+-----<------
Он будет генерировать следующие последовательности при разных начальных данных (периоды в скобках):
000 | => | (0) |
001 | => | (0011101) |
010 | => | (0100111) |
O11 | => | (0111010) |
100 | => | (1001110) |
101 | => | (1010011) |
110 | => | (1101001) |
111 | => | (1110100) |
'программа деления на многочлен х**З+х+1
DEFINT A-Z
n = 1
DO
m = О
'-----------расчет бита переноса
IF n AND 2^2 THEN m = m+1
IF n AND 2^0 THEN m = m + 1
n = 2 * (n AND (2^2-1)) OR (m AND 1)
LOOP UNTIL n = 1
END
В этой программе сдвиг влево заменен операцией умножения на 2, а бит переноса рассчитывается тестированием бит, соответствующих ненулевым коэффициентам многочлена. В соответствии с теорией период такого генератора составляет 7 и включает в себя все ненулевые числа из 3 бит. Из этой программы видно, что реализация процедуры деления многочленов на ЭВМ или, что то же самое, генерации рекуррентных последовательностей проста.
Особый интерес для генерации длинных последовательностей представляют элементы GF(2**N), имеющие порядок равный 2**N-1. Они называются примитивными, потому что, возводя их в степень, можно получить весь набор ненулевых элементов поля Галуа. Если 2**N-1 простое число, то все элементы мультипликативной группы (кроме 1, конечно!) примитивны. Однако такие числа, называемые простыми числами Мерсенна, расположены редко. Они с давних пор слыли чемпионами среди простых чисел по своему размеру. Во время Эйлера наибольшим простым числом было:
2**31-1 =2147483647,
или пятое, а через сто лет в 1883 году русский самоучка Первушин нашел уже шестое число Мерсенна, равное:
2**61-1 =2305843009213693951.
Самое большое известное сейчас простое число - так называемое 32-е число Мерсенна, найденное лишь в 1992 году. Его запись содержит 227832 десятичные цифры или примерно сто страниц текста.
Нахождение неприводимых многочленов для генерации гаммы представляет сложную вычислительную задачу. Неприводимые многочлены, с помощью которых фактически строятся поля Галуа для криптографии, по своей роли напоминают простые числа в натуральном ряду. Нахождение их, как и простых чисел, производится подбором и требует больших затрат вычислительных мощностей сверхбыстродействующих ЭВМ. Поэтому в открытых публикациях данные о неприводимых многочленах очень больших степеней просто отсутствуют. Отметим, что всегда с(n)=с(0)=1, так как используется неприводимый многочлен степени п. Сложность програ1ммной реализации генератора существенно зависит от числа ненулевых коэффициентов неприводимого многочлена f(x): чем их меньше, тем проще и быстрее программа. Заметим, что в этом случае и криптоаналитикам проще жить: известно, что у них есть секретные теоремы, касающиеся трехчленов. Поэтому практически применяются многочлены с довольно большим числом ненулевых членов. Четного числа ненулевых членов быть не может, так как в этом случае корнем будет х=1 и многочлен можно разделить на х+1, а это доказывает приводимость.
Шифр ЭльГамаля
Криптографы постоянно вели поиски более эффективных систем открытого шифрования, и в 1985 году ЭльГамаль предложил следующую схему на основе возведения в степень по модулю большого простого числа. Для этого задается большое простое число Р. Сообщения представляются целыми числами S из интервала (1, Р). Оригинальный протокол передачи сообщения S выглядит в варианте Шамира, одного из авторов RSA, так:
1. Отправитель А и получатель В знают лишь Р. А генерирует случайное число Х из интервала (1,Р) и В тоже генерирует случайное число Y из того же интервала.
2. А шифрует сообщение S1=S**X MOD Р и посылает В.
3. В шифрует его своим ключом S2=S1**Y MOD Р и посылает S2 к А.
4. А "снимает" свой ключ S3=S2**(-X) MOD Р и возвращает S3 к В.
5. Получатель В расшифровывает сообщение:
S=S3**(-Y) MOD Р.
Этот протокол можно применить, например, для таких неожиданных целей, как игра в очко или блэкджек по телефону. Крупье шифрует карты своим ключом и передает их игроку. Игрок выбирает наугад одну из карт, шифрует карты своим ключом и возвращает их крупье. Крупье "снимает" с выбранной карты свой ключ и отсылает ее игроку. "Сняв" с этой карты свой ключ игрок узнает ее номинал и принимает решение: спасовать, тянуть еще или раскрываться. Теперь, хотя колода находится у крупье, но он не может ее раскрыть, так как карты зашифрованы ключом игрока. Крупье выбирает свою карту аналогично игроку. (Аналогичный алгоритм для игры в карты можно реализовать и на основе шифрования заменой операцией XOR. Однако им нельзя распространять ключи из-за легкого перехвата и взлома.)
В системе ЭльГамаля большая степень защиты, чем у алгоритма RSA достигается с тем же по размеру N, что позволяет почти на порядок увеличить скорость шифрования и расшифрования. Криптостойкость системы ЭльГамаля основана на том, что можно легко вычислить степень целого числа, то есть произвести умножение его самого на себя любое число раз так же, как и при операциях с обычными числами. Однако трудно найти показатель степени, в которую нужно возвести заданное число, чтобы получить другое, тоже заданное. В общем случае эта задача дискретного логарифмирования кажется более трудной, чем разложение больших чисел на простые сомножители, на основании чего можно предположить, что сложности вскрытия систем RSA и ЭльГамаля будут сходными. С точки зрения практической реализации, как программным, так и аппаратным способом ощутимой разницы между этими двумя стандартами нет. Однако в криптостойкости они заметно различаются. Если рассматривать задачу разложения произвольного целого числа длиной в 512 бит на простые множители и задачу логарифмирования целых чисел по 512 бит, вторая задача, по оценкам математиков, несравненно сложнее первой. Однако есть одна особенность. Если в системе, построенной с помощью алгоритма RSA, криптоаналитику удалось разложить открытый ключ N одного из абонентов на два простых числа, то возможность злоупотреблений ограничивается только этим конкретным пользователем. В случае же системы, построенной с помощью алгоритма ЭльГамаля, угрозе раскрытия подвергнутся все абоненты криптографической сети. Кроме того, упомянутые выше Ленстра и Манасси не только поколебали стойкость RSA, разложив девятое число Ферма на простые множители за неприлично короткое время, но и, как было замечено некоторыми экспертами, указали "брешь" в способе ЭльГамаля. Дело в том, что подход, применявшийся при разложении на множители девятого числа Ферма, позволяет существенно усовершенствовать методы дискретного логарифмирования для отдельных специальных простых чисел. То есть тот, кто предлагает простое Р для алгоритма ЭльГамаля, имеет возможность выбрать специальное простое, для которого задача дис- кретного логарифмирования будет вполне по силам обычным ЭВМ. Следует заметить, что этот недостаток алгоритма ЭльГамаля не фатален. Достаточно предусмотреть процедуру, гарантирующую случайность выбора простого Р в этой системе, и тогда только что высказанное возражение теряет силу. Стоит отметить, что чисел специального вида, ослабляющих метод ЭльГамаля, очень мало и случайным их выбором можно пренебречь.
Шифр Энигмы
В заключение обратимся к шифру того типа, который вырабатывала известная уже машина Энигма инженера Кирха. При его моделировании на ЭВМ можно достичь хорошей устойчивости при сравнительной простоте программы. Напомним, что эта машина представляла собой ряд вращающихся на одной оси барабанов с электрическими контактами, обеспечивающих множество вариантов простой замены, определяемой текущим положением барабанов. В ранних моделях было 5 барабанов, которые перед началом работы устанавливались по кодовому слову, а в ходе шифрования они поворачивались при кодировании очередного символа как в счетчике электроэнергии. Таким образом, получался ключ заведомо более длинный, чем текст сообщения. В чем же была слабость шифра?
1. Пять барабанов могли обеспечить лишь около
ста миллионов ключей, что позволяло их за день
перебрать на ЭВМ. Если использовать не 25 ла-
тинских символов, а 256 кодов ASCII и увели-
чить число барабанов, то сложность раскалыва-
ния шифра существенно возрастет.
2. Набор барабанов был ограничен и менялся ред-
ко, что вызвало охоту англичан за их экземпля-
рами в подводных лодках. ЭВМ может для каж-
дой шифровки использовать индивидуальные
барабаны, генерируемые по ключу, а это опять-
таки резко усложняет вскрытие шифра.
3. Наконец, можно сделать движение барабанов
хаотичным по случайной последовательности,
тоже вырабатываемой по ключу.
Подсчитаем число ключей такого шифра, реализованного программно. Пусть длина периода программного генератора случайных чисел равна 2**24. Восемь барабанов, генерируемые с помощью этого генератора, дадут вместе 2**192 вариантов ключа, а если учесть еще варианты псевдослучайной последовательности, управляющей движением барабанов, то получится внушительная цифра в 2**216 вариантов ключа. Таким образом, довольно просто получить устойчивый шифр даже при использовании программного генератора случайных чисел с периодом малой для криптографии длины. И хотя несомненно, что криптоаналитики наработали массу "домашних заготовок" для атак на такой шифр, но еще князь Владимирко Галицкий знал о том, что "в наше время чудес не бывает", и вскрытие шифра Энигмы будет дорого стоить. Поэтому приведем программу, реализующую описанный подход.
'----------имитация Энигмы
DEFINT I-N: DEFSTR S
CLS : RANDOM12E 231
DIM s(4, 32) AS STRING * 1
ns = 4
ss = "ААААААААААААААААААААААААААААА'
PRINT ss
'-----------ШИФРОВАНИЕ
x = RND(-231)
FOR i=0 TO ns
FOR j=0 TO 32:set(i,j) = CHR$(j):NEXT
FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):
NEXT
NEXT
s=""
FOR i = 1 TO LEN(ss) 'шифрование символа
k=ASC (MID$ (ss ,i ,1)): IF k>32 THEN k=k-128
FOR j = 0 TO ns:k=ASC(set(j, k)):NEXT
IF k < 32 THEN k = k+ 128
PRINT CHR$ (k); : s = s + CHR$ (k)
k = ns * RND 'поворот колес
FOR j=0 TO 31:SWAP s(k,j),s(k,j+1):NEXT
FOR j=0 TO 32
s(k,j)=CHR$((ASC(set(k, j)) + 32) MOD 33)
NEXT
NEXT
'----------РАСШИФРОВЫВАНИЕ
x = RND(-231)
FOR i=0 TO ns
FOR j=0 TO 32:s(i,j)=CHR$(j):NEXT
FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):NEXT
FOR j=0 TO 32
IF ASC (set (i, j)) < 64 THEN
m =j:n=ASC(s(i, j))
DO
k=ASC(s(i,n)):s(i,n)=CHR$(m OR 64)
m=n: n=k
LOOP UNTIL m = j
END IF
NEXT j
FOR j=0 TO 32
s(i,j)=CHR$(ASC(s(i,j)) AND 63)
NEXT
NEXT i
ss = s
FOR i = 1 TO LEN(ss)
k=ASC(MID$(ss,i ,1)): IF k>32 THEN k=k-128
FOR j=ns TO 0 STEP -1
k=ASC(s(j,k))
NEXT
IF k PRINT CHR$ (k) ;
k = ns * RND 'поворот колес
FOR j = 0 TO 31: SWAP s(k,j),s(k,j+1):NEXT
FOR j = 0 TO 32
s(k,j)=CHR$((ASC(s(k,j))+32) MOD 33)
NEXT
NEXT i
END
После работы программы на экране появятся три строки, изображающие: верхняя - исходный текст из букв А, средняя - шифровку и нижняя - расшифрованный текст:
ААААААААААААААААААААААААААААА
ВА ЖЖЬИХйЙЩСЛЦВФЭШЬРСОТСЗТЫОБ
ААААААААААААААААААААААААААААА
Отметим, что для упрощения текста программы ключ задается лишь из 3 бит числом 231 и используются лишь 5 барабанов.
На самом деле систем шифрования побольше, чем описано. Но практически употребляется лишь похожий на DES алгоритм IDEA ( IDEA - Improved Proposed Encryption Standard - улучшенный стандарт шифрования.) , отличающийся применением ключа длиной 128 бит и смещением операций разных алгебраических групп для блоков длиной 64 бита. Алгоритм IDEA разработан в Цюрихе Джеймсом Мэсси и опубликован в 1990 году. Он выдержал множество атак на него в отличие от алгоритмов FEAL, REDOC-11 и LOKI. IDEA выдержал атаки криптографов многих развитых стран, как Англии, Германии и Израиля. Он считается более стойким, чем традиционный DES, и представляет основу программы шифрования PGP, применяемой пользователями Интернет. Разработчик PGP, Фил Циммерман, сейчас подвергнут в США уголовному преследованию за экспорт криптостойких шифров. Примечательно, что алгоритмы, входящие в PGP, как IDEA и RSA, АНБ ранее объявляло не стойкими криптографически, но, тем не менее, завело дело "Правительство США против Филиппа Циммермана". Приравняв Фила к торговцам оружием и наркотикам, АНБ фактически созналось в очередной лжи - похоже, что PGP с IDEA и RSA оказалась слишком "крепким орешком" для правительственных чиновников.
Шифр Ривеста-Шамира-Алдемана
Первой и наиболее известной криптографической системой с открытым ключом была предложенная в 1978 году так называемая система RSA. Ее название происходит от первых букв фамилий авторов Rivest, Shamir и Aldeman, которые придумали ее во время совместных исследований в Массачусетском технологическом институте в 1977 году. Она основана на трудности разложения очень больших целых чисел на простые сомножители. Международная сеть электронного перечисления платежей SWIFT уже требует от банковских учреждений, пользующихся ее услугами, применения именно этой криптографической системы. Алгоритм ее работает так:
1. Отправитель выбирает два очень больших простых числа Р и Q и вычисляет два произведе- ния N=PQ и M=(P-1)(Q-1).
2. Затем он выбирает случайное целое число D, взаимно простое с М, и вычисляет Е, удовлетворяющее условию DE = 1 MOD М.
3. После этого он публикует D и N как свой открытый ключ шифрования, сохраняя Е как закрытый ключ.
4. Если S - сообщение, длина которого, определяемая по значению выражаемого им целого числа, должна быть в интервале (1, N), то оно превращается в шифровку возведением в степень D по модулю N и отправляется получателю S'=(S**D) MOD N.
5. Получатель сообщения расшифровывает его, возводя в степень Е по модулю N, так как
S = (S'**E) MOD N = (S**(D*E)) MOD N.
Таким образом, открытым ключом служит пара чисел N и D, а секретным ключом число Е. Смысл этой системы шифрования становится прозрачным, если упомянуть про малую теорему Ферма, которая утверждает, что при простом числе Р и любом целом числе К, которое меньше Р, справедливо тождество К**(P-1)=1 MOD Р. Эта теорема позволяет определять, является ли какое-либо число простым или же составным.
Приведем простой пример на малых простых числах Р=211 и Q=223. В этом случае N=47053 и М=46620. Выберем открытый ключ шифрования D=16813 и вычислим секретный ключ расшифровывания Е= 19837. Теперь, взяв за сообщение название метода RSA, переведем его в число. Для этого будем считать букву R равной 18, S равной 19, А равной 1 по порядковому номеру их положения в английском алфавите. На представление каждой буквы отведем по 5 бит числа, представляющего открытый текст. В этом случае слову RSA соответствует следующее число:
S=((1*32)+19)*32+18=1650
С помощью открытого ключа получаем шифровку:
S'=(S**D) MOD N=1650**16813 MOD 47053=3071
Получатель расшифровывает ее с помощью секретного ключа:
S = (S'**E) MOD N=3071**19837 MOD 47053=1650
Авторы RSA в примере из своей первой публикации использовали
D=9007 и
N=11438162575788886766923577997614661201021829672124236256256184
29357069352457338978305971235639587050589890751475992900268795
43541.
Приняв за исходный открытый текст фразу из "Юлия Цезаря" Шекспира: ITS ALL GREEK TO ME, представленную целым числом S=920190001121200071805051100201501305, они получили такую шифровку
S'=199935131497805100452317122740260647423204017058391463103703
717406259716089489275043992096267258267501289355446135382376
9748026.
Зачем приведены эти длинные наборы цифр, взятые из книги американского математика Мартина Гарднера, читатель узнает ниже.
Криптостойкость системы RSA основана на том, что М не может быть просто вычислена без знания простых сомножителей Р и Q, а нахождение этих сомножителей из N считалась трудно разрешимой задачей. Однако недавние работы по разложению больших чисел на сомножители показали, что для этого могут быть использованы разные и даже совершенно неожиданные средства. Сначала авторы RSA предлагали выбрать простые числа Р и Q случайно, по 50 десятичных знаков каждое. Считалось, что такие большие числа очень трудно разложить на простые сомножители при криптоанализе. Райвест полагал, что разложение на простые множители числа из почти что 130 десятичных цифр, приведенного в их публикации, потребует более 40 квадриллионов лет машинного времени. Но математики Ленстра из фирмы Bellcore и Манасси из фирмы DEC разложили число из 155 десятичных цифр на простые сомножители всего за 6 недель, соединив для этого 1000 ЭВМ, находящихся в разных странах мира. Выбранное число, называемое девятым числом Ферма, с 1983 года на- ходилось в списке чисел, разложение которых считалось наиболее желательным. Это число взято потому, что оно считалось неразложимым при существующей вычислительной технике и достаточно большим для того, чтобы его можно считать безопасным для формирования N в RSA. Как заявил Ленстра, ведущий в Bellcore исследования по электронной защите информации и разложению больших чисел, их целью было показать разработчикам и пользователям криптографических систем, с какими угрозами они могут встретиться и насколько осторожны должны быть при выборе алгоритмов шифрования. По мнению Ленстра и Манасси, их работа компрометирует и создает большую угрозу применениям криптографических систем RSA.
Следует учесть, что работа по совершенствованию методов и техники разложения больших чисел только началась и будет продолжена. Те же Ленстра и Манасси в 1991 году нашли делитель тринадцатого числа Ферма, которое состоит примерно из 2500 десятичных разрядов. Теперь разработчикам криптографических алгоритмов с открытым ключом на базе RSA приходится как чумы избегать применения разложимых чисел длиной менее 200 десятичных разрядов. Самые последние публикации предлагают для этого применять числа в 250 и даже 300 десятичных разрядов. А так как для щифрования каждого блока информации приходится соответствующее число возводить в колоссально большую степень по модулю N, то для современных компьютеров это задача на грани возможного. Поэтому для практической реализации шифрования RSA радиоэлектроники начали разрабатывать специальные процессоры, которые позволили бы выполнять операции RSA достаточно быстро. Лучшими из серийно выпускаемых кристаллов являются процессоры фирмы CYLINK, которые позволяют выполнять возведение в степень целого числа из 307 десятичных знаков за доли секунды. Отметим, что чрезвычайно слабое быстродействие криптографических систем на основе RSA лишь ограничивает область их применения, но вовсе не перечеркивает их ценность.
Шифрующие ЭВМ
Электронные шифраторы всегда представляют собой ЭВМ, а ряд из них ничем другим кроме шифрования не занимается. Так, очень популярна отечественная профессиональная шифровальная система РК-1240, которая, несмотря на малые размеры - она исполнена в дипломате, - позволяет шифровать и расшифровывать тексты при передаче их в виде писем, телеграмм, телефонограмм, телексов и факсов. Вес ее довольно велик - около 10 килограмм. Предназначена она преимущественно для стационарного использования с питанием от сети, хотя и предусмотрена возможность питания от батарей. Внешне она напоминает пишущую машинку со встроенным слева телефоном. Вместо обычного монитора на электроннолучевой трубке в ней применен встроенный дисплей на одну строку.
Среди малых по размерам шифрующих устройств выделяются отечественные "Криптоцентр" и "Анкрипт". Они представлены компьютерами класса palm-top и размером не больше авторучки. Система "Криптоцентр" выполнена на базе компьютера фирмы Hewlett Packard модели HP-100LX. Она поддерживает двухуровневую ключевую систему с главным паролем и рабочими, выполняет шифрование, расшифровывание информации и оформление цифровой подписи. Используя шифрование открытым ключом, с ее помощью можно заниматься рассылкой ключей или генерацией их для других криптографических систем. Передавать зашифрованный ею текст можно практически по любым каналам связи: почте, телеграфу, модему. факсу или диктовать по телефону голосом. Для контроля доступа к шифратору в файле ведется учет регистрируемых пользователей.
Шифратор "Анкрипт" - самый маленький. Однако это простая в работе и эффективная шифровальных система. В ней предусмотрены:
- экстренное стирание информации и ключей
при попытке захвата;
- индивидуальный пароль каждого пользователя;
- защита от съема информации техническими средствами.
Массу различных зарубежных криптографических систем можно купить в магазинах, торгующих средствами безопасности. Хотя в этом случае можно приобрести как высококачественное устройство, так и примитивный, нестойкий от атак криптоаналитиков продукт, да еще не адаптированный к российским линиям связи. Цена на эти изделия колеблется в широких пределах. Простенькие телефонные скрамблеры стоят от $150, а совершенные профессиональные многофункциональные шифраторы в несколько тысяч долларов не редкость.
Шифры перестановки
Из-за отмеченных особенностей шифр замены в чистом его виде никогда не применяется, а всегда употребляется вместе с перестановкой, например, бит внутри байта. Если после замены символы сообщения превращались во что угодно, но сохраняли в шифровке свое исходное местоположение, то после перестановки они там и расположены еще и где угодно, что надежно защищает шифровку от атак криптологов. Потому что перестановку можно рассматривать как умножение вектора сообщения на матрицу перестановки бит Р с элементами 0 и 1 и размером в длину сообщения в битах. Рассмотрим два случая.
1. Перестановка может делаться до наложения на
сообщение случайной последовательности, то
есть s'=Pt+y. В случае, если текст в сообщении
отсутствует t=0 и идут нули или пробелы, то
s'=y, а в канал связи попадает чистый ключ.
2. Перестановка может делаться и после наложе-
ния на сообщение случайной последовательно-
сти, то есть s"=P(t+y). В случае, если текст в со-
общении отсутствует t=0 и идут нули или пробе-
лы, как s"=Py, а в канал связи попадает ключ,
шифрованный перестановкой.
Поэтому обычно предпочтение отдается второй схеме, когда в отсутствие текста шифровка представляет собой не чистый ключ, а осложненный перестановкой. Хотя и в том, и в другом случае наложение на шифровку своего текста для введения получателя в заблуждение ничего не дает. Однако перестановки необходимы и для того, чтобы атака на ключ стала неэффективной. Если передача идет побайтно, то достаточно лишь переставлять биты внутри байта, чтобы с вероятностью 0.97 исказить его и сделать перехват ключа описанным способом невозможным.
Перестановка может выполняться отдельными битами или группами бит как байты, что программно куда удобнее, хотя и не перемешивает биты полностью. Перестановку можно было бы произвести и побитно, но это был бы очень дорогой процесс. Временная сложность перестановки связана с квадратом числа переставляемых элементов, поэтому перестановка бит была бы в 64 раза дороже перестановки байт. Вычислительных способов перестановок существует множество, на любой вкус. Например, в программах широко применяется перестановка по номерам N от 0 до L-1 на основе рекуррентного выражения:
N(i+1)=(K-Ni+M) MOD L
при выполнении следующих 4 условий:
1) К и М берутся из интервала [1, L-1],
2) М взаимно просто с L,
3) К- 1 делится на любой простой делитель L,
4) К-1 делится на 4, если L делится на 4.
Для хорошего запутывания в этом случае приходится делать перестановку несколько раз, меняя случайным образом К и М. Часть криптографов рекомендует для перестановки использовать такие же последовательности, как и у генераторов ключей, описанных ниже, хотя с этими генераторами существует проблема в том, что они переставляют 2**n-1 элементов, а на ЭВМ приходится иметь дело с группами длиной 2**n.
Интересна схема перестановки, напоминающая тасовку колоды карт. Так, если S=A+B+C представляет собой исходный блок текста, переставляемый побайтно, то результатом такой перестановки будет S'=C+B+A, где разбиение на фрагменты А, В и С делается случайным образом. После нескольких тасовок исходный текст оказывается основательно перепутанным. Эта тасовка в состоянии после многократного повторения осуществить любую перестановку. Однако число тасовок при этом должно быть очень велико, и для быстрого получения качественной перестановки лучше употреблять перестановку пар:
FOR i = 0 ТО N
SWAP arr(i), arr(N*RND)
NEXT
Перестановка тасовкой зачастую очень удобна, так как одиночный ее шаг практически не оставляет ни одного символа на своем месте. Прием перестановки тасовкой демонстрирует следующая программа:
' программа шифрования перестановкой
DEFINT I-N: DEFSTR S
RANDOMIZE 1379: CLS
'задание текста и перестановки
s = "Вверху синева и внизу откос"
l = LEN(s$): PRINT s
s$ = ""
FOR i=1 TO 2*l: s$=s$+CHR$(l*RND):NEXT
' шифровка
FOR i = 2 TO LEN(s$) STEP 2
n = ASC(MID$(s$, i-1, 1))
m = ASC(MID$(s$, i, 1))
IF n > m THEN SWAP n, m
s=RIGHT$ (s,l-m)+MID$ (s,n+1,m-n)+LEFT$ (s,n)
NEXT
PRINT s
' расшифровка
FOR i = LEN(s$) TO 1 STEP -2
n = ASC(MID$(s$, 1-1, 1))
m = ASC(MID$(s$, i, 1))
IF n > m THEN SWAP n, m
s=RIGHT$ (s,n) +MID$ (s, l-m+1,m-n) +LEFT$ (s, l- m)
NEXT
PRINT s
END
После ее выполнения на экране дисплея появляются три строки: верхняя с исходным текстом, средняя - шифрованная перестановкой, а нижняя - результат расшифровки. Например:
Вверху синева и внизу откос
рву еиаонуа етв с иинВковсх
Вверху синева и внизу откос
Шифр замены, осложненный перестановкой, представлял собой раннее поколение машинных криптографических преобразований. Он окончательно испортил надежду на вскрытие шифра хитроумными методами отгадывания текста сообщения, оставив взломщикам лишь возможность прямого подбора ключа. Вскрытие случайной перестановки без знания ключа неоднозначно, что не позволяет сколько-нибудь уверенно расшифровать сообщение. Однако по сохранившейся статистике использованных в сообщении символов можно делать более или, скорее, менее уверенные прогнозы о его общем содержании.
ШИФРЫ С ОТКРЫТЫМ КЛЮЧОМ
Развитие криптографии в XX веке было стремительным, но неравномерным. Анализ истории ее развития как специфической области человеческой деятельности выделяет три основных периода.
I. Начальный, имевший дело лишь с ручными шифрами, начавшийся в седой древности, закончился лишь в конце тридцатых годов XX века. Криптография за это время прошла длинный путь от магического искусства древних жрецов до будничной прикладной профес- сии чиновников секретных ведомств.
II. Следующий период отмечен созданием и широким внедрением в практику сначала механи- ческих, потом электромеханических и, наконец, электронных устройств шифрования, соз- данием сетей засекреченной связи. Его началом можно считать применение телеграфных шифровальных машин, использующих длинный однора- зовый ключ. Длится он по наши дни. Однако к середине семидесятых годов было достигнуто положение, когда повышение стойкости шифров отошло на второй план. С развитием разветвленных коммерческих сетей связи, электронной почты и глобальных информационных систем самой главными стали проблемы распределения секретных ключей и подтверждения автор- ства. К ним теперь привлечено внимание широкого круга криптологов.
III. Началом третьего периода развития криптологии обычно считают 1976 год, когда американ- ские математики Диффи и Хеллман предложили принципиально новый вид организации за- секреченной связи без предварительного снабжения абонентов секретными ключами, так называемое шифрование с открытым ключом. В результате стали появляться криптографические системы, основанные на подходе, сформулированном еще в сороковых годах Шенноном. Он предложил строить шифр таким способом, чтобы его раскрытие было эквивалентно решению математической задачи, требующей выполнения объемов вычислений, превосходящих воз- можности современных ЭВМ. Новый период развития криптографии характеризуется появлением полностью автоматизированных систем шифрованной связи, в которых каждый пользователь имеет свой индивидуальный пароль для подтверждения подлинности, хранит его, к примеру на магнитной карте, и предъявляет при входе в систему, а весь остальной процесс проведения секретной связи происходит автоматически.
В традиционных криптосистемах одним и тем же секретным ключом осуществляется как шифрование, так и дешифрование сообщения. Это предполагает, что отправитель и получатель сообщения получили идентичные копии ключа курьером. Этот прием почти неприменим для коммерческих фирм и абсолютно недоступен частным лицам из-за своей дороговизны.
При шифровании с открытым ключом для шифрования и расшифровывания используются разные ключи, и знание одного из них не дает практической возможности определить второй. Поэтому ключ для шифрования может быть сделан общедоступным без потери стойкости шифра, если ключ для расшифровывания сохраняется в секрете, например, генерируется и хранится только получателем информации. Несмотря на подозрительность (кому верят криптоаналитики?) и консерватизм (лучшее - для криптографов - враг хорошего!) новые идеи стали быстро реализовываться на практике. Шифруют и сейчас традиционными методами, но рассылка ключей и цифровая подпись стали выполняться уже по-новому. Сейчас два метода шифрования с открытым ключом получили признание и закреплены в стандартах. Национальный институт стандартов и технологий США NIST (бывший ANSI) принял стандарт MD 20899, основанный на алгоритме ЭльГамаля, а на основе алгоритма RSA приняты стандарты ISO/IEC/DIS 9594-8 международной организацией по стандартизации и Х.509 международным комитетом по связи.
Шифры взбивания и стандарт DES
Казалось бы, что предел возможностей сокрытия сообщения уже достигнут, ан нет. Результат можно ощутимо улучшить, если вместо перестановки использовать линейное преобразование:
s=L*t
где L - невырожденная матрица случайного линейного преобразования бит, или, что то же самое, детерминант L не равен нулю. И хотя расшифровывание в этом случае придется осуществлять решением систем линейных уравнений, но каждый бит шифровки начинает уже зависеть от каждого бита текста. Шифры на основе этого преобразования называют скрамблерами или взбивалками за то, что они взбивают текст сообщения, как повара омлет. К сожалению, доля невырожденных матриц с увеличением их размера стремительно убывает. Детерминант матрицы L, как и ее элементы, может быть равен либо 0, либо 1. Если det(L)=0, то матрица вырождена. Поскольку известно, что для матрицы, составленной из квадратных подматриц А, В, С и D, имеем:
¦А В¦
¦ ¦ =det(A)det(B)-det(C)-det(D)
¦C D¦
и, обозначив через Pn вероятность равенства единице детерминанта случайной матрицы размером 2**n, получаем следующее рекуррентное выражение:
P(n+1)=2*Pn*Рn*(1-Pn*Pn).
Так как P1=0.5, то увеличение n влечет быстрое убывание невырожденных матриц среди случайных.
Для того, чтобы матрица L была невырожденной, случайной и при расшифровании не нужно было производить много вычислений, американскими криптографами был предложен алгоритм, легший в основу стандартного криптографического преобразования DES. Суть его одного шага можно описать следующей схемой.
Входной блок данных делится пополам на левую L' и правую R' части. После этого формируется выходной массив так, что его левая часть L" представлена правой частью R' входного, а правая R" формируется как сумма L' и R' операцией XOR. Далее, выходной массив шифруется перестановкой с заменой. Можно убедиться, что все проведенные операции могут быть обращены и расшифровывание осуществляется за число операций, линейно зависящее от размера блока. В то же самое время, после нескольких таких взбиваний можно считать, что каждый бит выходного блока шифровки может зависеть от каждого бита сообщения.
Система шифрования DES была разработана IBM под именем Lucifer и предложена со своими корректировками Национальным Бюро Стандартов США в 1976 году как стандарт шифрования. В ней применен ключ из 56 бит. Следует отметить, что в стандарте DES применены перестановки лишь специального типа, что наводило критиков этого стандарта на мысль, что АНБ хорошо знало их теорию и могло для взлома воспользоваться заранее известными слабыми местами. Однако принцип этого шифрования прошел самую широкую апробацию и ему посвящено множество публикаций. Нарекания вызывали лишь выбранные короткими длины блока в 64 бита и ключа в 56 бит, что недостаточно для таких задач, как национальная безопасность. Свое развитие DES получил в ГОСТ 28147-89, который увеличил длину ключа до 256 бит и допустил произвольные перестановки. В заключение приведем программу, демонстрирующую эффект взбивания на блоке в 64 байта. С увеличением числа взбиваний порча единственного бита в шифровке делает нечитаемой половину текста, что обусловлено побайтовой перестановкой. Если бы перестановка была побитовая, то весь текст от ошибки в единственном бите перестал бы читаться.
'------программа шифрования взбиванием
DEFINT I-N: DEFSTR S
RANDOMIZE 231
CLS:LOCATE 1, 1
Lot = 5
s$ = ""
FOR i=1 TO 64:s$=s$+CHR$(65+25*RND):NEXT
PRINT s$; " - text": sav = s$
s$ = ""
FOR i=1 TO 192: s$=s$+CHR$(255*RND): NEXT
'---------------------шифрование
FOR i = 0 TO Lot
sc=MID$(ss,1+I*32,32)
l=2^i:sl="": r=""
FOR j = 1 TO 32
kg=ASC(MID$(sc, j, 1))
kl=ASC(MID$(s$, j, 1))
kr=ASC(MID$(s$, j+32,1))
sl = sl+ CHR$(kl XOR kr)
sr = sr+ CHR$(kr XOR kg)
NEXT
s$=sr+RIGHT$(sl,l)+LEFT$(sl,32-l)
NEXT
'----------------------порча бита
ss=CHR$(ASC(s$) XOR 4)+RIGHT$(s$,63)
'-----------------печать шифровки
FOR i =1 TO 64
k = ASC(MID$(s$, i, 1))
DEF SEG=47114: POKE 2*i-2, k: DEF SEG
NEXT
LOCATE 2, 65: PRINT " - code"
'---------------расшифровывание
FOR i = Lot TO 0 STEP -1
sc=MID$(s$, 1+i*32, 32): l=2^i
s$=RIGHT$ (s$ ,32-
l)+MID$ (s$, 33,l)+LEFT$ (s$, 32)
sl = "": sr = ""
FOR j = 1 TO 32
kg = ASC(MID$(sc, j, 1))
kl = ASC(MID$(ss, j, 1))
kr = ASC(MID$(ss, j+32, 1))
sl = sl+ CHR$(kl XOR kr XOR kg)
sr = sr+ CHR$(kr XOR kg)
NEXT
ss = sl+sr
NEXT
FOR i =1 TO 64
k = ASC(MID$(s$, i, 1))
DEF SEG=47124: POKE 2*i-2,k: DEF SEG
NEXT
LOCATE 3, 65: PRINT " - text"
n = 0
FOR i =1 TO 64
IF MID$ (s$, i, 1) =MID$(sav, i,1) THEN
LOCATE 4, i: PRINT "+";: n = n+I
ELSE
LOCATE 4, i: PRINT "-";
END IF
NEXT
LOCATE 6, 1: PRINT 64 - n; "errors"
END
Шифр DES принят федеральным стандартом США, и хорош в использовании для многих коммерческих приложений. Однако правительства сами никогда не используют шифры, предлагаемые коммерсантам, чтобы закрыть свои данные, так как они недостаточно стойки от атак аналитиков. Например, 16-кратный DES был взломан Шамиром, применявшим дифференциальный криптоанализ, и Матсуи, использовавшим линейный криптоанализ. Наиболее серьезную практическую атаку на DES осуществил Мишель Винер, который разработал и опробовал микросхему, проверяющую в секунду 50 миллионов ключей DES. ЭВМ, стоящая миллион долларов и содержащая несколько десятков тысяч таких микросхем, способна перебрать все ключи DES за 7 часов. АБН и ФАПСИ тратят на вычислительную технику такие деньги, что могут построить ЭВМ, взламывающую шифровку DES за секунду. Это означает, что DES нельзя пользоваться для серьезных приложений. Для того, чтобы испортить правительственным криптоаналитикам сон, коммерсанты применяют так называемый "тройной DES", шифруя сообщение трижды двумя разными ключами, что увеличивает реальную длину ключа до 112 бит. Однако такой метод медленнее обычного DES метода в три раза.
Шифры замены
Теперь посмотрим, как обычно практически выполняется шифрование заменой с помощью ЭВМ. Самый простой и эффективный способ сделать текст нечитаемым - спрятать его, смешав с последовательностью случайных чисел, заданной ключом, с помощью операции XOR( Операция XOR выполняет следующие действия: (О XOR 0)-0, (О XOR 1)=1, (1 XOR 0)=1, (1 XOR 1)=0. ). При этом информация сообщения прячется в шуме - самом информативном, по определению Шеннона, сигнале. Все правильно, песчинку лучше прятать на пляже, рыбу в море, а информацию в шуме.
Есть и другие обоснования выбора случайных чисел для шифрования заменой. Можно исходить из того, что криптоаналитик попытается снизить неопределенность чтения шифровки, зная статистические свойства нашей последовательности. А как только человеку становится известным чье-то намерение, то его поведение соответственно меняется. Поэтому если криптоаналитик знает наше намерение использовать последовательность, где 1 встречается с вероятностью р, а 0 с вероятностью 1-р, то, зная теорию игр, он тоже с вероятностью р будет предполагать наличие 1. Вероятность его успехов будет равна:
Р(Р)=Р-Р+(1-Р)-(1-Р)
Эта функция достигает минимума при р=0.5, что выпадает при случайном выборе из 0 и 1 с равновероятными исходами. Далее, если биты в случайной последовательности с одинаковой вероятностью принимают значения 0 и 1, то биты в шифровке будут обладать тем же свойством. Докажем это. Пусть вероятность нулевого бита в тексте равна р, а единичного соответственно 1-р. Нулевой бит в шифровке появляется, когда соответствующие биты последовательности и текста оба равны либо О, либо 1. Значит, вероятность появления нулевого бита в шифре равна:
Р=0.5-р+0.5-(1-р)=0.5
Более того, если биты в используемой для шифрования случайной последовательности статистически независимы друг от друга, то и в шифровке они становятся такими же. Текст превращается во что угодно, то есть в шум. Из-за специфики операции XOR процедура шифрования совпадает с процедурой расшифрования. Например, обозначив через t вектор бит сообщения, у вектор случайной последовательности и s шифровки, получаем t=s XOR у и s=t XOR у. Приведем пример программной реализации этого шифра на языке QuickBasic, называемого далее просто шифром замены. Такие шифры образуют подмножество многоалфавитных шифров замены, которые мы рассматривали выше.
'пример шифрования заменой
DECLARE SUB CodeAndPrint (Password!, Map%())
DEFINT I-N: CLS
DIM Map (40) : CONST Password = -231.157
' сообщение
FOR i = 1 TO 40
Map(i) = ASC ("A")
NEXT
FOR i = 1 TO 40
PRINT CHR$ (Map (i) ) ;
NEXT
'шифровка
CALL CodeAndPrint (Password, Map())
' расшифровка
CALL CodeAndPrint ( Password, Map ( ) )
END
SUB CodeAndPrint (Password, Map())
x = RND (Password)
FOR i = 1 TO 40
Map(i) = INT(32 * RND) XOR Map(i)
NEXT
FOR i = 1 TO 40
PRINT CHR$ (Map (i) ) ;
NEXT
END SUB
В результате работы программы появляются три строки, представляющие собой: верхняя - исходный текст, средняя - шифрованный, а нижняя - расшифровку:
АААААААААААААААААААААААААААААААААААААААА
ЦСТЙЙШАШЬЦБНЫЩЛЮЫБЮЛРШБТОЙУФИИЪЪТЯЭЗЦЯЗС
АААААААААААААААААААААААААААААААААААААААА
У машинного многоалфавитного шифра замены с помощью операции XOR есть ряд очень слабых мест, которые нужно знать и учитывать использовании этого шифра. Серьезную неприятность может доставить обратимость этого шифра, так как для расшифровки применяется то же самое преобразование, что и для зашифровки. В том случае, если одно и то же сообщение должно быть послано нескольким адресатам и шифруется одним и тем же шифром может произойти так, что длина сообщения изменится из-за сбоя или ошибки. В этом случае будет получено 2 сообщения разной длины. Так, если имеем две шифровки s' и s", которые отличаются тем, что исходный текст сообщения оказался сдвинутым на один символ:
S'(i)=T(i)+Y(i);S"(i+1)=T(i+1)+Y(i)
где t - текст, а у - ключ, то, находя их сумму, получим сумму текста со сдвигом:
S(i)=S'(i)+S"(i+1)=T(i)+T(i+1).
Исходный текст можно получить, подобрав S0, которое неизвестно, в выражении:
T(n)=S0+S1+S2+...+Sn
Следующий пример демонстрирует эту технику. Пусть по двум шифровкам, полученным из текста, сдвинутого на один символ, образована следующая их сумма:
ЗВГЮШВЪСЮШТБПРЩВЦТЮТТБПРГВТЬ S(i)
Подбором S0 получаем текст исходного сообщения:
ГЕИЕЭЯШИЕЭОПЮНЕЗЭОЛЭОПЮНРТЛХ | S0=29 | |
ДЖИЖЮ ЩЙЖЮПРЯОХИЮПМЮПРЯОСУМЭ | S0=30 | |
ЕЭКЭЯАЪКЗЯРС ПЗЙЯРНЯРС ПТФНИ | S0=31 | |
ЖИЛИ БЫЛИ СТАРИК СО СТАРУХОЙ | S0=32 |
Другая неприятность с машинным многоалфавитным шифром замены может возникнуть, если в сообщении встречаются большие участки пробелов или нулевых символов. Допустим, например, что линия связи недозагружена, но в то время, когда нет сообщений, аппаратура шифрования не выключается. Поэтому когда сообщений нет и t=0, шифровка будет представлять собой "чистую" последовательность ключа. Если в это время с помощью специальной аппаратуры перехватить шифровку, представляющую собой ключ s=y, то можно наложить на нее текст своего сообщения s'=s+t=t+y и передать искаженную шифровку по каналу связи. Получатель, расшифровав ее:
s'+y=s+t+y=t+y+y=t
получит переданный ему перехватчиком текст сообщения. А так как этот текст поступит в шифрованном виде, то его содержимому могут поверить, а это уже никак не допустимо. Так как перехватчик не знает, свободна ли линия, то будет накладывать свой текст на непрерывный шифрованный сигнал наугад несколько раз. Даже если в это время по линии шла передача - не беда, скорее всего возникшие искажения будут интерпретированы как помехи в канале связи.
Становление науки криптологии
Мы истину, похожую на ложь,
Должны хранить сомкнутыми устами,
Иначе срам безвинно наживешь...
Данте. "Божественная комедия "
После падения Римской империи от вторжения варваров в Европе пошли столетия упадка, которые историки образно назвали Темными веками. Все лучшие достижения цивилизации, а вместе с ними и криптология, были утрачены. По свидетельству святого Джерома "весь мир погрузился в руины". Лишь к концу средневековья применение криптографии начинает возрождаться. Например, книга "Экватор Планет", вышедшая в 1390 году и приписываемая Джефри Чосеру, содержит отдельные шифрованные главы.
Эволюция общественной жизни к концу XIV столетия, приведшая к культуре Возрождения, кризису городских коммун, обострению политического противостояния отдельных групп людей, регрессу в развитии общества из-за войн, выдвинула новые факторы усиления позиций криптографии. Появившаяся интеллектуальная элита в виде гуманистов приходит на службу могущественным меценатам, все более отдаляясь от простого народа. В сфере коммуникаций это проявляется тем, что главенствующим языком сообщений становится античная латынь, которая отходит от живого языка даже в Италии. Древние опыты шифрования восстанавливаются и развиваются целой плеядой крупных ученых. Наряду с традиционными применениями криптографии в политике и военном деле возникают неожиданно близкие к нашему времени задачи ее применения для охраны интеллектуальной собственности от преследований инквизицией или заимствования другими учеными. Слова Вергилия из 16 песни "Ада" "Божественной комедии" Данте, приведенные в эпиграфе этой главы, сколь нельзя более верно описывают точку, вокруг которой стала кристаллизовываться средневековая криптология.
В ручных шифрах того времени часто используются таблицы, которые дают простые шифрующие процедуры перестановки букв в сообщении. Ключом в них служат размер таблицы, фраза, задающая перестановку или специальная особенность таблиц. Простая перестановка без ключа - один из самых простых методов шифрования, родственный шифру скитала. Например, сообщение НЕЯСНОЕ СТАНОВИТСЯ ЕЩЕ БОЛЕЕ НЕПОНЯТНЫМ записывается в таблицу по столбцам. Для таблицы из 5 строк и 7 столбцов это выглядит так:
Н | О | Н | С | Б | Н | Я |
Е | Е | О | Я | О | Е | Т |
Я | С | В | Е | Л | П | Н |
С | Т | И | Щ | Е | О | Ы |
Н | А | Т | Е | Е | Н | М |
Более практический метод шифрования, называемый одиночной перестановкой по ключу очень похож на предыдущий. Он отличается лишь тем, что колонки таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы. Использовав в виде ключа слово ЛУНАТИК, получим такую таблицу.
Л | У | Н | А | Т | И | К |
4 | 7 | 5 | 1 | 6 | 2 | З |
Н | О | Н | С | Б | Н | Я |
Е | Е | О | Я | О | Е | Т |
Я | С | В | Е | Л | П | Н |
С | Т | И | Щ | Е | О | Ы |
Н | А | Т | Е | Е | Н | М |
А | И | К | Л | Н | Т | У |
1 | 2 | З | 4 | 5 | 6 | 7 |
С | Н | Я | Н | Н | Б | О |
Я | Е | Т | Е | О | О | Е |
Е | П | Н | Я | В | Л | С |
Щ | О | Ы | С | И | Е | Т |
Е | Н | М | Н | Т | Е | А |
В верхней строке ее записан ключ, а номера под ключом определены по естественному порядку соответствующих букв ключа в алфавите. Если в ключе встретились бы одинаковые буквы, они бы нумеровались слева направо. Получается шифровка: СНЯНН БОЯЕТ ЕООЕЕ ПНЯВЛ СЩОЫС ИЕТЕН МНТЕА. Для дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Этот способ известен под названием двойная перестановка. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов были другие, чем в первой таблице. Лучше всего, если они будут взаимно простыми. Кроме того, в первой таблице можно переставлять столбцы, а во второй строки. Наконец, можно заполнять таблицу зигзагом, змейкой, по спирали или каким-то другим способом. Такие способы заполнения таблицы если и не усиливают стойкость шифра, то делают процесс шифрования гораздо более занимательным.
Кроме одиночных перестановок использовались еще двойные перестановки столбцов и строк таблицы с сообщением. При этом перестановки определялись отдельно для столбцов и отдельно для строк. В таблицу вписывался текст и переставлялись столбцы, а потом строки. При расшифровке порядок перестановок был обратный. Насколько просто выполнялось это шифрование показывает следующий пример:
2 | 4 | 1 | 3 | |
4 | П | P | И | Е |
1 | 3 | Ж | A | Ю |
2 | Ш | Е | С | |
3 | Т | О | Г | О |
исходная таблица
1 | 2 | 3 | 4 | |
4 | И | П | Е | Р |
1 | A | 3 | Ю | Ж |
2 | Е | С | Ш | |
3 | Г | Т | О | О |
1 | 2 | 3 | 4 | |
1 | A | 3 | Ю | Ж |
2 | Е | С | Ш | |
3 | Г | Т | О | О |
4 | И | П | Е | Р |
Получается шифровка АЗЮЖЕ СШГТООИПЕР. Ключом к этому шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы. Число вариантов двойной перестановки тоже велико: для таблицы 3х3 их 36, для 4 х 4 их 576, а для 5 х 5 их уже 14400. Однако двойная перестановка очень слабый вид шифра, легко читаемый при любом размере таблицы шифрования.
Выдающимся английским философом и изобретателем Роджером Бэконом, предвосхитившим многие позднейшие открытия (наиболее значительное из его изобретений - очки, которые он предложил в 1268 году), был найден состав черного пороха. Так почему же традиционно считают его изобретателем Бертольда Шварца, по преданиям казненного императором Венцеславом на пороховой бочке? Карамзин по этому поводу писал: "Нет сомнения, что и монах Рогер Бакон за 100 лет до Бартольда Шварца умел составлять порох: ибо ясно говорит в своем творении de nulitate Magiae о свойстве и силе оного". Дело в том, что средневековые ученые, сделав открытие, отнюдь не всегда спешили его опубликовать в письмах коллегам, как это было тогда принято при отсутствии периодических научных изданий. Нередко ту часть открытия, которую теперь называют know how, они шифровали анаграммой, переставляя буквы сообщения по известному только им ключу. Например, названия древней и современной столиц Японии в русском написании тоже представляют собой анаграмму: КИОТО - ТОКИО.
В упомянутом труде Бэкона состав пороха был приведен в виде зашифрованной анаграммы, которую до появления сверхбыстродействующих ЭВМ не удавалось вскрыть, и слава открытия поэтому приписывалась Шварцу. Гораздо более сложная проблема возникает с приписываемым Галилео Галилею открытием спутников Юпитера. Долгое время приведенная им анаграмма читалась так: "Высочайшую планету двойною наблюдал", но в 1960-х годах с применением компьютеров при расшифровке был получен иной вариант прочтения: "Привет вам, близнецы, Марса порождение!" Конечно, от- крытие Фобоса и Деймоса на слабеньком телескопе за два с половиной столетия до американца Асафа Холла - событие мало реальное, но кто знает? Описал же Свифт в "Путешествиях Гулливера" спутники Марса за полтораста лет до астрономов с поразительной точностью! Может быть Свифт знал результаты Галилея, которые сейчас неизвестны? Шифры перестановки чрезвычайно коварны в том смысле, что могут дать несколько вариантов осмысленного прочтения, если не знать точного значения ключа.
Какие же шифры применялись еще средневековыми учеными? На известной гравюре Дюрера "Меланхолия" позади грустящего ангела изображен магический квадрат, заполненный цифрами. Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. Считалось, что созданные с их помощью шифровки охраняет не только ключ, но и магическая сила. Вот пример магического квадрата и его шифровки:
16 | 3 | 2 | 13 |
5 | 10 | 11 | 8 |
9 | 6 | 7 | 12 |
4 | 15 | 14 | 1 |
О | И | Р | Т |
З | Ш | Е | Ю |
Ж | А | С | |
Е | Г | О | П |
Широкое развитие торговли в средние века потребовало специфических шифров, предельно простых и удобных, которыми могли бы пользоваться купцы для передачи, например, даты приезда или цены товара. Это были простые шифры замены цифр на буквы, основанные на ключевом слове. Собственно, это коды. а не шифры - вспомните обозначение месяцев на банках консервов, но код, примененный единожды с неизвестной таблицей кодирования, схож по свойствам с шифром. Торговцы заранее договаривались об использовать общее ключевое слово, буквы которого соответствовали бы цифрам. Например, для ключа РЕСПУБЛИКА цифра 0 означает букву Р, цифра 1 означает Е, 2 - С, 3-Н и так далее. Поэтому получив от корреспондента сообщение ПРИБЫВАЮ ЕЛРПАС, они его читали как ПРИБЫВАЮ 16/03/92. Простота и удобство этой системы шифрования позволили ей дожить до начала этого века без всяких изменений.
Другой шифр, обычно называемый шифром Гронсфельда, состоит в модификации шифра Цезаря числовым ключом. Для этого под сообщением пишут ключ. Если ключ короче сообщения, то его повторяют циклически. Шифровку получают будто в шифре Цезаря, но отсчитывая необязательно только третью букву по алфавиту, а ту, которая сдвинута на соответствующую цифру ключа. Так, применяя в качестве ключа группу из трех начальных цифр числа "пи", а именно 314, получаем шифровку:
сообщение | СОВЕРШЕННО СЕКРЕТНО |
ключ | 3143143143143143143 |
шифровка | ФПЖИСЬИОССАХИЛФИУСС |
Архитекторы и исследователи Италии эпохи Возрождения считают, что один из самых важных этапов ренессансной архитектуры связан с именем Леона Батиста Альберти, написавшем десять книг о зодчестве, построившим палаццо Ручеллаи, церковь Иль Джезу и ряд других замечательных произведений зодчества средневековой Италии. Будучи теоретиком искусства, он обобщил опыт гуманистической науки в изучении античного наследия, написав ряд трактатов: "О статуе", "О живописи", "О зодчестве". С другой стороны, криптологи всего мира почитают его отцом своей науки. Главным достижением Альберти в криптологии было изобретение многоалфавитной замены, сделавших шифровку очень устойчивой к вскрытию. Кроме самого шифра он еще подробно описал устройства из вращающихся колес для его реализации. Этот шифр можно описать таблицей шифрования, иногда называемой таблицей Виженера, по имени Блеза Виженера, дипломата XVI века, который развивал и совершенствовал криптографические системы:
АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ | |
А | АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ |
Б | _АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ |
В | Я_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ |
Г | ЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ |
....... | |
Я | ВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ |
_ | БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А |
сообщение: | ПРИЕЗЖАЮ ШЕСТОГО |
ключ: | АГАВААГАВААГАВАА |
шифровка: | ПНИГЗЖЮЮЮАЕОТМГО |
Многие историки считают Иоганна Трисемуса, аббата из Германии, вторым отцом современной криптологии. В 1508 году Трисемус написал "Полиграфию", первую печатную работу по криптологии. В ней он первым систематически описал применение шифрующих таблиц, заполненных алфавитом в случайном порядке. Для получения такого шифра обычно использовались ключевое слово или фраза и таблица, которая для русского языка может иметь размер 5 х 6. Ключевое слово вписывалось в таблицу по строкам, а повторяющиеся буквы отбрасывались. Таблица дозаполнялась не вошедшими в нее буквами алфавита по порядку. Поскольку ключевое слово легко хранить в памяти, то такой подход упрощал процессы шифрования и дешифрования. Для ключа РЕСПУБЛИКА таблица будет иметь следующий вид:
Р | Е | С | П | У | Б |
Л | И | К | А | В | Г |
Д | Ж | 3 | М | Н | О |
Т | Ф | Х | Ц | Ч | Ш |
Щ | Ь | Ы | Э | Ю | Я |
Для описанного выше шифра Полибия с данной таблицей сообщение ОТПЛЫВАЕМ давало шифровку ШЩАДСНМИЦ. Такие табличные шифры называются монограммными, так как шифрование ведется по одной букве. Трисемус первым заметил, что можно шифровать по две буквы за раз. Такие шифры были названы биграммными. Наиболее известный шифр биграммами называется Playfair. Он применялся Великобританией в Первую мировую войну. Опишем его на примере той же самой таблицы. Открытый текст разбивался на пары букв (биграммы) и текст шифровки строился из него по следующим двум очень простым правилам.
1. Если обе буквы биграммы исходного текста принадлежали одной колонке таблицы, то буквами шифра считались буквы, которые лежали под ними. Так биграмма УН давала текст шифровки ВЧ. Если буква открытого текста находилась в нижнем ряду, то для шифра бралась соответствующая буква из верхнего ряда и биграмма ОЯ давала шифр ШБ. (Биграмма из одной буквы или пары одинаковых букв тоже подчинялась этому правилу и текст ЕЕ давал шифр ИИ).
2. Если обе буквы биграммы исходного текста принадлежали одной строке таблицы, то буквами шифра считались буквы, которые лежали справа от них. Так биграмма ИВ давала текст шифровки КГ. Если буква открытого текста находилась в правой колонке, то для шифра бралась соответствующая буква из левой колонки и биграмма ОМ давала шифр ДН.
Если обе буквы биграммы открытого текста лежали в разных рядах и колонках, то вместо них брались такие две буквы, чтобы вся четверка их представляла прямоугольник. При этом последовательность букв в шифре была зеркальной исходной паре. Например, СТ шифровалось как РХ, а ТБ шифровалось как ШР. При шифровании фразы ПУСТЬ КОНСУЛЫ БУДУТ БДИТЕЛЬНЫ по биграммам получается такая шифровка:
ПУ | СТ | ЬК | ОН | СУ | ЛЫ | БУ | ДУ | ТБ | ДИ | ТЕ | ЛЬ | НЫ |
УБ | РХ | ЫИ | ДО | ПБ | КЩ | РБ | HP | ШР | ЖЛ | ФР | ИЩ | ЗЮ |
Среди шифров средневековья встречается много курьезов. Леонардо да Винчи шифровал большинство своих личных записей. Самый простой вид шифра которым он пользовался, это обратное написание текста так, что прочесть его можно лишь в отражении зеркала. Однако Леонардо иногда использовал шифры и посерьезнее, поэтому далеко не все его заметки и записи расшифрованы и изучены. Люди, умеющие писать левой рукой справа налево зеркальный текст, нередки. Изумительно, но встречаются люди, которые умеют даже произносить фразы "наоборот" и понимать их на слух. Поистине, человеческим способностям нет и не будет предела!
В средние века появляются профессиональные и даже потомственные криптографы, вроде семейства Ардженти, служившего у папы Римского.
Многие выдающиеся математики, начиная с тех времен, стали привлекаться к криптографической службе. В России великому Леонарду Эйлеру при Анне Иоанновне кроме математики приходилось заниматься еще и криптографией, и астрологией. Именно ему историки приписывают знаменитый гороскоп Ивана VI.
Во Франции таким математиком был Франсуа Виет, основатель современной элементарной алгебры, его теорему о корнях и коэффициентах квадратных уравнений до сих пор изучают в школе. Описывая времена Генриха IV, даже видные литераторы, Мериме и Цвейг, делают явный промах: увлеченно повествуя, как перехватываются и читаются тайные послания, они забывают главное, что искусство криптографии тогда было необычайно высоко развито и сообщения зашифрованные Франсуа Вистом, сеньором Биготьерским, вскрыть никто из современников не мог. В то же самое время он легко читал все шифровки испанского двора, а это, говорят, вызвало жалобу Филиппа II папе Римскому на использование французами черной магии или нечистой силы.
Тем не менее папы Римские сами не чуждались услуг криптографов и выдающийся итальянский математик Джероламо Кардано, имя которого дошло до нас благодаря изобретенному им шарнирному механизму и первой публикации о методе решения уравнений третьей степени, состоял у них на службе. Его перу принадлежит несколько книг по криптографии и описание метода трафаретов, который будет рассмотрен ниже. Если учесть род занятий Кардано, становится понятным, почему, выведя гороскоп Христа, он остался недоступным инквизиции, сжегшей Бруно и судившей Галилея за куда меньшую ересь: эка, невидаль, что Земля вертится! Жизнь и смерть Джероламо полны легенд. Больше всего современников в Кардано поражал дар предвидения, благодаря которому он безмятежно перенес казнь своего сына и потерю крупного состояния. Вероятно, хотя бы отчасти его мистический талант знать будущее объясняется принадлежностью к криптографической службе, знающей все, что можно узнать. Но вот, предсказав продолжительность своей жизни в 75 лет, он в назначенный год покончил самоубийством, оставив записку: "Если и неверно, то неплохо придумано".
Увлечение теорией магических квадратов привело Кардано к открытию нового класса шифров перестановок, названных решетками или трафаретами. Они представляют собой квадратные таблицы, где четверть ячеек прорезана так, что при четырех поворотах они покрывают весь квадрат. Вписывание в прорезанные ячейки текста и повороты решетки продолжаются до тех пор, пока весь квадрат не будет заполнен. Например, на рисунке ниже показан процесс шифровки решеткой 4 х 4. Черными квадратами обозначены непрорезанные ячейки, а повороты осуществляются по часовой стрелке на указанный ниже угол:
**П* | З*** | *** | *Т** | ЗТП |
***Р | *Ж** | **Ш* | О*** | ОЖШР |
*И** | ***А | Е*** | **Г* | ЕИГА |
Е*** | **Ю* | *C** | ***О | ЕСЮО |
0' | 90' | 180' | 270' | шифp |
В Англии XVII века возглавлял криптографическую службу математик Джон Валлис, основавший исчисление бесконечно малых, но получивший научное признание и профессуру в Оксфорде не за химерические бесконечно малые, а за редкостные успехи в расшифровке. В Германии же лучшим криптографом тогда был Лейбниц, основатель Берлинской академии наук, языковед и математик, один из создателей дифференциального исчисления, к имени которого мы еще вернемся позже в связи с развитием криптографии в России. Одно время его высокий покровитель, ганноверский курфюрст Георг 1, став королем Англии, хотел пригласить Лейбница на британскую криптографическую службу, но Валлис был там незаменим и утечка континентальных "мозгов" на запад не состоялась. Лейбницу не подфартило стать главным криптографом Англии может быть и потому, что Ньютон, оспаривающий его авторство в дифференциальном исчислении, единолично заправлял в Королевском научном обществе и изо всех сил преследовал менее именитого иностранного конкурента. Другой раз Лейбницу не повезло с приглашением в Петербург для организации русской криптографической службы. Неожиданная его болезнь и смерть расстроили планы Петра 1, активно вербовавшего нужных России ученых. Человеком, сумевшим завершить развитие криптографии в отдельную научную дисциплину, стал по-видимому однофамилец Роджера Бэкона - Френсис Бэкон. Будучи лордом-канцлером при короле Якове 1, он хорошо знал потребности государства в надежных шифрах, и его первая талантливая работа, относящаяся к 1580 году, в дальнейшем получила блестящее практическое развитие. В частности, именно он впервые предложил двоичное кодирование букв латинского алфавита - то же самое, которое используется сейчас в компьютерах.
Такой заботливый уход за пустившей первые ростки криптографией привел к тому, что она скоро стала давать плоды. Разгром Великой Армады в 1588 году в значительной степени был обусловлен мощью английской криптографической школы, легко ломавшей испанские шифры и сообщавшей о всех передвижениях неприятельских судов.
Криптография была известна и применялась во многих слоях общества Британии. Лондонец Самуэль Пепис (1633-1703) всемирно известен своим дневником, по которому историки пишут труды о переходе от Пуританства к Реставрации. Искусствоведы включили это произведение в мировую сокровищницу литературы. Пепис окончил Кембридж благодаря кузену отца - адмиралу Монтегю и имел много друзей: ученого Исаака Ньютона, архитектора Кристофера Рена, поэта и драматурга Джона Драйдена. Пепис был лично свидетелем таких незабываемых для Англии событий, как возвращение короля Чарльза II в Англию, большая чума 1664 года, пожар Лондона 1666 года, революция 1688 года. Интересно, что его мемуары были зашифрованы по системе криптолога Томаса Шелтона и дополнительно собственным шифром Пеписа, поскольку содержали много скандальных фактов о великих современниках. Вместе с его личными книгами и бумагами дневник после смерти писателя попал в Кембридж, где сразу же привлек внимание исследовелей. Первый успех в его расшифровке был получен лишь в 1822 году, а полностью она завершена в 1899 году. Таким образом, к XVIII веку ипкриптография окончательно сложилась в виде самостоятельной науки. Однако несмотря на наличие профессиональных криптологов, находящихся на государственной службе, и постоянного использования шифров в дипломатии и военном деле, криптология еще не вышла из младенческого возраста и ею могли заниматься лишь избранные, одаренные одиночки.
Тайнопись
Начиная с давних времен, люди обменивались информацией, посылая друг другу письма. Древним новгородцам приходилось сворачивать свои берестяные грамотки текстом наружу - только так они могли перевозиться и храниться, не разворачиваясь самопроизвольно от изменения влажности. Это походило на современные почтовые карточки, где текст тоже открыт для посторонних взоров. Пересылка берестяных грамот была широко распространена, но имела серьезный изъян, содержимое посланий не было защищено ни от своекорыстных интересов, ни от неуемного любопытства иных людей. Поэтому со временем послания стали свертывать особо, так, чтобы текст оказывался внутри. Когда же и это казалось недостаточным, то письмо запечатывали восковой, а в позднейшее время сургучной личной печатью. Печати всегда были не столько в моде, сколько в повседневном обиходе. Они обычно выполнялись в виде перстней с рельефными изображениями, и Эрмитаж в античном отделе хранит их множество. Печати, придуманы по уверениям некоторых историков китайцами, хотя древние камеи Вавилона, Египта, Греции и Рима ничем от печатей не отличаются. Воск прежде, а сургуч и поныне помогают поддерживать секреты почтовой переписки.
Точных дат и бесспорных сведений о секретном письме в древности сохранилось очень мало и в этой книге многие факты даны через художественный анализ. Однако вместе с шифрами были, само собой разумеется, и попытки сокрытия текста. В древней Греции для этого однажды обрили раба, написали на его голове, и, когда волосы отросли, отправили с поручением к адресату. Отзвук этой истории можно встретить в "Гиперболоиде инженера Гарина" Алексея Толстого, где текст нанесли на спину мальчика. Если же гонец был надежен и даже под пытками не выдал бы послания, то его изложение могло быть изустным. Боярин Иван Фрязин, в 1469 году выступая сватом Великого князя Иоанна к Софье (Софья - племянница и наследница последнего византийского императора Костантина Палеолога, принесшая России свой герб в виде двуглавого орла как приданое.), имел грамоту следующего содержания: "Сиксту, Первосвятителю Римскому, Иоанн, Великий князь Белой Руси, кланяется и просит верить его послам".
Опишем кратко, но не будем дальше рассматривать сообщения симпатические, латентные или скрытые. Они могут быть сделаны специальными техническими средствами, как передача остронаправленным лучом, надпись бесцветными чернилами, проявляющаяся лишь после специального физического или химического воздействия. Именно скрытые сообщения принято называть тайнописью, но не шифры. Популярные исторические книжки сообщали, что российские революционеры в тюрьмах использовали в качестве симпатических чернил даже обычное молоко - и это правда. При нагревании на огне или горячим утюгом такие записи становились отчетливо видны. (Дейл Карнеги полагал, что для "проявления" такой тайнописи достаточно было погрузить письмо в горячий чай. Здесь он не прав, что читателям просто проверить на кухне.) Литератор Куканов в своей повести о Ленине "У истоков грядущего" рассуждал так: "Молоко в роли чернил - не самый хитрый способ тайнописи, но порой, чем проще уловка, тем она надежнее".
Заглянем же теперь в документ под номером 99312 из архива российской охранки: "Переписка химией состоит в следующем. Пишут на шероховатой, не глянцевой бумаге. Пишут сначала обыкновенными чернилами какой-нибудь безразличный текст, то есть что-либо совершенно безобидное, ни слова о делах. Когда это письмо написано, то берут совершенно чистое мягкое перо и пишут между строками, написанными чернилами, уже то, что хотят сказать о конспиративных делах. Это конспиративное письмо пишут химическими чернилами, то есть раствором какой-нибудь кислоты...". Была приведена выдержка из письма, сделанного химией революционерами партии РСДРП, которое было отправлено в Россию редакцией газеты "Правды" из Вены. Выявить и прочесть эту тайнопись Департаменту полиции не составляло никакого труда, ведь именно в России были разработаны и развиты способы чтения скрытых и стертых текстов с помощью фотографии и подбора освещения, применяемые и поныне. Интересно, зачем долгие годы упорно распространялась легенда о трудности прочтения "молочной" тайнописи?
Позднее, физик Роберт Вуд предложил использовать для чтения скрытых текстов явление люминесценции, потрясшее эффективностью английские секретные службы, занимавшиеся этой проблемой. Биограф Сибрук со слов Вуда описывает это так:
"Мне принесли большой гладкий чистый штамп военной цензуры. Я натер его вазелином, затем, как следует вытер платком, пока он не перестал оставлять следы на бумаге. Затем, я плотно прижал его к шпионоупорной бумаге, не давая соскользнуть в сторону.
- Можете ли вы обнаружить здесь запись? - спросил я.
Они испытали бумагу в отраженном и поляризованном свете и сказали:
- Здесь ничего нет.
- Тогда давайте осветим ультрафиолетовыми лучами.
Мы взяли ее в кабинку и положили перед моим черным окошечком. На бумаге яркими голубыми буквами, как будто к ней приложили штамп, намазанный чернилами, светились слова: Секретных надписей нет.
Сокрытие текста достигло своих вершин после Второй мировой войны, когда распространились сверхминиатюрные фотографии, называемые микроточками. Одна микроточка размером с обычную точку текста могла содержать сотни страниц документов и найти ее в книге среднего формата было много сложнее, чем пресловутую иголку в стоге сена. Адвокат Рудольфа Абеля, оказавшегося в американской каторжной тюрьме по обвинению в незаконном въезде в США (Обвинение Абелю (Вильям Фишер) в шпионаже не предъявили потому, что за шпионах в США неизбежна смертная казнь, а его попытались обменять на американского шпиона, схваченного впоследствии в СССР. В 1962 году Абель, отсидев в каторожной тюрьме 5 лет из 30, был обменян на пилота-шпиона Пауэрса, сбитого в советском воздушном пространстве.) , хотел продать его конфискованные картины с аукциона, чтобы улучшить положение своего подзащитного хотя бы материально. Однако этого не удалось сделать, так как картины, написанные маслом с применением непрозрачных для рентгеновских лучей. красок, при поиске микроточек непременно были бы разрушены, а сам поиск занял бы годы кропотливой работы ЦРУ. Поэтому в тюрьме Абелю пришлось подрабатывать, рисуя лишь прозрачные акварели. Сейчас нет технических проблем записать текст так мелко, что его вообще нельзя будет прочесть оптическими средствами, а придется рассматривать в электронный микроскоп. Такая технология используется при создании компьютерных микросхем сверхбольшой интеграции. На одном квадратном миллиметре их поверхности можно записать все книги, которые когда-либо были напечатаны человечеством.
Чтобы не сложилось впечатление, что симпатические сообщения бывают лишь у революционеров и шпионов, напомним ряд примеров из области компьютерных скрытых текстов. Наиболее ранняя идея их создания относится к предложению форматировать диск под размер секторов отличный от принятого DOS. Когда же все убедились, что такого рода сокрытие действует на хакеров как красная тряпка на быка, появились более глубокие приемы, где форматирование осуществляла специальная программа, напрямую обращающаяся к накопителю на гибких дисках. В ответ немедленно были созданы программы, которые могли читать любое форматирование. Для сокрытия информации на дискетах широко используются их инженерные дорожки, доступные для чтения, но не воспринимаемые дисковыми операционными системами, а также так называемые короткие зоны и неустойчивые биты (Weak bits - слабые, неустойчивые биты, которые специально записаны на уровне, промежуточном между 0 и 1). Вспомните сообщения о вирусах, которые прячутся в сбойных блоках - это тоже тайнопись своего рода. Кроме того, программой редакции диска можно очень просто дописать информацию в свободной части хвостового кластера файла. Только стоит ли? Уж слишком просто вскрывать. Симпатические сообщения имеют тот недостаток, что их скрытность обусловлена лишь состоянием развития техники, которая стремительно совершенствуется. Прибегая к симпатическим сообщениям, невольно приходится вступать в бесконечное состязание меча и щита, которому нет конца - на каждый щит найдется и поражающий его меч. Любой способ создания симпатического текста будет вскоре разрушен, и к этому нужно быть готовым. А что это за секретность без гарантий стойкости?
Стоит несколько слов сказать и о квантовой криптографии, которая недавно еще представлялась как фантастика, поскольку требуемая для ее реализации технология казалась фантастической. Но когда Беннет и Брэссард в 1982 году пришли к выводу: роль фотона состоит не в хранении, а передаче информации, и можно разработать квантовый канал открытого распределения секретных ключей. В криптографии считается, что линии связи всегда контролируются перехватчиком, которому , известно содержание всех передаваемых сообщений, о чем могут и не знать абоненты. Но, если информация кодируется неортогональными состояниями фотона, то нарушитель не может получить сведений даже о наличии передачи без нарушения целостности ее процесса, что будет сразу же обнаружено. Перехватив фотон, злоумышленник не сможет сделать над ним несколько измерений, так как от первого же фотон разрушится и не даст ключевой информации в необходимом объеме. Поэтому даже активный перехватчик не сможет правильно передать аналогичный фотон получателю так, чтобы перехват не был бы замечен.
Дискуссия о тайнописи в неожиданном аспекте прозвучала, когда правительство США попыталось недавно ограничить или вообще запретить свободное применение криптографии. Однако, возражали оппоненты, полный ее запрет не повлечет за собой прекращение секретной связи. Во многих каналах коммерческой связи поток помех значительно превышает долю шифруемой секретной информации. Поэтому шифрованные секретные биты станут прятать в обычных сообщениях, имитируя небольшое увеличение шума. Приводился пример: в одном цифровом снимке Kodak Photo содержится около 18 мегабайт информации, и умело произведенное сокрытие в нем мегабайта шифровки практически не ухудшит качества изображения. Прятать шифровки очень просто потому, что они ничем не отличимы от обычного шума или помех в каналах связи. Если обычная тайнопись легко читается, то тайнопись шифрованного сообщения, замаскированного под шум или сбои, найти невозможно. Интересный вариант тайнописной шифровки был использован при печати на ЭВМ контрактов с клиентами в одной из московских компаний. За счет малозаметных искажений очертаний отдельных символов текста в него вносилась шифрованная информация об условиях составления контракта. Эта тайнопись выглядела как обычные незначительные дефекты печати и обеспечивала очень высокую степень защиты подлинности документа. В связи с указом Ельцина об аттестации шифрованной связи. пытающимся фактически предельно ограничить ее применение, можно предположить, что ФАПСИ теперь придется не только взламывать шифры, но и отыскивать их во тьме помех дрянных каналов связи, предоставляемых коммерсантам.
Угрозы данным
В принципе есть лишь два вида угрозы: раскрытие и видоизменение данных. Раскрытие данных предполагает, что кому-то случайно или после целенаправленных действий стал известен смысл информации. Этот вид нарушения встречается наиболее часто. Последствия могут быть самые разные. Если похищен текст книги справочника, на которую потрачены месяцы работы десятков людей, то для коллектива авторов это катастрофа и потери могут выражаться в тысячах долларов. Однако если книга уже издана, то достаточно лишь слегка пожурить похитителя и рассказать о случившемся в отделе новостей газеты или TV, похититель может сделать книге великолепную рекламу. Очень важную информацию, тщательно оберегаемую от раскрытия, представляют сведения о людях: истории болезни, письма, состояния счетов в банках. Однако, по мнению большого числа специалистов, угрозы личности с введением компьютеров остались на том же уровне и в том же состоянии, что и до обширного использования ЭВМ.
Рассмотрим виды потерь, возникающие от раскрытия информации. Обычно данные о людях наиболее важны для них самих, но, как бы это не описывали в шпионских фильмах, мало что значат для похитителей. Иногда личные данные могут использоваться для компрометации не только отдельных людей, но целых организаций, например, если выяснится скрываемая прежняя судимость за растрату директора коммерческого банка. Но тот, кто компрометирует, не имея твердой моральной основы для этого, в большинстве случаев теряет больше самого компрометируемого. Лишь малая кучка профессиональных негодяев из адвокатов и журналистов, которым уже нет дела до своего морального облика, наживается, занимаясь компрометацией. Тем не менее информация о людях ценна сама по себе, основной убыток от ее разглашения - личное несчастье человека. Другое дело - раскрытие стратегической управляющей информации. Если вскрыт долгосрочный план развития производства или анализ конъюнктуры на рынке, то потери для держателя этой информации будут невелики, но для конкурентов такие сведения очень важны. Думается, что хотя несанкционированное чтение данных бывает довольно часто, но редко когда приносит существенный вред, так как часто делается без злого умысла - случайно или из любопытства.
Искажения информации представляют существенно большую опасность. Во многих организациях жизненно важные данные хранятся в файлах: инвентарные описи, графики работ, списки заказов. Если такие данные будут искажены или стерты, то работа надолго парализуется. Самое опасное в этом то, что в примитивных криптографических системах необходимые для этого искажения могут быть сделаны и без знания ключа. Поэтому серьезные шифры должны гарантировать не только устойчивость их раскрытия, но и невозможность незаметной модификации одиночного бита. Владение ключом открывает полный доступ к данным - тогда можно скомпрометировать бухгалтерскую или конструкторскую систему, чуть исказив десяток-другой чисел, или удалить сведения о реальном движении товара, чтобы счет за него не был выставлен. Похоже, что наиболее уязвима для искажения информация экономического характера, где потери могут быть чрезвычайно велики. Самое первое компьютерное преступление в нашей стране было именно этого типа и принесло прямые убытки в десятки тысяч рублей, когда в конце семидесятых, один из прибалтийских банков обнаружил у себя недостачу наличных денег. Руководителям крупных научных и программных проектов следует помнить, что большую опасность для их данных представляют не конкуренты, а собственные сотрудники. По различнейшим причинам они могут уничтожить или исказить окончательный проект. Совсем неожиданный случай произошел в фирме IBM, которая привезла в Австралию заказанную ей программную систему. После предварительного успешного опробования состоялась демонстрация, на которой система оказалась неработоспособной. Расследование выяснило, что один программист во время опробования нашел в своей программе ошибку и тайно внес исправления в тщательно охраняемую копию системы. Он не знал, что ошибка уже корректировалась другими программами и получившаяся во время демонстрации двойная коррекция чуть не обошлась IBM в миллион долларов. Таким образом, критические данные обязательно должны храниться в шифрованном виде или хотя бы подтверждаться имитоприставкой иди цифровой подписью, чтобы исключить искажения.
Уровни безопасности сетевых систем
Достаточно детально удалось ознакомиться лишь с шестью сетевыми операционными системами клиент-сервер, применяющихся на машинах IBM PC в России: UNIX, NetWare, VINES, LAN Server, LAN Manager и Windows NT. Конечно, такой выбор имеет сильное ограничение, но нельзя объять необъятное и пришлось ограничиться лишь наиболее динамично развивающимся направлением. Из этих систем лишь VINES обладала встроенной системой шифрования данных на сервере и была достаточно надежна к проникновению. Хотя компании, продающие LAN Server и NetWare, заверяли в существовании утилит шифрования данных на сервере, тем не менее, этого автору своими глазами увидеть не удалось ни в этих фирмах, ни где-то еще. Несколько больше дефектов по сравнению с другими сетевыми ОС в безопасности системы можно обнаружить у NetWare, хотя это явно связано с ее широкой популярностью и предельной изученностью. Из многолетних поисков идеальной системы автор сделал для себя вывод, что если какую-то систему долго и упорно ругают, то это означает лишь, что жива еще курилка и неплохо себя чувствует. Еще одно положительное свойство NetWare - передача пароля со станции на сервер в хорошо зашифрованном виде, что затрудняет его расшифровку при перехвате пакетов. Все указанные системы способны обеспечить приемлемый уровень безопасности данных при надлежащей эксплуатации.
Обычно безопасность компьютерных систем классифицируется в соответствии с критериями Национального центра компьютерной защиты США, названными "оранжевой книгой". Они позволяют оценивать системы по относительному уровню безопасности и определяют четыре уровня защиты А, В, С и D в порядке убывания надежности. Так как фактически уровней безопасности больше, то буквы модифицируются цифрами от 1 до 3. Например, классификация А1 обозначает наиболее безопасные системы, С2 - достаточную безопасность и D - минимальную. Опишем кратко свойства систем разных уровней, рассматривая их сверху вниз.
Уровень А. Уровень А1 является высшим в защите систем. Он отличается от уровня ВЗ лишь надежным распределением и дополнительными гарантиями безопасности.
Уровень В. Уровень В1 отличается от С2 тем, что доступ к данным контролируется не только правами передающего пользователя, но и принимающего. То есть нельзя передать права на доступ к данным лицу, которое не имеет на это прав. В классе В1 реализуется стратегия защиты данных и утилиты защиты четко отделены от других программ. Уровень В2 улучшает защиту уровня В1 тем, что пользуется математическим описанием функций защиты и реализует правило наименьших привилегий, в соответствии с которым для выполнения предоставленных пользователю прав он должен обладать наименьшими возможными привилегиями наименьшее возможное время. На этом уровне в защиту вовлекаются все объекты системы и в первую очередь аппаратные средства. Уровень ВЗ расширяет уровень В2 тем, что гарантии защиты более строгие. Требуется выделенный администратор защиты системы, а также процедуры восстановления после сбоя и оповещения администратора о нарушении защиты.
Уровень С. На уровне С1 система обеспечивает так называемую дискреционную защиту. Это означает, что все пользователи, совместно обрабатывая данные, имеют одинаковые права. Это предупреждает неумышленную порчу данных друг друга, но не спасает от вторжения хакера. В таких системах каждый пользователь имеет свой пароль и может защищать свои данные, определяя, кому он доверяет доступ к ним. Считают, что простые UNIX системы имеют уровень С1. На уровне С2 система несколько строже, так как обеспечивает контролируемый доступ. Это означает, что права доступа к данным могут быть переданы лишь отчасти: кому-то только чтение, а кому-то еще и сетевыми. Важный элемент защиты таких систем - защита данных в памяти и на диске даже от подглядывания посторонними.
Уровень D. На уровне D к системе не предъявляется специальных требований и может не проводиться сертификация. Таким образом, уровень D - системы, не соответствующие более высоким классам защиты, или незащищенные. К таким системам относится, например, MS DOS.
Эта классификация иерархическая в том смысле, что системы высоких уровней секретности обеспечены всеми механизмами защиты более низких уровней. Хотя эта классификация используется в основном для военных систем, она неизбежно распространяется и на гражданские и коммерческие системы. Эта классификация уже была применена к операционной системе UNIX, которая сейчас является обязательной для большинства военных и правительственных проектов в США. Есть еще ряд классификаций секретности, но они мало что добавляют к уже сказанному.
Операционные системы для одноуровневых локальных сетей абсолютно все от LANtastic и Personal NetWare до Windows for Workgroup не отвечают даже намекам на безопасность. Более того, даже целесообразность применения на них криптографической защиты в виде NDisk из NU вызывает серьезное сомнение. Изрядное потрясение автор испытал, когда увидел, как просто проникнуть на чужой секретный диск в NWLite и пришел к грустному убеждению, что нельзя такого рода секретные диски держать под одноранговой сетью. Из этих систем особняком выделяется отечественный SECRET DOS, называемый еще SDOS, который представляет собой комплекс средств обеспечения безопасности компьютерных систем, построенных на базе IBM PC и операционной системы MS-DOS. SDOS может использоваться как на автономных компьютерах, так и на ЭВМ в составе локальных вычислительных сетей. Эта система предназначена для защиты информации от несанкционированного доступа и противодействия попыткам нарушения нормального режима работы вычислительной сиртемы. В целом она не дотягивает до уровня С1 и имеет следующие отличительные особенности не только рекламного характера:
частичная аппаратная поддержка механизма идентификации;
неплохое разграничение доступа для пользователей и групп;
автоматическое стирание остаточной информации;
малые требуемые ресурсы - около 4 килобайта RAM.
Применение SDOS под одноранговой сетью может существенно усилить ее секретность, хотя, как и любое решение, не снимает всех проблем. К несомненному достоинству SDOS можно отнести и то, что пользователи охотно расстаются с ней, когда она разваливается от сбоев и не требуют ее восстановления.
Следует отметить, что ряд фирм выпускает по-настоящему секретные сетевые программно-аппаратные средства, великолепно защищенные криптографически. Так, фирма Harris выпускает защищенную локальную вычислительную сеть LAN/SX и программные средства управления, формирующие защищенную вычислительную среду SX для многопроцессорных ЭВМ NightHawk этой же фирмы. Цена аппаратных и программных средств сетевого центра обеспечения безопасности примерно $25000, контроллеров индивидуальной криптографической защиты $5000, а программных средств $2500 за рабочее место. Число чисто программных решений значительно больше. Корпорация OpenVision продает продукт OpenVSecure на основе технологии Kerberus, обеспечивающий защиту сетей, по цене около $300 за станцию и $3000 за сервер. Фирма CyberSafe, выделившаяся из широко известной компании Open Computing Security Group, тоже на основе технологии Kerberus выпускает для широкого спектра платформ систему Challenger по ценам от $100 для станций и до $5000 для расширенных серверов. Компания Axent Technologies продает системы защиты для разных платформ под общим названием OmniGuard по ценам от $400 за станцию и до $4000 за сервер. За действительно безопасную систему нужно выложить несколько сотен тысяч долларов, поэтому неудивительно, что купившие их фирмы обычно не могут свести концы с концами по завершению финансового года.
Теперь на примере NetWare кратко опишем использование функций обеспечения секретности. Защита информации в NetWare 3.11 организована по перекрывающимся уровням: файлы - директории - пользователи - группы. Администратор может сгенерировать систему защиты настолько сложной, насколько требуют конкретные условия. Хотя вряд ли она способна превысить уровень С2 в стандартной поставке, но и это очень неплохо. Очень важно, что конкретный пользователь может быть ограничен в работе по времени, к доступным ему рабочим станциям занимаемой дисковой памятью и числом попыток регистрации. У автора из практики сложилось мнение, что число попыток регистрации больше 2 вредно. Статистика показывает, что в 97% случаях пользователи входят в систему с первой же попытки набора пароля, в 2% со второй, а дальнейший перенабор пароля мало чем помогает. В то же самое время блокировать дальнейшие попытки набора. нужно на срок не менее часа - обеденного перерыва. Для оставшегося 1% удобнее всего предусмотреть эквиваленты для разового использования, выдавать их разиням и уничтожать в конце дня, меняя пароль. NetWare 3.11 хороша также и тем, что разумно проверяет пароль пользователя, защищая от ввода уже побывавшие в употреблении. Длина пароля может быть установлена в зависимости от требований секретности. Для повышенной секретности длина пароля не должна быть короче 12 символов, когда пользователь вынужден задавать пароли не словом, а хотя бы фразой. Принципиально слабое место NetWare - атрибут, запрещающий копирование файлов. Он не выдерживает даже такой атаки, как применение DiskEdit из нортоновских утилит. Поэтому нужно помнить, что любая информация, предоставляемая пользователю лишь на просмотр, может быть им скопирована.
Несмотря на то, что безопасность систем обосновывается лишь теоретически, но проверяется она только практически. Хотите узнать, насколько прочно висит полка - просто потяните за нее. И нет лучшего способа аттестации безопасности системы, чем пригласить пару хакеров взломать ее, не уведомляя предварительно персонал сети. Такая практика стала широко распространяться в США, например, компанией Price Waterhouse. Штурм длится от 2 до 8 недель при солидном гонораре. Наемные хакеры в результате предоставляют конфиденциальный доклад с оценкой уровня доступности информации и рекомендациями по улучшению защиты. Доказать безопасность системы таким приемом все же нельзя, но хотя бы можно ее опровергнуть при явных просчетах, а это уже немало.
Уровни защиты данных
Данные, к которым несанкционированный доступ может быть осуществлен, находятся под защитой. Для того, чтобы достичь их нужно последовательно пройти четыре препятствия, четыре уровня защиты. Рассмотрим их подробнее, в реалиях нашего общества.
Первая преграда, встающая на пути человека, пытающегося осуществить несанкционированный доступ к информации, чисто правовая. Этот аспект защиты информации связан с соблюдением этических и юридических норм при передаче и обработке информации. В то же самое время законы, которые бы встали на защиту информации, находящейся в компьютере, у нас в стране только еще разрабатываются. Может преследоваться незаконное использование секретных данных или информации, составляющей объект авторского права, но никак не копирование чужих файлов. Поэтому этический момент в соблюдении защиты имеет чрезвычайно большое значение. Однако если в телехронике будет опубликовано состояние счетов наиболее состоятельных клиентов банка из правительства, которые стали известными после вскрытия пароля и копирования файлов неким хакером, то, думаете, кто-нибудь осудит его поступки кроме, может быть, пострадавших? Многие годы нам внушали, что информация - нематериальный объект, следовательно, цены у него нет. Кроме того, при копировании исходный файл не пропадает, так где прямой ущерб? В начале восьмидесятых годов был характерный случай: отделение банка хотело подать в суд на своего программиста, кото- рый, повздорив с руководством, стер с магнитных лент важные данные. В возбуждении дела было отказано - нет материального ущерба, вот если бы хоть одна лента была похищена, то другое дело.
Государство слишком долго уверяло программистов, что их труд ничего не стоит. Нельзя ожидать, что годами практикуемая система ценностей будет быстро сменена вместе с правилами игры. Итак, первого барьера нет. Тем не менее, очень важно, чтобы среди людей, имеющих доступ к ЭВМ, был здоровый этический климат - ясно объясните им, что означает несанкционированное копирование Ваших данных!
Большое препятствие организации борьбы с современным хакерством чинит международное разделение. Когда произошел взлом Сити-банка, то жертва находилась в США, сеть коммуникаций была финской, хакер жил в России и был арестован в Шотландии. Хакерство часто переходит национальные границы. Это международное измерение создает большие юридические препятствия эффективному противодействию хакерам. Внутренний компьютерный разбой не имеет таких проблем и с юридической точки зрения ничем не отличим от обычной преступности. Но если место компьютерного преступления за рубежом или подозреваемые действовали из другой страны, то традиционные концепции суверенитета строго ограничивают применимость национального уголовного права и юрисдикции.
Второй барьер, препятствующий неправомочному использованию информации, административный. Руководители всех рангов с учетом правовых норм и социальных аспектов определяют, кто и какую информацию может собирать и хранить, устанавливают способы доступа к ней и ее распространения, права и обязанности лиц, их ответственность и процедуры выдачи разрешений на использование данных. Хотя многие решения руководства определяются внешними факторами, как политика, законы или постановления местных органов власти, но большинство проблем решается внутри организации именно так, как этого хочет администрация. Можно, например, приказом установить порядок обработки информации и списки допущенных к ней лиц, ввести системы защиты от подсматривания и сигнализацию, назначить сторожей и ответственных за безопасность. И до тех пор, пока не будут осуществлены действенные меры административной защиты ЭВМ, прочие меры будут, безусловно, неэффективны. Практическое осуществление административных мер связано главным образом с ограничением доступа людей к ЭВМ и обрабатываемой ей информации. "Не пущать!" - такая должна быть цель этих мер. Пусть организационные меры защиты информации по сравнению с этическими кажутся пресными и скучными, а по сравнению с программными и тех- ническими лишенными конкретности и малоэффективными. Однако они представляют собой мощный барьер на пути незаконного использования информации и основу для других уровней - скопировать данные из компьютера в банке существенно сложнее, чем если бы он находился в учебном институте.
Из-за важности второго барьера защиты остановимся на проблемах его реализации несколько подробнее. Одна из основных причин, по которой трудно проводить в жизнь эффективные административные меры заключается в общественном мнении, что защита информации - новая и необычная задача. Однако защита данных была всегда и во все времена, только осуществлялась иначе, когда не было ЭВМ. Теперь общество превратилось в индустрию информации - в США на нее приходится больше половины общей суммы заработной платы. Быстрота и исполнительность ЭВМ дали почву для возникновения ситуаций, которых не могло быть раньше. Копирование комплекта геологических карт района с указанием разведанных запасов золота раньше занимало недели работы, а теперь может быть сделано за минуту. Другая проблема при введении организационных мер защиты состоит в том, что их реализация создает неудобства для пользователей и, если хлопот много, то эффективность мер будет нулевой - дверь перестанут запирать, список паролей повесят на стену и так далее. При этом стоит помнить, что любые административные меры защиты вызывают у сотрудников ощущение ограничения их гражданских прав и необходимости выполнять дополнительную работу за ту же плату. Поэтому прежде чем приказывать, пробудите в подчиненных желание следовать этим приказам, иначе в отношениях с ними могут возникнуть проблемы. Нужно четко отдавать себе отчет в том, большинство организационных мер защиты основано на физическом преимуществе - нарушителя нужно найти и наказать. Практически все руководители считают, что виновных без персональной ответственности не найти, и это действительно так. Распределяя ответственность, сразу же подумайте о системе проверок выполнения мер защиты, которые должны быть неожиданными и предельно простыми.
Третий уровень защиты - аппаратно-программный. Он состоит в процедуре идентификации пользователя, открывающей доступ к данным и программным средствам. Аппаратная защита может быть выполнена в виде кодовой карточки, обмена вопросами и ответами с дежурным, ключами, жетонами. Эффективность ее вызывает сильные сомнения. Конечно, есть где-то в России машины со съемными винчестерами, которые по окончании работы запирают в сейф... А та защита, которая встречается, как запирание клавиатуры на ключ или пароли при загрузке не выдерживает подчас самых простых атак. Во-первых, обычно из 10 ключей, блокирующих клавиатуру ЭВМ, минимум 5 совпадают и, имея связку из 3 отмычек, можно открыть клавиатуру почти любой ЭВМ. Кроме того, автору лишь раз довелось видеть, как употребили ключ - секретарь вставила его в ЭВМ, чтобы было на что повесить амулет. Во-вторых, можно загрузить в ЭВМ с диска А: свою операционную систему, которая скопирует жесткий диск физически. Иногда даже это действие лишнее - популярный в начале девяностых годов администратор диска, запрашивавщий пароль при загрузке, раскалывался, если с дискеты загружали DOS фирмы Digital Research. Некоторые компьютеры, как фирмы Hewlett Packard, имеют вполне надежные замки, блокирующие работу ЭВМ, например, Fort Lock. Дисковод А: при этом может быть либо отключен в BIOS от участия в загрузке, либо тоже блокирован хорошим замком.
В современной литературе по аппаратной защите чего только нет: индивидуальные карточки, пароли, идентификация подписи и голоса - но все это или дорого, или довольно ненадежно. Не доводилось читать или слышать, что такая защита смогла предупредить несанкционированный доступ к данным ЭВМ. Кроме того, слабое место аппаратной защиты - люди. Они не очень-то уважают хитрые железки, создающие им неудобства в работе. Поэтому индивидуальный ключ в виде заглушки с кодированной микросхемой, который должен охранять данные и программы конструкторской системы AUTOCAD от злоумышленников, обычно вставляется один раз и навсегда. А когда автору в системе коллективного пользования RSX нужно было получить несанкционированный доступ к системным ресурсам, то он попросил оператора установить свою задачу. Отказать в такой пустяковой услуге оператор не могла, хотя установленная привилегированная задача открыла черный вход к сердцу системы - диспетчеру памяти.
Последний, четвертый уровень защиты - криптографический. В нашем контексте он представляют собой шифрование данных с целью скрыть и смысл. До тех пор, пока пользователь не идентифицирован по ключу, смысл данных ему недоступен. Данные в этом случае рассматриваются как сообщения, и для защиты их смысла используется классическая техника шифрования. Криптография предполагает наличие трех компонентов: данных, ключа и криптографического преобразования. При шифровании исходными данными будет сообщение, а результирующими - шифровка. При расшифрований они меняются местами. Считается, что криптографическое преобразование известно всем, но, не зная ключа, с помощью которого пользователь закрыл смысл сообщения от любопытных глаз, требуется потратить невообразимо много усилий на восстановление текста сообщения. (Следует еще раз повторить, что нет абсолютно устойчивого от вскрытия шифрования. Качество шифра определяется лишь деньгами, которые нужно выложить за его вскрытие от $10 и до $1000000.) Такое требование удовлетворяется рядом современных криптографических систем, например, созданных по "Стандарту шифрования данных Национального бюро стандартов США" DES и ГОСТ 28147-89. Так как ряд данных критичен к некоторым их искажениям, которые нельзя обнаружить из контекста, то обычно используются лишь такие способы шифрования, которые чувствительны к искажению любого символа. Они гарантируют не только высокую секретность, но и эффективное обнаружение любых искажений или ошибок.
Прежде, чем оценивать меры противодействия доступу к данным без установленных санкций, подведем итоги рассмотрения уровней защиты. Надежду на правовую защиту данных в компьютере не разделяют не только сами юристы, но и яркие оптимисты. Верхом абсурда было давнее утверждение в статье "Известий" о том, что программист, виновный в двухдневной остановке главного конвейера ВАЗа, понесет юридическую ответственность. Его тогда могли лишить работы и квартиры, вышвырнуть детей из школы или детсада, отправить на непрерывные армейские сборы, но осудить не смогли бы. В лучшем положении те лица, чьи данные находятся под защитой авторского права, введенного прощальным указом Горбачева в состав "Основ гражданского законодательства..." для уже мифического СССР (Есть уже новый проект "Основ гражданского законодательства".). Хотя лучшим их положение пока можно считать лишь теоретически. Много надежнее этическая защита. Тот, кто применял TechHelp, конечно же, запомнил обращение к пользователям: "Вы же не хотите, чтобы дети Дана Роллинза копались в помойках, собирая картофельные очистки". Возбудите в своих сотрудниках такие же чувства и безопасность данных от доступа с их стороны будет гарантирована.
Проект Уголовного Кодекса, находившийся весной 1995 года на рассмотрении в Государственной Думе, содержал пять статей, касающихся компьютерных преступлений. Ряд их положений настолько спорен, что вызвал оживленную дискуссию в прессе - за распространение вируса предусматривается отсидка от 3 до 7 лет. Если учесть, что одно инфицирование поражает в среднем 25 компьютеров, то, буквально толкуя этот пункт закона, после известного автору случая появления вируса в Думе, в лагеря надо отправить около 25 законодателей из 3 комитетов на общий срок в 100 лет. Остается лишь надеяться, что новый состав Думы приведет в соответствие с практикой нужные, но наспех и непрофессионально сделанные правовые нормы. Наши депутаты хорошо еще, если наслышаны о консенсусе, а компьютерная безопасность, как и любая ботаника, вне их жизненных интересов. Указы Президента в январе 1995 года о защите информации в сетях и компьютерах неконкретны и до реализации их в виде законов еще далеко. К концу 1995 года ФАПСИ, чувствуя, что теряет не только авторитет, но и пастбище, провело через Президента указ об аттестации систем засекречивания. Сейчас автор затрудняется дать ему оценку иную, чем выражение заботы Старшего Брата о судьбе компьютерного сообщества, которое не хочет попасть в 1984 год Оруэлла. Во время путча 1991 года телефоны почти не работали, так как секретные службы не справлялись с обработкой сообщений, содержащих высказывания против правительства. Точно так же сейчас им доставляют головную боль цифровые шифрованные коммуникации и сотовая связь. Конечно, заманчиво запретить шифрование вообще.
Административные меры много лучше правовых. Главное, что могут руководители, это практически доказать, что они сделали все возможное со своей стороны для защиты данных и сделают еще больше, чтобы найти нарушителя и наказать его. Меры по защите аппаратуры ЭВМ экзотичны для нашей страны, так что об их эффективности довольно трудно судить ввиду их малой распространенности. Последняя надежда - криптографическая защита, дает абсолютную защиту данных, если ею пользоваться умело при поддержке ряда необходи мых административных мер.
Вероятности биграмм в тексте
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШПТЬЫЬЭЮЯ | Процент | |
А | 278677774777883767826677550000679 | 71 |
Б | 711016226056357275070541055722035 | 13 |
В | 805048037167568466660301300820048 | 38 |
Г | 601165006045448070060012000000004 | 10 |
Д | 816348107047178465271333400640457 | 25 |
Е | 556786664778896588933656560011559 | 73 |
Ж | 600067217050271012130000000020002 | 8 |
3 | 846264116155667150060021002620046 | 14 |
И | 667668577776885578815777630100679 | 64 |
и | 003030000036540006600012300000008 | 11 |
к | 815116527127058076670060100000007 | 29 |
л | 841218618044167003363003110680786 | 31 |
м | 757228017044768513161000000730068 | 32 |
н | 903368119060178005765253000850467 | 50 |
о | 288886776878876788832567650015259 | 89 |
п | 700008047036148494562010000453044 | 28 |
р | 916448608052668426673542420740167 | 48 |
с | 646257207078668756963515500561387 | 43 |
т | 827148008064569388460004021780158 | 60 |
у | 344667653365560677715506360000748 | 19 |
ф | 600005006002206040354000000100002 | 4 |
х | 433004003011056053130020001000008 | 6 |
ц | 506006007000003000040000000500005 | 6 |
ч | 701008007061062010730001300130004 | 12 |
ш | 500006007033034030340000000040005 | 3 |
щ | 600007006000020020040000000040101 | 3 |
ъ | 000004000000000000000000000000032 | 1 |
ы | 147357151755621555600705410100018 | 18 |
ь | 010003071060471006400001610000628 | 12 |
э | 004001000265210201704300000000001 | 4 |
ю | 050020120410000003700006170010307 | 6 |
я | 015256250223650144700443040000649 | 18 |
. | 789787588386899989877678511218260 | 138 |
Виды угроз и противодействие им
Угрозы компьютерам в сети по типам можно разделить на три группы: нелояльность, вторжение и проникновение. Под нелояльностью подразумеваются несанкционированные действия легальных пользователей. Вторжение означает проникновение в систему нелегала, укравшего или взломавшего пароль. Проникновение же относится не к людям, а наносящим компьютеру вред программам: червям, вирусам и троянским коням.
Самый распространенный тип угроз - нелояльность, которая порой принимает катастрофические формы. Уволенные служащие иногда пытаются разрушить систему и оборудование. Известен случай, когда уволенный служащий в сердцах воткнул центральную жилу сетевого кабеля в электрическую розетку, чем вывел из строя с полусотню компьютеров. В другом происшествии из окна небоскреба в реку был выброшен файловый сервер. Даже законопослушные в обычном смысле пользователи часто нарушают правила работы в сетях. Это выражается в неправомочном использовании чужого компьютера, просмотре, копировании или модификации чужих файлов, а также преднамеренном саботаже чужих программ или крушении системы. Наиболее серьезный вид нелояльности можно ожидать от программистов, чьи программы, установленные в защищенной системе имеют, неописанные функции и режимы, так называемые "закладки", или алгоритм работы которых не соответствует описанному в документации. Многие читатели наслышаны о программистах, которые, некорректно выполняя округление в банковских системах, пересылали "сэкономленные" так средства на доступные им счета. В России, где валютные расчеты в ведутся не в центах, а в долларах, такой прием может быть применен преступниками даже в небольших банках с несколькими тысячами валютных счетов. Этот вид нарушений очень трудно выявить, разве что при детальном бухгалтерском анализе вручную или с помощью независимой системы.
Однако в большинстве случаев действия нарушителей происходят по формуле "хвать - бежать", то есть служащие банков и финансовых компаний могут заняться и прямым воровством. Особенно это характерно для "карманных" банков, где небольшое количество счетов позволяет легко контролировать сведение баланса вручную. Для предупреждения таких нарушений требуется сохранять сведения о транзакциях на независимом носителе в виде копий системы и оперативный семантический анализ данных о перемещении денег. Приведем пример. Кассир семнадцати лет облапошил Вестминстерский банк на миллион фунтов с помощью домашнего компьютера. После того, как юноша по сети коммуникаций взломал систему банка, он 1200 раз перевел по 10 фунтов на собственный счет, зная, что большие суммы переводов были под контролем. Потом аппетит юноши разыгрался, и он по компьютеру оформил кредит в 984252 фунта на счет своего друга, на чем и попался. Суд, разбиравший это дело, обвинил банк в слабом обеспечении своей безопасности и отказался присудить компенсацию в 15000 фунтов, чтобы возместить ущерб от действий хакера.
Особенный вид банковских компьютерных преступлений, который очень распространен на Западе, составляют "запуски змея", который наши средства массовой информации почему-то окрестили "пирамидой". Для его реализации нужен доступ к большому числу кредитных счетов, с которых можно снять не только деньги, что там лежат, но и "навар" в виде кредита в несколько процентов. Широко распространенное мнение, что российские счета или электронные карточки исключительно дебитовые и с них лишнего цента не снимешь, не совсем верно. Практически всегда для солидного счета допускается небольшой кредит, отрицательный остаток или "красное сальдо". Например, если клиент захочет снять наличными свои деньги со счета, на котором находится $492, то ему могут выдать и $500, лишь бы не возиться с мелочью, если, конечно, он счета при этом не закрывает. "Запуск змея" состоит в том, что преступники с помощью ЭВМ вкладывают деньги на допускающие кредит счета и снимают их оттуда вместе с кредитом. Так как сумма растет довольно медленно, требуется специальная программа, оптимизирующая движение денег, и несколько дней непрерывной работы. После того, как "змей" поднимется на достаточную высоту, ему обрезают удерживающую нитку, и, попросту, грабители смываются.
Это очень сложный вид компьютерных преступлений, требующий от исполнителей большого профессионализма в знании банковских и коммуникационных систем. С другой стороны, он редко раскрывается, так как многие банки теряют помалу и предпочитают сохранять факт хищения в тайне, чтобы не отпугнуть вкладчиков. В Англии полиции удалось "срезать" один из змеев только лишь благодаря тому, что у грабителей отказал компьютер и, пока они несколько дней восстанавливали данные, удалось напасть на их след.
Вторжение всегда связано с кражей или взломом пароля другого пользователя. Прямое вторжение извне в компьютерные системы гораздо труднее осуществить, чем обычно полагают, читая газетные сообщения о хакерах. Многие случаи такого рода были обычно основаны на отличном знании внутреннего устройства системы. Удавшиеся попытки проникновения, не основанные на таком знании, являются результатом редкостной случайной удачи или некомпетентности персонала системы. Пример чистой случайности приведен в старом видеофильме "Военные игры", где было показано, как компьютер набирал в случайном порядке телефонные номера и пытался подобрать пароль, чтобы войти в сеть Пентагона. Изображенный в фильме случай был, бесспорно, невероятен, но когда тысячи школьников в США, просмотрев видеокассету, стали пробовать сделать то же самое, то это одновременно в тысячи раз подняло их шансы на успех. Как результат произошел ряд незаконных вторжений, а полиции и ФБР лишь за один день пришлось арестовать 5 молодых людей, 40 компьютеров и 23000 дискет в 14 городах США, чтобы остановить волну молодежного хакерства. Однако это, утверждал агент ФБР, была "лишь верхушка айсберга".
Вторжение из-за некомпетентности персонала в сеть NASA произошло, когда космическая администрация открыла вход в свою закрытую систему всем желающим на правах гостей. Она намеревалась этим сделать бесплатную рекламу Шаттлу, чтобы получить государственные субсидии и пренебрегла от этого безопасностью. Тогда же безработный Рикки Уиттман, пытаясь убить время, с домашнего компьютера вошел в сеть НАСА, чтобы взглянуть на рекламу корабля Шаттл, и начал играться, нажимая различные клавиши. Случайно нащупав "дупло", он получил права полного доступа (Про случайность говорили газеты и адвокаты. На самом деле Уиттман, очевидно, был достаточно опытным хакером, взломавшим даже компьютер Федеральной резервной системы США.) . После этого он не раз по вечерам входил в главный компьютер НАСА, чтобы получить больше знаний об этой системе и раздобыть полномочий, пока однажды по экрану его монитора не побежали сообщения: "Убирайся немедленно, придурок! Отключи телефон, идиот!" Эти рекомендации ему было слишком поздно выполнять. Вся секретная служба НАСА уже была на его хвосте. Более 200 человек, 300 часов круглосуточно отслеживая телефонные звонки, засекли его квартиру в провинциальном городе Колорадо, аж на четвертом этаже старенького дома, где Уиттман использовал допотопный IBM XT компьютер. Судом Уиттман был признан хакером, эквивалентным 115 пользователям НАСА, зарегистрированным в 68 пунктах космической сети с правами доступа, превышающими обсерваторию в Мюнхене. Уиттман ис кренне выражал сожаление о том, что сделал. Он попытался защищаться тем, что сеть НАСА сделана некомпетентно, иначе этого бы не случилось. Эксперт, вызванный судом, опроверг доводы Уиттмана: "Никакая система безопасности не безопасна абсолютно. Если вор взломает замок на двери дома, разве домовладельца нужно осуждать за то, что не поставил более надежного замка?"
Однако самую большую угрозу безопасности всех компьютерных систем представляет косвенное проникновение или наносящие вред программы. Вирусы и черви нередко используются хакерами для того, чтобы перехватывать чужие пароли. Для обеспечения секретности сетевой системы необходима тщательная антивирусная гигиена. Троянские кони ведут себя по-другому. Они обычно имитируют программу шифрования, не производя закрытия текста качественно или оставляя хакеру ключи от "черного входа". Программа лишь продолжает волю своего земного создателя и тот, хотя бы морально, ответственен за все беды, вызванные ею, являются эти неприятности преднамеренными или случайными. Например, известны случаи, когда два безобидных вируса, скрещиваясь, давали мутанта убийцу. Автора вируса найти обычно невозможно, а тот может беспрепятственно портить систему, разрушая данные, либо захватывая ресурсы. Такую атаку бывает очень тяжело обнаружить и в конце концов еще тяжелее предотвратить. В 1990 году неизвестный хакер несколько раз входил в компьютеры Леверморской лаборатории США, разрабатывающей системы для звездных войн, но не проникал в ее секретную часть, которая была программно изолирована. Позже тот же хакер, так и оставшийся неизвестным, все же ворвался в секретную часть сети через Internet.
Это стало возможным, лишь потому, что сеть в то время была поражена вирусом. Служба безопасности лаборатории считала, что инфицирование вызвано не хакером, просто он им воспользовался для проникновения. Обычно, как только обнаружен и уничтожен один вирус, тут же разрабатывается другой, приносящий еще больший вред. Создание таких программ всегда будет привлекать людей определенной психики, и продажа антивирусов уже выросла до размеров целой отрасли.
Многие компании относятся к проблеме вирусов очень серьезно. Ожидается, что американские компании потратят около 2 миллиардов долларов в 1995 году на защиту данных ЭВМ. Поэтому, все программы сетевых систем должны быть лицензионно чистые и с надежным авторством. Покупая такие программы, следуйте правилу шпионов, которые никогда не садятся в первое подвернувшееся им такси.
Как упоминалось выше, можно выделить четыре основных подхода к безопасности компьютерных систем, называемых условно правовым, административным, криптографическим и программно-техническим. Шифрование данных - основа безопасности в компьютерах, используемых военными и службами безопасности. Напомним, что Arpanet связывавшая компьютеры исследовательских центров и военных баз США, не шифровалась, что вызвало ее крах от червя Морриса.
Административный подход представлен, как правило, бывшими специалистами по обеспечению безопасности информации из органов государственной безопасности, Вооруженных Сил или режимных служб оборонных предприятий. Для него характерно решение проблем защиты преимущественно административными методами и средствами. Такой подход позволяет достаточно надежно защитить компьютерную систему, потому что преступления совершают отнюдь не компьютеры, но люди. Более того, в основе любой системы безопасности лежит угроза применения физической силы, хотя бы в виде "находят, задерживают и преследуют по суду". Однако административному подходу присущи и серьезные недостатки:
низкая эффективность организационных мер, потому что люди, как правило, ненадежны и склонны к нарушению установленных правил.
применение этого подхода чрезмерно жестко может вызвать эффект сидячей забастовки, когда все работают строго по правилам.
Программно- техническое направление представлено наиболее широко. Разработки программных средств в области защиты информации выполняются квалифицированными программистами, знающими уязвимые места системных программных средств. Сильной стороной этого направления является, как правило, хорошая реализация. Существенным недостатком будет, как правило, отсутст- вие системного подхода к вопросам защиты информации, что ведет к фрагментарности предлагаемой защиты. Можно, например, установить прекрасные устройства авторизации доступа, встроенные в клавиатуру, но, работая в практически ничем не защищенном MS-DOS, не получить от их установки никаких дополнительных гарантий безопасности. Трудно ли взломщику сменить клавиатуру?
Криптографический подход развивается бывшими и действующими работниками бывшего 8 управления КГБ, ГРУ, а ныне ФАПСИ. Это вполне понятно. Единственной организацией, профессионально занимавшейся вопросами криптографической защиты в стране, был КГБ. Сильная сторона применения криптографии - способность закрытия конфиденциальной информации с определенными гарантиями для ее владельца. Однако и это направление также имеет свои недостатки:
сложности распределения зашифрованной информации между несколькими пользователями;
большие накладные расходы от снижения скорости.
Ряд специалистов из практики своих работ предлагают разделять систему безопасности на две части: внутреннюю и внешнюю. Во внутренней части осуществляется в основном контроль доступа путем идентификации и аутентификации пользователей при допуске в сеть и при доступе в базу данных. Помимо этого шифруются и идентифицируются данные во время их передачи и хранения.
Безопасность во внешней части сети в основном достигается криптографическими средствами. Аппаратные средства защиты реализуют функции разграничения доступа, криптографии, контроля целостности программ и их защиты от копирования во внутренней части, хорошо защищенной административно.
Вскрытие машинного шифра
Машинные шифры в принципе много сложнее ручных и их раскалывание скорее напоминает не подбор отмычки к сейфу, а высверливание его механизма. Тем не менее, если силу прикладывать неразумно, то вряд ли можно будет добиться успеха. Рассмотрим лишь простенький древний машинный шифр.
Одна из первых систем шифрования опробовалась в начале XX века на телеграфе. Она основывалась на том, что каждый символ кодировался 5 импульсами тока, а это вполне соответствует пяти битам представления этого кода в ЭВМ. Смысл шифра состоял в перестановке этих импульсов или, соответственно, бит по сложному закону с большим периодом. В частности от двоичного счетчика с n разрядами поступало n сигналов на релейные схемы, меняющие местами 2 бита. Так как n было велико, то такие перестановки пар бит, называемые математиками транспозициями, могли в принципе дать любую перестановку бит внутри кода символа. Однако если все биты равны нулю или единице, то, как их не переставляй, их совокупность не изменится. Если не все биты равны между собой, то может произойти замена символа. Число вариантов замены зависит от числа нулевых бит в коде символа:
число нулевых бит 0 1 2  3 4 5
число единичных битp; 5 4 3 2 1 0
число вариантов 1 5 10 10 5 1
Предположим, что буква А кодируется 00000, Б как 00001 и так далее до Я - 11111. В этом случае букве А при любых перестановках бит будет соответствовать только она сама. Букве Б могут соответствовать уже 5 вариантов: Б(00001), В(00010), Д(00100), И(01000), Р(10000). Поэтому, написав под каждой буквой шифровки все буквы сообщения, которые возможно ей соответствуют, получим таблицу, содержащую все варианты прочтения шифровки. Для того, чтобы облегчить чтение, варианты расшифровки каждой буквы в таблице расположены сверху вниз в порядке убывания их вероятности, что выполнено на ЭВМ с учетом априорной информации о чередовании букв в тексте на естественном языке. В верхней строке таблицы дан исходный текст сообщения, а во второй - шифровка, полученная случайной перестановкой бит у каждой буквы. Далее приведены альтернативные варианты прочтения букв. Причем, чем ниже приведен вариант, тем менее он правдоподобен, а варианты с вероятностью прочтения ниже 0.05 отброшены. Программа на ЭВМ попыталась найти и наиболее вероятное прочтение шифровки используя для этого данные о вероятностях биграмм текста на русском языке. Предложенный ей вариант прочтения букв выделен жирными символами:
ЖИЛИ | БЫЛИ | СТАРИК | СО | СТАРУХОЙ | текст |
МДЩВ | БЮХД | ЕСАВРЖ | ЕЛ | ЕКАДЦНЬТ | шифр |
СИНИ | ВыхИ | СТАВИЕ | Сл | СТАВОЛьг | 1 |
Мров | бчЛв | мк брм | мО | мк блзОИ | 2 |
СИНИ | ВЫЛИ | СТАВИЕ | СО | СТАВОЛОЙ | прочтение |
Попробуем теперь сделать выводы из рассмотренных примеров: что помогает и что мешает раскалыванию шифров. Помогает криптографической атаке на шифр в основном то обстоятельство, что буквы и слова в тексте взаимосвязаны. Так, например, было несложно отгадать слово АККУ?А?НО и даже по фрагменту НАС ЗЛОБ определить песню, откуда он взят. Такая внутренняя зависимость участков текста друг от друга - свойство естественного языка и от него никуда не денешься. Хотя были и есть языки с гораздо меньшей зависимостью, чем у русского языка, но не заставишь же их использовать для того, чтобы решить проблемы шифрования. Другой помощник криптоаналитика - малое число вариантов соответствия текста шифровке при незнании ключа. Так в шифре Гронсфельда букве шифровки могут соответствовать лишь 10 букв из текста, а в шифре перестановки бит и того меньше, в среднем 7. Способствует вскрытию шифра и малая длина ключа - вряд ли так легко мы разделались бы с шифром Гронсфельда, если длина ключа превышала длину сообщения. И, в конце концов, почему же так просто был вскрыт многоалфавитный шифр замены? Ведь у него и число вариантов для отгадывания было велико, и ключ длинный. Причина успеха его взлома заключается в сильной зависимости ключа, текста и шифровки меж собой. Шифровка известна всегда. Поэтому сначала, мы угадали кусок текста и сразу же за это в награду получили кусок ключа. По этому куску ключа удалось восстановить весь ключ целиком.
Итак, во-первых, если кусок- ключа можно было получить, отгадав лишь очень большую часть текста или перебрав множество вариантов, то этот номер не прошел бы. Во-вторых, это не дело, когда по малому участку ключа удается угадать весь ключ. Будь ключ представлен не осмысленным текстом, а случайным, то этого не удалось бы. Во всех современных системах шифрования открытый текст обязательно сжимается перед шифрованием. Сжимать шифрованный текст слишком поздно, так как шифровки почти несжимаемы. Кроме экономии места под хранение и времени передачи, сжатие еще и повышает стойкость шифра. Многие атаки на шифр осуществляются поиском фрагмента открытого текста в шифровке. Если отрытый текст перед шифрованием был сжат, то эти атаки затруднены и потери времени на сжатие окупаются.
Теперь давайте пофантазируем, как составить нераскрываемый шифр. Если мы возьмем за основу многоалфавитный шифр замены, то это будет неплохой выбор, он многовариантен и к нему так просто не подступишься. Однако ключ для шифровки должен быть очень хорош: бесконечной длины и, конечно же, несмысловой. Можно схитрить и составить ключ из текста, беря из него лишь каждую третью букву, ведь по фрагменту ДНВТДМИН никогда не скажешь, что он взят из той же "Варшавянки". Еще лучше, если сообщение зашифровано дважды разными ключами и шифрами разных типов. Далее, скверно, когда символы всегда находятся в том же месте в шифровке, что и в сообщении - на подпись, заголовок или другой известный фрагмент текста может начаться атака. Поэтому вместе с заменой применим простой шифр двойной перестановки - пусть взломщики поищут, где теперь находится подпись. Таким способом, комбинируя шифр перестановки с многоалфавигным шифром замены при хорошем ключе, можно получить вполне приемлемый ручной шифр, вскрыть который будет очень непросто или вообще невозможно.
Но сменим галоп нашего рассуждения на шаг, чтобы предостеречь читателя от одной широко распространенной ошибки. Насколько осложнится вскрытие сообщения, если его зашифровать несколько раз одним ключом? Ответ естественный, хотя для многих и неожиданный, взломка сложнее вряд ли станет. Во времена Второй мировой войны английским криптографам не давал покоя простой, но заковыристый немецкий полицейский шифр. Из-за краткости сообщений его чтение удавалось далеко не всегда и, как правило, с большими трудностями. Немецкие криптографы об этом не знали, решив улучшить шифр, как бы удвоив примененный ключ. Так вот, после такого "усложнения" вскрытие шифровок стало легким и приятным. В известном автору аналогичном случае, имевшем место некогда в известной фирме, текст был зашифрован дважды. Шифровка криптоаналитиком была восстановлена из свободных кластеров на рабочей дискете, а в директории остались следы от двойного шифрования и длины двух файлов типа ВАК того же сообщения. Из этих следов и сопоставления длин шифровки с длинами файлов стало ясно, что текст зашифрован дважды. По заголовку файла была определена программа шифрования. Так как во второй раз был зашифрован и текст сообщения, и заголовок файла шифровки, содержание которого отчасти известно, то найти второй ключ удалось просто подбором, потому что он был всего из 5 букв по имени владельца. Первый ключ был угадан после этого сразу же, так как стало ясно пристрастие автора файла к собственному имени. Вследствие этого, примите за правило никогда не шифровать одно сообщение дважды одним и тем же ключом, чтобы не усложнять себе жизнь лишней работой. Применение нескольких разных ключей порой оправдано, если не из-за увеличения стойкости шифра, то хотя бы как свидетельство о согласии нескольких отправителей шифровки или одновременном присутствии нужных получателей сообщения.
Лучшие известные криптографические системы, преимущественно принадлежащие правительствам, практически невозможно вскрыть. Однако все государства теми или иными путями пытаются сдержать и даже запретить свободное использование криптографии, как вызывающее головную боль у их секретных служб. В то время, как ЦРУ в США призывает фирмы шире использовать шифрование, то АНБ пытается ограничить длину ключа 40 битами. В последнем случае возможен даже прямой перебор ключей, если использовать достаточно мощную ЭВМ. По оценкам специалистов, раскалывание шифра алгоритма RC-4 с ключом из 40 бит, широко используемого в сети Internet, потребует около 100 MIPS (MIPS - million instructions per second - миллион операций в секунду.) лет. Раньше считалось, что меньше, чем за 6 месяцев работы суперкомпьютера, такой шифр вскрыт не будет. Эта оценка была проверена практически и оказалось, что 120 рабочих станций с двумя суперкомпьютерами параллельного действия взломали ключ за, 8 дней. Цена такого раскалывания достаточно высока и превышает $10000, что впрочем сильно зависит от эффективности алгоритма атаки. Поэтому проблемы криптоанализа еще долгое время будут весьма актуальны.
Вскрытие шифра простой замены
Разберем пример В. Никонова, опубликованный в журнале 9 "Наука и жизнь" за 1981 год, заменив использованные автором графические символы шифровки на привычные русские буквы. Итак, на доске объявлений некого учреждения, название которого популярный журнал не сообщил, появилась следующая надпись:
ТБПО ЩИЧЧЖ ЛНИЬЕЭФЭЕЭВЬ ЭКМНИО ИЩЩСКИЬОЭ
СФБИТЬЛИЬШ ТБПОЧЩЬП ЛНОЭЧЖ Ь ЧЛЭПЛКПЕПООЭ
ЛЭНЛКИВИЫП ФЭБСТПООЖП ЬН ЩИЧЧЖ ЧЧСУЖ
Несомненно, что это шифр. Каков же его тип? Это не может быть шифр перестановки, так как в шифровке четко проглядываются слова с регулярными окончаниями чж, иыи, оэ. Частоты встречи различных знаков шифровки явно неодинаковы. Знаки ч, и, э встречаются раз по десять, тогда как У, Ю и М лишь по одному разу, что не бывает в многоалфавитных шифрах, имеющих близкие вероятности знаков.
Естественно предположить, что применен шифр простой замены. Читатели помнят, как герой рассказа Эдгара По "Золотой жук" Легран, анализируя записку о кладе, оставленном пиратами, обнаружил, что в ней наиболее часто, 7 раз, встречалось сочетание трех символов. Для английского языка это мог быть лишь определенный артикль THE (Хемингуэй иногда не реже, чем THE, использовал союз AND, что отвечало литературной задаче описать монотонность будней). У Лермонтова же наиболее часто используемое слово очень коротко - Я.
С чего следует начать расшифровывание? Несомненно, с установления отправителя и получателя сообщения. Вспомним рассуждения Холмса из "Пляшущих человечков", который сразу же отождествил смешную надпись с шифровкой. Что в этой надписи могло напугать героиню, угроза? Представим, что она прочла текст: "Готовься к смерти". Не правда ли, такое неприятное сообщение слишком абстрактно, чтобы заставить ужаснуться спокойного волевого человека: кто должен готовиться и к чьей смерти? Поэтому решил Холмс, героиню напугало собственное имя и начал расшифровку отождествлением слова "Илей" с первыми четырьмя человечками. Зачастую, кроме имени получателя сообщения содержат еще и имя отправителя, как это принято в телеграммах: "Приезжаю шестого. Мама." У нашей шифровки была приписка: "Граждане, ознакомившиеся, запомнившие и исполнившие, принимаются ежедневно и без ограничений. Местком." Из нее ясен отправитель - местком. Поэтому шифрованный текст может не содержать его названия. Получатель все же должен быть доуточнен, как обращение: "всем садоводам..." или "члены кружка...". Однако это - слишком легкий путь. и предположим, что не удалось конкретизировать получателя, чтобы, используя его имя, вскрыть шифр.
Предположение 1. Внимательно просматривая шифровку, можно обнаружить интересное удвоение знака Ч в конце последнего слова и начале последнего: щиччх ЧЧСУХ. Кажется, что этот знак весьма похож на употребление буквы С в русском тексте, как МАССА ССЫЛОК или ЛАССО ССУЧИЛ. Например, для буквы В не удается подобрать хороший пример, чтобы она удваивалась в конце слов, а для буквы Н - в начале. Отметим, что удвоение С в конце характерно для заимствованных существительных, где перед ним стоит чаще всего буква А. Значит, буква шифровки Ч соответствует в тексте С, а И соответствует русской букве А.
Предположение 2. Другое удвоение, знака о, встречается только в конце слов и типично для русской буквы Н. Поэтому сочетания знаков на концах слов шифровки ОЭ и ооэ, скорее всего отвечают русским окончаниям в сообщении НО и ННО. Если это так, то последнее слово шифровки ЧЧСУЖ, начинающееся с СС и состоящее из пяти букв может быть лишь одним из двух слов - ССУДЕ или ССУДЫ, что легко проверить по словарю. Другие варианты прочтения ССУДА, ССОРА и тому подобные отпадают, так как буквы А иО уже разгаданы.
Предположение 3. Знак шифровки ж, стоящий в конце слова ЧЧСУЖ встречается довольно редко, если учесть, что слово щиччж повторяется, а одинаковое окончание последнего и предпоследнего слов представляет собой обычное согласование слов в предложении. Это означает, что знаку ж скорее отвечает буква Ы, чем более часто встречаемая в русских текстах Е, а последнее слово - ССУДЫ. Окончание сообщения ?АССЫ ССУДЫ теперь нетрудно отгадать как КАССЫ ССУДЫ, что весьма близко к осмысленному тексту. Из отгадан- ных букв пятое слово шифровки складывается как АККУ?А?НО, что несомненно означает АККУРАТНО, а седьмое слово ??НОСЫ из контекста можно понять как ВЗНОСЫ. Итак, отгадывание идет вроде бы успешно, что подтверждается частичной расшифровкой:
???Н КАССЫ ВЗА??0?0?0?? 0??ЗАН АККУРАТ-
НО У??А??ВАТ? ???НСК?? ВЗНОСЫ ?
СВО?ВР???ННО ВОЗВРА?АТ? ?0?У??ННЫ? ?3
КАССЫ ССУДЫ
Теперь дальнейшая расшифровка не представляет особого труда и выполняется быстро, угадыванием отдельных слов и подстановкой выясненных букв в шифровку. В итоге получаем сообщение:
ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН
АККУРАТНО УПЛАЧИВАТЬ ЧЛЕНСКИЕ
ВЗНОСЫ И СВОЕВРЕМЕННО ВОЗВРАЩАТЬ
ПОЛУЧЕННЫЕ ИЗ КАССЫ ССУДЫ
Приведенный пример расшифровки не претендует на изящество, поскольку представляет собой реальный протокол рассуждений криптоаналитика без тупиковых вариантов, и показывает изнутри процесс вскрытия шифра простой замены. Возникает вопрос: насколько можно доверять правильности вскрытия этого шифра простой замены?
Лучше всего на него ответить словами Архимеда из послания к Эратосфену: "Хотя это всем вышеприведенным рассуждением и не доказано, но все же производит впечатление, что окончательный вывод верен".
По ряду свидетельств, опытные криптоаналитики читают такие шифровки "с листа", потратив на это минуту-другую, что свидетельствует о профессиональном видении структуры текста в кажущейся мешанине букв. В этом они сильно превосходят ЭВМ, которая удовлетворительно читает шифр простой замены лишь при достаточно большой длине сообщения больше сотни символов. Однако и здесь ЭВМ может серьезно помочь в раскалывании шифра, например, разделив буквы на гласные и согласные. Так как гласные и согласные имеют тенденцию чередоваться, то можно по матрице чередований символов разделить их на эти классы (для этого на ЭВМ криптоаналитики традиционно используют так называемое сингулярное разложение матрицы переходных вероятностей.) . Кроме того, можно программно оценить вероятности принадлежности символов шифра разным буквам выписать их столбцами по убыванию вероятности, что даст другую технику вскрытия этого шифра. Применение распознавания, основанного на оценке лишь вероятностей отдельных символов в тексте и биграмм, за 10 этапов обучения дало по приведенной шифровке следующий текст:
ЧРЕН КАССЫ ВЗАИМОПОМОБИ ОДЯЭАН АККУЛАТНО
УПРАЧИВАТЬ ЧРЕНСКИЕ ВЫНОСЫ И СВОЕВЛЕМЕННО
ВОЗВЛАБАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУШ
Получился довольно хорошо читаемый текст, хотя и за время, превысившее ручную расшифровку (эксперимент производился в 1991 году на машине IBM PC XT 6 MHz - как это было давно!)
После корректировки написания по словарю русского языка в Word 6.0 он приобрел такой вид:
ЧЛЕН КАССЫ ВЗАИМОПОМОЩИ ОБЯЗАН АККУРАТНО
УПРОЧИВАТЬ ЧЛЕНСКИЕ ВЫНОСЫ И СВОЕВРЕМЕННО
ВОЗВРАЩАТЬ ПОРУЧЕННЫЕ ИЗ КАССЫ ССУДЫ
Машинное вскрытие шифров простой замены вряд ли в близком будущем потеряет свою актуальность. Криптоаналитики широко им пользуются, поскольку атаки на сложные шифры заканчиваются обычно вскрытием шцфра простой замены.
Вскрытие шифров перестановки
Сначала возьмем тот пример шифровки двойной перестановки, что изложен выше. Пусть имеется шифровка АЗЮЖЕ СШГГООИПЕР, которая так укладывается в таблицу 4 х 4:
1 | 2 | 3 | 4 | |
1 | A | З | Ю | Ж |
2 | E | С | Ш | |
3 | Г | T | О | О |
4 | И | П | E | P |
Рассматривая маловероятные сочетания букв, легко найти истинную последовательность столбцов. Так, сочетание ГТ в 3 строке шифровки указывает на то, что после 1 столбца вряд ли следует 2 столбец. Рассчитаем статистически, какой столбец скорее всего следует за 1. Для этого воспользуемся таблицей логарифмов вероятностей биграмм русского текста, приведенной в приложении. Вероятность следования одного столбца за другим равна произведению вероятностей биграмм в строках этих столбцов. Поскольку в таблице даны логарифмы биграмм, то их достаточно суммировать, а потом выбрать сочетание столбцов с максимальной вероятностью. Для вероятностей следования за первым столбцом 2, 3 и 4 имеем выражения:
р (1-2) =р(A3) р(Е ) р(ГТ) р(ИП)=7+9+0+5=21
р (1-3) =р(АЮ) р(ЕС) р(ГО) р(ИЕ)=6+8+8+8=30
р (1-4 )=р(АЖ) р(ЕШ) р(ГО) р(ЯР)=7+5+8+7=27
В нашем случае наиболее вероятно, что после столбца 1 следует столбец 3. Для такой небольшой таблицы шифрования, которую имеем, можно перебрать все варианты перестановок - их всего лишь 24. В случае большого числа столбцов целесообразно оценить вероятности пар сочетаний разных столбцов и решить оптимизационную задачу, которая укажет перестановку столбцов, дающую фрагменты естественного текста с большей вероятностью. В нашем случае наилучший результат достигается при расстановке столбцов (2413), что примерно вдвое по вероятностной оценке достовернее ближайшей к ней по вероятности расстановки (4132). После того, как столбцы шифровки расставлены, не составит труда правильно расставить и ее строки по смыслу фрагментов текста:
2 | 4 | 1 | 3 | |
1 | З | Ж | A | Ю |
2 | Ш | E | С | |
3 | T | О | Г | О |
4 | П | P | И | E |
Текст в ней уже читается и, расставив строки в порядке (4123), получим расшифровку ПРИЕЗЖАЮ ШЕСТОГО.
Теперь обратимся к приведенному выше примеру шифра решетки:
3 | Т | П | |
О | Ж | Ш | Р |
Е | И | Г | А |
Е | С | Ю | О |
Предположение 1. Предположим, что наиболее частая биграмма в русском языке СТ входит в одно из слов текста. Так как Т расположена в решетке выше С, это значит, что между ними произошел поворот решетки таким образом:
**** | *Т** | |
**** | **** | |
**** | **** | |
*С** | **** | |
0' | 90' |
**?? | *Т** | **П* | ??** | **?? | |
**?? | О*** | ***Р | ??** | **?? | |
Е*** | **?? | ??** | ***А | *** | |
*С** | **?? | ??** | **Ю* | * ** | |
0' | 90' | 180' | 270' |
Предположение 2. При составлении решеток прорези обычно размещают так, чтобы их было по одной в каждой колонке и каждом столбце, что гарантирует хаотичное и равномерное заполнение квадрата буквами. В этом случае имеется всего два варианта: 1234 и 123'4', изображенных на следующем макете решетки:
* | * | 3' | 4 | |
* | * | 3 | 4' | |
2 | * | * | * | |
* | 1 | * | * |
Реальные шифры этого типа вскрываются еще проще. При поворотах происходят заметные смещения решетки по месту, которые весьма помогают при анализе выделить буквы, относящиеся к одному повороту. Выделив буквы, смещенные в одном направлении, получают прорезанные клетки трафарета. Если же текст сообщения имеет достаточно большую длину, то задача вскрытия шифра решетки резко упрощается из-за этой особенности. Использование ЭВМ для реконструкции решетки по вероятностям чередования букв в тексте позволяет полностью автоматизировать этот увлекательный процесс логического анализа. Однако наилучшая атака на этот шифр получается, если отгадывать вероятное слово текста, как ПРИБУДУ, ПРИЕДУ, ПРИБЫВАЮ, ПРИЛЕТАЮ, ПРИЛЕЧУ и тому подобное, так как обычно лексика сообщения примерно известна.
начал он взволнованным голосом, но
"Сограждане!" - начал он взволнованным голосом, но так как
речь его была секретная, то весьма естественно, что никто ее не
слыхал.
М. Салтыков-Щедрин.
"История одного города "
Решительно нет никакой возможности понять пути развития человеческого общества в отрыве от его жгучего стремления к тайнам. Политики и военные, священники и торговцы, писатели и ученые, шарлатаны и аферисты тысячелетиями развивали науку о секретах, доводя их создание до совершенства, служили тайнам, насыщали свои потребности в них. Без тайн не может быть не только государства, но даже малой общности людей - без них нельзя выиграть сражение или выгодно. продать товар, одолеть своих политических противников в жестокой борьбе за власть или сохранить первенство в технологии. Тайны составляют основу науки, техники и политики любой человеческой формации, являясь цементом государственности.
История хранит так много секретов, что просто удивительно, до чего людям они необходимы. Служба безопасности пытается делить их на ряд уровней: от для служебного пользования до совершенно секретно и сугубо доверительно. Американский физик Ричард Фейнман шутил, что при работе над созданием атомной бомбы ему наряду с документами, имеющими пометку ingest after reading, то есть буквально съесть после прочтения, попадались иногда бумаги и со штампом уничтожить до прочтения. Сколь ни высоконаучна теория, лежащая в основе такой классификации, она сводится к заурядной дискриминации групп людей, нарушая их естественные права. Если финансовые хищения юридически можно делить на мелкие и крупные, то степень секретности классифицировать абсурдно. Доклад Хрущева на XX съезде партии о культе личности Сталина представлялся секретным лишь для партаппарата, но не для большинства обывателей, прекрасно знавших положение в обществе.
Секрет для каждого конкретного человека либо есть, либо его нет. Более того, вскрытие тайны аналитически не только не составляет преступления, а являет торжество человеческого разума и должно приветствоваться, если делается открыто, из лучших побуждений. Французы говорят: "Удел богов - создавать тайны, а королей - раскрывать". Действительно, покажите специалистам лишь один узел сложного устройства, и они реконструируют полный его вид, назначение и характеристики. Если биолога спросить, чем питаются черти, то ответ будет однозначным: "Рога и копыта - явные признаки травоядных!"
Эта книга познакомит читателей с одним из величайших видов тайн - наукой о шифрах или криптологией. Изобретенная тысячелетия назад письменность обладает свойством вседоступности, которое, в зависимости от получателя сообщения, можно рассматривать как полезное, или как вредное. Мы обычно рады получить письмо от знакомых, но бываем не в восторге, заметив, что конверт вскрыт и с его содержимым кто-то ознакомился. Потому параллельно письменности, развивается секретное письмо, сиречь по-гречески криптография. Она предназначена спрятать смысл письма от просто грамотных людей и сделать его доступным лишь определенным адресатам. Поскольку компьютер революционно расширил в последние годы сферу письменности, то почти одновременно возникла потребность столь же большого развития криптографии. Насколько актуально ее использование сейчас - судите сами.
От кого же придется защищать свои данные? Пословица гласит: "От своего вора не убережешься". Если верить газетным публикациям, то российская внешняя разведка готова отечественным структурам продавать технологические секреты, выведанные за рубежом. На практике это может выглядеть таким образом. Россиянин ведет свое дело в США, а наша разведка, выкрав там его секреты, продаст их в России совместной с американцами фирме. Теория честного жулика, который в своем доме не ворует, в данном случае порочна. Наши разведчики и их шпионы мирно договариваются, какими секретами, похищенными в своих странах, они согласны обменяться и как поделить вырученные от этого деньги. Стремление государственных секретных служб ввести свои правила шифрования частных и коммерческих данных означает ни что иное, как желание Старшего Брата выведать их.
Автору неизвестны случаи, котда служба внешней российской разведки оказала значимую помощь стратегическим разработкам. Люди постарше вспомнят, как во время своего визита в США Хрущев на банкете в Калифорнии целовался с неким режиссером, смущая этим российских телезрителей. Так вот, брат этого режиссера, "секретный" физик Бруно Понтекорво в разгар холодной войны 1950 года бежал в Россию из американского атомного центра Лос-Аламос, прихватив элементы технологии производства ядерного оружия. (Сейчас известно, что технологии создания водородной бомбы тоже были украдены СССР из США и произвели большое впечатление на Сахарова, но не ускорили собственных разработок.) Но большинство разведчиков невысоко оценивают вклад шпионажа России в создание ею атомной и водородной бомб, так как приближенные формулы расчетов из СССР оказались удобнее и точнее американских. Кроме того, наш метод обогащения урана по разности плотностей соединений U235 и U238 был проще и эффективнее метода собачников из Лос-Аламоса, производящего обогащение урана за счет разницы в скоростях диффузии изотопов. В годы холодной войны объем краж технологий дошел до абсурда - американские и "корейские" самолеты, обладая идентичными системами СВОИ-ЧУЖОЙ, не могли отличить друг друга по изображениям на экранах радиолокаторов.
Другого рода случай произошел в начале 60-х, когда хрущевская оттепель упразднила "железный занавес", отделявший соцлагерь от буржуазного мира. Тогда разведки беспокоил вопрос о состоянии разработок жидкого ракетного топлива у врагов. Поэтому КГБ устроило международную "научную" конференцию по ракетному топливу, строго-настрого запретив своим специалистам приводить конкретные факты о достижениях. Однако спецы из ЦРУ подло провели наших, заявив: "Не будем задавать вопросов, но сами ответим на любые". По характеру заданных на радостях вопросов они многое узнали и о направлениях российских исследований, и об их состоянии, сократив тем самым свое отставание в создании мощных баллистических ракет на пару лет. Теперь, если на одну чашу весов положить "подарки" разведки, а на другую сумму секретов, уплывших за кордон из-за двойной игры или промахов, то неизбежно последует грустный вывод, что научный и экономический шпионажи аморальны, принося крупный ущерб даже стране, их применяющей. И пока существуют разведки, будет угроза раскрытия конфиденциальных данных.
Правительства всех стран мира стремятся лишить людей интимной жизни: письма читаются, телефоны прослушиваются, багаж и носильные вещи досматривается, за людьми наблюдают. Вместе с тем все больше наши частные сообщения идут по электронным каналам. Сначала были телефоны, потом появились факсы и наконец вовсю заработала электронная почта. Сообщения электронной почты особенно легко перехватывать или сканировать по ключевым словам, что широко делается как правительственными органами, так хакерами и просто любопытными. Международные отправления все без исключения читаются государственными службами.
Несомненные предвестники апокалипсиса, как взрыв Чернобыля, высыхание Арала, озоновые дыры и братоубийственные войны затмевают в нашем сознании важность сохранности личных тайн, давно грозящую перерасти в проблему, последствия которой могут стать катастрофическими уже в ближайшем будущем. Трогательно наивные люди, верящие, будто неприкосновенность содержания их писем, телеграмм и телефонных разговоров охраняется Конституцией, должны понять: она лишь дает право на такую защиту, но охранять сама не может. У московского международного почтамта нередко можно найти валяющиеся на тротуаре вскрытые письма, так и не дошедшие до получателя. Известная американская киноактриса, ознакомившись со своим досье в ФБР, воскликнула: "Боже, так я всю жизнь купалась в стеклянной ванне на людном перекрестке!" Поэтому когда США в 1994 году пытались принять за стандарт шифрования Clipper, позволяющий правительству читать любые частные шифровки, то более 50000 американцев направили по электронной почте в Вашингтон протесты.
Впрочем, порой некомпетентные сотрудники, отвечающие за безопасность, страшнее шпионов. Примером этого является известное дело Prestel, имевшее место в начале 80-х годов, когда был взломан "электронный почтовый ящик" герцога Эдинбургского. Администратор, отвечающий за работу системы британской электронной почты Prestel, по халатности оставил на экране дисплея свой пароль доступа к системе, и он стал известен злоумышленникам. Другой казус, вполне объяснимый низкой компетентностью служб безопасности произошел, когда бельгийский премьер-министр Вифред Мартене обнаружил, что посторонние через компьютерную сеть имеют доступ к государственным секретам в личных файлах членов кабинета министров. Несколько месяцев электронная почта Мартенса, включая секретную информацию об убийстве британского солдата террористами из Ирландской Республиканской Армии в Остенде, была доступна любопытным. Один из взломщиков для саморекламы показал газетному репортеру, как просто ворваться в компьютер Мартенса, получив доступ к девяти свежим письмам и шифру. Более того, в течение часовой демонстрации, он "столкнулся" с другим вором, грабившим тот же самый компьютер.
Кроме этой проблемы, есть и не менее важная сейчас, пусть не для личности, но для страны - сохранность данных исследований, разработок и стратегической управляющей информации в компьютерных системах. От этого напрямую зависит безопасность общества. Например, злоумышленное нарушение работы программ управления ядерных реакторов Игналинской АЭС в 1992 году по серьезности возможных последствий приравнивается к Чернобыльской катастрофе. Основная опасность "дьяволов компьютерной преступности" состоит в том, что им, как правило, успешно удается скрыть свое существование и следы деятельности. Можно ли чувствовать опасность, если ЭВМ находится дома, а доступ к ней ограничен паролем? Однако известен случай, когда копирование данных с такого компьютера сделал ребенок, не подозревавший ничего плохого и рассчитывавший, запустив данную ему другом дискету, поиграть в новую оч-чень интересную игру.
Статистика экономических преступлений западного мира демонстрирует их перемещение в область электронной обработки данных. При этом лидирующее положение занимают махинации в банках, которые сводятся к изменению данных с целью получения финансовой выгоды. Новизна компьютерных преступлений состоит в том, что информация, представляющая активы фирм, теперь хранится не на бумаге в видимом и легко доступном человеческому восприятию виде, а в неосязаемой и считываемой только машинами форме на электронных устройствах хранения. Раскрывается лишь малая толика компьютерных преступлений, так как финансовые компании предпочитают о них умалчивать, чтобы не потерять престижа. Удивительно поэтому было заявление Сити банка, что за 1994 год выявлено около ста попыток электронных краж из России и половина из них окончилась удачно, нанеся ущерб на десятки миллионов долларов. В связи с этим из прессы стали известны имена таких петербуржцев, как Владимир Левин и супруги Корольковы (Похоже, что это были рядовые исполнители.).
Эксперты считают, что около 70% финансовых преступлений в банках совершают свои сотрудники, связанные с обработкой данных на вычислительной технике. Цена каждого подобного проникновения составляет в США от десятков тысяч до миллиона долларов и, по оценке криминалистов, убытки от незаконного проникновения в финансовые автоматизированные системы оцениваются минимум в десятки миллионов долларов ежегодно. Кто знает, чем был вызван "черный понедельник", 10 октября 1987 года, когда компьютеры многих бирж и банков Уолл-стрита внезапно стали распродавать акции, которые в то время следовало бы придержать?
За примерами легкости потрошения закрытых для посторонних компьютеров далеко ходить не надо. Для демонстрации своих возможностей хакеры неоднократно взламывали секретные системы на глазах изумленных экспертов. Термин хакер (По-русски hacker ближе всего к словам трудяга, поденщик, наемный рабочий. Хакерами еще порой называют журналистов, пишущих скандальные статьи по заказу.) стал впервые использоваться в Массачусетском технологическом институте в начале семидесятых годов, применительно к молодым программистам и проектировщикам аппаратных средств ЭВМ, которые в гаражах и подвалах мастерили первые персональные компьютеры и даже пытались продавать их. Позднее газетчики стали называть хакерами компьютерных преступников всех родов и мастей.
Чтобы понять истоки нынешнего компьютерного разбоя, нужно осмыслить социальный климат 60-х на Западе. То поколение молодежи вырастало в мирное время, прочувствовав на себе массу социальных несправедливостей. С вовлечением США во Вьетнамскую войну и призывом на нее студенты нашли первую причину для протеста, и университетские городки заполнили демонстранты. Расстрелу манифестантов в Беркли молодежь противопоставила не прямое насилие, а лояльные формы неповиновения, в виде демонстративного сожжения призывных документов и разрушения данных в компьютерах Министерства обороны.
Другой аспект современного мира волновал молодежь не меньше: почему миллионы людей живут в бесконечной бедности. Казалось простым и логичным обвинить в этой бедности государство и тех, кто побогаче. Молодое поколение хотело изменить все сразу вызвав хаос, переходящий в анархию. В итоге это привело ее к лозунгу "Грабь награбленное" и породило сложные нравственные проблемы. Но все хорошее в жизни, утверждают скептики, либо незаконно, либо аморально. Мелкое пакостничество хакеров хотя занятие совсем не из порядочных, но есть масса куда более порочных и по-человечески менее привлекательных. Стремление политиков к власти, а бизнесменов к деньгам, например.
Число хакеров много больше, чем кажется на первый взгляд, а их незаконные действия имеют очень широкий диапазон от подглядывания чужих секретов из простого любопытства до грабежа и убийств. Представьте себя юнцом, который понял, как можно сделать телефонные звонки по компьютеру бесплатными. Вскоре, благодаря общению с друзьями из других городов и стран в его руки попали подробные инструкции о том, как можно стянуть деньги с чужой кредитной карточки. Искушение надуть знаменитую компанию вроде VISA велико, а действительные последствия ареста, да и сама его возможность из-за недостатка жизненного опыта кажутся расплывчатыми.
Человек, назвавшийся Мануэлем Вайлариалом, заказал по телефону в США компьютер и сообщил продавцу, что Билл Майер придет отобрать для него товар днем позже. Продавец магазина стал подозрительным, заметив чрезмерное волнение юноши, представившегося Майером. Поскольку юноша не смог вполне доказать свои полномочия, то продавец предложил ему, чтобы Вайлариал пришел и засвидетельствовал себя лично. После ухода парня продавец вызвал полицию и Майера, известного также как хакер по кличке "Петр 1", арестовали меньше, чем за день. Он был обвинен в попытке использовать чужую кредитную карточку и полицейские конфисковали у него сотни дискет, пытаясь их "обыскать". "Мы распечатывали содержимое лишь одного файла в течение трех часов подряд," - посетовал полицейский журналистам. Этот файл содержал по крайней мере 10000 фамилий, с номерами кредитных карточек, датами их истечения, адресами, номерами телефонов и водительских удостоверений.
Вскоре стал известен другой инцидент. Парень зарезервировал по телефону в гостинице место, дав номер своей кредитной карточки. Лишь когда он съехал, дежурный администратор гостиницы заметил, что кредит в $500 за номер был сделан по его собственной карточке. Прочтя вскоре в газете о "Петре 1", администратор вспомнил, будто в день заказа молодым человеком гостиничного номера был сбой в системе их компьютера и хотел узнать в полиции - не связано ли это с "Петром 1". Увы, полиция не знала. Должностные лица гостиницы тем не менее утверждали: их ограбил хакер, потому что нанятый ими антихакер доказал оформление кредита через телефонный модем, а не с терминала в гостинице, как это принято. Полиции точно так же не удалось связать дело "Петра 1" с 9 компьютерными кражами в Вашингтонском университете. Полиция нашла невероятным, чтобы хакеры могли взломать систему университета. Они, может, и хотели бы, однако в полиции не представляли себе, как можно было это сделать.
Дело доходило до того, что подростки в США играли - кто больше взломает компьютеров государственных учреждений. Тринадцать юных хакеров были обвинены во взломе компьютера университета штата Вашингтон и причинении дорогостоящего повреждения файловой системе. Один из них, учащийся школы 14 лет из Нью-Йорка, кроме того подозревался в блокировании компьютера ВВС Пентагона. Хакер по кличке "Зод" подобрал пароль, который давал студентам университета легальный доступ к системе и захватил над ней контроль, загрузив в компьютер собственную программу, через которую и другие могли бы незаконно войти туда. Благодаря ему толпа из полусотни хакеров, ворвалась в систему университета, видоизменяя и удаляя файлы пользователей. "Зод" был выслежен через телефонную сеть администратором системы. Аресты и обыски были произведены сразу в 17 местах, где полиция конфисковала на $50000 компьютеров и оборудования. Большинство хакеров проникают в системы из чистого любопытства и удовлетворения от отгадывания паролей. "Зод" из их числа, но последствия его действий оказались плачевными.
Действия хакеров нередко дискредитировали государственные службы безопасности. Образцами беззащитности компьютерных систем от хакеров служат и бесплатное предоставление младшему американскому школьнику свободного доступа к военной вычислительной сети, лишь бы только он перестал блокировать работу ее узлового процессора, и доказательство возможности коррекции орбиты спутника НАСА, сделанное любителями из клуба ССС ( ССС (ChaosComputerClub) - клуб европейских хакеров.) в 1986 году. Тогда же расследование полиции Амстердама, в сотрудничестве с бригадой разведки и географического отдела науки Свободного университета привело к аресту двух хакеров. Они, вторгаясь в компьютерные системы, нанесли ущерб более чем на сто тысяч голландских гульденов. 25-летний компьютерный инженер по кличке Fidelio и 21-летний студент по кличке Wave, были первыми хакерами, которых арестовали в Нидерландах. Из операционной системы UNIX своего компьютера они были способны получить доступ к другим ЭВМ в США, Скандинавии, Испании и Италии, где крали пароли, программы и закрытые технические данные.
Убытки от компьютерной преступности оценить трудно, но один миллион долларов, украденный с помощью ЭВМ Джерри Шнайдером при выставлении счетов за оплату телефонных разговоров в 60-х годах, давным-давно стократно превзойден и вычеркнут из книги рекордов Гиннесса. Приведем еще несколько коротких примеров. В 1987 году вскрыта многомиллионная кража из компьютера фирмы Фольксвагенверк. Зафиксирована чуть не закончившаяся успехом попытка выкрасть хакерами 15,2 миллионов долларов государственного лотерейного фонда штата Пенсильвания. Трое боль- ных раком скончались из-за модификации программы радиологической облучающей установки, задавшей им в 100 раз более высокие дозы облучения.
Если события в дальних странах представляются как мягкий ландшафт, прикрытый дымкой, то происходящее на родине ослепляет от близости контрастами ярких красок. Поэтому про Россию очень сложно писать непредвзято. В бывшем СССР обстановка много сложнее, чем на Западе. Хотя наша компьютерная преступность родилась лишь в конце семидесятых годов, но попав на благодатную российскую почву, где нет ограничивающих ее законов, быстро разрослась в лавину, грозящую смести зачатки информационных отраслей экономики. В 1991 году из Внешэкономбанка с помощью компьютера похищено $125000. Лишь в сентябре 1994 года в ОПЕРУ Сбербанка Москвы выявлено больше чем на сто миллиардов рублей фальшивых электронных авизо и арестовано три хакера. Неизвестные хакеры годом ранее пытались похитить по компьютерной сети Центробанка 68 миллиардов рублей. Всего по данным ЦБ России ежеквартально выявляется фиктивных электронных платежей на десятки миллиардов рублей.
Усиление зависимости деловых и научных кругов от ЭВМ наряду с озабоченностью общественности, что обработка информации затрагивает личные интересы граждан, привела к возрастанию внимания к проблемам защиты конфиденциальных данных в компьютерах от незаконного доступа. Нельзя сказать, чтобы такими проблемами раньше никто не занимался. КГБ имел специальную службу, защищающую партийную и дипломатическую связь от ознакомления с ее секретами непричастных (8 управление КГБ занималось шифрами.). В армии вопросами секретной связи ведало ГРУ - Главное разведывательное управление, теснейшим образом связанное с КГБ, специализирующееся на разведке и отлично финансируемое. Однако эти учреждения всегда ставили перед собой и противоположную задачу - добиться, чтобы никто из граждан России не смог защитить свои данные от их взора. Общество по сей день не только лишено малейших познаний в криптографии, но и редкие публикации, появлявшиеся в печати до распада СССР, представляли грубую дезинформацию. Из сообщений в прессе и по телевизору можно сделать вывод, что, обладая абсолютной монополией в области засекречивания, государственная криптографическая служба России стремится и впредь ее сохранять.
На Западе у фирм факсы и телефоны оснащены криптографическим оборудованием, а как быть нашим коммерсантам? Отечественные сред- ства засекречивания могут расколоться при первой же атаке, вследствие того что меньшая часть их не имеет теоретической основы, а большая сделана в лабораториях тех же спецслужб. Вспомните - шла иракская война, когда появилось сообщение, будто французы кодовым сигналом отключили бортовые компьютеры самолетов "Мираж" армии Хусейна. Можно ли быть уверенным в том, что спецслужбы нс оставили себе "ключ от черного входа" к шифрам? Но кто в России кроме ФАПСИ, Федерального агентства правительственной связи и информации, пришедшего на смену 8 управлению КГБ, способен провести экспертизу средств защиты данных? Может быть, стоит приобретать такие средства за рубежом? Однако почти все правительства проводят политику запрета доступа к секретам криптографических служб и систем защищенной связи Контроль за экспортом в США ограничивает развитие внутренних и международных криптографических служб. Билль сената S266 от 1991 года требует чтобы американское криптографическое оборудование содержало ловушки, известные лишь АНБ ( (NSA - National Security Agency) - Агентство национальной безопасности США, занимающееся шифрами. Оно больше и лучше финансируется, чем ЦРУ и ФБР вместе взятые.) , а чиновники могли прочесть любые шифрованньк сообщения, а это подрывает общественное доверие к технике из США. Там в 1992 году ФБР предложило конгрессу закон, облегчающий подслушивание телефонных сообщений, и это вызвало резкое возмущение общественности. Однако наибольшее вторжение в личные секреты Белый Дом осуществил в 1993 году, пытаясь утвердить в качестве государственного стандарта криптографическую микросхему Clipper для употребления при засекречивании в телефонах, факсах и электронной почте. Компания AT&T ставит микросхему Clipper во все свои изделия, обеспечивающие конфиденциальность. Вместе с тем, что каждый пользователь может установить свой секретный ключ, правительство США будет иметь возможность свободно читать их сообщения, так как имеет ключи oт "черного входа" в Clipper.
Далее, лишь квалифицированные пользователи способны качественно эксплуатировать сложную шифровальную технику. Давным-давно ходил анекдот, как неизвестный доброжелатель посоветовал специалистам фирмы "Хагелин", производящей криптографическое оборудование, сделать ревизии своих изделий, поставленных одной азиатской стра- не. Оказалось, что там, в установленном силами местных умельцев шифрующем блоке, телеграфные сигналы шли помимо его и лишь перепутанные соединения создавали видимость шифра. Вызывает серьезную озабоченность качество используемых, но не апробированных научной общественностью методик шифрования. Стандарт США по засекречиванию, именуемый далее DES, выдержал критику, а чего стоит стойкость к взлому неаттестованных шифров, например, применяемых в таких широко распространенных базах данных, как Paradox или Access, никто кроме криптографов не знает.
В настоящее время люди, которым нужна гарантированная защита своих данных от постороннего вмешательства, незнакомы даже с ее основами. Эта книга, написанная на элементарном уровне, задумана азбукой по криптографии и предназначается в первую очередь тем, кто работает на персональных компьютерах и планирует вести там защиту своих данных. Все же автор старался сделать ее занимательной для широкого круга читателей, представив как первую книгу по шифрованию. Хочется верить что все: писатели, журналисты, историки, деловые люди и школьники смогут найти в ней для себя что-нибудь интересное и полезное.
Под защитой данных далее понимается ряд организационных и технических мер по их охране с целью предотвратить несанкционированный доступ к содержащемуся в них смыслу или искажение. Большое внимание в книге уделено скучным вопросам административного и организационного характера, без решения которых шифрование бессмысленно. Автор придерживается точки зрения, что криптография состоит из истории, теории и практики, которым посвящены страницы этой книги. Надлежит сделать ряд замечаний. Во-первых, автор не претендует на всеобъемлющий и строгий научный подход, считая, приведенный технический уровень вполне достаточным для начального ознакомления. Во-вторых, он, отнюдь, не считает изложенный материал не только полным: но даже абсолютно точным, когда речь идет о событиях, еще недавно считавшихся государственной, дипломатической или военной тайной. Многие факты так и не удалось перепроверить из-за отсутствия доступных первоисточников, и к их изложению следует отнестись как к анекдотам или вольному пересказу. В-третьих, он не имеет желания вступать в полемику по изложенным вопросам и предлагает тому, кто может сказать больше, правильнее или лучше, самому написать книгу, а автор будет рад ее прочесть.
Непосредственным поводом к написанию этой книги послужило сообщение о незаконном изъятии московскими властями в 1991 году у фирмы МММ коммерческой документации. Невольно подумалось, что стало бы делать следствие с изъятыми шифровками? Жизнь не принимает сослагательного наклонения - ее требования конкретно и жестки. Видимо, по этой причине шифровальная техника стала широко внедряться. Сейчас аппарат турой засекречивания оборудованы не только резиденция Патриарха Московского и Всея Руси Алексия II, РТСБ и МЕНАТЕП, но и масса небольших коммерческих контор. Похоже, перехват их корреспонденции не грозит превратиться в сенсации на страницах газет.
Хотя традиционно криптография применялась исключительно вооруженными силами и дипломатическими службами, но сейчас она позволяет выполнять деловые операции путем передачи информации по сетям связи с использованием методов идентификации и аутентификации (идентификация и аутентификация - доказательства авторств и подлинности сообщения) , цифровой подписи, выдачи разрешений на транзакции с регистрацией и их нотариальным заверением, отметки даты, времени суток и многое другое. Эти новые приложения превращают криптографию в технику двойного использования - для военных и гражданских целей. Шифрование в гражданском секторе ведется для проведения международных банковских операций, электронного обмена информацией, обмена электронной почтой и коммерческих сделок по сетям связи более чем 1000 коммерческих организаций в России и не менее чем 600 банков уже используют для этого специальные криптографические устройства. В основе такого разграничения применений лежит разделение сфер использования криптографии для сохранения секретности информации и для ее аутентификации. Это разграничение явно выражено в новейших криптографических системах с открытым ключом. Криптография необходима частному коммерческому сектору экономики России для прогрессивного развития и применение ее не должно зависеть лишь от интересов ФАПСИ. Это относится к использованию криптографических алгоритмов, их прикладных применений, общих методов управления ключами и их распределения. Газета "Московский комсомолец" в 1992 году опубликовала статью с утверждением, что шифры, созданные коммерческими специалистами, ФАПСИ расколет за обеденный перерыв. Автор верит: после того, как не знающие шифрования коммерческие специалисты прочтут эту книгу, в ФАПСИ обеды станут гораздо продолжительнее. Ему непонятна гордость засекреченных академиков неведомыми достижениями, когда лишенное элементарных познаний в области шифрования общество беззащитно от растущей компьютерной преступности. В этом смысле Россия, перефразируя Марка Твена, напоминает рыцаря, надевшего на голову мощный шлем, но выступающего по полю битвы голым, без доспехов и щита.
Взлом многоалфавитных шифров
Шифр Гронсфельда вскрывается довольно легко, если учесть следующее обстоятельство: так как цифр всего 10, то имеется лишь 10 вариантов прочтения каждой буквы. Выпишем их столбцами так, что одной строке соответствуют буквы одного значения ключа. Номер варианта будет определяться цифрой ключа от 0 до 9. При этом получим таблицу, правильно выбрав по одной букве из каждой колонки которой можно получить исходный текст:
Ключ | ??????????????????? |
вариант 0 | ФПЖИСЬИОССАХИЛФИУСС |
вариант 1 | УОЕЗРЫЗНРР ФЗКУЗТРР |
вариант 2 | ТНДЖПЪЖМППЯУЖЙТЖСПП |
вариант 3 | СМГЕОЩЕЛООЮТЕИСЕРОО |
вариант 4 | РЛВДНШДКННЭСДЗРДПНН |
вариант 5 | ПКБГМЧГЙММЬРГЖПГОММ |
вариант 6 | ОЙАВЛЦВИЛЛЫПВЕОВНЛЛ |
вариант 7 | НИ БКХБЗККЪОБДНБМКК |
вариант 8 | МЗЯАЙФАЖЙЙЩНАГМАЛЙЙ |
вариант 9 | ЛЖЮ ИУ ЕИИШМ ВЛ КИИ |
сообщение | ??????????????????? |
Предположение 1. Если прочесть исходный текст напрямую не удалось, то попробуем немного порассуждать. Самый частый символ текста - пробел, а разбиение фразы на слова порой может оказать большую помощь в расшифровке, как это уже было в случае вскрытия шифра решетки. Так как длина шифровки равна 19 символам, то она состоит из двух или трех слов, разделенных пробелами. Хорошее положение для пробела дает лишь вариант 1, а другие варианты, 7 и 9 или их сочетания маловероятны. Поэтому будем считать, что текст шифровки разбивается на два слова: ФПХИСЫЮСС ХИЛФИУСС. Из этого следует, что в 11 позиции текста стоит пробел и в той же позиции ключа находится цифра 1.
Предположение 2. У выделенных слов шифровки одинаковое окончание ее, и, весьма вероятно, что период ключа делит 9 - длину второго слова вместе с пробелом. Будем считать, что в этом случае одинаковые окончания слов (Одинаковые окончания часто появляются из-за согласования слов в предложениях на русском языке. Это хорошо видно в поговорках: одИН в поле не воИН, наняЛСЯ - продаЛСЯ.) текста попали на одинаковые участки ключа и дали одинаковые символы шифровки. На первый взгляд может показаться, что это слишком маловероятно, чтобы встречаться в практике. Однако таких находок, помогающих расшифровке, всегда бывает предостаточно в сообщениях большой длины и, порой, приходится жалеть скорее об их обилии, чем отсутствии. Если нет никаких идей о длине ключа, не беда - ее можно подобрать вслепую. Итак, есть два выбора для периода ключа: 3 и 9. Попробуем период длины 3:
ключ | ?1??1??1??1??1??1?? |
вариант 0 | Ф ЖИ ЬИ СС ХИ ФИ СС |
вариант 1 | УОЕЗРЫЗНРР ФЗКУЗТРР |
вариант 2 | Т ДЖ ЪЖ ПП УЖ ТЖ ПП |
вариант 3 | С ГЕ ЩЕ ОО ТЕ СЕ ОО |
вариант 4 | Р БД ШД НН СД РД НН |
вариант 5 | П БГ ЧГ ММ РГ ПГ ММ |
вариант 6 | О АВ ЦБ ЛЛ ПВ ОВ ЛЛ |
вариант 7 | Н Б ХБ КК ОБ НБ КК |
вариант 8 | М ЯА ФА ЙЙ НА МА ЙЙ |
вариант 9 | Л Ю У ИИ МЛ ИИ |
сообщение | ?о??р??н?? ??к??т?? |
р (L1L2) p(L4L5) р(L7L8) p(L10L11) p(L13L14) p(L16L17)
Для вычисления вероятности биграмм воспользуемся таблицей из приложения. Поскольку в ней даны логарифмы вероятностей биграмм, то их достаточно суммировать. В результате для вариантов от 0 до 3 имеем такие численные значения вероятностей:
р(0)=р(ФО)р(ИР)р(ИН)р(С )р(ИК)р(ИТ)=43
р(1)=р(УО)р(ЗР)р(ЗН)р(Р )р(ЗК)р(ЗТ)=23
р(2)=р(ТО)р(ЖР)р(ЖН)р(П )р(ЖК)р(ЖТ)=27
р(3)=р(СО)р(ЕР)р(ЕН)р(О )р(ЕК)р(ЕТ)=50
В результате для первой цифры ключа получается наиболее вероятным 3 вариант расшифровки. Это дает следующую таблицу:
ключ | 31?31?31?31?31?31?3 |
вариант 0 | Ж Ь С Х Ф С |
вариант 1 | ОЕ РЫ HP Ф КУ ТР |
вариант 2 | Д Ъ П У Т П |
вариант 3 | С ГЕ ЩЕ ОО ТЕ С ОО |
вариант 4 | в т н с р н |
вариант 5 | Б Ч М Р П М |
вариант 6 | А Ц Л П О Л |
вариант 7 | Х К О Н К |
вариант 8 | Я Ф Й Н М Й |
вариант 9 | Ю У И М Л И |
сообщение | СО?ЕР?ЕН?0 ?ЕК?РТ?0 |
сообщение: СОВЕРШЕННО СЕКРЕТНО
ключ: 3143143143143143143
Задачи и упражнения
Для тех, кого увлекло содержимое этой книги и кто хочет закрепить полученные знания, предлагается ряд задач, самостоятельное решение которых поможет несколько глубже понять криптографическую стряпню и теорию. Задачи повышенной сложности отмечены знаком Т.
1. Докажите, что каждая подгруппа циклической группы сама будет циклической.
2. Будут ли циклическими группы по умножению целых чисел, вычисляемых по модулям 5,6,7,8? Как цикличность связана со значением модуля? 3. Перестановка двух элементов множества называется транспозицией. Как любую перестановку заменить последовательностью транспозиций? Сколько транспозиций понадобится, если переставляется n элементов?
4. Любая перестановка Р может быть разложена на непересекающиеся циклы элементов, переходящих друг в друга. Так, цикл (х, у, z) означает, что у=Рх, z=Py и x=Pz. Докажите, что существует целое число k, такое, что при любом х из переставляемого множества, выполняется
(P**k)*x=x
5. Вычислите максимальное значение k в предыдущей задаче для перестановки множества из 10 элементов.
6. Найдите условие, при котором для перестановки Р и любого элемента х будет справедливо (Р**2)*х=х. Что означает это свойство перестановки для криптографии?
7. Для контроля качества шифрования и расшифровывания в текст сообщения включают так называемую сигнатуру, находящуюся в определенном месте, например, в начале. Если сигнатура фиксированная, например - "ENCRYPTION PROG", то не ослабляет ли это шифр? Как повлияет на криптографическую стойкость шифра сигнатура в виде суммы XOR, выполненная по всем символам текста?
8. Выпишите все невырожденные матрицы 2х2 над GF(2). Какова их доля от общего числа матриц 2х2? Какое число невырожденных матриц над GF(2) размера 16х16?
9. Проверьте, образуют ли поле остатки от деления на многочлен х**4+х**2+1.
10. Докажите, что при положительных целых числах k, m и n число k**n-1 тогда и только тогда делится на k**m-1, когда n делится на m.
11. Докажите, что многочлен х**5+х**4+х**3+1 имеет порядок 13.
12. Докажите, что многочлен х**4+х+1 примитивен над GF(2).
13. Сравните мультипликативные группы, порожденные вычетами по неприводимым над GF(2) многочленам х**3+х**2+1 и х**3+х+1.
14. Т Доказать, что если многочлен р(х)**n примитивен над GF(2), то многочлен р(х)**k примитивен тогда и только тогда, когда число k взаимно просто с 2**n-1. Оцените число примитивных многочленов над GF(2**n).
15. T Докажите, что любой многочлен р(х), удовлетворяющий уравнению р(х)**L=1, где L=2 , является степенью примитивного.
16. Вычислите первые десять членов всех последовательностей, удовлетворяющих следующему рекуррентному соотношению Si+S(i-2)+S(i-3).
17. Проверьте, что для предыдущей задачи последовательность, начинающаяся с 101, может быть образована как сумма двух последовательностей, начинающихся с 110 и с 011.
18. Запрограммируйте генератор случайных чисел с многочленом х**9+х**4+1 и проверьте длину его периода.
19. Просчитайте автокорреляционную функцию для ряда псевдослучайных чисел из предыдущей задачи.
20. Покажите, что многочлен х**4+х**3+х**2+х+1 неприводим над GF(2). Каковы длины его последовательностей?
21. Напишите программу, генерирующую случайным образом три заглавные русские буквы с кодами 128-159 в альтернативной кодировке ASCII. Сколько таких трехбуквенных сочетаний всего возможно? Сколько сочетаний из первой тысячи можно принять за осмысленные слова из текста? Оцените количество информации, содержащееся в одной букве такого слова.
22. TYКак изменится вероятность встречи осмысленных сочетаний из трех букв, если буквы выдавать с теми вероятностями, с которыми они встречаются в тексте? Попробуйте применить эту программу для генерации ключей, представляющих осмысленные слова? Насколько при этом увеличится скорость их перебора?
23. Напишите программу, проверяющую файл на наличие в нем осмысленного текста по критерию, что символ пробела с кодом 32 должен встречаться не реже, чем через 20 позиций строки. Оцените качество этого критерия.
24. Напишите программу, проверяющую файл на наличие в нем осмысленного текста по критерию, что пары символов ASCII с кодами 13,10 должны встречаться не реже, чем через 82 позиции, чтобы правильно формировались строки.
25. Оцените качество этого критерия и сравните его с критерием предыдущей задачи.
26. Биграммы th в английском языке и ст в русском самые частые, что позволяет находить тексты в теле программ ЕХЕ или СОМ. Постройте критерий выделения осмысленного текста по частоте какой-нибудь из этих биграмм и оцените его качество.
27. Приняв, что слова в русском языке состоят из 7 букв, оцените число слов русского языка по количеству информации, содержащейся в одной букве, приведенной для биграмм. Сравните полученное число с числом слов в большом орфографическом словаре, считая, что там дана лишь двадцатая часть словоформ.
28. T Попробуйте вскрыть шифровку двойной перестановки ОГО-ТИТ-Р.С-ЕКМСЛ.ИИСЬ-ВЯ. 29. Сколько ключей можно составить из книги среднего объема, если за ключ брать ее текст, начиная с произвольного места? А сколько ключей будет, если текст брать лишь с начала строки?
30. Придумайте ключевое слово из 10 разных букв (наподобие РЕСПУБЛИКА) для кодирования цифр буквами. Насколько это легко было сделать?
31. Почему шифровка несмыслового текста считается очень устойчивой к вскрытию подбором ключа? Насколько эффективна шифровка ключей и в каких случаях?
32. Найдите период последовательности генератора случайных чисел в используемой системе программирования.
33. Найдите первые пять значений ее автокорреляционной функции по полному периоду.
34. Как проверить практически примитивность многочлена?
35. Найдите многочлен, порождающий двоичную последовательность
...001101011101001000110111101...
36. Какая должна быть информационная длина ключа, чтобы шифровку, сделанную им, нельзя было сломать на вашем компьютере за 5 рабочих дней с вероятностью 0.999? Сколько букв смыслового пароля этой длине ключа соответствует?
37. Какие периоды могут порождаться многочленом х**9+х**2+1, если рассмотреть разложение 2**9-1 на простые множители?
38. T Ортогональной матрицей называется такая матрица Р, которая при умножении на себя транспонированную дает диагональную Р*Р'=Е. Например, следующая матрица ортогональна:
111
O11
101
110
Рассмотрите возможность применения ортого- нальных матриц для шифров взбивания.
39. T Пусть есть шифр, при котором каждая буква алфавита может переходить по неизвестному ключу в одну из k букв. Насколько увеличится при этом количество информации, приходящейся на одну букву шифровки по сравнению с исходным текстом?
40. При каких k из предыдущей задачи текст шифровки можно прочесть, если для более-менее уверенного чтения текста человеком ему нужна избыточность хотя бы 20%?
41. T Рассмотрите алгоритм перестановки, когда случайным образом сначала переставляются соседние элементы массива, затем через 1, потом через 3 и так далее. Любую ли перестановку он может реализовать?
42. Что означает отличие значения автокорреляционной функции последовательности от 0 при сдвиге k?
43. Эргодичность числового ряда практики обычно связывают со стремлением автокорреляционной функции к 0 при увеличении сдвига? Приведите примеры числовых рядов из действительных чисел, для которых это не выполняется. Всегда ли это связано с эргодичностью числового ряда?
44. Проверьте, что рекуррентность X(n+1)=Xn*SQR(k), где k=2,3,5, вычисляемая на калькуляторе или ЭВМ, всегда сходится к коротким циклам. Учтите, что подход к циклу может быть много длиннее самого цикла.
45. Будет ли шифр побайтного шифрования Sn+1=Tn XOR Yn XOR Sn, где tn - очередной символ исходного текста, Yn - гамма и Sn+1 с Sn - байты шифровки размножать сбои? Будет ли это размножение катастрофическим, то есть продолжающимся до конца текста шифра?
46. Будет ли шифр из примера 45 катастрофически размножать сбои, если вместо всего байта Sn брать лишь случайные четыре его бита?
47. Напишите программу генерации случайных чисел по таймеру, прерывая им суммирование единиц по модулю 2. Оцените качество получаемых при этом случайных чисел. Это можно сделать, например, так:
ON TIMER(I) GOSUB Random
TIMER ON
M%=0: DO: M% = M% XOR 1: LOOP
Random:
PRINT M%;
RETURN
46. Проверьте перемешивание массива тасовкой на случайность, выполняя фиксированное число тасовок.
47. Прочтите в статистической литературе о критерии хи-квадрат и примените его в программе для распознавания русского текста.
48. T Какова вероятность того, что в хорошо перетасованной колоде хоть одна из карт окажется на своем прежнем месте? Как эта вероятность зависит от числа карт в колоде? Как можно это применить для оценки качества случайной перестановки?
49. Напишите программу, имитирующую шифр Энигмы.
50. T Какова вероятность того, что в перетасованной колоде хотя бы две карты будут следовать в том же порядке, как и в исходной.
51. T Если считать, что избыточность текста сообщения помогает при вскрытии ключа, то оцените длину сообщения достаточную для вскрытия простой замены символов. При этом объем информации от избыточности сообщения должен превысить объем информации, содержащейся в ключе, заданном перестановкой 32 символов алфавита.
Защита баз данных
Совсем другая задача возникает при использовании криптографических преобразований в базах данных, где вряд ли имеет смысл шифровать все поля. Так, шифрование всех данных в БД лечебного центра потребует много затрат и может помешать срочному получению справки о переносимости конкретным больным тех или иных лекарственных препаратов. По-видимому, достаточно хранить в шифрованном виде лишь файл соответствий фамилий больных номерам больничных электронных "карт", которые могут быть открытыми не только для лечащего персонала, но и студентов-медиков. Здесь налицо конфликт между стремлением обеспечить анонимность больных и сложностью получения лечащим врачом оперативной информации о пациенте в экстренных случаях. Сдается, что секретность в случаях, когда речь идет о жизни или смерти человека, отступает на второй план. В ряде медицинских экспертных систем США о пациенте можно получить полную информацию после того, как запрашивающий эту информацию пройдет специальную процедуру регистрации, позволяющую установить его личность. Если потом обнаружится, что необходимости в получении таких данных не было, то на получившего ее можно будет подать в суд и потребовать его возместить ущерб.
Несколько иначе дело обстоит у финансистов, где разглашение точных данных об отдельно взятом клиенте недопустимо и ведет к потере престижа фирмы. Однако жизненно необходимо знать статистические данные о клиентах и проведенных операциях. Поэтому ряд систем отказывают в выдаче сведений, если они обобщают данные меньше, чем для определенного числа клиентов, скажем, трех человек. Это очень слабая защита, легко разрушаемая хакерами логически. Например, в банке хранятся данные о профессии и состоянии счета клиентов, а нас интересует вопрос получении льготного кредита конкретным человеком, местным политиком. Задаем каверзные вопросы:
>Сколько местных политиков получило
льготные кредиты? Ответ: 5
>Сколько местных политиков пользуется
услугами банка? Ответ: 5
Отсюда несомненно следует, что интересующий нас человек пользовался льготным кредитом данного банка. Ряд систем программирования, как PROLOG, позволили бы блокировать ответ на второй вопрос, поняв, что ответ на него раскрывает не статистические, а личные данные. Однако это тема для отдельного разговора вне рамок этой книги. Таким образом, криптография сейчас охраняет или все, или ничего. Никак не получается давать лишь часть сведений, сохраняя все остальные в тайне, потому что данные обычно тесно семантически взаимосвязаны меж собой и открытие казалось бы несущественной детали порой проливает свет на целую бездну фактов. Тем не менее, во многих СУБД криптография широко используется хотя бы для того, чтобы уберечь данные или их часть от искажения. Криптографическое преобразование гарантирует их сохранность от лиц не владеющих ключом.
Чтобы предостеречь программистов от использования встроенных в базы данных средств шифрования, упомянем лишь один интересный факт. Есть компания, называемая AccessData, в штате Юта США с телефоном 1-800-658-5199. Она всего за $185 продает пакет программ для персональных ЭВМ, взламывающий встроенные схемы шифрования WordPerfect, Word, Lotus 1-2-3, Excel, Quattro Pro, Paradox и Oracle. Программы шифрования похожи на лекарства. Пилюля, полученная от шарлатана, обычно выглядит точно так же, как целительное снадобье.
Защита компонентов операционных систем
Разберем сначала возможность криптографической защиты операционной системы ЭВМ, представляющей собой специальную программу, обеспечивающую нормальное функционирование как аппаратных, так и программных ресурсов. Естественно, ее защита представляется крайне важной и имеющей далекие последствия. В связи с этим криптографическая защита операционной системы актуальна и сама по себе и обеспечивает поддержку более общей задачи защиты программ и данных. Различие между программами и данными, принадлежащими операционной системе, для криптографии несущественно, поскольку программы представляют собой те же данные специфического вида.
Защиту операционной системы можно условно представить как процедуру аналогичную охране с помощью установки замков на двери. Так, открыв замок входной двери некоторого дома, можно получить лишь доступ к лифту и дверям квартир, но не в сами квартиры, каждую из которых закрывает свой замок. Далее, вероятно, что некоторые комнаты квартир охраняются своими замками, а в комнатах могут находиться сейфы. Таким образом, мы имеем дело с иерархией ключей. Это позволяет изолировать друг от друга защищаемые области и нарушение одной из них не ведет автоматически к нарушению других. Фактически областями защиты являются области данных на различных устройствах. Приведем их:
1. Область загрузки диска, сохраняющая основные данные о распределении на диске информации, и оглавление жесткого диска могут быть легко зашифрованы. Однако так же легко и восстановлены без вскрытия шифра. Число разных типов дисков весьма ограничено - широко употребимы всего три типа гибких дисков и около трех десятков жестких. Следовательно, простой подбор нужного типа жесткого диска обычно не представляет серьезной проблемы. Оглавление жесткого диска тоже может быть достаточно легко вскрыто без ключа, так как содержащаяся там информация обычно имеет стандартный и восстановимый по другим параметрам вид. Закрытие области загрузки похоже на ограждение доступа в гостиницу, что эффективно лишь от заблудившихся пьяниц и бродячих собак.
2. Таблица расположения файлов (FAT) и директории - гораздо более серьезные объекты для криптографической защиты. Без их помощи доступ к данным весьма затруднен, но возможен. Можно организовать поиск нужной информации по всему диску по ее характерным признакам - файл типа ЕХЕ искать по его префиксу MZ, а числовые данные банковских счетов в коде ASCII по группам цифр 000, так как более вероятными представляется поступление и снятие "круглых" сумм. Если начальный кластер данных найден, то велика вероятность в следующем кластере найти их продолжение. И если не в следующем, то по крайней мере в последующих. Нарушать этот порядок, хаотично разбрасывая кластеры по диску, пользователи не решатся - иначе слишком замедлится обмен данными. Итак, FAT и директории представляются ключами от номеров гостиницы - хорошо бы их держать подальше от нежелательных интересантов, но это совсем неэффективно при серьезных намерениях нарушителей.
3. Последний уровень защиты - файловый. Несомненно, что лишь он представляет собой абсолютную защиту. Это уже похоже на хранение данных в сейфе. Недостатком является лишь большой объем работы по расшифровке содержимого, который может быть очень велик.
Еще раз отметим, что атака на удаленные файлы очень результативна. Недаром ей широко пользуются службы налоговых и валютных контролей, проверяющих компьютеры фирм. Если сообщение зашифровано и стерто, то оно обычно еще не стерто с жесткого диска. Операционные системы обычно просто помечают, что место, которое занимало сообщение, впоследствии может быть использовано под запись на него другой информации. Можно восстановить стертый файл программами UNERASE или UNDELETE, если на его место еще не было других записей. Проблема усугубляется тем, что сообщения создаются текстовыми редакторами, которые периодически сохраняют его содержимое во временных файлах, которые хотя автоматически стираются по завершении редактирования, но их содержимое остается на диске. Классической стала реальная история, как молоденькая замужняя американка имела любовную связь на стороне. Она набрала в текстовом редакторе любовнику письмо и, после распечатки, стер- ла файл. Увлечение быстро закончилось разочарованием, а вот следы от временных файлов остались на дискете. Годом позже дискета вдруг стала нечитаемой, и жена попросила мужа восстановить ее. Муж использовал мощную коммерческую программу спасения сбойных дискет, восстановившую все файлы, в том числе и стертые. Проверяя качество восстановления, он наткнулся на старое любовное письмо жены, что породило цепь трагических событий.
Налицо противоречие - без закрытия данных на уровне файлов хорошей защиты не организовать, а закрытие потребует больших вычислительных расходов. Поэтому следует минимизировать потери, расшифровывая лишь те данные, которые требуются для работы. Например, секретные области диска могут создаваться директориями, при входе в которые запрашивается пароль, служащий для расшифровки как директории, так и всех содержащихся там данных. Однако аналогичный подход влечет собой и неприятности:
переход в такую директорию займет много
времени;
при авариях и сбоях данные будут оставаться
незащищенными.
Таким образом, защита самой операционной системы, выглядит ненадежной и проблематичной за двумя следующими исключениями. Обычно доступ к аппаратным ресурсам операционная система осуществляет, используя специальные программные компоненты, называемые драйверами устройств, которые могут великолепно справляться с криптографическими преобразованиями. Следовательно, во-первых, имеется возможность засекретить телекоммуникационные каналы и, во-вторых, создать секретный псевдодиск, представляющий собой обычный файл, данные на котором хранятся в шифрованном виде. Проблема шифрования телекоммуникационных каналов близка к задаче шифрования файлов лишь с тем отличием, что при наличии многих абонентов требуется великое множество ключей. Так, наличие 10 абонентов, имеющих связь друг с другом, требует как минимум 90 ключей.
Шифрование на изолированном компьютере в сочетании с административными мерами способно решить абсолютно все проблемы, связанные с засекречиванием данных. Единственной гипотетической угрозой при этом останется использование телефонных коммуникаций. Известно, что ряд коммуникационных программ, как осуществления банковских платежек, дает удаленному абоненту доступ к данным на диске. Такие программы мотут читать и модифицировать отдельные данные, как список паролей или свои секретные блоки. Это открывает широкие возможности для недобросовестных банковских программистов и хакеров. Поэтому следует принять за правило перед сеансом модемной связи закрывать все секретные диски и файлы, а также контролировать отсутствие изменений в системных областях, что просто сделать, например, антивирусной программой MSAV из MS-DOS версии 6 и выше.