Professional Documents
Culture Documents
• First Virtual (1994): Hệ thống lưu trữ giá trị bảo mật đầu
tiên dựa trên cơ sở thẻ tín dụng, các khoản tiền gửi và số
PIN. Ngừng hoạt động vào năm 1998.
Tổng quan
• DigiCash (1996): Hệ thống lưu trữ giá trị trả trường trên
cơ sở mã hóa hoặc yêu cầu sử dụng ví tiền số hóa để lưu
giữ tiền điện tử. Hệ thống ngừng hoạt động năm 1998 và
hoạt động trở lại với tên mới e-Cash.
• Hệ thống thanh toán ngoại tuyến không yêu cầu truy cập
đến máy chủ để ủy quyền giao dịch. Giao dịch được thực
hiện mà không cần chịu sự can thiệp của bên thứ ba.
Ẩn danh vs. Không ẩn danh
• Trong hệ thống không hỗ trợ cơ chế ẩn danh, mỗi giao
dịch cần kiểm tra và xác thực trước khi thực hiện thanh
toán. Hệ thống sử dụng thuật toán mã hóa, chữ ký điện
tử và cho phép ngân hàng có thể truy xuất, phát hiện chi
tiêu kép.
• Người mua gửi E-cash trong tài khoản vào ví điện tử (hệ
thống thanh toán trực tuyến) hoặc chuyển đổi thành
token (hệ thống thanh toán ngoại tuyến) và dùng E-cash
để giao dịch hàng hóa, dịch vụ với cơ sở chấp nhận thẻ.
• Ngân hàng xác thực theo yêu cầu của cơ sở chấp nhận
thẻ. Cơ sở chấp nhận thẻ cung cấp hàng hóa, dịch vụ và
nhận tiền từ ngân hàng.
First Virtual
• Người mua mở tài khoản First Virtual. First Virtual cung
cấp cho người mua một số định danh thay thế cho số thẻ
tín dụng.
• Cơ sở chấp nhận thể gửi thư yêu cầu giao dịch đến máy
chủ First Virtual kèm theo số tiền cần thanh toán. Máy
chủ chuyển tiếp thư đến người mua để xác nhận.
First Virtual
• Người mua lựa chọn YES/NO/FRAUD.
• Người mua tải phần mềm ví điện tử, tạo kết nối với cơ sở
chấp nhận thẻ, CyberCash và ngân hàng. Người mua
nhận khóa RSA với độ dài 768-bit và dùng mật khẩu để
bảo vệ khóa.
CyberCash
• Người mua thực hiện thanh toán bằng cách gửi ví điện tử
qua phần mềm kết nối. Hệ thống kích hoạt CyberCash
của cơ sở chấp nhận thẻ. Cơ sở chấp nhận thẻ gửi người
mua hóa đơn và thông tin giao dịch.
• Người mua ký hóa đơn và chèn thêm tên, số thẻ tín dụng
và thời hạn thẻ. Ví điện tử mã hóa tài liệu đã ký bằng
khóa công khai CyberCash và gửi tài liệu đến CyberCash
cũng như cơ sở chấp nhận thẻ.
CyberCash
• Cơ sở chấp nhận thẻ nhận tài liệu, chèn thêm thông tin
định danh, giá trước khi ký và gửi đến CyberCash.
• CyberCash so sánh giá trên hai tài liệu đã ký. Nếu như
nhau, CyberCash hướng dẫn thủ tục hỗ trợ ngân hàng
thanh toán. Thông tin chi tiết giao dịch được gửi đến cơ
sở chấp nhận thẻ.
• Phần mềm eCash tạo ra cặp khóa trong lần thực thi đầu tiên
trên máy tính. Người mua giữ khóa bí mật, khóa công khai
được cung cấp cho ngân hàng, cơ sở chấp nhận thể và người
mua khác để phục vụ cho việc xác thực.
• Để đúc xu, người mua lựa chọn giá trị ngẫu nhiên x đại diện
cho mệnh giá cần thanh toán. Máy tính lựa chọn một yếu tố
ngẫu nhiên r, thực hiện làm mù b=blind(x, r) và mã hóa
bằng khóa công khai trước khi gửi đến ngân hàng.
eCash
• Ngân hàng giải mã thông điệp, trích số tiền tương ứng từ
tài khoản của người mua. Ngân hàng ký lên b được bằng
khóa cá nhân sb=sign(b,kRB) và gửi lại cho người mua.
Người mua thực hiện gỡ mù trước khi dùng đồng xu.
• Bob ký lên thông điệp bằng khóa cá nhân và gửi lại cho
Alice.
1) Alice chọn một giá trị ngẫu nhiên r, làm mù nội dung
thông điệp: b = (x.re) mod n và gửi cho Bob.
2) Bob ký thông điệp bằng cách thực hiện tính toán sb =
(b)d mod n = (xd.r) mod n
3) Alice xóa mù chữ ký: s = sb.r−1 mod n = xd mod n
Minh họa đúc eCash
• Mỗi đồng xu của Alice đều có số định danh serial#
• Ngân hàng lưu trữ cặp khóa tương ứng với mệnh giá của đồng
xu. Cặp khóa cho đồng xu $5 gồm (e5, n5) và (d5, n5).
• Alice chọn một giá trị ngẫu nhiên r và làm mù nội dung của
đồng xu: (serial# re5) (mod n5).
• Ngân hàng giải mã thông điệp, kiểm tra thông tin và xác
minh thanh toán.
• Ngân hàng gửi tiền vào tài khoản và hóa đơn cho Bob
deposit_ack = {deposit_data_amount} SigBank
Xác minh thanh toán
• Trước khi thanh toán, Alice tạo mã payer_code, băm
payer_code với hàm H và chèn kết quả thu được vào
payment_info.
• Ngân hàng lưu giá trị H{payer_code} trước khi hoàn tất giao
dịch.
• Nếu Bob gian lận, Alice có thể xác minh bằng cách gửi mã
payer_code đến ngân hàng.
Ngăn chặn chi tiêu kép ngoại tuyến
• Giả thiết hệ thống hoạt động ngoại tuyến, làm sao Bob có
thể kiểm tra nếu đồng xu đã bị chi tiêu trước đó?
• Biện pháp 2: Giao thức hỗ trợ xác định đối tượng gian
lận và đảm bảo tính ẩn danh.
Giao thức ngăn chặn chi tiêu kép
• Đảm bảo tính ẩn danh của Alice
• Xác định được danh tính nếu Bob gian lận nhưng vẫn
đảm bảo tính ẩn danh của Alice
• Đảm bảo an toàn cho ngân hàng ngay cả khi Alice và Bob
cấu kết để thực hiện hành vi gian lận
Phương thức chia sẻ bí mật
• Nguyên tắc chung: Chia thông điệp thành n phần, thông
điệp chỉ có thể xác định được nếu sở hữu tối thiểu m phần.
• Giả thiết s là giá trị bí mật trong trường Galois mod p, trong
đó p là số nguyên tố có giá trị đủ lớn.
• Alice chọn một số nonce r (ngăn chặn tấn công phát lại)
• Bob tính toán H(r||M) và kiểm tra kết quả thu được. Nếu
đúng, M chính là giá trị trong lời cam kết ban đầu của Alice
Giao thức Chaum
• Chia danh tính của Alice (một bí mật) thành hai mẩu thông
tin. Danh tính của Alice không bị tiết lộ nếu chỉ có một mẩu
thông tin.
• Chèn thêm một mẩu thông tin vào đồng xu được chi tiêu theo
nguyên tắc Bit Commitment.
• Kiểm tra nếu Alice gian lận bằng phương pháp Cut-and-
Choose.
• Nếu Alice muốn chi tiêu 100 đồng xu, ngân hàng yêu cầu Alice
gửi 200 đồng xu.
• Ngân hàng giữ lại ngẫu nhiên 100 đồng xu và yêu cầu Alice
gửi lại nhân tố làm mù tương ứng.
• Nếu đồng xu bị chi tiêu kép, ngân hàng có thể xác định
Alice gian lận.
• Ngân hàng có thể kiểm tra số seri để xác minh nếu Bob
có hành vi gian lận.
Giao thức Chaum
• u = Số tài khoản của Alice
• (uli, uri) = Bí mật của u được chia thành hai mẩu thông tin, nếu
được kết hợp có thể xác định được u. Ví dụ: (ri XOR u, ri)
• Đồng xu có:
▫ Giá trị
▫ Số định danh
▫ (vl0,vr0), (vl1,vr1), …, (vlm-1,vrm-1)
Giao thức Chaum: Đúc xu
1
2
Alice Bank
3
4
Bob 2 Bank
1. Đồng xu được ký, véctơ B và giá trị uli hoặc uri mà Bob nhận được
từ Alice.
2. Ngân hàng thực hiện xác minh. Trường hợp thất bại, cơ sở chấp
nhận thẻ bị phát hiện gian lận nếu B bị trùng lắp. Ngược lại, Alice
bị phát hiện gian lận nếu ngân hàng có đủ cặp uli và uri (thuộc hai
véctơ B khác nhau) để xác định u.
Giao thức Chaum
• Nếu số ngẫu nhiên của Alice có độ dài b bit. Tìm xác suất
mà Alice có thể thực hiện hành vi chi tiêu kép mà không
bị phát hiện.
Ví dụ minh họa
• Tài khoản của Alice là 12, giá trị 0x0C=00001100.
• Alice chọn giá trị 100 và giá trị làm mù 5.
• Alice thực hiện làm mù thông điệp 100 và gửi đến ngân hàng 100x5 = 500.
• Alice chọn một số b (b=6) và tạo ra b số ngẫu nhiên tương ứng với đồng xu.
• Ví tiền số hóa thực hiện XOR mỗi số ngẫu nhiên và tài khoản của Alice.
• eCash được thay thế bởi các hệ thống thanh toán ngang
hàng (P2P) như PayDirect của Yahoo, MoneyZap và
PayPal.