Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
294,5 KB
Nội dung
Báo cáo thực tập: Cơng nghệ Chip tích hợp vi điện tử Lời cảm ơn Em xin gửi lời cảm ơn chân thành tới thầy cô giáo khoa Công Nghệ Thông Tin, anh chị công ty CSE, gia đình bạn bè, nhiệt tình giúp đỡ em suốt trình làm luận văn Hơn em xin trân trọng cảm ơn dẫn nhiệt tình thầy giáo hướng dẫn Tiến Sĩ Nguyễn Đình Cơng, trực tiếp bảo anh Nguyễn Hà Chiến với giúp đỡ nhiệt tình thầy giáo phản biện Phó Tiến Sĩ Trịnh Nhật Tiến để em hoàn thành tốt luận văn tốt nghiệp Em xin chân thành cảm ơn Hà nội ngày 06 tháng 06 năm 1999 Sinh viên Đặng Văn Hanh Mục Lục Mở đầu Chương i Cơ sở tốn học 1.Lý thuyết thơng tin 1.1 Entropy 1.2 Tốc độ ngôn ngữ (Rate of Language) 1.3 An toàn hệ thống mã hoá 2.Lý thuyết độ phức tạp 10 3.Lý thuyết toán học 11 3.1 Modular số học 11 3.2 Số nguyên tố 12 3.3 Ước số chung lớn 12 3.4 Số nghịch đảo Modulo 14 3.5 Ký hiệu La grăng (Legendre Symboy) 15 3.6 Ký hiệu Jacobi (Jacobi Symboy) 16 3.7 Định lý phần dư trung hoa 18 3.8 Định lý Fermat 19 Các phép kiểm tra số nguyên tố 19 4.1 Soloway-Strassen 19 4.2 Rabin-Miller 20 4.3 Lehmann 21 4.4 Strong Primes 21 Chương II Mật mã 1.Khái niệm 23 2.Protocol 24 2.1 Giới thiệu Protocol 24 2.2 Protocol mật mã 25 Trang 2.3 Mục đích Protocol 26 2.4 Truyền thông sử dụng hệ mật mã đối xứng 27 2.5 Truyền thông sử dụng hệ mật mã công khai 28 Khoá 31 3.1 Độ dài khoá 31 3.2 Quản lý khố cơng khai 32 Mã dòng, mã khối (CFB, CBC) 34 4.1 Mơ hình mã hố khối 34 4.1.1 Mơ hình dây truyền khối mã hố 34 4.1.2 Mơ hình mã hố với thơng tin phản hồi 36 4.2 Mơ hình mã hố dịng 36 Các hệ mật mã đối xứng công khai 38 5.1 Hệ mật mã đối xứng 38 5.2 Hệ mật mã công khai 39 Các cách thám mã 41 Chương III Hệ mã hoá RSA Khái niệm hệ mật mã RSA 46 Độ an toàn hệ RSA 48 Một số tính chất hệ RSA 49 Chương IV Mơ hình Client/Server 1.Mơ hình Client/Server 52 Mã hố mơ hình Client/Server 53 Chương V Xây dựng hàm thư viện 1.Xây dựng thư viện liên kết động CRYPTO.DLL 55 2.Chương trình Demo thư viện CRYPTO.DLL 70 Trang Mở đầu Thế kỷ XXI kỷ công nghệ thông tin, thông tin tác động trực tiếp đến mặt hoạt động kinh tế xã hội hầu hết quốc gia giới Thơng tin có vai trò quan trọng, phải đảm bảo tính suốt thông tin nghĩa thông tin không bị sai lệch, bị thay đổi, bị lộ trình truyền từ nơi gửi đến nơi nhận Với phát triển nhanh cơng nghệ mạng máy tính đặc biệt mạng INTERNET khối lượng thơng tin ngày chuyển tải nhiều Những tập đồn cơng nghiệp, cơng ty đa quốc gia, thị trường chứng khốn tiến hành xử lý tru yền nhận thông tin đắt giá, phiên giao dịch hay mua bán cổ phiếu, trái phiếu tiến hành qua mạng Giờ với tăng trưởng nhanh siêu thị điện tử, thương mại điện tử hàng ngày có khối lượng tiền lớn lưu chuyển mạng tồn cầu INTERNET, vấn đề khó khăn đặt giữ thơng tin bí mật giữ cho tiền đến địa cần đến Bạn bạn gửi thư cho người bạn lại bị kẻ lạ mặt xem trộm sửa đổi nội dung thư trái với chủ ý bạn, tệ hại bạn ký hợp đồng, gửi thông qua mạng lại bị kẻ xấu sửa đổi điều khoản đó, cịn nhiều điều tương tự Hậu ? Bạn bị người khác hiểu nhầm nội dung thư bị thay đổi, hợp đồng bị phá vỡ điều khoản khơng cịn nguyên vẹn Như tình cảm, tiền bạc bạn nói rộng nghiệp bạn bị đe dọa thông tin mà bạn gửi khơng đảm bảo tính ngun vẹn chúng Mã hố thơng tin phương pháp đảm bảo tính suốt thơng tin Nó giải vấn rắc rối giúp bạn, thông tin mã hố gửi kẻ xấu khó khơng thể giải mã Trang Với mong muốn phục vụ thông tin truyền mạng nguyên vẹn, luận văn em nghiên cứu số khái niệm mã hố thơng tin, phương pháp mã hố thơng tin RSA xây dựng thư viện hàm mã hố phục vụ trao đổi thơng tin mơ hình Client/Server Những phần trình bày luận văn bao gồm vấn đề sau : Chương I Cơ sở toán học Chương II Mật mã Chương III Hệ mã hố RSA Chương IV Mơ hình Client/Server Chương V Xây dựng hàm thư viện Trang Chương i Cơ sở tốn học Để có thuật tốn mã hố tốt, phải có kiến thức toán học đáp ứng cho yêu cầu, chương mô tả khái niệm lý thuyết thông tin Entropy, tốc độ ngôn ngữ, hiểu biết độ phức tạp thuật toán, độ an tồn thuật tốn, với kiến thức tốn học: modulo số học, số nguyên tố, định lý phần dư trung hoa, định lý Fermat phương pháp kiểm tra xem số có phải ngun tố hay khơng Những vấn đề trình bày chương gồm : Lý thuyết thông tin Lý thuyết độ phức tạp Lý thuyết số học 1.Lý thuyết thơng tin Mơ hình lý thuyết thơng tin định nghĩa lần vào năm 1948 Claude Elmwood Shannon Trong phần đề cập tới số chủ đề quan trọng lý thuyết thông tin 1.1 Entropy Lý thuyết thông tin định nghĩa khối lượng thông tin thơng báo số bít nhỏ cần thiết để mã hố tất nghĩa thơng báo Ví dụ, trường ngay_thang sở liệu chứa khơng q bít thơng tin, thơng tin mã hố với bít 000 = Sunday 001 = Monday 010 = Tuesday 011 = Wednesday 100 = Thursday 101 = Friday Trang 110 = Saturday 111 is unused Nếu thông tin biểu diễn chuỗi ký tự ASCII tương ứng, chiếm nhiều khơng gian nhớ hơn, không chứa nhiều thông tin Tương ựt trường gioi_tinh sở liệu chứa bít thơng tin, lưu trữ hai xâu ký tự ASCII : Nam, Nữ Khối lượng thông tin thông báo M đo Entropy thơng báo đó, ký hiệu H(M) Entropy thông báo gioi_tinh bít, ký hiệu H(gioi_tinh) = 1, Entropy thông báo số ngày tuần nhỏ 3bits Trong trường hợp tổng quát, Entropy thông báo log2n, với n số khả H(M) = log2n 1.2 Tốc độ ngôn ngữ (Rate of Language) Đối với ngôn ngữ, tốc độ ngôn ngữ r = H(M)/N trường hợp N độ dài thông báo Tốc độ tiếng Anh bình thường có vài giá trị 1.0 bits/chữ 1.5 bits/chữ cái, áp dụng với giá trị N lớn Tốc độ tuyệt đối ngơn ngữ số bits lớn nhất, chúng mã hố ký tự Nếu có L ký tự ngơn ngữ, tốc độ tuyệt đối : R = log2L Đây số Entropy lớn ký tự đơn lẻ Đối với tiếng Anh gồm 26 chữ cái, tốc độ tuyệt đối log226 = 4.7bits/chữ Sẽ khơng có điều Trang ngạc nhiên tất người thực tế tốc độ tiếng Anh nhỏ nhiều so với tốc độ tuyệt đối 1.3 An toàn hệ thống mã hoá Shannon định nghĩa rõ ràng, tỉ mỉ mơ hình tốn học, điều có nghĩa hệ thống mã hố an tồn Mục đích người phân tích phát khố k, rõ p, hai thứ Hơn họ hài lịng với vài thơng tin có khả rõ p âm số, văn tiếng Đức, bảng tính liệu, v v Trong hầu hết lần phân tích mã, người phân tích có vài thơng tin có khả rõ p trước bắt đầu phân tích Họ biết ngơn ngữ mã hố Ngơn ngữ chắn có dư thừa kết hợp với ngơn ngữ Nếu thơng báo gửi tới Bob, bắt đầu với "Dear Bob" Chắc chắn "Dear Bob " khả chuỗi khơng mang ý nghĩa chẳng hạn "tm*h&rf" Mục đích việc thám mã sửa tập hợp khả có mã với khả rõ Có điều giống hệ thống mã hoá, chúng đạt bí mật tuyệt đối Hệ thống mã hố mã khơng mang lại thơng tin để tìm lại rõ Shannon phát triển lý thuyết cho rằng, hệ thống mã hố an tồn tuyệt đối nếu số khố nhiều số thơng báo Hiểu theo nghĩa khác, khố tối thiểu dài thơng báo Ngoại trừ an tồn tuyệt đối, mã mang lại vài thông tin với rõ, đ iều tránh Một thuật tốn mật mã tốt giữ cho thơng tin mức nhỏ nhất, người thám mã tốt khai thác thông tin để phát rõ Trang Người phân tích mã sử dụng dư thừa tự nhiên ngôn ngữ để làm giảm số khả rõ Nhiều thơng tin dư thừa ngôn ngữ, dễ dàng cho phân tích mật mã Chính lý mà nhiều thực mã hoá sử dụng chương trình nén rõ để giảm kích thước văn trước mã hố chúng Bởi q trình nén làm giảm d th ừa thông báo Entropy hệ thống mã hố đo kích thước khơng gian khố (keyspace) H(K) = log2(number of keys ) 1.4 Sự lộn xộn rườm rà (Confusion and Diffusion) Theo nhà khoa học Shannon, có hai kỹ thuật để che dấ u dư thừa thơng tin thơng báo gốc : lộn xộn rườm rà Kỹ thuật lộn xộn (Confusion) che dấu mối quan hệ rõ gốc Kỹ thuật làm thất bại cố gắng nghiên cứu mã tìm kiếm thơng tin dư thừa thống kê mẫu Phương pháp dễ để thực điều thông qua kỹ thuật thay Một hệ mã hoá thay đơn giản, chẳng hạn hệ mã dịch vòng Caesar, dựa tảng thay chữ cái, nghĩa chữ thay chữ khác Sự tồn chữ mã, việc dịch chuyển k vị trí chữ rõ Kỹ thuật rườm rà (Diffusion) làm dư thừa rõ bề rộng vượt mã (nghĩa mã kích thước nhỏ rõ) Một người phân tích tìm kiếm dư thừa có thời gian khó khăn để tìm chúng Cách đơn giản tạo rườm rà thông qua việc đổi chỗ (hay cịn gọi hốn vị) Trang 2.Lý thuyết độ phức tạp Lý thuyết độ phức tạp cun g cấp phương pháp để phân tích độ phức tạp tính tốn thuật tốn kỹ thuật mã hố khác Nó so sánh thuật toán mã hoá, kỹ thuật phát độ an tồn thuật tốn Lý thuyết thông tin cho biết thuật tốn mã hố bị bại lộ Cịn lý thuyết độ phức tạp cho biết liệu chúng bị bại lộ trước vũ trụ xụp đổ hay không Độ phức tạp thời gian thuật toán hàm số với độ dài đầu vào Thuật tốn có độ phức tạp thời gian f(n) n độ dài đầu vào n, nghĩa thực thuật toán lớn f(n) bước Độ phức tạp thời gian thuật toán phụ thuộc vào mơ hình thuật tốn, số bước nhỏ hoạt động tập chung nhiều bước Các lớp thuật toán, thời gian chạy rõ hàm số mũ đầu vào "khơng có khả thực được" Các thuật tốn có độ phức tạp giống phân loại vào lớp tương đương Ví dụ tất thuật tốn có độ phức tạp n3 phân vào lớp n3 ký hiệu O(n3) Có hai lớp tổng quát dẫn lớp P lớp NP Các thuật toán thuộc lớp P có độ phức tạp hàm đa thức đầu vào Nếu bước thuật toán thuật tốn gọi đơn định Tất thuật tốn thuộc lớp P đơn định có thời gian giới hạn P_time, điều cho biết chúng thực thời gian đa thức, tương đương với độ phức tạp đa thức độ dài đầu vào Thuật toán mà bước tính tốn phải lựa chọn giải pháp từ giới hạn giá trị hoạt động gọi không đơn định Lý thuyết độ phức tạp sử dụng máy đặc biệt mô tả đặc điểm cách đưa kết luận chuẩn Máy Turinglà máy đặc biệt, máy hoạt động thời gian rời rạc, thời điểm nằm khoảng trạng thái đầy đủ số Trang 10 tất trạng thái hữu hạn Chúng ta định nghĩa hàm độ phức tạp thời gian kết hợp với máy Turing A fA(n) = max{m/A kết thúc sau m bước với đầu vào w = n } Chúng ta giả sử A trạng thái kết thúc đố i với tất đầu vào, vấn đề trở nên khó khăn trạng thái không nằm P Máy Turing không đơn định hoạt động thuật tốn NP Máy Turing khơng đơn định có vài trạng thái xác S(w) trạng thái đo thành công ngắn thuật tốn, (Nghĩa tính tốn dẫn đến trạng thái cuối cùng) Hàm số độ phức tạp thời gian máy Turing không đơn định A định nghĩa : fA(n)=max{1,m/s(w) có m bước w/w=n}, bước máy Turing khơng đơn định bố trí nhiều có vài giải pháp tính tốn độc lập với lời giải Các thuật tốn thuộc lớp NP khơng đơn định tính tốn máy Turing khơng đơn định thời gian P 3.Lý thuyết toán học 3.1 Modular s ố học Về a ≡ b(mod n) a = b+kn k số nguyên Nếu a b dương a nhỏ n, bạn nghĩ a phần dư b chia cho n Nói chung a b phần dư chia cho n Đôi b gọi thặng dư a, modulo n, a gọi đồng dư b, modulo n Tập hợp số nguyên từ đến n-1 cịn gọi tập hợp thặng dư hồn tồn modulo n Điều có nghĩa là, với s ố nguyên a, thặng dư modulo n số từ đến n -1 Trang 11 Modulo số học giống số học bình thường, bao gồm phép giao hoán, kết hợp phân phối Mặt khác giảm giá trị trung gian suốt q trình tính tốn (a+b) mod n = ((a mod n) + (b mod n)) mod n (a- b) mod n = ((a mod n) - (b mod n)) mod n (a×b) mod n = ((a mod n) × (b mod n)) mod n (a×(b + c)) mod n = (((a × b) mod n) + ((a × c) mod n)) mod n Hệ thống mã hoá dụng nhiều tính tốn modulo n, vấn đề giống tính tốn logarithm rời rạc diện tích hình vng khó khăn Mặt khác làm việc dễ hơn, bị giới hạn tất giá trị trung gian kết Ví dụ : a số k bits, n kết trung gian phép cộng, trừ, nhân không vượt 24 bits Như thực hàm mũ modulo số học mà không cần sinh kết trung gian đồ sộ 3.2 Số nguyên tố Số nguyên tố số lớn 1, chia hết cho nó, ngồi khơng cịn số chia hết Số số nguyên tố Do 7, 17, 53, 73, 2521, 2365347734339 số nguyên tố Số lượng số nguyên tố vô tận Hệ mật mã thường sử dụng số nguyên tố lớn cỡ 512 bits chí lớn 3.3 Ước số chung lớn Hai số gọi cặp số nguyên tố mà chúng khôn g có thừa số chung khác 1, hay nói cách khác, ước số chung lớn a n Chúng ta viết sau : gcd(a,n)=1 Số 15 28 cặp số ngun tố, 15 27 khơng phải cặp số nguyên tố có ước số chu ng 3, dễ dàng thấy 13 500 Trang 12 cặp số nguyên tố Một số nguyên tố cặp số nguyên tố với tất số khác loại trừ số bội số Một cách dễ để tính tốn ước số chung lớn hai số nhờ vào thuật tốn Euclid Knuth mơ tả thuật tốn vài mơ hình thuật tốn sửa đổi Dưới đoạn mã nguồn ngôn ngữ C /* Thuật tốn tìm ước số chung lớn x y, giả sử x,y>0 */ int gcd(int x, int y) { int g; if(x