text: При проектировании алгоритма автор решал следующие задачи: Открытый текст нельзя получить из шифротекста без помощи ключа (алгоритм безопасен); Количество операций, нужное для определения ключа по имеющимся шифротексту и открытому тексту, должно быть статистически равно произведению количества операций по шифровании на число возможных ключей; Известность алгоритма не влияет на силу шифра; Изменение одного бита ключа должно вызывать для того же открытого текста радикальное изменение шифротекста, и изменение одного бита открытого текста должно вызывать для того же ключа радикальное изменения шифротекста; Алгоритм должен содержать некоммутативную комбинацию подстановок и перестановок; Подстановки и перестановки, используемые в алгоритме, должны определяться и входными данными и ключом; Избыточные группы битов открытого текста должны быть полностью замаскированы в шифротексте; Длина шифротекста должна равняться длине открытого текста; Не должно быть простых взаимосвязей между любыми возможными ключами и особенностями шифротекста; Все возможные ключи должны давать сильный шифр (не должно быть слабых ключей); Длина ключа и текста могут регулироваться для реализации различных требований к безопасности; Алгоритм должен позволять эффективную программную реализацию на больших мейнфреймах, мини-компьютерах, микрокомпьютерах и с помощью дискретной логики.