BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG ~~~~~~*~~~~~~ BÀI TIỂU LUẬN ĐỀ TÀI HỆ THỐNG MẬT MÃ HÓA ELGAMAL BẢNG PHÂN CÔNG CÔNG VIỆC STT Họ và tên Công việc 1 Phân chia công vi[.]
BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG ~~~~~~*~~~~~~ BÀI TIỂU LUẬN ĐỀ TÀI: HỆ THỐNG MẬT MÃ HĨA ELGAMAL BẢNG PHÂN CƠNG CƠNG VIỆC STT Họ tên Công việc Phân chia cơng việc, nghiên cứu chương 1: khái niệm mã hóa, thành phần hệ thống mã hóa, khóa, hệ mật mã, kết luận chương, tổng hợp nội dung làm word Nghiên cứu nội dung chương 2: Hệ mật mã Elgamal, giới thiệu, định nghĩa toán logarit rời rạc, tạo mã, mã hóa, ưu nhược điểm, thám mã hệ Elgamal, kết luận chương cho vào word Nghiên cứu nội dung chương 3: Mô phỏng, kết luận chương cho vào word MỤC LỤC THUẬT NGỮ VIẾT TẮT .1 LÝ DO CHỌN ĐỀ TÀI MỤC ĐÍCH VÀ PHẠM VI CỦA TIỂU LUẬN Mục đích tiểu luận: Phạm vi tiểu luận: MÔ TẢ PHƯƠNG PHÁP VÀ CÁCH GIẢI QUYẾT VẤN ĐỀ CHƯƠNG TỔNG QUAN VỀ MÃ HÓA 1.1 Khái niệm .4 1.2 Thành phần hệ thống mật mã 1.3 Khóa 1.3.1 Độ dài khóa 1.3.2 Quản lý khóa cơng khai .5 1.3.3 Chứng nhận khố cơng khai 1.3.4 Quản lý khóa phân phối .6 1.4 Các hệ mật mã .6 1.4.1 Hệ mật mã đối xứng .6 1.5 KẾT LUẬN CHƯƠNG 10 CHƯƠNG HỆ MẬT MÃ ELGAMAL 11 2.1 Giới thiệu 11 2.2 ĐỊNH NGHĨA BÀI TOÁN LOGARIT RỜI RẠC 11 2.3 PHẦN TỬ SINH 11 2.4 QUÁ TRÌNH THỰC HIỆN 11 2.5 Tạo khóa, Mã hóa giải mã hệ Elgamal .11 2.5.1 Quá trình tạo khóa 11 2.5.3 Quá trình giải mã: 12 2.6 Ưu, nhược điểm 13 2.7 Thám mã hệ elgamal 13 2.8 Đánh giá độ an toàn 15 2.8.1 Bài toán Logarit rời rạc .15 2.8.2 Độ an toàn 15 2.9 KẾT LUẬN CHƯƠNG .16 CHƯƠNG MÔ PHỎNG .17 3.1 Chuẩn bị .17 3.2 Lập trình .17 3.2.1 Thuật tốn bình phương nhân 17 3.2.2 Mã hóa Elgamal 18 3.3 KẾT LUẬN CHƯƠNG .21 ỨNG DỤNG .21 KẾT LUẬN .22 TÀI LIỆU THAM KHẢO 23 DANH MỤC HÌNH ẢNH VÀ BẢNG HÌNH 1.1 Q TRÌNH MÃ HĨA VÀ GIẢI MÃ HÌNH 1.2 MÃ HĨA VÀ GIẢI MÃ CỦA THUẬT TOÁN ĐỐI XỨNG HÌNH 1.3 MÃ HĨA VÀ GIẢI MÃ CỦA THUẬT TỐN PHI ĐỐI XỨNG BẢNG 1.1 THỐNG KÊ TẦN SUẤT XUẤT HIỆN CỦA 26 CHỮ CÁI TRONG BẢNG TIẾNG ANH 13 HÌNH 3.1 KẾT QUẢ TÍNH SỐ DƯ 18 HÌNH 3.2 THIẾT LẬP CÁC THƠNG SỐ Q TRÌNH MÃ HĨA 19 HÌNH 3.3 KẾT QUẢ SAU KHI MÃ HÓA 19 HÌNH 3.4 THIẾT LẬP GIÁ TRỊ GIẢI MÃ 20 HÌNH 3.5 KẾT QUẢ SAU KHI GIẢI MÃ 21 Bài tiểu luận môn An Ninh Mạng THUẬT NGỮ VIẾT TẮT Tên viết tắt Tên đầy đủ Nghĩa tiếng việt P Plaintext Tập hợp hữu hạn rõ C Ciphertext Tập hợp hữu hạn mã K Key Tập hợp khố E Encrytion Tập hợp qui tắc mã hố D Decrytion Tập hợp qui tắc giải mã CA Certifying Authority Cơ quan chứng nhận Alice Tên riêng Bob Tên riêng Bài tiểu luận môn An Ninh Mạng LÝ DO CHỌN ĐỀ TÀI Trên đà phát triển máy tính, cơng nghệ thơng tin, cơng nghệ phần mềm hầu hết thơng báo, định hay tài liệu quan hành số hóa máy tính truyền mơi trường khơng đảm bảo tính bảo mật Do phải cần giải pháp để khắc phục vấn đề bảo mật Và mật mã học tối ưu để giải vấn đề Xuất phát từ nhu cầu thiết việc bảo mật liệu nhóm chúng em định tìm hiểu hệ thống mật mã hóa Elgamal hệ mật mã dựa toán logarit rời rạc thuật tốn cịn tồn mơi trường u cầu tính bảo mật khắc nghiệt suốt thời gian qua Bài tiểu luận môn An Ninh Mạng MỤC ĐÍCH VÀ PHẠM VI CỦA TIỂU LUẬN Mục đích tiểu luận: Nghiên cứu khái quát mã hóa cụ thể khóa, hệ mật mã đối xứng hay khơng đối xứng, thám mã sau sâu vào hệ mã hóa Elgamal Sau tìm hiểu kĩ Elgamal đánh giá ưu nhược điểm độ an toàn áp dụng thực tế Phạm vi tiểu luận: Tổng quan mã hóa, hệ thống mật mã hóa Elgamal bao gồm ưu nhược điểm, độ an tồn, xây dựng chương trình MƠ TẢ PHƯƠNG PHÁP VÀ CÁCH GIẢI QUYẾT VẤN ĐỀ Tổng quan mã hóa, mật mã học Từ tảng làm rõ hệ thống mật mã hóa Elgamanl, phân tích ưu nhược điểm, tính an tồn ứng dụng vào thực tế thông qua mô Bài tiểu luận môn An Ninh Mạng Chương TỔNG QUAN VỀ MÃ HĨA 1.1 Khái niệm Mã hóa phương pháp bảo vệ thông tin, cách chuyển đổi thông tin từ dạng rõ (Thơng tin dễ dàng đọc hiểu được) sang dạng mờ (thông tin bị che đi, để đọc cần phải giải mã nó) Giúp bảo vệ thông tin, để kẻ đánh cắp dù có thơng tin khơng thể hiểu nội dung - Bản rõ (plaintext or cleartext) Chứa xâu ký tự gốc, thông tin rõ thơng tin cần mã hố để giữ bí mật - Bản mã (ciphertext) Chứa ký tự sau mã hố, mà nội dung giữ bí mật - Mật mã học (Crytography) Là nghệ thuật khoa học để giữ thơng tin an tồn - Sự mã hố (Encryption) Q trình che dấu thơng tin phương pháp để làm ẩn nội dung bên gọi mã hoá - Sự giải mã (Decryption) Quá trình biến đổi trả lại mã thành rõ gọi giải mã - Quá trình mã hóa giải mã Hình 1.1 Q trình mã hóa giải mã 1.2 Thành phần hệ thống mật mã - Hệ mật mã: hệ bao gồm thành phần (P, C, K, E, D) thỏa mãn tính chất sau: P (Plaintext) tập hợp hữu hạn rõ C (Ciphertext) tập hợp hữu hạn mã K (Key) tập hợp khố E (Encrytion) tập hợp qui tắc mã hố D (Decrytion) tập hợp qui tắc giải mã Q trình mã hóa tiến hành cách áp dụng hàm toán học E lên thông tin P, vốn biểu diễn dạng số, để trở thành thơng tin mã hóa C Bài tiểu luận mơn An Ninh Mạng Q trình giải mã tiến hành ngược lại: áp dụng hàm D lên thông tin C để thông tin giải mã P 1.3 Khóa 1.3.1 Độ dài khóa Độ an tồn thuật tốn mã hố cổ điển phụ thuộc vào hai điều độ dài thuật toán độ dài khoá Nhưng độ dài khoá dễ bị lộ Giả sử độ dài thuật tốn lý tưởng, khó khăn lớn lao đạt thực hành Hồn tồn có nghĩa khơng có cách bẻ gãy hệ thống mã hoá trừ cố gắng thử với khố Nếu khố dài bits có 28 = 256 khố Nếu khố dài 56 bits, có 256 khố Giả sử siêu máy tính thực triệu phép tính giây, cần tới 2000 năm để tìm khố thích hợp Nếu khố dài 64 bits, với máy tính tương tự cần tới xấp xỉ 600,000 năm để tìm khố số 264 khố Nếu khố dài 128 bits, cần tới 1025 năm , vũ trụ tồn cỡ 1010 năm Như với 1025 năm đủ dài Trước gửi phát minh hệ mã hoá với Kbyte độ dài khố, nửa khác khơng phần quan trọng thuật tốn phải an tồn nghĩa khơng có cách bẻ gãy trừ tìm khóa thích hợp Điều khơng dễ dàng nhìn thấy được, hệ thống mã hố nghệ thuật huyền ảo Một điểm quan trọng khác độ an tồn hệ thống mã hố nên phụ thuộc vào khố, khơng nên phụ thuộc vào chi tiết thuật toán Nếu độ dài hệ thống mã hoá tin thực tế kẻ công biết nội dung bên thuật toán Nếu tin giữ bí mật nội dung thuật tốn, tận dụng độ an toàn hệ thống phân tích lý thuyết sở hữu chung bạn nhầm Và nghĩ khơng thể gỡ tung mã nguồn đảo ngược lại thuật toán Giả sử vài kẻ thám mã biết hết tất chi tiết thuật toán Giả sử họ có nhiều mã, họ mong muốn Giả sử họ có khối lượng rõ công với nhiều liệu cần thiết Thậm chí giả sử họ lựa chọn rõ cơng Nếu hệ thống mã hố dư thừa độ an tồn tất mặt, có đủ an tồn 1.3.2 Quản lý khóa cơng khai Trong thực tế, quản lý khố vấn đề khó an tồn hệ mã hố Để thiết kế an tồn thuật tốn mã hố việc dễ dàng để tạo lưu trữ khố bí mật điều khó Kẻ thám mã thường công hai hệ mã hố đối xứng cơng khai thơng qua hệ quản lý khoá chúng Đối với hệ mã hoá cơng khai việc quản lý khố dễ hệ mã hố đối xứng, có vấn đề riêng Mỗi người có khố công khai, số người mạng 1.3.3 Chứng nhận khố cơng khai Chứng nhận khố cơng khai xác định khố thuộc đó, quản lý người đáng tin cậy Chứng nhận để sử dụng vào việc cản trở cố gắng thay khoá khố khác Bài tiểu luận mơn An Ninh Mạng Lựa chọn rõ Người phân tích khơng truy cập mã kết hợp rõ cho vài tin, mặt khác lựa chọn rõ mã hố Phương pháp tỏ có khả phương pháp biết rõ người phân tích chọn cụ thể khối rõ cho mã hố, điều khác sản lượng thơng tin khố nhiều Giả thiết : P1, C1 = Ek(P1), P2, C2= Ek(P2), Pi, Ci = Ek(Pi) người phân tích chọn P 1, P2, Pi Suy luận : Mỗi k thuật toán kết luận P i+1 từ Ci+1 = Ek(Pi+1) Mô lựa chọn rõ: Đây trường hợp đặc biệt lựa chọn rõ Khơng lựa chọn rõ mã hố, họ cịn sửa đổi lựa chọn kết mã hoá lần trước Trong trường lựa chọn mã người phân tích chọn khối lớn rõ mã hố, trường hợp chọn khối nhỏ chọn khác kết lần Lựa chọn mã: Người phân tích chọn mã khác mã hoá truy cập rõ giải mã Trong ví dụ người phân tích có hộp chứng cớ xáo chộn khơng thể tự động giải mã, cơng việc suy luận khố Giả thiết : C1, P1 = Dk(C1), C2, P2= Dk(C2), Ci, Pi = Dk(Ci) Suy luận : k Lựa chọn khố: Đây khơng phải cách cơng mà bạn có khố Nó khơng phải thực hành thám mã mà giải mã thơng thường, bạn cần lựa chọn khố cho phù hợp với mã Một điểm đáng ý khác đa số kỹ thuật thám mã dùng phương pháp thống kê tần suất xuất từ, ký tự mã Sau thực việc thử thay với chữ có tần suất xuất tương đồng ngơn ngữ tự nhiên Tại xem xét ngơn ngữ thơng dụng tiếng Anh Việc thống kê tần suất xuất ký tự trường hợp tiến hành dựa báo, sách, tạp chí văn với số loại khác … Sau bảng thống kê tần suất xuất 26 chữ bảng tiếng Anh theo tài liệu Beker Piper Ký tự Xác Suất Ký tự Xác suất Ký tự Xác suất A 0.082 J 0.002 S 0.063 B 0.015 K 0.008 T 0.091 C 0.028 L 0.040 U 0.028 D 0.043 M 0.024 V 0.010 E 0.127 N 0.067 W 0.023 F 0.022 O 0.075 X 0.001 G 0.020 P 0.019 Y 0.020 H 0.061 Q 0.001 Z 0.001 I 0.070 R 0.060 Bảng 1.1 Thống kê tần suất xuất 26 chữ bảng tiếng Anh theo tài liệu Beker Piper Bài tiểu luận môn An Ninh Mạng Cùng với việc thống kê tần suất ký tự tiếng Anh, việc thống kê tần suất xuất thường xuyên dãy gồm ký tự liên tiếp có vai trị quan trọng cơng việc thám mã Sysu Deck đưa 30 đôi xuất thường xuyên tiếng Anh theo thứ tự giảm dần sau: Tính hữu dụng phép thống kê ký tự dãy ký tự người phân tích mã khai thác triệt để lần thám mã Khi thực việc thám mã người phân tích thống kê ký tự mã, từ so sánh với thống kê mẫu đưa ký tự đoán tương tự Phương pháp sử dụng thường xuyên đem lại hiệu cao 1.5 Kết luận chương Biết mã hóa biến đổi thông tin từ dạng đơn sang dạng phải giải mã hiểu Hệ thống mã hóa gồm phần thao tác cần thực với khóa Các hệ mật mã nay: đối xứng phi đối xứng thám mã cách phá mã 10 Bài tiểu luận môn An Ninh Mạng Chương HỆ MẬT MÃ ELGAMAL 2.1 Giới thiệu - Hệ elgamal hệ mật mã hóa khóa cơng khai - Hệ elgamal dựa tốn logarit rời rạc Tính an tồn tùy thuộc vào độ phức tạp toán logarit - Hệ mã hóa Elgamal đưa Taher Elgamal năm 1985 - Mã hóa gồm thuật tốn: • Thuật tốn khởi tạo khóa • Thuật tốn mã hóa Elgamal • Thuật toán giải mã Elgamal - So với RSA, hệ Elgamal khơng có nhiều rắc rối vấn đề quyền sử dụng 2.2 Định nghĩa toán logarit rời rạc Cho số nguyên tố p phần tử sinh α tập Z*p, phần tử β ∈ Z*p Bài tốn đặt ra: tìm số ngun a, ≤ a ≤ (p-2), cho αa đồng dư β (mod p ) 2.3 Phần tử sinh Một nhóm cyclic hay nhóm monogenous nhóm sinh từ tập hợp sinh gồm phần tử g, phần tử gọi phần tử sinh nhóm Nếu nhóm viết theo lối nhân phần tử nhóm lũy thừa g, cịn nhóm viết theo lối cộng phần tử nhóm bội g Một nhóm G gọi nhóm cyclic G tồn phần tử g cho G=={ gn với số nguyên n} Chẳng hạn, G={ e, g1, g2, g3, g4, g5 }, G cyclic, G đẳng cấu với nhóm số {0, 1, 2, 3, 4, } với phép cộng mudulo 6, nghĩa ( + ) mod 6=3, ( 2+5) mod 6=1,… 2.4 Q trình thực Alice tạo khóa bao gồm Public Key Private Key Alice gửi Public Key cho Bob Bob nhận Public Key mã hóa thơng điệp Sau Bob gửi thơng điệp mã hóa cho Alice Alice nhận thơng điệp mã hóa giải mã thộng điệp Private Key 2.5 Tạo khóa, Mã hóa giải mã hệ Elgamal 2.5.1 Quá trình tạo khóa Gồm bước: để tạo khóa Public Key Private Key Bước 1,2: Chọn giá trị p, a x 11 Bài tiểu luận môn An Ninh Mạng Ban đầu người ta chọn một số nguyên tố lớn p hai số nguyên tuỳ ý nhỏ p a (a phần tử nguyên thủy của Z*P) x (x người nhận, bí mật) Bước 3: Sau tính: y = ax mod p Bước 4: Public key (p,a,y), khóa bị mật x 2.5.2 Q trình mã hóa: Gồm bước: Bước 1: Lấy Plublic key Bước 2: Thông điệp diễn tả dạng số nguyên M (0≤M≤p-1) Bước 3: Để mã hóa thơng điệp M (là số nguyên ZP) thành mã C người gửi chọn một số ngẫu nhiên k nhỏ p tính khóa mã hóa K: K = yk mod p Bước 4, 5: Sau tính cặp mã: C1 = ak mod p C2 = (K.M) mod p Bước 6: Và gửi mã C = (C1, C2) (chú ý sau k bị huỷ) 2.5.3 Quá trình giải mã: Để giải mã thơng điệp đầu tiên ta cần tính lại khóa mã hóa thơng điệp K: K = (C1 (p-1-x) ) mod p = (ak.(p-1-x) ) mod p Sau tính M cách giải phương trình sau đây: M = (C2 K) mod p Việc giải mã bao gồm việc tính lại khóa tạm thời K (rất giống với mơ hình Diffie - Hellman đưa ra) Khóa cơng khai hệ mã (p, a, y), khóa bí mật x Ví dụ: Cho hệ mã El Gamal có P = 101, a = 30, x = 15 Tìm khóa hệ mã Mã hóa rõ M = với k chọn 24 Mã hóa Trước hết ta tính y = 3015 mod 101 = 14, từ KP = (p, a, y) = (101, 30, 14) KS = (15) Để mã hóa thơng điệp M = ta tính khóa K = 1424 mod 101 = 36 sau tính: C1 = 3024 mod 101 = 37 12 Bài tiểu luận môn An Ninh Mạng C2 = 36.6 mod 97 = 14 Vậy mã gửi C = (37, 14) Giải mã Ta tính lại K K= C1(p-1-x) mod p = 37101-1-15 mod 101 = 87 Bản rõ M: M = (K.C2) mod p = (87.14) mod 101 = 2.6 Ưu, nhược điểm - Ưu điểm: + Độ phức tạp toán logarit lớn nên độ an toàn cao + Bản mã phụ thuộc vào rõ x giá trị ngẫu nhiên nên từ rõ ta có nhiều mã khác - Nhược điểm: + Tốc độ chậm( phải xử lý số nguyên lớn) + Dung lượng nhớ dành cho việc lưu trữ khóa lớn 2.7 Thám mã hệ elgamal Trong báo cáo, chúng em sử dụng thuật toán Shank để thám mã Thuật toán Shank Thuật toán có tên gọi khác thuật tốn thời gian – nhớ Tư tưởng thuật toán ta có đủ nhớ sử dụng nhớ để giảm thời gian thực thuật toán Input: Số nguyên tố p, phần tử nguyên thủy a Z* , số nguyên y Output: cầ n tìm x cho ax mod p = y Thuật toán: Gọi m = [(p-1)1/2] (lấ y phầ n nguyên) Bước 1: Tính amj mod p vớ i ≤ j ≤ m-1 Bước 2: Sắp xếp cặp (j, amj mod p) theo amj mod p và lưu vào danh sách L1 Bước 3: Tính yai mod p vớ i ≤ i ≤ m-1 Bước 4: Sắp xếp cặp (i, ya-i mod p) theo amj mod p và lưu vào danh sách L2 Bước 5: Tìm hai danh sách L L2 xem có tồn cặp (j, amj mod p) (i, yai mod p) mà amj mod p = yai mod p (tọa độ thứ hai hai cặp nhau) Lưu ý: Vì amj = yai => amj-i = y nên bước thành công Bước 6: x = (mj + i) mod (p-1) Kết kiểm chứng từ công thức amj mod p = yai mod p => amj- i mod p = y mod p => x = (mj - i) mod (p-1) 13 Bài tiểu luận mơn An Ninh Mạng Ví dụ: Với tốn người thám mã có khóa cơng khai KP = (p, a, y) = (97, 5, 44) m = [(p-1)1/2]= [(97-1)1/2]= 10 Bước 1: Tính amj mod p vớ i ≤ j ≤ m-1 Bước 2: Sắp xếp cặp (j, amj mod p) theo amj mod p và lưu vào danh sách L1 j(0 ≤ j ≤ m-1) 510.j mod 97(amj mod p) 1 53 93 79 16 72 33 62 85 Bước 3: Tính yai mod p với ≤ i ≤ m-1 Bước 4: Sắp xếp cặp (i, ya-i mod p) theo amj mod p và lưu vào danh sách L2 i(0 ≤ i ≤ m-1) 44.5i mod 97(yai mod p) 44 26 33 68 49 51 14 Bài tiểu luận môn An Ninh Mạng 61 14 70 59 Bước 5: Tìm hai danh sách L1 L2 xem có tồn cặp (j, amj mod p) (i, ya-i mod p) mà amj mod p = yai mod p (tọa độ thứ hai hai cặp nhau) Dựa vào bảng danh sách L1 L2 có j =6 i=2 amj mod p= yai mod p= 33 Bước 6: x = (mj + i) mod (p-1) Kết kiểm chứng từ công thức amj mod p = yai mod p => amj- i mod p = y mod p => x = (mj - i) mod (p-1) Vậy ta có x=(10 x - 2) mod (97-1)= 58 (So sánh với kết tốn giải mã x 58) 2.8 Đánh giá độ an toàn 2.8.1 Bài toán Logarit rời rạc Logarit rời rạc tiếp nối phép tính lơgarit trường số thực vào nhóm hữu hạn Ta nhắc lại với hai số thực x, y số a>0, a≠1,nếu ax=y x gọi lơgarit số a y, ký hiệu x= logay Logarit rời rạc tốn khó (chưa biết thuật tốn hiệu nào), toán ngược luỹ thừa rời rạc lại khơng khó (có thể sử dụng thuật tốn bình phương nhân) Ví dụ: Cho p số nguyên tố Xét nhóm nhân số nguyên modulo p: E*p={1,2, p}với phép nhân modulo p Nếu ta tính luỹ thừa bậc k số nhóm rút gọn theo modulo p ta số nhóm Q trình gọi luỹ thừa rời rạc modulo p Chẳng hạn với p=17, lấy a=3, k=4 ta có: 34 = 81 13 (mod 17) Lơgarit rời rạc phép tính ngược lại: k Biết : 13 (mod 17) tìm k 2.8.2 Độ an tồn Hệ elgamal dựa tốn logarit rời rạc Tính an tồn tùy thuộc vào độ phức tạp toán logarit 15 ... gọi mã hố - Sự giải mã (Decryption) Q trình biến đổi trả lại mã thành rõ gọi giải mã - Q trình mã hóa giải mã Hình 1.1 Q trình mã hóa giải mã 1.2 Thành phần hệ thống mật mã - Hệ mật mã: hệ bao... triển hệ mật mã cổ điển Thuật tốn đối xứng chia làm hai thể loại, mật mã luồng (stream ciphers) mật mã khối (block ciphers) Mật mã luồng mã hóa bit thông điệp mật mã khối gộp số bit lại mật mã hóa. .. thiệu - Hệ elgamal hệ mật mã hóa khóa cơng khai - Hệ elgamal dựa tốn logarit rời rạc Tính an tồn tùy thuộc vào độ phức tạp tốn logarit - Hệ mã hóa Elgamal đưa Taher Elgamal năm 1985 - Mã hóa gồm