1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU MỘT SỐ BÀI TOÁN TRONG HỆ THỐNG TIỀN ĐIỆN TỬ

119 544 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 119
Dung lượng 1,63 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ HÀ THỊ THANH HUYỀN NGHIÊN CỨU MỘT SỐ BÀI TOÁN TRONG HỆ THỐNG TIỀN ĐIỆN TỬ LUẬN VĂN THẠC SĨ Hà Nội - 2008... Hầu hết mọi người đều mong

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

HÀ THỊ THANH HUYỀN

NGHIÊN CỨU MỘT SỐ BÀI TOÁN TRONG HỆ THỐNG TIỀN ĐIỆN TỬ

LUẬN VĂN THẠC SĨ

Hà Nội - 2008

Trang 2

MỤC LỤC

LỜI CAM ĐOAN 1

MỤC LỤC 2

DANH MỤC CÁC KÝ HIỆU 7

DANH MỤC BẢNG BIỂU 8

MỞ ĐẦU 9

CHƯƠNG 1 CÁCKHÁINIỆMCƠ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) Số nguyên tố và nguyên tố cùng nhau 12

2) Đồng dư thức 12

3) Phần tử nghịch đảo 14

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

1) Khái niệm nhóm 15

2) Khái niệm nhóm con 15

3) Khái niệm nhóm Cyclic 16

4) Bài toán đại diện trong nhóm cấp nguyên tố 16

1.1.3 Khái niệm về độ phức tạp 17

1) Khái niệm bài toán 17

2) Độ phức tạp dữ liệu vào của bài toán 17

3) Chi phí của thuật toán đơn định tính theo một bộ dữ liệu vào 17

4) Độ phức tạp của thuật toán đơn định 18

5) Phân lớp bài toán theo độ phức tạp 19

1.2 MÃ HOÁ 21

1.2.1 Khái niệm mã hoá 21

Trang 3

1.2.2 Hệ mã hoá khoá công khai RSA 23

1.3 KÝ SỐ 24

1.3.1 Giới thiệu về ký số 24

1.3.2 Một số sơ đồ ký số 25

1) Sơ đồ ký số RSA 25

2) Sơ đồ ký số Schnorr 26

1.3.3 Chữ ký mù 27

1) Giới thiệu về chữ ký mù 27

2) Chữ ký mù RSA 29

3) Chữ ký mù Schnorr 31

1.3.4 Chữ ký nhóm và ứng dụng 32

1) Sơ đồ chữ ký nhóm dạng 1 32

2) Sơ đồ chữ ký nhóm dạng 2 33

3) Sơ đồ chữ ký nhóm dạng 3 (Jan Camenish và Stadler) 33

1.3.5 Chữ ký nhóm mù và ứng dụng 35

1.3.6 Chữ ký dùng một lần 37

1.3.7 Chữ ký không thể chối bỏ 38

1) Sơ đồ chữ ký không thể chối bỏ của Chaum 39

2) Ví dụ 40

1.3.8 Chia sẻ bí mật có thể xác minh 41

1) Sơ đồ chia sẻ bí mật 41

2) Sơ đồ chia sẻ bí mật có thể xác minh 42

1.3.9 Hàm băm 43

CHƯƠNG 2 GIỚITHIỆUVỀTIỀNĐIỆNTỬ 44

2.1 KHÁI NIỆM TIỀN ĐIỆN TỬ 44

Trang 4

2.1.1 Cấu trúc tiền điện tử 44

2.1.2 Hai loại tiền điện tử 45

2.1.3 Mô hình giao dịch 46

2.1.4 Hai hình thức thanh toán 48

2.2 TÍNH CHẤT CỦA TIỀN ĐIỆN TỬ 49

2.2.1 Tính an toàn (security) 49

2.2.2 Tính riêng tư (privacy) 50

2.2.3 Tính độc lập (portability) 50

2.2.4 Tính chuyển nhượng được (transferability) 50

2.2.5 Tính phân chia được (divisibility) 51

CHƯƠNG 3 MỘTSỐBÀITOÁNPHÁTSINHKHIDÙNGTIỀNĐIỆNTỬ 52 3.1 MỘT SỐ BÀI TOÁN PHÁT SINH 52

3.2 GIẢI PHÁP CHO BÀI TOÁN “TIÊU NHIỀU LẦN MỘT ĐỒNG TIỀN” (DOUBLE-SPENDING) 54

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

3.2.2 Lược đồ truy vết gian lận KV 55

1) Chuẩn bị 55

2) Giao thức rút tiền 55

3) Kiểm tra chữ ký 56

4) Phân tích lược đồ KV 58

3.2.3 Lược đồ Fair tracing 60

1) Chuẩn bị: 60

2) Giao thức rút tiền 61

3) Giao thức trả tiền 64

4) Giao thức gửi tiền và kiểm tra chữ ký 64

Trang 5

5) Phân tích lược đồ Fair tracing 65

3.2.4 So sánh lược đồ KV và lược đồ Fair tracing 68

3.3 GIẢI PHÁP CHO BÀI TOÁN ẨN DANH VÀ 70

CHỐNG GIAN LẬN GIÁ TRỊ ĐỒNG TIỀN 70

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

3.3.2 Lược đồ Chaum-Fiat-Naor 72

1) Giao thức Rút tiền 74

2) Giao thức Thanh toán 75

3) Giao thức Gửi 75

4) Đánh giá 75

5) Chi phí 76

6) Tấn công 76

3.3.3 Lược đồ Brand 77

1) Khởi tạo tài khoản 77

2) Giao thức rút tiền 79

3) Giao thức thanh toán 81

4) Giao thức Gửi 82

5) Đánh giá 83

6) Tấn công 85

CHƯƠNG 4 XÂY DỰNG THỬ NGHIỆM HỆ THỐNG TIỀN ĐIỆN TỬ DỰA TRÊNLƯỢCĐỒBRAND 86

4.1 MÔ TẢ BÀI TOÁN NGHIỆP VỤ 86

1) Khởi tạo tài khoản (Open account) 87

2) Chứng minh đại diện tài khoản (Authenticate) 87

3) Rút tiền (Withdraw Money) 87

4) Thanh toán (Payment Money) 87

5) Gửi tiền (Deposit Money) 87

Trang 6

6) Phát hiện “double-spending” 87

4.2 MÔ HÌNH NGHIỆP VỤ 88

4.2.1 Biểu đồ ngữ cảnh 88

4.2.2 Biểu đồ phân rã chức năng 89

1) Hệ thống thanh toán dành cho khách hàng 89

2) Hệ thống thanh toán dành cho Ngân hàng 91

4.3 MÔ HÌNH KHÁI NIỆM / LOGIC 93

4.3.1 Hệ thống thanh toán dành cho khách hàng 93

1) Biểu đồ luồng dữ liệu mức 0 93

2) Các biểu đồ luồng dữ liệu mức 1 94

4.3.2 Hệ thống thanh toán dành cho Ngân hàng 98

1) Biểu đồ luồng dữ liệu mức 0 98

2) Các biểu đồ luồng dữ liệu mức 1 99

4.3.3 Biểu đồ quan hệ thực thể 102

1) Hệ thống thanh toán cho khách hàng 102

2) Hệ thống thanh toán dành cho Ngân hàng 103

4.3.4 Một số giao diện chính 104

1) Mở tài khoản 104

2) Rút tiền 104

3) Thanh toán 105

4) Gửi tiền 105

4.3.5 Trích dẫn một số phần mã nguồn 106

KẾT LUẬN 117

DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 118

TÀI LIỆU THAM KHẢO 119

Trang 7

DANH MỤC CÁC KÝ HIỆU

Shamir, Len Adlemon năm 1977

Directory)

4 VSS Sơ đồ chia sẻ bí mật có thể xác minh - Verify Secret

Trang 8

DANH MỤC BẢNG BIỂU

Hình 1 Mô hình giao dịch cơ bản của hệ thống tiền điện tử .46

Hình 2 Mô hình giao dịch có tính chuyển nhƣợng .51

Hình 3 Tóm tắt lƣợc đồ KV 57

Hình 4 Giai đoạn chuẩn bị trong lƣợc đồ Fair tracing .60

Hình 5 Giao thức rút tiền trong lƣợc đồ Fair tracing .63

Hình 6 Giai đoạn chuẩn bị với TTP .67

Hình 7 Mô hình thanh toán trong lƣợc đồ Chaum – Fiat - Naor .73

Hình 8 Quá trình khởi tạo tài khoản 77

Hình 9 Quá trình chứng minh đại diện tài khoản 78

Hình 10 Giao thức rút tiền .80

Hình 11 Giao thức thanh toán 82

Hình 12 Mô hình hoạt động của hệ thống thanh toán tiền điện tử .86

Hình 13 Biểu đồ ngữ cảnh của hệ thống .88

Hình 14 Biểu đồ phân rã chức năng trong hệ thống khách hàng .89

Hình 15 Biểu đồ phân rã chức năng trong hệ thống Ngân hàng .91

Hình 16 Biểu đồ luồng dữ liệu mức 0 trong hệ thống khách hàng .93

Hình 17 Biểu đồ luồng dữ liệu mức 1 cho chức năng Open Account .94

Hình 18 Biểu đồ luồng dữ liệu mức 1 cho chức năng Withdraw Money .95

Hình 19 Biểu đồ luồng dữ liệu mức 1 cho chức năng Payment Money .96

Hình 20 Biểu đồ luồng dữ liệu mức 1 cho chức năng Deposit Money .97

Hình 21 Biểu đồ luồng dữ liệu mức 0 trong hệ thống Ngân hàng 98

Hình 22 Biểu đồ luồng dữ liệu mức 1 cho chức năng Manage Customer 99

Hình 23 Biểu đồ luồng dữ liệu mức 1 cho chức năng Create Money 100

Hình 24 Biểu đồ luồng dữ liệu mức 1 cho chức năng Payment Money 101

Hình 25 Biểu đồ quan hệ thực thể trong hệ thống thanh toán cho khách hàng 102

Hình 26 Biểu đồ quan hệ thực thể trong hệ thống thanh toán cho Ngân hàng 103

Trang 9

MỞ ĐẦU

1 Tính cấp thiết của luận văn

Sự mở rộng và phổ biến của Internet đã tạo ra phương thức mua bán hàng qua mạng (thương mại điện tử) Nó tác động mạnh mẽ đến lĩnh vực ngân hàng truyền thống, làm xuất hiện các sản phẩm mới có liên quan đến ngân hàng như thẻ tín dụng, giao dịch ngân hàng, qua điện thoại di động, ngân hàng tự phục vụ và

tiền điện tử hay ví điện tử cũng đang trở thành hiện thực Hầu hết mọi người đều

mong đợi một ngày nào đó tiền giấy sẽ không còn là phương thức thanh toán trong các phiên giao dịch nữa Trên toàn thế giới, tiền điện tử đã và đang được ứng dụng thành công, đem lại những lợi ích lớn lao cho người dùng

Tuy nhiên trong thực tế, quá trình sử dụng tiền điện tử đã nảy sinh một số vấn đề đáng quan tâm như: người dùng gian lận giá trị đồng tiền, tiêu nhiều lần một đồng tiền hay khó xác định được danh tính của người sở hữu đồng tiền

Chính vì vậy, luận văn đi vào nghiên cứu một số bài toán trong hệ thống tiền điện tử, phân tích và nêu ra các giải pháp phù hợp

Từ đó, xây dựng mô phỏng một hệ thống thanh toán bằng tiền điện tử dựa trên lược đồ Brand

2 Mục đích của luận văn

Mục đích của luận văn là nghiên cứu và đưa ra những giải pháp khoa học cho các bài toán phát sinh trong quá trình sử dụng tiền điện tử

Từ đó, luận văn so sánh, đánh giá ưu nhược điểm của các giải pháp, chỉ rõ giải pháp nào sẽ đạt hiệu quả tối ưu đối với từng loại tiền điện tử

3 Đối tượng nghiên cứu

Đối tượng nghiên cứu của luận văn là các bài toán phát sinh khi dùng tiền điện tử

Trang 10

5 Phương pháp nghiên cứu

Luận văn nghiên cứu và tổng kết rõ cấu trúc, tính chất cũng như các loại tiền điện tử đã và đang được sử dụng trên thế giới Từ đó, phân tích để thấy rõ các bài toán phát sinh như thế nào trong quá trình dùng tiền điện tử Dưạ trên các kết quả

đó, luận văn nêu các giải pháp tương ứng với từng bài toán cụ thể

Bên cạnh đó, luận văn kết hợp giữa nghiên cứu lí thuyết và xây dựng hệ thống minh hoạ để kiểm chứng cho giải pháp được đưa ra

6 Ý nghĩa khoa học và thực tiễn của luận văn

Luận văn không chỉ nghiên cứu một cách khoa học, tổng quát các bài toán nảy sinh khi dùng tiền điện tử từ đó đưa ra các giải pháp phù hợp mà còn xây dựng một hệ thống tiền điện tử mô phỏng cho một trong các giải pháp đã đưa ra Như vậy, luận văn đã đạt được ý nghĩa khoa học và khẳng định tính thực tiễn của mình

7 Kết cấu luận văn

Luận văn gồm 4 chương

Chương 1: Các khái niệm cơ bản

Trình bày một số khái niệm toán học và lý thuyết cơ bản về mật mã học Chương 2: Giới thiệu về tiền điện tử

Trình bày khái niệm về tiền điện tử, cấu trúc của một đồng tiền điện tử, mô hình giao dịch cũng như các tính chất của tiền điện tử

Trang 11

Chương 3: Một số bài toán phát sinh khi dùng tiền điện tử

Nêu các bài toán phổ biến có thể phát sinh trong quá trình sử dụng tiền điện

tử như: bài toán ẩn danh người dùng, bài toán gian lận giá trị đồng tiền và bài toán double-spending

Đối với từng bài toán, nêu ra các giải pháp, phân tích rõ ưu, nhược điểm, có

sự so sánh đối chiếu giữa các giải pháp

Chương 4: Xây dựng thử nghiệm hệ thống tiền điện tử dựa trên lược đồ Brand

Trang 12

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

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

(Tham khảo tài liệu [1])

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

1) Số nguyên tố và nguyên tố cùng nhau

Số nguyên tố là số chỉ chia hết cho 1 và chính nó

Trang 13

Tính chất của đồng dƣ:

Cho a, a1, b, b1, c  Z Ta có các tính chất sau:

 a  b mod n khi và chỉ khi a và b có cùng số dƣ khi chia cho n

 Tính phản xạ: a  a mod n

 Tính đối xứng: Nếu a  b mod n thì b  a mod n

 Tính giao hoán: Nếu a  b mod n và b  c mod n thì a  c mod n

 a  a1 mod n, b  b1 mod n thì a + b  a1 + b1 mod n và ab  a1b1 mod n

Tập Zn = {0, 1, 2, 3, ,n-1} đƣợc gọi là tập thặng dƣ đầy đủ theo mod n, vì mọi số nguyên bất kỳ đều có thể tìm đƣợc trong Zn một số đồng dƣ với mình (theo mod n)

Trang 14

3) Phần tử nghịch đảo

Định nghĩa:

Cho a  Zn Nghịch đảo của a theo modulo n là một số nguyên x  Zn sao cho ax  1 (mod n) Nếu tồn tại thì đó là giá trị duy nhất và a được gọi là khả nghịch, ký hiệu x là a-1

Tính chất:

Cho a, b  Zn Phép chia của a cho b theo modulo n là tích của a và b-1 theo modulo n, và chỉ được xác định khi b có nghịch đảo theo modulo n

Cho a  Zn, a khả nghịch khi và chỉ khi gcd(a, n) = 1

Giả sử d = gcd (a, n) Phương trình đồng dư ax  b mod n có nghiệm x khi và chỉ khi d chia hết cho b, trong trường hợp các nghiệm d nằm trong khoảng 0 đến

n - 1 thì các nghiệm đồng dư theo modulo n/d

Ví dụ:

Trang 15

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

x’  G: x’ * x = x * x’ = e

Cấp của nhóm:

Ta gọi số các phần tử trong một nhóm là cấp của nhóm đó

Ta ký hiệu  ( ) n là số các số nguyên dương bé hơn n và nguyên tố với n Như vậy, nhóm Z n* có cấp  ( ) n và nếu p là số nguyên tố thì nhóm Z*p có cấp p-1

Cấp của phần tử:

n

gZ có cấp m, nếu m là số nguyên dương bé nhất

gn

2) Khái niệm nhóm con

Nhóm con là bộ các phần tử ( S, * ) thỏa mãn các tính chất sau:

S  G, phần tử trung gian e  S

x, y  S => x * y  S

Trang 16

3) Khái niệm nhóm Cyclic

Nhóm Cyclic là nhóm mà mọi phần tử x của nó đƣợc sinh ra từ một phần tử đặc biệt

g  G Phần tử này đƣợc gọi là phần tử sinh (nguyên thủy), tức là:

Với  x  G:  n  N mà gn = x

Ví dụ: (Z+

, +) là một nhóm cyclic có phần tử sinh là 1

4) Bài toán đại diện trong nhóm cấp nguyên tố

Cho G là nhóm nguyên tố, bộ phần tử sinh (g1, g2,…,gk) (k  2, gi  G) và phần tử h cố định

Tìm đại diện của h, ví dụ nhƣ:

1

i k a i i

  (a

i là các số nguyên) Bài toán tìm đại diện của h rất khó, trừ khi ta đã có (g1, g2,…,gk) và (a1, a2,…,ak)

Trang 17

1.1.3 Khái niệm về độ phức tạp

(Tham khảo tài liệu [3])

1) Khái niệm bài toán

Bài toán thường được cho dưới dạng:

Input: Các dữ liệu vào của bài toán

Output: Các dữ liệu ra (Kết quả giải quyết yêu cầu của bài toán)

Chú ý: Không mất tính tổng quát, trong lý thuyết độ phức tạp thuật toán, ta giả thiết

các dữ liệu là số dương

2) Độ phức tạp dữ liệu vào của bài toán

Có hai quan niệm về Độ phức tạp Dữ liệu vào của bài toán:

Quan niệm 1: ứng với mô hình ứng dụng

Độ phức tạp dữ liệu vào của bài toán được hiểu:

Số luợng dữ liệu vào của bài toán (kích thước dữ liệu vào của bài toán)

Đây là quan niệm đơn giản, chưa chính xác

Quan niệm 2: ứng với mô hình lý thuyết

Độ phức tạp dữ liệu vào của bài toán được hiểu :

Tổng độ dài mọi dữ liệu vào của bài toán, đã được mã hoá theo cách nào đó

(Tức là tổng dung lượng nhớ để ghi các dữ liệu vào của bài toán)

Đây là quan niệm chính xác, chi tiết

3) Chi phí của thuật toán đơn định tính theo một bộ dữ liệu vào

Nói đến chi phí phải trả cho một quá trình tính toán người ta thường quan

tâm tới chi phí về thời gian và bộ nhớ

a/ Chi phí thời gian của một quá trình tính toán là thời gian cần thiết để thực hiện quá trình tính toán đó

* Với thuật toán tựa Algol:

Chi phí thời gian của một quá trình tính toán là số các phép tính cơ bản cần thực

hiện trong quá trình tính toán đó từ khi nhập dữ liệu vào đến khi cho ra kết quả

Trang 18

* Với máy Turing:

Chi phí thời gian của một quá trình tính toán là số bước chuyển hình trạng từ hình trạng đầu q0 đến hình trạng kết thúc qn

b/ Chi phí bộ nhớ của một quá trình tính toán là dung lượng nhớ cần thiết để thực hiện quá trình tính toán đó

* Với thuật toán tựa Algol:

Tổng số: biến vào, biến ra, biến phụ cần dùng trong quá trình tính toán

* Với máy Turing:

Số ô nhớ cần dùng trên băng nhớ tuyến tính dùng trong quá trình tính toán

4) Độ phức tạp của thuật toán đơn định

a/ Độ phức tạp trung bình

* Là tổng các chi phí về bộ nhớ và thời gian chia cho tổng số các đầu vào

b/ Độ phức tạp cực đại (trong trường hợp xấu nhất)

* Độ phức tạp về bộ nhớ trong trường hợp xấu nhất:

LA(n) = max{ l A (e) | |e|  n}

Tức là: Lấy chi phí lớn nhất về bộ nhớ

* Độ phức tạp thời gian trong trường hợp xấu nhất:

TA(n) = max { t A (e) | |e|  n}

Tức là: Lấy chi phí lớn nhất về thời gian

Trang 19

5) Phân lớp bài toán theo độ phức tạp

Lớp bài toán P, NP

Với một bài toán, có hai khả năng xảy ra: đã có lời giải, chưa có lời giải

Với bài toán đã có lời giải, có hai trường hợp xảy ra:

+ Giải được bằng thuật toán

+ Không giải được bằng thuật toán

Với bài toán giải được bởi thuật toán cũng chia thành hai loại:

+ Thực tế giải được: “Dễ giải”

Có nghĩa, thuật toán được xử lý trong thời gian đủ nhanh, thực tế cho phép,

đó là thuật toán có độ phức tạp thời gian đa thức

+ Thực tế khó giải: “Khó giải”

Có nghĩa, thuật toán phải xử lý trong nhiều thời gian, thực tế khó chấp nhận,

đó là thuật toán có độ phức tạp thời gian là trên đa thức (hàm mũ)

P: là lớp bài toán giải được bằng thuật toán đơn định, đa thức (Polynomial)

NP : là lớp bài toán giải được bằng thuật toán không đơn định, đa thức

 P  NP (hiện nay người ta chưa biết P ≠ NP)

Lớp bài toán NP- Hard, NP- Complete

Khái niệm "Dẫn về được"

Bài toán B gọi là "Dẫn về được” bài toán A một cách đa thức, ký hiệu: B p A nếu có thuật toán đơn định đa thức để giải bài toán A thì cũng có thuật toán đơn định đa thức để giải bài toán B

Nghĩa là: Bài toán A "khó hơn" bài toán B, hay B "dễ” hơn A

Chú ý: Quan hệ p có tính chất bắc cầu, có nghĩa: C  B và B  A  C  A

Khái niệm "Khó tương đương"

Bài toán A gọi là “khó tương đương” bài toán B, ký hiệu A ~ B,

nếu : A  B và B  A

Bài toán NP- Hard

Bài toán A được gọi là NP - hard (NP- khó) nếu  L  NP đều là L  A

Trang 20

Lớp bài toán NP - hard bao gồm tất cả những bài toán NP - hard

Bài toán NP - hard có thể nằm trong hoặc ngoài lớp NP

Bài toán NP- Complete

Bài toán A đƣợc gọi là NP - Complete (NP- đầy đủ) nếu A là NP - Hard và A NP

Có nghĩa: Bài toán NP - Complete là bài toán NP - hard nằm trong lớp NP

Lớp bài toán NP - Complete bao gồm tất cả những bài toán NP - Complete

Lớp NP - Complete là có thực, vì Cook và Karp đã chỉ ra bài toán đầu tiên thuộc lớp này Đó là bài toán “thỏa đƣợc”: SATISFYABILITY

Chứng minh bài toán là NP - Hard

Cách 1 (Theo định nghĩa)

Bài toán A đƣợc gọi là NP - hard (NP- khó) nếu  L  NP đều là L  A

Chứng minh theo định nghĩa gặp nhiều khó khăn vì phải chứng minh:

Mọi bài toán trong NP đều “dễ hơn” A

Theo cách 1, năm 1971 Cook và Karp đã chỉ ra bài toán đầu tiên thuộc lớp NP- hard Đó là bài toán “thoả đƣợc” (Satisfyability)

Trang 21

1.2 MÃ HOÁ

(Tham khảo tài liệu [2] [8])

1.2.1 Khái niệm mã hoá

Mã hoá là phương pháp biến đổi thông tin (phim, ảnh, văn bản,…) từ dạng bình thường sang dạng thông tin “khó” có thể hiểu được, nếu không có phương tiện giải mã Giải mã là phương pháp chuyển thông tin đã được mã hoá về dạng thông tin ban đầu (quá trình ngược của mã hoá)

Mã hoá tuân theo qui tắc nhất định gọi là hệ mã hoá Có hai loại:

Mã hoá đối xứng

Mã hoá công khai (phi đối xứng)

Sau đây là định nghĩa hình thức về sơ đồ mã hoá và cách thức thực hiện để lập mã và giải mã:

Một sơ đồ hệ thống mã hoá là một bộ năm  = (P, C, K, E, D) thoả mãn:

P là một tập hữu hạn các ký tự bản rõ,

C là một tập hữu hạn các ký tự bản mã,

K là một tập hữu hạn các khoá,

E là một ánh xạ từ P x K vào C được gọi là phép lập mã

Với mỗi K  K ta định nghĩa eK: P C, dK: C P là hai hàm cho bởi:

Trang 22

Hệ mã hoá công khai sử dụng một cặp khoá Một trong hai khoá được gọi là khoá riêng (Private Key) và phải được giữ bí mật bởi người sở hữu Khoá còn lại được gọi là khoá công khai (Public Key), nó được phổ biến cho tất cả những ai muốn giao dịch với người giữ khoá riêng tương ứng Cặp khoá này có liên quan về mặt toán học, và không thể sử dụng các thông tin của khoá công khai để tìm ra khoá riêng Theo lý thuyết bất kỳ ai cũng có thể gửi cho người giữ khoá riêng một thông điệp được mã hoá bằng khoá công khai, và như vậy chỉ có người nào sở hữu khoá riêng mới có thể giải mã được Đồng thời, người sở hữu khoá riêng cũng chứng minh được tính toàn vẹn của dữ liệu mà anh ta gửi cho người khác bằng chữ kí điện

tử thông qua việc sử dụng khoá riêng để mã hoá Bất kỳ ai nhận được dữ liệu đó đều có thể sử dụng khoá công khai tương ứng để kiểm tra xem nó do ai gửi và có còn toàn vẹn hay không

Trang 23

1.2.2 Hệ mã hoá khoá công khai RSA

RSA là hệ mã hoá công khai, độ an toàn của hệ dựa vào bài toán khó:

“Phân tích số nguyên thành thừa số nguyên tố”

Sơ đồ:

1 Chọn ngẫu nhiên và độc lập hai số nguyên tố lớn p và q với pq

2 Tính: np q

3 Tính giá trị hàm số Ơle:  ( ) n  ( p  1)( q  1)

4 Chọn số tự nhiên b, 1    b ( ) n và là số nguyên tố cùng nhau với  ( ) n

5 Tính a là nghịch đảo của b: ab  1(mod ( ))  n

Khi đó, b là khoá lập mã, công khai

Trang 24

Đối với chữ ký trên giấy, ta kiểm tra bằng cách so sánh nó với chữ ký gốc

đã đăng ký Tất nhiên, phương pháp này không an toàn vì có thể bị đánh lừa bởi chữ ký của người khác Trong khi đó, chữ ký số được kiểm tra bằng thuật toán kiểm tra công khai, “người bất kì” có thể kiểm tra chữ ký số Việc sử dụng lược đồ ký an toàn sẽ ngăn chặn khả năng đánh lừa (giả mạo chữ ký)

Sơ đồ chữ ký số là bộ năm (P, A, K, S, V) trong đó:

P: tập hữu hạn các thông điệp A: tập hữu hạn các chữ kí

K: tập hữu hạn các khoá ( không gian khoá )

Với mỗi k  K tồn tại thuật toán kí sigk  S và một thuật toán xác minh verk  V

thông điệp x  P và mỗi chữ ký y A thoả mãn phương trình dưới đây:

Trang 25

Các giá trị n và b công khai, các giá trị p, q, a bí mật

Trang 26

Chọn x ≠ 0 làm khoá bí mật

Tính y = gx làm khoá công khai

Lấy H là hàm băm không va chạm

Ký:

Giả sử cần ký trên văn bản m

Chọn r ngẫu nhiên thuộc Zq

Trang 27

Ứng dụng trong bỏ phiếu điện tử:

Trong phương thức bỏ phiếu điện tử, mỗi lá phiếu phải có “thông tin định danh” Nó có thể là một con số x nào đó và phải khác nhau Trên mỗi lá phiếu phải

có chữ ký trên Số định danh x, thì lá phiếu mới có giá trị để bầu cử

Nếu cử tri chuyển ngay Số định danh x cho Ban kiểm phiếu ký, thì họ lập tức xác lập được mối liên hệ giữa cử tri và x Đó là điều cử tri không muốn vì sợ rắc rối sau này

Cử tri biến đổi x thành y trước khi đưa cho ban kiểm phiếu ký xác nhận Ban kiểm phiếu ký vào y, mà không biết đó là số định danh x đã bị làm mù Họ trao chữ

ký trên y là z cho cử tri Cử tri xoá mù trên z sẽ được chữ ký của ban kiểm phiếu trên số định danh x, như vậy cử tri có quyền bầu cử

Với kỹ thuật này, cuộc bỏ phiếu bảo đảm được: quyền bỏ phiếu và bí mật (có nghĩa chỉ người có quyền bầu cử mới được bỏ phiếu)

Ứng dụng trong hệ thống tiền điện tử: Mua bán hàng trên mạng

Giả sử Alice muốn mua quyển sách Q giá 50$ từ Bob Giả sử hai người cùng

sử dụng dịch vụ của một ngân hàng Giao thức giao dịch gồm 3 giai đoạn sau:

Rút tiền (Withdrawal):

Alice tạo tiền điện tử C (với thông tin: số seri, giá trị của C, ví dụ 50$)

Alice yêu cầu ngân hàng ký mù trên C

Giao thức ký thành công, ngân hàng sẽ trừ 50$ trong tài khoản của Alice

Trang 28

Tiêu tiền (spending):

Alice đưa cho Bob tiền C đã có chữ ký của ngân hàng và yêu cầu sách Q

Bob kiểm tra chữ ký trên C Nếu không hợp lệ thì Bob kết thúc giao thức

Gửi tiền (deposit):

Bob lấy C từ Alice và gửi cho ngân hàng

Ngân hàng xác thực chữ ký trên C:

Nếu hợp lệ, ngân hàng kiểm tra xem 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 của Bob

Nếu việc gửi tiền thành công, Bob sẽ gửi quyển sách Q cho Alice

Bob “khó” thể biết C từ tài khoản nào 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 đó nhận 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ó

Trang 29

Sign(z) = Sign(Blind(x)) = za mod n = y, và gửi lại y cho A

• Bước 3: A tiến hành xoá mù y bằng thuật toán:

UnBlind(y) = UnBlind(Sign(Blind(x))) = y/r mod n = sign(x)

Trang 30

Bước 2 (ký) : tiến hành ký trên z

y =Sign(z)= za mod n = 137 (mod 15)= 62748517 mod 15 = 7

Bước 3 (xoá mù): tiến hành xoá mù y = 7

UnBlind(y) = y/r (mod n) = 7/11 (mod 15) = 7*11-1 (mod 15)

= 7*11 (mod 15) = 77 (mod 15) = 2

(chú ý 11-1 = 11 trong mod 15)

Trang 31

3) Chữ ký mù Schnorr

Sơ đồ chữ ký mù Schnorr [6] được xây dựng bằng cách mù hoá sơ đồ chữ ký

số Schnorr Giao thức được thực hiện theo các bước sau:

Chuẩn bị:

Khoá bí mật của ngân hàng là x, khoá công khai là y = gx mod n

Alice cần ký lên đồng tiền Cm

Trang 32

1.3.4 Chữ ký nhóm và ứng dụng

1) Sơ đồ chữ ký nhóm dạng 1

Người tin cậy Z là trưởng nhóm chọn hệ thống khoá bí mật Z chuyển cho mỗi thành viên trong nhóm một danh sách các khoá bí mật (các danh sách này là khác nhau) và công bố một danh sách các khoá công khai tương ứng (theo thứ tự ngẫu nhiên) trong Thư mục công khai tin tưởng (TPD – Trusted Public Directory)

Mỗi thành viên trong nhóm có thể ký thông điệp bằng khoá bí mật si trong danh sách của anh ta Người nhận kiểm tra chữ ký bằng khoá công khai tương ứng h= gsi mod p Mỗi khoá bí mật si chỉ được sử dụng một lần

Z biết danh sách khoá bí mật của mỗi thành viên Khi cần, anh ta biết được ai

đã tạo ra chữ ký đó Để làm được điều này, Z “mở” một chữ ký

Như vậy, Z biết danh sách khoá bí mật của mỗi thành viên và có thể giả mạo chữ ký Điều này có thể giải quyết bằng việc dùng các khoá công khai “mù”

Cải biên 1

Chọn p là số nguyên tố, g là phần tử sinh của nhóm nhân Zp*

Thành viên thứ i lấy khoá bí mật “thực sự” của mình là s i, khoá công khai,

Trang 33

Người nhận có thể sử dụng giao thức xác nhận hoặc giao thức chống chối bỏ với mỗi thành viên nhóm, mà không cần sự giúp đỡ của trưởng nhóm Z

3) Sơ đồ chữ ký nhóm dạng 3 (Jan Camenish và Stadler)

Sơ đồ chữ ký nhóm của Jan Camenish và Stadler gồm 5 thủ tục:

Setup: Thủ tục sinh khoá công khai của nhóm và khoá bí mật của trưởng nhóm Join: Thủ tục tương tác giữa người quản lí nhóm và một thành viên mới của nhóm

để cung cấp cho thành viên này khoá bí mật và chứng nhận thành viên

Sign: Thủ tục ký một thông điệp của một thành viên trong nhóm

Verify: Thủ tục kiểm tra chữ ký trên một thông điệp có đúng là chữ ký của nhóm đó

hay không

Open: Thủ tục xác định chữ ký $ trên thông điệp m là của thành viên nào trong

nhóm

Trang 34

Ứng dụng của chữ ký “nhóm”: Thẻ thanh toán liên ngân hàng

Hiện nay, thẻ thanh toán điện tử, thẻ rút tiền tự động ATM đã trở thành phổ biến Tuy nhiên nếu mỗi ngân hàng đều phát hành một loại thẻ riêng thì chi phí sẽ rất cao cho người dùng và các ngân hàng Người dùng muốn thanh toán hoặc rút tiền sẽ phải tìm đến đúng “quầy” của ngân hàng đó Hơn thế nữa họ phải mua nhiều thẻ nếu gửi tiền tại nhiều ngân hàng, họ sẽ gặp khó khăn trong việc quản lí nhiều thẻ Mặt khác mỗi ngân hàng phải chi phí mua các “quầy” thanh toán riêng

Như vậy yêu cầu có thẻ thanh toán chung và “quầy” thanh toán chung giữa các ngân hàng là cần thiết Chữ ký “nhóm” sẽ được ứng dụng trong trường hợp này

Một liên minh ngân hàng trong đó mỗi ngân hàng là một thành viên trong nhóm, trưởng nhóm là ngân hàng trung tâm (được tin cậy bởi các ngân hàng khác)

Ngân hàng trung tâm tạo các khoá bí mật và công khai của nhóm, tạo các khoá bí mật cho các ngân hàng thành viên Mỗi ngân hàng thành viên đều có quyền tạo ra thẻ thanh toán chung của nhóm, nhưng chỉ cần chữ ký của ngân hàng đó

Trang 35

Join: Giao thức tương tác giữa Trưởng nhóm và thành viên mới của nhóm để cung

cấp cho thành viên này khoá bí mật  và chứng nhận thành viên 

Sign: Giao thức tương tác giữa thành viên nhóm là Bob và một user bên ngoài

nhóm là Alice có thông điệp m, để Bob có thể tạo chữ ký $ trên thông điệp m

Ứng dụng của chữ ký “nhóm mù”

Alice là khách hàng của Ngân hàng A, Bob là khách hàng của Ngân hàng B Alice cần trả một số tiền cho người bán hàng Bob

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ì thực hiện giao thức Join với trưởng nhóm

Rút tiền (Withdrawcal):

+ Alice tạo đồng tiền điện tử C gồm số seri và mệnh giá

+ Alice yêu cầu Ngân hàng A ký “mù nhóm” vào C

+ Ngân hàng A ký “mù nhóm” vào C và rút số tiền tương ứng từ tài khoản của Alice Bây giờ Alice sở hữu tiền C có giá trị trong cả nhóm ngân hàng

Trang 36

Tiêu tiền (Spending):

+ Alice đưa cho Bob tiền C đã có chữ ký “nhóm” của Liên ngân hàng

+ Bob kiểm tra và xác thực chữ ký “nhóm” của Liên ngân hàng trên C

Việc này có thể thực hiện dễ dàng nhờ khoá công khai của nhóm

Gửi tiền (Deposit):

+ Nếu các bước trên hoàn thành, Bob gửi tiền C cho Ngân hàng B

Ngân hàng B nhận, vì C là tiền “chung” trong Liên ngân hàng

+ Ngân hàng B xác thực chữ ký trên C Cần nhớ 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 tiền C đã được tiêu chưa qua danh sách các đồng tiền đã tiêu lưu ở ngân hàng, để tránh tiêu tiền C 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 C Bob yên tâm gửi hàng cho Alice

Trang 37

1.3.6 Chữ ký dùng một lần

Sơ đồ chữ ký dùng một lần (one-time signature) [6] có nhiều ứng dụng, đặc biệt là trong một số mô hình về tiền điện tử Sau đây trình bày sơ đồ chữ ký dùng một lần của Schnorr

Với sơ đồ chữ ký dùng một lần của Schnorr, người dùng trong cùng hệ thống

có thể chia sẻ một số ngẫu nhiên g và hai số nguyên tố p và q sao cho:

Ký: Giả sử Alice cần ký lên thông điệp m

Alice lấy ngẫu nhiên r  Zq

Số r không được dùng quá một lần để tạo ra các chữ ký khác nhau

Alice sử dụng r để ký hai thông điệp m và m’, tạo ra hai chữ ký là (c, y) và (c’, y’) Khi đó, ta có:

Trang 38

1.3.7 Chữ ký không thể chối bỏ

Trong các sơ đồ chữ ký đã trình bày ở trên, việc kiểm thử tính đúng đắn của chữ ký là do người nhận tiến hành Như vậy, cả văn bản cùng chữ ký có thể được sao chép và phát tán cho nhiều người mà không được phép của người gửi Để tránh khả năng đó, người ta đưa ra sơ đồ chữ ký không thể chối bỏ được với một yêu cầu

là chữ ký không thể được kiểm thử nếu không có sự hợp tác của người ký Sự hợp tác đó được thể hiện qua giao thức kiểm thử (giao thức xác nhận) Khi chữ ký đòi hỏi được xác nhận bằng một giao thức kiểm thử thì một vấn đề nảy sinh là làm sao

có thể ngăn cản người ký chối bỏ một chữ ký mà anh ta đã ký? Để đáp ứng yêu cầu

đó, cần có thêm một giao thức chống chối bỏ, thông qua giao thức này, người ký có thể chứng minh một chữ ký không phải là chữ ký của mình Nếu anh ta từ chối không tham gia giao thức đó thì có bằng chứng là anh ta không chứng minh được chữ ký đó là giả mạo, tức anh ta không chối bỏ được chữ ký của mình

Một sơ đồ chữ ký không thể chối bỏ gồm ba phần: một thuật toán ký, một giao thức kiểm thử (giao thức xác nhận) và một giao thức chối bỏ Sơ đồ được sử dụng rất nhiều hiện nay là sơ đồ của Chaum [1]

Trang 39

1) Sơ đồ chữ ký không thể chối bỏ của Chaum

Khoá công khai (p, , a, ) với  là số nguyên dương < p-1,  = a

B chọn ngẫu nhiên hai số e1, e2  Zq*

Tính cy e1.e2 modp, gửi cho A

B thử tiếp điều kiện: Dx f1.f2(mod )p

Trang 40

B thử điều kiện 9  11938 4 397 (mod 467) (đúng)

B chấp nhận 129 là chữ ký của A trên văn bản 119

Giao thức chối bỏ:

Giả sử A gửi văn bản x = 286 với chữ ký y = 83

B chọn ngẫu nhiên hai số e1 = 45, e2 = 237, tính c = 305, gửi cho A

Ngày đăng: 25/03/2015, 10:29

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w