Đề số 3 Tìm hiểu về hàm băm mã xác thực Yêu cầu 1 Trình bầy đặc điểm, tính chất hàm băm 2 Phân tích các họ hàm băm thông dụng MDx và SHAx 3 Mô tả các ứng dụng hàm băm trong an toàn thông tin Bài Làm H.
Trang 1Đề số 3: Tìm hiểu về hàm băm mã xác thực
Yêu cầu:
1 Trình bầy đặc điểm, tính chất hàm băm
2 Phân tích các họ hàm băm thông dụng
MDx và SHAx
3 Mô tả các ứng dụng hàm băm trong an toàn thông tin
Bài Làm
Hàm băm là gì Hàm băm là một chuỗi đại diện của dữ liệu được tạo ra từ phương pháp toán học sử dụng để kiểm tra tính chính xác của dữ liệu khi trao đổi Về cơ bản , Hàm băm là quá trình biến đổi một
dữ liệu đầu vào có một độ dài bất kỳ về kích thước , định dạng thành một đặc chưng đầu ra có độ dài nhất định , một kích thước cỗ định Các giá trị trả về bởi hàm băng được gọi lad một giá trị băm , một mã
băm hay đơn giản là hash
Trang 2Quá trình vận hành của Hash
Hàm băm có quá trình vận hành một chiều Khi
ta đưa dữ liệu vào đầu vào và sử dụng hàm băm để tạo các mã hàm băm thì không thể đảo ngược được Với khả năng sử lý của máy tính , sức mạnh của
thuật toán và thời gian để hoàn thành thì việc phiên dịch ngược lại là không có thể
Trang 3Tính chất hàm Băm Hàm Băm có Ba tính chất Tính chất thứ nhất ,với mọi đầu ra y cho trước thì không thể tìm được bất kỳ
dữ liệu đầu vào x nào sao cho h(x)=y , hay có thể hiểu là không thể tìm được một thông điệp đúng yêu cầu từ một giá trị băm cho trước Tính chất thứ hai
là với mọi dữ liệu đầu x cho trước và y = h(x)
Không thể tính toán để tìm ra được hai thông điệp x
và x’ khác nhau sao cho cùng có giá trị băm h(x’) = h(x) Tính chất thứ ba là không thể tính toán tìm được hai dữ liệu đầu vào x và x’ phân biệt sao cho chúng có cùng có giá trị băm h(x’)=h(x) , có thể hiểu
là không thể sửa được một thông điệp mà không làm thay đổi giá trị băm của nó
Trang 4Ví dụ thực tế khi bạn download 1 file phim trên Fshare có dung lượng 4.9gb và thực hiện hashing trên file đó với thuật toán băm SHA-256 thì đầu ra bạn sẽ thu được một giá chị băm có độ dài là 256bit Nếu bạn lấy một tin nhắn sms có dung lượng 2KB
để hashing bằng SHA-256 thì giá trị băm bạn thu được vẫn là 256 bit Như đã thấy trong mọi trười hợp với SHA-256 thì đầu ra bạn luôn luôn thu được một mã băm có độ dài 256bit Điều này sẽ trở nên quan trọng khi bạn xử lý một lượng lớn dữ liệu lẫn giao dịch Khi đó số lượng file rất nhiều và không
có quy chuẩn về số dung lượng và việc kiểm tra rất khó nên việc sử dụng hàm băm sẽ giúp ta sác định được tính vẹn toàn dữ liệu
Trang 5Một ví dụ về việc xuất Hash để kiểm tra và cung cấp cho người tải4
Hàm băm thông dụng SHA-X ta có SHA-1
SHA-2 và SHA-3 Đối với SHA-1 là một phần của
dự án Capstone của chính phủ Mỹ Phiên bản đầu tiên được gọi là SHA-0 được xuất bản năm 1993 bởi NIST và nó bị NSA rút lại lẫn sửa đổi thay thế vào năm 1995 trong FIPS PUB 180-1 và tên nó là SHA-1.Đối với SHA-1 tạo ra bản tóm tắt với kích thước
20 Byte và các các vấn đề liên quan đến bảo mật cho nên hàm băm này không đủ an toàn và bị thay thế cho SHA-2 và SHA-3 SHA-2 là tập hợp các hàm băm mật mã thiết kế bởi cơ quan an ninh quốc gia Hoa Kỳ và xuất bản năm 2001 Chúng đuọc xây
dựng cấu trúc Davies-Meyer từ một hệ mật mã khối chuyên dụng Về thực chẩt SHA-2 có hai thuật toán băm là SHA-256 và SHA-512 Còn SHA-224 chỉ là một biến thể của SHA 256 với các giá trị khởi tạo và đầu ra bị cắt bỏ khác nhau Còn 384 , SHA-512/224 và SHA-512/256 ít biết do nó là biến thể của SHA-512 SHA-512 an toàn và nhanh hơn hơn SHA-256 trên các máy 64bit Do có nhiều phiên bản thuật toán khác nhau chủ yếu do kích thước đầu
ra của họ SHA-2 cho nên sẽ tuỳ mức độ để sử dụng
Trang 6trong công việc phù hợp Đơn cử như bitcoin sử
dụng hàm băng SHA-256 là một phiên bản hàm băm trong họ SHA-2 này Đối với SHA-3 SHA-3 được NIST phát hành vào 5/8/2015, đây là tiêu chuẩn hàm băm mới nhất SHA-3 được xây dựng trên một tập các con của họ nguyên thuỷ mật mã rộng hơn là
Keccak Thuật toán Keccak được đưa ra và xây
dựng bởi Guido Bẻtoni , Joan Daemen , Michael
Peeters , Gilles Van Asche và được dựa trên cấu trúc bọt biển (Sponge) Cấu trúc bọt biển này có thể được
sử dụng để xây dựng các nguyên thuỷ mã hoá khác như các mật mã dòng Đầu ra của SHA- cũng có kích cỡ đầu ra tương tự như SHA-2 tuỳ theo nhu cầu người sử dụng
Thuậ
t
toán
Kích thướ c đầu ra
(out
put size)
Kích thướ c trạng thái trong
(Inter
nal state size)
Kích thư ớc khối
(Blo
ck size
)
Độ dài
(Len
gth size)
Kíc h thư ớc wor d
(Wo
rd size
)
Xung đột
(Collisi
on)
Trang 7SHA-0
SHA-1
SHA-256/2
24
256/2 24
SHA-512/3
84
512/3 84
512 1024 128 64 Không
Bảng so sánh các hàm băm SHA
MD5 là gì MD5 là một hàm băm mật mã theo chuẩn RFC 1321 có giá trị hast dài 128bit MD5 được phát triển băn 1991 bởi giáo sư Ronald L
Rivest để thay thế cho MD4 trước đó Về cơ bản md5 sẽ toại ra một checksum trên hai bộ dữ liệu rồi
so sánh với nhau coi hai bộ dữ liệu này có bị thay đổi hay giống nhau hay không Về lịch sử của MDx thì hàm băm đầu tiên được taoj ra là hàm MD2 năm
1989 , Hàm này được xây dựng cho các PC 8bit thời
đó , mặc dù MD2 vẫn được sử dụng nhưng không dành cho cnhuwxng dững dụng cần mức độ bảo mật
Trang 8cao vì nó dễ bị tấn công các kiểu hack thông
thường Sau đó một thời gian thì MD4 ra đời năm
1990 để thay thế cho MD2 MD4 tạo ra cho các
máy 32bit nhưng vẫn có điểm yếu là phần mềm này rất lỗi thời theo đánh giá của Internet Engineering Task Force Đến năm 1992 MD5 được phát hành và cũng dành cho các máy 32Bit MD5 không nhanh như MD4 nhưng an toàn hơn nhưng MD5 có một số vấn đề bảo mật và SHA-1 được đề xuất thay thế cho hàm băm này
Thu
ật
toá
n
Kích
thướ
c đầu
ra (outp
ut size)
Kích thước trạng thái trong (Inter nal state size)
Kích thướ c khối (Blo ck size)
Độ dài (Len gth size)
Kíc h thướ c wor d (Wo rd size)
Xung đột (Collisi on)
MD
2
128 384 128 Khôn
g
năng lớn MD
4
Trang 95
Bảng so sánh hàm băm MD
Ứng dụng trong hàm băm là gì Hàm băm có rất nhiều ứng dụng trong thực tế , như việc dùng MD5 Điều đầu tiên là tạo mã khoá bí mật , ta nhìn vào trong ảnh ta thấy một điều Với một từ duy nhất là
từ “Đại “ ta có một hashing theo chuẩn MD5 là
“89eab8571b76f8bc661149b2d10e5564” , sau đó thêm chữ “Học” và “Mở” thành “Đại Học Mở” thì
mã hashing đã thay đổi thành
“7ab8c5febf83c50c5c2ea3f13e4ff3de” Điều đó nói lên một điều khi ta dùng Hàm Băm mạnh trong việc tạo mã khoá bí mật của mật khẩu thì ta có thể coi như nó là một phương thức bảo mật hai lớp để tăng
độ an toàn cho mật khẩu
Trang 10Sự thay đổi của hash khi thay đổi ký
tự đầu vào Thời buổi công nghệ bây giờ công việc chuyển
dữ liệu từ công ty A sang khu lưu trữ B và ngược lại thì việc kiểm tra mất mát dữ liệu rất quan trọng
Nếu một file có dung lượng 1gb thì với công nghệ bây giờ không khó làm dữ liệu giả đúng 1gb thay thế
để phá huỷ dữ liệu thì ta có thể dùng Hasing Như ở trên khi một kết quả của Hash từ một file dữ liệu là không thể đánh tráo cho nên việc dùng Hash để kiểm tra tính vẹn toàn dữ liệu là một điều cần thiết mà một doanh nghiệp có nhu cầu nhiều trong công việc di chuyển dữ liệu trong công việc
Trang 11Kiểm tra vẹn toàn data khi di chuyển data
Một ứng dụng của hàm băm đó là chữ ký điện tử Khi một hệ thống băm đủ mạnh thì nó có thể sử dụng để tạo ra một chứ kỹ điện tử đế sác thực nguồn gốc dữ liệu , tính hợp pháp , chống từ chỗi và vẹn toàn dữ liệu Khi công nghệ số ngày càng phát triển
và nhu cầu mỗi người ngày càng nhiều thì chứ kỹ điện tử là một tất yếu của cuộc sống
Trang 12Sơ đồ chữ ký số RSA