MỤC LỤCTRANG CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ SỞ 4 1.3 Những khái niệm và kết quả Số học có nhiều ứng dụng trong mã hoá và giải mã thông tin 16 CHƯƠNG 2 ỨNG DỤNG CỦA SỐ HỌC TRONG MỘT SỐ HỆ T
Trang 1BỘ 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
Trang 2BỘ 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
Trang 3MỤC LỤC
TRANG
CHƯƠNG 1 MỘT SỐ KIẾN THỨC CƠ SỞ
4
1.3 Những khái niệm và kết quả Số học có nhiều ứng dụng trong mã
hoá và giải mã thông tin
16
CHƯƠNG 2 ỨNG DỤNG CỦA SỐ HỌC TRONG MỘT SỐ HỆ THỐNG MẬT MÃ
vi phân, tích phân và những bài toán khác Cho đến những năm 70 của thế kỷ
XX, Số học vẫn được xem là một trong những ngành lý thuyết thuần túy nhấtcủa toán học Thậm chí, có nhà toán học cho rằng vẻ đẹp của Số học có được là
Trang 4nhờ sự xa rời thực tiễn của nó [6] Nhưng cũng chính nhờ máy tính, một tinhhoa của văn minh nhân loại vào thế kỷ XX, đã làm tái sinh môn học cổ xưa này.Máy tính không những phát huy mọi vẻ đẹp truyền thống của Số học mà còntriển khai ra những ứng dụng đang và sẽ có cho chúng ta trong thế 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 như vũ bão.Việt Nam đã, đang từng bước áp dụng côngnghệ mới để “tin học hóa xã hội” tức là đưa tin học vào các lĩnh vực của xã hội
để cải thiện hoạt động thủ công trước đây Tin học hóa đã giải phóng sức laođộng của con người bằng cách sáng chế Như vậy chúng ta có thể trao đổi mọithông tin qua mạng Thông tin gửi đi có thể là thông tin quân sự, tài chính, kinhdoanh hoặc đơn giản là một thông tin nào đó mang tính riêng tư… Điều này dẫntới một vấn đề xảy ra là Internet là môi trường không an toàn, đầy rủi ro và nguyhiểm, không có gì đảm bảo rằng thông tin truyền đi không bị lộ trên đườngtruyền Vì vậy, vấn đề an toàn cơ sở dữ liệu, thông tin cá nhân là vấn đề sốngcòn của bất kỳ tổ chức nào và bảo mật thông tin là nền móng cơ bản để pháttriển Do đó, một biện pháp được đưa ra nhằm giúp chúng ta tự bảo vệ chínhmình cũng như những thông tin gửi đi là cần phải mã hóa thông tin Ngành khoahọc mật mã không chỉ nghiên cứu sự bảo mật của các sơ đồ mã hóa, mà còn mởrộng đến những ứng dụng thực tiễn như chữ ký điện tử, sơ đồ định danh rồi đưađến những khái niệm quan trọng của ngành khoa học máy tính và rộng hơn làcủa Toán học như khái niệm về các chứng minh tương tác (interactives proofs),chứng minh không để lộ tri thức (zero-knowledge proofs) và gần đây là cácchứng minh kiểm tra được một cách xác suất bằng cách chỉ kiểm thử một hằng
số các bít thông tin trên bản chứng minh (probabilistic checkable proofs)
Những công cụ ngày càng mạnh, Số học đã dần thâm nhập vào mật mã vàgóp phần đưa mật mã trở thành một ngành khoa học Năm 1978, ba nhà khoahọc của MIT (Massachusetts Institute of Technology) là Rivest, Shamir và
Trang 5Adleman đề xuất một hệ mã, mà nay được gọi là RSA Tính bảo mật và độ antoàn của hệ mã này được dựa trên độ phức tạp của bài toán số học phân tích một
số nguyên đủ lớn ra thừa số nguyên tố Liên tiếp sau đó, các bài toán của lýthuyết số như bài toán lôgarit rời rạc và tìm thặng dư cấp 2 cũng đã được sửdụng để xây dựng các hệ mã Elgamal và Rabin Ngoài ra, Định lý Euler, Định lýFermat bé, Định lý số dư Trung Quốc và Định lý Carmichael có rất nhiều ứngdụng trong các bài toán về số nguyên lớn áp dụng vào Lý thuyết mật mã Nhờ
đó, các lý thuyết mới của Số học, đặc biệt là Số học thuật toán, tìm thấy nhữngứng dụng trực tiếp vào thực tiễn Ngược lại, với sự sử dụng rộng rãi hệ mã RSA,Elgamal trong thực tế, việc nghiên cứu các lời giải hiệu quả cho các bài toánphân tích thành thừa số nguyên tố và lôgarit rời rạc trên các trường hữu hạn trởnên rất được quan tâm trong Lý thuyết số
Như vậy, Số học đã hiện hữu trong các hoạt động thực tiễn: Kỹ thuật máytính, mật mã, trao đổi trực tuyến giữa các ngân hàng, thẻ ATM, truyền phát tínhiệu vệ tinh, chứng khoán
Mục đích của bản luận văn này là tìm hiểu những ứng dụng của Số họcvào một số lĩnh vực mã hóa và giải mã thông tin, nhằm khẳng định tính đúngđắn của các thuật toán mật mã và đảm bảo toán học của chúng
Trang 6Ngoài phần mở đầu, kết luận và tài liệu tham khảo, luận văn này gồm có 2chương Chương 1 trình bày các kiến thức cơ sở tổng quan về Mật mã học và 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 2 trình bày một 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ư vàcác kết quả số học khác trong mã hoá và giải mã thông tin
Luận văn này được hoàn thành dưới sự hướng dẫn tận tình và chu đáo củaPGS.TS Nguyễn Thành Quang Tác giả xin bày tỏ lòng kính trọng và biết ơn sâusắc tới thầy giáo hướng dẫn khoa học, người đã dành nhiều thời gian và công sứcgiúp đỡ cho tôi để hoàn thành luận văn này
Tác giả xin bày tỏ lòng biết ơn và gửi lời cảm ơn đến các thầy cô giáo thuộcchuyên ngành Đại số và Lý thuyết số, Khoa Toán, Phòng Đào tạo Sau Đại học –Trường Đại học Vinh, những người đã tận tình giảng dạy và tạo mọi điều kiệnthuận lợi thành công của khóa học
Xin trân trọng cảm ơn Trường Đại học Sài Gòn đã tạo mọi điều kiện tổ chứcthuận lợi cho chúng tôi 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 và giúp
đỡ tôi trong học tập và 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ùngHưng - Sở Giáo dục và Đào tạo TP Hồ Chí Minh, các thầy cô giáo đồng nghiệp đãđộng viên và tạo điều kiện thuận lợi để tô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 vẫn còn nhiều thiếu sót, tác giảmong nhận được sự đóng góp của thầy cô giáo và các đồng nghiệp
TÁC GIẢ
Trang 7CHƯƠNG 1 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à một lĩnh vực liên quan vớicác kỹ thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể làtrong 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 quá
trình mã hóa; điều này có nghĩa là nó gắn với các cách thức để chuyển đổi thông
tin từ dạng này sang dạng khác nhưng ở đây là từ dạng thông thường có thểnhận thức được thành dạng không thể nhận thức được, làm cho thông tin trởthành dạng không thể đọc được nếu như không có các kiến thức bí mật Quátrình mã hóa được sử dụng chủ yếu để đảm bảo tính bí mật của các thông tinquan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng nhưcác bí mật về kinh tế, thương mại Trong những năm gần đây, lĩnh vực hoạtđộng của mật mã hóa đã được mở rộng: mật mã hóa hiện đại cung cấp cơ chếcho nhiều hoạt động hơn là chỉ duy nhất việc giữ bí mật và có một loạt các ứngdụng như: chứng thực khóa công khai, chữ ký số, bầu cử điện tử hay thanh toánđiện tử Ngoài ra, những người không có nhu cầu thiết yếu đặc biệt về tính bímật cũng sử dụng các công nghệ mật mã hóa, thông thường được thiết kế và tạolập sẵn trong các cơ sở hạ tầng của công nghệ tính toán và liên lạc viễn thông.Mật mã học là một lĩnh vực liên ngành, được tạo ra từ một số lĩnh vực khác.Các dạng cổ nhất của mật mã hóa chủ yếu liên quan với các kiểu mẫutrong ngôn ngữ Gần đây thì tầm quan trọng đã thay đổi và mật mã hóa sử dụng
và gắn liền nhiều hơn với toán học, cụ thể là toán học rời rạc, bao gồm các 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ê và tổ hợp Mật mã hóa là công cụ được sử dụng trong an ninh máy tính
và mạng
Trang 8Việc nghiên cứu tìm các phương thức để phá vỡ việc sử dụng mật mã được
gọi là phân tích mật mã, hay phá mã Mật mã hóa và phân tích mật mã đôi khi được nhóm lại cùng nhau dưới tên gọi chung mật mã học, nó bao gồm toàn bộ các chủ đề liên quan đến mật mã Trong thực tế, thuật ngữ mật mã hóa thông
thường được sử dụng để nói đến ngành này một cách tổng thể
Mật mã hóa là quá trình chuyển đổi các thông tin thông thường (văn bản thường hay văn bản rõ hay văn bản trơn) thành dạng không đọc trực tiếp được,
là văn bản mã hóa Giải mật mã hay giải mã là quá trình ngược lại, phục hồi lại văn bản thường từ văn bản mã Mật mã là thuật toán để mật mã hóa và giải mật
mã Hoạt động chính xác của mật mã thông thường được kiểm soát bởicác khóa — một đoạn thông tin bí mật nào đó cho phép tùy biến cách thức tạo ra
văn bản mã Các giao thức mật mã chỉ rõ các chi tiết về việc mật mã (và các nền
tảng mật mã hóa khác) được sử dụng như thế nào để thu được các nhiệm vụ cụthể Một bộ các giao thức, thuật toán, cách thức quản lý khóa và các hành động
quy định trước bởi người sử dụng cù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 được sử dụng đồngnghĩa với "mật mã" Trong mật mã học, thuật ngữ này có ý nghĩa kỹ thuật đặcbiệt: Các mã là các phương pháp tham gia vào việc thay thế các đơn vị văn bảnlớn hơn, thông thường là các từ hay câu văn (ví dụ, "qua tao" thay thế cho "tancong luc rang dong") Ngược lại, mật mã hóa cổ điển thông thường thay thếhoặc sắp xếp lại các chữ cái riêng biệt (hoặc một nhóm nhỏ các chữ cái) Ví dụ,
"tan cong luc rang dong" trở thành "ubo dpoh mvd sboh epoh" bằng cách thaythế
Trang 9Hình 1: Sơ đồ khái quát về một hệ thống mật mã
Trang 101.1.3 Mật mã học cổ điển
Những bằng chứng sớm nhất về sử dụng mật mã học là các chữ tượnghình không tiêu chuẩn tìm thấy trên các bức tượng Ai Cập cổ đại (cách đâykhoảng 4500 năm) Những ký hiệu tỏ ra không phải để phục vụ mục đích truyềnthông tin bí mật mà có vẻ như là nhằm mục đích gợi nên những điều thần bí, trí
tò mò hoặc thậm chí để tạo sự thích thú cho người xem Ngoài ra, còn rất nhiều
ví dụ khác về những ứng dụng của mật mã học cổ điển
Trong mật mã học, mật mã học cổ điển là một dạng của mật mã học đãđược sử dụng trong lịch sử phát triển của loài người nhưng ngày nay đã trở nênlạc hậu do các phương thức mã hóa này quá đơn giản và những kẻ tấn công cóthể dễ dàng bẻ khóa thông qua nhiều phương thức như tấn công vét cạn (ví dụnhư dùng máy tính thử hết mọi trường hợp) hay dựa trên tấn công thống kê (dựatrên tần suất xuất hiện của các chữ cái)
Nói chung, mật mã học cổ điển hoạt động trên cơ sở bảng chữ cái (chẳnghạn các ký tự từ "A" tới "Z" trong tiếng Anh), và chúng được thực hiện bằng tayhay một số máy móc cơ khí đơn giản Ngược lại, các mô hình mã hóa hiện đại
sử dụng các máy tính hay các công nghệ số hóa khác, và hoạt động mã hóa dựatrên việc thay thế các bit hay byte Các phương thức mã hóa cổ điển thôngthường dễ bị tổn thương (phá mã) bởi các tấn công văn bản mã hóa, đôi khithậm chí kẻ tấn công không cần biết các chi tiết cụ thể của hệ thống mã hóa,bằng cách sử dụng các công cụ như phân tích tần suất Đôi khi người ta cũngcho rằng các phương thức mã hóa như cách thức mã hóa của cỗ máyEnigma thuộc về các phương thức mã hóa cổ điển mặc dù cách thức mã hóa này
đã sử dụng các thiết bị và công nghệ hiện đại nhất vào thời điểm đó (trong thời
kỳ của Thế chiến II)
Các phương thức mã hóa cổ điển chủ yếu dựa trên mật mã hóa hoán
vị và mật mã hóa thay thế Trong mật mã hóa thay thế, các ký tự (hoặc nhóm ký
Trang 11tự) được thay thế một cách có quy luật trong toàn bộ thông điệp bằng các ký tự
khác (hoặc nhóm ký tự), chẳng hạn câu I am Mr Enigma from được thay bằng câu This is morning star, sau đó các ký tự còn lại trong bảng chữ cái được thay
thế theo một quy luật nào đó xác định trước Trong phương thức mật mã hóahoán vị thì các ký tự được giữ không đổi, nhưng trật tự của chúng trong bản tinlại thay đổi theo một quy luật nào đó Có các thuật toán phức tạp để thực hiệnviệc mật mã hóa bằng cách tổ hợp hai phương thức trên để tạo ra sản phẩm mãhóa; các phương thức mã hóa khối hiện đại như DES hay AES thực hiện việclặp đi lặp lại một số bước thay thế và hoán vị
1.1.4 Mật mã học hiện đại
Nhiều người cho rằng kỷ nguyên của mật mã học hiện đại được bắt đầuvới Claude Shannon, người được coi là cha đẻ của mật mã toán học Năm 1949ông đã công bố bài lý thuyết về truyền thông trong các hệ thống bảo mật(Communication Theory of Secrecy Systems) trên tập san Bell SystemTechnical Journal - Tập san kỹ thuật của hệ thống Bell - và một thời gian ngắnsau đó, trong cuốn Mathematical Theory of Communication - Lý thuyết toánhọc trong truyền thông - cùng với tác giả Warren Weaver Những công trìnhnày, cùng với những công trình nghiên cứu khác của ông về lý thuyết về tin học
và truyền thông (information and communication theory), đã thiết lập một nềntảng lý thuyết cơ bản cho mật mã học và thám mã học
Với sự ra đời của máy tính kỹ thuật số và điện tử học thì các mật mã cực
kỳ phức tạp đã có thể được thực hiện Đặc trưng của mật mã máy tính là chúngthực hiện trên các chuỗi nhị phân, không giống như trong các mô hình mật mãhóa cổ điển và cơ học (chỉ sử dụng bảng chữ cái với khoảng 26 ký tự - phụthuộc vào từng ngôn ngữ) Mật mã máy tính cũng có khả năng chịu đựng việcphân tích mật mã tốt hơn; rất ít các mật mã như thế dễ bị tổn thương chỉ bởi kiểutấn công biết bản mã
Trang 12Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại là tươngđối gần đây - nó chỉ được bắt đầu trong cộng đồng mở kể từ những năm thậpniên 1970 với các chi tiết kỹ thuật củaDES(viết tắt trong tiếng Anh của DataEncryption Standard tức Tiêu chuẩn Mật mã hóa Dữ liệu) và sự phát minh ra mã
RSA Kể từ đó, mật mã hóa đã trở thành công cụ được sử dụng rộng rãi trongliên lạc và bảo mật máy tính
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ạngthông tin ban đầu, quá trình ngược của mã hóa
Mục đích của mã hóa là che dấu thông tin trước khi truyền trên kênh
1.2.2 Khái niệm hệ thống mã hoá Một hệ thống mã hóa (hệ mật mã) bao
gồm 5 thành phần (P, C, K, D, E):
1 Các thông tin trước khi mã hóa, kí hiệu là P (Plaintext),
2 Các thông tin sau khi mã hóa, kí hiệu là C (Ciphertext),
3 Các chìa khóa, kí hiệu là K (Key);
4 Các quy tắc mã hóa, ký hiệu là E (Encrytion),
5 Các quy tắc giải mã, kí hiệu là D (Decrytion),
thoả mãn điều kiện sau: Với mỗi k K có một quy tắc mã e P k: C và một quytắc giải mã tương ứng d C k: Psao cho d e x k k( ) x x P,
Trang 13Như 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.
Hình 2: Các thành phần của mật mã
Quá trình giải mã được tiến hành ngược lại: Áp dụng hàm D lên thông tin C để được thông tin đã giải mã P.
Một thông báo thường được tổ chức dưới dạng bản rõ (văn bản trơn).
Người gửi bản thông báo sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu được
sau mã hoá được gọi là bản mã (văn bản mã hoá) Bản mã được gửi đi trên một
đường truyền tới người nhận Sau khi nhận bản mã, người nhận giải mã nó đểtìm hiểu nội dung
Sử dụng các ký hiệu của hệ mật mã, các công việc trên được toán học hoábởi các công thức sau:
( ) ; ( )
Như vậy trong một hệ thống mật mã khái quát sẽ có các thành phần sau:
- Văn bản trơn(plaintext), tức là thông điệp nguyên gốc chưa được mãhóa
- Văn bản mã hóa(ciphertext), tức là thông điệp đã được mã hóa
Trang 14- Thuật toán mã hóa(enciphering algorithm) là các giao thức hoặc hướngdẫn có tác dụng chuyển đổi văn bản trơn thành văn bản mã hóa Đối với các hệthống mật mã truyền thống, chỉ có người gửi thông điệp biết được thuật toán mãhóa, tuy nhiên đối với các hệ thống dùng mật mã hóa khóa công khai (Publickey code - PKC), tất cả mọi người đều có thể biết thuật toán mã hóa mà khôngảnh hưởng tiêu cực đến an ninh của hệ thống.
- Khóa mã hóa(enciphering key) là một hoặc nhiều đối tượng (thường làcác con số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc mãhóa văn bản trơn Ngoại trừ trong hệ thống PKC, để đảm bảo bí mật an toàn thìkhóa mã hóa thường chỉ được người gửi biết
- Thuật toán giải mã(deciphering algorithm) là các giao thức hoặc hướngdẫn có tác dụng chuyển đổi văn bản mã hóa trở về văn bản trơn Để đảm bảo bímật, chỉ có người nhận thông điệp biết được thuật toán giải mã
- Khóa giải mã (deciphering key) là một hoặc nhiều đối tượng (thường là các
con số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc giải mãvăn bản bị mã hóa Để đảm bảo bí mật, chỉ có người nhận thông điệp biết đượckhóa giải mã
1.2.3 Một số thuật ngữ sử dụng trong hệ mật mã
Người gửi (Sender): Người gửi thông báo.
Người nhận (Receiver): Người nhận thông báo.
Văn bản rõ (Plaintext – Cleartext): Thông tin trước khi được mã hoá Đây là
dữ liệu ban đâu ở dạng rõ Thông tin gốc được ghi bằng hình ảnh âm thanh, 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ờ
Trang 15Khó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 một hệ mật
Thuật toán mã hoá (CryptoGraphic Algorithm): Các thuật toán được sử dụng
trong việc mã hoá hoặc giải mã thông tin
Hệ thống mã (CryptoSystem): Hệ thống mã hoá bao gồm thuật toán mã
hoá, khoá, Plaintext, Ciphertext
Kỹ thuật mật mã (Cryptology) là môn khoa học bao gồm hai lĩnh vực: mật
mã (Cytography) và mã thám (Cryptoanalysis)
Mật mã: là lĩnh vực khoa học về các phương pháp biến đổi thông tin nhằm
mcụ đích bảo vệ thông tin khỏi sự truy cập của những người không có thẩmquyền
Mã thám: là lĩnh vực khoa học chuyên nghiên cứu, tìm kiếm yếu điểm của
các hệ mật để từ đó đưa ra phương pháp tấn công các hệ mật đó
Sơ đồ mật mã là tập hợp các thuật toán mã hóa, giả mã, kiểm tra sự toàn vẹn
vàcác chức năng khác của một hệ mật
Giao thức mật mã là tập hợp các quy tắc, thủ tục quy định cách 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ả năng chống lại sự phát tán lỗi trongbản tin sau khi giải mã, nếu trước đó xảy ra lỗi với bản mã trong quá trình bản
mã được truyền từ người gửi đến người nhận
Trang 16Mã dòng (Stream cipher) là việc tiến hành mã hóa liên tục trên từng ký tự
hay từng bit
Mã khối (Block cipher) là việc tiến hành mã hoá trên từng khối văn bản
1.2.3 Những yêu cầu đối với hệ mật mã hoá
Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liênlạc Các thuộc tính được yêu cầu là:
1 Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông
tin chứa đựng trong dạng đã mật mã hóa của nó Nói khác đi, nó không thể chophép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp
2 Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay
đổi trong quá trình truyền thông hay không
3 Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem
người gửi đó có thực sự gửi thông tin đi hay không
4 Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông tin đi.
5 Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần
đến người nhận mà người gửi không hề hay biết
Mật mã học có thể cung cấp cơ chế để giúp đỡ thực hiện điều này Tuynhiên, một số mục tiêu không phải bao giờ cũng là cần thiết, trong nghĩa cảnhcủa thực tế hay mong muốn của người sử dụng Ví dụ, người gửi thông tin cóthể mong muốn giữ mình là nặc danh; trong trường hợp này tính không từ chối
rõ ràng là không thích hợp
1.2.4 Các hệ 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
Trang 17cao Mã hóa bất đối xứng xử lí chậm hơn, nhưng độ an toàn 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
-Quá trình truyền
dữ liệu
Khóa bí mật(chỉ
Có người mã hóa và người giải mã biết)
Quá trình
mã hóa
Quá trình giải mã
Bản tin gốc
Bản tin gốc
Bản tin mã
Bản tin mã
```
```
```
```
```
```
Hình 3: Sơ đồ mã hoá và giải mã đối xứng (mật mã khoá bí mật)
Trang 18
-Quá trình truyền
dữ liệu
Khóa công khai, chỉ dùng để mã hóa (có thể cho mọi người biết) Khóa mật, chỉ dùng để giải mã (cần
được giữ bí mật)
Quá trình
mã hóa
Quá trình giải mã
Bản tin gốc
Bản tin gốc
Bản tin mã
Bản tin mã
```
```
```
```
```
```
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 chìa khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai)
1.2.5 Ứng dụng của mã hóa
Mã hóa có vai trò rất quan trọng, đặc biệt là trong giao dịch điện tử Nó giúp đảm bảo bí mật, toàn vẹn của thông tin, khi thông tin đó được truyền trên mạng Mã hóa cũng là nền tảng của kĩ thuật chữ ký điện tử
Mã hoá có thể sử dụng để thi hành các giao thức khác nhau: không kỹ năng kiểm 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í
Trang 19mậ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 bí mật)
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óacô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 trongkhi khóa công khai được phổ biến 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 nào đó hay không
- Thỏ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ượngtí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ố nguyên tố là số nguyên lớn hơn 1, không chia hết cho số
nguyên dương nào ngoài 1 và chính nó Số nguyên lớn hơn 1 không phải là số
nguyên tố được gọi là hợp số.
Trang 20Định lý sau đây của Số học là một cơ sở quan trọng của thuật toán tìm các
số nguyên tố không vượt quá một số tự nhiên cho trước
1.3.2 Định lí Mọi hợp số n đều có ước nguyên tố nhỏ hơn hoặc bằng n
Chứng minh Thật vậy, vì n là hợp số nên ta gọi a và b là các ước thật sự của n.
Khi đó n ab , trong đó 1a b n . Rõ ràng ta phải có a hoặc b không vượt
quá n , giả sử đó là a Khi đó, ước nguyên tố của a cũng đồng thời là ước nguyên tố của n.
1.3.3 Hệ quả Mọi số tự nhiên n lớn 1 không có ước nguyên tố nhỏ hơn hoặc
bằng n đều là số nguyên tố.
Chẳng hạn, số 31 không có có ước nguyên tố là 2, 3, 5 (các số nguyên tốkhông vượt quá 31 ) nên 31 là số nguyên tố Như vậy, để kiểm tra tính nguyên
tố của số 31 thay vì cần phải kiểm tra cả thảy là 30 phép chia, ta chỉ cần kiểm tra
3 phép chia, tức số phép chia giảm đi 10 lần
Từ hệ quả trên, ta có thuật toán viết tất cả các số nguyên tố nhỏ hơn hoặc
bằng một số nguyên dương n cho trước.
1.3.4 Thuật toán sàng các số nguyên tố của Eratosthenes Trước tiên, ta viết
dãy các số tự nhiên từ 1 đến n Trong dãy đó, ta gạch bỏ số 1 vì nó không phải là
số nguyên tố Số nguyên tố đầu tiên của dãy là số 2 Tiếp theo đó ta gạch khỏidãy số tất cả những số chia hết cho 2 Số đầu tiên không chia hết cho 2 là 3 và
đó chính là số nguyên tố Ta lại gạch khỏi dãy số còn lại những số nào khôngchia hết cho 3 Ta thu được số nguyên tố tiếp theo là 5 Tiếp tục như thế, ta gạch
khỏi dãy những số chia hết cho mọi số nguyên tố bé hơn hoặc bằng n
Sàng Eratosthenes mặc dù cho ta thuật toán xác định mọi số nguyên tốkhông vượt quá một số cho trước nhưng lại rất ít được sử dụng để xác định xemmột số đã cho có phải là số nguyên tố hay không Nguyên nhân là vì thuật toán
Trang 21có độ phức tạp khá lớn: để kiểm tra n, ta phải thực hiện phép chia cho tất cả các
số nguyên tố không vượt quá n
1.3.5 Định lí cơ bản của Số học Mọi số nguyên lớn hơn 1 đều phân tích được
một cách duy nhất thành tích các số nguyên tố, trong đó các thừa số được viết với thứ tự không giảm.
Chứng minh Ta chứng minh mọi số nguyên lớn hơn 1có thể viết dưới dạng tích
của một hoặc nhiều số nguyên tố Trước hết, mỗi số nguyên tố là tích của một
thừa số là chính nó Giả sử rằng có các số nguyên dương lớn hơn 1 không biểu
diễn được thành tích các số nguyên tố Khi đó gọi n là số nhỏ nhất trong các số
đó Số n ≠ 1 và là hợp số Do đó n = ab, trong đó cả a và b là các số nguyên dương nhỏ hơn n Vì n là số nhỏ nhất không thể phân tích thành tích các số
nguyên tố nên cả a và b phân tích được thành tích các số nguyên tố Nhưng khi
đó n = ab lại phân tích được Điều này mâu thuẫn với giả thiết
Ta giả sử rằng tồn tại số nguyên lớn hơn 1 mà có hai cách biểu diễn dưới
dạng tích các thừa số nguyên tố Khi đó, giả sử s là số nhỏ nhất trong các số như vậy, tức là s = p1p2 p m = q1q2 q n với p i ,q j là các số nguyên tố Do p1 chia hết
q1q2 q n suy ra tồn tại q j mà p1 chia hết q j Từ đó ta có p i = q j, bỏ hai số nguyên tố
ra khỏi đẳng thức ta được hai vế là hai khai triển khác nhau của số s chia cho p1,
mà theo giả thiết s là số nhỏ nhất như vậy, mâu thuẫn này chứng tỏ giả thiết làsai Vậy mỗi số nguyên lớn hơn 1 chỉ có một biểu diễn duy nhất dưới dạng tíchthừa số nguyên tố (không kể đến thứ tự các thừa số) ▄
1.3.6 Thuật toán Euclid Thuật toán cho phép xác định ước chung lớn nhất
(gcd) của hai số nguyên nguyên dương Với a, b là các số nguyên dương (giả thiết a > b) Ta xét 3 trường hợp sau:
a) Nếu b là ước của a thì (a, b) = b.
b) Nếu a = bq + r thì (a, b) = (b, r).
Trang 22Vì bất đẳng thức sau đây là xảy ra, nên quá trình chia nói trên là dừng lại
sau không quá a bước, hay quá trình này là một thuật toán:
1.3.7 Thuật toán Euclide mở rộng Thuật toán này sử dụng để giải phương
trình Diophant ax + by = c, trong đó a,b,c là các số nguyên; x, y là các ẩn nhận
giá trị nguyên Điều kiện cần và đủ để phương trình này có nghiệm nguyên là
ước chung lớn nhất của a và b là ước của c Khẳng định này dựa trên một mệnh
đề sau: Nếu d là ước chung lớn nhất của a,b thì tồn tại các số nguyên x, y sao
cho ax + by = d
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
Trang 231.3.8 Định nghĩa Hàm số Euler ( )m là hàm số học có giá trị tại mỗi số tựnhiên m 0 bằng số các số nguyên dương không vượt quá m và nguyên tố cùng nhau với m:
1 ( , ) 1
Hàm ( )m có nhiều ứng dụng vì nó là kích thước (xem 1.3.12) của nhóm
nhân các số nguyên modulo m Hơn nữa, đối với hàm Euler ( )m ta có công
thức Gaus là công thức tổng trải trên các ước dương d của m:
Định lí Euler có thể dùng để tìm nghịch đảo modm Chẳng hạn, nếu a và
m là các số nguyên nguyên tố cùng nhau, ta có aa( ) 1m 1(mod )m tức là a ( ) 1m
là nghịch đảo của a theo modm Từ đó cũng suy ra nghiệm của phương trình
đồng dư tuyến tính ax b (mod )m với ( , ) 1a m là x a ( ) 1m b(mod )m
Các tính chất của hàm Euler được sử dụng để tính đồng dư của những lũythừa rất lớn Chẳng hạn, ta cần tính n
a mod k , trong đó n là một số nguyên lớn
Ta xét một ví dụ bằng số Tìm số dư trong phép chia 21000000 cho 77
Trang 241.3.10 Định lí Fermat bé Nếu p là số nguyên tố và a là số nguyên không chia
hết cho p thì a p 1 1(mod )p
nguyên bất kỳ thì a p a(mod )p .
Một cách độc lập các nhà toán học Trung quốc đã đưa ra một giả thuyết
(thường gọi là Giả thuyết Trung Quốc) nói rằng: p là một số nguyên tố khi và
chỉ khi 2p º 2(mod )p Đúng là, nếu p là số nguyên tố, thì 2 p º 2(mod )p Đây
là trường hợp đặc biệt của Định lý bé Fermat Tuy thế, điều ngược lại(nếu 2pº 2(mod )p thì p là số nguyên tố) là sai Chẳng hạn, 2341º 2(mod341),nhưng 341 = 11.31 là hợp số Như vậy, mệnh đề ngược lại của Định lí Fermat
bé không đúng Tuy nhiên, qua nhiều thống kê cho thấy rằng nếu một số nguyênthỏa mãn kết luận của Định lí Fermat bé thì "có nhiều khả năng" nó là số nguyên
tố Do đó, dẫn xuất đến khái niệm sau
1.3.11 Số giả nguyên tố Nếu ta muốn kiểm tra số n có là số nguyên tố không,
ta lấy ngẫu nhiên các số a và kiểm tra xem đồng dư thức a n a(mod )n có đúng
không Nếu nó không đúng với một giá trị a nào đó thì n là hợp số Nếu đồng dư thức đúng với một hoặc nhiều giá trị của a, thì ta nói rằng n là số nguyên tố với
xác suất nào đó, hay n là một số giả nguyên tố (pseudoprime).
Nếu n là một hợp số và tồn tại một số nguyên asao cho a nº a(mod )n ,
thì p được gọi là số giả nguyên tố cơ sở a
F Sarrus vào năm 1820 đã tìm thấy 341 = 11×31 là số giả nguyên tố cơ
sở 2 đầu tiên
Một số nguyên n là số giả nguyên tố cơ sở a với mọi số nguyên a được
gọi là số Carmichael (chẳng hạn số 561)