ĐẠ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 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
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
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
Phép mã hóa thông điệp với khóa K
d
K
(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ử.
Cho n1, (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=p
1
e1
. p
2
e2
p
k
ek
một biểu diễn gồm các thừa số nguyên tố của, n thì:
12
1 1 1
( ) 1 1 1
k
nn
p p p
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
a
1
mod n, b
b
1
mod n thì a+b
(a
1
+b
1
)mod n và ab
Tất cả các phép toán trong Z
n
đều đƣợc thực hiện theo modulo n.
Ví dụ: Z
25
={0, 1, 2, , 24}. Trong Z
25
: 12 + 20 = 7(mod 25)
Không gian Z
n
*
là tập hợp các số nguyên p thuộc Z
n
sao cho ƣớc chung lớn nhất
của p và n là 1. Tức là, Z
n
*
= {p thuộc Z
n
| gcd(n, p) = 1}
Ví dụ: Z
2
= { 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 aZ
n
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
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 Z
n
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 x
2
:=1; x
1:
=0 ; y
2:
=0 ; y
1:
=1 ;
Khi b>0 thực hiện:
q:=[a/b]; r=a-qb; x:=x
2
-qx
1
; y:=y
2
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= y
a
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
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à n
3
đƣợc phân vào trong lớp n
3
và
ký hiệu bởi 0(n
3
).
16
1.2 HỆ MÃ HÓA
1.2.1 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ã 17
1.2.2 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. 18
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á).
20
- Với mỗi K thuộc K tồn tại một thuật toán ký
k
sig
B và một thuật toán xác minh
Hình 1. 3: Sơ đồ ký RSA
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à
)n(mod1b*a
}
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 = sig
k
(x) = x
a
mod n , y
A.
3. Kiểm tra chữ ký
ver
k
(x,y)= true
x
S
cc
ScrcSr
cc
yy
'
)'()(
'
'
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 S
k
. Vì vậy sơ đồ chữ kí loại này đƣợc gọi là sơ đồ chữ
ký dung một lần
1. Sinh khoá
- Ngƣời dùng, giả sử là Alice, chọn S
k
Z
q
23
1.3.2.3 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ý trên x
P mà không cho ngƣời ký biết giá trị x.
Các bƣớc tiến hành nhƣ sau: Hình 1. 5: Sơ đồ chữ ký mù
Chứ kí mù đƣợc áp dụng trong kỹ thuật bỏ phiếu từ xa và hệ thống e-money ẩn danh
2) Chữ kí mù dựa trên chữ ký RSA
Bài toán là A muốn lấy chữ ký của B trên x nhƣng không muốn cho B biết x. Quá trình
thực hiện nhƣ sau:
1/ Làm mù x: A làm mù x bằng một hàm: z = Blind(x) và gửi z cho B.
2/ Ký: B ký trên z bằng hàm y = Sign(z) = Sign(Blind(x)) và gửi lại y cho A.
3/ Xoá mù: A tiến hành xoá mù trên y bằng hàm
Sign(x) = UnBlind(y) = UnBlind(Sign(Blind(x))).
Lấy p,q là các số nguyên tố lớn, n=p*q,
(n) = (p-1)*(q-1), ab = 1 mod