Tải bản đầy đủ (.doc) (29 trang)

Sự khác nhau giữa DES và 3DES

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 29 trang )

VIỆN ĐÀO TẠO QUỐC TẾ
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
----------

BÁO CÁO
AN TOÀN BẢO MẬT THÔNG TIN

Đề tài: “Sự khác nhau mã DES và mã 3DES,demo
thuật toán DES ”

Giáo viên hướng dẫn: Ths. Nguyễn Phi Lê
Nhóm sinh viên thực hiện: Nhóm 01_LTU12A
1. Lê Thị Mai
2. Ninh Mạnh Dũng
3. Hoàng Ngọc Lực

20111849

Hà Nội, 7/3/2016

NHÓM 1_LTU12A

1


LỜI MỞ ĐẦU
Với sự phát triển mang tính toàn cầu của mạng Internet và TMĐT , con người có
thể mua bán hàng hóa và dịch vụ thông qua mạng máy tính toàn cầu một cách
dễ dàng trong lĩnh vực thương mại rộng lớn. Tuy nhiên đối với các giao dịch
mang tính nhạy cảm này cần phải có những cơ chế đảm bảo bảo mât và an
toàn vì vậy vấn đề bảo mật và an toàn thông tin trong thương mại điện tử là


một vấn đề hết sức quan trọng. Đề tài sẽ đề cập đến các kỹ thuật chính của
lĩnh vực Bảo mật và an toàn thông tin trong thương mại điện tử.
Hiện nay vấn đề Bảo mật và an toàn thông tin trong TMĐT đã và đang được áp
dụng phổ biến và rộng rãi ở Việt Nam và trên phạm vi toàn cầu . Vì thế vấn đề
Bảo mật và an toàn đang được nhiều người tập trung nghiên cứu và tìm mọi
giải pháp để đảm bảo Bảo mật và an toàn cho các hệ thống thông tin trên
mạng. Tuy nhiên, cũng cần phải hiểu rằng không một hệ thống thông tin nào
được bảo mật 100% bất kỳ một hệ thống thông tin nào cũng có những lỗ hổng
về bảo mật và an toàn mà chưa được phát hiện ra.
Xuất phát từ những khả năng ứng dụng trong thực tế và những ứng dụng đã có từ
các kết quả của nghiên cứu trước đây về lĩnh vực Bảo mật và an toàn trong
TMĐT.Sau đây chúng em xin đi sâu vào nghiên cứu một loại mã dùng để mã
hóa thông tin và có ứng dụng rất lớn trong thực tế đó là “Mã DES và Mã
3DES”.

NHÓM 1_LTU12A

2


CHƯƠNG I: TỔNG QUAN VỀ MÃ DES VÀ MÃ 3DES

I.
II.

TỔNG QUAN
MÃ DES

A. Mô tả thuật toán mã hóa DES
Mô tả tổ ng quan:

DES là thuâṭ toá n mã hó a với input là khối 64 bit, output cũng là khối 64 bit.
Khóa mã hóa có độ dài 56 bit, thựcc ra chính xác hơn phải là 64 bit với các bit
ở vi ṭ rí chia hết cho 8 có thể sử dụng là các bit kiểm tra tính chẵn lẻ . Số khóa
của không gian khóa K là 256.

Hình 1: Chuẩn mã hóa dữ liệu DES
Thuật toán thực hiện 16 vòng . Từ khóa input K , 16 khóa con 48bit Ki sẽ được
sinh ra , mỗi khóa cho một vòng thực hiện trong quá trình mã hóa. Trong
mỗi vòng, 8 ánh xạ thay thế 6 bit thành 4 bit Si ( còn gọi là hộp Si) được lựa
chọn kỹ càng và cố định , ký hiệu chung là S sẽ được sử dụng. Bản rõ 64bit
sẽ được sử dụng chia thành 2 nửa Lo và Ro. Các vòng chức năng giống nhau,
nhận input là Li-1 và Ri-1 từ vòng trước và sinh ra output là các xâu 32 bit Li
và Ri như sau:
Li = Ri-1; (1)
Ri = Li-1 ⊕ f(Ri-1, Ki) trong đó f(Ri-1, Ki) = P( S( E(Ri-1) ⊕ Ki ) ); (2)
Trong đó:
NHÓM 1_LTU12A

3


− ⊕ là ký hiệu của phép tuyển loại trừ (XOR) của hai xâu bit theo modul 2.
− Hàm f là một hàm phi tuyến.
− E là hoá n vi m
̣ ở rôn ̣g á nh xạ Ri từ 32 bit thành 48 bit (đôi khi tất cả các
bit sẽ
được sử dụng hoăc ̣ môṭ bit sẽ được sử dụng 2 lần).
− P là hoán vi ̣cố đinh khác của 32 bit.
Một hoán vị bit khởi đầu được sử dụng cho vòng đầu tiên, sau vòng cuối cùng nửa
trái và phải sẽ được đổi cho nhau và cuối cùng xâu kết quả sẽ được hoán vị

bit lần cuối bởi hoán vị ngược của IP (IP-1).
Quả trình giải mã diễn ra tương tự với các khóa con ứng dụng vào các vòng trong
theo thứ tự ngược lại.
Có thể hình dung đơn giản là phần bêm phải trong mỗi vòng (sau khi mở rộng
inpu 32 bit thành 8 bit ký tự 6 bit-xâu 48 bit) sẽ thực hiện một tính toán thay
thế phụ thuộc khóa trên mỗi ký tự trong xâu 48bit, và sau đó sử dụng một
phép chuyển bit cố định để phân bố lại các bit của các ký tự kết quả hình
thành nên output 32bit.
Các khóa con Ki (chứa 48bit của K) được tính bằng cách sử dụng các bảng PC1 và
PC2 . Trước tiên 8bit của K bị bỏ đi , 56bit còn lại được hoán vị và gán cho
hai biến 28bit C và D, và sau đó trong 16 vòng lặp cả C và D sẽ được quay 1
hoặc 2 bit, và các khóa con 48bit Ki được chọn từ kết quả của việc ghép 2
xâu với nhau.
Như vậy, ta có thể mô tả toàn bộ thuật toán sinh mã DES dưới dạng công thức như
sau:

. . . . .

. . . . IP(x)

Y = IP-1 f16 T f15 T … f2 T f1 T
Trong đó:
-

T mô tả hoán vị các khối Li Ri (1<=i<=15)
fi mô tả việc dùng hàm f với khóa Ki (1<=i<=16)

Thuật toán chi tiết:
Input: bản rõ M = m1 m2 m3 … m64 khóa 64bit K= k1 k2 … k64 (bao gồm cả 8 bit
chẵn lẻ , việc thêm bit chẵn lẽ sao cho các đoạn khóa 8bit có số bit 1 là lẻ)


NHÓM 1_LTU12A

4


Output: bản mã 64bit C=c1 c2 c3 … c64
1. Sinh khóa con. Tính các khóa con theo thuật toán sinh khóa con bên dưới
2. (L0 R0 )
IP(m1 m2 m3 … m64) ( Sử dụng các hoán vị IP để hoán vị các
bit, kết quả nhận được chia thành 2 nửa Lo= m58 m50 …m8 , Ro = m57 m49 …
m7.
3. 16 vòng for , i=1 to 16.
Tính các Li và Ri theo các công thức (1) và (2), viêc ̣tính:

f(Ri-1, Ki) = P( S( E(Ri-1) ⊕ Κι ) ) được thực hiện như sau:
a) Mở rộng R i-1 = r1r2…r32 từ 32 bit thành 48bit bằng cách sử dụng hoán vị
mở rộng E
T ← E(Ri-1). (Vì thế T = r32r1r2…r32r1)
b) T’ ← T ⊕ Ki. Biểu diễn T’ nhƣ là cá c xâu gồ m 8 ký tự 6 bit T’ = (B1,
…,B8)
c) T’’ ← (S1(B1), S2(B2),…,S8(B8)). Trong đó Si(Bi) ánh xạ b1b2…b6
thành các xâu 4 bit của phần tử thuôc ̣ hàng r và côṭ c của các bả ng Si (S
box) trong đó r = 2 * b1
+ b6 và c = b2b3b4b5 là một số nhị phân từ 0 tớ i 15. Chẳng han ̣
S1(011011) sẽ cho r = 1 và c = 13 và kết quả là 5 biểu diễn dướii dan g̣ nhi
̣phân là 0101.
d) T’’’ ← P(T’’) trong đó P là hoán vi ̣cố đinh để hoán vi ̣ 32 bit của T ’’ =
t1t2…t32 sinh ra t16t7…t25.
4. b1b2…b64 ← (R16, L16) (đổi vi ṭ rí các khối cuối cùng L16, R16)

5. C ← ΙΠ−1(β1β2…b64) (Biến đổi sử dụng IP-1, C = b40b8…b25)
Sơ đồ 16 vòng lặp của DES:

NHÓM 1_LTU12A

5


1. Hoán vị IP và hoán vị ngược IP-1
Bảng hoán vị IP được đưa ra trong bảng dưới đây:

Bảng hoán vị ngươc IP-1

Hai hoán vị IP và IP-1 không có ý nghĩa gì về mặt mật mã mà hoàn toàn nhằm
tạo điều kiện cho việc “chip hoá” thuật toán DES.
NHÓM 1_LTU12A

6


Sơ đồ cấu trúc một vòng DES:

2. Thuật toán sinh khóa con.
16 vòng lặp của thuật toán DES chạy cùng thuật toán như nhau với 16 khóa
con khác nhau.Các khóa con đều được sinh ra từ khóa chính của DES bằng
một thuật toán sinh khóa con . Khóa chính K ( 64bit) đi qua 16bit biến đổi , tại
mỗi bit biến đổi này một khóa con được sinh ra với độ dài 48bit.
Có thể mô tả chi tiết thuật toán sinh khóa con như sau:
Input: khóa 64 bit K = k1k2...k64 (bao gồm cả 8 bit kiểm tra tính chẵn lẻ)
Output: 16 khóa con 48 bit Ki, 1 ≤ i ≤ 16.

1) Đinh nghĩa vi, 1 ≤ i ≤ 16 như sau: vi = 1 đố i với i ∈ {1,2,9,16}; vi = 2 cho
các trườnng hợp khác (Đây là các giá tri ḍ ic̣h trái cho các quay vòng 28 bit bên
dưới).
2) T ← PC1(K); biểu diễn T thành các nửa 28 bit (C0, D0) (Sử dụng bảng PC1
để chọn các bit từ K: C0 = k57k49...k36, D0 = k63k55...k4.)
3) For i from 1 to 16, tính các Ki như sau: Ci ← (Ci-1 ← vi), Di ← (Di-1 ←
vi), Ki← PC2(Ci, Di). (Sử dụng bả ng PC2 để chọn 48 bit từ xâu ghép
NHÓM 1_LTU12A

7


b1b2...b56 của Ci và Di: Ki =b14b17...b32. ‟← „ là ký hiêu ̣ dic̣h vòng trái.)
Sơ đồ sinh các khóa con của DES:

64bit đầu sẽ giảm xuống còn 56bit bằng cách bỏ đi 8bit ( ở các vị trí chia hết cho
8) , các bit này dùng để kiểm tra tính chẵn lẻ, sau đó 56bit này sẽ được trích
lấy 48bit để sinh ra cho 16 vòng khóa của DES.
Bảng trật tự khóa PC-1:

Đầu tiên 56bit khóa sẽ được chia ra thành 2 nửa 28bit . Sau đó 2 nửa 28 bit này sẽ
được dịch vòng trái hoặc 1 hoặc 2 bit phụ thuộc vào số bit dịch vòng tương
ứng với vòng đó.
Số bit dịch của các vòng (LS)
NHÓM 1_LTU12A

8


Sauk hi dịch vòng một bảng chon 48bit được sử dụng. Vì cách hoán vị này của các

bit được lựa chọn như một tổ hợp con của các bit nên được gọi là “ hoán vị
nén” hay “ trật tự nén “
Bảng trật tự nén PC-2:

Ví dụ như chúng ta có thể nhận lấy bit ở vị trí thứ 33 của khóa sẽ dịch sang vị trí
35 ra ngoài, còn bit ở vị trí 18 của khóa sẽ bị bỏ qua. Chính việc dịch vòng
này tạo nên một tập hợp con của các khóa . Mỗi bit được sử dụng 14 lần
trong tổng số 16 tổ hợp khóa, dù không phải tất cả các bit được sử dụng một
cách chính xác cùng lúc trong mỗi lần sử dụng.
3. Mô tả hàm f
Hàm f(Ri-1,Ki) là một hàm có 2 biến vào , biến thứ nhất Ri-1 là một biến có độ dài
32bit , biến thứ 2 Ki là một biến có độ dài 48bit , đầu ra của f là một xâu ký
tự có độ dài 32bit.Hàm f có thể là hàm bất kỳ tuy nhiên nguồn gốc sức mạnh
của DES đều nằm trong hàm f nên việc chọn hàm f phải cẩn thận để tránh
việc phá mã một cách dễ dàng. Thông thường hàm f được chọn là hàm có
tính chất:
f = f-1, tức f(f(x)) = x.
Trong sơ đồ mô tả mã hóa của DES được công bố bởi Ủy Ban Tiêu Chuẩn Quốc
Gia Hoa Kỳ , hàm f thực hiện những công việc sau:
-

Biến thứ nhất Ri được mở rộng thành một xâu bit có độ dài 48bit theo một
hàm mở rộng cố định E.

NHÓM 1_LTU12A

9


-


Thực chất hàm mở rộng E(Ri-1) là một hoán vị có lặp trong đó lặp
lại 16 bit của Ri-1.
− Tính E(Ri-1)⊕ Ki và viết kết quả thành 8 xâu 6 bit
B1B2B3B4B5B6B7B8.
− Đưa 8 khối Bi vào 8 bảng S1, S2, ..., S8 (được gọi là các hộp S-Box).
Mỗi hộp S-Box là một bảng 4*16 cố định có các cột từ 0 đến 15 và các
hàng từ 0 đến 3. Với mỗi xâu 6 bit Bi = b1b2b3b4b5b6, ta tính được Si(Bi)
như sau: hai bit b1b6 xác định hàng r trong hộp Si, bốn bit b2b3b4b5 xác
định cột c trong hộp Si. Khi đó, Si(Bi) sẽ xác định phần tử Ci = Si(r,c),
phần tử này viết dƣới dạng nhị phân 4 bit. Như vậy, 8 khối 6 bit Bi (1 ≤ i ≤
8) sẽ cho ra 8 khối 4 bit Ci với (1 ≤ i ≤ 8).
− Xâu bit C = C1C2C3C4C5C6C7C8 có độ dài 32 bit được hoán vị theo
phép hoán vị P (hộp P-Box). Kết quả P(C) sẽ là kết quả của hàm f(Ri-1,
Ki), và cũng chính là Ri cho vòng sau.
Hàm f cũng có thể được mô tả trong hình sau:

4. Hàm ánh xạ mở rộng E
Hàm mở rộng E sẽ tăng độ dài từ Ri từ 32bit lên 48bit bằng cách thay đổi các
thứ tự của các bit cũng như lặp lại các bit. Việc thực hiện này gồm các bước:
− Làm độ dài của Ri cùng cỡ với khoá K để thực hiện việc cộng module XOR.
− Cho kết quả dài hơn để có thể đƣợc nén trong suốt quá trình thay thế.
NHÓM 1_LTU12A

10


Tuy nhiên, cả hai mục đích này đều nhằm một mục tiêu chính là bảo mật dữ
liệu.
Bằng cách cho phép 1 bit có thể chèn vào hai vị trí thay thế, sự phụ thuộc của

các bit đầu ra với các bit đầu vào sẽ trải rộng ra. DES được thiết kế với điều
kiện là mỗi bit của bản mã phụ thuộc vào mỗi bit của bản rõ và khoá.
Sơ đồ hàm mở rộng:

Đôi khi nó được gọi là hàm E-Box, mỗi 4 bit của khối vào, bit thứ nhất và bit thứ
tư tương ứng với 2 bit của đầu ra, trong khi bit thứ 2 và 3 tương ứng với 1 bit
ở đầu ra. Bảng sau đây miêu tả vị trí của bit ra so với bit vào.

Ví dụ như bit ở vị trí số 3 của khối vào sẽ di chuyển đến vị trí số 4 của khối ra và
bit ở vị trí 21 ở đầu vào sẽ di chuyển đến vị trí 30 và 32 ở đầu ra.
5. Mô tả hộp S-Box
Đối với sơ đồ mã hoá DES, mọi tính toán đều là tuyến tính, tức là việc tính phép
tuyển loại trừ XOR của hai đầu ra cũng giống với phép tuyển loại trừ XOR
của hai đầu vào rồi tính toán đầu ra. Chỉ duy nhất có các tính toán với hộp S
là phi tuyến. Chính vì vậy các hộp S-Box (chứa đựng các thành phần phi
NHÓM 1_LTU12A

11


tuyến của hệ mật) là quan trọng nhất đối với độ mật của hệ mã, chính các
hộp S tạo nên sự hỗn loạn (confusion) và sự khuếch tán (diffusion) của DES.
Năm 1976, NSA đã đưa ra tiêu chuẩn thiết kế hộp S nhƣ sau:
− Mỗi hàng trong mỗi hộp S là một hoán vị của các số nguyên từ 0 đến 15.
− Không có hộp S nào là hàm Affine hay tuyến tính đối với các đầu vào của
nó.
− Sự thay đổi của một bit đầu vào sẽ dẫn đến sự thay đổi ít nhất hai bit đầu
ra.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 1312
1314 15 16 1716 32 32

− Đối với hộp S bất kỳ và với đầu vào x (một xâu bit có độ dài bằng 6) bất
kỳ, thì
S(x) và S(x⊕ 001100) phải khác nhau ít nhất là 2 bit.
NSA cũng tiết lộ 3 thuộc tính của hộp S, những thuộc tính này đảm bảo tính
confusion và diffusion của thuật toán:
− Các bit vào luôn phụ thuộc không tuyến tính với các bit ra.
− Sửa đổi ở một bit vào làm thay đổi ít nhất là hai bit ra.
− Khi một bit vào được giữ cố định và 5 bit còn lại cho thay đổi thì hộp S thể
hiện
một tính chất được gọi là “phân bố đồng nhất”: so sánh số lượng bit số 0 và 1
ở các đầu ra luôn ở mức cân bằng. Tính chất này khiến cho việc phân tích
theo lý thuyết thống kê để tìm cách phá hộp S là vô ích.
Sau khi cộng module với khoá K, kết quả thu đƣợc chuỗi 48 bit chia làm 8
khối đưa vào 8 hộp S-Box. Mỗi hộp S-Box có 6 bit đầu vào và 4 bit đầu ra
(tổng bộ nhớ yêu cầu cho 8 hộp S-Box chuẩn DES là 256 bytes). Kết quả thu
được là một chuỗi 32 bit tiếp tục vào hộp P-Box.
Ta có thể xây dựng các hộp S của riêng mình, tuy nhiên cũng có thể dùng các
hộp
S chuẩn đã được công bố:

Hộp S1

NHÓM 1_LTU12A

12


Hộp 2

Hộp 3


Hộp 4

Hộp 5

NHÓM 1_LTU12A

13


Hộp 6

Hộp 7

Hộp 8
Ví dụ: Giả sử đầu vào của hộp là hộp S6 ,là chuỗi bit 110011 từ 31 đến 36. Bit đầu
tiên và bit cuối cùng kết hợp thành 11 tương ứng với 3 hàng của cột S6. Bốn
bit giữa có giá trị 1001, tương ứng với cột 9. Như vậy giá trị nhận được là
14. ( số điểm của cột, hàng bắt đầu từ 0) và giá trị 1110 được thay thế cho
giá trị 110110 ở đầu ra.
6. Mô tả hộp P-Box
Việc hoán vị này mang tính đơn ánh, nghĩa là một bit đầu vào sẽ cho một
bit ở đầu ra, không bit nào đƣợc sử dụng hai lần hay bị bỏ qua. Hộp
P-Box thực chất chỉ làm chức năng sắp xếp đơn thuần theo bảng
sau:
Bảng mô tả hộp P-Box:

NHÓM 1_LTU12A

14



Bảng hoán vị P
Ví dụ như bit 21 sẽ dịch chuyển đến bit thứ 4, trong khi bit thứ 4 lại dịch chuyển
đến bit 31. Kết quả cuối cùng của hộp P-Box lại được XOR với nửa trái của
khối 64 bit của chính nó (tức Li-1 để tạo ra Ri) và sau đó nửa trái và nửa phải
đảo cho nhau và bắt đầu một vòng khác.
7. Ví dụ về một mã DES

-

Một bản rõ mang nội dung “0123456789ABCDEF”

-

Sử dụng khóa ở dạng thập phân “133457799BBCDFFI” . Khóa này ở dạng nhị
phân là một dãy bit như sau( không có bit kiểm tra):
00010010011010010101101111001001101101111011011111111000

-

Chuyển đổi IP chúng ta lấy ra L0 và R0:
L0 = 11001100000000001100110011111111
L0 = R0 = 11110000101010101111000010101010

-

16 mã hóa vòng sẽ được thực hiện như sau:

NHÓM 1_LTU12A


15


NHÓM 1_LTU12A

16


NHÓM 1_LTU12A

17


NHÓM 1_LTU12A

18


− Cuối cùng, chuyển đổi IP-1, ta thu được bản mã (ở dạng Hecxa):

“85E813540F0AB405”.
B. Các điểm yếu của DES.
1. Tính bù:
Nếu ta ký hiệu u là phần bù của u (ví dụ như: 0100101 là phần bù của 1011010)
thì DES có tính chất sau:
y = DES(x,k) → y = DES( x , k )
Cho nên nếu ta biết mã y được mã hoá từ thông tin x với khoá K thì ta suy ra
được bản mã y đƣợc mã hoá từ bản rõ x với khoá k . Tính chất này chính là
NHÓM 1_LTU12A


19


một yếu điểm của DES bởi vì qua đó đối phƣơng có thể loại bỏ đi một số
khoá phải thử khi tiến hành thử giải mã theo kiểu vét cạn.
2. Khóa yếu
Khoá yếu là các khoá mà theo thuật toán sinh khoá con thì tất cả 16 khoá con đều
như nhau:
K1 = K2 = ... = K15 = K16
Điều đó khiến cho viêc ̣ mã hóa và giải mã đối với khoá yếu là giống hệt
nhau.
Có tất cả 4 khoá yếu sau:

Đồng thời còn có 6 cặp khoá nửa yếu (semi-weak key) khác với thuộc tính như
sau:
y = DES(x,k1) và y = DES(x,k2)
nghĩa là với 2 khoá khác nhau nhưng mã hoá ra cùng một bản mã từ cùng
một bản
rõ:

3. DES có cấu trúc đại số
Với 64 bit khối bản rõ có thể được ánh xạ lên tất cả vị trí của 64 bit khối bản mã
trong 264 cách. Trong thuật toán DES, với 56 bit khoá, có thể cho chúng ta
256 (khoảng 1017) vị trí ánh xạ. Với việc đa mã hoá thì không gian ánh xạ
còn lớn hơn. Tuy nhiên điều này chỉ đúng nếu việc mã hoá DES là không có
cấu trúc.
NHÓM 1_LTU12A

20



Với DES có cấu trúc đại số thì việc đa mã hoá sẽ được xem ngang bằng với
việc
đơn mã hoá. Ví dụ như có hai khoá bất kỳ K1 và K2 thì sẽ luôn được khoá
thứ K3 như sau:
EK2(EK1(x)) = EK3(x)
Nói một cách khác, việc mã hoá DES mang tích chất “nhóm”, đầu tiên mã
hoá bản
rõ bằng khoá K1 sau đó là khoá K2 sẽ giống với việc mã hoá ở khoá K3.
Điều này thực sự quan trọng nếu sử dụng DES trong đa mã hoá. Nếu một
“nhóm” được phát với cấu trúc hàm quá nhỏ thì tính an toàn sẽ giảm.
4. Không gian khóa K
DES có 256 = 1017 khoá. Nếu chúng ta biết được một cặp “tin/mã” thì chúng ta
có thể thử tất cả 1017 khả năng này để tìm ra khoá cho kết quả khớp nhất.
Giả sử như một phép thử mất 10-6s, thì chúng sẽ mất 1011s, tức 7300 năm.
Nhưng với các máy tính được chế tạo theo xử lý song song. Chẳng hạn với
107 con chipset mã DES chạy song song thì bây giờ mỗi một con chipset chỉ
phải chịu trách nhiệm tính toán với 1010 phép thử. Chipset mã DES ngày
nay có thể xử lý tốc độ 4.5×107 bit/s tức có thể làm được hơn 105 phép mã
DES trong một giây.
Vào năm 1976 và 1977, Diffie và Hellman đã ƣớc lượng rằng có thể chế tạo
đƣợc
một máy tính chuyên dụng để vét cạn không gian khoá DES trong ½ ngày
với cái giá 20 triệu đô la. Năm 1984, chipset mã hoá DES với tốc độ mã hoá
256000 lần/giây. Năm 1987, đã tăng lên 512000 lần/giây. Vào năm 1993,
Michael Wiener đã thiết kế một máy tính chuyên dụng với giá 1 triệu đô la
sử dụng phương pháp vét cạn để giải mã DES trung bình trong vòng 3,5 giờ
(và chậm nhất là 7 giờ).
Đến năm 1990, hai nhà toán học ngƣời Do Thái - Biham và Shamir - đã phát

minh
ra phương pháp phá mã vi sai (diferential cryptanalyis), đây là một kỹ thuật
sử dụng những phỏng đoán khác nhau trong bản rõ để đƣa ra những thông
tin trong bản mã. Với phương pháp này, Biham và Shamir đã chứng minh
rằng nó hiệu quả hơn cả phương pháp vét cạn.
Phá mã vi sai là thuật toán xem xét những cặp mã hoá khác nhau, đây là
những
cặp mã hoá mà bản rõ của chúng là khác biệt. Ngƣời ta sẽ phân tích tiến
trình biến đổi của những cặp mã này thông qua các vòng của DES khi chúng
được mã hoá với cùng một khoá K. Sau đó sẽ chọn hai bản rõ khác nhau một
cách ngẫu nhiên hợp lý nhất. Sử dụng sự khác nhau của kết quả mã hoá và

NHÓM 1_LTU12A

21


gán cho những khoá khác nhau một cách phù hợp nhất. Khi phân tích nhiều
hơn những cặp bản mã, chúng ta sẽ tìm ra một khoá được xem là đúng nhất.

C. MÃ 3DES
1. Thuật toán mã hóa 3DES
Thuật toán mã hoá 3DES là một biến thể phụ của DES, như ta đã biết DES vẫn tồn
tại nhiều nhược điểm như: Có thể bẽ gãy bằng những máy có mục đích đặc biệt để
tìm ra khóa

2. Mô tả 3DES
Thuật toán 3DES sử dụng một nhóm khóa bao gồm 03 khóa DES K1, K2 và K3,
mỗi khóa có giá trị 56 bít. Thuật toán mã hóa thực hiện như sau:


Quá trình mã hóa
Bản mã= EK3(DK2(EK1(Bản rõ)))
Trước tiên, thực hiện mã hóa DES với khóa K1, tiếp tục giải mã DES với khóa
K2 và cuối cùng mã hóa DES với khóa K3 (E – Encryption: quá trình mã hóa; D Decryption: quá trình giải mã; Bản rõ: Dữ liệu đầu vào của phép mã hóa hoặc dữ
liệu đầu ra của phép giải mã; Bản mã: Dữ liệu đầu ra của phép mã hóa hoặc dữ
liệu đầu vào của phép giải mã).

NHÓM 1_LTU12A

22


Quá trình giải mã
Bản rõ = DK1(EK2(DK3(Bản mã))
Quá trình giải mã với việc giải mã với khóa K3, sau đó mã hóa với khóa K2, và
cuối cùng giải mã với khóa K1..
3DES mã hóa một khối dữ liệu có giá trị 64 bít (bản rõ) thành một khối dữ liệu
mới có giá trị 64 bít (bản mã). Các tiêu chuẩn chỉ ra phương thức lựa chọn nhóm
khóa (K1, K2, K3) như sau:
1) Lựa chọn 1: K1, K2, K3 là các khóa độc lập
2) Lựa chọn 2: K1, K2 là hai khóa độc lập và K3 = K1
3) Lựa chọn 3:K1=K2=K3
Lựa chọn 1 là phương thức mã hóa mạnh nhất với 168 bít khóa độc lập
(168=3x56). Lựa chọn 2 ít bảo mật hơn với 112 bít khóa ( 2x56=112 bít) và lựa
chọn 3 chỉ tương đương với việc mã hóa DES 1 lần với 56 bít khóa. Mỗi khóa
DES thông thường được lưu trữ và truyền đi trong 8 byte, vì vậy một nhóm khóa
yêu cầu 8 hoặc 16, 24 byte cho việc lưu trữ khóa.
2. Ưu nhược điểm của 3DES
- Ưu điểm: Khác với DES , thuật toán mã hóa 3DES được mã hóa 3 lần DES, với
kích cỡ không gian khóa là 168 cho nên an toàn hơn rất nhiều so với DES

- Nhược điểm: Vì 3DES sử dụng 3 lần mã hóa DES nên tốc độ mã hóa sẽ chậm
hơn rất nhiều so với DES. Phần mềm ứng dụng tỏ ra rất chậm đối với hình ảnh số
và một số ứng dụng dữ liệu tốc độ cao vì có kích thước khối 64bit vẫn còn là một
nhược điểm đối với những hệ có tốc độ của thế kỷ 21.
IV. YÊU CẦU LƯU TRỮ KHÓA
- Đối với một khóa riêng lẻ hay một nhóm khóa gồm 03 khóa sẽ phải:
- Đảm bảo duy trì tính bảo mật;
- Việc cấp phát khóa sử dụng một phương pháp đã được chấp thuận dựa trên việc
sinh khóa ngẫu nhiên;
- Nhóm khóa độc lập với các nhóm khóa khác;
- Phải có tính toàn vẹn do mỗi khóa trong nhóm khóa không thể thay đổi theo thời
gian trong quá trình sinh phát khóa, truyền tải và lưu trữ khóa;
- Sử dụng một cách tuần tự theo thứ tự xác định trước;
- Số lượng khóa là cố định với mỗi khóa đơn lẻ không thể làm sai lệch.
Khóa yếu
Có nhiều khóa được xem là khóa yếu trong thuật toán DES, đó là các khóa dễ có
khả năng bị đối tượng phá khóa do một số bít của khóa lặp lại và dễ dự đoán

NHÓM 1_LTU12A

23


trước. Việc sử dụng khóa yếu có thể làm giảm tính bảo mật của DES, do đó tránh
sử dụng các khóa yếu này. Cụ thể các khóa yếu là:
01010101 01010101
FEFEFEFE FEFEFEFE
E0E0E0E0 F1F1F1F1
1F1F1F1F 0E0E0E0E
Một số cặp khóa yếu nên tránh sử dụng:

011F011F010E010E và 1F011F010E010E01
01E001E001F101F1 và E001E001F101F101
01FE01FE01FE01FE và FE01FE01FE01FE01
1FE01FE00EF10EF1 và E01FE01FF10EF10E
1FFE1FFE0EFE0EFE và FE1FFE1FFE0EFE0E
48 khóa được coi là “có thể yếu” nên hạn chế sử dụng:
01011F1F01010E0E 1F1F01010E0E0101 E0E01F1FF1F10E0E
0101E0E00101F1F1 1F1FE0E00E0EF1F1 E0E0FEFEF1F1FEFE
0101FEFE0101FEFE 1F1FFEFE0E0EFEFE E0FE011FF1FE010E
011F1F01010E0E01 1FE001FE0EF101FE E0FE1F01F1FE0E01
011FE0FE010EF1FE 1FE0E01F0EF1F10E E0FEFEE0F1FEFEF1
011FFEE0010EFEF1 1FE0FE010EF1FE01 FE0101FEFE0101FE
01E01FFE01F10EFE 1FFE01E00EFE01F1 FE011FE0FE010EF1
FE01E01FFE01F10E 1FFEE0010EFEF101 FE1F01E0FE0E01F1
01E0E00101F1F101 1FFEFE1F0EFEFE0E FE1FE001FE0EF101
01E0FE1F01F1FE0E E00101E0F10101F1 FE1F1FFEFE0E0EFE
01FE1FE001FE0EF1 E0011FFEF1010EFE FEE0011FFEF1010E
01FEE01F01FEF10E E001FE1FF101FE0E FEE01F01FEF10E01
01FEFE0101FEFE01 E01F01FEF10E01FE FEE0E0FEFEF1F1FE
1F01011F0E01010E E01F1FE0F10E0EF1 FEFE0101FEFE0101
1F01E0FE0E01F1FE E01FFE01F10EFE01 FEFE1F1FFEFE0E0E
1F01FEE00E01FEF1 E0E00101F1F10101 FEFEE0E0FEFEF1F1
D. ỨNG DỤNG
DES và 3DES được ứng dụng rộng rãi trong các lĩnh vực mật mã, xác thực, an
toàn thông tin,… Năm 2002 tiêu chuẩn mã hóa tiên tiến AES được đề xuất thay
thế cho tiêu chuẩn DES và 3DES , song vẫn có nhiều lĩnh vực áp dụng sử dụng
DES và 3DES sau này.

NHÓM 1_LTU12A


24


CHƯƠNG II: SỰ KHÁC NHAU MÃ DES VÀ MÃ 3DES
1. Độ dài khóa
- Mã DES: thực tế dùng đến khóa có độ dài là 56bit
- Mã 3DES: thuật toán mã hóa 3DES được mã hóa 3 lần DES với kích thước
khóa là 169bit.
2. Tốc độ mã hóa
Tốc độ mã hóa của mã DES nhanh hơn rất nhiều lần so với mã 3DES
3. Độ an toàn bảo mật
Độ an toàn bảo mật của mã 3DES an toàn hơn rất nhiều so với mã DES.

NHÓM 1_LTU12A

25


×