lOMoARcPSD| 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
lOMoARcPSD| 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
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
lOMoARcPSD| 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
lOMoARcPSD| 60701415
Lời mở đầu
lOMoARcPSD| 60701415
Lời cảm ơn
lOMoARcPSD| 60701415
Lời cam đoan
lOMoARcPSD| 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: m hóa Caesar 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 hóa với chuỗi 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
lOMoARcPSD| 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
lOMoARcPSD| 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
lOMoARcPSD| 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 giải chuỗi tự sử dụng thuật toán Caesar"
nhằm mục đích hóa giải chuỗi tự dựa trên thuật toán Caesar. Thuật toán Caesar
một trong những phương pháp hóa cổ điển đơn giản nhất đượ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
tự cần được hóa một giá trị số nguyên, gọi "khóa", để xác định phương pháp
hóa. Sau đó, chương trình sẽ thực hiện quá trình hóa chuỗi tự theo thuật toán
Caesar bằng cách dịch chuyển mỗi 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 khnăng giải chuỗi tự đã được 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 dễ sử dụng, đề
tài này hướng đến việc cung cấp cho người 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 hơn về cách hoạt động của thuật toán Caesar ứ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 hóa giải chuỗi tự
bằng thuật toán Caesar" vì đem lại nhiều giá trị và ý nghĩa trong thực tế. Phương pháp
hóa cổ điển này, được gọi 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
cách hóa 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 hội học hỏi 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.
lOMoARcPSD| 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 hóa dữ liệu để bảo vệ cho dữ liệu số khi đượ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
cùng khó khăn, tốn nhiều nguồn lực tính toán 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 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 tình bị lộ ra ngoài, cũng khó lòng giải
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 thể kđến Facebook, Telegram, whatapps… với
loại hóa sử dụng được gọi End-to-End. End-to-End Encryption (E2EE) 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 hóa này sử dụng khóa giữa người
nhận người gửi đang trực tiếp tham gia o quá trình gửi dữ liệu. Trừ khi 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
lOMoARcPSD| 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 thể bị tin tặc tấn công đánh
cắp. Để ngăn chặn tình trạng này người dùng 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 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.
2 kỹ thuật mã hóa phổ biến hiện nay :
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ã a và giải mã. Theo
một số tài liệu thì hóa đối xứng đang phương pháp 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, 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 dữ liệu để
đượ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.
lOMoARcPSD| 60701415
Mã hóa bất đối xứng (asymmetric encryption):
Kiểu hóa này còn tên gọi khác nữa 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 khóa công khai (public key) một khóa khác
khóa mật (private key). Dữ liệu sẽ được 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 được dữ liệu, người nhận cần phải
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 keyprivate key), họ sẽ giữ lại private
key truyền đến cho bên gửi public key. public key này ng khai nên 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ẽ hóa dữ liệu bằng 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 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, 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
lOMoARcPSD| 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
Anh
1.2 Lý do chọn đề tài
Anh
1.3 Mã hóa dữ liệu
Anh, Đức Anh
4
Word Chương II
2.1 Lịch sử và nguồn gốc
Hồng Ly, 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
Anh, Hồng Ly
Thuyết trình
Đức Anh
lOMoARcPSD| 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, một lịch sử lâu dài phong phú. Thuật toán này được đặt
tên theo Julius Caesar, một trong những nhà lãnh đạo đạ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 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 hiện bây giờ đã thêm nhiều thuật toán 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 sở để chúng ta thể hiểu về cách
hoạt động của c thuật toán hóa cách để tăng cường tính bảo mật của chúng.
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
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 3, 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 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
lOMoARcPSD| 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:
y
i
=e
k
(x
i
)=(x
i
+k)mod n
Phương pháp giải mã:
x
i
=d
k
(y
i
)=(y
i
−k)mod n
Trong đó ( y_i ) ký tự hóa, ( x_i ) ký tự bản rõ, ( k ) 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 a Caesar. Một trong
số đó phương pháp thử lỗi, trong đó ta thử tất cả các khóa thể để xem thông
điệp giải hợp lệ hay không. Phương pháp này tốn nhiều thời gian công sức, nhưng
lại khá hiệu quả khi số lượng khóa thể nhỏ. Một phương pháp khác nữa 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 tự "e" trong tiếng Anh, ta có thể
thử suy ra được khóa giải 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 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 nguyên tắc của ngôn ngữ 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 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 tự
lOMoARcPSD| 60701415
theo một khoảng cố định, việc phân tích giải hóa Caesar trở nên đơn giản
nhanh chóng. Tuy nhiên, điều này cũng đồng nghĩa với việc 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,
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 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
ba phương pháp chính để giải hóa Caesar. Phương pháp đầu tiên thử tất
cả các khóa thể bằng cách thay đổi vị trí từng chữ cái trong bản 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 và so sánh với tần suất trong ngôn ngữ bản đượ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 giải chính xác hơn. Giải hóa Caesar ưu điểm đơ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ừ hóa Caesar thử tất cả các khóa thgiải 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 không nhiều khả năng tìm kiếm trong từ điển. Trong trường
hợp thông điệp hóa dài phức tạp, chúng ta cần áp dụng các phương pháp phân tích
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ừ
hóa Caesar.
Ưu điểm và hạn chế của giải mã mã hóa Caesar
lOMoARcPSD| 60701415
Giải hóa Caesar 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 hóa Caesar cho phép duy trì cấu trúc của văn bản gốc không làm thay đổi
văn bản theo bất kỳ ch nào. Tuy nhiên, cũng cần nhớ rằng giải mã hóa Caesar cũng
có những hạn chế. Tớ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 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 không an toàn. Thêm vào đó, 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 hóa này, cùng với việc hóa giải dễ dàng, đã làm cho
phổ biến trong việc bảo mật thông tin. Trong lịch sử, hóa Caesar đã được sử dụng
trong quân sự ngoại giao, nhằm bảo vệ tin nhắn quan trọng 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, hóa Caesar dễ bị phá vỡ
không đáng tin cậy trong những môi trường bảo mật cao hơn. Mặc vậy, 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ế
hóa Caesar một phương pháp đơn giản dễ dùng, do đó 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 hóa dữ liệu bằng cách thay thế các tự bằng tự khác
trong bảng chữ cái, hóa Caesar thể giúp ngăn chặn các kẻ xâm nhập ăn cắp thông
tin cá nhân tấn công mạng. Ngoài ra, hóa Caesar cũng được sử dụng trong các ứng
dụng điện toán đám mây, email các giao thức truyền thông khác để đảm bảo an toàn
lOMoARcPSD| 60701415
thông tin. Tuy nhiên, cần lưu ý rằng hóa Caesar không phải phương pháp bảo mật
tuyệt đối và có nhược điểm mạnh 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, một số vấn đề liên quan cần được xem xét. Đầu
tiên, hóa Caesar chỉ sử dụng một khóa đơn giản 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 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 nghĩa 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 hóa, như phân tích tần số phương pháp brute force.
Do đó, người dùng cần thận trọng xem xét các hạn chế lỗ hổng của 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 tính đơn giản dễ hiểu của thuật toán chthích hợp cho việc
học tập để hiểu thêm về hóa i chung, nhóm sẽ tạo một trang web mã hóa 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 đó
HTML, CSS, JavaScript PHP với các ứng dụng khác nhau. HTML CSS sẽ được
sử dụng để xây dựng giao diện người dùng đị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 độ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ả.

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à:
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ả.