0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tổng quan về mật mã học: Các loại mã cổ điển và ứng dụng

Đăng vào 1 tháng trước

• 3 phút đọc

IV. Giới thiệu về một số loại mật mã cổ điển trong mật mã học

1. Mật mã Caesar

Mật mã Caesar là một trong những loại mật mã cổ điển và sớm nhất, được đặt theo tên của Julius Caesar - nhà văn và nhà sử học người La Mã. Ông đã sử dụng mật mã này để mã hóa các thư từ bí mật của mình. Mật mã Caesar, hay còn gọi là mã chuyển vị, là hình thức mã hóa thông qua việc dịch chuyển vị trí của các ký tự trong bảng chữ cái.

Mật mã Caesar điển hình thường sử dụng phép dịch chuyển ký tự sang phải một số vị trí nhất định, trong đó vị trí dịch chuyển thường được đặt là 3. Vì vậy, giá trị của khóa bí mật (secret key) trong trường hợp này là K=3. Nếu áp dụng cho bảng chữ cái tiếng Anh, cách mã hóa sẽ thay thế các chữ cái bằng chữ cái đứng sau nó 3 vị trí. Ví dụ, B sẽ được thay thế thành E, M sẽ trở thành P, còn các ký tự cuối như X, Y và Z sẽ quay lại từ A, B và C.

Với tính chất lặp vòng, chúng ta có thể biểu diễn cách mã hóa của mật mã Caesar dưới dạng toán học:

En(x)=(x+n) mod 26
Dn(x)=(x−n) mod 26

Trong đó, En() là hàm mã hóa, Dn() là hàm giải mã, và n là giá trị khóa bí mật.

Ví dụ, với văn bản mã hóa VIBLOSECURITY, kết quả mã hóa sẽ là:
En(VIBLOSECURITY)=YLEORVHFXULWB.

Để thực hiện mã hóa Caesar trong lập trình, chúng ta có thể viết đoạn mã Python như sau:

python Copy
k = 3
for i in plaintext:
    if (i < 'X'):
        print(chr(ord(i) + k), end = "")
    else:
        print(chr(ord(i) + k - 26), end = "")

Chúng ta cũng có thể sử dụng module cho mã hóa tổng quát:

python Copy
for i in plaintext:
    print(chr(((ord(i) - 65 + k) % 26) + 65), end = "")

2. Mật mã Morse

Mã Morse, được đặt theo tên của Samuel Morse - nhà phát minh điện báo, là một loại mật mã sử dụng trong các lĩnh vực như viễn thông, quân đội và hàng không. Mã Morse ký hiệu các văn bản bằng chuỗi các xung điện được biểu diễn dưới dạng các ký tự .- (dots and dashes).

Ví dụ mã hóa cụm từ viblo security theo mã Morse sẽ cho kết quả:
...- .. -... .-.. --- / ... . -.-. ..- .-. .. - -.--.

3. Mật mã Vigenère

Mật mã Vigenère được đặt theo tên của nhà mật mã học người Pháp Blaise de Vigenère. Đây là loại mã hóa mở rộng từ mật mã Caesar, kết hợp nhiều bước mã hóa Caesar với các khóa có giá trị dịch chuyển khác nhau. Mật mã này sử dụng một bảng vuông 26×26, bao gồm 26 bảng mã Caesar, trong đó mỗi hàng của bảng được dịch chuyển sang bên trái một vị trí so với hàng trên.

Tóm tắt quy trình mã hóa và giải mã Vigenère:

  • Mã hóa: En(Pi) = (Pi + Ki) mod 26
  • Giải mã: Di = (Ei − Ki) mod 26

Trong đó, Ei và Di là các hàm mã hóa và giải mã, Pi và Ki là ký tự của plaintext và khóa tương ứng. Để mã hóa, chúng ta sẽ cần tạo ra một hàm để sinh khóa phù hợp với chiều dài của văn bản gốc.

Tham khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào