Mã dịch chuyển (shift cipher)
Đặt P=C=K=. Với
, định nghĩa:
mod 26
và
mod 26
(x, y
).
Trường hợp đặc biệt K=3 ứng với hệ mật mã Caesar.
Ví dụ:
Plain: meet me after the toga party
Cipher: PHHW PH DIWHU WKH WRJD SDUWB
Mã thay thế (substitution cipher)
Đặt P=C=. Với
gồm tất cả các hoán vị có thể của 26 ký hiệu 0, 1, …, 25. Với mỗi K
K định nghĩa:
mod 26
và
mod 26
Trong đó
là hoán vị ngược của K.
Hệ mật mã Affine
Đặt P=C=
và đặt
K={(a, b)
X
: gcd(a, 26)=1}.
Với K=(a, b)
K, định nghĩa:
mod 26
và
mod 26
(x, y
).
Trong đó
, sao cho
.
Ví dụ:
K=(7, 3)
Giải thuật Euclid mở rộng:
Tính phần tử nghịch đảo: a-1
1. n0 = n
2. a0 = a
3. t0 = 0
4. t = 1
5. q =
6. r = n0 – q x a0
7. while r > 0 do
8. temp = t0 – q x t
9. If temp
0 then temp = temp mod n
10. If temp < 0 then temp = n – ((-temp) mod n)
11. t0 = t
12. t = temp
13. n0 = a0
14. a0 = r
15. q =
16. r = n0 – q x a0
17. if a0 1 then
a không có nghịch đảo
else
a-1 = t mod n
Hệ mật mã Vigenere
Đặt m là một số nguyên dương. Định nghĩa P=C=K=
. Với một khóa K=(
), chúng ta định nghĩa:
và
Trong đó các phép +, - được thực hiện trên trường
.
Hệ mật mã Hill
Đặt m là một số nguyên dương. Đặt P=C=(
)m và đặt
K={m x m là ma trận khả nghịch trên
}.
Với K
K, định nghĩa:
mod 26
và
mod 26
(x, y
).
Trong đó: KK-1 = Imvới Imlà ma trận đơn vị.
Ví dụ: Với m=2; K=
, K-1=
có x=(9, 20), xK=(3, 4); có x=(11, 24), xK=(11, 22);
Mã hoán vị (permutation cipher)
Đặt m là một số nguyên dương. Đặt P=C=(
)m và đặt K là tập tất cả các hoán vị của tập {1, …, m}. Với K
K, định nghĩa:
mod 26
và
mod 26
Trong đó
là hoán vị ngược của
.
Mã dòng (stream cipher)
Định nghĩa
Một hệ mã dòng là một bộ 7 (P, C, K, L, F,,D), thỏa mãn các điều kiện sau đây:
- P là tập hữu hạn các bản tin rõ
- C là một tập hữu hạn các bản tin đã mã hóa
- K là không gian khóa, là tập hữu hạn các khóa
- L là tập các dòng khóa
-
F
=(f
1
, f
2,
….) là bộ sinh.
Với i>=1: f
i
: KxP
i-1
-> L
- Với mỗi z
<L, tồn tại một giải thuật mã hóa
và một giải thuật giải mã
D. Trong đó: PC và
CP là các hàm sao cho
với mọi x
P.