Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Breaking streamcipher, encrypted by a pseudorandom number generator (PRNG) 1- I have this encrypted file that I need to break using a programming language: https://drive.google.com/open?id=1gZCujDYmEL-FZ5o_xBUS-Ng5979HSsZ7

Breaking streamcipher, encrypted by a pseudorandom number generator (PRNG)

1- I have this encrypted file that I need to break using a programming language: https://drive.google.com/open?id=1gZCujDYmEL-FZ5o_xBUS-Ng5979HSsZ7

2- the original file is a latex file and the plaintext of it probably starts with \documentclass,

3- its a stream cipher and pseudo-number generator was used

4- the code that been used for encryption is a C program, below

5- I need to know how to xor the known plaintext with the ciphertext from the file, and use the resulted bytes as as seed,

/* The ISO/IEC 9899:1990 edition of the C standard */

#define RAND_MAX 32767

static unsigned long int next = 1;

int rand(void) // RAND_MAX assumed to be 32767

{

next = next * 1103515245 + 12345;

return (unsigned int)(next/65536) % 32768;

}

void srand(unsigned int seed)

{

next = seed;

}

#include

#include

//Return a byte at a time of the rand() keystream

char randchar() {

static int key;

static int i = 0;

i = i % 4;

if (i == 0) key = rand();

return ((char *)(&key))[i++];

}

int main(int argc, const char* argv[]) {

static char randstate[64];

srand(time(NULL));

FILE *input, *output;

input = fopen("Homework1b.tex", "r");

output = fopen("Homework1b.tex.enc", "w");

int c,rc;

while ((c = fgetc(input)) != EOF) {

rc=randchar();

printf("c=%d (%c) and rc=%d ",c,c,rc);

fputc(c^rc,output);

}

fclose(input);

fclose(output);

}

image text in transcribed

standard #de fine RAND MAX 32767 static unsigned long int next1; int rand (voidRAND MAX assumed to be 32767 next = next * 1103515245 + 12345; return (unsigned int) (next/65536) % 32768; void srand (unsigned int seed) next seed ; include include //Return a byte at a time of the rand () keystream char randchar) static int key: static int i-0 if (i-0) key rand ( ); return ((char ) (&key [i++ int main (int argc, const char argv) static char randstate [64] srand (time (NULL)) FILE *input, *output; inputfopen ("Homeworklb.tex", "r") output = fopen ("Homework!b.tex.enc", int c,rc; while ((c fgetc (input))!-EOF) rc=randchar () ; printf ("c %d (tc) and rc-%d ", c, c, rc) ; fputc (chrc,output) fclose (input) fclose (output) standard #de fine RAND MAX 32767 static unsigned long int next1; int rand (voidRAND MAX assumed to be 32767 next = next * 1103515245 + 12345; return (unsigned int) (next/65536) % 32768; void srand (unsigned int seed) next seed ; include include //Return a byte at a time of the rand () keystream char randchar) static int key: static int i-0 if (i-0) key rand ( ); return ((char ) (&key [i++ int main (int argc, const char argv) static char randstate [64] srand (time (NULL)) FILE *input, *output; inputfopen ("Homeworklb.tex", "r") output = fopen ("Homework!b.tex.enc", int c,rc; while ((c fgetc (input))!-EOF) rc=randchar () ; printf ("c %d (tc) and rc-%d ", c, c, rc) ; fputc (chrc,output) fclose (input) fclose (output)

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

Students also viewed these Databases questions