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ử.
64 trang |
Chia sẻ: tuandn | Lượt xem: 2190 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đồ án Mô phỏng tiền điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN
Em xin chân thành cảm ơn toàn thể các thầy cô giáo trong khoa Công
Nghệ Thông Tin Trường Đại Học Dân Lập Hảo Phòng đã rất nhiệt tình dạy dỗ,
chỉ bảo, tạo điều kiện tốt nhất cho em trong quá trình học tập cũng như thực tập
và trong toàn bộ quá trình làm đò án tốt nghiệp này.
Đặc biệt em gửi lời cảm ơn chân thành và sâu sắc tới ThS Trần Ngọc
Thái giáo viên khoa Công Nghệ Thông Tin Trường Đại Học Dân Lập Hải
Phòng, người đã trực tiếp quan tâm,tận tình hướng dẫn, giúp đỡ và tạo điều kiện
tốt nhất cho em trong quá trình thực hiện đồ án.
Tuy em đã có nhiều cố gắng trong quá trình học tập, thực tập cũng như
trong thời gian làm đồ án nhưng không thể tránh khỏi những thiếu sót, em rất
mong được sự góp ý quý báu cảu các thầy cô giáo cũng như tất cả các bạn để
kiến thức của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Hải Phòng ngày tháng năm 2010
Sinh Viên
Nguyễn Hồng Chính
MỤC LỤC
LỜI CẢM ƠN
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC CÁC HÌNH VẼ
MỞ ĐẦU……………..………………………………………………………… …….1
CHƢƠNG 1 : CÁC KHÁI NIỆM CƠ BẢN …………………………… ……….2
1.1 MỘT SỐ KHÁI NIỆM TOÁN HỌC……………………………….... ............2
1.1.1 Số nguyên tố và nguyên tố cùng nhau……………………………… ……….2
1.1.2 Đồng dư thức………………………………………………………… ……......2
1.1.3 Không gian Zn và Zn
*……………………………………………… ……...3
1.1.4 Phần tử nghịch đảo…………………………………………………… ……….3
1.1.5 Khái niệm nhón, nhóm con, nhóm Cyclic…...….....…………..…… ............ 4
1.1.6 Bộ phần tử sinh (Generator-tuple)……………………………………… .. 5
1.1.7 Bài toán đại diện (Presentation Problem)……………………………… ... 5
1.1.8 Hàm băm …………………………………………………………………..... ... 6
1.2 VẤN ĐỀ MÃ HÓA………………………………………………………….... ... 8
1.2.1 Khái niệm mã hóa………………………………………………………….... .. 8
1.2.2 Hệ mã hóa khóa công khai…………………………………………………. ... 9
1.3 VẤN ĐỀ KÝ SỐ………………………………………………………………. . 12
1.3.1 Khái niệm ký số……………………………………………………………... 12
1.3.2 Sơ đồ chữ ký RSA…………………………………………………………... 13
1.3.3 Sơ đồ chữ ký Schnorr……………………………………………………….. 15
1.3.4 Khái niệm chữ ký mù……………………………………………………….. 15
1.3.5 Chữ ký mù theo sơ đồ chữ ký RSA………………………………………... 16
1.4 CHỨNG CHỈ SỐ…………………………………………………………….... 18
1.5 VẤN ĐỀ XƢNG DANH………………………………………………………. 20
CHƢƠNG 2 : THANH TOÁN TRONG THƢƠNG MẠI ĐIỆN TỬ…….... 21
2.1 TỔNG QUAN VỀ THƢƠNG MẠI ĐIỆN TỬ…………………………..... . 21
2.1.1 Khái niệm thương mại điện tử…..………………………………………..... 21
2.1.2 Các đặc trưng của thương mại điện tử…………………………………...... 23
2.1.3 Các mô hình thương mại điện tử………………………………………….. . 23
2.2 CÁC PHƢƠNG THỨC THANH TOÁN…………………………………... 25
2.2.1 Khái niệm thanh toán điện tử………………………………………………. 25
2.2.2 Các mô hình thanh toán…………………………………………………….. 25
CHƢƠNG 3 : THANH TOÁN BẰNG TIỀN ĐIỆN TỬ……………………... 28
3.1 GIỚI THIỆU TIỀN ĐIỆN TỬ………………………………………………. 28
3.1.1 Khái niệm tiền điện tử………………………………………………………. 28
3.1.2 Lược đồ giao dịch………………………………………………………….... 29
3.1.3 Phân loại……………………………………………………………………... 30
3.1.4 Những đặc điểm của tiền điện tử…………………………………………... 31
3.2 MỘT SỐ VẤN ĐỀ VỀ TIỀN ĐIỆN TỬ …………………………………... 34
3.2.1 Vấn đề ẩn danh…………………………………………………………….... 34
3.2.2 Vấn đề tiêu xài hai lần……………………………………………………… 35
3.3 MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ …………………………………... 38
3.3.1 Hệ thống tiền điện tử First Vitual …………………………………………. 38
3.3.2 Hệ thống tiền điện tử DigiCash …………………………………………… 39
3.3.3 Hệ thống tiền điện tử Millicent ……………………………………………. 42
3.3.4 Hệ thống tiền điện tử Modex ……………………………………………… 45
3.4 LƢỢC ĐỒ CHAUM-FIAT-NAOR ………………...……………………… 47
3.4.1 Giao thức rút tiền ………………..………………………………………..... . 49
3.4.2 Giao thức thanh toán ……………………………………………………….. 50
3.4.3 Giao thức gửi ……………………………………………………………….. 50
3.4.4 Đánh giá …………………………………………………………………….. 50
3.4.5 Chi phí ………………………………………………………………………. 51
3.4.6 Tấn công……………………………………………………………….. 51
3.5 CHƢƠNG TRÌNH MÔ PHỎNG TIỀN ĐIỆN TỬ…………………….. 52
3.5.1 Yêu cầu bài toán……………………………………………………….. 52
3.5.2 Cấu hình hệ thống……………………………………………………... . 52
PHỤ LỤC……………………………………………………………………... 53
Các giao diện chính của chương trình………………………………………… 53
KẾT LUẬN…………………………………………………………………... . 57
TÀI LIỆU THAM KHẢO
DANH MỤC CÁC TỪ VIẾT TẮT
Gcd (Greatest Common Divisor) Ước số chung lớn nhất
Ord (Order) Cấp
Pc (Personal Computer) Máy tính cá nhân
TMĐT Thương mại điện tử
TTĐT Thanh toán điện tử
Smart Card Thẻ thông minh
Pkl (Public Key infrastructure) Cơ sở hạ tầng khóa công khai
Online Trục tuyến
Offline Ngoại tuyến
Gredit card Thẻ tín dụng
Anonymaus Ẩn danh
Identified Định danh
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 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à 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, a1, b, b1, 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 ≡ a1 mod n và b ≡ b1 mod n thì a + b = a1 + b1 mod n và a.b = a1.b1
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 Zn và Zn
*
Không gian Zn (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 Zn như cộng, trừ, nhân, chia đều được thực
hiện theo modulo n.
Ví dụ:
Z11 = {0, 1, 2,….10}.
Trong Z11: 6 + 7 = 2 vì 6 + 7 = 13 ≡ 2(mod 11).
Không gian Zn
*
là tập hợp các số nguyên p ∈ Zn, nguyên tố cùng n. Tức
là: Zn
*
= {p ∈ Zn | gcd(n,p) = 1}.
Φ(n) là số phần tử của Zn
*
.
Nếu n là một số nguyên thì: Zn
*
= {p ∈ Zn | 1≤ p ≤ n-1}.
Ví dụ:
Z2 = {0,1} thì Z2
*
= 1 vì gcd(1,2) = 1.
1.1.4 Phần tử nghịch đảo
Định nghĩa:
Cho a ∈ Zn. Nghịch đảo của a theo modulo n là số nguyên x ∈ Zn 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 ∈ 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 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à gn = 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
Zn
*
có cấp là Φ(n). Nếu p là số nguyên tố thì Zp
*
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 ∈ Zn
*
, 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 at ≡ 1(mod n).
Ví dụ:
Z21
*
={1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}, Ф(21) = 12 = |Z21
*
|.
Và cấp của từng thành phần trong Z21
*
là:
A ∈ Z21
*
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)
{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 = 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 Z7
*
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} = 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}.
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 Zn
*
. Bài toá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))
Đồ á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<=ai<=q, I = 1……k.
Bài toán đại diện là: cho h thuộc G(q), tìm {a1,……,ak} của bộ phần tử
sinh {g1,…..,gk}, sao cho:
h = g1
a1
*g2
a2*……….*gk
ak
mod n
{a1,……ak} được gọi là đại diện (representation).
Ví dụ:
Cho 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, 4, 6, 8, 9, 12, 13, 16, 18.
{2, 3} là 2 phần tử sinh của nhóm con G(11) trong Z23
*
.
Bài toán đại diện với h = 13 ∈ G(11), tìm {a1,a2} sao cho
13 = 2
a1
*3
a2
mod 23
Logarit hai vế có a1*log(2) + a2*log(3) = log(13) mod 23
Kết quả là: a1 = 2 và a2 = 2 vì 2
2
*2
3
= 4*9 = 36 = 13 mod 23
Hay: a1 = 7 và a2 = 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ã dk: C –> P sao cho dk(ek(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.
Đồ á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 10
Lập mã:
- Chọn P=C=Zn với n=p*q,Zn = {0,1,2,….,n-1}
x ∈ Zn → y=x
b
mod n ∈ Zn.
Giải mã:
y ∈ Zn → x ≡ y
a
mod n ∈ Zn.
Ví dụ:
Giả sử ông B cần gửi cho ông A một thông điệp x = 8 trên kênh truyền
công công. A và B muốn giữ bí mật tài liệu hai bên thống nhất sử dụng hệ mã
hóa RSA.
Sau đây là các bước thực hiện A và B trao đổi thông điệp:
Chuẩn bị:
Lấy p = 3, q = 5.
→ n = p*q = 3*5 = 15; Ф(n) = (p-1)*(q-1) = 2*4 = 8.
Chọn b = 7 (thỏa mãn gcd(7,8) = 1).
→ a = b-1 mod Ф(n) = 7(thỏa mãn 7*7 = 1 mod 8).
→ khóa công khai b = 7; n = 15.
→ khóa bí mật a = 7.
Quá trình mã hóa:
Cho x = 8; mã hóa: y = x
b
mod n = 8
7
mod 15 = 2097152 mod 15 = 2.
Đồ á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 11
Quá trình giải mã:
Nhận y = 2; giải mã: x = ya mod n = 27 mod 15 = 128 mod 15 = 8.
Ông A
Nhận thông điệp từ ông B
tiến hành giải mã
Lấy 2 số nguyên p,q
(lấy p = 3,q = 5)
Tính n=p*q;Ф(n)=(p-1)*(q-
1)
(n = 15;Ф = 2*4 = 8)
Chọn ngẫu nhiên b,nguyên
tố cùng nhau với Ф(n),
gcd(b,Ф(n) = 1) (b = 7)
Tính giá trị : a = b-1 mod
Ф(n) ;(a = 7)
Gửi (b,n) cho B
Nhận y từ B
Giải mã y:x = ya mod n
(x = 2
7
mod 15 = 8)
Hình 1 : minh họa hệ mã hóa RSA
Ông B (x = 8)
Mã hóa thông điệp x,sau đó
gửi cho ông A
Nhận (b,n) từ A
Mã hóa x:y = x
b
mod n
(y = 8
7
mod 15 = 2)
Gửi y
Y = 2
(b=7,n=1
5) khóa
công khai
Đồ á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 12
1.3 VẤN ĐỀ KÝ SỐ
1.3.1 Khái niệm ký số:
Sơ đồ chữ ký số là phương pháp ký một thông điệp lưu dưới dạng điện tử.
Thông điệp được ký và chữ ký có thể được truyền trên mạng. Với chữ ký trên
giấy khi ký tên một tài liệu thì chữ ký là bộ phận vật lý của tài liệu được ký. Tuy
nhiên chữ ký số không được gắn vật lý với thông điệp được ký.
Đối với chữ ký trên giấy, việc kiểm tra nó bằng cách so sánh nó với chữ
ký gốc đã đăng ký. Tất nhiên phươn