Skip to content

🔐 Шифрование файлов с помощью алгоритма Вернама

Notifications You must be signed in to change notification settings

Kiruha01/Vernams-cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шифр Вернама

Python application

Алгоритм шифрования файлов Алгоритмом Вернама.

Описание алгоритма

Алогоритм использует операцию исключающее ИЛИ (XOR) для шифровки и расшифровки файла.

Шифровка

На вход для шифрования подаётся входной файл и random seed (по желанию). Для каждого байта входного файла генерируется случайный байт, который записывается в отдельный файл-ключ. Далее вычисляется побитовое исключающее ИЛИ (XOR) для этих двух байтов и записывается в выходной файл.

Расшифровка

На вход для расшифровки подаются два файла: зашифрованный файл и файл-ключ. Читается по байту с двух файлов и выполняется операция исключающее ИЛИ (XOR). Результат записывается в выходной файл.

Использование

У скрипта есть два режима работы: шифрование (encrypt) и дешифрование (decrypt).

Encrypt

Параметр Описание
-i, --input Входной файл, который нужно зашифровать (обязательный)
-o, --output Выходной зашифрованный файл
-k, --key Файл ключа
-s, --seed Random-seed

Если параетры --output или --key не указаны, то соответствующие файлы генерируются автоматически (*.dec и *.dec.key соответственно)

Пример:

$ ./ver.py encrypt -i data [-o data.dec] [-k data.dec.key]

Для шифрования всех файлов в папке, можно указать путь к ней для параметра input. В этом случае желательно указать параметры output и key для распределения ключей от зашифрованных файлов.

$ ./ver.py encrypt -i folder/ [-k keys/] [-o outs]

Decrypt

Параметр Описание
-i, --input Входной файл, который нужно расшифровать (обязательный)
-k, --key Файл ключа
-o, --output Выходной расшифрованный файл

Если параетры --output или --key не указаны, то подразумевается, что файл назван стандартным образом (input - *.dec, key - *.dec.key)

$ ./ver.py decrypt -i data.dec [-o data] [-k data.dec.key]

Аналогично шифрованию можно расшифровывать целые папки:

$ ./ver.py encrypt foo/ -k keys/ -o outs/

About

🔐 Шифрование файлов с помощью алгоритма Вернама

Topics

Resources

Stars

Watchers

Forks