Skip to main content

Digital Encryption Standard(DES)

Digital Encryption Standard(DES) :
  • Proposed by IBM in 1975
  • Standardized by US Govt in 1977
  • It is a combination of permutation and substitution on blocks of
    64 bits. A message is broken up into 64 bit blocks and each
    block is separately encrypted.
#General idea used in DES

M = PLAINTEXT        01101100 11011000 11011010
K = KEY                      10101111 00101100 01011011
E = M ⊕ K                   11000011 11110100 10000001 encryption
M= E ⊕ K                    01101100 11011000 11011010 decryption

Digital Encryption Standard(DES) Algorithm :  Before applying DES the text is split up into the 64 bit blocks. DES applied on each 64 bit block.

Encryption method
Step 1: Apply an initial permutation on a block.Result is B=IP(P)
              where P is the 64 bit block IP Initial Permutation function and
               B the result.
Step 2: Split B into 32 bit blocks
              Li = leftmost 32 bits
              Ri = rightmost 32 bits.
Step 3: Pick a 56 bit key. Permute it
Step 4: Left circular shift it by 1 bit giving K1.
Step 5: Perform a complex sequence of operations and obtain
              X1 = F(R1,K1) (The complex set of operations include table look up
              and dropping bits).
              Step 6: Find R2 = L1 + X1
              Step 7: Set L2 = R1
              Repeat steps 2 to 7 16 times to get B16 = L16,R16
Step 8: Apply inverse of initial permutation on B16
              The result is the encrypted block
In summary the DES encryption applies the following transformation 16
times.
The i'th round transformation are
L i+1 = R i
R i+1 = L i ⊕ F(R i ,K i )
Each round has a different key K i
For Decryption the process of encryption is reversed. The encrypted block is
permuted using IP -1. On this transformations are applied starting with K 16
and going to K 1 last. The keys and F are same as those used in encryption
process.
The encryption process uses simple binary operations. They can thus be
released in hardware as an integrated circuit chip. DES chips are
inexpensive. Key is externally fed.



Comments

Popular posts from this blog

important question on Entity Relationship Model(ER Model)

5)A university registrar’s office maintains data about the following entities: (a) courses, including number, title, credits, syllabus, and prerequisites; (b) course offerings, including course number, year, semester, section number, instructor(s), timings, and classroom; (c) students, including student-id, name, and program; and (d) instructors, including identification number, name, department, and title. Further, the enrollment of students in courses and grades awarded to students in each course they are enrolled for must be appropriately modeled. Construct an E-R diagram for the registrar’s office. Document all assumptions that you make about the mapping constraints. Answer:   In the answer given here, the main entity sets are student, course, course-offering, and instructor. The entity set course-offering is a weak entity set dependent on course. The assumptions made are : a class meets only at one particular place and time. This E - R diagram cannot model a c...

Library Management System DataFlow Diagram

Library Management System DataFlow Diagram 1) Zero Level DFD 2) 1st level DFD and 2nd level DFD

how to Install Numpy, Pandas and matplotlib on ubuntu 18.04 and Linux Mint

Install Python, NumPy,Matplotlib for Python 3 on Ubuntu 18.04, Linux Mint, Debian Linux. This is a short article about installing Numpy, Pandas , Matplotlib, Python3 on the latest Ubuntu 18.04 LTS, Linux Mint, Debian Linux which comes with Python 3.6.5. Let’s start by making sure we have an updated system: 1 sudo apt update 2 sudo apt upgrade Now, let’s install NumPy, Pandas,Matplotlib : sudo apt-get install python-pip sudo pip install numpy sudo pip install pandas sudo pip install matplotlib Test numpy : Open up a Terminal in Your Linux Operating System by running the following: python3 At the Terminal, type the following: >>> import numpy as np >>> np.__version__ '1.13.3'   Test Pandas : Open up a Terminal in Your Linux Operating System by running the following: python3 At the Terminal, type the following: >>> import pandas as pd >>> pd.__version__ '0.22.0'   Test Matpl...