Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
0,95 MB
Nội dung
MỤC LỤC MỞ ĐẦU Chƣơng CƠ SỞ MẬT MÃ VÀCHỮKÝ SỐ 1.1 CƠ SỞ TOÁN HỌC 1.1.1 Phép chia hết 1.1.2 Không chia hết 1.1.3 Ƣớc số 1.1.4 Nguyên tố 1.1.5 Số nguyên tố 1.1.6 Định nghĩa hàm phi Euler 1.1.7 Định nghĩa thặng dƣ bậc 1.1.8 Số Blum 1.2 TÌM HIỂU MẬT MÃ 1.2.1 Giới thiệu 1.2.2 Sơ đồ hệ thống mật mã 1.2.3 Mật mã khóa đối xứng 1.2.3.1 Mã thay 1.2.3.2 Mã Anffine: 10 1.2.3.3 Mã Hill: 12 1.2.3.4 Mã hoán vị: .13 1.2.3.5 Mã khóa công khai: 15 1.2.3.6 Mã RSA: 15 1.2.3.7 Mã Elgamal: 16 1.3 CHỮKÝ SỐ 17 1.3.1 Giới thiệu chung chữký số: .17 1.3.2 Định nghĩa lƣợc đồ chữ ký: .18 1.4.Hàm Hash 21 1.4.1 Giới thiệu: 21 1.4.2 Định nghĩa: 21 Chƣơng2 CHỮKÝ SỐ CHỐNG CHỐIBỎ 24 2.1 Giới thiệu: 25 2.2 Lƣợc đồ chống chối bỏ: 25 2.2.1 Thuật toán ký: 25 2.2.2 Giao thức kiểm tra : 25 2.2.3 Giao thức chốibỏ 26 2.3 Các định lý: 27 2.3.1 Định lý 1: 27 2.3.2 Định lý 2: 29 2.3.3 Định lý 3: 29 2.3.4 Định lý 3: 30 2.3.5 Vấn đề cần giải quyết: 30 Chƣơng Ứngdụng mô 32 3.1 GIỚI THIÊU SƠ BỘ NET 32 3.2 Giới thiệu chung NET (.NET platform) 32 3.3 Kiến trúc phân lớp NET 32 3.4 Những đặc trƣng NET 33 3.4.1 Phát triển đa ngôn ngữ 33 3.4.2 Chƣơng trình ứngdụng độc lập với hệ điều hành vi xử lí .34 3.4.3 Quản lí nhớ tự động 34 3.4.4 Hỗ trợ phiên 34 3.4.5 Những thành phần NET 35 3.5 CLR 35 3.5.1 Mã quản lí mã không quản lí ( Managed/Unmanaged Code ) 36 3.5.3 Thƣ viện lớp sở NET 36 3.5.4 Assembly metadata 37 3.5.5 Chƣơng trình dịch Just in time .37 3.5.6 Quản lí nhớ ( Garbage Collection ) 38 3.5.7 Vòng đời mã .38 3.5 MÔ PHỎNG 39 3.5.1 Yêu cầu hệ thống .39 3.5.2 Giao diện chƣơng trình 39 KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42 MỞ ĐẦU Năm 1946 máy tính khai sinh Hoa kỳ từ phát triển mạnh Trải qua nhiều hệ máy tính có có cải tiến vượt bậc, thâm nhập sâu rộng vào hầu hết lĩnh vực Nhờ tiện lợi, tốc độ xử lý cao, khả lưu trữ lớn dần thay phương thức lưu trữ, xử lý liễu xưa thủ công Vào khoảng cuối thập niên 80 đầu thập niên 90 Sự bùng nổ mạng Internet lần đưa máy tính bước sang trang sử Dữ liệu lưu thông cách nhang chóng, thuận tiện Ứngdụng máy mạng máy tính giúp dễ dàng việc trao đổi liệu đời ngày phổ biến Các phương thức toán, trao đổi thông liệu qua mạng thay hầu hết phương thức thủ công Trong môi trường liệu “mở” vậy, liệu nhiều người khai thác xử dụng vào nhiều mục đích khác bên cạnh việc lưu trữ trao đổi thông tin an toàn hội cho kẻ xấu muốn phá hoại thông tin xử dụng liệu sai mục đích hoành hành Vì để đảm bảo liệu lưu trữ không bị thay đổi hay truy cập trái phép, tin tứ truyền mạng đến đích cần đến mà không bị bên thứ ba can thiêp, việc tạo chế bảo mật, xác thức thông tin cần thiết Trong đề tài em xin đề cập đến vấn đề liên quan mã hóa xác thực truyền tin bỏ qua phần lưu trữ Mục tiêu mật mã cho phép hai người, giả sử A B liên lạc với qua kênh không an toàn theo cách mà người thứ ba O (được nói đến người thám mã) khó hiểu đươc hai người liên lạc với Kênh đường điện thoại, mạng máy tính hay đơn thư tay Thông tin mà A gửi cho B gọi “bản rõ” (plaintext), văn tài liệu A mã hóa“ rõ “ với nhiều khóa thuật toán mã hóa cho trước Sau mã hóa liệu A gửi cho B “bản mã” thông qua kênh truyền tin công cộng bí mật B nhận “bản mã” dùng kết hợp với nhiều khóa có sãn với thuật toán giải mã Sẽ cho kết gói liệu ban đầu trước A mã hóa Nếu đường truyền tin, O đánh cắp mã O tay “khóa” thuật toán giải mã Trong tay O gói liệu hỗn độn giá trị Có hai loại hệ mật gồm hệ mật mã khóa bí mật hệ mật mã khóa công khai Trong hệ mật mã khóa công khai, hai người muốn trao đổi thông tin với phải thỏa thuận với cách bí mật khóa k Trong hệ mật mã có hai hàm lập mã ek hàm giải mã dk Nếu tiết lộ khóa k làm cho hệ thống không an toàn Trong thực tế, Độ an toàn hệ thống độ an toàn tính toán Một hệ mật “an toàn tính toán” phương pháp tốt biết để phá yêu cầu số lớn không hợp lý thời gian tính toán, nghĩa trình thực tính toán phức tạp, phức tạp đến mức ta coi “không thể được” Hệ mã khóa công khai đáp ứng yêu cầu Ý tưởng hệ mã khóa công khai chỗ tìm hệ mã khó tính toán xác định dk biết ek quy tắc mã ek công khai Hàm mã hóa công khai ek phải dễ dàng tính toán việc giải mã phải khó người người lập mã Tính chất dễ tính toán khó đảo ngược thường gọi tính chất chiều Điều bảo đảm tính bí mật cao Như biết, cách thức giao dịch truyền thống, thông báo truyền giao dịch thường dạng viết tay đánh máy kèm theo chữ ký(viết tay) người gửi bên văn Chữký chứng xác nhận thông báo người ký, tức chủ thể giao dịch Chữký viết tay có nhiều ưu điểm dễ kiểm thử, không chép chữký người giống nhiều văn bản… Ngày nay, với phát triển khoa học công nghệ thông tin đặc biệt bùng nổ mạng máy tính nhu cầu trao đổi thông tin mạng ngày phổ biến Khi chuyển sang cách thức truyền tin phương tiện đại, thông báo truyền mạng truyền tin số hóa, thân thông báo biểu diễn duới dạng số hóa tức dạng bít nhị phân, “chữ ký” có dạng dãy bit, mối quan hệ tự nhiên kể không giữ Chẳng hạn, “chữ ký” người gửi văn khác phải thể gắn kết trách nhiệm người gửi văn tất yếu phải khác đoạn bit giống chữký giống văn thông thường Chữký viết tay kiểm thử cách so sánh với nguyên mẫu, “chữ ký” điện tử có “nguyên mẫu” so sánh, việc kiểm thử phải thực thuật toán đặc biệt Một vấn đề chữký điện tử chép tùy ý khó phân biệt gốc nên có nguy dùng lại nhiều lần Vậy làm để ngăn chặn nguy làm để ngăn cản người kýchốibỏchữký người kiểm tra chốibỏ việc nhận đọc thông báo Trước yêu cầu đó, để nâng cao tính an toàn chữký điện tử để nâng cao trách nhiệm người ký người kiểm tra, đòi hỏi người ta phải đưa lược đồ chữký sử dụng giao thức để khắc phục nhược điểm chữký số Đó lý em chọn đề tài “Các Chữkýkhôngchốibỏứng dụng”làm đề tài nghiên cứu Trong đồ án em sâu tìm hiểu lược đồ chữ chống chốibỏứngdụng CHƢƠNG i CƠ SỞ MẬT MÃ VÀCHỮKÝ SỐ 1.1 CƠ SỞ TOÁN HỌC 1.1.1 Phép chia hết - Định nghĩa: cho a,b ∈ Z a Ta nói a chia hết cho b ∃ số c cho a = b.c ; Ký hiệu: b|a - Tính chất: a,b,c ∈ Z • a|a • a|b , b|c → a|c • a|b , a|c → a|(x.b+y.c) ∀ x,y ∈ Z • a|b , b|a → a ≡ ±b 1.1.2 Không chia hết - Định nghĩa: Phép chia gọi không chia hết tồn số r (0 < r < b) cho: a = b.q + r Với: q phần nguyên r phần dư 1.1.3 Ƣớc số - Định nghĩa: Ước số a b c c|a c|b - Ước số chung lớn : Là số lớn mà a b chia hết Ký hiệu : c = gcd(a,b) ; (great common d4.11sor) - Bội số chung nhỏ : d BSCNN a b ∀ c mà a|c , b|c → d|c Ký hiệu: d = lcm(a,b) ; (least common multiple) - Tính chất: lcm(a,b) = a.b/gcd(a,b) 1.1.4 Nguyên tố - Định nghĩa: a,b gọi hai nguyên tố gcd(a,b) = đơn giản (a,b) = 1.1.5 Số nguyên tố - Định nghĩa: Số nguyên tố số chia hết cho - Tính chất: •Giả sử p số nguyên tố p|a.b p|a p|b hai chia hết cho p •Có vô số số nguyên tố 1.1.6 Định nghĩa hàm phi Euler - Định nghĩa: 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-1 1.1.7 Định nghĩa thặng dƣ bậc - Định nghĩa: Cho a ∈ Z*n gọi a thặng dư bậc theo modulo n tồn x Z*n cho x2≡a(modn) không tồn gọi a bất thặng dư bậc theo modulo n Tập thặng dư bậc ký hiệu Qn tập bất thặng dư bậc ký hiệu Qn 1.1.8 Số Blum - Định nghĩa: Số Blum hợp tử n=p.q p,q hai số nguyên tố khác đồng dư với 3mod4.11 i.2 TÌM HIỂU MẬT MÃ i.2.1 Giới thiệu Mật mã sử dụng từ sớm, người biết trao đổi thông tin cho trải qua năm phát triển từ hình thức sơ khai đại tinh vi Mật mã sử dụng nhiều lĩnh vực người quốc gia, đặc biệt lĩnh vực quân sự, trị, ngoại giao thương mại Mục đích mật mã tạo khả trao đổi thông tin kênh thông tin chung cho đối tượng tham gia trao đổi thông tin không muốn đối tượng thứ ba khác biết thông tin mà họ trao đổi Khi đối tượng A muốn gửi thông điệp cho người nhận, A phải mã hóa thông điệp gửi đi, người nhận thông điệp mã hóa muốn biết nội dung phải giải mã thông điệp mã hóa Các đối tượng trao đổi thông tin cho phải thỏa thuận với cách thức mã hóa giải mã, quan trọng khóa mật mã sử dụng trình mã hóa giải mã, phải tuyệt đối giữ bí mật Một đối tượng thứ ba có biết nội dung thông điệp mã hóa Có hai phương pháp mã hóa liệu Mã hóa khóa đối xứng Mã hóa khóa công khai i.2.2 Sơ đồ hệ thống mật mã Là năm (P, C, K, E, D) đó: + P tập hữu hạn rõ + C tập hữu hạn mã + K tập hữu hạn khoá + Với k є K, có hàm lập mã ek є E ek :P → C hàm giải mã dk є D dk : C → P cho d (e (x)) = x với xk є Pk i.2.3 Mật mã khóa đối xứng Phương pháp mã hóa đối xứng (symmetric cryptography) gọi mã hóa khóa bí mật (secret key cryptography) Với phương pháp này, người gửi người nhận dùng chung khóa để mã hóa giải mã thông điệp Trước mã hóathông điệp gửi đi, hai bên gửi nhận phải có khóa chung phải thống thuật toán dùng để mã hóa giải mã Có nhiều thuật toán ứngdụng cho mã hóa khóa bí mật DES - Data Encrytion Standard, 3DES - triple-strength DES, RC2 - Rons Cipher RC4, 5.I4.2 sơ khai hệ mật mã cổ điển Nhược điểm phương pháp khóa truyền kênh an toàn phí tốn không kip thời Ưu điểm tốc độ mã hóa giải mã nhanh Một số hệ mật mã cổ điển Định nghĩa: Mã dịch chuyển: (P, C, K, E, D) P = C = K = Z20 với k є K, định nghĩa ek(x) = (x + k) mod 26 dk (y) = (y – k) mod 26 (x, y є Z26 ) Ví dụ: Dùng khoá k = để mã hoá dòng thư: “toinaydichoi” dòng thư tương ứng vớ i dòng số qua phép mã hoá e9 được: “qnwcxrcqdkjh” mã là: Nhận mã đó, dùng d9 để nhận rõ Cách 2000 năm mã dịch chuyển Julius Ceasar sử dụng, với khoá k=3 mã địch chuyển gọi mã Ceasar Tập khoá phụ thuộc vào Zm với m số khoá Trong tiếng Anh tập khoá có 26 khoá có thể, việc thám mã thực cách duyệt 26 khoá đó, độ an toàn mã dịch chuyển thấp i.2.3.1 Mã thay Định nghĩa Mã thay thế: (P, C, K, E, D) P = C = Z26 , K = S (Z ) Với π є K, tức hoán vị Z26 , ta xác định e π(x) = π (x) dπ(y) = π-1 (y) với x, y є Z26 , π-1 nghịch đảo л Ví dụ: π cho (ở ta viết chữ thay cho số thuộc Z26 ): rõ: “toinaydichoi” mã hoá thành mã (với khoá π): “mfzsxdazygfz” -1 Dễ xác định π , từ mã ta tìm rõ Mã thay có tập hợp khoá lớn - số hoán vị bảng chữ cái, tức số hoán vị Z26 , 26! > 4.1110 26 Việc duyệt toàn hoán vị để thám mã khó, máy tính Tuy nhiên, phương pháp thống kê, ta dễ dàng thám mã loại này, mã thay xem an toàn i.2.3.2 Mã Anffine: Định nghĩa Mã Anffine: (P, C, K, E, D) P = C = Z26 , K = { (a, b) є Z26 x Z26 : (a, 26) = } với k = (a, b) є K ta định nghĩa: ek (x) = ax + b mod 26 dk (y) = a (y – b) mod 26 Trong x,y є Z26 Ví dụ: Lấy k = (5, 6) Bản rõ: y=5x + mod 26 10 2.3.2 Định lý 2: Khi A B thực giao thức chốibỏ Nếu y ≠ xamodp (dα-e )f ≡ (Dα-f )e modp Chứng minh: Ta có: d ≡ ca modp Mà c ≡ ye βe modp -> d ≡yei.a-1 αe2.a-1 modp Mặt khác: β ≡ αa modp1 ⇒ d ≡ ye a αe a.a modp Do : ei.a-i.fi e2.a-i.a -e2 f1 α α ) modp -e (d.a 2)f1 ≡ (y ei.a-i.f1 ≡y αe2.f1-e2.f1 modp ei.a-i.f1 ≡y modp (1) Tương tự ta tính : (D.α-f )e ≡ ye a-i.f modp(2) Với D ≡ C a-1 modp C ≡ yf βf modp β ≡ αa modp Từ (1) (2) ⇒(dα-e )f ≡ (Dα-f )e modp Vì vậy, y chữký giả mạo A thuyết phục B tin chữký gi ả mạo 2.3.3 Định lý 3: Giả sử y ≡ xamodp B thực giao thức chốibỏ Nếu d ≠ xe αe modp, D ≠ xf αf modp khả (dα-e )f ≠ (Dα-f )e modp có xác suất 1-1/q Ở ta xét trường hợp A từ chốichữký Trong trường hợp này, không giả định A làm theo giao thức nghĩa A không xây dựng d D lý thuyết giao thức, giả định A tạo giá trị d D thỏa mãn điều kiện bước 4, 8, giao thức chốibỏ Giả thuyết có 29 y ≡ xamodp d ≠ xe αe modp D ≠ xf αf modp (dα-e )f ≡ (Dα-f )e modp Từ (dα-e )f ≡ (Dα-f )e modp có: 2.3.4 Định lý 4: Giả sử y ≡ xamodp B thực giao thức chốibỏ Nếu d ≠ xe αe modp, D ≠ xf αf modp khả (dα-e )f ≠ (Dα-f )e modp có xác suất 1-1/q Ở ta xét trường hợp A từ chốichữký Trong trường hợp này, không giả định A làm theo giao thức nghĩa A không xây dựng d D lý thuyết giao thức, giả định A tạo giá trị d D thỏa mãn điều kiện bước 4, 8, giao thức chốibỏ 2.3.5 Vấn đề cần giải quyết: Ba định lý phần đề cập tới khía cạnh A chấp nhận hay chốibỏchữký chưa nói đến khía cạnh khác B chốibỏ việc đọc thông báo A gửi Ta giả định rằng, A gửi cho B thông báo đòi nợ B chưa muốn trả không muốn trả lờ coi chưa nhận hay chưa đọc thông báo Vậy A làm cách để chứng minh B mở thông báo? Để giải vấn đề A B thực theo giao thức sau: Trước tiên, A B phải xây dựng khóa K theo lược đồ trao đổi khóa Diffie- Hellman Giao thức sau: Giả sử p số nguyên tố, α nguyên thủy Zp*; α, p công khai trao đổi khóa A B diễn sau: i A chọn ngẫu nhiên aA : ≤ aA ≤ p-2 A tính αa A mod p gửi cho B B chọn ngẫu nhiên aB : ≤ aB ≤ p-2 4.11 B tính αa B gửi cho A A tính K = (αa B ) a A mod p 30 B tính K = (αa B ) a A mod p Sau đó, A tiếp tục xây dựng khóa K1, K1 bí mật A xây dựng K1 theo hệ mật đối xứng (DES, AES – hệ khóa Các khóa lập mã giải mã hay dễ dàng xác định lẫn Các hệ khóa cung cấp cách tuyệt vời cho việc mã hóa tệp riêng người dùng) Avà B tiến hành theo bước sau đây: i A dùng K1 để mã hóa thông báo x chữký kèm theo: y = sigA(x) i = eK (x, y) A gửi i cho B B gửi lại thông báo x1 kèm theo chữký y1 = sigB(x1) mã y1 K: j=eK(y1) gửi cho A Trong x1 chứa ngày, giờ, lời yêu cầu chứa i A tính i1 = eK(K1) gửi cho B Khi A B tiến hành theo giao thức trên, muốn đọc thông B phải gửi lại thông báo (đã mã hóa khóa K) tới A, yêu cầu A gửi khóa K1 cho mình, K1 A biết A kiểm tra thông báo B theo thuật toán kiểm tra công khai Bver để xác định thông báo có B gửi hay không? Nếu đúng, gửi K1 cho B mà K1đã mã hóa theoK A thực theo cách có đủ chứng để chứng minh trước tòa B có mở đọc thông báo gửi tới cách đưa thông báo có kèm theo chữký B ngày, B đọc thông báo 31 Chƣơng Ứngdụng mô 3.1 GIỚI THIÊU SƠ BỘ NET 3.2 Giới thiệu chung tảng NET (.NET platform) Nền NET khái niệm khoa học máy tính; vượt khuụn khổ ngụn ngữ lập trỡnh, thư viện; nú chưa phải hệ điều hành, chỳng ta cú thể hiểu đơn giản nú để từ đú cú thể phỏt triển cỏc ứngdụng trờn Windows lẫn trờn Internet thuận tiện Nền NET thiết kế để phục vụ cỏc mục đớch sau: o Cung cấp mụi trường lập trỡnh hướng đối tượng tuyệt đối, mó chương trỡnh thực thi trờn mỏy hay cững cú thể thực thi từ mỏy từ xa thụng qua Internet o Giảm thiểu tối đa xung đột cỏc version phần mềm o Đem lại mụi trường cho phộp cỏc ngụn ngữ lập trỡnh cú thể giao tiếp với nhau, tớch hợp với Chỳ ý: chỳng ta cần phải phõn biệt hai thuật ngữ: NET NET .NET bao gồm thành phần : o Nền NET: cho phộp phỏt triển cỏc ứngdụng o Cỏc sản phẩm NET: bao gồm tất cỏc sản phẩm Microsoft dựa trờn NET o Cỏc dịch vụ NET: cỏc dịch vụ cung cấp Microsoft phục vụ cho việc phỏt triển cỏc ứngdụng chạy trờn NET Như NET thành phần NET Nền NET gồm hai thành phần chớnh: Common language runtime ( CLR ) thư viện lớp NET Hai thành phần trỡnh bày cụ thể phần sau 3.3 Kiến trúc phân lớp NET Hình biểu diễn kiến trúc NET Mỗi ngôn ngữ thuộc gia đình NET ( phiên gồm ngôn ngữ : VC.NET, VB.NET, C#, sau có thêm VJ# ) 32 Hình Kiến trúc NET dịch sang ngôn ngữ trung gian Microsoft ( MSIL hay gọi ngắn IL ) – ngôn ngữ dựa theo tiêu chuẩn Common Language Specification ( CLS ) Có loại ứngdụng là: ứngdụng Web, dịch vụ Web, ứngdụng Form Windows Những ứngdụng sử dụng đối tượng, phương thức từ thư viện lớp sở chạy môi trường CLR 3.4 Những đặc trƣng NET Những đặc trưng chủ chốt NET chủ yếu nssằm CLR, thư viện lớp sơ CLS.emchỉ xin trình bày số đặc trưngemcho dễ nhận biết nắm bắt 3.4.1 Phát triển đa ngôn ngữ Trước đây, vấn đề sử dụng đa ngôn ngữ ( multilanguage ) hay giao thoa ngôn ngữ lập trình ( cross – language ) đề cập nhiều phát triển ứngdụng Đa ngôn ngữ hiểu việc sử dụng nhiều ngôn ngữ phát triển ứng dung, ngôn ngữ viết lên phần ứngdụng Với giải pháp này, người lập trình sử dụng ngôn ngữ mà quen thuộc kết hợp sử dụng lại đoạn mã viết ngôn ngữ khác phù hợp với mục đích phần chương trình định để xây dựng lên ứngdụng hoàn chỉnh Một phương pháp truyền thống để thực giải pháp xây dựng nên thư viện động dll Phương pháp áp dụng VS 6.0 Mỗi ngôn ngữ xây dựng nên thư viện dll 33 Một ngôn ngữ khác sử dụng file dll phần thư viện Phương pháp thư hai sử dụng mô hình đối tượng hướng thành phần – COM ( đề tài không trình bày COM, đâyemchỉ điểm qua) Cả hai phương pháp sử dụng ngôn ngữ định nghĩa giao diện ( IDL ) Với NET, thực việc phối hợp ngôn ngữ dễ dàng Nền NET cho phép ngôn ngữ tích hợp với ngôn ngữ khác việc sử dụng ngôn ngữ trung gian MSIL Tất ngôn ngữ soạn thảo khác nhau, sau dich chương trình dịch thích hợp, chúng trở thành dạng ngôn ngữ trung gian, khác biệt ngôn ngữ hoàn toàn bị xoá bỏ Ngôn ngữ trung gian đưa vào CLR để thực thi 3.4.2 Chƣơng trình ứngdụng độc lập với hệ điều hành vi xử lí Ngôn ngữ trung gian IL ngôn ngữ độc lập với vi xử lí, ngôn ngữ cấp cao ngôn ngữ máy Khi cần thực thi, IL dịch ngôn ngữ máy thích hợp Bất hệ điều hành hỗ trợ NET ứngdụng NET chạy không gặp khó khăn Đối với hệ điều hành thuộc họ Windows từ Win 98 trở nên hỗ trợ NET Tháng – 2001, cho đời NET, Microsoft thông báo họ đạt thoả thuận phát triển NET Unix, nhiên đến chưa có kết thức Tháng 10 – 2001, Microsoft cho phép Ximian, người phát triển giao diện GNOME thông dụng Linux, phát triển chương trình dịch C# CLR Linux Phiên có tên Mono tìm www.go-mono.net Công việc tiến hành giai đoạn xây dựng thư viện sở Linux 3.4.3 Quản lí nhớ tự động Rò rỉ nhớ vấn đề phức tạp lập trình ta không quản lý vùng nhớ cấp phát Trong Visual Basic, quản lý nhớ thực kĩ thuật đếm số lần truy cập Trong C C++, cách tốt để quản lý nhớ tự trả lại cho hệ điều hành vùng nhớ khôngdùng Trong NET, có phận GC( Garbage Collection ) làm nhiệm vụ thu hồi lại vùng nhớ hiệu cách 3.4.4 Hỗ trợ phiên Những lập trình viên lập trình với thư viện động DLL hẳn biết đến thuật ngữ „DLL Hell‟ DLL Hell miêu tả sau : bạn sử dụng chương trình ứngdụng với DLL phiên i.0, sau bạn cài thêm ứngdụng khác sử dụng DLL giống với phiên 1.1 Khi ứngdụng cữ có vấn đề, không chạy Khi bạn thay DLL với DLL phù hợp với ứngdụng cũ ứngdụng lại không chạy Trong NET, thành phần đối tượng phân tách riêng rẽ, ứngdụng load thành phần xây dựng, kiểm tra chạy thử với ứngdụng Sau ứngdụng cài đặt 34 chạy thử thành công chạy .NET thực vấn đề cách sử dụng thêm thành phần assemblies Những thành phần đóng gói lại assembly Assembly có chứa thông tin phiên bản, CLR NET sử dụng thông tin để nạp thành phần phục vụ cho ứngdụng 3.4.5 Những thành phần NET Như xem phần trước, có nhiều thành phần NET Trong phần trình bày thành phần bật tính chất vai trò chúng hệ thống 3.5 CLR CLR coi trái tim NET CLR nằm cấp cuối sơ đồ phân cấp NET, trực tiếp giao tiếp với hệ điều hành hay thiết bị phần cứng Vai trò nhận mã IL, dịch chuyển sang mã máy thích hợp Từ IL trở xuống CLR giống cho ngôn ngữ thuộc dòng NET, điều giải vấn đề đa ngôn ngữ ứngdụng C I L Common Type system CIL Compiler Security Class Loader Memory Management Including Garbage Collection Execution Support M A C C O H D I E N E 35 3.5.1 Mã quản lí mã không quản lí ( Managed/Unmanaged Code ) Những mã soạn thảo, dịch nhằm mục đích chạy môi trường CLR gọi mã mã quản lí ( managed code ) Có thể hiểu đơn giản hơn, mã quản lí loại mã mà chương trình thực thi mã quản lí CLR thừa hưởng dịch vụ mà CLR có Thông thường, mã quản lí mã tích hợp sẵn thư viện lớp hay mã dịch chương trình dịch tuân theo chuẩn CLS tạo ngôn ngữ trung gian Mã không quản lí (unmanaged code) mã không soạn thảo, dịch môi trường NET không nhằm mục đích chạy CLR nhiên CLR nạp mã vào chạy, không hỗ trợ dịch vụ cho loại mã Điển hình cho loại mã thư viện DLL có từ trước NET thư viện Windows APIs, chương trình NET sử dụng Windows APIs có nghĩa sử dụng mã không quản lý 3.5.2 Ngôn ngữ trung gian , hệ thống kiểu thông thường CLS Ngôn ngữ trung gian MSIL NET, hệ thống kiểu thông thường CLS yếu tố gắn liền với tạo nên khả phối hợp đa ngôn ngữ độc lập với môi trường ứngdụng NET Hệ thống kiểu thông thường ( common type system ) bao gồm kiểu liệu mà ngôn ngữ NET sử dụng qui cách người dùng phải tuân theo để xây dựng nên kiểu liệu người dùngCác kiểu liệu hệ thống kiểu thông thường chia thành loại : Loại tham trị: kiểu tham trị trực tiếp lưu trữ liệu, cấp phát vùng nhớ stack Những liệu kiểu thường kiểu liệu xây dựng sẵn Int, long, boolean, hay kiểu struct người dùng định nghĩa Loại tham biến: kiểu tham biến lưa giữ địa chỉ tới vùng liệu, chúng cấp phát vùng nhớ Heap Những liệu kiểu thường biến đối tượng CLS ( common language specification) tập hợp đặc điểm ngôn ngữ mà tất ngôn ngữ lập trình NET phải tuân theo, bao gồm kiểu liệu qui cách hệ thống kiểu thông thường Những người muốn phát triển ngôn ngữ NET phải dựa theo CLS để xây dựng chương trình dịch gọi chương trình dịch CLS Ngôn ngữ trung gian IL dịch từ mã nguồn ngôn ngữ lập trình cấp cao chương trình dịch CLS, ngôn ngữ trung gian IL sau CLR dịch lại lần mã máy để thực thi 3.5.3 Thƣ viện lớp sở NET NET có thư viện đố sộ kiểu liệu sử dụng lại, tích hợp chặt chẽ với CLR Thư viện lớp hoàn toàn hướng đối tượng, cung cấp kiểu liệu mà sử dụng nhiều chức từ Nhờ sử dụng thư viện lớp sở phát triển kiểu ứngdụng sau: 36 Ứngdụng vào Console Những ứngdụng Windows với giao diện đồ hoạ Những ứngdụng ASP.NET Dịch vụ Web Các thư viện Khi muốn lập trình Windows sử dung lớp Form, Button, CheckBox, Text… để phát triển giao diện đồ hoạ Khi muốn phát triển ứngdụng Web, sử dụng lớp Web Forms Tất ngôn ngữ NET sử dụng thư viện này, điều làm cho việc sử dụng đa ngôn ngữ dễ dàng 3.5.4 Assembly metadata Nếu muốn trình bày kĩ assembly metadata cần phải có đề tài chuyên mảng này, giới hạn đề tài này,emchỉ xin trình bày mang tính khái niệm hai vấn đề Assembly hiểu gói mã chương trình, thành phần, tài nguyên Một assembly bao gồm thông tin metadata, mã chương trình dạng IL, file tài nguyên ví dụ file ảnh, âm nhạc, thư viện thành phần Metadata tập hợp liệu dạng nhị phân diễn tả thành phần chương trình Metadata lưu trữ file thực thi ( executable hay exe , dll) với mã IL chương trình Metadata chứa loại liệu cụ thể sau: Tên assembly Số hiệu phiên Culture : thông tin loại ngôn ngữ mà assembly hỗ trợ Thông tin strong name Danh sách tất file đóng gói Thông tin tham chiếu kiểu liệu: CLR sử dụng thông tin để tìm file định nghĩ kiểu liệu Thông tin phục vụ cho tham chiếu đến assembly khác CLR hoàn toàn dựa thông tin để điều khiển ứngdụng Assembly metadata tạo ta biên dịch mã nguồn 3.5.5 Chƣơng trình dịch Just in time Chương trình dịch Just In Time nằm CLR, có nhiệm vụ chuyển mã IL sang mã máy thích hợp Trong NET có loại chương trình dịch JIT: Pre-JIT: loại JIT dịch toàn mã IL sang mã máy gọi tới Econo-JIT: loại sử dụng cho hệ thống hạn chế nhớ, dịch mã IL sang mã máy bit một, mã máy sau dịch 37 đưa vào thực thi để vùng nhớ đệm, hết vùng nhớ đệm JIT xoá mã máy Normal JIT: loại ngầm định, dịch mã IL gọi tới, mã máy sau dịch đưa vào thực thi đòng thời đặt vào nhớ đệm 3.5.6 Quản lí nhớ ( Garbage Collection ) Những người lập trình thường gặp nhiều khó khăn giải vấn đề cấp phát nhớ, rò rỉ nhớ, công việc làm giảm suất lập trình Để giải vấn đề này, NET đưa hệ thống thu gom nhớ GC Khi chương trình đòi cấp phát thêm nhớ, phận cấp phát nhớ phần quản lí nhớ CLR thưc hiện, không đủ nhớ thông báo không nhớ để cấp phát GC bắt chạy, giả định tất thứ nhớ thu hồi Sau đó, xem toàn bộ nhớ dành cho chương trình ứng dụng, xây dựng nên đồ thị diễn tả tất vùng nhớ tham chiếu chương trình tham chiếu lẫn Sau xây dựng xong đồ thị, GC tiến hành thu gọn nhớ Heap cách di chuyển tất vùng nhớ thật dùng vị trí bắt đầu vùng nhớ Heap trống Cuối cập nhật lại trỏ trỏ đến vùng nhớ vừa di chuyển Chúng ta thấy dường GC thực nhiều việc, nhiên thực thực tự động CLR, giảm nhẹ nhiều công việc người lập trình 3.5.7 Vòng đời mã Trong phần này, emsẽ giới thiệu trình làm việc ứngdụng NET từ soạn thảo mã nguồn đến chạy chương trình : Bắt đầu từ việc soạn thảo mã nguồn ngôn ngữ NET quen thuộc hệ soạn thảo văn thông thường Dùng chương trình dịch NET dịch mã nguồn mã IL, đồng thời xây dựng assembly cho ứngdụng Khi chương trình ứngdụng thực thi, hệ điều hành đọc header chương trình đưa CLR vào quản lí chương trình, CLR đọc thông tin metadata, điều khiển Loader nạp thư viện cần thiết vào nhớ Hàm _CorExeMain chèn vào điểm nhập chương trình Bộ phận Loader nhảy vào điểm nhập chương trình gọi hàm _CorExeMain thực thi Khi _CorExeMain thực thi, gọi chương trình dịch JIT thực thi JIT dịch mã IL sang mã máy đưa vào thực thi đồng thời dự trữ nhớ đệm để cần dịch lại 38 3.5 MÔ PHỎNG 3.5.1 Yêu cầu hệ thống Hệ điều hành : Tất hệ điều hành Windows hỗ trợ NET Framework 2.0 trở lên CPU : Pentium 233-megahertz (MHz) trở lên RAM : 256MB trở lên Card hình : Không yêu cầu Card âm : Không yêu cầu .NET Framework : Phiển 2.0 trở lên Internet : Khuyến cáo nên dùng để trao đổi khóa 3.5.2 Giao diện chƣơng trình 3.5.2.1 Chữký số RSA i Giao thức ký Hình 1: Giao diện ký tệp ( Chữký số RSA) Giao thức kiểm tra 39 Hình 2: Giao diện kiểm tra chữký ( Chữký số RSA) 3.5.2.2 Chữký số chống chốibỏ Giao thức ký Hình 3: Giao diện tạo khóa ký ( Chữký số chống chối bỏ) Giao thức kiểm tra 40 Hình 4: Giao diện kiểm tra( Chữký số chống chối bỏ) Giao thức chốibỏ Hình 5: Giao diện giao thức chối bỏ( Chữký số chống chối bỏ) 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 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 thông tin lĩnh vực hoạt động người Đặc biệt ưu điểm chữký số 41 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 Nhưng bên cạnh ưu điểm chữký số mang lại bộc lộ hạn chế chữký tự xác thực (RSA, Elgamal…), khả bảo vệ chữ ký, độ an toàn xác thực chữ ký… Trong đồ án này, em sâu tìm hiểu lược đồ chữký số chống chốibỏứngdụng Với lược đồ chữký chống chốibỏ giải yêu cầu chữký số khả bảo vệ chữký chống chép không hợp pháp Vì chữký chống chốibỏ kiểm tra có cộng tác người ký thông qua giao thức hỏi – đáp Tuy nhiên, với lược đồ lại có vấn đề người kýkhông cộng tác việc xác thực chữkýchữkýkhông kiểm tra người kýkhông thực giao thức họ muốn chốibỏchữký Luận văn tập chung vào nghiên cứu sở lý thuyết xây dựng chương trình chữký số.Tuy nhiều điểm cần phải nghiên cứu hoàn thiện thời gian trình độ hạn chế nên tránh khỏi nhược điểm, mong góp ý Thầy, Cô bạn Cuối em xin cảm ơn nhà trường thầy cô khoa CNTT trường ĐH Dân Lập Hải Phòng, đặc biệt thầy giáo T.S Trần Ngọc Thái tạo điều kiện tận tình giúp đỡ em hoàn thành đồ án TÀI LIỆU THAM KHẢO i Lý thuyết mật mã an toàn thông tin – Phan Đình Diệu(NXB ĐHQGHN) TS Nguyễn Ngọc Cương – “Bài giảng An toàn thông tin” Nguyễn thị Mười Phượng – “Luận văn thạc sĩ” 4.11 D.R Stinson – “Cryptography Theory and Practice”, CRC press – 1995 http://google.com , http://vi.wikipedia.org/ Nguồn internet : 42 (*1) : http://www.vatgia.com/hoidap/4115/77237/lich-su-phat-trien-may-tinh.html 43 ... thức chối bỏ nhờ điều chủ thể ký chứng minh chữ ký giả mạo (Nếu từ chối thực phần giao thức chối bỏ, điều đồng nghĩa với dấu hiệu chứng minh chữ ký cố gắng từ chối chữ ký mình) Giao thức chối bỏ. .. đồ chữ ký sử dụng giao thức để khắc phục nhược điểm chữ ký số Đó lý em chọn đề tài Các Chữ ký không chối bỏ ứng dụng làm đề tài nghiên cứu Trong đồ án em sâu tìm hiểu lược đồ chữ chống chối bỏ. .. kiểm tra chữ ký điều ngăn cản việc từ chối chữ ký tạo Tất nhiên, cho chữ ký giả mạo từ chối kiểm tra thực giao thức mà theo chữ ký không kiểm tra Vì vậy, lược đồ chữ ký chống chối bỏ kết hợp chặt