Это криптографическая программа, реализующая усовершенствованный алгоритм шифрования на основе шифра Цезаря с динамическим ключом и нелинейными преобразованиями. Проект сочетает классические подходы с современными математическими методами для создания надежного шифрования.
- Гибкий перемешанный алфавит на основе пользовательского ключа
- Динамический сдвиг с использованием тригонометрических функций
- Несколько уровней преобразований для усиления криптостойкости
- Поддержка расширенного набора символов: латиница, кириллица, специальные символы
def PiecewiseShuffledAlphabet(key: str, alph: str) -> list[str]:- Вычисляет делители длины алфавита для оптимального разбиения
- Удаляет дубликаты и пробелы из ключа
- Преобразует ключ в числовую последовательность
- Дробит алфавит на блоки и перемешивает каждый блок по ключу
- Объединяет блоки с дополнительной перестановкой
coef: float = abs(len(key)*sin(len(word)*len(key))) + len(key)
shift: int = abs(round((coef**2)*(cos(len(word)/len(key) - 1)/sin(len(key)/len(word) + 1))
* (sin(len(word)/len(key) + 1)/cos(len(key)/len(word) - 1))))Используется нелинейная комбинация тригонометрических функций от параметров ключа и текста, что делает сдвиг непредсказуемым.
- Реверс текста при определенных условиях длины
- Циклический сдвиг алфавитных блоков
- Модульная арифметика для работы с алфавитом
- Язык программирования: Python 3
- Тип шифрования: Симметричное блочное шифрование
- Математический аппарат: Тригонометрические функции, модульная арифметика, теория чисел
- Поддерживаемые символы: 172 символа (латиница, кириллица, пунктуация, специальные символы)
- Входной ключ очищается от дубликатов и пробелов
- Вычисляются оптимальные размеры блоков на основе делителей длины алфавита
- Алфавит разбивается на блоки и перемешивается по ключу
- Блоки переупорядочиваются для финального алфавита
- На основе длин ключа и текста вычисляется коэффициент сложности
- Используя тригонометрические функции, рассчитывается динамический сдвиг
- При определенных условиях применяется дополнительный реверс текста
- Каждый символ преобразуется через перемешанный алфавит
- Применяется динамический сдвиг с модульной арифметикой
- Символы вне алфавита сохраняются без изменений
- Python 3.8+
- Стандартные библиотеки Python:
math,enum,sys
git clone https://github.com/your-username/cesarlenkey.git
cd cesarlenkeypython main.pyWELCOME to the CesarLenKey! This is a program, where you can crypt your text!
You can use Cyrillic or Latin alphabet and some specials chars.
(just try it, there are interesting algo :)
Enter text to crypt (1 string):
Привет, ну как там с деньгами?
Encryption (Enter 1) or Decryption (Enter 0)?
1
Enter cryption key (some string):
difiowefmjlkw2819
Result (with key difiowefmjlkw2819):
pZbг^ЖI =Щ bиb VиУ h ДIt!LmwЁT
Press any key to continue using program...
(use Ctrl + Z to exit)
WELCOME to the CesarLenKey! This is a program, where you can crypt your text!
You can use Cyrillic or Latin alphabet and some specials chars.
(just try it, there are interesting algo :)
Enter text to crypt (1 string):
pZbг^ЖI =Щ bиb VиУ h ДIt!LmwЁT
Encryption (Enter 1) or Decryption (Enter 0)?
0
Enter cryption key (some string):
difiowefmjlkw2819
Result (with key difiowefmjlkw2819):
Привет, ну как там с деньгами?
Press any key to continue using program...
(use Ctrl + Z to exit)
alphabet_shuffle.py- алгоритмы перемешивания алфавитаword_cryption.py- основные функции шифрованияmain.py- пользовательский интерфейс
DivisorsList()- вычисление делителей для оптимизации разбиенияRemadeKey()- преобразование ключа в числовую последовательностьPiecewiseShuffledAlphabet()- блочное перемешивание алфавитаShuffledAlphabet()- финальная сборка перемешанного алфавитаCryptedWord()- основная функция шифрования слова
- Графический интерфейс (Tkinter/PyQt)
- Поддержка файлового ввода/вывода
- Режимы работы с разными алфавитами
- Дополнительные математические преобразования
- Бенчмарки производительности и криптоанализ