Tải bản đầy đủ (.pdf) (17 trang)

Nghiên cứu một số kỹ thuật và công nghệ để thực hiện thanh toán bằng tiền điện tử qua mạng máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (473.34 KB, 17 trang )

Nghiên cứu một số kỹ thuật và công nghệ để
thực hiện thanh toán bằng tiền điện tử qua
mạng máy tính
Phạm Văn Quang
Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Truyền dữ liệu và Mạng máy tính; Mã số: 60.48.15
Người hướng dẫn: PGS.TS Trịnh Nhật Tiến
Năm bảo vệ: 2012
Abstract: Trình bày các khái niệm cơ bản về toán học và lý thuyết cơ bản về mật mã
học: mã hóa dữ liệu, chữ ký số, chữ ký mù…, ứng dụng trong hệ thống tiền điện tử.
Nghiên cứu về thanh toán bằng tiền điện tử, cấu trúc, tính chất và mô hình giao dịch
của tiền điện tử, quy trình thanh toán bằng tiền điện tử, kỹ thuật và công nghệ để thực
hiện thanh toán bằng tiền điện tử, giới thiệu hệ thống tiền điện tử Digicash. Hiện trạng
thanh toán điện tử tại Việt Nam. Thử nghiệm, demo chương trình về hệ thống tiền
điện tử Digicash, mô phỏng vấn đề về ẩn danh, gian lận giá trị và tiêu xài nhiều lần
một đồng tiền, viết bằng ngôn ngữ kịch bản ASP, ứng dụng phát triển theo mô hình
client/ server, chạy trên web server IIS.
Keywords: Truyền dữ liệu; An toàn thông tin; Mã hóa dữ liệu; Tiền điện tử; Mạng
máy tính
Content
MỞ ĐẦU
1. TÍNH CẤP THIẾT CỦA LUẬN VĂN.
Năm 2000 đánh dấu sự bùng nổ của Internet, một trong những cái mới mà nó mang lại
là đã tạo ra phương thức bán hàng và mua hàng qua mạng. Quá trình phát triển của khái niệm
“Thương mại điện tử” được hình thành một cách tất yếu, trong đó có hoạt động thanh toán
điện tử. Nếu theo một nghĩa đơn giản chúng ta có thể hình dung về quá trình người mua và
người bán thanh toán cho nhau thông qua ngân hàng, bằng thẻ tín dụng điện tử. Tuy nhiên,
hình thức thanh toán bằng thẻ tín dụng điện tử chưa thật thuận tiện và an toàn khi thông tin về
thẻ tín dụng điện tử dễ bị gian lận, đánh cắp.
Hình thức thanh toán bằng tiền điện tử bắt đầu được sử dụng, tất nhiên ở giai đoạn đầu
nó chưa thực sự được phát triển. Tiền điện tử được sử dụng cho mục đích thanh toán trực


tuyến thông qua các dịch vụ thanh toán trực tuyến, chúng được phát hành bởi một số tổ chức
chịu trách nhiệm.


Tuy nhiên, một số vấn đề nảy sinh trong quá trình sử dụng tiền điện tử mà luận văn sẽ đi
vào nghiên cứu và giải quyết ở đây là: sự gian lận về giá trị đồng tiền điện tử; việc tiêu nhiều
hơn một lần một đồng tiền điện tử; việc xác định danh tính của người sở hữu một đồng tiền
điện tử.
2. MỤC ĐÍCH CỦA LUẬN VĂN.
Nghiên cứu bản chất và quá trình thực hiện thanh toán bằng tiền điện tử, kỹ thuật và
công nghệ để thực hiện thanh toán điện tử.
3. ĐỐI TƢỢNG NGHIÊN CỨU.
Tiền điện tử và quy trình thực hiện thanh toán bằng tiền điện tử.
4. PHƢƠNG PHÁP NGHIÊN CỨU.
Đầu tiên, luận văn tổng hợp lại những khái niệm liên quan đến vấn đề thanh toán hiện
đang được sử dụng, về thanh toán điện tử. Sau đó, luận văn đi sâu nghiên cứu về tiền điện tử,
chỉ rõ cấu trúc, tính chất tiền điện tử đã và đang được sử dụng trên thế giới. Từ đó, phân tích
về quy trình thanh toán bằng tiền điện tử, những đòi hỏi về kỹ thuật và công nghệ của nó.
5. KẾT CẤU CỦA LUẬN VĂN.
Luận văn gồm 3 chương.
Chương 1: Trình bày các khái niệm cơ bản về toán học và lý thuyết cơ bản về mật mã
học: mã hóa dữ liệu, chữ ký số, chữ ký mù…, ứng dụng trong hệ thống tiền điện tử.
Chương 2: Trình bày về thanh toán bằng tiền điện tử, cấu trúc, tính chất và mô hình giao
dịch của tiền điện tử, quy trình thanh toán bằng tiền điện tử, kỹ thuật và công nghệ để thực
hiện thanh toán bằng tiền điện tử, giới thiệu hệ thống tiền điện tử Digicash. Hiện trạng thanh
toán điện tử tại Việt Nam.
Chương 3: Thử nghiệm, demo chương trình về hệ thống tiền điện tử Digicash, mô
phỏng vấn đề về ẩn danh, gian lận giá trị và tiêu xài nhiều lần một đồng tiền, viết bằng ngôn
ngữ kịch bản ASP, ứng dụng phát triển theo mô hình client/ server, chạy trên web server IIS.
Cuối cùng là phần kết luận, tóm lược và đánh giá lại những điểm chính, những đóng góp

của luận văn, đồng thời chỉ ra những điểm cần khắc phục và định hướng tiếp theo cho luận
văn khi được phát triển sau này.
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
1.1. MỘT SỐ KHÁI NIỆM TOÁN HỌC
1.1.1. Số nguyên tố và số nguyên tố cùng nhau.
1/. Khái niệm.
Số nguyên tố là số tự nhiên lớn hơn 1, chỉ chia hết cho 1 và chính nó.
Hai số nguyên a và b được gọi là nguyên tố cùng nhau nếu chúng có ước số chung lớn
nhất bằng 1 (viết: gcd(a, b) = 1).

2


Hai số nguyên tố cùng nhau a, b được ký hiệu: a  b.
2/. Ví dụ.
2, 3, 5, 7, 11… là những số nguyên tố.
14 và 17 là hai số nguyên tố cùng nhau.
1.1.2. Đồng dƣ thức.
1/. Khái niệm.
Cho các số nguyên a, b, m (m>0). Ta nói rằng a và b “đồng dư” với nhau theo modulo
m, nếu chia a và b cho m, ta nhận được cùng một số dư.
Ký hiệu: a ≡ b (mod m)
2/. Ví dụ.
17 ≡ 23 (mod 3) vì:
17 = 5*3 + 2
23 = 7*3 + 2
Vậy 17 và 23 đồng dư với nhau theo modulo 3.
Nhận xét: Các mệnh đề sau đây là tương đương.
1) a ≡ b (mod m)
2) m \ (a - b)

3) Tồn tại số nguyên t sao cho a = b + mt
3/. Các tính chất của quan hệ “đồng dƣ”.
4/. Các lớp thặng dƣ.
1.1.3. Phần tử nghịch đảo.
1/. Khái niệm.
Cho a  Zn , nếu tồn tại b  Zn sao cho a*b  1 (mod n), ta nói b là phần tử nghịch đảo
của a trong Zn, ký hiệu b = a -1.
Khi một phần tử có phần tử nghịch đảo của nó, phần tử đó được gọi là khả nghịch (có
nghịch đảo).
2/. Định lý.
ƯCLN (a, n) = 1  Phần tử a  Zn có phần tử nghịch đảo.
3/. 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.
Tức là: a / b (mod n) = a * b-1 (mod n)

3


Ví dụ: Xét phần tử a = 4  Z9, ta có gcd(4,9) = 1 nên phần tử a là khả nghịch trong Z9.
Ta sẽ tìm phần tử nghịch đảo b này.
b = 7 là phần tử nghịch đảo của 4 trong Z9 vì thỏa mãn:
4 * 7 mod 9 = 1 hay 4 * 7  1 (mod 9)
Phần tử a  Zn là phần tử khả nghịch trong Zn khi và chỉ khi gcd(a,n) = 1
1.2. MÃ HÓA DỮ LIỆU.
1.2.1. Khái niệm về mã hóa dữ liệu.
* Mã hóa là quá trình chuyển thông tin có thể đọc được (Bản rõ) thành thông tin “khó”
thể đo ̣c được theo cách thông th
ường (Bản mã).
* Giải mã là quá trình chuyển thông tin ngược lại: từ Bản mã thành Bản rõ.

* Thuật toán mã hóa hay giải mã là thủ tục tính toán để thực hiện mã hóa hay giải mã .
* Khóa mã hóa là một giá trị làm cho thuật toán mã hóa thực hiện theo cách riêng b iê ̣t
và sinh ra bản rõ riêng .
* Hê ̣ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin , cũng như làm cho
rõ nó.
1.2.2. Phân loại.
+ Hệ mã hóa khóa đối xứng (khóa bí mật).
+ Hệ mã hóa khóa phi đối xứng (khóa công khai).
Hệ mã hóa.
Việc mã hoá phải theo quy tắc nhất định, gọi là Hệ mã hóa.
Hệ mã hó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 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 khóa lập mã ke  K, có hàm lập mã eke  E, eke: P C
Với khóa giải mã kd  K, có hàm giải mã dkd  D, dkd: C P
sao cho dkd (eke (x)) = x, x  P, (x là bản rõ, eke (x) là bản mã.)
* Hệ mã hóa khóa công khai RSA.
1). Sơ đồ (do Rivest, Shamir, Adleman đề xuất năm 1977)
- Tạo cặp khóa (bí mật, công khai) (a, b):
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn
Tính bí mật (n) = (p-1).(q-1). Chọn khóa công khai b < (n), nguyên tố với (n).
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b  1 mod (n).
Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b  Zn , a*b  1 mod (n).
Với Bản rõ x  P và Bản mã y  C, định nghĩa:

4



Hàm Mã hoá: y = ek (x) = x b mod n
Hàm Giải mã: x = dk (y) = y a mod n
2). Ví dụ.
3). Độ an toàn.
- Hệ mã hóa RSA là tất định.
- Hệ mật RSA an toàn, khi giữ được bí mật a, p, q, (n).
1.3. CHỮ KÝ SỐ.
1.3.1. Giới thiệu về chữ ký số.
Phương pháp ký một thông điệp lưu dưới dạng “số” (điện tử). Thông điệp được ký và
chữ ký cùng truyền trên mạng tới người nhận.
Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra “bản
mã” của tài liệu với “khóa lập mã”.
Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu. Kẻ gian khó thể giả mạo
“chữ ký số” nếu không biết “khóa lập mã”.
Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã “chữ ký số”
bằng “khóa giải mã”, so sánh với tài liệu gốc.
“Ký số” thực hiện trên từng bit tài liệu, độ dài của “chữ ký số” ít nhất cũng bằng độ dài
của tài liệu. Nên, thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm” để tạo “đại
diện” cho tài liệu, sau đó mới “ký số” lên “đại diện” này.
* Sơ đồ chữ ký số.
Sơ đồ chữ ký là bộ năm (P, A, K, S, V), trong đó:
P là tập hữu hạn các văn bản có thể.
A là tập hữu hạn các chữ ký có thể.
K là tập hữu hạn các khoá có thể.
S là tập các thuật toán ký.
V là tập các thuật toán kiểm thử.
Với mỗi khóa k  K có:
Thuật toán ký Sig k  S, Sig k: P  A
Thuật toán kiểm tra chữ ký Ver k  V, Ver k: P  A đúng, sai, thỏa mãn điều kiện

sau với mọi x  P, y  A
Đúng, nếu y = Sig k (x)
Ver k (x, y) =
Sai, nếu y  Sig k (x)
1.3.2. Sơ đồ ký số RSA.
1/. Sơ đồ
*Tạo cặp khóa (bí mật, công khai) (a, b):
Chọn bí mật số nguyên tố lớn p, q (p ≠ q), tính n=p*q, công khai n.

5


Tính bí mật (n) = (p-1)*(q-1). Chọn khóa công khai b, sao cho 1 < b < (n), nguyên tố
cùng nhau với (n).
Khóa bí mật a là phần tử nghịch đảo của b theo modulo (n), tức: a*b  1 (mod (n)).
Cặp khóa (bí mật, công khai)
K = (a, b)/ a, b  Zn , a*b  1 (mod (n)).
* Ký số: Chữ ký trên x  P là y = Sig k (x) = x a (mod n), y  A.
* Kiểm tra chữ ký: Verk (x, y) = đúng  x  y b (mod n).
1.4. 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ù: người ký
trên tài liệu mà không biết nội dung tài liệu.
Ứng dụng trong hệ thống tiền điện tử: Mua bán trên mạng.
Giả sử Alice muốn mua một quyển sách B giá 100$ từ Bob. Giả sử cả hai người đều sử
dụng dịch vụ của một ngân hàng. Giao thức giao dịch sẽ gồm 3 giai đoạn:
Rút tiền:
Alice tạo tiền điện tử C (với những thông tin: số seri, giá trị của C, ví dụ là 100$).
Alice yêu cầu ngân hàng ký mù lên C.
Giao thức ký thành công, ngân hàng sẽ trừ 100$ trong tài khoản của Alice.
Tiêu tiền:

Alice đưa cho Bob tiền C đã có chữ ký của ngân hàng, yêu cầu Bob đưa cho quyển sách
B.
Bob kiểm tra chữ ký trên C. Nếu không hợp lệ, Bob sẽ dừng ngay giao dịch.
Gửi tiền:
Bob lấy C từ Alice và gửi cho ngân hàng.
Ngân hàng xác thực chữ ký trên C:
+ Nếu hợp lệ, ngân hàng kiểm tra xem C đã được tiêu trước đó hay chưa.
+ Nếu C chưa được tiêu thì ngân hàng cộng thêm C vào tài khoản của Bob.
+ Nếu việc gửi tiền thành công, Bob sẽ gửi quyển sách B cho Alice.
Bob khó có thể biết rằng C là từ tài khoản nào. Khi Bob gửi C thì ngân hàng cũng “khó”
có thể biết rằng C được lấy ra từ tài khoản của Alice vì nó đã được ký mù. Như vậy tiền điện
tử C không lưu lại dấu vết của những ai đã tiêu nó.
* Sơ đồ chữ ký mù RSA.
Yêu cầu bài toán là: A muốn lấy chữ ký của B trên x nhưng không muốn B biết x. Quá
trình thực hiện như sau:
+ Lấy p, q là các số nguyên tố lớn, tính n = p*q
+ Tính (n) = (p-1)*(q-1), a*b ≡ 1 mod (n)
+ r là số ngẫu nhiên  Zn (chọn r sao cho tồn tại phần tử nghịch đảo r -1 (mod n))
Bƣớc 1: A làm mù x bằng một hàm:
Blind(x) = x*rb mod n = z, và gửi z cho B

6


Bƣớc 2: B ký trên z bằng hàm:
Sign(z) = Sign(Blind (x)) = za mod n = y, và gửi lại y cho A.
Bƣớc 3: A xóa mù y bằng thuật toán:
UnBlind(y) = UnBlind( Sign( Blind( x))) = y/r mod n = sign(x)
Ví dụ:
Alice cần Bob ký lên thông điệp x = 8. Nếu theo chữ ký RSA, kết quả sau khi ký là:

Sign( x=8) = xa mod n = 87 mod 15 = 2 = y
Nhưng Alice muốn Bob ký mù lên x.
Bước 1: Alice làm mù x = 8. Chọn phần tử làm mù là r = 11  Z15 (gcd(11, 15) = 1)
Blind(x)= x*rb mod n = 8*117(mod 15)= 8*19487171(mod 15)
= 15589368 mod 15 = 13 = z.
Bước 2: Bob ký trên z. y= Sign(z)= za mod n =137(mod 15)= 7
Bước 3: Alice xóa mù:
UnBlind(y)= y/r (mod n)= 7/11 (mod 15) = 7 * 11-1 mod 15 = 2
1.5. HÀM BĂM.
Đối với các tài liệu dài, độ dài của chữ ký số ít nhất cũng bằng độ dài của tài liệu (do
việc ký số được thực hiện trên từng bit của tài liệu), điều này đòi hỏi cả yêu cầu về không
gian (để lưu trữ chữ ký) và thời gian (để truyền chữ ký trên mạng). Hàm băm là giải pháp để
tạo đại diện cho các tài liệu dài, sau đó tài liệu sẽ được ký số thông qua đại diện này.
Hàm băm là hàm một chiều, có nghĩa rằng giá trị của hàm băm là duy nhất, từ giá trị
này khó thể suy ngược lại nội dung hay độ dài ban đầu của tài liệu gốc.
1.5.1. Hàm một chiều (one-way hash).
Hàm một chiều có các đặc tính:
1). Với tài liệu đầu vào (bản tin gốc ban đầu) x, chỉ thu được giá trị băm duy nhất, đó
là z = h(x).
2). Nếu dữ liệu trong bản tin gốc ban đầu x bị thay đổi hay bị xóa để thành bản tin x’,
thì giá trị băm h(x’)  h(x).
3). Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó.
1.5.2. Tính chất của hàm băm.
Hàm băm h được gọi là không va chạm yếu, nếu cho trước bức điện x, “khó” thể tính
toán để tìm ra bức điện x’  x mà h(x’) = h(x).
Hàm băm h được gọi là không va chạm mạnh nếu “khó” thể tính toán để tìm ra hai
bức thông điệp khác nhau x’ và x (x’  x) mà có h(x’) = h(x).
Hàm băm h được gọi là hàm một chiều nếu khi cho trước một bản tóm lược thông báo
z thì “khó thể” tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z.
Chương 2. THANH TOÁN BẰNG TIỀN ĐIỆN TỬ


7


Cùng với sự phát triển của công nghệ, những ứng dụng thiết thực trên môi trường
mạng Internet đã dần đi vào cuộc sống của con người, làm thay đổi quan niệm, cách suy nghĩ
và cả cách thức sinh hoạt, trao đổi truyền thống.
Quá trình trao đổi thương mại cũng chịu tác động ấy, khái niệm “Thương mại điện tử”
được hình thành và phát triển. Có thể hiểu theo nghĩa hẹp, thương mại điện tử là quá trình
người mua hàng và người bán hàng thực hiện giao dịch thương mại thông qua các phương
tiện điện tử và hệ thống mạng viễn thông. Xét theo nghĩa rộng hơn, thương mại điện tử là việc
ứng dụng các thành tựu của công nghệ thông tin và truyền thông vào các hoạt động quản lý và
kinh doanh.
Một yếu tố quan trọng để thực hiện được thương mại điện tử theo đúng nghĩa, đó là
phải thực hiện được quá trình thanh toán điện tử, đáp ứng nhu cầu thanh toán con người với
một phương thức nhanh chóng, thuận lợi, hiệu quả và an toàn. Quá trình thanh toán điện tử
này dần đưa đến một khái niệm mới, đó là đồng tiền điện tử.
2.1. CÁC PHƢƠNG THỨC THANH TOÁN TỪ XA QUA MẠNG.
2.1.1. Thanh toán bằng thẻ điện.
Trong việc thực hiện hình thức thanh toán này tại các website cung cấp dịch vụ trên
mạng, đơn giản là người mua chỉ cần cung cấp một số thông tin cần kiểm tra về chủ thẻ cho
người bán hàng. Phía người bán hàng sẽ gửi các thông tin này đến ngân hàng đại diện để thực
hiện việc xác minh các điều kiện đảm bảo thanh toán cho chủ thẻ này, đây còn được gọi là
hình thức thanh toán trực tuyến vì nó đòi hỏi sự tham gia của tổ chức thứ 3 (bên ngân hàng
phát hành) trong quá trình thực hiện giao dịch.
2.1.2. Thanh toán bằng séc điện tử.
Séc điện tử là hình thức một lá thư điện tử với khuôn dạng đặc biệt, nó chứa các thông
tin như thể hiện trên tờ séc giấy thông thường, như thông tin về người nhận séc, số tiền, số tài
khoản người trả tiền,…
Tuy nhiên, để đảm bảo an toàn trong quá trình thực hiện thanh toán qua hình thức này,

séc điện tử được ký bằng chữ ký điện tử của người trả tiền và được mã hóa bằng khóa công
khai của người được nhận tiền, nó cũng chứa thông tin xác nhận tính hợp lệ của tờ séc điện tử
này từ ngân hàng.
2.1.3. Thanh toán bằng đồng tiền điện tử.
Quá trình thanh toán đồng tiền điện tử thực chất là truyền đi các dãy con số được “đại
diện” cho đồng tiền điện tử với các thông số được xác thực bởi ngân hàng về giá trị thanh
toán của nó.
Đồng tiền điện tử khắc phục được các nhược điểm của hình thức thanh toán bằng thẻ
tín dụng khi việc thanh toán đơn giả là rút tiền từ ví điện tử ra, như ý nghĩa của ví tiền thông
thường. Hệ thống thanh toán bằng đồng tiền điện tử đảm bảo được sự ẩn danh của người tiêu
tiền, tránh nguy cơ tiền giả, giảm được chi phí giao dịch.

8


2.2. KHÁI NIỆM TIỀN ĐIỆN TỬ.
Tiền điện tử, được biết đến với thuật ngữ digital cash (tiền số) phân biệt với một loại
tiền giấy truyền thống - paper cash. Tuy nhiên, giống như tiền giấy, mỗi đồng tiền điện tử
được gắn với một số se-ri duy nhất, do một tổ chức phát hành (thường là một ngân hàng), nó
biểu diễn cho một lượng giá trị tiền thật nào đó.
Tiền điện tử có dạng số hóa, tức là nó được lưu trữ dưới dạng các bit số, tại cơ sở dữ
liệu của tổ chức phát hành, là một ngân hàng. Giá trị của tiền điện tử được thể hiện trên tài
khoản của khách hàng mở tại tổ chức phát hành đồng tiền điện tử ấy (ngân hàng).
Tiền điện tử được bảo mật bằng chữ ký điện tử, tuy nhiên cũng giống như tiền giấy,
tiền điện tử có chức năng là phương tiện trao đổi và tích lũy giá trị. Đặc trưng về tính ẩn danh
và có thể sử dụng lại là hoàn toàn giống nhau giữa tiền điện tử và tiền giấy, điều này là khác
biệt đối với hệ thống thanh toán thẻ tín dụng điện tử.
Tiền điện tử được chia thành hai loại:
+ Ẩn danh: có đặc tính như tiền giấy thông thường, đồng tiền điện tử không tiết lộ
thông tin của người sử dụng, nó có thể được rút từ một tài khoản người dùng để tiêu dùng

hoặc lưu chuyển cho người khác mà không để lại dấu vết.
+ Định danh: có đặc tính như thẻ tín dụng điện tử. Thẻ tín dụng này ngoài một số
thông tin như mã số thẻ, ngày hết hạn…, còn có các thông tin về tên chủ thẻ, địa chỉ chủ
thẻ… được lưu trữ và được các nhà bán hàng sử dụng để xác minh tài khoản chủ thẻ. Việc sử
dụng thẻ tín dụng điện tử cho phép ngân hàng lưu dấu vết của tiền khi tiền được lưu chuyển.
Mỗi loại tiền trên lại chia thành 2 dạng: trực tuyến (online) và không trực tuyến
(offline).
Trực tuyến: phải tương tác với phía thứ ba (ngân hàng) để kiểm soát giao dịch.
Không trực tuyến: có thể kiểm soát được giao dịch, mà không cần liên quan trực tiếp
đến phía thứ ba.
2.2.1. Cấu trúc tiền điện tử.
Gồm các thông tin chính:
Số sê-ri của đồng tiền, giá trị của đồng tiền, hạn định của đồng tiền, các thông tin
khác.
2.2.2. Tính chất của tiền điện tử.
2.2.2.1. Tính an toàn (security).
2.2.2.2. Tính xác thực (authentication).
2.2.2.3. Tính riêng tư (privacy).
2.2.2.4. Tính độc lập (portability).
2.2.2.5. Tính chuyển nhượng (transferrability).
2.2.2.6. Tính phân chia được (divisibility).
2.3. QUY TRÌNH THANH TOÁN BẰNG TIỀN ĐIỆN TỬ.

9


2.3.1. Mô hình trả tiền sau.
Thời điểm tiền mặt được rút ra khỏi tài khoản bên mua để chuyển sang bên bán, xảy ra
ngay (pay-now) hoặc sau (pay-later) giao dịch mua bán. Hoạt động của hệ thống dựa trên
nguyên tắc tín dụng (Credit crendental). Nó còn được gọi là mô hình mô phỏng Séc (Chequelike model).


Hình 2.2: Mô hình mô phỏng séc
2.3.2. Mô hình trả tiền trƣớc.
Khách hàng liên hệ với ngân hàng (hay công ty môi giới - Broker) để có được chứng
từ do ngân hàng phát hành. Chứng từ hay Đồng tiền số này mang dấu ấn của ngân hàng, được
đảm bảo bởi ngân hàng và do đó có thể dùng ở bất cứ nơi nào đã có xác lập hệ thống thanh
toán với ngân hàng này.

Hình 2.3: Mô hình mô phỏng tiền mặt
2.3.3. Các giao thức thực thực hiện thanh toán với đồng tiền điện tử.
Hệ thống thanh toán bằng đồng tiền điện tử có 3 giao thức là :

10


+ Rút tiền.
+ Trả tiền.
+ Gửi tiền.
2.4. KỸ THUẬT VÀ CÔNG NGHỆ DÙNG TIỀN ĐIỆN TỬ.
Những vấn đề được đặt ra để giải quyết trong quá trình thực hiện thanh toán bằng tiền
điện tử, đó là: vấn đề ẩn danh người sử dụng đồng tiền và vấn đề ngăn chặn người dùng tiêu
một đồng tiền điện tử nhiều lần.
2.4.1. Ẩn danh đồng tiền và các vấn đề liên quan.
1/. Ẩn danh đồng tiền.
Là đặc tính quan trọng của phương thức thanh toán bằng tiền điện tử, được hiểu là người
tiêu tiền phải được ẩn danh và không để lại dấu vết, ngân hàng không thể biết được tiền giao
dịch là của ai.
Để giải quyết vấn đề ẩn danh, người ta đã sử dụng kỹ thuật “chữ ký mù”. Với chữ ký
mù của ngân hàng, họ không thể có được mối liên hệ nào giữa đồng tiền điện tử và chủ sở
hữu của nó.

2/. Vấn đề gian lận giá trị đồng tiền.
Việc ngân hàng dùng chữ ký “mù” để ký vào đồng tiền làm nảy sinh một vấn đề khác,
đó là: ông A gian lận, gửi tới ngân hàng đồng tiền ghi giá trị 50$ để xin chữ ký của họ trên
đồng tiền này, nhưng lại báo với ngân hàng rằng đồng tiền đó chỉ ghi giá trị 1$. Như vậy ông
A đã có đồng tiền 50$ cùng với chữ ký của ngân hàng, nhưng tài khoản của ông chỉ bị khấu
trừ 1$.
3/. Vấn đề tiêu một đồng tiền nhiều lần.
Tiền điện tử có dạng số hóa, nên dễ dàng tạo bản sao từ bản gốc. Chúng ta không thể
phân biệt được giữa đồng tiền “gốc” và đồng tiền “sao”. Kẻ gian có thể tiêu xài đồng tiền
“sao” này nhiều lần mà không bị phát hiện.
Khi hệ thống tiền điện tử được áp dụng vào thực tế, thì phải có khả năng ngăn ngừa hay
phát hiện được trường hợp “Một đồng tiền tiêu xài hai lần” - (double spending).
2.4.2. Giải pháp ngăn chặn gian lận giá trị đồng tiền.
Dùng kỹ thuật chữ ký “mù”, đảm bảo ngân hàng không có bất cứ mối liên hệ nào giữa
đồng tiền điện tử và chủ sở hữu của nó.
Để ngăn chặn gian lận giá trị đồng tiền có một số phương pháp.
1). Phương pháp
thứ nhất:
Ngân hàng dùng một bộ khóa (khóa ký, khóa kiểm tra chữ ký) khác nhau cho mỗi loại
tiền. Nếu có k giá trị đồng tiền thì ngân hàng phải có k bộ khóa khác nhau.
Ví dụ với đồng tiền giá trị 1$ thì dùng khoá k1, đồng tiền 50$ thì dùng khoá k50. Ông A
gian lận tạo ra đồng tiền 50$, nhưng ngân hàng vẫn dùng khóa k 1 để ký, vậy đồng tiền 50$ là
không hợp lệ.
2). Phương pháp thứ hai:

11


Giao thức cắt và chọn (cut and choose): Ngân hàng chọn ngẫu nhiên k/2 đơn vị đồng
tiền để kiểm tra, nếu không có gian lận xảy ra thì mới ký “mù” lên các đơn vị còn lại. Ngân

hàng có sự đảm bảo cao rằng đồng tiền còn lại cũng là hợp lệ, nếu k càng lớn.
2.5. HỆ THỐNG TIỀN ĐIỆN TỬ DIGICASH.
* Giới thiệu.
Cấu trúc chung trong một mô hình thanh toán tiền điện tử, nó thường gồm 3 nhân tố
hoạt động với các giao dịch: rút tiền, trả tiền và gửi tiền. Các nhân này tố bao gồm :
+ Ngân hàng: thực hiện kiểm soát các giao dịch rút tiền, gửi tiền từ những người sử
dụng.
+ Khách hàng: rút tiền từ ngân hàng, trả tiền cho giao dịch mua hàng.
+ Nhà cung cấp: nhận tiền từ dịch vụ khách hàng và gửi vào ngân hàng.
2.5.1. Phƣơng thức hoạt động.
Quá trình giao dịch trong hệ thống DigiCash bao gồm 4 pha, được diễn giải cụ thể
qua các bước từ 1 đến 10 như ở hình dưới :

Pha 1: Tạo tiền điện tử (Tương ứng với giao thức rút tiền)
1. Phía Alice, phần mềm ví điện tử sinh một số ngẫu nhiên N dùng làm số se-ri của
đồng tiền. Dã y số nà y phải đủ dài để đảm bảo tính duy nhất phân biệt cho mỗi đồng tiền,
tránh việc 2 se-ri trùng nhau. Gắn mỗi số sê-ri với một giá trị của đồng tiền. Để ngân hàng
thực hiện việc ký mù, trước đó giá trị N được làm mù với một số random bí mật r, v à gửi
cho ngân hàng giá trị của đồng tiền và se-ri đã được mù hóa.
2. Ngân hàng kiểm tra thông tin tài khoản của Alice, ghi nợ vào tài khoản của Alice (trừ
đi một lượng tiền tương ứng trong tài khoản của Alice).
3. Ngân hàng xác nhận tính hợp lệ cho đồng tiền điện tử (ký mù lên nó với khóa bí mật
tương ứng với giá trị đồng tiền, tức là theo thiết kế cài đặt ban đầu tại ngân hàng phát hành,
mỗi loại tiền sẽ tương ứng với một cặp chữ ký số) và gửi nó về cho khách hàng (Alice).
4. Alice khử mù đồng tiền điện tử ấy và thu được đồng tiền đã có chữ ký hợp lệ của
ngân hàng. Đồng tiền này được lưu trên máy của Alice và được quản lý bởi phần mềm
“Cyber wallet”, tức là nằm trong ví điện tử của Alice.

12



Pha 2: Tiêu tiền điện tử (Tương ứng với giao thức trả tiền)
5.Alice gửi yêu cầu mua hàng đến Bob.
6. Bob gửi thông tin c ầ n t h i ế t về s ả n p hẩ m và t hô ng t i n t ha n h t o á n trở lại
phía Alice.
7. Sau khi Alice chấp nhận giao dịch, phần mềm “Cyber wallet” sẽ tự động thu thập
các đồng tiền theo đúng yêu cầu, gửi chúng từ ví điện tử cho Bob để thực hiện thanh toán.
Pha 3: Đổi tiền điện tử (Tương ứng với giao thức gửi tiền)
8. Trước khi chấp nhận thanh toán, Bob gửi các đồng tiền điện tử vừa nhận được đến
ngân hàng để kiểm tra tính hợp lệ của chúng.
9. Ngân hàng kiểm tra chữ ký trên đồng tiền và xem nó được tiêu chưa thông qua
CSDL về số se-ri của đồng tiền đã được tiêu dùng. Nếu tất cả là hợp lệ, ngân hàng chấp
những đồng tiền ấy, tăng tài khoản của Bob tương ứng với số tiền vừa nhận, đồng thời lưu
các dãy số trên đồng tiền vào danh sách những đồng tiền đã tiêu.
Pha 4: Kết thúc giao dịch
10. Sau khi tất cả đã được kiểm tra hợp lệ, Bob gửi sản phẩm và biên nhận đến
Alice. Quá trình giao dịch được kết thúc.
2.5.2. Nhận xét.
1/. Ƣu điểm của hệ thống Digicash:
Chi phí giao dịch thấp. Độ an toàn của hệ thống dựa trên hệ mật mã RSA. Đảm bảo
tính ẩn danh của người sử dụng. Không phụ thuộc vào phần cứng.
2/. Nhƣợc điểm của hệ thống Digicash:
Việc kiểm tra trực tuyến là cần thiết. Ngoài ra, CSDL của ngân hàng phải đủ lớn để
lưu tất cả các đồng tiền đã được sử dụng. Cả khách hàng và nhà cung cấp đều phải có tài
khoản ở cùng một ngân hàng có hỗ trợ tiền điện tử Digicash. Nếu dữ liệu về các đồng tiền
bị phá hủy thì không có cách lấy lại những đồng tiền đã bị mất.
Tóm lại, mặc dù có những điểm không thuận lợi nhất định song với những ưu điểm
của mình, Digicash được đánh giá là một hệ thống tiềm năng. Hiện nay, trên thế giới có
một số các ngân hàng đã chấp nhận Digicash như: Ngân hàng Mark Twain (Mỹ), ngân
hàng EUnet (Phần Lan), ngân hàng St. George (Đức),…

2.6. VẤN ĐỀ THANH TOÁN BẰNG TIỀN ĐIỆN TỬ TẠI VIỆT NAM.
2.6.1. Thẻ thanh toán điện tử.
Năm 1990, hợp đồng làm đại lý chi trả thẻ Visa giữa ngân hàng Pháp BFCE và
Vietcombank đã mở đầu cho phương thức thanh toán mới này ở Việt Nam. Tiếp theo
Vietcombank, ngân hàng Công thương Sài Gòn cũng liên kết với trung tâm thẻ Visa để làm
đại lý thanh toán thẻ Visa cho các công ty nước ngoài.

13


Còn Citi Bank là một ngân hàng Mỹ đầu tiên có mặt ở Việt Nam thông qua chi nhánh
của mình ở Hà Nội và TP Hồ Chí Minh, đã thực hiện thanh toán thẻ điện tử ở Việt Nam. Citi
Bank là ngân hàng điện tử có thể thanh toán cho hầu hết các loại thẻ thông dụng trên thị
trường thế giới như Mastercard, Visa, Amex…
Bên cạnh đó, một loạt các chi nhánh ngân hàng thương mại như Eximbank, Indovina,
ANZ, Ngân hàng Á châu cũng lần lượt xâm nhập vào thị trường thanh toán thẻ Việt Nam.
2.6.2. Chuyển tiền điện tử.
1/. Xây dựng “đƣờng đi” an toàn cho đồng tiền điện tử.
- Xây dựng một cơ sở hạ tầng về mật mã khóa công khai, viết tắt là PKI (Public Key
Infrastructure).
+ Tập hợp các công cụ, các phương tiện, các giao thức bảo đảm an toàn thông tin.
+ Hành lang pháp lý cho PKI, bao gồm: Luật giao dịch điện tử, các Quy định dưới
luật.
+ Các tổ chức điều hành giao dịch điện tử (CA, RA, LRA,…).
2/. Xây dựng các cơ sở bảo vệ “ví tiền” của ngƣời sử dụng.
- Giải pháp cho vấn đề này là thẻ thông minh (Smart Card).
2.6.3. Phát triển thanh toán điện tử ở Việt Nam.
1/. Những yếu tố tồn tại:
* Thiếu kết nối tổng thể.
Mạng lưới thanh toán thẻ của NH, hiện vẫn tồn tại tới 3 liên minh (liên minh của

Vietcombank, hệ thống kết nối giữa ANZ và Sacombank, và hệ thống của NH Đông Á).
* Sự cần thiết ra đời trung tâm chuyển mạch quốc gia.
Trung tâm chuyển mạch tài chính ở tầm quốc gia với nhiệm vụ chuyển mạch kết nối
giao dịch thanh toán giữa các bên khác nhau, xử lý thanh toán bù trừ và quyết toán giá trị
thanh toán. Ngoài ra, có một số cổng thanh toán, các cổng này có thể do một số công ty tư
nhân xây dựng để cung cấp dịch vụ.
2/. Những yếu tố tích cực:
Công ty Cổ phần Chuyển mạch Tài chính Quốc gia Việt Nam - Banknetvn được thành
lập vào tháng 7/2004.
Ngày 30/03/2010, Ngân hàng Nhà nước Việt Nam đại diện cho Nhà nước trở thành cổ
đông thứ 9 của Banknetvn.
Hệ thống Chuyển mạch Banknetvn cho phép thực hiện đầy đủ các chức năng cơ bản
của hệ thống chuyển mạch tài chính quốc gia.
Bên cạnh đó, Banknetvn cũng đã kết nối thành công với Công ty Cổ phần Dịch vụ Thẻ
Smartlink - Smartlink và Công ty Cổ phần Thẻ Thông minh Vina - VNBC.
* Hoạt động của Banknet với ví điện tử Payoo:
Ngày 04/11/2010, Banknetvn đã cùng Công ty Cổ Phần Trực tuyến Cộng đồng Việt
(VietUnion) ký kết thỏa thuận hợp tác nhằm triển khai các dịch vụ hỗ trợ thanh toán điện tử.

14


Theo đó, người dùng có tài khoản tại các ngân hàng thành viên đã kết nối vào hệ
thống chuyển mạch của Banknetvn có thể sử dụng nạp tiền trực tuyến vào Ví điện tử Payoo
để thanh toán mua hàng qua mạng, thanh toán dịch vụ nạp tiền di động trả trước, thanh toán
hóa đơn dịch vụ định kỳ…
Chƣơng 3. THỬ NGHIỆM CHƢƠNG TRÌNH
3.1. GIỚI THIỆU.
3.2. CẤU HÌNH HỆ THỐNG.
Chương trình mô phỏng hệ thống DigiCash, mô tả cách thức sử dụng tiền điện tử để

thanh toán qua mạng công khai.
Hệ thống gồm có các thành phần: Khách hàng - client, Ngân hàng - server và Cơ sở dữ
liệu - dbms.
Ứng dụng được phát triển dựa theo mô hình client/ server, được cấu hình chạy trên
web server IIS của Microsoft với tên digicash. Sử dụng ngôn ngữ kịch bản ASP, chạy trên nền
Windows. Hệ thống cần 2 cơ sở dữ liệu (CSDL MS ACCESS) để thực hiện:
+ Tại máy server của Ngân hàng: lưu thông tin tài khoản của khách hàng và hệ thống
tiền điện tử.
+ Tại máy client của Khách hàng: lưu thông tin về ví tiền điện tử - chứa các đồng tiền
trong ví điện tử của khách hàng.
3.3. CÁC THÀNH PHẦN CỦA CHƢƠNG TRÌNH.
Bao gồm 3 chức năng:
+ Rút tiền: Cho phép khách hàng rút đồng tiền điện tử trong định mức tài khoản của
mình từ ngân hàng về ví tiền điện tử của mình. Ngân hàng sẽ trừ vào tài khoản của khách
hàng số tiền tương ứng đã rút.
+ Thanh toán: Cho phép khách hàng trả đồng tiền điện tử cho doanh nghiệp trên mạng
qua hệ thống, yêu cầu cả hai đối tượng này phải có tài khoản tại cùng ngân hàng phát hành
đồng tiền điện tử.
+ Nhận tiền: Cho phép doanh nghiệp nhận đồng tiền điện tử được gửi tới từ khách
hàng trên mạng thông qua hệ thống. Ngân hàng sẽ cộng tiền vào tài khoản của người nhận số
tiền tương ứng.
3.4. HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH.
Đối với khách hàng cần có giao diện thân thiện để thuận lợi cho việc thực hiện giao
dịch.
Tại máy client của mình, khách hàng muốn rút tiền thì chỉ cần chọn ra đồng tiền cần
rút, hệ thống sẽ tạo ra số serial của đồng tiền và làm mù nó, sau đó chuyển đến cho ngân
hàng. Ngân hàng sẽ ký mù và chuyển trở về cho khách hàng.
Khách hàng sử dụng đồng tiền điện tử này để thanh toán cho giao dịch trên mạng, gửi
đồng tiền điện tử này cho doanh nghiệp qua hệ thống.


15


Ngân hàng có chức năng kiểm tra tính hợp lệ của đồng tiền, thực hiện việc cộng tiền
vào tài khoản cho doanh nghiệp.
Việc giao dịch được thực hiện qua giao thức mạng TCP/IP. DBMS là hệ thống lưu trữ
cơ sở dữ liệu mà cả khách hàng và ngân hàng đều phải có. Đối với khách hàng thì DBMS lưu
trữ các đồng tiền mà mình đã rút và các thông tin liên quan, đối với ngân hàng thì DBMS lưu
trữ các thông tin về tài khoản của khách hàng và các thông tin về các đồng tiền điện tử cung
cấp.
Giao diện khi đăng nhập:
Để đăng nhập vào hệ thống, tại máy client nhập url kết nối đến web server từ chương
trình duyệt web (Fire Fox hoặc Internet Explorer). Thử nghiệm chương trình được cấu hình
theo máy chủ cục bộ tại địa chỉ:
http://localhost/digicash
KẾT LUẬN
Những kết quả chính của luận văn là:
1/. Nghiên cứu, tìm hiểu và hệ thống lại các vấn đề:
- Các khái niệm cơ bản về số học, đại số và độ phức tạp thuật toán. Đây là các
khái niệm được sử dụng trong mật mã học.
- Các kiến thức nền tảng về mã hóa dữ liệu và chữ ký điện tử.
- Các kiến thức tổng quan về thương mại điện tử và tiền điện tử.
- Cơ sở khoa học của tiền điện tử:
+ Khái niệm tiền điện tử: cấu trúc và tính chất.
+ Quy trình thanh toán bằng tiền điện tử.
+ Nghiên cứu và phân tích giải pháp cho một số vấn đề cơ bản của tiền điện tử:
./ Vấn đề ẩn danh người sử dụng đồng tiền.
./ Vấn đề gian lận giá trị đồng tiền.
./ Vấn đề ngăn chặn tiêu một đồng tiền nhiều lần.
-Hệ thống thanh toán điện tử hiện nay trên thế giới, DigiCash, đại diện cho các hệ

thống hiện đang được sử dụng.
- Hiện trạng thanh toán điện tử tại Việt Nam.
2/. Thử nghiệm chương trình, xây dựng ứng dụng DigiCash mô phỏng quá trình sử dụng tiền
điện tử để thanh toán qua mạng.
Hướng phát triển tiếp theo của luận văn là nghiên cứu sâu hơn nữa, về vấn đề ẩn danh,
gian lận giá trị và tiêu nhiều lần một đồng tiền điện tử, phân tích các mô hình tiền điện tử,
phát hiện các lỗ hổng an toàn trong các mô hình tiền điện tử và đề xuất các mô hình tiền điện
tử hiệu quả.
References

16


Tiếng Việt.
1.GS Phan Đình Diệu (2006), Lý thuyết Mật Mã và An toàn thông tin, nhà xuất bản Đại
học quốc gia Hà nội.
2.PGS.TS Trịnh Nhật Tiến (2007), Giáo trình An toàn dữ liệu.
3.PGS.TS Trịnh Nhật Tiến (2007), Bài giảng môn Phân tích đánh giá thuật toán.
4.PGS.TS Trịnh Nhật Tiến, Thanh toán bằng tiền“điện tử”.
5.Một số thông tin tra cứu trên internet.
Tiếng Anh.
6. Digicash, home page .
http: // www. di gi cash. com
7.D.Chaum, A.Fiat, and M.Naor, Untraceable electronic cash (Extended Abstract).
8.Digital Cash, Mandana Jahanian Farsi - Master’s Thesis in Computer Science,
Department of mathematics and computer science, Goteborg University 1997.
9. Digicash implementation, Jens Bo Friis - Cryptology, University of Aarhus 4 June
2003, Project supervisor: Jesper Buus Nielsen.

17




×