Skip to content
/ DES Public

A software implementation of one of the first standardized block ciphers (DES). DES was widely used for many years to protect data privacy in various fields, including financial transactions, communications, and information storage, until it was replaced by AES.

License

Notifications You must be signed in to change notification settings

N1ckhack/DES

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Created by N1ck, 2024

Python PyCharm Telegram Steam

USA

Дисклеймер

Данный алгоритм предоставлен исключительно в ознакомительных и/или образовательных целях. Автор не несет никакой ответсвенности за последствия внедрения данного алгоритма в Ваши проекты и/или продукты коммерческого характера.

DES (Data Encryption Standard)

Алгоритм для симметричного шифрования, разработанный фирмой IBM и утверждённый правительством США в 1977 году как официальный стандарт (FIPS 46-3). Размер блока для DES равен 64 битам. В основе алгоритма лежит сеть Фейстеля с 16 циклами (раундами) и ключом, имеющим длину 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований.

Полезные ссылки:

  1. AES
  2. Лекция Шакурского М. В. по криптографическому стандарту AES
  3. Отчет с подробным описанием работы программы

Описание вспомогательных функций

  1. permute(block, table): Эта функция применяет перестановку к блоку данных на основе таблицы перестановок.
  2. split(input): Эта функция разбивает входную строку на две равные части.
  3. xor(bits1, bits2): Выполняет операцию XOR между двумя строками битов.
  4. left_shift(bit_string, shift_count): Сдвигает строку битов влево на указанное количество позиций.

Генерация подключей:

  1. generate_subkeys(key): Эта функция создает 16 48-битных подключей на основе 64-битного ключа. Она использует таблицы перестановок PC1 и PC2, а также таблицу сдвигов LEFT_SHIFTS для создания каждого подключа.

Шифрование:

  1. sbox_substitution(input, sbox): Это функция преобразует 6-битный вход в 4-битный выход на основе заданной S-бокс таблицы.
  2. f_function(right, subkey): Это функция расширяет 32-битный вход до 48 бит, затем выполняет операцию XOR с подключом, применяет 8 S-бокс таблиц к результату и затем применяет P-перестановку.
  3. des_encrypt(plain_text_bits, key): Эта функция реализует основной алгоритм шифрования DES. Она применяет начальную перестановку, выполняет 16 раундов шифрования, используя подключи, и затем применяет итоговую перестановку.

alt-текст

Пояснения к работе программы

Программа состоит из нескольких файлов: ВES.py, main.py, lib.py, test.py. В файле DES реализован основной криптографический алгоритм со всеми функциями. Файл test.py содержит в себе функцию для проверки и вывода сгенерированных раундовых ключей (16) В файле lib.py указаны основные матричные постоянные: IP, INV_IP, S, E, P, PC1, PC2. Файл main.py демонстрирует работу алгоритма на данных, вводимых с клавиатуры.

License

MIT

Free Software, GLHF!

About

A software implementation of one of the first standardized block ciphers (DES). DES was widely used for many years to protect data privacy in various fields, including financial transactions, communications, and information storage, until it was replaced by AES.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages