Data Encryption Standard (DES)

Một phần của tài liệu Trung tam dao to e learning (Trang 60 - 64)

C i= Pi  Oi Oi = Ek(Oi-1)

4. Data Encryption Standard (DES)

Đây là thuật tốn mã hóa dữ liệu được sử dụng rộng rãi trên thế giới được phát triển bởi IBM với tên mã Lucifer. Và được Ủy ban Chuẩn Quốc Gia Mỹ, hiện được gọi là Viện quốc gia về chuẩn và cơng nghệ (NIST) chấp nhận như một chuẩn chính thức. Chuẩn này được đề nghị năm 1977-viết tắt là FIPS 46 (Federal Information Processing Standard 46).

DES là thuật tốn mã hóa theo khối, nó mã hóa dữ liệu trong từng khối 64-bit. Khối 64- bit của bản rõ sẽ được biến đổi lần lượt thành từng khối 64-bit bản rõ đến khi hết dữ liệu cần mã hóa. DES là thuật tốn đối xứng. Sử dụng cùng một thuật tốn và khóa cho cả 2 q trình mã hóa và giải mã.

Bài 4: Mã hóa khóa đối xứng Trang 10

Thuật tốn sử dụng khóa có độ lớn là 56 bit (mặc dù khóa ln được biểu diễn dưới dạng số 64bit, nhưng các bit 8 của byte được sử dụng làm bit chẵn lẻ được sử dụng để kiểm soát lỗi, các bit chẵn lẻ nằm ở các vị trí 8, 16, 24,…,64 và nó được bỏ qua trong q trình xử lý. Các bit kiểm tra này là bit có trọng số thấp nhất của các byte dữ liệu khóa). Dữ liệu khóa có thể là một số 56 bit bất kỳ và cũng có thể thay đổi vào bất cứ lúc nào. Và điều quan trọng là độ an tồn của thuật tốn phụ thuộc rất lớn vào khóa.

Mơ tả thuật toán:

DES thực hiện trên từng khối dữ liệu 64–bit của bản rõ, một khóa K 56–bit:

Sau khi được xử lý thơng qua phép hốn vị bit khởi đầu.

Khối dữ liệu được chia làm hai phần có độ lớn 32bit nửa trái và nửa phải.

Tiếp theo là quá trình xử lý với 16 vịng, q trình xử lý này thường sử dụng hàm f, với hàm này thì dữ liệu sẽ được kết hợp với khóa.

Li = Ri–1

Ri = Li–1 xor f(Ri–1, Ki)

Sau 16 vịng xử lý, thì hai phần trái và phải sẽ được kết hợp lại, và q trình hốn vị lại được thực hiện (là đảo của sự hoán vị ban đầu) để kết thúc thuật toán.

Với mỗi vịng của q trình biến đổi, các bit dữ liệu khóa được dịch chuyển và sau đó 48–bit sẽ được chọn ra từ 56–bit dữ liệu khóa. Phần dữ liệu bên phải Ri sẽ được mở rộng thành 48 bit thơng qua q trình hốn vị mở rộng, kết hợp với 48–bit khố được xử lý thơng qua q trình dịch chuyển thơng qua phép tốn XOR. Khối kết quả của phép tính XOR được

Bài 4: Mã hóa khóa đối xứng Trang 11

lựa chọn ra 32–bit bằng cách sử dụng thuật toán hoán vị và thay thế lần nữa. Đây là 4 thao tác tạo nên hàm f. Tiếp theo đầu ra của hàm f được kết hợp với nửa trái bằng một toán tử XOR. Và kết quả của bước này là trở thành nửa phải mới; nửa phải cũ trở thành nửa trái mới. Sự thực hiện này được lặp lại 16 lần.

Xử lý khóa:

Khi khởi tạo 56 bit sẽ được lựa chọn từ khối dữ liệu khóa 64 bit thơng qua phép chọn hoán vị Permuted Choice 1 (PC-1):

Sau đó 56 bit được chia thành 2 nửa, mỗi nửa sau đó được xử lý riêng biệt. Trong các vòng biến đổi thành công, cả 2 nữa được quay trái bởi 1 hay 2 bit (tùy thuộc vào từng vịng), và sau đó tập con 48 bit được chọn bởi phép chọn hoán vị PC-2, 24 bit từ bên trái, 24 bit từ bên phải. Sự dịch bit nói lên rằng một tập hợp khác nhau của các bit được sử dụng cho mỗi tập con của khóa; mỗi bit sử dụng gần 14 trong 16 tập con của khóa.

Việc phân phối khóa của q trình giải mã gần giống nhưng nó tạo khóa theo chiều ngược lại. Vì thế dịch bit sẽ dịch sang phải thay vì sang trái .

4.1. Hàm Feistel(F) Function:

Mở rộng: nửa khối 32bits được mở rộng thành 48 bit

sử dụng phép hoán vị mở rộng, được ký hiệu là E trong lược đồ.

Bài 4: Mã hóa khóa đối xứng Trang 12

Trộn khóa: kết quả được kết hợp với tập con của khóa thơng qua thao tác XOR. 16 tập

con 48 bit của khóa – mỗi tập cho một vịng – được cung cấp từ khóa chính sử dụng phương pháp phân phối khóa.

Đổi chỗ: sau khi trộn với tập con của khóa, khối được chia thành 8 phần 6 bit trước khi

xử lý bởi S-Boxes. Mỗi một hộp trong 8 hộp của S-box sẽ thay thế 6 bit được đưa vào bằng 4 bit ra theo phương pháp biến đổi phi tuyến

Phép hoán vị: 32bits dữ liệu ra từ S-Box được sắp xếp thơng qua phép hốn vị cố định,

P-Box

Phân phối khóa:

Khi khởi tạo 56–bit sẽ được lựa chọn từ khối dữ liệu khóa 64–bit thơng qua phép chọn hốn vị Permuted Choice 1 (PC-1): 8–bit cịn lại hoặc loại bỏ hoặc sử dụng như là các bit kiểm sốt chẵn lẻ. Sau đó 56–bit được chia thành 2 nửa, mỗi nửa sau đó được xử lý riêng biệt. Trong các vịng biến đổi thành cơng, cả 2 nữa được quay trái bởi 1 hay 2 bit (tùy thuộc vào từng vịng), và sau đó tập con 48–bit được chọn bởi phép chọn hoán vị PC-2, 24 bit từ bên trái, 24– bit từ bên phải. Sự dịch bit nói lên rằng một tập hợp khác nhau của các bit được sử dụng cho mỗi tập con của khóa; mỗi bit sử dụng gần 14 trong 16 tập con của khóa.

Việc phân phối khóa của quá trình giải mã gần giống nhưng nó tạo khóa theo chiều ngược lại. Vì thế dịch bit sẽ dịch sang phải thay vì sang trái

Một phần của tài liệu Trung tam dao to e learning (Trang 60 - 64)

Tải bản đầy đủ (PDF)

(87 trang)