1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn toán học cho khoa học máy tính MÃ HÓA TRONG TIN HỌC LÝ THUYẾT VÀ ỨNG DỤNG

30 709 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 323,03 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG 2: LÝ THUYẾT MÃ HÓA2.1 Tổng quan về mã hóa 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

Trang 1

CAO HỌC KHÓA 8

BÀI THU HOẠCH MÔN HỌC

TOÁN CHO KHOA HỌC MÁY TÍNH

ĐỀ TÀI

MÃ HÓA TRONG TIN HỌC - LÝ THUYẾT VÀ

ỨNG DỤNG

Giảng viên hướng dẫn: PGS.TSĐỗ Văn Nhơn

Học viên thực hiện: CH1301031 - Nguyễn Thành Phương

Trang 3

1.1 Đặt vấn đề 1

1.2 Mục tiêu đề tài 1

CHƯƠNG 2: LÝ THUYẾT MÃ HÓA 2

2.1 Tổng quan về mã hóa 2

2.1.1 Lịch sử mật mã học 2

2.1.2 Phân loại các thuật toán mật mã học 4

2.2 Mã hóa đối xứng 6

2.2.1 Tổng quan 6

2.2.2 Mã DES (Data Encryption Standard) 6

2.2.3 Hoán vị khởi tạo và hoán vị kết thúc 7

2.2.4 Các vòng của DES 8

2.2.5 Thuật toán sinh khóa con của DES 11

2.2.6 Hiệu ứng lan truyền 11

2.2.7 Độ an toàn của DES 12

2.3 Mã hóa bất đối xứng 13

2.3.1 Tống quan RSA 14

2.3.2 Lý thuyết số 15

2.3.3 Phép lũy thừa module và RSA 15

2.3.4 Ví dụ RSA 19

2.3.5 Độ an toàn RSA 20

CHƯƠNG 3: CHƯƠNG TRÌNH MINH HỌA 22

3.1 Tổng quan về chương trình minh họa 22

3.2 Mã hóa đối xứng DES 22

3.3 Mã hóa bất đối xứng RSA 22

3.4 Chạy thử chương trình 22

3.4.1 DES 22

3.4.2 RSA 23

CHƯƠNG 4: KẾT LUẬN 26

4.1 Kết quả 26

4.2 Hạn chế 26

Trang 4

CHƯƠNG 1: TỔNG QUAN

1.1 Đặt vấn đề

Với sự phát triển mạnh mẽ của công nghệ thông tin, đặt biệt là sự phát triển củamạng Internet, ngày càng có nhiều thông tin được lưu giữ trên máy vi tính và gửi đitrênmạng Internet Và do đó xuất hiện nhu cầu về an toàn và bảo mật thông tin trênmáy tính Có thể phân loại mô hình an toàn bảo mật thông tin trên máy tính theo haihướng chính như sau:

1) Bảo vệ thông tin trong quá trình truyền thông tin trên mạng (NetworkSecurity)

2) Bảo vệ hệ thống máy tính, và mạng máy tính, khỏi sự xâm nhập phá hoại từbên ngoài (System Security)

Mã hóa dữ liệu (cryptography), là một phần cơ bản thiết yếu của bảo mật thông tin.Mật mã đáp ứng được các nhu cầu về tính bảo mật (confidentiality), tính chứng thực(authentication) và tính không từ chối (non-repudiation) của một hệ truyền tin

Báo cáo này sẽ tập trung tìm hiểu các khái niệm lý thuyết về mã hóa đối xứng và mãhóa bất đối xứng, chúng đóng vai trò quan trọng trong mật mã hiện đại

1.2 Mục tiêu đề tài

- Tìm hiểu lý thuyết về mã hóa đối xứng và mã hóa bất đối xứng

- Viết một chương trình đơn giản minh họa hai kĩ thuật mã hóa trên

Trang 5

CHƯƠNG 2: LÝ THUYẾT MÃ HÓA

2.1 Tổng quan về mã hóa

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ìnhthườ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 tinban đầu, quá trình ngược của mã hóa

Một hệ thống mã hóa bao gồm các thành phần:

 thông tin trước khi mã hóa, kí hiệu là P

 thông tin sau khi mã hóa, kí hiệu là C

 chìa khóa, kí hiệu là K

 phương pháp mã hóa/giải mã, kí hiệu là E/D

Quá trình mã hóa được tiến hành bằng cách áp dụng hàm toán học E lên thông tin P,vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C

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 để đượcthông tin đã giải mã P

2.1.1 Lịch sử mật mã học

Mật mã học là một ngành khoa học có một lịch sử khoảng 4000 năm Các cổ vật củangành khảo cổ học thu được đã cho thấy điều này Những người Ai cập cổ đại đã sửdụng các chữ tượng hình như là một dạng mã hóa đơn giản nhất trên các bia mộ của

họ Các tài liệu viết tay khác cũng cho thấy các phương pháp mã hóa đơn giản đầu tiên

mà loài người đã sử dụng là của người Ba Tư cổ và người Do Thái cổ

Tuy vậy có thể chia lịch sử mật mã học thành hai thời kỳ như sau:

Trang 6

Thời kỳ tiền khoa học: Từ trước công nguyên cho tới năm 1949 Trong giaiđoạn này mật mã học được coi là một nghệ thuật nhiều hơn là một môn khoa học mặc

dù đã được ứng dụng trong thực tế

Lịch sử của mật mã học được đánh dấu vào năm 1949 khi Claude Shannon đưa

ra lý thuyết thông tin Sau thời kỳ này một loạt các nghiên cứu quan trọng của nghànhmật mã học đã được thực hiện chẳng hạn như các nghiên cứu về mã khối, sự ra đời củacác hệ mã mật khóa công khai và chữ ký điện tử

Qua nhiều thế kỷ phát triển của mật mã học chủ yếu được phục vụ cho các mụcđích quân sự (gián điệp, ngoại giao, chiến tranh…) Một ví dụ điển hình là 2000 nămtrước đây hoàng đế La mã Julius Caesar đã từng sử dụng một thuật toán thay thế đơngiản mà ngày nay được mang tên ông trong cuộc chiến tranh Gallic

Blaise De Vegenere cũng là tác giả của hệ mã mang tên ông, hệ mã này đã từngđược xem là an toàn tuyệt đối và được sử dụng trong một thời gian dài, tuy nhiênCharles Babbages đã thực hiện thám mã thành công vào năm 1854 nhưng điều nàyđược giữ bí mật Một thuật toán thám mã được phát hiện độc lập bởi một nhà khoa họcngười Phổ (thuộc nước Đức ngày nay) có tên là Friedrich Kasiski Tuy vậy do việcthiếu các thiết bị cải tiến nên các biến thể của thuật toán mã hóa này vẫn còn được sửdụng trong những năm đầu của thế kỷ 20 mà tiêu biểu nhất là việc thám mã thành côngmáy điện tín Zimmermann của quân Đức (một trong các sự kiện tiêu biểu của mật mãhọc) trong thế chiến thứ nhất và kết quả là sự tham gia của Mỹ vào cuộc chiến

Với sự xuất hiện của các hệ thống máy tính cá nhân và mạng máy tính cácthông tin văn bản ngày càng được lưu trữ và xử lý nhiều hơn trên các máy tính do đónảy sinh yêu cầu về an toàn bảo mật đối với các thông tin được lưu trữ, xử lý và truyềngiữa các máy tính

Vào đầu những năm 1970 là sự phát triển của các thuật toán mã hóa khối đầutiên: Lucipher và DES DES sau đó đã có một sự phát triển ứng dụng rực rỡ cho tớiđầu những năm 90

Trang 7

Vào cuối những năm 1970 chứng kiến sự phát triển của các thuật toán mã hóakhóa công khai sau khi Whitfield Diffie và Martin Hellman công bố bài báo “NewDirections in Cryptography” làm nền tảng cho sự ra đời của các hệ mã khóa công khai

và các hệ chữ ký điện tử

Do nhược điểm của các hệ mã mật khóa công khai là chậm nên các hệ mã khốivẫn tiếp tục được phát triển với các hệ mã khối mới ra đời để thay thế cho DES vàocuối thế kỷ 20 như IDEA, AES hoặc 3DES (một cải tiến của DES)

Gần đây nhất là các sự kiện liên quan tới các hàm băm MD5 (một hàm bămthuộc họ MD do Ron Rivest phát triển) và SHA1 Một nhóm các nhà khoa học ngườiTrung Quốc (Xiaoyun Wang, Yiqun Lisa Yin, Hongbo Yu) đã phát triển các phươngpháp cho phép phát hiện ra các đụng độ của các hàm băm được sử dụng rộng rãi nhấttrong số các hàm băm này Đây là một sự kiện lớn đối với ngành mật mã học do sựứng dụng rộng rãi và có thể xem là còn quan trọng hơn bản thân các hệ mã mật của cáchàm băm Do sự kiện này các hãng viết phần mềm lớn (như Microsoft) và các nhà mật

mã học đã khuyến cáo các lập trình viên sử dụng các hàm băm mạnh hơn (như

SHA-256, SHA-512) trong các ứng dụng

Bruce Schneier (một trong những nhà mật mã học hàng đầu, tác giả của hệ mãBlowfish) đã từng nói rằng các hình thức tấn công đối với hệ mã mật riêng và tấn côngđối với các hệ thống máy tính nói chung sẽ ngày càng trở nên hoàn thiện hơn “Attacksalways get better; they never get worse.” và lịch sử phát triển của mật mã học chính làlịch sử phát triển của các hình thức tấn công đối với các hệ mã mật đang được sử dụng

2.1.2 Phân loại các thuật toán mật mã học

Có nhiều cách khác nhau để chúng ta có thể phân loại các thuật toán mật mãhọc sẽ được học trong chương trình Ở đây chúng ta sẽ phân loại các thuật toán mật mãhọc dựa vào hai loại tiêu chí

Tiêu chí thứ nhất là dựa vào các dịch vụ an toàn bảo mật mà các thuật toán cungcấp, dựa vào số lượng khóa sử dụng (0, 1, 2) chúng ta có các thuật toán mã hóa sau:

Trang 8

1 Các thuật toán mã hóa khóa bí mật tương ứng với các hệ mã mật khóa bí mậthay khóa đối xứng SKC (Symmetric Key Cryptosytems), do vai trò của người nhận vàngười gửi là như nhau, cả hai đều có thể mã hóa và giải mã thông điệp, như Caesar,DES, AES … Khóa sử dụng cho các thuật toán này là 1 khóa cho cả việc mã hóa vàgiải mã.

2 Các thuật toán mã hóa khóa công khai tương ứng với các hệ mã khóa côngkhai PKC (Public Key Cryptosystems) Đôi khi các hệ mã này còn được gọi là các hệ

mã khóa bất đối xứng (Asymmetric Key Cryptosytems) Khóa sử dụng cho các thuậttoán này là 2 khóa, một cho việc mã hóa và một cho việc giải mã, khóa mã hóa đượccông khai hóa

3 Các thuật toán tạo chữ ký điện tử (Digital Signature Algorithms) Các thuậttoán tạo chữ ký điện tử tạo thành các hệ chữ ký điện tử Thông thường mỗi hệ chữ kýđiện tử có cùng cơ sở lý thuyết với một hệ mã mật khóa công khai nhưng với cách ápdụng khác nhau Trong chương trình học chúng ta sẽ học một số hệ chữ ký điện tử phổbiến là RSA, ElGammma…

4 Các hàm băm (Hash functions) Các hàm băm là các thuật toán mã hóakhông khóa hoặc có khóa và thường được sử dụng trong các hệ chữ ký điện tử hoặccác hệ mã khóa công khai

Tiêu chí thứ hai phân loại các thuật toán mã hóa dựa trên cách thức xử lý inputcủa thuật toán (tức là bản rõ), dựa trên tiêu chí này chúng ta có hai loại thuật toán mãhóa sau:

1 Các thuật toán mã hóa khối (chẳng hạn như DES, AES …) xử lý bản rõ dướicác đơn vị cơ bản là các khối có kích thước giống nhau

2 Các thuật toán mã hóa dòng (RC4 …) coi bản rõ là một luồng bit, byte liêntục

Trong các phần tiếp theo, báo cáo sẽ đi sâu vào hai loại là mã hóa đối xứng và mã hóabất đối xứng

Trang 9

2.2.2 Mã DES (Data Encryption Standard)

Mã DES là một ví dụ điển hình của mã hóa đối xứng, nó có các tính chất sau:

 Là mã thuộc hệ mã Feistel gồm 16 vòng, ngoài ra DES có thêm một hoán

 vị khởi tạo trước khi vào vòng 1 và một hoán vị khởi tạo sau vòng 16

 Kích thước của khối là 64 bít: ví dụ bản tin „meetmeafterthetogaparty‟

 biểu diễn theo mã ASCII thì mã DES sẽ mã hóa làm 3 lần, mỗi lần 8 chữ

 cái (64 bít): meetmeaf - tertheto - gaparty

Trang 10

Sơ đồ mã DES trên gồm ba phần, phần thứ nhất là các hoán vị khởi tạo và hoán vịkết thúc Phần thứ hai là các vòng Feistel, phần thứ ba là thuật toán sinh khóa con

2.2.3 Hoán vị khởi tạo và hoán vị kết thúc

Ta đánh số các bít của khối 64 bít theo thứ tự từ trái sang phải là 0, 1, …, 62, 63: b0b1b2…b62b63

Hoán vị khởi tạo sẽ hoán đổi các bít theo quy tắc sau :

Trang 11

Hoán vị kết thúc hoán đổi các bít theo quy tắc sau:

Hoán vị kết thúc chính là hoán vị nghịch đảo của hoán vị khởi tạo Đối với

knownplaintext hay chosen-plaintext attack, hoán vị khởi tạo và hoán vị kết thúc không có ý nghĩa bảo mật, sự tồn tại của hai hoán vị trên được nhận định là do yếu tố lịch sử

2.2.4 Các vòng của DES

Hình sau minh họa một vòng Feistel của DES:

Trang 12

Trong DES, hàm F của Feistel là:

F(Ri-1, Ki) = P-box(S-boxes(Expand( Ri-1) Ki))

Trong đó hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 32 bít lên 48 bít Hàm SBoxes nén 48 bít lại còn 32 bít Hàm P-box là một hoán vị 32 bít Mô tả của các hàm trên là như sau:

 Expand: đánh số các bít của Ri-1 theo thứ tự từ trái sang phải là 0, 1, 2, …,

31

Hàm Expand thực hiện vừa hoán vị vừa mở rộng 32 bít thành 48 bít theo quy tắc:

 S-boxes:

Trang 13

Hàm S-boxes của DES biến đổi một số 48 bít thành một số 32 bít Tuy nhiên, nếu chỉ lập một bảng tra cứu như ở TinyDES thì bảng này phải có 2^16

dòng và 2^32 cột, dẫn đến số phần tử của bảng rất lớn Để giảm kích thước của bảng tra cứu, người ta chia hàm S-boxes thành 8 hàm S-box con, mỗi hàm biến đổi số 6 bít thành số 4 bít

Hàm S-box đầu tiên, hộp S có nội dung như sau:

Chi tiết các hộp còn lại được trình bày trong Phụ lục 1 Có thể thấy, mỗi hàm S-box con là một phép thay thế Substitution Các hàm S-box con không khả nghịch,

do đó hàm S-boxes cũng không khả nghịch Sự phức tạp này của S-boxes là yếu tốchính làm cho DES có độ an toàn cao

 P-box: hàm P-box cũng thực hiện hoán vị 32 bít đầu vào theo quy tắc:

Trang 14

2.2.5 Thuật toán sinh khóa con của DES

Khóa K 64 bít ban đầu được rút trích và hoán vị thành một khóa 56 bít (tức chỉ sửdụng 56 bít) theo quy tắc:

Khóa 56 bít này được chia thành 2 nửa trái phải KL0 và KR0 , mỗi nửa có kích thước 28 bít Tại vòng thứ i (i = 1, 2, 3,…,16), KLi-1 và KRi-1 được dịch vòng trái

ri bít để có được KLi và KRi, với ri được định nghĩa:

Cuối cùng khóa Ki của mỗi vòng được tạo ra bằng cách hoán vị và nén 56 bít của KLi

và KRi thành 48 bít theo quy tắc:

2.2.6 Hiệu ứng lan truyền

Một tính chất quan trọng cần thiết của mọi thuật toán mã hóa là chỉ cần một thay đổi

Trang 15

nhỏ trong bản rõ hay trong khóa sẽ dẫn đến thay đổi lớn trong bản mã Cụ thể, chỉcần thay đổi một bít trong bản rõ hay khóa thì dẫn đến sự thay đổi của nhiều bít bản

mã Tính chất này được gọi là hiệu ứng lan truyền Nhờ có tính chất này mà ngườiphá mã không thể giới hạn miền tìm kiếm của bản rõ hay của khóa (dù phá mãtheo known-plaintext hay chosen-plaintext) nên phải thực hiện vét cạn khóa

DES là một phương pháp mã hóa có hiệu ứng lan truyền này Xét hai bản rõ sau (64 bít):

P1: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000P2: 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000Hai bản rõ trên được mã hóa bằng DES với khóa:

2.2.7 Độ an toàn của DES

Ta hãy xem xét tính an toàn của DES trước một vài phương pháp tấn công phá mã

 Tấn công vét cạn khóa (Brute Force Attack):

Vì khóa của mã DES có chiều dài là 56 bít nên để tiến hành brute-force attack,

cần kiểm tra 2^56 khóa khác nhau Hiện nay với những thiết bị phổ dụng, thời gian gian để thử khóa là rất lớn nên việc phá mã là không khả thi (xem bảng) Tuy nhiên

Trang 16

vào năm 1998, tổ chức Electronic Frontier Foundation (EFF) thông báo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy song song, trị giá khoảng 250.000$ Thời gian thử khóa là 3 ngày Hiện nay mã DES vẫn còn được sử dụng trong thương mại, tuy nhiên người ta đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256 bít) như TripleDES hoặc AES

 Phá mã DES theo phương pháp vi sai (differential cryptanalysis):

Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai Phương

pháp vi sai tìm khóa ít tốn thời gian hơn brute-force Tuy nhiên phương pháp phá mã này lại đòi hỏi phải có 2^47 cặp bản rõ - bản mã được lựa chọn (chosen-plaintext) Vìvậy phương pháp này là bất khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force

 Phá mã DES theo phương pháp thử tuyến tính (linear cryptanalysis)

Năm 1997 Matsui đưa ra phương pháp phá mã tuyến tính Trong phương pháp

này, cần phải biết trước 2^43 cặp bản rõ-bản mã (known-plaintext) Tuy nhiên 2^43cũng là một con số lớn nên phá mã tuyến tính cũng không phải là một phương phápkhả thi

Trang 17

thông tin luân chuyển trên khắp thế giới là rất lớn Việc thiết lập một kênh antoàn như vậy sẽ tốn kém về mặt chi phí và chậm trễ về mặt thời gian

 Tính bí mật của khóa: không có cơ sở quy trách nhiệm nếu khóa bị tiết lộ Vàonăm 1976 Whitfield Diffie và Martin Hellman đã tìm ra một phương pháp mãhóa khác mà có thể giải quyết được hai vấn đề trên, đó là mã hóa khóa côngkhai (public key cryptography) hay còn gọi là mã hóa bất đối xứng (asymetriccryptography) Đây có thể xem là một bước đột phá quan trọng nhất trong lĩnhvực mã hóa

Có nhiều phương pháp mã hóa thuộc loại mã hóa khóa công khai Đó là các phươngpháp Knapsack, RSA, Elgaman, và phương pháp đường cong elliptic ECC… Mỗiphương pháp có cách thức ứng dụng hàm một chiều khác nhau Bài thu hoạch này chỉtập trung vào tìm hiểu phương pháp RSA

2.3.1 Tống quan RSA

Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật(hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa vàgiải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để mãhóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằngkhóa bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ cóngười biết khóa cá nhân (bí mật) mới có thể giải mã được

Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai như sau: Bob muốn gửicho Alice một thông tin mật mà Bob muốn duy nhất Alice có thể đọc được Để làmđược điều này, Alice gửi cho Bob một chiếc hộp có khóa đã mở sẵn và giữ lại chìakhóa Bob nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình thường và khóa lại(như loại khoá thông thường chỉ cần sập chốt lại, sau khi sập chốt khóa ngay cả Bobcũng không thể mở lại được-không đọc lại hay sửa thông tin trong thư được nữa) Sau

đó Bob gửi chiếc hộp lại cho Alice Alice mở hộp với chìa khóa của mình và đọc

Ngày đăng: 23/05/2015, 10:16

HÌNH ẢNH LIÊN QUAN

Sơ đồ  mã DES trên gồm ba phần, phần thứ  nhất là các hoán vị  khởi tạo và hoán vị kết thúc - Tiểu luận môn toán học cho khoa học máy tính MÃ HÓA TRONG TIN HỌC  LÝ THUYẾT VÀ ỨNG DỤNG
m ã DES trên gồm ba phần, phần thứ nhất là các hoán vị khởi tạo và hoán vị kết thúc (Trang 10)
Hình sau minh họa một vòng Feistel của DES: - Tiểu luận môn toán học cho khoa học máy tính MÃ HÓA TRONG TIN HỌC  LÝ THUYẾT VÀ ỨNG DỤNG
Hình sau minh họa một vòng Feistel của DES: (Trang 11)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w