README.md

old-esck

Архив ранних версий авторских алгоритмов шифрования семейства ESCK (автор: Д.Трунов). Оригинальные версии алгоритмов создавались в Turbo Pascal и Delphi, а также на C# или FreePascal. В данном архиве все версии адаптированы под FreePascal или переписаны на него.

Test1.pas и Test2.pas содержат простые тесты всех алгоритмов данного архива для проверки корректности шифрования и расшифровки, а также демонстрируют примеры использования этих алгоритмов.

Краткое описание шифров

CDDCD

Самый ранний алгоритм «кодирования/декодирования». Шифрование выполнялось без секретного ключа, но предполагалась секретной сама схема шифрования. Особенности: байтовый блок длиной от 1 до 128 байт, шифрование каждого байта по вычисляемой формуле с участием следующего байта в блоке (если есть) и затем перемешивание байтов в блоке по заданной схеме. Перестановки и вычисления по формуле повторялись строго 3 раза.

ESCK-0.0.1

Данная версия алгоритма не сохранилась. Предположительно, имела блок длиной до 128 или 256 байт и заданную схему перемешивания, подобную таковой в CDDCD. В этой версии появился секретный ключ, участвующий в вычислениях для каждого байта блока.

ESCK-0.1

Особенности: блок до 512 байт, генерируемый по паролю составной ключ (Key для схемы с вычислениями, Mask для дополнительного «маскирования» блока и Mixer для перемешивания байтов в блоке), который меняется перед каждым шифрованием блока.

ESCK-1, 2, 3

Особенности данных версий: блок длинной до 64 КБайт, ключи произвольного размера (также до 64 КБайт), количество повторений (циклов) шифрования блока не фиксировано и может задаваться пользователем. Версии различаются способом генерации/изменения ключей и вычислений для шифрования отдельных байтов.

ESCK-4 и P-Cry

Особенности: оставлен только один ключ Key, а массивы Mask и Mixer исключены. В частности, вместо массива Mixer перемешивание выполняется по динамически вычисляемым индексам. Разница между ESCK-4 и P-Cry в том, что в первом ключ обязательно меняется после шифрования каждого блока, в а во втором ключ вообще не меняется в процессе шифрования.

ESCK-5

Особенности:

  • операции над 32-битными числами, а не отдельными байтами;
  • ключ строго 256, а блок — 1..256 таких чисел;
  • развитие идеи динамических индексов: для каждого числа блока вычисляются индексы чисел (ключа и блока), участвующих в его шифровании;
  • шифрование включает циклические побитовые сдвиги, операции AND, OR, NOT, XOR;
  • изменение ключа после каждого блока стало опциональным, добавлены другие режимы шифрования.

ESCK-6

Основные отличия от ESCK-5: операции над 64-битными числами, блок минимум из 2-х таких чисел, которые при шифровании зависят друг от друга.

ESCK-6a

Основные изменения и нововведения:

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

Примечания

Данные алгоритмы приведены для целей ознакомления. Настоятельно не рекомендуется их применять в реальных задачах из-за множества непроверенных и потенциально уязвимых свойств, а также из-за их громоздкости и низкой скорости работы. В случае интереса предлагается обратить внимание на шифры ESCK-7 и Seal.

Описание
Архив авторских шифров семейства ESCK
Конвейеры
0 успешных
0 с ошибкой
Разработчики