BÁO CÁO ĐỒ ÁN i | 20161 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN LÝ THUYẾT MẬT MÃ Đề tài TRIỂN KHAI HỆ MẬT ELGAMAL TRÊN MATLAB Giảng viên hướng dẫn TS Hán Trọng Than. MỤC LỤC MỤC LỤC 3 DANH MỤC HÌNH ẢNH 5 DANH MỤC BẢNG BIỂU 6 BẢNG PHÂN CÔNG CÔNG VIỆC 7 LỜI NÓI ĐẦU 8 Phần 1. Trình bày bài tập lớn 9 CHƯƠNG I – LÝ THUYẾT VỀ HỆ MẬT ELGAMAL 9 1.1. Giới thiệu chung 9 1.1.1. Mục tiêu 9 1.1.2. Giới thiệu về hệ mật mã 9 1.2. Hệ mật mã Elgamal 10 1.2.1. Giới thiệu chung về hệ mật Elgamal 10 1.2.2. Mã hóa và giải mã hệ mật Elgamal 10 1.2.3. Thám mã hệ mật Elgamal 13 1.2.4. Quản lý khóa 16 1.2.5. Độ an toàn 17 1.2.6. Ưu nhược điểm của hệ mật Elgamal 18 CHƯƠNG II – TRIỂN KHAI HỆ MẬT ELGAMAL TRÊN MATLAB 19 2.1. Mô hình mô phỏng 19 CHƯƠNG III – KẾT LUẬN 21 3.1. Kết quả đạt được : 21 3.2. Kết quả chưa đạt được: 21 3.3. Thuận lợi : 21 3.4. Khó khăn 21 Phần 2. Tài liệu tham khảo 22 Phần 3. Phụ lục 23
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG - - BÁO CÁO BÀI TẬP LỚN LÝ THUYẾT MẬT MÃ Đề tài: TRIỂN KHAI HỆ MẬT ELGAMAL TRÊN MATLAB Giảng viên hướng dẫn : TS Hán Trọng Thanh Nhóm sinh viên thực : Nhóm số Lê Bá Tuấn Anh MSSV: 20140088 – Điện tử 10 K59 Tăng Bá Phương Duy MSSV: 20140747 – Điện tử 10 K59 Nguyễn Hữu Dương MSSV: 20140873 – Điện tử 08 K59 Phạm Bá Thông MSSV: 20144316 – Điện tử 05 K59 Nguyễn Quang Toàn MSSV: 20144543 – Điện tử 02 K59 Hà Nội – 05/2017 MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH .5 DANH MỤC BẢNG BIỂU BẢNG PHÂN CÔNG CÔNG VIỆC .7 LỜI NÓI ĐẦU .8 Phần Trình bày tập lớn CHƯƠNG I – LÝ THUYẾT VỀ HỆ MẬT ELGAMAL .9 1.1 Giới thiệu chung .9 1.1.1 Mục tiêu 1.1.2 Giới thiệu hệ mật mã 1.2 Hệ mật mã Elgamal 10 1.2.1 Giới thiệu chung hệ mật Elgamal 10 1.2.2 Mã hóa giải mã hệ mật Elgamal 10 1.2.3 Thám mã hệ mật Elgamal .13 1.2.4 Quản lý khóa 16 1.2.5 Độ an toàn 17 1.2.6 Ưu & nhược điểm hệ mật Elgamal 18 CHƯƠNG II – TRIỂN KHAI HỆ MẬT ELGAMAL TRÊN MATLAB 19 2.1 Mơ hình mô 19 CHƯƠNG III – KẾT LUẬN .21 3.1 Kết đạt : 21 3.2 Kết chưa đạt được: 21 3.3 Thuận lợi : 21 3.4 Khó khăn 21 Phần Tài liệu tham khảo 22 Phần Phụ lục .23 DANH MỤC HÌNH ẢNH [1] Hình Q trình mã hóa giải mã Trang 09 [2] Hình 2: Sơ đồ mã hóa giải mã hệ mật Elgamal Trang 11 [3]Hình 3: Sơ đồ quản lý khóa Trang 17 [4] Hình 4: Giao diện mô .Trang 19 [5] Hình 5: Giao diện lập mã Trang 20 [6] Hình 6: Giao diện giải mã Trang 20 DANH MỤC BẢNG BIỂU BẢNG PHÂN CÔNG CÔNG VIỆC Điểm đánh giá STT Họ tên MSSV Công việc giao nhóm (thang 10) Lê Bá Tuấn Anh 20140088 Tăng Bá Phương Duy 20140747 Nguyễn Hữu Dương 20140873 Phạm Bá Thông 20144316 Nguyễn Quang Tồn 20144543 Tìm tài liệu đọc hiểu lý thuyết Module hóa lý thuyết thành sơ đồ Thiết kế lưu đồ thuật toán dựa Module Cài đặt thuật toán Matlab Tổng hợp, hiệu chỉnh viết báo cáo 9 9 LỜI NĨI ĐẦU Trong thời đại xã hội lồi người, vấn đề bảo mật thông tin quan tâm lớn Từ xa xưa, người sáng tạo hệ mật mã cổ điển để đáp ứng nhu cầu bảo mật thông tin Mật mã học là ngành có lịch sử từ hàng nghìn năm Trong phần lớn thời gian phát triển (ngoại trừ vài thập kỷ trở lại đây), lịch sử mật mã học chính lịch sử phương pháp mật mã học cổ điển - phương pháp mật mã hóa với bút và giấy, đơi có hỗ trợ từ dụng cụ cơ khí đơn giản Vào đầu thế kỷ 20, xuất cấu khí và điện cơ, chẳng hạn như máy Enigma, cung cấp chế phức tạp hiệu cho việc mật mã hóa Sự đời phát triển mạnh mẽ ngành điện tử và máy tính trong thập kỷ gần tạo điều kiện để mật mã học phát triển nhảy vọt lên tầm cao Rất nhiều hệ mật mã đại đời dựa sở đại số Modulo thuật toán logarithm rời rạc… Năm 1975, IBM công bố Hệ mật DES, khởi đầu cho hệ mật mã đại Tiếp theo đời hệ mật mã AES, RSA, DSA, Elgamal… Hệ mật Elgamal đề xuất vào năm 1984 sở toàn Logarit rời rạc, hệ mật mã khó thám mã Dựa hướng dẫn Thầy, thành viên nhóm tiến hành tìm hiểu thuật tốn thám mã giải mã hệ mật mã hóa Elgamal, nhóm tiến hành xây dựng mơ hệ mật Elgamal phần mềm Matlab Báo cáo phần mơ nhóm khơng tránh khỏi thiếu sót, mong góp ý dẫn Thầy! Phần Trình bày tập lớn CHƯƠNG I – LÝ THUYẾT VỀ HỆ MẬT ELGAMAL 1.1 Giới thiệu chung 1.1.1 Mục tiêu 1.1.2 Giới thiệu hệ mật mã - Ta biết tin truyền mạng dễ bị lấy cắp Để đảm bảo việc truyền tin an tồn người ta thường mã hố thơng tin trước truyền Việc mã hoá thường theo quy tắc định gọi hệ thống mật mã Một hệ thống 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 mã K (Key) tập hợp khóa E (Encrytion) tập hợp quy tắc mã hóa D (Decrytion) tập hợp quy 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 - Quá 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) Hình 1: Q trình mã hóa giải mã - Thám mã (phá mã) tìm điểm yếu hệ thống điểm yếu khơng an tồn phương thức mật mã hóa Thám mã thực kẻ công ác ý, nhằm làm hỏng hệ thống; người thiết kế hệ thống (hoặc người khác) với ý định đánh giá độ an toàn hệ thống - Hệ mật mã gồm: Hệ mật mã đối xứng (hay gọi mật mã khóa bí mật): hệ mật dùng chung khố q trình mã hố liệu giải mã liệu Do khố phải giữ bí mật tuyệt đối Một số thuật toán tiếng mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES… Hệ mật mã bất đối xứng (hay cịn gọi mật mã khóa cơng khai): Các hệ mật dùng khoá để mã hoá sau dùng khố khác để giải mã, nghĩa khoá để mã hoá giải mã khác Các khoá tạo nên cặp chuyển đổi ngược khơng có khố suy từ khố Khố dùng để mã hố cơng khai khố dùng để giải mã phải giữ bí mật Do thuật tốn có loại khoá: Khoá để mã hoá gọi khóa cơng khaiPublic Key, khố để giải mã gọi khóa bí mật - Private Key Một số thuật tốn mã hố cơng khai tiếng: Diffle-Hellman, RSA, Rabin, Elgamal… 1.2 Hệ mật mã Elgamal 1.2.1 Giới thiệu chung hệ mật Elgamal - Hệ Elgamal hệ mật mã công khai - Hệ Elgamal dựa tốn logarithm rời rạc Tính an tồn phụ thuộc vào độ phức tạp toán logarithm - Hệ Elgamal biến thể sơ đồ phân phối khóa Diffie-Hellmal, đưa năm 1984 - So với RSA, Hệ Elgamal khơng có nhiều rắc rối vấn đề quyền sử dụng 1.2.2 Mã hóa giải mã hệ mật Elgamal Hình 2: Sơ đồ mã hóa giải mã hệ mật Elgamal - Ban đầu người ta lựa chọn số nguyên tố lớn p số nguyên tố nhỏ p alpha ( phần tử nguyên thủy Z*p) a ( khóa bí mật người nhận) sau tính khóa cơng khai: beta =alpha a mod p Lưu ý: Để tạo khó khăn cho việc phá mã nên chọn p có 150 chữ số - Để mã hóa thơng điệp M (một số ngun tố Zp) thành mã C người gửi chọn số ngẫu nhiên k nhỏ p tính cặp mã: C1 = alphak mod p C2 = (M*betak )mod p Và gửi mã C=( C1,C2) (sau k bị hủy đi) - Để giải mã thơng điệp M ta dùng khóa bí mật a tính theo cơng thức: M = (C2* (C1a) -1) mod p Với: (C1a) -1) mod p = (C1 (p-1-a)) mod p 10 Kết luận Xây dựng hệ mã Elgamal khóa: K=(p, alpha, a, beta) với: - Thành phần khóa cơng khai: K U = (alpha, beta, p) - Thành phần khóa bí mật: KR= (a, p) Ví dụ: Cho Hệ Elgamal có p = 2579; alpha = 2; a = 765; chọn k ngẫu nhiêu 853 Bản rõ M = 1299 Tìm khóa hệ mã trên? Mã hóa: Trước hết ta tính: beta = alphaa mod p = 2765 mod 2579 = 949 Để mã hóa thơng điệp M = 1299 ta tính theo k =853: C1 = alphak mod p = 2853 mod 2579 =435 C2 = (M*betak )mod p = (1299*949853 ) mod 2579 =2396 Vậy mã gửi C = (435, 2396) Giải mã: Với khóa bí mật a= 765: (C1a) -1) mod p = (C1(p-1-a)) mod p = (435(2579-1-765)) mod 2579 = (4351813) mod 2579 = 1980 M = (C2* (C1a) -1) mod p = (2396*1980) mod 2579 = 1299 Kết luận: Xây dựng hệ mã Elgamal khóa: K = (p, alpha, a, beta) = (2579, 2, 765, 949) với: - Thành phần khóa cơng khai: K U = (alpha, beta, p) - Thành phần khóa bí mật: KR = (a, p) = (765, 2579) 11 - Mã hóa M=1299 với C(C1, C2) = (435,2396) 1.2.3 Thám mã hệ mật Elgamal Để thám mã hệ Hệ Elgamal, ta cần phải giải tốn logarit rời rạc Chúng ta có thuật toán để giải toán logarit rời rạc là: - Thuật tốn Shank - Thuật tốn Pohlig_Hellman Trong thuật toán thám mã Shank sử dụng nhiều nên nhóm trình thuật tốn Shank Bài tốn logarith rời rạc: Logarith rời rạc kết nối phép tính logarith 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#0, a x – y=0 x gọi logarith số a y, ký hiệu x = logay Logarith rời rạc tốn khó ( chưa biết thuật tốn hiệu ) Trong toán ngược lũy thừa rời rặc lại khơng khó ( 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: Zp* = { 1,2….,p } với phép nhân modulo p Nếu ta tính lũy thừa bậc k số nhóm rút gọn theo modulo p ta số nhóm q trình gọi lũy thừa rời rạc modulo p Chẳng hạn với p = 17 , lấy a = 3, k = ta có : 34 = 81 = 13 mod 17 Logarith rời rặc phép tính ngược lại : Biết : 3k = 13 (mod 17) tìm k? 12 Thực tương tự thuật toán Shank => k = Tuy nhiên toán tương đối khó Trong trường hợp p lớn ( có 150 chữ số) tốn trở thành bất khả thi => an tồn Thuật tốn Shank: Thuật tốn có tên gọi khác thuật tốn thời gian_bộ nhớ Tư tưởng thuật tốn ta có đủ nhớ sử dụng nhớ để giảm thời gian thực thuật tốn Input : Số nguyên tố p, phần tử nguyên thủy a cua Z*p, số nguyên y Output : Cần tìm a cho beta =alphaa mod p Thuật toán : Gọi m = [(p-1)1/2] (lấy phần nguyên) Bước 1: Tính alphamj mod p với