Skip to content

The Data Encryption Standard (DES) implementation used for encrypting/decrypting blocks of bits. This program implements the complex algorithm in C++.

License

Notifications You must be signed in to change notification settings

LeoMartinezTAMUK/DES_Cipher_Encryption-Decryption

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

DES (Date Encryption Standard) Implementation

Authors: Leo Martinez III

Contact: leo.martinez@students.tamuk.edu

Created: Spring 2024


This C++ program implements the DES Cipher, a type of block cipher, for encrypting and decrypting messages.

Encryption:

  • The DES_Encrypt.cpp/.exe script takes a plaintext and a 56-bit key as input.
  • It performs an initial permutation (IP) on the 64-bit plaintext.
  • The 64-bit block is divided into two 32-bit halves, left (L) and right (R).
  • The function performs 16 rounds of Feistel network operations using the subkeys derived from the key.
  • In each round, the right half is expanded, XORed with the subkey, and passed through S-boxes for substitution.
  • The results are then permuted and combined with the left half.
  • After 16 rounds, the left and right halves are swapped, and a final permutation (IP^(-1)) is applied.
  • The resulting 64-bit block is the ciphertext.

Decryption:

  • Use the same DES algorithm, but reverse the key order of the generated keys

Note:

  • Program was created in VS Code using C++

Here is a brief explanation of the items:

  • src: folder that contains the source code C++ script (.cpp)
  • bin: contains the corresponding compiled .exe version.
  • README.md: contains most basic information about the project
  • LICENSE: Contains license information in regards to the Github repository

About

The Data Encryption Standard (DES) implementation used for encrypting/decrypting blocks of bits. This program implements the complex algorithm in C++.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages