Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 75 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
75
Dung lượng
567,03 KB
Nội dung
i ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ NGHĨA VẤN ĐỀ BẢO MẬT CỦA PHƯƠNG PHÁP MÃ HÓA SỐ HỌC LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2014 ii ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN THỊ NGHĨA VẤN ĐỀ BẢO MẬT CỦA PHƯƠNG PHÁP MÃ HÓA SỐ HỌC Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Phạm Văn Ất Thái Nguyên - 2014 i LỜI CAM ĐOAN Tôi xin cam đoan luận văn “Vấn đề bảo mật phương pháp mã hóa số học” công trình nghiên cứu tôi, hướng dẫn khoa học PGS.TS Phạm Văn Ất, tham khảo nguồn tài liệu rõ trích dẫn danh mục tài liệu tham khảo Các nội dung công bố kết trình bày luận văn trung thực chưa công bố công trình Học viên thực luận văn Nguyễn Thị Nghĩa ii MỤC LỤC Trang Trang phụ bìa Lời cam đoan i Mục lục ii Danh mục hình vẽ iv Danh mục bảng v MỞ ĐẦU Chương TỔNG QUAN VỀ MÃ HOÁ THÔNG TIN 1.1 Lịch sử phát triển mật mã 1.2 Khái niệm phân loại hệ mật mã 1.2.1 Một số thuật ngữ, khái niệm ứng dụng 1.2.2 Khái niệm hệ mã hoá 1.2.3 Phân loại hệ mã hoá 10 1.3 Các toán an toàn thông tin 21 1.4 Thám mã tính an toàn hệ mật mã 22 1.4.1 Các vấn đề thám mã 22 1.4.2 Tính an toàn hệ mật mã 23 Chương II PHƯƠNG PHÁP MÃ HÓA SỐ HỌC VÀ MỘT SỐ CẢI TIẾN 2.1 Cơ sở toán học phương pháp mã hóa số học 25 2.1.1 Phép chiếu điểm lên đoạn thẳng 25 2.1.2 Phép chiếu đoạn thẳng lên đoạn thẳng 26 2.1.3 Các phép biến đổi ngược 26 2.1.4 Một số tính chất phép chiếu 27 2.1.5 Biểu diễn thuật toán mã hoá số học qua phép chiếu 32 iii 2.2 Tìm hiểu thuật toán nâng cao tốc độ xử lý phương pháp mã hóa số học 44 2.2.1 Cách chọn miền phân bố 44 2.2.2 Thuật toán mã hoá 45 2.2.3 Thuật toán giải mã 47 2.3 Cải tiến để nâng cao độ bảo mật phương pháp mã hóa số học 49 2.3.1 Phương pháp phân tách khoảng 49 2.3.2 Mã hóa số học nhị phân (1 bít) với miền phân bố ngẫu nhiên 52 2.3.3 Thuật toán mã hóa số học với miền phân bố không cố định 53 2.4 Phân tích độ bảo mật thuật toán mã hóa số học 58 2.4.1 Số tổ hợp khóa thuật toán mục 2.2 59 2.4.2 Số tổ hợp khóa thuật toán mục 2.3.3 59 2.4.3 So sánh độ bảo mật hai phương pháp mục 2.2 2.3.3 59 Chương CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Xây dựng phần mềm cho thuật toán mã hóa số học 60 3.1.1 Cấu trúc lớp 60 3.1.2 Bảng lũy thừa bậc (bảng h) 61 3.1.3 Các thuật toán chuyển đổi 62 3.1.4 Thuật toán chia (div, mod) 64 3.1.5 Thuật toán phân rã nhị phân tính lũy thừa mod 65 3.2 Kết thử nghiệm chương trình 65 KẾT LUẬN VÀ KIẾN NGHỊ 67 Kết luận 67 Kiến nghị 67 TÀI LIỆU THAM KHẢO 68 iv DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mã hóa với khóa mã khóa giải giống 11 Hình 1.2 Mã hóa với khóa mã khóa giải khác 13 Hình 2.1 Phép chiếu điểm lên đoạn thẳng 25 Hình 2.2 Phép chiếu đoạn thẳng lên đoạn thẳng 26 Hình 2.3 Phép chiếu [B1,B2] lên [A1,A2] 27 Hình 2.4 Phép chiếu [C1,C2] lên [X1,X2] 27 Hình 2.5 Phép chiếu [Z1,Z2] lên [A1,A2] 29 Hình 2.6 Mô tả tính chứa phép biến đổi ngược 32 Hình 2.7 Hình chiếu P(kt[i]) lên Ti-1 36 Hình 2.8 Code[i] nghịch ảnh code[i-1] theo P[i-1] 38 Hình 2.9 Biểu diễn low_range[i] hi_range[i] [0,D) 46 Hình 2.10 Mô hình trước sau tách khoảng 51 Hình 2.11 Sơ đồ hệ thống hoán vị kết hợp với mã hóa số học tách khoảng 52 v DANH MỤC CÁC BẢNG Bảng 2.1 Bảng tần suất ký tự 33 Bảng 2.2 Bảng phân bố với D=1 dựa theo tần suất 34 Bảng 2.3 Bảng miền phân bố ký tự với rõ “eaii!” 41 Bảng 2.4 Miền phân bố ký tự với rõ ABAAB 53 Bảng 2.5 Bảng tần suất kí tự với rõ ABAABCD 54 Bảng 2.6 Miền phân bố ký tự với rõ ABAABCD 55 Bảng 3.1 Bảng lưu trữ giá trị thập phân 2i 62 Bảng 3.2 Bảng kết thử nghiệm so sánh tốc độ 66 MỞ ĐẦU Mật mã học ngành nghiên cứu kỹ thuật Toán học nhằm cung cấp dịch vụ an toàn thông tin Mặc dù khoa học mật mã đời từ hàng nghìn năm trải qua nhiều kỷ, kết Mật mã học chủ yếu sử dụng lĩnh vực quân sự, trị, ngoại giao Ngày nay, Các ứng dụng mã hóa bảo mật thông tin sử dụng ngày phổ biến lĩnh vực khác giới, từ việc bảo mật nội dung tài liệu điện tử, bảo vệ an toàn giao dịch thương mại điện tử, đấu giá mạng, bầu cử trực tuyến, đến ứng dụng hệ thống thể thông minh, mạng cảm ứng không dây Cho đến thập niên 1970, hầu hết nghiên cứu ứng dụng mật mã học tập trung vào việc bảo mật thông tin Từ thập niên 1970 nay, phạm vi nghiên cứu Mật mã học mở rộng, ứng dụng Mật mã học ngày đa dạng phong phú Tùy vào đặc thù hệ thống bảo vệ thông tin mà ứng dụng có tính với đặc trưng riêng sau: Bảo mật thông tin: hệ thống đảm bảo thông tin bí mật Ví dụ trình truyền nhận thông tin, thông tin bị phát người công, người công hiểu nội dung thông tin đánh cắp Toàn vẹn thông tin: hệ thống bảo đảm tính toàn vẹn thông tin liên lạc giúp phát thông tin bị sửa lỗi Xác thực đối tác liên lạc xác thực nội dung thông tin liên lạc Chống từ chối trách nhiệm: hệ thống đảm bảo đối tác hệ thống từ chối trách nhiệm hành động mà thực Các ứng dụng phổ biến Mật mã học bảo mật nội dung thông tin sử dụng hệ thống mã hóa đối xứng (hay gọi hệ thống mã hóa quy ước) Trong hệ thống này, trình mã hóa giải mã thông điệp sử dụng khóa gọi khóa bí mật (secret key) hay khóa đối xứng (symmetric key) Do đó, vấn đề bảo mật thông tin mã hóa hoàn toàn phụ thuộc vào việc giữ bí mật nội dung khóa sử dụng Trong lĩnh vực bảo mật thông tin, phương pháp mã hóa số học xem phương pháp hay Tuy nhiên, phương pháp chưa ứng dụng phổ biến vào thực tế gặp phải số khó khăn định như: tốc độ thực thuật toán mã hóa giải mã chậm, đồng thời độ bảo mật thuật toán chưa cao Luận văn tập trung sâu vào nghiên cứu sở toán học phương pháp mã hóa số học vấn đề liên quan Luận văn nghiên cứu số cải tiến thuật toán mã hóa giải mã nhằm tăng tốc độ thực Phát triển mô hình mã hóa số học nhị phân với miền phân bố động (không cố định) mô hình bit (256 ký tự) để nâng cao độ bảo mật phương pháp mã hóa Dựa mục tiêu xác định, nội dung luận văn trình bày qua chương sau: - Chương 1: Tổng quan mã hóa thông tin - Chương 2: Phương pháp mã hóa số học số cải tiến - Chương 3: Chương trình thử nghiệm Do thời gian trình độ hạn chế nên luận văn khó tránh khỏi thiếu sót, kính mong nhận đóng góp, bảo thầy giáo, cô giáo bạn đồng nghiệp Cuối cùng, tác giả xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy giáo PGS TS Phạm Văn Ất – Đại học Giao thông Vận tải tận tình hướng dẫn, bảo, giúp đỡ, khích lệ tác giả suốt trình làm luận văn Đồng thời, tác giả xin chân thành cảm ơn thầy cô Phòng Sau Đại học – Trường Đại học Công nghệ thông tin Truyền thông, thầy cô Viện Công nghệ thông tin – Viện Khoa học Công nghệ Việt Nam tạo điều kiện thuận lợi, giúp đỡ tác giả hoàn thành luận văn Thái Nguyên, ngày tháng Học viên thực Nguyễn Thị Nghĩa năm 2014 54 Bảng 2.5 Bảng tần suất kí tự với rõ ABAABCD STT Ký tự Tần suất A B C D Gọi m số ký tự khác ban rõ, ví dụ ta có: m=4 Gọi ch[i] ký tự thứ i chưa hoán vị bảng tần suất (ví dụ ch[1]= ‘A’, ch[2]= ‘B’, ch[3]= ‘C’, ch[4]= ‘D’ Gọi ch1[i] ký tự thứ i hoán vị bảng tần suất (giả sử hoán vị ta được: ch1[1]= ‘B’, ch1[2] = ‘C’, ch1[3] = ‘A’, ch1[4] = ‘D’ Thuật toán mã hóa số học mở rộng cải tiến miền [0, D), ví dụ ta chọn miền D= 25 Gọi Mm giá trị nhỏ cho 2Mm >= M (trong M=4) suy ví dụ Mm=2 Gọi độ dài miền phân bố ký tự miền [0, D) Dd (Dd= 2h), Dd = 25-Mm =25-2, nên Dd=8 hay h=3 Dãy khóa K với K={0, 1} Trong ví dụ độ dài khóa ta kí hiệu là: dodaiK=M độ dài khóa sinh ngẫu nhiên, giả sử dãy khóa K là: 0110 Từ ta có bảng miền phân bố sau: 55 Bảng 2.6 Miền phân bố ký tự với rõ ABAABCD Ký tự Ký tự ban đầu sau hoán (CH) vị (CH1) A STT Miền phân bố B [0, 8) [8, 16) B C [8, 16) [16, 24) C A [16, 24) [0, 8) D D [24, 32) [24, 32) 2.3.3.2 Thuật toán mã hóa * Ý tưởng thuật toán mã hóa Ta coi rõ chuỗi gồm n ký tự Gọi kt[i] ký tự thứ i rõ tính từ trái qua phải (i= 1, 2, …, n) Sk (k=1, 2…, n) chuỗi gồm k ký tự Gọi Ti = [ low_code[i], hi_code[i]) miền mã chuỗi Si P0(ch[i])= [low_range(ch[i]), hi_range(ch[i])) miền phân bố ký tự ch[i] ứng với khóa k=0 P1(ch[i])= [low_range(ch[i]), hi_range(ch[i])) miền phân bố ký tự ch[i] ứng với khóa k=1 Các đoạn Ti xác định sau: Với i=1: Nếu k=0 T1= P0(kt[1]) ngược lại T1=P1(kt[1]) Với i>=2 Ti xác định theo công thực lặp: 56 Nếu ki =0 Ti= Ti-1 Po(kt[i]) Ngược lại Ti= Ti-1 P1(kt[i]) * Thuật toán mã hóa Input: n: số ký tự rõ Dãy ký tự rõ kt[i] (i=1, 2, 3,…, n) m: số ký tự bảng miền phân bố low_range(ch[i]), hi_range(ch[i]) giá trị hai đầu mút ứng với ký tự ch[i] bảng phân bố ( với i= 1, 2,…, n) Dãy khóa K (K[i]= {0, 1}) Output: Code: mã rõ Thuật toán: Xác định f(i): if (K[1]= = 0) CH[f(i)]= kt[1]; else CH1[f(i)]= kt[1]; lc[1]= lr(f(i)); (2.60) hc[1]= hr(f(i)); (2.61) For(i=2; i> (s-h) (2.62) 57 hc[i] = lc[i] +(hc[i-1]-lc[i-1])>> (s-h) (2.63) } Code [ lc[n], hc[n]) 2.3.3.3 Thuật toán giải mã Để trình bày ý tưởng thuật toán ta cần xây dựng hàm g(x, k) Hàm xác định với x [0, D] theo công thức: TH1: k=0 Nếu x P0(ch[i]) g(x, k) = ch[i] TH2: k=1 Nếu x P0(ch[i]) g(x, k)= ch[j] * Ý tưởng thuật toán Từ mã số code mã cần khôi phục ký tự z[i] (i=1, 2,…, n) rõ Với i =1: Nếu k1= Code[1]= code Z[1]= g(code[1], k1) Ngược lại Code[1]= code Z[1]= g(code[1], k1) Với i>=2: Nếu ki=0 58 Code[i]= P0(kt[i-1]) code[i-1] Ngược lại Code[i]= P1(kt[i-1]) code[i-1] Z[i]= g(code[i], ki) * Thuật toán giải mã Input: Code: mã rõ n: số ký tự rõ Bảng phân bố ký tự khác rõ Dãy khóa K, với k1, k2…, km K={0, 1} dodaiK: Độ dài khóa K Output: z[i] với i= 1, 2, 3…, n Thuật toán: code[1]=code; z[1] = g(code[1],K[1]); for(i= 2;i< =n ;++i) { k=K[i-1]; code[i]= code[i-1]=q) số nhị phân kiểu NgLon Output: div=p DIV q, mod=p MOD q Thuật toán: Ký hiệu: + p[t] – số nguyên nhị phân tạo t bit cao p + u=sizeof(p) //độ dài theo bit + v=sizeof(q) //độ dài theo bit Xác định S (trích phần đầu); + S=p[v] p[v]>=q + S= p[v+1] trái lại 65 k=sizeof(S) Đặt bit thứ u-k div=1 Thay p[k] p[k] – S Nếu p>=q quay lại bước 1, trái lại kết thúc thuật toán Kết quả: div xác định mod=p Độ phức tạp thuật toán trường hợp xấu sizeof(p) – sizeof(q), độ phức tạp 3.1.5 Thuật toán phân rã nhị phân tính lũy thừa mod Phương pháp cài đặt theo đệ quy tổ chức hai vòng lặp để phân rã số mũ tính biểu thức Khi cài đặt nên sử dụng phương pháp lặp để giảm nhớ tăng tốc độ tính toán Dạng đệ quy thuật toán trình bày sau: Input: s, a, m, n Output: q = s*am mod n Thuật toán: Nếu: m=1 q=s*a mod n Nếu: m>1, thực bước 2.1 Nếu m chẵn: m1 =m/2 q= (s*am1 mod n)/( am1 mod n) mod n 2.2 Nếu m lẻ: m1 = (m-1)/2 q= (s*am1 mod n)/( a*am1 mod n) mod n 3.2 Kết thử nghiệm chương trình Chương trình mã hóa giải mã viết cho thuật toán mã hóa số học cải tiến miền [0, D) với việc lựa chọn miền D= 2200, dãy khóa K, miền phân bố ký tự xác định dựa vào khóa K Để cài đặt thuật 66 toán mã hóa giải mã luận văn sử dụng kiểu nguyên lớn size byte (size [...]... II PHƯƠNG PHÁP MÃ HÓA SỐ HỌC VÀ MỘT SỐ CẢI TIẾN 2.1 Cơ sở toán học của phương pháp mã hóa số học Cơ sở toán học của phương pháp mã hóa số học có thể tiếp cận theo nhiều hướng khác nhau, nhưng để đơn giản, luận văn trình bày cơ sở toán học của phương pháp mã hóa số học như: phép chiếu thu nhỏ đồng dạng, phép biến đổi ngược, một số tính chất của phép chiếu, đây chính là cơ sở để trình bày thuật toán mã. .. mã không nhất thiết là bí mật, do đó thám mã thường được tập trung vào việc tìm khoá mật mã, và gọi công việc này là phá khoá Trải qua mấy nghìn năm lịch sử phát triển, mật mã học được chia thành hai giai đoạn phát triển chính đó là: Mật mã trong thời cổ xưa và mật mã học hiện đại Mật mã thời cổ xưa: Tồn tại ba phương pháp bảo vệ thông tin: Phương pháp thứ nhất - phương pháp sức mạnh thuần tuý: Bảo. .. thám mã chiếm được (tạm thời) máy lập mã Bài toán thám mã khi có bản mã được chọn: người thám mã có thể chọn một bản mật mã Y, và biết bản rõ tương ứng X Điều này có thể xảy ra khi người thám mã chiếm được tạm thời máy giải mã 1.4.2 Tính an toàn của một hệ mật mã Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó khăn của bài toán thám mã khi sử dụng hệ mật mã đó Người ta đã đề xuất một số cách...4 Chương 1 TỔNG QUAN VỀ MÃ HOÁ THÔNG TIN Trong chương này luận văn giới thiệu chung về mã hoá thông tin, lịch sử của mật mã, các hệ mã đặc trưng, các bài toán an toàn thông tin và bài toán thám mã Trình bày một số khái niệm cơ bản nhất của mã hoá số học như: bản rõ, bản mã, mã hoá công khai, hệ mã hoá thám mã, mã hoá theo khối, mã theo dòng, mã khoá đối xứng… Các nội dung này được tổng... viên đặc biệt…) Phương pháp thứ hai - phương pháp steganography: mục tiêu của phương pháp này che giấu sự hiện hữu của thông tin truyền Để thực hiện có thể sử dụng các kỹ thuật như mực viết bí mật, chỗ giấu bí mật Phương pháp thứ ba - phương pháp crytography (mật mã) : thực hiện việc biến đổi nội dung của bản tin cần truyền thành một tập hợp hỗn độn nào đó của các dấu hiệu (các ký tự của bảng chữ cái)... pháp ngụy trang văn bản Nghệ thuật tạo ra và sử dụng các hệ mã là thuật mã hoá hay mật mã học (Cryptography) Phân tích mã (Cryptanalysic) hay thám mã, là một nghệ thuật phá các hệ mã (nhìn xuyên qua các phương pháp ngụy trang) Công nghệ mã (Cryptology) chính là việc nghiên cứu cả hai phương pháp hệ mã và phân tích mã Mã hoá (Encrypt) là phương pháp để chuyển hoá thông tin (văn bản, hình ảnh ) từ định... bất kỳ người nào cũng có thể mã hoá và giải mã thông báo trong hệ thống mã hoá Sự mã hoá và giải mã của thuật toán đối xứng biểu thị bởi: ek P C và d k C P 11 Bản rõ Mã hoá Bản mã Giải mã Bản rõ Khoá Hình 1.1 Mã hoá với khoá mã và khoá giải giống nhau Trong hình vẽ trên thì: Khoá mã hoá có thể trùng với khoá giải mã, hoặc khóa mã hóa có thể tính toán từ khóa giải mã hoặc ngược lại * Ứng dụng... Hill do Lester S.Hill đưa ra năm 1929 Giả sử m là một số nguyên dương, đặt P = C = (Z26)m Ý tưởng: lấy m tổ hợp tuyến tính của m ký tự trong một phần tử của bản rõ để tạo ra m ký tự ở một phần tử của bản mã - Phương pháp dịch chuyển: Phương pháp mã hóa dịch chuyển là một trong những phương pháp lâu đời nhất được sử dụng để mã hóa Thông điệp được mã hóa bằng cách dịch chuyển xoay vòng từng ký tự đi k... đến sự cần thiết phải sử dụng rộng rãi hơn các phương pháp mật mã để bảo vệ thông tin Trong thời cổ xưa thì các phương pháp chỉ được sử dụng nhằm mục đích giữ bí mật thông tin Ngày nay các phương pháp mật mã được sử dụng rộng rãi không chỉ nhằm mục đích bảo vệ thông tin chống lại các truy cập không cho phép (bảo vệ tính bí mật) , mà chúng còn được sử dụng để bảo vệ trong nhiều hình thức công nghệ thông... các hệ thống mật mã hiện đại, đặc biệt là các hệ thống mật mã khoá công khai, ta sẽ trình bày riêng cho từng hệ mật mã được trình bày trong các chương về sau Ở mục 1.3 ta đã giới thiệu một số bài toán về an toàn thông tin nói chung, các bài toán đó đều có hạt nhân là tính an toàn của một hệ mật mã nào đó, cho nên nghiên cứu tính an toàn của các hệ mật mã cũng góp phần giải quyết các vấn đề an toàn thông