Nghiên cứu về lý thuyết mật mã, chữ ký điện tử, Chuẩn hàm băm an toàn và Chuẩn chữ ký số. NỘI DUNG TRÌNH BÀY Giới thiệu về NIST Sơ lược hàm băm Chuẩn hàm băm an toàn Giới thiệu Tiền xử lý Các hàm sử dụng tính toán Quy trình tính toán Chuẩn chữ ký số Giới thiệu Các tham số của DSA Lựa chọn kich thước các tham số Tạo chữ ký số DSA Xác nhận chữ ký số DSA Giải thuật tạo các số nguyên tố p và q Giải thuật xác suất MillerRabin kiểm tra tính nguyên tố
Tên đề tài CHUẨN CHỮ KÝ SỐ VÀ ỨNG DỤNG Giáo viên hướng dẫn : TS.Lê Phê Đô Sinh viên thực hiện : Nguyễn Đình Lượng Lớp CT702 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG ISO 9001:2000 HẢI PHÒNG - 2007 MỤC ĐÍCH ĐỀ TÀI Nghiên cứu về lý thuyết mật mã, chữ ký điện tử, Chuẩn hàm băm an toàn và Chuẩn chữ ký số. NỘI DUNG TRÌNH BÀY Giới thiệu về NIST Sơ lược hàm băm Chuẩn hàm băm an toàn Giới thiệu Tiền xử lý Các hàm sử dụng tính toán Quy trình tính toán Chuẩn chữ ký số Giới thiệu Các tham số của DSA Lựa chọn kich thước các tham số Tạo chữ ký số DSA Xác nhận chữ ký số DSA Giải thuật tạo các số nguyên tố p và q Giải thuật xác suất Miller-Rabin kiểm tra tính nguyên tố Giới thiệu về NIST Viện chuẩn và công nghệ quốc gia NIST (the National Institute of Standards and Technology), được thành lập năm 1901, là một cơ quan quản trị công nghệ của bộ thương mại Hoa Kì. Nhiệm vụ của Viện này là thúc đẩy các đổi mới và nâng cao tính cạnh tranh công nghệ bằng cách đưa ra khoa học đo lường, các chuẩn và công nghệ tiên tiến theo cách làm tăng tính an toàn kinh tế và cải thiện chất lượng cuộc sống. Sơ lược hàm băm Định nghĩa: Hàm băm là một hàm h có ít nhất hai tính chất sau: Tính chất nén: h sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tùy ý tới một đầu ra h(x) có độ dài n bit hữu hạn. Tính chất dễ dàng tính toán: Với h cho trước và một đầu vào x, có thể dễ dàng tính được h(x). Hàm băm yếu: • Với y bất kỳ không thể tìm x sao cho h(x) = y. • Với x bất kỳ không thể tím x’ sao cho h(x’) = h(x). Hàm băm mạnh: • Với x bất kỳ không thể tím x’ sao cho h(x’) = h(x). • Không thể tìm x ≠ x’ sao cho h(x) = h(x’). Chuẩn hàm băm an toàn (SHS) Giới thiệu: Chuẩn hàm băm an toàn SHS (Secure Hash Standard) được NIST đưa ra lần đầu vào 11/5/1993 với phiên bản đầu là FIPS PUB 180-1. Và phiên bản thứ2 là FIPS PUB 180-2, được đưa ra vào ngày 1/8/2002. Trong FIPS PUB 180-2 có 4 giải thuật hàm băm được đua ra là SHA-1, SHA-256, SHA-384, SHA-512. Bảng 1. Đặc điểm của các giải thuật hàm băm an toàn. Tiền xử lý: Độn bản tin Giải sử thông điệp M có độ dài là l bit - Với SHA-1 và SHA-256 l +1+k ≡ 448 mod 512 - Với SHA-384 và SHA-512 l +1+k ≡ 896 mod 512 Chuẩn hàm băm an toàn (SHS) Biểu diễn nhị phân của M l bit 1 00…00 k bit Biểu diễn nhị phân của l 64 bit Biểu diễn nhị phân của M l bit 1 00…00 k bit Biểu diễn nhị phân của l 128 bit Tiền xử lý: Phân phối bản tin độn - Với SHA-1 và SHA-256 Bản tin độn sẽ được phân ra thành N khối 512 bít: M (1) , M (2) ,…, M (N) . Mỗi khối tin M (i) biểu diễn 16 từ-32 bít: M 0 (i) , M 1 (i) ,…, M 15 (i) . - Với SHA-384 và SHA-512 Bản tin độn được phân ra thành N khối 1024 bít. M (1) , M (2) ,…, M (N) . Mỗi khối tin M (i) có độ lớn 1024 bít có thể biểu diễn thánh 16 từ-64 bít M 0 (i) , M 1 (i) ,…, M 15 (i) . Chuẩn hàm băm an toàn (SHS) Các hàm sử dụng tính toán SHA-1: f t (x, y, z) = SHA-256 Ch( x, y, z) = ( x y) ( x z) Maj( x, y, z) = ( x y) ( x z) ( y z) và và SHA-348 và 512 Ch( x, y, z) = ( x y) ( x z) Maj( x, y, z) = ( x y) ( x z) ( y z) và và 79t60 z yx z) y, Parity(x, 59t40 xzzy y) (x z) y, Maj(x, 39t20 z yx z) y, Parity(x, 19t0 )z x( y) (x z) y, Ch(x, )()( Chuẩn hàm băm an toàn (SHS) )()()( 2213 256 0 2 xROTRxROTRxROTR )()()( 2511 256 1 6 xROTRxROTRxROTR )()()( 3187 256 0 xROTRxROTRxROTR )()()( 101917 256 1 xROTRxROTRxROTR )()()( 3934 512 0 28 xROTRxROTRxROTR )()()( 4118 512 1 14 xROTRxROTRxROTR )()()( 781 512 0 xROTRxROTRxROTR )()()( 66119 512 1 xROTRxROTRxROTR Quy trình tính toán SHA-1: Chuẩn hàm băm an toàn (SHS) BEGIN M, H (0) , K, N i=1 a = H 0 (i-1) ; b = H 1 (i-1) ; c = H 2 (i-1) ; d = H 3 (i-1) ; e = H 4 (i-1) 79 16 )( 15 0 1683 1 tWWWROTL tM W ttt i t t 1 In H 0 (N) || … || H 4 (N) 2 t=0 T = ROTL 5 (a) + f t (b, c, d) +e + K t + W t ; e = d ; d = c; c = ROTL 30 (b); b = a; a = T t ≤ 79 1 H 0 (i) = a + H 0 (i-1) ; H 1 (i) = b + H 1 (i-1) ; H 2 (i) = c + H 2 (i-1) ; H 3 (i) = d + H 3 (i-1) ; H 4 (i) = e + H 4 (i-1) i ≤ N Đúng Sai Đúng Sai END t=t+1 2 i=i+1 [...]... 186-1 được đưa ra vào ngày 15/12/1998, phiên bản thứ 3 là FIPS PUB 186-2 đưa ra vào ngày 27/1/2000 và phiên bản mới nhất hiện nay là FIPS PUB 186-3 được công bố vào tháng 3/2006 Chuẩn chữ ký số (DSS) Giới thiệu Chuẩn chữ ký số (DSS) Giới thiệu Chuẩn chữ ký số (DSS) Các tham số của DSA • p: là một số nguyên tố trong đó 2L-1 < p < 2L với L là độ dài bit của biến p • q: là một ước số nguyên tố của p-1... Chuẩn chữ ký số (DSS) Tạo chữ ký số DSA Chữ ký trên thông điệp M là một cặp số (r, s) được tính toán như sau: r = (gk mod p) mod q s = k-1(z + x.r) mod q Với z = N bít trái nhất của hàm Hash(M) Giá trị của r và s sẽ được kiểm tra để xem chúng có bằng 0 hay không Nếu một trong hai giá trị này bằng không thì bên ký sẽ phải tạo ra một giá trị k khác và chữ ký số sẽ phải được tính toán lại Chuẩn chữ ký. .. chữ ký số (DSS) Xác nhận chữ ký số DSA Đặt M’, r’, s’ là thông điệp và chữ ký cần đi xác nhận Đặt y là khóa công khai của người tuyên bố đã tạo ra chữ ký Qui trình xác nhận chữ ký được thực hiện như sau: w = (s’)-1 mod q z = N bít trái nhất của Hash(M’) u1 = z.w mod q u2 = r’.w mod q v = (g u y u mod p) mod q Nếu v = r’ thì chữ ký số được xác nhận 1 2 Chuẩn chữ ký số (DSS) Giải thuật tạo các số nguyên... của H(N) như SHA-512 Chuẩn chữ ký số (DSS) Giới thiệu Để nâng cấp việc sử dụng thương mại điện tử của quốc gia và trong việc giao dịch, Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (NIST) đã đưa ra chuẩn xử lý thông tin FIPS 186 là chuẩn chữ ký số (DSS - Digital Signature Standard) vào ngày 19/5/1994 và được chấp nhận từ ngày 1/12/1994 Phiên bản đầu tiên của chuẩn chữ ký số là FIPS PUB 186, phiên bản... outlen) + ((Vn mod 2b) * 2 n * outlen) Đúng 5 3 Chuẩn chữ ký số (DSS) Giải thuật tạo các số nguyên tố p và q 4 In p,q, domain_parameter_seed, counter END Chuẩn chữ ký số (DSS) Giải thuật xác suất Miller-Rabin kiểm tra tính nguyên tố Chuẩn Miller-Rabin như sau: cho n là số nguyên lẻ thỏa mãn n-1 = 2e.u, với u là số nguyên tố • Nếu n là số nguyên tố, thì với mọi số nguyên dương a với 0 ≤ a ≤ n -1: (au ≡ 1... x là một số nguyên dương được tạo ra một cách ngẫu nhiên sao cho 0< x < q-1 • y: là khóa công khai, trong đó y = gx mod p • k: là số bí mật và là duy nhất với mỗi một tin nhắn k là số nguyên được tạo ra ngẫu nhiên sao cho 0 < k < q Chuẩn chữ ký số (DSS) Lựa chọn kích thước các tham số p và q Chuẩn này đưa ra một số lựa chọn cho cặp (L, N) như sau: (L = 1024, N = 160), (L = 2048, N = 224) và (L = 3072,... Chuẩn chữ ký số (DSS) Giải thuật tạo các số nguyên tố p và q BEGIN L, N, seedlen kiểm tra L, N Không hợp lệ In “Không hợp lệ” Hợp lệ END n = L / outlen - 1; b = L - 1 - (n * outlen) 5 domain_parameter_seed=RBG(seedlen) U = Hash(domain_parameter_seed) mod 2N q=U Sai 2N-1 1 q ? nguyên tố Đúng 1 Chuẩn chữ ký số (DSS) Giải thuật tạo các số nguyên tố p và q X = W + 2L-1 c = X mod 2q 1 p = X - (c - 1) offset=1... Nếu n là hợp số thì u ≡ 1 mod n hoặc k < e(a2 u ≡ -1 mod n)} ≤ n 1 {a: 1 ≤ a ≤ n-1, a 4 e.u với u Tức là khi số nguyên lẻ n có dạng thỏa mãn n-1 = 2 là số nguyên tố thì nếu n là số nguyên tố, nó luôn thỏa mãn tính chất(*) còn khi n là hợp số thì chỉ có thể tìm được tối đa là n 1 số nguyên a để thỏa mãn tính chất(*) Tính chất(*) đó là 4 hoặc au ≡ 1 mod n, nếu không thì sẽ tồn tại một số k thỏa mãn... -1 mod n k k Chuẩn chữ ký số (DSS) Giải thuật xác suất Miller-Rabin kiểm tra tính nguyên tố BEGIN j=1 w, iteration a là số nguyên lớn nhất thỏa mãn: w-1 = 2a; m = (w-1) / 2a; wlen = len(w); i=0 Đúng z= w-1 Sai z= 1 b=RBG(wlen) i=i+1 Đúng Đúng 3 1 Đúng j