ĐẠI HỌC ĐỒNG THÁP &&& Bài tập lớn Mật mã an toàn liệu Đề bài: Chữ ký số ELGAMAL Giảng viên: PGS.TS Nguyễn Trọng Nhân Học viên thực hiện: Lộ Quốc Nghị Khóa: K19-TDL&MMT Lớp MH: INT 6010 Mã HV: 12025324 MỤC LỤC Trang 2/8 TỔNG QUAN VỀ CHỮ KÝ SỐ 1.1 Khái niệm - Chữ ký điện tử dạng thông tin kèm liệu (văn bản, hình ảnh, video…) nhằm mục đích xác định người chủ liệu đó, chữ ký chân email ví dụ loại chữ ký - Chữ ký số tập chữ ký điện tử, dạng chữ ký điện tử dựa cơng nghệ mã hố Để sử dụng chữ ký số người dùng phải có cặp khố gồm khố cơng khai (public key) khố bí mật (private key) Khố bí mật dùng để tạo chữ ký số, khố cơng khai dùng để thẩm định chữ ký số hay xác thực người tạo chữ ký số 1.2 Pháp lý chữ ký số Một số văn quy phạm pháp luật Quốc hội, Chính phủ Bộ thơng qua ban hành liên quan đến chữ ký số: - Luật Giao dịch điện tử số 51/2005/QH11 Quốc hội thông qua ngày 29/11/2005 quy định giao dịch điện tử hoạt động quan nhà nước lĩnh vực dân sự, kinh doanh, thương mại lĩnh vực khác pháp luật quy định - Luật Công nghệ thông tin số 67/2006/QH11 Quốc hội thông qua ngày 29/6/2006 quy định hoạt động ứng dụng phát triển công nghệ thông tin, biện pháp bảo đảm ứng dụng phát triển công nghệ thông tin, quyền nghĩa vụ quan, tổ chức, cá nhân tham gia hoạt động ứng dụng phát triển công nghệ thông tin - Nghị định số 26/2007/NĐ-CP ngày 15/2/2007 Chính phủ quy định chi tiết thi hành Luật Giao dịch điện tử chữ ký số dịch vụ chứng thực chữ ký số - Thông tư số 05/2010/TT-BNV ngày 01/7/2010 Bộ Nội vụ hướng dẫn cung cấp, quản lý sử dụng dịch vụ chứng thực chữ ký số chuyên dùng phục vụ quan thuộc hệ thống trị 1.3 Ưu điểm chữ ký số Việc sử dụng chữ ký số mang lại nhiều ưu điểm cần xác định nguồn gốc tính tồn vẹn văn q trình sử dụng - Khả xác định nguồn gốc + Các hệ thống mật mã hóa khóa cơng khai cho phép mật mã hóa văn với khóa bí mật mà có người chủ khóa biết + Để sử dụng Chữ ký số văn cần phải mã hóa hàm băm (là giải thuật nhằm sinh giá trị băm tương ứng với khối liệu: chuỗi kí tự, đối tượng lập trình hướng đối tượng, v.v Giá trị băm đóng vai gần khóa để phân biệt khối liệu) Sau dùng khố bí mật người chủ khóa để mã hóa, ta Chữ ký số Khi cần kiểm tra, bên nhận giải mã với khóa cơng khai để lấy lại hàm băm kiểm tra với hàm băm văn nhận Nếu hai giá trị khớp bên nhận tin tưởng văn xuất phát từ người sở hữu khóa bí mật Trang 3/8 - Tính tồn vẹn Cả hai bên tham gia vào q trình thơng tin tin tưởng văn không bị sửa đổi truyền văn bị thay đổi hàm băm thay đổi lập thức bị phát Quy trình mã hóa ẩn nội dung dối với bên thứ ba - Tính khơng thể phủ nhận Trong giao dịch, bên từ chối nhận văn gửi Để ngăn ngừa khả này, bên nhận yêu cầu bên gửi phải gửi kèm chữ ký số với văn Khi có tranh chấp, bên nhận dùng chữ ký chúng để bên thứ ba giải 1.4 Lợi ích sử dụng chữ ký số doanh nghiệp - Việc ứng dụng chữ ký số giúp doanh nghiệp tiết kiệm thời gian, chi phí hành Hoạt động giao dịch điện tử nâng tầm đẩy mạnh Không thời gian lại, chờ đợi - Không phải in ấn hồ sơ - Việc ký kết văn ký điện tử diễn đâu, thời gian - Việc chuyển tài liệu, hồ sơ ký cho đối tác, khách hàng, quan quản lý… diễn tiện lợi nhanh chóng 1.5 Cách sử dụng chữ ký số - Tạo chữ ký số Sử dụng ứng dụng hỗ trợ tạo chữ ký số từ khóa bí mật, khóa bí mật nhà cung cấp dịch vụ chứng thức chữ ký số công cộng cấp lưu giữ dạng tệp tin (có mật sử dụng), để an tồn chống copy khóa bí mật số nhà cung cấp dịch vụ lưu trữ khóa bí mật thiết bị phần cứng chuyên dụng USB Token SmartCard Thiết bị đảm bảo khóa bí mật lưu trữ an tồn, khơng thể chép hay nhân bị virus phá hỏng - Kiểm tra chữ ký Khi giao dịch điện tử, người nhận phải kiểm tra tính pháp lý chữ ký số người giao dịch với gửi đến Trong ứng dụng hỗ trợ ký số có chức kiểm tra chữ ký số công cộng hợp pháp hay không Việc kiểm tra so sánh tính đồng khóa cơng khai chữ ký số người gửi đến với khóa cơng khai Nhà cung cấp dịch vụ chứng thực chữ ký số công cộng lưu trữ hệ thống máy chủ Trung tâm chứng thực chữ ký số quốc gia (Root Certification Authority) thuộc Bộ Thông tin – Truyền thông SƠ ĐỒ CHỮ KÝ ELGAMAL - Sơ đồ chữ ký Elgamal giới thiệu năm 1985 Sơ đồ thiết kế dành riêng cho chữ ký số khác với sơ đồ RSA dành chung cho hệ thống mã công khai chữ ký số Trang 4/8 2.1 Tạo cặp khóa (bí mật, cơng khai) (a, h) : Chọn số nguyên tố p cho toán logarit rời rạc Zp “khó” giải κ Chọn phần tử nguyên thuỷ g ∈ Zp* Đặt P = Z p*, A = Z p* x Z p-1 Chọn khóa bí mật a ∈ Zp* Tính khóa cơng khai h ≡ g a mod p Định nghĩa tập khóa: = {(p, g, a, h): h ≡ g a mod p} Các giá trị p, g, h công khai, phải giữ bí mật a 2.2 Ký số: Dùng khóa ký: khóa a khóa ngẫu nhiên bí mật r ∈ Zp-1* (Vì r ∈ Zp-1* , nên nguyên tố p -1, tồn r -1 mod (p -1) ).Chữ ký x ∈ P y = Sig a (x, r) = (γ, δ), y ∈ A Trong γ ∈ Z p*, δ ∈ Zp-1 : γ = g r mod p δ = (x – a * γ ) * r -1 mod (p -1) 2.3 Kiểm tra chữ ký: Ver k (x, γ, δ) = ⇔ h γ * γ δ ≡ g x mod p Chú ý: Nếu chữ ký tính đúng, kiểm thử thành cơng h γ * γ δ ≡ g a γ * g r * δ mod p ≡ g Do (a γ + r * δ) mod p ≡ g x mod p δ = (x – a * γ ) * r -1 mod (p -1) nên (a * γ + r *δ) ≡ x mod (p-1) 2.4 Ví dụ: Chữ ký Elgamal liệu x = 112 1/ Tạo cặp khóa (bí mật, cơng khai) (a, h) : Chọn số nguyên tố p = 463 Đặt P = Z p*, A = Z p* x Z p-1 Chọn phần tử nguyên thuỷ g = ∈ Zp* κ Chọn khóa bí mật a = 211 ∈ Zp* Tính khóa cơng khai h ≡ g a mod p = 211 mod 463 = 249 Định nghĩa tập khóa: = {(p, g, a, h): h ≡ g a mod p} Các giá trị p, g, h cơng khai, phải giữ bí mật a 2/ Ký số: Chọn ngẫu nhiên bí mật r = 235 ∈ Zp-1* Khóa ký (a, r ) Vì r ∈ Zp-1* , nên nguyên tố p -1, tồn r -1 mod (p -1) Cụ thể: UCLN(r, p-1) = UCLN(235, 462) = 1, nên r -1 mod (p-1) = 235 -1 mod 462 = 289 Chữ ký liệu x = 112 ( γ, δ ) = (16, 108), đó: γ = g r mod p = 235 mod 463 = 16 Trang 5/8 δ = (x – a * γ ) * r -1 mod (p -1) = (112 - 211 * 16) * 289 mod 462 = 108 3/ Kiểm tra chữ ký: Ver k (x, γ, δ) = ⇔ hγ*γδ h γ * γ δ ≡ g x mod p = 249 16 * 16 108 mod 463 = 132 g x mod p = 112 mod 463 = 132 Hai giá trị nhau, chữ ký ĐỘ AN TOÀN CỦA CHỮ KÝ ELGAMAL Bài toán bảo đảm độ an toàn Sơ đồ chữ ký Elgamal: Bài tốn tính Logarit rời rạc: Biết khóa cơng khai h ≡ g a mod p Nên xác định khóa bí mật a cách tính Log g h 3.1 Vấn đề giả mạo chữ ký Elgamal 1) Trường hợp 1: Giả mạo chữ ký không với tài liệu ký H cố gắng giả mạo chữ ký x, mà khơng biết khóa bí mật a Như vậy, H phải tính γ δ * Nếu chọn trước γ, H phải tính δ qua đẳng thức h γ * γ δ ≡ g x mod p Tức γ δ ≡ g x (E2) h - γ mod p hay δ ≡ logγ g x h - γ mod p * Nếu chọn trước δ, H phải tính γ qua phương trình: h γ * γ δ ≡ g x mod p Hiện chưa có cách hữu hiệu trường hợp trên, đoán khó tốn logarit rời rạc Có thể có cách tính γ, δ đồng thời với (γ, δ) chữ ký ? Chưa có trả lời rõ ! * Nếu chọn trước γ, δ, sau tính x, H phải đối đầu với toán logarit rời rạc Ta có h γ * γ δ ≡ g x mod p Như (E2) x ≡ log g g x ≡ log g h γ * γ δ 2) Trường hợp 2: Giả mạo chữ ký với tài liệu ký H ký tài liệu ngẫu nhiên cách chọn trước đồng thời x, γ, δ Cách * Chọn x, γ, δ thoả mãn điều kiện kiểm thử sau: Chọn số nguyên i, j cho ≤ i, j ≤ p-2, (j, p-1) = tính: γ = g i h j mod p, δ = - γ j -1 mod (p -1), x = - γ i j -1 mod (p -1) Trong j -1 tính theo mod (p -1) (nghĩa j nguyên tố với p-1) * Chứng minh (γ, δ) chữ ký x, cách kiểm tra điều kiện kiểm thử: Trang 6/8 h γ γ δ ≡ h γ (g i h j ) -γ j -1 mod p ≡ h γ g – i γ j-1 h -γ mod p ≡ g x mod p Ví dụ * Chọn tham số sơ đồ chữ ký Elgamal: Số nguyên tố p = 463, phần tử sinh g = 2, Khóa bí mật a = 135 Khóa cơng khai h = g a mod p = 135 mod 463 = 272 * Chọn x, γ, δ thoả mãn điều kiện kiểm thử sau: Chọn i = 89, j = 125, ≤ i, j ≤ p-2, (j, p-1) = Tính j -1 mod (p-1) = 377 γ = g i * h j mod p = 289 * 272125 mod 463 = 218 δ = - γ * j -1 mod (p -1) = -218 * 377 mod 462 = 50 x = -γ * i * j -1 mod (p -1) = -218 * 89 * 377 mod 462 = 292 * (γ, δ) = (218, 50) chữ ký x = 292, thỏa mãn điều kiện kiểm thử: h γ * γ δ = 272 218 * 218 50 ≡ 322 (mod 463) g x = 292 ≡ 322 (mod 467) Cách * Nếu (γ, δ) chữ ký tài liệu x có từ trước, giả mạo chữ ký tài liệu x’ khác + Chọn số nguyên k, i, j thỏa mãn ≤ k, i, j ≤ p-2, (k γ - j δ, p-1) = tính: λ = γ k g i h j mod p, µ = δ λ (k γ - j δ) -1 mod (p -1), x’ = λ (k x + i δ) (k γ - j δ) -1 mod (p -1) * (λ, µ) chữ ký x’, thỏa mãn điều kiện kiểm thử: h λ λ µ ≡ g x’ mod p Chú ý Cả hai cách giả mạo nói cho chữ ký tài liệu tương ứng, tài liệu chọn theo ý người giả mạo Tài liệu tính sau tính chữ ký, giả mạo loại thực tế khơng có ý nghĩa nhiều 3.2 Vấn đề Phá khóa theo sơ đồ Elgamal Khố bí mật a bị phát hiện, khóa ngẫu nhiên r bị lộ, dùng r cho hai lần ký khác 1) Trường hợp 1: Số ngẫu nhiên r bị lộ: Nếu r bị lộ, thám mã tính khố mật a = (x - r δ) γ 2) Trường hợp 2: -1 mod (p-1) Dùng r cho hai lần ký khác nhau: Trang 7/8 Giả sử dùng r cho lần ký x1 x2 (γ, δ1) chữ ký x1, (γ, δ2) chữ ký x2 β γ ∗ γ δ12 ≡ α xx12 (mod (modđó pp))thám mã tính a sau: Khi α x1 − x2 ≡ γ δ1 −δ (mod p) 2) α x1 − x2 ≡ γ k *(δ1 −δDo (mod tap )có x' = x1 − x2 d Đặt δ' = δ 1−δ d tương đương với x1-x2 ≡ r (δ1 - δ2) mod (p-1) p' = p− d Đặt d = (δ1 - δ2, p -1) Khi d | (p-1), γ = α r , ta có Khi đồng dư thức (1) trở thành: d | (δ1 - δ2) ⇒ d | (x1-x2) x' ≡ r * δ' (mod p') Vì (δ', p') = nên tính ε = (δ')-1 mod p' ⇒ (1) tính r = x'*ε mod p' r = x'*ε + i*p' mod (p-1), với i giá trị đó, 0≤ i ≤ d-1 Thử với giá trị đó, ta tìm r (điều kiện thử để xác định r γ = αr mod p) Tiếp theo tính a trường hợp 1) ƯU ĐIỂM VÀ NHƯỢC ĐIỂM CỦA CHỮ KÝ ELGAMAL 4.1 Ưu điểm Độ phức tạp tốn logarit lớn nên độ an tồn cao Chữ ký phụ thuộc vào văn cần ký giá trị ngẫu nhiên nên có nhiều chữ ký khác 4.2 Nhược điểm Tốc độ chậm phải xử lý số nguyên lớn Dung lượng nhớ cần thiết lớn Trang 8/8