ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------------
CAO THỊ BÍCH LIÊN
NGHIÊN CỨU
MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ
Ngành:
Mã số:
Công nghệ Thông tin
1.01.10
LUẬN VĂN THẠC SỸ
NGƢỜI HƢỚNG DẪN KHOA HỌC:
PGS.TS. Trịnh Nhật Tiến
Hà Nội - 2008
MỤC LỤC
LUAN VAN CHAT LUONG download : add
2
MỤC LỤC
LỜI CAM ĐOAN ......................................................................................... 1
MỤC LỤC .................................................................................................... 2
DANH MỤC CÁC KÝ HIỆU ...................................................................... 5
DANH MỤC BẢNG BIỂU........................................................................... 6
MỞ ĐẦU ....................................................................................................... 7
Chƣơng 1 - CÁC KHÁI NIỆM CƠ BẢN .................................................... 9
1.1.
MỘT SỐ KHÁI NIỆM TOÁN HỌC .............................................................. 9
1.1.1.
Khái niệm trong Số học ................................................................... 9
1.1.2.
Khái niệm trong đại số ................................................................... 11
1.1.3.
Khái niệm độ phức tạp tính tốn .................................................... 13
1.2.
MÃ HỐ ..................................................................................................... 15
1.2.1.
Giới thiệu về mã hoá ...................................................................... 15
1.2.2.
Hệ mã hoá khoá công khai RSA .................................................... 18
1.3.
KÝ SỐ ......................................................................................................... 20
1.3.1.
Khái niệm ký số ............................................................................. 20
1.3.2.
Sơ đồ chữ ký RSA ......................................................................... 22
1.3.3.
Sơ đồ chữ ký Schnor ...................................................................... 23
1.3.4.
Chữ ký “mù” ................................................................................. 24
1.3.5.
Chữ ký “nhóm”.............................................................................. 26
1.3.6.
Chữ ký “mù nhóm” ........................................................................ 29
1.3.7.
Vấn đề tạo đại diện thông điệp ....................................................... 31
1.4.
VẤN ĐỀ XƢNG DANH .............................................................................. 32
Chƣơng 2 - CƠ SỞ KHOA HỌC CỦA TIỀN ĐIỆN TỬ .......................... 33
2.1.
GIỚI THIỆU VỀ THƢƠNG MẠI ĐIỆN TỬ................................................ 33
2.1.1.
Khái niệm thƣơng mại điện tử ....................................................... 33
2.1.2.
Các đặc trƣng của thƣơng mại điện tử ............................................ 34
2.1.3.
Một số phƣơng thức thanh toán điện tử .......................................... 35
2.2.
GIỚI THIỆU VỀ TIỀN ĐIỆN TỬ................................................................ 38
2.2.1.
Khái niệm tiền điện tử ................................................................... 38
LUAN VAN CHAT LUONG download : add
3
2.2.2.
Lƣợc đồ giao dịch .......................................................................... 39
2.2.3.
Cấu trúc của tiền điện tử ................................................................ 41
2.2.4.
Phân loại tiền điện tử ..................................................................... 42
2.2.5.
Tính chất của tiền điện tử............................................................... 45
2.3.
VẤN ĐỀ ĐẢM BẢO AN TOÀN TIỀN ĐIỆN TỬ ....................................... 48
2.3.1.
Vấn đề ẩn danh ngƣời dùng ........................................................... 48
2.3.2.
Vấn đề giả mạo và tiêu một đồng tiền nhiều lần ............................. 48
2.3.3.
Lƣợc đồ Chaum-Fiat-Naor ............................................................. 50
2.3.4.
Lƣợc đồ Brand ............................................................................... 56
Chƣơng 3 - MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ ................................. 65
3.1.
HỆ THỐNG FIRST VIRTUAL .................................................................... 65
3.1.1.
Phƣơng thức hoạt động .................................................................. 65
3.1.2.
Nhận xét ........................................................................................ 67
3.2.
HỆ THỐNG DIGICASH .............................................................................. 68
3.2.1.
Phƣơng thức hoạt động .................................................................. 68
3.2.2.
Nhận xét ........................................................................................ 71
3.3.
HỆ THỐNG MILLICENT ........................................................................... 73
3.3.1.
Phƣơng thức hoạt động .................................................................. 73
3.3.2.
Nhận xét ........................................................................................ 76
3.4.
HỆ THỐNG MONDEX ............................................................................... 77
3.4.1.
Phƣơng thức hoạt động .................................................................. 77
3.4.2.
Nhận xét ........................................................................................ 78
3.5.
HỆ THỐNG PAYWORD ............................................................................. 79
3.5.1.
Phƣơng thức hoạt động ....................................................................... 79
3.5.2.
Nhận xét ............................................................................................... 81
3.6.
SO SÁNH CÁC HỆ THỐNG ....................................................................... 83
Chƣơng 4 - KHẢO SÁT TÌNH HÌNH SỬ DỤNG TIỀN ĐIỆN TỬ ......... 85
4.1.
TÌNH HÌNH SỬ DỤNG TIỀN ĐIỆN TỬ TRÊN THẾ GIỚI ........................ 85
4.1.1.
Tại Nhật Bản ................................................................................. 85
4.1.2.
Tại Singapore ................................................................................ 86
4.1.3.
Tại Hoa Kỳ .................................................................................... 87
LUAN VAN CHAT LUONG download : add
4
4.2.
TÌNH HÌNH SỬ DỤNG TIỀN ĐIỆN TỬ TẠI VIỆT NAM ......................... 88
4.3.
ĐỀ XUẤT VỀ KHẢ NĂNG SỬ DỤNG TIỀN ĐIỆN TỬ Ở VIỆT NAM ..... 89
KẾT LUẬN ................................................................................................. 91
TÀI LIỆU THAM KHẢO.......................................................................... 92
LUAN VAN CHAT LUONG download : add
5
DANH MỤC CÁC KÝ HIỆU
Ký hiệu
TT
Chú giải cho ký hiệu sử dụng
1
gcd
Ƣớc số chung lớn nhất - Greatest Common Divisor
2
PKI
Cơ sở hạ tầng khố cơng khai - Public Key Infrastructure
3
RSA
4
TMĐT
Thƣơng mại điện tử
5
TPD
Thƣ mục công khai tin tƣởng - Trusted Public Directory)
Hệ mã hố cơng khai đƣợc đề xuất bởi Ron Rivest,
Adi Shamir, Len Adlemon năm 1977
LUAN VAN CHAT LUONG download : add
6
DANH MỤC BẢNG BIỂU
Hình 1.
Bảng so sánh chữ ký thƣờng và chữ ký số ........................................... 20
Hình 2.
Mơ hình giao dịch cơ bản của hệ thống tiền điện tử ............................. 39
Hình 3.
Phân loại tiền điện tử ........................................................................... 42
Hình 4.
Bảng so sánh hệ thống thanh toán trực tuyến và ngoại tuyến ............... 44
Hình 5.
Mơ hình giao dịch có tính chuyển nhƣợng ........................................... 46
Hình 6.
Mơ hình thanh tốn trong lƣợc đồ Chaum - Fiat - Naor........................ 51
Hình 7.
Quá trình khởi tạo tài khoản................................................................. 56
Hình 8.
Quá trình chứng minh đại diện tài khoản ............................................. 57
Hình 9.
Giao thức rút tiền ................................................................................. 59
Hình 10.
Giao thức thanh tốn ............................................................................ 61
Hình 11.
Minh họa nội dung email ..................................................................... 66
Hình 12.
Quá trình giao dịch của hệ thống Digicash ........................................... 70
Hình 13.
Khách hàng mua Broker scrip .............................................................. 74
Hình 14.
Khách hàng mua Merchant scrip .......................................................... 74
Hình 15.
Nhà mơi giới mua Merchant scrip và gửi cho khách hàng .................... 75
Hình 16.
Khách hàng gửi Merchant scrip để thanh toán. .................................... 75
LUAN VAN CHAT LUONG download : add
7
MỞ ĐẦU
1. Tính cấp thiết của luận văn
Hiện nay, sự phát triển nhanh chóng của mạng và cơng nghệ thơng tin, sự
bùng nổ của Internet đã mang lại những thay đổi chƣa từng thấy trong thƣơng mại
điện tử. Với xu thế hội nhập vào nền kinh tế thế giới, sự phát triển các dịch vụ của
thƣơng mại điện tử là xu hƣớng tất yếu.
Trên thế giới, tiền điện tử đã và đang đƣợc ứng dụng thành cơng với nhiều
hình thức phong phú, nhƣng khái niệm “tiền điện tử” vẫn còn là khái niệm khá mới
mẻ ở Việt Nam.
2. Mục đích của luận văn
Luận văn nghiên cứu một số hệ thống tiền điện tử trên thế giới và đề xuất về
khả năng sử dụng tiền điện tử ở Việt Nam.
3. Đối tƣợng nghiên cứu
Đối tƣợng nghiên cứu của luận văn là một số hệ thống tiền điện tử.
4. Phạm vi nghiên cứu
Luận văn tập trung nghiên cứu về năm hệ thống tiền điện tử điển hình trên thế
giới: First Virtual, Digicash, Millicent, Mondex, PayWord.
5. Phƣơng pháp nghiên cứu
Nghiên cứu những kiến thức khái quát về tiền điện tử và một số hệ thống tiền
điện tử thông qua các sách báo, tạp chí bằng tiếng Việt, tiếng Anh và một số trang
Web có liên quan đến đề tài.
6. Ý nghĩa khoa học và thực tiễn của luận văn
Luận văn trình bày những kiến thức khái quát về tiền điện tử, đi sâu nghiên
cứu, phân tích một số hệ thống tiền điện tử và một số vấn đề hiện đang đặt ra đối
với tiền điện tử cùng các hƣớng giải quyết cho các vấn đề đó.
LUAN VAN CHAT LUONG download : add
8
7. Kết cấu luận văn
Luận văn gồm có 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: Cơ sở khoa học của tiền điện tử.
Trình bày những kiến thức khái quát về thƣơng mại điện tử và tiền điện tử
(khái niệm, cấu trúc, tính chất, phân loại tiền điện tử; các hình thức thanh toán bằng
tiền điện tử; một số vấn đề về tiền điện tử).
- Chƣơng 3: Một số hệ thống tiền điện tử.
Giới thiệu, phân tích, so sánh các hệ thống tiền điện tử đã đƣợc triển khai.
- Chƣơng 4: Khảo sát tình hình sử dụng tiền điện tử.
Trình bày về tình hình sử dụng tiền điện tử ở một số quốc gia trên thế giới và
đề xuất về khả năng sử dụng tiền điện tử ở Việt Nam.
LUAN VAN CHAT LUONG download : add
9
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
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ố nguyên lớn hơn 1, chỉ có hai ƣớc dƣơng là 1 và chính nó.
Ví dụ: 2, 3, 5, 7, 17, … là những số nguyên tố.
Các hệ mật mã thƣờng sử dụng các số nguyên tố lớn hơn 10150.
Hai số m và n đƣợc gọi là nguyên tố cùng nhau, nếu ƣớc số chung lớn nhất
của chúng bằng 1. Ký hiệu: gcd (m, n) = 1.
Ví dụ: 9 và 14 là hai số nguyên tố cùng nhau.
2/. Đồng dư thức
Cho n là số nguyên dƣơng. Ta nói số nguyên a đồng dƣ với số nguyên b theo
modulo n nếu n|(a-b) (tức (a-b) chia hết cho n, hay khi chia a và b cho n đƣợc cùng
một số dƣ nhƣ nhau). Số nguyên n đƣợc gọi là modullo của đồng dƣ [1].
Kí hiệu: a b (mod n)
Ví dụ: 67 ≡ 11 (mod 7), bởi vì 67 (mod 7) = 4 và 11 (mod 7) = 4
* 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 bắc cầu: Nếu a b mod n và b c mod n thì a c mod n.
Nếu a a1 mod n, b b1 mod n, thì a + b (a1 + b1) mod n và ab (a1b1) mod n.
LUAN VAN CHAT LUONG download : add
10
* Lớp tƣơng đƣơng
Lớp tƣơng đƣơng của một số nguyên a là tập hợp các số nguyên đồng dƣ với a
theo modulo n.
3/. Không gian Zn, Z *n
Tập Zn = {0, 1, 2,…, n-1}, đƣợc gọi là tập thặng dư đầy đủ theo mod n.
Mọi số nguyên đều có thể tìm đƣợc trong Zn một số đồng dƣ với mình (theo mod n).
Các phép tốn trong Zn nhƣ cộng, trừ, nhân, chia đều đƣợc thực hiện theo modulo n.
Ví dụ: Z10 = {0, 1, 2, 3,…, 9}
Tập Zn* = {p Zn gcd (n, p) = 1}, tức Zn* là tập hợp các số nguyên p thuộc Zn,
nguyên tố cùng nhau với n. Ta gọi tập đó là tập các thặng dư thu gọn theo mod n.
Nếu n là một số nguyên tố thì: Zn* = { p Zn | 1 ≤ p ≤ n-1}.
Ví dụ: Z2 = {0, 1} thì Z2* = {1} vì gcd (1, 2)= 1.
4/. Phần tử nghịch đảo trong Zn
Định nghĩa:
Cho a Zn. Nghịch đảo “nhân” của a theo modullo n là một số nguyên x Zn
sao cho ax ≡ 1 (mod n). Nếu tồn tại số x nhƣ vậy thì đó là giá trị duy nhất, và a
đƣợc gọi là khả nghịch, nghịch đảo của a ký hiệu là a-1 mod n.
Ví dụ: 4-1 mod 9 = 7 vì 4.7 ≡ 1 (mod 9)
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 có nghịch đảo 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 nếu
và chỉ nếu d chia hết b, trong trƣờng hợp các nghiệm nằm trong khoảng từ 0 đến
n - 1, thì các nghiệm đồng dƣ theo modulo n/d.
LUAN VAN CHAT LUONG download : add
11
1.1.2. Khái niệm trong đại số
1/. Nhóm
Nhóm là bộ các phần tử (G, *) thỏa mãn các tính chất sau:
Tính chất kết hợp: ( x * y ) * z = x * ( y * z ) ( x, y, z G)
Tồn tại phần tử trung lập e G: e * x = x * e = x ( x G)
Tồn tại phần tử nghịch đảo x’ G: x’ * x = x * x’ = e ( x G)
2/. Nhóm con
Nhóm con là bộ các phần tử (S, *) là nhóm 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
3/. 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ộ phần tử sinh (Generator-tuple)
{g1,..., gk} đƣợc gọi là bộ phần tử sinh nếu mỗi gi là một phần tử sinh và
những phần tử này khác nhau (gi ≠ gj nếu i ≠ j).
Ví dụ: {3, 5} là bộ phần tử sinh của Z7*, bởi vì :
1 = 36 mod 7 = 56 mod 7;
2 = 32 mod 7 = 54 mod 7
3 = 31 mod 7 = 55 mod 7;
4 = 34 mod 7 = 52 mod 7
5 = 35 mod 7 = 51 mod 7;
6 = 33 mod 7 = 53 mod 7
2 khơng phải là phần tử sinh của Z7*, bởi vì:
{2, 22, 23, 24, 25, 26} = {2, 4, 1, 2, 4, 1} <=> {1, 2, 4}
LUAN VAN CHAT LUONG download : add
12
Tuy nhiên {1, 2, 4} là tập con của {1, 2, 3, 4, 5, 6} = Z7*. Do đó số 2 đƣợc gọi
là “phần tử sinh của nhóm G(3)”, G(3) nghĩa là nhóm có 3 thành phần {1, 2, 4}.
5/. Bài toán đại diện (“Presentation problem”)
Gọi g là phần tử sinh của nhóm con G(q) thuộc Zn*. Bài tốn logarit rời rạc
liên quan đến việc tìm số mũ a, sao cho:
a = loggh mod n (với h G(q))
Tổng quát, bài tốn đại diện ([1]) là việc tìm kiếm logarit rời rạc a, nghĩa là
liên quan đến việc tìm kiếm tập những con số gọi là "index-tuple".
Cho k 2, 1 ai q, i = 1...k. Bài toán đại diện là cho h thuộc G(q) tìm
index-tuple {a1, ..., ak}, của generator-tuple {g1, ..., gk}, sao cho:
a
a
g1 1 * g 2 2 * ... * g k
ak
h mod n .
{a1, ... , ak} đƣợc gọi là đại diện (representation).
Ví dụ:
Cho tập Z23* thì ta có thể tìm đƣợc nhóm con:
G(11) = {1, 2, 3, 4, 6, 8, 9, 12, 13, 16, 18}
với những phần tử sinh gi là: 2, 3.
{2, 3} là bộ phần tử sinh của nhóm con G(11) trong Z23*.
Nhƣ vậy, với h = 13, bài toán đại diện là tìm a1 và a2 sao cho 2 a * 3a 13 mod 23.
1
2
Kết quả là: a1 = 2 và a2 = 2, vì 22 * 32 = 4*9 = 36 13 mod 23.
Hay a1 = 7 và a2 = 11, vì 27 * 311 = 128*177147 = 22674816 13 mod 23.
Nhƣ vậy sẽ có nhiều kết quả khác nhau. Tuy nhiên có thể rút ra kết luận nếu
có k thành phần trong đại diện {a1, ..., ak}, thì sẽ có: nk-1 đại diện của h.
LUAN VAN CHAT LUONG download : add
13
1.1.3. Khái niệm độ phức tạp tính tốn
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).
2/. Quan niệm trực quan về thuật toán
Thuật toán [3] là một dãy hữu hạn các quy tắc (chỉ thị, mệnh lệnh) mô tả một
q trình tính tốn (xử lý thơng tin). Theo đó, ứng với mỗi bộ dữ liệu vào (Input),
cho ít nhất một kết quả (bộ dữ liệu ra: Output)
Thuật toán đơn định (Deterministic): Có 1 kết quả ra
Thuật tốn khơng đơn định (NonDeterministic): Có số kết quả ra ≥ 2
3/. Độ phức tạp của thuật toán
a/. Khái niệm độ phức tạp cực đại
* Độ phức tạp về bộ nhớ trong trƣờng hợp xấu nhất:
LA(n)= max {lA(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 {tA(e) |
|e| ≤ n}.
(Tức là: Lấy chi phí lớn nhất về thời gian).
b/. Khái niệm độ phức tạp tiệm cận
Độ phức tạp PT(n) đƣợc gọi là tiệm cận tới hàm f(n), ký hiệu O(f(n))
nếu n0, c mà PT(n) ≤ c.f(n), n n0.
c/. Khái niệm độ phức tạp đa thức
Độ phức tạp PT(n) đƣợc gọi là đa thức, nếu nó tiệm cận tới đa thức p(n).
LUAN VAN CHAT LUONG download : add
14
4/. Khái niệm thuật toán đa thức
Thuật toán đƣợc gọi là “đa thức” nếu độ phức tạp về thời gian trong trƣờng
hợp xấu nhất của nó là đa thức.
5/. Phân lớp bài toán theo độ phức tạp
a/. Lớp bài toán P, NP
Với bài toán giải đƣợc bởi thuật toán chia thành hai loại:
- Thực tế “Dễ giải”: đƣợc hiểu là thuật toán đƣợc xử lý trong thời gian đủ nhanh,
thực tế cho phép. Đó là thuật tốn có độ phức tạp thời gian đa thức.
- Thực tế “Khó giải”: đƣợc hiểu là 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 tố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 tốn khơng đơn định, đa thức.
b/. Lớp bài toán NP- Hard, NP- Complete
* Khái niệm “dẫn về đƣợc”
Bài toán B đƣợc gọi là “dẫn về đƣợc” bài toán A một cách đa thức, ký hiệu:
B A, nếu có thuật tốn đơn định đa thức để giải bài tốn A thì cũng có thuật tốn
đơn định đa thức để giải bài tốn B.
Nghĩa là: Bài tốn A “khó hơn” bài toán B, hay B “dễ hơn” 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.
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- Complete
Bài toán A đƣợc gọi là NP- Complete (NP- đầy đủ) nếu: A là NP- Hard và A NP.
Lớp bài toán NP- Complete bao gồm tất cả những bài toán NP- Complete.
LUAN VAN CHAT LUONG download : add
15
1.2. MÃ HỐ
1.2.1. Giới thiệu về mã hố
Việc giao dịch thông tin trên mạng ngày càng trở nên phổ biến, vấn đề an tồn
thơng tin đƣợc đặt ra: làm thế nào để thông tin không bị đánh cắp. Kẻ đánh cắp có
thể lấy đƣợc dữ liệu, nhƣng khơng lấy đƣợc thơng tin thực sự. Điều này có thể thực
hiện bằng cách mã hố [2, 7].
Mã hố là q trình chuyển thơng tin có thể đọc đƣợc (gọi là bản rõ) thành
thơng tin “khó” thể đọc đƣợc theo cách thơng thƣờng (gọi là bản mã). Giải mã là
q trình chuyển thơng tin ngƣợc lại từ bản mã thành bản rõ. Kẻ đánh cắp có thể lấy
đƣợc bản mã nhƣng khơng có đƣợc bản rõ (nghĩa là không lấy đƣợc nội dung của
thơng điệp).
Ví dụ:
Thơng điệp cần mã hố là chuỗi nhị phân M = 1011, hàm mã hoá và giải mã
là hàm XOR với K = 1010.
Mã hoá:
M
1
011
K
1
010
C
0
001
Giải mã:
C
0
001
K
1
010
M
1
LUAN VAN CHAT LUONG download : add
16
011
LUAN VAN CHAT LUONG download : add
17
Hiện nay có hai loại mã hố chính:
• Mã hố khoá đối xứng
Khoá lập mã và khoá giải mã “giống nhau”, theo nghĩa biết đƣợc khố này
thì “dễ” tính đƣợc khố kia. Cần phải giữ bí mật cả hai khố. Hệ mã hố đối xứng
cịn có tên gọi là hệ mã hố khố bí mật.
• Mã hố khố cơng khai (phi đối xứng)
Khoá lập mã khác khoá giải mã. Cặp khóa này có liên quan về mặt tốn học,
biết đƣợc khố này thì cũng “khó” tính đƣợc khố kia. Cần bí mật khố giải mã
(cịn đƣợc gọi là khóa riêng - Private Key), cơng khai khố lập mã (cịn đƣợc gọi là
khóa cơng khai - Public Key) [2, 7].
Theo lý thuyết bất kỳ ai cũng có thể gửi cho ngƣời giữ khóa riêng một thơng
điệp đƣợc mã hóa bằng khóa cơng khai, và nhƣ vậy chỉ có ngƣời nào sở hữu khóa
riêng mới có thể giải mã đƣợc. Đồng thời, ngƣời sở hữu khóa riêng cũng chứng
minh đƣợc tính tồ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 khóa riêng để mã hóa. Bất kỳ ai nhận đƣợc dữ liệu đó
đều có thể sử dụng khóa cơng khai tƣơng ứng để kiểm tra xem nó do ai gửi và có
cịn tồn vẹn hay khơng.
Hệ mã hố đƣợc định nghĩa là bộ năm (P, C, K, E, D) trong đó:
P là một tập hữu hạn các bản rõ có thể.
C là một tập hữu hạn các bản mã có thể.
K là một tập hữu hạn các khố có thể.
E là tập các hàm lập mã.
D là tập các hàm giải mã.
Với mỗi k K, có một hàm lập mã ek E: ek : P→C
và một hàm giải mã dk: C→P sao cho: dk(ek(x)) = x, x P
LUAN VAN CHAT LUONG download : add
18
1.2.2. Hệ mã hố khố cơng khai RSA
Với hệ mã hố khố cơng khai RSA, độ an tồn phụ thuộc vào độ “khó” của
bài tốn: “Phân tích số ngun dƣơng thành tích hai thừa số ngun tố”.
Chuẩn bị khố:
- Chọn p, q là số nguyên tố rất lớn (p, q bí mật).
Tính: n = p * q (n cơng khai), Φ(n) = (p-1)*(q-1).
- Đặt P = C = Zn.
- Chọn b là số nguyên tố cùng nhau với Φ(n) để tồn tại phần tử nghịch đảo b-1,
nghĩa là gcd(b, Φ(n)) = 1.
- Chọn a là nghịch đảo của b theo modulo Φ(n): a*b 1 mod Φ(n).
=> Cặp khoá (a, b):
+ b là khố lập mã, b cơng khai
+ a là khố giải mã, a bí mật
Lập mã:
x P → y = ek(x) = xb mod n, y C
Giải mã:
y C → x = dk(y) = ya mod n, x P
LUAN VAN CHAT LUONG download : add
19
Ví dụ:
Giả sử ơng B cần gửi cho ơng A thông điệp x = 8 trên kênh truyền công khai.
A và B muốn giữ bí mật tài liệu, hai bên thống nhất dùng hệ mật mã RSA.
Sau đây là các bƣớc thực hiện để A và B trao đổi thông điệp bí mật.
• Chuẩn bị khố:
- Lấy p = 3; q = 5
(Đây là ví dụ minh hoạ nên chọn p, q là hai số nguyên tố nhỏ để thử tính tốn).
=> n = p*q = 3*5 = 15; Φ(n) = (p-1)*(q-1) = 2*4 = 8
- Chọn b = 7 (thoả mãn gcd (7, 8) = 1).
=> a = b-1 mod n = 7 (thoả mãn 7*7 1 mod 8).
=> Khóa cơng khai b = 7; n = 15.
=> Khóa bí mật a = 7.
• Lập mã:
Cho x= 8.
Mã hóa: y = xb mod n = 87 mod 15 = 2097152 mod 15 = 2
• Giải mã:
Nhận y = 2.
Giải mã: x = ya mod n = 27 mod 15 = 128 mod 15 = 8.
LUAN VAN CHAT LUONG download : add
20
1.3. KÝ SỐ
1.3.1. Khái niệm ký số
Hệ mã hoá khoá cơng khai khơng chỉ dùng vào việc bảo đảm tính bí mật của
thơng điệp, mà cịn là phƣơng tiện để bảo đảm tính xác thực và tính tồn vẹn của
thơng điệp, ngăn chặn sự giả mạo, thay đổi nội dung của bản tin.
Ký điện tử (hay còn gọi là ký số) [2, 7] là phƣơng pháp “ký” một bức thông
điệp lƣu dƣới dạng điện tử. Chữ ký số đƣợc thực hiện dựa trên mật mã khố cơng
khai, khố bí mật đƣợc dùng để ký, khố cơng khai đƣợc dùng để kiểm tra chữ ký.
Hình 1.
Bảng so sánh chữ ký thường và chữ ký số
Chữ ký thông thƣờng
Chữ ký trên tài liệu
Chữ ký số
Chữ ký là bộ phận vật lý Chữ ký số không đƣợc
của tài liệu đƣợc ký.
gắn một cách vật lý với
thông điệp đƣợc ký.
Kiểm tra chữ ký
Chữ ký đƣợc kiểm tra Chữ ký số có thể kiểm tra
bằng cách so sánh nó với nhờ dùng thuật tốn kiểm
chữ ký xác thực khác. tra cơng khai. Ai cũng có
Tuy nhiên, đây không thể kiểm tra đƣợc chữ ký
phải là một phƣơng pháp số. Việc dùng chữ ký số
an toàn vì nó dễ bị giả an tồn có thể ngăn chặn
mạo.
đƣợc giả mạo.
LUAN VAN CHAT LUONG download : add
21
Một điểm khác biệt cơ bản nữa giữa chữ ký thơng thƣờng và chữ ký số, đó là
việc sử dụng lại. Bản copy thông điệp đƣợc ký bằng chữ ký số thì đồng nhất với bản
gốc, cịn bản copy thơng điệp đƣợc ký bằng chữ ký thơng thƣờng lại có thể khác với
bản gốc. Điều này có nghĩa là cần phải ngăn chặn bức thông điệp ký số không bị
dùng lại. Ví dụ: A ký một bức thơng điệp số xác nhận B rút 1000 $ trong tài khoản
của A, A chỉ muốn B làm điều đó 1 lần, do đó bản thân bức thơng điệp cần chứa
thơng tin thêm để ngăn nó khỏi bị dùng lại.
Đối với các hoạt động trên môi trƣờng mạng ngày càng phát triển nhƣ hiện
nay, chữ ký số là một hình thức để đảm bảo tính pháp lý của các cam kết. Nó phải
đáp ứng đƣợc các yêu cầu:
- Ngƣời nhận có thể xác thực đƣợc đặc điểm nhận dạng của ngƣời gửi.
- Ngƣời gửi sau này không thể chối bỏ nội dung của một bản tin đã gửi.
- Ngƣời gửi không thể bịa đặt thay đổi bản tin sau khi đã gửi.
* Sơ đồ chữ ký số
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 khố (khơng gian khố).
S: tập các thuật toán ký.
V: tập các thuật toán kiểm thử.
Với mỗi k K, tồn tại một thuật tốn kí sigk S, sigk: P->A và một thuật toán
xác minh verk V, verk: P x A -> {true, false} thoả mãn điều kiện sau với mọi
x P, y A:
Verk(x, y) = True
nếu y = sigk(x)
False nếu y sigk(x)
LUAN VAN CHAT LUONG download : add
22
1.3.2. Sơ đồ chữ ký RSA
Sinh khoá:
- Chọn p, q là các số nguyên tố lớn, tính n = p*q, (n) = (p-1)*(q-1).
(Các giá trị p, q bí mật)
- Chọn b là số nguyên tố cùng nhau với (n), để tồn tại phần tử nghịch đảo b -1,
nghĩa là gcd(b, Φ(n)) = 1
- Đặt P = A = Zn, tập khoá K = {(a, b) a*b 1 mod (n)}.
b là khố cơng khai dùng để kiểm tra chữ ký; a là khố bí mật dùng để ký.
Ký số: Với mỗi k K, chữ ký trên x P là y = sigk(x) = xa mod n A.
Kiểm tra chữ ký: Verk(x, y) = true <=> x yb mod n.
(Tham khảo tài liệu [1, 2])
Ví dụ: Giả sử ông B ký lên thông điệp x = 8, gửi lại ơng A. Ơng A kiểm tra chữ ký.
Sinh khố:
- Chọn p = 3; q= 5
- Tính n = p * q = 15; Φ(n) = (p-1)*(q-1) = 2*4 = 8
- Chọn b = 7 (thoả mãn gcd(b, Φ(n)) = gcd(7, 8) = 1)
=> a = b-1 mod Φ(n) = 7-1 mod 8 = 7
Ký số: Ký trên x = 8
Chữ ký là: y = sigk(x) = xa mod n = 87 mod 15 = 2
Kiểm tra chữ ký:
Vì yb mod n = 27 mod 15 = 8 = x
Nên Verk(x, y) = true
LUAN VAN CHAT LUONG download : add
23
1.3.3. Sơ đồ chữ ký Schnor
Chuẩn bị khoá:
- Lấy G là nhóm con cấp q của Zn* với q là số nguyên tố.
- Chọn phần tử sinh g G sao cho bài toán logarit rời rạc trên G là khó giải.
- Chọn x ≠ 0 làm khố bí mật.
- Tính y = gx làm khố cơng khai.
- Lấy H là hàm băm không va chạm.
Ký số:
Giả sử cần ký trên văn bản m.
- Chọn r ngẫu nhiên thuộc Zq.
- Tính c = H (m, xr).
- Tính s = (r + xc) mod q.
Chữ ký Schnorr [12] là cặp (c, s).
Kiểm tra chữ ký:
Với một văn bản m cho trƣớc, cặp (c, s) đƣợc gọi là chữ ký Schnor hợp lệ nếu thoả
mãn phƣơng trình:
c = H (m, gs * ys )
LUAN VAN CHAT LUONG download : add
24
1.3.4. Chữ ký “mù”
Chữ ký mù [4, 6] đƣợc đƣợc Chaum giới thiệu vào năm 1983. Mục đích của
chữ ký mù là làm sao để ngƣời ký lên văn bản mà khơng đƣợc biết nội dung văn
bản, nghĩa là có đƣợc chữ ký trên x P mà không cho ngƣời ký biết giá trị x.
1/. Sơ đồ chữ ký “mù”
• Bƣớc 1 (Làm mù):
A làm mù x bằng một hàm:
z = Blind(x) và gửi z cho B.
• Bƣớc 2 (Ký):
B ký trên z bằng hàm y = Sign(z) = Sign(Blind(x)), và gửi lại y cho A.
• Bƣớc 3 (Xố mù): A xoá mù trên y bằng hàm
Sign(x) = UnBlind(y) = UnBlind(Sign(Blind(x))).
2/. Chữ ký mù theo sơ đồ chữ ký RSA
Bài toán đặt ra là A muốn lấy chữ ký của B trên x, nhƣng không muốn cho B
biết x. Đầu tiên chuẩn bị:
+ Lấy p, q là các số nguyên tố lớn, tính n = p*q, φ(n) = (p-1)*(q-1)
+ Chọn a, b sao cho a*b 1 mod φ(n)
+ Chọn ngẫu nhiên r Zn, sao cho tồn tại phần tử nghịch đảo r-1(mod n).
• Bƣớc 1: A làm mù x bằng hàm:
Blind(x) = x*rb mod n = z, và gửi z cho B.
• Bƣớc 2: B ký trên z bằng hàm:
Sign(z) = Sign(Blind(x)) = za mod n = y, và gửi lại y cho A.
• Bƣớc 3: A xoá mù y bằng hàm:
UnBlind(y) = UnBlind(Sign(Blind(x))) = y/r mod n = sign(x).
LUAN VAN CHAT LUONG download : add
25
Ví dụ: Giả sử ơng B ký lên thơng điệp x = 8 đã đƣợc làm mù do ông A gửi. Chữ ký
sẽ gửi lại cho ông A, và ông A xố mù.
Theo ví dụ ở phần chữ ký RSA, khi ký trên x = 8 thì chữ ký là:
y = Sign(x) = xa mod n = 87 mod 15 = 2.
• Bƣớc 1: Làm mù x = 8
Chọn r = 11 là số ngẫu nhiên Z15 thoả mãn: gcd(11,15) = 1
z = Blind(x) = x * rb mod n = 8 * 117 (mod 15) = 8*19487171 (mod 15)
= 155897368 mod 15 = 13
• Bƣớc 2: Ký trên z
y = Sign(z) = za mod n = 137 (mod 15) = 62748517 mod 15 = 7
• Bƣớc 3: Xố 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ính là chữ ký trên x = 8
3/. Ứng dụng của chữ ký mù trong hệ thống tiền điện tử ẩn danh
Trong hệ thống tiền điện tử ẩn danh, trƣớc khi giao dịch, ngƣời mua hàng phải
sinh ra những đồng tiền điện tử (là những dãy số), nhƣng vẫn ở dạng “thô” nghĩa là
vẫn chƣa có giá trị giao dịch. Để những đồng tiền này có giá trị giao dịch thực sự,
thì cần phải có chữ ký của tổ chức phát hành trên những đồng tiền này.
Nhƣ vậy ngƣời mua hàng phải gửi những đồng tiền (những dãy số) đến tổ
chức phát hành để xin chữ ký. Nhƣng ngƣời mua hàng không muốn tổ chức phát
hành có thể xác lập đƣợc thơng tin liên hệ giữa những đồng tiền này với họ để tránh
rắc rối sau này.
Để có thể che giấu đƣợc thơng tin, ngƣời mua hàng sẽ “làm mù” những đồng
tiền này, rồi mới gửi cho tổ chức phát hành ký. Ngƣời mua hàng sẽ nhận đƣợc
những đồng tiền từ tổ chức phát hành, họ “xoá mù” chúng, thu đƣợc những đồng
tiền có chữ ký. Những đồng tiền đó lúc này mới có giá trị giao dịch thật sự.
LUAN VAN CHAT LUONG download : add