crypto

Hệ thống mã hóa đối xứng

Các phương pháp truyền thống

(xem lại CSC15005)

Shift Cipher, mã hóa Caesar

Dịch chuyển xoay vòng từng ký tự đi $k$ vị trí. $k = 3$ là mã hóa Caesar.

Cho $\mathcal{P} = \mathcal{C} = \mathcal{K} = \mathbb{Z}_n$. Với mỗi khóa $k \in \mathcal{K}$, định nghĩa

Tính chất:

Subtitution Cipher

Hoán vị các phần tử trong bảng chữ cái. Tổng quát hơn: hoán vị (permute) các phần tử trong tập nguồn $\mathcal{P}$.

Cho $\mathcal{P} = \mathcal{C} = \mathbb{Z}_n, \mathcal{K}$ là tập hợp các hoán vị của $n$ phần tử $0, 1, .., n - 1$. Vậy, mỗi khóa $\pi \in \mathcal{K}$ là một hoán vị của $n$ phần tử $0, 1, .., n - 1$.

Với mỗi khóa $\pi \in \mathcal{K}$, định nghĩa:

Tính chất:

(Ngoài lề): veni vidi vici - I came, I saw, I conquered

Phương pháp Affine

Cho $\mathcal{P} = \mathcal{C} = \mathbb{Z}_n, \mathcal{K} = {(a, b) \in \mathbb{Z}_n \times \mathbb{Z}_n: (a, n) = 1}$. Với mỗi khóa $k = (a, b) \in \mathcal{K}$, định nghĩa:

Giải mã chính xác thì $e_k$ phải là song ánh, khi đó $(a, n) = 1$.

Gọi $\phi(n)$ (hàm phi Euler) là số lượng phần tử thuộc $\mathbb{Z}_n$ và nguyên tố cùng nhau với $n$.

Nếu $n = \prod_{i = 1}^{m} p_i^{e_i}$ với $p_i$ nguyên tố khác nhau đôi một, $e_i \in \mathbb{Z}^{+}, i \in [1, m]$ thì $\phi(n) = \prod_{i = 1}^{m}p_i^{e_i} - p_i^{e_i - 1}$ (number theory - xem lại).

Ta có

XEuclidean

Cho $a, b \in \mathbb{Z}$, xây dựng dãy sau:

Thực hiện:

Lặp đến khi $r_{k + 1} = 0$, khi đó $r_k = (a, b) = as_k + bt_k$

Phương pháp Vigenere

Chọn $m \in \mathbb{Z}$. Định nghĩa $\mathcal{P} = \mathcal{C} = \mathcal{K} = (\mathbb{Z}_n)^m$

Mã hóa bằng thay thế: mỗi khóa $k$ được chọn, mỗi $x \in \mathcal{P}$ được ánh xạ duy nhất một $y \in \mathcal{C}$

Mã hóa Vigenere sử dụng khóa có độ dài $m$.

Hill Cipher

(Xem lại CSC15005)

Mã hóa bằng hoán vị

Trường hợp đặc biệt của mã hóa Hill.

Chọn số nguyên dương $m$. Định nghĩa