Hệ mã dòng RC

Một phần của tài liệu Tài liệu Kỹ thuật lập trình - Chương 7 Kiểm tra và xây dựng số nguyên tố (Trang 79 - 81)

Q trình sinh khóa: Thuật tốn sử dụng khóa mật có chiều dài b bytes, ở đây

7.23 Hệ mã dòng RC

Thuật tốn RC4.

Đây là một hệ mã dịng, với chiều dài khóa biến đổi, tác giả của nó là Ronald Rivest, được nêu ra năm 1987.

Hạt nhân của thuật toán là thủ tục tạo khóa dịng, xem hình 7.42, hàm này tạo dãy bít sau đó cộng với bản tin theo modulo 2 với bản rõ ta thu được bản mã, và khi giải mã thì cũng sinh ra mã dịng, rồi cộng với bản mã theo từng bít ta thu được bản rõ ban đầu. RC4 làm việc ở chế độ OFB. Gọi k là giá trị mã dòng được sinh. Việc sinh mã dịng được thực hiện trên cơ sỡ khối hốn đổi kích thước 8x8 : S[0],...S[255]. Khối hốn đổi là phép hốn vị các số 0,…, 255 phụ thuộc vào khóa, được thực hiện bởi các lệnh sau:

1. i=(i+1)mod256 2. j=(j+S[ ]i)mod256

3. Hốn đổi giá trị của S[i] và S[j]

4. Tính tổng S[i] và S[j], gán cho t: t= (S[i] + S[j]) mod 256 5. k=S[t].

Hình .7.42. Sơ đồ tạo khóa dịng k

Trong quá trình sử dụng, bộ đếm i sẽ làm cho nội dung của khối S thay đổi chậm, còn bộ đếm j sẽ đảm bảo sự thay đổi này là ngẫu nhiên.

Byte k được tạo ra cộng với byte của bản rõ để tạo ra byte bản mã.

Một phần chính của thuật tốn nữa là khởi tạo khối hốn đổi S, việc khởi tạo được thực hiện các bước sau:

2. Gán cho mỗi phần tử giá trị bằng chỉ số của nó: S[0]=0,…,S[255]=255.

3. Tạo một mảng key gồm 256 phần tử, mỗi phần tử có kích thước 1 byte. Điền đầy mảng key bằng các byte của khóa K, nếu mảng key chưa điền đầy thì lặp lại mốt số bye của khóa K.

4. Xáo trộn khối S: a. i = 0..255

c. Hóan đổi giá trị: S[i] ↔ S[j]

Những ưu điểm chính của RC4

• Thuật tố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ố) . Số trạng thái mà RC4 có thể có là 256!×256×256 » 21700.

• Tốc độ mã đạt rất cao. Ví dụ so với DES thì RC4 nhanh gấp 10 lần.

• Có thể khía qt thuật tốn trên cơ sở từ có chiều dài lớn và kích thước khối hốn đổi lớn, ví dụ 16x16.

Một phần của tài liệu Tài liệu Kỹ thuật lập trình - Chương 7 Kiểm tra và xây dựng số nguyên tố (Trang 79 - 81)

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

(81 trang)
w