PART ONE:Randomness and Cryptographic Security 1) (Parallelism) An attacker performs three attacks of 2^128 operations each on three different days. On the first day, the attacker only uses one...

1 answer below »

PART ONE:Randomness and Cryptographic Security



1)
(Parallelism)An attacker performs three attacks of 2^128 operations each on three different days. On the first day, the attacker only uses one processor to perform those 2^128 operations (sequentially dependent operations). On the second day, the attacker uses 2^20 processors to perform such 2^128 operations (parallel processing operations, e.g., each processor does the same number of operations). And the third day, the attacker uses 2^34 processors to perform also 2^128 operations.


- How much faster will the attacker complete the attacks on Day 2? And on Day 3?


- How many operations does each processor perform on Day 2? And on Day 3?


Pleaseshow all the work/calculations.Hint:Day 2 and Day 3 are independent of each other.



2)We have a cryptosystem that uses a 192-bit key.If we are able to try 1024 192-bit keys every day, how many days would it take us to check every possible key?(For example, this would be 4 2-bit keys: 00, 01, 10, 11)


Hint: The first thing you should do is calculate the total number of possible keys. We have seen that before and talked about it, e.g., if my key is 3-bits long, then I can obtain 8 different keys.



3)This code prints random 16 bytes in two different formats: Raw bytes and URL-Safe (with characters that we actually use, more readable).



·First, I imported the modulesecretsfor generating cryptographically strong random numbers.


·Line 3 can be omitted since I wanted to use it for something else.


·Next, I declared the variableAES_key_lengthwhich contains the number ofbytesmy random key will have.


·After that, I declared
secret_key

(you can name it differently)and assigned
secrets.token_bytes(AES_key_lenght)

to it; and
secret_key1

(you can name it differently)and assigned
secrets.token_urlsafe(AES_key_lenght)

to it.


·Note:
secrets.
is needed before most of the functions in the secrets module. The functions I used are two:
token_bytes(...)
and
token_urlsafe(...)
.


·Lastly, I just print two sentences to show the contents of mysecret_keyand mysecret_key1variables.


In thislink(Links to an external site.), there is one more function:token_hex.



You need to implement the token_hex function to output random
256-bits
keys in the three different formats (2 of them are already done)


Hint: To do this, you will need to create one more variable between lines 7 and 8 (it can besecret_key2), and instead of token_bytes or token_urlsafe, use the token_hex function. Then, you will need to change the number 16 (bytes) since we want to have256 bits(remember that 16 means16 bytes.1 byte = 8 bits). Lastly, you just need to print yoursecret_key2at the end of the code.


In summary, you will need to add two lines to the program given and change the number 16.



PART TWO: Stream Ciphers



Show all the calculationsas is shown in the lecture/book.


1) Consider a 5-bit FSR whose feedback functionfXORs all 5 bits together.Show 2 cycles of that FSR: one that starts with 00001, and one that starts with 11110 of that FSR.


2) Consider a 3-bit LFSR whose feedback polynomial is X^3 + X^2 + 1. Show all the cycles of that LFSR.



Hint:
The bits in the LFSR state that influence the input are called taps. The "one" in the polynomial doesnotcorrespond to a tap – it corresponds to the input to the first bit (i.e. x^0, which is equivalent to 1). So, in the assignment, there are only two taps (in other words, you just need to XOR two bits each time)


Answered 1 days AfterFeb 12, 2022

Answer To: PART ONE:Randomness and Cryptographic Security 1) (Parallelism) An attacker performs three attacks...

Sandeep Kumar answered on Feb 14 2022
121 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here