Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3189

.pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
8.9 Mб
Скачать

мы видим, что данное преобразование больше похоже на размеши­ вание:

012 отображается в 7 3 1,

12 3 - в 3 1 5 и т.д., т.е. оно не дает отдельную компактную об­

ласть.

Рассмотрим следующую схему: i=l ,2,...,32 - номер итерации, Kj - 16 битовый вектор ключа,

X; - старший блок текста (16 бит), Yjмладший блок текста (16 бит),

Xj+i = ((SL7(Xj+Kj)(mod 2))+Yj)(mod 65536),

Yj+, = Xj,

SL7 - ( shift left) циклический сдвиг вектора влево на 7 двоич­ ных разрядов.

Рис. 1. Схема одной итерации

Попробуйте записать формулу итогового преобразования хотя бы для двух итераций, и вы убедитесь в том, что, даже если известен и шифрованный, и открытый текст (можно составить уравнения с неизвестной переменной - ключом и попробовать решать их), по­ лученная система уравнений относительно битов ключа будет слож­ ной и нелинейной. Кроме того, с учетом мощности алфавита, для

достоверного статистического анализа придется набрать около мил­ лиона векторов длиной 32 бита.

Именно по блочному принципу в начале 70-х годов был постро­ ен самый известный из блочных алгоритмов шифрования - DES (Data Encryption Standart) с размером блока 64 бита. Мощность мно­ жества возможных ключей DES равна 2 в степени 56, что составляет примерно 10 в восемнадцатой степени, реальная стойкость DES (ми­ нимальная по всем известным методам дешифрования) оценивается примерно той же величиной. В настоящее время, правда, существует предположение, что Агентство национальной безопасности США (ведущий разработчик DES) разработало методы его дешифрования с существенно меньшей сложностью, однако эти предположения по­ ка не подтверждены.

В 1989 году в СССР на тех же принципах был разработан алго­ ритм шифрования ГОСТ 28147-89, объем его ключевого множества равен 2 в степени 256, или примерно 10 в восьмидесятой степени, реальная стойкость оценивается той же величиной, размер блока 64 бита.

Однако из сказанного вовсе не следует, что для получения стой­ кого шифра можно применить итеративно несколько простых ото­ бражений над большими блоками информации. Шеннон показал все­ го лишь путь, по которому можно двигаться. Естественно, с легко­ стью можно синтезировать и плохой блочный шифр (к приведенному примеру данное замечание не относится).

Кроме того, блочные шифры распространяют искажения, про­ изошедшие в шифрованном тексте при его передаче и хранении, а также обладают достаточно низкой скоростью шифрования за счет большого числа итераций.

В связи с этим часто применяются системы с использованием псевдослучайных последовательностей (так называемые системы поточного шифрования). Использовать псевдослучайные последова­ тельности с линейной зависимостью в них не рекомендуется. Поэто­ му к линейной рекурренте нужно применять усложнение - вносить нелинейность, например, применяя те же итеративные преобразова­

ния над блоками последовательности или над отдельными ее элемен­ тами (например, суммируя элементы последовательности в арифме­ тическом сумматоре).

При этом важно:

сохранить период усложненной последовательности не меньший, чем период исходной,

получить равновероятную последовательность после услож­ нения,

получить сильную нелинейную зависимость от многих пе­ ременных ключа и от большого числа знаков усложняемой

последовательности.

Цель, к которой нужно стремиться: стойкость для метода с наи­ меньшей трудоемкостью должна быть не намного хуже, чем трудо­ емкость полного перебора ключей.

Рассмотрим инструкции по работе с пакетами. Активизация эмулятора платы Crypton-3

Для демонстрации работы программы шифрования CRTOOLS пакета Crypton-З используется эмулятор платы. Запустите BOOT.BAT. Пароль:psw. Для шифрования используйте программу CRTOOLS.

Программа обладает достаточно удобной и наглядной системой меню, где пояснения требует лишь система ключей в разделе «Уста­ новки». Приняты следующие сокращения:

GK

- плата Криптон (в нашем случае - эмулятор платы);

PW

- символьный пароль;

UK

- внешний ключ, находящийся в отдельном файле;

Net

- ключи, передаваемые по сети.

В случае комбинации сокращений используется комбинирован­ ное шифрование. Обратите внимание, что если вы не установили тип ключевой системы, содержащий в себе PW, то поле «Ввод пароля» будет игнорироваться вне зависимости от того, введен в него пароль или нет. Если же ключевая система настроена на использование па­ роля, то если поле «Ввод пароля» не заполнено, система спросит вас

о пароле и самостоятельно заполнит это поле. Шифрование и рас­ шифровывание будут производиться на одном и том же пароле, пока он не будет изменен в соответствующем поле настройки либо не бу­ дет вообще снят (для этого введите пустой пароль).

Утилита DiskReet из пакета Norton Utilities

Эта утилита обладает удобной оболочкой и простой системой меню. Данная лабораторная работа рассчитана только на работу с файлами, поэтому при запуске выбирается пункт меню «Files». На­ стройка программы производится с использованием пункта меню «Files/File Options»:

-Encryption method - выбор метода шифрования. DiskReet предлагает два варианта:

-Fast proprietary method - быстрый, но менее надежный метод;

-DES - шифрование по стандарту DES.

Остальные настройки направлены собственно на исходные

иполучаемые файлы:

-Wipe/Delete original files after encryption удалять оригиналь­ ные файлы после зашифровки (и расшифровки);

-Set encryptedfiles to Hidden - установить для зашифрованного файла атрибут Hidden;

-Set encrypted files to Read-Only —установить для зашифрован­ ного файла атрибут Read-Only;

-Use same passwordfor entire session - использовать один и тот же пароль в течение всего сеанса работы с программой.

Шифрование и расшифровывание файлов производятся с помо­ щью пунктов меню Encrypt и Decrypt соответственно.

Приведем опции для запуска утилиты из командной строки: DISKREET [опции]

Опции:

/ENCRYPT:filename

-

Шифрование файла.

/DECRYPT:filename

-

Расшифровка файла.

/PASSWORD:xxxxxxx

-

Пароль.

/SHOW[:drive letter]

-

Показать криптованный диск.

/HIDE[:drive letter]

-

Спрятать криптованный диск.

/CLOSE

-

Закрыть все криптованные диски

/ON

-

Открыть криптованный диск.

/OFF

-

Закрыть криптованный диск.

Пакет Crypt

 

 

Шифрование производится с использованием пароля, задавае­ мого пользователем. Алгоритм шифрования не допускает возможно­ сти расшифровать данные, не зная пароля, даже зная некоторый уча­ сток исходного файла. Программа производит шифрование одного или нескольких файлов. При этом длина файла не изменяется. Об­ ратный процесс, то есть расшифровка, проходит таким же образом. Если же при расшифровке указан пароль, отличный от того, с каким файлы шифровались, то в таком случае вместо исходного файла пользователь получит нечто, напоминающее первоначальный файл только длиной и именем.

Синтаксис вызова:

CRYPT {/Е | /0} [/С] [/R] [/Р=<пароль>] <файл> [<файл>...] Ключи обозначают следующее :

/Е - что файл(ы) шифруются, Ю - что расшифруются.

При запуске программы необходимо указать один из вышепе­ речисленных ключей. Остальные параметры (кроме имен файлов) необязательны.

/Р=<пароль> - здесь указывается пароль. Для командной стро­ ки это может быть только одно слово (без пробелов). Если этот па­ раметр отсутствует, то CRYPT запросит его, и вот уже тут вы сможе­ те ввести пароль с пробелами. В любом случае его длина должна быть больше, чем три, и меньше, чем семьдесят три.

/С - этот параметр указывает программе, что для пароля нужно различать верхний и нижний регистры букв. При отсутствии этого ключа программа переводит все буквы пароля в верхний регистр (только латинские буквы).

/R - с помощью этого ключа вы сможете шифровать файлы не только в заданном каталоге, но и во всех его подкаталогах.

<filename> - собственно указывается файл, который подлежит шифрованию. Здесь можно указать файловую маску. Этот параметр можно указывать несколько раз с разными именами или масками, чтобы обработать сразу все необходимые файлы. -

Например:

CRYPT /Е /P=MYPASSWORD е:\*.* f:\*.*

Шифрует все файлы в корневых каталогах дисков Е и F с паро­ лем MYPASSWORD.

CRYPT /Е /P=FATHER /R е:\*.*

Шифрует все файлы на диске Е с паролем FATHER. CRYPT /D /R e:\programs\*.pas

Шифрует все файлы с расширением PAS в каталоге E:\PROGRAMS и его подкаталогах.

CRYPT /Н или CRYPT /? или CRYPT Выводит список ключей. Примечание:

ключи /Е и /D полностью взаимообратны, то есть вы можете, вопреки правилу, зашифровывать с ключом /D, а расшифровывать

с ключом /Е, это не имеет особого значения.

Также вы можете зашифровать ваши файлы несколько раз, ис­ пользуя разные пароли, но тогда при расшифровке необходимо пода­ вать эти пароли в обратном порядке. Например:

Шифруем :

CRYPT /Е /P=FIRST <файлы> CRYPT /Е /P=SECOND <файлы> CRYPT /Е /P=THIRD <файлы> CRYPT /Е /P=LAST <файлы>

Получили зашифрованные файлы. Теперь расшифровываем : CRYPT ГО/P=LAST <файлы>

CRYPT ГО/P=THIRD <файлы>

CRYPT /D /P=SECOND <файлы> CRYPT Ю /P=FIRST <файлы> Получаем исходные файлы.

В случае фатальной ошибки при выборе параметров программа выдает сообщение и выходит с ErrorLevel, соответствующим ошиб­ ке. Ниже приводятся все ошибки с их кодами и комментариями :

1 - Invalid or unnecessary parameter

Программе передан неправильный или лишний параметр. 2 - No command

Вкомандной строке не указано, что делать с файлами. 3 - No filename

Вкомандной строке отсутствует имя файла.

4 —Too short or too long password

Неправильный размер пароля. Должен быть : (3 < размер < 73). 5 - User fails password test

Пользователь не ввел верно пароль.

Если среди обрабатываемых файлов попадается файл с нестан­ дартными атрибутами (SYSTEM, HIDDEN, READ ONLY), то про­ грамма сделает запрос о том, надо ли этот файл обрабатывать, в слу­ чае отказа файл будет пропущен.

Data Encryption TooIKit

Data Encryption TooIKit позволяет шифровать данные и испол­ няемые коды программ, предотвращая их несанкционированное ис­ пользование. Шифрование производится в соответствии с федераль­ ным стандартом США (DES).

Data Encryption TooIKit состоит из двух взаимосвязанных ком­ понент: библиотеки функций для языков С, C++, Turbo Pascal и Ас­ семблера, обеспечивающих шифрование блоков данных и участков выполняемого кода в оперативной памяти, и утилиты шифрования файлов. Вам предлагается работать только с утилитой шифрования файлов ENCRFILE.

Формат ее вызова:

ENCRFILE [options] [filename [directory]]

Опции могут набираться на любом регистре и располагаться в любом месте командной строки. Они не обязаны отделяться пробе­ лом от имени утилиты, других параметров и друг от друга. Имеются следующие опции:

/Н - выдать справку о формате вызова;

/L - выдать информацию о лицензировании; /Е - зашифровать файлы данных;

/D - расшифровать файлы данных;

/V - проверить целостность зашифрованных файлов данных; /С - зашифровать исполняемые файлы;

/S - выполнить заданную операцию для всего поддерева катало­ гов, начиная с исходного;

/R - пометить выходные файлы как только читаемые (использу­ ется вместе с /Е);

/В - создавать резервные копии для шифруемых файлов (ис­ пользуется вместе с /С);

/W - удалять исходные файлы с очисткой занимаемого ими мес­ та (вместе с /Е), удалять исходные файлы (вместе с /D), удалять ре­ зервные копии с очисткой занимаемого ими места (вместе с /С, под­ разумевается наличие /В), для каждого отдельного файла указанное действие выполняется только при успешном завершении основной операции.

Параметр filename задает файлы, для которых выполняется опе­ рация. В нем допустимы стандартные метки DOS и '?'. Если рас­ ширение имени отсутствует, то для операции /Е принимается пустое расширение, для /D и /V - .SEC, а для /С - .EXE, если имя отсутству­ ет полностью, то для операции /Е принимается *•*, а для всех ос­ тальных - * (расширение добавляется, как было указано). За один раз в каждом каталоге может быть обработано не более 1000 файлов (ес­ ли окажется, что их больше, оставшиеся не будут обработаны).

Параметр directory может быть указан для операций /Е и /D, для которых он указывает выходной каталог, а также для операции /С с опцией /В, в этом случае он указывает каталог для резервных ко­ пий. Этот каталог должен существовать до вызова утилиты, однако его подкаталоги (если указана опция /S) при необходимости будут созданы автоматически. Поэтому не следует с этой опцией указывать в качестве выходного или резервного каталог, вводящий в поддерево исходного. По умолчанию берется исходный каталог.

Имена выходных файлов для операции /Е образуются из имен исходных файлов заменой расширения на .SEC, а если в операции участвуют несколько файлов из одного каталога с одинаковыми име­ нами, но разными расширениями, первый выходной файл получит расширение .SEC, а все остальные - .Лхх, где хх - два допустимых в именах символа, различных для каждого файла.

При выполнении операции /D расширения имен выходных фай­ лов восстанавливаются из содержимого исходных файлов, если же это по какой-либо причине оказывается невозможным, для них уста­ навливаются расширения .OUT или 'хх по тем же правилам, что при операции /Е. Точнее говоря, всем выходным файлам назначаются такие расширения, а после окончания операции файл, если расшире­ ние было восстановлено, переименовывается.

Назначение расширений резервным копиям при выполнении операции /С зависит от назначенного резервного каталога. Если он совпадает с исходным, назначаются расширения .ВАК и .~хх, а если не совпадает - файлы резервируются с исходными расширениями.

Если в выходном или резервном каталоге уже существует файл с именем, назначенным выходному файлу или резервной копии, он будет замещен. При совпадении входного и выходного (резервного) каталогов некоторые входные файлы могут быть таким образом за­ мещены. Если замещенный входной файл еще не был обработан, то он уже не будет обработан никогда. Но в любом случае заместивший его файл не будет обработан повторно.

Перед началом обработки файлов утилита запрашивает у поль­ зователя ключ, который может быть введен как в цифровой, так и в символьной форме. При вводе ключа в символьной форме ре­ гистр букв, а также все ведущие и замыкающие пробелы в нем явля­ ются значащими. Каждый цифровой ключ вводится как последова­ тельность из четырех четырехзначных шестнадцатеричных чисел - подключей. Для прекращения ввода подключей на очередной запрос надо ответить простым нажатием на клавишу Enter. Если последний ключ был введен не до конца, все его оставшиеся подключи прини­ маются равными 0.

После завершения операции для всех указанных файлов утилита спрашивает, будет ли выполняться та же операция для других фай­ лов и, если да, с тем же ключом или с другим. Если пользователь от­ ветил утвердительно, то у него, в случае необходимости, будет за­ прошен новый ключ, а затем новая спецификация исходных файлов. Последняя интерпретируется точно так же, как параметр filename, за исключением того, что по умолчанию принимается предыдущая спе­ цификация. Если операция того требует, будет запрошена также спе­ цификация выходного или резервного каталога, которая интерпрети­ руется так же, как параметр directory.

При выполнении операции /С для каждого шифруемого файла дополнительно запрашивается номер Области управления шифрова­ нием и список шифруемых фрагментов. Каждый фрагмент задается парой чисел - смещением от начала программы и длиной. Для .СОМ (.BIN) файлов смещение задается от начала файла, для .EXE файлов - от начала загружаемой области. Таким образом, вся необходимая информация может быть получена из листингов линкера и, возмож­ но, трансляторов. Как и подключи цифровых ключей, смещение и длина должны задаваться в шестнадцатеричной форме. Завершает­ ся ввод также аналогично - простым нажатием на клавишу Enter в ответ на вопрос об очередном фрагменте.

Введенные данные о фрагментах проверяются на корректность (фрагменты не должны пересекаться друг с другом и с Областью управления шифрованием), и при необходимости утилита предлагает повторить ввод. После завершения ввода на дисплей выдается список фрагментов в формате листинга линкера (.МАР файла) и требуется подтверждение. В ответ можно разрешить шифрование этих фраг­ ментов или повторить ввод с самого начала.

За один раз может быть использовано произвольное количество Областей управления шифрованием. Завершается этот процесс про­ стым нажатием на клавишу Enter в ответ на вопрос о номере очеред­ ной Области управления шифрованием.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]