Nghiên Cứu Xây Dựng Chương Trình Thực Thi Hệ Mã Có Xác Thực Dựa Trên Đường Cong Elliptic (Ecies) (Luận Văn Thạc Sĩ)

71 42 1
Nghiên Cứu Xây Dựng Chương Trình Thực Thi Hệ Mã Có Xác Thực Dựa Trên Đường Cong Elliptic (Ecies)  (Luận Văn Thạc Sĩ)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Nghiên Cứu Xây Dựng Chương Trình Thực Thi Hệ Mã Có Xác Thực Dựa Trên Đường Cong Elliptic (Ecies) (Luận Văn Thạc Sĩ) LỜI CAM ĐOAN ii MỤC LỤC iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT v DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU 1 CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC 1.1. Khái quát về mật mã học 3 1.2. Các lược đồ dựa trên bài toán logarit rời rạc 8 1.3. Cơ sở toán học hệ mật đường cong Elliptic 12 1.3.1. Các định nghĩa 12 1.3.2. Các phép toán trên đường cong Elliptic 15 1.3.3. Lược đồ mật mã dựa trên đường cong elliptic 18 1.3.4. Luật nhóm trên các điểm đường cong elliptic 22 1.4. Kết luận chương 1 26 CHƯƠNG II NGHIÊN CỨU TÌM HIỂU THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 2.1. Giới thiệu chung về ECIES 27 2.2. Các thuật toán sử dụng cho ECIES 31 2.3. So sánh một số phiên bản ECIES 34 2.4. Một số phân tích về ECIES 37 2.5. Kết luận chương 2 38 CHƯƠNG III XÂY DỰNG MÔ ĐUN CHƯƠNG TRÌNH THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 3.1. Các khai báo, định nghĩa 40 3.2. Xây dựng các hàm phụ trợ 42 3.2.1. Hàm ecurve_init 42 3.2.2. Hàm epoint_set 43 3.2.3. Hàm epoint_x 44 3.2.4. Hàm epoint_get 45 3.2.5. Hàm epoint_copy 45 3.2.6. Hàm epoint_comp 46 3.2.7. Hàm ecurve_add 47 3.2.9. Hàm epoint_negate 49 3.2.10. Hàm ecurve_sub 49 3.2.11. Hàm ecurve_double_add 50 3.2.12. Thủ tục ecurve_mult 51 3.3. Xây dựng các module chương trình mã hóa và giải mã ECIES trên trường GF(p) " 52 3.3.1. Module mã hóa ECIES (Thực hiện Thuật toán 11) 52 3.3.2. Module giải mã ECIES (Thực hiện Thuật toán 12) 57 3.4. Thử nghiệm, đánh giá kết quả thực thi chương trình Chữ ký số RSA ra đời đã đáp ứng được nhu cầu sử dụng chữ ký số để bảo vệ thông tin truyền trên môi trường mạng. Các nghiên cứu đã chỉ ra rằng để đảm bảo an toàn lược đồ chữ ký số RSA yêu cầu kích thước khóa phải rất lớn và không được nhỏ hơn 1024-bit (hiện nay để đảm bảo an toàn cho các thông tin trên mạng, một số tổ chức an ninh thế giới đã khuyến nghị sử dụng chữ ký RSA có độ dài khóa 2048-bit). Việc sử dụng lược đồ chữ ký số RSA có khóa lớn như vậy gây khó khăn cho việc sinh khóa cho lược đồ, thời gian ký và xác minh chữ ký lâu hơn ảnh hưởng đến một số lĩnh vực. Trong những năm gần đây, mật mã elliptic nói chung và chữ ký số trên đường cong elliptic nói riêng được quan tâm nghiên cứu và ứng dụng khá rộng rãi trên nhiều lĩnh vực dựa vào ưu thế độ dài khóa nhỏ (cùng mức độ an toàn khóa của ECC ngắn hơn rất nhiều so với RSA, ví dụ ECC 160-bit có khóa mức bảo mật tương đương RSA 1024-bit. ECC 224-bit có khóa mức bảo mật tương đương RSA 2048-bit khóa) cài đặt ECC sử dụng tài nguyên hệ thống ít hơn, năng lượng tiêu thụ nhỏ hơn. Từ những thực tế trên tôi lựa chọn đề tài “nghiên cứu xây dựng chương trình thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)” làm đồ án của mình với mục tiêu tìm hiểu về mật mã đường cong elliptic trên trường hữu hạn F p, tập trung phân tích, đánh giá mức độ an toàn ECIES, xây dựng chương trình các thuật toán thực thi hệ mã có xác thực (ECIES). Nội dung của đồ án được chia thành 3 chương: Chương 1: Nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic. Chương này trình bày một số nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic: một số khái niệm cơ bản về mật mã hiện đại, mật mã dựa trên đường cong elliptic. Chương 2: Nghiên cứu tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES) Chương này trình bày về những nghiên cứu, tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES): thuật toán mã hóa và giải mã, một số phân tích về tính an toàn. Chương 3: Xây dựng chương trình các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES) Chương này trình bày về xây dựng các mô đun chương trình thực hiện các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES).

1 Viện Công Nghệ Thông Tin Và Truyền Thông ĐẠI HỌC BÁCH KHOA HÀ NỘI Luận Văn Thạc Sĩ NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH THỰC THI HỆ MÃ CĨ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) Nguyen Thanh Long Ha Noi, 2023 MỤC LỤC LỜI CAM ĐOAN ii MỤC LỤC iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT v DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC 1.1 Khái quát mật mã học 1.2 Các lược đồ dựa toán logarit rời rạc 1.3 Cơ sở toán học hệ mật đường cong Elliptic 12 1.3.1 Các định nghĩa 12 1.3.2 Các phép toán đường cong Elliptic 15 1.3.3 Lược đồ mật mã dựa đường cong elliptic 18 1.3.4 Luật nhóm điểm đường cong elliptic 22 1.4 Kết luận chương 26 CHƯƠNG II NGHIÊN CỨU TÌM HIỂU THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 2.1 Giới thiệu chung ECIES 27 2.2 Các thuật toán sử dụng cho ECIES 31 2.3 So sánh số phiên ECIES 34 2.4 Một số phân tích ECIES 37 2.5 Kết luận chương 38 CHƯƠNG III XÂY DỰNG MƠ ĐUN CHƯƠNG TRÌNH THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 3.1 Các khai báo, định nghĩa 40 3.2 Xây dựng hàm phụ trợ 42 3.2.1 Hàm ecurve_init 42 3.2.2 Hàm epoint_set 43 3.2.3 Hàm epoint_x 44 3.2.4 Hàm epoint_get 45 3.2.5 Hàm epoint_copy 45 3.2.6 Hàm epoint_comp 46 3.2.7 Hàm ecurve_add 47 3.2.9 Hàm epoint_negate 49 3.2.10 Hàm ecurve_sub 49 3.2.11 Hàm ecurve_double_add 50 3.2.12 Thủ tục ecurve_mult 51 3.3 Xây dựng module chương trình mã hóa giải mã ECIES trường GF(p) " 52 3.3.1 Module mã hóa ECIES (Thực Thuật tốn 11) 52 3.3.2 Module giải mã ECIES (Thực Thuật toán 12) 57 3.4 Thử nghiệm, đánh giá kết thực thi chương trình 62 KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 PHỤ LỤC Viết tắt CÁC KÝ HIỆU, CHỮ VIẾT TẮT Tiếng anh Tiếng việt AES Advanced Encryption Standard Chuẩn mã hóa cao cấp DEC Decryption Giải mã DES Data Encyption Standard Chuẩn mã hóa liệu DL Discrete logarithm Logarit rời rạc DLP Discrete Logarithm Problem Bài toán logarithm rời rạc DSA Digital Signature Algoritm Thuật toán chữ ký số DSS Digital Signature Standard Chuẩn chữ ký số ECC Elliptic curve Cryptography Mật mã đường cong elliptic Elliptic Curve Discrete Logarithm Bài toán logarithm rời rạc Problem đường cong elliptic Elliptic Curve Integrated Lược đồ mã hóa tích hợp đường ECIES Encryption Scheme cong elliptic ENC Encryption Mã hóa ECDLP Institude Of Electronics Engineers Tổ chức đánh giá cộng đồng IEEE khoa học kỹ thuật Thuật toán mã hóa khóa cơng RSA Ron Rivest, Adi Shamir, Adleman khai RSA MỞ ĐẦU Sự phát triển mạnh mẽ công nghệ thông tin viễn thông tạo điều kiện thuận lợi cho việc truyền tải thông tin loại hình khác Tuy nhiên việc truyền tải thơng tin mơi truờng mạng nói chung tiềm ẩn số vấn đề nhu: mát liệu, giả mạo liệu Trong số trường hợp người sử dụng phát gây hậu xấu cho cá nhân tổ chức Lược đồ chữ ký số đời giải pháp hiệu để đảm bảo tính xác thực tính tồn vẹn thông tin truyền mạng Chữ ký số RSA đời đáp ứng nhu cầu sử dụng chữ ký số để bảo vệ thông tin truyền môi trường mạng Các nghiên cứu để đảm bảo an toàn lược đồ chữ ký số RSA u cầu kích thước khóa phải lớn không nhỏ 1024-bit (hiện để đảm bảo an tồn cho thơng tin mạng, số tổ chức an ninh giới khuyến nghị sử dụng chữ ký RSA có độ dài khóa 2048-bit) Việc sử dụng lược đồ chữ ký số RSA có khóa lớn gây khó khăn cho việc sinh khóa cho lược đồ, thời gian ký xác minh chữ ký lâu ảnh hưởng đến số lĩnh vực Trong năm gần đây, mật mã elliptic nói chung chữ ký số đường cong elliptic nói riêng quan tâm nghiên cứu ứng dụng rộng rãi nhiều lĩnh vực dựa vào ưu độ dài khóa nhỏ (cùng mức độ an tồn khóa ECC ngắn nhiều so với RSA, ví dụ ECC 160-bit có khóa mức bảo mật tương đương RSA 1024-bit ECC 224-bit có khóa mức bảo mật tương đương RSA 2048-bit khóa) cài đặt ECC sử dụng tài nguyên hệ thống hơn, lượng tiêu thụ nhỏ Từ thực tế lựa chọn đề tài “nghiên cứu xây dựng chương trình thực thi hệ mã có xác thực dựa đường cong elliptic (ECIES)” làm đồ án với mục tiêu tìm hiểu mật mã đường cong elliptic trường hữu hạn F p, tập trung phân tích, đánh giá mức độ an tồn ECIES, xây dựng chương trình thuật tốn thực thi hệ mã có xác thực (ECIES) Nội dung đồ án chia thành chương: Chương 1: Nghiên cứu tổng quan mật mã dựa đường cong elliptic Chương trình bày số nghiên cứu tổng quan mật mã dựa đường cong elliptic: số khái niệm mật mã đại, mật mã dựa đường cong elliptic Chương 2: Nghiên cứu tìm hiểu thuật tốn thực thi hệ mã có xác thực dựa đường cong elliptic (ECIES) Chương trình bày nghiên cứu, tìm hiểu thuật tốn thực thi hệ mã có xác thực dựa đường cong elliptic (ECIES): thuật toán mã hóa giải mã, số phân tích tính an tồn Chương 3: Xây dựng chương trình thuật tốn thực thi hệ mã có xác thực dựa đường cong elliptic (ECIES) Chương trình bày xây dựng mơ đun chương trình thực thuật tốn thực thi hệ mã có xác thực dựa đường cong elliptic (ECIES) CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DựA TRÊN ĐƯỜNG CONG ELLIPTIC 1.1 Khái quát mật mã học Mật mã học nghiên cứu kỹ thuật toán học giúp cho việc trao đổi thơng tin an tồn truớc kẻ thù - Mơ hình truyền thơng Hình 1.1, A (Alice) B (Bob) trao đổi thông tin qua kênh truyền tin khơng an tồn Giả định tất thông tin liên lạc diễn có mặt kẻ thù E (Eve), E có mục tiêu phá vỡ dịch vụ an toàn đuợc cung cấp cho A B Hình 1.1 Mơ hình truyền thơng ❖ Mục tiêu an ninh Bảo mật: giữ bí mật liệu, trừ người có thẩm quyền để xem thơng điệp (các thư gửi từ A tới B đọc E) Tính tồn vẹn liệu: bảo đảm liệu không bị thay đổi bên thứ (B phát liệu gửi A sửa đổi E) Xác thực nguồn gốc liệu: xác thực nguồn gốc liệu (B xác minh liệu cho gửi A thực có nguồn gốc với A) Xác thực định danh: xác thực danh tính thực thể (B phải xác thực danh tính thực thể giao tiếp khác) Chống chối bỏ: ngăn chặn thực thể từ chối cam kết hành động trước (khi B nhận thơng điệp có chủ ý từ A, B khơng xác thực thông điệp bắt nguồn từ A, B xác thực bên thứ ba trung lập điều này; A khơng thể phủ nhận gửi tin nhắn đến B) ❖ Mơ hình đối kháng Trong mơ hình mối đe dọa thực tế mà A B phải đối mặt Ngồi việc đọc tất liệu truyền qua kênh, E sửa đổi liệu truyền chèn liệu Hơn nữa, E có khả tính tốn đáng kể theo ý Cuối cùng, mơ tả đầy đủ giao thức truyền thông chế mật mã triển khai (trừ thông tin khố bí mật) biết E Thách thức nhà mật mã thiết kế chế để đảm bảo truyền thông đối mặt với kẻ thù ❖ Mật mã khóa đối xứng Các hệ thống mật mã chia thành hai loại Trong mơ hình khóa đối xứng, mơ tả Hình 1.2 (a), đầu tiên, thực thể truyền thơng thỏa thuận ngun liệu bí mật xác thực Sau đó, sử dụng lược đồ mã hóa khóa đối xứng Chuẩn hóa liệu (DES), RC4 Chuẩn mã liệu tiên tiến (Advanced Encryption Standard - AES) để bảo mật Hơn nữa, sử dụng thuật tốn mã xác thực thơng báo (MAC) HMAC để kiểm tra tính toàn vẹn liệu xác thực nguồn gốc liệu Ví dụ, muốn giữ bí mật khố bí mật chia sẻ A B k, sau A mã hóa rõ m sử dụng hàm mã hoá ENC khoá k truyền mã kết c = ENck(m) sang B Khi nhận c, B dùng hàm DEC khóa k để phục hồi m = DEck (c) Nếu muốn tính tồn vẹn liệu xác thực nguồn gốc liệu, A B đồng ý với khố bí mật k, sau A tính tốn thẻ xác thực t = MA ck (m) rõ m sử dụng thuật tốn MAC khóa k A sau gửi m t đến B Khi nhận m t, B sử dụng thuật toán MAC khố k để tính lại t' = MAc k(m) m chấp nhận thơng điệp có nguồn gốc từ A t = t' * Phân phối quản lý khóa Ưu điểm mật mã khóa đối xứng hiệu cao; nhiên, có hạn chế đáng kể hệ thống Một nhược điểm vấn đề phân phối - gọi vấn đề phân phối khóa - yêu cầu kênh vừa bí mật vừa chứng thực cho việc phân phối khoá Trong số ứng dụng, phân phối thực cách thuận tiện cách sử dụng kênh an toàn vật lý chuyển phát nhanh đáng tin cậy Một cách khác sử dụng dịch vụ bên thứ ba tin cậy trực tuyến thiết lập khóa bí mật với tất thực 52 3.3 Xây dựng module chương trình mã hóa giải mã ECIES trường GF(p) Trong mục đồ án trình bày phần prototype thuyết minh chi tiết module chương trình thực mã hóa giải mã ECIES trường GF(p) với tham số mục 3.1 3.3.1 Module mã hóa ECIES (Thực Thuật toán 11) Hàm ECIESEncrypt() Đầu vào: common.ecs - tệp lưu tham số miền đường cong elliptic trường nguyên tố ; public.ecs - tệp lưu khóa cơng khai; Đầu ra: encrypt.ecs - mã Chức năng: Thực mã hóa theo lược đồ ECIES Thuyết minh module chương trình: int ECIESEncrypt() { _ _ FILE *fp,*fp1; int bits,ep; epoint *g,*g1,*g2,*public,*R,*Z; char ifname[50],ofname[50]; big a,b,p,q,x,y,v,u1,u2,r,s,hash,seed,k,xz,xr; miracl *mip; int base[len], blen, window; int kjlen, kj[len], sj[len]; epoint *table[len]; int l,bou; time_t t; long start; char key1[32],key2[32]; int i,j,nk; aes ctx; char block[16]; char iv[16]; for (i=0;i

Ngày đăng: 24/06/2023, 15:33

Tài liệu cùng người dùng

Tài liệu liên quan