Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,65 MB
Nội dung
ĐẠ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ỨUMỘTSỐCHỮKÝSỐĐẶCBIỆT
VÀ ỨNGDỤ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ỨUMỘTSỐCHỮKÝSỐĐẶCBIỆT
VÀ ỨNGDỤ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êncứ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êncứ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 ứngdụ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 ứngdụng có những đòi hỏi riêng khác nhau, ví dụ nhƣ ứngdụ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ứngdụng minh họa tƣơng ứng với từng loại chữ ký; đồng thời
xây dựngmộtứngdụ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ộtsố khái niệm trong số học 3
1.1.2. Mộtsố 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. ỨNGDỤNGCHỮKÝ MÙ 33
2.2.1. Ứngdụng trong tiền điện tử 33
2.2.2. Ứngdụ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ộtsố đá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. ỨNGDỤNGCHỮKÝ KHÔNG THỂ CHỐI BỎ 45
3.3.1. Ứngdụng trong thẻ chứng minh thƣ điện tử. 45
3.3.2. Ứngdụ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 ỨNGDỤNGCHỮ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 ứngdụ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ƣ ứngdụng bỏ phiếu điện tử, tiền
điện tử. Mộtsốứngdụ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 ứngdụng minh họa với từng loại. Đồng thời
xây dựngmộtứngdụ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àứngdụngchữ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àứngdụ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ộtsố 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ộtsố 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ộtsố 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ộtsốchữký trên bản tin có kích thƣớc gấp đôi bản tin gốc Ví dụ khi dùngsơ đồ 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ộtchữ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ụngsơ đồ 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ộtsố 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ể