Hình 1.5 Mô hình giao dịch của hệ thống tiền điện tử cùng ngân hàng Hình 1.6 Mô hình giao dịch của hệ thống tiền điện tử liên ngân hàng Hình 2.1 Quá trình tạo chữ ký Hình 2.2 Quá trình t
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung bản luận văn “Nghiên cứu một số chữ ký đặc biệt và Ứng dụng” là do tôi tự làm trên cơ sở tìm hiểu giáo trình, tài liệu tham khảo và theo hướng dẫn của PGS TS Trịnh Nhật Tiến Các nguồn lấy từ giáo trình, tài liệu tham khảo đều được chú thích rõ ràng, đúng quy định
Nếu sai tôi xin hoàn toàn chịu trách nhiệm
Thái Nguyên, tháng 7 năm 2014
Người cam đoan
Trần Thị Hồng Dung
Trang 2LỜI CẢM ƠN
Lời đầu tiên, tôi xin được gửi lời cảm ơn chân thành và sâu sắc tới PGS.TS Trịnh Nhật Tiến, người thầy đã cho tôi những định hướng và tận tình chỉ bảo giúp tôi trong quá trình hoàn thành luận văn và tôi xin bày tỏ lòng biết ơn sâu sắc đến các thầy trong Viện Công Nghệ Thông tin, cùng các thầy cô trong trường Công Nghệ Thông Tin & Truyền thông Thái Nguyên đã giảng dạy, truyền đạt cho tôi những kiến thức quý báu trong khóa học
Tôi xin chân thành cảm ơn Lãnh đạo trường Đại học Tân Trào đã tạo điều kiện thuận lợi, giúp đỡ tôi trong quá trình học tập, cảm ơn sự giúp đỡ của gia đình, bạn bè và các đồng nghiệp luôn động viên tôi vượt qua khó khăn
Trong quá trình học tập, tìm hiểu và nghiên cứu cùng với thời gian làm luận văn, tôi đã cố gắng tập trung tìm hiểu và tham khảo các tài liệu liên quan Tuy nhiên, do thời gian nghiên cứu cũng như năng lực có hạn nên khó tránh khỏi nhưng sai sót cần bổ sung, rất mong nhận được sự đóng góp ý kiến của các thầy, cô giáo
Thái Nguyên, tháng 07 năm 2014
Học viên
Trần Thị Hồng Dung
Trang 3MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II DANH MỤC CÁC TỪ VIẾT TẮT VI DANH MỤC BẢNG VII DANH MỤC HÌNH ẢNH VIII DANH MỤC BIỂU ĐỒ IX
MỞ ĐẦU 1
CHƯƠNG 1 CÁC KHÁI NIỆM CƠ BẢN 3
1.1 TỔNG QUAN VỀ MẬT MÃ 3
1.1.1 Vấn đề Mã hóa 3
1.1.2 Hàm băm 4
1.2 CƠ SỞ TOÁN HỌC 5
1.2.1 Khái niệm 5
1.2.2 Quan hệ đồng dư 7
1.2.3 Số nguyên tố 9
1.2.4 Phần tử nghịch đảo đối với phép nhân 11
1.2.5 Một số Nhóm đặc biệt: 11
1.2.6 Các khái niệm về đường cong Elliptic 12
1.3 TỔNG QUAN VỀ THANH TOÁN ĐIỆN TỬ 16
1.3.1 Khái niệm thanh toán điện tử 16
1.3.2 Mô hình thanh toán điện tử 16
1.3.3 Hình thức thanh toán trong thanh toán điện tử 16
1.3.4 Các phương tiện thanh toán điện tử 16
1.3.5 Giao thức SET bảo mật trong thanh toán điện tử 18
1.3.6 Tiền điện tử 19
1.3.7 Một số lược đồ trong Hệ thống tiền điện tử 24
1.4 KẾT LUẬN CHƯƠNG I 29
CHƯƠNG 2 MỘT SỐ CHỮ KÝ ĐẶC BIỆT 30
2.1 GIỚI THIỆU CHỮ KÝ SỐ 30
2.1.1 Khái niệm về chữ ký số 30
Trang 42.1.2 Sơ đồ chữ ký số 30
2.1.3 Phân loại “Chữ ký số” 31
2.1.4 Hoạt động của chữ ký số 32
2.2 CHỮ KÝ “MÙ RSA” 35
2.2.1 Khái niệm Chữ ký “mù” (Blind Signature) 35
2.1.2 Lưu đồ thuật toán chữ ký mù RSA 37
2.1.3 Ứng dụng Chữ ký “mù” 38
2.3 CHỮ KÝ “MÙ NHÓM” 39
2.3.1 Sơ đồ chữ ký “mù nhóm” CS97 40
2.3.2 Ứng dụng Chữ ký “mù nhóm” 41
2.4 CHỮ KÝ “MÙ BỘI” (BLIND MULTI SIGNATURE) 43
2.4.1 Sơ đồ chữ ký bội trên ECC 43
2.4.2 Ứng dụng Chữ ký “mù bội” 44
2.5 CHỮ KÝ KHÔNG THỂ PHỦ ĐỊNH 46
2.5.1 Giới thiệu chữ ký không thể phủ định 46
2.5.2 Sơ đồ chữ ký không thể phủ định (Chaum – van Antverpen) 47
2.5.3 Ứng dụng chữ ký “ không thể phủ nhận” 50
2.6 KẾT LUẬN CHƯƠNG II 50
CHƯƠNG 3 THỬ NGHIỆM CHƯƠNG TRÌNH 51
3.1 BÀI TOÁN THỬ NGHIỆM CHƯƠNG TRÌNH 51
3.1.1 Bài toán thử nghiệm chương trình Ẩn danh đồng tiền điện tử 51
3.1.2 Mô hình thuật toán chữ ký mù RSA 52
3.2 CẤU HÌNH HỆ THỐNG 53
3.2.1 Yêu cầu phần cứng 53
3.2.2 Yêu cầu phần mềm 53
3.3 YÊU CẦU HỆ THỐNG 53
3.3.1 Yêu cầu chức năng 53
3.3.2 Yêu cầu giao diện 53
3.4 PHÂN TÍCH CHỨC NĂNG 53
Trang 53.4.1 Người gửi thông điệp 53
3.4.2 Người ký thông điệp 53
3.5 THIẾT KẾ HỆ THỐNG 53
3.5.1 Xác định các tác nhân và ca sử dụng 53
3.5.2 Biểu đồ người dùng 54
3.5.3 Biểu đồ trình tự 54
3.6 HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH 56
3.7 KẾT LUẬN CHƯƠNG III 61
KẾT LUẬN - KIẾN NGHỊ 62
TÀI LIỆU THAM KHẢO 63
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
UCLN, gcd Ước số chung lớn nhất (Greatest Common Divisor)
EC Elliptic Curve
Blind(x) Thuật toán làm mù
UnBlind(x) Thuật toán xóa mù
Trang 7DANH MỤC BẢNG
Bảng1.1 Tìm phần tử nghịch đảo của 3 trong Z7
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1 Ví dụ đường cong Elliptic
Hình 1.2 Phép cộng
Hình 1.3 Cộng hai điểm trùng nhau
Hình 1.4 Phép “nhân” một điểm với một số nguyên
Hình 1.5 Mô hình giao dịch của hệ thống tiền điện tử cùng ngân hàng Hình 1.6 Mô hình giao dịch của hệ thống tiền điện tử liên ngân hàng Hình 2.1 Quá trình tạo chữ ký
Hình 2.2 Quá trình tạo chữ ký
Hình 2.3 Lưu đồ thuật toán chữ ký mù RSA
Hình 3.1 Mô hình thuật toán chữ ký mù RSA
Hình 3.2 Giao diện Demo chương trình chữ ký mù
Trang 9DANH MỤC BIỂU ĐỒ
Biểu đồ 3.1 Biểu đồ Người gửi thông điệp
Biểu đồ 3.2 Biểu đồ Người ký thông điệp
Biểu đồ 3.3 Tạo và làm mù thông điệp dành cho Người gửi thông điệp Biểu đồ 3.4 Khử mù thông điệp dành cho Người gửi thông điệp
Biểu đồ 3.5 Ký mù thông điệp dành cho Người ký thông điệp
Biểu đồ 3.6 Xác thực/ Giải mã thông điệp dành cho Người ký thông điệp
Trang 10Vấn đề vô cùng quan trọng được đặt ra là sự bảo mật và an toàn trong việc trao đổi thông tin Các thông tin truyền đi phải đảm bảo tính chính xác, không bị sửa đổi và trong rất nhiều trường hợp cần được bảo đảm tính bí mật thông tin và cần xác thực đúng người gửi và người nhận Xuất phát từ thực tế này có nhiều biện pháp về an toàn thông tin ra đời
Một giải pháp hữu hiệu cho cho việc đảm bảo tính bí mật của thông tin là mã hóa thông tin với mục đích “che giấu” nội dung thông tin, chỉ những đối tượng có thẩm quyền mới có thể giải mã thông tin đã mã hóa để lấy lại thông tin ban đầu
Để xác thực thông tin, gắn trách nhiệm của một thực thể nào đó với một thông tin, cũng như đảm bảo tính toàn vẹn, thông tin truyền đi không bị sửa đổi ngoài ý muốn, con người đã sáng tạo ra chữ ký số để thực hiện được các yêu cầu trong lĩnh vực An toàn bảo mật thông tin
Xuất phát từ thực tế nêu trên, luận văn ghiên cứu các phương pháp an toàn thông tin nói chung, chữ ký số nói riêng để bảo vệ thông tin số là thiết thực và có ý nghĩa to lớn
2 Đối tượng phạm vi nghiên cứu
- Đối tượng nghiên cứu
Tìm hiểu một số chữ ký như chữ ký mù RSA, chữ ký mù nhóm, chữ ký mù bội và chữ ký không thể phủ định
- Phạm vi nghiên cứu
Tìm hiểu chữ ký số trong lĩnh vực thanh toán điện tử
Trang 113 Những nội dung nghiên cứu chính
Nội dung chính của Luận văn gồm có:
Chương 1: Các khái niệm cơ bản
Trong chương này sẽ trình bày cơ sở toán học, tổng quan về mã hóa, tổng quan về thanh toán điện tử trong thương mại điện tử, tiền điện tử và một số lược đồ dùng trong hệ thống tiền điện tử
Chương 2: Một số chữ ký đặc biệt
Trong chương này trình bày chi tiết về thuật toán, sơ đồ chữ ký mù RSA, chữ ký mù nhóm, chữ ký mù bội, chữ ký không thể phủ định và ứng dụng của các chữ ký số trên
Chương 3: Thử nghiệm chương trình
Tác giả đi vào phân tích bài toán ẩn danh đồng tiền điện tử và xây dựng chương trình Demo chữ ký mù cài đặt thuật toán để minh chứng cho kết quả của thuật toán giải quyết vấn đề ẩn danh trong thực tế
Trang 12Chương 1 CÁC KHÁI NIỆM CƠ BẢN 1.1 TỔNG QUAN VỀ MẬT MÃ
1.1.1 Vấn đề Mã hóa
1.1.1.1 Khái niệm mã hóa
Để đảm bảo An toàn thông tin (ATTT) lưu trữ trong máy tính (giữ gìn thông tin cố định) hay đảm bảo An toàn thông tin trên đường truyền tin (trên mạng máy tính), người ta phải “Che giấu” các thông tin này
“ Che ” thông tin (dữ liệu) hay “ Mã hóa” thông tin là thay đổi hình dạng thông tin gốc, và người khác khó nhận ra
Hệ mã hóa được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
Với khóa lập mã keK có hàm lập mã ekeE eke P, : C
Với khóa giải mã kdK có hàm giải mã dkdE dkd P, : C 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ã.[6]
Mã hoá nhằm đảm bảo các tính chất sau của thông tin:
Tính bí mật (Confidentiality): thông tin chỉ được tiết lộ cho những ai được phép Tính toàn vẹn (Integrity): thông tin không thể bị thay đổi mà không bị phát hiện Tính xác thực (Authentication): người gửi (hoặc người nhận) có thể chứng
minh đúng họ
Tính không chối bỏ (Non-repudiation): người gửi hoặc nhận sau này không
thể chối bỏ việc đã gửi hoặc nhận thông tin [5]
Trang 131.1.1.2 Phân loại hệ mã hóa
1/ Hệ mã hóa khóa đối xứng
Mã hóa khóa đối xứng là Hệ mã hóa mà biết được khóa lập mã thì có thể
“dễ” tính được khóa giải mã và ngược lại Đặc biệt một số Hệ mã hóa có khóa lập
mã (ke) và khóa giải mã trùng nhau (kd), như Hệ mã hóa “dịch chuyển” hay DES
2/ Hệ mã hóa khóa công khai
- Hệ mã hóa khóa công khai hay Hệ mã hóa phi đối xứng do Diffie và Hellman phát minh vào những năm 1970
- Hệ mã hóa khóa phi đối xứng là Hệ mã hóa có khóa lập mã và khóa giải mã
khác nhau (ke kd), biết được khóa này cũng “khó” tính được khóa kia
- Khóa lập mã cho công khai, gọi là khóa công khai (Public key)
- Khóa giải mã giữ bí mật, còn gọi là khóa riêng (Private key) hay khóa bí mật
Sơ đồ: ( Pivest, Shamir, Adleman đề xuất năm 1977)
- Tạo cặp khóa bí mật và khóa 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 (p1) * (q1) Chọn khóa công khai b ( )n , nguyên tố cùng nhau ( )n
- Khóa bí mật a là phần tử nghịch đảo của b theo( ) : *n a b1(mod( ))n
- Tập cặp khóa ( bí mật, công khai)
K a b a bZ n a b n Với bản rõ xP và bản mã yC , định nghĩa:
- Hàm mã hóa:ye x k( ) x bmodn
- Hàm giải mã: xd k( )y y amodn [6]
1.1.2 Hàm băm
Hàm băm là thuật toán không dùng khóa để mã hóa ( Ở đây dùng thuật ngữ
“băm” thay cho “ mã hóa”, nó có nhiệm “ lọc” ( băm ) tài liệu ( bản tin) và cho kết quả là một giá trị băm có kích thước cố định, còn gọi là “đại diện tài liệu” hay “ đại diện bản tin”, “ đại diện thông điệp”
Trang 14Hàm băm là hàm một chiều (One-way Hash) theo nghĩa giá trị hàm băm là duy nhất và từ giá trị băm này khó thể suy ngược lại được nội dung hay độ dài ban đầu của tài liệu gốc
Đặc tính của hàm băm
1/ Với tài liệu đầu vào ( Bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x) 2/ Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa thành bản tin x’ thì giá
trị băm ( ')h x h x( )
3/ Nội dung từ bản tin gốc khó thể suy ra từ giá trị băm của nó
Hai tính chất quan trọng nhấ của hàm băm là Tính một chiều và Tính duy nhất Hiện nay, một số kỹ thuật băm được sử dụng phổ biến như: SHA-1, SHA-
256, SHA-384, SHA-512; MD-4, MD-5…[1], [6]
1.2 CƠ SỞ TOÁN HỌC
1.2.1 Khái niệm
1.2.1.1 Ước số , bội số
Cho hai số nguyên a, b ( b ) Nếu có một số nguyên q sao cho a=b*q, ta 0
nói rằng a chia hết cho b, kí hiệu b\a Ta nói b là ước của a và a là bội của b
1.2.1.2 Ước chung lớn nhất, bội chung nhỏ nhất
- Số nguyên d được gọi là ước chung của các số nguyên a 1 , a 2 ,…,a n , nếu nó
là ước của tất cả các số đó
- Số nguyên m được gọi là bội chung của các số nguyên a 1 , a 2 ,…,a n , nếu nó
là bội của tất cả các số đó
- Một ước chung d của tất cả các số nguyên a 1 , a 2 , …, a n trong đó mọi ước
chung của a 1 , a 2 , …, a n đều là ước của d, thì d được gọi là ước chung lớn nhất (UCLN) của a 1 , a 2 , …, a n
Ký hiệu d = gcd(a 1 , a 2 ,…, a n ) hay d= UCLN (a 1 , a 2 ,…, a n). Nếu gcd(a 1 , a 2 ,…, a n )
- Nếu gcd(a 1 , a 2 , …, a n ) =1 thì các số a 1 , a 2 , …, a n được gọi là nguyên tố cùng nhau
Trang 15- Một bội chung m>0 của các số nguyên a 1 , a 2 , …, a n, trong đó mọi bội
chung của a 1 , a 2 , …, a n , đều là bội của m thì m được gọi là bội chung nhỏ nhất (BCNN) của a 1 , a 2 , …, a n
Ký hiệu m = lcm(a 1 , a 2 , …, a n ) hay m=BCNN(a 1 , a 2 , …, a n )
- Tập Zn và Zn*
+ Z n ={ 0, 1, 2, …, n-1} là tập các nguyên tố không âm < n
+ Z n * = { eZ n , e là nguyên tố cùng nhau với n} Tức e 0
1.2.1.3 Thuật toán Euclide tìm ước chung lớn nhất
Thuật toán Euclide mở rộng
Bài toán
- Input: Cho hai số nguyên không âm a, b ( ab)
- Output: d = gcd(a, b ) và hai số x, y sao cho ax + by = d
Thuật toán ( Mô phỏng ngôn ngữ Pascal)
Trang 16x2:=1; x1:= 0; y2:=0; y1:=1;
While b>0 Do Begin
Ví dụ: 17 5 ( mod 3) vì chia 17 và 5 cho 3 được cùng số dư là 2
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
1.2.2.2 Các tính chất của quan hệ đồng dư
1/ Quan hệ đồng dư là qua hệ tương đương Z
Với mọi số nguyên dương m ta có
a a ( mod m) với mọi aZ; ( 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) 2/ 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)
Trang 17Tổng quát
Có thể cộng hoặc trừ từng vế nhiều đồng dư thức theo cùng modulo m, ta
được một đồng dư thức theo cùng modulo m tức là:
Có thể nhân từng vế với đồng dư thức theo cùng một modulo m, ta được một
đồng dư thức theo cùng modulo m, tức là
Nếu a i b i ( mod m) với i= 1, …k, thì ta có
+ Có thể cộng hoặc trừ cùng một số vào hai vế của một đồng dư thức
+ Có thể chuyển vế các số hạng của đồng dư thức bằng cách đổi dấu các số
hạng đó
+ Có thể cộng vào một vế của đồng dư thức một bội của modulo
a b ( mod m) a + km b ( mod m) với mọi k Z
+ Có thể nhân hai vế của một đồng dư thức cùng với một số:
a b ( mod m) ac bc ( mod m) với mọi c Z
+ Có thể nâng lũy thừa bậc nguyên không âm cho 2 vế của một đồng dư thức
a b ( mod m) a n b n ( mod m) với mọi n Z +
+ Có thể chia 2 vế đồng dư thức cho một ước chung nguyên tố với modulo
c\a, c\b, (c,m)=1, a b ( mod m) a/c b/c ( mod m)
+ Có thể nhân 2 vế đồng dư thức và modulo cùng với một số nguyên dương:
Nếu a b ( mod m), c>0 ac bc ( mod mc)
+ Có thể chia 2 vế đồng dư thức và modulo cho cùng một số nguyên dương
là ước chung của chúng:
Nếu c/( a, b, m) a/c b/c ( mod m/c)
Trang 18+ a b ( mod m ) a b ( mod k ) với k\ m
+ a b ( mod m ) gcd(a, m) = gcd( b,m)
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ặc chỉ gồm các 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ố duy nhất Z m = { 0, 1, 2, …, 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
Cho số nguyên dương a, số lượng các số nguyên dương bé hơn n và nguyên
tố cùng nhau với n được ký hiệu ( )p và gọi là hàm Euler
Nhận xét: Nếu p là số nguyên tố, thì ( )p p 1
Trang 19Ví dụ:
Tập các số nguyên không âm nhỏ hơn 7 là Z7 = { 0, 1, 2, 3, 4, 5, 6}
Do 7 là số nguyên tố, nên tập các số nguyên dương nhỏ hơn 7 và nguyên tố cùng nhau với 7 là Z7* ={ 1, 2, 3, 4, 5, 6} Khi đó | Z| = ( )p p =7 – 1 = 6 1
1.2.3.4 Định lý về hàm Euler
Nếu n là tích của hai số nguyên tố p, q thì ( )n ( ) ( )p q (p1)(q1)
1.2.3.5 Định lý Ferma
- Nếu p là số nguyên tố, a là số nguyên thì a p a( mod p )
- Nếu p nguyên tố, p không chia hết cho a thì a p1 1(mod )p
Nếu gcd (c, m)=1 và a b ( mod (m)) với a,b là các số tự nhiên thì
c a = c b (mod m) và suy ra ca camod( )m (mod ).m
Nhận xét : Hệ quả trên giúp giảm nhẹ việc tính toán đồng dư của lũy thừa bậc cao
Trang 201.2.4 Phần tử nghịch đảo đối với phép nhân
Định nghĩa
Cho a Z n , 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 Z n và ký hiệu a -1
Ví dụ: Tìm phần tử nghịch đảo của 3 trong Z7
Tức là phải giải phương trình 3.x 1 ( mod 7), x sẽ là phần tử nghịch đảo của 3
Vậy 5 là phần tử nghịch đảo của 3 trong Z7
Định lý Euler tổng quát Nếu ( a,n) = 1 thì a( )n mod n = 1
- Hệ quả : Nếu p là số nguyên tố và ( a, p) = 1 thì ap-1(mod p) = 1
1.2.5 Một số Nhóm đặc biệt:
Ký hiệu: Z n = {0, 1, 2, 3, …, n-1}
Z n* = { x Z n , x là nguyên tố cùng nhau với n }
1.2.5.1 Khái niệm Nhóm Cyclic:
Nhóm (G, *) được gọi là Nhóm Cyclic nếu nó được sinh ra bởi một phần
tử g G Tức là với mỗi a G, đều tồn tại số n N để g n = g * … * g = a Khi đó g được gọi là phần tử sinh hay phần tử nguyên thuỷ của nhóm G
Trang 211.2.5.2 Cấp (Bậc) của Nhóm Cyclic:
Cho (G, *) là Nhóm Cyclic với phần tử sinh g và phần tử trung lập e
Nếu tồn tại số tự nhiên nhỏ nhất n mà g n = e, thì G sẽ chỉ gồm có n phần tử khác nhau: e, g, g 2 , g 3 , , g n – 1 Khi đó G được gọi là nhóm Cyclic hữu hạn cấp n Nếu không tồn tại số tự nhiên n để g n = e, thì G có cấp
Ví dụ: (Z + , +) gồm các số nguyên dương là Cyclic với phần tử sinh g =
1, e = 0 Đó là Nhóm Cyclic vô hạn, vì không tồn tại số tự nhiên n để g n = e,
1.2.5.3 Cấp (Bậc) của một phần tử trong Nhóm Cyclic:
Phần tử G được gọi là có cấp d, nếu d là số nguyên dương nhỏ nhất
sao cho d = e, trong đó e là phần tử trung lập của G
1.2.5.4 Hàm song tuyến tính:
Cho số nguyên tố p Cho G 1 , G 2 là Nhóm cộng Cyclic (Cyclic additive group) cấp p
Cho G T là Nhóm nhân Cyclic (Cyclic multiplicative group) cấp p
Gọi g là phần tử sinh của G 1 , h là phần tử sinh của G 2
Ánh xạ e: G 1 x G 2 G T được gọi là Song tuyến tính (Bilinear pairing)
nếu thoả mãn các tính chất sau:
- Song tuyến tính: Với 2 phần tử tuỳ ý a, b Z p * , thoả mãn đẳng thức:
e(g a , h b ) = e(g, h) ab = e(h b , g a )
- Tính chất e(g , h ) ≠ 1 G T , 1 G T là phần tử đơn vị trong nhóm G T
1.2.6 Các khái niệm về đường cong Elliptic
1.2.6.1 Đường cong Elliptic
Một đường cong Elliptic E trên trường F (hữu hạn hay vô hạn) được biểu diễn bằng phương trình Weierstrass: y 2 + a 1 x y + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6
trong đó a i F (1)
Đường cong Elliptic E trên trường F được ký hiệu là E(F)
Số các điểm nguyên trên E được ký hiệu là # E(F)
Đối với mỗi trường F khác nhau, phương trình Weierstrass (1) được biến
đổi thành những dạng khác nhau
Trang 22Ví dụ : Đường cong Elliptic E trên trường R là tập các điểm (x, y) thỏa mãn phương trình : y 2 = x 3 + ax + b, với a, b R (2)
Trong đó 4a 3 + 27b 2 0, điều kiện để có các các nghiệm đơn riêng biệt
Hình 1.1 Ví dụ đường cong Elliptic
1.2.6.2 Phép “cộng” 2 điểm trên đường cong Elliptic
Cách tính cộng 2 điểm P và Q trên đường cong Elliptic E: (Hình 1.2) <1> Vẽ đường thẳng qua P và Q, cắt đuờng cong tại điểm thứ 3 là R’
<2> Vẽ đường thẳng đứng (//Oy) qua R’, cắt đường cong tại điểm R
Do là vô cùng xa, nên đường thẳng trong <2> sẽ cắt đường cong lại tại
điểm P Như vậy P + ∞ = P Nói cách khác, ∞ là phần tử trung lập
Với P’(x,-y) = P(x,y), ta có P + P’ = ∞
Nói cách khác, mỗi phần tử trên đường cong Elliptic E: có phần tử nghịch đảo
Công thức Đại số cho phép toán cộng 2 điểm, P(x P , y P ) + Q (x Q , y Q ) :
Đường thẳng <1> là y = s -x – y 0 với s =
P Q
P Q
x x
y y
Trang 23dy s
s y
x s
x
R R
R
Hình 1.3 Cộng hai điểm trùng nhau
1.2.6.3 Phép nhân một điểm với một số nguyên trên đường cong E
Định nghĩa: Phép “nhân” điểm P với số nguyên k là: k * P = P + P + … +
P Một số trường hợp kí hiệu là P k
Hình 1.4 Phép “nhân” một điểm với một số nguyên
Trang 241.2.6.4 Đường cong Elliptic trên trường hữu hạn Fq
Trường F, trên đó định nghĩa đường cong Elliptic, có thể hữu hạn hay vô hạn Trong mật mã người ta chỉ xét E trên trường hữu hạn F Có 2 trường hữu hạn
F thường sử dùng: Trường hữu hạn F q với q là số nguyên tố lớn, hoặc q = 2m
(m là số nguyên) Khi đó trên đường cong Elliptic chỉ tồn tại hữu hạn các điểm
thỏa mãn Y 2 = x 3 + ax + b mod p
Số hữu hạn này được gọi là bậc của đường cong Elliptic Tùy thuộc vào F q với mỗi bậc của q, có nhiều đường cong Elliptic Đường cong Elliptic E (trên trường hữu hạn F) với phép “cộng” (định nghĩa trên) tạo thành nhóm Abel:
Dễ dàng kiểm nghiệm được : P + P’ = O
- Tính giao hoán : PQQP, P,QE(F q)
1.2.6.5 Bậc và Điểm cơ sở
- Bậc của điểm P E ( Fq) là số nguyên dương r nhỏ nhất sao cho r * P = ∞
- G E Fq được gọi là Điểm cơ sở nếu bậc của nó là nhỏ nhất [6]
Trang 251.3 TỔNG QUAN VỀ THANH TOÁN ĐIỆN TỬ
1.3.1 Khái niệm thanh toán điện tử
Theo nghĩa rộng: Thanh toán điện tử là việc thanh toán tiền thông qua các thông điệp điện tử thay cho việc trao tiền mặt
Theo nghĩa hẹp: Thanh toán điện tử là việc trả tiền và nhận tiền hàng cho các hàng hóa và dịch vụ được mua bán trên Internet
1.3.2 Mô hình thanh toán điện tử
Có 2 mô hình thanh toán được sử dụng trong thanh toán điện tử là:
1.3.2.1 Mô hình trả sau
Trong mô hình này, thời điểm tiền mặt được rút ra khỏi tài khoản bên mua để chuyển sang bên bán, xảy ra ngay (Pay-now) hoặc sau (Pay-later) giao dịch mua bán Hoạt động của hệ thống dựa trên nguyên tắc tín dụng (Credit credential)
1.3.2.2 Mô hình trả trước
Trong mô hình này, khách hàng liên hệ với ngân hàng để có được chứng từ
do ngân hàng phát hành Chứng từ hay đồng tiền số này mang dấu ấn của ngân hàng, được đảm bảo bởi ngân hàng và do đó có thể dùng ở bất cứ nơi nào đã có xác
lập hệ thống thanh toán với ngân hàng này
1.3.3 Hình thức thanh toán trong thanh toán điện tử
1.3.3.1 Thanh toán ngoại tuyến (Off-line payment)
Phiên giao dịch giữa người sử dụng và nhà cung cấp có thể diễn ra mà không cần đến sự tham gia của ngân hàng
1.3.3.2 Thanh toán trực tuyến (Online payment)
Trong mỗi lần giao dịch, nhà cung cấp sẽ yêu cầu ngân hàng kiểm tra tính hợp lệ của đồng tiền do người dùng chuyển trước khi chấp nhận thanh toán.Vì vậy,
hệ thống thanh toán trực tuyến có khả năng kiểm tra được tính tin cậy của đồng tiền
1.3.4 Các phương tiện thanh toán điện tử
1.3.4.1 Thẻ tín dụng
Để thực hiện giao dịch, người mua hàng chỉ việc cung cấp số hiệu thẻ và thời hạn sử dụng của tấm thẻ, người bán sẽ chuyển các thông tin này đến ngân hàng
Trang 261.3.4.3 Tiền điện tử (E-cash/Digital cash)
Tiền điện tử (E-moyney hay còn được gọi là Digital cash) Đây là phương tiện thanh toán được sử dụng trong thương mại điện tử, có các thông tin giống như trên tiền mặt thông thường: nơi phát hành, giá trị và số seri duy nhất
1.3.4.4 Séc điện tử
Bao gồm tất cả các thông tin trên séc giấy truyền thống nhưng có thể chuyển được bằng thư điện tử (E-mail)
1.3.4.5 Thẻ thông minh (Smart card)
Thẻ thông minh là thẻ được gắn một con chip – vi mạch điện tử Vi mạch điện tử này bao gồm một thiết bị ra vào đặc trưng, một bộ vi xử lý, một bộ nhớ Tất
cả những thiết bị này sẽ giúp lưu trữ rất nhiều loại thông tin khác nhau từ số thẻ tín dụng, hồ sơ sức khoẻ cá nhân, bảo hiểm y tế, hồ sơ công tác, bằng lái xe… với dung lượng gấp 100 lần so với dung lượng của các thông tin có thể lưu trữ trên thẻ tín dụng thông thường
1.3.4.6 Ví điện tử (Electronic wallets)
Một ví điện tử được thiết kế cố gắng mô phỏng lại các chức năng của một ví truyền thống Các chức năng quan trọng nhất của ví điện tử là:
+ Chứng minh tính xác thực của khách hàng thông qua việc sử dụng các chứng nhận số hoá hoặc bằng các phương pháp mã hoá thông tin khác
+ Lưu trữ và chuyển giá trị: Đảm bảo an toàn cho quá trình thanh toán giữa người bán và người mua trong các giao dịch thương mại điện tử
Trang 27+ Định danh hay ID số hoá: Các mã bảo mật trên máy chủ, được biết đến như là các ID số hoá, được cung cấp bởi một số cơ quan chứng nhận thẩm quyền, là nơi cấp phép và bảo dưỡng các bản ghi diễn biến trên các ID số hoá này [2], [5], [10],[13]
1.3.5 Giao thức SET bảo mật trong thanh toán điện tử
1.3.5.1 Giao thức SET bảo mật trong thanh toán điện tử
Giao thức SET được thiết kế nguyên thuỷ bởi Visa và MasterCard vào năm
1997 và được phát triển lên từ đó Giao thức SET đáp ứng được 4 yêu cầu về bảo mật trong TMĐT giống như SSL: sự xác thực, mã hoá, tính chân thực, và không thoái thác
SET có liên quan đến SSL do nó cũng sử dụng khoá công cộng và khoá riêng với khoá riêng được giữ bởi một cơ quan chứng nhận thẩm quyền Không giống như SSL, SET đặt các khoá riêng trong tay cả người mua và người bán trong một giao dịch Điều đó có nghĩa là một người sử dụng thông thường cần các khoá riêng của họ và cần phải đăng ký các khoá này giống như các máy chủ phải làm
SET có các thực thể chính như sau:
o Chủ thẻ(CardHolder)
o Các điểm chấp nhận thẻ (Merchant)
o Tổ chức phát hành thẻ (Issuer)
o Tổ chức chấp nhận thẻ (Acquirer)
o Cổng thanh toán (Payment Gateway)
o Cơ quan cấp phép, chứng thực giao dịch (Certificate Authority)
1.3.5.2 Hoạt động của giao thức SET
Cả khách hàng và nhà cung cấp trước tiên phải đăng ký với cơ quan chứng thực (CA), sau đó họ có thể thực hiện được các giao dịch mua hay bán hàng hoá Sau khi đăng ký thành công với CA, khách hàng và nhà cung cấp có thể thực hiện được giao dịch Quá trình thực hiện giao dịch trải qua 9 bước:
Bước 1: Khách hàng truy nhập vào Website lựa chọn hàng hoá cần mua
Trang 28Bước 8: Đại lý bán hàng lưu lại các thông tin giao dịch ngân hàng
Bước 9: Tổ chức phát hành in hoá đơn và gửi lại khách hàng [9]
1.3.6 Tiền điện tử
1.3.6.1 Giới thiệu về tiền điện tử
- Tiền điện tử (E-money, E-currency, Internet money, Digital money, Digital cash) có thể hiểu là loại tiền trao đổi theo phương pháp “điện tử”, liên quan đến
mạng máy tính và những hệ thống chứa giá trị ở dạng số (Digital stored value Systems)
Cũng như dãy số (Serial) trên tiền giấy, dãy số của tiền điện tử là duy nhất Mỗi đồng tiền điện tử được phát hành bởi một tổ chức (ngân hàng) và biểu diễn một lượng tiền thật nào đó
1.3.6.2 Cấu trúc tiền điện tử
1/ Số sêri của đồng tiền: Mỗi đồng tiền điện tử có một số sêri duy nhất, số
sêri của tiền điện tử thường là một dãy số được sinh ngẫu nhiên Điều này có liên quan tới tính ẩn danh của người sử dụng
2/ Giá trị của đồng tiền: Mỗi đồng tiền điện tử có giá trị tương đương với
một lượng tiền thật nào đó, trong tiền điện tử, giá trị này có thể là một con số bất kỳ (11000VNĐ, 19000VNĐ,…)
Trang 293/ Hạn định của đồng tiền: Để đảm bảo tính an toàn của đồng tiền và tính
hiệu quả của hệ thống, các hệ thống thường ghi thời hạn của đồng tiền Đồng tiền điện tử sau khi phát hành, phải gửi lại ngân hàng trước thời điểm hết hạn
4/ Các thông tin khác: Đây là thông tin thêm nhằm phục vụ cho mục đích
đảm bảo an toàn và tính tin cậy của đồng tiền điện tử, ngăn chặn việc gian lận, giả mạo tiền điện tử và phát hiện các vi phạm (nếu có) Trong nhiều hệ thống, các thông tin này giúp truy vết định danh người sử dụng có hành vi gian lận trong thanh toán tiền điện tử Các thông tin trên tiền điện tử được ngân hàng ký bằng khoá bí mật Người dùng nào cũng có thể kiểm tra tính hợp lệ của đồng tiền bằng cách sử dụng khoá công khai của ngân hàng
1.3.6.3 Phân loại tiền điện tử
Tiền điện tử có hai loại: ẩn danh và định danh
1/ Tiền ẩn danh: Tiền ẩn danh không tiết lộ thông tin định danh của người
sử dụng, hệ thống này dựa vào lược đồ chữ ký mù để ẩn danh người dùng Tính ẩn danh của tiền điện tử tương tự như tiền mặt thông thường Tiền điện tử ẩn danh được rút từ một tài khoản, có thể được tiêu xài hoặc chuyển cho người khác mà không để lại dấu vết
2/ Tiền định danh: Tiền điện tử ẩn danh tiết lộ thông tin định danh của
người dùng Nó tương tự như thẻ tín dụng, cho phép ngân hàng lưu dấu vết của tiền khi luân chuyển
1.3.6.4 Tính chất của tiền điện tử
Điểm khác biệt lớn nhất giữa tiền điện tử và tiền mặt thông thường đó là: tiền điện tử chỉ đơn giản là một dãy các con số được biểu diễn theo một định dạng nào
đó mà máy tính có thể hiểu được và được trao đổi thông qua mạng máy tính Chính
vì chỉ là một dãy con số nên đồng tiền số rất dễ dàng bị sao chép, điều này dẫn đến hai tình huống: thứ nhất, đồng tiền số có thể được làm giả (bằng cách sinh ra dãy các con số theo đúng định dạng của đồng tiền đã được ngân hàng phát hành) Thứ hai, đồng tiền có thể bị sao chép để sử dụng nhiều lần (double-spending)
Trang 30- Nhận dạng người dùng: Người dùng cần phải biết mình đang giao dịch với ai
- Xác thực tính toàn vẹn thông điệp: Đảm bảo bản copy của thông điệp hoàn toàn giống bản ban đầu
3/ Tính riêng tư (privacy): Đồng tiền phải được ẩn danh, không để lại dấu
vết, ngân hàng không nói được tiền giao dịch là của ai
4/ Tính độc lập (portability): Là sự an toàn của Tiền điện tử không phụ
thuộc vào vị trí địa lý Tiền có thể được chuyển qua mạng máy tính hoặc lưu trữ vào các thiết bị nhớ khác nhau
5/ Tính chuyển nhượng (transferrability): Người dùng Tiền điện tử có thể
chuyển giao quyền sở hữu đồng tiền điện tử cho nhau Tính chuyển nhượng được là một tính chất rất quan trọng cho việc tiêu tiền điện tử, thực sự giống với tiêu tiền mặt thông thường
6/ Tính phân chia được (divisibility): Người dùng có thể phân chia đồng
tiền của mình thành những mảnh có giá trị nhỏ hơn, với điều kiện tổng giá trị các mảnh nhỏ bằng giá trị đồng tiền ban đầu [2], [5], [10],[13]
1.3.6.5 Các giao thức với tiền điện tử
- Giao thức 1: Các giao thức thanh toán cùng ngân hàng
Giả sử Alice và Bob cùng sử dụng dịch vụ của một ngân hàng Alice muốn mua hàng (ví dụ một quyển sách Q giá 100 VNĐ ) từ Bob Giao thức gồm ba giai đoạn sau:
Trang 31Hình 1.5 Mô hình giao dịch của hệ thống tiền điện tử cùng ngân hàng
1/ Rút tiền (Withdrawal)
- Alice tạo tiền điện tử C gồm số sêri và giá trị của C (Vídụ 100VNĐ)
- Alice yêu cầu ngân hàng ký “mù” lên C
- Giao thức ký thành công thì ngân hàng sẽ trừ 100VNĐ trong tài khoản của Alice và chuyển lại cho Alice đồng tiền đã được ký mù
2/ Thanh toán (Spending)
- Alice chuyển đồng tiền C đã có chữ ký của ngân hàng cho Bob và yêu cầu quyển sách Q
- Bob kiểm tra chữ ký trên C (dùng khoá công khai của ngân hàng) Nếu chữ Ký không hợp lệ thì Bob kết thúcgiao thức
3/ Gửi tiền (Deposit)
- Bob lấy đồng tiền 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 C
Nếu chữ ký hợp lệ, ngân hàng kiểm tra C đã được tiêu trước đó chưa
Nếu C chưa được tiêu, ngân hàng cộng thêm vào tài khoản cho Bob với số tiền tương ứng là 100VNĐ
Nếu việc gửi tiền thành công, Bob sẽ gửi quyển sách Q cho Alice
Nhận xét:
Bob biết được C từ tài khoản nào và đồng tiền này do ngân hàng nào phát hành Khi Bob gửi C vào tài khoản của mình, ngân hàng cũng khó biết đồng tiền
Trang 32đó nhận được từ Alice vì nó đã được ký “mù” Như vậy, tiền điện tử C không lưu lại dấu vết của những ai đã “tiêu” nó
- Giao thức 2: Các giao thức thanh toán trong liên ngân hàng
Trường hợp liên ngân hàng (các bên tham gia giao dịch sử dụng dịch vụ ở các ngân hàng khác nhau), người ta sử dụng chữ ký “mù nhóm” cho đồng tiền chung của liên ngân hàng
Hình 1.6 Mô hình giao dịch của hệ thống tiền điện tử liên ngân hàng
Thiết lập (Setup): Các ngân hàng trong một nhóm, trưởng nhóm là ngân
hàng trung tâm Nếu có ngân hàng muốn gia nhập nhóm thì chỉ cần thực hiện giao thức join với trưởng nhóm
1- Rút tiền (Withdrawal)
- Đầu tiên Alice tạo đồng tiền điện tử T với số seri và mệnh giá
- Alice yêu cầu ngân hàng A ký “mù nhóm” vào T
- Ngân hàng A ký mù nhóm vào T và rút số tiền tương ứng từ tài khoản của Alice
Bây giờ Alice sở hữu đồng tiền T có giá trị trong cả nhóm ngân hàng
2- Thanh toán (Spending)
- Alice đưa cho Bob tiền T đã có chữ ký “nhóm” của liên ngân hàng
- Bob dùng khoá công khai của nhóm kiểm tra và xác thực chữ ký “nhóm” của liên ngân hàng trên T
3- Gửi tiền (Deposit)
Nếu các bước trên được hoàn thành, Bob gửi tiền T cho ngân hàng B Ngân
Trang 33hàng B nhận vì T là đồng tiền “chung” trong liên ngân hàng
- Ngân hàng B tiến hành xác thực chữ ký trên T Chú ý rằng, B không cần biết A là ai khi thực hiện việc này, mà chỉ cần sử dụng khoá công khai của nhóm
- Ngân hàng B kiểm tra T đã được tiêu chưa qua danh sách các đồng tiền
đã tiêu ở ngân hàng, để tránh tiêu tiền T hai lần
- Nếu kiểm tra hoàn tất, ngân hàng B nạp thêm vào tài khoản của Bob số
tiền T
- Bob gửi hàng cho Alice [10],[13]
1.3.6.6 Một số vấn đề đối với tiền điện tử
Các vấn đề lớn hiện nay đặt ra với tiền điện tử bao gồm:
1/ Vấn đề ẩn danh người dùng: Tính ẩn danh là yêu cầu đối với đồng tiền
nói chung và tiền điện tử nói riêng Hệ thống tiền điện tử ẩn danh tin cậy sẽ ngăn ngừa bên thứ ba (ngân hàng, nhà cung cấp) biết được thông tin định danh của người tham gia hệ thống Để đảm bảo yêu cầu này, ngân hàng dùng chữ ký mù ký lên đồng tiền Chữ ký mù đảm bảo ngân hàng không thể có được mối liên hệ nào giữa đồng tiền điện tử và chủ sở hữu của nó
2/ Vấn đề giả mạo và tiêu một đồng tiền nhiều lần: Tiền điện tử chỉ đơn
giản là một dãy các con số được biểu diễn theo một định dạng nào đó và được trao đổi thông qua mạng máy tính Chính vì chỉ là một dãy các con số nên nó rất dễ bị sao chép Điều này dẫn đến hai tình huống:
- Thứ nhất, đồng tiền có thể bị làm giả (bằng cách sinh ra dãy các con số theo đúng định dạng của đồng tiền thật)
- Thứ hai, đồng tiền có thể bị sao chép để sử dụng nhiều lần spending) [10],[13]
(double-1.3.7 Một số lược đồ trong Hệ thống tiền điện tử
1.3.7.1 Lược đồ CHAUM-FIAT-NAOR
Lược đồ Chaum-Fiat-Naor là lược đồ ẩn danh đơn giản, áp dụng cho hệ thống tiền điện tử có tính ẩn danh Lược đồ áp dụng kỹ thuật chữ ký mù RSA và giao thức cắt và chọn (Cut and choose) để ngăn ngừa người tạo tiền có hành vi gian
Trang 34lận Để ngăn ngừa vấn đề “ tiêu xài hai lần”, lược đồ này dùng giao thức “hỏi-đáp”
để lấy một phần thông tin định danh gắn lên đồng tiền và như vậy nếu đồng tiền được “tiêu xài hai lần” thì thông tin trên cả hai trường hợp được kết hợp để truy vết tìm ra kẻ gian lận Ngân hàng công khai khóa mật mã RSA là (b, n) và chọn tham số
k Ngân hàng cũng công khai 2 hàm f và g (hàm không va chạm) Mỗi người sử dụng có số tài khoản u và ngân hàng sẽ giữ số đếm v liên quan đến số tài khoản này ( đếm số đơn vị Ui được tạo), ngân hàng dựa vào u để xác định ra kẻ gian lận
Trình tự thanh toán trong lược đồ CHAUM-FIAT-NAOR
1) Khách hàng gửi tiền ở dạng “mù” yêu cầu ngân hàng ký
2) Ngân hàng gửi trả tiền đã ký cho khách hàng ( Tiền vẫn còn “mù”)
3) Sau khi xóa “mù” tiền, khách hàng chuyển tiền cho người bán
4) Người bán tiến hành chuyển giao hàng
5) Người bán chuyển tiền đến ngân hàng để kiểm tra tính hợp lệ của tiền
1- Rút tiền
1) Ông A muốn có một đồng tiền điện tử ẩn danh thì cần phải tạo k đơn vị Ui
và chuyển nó đến ngân hàng, một đơn vị Ui được tạo ra từ những dãy số
ngẫu nhiên ai , ci , di , 1 i k , sao cho Ui độc lập và duy nhất Ui =f(xi ,
yi) với 1 i k, x i g a c( , ),i i y i g a X( i OR(u(vi)), )d i
2) Ông A làm mù k đơn vị Ui với những tham số mù ngẫu nhiên r r1, , ,2 r k
và gửi chúng đến ngân hàng Những tham số “mù” đó ngăn ngân hàng kiểm tra tức thì nội dung của những “đồng tiền” Ui
mod
i
i i
( Làm mù theo giao thức RSA: Blind x( )x r* bmodn )
3) Ngân hàng chọn ngẫu nhiên k/2 đơn vị để kiểm tra và yêu cầu ông A cung cấp các tham số ri, ai, ci, di tương ứng với những đơn vị Ui mà ngân hàng đã chọn
4) Ông A cung cấp cho ngân hàng các tham số ri, ai, ci, di theo yêu cầu xóa
Trang 355) Dựa vào các tham số do ông A cung cấp, ngân hàng xóa “mù” k/2 đơn vị đã chọn và kiểm tra để đảm bảo rằng ông A không có gian lận Nếu không có lỗi nào xảy ra, ngân hàng ký lên những đơn vị Ui còn lại (những đơn vị mà ngân hàng không xóa “mù”) và gửi cho ông A B a n
j mod (j là ngẫu nhiên ≤ k
và chỉ dùng k/2 phần tử B j)
Sau đó ngân hàng trừ khoản tiền tương ứng vào tài khoản của ông A
6) Ông A xóa “mù” đơn vị đã được ngân hàng ký bằng cách chia B j cho r j Lúc
này ông A có đồng tiền điện tử với giá trị thật sự
T = f(x j , y j ) a mod n
2- Thanh toán
1) Ông A gửi tiền T đến ông B
2) Ông B chọn chuỗi nhị phân ngẫu nhiên z 1 , z 2 , …,z k/2 và gửi nó đến cho ông A
3) Ông A phản hồi lại tùy theo từng trường hợp sau:
+ Nếu z i = 1 thì ông A sẽ gửi đến ông B: a i , c i và y i
+ Nếu z i = 0 thì ông A sẽ gửi đến ông B: xi, a i XOR(u (vi) và d i
4) Ông B kiểm tra T là hợp lệ trước khi chấp nhận thanh toán của ông A
3- Gửi tiền
1) Ông B gửi lịch sử thanh toán đến ngân hàng
2) Ngân hàng kiểm tra chữ ký số của ngân hàng
3) Ngân hàng kiểm tra tiền này thực sự chưa bị tiêu xài trước đó
4) Ngân hàng nhập vào cơ sở dữ liệu những tiền đã tiêu xài, đồng thời lưu giữ chuỗi nhị phân và những phản hồi tương ứng từ ông A (điều này sẽ giúp cho sau này phát hiện được những kẻ tiêu xài hai lần)
5) Ngân hàng cộng khoản tiền tương ứng vào tài khoản của ông B
- Đánh giá
Tại giao thức rút tiền, để ngăn ngừa khả năng gian lân của ông A, lược đồ sử dụng giao thức “Cut and choose” Ông A phải tiết lộ k/2 mẫu thông tin một cách ngẫu nhiên từ k mẫu Như vậy khả năng ông A có thể thực hiện được hành vi gian lận phụ thuộc vào độ lớn của số k
Trang 36Nếu ông A tiêu đồng tiền T hai lần thì khả năng ngân hàng có thể lấy được
cả hai tham số a i và a XOR u i ( (vi) để tính được u Đó là số tài khoản của ông
A tại ngân hàng, chính vì vậy từ u ngân hàng có thể truy ra được ông A là người có
hành vi tiêu một đồng tiền hai lần Vì khả năng để có một cặp bit khác nhau trong 2 chuỗi z1,z2, ,z k/2 và '
2 / ' 2 '
Trong lược đồ CHAUM-FIAT-NAOR, chi phí (thời gian, tính toán, ) phụ
thuộc vào độ lớn của k Tại giao thức rút tiền trong lược đồ, ông A phải gửi k packet
đến ngân hàng, tuy nhiên ngân hàng chỉ phải gửi trở lại một packet Việc tiến hành làm “mù” và xóa “mù” sẽ làm tăng sự tính toán, sự liên lạc
Tại giao thức thanh toán, sau khi ông A gửi tiền đến ông B, ông này gửi
chuỗi nhị phân đến ông A, sau đó ông A phải gửi k/2 phản hồi khác nhau, điều này
sẽ khiến cho việc tăng thời gian và sự tính toán, liên lạc và chi phí lưu trữ