Cấu trúc chung của chuyển tiền điện tử 7 6-

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 76)

Đến nay tất cả các sơ đồ tiền điện tử đều có ba kiểu giao dịch cơ bản: rút tiền (withdrawal), thanh toán (payment) và gửi tiền (deposit). Đây là những giao dịch quan trọng nhất, quyết định sự thành công của thương mại điện tử.

Giao dịch rút tiền được thực hiện khi khách hàng muốn lấy ra một số tiền đã có trong tài khoản của họ ở Ngân hàng. Giao dịch này thực hiện thành công thì hệ thống phải chuyển cho khách hàng một lượng tiền điện tử mà họ yêu cầu, tất nhiên số tiền này không vượt quá số tiền mà họ có trong tài khoản ở Ngân hàng.

Giao dịch thanh toán được thực hiện khi khách hàng muốn chi tiêu các đồng tiền điện tử. Các đồng tiền điện tử được chuyển cho chủ hàng. Giao dịch này bao gồm cả sự chuyển giao ngược lại các hàng hoá và các dịch vụ của chủ hàng cho khách hàng.

Giao dịch gửi tiền được thực hiện khi chủ hàng hoặc khách hàng muốn chuyển một số tiền điện tử vào tài khoản của họ trong Ngân hàng. Giao dịch này liên quan đến các hoạt động giao dịch với Ngân hàng và quyền lực của Ngân hàng.

3.1.4. Các đặc trƣng quan trọng của tiền điện tử

Các dịch vụ của tiền điện tử phải đảm bảo: bí mật, an toàn, dễ chuyển nhượng, có thể chia nhỏ và độc lập với phần cứng.

Bí mật: Tính bí mật cá nhân của người sử dụng phải được bảo đảm. Mối quan hệ

giữa người sử dụng tiền điện tử và sự mua sắm của họ là không ghi nhận được và cũng không biết được danh tính của chủ sở hữu các đồng tiền điện tử.

An toàn: Mục đích chính của việc đảm bảo an toàn trong giao dịch điện tử là

ngăn chặn các trò gian lận, lừa đảo của cả các đối tác bên trong hệ thống lẫn cả những kẻ đối địch bên ngoài. Trong hệ thống tiền điện tử, mọi dịch vụ phải thường xuyên đảm bảo an toàn và bí mật. Tất cả các bên tham gia phải đảm bảo các giao dịch là hợp lệ.

Dịch vụ chuyển nhượng: Cho phép chuyển nhượng các đồng tiền từ người này

sang cho người khác. Hệ thống cho phép dịch vụ chuyển nhượng, có thể sử dụng những đồng tiền liên tiếp qua nhiều người và chúng không cần phải gửi vào Ngân hàng. Nghĩa là, những đồng tiền được lưu hành liên tục và không cần phải quay lại nơi phát hành, gần giống như sự lưu thông của tiền mặt.

Dịch vụ chia nhỏ: Hệ thống cho phép chia một đồng tiền thành các đồng tiền

(đơn vị) nhỏ hơn. Mỗi đồng tiền được chia nhỏ có giá trị nhỏ hơn tuỳ theo yêu cầu sử dụng và khi cộng chúng lại sẽ cho giá trị bằng giá trị ban đầu.

Độc lập với phần cứng: Hệ thống tiền điện tử không yêu cầu bất kỳ điều kiện

nào về phần cứng để duy trì dịch vụ an toàn. Sơ đồ độc lập với phần cứng dựa vào Ngân hàng Khách hàng Chủ hàng Rút tiền Gửi tiền Thanh toán

các phương pháp mã hoá, chủ yếu là hệ mã RSA để đảm bảo an toàn, bí mật cho các sơ đồ thanh toán. Một trong các ưu điểm của hệ thống độc lập với phần cứng là chúng dễ dàng sử dụng cho các giao dịch kinh doanh trên Internet.

Được chấp nhận, được thừa nhận: Cho phép hệ thống thanh toán ẩn danh với

nhiều ngân hàng chấp nhận những đồng tiền được tạo ra bởi những ngân hàng khác. Hệ thống đảm bảo để một khách hàng có thể rút tiền từ Ngân hàng và chuyển những đồng tiền đó cho chủ hàng. Cuối mỗi ngày, chẳng hạn, chủ hàng lại có thể gửi (nạp) những đồng tiền mà khách hàng trả vào một ngân hàng bất kỳ, không nhất thiết phải gửi vào ngân hàng mà chúng được rút ra. Nếu không có khả năng này thì hệ thống chỉ cho phép giao dịch giữa các đối tác cùng chia sẻ một Ngân hàng chung.

Nhận xét: hai đặc tính cuối là tuỳ chọn, hiện nay có một số hệ thống thanh toán tiền điện tử chưa đáp ứng được hai dịch vụ này.

3.1.5. Thanh toán off-line và on-line

Có thể cài đặt giao thức thanh toán tiền điện tử theo hai cách: On-line hoặc Off- line. Một hệ thống tiền điện tử lý tưởng phải là hệ thống Off-line. Trong luận văn này tôi chỉ đề cập đến các hệ thống thanh toán Off-line.

3.1.5.1. Off-line

Thanh toán Off-line có nghĩa là chủ hàng giữ những đồng tiền do khách hàng trả và có thể gửi vào ngân hàng vào một thời điển nào đó sau khi thực hiện xong giao dịch. Có nghĩa là khách hàng có thể giao dịch với chủ hàng vào bất kỳ thời gian nào trong ngày mà không cần có sự tham gia của bên thứ ba là ngân hàng. Mặc dù hệ thống Off-line thích hợp với thực tế hơn, tuy nhiên dễ xảy ra trường hợp sử dụng lại nhiều lần cùng một đồng tiền. Do đó chỉ thích hợp cho các giao dịch có giá trị thấp.

Trong những năm qua, đã có một số hệ thống Off-line được thiết kế. Chúng không chỉ đảm bảo tính an toàn cho ngân hàng và chủ hàng mà còn đảm bảo tính bí mật cá nhân cho khách hàng. Bảng 1 thể hiện một số hệ thống như vậy.

Bảng 3.1. Một số hệ thống tiền điện tử Off-line

3.1.5.2. On-line

Thanh toán On-line có nghĩa là chủ hàng liên hệ với ngân hàng để kiểm tra tính hợp lệ của thẻ của khách hàng trước khi thanh toán và giao hàng. Việc kiểm tra tính hợp lệ được thực hiện bằng một câu hỏi đơn giản như “Bạn đã nhìn thấy đồng tiền này chưa?”, tương tự như giao dịch bằng thẻ tín dụng ngày nay.

Thanh toán On-line vẫn cần thiết cho những giao dịch cần độ an toàn cao. Ví dụ những giao dịch có giá trị lớn. Với một hệ thống on-line, bước thanh toán và gửi tiền luôn đi liền với nhau. Đồng thời trong suốt quá trình thanh toán luôn phải trao đổi với ngân hàng. Do đó chi phí nhiều hơn về tiền và thời gian so với hệ thống Off- line (chi phí để giao dịch với ngân hàng, chi phí để duy trì dữ liệu và thời gian quay vòng), tuy nhiên các giao dịch cũng chỉ là sự đơn giản hoá của các giao dịch Off- line. (adsbygoogle = window.adsbygoogle || []).push({});

Vì hệ thống on-line phải có khả năng kiểm tra sự tin cậy đối với khách hàng, vì vậy hầu như không có khả năng bảo vệ đặc tính ẩn danh của khách hàng. Ngoài ra hệ thống này còn yêu cầu trao đổi với bên thứ ba trong suốt quá trình thanh toán, cũng không có khả năng chuyển nhượng đồng tiền.

3.2. MỘT SỐ THUẬT TOÁN TRONG HỆ THỐNG TIỀN ĐIỆN TỬ 3.2.1. Chữ ký mù 3.2.1. Chữ ký mù

Mục đích chính của chữ ký mù là cho phép một thực thể (ngân hàng, khách hàng) có thể ký vào một tài liệu (đồng tiền) mà không cần biết cụ thể về tài liệu bản (đồng tiền) đó. Trường hợp mà chúng ta hay gặp như người có trách nhiệm ký vào những phong bì trong đó đã có các bức thư, bản tin. Hay khi khách hàng muốn Ngân hàng ký vào một số đồng tiền điện tử theo một seri x nào đó, nhưng không

muốn cho Ngân hàng biết những đồng tiền nào đã được ký. Thủ tục như trên được gọi là giao thức chữ ký mù (blind signature protocol).

Chúng ta có thể sử dụng hệ RSA như đã nêu trên để thực hiện chữ ký mù như sau:

1. Khách hàng chọn một hệ số mù (blinding factor) r một cách ngẫu nhiên, độc lập với x, và tính x*r^e mod n, rồi gửi kết quả cho Ngân hàng.

2. Ngân hàng ký vào các đồng tiền nhận được từ khách hàng bằng khoá riêng d:

(x*r^e)^d = (x^d)*(r^(e*d)) = r*x^d mod n.

Lưu ý: từ những kết quả ở phần trước, ta có r^(ed) = r. Ngân hàng ký vào các

đồng tiền nhận được bằng cách tính luỹ thừa của chúng với số mũ là khoá d, rồi lấy số dư của chúng theo modn. Sau đó gửi những đồng tiền đã ký cho khách hàng. 3. Khách hàng chia cho hệ số mù r: (r*x^d)/r= x^d mod n và giữ lại các đồng tiền điện tử được ký mù để sử dụng về sau.

Bởi vì r là ngẫu nhiên, nên Ngân hàng không thể xác định được x từ nhữngđồng tiền mà khách hàng gửi tới và do vậy cũng không thể biết được những đồng tiền được ký là của ai. Như vậy, những đồng tiền được ký mù là không theo dõi được.

Khi xuất hiện những đồng tiền này, Ngân hàng chỉ có thể kiểm tra được giá trị hợp lệ của các đồng tiền đã được sử dụng, mà không biết được chúng là của ai.

Chữ ký mù được David Chaum đưa ra vào năm 1982.

3.2.2. Lƣợc đồ chữ ký Schnorr

Lược đồ chữ ký Schnorr dựa trên độ khó của bài toán logarit rời rạc [16]. Khóa bí mật là a, 0≤a≤q-1, p và q là các số nguyền tố sao cho q|(p-1) (q là thừa số nguyên tố của p-1), phần tử g được chọn trước (1≤g≤p-1). Khóa công khai là: y=ga mod p.

Giao thức ký:

Giả sử ta muốn ký lên thông báo M.

1. khách hàng chọn số ngẫu nhiên w, 1≤w≤q-1 và tính: x=aw mod p

2. Khách hàng tính hàm băm lên thông báo M và x được kết quả: e=H(M,x)

H() là hàm băm một phía

3. Khách hàng tiếp tục tính: v=(r+ae) mod q Sau đó gửi chữ ký (y, e) cho chủ hàng. 4. Chủ hàng tính: x‟=av ye mod p

Sau đó kiểm tra tính hợp lệ của chữ ký bằng cách tính hàm băm đối với M và x‟. Nếu hàm băm đó bằng e thì chữ ký là hợp lệ: e=H(M, x‟)

Chứng minh chữ ký là hợp lệ:

Nếu chữ ký do khách hàng tạo ra thì:

x‟  av ye  av a-ae arx và H(M, x‟) = e = H(M, x)

3.2.3. Chia cắt và lựa chọn (Cut and Choose)

Phương pháp chia cắt và lựa chọn được Rabin đưa ra vào năm 1978. Phương pháp này được sử dụng rất phổ biến trong các hệ thống tiền điện tử trước đây và hiện nay vẫn đang được sử dụng rộng rãi trong thương mại điện tử.

Sau đây chúng ta mô tả tóm tắt cách thực hiện phương pháp chia cắt và lựa chọn được Chaum, Fiat và Naor [16] sử dụng trong sơ đồ tiền điện tử đầu tiên của mình để phát hiện chi tiêu đúp:

Rút tiền (Withdrawal)

1. Khách hàng chuẩn bị k đồng tiền. Mỗi đồng tiền có một giá trị nhất định và có một xâu (số seri) tương ứng với nó. Như vậy, mỗi khách hàng được xác định bởi một dãy các cặp (giá trị đồng tiền, số seri). (adsbygoogle = window.adsbygoogle || []).push({});

2. Ngân hàng chọn ngẫu nhiên một tập con k/2 đồng tiền (lấy phần nguyên).

3. Ngân hàng kiểm tra k/2 đồng tiền chứa chính xác giá trị bao nhiêu và các seri tương ứng.

4. Ngân hàng ký vào những đồng tiền không mở ra (không biết cụ thể) và giao cho khách hàng.

chúng. Số tiền còn lại thì khách hàng có thể chi tiêu.

Khách hàng không biết Ngân hàng sẽ chọn k/2 những đồng tiền nào trong số k đồng tiền.

Thanh toán (Payment)

1. Khách hàng gửi số tiền phải trả cho chủ hàng.

2. Chủ hàng kiểm tra tính hợp lệ của những đồng tiền đó bằng cách kiểm tra chữ ký của Ngân hàng.

3. Chủ hàng yêu cầu khách hàng cho biết 1 trong cặp xâu định danh của mỗi đồng tiền. Một xâu nhị phân ngẫu nhiên r = r1r2…rn được sử dụng để xác định xâu định danh.

 Với mỗi ri = 1, khách hàng cho biết xâu định danh bên trái (giá trị) tương ứng của đồng tiền.

 Với ri = 0 khách hàng cho biết xâu định danh bên phải (số seri) tương ứng của đồng tiền.

4. Chủ hàng kiểm tra tính hợp lệ của đồng tiền dựa vào việc phát hiện xem các xâu định danh có chính xác hay không.

Gửi tiền (Deposit)

1. Chủ hàng gửi tiền bán hàng vào Ngân hàng bao gồm cả các đồng tiền và một nửa của xâu định danh được phát hiện trong giao dịch.

2. Ngân hàng kiểm tra xem trong cơ sở dữ liệu có những đồng tiền nào trùng với xâu định danh của những đồng tiền gửi vào hay không.

3. Nếu có một đồng tiền có xâu định danh trùng, nghĩa là đã có sự tiêu đúp. Ngân hàng sẽ phải kiểm tra các xâu định danh của những đồng tiền mà khách hàng đã rút ra từ dịch vụ rút tiền trước đó.

 Nếu xâu định danh trùng với định danh mà Ngân hàng biết thì chủ hàng chi tiêu đúp.

 Nếu xâu định danh khác với những xâu định danh ở Ngân hàng thì khách hàng tiêu đúp.

 Ngân hàng chọn một cặp định danh, trong đó phần bên trái là lấy từ một chủ hàng còn nửa bên phải là của chủ hàng khác. Ngân hàng thực hiện phép hoặc loại trừ XOR giữa hai nửa của cặp định danh vừa được chọn ra để phát hiện danh tính của khách hàng. Nếu cả hai chủ hàng sử dụng cùng một xâu ngẫu nhiên thì danh tính của khách hàng sẽ không phát hiện được. 4. Nếu các xâu định danh trên là duy nhất thì Ngân hàng nhận và tăng giá trị tiền

trong tài khoản của người gửi bằng số tiền mà họ đã gửi.

Rất tiếc, phương pháp này không thể chứng minh bằng lý thuyết rằng người sử dụng sẽ không thể phá vỡ mức độ an toàn của hệ thống.

3.2.4. Chia sẻ bí mật

Giả sử có một thông báo bí mật muốn chia cho một số người nào đó. Và chỉ khi có m phần của thông báo thì mới xây dựng lại được thông báo ban đầu. Cấp độ đơn giản nhất là chia thông báo thành n phần sao cho bất kỳ m phần nào của thông báo đều xây dựng lại được thông báo gốc. Đây là lược đồ ngưỡng (m, n). Có một số thuật toán khác [16] dùng để chia sẻ bí mật sẽ đuợc đề cập đến trong các hệ thống tiền điện tử trong phần tiếp theo.

3.2.5. Giao thức truyền bit

Giao thức này nhằm ngăn chặn con người thay đổi câu trả lời. Ví dụ A muốn chứng minh rằng A biết đảng nào sẽ thắng trong lần bầu cử sắp tới. A phải viết câu trả lời vào một file, mã hóa file rồi gửi cho B. Khi cuộc bầu cử đã xong, A đưa khóa mã hóa cho B và B mã hóa file. Khi đó B sẽ biết liệu A có nói dối hay không.

Vấn đề là A có thể lừa B bằng cách tạo ra hai khóa khác nhau k1 và k2 sao cho mỗi khóa này cho kết quả mã hóa khác nhau. Sau đó tùy thuộc vào kết quả bầu cử A sẽ chọn ra khóa k1 hay k2 để đưa cho B và chứng minh rằng A biết trước kết quả bầu cử.

Giao thức truyền bít được thiết kế để ngăn chặn tình huống lừa đảo nói trên. Có ba kiểu giao thức thức truyền bit khác nhau:

1. Truyền bit sử dụng hệ mật mã đối xứng:

(1) Chủ hàng tạo ra chuỗi bít ngẫu nhiên R và gửi cho khách hàng

(2) Khách hàng gửi thông báo đã được mã hóa trở lại cho chủ hàng: Ek(R, b) (3) Khách hàng gửi cho chủ hàng khóa K tại thời điểm muốn để lộ thông báo. (4) Chủ hàng mã hóa thông báo và kiểm tra tính hợp lệ của từng bit trong chuỗi nhị phân do chính anh ta tạo ra. (adsbygoogle = window.adsbygoogle || []).push({});

2. Truyền bít sử dụng hàm một phía:

(1) Khách hàng tạo ra hai dãy bít ngẫu nhiên R1 và R2

(2) Khách hàng tạo ra một thông báo chứa R1, R2 và dãy bít anh ta muốn truyền đi: (R1, R2, b).

(3) Khách hàng tính hàm một phía cho thông báo, gửi kết quả cùng với một trong hai chuỗi bit ngẫu nhiên cho chủ hàng: H(R1, R2, b), R1

(4) Khách hàng gửi cho chủ hàng thông báo gốc và chuỗi bit ngẫu nhiên: (R1, R2, b)

(5) Chủ hàng tính hàm một phía cho thông báo, so sánh kết quả và R1, R2 với giá trị nhận được trong bước (3). Nếu đối sánh thành công thì chuỗi bit là hợp lệ.

3. Truyền bit dùng dãy các phần tử sinh giả ngẫu nhiên:

(1) Chủ hàng tạo ra chuỗi bít ngẫu nhiên và gửi cho khách hàng

(2) Khách hàng tạo ra phần tử sinh bit giả ngẫu nhiên. Với mỗi bit trong chuỗi nhị phân của chủ hàng, khách hàng gửi lại một trong hai kết quả sau:

a- Đầu ra của phần tử sinh nếu bit đó bằng 0.

b- Kết quả XOR đầu ra của phần tử sinh với bit đó nếu giá trị bit bằng 1.

Một phần của tài liệu Hệ mật mã khóa công khai ứng dụng bảo mật thông tin trong thương mại điện tử (Trang 76)