Nghiên cứu vài 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

  • 74 trang
  • file .pdf
ĐẠ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
Hệ mã hóa khóa công khai được đề xuất bởi Ron
5 RSA
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 Zm với tập các lớp tương đương theo modulo m.
Zm = {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 Zm 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 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)
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
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:
Bản Bản
rõ mã hóa Bản mã giải mã rõ
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.
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.
Bản Bản
rõ mã hóa Bản mã giải mã rõ
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.
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 (ke) và khóa giải mã
(kd).
E là tập các hàm (thuật toán) mã hóa (E(ke, P) = C).
D là tập các hàm (thuật toán) giải mã (D(kd, C) = P).
Với khóa lập mã ke K, có hàm mã hóa 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.
Ở đây x được gọi là bản rõ, eke (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 eke(x) Người nhận N:
(dùng khóa lập mã ke) (dùng khóa giải mã kd)
Tin tặc có thể trộm bản mã eke(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 = Zn.
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 Zn , 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 = ek (x) = x b mod n
Hàm Giải mã: x = dk (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 B C D E F G H I J K L MN O P Q R S T U V WX Y Z
A
1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 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 = Zn , 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ã: ci = mib mod n = mi5 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ã: mi = ci a mod n = ci5 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 = Zn.
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 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).
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.