Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Portfolio Assignment Part 2 (30%)
In the workshops throughout this semester, we will learn about and explore various cryptographic concepts and algorithms. As part of this process we will investigate how to make ciphers more secure and how they can be attacked, and the advantages and disadvantages of different kinds of codes and ciphers.
This assignment asks you to formalise your workshop tasks into a portfolio of cryptographic algorithms. You will be building several different algorithms in the program(s) of your choice, documenting and explaining your design choices, and critiquing the ciphers you have built.
In this assignment, the focus is not necessarily on building the best possible ciphers, but about being thoughtful and deliberate about your choices. It is about being able to explain and justify your choices, and about demonstrating an understanding of the strengths and weaknesses of the ciphers you have created.
This part of the portfolio assignment must be completed individually.
This document describes Part 2 of the Portfolio, is worth 30 marks. It focuses on the concepts in Modules 6-8 (RSA, hash functions, digital signatures and message authentication codes). Submission of Portfolio Part 2 is due in Week 11. It is recommended that you read the feedback from Part 1 before you submit Part 2!
To get started on this assignment, read the Portfolio Part 2 instructions and Submission instructionsbelow, making note of the mark distribution for each question and what is expected of you. Make sure you read through the advice on academic integrity to be sure what is acceptable in this assignment and where to get help if you need advice. Post in the Canvas discussion board if you have any questions.
PORTFOLIO ASSIGNMENT INSTRUCTIONS PART 2 (30 marks)
This section of the Portfolio concentrates on asymmetric ciphers and hash functions.
Asymmetric ciphers like RSA are useful in performing tasks like the exchange of symmetric keys and providing message integrity and authentication through digital signatures.
Complete the following tasks in the programming language of your choice. You may use the MS Excel template codes provided in Canvas for the unit, or you may design your own code using Python or other languages. You will submit your code as part of the assignment, together with a video explaining your code and a written submission giving your answers to any questions not addressed in your video.
Any code you use which has not been provided within the unit and which has been written by a third party, including generative AI, must be clearly referenced and explained.
Background: Alice has encrypted the message X using the symmetric cipher decided in Portfolio Part 1. She now needs to send Bob the key K to this cipher, along with a digital signature or MAC to assure Bob he can trust what he has received.
4. (Week 6) Design code which encrypts and decrypts your symmetric cipher key K using RSA, using prime numbers p and q which are both greater than 20. You can use the key from either of your symmetric ciphers (i.e. stream or block ciphers) from Portfolio Part 1. Make sure to state what key K you will be encrypting (e.g. K = “cake”). (6 MARKS) In your video/documentation:
- Explain how you created Bob’s RSA public/private key pair.
- Describe how Alice will encrypt the key K and how Bob will decrypt it. (Leave any
ciphertext as numerical values – do not convert to alphabetic characters.) As part of your answer, you will need to consider how to encrypt a key which may be larger than the modulus n, and how calculations should be done in the most efficient way.
[Your video should include an explanation of the steps of your code, as well as a demonstration of your code performing the RSA encryption and decryption of K.]