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án nà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ằng tiề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án phá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ủa cá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.
89 trang |
Chia sẻ: luyenbuizn | Lượt xem: 982 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Khóa luận 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ử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐẠ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
ĐẠ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
LỜ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
TÓ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ĩnh vự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ập trung 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 danh ngườ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ện nay 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óa luậ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++.
MỤC LỤC
DANH 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
Hì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
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án nà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ằng tiề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.
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án phá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ủa cá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ử.
Đố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ử.
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ại nhữ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ại tiền điện tử đã và đang được sử dụng trên thế giới. Từ đó, phân tích để thấy rõ các bà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ác giải pháp phù hợp cho từng bài toán.
Kết cấu của khóa luận.
Khó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 mã học.
Chương 2: Trình bày khái niệm về tiền điện tử, cấu trúc, tính chất và mô hình giao dịch của tiền điện tử.
Chương 3: Nêu một số bài toán phát sinh trong quá trình dùng tiền điện tử. Đối với mỗi bài toán, nêu ra các giải pháp, phân tích rõ ưu nhược điểm của các giải pháp.
Chương 4: Giới thiệu một số hệ thống tiền điện tử của các nước trên thế giới và demo hệ thống tiền điện tử KV.
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óa luậ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 theo cho khóa luận.
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM TOÁN HỌC.
Khái niệm trong số học.
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.
Ký hiệu: gcd(m, n)=1
2/. Ví dụ.
2, 3, 5, 7, 11…là những số nguyên tố.
15 và 16 là hai số nguyên tố cùng nhau.
Đồng dư thức.
1/. Khái niệm.
Cho các số nguyên a, b, m (m>0). Ta nói rằng a và b “đồng dư” với nhau theo modulo m, nếu chia a và b cho m, ta nhận được cùng một số dư.
Ký hiệu: a ≡ b (mod m)
2/. Ví dụ.
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.
a ≡ b (mod m)
m \ (a - b)
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)
(a-b) (mod n) ≡ [(a mod n) - (b mod n)] (mod n)
Tích các đồng dư:
(a*b) (mod n) ≡ [(a mod n) * (b mod n)] (mod n)
4/. Các lớp thặng dư:
Quan hệ “đồng dư” theo modulo m trên tập Z (tập các số nguyên) là một quan hệ tương đương (vì có tính chất phản xạ, đối xứng, bắc cầu), do đó nó tạo ra trên tập Z một phân hoạch gồm các lớp tương đương: hai số nguyên thuộc cùng một lớp tương đương khi và chỉ khi chúng có cùng một số dư khi chia cho m.
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 theo modulo m.
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.
Một phần tử có phần tử nghịch đảo, gọi là khả nghịch.
2/. Định lý.
UCLN (a, n) = 1 Û Phần tử a Î Zn có phần tử nghịch đảo.
3/. 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. 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-1 thì các nghiệm đồng dư theo modulo n/d.
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 , b Î “Logarit rời rạc” chính là việc giải phương trình x = log g b (mod p) với ẩn x.
Hay phải tìm số x duy nhất sao cho: g x º b (mod p).
Khái niệm trong đại số.
Khái niệm nhóm.
1/. Khái niệm.
Nhó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à .
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.
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 ¹ f, 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 xÎS.
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}
Ta có các nhóm con sinh bởi các phần tử 2,3 là:
= {0, 2, 4}
={0, 3}
Nhóm Cyclic.
1/. Khái niệm.
Nhóm (G, *) được gọi là Nhóm Cyclic nếu nó được sinh ra bởi một trong
các phần tử của nó.
Tức là có phần tử g Î G mà với mỗi a Î G, đều tồn tại số n Î N để
g n = g * g * … * g = a. (Chú ý g * g * … * g là g * g với n lần).
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.
Khái niệm độ phức tạp.
Khái niệm Thuật toán.
1/. Khái niệm Bài toán.
Bà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 được kế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:
Mô 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ọc hay 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.
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 quá trình tính toán đó.
Với thuật toán tựa Algol: Chi phí thời gian là số các phép tính cơ bản thực hiện trong quá trình tính toán .
Chi phí bộ nhớ của một quá trình tính toán là số ô nhớ cần thiết để thực hiện một quá trình tính toán.
Gọi A là một thuật toán, e là dữ liệu vào của bài toán đã được mã hoá bằng cách nào đó. Thuật toán A tính trên dữ liệu vào e phải trả một giá nhất định. Ta ký hiệu:
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:
Độ 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ố n0 , c mà PT(n) £ c.f(n) , "n ³ n0.
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.
- Nói cách khác:
+ Thuật toán thời gian đa thức là thuật toán có độ phức tạp thời gian O(n t ),
trong đó t là hằng số.
+ Thuật toán thời gian hàm mũ có độ phức tạp thời gian O(t f (n) ), trong đó t là hằng số và f(n) là đa thức của n.
- Thời gian chạy của các lớp thuật toán khác nhau:
Độ phức tạp
Số phép tính(n=106)
Thời gian(106ptính/s)
O(1)
1
1micro giây
O(n)
106
1 giây
O(n2)
1012
11,6 ngày
O(n3)
1018
32 000 năm
O(2n)
10301 030
10301 006 tuổi của vũ trụ
MÃ HÓA.
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ã).
Đó 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ư làm cho rõ nó.
Phân loại: Phân loại mã hóa theo đặc trưng của khóa
Có 2 loại:
+ Hệ mã hóa khóa đối xứng
+ Hệ mã hóa khóa công khai
Hệ mã hóa.
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ể.
C là tập hữu hạn các bản mã có thể.
K là 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 khóa lập mã ke Î K, có hàm lập mã eke Î E, eke: P® C,
Với khóa giải mã kd Î K, có hàm giải mã dkd Î D, dkd: C® P,
sao cho dkd (eke (x)) = x, " x Î P.
Ở đây x được gọi là bản rõ, eke (x) được gọi là bản mã.
Mã hóa và giải mã.
Người gửi G ® ® eke (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ã eke (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 = Zn
Tính bí mật f(n) = (p-1).(q-1). Chọn khóa công khai b < f(n), nguyên tố với f(n).
Khóa bí mật a là phần tử nghịch đảo của b theo mod f(n): a*b º 1 mod f(n).
Tập cặp khóa (bí mật, công khai) K = {(a, b)/ a, b Î Zn , a*b º 1 mod f(n)}.
Với Bản rõ x Î P và Bản mã y Î C, định nghĩa:
Hàm Mã hoá: y = ek (x) = x b mod n
Hàm Giải mã: x = dk (y) = y a mod n
2). Ví dụ .
Bản rõ chữ: R E N A I S S A N C E
*Sinh khóa:
Chọn bí mật số nguyên tố p= 53, q= 61, tính n = p * q = 3233, công khai n.
Đặt P = C = Zn , tính bí mật f(n) = (p-1). (q-1) = 52 * 60 = 3120.
+ Chọn khóa công khai b là nguyên tố với f(n), tức là ƯCLN(b, f(n)) = 1,
ví dụ chọn b = 71.
+ Khóa bí mật a là phần tử nghịch đảo của b theo mod f(n): a*b º 1(mod f(n)).
Từ a*b º 1 (mod f(n)), ta nhận được khóa bí mật a = 791.
* Bản rõ số:
R E N A I S S A N C E (Dấu cách)
17 04 13 00 08 18 18 00 13 02 04 26
m1 m2 m3 m4 m5 m6
Theo phép lập mã: ci = mi b mod n = mi 71 mod 3233, ta nhận được:
* Bản mã số:
c1 c2 c3 c4 c5 c6
3106 0100 0931 2691 1984 2927
Theo phép giải mã: mi = ci a mod n = ci 791 mod 3233, ta nhận lại bản rõ.
3). Độ an toàn
- 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, f(n).
Nếu biết được p và q, thì thám mã dễ dàng tính được f(n) = (q-1)*(p-1).
Nếu biết được f(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.
CHỮ KÝ.
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ã”.
Như 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
1). Sơ đồ chữ ký số
Sơ đồ chữ ký là bộ năm (P, A, K, S, V ), trong đó:
P là tập hữu hạn các văn bản có thể.
A là tập hữu hạn các chữ ký có thể.
K là tập hữu hạn các khoá có thể.
S là tập các thuật toán ký.
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)
Ver k (x, y) =
Sai, nếu y ¹ Sig k (x)
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
Tính bí mật f(n) = (p-1).(q-1). Chọn khóa công khai b < f(n), nguyên tố với f(n)
Khóa bí mật a là phần tử nghịch đảo của b theo mod f(n): a*b º 1 (mod f(n).
Tập cặp khóa (bí mật, công khai) K = {(a, b)/ a, b Î Zn , a*b º 1 (mod f(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)
Sơ đồ ký số Schnoor.
1/. Sơ đồ:
Lấy G là nhóm con cấp q của Zn* 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)
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.
Rút tiền:
Alice tạo tiền điện tử C (với những thông tin : số seri, giá trị của C, ví dụ là 100$)
Alice yêu cầu ngân hàng ký mù lên C.
Giao thức ký thành công, ngân hàng sẽ trừ 100$ trong tài khoản của Alice.
Tiêu tiền:
Alice đưa cho Bob tiền C đã có chữ ký của ngân hàng, và yêu cầu Bob đưa cho quyển sách B.
Bob kiểm tra chữ ký trên C. Nếu không hợp lệ, Bob sẽ dừng ngay giao dịch.
Gửi tiền:
Bob lấy C từ Alice và gửi cho ngân hàng.
Ngân hàng xác thực chữ ký trên C:
+ 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ậy tiền điện tử C không lưu lại dấu vết của những ai đã tiêu nó.
1/. Sơ đồ chữ ký mù RSA:
Yêu cầu bài toán là: A muốn lấy chữ ký của B trên x nhưng không muốn B biết x. Quá trình thực hiện như sau.
+ Lấy p, q là các số nguyên tố lớn, tính n = p*q
+ Tính f(n) = (p-1).(q-1), ab ≡ 1 mod f(n)
+ r là số ngẫu nhiên Î Zn (chọn r 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 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 = y
Như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
Ký:
Bước 1:
Ngân hàng lấy ngẫu nhiên r Î Zq
Tính t = gr và gửi t cho Alice
Bước 2:
Alice lấy ngẫu nhiên γ, δ Î Zq
Tính t’ = t gγ yδ mod n
Tinh c = H (Cm, t’)
Tính c’ = c- δ mod q = H(Cm,t’) – δ mod q.
Gửi c’ cho ngân hàng.
Bước 3: Ngân hàng tính s = c’ – r x mod q
Gửi s cho Alice.
Bước 4: Tính s’ = s + γ mod q. Chữ ký là (c, s’)
Kiểm tra chữ ký:
Chữ ký (c, s) là hợp lệ nếu: c = H(Cm, t’) = H(Cm. gs * yc).
Chữ ký dùng một lần:
Sơ đồ chữ ký dùng một lần có nhiều ứng dụng, đặc biệt là một số ứng dụng trong các mô hình tiền điện tử. Sau đây là sơ đồ chữ ký dùng một lần của Schorr.
Với sơ đồ này, người dùng trong cùng một hệ thống có thể chia sẻ một số ngẫu nhiên và 2 số nguyên tố p và q sao cho: q | (p-1), q ≠ 1 và gq = 1 mod q
Chuẩn bị:
Người dùng, giả sử Alice chọn Sk Î Zq ngẫu nhiên làm khóa bí mật.
Tí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*
Tính x = gr mod p, c = H (m||x), y= ( r + cSk )mod q
Chữ ký trên thông điệp m là (c, y)
Kiểm tra:
Ver = true ó x = gr mod p và c = H (m || x)
Nhận xét:
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.
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
Các file đính kèm theo tài liệu này:
- Nguyen Thi An_K50HTT_Khoa luan tot nghiep dai hoc.doc