Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Mật mã ( Cryptography) phần 2 pdf
MIỄN PHÍ
Số trang
10
Kích thước
185.1 KB
Định dạng
PDF
Lượt xem
1820

Tài liệu Mật mã ( Cryptography) phần 2 pdf

Nội dung xem thử

Mô tả chi tiết

1.1 Bảo đảm tính toàn vẹn dữ liệu bằng mã băm có khóa

V Bạn cần chuyển một file cho ai đó và cấp cho người này một phương cách để

xác minh tính toàn vẹn của file.

# Cấp cho người nhận một khóa bí mật (key). Khóa này có thể là một số được

sinh ngẫu nhiên, nhưng nó cũng có thể là một nhóm từ mà bạn và người nhận

đã thỏa thuận. Sử dụng khóa cùng với một trong những lớp giải thuật băm có

khóa dẫn xuất từ lớp System.Security.Cryptography.KeyedHashAlgorithm để

tạo mã băm có khóa. Gửi mã băm này cùng với file. Khi nhận được file, người

nhận sẽ tạo mã băm có khóa cho file này bằng khóa. Nếu hai mã băm giống

nhau, người nhận sẽ biết rằng file này do bạn gửi đến và nó không bị thay đổi

trong quá trình chuyển giao.

Mã băm rất hữu ích khi so sánh hai mẩu dữ liệu để xác định chúng có giống nhau hay

không (cả khi bạn không thể truy xuất được dữ liệu gốc). Tuy nhiên, bạn không thể sử

dụng mã băm để cam đoan với người nhận về tính toàn vẹn của dữ liệu. Nếu có ai đó

chặn được dữ liệu, người này có thể thay thế dữ liệu và tạo mã băm mới. Khi người nhận

kiểm tra mã băm, nó có vẻ đúng nhưng thực tế dữ liệu không giống với những gì bạn gửi

lúc ban đầu.

Một giải pháp đơn giản và hiệu quả cho vấn đề toàn vẹn dữ liệu là mã băm có khóa

(keyed hash code). Mã băm có khóa cũng tương tự như mã băm bình thường (đã được

thảo luận trong mục 14.2 và 14.3); tuy nhiên, mã băm có khóa kết hợp thêm một phần tử

dữ liệu bí mật (khóa), phần tử này chỉ có người gửi và người nhận biết. Nếu không có

khóa, không ai có thể tạo được mã băm đúng từ tập dữ liệu cho trước.

# Khóa phải được giữ bí mật. Nếu ai đó biết khóa thì có thể tạo ra mã băm có

khóa hợp lệ, nghĩa là bạn sẽ không thể xác định họ có thay đổi nội dung của tài

liệu hay không. Vì lý do này, bạn không nên chuyển giao hay lưu trữ khóa cùng

với tài liệu cần được bảo vệ tính toàn vẹn. Mục 14.10 sẽ cung cấp một cơ chế

mà bạn có thể sử dụng để trao đổi khóa một cách an toàn.

Tạo mã băm có khóa cũng tương tự như tạo mã băm bình thường vì lớp trừu tượng

System.Security.Cryptography.KeyedHashAlgorithm mở rộng lớp

System.Security.Cryptography.HashAlgorithm. Lớp KeyedHashAlgorithm cung cấp một

lớp cơ sở để tất cả các giải thuật băm có khóa dẫn xuất từ đó. Thư viện lớp .NET

Framework có hai hiện thực giải thuật băm có khóa được liệt kê trong bảng 14.2; mỗi

hiện thực là một thành viên của không gian tên System.Security.Cryptography.

Bảng 14.2 Các hiện thực giải thuật băm có khóa

Tải ngay đi em, còn do dự, trời tối mất!