cs458 - Information Security - Homework #3


The purpose of this homework is to give you a chance to better understand encryption and some of the things that help cryptanalists in their work.

Here is what you have to do:

  • Find, download, and install FOSS symmetric encryption software, or otherwise use software you already have installed on your computer (GnuPG offers a symmetric encryption option).
  • Download a story from the Gutenberg Project. For purposes of this project you should download a plain text (English) story that has at least 1,000,000 characters.
  • Measure the relative frequency of letters in the plain text.
  • Encrypt the story using the symmetric encryption software. Make sure the output is ascii.
  • Measure the relative frequency of letters in the ciphertext.
  • Measure the time it takes to encrypt your story. Make multiple measurements such that you have a statistically significant sample; include in your report the average, median and standard deviation of your measurements.
  • Measure the time it takes to decrypt the file encrypted in the previous bullet point. Make multiple measurements such that you have a statistically significant sample; include in your report the average, median and standard deviation of your measurements.
  • Repeat the previous four bullet points using GnuPG
  • Compress, using gzip, the plain text. What is the compression ratio?
  • Compress, using gzip, the cipher text you obtained using the symmetric encryption software. What is the compression ratio?
  • Compress, using gzip, the cipher text you obtained using GnuPG. What is the compression ratio?
  • In addition to the above you'll have to do a little bit of extra work on the plain text:
    • Find the most frequent words in the text; include them in your report with their relative frequency; limit to 64 entries.
    • Find the most frequent two-letter words; include them in your report with their relative frequency; limit to 32 entries.
    • Find the most frequent three-letter words; include them in your report with their relative frequency; limit to 32 entries.
    • Find the most frequent four-letter words; include them in your report with their relative frequency; limit to 32 entries.
    • Find the most frequent bigrams (not spanning across words); include them in your report with their relative frequency; limit to 32 entries.
    • Find the most frequent trigrams (not spanning across words); include them in your report with their relative frequency; limit to 32 entries.
  • Create a report (PDF format) that includes your findings and comments on those findings. Don't forget to mention relevant statistics about the story you've used in your work, a link to the story you've used, the name and version(s) of the encryption software, the cipher used for encryption, the operating system you're using and the hardware it's running on (make, model, CPU type, CPU clock rate, amount of main memory), a description of how you measured the letter frequency, etc. Don't forget to compare and contrast the running times between the two encryption softwares as well discuss your findings related to compression ratios. Also, don't forget to mention your sources. Attach a table with your running times to the report. Make sure your report follows the guidelines for all written work in this class, as described in the syllabus


$Id: hw3.html,v 1.1 2014/01/13 03:45:16 virgil Exp $