Hiện nay, nước ta đang trong giai đoạn tiến hành công nghiệp hóa, hiện đại hóa đất nước ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES LỜI NĨI ĐẦU Hiện nay, nước ta đang
trong giai đoạn tiến hành cơng nghiệp hóa, hiện đại
hóa đất nước.
Tin học được xem là một
trong những ngành mũi nhọn.
Tin học đã
và đang đóng góp rất nhiều cho xã hội
trong mọi khía cạnh của cuộc sống.
Mã hóa thơng tin là một ngành quan
trọng và có nhiều
ứng dụng trong đời sống xã hội. Ngày nay,
các ứng dụng mã hóa và bảo mật thơng tin đang được sử
dụng ngày càng phổ biến hơn
trong các lĩnh vực khác nhau trên Thế giới, từ
các lĩnh vực an ninh, qn sự, quốc phòng…, cho đến
các lĩnh vực dân sự như
thương mại điện tử, ngân hàng…
Ứng dụng mã hóa và bảo mật thơng tin trong các hệ thống thương mại điện tử,
giao dịch chứng khốn,… đã trở nên phổ biến trên thế giới
và sẽ ngày càng trở nên quen thuộc với người dân Việt Nam. Tháng 7/2000, thị trường
chứng khốn lần đầu tiên được hình thành tại Việt Nam;
các thẻ
tín dụng bắt đầu được sử dụng,
các ứng dụng hệ thống thương mại điện tử đang ở bước đầu được quan tâm
và xây dựng. Do đó, nhu cầu về
các ứng dụng mã hóa và bảo mật thơng tin trở nên rất cần thiết. NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES I. MỘT SỐ PHƯƠNG PHÁP
MÃ HĨA I .1 Giới thiệu Định nghĩa 1.1: Một
hệ mã mật (cryptosystem) là một bộ-năm (P, C, K, E, D) thỏa mãn
các điều kiện sau: 1. P là khơng gian bản rõ. tập hợp hữu hạn tất cả
các mẩu
tin nguồn cần
mã hóa có thể có 2.C là khơng gian bản mã. tập hợp hữu hạn tất cả
các mẩu
tin có thể có sau khi
mã hóa 3 .K là khơng gian khố. tập hợp hữu hạn
các khóa có thể được sử
dụng 4.Với mỗi khóa k∈K, tồn tại luật
mã hóa e k ∈E
và luật giải
mã d k ∈D tương ứng. Luật
mã hóa e k : P → C
và luật giải
mã e k : C → P là hai ánh xạ thỏa mãn ( ) ( ) , k k d e x x x P= ∀ ∈ Tính chất 4. là tính chất chính
và quan
trọng của một
hệ thống mã hóa. Tính chất này
bảo đảm việc
mã hóa một mẩu
tin x∈P bằng luật
mã hóa e k ∈E có thể được giải
mã chính xác bằng luật d k ∈D. Định nghĩa 1.2: Z m được định nghĩa là tập hợp {0, 1, ., m-1}, được trang bị phép cộng (ký hiệu +)
và phép nhân (ký hiệu là ×). Phép cộng
và phép nhân
trong Z m được thực hiện tương tự như
trong Z, ngoại trừ kết quả tính theo modulo m Ví dụ: Giả sử ta cần tính giá trị 11 × 13
trong Z 16 .
Trong Z, ta có kết quả của phép nhân 11×13=143. Do 143≡15 (mod 16) nên 11×13=15
trong Z 16 . Một số tính chất của Z m 1. Phép cộng đóng
trong Z m , i.e., ∀ a, b ∈ Z m , a+b ∈ Z m 2. Tính
giao hốn của phép cộng
trong Z m , i.e., ∀ a, b ∈ Z m , a+b =b+a 3. Tính kết hợp của phép cộng
trong Z m , i.e., ∀ a, b, c ∈ Z m , (a+b)+c =a+(b+c) 4. Z m có phần tử trung
hòa là 0, i.e., ∀ a ∈ Z m , a+0=0+a=a 5. Mọi phần tử a
trong Z m đều có phần tử đối là m – a 6. Phép nhân đóng
trong Z m , i.e., ∀ a, b ∈ Z m , b∈ Z m 7. Tính
giao hốn của phép cộng
trong Z m , i.e., ∀ a, b ∈ Z m , b=b×a 8. Tính kết hợp của phép cộng
trong Z m , i.e., ∀ a, b, c ∈ Z m , (b)×c =(b×c) 9. Z m có phần tử đơn vị là 1, i.e., ∀ a ∈ Z m , 1=1×a=a 10. Tính phân phối của phép nhân đối với phép cộng, i.e., ∀ a, b, c ∈ Z m , (a+b)×c =(c)+ (b×c) 11. Z m có
các tính chất 1, 3 – 5 nên tạo thành 1 nhóm. Do Z m có tính chất 2 nên tạo thành nhóm Abel. Z m có
các tính chất (1) – (10) nên tạo thành 1 vành I.2
Các Hệ Mã Thơng Dụng: a.
Hệ Mã Đầy (Shift Cipher ) Shift Cipher là một
trong những phương pháp lâu đời nhất được sử
dụng để
mã hóa.
Thơng điệp được
mã hóa bằng cách
dịch chuyển (xoay vòng) từng ký tự đi k vị trí
trong bảng chữ cái. Phương pháp Shift Cipher Cho P = C = K = Z 26 . Với 0 ≤ K ≤ 25, ta định nghĩa e K = x + K mod 26
và d K = y - K mod 26 (x,y ∈ Z 26 ) NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES
trong đó 26 là số ký tự
trong bảng chữ cái La tinh, một cách tương tự cũng có thể định nghĩa cho một bảng chữ cái bất kỳ. Đồng thời ta dễ dàng thấy rằng
mã đẩy là một
hệ mật mã vì d K (e K (x)) = x với mọi x∈Z 26 . b.
Hệ KEYWORD-CEASAR
Trong hệ mã này khóa là một từ nào đó được chọn trước, ví dụ PLAIN. Từ này xác định dãy số ngun
trong Z 26 (15,11,0,8,13) tương
ứng với vị trí
các chữ cái của
các chữ được chọn
trong bảng chữ cái. Bây giờ bản rõ sẽ được
mã hóa bằng cách
dùng các hàm lập
mã theo thứ tự: e 15 , e 11 , e 0 , e 8 , e 13 , e 15 , e 11 , e 0 , e 8 , e, . với e K là hàm lập
mã trong hệ mã chuyển. c.
Hệ Mã Vng (SQUARE)
Trong hệ này
các từ khóa được
dùng theo một cách khác hẳn. Ta
dùng bảng chữ cái tiếng Anh (có thể bỏ đi chữ Q, nếu muốn tổng số
các chữ số là một số chính phương)
và đòi hỏi mọi chữ
trong từ khóa phải khác nhau. Bây giờ mọi chữ của bảng chữ cái được viết dưới dạng một hình vng, bắt đầu bằng từ khóa
và tiếp theo là những chữ cái còn lại theo thứ tự của bảng chữ. d.
Mã thế vị Một
hệ mã khác khá nổi tiếng .
Hệ mã này đã được sử
dụng hàng trăm năm nay. Phương pháp : Cho P = C = Z 26 . K gồm tất cả
các hốn vị có thể có của 26 ký hiệu 0, .,25. Với mỗi hốn vị π∈K, ta định nghĩa: e π (x) = π(x)
và định nghĩa d π (y) = π -1 (y) với π -1 là hốn vị ngược của hốn vị π.
Trong mã thế vị ta có thể lấy P
và C là
các bảng chữ cái La tinh. Ta sử
dụng Z 26
trong mã đẩy vì lập
mã và giải
mã đều là
các phép tốn đại số. e. Phương pháp Affine Cho P = C = Z 26
và cho K = {(a,b) ∈ Z 26 × Z 26 : gcd(a,26) = 1} Với K = (a,b) ∈ K, ta xác định e K (x) = ax+b mod 26
và d K = a -1 (y-b) mod 26 (x,y ∈ Z 26 ) Phương pháp Affine lại là một trường hợp đặc biệt khác của Substitution Cipher. Để có thể giải
mã chính xác
thơng tin đã được
mã hóa bằng hàm e k ∈ E thì e k phải là một song ánh. Như vậy, với mỗi giá trị y∈Z 26 , phương trình ax+b≡y (mod 26) phải có nghiệm duy nhất x∈Z 26 . Phương trình ax+b≡y (mod 26) tương đương với ax≡(y–b ) (mod 26). Vậy, ta chỉ cần khảo sát phương trình ax≡(y–b ) (mod 26) Định lý1.1: Phương trình ax+b≡y (mod 26) có nghiệm duy nhất x∈Z 26 với mỗi giá trị b∈Z 26 khi
và chỉ khi a
và 26 ngun tố cùng nhau. Vậy, điều kiện a
và 26 ngun tố cùng nhau
bảo đảm
thơng tin được
mã hóa bằng hàm e k có thể được giải
mã và giải
mã một cách chính xác. Gọi φ (26) là số lượng phần tử thuộc Z 26
và ngun tố cùng nhau với 26. NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES Định lý 1.2: Nếu ∏ = = m i e i i pn 1 với p i là
các số ngun tố khác nhau
và e i ∈ Z + , 1 ≤ i ≤ m thì ( ) ( ) ∏ = − −= m i e i e i ii ppn 1 1 φ
Trong phương pháp mã hóa Affine , ta có 26 khả năng chọn giá trị b, φ (26) khả năng chọn giá trị a. Vậy, khơng gian khóa K có tất cả n φ (26) phần tử. Vấn đề đặt ra cho
phương pháp mã hóa Affine Cipher là để có thể giải
mã được
thơng tin đã được
mã hóa cần phải tính giá trị phần tử nghịch đảo a –1 ∈ Z 26 . f. Phương pháp Vigenere
phương pháp mã hóa Vigenere sử
dụng một từ khóa (keyword) có độ dài m. Có thể xem như phương pháp
mã hóa Vigenere Cipher
bao gồm m phép
mã hóa Shift Cipher được áp
dụng ln phiên nhau theo chu kỳ. Khơng gian khóa K của phương pháp Vigenere có số phần tử là 26, lớn hơn hẳn phương pháp số lượng phần tử của khơng gian khóa K
trong phương pháp Shift Cipher. Do đó, việc tìm ra
mã khóa k để giải
mã thơng điệp đã được
mã hóa sẽ khó khăn hơn đối với phương pháp Shift Cipher. Phương pháp
mã hóa Vigenere Cipher Chọn số ngun dương m. Định nghĩa P = C = K = (Z 26 ) m K = { (k 0 , k 1 , ., k r-1 ) ∈ (Z 26 ) r } Với mỗi khóa k = (k0, k1, ., k r-1 ) ∈ K, định nghĩa: e k (x 1 , x 2 , ., x m ) = ((x 1 +k 1 ) mod 26, (x 2 +k 2 ) mod n, ., (x m +k m ) mod 26) d k (y 1 , y 2 , ., y m ) = ((y 1 –k 1 ) mod n, (y 2 –k 2 ) mod n, ., (y m –k m ) mod 26) với x, y ∈ (Z 26 ) m g.
Hệ mã Hill Phương pháp Hill Cipher được Lester S. Hill cơng bố năm 1929: Cho số ngun dương m, định nghĩa P = C = (Z 26 ) m . Mỗi phần tử x∈P là một bộ m thành phần, mỗi thành phần thuộc Z 26 . Ý tưởng chính của phương pháp này là sử
dụng m tổ hợp tuyến tính của m thành phần
trong mỗi phần tử x∈P để phát sinh ra m thành phần tạo thành phần tử y∈C. Phương pháp
mã hóa Hill Cipher Chọn số ngun dương m. Định nghĩa: P = C = (Z 26 ) m
và K là tập hợp
các ma trận m×m khả nghịch Với mỗi khóa K kkk kk kkk k mmmm m m ∈ = ,2,1, ,21,2 ,12,11,1 , định nghĩa: ( ) ( ) == mmmm m m mk kkk kk kkk xxxxkxe ,2,1, ,21,2 ,12,11,1 21 , .,, với x=(x 1 , x 2 , ., x m ) ∈ P
và d k (y) = yk –1 với y∈ C Mọi phép tốn số học đều được thực hiện trên Z n NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES h.
Mã hốn vị Những phương pháp
mã hóa nêu trên đều dựa trên ý tưởng chung: thay thế mỗi ký tự
trong thơng điệp nguồn bằng một ký tự khác để tạo thành
thơng điệp đã được
mã hóa. Ý tưởng chính của phương pháp
mã hốn vị là vẫn giữ ngun
các ký tự
trong thơng điệp nguồn
mà chỉ thay đổi vị trí
các ký tự; nói cách khác
thơng điệp nguồn được
mã hóa bằng cách sắp xếp lại
các ký tự
trong đó.
Phương pháp mã hóa mã hốn vị Chọn số ngun dương m. Định nghĩa: P = C = (Z 26 ) m
và K là tập hợp
các hốn vị của m phần tử {1, 2, ., m} Với mỗi khóa π ∈ K, định nghĩa: ( ) ( ) ( ) ( ) ( ) mm xxxxxxe ππππ , .,, .,, 2121 =
và ( ) ( ) ( ) ( ) ( ) m m yyyyyyd 111 , .,, .,, 21 21 −−− = πππ π với π –1 hốn vị ngược của π Phương pháp
mã hốn vị chính là một trường hợp đặc biệt của phương pháp Hill. Với mỗi hốn vị π của tập hợp {1, 2, ., m} , ta xác định
ma trận k π = (k i, j ) theo cơng thức sau: ( ) = = lại ngược hợptrường
trong nếu ,0 ,1 , ji k ji π
Ma trận k π là
ma trận
mà mỗi dòng
và mỗi cột có
đúng một phần tử mang giá trị 1,
các phần tử còn lại
trong ma trận đều bằng 0.
Ma trận này có thể thu được bằng cách hốn vị
các hàng hay
các cột của
ma trận đơn vị I m nên k π là
ma trận khả nghịch. Rõ ràng,
mã hóa bằng phương pháp Hill với
ma trận k π hồn tồn tương đương với
mã hóa bằng phương pháp
mã hốn vị với hốn vị π. k.
Mã vòng
Trong các hệ trước đều cùng một cách thức là
các phần tử kế tiếp nhau của bản rõ đều được
mã hóa với cùng một khóa K. Như vậy xâu
mã y sẽ có dạng sau: y = y 1 y 2 . = e K (x 1 ) e K (x 2 ) .
Các hệ mã loại này
thường được gọi là
mã khối (block cipher). Còn đối với
các hệ mã dòng. Ý tưởng ở đây là sinh ra một chuỗi khóa z = z 1 z 2 .,
và sử
dụng nó để
mã hóa xâu bản rõ x = x 1 x 2 .theo qui tắc sau: ) .()( . 2121 21 xexeyyy zz == I.3 Quy trình thám mã: Cứ mỗi phương pháp
mã hố ta lại có một phương pháp thám
mã tương
ứng nhưng ngun tắc
chung để việc thám
mã được thành cơng thì u cầu người thám
mã phải biết
hệ mã nào được
dùng hố. Ngồi ra ta còn phải biết được bản
mã và bản rõ ứng. nhìn
chung các hệ mã đối xứng là dễ cài đặt với tốc độ thực thi nhanh. Tính an tồn của nó phụ thuộc vào
các yếu tố : • Khơng gian khố phải đủ lớn • với
các phép trộn thích hợp
các hệ mã đối xứng có thể tạo ra được một
hệ mã mới có tính an tồn cao. •
bảo mật cho việc truyền khóa cũng cần được xử lý một cách nghiêm túc. NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES
Và một
hệ mã hố dữ liệu ra đời (DES). DES được xem như là chuẩn
mã hóa dữ liệu cho
các ứng dụng từ ngày 15 tháng 1 năm 1977 do Ủy ban Quốc gia về Tiêu chuẩn của Mỹ xác nhận
và cứ 5 năm một lần lại có chỉnh sửa, bổ sung. DES là một
hệ mã được trộn bởi
các phép thế
và hốn vị. với phép trộn thích hợp thì việc giải
mã nó lại là một bài tốn khá khó. Đồng thời việc cài đặt
hệ mã này cho những
ứng dụng thực tế lại khá thuận lợi. Chính những lý do đó nó được
ứng dụng rộng rãi của DES
trong suốt hơn 20 năm qua, khơng những tại Mỹ
mà còn là hầu như trên khắp thế giới. Mặc dù theo cơng bố mới nhất (năm 1998) thì mọi
hệ DES, với những khả năng của máy tính hiện nay, đều có thể bẻ khóa
trong hơn 2 giờ. Tuy nhiên DES cho đến nay vẫn là một mơ hình chuẩn cho những
ứng dụng bảo mật trong thực tế. II.
HỆ MÃ CHUẨN DES (Data Encryption Standard) II.1 Đặc tả DES Phương pháp DES
mã hóa từ x có 64 bit với khóa k có 56 bit thành một từ có y 64 bit. Thuật tốn
mã hóa bao gồm 3 giai đoạn: 1.Với từ cần
mã hóa x có độ dài 64 bit, tạo ra từ x 0 (cũng có độ dài 64 bit) bằng cách hốn vị
các bit
trong từ x theo một hốn vị cho trước IP (Initial Permutation). Biểu
diễn x 0 = IP(x) = L 0 R 0 , L 0 gồm 32 bit bên trái của x 0 , R 0 gồm 32 bit bên phải của x 0 L 0 R 0 x 0 Hình.1 Biểu
diễn dãy 64 bit x thành 2 thành phần L
và R 2 .Xác định
các cặp từ 32 bit L i , R i với 1≤ i ≤ 16theo quy tắc sau: L i = R i-1 R i = L i-1 ⊕ f (R i-1 , K i ) với ⊕ biểu
diễn phép tốn XOR trên hai dãy bit, K 1 , K 2 , ., K 16 là
các dãy 48 bit phát sinh từ khóa K cho trước (Trên thực tế, mỗi khóa K i được phát sinh bằng cách hốn vị
các bit
trong khóa K cho trước). L i - 1 R i - 1 f K i ⊕ L i R i Hình.2 Quy trình phát sinh dãy 64 bit L i R i từ dãy 64 bit L i-1 R i-1
và khóa K i 3.Áp
dụng hốn vị ngược IP -1 đối với dãy bit R 16 L 16 , thu được từ y gồm 64 bit. Như vậy, y = IP -1 (R 16 L 16 ) NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES Hàm f được sử
dụng ở bước 2 là Hàm f có gồm 2 tham số: Tham số thứ nhất A là một dãy 32 bit, tham số thứ hai J là một dãy 48 bit. Kết quả của hàm f là một dãy 32 bit.
Các bước xử lý của hàm f(A, J)như sau: • Tham số thứ nhất A (32 bit) được mở rộng thành dãy 48 bit bằng hàm mở rộng E. Kết quả của hàm E(A) là một dãy 48 bit được phát sinh từ A bằng cách hốn vị theo một thứ tự nhất định 32 bit của A,
trong đó có 16 bit của A được lập lại 2 lần
trong E(A). • Thực hiện phép tốn XOR cho 2 dãy 48 bit E(A)
và J, ta thu được một dãy 48 bit B. Biểu
diễn B thành từng nhóm 6 bit như sau:B = B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 • Sử
dụng 8
ma trận S 1 , S 2 , ., S 8 , mỗi
ma trận S i có kích thước 4×16
và mỗi dòng của
ma trận nhận đủ 16 giá trị từ 0 đến 15. Xét dãy gồm 6 bit B j = b 1 b 2 b 3 b 4 b 5 b 6 , S j (B j ) được xác định bằng giá trị của phần tử tại dòng r cột c của S j ,
trong đó, chỉ số dòng r có biểu
diễn nhị phân là b 1 b 6 , chỉ số cột c có biểu
diễn nhị phân là b 2 b 3 b 4 b 5 . Bằng cách này, ta xác định được
các dãy 4 bit C j = S j (B j ), 1 ≤ j ≤ 8. • Tập hợp
các dãy 4 bit C j lại. ta có được dãy 32 bit C = C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 . Dãy 32 bit thu được bằng cách hốn vị C theo một quy luật P nhất định chính là kết quả của hàm F(A, J)
các hàm được sử
dụng trong DES. Hốn vị khởi tạo IP sẽ như sau: IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 NGÔ THỊ TUYẾT HÀ – T012825 A B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 S 1 J E(A) S 2 S 3 S 4 S 5 S 6 S 7 S 8 C 1 C 2 C 3 C 4 C 5 C 6 C 7 C 8 f(A,J) E + P ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Điều này có nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là bit thứ hai của IP(x) v.v. Hốn vị ngược IP -1 sẽ là: IP -1 40 39 38 37 36 35 34 33 8 7 6 5 4 3 2 1 48 47 46 45 44 43 42 41 16 15 14 13 12 11 10 9 56 55 54 53 52 51 50 49 24 23 22 21 20 19 18 17 64 63 62 61 60 59 58 57 32 31 30 29 28 27 26 25 Hàm mở rộng E được đặc tả theo bảng sau: E – bảng chọn bit 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 Tám S-hộp
và hốn vị P sẽ được biểu
diễn như sau: S 1 14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13 S 2 15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9 NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES S 3 10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12 S 4 7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14 S 5 2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 0 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3 S 6 12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13 S 7 4 13 1 6 11 0 4 11 2 11 11 13 14 7 13 8 15 4 12 1 0 9 3 4 8 1 7 10 13 10 14 7 3 14 10 9 12 3 15 5 9 5 6 0 7 12 8 15 5 2 0 14 10 15 5 2 6 8 9 3 1 6 2 12 S 8 13 1 7 2 2 15 11 1 8 13 4 14 4 8 1 7 6 10 9 4 15 3 12 10 11 7 14 8 1 4 2 13 10 12 0 15 9 5 6 12 3 6 10 9 14 11 13 0 5 0 15 3 0 14 3 5 12 9 5 6 7 2 8 11 P 16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25 NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES K là xâu có độ dài 64 bit,
trong đó có 56 bit
dùng làm khóa
và 8 bit
dùng để kiểm tra sự bằng nhau (để phát hiện lỗi).
Các bit ở
các vị trí 8, 16, ., 64 được xác định, sao cho mỗi byte chứa số lẻ
các số 1. Vì vậy, từng lỗi có thể được phát hiện
trong mỗi 8 bit.
Các bit kiểm tra sự bằng nhau là được bỏ qua khi tính lịch khóa. 1. Cho khóa 64 bit K, loại bỏ
các bit kiểm tra
và hốn vị
các bit còn lại của K tương
ứng với hốn vị (cố định) PC-1. Ta viết PC-1(K) = C 0 D 0 , với C 0
bao gồm 28 bit đầu tiên của PC- 1(K)
và D 0 là 28 bit còn lại. 2. Với i nằm
trong khoảng từ 1 đến 16, ta tính C i = LS i (C i-1 ) D i = LS i (D i-1 )
và K i = PC-2(C i D i ), LS i biểu
diễn phép chuyển chu trình (cyclic shift) sang trái hoặc của một hoặc của hai vị trí tùy thuộc vào trị của i; đẩy một vị trí nếu i = 1, 2, 9 hoặc 16
và đẩy 2 vị trí
trong những trường hợp còn lại. PC-2 là một hốn vị cố định khác. Việc tính lịch khóa được minh
họa như hình vẽ sau:
Các hốn vị PC-1
và PC-2 được sử
dụng trong việc tính lịch khóa là như sau: PC-1 57 1 10 19 63 7 14 21 49 58 2 11 55 62 6 13 41 50 59 34 7 54 61 5 33 42 51 60 39 46 53 28 25 34 43 52 31 38 45 20 17 26 35 44 23 30 37 12 9 18 27 36 15 22 29 4 NGÔ THỊ TUYẾT HÀ – T012825 K PC-1 C 0 D 0 C 1 D 1 PC-2 K 1 LS 1 LS 1 LS 2 LS 2 . LS 16 LS 16 C 16 D 16 PC-2 K 16 [...]...
dụng để thám
các hệ DES nhiều vòng hơn Với
hệ DES 8-vòng đòi hỏi 214 bản rõ chọn
và các hệ 10-, 12-, 14-
và 16-vòng đòi hỏi có tương
ứng 224, 231, 239
và 247 bản
mã chọn Nên nói
chung là khá phức tạp
Các kỹ thuật thám
mã vi sai được Biham
và Shamir phát triển
Các phương pháp thám
mã DES khác đã được Matsui sử
dụng như là thám
mã tuyến tính NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN III
HỆ MÃ...ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES PC-2 14 3 23 16 41 30 44 46 17 28 19 7 50 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 Bây giờ ta sẽ hiển thị kết quả việc tính lịch khóa Như đã nhận xét ở trên, mỗi vòng sử
dụng khóa 48 bit tương
ứng với 48 bit
trong K
Các thành phần
trong các bảng sau sẽ chỉ ra
các bit
trong K được sử
dụng trong các vòng khác... hai test1 của
các trị cho
các bit khóa
trong J1 Trị
đúng của J1 cần phải nằm
trong giao của
các Shộp Nếu ta có một vài bộ ba như vậy, khi đó ta có thể mau chóng tìm được
các bit khóa
trong J1 Một cách rõ ràng hơn để thực hiện điều đó là lập một bảng của 64 bộ đếm biểu
diễn cho 64 khả năng của của 6 khóa bit
trong J1 Bộ đếm sẽ tăng mỗi lần, tương
ứng với sự xuất hiện của
các bit khóa
trong tập test1... còn cần xác nhận là,
các xác suất pi
trong đặc trưng là
các cặp bản rõ được xác định tùy ý (nhưng cố định) được đặc tả bằng xâu x-or, với 48 bit khóa cho một vòng lập
mã DES là có 248 NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES khả năng Do đó việc thám
mã sẽ nhằm vào việc xác định khóa cố định (nhưng chưa biết) Do đó cần cố chọn
các bản
mã ngẫu nhiên (nhưng
chúng có
các xâu x-or được... DES
HỆ MÃ DES 3 VỊNG Chương trình gồm hai phần: • Phần
Giao Diên (chứa
trong thư mục GiaoDien): Có chức năng xử lý
giao diện • Phần Xử Lý (chứa
trong thư mục XuLy): có chức năng hộ trợ
các hàm xử lý III.1
Giao Diện ( Package GiaoDien) Màn hình chính (Mainform.vb) Form lập
mã và giải
mã DES(Des.vb) Source code một số hàm chính
trong form giai
mã Des Imports System.IO NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN BẢO... x-or cho năm S-hộp đó
trong vòng 6 nhờ phương trình (4) Do đó giả sử ta tính: C1’C2’C3’C4’C5’C6’C7’C8’ = P-1(R6’ ⊕ 04000000) NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES mỗi Ci là xâu bit có độ dài 4 Khi đó với xác suất 1/16, thì sẽ dẫn đến là C2’, C5’, C6’, C7’
và C8’ tương
ứng là
các xâu x-or xuất của S2, S5, S6, S7
và S8
trong vòng 6
Các xâu nhập cho
các Shộp đó
trong vòng 6 có thể... ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES Tiếp theo, ta lập bảng
các trị
trong tám mảng bộ đếm cho mỗi cặp Ta sẽ minh
họa thủ tục với
các mảng đếm cho J1 từ cặp đầu tiên
Trong cặp này, ta có E1’= 101111
và C1’ = 1001 Tập: IN1(101111, 1001) = {000000, 000111, 101000, 101111} Do E1 = 000000 ta có: J1 ∈ test1(000000, 101111, 1001) = {000000, 000111, 101000, 101111} Do đó ta tăng
các trị 0, 7, 40
và 47
trong các. .. THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES Bây giờ ta sẽ mơ tả những ý tưởng cơ bản của kỹ thuật này Để đạt mục
đích thám mã, ta có thể bỏ qua hốn vị khởi tạo IP
và hốn vị đảo của nó (bởi vì điều đó khơng cần thiết cho việc thám mã) Như đã nhận xét ở trên, ta xét
các hệ DES n vòng, với n ≤ 16
Trong cài đặt ta có thể coi L0R0 là bản rõ
và LnRn như là bản
mã Thám
mã vi sai đòi hỏi phải so...
dụng trong các vòng khác nhau II.2 LẬP
MÃ DES Đây là ví dụ về việc lập
mã sử
dụng DES Giả sử ta
mã hóa bản rõ sau
trong dạng thập lục phân (Hexadecimal) 0123456789ABCDEF sử
dụng khóa thập lục phân 133457799BBCDFF1 Khóa
trong dạng nhị phân khơng có
các bit kiểm tra sẽ là: 00010010011010010101101111001001101101111011011111111000 Ap
dụng IP, ta nhận được L0
và R0 (trong dạng nhị phân) : L0 L1 = R0 = =... E1E2E3E4E5E6E7E8 J = J1J2J3J4J5J6J7J8
và ta cũng sẽ viết B*
và E* như vậy Bây giờ giả sử là ta đã biết
các trị Ej
và Ej* với một j nào đó, 1 ≤ j ≤ 8,
và trị của xâu xuất x-or cho Sj, Cj’ = Sj(Bj) ⊕ Sj(Bj* ) Khi đó sẽ là: Ej ⊕ Jj ∈ INj(Ej’, Cj’), NGÔ THỊ TUYẾT HÀ – T012825 ĐỒ ÁN
BẢO MẬT THÔNG TIN HỆ MÃ DES với Ej’ = Ej ⊕ Ej* Định nghĩa 3.4: Giả sử Ej
và Ej* là
các xâu bit độ dài 6,
và Cj’ là xâu bit độ dài 4 Ta