Thông tin tài liệu
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Thị Vân Anh
NGHIÊN CỨU MỘT SỐ CHỮ KÝ SỐ ĐẶC BIỆT
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Thị Vân Anh
NGHIÊN CỨU MỘT SỐ CHỮ KÝ SỐ ĐẶC BIỆT
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ 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 - 2010
LỜI CẢM ƠN
Trƣớc hết, em xin gửi lời cảm ơn sâu sắc tới PGS.TS. Trịnh Nhật Tiến đã hƣớng
dẫn em phát triển khóa luận đi từ lý thuyết đến ứng dụng. Sự hƣớng dẫn của thầy trong
suốt thời gian qua đã giúp em tiếp cận tới một hƣớng nghiên cứu khoa học mới: đó là
nghiên cứu trong lĩnh vực an toàn thông tin. Qua đó, những lý thuyết về an toàn thông
tin đã lôi cuốn em và sẽ trở thành hƣớng nghiên cứu tiếp của em sau khi tốt nghiệp.
Em xin bày tỏ lòng biết ơn đến các thầy cô trong trƣờng Đại học Công nghệ đã
giảng dạy và cho em những kiến thức quý báu, làm nền tảng để em hoàn thành khóa
luận cũng nhƣ thành công trong nghiên cứu, làm việc trong tƣơng lai.
Cuối cùng, cho em gửi lời cảm ơn sâu sắc tới gia đình, bạn bè đã động viên kịp
thời để em học tập tốt và hoàn thành đƣợc khóa luận.
Em xin chân thành cảm ơn!
Hà Nội, tháng 5 năm 2010
Sinh viên
Phạm Thị Vân Anh
TÓM TẮT KHÓA LUẬN
Những năm gần đây, nhu cầu trao đổi thông tin từ xa của con ngƣời ngày càng
lớn, các ứng dụng trao đổi thông tin qua mạng diễn ra ngày càng nhiều. Tuy nhiên,
mỗi loại ứng dụng có những đòi hỏi riêng khác nhau, ví dụ nhƣ ứng dụng bầu cử từ xa
cần phải che dấu đƣợc thông tin ngƣời bỏ phiếu, hoặc những văn bản đã đƣợc ký
nhƣng không muốn ai cũng có thể xác thực chữ ký khi chƣa đƣợc sự đồng ý của ngƣời
ký. Chữ ký mù và chữ ký không thể chối bỏ đã ra đời để giải quyết vấn đề nêu trên. Ý
tƣởng chính của ký mù là ngƣời ký không biết mình đang ký trên nội dung gì. Ý tƣởng
chính của chữ ký không thể chối bỏ là chữ ký mà ngƣời ký tham gia trực tiếp vào quá
trình xác thực chữ ký. Khóa luận tốt nghiệp này đề cập về mặt lý thuyết của hai loại
chữ ký trên, xây dựng ứng dụng minh họa tƣơng ứng với từng loại chữ ký; đồng thời
xây dựng một ứng dụng thực hiện ký số RSA trên file văn bản tiếng Việt sử dụng thƣ
viện mã nguồn mở OpenSSL.
MỤC LỤC
LỜI MỞ ĐẦU 1
Chương 1. CÁC KHÁI NIỆM CƠ BẢN 3
1.1. CÁC KHÁI NIỆM TRONG TOÁN HỌC 3
1.1.1. Một số khái niệm trong số học 3
1.1.2. Một số khái niệm trong đại số 13
1.1.3. Khái niệm độ phức tạp của thuật toán 17
1.2. MÃ HÓA 21
1.2.1. Khái niệm mã hóa dữ liệu 21
1.2.2. Phân loại hệ mã hóa 22
1.3. KÝ SỐ 25
1.3.1. Khái niệm chữ ký số 25
1.3.2. Phân loại chữ ký số. 25
1.3.3. So sánh chữ ký thông thƣờng và chữ ký số 26
1.3.4. Tạo đại diện tài liệu và hàm băm 27
Chương 2. CHỮ KÝ MÙ RSA 30
2.1. KHÁI NIỆM CHỮ KÝ MÙ 30
2.1.1. Sơ đồ chữ ký RSA 30
2.1.2. Sơ đồ chữ ký mù RSA 31
2.1.3. Ví dụ minh họa 32
2.2. ỨNG DỤNG CHỮ KÝ MÙ 33
2.2.1. Ứng dụng trong tiền điện tử 33
2.2.2. Ứng dụng trong bỏ phiếu trực tuyến. 34
Chương 3. CHỮ KÝ KHÔNG THỂ CHỐI BỎ 36
3.1. KHÁI NIỆM CHỮ KÝ KHÔNG THỂ CHỐI BỎ 36
3.1.1. Sơ đồ chữ ký không thể chối bỏ Chaum – Van Antwerpen 36
3.1.2. Ví dụ minh họa 38
3.1.3. Một số đánh giá về sơ đồ 39
3.2. HÌNH THỨC TẤN CÔNG CHỮ KÝ KHÔNG THỂ CHỐI BỎ 43
3.2.1. Tống tiền ngƣời ký 43
3.2.2. Nhiều ngƣời cùng xác thực chữ ký mà ngƣời ký không biết 43
3.3. ỨNG DỤNG CHỮ KÝ KHÔNG THỂ CHỐI BỎ 45
3.3.1. Ứng dụng trong thẻ chứng minh thƣ điện tử. 45
3.3.2. Ứng dụng trong ký hợp đồng qua điện thoại 45
Chương 4. THỬ NGHIỆM CÁC CHƢƠNG TRÌNH 46
4.1. THỬ NGHIỆM ỨNG DỤNG CHỮ KÝ SỐ 46
4.1.1. Giới thiệu 46
4.1.2. Mô tả hoạt động chƣơng trình 47
4.2. THỬ NGHIỆM CHƢƠNG TRÌNH KÝ MÙ RSA 53
4.2.1. Giới thiệu 53
4.2.2. Mô tả hoạt động chƣơng trình 53
4.3. THỬ NGHIỆM CHỮ KÝ KHÔNG THỂ CHỐI BỎ 55
4.3.1. Giới thiệu 55
4.3.2. Mô tả hoạt động chƣơng trình 56
KẾT LUẬN 60
DANH SÁCH BẢNG
Bảng 1: Ví dụ sử dụng thuật toán Euclide tìm ước chung lớn nhất 5
Bảng 2: Ví dụ sử dụng thuật toán Euclide mở rộng để tìm phần tử nghịch đảo 16
Bảng 3: Thời gian chạy của các lớp thuật toán khác nhau 19
DANH SÁCH HÌNH VẼ
Hình 1: Giao diện chương trình ký số RSA 46
Hình 2: Giao diện chức năng “Ký”RSA 47
Hình 3: Giao diện chức năng xác thực chữ ký số RSA 49
Hình 4: Giao diện chức năng mã hóa DES file văn bản và chữ ký 50
Hình 5: Giao diện chức năng giải mã DES 51
Hình 6: Giao diện chức năng ký mù 53
Hình 7: Giao diện chức năng xóa mù chữ ký 54
Hình 8: Giao diện của người ký chữ ký không thể chối bỏ 55
Hình 9: Giao diện của người xác thực chữ ký không thể chối bỏ 55
Hình 10: Thông báo khi chữ ký không thể chối bỏ được xác thực là đúng 57
Hình 11: Thông báo khi điều kiện
không được thỏa mãn 58
Hình 12: Thông báo khi chữ ký đúng là giả mạo 58
Hình 13: Thông báo khi phát hiện người ký cố tình chối bỏ chữ ký của mình 59
1
LỜI MỞ ĐẦU
Trong những năm gần đây, sự bùng nổ của cách mạng thông tin đang diễn ra
nhanh chóng trên phạm vi toàn thế giới. Sự phổ biến rộng rãi của Internet đã kết nối
mọi ngƣời trên toàn thế giới lại với nhau, trở thành công cụ không thể thiếu, làm tăng
hiệu quả làm việc, tăng sự hiểu biết, trao đổi, cập nhật các thông tin một cách nhanh
chóng và tiện lợi.
Tuy nhiên Internet là một mạng mở, nó cũng chứa đựng nhiều hiểm họa đe dọa
hệ thống mạng, hệ thống máy tính, tài nguyên thông tin của các tổ chức, cá nhân. Ví
dụ những tin tức quan trọng nằm ở kho dữ liệu hay đang trên đƣờng truyền có thể bị
trộm cắp, bị làm cho sai lệch hoặc có thể bị làm giả mạo. Vì thế, nảy sinh yêu cầu phải
làm thế nào để văn bản khi đƣợc gửi sẽ không đƣợc nhìn thấy hay khó có thể giả mạo
dù cho có thể xâm nhập vào văn bản. Với sự ra đời của công nghệ mã hóa và chữ ký
số đã trợ giúp cho con ngƣời trong việc giải quyết các bài toán nan giải về an toàn
thông tin. Một tình huống nảy sinh khi trao đổi thông tin trên mạng, đó là khi ngƣời ta
nhận đƣợc một văn bản truyền trên mạng thì làm sao để có thể đảm bảo rằng đó là của
đối tác gửi cho mình. Tƣơng tự, ngƣời nhận nhận đƣợc tờ tiền điện tử thì có cách nào
để xác nhận rằng đó là của đối tác đã thanh toán cho họ. Ngoài ra còn có rất nhiều các
hoạt động kinh tế, xã hội từ xa nhƣ đàm phán, thanh toán, gửi tiền từ xa, Do đó chữ
ký số đƣợc sử dụng ở rất nhiều lĩnh vực: trong kinh tế với việc trao đổi các hợp đồng
của các đối tác kinh doanh, trong xã hội là các cuộc bỏ phiếu điện tử hay thăm dò
thông tin từ xa,…
Tuy nhiên, yêu cầu về chữ ký đặt ra với các ứng dụng là khác nhau. Có những
ứng dụng đòi hỏi sự nặc danh của tài liệu đƣợc ký nhƣ ứng dụng bỏ phiếu điện tử, tiền
điện tử. Một số ứng dụng khác lại yêu cầu sự tham gia của ngƣời ký vào quá trình xác
thực chữ ký. Chữ ký mù (ra đời năm 1983) và chữ ký không thể chối bỏ ( ra đời năm
1989 ) đã giải quyết hai vấn đề nêu ra ở trên.
Trong khóa luận này, em chú trọng vào tìm hiểu cơ sở lý thuyết của chữ ký mù
và chữ ký không thể chối bỏ kèm theo ứng dụng minh họa với từng loại. Đồng thời
xây dựng một ứng dụng thử nghiệm chữ ký số RSA trên file text tiếng Việt. Khóa luận
bao gồm các phần cụ thể sau:
Chƣơng 1: Các khái niệm cơ bản: nêu lên những lý thuyết toán học cơ bản
mà bất kỳ bài toán an toàn thông tin nào cũng cần tới, các khái niệm cơ bản về mã hóa
và ký số.
2
Chƣơng 2: Chữ ký mù RSA: trình bày về sơ đồ chữ ký mù RSA, ví dụ minh
họa và ứng dụng chữ ký mù.
Chƣơng 3: Chữ ký không thể chối bỏ: trình bày về sơ đồ chữ ký không thể
chối bỏ Chaum van Antwerpen, ví dụ minh họa, các hình thức tấn công chữ ký không
thể chối bỏ và ứng dụng của của chữ ký này.
Chƣơng 4: Thử nghiệm các chƣơng trình: thử nghiệm chƣơng trình chữ ký
số RSA, chƣơng trình chữ ký mù RSA và chƣơng trình chữ ký không thể chối bỏ.
Kết luận.
3
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
1.1. CÁC KHÁI NIỆM TRONG TOÁN HỌC
1.1.1. Một số khái niệm trong số học
1.1.1.1. Ước chung lớn nhất, bội chung nhỏ nhất
1/. Khái niệm
- Ước số và bội số
+ Cho hai số nguyên a và b, b ≠ 0. Nếu có một số nguyên q sao cho a = b*q, ta
nói rằng a chia hết cho b, kí hiệu b\a. Ta nói b là ước của a, và a là bội của b.
Ví dụ:
a = 6, b = 2, ta có 6 = 2*3, ký hiệu 2\6. Ở đây 2 là ƣớc của 6 và 6 là bội của 2
+ Cho các số nguyên a, b ≠ 0, tồn tại cặp số nguyên (q, r) (0
r < /b/) duy nhất
sao cho a = b * q + r. Khi đó q gọi là thương nguyên, r gọi là số dư của phép
chia a cho b. Nếu r = 0 thì ta có phép chia hết.
Ví dụ:
Cho a = 13, b = 5, ta có 13 = 5*2 + 3. Ở đây thƣơng là q = 2, số dƣ là r = 3.
- Ước chung lớn nhất, bội chung nhỏ nhất
+ Số nguyên d đƣợc gọi là ƣớc chung của các số nguyên
1
,
2
, …,
, nếu nó
là ƣớc của tất cả các số đó.
+ Số nguyên m đƣợc gọi là bội chung của các số nguyên
1
,
2
, …,
, nếu nó
là bội của tất cả các số đó.
+ Một ƣớc chung d > 0 của các số nguyên
1
,
2
, …,
, trong đó mọi ƣớc
chung của
1
,
2
, …,
đều là ƣớc của d, thì d đƣợc gọi là ƣớc chung lớn
nhất (UCLN) của
1
,
2
, …,
.
Ký hiệu d = gcd (
1
,
2
, …,
) hay d = UCLN(
1
,
2
, …,
).
Nếu gcd(
1
,
2
, …,
) = 1, thì các số
1
,
2
, …,
đƣợc gọi là nguyên tố
cùng nhau.
+ Một bội chung m > 0 của các số nguyên
1
,
2
, …,
, trong đó mọi bội
chung của
1
,
2
, …,
đều là bội của m, thì m đƣợc gọi là bội chung nhỏ
nhất (BCNN) của
1
,
2
, …,
.
Ký hiệu m = lcm(
1
,
2
, …,
) hay m = BCNN(
1
,
2
, …,
).
[...]... những khác biệt rõ rệt - Thứ nhất, chữ ký thông thƣờng là một phần vật lý của tài liệu đƣợc ký Tuy nhiên, chữ ký số không gắn vào thông điệp đƣợc ký nhƣ chữ ký thông thƣờng, vì thế thuật toán ký phải liên kết giữa chữ ký và thông điệp đƣợc ký - Thứ hai, thẩm định chữ ký thông thƣờng thực hiện bằng cách so sánh nó với chữ ký khác (chữ ký tin cậy) Trái lại, thẩm định chữ ký số dùng thuật toán kiểm tra công... tài liệu và hàm băm 1.3.4.1 Một số vấn đề với chữ ký số 1/ Vấn đề 1 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 Một số chữ ký trên bản tin có kích thƣớc gấp đôi bản tin gốc Ví dụ khi dùng sơ đồ chữ ký số DSS để ký vào bản tin có kích thƣớc 160 bit, thì chữ ký số này sẽ có kích thƣớc 320 bit.Trong khi đó trên thực tế, ta cần phải ký vào các bản... sau 2/ Chữ ký một lần” Để bảo đảm an toàn, “Khóa ký chỉ dùng 1 lần (one- time) trên 1 tài liệu Ví dụ: Chữ ký Lamport [15], chữ ký Fail - Stop (Van Heyst & Pedersen) [7] 1.3.3 So sánh chữ ký thông thƣờng và chữ ký số Chữ ký thông thƣờng (tức chữ ký viết tay) đƣợc dùng rất phổ biến trong các công việc hàng ngày, nhƣ viết thƣ, rút tiền từ ngân hàng, ký hợp đồng, Chữ ký đƣợc sử dụng nhƣ là bằng chứng để... ngƣời ký tài liệu là ai và khẳng định ngƣời ký đã chấp nhận hay chịu trách nhiệm về nội dung đƣợc đề cập trong tài liệu Vì vậy, một chữ ký phải có các thuộc tính sau: - Chữ ký phải có tính tin cậy (xác thực) - Chữ ký không thể giả mạo đƣợc: chữ ký chứng minh chỉ có ngƣời ký đã ký tài liệu một cách chủ định mà không có ai khác - Chữ ký không thể đƣợc dùng lại: chữ ký phải là một phần của tài liệu và không... Sử dụng sơ đồ chữ ký an toàn sẽ ngăn chặn đƣợc khả năng giả mạo - Một sự khác biệt nữa giữa chữ ký số và chữ ký thông thƣờng, bản sao của thông điệp số đã ký hoàn toàn giống với bản gốc Ngƣợc lại, vẫn có thể phân biệt đƣợc bản sao của tài liệu giấy đã ký và bản gốc Vì thế, phải ngăn chặn việc sử dụng lại thông điệp số đã ký khi quá hạn sử dụng bằng cách thêm thông tin thời gian khi thông điệp đƣợc ký. .. thông điệp gốc Ví dụ: Chữ ký Elgamal là chữ ký đi kèm thông điệp (xem [1],[2]) 25 1.3.2.2 Phân loại chữ ký theo mức an toàn 1/ Chữ ký “không thể phủ nhận” Nhằm tránh việ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ếp và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 Ví dụ: Chữ ký không thể phủ định... ký, trong đó ngƣời gửi chỉ cần gửi chữ ký , ngƣời nhận có thể khôi phục lại đƣợc thông điệp, đã đƣợc ký bởi chữ ký này Ví dụ: Chữ ký RSA là chữ ký khôi phục thông điệp, sẽ trình bày trong mục sau 2/ Chữ ký không thể khôi phục đƣợc thông điệp (đi kèm thông điệp) Là loại chữ ký, trong đó ngƣời gửi cần gửi chữ ký và phải gửi kèm cả thông điệp đã đƣợc ký bởi chữ ký này Ngƣợc lại, ngƣời nhận sẽ... điện tử với chữ ký số Về hình thức, chữ ký số hoàn toàn khác với chữ ký thông thƣờng nhƣng vẫn đảm bảo các thuộc tính của chữ ký nhƣ: tính tin cậy (xác thực), tính không thể giả mạo, tính không thể dùng lại, tính không thể thay đổi, tính không thể chối bỏ Về mặt thuộc tính chữ ký số và chữ ký 26 thông thƣờng đều có những thuộc tính giống nhau nhƣng về mặt vật lý và cấu trúc có những khác biệt rõ rệt... key) và bản mã (ciphertext) đều có thể gửi đi trên một kênh truyền tin không an toàn 24 1.3 KÝ SỐ 1.3.1 Khái niệm chữ ký số 1.3.1.1 Sơ đồ chữ ký số Sơ đồ chữ ký số 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 k K, có thuật toán ký sigk... S, sigk : P A, và thuật toán kiểm thử Verk V, Verk : P A đúng, sai, thoả mãn điều kiện sau với mọi xP, y A: Đúng, nếu y = sig k(x) Verk (x, y) = Sai, nếu y ≠ sigk (x) 1.3.2 Phân loại chữ ký số Có nhiều loại chữ ký tùy theo cách phân loại, sau đây xin giới thiệu một số cách 1.3.2.1 Phân loại chữ ký theo đặc trưng kiểm tra chữ ký 1/ Chữ ký khôi phục thông điệp Là loại chữ ký, trong đó ngƣời . mã hóa 22
1.3. KÝ SỐ 25
1.3.1. Khái niệm chữ ký số 25
1.3.2. Phân loại chữ ký số. 25
1.3.3. So sánh chữ ký thông thƣờng và chữ ký số 26
1.3.4. Tạo. về mã hóa
và ký số.
2
Chƣơng 2: Chữ ký mù RSA: trình bày về sơ đồ chữ ký mù RSA, ví dụ minh
họa và ứng dụng chữ ký mù.
Chƣơng 3: Chữ ký không thể
Ngày đăng: 18/02/2014, 01:11
Xem thêm: nghiên cứu một số chữ ký số đặc biệt và ứng dụng, nghiên cứu một số chữ ký số đặc biệt và ứng dụng