MỘT SỐ KHÁI NIỆM VỀ ĐỘ PHỨC TẠP CỦA THUẬT TOÁN

Một phần của tài liệu Nghiên cứu phương pháp bảo vệ thông tin dùng trên thiết bị cầm tay (Trang 29)

1.3.1. Khỏi niệm thuật toỏn

Thuật toỏn là một dóy hữu hạn cỏc thao tỏc được bố trớ theo một trỡnh tự xỏc định, được đề ra trước, nhằm giải quyết một bài toỏn nhất định.

- Thao tỏc, hay cũn gọi là tỏc vụ, phộp toỏn (Operation) hay lệnh (Command), chỉ thị (Instruction)...là một hành động cần đƣợc thực hiện bởi cơ chế thực hiện thuật toỏn. Mỗi thao tỏc biến đổi bài toỏn từ một trạng thỏi trƣớc (hay trạng thỏi nhập) sang trạng thỏi sau (hay trạng thỏi xuất).Thực tế mỗi thao tỏc thƣờng sử dụng một số đối tƣợng trong trạng thỏi nhập (cỏc đối tƣợng nhập )và sản sinh ra cỏc đối tƣợng mới trong trạng thỏi xuất (cỏc đối tƣợng xuất). Quan hệ giữa 2 trạng thỏi xuất và nhập cho thấy tỏc động của thao tỏc. Dóy cỏc thao tỏc của thuật toỏn nối tiếp nhau nhằm biến đổi bài toỏn từ trạng thỏi ban đầu đến trạng thỏi kết quả.

Mỗi thao tỏc cú thể phõn tớch thành cỏc thao tỏc đơn giản hơn.

- Trỡnh tự thực hiện cỏc thao tỏc phải đƣợc xỏc định rừ ràng trong thuật toỏn. Cựng một tập hợp thao tỏc nhƣng xếp đặt theo trỡnh tự khỏc nhau sẽ cho kết quả khỏc nhau.

1.3.2. Độ phức tạp của thuật toỏn

Lý thuyết thuật toỏn và cỏc hàm số tớnh đƣợc ra đời từ những năm 30 của thế kỷ 20 đó đặt nền múng cho việc nghiờn cứu cỏc vấn đề “tớnh đƣợc”, “giải đƣợc” trong toỏn học, đƣa đến nhiều kết quả rất quan trọng và lý thỳ. Nhƣng từ cỏi “tớnh đƣợc” một cỏch trừu tƣợng, hiểu theo nghĩa tiềm năng, đến việc tớnh đƣợc trong thực tế của khoa học tớnh toỏn bằng mỏy tớnh điện tử, là cả một khoảng cỏch rất lớn. Vấn đề là do ở chỗ những đũi hỏi về khụng gian vật chất và về thời gian để thực hiện cỏc tiến trỡnh tớnh toỏn nhiều khi vƣợt quỏ xa những khả năng thực tế. Từ đú, vào khoảng giữa những năm 60 (của thế kỷ trƣớc), một lý thuyết về độ phức tạp tớnh toỏn bắt đầu đƣợc hỡnh thành và phỏt triển nhanh chúng, cung cấp cho chỳng ta nhiều hiểu biết sõu sắc về bản chất phức tạp của cỏc thuật toỏn và cỏc bài toỏn, cả những bài toỏn thuần tỳy lý thuyết đến những bài toỏn thƣờng gặp trong thực tế. Sau đõy giới thiệu sơ lƣợc một số khỏi niệm cơ bản và vài kết quả sẽ đƣợc dựng đến của lý thuyết đú.

Trƣớc hết, hiểu độ phức tạp tớnh toỏn (về khụng gian hay về thời gian) của một tiến trỡnh tớnh toỏn là số ụ nhớ đƣợc dựng hay số cỏc phộp toỏn sơ cấp đƣợc thực hiện trong tiến trỡnh tớnh toỏn đú.

Dữ liệu đầu vào đối với một thuật toỏn thƣờng đƣợc biểu diễn qua cỏc từ trong một bảng ký tự nào đú. Độ dài của một từ là số ký tự trong từ đú.

Cho một thuật toỏn A trờn bảng ký tự  (tức cú đầu vào là cỏc từ trong ). Độ phức tạp tớnh toỏn của thuật toỏn A đƣợc hiểu là một hàm số fA(n) sao cho với mỗi số

n, fA(n) là số ụ nhớ, hay số phộp toỏn sơ cấp tối đa mà A cần để thực hiện tiến trỡnh tớnh toỏn của mỡnh trờn cỏc dữ liệu vào cú độ dài n. Ta núi thuật toỏn A cú độ phức tạp thời gian đa thức, nếu cú một đa thức P(n) sao cho với mọi n đủ lớn ta cú fA(n)

P(n), trong đú fA(n) là độ phức tạp tớnh toỏn theo thời gian của A.

Về sau khi núi đến cỏc bài toỏn, ta hiểu đú là cỏc bài toỏn quyết định, mỗi bài toỏn P nhƣ vậy đƣợc xỏc định bởi:

- Một tập cỏc dữ liệu vào I (trong một bảng ký tự  nào đú),

- Một cõu hỏi Q trờn cỏc dữ liệu vào, sao cho với mỗi dữ liệu vào x1, cõu hỏi

Q cú một trả lời đỳng hoặc sai.

Bài toỏn quyết định B là giải được, nếu cú thuật toỏn để giải nú, tức là thuật toỏn làm việc cú kết thỳc trờn mọi dữ liệu vào cỏc bài toỏn, và cho kết quả đỳng hoặc

sai tựy theo cõu hỏi Q trờn dữ liệu đú cú trả lời đỳng hoặc sai. Bài toỏn lớp P là đơn định giải đƣợc trong thời gian đa thức, nếu cú thuật toỏn giải nú với độ phức tạp thời gian đa thức. Sau đõy là vài vớ dụ về cỏc bài toỏn quyết định:

Bài toỏn SATISFIABILYTY (viết tắt là SAT):

- Mỗi dữ liệu vào là một cụng thức F của logic mệnh đề, đƣợc viết dƣới dạng hội chuẩn tắc, tức dạng hội của một số cỏc “clause”.

- Cõu hỏi là: cụng thức F cú thỏa đƣợc hay khụng?

Bài toỏn CLIQUE:

- Mỗi dữ liệu vào là một graph G và một số nguyờn k.

- Mỗi cõu hỏi là: Graph G cú một clique với ≥ k đỉnh hay khụng? (một clique của G là một graph con đầy đủ của G).

Bài toỏn KNAPSACK:

- Mỗi dữ liệu là một bộ n + 1 số nguyờn dƣơng I = (s1, ...sn; T). - Cõu hỏi là: cú hay khụng một vectơ Boole (x1, ...,xn) sao cho

n i i i 1 x s T ?    

(vectơ Boole là vectơ cú cỏc thành phần là 0 hoặc 1)

Bài toỏn thặng dƣ bậc hai:

- Mỗi dữ liệu gồm hai số nguyờn dƣơng (a, n).

- Cõu hỏi là: a cú là thặng dƣ bậc hai theo mod n hay khụng?

Bài toỏn hợp số:

- Mỗi dữ liệu là một số nguyờn dƣơng N.

- Cõu hỏi: N là hợp số khụng?

Tức cú hay khụng hai số m, n >1 sao cho N = m.n?

Tƣơng tự, nếu đặt cõu hỏi là “N là số nguyờn tố hay khụng?” thỡ ta đƣợc bài toỏn số nguyờn tố.

Đối với tất cả cỏc bài toỏn kể trờn, trừ bài toỏn hợp số và số nguyờn tố, cho đến nay ngƣời ta đều chƣa tỡm đƣợc thuật toỏn giải chỳng trong thời gian đa thức.

1.3.3. Một số lớp bài toỏn

Xột một vài lớp cỏc bài toỏn đƣợc xỏc định theo độ phức tạp tớnh toỏn của chỳng. Trƣớc hết, định nghĩa Plà lớp tất cả cỏc bài toỏn cú thể giải đƣợc bởi thuật toỏn đơn định trong thời gian đa thức.

Giả sử cho hai bài toỏn AB với cỏc tập dữ liệu trong hai bảng ký tự tƣơng ứng là 1 và 2 . Một thuật toỏn f: *

1 → *

2 đƣợc gọi là một phộp quy dẫn bài toỏn Avề bài toỏn B, nếu nú biến mỗi dữ liệu x của bài toỏn A thành một dữ liệu f(x) của bài toỏn B, và sao cho cõu hỏi của A trờn x cú trả lời đỳng khi và chỉ khi cõu hỏi của B trờn f(x) cũng cú trả lời đỳng. Ta núi bài toỏn A quy dẫn được về bài toỏn B

trong thời gian đa thức, và ký hiệu AB, nếu cú thuật toỏn f đơn định với độ phức tạp thời gian đa thức qui dẫn bài toỏn A về bài toỏn B. Dễ thấy rằng, nếu ABBP, thỡ cũng cú AP.

Một lớp quan trọng cỏc bài toỏn đó đƣợc nghiờn cứu nhiều là lớp cỏc bài toỏn khỏ thƣờng gặp trong thực tế nhƣng cho đến nay chƣa cú khả năng nào chứng tỏ là chỳng cú thể giải đƣợc trong thời gian đa thức. Đú là lớp cỏc bài toỏn NP-khú đƣợc định nghĩa sau đõy:

Cựng với khỏi niệm thuật toỏn tất định thụng thƣờng (cú thể mụ tả chớnh xỏc chẳng hạn bởi mỏy Turing tất định), xột khỏi niệm thuật toỏn khụng đơn định với một ớt thay đổi nhƣ sau: nếu đối với mỏy Turing tất định, khi mỏy đang ở một trạng thỏi q

và đang đọc một ký tự a thỡ cặp (q, a) xỏc định duy nhất một hành động kế tiếp của mỏy, cũn đối với mỏy Turing khụng đơn định, qui ƣớc rằng (q, a) xỏc định khụng phải duy nhất mà là một tập hữu hạn cỏc hành động kế tiếp; mỏy cú thể thực hiện trong bƣớc kế tiếp một trong cỏc hành động đú. Nhƣ vậy, đối với một dữ liệu vào x, một thuật toỏn khụng đơn định đƣợc (đƣợc xỏc định chẳng hạn bởi một mỏy Turing khụng đơn định) khụng phải chỉ cú một tiến trỡnh tớnh toỏn duy nhất, mà cú thể cú một số hữu hạn những tiến trỡnh tớnh toỏn khỏc nhau.

Ta núi thuật toỏn khụng đơn định A chấp nhận dữ liệu x, nếu với dữ liệu vào chấp nhận (tức với kết quả đỳng). Một bài toỏn P đƣợc gọi là giải được bởi thuật toỏn khụng đơn định trong thời gian đa thức nếu cú một thuật toỏn khụng đơn định A và một đa thức p(n) sao cho với mọi dữ liệu vào x cú độ dài n, x P (tức cõu hỏi của P

cú trả lời đỳng trờn x) khi và chỉ khi thuật toỏn A chấp nhận x bởi một tiến trỡnh tớnh toỏn cú độ phức tạp thời gian  p(n). Ta ký hiệu lớp tất cả với cỏc bài toỏn giải đƣợc bởi thuật toỏn khụng đơn định trong thời gian đa thức là NP.

Ngƣời ta đó chứng tỏ đƣợc rằng tất cả những bài toỏn trong cỏc vớ dụ kể trờn và rất nhiều cỏc bài toỏn tổ hợp thƣờng gặp khỏc đều thuộc lớp NP, dự rằng hầu hết chỳng đều chƣa đƣợc chứng tỏ là thuộc P. Một bài toỏn P đƣợc gọi là NP-đầy đủ, nếu

PNP và với mọi Q NP đều cú QP.

Lớp NP cú một số tớnh chất sau đõy: 1) PNP

2) Nếu A Bvà B NP, thỡ ANP

3) Nếu A, BNP, A Bvà A là NP- đầy đủ, thỡ B cũng là NP-đầy đủ

4) Nếu cú P sao cho P là NP-đầy đủ và PP, thỡ P=NP

Từ cỏc tớnh chất đú cú thể xem rằng trong lớp NP, P là lớp con cỏc bài toỏn “dễ” nhất, cũn cỏc bài toỏn NP đầy đủ là cỏc bài toỏn “khú” nhất; nếu cú ớt nhất một bài toỏn NP đầy đủ đƣợc chứng minh là thuộc P, thỡ lập tức suy ra P = NP, dự rằng cho đến nay tuy đó cú rất nhiều cố gắng nhƣng toỏn học vẫn chƣa tỡm đƣợc con đƣợc nào hy vọng đi đến giải quyết vấn đề [P = NP ? ], thậm chớ vấn đề đú cũn đƣợc xem là một trong 7 vấn đề khú nhất của toỏn học trong thiờn niờn kỷ mới!

1.4. MỘT SỐ KHÁI NIỆM TRONG MẬT MÃ 1.4.1. Mó húa 1.4.1. Mó húa

1.4.1.1 Khỏi niệm hệ mó húa

Để bảo đảm an toàn thông tin l-u trữ trong máy tính (VD giữ gìn thông tin cố định) hay bảo đảm an toàn thông tin trên đ-ờng truyền tin (VD trên mạng máy tính, điện thoại), người ta ph°i “Che Giấu” các thông tin n¯y.

Che” thông tin (dữ liệu) hay “Mã hóa ” thông tin là thay đổi hình dạng thông tin gốc, v¯ người khác “khó” nhận ra.

Giấu” thông tin (dữ liệu) l¯ cất giấu thông tin trong bản tin khác, và ng-ời khác cũng “khó” nhận ra.

Việc mó hoỏ phải theo quy tắc nhất định, quy tắc đú gọi là Hệ mó húa. Hệ mó húa đƣợc định nghĩa là bộ năm (P, C, K, E, D), trong đú:

P là tập hữu hạn cỏc bản rừ cú thể. C là tập hữu hạn cỏc bản mó cú thể. K là tập hữu hạn cỏc khoỏ cú thể. E là tập cỏc hàm lập mó. D là tập cỏc hàm giải mó. Với khúa lập mó ke K, cú hàm lập mó ekeE, eke: PC,

Với khúa giải mó kdK, cú hàm giải mó dkd D, dkd: CP, sao cho dkd (eke (x)) = x,xP.

Ơ đõy x đƣợc gọi là bản rừ, eke (x) đƣợc gọi là bản mó. Trờn đƣờng truyền tin, thụng tin đƣợc mó hoỏ để bảo đảm bớ mật:

Ngƣời gửi G   eke (T)   Ngƣời nhận N

(cú khúa lập mó ke) (cú khúa giải mó kd) 

Ngƣời gửi G muốn gửi bản tin T cho ngƣời nhận N. Để bảo đảm bớ mật, G mó hoỏ bản tin bằng khúa lập mó ke, nhận đƣợc bản mó eke (T), sau đú gửi cho N.

Tin tặc cú thể trộm bản mó eke (T), nhƣng cũng “khú” hiểu đƣợc bản tin gốc

T nếu khụng cú khoỏ giải mó kd.

Ngƣời N nhận đƣợc bản mó, họ dựng khoỏ giải mó kd, để giải mó eke (T), sẽ nhận đƣợc bản tin gốc T = dkd (eke (T)).

1.4.1.2 Phõn loại mó húa

Theo cỏch sử dụng khúa ta cú thể phõn loại cú hai loại mó húa chớnh: Mó húa khúa đối xứng và Mó húa phi đối xứng (Mó hoỏ khoỏ cụng khai).

Mó húa khúa đối xứng cú khúa lập mó và khúa giải mó “giống nhau”, theo nghĩa biết đƣợc khúa này thỡ “dễ” tớnh đƣợc khúa kia. Phải giữ bớ mật cả 2 khúa.

Mó húa phi đối xứng cú khúa lập mó khỏc khúa giải mó (kekd), biết đƣợc khúa này cũng “khú” tớnh đƣợc khúa kia. Bớ mật khúa giải mó. Cụng khai khúa lập mó.

1/. Hệ mó húa khúa đối xứng

Mó húa khúa đối xứng là Hệ mó húa cú khúa lập mó và khúa giải mó “giống nhau”, theo nghĩa biết đƣợc khúa này thỡ “dễ” tớnh đƣợc khúa kia. Đặc biệt một số Hệ mó húa loại này cú khoỏ lập mó và khoỏ giải mó trựng nhau (ke = kd).

Hệ mó húa khúa đối xứng cũn cú tờn gọi là Hệ mó húa khoỏ bớ mật, vỡ phải giữ bớ mật cả 2 khúa. Trƣớc khi dựng Hệ mó húa khúa đối xứng, ngƣời gửi và ngƣời nhận phải thoả thuận thuật toỏn mó húa và một khoỏ chung (lập mó hay giải mó), khoỏ này phải đƣợc giữ bớ mật. Độ an toàn của Hệ mó húa loại này phụ thuộc vào khoỏ.

a. Cỏc đặc điểm của Hệ mó húa khúa đối xứng.

Ưu điểm:

Mó húa khúa đối xứng mó húa và giải mó nhanh hơn mó húa khúa cụng khai.

Hạn chế:

- Mó húa khúa đối xứng chƣa thật an toàn với lý do đơn giản:

Ngƣời mó hoỏ và ngƣời giải mó phải cú “chungmột khoỏ. Khúa phải đƣợc giữ bớ mật tuyệt đối, vỡ “dễ” xỏc định khoỏ này nếu biết khoỏ kia.

Khi hai ngƣời (lập mó, giải mó) cựng biết “chung” một bớ mật, thỡ khú giữ đƣợc bớ mật !

- Vấn đề thỏa thuận khoỏ và quản lý khúa chung là khú khăn và phức tạp. Ngƣời gửi và ngƣời nhận phải luụn thống nhất với nhau về khoỏ. Việc thay đổi khoỏ là rất khú và dễ bị lộ. Khúa chung phải đƣợc gửi cho nhau trờn kờnh an toàn.

Hệ mó húa cổ điển thuộc loại Mó húa khúa đối xứng: dễ hiểu, dễ thực thi, nhƣng cú độ an toàn khụng cao. Vỡ giới hạn tớnh toỏn chỉ trong phạm vi bảng chữ cỏi, sử dụng trong bản tin cần mó, vớ dụ là Z26 nếu dựng cỏc chữ cỏi tiếng Anh, là Z256 nếu dựng bảng mó ASCII . . .

Với hệ mó húa cổ điển, nếu biết khoỏ lập mó hay thuật toỏn lập mó, ngƣời ta cú thể “dễ” xỏc định đƣợc bản rừ, vỡ “dễ” tỡm đƣợc khoỏ giải mó.

Hệ mó húa khúa đối xứng hiện đại cú độ an toàn cao nhƣ DES (1973).

b. Nơi sử dụng Hệ mó húa đối xứng.

Hệ mó húa khúa đối xứng thƣờng đƣợc sử dụng trong mụi trƣờng mà khoỏ chung cú thể dễ dàng trao chuyển bớ mật, chẳng hạn trong cựng một mạng nội bộ.

Hệ mó húa khúa đối xứng dựng để mó húa những bản tin lớn, vỡ tốc độ mó húa và giải mó nhanh hơn Hệ mó húa khúa cụng khai.

2/. Hệ mó húa phi đối xứng

Mó húa khúa phi đối xứng là Hệ mó húa cú khúa lập mó và khúa giải mó khỏc nhau (kekd), biết đƣợc khúa này cũng “khú” tớnh đƣợc khúa kia.

Hệ mó húa này cũn đƣợc gọi là Hệ mó hoỏ khúa cụng khai, vỡ:

Khoỏ lập mó cho cụng khai, gọi là khoỏ cụng khai (Public key).

Khúa giải mó giữ bớ mật, cũn gọi là khúa riờng (Private key).

Một ngƣời bất kỳ cú thể dựng khoỏ cụng khai để mó hoỏ bản tin, nhƣng chỉ ngƣời nào cú đỳng khoỏ giải mó thỡ mới cú khả năng xem đƣợc bản rừ.

Hệ mó húa khoỏ cụng khaihay Hệ mó húa phi đối xứng do Diffie và Hellman phỏt minh vào những năm 1970.

a/. Cỏc đặc điểm của Hệ mó khoỏ cụng khai.

Ưu điểm:

- Ngƣời mó hoỏ dựng khúa cụng khai, ngƣời giải mó giữ khúa bớ mật. Khả năng lộ khúa bớ mật khú hơn vỡ chỉ cú một ngƣời gỡn giữ.

Nếu kẻ phỏ hoại biết khoỏ cụng khai, cố gắng tỡm khoỏ bớ mật, thỡ chỳng phải đƣơng đầu với bài toỏn “khú”.

- Khi biết cỏc tham số ban đầu của hệ mó húa, việc tớnh ra cặp khoỏ cụng khai và bớ mật phải là “dễ”, tức là trong thời gian đa thức.

Ngƣời gửi cú bản rừ P và khoỏ cụng khai, thỡ “dễ” tạo ra bản mó C.

Một phần của tài liệu Nghiên cứu phương pháp bảo vệ thông tin dùng trên thiết bị cầm tay (Trang 29)