1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

39 698 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu và thực hiện 1 số test để đánh giá độ an toàn của DES
Trường học Trường Đại Học
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề tài
Định dạng
Số trang 39
Dung lượng 356 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu tham khảo chuyên ngành tin học Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES

Trang 1

LỜI MỞ ĐẦU

Máy tính được phát minh vào năm 1942, lúc đó nó nằm ngoài tầm taycủa các tổ chức, cá nhân vì nó yêu cầu cao về chi phí, kích cỡ, năng lượng…Ngày nay, máy tính đã rất phổ biến và người ta không sử dụng một máy tính đơn

lẻ nữa mà kết nối các máy tính với nhau nhằm tăng khả năng làm việc, trao đổi

và cập nhật thông tin Các máy tính được kết nối với nhau được gọi là mạng.Trên phạm vi toàn cầu người ta dung mạng Internet, ở mỗi quốc gia đều cónhững mạng riêng của minh (Intranet) với rất nhiều những mạng mang tính bộphận( có thể là LAN( Local Area Network- Mạng cục bộ) hoặc WAN( WideArea Network- Mạng diện rộng) hoặc MAN(Metropolitan Area Network- Mạngvùng Thành phố)) Nhiều dịch vụ của mạng như : thư điện tử, chuyển và nhậntiền, thương mại điện tử… đã được sử dụng rộng rãi

Khi tham gia vào mạng, vấn đề quan trọng đặt ra là làm thế nào để bảomật thông tin, dữ liệu Thông tin trên mạng dù đang chuyển hay được lưu trữ đềucần được bảo vệ Hoặc các thông tin đó cần được giữ bí mật hoặc chúng phải chophép người ta kiểm tra để tin tưởng rằng chúng không bị sửa đổi so với dạngnguyên thuỷ của mình

Trước yêu cầu đó một số giải pháp kỹ thuật đã được xây dựng nhằm đảmbảo tính an toàn dữ liệu tại nơi lưu trữ cũng như dữ liệu được truyền qua mạng.Các giải pháp đó là người ta sử dụng các hệ mật Có các hệ mật cổ điển như : mật

Trang 2

mã thay thế, mật mã dịch chuyển, mật mã Affine, mật mã Vigenere…, và các hệmật hiện đại như : mật mã khoá công khai RSA, chữ ký số, chuẩn mã dữ liệuDES… Nhưng khi sử dụng các hệ mật để mã hoá dữ liệu cần phải quan tâm đến

độ an toàn của các hệ mật mà mình đã sử dụng

Trong đề tài này tôi nghiên cứu về cách đánh giá độ an toàn của chuẩn mã

dữ liệu DES Để kiểm tra đánh giá độ an toàn của DES ta có hai cách Đó làphương pháp tấn công DES và phương pháp đánh giá các tính chất của DES Sựkhác nhau giữa hai phương pháp này là một phương pháp thì tấn công trực tiếpvào DES, nếu phá vỡ DES thì ta có thể nói rằng DES không an toàn và ngược lại;phương pháp đánh giá tính chất thì kiểm tra các tính chất của DES, nếu thoả mãnđiều kiện thì có thể nói là an toàn và ngược lại Và tôi đi sâu nghiên cứu phươngpháp đánh giá các tính chất của DES

2

Trang 3

độ tin cậy thấp và khó chuyển đổi giữa các hệ máy tính khác nhau.

Ngoài việc C được dùng để viết hệ điều hành UNIX, người ta nhanh chóngnhận ra sức mạnh của C trong việc xử lý các vấn đề hiện đại của tin học: xử lý số,văn bản, cơ sở dữ liệu, lập trình hướng đối tượng C đã trở thành một chuẩn mặcnhiên

Liên quan đến sự hình thành và phát triển của ngôn ngữ, có thể kể đến một

số sự kiện sau:

- Năm 1978, cuốn giáo trình dạy lập trình bằng ngôn ngữ C “The Cprogramming langguage” do chính 2 tác giả của ngôn ngữ Brian W.Kernighan vàDennis M.Ritchie biên soạn đã được xuất bản và được phổ biến rộng rãi

- Năm 1983 một tiểu ban của viện tiêu chuẩn quốc gia Mỹ (ANSI) đượcthành lập nhằm đề xuất ra một chuẩn cho ngôn ngữ C

Trang 4

- Năm 1988 chuẩn ANSI C chính thức được ban hành Chuẩn này bao gồmcác mô tả về ngôn ngữ theo Brian W.Kernighan và Dennis M.Ritchie và quy địnhcác thư viện chuẩn của ngôn ngữ C, nhờ đó tăng tính khả chuyển của chương trìnhviết bằng C.

- Trong thế giới máy vi tính có các hệ chương trình dịch C nổi tiếng như:Turbo C, Borland C của Borland Inc; MSC, VC của Microsoft Corp; Lattice C củaLattice

I 2 Các tính chất đặc trưng của ngôn ngữ

C là một ngôn ngữ lập trình vạn năng được dùng để viết các hệ điều hànhnhư UNIX cũng như các chương trình ứng dụng như quản lý văn bản, cơ sở dữliệu

C là một ngôn ngữ có mức độ thích nghi cao, gọn và không nhất thiết phảicần tới hợp ngữ

C độc lập với bất kỳ kiến trúc máy đặc thù nào và với một chút thận trọngvẫn dễ dàng viết được các chương trình “khả chuyển” (portability) tức là nhữngchương trình có thể chạy mà không cần phải thay đổi gì khi có sự thay đổi về phầncứng

C được sử dụng rộng rãi trong các lĩnh vực chuyên nghiệp vì đáp ứngđược các yêu cầu: hiệu quả cao trong soạn thảo chương trình và dịch ra mã máy;tiếp cận trực tiếp với các thiết bị phần cứng

C không đưa ra các phép toán xử lý trực tiếp các đối tượng hợp thành như

là đối tượng toàn vẹn; không xác định bất kỳ một phương tiện cấp phát bộ nhớnào khác ngoài cấp phát tĩnh, cấp phát động theo nguyên tắc xếp chồng cho cácbiến cục bộ của hàm; không cung cấp cơ chế I/O, không có phương pháp truynhập tệp Tất cả các cơ chế này được thực hiện bằng những lời gọi hàm trong thưviện

4

Trang 5

C đưa ra các kết cấu điều khiển cơ bản cần cho các chương trình có cấutrúc như: nhóm tuần tự các câu lệnh, chọn quyết định (if); chu trình với phép kiểmtra kết thúc ở đầu (for, while), hoặc ở cuối (do while); và việc lựa chọn một trongcác trường hợp có thể (switch).

C cung cấp con trỏ và khả năng định địa chỉ số học Các đối của hàm đượctruyền bằng cách sao chép giá trị đối và hàm được gọi không thể thay đổi được giátrị của đối hiện tại

C cho phép hàm được gọi đệ quy và các biến cục bộ của hàm sẽ “tự động”sinh ra hoặc tạo mới với mỗi lần gọi mới Các định nghĩa hàm không được lồngnhau nhưng các biến có thể được khai báo theo kiểu cấu trúc khối Các hàm có thểdịch tách biệt Các biến có thể trong hoặc ngoài hàm Hàm chỉ

biết được các biến ngoài trong cùng một tệp gốc, hoặc biến tổng thể extern Cácbiến tự động có thể đặt trong các thanh ghi để tăng hiệu quả, nhưng việc khai báothanh ghi chỉ là một hướng dẫn cho chương trình dịch và không liên quan gì đếncác thanh ghi đặc biệt của máy

C không phải là một ngôn ngữ có kiểu mạnh mẽ theo nghĩa của PASCALhoặc ALGOL/68 Nó tương đối thoải mái trong chuyển đổi dữ liệu nhưng không

tự động chuyển các kiểu dữ liệu một cách phóng túng như của PL/I Các chươngtrình dịch hiện có đều không đưa ra cơ chế kiểm tra chỉ số mảng, kiểu đối số…

Mặc dù vậy, C vẫn còn tồn tại một số nhược điểm như một số phép toán cóthứ tự thực hiện chưa đúng; một số phần cú pháp có thể làm tốt hơn; hiện có nhiềuphiên bản của ngôn ngữ, chỉ khác nhau ở một vài chi tiết

Tóm lại, C vẫn tỏ ra là một ngôn ngữ cực kỳ hiệu quả và đầy sức diễn cảmđối với nhiều lĩnh vực ứng dụng lập trình Hơn nữa, ta biết rằng hệ mật chuẩn haychữ ký số luôn cần một bộ số rất lớn tức là kích cỡ của không gian khoá rất lớn

Trang 6

khoảng trên 300 số thập phân Do đó, ngôn ngữ C đủ mạnh để có thể đáp ứngđược điều đó.

CHƯƠNG II CÁC HỆ MẬT CỔ ĐIỂN

II.1 Các hệ mật

Mục tiêu cơ bản của mật mã là cho phép hai người, thường được đề cậpđến như Alice và Bob, liên lạc trên kênh không an toàn theo cách mà đối thủ nhưOscar không thể hiểu cái gì đang được nói Kênh này có thể là đường điện thoạihoặc máy tính chẳng hạn

Định nghĩa : Hệ mật là một bộ năm thành phần (P,C,K,E,D) thoả mãn các

điều kiện sau:

Trang 7

Điều kiện 4 là điều kiện chính Nó có nghĩa là nếu bản rõ x ( plaintext )được mã hoá sử ek và sau đó bản mã ( ciphertext ) kết quả được giải mã sử dụng

dk thu được kết quả là bản rõ nguyên bản x

Giả sử, Alice muốn gửi cho Bob một thông báo nào đấy mà không chongười khác xem, thông báo đó có thể là bài tiếng Anh, dữ liệu sô v.v…có cấutrúc tuỳ ý Thông tin đó được gọi là bản rõ

Alice và Bob phải thống nhất chọn một hệ mật và chọn khoá ngẫu nhiênk K Họ làm điều này một cách an toàn, chẳng hạn khi họ ở cùng một chỗ vàkhông bị Oscar quan sát hoặc họ dùng kênh an toàn khi ở xa nhau

Sau đó, giả sử Alice muốn gửi thông báo cho Bob trên kênh không antoàn Thông báo đó là dòng:

x = x1, x2,…, xn với n  1, xi  P, 1 i nMỗi xi được mã hoá sử dụng quy tắc ek được định rõ bởi khoá định trước

K Từ đó, Alice tính:

yi = ek( xi), với 1 i n, và bản mã thu được là dòng:

y = y1, y2,…, ynAlice gửi nó trên kênh, Oscar dù thấy bản mã này trên kênh không antoàn cũng không thể xác định được bản rõ là gì Khi Bob nhận được y = y1, y2,…,

yn, sẽ sử dụng dk để giả mã, thu được bản rõ ban đầu x = x1,x2,…,xn

Rõ ràng, với x1  x2 thì ek(x1)  ek(x2) Nếu y = ek(x1)= ek(x2) khi x1 = x2thì Bob không biết được y phải gải mã cho x1 hay x2 Chú ý rằng P = C thì mỗihàm mã hoá ek là một phép hoán vị Có nghĩa là, nếu tập các bản rõ và bản mã làtương tự thì mỗi hàm mã hóa chỉ sắp xếp ( hay hoán vị ) lại các phần tử của tậpnày

Oscar

Trang 9

Để giải mã, Bob thực hiện theo trình tự ngược lại Trước hết chuyển bản

mã thành dãy các số, tiếp theo trừ mỗi giá trị cho 11( rút gọn cho modulo 26) vàcuối cùng chuyển dãy số thành dãy chữ

Một hệ mật được sử dụng trong thực tế, nó phải thoả mãn hai tính chất sau:1) ek và dk khi tác động vào x hoặc y là có hiệu quả tính toán

2) Một đối thủ khi có bản mã y, sẽ không thể xác định khoá k được sử dụnghoặc bản rõ x

II.1.2 Mật mã thay thế

Định nghĩa : Cho P = C = Z26 , K gồm tất cả các hoán vị trên tập 26 phần

tử từ 0,1,…,25 Với mỗi hoán vị   K, xác định :

e(x) = (x) và d(y) = -1(y) với -1 là hoán vị ngược của 

Ví dụ :

 =

e(a) = (a) = x

e(b) = (b) = n

Trang 10

E(x) = ax + b mod 26 với a,b  Z26Hàm này được gọi là hàm affine

Khi a = 1 ta được mật mã dịch chuyển

Để giải mã được, hàm affine phải song ánh, nghĩa là với mọi y  Z26 ,phương trình ax + b = y (mod 26) phải có nghiệm duy nhất Đồng dư thức nàytương đối với : ax = y – b (mod 26) Phương trình này có nghiệm duy nhất khi vàchỉ khi (a,26) = 1

Để tìm nghiệm x, trước tiên ta tìm số a-1  a26 thoả mãn : a.a-1 = 1 mod 26 Khi đó d(y) = a-1(y - b) mod (26)

Định nghĩa : Cho P = C = Z26 và K = {(a,b)  Z26 * Z26 : (a,26) = 1}

Trang 11

với -1 là hoán vị ngược của 

Ví dụ : Giả sử m = 6 và khoá là hoán vị sau:

Trang 12

Trước tiên gom thành nhóm 6 phần tử : H O O F C H I S M I N H

x1 = h, x2 = o, x3 = o, x4 = f, x5 = c, x6 = hkhi đó nhóm thứ nhất được mã thành x3 x5 x1 x6 x4 x2 = O C H H F O

- Mật mã tuần hoàn với chu kỳ d : zi+d = zi , i  1

Mật mã dòng được chú ý nhiều hơn cả là trường hợp P = C = Z2 Khi đóphép mã hoá và giải mã là cộng theo modulo 2

e2(x) = x+z mod 2

d2(y) = y- z mod 2

- Mật mã tự động

12

Trang 13

Định nghĩa : P = C = K = Z26, z1 = k,zi = xi-1 (i2)

8 7 0 8 17 15 7 14 13 6 5

Cộng dãy khoá và dãy rõ : yi = xi + zi mod 26, với i= 1,2,… ta được

15 7 8 25 6 22 21 1 19 11

và chuyển thành chữ : P H I Z G W V B T L

Với bản mã này và k = 8, ta giải mã như sau :

Chuyển bản mã thành dãy số và trừ lần lượt

15 7 8 25 6 22 21 1 19 11

8 7 0 8 17 15 7 14 13 6

7 0 8 17 15 7 14 13 6 5chuyển dãy số thành dãy chữ : H A I R P H O N G F

Trên đây là các hệ mật cổ điển thường được dùng để mã hoá thông tin khimuốn gửi đi trên các kênh không an toàn hay thông tin đang được lưu trữ cố định

Trang 14

CHƯƠNG III CHUẨN MÃ DỮ LIỆU DES ( DATA ECRYPTION STANDARD )

Chuẩn mã dữ liệu ( Data Ecryption Standard ) được uỷ ban tiêu chuẩn quốcgia Hoa Kỳ ( the National Bureau ò Standard ) chấp nhận và được công bố lầnđầu

tiên trên công báo liên bang ngày 17 – 03 – 1975 Sau các cuộc thảo luận côngkhai, DES được chấp nhận như cho các ứng dụng bảo mật vào ngày 15–01- 1977.DES trở thành một hệ bảo mật được sử dụng rộng rãi nhất trên thế giới

III.1 Mô tả DES

DES mã hoá một dòng bit rõ x có độ dài 64 với k là dòng 56 bit, đưa ra bản

mã y cũng là một dãy bit có độ dài 64

Trang 15

a Cho bản rõ x, ta tinh đợc x0 qua việc

hoán vị các bit của x theo hoán vị đầu IP :

Áp dụng phộp hoỏn vị ngược IP-1 cho L16R16 ta tớnh được bản mó y :

y = IP-1( L16 R16 ) , chỳ ý đảo ngược vị trớ của L16 và R16

III.1.2 Hàm f( A, J )

Đầu vào của hàm f là đối số A, một dãy 32 bit, và đối số thứ hai là J, là dãy

48 bit, kết quả thu đợc là dãy có độ dài 32 bit Các bớc đợc

k i

Trang 16

theo hàm mở rộng E E( A ) gồm 32 bit

của A, đợc hoán vị theo cách cụ thể và

với 16 bit của các bit xuất hiện hai lần

Trang 19

III.1.3 Lợc đồ tạo hệ thống khoá

Cuối cùng ta cần mô tả sự tính toán lợc đồ khoá từkhoá K Khoá là một dãy 64 bit với 56 bit đầu vào và 8 bit làcác bit kiểm tra (là các bit ở vị trí thứ 8, 16,24,32, 48, 56,64) Các bit kiểm tra này sẽ đợc bỏ qua trong quá trình tạokhoá Cho 56 bit này hoán vị theo bảng PC-1 ta sẽ tìm đợc

C0D0 với C0 là 28 bit đầu tiên của PC-1, D0 là 28 bit còn lại

Trang 20

Nh vậy ta đã có một thuật toán hoàn chỉnh về mã hoá dữ liệu theo tiêuchuẩn DES.

III.2 Giải mó DES

Tương tự như mó hoỏ, để giải mó một dóy kớ tự đó bị mó hoỏ ta cũng làmtheo trỡnh tự cỏc bước như trờn Tuy nhiờn, hệ thống khoỏ lỳc này đó được tạotheo chiều ngược lại

III.2.1 Thuật toỏn giải mó

Tương tự như vậy cho đến khi I = 16, ta sẽ cú

L’16 = R’15 = L1 = R0R’16 = L’15 ^ f(R’15,k1) = R’1 ^ f(L1,k1) = L0 ^ f(R0,k1) ^ f(R0,k1) = L0

20

Trang 21

L’16 = R0, R’16 = L0

x = IP-1(R’16L’16) = IP-1(R0L0) = IP-1(x0)

Từ đó ta thấy, thuật toán giải mã chỉ khác với thuật toán mã hoá ở chỗ tạo

hệ thống khoá Nếu mã hoá tạo từ k1,….,k16 thì giải mã tạo hệ thống khoá từ k16,

sử dụng đồng hồ tốc độ là 250MHz

Trong năm 1991, có 45 phần cứng và chương trình cài sẵn thi hành DES đãđược Uỷ ban tieuu chuẩn quốc gia Mĩ ( the National Bureau of Standards ) tin cậy.Một ứng dụng quan trọng của DES là ứng dụng cho văn bản giao dịch ngân hàng

sử dụng các tiêu chuẩn được hiệp hội các ngân hàng Mĩ phát triển, DES được sửdụng để mã hoá các số nhận dạng cá nhân ( PINs ) và văn bản về tàI khoản đượcmáy thu ngân thực hiện ( ATMs )

III.3.2 Các mẫu hoạt động của DES

Đầu vào của DES chỉ có 8 byte, vậy mà văn bản cần mã hoá lại có thể rấtdài, cỡ vài Kbyte chẳng hạn Để giải quyết vấn đề này, người ta đẫ đề ra bốn mẫuhoạt động cho DES là : Electronic CodeBook mode ( ECB ), Cipher FeedBackmode ( CFB ), Cipher Block Chaining mode ( CBC ) và Output FeedBack mode

Trang 22

( OFB ).

+ ECB :

Đây là việc sử dụng bình thường mật mã khối Trước hết chia dãy ký tựtrong thông báo thành các khối 8 ký tự liên tiếp x1,x2,…, mỗi xi đều được mã bởicùng khoá k, cuối cùng được một dãy các khối mã 8 bit là y1,y2,… Việc giải mãđược tiến hành theo trình tự ngược lại

Việc giải mã như đối với mật mã dòng

- Đối với CFB, có sự khác nhau nhất định

Trang 23

ECB và OFB : việc thay đổi một khối 64 bit rõ xi khiến cho khối mã yitương ứng cũng thay đổi theo, nhưng các khối mã khác không bị ảnh hưởng.Trong một vài hoàn cảnh, đây là một tính chất tốt, chẳng hạn OFB thường đượcdùng để mã thông tinh truyền qua vệ tinh.

CBC và CFB : khối rõ xi bị thay đổi thì yi và tất cả các khối mã tiếp theo sẽ

bị ảnh hưởng Tính chất này có nghĩa là CBC, CFB có ích cho mục đích xác thực

CHƯƠNG IV ĐÁNH GIÁ ĐỘ AN TOÀN

Khi ta mã hoá thông tin bằng các hệ mật không có nghĩa là ta đã yên tâmthông tin đó không bị mất mát, sai lệch so với ban đầu khi lưu trữ hay truyền quamạng Mà ta phải có biện pháp kiểm tra xem hệ mật đó có an toàn không Đối với

mã chuẩn dữ liệu DES cũng vậy, khi mã hoá các thông tin đồng thời ta cũng phảikiểm tra độ an toàn của nó Có hai cách để kiểm tra độ an toàn của DES, đó là :phương pháp tấn công DES và phương pháp đánh giá các tính chất của DES Tuy

Trang 24

nhiên trong đề tài nay tập trung nghiên cứu phương pháp đánh giá các tính chấtcủa DES để kiểm tra độ an toàn.

IV.1 Phương pháp lượng sai tấn công DES 3 vòng

Có nghĩa là ta tấn công vào DES, nếu phá vỡ DES thì có nghĩa là không antoàn

Phương pháp lượng sai tấn công DES là phương pháp nổi tiếng do Biham

và Shamir giới thiệu đây là sự tấn công bản rỗ lựa chọn Mặc dù nó còn đòi hỏikhá nhiều cặp bản rõ lựa chọn trong việc phá vỡ đủ 16 vòng DES thông thường,phương pháp này thành công trong việc phã vỡ DES nếu số vòng giảm xuống Ví

dụ 8 vòng DES có thể bị phá vỡ trong vài phút trên một PC nhỏ với một số khôngquá nhiều các bản rõ lựa chọn Để hiểu phương pháp lượng sai, chúng ta nghiêncứu trường hợp đơn giản nhất là tấn công DES 3 vòng

IV.1.1 Một số khái niệm

Lượng sai bao gồm việc so sánh XOR hai bản rõ với XOR hai bản mãtuơng ứng Chúng ta xem xét hai bản rõ L0R0 và L0*R0* với một giá trị XOR đặcbiệt

Ngày đăng: 22/11/2012, 09:12

HÌNH ẢNH LIÊN QUAN

Hà mf đợc thể hiện trong hình dới đâ y: - Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES
mf đợc thể hiện trong hình dới đâ y: (Trang 17)
Ta có các bảng PC-1 và PC-2 : - Nghiên cứu và thực hiện 1 số TEST để đánh giá độ an toàn của DES
a có các bảng PC-1 và PC-2 : (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w