Which among the following algorithms is designed based on the Feistel cipher?

You are probably trying to find “which among the following algorithms is designed based on the feistel cipher?”, good news, Free Homework India makes it really easy for any kid to to their homework in a matter of minutes, and totally for free, like 69 users have done in the last 10 minutes and 201 in the last hour. We save on average 30 hours per year on students.

This answer is categorized in the subject Science and for level Secondary School. 12 students answered this yesterday from cities such as Amrāvati, Farīdābād and Jaunpur.

Contents

  • 1 Question
  • 2 Answer
    • 2.1 Related questions

Question

Which Among The Following Algorithms Is Designed Based On The Feistel Cipher?

Answer

Answer:Feistel Cipher is not a specific scheme of block cipher. It is a design model from which many differentblock ciphers are derived. DES is just one example of a Feistel Cipher. A cryptographic system based on Feistel cipher structure uses the samealgorithm for both encryption and decryption.

  • . Data or information used to run the computer is called
  • Give an example of violation of consumers right to choose in the textbook
  • Why Bindusara often called slayer of foes.
  • महाराष्ट्र में कौन सी भाषा बोली जाती है
  • What type of chart will you use to compare performance of sales of two products ? A. Column Chart B. Line Chart C. Pie Chart D. Both A and B

Every day 98518 users come to Free Homework India to do their homework!

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Feistel Cipher model is a structure or a design used to develop many block ciphers such as DES. Feistel cipher may have invertible, non-invertible and self invertible components in its design. Same encryption as well as decryption algorithm is used. A separate key is used for each round. However same round keys are used for encryption as well as decryption. 
     

    Feistel cipher algorithm

    • Create a list of all the Plain Text characters. 
       
    • Convert the Plain Text to Ascii and then 8-bit binary format. 
       
    • Divide the binary Plain Text string into two halves: left half (L1)and right half (R1) 
       
    • Generate a random binary keys (K1 and K2) of length equal to the half the length of the Plain Text for the two rounds. 
       

    First Round of Encryption 

    • a. Generate function f1 using R1 and K1 as follows:
    f1= xor(R1, K1)
    • b. Now the new left half(L2) and right half(R2) after round 1 are as follows:
    R2= xor(f1, L1) L2=R1

    Second Round of Encryption 

    • a. Generate function f2 using R2 and K2 as follows: 
       
    f2= xor(R2, K2)
    • b. Now the new left half(L3) and right half(R3) after round 2 are as follows:
    R3= xor(f2, L2) L3=R2
    • Concatenation of R3 to L3 is the Cipher Text
    • Same algorithm is used for decryption to retrieve the Plain Text from the Cipher Text.

    Examples: 

    Plain Text is: Hello Cipher Text: E1!w( Retrieved Plain Text is: b'Hello' Plain Text is: Geeks Cipher Text: O;Q Retrieved Plain Text is: b'Geeks'

    Python3

    import binascii

    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)

    def exor(a,b):

        temp = ""

        for i in range(n):

            if (a[i] == b[i]):

                temp += "0"

            else:

                temp += "1"

        return temp

    def BinaryToDecimal(binary):

        string = int(binary, 2)

        return string

    PT = "Hello"

    print("Plain Text is:", PT)

    PT_Ascii = [ord(x) for x in PT]

    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)

    K1= rand_key(m)

    K2= rand_key(m)

    f1 = exor(R1,K1)

    R2 = exor(f1,L1)

    L2 = R1

    f2 = exor(R2,K2)

    R3 = exor(f2,L2)

    L3 = R2

    bin_data = L3 + R3

    str_data =' '

    for i in range(0, len(bin_data), 7):

        temp_data = bin_data[i:i + 7]

        decimal_data = BinaryToDecimal(temp_data)

        str_data = str_data + chr(decimal_data)

    print("Cipher Text:", str_data)

    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)

    Output:

    Plain Text is: Hello Cipher Text: E1!w( Retrieved Plain Text is: b'Hello'

    Is the design of the AES algorithm is based on Feistel cipher?

    Explanation: It uses a 128-bit block size and a key size of 128, 192, or 256 bits. 2. Like DES, AES also uses Feistel Structure.

    Which encryption algorithm follows Feistel cipher structure?

    Explanation: DES follows Feistel Cipher Structure. Explanation: The DES Algorithm Cipher System consists of 16 rounds (iterations) each with a round key. Explanation: DES encrypts blocks of 64 bits using a 64 bit key.

    Which of the following techniques are used in Feistel ciphers?

    The encryption process uses the Feistel structure consisting multiple rounds of processing of the plaintext, each round consisting of a “substitution” step followed by a permutation step. The input block to each round is divided into two halves that can be denoted as L and R for the left half and the right half.

    Is DES based on Feistel?

    DES was based on a revolutionary new approach to encryption developed at IBM by Horst Feistel '37 and published in the May 1973 Scientific American.