Một số hệ mó khúa cổ điển

Một phần của tài liệu MỘT SỐ DẠNG TẤN CÔNG HỆ THỐNG THÔNG TIN VÀ PHÒNG CHỐNG BẰNG KĨ THUẬT MẬT MÃ (Trang 31 - 43)

3. Cho điểm của cán bộ h-ớng dẫn:

2.1.4.3. Một số hệ mó khúa cổ điển

1/. Mó dịch chuyển

a/. Sơ đồ:

Đặt P = C = K = Z 26. Bản mó y và bản rừ x Z26. Với khúa k K, ta định nghĩa:

Hàm mó húa y = ek ( x ) = ( x + k ) mod 26. Hàm giải mó x = d k ( y ) = ( y – k ) mod 26.

b/. Vớ dụ:

Bản rừ chữ x= ”I L O V E Y O U” và khúa k = 3 Bản rừ số : 8 11 14 21 4 24 14 20

Với phộp mó húa y = e k ( x ) = ( x + k ) mod 26 = ( x + 3 ) mod 26, ta nhận đƣợc: Bản mó số: 11 14 17 24 7 1 17 23

Bản mó chữ: L O R Y H B R X

Giả mó: x = d y ( y ) = ( y – k ) mod 26 = ( y – 3 ) mod 26, ta nhận đƣợc bản rừ.

c/. Cỏc dạng tấn cụng vào mó dịch chuyển: Tỡm cỏch xỏc định khúa k.

Do chỉ cú 26 khúa nờn việc thỏm mó cú thể thực hiện theo kiểu “biết bản mó ” bằng duyệt tuần tự cỏc khúa cho tới khi nhận đƣợc bản rừ cú ý nghĩa.

Vớ dụ: khi thỏm mó cú trong tay một bản mó là: “LORYHBRX”. Thỏm mó sẽ thực hiện duyệt lần lƣợt khúa k = 1 -> k = 26 để tỡm ra bản rừ.

Với k = 3 đƣợc bản rừ:”ILOVEYOU” →Giải phỏp phũng trỏnh:

Mở rộng vựng khụng gian khúa lớn. Vớ dụ nhƣ bảng chữ cỏi Tiếng Việt cú thanh (gồm 94 kớ tự) thỡ việc thử tất cả cỏc khúa cũng lõu hơn bảng Tiếng Anh.

19

2/. Mó Affine

a/. Sơ đồ:

Đặt P = C = Z 26. Bản mó y và bản rừ x Z 26.

Tập khúa: K = {( a, b) với a, b Z26, gcd ( a, 26) = 1} Với khúa k = (a, b) K, ta định nghĩa:

Phộp mó húa: y = ek ( x ) = ( a * x + b ) mod 26. Phộp giải mó: x = dk ( y ) = a -1 ( y – b ) mod 26. b/. Vớ dụ: Bản rừ chữ: “C N T T” Chọn khúa: k = ( 5, 8) Bản rừ số: 2 13 19 19

Mó húa theo cụng thức y = ek ( x ) = ( a * x + b ) mod 26= ( 5 * 2 + 8 )mod 26 Bản mó số: 18 21 25 25

Bản mó chữ: S V Z Z Giải mó theo cụng thức:

x = d k ( y ) = a -1 ( y – b ) mod 26 = 5 -1 * ( y – 8 ) mod 26 = 21 * ( y – 8 ) mod 26. c. Cỏc dạng tấn cụng vào Affine: Tỡm cỏch xỏc định khúa k

Khúa mó Affine cú dạng k = ( a, b) với a, b Z26 và gcd (a, 26)= 1. Kớ tự mó y và kớ tự bản rừ x tƣơng ứng cú quan hệ: y = (a . x + b) mod 26

Thỏm mó sử dụng phƣơng phỏp sắc suất thống kờ, dựa vào tần suất xuất hiện của cỏc kớ tự trong Tiếng Anh. Từ đú biết đƣợc 2 cặp (x,y) khỏc nhau và cú đƣợc hệ phƣơng trỡnh tuyến tớnh 2 ẩn, giải hệ đú tỡm ra giỏ trị a, b tức là tỡm ra khúa k. Kết hợp với 12 số thuộc Z26 nguyờn tố với 26, nờn số khúa là: 12 * 26 = 312.

→Giải phỏp phũng trỏnh tấn cụng:

Mở rộng vựng khụng gian khúa lớn. Vớ dụ nhƣ bảng chữ cỏi tiếng Việt cú thanh (gồm 94 ký tự). Số kớ tự nhiều thỡ tần suất xuất hiện của cỏc chữ cỏi cũng khụng khỏc biệt nhau nhiều lắm, do đú để phỏt hiện đƣợc kớ tự “nổi bật” cũng khú khăn hơn. Và khi đú số khúa cú thể cú lớn hơn 312, việc thử tất cả cỏc trƣờng hợp sẽ lõu hơn.

20

2.1.4.4.Hệ mó húa DES.

DES ( Data Encryption Standard, hay Tiờu chuẩn Mó húa Dữ liệu) là một phƣơng phỏp mó húa đƣợc FIPS (Tiờu chuẩn Xử lý Thụng tin Liờn bang Hoa Kỳ) chọn làm chuẩn chớnh thức vào năm 1976. Sau đú chuẩn này đƣợc sử dụng rộng rói trờn phạm vi thế giới. Ngay từ đầu, thuật toỏn của nú đó gõy ra nhiều tranh cói, do nú bao gồm cỏc thành phần thiết kế mật, độ dài khúa tƣơng đối ngắn và nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) cú thể bẻ khúa. Do đú, DES đó đƣợc giới nghiờn cứu xem xột rất kỹ lƣỡng, việc này đó thỳc đẩy hiểu biết hiện đại về mật mó khối (block cipher) và cỏc phƣơng phỏp thỏm mó tƣơng ứng.

Hiện nay DES đƣợc xem là khụng đủ an toàn cho nhiều ứng dụng. Nguyờn nhõn chủ yếu là độ dài 56 bit của khúa là quỏ nhỏ. Khúa DES đó từng bị phỏ trong vũng chƣa đầy 24 giờ. Đó cú rất nhiều kết quả phõn tớch cho thấy những điểm yếu về mặt lý thuyết của mó húa cú thể dẫn đến phỏ khúa, tuy chỳng khụng khả thi trong thực tiễn. Thuật toỏn đƣợc tin tƣởng là an toàn trong thực tiễn cú dạng Triple DES (thực hiện DES ba lần), mặc dự trờn lý thuyết phƣơng phỏp này vẫn cú thể bị phỏ. Gần đõy DES đó đƣợc thay thế bằng AES (Advanced Encryption Standard, hay Tiờu chuẩn Mó húa Tiờn tiến).

1/. Mụ tả thuật toỏn

DES là thuật toỏn mó húa khối, nú xử lý từng khối thụng tin của bản rừ cú độ dài xỏc định và biến đổi theo những quỏ trỡnh phức tạp để trở thành khối thụng tin của bản mó cú độ dài khụng thay đổi, độ dài mỗi khối là 64 bit. DES cũng sử dụng khúa để cỏ biệt húa quỏ trỡnh chuyển đổi. Nhờ vậy, chỉ khi biết khúa mới cú thể giải mó đƣợc bản mó. Khúa dựng trong DES cú độ dài toàn bộ là 64 bit. Tuy nhiờn chỉ cú 56 bit thực sự đƣợc sử dụng; 8 bit cũn lại chỉ dựng cho việc kiểm tra. Vỡ thế, độ dài thực tế của khúa chỉ là 56 bit.

Một khối dữ liệu 64 bit đƣợc mó húa bằng việc cho qua một bảng hoỏn vị ban đầu IP(Initial Permutation), sau đú qua một quỏ trỡnh tớnh toỏn phức tạp cú sự tham gia của khúa K, đƣợc thực hiện và cuối cựng bản mó nhận đƣợc sau khi qua một bản hoỏn vị nghịch đảo (IP-1

21

Sơ đồ tổng quỏt nhƣ sau:

22

2/. Quỏ trỡnh mó húa:

64 bit của khối dữ liệu đầu vào đƣợc hoỏn vị bằng IP. Trong đú, bit thứ 58 của khối dữ liệu là bớt đầu tiờn, bớt thứ 50 của khối dữ liệu là bit thứ 2,… bớt cuối cựng của khối dữ liệu sau khi hoỏn vị là bớt thứ 7 của khối dữ liệu vào. Kết quả của phộp hoỏn vị ban đầu sẽ đƣợc chia làm 2 phần: L0R0 (L0 với 32bit là nửa trỏi, R0 với 32bit là nửa phải), sau đú thực hiện 16 lần lặp liờn tiếp theo cụng thức:

Li = R i - 1 và Ri = L i - 1 f ( R i – 1, K i)

và nhận đƣợc L 16 R 16 . Trong đú f đƣợc gọi là hàm mật mó. Hàm f cú 2 đối là 2 khối bit, một là R i – 1 với 32 bit và hai là Ki với 48 bit:

Kết quả của 16 lần lặp liờn tiếp là một khối 64 bit (R 16 L 16) đƣợc gọi là dữ liệu tiền kết quả, khối 64 bit này đƣợc cho qua một hoỏn vị nghịch đảo IP-1

.

23

Hàm mật mó f:

Hàm f đƣợc tớnh nhƣ sau: f ( R i - 1, K i )=P ( S ( E ( R i - 1) Ki ) )

Hàm E là hoỏn vị mở rộng. Hàm E thực hiện chức năng mở rộng khối 32bit thành khối 48 bit. E(R) cú 3 bit đầu lần lƣợt là bit thứ 32, 1, 2 của R…2 bit cuối là bit 32 và bit 1 của R.

24

Sau đú tớnh E(R) K với K là khúa 48 bit. Kết quả của phộp cộng modulo 2 này sẽ đƣợc viết thành 8 nhúm, mỗi nhúm 6 bit dạng B = B1 B2 B3 B4 B5 B6 B7 B8. Mỗi nhúm Br 6 bit (1 ≤ r ≤ 8) đƣợc đƣa qua một hộp đen Sr (S1, S2…S8) để nhận đƣợc Sr ( Br ) 4 bit đầu ra. Mỗi hộp Sr là một ma trận 4 * 16 trong đú mỗi phần tử của Sr là một số nguyờn nằm trong khoảng 0 ->15(cú thể biểu diễn tối đa đến 4 bit nhị phõn).

Với mỗi Br = b1 b2 b3 b4 b5 b6 , ta tớnh S r ( Br) nhƣ sau: b1 b6 là biểu diễn nhị phõn của số hiệu hàng i trong Sr ,b2 b3 b4 b5 là biến nhị phõn của số hiệu j trong Sr.

Cr = Sr ( Br ) là phần tử tại hàng i cột j của Sr. Vớ dụ:

Ta tớnh Sr (B) với B=011011 thỡ hàng i=01=1, cột j= 1101=13.

Xỏc định tại cột S1 giỏ trị tại hàng 1, cột 13 cú giỏ trị là 5 do đú C= 5= 0101.

C = C1 C2 C3 C5 C6 C7 C8 (32 bit) đƣợc cho qua một hoỏn vị P và nhận đƣợc kết quả của hàm f: f = P( C )

25

26 PC 1: PC 2 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4

Sơ đồ sinh khúa K.

3/. Quỏ trỡnh giải mó.

Quy trỡnh giải mó của DES tƣơng tự nhƣ quy trỡnh lập mó, nhƣng theo trỡnh tự khúa ngƣợc lại: k16, k15, …, k1.

27

4/. Vấn đề thỏm mó hệ mó húa DES

Mặc dự đó cú nhiều nghiờn cứu về phỏ mó DES hơn bất kỳ phƣơng phỏp mó húa khối nào khỏc nhƣng phƣơng phỏp phỏ mó thực tế nhất hiện nay vẫn là tấn cụng kiểu duyệt toàn bộ. Nhiều đặc tớnh mó húa của DES đó đƣợc xỏc định và từ đú ba phƣơng phỏp phỏ mó khỏc đƣợc xỏc định với mức độ phức tạp nhỏ hơn tấn cụng duyệt toàn bộ. Tuy nhiờn cỏc phƣơng phỏp này đũi hỏi một số lƣợng bản rừ quỏ lớn (để tấn cụng lựa chọn bản rừ) nờn hầu nhƣ khụng thể thực hiện đƣợc trong thực tế.

a/. Tấn cụng kiểu duyệt toàn bộ

Đối với bất cứ phƣơng phỏp mó húa nào, kiểu tấn cụng cơ bản và đơn giản nhất là tấn cụng kiểu duyệt toàn bộ: thử lần lƣợt tất cả cỏc khúa cú thể cho đến khi tỡm ra khúa đỳng. Độ dài của khúa sẽ xỏc định số lƣợng phộp thử tối đa cần thực hiện và do đú thể hiện tớnh khả thi của phƣơng phỏp.

Trong trƣờng hợp của DES, nghi ngờ về độ an toàn của nú đó đƣợc đặt ra ngay từ khi nú chƣa trở thành tiờu chuẩn. Ngƣời ta cho rằng chớnh NSA đó ủng hộ (nếu khụng muốn núi là thuyết phục) IBM giảm độ dài khúa từ 128 bit xuống 64 bit và tiếp tục xuống 56 bit. Điều này dẫn đến suy đoỏn rằng NSA đó cú hệ thống tớnh toỏn đủ mạnh để phỏ vỡ khúa 56 bit ngay từ những năm 1970.

b/. Cỏc kiểu tấn cụng hiệu quả hơn duyệt toàn bộ:

Hiện nay cú 3 kiểu tấn cụng cú khả năng phỏ vỡ DES (với đủ 16 chu trỡnh) với độ phức tạp thấp hơn duyệt toàn bộ: phỏ mó vi sai (differential cryptanalysis - DC), phỏ mó tuyến tớnh (linear cryptanalysis - LC) và phỏ mó Davies (Davies' attack). Tuy

nhiờn cỏc dạng tấn cụng này chƣa thực hiện đƣợc trong thực tế.

Phỏ mó vi sai

Eli Biham và Adi Shamir tỡm ra vào cuối những năm 1980 mặc dự nú đó đƣợc IBM và NSA biết đến trƣớc đú. Để phỏ mó DES với đủ 16 chu trỡnh, phỏ mó vi sai cần đến 247 văn bản rừ. DES đó đƣợc thiết kế để chống lại tấn cụng dạng này.

28

Phỏ mó tuyến tớnh

Mitsuru Matsui tỡm ra năm 1993, cần 243 bản rừ, phƣơng phỏp này đó đƣợc Matsui thực hiện và là thực nghiệm phỏ mó đầu tiờn đƣợc cụng bố. Khụng cú bằng chứng chứng tỏ DES cú khả năng chống lại tấn cụng dạng này.

Một phƣơng phỏp tổng quỏt hơn, phỏ mó tuyến tớnh đa chiều (multiple linear cryptanalysis), đƣợc Kaliski và Robshaw nờu ra vào năm 1994, Biryukov và cộng sự tiếp tục cải tiến vào năm 2004. Nghiờn cứu của họ cho thấy mụ phỏng tuyến tớnh đa chiều cú thể sử dụng để giảm độ phức tạp của quỏ trỡnh phỏ mó tới 4 lần (chỉ cũn 241 bản rừ).

Kết quả tƣơng tự cũng cú thể đạt đƣợc với kiểu tấn cụng tuyến tớnh kết hợp với lựa chọn bản rừ (Knudsen and Mathiassen, 2000). Junod (2001) đó thực hiện một số thực nghiệm để tỡm ra độ phức tạp thực tế của phỏ mó tuyến tớnh và thấy rằng quỏ trỡnh thực tế nhanh hơn dự đoỏn: 239ì241.

Phỏ mó Davies:

Trong khi phỏ mó vi sai và phỏ mó tuyến tớnh là cỏc kỹ thuật phỏ mó tổng quỏt, cú thể ỏp dụng cho cỏc thuật toỏn khỏc nhau, phỏ mó Davies là một kỹ thuật dành riờng cho DES.

Dạng tấn cụng này đƣợc đề xuất lần đầu bởi Davies vào cuối những năm 1980 và cải tiến bởi Biham và Biryukov (1997). Dạng tấn cụng mạnh nhất đũi hỏi 250 văn bản rừ, độ phức tạp là 250 và cú tỷ lệ thành cụng là 51%.

Ngoài ra cũn cú những kiểu tấn cụng dựa trờn bản thu gọn của DES - DES với ớt hơn 16 chu trỡnh. Những nghiờn cứu này cho chỳng ta biết số lƣợng chu trỡnh cần cú và ranh giới an toàn của hệ thống.

Năm 1994, Langford và Hellman đề xuất phỏ mó vi sai - tuyến tớnh (differential- linear cryptanalysis) kết hợp giữa phỏ mó vi sai và tuyến tớnh.

29

c/. Một vài đặc điểm về cỏch giải mó

DES cú tớnh chất bự: trong đú là phần bự của x theo từng bớt (1 thay bằng 0 và ngƣợc lại). EK là bản mó húa của E với khúa K. P và C là văn bản rừ (trƣớc khi mó húa) và văn bản mó (sau khi mó húa). Do tớnh bự, ta cú thể giảm độ phức tạp của tấn cụng duyệt toàn bộ xuống 2 lần (tƣơng ứng với 1 bớt) với điều kiện là ta cú thể lựa chọn bản rừ.

Ngoài ra DES cũn cú 4 khúa yếu (weak keys). Khi sử dụng khúa yếu thỡ mó húa (E) và giải mó (D) sẽ cho ra cựng kết quả:

EK(EK(P)) = P, EK = DK

Tuy nhiờn cú thể dễ dàng trỏnh đƣợc những khúa này khi thực hiện thuật toỏn, cú thể bằng cỏch thử hoặc chọn khúa một cỏch ngẫu nhiờn. Khi đú khả năng chọn phải khúa yếu là rất nhỏ.

DES đó đƣợc chứng minh là khụng tạo thành nhúm. Núi một cỏch khỏc, tập hợp {EK} (cho tất cả cỏc khúa cú thể) theo phộp hợp thành khụng tạo thành một nhúm hay gần với một nhúm (Campbell and Wiener, 1992). Vấn đề này vẫn cũn để mở và nếu nhƣ khụng cú tớnh chất này thỡ DES cú thể bị phỏ vỡ dễ dàng hơn và việc ỏp dụng DES nhiều lần (vớ dụ nhƣ trong Triple DES (3 DES)) sẽ khụng làm tăng thờm độ an toàn của DES.

30

Một phần của tài liệu MỘT SỐ DẠNG TẤN CÔNG HỆ THỐNG THÔNG TIN VÀ PHÒNG CHỐNG BẰNG KĨ THUẬT MẬT MÃ (Trang 31 - 43)

Tải bản đầy đủ (PDF)

(92 trang)