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.
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
62 trang |
Chia sẻ: tuandn | Lượt xem: 2032 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Khóa luận 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
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
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.
MỤC LỤC
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
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
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.
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!
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
CÁC KHÁI NIỆM TRONG TOÁN HỌC
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.
Hàm F Euler
1) Định nghĩa
Cho n³1, F(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 F được gọi là hàm Euler.
2) Tính chất
Nếu p là số nguyên tố thì F(p)=p-1.
Hàm Euler là hàm có tính nhân:
Nếu gcd(m, n)=1 thì F(m*n)=F(m). F(n).
Nếu n=p1e1. p2e2... pkek một biểu diễn gồm các thừa số nguyên tố của, n thì:
Đồ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à ab 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, cZ. Ta có các tính chất sau:
ab mod n nếu và chỉ nếu a và b có cùng số dư khi chia cho n
Tính phản xạ: aa mod n
Tính đối xứng: Nếu ab mod n thì ba mod n
Tính giao hoán: Nếu ab mod n và bc mod n thì ac mod n
Nếu aa1 mod n, bb1 mod n thì a+b(a1+b1 )mod n và aba1b1 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ì ar 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.
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
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
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.
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 b chia hết cho d, 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).
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:
Tính chất kết hợp: ( x * y ) * z = x * ( y * z )
Tính chất tồn tại phần tử trung gian e Î G: e * x= x * e = x, "x Î G
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:
S Î G, phần tử trung gian e Î S, SG
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
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, bZn thì:
(a+b) mod 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 Euclid 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) ;
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 mod p là bài toán “khó” (bài toán logarit rời rạc)
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) =xb 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.
Độ 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 A trên bảng ký tự Z ( tức là có các đầu vào là các từ trong Z). Độ phức tạp tính toán của thuật toán A được hiểu như một hàm số fa(n) sao cho với mỗi số n thì 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 nhỏ hơn hoặc bằng 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.
Bài toán P được gọi là “giải được” nếu tồn tại 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 đầu vào của bài toán. Bài toán P được gọi là “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.
Các thuật toán có độ phức tạp giống nhau được phân loại vào trong các lớp tương đương. Ví dụ tất cả các thuật toán có độ phức tạp là n3 được phân vào trong lớp n3 và ký hiệu bởi 0(n3).
HỆ MÃ HÓA
Khái niệm mã hoá
Thông tin truyền đi trên mạng rất dễ bị trộm cắp. Để đảm bảo việc truyền tin an toàn, người ta thường mã hóa thông tin trước khi truyền đi. Việc mã hóa cần theo quy tắc nhất định.
Hệ mật mã được định nghĩa là bộ năm (P, C, K, E, D) trong đó:
P là một tập hữu hạn các bản rõ có thể.
C là một tập hữu hạn các bản mã có thể.
K là một tập hữu hạn các khóa 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 mỗi k K, có một hàm lập mã , , và một hàm giải mã , sao cho:
Các hệ thống mật mã gồm hai quá trình:
Mã hoá: Là quá trình chuyển một thông điệp ban đầu (bản rõ) thành một thông điệp được mã hoá (bản mã), sử dụng một thuật toán mã hoá và một khoá mật mã.
Giải mã: Là quá trình ngược lại, bản mã được chuyển lại về bản rõ, sử dụng một thuật toán giải mã và một khoá giải mã.
Mục tiêu của hệ mật mã là từ bản mã “khó” thể lấy được bản rõ nếu như không có khoá giải mã tương ứng.
Hệ mã hoá đối xứng
Hệ mã hoá khoá đối xứng hay còn gọi là hệ mã hoá khoá bí mật là hệ mã hoá khi biết khóa mã hóa có thể dễ dàng tìm được từ khóa giải mã và ngược lại
Hệ mật mã khóa bí mật 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 tin tức được gửi đi, khóa này phải được cất giữ bí mật.
Mô hình mã hoá đối xứng gồm hai quá trình mã hoá và giải mã như sau:
Hình 1. 1: Mô hình mã hoá đối xứng
Ưu điểm
Tốc độ mã hoá và giải mã nhanh
Dùng một khoá cho cả hai quá trình mã hoá và giải mã
Nhược điểm
Không an toàn vì độ phức tạp tính toán phụ thuộc vào khoá.
Vì bên nhận và bên gửi đều sử dụng một khoá nên khoá cần phải được truyền trên kênh an toàn. Điều này làm phức tạp cho hệ thống cài đặt hệ mật mã khoá đối xứng.
Một số thuật toán mã hoá đối xứng
DES: 56 bit, không an toàn. Có thể bị bẻ khoá trong khoảng vài phút.
Triple DES, RDES: mở rộng độ dài khoá trong hệ DES lên tới 168 bit.
IDEA (International Data Encryption Algorithm): 128 bit, thuật toán này thường được dùng trong các chương trình email.
Hệ mã hoá công khai
Hệ mã hoá khoá công khai sử dụng một khoá để mã hoá thường được gọi là khoá công khai (public – key), và một khoá để giải mã được gọi là khoá bí mật hay khoá riêng (private – key).
Trong hệ mật mã khóa công khai, khóa mã hóa khác với khóa giải mã, biết được khóa công khai “khó” thể tìm được khóa bí mật.
Hình 1. 2: Mã hoá và giải mã của hệ mã hoá khoá công khai
Ưu điểm
Kẻ tấn công biết được thuật toán mã hoá và khoá mã hoá cũng “khó” có thể tính được khoá riêng. Chức năng này đạt được trên nguyên tắc sử dụng các hàm một chiều khi tính hàm y=f(x) là dễ nhưng ngược lại việc tính giá trị x khi đã biết y là khó.
Không đòi hỏi kênh truyền bí mật vì khoá mã hoá được công khai cho tất cả mọi người.
Nhược điểm
Tốc độ mã hoá chậm hơn so với mã hoá khoá đối xứng
Một số thuật toán mã hoá khoá công khai
RSA: độ dài khoá 512 đến 1024 bit, loại mã này được dùng nhiều nhất cho web và chương trình email.
ElGamal: độ dài khoá từ 512 đến 1024 bit.
CHỮ KÝ SỐ
Khái niệm chữ ký số
Lược đồ chữ ký số là phương pháp ký một thông điệp lưu dưới dạng điện tử. Và thông điệp được ký này có thể được truyền trên mạng.
Với chữ ký truyền thống, khi ký lên một tài liệu thì chữ ký là bộ phận vật lý của tài liệu được ký. Tuy nhiên, chữ ký số không được gắn một cách vật lý với thông điệp được ký.
Để kiểm tra chữ ký đối với chữ ký truyền thống việc kiểm tra bằng cách so sánh nó với những chữ ký gốc đã đăng ký. Tất nhiên, phương pháp này không an toàn lắm vì nó tương đối dễ đánh lừa bởi chữ ký của người khác. Trong khi chữ ký số thì được kiểm tra bằng cách dùng thuật toán kiểm tra đã biết công khai. Như vậy, “người bất kì” có thể kiểm tra chữ ký số. Việc sử dụng lược đồ ký an toàn sẽ ngăn chặn khả năng đánh lừa (giả mạo chữ ký).
Chữ ký điện tử phải đáp ứng được các yêu cầu:
Chứng thực: Chữ ký thuyết phục được người nhận rằng văn bản chứa nó là do người ký gửi đến.
Chống giả mạo: Chữ ký là bằng chứng cho việc người ký đã ký lên, bởi không ai có thể giả mạo chữ ký của người ký.
Chống tái sử dụng: Chữ ký không chỉ đặc trưng cho người ký mà còn cả văn bản chứa nó, người ta không thể di chuyển chữ ký vào một tài liệu khác với vai trò như chữ ký hợp pháp của văn bản ấy.
Chống thay đổi văn bản: Sau khi văn bản được ký, nó không thể bị sửa đổi vì mọi sự sửa đổi đều dẫn đến chữ ký không hợp lệ.
Chống phủ nhận: Người ký không thể phủ nhận chữ ký của mình trên văn bản.
Một sơ đồ chữ ký số là bộ 5 (P, A, K, S, V) thoả mãn các điều kiện dưới đây:
P: tập hữu hạn các thông điệp
A: tập hữu hạn các chữ ký.
K: tập hữu hạn các khoá (không gian khoá).
Với mỗi K thuộc K tồn tại một thuật toán ký B và một thuật toán xác minh V.
Mỗi và là những hàm sao cho mỗi bức điện và mỗi chữ ký thoả mãn phương trình dưới đây:
True: nếu y = sig(x)
False: nếu y # sig(x)
Ver(x,y) =
Các loại chữ ký số
Chữ ký RSA
Sơ đồ ký RSA (đề xuất 1978)
1. Sinh khoá
Cho n = pq trong đó, p và q là các số nguyên tố.
Khi đó:
K = {(n, p, q, a, b | n=p*q, p và q là các số nguyên tố và }
Các giá trị n và b là công khai, và các giá trị a, p, q là bí mật.
2. Ký
Với mỗi K = {n, p, q, a, b} và x Î P ta định nghĩa:
y = sigk(x) = xa mod n , y Î A.
3. Kiểm tra chữ ký
verk(x,y)= true x yb mod n
Hình 1. 3: Sơ đồ ký RSA
Chữ ký một lần
Sơ đồ chữ ký dùng một lần (one-time signature) là khái niệm vẫn còn khá mới mẻ song rất quan trọng, đặc biệt là trong một số mô hình về tiền điện tử. Khóa luận sẽ trình bày về sơ đồ chữ ký dùng một lần của Schnorr.
Với sơ đồ chữ ký dùng một lần của Schnorr, những người dùng trong cùng hệ thống có thể chia sẻ một số ngẫu nhiên g và hai số nguyên tố p và q sao cho: q|(p-1), q¹1 và gp º 1 mod q. Sơ đồ ký như sau:
1. Sinh khoá
Người dùng, giả sử là Alice, chọn Sk Î Zq ngẫu nhiên làm khóa bí mật
Tính mod p làm khóa công khai
2. Ký: Giả sử Alice cần ký lên thông điệp m
Alice lấy ngẫu nhiên r Î Zq*
Tính x = gr mod p
Tính c = H(m||x)
Tính y = (r + cSk) mod q
Chữ ký trên thông điệp m là cặp (c, y)
3. Kiểm tra chữ ký:
Ver = true Û x = gr mod p và c = H(m||x)
Hình 1. 4: Sơ đồ chữ ký một lần của Schnorr
Nhận xét:
Số r không được dùng quá một lần để tạo ra các chữ ký khác nhau.
Giả sử Alice sử dụng r để ký hai thông điệp m và m’, tạo ra hai chữ ký là (c, y) và (c’, y’). Khi đó, ta có:
Như vậy, nếu Alice sử dụng r quá một lần cho hai thông điệp khác nhau, bất kỳ ai có hai thông điệp trên đều có thể giải mã được khóa bí mật Sk. Vì vậy sơ đồ chữ kí loại này được gọi là sơ đồ chữ ký dung một lần
Chữ ký mù
1) Giới thiệu chữ ký mù
Chữ ký mù được Chaum giới thiệu vào năm 1983. Mục đích của chữ ký mù là làm sao mà người ký lên văn bản mà không được biết nội dung văn bản, nghĩa là có được chữ k