Feistel Cipher

2
FEISTEL CIPHER import java.io.*; import java.util.*; class feistel { public static void main(String args[]) throws Exception { int a[]=new int[20]; int left[]=new int[10]; int right[]=new int[10]; int key[]=new int[10]; int temp[]=new int[10]; int m[]=new int[10]; int i,k; Scanner sc=new Scanner(System.in); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter length of string:"); int n=Integer.parseInt(br.readLine()); System.out.println("Enter plaintext:"); for(i=0;i<n;i++) a[i]=sc.nextInt(); System.out.println("Enter key:"); for(i=0;i<(n/2);i++) key[i]=sc.nextInt(); for(i=0;i<(n/2);i++) left[i]=a[i]; for(int j=0;i<n;i++,j++ ) right[j]=a[i]; System.out.println("Left string:"); for(i=0;i<(n/2);i++) System.out.print(left[i]); System.out.println(); System.out.println("Right string:"); for(i=0;i<(n/2);i++) System.out.print(right[i]); for(k=0;k<4;k++) { for(i=0;i<(n/2);i++) { if(key[i]==right[i]) temp[i]=0; else temp[i]=1; } for(i=0;i<(n/2);i++) { if(left[i]==temp[i]) m[i]=0; else m[i]=1; }

description

Program for Feistel Cipher

Transcript of Feistel Cipher

Page 1: Feistel Cipher

7/15/2019 Feistel Cipher

http://slidepdf.com/reader/full/feistel-cipher 1/2

FEISTEL CIPHER

import java.io.*;

import java.util.*;

class feistel

{

public static void main(String args[]) throws Exception

{int a[]=new int[20];

int left[]=new int[10];

int right[]=new int[10];

int key[]=new int[10];

int temp[]=new int[10];

int m[]=new int[10];

int i,k;

Scanner sc=new Scanner(System.in);

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

System.out.println("Enter length of string:");

int n=Integer.parseInt(br.readLine());System.out.println("Enter plaintext:");

for(i=0;i<n;i++)

a[i]=sc.nextInt();

System.out.println("Enter key:");

for(i=0;i<(n/2);i++)

key[i]=sc.nextInt();

for(i=0;i<(n/2);i++)

left[i]=a[i];

for(int j=0;i<n;i++,j++)

right[j]=a[i];

System.out.println("Left string:");

for(i=0;i<(n/2);i++)

System.out.print(left[i]);

System.out.println();

System.out.println("Right string:");

for(i=0;i<(n/2);i++)

System.out.print(right[i]);

for(k=0;k<4;k++)

{

for(i=0;i<(n/2);i++)

{

if(key[i]==right[i])

temp[i]=0;else

temp[i]=1;

}

for(i=0;i<(n/2);i++)

{

if(left[i]==temp[i])

m[i]=0;

else

m[i]=1;

}

Page 2: Feistel Cipher

7/15/2019 Feistel Cipher

http://slidepdf.com/reader/full/feistel-cipher 2/2

for(i=0;i<(n/2);i++)

left[i]=right[i];

for(i=0;i<(n/2);i++)

right[i]=m[i];

System.out.println();

System.out.println("Round " + (k+1));

System.out.print("Left:");

for(i=0;i<(n/2);i++)

System.out.print(left[i]);System.out.println();

System.out.print("Right:");

for(i=0;i<(n/2);i++)

System.out.print(right[i]);

}

System.out.println();

System.out.println("Encrypted string is:");

for(i=0;i<(n/2);i++)

{

System.out.print(left[i]);

}

System.out.print(" ");

for(i=0;i<(n/2);i++)

System.out.print(right[i]);

}

}

/*OUTPUT:

C:\ins>java feistel

Enter length of string:

8

Enter plaintext:

0 1 0 1 0 1 0 1Enter key:

1 0 1 0

Left string:

0101

Right string:

0101

Round 1

Left:0101

Right:1010

Round 2

Left:1010Right:0101

Round 3

Left:0101

Right:0101

Round 4

Left:0101

Right:1010

Encrypted string is:

0101 1010

*/