Cryptography

RSA

1. Giải thuật mã hóa RSA

Tạo khóa

Chọn hai số nguyên tố lớn pq.

Tính n = p × q (modulus).

Tính φ(n) = (p - 1) × (q - 1).

Chọn một số nguyên e sao cho 1 < e < φ(n)e nguyên tố cùng nhau với φ(n).

Tính d sao cho d × e ≡ 1 mod φ(n).

Public key: (e, n), Private Key: (d, n).

Encrypt

Với thông điệp M, tính C = Me mod n.

Decrypt

Với bản mã C, tính M = Cd mod n.

2. Ví dụ

012345678910111213141516171819202122232425
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Chọn p = 5, q = 11

Tính n = p × q = 55

φ(n) = (p - 1) × (q - 1) = 4 * 10 = 40

Chọn e = 3 vì GCD(e, φ(n)) = GCD(3, 40) = 1

Tính d sao cho d × e ≡ 1 mod φ(n).

φ(n)erqt1t2t = t1 - q * t2
40311301-13
31031-1340

d = -13 + 40 = 27

Encrypt

MessageTNMT
19131219
Encrypt193 mod 55 = 39133 mod 55 = 52123 mod 55 = 23193 mod 55 = 39
Decrypt3927 mod 55 = 195227 mod 55 = 132327 mod 55 = 123927 mod 55 = 19