You are on page 1of 57

HÀM BĂM BẢO MẬT

Nội dung trình bày


• Các yêu cầu xác thực.
• Mã xác thực bản tin (MAC).
• Các hàm băm mật mã.
• Mã xác thực bản tin trên cơ sở hàm băm.
• Một số họ hàm băm MDx và SHA.
• An toàn của các hàm băm và MAC.
Đặt vấn đề
• Một trong những vấn đề phức tạp nhất của lý thuyết
và thực tiễn an toàn mạng là vấn đề xác thực tin tức
và liên quan đến nó là vấn đề chữ ký số.
Hình thành các yêu cầu đối với các giải pháp xác
thực tin tức và chữ kí số.
Khảo sát những xu hướng cơ bản cho việc giải quyết
vấn đề xác thực tin tức và xu hướng sử dụng hàm băm.
XÁC THỰC THÔNG TIN
Các dạng phá hoại thông tin
1. Sự khám phá nội dung thông tin (disclosure): phân
tích bản tin không khóa.
2. Sự phân tích dòng số liệu (traffic analysis): xác định
tần suất, độ dài, …
3. Sự giả dạng (masquerade): giả mạo nội dung, nguồn
gốc, …
4. Sự biến đổi nội dung (content modification): chèn,
xóa, thay đổi, … của tin tức.
Các dạng phá hoại thông tin
5. Sự thay đổi trình tự (sequence modification): chèn,
xóa, hoặc thay đổi trình tự.
6. Sự biến dạng đặc trưng thời gian (timing
modification): sự giữ chậm, hoặc sự tái tạo lại tin tức.
7. Sự từ chối nguồn gốc (source repudiation): từ chối
việc truyền bản tin bởi nguồn.
8. Sự từ chối đích đến (destination repudiation): từ chối
việc nhận bản tin bởi đích.
Giải pháp chống phá hoại
• Các giải pháp đối phó với 2 kiểu tấn công đầu tiên →
bảo mật.
• Các giải pháp đối phó với 3-6 → xác thực bản tin (Chữ
ký số).
• Giải pháp đối phó với 7 → chữ ký số.
• Giải pháp đối phó với 8 → Chữ ký số và giao thức được
thiết kế riêng
Khái niệm xác thực thông tin
• Xác thực nội dung thông tin (message authentication):
đảm bảo nội dung thông tin không bị thay đổi trong
quá trình trao đổi giữa hai thực thể.
• Xác thực nguồn gốc thông tin (peer authentication):
đảm bảo đối tác đang trao đổi dữ liệu là đối tác hợp lệ.
• Xác thực tin tức cũng dùng để kiểm tra thứ tự và đặc
trưng thời gian của tin tức.
Các phương pháp xác thực
thông tin
• Dùng kỹ thuật mật mã: chỉ có đối tượng hợp lệ mới có
khóa để giải mã thông tin.
• Dùng mã xác thực MAC (Message Authentication Code).
• Dùng các hàm băm bảo mật.
Xác thực thông tin bằng
Kỹ thuật mật mã
• Mã hoá tin tức bản thân nó có thể thực hiện chức năng
xác thực tin tức.
 Sơ đồ mật mã khóa bí mật.
 Sơ đồ mật mã khóa công khai.
Xác thực bằng mật mã
Xác thực bằng mật mã
Xác thực
Mật mã khóa bí mật
Tin tức được truyền từ người gửi A đến người nhận B, được
mã hoá theo sơ đồ truyền thống với việc sử dụng khoá mật K,
được biết cả ở phía A và B.
 Việc bảo mật được thực hiện vì không ai có thể khôi
phục lại văn bản gốc (ngoài A, B).
 Ngoài ra B sẽ tin tưởng rằng tin tức đã được gửi từ
chính A  Xác thực nguồn gốc.
 Nếu bản tin M được khôi phục, điều đó chứng minh
cho B rằng không có bit nào của M bị thay đổi  Xác
thực nội dung.
Xác thực
Mật mã khóa công khai
• Dùng topic trong forum để thảo luận phân tích tại sao
nói:
 Hình b → chỉ đảm bảo tính bí mật, không đảm bảo
tính xác thực.
 Hình c → xác thực và ký.
 Hình d → bí mật, xác thực và ký.
Xác thực bằng MAC
Mã xác thực tin tức
• Kỹ thuật xác thực bằng cách nối vào bản tin một khối
số liệu có kích thước không lớn với việc sử dụng khoá
mật, thường được gọi là tổng kiểm tra mật, hoặc là mã
xác thực tin tức (MAC - Message Authentication
Code).
Mô tả
• MAC = CK(M)
– C: hàm xác thực có độ dài cố định.
– K: khóa bí mật
– M: bản tin có độ dài biến đổi.
• So sánh MAC:
1. Người nhận có thể tin tưởng rằng tin tức đã không bị thay
đổi.
2. Người nhận có thể tin tưởng rằng tin tức đã được gửi đi từ
đúng người cần gửi.
3. Nếu tin tức có liên quan đến việc gắn cho nó một số thứ tự,
thì người nhận có thể tin tưởng rằng tin tức đã được truyền
đi theo đúng trình tự.
Nhận xét
• MAC tương tự như mã hoá, nó chỉ khác nhau ở chỗ,
đối với thuật toán tính toán MAC không đòi hỏi có đặc
tính thuận nghịch
• Với một đặc tính toán học của hàm xác thực như thế,
sẽ ít bị tổn thương hơn khi thực hiện bẻ khoá so với
hàm mã hoá.
Phân loại
Cipher Block Chaining MAC
• MAC được tạo ra bằng các thuật toán mật mã khối CBC
(Cipher Block Chaining) được gọi là CMAC.
Phân loại
HMAC
• MAC được tạo ra từ các hàm băm gọi là HMAC.
Các khả năng ứng dụng MAC
Bài tập

• Giải thích sơ đồ hoạt động của 3 ứng dụng cơ bản của


MAC
Các yêu cầu đối với MAC
• Hàm MAC là hàm ánh xạ nhiều tới một (many-to-one).
Suy nghĩ: Sử dụng p/án vét cạn khóa → thám mã cố gắng khôi
phục khóa?
• Vùng xác định của hàm được hình thành từ tin tức có độ dài
bất kỳ, cũng như vùng giá trị được cho bằng tất cả khả năng
giá trị của MAC và tất cả khả năng của khoá.
• Nếu sử dụng giá trị MAC n bit, thì có 2n giá trị tất cả, khi số
lượng khả năng của tin tức bằng N, ở đây N >> 2n. Ngoài ra
còn có 2k khả năng đối với khoá dài k bit.
Ví dụ
• Giả sử sử dụng message có độ dài 100 bit và 10 bit MAC.
– Sẽ có tổng cộng 2100 bản tin khác nhau.
– Nhưng chỉ có 210 MAC khác nhau.
– Trung bình mỗi giá trị MAC được sinh ra bởi 2100 / 210
= 290 bản tin khác nhau.
– Nếu sử dung 5 bit khóa, thì có 25 = 32 khả năng ánh xạ
từ bản tin → MAC.
Nhận xét
• Vì các đặc trưng toán học của hàm MAC nên nó sẽ
bền vững hơn các thuật toán mã hóa.
HÀM BĂM BẢO MẬT
Hàm băm một chiều
• Biến đổi khối thông tin gốc có độ dài bất kỳ thành khối
thông tin có độ dài cố định gọi là mã băm (hash code
hoặc message digest).
• Chỉ có thể dùng hàm băm để tạo ra mã băm từ thông
tin gốc mà không làm ngược lại => hàm băm một chiều
(One way hash function)
Hàm băm không sử dụng khóa, mà là một hàm chỉ với
bản tin vào.
Hàm băm bảo đảm khả năng kiểm tra lỗi: sự thay đổi
bất kỳ bit nào của tin tức sẽ gây ra sự thay đổi của mã
hàm băm.
Hàm băm một chiều

• Giá trị hàm băm h được phát sinh bởi hàm H có dạng:
h = H(M)
Với M là tin tức có độ dài bất kỳ, còn H(M) là giá
trị hàm băm có độ dài cố định.

• Nhận xét:

Hàm băm không liên quan đến bảo mật Cần bảo mật
giá trị băm.
Họat động cơ bản của hàm
băm
Hàm băm đơn giản
• Thông tin gốc là chuỗi ký tự trong bảng chữ cái latinh:
A, B, C, …, Z
• Các chữ cái được đánh số thứ tự từ 1 … 26
• Biểu diễn thông tin gốc: M={m1, m2, …, mn}
• Hàm băm H(M)=1 + (m1 + m2 +…+mn) mod 26
Ví dụ
• Cho thông tin gốc: “Hello world”
• M = {8, 5, 12, 12, 15, 23, 15, 18, 12, 4}
H(M) = 1 + (8+5+12+12+15+23 +15+18+12+4)mod 26
= 21
=> H(M) = U.
Các khả năng ứng dụng của
Hàm băm
Các khả năng ứng dụng
Hàm băm
Các khả năng ứng dụng
Hàm băm

1. Bí mật, xác thực.

2. Xác thực.

3. Xác thực và chữ ký số.

4. Bí mật, xác thực, chữ ký số.

5. Xác thực.

6. Bí mật, xác thực.


Các yêu cầu đối với
hàm băm H
• H có thể áp dụng cho khối thông tin có chiều dài bất kỳ.
• Kết quả của hàm H luôn có chiều dài cố định.
• Việc tính toán H(M) với khối thông tin M bất kỳ phải đơn
giản, nhanh, thực hiện được bằng cả phần mềm và phần
cứng.
Các thuộc tính của hàm băm
• Thuộc tính một chiều (one-way): Cho trước m, không
tìm được M thỏa H(M)=m.
• Thuộc tính kháng đụng độ yếu (weak collision
resistance):cho trước M, không thể tìm được M’  M
thỏa H(M) = H(M’)
• Thuộc tính kháng đụng độ mạnh (strong collision
resistance): không thể tìm được cặp M và M’ sao cho
H(M) = H(M’)
Tấn công các hàm băm
• Mục tiêu tấn công là tạo ra các tình huống đụng độ
(yếu hoặc mạnh).
• Độ an toàn của hàm băm phụ thuộc vào kích thước mã
băm.
• Bài toán sinh nhật (Birthday problem) thường được
dùng để tính toán độ an toàn của một hàm băm.
Message-Digest algorithm 5
MD5
• Phát triển bởi Rivest (MIT).
• Đầu vào có độ dài bất kỳ.
• Đầu ra 128 bit.

37
Các bước thực hiện
• Bước 1: Bổ sung các bit làm đầy
• Được bổ xung các bit để độ dài đồng dư với 448
mod 512.
• Việc bổ sung luôn luôn thực hiện (thậm chí với độ
dài mong muốn).
• Số lượng bit bổ sung 1-512
• Các bit bổ sung 10…0
38
(tiếp)
• Bước 2: Bổ sung giá trị độ dài
• Một khối 64 bit (thể hiện độ dài của bản tin khởi
đầu) được thêm vào.
• Ghi độ dài tin tức theo mod 264.
– A = 67452301,
– B = EFCDAB89,
– C = 98BADCFE,
– D = 10325476.
– Hệ HEX

39
(tiếp)
• Bước 3: Giá trị đệm khởi đầu MD
• Để lưu giữ các kết quả trung gian và cuối cùng
của hàm băm, sẽ sử dụng 128 bit đệm.
• Đệm có thể trình bày dưới dạng bốn thanh ghi
dịch 32 bit (A, B, C, D).
• Bước 4: Gia công tin tức thành các khối 512bit (mỗi
khối theo 16 từ).
• Bốn công đoạn xử lý.
• Các công đoạn có cấu trúc giống nhau.
• Mỗi công đoạn sử dụng hàm logic nguyên thủy
của mình F, G, H, I.
40
Gia công một khối 512 bit
trong MD5

41
(tiếp)
• Trong mỗi công đoạn cũng được sử dụng một phần
tư của bảng 64 phần tử T[1…64], bao gồm từ các giá
trị của hàm sin.
• Trong bảng T, phần tử thứ i, được ký hiệu T[i], là
phần nguyên của giá trị 232  abs(sin(i)), ở đây i là
góc tính theo radian.

42
(tiếp)
• Rõ ràng rằng abs(sin(i)) có giá trị nằm trong dải từ
0…1, mỗi phần tử T là một số nguyên, mà có thể trình
bày trong dạng 32 bit.
• Bảng bảo đảm”phân đều” tập mã 32 bit, nó có nhiệm
vụ phá bỏ sự đều đặn bất kỳ của số liệu đầu vào.
• Giá trị đầu ra của công đoạn thứ bốn được bổ sung
thêm giá trị đầu vào của công đoạn thứ nhất (CVq) và
kết quả nhận được CVq+1.
• Phép cộng được thực hiện theo modulo 232. 43
Các giá trị của hàm logic

44
(tiếp)

45
Bảng T

46
Phần tử cơ bản của 1 vòng

47
(tiếp)
• Bước 5: Đầu ra.
• Toàn bộ hoạt động của thuật toán MD5 có thể
miêu tả bởi các công thức sau:
• CVo = IV
• CVq+1 = SUM32 (CVq, RFI [Yq, RFH [Yq, RFF [Yq, CVq]]])
• MD = CVL.

48
Thuật toán băm SHA
(Secure Hash Algorithm)
• Thuật toán hàm băm an toàn (SHA - Secure Hash
Algoritlm) được thiết kế bởi NIST.
SHA-1 SHA-256 SHA-384 SHA-512
Message 160 256 384 512
digest size
Message size < 264 < 264 < 2128 < 2128

Block size 512 512 1024 1024


Number of 80 64 80 64
steps
Security 80 128 192 256
49
Logic SHA
• Bản tin đầu vào có chiều dài cực dài không vượt
quá 264 bit.
• Đầu ra 160 bit băm.
• Số liệu đầu vào được chia thành các khối 512 bit.

50
Gia công 1 khối 512 bit

51
Toán tử cơ sở SHA

52
So sánh MD5 và SHA-1
• Độ an toàn đối với chiến thuật lựa chọn tất cả các khả
năng:
• SHA-1 có độ dài đầu ra hơn MD5 là 32 bit.
• Độ phức tạp của bài toán tìm ra các tin tức có cùng
MAC với MD5 tỉ lệ với 2128, còn đối với SHA-1 tỉ lệ
với 2160.
• Độ phức tạp của bài toán tìm ra cặp tin tức có cùng
MAC đối với MD5 cần phải thực hiện 264 toán tử,
còn đối với SHA-1 cần phải thực hiện tuần tự 280
toán tử.
• Như vậy, thuật toán SHA-1 có tính an toàn cao hơn
đối với chiến thuật lựa chọn tất cả các khả năng.
53
So sánh MD5 và SHA-1
• Độ an toàn đối với quan điểm thám mã
• MD5 từ khi ra đời cho đến nay, chưa thấy xuất
hiện phương pháp thám mã nào hiệu quả về nó.
• Thuật toán SHA-1 cũng tương tự như vậy.
• Như vậy, bài toán đánh giá độ an toàn của các
thuật toán này đối với thám mã không phải là bài
toán đơn giản.
• Tính đơn giản và gọn nhẹ:
Cả hai thuật toán đều đơn giản trong miêu tả, cũng như
trong thực hiện, chúng không đòi hỏi chương trình lớn
cũng như các bảng chuyển vị lớn. 54
So sánh MD5 và SHA-1
• Tốc độ:
• Cả hai thuật toán đều sử dụng toán tử cộng theo
modul 232, bởi vậy cả hai thuật toán đều có thể
làm việc tốt ở các máy tính có kiến trúc 32 bit.
• SHA-1 - 80 bước (160 bit đệm), so với 64 bước của
MD5 với 128 bit đệm. Như vậy, về nguyên tắc thuật
toán SHA-1 phải chạy chậm hơn so với MD5.

55
Thuật toán băm MD5
Thank you !

You might also like