NIS micro project
Network Information And Security (Government Polytechnic,
Nagpur)
Scan to open on Studocu
Downloaded by PRASHANT BHAMBARE
Studocu is not sponsored or endorsed by any college or university
Downloaded by PRASHANT BHAMBARE
Network and Information Security(22620)
“Study Of Symmetric Key Cryptography”
NAVJEEVAN POLYTECHNIC BHANDUP[W]
Downloaded by PRASHANT BHAMBARE
MAHARASHTRA STATE BOARD OF TECHNICAL
EDUCATION
NAVJEEVAN EDUCATION SOCIETY
POLYTECHNIC
MICRO PROJECT
Academic year: 2024-2025
TITLE OF MICRO
PROJECT
“Study Of Symmetric Key Cryptography”
PROGRAM:-INFORMATION TECHNOLOGY
PROGRAM CODE:IF6I
COURSE: Network and Information Security.
COURSE CODE: 22620
ii
Downloaded by PRASHANT BHAMBARE
MAHARASHTRA STATE BOARD OF
TECHNICAL EDUCATION
Certificate
This is to certify that 1. Adarsh Mishra (719) .
2. Laukik Phalke (720).
3. Priyanka Pandey(721).
of 6th Semester of Diploma INFORMATION TECHNOLOGY of
Institute, Navjeevan Education Society’s Polytechnic(Code:0144) has
completed the Micro Project satisfactorily in Subject:Network and
Information Security for the academic year 2023- 2024 as prescribed in
the curriculum.
Place: Bhandup. Enrollment no:- 1. 2101440206.
2. 2101440207.
3. 2101440208.
Date:- Exam Seat no:- 1.
2.
3.
Subject Teacher Head of the Department Principal
iii
Downloaded by PRASHANT BHAMBARE
GROUP DETAILS
Enrollment
Sr. Name of group Roll
No. Seat No.
No. members No.
1 Adarsh Mishra 719 2101440206
2 Laukik Phalke 720 2101440207
3 Priyanka Pandey 721 2101440208
HELPED AND GUIDED BY
MAMTA SHAIK
iv
Downloaded by PRASHANT BHAMBARE
1. Brief Introduction:-
Symmetric encryption is a type of encryption where only one key (a secret key)is
used to both encrypt and decrypt electronic data. The entities communicating via
symmetric encryption must exchange the key so that it can be used in the
decryption process. Both sender and receiver uses a common key to encrypt and
decrypt the message. This secret key is known only to the sender and to the
receiver. It is also called as secret key cryptography.
The success of this approach depends on the strength of the random number
generator that is used to create the secret key. Symmetric Key Cryptography is
widely used in today’s Internet and primarily consists of two types of algorithms,
Block and Stream. Some common encryption algorithms include the Advanced
Encryption Standard (AES) and the Data Encryption Standard (DES). This form of
encryption is traditionally faster than Asymmetric however it requires both the
sender and the recipient of the data to have the secret key. Asymmetric
cryptography does not rely on sharing a secret key and forms the basis of the FIDO
authentication framework.
Aim of the Micro-Project:-
To secure our sensitive information.
To improve confidentiality, Integrity, Availability.
To encrypt and decrypt the information.
2. Actual Resources Required:-
Sr. Name of
Resource/material Specifications Qty
No.
1 Software Android Studio 1
Operating System:Windows 7
or higher
2 Computer System Memory:8GB 1
RAM.Processor:Corei5
HDD:500GB or Larger
Downloaded by PRASHANT BHAMBARE
WEEKLY PROGRESS REPORT (Action Plan)
MICRO PROJECT
Topic: Network and Information Security Academic Year: 2024-2025
Name of Faculty: Mamta Shaik Program Code: Information Technology
Course & Course Code: Study Of Symmetric Key Cryptography.
Roll No:719 , 720 , 721 Enrollment No: 2101440206, 2101440207 ,2101440208.
Semester: VI Name of Candidate: Adarsh Mishra,Laukik Phalke,Priyanka Pandey.
SR. Week Activity of Planned Planned Name of Responsible
NO Performed start Finish Team member
Date Date
1. Discussion and All Team
1st finalization of topic Members
2. Preparation and All Team
2nd submission of Members
Abstract
3. All Team
3th Collection of Data
Members
4. All Team
4th Implementation
Members
5. Check, Validation All Team
5th and Execution of Members
code
6. Compilation of Report All Team
6th And Presentation Members
7. 7th ActualPresentation & All Team
Final submissionof Members
Micro Project
Sign of Students
1)
2)
3)
Sign of the faculty
vi
Downloaded by PRASHANT BHAMBARE
INDEX
Academic Year: 2024-2025 Name of Faculty: Mamta
Shaik Program Code: Network and Information Security
Course & Course Code: Study Of Symmetric Key Cryptography(22620).
Roll No: 719 , 720 , 721 Enrollment No:2101440206,2101440207, 2101440208..
Semester: VI.
Name of Candidate: Adarsh Mishra, Laukik Phalke, Priyanka Pandey.
SR. CONTENT PAGE
NO. NO.
1 Brief Description 1
2 Aim of Micro Project 1
3 Course Outcomes Integrated 1
4 Actual Procedure Followed 1
5 Actual Resource Used 2
6 Flowchart 3
7 Implementation and Result 4-9
8 Soft copy Micro−Project 10
9 Conclusion 11
10 Micro−Project Evaluation Sheet 12-14
vii
Downloaded by PRASHANT BHAMBARE
1.0 Brief Description :
In this project we implement small demo of a DES algorithm to secure sensitive
data. Symmetric encryption is a type of encryption where only one key (a secret key)
is used to both encrypt and decrypt electronic data. The entities communicating via
symmetric encryption must exchange the key so that it can be used in the
decryption process. Due to the better performance and faster speed of symmetric
encryption, symmetric cryptography is typically used for bulk encryption of large
amounts of data.
The Symmetric encryption is a type of encryption where only one key (a secret key)
is used to both encrypt and decrypt electronic data. The entities communicating via
symmetric encryption must exchange the key so that it can be used in the
decryption process. Both sender and receiver uses a common key to encrypt and
decrypt the message. This secret key is known only to the sender and to the
receiver. It is also called as secret key cryptography.
The success of this approach depends on the strength of the random number
generator that is used to create the secret key. Symmetric Key Cryptography is
widely used in today’s Internet and primarily consists of two types of algorithms,
Block and Stream. Some common encryption algorithms include the Advanced
Encryption Standard (AES) and the Data Encryption Standard (DES). This form of
encryption is traditionally faster than Asymmetric however it requires both the
sender and the recipient of the data to have the secret key. Asymmetric
cryptography does not rely on sharing a secret key and forms the basis of the FIDO
authentication framework.
2.0 Aim of Micro Project:
To secure our sensitive information.
To improve confidentiality, Integrity, Availability.
To encrypt and decrypt the information.
Downloaded by PRASHANT BHAMBARE
3.0 Course Outcomes Integrated:
Apply cryptographic algorithms and protocol to maintain computer security.
Apply the encrypt and decrypt algorithm to protect our sensitive data.
Apply user identification and authentication methods.
Maintain secured network.
4.0 Actual Procedure Followed :
1. Define project goals and objectives.
2. Plan project scope and timeline.
3. Allocate resources and assign responsibilities.
4. Implement project activities and tasks.
5. Monitor progress and adjust as needed.
6. Evaluate outcomes and measure success.
7. Document lessons learned and best practices.
5.0 Literature Review
During this time when the Internet provides essential communication between tens
of millions of people and is being increasingly used as a tool for commerce, security
becomes a tremendously important issue to deal with. There are many aspects to
security and many applications, ranging from secure commerce and payments to
private communications and protecting passwords.
Cryptography is the science of using mathematics to encrypt and decrypt data.
Cryptography enables you to store sensitive information or transmit
it across insecure networks (like the Internet) so that it cannot be read by anyone
except the intended recipient. While cryptography is the science
of securing data, cryptanalysis is the science of analyzing and breaking secure
communication. Classical cryptanalysis involves an interesting combination of
analytical reasoning, application of mathematical tools, pattern finding, patience,
determination, and luck. Cryptanalysts are also called attackers. Cryptology
embraces both cryptography and
cryptanalysis.
By using symmetric encryption algorithms, data is "scrambled" so that it can't be
understood by anyone who does not possess the secret key to decrypt it. Once the
2
Downloaded by PRASHANT BHAMBARE
intended recipient who possesses the key has the message, the algorithm reverses its
action so that the message is returned to its original readable form. The secret key that
the sender and recipient both use could be a specific password or code or it can be
random string
of letters or numbers that have been generated by a secure random number generator
(RNG). For banking−grade encryption, the symmetric
keys must be created using an RNG that is certified according to industry standards,
such as FIPS 140−2.
6.0 Actual Resources Required:
Sr. Name of
Specifications Qty
No. Resource/material
1 Software Android Studio 1
Operating System: Windows 7
or higher Memory:8GB
2 Computer System 1
RAM.Processor:CoreiHDD:500
GB or Larger
Downloaded by PRASHANT BHAMBARE
Implementation and Result :-
Data encryption standard (DES) has been found vulnerable against very powerful
attacks and therefore, the popularity of DES has been found slightly on the decline.DES is a
block cipher and encrypts data in blocks of size of 64 bits each, which means 64 bits of plain
text goes as the input to DES, which produces 64 bits of cipher text. The same algorithm and
key are used for encryption and decryption, with minor differences. The key length is 56 bits.
The basic idea is shown in the figure.
We have mentioned that DES uses a 56-bit key. Actually, the initial key consists of 64
bits. However, before the DES process even starts, every 8th bit of the key is discarded to
produce a 56-bit key. That is bit positions 8, 16, 24, 32, 40, 48, 56, and 64 are discarded.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Downloaded by PRASHANT BHAMBARE
Thus, the discarding of every 8th bit of the key produces a 56-bit key from the original
64-bit key.
DES is based on the two fundamental attributes of cryptography: substitution (also
called confusion) and transposition (also called diffusion). DES consists of 16 steps, each of
which is called a round. Each round performs the steps of substitution and transposition. Let
us now discuss the broad-level steps in DES.
1. In the first step, the 64-bit plain text block is handed over to an initial Permutation
(IP) function.
2. The initial permutation is performed on plain text.
3. Next, the initial permutation (IP) produces two halves of the permuted block;
says Left Plain Text (LPT) and Right Plain Text (RPT).
4. Now each LPT and RPT go through 16 rounds of the encryption process.
5. In the end, LPT and RPT are rejoined and a Final Permutation (FP) is performed
on the combined block
6. The result of this process produces 64-bit cipher text.
Downloaded by PRASHANT BHAMBARE
Initial Permutation (IP) –
As we have noted, the initial permutation (IP) happens only once and it happens
before the first round. It suggests how the transposition in IP should proceed, as shown in the
figure.
For example, it says that the IP replaces the first bit of the original plain text block
with the 58th bit of the original plain text, the second bit with the 50th bit of the original plain
text block, and so on.
This is nothing but jugglery of bit positions of the original plain text block. the same
rule applies to all the other bit positions shown in the figure.
58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
61 33 45 37 29 21 13 5 63 55 47 39 31 23 15 7
As we have noted after IP is done, the resulting 64-bit permuted text block is divided
into two half blocks. Each half-block consists of 32 bits, and each of the 16 rounds, in turn,
consists of the broad level steps outlined in the figure.
Downloaded by PRASHANT BHAMBARE
Step-1: Key transformation –
We have noted initial 64-bit key is transformed into a 56-bit key by discarding every
8th bit of the initial key. Thus, for each a 56-bit key is available. From this 56- bit key, a
different48- bit Sub Key is generated during each round using a process called key
transformation. For this, the 56-bit key is divided into two halves, each of 28 bits. These
halves are circularly shiftedleft by one or two positions, depending on the round.
For example, if the round numbers 1, 2, 9, or 16 the shift is done by only position for
other rounds, the circular shift is done by two positions. The number of key bits shifted per
round is shown in the figure.
Round 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#key 1 1 2 2 2 2 2 1 2 2 2 2 2 2 2 1
bits
shifted
Fig. Number of keys bits shifted per round
After an appropriate shift, 48 of the 56 bits are selected. for selecting 48 of the 56 bits
the table is shown in the figure given below. For instance, after the shift, bit number 14 moves
on the first position, bit number 17 moves on the second position, and so on. If we observe the
table carefully, we will realize that it contains only 48-bit positions. Bit number 18 is
discarded (we will not find it in the table), like 7 others, to reduce a 56-bit key to a 48-bit key.
Since the key transformation process involves permutation as well as a selection of a 48-bit
subset of the original 56-bit key it is called Compression Permutation.
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
Fig.Compression Permutation
Because of this compression permutation technique, a different subset of key bits isused in
each round. That makes DES not easy to crack.
7
Downloaded by PRASHANT BHAMBARE
Step-2: Expansion Permutation –
Recall that after initial permutation, we had two 32-bit plain text areas called Left
Plain Text(LPT) and Right Plain Text(RPT). During the expansion permutation, the RPT is
expanded from 32 bits to 48 bits. Bits are permuted as well hence called expansion
permutation. This happens as the 32-bit RPT is divided into 8 blocks, with each
blockconsisting of 4 bits. Then, each 4-bit block of the previous step is then expanded to
acorresponding 6-bit block, i.e., per 4-bit block, 2 more bits are added
This process results in expansion as well as a permutation of the input bit while creating
output. The key transformation process compresses the 56-bit key to 48 bits. Then the expansion
permutation process expands the 32-bit RPT to 48-bits. Now the 48- bit key is XOR with 48-bit
RPT and the resulting output is given to the next step, which is the S-Box substitution.
Downloaded by PRASHANT BHAMBARE
Program Code:
# Hexadecimal to binary conversion
def hex2bin(s):
mp = {'0': "0000",
'1': "0001",
'2': "0010",
'3': "0011",
'4': "0100",
'5': "0101",
'6': "0110",
'7': "0111",
'8': "1000",
'9': "1001",
'A': "1010",
'B': "1011",
'C': "1100",
'D': "1101",
'E': "1110",
'F': "1111"}
bin = ""
for i in range(len(s)):
bin = bin + mp[s[i]]
return bin
# Binary to hexadecimal conversion
def bin2hex(s):
mp = {"0000": '0',
"0001": '1',
"0010": '2',
"0011": '3',
"0100": '4',
"0101": '5',
"0110": '6',
"0111": '7',
"1000": '8',
"1001": '9',
"1010": 'A',
"1011": 'B',
"1100": 'C',
"1101": 'D',
"1110": 'E',
"1111": 'F'}
hex = ""
for i in range(0, len(s),
4): ch = ""
ch = ch + s[i]
ch = ch + s[i + 1]
ch = ch + s[i + 2]
ch = ch + s[i + 3]
hex = hex +
mp[ch]
return hex
# Binary to decimal conversion
def bin2dec(binary):
9
binary1 = binary
Downloaded by PRASHANT BHAMBARE
decimal, i, n = 0, 0,
0
Downloaded by PRASHANT BHAMBARE
while (binary != 0):
dec = binary % 10
decimal = decimal + dec * pow(2, i)
binary = binary // 10
i += 1
return decimal
# Decimal to binary conversion
def dec2bin(num):
res = bin(num).replace("0b", "")
if (len(res) % 4 != 0):
div = len(res) / 4
div = int(div)
counter = (4 * (div + 1)) - len(res)
for i in range(0, counter):
res = '0' + res
return res
# Permute function to rearrange the bits
def permute(k, arr, n):
permutation = ""
for i in range(0, n):
permutation = permutation + k[arr[i] - 1]
return permutation
# shifting the bits towards left by nth shifts
def shift_left(k,
nth_shifts): s = ""
for i in range(nth_shifts):
for j in range(1,
len(k)): s = s + k[j]
s = s + k[0]
k = s
s = ""
return k
# calculating xow of two strings of binary number a and b
def xor(a, b):
ans = ""
for i in range(len(a)):
if a[i] == b[i]:
ans = ans +
"0"
else:
ans = ans + "1"
return ans
# Table of Position of 64 bits at initial level: Initial
Permutation Table
initial_perm = [58, 50, 42, 34, 26, 18, 10, 2,
60, 52, 44, 36, 28, 20, 12, 4,
62, 54, 46, 38, 30, 22, 14, 6,
64, 56, 48, 40, 32, 24, 16, 8,
57, 49, 41, 33, 25, 17, 9, 1,
59, 51, 43, 35, 27, 19, 11, 3,
61, 53, 45, 37, 29, 21, 13, 5,
63, 55, 47, 39, 31, 23, 15, 7]
# Expansion D-box Table
10
exp_d = [32, 1, 2, 3, 4, 5, 4, 5,
Downloaded by PRASHANT BHAMBARE
6, 7, 8, 9, 8, 9, 10, 11,
Downloaded by PRASHANT BHAMBARE
12, 13, 12, 13, 14, 15, 16, 17,
16, 17, 18, 19, 20, 21, 20, 21,
22, 23, 24, 25, 24, 25, 26, 27,
28, 29, 28, 29, 30, 31, 32, 1]
# Straight Permutation Table
per = [16, 7, 20, 21,
29, 12, 28, 17,
1, 15, 23, 26,
5, 18, 31, 10,
2, 8, 24, 14,
32, 27, 3, 9,
19, 13, 30, 6,
22, 11, 4, 25]
# S-box Table
sbox = [[[14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12 5, 9, 0,
7],
8],
0],
13]],
[0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3
[4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5,
[15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6,
10],
5],
15],
9]],
8],
1],
7],
12]],
[[15, 1, 8, 14, 6,11, 3, 4, 9, 7, 2, 13, 12, 0, 5,
[3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11,
[0, 14, 7, 11,
[13, 8, 10, 1,
[[10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2,
[13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15,
[13, 6, 4, 9, 8, 15,
[1, 10, 13, 0, 6, 9,
15],
9],
4],
14]],
[[7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4,
[13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14,
[10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8,
[3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2,
9],
[[2, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14,
[14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8,
10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2,
3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14,
3, 0, 11, 1, 2, 12, 5, 10, 14,
8, 7, 4, 15, 14, 3, 11, 5, 2, 11
6],
Downloaded by PRASHANT BHAMBARE
Downloaded by PRASHANT BHAMBARE
[4, 2, 1, 11, 10, 13, 7, 8, 15, 9, 12, 5, 6, 3, 0,
14],
[11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5,
3]],
11],
[[12,
[10,
1, 10,
15, 4,
15, 9, 2,
2, 7, 12,
6,
9,
8,
5,
0,
6,
13, 3, 4, 14, 7, 5,
1, 13, 14, 0, 11, 3,
8],
[9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11,
6],
[4, 3, 2, 12, 5, 15, 10, 11, 14, 1, 7, 0, 8,
9, 6,
13]],
1],
6],
2],
12]],
[[4, 11, 14, 15, 0, 8, 13, 3,
2,
[13, 0, 11, 7, 4, 9, 1, 10, 14,
[1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9,
[6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3,
7],
2],
8],
11]]]
[[13, 2,
[1, 15,
[7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5,
[2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6,
# Final Permutation Table
final_perm = [40, 8, 48, 16, 56, 24, 64, 32,
39, 7, 47, 15, 55, 23, 63, 31,
38, 6, 46, 14, 54, 22, 62, 30,
37, 5, 45, 13, 53, 21, 61, 29,
36, 4, 44, 12, 52, 20, 60, 28,
35, 3, 43, 11, 51, 19, 59, 27,
34, 2, 42, 10, 50, 18, 58, 26,
33, 1, 41, 9, 49, 17, 57, 25]
def encrypt(pt, rkb, rk):
pt = hex2bin(pt)
# Initial Permutation
12
pt = permute(pt, initial_perm, 64)
Downloaded by PRASHANT BHAMBARE
print("After initial permutation",
bin2hex(pt))
Downloaded by PRASHANT BHAMBARE
# Splitting
left = pt[0:32]
right = pt[32:64]
for i in range(0, 16):
# Expansion D-box: Expanding the 32 bits data into 48
bits
right_expanded = permute(right, exp_d,
48) # XOR RoundKey[i] and
right_expanded xor_x =
xor(right_expanded, rkb[i])
# S-boxex: substituting the value from s-box table by
calculating row and column
sbox_str = ""
for j in range(0, 8):
row = bin2dec(int(xor_x[j * 6] + xor_x[j * 6
+ 5]))
col = bin2dec(int(xor_x[j * 6 + 1] + xor_x[j * 6
+ 2] + xor_x[j * 6 + 3] + xor_x[j * 6 + 4]))
val = sbox[j][row][col]
sbox_str = sbox_str + dec2bin(val)
# Straight D-box: After substituting rearranging the
bits
sbox_str = permute(sbox_str, per, 32)
# XOR left and sbox_str
result = xor(left,
sbox_str) left = result
# Swapper
if (i != 15):
left, right = right, left
print("Round ", i + 1, " ", bin2hex(left), "
", bin2hex(right), " ", rk[i])
# Combination
combine = left + right
# Final permutation: final rearranging of bits to get
cipher text
cipher_text = permute(combine, final_perm, 64)
return cipher_text
pt =
"123456ABCD132536" key
= "AABB09182736CCDD"
# Key
generation #
--hex to binary
key =
hex2bin(key)
# --parity bit drop table
keyp = [57, 49, 41, 33, 25, 17, 9,
1, 58, 50, 42, 34, 26, 18,
10, 2, 59, 51, 43, 35, 27,
19, 11, 3, 60, 52, 44, 36,
63, 55, 47, 39, 31, 23, 15,
7, 62, 54, 46, 38, 30, 22,
14, 6, 61, 53, 45, 37, 29,
21, 13, 5, 28, 20, 12, 4]
Downloaded by PRASHANT BHAMBARE
# getting 56 bit key from 64 bit using the parity bits
key = permute(key, keyp,
13
56) # Number of bit shifts
shift_table = [1, 1, 2, 2,
Downloaded by PRASHANT BHAMBARE
2, 2, 2, 2,
1, 2, 2, 2,
2, 2, 2, 1]
# Key- Compression Table : Compression of key from 56 bits to
48 bits
key_comp = [14, 17, 11, 24, 1, 5,
3, 28, 15, 6, 21, 10,
23, 19, 12, 4, 26, 8,
16, 7, 27, 20, 13, 2,
41, 52, 31, 37, 47, 55,
30, 40, 51, 45, 33, 48,
44, 49, 39, 56, 34, 53,
46, 42, 50, 36, 29, 32]
# Splitting
left = key[0:28] # rkb for RoundKeys in binary
righ = key[28:56] # rk for RoundKeys in hexadecimal
t
rkb = []
rk = []
for i in range(0, 16):
# the bits by nth shifts by checking from shift
Shifting
table
left = shift_left(left,
shift_table[i]) right =
shift_left(right, shift_table[i]) #
Combination of left and right string
combine_str = left + right
# Compression of key from 56 to 48 bits
round_key = permute(combine_str, key_comp,
48) rkb.append(round_key)
rk.append(bin2hex(round_key))
print("Encryption")
cipher_text = bin2hex(encrypt(pt, rkb, rk))
print("Cipher Text : ", cipher_text)
print("Decryption")
rkb_rev = rkb[::-1]
rk_rev = rk[::-1]
text = bin2hex(encrypt(cipher_text, rkb_rev, rk_rev))
print("Plain Text : ", text
Downloaded by PRASHANT BHAMBARE
14
Downloaded by PRASHANT BHAMBARE
Output:
15
Downloaded by PRASHANT BHAMBARE
7.0 Conclusion:
Cryptography plays vital role in explosive growth of digital data storage and
communication. It is used to achieve the mains of security goals like confidentiality,
integrity, authentication, non-repudiation. In order to achieve these goals, various
cryptographic algorithms are developed. In which some of the algorithms are
succeed and other failed due to lack of security. The algorithm for encryption can be
selected based on the type of data being communicated and type of channel through
which data is being communicated. The main purpose of this project is to give
knowledge about the symmetric key cryptography. Due to the better performance
and faster speed of symmetric encryption, symmetric cryptography is typically used
for bulk encryption of large amounts of data.
8.0 Skill Developed / learning out of this Micro-Project:.
1. Scheduling of Project.
2. Documentation of Project.
3. Develops efficient and effective search strategies.
4. Understands standard systems of information organization.
9.0 Reference
a) www.tutorialspoint.com
b) www.gfg.com
c) https://www.vmware.com/topics/glossary/content/network-security.com
d) https://www.cisco.com/c/en_in/products/security/what-is-network-security.html
e) https://www.checkpoint.com/cyber-hub/network-security/what-is-network-security
f) Books – Network and Information Security
16
Downloaded by PRASHANT BHAMBARE
Micro Project Evaluation Sheet
Name of Student: Adarsh Mishra Enrollment No:
2101440206. Name of Programme: Information Technology(IF61)
Semester: VI. Course Title: Network and Information Security
Code:22620
Title of Micro Project: Study Of Symmetric Key Cryptography.
Course Outcomes Achieved:
a) Interpret features of Android Operating System.
b) Configure Android environment and development tools.
c) Develop rich user Interface by using layouts and controls.
d) User User Interface components for android application development.
Sr.n Charateristic to Poor(Mar Average(Ma Good(Mar Excellent(Ma Sub
o be assessed ks 1-3) rks 4 - 5) ks 6-8 ) rks 9-10) Total
(A)Process and Product Assessment(Convert above total marks out of 6 marks.)
1. Relevance to the
Course
2. Literature
Review/information
collection
3. Completion of the
target as per project
proposal
4. Analysis of data and
representation
5. Quality of
Prototype/Model
6. Report Preparation.
(B) Individual Presentation/Viva (Convert above marks Total Marks out of 4)
7. Presentation
8. Viva
(A) (B) Total Marks 10
Process and Product Individual
Assessment (6 marks) Presentation/Viva(4 marks)
Comments/Suggestions about team work.leadership/inter-personal communication
…………………………………………………………………………………………
……………………………………………………………………………………….
Name and designation of the Teacher
Dated Signature ……………………………………………..
17
Downloaded by PRASHANT BHAMBARE
Micro Project Evaluation Sheet
Name of Student: Laukik Phalke Enrollment No :
2101440207. Name of Programme: Information Technology(IF61) Semester: VI.
Course Title: Network and Information Security Code: 22620
Title of Micro Project: Study Of Symmetric Key Cryptography.
Course Outcomes Achieved:
a) Interpret features of Android Operating System.
b) Configure Android environment and development tools.
c) Develop rich user Interface by using layouts and controls.
d) User User Interface components for android application development.
Sr.n Characteristic to Poor(Mar Average(Ma Good(Mar Excellent(Ma Sub
o be assessed ks 1-3) rks 4 - 5) ks 6-8 ) rks 9-10) Total
(A)Process and Product Assessment(Convert above total marks out of 6 marks.)
1. Relevance to the
Course
2. Literature
Review/information
collection
3. Completion of the
target as per project
proposal
4. Analysis of data and
representation
5. Quality of
Prototype/Model
6. Report Preparation.
(B) Individual Presentation/Viva (Convert above marks Total Marks out of 4)
7. Presentation
8. Viva
(A) (B) Total Marks 10
Process and Product Individual
Assessment (6 marks) Presentation/Viva(4 marks)
Comments/Suggestions about team work.leadership/inter-personal communication
…………………………………………………………………………………………
……………………………………………………………………………………….
Name and designation of the Teacher
..Dated Signature ……………………………………………..
18
Downloaded by PRASHANT BHAMBARE
Micro Project Evaluation Sheet
Name of Student: Priyanka Pandey Enrollment No:
2101440208. Name of Programme: Information Technology(IF61) Semester: VI.
Course Title: Network and Information Security Code: 22620
Title of Micro Project: Study Of Symmetric Key Cryptography.
Course Outcomes Achieved:
a) Interpret features of Android Operating System.
b) Configure Android environment and development tools.
c) Develop rich user Interface by using layouts and controls.
d) User User Interface components for android application development.
Sr.n Characteristic to Poor(Mar Average(Ma Good(Mar Excellent(Ma Sub
o be assessed ks 1-3) rks 4 - 5) ks 6-8 ) rks 9-10) Total
(A)Process and Product Assessment(Convert above total marks out of 6 marks.)
1. Relevance to the
Course
2. Literature
Review/information
collection
3. Completion of the
target as per project
proposal
4. Analysis of data and
representation
5. Quality of
Prototype/Model
6. Report Preparation.
(B) Individual Presentation/Viva (Convert above marks Total Marks out of 4)
7. Presentation
8. Viva
(A) (B) Total Marks 10
Process and Product Individual
Assessment (6 marks) Presentation/Viva(4 marks)
Comments/Suggestions about team work.leadership/inter-personal communication
…………………………………………………………………………………………
……………………………………………………………………………………….
Name and designation of the Teacher
.Dated Signature ……………………………………………..
19
Downloaded by PRASHANT BHAMBARE