Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Please convert this code from Python program to JAVA Solution :- This is a Python program for your encryption and descryption approach. Enter your plaintext

Please convert this code from Python program to JAVA

Solution :-

This is a Python program for your encryption and descryption approach.

Enter your plaintext from condition 1.

Programming Code -

# Python program to demonstrate # Feistel Cipher Algorithm

import binascii

# Random bits key generation def rand_key(p): import random key1 = "" p = int(p) for i in range(p): temp = random.randint(0,1) temp = str(temp) key1 = key1 + temp return(key1)

# Function to implement bit exor def exor(a,b): temp = "" for i in range(n): if (a[i] == b[i]): temp += "0" else: temp += "1" return temp

# Defining BinarytoDecimal() function def BinaryToDecimal(binary): # Using int function to convert to # string string = int(binary, 2) return string

# Feistel Cipher PT = input("Enter Plaintext:") # Enter your your Plaintext print("Plain Text is:", PT)

# Converting the plain text to # ASCII PT_Ascii = [ord(x) for x in PT]

# Converting the ASCII to # 8-bit binary format PT_Bin = [format(y,'08b') for y in PT_Ascii] PT_Bin = "".join(PT_Bin)

n = int(len(PT_Bin)//2) L1 = PT_Bin[0:n] R1 = PT_Bin[n::] m = len(R1)

# Generate Key K1 for the # first round K1= rand_key(m)

# Generate Key K2 for the # second round K2= rand_key(m)

# first round of Feistel f1 = exor(R1,K1) R2 = exor(f1,L1) L2 = R1

# Second round of Feistel f2 = exor(R2,K2) R3 = exor(f2,L2) L3 = R2

# Cipher text bin_data = L3 + R3 str_data =' '

for i in range(0, len(bin_data), 7): # slicing the bin_data from index range [0, 6] # and storing it in temp_data temp_data = bin_data[i:i + 7] # passing temp_data in BinarytoDecimal() function # to get decimal value of corresponding temp_data decimal_data = BinaryToDecimal(temp_data) # Deccoding the decimal value returned by # BinarytoDecimal() function, using chr() # function which return the string corresponding # character for given ASCII value, and store it # in str_data str_data = str_data + chr(decimal_data) print("Cipher Text:", str_data)

# Decryption L4 = L3 R4 = R3

f3 = exor(L4,K2) L5 = exor(R4,f3) R5 = L4

f4 = exor(L5,K1) L6 = exor(R5,f4) R6 = L5 PT1 = L6+R6

PT1 = int(PT1, 2) RPT = binascii.unhexlify( '%x'% PT1) print("Retrieved Plain Text is: ", RPT)

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications 24th International Conference Dexa 2013 Prague Czech Republic August 2013 Proceedings Part 1 Lncs 8055

Authors: Hendrik Decker ,Lenka Lhotska ,Sebastian Link ,Josef Basl ,A Min Tjoa

2013 Edition

3642402844, 978-3642402845

More Books

Students also viewed these Databases questions

Question

What is a concept test?

Answered: 1 week ago

Question

WHAT IS AUTOMATION TESTING?

Answered: 1 week ago

Question

What is Selenium? What are the advantages of Selenium?

Answered: 1 week ago

Question

=+ a. How does this change affect the incentives for working?

Answered: 1 week ago