Tải bản đầy đủ (.pdf) (74 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 (3.32 MB, 74 trang )




























ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ




PHẠM VĂN QUANG







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



LUẬN VĂN THẠC SĨ






















Hà Nội - 2012
1
























ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ




PHẠM VĂN QUANG




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



Ngành: Công Nghệ Thông Tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60.48.15


LUẬN VĂN THẠC SĨ



NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS Trịnh Nhật Tiến













Hà Nội - 2012
2



MỤC LỤC
Trang phụ bìa Trang
Lời cam đoan
Mục lục
Danh mục các chữ viết tắt
Danh mục các hình vẽ

MỞ ĐẦU 6
1. TÍNH CẤP THIẾT CỦA LUẬN VĂN. 6
2. MỤC ĐÍCH CỦA LUẬN VĂN. 6
3. ĐỐI TƢỢNG NGHIÊN CỨU. 7
4. PHƢƠNG PHÁP NGHIÊN CỨU. 7
5. KẾT CẤU CỦA LUẬN VĂN. 7
Chương 1. CÁC KHÁI NIỆM CƠ BẢN 8

1.1. MỘT SỐ KHÁI NIỆM TOÁN HỌC. 8
1.1.1. Số nguyên tố và số nguyên tố cùng nhau. 8
1.1.2. Đồng dƣ thức. 8
1.1.3. Phần tử nghịch đảo. 10
1.2. MÃ HÓA DỮ LIỆU. 11
1.2.1. Khái niệm về mã hóa dữ liệu. 11
1.2.2. Phân loại. 11
* Hệ mã hóa khóa công khai RSA. 15
1.3. CHỮ KÝ SỐ. 17
1.3.1. Giới thiệu về chữ ký số. 17
1.3.2. Sơ đồ ký số RSA. 18
1.4. CHỮ KÝ MÙ. 19
* Sơ đồ chữ ký mù RSA. 21
1.5. HÀM BĂM. 22
1.5.1. Hàm một chiều (One-way Hash). 22
1.5.2. Tính chất của hàm băm. 22
Chương 2. THANH TOÁN BẰNG TIỀN ĐIỆN TỬ 23
2.1. CÁC PHƢƠNG THỨC THANH TOÁN TỪ XA QUA MẠNG. 24
2.1.1. Thanh toán bằng thẻ điện tử. 24
2.1.2. Thanh toán bằng séc điện tử. 25
2.1.3. Thanh toán bằng đồng tiền điện tử. 25
2.2. KHÁI NIỆM TIỀN ĐIỆN TỬ. 26
2.2.1. Cấu trúc tiền điện tử. 29
2.2.2. Tính chất của tiền điện tử. 30
2.2.2.1. Tính an toàn (security). 30
3


2.2.2.2. Tính xác thực (authentication). 30
2.2.2.3. Tính riêng tƣ (privacy). 31

2.2.2.4. Tính độc lập (portability). 31
2.2.2.5. Tính chuyển nhƣợng (transferrability). 31
2.2.2.6. Tính phân chia đƣợc (divisibility). 32
2.3. QUY TRÌNH THANH TOÁN BẰNG TIỀN ĐIỆN TỬ. 33
2.3.1. Mô hình trả tiền sau. 33
2.3.2. Mô hình trả tiền trƣớc. 34
2.3.3. Các giao thức thực hiện thanh toán với đồng tiền điện tử. 36
2.4. KỸ THUẬT VÀ CÔNG NGHỆ DÙNG TIỀN ĐIỆN TỬ. 38
2.4.1. Ẩn danh đồng tiền và các vấn đề liên quan. 38
2.4.2. Giải pháp ngăn chặn gian lận giá trị đồng tiền. 39
2.5. HỆ THỐNG TIỀN ĐIỆN TỬ DIGICASH. 41
* Giới thiệu. 41
2.5.1. Phƣơng thức hoạt động. 42
2.5.2. Nhận xét. 43
2.6. VẤN ĐỀ THANH TOÁN BẰNG TIỀN ĐIỆN TỬ TẠI VIỆT NAM. 45
2.6.1. Thẻ thanh toán điện tử. 45
2.6.2. Chuyển tiền điện tử. 46
2.6.3. Phát triển thanh toán điện tử ở Việt Nam 48
Chƣơng 3. THỬ NGHIỆM CHƢƠNG TRÌNH 51
3.1. GIỚI THIỆU. 51
3.2. CẤU HÌNH HỆ THỐNG. 51
3.3. CÁC THÀNH PHẦN CỦA CHƢƠNG TRÌNH. 52
3.4. HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH. 53
KẾT LUẬN 72
TÀI LIỆU THAM KHẢO 73

4


BẢNG KÝ HIỆU CÁC CHỮ VIẾT TẮT


TT
Ký hiệu
Chú giải cho ký hiệu sử dụng
1
DBMS
Database Management System
2
DN
Doanh nghiệp
3
KH
Khách hàng
4
NH
Ngân hàng
5
RSA
Hệ mã hóa khóa công khai được đề xuất bởi Ron
Rivest, Adi Shamir, Len Adlemon năm 1977.
6
TMĐT
Thương mại điện tử
5


DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Mô hình mã hóa đối xứng.
Hình 1.2: Mô hình mã hóa phi đối xứng.
Hình 2.1: Mô hình giao dịch có tính chuyển nhượng.

Hình 2.2: Mô hình mô phỏng séc.
Hình 2.3: Mô hình mô phỏng tiền mặt.
Hình 2.4: Mô hình thanh toán cùng ngân hàng.
Hình 2.5: Mô hình thanh toán liên ngân hàng.
Hình 3.1: Xây dựng hệ thống DigiCash
Hình 3.2: Giao diện đăng nhập.
Hình 3.3: Giao diện khi đăng nhập thành công.
Hình 3.4: Chức năng Rút tiền.
Hình 3.5: Chọn ra đồng tiền muốn rút từ ngân hàng.
Hình 3.6: Chấp nhận cho người dùng rút tiền.
Hình 3.7: Thông báo giá trị n.
Hình 3.8: Người dùng nhập tham số r.
Hình 3.9: Giao diện cho phép khách hàng nhận về đồng tiền.
Hình 3.10: Thông báo đã nhận về đồng tiền.
Hình 3.11: Giao diện thông báo ví tiền mới của khách hàng.
Hình 3.12: Giao diện Thanh toán.
Hình 3.13: Thông báo đã gửi tiền trả.
Hình 3.14: Giao diện ví tiền sau khi thanh toán.
Hình 3.15: Kiểm tra tài khoản trước khi nhận tiền.
Hình 3.16: Giao diện Nhận tiền.
Hình 3.17: Thông báo kiểm tra đồng tiền thành công.
Hình 3.18: Thông báo đã lưu đồng tiền vào CSDL đã tiêu xài.
Hình 3.19: Thông báo đã cộng vào tài khoản sau khi nhận tiền.
Hình 3.20: Kiểm tra tài khoản sau khi nhận tiền.
6


MỞ ĐẦU

1. TÍNH CẤP THIẾT CỦA LUẬN VĂN.

Năm 1997 đánh dấu sự gia nhập của Việt Nam vào hệ thống mạng Internet
toàn cầu, đây thực sự là điều kiện thiết yếu để tạo nên một cuộc cách mạng về
công nghệ thông tin được ứng dụng vào cuộc sống, cách thức hoạt động của con
người thông qua những tiện ích thiết thực mà mạng Internet đã và sẽ mang lại.
Quá trình phát triển và mở rộng của Internet giúp khoảng cách địa lý giữa
mỗi con người, tổ chức được rút ngắn lại. Nhu cầu trao đổi thông tin, trao đổi
thương mại… đòi hỏi những tiện ích ngày càng thuận lợi hơn phục vụ cho
những hoạt động này.
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ử.
Bên cạnh đó, luận văn cũng sẽ nghiên cứu những vấn đề liên quan đến tiền
điện tử, như quá trình thanh toán bằng tiền điện tử; hiện trạng của hệ thống tiền
điện tử trên thế giới và ở Việt Nam…
2. MỤC ĐÍCH CỦA LUẬN VĂN.
Mục đích của luận văn là 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ử.

7


3. ĐỐI TƢỢNG NGHIÊN CỨU.
Đối tượng nghiên cứu là 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ấn đề 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ử, cấu trúc và tính chất của
tiền điện 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ó để giải quyết các bài toán phát sinh trong quá
trình sử dụng tiền điện tử (ẩn danh người sử dụng đồng tiền điện tử, gian lận giá
trị đồng tiền điện tử và tiêu nhiều hơn một lần một đồng tiền điện tử).
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.
8


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).
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 lần lượt 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
9


3/. Các tính chất của quan hệ “đồng dƣ”.
Với mọi số nguyên dương m ta có:
a ≡ a (mod m) với mọi a Z; (tính chất phản xạ)
a ≡ b (mod m) thì b ≡ a (mod m); (tính chất đối xứng)
a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m); (tính chất bắc cầu)
Tổng hay hiệu các đồng dư:
(a+b) (mod n) ≡ [(a mod n) + (b mod n)] (mod n)
(a-b) (mod n) ≡ [(a mod n) - (b mod n)] (mod n)
Tích các đồng dư:
(a*b) (mod n) ≡ [(a mod n) * (b mod n)] (mod n)
4/. Các lớp thặng dƣ.
Quan hệ “đồng dư” theo modulo m trên tập Z (tập các số nguyên) là một
quan hệ tương đương (vì có tính chất phản xạ, đối xứng, bắc cầu), do đó nó tạo
ra trên tập Z một phân hoạch gồm các lớp tương đương: hai số nguyên thuộc
cùng một lớp tương đương khi và chỉ khi chúng có cùng một số dư khi chia cho
m.
Mỗi lớp tương đương đại diện bởi một số trong tập Z
m
= {0, 1,…, m-1} là
số dư khi chia các số trong lớp cho m, ký hiệu một lớp được đại diện bởi số a là
[a]
m

Như vậy, [a]
m
= [b]

m
a ≡ b (mod m)
Vì vậy ta có thể đồng nhất Z
m
với tập các lớp tương đương theo modulo m.
Z
m
= {0, 1, 2,…, m-1} được gọi là tập các “thặng dư đầy đủ” theo modulo m.
Mọi số nguyên bất kỳ đều có thể tìm được trong Z
m
một số đồng dư với mình
theo modulo m.

10


1.1.3. Phần tử nghịch đảo.
1/. Khái niệm.
Cho a Z
n
, nếu tồn tại b Z
n
sao cho a*b 1 (mod n), ta nói b là phần tử
nghịch đảo của a trong Z
n
, 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 Z
n
có phần tử nghịch đảo.
3/. Tính chất.

Cho a, b Z
n
, 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)
Ví dụ:
Xét phần tử a = 4 Z
9
, ta có gcd(4,9) = 1 nên phần tử a là khả
nghịch trong Z
9
. 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 Z
9
vì thỏa mãn:
4 * 7 mod 9 = 1 hay 4 * 7 1 (mod 9)

Phần tử a Z
n

là phần tử khả nghịch trong Z
n
khi và chỉ khi gcd(a,n) = 1




11


1.2. MÃ HÓA DỮ LIỆU.
1.2.1. Khái niệm về mã hóa dữ liệu.
Bảo mật thông tin là một nhu cầu thiết yếu trong quá trình trao đổi thông
tin dưới cả hình thức cổ xưa hay hiện đại (internet) như ngày hôm nay. Việc bảo
mật thông tin thông thường được thực hiện bằng cách mã hóa thông tin, việc mã
hóa thông tin để đảm bảo sao cho chỉ người nào có khóa giải mã thì mới có thể
nhận được đúng thông tin gốc ban đầu.
b )
thông tin “khó” b ).
.

ngược lại: thao tác b b
để có thể nhận được đúng thông tin gốc ban đầu.
óa hay thuật toán
việc .
óa
(theo khóa mã) do đó mã riêng. Khóa mã hóa
(càng khó giải mã đối với những người không có
khóa giải mã mà chỉ dò tìm khóa giải mã).
không gian khóa.

mã hóa thông tin
như để giải mã bản mã.
1.2.2. Phân loại.
Dựa trên tiêu chí đặc trưng đối xứng của khóa để phân loại, ta có 2 loại hệ
mã hóa:
+ Hệ mã hóa khóa bí mật (hay còn gọi là hệ mã hóa khóa đối xứng).
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.
Quá trình mã hóa và giải mã đều sử dụng chung một khóa (nên nó phải
được giữ bí mật ở cả hai phía, vậy nó còn có tính đối xứng).
12


Mô hình mã hóa khóa bí mật (đối xứng) gồm hai quá trình mã hóa và giải
mã, như sau:






Hình 1.1: Mô hình mã hóa khóa bí mật (đối xứng)

Người gửi tạo bản mã từ bản rõ thông qua Private Key, bản mã này được
truyền đi đến người nhận. Tại đây, người nhận sử dụng Private Key để giải mã
bản mã này, thu được bản rõ là thông tin gốc ban đầu.
* Ưu điểm
- Tốc độ mã hoá và giải mã nhanh.
- Đơn giản, tiện dụng khi 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 thêm cho hệ thống cài đặt hệ
mã hóa 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.



Bản


Bản


Bản mã
mã hóa
giải mã
13


+ Hệ mã hóa khóa công khai (hay còn gọi là hệ mã hóa khóa phi đối xứng).
Tại phía người gửi, sử dụng một khóa để mã hóa, được gọi là khoá công
khai (Public Key) tạo ra bản mã và gửi lên đường truyền. Tại phía người nhận,
sử dụng một khoá để giải mã, được gọi là khoá riêng (Private Key) để giải mã
bản mã này, thu được bản rõ là thông tin gốc ban đầu.

Trong hệ mã hóa 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: Hệ mã hóa khóa phi đối xứng
* Ưu điểm
- Kẻ tấn công biết được thuật toán mã hóa và khóa mã hóa (Public Key)
cũng “khó” có thể tính được khóa riêng (Private Key). 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 truyền công khai
trên đường truyền cho tất cả mọi người.
* Nhược điểm
- Tốc độ mã hóa chậm hơn so với mã hóa khóa đối xứng.
* Một số thuật toán mã hóa khóa công khai
- RSA: độ dài khóa 512 đến 1024 bit, được dùng nhiều nhất cho web và
chương trình email.
- ElGamal: độ dài khóa từ 512 đến 1024 bit.

Bản


Bản


Bản mã

mã hóa
giải mã
14


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ể, là dữ liệu cần mã hóa.
C là tập hữu hạn các bản mã có thể, là dữ liệu đã được mã hóa.
K là tập hữu hạn các khóa có thể, gồm khóa mã hóa (k
e
) và khóa giải mã
(k
d
).
E là tập các hàm (thuật toán) mã hóa (E(k
e
, P) = C).
D là tập các hàm (thuật toán) giải mã (D(k
d
, C) = P).
Với khóa lập mã k
e
K, có hàm mã hóa e
ke
E, e
ke
: P C
Với khóa giải mã k
d

K, có hàm giải mã d
kd
D, d
kd
: C P sao cho d
kd
(e
ke
(x)) = x, x P.
Ở đây x được gọi là bản rõ, e
ke
(x) được gọi là bản mã.

Như vậy, có thể tóm lược sơ đồ quá trình mã hóa và giải mã như hình dưới.
Chú ý rằng trong quá trình bản mã được truyền đi trên đường truyền, đây là thời
điểm để tin tặc có thể trộm bản mã:


Người gửi G: x e
ke
(x) Người nhận N:
(dùng khóa lập mã k
e
) (dùng khóa giải mã k
d
)

Tin tặc có thể trộm bản mã e
ke
(x) trên đường truyền


15


* 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 = Z
n
.
Tính bí mật (n) = (p-1).(q-1).
Chọn khóa công khai 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 mod (n):
a*b 1 mod (n).
Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Z
n
, a*b 1 mod (n) .
Với Bản rõ x P và Bản mã y C, định nghĩa:
Hàm Mã hoá: y = e
k
(x) = x
b
mod n
Hàm Giải mã: x = d
k
(y) = y
a
mod n
2/. Ví dụ.

Giả sử bảng các chữ cái viết hoa tiếng Anh từ A đến Z được cho tương ứng
với các số nguyên từ 1 => 26:
A
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
1

2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0

2
1
2
2
2
3
2
4
2
5
2
6

Ta sử dụng hệ mã hóa RSA để mã hóa bản rõ chữ sau:
Bản rõ chữ: HAPPINESS
*Sinh khóa:
Chọn bí mật số nguyên tố p = 5, q = 7, tính n = p * q = 35, công khai n.
Đặt P = C = Z
n
, tính bí mật (n) = (p-1)*(q-1) = 4 * 6 = 24.
+ Chọn khóa công khai b là nguyên tố cùng nhau với (n), tức là ƯCLN(b,
(n)) = 1, ví dụ chọn b = 5.
16


+ 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ừ a*b 1(mod (n)), ta nhận được khóa bí mật a = 5, vì 5*5 1 (mod 24).
* Bản rõ số:
H

A
P
P
I
N
E
S
S
8
1
16
16
9
14
5
19
19
m1
m2
m3
m4
m5
m6
m7
m8
m9
Theo phép lập mã: c
i
= m
i

b
mod n = m
i
5
mod 35, ta nhận được:

* Bản mã số:
c1
c2
c3
c4
c5
c6
c7
c8
c9
8
1
11
11
4
14
10
24
24
Theo phép giải mã: m
i
= c
i


a
mod n = c
i
5
mod 35, ta nhận lại bản rõ.
3/. Độ an toàn.
- Hệ mã hóa RSA là tất định, tức là với mỗi một bản rõ x cần mã hóa và
một khóa bí mật a, thì chỉ có một bản mã y.
- Hệ mã hóa RSA là an toàn khi giữ được bí mật khoá giải mã a, p, q, (n).
Nếu biết được p và q, thì thám mã dễ dàng tính được (n) = (q-1)*(p-1).
Nếu biết được (n), thì thám mã sẽ tính được a theo thuật toán Euclide mở
rộng.
Nhưng phân tích n thành tích của p và q là bài toán “khó”.
Độ an toàn của hệ mật RSA dựa vào khả năng giải bài toán phân tích số
nguyên dương n thành tích của 2 số nguyên tố lớn p và q.
17


1.3. CHỮ KÝ SỐ.
1.3.1. Giới thiệu về chữ ký số.
Chữ ký số thực chất là tập con của chữ ký điện tử. Chữ ký điện tử đề cập
đến các phương pháp để xác định một người nào đó là chủ thực sự của một dữ
liệu điện tử nào đó (ví dụ như các cam kết người dùng được gửi bằng email,
người dùng cung cấp các mã PIN trong các ứng dụng đòi hỏi xác nhận, người
dùng ký trên màn hình cảm ứng với các thiết bị bút điện tử ).
Trong khi đó, chữ ký số cũng là thông tin đi kèm với dữ liệu điện tử nhằm
xác định người chủ của dữ liệu ấy, nhưng nó là mô hình sử dụng các kỹ thuật
mật mã thông qua việc gắn cho mỗi người sử dụng một cặp khóa (bí mật, công
khai), do vậy họ có thể trao đổi các thông tin bí mật và xác thực được mình
chính là chủ của dữ liệu điện tử ấy.

Ký số là phương pháp ký một thông điệp điện tử được lưu dưới dạng “số”,
thông điệp được ký và chữ ký cùng truyền trên mạng tới người nhận.
Như vậy, việc tạo ra chữ ký số (chữ ký điện tử) trên tài liệu số giống như
việc tạo ra bản mã của tài liệu với khóa lập mã. Việc ký số được thực hiện trên
từng bit tài liệu gốc, do đó 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ố có thuộc về một tài liệu số hay không, người ta
giải mã chữ ký số bằng khóa giải mã, và so sánh với tài liệu gốc.
Bên cạnh ý nghĩa để chứng thực nguồn gốc của tài liệu điện tử, có thể thấy
một mặt mạnh của “chữ ký số” hơn “chữ ký tay” là ở chỗ người ta có thể “ký”
vào tài liệu từ rất xa trên mạng công khai, có thể “ký” bằng các thiết bị di động
cầm tay tại bất kỳ vị trí địa lý nào miễn là kết nối được vào mạng Internet. Điều
đó giúp giảm được thời gian, công sức và những chi phí phát sinh
Một yếu tố cần quan tâm khi thực hiện việc ký số đó là độ dài của chữ ký
số. Do việc ký số được thực hiện trên từng bit của tài liệu điện tử, nên độ dài này
ít nhất cũng bằng độ dài của tài liệu gốc, điều này dẫn đến việc làm tăng chi phí
lưu trữ, tăng thời gian truyền tải trên mạng , do đó người ta thường dùng hàm
băm để tạo đại diện cho tài liệu, sau đó việc ký số sẽ được thực hiện trên đại
diện tài liệu này.
18


* 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, ta 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, đặt P = C = Z
n
.
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 là:
a * b 1 (mod (n)).
Tập cặp khóa (bí mật, công khai) K= (a,b)/ a, b Z
n
, 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ý: Ver
k
(x, y) = đúng x y
b
(mod n).
19


1.4. CHỮ KÝ MÙ.
Chữ ký mù được David Chaum (một chuyên gia ngành mật mã học) giới
thiệu vào năm 1983.
Chữ ký mù cũng là một loại chữ ký số, ở đây nội dung của dữ liệu cần ký
đã được làm mù, tức là người ký trên tài liệu khi này không thể đọc được nội
dung của tài liệu. Chữ ký mù được ứng dụng trong các vấn đề cần đến sự ẩn
danh của người dùng.
Cụ thể, ví dụ người ký sẽ được ký trên tài liệu x’ là tài liệu đã được làm mù
từ tài liệu gốc ban đầu x. Sau khi ký xong, x’ được chuyển đến người nhận, tại
đây x’ sẽ được xóa mù, thành tài liệu gốc ban đầu x đã có chữ ký, như vậy người
ký sẽ không biết được nội dung tài liệu gốc x.

Đối với chữ ký mù, nó được ứng dụng trong hệ thống tiền điện tử: thực
hiện quá trình mua bán hàng trên mạng Internet. Trong quá trình này, người mua
thực hiện quá trình rút tiền từ ngân hàng, để đảm bảo tính ẩn danh của đồng tiền
điện tử giống như đồng tiền giấy khi không lưu trữ thông tin về chủ sở hữu của
đồng tiền, người rút tiền sẽ sử dụng kỹ thuật chữ ký mù khi yêu cầu ngân hàng
ký xác nhận trên đồng tiền điện tử mình vừa rút về là hợp lệ.
Giả sử người mua (Alice) muốn mua một quyến sách B giá 100$ từ người
bán hàng trên mạng (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 đồng tiền điện tử C (với những thông tin của đồng tiền điện tử: số
se-ri, giá trị của C, ví dụ là 100$)
Alice yêu cầu ngân hàng ký mù lên đồng tiền điện tử C này.
Giao thức ký thành công, đồng tiền điện tử được chuyển về ví điện tử của
Alice. Ngân hàng sẽ trừ 100$ trong tài khoản của Alice tại ngân hàng.
Tiêu tiền:
Alice đưa cho Bob tiền C đã có chữ ký của ngân hàng, Alice yêu cầu Bob
đưa cho quyển sách B.
Trước khi đồng ý chuyển sách cho Alice, Bob kiểm tra tính hợp lệ của chữ
ký trên đồng tiền điện tử C. Nếu không hợp lệ, Bob sẽ dừng ngay giao dịch.
20


Gửi tiền:
Bob lấy đồng tiền điện tử C từ Alice và gửi cho ngân hàng.
Ngân hàng xác thực chữ ký trên đồng tiền điện tử C:
+ Nếu hợp lệ, ngân hàng tiếp tục kiểm tra xem đồng tiền điện tử 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 giá trị của đồng tiền điện
tử C (100$) 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.
Như vậy, vì đồng tiền điện tử trước đó đã được ngân hàng thực hiện việc ký
mù, nên khi Bob gửi đồng tiền điện tử C đến ngân hàng thì ngân hàng cũng
“khó” có thể biết rằng đồng tiền điện tử C được lấy ra từ tài khoản của Alice.
Như vậy tiền điện tử C không lưu lại dấu vết của người đã tiêu nó.
Nếu không sử dụng chữ ký mù, ngân hàng sẽ dễ dàng kết nối Alice với quá
trình thanh toán của Alice thông qua số se-ri của đồng tiền điện tử C, việc sử
dụng chữ ký mù trên đồng tiền điện tử C đã tránh được điều này, Alice thực hiện
việc này thông qua một tham số làm mù của riêng Alice.
Trên thực tế, hệ thống tiền điện tử ẩn danh này cũng chỉ được thực hiện ẩn
danh theo một chiều, bởi khi người mua ký trên hóa đơn nhận hàng, sẽ hoàn
toàn biết rõ người bán. Do đó, nếu cần Alice sẽ chứng minh được một đồng tiền
điện tử xác định nào đó mà Bob gửi vào ngân hàng là của Alice bằng cách tiết lộ
tham số làm mù cho ngân hàng biết, từ đó sẽ tìm ra được số se-ri của đồng tiền
điện tử này.
21


* 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), chọn 1 < b < (n), nguyên tố cùng nhau với (n).
+ Chọn a là phần tử nghịch đảo của b theo modulo (n), a*b ≡ 1 mod (n).
+ r là số ngẫu nhiên Z
n
(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*r
b
mod n = z, và gửi z cho B
Bƣớc 2: B ký trên z bằng hàm:
Sign(z) = Sign(Blind (x)) = z
a
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. (Ở đây, p=3, q=5, n=15, a=7, b=7).
Nếu theo chữ ký RSA, thì kết quả thông điệp sau khi ký là :
Sign( x=8) = x
a
mod n = 8
7
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 Z
15
(gcd(11, 15) = 1)
Blind (x) = x* r
b
mod n= 8 * 11
7
(mod 15)
= 8 * 19.487.171 (mod 15)

= 155.897.368 mod 15 = 13 = z.
Bước 2: Bob ký trên z.
y = Sign(z) = z
a
mod n = 13
7
(mod 15) = 7. Bob gửi Alice giá trị y=7 này.
Bước 3: Alice xóa mù:
UnBlind(y) = y/r (mod n) =7/11 (mod 15) = 7 * 11
-1
mod 15 = 2
22


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). Có nghĩa rằng, với hai thông điệp khác
nhau, thì giá trị băm của chúng cũng khác nhau.

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ó.
Nghĩa là: với thông điệp x thì “dễ ” tính được z = h(x), nhưng lại “khó” tính
ngược lại được x nếu chỉ biết giá trị băm h(x) (kể cả khi biết hàm băm h).
1.5.2. Tính chất của hàm băm.
1). Hàm băm không va chạm yếu.
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).
2). Hàm băm không va chạm mạnh.
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).
3) Hàm băm một chiều.
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.
23


Chương 2. THANH TOÁN BẰNG TIỀN ĐIỆN TỬ

Những năm đầu 2000 đánh dấu sự bùng nổ của mạng Internet. Trước đó,
năm 1997, Việt Nam đã chính thức gia nhập vào mạng thông tin toàn cầu này.
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ử.
Tuy nhiên, thực tế trên thế giới tiền điện tử đã bắt đầu được sử dụng từ
những năm cuối của thập kỷ 90, khi những ứng dụng giao dịch trực tuyến của nó
đã thâm nhập vào môi trường Internet, dẫu còn ít so với việc sử dụng thẻ tín
dụng điện tử.
Hiện tại ở Việt Nam, đã có các doanh nghiệp nghiên cứu và đưa ra thị
trường các loại thẻ thanh toán đa mục đích để chơi game, sử dụng các ứng dụng
trên Internet hay mua hàng hóa trên website của doanh nghiệp ấy. Về phía ngân
hàng, một vài ngân hàng cũng đã đang bắt đầu đẩy mạnh việc cung ứng các sản
phẩm, các dịch vụ ngân hàng thông qua kênh điện tử như Internet banking,
Mobile banking, dịch vụ thanh toán hóa đơn điện, nước… không dùng tiền mặt
cho người tiêu dùng.
Theo xu thế phát triển chung, số lượng phương tiện thanh toán điện tử sẽ
được đưa vào sử dụng vẫn đang tăng nhanh, có thể kể đến như: hệ thống máy rút
tiền tự động ATM, thiết bị thanh toán dùng thẻ POS (Point of Sale) lắp đặt tại
điểm bán hàng, trung tâm thương mại
Cũng có thể thấy rõ, đối tượng cung ứng các dịch vụ thanh toán đã được
mở rộng. Hiện nay các tổ chức không phải ngân hàng cũng có thể cung cấp một
số dịch vụ thanh toán điện tử, theo những điều kiện được quy định.
24



2.1. CÁC PHƢƠNG THỨC THANH TOÁN TỪ XA QUA MẠNG.
Thanh toán từ xa qua mạng được thực hiện bằng việc truyền đi các thông
điệp điện tử, thể hiện quá trình thanh toán, nó thay thế cho việc sử dụng đồng
tiền giấy thông thường, hay phương thức sử dụng séc.
Quá trình thanh toán từ xa, thông thường được thực hiện giữa người mua
(trả tiền) và người bán (nhận tiền), có thể có các tổ chức thứ 3 ở giữa là tổ chức
tài chính đại diện cho người mua và người bán hay đơn vị chịu trách nhiệm phát
hành, kiểm soát các hình thức của đồng tiền thanh toán.
2.1.1. Thanh toán bằng thẻ điện tử.
Hình thức thanh toán bằng thẻ tín dụng điện tử là hình thức thanh toán
phổ biến trên mạng Internet.
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.
- Ưu điểm:
+ Đơn giản, dễ thực hiện cho cả người mua và người bán.
- Nhược điểm:
+ Không an toàn cho cả người mua và người bán. Đối với người
mua, đó là vấn đề về thông tin thẻ tín dụng của mình dễ bị đánh cắp. Đối với
người bán, đó là vấn đề sự gian lận thẻ tín dụng khi người bán cũng không hoàn
toàn chắc chắn được người mua chính là chủ thẻ thực sự.
+ Chi phí thực hiện giao dịch cao.
+ Không đảm bảo tính ẩn danh cho chủ thẻ. Ngân hàng (tổ chức
phát hành thẻ) hoàn toàn có thể có các thông tin về chi tiêu của chủ thẻ, điều này
xâm phạm vào tính riêng tư của người sử dụng.

×