Một vài ứng dụng của số học trong mã hóa và giải mã thông tin

48 1.1K 7
Một vài ứng dụng của số học trong mã hóa và giải mã thông tin

Đ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

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH NGUYỄN VĂN THÀ MỘT VÀI ỨNG DỤNG CỦA SỐ HỌC TRONG MÃ HÓA VÀ GIẢI MÃ THÔNG TIN LUẬN VĂN THẠC SĨ TOÁN HỌC NGHỆ AN - 2013 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH NGUYỄN VĂN THÀ MỘT VÀI ỨNG DỤNG CỦA SỐ HỌC TRONG MÃ HÓA VÀ GIẢI MÃ THÔNG TIN CHUYÊN NGÀNH: ĐẠI SỐ VÀ LÝ THUYẾT SỐ Mã số: 60 46 05 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học PGS.TS NGUYỄN THÀNH QUANG NGHỆ AN - 2013 MỤC LỤC MỞ ĐẦU CHƯƠNG TRANG MỘT SỐ KIẾN THỨC CƠ SỞ 1.1 1.2 1.3 Tổng quan mật mã Mã hoá Những khái niệm kết Số học có nhiều ứng dụng mã 16 hoá giải mã thông tin CHƯƠNG ỨNG DỤNG CỦA SỐ HỌC 25 TRONG MỘT SỐ HỆ THỐNG MẬT MÃ 2.1 2.2 2.3 Mật mã Caesar Thuật toán mã hoá RSA Mật mã Vigenère KẾT LUẬN TÀI LIỆU THAM KHẢO 25 28 41 43 44 MỞ ĐẦU Từ lâu loài người biết thao tác Số học sử dụng giao dịch thường nhật liên tục nhiều kỷ Nhưng đến thời phát triển Toán học, Số học phải nhường chỗ cho phép tính phức tạp đạo hàm, vi phân, tích phân toán khác Cho đến năm 70 kỷ XX, Số học xem ngành lý thuyết túy toán học Thậm chí, có nhà toán học cho vẻ đẹp Số học có nhờ xa rời thực tiễn [6] Nhưng nhờ máy tính, tinh hoa văn minh nhân loại vào kỷ XX, làm tái sinh môn học cổ xưa Máy tính phát huy vẻ đẹp truyền thống Số học mà triển khai ứng dụng có cho kỷ XXI Hiện nay, công nghệ thông tin, công nghệ Internet, công nghệ E-mail, E- business phát triển vũ bão.Việt Nam đã, bước áp dụng công nghệ để “tin học hóa xã hội” tức đưa tin học vào lĩnh vực xã hội để cải thiện hoạt động thủ công trước Tin học hóa giải phóng sức lao động người cách sáng chế Như trao đổi thông tin qua mạng Thông tin gửi thông tin quân sự, tài chính, kinh doanh đơn giản thông tin mang tính riêng tư… Điều dẫn tới vấn đề xảy Internet môi trường không an toàn, đầy rủi ro nguy hiểm, đảm bảo thông tin truyền không bị lộ đường truyền Vì vậy, vấn đề an toàn sở liệu, thông tin cá nhân vấn đề sống tổ chức bảo mật thông tin móng để phát triển Do đó, biện pháp đưa nhằm giúp tự bảo vệ thông tin gửi cần phải mã hóa thông tin Ngành khoa học mật mã không nghiên cứu bảo mật sơ đồ mã hóa, mà mở rộng đến ứng dụng thực tiễn chữ ký điện tử, sơ đồ định danh đưa đến khái niệm quan trọng ngành khoa học máy tính rộng Toán học khái niệm chứng minh tương tác (interactives proofs), chứng minh không để lộ tri thức (zero-knowledge proofs) gần chứng minh kiểm tra cách xác suất cách kiểm thử số bít thông tin chứng minh (probabilistic checkable proofs) Những công cụ ngày mạnh, Số học dần thâm nhập vào mật mã góp phần đưa mật mã trở thành ngành khoa học Năm 1978, ba nhà khoa học MIT (Massachusetts Institute of Technology) Rivest, Shamir Adleman đề xuất hệ mã, mà gọi RSA Tính bảo mật độ an toàn hệ mã dựa độ phức tạp toán số học phân tích số nguyên đủ lớn thừa số nguyên tố Liên tiếp sau đó, toán lý thuyết số toán lôgarit rời rạc tìm thặng dư cấp sử dụng để xây dựng hệ mã Elgamal Rabin Ngoài ra, Định lý Euler, Định lý Fermat bé, Định lý số dư Trung Quốc Định lý Carmichael có nhiều ứng dụng toán số nguyên lớn áp dụng vào Lý thuyết mật mã Nhờ đó, lý thuyết Số học, đặc biệt Số học thuật toán, tìm thấy ứng dụng trực tiếp vào thực tiễn Ngược lại, với sử dụng rộng rãi hệ mã RSA, Elgamal thực tế, việc nghiên cứu lời giải hiệu cho toán phân tích thành thừa số nguyên tố lôgarit rời rạc trường hữu hạn trở nên quan tâm Lý thuyết số Như vậy, Số học hữu hoạt động thực tiễn: Kỹ thuật máy tính, mật mã, trao đổi trực tuyến ngân hàng, thẻ ATM, truyền phát tín hiệu vệ tinh, chứng khoán Mục đích luận văn tìm hiểu ứng dụng Số học vào số lĩnh vực mã hóa giải mã thông tin, nhằm khẳng định tính đắn thuật toán mật mã đảm bảo toán học chúng Ngoài phần mở đầu, kết luận tài liệu tham khảo, luận văn gồm có chương Chương trình bày kiến thức sở tổng quan Mật mã học Số học (Phân tích nguyên tố, Phép tính đồng dư, Định lý số dư Trung Quốc, Định lý Euler, Định lý Fermat bé, Số giả nguyên tố, Định lý Carmichael, Hàm số Euler, Hàm số Carmichael, Phân tích Fermat) Chương trình bày số hệ mật mã (mã Cesaz, mã RSA) có liên quan trực tiếp đến ứng dụng công cụ phép tính đồng dư kết số học khác mã hoá giải mã thông tin Luận văn hoàn thành hướng dẫn tận tình chu đáo PGS.TS Nguyễn Thành Quang Tác giả xin bày tỏ lòng kính trọng biết ơn sâu sắc tới thầy giáo hướng dẫn khoa học, người dành nhiều thời gian công sức giúp đỡ cho để hoàn thành luận văn Tác giả xin bày tỏ lòng biết ơn gửi lời cảm ơn đến thầy cô giáo thuộc chuyên ngành Đại số Lý thuyết số, Khoa Toán, Phòng Đào tạo Sau Đại học – Trường Đại học Vinh, người tận tình giảng dạy tạo điều kiện thuận lợi thành công khóa học Xin trân trọng cảm ơn Trường Đại học Sài Gòn tạo điều kiện tổ chức thuận lợi cho hoàn thành nhiệm vụ học tập Xin chân thành cảm ơn bạn bè, đồng nghiệp, gia đình động viên giúp đỡ học tập nghiên cứu Xin gửi lời cảm ơn đến Ban giám hiệu Trường Trung học Phổ thông Phùng Hưng - Sở Giáo dục Đào tạo TP Hồ Chí Minh, thầy cô giáo đồng nghiệp động viên tạo điều kiện thuận lợi để hoàn thành nhiệm vụ học tập Mặc dù có nhiều cố gắng, song luận văn nhiều thiếu sót, tác giả mong nhận đóng góp thầy cô giáo đồng nghiệp TÁC GIẢ CHƯƠNG MỘT SỐ KIẾN THỨC CƠ SỞ 1.1 TỔNG QUAN VỀ MẬT MÃ HỌC 1.1.1 Mật mã học Mật mã học (cryptography) lĩnh vực liên quan với kỹ thuật ngôn ngữ toán học để đảm bảo an toàn thông tin, cụ thể thông tin liên lạc Về phương diện lịch sử, mật mã học gắn liền với trình mã hóa; điều có nghĩa gắn với cách thức để chuyển đổi thông tin từ dạng sang dạng khác từ dạng thông thường nhận thức thành dạng nhận thức được, làm cho thông tin trở thành dạng đọc kiến thức bí mật Quá trình mã hóa sử dụng chủ yếu để đảm bảo tính bí mật thông tin quan trọng, chẳng hạn công tác tình báo, quân hay ngoại giao bí mật kinh tế, thương mại Trong năm gần đây, lĩnh vực hoạt động mật mã hóa mở rộng: mật mã hóa đại cung cấp chế cho nhiều hoạt động việc giữ bí mật có loạt ứng dụng như: chứng thực khóa công khai, chữ ký số, bầu cử điện tử hay toán điện tử Ngoài ra, người nhu cầu thiết yếu đặc biệt tính bí mật sử dụng công nghệ mật mã hóa, thông thường thiết kế tạo lập sẵn sở hạ tầng công nghệ tính toán liên lạc viễn thông Mật mã học lĩnh vực liên ngành, tạo từ số lĩnh vực khác Các dạng cổ mật mã hóa chủ yếu liên quan với kiểu mẫu ngôn ngữ Gần tầm quan trọng thay đổi mật mã hóa sử dụng gắn liền nhiều với toán học, cụ thể toán học rời rạc, bao gồm vấn đề liên quan đến lý thuyết số, lý thuyết thông tin, độ phức tạp tính toán, thống kê tổ hợp Mật mã hóa công cụ sử dụng an ninh máy tính mạng Việc nghiên cứu tìm phương thức để phá vỡ việc sử dụng mật mã gọi phân tích mật mã, hay phá mã Mật mã hóa phân tích mật mã nhóm lại tên gọi chung mật mã học, bao gồm toàn chủ đề liên quan đến mật mã Trong thực tế, thuật ngữ mật mã hóa thông thường sử dụng để nói đến ngành cách tổng thể Mật mã hóa trình chuyển đổi thông tin thông thường (văn thường hay văn rõ hay văn trơn) thành dạng không đọc trực tiếp được, văn mã hóa Giải mật mã hay giải mã trình ngược lại, phục hồi lại văn thường từ văn mã Mật mã thuật toán để mật mã hóa giải mật mã Hoạt động xác mật mã thông thường kiểm soát khóa — đoạn thông tin bí mật cho phép tùy biến cách thức tạo văn mã Các giao thức mật mã rõ chi tiết việc mật mã (và tảng mật mã hóa khác) sử dụng để thu nhiệm vụ cụ thể Một giao thức, thuật toán, cách thức quản lý khóa hành động quy định trước người sử dụng phối hợp chặt chẽ tạo thành hệ thống mật mã Trong cách nói thông thường, "mã" bí mật thông thường sử dụng đồng nghĩa với "mật mã" Trong mật mã học, thuật ngữ có ý nghĩa kỹ thuật đặc biệt: Các mã phương pháp tham gia vào việc thay đơn vị văn lớn hơn, thông thường từ hay câu văn (ví dụ, " qua tao" thay cho "tan cong luc rang dong") Ngược lại, mật mã hóa cổ điển thông thường thay xếp lại chữ riêng biệt (hoặc nhóm nhỏ chữ cái) Ví dụ, "tan cong luc rang dong" trở thành "ubo dpoh mvd sboh epoh" cách thay Hình 1: Sơ đồ khái quát hệ thống mật mã 1.1.2 Lịch sử phát triển mật mã Mật mã học 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 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 giấy, có hỗ trợ từ dụng cụ khí đơn giản Vào đầu kỷ XX, xuất cấu khí điện cơ, chẳng hạn 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ử máy tính 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 Sự phát triển mật mã học luôn kèm với phát triển kỹ thuật phá mã (hay thám mã) Các phát ứng dụng kỹ thuật phá mã số trường hợp có ảnh hưởng đáng kể đến kiện lịch sử Hai kiện khiến cho mật mã học trở nên thích hợp cho người, là: xuất tiêu chuẩn mật mã hóa DES đời kỹ thuật mật mã hóa khóa công khai 10 1.1.3 Mật mã học cổ điển Những chứng sớm sử dụng mật mã học chữ tượng hình không tiêu chuẩn tìm thấy tượng Ai Cập cổ đại (cách khoảng 4500 năm) Những ký hiệu tỏ để phục vụ mục đích truyền thông tin bí mật mà nhằm mục đích gợi nên điều thần bí, trí tò mò chí để tạo thích thú cho người xem Ngoài ra, nhiều ví dụ khác ứng dụng mật mã học cổ điển Trong mật mã học, mật mã học cổ điển dạng mật mã học sử dụng lịch sử phát triển loài người ngày trở nên lạc hậu phương thức mã hóa đơn giản kẻ công dễ dàng bẻ khóa thông qua nhiều phương thức công vét cạn (ví dụ dùng máy tính thử hết trường hợp) hay dựa công thống kê (dựa tần suất xuất chữ cái) Nói chung, mật mã học cổ điển hoạt động sở bảng chữ (chẳng hạn ký tự từ "A" tới "Z" tiếng Anh), chúng thực tay hay số máy móc khí đơn giản Ngược lại, mô hình mã hóa đại sử dụng máy tính hay công nghệ số hóa khác, hoạt động mã hóa dựa việc thay bit hay byte Các phương thức mã hóa cổ điển thông thường dễ bị tổn thương (phá mã) công văn mã hóa, chí kẻ công không cần biết chi tiết cụ thể hệ thống mã hóa, cách sử dụng công cụ phân tích tần suất Đôi người ta cho phương thức mã hóa cách thức mã hóa cỗ máy Enigma thuộc phương thức mã hóa cổ điển cách thức mã hóa sử dụng thiết bị công nghệ đại vào thời điểm (trong thời kỳ Thế chiến II) Các phương thức mã hóa cổ điển chủ yếu dựa mật mã hóa hoán vị mật mã hóa thay Trong mật mã hóa thay thế, ký tự (hoặc nhóm ký 34 Chọn số nguyên e cho < e < j (n) , (e, j (n)) = Sử dụng thuật toán Euclid mở rộng ta tính d cho ed º 1(mod j (n)) hay d º e- (mod j (n)) Ta gọi e số mũ công khai (public exponent), d số mũ bí mật (private exponent) Thông thường người ta chọn số mũ công khai nhỏ, chẳng hạn e = 216 + Giá trị d hai số nguyên tố p q giữ bí mật Alice gửi khoá công khai cho Bob giữ bí mật khoá cá nhân Ở đây, p q giữ vai trò quan trọng Việc tìm hai số p q thường thực cách thử xác suất số ngẫu nhiên có độ lớn phù hợp 2.2.3 Mã hóa Giả sử Bob muốn gửi đoạn thông tin M cho Alice Đầu tiên Bob chuyển M thành số m < n theo hàm đảo ngược (từ m xác định lại M) thỏa thuận trước Lúc Bob có m biết n e Alice gửi Bob tính c mã hóa m theo công thức: C º M e (mod n) Hàm tính dễ dàng sử dụng phương pháp tính hàm mũ (theo môđun) thuật toán bình phương nhân Cuối Bob gửi c cho Alice Việc mã hóa thực cách tính với M rõ (plaintext) thỏa ≤ M < n Số C mã (ciphertext) tương ứng M Từ C, M tính C º M e (mod n) Tính đắn thuật toán RSA chứng minh Định lý Euler sau: Nếu a n số nguyên, nguyên tố n > aϕ ( n ) ≡ 1(mod n) Do ed º 1(mod j (m)) nghĩa ed = + kj (n) , với k số nguyên, viết lại: 35 d C d º ( M e ) (mod n) C d º M ed (mod n) C d º M 1+ kj ( n ) (mod n) k C d º M ( M j ( n ) ) (mod n) C d º M (mod n) M n nguyên tố Trong trường hợp M n không nguyên tố Theo Định lý l ( n) Carmichael M º 1(mod n) l (n) hàm Carmichael, cụ thể n = pq l (n) = ( p - 1)(q - 1) gcd( p - 1; q - 1) Chú ý l (n) ước thật j ( n) n tích số nguyên tố lẻ phân biệt; trường hợp này, l (n) nhỏ l (n) Quan hệ e d cho M ed º M (mod n) ed º 1(mod l (n)) Do n tích số nguyên tố phân biệt nên điều với M, giúp đối phó với ngoại lệ nêu Định lý Euler Ví dụ Xây dựng hệ mã hóa RSA đơn giản sau: Chọn p = 11, q = 13, tính n = pq = 11.13 = 43; j (n) = j (11.13) = 10.12 = 120 Chúng ta tính hàm Carmichael n l (n) = l (11.13) = 60 Số mũ công khai e chọn thỏa < e < j ( n); gcd(e, j (n)) = Chẳng hạn e = 17 thoả mãn ràng buộc Số mũ bí mật tính bởi: 36 d º e- (mod j (n)) º e- (mdo120) º 17- (mod120) º 113(mod120) Sử dụng Thuật toán Euclid mở rộng số thuật toán khác, ta tính toán nghịch đảo môđun Do đó, người dùng mã RSA công bố công khai số mũ môđun (e, n) = (13,143) giữ bí mật d = 113; p = 11; q = 13 Quy trình mã hoá / giải mã thường dung sau: + Bản rõ: M = 50 Mã hoá C º M e (mod n) C º 5017 (mod143) C = 85 + Bản mã: C = 85 Giải mã: M º M d (mod n) M º M 113 (mod143) M = 50 Sau ví dụ với số cụ thể Ở sử dụng số nhỏ để tiện tính toán thực tế phải dùng số có giá trị đủ lớn Lấy: p = 61 số nguyên tố thứ (giữ bí mật) q = 53 số nguyên tố thứ hai (giữ bí mật) n = pq = 3233 môđun (công bố công khai) e = 17 số mũ công khai d = 2753 số mũ bí mật Khóa công khai cặp (e, n) Khóa bí mật d Hàm mã hóa là: 37 encrypt(M) = Me mod n = M17 mod 3233 với M văn rõ Hàm giải mã là: decrypt(C) = Cd mod n = C2753 mod 3233 với C văn mã Để mã hóa văn có giá trị 123, ta thực phép tính: encrypt(123) = 12317 mod 3233 = 855 Để giải mã văn có giá trị 855, ta thực phép tính: decrypt(855) = 8552753 mod 3233 = 123 Cả hai phép tính thực hiệu nhờ thuật toán bình phương nhân 2.2.4 Mã hóa giải mã RSA phần mềm Maple Ví dụ Thực hành Maple để lập mã giải mã: > p := nextprime(13478237847823478237844823845811128948543785783453478578 3432344111457843534785783434636434579875542717771115432278998762 34561117791); > q := nextprime(19993331345834785347852347823478237847823784237878453478 578337257834574785547545781776756543334544566668765432111176); > n := p*q; > e := nextprime(98324782347832312414111382388457847324823847823432342347 3824782347243478237847834785784578311113247823784784773473799369 678909000266266433117); > d := `mod`(1/e, (p-1)*(q-1)); > vbgoc := "em xin chuc cac thay co manh khoe"; > str := convert (vbgoc, bytes); 38 > dectohex := [seq(convert(str[i], hex, decimal), i = nops(str))]; > hextostr := cat(seq(dectohex[i], i = nops(dectohex))); > number := convert(hextostr, decimal, hex); > vbmat := `mod`(`&^`(number, e), n); Giải mã : > vbmat := 1502954547155201051382152029941795627852490910898593311934127014 0252908777924678634631921098800398258571677455870022482611419896 5111538302881963223364580242354797843152958445351147244020595302 348870979467519215276862913989511716810729980997714035 > p := nextprime(13478237847823478237844823845811128948543785783453478578 3432344111457843534785783434636434579875542717771115432278998762 34561117791): > q := Nextprime(1999333134583478534785234782347823784782378423787845347 8578337257834574785547545781776756543334544566668765432111176): > n := p*q: > e := nextprime(98324782347832312414111382388457847324823847823432342347 3824782347243478237847834785784578311113247823784784773473799369 678909000266266433117): > d := `mod`(1/e, (p-1)*(q-1)): > giaima; > vbmaso := `mod`(`&^`(vbmat, d), n): > hexstr := convert(vbmaso, hex, decimal): > hexlist := [seq(substring(hexstr, 2*i-1 2*i), i = (1/2)*length(hexstr))]: 39 > declist := [seq(convert(hexlist[i], decimal, hex), i = nops(hexlist))]: > vbgiaima := convert(convert(convert(declist, list), bytes), name); 2.2.5 Trao đổi thông điệp bí mật Thư mục khóa công khai chứa cặp (e, n) Người dùng muốn gửi thông điệp bí mật cho người khác truy cập đến thư mục thu tham số Ví dụ thư mục thứ tự sau: Người dùng (User) Alice Bob Cathy … Khoá công khai (Pubilc keys) (ea, na) (eb, nb) (ec, nc) … Cặp tương ứng mô đun số mũ công khai Alice Như vậy, làm Alice gửi thông điệp bí mật M cô đến cho Bob? Trong giao thức đơn giản tác giả, Alice thực bước sau: 1) Alice xác định tên Bob thư mục lấy số mũ công khai mô đun anh ấy: (eb, nb) ed 2) Alice tính: C º M (mod nb ) 3) Alice gửi C đến cho Bob mạng Internet 4) Bob nhận C e 5) Bob sử dụng số mũ bí mật anh mô đun tính M º C (mod nb ) b để thu M 2.2.6 Ký tài liệu số Thuật toán RSA cung cấp thủ tục để ký tài liệu số xác minh (verifying) chữ ký thật xác thực (authentic) Ký tài liệu số có phần khác với ký tài liệu giấy (sinh chữ ký) Chữ ký số hằng, hàm nhiều biến số Sau có chữ ký (chỉ 40 phần liệu số) tài liệu số, đính kèm vào tài liệu cho có nhu cầu xác minh tính xác thực tài liệu chữ ký Ở đây, luận văn minh họa tóm tắt qui trình ký sử dụng hệ mã RSA Giả sử Alice muốn ký thông điệp Bob muốn chứng minh thông điệp thực ký Alice Trước hết, Alice thực bước sau: d 1) Alice lấy thông điệp M tính S = M (mod na ) a 2) Alice gửi thông điệp M chữ ký S cô cho có nhu cầu xác minh chữ ký Bob thực bước sau để xác minh chữ ký S Alice tài liệu M: 1) Bob thu M S; Bob xác định tên Alice thư mục thu số mũ công khai mô đun cô ấy: (ea, na) e ' 2) Bob tính M = S (mod na ) a 3) Nếu M ' = M chữ ký chứng thực Ngược lại, thông điệp gốc M chữ ký S sửa đổi Do đó, chữ ký giá trị Chú ý ví dụ giao thức trình bày nhằm mục đích minh họa – chúng giao thức đơn giản Trong thực tế, giao thức phức tạp nhiều Ví dụ, kỹ thuật mật mã khóa bí mật (secret-key cryptographic) dùng để gửi thông điệp bí mật Ngoài ra, chữ ký áp dụng với thông điệp có độ dài tùy ý Chữ ký thông thường tính cách trước hết tính giá trị băm (hash value) thông điệp dài sau ký giá trị băm 41 Hình 5: Mô tả trình ký, xác thực chữ ký 2.2.7 Tính lũy thừa modulo (Modular Exponentiation) Một hệ mã RSA cài đặt, nghĩa môđun, số mũ bí mật số mũ công khai xác định thành phần công khai công bố, người gửi người nhận thực thao tác để ký, xác thực, mã hóa giải mã Thuật toán RSA khía cạnh hệ mã đơn e giản Thao tác yêu cầu tính M (mod n) , nghĩa lũy thừa modulo Phép tính lũy thừa modulo thao tác thông dụng để xáo trộn nội dung (scrambling), sử dụng số hệ mã Chẳng hạn, lược đồ trao đổi khóa Diffie-Hellman yêu cầu tính lũy thừa modulo Hơn nữa, lược đồ ký ElGamal Digital Signature Standard (DSS) đề xuất gần Nation Institute for Standards and Technology yêu cầu tính lũy thừa modulo Tuy nhiên, ý quy trình tính lũy thừa modulo hệ mã dựa toán logarit rời rạc khác nhau: Cơ số (M) mô đun (n) biết trước Điều cho phép số tính toán trước lũy thừa số 42 tính toán trước lưu lại Trong qui trình tính lũy thừa thuật toán RSA, biết trước số mũ (e) mô đun (n) số (base) có khả không áp dụng Phép tính lũy thừa modulo có ứng dụng máy tính đa (general - purpose computers), chẳng hạn máy tính cá nhân, vi xử lý (microprocessors), vi điều khiển (microcontrollers), xử lý tín hiệu (signal processors), máy trạm máy tính lớn (mainframe) 2.2.8 Độ an toàn hệ thống RSA Độ an toàn hệ thống RSA dựa sở Toán học: Bài toán phân tích thừa số nguyên tố số nguyên lớn Bài toán RSA Nếu toán khó (không tìm thuật toán hiệu để giải chúng) thực việc phá mã toàn RSA Phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an toàn Bài toán RSA toán tính bậc e môđun n (với n hợp số): tìm số e m cho C º M (mod n) , (e, n) khóa công khai c mã Hiện phương pháp triển vọng để giải toán phân tích n thừa số nguyên tố Khi thực điều này, kẻ công tìm số mũ bí mật d từ khóa công khai giải mã theo quy trình thuật toán Nếu kẻ công tìm số nguyên tố p q cho: n = pq dễ dàng tìm giá trị (p - 1)( q - 1) qua xác định d từ e Chưa có phương pháp tìm máy tính để giải toán thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự không tồn thuật toán) Tại thời điểm năm 2005, số lớn phân tích thừa số nguyên tố có độ dài 663 bít với phương pháp phân tán khóa RSA có độ dài từ 1024 tới 2048 bít Một số chuyên gia cho khóa 1024 bít 43 sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít khả bị phá vỡ tương lai gần Do đó, người ta thường cho RSA đảm bảo an toàn với điều kiện n chọn đủ lớn Nếu n có độ dài 256 bít ngắn hơn, bị phân tích vài với máy tính cá nhân dùng phần mềm có sẵn Nếu n có độ dài 512 bít, bị phân tích vài trăm máy tính thời điểm năm 1999 Một thiết bị lý thuyết có tên TWIRL Shamir Tromer mô tả năm 2003 đặt câu hỏi độ an toàn khóa 1024 bít Vì người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít 2.2.9 Tấn công dựa thời gian lên RSA Vào năm 1995, Paul Kocher mô tả dạng công lên RSA: Nếu kẻ công nắm đủ thông tin phần cứng thực mã hóa xác định thời gian giải mã số mã lựa chọn nhanh chóng tìm khóa d Dạng công áp dụng hệ thống chữ ký điện tử sử dụng RSA Năm 2003, Dan Boneh David Brumley chứng minh dạng công thực tế hơn: phân tích thừa số RSA dùng mạng máy tính (Máy chủ web dùng SSL) Tấn công khai thác thông tin rò rỉ việc tối ưu hóa Định lý số dư Trung quốc mà nhiều ứng dụng thực Để chống lại công dựa thời gian đảm bảo trình giải mã diễn thời gian không đổi văn mã Tuy nhiên, cách làm giảm hiệu suất tính toán Thay vào đó, hầu hết ứng dụng RSA sử dụng kỹ thuật gọi che mắt Kỹ thuật dựa tính nhân RSA: thay tính cd mod n, Alice chọn số ngẫu nhiên r tính (rec)d mod n Kết phép tính rm mod n tác động r loại bỏ cách nhân kết với nghịch đảo r Đối với văn mã, người ta chọn giá trị r Vì vậy, thời gian giải mã không phụ thuộc vào giá trị văn mã 44 2.3 MẬT MÃ VIGENÈRE Mật mã Vigenère phương pháp mã hóa văn cách sử dụng xen kẽ số phép mã hóa Caesar khác dựa chữ từ khóa Nó dạng đơn giản mật mã thay dùng nhiều bảng chữ Trong phép mã hóa Caesar, ký tự bảng chữ dịch khoảng định, ví dụ với bước dịch 3, A trở thành D, B trở thành E Mật mã Vigenère kết hợp xen kẽ vài phép mã hóa Caesar với bước dịch khác Để mã hóa, ta dùng hình vuông Vigenère (hình - công cụ phép mã hóa Vigenere) Nó gồm 26 hàng, hàng dịch bên trái bước so với hàng phía trên, tạo thành 26 bảng mã Caesar Trong trình mã hóa, tùy theo từ khóa mà thời điểm ta dùng dòng khác để mã hóa văn Hình 6: Hình vuông Vigenère (Bảng Vigenère) Ví dụ, ta có văn cần mã hóa sau: 45 ATTACKATDAWN Người gửi lựa chọn từ khóa viết lặp lại nhiều lần dòng đến số chữ dòng số chữ thông điệp, với từ khóa "LEMON" thì: LEMONLEMONLE Chữ văn bản, A, mã hóa bảng bắt đầu với L (chữ từ khóa) Nó mã hóa thành chữ dòng L cột A hình vuông Vigenère, chữ L Tương tự vậy, chữ thư hai văn mã hóa chữ thứ hai từ khóa: chữ dòng E cột T X 46 KẾT LUẬN Bản luận văn nhằm tìm hiểu sở việc áp dụng Số học vào lĩnh vực mã hoá thông tin hay rộng Lý thuyết mật mã Nội dung chủ yếu luận văn bao gồm: Trình bày tổng quan kiến thức Lý thuyết mật mã: Mã hoá, giải mã, hệ thống mã hoá (mã hóa đối xứng mã hóa bất đối xứng) Giới thiệu số khái niệm kết Số học có ứng dụng trực tiếp mã hoá giải mã thông tin: Phân tích nguyên tố, Phân tích Fermat, Phép tính đồng dư, Định lý số dư Trung Quốc, Định lý Euler, Định lý Fermat bé, Số giả nguyên tố, Định lý Carmichael, Hàm số Euler, Hàm số Carmichael Giới thiệu số hệ mật mã (mã Cesaz, mã Vigenère, mã RSA) có liên quan trực tiếp đến việc ứng dụng công cụ phép tính đồng dư kết khác Số học mã hoá, giải mã bảo vệ an toàn thông tin Thực hành mã hoá giải mã RSA phần mềm Maple Luận văn sâu tìm hiểu ứng dụng sâu sắc Số học số lĩnh vực cụ thể ngành Toán - Tin học ứng dụng như: Thẻ tín dụng ATM, Chứng khoán, Chữ ký điện tử, Xử lý ảnh, Quản lý phủ điện tử… 47 TÀI LIỆU THAM KHẢO [1] TIẾNG VIỆT Phạm Huy Điển (2002), Tính toán, lập trình giảng dạy toán học [2] Maple, Nhà xuất Khoa học Kỹ thuật, Hà Nội Phạm Huy Điển, Hà Huy Khoái (2004), Mã hóa thông tin - Cơ sở toán học [3] [4] ứng dụng, Nhà xuất Đại học Quốc gia Hà Nội Doãn Tam Hòe (2008), Toán học tính toán, Nhà xuất Giáo dục, Hà Nội Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán, Nhà xuất Đại học Quốc gia Hà Nội [5] TIẾNG ANH Brassard (1988), Modern Cryptology Lecture Notes in Computer Science, [6] Springer Verlag D M Burton (2002), Elementary Number Theory, Tata McGraw - Hill [7] Company, New Delhi L Y Kiang, Living with Mathematics (2011), McGraw - Hill Education (Asia), Singapore [8] B Scheier (1996), Applied Cryptography, Wiley [9] D Stinson (1995), Cryptography: Theory and Pratice, CRS Press LLC [10] R Rivest, A Shamir, L Adleman (1978), A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, Vol 21 (2), pp 120–126 [11] S G Telang (2001), Number Theory, Tata McGraw-Hill Company, New Delhi 48 [...]... thống mã hóa Có hệ thống mã hóa đối xứng (Hình 3) và hệ thống mã hóa bất đối xứng (Hình 4) Hai loại mã hóa này khác nhau ở số lượng khóa Mã hóa đối xứng sử dụng cùng một khóa để mã hóa / giải mã Trong khi đó, mã hóa bất đối xứng sử dụng hai khóa khác nhau để mã hóa và giải mã thông tin Mỗi hệ thống mã hóa có ưu nhược điểm riêng Mã hóa đối xứng xử lí nhanh nhưng độ an toàn không 17 cao Mã hóa bất đối xứng... 1.2 MÃ HOÁ 1.2.1 Khái niệm mã hoá và giải mã Trong mật mã học, một ngành toán học ứng dụng cho công nghệ thông tin, mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình ảnh ) từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã Giải mã là phương pháp để đưa từ dạng thông tin đã được mã hóa về dạng thông tin ban đầu, quá trình ngược của mã hóa. .. thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên Thông thường, các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng 1.3 NHỮNG KHÁI NIỆM VÀ KẾT QUẢ SỐ HỌC CÓ NHIỀU ỨNG DỤNG TRONG MÃ HÓA VÀ GIẢI MÃ THÔNG TIN 1.3.1 Số nguyên tố Số. .. và tính thuân tiện trong quản lí khóa cao Trong các ứng dụng mã hóa hiện tại, người ta thường kết hợp các ưu điểm của cả hai loại mã hóa này Hình 3: Sơ đồ mã hoá và giải mã đối xứng (mật mã khoá bí mật) 18 Hình 4: Mã hoá bất đối xứng (Mật mã khoá công khai) Một thông điệp sau khi được mã hóa bởi chìa công khai sẽ chỉ có thể được giải mã với chìa bí mật tương ứng Do các thuật toán loại này sử dụng một. .. công khai Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích sau: - Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được - Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật... thức sử dụng sơ đồ mật mã trong một hệ mật mã Lập mã (Encrypt) là việc biến văn bản nguồn thành văn bản mã Giải mã (Decrypt) là việc đưa văn bản đã mã hóa trở thành dạng văn bản nguồn Định mã (encode/decode) là việc xác định ra phép tương ứng giữa các chữ và số - Tốc độ mã được đặc trưng bởi số lượng phép tính (N) cần thực hiện để mã hóa (giải mã) một đơn vị thông tin Khả năng chống nhiễu của mã là khả... thứ tự của Plaintext và Ciphertext trong bảng trên, số 3 là chìa khóa (key) của mã Ceasar 2.2 THUẬT TOÁN MÃ HOÁ RSA Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong. .. Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với mật mã hóa khóa công khai mặc dù hai khái niệm không hoàn toàn tương đương Có những thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai... chứng, an toàn tính toán nhiều bên và chia sẻ bí mật Mã hoá có thể sử dụng để thi hành việc quản lý bản quyền số hóa Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng trao đổi các thông tin mật mà không cần phải trao đổi các khóa chung bí 19 mật trước đó Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán học với nhau là khóa công khai và khóa cá nhân (hay khóa... chữ số, chữ viết, Mọi tín hiệu đều có thể được số hoá thành các xâu ký tự Như vậy, quá trình mã hóa được tiến hành bằng cách áp dụng hàm toán học từ E lên P, vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C Bản mã hoá (Ciphertext): Thông tin, dữ liệu đã được mã hoá dưới dạng mờ 15 Khóa (key): Thành phần quan trọng trong việc mã hoá và giải mã Khóa là đại lượng bí mật, biến thiên trong ... DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH NGUYỄN VĂN THÀ MỘT VÀI ỨNG DỤNG CỦA SỐ HỌC TRONG MÃ HÓA VÀ GIẢI MÃ THÔNG TIN CHUYÊN NGÀNH: ĐẠI SỐ VÀ LÝ THUYẾT SỐ Mã số: 60 46 05 LUẬN VĂN THẠC SĨ TOÁN HỌC... thống mã hóa Có hệ thống mã hóa đối xứng (Hình 3) hệ thống mã hóa bất đối xứng (Hình 4) Hai loại mã hóa khác số lượng khóa Mã hóa đối xứng sử dụng khóa để mã hóa / giải mã Trong đó, mã hóa bất... khóa số cố định sử dụng trình mã hóa giải mã Khóa công khai công bố rộng rãi cho người dùng để mã hóa Những thông tin mã hóa khóa công khai giải mã khóa bí mật tương ứng Nói cách khác, người mã

Ngày đăng: 31/10/2015, 09:47

Từ khóa liên quan

Mục lục

  • Hình 2: Các thành phần của mật mã

  • Hình 4: Mã hoá bất đối xứng (Mật mã khoá công khai)

    • Thuật toán Euclid mở rộng kết hợp quá trình tìm ước chung lớn nhất của a,b trong thuật toán Euclid với việc tìm một cặp số nguyên x, y thoả mãn phương trình Diophantine nói trên bằng phương pháp truy hồi.

    • Hình 5: Mô tả quá trình ký, xác thực chữ ký

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

Tài liệu liên quan