Trực quan hóa các thuật toán mã hóa cơ bản
Môn học: Nhập môn an toàn thông tin
Lê Hoàng Khang | iamhoangkhang@icloud.com
MD5 (Message-Digest Algorithm 5) là một hàm băm mật mã học tạo ra giá trị hash 128-bit. Thuật toán này được sử dụng rộng rãi để kiểm tra tính toàn vẹn của dữ liệu và lưu trữ mật khẩu.
Mã Caesar là một loại mật mã thay thế, trong đó mỗi ký tự trong văn bản gốc được thay thế bằng một ký tự cách nó một khoảng xác định trong bảng chữ cái.
Example: "HELLO" → "KHOOR"
Mã hóa: E(x) = (x + k) mod 26
Giải mã: D(x) = (x - k) mod 26
Trong đó:
Playfair là một mật mã thay thế sử dụng ma trận 5x5 các chữ cái (I/J được gộp chung). Văn bản được chia thành các cặp chữ cái và mã hóa theo quy tắc:
Vigenère là một hệ mật mã đa bảng chữ cái, sử dụng các phép dịch Caesar khác nhau dựa trên các chữ cái trong từ khóa.
A | B | C | D | E | F | G |
---|
Mã hóa: Ci = (Pi + Ki) mod 26
Giải mã: Pi = (Ci - Ki) mod 26
Trong đó:
Bcrypt là một thuật toán mã hóa mật khẩu một chiều, được thiết kế đặc biệt để hash mật khẩu. Thuật toán này tự động tích hợp salt và có thể điều chỉnh độ phức tạp để chống lại các cuộc tấn công brute-force.
AES là thuật toán mã hóa đối xứng tiêu chuẩn được sử dụng rộng rãi nhất hiện nay. AES sử dụng cùng một khóa cho cả mã hóa và giải mã, với độ dài khóa có thể là 128, 192 hoặc 256 bit.
RSA là thuật toán mã hóa bất đối xứng được sử dụng rộng rãi nhất hiện nay. Thuật toán sử dụng cặp khóa công khai và khóa riêng tư, dựa trên độ khó của bài toán phân tích số nguyên thành tích các số nguyên tố.
(e, n)
(d, n)
p = 17 và q = 11
n = p × q = 17 × 11 = 187
φ(n) = (p-1) × (q-1) = 16 × 10 = 160
e = 7 (vì GCD(7,160) = 1)
d × e ≡ 1 (mod φ(n))
d × 7 ≡ 1 (mod 160)
d = 23 (vì 23 × 7 = 161 ≡ 1 (mod 160))
(e,n) = (7,187)
(d,n) = (23,187)
Giả sử muốn mã hóa số M = 88