Uploaded by 11svyat11

лаб3

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ТЕРНОПІЛЬСЬКИЙ НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
ІМЕНІ ІВАНА ПУЛЮЯ
Кафедра кібербезпеки
ЗВІТ
з лабораторної роботи №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
Download