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 SHA256 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 four-leaf-node scenario and compare the root hashes.
Discuss your observations.
Hash Collision
Define a hash function using SHA256 but take only 4 bits as hash output.
Use the implementation in step 1(Merkle Tree Implementation) with this hash function.
Attempt to generate multiple text files with identical meanings but different hashes by altering
file contents (e.g., 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 4-bit to 160-bit in length.
Hash Puzzle
Using the chosen hashing algorithm (4 bits output), solve hash puzzles by finding hashes with a
leading 1 zero bit, and then 2 zero bits.
Briefly discuss the workload involved in solving a puzzle requiring a 20-bit zero prefix for the
SHA256.
Part III: Code Project Objective: To apply

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Accounting Questions!