An Toàn và Bảo Mật Thông Tin: Tìm hiểu về chữ ký điện tử ElGamal và viết ứng dụng minh họa. CÓ CHƯƠNG TRÌNH DEMO Ở TRANG CUỐI. CHƯƠNG 1: CHỮ KÝ ĐIỆN TỬ 1.1 Khái niệm về chữ ký điện tử 1.2 Hệ chữ ký Elgamal 1.3 Chuẩn chữ ký điện tử 1.3.1 Thuật toán chữ ký điện tử 1.3.2 Chuẩn chữ ký điện tử 1.4 Mô hình ứng dụng của chữ ký điện tử CHƯƠNG 2: PHƯƠNG PHÁP MÃ HÓA BẤT ĐỐI XỨNG ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN TỬ 2.1 Mã hóa bất đối xứng là gì? 2.2 Cách hoạt động của mã hóa bất đối xứng 2.3 Ứng dụng của mã hóa bất đối xứng 2.4 Lợi ích và hạn chế của mã hóa bất đối xứng 2.5 So sánh mã hóa bất đối xứng và mã hóa đối xứng CHƯƠNG 3: TÌM HIỂU VỀ HÀM BĂM SHA 3.1 Khái niệm 3.2 Đặc tính của hàm Băm 3.3 Hàm Băm SHA (Secure Hash Algorithm) 3.4 Một số ứng dụng của hàm Băm CHƯƠNG 4: XÂY DỰNG PHẦM MỀM CHỮ KÝ ELGAMAL 4.1 Ý tưởng và thuật toán 4.2 Giao diện sử dụng
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN Mơn: An tồn bảo mật thơng tin Đề tài: Tìm hiểu chữ ký điện tử Elgamal viết ứng dụng minh họa Giảng viên hướng dẫn: Ths Trần Phương Nhung Lớp: 20201IT6001001 Nhóm Lê Thị Hảo (Trưởng nhóm) Phạm Thúy Hằng (Thư ký) Lê Thị Hằng Nguyễn Trọng Đức Hiệp HÀ NỘI 2020 MỤC LỤC CHƯƠNG 1: CHỮ KÝ ĐIỆN TỬ .3 1.1 Khái niệm chữ ký điện tử (Lê Thị Hằng) 1.2 Hệ chữ ký Elgamal (Lê Thị Hảo) 1.3 Chuẩn chữ ký điện tử (Phạm Thúy Hằng) 1.3.1 Thuật toán chữ ký điện tử 1.3.2 Chuẩn chữ ký điện tử 1.4 Mơ hình ứng dụng chữ ký điện tử (Lê Thị Hằng) 11 CHƯƠNG 2: PHƯƠNG PHÁP MÃ HÓA BẤT ĐỐI XỨNG ỨNG DỤNG TRONG CHỮ KÝ ĐIỆN TỬ 13 2.1 Mã hóa bất đối xứng gì? (Lê Thị Hằng) 13 2.2 Cách hoạt động mã hóa bất đối xứng (Phạm Thúy Hằng) 13 2.3 Ứng dụng mã hóa bất đối xứng (Lê Thị Hảo) .14 2.4 Lợi ích hạn chế mã hóa bất đối xứng (Nguyễn Trọng Đức Hiệp) 14 2.5 So sánh mã hóa bất đối xứng mã hóa đối xứng (Nguyễn Trọng Đức Hiệp) 15 CHƯƠNG 3: TÌM HIỂU VỀ HÀM BĂM SHA 16 3.1 Khái niệm (Lê Thị Hảo) 16 3.2 Đặc tính hàm Băm (Nguyễn Trọng Đức Hiệp) 16 3.3 Hàm Băm SHA (Secure Hash Algorithm) (Nguyễn Trọng Đức Hiệp, Lê Thị Hảo) 17 3.4 Một số ứng dụng hàm Băm (Lê Thị Hằng) 20 CHƯƠNG 4: XÂY DỰNG PHẦM MỀM CHỮ KÝ ELGAMAL 22 4.1 Ý tưởng thuật toán (Lê Thị Hảo) .22 4.2 Giao diện sử dụng (Lê Thị Hảo) 25 Lời cảm ơn 29 CHƯƠNG 1: CHỮ KÝ ĐIỆN TỬ 1.1 Khái niệm chữ ký điện tử (Lê Thị Hằng) Kể từ người phát minh chữ viết, chữ ký thường sử dụng hàng ngày, chẳng hạn ký biên nhận thư nhận tiền từ ngân hàng, ký hợp đồng hay văn Chữ ký viết tay thơng thường tài liệu thường dùng để xác định người ký Sơ đồ chữ ký điện tử phương pháp ký văn hay lưu điện dạng điện tử Chẳng hạn điện có chữ ký lưu hành mạng máy tính Chữ ký điện tử từ đời có nhiều ứng dụng rộng rãi giao dịch thương mại, từ việc xác minh chữ ký thẻ tín dụng, sơ đồ định danh sơ đồ chia sẻ bí mật… Sau đây, tìm hiểu số sơ đồ chữ ký quan trọng Song trước hết, thảo luận vài điểm khác biệt chữ ký thông thường chữ ký điện tử Đầu tiên vấn đề ký tài liệu Với chữ ký thông thường phần vật lý tài liệu Tuy nhiên, chữ ký điện tử không gắn theo kiểu vật lý vào điện nên thuật toán dùng phải “khơng nhìn thấy” theo cách điện Thứ hai vấn đề kiểm tra Chữ ký thông thường kiểm tra cách so sánh với chữ ký xác thực khác Ví dụ, ký séc để mua hàng, người bán so sánh chữ ký mảnh giấy với chữ ký nằm mặt sau thẻ tín dụng để kiểm tra Mặt khác, chữ ký số kiểm tra thuật tốn kiểm tra cách cơng khai Như vậy, kiểm tra chữ ký điện tử Việc sử dụng sơ đồ ký an tồn ngăn chặn khả giả mạo Sự khác biệt chữu ký điện tử chữ ký thông thường chỗ: copy tài liệu có chữ ký đồng với gốc Nói cách khác, tài liệu có chữ ký giấy thường khác biệt với gốc điểu để ngăn chặn điện ký khỏi bị dùng lại Ví dụ, B ký điện xác minh cho A rút 100$ từ tài khoản mình, muốn A có khả làm điều lần Vì thế, thân điện phải chứa thơng tin để khỏi dùng lại, chẳng hạn nhưu dùng dịch vụ gán nhãn thời gian (Time Stamping Service) Một sơ đồ chữ ký điện tử thường chứa hai thành phần: thuật toán ký sig () thuật toán xác minh ver () B có thẻ ký điện x dùng thuật tốn ký an tồn (bí mật) Kết chữ ký y = sig(x) nhận được kiểm tra thuật tốn xác minh cơng khai ver(y) Khi cho trước cặp (x, y), thuật toán xác minh cho giá trị TRUE hay FALSE tùy thuộc vào việc chữ ký xác định Vậy chữ ký điện tử? Chúng ta có số định nghĩa sau: • Là định danh điện tử tạo máy tính tổ chức sử dụng nhằm đạt tính hiệu có hiệu lực chữ ký tay • Là chế xác thực hóa cho phép người tạo thơng điệp đính kèm mã số vào thông điệp giống việc ký chữ ký lên văn bình thường Các chữ ký điện tử sinh sử dụng hệ chữ ký (sơ đồ) điện tử, định nghĩa hệ chữ ký điện tử Định nghĩa: Một sơ đồ chữ ký điện tử (P, A, K, S, V) thỏa mãn điều kiện đây: 1) P tập hữu hạn điện (thông điệp, rõ) 2) A tập hữu hạn chữ ký 3) K tập khơng gian khóa (tập hữu hạn khóa có thể) 4) Với khóa K ∈ k tồn thuật toán sigk ∈ s thuật toán xác minh verk ∈ v Mỗi sigk: P -> A {TRUE, FALSE} hàm cho điện x ∈ P chữ ký y ∈ A thỏa mãn phương trình Ver (x, y) = { TRUE y = sig(x) FALSE y # sig(x) Với K ∈ k, hàm sigk verk hàm đa thức thời gian Hàm verk hàm cơng khai cịn hàm sigk bí mật Khơng thể dễ dàng tính tốn để giả mạo chữ ký B điện x, nghĩa với x cho trước có B tính y để ver (x, y) = TRUE Một sơ đồ chữ ký khơng thể an tồn vơ điều kiện người C kiểm tra tất chữ số y điện x nhờ dùng thuật tốn ver () cơng khai tìm thấy chữ ký Vì có đủ thời gian, C ln giả mạo chữ ký B Như mục đích tìm sơ đồ chữ ký điện tử an tồn mặt tính tốn Chú ý giả mạo chữ ký B điện “ngẫu nhiên” x cách tính x = ek(y) với y Khi y = sigk(x) Một biện pháp xung quanh vấn đề khó khăn yêu cầu điện chứa đủ phần dư để chữ ký giả mạo kiểu không phù hợp với toàn nội dung điện x trừ xác suất nhỏ Có thể dùng hàm Băm (hash function) MD4, MD5 việc tính kết nối sơ đồ chữ ký điện tử loại phương pháp giả mạo 1.2 Hệ chữ ký Elgamal (Lê Thị Hảo) Hệ chữ ký Elgamal đưa vào năm 1985 Một phiên sửa đổi hệ Học viện Quốc gia tiêu chuẩn kỹ thuật (NIST) đưa chuẩn chữ ký điện tử Hệ chữ ký Elgamal thiết kế riêng biệt cho mục đích chữ ký, trái ngược với RSA thường sử dụng cho mục đích mã hóa cơng khai chữ ký Hệ chữ ký Elgamal không xác định, nghĩa có nhiều giá trị chữ ký cho điện cho trước Thuật toán xác minh phải có khả nhận giá trị chữ ký việc xác thực Sơ đồ chữ ký Elgamal miêu tả sau: Cho p số nguyên tố toán logarit rời rạc Zp, α ∈ Zp* phần tử nguyên P = Zp*, A = (Zp*) *Zp-1, định nghĩa: K = {(p, α, a, β) : β ≡ αa (mod p)} giá trị p, α β cơng khai, cịn a bí mật Với K = {p, α, a, β} chọn số ngẫu nhiên k ∈ Zp-1*, định nghĩa: sigk (x, k) = (γ, δ) đó: γ = αk mod p δ = (x – a* γ) k-1 mod (p - 1) Với x, γ ∈ Zp* δ ∈ Zp-1, định nghĩa: Ver (x, c, δ) = TRUE βγ γδ ≡ αx (mod p) Nếu chữ ký việc xác nhận thành cơng khi: βγ γδ ≡ αaγ αkδ (mod p) ≡ αx (mod p) Trong đó: aγ + kδ ≡ x (mod p-1) B tính tốn chữ ký việc sử dụng giá trị bí mật a (một phần khóa) số bí mật ngẫu nhiên k (giá trị để ký điện) Việc xác minh thực với thơng tin cơng khai: Ví dụ: Chúng ta chọn p = 467, α = 2, a = 127 Ta tính: β = αa mod p = 2127 mod 467 = 132 Bây B muốn ký lên điện x = 100 chọn giá trị ngẫu nhiên k = 213 (chú ý UCLN (213, 466) = 213-1 = mod 466 = 431) Sau tính: γ = 2213 mod 467 = 29 δ = (100 – 127*29)431 mod 466 = 51 Bất kiểm tra chữ ký cách tính: 132292951 ≡ 189 (mod 467) 2100 ≡ 189 (mod 467) Giả sử kẻ thử ba C muốn giả mạo chữ ký B điện x mà khơng biết số bí mật a Nếu C chọn giá trị γ cố gắng tìm δ, phải tính hàm logarit rời rạc logγ αx β-γ Mặt khác, chọn δ để cố gắng tìm γ phải tính βγ γδ = αx (mod p) Cả hai việc thực Tuy nhiên có lý thuyết mà C ký tên lên điện ngẫu nhiên cách chọn đồng thời γ, δ x Cho i, j số nguyên với