Một loại mật mã khác cũng liên quan đến việc chuyển đổi các chữ cái đó là mật mã Hill, được phát triển bởi nhà toán học Lester Hill vào năm 1929 [11]. Mật mã Hill là một ví dụ của mật mã khối. Mật mã khối là một loại mật mã mà các nhóm các chữ cái được mã hóa cùng với nhau theo các khối có độ dài bằng nhau.
Để mã hóa một bản tin sử dụng mật mã Hill, người gửi và người nhận
trước hết phải thống nhất về ma trận khóa A cỡ n× n. A phải là ma trận khả
nghịch. Bản tin gốc sau đó sẽ được mã hóa theo các khối có kích thước n. Ví dụ
ta xét ma trận 2×2 và bản tin sẽ được mã hóa theo các khối 2 kí tự.
Ma trận A: , bản tin MISSISSIPI
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
Khối đầu tiên MI được tính toán tương ứng: (M~12,I~ 8)
Hai chữ cái đầu tiên của bản tin mã hóa tương ứng với 2, 8 là CI. Lặp lại bước này cho toàn bộ bản tin. Nếu không có đủ chữ cái cho khối 2 chữ thì ta chèn thêm vào một vài chữ cái, như Z… Bản tin MI SS IS SI PP IK sẽ được mã hóa thành CI KK GE UW ER OY.
Giải mã mật mã Hill: Để giải mã một bản tin, trước hết ta tính ma trận nghịch đảo của ma trận khóa A.
Sau đó nhân ma trận nghịch đảo với từng cặp chữ cái trong bản tin đã được mã hóa (theo mod 26) để khôi phục lại bản tin gốc. Ma trận nghịch đảo tính được :
Bản tin đã mã hóa : CIKKGEWEROY
Phía nhận sẽ tính : để giải mã bản tin. Hai chữ cái đầu
tương ứng với 12, 8 là M và I. Lặp lại phép tính như trên ta sẽ giải mã ra được toàn bộ bản tin. [23]
2.2.2.6. Mật mã Vigenère
Mật mã Vigenere có lẽ là mật mã nổi tiếng nhất trong số các mật mã đa chữ cái có thể tính toán bằng tay, được sáng tạo bởi Blaise de Vigenere, nhà ngoại giao người Pháp ở thế kỉ 16. Mặc dù mật mã này được sáng lập năm 1586, nhưng nó chỉ thực sự được sử dụng một cách rộng rãi sau gần 200 năm sau đó và cuối cùng cũng bị bẻ gãy bởi Babbage và Kasiski vào giữa thế kỉ 19. Mật mã Vigenère đã từng được sử dụng bởi quân đội liên bang trong cuộc nội chiến ở Mỹ năm 1860 [12].
Mật mã đa thay thế chữ cái tương tự với mật mã thay thế đơn chữ cái ngoại trừ một vấn đề là các chữ cái được mã hóa được thay đổi một cách liên tục trong quá trình mã hóa bản tin. Điều này làm cho loại mật mã này giảm được
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
nguy cơ bị xâm hại bằng cách sử dụng tần suất xuất hiện của các chữ cái [23]. Mật mã Vigenère sử dụng bảng chữ của Vigenere để thực hiện mã hóa [12]
Hình 2.5 : The Vigenère Square [12]
Có hai phiên bản khác nhau của mã hóa Vigenère, phương pháp khóa tự động và phương pháp từ khóa [23].
Phương pháp khóa tự động: Để mã hóa một bản tin sử dụng phương pháp khóa tự động Vigenere, nguời gửi và người nhận trước hết phải thống nhất với nhau về khóa bí mật. Khóa này là một chữ cái đơn, sẽ được thêm vào đầu của bản tin để tạo khóa. Người gửi sẽ mã hóa bản tin bằng cách viết bản tin gốc trên một dòng và viết khóa ở dòng dưới. Người gửi sẽ sử dụng bản tin chưa mã hóa và khóa để chọn hàng và cột trong bảng Vigenere. Hàng được chọn là hàng mà chữ cái gốc là ở cột đầu tiên và cột được chọn là cột mã chữ cái khóa nằm trên hàng đầu tiên. Một chữ cái mã hóa sẽ là chữ cái mà xuất hiện trong bảng Vigenere tại vị trí giao giữa hàng và cột. Ví dụ, để tìm chữ cái mã hóa, vị trí đầu tiên trong hàng tương ứng với vị trí chữ cái T. Cột sẽ tương ứng với chữ cái L. Chữ cái nằm ở vị trí giao giữa hàng và cột này là chữ cái mã hóa, trong trường hợp này là E. Tiếp tục làm như vậy với mỗi cặp chữ cái sẽ tạo được bản tin được mã hóa. Để giải mã ta làm ngược lại. Ví dụ, với khóa chính là L :
Bản tin gốc : T O B E O R N O T T O B E
Khóa : L T O B E O R N O T T O B
Mã hóa : E H P F S F E B H M H P F
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
Đánh giá độ bảo mật : Phương pháp khóa tự động Vigenere là phương pháp không bảo mật. Chỉ có 26 khóa (26 chữ cái trong bảng chữ cái). Mã có thể bị bẻ gãy một cách dễ dàng với việc thử từng chữ cái. Người nào muốn đọc bản tin được mã hóa sử dụng phương pháp khóa tự động này chỉ cần thử từng chữ cái một trong bảng chữ cái để làm khóa cho đến khi tạo lại đươc bản tin gốc ban đầu. Việc này có thể được thực hiện thậm chí không cần sự giúp đỡ của máy tính, và có thể thực hiện được trong khoảng thời gian ngắn. Tuy nhiên ý tưởng của phương pháp này có thể được sử dụng để tạo ra một loại mã có độ bảo mật cao hơn.
• Phương pháp từ khóa: Phương pháp này tương tự như phương pháp khóa tự động, nhưng thay vì sử dụng một chữ cái riêng lẻ làm khóa, nó sử dụng một cụm từ khóa. Từ khóa có thể có độ dài bất kì nào lớn hơn 1, nó sẽ cung cấp một số lượng vô hạn các khóa. Để tạo khóa, người gửi viết keyword lặp lại trên một dòng ở phía dưới bản tin gốc. Cặp chữ cái khóa- bản tin gốc trên mỗi cột và hàng sẽ được mã hóa sử dụng bảng Vigenere tương tự như phương pháp khóa tự động.Ví dụ với khóa là từ khóa PUCK ta sẽ viết thành PUCKP UCKPU CKPUC…
.
Đánh giá độ bảo mật: Mật mã Vigenere sử dụng từ khóa có độ bảo mật cao hơn so với phuơng pháp khóa tự động, nhưng nó vẫn dễ bị xâm hại. Từ khóa càng dài thì mã hóa càng bảo mật. Ví dụ, nếu từ khóa dài bằng bản tin mã hóa, thì mã hóa này là không thể bị bẻ gãy nếu một khóa mới được sử dụng cho mỗi bản tin. Thực tế với mỗi khóa khác nhau có thể nhận được các bản tin khác, do đó nếu sử dụng nhiều khóa, thì không có cách nào có thể xách định chính xác được bản tin. Ví dụ bản tin mã hóa JTLOM FJRCS XM , nếu sử dụng khóa là hfikeniaoitz thì ta sẽ thu được bản tin gốc là CODE IS BROKEN, còn nếu sử dụng khóa hfikenrnaygi thì ta sẽ thu được CODE IS SECURE. [23]
2.2.2.7. One - time pad
Mật mã One-time pad (OTP) đã được kiểm nghiệm rằng đây là loại mật mã tuyệt đối bảo mật, không thể bị bẻ gãy trong thực tế. Và người ta đã chứng minh rằng bất kì một loại mật mã không thể bị bẻ gãy hay tuyệt đối bảo mật thì phải được thực hiện theo nguyên lý của one-time pad [21]. OTP được phát minh
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
vào năm 1918 do Gilbert S. Vernam (1890-1960), một nhà mật mã học của công ty AT&T [9]. Mật mã Vernam là một ví dụ nổi tiếng của OTP. Mật mã này rất đơn giản: 1 luồng bit bao gồm bản tin chưa mã hóa, và một luồng bít ngẫu nhiên bí mật có cùng độ dài với bản tin gốc, coi như là khóa. Để mã hóa bản tin với khóa, thực hiện cộng XOR từng cặp bit khóa và bản tin một cách tuần tự để thu được bit mã hóa. Nếu khóa thực sự là ngẫu nhiên thì không người tấn công nào có một cơ sở nào để có thể đoán được bản tin gốc khi chỉ có trong tay bản tin mã hóa mà ko có thông tin gì về bản tin gốc [21].
Ví dụ về OTP :
0010110 0 010...11011100101011: Bản tin gốc
0111011 1 010...10001011101011: Khóa được tạo ngẫu nhiên, có chiều dài bằng bản tin
0101101 1 000...01010111000000: Bản tin mã hóa
0111011 1 010...10001011101011: Sử dụng lại khóa để giải mã
0010110 0 010...11011100101011: Khôi phục lại bản tin gốc ban đầu [25] Vấn đề đặt ra là nếu loại mã này đạt được tính bảo mật hoàn hảo thì tại sao nó không được sử dụng một cách rộng rãi trên toàn cầu và tại sao con người vẫn sử dụng các hệ thống mà vẫn có khả năng bị bẻ gãy. Ở đây ta thấy rằng, một điểm quan trọng cần phải xem xét là các vấn đề liên quan đến việc sử dụng mã hóa đối với dữ liệu lưu trữ có xu hướng rất khác so với các vấn đề liên quan đến việc sử dụng mã hóa để bảo vệ các cuộc truyền thông. Một điều quan trọng cũng cần phải nhận thấy rằng, chúng ta thường tập trung vào truyền thông, bởi vì trường hợp này được cho là đáng để ý hơn trong việc quản lý [12].
Khóa giải mã giống với khóa mã hóa trong khi thuật toán giải mã bao gồm việc loại bỏ đi các kí tự khóa để tạo ra văn bản gốc. Các hệ thống truyền thông ngày nay phải đối mặt với một vấn đề rất khó khăn. Vì dãy bit được tạo ngẫu nhiên nên với người gửi và người nhận việc tạo ra một khóa giống như vậy là không thể. Do đó một trong số họ phải tạo ra khóa và sau đó gửi bí mật cho người kia. Nếu khóa được đảm bảo tính bí mật thì nó là cần thiết cho việc bảo vệ trong suốt quá trình truyền dẫn.
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
Nếu cuộc truyền thông chỉ có một đường truyền thì họ cần phải có một dãy ngẫu nhiên one-time pad khác để bảo vệ dữ liệu truyền. Một cách rõ ràng nguyên nhân kiểu này dẫn đên những yêu cầu không thể thực hiện được việc tạo ra các dãy ngẫu nhiên vô hạn, mỗi dãy tạo ra được sử dụng để bảo vệ một dãy khác trong quá trình truyền dẫn từ người này đến người kia, gây tốn kém. Do đó one-time pad chỉ được sử dụng trong truyền thông khi giữa cuộc truyền thông này còn có một phương tiện thông tin chuyển đổi đảm bảo khác. One-time pad thường được sử dụng cho các liên kết cần mức độ bảo mật cao nhất, như đường hotline Moscow – Washington chẳng hạn [12].
2.2.2.8. RC4
RC4 là loại mã hóa theo luồng khóa chia sẻ, được thiết kế bởi Ron Rivest tại RSA Data Security, Inc. Thuật toán RC4 được sử dụng một cách đồng nhất với cả quá trình mã hóa và giải mã khi một luồng dữ liệu được XOR với chuỗi khóa được tạo ra. Thuật toán là theo thứ tự vì nó yêu cầu những thay đổi lần lượt của các trạng thái dựa vào chuỗi khóa. Do đó quá trình thực hiện có thể đòi hỏi rất nhiều phép tính toán. Thuật toán này được công bố rộng rãi và được thực hiện bởi nhiều nhà lập trình. Thuật toán mã hóa này được sử dụng theo chuẩn IEEE 802.11 trong WEP (giao thức mã hóa không dây) sử dụng một khóa 20 và 1 khóa 128 bit.
Đặc điểm của RC4:
• RC4 sử dụng khóa có độ dài thay đổi các byte từ 1 đến 256 để tạo một
bảng trạng thái 256 byte. Bảng trạng thái được sử dụng cho việc tạo ra chuỗi byte giả ngẫu nhiên và sau đó tạo ra một luồng giả ngẫu nhiên, mà luồng này được XOR với bản tin gốc để tạo ra bản tin mã hóa. Mỗi thành phần trong bảng trạng thái được tráo đổi ít nhất một lần.
• Khóa RC4 thường được giới hạn 40 bit, bởi vì sự giới hạn của đầu ra
nhưng đôi khi cũng được sử dụng với 128 bit. Nó có khả năng sử dụng các khóa từ 1 dến 2048 bit. RC4 được sử dụng trong các gói phần mềm thương mại như là Lotus Notes và Oracle Secure SQL.
• Thuật toán RC4 làm việc theo hai giai đoạn, thiết lập khóa và mã hóa.
Thiết lập khóa là giai đoạn đầu tiên và cũng là khó khăn nhất của thuật
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
toán. Trong quá trình tạo khóa N bit, khóa mã hóa được sử dụng để tạo một biến mã hóa sử dụng hai mảng , trạng thái và khóa, và N phép kết hợp. Các phép kết hợp này bao gồm tráo đổi byte, phép modulo (chia lấy dư ) …
RC4 là loại mã hóa có tốc độ nhanh, tốc độ của nó nhanh hơn DES đến 10 lần, các khóa của RC4 được sử dụng chỉ một lần, và khó có thể biết được các giá trị trong bảng trạng thái cũng như là vị trí nào trong bảng được sử dụng để chọn từng giá trị của chuỗi. Tuy nhiên thuật toán RC4 dễ bị tổn thương khi có các cuộc tấn công phân tích bảng trạng thái. Một trong số 256 khóa có thể là khóa yếu. [18]
2.2.2.9. DES
Vào năm 1972, tổ chức NIST, sau này được biết đến dưới tên gọi National Bureau of Standards, đã đưa ra yêu cầu đề xuất một thuật toán mã hóa có thể được sử dụng để bảo vệ thông tin. Họ muốn một thuật toán rất bảo mật, rẻ, dễ dàng hiểu được và có khà năng thích ứng với nhiều ứng dụng khác nhau, có thể được sử dụng bởi các tổ chức khác nhau cũng như là dùng công khai [23]. Năm 1974, họ đưa ra yêu cầu một lần nữa khi họ không nhận được một đề xuất nào vào năm 1972. Lúc này IBM đã đưa ra thuật toán Lucifer. Thuật toán này được chuyển đến tổ chức NSA (National Security Agency) để đánh giá độ bảo mật của nó. NSA thực hiện một số thay đổi đối với thuật toán với một thay đổi quan trọng nhất là thay thế khóa 128 bit thành khóa 56 bit. Nhiều người đã nghi ngờ việc thay đổi của NSA làm cho thuật toán yếu đi và thêm vào đó một bí mật nào đó để các nhân viên đặc vụ của họ có thể giải mã và mã hóa các bản tin mà ko cần dùng đến khóa. Xóa bỏ đi những hoài nghi, NIST đã tiếp nhận thuật toán thay đổi đó như là một tiêu chuẩn liên bang vào tháng 11/1976. Và tên thuật toán được chuyển thành DES (Data Encryption Standard) và được công bố vào tháng 1/1977 [23].
DES là mã hóa khối với độ lớn khối 64bit. Nó sử dụng các khóa 56 bit, nhưng nó giống như một khối 64 bit, trong đó các bit vị trí thứ 8, 16, 24… là các bit kiểm tra chẵn lẻ, được sắp xếp vào mỗi khối 8 bit để kiểm tra lỗi của khóa [23]. Điều này khiến DES vẫn có thể bị bẻ khóa với cả những máy tính hiện đại và những phần cứng đặc biệt. Tuy nhiên DES vẫn đủ mạnh để khiến cho hầu hết
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
các hacker hoạt động độc lập cũng như là các cá nhân khó có thể phá được, nhưng nó dễ dàng bị bẻ gãy bởi chính phủ, các tổ chức tội phạm hay các công ty lớn với những phần cứng đặc biệt. DES dần dần trở nên yếu và không nên được sử dụng trong các ứng dụng mới. Và hệ quả tất yếu là vào năm 2004 NIST đã rút lui khỏi chuẩn DES [21].
Một phiên bản biến đổi khác của DES đó là 3DES, dựa trên cơ sở là sử dụng DES lần (thông thường trong một chuỗi mã hóa-giải mã-mã hóa với ba khóa khác nhau, không liên quan đến nhau). 3DES được cho rằng là mạnh hơn nhiều so với DES, tuy nhiên nó lại chậm hơn so với các phương pháp mã khối mới [21].
Tuy nhiên, thậm chí dù DES dường như ít được ưa thích sử dụng trong các ứng dụng mới ngày nay, nhưng vẫn có nhiều lý do để xem xét và đánh giá tính quan trọng của nó. Đó là mật mã khối đầu tiên được triển khai một cách rộng rãi trong các khu vực công cộng. Do đó nó đóng một vai trò quan trọng trong việc tạo ra các phương pháp mã hóa bảo mật được phép công khai [21]. Thậm chí ngày nay DES còn không được xem là giải pháp thực tế nữa, nhưng nó vẫn thường được sử dụng để mô tả những kỹ thuật phân tích và giải mã các phương pháp mã hóa mới [21].
2.2.2.10. AES
Vào năm 1997, NIST đã tiến hành lựa chọn một thuật toán mã hóa đối