Giảng viên: PGS.TS Trịnh Nhật Tiến
Thực hiện: Trần Thị Giang
Khóa: K19 – Hệ thống thông tin
1
Nội dung
Giới thiệu về RC5
Đặc điểm của RC5
Các tham số trong RC5
Thuật toán
2
Giới thiệu về RC5
Được thiết kế bởi giáo sư Ronald Rivest trường MIT
Được công bố vào 12/1994
Là thuật tốn mã hóa khối đối xứng
Phù hợp với phần cứng và phần mềm thực thi
3
Đặc điểm của RC5
Là thuật tốn mã hóa khối đối xứng.
Mã hóa và giải mã sử dụng cùng một khóa bí mật.
Bả rõ và bản mã là những chuỗi bit có độ dài cố định
Điểm nổi bật của thuật toán là phép quay phụ thuộc dữ liệu
(phép hốn vị vịng quanh các bit của một biến dữ liệu)
4
Các tham số trong RC5
Ký hiệu: RC5 – w/r/b
w: kích thước từ (word size)
r: Số vòng. Số vòng các lớn thì tính bảo mật càng cao (r nằm
trong khoảng 0,1,…,255)
b: số lượng bytes trong khóa bí mật K
(b nằm trong khoảng 0,1,..,255)
5
Thuật toán
Thuật toán gồm 3 phần:
Thuật toán mở rộng khóa
Thuật tốn Mã hóa
Thuật tốn Giải mã
Gọi bản rõ đầu vào của RC5 bao gồm hai từ w bit, gọi là
A và B. RC5 sử dụng một bảng khóa mở rộng: S[0…t-1],
bao gồm các từ có t=2(r+1)w bit. Thuật tốn mở rộng
khóa khởi tạo S từ tham số khóa bí mật K
Sử chuẩn little-endian để quy ước cho các gói byte trong
khối đầu vào và khối đầu ra:
Little-endian: các byte sắp xếp theo thứ tự từ phải sang trái,
byte có trọng số cao hơn sẽ đứng bên trái các byte có trọng
số thấp hơn
6
Thuật tốn
Thuật tốn Mã hóa
Thuật tốn Giải mã
7
Thuật tốn
Thuật tốn mở rộng khóa:
Tìm “hằng số kỳ diệu”:
Thuật tốn mở rộng khóa sử dụng hai hằng số nhị phần có
kích thước từ: Pw và Qw. Chúng được xác định cho w tùy ý
như sau:
Pw = Odd((e - 2)2w)
(1)
Qw = Odd((φ - 1)2w)
(2)
Trong đó: e = 2.718281828459…
φ = 1.618033988749…
Và Odd(x) là số nguyên lẻ gần x nhất. Với w= 16, 32, và 64,
các hằng số được cho dưới đây trong hệ nhị phần và hệ
thập lục phân:
8
Thuật toán
9
Thuật tốn
Thuật tốn mở rộng khóa:
Chuyển khóa bí mật từ các bytes sang các từ
Sao chép khóa bí mật K[0…b-1] vào một mảng L[0..c] của
c=b/u từ, trong đó, u = w/8 là số byte trên một từ
Toán tử này được thực hiện một cách tự nhiên, sử dụng u
các byte khóa liên tiếp của K để điền vào mỗi từ liên tiếp
trong L, theo thứ tự từ byte thấp hơn đến byte cao hơn.
Bất kỳ vị trí byte trong L mà khơng được điền sẽ có giá trị là
0. Trong trường hợp b = c = 0 chúng ta thiếp lập giá trị của
c là 1 và thiết lập L[0] = 0
10
Thuật tốn
Thuật tốn mở rộng khóa:
Khởi tạo mảng S
Là khởi tạo mảng S thành một mẫu bit giả ngẫu nhiên đặc
biệt (khóa độc lập), sử dụng một cấp số cộng modulo 2 w
xác định bởi hằng số kỳ diệu Pw và Qw
Khi Qw là lẻ, cấp số cộng có chu kỳ 2w
11
Thuật tốn
Thuật tốn mở rộng khóa:
Trộn khóa bí mật
Trộn khóa bí mật của người dùng trong ba lần qua các
mảng S và L.
12
Đánh giá và tính bảo mật
RC5 là thuật tốn đơn giản
Được cài đặt khá dễ dàng
Yêu cầu bộ nhớ thấp
RC5 có tính an tồn cao do RC5 có đặc điểm là phép quay
phụ thuộc dữ liệu
Với số vịng là 32 thì trong 7 năm trở lại đây, không thấy
xuất hiện kết quả thám mã nào mạnh hơn có thể bẻ gãy 32
vịng.
13
Tài liệu tham khảo
Ronal L.Rivest, The RC5 Encryption Algorithm, 1997, MIT
Laboratory for Computer Science
14