5. KẾT CẤU CỦA LUẬN VĂN
3.4. HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH
Đối với người mua 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 (người mua hàng) muốn rút tiền thì chỉ cần đăng nhập vào hệ thống, chọn ra đồng tiền cần rút, sau đó số se-ri của đồng tiền sẽ được làm mù, rồi được 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.
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 còn đố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 (Firefox 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
Đăng nhập thành công:
Hình 3.3: Giao diện khi đăng nhập thành công
Tại giao diện này, hiển thị các đồng tiền điện tử mà ngân hàng đang cung cấp, với các tham số b, n tương ứng. Tại giao diện này, có 2 chức năng:
+ Rút tiền: cho phép khách hàng rút đồng tiền điện tử từ ngân hàng về ví tiền điện tử của mình.
+ Nhận tiền: cho phép khách hàng nhận đồng tiền điện tử được gửi đến từ đối tác qua hệ thống (hệ thống sẽ cộng thêm vào tài khoản của người nhận giá trị đồng tiền này).
Rút tiền:
Hình 3.4: Chức năng Rút tiền
Giao diện này hiển thị các đồng tiền điện tử hiện tại khách hàng đang có trong ví tiền điện tử của mình (như minh họa trên hình, gồm thông tin về giá trị đồng tiền và số se-ri tương ứng - hiện tại người dùng chưa có đồng tiền điện tử nào trong ví tiền điện tử của mình).
Tại giao diện này, có 2 chức năng:
+ Cho phép khách hàng chọn ra đồng tiền điện tử muốn rút từ ngân hàng (chọn từ combo box bên phải), lệnh Gửi để chuyển yêu cầu rút
tiền đến ngân hàng.
Minh họa khách hàng chọn đồng tiền 5.000 để rút về ví tiền điện tử của mình như hình dưới:
Nếu tài khoản của người dùng còn tiền và lớn hơn hoặc bằng số tiền mà người dùng muốn rút, hệ thống sẽ thông báo cho rút đồng tiền có giá trị mong muốn. Chọn Gửi yêu cầu để xác nhận rút đồng tiền:
Trong quá trình rút tiền, một hộp thoại sẽ hiển thị thông báo giá trị của n:
Hình 3.7: Thông báo giá trị của n
Sau đó, người dùng nhập vào tham số bí mật, ngẫu nhiên r tương ứng (sao cho ƯCLN của n và r là bằng 1, điều kiện này được kiểm tra và duy trì vòng lặp cho đến khi người dùng nhập r thành công):
Hình 3.8: Ngƣời dùng nhập tham số r
Đồng tiền được làm mù, gửi đến cho ngân hàng ký mù, sau đó ngân hàng gửi lại cho khách hàng và được xóa mù, lệnh Nhận đồng tiền cho phép khách
hàng nhận về đồng tiền điện tử này:
Hình 3.9: Giao diện cho phép khách hàng nhận về đồng tiền
* Bảng minh họa chi tiết các bước thực hiện để nhận về đồng tiền có chữ ký của Ngân hàng và đã được xóa mù theo quá trình trên:
Đồng tiền 5000 Tham số p 3 q 7 Tính n = p*q 21 (n) = (p-1)*(q-1) 12 Tham số b 1 < b < (n) ƯCLN(b, (n)) = 1 5 a a*b 1 (mod (n)) 5 Se-ri đồng tiền cần ký X 1 4 2 9 2 3 9 2 2 Tham số để làm mù r, ƯCLN(n,r) = 1 8 Làm mù x*rb mod n = z 8 11 16 9 16 3 9 16 16 Ký mù za mod n = y 8 2 4 18 4 12 18 4 4
Thông báo khách hàng đã nhận về đồng tiền điện tử với giá trị và số se-ri tương ứng (được lưu vào CSDL - ví tiền điện tử của khách hàng):
Hình 3.10: Thông báo đã nhận về đồng tiền
Lệnh Cập nhật để thấy đồng tiền vừa nhận về đã xuất hiện trong ví tiền điện tử, đồng thời số tiền trong tài khoản bị trừ đi số tiền tương ứng vừa rút.
Minh họa số tiền trong tài khoản đã bị trừ đi (5.000), đồng thời trong ví tiền điện tử của người dùng xuất hiện đồng tiền điện tử (5.000) với số se-ri tương ứng:
+ Thanh toán: cho phép thực hiện chức năng trả tiền:
Hình 3.12: Giao diện Thanh toán
Giao diện này yêu cầu khách hàng cung cấp 2 thông tin:
+ Chọn ra đồng tiền trong ví muốn trả từ combo box bên trái. + Chọn ra ID người dùng trong cùng hệ thống muốn trả từ combo box bên phải.
Như minh họa quá trình trên, người dùng có tài khoản quangpv chọn đồng tiền 5.000 vừa rút từ ngân hàng để trả cho người dùng có tài khoản hadt.
Hệ thống thông báo đã gửi đi đồng tiền với giá trị và se-ri tương ứng cho đối tượng được nhận:
Hình 3.13: Thông báo đã gửi tiền trả
Lệnh Cập nhật để thấy trong ví tiền đã mất đi đồng tiền vừa được gửi:
Nhận tiền: Tại máy client của người được trả tiền, nếu đăng nhập vào hệ
thống thành công, tại giao diện đăng nhập thành công (Hình 3.2), nếu chọn lệnh
Rút tiền sẽ kiểm tra được tài khoản hiện tại của mình (2.850.000):
Khách hàng chọn lệnh Về trang chính và chọn lệnh Nhận tiền để thấy
đồng tiền điện tử được gửi cho mình. Như minh họa quá trình trên, người dùng có tài khoản hadt đăng nhập vào hệ thống và sẽ thấy đồng tiền điện tử với các thông tin như đính kèm được gửi cho mình:
Hình 3.16: Giao diện Nhận tiền
Giao diện này hiển thị 2 thông tin:
+ Các đồng tiền để nhận: hiển thị đồng tiền điện tử đang được gửi và chờ được nhận với các thông tin: giá trị đồng tiền, số se-ri tương ứng và chữ ký của ngân hàng.
+ Chọn ra đồng tiền muốn nhận: khách hàng chọn từ combo box đồng tiền muốn nhận từ người trả.
Lệnh Gửi để kiểm tra sẽ gửi đồng tiền này đến ngân hàng để kiểm tra
tính hợp lệ của đồng tiền (chữ ký đúng của ngân hàng và xem xét xem đồng tiền đã được tiêu xài chưa?)
Như hình minh họa quá trình trên, người dùng có tài khoản hadt sẽ gửi đồng tiền có giá trị 5.000 với các thông tin liên quan đến ngân hàng để kiểm tra tính hợp lệ của đồng tiền này.
Ngân hàng kiểm tra (chữ ký đúng, đồng tiền chưa được tiêu xài trước đó), nếu không có lỗi, sẽ gửi trả thông báo thành công cho khách hàng:
Hình 3.17: Thông báo kiểm tra đồng tiền thành công
Thông báo đã lưu đồng tiền vào CSDL những đồng tiền đã được tiêu xài tại CSDL của ngân hàng:
Hình 3.18: Thông báo đã lƣu đồng tiền vào CSDL đã tiêu xài
Hệ thống gửi thông báo giao dịch thành công và đã cộng thêm giá trị đồng tiền vào tài khoản của người vừa nhận tiền:
Khách hàng chọn Về trang chính, kiểm tra tài khoản của mình đã thực sự được cộng thêm số tiền vừa nhận vào tài khoản (từ 2.850.000 thành 2.855.000):
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 trong toán học được sử dụng trong lý thuyết 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 của tiền điện 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 điện tử. ./ Vấn đề gian lận giá trị đồng tiền điện tử.
./ Vấn đề ngăn chặn tiêu một đồng tiền điện tử 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ả.
TÀI LIỆU THAM KHẢO 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. digicas h.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