



















Preview text:
  lOMoAR cPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á 
KHOA: CÔNG NGHỆ THÔNG TIN    BÀI TẬP LỚN 
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN  
ĐỀ TÀI SỐ 15: XÂY DỰNG CHƯƠNG TRÌNH MÃ HÓA VÀ 
GIẢI MÃ CHUỖI KÝ TỰ SỬ DỤNG THUẬT TOÁN  CAESAR                                   Bắc Ninh, năm 2024  1    lOMoAR cPSD| 60701415
BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á 
KHOA: CÔNG NGHỆ THÔNG TIN  BÀI TẬP LỚN 
HỌC PHẦN: AN TOÀN BẢO MẬT THÔNG TIN  
ĐỀ TÀI SỐ 15: XÂY DỰNG CHƯƠNG TRÌNH MÃ HÓA VÀ 
GIẢI MÃ CHUỖI KÝ TỰ SỬ DỤNG THUẬT TOÁN  CAESAR                                                         CÁN BỘ CHẤM 1  CÁN BỘ CHẤM 2  2    lOMoAR cPSD| 60701415 Mục lục  Mục 
lục...............................................................................................................................i 
Lời mở đầu ........................................................................................................................ ii 
Lời cảm ơn ........................................................................................................................ iii 
Lời cam đoan .................................................................................................................... iv 
Danh mục hình ảnh ............................................................................................................ v 
Danh mục bảng ................................................................................................................. vi   
Danh mục từ viết tắt........................................................................................................viii 
Chương 1: Tổng quan đề tài...............................................................................................1 
1.1 Giới thiệu đề tài........................................................................................................1 
1.2 Lý do chọn đề tài......................................................................................................1 
1.3 Mã hóa dữ liệu..........................................................................................................2 
1.3.1 Chức năng chính của mã hoá dữ liệu..................................................................2 
1.3.2 Phương thức mã hóa dữ liệu hoạt động..............................................................3 
1.4 Phân công công việc.................................................................................................5 
Chương 2: Cơ sở lý thuyết về thuật toán Caesar................................................................6 
2.1 Lịch sử và nguồn gốc................................................................................................6 
2.2 Nguyên lý hoạt động.................................................................................................6 
2.3 Phân tích thuật toán Caesar.......................................................................................6 
2.4 Giải mã thuật toán Caesar.........................................................................................8 
2.5 Ứng dụng của thuật toán Caesar...............................................................................9 
Chương 3: Xây dựng triển khai chương trình...................................................................11 
3.1 Ngôn ngữ lập trình và ứng dụng.............................................................................11 
3.1.1 Khái quát về ngôn ngữ lập trình sử dụng..........................................................11 
3.1.2 Ý tưởng sử dụng ngôn ngữ lập trình để xây dựng chương trình.......................12 
3.2 Xây dựng chương trình minh họa...........................................................................12 
3.2.1 Phân tích yêu cầu chương trình.........................................................................12 
3.2.2 Thuật toán mã hóa/giải mã Caesar cơ bản........................................................15 
3.2.3 Thuật toán mã hóa/giải mã Caesar với chuỗi ký tự ascii...................................19 
3.2.4 Thuật toán giải mã thuật toán Caesar thông qua dò tìm triệt để........................22 
3.3 Chương trình minh họa...........................................................................................25 
3.3.1 Chức năng của chương trình.............................................................................25 
3.3.2 Đánh giá chương trình......................................................................................28 
Kết luận............................................................................................................................29 
Kết quả đạt được:..........................................................................................................29 
Hướng phát triển:..........................................................................................................30 
Tài liệu tham khảo............................................................................................................32    lOMoAR cPSD| 60701415 Lời mở đầu        lOMoAR cPSD| 60701415 Lời cảm ơn        lOMoAR cPSD| 60701415 Lời cam đoan        lOMoAR cPSD| 60701415 Danh mục hình ảnh 
Chương 3: Xây dựng chương trình minh họa  3.2.2: 
Hình 3.2.2. 1: Hàm mã hóa Caesar cơ bản.......................................................................15 
Hình 3.2.2. 2: Hàm giải mã Caesar cơ bản.......................................................................17  3.2.3:  
Hình 3.2.3. 1: Hàm mã hóa với chuỗi ký tự Ascii............................................................19 
Hình 3.2.3. 2: Hàm giải mã hóa Caesar với chuỗi ký tự Ascii..........................................21  3.2.4: 
Hình 3.2.4. 1: Khai báo một số biến để lưu trữ phần tử trên giao diện.............................22 
Hình 3.2.4. 2: Hàm updateAmount..................................................................................23 
Hình 3.2.4. 3: Hàm lắng nghe sự kiện khi kéo thanh trượt...............................................24 
Hình 3.2.4. 4: Hàm xử lý sự kiện khi nhấn nút.................................................................24 
Hình 3.2.4. 5: Hàm giải mã decryptbrute.........................................................................25  3.3.1: 
Hình 3.3.1. 1: Chọn thuật toán.........................................................................................26 
Hình 3.3.1. 2: Màn hình mã hóa/giải mã chuỗi ký tự (Caesar basic)................................26 
Hình 3.3.1. 3: Giải mã bằng brute force...........................................................................27 
Hình 3.3.1. 4: Chọn thuật toán Ceasar shift cipher Ascii..................................................27 
Hình 3.3.1. 5: Màn hình mã hóa thuật toán Caesar shift cipher Ascii...............................28      lOMoAR cPSD| 60701415 Danh mục bảng 
Danh mục từ viết tắt 
Bảng 1: Danh mục từ viết tắt...........................................................................................vii 
Chương 1: Tổng quan đề tài 
Bảng 1.4. 1: Bảng phân công công việc.............................................................................5        lOMoAR cPSD| 60701415
Danh mục từ viết tắt 
Bảng 1: Danh mục từ viết tắt.  Từ viết tắt  Ý nghĩa  E2EE  End-to-End Encryption  DES  Data Encryption Standard  RSA  Rivest-Shamir-Adleman  AES  Advanced Encryption Standard      lOMoAR cPSD| 60701415
Chương 1: Tổng quan đề tài 
1.1 Giới thiệu đề tài 
Đề tài "Xây dựng chương trình mã hóa và giải mã chuỗi ký tự sử dụng thuật toán Caesar" 
nhằm mục đích mã hóa và giải mã chuỗi ký tự dựa trên thuật toán Caesar. Thuật toán Caesar 
là một trong những phương pháp mã hóa cổ điển đơn giản nhất và được áp dụng rộng rãi 
trong việc bảo mật thông tin. Chương trình này sẽ cho phép người dùng nhập vào một chuỗi 
ký tự cần được mã hóa và một giá trị số nguyên, gọi là "khóa", để xác định phương pháp 
mã hóa. Sau đó, chương trình sẽ thực hiện quá trình mã hóa chuỗi ký tự theo thuật toán 
Caesar bằng cách dịch chuyển mỗi ký tự trong chuỗi đi một số bước tương ứng với giá trị 
của khóa. Ngược lại, chương trình cũng có khả năng giải mã chuỗi ký tự đã được mã hóa 
bằng cách áp dụng thuật toán Caesar ngược lại. Với giao diện đơn giản và dễ sử dụng, đề 
tài này hướng đến việc cung cấp cho người dùng một công cụ mã hóa và giải mã hiệu quả, 
đồng thời giúp người dùng hiểu rõ hơn về cách hoạt động của thuật toán Caesar và ứng 
dụng của nó trong bảo mật thông tin. 
1.2 Lý do chọn đề tài 
Nhóm chúng em chọn đề tài "Xây dựng chương trình mã hóa và giải mã chuỗi ký tự 
bằng thuật toán Caesar" vì nó đem lại nhiều giá trị và ý nghĩa trong thực tế. Phương pháp 
mã hóa cổ điển này, được gọi là thuật toán Caesar, không chỉ đơn giản mà còn dễ hiểu. Qua 
việc thực hiện dự án này, nhóm hy vọng sẽ hiểu sâu hơn về cơ bản của việc mã hóa và giải 
mã trong lĩnh vực bảo mật thông tin. Hơn nữa, thuật toán Caesar vẫn được ứng dụng rộng 
rãi trong nhiều trường hợp thực tế. Việc áp dụng kiến thức vào các tình huống thực tế giúp 
các thành viên trong nhóm nhận thức được tầm quan trọng của việc bảo vệ thông tin và 
cách mà mã hóa có thể cải thiện tính bảo mật. Quá trình phát triển chương trình đã tạo ra 
một môi trường hợp tác tích cực giữa các thành viên, từ việc nghiên cứu thuật toán đến 
việc triển khai chương trình. Mỗi thành viên đều có cơ hội học hỏi và phát triển kỹ năng 
cũng như hiểu biết về an toàn thông tin. Cuối cùng, dự án còn có nhiều tiềm năng mở rộng 
với các tính năng bổ sung như tăng cường tính bảo mật hoặc phát triển giao diện người 
dùng, mở ra nhiều cơ hội cho sự phát triển và mở rộng trong tương lai.      lOMoAR cPSD| 60701415
1.3 Mã hóa dữ liệu  
Mã hóa dữ liệu là việc chuyển đổi dữ liệu từ định dạng có thể đọc được sang định dạng 
được mã hóa. Dữ liệu đã được mã hóa chỉ có thể được đọc hoặc xử lý sau khi giải mã. Mã 
hóa dữ liệu đã và đang được sử dụng rộng rãi bởi người dùng cá nhân và các doanh nghiệp 
để bảo vệ thông tin người dùng được gửi từ client đến máy chủ hoặc client khác [1]. 
1.3.1 Chức năng chính của mã hoá dữ liệu  
Mục đích của việc mã hóa dữ liệu là để bảo vệ cho dữ liệu số khi nó được lưu trữ trên 
các hệ thống máy tính và gửi qua Internet hay các mạng máy tính khác. Các thuật toán mã 
hóa thường cung cấp những yếu tố bảo mật then chốt như xác thực, tính toàn vẹn và không 
thu hồi. Tính xác thực cho phép xác minh nguồn gốc của dữ liệu, tính toàn vẹn chứng minh 
rằng nội dung của dữ liệu không bị thay đổi hoặc mất mát kể từ khi nó được gửi đi. Không 
thu hồi đảm bảo rằng người người không thể hủy bỏ việc gửi dữ liệu [2]. 
Quá trình mã hóa sẽ biến nội dung sang một dạng mới, vì thế sẽ tăng thêm một lớp bảo 
mật cho dữ liệu. Như vậy cho dù dữ liệu của bạn bị đánh cắp thì việc giải mã dữ liệu cũng 
vô cùng khó khăn, tốn nhiều nguồn lực tính toán và cần rất nhiều thời gian. Với những 
công ty, tổ chức thì việc sử dụng mã hóa dữ liệu là điều cần thiết. Điều này sẽ tránh được 
những thiệt hại khi những thông tin mật nếu vô tình bị lộ ra ngoài, cũng khó lòng giải mã  ngay lập tức [2]. 
Hiện nay có rất nhiều ứng dụng tin nhắn đều sử dụng đến mã hóa nhằm tăng cường bảo 
mật tin nhắn cho người dùng. Chúng ta có thể kể đến Facebook, Telegram, whatapps… với 
loại mã hóa sử dụng được gọi là End-to-End. End-to-End Encryption (E2EE) là phương 
thức mã hóa mà chỉ người nhận và người gửi mới có thể hiểu được thông điệp đã được mã 
hóa này mà thôi. Sẽ không ai biết được những nội dung mà chúng ta đang truyền đi, kể cả 
những nhà cung cấp dịch vụ Internet. Phương thức mã hóa này sử dụng mã khóa giữa người 
nhận và người gửi đang trực tiếp tham gia vào quá trình gửi dữ liệu. Trừ khi có cách nào 
đó mà bên thứ 3 biết được mã khóa này, nếu không thì sẽ không thể nào giải mã được. 
1.3.2 Phương thức mã hóa dữ liệu hoạt động      lOMoAR cPSD| 60701415
Khi các thông được chia sẻ qua mạng, nó sẽ đi qua hàng loạt các thiết bị mạng trên diện 
rộng, khi đó các thông tin này sẽ có rất nhiều khả năng có thể bị tin tặc tấn công và đánh 
cắp. Để ngăn chặn tình trạng này người dùng có thể sử dụng những phần mềm hoặc phần 
cứng để đảm bảo truyền dữ liệu, thông tin an toàn . Quá trình này được gọi là mã hóa trong  an ninh mạng [3]. 
Mã hóa sẽ chuyển đổi văn bản gốc mà con người có thể đọc và hiểu được trở thành văn 
bản không thể đọc được và được gọi là bản mã. Mã hóa sử dụng khóa mật mã, người nhận 
sẽ sử dụng khóa để giải mã và chyển hóa thành dữ liệu bên nhận có thể đọc được. Các khóa 
mật mã càng phức tạp thì sẽ càng an toàn, vì các ứng dụng bên thứ 3 sẽ có ít khả năng giải  mã hơn. 
Có 2 kỹ thuật mã hóa phổ biến hiện nay là: Mã 
hóa đối xứng (symmetric encryption): 
Phương pháp mã hóa này chỉ cần dùng một key giống nhau để mã hóa và giải mã. Theo 
một số tài liệu thì mã hóa đối xứng đang là phương pháp mã hóa được sử dụng nhất phổ  biến hiện nay. [4] 
Quy trình mã hóa được miêu tả như sau: 
Dùng giải thuật ngẫu nhiên mã hóa + key để mã hóa dữ liệu gửi đi. 
Bằng một cách nào đó, key của người gửi sẽ được gửi đến cho người nhận, có thể 
là gửi trước hoặc sau khi mã hóa file đều được. 
Khi người nhận nhận được dữ liệu, họ sẽ dùng key này để giải mã dữ liệu để có 
được dữ liệu trước khi mã hóa. 
Tuy nhiên vấn đề bảo mật nằm ở chỗ, làm thế nào để chuyển key cho người nhận một 
cách an toàn. Nếu key này bị lộ, thì bất kì ai sử dụng giải thuật phía trên đều có thể giải mã 
được dữ liệu. Như vậy thì tính bảo mật sẽ mất đi giá trị của nó. 
Chúng ta sẽ thường thấy hai thuật toán mã hóa đối xứng thường thấy là DES và AES.      lOMoAR cPSD| 60701415
Mã hóa bất đối xứng (asymmetric encryption): 
Kiểu mã hóa này còn có tên gọi khác nữa là mã hóa khóa công khai. Sử dụng đến hai 
khóa (key) khác nhau. Một khóa được gọi là khóa công khai (public key) và một khóa khác 
là khóa bí mật (private key). Dữ liệu sẽ được mã hóa bằng public key. Tất cả mọi người 
đều có thể biết được key này. Tuy nhiên để giải mã được dữ liệu, người nhận cần phải có  private key [4]. 
Để thực hiện mã hóa bất đối xứng thì: 
Người nhận sẽ tạo ra một gặp khóa (public key và private key), họ sẽ giữ lại private 
key và truyền đến cho bên gửi public key. Vì public key này là công khai nên có thể 
truyền tự do mà không cần lo bảo mật. 
Trước khi gửi tin nhắn thì người gửi sẽ mã hóa dữ liệu bằng mã hóa bất đối xứng 
với những key nhận được từ phía người nhận. 
Người nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên phía 
người gửi, với key giải mã là private key. 
Điểm yếu lớn nhất của kiểu mã hóa này là tốc độ mã hóa và giải mã. Nếu dùng kiểu mã 
hóa bất đối xứng trong việc truyền dữ liệu thì sẽ rất tốn phí và mất thời gian. 
Thuật toán mã hóa bất đối xứng thường thấy: RSA. 
1.4 Phân công công việc 
Bảng 1.4. 1: Bảng phân công công việc.  STT  Tên đầu việc  Mô tả công việc 
Thành viên thực hiện  1  Thiết kế Web  Thiết kế giao diện  Hồng Ly, Tú Anh  Phân tích yêu cầu  Khánh, Đức Anh 
Viết các hàm xử lý mã hóa  Đức Anh      lOMoAR cPSD| 60701415
Viết các hàm xử lý giải mã  Đức Anh, Khánh  3  Word Chương I  1.1 Giới thiệu đề tài  Tú Anh  1.2 Lý do chọn đề tài  Tú Anh  1.3 Mã hóa dữ liệu  Tú Anh, Đức Anh  4  Word Chương II 
2.1 Lịch sử và nguồn gốc  Hồng Ly, Tú Anh 
2.2 Nguyên lý hoạt động  Hồng Ly  2.3 Phân tích thuật toán  Hồng Ly 
2.4 Giải mã thuật toán Caesar  Hồng Ly, Khánh 
2.5 Ứng dụng của thuật toán Caesar  Hồng Ly, Khánh  5  Word Chương III 
3.1 Ngôn ngữ lập trình và ứng dụng  Đức Anh, Khánh 
3.2 Xây dựng chương trình minh họa  Đức Anh, Khánh 
3.3 Chương trình minh họa  Đức Anh  6  Tổng thể báo cáo 
Chỉnh sửa layout báo cáo, check đạo văn  Khánh, Đức Anh 
7 Nội dung lời nói đầu, kết luận, Add nội dung cho các phần như lời nói đầu, kêt  … 
luận, danh mục bảng biểu, hình ảnh  Khánh  8  Slide thuyết trình  Thiết kế slide  Tú Anh, Hồng Ly  Thuyết trình  Đức Anh      lOMoAR cPSD| 60701415
Chương 2: Cơ sở lý thuyết về thuật toán Caesar 
2.1 Lịch sử và nguồn gốc 
Thuật toán Caesar, hay còn được gọi là "mã dịch chuyển" hoặc "mã dịch vị”. Được xuất 
phát từ thời kỳ cổ điển, nó có một lịch sử lâu dài và phong phú. Thuật toán này được đặt 
tên theo Julius Caesar, một trong những nhà lãnh đạo vĩ đại nhất trong lịch sử La Mã. Trong 
quân sự, Caesar đã sử dụng thuật toán này để gửi các thông điệp mật giữa các tướng lĩnh  và quân đội của mình. 
Thuật toán Caesar đã tồn tại tới tận ngày nay nhờ vào sự đơn giản và hiệu quả của nó. 
Mặc dù hiện bây giờ đã có thêm nhiều thuật toán mã hóa phức tạp hơn nhưng thuật toán 
Caesar vẫn đang đóng vai trò quan trọng như một cơ sở để chúng ta có thể hiểu về cách 
hoạt động của các thuật toán mã hóa và cách để tăng cường tính bảo mật của chúng. Nó 
cũng là một phần quan trọng của lịch sử phát triển của an ninh mạng và bảo mật thông tin. 
Đối với cả hai mục đích, thuật toán Caesar tiếp tục giữ vững vị thế của mình như một trong 
những công cụ mã hóa đơn giản và hiệu quả nhất. 
2.2 Nguyên lý hoạt động 
Mã hóa Caesar là một phương pháp mã hóa cổ đại, được sử dụng từ thời La Mã. Nguyên 
lý hoạt động của mã hóa Caesar dựa trên việc dịch chuyển(thay thế) các ký tự trong bảng 
chữ cái theo một quy tắc nhất định. Ví dụ, với một bước dịch sang phải là 3, ký tự "A" sẽ 
được chuyển thành "D", "B" sẽ chuyển thành "E" và tiếp tục như vậy. Nguyên lí này giúp 
tăng tính bảo mật của thông điệp, bởi với mỗi bước dịch, các ký tự trong thông điệp sẽ thay 
đổi và trở nên khó hiểu nếu không biết khóa. 
2.3 Phân tích thuật toán Caesar  Mã hóa Caesar: 
Mã hóa Caesar là một trong những kỹ thuật mã hóa cổ điển và đơn giản nhất, được đặt 
tên theo tên của Julius Caesar, người đã sử dụng nó để bảo vệ những thông điệp quân sự. 
Mã hóa Caesar là một dạng của mật mã thay thế, mỗi ký tự trong bản rõ chữ sẽ được      lOMoAR cPSD| 60701415
thay thế bằng một ký tự khác có vị trí cách định trước trong bảng chữ cái tạo nên bản mã  hóa. 
Cách thức hoạt động của mã hóa Caesar: 
Mỗi ký tự trong bản rõ chữ sẽ được dịch chuyển một số vị trí cố định trong bảng chữ cái.  Phương pháp mã hóa: 
yi=ek(xi)=(xi+k)mod n  Phương pháp giải mã: 
xi=dk(yi)=(yi−k)mod n 
Trong đó ( y_i ) là ký tự mã hóa, ( x_i ) là ký tự bản rõ, ( k ) là khóa (số vị trí dịch 
chuyển), và ( n ) là số lượng ký tự trong bảng chữ cái (thường là 26 cho tiếng Anh). 
Cách tìm kiếm khóa và giải mã các thông điệp mà hóa Caesar: 
Có rất nhiều phương pháp phân tích được sử dụng để giải mã mã hóa Caesar. Một trong 
số đó là phương pháp thử và lỗi, trong đó ta thử tất cả các khóa có thể có để xem thông 
điệp giải mã có hợp lệ hay không. Phương pháp này tốn nhiều thời gian và công sức, nhưng 
lại khá hiệu quả khi số lượng khóa có thể có là nhỏ. Một phương pháp khác nữa là phân 
tích tần suất, trong đó ta xác định tần suất xuất hiện của các ký tự trong thông điệp mã hóa. 
Dựa trên nguyên tắc xuất hiện thường xuyên nhất của ký tự "e" trong tiếng Anh, ta có thể 
thử suy ra được khóa và giải mã thông điệp. Ngoài ra, còn nhiều phương pháp phân tích 
khác như phân tích độ dịch chuyển, phân tích ngữ cảnh và kiểm tra độ dài khóa. Những 
phương pháp này hoạt động dựa trên các quy tắc và nguyên tắc của ngôn ngữ và xác suất 
để xác định khóa và giải mã mã hóa Caesar. 
Ưu điểm và nhược điểm: 
Mã hóa Caesar có những ưu điểm và hạn chế riêng. Ưu điểm đầu tiên của phân tích mã 
hóa Caesar là tính đơn giản và dễ hiểu của thuật toán. Với việc chỉ dịch chuyển các ký tự      lOMoAR cPSD| 60701415
theo một khoảng cố định, việc phân tích và giải mã mã hóa Caesar trở nên đơn giản và 
nhanh chóng. Tuy nhiên, điều này cũng đồng nghĩa với việc mã hóa Caesar không đảm bảo 
độ an toàn cao. Với số lượng khóa có hạn và cách dịch chuyển có thể dễ dàng đoán được, 
mã hóa Caesar dễ bị tấn công bằng cách thử từng khóa một. Do đó, phân tích mã hóa 
Caesar có hạn chế về độ bảo mật và không phải là một phương pháp mã hóa xuất sắc trong 
các ứng dụng thực tế đòi hỏi tính bảo mật cao. 
2.4 Giải mã thuật toán Caesar 
Các phương pháp giải mã mã hóa Caesar 
 Có ba phương pháp chính để giải mã mã hóa Caesar. Phương pháp đầu tiên là thử tất 
cả các khóa có thể có bằng cách thay đổi vị trí từng chữ cái trong bản mã và kiểm tra nếu 
thông điệp giải mã có ý nghĩa. Phương pháp thứ hai là phân tích tần suất xuất hiện của các 
chữ cái trong bản mã và so sánh với tần suất trong ngôn ngữ mà bản mã được viết bằng. 
Cuối cùng, phương pháp thứ ba là sử dụng các kiến thức về ngôn ngữ và ngữ cảnh để suy 
ra các từ khóa và giải mã chính xác hơn. Giải mã mã hóa Caesar có ưu điểm là đơn giản 
và dễ thực hiện, tuy nhiên cũng có hạn chế là có thể mất nhiều thời gian để tìm ra khóa và 
giải mã thông điệp, đặc biệt nếu không có kiến thức về ngôn ngữ và ngữ cảnh của bản mã. 
Cách khôi phục thông điệp gốc từ mã hóa Caesar 
Mỗi khi chúng ta nhận được một thông điệp mã hóa Caesar, chúng ta cần phải khôi phục 
thông điệp gốc để hiểu nội dung thực sự. Cách đơn giản nhất để khôi phục thông điệp gốc 
từ mã hóa Caesar là thử tất cả các khóa có thể có và giải mã thông điệp bằng cách dịch 
chuyển từng ký tự một. Từ đó, chúng ta có thể so sánh thông điệp giải mã với các từ trong 
từ điển để xác định thông điệp gốc. Tuy nhiên, phương pháp này chỉ hiệu quả khi thông 
điệp mã hóa không dài và không có nhiều khả năng tìm kiếm trong từ điển. Trong trường 
hợp thông điệp mã hóa dài và phức tạp, chúng ta cần áp dụng các phương pháp phân tích 
và kết hợp với kiến thức về ngôn ngữ để tăng khả năng khôi phục thông điệp gốc từ mã  hóa Caesar. 
Ưu điểm và hạn chế của giải mã mã hóa Caesar      lOMoAR cPSD| 60701415
Giải mã mã hóa Caesar có những ưu điểm nhất định. Đầu tiên, phương pháp này đơn 
giản và dễ triển khai. Không cần sử dụng bất kỳ công cụ hay phần mềm phức tạp nào, giải 
mã mã hóa Caesar chỉ đòi hỏi người dùng áp dụng quy tắc đơn giản là dịch chuyển chữ cái 
theo số bước nhất định. Thứ hai, với việc chỉ dịch chuyển các ký tự trong bảng chữ cái, 
giải mã mã hóa Caesar cho phép duy trì cấu trúc của văn bản gốc mà không làm thay đổi 
văn bản theo bất kỳ cách nào. Tuy nhiên, cũng cần nhớ rằng giải mã mã hóa Caesar cũng 
có những hạn chế. Trước hết, vì phương pháp này cố định số bước dịch chuyển, nên có thể 
dễ dàng bị xâm phạm bằng cách thử tất cả các khả năng. Thứ hai, việc sử dụng một số ít 
bước dịch chuyển cũng tạo ra thuật toán dễ đoán và không an toàn. Thêm vào đó, mã hóa 
Caesar không giải quyết được vấn đề phân tích tần suất chữ cái xuất hiện trong văn bản mã 
hóa, một kỹ thuật phổ biến trong các phương pháp giả mã ngày nay. 
2.5 Ứng dụng của thuật toán Caesar 
Sự ứng dụng mã hóa Caesar trong lịch sử 
Mã hóa Caesar đã được sử dụng trong lịch sử từ thời cổ đại. Nguyên tắc hoạt động đơn 
giản của phương pháp mã hóa này, cùng với việc mã hóa và giải mã dễ dàng, đã làm cho 
nó phổ biến trong việc bảo mật thông tin. Trong lịch sử, mã hóa Caesar đã được sử dụng 
trong quân sự và ngoại giao, nhằm bảo vệ tin nhắn quan trọng và ngăn chặn việc tiết lộ 
thông tin. Tuy nhiên, do tính đơn giản của phương pháp này, mã hóa Caesar dễ bị phá vỡ 
và không đáng tin cậy trong những môi trường bảo mật cao hơn. Mặc dù vậy, mã hóa 
Caesar vẫn đóng vai trò quan trọng trong việc tìm hiểu về lịch sử của mật mã. 
Ứng dụng mã hóa Caesar trong thực tế 
Mã hóa Caesar là một phương pháp đơn giản và dễ dùng, do đó nó có nhiều ứng dụng 
trong thực tế. Một ứng dụng phổ biến của mã hóa Caesar là trong việc bảo vệ thông tin cá 
nhân trên mạng. Với việc mã hóa dữ liệu bằng cách thay thế các ký tự bằng ký tự khác 
trong bảng chữ cái, mã hóa Caesar có thể giúp ngăn chặn các kẻ xâm nhập ăn cắp thông 
tin cá nhân và tấn công mạng. Ngoài ra, mã hóa Caesar cũng được sử dụng trong các ứng 
dụng điện toán đám mây, email và các giao thức truyền thông khác để đảm bảo an toàn      lOMoAR cPSD| 60701415
thông tin. Tuy nhiên, cần lưu ý rằng mã hóa Caesar không phải là phương pháp bảo mật 
tuyệt đối và có nhược điểm mạnh là khả năng bị dò đoán và tấn công bởi các kẻ xâm nhập 
thông minh. Do đó, việc kết hợp nó với các phương pháp mã hóa khác là cần thiết để tăng 
cường độ an toàn cho thông tin giao dịch trực tuyến và dữ liệu quan trọng.’ 
Những vấn đề liên quan đến việc sử dụng mã hóa Caesar 
Trong việc sử dụng mã hóa Caesar, có một số vấn đề liên quan cần được xem xét. Đầu 
tiên, mã hóa Caesar chỉ sử dụng một khóa đơn giản là số lượng dịch chuyển từ bảng chữ 
cái. Điều này dẫn đến khả năng dễ dàng bị tấn công bằng cách thử tất cả các khóa có thể 
có. Thứ hai, mã hóa Caesar hoạt động dựa trên việc dịch chuyển các ký tự trong bảng chữ 
cái, do đó không thay đổi thứ tự xuất hiện của chúng. Điều này có nghĩa là các mẫu chữ 
cái trong văn bản được mã hóa sẽ giữ nguyên trong thông điệp mã hóa. Cuối cùng, mã hóa 
Caesar không cung cấp tính bảo mật cao. Mã hóa này dễ dàng bị phá vỡ bằng các phương 
pháp phổ biến trong phân tích mã hóa, như phân tích tần số và phương pháp brute force. 
Do đó, người dùng cần thận trọng và xem xét các hạn chế và lỗ hổng của mã hóa Caesar 
khi sử dụng nó trong thực tế. 
Chương 3: Xây dựng triển khai chương trình 
3.1 Ngôn ngữ lập trình và ứng dụng 
Có thể ứng dụng thuật toán Caesar vào nhiều chương trình cũng như bằng nhiều ngôn 
ngữ khác nhau. Nhưng vì tính đơn giản và dễ hiểu của thuật toán chỉ thích hợp cho việc 
học tập và để hiểu thêm về mã hóa nói chung, nhóm sẽ tạo một trang web mã hóa và giải 
mã nội dung bằng phương pháp cổ điển và sẽ mở rộng thêm. 
3.1.1 Khái quát về ngôn ngữ lập trình sử dụng 
Nhóm quyết định sẽ sử dụng bốn loại ngôn ngữ chính để xây dựng nên chương trình đó 
là HTML, CSS, JavaScript và PHP với các ứng dụng khác nhau. HTML và CSS sẽ được 
sử dụng để xây dựng giao diện người dùng và định dạng nội dung của trang web. JavaScript 
sẽ được áp dụng để thêm tính năng tương tác và động cho trang web. Trong khi đó, PHP 
sẽ được sử dụng cho phần back-end, xử lý dữ liệu, áp dụng thuật toán. Bằng cách kết hợp 
các ngôn ngữ này, nhóm hy vọng sẽ tạo ra một ứng dụng web đa năng và hiệu quả.