Home Page > > Details

CS574 Assignment , c/c++ Programming Assignment,Help With Java,Python Assignment Database|Help With SQL

San Diego State University
CS574 Computer Security
Homework Assignment #1
Due: February 24, 2020 11:59 PM
• Please type the solutions using a word processor such as MS Word, Latex, or write
by hand neatly and upload the scanned copy of it.
• Turn in your assignment through blackboard.
1. Decrypt the following ciphertext which was encrypted with Caesar Cipher. The key shift is
given in each case. Show the substitution key mapping in each case.
a. Cipher Text: dtzw ynrj nx qnrnyji xt itsy bxfyj ny sn qnansl xtrjtsj jqxjx qnaj
Key Shift: 5
b. Cipher Text: xli gsso aew e kssh gsso ew gssow sk erh ew gssow ks wil airx
Key Shift: 4
2. For any block cipher, the fact that it is a nonlinear function is crucial to its security. To see
this, suppose that we have a linear block cipher EL that encrypts 128-bit blocks of
plaintext into 128-bit blocks of ciphertext. Let EL(k, m) denote the encryption of a 128-bit
message m under a key k (the actual bit length of k is irrelevant). Thus
EL(k, [m1 XOR m2]) = EL (k, m1) XOR EL (k, m2) for all 128-bit patterns m1, m2
Describe how, with 128 chosen ciphertexts, an adversary can decrypt any ciphertext
without knowledge of the secret key k. (A "chosen ciphertext" means that an adversary
has the ability to choose a ciphertext and then obtain its decryption. Here, you have 128
plaintext/ciphertext pairs to work with and you can choose the value of the ciphertexts.)
3. This problem uses a real-world example of a symmetric cipher, from an old U.S. Special
Forces manual (public domain). See the attached document on page 3.
a. Using the two keys (memory words) “cryptographic” and “network security”, encrypt the
following message:
“Be at the third pillar from the left outside the lyceum theatre tonight at seven. If you are
distrustful bring two friends.”
Make reasonable assumptions about how to treat redundant letters and excess letters in
the memory words and how to treat spaces and punctuation. Indicate what your
assumptions are.
b. Decrypt the ciphertext. Show your work.
4. Assume that we are planning to decrypt the cyphertext which was encrypted with DES
encryption. We are using an ordinary household computer with 2GHz processor. Estimate
the amount of time necessary to crack DES by testing all 56-bit possible keys. Also
estimate the similar time for AES encryption with 128-bit key. (Assume that machine
takes 100 cycles per brute force against a single key)
Note: For this question, the exact answer is not as important as approach to calculate the
answer.
5. List three applications in which a stream cipher would be desirable. Be sure to explain
your answer.
6. Write a program to implement DES encryption.
The program should read the message text from a text file and encrypt it with the key
provided by the user during runtime. The program should overwrite the plain text file
with the cipher text after encryption. Your program should also allow the user to decrypt
the encrypted file. The original text message in the file should be completely recovered
upon decrypting the file.
Function description:
Your program should have two separate functions for encryption and decryption each
will accept the file reference and key as arguments.
Function should encrypt/decrypt the original file. Your function may not return anything
to main program. Consider the following example:
def encryptFile(file_reference, key):
#your code goes here
def decryotFile(file_reference, key):
#your code goes here
File_reference = open("demofile.txt", "w")
encryptFile(file_reference, “thisisakeyfordes”)
decryptFile(file_reference, “thisisakeyfordes”)
Note: You can use cryptographic libraries to implement the DES algorithm. However, you
are encouraged to write your own implementation of DES. You will get 10 extra credits if
you write your own implementation of DES.

Contact Us - Email:99515681@qq.com    WeChat:codinghelp
Programming Assignment Help!