Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

39 696 2
Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tham khảo chuyên ngành tin học Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

Nghiên cứu, thực số test để đánh giá độ an toàn DES LỜI MỞ ĐẦU Máy tính phát minh vào năm 1942, lúc nằm tầm tay tổ chức, cá nhân u cầu cao chi phí, kích cỡ, lượng… Ngày nay, máy tính phổ biến người ta khơng sử dụng máy tính đơn lẻ mà kết nối máy tính với nhằm tăng khả làm việc, trao đổi cập nhật thơng tin Các máy tính kết nối với gọi mạng Trên phạm vi toàn cầu người ta dung mạng Internet, quốc gia có mạng riêng minh (Intranet) với nhiều mạng mang tính phận( LAN( Local Area Network- Mạng cục bộ) WAN( Wide Area Network- Mạng diện rộng) MAN(Metropolitan Area Network- Mạng vùng Thành phố)) Nhiều dịch vụ mạng : thư điện tử, chuyển nhận tiền, thương mại điện tử… sử dụng rộng rãi Khi tham gia vào mạng, vấn đề quan trọng đặt làm để bảo mật thông tin, liệu Thông tin mạng dù chuyển hay lưu trữ cần bảo vệ Hoặc thơng tin cần giữ bí mật chúng phải 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 thuỷ Trước yêu cầu số giải pháp kỹ thuật xây dựng nhằm đảm bảo tính an tồn liệu nơi lưu trữ liệu truyền qua mạng Các giải pháp người ta sử dụng hệ mật Có hệ mật cổ điển : mật Nghiên cứu, thực số test để đánh giá độ an toàn DES mã thay thế, mật mã dịch chuyển, mật mã Affine, mật mã Vigenere…, hệ mật đại : mật mã khố cơng khai RSA, chữ ký số, chuẩn mã liệu DES… Nhưng sử dụng hệ mật để mã hoá liệu cần phải quan tâm đến độ an toàn hệ mật mà sử dụng Trong đề tài tơi nghiên cứu cách đánh giá độ an toàn chuẩn mã liệu DES Để kiểm tra đánh giá độ an tồn DES ta có hai cách Đó phương pháp cơng DES phương pháp đánh giá tính chất DES Sự khác hai phương pháp phương pháp công trực tiếp vào DES, phá vỡ DES ta nói DES khơng an tồn ngược lại; phương pháp đánh giá tính chất kiểm tra tính chất DES, thoả mãn điều kiện nói an tồn ngược lại Và sâu nghiên cứu phương pháp đánh giá tính chất DES Nghiên cứu, thực số test để đánh giá độ an tồn DES Chương I TỔNG QUAN VỀ NGƠN NGỮ C I.1 Lịch sử hình thành phát triển Ngôn ngữ C Brian W.Kernighan Dennis M.Ritchie phát triển vào đầu năm 70 phịng thí nghiệm BELL ( Hoa Kỳ) với mục đích ban đầu để phát triển hệ điều hành UNIX Bối cảnh đời xuất phát từ nhu cầu cần phải có ngơn ngữ lập trình hệ thống thay cho hợp ngữ (Assembly) vốn nặng nề, độ tin cậy thấp khó chuyển đổi hệ máy tính khác Ngoài việc C dùng để viết hệ điều hành UNIX, người ta nhanh chóng nhận sức mạnh C việc xử lý vấn đề đại tin học: xử lý số, văn bản, sở liệu, lập trình hướng đối tượng C trở thành chuẩn Liên quan đến hình thành phát triển ngơn ngữ, kể đến số kiện sau: - Năm 1978, giáo trình dạy lập trình ngơn ngữ C “The C programming langguage” tác giả ngơn ngữ Brian W.Kernighan Dennis M.Ritchie biên soạn xuất phổ biến rộng rãi - Năm 1983 tiểu ban viện tiêu chuẩn quốc gia Mỹ (ANSI) thành lập nhằm đề xuất chuẩn cho ngôn ngữ C Nghiên cứu, thực số test để đánh giá độ an toàn DES - Năm 1988 chuẩn ANSI C thức ban hành Chuẩn bao gồm mô tả ngôn ngữ theo Brian W.Kernighan Dennis M.Ritchie quy định thư viện chuẩn ngôn ngữ C, nhờ tăng tính khả chuyển chương trình viết C - Trong giới máy vi tính có hệ chương trình dịch C tiếng như: Turbo C, Borland C Borland Inc; MSC, VC Microsoft Corp; Lattice C Lattice I Các tính chất đặc trưng ngôn ngữ C ngôn ngữ lập trình vạn dùng để viết hệ điều hành UNIX chương trình ứng dụng quản lý văn bản, sở liệu C ngơn ngữ có mức độ thích nghi cao, gọn không thiết phải cần tới hợp ngữ C độc lập với kiến trúc máy đặc thù với chút thận trọng dễ dàng viết chương trình “khả chuyển” (portability) tức chương trình chạy mà khơng cần phải thay đổi có thay đổi phần cứng C sử dụng rộng rãi lĩnh vực chuyên nghiệp đáp ứng yêu cầu: hiệu cao soạn thảo chương trình dịch mã máy; tiếp cận trực tiếp với thiết bị phần cứng C không đưa phép toán xử lý trực tiếp đối tượng hợp thành đối tượng tồn vẹn; khơng xác định phương tiện cấp phát nhớ khác cấp phát tĩnh, cấp phát động theo nguyên tắc xếp chồng cho biến cục hàm; khơng cung cấp chế I/O, khơng có phương pháp truy nhập tệp Tất chế thực lời gọi hàm thư viện Nghiên cứu, thực số test để đánh giá độ an toàn DES C đưa kết cấu điều khiển cần cho chương trình có cấu trúc như: nhóm câu lệnh, chọn định (if); chu trình với phép kiểm tra kết thúc đầu (for, while), cuối (do while); việc lựa chọn trường hợp (switch) C cung cấp trỏ khả định địa số học Các đối hàm truyền cách chép giá trị đối hàm gọi thay đổi giá trị đối C cho phép hàm gọi đệ quy biến cục hàm “tự động” sinh tạo với lần gọi Các định nghĩa hàm không lồng biến khai báo theo kiểu cấu trúc khối Các hàm dịch tách biệt Các biến ngồi hàm Hàm biết biến tệp gốc, biến tổng thể extern Các biến tự động đặt ghi để tăng hiệu quả, việc khai báo ghi hướng dẫn cho chương trình dịch khơng liên quan đến ghi đặc biệt máy C khơng phải ngơn ngữ có kiểu mạnh mẽ theo nghĩa PASCAL ALGOL/68 Nó tương đối thoải mái chuyển đổi liệu không tự động chuyển kiểu liệu cách phóng túng PL/I Các chương trình dịch có không đưa chế kiểm tra số mảng, kiểu đối số… Mặc dù vậy, C tồn số nhược điểm số phép toán có thứ tự thực chưa đúng; số phần cú pháp làm tốt hơn; có nhiều phiên ngôn ngữ, khác vài chi tiết Tóm lại, C tỏ ngôn ngữ hiệu đầy sức diễn cảm nhiều lĩnh vực ứng dụng lập trình Hơn nữa, ta biết hệ mật chuẩn hay chữ ký số cần số lớn tức kích cỡ khơng gian khố lớn Nghiên cứu, thực số test để đánh giá độ an toàn DES khoảng 300 số thập phân Do đó, ngơn ngữ C đủ mạnh để đáp ứng điều CHƯƠNG II CÁC HỆ MẬT CỔ ĐIỂN II.1 Các hệ mật Mục tiêu mật mã cho phép hai người, thường đề cập đến Alice Bob, liên lạc kênh khơng an tồn theo cách mà đối thủ Oscar khơng thể hiểu nói Kênh đường điện thoại máy tính chẳng hạn Định nghĩa : Hệ mật năm thành phần (P,C,K,E,D) thoả mãn điều kiện sau: 1) P tập hữu hạn rõ 2) C tập hữu hạn mã 3) K tập hữu hạn khố 4) Với k ∈ K, tồn quy tắc mã ek ∈ E quy tắc giải mã tương ứng dk ∈ D Mỗi ek : P → C dk : C → P thoả mãn : dk(ek(x)) = x với rõ x ∈ P Nghiên cứu, thực số test để đánh giá độ an tồn DES Điều kiện điều kiện Nó có nghĩa rõ x ( plaintext ) mã hố sử ek sau mã ( ciphertext ) kết giải mã sử dụng dk thu kết rõ nguyên x Giả sử, Alice muốn gửi cho Bob thông báo mà không cho người khác xem, thơng báo tiếng Anh, liệu sơ v.v…có cấu trúc tuỳ ý Thơng tin gọi rõ Alice Bob phải thống chọn hệ mật chọn khoá ngẫu nhiên k∈ K Họ làm điều cách an toàn, chẳng hạn họ chỗ không bị Oscar quan sát họ dùng kênh an toàn xa Sau đó, giả sử Alice muốn gửi thơng báo cho Bob kênh khơng an tồn Thơng báo dịng: x = x1, x2,…, xn với n ≥ 1, xi ∈ P, 1≤ i≤ n Mỗi xi mã hoá sử dụng quy tắc e k định rõ khoá định trước K Từ đó, Alice tính: yi = ek( xi), với 1≤ i≤ n, mã thu dòng: y = y1, y2,…, yn Alice gửi kênh, Oscar dù thấy mã kênh khơng an tồn khơng thể xác định rõ Khi Bob nhận y = y1, y2,…, yn, sử dụng dk để giả mã, thu rõ ban đầu x = x1,x2,…,xn Rõ ràng, với x1 ≠ x2 ek(x1) ≠ ek(x2) Nếu y = ek(x1)= ek(x2) x1 = x2 Bob khơng biết y phải gải mã cho x1 hay x2 Chú ý P = C hàm mã hố ek phép hốn vị Có nghĩa là, tập rõ mã Oscar tương tự hàm mã hóa xếp ( hay hốn vị ) lại phần tử tập Alice Bộ mã hố Kênh an tồn Nguồn khố Bộ giải mã Bob Nghiên cứu, thực số test để đánh giá độ an toàn DES X y y x k k Sau hệ mật mà Alice Bob dùng II.1.1 Mật mã dịch chuyển Định nghĩa : Cho P = C = K = Z26 Với ≤ k ≤ 25, xác định : ek(x) = x + k mod 26 dk(y) = y + k mod 26 với x,y ∈ Z26 Ví dụ : Giả sử khố k = 11 rõ : WEWILLMEETATMIDNIGHT Trước hết, phải số hố thu sau 22 19 22 12 8 11 11 13 12 19 19 Tiếp theo, cộng 11 vào giá trị, rút gọn tổng theo modulo 26 11 15 23 19 19 22 14 22 24 23 19 15 17 Cuối chuyển dãy số thành dãy chữ HPHTWWXTPELEXTOYTRSE 15 18 4 Nghiên cứu, thực số test để đánh giá độ an toàn DES Để giải mã, Bob thực theo trình tự ngược lại Trước hết chuyển mã thành dãy số, trừ giá trị cho 11( rút gọn cho modulo 26) cuối chuyển dãy số thành dãy chữ Một hệ mật sử dụng thực tế, phải thoả mãn hai tính chất sau: 1) ek dk tác động vào x y có hiệu tính tốn 2) Một đối thủ có mã y, khơng thể xác định khố k sử dụng rõ x II.1.2 Mật mã thay Định nghĩa : Cho P = C = Z26 , K gồm tất hoán vị tập 26 phần tử từ 0,1,…,25 Với hoán vị π ∈ K, xác định : eπ(x) = π(x) dπ(y) = π-1(y) với π-1 hoán vị ngược π Ví dụ : π= Abcdefghij Xnyahpogzq Klmnopqrst Wbtsflrcvm Uvwxyz Uekjdi eπ(a) = π(a) = x eπ(b) = π(b) = n Abcdefghij Dlryvohezx Klmnopqrst Wptbgfjqnm Uvwxyz Uskaci π-1 = dπ(x) = π-1(x) = a dπ(n) = π-1(n) = b II.1.3 Mật mã Affine Mật mã dịch chuyể trường hợp đặc biệt mật mã thay Mật mã affine trường hợp mật mã thay Trong mật mã affine, hàm mã có dạng : Nghiên cứu, thực số test để đánh giá độ an toàn DES với a,b ∈ Z26 E(x) = ax + b mod 26 Hàm gọi hàm affine Khi a = ta mật mã dịch chuyển Để giải mã được, hàm affine phải song ánh, nghĩa với y ∈ Z26 , phương trình ax + b = y (mod 26) phải có nghiệm Đồng dư thức tương : ax = y – b (mod 26) Phương trình có nghiệm (a,26) = Để tìm nghiệm x, trước tiên ta tìm số a-1 ∈ a26 thoả mãn : a.a-1 = mod 26 Khi d(y) = a-1(y - b) mod (26) Định nghĩa : Cho P = C = Z26 K = {(a,b) ∈ Z26 * Z26 : (a,26) = 1} với k = (a,b) ∈ K, xác định : ek(x) = ax + b mod 26 dk(y) = a-1(y - b) mod 26 với x,y ∈ Z26 II.1.4 Mật mã Vigenere Mật mã Vigenere mật mã đa biểu, tức ký tự mã ánh xạ thành nhiều ký tự khác Định nghĩa : Cho m số nguyên dương cố định, P = C = K = (Z26)m với khoá K = (k1,k2,….,km), xác định : ek(x1,x2,….,xm) = (x1+k1,x2+k2,….,xm+km) dk(y1,y2,….,ym) = (y1- k1,y2- k2,….,ym- km) tất hoạt động tiến hành Z26 Ví dụ : m = 6, khoá k = CIPHER = (2,8,15,7,4,17) Thông báo : THISCRIPTOSYSTEMISNOTSECURE Ta chuyển thành số : 19 21 15 15 23 18 25 17 17 24 15 23 10 19 15 14 21 19 23 18 20 19 15 19 Nghiên cứu, thực số test để đánh giá độ an toàn DES nhiều cặp rõ lựa chọn việc phá vỡ đủ 16 vịng DES thơng thường, phương pháp thành cơng việc phã vỡ DES số vịng giảm xuống Ví dụ vịng DES bị phá vỡ vài phút PC nhỏ với số không nhiều rõ lựa chọn Để hiểu phương pháp lượng sai, nghiên cứu trường hợp đơn giản cơng DES vịng IV.1.1 Một số khái niệm Lượng sai bao gồm việc so sánh XOR hai rõ với XOR hai mã tuơng ứng Chúng ta xem xét hai rõ L0R0 L0*R0* với giá trị XOR đặc biệt L0’ R0’ = L0R0 ^ L0*R0* Ta có khái niệm sau: a Định nghĩa : Cho Si hộp S ( ≤ j ≤ ) Xét cặp có thứ thự ( Bj,Bj*) với | Bj | = | Bj* | = Ta nói XOR đầu vào S j Bj ^ Bj* XOR đầu Sj Sj (Bj ) ^ Sj (Bj*) Chú ý XOR đầu vào dãy bit có độ dài cịn XOR đầu dãy có độ dài bit b Định nghĩa : Với Bj’ € {Z2}6 ta định nghĩa Δ(Bj’) = {(Bj, Bj*) : Bj ^ Bj* = Bj’ } Với cặp Δ(Bj’), tính XOR đầu Sj lập bảng kết phân phối c Định nghĩa : Với ≤ j ≤ 8, dãy Bj’ dài bit, Cj’ dài bit, ta định nghĩa : 25 Nghiên cứu, thực số test để đánh giá độ an toàn DES INj(Bj’, Cj’ ) = {Bj € {Z2}6 : Sj (Bj ) ^ Sj(Bj ^ Bj’ ) = Cj’ } Và INj(Bj’, Cj’ ) = | INj(Bj’, Cj’ ) | Thực ra, INj(Bj’, Cj’ ) đếm số cặp XOR đầu vào Bj’ có XOR đầu tương ứng Cj’ cho hộp Sj Từ tập INj(Bj’, Cj’ ) ta thu cặp có XOR đầu vào đặc biệt gây XOR đầu đặc biệt d Định nghĩa : Giả sử Ej , Ej* dãy bit, Cj’ dãy bit Ta định nghĩa : Testj(Ej, Ej*, Cj’) = { Bj ^ Ej : Bj € INj(Ej’, Cj’ ) } Ej’ = Ej ^ Ej* Hay nói cách khác : Testj(Ej, Ej*, Cj’) = Ej ^INj(Ej’, Cj’ ) Định lý : Giả sử Ej , Ej* đầu vào Sj XOR đầu tương ứng Sj Cj’, ký hiệu Ej’ = Ej ^ Ej* Khi đó, bit khoá Jj phải xuất tập Testj(Ej, Ej*, Cj’) IV.1.2 Tấn cơng DES vịng Việc thám mã DES vòng phương pháp lượng sai gắn với việc lựa chọn rõ cho DES Chúng ta bắt đầu với cặp rõ mã L 0R0 , L0* R0*, L3R3 L3* R3* R3 tính sau : R3 = L2 ^ f(R2, k3) = R1 ^ f(R2, k3) = L0 ^ f(R0, k1) ^ f(R2, k3) Tương tự ta có : R3* = L0* ^ f(R0*, k1) ^ f(R2*, k3) Do : R3’ = R3 ^ R3* = L0’ ^ f(R0, k1) ^ f(R0*, k1) ^ f(R2, k3) ^ f(R2*, k3) Ta chọn x, x* cho R0 = R0* có nghĩa R0’ = 00…0 Khi f(R0, k1) = f(R0*, k1) 26 Nghiên cứu, thực số test để đánh giá độ an toàn DES Vì R3’ = L0’ ^ f(R2, k3) ^ f(R2*, k3) Mặt khác, R3’ tìm từ hai mã L0’ tìm từ hai rõ Từ đó, tính f(R2, k3) ^ f(R2*, k3) sau : f(R2, k3) ^ f(R2*, k3) = R3’ ^ L0’ Mà f(R2, k3) = P(C) f(R2*, k3) = P(C*) Với C C* đầu hộp S → P(C) ^ P(C*) = R3’ ^ L0’ → P(C ^ C*) = R3’ ^ L0’ P(C’) = R3’ ^ L0’ hay C’ = P-1(R3’ ^ L0’) Đó XOR đầu hộp vòng Từ E = E1E2….E8; E = E1 *E2 *….E8 * C’ = C1’C2’….C8’ ta xây dựng tập Testj(Ej, Ej*, Cj’), với j = ÷ 8, chứa giá trị J1J2….J8( chứa 48 bit khố DES vịng ) Từ J1J2….J8 đưa qua bảng Round ta tìm vị trí xác 48 bit khố ban đầu Kiểu công dùng vài ba E, E*, C’ Ta thiết lập cụm đếm xác định 48 bit khố k3 ( khố vịng thứ ) Cịn lại bit khoá chưa xác định Đến ta dùng cách thử toàn 28 = 256 trường hợp cho bit cịn lại IV.1.3 Thuật tốn thám mã DES vịng : Đầu vào L0R0, L0*R0*, L3R3 L3*R3* Bước : Tính C’ = P-1(R3’ ^ L3’) Bước : Tính E = E(L3) E* = E(L3*) Bước : j = ÷ tính testj(E, E*, C’) Bước : i = 1÷255 (giá trị bit cịn đặt dấu ? ) 27 Nghiên cứu, thực số test để đánh giá độ an toàn DES Tìm k (| k | = 56 ) cho ek (x) = y ek (x*) = y* Khi tìm 56 bit khố, ta cần tìm nốt bit kiểm tra dãy 64 bit khoá Tuy nhiên, mã ASCII mở rộng bỏ bit kiểm tra số trường hợp bít kiểm tra khơng khố cần tìm Vì DES không dùng đến bit kiểm tra để mã hố khố tìm ( xác 56 bit ) IV.2 Phương pháp đánh giá tính chất DES Để đánh giá độ an tồn DES ta kiểm tra tính chất DES, thoả mãn điều kiện kết luận an tồn Các tính chất là: - Số trung bình bit thay đổi thay đổi bit vào - Mức độ đầy đủ - Mức độ hiệu dồn nén - Mức độ tiêu chuẩn dồn nén chặt IV.2.1 Các định nghĩa Ta xét: vector x = (x1,…,xn) € (GF(2))n, vector x(i) € (GF(2))n với vector x(i) đạt cách lấy phần bù bit thứ i vector x (với i = ÷ n ) Trọng số Hamming w(x) x số thành phần khác vector x - Hàm f : (GF(2))n → (GF(2))m n bit vào m bit gọi đầy đủ (the degree of completeness ) bit phụ thuộc vào bit vào: với i = ÷ n j = ÷ m 28 Nghiên cứu, thực số test để đánh giá độ an toàn DES tồn x € (GF(2))n với ( f ( x(i) ))j ≠ ( f ( x))j có nghĩa tồn vector x € (GF(2))n cho thay đổi bit vào thứ i làm thay đổi bit thứ j ( bit thứ j phụ thuộc vào bit vào thứ i ) - Hàm f : (GF(2))n → (GF(2))m có hiệu dồn nén ( the avalanche effect ) trung bình ½ bit thay đổi bit vào đơn thay đổi: 2n ∑ x∈( GF ( ) ) n w( f ( x ( i ) ) − f ( x)) = m với i = 1÷ n - Hàm f : (GF(2))n → (GF(2))m thoả mãn tiêu chuẩn dồn nén chặt ( the strict avalanche criterion ) bit thay đổi với xác suât ½ bit vào đơn thay đổi: Với i = ÷ n j = ÷ m Pr( ( f (x(i)))j ≠ ( f (x))j ) = ½ - Ma trận phụ thuộc hàm f : (GF(2))n → (GF(2))m ma trận A cỡ n*m mà phần tử a i j biểu thị số liệu vào mà thay đổi bit vào thứ i dẫn đến thay đổi bit thứ j : j = # { x € GF(2))n | ( f (x(i)))j ≠ ( f (x))j } với i = ÷ n j = ÷ m - Ma trận khoảng cách hàm f : (GF(2))n → (GF(2))m ma trận B cỡ n*(m+1) mà phần tử bi j biểu thị số liệu vào mà thay đổi bit vào thứ i dẫn đến thay đổi j bit bi j = # { x € GF(2))n | w( f (x(i)) - f (x) ) = j } với i = ÷ n j = ÷ m 29 Nghiên cứu, thực số test để đánh giá độ an toàn DES Tuy nhiên, việc tính tốn ma trận khoảng cách ma trận phụ thuộc cho tất liệu vào được, trừ số liệu vào nhỏ Vì người ta xét số “ thích hợp ” liệu vào lựa chọn ngẫu nhiên Giả sử tập X tập lựa chọn ngẫu nhiên thích hợp GF(2))n Khi ma trận khoảng cách ma trận phụ thuộc định nghĩa sau: - Ma trận phụ thuộc: j = # { x € X | ( f (x(i)))j ≠ ( f (x))j } với i = ÷ n j = ÷ m - Ma trận khoảng cách: bi j = # { x € X | w( f (x(i)) - f (x) ) = j } với i = ÷ n j = ÷ m IV.2.2 Xác định tham số a Tìm tập X tập GF(2))n Rõ ràng với x thuộc X x có dạng x=(x 1,…,xn), chọn ngẫu nhiên x sau: Chọn ngẫu nhiên x0 C {0,1} nhờ hàm Random Chọn ngẫu nhiên x1 C {0,1} cách tương tự … xn-1 chọn ngẫu nhiên tương tự Đến x chọn ngẫu nhiên Ta chọn tiếp x cách Mỗi x mơ tả mảng, ta dùng mảng chiều để mô tả x: x[i][j] với i=0,…,n j=0,…,n-1 For (i=0;i

Ngày đăng: 22/11/2012, 09:12

Hình ảnh liên quan

Hà mf đợc thể hiện trong hình dới đâ y: - Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

mf.

đợc thể hiện trong hình dới đâ y: Xem tại trang 17 của tài liệu.
Ta có các bảng PC-1 và PC-2 : - Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

a.

có các bảng PC-1 và PC-2 : Xem tại trang 20 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan