Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
1,07 MB
Nội dung
MỤC LỤC MỞ ĐẦU CHƯƠNG 1:CƠ SỞ TOÁN HỌC CỦA MẬT MÃ 1.1 Số nguyên tố số nguyên tố 1.2.Khái niệm đồng dư…………………………………………………………… 1.3.Định nghĩa hàm phi Euler……………………………………………………61.4.Thuật toán Eulide…………………………………………………………… 14 1.5.Thuật toán Euclidean mở rộng……………………………………………… 14 * 1.6.Không gian Zn Z n…………………………………………………………15 1.6.1.Không gian Zn(các số nguyên theo modulo n)…………………………… .15 * 1.6.2.Không gian Z n……………………………………………………………15 1.7.Định nghĩa cấp số a Z*n……………………………………………15 1.8.Tập thặng dư bậc hai theo modulo………………………………………… 15 1.9 Phần tử nghịch đảo…………………………………………………………16 1.10.Lý thuyết độ phức tạp 17 CHƯƠNG 2: TỔNG QUAN VỀ MẬT MÃ HỌC 11 2.1.Lịch sử phát triển mật mã 11 2.1.1.Mật mã học cổ điển 11 2.1.2.Thời trung cổ 12 2.1.3.Mật mã học Thế chiến II 13 2.1.4.Mật mã học đại 16 2.2.Một số thuật ngữ sử dụng hệ mật mã 20 2.3.Định nghĩa mật mã học 23 2.4.Phân loại hệ mật mã học 24 2.4.1.Mật mã cổ điển 24 2.4.2.Mật mã đại 25 2.5.Hệ mật mã cổ điển 29 2.5.1.Hệ mã Caesar 29 2.5.2.Hệ mã Affinne 30 2.5.3.Hệ mã Vigenère 33 2.5.4.Hệ mật Hill 34 2.5.5.Hệ mật Playfair 35 2.6.Hệ mật mã công khai 37 2.6.1.Giới thiệu mật mã với khóa công khai 37 2.6.1.1.Lịch sử 37 2.6.1.2.Lý thuyết mật mã công khai 38 2.6.1.3.Những yếu điểm, hạn chế mật mã với khóa cơng khai 40 2.6.1.4.Ứng dụng mật mã 41 2.6.2 Hệ mật RSA 42 2.6.2.1.Lịch sử 42 2.6.2.2.Mơ tả thuật tốn 43 2.6.2.3.Tốc độ mã hóa RSA 46 2.6.2.4.Độ an toàn RSA 48 2.6.2.5.Sự che dấu thông tin hệ thống RSA 50 2.6.3.Hệ mật Rabin 53 2.6.3.1.Mô tả giải thuật Rabin 53 2.6.3.2.Đánh giá hiệu 54 CHƯƠNG 3: CHỮ KÝ ĐIỆN TỬ 60 3.1.Lịch sử đời chữ ký điện tử 62 3.2.Khái niệm mơ hình chung chữ ký điện tử……………………………62 3.3.Hàm băm…………………………………………………………………… 66 3.4.Một số sơ đồ chữ ký điện tử………………………………………………… 3.4.1.Sơ đồ chữ ký RSA………………………………………………………… 3.4.2.Sơ đồ chữ ký ElGama…………………………………………………… CHƯƠNG 4: MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ……………………………… 4.1.Cài đặt chương trình LỜI CẢM ƠN - Để hoàn thành đồ án này, trước hết, em xin gửi lời cảm ơn biết ơn sâu sắc tới thầy giáo Trần Ngọc Thái, người tận tình hướng dẫn, bảo giúp đỡ em suốt thời gian nghiên cứu hoàn thành đồ án - Em xin chân thành cảm ơn tới thầy cô khoa Công Nghệ Thông Tin thầy cô trường Đại học dân lập Hải Phịng, người tận tình giảng dậy, tạo điều kiện cho em suốt trình học tập nghiên cứu trường -Cuối cùng, em xin cảm ơn gia đình, bạn bè, người thân ln bên động viên nguồn cổ vũ lớn lao, động lực suốt trình học tập nghiên cứu -Mặc dù em cố gắng hoàn thành đồ án phạm vi khả Tuy nhiên khơng tránh khỏi điều thiếu sót Em mong nhận cảm thông tận tình bảo q thầy tồn thể bạn Một lần em xin chân thành cảm ơn ! Hải Phòng, ngày tháng năm 2019 Sinh viên MỞ ĐẦU Mục đích: - Hệ thống lại kiến thức mật mã -Tìm hiểu vềmã hóa đối xứng - Nghiên cứu chữ ký điện tử số mơ hình ứng dụng chữ ký điện tử - Xây dựng chương trình chữ ký điện tử ngôn ngữ C# Ý nghĩa: Luận văn gồm phần mở đầu, kết luận chương với nội dung sau: -Chương 1: Cơ sở tốn học mật mã - Chương 2: Tổng quan mật mã học -Chương 3: Chữ ký điện tử -Chương 4: Mô chữ ký điện tử CHƯƠNG 1: 1.1 - CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HỌC Số nguyên tố số nguyên tố Số nguyên tố số nguyên dương lớn 1chỉ chia hết cho Ví dụ:2,3,5,7,11,…là số ngun tố - Hệ mật mã thường sử dụng số nguyên tố lớn 10 150 - Hai sốm vàn gọi nguyên tố ước số chung lớn chúng bằng1.Ký hiệu: gcd (m, n)=1 Ví dụ:11 13 nguyên tố Định lý số nguyên tố: Với n>=2 phân tích thành lũy thừa số e1 e2 e3 nguyên tố n = p1 p2 p3 , với pi : số nguyên tố, ei Hệ quả: Giả sử e1 e2 e3 a = p1 p2 p3 …pk f1 f2 f3 b = p1 p2 p3 pk Z + ek fk gcd(a,b) = p1min(e1,f1).p2min(e2,f2)…pkmin(ek,fk) lcm(a,b) = p1max(e1,f1).p2max(e2,f2)…pkmax(ek, fk) Ví dụ: a = 4864=2 19 b = 3458 =2.7.13.19 ta : gcd(a,b)=2.19 lcm(a,b)= 19.7.13 1.2 Khái niệm đồng dư Cho n số nguyên dương Nếu hai số ngun ,khí a gọi đồng dư với b theo modulo n, viết a≡b(mod n) n│(a-b) n gọi modulo đồng dư Ví dụ 24≡9(mod 5),17≡5(mod 3) Tính chất: Nếu a b(mod n),nếu a b trả số dư đem chia chúng cho n Nếu a a (mod n)(tính phản xạ) Nếu a b (mod n) b Nếu a b (mod n), b a (mod n) c (mod n) a c (mod n) Nếu a≡a1(mod n) b≡b1(mod n) a+b=(a1+b1)(mod n) a.b≡a1b1(mod n) 1.3 Định nghĩa hàm phi Euler Với n≥1 gọi φ(n) tập số nguyên tố với n nằm khoảng [1,n] Tính chất: Nếu p số nguyên tố φ(p) = p – Nếu gcd(n.m)=1 φ(m.n)=φ(m).(n) e1 e2 ek Nếu n=p1 p2 …pk ,dạng khai triển tắc n (n)=n(1-1/p1)(1-1/p2)…(1-1/pk) Ví dụ :φ(11)=11-1=10 1.4 Thuật tốn Euclide Thuật tốn: Tìm UCLN hai số INPUT: Hai số nguyên không âm a b, cho a≥b OUTPUT: UCLN a, b 1.Trong b ≠ thực Đặt r← a mod b, a←b, b←r 2.Kết_qủa(a) Ví dụ :Tính gcd(4864,3458)=38 4864=1.3458+1406 3458=2.1406+646 1406=2.646+114 646=5.114+76 114=1.76+38 76=2.38+0 Thuật tốn Euclidean mở rộng để khơng tính ước số chung d hai số ngun a b,mà cịn tính hai số nguyên x,y thỏa mãn ax+by=d 1.5 Thuật toán Euclidean mở rộng INPUT :Hai số nguyên không âm a b , a≥b OUTPUT: d= UCLN(a,b) số nguyên x y thỏa mãn ax + by = d (1) Nếu b = đặt d ←a, y ← 0, Kết_quả(d,x,y) (2) Đặt x2 ← 1, x1 ← 0, y2 ←0, y1 ←1 (3) Trong b > 0,thực hiện: (3.1) q = [a/b], r ← a – qb, x ← x2 – qx1, y ←y2 – qy1 (3.2) a ← b, b ← r, x2 ←x1 , x1 ← x, y2 ←y1, y1 ←y (4) Đặt d ←a, x ←x2, y ← y2 ,Kết_quả(d,x,y) Đánh giá độ phức tạp: Thuật tốn Euclide mở rộng có độ phức tạp thời gian :O((lg n)2) 1.6 Không gian Zn Z * n 1.6.1 Không gian Zn Là tập hợp số nguyên {0,1,2, ,n-1}.Các phép toán Zn cộng,trừ,nhân,chia thực theo module n Ví dụ:Z21={0,1,2,3,…,20} 1.6.2 Khơng gian Z*n * Là tập hợp số nguyên a Zn,nguyên tố n Tức là:Z n={a * Zn│gcd(n,a)=1},(n) số phần tử Z n * Nếu số nguyên tố :Z n={a€ Zn│1≤a≤n-1} * Ví dụ: Z3={0,1,2} Z 3={1,2} gcd(1,3)=1 gcd(2,3)=1 1.7 Định nghĩa cấp số a * Cho Z n,khi cấp a,kí hiệu ord(a) số nguyên dương nhỏ t cho a 1(mod n)trong Z 1.8 Z* * n Tập thặng dư bậc hai theo modulo * Cho a Z n,a gọi thặng dư bậc hai theo modulo n tồn x Z * n cho x a(mod n) không tồn x a gọi bất thặng dư bậc hai theo modulo n.Tập hợp thặng dư bậc hai ký hiệu Q n tập bất thặng dư bậc hai ký hiệu 1.9Phần tử nghịch đảo Cho a Zn,số nghịch đảo a theo modulo n số nguyên x Zn ,nếu a.x (mod n ).Nếu tồn x a gọi khả -1 nghịch,nghịch đảo a ký hiệu a Tính chất : a Zn,a khả nghịch gcd(a,n)=1 Ví dụ:Các phần tử khả nghịch Z9 1,2,4,5,7 -1 Cho ví dụ ,4 =7 4.7 1(mod 9) *Thuật tốn tính nghịch đảo Zn INPUT: a Zn -1 OUTPUT:a mod n,nếu tồn 1.Sử dụng thuật toán Euclidean mở rộng,tìm x y để ax+ny=d,trong đó,thì gcd(a,n) -1 2.Nếu d>1 a khơng tồn Ngược lại kết quả(x) 1.10 Lý thuyết độ phức tạp Một chương trình máy tính thường cài đặt dựa thuật tốn để giải toán hay vấn đề Tuy nhiên, thuật tốn đúng, chương trình khơng sử dụng liệu đầu vào thời gian kết lâu sử dụng nhiều nhớ (vượt khả đáp ứng máy tính) Khi tiến hành phân tích thuật tốn nghĩa tìm đánh giá thời gian "không gian" cần thiết để thực thuật tốn Khơng gian hiểu u cầu nhớ, thiết bị lưu trữ, máy tính để thuật tốn làm việc Việc xem xét khơng gian thuật tốn phụ thuộc phần lớn vào cách tổ chức liệu thuật tốn Trong phần này, nói đến độ phức tạp thuật toán, đề cập đến đánh giá mặt thời gian mà thơi Phân tích thuật tốn cơng việc khó khăn, địi hỏi phải có hiểu biết sâu sắc thuật toán nhiều kiến thức toán học khác Ðây công việc mà người làm Rất may mắn nhà toán học phân tích cho độ phức tạp hầu hết thuật tốn sở (sắp xếp, tìm kiếm, thuật tốn số học, ) Chính vậy, nhiệm vụ lại hiểu khái niệm liên quan đến độ phức tạp thuật toán Ðánh giá thời gian thuật toán xác định thời gian tuyệt đối (chạy thuật toán giây, phút, ) để thực thuật toán mà xác định mối liên quan liệu đầu vào (input) thuật tốn chi phí (số thao tác, số phép tính cộng,trừ, nhân, chia, rút căn, ) để thực thuật tốn Sở dĩ người ta khơng quan tâm đến thời gian tuyệt đối thuật tốn yếu tố phụ thuộc vào tốc độ máy tính, mà máy tính khác có tốc độ khác Một cách tổng quát, chi phí thực thuật toán hàm số phụ thuộc vào liệu đầu vào : T = f(input) Tuy vậy, phân tích thuật tốn người ta thường ý đến mối liên quan độ lớn liệu đầu vào chi phí Trong thuật tốn, độ lớn liệu đầu vàothường thể số nguyên n Chẳng hạn : xếp n số nguyên, tìm số lớn n số, tính điểm trung bình n học sinh, Lúc này, người ta thể chi phí thực thuật toán hàm số phụ thuộc vào n : T = f(n) Việc xây dựng hàm T tổng quát trường hợp thuật tốn việc khó khăn, nhiều lúc khơng thể thực Chính mà người ta xây dựng hàm T cho số trường hợp đáng ý thuật toán, thường trường hợp tốt xấu Để đánh giá trường hợp tốt xấu người ta dựa vào định nghĩa sau: f(n) = O(g(n)) nói f(n) có cấp cao g(n) tồn số C k cho | f(n) | ≤ C.g(n) với n > k Tuy chi phí thuật tốn trường hợp tốt xấu nói lên nhiều điều chưa đưa hình dung tốt độ phức tạp thuật tốn Ðể hình dung xác độ phức tạp thuật toán, ta xét đến yếu tố khác độ tăng chi phí độ lớn n liệu đầu vào tăng Một cách tổng quát, hàm chi phí thuật tốn (xét trường hợp đó) bị chặn O(f(n)) ta nói thuật tốn có độ phức tạp O(f(n)) trường hợp Như vậy, thuật tốn tìm số lớn có độ phức tạp trường hợp tốt xấu O(n) Người ta gọi thuật tốn có độ phức tạp O(n) thuật tốn có độ phức tạp tuyến tính Sau số "thước đo" độ phức tạp thuật toán sử dụng rộng rãi Các độ phức tạp xếp theo thứ tự tăng dần Nghĩa tốn có độ phức tạp O(nk) phức tạp tốn có độ phức tạp O(n) O(logn) Oscar thay chữ ký v Alice u, chữ ký Oscar v’= Sig O(u), sau gửi (u,v’) đến Bob.Khi nhận v’, Bob kiểm thử thấy sai, gửi phản hồi lại Alice.Alice chứng minh chữ ký giả mạo Alice đưa chữ ký cho Bob trình truyền tin bị chậm lại Như trường hợp b, Oscar giả mạo chữ ký mà khơng cần giải mã Vì có lời khuyên: ký trước mã hóa chữ ký 3.4.2 Sơ đồ chữ ký ElGama Sơ đồ chữ ký ElGama thiết kế với mục đích dành riêng cho chữ ký số, điểm mạnh số nguyên tố p sơ đồ với R ngẫu nhiên nên ta có nhiều chữ ký số Điều có nghĩa có nhiều chữ ký hợp lệ điện cho trước Thuật tốn xác minh phải có khả chấp nhận chữ ký hợp lệ xác thực chữ ký Sơ đồ chữ ký ElGama - * Chọn p số nguyên tố Zp trường Zp nhóm với phép nhân * - Giả sử g phần tử sinh Zp - Chọn ngẫu nhiên r Zp tính K= g mod p r cơng khai K, p,g Yếu tố xác thực hóa Zp - A gửi m cho B với m - Chọn ngẫu nhiên R - Yếu tố xác thực hóa:X=g Y xác định từ phương trình: Zp cho (R,p-1)=1 R m=r*X+R*Y(mod p-1) Khi gửi A gửi (m,X,Y) cho B Xác thực: X Y m m B tính Z=K * X (mod p), Z=g đúng, Z≠g sai Nếu chữ ký thiết lập xác minh thành cơng vì: X K *X Y rX RY g g m (mod p) g (mod p) B tính chữ ký cách dùng giá trị mật r lẫn số ngẫu nhiên mật R(dùng để ký lên điện m) Việc xác minh thực thơng tin cơng khai Ví dụ: - Với m=5, p=11 g=2 Chọn r=8 Chọn R=9 K=2 = 25 mod 11=3 yếu tố xác thực hóa: X=2 = 3*2=6 Từ phương trình 5= 8*6+9*Y (mod 10) suy -1 : Y=(5-8*6)*9 (mod 10) =(55-48)*9(mod 10)=3 thử xác thực - Z=3 *6 mod 11=10 m g = mod 11=10(đúng) Xét độ mật sơ đồ chữ ký ElGama Giả sử, Oscar thử giả mạo chữ ký điện m cho trước mà r Nếu Oscar chọn X sau thử tìm giá trị Y tương ứng Anh ta phải tính Logarithm rời m -X rạc LogXg K Mặt khác, chọn Y sau thử tìm X thử giải phương trình: X Y K * X gm(mod p) Đây tốn chưa có lời giải Tuy nhiên, dường chưa gắn với tốn nghiên cứu kỹ nên cịn khả có cách để tính X,Y đồng thời để (Y,X) chữ ký Hiện thời không tìm cách giải song khơng khẳng định khơng thể giải Nếu Oscar chọn X Y sau thử giải tìm m, phải đối mặt với toán Logarithm rời rạc Vì Oscar khơng thể ký điện ngẫu nhiên biện pháp Tuy nhiên, có số cách để Oscar giả mạo chữ ký lên điện Sau kiểu giả mạo mà Oscar ký điện ngẫu nhiên việc chọn X, Y m đồng thời Giả thiết i j số nguyên ≤ i ≤ p -2 , 0≤j≤p-2 UCLN(j,p-2)=1 Khi thực tính tốn sau: i j X=g K mod p -1 Y=-Xj mod(p-1) -1 m=- Xij mod(p-1) -1 j tính theo modulo (p-1) (UCLN(j, p-1)=1) Ta nói (X,Y) chữ ký hợp lệ m Điều chứng minh qua việc kiểm tra điều kiện xác minh X Y K * X gm(mod p) Sau kiểu giả mạo thứ hai Oscar bắt đầu điện B ký trước Giả sử (X,Y) chữ ký hợp lệ m Khi Oscar có khả ký lên điện khác Giả sử i, j, h số nguyên ≤ i, j,h ≤ p -2 UCLN(hX-jY,p1)=1 Ta thực tính tốn sau: h i j = X g K mod p = Y (hX -jY)-1 mod (p-1) , -1 m = (hm+iY ) (hX -jY) -1 mod (p-1), -1 (hX -jY) tính theo modulo (p-1) Khi dễ dàng kiểm tra điều kiện xác minh m’ K g (mod p) Vì ( , ) chữ ký hợp lệ m’ Cả hai trường hợp tạo chữ ký giả mạo hợp lệ song không xuất khả đối phương giả mạo chữ ký điện có lựa chọn họ mà khơng phải giải tốn Logarithm rời rạc Vì khơng có nguy hiểm độ an tồn sơ đồ chữ ký Elgamal Cuối ta nêu cách phá sơ đồ không áp dụng cách cẩn thận Trước hết, giá trị R ngẫu nhiên dùng để tính chữ ký phải gữ bí mật khơng để lộ Vì R bị lộ, đơn giản để tính: -1 R=(m-RX)Y mod(p-1) Một r bị lộ hệ thống bị phá Oscar dễ dàng giả mạo chữ ký Một kiểu dùng sai sơ đồ dùng giá trị R để ký hai điện khác Điều tạo thuận lợi cho Oscar tính r phá hệ thống Sau cách thực Giả sử (X, Y1) chữ ký m1 (X,Y2) chữ ký m2 Khi X K X X Và K X Như vậy: Y1 Y2 gm1(mod p) gm2(mod p) m1 m2 g g X Y1Y2 (mod p) tương đương với phương trình: m1 – m2 R(Y1- Y2) (mod p-1), giả sử d= UCLN(Y1- Y2, p-1) Vì d | (p-1) d | (Y1- Y2) nên d | (m1 – m2 ) Ta định nghĩa: m’= (m1 – m2) /d Y’=( Y1- Y2)/d p’ = (p-1)/d đồng dư thức trở thành m’ RY’(mod p’) UCLN (Y’,p’)=1 nên ta tính -1 = (Y’) mod p’ Khi giá trị R xác định theo modulo p’ R= m’ mod p’ Phương trình cho d giá trị R: R=m’ +ip’ (mod p) với i đó, ≤ i≤d-1 Trong giá trị d xác định giá trị R qua việc kiểm tra điều kiện : X g (mod p) CHƯƠNG 4: 4.1 MÔ PHỎNG CHỮ KÝ ĐIỆN TỬ Cài đặtchương trình Quy trình sử dụng chữ ký điện tử Giao diện chương trình Bước 1: Khởi tạo RSA Tạo khóa Bước 2: Tải nội dung văn khóa bí mật để ký Tải khóa bí mật Ký văn Chữ ký điện tử Lưu file chữ ký Bước 3: Người nhận đọc văn Kiểm tra file chữ ký Dùng khóa cơng khai để kiểm thử Tải khóa cơng khai để kiểm thử Kiểm tra nội dung ký So sánh với văn ban đầu KẾT LUẬN Ngày nay, với phát triển khoa học công nghệ đại Công nghệthông tin, ngành mật mã có bước phát triển mạnh mẽ, đạt nhiều kết quảlý thuyết sâu sắc tạo sở cho việc phát triển giải pháp bảo mật, an toàn thong tin lĩnh vực hoạt động người Đặc biệt ưu điểm chữ ký số Chữ ký số biết đến trao đổi thông tin ngày phổ biến mạng truyền thông nơi mà chữ ký tay phát huy tác dụng.Khi ứng dụng mạng máy tính trở lên phổ biến, thuận lợi quan trọng u cầu an tồn mạng, an ninh liệu mạng ngày trở lên cấp bách cần thiết Nguồn tài nguyên mạng dễ bị đánh cắp phá hỏng khơng có chế bảo mật cho chúng sử dụng chế bảo mật lỏng lẻo Thông tin mạng, dù truyền hay lưu trữ cần bảo vệ Các thông tin phải giữ bí mật Cho phép người ta kiểm tra để tin tưởng chúng không bị sửa đổi so với dạng nguyên thủy chúng người nhận gửi cho ta Trong báo cáo em trình bày kiến thức chữ ký điện tử, số mơ hình ứng dụng chữ ký điện tử xây dựng chương trình mô chữ ký điện tử hướng dẫn tận tình ThS.Trần Ngọc Thái Tuy nhiên trình độ thân có giới hạn thời gian nghiên cứu chưa sâu nên báo cáo trảnh khỏi thiếu sót Vì em mong nhận đóng góp ý kiến thầy giáo giáo khoa, thấy cô giáo hội đồng phản biện để báo cáo tốt nghiệp em hoàn thiện Em xin chân thành cảm ơn thầy cô! ... 3: Chữ ký điện tử -Chương 4: Mô chữ ký điện tử CHƯƠNG 1: 1.1 - CƠ SỞ TOÁN HỌC CỦA MẬT MÃ HỌC Số nguyên tố số nguyên tố Số nguyên tố số nguyên dương lớn 1chỉ chia hết cho Ví dụ:2,3,5,7,11,…là số. .. 2.6.3.1 .Mô tả giải thuật Rabin 53 2.6.3.2.Đánh giá hiệu 54 CHƯƠNG 3: CHỮ KÝ ĐIỆN TỬ 60 3.1.Lịch sử đời chữ ký điện tử 62 3.2.Khái niệm mơ hình chung chữ ký điện. .. bạn Một lần em xin chân thành cảm ơn ! Hải Phòng, ngày tháng năm 2019 Sinh viên MỞ ĐẦU Mục đích: - Hệ thống lại kiến thức mật mã -Tìm hiểu vềmã hóa đối xứng - Nghiên cứu chữ ký điện tử số mơ hình