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

báo cáo giữa kì môn xác suất và thống kê ứng dụng cho công nghệ thông tin

21 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

CHƯƠNG 1 - GIỚI THIỆU1.1 Mã hóa:- Mã hoá là quá trình biến đổi các thông tin, bằng cách sử dụng một phương pháp toán học và một khoá bí mật để sinh ra một chuỗi các kí tự khó hiểu.. Hiện

Trang 1

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO GIỮA KÌ

MÔN XÁC SUẤT VÀ THỐNG KÊ ỨNG DỤNG CHOCÔNG NGHỆ THÔNG TIN

Người hướng dẫn: ThS PHAN HOÀNG PHÚC VINH Người thực hiện: ĐỖ ANH KHOA – 52100968

Lớp: 21050401Khoá: 25

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2023

Trang 2

LỜI CẢM ƠN

Em xin cảm ơn thầy Vinh rất nhiều vì đã cống hiến hết sức mình cho công cuộcdạy học ở trường đại học Tôn Đức Thắng Nhờ có sự hướng dẫn chi tiết và tận tình của thầy mà em có thể hoàn thành được bài báo cáo giữa kì, em chân thànhcảm ơn thầy rất nhiều.

Trang 3

BÁO CÁO ĐƯỢC HOÀN THÀNHTẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của riêng tôi / chúng tôi vàđược sự hướng dẫn của ThS Phan Hoàng Phúc Vinh; Các nội dung nghiên cứu,kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thứcnào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích,nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghirõ trong phần tài liệu tham khảo.

Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng nhưsố liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thíchnguồn gốc.

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu tráchnhiệm về nội dung báo cáo của mình Trường đại học Tôn Đức Thắng không

liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trìnhthực hiện (nếu có).

TP Hồ Chí Minh, ngày 02 tháng 04 năm 2023 Tác giả

(ký tên và ghi rõ họ tên)

Đỗ Anh Khoa

Trang 4

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊNPhần xác nhận của GV hướng dẫn

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Phần đánh giá của GV chấm bài

Tp Hồ Chí Minh, ngày tháng năm (kí và ghi họ tên)

Trang 5

TÓM TẮT

Bài báo cáo này đầu tiên khái quát các khái niệm về mã hóa và giải mã, sau đótìm hiểu sâu vào 2 thuật toán Đầu tiên là thuật toán mã hóa MonoalphabeticSubstitution Cipher dùng để mã hóa 1 chuỗi kí tự thành các mã tương ứng.Thuật toán thứ 2 là thuật toán phân tích tần suất Frequency Analysis Đây làthuật toán giải mã, nó cho biết tần suất xuất hiện của kí tự đó trong thực tế Sauđó có code minh họa bằng python cho từng thuật toán

Trang 6

MỤC LỤC

LỜI CẢM ƠN IIPHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN IIITÓM TẮT IV

4.1.4 Kết quả chạy code: 11

4.2 Code demo Frequency Analysis: 12

4.2.1 Ý tưởng xây dựng code 12

4.2.2 Hướng dẫn sử dụng code 12

4.2.3 Kết quả chạy code 13

TÀI LIỆU THAM KHẢO 15

Trang 7

DANH MỤC CHỮ VIẾT TẮT

RSA : Rivest-Shamir-Adleman

Trang 8

DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊDANH MỤC HÌNH

Hình 1.1 Quy trình mã hoá và giải mã 4

Hình 1.2.1: Mô hình mã hóa đối xứng 4

Hình 1.2.2 Mô hình mã hóa không đối xứng 5

Hình 3.3: Biểu đồ tần suất các chữ cái tiếng Anh 9

Hình 4.2.2 Hàm decryption 13

Hình 4.2.2 Input chương trình và gọi hàm Decryption 13

Hình 4.2.3a Giải mã khoảng 50 từ 14

Hình 4.2.3b Giải mã khoảng 100 từ 14

Hình 4.2.3c Giải mã khoảng 1000 từ 14

Trang 9

CHƯƠNG 1 - GIỚI THIỆU1.1 Mã hóa:

- Mã hoá là quá trình biến đổi các thông tin, bằng cách sử dụng một phương pháp toán học và một khoá bí mật để sinh ra một chuỗi các kí tự khó hiểu Thực chất là việc che dấu các thông báo, chỉ người gửi và người nhận có thể đọc nó Hiện nay, mã hóa là một trong những phương pháp bảo mật dữ liệu phổbiến và hiệu quả nhất được sử dụng bởi các tổ chức, doanh nghiệp Có hai loại mã hóa chính: mã hóa đối xứng và mã hóa bất đối xứng.

Hình 1.1 Quy trình mã hoá và giải mã Nguồn:ve-ma-hoa-thong-tin-va-giai-thuat-ma-hoa-khoa-bat-doi-xung

https://viblo.asia/p/co-ban-1.1.1 Mã hóa đối xứng:

Hình 1.2.1: Mô hình mã hóa đối xứngNguồn: https://locker.io/blog/ma-hoa-du-lieu-2

Trang 10

- Mã hóa đối xứng là loại mã hóa trong đó chỉ có một khóa được sử dụng để vừa mã hóa vừa giải mã thông điệp Các thực thể giao tiếp thông qua mã hóa đối xứng phải trao đổi khóa để nó có thể được sử dụng trong quá trình giải mã Đây là hình thức mã hóa được sử dụng phổ biến hiện nay.

1.2 Giải mã:

- Giải mã là phương pháp đưa thông tin ở dạng mã hóa về dạng thông tin ban đầu, đây là quy trình ngược của mã hóa.

Trang 11

CHƯƠNG 2 - MẬT MÃ THAY THẾ ĐƠN BẢNG2.1 Vấn đề:

- Hiện nay trong thời đại công nghệ 4.0, việc bảo mật và an toàn thông tin là vô cùng quan trọng Thế nên việc mã hóa dữ liệu là vô cùng cần thiết trong tất cả mọi lĩnh vực.

- Lợi ích của việc mã hóa:

+ Mã hóa đảm bảo rằng không ai có thể đọc thông tin liên lạc hoặc dữ liệu ở chế độ nghỉ ngoại trừ người nhận hoặc chủ sở hữu dữ liệu hợp pháp Điều này giúp ngăn những kẻ tấn công, mạng quảng cáo, nhà cung cấp dịch vụ Internet và trong một số trường hợp, chính phủ chặn và đọc dữ liệu nhạy cảm.+ Mã hóa còn giúp ngăn vi phạm dữ liệu, cho dù dữ liệu đang chuyển tiếp hay ở trạng thái nghỉ Nếu một thiết bị của công ty bị mất hoặc bị đánh cắp và ổ cứng của nó được mã hóa đúng cách, dữ liệu trên thiết bị đó sẽ vẫn được bảo mật Tương tự, thông tin liên lạc được mã hóa cho phép các bên liên lạc trao đổi dữ liệu nhạy cảm mà không làm rò rỉ dữ liệu.

- Một trong những phương pháp mã hóa hiệu quả và đã được sử dụng từ rất lâu đó chính là Monoalphabetic Substitution Cipher.

2.2 Thuật toán:

- Mật mã thay thế đơn bảng(Monoalphabetic Substitution Cipher) là một mật mã mà trong đó mỗi kí tự trong văn bản gốc sẽ được thay thế bằng một kí tự bản mã tương ứng, trong đó thường sử dụng bảng chữ cái tiếng Anh Quá trình giải mã được hành ngược lại.

- Bảng chữ cái tiếng anh gồm 26 chữ cái, ta có thể tạo ra tối đa là 26! hoán vị của 26 chữ cái đó để làm khóa cho hệ mã hóa một bảng thế Việc liệt kê và kiểm tra toàn bộ 26! khóa là không khả thi với trình độ khoa học kỹ thuật của

Trang 12

thời điểm phát sử dụng hệ mã này và trong thời điểm hiện tại vẫn khó thực hiện

2.3 Ví dụ:

Cho bảng mã hóa:

Plain text A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Cipher text Z P B Y J R S K F L X Q N W V D H M G U T O I A E C

Văn bản gốc: HELLO EVERYONE !

Văn bản sau khi được mã hóa theo bảng trên: KJQQV JOJMEVWJ !

2.4 Nhận xét:

- Hiện nay thì có rất nhiều thuật toán mã hóa ra đời và MonoalphabeticSubstitution Cipher là một phương pháp mã hóa cổ điển được sử dụng từ rấtlâu và được sử dụng nhiều.

- Phương pháp này có ưu điểm: + Thuật toán dễ hiểu, dễ sử dụng.

+ Khó bị giải mã bởi chúng ta có thể tạo ra tối đa 26! bảng mã thế nên việc vétcạn từng trường hợp là rất khó Tuy nhiên với sự phát triển của khoa học côngnghệ, chúng ta có thể dùng máy móc để làm cho thời gian giải mã giảm xuống.- Đánh giá của em: Em cảm thấy thuật toán này rất dễ tiếp cận, ai cũng có thểtạo ra cho mình một bảng mã riêng để mã hóa Thế nhưng em nghĩ thuật toánnày rất dễ để bị giải mã bởi tác động của những yếu tố bên ngoài Ví dụ trongcông ty đó sử dụng 1 bảng mã để mã hóa thông tin, nhưng vì lí do nào đó nhânviên của họ nghỉ việc và tuồng bảng mã ra ngoài Điều đó sẽ gây rò rỉ thông tinvà làm ảnh hưởng không nhỏ tới công ty Cho nên em nghĩ là thuật toán khôngchỉ khó phá mà phải đi kèm với sự bí mật và trung thành.

Trang 13

CHƯƠNG 3 - PHÂN TÍCH TẦN SỐ

3.1 Vấn đề:

- Phân tích mật mã là ngành học nghiên cứu các phương thức để thu được ý nghĩa của thông tin đã được mã hóa Điều này liên quan đến việc tìm khóa bí mật Trong ngôn ngữ không kĩ thuật, đây là việc codebreaking hoặc là bẻ khóa code, mặc dù những cụm từ này cũng có một ý nghĩa kỹ thuật đặc biệt.- Một trong những phương pháp phân tích mật mã phố biến đó chính là Frequency Analysis

3.2 Thuật toán:

- Frequency Analysis phương pháp thường dùng để phân tích mật mã cổ điển, bằng cách tính tần suất các ký tự hoặc nhóm ký tự trong bản mã và so sánh với tần suất thực tế trong các văn bản thường.

- Phương pháp phân tích tần suất được biết đến đầu tiên là trong cuốn Sổ tay

phương pháp giải mã của nhà thông thái Ả-rập Al-Kindi vào thế kỷ thứ 9 Ông

nhận ra rằng trong kinh Koran, mỗi chữ cái Ả rập đều có một tần suất xác định,điều tương tự cũng xảy ra trong các ngôn ngữ khác.

- Nguyên lý của phân tích tần suất dựa trên một thực tế là trong mỗi ngôn ngữ, mỗi ký tự trong bảng chữ cái có một tần suất xuất hiện nhất định Tần suất này càng rõ ràng khi văn bản phân tích càng dài Ví dụ trong tiếng Anh, E, T, A và O là những chữ cái xuất hiện nhiều nhất, trong khi Z, Q và X lại rất hiếm hoi Tương tự, ta có TH, ER, ON, và AN là các nhóm ký tự phổ thông nhất, còn SS,EE, TT, và FF là các bộ đôi ký tự lặp xuất hiện nhiều nhất.

3.3 Ví dụ:

Trang 14

Kí tự Tầnsuất(%)

Kí tự Tầnsuất(%)

Kí tự Tầnsuất(%)

Kí tự Tầnsuất(%)

Bảng dữ liệu tần suất các chữ cái tiếng Anh

Hình 3.3: Biểu đồ tần suất các chữ cái tiếng AnhNguồn: Wikipedia Phân tích tần suất

3.4 Nhận xét:

- Frequency Analysis là một phương pháp giúp giải mã các mật mã cổ điển Bằng việc so sánh tần suất xuất hiện các kí tự trong bản mã và ngoài thực tế thì chúng ta sẽ có thể đoán được hoặc giải được các mật mã.

Trang 15

- Đánh giá của em: Cá nhân em thì em thấy muốn giải mã một mật mã nào đó thì trước tiên mình phải có kiến thức vững về toán học để từ đó có thể tìm ra các quy luật logic của các đoạn mã hóa Việc kết hợp toán học với phương pháp Frequency Analysis sẽ giúp loại bỏ những giả thuyết không đúng và đưa ra được kết quả giải mã phù hợp.

Trang 16

CHƯƠNG 4 - THỰC NGHIỆM

4.1 Code demo Monoalphabetic Substitution Cipher:

4.1.1 Source code:

Đã được gửi chung với file word và file PDF, có tên là 52100968.py

4.1.2 Ý tưởng xây dựng code:

- Em code mã hóa và giải mã dựa trên lí thuyết mật mã bất đối xứng, mỗi

chữ cái sẽ có 1 khóa riêng.

- Đầu tiên em tạo 1 list character từ a-z, sau đó em tạo ra 1 biến key giống với list character, rồi em random shuffle biến key Từ đó em có được 2 cái list, 1 list là chữ cái theo thứ tự từ a-z, 1 list là chữ cái đã được trộn lại để tạo thành 1 cái bảng mã hóa và giải mã.

- Khi muốn mã hóa, em tìm cái index của từng kí tự trong chuỗi em nhập vào bằng cách tạo 1 vòng for trong chuỗi em nhập, sau đó em lấy ra index của từng kí tự, mà index đó là index trong list character Sau khi có index trong chuỗi listcharacter, em chỉ cần xuất ra chuỗi sau khi mã hóa bằng cách gọi value trong chuỗi key bằng index em có được ở trong list character, vì 2 chuỗi này có độ dài tương tự.

- Khi muốn giải mã thì em cũng làm y vậy, nhưng thay đổi lại các biến cho nó phù hợp

Lưu ý: Do em chạy random shuffle cho chuỗi key nên mỗi lần chạy chuỗi key

sẽ khác, nhưng em có xuất ra cho thầy dễ đọc và dễ dò ạ.

4.1.3 Hướng dẫn sử dụng code:

- Đầu tiên khi chạy code nó sẽ hiện ra chỗ nhập số 1 hoặc 2, 1 là chương trình mã hóa, 2 là giải mã Chỉ được nhập số thôi ạ do em để là int, nếu nhập số khác1 hoặc 2 thì sẽ in ra dòng “Bạn nhập sai số”.

- Sau khi chọn thì sẽ hiện ra thêm 1 cái input nữa để nhập chuỗi Nếu là chươngtrình mã hóa thì nhập 1 đoạn hay 1 vài từ có nghĩa Còn nếu là chương trình giải mã thì nên nhập theo cái bảng giải mã và mã hóa em đã in trên đầu code đểdễ theo dõi.

4.1.4 Kết quả chạy code:

Trang 17

* Với 10 từ:

- Kết quả chạy chương trình mã hóa:

- Kết quả chạy chương trình giải mã:

*Với 100 từ:

- Kết quả chạy chương trình mã hóa:

- Kết quả chạy chương trình giải mã:

*Với 1000 từ:

Trang 18

- Kết quả chạy chương trình mã hóa:

- Kết quả chạy chương trình giải mã:

4.2.1 Ý tưởng xây dựng code

Dùng phương pháp giải mã Caesar.

4.2.2 Hướng dẫn sử dụng code

• Khởi tạo hàm decryption

• Đầu vào gồm ciphertext (đoạn văn bản đã được mã hoá) kiểu string Đầura output (văn bản đã được giải mã) kiểu string

• T = "ETAOINSHRDLCUMWFGYPBVKJXQZ" là tần số các chữ cái tiếng anh được sử dụng sắp xếp theo giảm dần tần suất được sử dụng trong tiếng anh

Trang 19

Hình 4.2.2 Hàm decryption

Hình 4.2.2 Input chương trình và gọi hàm Decryption

4.2.3 Kết quả chạy code

Giải mã

• Với input khoảng 50 từ:

Trang 20

Hình 4.2.3a Giải mã khoảng 50 từ

• Với input khoảng 100 từ:

Hình 4.2.3b Giải mã khoảng 100 từ

• Với input khoảng 1000 từ:

Hình 4.2.3c Giải mã khoảng 1000 từ

Trang 21

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Vinh Phạm (2020), truy cập ngày 07/ 04/ 2023, Mã hóa thông tin – Cách hiểu đơn giản nhất dành cho kẻ ngoại đạo tìm hiểu về mã hóa

[2] Trương Linh (2023), truy cập ngày 08/ 04/ 2023, Mã hoá dữ liệu là gì? 4

Tiếng Anh

[3] Vinh Phạm (2020), truy cập ngày 07/ 04/ 2023, Mã hóa thông tin – Cách hiểu đơn giản nhất dành cho kẻ ngoại đạo tìm hiểu về mã hóa

[4] Trương Linh (2023), truy cập ngày 08/ 04/ 2023, Mã hoá dữ liệu là gì? 4

Ngày đăng: 09/05/2024, 16:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w