Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ

45 4.3K 9
Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ

Đ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

Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ

An ton v bo mt thụng tin 1 mục lục Lời nói đầu 2 Phần i: các khái niệm bản 3 Phần ii: Các phơng pháp hóa cổ điển 6 I. Hệ hoá thay thế (Substitution Cipher) 6 1. Hệ hoá CAESAR 8 2. Hệ hoá AFFINE 11 3. Hệ hoá Playfair 14 4. Hệ hoá VIGENERE 16 5. Hệ hoá HILL 20 II. Hệ hoá hoán vị (Transposition Cipher) 25 III. Các cách Thám (Cryptanalyis) 29 Phần iii: cài đặt một số thuật toán 32 Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 2 Lời nói đầu Trong các thập niên va qua vic ng dng Công ngh thông tin trong lnh vc kinh doanh v các hot ng dân s ã thc s bùng n. Ngân hng v các t chc ti chính lu chuyn hng t ô la mi ngy trên các h thng EFT (Electronic Fulds Transfer: H thng chuyn tin in t). Các tập đoàn công nghiệp tiến hành xử lý và truyền nhập các thông tin đắt giá, chẳng hạn về thiết kế hoặc giao dịch mua bán cổ phiếu, trái phiếu và ngoại tệ với số lợng lớn đợc thực hiện thông qua mạng máy tính. Lợng thông tin cá nhân khổng lồ ấy đợc lu trữ và xử lý bởi máy tính. Tất cả những dụ trên đều cho thấy phạm vi cho những hành vi gian lận và tình báo công nghiệp hoạt động đã trở nên vô cùng rộng lớn. Ngày nay, với sự bùng nổ của công nghệ thông tin đặc biệt là Internet với email, e-buissiness thì vấn đề bảo vệ thông tin ngày càng quan trọng quyết định sự sống còn của 1 công ty và các vấn đề an ninh quốc phòng. Giải pháp hiện thời cho việc bảo vệ của hều hết các quốc gia là kiểm soát lỗi và hóa dữ liệu. Phơng pháp hóa dữ liệu xuất hiện từ hàng ngàn năm trớc và đã những đóng góp đáng kể trong lĩnh vực bảo mật thông tin. Với đề tài: Xây dựng thuật toán, viết đặc tả hoặc vẽ đồ cho các thuật toán hóa cổ điển. Cho dụ minh họa, mỗi thuật toán 5 dụ em sẽ trình bày cụ thể hơn về các thuật toán trong hóa cổ điển -một phơng pháp hóa xuất hiện từ rất sớm. Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 3 Phần i: các khái niệm bản hóa cổ điển là phơng pháp hóa đơn giản nhất xuất hiện đầu tiên trong lịch sử ngành hóa. Thuật toán đơn giản và dễ hiểu. Những phơng pháp hóa này là sở cho việc nghiên cứu và phát triển thuật toán hóa đối xứng đợc sử dụng ngày nay. Trong hóa cổ điển hai phơng pháp nổi bật là: hóa thay thế và hóa hoán vị. Các thông điệp cần chuyển đi và cần đợc bảo vệ an toàn gọi là bản rõ (plaintext), và đợc ký hiệu là P. Nó thể là một dòng vào các bít, các file, âm thanh số hoá, Bản rõ đợc dùng để lu trữ hoặc để truyền đạt thông tin. Trong mọi trờng hợp bản rõ là thông điệp cần hoá. Quá trình xử lý một thông điệp trớc khi gửi đợc gọi là quá trình hoá (encryption), ký hiệu là E. Một thông điệp đã đợc hoá đợc gọi là bản (ciphertext), và đợc ký hiệu là C. Quá trình xử lý ngợc lại từ bản thành bản rõ đợc gọi là quá trình giải (decryption), ký hiệu là D. Hàm hóa E thực hiện trên P để thu đợc C, ta có: E(P)=C Hàm giải D thực hiện trên C để thu đợc C, ta có: D(C)=P Việc hoá và giải thờng đợc thực hiện theo một hệ đợc mô tả rõ. Khoá (key) là một giá trị dùng để thực hiện một thuật toán hoá. Khoá thể là một số, một xâu ký tự, Khoá này thể nhận một trong nhiều giá trị (càng nhiều càng tốt). Giới hạn các giá trị thể của khoá đợc gọi là không gian khoá (space key). Mỗi khoá k xác định một hàm hoá E k và một hàm giải D k . Giá trị của Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 4 khoá quyết định hiệu quả của các hàm hoá và giải mã, vậy các hàm hoá và giải thể đợc biểu diễn nh sau: E k (P) = C D k (C) = P Một cách cụ thể hơn, một hệ hoá bao gồm: một không gian bản rõ, một không gian bản và một không gian khoá. - Không gian bản rõ thể * trên bảng chữ cái hoặc tập hợp tất cả các câu nghĩa trong một ngôn ngữ tự nhiên nào đó. - Không gian bản thể là * trên bảng chữ cái . - Không gian khoá K là giới hạn thể nhận đợc của khoá k. Mỗi khoá sẽ xác định một cặp các ánh xạ E k và D k tơng ứng. Trong một hệ hoá nếu khoá để và khoá để giải giống nhau thì: D k (E k (P))=P nhiều thuật toán khoá và khoá giải khác nhau. Khi đó, khoá k 1 khác với khoá giải k 2 : E k1 (P)=C D k2 (C)=P Nguyn Th Thu Hin - TK6LC1 Bản rõ hoá Giải Bản rõ Bản Khoá Hình 1. hoá với khoá và khoá giải giống nhau An toàn và bảo mật thông tin 5 D k2 (E k1 (P))=P Nguyễn Thị Thu Hiền - TK6LC1 B¶n râ M· ho¸ Gi¶i m· B¶n râ B¶n m· Kho¸ gi¶i H×nh 2. M· ho¸ víi kho¸ m· vµ kho¸ gi¶i kh¸c nhau Kho¸ m· An ton v bo mt thụng tin 6 Phần ii: Các phơng pháp hóa cổ điển I. Hệ hoá thay thế (Substitution Cipher) Hệ hoá thay thế là hệ hoá trong đó mỗi ký tự của bản rõ đợc thay thế bằng ký tự khác trong bản (có thể là một chữ cái, một số hoặc một ký hiệu). Sự thay thế này làm cho bản rõ trở lên khó hiểu đối với mọi ngời nhng ngời nhận sẽ đảo sự thay thế trong bản để đợc bản rõ. 4 kỹ thuật thay thế sau đây: - Thay thế đơn (A simple substitution cipher): là hệ trong đó một ký tự của bản rõ đợc thay bằng một ký tự tơng ứng trong bản mã. Một ánh xạ 1-1 từ bản rõ tới bản đợc sử dụng để hoá toàn bộ thông điệp. - Thay thế đồng âm (A homophonic substitution cipher): giống nh hệ thống hoá thay thế đơn, ngoại trừ một ký tự của bản rõ thể đợc ánh xạ tới một trong số một vài ký tự của bản mã: đồ ánh xạ 1-n (one-to-many). dụ, A thể tơng ứng với 5, 13, 25, hoặc 56, B thể tơng ứng với 7, 19, 31, hoặc 42, v.v. - Thay thế đa mẫu tự (A polyalphbetic substitution cipher): đợc tạo nên từ nhiều thuật toán hoá thay thế đơn. ánh xạ 1-1 nh trong trờng hợp thay thế đơn, nhng thể thay đổi trong phạm vi một thông điệp. dụ, thể năm thuật toán hoá đơn khác nhau đợc sử dụng; đặc biệt thuật toán hoá đơn đợc sử dụng thay đổi theo vị trí của mỗi ký tự trong bản rõ. - Thay thế đa đồ (A polygram substitution cipher): là thuật toán trong đó các khối ký tự đợc hoá theo nhóm. Đây là thuật toán tổng quát nhất, cho phép thay thế các nhóm ký tự của văn bản gốc. dụ, ABA thể tơng ứng với RTQ, ABB thể tơng ứng với SLL, v.v. dụ ROT13 là một chơng trình hoá đơn giản thờng thấy trên hệ thống UNIX. Trong thuật toán hoá này, A đợc thay thế bằng N, B đợc thay thế bằng O, v.v Mọi ký tự đợc quay dịch 13 vị trí. Đây là một dụ về hoá thay thế đơn. Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 7 #include <stdio.h> void main() { int c; while ((c == getchar()) != EOF) { if (c >= a && c <= m ) c = c + 13; else if (c >= n && c <= z ) c = c 13; else if (c >= A && c <= M ) c = c + 13; else if (c >= N && c <= Z ) c = c-13; putchar(c); } } hoá một file hai lần bằng ROT13 và lu giữ kết quả trong file gốc: P = ROT13(ROT13(P)) rất nhiều hệ hoá thể dễ dàng bẻ gẫy bởi bản không ẩn đi đợc tần số xuất hiện của các ký tự khác nhau của bản rõ, khoảng 26 ký tự tiếng Anh. Một nhà thám giỏi thể xây dựng lại đợc bản rõ. Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 8 1. Hệ hoá CAESAR Hệ hoá nổi tiếng CAESAR là một hệ hoá đợc biết sớm nhất, sáng tạo bởi Julius Caesar. Lần đầu tiên đợc sử dụng trong quân sự. Hệ hóa này làm việc trên bảng chữ cái tiếng Anh 26 ký tự (A, B, , Z). Trong hệ CAESAR và các hệ tơng tự còn lại ta sử dụng các số tự nhiên thay cho các ký tự - đánh số các ký tự trong bảng chữ cái theo thứ tự: A là 0, B là 1, và Z là 25. A B C D E F G H I J L M N W X Y Z 0 1 2 3 4 5 6 7 8 9 1 1 1 2 1 3 2 2 2 3 2 3 2 5 Các phép toán số học thực hiện theo modul 26. nghĩa là 26 đồng nhất với 0, 27 đồng nhất với 1, 28 đồng nhất với 2, dụ: 2ì17 + 5ì9 = 79 = 1 + 3ì26 = 1 Thuật toán: - Bớc 1: Đa vào bản rõ cần hóa - Bớc 2: Cho khóa k (0 k 25) - Bớc 3: thay thế mỗi ký tự trong bản rõ bằng 1 ký tự khác bằng cách dịch ký tự cần hóa sang phảI k bớc theo modul 26. Tơng ứng với công thức: E k () = ( + k) MOD 26 với là một ký tự, k là khóa (0 k 25), MOD là phép chia lấy phần d. Không gian khoá của hệ CAESAR bao gồm 26 số 0, 1, 2, 25. dụ: với k=3, A đợc thay bằng D, B đợc thay bằng E, , W đợc thay bằng Z, , X đợc thay bằng A, Y đợc thay bằng B, và Z đợc thay bằng C. Ta có: Bảng chữ cái gốc A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 9 Bảng chữ cái dùng để hoá D E F G H I J K L M N O P Q R S T U V W X Y Z A B C dụ: dụ 1: =GOOD, k=8 ta có: E 8 (G)=(6+8) MOD 26 =14 =O E 8 (O)=(14+8) MOD 26 =22 =W E 8 (D)=(3+8) MOD 26 =11 =L Vậy với bản rõ GOOD ta sẽ hóa thành OWWL dụ 2: =Tinhoc, k=10 ta có: E 10 (T)=(19+10) MOD 26 =3 =D E 10 (I)=(8+10) MOD 26 =18 =S E 10 (N)=(13+10) MOD 26 =23 =X E 10 (H)=(7+10) MOD 26 =17 =R E 10 (O)=(14+10) MOD 26 =24 =Y E 10 (C)=(2+10) MOD 26 =12 =M Vậy với bản rõ TINHOC ta sẽ hóa thành DSXRYM dụ 3: =Baomat, k=17 ta có: E 17 (B)=(1+17) MOD 26 =18 =S E 17 (A)=(0+17) MOD 26 =17 =R E 17 (O)=(14+17) MOD 26 =5 =F E 17 (M)=(12+17) MOD 26 =3 =D E 17 (T)=(19+17) MOD 26 =10 =K Nguyn Th Thu Hin - TK6LC1 An ton v bo mt thụng tin 10 Vậy với bản rõ BAOMAT ta sẽ hóa thành SRFDRK * Thuật toán giải tơng ứng D k là lùi lại k bớc trong bảng chữ cái theo modul 26. D k () = ( - k) MOD 26 Để minh họa, ta xét một vài dụ minh hoạ: dụ 1: = HPWNZXP - Xét với k=1 ta thể lùi lại 1 bớc trong bảng chữ cái. Nh vậy bản trên tơng ứng là: GOVMYWO - k=2, tơng tự thu đợc bản rõ FNULXVN - k=3, thu đợc bản rõ EMTKWUM - k=4, thu đợc bản rõ DLSJVTL - k=5, thu đợc bản rõ CKRIUSK - k=6, thu đợc bản rõ BJQHTRJ - k=7, thu đợc bản rõ AIPGSQI - k=8, thu đợc bản rõ ZHOFRPH - k=9, thu đợc bản rõ YGNEQOG - k=10, thu đợc bản rõ XFMDPNF - k=11, thu đợc bản rõ WELCOME Đến đây bản rõ nghĩa (WELCOME) nên ta xác định đợc khóa k = 11 dụ 2: Cho bản JBCRCLQRWCRVNBJENBWRWN ta thử liên tiếp các khóa giải để thu đợc các bản rõ: Nguyn Th Thu Hin - TK6LC1 [...]... VIGENERE Mỗi cột của hình vuông VIGENERE thể xem nh là một hệ CAESAR, với các khoá 0, 1, 2, , 25 Để hoá thì bản rõ đợc đọc từ các hàng và khoá đợc đọc từ các cột Thuật toán: - Bớc 1: Cho bản rõ cần hóa độ dài tùy ý - Bớc 2: Cho trớc khóa k là 1 xâu độ dài tùy ý Khóa đợc áp dụng một cách tuần hoàn, tức là nếu bản rõ dài hơn khóa thì khóa sẽ đợc áp dụng lại từ đầu - Bớc 3: Đọc bản rõ từ các. .. điệp từ bản không khoá Nếu thành công, ngời phân tích thể thu đợc bản rõ hoặc khoá, hoặc cũng thể tìm thấy điểm yếu trong một hệ thống hoá Các thuật toán sử dụng cho phần lớn các hệ thống hoá là nổi tiếng, vậy chúng ta giả thiết rằng ngời thám đã biết thuật toán để bắt đầu thám Nh vậy, vấn đề cốt yếu của một hệ hoá tốt là việc khôi phục bản rõ P từ bản C khi biết... Công việc của ngời thám là tìm ra khoá (hoặc các khoá) đợc sử dụng để hoá các thông điệp hoặc thuật toán để giải bất kỳ một thông điệp mới nào đợc hoá bằng khoá đó Đầu vào: P1, C1=Ek(P1), P2, C2=Ek(P2), Pi, Ci=Ek(Pi) Cần tìm: hoặc k, hoặc một thuật toán để nhận đợc Pi+1 từ Ek(Pi+1) 3 Lựa chọn bản rõ (Chosen-plaintext attack) Ngời thám không chỉ phân tích bản còn đợc kết hợp với... nhng các bản rõ không là tuỳ ý do ngời thám phải lựa chọn Trờng hợp này tốt hơn trờng hợp (2) đối với ngời thám mã, bởi ngời thám thể chọn khối bản rõ đặc trng để giải mã, nó thể mang lại nhiều thông tin về khoá Công việc của ngời thám là tìm khoá (hoặc các khoá) đợc sử dụng để hoá các thông điệp hoặc một thuật toán để giải bất cứ thông điệp đã đợc hoá mới nào bằng các. .. xuất từ khóa không lặp lại đợc gắn vào đầu nguyên bản - Nếu biết từ khóa sẽ giải đợc chữ cái đầu tiên - Sử dụng các chữ cái này làm khóa để giải các chữ cái tiếp theo 5 Hệ hoá HILL Hệ hoá này dựa trên lý thuyết về đại số tuyến tính do Lester S.Hill đ a ra năm 1929 Cả không gian bản rõ và bản đều là *, trong đó là bản chữ cái tiếng Anh Chúng ta sử dụng các số tự nhiên thay cho các ký... G(R,A) = R G(E,H) = L Sau khi hóa ta sẽ thu đợc bản HINSNQRL dụ3 : hóa bản rõ THUATTOAN với từ khoá BAOMAT G(T,B) = U G(H,A) = H G(U,O) = I G(A,M) = M G(T,A) = T G(T,T) = M G(O,B) = P G(A,A) = A G(N,O) = B Sau khi hóa ta sẽ thu đợc bản UHIMTMPAB * Giải Để giải ta vẫn dùng hình vuông VIGENERE, xét khóa k đóng vai trò là cột, ký tự đợc hóa là giao của khóa và hàng nào đó tơng ứng... trình hoá đợc thực hiện theo công thức: C = K.P MOD 26 trong đó P và C đợc viết thành các vector cột d chiều Mỗi bộ d chữ cái của bản rõ đợc viết thành vector P với các thành phần là các số biểu diễn các ký tự Và C cũng thể hiện khối d ký tự của bản dụ1 : bản rõ HELP đợc viết thành hai vector H 7 P1 = = và P2 = E 4 L 11 = P 15 theo công thức hoá ta 3 2 3 5 7 ... khóa, với điều kiện trong từ khóa đó không chữ nào bị lặp Ta lập ma trận Playfair là ma trận cỡ 5x5 dựa trên từ khóa đã cho và gồm các chữ trên bảng chữ cái, đợc sắp xếp theo thứ tự nh sau: - Trớc hết, viết các chữ của từ khóa vào các hàng của ma trận bắt đầu từ hàng thứ nhất - Nếu ma trận còn trống, viết các chữ khác lên bảng chữ cái cha đợc sử dụng vào các ô còn lại thể viết theo 1 trình tự quy... (Chosen-Key) Ngời thám biết phơng pháp hoá Ek và cố tìm phơng pháp giải tơng ứng Dk trớc khi nhận bất cứ mẫu bản nào Trong trờng hợp này ngời thám rất nhiều thời gian để làm việc Trờng hợp (5) , (6) thờng đợc ứng dụng chủ yếu đối với các hệ thống hoá sử dụng khoá công khai Một điểm đáng chú ý khác là đa số các kỹ thuật thám đều dùng phơng pháp thống kê tần suất xuất hiện của các. .. xếp lại và các chữ cái đợc lấy ra theo hàng ngang dụ: bản rõ gốc là NGAY MAI BAT DAU CHIEN DICH XYZ đợc viết dới dạng ma trận 5 5 theo cột nh sau: Cột 1 2 3 4 5 Bản rõ N A D I C G I A E H A B U N X Y A C D Y M T H I Z 5 cột nên chúng thể đợc sắp lại theo 5! =120 cách khác nhau Để tăng độ an toàn thể chọn một trong các cách sắp xếp lại đó Nếu ta chuyển vị các cột theo thứ tự 3, 5, 2, 4, . tài: Xây dựng thuật toán, viết đặc tả hoặc vẽ sơ đồ cho các thuật toán mã hóa cổ điển. Cho ví dụ minh họa, mỗi thuật toán 5 ví dụ em sẽ trình bày cụ thể hơn về các thuật toán trong mã hóa cổ điển. ngành mã hóa. Thuật toán đơn giản và dễ hiểu. Những phơng pháp mã hóa này là cơ sở cho việc nghiên cứu và phát triển thuật toán mã hóa đối xứng đợc sử dụng ngày nay. Trong mã hóa cổ điển có. đồng nhất với 0, 27 đồng nhất với 1, 28 đồng nhất với 2, Ví dụ: 2ì17 + 5 9 = 79 = 1 + 3ì26 = 1 Thuật toán: - Bớc 1: Đa vào bản rõ cần mã hóa - Bớc 2: Cho khóa k (0 k 25) - Bớc 3: thay thế mỗi

Ngày đăng: 10/04/2014, 15:28

Từ khóa liên quan

Mục lục

  • Lời nói đầu 2

  • Phần i: các khái niệm cơ bản 3

  • Phần ii: Các phương pháp mã hóa cổ điển 6

    • I. Hệ mã hoá thay thế (Substitution Cipher) 6

  • 1. Hệ mã hoá CAESAR 8

  • 2. Hệ mã hoá AFFINE 11

  • 3. Hệ mã hoá Playfair 14

  • 4. Hệ mã hoá VIGENERE 16

  • 5. Hệ mã hoá HILL 20

    • II. Hệ mã hoá hoán vị (Transposition Cipher) 25

    • III. Các cách Thám mã (Cryptanalyis) 29

    • Phần iii: cài đặt một số thuật toán 32

    • Lời nói đầu

    • Phần i: các khái niệm cơ bản

    • Phần ii: Các phương pháp mã hóa cổ điển

      • I. Hệ mã hoá thay thế (Substitution Cipher)

  • 1. Hệ mã hoá CAESAR

  • 2. Hệ mã hoá AFFINE

  • 3. Hệ mã hoá Playfair

  • 4. Hệ mã hoá VIGENERE

  • 5. Hệ mã hoá HILL

    • II. Hệ mã hoá hoán vị (Transposition Cipher)

    • III. Các cách Thám mã (Cryptanalyis)

    • Phần iii: cài đặt một số thuật toán

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

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

Tài liệu liên quan