Hàm băm (hash function).

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 32)

Bài toán xác nhận và chữ ký điện tử

5.3.1. Hàm băm (hash function).

Trong các phần trên, ta đã giới thiệu một vài sơ đồ chữ ký điện tử. Theo các sơ đồ đó, chữ ký đ−ợc xác định cho từng khối của văn bản, và nếu văn bản gồm nhiều khối thì chữ ký cho toàn văn bản cũng phải do ghép chữ ký trên từng khối lại với nhau mà thành; mà chữ ký trên từng khối văn bản th−ờng có độ dài bằng (hoặc thậm chí gấp đôi) độ dài của khối văn bản, do đó chữ ký chung cũng có độ dài t−ơng đ−ơng với độ dài văn bản. Đó là một điều bất tiện. Ta mong muốn, nh− trong tr−ờng hợp viết tay, chữ ký chỉ có độ dài ngắn và hạn chế cho dù văn bản có thể dài bao nhiêu cũng đ−ợc. Đối với chữ ký điện tử, vì chữ ký phải đ−ợc “ký” cho từng bit của văn bản, nên muốn có chữ ký độ dài hạn chế trên văn bản có độ dài tuỳ ý thì phải tìm cách rút ngắn độ dài văn bản. Nh−ng bản thân văn bản không thể rút ngắn đ−ợc, nên chỉ còn cách là tìm cho mỗi văn bản một bản “tóm l−ợc” có độ dài hạn chế, rồi thay cho việc ký trên toàn bộ văn bản, ta ký trên bản tóm l−ợc

đó, xem chữ ký trên bản tóm l−ợc có t− cách là chữ ký trên văn bản. Giả sử Σ là tập hợp tất cả các văn bản có thể có (tất nhiên, trong một lĩnh vực nào đó), và ∆ là tập hợp tất cả các bản “tóm l−ợc” có thể đ−ợc sử dụng. Việc tìm cho mỗi văn bản một bản tóm l−ợc t−ơng ứng xác định một hàm h : Σ → ∆. Một hàm h nh− vậy ng−ời ta gọi là một hàm băm (hash function). Thông th−ờng, Σ là tập hợp các dãy bit có độ dài tuỳ ý, và ∆ là tập hợp các dãy bit có một độ dài n

cố định, nên ng−ời ta cũng định nghĩa hàm băm là các hàm h : Σ → ∆ với các tập hợp Σ và ∆ đó (tức các hàm h : { }0,1 ∗→{ }0,1 n).

Dùng hàm băm h , ta xem z = h(x) là “tóm l−ợc” của x , đại diện cho x, và ta sẽ xem chữ ký trên z là chữ ký trên văn bản x ; vì z

có độ dài hạn chế, nên chữ ký trên x cũng có độ dài hạn chế.

Một vấn đề đ−ợc đặt ra là: vậy hàm h : Σ → ∆ phải thoả mãn những điều kiện gì để h(x) xứng đáng đ−ợc xem là đại diện của x

trong việc tạo lập chữ ký ? Hai điều kiện sau đây th−ờng đ−ợc ng−ời ta xem là hai điều kiện chủ yếu cho một hàm băm:

1. Hàm băm phải là hàm một phía, nghĩa là cho x tính z = h(x) là việc dễ, nh−ng ng−ợc lại, biết z tính xlà việc cực khó (có thể qui

−ớc dễ hay khó theo nghĩa tính đ−ợc trong thời gian đa thức hay không).

2. Hàm băm phải là hàm không va chạm mạnh theo nghĩa sau đây: không có thuật toán tính đ−ợc trong thời gian đa thức giải bài toán “ tìm x1 và x2 thuộc Σ sao cho x1 ≠ x2 và h (x1) =h (x2)”; nói cách khác, tìm hai văn bản khác nhau có cùng một đại diện là cực kỳ khó.

(Còn có một khái niệm không va chạm yếu đ−ợc định nghĩa nh− sau: Cho x ∈Σ. Hàm h là không va chạm yếu đối với x nếu rất khó tìm đ−ợc x′∈Σ, x′ ≠ x và h (x′) = h (x )).

Ta mong muốn độ dài của chữ ký là ngắn, tức là độ dài của các tóm l−ợc cũng ngắn. Nh−ng ngắn bao nhiêu là vừả Ngắn bao nhiêu thì có thể bảo đảm tính không va chạm mạnh? Và ở đây ta gặp một kiểu “tấn công”, th−ờng đ−ợc gọi là “tấn công ngày sinh” có liên quan đến khả năng va chạm mạnh, nói rằng trong một nhóm gồm 23 ng−ời đ−ợc chọn một cách ngẫu nhiên thì ít nhất có hai ng−ời có cùng ngày sinh (tức có va chạm mạnh!). Một cách tổng quát, ng−ời ta chứng minh đ−ợc rằng: Nếu có tất cả n bản tóm l−ợc,

và 2 ln 1 ,

1

k n

ε

− thì trong k văn bản đ−ợc chọn ngẫu nhiên có í

nhất một va chạm mạnh (tức có

t

x′≠ x và h (x′) = h (x )) với xác suất

Khi 1 2

ε = , ta có k ≈1,17 n. Trong tr−ờng hợp ngày sinh, ta có n =365, do đó k ≈22, 3≈23.

Trở lại với vấn đề chọn độ dài (của biểu diễn nhị phân) cho các tóm l−ợc, nếu ta lấy chẳng hạn độ dài 40 bit, thì n = 240, và do đó từ k ≈ 220 (khoảng một triệu) văn bản sẽ có một va chạm mạnh với xác suất 1/2, nh− vậy khó bảo đảm đ−ợc an toàn. Nh−ng nếu ta lấy dộ dài của bản tóm l−ợc là 128, tức n =2128, thì va chạm mạnh có thể xẩy ra với xác suất 1/2 khi số các văn bản có thể là k ≈ 264, một con số khá lớn (so với số văn bản có thể nẩy sinh trong thực tế), do đó hy vọng tính an toàn sẽ đ−ợc bảo đảm. Có thể vì vậy mà trong chuẩn DSS ng−ời ta chọn độ dài của các tóm l−ợc là 160 bit.

Một phần của tài liệu Giáo trình lý thuyết mật mã và an toàn thông tin phần 2 phan đình diệu (Trang 32)

Tải bản đầy đủ (PDF)

(73 trang)