Tải bản đầy đủ (.pdf) (93 trang)

Nghiên cứu một số hệ thống tiền điện tử

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 93 trang )

MỤC LỤC
ĐẠ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:
Công nghệ Thông tin
Mã số:
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

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 toán 13
1.2. MÃ HOÁ 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

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

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


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

TT
Ký hiệu
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 khoá công khai - Public Key Infrastructure
3
RSA
Hệ mã hoá công khai đƣợc đề xuất bởi Ron Rivest,
Adi Shamir, Len Adlemon năm 1977
4
TMĐT
Thƣơng mại điện tử
5
TPD
Thƣ mục công khai tin tƣởng - Trusted Public Directory)

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 toá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 toá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


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 đề đó.

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.



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 10
150

.
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, a
1
, b, b
1
, 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  a
1
mod n, b  b
1
mod n, thì a + b  (a
1
+ b
1
) mod n và ab  (a
1

b
1
) mod n.

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 Z
n,

*
n
Z

 Tập Z
n
= {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 Z
n
một số đồng dƣ với mình (theo mod n).
Các phép toán trong Z
n
nhƣ cộng, trừ, nhân, chia đều đƣợc thực hiện theo modulo n.
Ví dụ: Z
10
= {0, 1, 2, 3,…, 9}
 Tập Z
n
*

= {p  Z
n
gcd (n, p) = 1}, tức Z
n
*
là tập hợp các số nguyên p thuộc Z
n
,
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ì: Z
n
*
= { p Z
n
| 1 ≤ p ≤ n-1}.
Ví dụ: Z
2
= {0, 1} thì Z
2
*
= {1} vì gcd (1, 2)= 1.
4/. Phần tử nghịch đảo trong Z
n

Định nghĩa:
Cho a  Z
n
. Nghịch đảo “nhân” của a theo modullo n là một số nguyên x  Z
n


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  Z
n
. 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  Z
n
, 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.

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à g
n
= 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)
{g
1
, , g
k
} đƣợc gọi là bộ phần tử sinh nếu mỗi g
i
là một phần tử sinh và
những phần tử này khác nhau (g
i
≠ g
j
nếu i ≠ j).
Ví dụ: {3, 5} là bộ phần tử sinh của Z
7
*
, bởi vì :
1 = 3
6

mod 7 = 5
6
mod 7; 2 = 3
2
mod 7 = 5
4
mod 7
3 = 3
1
mod 7 = 5
5
mod 7; 4 = 3
4
mod 7 = 5
2
mod 7
5 = 3
5
mod 7 = 5
1
mod 7; 6 = 3
3
mod 7 = 5
3
mod 7
2 không phải là phần tử sinh của Z
7
*
, bởi vì:
{2, 2

2
, 2
3
, 2
4
, 2
5
, 2
6
} = {2, 4, 1, 2, 4, 1} <=> {1, 2, 4}

12
Tuy nhiên {1, 2, 4} là tập con của {1, 2, 3, 4, 5, 6} = Z
7
*
.

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 Z
n
*
. Bài toán logarit rời rạc
liên quan đến việc tìm số mũ a, sao cho:
a = log
g
h
mod n (với h G(q))
Tổng quát, bài toá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  a
i
 q, i = 1 k. Bài toán đại diện là cho h thuộc G(q) tìm
index-tuple {a
1
, , a
k
}, của generator-tuple {g
1
, , g
k
}, sao cho:
n modhg* *g*g
k21
a
k
a
2
a
1

.
{a
1
, , a
k
} đƣợc gọi là đại diện (representation).
Ví dụ:
Cho tập Z

23
*
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 g
i
là: 2, 3.
{2, 3} là bộ phần tử sinh của nhóm con G(11) trong Z
23
*
.
Nhƣ vậy, với h = 13, bài toán đại diện là tìm a
1
và a
2

sao cho

21
3*2
aa
13 mod 23.
Kết quả là: a
1
= 2 và a
2
= 2, vì 2
2
* 3
2

= 4*9 = 36  13 mod 23.
Hay a
1
= 7 và a
2
= 11, vì 2
7
* 3
11
= 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 {a
1
, , a
k
}, thì sẽ có: n
k-1
đại diện của h.

13
1.1.3. Khái niệm độ phức tạp tính toá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
quá trình tính toá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 toá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:
L
A
(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:
T
A
(n)= max {t
A
(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  n
0
, c mà PT(n) ≤ c.f(n), n  n
0
.
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).

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 toá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 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.
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 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.
* 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.

15
1.2. MÃ HOÁ
1.2.1. Giới thiệu về mã hoá
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 toà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ã hoá [2, 7].
Mã hoá là quá 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à
quá 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ã hoá 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

16
011





17
Hiện nay có hai loại mã hoá chính:
• Mã hoá khoá đối xứng
Khoá lập mã và khoá giải mã “giống nhau”, theo nghĩa biết đƣợc khoá này
thì “dễ” tính đƣợc khoá kia. Cần phải giữ bí mật cả hai khoá. Hệ mã hoá đối xứng
còn có tên gọi là hệ mã hoá khoá bí mật.
• Mã hoá khoá 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 toán học,
biết đƣợc khoá này thì cũng “khó” tính đƣợc khoá kia. Cần bí mật khoá giải mã
(còn đƣợc gọi là khóa riêng - Private Key), công khai khoá 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 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 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 toàn vẹn hay không.
Hệ mã hoá đƣợ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 khoá 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ã e
k
 E: e

k
: P→C
và một hàm giải mã d
k
: C→P sao cho: d
k
(e
k
(x)) = x, x  P

18
1.2.2. Hệ mã hoá khoá công khai RSA
Với hệ mã hoá khoá công khai RSA, độ an toàn phụ thuộc vào độ “khó” của
bài toán: “Phân tích số nguyên dƣơng thành tích hai thừa số nguyên tố”.
Chuẩn bị khoá:
- 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 = Z
n
.
- 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à khoá lập mã, b công khai
+ a là khoá giải mã, a bí mật
Lập mã:
x  P → y = e

k
(x) = x
b
mod n, y  C

Giải mã:
y  C → x = d
k
(y) = y
a
mod n, x  P


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ị khoá:
- 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 toá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 = x
b
mod n = 8
7
mod 15 = 2097152 mod 15 = 2
• Giải mã:
Nhận y = 2.
Giải mã: x = y
a
mod n = 2
7
mod 15 = 128 mod 15 = 8.


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 toà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ã khoá công
khai, khoá bí mật đƣợc dùng để ký, khoá 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ý số
Chữ ký trên tài liệu
Chữ ký là bộ phận vật lý
của tài liệu đƣợc ký.

Chữ ký số không đƣợc
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
bằng cách so sánh nó với
chữ ký xác thực khác.
Tuy nhiên, đây không
phải là một phƣơng pháp
an toàn vì nó dễ bị giả
mạo.
Chữ ký số có thể kiểm tra
nhờ dùng thuật toán kiểm
tra công khai. Ai cũng có
thể kiểm tra đƣợc chữ ký
số. Việc dùng chữ ký số
an toàn có thể ngăn chặn
đƣợc giả mạo.


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 khoá (không gian khoá).
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 toán kí sig
k
 S, sig
k
: P->A và một thuật toán
xác minh ver
k
 V, ver
k
: P x A -> {true, false} thoả mãn điều kiện sau với mọi
x  P, y  A:
Ver
k
(x, y) = True nếu y = sig
k
(x)
False nếu y  sig
k
(x)


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 = Z
n
, tập khoá K = {(a, b) a*b  1 mod (n)}.
b là khoá công khai dùng để kiểm tra chữ ký; a là khoá bí mật dùng để ký.
Ký số: Với mỗi k  K, chữ ký trên x  P là y = sig
k
(x) = x
a
mod n  A.
Kiểm tra chữ ký: Ver
k
(x, y) = true <=> x  y
b
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 khoá:
- 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 = sig
k
(x) = x
a
mod n = 8
7
mod 15 = 2
Kiểm tra chữ ký:
Vì y
b
mod n = 2
7
mod 15 = 8 = x
Nên Ver
k
(x, y) = true

23
1.3.3. Sơ đồ chữ ký Schnor
Chuẩn bị khoá:
- Lấy G là nhóm con cấp q của Z
n
*
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 khoá bí mật.
- Tính y = g
x
làm khoá 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 Z
q
.
- Tính c = H (m, x
r
).
- 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, g
s
* y
s
)

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 (Xoá 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  Z
n
, 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*r
b
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)) = z
a
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).

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 xoá mù.
Theo ví dụ ở phần chữ ký RSA, khi ký trên x = 8 thì chữ ký là:
y = Sign(x) = x
a
mod n = 8
7
mod 15 = 2.
• Bƣớc 1: Làm mù x = 8
Chọn r = 11 là số ngẫu nhiên  Z
15
thoả mãn: gcd(11,15) = 1
z = Blind(x) = x * r
b
mod n = 8 * 11
7
(mod 15) = 8*19487171 (mod 15)
= 155897368 mod 15 = 13
• Bƣớc 2: Ký trên z
y = Sign(z) = z
a
mod n = 13
7
(mod 15) = 62748517 mod 15 = 7
• Bƣớc 3: 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í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ự.

×