Tìm hiểu mã hoá khối

Mã hóa khối là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định(block) với nhưng chuyển đổi xác định. Phân biết với mã hóa khối là mã hóa dòng. Mã hóa dòng làm việc trên từng bít của dữ liệu và quá trình biến đổi thay đổi theo quá trình mã hóa. Tuy nhiên, sự phân biệt giữa 2 phương pháp nhiều khi không rõ ràng vì mã hóa khối khi hoạt động theo một chế độ nào đó thì có tác dụng như một phương pháp mã hóa dòng Để xây dựng thuật toán mã hóa khối an toàn bằng cách sử dụng kết hợp các thao tác mã hóa tạo ra tính hỗn loạn và tính khuếch tán thông tin: Tính hỗn loạn giúp phá vỡ mối quan hệ giữa bản rõ và bản mã, tạo ra mối quan hệ phức tạp và chặt chẽ giữa khóa và bản mã. Sự khuếch tán giúp phá vỡ và phân tán các phần tử trong các mẫ xuất hiện trong bản rõ để không thể phát hiện ra các mẫu này trong bản mã.

ppt17 trang | Chia sẻ: lvbuiluyen | Ngày: 23/10/2013 | Lượt xem: 3488 | Lượt tải: 3download
Bạn đang xem nội dung tài liệu Tìm hiểu mã hoá khối, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ì Bài Thảo Luận : Thực tập an toàn thông tin Chủ đề : Tìm hiểu mã hoá khối Giáo viên hướng dẫn : TH.S CAO NGỌC ÁNH Thành viên: ►Bùi Vĩnh Tiến ►Nguyễn Duy Trung ►Lê Công Đồng I. Mã khối Mã hóa khối là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định(block) với nhưng chuyển đổi xác định. Phân biết với mã hóa khối là mã hóa dòng. Mã hóa dòng làm việc trên từng bít của dữ liệu và quá trình biến đổi thay đổi theo quá trình mã hóa. Tuy nhiên, sự phân biệt giữa 2 phương pháp nhiều khi không rõ ràng vì mã hóa khối khi hoạt động theo một chế độ nào đó thì có tác dụng như một phương pháp mã hóa dòng. Để xây dựng thuật toán mã hóa khối an toàn bằng cách sử dụng kết hợp các thao tác mã hóa tạo ra tính hỗn loạn và tính khuếch tán thông tin: Tính hỗn loạn giúp phá vỡ mối quan hệ giữa bản rõ và bản mã, tạo ra mối quan hệ phức tạp và chặt chẽ giữa khóa và bản mã. Sự khuếch tán giúp phá vỡ và phân tán các phần tử trong các mẫ xuất hiện trong bản rõ để không thể phát hiện ra các mẫu này trong bản mã. II. Các chế độ sử dụng Mã khối 1. Chế độ bảng tra mã điện tử (Electronic code book -ECB) Ký hiệu : E : Encryption (Mã hóa) Pi : Plaintext block I (Khối bản rõ) K : Secret key (Khóa bảo mật) D : Decryption (Giải mã) Ci : Ciphertext block i (Khối bản mã) Mã hóa: Cj= Ek(Pj) P=P1P2…Pn Giải mã: Pj= Dk(Cj) Chỉ thích hợp cho việc mã hóa các thông điệp ngắn. Bảng mã của thông điệp dài có tính an toàn không cao. Ưu điểm của ECB : Đơn giản Không cần đồng bộ hóa giữa bên gửi và nhận. Các bit lỗi sẽ không được đưa vào các khối kế sau . Nhược điểm : Trong chế độ này, các khối được tạo mật mã riêngbiệt, độc lập. Do đó, những khối tin giống nhau sẽ được mã hóa thành những khối mã giống nhau. Traffic analysis (Phân tích đường truyền): Người thám mã có thể dựa vào yếu tố các khối plaintext giống nhau tạo các thống kê về các bản rõ tương ứng ngay cả khi không giải mã được toàn bộ bản mã, người thám mã có thể lợi dụng thống kê này để khám phá khóa. Substitution attack (Tấn công thay thế): Mode ECB không bảo vệ được bản mã nhiều khối. Đối thủ có thể sửa đổi 1 thông báo dài bằng cách chỉ cần xóa bớt hay thay đổi thứ tự một vài khối. Nếu đối thủ có trong tay 1 vài khối mã được mã hóa cùng khóa với thông báo, đối thủ có thể chèn nó vào bản mã. ECB không nên dùng để mã hóa các bản rõ dài có nhiều khối. Ví dụ Nếu ECB được sử dụng trong truyền tin mật trong giao dịch ngân hàng, kẻ địch có thể tấn công làm giả thông báo, lệnh chuyển tài khoản. Nhược điểm nói trên khiến cho việc truyền tin mật theo chế độ mã này là không có lợi, tuy nhiên chế độ này thường được dùng trong mã hóa thông tin lưu trữ, ví dụ như các cơ sở dữ liệu vì nó cho phép từng đơn vị dữ liệu được mã hóa độc lập và do đó có thể cập nhật thay đổi dễdàng từng phần mà không động chạm đến các phần khác của cơ sở dữ liệu. VD1: Mã hóa và giải mã bản rõ : “Hello !!Hello !!Hello !!” Key : “abcdefgh” theo hệ mã DES với cơ chế mã hóa ECB. Ta có Bản rõ C (ASCII) : Hello !!Hello !!Hello !! Bản rõ C (HEX) : 48656C6C6F20212148656C6C6F20212148656C6C6F202121 Khóa key (ASCII) : abcdefgh Khóa key (HEX) : 6162636465666768 VD1.1. Mã hóa B1 : Chia bản rõ ra thành các khối bản rõ (Plaintext block) 64bit Bản rõ gồm các khối : C1: 48656C6C6F202121 C2: 48656C6C6F202121 C3: 48656C6C6F202121 B2 : Mã hóa các khối bản rõ theo hệ mã DES bằng khóa Key : 6162636465666768 B3 : Sau khi mã hóa được các khối thì bản mã chính là tổng hợp của các khối bản mã Bản mã sau khi mã hóa DES theo chế độ ECB : 44665395698A26B944665395698A26B944665395698A26B9 2. Chế độ mã móc xích (Cipher Block Chaining -CBC) Ký hiệu : E : Encryption (Mã hóa) Pi : Plaintext block I (Khối bản rõ) K : Secret key (Khóa bảo mật) D : Decryption (Giải mã) Ci : Ciphertext block i (Khối bản mã) IV : Initial Vector (C0) Trong chế độ này, mỗi khối tin trước khi được mã hóa thì được XOR với khối mã sinh ra từ bước trước đó. Hàm mã hóa: C0 = IV Cj= Ek(Cj-1 XOR Pj) Hàm giải mã: Pj= Cj-1 XOR Dk(Cj) Chú ý khối đầu tiên: C0 = Ek(IV XOR Pj) P0 = IV XOR Dk(C1) Các vấn đề bảo mật trong CBC Các khối plaintext giống nhau trong cùng 1 message thường được mã hóa thành các khối ciphertext khác nhau. Tuy nhiên nêu 2 message giống nhau thì sẽ cho kết quả mã hóa giống nhau nếu cùng giá trị IV. Error Propagation : Các khối ciphertext có liên quan với nhau, vì vậy có nghĩa là các lỗi cũng sẽ truyền theo.– Ví dụ: khối mã ci được truyền với 1 lỗi, khi đó khối ci và ci+1 sẽ giải mã không đúng. Nhưng tất cả các khối mã khác c1, ... ,ci−1, ci+2,..., không bị ảnh hưởng. Ví dụ VD2: Mã hóa và giải mã bản rõ : “Hello !!Hello !!Hello !!” Key : “abcdefgh” Initialization Vector(IV): “defghabc” theo hệ mã DES với cơ chế mã hóa CBC Ta có Bản rõ C (ASCII) : Hello !!Hello !!Hello !! Bản rõ C(HEX) : 48656C6C6F20212148656C6C6F20212148656C6C6F202121 Khóa key (ASCII) : abcdefgh Khóa key (HEX) : 6162636465666768 IV (ASCII) : defghabc IV (HEX) : 6465666768616263 B3 : XOR Khối bản mã P1 với C2 sau đó thực hiện mã hóa DES với khóa key ta được khối bản mã P2 C2: 48656C6C6F202121 P1: 894D6EB32C66803C C2 XOR P1 : C12802DF4346A11D Mã hóa DES C2 XOR P1 với khóa Key ta được bản mã P2: C12802DF4346A11D B4 : Lặp lại bước 3 đến khi mã hóa hết các khối bản rõ XOR Khối bản mã P2 với C3 sau đó thực hiện mã hóa DES với khóa key ta được khối bản mã P3 C3: 48656C6C6F202121 P2: C12802DF4346A11D C3 XOR P2: 894D6EB32C66803C Mã hóa DES C3 XOR P2 với khóa Key ta được bản mã P3: 894D6EB32C66803C B5 : Sau khi mã hóa được toàn bộ các khối bản rõ ta được bản mã là tập hợp của các khối bản mã Bản mã sau khi mã hóa DES ở chế độ CBC : 894D6EB32C66803C C12802DF4346A11D894D6EB32C66803C 3.Chế độ Mã phản hồi k-bit (k-bit Cipher Feedback Mode -CFB) Ký hiệu : E : Encryption (Mã hóa) Pi : Plaintext block I (Khối bản rõ) K : Secret key (Khóa bảo mật) D : Decryption (Giải mã) Ci : Ciphertext block i (Khối bản mã) IV : Initial Vector (C0)   Mã hóa Cj= Pj XOR Ek(Cj-1) Giải mã: Pj= Cj XOR Dk(Cj-1) Ví dụ VD3: Mã hóa và giải mã bản rõ : “Hello !!Hello !!Hello !!” Key : “abcdefgh” Initialization Vector(IV): “defghabc” theo hệ mã DES với cơ chế mã hóa CFB Ta có Bản rõ C (ASCII) : Hello !!Hello !!Hello !! Bản rõ C (HEX) : 48656C6C6F20212148656C6C6F20212148656C6C6F202121   Khóa key (ASCII) : abcdefgh Khóa key (HEX) : 6162636465666768 IV (ASCII) : defghabc IV (HEX) : 6465666768616263 VD3.1. Mã hóa B1 : Chia bản rõ ra thành các khối bản rõ (Plaintext block) 64bit Bản rõ gồm các khối : C1: 48656C6C6F202121 C2: 48656C6C6F202121 C3: 48656C6C6F202121 B2 : Thực hiện mã hóa DES IV với khóa Key Mã hóa DES IV : 6465666768616263 Key : 6162636465666768 Kết quả Des1: 2FDC6E5FFFB9157F B3 : Thực hiện XOR Kết quả sau khi mã hóa DES : Des1 với khối bản rõ C1 ta được khối bản mã P1 C1: 48656C6C6F202121 Des1: 2FDC6E5FFFB9157F P1: 67B902339099345E   B4 : Thực hiện mã hóa DES P1 với khóa Key sau đó XOR với khối bản rõ C2 ta được khối bản mã P2 Mã hóa DES P1: 67B902339099345E Key: 6162636465666768 Kết quả Des2: 5B5C22D51D1A5B49 Thực hiện XOR kết quả Des2 với C2 ta được P2 C2: 48656C6C6F202121 Des2: 5B5C22D51D1A5B49 P2: 13394EB9723A7A68 B5 : Lặp lại bước 4 đến khi mã hóa hết các khối bản rõ Thực hiện mã hóa DES P2 với khóa Key sau đó XOR với khối bản rõ C3 ta được khối bản mã P3 Mã hóa DES P2: 13394EB9723A7A68 Key: 6162636465666768 Kết quả Des3: E832BC92806BFB2C Thực hiện XOR kết quả Des3 với C3 ta được P3 C3: 48656C6C6F202121 Des3: E832BC92806BFB2C P3: A057D0FEEF4BDA0D B6: Sau khi mã hóa được toàn bộ các khối bản rõ ta được bản mã là tập hợp của các khối bản mã Bản mã sau khi mã hóa DES ở chế độ CFB : 67B902339099345E13394EB9723A7A68 A057D0FEEF4BDA0D III. Ý nghĩa của mật mã khối Mã khối có một ưu điểm đó là tốc độ mã hoá rất nhanh, nó có thể đáp ứng cho việc mã dữ liệu, tiếng nói. Mã khối là yếu tố nổi bật và quan trọng trong một số các hệ thống mật mã. Cụ thể chúng cung cấp một sự tin cậy. Giống như việc xây dựng một khối cơ bản, chúng linh hoạt hơn trong việc cho phép xây dựng các số giả ngẫu nhiên, dòng khoá, MAC và các hàm băm. Mã khối có thể ứng dụng cho cả các thuật toán mã hoá bí mật và công khai.
Luận văn liên quan