Kết luận chương

Một phần của tài liệu (LUẬN văn THẠC sĩ) bảo đảm an toàn thông tin trên web sử dụng kỹ thuật mã hóa ứng dụng và gửi nhận công văn tài liệu trong hệ thống mạng quân sự​ (Trang 29)

Trong chương này, luận văn đã trình bày tổng quan về sự ra đời và cách thức hoạt động của web, các hiểm họa đối với an tồn thơng tin trên web cùng với đó tìm hiểm về các giao thức để bảo đảm an tồn thơng tin khi triển khai ứng dụng chạy trên web, tìm hiểu về chứng chỉ số và các cơ chế xác thực giữa máy dịch vụ và máy khách.

CHƯƠNG 2

MÃ KHỐ ĐỐI XỨNG, MÃ KHỐ CƠNG KHAI, CHỮ KÝ SỐ TRONG BẢO MẬT GỬI NHẬN CÔNG VĂN TÀI LIỆU GIỮA CÁC

ĐƠN VỊ QUÂN SỰ 2.1. Mã khóa đối xứng

2.1.1. Định nghĩa

Thuật tốn khóa đối xứng là thuật tốn trong đó các khóa dùng cho việc mã hóa và giải mã có quan hệ rõ ràng với nhau (có thể dễ dàng tìm được một khóa nếu biết khóa kia).

Trong rất nhiều trường hợp, khóa để mã hóa và khóa giải mã là giống nhau hoặc chỉ khác nhau nhờ một biến đổi giữa hai khóa. Thuật tốn này cịn có nhiều tên gọi khác như thuật tốn khóa bí mật, thuật tốn khóa đơn giản,... Thuật tốn này yêu cầu người gửi và người nhận phải thỏa thuận một khóa trước khi văn bản được gửi đi, và khóa này phải được cất giấu bí mật. Độ an toàn của thuật tố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 kì người nào cũng có thể mã hóa và giải mã các văn bản trong hệ thống mã hóa. Sự mã hóa và giải mã của thuật tốn được mơ tả như sau: EK(P) = C và DK(C) = P

Hình 2.1: Sơ đồ mã hóa khóa đối xứng

Các vấn đề đối với phương pháp mã hóa đối xứng:

Phương pháp mã hóa đối xứng địi hỏi người mã và người giải mã phải cùng dùng chung một khóa. Khi đó khóa phải được giữ bí mật tuyệt đối, do vậy ta dễ dàng xác định một khóa nếu biết khóa kia.

Hệ mã hóa khóa đối xứng khơng an tồn nếu khóa bị lộ với xác suất cao. Trong hệ này, khoá phải được gửi đi trên kênh an toàn. Do vậy, 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 hệ mã hóa khóa đối xứng. Người gửi và người nhận luôn phải thống nhất với nhau về khóa. Việc thay đổi khóa là rất khó và dễ bị lộ.

2.1.2. Chuẩn mã hóa dữ liệu DES

2.1.2.1. Giới thiệu

DES (Data Encryption Standard) là một thuật tốn mã hố khối (block algorithm), nó mã hố một khối dữ liệu 64 bits bằng một khoá 56 bits. Một khối bản rõ 64 bits đưa vào thực hiện, sau khi mã hoá, dữ liệu ra là một khối bản mã 64 bits. Cả mã hoá và giải mã đều sử dụng cùng một thuật toán và khoá.

Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các kỹ thuật thay thế và hoán vị bản rõ dựa trên khố, đó là các vòng lặp. DES sử dụng 16 vòng lặp áp dụng cùng một kiểu kết hợp các kỹ thuật trên khối bản rõ.

Thuật toán này chỉ sử dụng các phép số học và logic thông thường trên các số 64 bits, vì vậy nó dễ dàng thực hiện vào những năm 1970 trong điều kiện về công nghệ phần cứng lúc bấy giờ. Ban đầu, sự thực hiện các phần mềm kiểu này rất thô sơ, nhưng ngày nay thì việc đó đã tốt hơn và với đặc tính lặp đi lặp lại của thuật tốn đã tạo nên ý tưởng sử dụng chip với mục đích đặc biệt này.

2.1.2.2. Mô tả thuật tốn DES

DES mã hóa một xâu bits x của bản rõ độ dài 64 bằng một khóa 56 bits. Bản mã nhận được cũng là một xâu bits có độ dài 64.

Thuật toán thực hiện theo 3 giai đoạn

+ Với bản rõ cho trước x, một xâu bits x0 sẽ được xây dựng bằng cách hoán vị các bits của x theo phép hoán vị cố định ban đầu IP. Ta viết:

x0 = IP(X) = L0R0, trong đó L0 gồm 32 bits đầu và R0 là 32 bits cuối. + Sau đó tính tốn 16 lần lặp theo một hàm xác định. Ta sẽ tính LiRi, 1 i  16 theo qui tắc sau:

Ri = Li-1  f(Ri-1, Ki)

Trong đó  ký hiệu phép hoặc loại trừ của hai xâu bit (cộng theo

modulo 2). f là một hàm mà ta sẽ mơ tả ở sau, cịn K1, K2, . . . , K16 là các xâu bits độ dài 48 được tính như hàm của khố K (trên thực tế mỗi Ki là một phép chọn hoán vị bits trong K). K1, . . ., K16 sẽ tạo thành bảng khố. Một vịng của phép mã hố được mơ tả trên hình 2.1.

+ Áp dụng phép hốn vị ngược IP -1 cho xâu bit R16L16, ta thu được bản mã y. Tức là y = IP -1 (R16L16). Hãy chú ý thứ tự đã đảo của L16 và R16.

Hình 2.2: Một vịng của DES

Hàm f có hai biến vào: biến thứ nhất A là xâu bits độ dài 32, biến thứ hai J là một xâu bits độ dài 48. Đầu ra của f là một xâu bits độ dài 32.

Các bước thực hiện như sau:

- Biến thứ nhất A được mở rộng thành một xâu bits độ dài 48 theo một hàm mở rộng cố định E. E(A) gồm 32 bits của A (được hoán vị theo cách cố định) với 16 bits xuất hiện hai lần. Tính E(A)  J và viết kết quả thành một

- Dùng 8 bảng S1, S2, …, S8 (được gọi là các hộp S). Với mỗi Si là một bảng 4*16 cố định có các hàng là các số nguyên từ 0 đến 15. Với xâu bits có độ dài 6 (Ký hiệu Bi = b1b2b3b4b5b6), ta tính Si(Bi) như sau: Hai bit b1b6 xác định biểu diễn nhị phân của hàng r của Si (0  r  3) và 4 bit (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Si (0  c  15). Khi đó Si(Bi) sẽ xác

định phần tử Si(r, c), phần tử này viết dưới dạng nhị phân là một xâu bits có độ dài 4. (Bởi vậy, mỗi Si có thể coi là một hàm mã mà đầu vào là một xâu bits có độ dài 2 và một xâu bits có độ dài 4). Bằng cách tương tự tính các Ci = Si(Bi), 1  i  8.

- Xâu bits C = C1C2...C8 có độ dài 32 bits được hoán vị theo cách hoán vị cố định P. Xâu kết quả là P(C) được xác định là f(A,J).

- (Hàm f được mơ tả trong hình 2.3. Chủ yếu nó gồm một phép thế (sử dụng hộp S), tiếp sau đó là hốn vị P).

- Sau cùng ta mơ tả việc tính tốn bảng khố từ khố K. Trên thực tế, K là một xâu bits độ dài 64, trong đó 56 bits là khố và 8 bit để kiểm tra tính chẵn lẻ nhằm phát hiện sai. Các bit ở các vị trí 8, 16, …, 64 được xác định sao cho mỗi byte chứa một số lẻ các số “1”. Bởi vậy một sai sót đơn lẻ có thể phát hiện được trong nhóm 8 bits. Các bits kiểm tra bị bỏ qua trong q trình tính tốn bảng khố.

- Với một khố K 64 bits cho trước, ta loại bỏ các bits kiểm tra tính chẵn lẻ và hốn vị các bits cịn lại của K theo phép hốn vị PC-1.

Ta viết: PC - 1(K) = C0D0

- Với thay đổi từ 1 đến 16 :

Ci = LSi(Ci-1) , Di = LSi(Di-1)

Và Ki = PC-2(CiDi). LSi thể hiện sự dịch (sang trái) 1 hoặc 2 bits phụ thuộc vào giá trị của i: Dịch 1 vị trí nếu i = 1, 2, 9 hoặc 16 và dịch 2 vị trí trong các trường hợp cịn lại. PC-2 là một hốn vị cố định khác được mô tả trên hình 2.4 như sau:

Hình 2.5: Sơ đồ mơ tả chi tiết DES 2.1.2.3 Giải mã DES 2.1.2.3 Giải mã DES

Với DES, có thể sử dụng cùng chức năng để giải mã hoặc mã hóa cùng một khối. Chỉ có sự khác nhau đó là các khóa phải được sử dụng theo thứ tự ngược lại. Nghĩa là, nếu các khóa mã hóa cho mỗi vịng là k1, k2, k3, …, k15, k16 thì các khóa giải mã là k16, k15, …, k3, k2, k1.

Ví dụ: Cho K = 12695BC9B7B7F8

Z = 0123456789ABCDEF,

Bản mã (Ciphertext) Bản rõ (Plaintext)

Ở đây các số được viết theo cơ số 16 (hexadecimal), mỗi ký tự thay cho 4 bits.

Thực hiện thuật toán lập mã ở trên ta thu được bản mã:

x = 85E813540F0AB405 và thực hiện thuật toán giải mã x ta lại thu được bản rõ Z.

2.1.2.4. Ứng dụng của DES

Một ứng dụng quan trọng của DES là trong giao dịch Ngân hàng là DES được dùng để mã hoá các số định danh cá nhân (PIN) và việc chuyển tài khoản bằng máy rút tiền tự động (ATM).

2.1.2.5. Các cơ chế hoạt động của DES

Thuật tốn DES mã hóa đoạn tin 64 bits thành đoạn tin mã hóa 64 bits. Nếu mỗi khối 64 bits được mã hóa một cách độc lập thì ta có chế độ mã hóa ECB (Electronic Code Book). Có hai ch ế độ khác của mã hóa DES là CBC (Cipher Block Chaining) và CFB (Cipher Feedback), nó làm cho m ỗi đoạn tin mã hóa 64 bits phụ thuộc vào các đoạn tin trước đó thơng qua phép tốn XOR. Các thuật tốn mã hóa đối xứng có một số trở ngại khơng thuận tiện khi hai người muốn trao đổi các thơng tin bí mật cần phải chia sẻ khóa bí mật. Khóa cần phải được trao đổi theo một cách thức an tồn, mà khơng phải bằng các phương thức thông thường vẫn dùng để liên lạc. Điều này thông thường là bất tiện và mật mã khóa cơng khai (hay khóa bất đối xứng) được đưa ra như là một giải pháp thay thế.

2.2. Mã khóa bất đối xứng (mã hóa khóa cơng khai)

2.2.1. Giới thiệu chung

Trong mật mã hóa khóa cơng khai có hai khóa được sử dụng, là khóa cơng khai (hay khóa cơng cộng) và khóa bí mật (hay khóa cá nhân), trong đó khóa cơng khai dùng để mật mã hóa cịn khóa bí mật dùng để giải mật mã (cũng có thể thực hiện ngược lại). Rất khó để có thể thu được khóa bí mật từ khóa cơng khai. Điều này có nghĩa là một người nào đó có thể tự do gửi khóa cơng

khai của họ ra bên ngồi theo các kênh khơng an toàn mà vẫn chắc chắn rằng chỉ có họ có thể giải mã các thơng điệp được mã hóa bằng khóa đó.

Hình 2.6: Gửi nhận tài liệu mã hóa bất đối xứng

Quy trình mã hóa bất đối xứng như sau:

- Bên nhận sẽ tạo ra một cặp public key và private key. Người này giữ lại private key cho riêng mình và cất cẩn thận, cịn public key thì chuyển cho bên gửi.

- Bên gửi sử dụng public key để mã hóa dữ liệu, sau đó gửi file đã mã hóa lại cho bên nhận.

Bên nhận lúc này sẽ sử dụng private key đã lưu khi nãy để giải mã dữ liệu và sử dụng.

Các thuật tốn khóa cơng khai thơng thường dựa trên các vấn đề tốn học với độ khó NP. Ví dụ RSA, dựa trên độ khó của bài tốn phân tích ra thừa số ngun tố. Vì lý do nào đó, các hệ thống mật mã hóa lai ghép được sử dụng trong thực tế; khóa được trao đổi thơng qua mật mã khóa cơng khai, và phần cịn lại của thơng tin được mật mã hóa bằng cách sử dụng thuật tốn khóa đối xứng (điều này về cơ bản là nhanh hơn). Mật mã hóa đường cong elip là một dạng thuật tốn khóa cơng khai có thể có một số ưu điểm hơn so với các hệ

Mật mã khóa cơng khai cũng cung cấp cơ chế cho chữ ký số, là cách xác thực với độ bảo mật cao (giả thiết cho rằng khóa bí mật được đảm bảo giữ an tồn) rằng thơng điệp mà người nhận đã nhận được là chính xác được gửi đi từ phía người gửi mà họ yêu cầu. Các chữ ký như vậy (theo luật định hay được suy diễn mặc định) được coi là chữ ký số tương đương với chữ ký thật trên các tài liệu được in ra giấy. Sử dụng hợp thức các thiết kế có chất lượng cao và các bổ sung khác tạo ra độ an toàn cao, làm cho chữ ký số vượt qua phần lớn các chữ ký thật về mức độ thực của nó (khó bị giả mạo hơn). Các chữ ký số là trung tâm trong các hoạt động của hạ tầng khóa cơng cộng (PKI) và rất nhiều hệ thống an ninh mạng (ví dụ các mạng riêng ảo VPN,…). Giống như mật mã hóa, các thuật tốn lai ghép thơng thường được sử dụng trong thực tế, thay vì ký trên tồn bộ chứng từ thì thường ký trên các văn bản đại diện (là văn bản nhận được từ chứng từ ban đầu sau khi sử dụng các thuật tốn băm) .

Mật mã khóa cơng khai cũng cung cấp nền tảng cho các kỹ thuật khóa thỏa thuận xác thực mật khẩu và kỹ năng kiểm chứng mật khẩu. Điều này là quan trọng khi xét theo phương diện của các chứng minh rằng việc xác thực chỉ bằng mật khẩu sẽ khơng đảm bảo an tồn trên mạng chỉ với khóa mật mã đối xứng và các hàm băm.

Trong mật mã hóa khóa cơng khai, khóa cá nhân phải được giữ bí mật trong khi khóa cơng khai được phổ biến cơng khai. Trong 2 khóa, một dùng để mã hóa và khóa cịn lại dùng để giải mã. Điều quan trọng đối với hệ thống là khơng thể tìm ra khóa bí mật nếu chỉ biết khóa cơng khai.

Hệ thống mật mã khóa cơng khai có thể sử dụng với các mục đích: - Mã hóa: Giữ bí mật thơng tin và chỉ có người có khóa bí mật mới giải mã được.

- Tạo chữ ký số: Cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay khơng.

- Thỏa thuận khóa: Cho phép thiết lập khóa dùng để gửi nhận tài liệu và truyền tải văn bản mật giữa 2 bên.

Thơng thường, các kỹ thuật mật mã hóa khóa cơng khai địi hỏi khối lượng tính tốn nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho mật mã hóa khóa cơng khai được áp dụng trong nhiều ứng dụng bảo mật của thực tiễn.

Về khía cạnh an tồn, các thuật tốn mật mã khóa bất đối xứng cũng khơng khác nhiều với các thuật tốn mã khóa đối xứng. Có những thuật tốn được dùng rộng rãi, có thuật tốn chủ yếu trên lý thuyết; có thuật tốn vẫn được xem là an tồn, có thuật tốn đã bị phá vỡ... Cũng cần lưu ý là những thuật toán được dùng rộng rãi khơng phải lúc nào cũng đảm bảo an tồn. Một số thuật tốn có những chứng minh về độ an toàn với những tiêu chuẩn khác nhau. Nhiều chứng minh gắn việc phá vỡ thuật toán với những bài toán nổi tiếng vẫn được cho là khơng có lời giải trong thời gian đa thức. Nhìn chung, chưa có thuật tốn nào được chứng minh là an toàn tuyệt đối (như hệ thống mật mã sử dụng một lần). Vì vậy, cũng giống như tất cả các thuật tốn mật mã nói chung, các thuật tốn mã khóa cơng khai vẫn cần phải được sử dụng một cách thận trọng tuy cặp khóa bí mật và khóa cơng khai được tạo ra bởi các tính tốn rất phức tạp.

Ứng dụng rõ ràng nhất của mật mã hóa khóa cơng khai là bảo mật: Một văn bản được mã hóa bằng khóa cơng khai của một người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó. Các thuật tốn tạo chữ ký số khóa cơng khai cịn dùng để nhận thực. Người gửi thơng điệp có thể mã hóa văn bản và gửi kèm chữ ký số được tạo ra khóa bí mật của mình. Nếu người nhận thơng điệp có thể kiểm tra chữ ký số bằng khóa cơng khai của người gửi thì giải mã được văn bản gửi kèm có thể tin chắc chắn rằng văn bản thực sự là của người gửi gắn với khóa cơng khai của người đó.

2.2.2. Hệ mật mã RSA

2.2.2.1. Sự ra đời của hệ mật mã RSA

Hệ mật mã RSA là hệ mật mã khố cơng khai được phát minh bởi Ron Rivest, Adi Shamir và Len Adleman, được công bố năm 1977. RSA được dùng

để bảo mật dữ liệu trên đường truyền, bảo đảm tính riêng tư và xác thực của tài liệu, bảo đảm phiên đăng nhập truy cập từ xa.

RSA đáp ứng đầy đủ yêu cầu bảo mật thông tin nên được sử dụng trong nhiều phần mềm bảo mật của hệ thống thư điện tử và hệ thống quản lý, điều

Một phần của tài liệu (LUẬN văn THẠC sĩ) bảo đảm an toàn thông tin trên web sử dụng kỹ thuật mã hóa ứng dụng và gửi nhận công văn tài liệu trong hệ thống mạng quân sự​ (Trang 29)

Tải bản đầy đủ (PDF)

(71 trang)