You will use your knowledge of both symmetric and asymmetric encryptions methods, specifically AES and
RSA Public-key/Private-key, to determine the contents of a secret message. You will have a specific dataset (I
will attach it). Each dataset contains:
• Messages
o A collection of messages intercepted from the target host. Each message has been encrypted with an AES
key. One of these messages is the secret message
• AES keys
o A collection of AES keys. Each key has been encrypted with an RSA Public key. One of these AES keys will decrypt the secret message.
• Public-key/Private-key pairs o A collection of Public-key/Private-key pairs. One of these key pairs will decrypt the AES key that can then be
used to decrypt the secret message
• A plain text message hash
o The md5 hash of the plaintext AES key used to decrypt the message. This can be used to check if you have successfully found the correct AES key needed to decrypt the secret message.
Your goal for this project is for you to build your own solution to identify the AES key used to encrypt the secret message, identify the secret message encrypted with that AES key, and finally determine the contents of that message. Your deliverables for this project will include a final report, your source code, and a set of instructions for using your solution. Please see the following page for an in-depth description of the final deliverables.
You may:
• Use any language, IDE, or tool that you deem appropriate
• Use any outside reference material you choose. Proper citations are expected.
You May Not:
• Commandeer existing whole solutions. Your solution must be, at its core, your own original work.
• Use reference material or take inspiration from others without proper citations.
Your final deliverables will be the following items:
- A three-page (minimum, excluding bibliography) report that follows the report formatting guidelines below.
Your report must contain the following items:
o Introduction
A (very) brief overview of your project. A more in-depth discussion will
come later.
o Environment
A description of the software stack you used. This should include languages, IDE(s), and any third-party
tools and applications
o Methodology
What was your design approach?
What is the algorithm (execution path) that your solution follows? You may consider using a flow diagram or
simple pseudo-code.
What were any challenges you encountered and how did you overcome them? This is also the section to
discuss any limitations or incomplete features of your project.
o Metrics
Now for some hard data! How many messages, symmetric keys, and asymmetric keys were there?
How long did your solution take to identify the contents of the secret message?
How would the execution time be affected if the number of messages and keys were doubled?
What are the contents of the secret message?
o Bibliography
Any sources you used during the construction of your project. This should include:
• Reference material
• Algorithms
• Any third-party tools/applications