Implement MD5 hash function and DES symmetric encryption on micro:bit.
To demonstrate your implementation, you should connect the micro:bit through the serial port of a computer and use the following program on the micro:bit that indefinitely handles events from micro:bits’s A and B buttons:
1. When the A button is clicked: the micro:bit reads a string of characters from the serial
port (keyboards) and saves it into a local variable, say str, and then displays: i) the MD5
hash value of the string, i.e., MD5(str), ii) its DES cypher text, DES_enc(str), and
iii) the key used for that.
2. When the B button is clicked: It decrypts the str’s cypher (that must be saved locally) with
the current key and displays the plain text; plain_text=DES_dec(cipher).
3. When pressing A and B simultaneously: In addition to actions 1 and 2 described above
(that must be executed only once), the encryption key is reset using part of MD5(str)
that fits the key size (Figure 1). This new key will be used from for the next phase (next
time A is pressed).
MD5(str): on 128bits
bit0… bit 127
Part to be used as DES key
Initially, you may set the key and str to any arbitrary value of your choice.
Alternative to DES: If you are unable to implement DES, you may instead use the very simplified
crypto algorithm given below. If you decide to use this algorithm instead of DES then the
maximum you may obtain for the “Encryption/decryption implementation”
The key generation process remains unchanged expect that the whole 128-bits is used and not
only part of it. After generating the key, calculate the cipher as:
Cipher= str XOR key_part,
where XOR stands for the “bitwise exclusive OR” operator ( “|” in C), and key_part is the first
part of the key of the same size as str. E.g., if str is 4 bytes, then just take the first 4 bytes of the
key. If str is longer than 128 bits, split it into blocks of 128 and encrypt each block with the same
(whole) key and append. For the latest block, use part of the key proportionally to its size.
The deliverables of this part of the assessment include:
• A short video (up to 4 minute) that illustrates the running of the program described above testing
your implementation. Briefly demonstrate what happens when pressing the buttons. In particular,
demonstrate that after pressing A and B simultaneously the new key is used in next phase. Please
use a common cross-platform video format for this (e.g., MP4).
• All source code files should be provided, clearly organised and commented.
• A README document that describes your software and how to run it (maximum 400 words).
Please use standard formats (.doc, text, or .pdf).
- Assignment status: Already Solved By Our Experts
- (USA, AUS, UK & CA PhD. Writers)
- CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS