Xem xét cách mà thuật toá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ử
Trang 1BÁO CÁO CUỐI KỲ
NHẬP MÔN BẢO MẬT THÔNG TIN
ỨNG DỤNG CỦA CAESAR CIPHER
Trang 2BÁO CÁO CUỐI KỲ
NHẬP MÔN BẢO MẬT THÔNG TIN
ỨNG DỤNG CỦA CAESAR CIPHER
Trang 3LỜI CẢM ƠN
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.
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.
Tôi xin cám ơn.
Trang 4BÁ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 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.
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
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á
Trang 5PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN
Trang 6TÓM TẮT NỘI DÙNG BÁO CÁO BAO GỒM
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 toá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 toá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.
Trang 71.2 Xem xét cách mà thuật toá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ã hoá 19
3.2 Kết quả của chương trình demo 19
3.2.1 Tính năng mã hoá (Encrypt) 19
Trang 83.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
Trang 9DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT
CÁC KÝ HIỆU
CÁC CHỮ VIẾT TẮT
Trang 10DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ, ĐỒ THỊ DANH MỤC HÌNH
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ã hoá 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ã hoá (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
DANH MỤC BẢNG Bảng 2.1 Đặc tả use case Encrypt 9
Bảng 2.2 Đặc tả use case Decrypt 11
Trang 11CHƯƠNG 1: PHẦN LÝ THUYẾT
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.
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
- Trong lịch sử:
Bảo mật thông tin trong quân sự: Julius Caesar được cho là đã sử
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.
Ghi chép bí mật: Caesar cipher cũng được sử dụng trong ghi chép và
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:
Giáo dục và học tập: Caesar cipher vẫn được sử dụng trong giáo dục
để 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.
Trò chơi và giải đố: Caesar cipher được sử dụng trong các trò chơi và
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 để hoàn thành nhiệm vụ.
Biểu tượng văn hóa: Caesar cipher đã trở thành biểu tượng văn hóa và
xuất hiện trong nhiều tác phẩm nghệ thuật, phim ảnh, và tiểu thuyết.
Trang 12Nó 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ã.
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
Trong các tình huống thực tế:
Mục đích giáo dục và tập trung trẻ em vào tư duy logic: Caesar cipher
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ã.
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ú
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 toàn và không nên được sử dụng để truyền các thông tin nhạy cảm.
Giải đố và trò chơi: Caesar cipher có thể được sử dụng trong các trò
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.
Tạo tính năng giấu thông tin trong ứng dụng: Trong một số ứng dụng
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.
*Lưu ý: Caesar cipher là một phương pháp mã hóa đơn giản, và trong thời
đạ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).
Trang 14tí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ã hoá 1 chuỗi text bằng thuật toán Caesar Cipher.
2.1 Sơ đồ thiết kế demo
2.1.1 Sơ đồ use case tổng quan của hệ thống
Hình 2.1: Sơ đồ use case tổng quan của hệ thống
Trang 152.1.2 Các use case hệ thống
2.1.2.1 Use case Encrypt
Hình 2.2 Use case Encrypt
USE CASE NAME Encrypt.
SCENARIO Tại trang chủ của hệ thống mã hoá Caesar.
TRIGGERINGEVENT
Lấy chuỗi Input và số Shift, sau đó mã hoá chuỗi Input và xuất ra chuỗi Output.
BRIEFDESCRIPTION
Người sử dụng để mã hoá chuỗi họ nhập vào.
Trang 16Input 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
Trang 172.1.2.2 Use case Decrypt
Hình 2.3 Use case Decrypt
USE CASE NAME Decrypt.
SCENARIO Tại trang chủ của hệ thống mã hoá Caesar.
TRIGGERINGEVENT
Lấy chuỗi Input và số Shift, sau đó mã hoá chuỗi Input và xuất ra chuỗi Output.
Trang 18Input 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
Trang 192.1.3 Sơ đồ tuần tự (Sequence diagram)
2.1.3.1 Use case Encrypt
Hình 2.4 Sơ đồ tuần tự của use case Encrypt
Trang 202.1.3.2 Use case Decrypt
Hình 2.5 Sơ đồ tuần tự của use case Decrypt
2.2 Source code demo
Dưới đây là phần source code của chương trình demo mã hoá 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.
Trang 21Source 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 Ngoà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.
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
Trang 22Hình 2.7 Thẻ body của chương trình chứa phần front-end
Các phương thức có trong source code:
o Phương thức caesarCipher(): đượ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:
En(x)=[(c−65+ x)mod 26]+65 (2.1) Nếu kí tự nhập vào là chữ cái alphabet sẽ được dịch chuyển, còn kí tự nào không phải là chữ cái alphabet thì sẽ được giữ nguyên.
o Phương thức decryptCaesarCipher(): đượ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:
Trang 23Dn(x)=[(c−65−x+26)mod 26]+65 (2.2) Nếu kí tự nhập vào là chữ cái alphabet sẽ được dịch chuyển, còn kí tự nào không phải là chữ cái alphabet thì sẽ được giữ nguyên.
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
Trang 24Hình 2.9 Phần Script để tạo hiệu ứng Texting ở tiêu đề của trang web
Trang 25CHƯƠNG 3: CHƯƠNG TRÌNH DEMO
Để 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ã hoá 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.
3.1 Hướng dẫn sử dụng chương trình:
3.1.1 Để mã hoá (Encrypt) chuỗi được nhập
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ã hoá sẽ xuất hiện ở ô Output.
Hình 3.1 Cách mã hoá chuỗi
Trang 263.1.2 Để giải mã (Decrypt) chuỗi bị mã hoá
Cách thực hiện:
1 Nhập chuỗi bị mã hoá 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.
Hình 3.2 Cách giải mã chuỗi
3.2 Kết quả của chương trình demo
3.2.1 Tính năng mã hoá (Encrypt)
Ta sẽ nhập lần lượt các thông số như Hình 3.3
Input: A Caesar cipher is a simple and ancient method of encrypting text by
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
Trang 27so 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.
Shift: 3
Hình 3.3 Kết quả demo tính năng mã hoá (Encrypt) 1 đoạn văn
3.2.1 Tính năng giải mã (Decrypt)
Ta sẽ nhập lần lượt các thông số như Hình 3.4
Input: D Fdhvdu flskhu lv d vlpsoh dqg dqflhqw phwkrg ri hqfubswlqj
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
Trang 28vwloo 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.
Shift: 3
Hình 3.4 Kết quả demo tính năng giải mã (Decrypt) 1 đoạn văn
Trang 29CHƯƠNG 4: KẾT LUẬN
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 quân 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.
Trang 30TÀI LIỆU THAM KHẢO
Caesar, J (2023, August 17) Caesar Cipher Retrieved from McGill School of Computer Science :
https://www.cs.mcgill.ca/~rwest/wikispeedia/wpcd/wp/c/Caesar_cipher.htm Hahn, E (2016, December 8) Caesar Shift in JavaScript Retrieved from Github Gist:
Karleigh Moore, Satyabrata Dash, Eli Ross (2023, August 17) Caesar Cipher Retrieved from Brilliant Math & Science Wiki: https://brilliant.org/wiki/caesar-cipher/ Kumar, A (2023, May 11) Caesar Cipher in Cryptography Retrieved from
GeeksForGeeks: https://www.geeksforgeeks.org/caesar-cipher-in-cryptography/
Trang 31PHỤ LỤC