1)(Parallelism) An attacker performs three attacks of 2^120 operations each on t

February 1, 2024

1)(Parallelism) An attacker performs three attacks of 2^120 operations each on three different days. On the first day, the attacker only uses one processor to perform those 2^120 operations (sequentially dependent operations). On the second day, the attacker uses 2^32 processors to perform such 2^120 operations (parallel processing operations, e.g., each processor does the same number of operations). And the third day, the attacker uses 2^42 processors to perform also 2^120 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?

Please show all the work/calculations.

Hint: Day 2 and Day 3 are independent of each other. Same as the example we did in class

2) We have a cryptosystem that uses a 256-bit key. If we are able to try 512 256-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).

Picture1.png

  • First, I imported the module secrets for generating cryptographically strong random numbers.
  • Line 3 can be omitted since I wanted to use it for something else.
  • Next, I declared the variable AES_key_length which contains the number of bytes my 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 my secret_key and my secret_key1 variables.

In this linkLinks to an external site., there is one more function: token_hex.

You need to implement the token_hex function to output random 192-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 be secret_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 have 192 bits (remember that 16 means 16 bytes. 1 byte = 8 bits). Lastly, you just need to print your secret_key2 at the end of the code.

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

PreviousNext

Are you struggling with this assignment?

Our team of qualified writers will write an original paper for you. Good grades guaranteed! Complete paper delivered to straight to your email.

GET HELP WITH YOUR PAPER