ĐẠi học quốc gia hà NỘi trưỜng đẠi học công nghệ  Nguyễn Thị An nghiên cứu một số giải pháp công nghệ thông tin trong việc sử DỤng tiềN ĐIỆn tử khoá luận tốt nghiệp hệ ĐẠi học chính quy ngành: Công Nghệ Thông Tin



tải về 0.65 Mb.
trang5/6
Chuyển đổi dữ liệu30.08.2016
Kích0.65 Mb.
#28839
1   2   3   4   5   6

5/. Giao thức gửi.

Bob gửi thông tin thanh toán (A, B, sign(A, B)), c, r­1,2,3 đến ngân hàng.

Ngân hàng kiểm tra chữ ký có chính xác không và đồng tiền không được tiêu xài trước đấy.

Bob thử thách Alice bằng giá trị c = H0 (A, B, Ib, date/time)

Alice trả lời lại giá trị r­1,2,3

Nếu tất cả thỏa mãn, Ngân hàng gửi tiền vào tài khoản của Bob.



        1. Đánh giá.

Lược đồ này sử dụng những lý thuyết toán học phức tạp, khó có thể hiểu được đầy dủ. Do vậy lược đồ này không phổ biến bằng lược đồ CHAUM – FIAT – NAOR

Lược đồ không sử dụng giao thức “cut and choose” như CHAUM –FIAT-NAOR, nên khônh phải tạo k mẫu khác nhau cũng như không phải giữ những bản copy của phần định danh( định danh được chia làm hai phần). Ngân hàng cũng không cần kiểm tra k/2 mẫu trước khi tiến hành ký.

Độ an toàn của lược đồ Brand sẽ phụ thuộc vào độ khó của việc tính toán logarit rời rạc và dĩ nhiên sẽ an toàn hơn lược đồ sử dụng RSA.

Trong lược đồ này, định danh của người mua hàng(Alice) được ẩn danh hoàn toàn. Người bán hàng và ngân hàng hoàn toàn không biết định danh của Alice, trừ khi Alice có hành vi gian lận, tiêu một đồng tiền nhiều lần.



3.2.3.3. Phương pháp phát hiện định danh trong trường hợp tiêu xài 2 lần một đông tiền.

Trong trường hợp Alice tiêu xài một đồng tiền 2 lần thì sẽ phải gửi cho Ngân hàng:

Lần 1: c và r1, r2, r3

Lần 2: c’ và r’1, r’2, r’3.



Với: Và

r1 = x1 + cx2 mod q r’1 = x1 + cx’2 mod q

r2 = x2 + cy2 mod q r’2 = x2 + cy’2 mod q

r3 = x3 + cz2 mod q r’3 = x3 + cz’2 mod q

Từ hai phương trình 3 ẩn này, ngân hàng sẽ tìm ra được định danh của kẻ gian lận:

A = g1(c’r1 – cr’1) / (c’-c)g2 (c’r2 – cr’2) / (c’-c) g3 (c’r3 – cr’3) / (c’-c)

B = g1(r1 – r’1) / (c’-c)g2 (r2 – r’2) / (c’-c) g3 (r3 – r’3) / (c’-c)

Mà:


A = g1x1 g2y1 dz1 B = g1x2 g2y2 dz2

(c’r1 – cr’1) = x1 mod q (r1 – r’1) = x2 mod q

(c’r2 – cr’2) = y1 mod q (r2 – r’2) = y2 mod q

(c’r3 – cr’3) = z1 mod q (r3 – r’3) = z2 mod q

Từ công thức, Ngân hàng tính:

u1s = x1 + x2 , u2s = y1 + y2 , s = z1 + z2

Tiến hành thay x1 , y1, z1 , x2 , y2, z2 theo kết quả trên ta được.

u1s = + mod q u2s = + mod q

s = + mod q u1 = mod q

u1 = mod q

Từ u1 và u2 tính được I theo công thức I = g1u1 g2u2, Ngân hàng so sánh giạ trị I trong cơ sở dữ liệu đã được lưu trước đó và tìm ra định danh của kẻ gian lận.



        1. Tấn công.

Có một kiểu tấn công trong lược đồ Brand, đó là Alice có thể tiêu một đồng tiền nhiều lần mà không bị phát hiện.

Cách tấn công này nhằm vào giao thức tạo tài khoản lúc ban đầu, khi mở tài khoản thay vì sử dụng I = g1u1 Alice sẽ chọn I = g1u1 g2u2 , như vậy, tại giao thức rút tiền, Ngân hàng sẽ kỹ trên.

A = g1u1 g2u2+1

B = g1x1 g2x2

Sign( A, B) = (Z’ = (g1u1 g2u2+1), a’ = gwu+v, b = (g1u1 g1u2+1)wsu+sv,

r = H, (A, b,z’, a’, b’)x + wu+v)

Tại giao thức rút tiền thu được e1 = de + x1 và r2 = df + x2

ở đây (e, f) là đại diện của A = (g1e gf), e = u1s, f = (u2 +1)s.


    1. GIẢI PHÁP CHO BÀI TOÁN “TIÊU NHIỀU LẦN MỘT ĐỒNG TIỀN”

      1. Giới thiệu giải pháp.

Làm thế nào để đảm bảo tính ẩn danh người dùng, mà vẫn truy vết được định danh khi họ vi phạm? Giải pháp được dùng là “chữ ký mù có điều kiên” (conditional blind signature), còn gọi là chữ ký mù một phần ( partial blind signature).

1). Chữ ký mù có điều kiện đảm bảo:

Nếu không có vi phạm xảy ra, nó giống hệt chữ ký mù, tức là đảm bảo tính ẩn danh cho người dùng.

Nếu có vi phạm xảy ra, ngân hàng có thể kết hợp với nhà cung cấp để truy ra vết định danh người vi phạm.

2). Ý tưởng của chữ ký mù có điều kiện:

Khi người dùng A thực hiện giao thức rút tiền, A phải gửi cho ngân hàng một số thông tin. Tương tự, khi thanh toán, A cũng gửi cho bên B một số thông tin. Nếu chỉ dựa vào thông tin mà A cung cấp cho ngân hàng, hoặc thông tin A cung cấp cho B, thì không thể truy vết ra định danh của A. Tuy nhiên Ngân hàng và B hợp tác với nhau, dưới sự giám sát của pháp luật, để truy vết ra A. Sau đây là hai lược đồ dựa trên ý tưởng của chữ ký mù có điều kiện.


      1. Lược đồ truy vết gian lận KV.

Lược đồ KV, viết tắt của hai tác giả D. Kugler và H. Vogt, dựa trên sơ đồ chữ ký mù của Schnorr và sơ đồ chữ ký không thể chối bỏ của Chaum. Đặc tính mù được dùng để ẩn danh người dùng, đặc tính không thể chối bỏ dùng để truy vết đồng tiền điện tử.

1/. Chuẩn bị

+ Chọn p và q là hai số nguyên tố lớn sao cho q là ước của (p-1).

+ g1, g2, g3 Zp* là các phần tử cấp q.

+ (s­1, s­2) ngẫu nhiên  Zq là khóa bí mật của ngân hàng cho chữ ký mù.

+ v = g1s1 g2s2 mod p là thành phần chính trong khóa công khai của ngân hàng cho chữ ký mù. Như vậy, khóa công khai là bộ 5 số (p, q, g1, g2, v).

+ x ngẫu nhiên  Zq là khóa bí mật của ngân hàng cho chữ ký không thể chối bỏ.

+ y = g3x mod p là khóa công khai của ngân hàng cho chữ ký không thể chối bỏ.

2/. Giao thức rút tiền.

+ Ngân hàng

Chọn r ngẫu nhiên  Zq*

Tính: α = g2r mod p

Tính chữ ký không thể chối bỏ ω = αx mod p

Gửi α và ω cho Alice.

+ Alice làm α mù và ω

Với mỗi đồng tiền, Alice chọn δ ngẫu nhiên  Zq* và tính:

α’ = αδ mod p , ω’ = ωδ = (αx)δ = (α)δ mod p

+ Ngân hàng chọn (k­1, k­2 )  Zq ngẫu nhiên.

Tính t = g1k1 αk2 mod p gửi cho Alice.



+ Alice chọn (β­­1, β­­2, γ) ngẫu nhiên và tính

t’ = tg1β1(α’) β2 νγ mod p (ν là khóa công khai của Ngân hàng)

c’ = H(m, α’, t’)

Gửi c = c’ – γ mod q cho Ngân hàng.



+ Ngân hàng tính:

S1 = k1 – cs1 mod q

S2 = k2 – cs2r-1 mod q thỏa mãn:

t = g1s1 αs2 νc mod p

Ngân hàng gửi S1,­ S2, t cho Alice.

+ Alice tính

S’1 = ­ S1 + β­­1 mod q

S’2 = ­ S2 + β­­2 mod q

Các thông tin trên đồng tiền gồm (m, t’, S’1, S’2, α’, ω’ ).

+ Kiểm tra chữ ký

Ver = true  t’ = g1S’1 (α’)S’2 νc’ mod p




Khách hàng




Ngân hàng

Với mỗi đồng tiền.

α’ = αδ mod p

ω’ = ωδ = (αx)δ = (α)δ mod p

(β­­1, β­­2, γ)  Zq ngẫu nhiên

t’ = tg1β1(α’) β2 νγ mod p

c’ = H(m, α’, t’)

c = c’ – γ mod q.

S’1 = ­ S1 + β­­1 mod q

S’2 = ­ S2 + β­­2 mod q

t’ = g1S’1 (α’)S’2 νc’ mod p

Đồng tiền (m, t’, S’1, S’2, α’, ω’ )



α , ω



t

c

S1, S2




Với mỗi lần rút tiền;

r ngẫu nhiên  Zq*

α = g2r mod p

ω = αx mod p



(k­1, k­2 )  Zq ngẫu nhiên.

Tính t = g1k1 αk2 mod p

S1 = k1 – cs1 mod q

S2 = k2 – cs2r-1 mod q

thỏa mãn:

t = g1s1 αs2 νc mod p




Hình 9 : Tóm tắt lược đồ KV

3/. Phân tích lược đồ KV.

Khả năng truy vết:

Nếu Ngân hàng quyết định phát hành các đồng tiền được đánh dấu, đơn giản là ngân hàng chỉ cần chọn và lưu một khóa ký không thể chối bỏ ngẫu nhiên bằng cách dùng xM thay vì x để tính ω = αxM mod p, xM được gọi là khóa đánh dấu. Trường hợp này có thể xảy ra theo yêu cầu của khách hàng hoặc luật sư.



Khi một đồng tiền được gửi vào ngân hàng, trong quá trình kiểm tra phát hiện thấy sai, thì khóa đánh dấu sẽ được phát hiện. Trường hợp này, ngân hàng kiểm tra xem ω’ có bằng ω = αxM mod p đối với tất cả các khóa đánh dấu đã được lưu giữ xM.

Tuy nhiên nếu Khách hàng (Alice) cố gắng kiểm tra xem đồng tiền của mình có bị truy vết không. Alice phải yêu cầu ngân hàng công bố tất cả các khóa đánh dấu xM trong pha kiểm toán. Nếu Alice phát hiện khóa đánh dấu tương ứng với đồng tiền của Alice không phải là x hay xM thì Alice có thể cãi rằng đồng tiền đã bị truy vết một cách bất hợp pháp. Nếu khóa đánh dấu nằm trong danh sách xm, Alice sẽ yêu cầu giấy phép hợp lệ của trọng tài - người chịu trách nhiệm cho việc truy vết này.



Nhược điểm:

Một trong những nhược điểm của lược đồ KV là nó cần quá nhiều thông tin bổ sung trong quá trình truy vết đồng tiền hợp lệ. Nguyên nhân là do việc đánh dấu phải được hợp pháp hóa bởi một trọng tài và ngân hàng phải lưu tất cả các khóa đánh dấu và các chứng nhận của trọng tài. Trong pha kiểm toán, Ngân hàng phải công bố tất cả các khóa đánh dấu và khóa ký không thể chối bỏ x. Do vậy, đối với quá trình truy vết hợp lệ, Ngân hàng phải lưu danh sách các khóa đánh dấu và các chứng nhận của trọng tài cho các đồng tiền bị nghi ngờ.

Một điểm yếu khác là khách hàng cần phải có năng lực cao về mặt tính toán để kiểm tra đồng tiền của mình. Khách hàng phải so sánh tất cả các x, xM, với x’ sử dụng công thức ω = (α’)x’mod p. Nếu không thể tìm thấy x hay xM nào phù hợp, khách hàng có thể cãi rằng đồng tiền đã bị truy vết một cách bất hợp pháp.

Bên cạnh đó, khi khách hàng cố gắng thử phép toán trên, việc đưa ra danh sách các khóa đánh dấu này làm nảy sinh một vấn đề về an toàn và bảo mật. Khách hàng sẽ kiểm tra trên máy tính cá nhân, do vậy ngân hàng phải gửi dánh sách khóa đánh dấu cho khách hàng, từ đó, khách hàng sẽ biết danh sách này và có thể chuyển giao cho người khác



      1. Lược đồ Fair tracing.

1/. Chuẩn bị.

- Alice gửi yêu cầu rút tiền tới ngân hàng.

- Ngân hàng chọn ngẫu nhiên r  Zq*, tính α = g2r mod p gửi cho Alice.

- Alice chọn x ngẫu nhiên làm thẻ đánh dấu bí mật và tính chữ ký không thể chối bỏi: ω = αx mod p

- Alice chọn ngẫu nhiên đa thức f(y) = x + a1y mod q và tính:

c0 = gx mod p , c1 = ga1 mod p

Alice gửi f(1), g, c0,­ c1 đến ngân hàng theo sơ đồ VSS.

Ngân hàng có thể kiểm tra tính đúng đắn của giá trị được chia sẻ:

gf(1) = cc1 = gxga1 = gx + a1 = gf(1)

Khách hàng




Ngân hàng

ω = αx mod p

x là “dấu” bí mật

f(y) = x + a1y mod q

c0 = gx mod p

c1 = ga1 mod p


Yêu cầu rút tiền


α

f(1), g, c0,c1


r ngẫu nhiên r  Zq*

α = g2r mod p



gf(1) = cc1 = gxga1 = gx + a1 = gf(1)


Hình 10 : Giai đoạn chuẩn bị trong lược đồ Fair tracing.

Nếu kiểm tra thất bại, yêu cầu sẽ bị từ chối, vì Alice đang cố gắng gian lận “thẻ đánh dấu”.

Nếu Alice bị nghi ngờ, ngân hàng sẽ lưu các giá trị này cùng với ID của Alice để truy vết. Sau đó Alice gửi f(2), g, c0,c1 tới nhà cung cấp. Có thể tìm được “thẻ đánh dấu” bí mật từ x từ f(1) và f(2) bằng cách VSS nếu ngân hàng và nhà cung cấp phối hợp với nhau.

Ngân hàng không biết “dấu x” và sẽ gửi α, ω cho Alice.



2/. Giao thức rút tiền.

Với mỗi đồng tiền, Alice chọn ngẫu nhiên δ  Zq* và tính:

α’ = αδ mod p

ω’ = ωδ mod p

Rõ ràng ở đây, mối quan hệ giữa α’và ω’được giữ nguyên như giữa α và ω:

ω’ = ωδ mod p = (αx) δ mod p = (αδ) x mod p = (α’)x mod p

Alice phải chuyển α thành α’ bằng cách dùng thành phần δ ngẫu nhiên, nếu không ngân hàng có thể dựa vào α để nhận ra đồng tiền trong lức gửi tiền.

Ngân hàng chọn ngẫu nhiên (k­1, k­2 )  Zq ngẫu nhiên.

Tính t = g1k1 αk2 mod p gửi cho Alice

Ngân hàng cũng quyết định ngày hết hạn hiệu lực Tv của đồng tiền và ký trên nó. Ngân hàng gửi t, Tv, Sigbank(Tv) cho Alice.



* Làm mù:

Alice tạo thông điệp đồng tiền m’ = m || Tv || Sigbank(Tv).

Chọn ngẫu nhiên (β1, β2, γ)  Zq và tính:

t’ = tg1β1(α’) β2 νγ mod p (ν là khóa công khai mù của Ngân hàng)

Tính : c’ = H(m’, α’, t’) và gửi c = c’ – γ mod q cho Ngân hàng.

* Ngân hàng ký:

S1 = k1 – cs1 mod q

S2 = k2 – cs2r-1 mod q thỏa mãn:

t = g1S1 αS2 νc mod p

Ngân hàng gửi S1, S2 cho Alice.



* Xóa mù:

S’1 = ­ S1 + β­­1 mod q

S’2 = ­δ-1 S2 + β­­2 mod q

Như vậy đồng tiền là bộ các số ( m’, t’, S1’, S2’, α’, ω’, c0, c1)



* Tính tin cậy của đồng tiền.

Tính tin cậy của đồng tiền có thể thu được bằng cách kiểm tra chữ ký mù. Trong bước này, tất cả các giá trị cần thiết có thể được lấy ra từ các giá trị lưu trên đồng tiền và khóa công khai của Ngân hàng. Cụ thể, có thể lấy g1 , v từ bộ khóa công khai (p, q, g1, g2, v), lấy t’, S1’, S2’, α’ từ bộ giá trị ( m’, t’, S1’, S2’, α’, ω’, c0, c1) chứa trong đồng tiền, và tính được c’ từ phương trình: c’ = H’ (m’, α’, t’).

Bất cứ ai cũng có thể kiểm tra tính tin cậy của đồng tiền bằng cách so sánh giá trị của t’ và g1s1 (α’)s2’ νc’ mod p




Khách hàng




Ngân hàng

Với mỗi đồng tiền:
Chọn ngẫu nhiên δ  Zq* và tính

α’ = αδ mod p, ω’ = ωδ mod p

tạo thông điệp đồng tiền

m’ = m || Tv || Sigbank(Tv).

Chọn ngẫu nhiên (β1, β2, γ)  Zq. Tính,

t’ = tg1β1(α’) β2 νγ mod p

(ν là khóa công khai mù của Ngân hàng)

Tính : c’ = H(m’, α’, t’)

c = c’ – γ mod q

S’1 = ­ S1 + β­­1 mod q

S’2 = ­ S2 + β­­2 mod q

Đồng tiền :

(m’ t’, S’1, S’2, α’, ω’, c0, c1 )


t, Tv, Sigbank(Tv)



c

1,S­­2




chọn ngẫu nhiên

(k­1, k­2 )  Zq

Tính t = g1k1 αk2 mod p

S1 = k1 – cs1 mod q

S2 = k2 – cs2r-1 mod q

thỏa mãn:

t = g1s1 αs2 νc mod p


Hình 11 : Giao thức rút tiền trong lược đồ Fair tracing.

3/. Giao thức trả tiền.

- Alice gửi các giá trị sau cho Bob.

Đồng tiền (m’ t’, S’1, S’2, α’, ω’, c0, c1 )

Các giá trị f(2) và g của VSS

g’ = gδ modp

D = δ’ + c’Sk Làm chữ ký một lần, δ ngẫu nhiên là số chỉ được dùng một lần.

- Bob kiểm tra tính chất chân thực của các giá trị này bằng cách so sánh.

gf(1) = cc12 = gxg2a1 = gx + 2 a1

- Bob kiểm tra tính chân thực của chữ ký một lần bằng cách so sánh.

Kiểm tra xem: g’ = gDkc’ mod p = g(δ + c Sk) (g-Sk­ ) c’ mod p = gδ mod p

Trong đó, c’ = H(m’, α’, t’) có thể được tính từ đồng tiền Alice gửi

(m’ t’, S’1, S’2, α’, ω’, c0, c1 )



5/. Giao thức gửi tiền và kiểm tra chữ ký:

Trong giao thức gửi tiền, Bon chỉ cần gửi lại đồng tiền cho Ngân hàng. Nếu không có vi phạm, đồng tiền sẽ được chấp nhận. Nếu có vi phạm, Ngân hàng phải thực hiện thêm một hoặc một số tương tác như truy vết đồng tiền hay ngăn chặn “double-spending”.



6/. Phân tích lược đồ Fair tracing

Truy vết không gian lận(Fair tracing).

Rõ ràng, nếu Ngân hàng biết “thẻ đánh dấu” bí mật x, ngân hàng có thể dễ dàng kiểm tra đồng tiền với: ω’ = (α’)x mod p

Thực tế, Ngân hàng không thể biết được thông tin này. Do vậy, việc truy vết bất hợp pháp là không thể. Mặt khác, Alice có thể đưa x cho Ngân hàng khi bị tống tiền, khi đó ngân hàng có thể dễ dàng kiểm tra đồng tiền.

Nếu Alice bị nghi ngờ có sai phạm, ngân hàng đã lưu các giá trị được chia sẻ: f(1), g, c0, c1 vào cơ sở dữ liệ trong khâu chuển bị, khi đó ngân hàng sẽ so sánh c0 và c1 của đồng tiền gửi vào với các giá trị được lưu trong cơ sở dữ liệu. Nếu các giá trị này giống nhau, Ngân hàng sẽ yêu cầu Bob cung cấp f(2) dưới sự giám sát của luật sư. Từ đó, ngân hàng có thể giải được các giá trị của x, cụ thể.

Ta có: f(1) = x + a1.f(2) = x + 2a1  x = 2f(1) – f(2)

Bob hoàn toàn không được lợi gì trong giao thức này, vì vậy, ngân hàng không thể truy vết được đồng tiền mà không có sự hợp tác của bên thứ ba. Do vậy, việc truy vết được gọi là không gian lận



- Phát hiện và ngăn chặn “double-spending”.

Mỗi đồng tiền có một thời hạn sử dụng nhất định, do vậy, tất cả các đồng tiền phải được gửi trở lại ngân hàng trước ngày đồng tiền hết hiệu lực thanh toán Tv và ngân hàng duy trì việc lưu trữ các đồng tiền đã tiêu cho đến thời điểm Tv.

Trong hệ thống trực tuyến, khi Bob nhận được tiền, anh ta có thể yêu cầu ngân hàng kiểm tra xem đồng tiền đã có trong danh sách các đồng tiền đã tiêu hay chưa, nếu có, Bob sẽ từ chối giao dịch. Do vậy, Bob hoàn toàn không cần yêu cầu chữ ký một lần của Alice.

Trong hệ thống ngoại tuyến, việc ngăn chặn “double-spending” trong thời gian thực là không thể, nhưng chúng ta hoàn toàn có thể phát hiện hành vi “double-spending” bằng cách sử dụng các kỹ thuật giống như trong hệ thống trực tuyến thông qua các đồng tiền gửi vào dựa trên ngày tiền hết hiệu lực Tv . Tuy vậy, chúng ta không biết ai đã tiêu một đồng tiền nhiều lần, vì các giá trị (c0, c1) chỉ là một chứng cứ và ngân hàng không lưu tất cả các danh sách này.

Giải pháp cho vấn đề này là chữ ký một lần. Xem xét lại giao thức trả tiền, ta thấy rằng Alice đã chọn một số ngẫu nhiên dùng một lần duy nhất δ cho mỗi đồng tiền, và nhận chữ ký mù của ngân hàng. Vì thế, δ là một hệ số mù quan trọng và được kết hợp với chữ ký mù. Nếu Alice cố tình sử dụng nó hơn một lần cho thông điệp đồng tiền khác m’, khóa bí mật của Alice sẽ bị tìm ra theo cách sau:
D’ = δ + c’Sk

Như vậy Alice sẽ không cố gắng sử dụng một đồng tiền nhiều hơn một lần. Nếu không, vào ngày Tv, hành vi “double-spending” sẽ bị phát hiện, và ngân hàng sẽ kết hợp với Bob để truy ra danh tính của Alice.




tải về 0.65 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương