GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
Hệ MậT Rc4
1. Hệ mật RC4
1. Mô tả hệ mật RC4
2. Khởi tạo khối S
3. Mã hóa và giải mã
4. Ưu điểm của RC4
1.Mô tả hệ mật RC4
RC4 thuộc nhóm mã dòng với độ dài khóa không cố định. Trong sơ đồ của RC4 có sử dụng 2 thanh ghi 8
bits (bộ đếm) là Q1 và Q2 và một khối thay thế (S-block) có kích thước 256x8 (256 phần tử, kích thước
mỗi phần tử là 8 bits). Giá trị của khối S là một hóan vị nào đó của các số từ 0 đến 255.
Thủ tục cơ bản nhất trong một hệ mã dòng bất kỳ là thủ tục sinh Gamma. Bởi khi đã có được chuỗi gama
rồi thì phép mã hóa chỉ là phép cộng từng bit (XOR) bản rõ với chuỗi gama này. Ký hiệu S[i] là giá trị
phần tử thứ i của khối S; γ là giá trị của kế tiếp (cần được sinh) của chuỗi Gamma. Trong RC4, để sinh
chuỗi Gamma thi mỗi khi xuất hiện một xung cần thực hiện các thao tác sau đây:
1.Tăng Q1 lên 1: Q1 = (Q1 + 1) mod 256
2.Thay đổi giá trị của Q2: Q2 = (Q2 + S[Q1]) mod 256
3.Hóan đổi giá trị của 2 phần tử: S[Q1] ↔ S[Q2]
4.Tính trổng T của 2 phần tử này: T = (S[Q1] + S[Q2]) mod 256
5.Gán giá trị cho γ: γ = S[T]
Trong quá trình sử dụng, bộ đếm Q1 sẽ làm cho nội dung của khối S thay đổi chậm, còn bộ đếm Q2 sẽ
đảm bảo sự thay đổi này là ngẫu nhiên.
2.Khởi tạo khối S
Ta đã nói rằng giá trị của khối S là một hoán vị nào đó của 256 số từ 0..255. Sau đây là thuật toán để xác
định hóan vị đó.
1. Gán cho mỗi phần tử giá trị bằng chỉ số của nó: S[i] = i; i=0..255
2. Tạo một mảng k gồm 256 phần tử, mỗi phần tử có kích thước 1 byte. Điền đầy bảng k bằng các
byte của khóa K: k[0]=K[0], k[1]=K[1], ... Trong trường hợp cần thiết, khóa K đựoc dùng lặp lại.
3. Khởi tạo biến đếm j: j=0;
2. 4. Xáo trộn khối S:
a. i = 0..255
b. j = (j + S[i] + k[i]) mod 256
c. Hóan đổi giá trị: S[i] ↔ S[j]
3.Mã hóa và Giải mã
Khi đã có được Gamma rồi thì việc mã hóa và giải mã là vô cùng đơn giản. Nhận xét rằng Gamma được
tạo ra theo từng khối 8 bits nên kích thước của mỗi ký tự (symbol) trong alphabet mà chúng ta sẽ sử dụng
là 8. Quá trình mã hóa được thực hiện như sau:
Sinh một giá trị Gamma: γ
Đọc một ký tự Xi từ bản tin.
Thực hiện phép XOR giữa Xi và γ sẽ thu được một ký tự của bản mã Yi: Yi = Xi γ
Do tính chất đối xứng của phép XOR, quá trình giải mã sẽ hòan tòan trùng với quá trình mã hóa. Trong
thủ tục mã hóa ở trên, cho đầu vào là bản mã thì đầu ra sẽ thu được bản tin ban đầu.
4.Những ưu điểm chính của RC4
Thuật toán đơn giản. Ý nghĩa của từng bước rõ ràng, logic.
RC4 tỏ ra an toàn đối với cả 2 phương pháp thám cơ bản là thám tuyến tính và thám vi phân (chưa
có công trình nào về thám RC4 được công bố) [2]. Số trạng thái mà RC4 có thể có là
256!×256×256 21700.
Có thể thay đổi kích thước của alphabet. Trên đây ta xét trường hợp alphabet có 256 symbols
(kích thước mỗi symbol là 8 bits). Ta hòan tòan có thể áp dụng thuật toán RC4 cho alphabet với
symbol 4 bits, 16 bits, ...