One time pad

Một phần của tài liệu Mã hóa bảo mật trong Wimax (Trang 47)

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 xứng để sử dụng bảo vệ những thông tin nhạy cảm thuộc liên bang. Năm 1998, NIST đã thông báo chấp nhận 15 thuật toán ứng cử và kêu gọi sự giúp đỡ của cộng đồng nghiên cứu mật mã học trong việc phân tích các thuật toán này. Dựa vào những phân tích này, năm 1999, danh sách cuối cùng còn lại 5 thuật toán, MARS, RC6, Rijndael, Serpent and Twofish [8,9,10]. Tháng 10/2000, một trong số 5 thuật toán này đã được lựa chọn như là một chuẩn của tương lai, đó là : phiên bản được chỉnh sửa của Rijndael [15].

Rijndael là tên kết hợp của hai nhà phát minh người Bỉ, Joan Daemen và Vincent Rijmen; đây là một loại mật mã khối. Nó dùng một khối đầu vào thường có độ lớn 128 bit và tạo ra đầu ra tương ứng một khối cùng kích cỡ. Sự chuyển đổi yêu cầu một đầu vào thứ 2, đó là khóa bí mật. Một đặc điểm quan trọng là khóa có thể có kích thước bất kì, phụ thuộc vào mục đích sử dụng, và

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

AES thường sử dụng 3 loại khóa khác nhau đó là 128, 192 và 256 bit, kí hiệu AES-128, AES-192, AES-256 [15].

Một vấn đề quan trọng đó là đánh giá khả năng của AES trước các cuộc tấn công trên thực tế. NIST đã tiến hành đánh giá và cho rằng kích thước khóa nhỏ nhất của AES 128 bit thì thành công của các cuộc tấn công bằng phương pháp brute-force cùng với công nghệ ngày nay dường như là không khả thi [7]. NIST dự kiến AES sẽ được sử dụng rộng rãi trong các ứng dụng trong thực tế [7]. Theo đánh giá của NIST, thuật toán AES, hay Rijdael rất phù hợp với những môi trường hạn chế về bộ nhớ cho cả hai hoạt động mã hóa và giải mã. Nó yêu cầu bộ nhớ RAM và ROM rất nhỏ [7].

2.2.3. Mã hóa khóa công khai.

Nhược điểm của hệ mật đối xứng là yêu cầu phải có thông tin về khóa giữa bên gửi và bên nhận qua một kênh an toàn, trước khi gửi một bản tin an toàn trước khi gửi một bản mã bất kì. Trên thực tế điều này rất khó đảm bảo an toàn cho khóa bí mật, vì họ có thể ở cách xa nhau và chỉ có thể liên lạc với nhau bằng thư tín điện tử (email). Vì vậy họ khó có thể tạo một kênh bảo mật an toàn cho khóa bí mật được.

Ý tưởng xây dựng một hệ mật mã hóa công khai hay bất đối xứng là tìm

ra một hệ mật có khả năng tính toán để xác định dk khi biết ek (dk là luật giải mã,

ek là luật mã hóa). Nếu thực hiện được như vậy quy tắc mã ek có thể được công

khai bằng cách công bố nó trong một danh bạ. Bởi vậy nên có thuật ngữ mã hóa công khai hay mã hóa bất đối xứng.

Ưu điểm của hệ mã hóa bất đối xứng là ở chỗ không những chỉ có một người mà bất cứ ai cũng có thể gửi bản tin đã được mã hóa cho phía nhận bằng

cách dùng mật mã công khai ek. Nhưng chỉ có người nhận A mới là người duy

nhất có thể giải mã được bản mã bằng cách sử dụng luật giải bí mật dk của

mình. Ý tưởng về một hệ mật khóa bất đối xứng được Difie và Hellman đưa ra vào năm 1976. Còn việc hiện thực hóa nó thì do Rivest, Shamir và Adleman đưa ra lần đầu tiên vào năm 1977 họ đã tạo nên hệ mật nổi tiếng RSA [17]. Kể từ đó đã công bố một số hệ mật dựa trên các bài toán khác nhau.Sau đây ta sẽ tìm hiểu một số phương pháp mã hóa bất đối xứng hay mật mã công .

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

2.2.3.1. Mã RSA

Hệ thống khoá công cộng đầu tiên được thực hiện vào năm 1977 bởi Rivest, Shamir và Adleman được biết đến với tên gọi là hệ thống mật mã RSA. RSA dựa trên hàm cửa sập một chiều. Lược đồ RSA được chấp nhận một cách rộng rãi để thực hiện mục đích tiếp cận mật mã mã hóa bất đối xứng [7]. Hàm cửa sập một chiều là một hàm có đặc tính một chiều (tức là hàm có thể dễ dàng tính theo chiều thuận,nhưng lại rất khó khăn để tìm ra hàm ngược) và nó trở nên dễ tính ngược nếu biết một cửa sập nhất định.

Hình 2.6: Mật mã hóa/ Giải mật mã hệ thống RSA.

.

Đặc điểm:

Quá trình phát triển: năm 1983 hệ số n gồm 69 chữ số và nó thành công trong suốt thập kỉ 80, đến 1989 là 106 chữ số, phương pháp này tạo bởi Lenstra và Manasse. Tháng 4 năm 1994 gồm 129 tạo bởi Atkins, Graff và Lenstra gọi là RSA-129, các mã RSA như RSA -100, RSA -110, …,RSA -500 là danh sách các mã RSA được công khai trên internet [11].

Hạn chế:

Có bốn khả năng tiếp cận để tấn công vào thuật toán RSA là:

• Brute force: Tức là thử tất cả các loại khóa bí mật có thể.

• Mathematical attacks: Sử dụng một vài giá trị gần đúng trong tất cả các

giá trị tương đương để cố gắng phân tích tích của hai số nguyê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

• Timming attacks: Điều này phụ thuộc vào thời gian chạy thuật toán giải

mã.

• Chosen ciphertext attacks: Loại tấn công này tìm kiếm các đặc tính của

thuật toán RSA.[7].

Tấn công lựa chọn bản rõ (CPA: Chosen- Plaintext attack). Kẻ tấn công lựa chọn trong các bản rõ và tiến hành mật mã thành bản mã tương ứng, nhiệm vụ của kẻ tấn công là làm suy yếu hệ thống mật mã bằng cách sử dụng cặp bản mã - bản rõ. (CCA: Chosen ciphertext attack.)

Kẻ tấn công có thể giải mã được bản mã bằng cách thử tất cả các hệ số n. Do đó, để hệ thống mật mã RSA được an toàn thì phải đảm bảo n=p.q phải đủ lớn để khó có thể tính toán được ra nó như hiện nay n có thể là một số có 200 số thập phân [11]. Số chữ số thập phân Xấp xỉ số bit Thời gian đạt được

MIPS-year Thuật toán

100 332 4/1991 7 Quadratic sieve 110 365 4/1992 75 Quadratic sieve 120 398 6/1993 830 Quadratic sieve 129 428 4/1994 5000 Quadratic sieve 130 431 4/1996 1000 Generalized number 140 465 2/1999 2000 Generalized number 155 512 8/1999 8000 Generalized number 160 530 4/2003 Lattice sieve 174 576 12/2003 Lattice sieve 200 663 5/2005 Lattice sieve 52

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

Một phần của tài liệu Mã hóa bảo mật trong Wimax (Trang 47)