Đề tài Nghiên cứu một số giao thức thanh toán qua mạng công khai

Trong xu thế hội nhập quốc tế và khu vực thanh toán điện tử từ xa qua hệ thống mạng công khai đã trở thành một xu thế tất yếu. Việt Nam cũng đã bắt đầu thử nghiệm. Mặc dù vẫn còn khá mới mẻ nhƣng chắc chắn nó sẽ là một xu hƣớng trong tƣơng lai. Mặc dù vậy, để các phƣơng thức thanh toán điện tử có thể thâm nhập vào cuộc sống và trở nên phổ biến thì cần phải một quá trình nghiên cứu và phát triển hệ thống này. Khóa luận sẽ trình bày những kiến thức khái quát nhất về thanh toán từ xa, sau đó sẽ tập trung nghiên cứu các giao thức thanh toán bằng tiền mặt điện tử dựa trên lý thuyết mật mã. Khóa luận sẽ trình bày hai thuật toán phổ biến và đƣợc đánh giá là tốt nhất cho việc thanh toán điện tử qua mạng công khai. Đồng thời khóa luận cũng sẽ xây dựng một hệ thống điện tử đã đƣợc phát triển trên thế giới đó là hệ thống Digital Cash System.

pdf62 trang | Chia sẻ: nhungnt | Lượt xem: 2009 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu một số giao thức thanh toán qua mạng công khai, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Trác Hoàng Long NGHIÊN CỨU MỘT SỐ GIAO THỨC THANH TOÁN QUA MẠNG CÔNG KHAI KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Trác Hoàng Long NGHIÊN CỨU MỘT SỐ GIAO THỨC THANH TOÁN QUA MẠNG CÔNG KHAI KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hƣớng dẫn: PGS.TS Trịnh Nhật Tiến Cán bộ đồng hƣớng dẫn: ThS Lƣơng Việt Nguyên HÀ NỘI - 2010 1 LỜI CẢM ƠN Lời đầu tiên, em xin đƣợc gửi lời cảm ơn chân thành và sâu sắc tới PGS.TS Trịnh Nhật Tiến, ngƣời thầy đã cho em những định hƣớng và ý kiến quý báu trong suốt quá trình hoàn thành khoá luận. Sự hƣớng dẫn của thầy đã giúp em hiểu biết sâu rộng về một số vấn đề liên quan đến bảo mật thông tin đặc biệt trong thanh toán từ xa. Em xin đƣợc cảm ơn ThS Lƣơng Việt Nguyên đã giúp em hoàn thành khóa luận một cách tốt nhất Em xin đƣợc cảm ơn các thầy, các cô đã giảng dạy em trong suốt bốn năm qua. Những kiến thức mà các thầy, các cô đã dạy sẽ mãi là hành trang giúp em vững bƣớc trong tƣơng lai Em cũng xin đƣợc cảm ơn tập thể lớp K51CA, một tập thể lớp đoàn kết với những ngƣời bạn luôn nhiệt tình giúp đỡ mọi ngƣời, những ngƣời bạn đã giúp đỡ em trong suốt bốn năm học tập trên giảng đƣờng Đại học. Cuối cùng, em xin đƣợc gửi lời cảm ơn sâu sắc tới gia đình và bạn bè, những ngƣời luôn kịp thời động viên, khích lệ em, giúp đỡ em vƣợt qua những khó khăn để hoàn thành tốt khoá luận này. Hà nội, tháng 05 năm 2010 Sinh viên TRÁC HOÀNG LONG 2 TÓM TẮT NỘI DUNG Trong xu thế hội nhập quốc tế và khu vực thanh toán điện tử từ xa qua hệ thống mạng công khai đã trở thành một xu thế tất yếu. Việt Nam cũng đã bắt đầu thử nghiệm. Mặc dù vẫn còn khá mới mẻ nhƣng chắc chắn nó sẽ là một xu hƣớng trong tƣơng lai. Mặc dù vậy, để các phƣơng thức thanh toán điện tử có thể thâm nhập vào cuộc sống và trở nên phổ biến thì cần phải một quá trình nghiên cứu và phát triển hệ thống này. Khóa luận sẽ trình bày những kiến thức khái quát nhất về thanh toán từ xa, sau đó sẽ tập trung nghiên cứu các giao thức thanh toán bằng tiền mặt điện tử dựa trên lý thuyết mật mã. Khóa luận sẽ trình bày hai thuật toán phổ biến và đƣợc đánh giá là tốt nhất cho việc thanh toán điện tử qua mạng công khai. Đồng thời khóa luận cũng sẽ xây dựng một hệ thống điện tử đã đƣợc phát triển trên thế giới đó là hệ thống Digital Cash System. 3 MỤC LỤC ............................................................................................................ 1 LỜI CẢM ƠN ...................................................................................... 1 TÓM TẮT NỘI DUNG ........................................................................ 2 LỜI MỞ ĐẦU ...................................................................................... 7 Chương 1. CÁC KHÁI NIỆM CƠ BẢN............................................. 9 1.1 CÁC KHÁI NIỆM TRONG TOÁN HỌC ............................................ 9 1.1.1 Số nguyên tố và nguyên tố cùng nhau ................................................ 9 1.1.2 Hàm  Euler ...................................................................................... 9 1.1.3 Đồng dƣ thức ................................................................................... 10 1.1.4 Không gian Zn và Zn* ..................................................................... 11 1.1.5 Khái niệm phần tử nghịch đảo trong Zn ........................................... 11 1.1.6 Khái niệm nhóm .............................................................................. 12 1.1.7 Các phép tính cơ bản trong không gian modulo................................ 13 1.1.8 Hàm một phía và hàm một phía có cửa sập ...................................... 13 1.1.9 Độ phức tạp tính toán ....................................................................... 15 1.2 HỆ MÃ HÓA ........................................................................................16 1.2.1 Khái niệm mã hoá ............................................................................ 16 1.2.2 Hệ mã hoá đối xứng ......................................................................... 17 1.2.3 Hệ mã hoá công khai ........................................................................ 18 1.3 CHỮ KÝ SỐ .........................................................................................19 1.3.1 Khái niệm chữ ký số ........................................................................ 19 1.3.2 Các loại chữ ký số ............................................................................ 21 1.3.2.1 Chữ ký RSA..............................................................................21 1.3.2.2 Chữ ký một lần .........................................................................22 1.3.2.3 Chữ ký mù ................................................................................23 1.3.2.4 Chữ ký nhóm ............................................................................25 1.3.2.5 Chữ ký mù nhóm ......................................................................26 1.4 MỘT SỐ VẤN ĐỀ LIÊN QUAN .........................................................27 1.4.1 Chứng chỉ số .................................................................................... 27 1.4.2 Đại diện thông điệp .......................................................................... 28 1.4.3 Giao thức cắt và chọn (Cut and Choose) .......................................... 29 1.4.4 Giao thức chia sẻ bí mật (Secret Spliting) ........................................ 29 Chương 2. TỔNG QUAN VỀ THANH TOÁN TỪ XA .................... 30 2.1 GIỚI THIỆU VỀ THANH TOÁN TỪ XA..........................................30 2.1.1 Khái niệm thanh toán từ xa .............................................................. 30 2.1.2 Các mô hình thanh toán.................................................................... 31 2.1.2.1 Mô hình trả sau .........................................................................31 2.1.2.2 Mô hình trả trước......................................................................33 2.1.3 Thanh toán trực tuyến và thanh toán ngoại tuyến ............................. 34 2.2 MỘT SỐ PHƢƠNG THỨC THANH TOÁN TỪ XA ........................35 4 2.2.1 Thanh toán bằng các loại thẻ ............................................................ 35 2.2.2 Thanh toán bằng séc điện tử ............................................................. 36 2.2.3 Thanh toán bằng tiền mặt điện tử ..................................................... 37 2.3 ĐẶC TRƢNG CỦA HỆ THỐNG THANH TOÁN TỪ XA ...............38 Chương 3. CÁC GIAO THỨC THANH TOÁN BẰNG TIỀN ĐIỆN TỬ .................................................................................. 39 3.1 GIỚI THIỆU VỀ TIỀN ĐIỆN TỬ ......................................................39 3.1.1 Khái niệm tiền điện tử ...................................................................... 39 3.1.2 Cấu trúc tiền điện tử ......................................................................... 39 3.1.3 Phân loại tiền điện tử ....................................................................... 40 3.1.4 Tính chất của tiền điện tử ................................................................. 41 3.2 CÁC GIAO THỨC VỚI TIỀN ĐIỆN TỬ ...........................................43 3.2.1 Các giao thức thanh toán cùng ngân hàng ........................................ 43 3.2.2 Các giao thức thanh toán trong liên ngân hàng ................................. 45 3.3 MỘT SỐ LƢỢC ĐỒ TIỀN ĐIỆN TỬ.................................................47 3.3.1 Lƣợc đồ CHAUM-FIAT-NAOR ...................................................... 47 3.3.1.1 Lƣợc đồ ....................................................................................47 3.3.1.2 Phân tích – đánh giá ..................................................................49 3.3.2 Lƣợc đồ hệ thống Digital Cash ......................................................... 50 3.3.2.1 Lƣợc đồ ....................................................................................50 3.3.2.2 Đánh giá ...................................................................................52 Chương 4. CHƢƠNG TRÌNH MÔ TẢ HỆ THỐNG DIGITAL CASH ................................................................................ 53 4.1 Giới thiệu ..............................................................................................53 4.2 Yêu cầu và kiến trúc của hệ thống .......................................................53 4.3 Công cụ thực hiện .................................................................................53 4.4 Hƣớng dẫn sử dụng hệ thống đối với khách hàng ..............................54 4.4.1 Cấu hình .......................................................................................... 55 4.4.2 Nhận đồng tiền và khóa công khai của nó ........................................ 55 4.4.3 Rút tiền ............................................................................................ 56 4.4.4 Tiêu tiền ........................................................................................... 57 TÀI LIỆU THAM KHẢO .................................................................. 59 5 DANH SÁCH CÁC HÌNH VẼ TRONG KHÓA LUẬN Hình 1. 1: Mô hình mã hoá đối xứng Hình 1. 2: Mã hoá và giải mã của hệ mã hoá khoá công khai Hình 1. 3: Sơ đồ ký RSA Hình 1. 4: Sơ đồ chữ ký một lần của Schnorr Hình 1. 5: Sơ đồ chữ ký mù Hình 1. 6: Sơ đồ chữ ký mù dựa trên chữ ký RSA Hình 1. 7: Sơ đồ chữ ký mù nhóm Hình 2. 1: Mô hình mô phỏng séc Hình 2.2 : Mô hình mô phỏng tiền mặt Hình 3. 1: Mô hình giao dịch của hệ thống tiền điện tử trong cùng ngân hàng Hình 3. 2: Mô hình giao dịch của hệ thống tiền điện tử trong liên ngân hàng Hình 3. 3: Lược đồ Fiat-Chaum-Naor Hình 4. 1: Giao diện đăng nhập Hình 4. 2: Giao diện nhận các đồng tiền ngân hàng có Hình 4. 3: Giao diện rút tiền Hình 4. 4: Giao diện thanh toán 6 BẢNG CHỮ VIẾT TẮT Bảng ký hiệu viết tắt Từ viết tắt Tiếng Việt Tiếng Anh TMĐT Thƣơng mại điện tử Electronic Business TTĐT Thanh toán điện tử Electronic Payment TTTX Thanh toán từ xa Distance Payment DBMS Hệ quản trị cơ sở dữ liệu Database management system Bảng ký hiệu toán học Ký hiệu Ý nghĩa || Nối chuỗi bit N Tập các số tự nhiên eK(x) Phép mã hóa thông điệp với khóa K dK(x) Phép giải mã thông điệp với khóa K Sig(x) Chữ kí thông điệp trên x Ver(x, y) Kiểm tra chữ ký y trên thông điệp x 7 LỜI MỞ ĐẦU Trong những năm gần đây, sự phát triển mạnh mẽ của Internet đã làm thay đổi cuộc sống của con ngƣời, trong đó hoạt động thƣơng mại có những bƣớc thay đổi tích cực. Thƣơng mại điện tử (TMĐT) dựa trên cơ sở mạng Internet là một phƣơng thức hoạt động mới của thƣơng mại. Đối với TMĐT thì khâu quan trọng nhất là “thanh toán” bởi vì mục tiêu cuối cùng của cuộc trao đổi thƣơng mại là việc hàng hóa đƣợc giao đến cho ngƣời mua và ngƣời bán nhận đƣợc số tiền tƣơng ứng. Thanh toán từ xa qua mạng công khai là một phƣơng pháp thanh toán đƣợc thực hiện trên máy tính, các bên tham gia giao dịch có thể thực hiện thanh toán mà không cần phải gặp trực tiếp Vấn đề an toàn thông tin trong mọi giao dịch luôn là một yêu cầu nhất thiết phải có đối với mọi hoạt động thƣơng mại, đặc biệt là các hoạt động thƣơng mại qua mạng công khai. Các thành tựu của ngành mật mã, đặc biệt là lý thuyết mật mã khóa công khai đã cung cấp các giải pháp cho vấn đề an toàn thông tin cho các hoạt động thƣơng mại, tạo cơ sở cho việc xây dựng các hệ thống thanh toán điện tử Sự phát triển trong lĩnh vực nghiên cứu về hệ thống thanh toán điện tử, với sự ra đời của các mô hình thanh toán nhƣ mô hình Untraceable Electronic Cash của FIAT-CHAUM-NAOR, hệ thống DCASH đã tạo nền móng để xây dựng và đƣa vào sử dụng các hệ thống thanh toán điện tử. Trong khuôn khổ khóa luận, em sẽ nghiên cứu một cách tổng quan về thanh toán từ xa qua mạng công khai, các cơ sở mật mã đƣợc ứng dụng trong thanh toán từ xa. Nghiên cứu một số giao thức thanh toán tiêu biểu và tạo chƣơng trình mô phỏng hệ thống thanh toán Digital-Cash. 8 Khóa luận bao gồm: Lời mở đầu: Trình bày sơ lƣợc về thanh toán từ xa qua mạng công khai Chƣơng 1: Các khái niệm cơ bản Chƣơng 2: Tổng quan về thanh toán từ xa Chƣơng 3: Các giao thức thanh toán tiền điện tử Chƣơng 4: Chƣơng trình mô phỏng hệ thống Digital Cash Tuy nhiên, do còn nhiều hạn chế về thời gian cũng nhƣ khả năng của bản thân, khoá luận này không thể tránh khỏi thiếu sót. Em rất mong nhận đƣợc sự quan tâm và đóng góp ý kiến của các thầy, cô giáo cũng nhƣ các anh, chị và các bạn những ngƣời quan tâm đến lĩnh vực này. Em xin chân thành cảm ơn! 9 Chương 1. CÁC KHÁI NIỆM CƠ BẢN 1.1 CÁC KHÁI NIỆM TRONG TOÁN HỌC 1.1.1 Số nguyên tố và nguyên tố cùng nhau Số nguyên tố là số nguyên dƣơng chỉ chia hết cho 1 và chính nó. Ví dụ 1,2,3… Các hệ mật mã thƣờng dùng các số nguyên tố cỡ 512 bit hoặc lớn hơn Hai số nguyên dƣơng m và n đƣợc gọi là nguyên tố cùng nhau, nếu ƣớc số chung lớn nhất của chúng bằng 1, ký hiệu gcd(m, n) = 1. Ví dụ: 8 và 17 là hai số nguyên tố cùng nhau. 1.1.2 Hàm  Euler 1) Định nghĩa Cho n1, (n) đƣợc định nghĩa là số lƣợng các số nguyên trong khoảng từ [1, n) nguyên tố cùng nhau với n. Hàm  đƣợc gọi là hàm  Euler. 2) Tính chất 1/ Nếu p là số nguyên tố thì (p)=p-1. 2/ Hàm  Euler là hàm có tính nhân:  Nếu gcd(m, n)=1 thì (m*n)=(m). (n). 3/ Nếu n=p1 e1 . p2 e2 ... pk ek một biểu diễn gồm các thừa số nguyên tố của, n thì: 1 2 1 1 1 ( ) 1 1 ... 1 k n n p p p                  10 1.1.3 Đồng dƣ thức 1) Định nghĩa Cho a và b là các số nguyên, khi đó a đƣợc gọi là đồng dƣ với b theo modulo n, ký hiệu là a  b mod n nếu a, b chia cho n có cùng số dƣ. Số nguyên n đƣợc gọi là modulo của đồng dƣ. Ví dụ: 5  7 mod 2 vì: 5 mod 2 = 1 và 7 mod 2 = 1 2) Tính chất Cho a, a1, b, b1, c Z. Ta có các tính chất sau: 1/ a  b mod n nếu và chỉ nếu a và b có cùng số dƣ khi chia cho n 2/ Tính phản xạ: a  a mod n 3/ Tính đối xứng: Nếu a  b mod n thì b  a mod n 4/ Tính giao hoán: Nếu a  b mod n và b  c mod n thì a  c mod n 5/ Nếu a  a1 mod n, b b1 mod n thì a+b (a1+b1 )mod n và ab a1b1 mod n 3) Lớp tương đương Lớp tƣơng đƣơng của một số nguyên a là tập hợp các số nguyên đồng dƣ với a theo modulo n. Cho n cố định đồng dƣ với n trong không gian Z vào các lớp tƣơng đƣơng. Nếu a=qn +r, trong đó 0  r  n thì a  r mod n. Vì vậy mỗi số nguyên a là đồng dƣ theo modulo n với duy nhất một số nguyên trong khoảng từ 0 đến n-1 và đƣợc gọi là thặng dƣ nhỏ nhất của a theo modulo n. Cũng vì vậy, a và r cùng thuộc một lớp tƣơng đƣơng. Do đó r có thể đơn giản đƣợc sử dụng để thể hiện lớp tƣơng đƣơng. 11 1.1.4 Không gian Zn và Zn* Không gian các số nguyên theo modulo n: Zn là tập hợp các số nguyên không âm nhỏ hơn n. Tức là: Zn = {0, 1, .., n-1} Tất cả các phép toán trong Zn đều đƣợc thực hiện theo modulo n. Ví dụ: Z25 ={0, 1, 2,..., 24}. Trong Z25: 12 + 20 = 7(mod 25) Không gian Zn * là tập hợp các số nguyên p thuộc Zn sao cho ƣớc chung lớn nhất của p và n là 1. Tức là, Zn * = {p thuộc Zn | gcd(n, p) = 1} Ví dụ: Z2 = { 0, 1 }; Z * 2 =| 1 | vì gcd(1, 2)=1 1.1.5 Khái niệm phần tử nghịch đảo trong Zn 1) Định nghĩa Cho aZn. Nghịch đảo nhân của a theo modulo n là một số nguyên xZn sao cho a*x1 (mod n). Nếu tồn tại thì đó là giá trị duy nhất và a gọi là khả nghịch, nghịch đảo của a ký hiệu là a-1. 2) Tính chất 1/ Cho a, bZn. Phép chia của a cho b theo modulo n là tích của a và b -1 theo modulo n, và chỉ đƣợc xác định khi b có nghịch đảo theo modulo n. 2/ Giả sử d=gcd(a, n). Phƣơng trình đồng dƣ ax  b (mod n) có nghiệm x nếu và chỉ nếu d chia hết cho b, trong trƣờng hợp các nghiệm d nằm trong khoảng 0 đến n-1 thì các nghiệm đồng dƣ theo modulo n/d. Ví dụ: 4-1 = 7(mod 9) vì 4*7  1(mod 9). 12 1.1.6 Khái niệm nhóm 1) Nhóm Nhóm là bộ các phần tử (G, *) thỏa mãn các tính chất sau: 1/ Tính chất kết hợp: ( x * y ) * z = x * ( y * z ) 2/ Tính chất tồn tại phần tử trung gian e  G: e * x= x * e = x, x  G 3/ Tính chất tồn tại phần tử nghịch đảo x’  G: x’ * x = x * x’ = e 2) Nhóm con Nhóm con là bộ các phần tử ( S, * ) là nhóm thỏa mãn các tính chất sau: 1/ S  G, phần tử trung gian e  S 2/ x, y  S => x * y  S 3) Nhóm cylic Nhóm Cyclic là nhóm mà mọi phần tử x của nó đƣợc sinh ra từ một phần tử đặc biệt g  G. Phần tử này đƣợc gọi là phần tử nguyên thủy, tức là: Với  x  G:  n  N mà gn = x. Ví dụ: (Z+, *) là một nhóm cyclic có phần tử sinh là 1 13 1.1.7 Các phép tính cơ bản trong không gian modulo Cho n là số nguyên dƣơng. Nhƣ trƣớc, các phần tử trong Zn đƣợc thể hiện bởi các số nguyên {0, 1, 2, …, n-1}. Nhận xét rằng: nếu a, b  Zn thì: (a+b) mod n = if a+b<n if a b a b n a b n       Vì vậy, phép cộng modulo (và phép trừ modulo) có thể đƣợc thực hiện mà không cần thực hiện các phép chia dài. Phép nhân modulo của a và b đƣợc thực hiện bằng phép nhân thông thƣờng a với b nhƣ các số nguyên bình thƣờng, sau đó lấy phần dƣ của kết quả sau khi chia cho n. Phép tính nghịch đảo trong Zn có thể đƣợc thực hiện nhờ sử dụng thuật toán Euclidean mở rộng nhƣ mô tả sau: Nếu b=0 thì đặt d:=a; x:=1; y:=0; return(d; x; y) ; Đặt x2:=1; x1:=0 ; y2:=0 ; y1:=1 ; Khi b>0 thực hiện: q:=[a/b]; r=a-qb; x:=x2-qx1; y:=y2-qy1 ; a:=b; b:=r; x2:=x1; x1:=x; y2:=y1; y1:=y ; d:=a ; x:=x2 ; y:=y2 ; return(d, x, y) ; 1.1.8 Hàm một phía và hàm một phía có cửa sập 1) Hàm một phía Một hàm một phía là hàm mà dễ dàng tính toán ra quan hệ một chiều, nhƣng rất khó để tính ngƣợc lại. Ví nhƣ biết x thì có thể dễ dàng tính ra f(x), nhƣng nếu biết f(x) thì rất khó tính ra đƣợc x. Trong trƣờng hợp này “khó” có nghĩa là để tính ra đƣợc kết quả thì phải mất rất nhiều thời gian để tính toán. Ví dụ: Tính y = f(x) = αx mod p là dễ nhƣng tính ngƣợc lại x = logα y là bài toán “khó” (bài toán logarit rời rạc) 14 2) Hàm một phía có cửa sập F(x) đƣợc gọi là hàm một phía có cửa sập nếu tính xuôi y = f(x) thì dễ nhƣng tính ngƣợc x = f-1(y) thì khó tuy nhiên nếu có “cửa sập” thì vấn đề tính ngƣợc trở nên dễ dàng. Cửa sập ở đây là một điều kiện nào đó giúp chúng ta dễ dàng tính ngƣợc. Ví dụ: y = f(x) =x b mod n tính xuôi thì dễ nhƣng tính ngƣợc x= ya mod n thì khó vì phải biết a với a * b  1 (mod(  (n)) trong đó  (n) = (p-1)(q-1)). Nhƣng nếu biết cửa sập p, q thì việc tính n = p * q và tính a trở nên dễ dàng. 15 1.1.9 Độ phức tạp tính toán Lý thuyết thuật toán và các hàm 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. Tuy nhiên từ cái “tính đƣợc” đến việc tính toán thực tế là một khoảng cách rất lớn. Có rất nhiều vấn đề đƣợc chứng minh là có thể “tính đƣợc” nhƣng không tính đƣợc trong thực tế cho dù có sự hỗ trợ của máy tính. Vào những năm 1960, lý thuyết độ phức tạp tính toán đƣợc hình thành và phát triển một cách nhanh chóng, cung cấp 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, từ 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ế. Độ phức tạp tính toán (về không gian hay 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