Chương 6: Các mã đối xứng đương thời
I. Mã nhiều lần Multiple Encryption & DES
Rõ ràng DES cần được thay thế, vì
Các tấn công về mặt lý thuyết có thể bẻ gãy nó
Tấn công khoá toàn diện đã được trình diễn
AES là mã mới thay thế
Trước nó người ta đã sử dụng lặp DES
Triple DES là dạng đã được chọn
II. Sao không phải Double DES?
Có thể dùng 2 lần DES trên một block
C = EK2(EK1(P))
Vấn đề rút gọn về một bước
Double DES gặp tấn công ở mức trung gian
Gặp nói chung khi sử dụng mã nào đó 2 lần
Vì X = EK1[P] = DK2[C]
Tấn công bằng cách mã P với mọi khoá và lưu lại
Giải mã C với các khoá và sánh tìm X
Có thể chỉ ra rằng cần O(256) bước
31 trang |
Chia sẻ: khicon_1279 | Lượt xem: 3865 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Mã hóa và an ninh mạng ( Chapter 6), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 6: Các mã đối xứng đương thời Fourth Edition by William Stallings Lecture slides by Lawrie Brown Mã nhiều lần Multiple Encryption & DES Rõ ràng DES cần được thay thế, vì Các tấn công về mặt lý thuyết có thể bẻ gãy nó Tấn công khoá toàn diện đã được trình diễn AES là mã mới thay thế Trước nó người ta đã sử dụng lặp DES Triple DES là dạng đã được chọn Sao không phải Double DES? Có thể dùng 2 lần DES trên một block C = EK2(EK1(P)) Vấn đề rút gọn về một bước Double DES gặp tấn công ở mức trung gian Gặp nói chung khi sử dụng mã nào đó 2 lần Vì X = EK1[P] = DK2[C] Tấn công bằng cách mã P với mọi khoá và lưu lại Giải mã C với các khoá và sánh tìm X Có thể chỉ ra rằng cần O(256) bước Triple DES với 2 khoáTriple-DES with Two-Keys Cần sử dụng 3 mã, vậy có thể dùng 3 khoá khác nhau Nhưng có thể sử dụng 2 khoá theo trình tự: E-D-E C = EK1(DK2(EK1(P))) Về mặt an toàn mã và giải mã tương đương nhau Nếu K1 = K2 thì tương đương làm việc với 1 DES Chuẩn hoá trong ANSI X9.17 & ISO8732 Chưa thấy tấn công thực tế. Triple DES với 3 khoáTriple-DES with Three-Keys Mặc dù chưa có tấn công thực tế nhưng Triple DES với 2 khoá có một số chỉ định Cần phải sử dụng DES 3 khoá để tránh điều đó C = EK3(DK2(EK1(P))) Được chấp nhận bởi một số ứng dụng trên Internet: PGP, S/MIME Các kiểu thao tácModes of Operation Mã khối mã các block có kích thước cố định Chẳng hạn DES mã các block 64 bít với khoá 56 bít Cần phải có cách áp dụng vào thực tế vì các thông tin cần mã có kích thước tùy ý. Có 4 cách được định nghĩa cho DES theo chuẩn ANSI ANSI X3.106-1983 Modes of Use Bây giờ có 5 cách cho DES và AES Có kiểu khối và dòng Sách mật mã điện tử Electronic Codebook Book (ECB) Mẫu tin được chia thành các khối độc lập, sau đó mã từng khối Mỗi khối là giá trị cần thay thế như dùng sách mã, do đó có tên như vậy Mỗi khối được mã độc lập với các mã khác Ci = DESK1(Pi) Khi dùng: truyền an toàn từng giá trị riêng lẻ Electronic Codebook Book (ECB) Ưu và nhược của ECBAdvantages & Limitations of ECB Lặp trên bản mã được chỉ rõ lặp trên bản tin Nếu dóng đúng khối Đặc biệt với hình ảnh Hoặc với bản tin mà thay đổi rất ít sẽ trở thành đối tượng để thám mã Nhược điểm là các khối được mã độc lập Được sử dụng chủ yếu khi gửi một ít dữ liệu Dây chuyền mã khối Cipher Block Chaining (CBC) Các mẫu tin được chia thành các khối Nhưng chúng được liên kết với nhau trong quá trình mã hoá Các block được sắp thành dãy, vì vậy có tên như vậy Sử dụng véctơ ban đầu IV để bắt đầu quá trình Ci = DESK1(Pi XOR Ci-1) C-1 = IV Dùng khi: mã dữ liệu lớn, xác thực Cipher Block Chaining (CBC) Message Padding Ở cuối bản tin, để kiểm soát các block ngắn còn lại Có thể bổ sung các giá trị không phải dữ liệu như NULL Hoặc dùng bộ đệm cuối với số byte đếm kích thước của nó. Ví dụ [ b1 b2 b3 0 0 0 0 5] có 3 data bytes & 5 bytes pad + count Ưu và nhược của CBC Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ Sự thay đổi của bản tin ở đâu đó sẽ kéo theo sự thay đổi của mọi khối mã Cần giá trị véc tơ ban đầu IV được biết trước bởi người gửi và người nhận Tuy nhiên nếu IV được gửi công khai, kẻ tấn công có thể thay đổi bít đầu tiên và thay đổi cả IV để bù trừ Vậy IV cần phải có giá trị cố định trước hoặc mã hoá trong chế độ ECB và gửi trước phần còn lại của mẩu tin Mã phản hồi ngược Cipher FeedBack (CFB) Bản tin coi như dòng các bít Bổ sung vào đầu ra của mã khối Kết quả phản hồi trở lại cho giai đoạn tiếp theo, vì vậy có tên như vậy. Nói chung cho phép số bít phản hồi là 1, 8, 64, hoặc tuỳ ý: ký hiệu tương ứng là CFB1, CFB8, CFB64, … Thường hiệu quả sử dụng cả 64 hoặc 128 bít Ci = Pi XOR DESK1(Ci-1) C-1 = IV Được dùng cho mã dữ liệu dòng, xác thực Cipher FeedBack (CFB) Ưu và nhược điểm của mã phản hồi ngược Được dùng khi dữ liệu đến theo byte/bit Chế độ dòng thường gặp nhất Hạn chế là cần ngăn chuồng khi mã khối sau mỗi n bit Nhận xét là mã khối được dùng ở chế độ mã ở cả hai đầu Lỗi sẽ lan ra một vài block sau lỗi Phản hồi ngược đầu ra Output FeedBack (OFB) Mẩu tin xem như dòng bit Đầu ra của mã được bổ sung cho mẩu tin Đầu ra do đó là phản hồi, do đó có tên như vậy Phản hồi ngược là độc lập đối với bản tin Có thể được tính trước Ci = Pi XOR Oi Oi = DESK1(Oi-1) O-1 = IV Được dùng cho mã dòng trên các kênh âm thanh Output FeedBack (OFB) Ưu điểm và nhược điểm của OFB Được dùng khi lỗi phản hồi ngược lại hoặc ở nơi cần mã trước khi mẩu tin sẵn sàng Rất giống CFB Nhưng phản hồi là từ đầu ra của mã và độc lập với mẩu tin Là biến thể của mã Vernam, suy ra không sử dụng lại với cùng một dãy (Key + IV) Người gửi và người nhận phải đồng bộ, có phương pháp khôi phục nào đó là cần thiết để đảm bảo việc đó. Nguyên bản chỉ rõ m bit phản hồi ngược theo các chuẩn Các nghiên cứu tiếp theo chỉ ra rằng chỉ có OFB64 là dùng được Bộ đếm CTR - Counter (CTR) Là chế độ mới, tuy đã được đề xuất từ lâu Giống như OFB, nhưng mã giá trị đếm thay vì giá trị phản hồi tuỳ ý. Cần phải có khoá khác và giá trị đếm cho mỗi khối bản rõ (không bao giờ dùng lại) Ci = Pi XOR Oi Oi = DESK1(i) Được dùng mã trên mạng với tốc độ cao Counter (CTR) Ưu và nhược điểm của CTR Hiệu quả Do có thể mã song song Chuẩn bị trước nếu cần Tốt cho các kết nối với tốc độ rất cao Truy cập ngẫu nhiên đến các khối dữ liệu mã Tính an toàn có thể chứng minh được Nhưng phải tin tưởng không bao giờ dùng lại khoá/đếm, nếu không có thể bẻ. Mã dòng Stream Ciphers Xử lý mẩu tin lần lượt theo từng bit Thông thường có khoá dòng (giả) ngẫu nhiên Kết hợp XOR với bản rõ theo từng bit Ngẫu nhiên với khoá dòng sẽ xoá bỏ hoàn toàn các phân tích thống kê của mẩu tin process message bit by bit (as a stream) Ci = Mi XOR StreamKeyi Rất đơn giản, nhưng khoá không được sử dụng lại Stream Cipher Structure Các tính chất của mã dòng Stream Cipher Properties Sử dụng lâu không bị lặp Ngẫu nhiên thống kê Phụ thuộc khoá đủ lớn (> 128 bit) Độ phức tạp tuyến tính lớn Rối loạn Khuếch tán Sử dụng hàm Boole phi tuyến bậc cao RC4 Mã đăng ký bản quyền của RSADSI Thiết kế bởi Ronald Rivest, đơn giản nhưng hiệu quả Có nhiều cỡ khoá và mã bit dòng Được sử dụng rộng rãi (Web SSL/TLS, không dây WEP – Wired Equivalent Privacy) Khoá thực hiện hoán vị ngẫu nhiên cả 8 giá trị bit. Sử dụng hoán vị đó để khuấy thông tin đầu vào được xử lý từng byte Sinh khoá RC4RC4 Key Schedule Bắt đầu từ mảng S với biên độ: 0..255 Sử dụng khoá để xáo trộn đều thực sự S tạo trạng thái trong của mã for i = 0 to 255 do S[i] = i T[i] = K[i mod keylen] j = 0 for i = 0 to 255 do j = (j + S[i] + T[i]) (mod 256) swap (S[i], S[j]) Mã RC4 - RC4 Encryption Mã tiếp tục trộn các giá trị của mảng Tổng của các cặp trộn chọn giá trị khoá dòng từ hoán vị XOR S[t ] (k) với byte tiếp theo của bản tin để mã/giải mã i = j = 0 for each message byte Mi i = (i + 1) (mod 256) j = (j + S[i]) (mod 256) swap(S[i], S[j]) t = (S[i] + S[j]) (mod 256) Ci = Mi XOR S[t] RC4 Overview An toàn RC4 - RC4 Security Đảm bảo an toàn chống các tấn công Có một số thám mã nhưng không thực tế Kết quả rất phi tuyến Vì RC4 là mã dòng nên không được sử dụng lại khoá Có liên quan đến WEP, nhưng tùy thuộc quản lý khoá hơn là bản thân RC4 Summary Triple-DES Modes of Operation ECB, CBC, CFB, OFB, CTR stream ciphers RC4