Характеристики
- TCP/IP сервер ключевой информации, 32 ключа
- История запусков программы
- Очистка дискового пространства, файлов историй Linux
Усечённая/бесплатная версия программы, без сервера ключевой информации, истории ucrp1.18
UCRP 1.18 (c) 2006-2010 Дмитрий И.Черкашин, www.ucrouter.ru
электронная почта: dch@ucrouter.ru, divch@users.sourceforge.net, dch@ucrouter.com
телефон: +8-909-936-8809; ICQ: 474-363-900;
Данная программа не публичное программное обеспеченее, Вы не можете
использовать данныю программу без устного или писменного разрешения
вышеупомянутого автора.
Данная программа является программным обеспечением свободно
распространяемым по всемирной коммуникационной сети в виде
исходных текстов.
Если Вы имеете исходные тексты данного программного обеспечения
оригинальные или модифицированные, то Вами должна быть предоставлена
возможность свободно получить оригинальные исходные тексты
данного программного обеспечения другими пользователям даже
при отсутствии всемирной коммуникационной сети без взымания
любой дополнительной платы, кроме платы за скачивание файлов
из всемирной коммуникационной сети или
платы за пересылку по обычной почте.
|
|
|
--license
|
выдача лицензии программы
|
|
--license-ru
|
выдача лицензии программы на русском языке
|
|
--encrypt
|
криптование архива
|
|
--decrypt
|
декриптование архива
|
|
--passwd | request
|
задание пароля в явном виде,
request - указание программе запросить пароль с клавиатуры
|
|
--hide-passwd [*|$|d]
|
скрыть пароль при запросе с клавиатуры,
дополнительный параметр символ который печатается на устройство вывода
вместо введённого символа
|
|
--show-passwd
|
показать пароль при клавиатурном вводе
|
|
--history
|
напечатать историю вызовов программы и закончить работу
|
|
--history-clear
|
очистка файла истории
|
|
--history-encrypt
|
раcшифровать файл истории
|
|
--history-decrypt
|
расшифровать файл истории
|
|
--history-cat
|
вывести на устройство вывода файл истории
|
|
--block-size
|
задаёт размер блока данных
|
|
--change-dir
|
изменение текущего каталога
|
|
--file-passwd <имя файла>
|
запрос паролей с клавиатуры
и запись паролей в файлы <имя файла>, /dbin/<последнее имя файла>,
/usr/dbin/<последнее имя файла>, <последнее имя файл> подстрока
строки <имя файла> от последнего разделителя каталогов.
|
|
--master
|
режим TCP/IP сервера. Запрашивает парольную
информацию с клавиатуры, отключается от клавиатуры, выдает
клиентам по TCP/IP соединению запрошенную парольную информацию.
|
|
--connect [p][f]
|
режим клиента, запрашивает пароль и имя
парольного файла, заданного опцией --passwd.
p - запрос пароля у сервера,
f - запрос имени файла с парольной информацией.
При отстутвии дополнительныхз параметров запрашивается
пароль с именем заданным первой опцией --passwd и
имя парольного файла заданного, заданного второй
опцией --passwd, если вторая опция --passwd отсутствует,
запрашивается имя парольного файла заданного первой
опцией --passwd.
|
|
--connect-test
|
тестирование клиент/серверного соединения
|
|
--terminate
|
завершение сервера
|
|
--info
|
печать информации о зашифрованном файле
|
|
--clear [inc|0,1]
|
очистка свободного дискового пространства, bash, mc истории,
inc запись инкрементируемого байта, 0 - запись 0, 1 - запись байта 255
|
|
--passwd-files-encrypt
|
криптование парольного файла
|
|
--passwd-files-decrypt
|
декриптование парольного файла
|
|
--passwd-files-clear
|
очистка парольных файлов
|
|
--archives
|
количество архивных файлов
|
|
--test
|
тестирование программы
|
|
--private <макро>
|
исключение конструкций #ifdef <макро> #else #endif из файл исходных текстов
|
|
--disable xre | add| rot| tab| ecc| bts| std
|
отключение алгоритмов
|
|
--enable xre | add| rot| tab| ecc| bts| std
|
включение алгоритмов
|
|
--quiet
|
ничего не выдавать
|
|
--version
|
печать версии программы
|
|
--todo
|
печать комментария автора "что надо сделать"
|
|
--changelog
|
выдача журнала изменений
|
|
--man
|
выдача справочной страницы
|
|
--unreleased
|
выдача нереализованных возможностей
|
|
--help
|
выдача справки по опциям
|
ПРИМЕЧАНИЕ:В дальнейшем по тексту документа алгоритм xre называется нак xor.
Формат выходного файла
Описание формата файла и используемых алгоритмов.
Рассматривается формат архивных файлов, генерируемых программой
ucrp версии 1.18. Более ранние форматы не рассматриваются.
Файл состоит из трех частей:
- 8192 байт заголовок параметров, задает используемые
алгоритмы и некоторые их параметры.
- 8192 ключевая информация, как правило псевдосулучайные
параметры используемые алгоритмами обработки данных.
- блоки данных. Размер блока данных 65536 байт
исходного фпайла. При включённом алгоритме ecc на
каждые 256 байт полных или неполных добавляется 3
байта проверочных.
1. Порядок записи битовых полей.
Величины смещений битовых полей.
Старший/наиболее значимый разряд битового поля записывается в
старший/наиболее значимый бит записываемого в файл байта данных.
Номер байта в который попадает бит с номером <номер бита> задается
как <номер бита>/8, маска бита с номером <номер бита>
записываемого байта задается как (1 << (<номер бита> & 7)), где '<<'
операция битового сдвига числа, в данном случае 1 в сторону
наиболее значимых разрядов, а '/' - операция целочисленного
деления, а '& 7' операция извлечания/маскирования трех младших бит.
Величины смещения указанные в дальнейший пунктах отсчитываются
от начала соответсвующего заголовка.
2. Заголовок параметров.
2.1. Название программы, её версия 8 байт со смещением 0.
Строка типа ucrp1.18 для версии программы 1.18.
2.2. <бит xor> бит включения алгоритма xor, номер бита 64.
Определяет обрабатываются входные данные алгоритмом xor или нет.
2.3. <бит add> бит включения алгоритма add, номер бита 65.
Определяет обрабатываются входные данные алгоритмом add или нет.
2.4. <бит rot> бит включения алгоритма rot, номер бита 66.
Определяет обрабатываются входные данные алгоритмом rot или нет.
2.5. <бит bts> бит включения алгоритма bts, номер бита 67.
Определяет обрабатываются входные данные алгоритмом bts или нет.
2.6. <бит tab> бит включения алгоритма tab, номер бита 68.
Определяет обрабатываются входные данные алгоритмом tab или нет.
2.7. <бит ecc> бит включения алгоритма ecc, номер бита 69.
Определяет обрабатываются входные данные алгоритмом ecc или нет.
2.8. Размер исходного буфера данных в байтах, номер стартового
бита 72, длина поля 32 бита. Исходный, не кодированный файл
читается блоками указанного размера. После применения
к считанному блоку данных перечисленных ниже алгоритмов
формируется выходной блок который записывается в выходной
файл. При нулевом значении данного поля используется
значение по умолчанию 65536 байт.
2.9. Размер выходного блока данных, номер стартового бита 104,
длина поля 32 бита. При нулевом значении данного поля
используется значение которое расчитыватеся по используемому
размеру исходного буфера данных.
3. Заголовок ключевой информации.
3.1. <маска xor>, смещение 0, длина битового поля 8.
3.2. <слагаемое>, смещение 8, длина битового поля 8.
3.3. <сдвиг вращения>, смещение 16, длина битового поля 8.
3.4. <смещение в таблице битовой подстановки>, смещение 24,
длина битового поля 8.
3.5. <смещение в таблице байтовой подстановки>, смещение 32,
длина битового поля 8.
3.6. <закон изменения битовой маски>, смещение 104 бита,
длина битового поля 5 бит. Значения данного поля интерпретируются
следующим образом:
- 0 - <не задан>
- 1 - <сложение>
- 2 - <вращение>
- 3 - <битовая подстановка>
- 4 - <табличная подстановка>
Остальные значения не присутствуют в выходном файле, а если
присутствуют то интерпретируются как <не задан>.
3.7. <параметр изменения битовой маски>, смещение 109 бит,
длина битового поля 3 бита.
3.8. <таблица битовой подстановки>, смещение 2048, восемь
элементов c длиной битового поля каждого 8 бит.
3.9. <таблица байтовой подстановки>, смещение 2112,
256 элементов c длиной битового поля каждого 8 бит.
4. Используемые алгоритмы.
Порядок применения алгоритмов xor, add, rot, bts, tab, ecc.
Считывается очередной брок данных исходного файла и к нему последовательно
применяются вышеперечисленные алгоритмы если же конечно они включены.
5.1. Парольная информация, хэширование пароля.
Для задания пароля используется опция командной строки
--passwd, первая опция командной строки --passwd иммет дополнительный
параметр вида: <пароль> | request. --passwd request расматривается
как указание программе запросить пароль с клавиатуры в диалоговом
режим, --passwd <пароль> указывает программе использовать
строку <пароль>, заданную в командной строке в качестве пароля.
Если в командной строке опция --passwd присутствует дважды,
то вторая опция рассматривается как --passwd <имя файла>.
При этом <полный пароль> формируется следующим образом
к паролю заданному в явном виде или запрошенному с клавиатуры
добавляется:
- содержимое файла специфицированного второй опцией --passwd
- содержимое файла /dbin/<последнее имя файла>
- содержимое файла /usr/dbin/<последнее имя файла>
где <последнее имя файла> выделяется из строки <имя файла>,
заданного второй опцией --passwd и представляет собой
подстроку после последнего появления разделителя '/'
в полном имени файла <имя файла>. Строки рассматриваются как строки
ограниченные символом 0 и если содержимое файла содержит
байт с нулевым значением, остаток файла начиная с нулевого
байта и следующие файлы отбрасываются.
Далее пароль копируется сам себе в конец до заполнения
буфера длиной 1024 байт. Если пароль нулевой, пустая строка
длиной 0 байт, то буфер заполняется нулями.
Дале буфер пароля подвергается операции хэширования:
- если включен алгоритм xor, бит описанный выше, в
подпункте 2.2, установлен, то каждый байт буфера подвергается
операции xor с байтом <маска xor>, описанным в 3.1.
- если включен алгоритм add, бит описанный в
подпункте 2.3, установлен, то каждый байт буфера подвергается
операции add с байтом <слагаемое>, описанным в 3.2.
- если включен алгоритм rot, бит описанный в
подпункте 2.4, установлен, то каждый байт буфера подвергается
операции врашение в сторону старших разрядов с битовым
смещением <сдвиг вращения>, описанным в 3.3.
- если включен алгоритм bts, бит описанный в
подпункте 2.5, установлен, то каждый байт буфера подвергается
операции битовая подстановка.
Таблица битовой подстановки, состоящая из 8 байт формируется
из таблицы <таблица битовй подстановки>, описанной в 3.8. Байт
<смещение в таблице битовой подстановки>, описанный в 3.4 задает
индеск индекс нулевого элемента таблицы
<таблица битовой подстановки> в результирующей таблице
битовой подстановки. Те в элемент
<смещение в таблице битовой подстановки> результирующей
таблицы заносится нулевой элемент таблицы
<таблица битовой подстановки>. Затем два индекса
инкрементируются и если индекс в результирующей
таблице выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
Каждый байт исходного буфера подвергается операции битовая
подстановка, если в исходном байте взведен бит
<результирующая таблица битовой подстановки>[<номер элемента>]
то в результирующем байте взводится бит <номер элемента>,
где <номер элемента> представляет собой номер элемента в
результирующей таблице битовой подстановки, диапазон изменения
от 0 до 7, а последовательность '[<номер элемента>]' обозначает
извлечение элемента с номером <номер элемента> из таблицы.
Если этот <результирующая таблица битовой подстановки>[<номер элемента>]
бит исходного байта сброшен то сбрасывается бит <номер элемента>
в результирующем байте.
- если включен алгоритм tab, бит описанный в
подпункте 2.6, установлен, то каждый байт буфера подвергается
операции табличная подстановка. Таблица байтовой подстановки,
состоящая из 256 байт формируется из таблицы
<таблица байтовой подстановки>, описанной в 3.9. Байт
<смещение в таблице байтовой подстановки>, описанный в 3.5,
задает индеск индекс нулевого элемента таблицы <таблица байтовой
подстановки> в результирующей таблице. Те в элемент
<смещение в таблице байтовой подстановки> результирующей
таблицы заносится нулевой элемент таблицы
<таблица байтовой подстановки>. Затем два индекса
инкрементируются и если индекс в результирующей
таблицы выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
5.2. Используемые алгоритмы, xor.
Каждый байт исходного буфера подвергается операции исключающее
или с битовой маской. Стартовое значение битовой маски
равно сумме параметра <маска xor>, описанного в пункте
3.1 и нулевого байта хэшированного пароля. После каждой операции
исключающее или битовая маска изменяется в соответсвиии с
параметром <закон изменения битовой маски>, описанным в 3.6.
Для закона изменения битовой маски - <не задан>
битовая маска в процессе кодирования не изменяется.
- Для закона изменения битовой маски - <сложение>
битовая маска в процессе кодирования инкрементируется
на сумму <параметр изменения битовой маски>, описанного в
пункте 3.7 и нулевого байта хэшированного пароля.
Те величина инкрементирования маски операции составляет
(<параметр изменения битовой маски>+<хэшированный пароль>[0]) & 255
где символ '+' обозначает операцию сложения, '[0]' обозначает
нулевой элемент, '& 255' - восемь последних битов суммы.
- Для закона изменения битовой маски - <вращение>
битовая маска в процессе кодирования вращается в сторону
старших разрядов на три младших бита суммы параметра
<параметр изменения битовой маски>, описанного в пункте 3.7 и
нулевого байта хэшированного пароля.
- Для закона изменения битовой маски <битовая подстановка>
маска подвергается операции битовая подстановка после
каждой операции исключающее или.
Таблица битовой подстановки, состоящая из 8 байт формируется
из таблицы <таблица битовй подстановки>, описанной в 3.8.
Три младших бита суммы параметра <параметр изменения битовой маски>,
описанного в пункте 3.7 и нулевого байта хэшированного пароля,
задают индеск индекс нулевого элемента таблицы
<таблица битовой подстановки> в результирующей таблице
битовой подстановки. Те в элемент
<смещение в таблице битовой подстановки> результирующей
таблицы заносится нулевой элемент таблицы
<таблица битовой подстановки>. Затем два индекса
инкрементируются и если индекс в результирующей
таблице выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы
Если в байте битовой маски взведен бит
<результирующая таблица битовой подстановки>[<номер элемента>]
то в результирующем байте маски взводится бит <номер элемента>,
где <номер элемента> представляет собой номер элемента в
результирующей таблице битовой подстановки, диапазон изменения
от 0 до 7, а последовательность [<номер элемента>] обозначает
извлечение элемента с номером <номер элемента> из таблицы.
Если <результирующая таблица битовой подстановки>[<номер элемента>]
бит маски сброшен то сбрасывается бит <номер элемента>
в результирующей маске.
- Для закона изменения битовой маски <табличная подстановка>,
битовая маска маска подвергается операции табличная подстановка
после каждой операции исключающее или.
Таблица байтовой подстановки, состоящая из 256 байт формируется
из таблицы <таблица байтовой подстановки>, описанной в 3.9.
Сумма параметра <параметр изменения битовой маски>,
описанного в пункте 3.7 и нулевого байта хэшированного пароля,
задают индеск нулевого элемента таблицы
<таблица байтовой подстановки> в результирующей таблице.
Те в элемент (<смещение в таблице байтовой подстановки> +
<хэшированный пароль>[0]) & 255 результирующей таблицы заносится
нулевой элемент таблицы <таблица байтовой подстановки>, где
'[0]' - обозначает процедуру извлечения нулевого элемента таблицы,
а '& 255' обозначает процедуру извлечения восьми младших битов.
Затем два индекса инкрементируются и если индекс в результирующей
таблицы выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
5.3. Используемые алгоритмы, add.
<слагаемое>, описанное в пункте 3.2, инкрементируется на
первый байт хэшированного пароля, затем каждый байт
исходного буфера инкрементируется на полученное значение.
5.4. Используемые алгоритмы, rot.
<сдвиг вращения>, описанное в пункте 3.3, инкрементируется на
второй байт хэшированного пароля, затем каждый байт
исходного буфера вращается в сторону наиболее значимых разрядов
на полученное значение.
5.5. Используемые алгоритмы, bts.
Каждый байт входного блока данных подвергается операции битовая
подстановка. Таблица битовой подстановки, состоящая из 8 байт
формируется из таблицы <таблица битовй подстановки>, описанной
в 3.8. Три младших бита суммы параметра
<смещение в таблице битовой подстановки>,
описанного в 3.4 и третьего элемента хэшированного пароля
задают индекс нулевого элемента таблицы
<таблица битовой подстановки> в результирующей таблице
битовой подстановки. Те в элемент
(<смещение в таблице битовой подстановки> + <хэшированный пароль>[3]) & 7
результирующей таблицы заносится нулевой элемент таблицы
<таблица битовой подстановки>, где '[3]' обозначает извлечение
третьего элемента, а '& 7' обозначает извлечение трех младших битов.
Затем два индекса инкрементируются и если индекс в результирующей
таблице выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
Каждый байт буфера исходного подвергается операции битовая
подстановка, если в исходном байте взведен бит
<результирующая таблица битовой подстановки>[<номер элемента>]
то в результирующем байте взводится бит <номер элемента>,
где <номер элемента> представляет собой номер элемента в
результирующей таблице битовой подстановки, диапазон изменения
от 0 до 7, а последовательность [<номер элемента>] обозначает
извлечение элемента с номером <номер элемента> из таблицы.
Если <результирующая таблица битовой подстановки>[<номер элемента>]
бит исходного байта сброшен то сбрасывается бит <номер элемента>
в результирующем байте.
5.6. Используемые алгоритмы, tab.
Каждый байт исходного буфера подвергается операции табличная
подстановка. После каждой такой операции таблица байтовой
подстановки модифицируется в соотвествии с очередным
полубайтом хэшированного пароля, полубайты извлекаются
сначала старший полубайт потом младший, сначала из байта
с младшим номером, а потом из старшего. Всего используется
256 байта хэшированного пароля. Процедура формирования
стартовой таблицы прведена после описапия процедуры
модификации таблицы подстановки байтов.
- Если взведён бит 0 полубайта и взведён бит включения алгоритма
xor, описанный в 2.2 то текущая таблица байтовой
подстановки подвергается операции икслючающее или с параметром
<маска xor>, описанным в 3.1.
- Если взведен бит 1 полубайта и взведён бит включения алгоритма
add, описанный 2.3 то текущая таблица байтовой
подстановки подвергается операции сложение с параметром
<слагаемое>, описанным в 3.2.
- Если взведен бит 2 полубайта и взведён бит включения алгоритма
rot, описанный 2.4 то таблица байтовой подстановки
подвергается операции вращение в сторону старших разрядов
со сдвигом <сдвиг вращения>, описанным в 3.3.
- Если взведен бит 3 полубайта и взведён бит включения алгоритма
bts, описанный 2.5 то таблица байтовой подстановки
подвергается операции битовая подстановка.
Таблица битовой подстановки, состоящая из 8 байт формируется
из таблицы <таблица битовй подстановки>, описанной в 3.8. Байт
<смещение в таблице битовой подстановки>, описанный в 3.4 задает
индеск индекс нулевого элемента таблицы
<таблица битовой подстановки> в результирующей таблице
битовой подстановки. Те в элемент
<смещение в таблице битовой подстановки> результирующей
таблицы заносится нулевой элемент таблицы
<таблица битовой подстановки>. Затем два индекса
инкрементируются и если индекс в результирующей
таблице выходит за её пределы, то индекс заворачивается
на нулевой, затем байт копируется из исходной таблицы
в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
Каждый байт буфера исходного подвергается операции битовая
подстановка, если в исходном байте взведен бит
<результирующая таблица битовой подстановки>[<номер элемента>]
то в результирующем байте взводится бит <номер элемента>,
где <номер элемента> представляет собой номер элемента в
результирующей таблице битовой подстановки, диапазон изменения
от 0 до 7, а последовательность [<номер элемента>] обозначает
извлечение элемента с номером <номер элемента> из таблицы.
Если <результирующая таблица битовой подстановки>[<номер элемента>]
бит исходного байта сброшен, то сбрасывается бит <номер элемента>
в результирующем байте.
Стартовая таблица байтовой подстановки, состоящая из 256 байт
формируется из таблицы <таблица байтовой подстановки>, описанной
в 3.9. 8 младших битов суммы параметра
<смещение в таблице байтовой подстановки>, описанного в 3.5 и
четвертого байта хэшированного пароля, задают
индеск нулевого элемента таблицы <таблица байтовой подстановки>
в результирующей таблице. Те в элемент
(<смещение в таблице байтовой подстановки> + <хэшированный пароль>[4]) & 255
результирующей таблицы заносится нулевой элемент таблицы
<таблица байтовой подстановки>, где '[4]' обозначает извлечение
четвертого элемента хэшированного пароля, а (& 255) обозначает
8 младших битов суммы. Затем два индекса инкрементируются и если
индекс в результирующей таблице выходит за её пределы, то индекс
заворачивается на нулевой, затем байт копируется из исходной
таблицы в результирующую таблицу и эта операция повторяетмя до
заполнения результирующей таблицы.
5.7. Используемые алгоритмы, ECC.
Исходный блок данных разбивается на блоки по 256 байт, последний
если он не полный дописывается до 256 байт байтом со значением
255 для каждого блока считаются три исправляющих байта.
В результирующий блок данных записываются очередной
блок данных 256 байт, потом три проверочных байта, начиная со
стартового блока данных. Алгоритм расчета исправляющих байтов
аналогичен используемому в линукс версии 2.4.
|
ARM®и Thumb®
зарегистрированные торговые марки ARM Limited.
Linux® зарегистрированная торговая марка Linus
Torvalds.
µClinux и uClinux торговые марки Arcturus Networks Inc.
|
|