3.5 Phép tối ưu hoá thời gian - Bộ nhớ1_ Chế độ chuyển mã điện tử ECB Electronic CodeBook mode 4_ Chế độ phản hồi mã CFB Cipher FeedBack mode 2_ Chế độ phản hồi đầu ra OFB Output Feed
Trang 13.5 Phép tối ưu hoá thời gian - Bộ nhớ
1_ Chế độ chuyển mã điện tử ECB
( Electronic CodeBook mode)
4_ Chế độ phản hồi mã CFB
( Cipher FeedBack mode)
2_ Chế độ phản hồi đầu ra OFB
( Output FeedBack mode)
3_ Chế độ liên kết khối mã CBC
( Cipher Block Chaining mode)
Trang 2thực hiện DES rất hữa hiệu bằng cả phần cứng lẫn phần mềm Phép toán duy nhất cần được thực hiện là phép hoặc loại trừ
(XOR) các xâu bít Hàm mở rộng E, các hộp S, các hoán vị IP và P
và việc tính toán các giá tri K1, ,K16 đều có thể thực hiện được cùng lúc bằng tra bảng(trong phần mền) hoặc bằng cách nối cứng chúng thành một mạch.
hoá cực nhanh Công ty Digital Equipment đã thông báo tại hội nghị CRUPTO'92 rằng họ sẽ chế tạo một chíp có 50 ngàn
tranzistor có thể mã hoá với tốc độ 1 Gbít/s bằng cách dùng nhịp
có tốc độ 250MHz Giá của chíp này vào khoảng 300$
Trang 3rãi trong các tổ chức chính phủ chẳng hạng như bộ năng lượng, Bộ Tư pháp và hệ thống dự trử liên bang.
- Bảo mật cho mạng không dây
- Thẻ thông minh và cảm ứng nhận dang vân tay
- Bảo mật trong UNIX và LINUX
- Chế tạo ổ cứng an toàn
Trang 4khối: với một dãy các khối bản rõ cho trước x1x2
để tạo thành một chuỗi các khối bản mã y1 y2 theo quy tắc yi = eK(yi-1 ⊕ xi) với i ≥ 1
1_ Chế độ chuyển mã điện tử ECB
( Electronic CodeBook mode)
Trang 52_ Chế độ phản hồi đầu ra OFB
( Output FeedBack mode)
Trong chế độ OFB dòng khoá được tạo ra sẽ được cộng mod 2 với bản rõ (hoạt động như hệ mã vòng) OFB thực sự là
hệ mã vòng đồng bộ: dòng khoá được tạo bởi việc mã lặp
vectơ khởi tạo 64 bit (vectơ IV) Ta xác định z0= IV và dòng khoá z1 z2 … theo công thức zi= eK (zi-1) với i ≥ 1
Dãy bản rõ x1 x2… sau đó sẽ được mã hoá bằng cách tính
yi = xi ⊕ zi với i ≥ 1
Trang 63_ Chế độ liên kết khối mã CBC
( Cipher Block Chaining mode)
Trong chế độ CBC mỗi khối bản mã y 1 y 2 … với y i = e k (y i-1 ⊕
x i ) là kết quả của phép XOR của khối bản mã tiếp theo với khoá K, với
y o =IV , i ≥ 1 mô tả ở hình 3.4
Trang 7H ì nh 3.4 Chế độ CBC
Encrypt
Decrypt
Trang 84_ Chế độ phản hồi mã CFB
( Cipher FeedBack mode)
Bắt đầu là vectơ khởi tạo y 0 =IV tiếp theo tạo các phần tử z i của dòng khoá bằng cách mã hoá khối bản mã trước đó với zi= eK(yi-1) ,
i ≥ 1 Cuối cùng ta tính y i = z i ⊕ x i , i ≥ 1 mô tả ở hình 3.5
Trang 9x1 x2
Encrypt
Decrypt
Hình 3.5 CFB
Trang 10+ ECB và OFB thì sự thay đổi của một số bản xi làm thay đổi khối mã yi tương ứng, nhưng các khối bản mã khác không ảnh hưởng nên OFB thường được dùng để mã hoá khi
truyền vệ tinh
+ Trong chế độ CBC và CFB nếu một khối bản rõ xi bị thay đổi thì yi và tất cả khối bản mã tiếp theo sẽ bị ảnh hưởng nên chế
độ CBC và CFB rất hiệu quả trong việc xác thực
Trang 11khi phá mã DES bằng cách tấn công bản rõ chọn lọc.Oscar thu cặp rõ-mã được tạo bởi khóa K (chưa biết) tức là có x , y
Tìm khoá bằng pp vét cạn: Với một cặp rõ-mã cho trước
nhìn vào giá trị y trong bảng thì tìm ngay được khoá K
Như vậy việc tìm K yêu cầu một thời gian cố định nhưng cần thời gian tính toán trước lớn và cũng cần dung lượng bộ nhớ lớn
Trang 12nhỏ hơn phép tìm kiếm vét cạn và yêu cầu bộ nhớ nhỏ hơn
viêc lập bảng tra cứu Có thể mô tả thuật toán theo 2 tham số m
và t là các số nguyên dương, thuật toán cần một hàm rút rọn R
để rút gọn xâu bít có độ dài 64 bít thành xâu có độ dài 56 bít Giả sử x là một xâu bản rõ 64 bit, hãy xác định hàm
thực hiện ánh xạ từ 56 bít sang 56 bít Đầu tiên Oscar chọn
Trang 13) , (
) 1, ( )
0 , (
.
.
) , 2 (
) 1, 2 ( )
0 , 2 (
) ,1 (
) 1, 1 ( )
0 ,1 (
t m X m
X m
X
t X
X X
t X X
X
g g
g
g g
g
g g
g
→
→
→
→
→
→
→
→
→
Trang 14toạ độ đầu của chúng (tức là chỉ lưu giữ cột đầu và cột cuối củ a mảng X).
Sau khi thu được bản mã y (là bản mã của bản rõ x đã chọn) Oscar cần phải xác định K và chỉ xác định được nếu K nằm trong t cột đầu của mảng X, tuy nhiên ông ta làm được điều này bằng cách chỉ nhìn vào bảng T
Giả sử rằng K=X(i,t-j) với 1 ≤ j ≤ t (giả sử K nằm ở t cột đầu tiên của X) Khi
đó g j (K)= x(i,t) trong đó g j kí hiệu hàm nhận được bằng cách lặp g một số lần bằng j Ta thấy rằng
g j (K)= g j-1 (g (K))
= g j-1 (R (e K(x))) = g j-1 (R (y))
Trang 15
gọn R không phải là hàm đơn ánh: miền xác định của R có
trước có độ dài 56 Do đó cần phải kiểm tra xem y=
eX(i,t-j)(x) hay không để biết liệu X(i,t-j) có thực sự là khoá hay không Ta không cần lưu giá trị X(i,t-j) nhưng có thể dễ dàng tính lại nó từ X(i,0) bằng cách lặp t-j lần hàm g
R(y) nếu j = 1
yj =
g(y{ j-1) nếu 2 ≤ j ≤ t
Trang 16Oscar thực hiện thuật toán được mô tả như sau:
1 Tính y1= R(y)
2 For j = 1 to t do
3 If yj = X(i,t-j) với giá trị i nào đó then
4 Tính X(i,t-j) từ X(i,0) bằng cách lặp t-j lần hàm g
5 If y = eX(i,t-j)(x) then
đặt K= X(i,t-j) và QUIT
6 Tính yj+1 = g(yj)
Trang 17thể chứng tỏ rằng nếu mt2 ~ N=256 thì xác suất để K= X(i,t-j) với i, j nào đó sẽ vào khoảng 0.8 mt/ N Điều này gợi ý cho ta nên lấy m ~ t ~ N1/3 và xây dựng khoảng N1/3 bảng, mỗi bảng dùng hàm rút gọn khác nhau Khi đó thời gian tính toán là cỡ O(N)