Khóa luận 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ử

MỤC LỤC

LỜI CẢM ƠN 3

TÓM TẮT NỘI DUNG 4

MỤC LỤC 5

DANH MỤC CÁC KÝ KIỆU 8

DANH MỤC BẢNG BIỂU 9

MỞ ĐẦU 10

Chương 1. CÁC KHÁI NIỆM CƠ BẢN 12

1.1. MỘT SỐ KHÁI NIỆM TOÁN HỌC. 12

1.1.1. Khái niệm trong số học. 12

1.1.2. Khái niệm trong đại số. 15

1.1.3. Độ phức tạp. 17

1.2. MÃ HÓA. 20

1.2.1. Khái niệm về mã hóa. 20

1.2.2. Hệ mã hóa. 21

1.2.3. Mã hóa và giải mã. 21

1.2.4. Hệ mã hóa khóa công khai RSA. 22

1.3. CHỮ KÝ. 24

1.3.1. Giới thiệu về chữ ký. 24

1.3.2. Một số sơ đồ chữ ký . 26

1.4. CHIA SẺ BÍ MẬT CÓ THỂ XÁC MINH. 35

1.4.1. Sơ đồ chia sẻ bí mật. 35

1.4.2. Sơ đồ chia sẻ bí mật có thể xác minh. 36

1.5. HÀM BĂM. 37

1.5.1. Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau: 37

1.5.2. Tính chất của hàm băm. 37

 

Chương 2: GIỚI THIỆU VỀ TIỀN ĐIỆN TỬ 38

2.1. KHÁI NIỆM THANH TOÁN ĐIỆN TỬ. 38

2.1.1. Các mô hình thanh toán điện tử. 38

2.2. KHÁI NIỆM TIỀN ĐIỆN TỬ. 40

2.2.1. Mô hình giao dịch mua bán bằng tiền điện tử. 41

2.2.2. Cấu trúc của Tiền điện tử. 43

2.2.3. Tính chất của tiền điện tử: 44

Chương 3: MỘT SỐ VẤN ĐỀ PHÁT SINH KHI DÙNG TIỀN ĐIỆN TỬ 47

3.1. MỘT SỐ VẤN ĐỀ PHÁT SINH. 47

3.1.1. Vấn đề ẩn danh người sử dụng đồng tiền. 47

3.1.2. Vấn đề gian lận giá trị đồng tiền. 47

3.1.3. Vấn đề tiêu xài một đồng tiền hai lần. 48

3.2. GIẢI PHÁP CHO BÀI TOÁN “ẨN DANH” VÀ “CHỐNG GIAN LẬN GIÁ TRỊ ĐỒNG TIỀN”. 49

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

3.2.2. Lược đồ Chaum-Fiat-Naor. 51

3.2.3. Lược đồ Brand. 55

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

64

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

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

3.3.3. Lược đồ Fair tracing. 69

3.3.4. So sánh lược đồ KV và Fair tracing. 77

Chương 4: MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ 78

4.1. HỆ THỐNG DIGICASH. 78

4.1.1. Phương thức hoạt động. 79

4.4.2. Nhận xét. 81

4.2. HỆ THỐNG PAYWORD 82

4.2.1. Phương thức hoạt động. 82

4.2.2. Nhận xét. 84

4.3. VẤN ĐỀ DÙNG TIỀN ĐIỆN TỬ Ở VIỆT NAM. 85

KẾT LUẬN 88

DANH MỤC TÀI LIỆU THAM KHẢO 89

 

 

doc89 trang | Chia sẻ: netpro | Lượt xem: 1572 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Khóa luận 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ử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
mô hình “tiền điện tử” (Electronic Cash). Hiện tại hầu hết các dịch vụ mua bán hàng hoá trên mạng đều sử dụng hình thức thanh toán bằng thẻ tín dụng (Credit card). Người sử dụng cần nhập vào các thông tin: tên người sử dụng, mã số thẻ, ngày hết hạn của thẻ. Nhưng vì thẻ tín dụng được dùng phổ biến cho các thanh toán khác nhau, nên những thông tin trên có nhiều người biết. Thực tế hiện nay, các gian lận về thẻ trên Internet chiếm 6-7% tổng số các giao dịch thẻ ở các nước châu Âu, tỷ lệ này ở châu Á là 10%. Tại Việt nam, dịch vụ thẻ tín dụng mới sử dụng cuối năm 1996, nhưng đến nay, tỷ lệ các giao dịch gian lận trên tổng số các giao dịch là hơn 10%. Trên thế giới hiện nay, nhu cầu về thương mại điện tử rất phổ biến, nhưng các vấn đề hạ tầng trong thanh toán điện tử vẫn chưa được giải quyết tương xứng và đáp ứng được các đòi hỏi đặt ra. Việc nghiên cứu xây dựng các hệ thống thanh toán điện tử để đảm bảo an toàn thông tin trong các dịch vụ thương mại điện tử là một hướng nghiên cứu rất cần thiết hiện nay. Xây dựng các hệ thống thanh toán điện tử về mặt kỹ thuật chính là ứng dụng các thành tựu của lý thuyết mật mã. Các mô hình thanh toán sử dụng các giao thức mật mã được xây dựng để đảm bảo an toàn cho việc giao dịch thông tin giữa các bên tham gia. KHÁI NIỆM TIỀN ĐIỆN TỬ. Tiền điện tử (E-money, E-currency, Internet money, Digital money, Digital cash) là thuật từ vẫn còn mơ hồ và chưa được định nghĩa đầy đủ. Tuy nhiên có thể hiểu Tiền điện tử 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). Tiền điện tử cho phép người dùng có thể thanh toán khi mua hàng, hay sử dụng các dịch vụ, nhờ truyền đi các “dãy số” từ máy tính (hay thiết bị lưu trữ như Smart Card) này tới máy tính khác (Smart Card). 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 đó. Tiền điện tử có loại ẩn danh (identified e-money), có loại định danh (anonymous identified e-money). Tiền ẩn danh không tiết lộ thông tin định danh của người sử 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 hay chuyển cho người khác mà không để lạidấuvết. Có nhiều loại tiền ẩn danh, có loại ẩn danh đối với người bán, nhưng không ẩn danh với ngân hàng. Có loại ẩn danh hoàn toàn, ẩn danh với tất cả mọi người. Tiền điện tử định 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. Mỗi loại tiền trên lại chia thành 2 dạng: trực tuyến (online) và không trực tuyến (offline). Trực tuyến: nghĩa là cần phải tương tác với phía thứ ba để kiểm soát giao dịch. Không trực tuyến: nghĩa là có thể kiểm soát được giao dịch, mà không cần liên quan trực tiếp đến phía thứ ba (ngân hàng). Hiện nay có 2 hệ thống tiền điện tử chính: Thẻ thông minh (Smart Card) hay phần mềm. Tuy nhiên chúng có chung các đặc điểm cơ bản sau: Tính an toàn, tính riêng tư, tính độc lập, tính chuyển nhượng, tính phân chia. 2.2.1. Mô hình giao dịch mua bán bằng tiền điện tử. Ngân hàng Ông A Rút tiền Thanh toán Gửi tiền Ông B Hình 1: Mô hình giao dịch cơ bản của hệ thống Tiền điện tử. Mô hình giao dịch mua bán bằng tiền điện tử có 3 giao dịch với 3 đối tượng: Ngân hàng, Người trả tiền A (người mua), Người được trả tiền B (người bán). * Rút tiền: Ông A chuyển tiền từ tài khoản ở ngân hàng vào ‘Túi’ của mình (‘Túi’ có thể là Smart Card hay máy tính) . * Thanh toán: Ông A chuyển tiền từ ‘Túi’ của mình đến ‘Túi’ ông B. * Gứi tiền: Ông B chuyển tiền nhận được vào tài khoản của mình ở ngân hàng. Mô hình này có thể thực hiện bằng 2 cách: trực tuyến, không trực tuyến. Trực tuyến: Ông B liên lạc với ngân hàng để kiểm tra tính hợp lệ của đồng tiền trước khi thanh toán và phân phối hàng. Thanh toán và Gửi tiền được tiến hành đồng thời. Thanh toán trực tuyến cần thiết cho giao dịch có giá trị lớn. Hệ thống yêu cầu phải liên lạc với ngân hàng trong suốt mỗi lần giao dịch, vì thế chi phí nhiều hơn (tiền và thời gian). Không trực tuyến: ông B liên lạc với ngân hàng để kiểm tra tính hợp lệ của đồng tiền được tiến hành sau quá trình thanh toán. Nó phù hợp cho những giao dịch có giá trị thấp. TIỀN ĐIỆN TỬ (E-MONEY) Định danh (Identified) 0 trực tuyến (offline) trực tuyến (online) Ẩn danh (Anonymous) 0 trực tuyến (offline) trực tuyến (online) Hình 2: Mô hình phương thức thanh toán Cấu trúc của Tiền điện tử. Với mỗi hệ thống thanh toán điện tử, tiền điện tử có có cấu trúc và định dạng khác nhau nhưng đều bao gồm các thông tin chính như sau. Số sê-ri của đồng tiền: Giống như tiền mặt, số sê-ri được dùng để phânbiệt các đồng tiền khác nhau. Mỗi đồng tiền điện tử sẽ có một số sê-ri duy nhất. Tuy nhiên, khác với tiền mặt, số sê-ri trên 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. Giá trị của đồng tiền: Mỗi đồng tiền điện tử sẽ có giá trị tương đương với một lượng tiền nào đó. Trong tiền mặt thông thường, mỗi tờ tiền có một giá trị nhất định (1$, 10$,…), trong tiền điện tử, giá trị này có thể là một con số bất kỳ (9$, 17$,…). 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 giới hạn ngày hết hạn của đồng tiền. Một đồng tiền điện tử sau khi phát hành sẽ phải gửi lại ngân hàng trước thời điểm hết hạn. Các thông tin khác: Đây là các 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 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 khóa bí mật của mình. Bất kỳ người sử 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 khóa công khai của ngân hàng. Tính chất của tiền điện tử: Tiền điện tử cũng có một số đặc điểm tương tự như tiền giấy: dùng để biểu diễn một lượng tiền nào đó, có thể chuyển nhượng được, không để lại dấu vết, có tính ẩn danh, có thể mang đi mang lại và đặc biệt có thể đổi được. Tính an toàn (security). * Đảm bảo đồng tiền điện tử không bị sao chép, không bị sử dụng lại. * Sự giả mạo(forgery). Các gian lận thường gặp trong hệ thống thanh toán là sự giả mạo. Tương tự như tiền giấy, có hai loại giả mạo đối với tiền điện tử. + Giả mạo đồng tiền: tạo ra đồng tiền giả giống như thật, nhưng không có xác nhận rút tiền của ngân hàng. + Tiêu một đồng tiền nhiều lần: là sử dụng cùng một đồng tiền nhiều lần (thuậtngữ tương đương như double spending, hay multiple spending, hay repeat spending) Tính xác thực. Do luôn có sự giả mạo, nên ta cần phải xác lập được các mức khác nhau về cách đánh giá tính xác thực. + 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. Tính riêng tư ( privacy) Chưa thể định nghĩa một cách rõ ràng tính chất này của Tiền điện tử. Đối với một số người, tính riêng tư có nghĩa là sự bảo vệ chống lại “eavesdropping”. Đối với một số người khác như David Chaum, “tính riêng tư” có nghĩa là trong quá trình thanh toán, người trả 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. Tính chất này nhằm bảo vệ người dùng, khó có thể truy vết, chấp nối mối quan hệ giữa người dùng với các giao dịch hay chi tiêu mà người đó thực hiện. Tính chất này cũng có thể thấy rõ trong các giao dịch bằng tiền mặt. Sau khi thanh toán, việc chứng minh người nào đã sở hữu số tiền đó trước đây là rất khó. Tính độc lập (portability) Tính chất này có nghĩa 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. Tính chuyển nhượng được ( 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. Hình 3: Mô hình giao dịch có tính chuyển nhượng Tuy vậy, có một số vấn đề nảy sinh mà hệ thống vẫn cần phải giải quyết: Kích thước dữ liệu tăng lên sau mỗi lần chuyển nhượng. Vì vậy, cần giới hạn số lần chuyển nhượng tối đa cho phép. Phát hiện giả mạo và tiêu một đồng tiền nhiều lần có thể quá trễ, khi đồng tiền đã được chuyển nhượng nhiều lần. Người dùng có thể nhận ra đồng tiền của mình, nếu nó lại xuất hiện trong một lần giao dịch khác. 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. Tiền điện tử thực chất là một dãy số bị mã hóa, nên không phải hệ thống nào cũng thực hiện được việc chia dãy số này thành các đồng tiền có giá trị nhỏ hơn. Chương 3: MỘT SỐ VẤN ĐỀ PHÁT SINH KHI DÙNG TIỀN ĐIỆN TỬ MỘT SỐ VẤN ĐỀ PHÁT SINH. Tiền điện tử mang lại lợi ích không chỉ cho phía người dùng mà còn cho cả phía ngân hàng cũng như phía nhà cung cấp. Tiền điện tử làm tăng tốc độ cũng như hiệu quả của các phiên giao dịch. Tuy nhiên, để Tiền điện tử thực sự trở thành một phương thức thanh toán hữu hiệu, các nhà công nghệ, các nhà phát triển và các chuyên gia an toàn thông tin còn đứng trước nhiều thách thức. Hiện nay có nhiều vấn đề cần phải giải quyết với Tiền điện tử, trong đó có hai vấn đề lớn nhất là: vấn đề ẩn danh người sử dụng đồng tiền và vấn đề ngăn chặn người dùng tiêu một đồng tiền “điện tử” nhiều lần (double-spending). Vấn đề ẩn danh người sử dụng đồng tiền. Ẩn danh là đặc tính rất quan trọng của phương thức thanh toán bằng tiền điện tử. Tính ẩn danh được hiểu là người tiêu tiền phải được ẩn danh và không để lại dấu vết, nghĩa là ngân hàng không thể biết được: tiền giao dịch là của ai. Để giải quyết vấn đề trên người ta đã sử dụng kỹ thuật “chữ ký mù”. Đó là dạng đặc biệt của chữ ký điện tử, nó đòi hỏi người ký thực hiện ký vào thông điệp mà không biết nội dung của nó. Người ký sau này có thể nhìn thấy cặp chữ ký, thông điệp, nhưng không thể biết được là mình đã ký thông điệp đó khi nào và ở đâu, mặc dù anh ta có thể kiểm tra được chữ ký đó là đúng đắn. Nó cũng giống như ký khi đang nhắm mắt vậy! Với chữ ký mù của ngân hàng, họ 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ó. Vấn đề gian lận giá trị đồng tiền. Việc Ngân hàng dùng chữ ký “mù” để ký vào đồng tiền làm nảy sinh một vấn đề khác, đó là: ông A gian lận, gửi tới ngân hàng đồng tiền ghi giá trị 50 $ để xin chữ ký của họ trên đồng tiền này, nhưng lại báo với ngân hàng rằng đồng tiền đó chỉ ghi giá trị 1$. Như vậy ông A đã có đồng tiền 50 $ cùng với chữ ký của ngân hàng, nhưng tài khoản của ông chỉ bị khấu trừ 1 $. Ông A đã “thắng” đậm. 3.1.3. Vấn đề tiêu xài một đồng tiền hai lần. Tiền điện tử có dạng số hoá, nên dể dàng tạo bản sao từ bản gốc. Chúng ta không thể phân biệt được giữa đồng tiền “gốc” và đồng tiền “sao”. Kẻ gian có thể tiêu xài đồng tiền “sao” này nhiều lần mà không bị phát hiện. Hệ thống tiền điện tử được áp dụng vào thực tế, thì phải có khả năng ngăn ngừa hay phát hiện được trường hợp “Một đồng tiền tiêu xài hai lần” (double spending). Để giải quyết vấn đề này, đã có các giải pháp khác nhau tuỳ theo từng hệ thống tiền điện tử. GIẢI PHÁP CHO BÀI TOÁN “ẨN DANH” VÀ “CHỐNG GIAN LẬN GIÁ TRỊ ĐỒNG TIỀN”. Giới thiệu giải pháp. Tính ẩn danh là đặc tính quan trọng của phương thức thanh toán bằng tiền điện tử Như đã trình bày ở trên, để giải quyết vấn đề này, người ta dùng kỹ thuật chữ ký “mù”. Chữ ký “mù ”đảm bảo ngân hàng không có được bất cứ mối liên hệ nào giữa đồng tiền điện tử và chủ sở hữu của nó. Tùy theo từng hệ thống tiền điện tử, sẽ áp dụng những sơ đồ chữ ký “mù” khác nhau. Chẳng hạn, lược đồ Chaum-Fiat-Naor dùng sơ đồ chữ ký mù RSA, lược đồ Brand dùng sơ đồ chữ ký mù Schnorr. Mỗi lược đồ cũng có những ưu nhược điểm khác nhau. Mặc dù đạt được tính ẩn danh, nhưng giải pháp chữ ký mù làm nảy sinh một vấn đề: làm sao để ngăn chặn Alice đưa cho ngân hàng ký một đồng tiền không trung thực. Ví dụ: Alice yêu cầu rút 1$, nhưng lại đưa cho ngân hàng ký lên đồng tiền có giá trị 100$. Vì ngân hàng ký mù lên đồng tiền đó, nên không thể biết được nội dung của nó. Để giải quyết vấn đề này, có hai phương pháp được đưa ra. 1). Phương pháp thứ nhất: Ngân hàng dùng một bộ khóa (khoá ký, khóa kiểm tra chữ ký) khác nhau cho mỗi loại tiền. Nếu có k giá trị đồng tiền thì ngân hàng phải có k bộ khoá khác nhau. Ví dụ với đồng tiền giá trị 1$ thì dùng khoá k1, đồng tiền 50 $ thì dùng khoá k50. Như vậy nếu gian lận của ông A tạo ra đồng tiền 50$ với khóa k1, thì đó là đồng tiền không hợp lệ. 2). Phương pháp thứ hai: Để rút từ ngân hàng một đồng tiền giá trị T, ông A phải tạo k đồng tiền C1,C2,...,Ck cùng giá trị T. Chúng đều được gắn định danh, khác nhau duy nhất giữa chúng là số sê-ri. Ông A làm “mù” những đồng tiền này, và gửi chúng đến ngân hàng. Ngân hàng yêu cầu ông A cung cấp thông tin để khử “mù” k-1 đồng tiền bất kỳ. Ngân hàng khử “mù” và kiểm tra chúng. Nếu tất cả đều hợp lệ, ngân hàng ký “mù” lên đồng tiền còn lại Ci (là đồng tiền mà ngân hàng không khử “mù”), và gửi cho ông A. Ngân hàng có sự đảm bảo cao rằng đồng tiền còn lại Ci cũng là hợp lệ, vì nếu ông A gửi kèm đồng tiền không hợp pháp trong số k đồng tiền, thì xác suất bị phát hiện ít nhất là k-1/ k. Xác suất này càng cao nếu k càng lớn. Tuy nhiên nếu k quá lớn thì hệ thống xử lý phải trao đổi nhiều dữ liệu. Lược đồ Chaum-Fiat-Naor. Lược đồ. Lược đồ Chaum - Fiat - Naor, là lược đồ hệ thống tiền điện tử có tính ẩn danh. Để bảo đảm tính ẩn danh của đồng tiền, lược đồ sử dụng kỹ thuật “chữ ký mù” RSA. Trong đó khoá mật là a, khóa công khai là (n, b), hàm f , g không “va chạm”. Mỗi người dùng có số tài khoản u, ngân hàng sẽ giữ số đếm v liên quan đến số tài khoản này (đơn vị Ui tạo ra), ngân hàng dựa vào u để xác định kẻ gian lận. 1 2 5 4 3 Hình 4 : Khái quát lược đồ Chaum – Fiat – Naor 1). Khách hàng gửi đồng tiền ở dạng “mù” , yêu cầu Ngân hàng ký. 2). Ngân hàng gửi đồng tiền đã ký cho Khách hàng (đồng tiền vẫn còn “mù 3). Sau khi xóa “mù” đồng tiền, Khách hàng chuyển tiền cho Người bán hàng. 4). Người bán hàng chuyển giao hàng cho Khách 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 đồng tiền. 1/. Giao thức Rút tiền: 1). Ông A muốn rút từ ngân hàng một đồng tiền ẩn danh, thì phải tạo k đơn vị Ui và chuyển chúng đến ngân hàng. Mỗi Ui được tạo từ các số ngẫu nhiên ai , ci , di sao cho Ui độc lập và duy nhất, 1 £ i £ k. Cụ thể Å là phép XOR, Ù là phép nối. Ui = f (xi, yi ), xi = g ( ai , ci ), yi = g (ai Å (u Ù (v + i)), di ). 2). Ông A làm “mù” k đơn vị Ui thành Bi bằng tham số “mù” ngẫu nhiên ri và gửi chúng đến ngân hàng. Những tham số “mù” đó ngăn chặn ngân hàng kiểm tra tức thì nội dung những “đồng tiền” Ui. Cụ thể Bi =  Ui ri b mod n. 3). Ngân hàng chọn ngẫu nhiên k/2 đơn vị Ui để kiểm tra, 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. 5). 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ị Ui đã chọn, kiểm tra để đảm bảo rằng ông A không có gian lận. Nếu không có gian lận, ngân hàng mới ký “mù” lên những đơn vị Uj  còn lại (đó là đơn vị Uj mà ngân hàng không xoá “mù, chính là Bj )và gửi cho ông A. Chữ ký trên Bj là Bja mod n. Chú ý j ngẫu nhiên ≤ k, chỉ dùng k/2 phần tử Bj Sau đó ngân hàng trừ số tiền tương ứng vào tài khoản của ông A. 6). Ông A xoá “mù” đơn vị Bj đã được ngân hàng ký, bằng cách chia Bj a cho rj. Lúc này ông A có đồng tiền điện tử với giá trị thật sự. T = Uj a mod n = f (xj, yj) a mod n 2/. Giao thức 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 z1 z2… z k/2 và gửi nó đến ông A. 3). Ông A phản hồi lại tuỳ theo từng trường hợp sau: + Nếu zi = 1 thì ông A sẽ gửi đến ông B: ai, ci và yi + Nếu zi = 0 thì ông A sẽ gửi đến ông B: xi, ai (u (v + i)) và di. 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/. Giao thức 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 đồng tiền này không bị tiêu xài trước đó. 4). Ngân hàng nhập vào cơ sở dữ liệu những đồng tiền đã tiêu xài, ghi lại chuỗi nhị phân zi và những phản hồi tương ứng từ ông A. Điều này giúp phát hiện kẻ tiêu xài hai lần. 5). Ngân hàng ghi T vào tài khoản của Ông B. 3.2.2.2. Phân tích – đánh giá. Lược đồ Chaum - Fiat - Naor là lược đồ hệ thống tiền điện tử có tính ẩn danh. 1). Để bảo đảm tính “ẩn danh” của đồng tiền, lược đồ dùng “chữ ký mù” RSA. 2). Để ngăn ngừa người rút tiền khai “gian lận giá trị” đồng tiền, lược đồ đã sử dụng giao thức “Cắt và chọn” Cut and choose). Ngân hàng chọn ngẫu nhiên k/2 đơn vị Ui để kiểm tra, nếu không có gian lận xảy ra thì mới ký “mù” lên các đơn vị Uj còn lại. Cũng như lý luận ở trên về giao thức “Cắt và chọn”, ngân hàng có sự đảm bảo cao rằng đồng tiền còn lại Uj cũng là hợp lệ, nếu k càng lớn. 3). Để ngăn chặn việc ‘tiêu xài hai lần’ một đồng tiền, lược đồ 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. Nếu nó được “tiêu xài hai lần”, thì thông tin định danh trên hai lần “tiêu xài” sẽ kết hợp lại, để truy vết tìm ra kẻ gian lận. Nếu ông A tiêu tiền T hai lần, thì khả năng ngân hàng có thể lấy được cả hai tham số ai và ai Å (u Ù (v + i)) để 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ó cặp bít khác nhau trong 2 chuỗi z1, z2,…,zk/2 và z’1, z’2,…,z’k/2 là rất cao. Chỉ cần có một cặp bit tương ứng zi và z’i khác nhau, là ngân hàng có thể có đủ thông tin định danh của ông A. Xác suất để 2 chuỗi zi và z’i trùng nhau là , tức là ngân hàng không có đủ thông tin để tìm ra được định danh của ông A. Như vậy nếu chọn k đủ lớn thì khả năng hai chuỗi zi và z’i trùng nhau có thể xem là khó thể xảy ra. 4). Chi phí. Trong lược đồ Chaum-Fiat-Naor chi phí (thời gian, tính toán, tiền bac…) phụ thuộc vào độ lớn của k. Tại giao thức rút tiền, ông A gửi k packet đến ngân hàng, tuy nhiên, ngân hàng chỉ phải gửi trả lại 1 packet. Việc tiến hành làm “mù” và “xóa mù” k packet làm tăng sự tính toán, trao đổi và thời gian lưu trữ. Tại giao thức thanh toán, sau khi ông A gửi tiền đến ông B. Ông B gửi một chuỗi nhị phân tới ông A, sau đó ông A phải gửi k/2 phản hồi khác nhau. Điều này làm tăng thời gian và sự tính toán, liên lạc và chi phí lưu trữ. 5). Tấn công. Đây là phương pháp dựa vào kỹ thuật RSA, vì vậy, tất cả những cách tấn công vào RSA đều có thể tấn công vào lược đồ này. Tuy nhiên, về mặt lý thuyết, có khả năng ông A có thể tránh được sự phát hiện của ngân hàng khi tiêu xài hai lân. Điều này xảy ra khi ông A và ông C cùng hợp tác với nhau, cụ thể như sau: Ông A sau khi thực hiện một giao dịch thanh toán với ông B, sẽ gửi những tiền đã tiêu tới ông C và mô tả cho ông C quá trình giao dịch với ông B. Như vậy, ngân hàng sẽ nhận được thông tin giao dịch từ ông B và ông C giống như nhau. Lúc này, ngân hàng sẽ không có khả năng xác định được định danh của ông A. Lược đồ Brand. Lược đồ được xây dựng dựa trên chữ ký Shnorr và bài toán đại diện trong nhóm cấp nguyên tố. Gq là nhóm con cấp q của Zp*, trong đó p,q là số nguyên tố thỏa mãn q|(p-1) Ngân hàng khởi tạo 5 thành phần: g, h, g1, g2, d. + (g, h) Î Gq (generator - tuple): khóa công khai của ngân hàng được dùng trong sơ đồ ký ở giao thức rút tiền, x là khóa bí mật của ngân hàng. x = logg h (h = gx ) + (g1, g2): bộ phần tử sinh của Gq. + Phần tử sinh giả d ( khác g1 và g2), đảm bảo rằng định danh của người dung sẽ không bị phát hiện trong giao thức thanh toán. Lược đồ. 1/. Khởi tạo tài khoản. + Alice khởi tạo ngẫu nhiên u1, u2 Î Zq. Tính I = g1u1 g2u2, chuyển I đến ngân hàng + Ngân hàng lưu I = g1u1 g2u2 cùng định danh của Alice và số tài khoản, nhưng ngân hàng không biết u1 và u2. +Trường hợp Alice tiêu xài đồng tiền hai lần, ngân hàng có thể tìm ra (u1, u2) và tính được I, từ I tìm ra định danh kẻ gian lận. u1, u2 Î Zq I = g1u1 g2u2 I Định danh Số tài khoản I Hình 5: Quá trình khởi tạo tài khoản của lược đồ Brand 2/. Chứng minh đại diện tài khoản: Khi Alice rút tiền đầu tiên phải xưng danh với ngân hàng, bằng cách chứng minh với ngân hàng là sẽ rút tiền trong tài khoản mà Alice đang sở hữu. Phương pháp được dùng ở đây là “Chứng minh tri thức của một đại diện”. Alice phải chứng minh cho Ngân hàng rằng: Alice biết u1 và u2 cho Ngân hàng. Quá trình thực hiện được tiến hành như sau: 1. Alice chọn ngẫu nhiên w1 và w2 Î Zq và gửi y = g1w1 g2w2 đến Ngân hàng. 2. Ngân hàng thử thách để kiểm tra có đúng Alice sở hữu tài khoản không, bằng cách chọn ngẫu nhiên Cr ÎZq và gửi đến Alice. 3. Alice tính r1 = w1 + Cru1 và r2 = w2 + C2u2 mod q, gửi đến Ngân hàng. 4. Ngân hàng chấp nhận xác thực là đúng khi và chỉ khi. yICr = g1r1 g2r2 trong đó I = g1u1 g2u2 Bởi vì, nếu Alice thực sự là chủ sở hữu tài khoản, thì phải biết u1, u2 (là 2 giá trị khởi tạo tài khoản ban đầu) và nếu biết được chúng thì : yICr ≡ g1w1 g2w2 (g1u1 g2u2 ) ≡ g1w1+u1Cr g2w2 + u2Cr ≡ g1r1 g2r2 Alice (Người chứng minh) Ngân hàng ( người kiểm tra) Biết u1 và u2 là đại diện của I = g1u1 g2u2 Chỉ biết I, g1,g2. Không biết u1 và u2 Tạo 2 số ngẫu nhiên w1 và w2 ÎZq Tính y = g1w1 g2w2 gửi đến Ngân hàng Nhận y, chọn ngẫu nhiên Cr ÎZq Gửi thử thách Cr đến Alice Nhận Cr, tính: r1 = w1 + Cru1 và r2 = w2 + C2u2 mod q Gửi đến Ngân hàng Nhận r1, r2, kiểm tra: yICr = g1r1 g2r2 Nếu thỏa mãn: ngân hàng chấp nhận Alice biết đại diện của I ( có nghĩa là biết u1, u2) Hình 6 : Quá trình chứng minh đại diện tài khoản của lược đồ Brand. 3/. Giao thức rút tiền. Nếu xác thực được chấp nhận, quá trình rút tiền được tiến hành như sau: + Ngân hàng trừ một lượng tiền tương ứng từ tài khoản của Alice. Ngân hàng và Alice cùng tính được m = Id ( d là phần tử sinh và công khai). Ngân hàng gửi Alice : z = mx, a = gw , b = mw (w được chọn ngẫu nhiên từ Zq, x là khóa bí mật của Ngân hàng) + Alice chọn 3 số ngẫu nhiên s ÎZq*; u,v ÎZq để làm “mù” m, z, a, b. m’ = ms = (Id)s = g1u1s g2u2s ds z’ = zs ; a’ = au gv ; b’ = bsu msv Tách ngẫu nhiên: u1s = (x1 + x2) mod q, u2s = ( y1 + y2) mod q với s = z1 + z2 mod q Tính A = g1x1 g2y1 dz1 ; B = m’/A = g1x2 g2y2 dz2 Alice dùng hàm băm H tính c’ = H( m’, z’, a’, b’, A). Làm “mù” c’ bằng c = c’/u mod q, gửi c đến Ngân hàng. + Ngân hàng ký trên c được r = xc + w mod q, gửi r cho Alice, ghi có vào khoản của Alice. + Alice chấp nhận nếu kiểm tra thấy gr = hca và mr = zcb và tính r’ = ru + v modq. + Lúc này, Alice có đồng tiền điện tử thực sự được đại diện bởi: A, B, Sign(A, B) với Sign ( A, B) = (z’, a’, b’,r’) là chữ ký của Ngân hàng. Xác định giá trị đồng tiền: Làm thế nào để có thể biết được giá trị của từng đồng tiền? Có hai cách để giải quyết vấn đề này: Cách 1: Ngân hàng sử dụng một khóa công khai cho mỗi loại tiền. Nghĩa là, nếu có k đồng tiền khác biệt thì ngân hàng phải công khai k khóa công khai sau: (g1 , h1)….. (gk , hk) Cách 2: Chọn k phần tử sinh giả (dummy generator) khác nhau được công khai d1,….., dk. Mỗi phần tử sinh được dùng để biểu hiện giá trị của mỗi đồng tiền. Alice Ngân hàng I = g1u1 g2u2 x: khóa bí mật (g, h): khóa công khai ( h= gx) Quá trình chứng minh đại diện z, a, b mÎZq, m = Id z = mx, a = gw , b = mw m = Id = g1u1g2u2 d, s ÎZq* m’ = ms = (Id)s = g1u1s g2u2s ds z’ = zs Tách ngẫu nhiên u,v ÎZq, a’ = au gv , b’ = bsu msv c’ = H( m’, z’, a’, b’, A). c = c’/u mod q c r = xc + w mod q Kiểm tra: gr = hca và mr = zcb Tính r’ = ru + v modq. Đồng tiền: A, B, Sign(A, B) với Sign ( A, B) = (z’, a’, b’,r’) Hình 7: Giao thức rút tiền trong lược đồ Brand 4/. Giao thức thanh toán. Khi Alice muốn mua hàng hay sử dụng dịch vụ của Bob, trước tiên Alice cần phải gửi tiền cho Bob, quá trình thanh toán được thực hiện theo những bước sau. 1. Alice gửi tiền (A, B, Sign(A, B)) đến Bob. A = g1x1 g2y1 dz1 B = m’/A = g1x2 g2y2 dz2 Sign ( A, B) = (z’, a’, b’,r’) 2. Đầu tiên, Bob kiểm tra xem AB # 1 hay không. Nếu AB = 1, có nghĩa: (g1x1g2y1 dz1 ) (g1x2g2y2 dz2 ) = 1 à g1x1 + x2g2 y1 + y2 d z1 + z2 = 1 à s = 0 Vậy, Ngân hàng không xác định được u1, u2 trong trường hợp “double - spending” Sau đó, Bob kiểm tra chữ ký của Ngân hàng sign(A, B) có hợp lệ không. Nếu đúng, Bob thử thách Alice bằng cách gửi c ÎZq*, c không cần thiết là số ngẫu nhiên nhưng phải đảm bảo duy nhất trong mỗi lần

Các file đính kèm theo tài liệu này:

  • docNghiê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ử.doc