Professional Documents
Culture Documents
TÊN ĐỀ TÀI
6
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TÊN ĐỀ TÀI
Lời đầu tiên, nhóm chúng em xin bày tỏ lòng biết ơn sâu sắc đến thầy Ths. Đặng
Văn Lực giảng viên trường Đại học Văn Hiến, người giảng dạy môn “An toàn và
bảo mật thông tin trong TMĐT” đã nhiệt tình hướng dẫn và chỉ bảo các sinh viên,
cũng như các nhóm trong suốt quá trình học tập.
Xin dành lời cảm ơn chân thành đến thầy và hội đồng phúc khảo đã đọc bài tiểu
luận nghiên cứu của nhóm chúng em.
Vì lượng kiến thức và thời gian còn nhiều hạn chế nên trong quá trình làm bài
còn mắc phải nhiều sai sót, kính mong thầy và hội đồng phúc khảo góp ý chỉ bảo
thêm.
Trong thời đại kỹ thuật số ngày nay, việc bảo vệ thông tin và dữ liệu đã trở nên
cực kỳ quan trọng. Hệ mã hóa đã và đang được sử dụng rộng rãi để bảo vệ thông tin
quan trọng khỏi sự xâm nhập và truy cập trái phép. Trong số các hệ mã hóa phổ
biến, hệ mã hóa Caesar là một trong những phương pháp cổ điển nhưng vẫn được
sử dụng rộng rãi hiện nay.
Hệ mã hóa Caesar, còn được gọi là mã hóa dịch chuyển, là một hệ thống mã hóa
đơn giản dựa trên việc dịch chuyển các ký tự trong bảng chữ cái theo một khoảng
cách nhất định. Phương pháp này đã được Julius Caesar, vị hoàng đế La Mã, sử
dụng để giao tiếp bí mật trong quân đội của mình. Mặc dù đơn giản, hệ mã hóa
Caesar vẫn có thể cung cấp một mức độ bảo mật cơ bản cho thông tin.
Trong đề tài này, chúng ta sẽ tìm hiểu về hệ mã hóa Caesar và ứng dụng của nó
vào việc mã hóa và giải mã văn bản trong truyền văn bản điện tử. Chúng ta sẽ khám
phá cách thức hoạt động của hệ mã hóa Caesar, từ quá trình mã hóa dữ liệu cho đến
việc giải mã, và tìm hiểu về những ứng dụng thực tế của nó trong việc bảo vệ thông
tin và dữ liệu trong truyền văn bản điện tử. Đồng thời, chúng ta cũng sẽ xem xét các
giới hạn và hạn chế của hệ mã hóa Caesar, cũng như những cải tiến và phương pháp
mã hóa khác có thể được sử dụng để nâng cao mức độ bảo mật của thông tin.
Hy vọng rằng đề tài này sẽ mang lại cho bạn kiến thức cơ bản về hệ mã hóa
Caesar và những ứng dụng của nó trong việc bảo vệ thông tin và dữ liệu trong
truyền văn bản điện tử.
MỤC LỤC
2.2.1. Ưu điểm.......................................................................................................11
3.2. Ứng dụng vào bảo mật dữ liệu trong truyền văn bản điện tử.............................18
HìnhHình
1: 2:
MãMãhóa Encryption
hóa Encryption
Mọi công việc hàng ngày của chúng ta có thể thực hiện được từ xa với sự hỗ trợ
của Internet. Tất cả thông tin liên quan đến công việc đều do máy vi tính quản lý và
truyền đi qua hệ thống mạng. Đối với thông tin bình thường thì không ai chú ý đến,
nhưng đối với những thông tin mang tính chất sống còn đối với một số cá nhân hay
tổ chức thì vấn đề bảo mật rất quan trọng, do đó cần phải mã hóa thông tin để gửi
đi.
Mã hóa dữ liệu rất tuyệt vời, nó có thể bảo mật và ngăn chặn được những việc
sau: Nghe trộm, xem lén dữ liệu, giả mạo thông tin, đánh cắp dữ liệu… Và ta có thể
phân loại ra hai loại hệ mã hóa cơ bản: Hệ mã hóa đối xưng và Hệ mã hóa bất đối
xứng.
Vậy Caesar là gì?
1
Trong mật mã học, mật mã Caesar (Xê da), còn gọi là mật mã dịch chuyển, thuộc
hệ mã hóa đối xứng – do hai bên tham gia truyền dữ liệu sử dụng chung một khóa
để mã hóa và giải mã, trước khi hai bên trao đổi dữ liệu thì khóa phải được chia sẻ
và được dùng chung cho cả 2 bên.
Các doanh nghiệp đã đầu tư vào hệ thống phát hiện và tường lửa bảo mật CNTT
chu vi truyền thống đang tiếp tục tìm kiếm thêm thứ gì đó để bảo vệ dữ liệu của
họ. Giữa tin tặc bên ngoài và nhân viên nội bộ, bảo vệ dữ liệu ở tất cả các trạng
thái là nhiệm vụ quá cao đối với hầu hết các giải pháp cũ. Để chống lại xu hướng
này, các doanh nghiệp đang xem xét việc bảo vệ dữ liệu và cụ thể là các giải
pháp mã hóa dữ liệu là giải pháp triển khai tiếp theo của họ. Encryption có
thể là một lựa chọn tuyệt vời cho các doanh nghiệp đang chuyển một lượng lớn dữ
liệu và muốn chắc chắn rằng họ có thể giữ an toàn cho bản thân khỏi bị đánh cắp
dữ liệu tiềm ẩn. Các vấn đề với các giải pháp mã hóa quá nặng hoặc ảnh hưởng
tiêu cực đến trải nghiệm người dùng một cách tiêu cực giờ đã là quá khứ.
Vi phạm dữ liệu là một vấn đề thực sự đối với các doanh nghiệp thuộc mọi quy
mô, mặc dù nhiều doanh nghiệp nhỏ hơn đã lầm tưởng rằng đó là một vấn đề chủ
yếu ảnh hưởng đến các thương hiệu lớn hơn. Có rất nhiều lợi ích mà mã hóa có thể
mang lại cho công ty của bạn, ngoài những lợi ích mà bạn có thể đã nghi ngờ. Nếu
bạn đang xem xét mã hóa cho doanh nghiệp của mình, bạn nên tính đến những lợi
ích này trước khi đưa ra quyết định của mình.
a. Bảo vệ dữ liệu hoàn chỉnh
Một giải pháp mã hóa hoàn chỉnh cung cấp cho các doanh nghiệp và chủ sở hữu
của họ sự an tâm vì nó bảo vệ dữ liệu ở mọi trạng thái - ở trạng thái nghỉ và khi
đang chuyển. Mặc dù các giải pháp bảo mật ngoại vi có thể khiến việc truy cập dữ
liệu từ bên ngoài trở nên khó khăn hơn, nhưng một khi mạng bị xâm phạm, dữ liệu
của bạn chỉ an toàn như mã hóa dữ liệu mà bạn sử dụng. Với giải pháp mã hóa phù
hợp, bạn có thể trải qua mỗi ngày khi biết rằng dữ liệu của mình an toàn và không
có cách nào hợp lý mà tin tặc có thể có được trong tay dữ liệu thô. Tôi sẽ không sử
dụng một chương trình kiểu brute-force hơn cả đời để giải mã thành công tất cả
Với việc điện thoại thông minh và các thiết bị di động khác trở nên phổ biến
trong những năm gần đây, nhiều công ty đã phải vật lộn để tìm ra giải pháp giữ
cho dữ liệu được lưu trữ và truyền qua các thiết bị này an toàn trước khả năng bị
đánh cắp. May mắn thay, phần mềm mã hóa dữ liệu sẽ cho phép bạn đảm bảo rằng
tất cả dữ liệu, trên bất kỳ thiết bị nào, đều được mã hóa hoàn toàn với các biện
pháp bảo vệ tương tự như bạn sẽ tìm thấy trong dữ liệu được lưu trữ trên máy tính
để bàn. Mã hóa dữ liệu sẽ giúp xử lý một tình huống căng thẳng, không thể tránh
khỏi và giúp nó có thể kiểm soát được, đồng thời mang lại sự yên tâm. Trên hết,
xác thực thiết bị có thể loại bỏ nguy cơ xâm nhập từ những người dùng không
mong muốn.
c. Di chuyển dữ liệu một cách an toàn
Một trong những khía cạnh dễ bị tấn công nhất của dữ liệu xuất hiện trong quá
trình vận chuyển. Mặc dù SSL / TLS là tiêu chuẩn công nghiệp cho dữ liệu đang
chuyển động, nó có nhiều nhược điểm đối với bảo mật dữ liệu của bạn. Một giải
pháp mã hóa hiệu quả giúp đảm bảo rằng dữ liệu được bảo vệ mọi lúc, mọi nơi và
chuyển động. Các tệp được chia sẻ hoặc tải lên hệ thống đám mây phải đảm bảo
rằng các tệp vẫn an toàn trong suốt quá trình vận chuyển.
d. Tính toàn vẹn được duy trì
Một trong những lo lắng mà nhiều tổ chức thuộc mọi quy mô đều chia sẻ là liệu
quá trình mã hóa có ảnh hưởng đến tính toàn vẹn của dữ liệu của họ hay không.
Mặc dù đánh cắp dữ liệu là một vấn đề rất phổ biến, nhưng một cách khác để tin
tặc thực hiện hành vi gian lận dữ liệu là làm thay đổi dữ liệu có sẵn. Mã hóa
giữ cho dữ liệu của bạn an toàn không bị thay đổi và người nhận dữ liệu sẽ có thể
xem liệu nó có bị giả mạo hay không. Thay đổi dữ liệu là điều mà các doanh
nghiệp thường bỏ qua khi họ đang tìm cách giữ an toàn cho dữ liệu của mình.
Bảo vệ dữ liệu cơ bản là hoàn toàn cần thiết cho doanh nghiệp của bạn.
Đối với những người muốn thực hiện bước tiếp theo hoặc đang khôi phục sau sự
cố đánh cắp dữ liệu của chính họ, mã hóa là một trong những phương pháp tốt nhất
để đảm bảo rằng dữ liệu của bạn vẫn an toàn. Nó cho phép bạn đạt được bảo mật
hoàn toàn trên tất cả các thiết bị, gửi và nhận dữ liệu một cách an toàn và đảm bảo
tính toàn vẹn tuyệt đối, bất cứ khi nào tệp được truy cập hoặc chia sẻ. Nếu bạn
quan tâm đến việc bảo vệ doanh nghiệp của mình khỏi tác động của việc vi
phạm dữ liệu, thì phần mềm mã hóa là một khoản đầu tư tuyệt vời.
Giải pháp đưa ra
Có hai loại giải pháp mã hóa cơ bản: Giải pháp cho dữ liệu ở trạng thái nghỉ và
cho dữ liệu đang chuyển.
Dữ liệu ở trạng thái nghỉ là thông tin được lưu trữ chẳng hạn như trên máy chủ
hoặc trong ổ cứng máy tính. Dữ liệu đang truyền có nghĩa là dữ liệu đang được
truyền cho dù là email hoặc các thông điệp nội bộ từ hệ thống sang hệ thống có
truyền dữ liệu xung quanh mạng của bạn hay không. Các tin nhắn có thể là email,
nhưng chúng cũng có thể là các tin nhắn nội bộ, từ hệ thống đến hệ thống mang dữ
liệu xung quanh mạng của bạn.
Các giải pháp riêng biệt có sẵn cho dữ liệu ở trạng thái nghỉ so với dữ liệu đang
chuyển. Về mặt hệ thống, mỗi thứ đều có tác động riêng. Đối với dữ liệu ở trạng
thái nghỉ, bạn phải định cấu hình bất kỳ ứng dụng nào cần quyền truy cập vào dữ
liệu được mã hóa với các phương tiện để giải mã nó. Có khá nhiều giải pháp bảo
mật dữ liệu cho việc này như Bitlocker (dành cho Windows) hoặc Firevault (dành
cho MACos). Đối với dữ liệu đang chuyển, bạn phải sắp xếp để cả người gửi và
người nhận có khả năng mã hóa / giải mã. Loại mã hóa này được gọi là mã hóa
đầu cuối hoặc E2EE. Những yêu cầu này tạo ra gánh nặng quản trị và mọi thứ có
thể nhanh chóng trở nên khá phức tạp khi bạn gửi tin nhắn được mã hóa ra bên
ngoài tổ chức của mình, v.v.
1.2. Ứng dụng và mục tiêu
Hệ mã Caesar có thể được ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm:
• Giao tiếp bí mật: Hệ mã Caesar có thể được sử dụng để truyền đạt thông tin
bí mật giữa hai hoặc nhiều người.
• Giáo dục: Hệ mã Caesar có thể được sử dụng để dạy học sinh về các khái
niệm cơ bản về mật mã học.
• Giải trí: Hệ mã Caesar có thể được sử dụng để tạo ra các trò chơi và câu đố.
Vào thế kỷ XIX, phần quảng cáo cá nhân trên các tờ báo đôi khi là nơi người ta
sử dụng để trao đổi những thông điệp mã hóa, sử dụng các bộ mã đơn giản. Kahn
(1967) mô tả về các trường hợp mà những cặp đôi tham gia đối đáp bí mật với
nhau bằng cách dùng mật mã Caesar trên tờ The Times. Ngay cả vào cuối năm
1915, mật mã Caesar vẫn được sử dụng khi quân đội Nga thay thế nó cho những
dạng mật mã phức tạp hơn, vốn tỏ ra quá khó đối với họ; thế nhưng các nhà phân
tích mật mã người Áo và người Đức lại rất dễ dàng phá giải các tin nhắn mã hóa
của quân đội Nga.
Cấu trúc của hai đĩa quay với mật mã Caesar có thể được sử dụng trong cả việc
mã hóa lẫn giải mã.
Ngày nay, chúng ta có thể tìm thấy mật mã Caesar trong các trò chơi dành cho
trẻ em, chẳng hạn như vòng giải mã bí mật. Thuật toán ROT13 là một mật mã
Caesar với độ dịch chuyển 13, nó được sử dụng để làm xáo trộn các văn bản được
tìm thấy trên Usenet và dùng để che mờ đoạn văn (như đoạn cuối của câu chuyện
cười hay phần tiết lộ nội dung câu chuyện), nhưng không được dùng như một
phương pháp mã hóa nghiêm túc.
Mật mã Vigenère sử dụng mật mã Caesar với độ dịch chuyển khác nhau tại mỗi
vị trí trong văn bản; giá trị của mỗi khóa mã được xác định bằng một từ khóa lặp
lại. Nếu từ khóa có dung lượng bằng tin nhắn, được chọn ngẫu nhiên, không bị
người khác biết đến và không bao giờ được sử dụng lại, thì đây là dạng mật mã
một lần, được chứng minh là không thể phá giải. Điều kiện trên khó tới mức gần
như không bao giờ đạt được. Những từ khóa ngắn hơn tin nhắn (ví dụ: "Complete
Victory" được Liên Minh miền Nam sử dụng trong Nội chiến Hoa Kỳ), tạo ra một
dạng mật mã tuần hoàn có thể phá giải bằng cách thực hiện phân tích tần suất với
thống kê nâng cao.
7
Tháng 4 năm 2006, trùm Mafia Bernardo Provenzano bị bắt ở Sicilia khi đang
trên đường chạy trốn, một phần vì các thông điệp bị phá giải của ông ta được viết
bằng một biến thể vụng về của mật mã Caesar. Mật mã của Provenzano sử dụng
các con số, trong đó "A" được viết là "4", "B" là "5"...
Năm 2011, Rajib Karim bị kết án ở Vương quốc Anh về "tội khủng bố" sau khi
sử dụng mật mã Caesar để liên lạc với các nhà hoạt động Hồi giáo Bangladesh,
thảo luận về âm mưu làm nổ máy bay hoặc phá vỡ mạng công nghệ thông tin của
British Airways. Mặc dù các bên có quyền tiếp cận các kỹ thuật mã hóa tốt hơn
nhiều (bản thân Karim đã sử dụng PGP để lưu trữ dữ liệu trên đĩa máy tính),
nhưng họ vẫn chọn bộ mã của riêng mình (được triển khai trên Microsoft Excel),
khước từ một bộ mã phức tạp hơn có tên Mujahedeen Secrets, "bởi vì các 'kaffir'
hay những kẻ ngoại đạo biết về nó, nên sẽ kém bảo mật hơn". Suy nghĩ trên khiến
họ tạo một trình ứng dụng an ninh qua trạng thái mập mờ.
Tuy không còn hưu dụng nhiều, nhưng hệ mã hóa Caesar đã là nền tảng cho sự
phát triển Mật mã học nói chung và hệ mã hóa đối xứng nói riêng. Nhờ Caesar mà
con người có thể phát triển ra nhiều hệ mã hóa hơn với độ bảo mật cao. Đặc biệt đã
xuất hiện hệ mã hóa cấp cao như AES được sử dụng rộng rãi trong các ứng dụng
nhắn tin an toàn lẫn lưu trữ đám mây, chính là một ví dụ điển hình của mật mã đối
xứng.
Hoặc mục đích đơn giản của Caesar như đã nói ở trên là giúp những bạn mới dễ
tiếp cận và hiểu về Mật mã học từ lúc mới bắt đầu, hoặc ứng dụng thực tiễn vào
truyền văn bản dữ liệu. Để rồi có nền tảng tốt thì chúng ta có thể học tập và phát
triển tới các hệ mã hóa có độ phức tạp và tính hữu dụng cao hơn.
8
Chương II. Nguyên lí và cách hoạt động
2.1. Nguyên lí hoạt động
Mật mã là một dạng của mật mã thay thế, trong đó mỗi ký tự trong văn bản được
thay thế bằng một ký tự cách nó một đoạn trong bảng chữ cái sau khi dịch chuyển k
đơn vị để tạo thành bản mã. Bởi sự đơn giản của nó nên hệ mã hóa này được biết
đến rất rộng rãi.
Để giải mã, ta thực hiện ngược lại bằng cách chuyển dịch từng kí tự của bản mã
lùi về k bước.
10
ki: Khóa hoặc "chìa khóa" sử dụng để mã hóa.)
m: Một giá trị hằng số (thường là kích thước của bảng mã hoặc tập hợp các ký tự
có thể được mã hóa).)
11
O (14 + 3) mod 26 = 17 (ký tự "R")
Do đó, khi mã hóa "HELLO" với khóa 3, ta sẽ nhận được "KHOOQ" như là văn
bản đã được mã hóa.
• Giải mã
Công thức giải mã của hệ là:
Quá trình giải mã của người nhận mật mã được thực hiện ngược lại, với thao tác
dịch sang phải theo khóa K đã chọn ban đầu.
Thám mã Caesar là việc làm đơn giản, do số khóa có thể có là rất ít. Chỉ có 26
khóa có thể, vì một ký tự chỉ có thể ánh xạ vào một trong số 26 chữ cái của bảng
chữ cái tiếng Anh: A, B, C… Các chữ khác sẽ được xác định bằng số bước tịnh tiến
tương ứng của. Kẻ thám mã có thể thử lần lượt từng khóa một, tức là sử dụng
phương pháp tìm duyệt tổng thể. Vì số khóa ít nên việc tìm duyệt là khả thi. Cho
trước bản mã, thử 26 cách dịch chuyển khác nhau, ta sẽ đoán nhận thông qua nội
dung các bản rõ nhận được.
Văn bản mã hóa: "KHOOQ"
Khóa ki: 3 (giả sử ta biết khóa đã được sử dụng))
Mỗi ký tự Ci trong "KHOOQ" sẽ được giải mã bằng công thức Pi = (Ci - 3) mod
26.)
K (10 - 3) mod 26 = 7 (ký tự "H")
H (7 - 3) mod 26 = 4 (ký tự "E")
O (14 - 3) mod 26 = 11 (ký tự "L")
O (14 - 3) mod 26 = 11 (ký tự "L")
Q (17 - 3) mod 26 = 14 (ký tự "O")
Do đó, khi ta giải mã "KHOOQ" với khóa 3, sẽ nhận được "HELLO" như là văn
bản đã giải mã.
Ví dụ thực tế:
• Chọn bản rõ: TOIYEUHUMG
• Chọn khóa K = 3
• Áp dụng công thức mã hóa: và áp dụng bảng chữ mã chữ cái khóa ENG
bên trên ta có thể chuyển từ bản rõ sang bản mã như sau:
T (x=19) 19 + 3 = 22(W)
O (x=14) 14 + 3 = 17(R)
12
I (x=8) 8 + 3 = 11(L)
…..
T O I Y E
W R L B H
U H U M G
X K X P J
Ta thu được bản mã: WRLBHXKXP
• Để giải mã thì ta áp dụng công thức: Và ta sẽ thu được bản rõ ban đầu là:
TOIYEUHUMG.
Để làm rõ vấn đề ta thêm một ví dụ
Văn bản gốc (Văn bản chưa mã hóa): ABCDEF
Văn bản mã hóa: CDEFGH
Trong ví dụ trên, các kí tự trong văn bản gốc được mã hóa bằng cách dịch sang
phải 2 kí tự. k=2.
Gốc A B C D E F…X Y Z
Mã hóa C D E F G H … Z A B
Vì được dịch sang phải 2 ký tự nên A được mã hóa thành C, B mã hóa thành
D… Đặc biệt, Y được mã hóa thành A, Z được mã hóa thành B, quay lại các ký tự
đầu tiên.
Ví dụ 2:
Văn bản gốc (Văn bản chưa mã hóa): ABCDEF
Văn bản mã hóa: YZABCD
Trong ví dụ trên, các kí tự trong văn bản gốc được mã hóa bằng cách dịch sang
trái 2 kí tự. k=-2.
Gốc ABCDEF…XYZ
Mã hóa Y Z A B C D … U V X
Vì được dịch sang trái 2 ký tự nên C được mã hóa thành A, D mã hóa thành
B… Đặc biệt, A được mã hóa thành Y, B được mã hóa thành Z, quay lại các ký tự
cuối cùng.
13
=> Kết luận: chúng ta có thể thấy rằng k âm là phương pháp giải mã cho mã
hoá với k dương và ngược lại.
Trong trường hợp người ta biết một cách chắc chắn rằng mật mã Caesar đã
được sử dụng trong mã hóa, thì để thực hiện phân tích mật mã bạo lực, chỉ cần sắp
xếp thông qua 26 khóa, liên quan đến ngôn ngữ tiếng Anh, do mức độ phổ biến
của mã hóa và giải mã. Ngoài ra, nếu một ký tự đã được biết, thì bằng cách xác
định độ lệch, bạn có thể nhanh chóng giải mã toàn bộ thư. Một trong những
phương pháp phổ biến nhất được sử dụng trong phân tích mật mã là “Phân tích tần
số”, giả định rằng trong các văn bản dài và đối với các văn bản khác nhau của
cùng một ngôn ngữ, tần suất xuất hiện của một chữ cái nhất định trong bảng chữ
cái không thay đổi. Phương pháp phân tích mật mã bằng tần số đã trở nên nổi
tiếng đặc biệt vào năm 1822, trong quá trình giải mã các chữ tượng hình Ai Cập.
Kể từ giữa thế kỷ trước, sự phát triển của phần lớn các thuật toán mã hóa đã được
thực hiện có tính đến khả năng chống phá mã bằng tần số, và do đó nó thường
được sử dụng trong quá trình đào tạo các nhà mật mã trong tương lai.
Không những vậy, một máy tính bình thường hiện nay có thể giải chuỗi mã hóa
Caesar 1000 kí tự bằng phương pháp thử và lỗi (brute force) trong bao 26ms (26
mili giây).
Gỉa định
Chuỗi mã hóa có độ dài 1000 ký tự.
Số lượng khóa có thể có là 26.
Cách tính thời gian tấn công brute force:
Mỗi lần thử một giá trị khóa, cần kiểm tra xem kết quả có đúng hay không.
Điều này đòi hỏi ít nhất 1000 phép so sánh với chuỗi đã mã hóa.
Tổng số lần thử (26 khóa * 1000 so sánh) sẽ là 26,000.
Giả sử một máy tính thực hiện 1 triệu phép tính trên 1s, thời gian tối thiểu sẽ là
26,000 / 1,000,000 giây = 0.026 giây, tức là khoảng 26 mili giây.
=> Vậy nên mã hóa caesar rất dễ thực hiện trên máy tính
2.2. Ưu và nhược điểm của mã hóa Ceaser
2.2.1. Ưu điểm
Đơn giản: Dễ hiểu và thực hiện mà không cần kiến thức toán học hay máy tính
phức tạp
14
Nhanh chóng: Quá trình mã hóa và giải mã nhanh chóng, đặc biệt là với văn
bản ngắn
Sử dụng cơ bản: Không cần công cụ đặc biệt, chỉ cần biết cách di duyển các ký
tự trong bảng chữ cái
Không đòi hỏi công cụ phức tạp: Không cần sử dụng phần mềm hoặc công cụ
đặc biệt để thực hiện mã hóa và giải mã. Chỉ cần biết cách di chuyển các ký tự trong
bảng chữ cái
Khả năng áp dụng rộng rãi: Có thể áp dụng mã hóa Caesar trong nhiều tình
huống khác nhau, từ việc bảo vệ thông tin cá nhân đến việc tạo ra các trò chơi giáo
dục về mã hóa.
Tốc độ xử lý nhanh: Phương pháp mã hóa và giải mã đơn giản, việc xử lý
thông tin cũng rất nhanh chóng, đặc biệt là với các văn bản ngắn. Điều này có nghĩa
là có thể mã hóa và giải mã dữ liệu một cách hiệu quả mà không cần đến máy tính
hoặc công cụ phức tạp.
2.2.2. Nhược điểm
Độ an toàn kém: Bởi vì mã hóa đơn giản và dễ dàng giải mãi, nên nó không đảm
bảo độ bảo mật cao. Có thể dễ dàng bị tấn công bằng các kỹ thuật phân tích tần số hoặc
từ điển, đặc biệt với văn bản dài hoặc ngôn ngữ phổ biến. Điều này làm cho mã hóa
Caesar không phù hợp cho việc bảo mật thông tin quan trọng hoặc nhạy cảm.
Dễ phát hiện mẫu: Trong các văn bản dài, các mẫu từ hoặc các chuỗi ký tự phổ
biến có thể dễ dàng nhận biết và giúp kẻ tấn công suy luận được khóa mã hóa.
Không bảo vệ trước các kỹ thuật hiện đại: Hệ mã Caesar không có khả năng
chống lại các kỹ thuật mã hóa hiện đại như phân tích từ điển hoặc các phương pháp mã
hóa phức tạp như AES.
Dễ bị giải mãi: Vì phương pháp này rất đơn giản, nên nó dễ bị giải mã bằng cách
thử và sai hoặc phương pháp phân tích tần số
Không an toàn: Dễ dàng bị tấn công bằng các kỹ thuật phân tích tần số hoặc từ
điển, đặc biệt với văn bản dài và ngôn ngữ phổ biến
Giới hạn: Không hiệu quả cho việc mã hóa văn bản dài hoặc trong các ứng dụng cần độ
bảo mật cao.
15
CHƯƠNG III. CÀI ĐẶT MẪU VÀ ỨNG DỤNG
Cho đoạn Source Code ta thực hiện theo trình tự:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Trò chuyện và Giải mã Caesar Cipher</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Trò chuyện và Giải mã Caesar Cipher</h1>
<div id="chatSection">
<div id="chatWindow" class="chat-window">
<div class="form-row">
<input type="text" id="userInput" placeholder="Nhập tin nhắn của
bạn" required>
<button id="sendButton">Gửi</button>
</div>
<div id="systemMessage" class="chat-message system-
message"></div>
<div class="form-row" style="display:none;" id="khóaInputRow">
<label for="khóaInput">Khóa:</label>
<input type="number" id="khóaInput" placeholder="Nhập khóa"
min="1" max="25" required>
<button id="encryptButton">Mã hóa</button>
</div>
<div id="encryptedMessage" class="chat-message encrypted-
message"></div>
<div class="form-row" style="display:none;"
id="decryptKhóaInputRow">
16
<label for="decryptKhóaInput">Khóa giải mã:</label>
<input type="number" id="decryptKhóaInput" placeholder="Nhập
khóa giải mã" min="1" max="25" required>
<button id="decryptButton">Giải mã</button>
</div>
</div>
</div>
<div id="decryptedSection" style="display:none;">
<h2>Tin nhắn đã giải mã:</h2>
<div id="decryptedMessage" class="decrypted-message"></div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function() {
var sendButton = document.getElementById('sendButton');
var encryptButton = document.getElementById('encryptButton');
var decryptButton = document.getElementById('decryptButton');
var systemMessage = document.getElementById('systemMessage');
var encryptedMessage = document.getElementById('encryptedMessage');
var decryptedMessage = document.getElementById('decryptedMessage');
var userInputField = document.getElementById('userInput');
var khóaInputField = document.getElementById('khóaInput');
var decryptKhóaInputField =
document.getElementById('decryptKhóaInput');
var khóaInputRow = document.getElementById('khóaInputRow');
var decryptKhóaInputRow =
document.getElementById('decryptKhóaInputRow');
var decryptedSection = document.getElementById('decryptedSection');
function isValidKhóa(khóa) {
return khóa >= 1 && khóa <= 25;
17
}
sendButton.addEventListener('click', function() {
var userInput = userInputField.value.trim();
if (userInput === "") {
alert('Vui lòng nhập tin nhắn của bạn.');
return;
}
systemMessage.textContent = 'Tin nhắn của bạn: ' + userInput;
khóaInputRow.style.display = 'block'; // Hiển thị phần nhập khóa
});
encryptButton.addEventListener('click', function() {
var shift = parseInt(khóaInputField.value.trim(), 10);
if (!isValidKhóa(shift)) {
alert('Khóa phải nằm trong khoảng từ 1 đến 25.');
return;
}
var userInput = systemMessage.textContent.replace('Tin nhắn của bạn:
', '');
fetch('caesar_cipher.php', {
method: 'POST',
body: JSON.stringify({ text: userInput, shift: shift }),
headers: { 'Content-Type': 'application/json' }
})
.then(response => response.json())
.then(data => {
if (data.encrypted) {
encryptedMessage.textContent = 'Tin nhắn đã mã hóa: ' +
data.encrypted;
18
decryptKhóaInputRow.style.display = 'block'; // Hiển thị phần
nhập khóa giải mã
decryptedSection.style.display = 'block'; // Hiển thị phần giải mã
} else {
systemMessage.textContent = data.error || 'Đã có lỗi xảy ra.';
}
})
.catch(error => {
systemMessage.textContent = 'Lỗi khi gửi tin nhắn: ' +
error.message;
});
});
decryptButton.addEventListener('click', function() {
var encryptedText = encryptedMessage.textContent.replace('Tin nhắn
đã mã hóa: ', '');
var shift = parseInt(decryptKhóaInputField.value.trim(), 10);
if (!isValidKhóa(shift)) {
alert('Khóa giải mã phải nằm trong khoảng từ 1 đến 25.');
return;
}
fetch('caesar_cipher.php', {
method: 'POST',
body: JSON.stringify({ text: encryptedText, shift: shift, decrypt: true
}),
headers: { 'Content-Type': 'application/json' }
})
.then(response => response.json())
.then(data => {
if (data.decrypted) {
19
decryptedMessage.textContent = 'Tin nhắn đã giải mã: ' +
data.decrypted;
} else {
decryptedMessage.textContent = data.error || 'Đã có lỗi xảy ra khi
giải mã.';
}
})
.catch(error => {
decryptedMessage.textContent = 'Lỗi khi giải mã tin nhắn: ' +
error.message;
});
});
});
</script>
</body>
</html>
20
Bước 2: Sử dụng ngôn ngữ lập trình PHP, Sau đó ta nhập Source sẵn có vào
VScode và tiến hành chạy
21
Sau đó ta nhập “Khóa” mã hóa để bảo mật dữ liệu văn bản
Hình 9: Nhập khóa 13 để tiến hành mã hóa và bảo mật văn bản
Sau khi văn bản đến tay người nhận, ta tiến hành giải mã văn bản:
Sau đây ta chia thành 2 trường hợp: “Khóa Sai” và “Khóa đúng”
Trường hợp 1: “Khóa Sai” gồm: Chuỗi kí tự khác “13” và các chuỗi số không nằm
trong khoản từ “1-25”
Ví dụ: Khóa là 9
22
Ta thấy được hệ thống báo lỗi (người nhận chưa nhận được tin)
23
CHƯƠNG IV. KẾT LUẬN
4.1. Kết quả đánh giá
Sau khi tìm hiểu sâu về mã khóa em đã tìm hiểu được Hệ thống mật mã cổ điển
(các loại mật mã được phát minh và ứng dụng trong thời kỳ tiền máy tính) có rất
nhiều. Nhưng tựu chung lại có thể chia thành 2 dạng lớn: Mật mã chuyển vị và
Mật mã thay thế.
Mật mã chuyển vị là loại mật mã mà các kí tự trong bản rõ sẽ được hoán vị theo
một cách thức nào đó để tạo nên bản mã. Ví dụ điển hình là cách mã hóa mà người
ta dùng một mảnh vải dài quắn hình xoắn ốc quanh một thanh hình trụ, người tạo
mã sẽ viết thông tin lên vải theo chiều dọc của thanh hình trụ rồi trải mảnh vải ra
đọc theo chiều dài mảnh vải sẽ được bản mã. Cách mã hóa này thường xuất
hiện ở những trò chơi đi tìm mật thư trong nhà trường. Hệ thống mã hóa này yếu
và ít biến thể nên tôi sẽ không trình bày ở đây.
Mật mã thay thế là loại mật mã mà mỗi kí tự trong bản rõ được thay bằng một
kí tự trong bản mã theo một quy tắc nhất định. Thể loại này có nhiều biến thể, và
trong các bài tiếp theo chúng ta sẽ đi qua một số loại mã thay thế phổ biến nhất:
Mã Caesar, mã Affine, mã thay thế đơn giản, mã Vigenere… Đầu tiên và đơn giản
nhất là mã Caesar.
Mã hóa Caesar là một mã hóa đơn giản nhưng có hiệu quả ở thời kỳ Trung đại
và không còn hiệu quả tại thời kỳ hiện nay.
4.2. Nhận xét và đánh giá
Mặc dù mật mã Caesar rất đơn giản, rất dễ dàng phá được nếu biết được cơ chế
mã hoá. Tuy nhiên với thời kỳ của "Xê-da" thì việc này thực sự khó khăn và hầu
như không thể vì không biết được đến cơ chế mã hoá đó.
Về cơ bản, một mật mã mạnh hay yếu (quá trình mã hoá có dễ dàng giải mã được
hay không) phụ thuộc vào 2 yếu tố là cơ chế mã hoá và số lượng các khoá. Chúng ta
có thể hình dung đơn giản việc đó như ví dụ ở trên phần giải mã, sau này khi tiếp
cận với các cơ chế mã hoá phức tạp hơn rất nhiều thì chúng vẫn giữ những nguyên
tắc cơ bản tương tự như Mật mã Caesar ngay cả trong trường hợp người giải mã chỉ
có trong tay các bản mật mã. Có ba kỹ thuật chính mà hắn có thể sử dụng: phân tích
tần suất, dựa vào nội dung gốc đã biết và dò tìm triệt để (brute-force).
24
Phân tích tần suất
Ngôn ngữ của loài người thường dùng một số ký tự nhiều hơn những ký tự khác.
Ví dụ, chữ "E" là chữ cái phổ biến nhất trong tiếng Anh. Ta có thể phân tích tần
suất xuất hiện của các chữ cái trong tin nhắn trên và tìm ra chữ cái có khả năng
tương ứng với chữ "E" nhất, từ đó suy ra khoảng dịch chuyển chữ cái.
Ta cùng thử nhé! Hãy copy và dán lại tin nhắn mà phe địch đã nắm được ở trên
vào ô bên dưới rồi phân tích biểu đồ tần suất để tìm ra chữ cái có thể là "E":
Dựa vào nội dung gốc đã biết
Một thuật ngữ khác để chỉ tin nhắn gốc chưa bị mã hóa là nội dung gốc. Nếu như
kẻ thù đã biết được một vài phần của bản gốc thì chúng có thể dễ dàng bẻ khóa
phần còn lại của mật mã hơn nhiều.
Ví dụ, có thể các tin nhắn đều sẽ có phần mở đầu giống nhau. Trong Thế Chiến
II, những tin nhắn được mã hóa của quân Đức luôn bắt đầu bằng việc dự báo thời
tiết. Điều này giúp cho nhà toán học người Anh Alan Turing dễ dàng bẻ khóa chúng
hơn.
Dò tìm triệt để (brute force)
Chỉ có 25 cách dịch chuyển chữ cái trong bảng chữ cái tiếng Anh. Kẻ thù có thể
dành thời gian để thử từng cách và tìm ra tin nhắn có nghĩa nhất. Thậm chí, chúng
có thể không cần phải thử tất cả các cách dịch chuyển đó trên toàn bộ tin nhắn, mà
chỉ cần dùng với một hay hai từ đầu tiên là có thể tìm ra đáp án.
Vậy nên mật mã Caesar vẫn là tiền đề để phát triển an toàn thông tin mạng trong
hiện nay.
25
Tài liệu tham khảo
1. Sách Caesar Cipher - 2012 - Jesse Russell, Ronald Cohn.
2. WikiBook: wikibooks.org/wiki/Cryptography/Caesar_cipher
3. Mật mã và an toàn thông tin – NXB Thông tin và Truyền thông.
4. Khoa Học Khám Phá - Mật Mã - Từ Cổ Điển Đến Lượng Tử -NXB Trẻ.
5. Sách The Mathematics of Secrets - tác giả: Joshua Hoden
6. Bài viết về Caesar: Viblo.asia/p/mat-ma-hoc-phan-1-ma-hoa-caesar-
RQqKLM0MZ7z
26
13