Tài liệu tham khảo công nghệ thông tin Nghiên cứu một số giải pháp công nghệ thông tin trong việc sử dụng tiền điện tử
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - -
Nguyễn Thị An
NGHIÊN CỨU MỘT SỐ GIẢI PHÁP CÔNG NGHỆ THÔNG TIN TRONG VIỆC SỬ DỤNG TIỀN ĐIỆN TỬ
KHOÁ LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - -
Nguyễn Thị An
NGHIÊN CỨU MỘT SỐ GIẢI PHÁP CÔNG NGHỆ THÔNG TIN TRONG VIỆC SỬ DỤNG TIỀN ĐIỆN TỬ
KHOÁ LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: PGS.TS Trịnh Nhật Tiến
HÀ NỘI - 2009
Trang 3LỜI CẢM ƠN
Lời đầu tiên, em xin được gửi lời cảm ơn chân thành và sâu sắc nhất tới PGS.TS Trịnh Nhật Tiến – người Thầy luôn chỉ bảo, hướng dẫn hết sức nhiệt tình, giúp đỡ em trong suốt quá trình học tập và xây dưng khóa luận
Em xin chân thành cảm ơn các Thầy, Cô giáo đã dạy dỗ em trong suốt quá trình học tập tại trường Đại học Công Nghệ Những kiến thức các thầy cô truyền đạt sẽ mãi
là hành trang để em vững trong tương lai
Xin được cảm ơn tới các bạn K50HTTT đã cung cấp cho mình những tài liệu quýbáu để mình hoàn thành khóa luận Cảm ơn tới tất cả các bạn bè của mình đã luôn sát vai, tin tưởng và giúp đỡ mình trong suốt 4 năm đại học qua
Cuối cùng, con xin được gửi lời biết ơn sâu sắc nhất tới Bố mẹ và những người thân trong gia đình, những người luôn dành cho con tình yêu, niềm tin và động viên con trong suốt quá trình học tập
Hà nội, tháng 5 năm 2009
Sinh viên Nguyễn Thị An
Trang 4TÓM TẮT NỘI DUNG
Thương mại điện tử nói chung và tiền điện tử nói riêng đang còn là một lĩnhvực mới mẻ Vì vậy, để tiền điện tử có thể thực sự thâm nhập vào cuộc sống, trởthành một phương thức thanh toán hiệu quả đòi hỏi cần phải có quá trình nghiên cứu
và phát triển
Khóa luận sẽ trình bày những kiến thức khái quát về Tiền điện tử, sau đó tậptrung nghiên cứu hai vấn đề lớn hiện đang đặt ra đối với tiền điện tử:vấn đề ẩn danhngười sử dụng và vấn đề ngăn chặn người sử dụng tiêu một đồng Tiền điện tửnhiều lần Khóa luận cũng giới thiệu và phân tích một số hệ thống tiền điện tử hiệnnay trên thế giới, và đề xuất việc ứng dụng tiền điện tử tại Việt nam Ngoài ra, khóaluận sẽ Demo một chương trình nhỏ về một hệ thống tiền điện tử bằng ngôn ngữ C++
Trang 5MỤC LỤC
LỜI CẢM ƠN 3
TÓM TẮT NỘI DUNG 4
MỤC LỤC 5
DANH MỤC CÁC KÝ KIỆU 8
DANH MỤC BẢNG BIỂU 9
MỞ ĐẦU 10
Chương 1 CÁC KHÁI NIỆM CƠ 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.1.2 Khái niệm trong đại số 15
1.1.3 Độ phức tạp 17
1.2 MÃ HÓA 20
1.2.1 Khái niệm về mã hóa 20
1.2.2 Hệ mã hóa 21
1.2.3 Mã hóa và giải mã 21
1.2.4 Hệ mã hóa khóa công khai RSA 22
1.3 CHỮ KÝ 24
1.3.1 Giới thiệu về chữ ký 24
1.3.2 Một số sơ đồ chữ ký 26
1.4 CHIA SẺ BÍ MẬT CÓ THỂ XÁC MINH 35
1.4.1 Sơ đồ chia sẻ bí mật 35
1.4.2. Sơ đồ chia sẻ bí mật có thể xác minh 36
1.5 HÀM BĂM 37
1.5.1 Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau: 37
1.5.2 Tính chất của hàm băm 37
Trang 6Chương 2: GIỚI THIỆU VỀ TIỀN ĐIỆN TỬ 38
2.1 KHÁI NIỆM THANH TOÁN ĐIỆN TỬ 38
2.1.1 Các mô hình thanh toán điện tử 38
2.2 KHÁI NIỆM TIỀN ĐIỆN TỬ 40
2.2.1 Mô hình giao dịch mua bán bằng tiền điện tử 41
2.2.2.Cấu trúc của Tiền điện tử 43
2.2.3.Tính chất của tiền điện tử: 44
Chương 3: MỘT SỐ VẤN ĐỀ PHÁT SINH KHI DÙNG TIỀN ĐIỆN TỬ 47
3.1 MỘT SỐ VẤN ĐỀ PHÁT SINH 47
3.1.1.Vấn đề ẩn danh người sử dụng đồng tiền 47
3.1.2.Vấn đề gian lận giá trị đồng tiền 47
3.1.3 Vấn đề tiêu xài một đồng tiền hai lần 48
3.2 GIẢI PHÁP CHO BÀI TOÁN “ẨN DANH” VÀ “CHỐNG GIAN LẬN GIÁ TRỊ ĐỒNG TIỀN” 49
3.2.1 Giới thiệu giải pháp 49
3.2.2.Lược đồ Chaum-Fiat-Naor 51
3.2.3.Lược đồ Brand 55
3.3 GIẢI PHÁP CHO BÀI TOÁN “TIÊU NHIỀU LẦN MỘT ĐỒNG TIỀN” .64
3.3.1.Giới thiệu giải pháp 64
3.3.2.Lược đồ truy vết gian lận KV 65
3.3.3.Lược đồ Fair tracing 69
3.3.4.So sánh lược đồ KV và Fair tracing 77
Chương 4: MỘT SỐ HỆ THỐNG TIỀN ĐIỆN TỬ 78
4.1 HỆ THỐNG DIGICASH 78
4.1.1 Phương thức hoạt động 79
4.4.2 Nhận xét 81
Trang 74.2 HỆ THỐNG PAYWORD 82
4.2.1 Phương thức hoạt động 82
4.2.2 Nhận xét 84
4.3 VẤN ĐỀ DÙNG TIỀN ĐIỆN TỬ Ở VIỆT NAM 85
KẾT LUẬN 88
DANH MỤC TÀI LIỆU THAM KHẢO 89
Trang 8DANH MỤC CÁC KÝ KIỆU
TT Ký hiệu Chú giải cho ký hiệu sử dụng
1 KV Lược đồ KV (tên viết tắt của hai tác giả
D.Kugler và H.Vogt )
2 RSA Hệ mã hóa khóa công khai được đề xuất bởi
Ron Rivest, Adi Shamir, Len Adlemon năm 1977
3 SSS Sơ đồ chia sẻ bí mật – Secret Sharing Schemes
4 TTP Bên thứ ba tin cậy – Trusted Third Party
5 VSS Sơ đồ chia sẻ bí mật có thể xác minh – Verify
Secret Sharing
DANH MỤC BẢNG BIỂU
Trang 9Hình 1: Mô hình giao dịch cơ bản của hệ thống Tiền điện tử.
Hình 2: Mô hình phương thức thanh toán
Hình 3: Mô hình giao dịch có tính chuyển nhượng
Hình 4: Khái quát lược đồ Fair tracing
Hình 5: Quá trình khởi tạo tài khoản của lược đồ Brand
Hình 6: Quá trình chứng minh đại diện tài khoản của lược đồ Brand Hình 7: Giao thức rút tiền trong lược đồ Brand
Hình 8: Giao thức thanh toán
Hình 9: Tóm tắt lược đồ KV
Hình 10: Giai đoạn chuẩn bị trong lược đồ Fair tracing.
Hình 11: Giao thức rút tiền trong lược đồ Fair tracing.
Hình 12: Giai đoạn chuẩn bị với TTP.
MỞ ĐẦU
Trang 101 Tính cấp thiết của khóa luận.
Sự mở rộng và phổ biến của Internet đã thúc đẩy sự phát triển của Thương mại
điện tử Một nhu cầu nảy sinh là thanh toán “điện tử”, đơn giản là người mua và
người bán thanh toán qua ngân hàng bằng thẻ tín dụng điện tử Hình thức thanh toánnày chưa thật thuận tiện Một hình thức thanh toán mới đã xuất hiện: thanh toán bằngtiền điện tử
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 lợiích cho người dùng.Tuy nhiên trong 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 xác định danh tính người sở hữu đồng tiền
Vì vậy, khóa luận đi vào nghiên cứu một số bài toán trong hệ thống tiền điện tử
và trình bày những cách giải quyết phù hợp cho các vấn đề trên
2 Mục đích của khóa luận.
Mục đích của khóa luận là nghiên cứu một số giải pháp khoa học cho các bài toánphát sinh trong quá trình sử dụng tiền điện tử, so sánh, đánh giá ưu nhược điểm củacác giải pháp và chỉ rõ giải pháp nào phù hợp 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 là các bài toán phát sinh khi dùng tiền điện tử
4 Phương pháp nghiên cứu.
Để nghiên cứu được các bài toán tiền điện tử, phần đầu khóa luận tổng hợp lạinhững khái niệm toán học và những kiến thức cơ bản về lý thuyết mật mã cóliên quan Sau đó đi sâu nghiên cứu về tiền điện tử, chỉ rõ cấu trúc, tính chất các loạitiền điện tử đã và đang được sử dụng trên thế giới Từ đó, phân tích để thấy rõ cácbài toán đã phát sinh như thế nào trong quá trình sử dụng tiền điện tử, và nêu lên cácgiải pháp phù hợp cho từng bài toán
5 Kết cấu của khóa luận.
Trang 11Khóa luận gồm 4 chương.
Chương 1: Trình bày lại một số khái niệm toán học, và lý thuyết cơ bản về mật
Cuối cùng là kết luận lại những điểm chính, những đóng góp chính của khóaluận, đồng thời chỉ ra những điểm cần khắc phục và định hướng phát triển tiếp theocho khóa luận
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.
Trang 121.1.1 Khái niệm trong số học.
1.1.1.1 Số nguyên tố và số nguyên tố cùng nhau.
1/ Khái niệm.
Số nguyên tố là số chỉ chia hết cho 1 và chính nó
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
17 ≡ 5 (mod 3) vì chia 17 và 5 cho 3, được cùng số dư 2
Nhận xét: Các mệnh đề sau đây là tương đương.
1) a ≡ b (mod m)
2) m \ (a - b)
3) Tồn tại số nguyên t sao cho a = b + mt
3/ Các tính chất của quan hệ “đồng dư”.
Với mọi số nguyên dương m ta có:
a ≡ a ( mod m) với mọi a Z; (tính chất phản xạ)
a ≡ b ( mod m) thì b ≡ a ( mod m); (tính chất đối xứng)
a ≡ b ( mod m) và b ≡ c ( mod m) thì a ≡ c ( mod m); (tính chất bắc cầu)
Tổng hay hiệu các đồng dư:
(a+b) (mod n) ≡ [(a mod n) + (b mod n)] (mod n)
Trang 13(a-b) (mod n) ≡ [(a mod n) - (b mod n)] (mod n)
Mỗi lớp tương đương đại diện bởi một số trong tập Zm ={0, 1,…, m-1} là số dư khi chia các số trong lớp cho m, ký hiệu một lớp được đại diện bởi số a là [a]m
Như vậy [a]m = [b]m a ≡ b (mod m)
Vì vậy ta có thể đồng nhất Zm với tập các lớp tương đương theo modulo m
Zm ={0, 1, 2,…, m-1} được gọi là tập các “thặng dư đầy đủ” theo modulo m Mọi
số nguyên bất kỳ đều có thể tìm được trong Zm một số đồng dư với mình theomodulo m
1.1.1.3 Phần tử nghịch đảo.
1/ Khái niệm.
Cho a Zn , nếu tồn tại b Zn sao cho a b 1 (mod n), ta nói b là phần tử
nghịch đảo của a trong Zn và ký hiệu a -1
Trang 14Cho a Zn 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-1thì các nghiệm đồng dư theo modulo n/d
1.1.1.4 Khái niệm Logarit rời rạc.
Cho p là số nguyên tố, g là phần tử nguyên thuỷ của Zp , Z*p
“Logarit rời rạc” chính là việc giải phương trình x = log g (mod p) với ẩn x
Hay phải tìm số x duy nhất sao cho: g x (mod p)
1.1.2 Khái niệm trong đại số.
1.1.2.1 Khái niệm nhóm.
1/ Khái niệm.
Trang 15Nhóm là một bộ (G, *), trong đó G , * là phép toán hai ngôi trên G
thoả mãn ba tính chất sau:
+ Phép toán có tính kết hợp: (x*y)* z = x*(y*z) với mọi x, y, z G
+ Có phần tử phần tử trung lập e G: x*e = e*x = x với mọi x G
+ Với mọi x G, có phần tử nghịch đảo x’ G: x * x’ = x’ * x = e
Cấp của nhóm G được hiểu là số phần tử của nhóm, ký hiệu là G
Cấp của nhóm có thể là nếu G có vô hạn phần tử
Nhóm Abel là nhóm (G, *), trong đó phép toán hai ngôi * có tính giao hoán.
Tính chất:
Nếu a * b = a * c, thì b = c
Nếu a * c = b * c, thì a = b
2/ Ví dụ.
+ Tập hợp các số nguyên Z cùng với phép cộng (+) thông thường là nhóm
giao hoán, có phần tử đơn vị là số 0, gọi là nhóm cộng các số nguyên.
+ Tập Q* các số hữu tỷ khác 0 (hay tập R* các số thực khác 0), cùng với
phép nhân (*) thông thường là nhóm giao hoán Gọi là nhóm nhân các số hữu tỷ (số
thực) khác 0
+ Tập các vectơ trong không gian với phép toán cộng vectơ là nhóm giao hoán
1.1.2.2 Nhóm con của nhóm (G,*).
1/ Khái niệm.
Nhóm con của G là tập S G, S , và thỏa mãn các tính chất sau:
+ Phần tử trung lập e của G nằm trong S
+ S khép kín đối với phép tính (*) trong G, tức là x*y S với mọi x, y S + S khép kín đối với phép lấy nghịch đảo trong G, tức x -1 S với mọi xS
2/ Ví dụ.
Xét nhóm cộng theo modulo 6 các số tự nhiên nhỏ hơn 6
Z6= {0, 1, 2, 3, 4, 5}
Trang 16Ta có các nhóm con sinh bởi các phần tử 2,3 là:
Khi đó g được gọi là phần tử sinh hay phần tử nguyên thuỷ của nhóm G
Nói cách khác: G được gọi là Nhóm Cyclic nếu tồn tại g G sao cho mọi
phần tử trong G đều là một luỹ thừa nguyên nào đó của g
2/ Ví dụ.
Nhóm (Z + , +) gồm các số nguyên dương là Cyclic với phần tử sinh g = 1
1.1.3 Khái niệm độ phức tạp.
1.1.3.1 Khái niệm Thuật toán.
1/ Khái niệm Bài toán.
Trang 17Bài toán được diễn đạt bằng hai phần:
Input: Các dữ liệu vào của bài toán.
Output: Các dữ liệu ra của bài toán (kết quả)
Không mất tính chất tổng quát, giả thiết các dữ liệu trong bài toán đều là số nguyên
2/ Khái niệm Thuật toán.
”Thuật toán” được hiểu đơn giản là cách thức để giải một bài toán Cũng có thể
được hiểu bằng hai quan niệm: Trực giác hay Hình thức như sau:
Quan niệm trực giác về ”Thuật toán”.
Một cách trực giác, Thuật toán được hiểu là một dãy hữu hạn các qui tắc (Chỉ thị,mệnh lệnh) mô tả một quá trình tính toán, để từ dữ liệu đã cho (Input) ta nhận đượckết quả (Output) của bài toán
Quan niệm toán học về ”Thuật toán”.
Một cách hình thức, người ta quan niệm thuật toán là một máy Turing
Thuật toán được chia thành hai loại: Đơn định và không đơn định.
Thuật toán đơn định (Deterministic):
Là thuật toán mà kết quả của mọi phép toán đều được xác định duy nhất
Thuật toán không đơn định (NonDeterministic):
Là thuật toán có ít nhất một phép toán mà kết quả của nó là không duy nhất
3/ Hai mô hình tính toán
Hai quan niệm về thuật toán ứng với hai mô hình tính toán
Ứng với hai mô hình tính toán có hai cách biểu diễn thuật toán:
Trang 18Mô hình ứng dụng:
Thuật toán được biểu diễn bằng ngôn ngữ tựa Algol.
+ Đơn vị nhớ: Một ô nhớ chứa trọn vẹn một dữ liệu
+ Đơn vị thời gian: Thời gian để thực hiện một phép tính cơ bản trong số họchay logic như cộng, trừ, nhân, chia,
Mô hình lý thuyết:
Thuật toán được biểu diễn bằng ngôn ngữ máy Turing
+ Đơn vị nhớ: 1 ô nhớ chứa một tín hiệu Với mã nhị phân thì đơn vị nhớ là 1 bit + Đơn vị thời gian: Thời gian để thực hiện một bước chuyển hình trạng
1.1.3.2 Khái niệm độ phức tạp của Thuật toán.
1/ Chi phí của thuật toán (Tính theo một bộ dữ liệu vào):
Chi phí phải trả cho một quá trình tính toán gồm chi phí về thời gian và bộ nhớ
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
t A (e) là giá thời gian và l A(e) là giá bộ nhớ
2/ Độ phức tạp về bộ nhớ (Trong trường hợp xấu nhất):
LA(n) = max{ l A (e), với |e| £ n}, n là “kích thước” đầu vào của thuật toán.
3) Độ phức tạp thời gian (Trong trường hợp xấu nhất):
TA(n) = max { t A (e), với |e| £ n}
4) Độ phức tạp tiệm cận:
Trang 19Độ 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 $ các số n 0 , c mà PT(n) £ c.f(n) , "n ³ n 0
5) Độ phức tạp đa thức:
Độ phức tạp PT(n) được gọi đa thức, nếu nó tiệm cận tới đa thức p(n).
6) 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.
1.2.1 Khái niệm về mã hóa.
* Mã hóa 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ã)
Trang 20Đó là một trong những kỹ thuật để bảo mật thông tin.
* 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õ.
* Thuật toán mã hoá hay giải mã là thủ tục tính toán để thực hiện mã hóa hay
giải mã
* Khóa mã hóa là một giá trị làm cho thuật toán mã hoá thực hiện theo cách
riêng biệt và sinh ra bản rõ riêng Thông thường khoá càng lớn thì bản mã càng an toàn
Phạm vi các giá trị có thể có của khoá được gọi là Không gian khoá.
* Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng như
Việc mã hoá phải theo quy tắc nhất định, quy tắc đó gọi là Hệ mã hóa
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ể
Trang 21Người gửi G e ke (T) Người nhận N
(có khóa lập mã ke) (có khóa giải mã
kd)
Tin tặc có thể trộm bản mã e ke (T)
1.2.4 Hệ mã hóa khóa công khai RSA.
1) Sơ đồ (Rivest, Shamir, Adleman đề xuất năm 1977)
- Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = ZnTính bí mật (n) = (p-1).(q-1) Chọn khóa công khai b < (n), nguyên tố với (n)
Trang 22Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 mod (n).
Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Zn , a*b 1 mod (n)
Trang 23- Hệ mã hóa RSA là tất định, tức là với một bản rõ x và một khóa bí mật a, thì
chỉ có một bản mã y.
- Hệ mật RSA an toàn, khi giữ được bí mật khoá giải mã a, p, q, (n)
Nếu biết được p và q, thì thám mã dễ dàng tính được (n) = (q-1)*(p-1)
Nếu biết được (n), thì thám mã sẽ tính được a theo thuật toán Euclide mở rộng.
Nhưng phân tích n thành tích của p và q là bài toán “khó”
Độ an toàn của Hệ mật RSA dựa vào khả năng giải bài toán phân tích số
nguyên dương n thành tích của 2 số nguyên tố lớn p và q
1.3 CHỮ KÝ.
1.3.1 Giới thiệu về chữ ký.
Ký số là phương pháp ký một thông điệp lưu dưới dạng “số”(điện tử).Thông điệpđược ký và chữ ký cùng truyền trên mạng tới người nhận
Người ta tạo ra “chữ ký số” (chữ ký điện tử) trên “tài liệu số” giống như tạo ra
“bản mã” của tài liệu với “khóa lập mã”.
Trang 24Như vậy “ký số” trên “tài liệu số” là “ký” trên từng bit tài liệu Kẻ gian khó thể
giả mạo “chữ ký số” nếu nó không biết “khóa lập mã”
Để kiểm tra một “chữ ký số” thuộc về một “tài liệu số”, người ta giải mã
“chữ ký số” bằng “khóa giải mã”., và so sánh với tài liệu gốc
Ngoài ý nghĩa để chứng thực nguồn gốc hay hiệu lực của các tài liệu số hóa,
Mặt mạnh của “chữ ký số” hơn “chữ ký tay” là ở chỗ người ta có thể “ký” vào tài liệu từ rất xa trên mạng công khai Hơn thế nữa, có thể “ký” bằng các thiết bị
cầm tay (ví dụ: điện thoại di động) tại khắp mọi nơi miễn là kết nối được vào mạng
Đỡ tốn bao thời gian, sức lực, chi phí, …
“Ký số” thực hiện trên từng bit tài liệu, nên độ dài của “chữ ký số” ít nhất cũng bằng độ dài của tài liệu Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm
băm” để tạo “đại diện” cho tài liệu, sau đó mớI “Ký số” lên “đại diện” này
V là tập các thuật toán kiểm thử
Với mỗi khóa k K có:
Thuật toán ký Sig k S, Sig k : P A,
Thuật toán kiểm tra chữ ký Ver k V, Ver k : P A đúng, sai, thoả mãn điều kiện sau với mọi x P, y A
Đúng, nếu y = Sig k (x)
Trang 25Ver k (x, y) =
Sai, nếu y Sig k (x)
1.3.2 Một số sơ đồ chữ ký
1.3.2.1 Sơ đồ ký số RSA.
1/ Sơ đồ (Đề xuất năm 1978)
*Tạo cặp khóa (bí mật, công khai) (a, b) :
Chọn bí mật số nguyên tố lớn p, q, tính n = p * q, công khai n, đặt P = C = Zn
Trang 26Tính bí mật (n) = (p-1).(q-1) Chọn khóa công khai b < (n), nguyên tố với (n)
Khóa bí mật a là phần tử nghịch đảo của b theo mod (n): a*b 1 (mod (n).Tập cặp khóa (bí mật, công khai) K = (a, b)/ a, b Zn , a*b 1 (mod (n))
* Ký số: Chữ ký trên x P là y = Sig k (x) = x a (mod n), y A (R1)
* Kiểm tra chữ ký: Verk (x, y) = đúng x y b (mod n) (R2)
1.3.2.2 Sơ đồ ký số Schnoor.
1/ Sơ đồ:
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 trên G là khó giải
Chọn x ≠ 0 làm khóa bí mật
Tính y = gx làm khóa công khai
Lấy H làm 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
Tính c = H (m,xr)
Tính s = (r+xc) mod q
Chữ ký Schorr là cặp (c,s)
* Kiểm tra chữ ký:
Với một văn bản m cho trước, một cặp (c, s) được gọi là một chữ ký Schnorr hợp
lệ nếu thỏa mãn phương trình
c = H (m, gs * ys)
1.3.2.3 Chữ ký mù.
Chữ ký mù được Chaum giới thiệu vào năm 1983 Mục đíchc của chữ ký mù là làm cho người ký trên văn bản không biết nội dung văn bản
Ứ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 một quyến sách B giá 100$ từ Bob Giả sử cả hai người đều sử dụng dịch vụ của một ngân hàng Giao thức giao dịch sẽ gồm 3 giai đoạn
Trang 27+ Nếu hợp lệ, ngân hàng kiểm tra xem C đã được tiêu trước đó hay chưa.
+ Nếu C chưa được tiêu thì ngân hàng cộng thêm C 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 B cho Alice
Bob khó thể biết rằng C là từ tài khoản nào Khi Bob gửi C thì ngân hàng cũng
“khó” thể biết rằng C được lấy ra từ tài khoản của Alice vì nó đã được ký mù Như vậytiền điện tử C không lưu lại dấu vết của những ai đã tiêu nó
Trang 28Bước 1: A làm mù x bằng một 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 tiến hành xóa mù y bằng thuật toán:
UnBlind(y) = UnBlind( Sign( Blind( x))) = y/r mod n = sign(x)
Ví dụ:
Alice cần Bob ký lên thông điệp x = 8
Nếu theo chữ ký RSA, thì kết quả thông điệp sau khi ký là :
Sign( x=8) = xa mod n = 87 mod 15 = 2 = yNhưng Alice muốn Bob ký mù lên x
Bước 1(làm mù): Alice tiến hành làm mù x = 8
Blind (x) = x* rb mod n= 8 * 11 7 (mod 15)
= 8 * 19487171 (mod 15) = 15589368 mod 15 = 13 = z
Với r = 11 là số ngẫu nhiên Z15 ( thoa: gcd(11, 15) = 1)
Bước 2: Tiến hành ký trên z.
y = Sign(z) = za mod n = 137 (mod 15) = 7
Bước 3: Tiến hành xóa mù:
UnBlind(y) = y/r (mod n) =7/11 (mod 15) = 7 * 11-1 mod 15 = 2
2/ Sơ đồ chữ ký mù Schnorr:
Sơ đồ chữ ký Schnorr được xây dựng bằng cách mù hóa sơ đồ ký số Schnorr
Giao thức thực hiện các bước sau:
Chuẩn bị:
Khóa bí mật của ngân hàng là x, khóa công khai là y = g x mod n
Alice cần ký lên đồng tiền Cm
Trang 29Bước 1:
Ngân hàng lấy ngẫu nhiên r Zq
Tính t = gr và gửi t cho Alice
Trang 30Tính Pt= g-sk mod p làm khóa công khai.
Ký:
Giả sử Alice cần ký trê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 lân thông điệp m và m’, tạo ra hai chữ ký khác nhau là (c, y) và (c’, y’) Khi đó ta có:
(y – y’) = [(r + cSk) – (r + c’Sk)] = Sk * (c – c’)Như vậy, nếu Alice sử dụng r quá một lần để ký cho hai thông điệp khác nhau, thìbất kỳ ai có hai thông điệp trên, đều có thể giải mã được khóa bí mật Sk
Vì vậy, sơ đồ chữ ký này được gọi là sơ đồ chữ ký dùng một lần
1.3.2.5 Chữ ký không thể phủ định.
Trong phần trước ta đã trình bày một số sơ đồ chữ ký điện tử Trong các sơ đồ
đó, việc kiểm thử tính đúng đắn của chữ ký là do người nhận thực hiện Nhằm tránhviệc nhân bản chữ ký để sử dụng nhiều lần, tốt nhất là để người gửi tham gia trực tiếpvào việc kiểm thử chữ ký Điều đó được thực hiện bằng một giao thức kiểm thử,dưới dạng một giao thức mời hỏi và trả lời
Trang 31Giả sử tài liệu cùng chữ ký từ G gửi đến N Khi N yêu cầu G cùng kiểm thửchữ ký, thì một vấn đề nảy sinh là làm sao để ngăn cản G chối bỏ một chữ ký màanh ta đã ký, G có thể tuyên bố rằng chữ ký đó là giả mạo ?
Để giải quyết tình huống trên, cần có thêm giao thức chối bỏ, bằng giao thứcnày, G có thể chứng minh một chữ ký là giả mạo Nếu G từ chối tham gia vào giaothức đó, thì có thể xem rằng G không chứng minh được chữ ký đó là giả mạo
Như vậy sơ đồ chữ ký không phủ định được gồm 3 phần: một thuật toán ký, mộtgiao thức kiểm thử, và một giao thức chối bỏ
1/ Sơ đồ (Chaum - van Antverpen).
Dùng khoá công khai k” = (p, g, h)
Với x, y P, người nhận N cùng người gửi G thực hiện giao thức kiểm thử:
1/ N chọn ngẫu nhiên e1, e2 Zq*
2/ N tính c = y e1 h e2 mod p, và gửi cho G
3/ G tính d c a1modqmodp và gửi cho N
Trang 323/ G tính dc a modqmodp và gửi cho N
4/ N thử điều kiện d x e1 g e2 (mod p)
5/ N chọn ngẫu nhiên f1, f2 Zq
6/ N tính Cy f1 * f2 modp và gửi cho G
7/ G tính D C a1modqmodp và gửi cho N
8/ N thử điều kiện D x f1 g f2 (mod p)
9/ N kết luận y là chữ ký giả mạo nếu:
2/ N tính c = y e1 h e2 mod p = 116 và gửi cho G
3/ G tính d c a1modqmodp = 235 và gửi cho N
Trang 332/ N tính c = y e1 h e2 mod p = 306, và gửi cho G.
3/ G tính d c a1modq modp = 184, và gửi cho N
4/ N thử điều kiện d x e1 g e2 (mod p)
Điều kiện trên không đúng vì 184 226 47 * 4 137 145 mod 467
N lại tiếp tục thực hiện bước 5 của giao thức
5/ N chọn ngẫu nhiên f1 = 225, f2 = 19 Zq*
6/ N tính C y f1 * f2 modp = 348, và gửi cho G
7/ G tính D C a1modq modp = 426, và gửi cho N
8/ N thử điều kiện D x f1 g f2 (mod p)
D = 426 trong khi x f1 g f2 (mod p) = 226 225 * 4 19 295 mod 467
Điều kiện 8 là đúng, nên N thực hiện bước 9:
9/ N kết luận y là chữ ký giả mạo nếu:
(d*e2)f1 (D*f2)e1(modp) (thay bằng g).
N tính giá trị của 2 vế đồng dư
(d* -e2)f1 (184 * 4 -137)225 79 mod 467
(D* -f2)e1 (426 * 4 -19)47 79 mod 467
Trang 34Hai giá trị đó bằng nhau Kết luận chữ ký y là giả mạo
1.4 CHIA SẺ BÍ MẬT CÓ THỂ XÁC MINH.
1.4.1 Sơ đồ chia sẻ bí mật.
Các sơ đồ chia sẻ bí mật (Secret Sharing Schemes - SSS), được phát minhmột cách độc lập bởi Blakley và Shamir Một trong những mục đích của việc chia sẻ bímật là để quản lý khóa an toàn
Trang 35Ý tưởng cơ bản của việc chia sẻ bí mật là phân chia một khóa bí mật thành cácmảnh và phân phối các mảnh này cho những người khác nhau, sao cho một nhóm concủa những người này có thể kết hợp với nhau để tìm ra khóa ban đầu.
Sơ đồ chia sẻ bí mật gọi là lược đồ (k ,n) với k, n là các số nguyên Trong sơ đồ,
có một người quản lý (Giả sủ là Alice) và n thành viên Alice phân chia bí mậtthành n phần và đưa cho mỗi thành viên một phần sao cho bất kỳ k thành phần nàođược kết hợp với nhau cũng có thể tìm ra khóa bí mật, nhưng bất kỳ (k-1) thành phầnnào kết hợp với nhau cũng không thể tìm ra khóa bí mật
Các mảnh được gọi là share hoặc shadow (dấu vết) Các giá trị khác nhau cho k
và n phản ánh sự tương quan giữa tính an toàn và tính tin cậy của hệ thống Một sơ đồchia sẻ bí mật là hoàn hảo nếu bất kỳ nhóm nào với tối đa (k-1) thành viên trong số
n thành viên cũng không thể tìm được khóa mật Giá trị của k được gọi là ngưỡng các giá trị f(i) (1 ≤ i ≤ n) cho các thành viên, trừ f(0) Như vậy, k thành viên kết hợp lại với nhau có thể tìm ra được bí mật vì khi đó chúng ta có một hệ k phương trình
k ẩn
Ưu điểm của sơ đồ này là tính hiệu quả và tính an toàn mà không cần bổ sung và Alice có thể thêm vào sơ đồ một thành viên mới
1.4.2 Sơ đồ chia sẻ bí mật có thể xác minh.
Sơ đồ chia sẻ bí mật có thể xác minh ( Veriffy Secret Sharing - VSS) hướng đếngiải quyết vẫn đề nêu trên Có nhiều đề xuất về sơ đồ VSS, ở đây trình bày sơ đồ củaOkamoto và Yamamoto
Gọi s là giá trị bí mật, k là ngưỡng, n là số thành viên
Trang 36Alice chọn đa thức ngẫu nhiên:
f(x) = (s + a1x + a2x2 + ….+ ak-1xk-1) mod q
Alice phân phối f(j) cho thành viên j, 1 ≤ j ≤ n
Alice chọn p sao cho q|(p-1), phần tử sinh ngẫu nhiên g Zp* cấp q và tính:
1.5.1 Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau:
1).Với tài liệu đầu vào (bản tin gốc) x, chỉ thu được giá trị băm duy nhất z = h(x) 2) Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tin x’, thì giá trị băm h(x’) h(x)
Trang 37Dù chỉ là một sự thay đổi nhỏ, ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin gốc x, thì giá trị băm h(x) của nó cũng vẫn thay đổi Điều này có nghĩa là: hai thông điệp
khác nhau, thì giá trị băm của chúng cũng khác nhau
3) Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của nó.Nghĩa là: với thông điệp x thì “dễ ” tính được z = h(x), nhưng lại “khó” tínhngược lại được x nếu chỉ biết giá trị băm h(x) (kể cả khi biết hàm băm h)
1.5.2 Tính chất của hàm băm.
1) Hàm băm không va chạm yếu
Hàm băm h được gọi là không va chạm yếu, nếu cho trước bức điện x,
“khó” thể tính toán để tìm ra bức điện x’ x mà h(x’) = h(x)
2) Hàm băm không va chạm mạnh Hàm băm h được gọi là không va chạm mạnh nếu “khó” thể tính toán để tìm ra hai bức thông điệp khác nhau x’ và x (x’x) mà có h(x’) = h(x).
3) Hàm băm một chiều.
Hàm băm h được gọi là hàm một chiều nếu khi cho trước một bản tóm lược thông báo z thì “khó thể” tính toán để tìm ra thông điệp ban đầu x sao cho h(x) = z.
Chương 2: GIỚI THIỆU VỀ TIỀN ĐIỆN TỬ
2.1 KHÁI NIỆM THANH TOÁN ĐIỆN TỬ.
Khâu quan trọng nhất của Thương mại điện tử (TMĐT) là việc thanh toán, bởi vìmục tiêu cuối cùng của cuộc trao đổi thương mại là người mua nhận được những cái gìcần mua và người bán nhận được số tiền thanh toán
Trang 38Thanh toán là một trong những vấn đề phức tạp nhất của TMĐT Hoạt độngTMĐT chỉ phát huy được tính ưu việt của nó khi áp dụng được hình thức thanh toánđiện tử (TTĐT).
TTĐT là việc thanh toán tiền thông qua các thông điệp điện tử(Electronic message) thay cho việc thanh toán bằng tiền Sec hay tiền mặt Bản chấtcủa mô hình TTĐT cũng là mô phỏng lại mô hình thanh toán truyền thống, nhưngcác thủ tục giao dịch, các thao tác xử lý dữ liệu, quá trình chuyển tiền… tất cả đềuđược thực hiện thông qua mạng máy tính, được nối bằng các giao thức chuyên dụng
2.1.1 Các mô hình thanh toán điện tử.
Hệ thống TTĐT thực hiện thanh toán cho khách hàng theo một số cách,
mà tiền mặt và séc thông thường không thể làm được Hệ thống thanh toán cũngcung cấp khả năng thanh toán hàng hóa và dịch vụ qua thời gian, bằng cách cho phépngười mua trả tiền ngay, trả tiền sau hay trả tiền trước
2.1.1.1 Mô hình trả tiền sau.
Trong mô hình này, thời điểm tiền mặt được rút ra khỏi tài khoản bên mua đểchuyển sang bên bán, xảy ra ngay (pay-now) hoặc sau (pay-later) giao dịch mua bán.Hoạt động của hệ thống dựa trên nguyên tắc Tín dụng (Credit crendental) Nó còn
được gọi là mô hình mô phỏng Séc (Cheque-like model)
2.1.1.2 Mô hình trả tiền trước.
Trong mô hình này, khách hàng liên hệ với ngân hàng (hay công ty môi giới –Broker) để có được chứng từ do ngân hàng phát hành Chứng từ hay Đồng tiền số nàymang dấu ấn của ngân hàng, được đảm bảo bởi ngân hàng và do đó có thể dùng ởbất cứ nơi nào đã có xác lập hệ thống thanh toán với ngân hàng này
Để đổi lấy chứng từ của ngân hàng, tài khoản của khách hàng bị triết khấu đitương ứng với giá trị của chứng từ đó Như vậy, khách hàng đã thực sự trả tiềntrước khi sử dụng chứng từ này để mua hàng và thanh toán.Chứng từ ở đây không phải
do khách hàng tạo ra, không phải dành cho một cuộc mua bán cụ thể, mà do ngân hàngphát hành và có thể sử dụng vào mọi mục đích thanh toán Vì nó có thể sử dụng
giống như tiền mặt, do đó mô hình này còn được gọi là mô hình mô phỏng tiền mặt
(Cash-like model)
Trang 39Khi có người mua hàng tại cửa hàng và thanh toán bằng chứng từ như trên,cửa hàng sẽ kiểm tra tính hợp lệ của chúng, dựa trên những thông tin đặc biệt dongân hàng tạo ra trên đó.
Cửa hàng có thể chọn một trong hai cách: Hoặc là liên hệ với ngân hàng đểchuyển vào tài khoản của mình số tiền trước khi giao hàng (deposit-now), hoặc làchấp nhận và liên hệ chuyển tiền sau vào thời gian thích hợp (deposit-later)
Trường hợp riêng của mô hình mô phỏng tiền mặt là mô hình “tiền điện tử”(Electronic Cash)
Hiện tại hầu hết các dịch vụ mua bán hàng hoá trên mạng đều sử dụng hình thức
thanh toán bằng thẻ tín dụng (Credit card) Người sử dụng cần nhập vào các thông tin:
tên người sử dụng, mã số thẻ, ngày hết hạn của thẻ Nhưng vì thẻ tín dụng được dùngphổ biến cho các thanh toán khác nhau, nên những thông tin trên có nhiều người biết.Thực tế hiện nay, các gian lận về thẻ trên Internet chiếm 6-7% tổng số các giao dịchthẻ ở các nước châu Âu, tỷ lệ này ở châu Á là 10% Tại Việt nam, dịch vụ thẻ tín dụngmới sử dụng cuối năm 1996, nhưng đến nay, tỷ lệ các giao dịch gian lận trên tổng sốcác giao dịch là hơn 10%
Trên thế giới hiện nay, nhu cầu về thương mại điện tử rất phổ biến, nhưng cácvấn đề hạ tầng trong thanh toán điện tử vẫn chưa được giải quyết tương xứng vàđáp ứng được các đòi hỏi đặt ra Việc nghiên cứu xây dựng các hệ thống thanh toánđiện tử để đảm bảo an toàn thông tin trong các dịch vụ thương mại điện tử làmột hướng nghiên cứu rất cần thiết hiện nay
Xây dựng các hệ thống thanh toán điện tử về mặt kỹ thuật chính là ứng dụng cácthành tựu của lý thuyết mật mã Các mô hình thanh toán sử dụng các giao thức mật mãđược xây dựng để đảm bảo an toàn cho việc giao dịch thông tin giữa các bên tham gia
2.2 KHÁI NIỆM TIỀN ĐIỆN TỬ.
Tiền điện tử (E-money, E-currency, Internet money, Digital money, Digital cash)
là thuật từ vẫn còn mơ hồ và chưa được định nghĩa đầy đủ Tuy nhiên có thể hiểu
Tiền điện tử là loại tiền trao đổi theo phương pháp “điện tử”, liên quan đến mạng
máy tính và những hệ thống chứa giá trị ở dạng số (Digital stored value Systems)
Trang 40Tiền điện tử cho phép người dùng có thể thanh toán khi mua hàng, hay sử dụngcác dịch vụ, nhờ truyền đi các “dãy số” từ máy tính (hay thiết bị lưu trữ nhưSmart Card) này tới máy tính khác (Smart Card)
Cũng như dãy số (Serial) trên tiền giấy, dãy số của tiền điện tử là duy nhất.Mỗi "đồng tiền điện tử” được phát hành bởi một tổ chức (ngân hàng) và biểu diễnmột lượng tiền thật nào đó
Tiền điện tử có loại ẩn danh (identified e-money), có loại định danh
(anonymous identified e-money)
Tiền ẩn danh không tiết lộ thông tin định danh của người sử dụng Tính ẩn danh của tiền điện tử tương tự như tiền mặt thông thường Tiền điện tử ẩn danh được rút từ một tài khoản, có thể được tiêu xài hay chuyển cho người khác mà không để lạidấuvết
Có nhiều loại tiền ẩn danh, có loại ẩn danh đối với người bán, nhưng không ẩndanh với ngân hàng Có loại ẩn danh hoàn toàn, ẩn danh với tất cả mọi người
Tiền điện tử định danh tiết lộ thông tin định danh của người dùng Nó tương tựnhư thẻ tín dụng, cho phép ngân hàng lưu dấu vết của tiền khi luân chuyển
Mỗi loại tiền trên lại chia thành 2 dạng: trực tuyến (online) và không trực tuyến
(offline)
Trực tuyến: nghĩa là cần phải tương tác với phía thứ ba để kiểm soát giao dịch Không trực tuyến: nghĩa là có thể kiểm soát được giao dịch, mà không cần
liên quan trực tiếp đến phía thứ ba (ngân hàng)
Hiện nay có 2 hệ thống tiền điện tử chính: Thẻ thông minh (Smart Card) hayphần mềm Tuy nhiên chúng có chung các đặc điểm cơ bản sau: Tính an toàn, tínhriêng tư, tính độc lập, tính chuyển nhượng, tính phân chia
2.2.1 Mô hình giao dịch mua bán bằng tiền điện tử.
Ngân hàng