МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ТЕРНОПІЛЬСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ ІМЕНІ ІВАНА ПУЛЮЯ Кафедра кібербезпеки ЗВІТ з лабораторної роботи №3 Виконав: студент групи СБм-61 Задорожний С.Ю. Тернопіль 2023 Мета: Метою цієї лабораторної роботи є розуміння концепції дерев Меркла та їх важливості для підтримки цілісності даних і перевірки транзакцій у блокчейн. Рекомендовані середовище та мова програмування: Python 3.8.3 і вище, в якості середовища можна використовувати Google Colab Короткий план роботи: 1. 2. 3. 4. Перевірка сценаріїв для маніпуляції та перевірки цілісності даних Створення дерева Меркла в Python Перевірка доказу Merkle за допомогою методу validate_proof Порівняння ефективності дерев Меркла з прямими обчисленнями (грубою силою). Завдання 1. Додайте ваш код нижче from hashlib import sha256 import json from functools import reduce Data1 Data2 Data3 Data4 Data5 Data6 = = = = = = ['1','2','3','4'] ['This is a string'] ['Room 12'] ["Name:Justice", "Course:Computer Science", "Country:China"] ['Python',35,'Java',32,'Php',36] [114] def DataHash(data): dataPrep = str(json.dumps(data)) hdata = (sha256(dataPrep.encode())).hexdigest() return hdata #print ("The Hashed Data is:", hdata) hashed_data = DataHash(Data1) print("The Hashed Data is:", hashed_data) #DataChain = Data1+Data2+Data3+Data4+Data5+Data6 Data3.append(Data4) print("Data 3 and 4 merged is",Data3) print("The hash of Data 3 and 4 is: ", DataHash(Data3)) Data5.append(Data6) print("Data 5 and 6 merged is",Data5) print("The hash of Data 5 and 6 is: ", DataHash(Data5)) Data1.append(Data3) print("Data 1 and 3 merged is",Data1) print("The hash of Data 1 and 3 is: ", DataHash(Data1)) Data1.append(Data5) print("Data 1 and 5 merged is",Data1) print("The hash of Data 1 and 5 is: ", DataHash(Data1)) Результат. The Hashed Data is: 2a434ff107ef5d75b67636b0216a41a8930468705e3d3bf8606009f3b217e852 Data 3 and 4 merged is ['Room 12', ['Name:Justice', 'Course:Computer Science', 'Country:China']] The hash of Data 3 and 4 is: 45c0e27437ce8aaf693489aa6b899e7c2b51b3c29a5829dd44073e1d145f259f Data 5 and 6 merged is ['Python', 35, 'Java', 32, 'Php', 36, [114]] The hash of Data 5 and 6 is: 79599f342a29f9ead04ed967abf32b8140b8accf070d52b576ea76a32da566ea Data 1 and 3 merged is ['1', '2', '3', '4', ['Room 12', ['Name:Justice', 'Course:Computer Science', 'Country:China']]] The hash of Data 1 and 3 is: f0595b2b7d278a06e37343deb00770f4c83797f1ca93a9a8a5e310e3b650958b Data 1 and 5 merged is ['1', '2', '3', '4', ['Room 12', ['Name:Justice', 'Course:Computer Science', 'Country:China']], ['Python', 35, 'Java', 32, 'Php', 36, [114]]] The hash of Data 1 and 5 is: c88a74f87b264c35350c80a6fe170e099ea2a751e900188bcfdc358d4a87ddc6