3 là các số nguyên lẻ có phân tích e ( n = Pi P2 Pk • Khi đó ký hiệu Jacobi I — I được định nghĩa !à a j _ a I a I f a I p 2J " i P k > Ta thấy rằng nếu n là một số nguyên tố thỉ ký hiệu Jacobi ký hiệu Legendre Các tính chất của kí hiệu Jacobi chính là Cho n > 3 là các số nguyên lẻ a,beZ. Khi đó ký hiệu Jacobi có các tính chất sau: (1) = 0 ’ 1 hoặc — 1. Hơn nữa [ — 1 = 0 nếu và chỉ nếu UCLN (a, n ) ^ 1. = 1 46 ( a.b ^ M (2) — = — •Bởi vậy a e Z n thì ---- V n J I n ) V n J c \ a M A I v m -n J 3ln, (3) (4) Neu a = b mod n thi' a ì f b ' v n / v n ; (5) v n y = 1 (6) r P V n , ( 2 \ ( n - l ) / 2 . Bởi vậy = 1 nếu n = l(rnod4) I l ì — — = —1 nếu n 3 3 (m o d 4 ) V n ) \(n2- i)/8 (7) - = ( - l f < 2 ' Bởi vậy — U y f n Ọ = 1 nếu n = lhoặc 7 (m o d 8 ) f — 1 = — 1 nếu n = 3 hoặc 5(m od8) ^_jym-lXn-l)/4 (8)< n )=viriy ( rr0 _ f n ^ • • X X X Nói một cách khác — = — trừ phi cả hai sô m và n đêu đông dư với 3 (m o d 4 ), trong trường hợp này = - s 1 < n , ) Tứ các tính chât của ký hiệu Jacobi ta thấy rằng n lẻ và a = 2e âị trong đó Si ị là một số lẻ thì: 47 Ị 'a J = = ^ 2 J ' n m o d a . j ^ 1y.,-iKn-i)/4 Từ công thức này ta có thể xây dựng thuật toán đệ quy sau để tính f a>l A X X — mà không cân phải phân tích n ra các thừa sô nguyên tô. v n / Thuật toán tính toán kí hiệu Jacobi (và kí hiệu Legendre): JACOBI (a, n) VÀO: Số nguyên lẻ n > 3 số nguyên a , ( 0 < a < n ) f . RA: Ký hiệu Jacobia 'i ____ . — (Sẽ là ký hiệu Legendre khi n là sô n ) nguyên tố) (1) Nếu a=0 thì retum(O) (2) Nếu a= 1 thỉ retum(l) (3) Viết a = 2e a , , trong đó aj là một số lẻ (4) Nếu e chẵn thì đặt s <- 1 . Ngược lại hãy đặt s <- 1 nếu n =1 hoặc 7 mod 8 (5) Nếu n = 3 (mod 4) và a! = 3 (mod 4) thi đặt s *-----s (6) Đặt n x «- n m od a! (7) Return (s.JACBI( n-L Oj)) Thuật toán trên có thời gian chạy chừng 0((lg TÌ)2') các phép toán bit. Nhận xét (tìm các thặng dư bậc hai theo modulo của sổ nguyên tốp): Cho p là một số nguyên tố lẻ. Mặc dù đã biết rằng một nửa các phần tử trong Zp là các thặng dư không bậc hai theo modulo p nhưng không có một thuật toán xác định theo thời gian đa thúc nào được biết để tỉm Một thuật toán ngẫu nhiên tìm một thặng dư không bậc hai là chọn ngẫu nhiên các số nguyên a E Zp cho tới khi số đó thoả mãn = — 1. 48 Phép lặp đối với số được chọn trước khi tìm được một thặng dư bậc hai là 2 và bởi vậy thuật toán được thực hiện theo thời gian đa thức. Ví dụ 1.17. Tính toán kí hiệu Jacobi: Cho a=158 và n=235. Thuật toán trên tính ) như sau: 79 ( - 1),78.234/4 7779 235 - l á Ằ í - i - ' > .7 7 . 1 Khác với ký hiệu Legendre, ký hiệu Jacobi không cho biết liệu a có phải là một thặng dư bậc 2 theo modulo n hay không. Sự thực là { a \ f a \ nếu a 6 Q n thì — = 1 Tuy nhiên — = 1 thi không có nghĩa là V n J v n j aeQn Ví dụ 1.18. (các thặng dư bậc 2 và không thặng dư bậc 2): Báng 1.6. Các ký hiệu Jacobi cùa các phần tử trong Zj! a E Z*2Ì 1 2 4 5 8 10 11 13 16 17 19 20 a 2 m o d n1 4 16 4 1 16 16 1 4 16 4 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 ( ! ) 1 1 1 -1 1 -1 1 -1 1 -1 -1 -1 ( ? ) 1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 ( ả ) 49 Bảng 1.6 liệt kê các phần tử trong z*2]và các ký hiệu Jacobi của chúng. Từ ví dụ trong phần c ta có Q 21 = {1.4,16} Xa thấy rằng ^ 2 ~ĩJ = 1 nhưng 5 £ Q 21 . Định nghĩa 1.27. Cho n > 3 là các số nguyên tố lẻ và cho J n = ị a e Z* |Ị^—j = l ị tập các thặng dư già bậc 2 theo modulo n (Ký hiệu Q nJ được định nghĩa là tập J n — Q n. Định lí 1.14: Cho n = p .q là tích của hai số nguyên tố lè khác nhau. Khi đó |QnI = Qn| = (p - lXq ~ 1)/4 tức là một nứa các phần tử trong Jn là c á c th ặ n g d ư g iả b ậ c hai. 1.4.2.3. Căn nguyên thủy • Thuật toán tính căn bậc hai modulo số nguyên tố p: VÀO: số nguyên tố lẻ p và số nguyên a, 1 < a < p - 1 RA: hai căn bậc hai của a modulo p, giả thiết rằng a là thặng dư bình phương modulo p 1. Tính kí hiệu Legendre -- . Nếu — = -1 thỉ trả về “a không có \ P J \ P J căn bậc hai modulo p” và dừng , , , , ( b) 2. Chọn ngâu nhiên b, 1 < b < p - 1 cho đên khi tìm được b với — '\PJ = -1 (b là không thặng dư bình phương modulo p) 3. Bằng cách chia liên tiếp cho 2, viết p - 1 = 2st với t lẻ 4. Tính a' 1 mod p bằng thuật toán Euclide mở rộng 5. c <- b‘ mod p và r <- a(t+iy2 mod p 50 6 . For i from 1 to s - 1 do 7. Tính d = (r2 a 1 )2” ' mod p 8 . Neu d = -1 mod p thì đặt r <- r.c mod p 9. Đặt c <- c2 mod p 10. Return (r, -r) ■ Thuật toán tính căn bậc hai modulo p khi p = 3 mod 4 VÀO: số nguyên tố lẻ p với p = 3 mod 4 và a G Qp RA: hai căn bậc hai của a modulo p 1. Tính r = a(p 1) 4 mod p 2. Return (r, -r) ■ Thuật toán tính căn bậc hai modulo p khi p s 5 mod 8 VÀO: số nguyên tố lẻ p với p = 5 mod 8 và a e Qp RA: hai căn bậc hai của a modulo p 1. Tính d = a(p’1) 4 mod p 2. Nếu d = 1 thì r = a(p+3>/8 mod p 3. Nếu d = -1 thì r = 2a(4a)(p'5)/8 mod p 4. Return (r, -r) ■ Tliuật toán tính căn bậc liai modulo II, với II là hựp số VÀO: số nguyên n, các nhân tủ nguyên tố của nó p và q (trong đó p = 3 mod 4, q = 3 mod 4), ce Qn RA: bốn căn bậc hai của c modulo n 1. Dùng thuật toán Euclide mở rộng tim a, b: ap + bq = 1 2. Tính r = c(p+1)/4mod p s = c(q+l)/4mod p X = (aps + bqr) mod n y = (aps - bqr) mod n 3. Return (±x, ±y) 1.4.2.3. Các số nguyên Blum Định nghĩa 1.28. Số nguyên Blum là một hợp số có dạng 1Ĩ= p.q, trong đó p và q là c á c s ố n g u yên to kh á c n hau và th o à m ãn: p = 3 m od 4 q s 3 m od 4 Định lý 1.15: Cho n= p.q là một số nguyên Blum và cho a 6 Qn. Khi đó a có đúng 4 căn bậc hai modulo n và chi có một số nằm trong. Qn Định nghĩa 1.29. Cho lì là một số nguyên Blum và cho. a Ẽ Qn Căn bậc hai duy nhất cùa a nằm trong Qn được gọi là căn bậc hai chính a mod n. Ví dụ 1.19. (Số nguyên Blum). Đối với số nguyên Blum n= 21. Ta có Jn = {1,4,5,16,17,20} và ọ„={5,17,20} . Bốn căn bậc 2 của a = 4 là 2, 5, 16 và 19, trong đó chỉ có 16 là cũng nằmg trong Qn. Bởi vậy 16 là căn bậc 2 chính của 4 m o d 21 Định lý 1.16: Nếu n = p.q là m ột số nguyên Dlurn thì ánh xạ. f: Qn -» Qn được xác định bởi/ 0 0 = X2 mod. n là một phép hoán vị. Ảnh xạ ngược của f là: / _1CO = x^p~1^q~1^+^ mod n . 1.5. Bài tập 1. Sử dụng thuật toán Euclide mờ rộng để tìm ước chung lớn nhất của hai số a = 1573, b = 308. 2. Hãy tính 3 m od23 bàng cách dùng thuật toán nhân và bình phương có lặp. 3 . Hãy tính các căn bậc hai của 12 m od 3 7 . 52 4. Tỉm tất cả các phần tử nguyên thuỷ của nhóm nhân Z |9 . 5. Tìm phân tử nghịch đảo của 3 trong Z 31. 6. Với m ,n ,se N và P ị là các số nguyên tố. Hãy chứng minh các tính chất sau của hàm (p-Euler i.
trong đó m = P j1...P r ’ là phân tích của m thành tích của thừa số nguyên tố. 7. Hãy tính cp(490) và ọ ( 7 6 8 ) . 8 . Giải hệ phương trinh đồng dư sau: 5x = 20 mod 6 6 x = 6 mod 5 4 x s 5 mod 77 9 Hãy dùng thuật toán Euclide mở rộng để tính các phần tử nghịch đảo sau: a. I T 1 mod 101 b. 3 5 7 1 mod 1234 c. 3125-1 mod 9987 10. Ta nghiên cứu một số tính chất của các phần từ nguyên thuỷ: (a) 97 là một số nguyên tố. Hãy chứng minh rằng X * 0 là một phần tử nguyên thuỷ theo m o d u lo 97 khi và chi khi: -ị 1 mod 97 và X48 ì 1 mod 97 (b) Hãy dùng phương pháp này để tìm phần tử nguyên thuỷ nhỏ nhất theo modulo 97. 53 (c) Giả sử p là một số nguyên tố và p - 1 có phân tích ra luỹ thừcủa các nguyên tố sau: P - I - Í M i=l Ở đây Pị là các số nguyên tố khác nhau. Hãy chứng tỏ rằng X * 0 là một phần tử nguyên thuỷ theo m odulo p khi và chỉ khi x(p O/Pi -É 1 m odp với 1 < i < n 54 Chương 2 HỆ M ẬT MÃ K H Ó A BÍ M ẬT 2.1. Giói thiệu Mật mã khoá bí mật hay còn gọi là mật mã đối xứng ra đời tò rất sớm. Từ khi máy tính chưa ra đời, mật mã khoá bí mật đã đóng vai trò quan trọng trong việc mã hoá thông tin. Mật mã khóa bí mật yêu cầu người gửi và nguời nhận phải thỏa thuận một khóa truớc khi thông báo được gửi, và khóa này phải được cất giữ bí mật. Độ an toàn cùa thuật toán này vẫn phụ thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất ki người nào cũng có thể mã hóa và giải mã hệ thống mật mã. Hình 2.1. Sơ đồ khối của hệ truyền tin mật Tại nơi gửi (nguồn thông báo) có một bản rõ R được sinh ra. Để mã R cần có một khoá K. Nếu K được sinh tại nguồn thông báo thì nó phải được chuyển tới đích thòng báo theo một kênh an toàn. Hoặc một bên thứ ba có thể sinh khoá và chuyển một cách an toàn tới cả nguồn và đích. Với thông báo R và khoá mã K, thuật toán mã E sẽ tạo ra bản mã M = Ek(R). 55 Tại nơi nhận (đích thông báo) với bản mã M và khoá mã K, thuật toán giải mã D sẽ tạo ra bản rõ R = D k(M). Một kẻ tấn công thu được M nhưng không có khoá K, anh ta phải cố gắng khôi phục R hoặc khoá K. Thừa nhận rằng kẻ tấn công biết thuật toán mã E và thuật toán giải mã D. Nếu kẻ tấn công chi quan tâm đến nội dung thông báo, họ cố khôi phục R bằng việc sinh ra một ước lượng R' của R. Tuy nhiên thường kẻ tấn công mong muốn tìm ra khoá K để giải mã các thông báo tiếp theo, bằng cách sinh ra một khoá ước lượng K' cùa K. Độ bảo mật của mật mã khóa bí mật là thước đo mức độ khó khăn của việc tìm ra thông báo rõ hoặc khoá khi biết bản mã. Ưu điểm của mật mã khóa bí mật là tốc độ mã hóa và giải mã nhanh Tuy nhiên, mật mã khóa bí mật lại có khá nhiều nhuợc điểm: - Trong phương pháp mã này, cả người mã hóa và người giải mã phải cùng chung một khóa mật. Khóa này phải được gửi đi trên kênh an toàn. Do đó nhất thiết phải duy trì một kênh an toàn đề truyền khóa. Trên thực tế, công việc này rất khó khăn và tốn kém. - Hệ mã hóa đối xứng không bảo vệ đuợc sự an toàn nếu có xác suất cao khóa người gửi bị lộ. - Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng. Người gửi và người nhận luôn luôn phải thống nhất với nhau về vấn đề khóa. Việc thay đổi khóa là rất khó và rất dễ bị lộ. - Khuynh hướng cung cấp khóa dài mà nó phải được thay đổi thường xuyên cho mọi người trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả, chi phí sẽ cản trờ rất nhiều tới sự phát triển của hệ mật mã này. - Nếu có N thực thể muốn liên lạc theo cặp thì cần N(N-l)/2 khoá bí m ật cần truyền trên nhiều kênh an toàn, s ố lư ợng này là k h ôn g n h ỏ để c ó thể quản lý và kiểm soát an toàn. Trong mật mã khóa bí mật hay mật mã khóa đối xứng, chúng ta xét đến mật mã cổ điển, mã khối và mã dòng. Sau đây, chúng ta sẽ lần lượt tìm hiểu các loại mã này. 56 2.2. Mật mã cổ điển Trong suốt một thời gian lịch sử dài từ thời cổ đại cho đến vài ba thập niên gần đây, các phương pháp mật mã được sử dụng trong thực tế đều là mật n ã khóa đối xứng, từ hệ mật mã Ceasar đã được dùng hơn nghìn năm trước cho đến các hệ mật mã hiện đại ngày nay. Trong phần này, ta sẽ tìm hiểu một số hệ mật mã cổ điển và cách thám các hệ mã này. 2.2.1. M ã dịch chuyến Để sử dụng mật mã dịch chuyển hay còn gọi là mã dịch vòng (MDV) cho văn bản tiếng Anh, người ta quy ước bảng 26 chữ cái tiếng Anh với các mã tương ứng nhu sau: Kí tự A B c D E F G H I J K L M Mã tương ứng 0 1 2 3 4 5 6 7 8 9 10 11 12 Kí tụ N 0 p Q R s T u V w X Y z Mã tương ứng 13 14 15 16 17 18 19 20 21 22 23 24 25 Quy tắc của MDV được cho trong hình dưới đây: G iả sử
xm) - (Xn(i), ..., Xn(m))
59
dn(yi,..., ym)=
Với ft' 1 là phép thế ngược của 71.
Ví dụ 2.3.
m = 6 và
rl 2 3 4 5 61
b 5 1 6 4 2J
Cần mã thông báo: hoofchisminh
Trước tiên, ta gom thành nhóm 6 phần tử;
hoofch isminh
Xi = h, x2 = o, x3 = o, x4 = f, X5 = c, x 6= h
Khi đó nhóm thứ nhất đuợc mã thành
X3X5X1X6X4X2 = o ch h fo
Tương tự, bản mã cùa nhóm thứ hai là: mnihis
Vậy thông báo mã toàn bộ là:
ochhfo mnihis
Ta có:
, 1 1 2 3 4 5 61
13 6 1 5 4 2 I
Áp dụng 7T 1 cho thông báo mã toàn bộ “ochhfo mnihis”, sẽ thu lại đuợc thông báo rõ ban đầu.
Thật ra, ta có thể mã nhanh hơn như sau: đặt dòng thứ hai của 7Ĩ"1 dưới bản rõ:
hoofch isminh
361524 361524
Sau đó ta sắp xếp lại trong từng nhóm theo thứ tự số tăng dần và được:
ochhfo mnihis
Bây giờ việc dịch chì đặt hàng thứ hai của 71 dưới bản mã: 60
ochhfo mnihis
351642 351642
rồi sấp theo thứ tự tăng dần:
hoofch isminh
2.2.4. M ã Affine
Trong mã Affine, ta giới hạn chỉ xét các hàm mã có dạng: e(x) = ax + b mod 26
.a, b e z 26 Các hàm này được gọi là các hàm Affine (chú ý rằng khi a = 1, ta có MDV).
Đe việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải là đơn ánh. Nói cách khác, với bất kỳ y £ z 26, ta muốn có đồng nhất thức sau:
ax + b = y (mod 26)
phải có nghiệm X duy nhất. Đồng dư thức này tương đương với: ax = y — b (m od 26)
Vì y thay đổi trên z 26 nên y - b cũng thay đổi trên z 26. Bởi vậy, ta chì cần nghiên cứu phương trinh đồng dư:
ax = y (mod 2 6 ) y G z 26
Ta biét làng, pliưung tiỉnli này có một nghiệm duy nhất đối với mỗi y khi và chi khi UCLN(a,26)=l (ờ đây hàm UCLN là ước chung lớn nhất của các biến của nó). Trước tiên ta giả sử rằng, UCLN(a,26)= d >1. Khi đó, đồng dư thức ax = 0 (mod 26) sẽ có ít nhất hai nghiệm phân biệt trong z 26 là x=0 và ,x=26/d Trong truờng hợp này, e(x)=ax + b mod 26 không phải là một hàm đơn ánh và bởi vậy nó không thể là hàm mã hoá hợp lệ.
Ví dụ 2.4. Do UCLN(4,26)=2 nên 4x + 7 không là hàm mã hoá hợp lệ: X và 4x + 13 sẽ mã hoá thành cùng m ột giá trị đối với bất kì X E z 26
Ta giả thiết. UCLN(a,26)=l Giả sừ với Xị và X2 nào đó thoả mãn: 61
aXj = ax2 (mod 26)
Khi đó:
a(xt — x2) = 0 (mod 26)
bởi vậy
261 a(xj - x 2)
Bây giờ ta sẽ sử dụng một tính chất của phép chia sau: Nếu UCLN(a,b)=l và a I b c thì a I c . Vì 26 I a(xj - x 2 ) và UCLN(a,26) =1 nên ta có:
261 ( x j - x 2)
tức là
Xj = x2 (mod 26)
Tới đây ta đã chứng tỏ rằng, nếu UCLN (a,26) = 1 thì một đồng dư thức dạng ax = y (mod 26) chì có (nhiều nhất) một nghiệm trong. z 26 Do đó, nếu ta cho X thay đổi trên z 26 thỉ ax(mod 26) sẽ nhận được 26 giá trị khác nhau theo modulo 26 và đồng dư thức ax = y (mod 26) chỉ có một nghiệm y duy nhất.
Không có gì đặc biệt đối với số 26 trong khẳng định này. Bởi vậy, hằng cách tirorng tự, ta có thể chứng minh được kết quả sau: Định lý 2.1.
Đổng dư thức ax = b (mod m) chỉ có một nghiệm duy nhất X 6 z m với mọi b e z m khi và chi khi ,UCLN(a, m) =1
Vì 26 = 2 x 13 nên các giá trị a e Zm thoả mãn UCLN(a,26)=l là a = 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 và 25. Tham số b có thể là một phần từ bất kỳ trong. z 26 Như vậy , mã Affine có 1 2 x 2 6 = 312 khoá có thể (dĩ nhiên, con số này là quá nhỏ để bảo đảm an toàn).
Bây giờ, ta sẽ xét bài toán chung với modulo m. Ta cần một định nghĩa khác trong lý thuyết số.
62
Định nghĩa 2.1.
Giả sư a > 1 và m > 2 là các số nguyên. ƯCLN(a,m)=l thì ta nói rang a vàm là nguyên to cùng nhau . số các so nguyên trong Zm nguyên to cùng nhau với m thường được kỳ hiệu là (p(m) (hàm này được gọi là hàm phi-Euler) .
Một kết quả quan trọng trong lý thuyết số cho ta giá trị của <ị)(m) theo các thùa số trong phép phân tích theo luỹ thừa các số nguyên tố của m. Mọi số nguyên m > 1 có thể phân tích được thành tích của các luỹ
thùa các số nguyên tố theo cách duy nhất. Ví dụ 60 = 23x3x5 và 98 = 2 X 72).
Ta sẽ ghi lại công thức cho ộ (m ) trong định lí sau:
Định lý 2.2.
n
Già sử m = Ị - Ị p ° ‘
i=i (2.1)
Trong đó các số nguyên tố Pi khác nhau và e, > 0,1 < i < n. Khi đó :
0, B <-» 1, ...,z «-» 25 mô tả ở trên, ta có thể gắn cho mỗi khoá k một chuỗi ký tự có độ dài m, được gọi là từ khoá. Mật mã Vigenère sẽ mã hoá đồng thòi m ký tự: mỗi phần tử cùa bản rõ tư ơ ng đ ư ơ n g vớ i m k ý tự.
Ta có thể mô tả mật mã Vigenère như sau:
Cho m là một số nguyên dương cố định nào đó. Ta định nghĩa P = c = -K = ( z 26r
Với khóa k = (k x, k 2, ..., km) ta xác định được:
(^1> *2' I XỵjÌ) + /Cị, ■+■ kii ... > x m + km)
và
dk = (y !.y 2..... ym) = ừ i - k lty2 - k2,...,y m - km)
Trong đó tất cả các phép toán được thực hiện trong z 25
Hình 2.4. Mã Vigenère
66
Ví dụ 2.5.
in = 6, từ khoá k = CIPHER = (2, 8, 15, 7, 4, 17)
Thông báo rõ: thiscryptosystemisnotsecure
Ta hãy chuyển thành số:
19 7 8 18 2 17 24 15 19 14 18 2 8 15 7 4 17 2 8 15 7 4 21 15 23 25 6 8 0 23 8 21 22
18 19 4 12 8 18 13 14 19 18 4 2 20 17 4 2 8 15 7 4 17 2 8 15 7 4 17 2 8 15
20 1 19 19 12 9 15 22 8 25 8 9 22 25 19
Lại đưa về chữ:
VPXZGI AXIVWP UBTTMJ PWIZIT WZT
Thông thường, người ta lập bảng để giúp cho việc mã hoá, giải mã được dễ dàng. Bảng này được gọi là bảng Vigenere (xem bảng dưới đây). Khi đó quá trình mã và dịch không cần số hoá nữa.
ĩữ X Y
T u V u X
u V u X Y
U V W X Y Z A B ct> KF G H I J K L M N O P V W X Y Z A B C D K F G H I J K L M N O p Q W X Y Z A B CD B F G H I J K L M N O P Q R
Hình 2.5. Bảng mã Vigenère
67
Lưu ỷ Để giải mã, ta có thể dùng cùng từ khoá nhưng thay cho cộng, ta trừ nó theo modulo 26.
Ta thấy rằng, số các từ khoá có thể với độ dài m trong mật mã Vigenère là26m Bởi vậy, thậm chí với m khá nhỏ, phương pháp tìm kiếm vét cạn cũng yêu cầu thời gian khá lớn. Ví dụ, với m = 6 thỉ không gian khoá cũng có kích thước lớn hơn 3 .108 khoá.
2.2.6. Hệ mật Hill
Trong phần này sẽ mô tả một hệ mật thay thế đa biểu khác được gọi là mật mã Hill. Mật mã này do Lester S.Hill đưa ra năm 1929. Giả sứ m là một số nguyên dương, đặt yỉ). Ở đây, yj cũng như đều là một tổ hợp tuyến tính của X| và *2 Chẳng hạn, có thể lấy:
yj = 1 lxj + 3x 2
y 2 = 8 x j + 7 x 2
Tất nhiên có thể viết gọn hơn theo ký hiệu ma trận như sau: