Question: Part III: Code Project Objective: To apply theoretical knowledge through practical coding exercises using a Jupyter notebook. Exercises: Use jupyter notebook to do the coding
Part III: Code Project
Objective: To apply theoretical knowledge through practical coding exercises using a Jupyter notebook.
Exercises: Use jupyter notebook to do the coding problems.
Merkle Tree Implementation
Implement Merkle trees using SHA or another hashing algorithm. Utilize existing crypto
packages for hashing functions.
Each leaf node should reference a plaintext file.
Conduct a test with four leaf nodes, displaying the tree structure and hashes.
Conduct a second test with six leaf nodes, displaying the tree structure and hashes.
Root Hash Observation
Modify the content of one text file in the fourleafnode scenario and compare the root hashes.
Discuss your observations.
Hash Collision
Define a hash function using SHA but take only bits as hash output.
Use the implementation in step Merkle Tree Implementation with this hash function.
Attempt to generate multiple text files with identical meanings but different hashes by altering
file contents eg adding spaces
Find a hash collision among the text files. Discuss how many such files need to be generated.
Discuss strategies for finding collisions with hashes ranging from bit to bit in length.
Hash Puzzle
Using the chosen hashing algorithm bits output solve hash puzzles by finding hashes with a
leading zero bit, and then zero bits.
Briefly discuss the workload involved in solving a puzzle requiring a bit zero prefix for the
SHA
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
