Luận văn Mô phỏng tiền điện tử

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ử”

pdf65 trang | Chia sẻ: lvbuiluyen | Lượt xem: 2144 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Luận vă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
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG…………….. Luận văn Mô phỏng tiền điện tử 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 k