Thứ Năm, 27 tháng 2, 2014

TIỀN ĐIỆN TỬ

DANH MỤC CÁC HÌNH VẼ
Hình 1: Minh họa hệ mã hóa RSA trang 17
Hình 2: Minh họa sơ đồ chữ ký RSA trang 20
Hình 3: Mô hình giao dịch cơ bản của hệ thống tiền điện tử trang 35
Hình 4: Phân loại tiền điện tử trang 36
Hình 5: Mô hình giao dịch có tính chuyển nhượng trang 38
Hình 6: Quá trình giao dịch của hệ thống DigiCash trang 48
Hình 7: Khách hàng mua Broker Scrip trang 50
Hình 8: Khách hàng mua Merchant Scrip trang 50
Hình 9: Nhà môi giới mua Merchant Scrip và gửi cho khách hàng trang 51
Hình 10: Khách hàng gửi Menchant Scrip để thanh toán trang 51
Hình 11: Mô hình thanh toán trong lược đồ CHAUM-FIAT-NAOR trang 54
Hình 12: Giao diện chính của trương trình trang 59
Hình 13: Giao diện cài đặt hệ thống trang 60
Hình 14: Giao diện tạo đồng tiền trang 61
Hình 15: Giao diện thông báo khi bấm nút thanh toán trang 61
Hình 16: Giao diện gửi lịch sử thanh toán tiền trang 62
Hình 17: Giao diện thông báo khi bấm nút gủi lịch sử thanh toán trang 62
Hình 18: Giao diện thông báo khi gủi lịch sử thanh toán của đồng
Tiền đã được tiêu xài trang 62
Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 1

MỞ ĐẦU
Sự phát triển nhanh chóng của công nghệ thông tin và 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ử, nó
tác động mạnh mẽ đến lĩnh vực ngân hàng truyền thống, thúc đẩy sự phát triển
của thương mại điện tử và làm xuất hiện hàng ngày 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…và tiền điện tử hay ví điện tử cũng đang trở thành hiện thực. Trên thế
giới tiền điện tử đã và đang được ứng dụng thành công, nhưng khái niệm “tiền
điện tử” vẫn còn khá mới mẻ ở Việt Nam. Tuy nhiên với xu thế hôi nhập vào
nền kinh tế thế giới, phát triển các dịch vụ thương mại điện tử là xu hướng tất
yếu, chúng ta phải tìm hiểu và ứng dụng những dịch vụ mới trên thế giới. Chính
vì thế khóa luận tìm hiểu và nghiên cứu một loại hình thanh toán điện tử mới, đã
được ứng dụng thành công trên thế giới, đó là “tiền điện tử”.
Khóa luận đề cập đến giải pháp và công nghệ sử dụng tiền điện tử, dựa
trên việc tìm hiểu một số lược đồ, những hệ thống tiền điện tử điển hình và
những lý thuyết mật mã được áp dụng trong giải pháp tiền điện tử.
Khóa luận gồm ba chương
Chương 1: Các khái niệm cơ bản
Trong chương này sẽ trình bày một số khái niệm toán học, vấn đề mã
hóa, ký số, chữ ký mù, vấn đề xưng danh được áp dụng trong giải pháp tiền điện
tử.
Chương 2: Thanh toán trong thương mại điện tử
Trong chương này sẽ trình bày mô hình thanh toán trong thương mại điện
tử.
Chương 3: Thanh toán bằng tiền điện tử
Trong chương này sẽ tìm hiểu chi tiết về tiền điện tử, khái niệm, đặc
điểm, phân loại. Tìm hiểu phân tích lược đồ CHAUM-FIAT-NAOR. Xây dựng
chương trình mô phỏng tiền điện tử.
Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 2

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 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ó.
Ví dụ: 2, 3, 5, 7, 17,… là những số nguyên tố.
Hệ mật mã thường sử dụng các số nguyên tố ít nhất là 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à nguyên tố cùng nhau.
1.1.2 Đồng dƣ thức
Cho a và b là các số nguyên tố, n là số nguyên dương thì a được gọi là
đồng dư với 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à modulo của
đồng dư.
Ký hiệu: a ≡ b(mod n)
Ví dụ:
67 ≡ 11(mod 7),bởi 67(mod 7) = 4 và 11(mod 7) = 4
Tính chất đồng dƣ
Cho a, a
1
, b, b
1
, c
∈ Z ta có các tính chất:
a ≡ b mod n nếu và chỉ nếu a và b có cùng số dư khi chia cho n.
Tính phản xạ: a ≡ a mod n.
Tính đối sứ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.

Nếu a ≡ a
1
mod n và b ≡ b
1
mod n thì a + b = a
1
+ b
1
mod n và a.b = a
1
.b
1

mod n.



Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 3

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.
Cho n cố định đồng dư với n trong không gian Z vào các lớp tương
đương. Nếu a = qn + r, trong đó 0 ≤ r ≤ n thì a ≡ r mod n . Vì vậy mỗi số nguyên
a đồng dư theo modulo n với duy nhất một số nguyên trong khoảng từ 0 đến n-1
và được gọi là thạng dư nhỏ nhất của a theo modulo n. Cũng vì vậy, a và r cùng
thuộc một lớp tương đương. Do đó r có thể đơn giản được sử dụng để thể hiện
lớp tương đương.
1.1.3 Không gian Z
n
và Z
n
*

Không gian Z
n
(Các số nguyên theo modulo n) là tập hợp các số nguyên
{0,1,2….n-1}. 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
11
= {0, 1, 2,….10}.
Trong Z
11
: 6 + 7 = 2 vì 6 + 7 = 13 ≡ 2(mod 11).
Không gian Z
n
*
là tập hợp các số nguyên p
∈ Z
n
, nguyên tố cùng n. Tức
là: Z
n
*
= {p ∈ Z
n
| gcd(n,p) = 1}.
Φ
(n)
là số phần tử của Z
n
*
.
Nếu n là một số nguyên 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.
1.1.4 Phần tử nghịch đảo
Định nghĩa:
Cho a
∈ Z
n
. Nghịch đảo của a theo modulo n là số nguyên x ∈ Z
n
sao
cho ax ≡ 1(mod n). Nếu x tồn tại 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
.

Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 4

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 nghịch đảo khi và chỉ khi gcd(a,n) = 1.
Giả sử a = 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 cho b. Trong trường hợp các nghiệm d nằm trong
khoảng từ 0 đến n-1 thì các nghiệm đồng dư theo modulo n/d.
Ví dụ:
4
-1
= 7(mod 9) vì 4.7 = 1(mod 9).
1.1.5 Khái niệm nhóm, nhóm con, nhóm Cyclic
Nhóm là bộ các phần tử (G,*) thỏa mãn các tính chất:
Kết hợp: (x*y)*z = x*(y*z).

Tồn tại phần tử trung lập e ∈ G: e*x = x*e = x với

x


G.

Tồn tại phần tử nghịch đảo: x

∈ G : x

* x = x*x

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

G phần tử trung lập e ∈ S.
x, y ∈ S =>x*y ∈ S.
Nhóm Cyclic: là nhóm mà mọi phần tử đượ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à nhóm nhóm Cyclic có phần tử sinh là 1.
Định nghĩa:
Ta gọi cấp của nhóm là số các phần tử trong nhóm đó. Như vậy nhóm
Z
n
*
có cấp là
Φ(n).
Nếu p là số nguyên tố thì Z
p
*
có cấp p- 1.


Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 5

Định nghĩa:
Cho a ∈ Z
n
*
, cấp của a (ord(a)) được định nghĩa là số nguyên dương nhỏ
nhất t thỏa mãn a
t
≡ 1(mod n).
Ví dụ:
Z
21
*
={1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}, Ф(21) = 12 = |Z
21
*
|.
Và cấp của từng thành phần trong Z
21
*
là:

A ∈ Z
21
*

1 2 4 5 8 10 11 13 16 17 19 20
Cấp của a 1 6 3 6 2 6 6 2 3 6 6 2

1.1.6 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
1
, 2
2
, 2
3
, 2
4
, 2
5
, 2
6
} = {2, 4, 1, 2, 4, 1}

{1, 2, 4}
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}.
1.1.7

Bài toán

đại diện (
Presentation problem
)
Gọi g là phần tử sinh của nhóm 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)
)
Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 6

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 {a
1
,……,a
k
} của bộ phần tử
sinh {g
1
,… ,g
k
}, sao cho:
h = g
1
a1
*g
2
a2
*……….*g
k
ak
mod n
{a
1
,……a
k
} được gọi là đại diện (representation).
Ví dụ:
Cho 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, 4, 6, 8, 9, 12, 13, 16, 18.
{2, 3} là 2 phần tử sinh của nhóm con G(11) trong Z
23
*
.
Bài toán đại diện với h = 13
∈ G(11), tìm {a
1
,a
2
} sao cho
13 = 2
a1
*3
a2
mod 23
Logarit hai vế có a
1
*log(2) + a
2
*log(3) = log(13) mod 23
Kết quả là: a
1
= 2 và a
2
= 2 vì 2
2
*2
3
= 4*9 = 36 = 13 mod 23
Hay: a
1
= 7 và a
2
= 11 vì 2
7
*2
11
= 128*177147 = 13 mod 23
1.1.8 Hàm băm
Hàm băm h là hàm một chiều (one-way hash) với các đặc tính sau:
- Với thông điệp đầu vào x thu được bản băm z = h(x) là duy nhất.
-

Nếu dữ liệu trong thông điệp x thay đổi hay bị xóa để thành thông điệp
x’ thì h(x) ≠ h(x’). Cho dù chỉ là sự thay đổi nhỏ hay chỉ là xóa đi 1 bit
dữ liệu của thông điệp thì giá trị băm cũng vẫn thay đổi. Điều này có
nghĩa là: hai thông điệp hoàn toàn khác nhau thì giá trị băm cũng khác
nhau.

-

Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm
nghĩa là: với thông điệp x thì dễ dàng tìm được z = h(x). Nhưng lại
không thể (thực chất là khó) suy ngược lại được x nếu chỉ biết giá trị
hàm băm h(x).



Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 7

Tính chất:
Hàm băm h là không va chạm yếu:
Nếu cho trước một bức điện x, thì không thể tiến hành về mặt tính toán
để tìm ra một bức điện x’ ≠ x mà h(x’) = h(x).
Hàm băm h là không va chạm mạnh:
Nếu không có khả năng tính toán để tìm ra hai bức thông điệp x và x’
mà x ≠ x’ và h(x) = h(x’).
Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 8

1.2 VẤN ĐỀ MÃ HÓA
1.2.1

Khái niệm mã hóa
Mã hóa là phương pháp để biến thông tin (phim ảnh, văn bản, hình
ảnh…) từ dạng bình thường sang dạng thông tin “khó” thể hiện đượ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ã hóa về dạng thông tin ban đầu (quá trình ngược của mã hóa).
Ví dụ:
Thông điệp cần mã hóa là chuỗi nhị phân M = 1011, hàm mã hóa và
hàm giải mã là hàm XOR với k = 1010.
Mã hóa:



Giải mã:



Việc giao dịch thông tin trên mạng ngày càng trở lê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. Nếu kẻ
cắp lấy được dữ liệu nhưng khó 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óa, nghĩa là trước khi gửi thông điệp, thông điệp được
chuyển từ bản rõ sang bản mã, rồi mới gửi đi.Kẻ cắp có thể lấy được bản mã
nhưng khó có thể lấy được bản rõ (nghĩa là không lấy được nội dung thông
điệp).
Mã hóa tuân theo quy tắc nhất định gọi là Hệ mã hóa. Hiện nay có hai loại
mã hóa:
- Mã hóa khóa đối xứng
- Mã hóa khóa công khai (phi đối xứng )
Hệ mã hóa được định nghĩa là bộ năm (P,C,K,E,D) trong đó:
P: là tập hữu hạn các bản rõ có thể.
M 1011
K 1010
C 0001
M 0001
K 1010
C 1011
Đồ án tốt nghiệp Mô phỏng tiền điện tử

Nguyễn Hồng Chính-Lớp CT1002-Trường ĐHDLHP Trang 9

C: là tập hữu hạn các bản mã có thể.
K: là tập hữu hạn cá khóa có thể.
E: là tập các hàm lập mã.
D: là tập các hàm giải mã d
k
: C –> P sao cho d
k
(e
k
(x)) = x với

x
∈ P.

Hệ mã hóa khóa công khai sử dụng một cặp khóa. Một trong hai khóa
được gọi là khóa riêng (privete key) và phải được giữ bí mật bởi người sở hữu.
Khóa còn lại được gọi là khóa 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ữ khóa giêng tương ứng. Cặp khóa 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 khóa công
khai để tìm ra khóa riêng. 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 giữ 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 giữ 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.
1.2.2 Hệ mã hóa khóa công khai
RSA là hệ mã hóa khóa công khai và độ 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ố”, sau đây là chi tiết về hệ mã
hóa RSA.
Sơ đồ:
- Chọn p, q là số nguên tố lớn.
- Tính n = p*q ,Ф(n) = (p-1)*(q-1).
- Chọn b là số nguyên tố 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: a*b=1 mod Ф(n) (nghịch đảo theo modulo
Ф(n)).
+ b là khóa lập mã công khai.
+ a là khóa giải mã giữ bí mật.

Xem chi tiết: TIỀN ĐIỆN TỬ


Không có nhận xét nào:

Đăng nhận xét