Giới thiệu về RC5Đặc điểm của RC5Các tham số trong RC5Thuật toánĐược thiết kế bởi giáo sư Ronald Rivest trường MITĐược công bố vào 121994Là thuật toán mã hóa khối đối xứngPhù hợp với phần cứng và phần mềm thực thiLà thuật toá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 hoán vị vòng quanh các bit của một biến dữ liệu)
Trang 1Giả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
Trang 2Nội dung
Giới thiệu về RC5
Đặc điểm của RC5
Các tham số trong RC5
Thuật toán
Trang 3Giớ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 toá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
Trang 4Đặc điểm của RC5
Là thuật toá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 hoán vị vòng quanh các bit của một
biến dữ liệu)
Trang 5Cá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
Trang 6Thuật toán
Thuật toán gồm 3 phần:
Thuật toán mở rộng khóa
Thuật toán Mã hóa
Thuật toá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 toá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
Trang 7Thuật toán
Thuật toán Mã hóa
Thuật toán Giải mã
7
Trang 8Thuật toán
Thuật toán mở rộng khóa:
Tìm “hằng số kỳ diệu”:
Thuật toá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:
Trang 9Thuật toán
9
Trang 10Thuật toán
Thuật toá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
Trang 11Thuật toán
Thuật toá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 2w 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
Trang 12Thuật toán
Thuật toá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
Trang 13Đánh giá và tính bảo mật
RC5 là thuật toá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 toà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
Trang 14Tài liệu tham khảo
Ronal L.Rivest, The RC5 Encryption Algorithm,
1997, MIT Laboratory for Computer Science