Problem 54
Give two reasons why PGP compresses messages.
Problem 55
Is it possible to multicast a PGP message? What restrictions would apply?
Problem 56
Assuming that everyone on the Internet used PGP, could a PGP message be sent to an arbitrary Internet address and be decoded correctly by all concerned? Discuss your answer.
Problem 57
The SSL data transport protocol involves two nonces as well as a premaster key. What value, if any, does using the nonces have?
Problem 60
You are given a text file of size \(60 \mathrm{MB}\), which is to be hidden using steganography in the low-order bits of each color in an image file. What size image would be required in order to encrypt the entire file? What size would be needed if the file were first compressed to a third of its original size? Give your answer in pixels, and show your calculations. Assume that the images have an aspect ratio of \(3: 2\), for example, \(3000 \times\) 2000 pixels.
Problem 61
Alice was a heavy user of a type 1 anonymous remailer. She would post many messages to her favorite newsgroup, alt fanclub alice, and everyone would know they all came from Alice because they all bore the same pseudonym. Assuming that the remailer worked correctly, Trudy could not impersonate Alice. After type 1 remailers were all shut down, Alice switched to a cypherpunk remailer and started a new thread in her newsgroup. Devise a way for her to prevent Trudy from posting new messages to the newsgroup, impersonating Alice.
Problem 63
While traveling abroad, you connect to the WiFi network in your hotel using a unique password. Explain how an attacker may eavesdrop on your communication.
Problem 64
Search the Internet for some court case involving copyright versus fair use and write a 1-page report summarizing your findings.
Problem 65
Write a program that encrypts its input by XORing it with a keystream. Find or write as good a random number generator as you can to generate the keystream. The program should act as a filter, taking plaintext on standard input and producing ciphertext on standard output (and vice versa). The program should take one parameter, the key that seeds the random number generator.
Problem 67
Write a function that accepts a stream of ASCII characters and encrypts this input using a substitution cipher with the Cipher Block Chaining mode. The block size should be 8 bytes. The program should take plaintext from the standard input and print the ciphertext on the standard output. For this problem, you are allowed to select any reasonable system to determine that the end of the input is reached, and/or when padding should be applied to complete the block. You may select any output format, as long as it is unambiguous. The program should receive two parameters: 1\. A pointer to the initializing vector; and 2\. A number, \(k\), representing the substitution cipher shift, such that each ASCII character would be encrypted by the \(k\) th character ahead of it in the alphabet. For example, if \(x=3\), then " \(\mathrm{A} "\) is encoded by " \(\mathrm{D} ", " \mathrm{~B} "\) is encoded by "E" etc. Make reasonable assumptions with respect to reaching the last character in the ASCII set. Make sure to document clearly in your code any assumptions you make about the input and encryption algorithm.