Luồng mã hóa (Mã hóa RC4)

Một phần của tài liệu Thám mật khẩu các file word (Trang 54 - 55)

Luồng mã hóa giản lược phải được ghi lại theo các bước sau:

1.Dò lên từ điểm bắt đầu của luồng mã hóa giản lược mỗi 8 byte để cung cấp không gian cho các trường StreamDescriptorArrayOffset

StreamDescriptorArraySize, việc này sẽ được ghi lại ở bước 8. Cho

BlockNumber ban đầu là 0x00000000.

2.Nếu các luồng hoặc các kho bổ sung được cung cấp bởi ứng dụng, cho mỗi luồng hoặc mỗi kho thực hiện theo các bước sau:

a) Nếu dữ liệu được chứa cùng với một luồng thì lấy lại nội dung của luồng. Chuẩn bị khóa mã như đã nêu ở mục 4.1.8, sử dụng một block 0x00000000 và mã hóa dữ liệu luồng. Ghi các byte đã mã hóa vào trong luồng mã hóa giản lược.

b) Nếu dữ liệu được chứa cùng với một kho thì biến đổi kho vào một file. Chuẩn bị khóa mã như đã nêu ở mục 4.1.8, sử dụng một

BlcokNumber và mã hóa dữ liệu kho như một luồng các byte. Ghi các byte đã mã hóa vào trong luồng mã hóa giản lược.

c) Thiết lập các trường có EncryptedStreamDescriptor đã được liên kết cho luồng hoặc kho. Chưa ghi nó vào luồng mã hóa giản lược ngay.

d) Tăng BlockNumber.

3.Sinh hoặc thu được toàn bộ nội dung của luồng

\0x05SummaryInformation. Khởi tạo khóa mã như đã nêu ở mực 4.1.8, sử dụng số block của BlockNumber, và mã hóa dữ liệu

\0x05SummaryInformationStream. Ghi các byte đã mã hóa vào trong luồng mã hóa giản lược. Tăng BlockNumber.

4.Thiết lập các trường cùng với EncryptedStreamDescriptor đã được liên kết cho luồng \0x05SummaryInformation. Chưa ghi nó vào luồng mã hóa giản lược ngay.

55

5.Sinh hoặc thu được dữ liệu được chứa cùng luồng

\0x05DocumentSummaryInformation. Khởi tạo khóa mã như đã nêu ở 4.1.8, sử dụng số block của BlockNumber và mã hóa dữ liệu

\0x05DocumentSummaryInformationStream. Ghi các byte đã mã hóa vào luồng mã hóa giản lược theo ngay sau dữ liệu đã ghi ở bước 2. 6.Thiết lập các trường cùng với EncryptedStreamDescriptor đã được

liên kết cho luồng \0x05DocumentSummaryInformation. Chưa ghi nó vào luồng mã hóa giản lược ngay.

7.Ghi EncryptedStreamDescriptorCount

EncryptedStreamDescriptorArray theo sự khởi tạo khóa mã như đã nêu ở mục 4.1.8, sử dụng số block của 0x00000000. Móc nối và mã hóa

EncryptedStreamDescriptorCountEncryptedStreamDescriptor. Ghi các byte đã mã hóa vào luồng mã hóa giản lược.

8.Khởi tạo các trương StreamDescriptorArrayOffset

StreamDescriptorArraySize để chỉ rõ vị trí đã mã hóa của

EncryptedStreamDescriptorCount và kích thước của

EncryptedStreamDescriptorCount

EncryptedStreamDescriptorArray cùng với luồng mã hóa giản lược. Khởi tạo khóa mã như đã nêu ở mục 4.1.8, sử dụng số block của 0x00000000.

Một phần của tài liệu Thám mật khẩu các file word (Trang 54 - 55)