Bài toán xác nhận và chữ ký điện tử
5.3.2. Hàm băm Chaum-van Heijst-Pfitzmann.
D−ới đây ta sẽ giới thiệu một thí dụ cụ thể về một hàm băm đ−ợc xây dựng dựa trên tính khó của bài toán lôgarit rời rạc, do các tác giả Chaum, van Heijst và Pfitzmann đề xuất năm 1992. Hàm băm đó đ−ợc xây dựng nh− sau:
Giả sử p là một số nguyên tố lớn dạng Sophie Germain, tức có dạng p = 2q +1, trong đó q cũng là số nguyên tố. Chọn α và β là hai phần tử nguyên thuỷ của Z∗p. Việc tính logα β, khi biết α và β , là rất khó. Hàm băm h Z: qìZq →Zp−{ }0 đ−ợc định nghĩa nh− sau: với mọi x x1, 2∈Zq ta có
1
1 2
( , ) x. x
h x x =α β 2modp.
Ta gọi hàm băm h đ−ợc định nghĩa nh− vậy là hàm băm Chaum-van Heijst-Pfitzmann. Hàm băm đó có các tính chất là hàm một phía và không va chạm mạnh nh− yêu cầu đối với một hàm băm. Tính một phía của hàm đó đ−ợc suy ra từ tính một phía của hàm lôgarit rời rạc. Còn tính không va chạm mạnh của h đ−ợc chứng minh bởi định lý sau đây : Nếu biết một va chạm mạnh đối với h thì có thể tính đ−ợc logαβ một cách có hiệu quả.
Giả sử có một va chạm 1 2 3 4 ( , ) ( , ), h x x =h x x trong đó (x1,x2) ≠ (x3,x4). Nh− vậy ta có 3 1. 2 x x x x4 . α β ≡α β (modp), tức là 1 3 4 2 x x x x α − ≡β − (modp). Đặt d =gcd(x4 - x2, p -1). Vì p -1 = 2q và q là số nguyên tố, nên ta có d ∈ {1,2,q, p -1}. Ta xét lần l−ợt bốn khả năng đó của d. Giả sử d =1. Khi đó, đặt y = (x4 - x2)-1mod(p -1), ta có
(modp) 4 2