Mã hóa sử dụng chuẩn DES

Một phần của tài liệu NGHIÊN CỨU VÀ ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT TRUYỀN THÔNG (Trang 30 - 32)

Năm 1977, viện nghiên cứu chuẩn quốc gia Hoa Kỳ đã đưa ra chuẩn DES để sử dụng cho các ứng dụng ở Mỹ. DES mã hóa các khối dữ liệu 64 bit với khóa có độ dài 56 bit (thực ra DES sử dụng khóa 64 bit nhưng dành 8 bit để kiểm tra chẵn lẻ (parity) tại các vị trí 8, 16,...64 nên độ dài khóa chỉ còn lại 56 bit). DES thuộc loại mã hóa đối xứng và sử dụng mô hình mã khối CBC. Sơ đồ phương pháp mã hóa này được thể hiện trong hình 2.8

Hình 2.7: Giải thuật DES

Bản rõ (Plaintext) được mã hóa từng khối 64 bit thành khối bản mã (Ciphertext)

64 bit. Thuật toán được tham số hóa bằng một key 56 bit. Phép mã hóa gồm 19 tầng :

- Tầng 1: là tầng hoán vị các bit của Plaintext

- Tầng 2 -17 (tương ứng với vòng 1 -16) là các tầng lặp, hoạt động giống nhau nhưng có khóa khác nhau

- Tầng 18: đổi chỗ 32 bit trái và 32 bit phải

Tại mỗi tầng lặp i (2≤i≤17) , bản tin được xử lý theo cấu trúc Feistel: mỗi khối 64 bit đầu vào được chia làm 2 nửa Li-1 và Ri-1, 64 bit đầu ra cũng có 2 nửa là Li và Ri

với Li=Ri-1 và Ri =Li−1⊕ f R( i−1,Ki) với Ki là khóa dùng ở bước vòng i.

Hình 2.8 Cấu trúc Feistel

Nguyên nhân DES được coi là không an toàn: Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng. Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ. Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ. Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng không khả thi trong thực tiễn

Nguyên bản DES đề ra giải pháp cho một khóa có chiều dài lên đến 128 bit. Tuy nhiên, kích thước của khóa đã giảm xuống còn 56 bit bởi chính phủ Hoa Kỳ trong việc nổ lực tìm ra thuật giải nhanh hơn. Việc giảm chiều dài khóa xuống, phụ thuộc vào tốc độ xử lý của bộ vi xử lý. Trong phương pháp tấn công Brute Force, các khóa sẽ phát sinh ngẩu nhiên và được gửi đến đoạn văn bản nguyên mẩu cho tới khi

xác định được từ khóa chính xác. Với những khóa có kích thước nhỏ, sẽ dễ dàng để phát sinh ra chính xác từ khóa và phá vở hệ thống mật mã.

Khắc phục hạn chế của DES, thuật toán 3DES (Triple DES) ra đời. 3DES dùng 3 vòng mã hóa DES với 3 khóa khác nhau nên kích thước khóa lúc này là 56 x 3=168 bit

Hình 2.9: Thuật toán Triple DES

Bộ xử lý thực hiện các bước sau : khóa đầu tiên dùng để mã hóa dữ liệu. Sau đó, khóa thứ hai sẽ dùng để giải mã dữ liệu vừa được mã hóa. Cuối cùng, khóa thứ ba sẽ mã hóa lần thứ hai. Toàn bộ quá trình xử lý của 3DES tạo thành một thuật giải có độ an toàn cao. Nhưng bởi vì đây là một thuật giải phức tạp nên thời gian thực hiện sẽ lâu hơn, gấp 3 lần so với phương pháp DES.

Một phần của tài liệu NGHIÊN CỨU VÀ ỨNG DỤNG CHỮ KÝ SỐ TRONG BẢO MẬT TRUYỀN THÔNG (Trang 30 - 32)