Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.68 MB, 31 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>Tôi xin chân thFnh cảm ơn Thầy TS Bùi Duy Anh đã tận tình giảngdạy trong suốt quá trình hXc vF hướng dẫn em hoFn thFnh bFi báo cáonFy. Nếu khơng có những nỗ lục hoFn thiện bFi giảng cũng như chỉ dẫnđầy tâm huyết của Thầy thì bFi báo cáo nFy khó lịng hoFn thiện được.</b>
<b>Nếu bFi báo cáo có những chi tiết thiếu xót khơng nghiêm trXng,mong Thầy thơng cảm bỏ qua.</b>
<b>Tôi xin cám ơn.</b>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Tơi xin cam đoan đây là sản phẩm đồ án của riêng chúng tôi và được sự hướng dẫn của Thầy TS Bùi Duy Anh. 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ức nà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ó ghi rõ 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ích nguồn gốc.
<b>Nếu phát hiện có bất kỳ sự gian lận nFo chúng tôi xin hoFn toFn chịutrách nhiệm về nội dung đồ án của mình. Trường đại học Tơn Đức Thắng không</b>
liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra trong quá
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Mục đích chủ đề: Khám phá các ứng dụng thực tế của Cæsar cipher trong lịch sử và hiện tại. Xem xét cách mà thuật tốn này có thể được áp dụng để bảo vệ thơng tin trong các tình huống khác nhau.
Kết quả thực hiện: Thấy rõ được các ứng dụng thực tế của Cæsar cipher trong lịch sử và hiện tại. Thiết kế và phát triển một ứng dụng web cho phép người dùng mã hóa và giải mã các tin nhắn bằng caesar cipher một cách dễ dàng và nhanh chóng. Làm rõ được cách mà thuật tốn này có thể được áp dụng để bảo vệ thơng tin trong các tình huống khác nhau.
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">1.2 Xem xét cách mà thuật tốn này có thể được áp dụng để bảo vệ thông tin trong các tình huống khác nhau...6
CHƯƠNG 2: THIẾT KẾ DEMO...7
2.1 Sơ đồ thiết kế demo...7
2.1.1 Sơ đồ use case tổng quan của hệ thống...7
2.1.2 Các use case hệ thống...8
2.1.2.1 Use case Encrypt...8
2.1.2.2 Use case Decrypt...10
2.1.3 Sơ đồ tuần tự (Sequence diagram)...12
2.1.3.1 Use case Encrypt...12
2.1.3.2 Use case Decrypt...13
2.2 Source code demo...13
CHƯƠNG 3: CHƯƠNG TRÌNH DEMO...18
3.1 Hướng dẫn sử dụng chương trình:...18
3.1.1 Để mã hoá (Encrypt) chuỗi được nhập...18
3.1.2 Để giải mã (Decrypt) chuỗi bị mã hố...19
3.2 Kết quả của chương trình demo...19
3.2.1 Tính năng mã hố (Encrypt)...19
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">3.2.1 Tính năng giải mã (Decrypt)...20
CHƯƠNG 4: KẾT LUẬN...22
TÀI LIỆU THAM KHẢO...23
PHỤ LỤC...24
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>CÁC KÝ HIỆU</b>
<b>CÁC CHỮ VIẾT TẮT </b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Hình 2.1: Sơ đồ use case tổng quan của hệ thống...7
Hình 2.2 Use case Encrypt...8
Hình 2.3 Use case Decrypt...10
Hình 2.4 Sơ đồ tuần tự của use case Encrypt...12
Hình 2.5 Sơ đồ tuần tự của use case Decrypt...13
Hình 2.6 Thẻ head của chương trình bao gồm các thư viện bổ trợ và thẻ liên quan 14 Hình 2.7 Thẻ body của chương trình chứa phần front-end...15
Hình 2.8 Thẻ body của chương trình chứa 2 phương thức caesarCipher() và decryptCaesarCipher() để thực thi các tính năng của chương trình...16
Hình 2.9 Phần Script để tạo hiệu ứng Texting ở tiêu đề của trang web...17
Hình 3.1 Cách mã hố chuỗi...18
Hình 3.2 Cách giải mã chuỗi...19
Hình 3.3 Kết quả demo tính năng mã hố (Encrypt) 1 đoạn văn...20
Hình 3.4 Kết quả demo tính năng giải mã (Decrypt) 1 đoạn văn...21
<b>DANH MỤC BẢNG</b> Bảng 2.1 Đặc tả use case Encrypt...9
Bảng 2.2 Đặc tả use case Decrypt...11
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">Mã Caesar (Caesar cipher) là một phương pháp mã hóa đơn giản, trong đó mỗi ký tự trong văn bản gốc được thay thế bằng một ký tự khác trong bảng chữ cái một khoảng cách cố định. Phương pháp này được đặt tên theo Julius Caesar, nhà lãnh đạo quân sự và chính trị La Mã thời cổ đại, người được cho là đã sử dụng phương pháp này để bảo mật các thông điệp quan trọng.
<b>1.1 Khám phá các ứng dụng thực tế của Cæsar cipher trong lịch sử vFhiện tại</b>
- Trong lịch sử:
<i> Bảo mật thông tin trong quân sự: Julius Caesar được cho là đã sử</i>
dụng phương pháp này để mã hóa các thơng điệp trong quân sự và đảm bảo rằng chỉ những người được biết mã mới có thể đọc được nội dung.
<i> Ghi chép bí mật: Caesar cipher cũng được sử dụng trong ghi chép và</i>
tài liệu bí mật. Nó giúp đảm bảo rằng thơng tin quan trọng chỉ có thể được hiểu bởi những người có kiến thức về cách giải mã.
- Hiện tại:
<i> Giáo dục và học tập: Caesar cipher vẫn được sử dụng trong giáo dục</i>
để giới thiệu các khái niệm cơ bản về mã hóa và giải mã. Nó giúp học sinh hiểu cơ chế đơn giản của mã hóa thay vì sử dụng các phương pháp phức tạp hơn.
<i> Trò chơi và giải đố: Caesar cipher được sử dụng trong các trị chơi và</i>
giải đố trí tuệ. Người chơi phải giải mã các thông điệp ẩn được mã hóa bằng phương pháp này để hồn thành nhiệm vụ.
<i> Biểu tượng văn hóa: Caesar cipher đã trở thành biểu tượng văn hóa và</i>
xuất hiện trong nhiều tác phẩm nghệ thuật, phim ảnh, và tiểu thuyết.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Nó thể hiện sự gắn kết với quá khứ và đôi khi được sử dụng như một yếu tố thú vị trong việc giới thiệu câu đố cho người xem/đọc giải mã.
<b>1.2 Xem xét cách mF thuật toán nFy có thể được áp dụng để bảo vệ thơngtin trong các tình huống khác nhau</b>
Trong các tình huống thực tế:
<i> Mục đích giáo dục và tập trung trẻ em vào tư duy logic: Caesar cipher</i>
có thể được sử dụng trong giáo dục như một công cụ giảng dạy để giới thiệu các khái niệm cơ bản về mã hóa và giải mã. Điều này giúp trẻ em phát triển tư duy logic và kỹ năng tư duy thông qua việc giải các câu đố giải mã.
<i> Tin nhắn giữa bạn bè, gia đình: Nếu bạn muốn tạo một thơng điệp thú</i>
vị hoặc một trò chơi giải mã đơn giản trong các cuộc trò chuyện cá nhân với bạn bè hoặc gia đình, bạn có thể sử dụng Caesar cipher. Tuy nhiên, hãy nhớ rằng thơng tin mã hóa bằng Caesar cipher khơng được coi là an tồn và khơng nên được sử dụng để truyền các thông tin nhạy cảm.
<i> Giải đố và trị chơi: Caesar cipher có thể được sử dụng trong các trị</i>
chơi giải đố, game trí tuệ và ứng dụng giải trí. Người chơi phải giải mã các thơng điệp được mã hóa bằng phương pháp này để tiến triển trong trị chơi.
<i> Tạo tính năng giấu thông tin trong ứng dụng: Trong một số ứng dụng</i>
hoặc trị chơi, Caesar cipher có thể được sử dụng để tạo tính năng giấu thơng tin hoặc gợi ý cho người dùng. Điều này có thể thêm tính thú vị và tạo điểm nhấn độc đáo trong sản phẩm.
<b>*Lưu ý: Caesar cipher là một phương pháp mã hóa đơn giản, và trong thời</b>
đại hiện đại, nó khơng được sử dụng để bảo vệ thơng tin quan trọng vì tính chất dễ dàng bị giải mã (brute force attack).
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">tính năng của hệ thống,sơ đồ tuần tự các tính năng của hệ thống và mã nguồn của chương trình mã hố 1 chuỗi text bằng thuật tốn Caesar Cipher.
<b>2.1 Sơ đồ thiết kế demo</b>
<i><b>2.1.1 Sơ đồ use case tổng quan của hệ thống</b></i>
<i>Hình 2.1: Sơ đồ use case tổng quan của hệ thống</i>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><i><b>2.1.2 Các use case hệ thống</b></i>
<i>2.1.2.1 Use case Encrypt</i>
<i>Hình 2.2 Use case Encrypt</i>
<b>USE CASE NAME</b> Encrypt.
<b>SCENARIO</b> Tại trang chủ của hệ thống mã hố Caesar.
<b>TRIGGERINGEVENT</b>
Lấy chuỗi Input và số Shift, sau đó mã hoá chuỗi Input và xuất ra chuỗi Output.
<b>BRIEFDESCRIPTION</b>
Người sử dụng để mã hoá chuỗi họ nhập vào.
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">Input và Shift để người dùng điền và hiện kết quả khi người dùng hoàn thành việc điền thông tin.
2. Người dùng click vào nút
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i>2.1.2.2 Use case Decrypt</i>
<i>Hình 2.3 Use case Decrypt</i>
<b>USE CASE NAME</b> Decrypt.
<b>SCENARIO</b> Tại trang chủ của hệ thống mã hố Caesar.
<b>TRIGGERINGEVENT</b>
Lấy chuỗi Input và số Shift, sau đó mã hoá chuỗi Input và xuất ra chuỗi Output.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">Input và Shift để người dùng điền và hiện kết quả khi người dùng hồn thành việc điền thơng tin.
2. Người dùng click vào nút
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><i><b>2.1.3 Sơ đồ tuần tự (Sequence diagram)</b></i>
<i>2.1.3.1 Use case Encrypt</i>
<i>Hình 2.4 Sơ đồ tuần tự của use case Encrypt</i>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><i>2.1.3.2 Use case Decrypt</i>
<i>Hình 2.5 Sơ đồ tuần tự của use case Decrypt</i>
<b>2.2 Source code demo</b>
Dưới đây là phần source code của chương trình demo mã hố 1 chuỗi text được nhập vào bằng thuật toán Caesar Cipher, đây là 1 ứng dụng web được viết bằng ngôn ngữ HTML, CSS (Bootsrap 5) và JavaScript.
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">Source code có sự hỗ trợ của các thư viện sau:
Bootsrap 5.0.2 được nhúng online từ CDN của Jsdelivr. Ngồi ra cịn có một vài tài nguyên bổ trợ chứa trong thư mục Assets:
Logo favicon của trang web.
Script hackerText.js được viết bằng JavaSript để thực hiện hiệu ứng ở tiêu đề trang web.
<i>Hình 2.6 Thẻ head của chương trình bao gồm các thư viện bổ trợ và thẻ liên quan</i>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22"><i>Hình 2.7 Thẻ body của chương trình chứa phần front-end</i>
Các phương thức có trong source code:
o Phương thức <b>caesarCipher()</b>: được sử dụng để mã hoá chuỗi (string) nhập vào ở ô Input, phương thức này sẽ duyệt qua từng kí tự c có trong chuỗi được đổi qua mã ASCII, sau đó dịch chuyển n bước nhảy (số bước nhảy này được lấy từ ô Shift) theo cơng thức:
<i>E<sub>n</sub></i>(<i>x</i>)=
o Phương thức <b>decryptCaesarCipher()</b>: được sử dụng để giải mã chuỗi (string) nhập vào ở ô Input, phương thức này sẽ duyệt qua từng kí tự c có trong chuỗi được đổi qua mã ASCII, sau đó dịch chuyển n bước nhảy (số bước nhảy này được lấy từ ô Shift) theo công thức:
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23"><i>D<sub>n</sub></i>(<i>x</i>)=
<i>Hình 2.8 Thẻ body của chương trình chứa 2 phương thức caesarCipher() vàdecryptCaesarCipher() để thực thi các tính năng của chương trình</i>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24"><i>Hình 2.9 Phần Script để tạo hiệu ứng Texting ở tiêu đề của trang web</i>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">Để minh hoạ cụ thể cho thuật toán mã hoá Caesar Cipher, dưới đây là phần demo của chương trình mã hố 1 chuỗi text được nhập vào bằng thuật toán mã hoá Caesar Cipher, chương này bao gồm 2 phần: hướng sử dụng chương trình và kết quả demo.
<b>3.1 Hướng dẫn sử dụng chương trình:</b>
<i><b>3.1.1 Để mã hố (Encrypt) chuỗi được nhập</b></i>
Cách thực hiện:
1. Nhập chuỗi ban đầu vào ô Input.
2. Chọn số Shift mà bạn muốn dịch chuyển, ở đây để mặc định là 3. 3. Ấn nút “Encrypt”
4. Chuỗi được mã hố sẽ xuất hiện ở ơ Output.
<i>Hình 3.1 Cách mã hoá chuỗi</i>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><i><b>3.1.2 Để giải mã (Decrypt) chuỗi bị mã hoá</b></i>
Cách thực hiện:
1. Nhập chuỗi bị mã hố vào ơ Input.
2. Chọn số Shift mà bạn muốn dịch chuyển, ở đây để mặc định là 3. 3. Ấn nút “Decrypt”
4. Chuỗi được giải mã sẽ xuất hiện ở ơ Output.
<i>Hình 3.2 Cách giải mã chuỗi</i>
<b>3.2 Kết quả của chương trình demo</b>
<i><b>3.2.1 Tính năng mã hố (Encrypt)</b></i>
Ta sẽ nhập lần lượt các thơng số như Hình 3.3
<b> Input: A Caesar cipher is a simple and ancient method of encrypting text by</b>
shifting each letter of the alphabet by a certain number of positions. For example, if the shift is 3, then A becomes D, B becomes E, C becomes F, and
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">so on. The Caesar cipher is also known as the shift cipher or the substitution cipher. It is one of the easiest types of ciphers to break, since there are only 26 possible keys to try. However, it can still be used for fun or educational purposes. You can use the web page in your browser to encrypt or decrypt any message using the Caesar cipher. Just enter your input, choose a shift value, and click on the button. You will see the output below.
<b> Shift: 3</b>
<i>Hình 3.3 Kết quả demo tính năng mã hố (Encrypt) 1 đoạn văn</i>
<i><b>3.2.1 Tính năng giải mã (Decrypt)</b></i>
Ta sẽ nhập lần lượt các thơng số như Hình 3.4
<b> Input: D Fdhvdu flskhu lv d vlpsoh dqg dqflhqw phwkrg ri hqfubswlqj</b>
whaw eb vkliwlqj hdfk ohwwhu ri wkh doskdehw eb d fhuwdlq qxpehu ri srvlwlrqv. Iru hadpsoh, li wkh vkliw lv 3, wkhq D ehfrphv G, E ehfrphv H, F ehfrphv I, dqg vr rq. Wkh Fdhvdu flskhu lv dovr nqrzq dv wkh vkliw flskhu ru wkh vxevwlwxwlrq flskhu. Lw lv rqh ri wkh hdvlhvw wbshv ri flskhuv wr euhdn, vlqfh wkhuh duh rqob 26 srvvleoh nhbv wr wub. Krzhyhu, lw fdq
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">vwloo eh xvhg iru ixq ru hgxfdwlrqdo sxusrvhv. Brx fdq xvh wkh zhe sdjh lq brxu eurzvhu wr hqfubsw ru ghfubsw dqb phvvdjh xvlqj wkh Fdhvdu flskhu. Mxvw hqwhu brxu lqsxw, fkrrvh d vkliw ydoxh, dqg folfn rq wkh exwwrq. Brx zloo vhh wkh rxwsxw ehorz.
<b> Shift: 3</b>
<i>Hình 3.4 Kết quả demo tính năng giải mã (Decrypt) 1 đoạn văn</i>
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">Sau bài báo cáo nghiên cứu đề tài: ứng dụng của caesar cipher trong thực tế, đây là một dự án thú vị và hữu ích. Tơi đã đạt được nhiều kết quả quan trọng như:
Xác định các lĩnh vực và ngành nghề có thể áp dụng caesar cipher để bảo mật thơng tin, ví dụ như giao tiếp qn sự, truyền thơng bí mật, mã hóa tài liệu nhạy cảm, ...
So sánh hiệu quả và an toàn của caesar cipher với các phương pháp mã hóa khác, như vigenere cipher, substitution cipher, transposition cipher,...
Thiết kế và phát triển một ứng dụng web cho phép người dùng mã hóa và giải mã các tin nhắn bằng caesar cipher một cách dễ dàng và nhanh chóng.
Qua nghiên cứu đề tài này, tôi đã học được nhiều bài học quý giá như: Caesar cipher là một phương pháp mã hóa đơn giản nhưng hiệu quả, có
thể áp dụng trong nhiều trường hợp thực tế.
Caesar cipher cũng có những hạn chế và điểm yếu, ví dụ như dễ bị phá mã nếu kẻ tấn công biết được số lượng ký tự bị dịch chuyển hoặc có được một phần của văn bản gốc.
Caesar cipher có thể được cải tiến và kết hợp với các phương pháp mã hóa khác để tăng độ bảo mật và khó phá mã hơn.
Tơi rất tự hào và hài lịng với những gì đã làm được trong nghiên cứu đề tài này. Tôi mong muốn tiếp tục nghiên cứu và phát triển caesar cipher trong tương lai.
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">Caesar, J. (2023, August 17). <i>Caesar Cipher</i>. Retrieved from McGill School of Computer Science :
Hahn, E. (2016, December 8). <i>Caesar Shift in JavaScript</i>. Retrieved from Github Gist:
Karleigh Moore, Satyabrata Dash, Eli Ross. (2023, August 17). <i>Caesar Cipher</i>. Retrieved from Brilliant Math & Science Wiki: Kumar, A. (2023, May 11). <i>Caesar Cipher in Cryptography</i>. Retrieved from
GeeksForGeeks: class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">