Professional Documents
Culture Documents
CRY302 Lab8
CRY302 Lab8
Mục đích
- Chỉ Hash được mã hóa, và sử dụng mã hóa đối xứng. Giảm gánh nặng xử lý
cho những ứng dụng không cần bảo mật
Ưu Điểm
- Vì sử dụng mã hóa 2 chiều để gửi đi nên dù có ai bắt được thì cũng không
thể xem được có gì bên trong.
Khuyết Điểm
- Áp dụng Hash cho M gửi đi, nhưng khi qua bên B, vẫn sẽ nhận được 1 bản
rõ của M, nên vẫn sẽ có cơ hội để hacker bắt được và sửa chữa nội dung.
- Vì ta vẫn phải dùng Key của A để giải mã nên ai có được Key này thì vẫn
có thể giải mã được M
- Lúc đầu A và B chia sẽ một giá trị S bí mật
- A sẽ gửi Message + S và Hash nó rồi gửi cho B
- Bên B bởi vì có sở hữu giá trị S nên có thể tính toán lại được giá trị Hash
- Sau đó so sánh với kết quả được nhận ban đầu để xác minh kết quả
Mục đích
- Không cần mã hóa để xác thực tin nhắn
Ưu Điểm
- Vì chỉ có A và B biết giá trị S nên rất khó để người khác có thể chặn và tạo
ra một thông điệp sai
Khuyết Điểm
- A và B phải thống nhất về một giá trị S trước đó
- Lúc đầu A và B chia sẽ một giá trị S bí mật
- A sẽ gửi Message + S và Hash nó
- Sau đó sẽ Encrypt nó với SECRET KEY và gửi cho B
- Bên B khi nhận được sẽ Decypt gói tin với SECRET KEY
- Tương tự bên B bởi vì có sở hữu giá trị S nên có thể tính toán lại được giá trị
Hash
- Sau đó so sánh với kết quả được nhận ban đầu để xác minh kết quả
Mục đích
- Đưa thêm tính bảo mật vào phương pháp
Ưu Điểm
- Vì chỉ có A và B biết giá trị S nên rất khó để người khác có thể chặn và tạo
ra một thông điệp sai
- Thêm một lớp bảo mật với SECRET KEY nữa khiến cho gói tin càng an
toàn
Khuyết Điểm
- A và B phải thống nhất và nhớ kỹ về hai giá trị S và SECRET KEY
2) Dựa trên Chapter 11 - Cryptographic Hash Functions của sách tham khảo Cryptography and
Network Security Principles and Practice (2014).pdf [1], giải thích bằng tiếng Viê ̣t ngắn gọn nguyên lý
hoạt đô ̣ng về ứng dụng hàm băm cho chữ ký số của 2 ví dụ (a), (b), (c), (d) của Figure 11.4 trong
Chapter 11 này. (4 điểm)
Chú ý:
- Giải thích mỗi ví dụ không quá 10 dòng (với font size là 11)
- Nói được mục đích, ưu điểm và khuyết điểm của mỗi ví dụ
if __name__ == '__main__':
while True:
print('SHA')
print('1.SHA-2')
print('2.SHA-3')
print("3.Exit")
print('--------------------------------------------------')
try:
choice = int(input('Enter your Choice:'))
if (choice == 1):
while True:
print('1.SHA224')
print('2.SHA256')
print('3.Exit')
cho = int(input('Enter your Choice:'))
if (cho == 1):
h_obj = SHA224.new()
n = input("Input Name: ")
h_obj.update(n.encode())
print(h_obj.hexdigest())
elif (cho == 2):
h_obj = SHA256.new()
n = input("Input Name: ")
h_obj.update(n.encode())
print(h_obj.hexdigest())
else:
break
elif (choice == 2):
while True:
print('1.SHA3-224')
print('2.SHA3-256')
print('3.Exit')
cho = int(input('Enter your Choice:'))
if (cho == 1):
h_obj = SHA3_224.new()
n = input("Input Name: ")
h_obj.update(n.encode())
print(h_obj.hexdigest())
elif (cho == 2):
h_obj = SHA3_256.new()
n = input("Input Name: ")
h_obj.update(n.encode())
print(h_obj.hexdigest())
else:
break
elif(choice == 3):
break
except:
print('Lỗi Cú Pháp.')