1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

TÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới)

37 571 0

Đ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

Định dạng
Số trang 37
Dung lượng 335,66 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ÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới) TÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới) TÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới) TÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới) TÌM HIỂU và mô PHỎNG các kỹ THUẬT mã hóa SUBSTITUTION và DES (có code bên dưới)

Trang 1

TÌM HIỂU VÀ MÔ PHỎNG CÁC KỸ THUẬT MÃ HÓA SUBSTITUTION VÀ

DES

Trang 2

DANH MỤC CÁC BẢNG BIỂU VI

DANH MỤC CÁC TỪ VIẾT TẮT 1

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

1.1 TỔNG QUAN 1

1.2 YÊU CẦU ĐỀ TÀI 1

CHƯƠNG 2 TỔNG QUAN VỀ CÁC KỸ THUẬT MÃ HÓA 2

2.1 KHÁI NIỆM CƠ BẢN VỀ MẬT MÃ 2

2.2 PHÂN LOẠI CÁC KỸ THUẬT MÃ HÓA 2

2.3 KỸ THUẬT MÃ HÓA CỔ ĐIỂN: SUBSTITUTION 3

2.4 KỸ THUẬT MÃ HÓA HIỆN ĐẠI: DES 4

2.4.1 Hoán vị khởi tạo và hoán vị kết thúc 5

2.4.2 Các vòng của DES 8

2.4.3 Thuật toán sinh khóa con của DES 10

2.4.4 Hiệu ứng lan truyền (Avalanche Effect) 11

2.4.5 Độ an toàn của DES 14

2.5 MỘT SỐ ỨNG DỤNG CỦA MÃ HÓA TRONG SECURITY 15

CHƯƠNG 3 KHẢO SÁT VÀ THIẾT KẾ 16

3.1 KHẢO SÁT TÍNH TOÁN CÁC KỸ THUẬT MÃ HÓA 16

3.1.1 Kỹ thuật mã hóa Substitution 16

3.1.2 Kỹ thuật mã hóa DES 16

3.2 THIẾT KẾ GIAO DIỆN HIỂN THỊ 20

CHƯƠNG 4 KẾT QUẢ THỰC HIỆN 21

4.1 KẾT QUẢ MÔ PHỎNG VỚI MÃ DES 21

4.2 KẾT QUẢ MÔ PHỎNG VỚI MÃ HÓA SUBSTITUTION 22

Trang 3

TÀI LIỆU THAM KHẢO 24 PHỤ LỤC A……… 25 Y

Trang 4

HÌNH 2-2: CẤU TRÚC MỘT VÒNG CỦA MÃ DES 8

HÌNH 2-3: SƠ ĐỒ S-BOXES 9

HÌNH 3-1: GIAO DIỆN GUIDE MÔ PHỎNG 20

HÌNH 4-1: GIAO DIỆN GUIDE CHO KẾT QUẢ MÃ HÓA DES 21

HÌNH 4-2: GIAO DIỆN GUIDE CHO KẾT QUẢ MÃ HÓA SUBSTITUTION 22

Trang 6

DES Data Encryption Sandard

Trang 7

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

1.1 Tổng quan

Ngày nay trong mọi hoạt động của con người thông tin đóng một vai tròquan trọng không thể thiếu Xã hội càng phát triển nhu cầu trao đổi thông tingiữa các thành phần trong xã hội ngày càng lớn Mạng máy tính ra đời đã manglại cho con người rất nhiều lợi ích trong việc trao đổi và xử lý thông tin một cáchnhanh chóng và chính xác Chính từ những thuận lợi này đã đặt ra cho chúng tamột câu hỏi, liệu thông tin đi từ nơi gửi đến nơi nhận có đảm bảo tuyệt đối antoàn, ai có thể đảm bảm thông tin của ta không bị truy cập bất hợp pháp Thôngtin được lưu giữ, truyền dẫn, cùng sử dụng trên mạng lưới thông tin công cộng

có thể bị nghe trộm, chiếm đoạt, xuyên tạc hoặc phá huỷ dẫn đến sự tổn thấtkhông thể lường được Đặc biệt là đối với những số liệu của hệ thống ngânhàng, hệ thống thương mại, cơ quan quản lý của chính phủ hoặc thuộc lĩnh vựcquân sự được lưu giữ và truyền dẫn trên mạng Nếu như vì nhân tố an toàn màthông tin không dám đưa lên mạng thì hiệu suất làm việc cũng như hiệu suất lợidụng nguồn dữ liệu đều sẽ bị ảnh hưởng Trước các yêu cầu cần thiết đó, việc

mã hoá thông tin sẽ đảm bảo an toàn cho thông tin tại nơi lưu trữ cũng như khithông tin được truyền trên mạng

1.2 Yêu cầu đề tài

- Tìm hiểu các kỹ thuật cipher sau:

 Kỹ thuật cổ điển: substitution

 Kỹ thuật hiện đại: DES

- Mô phỏng matlab hai kỹ thuật trên.

Trang 8

CHƯƠNG 1 TỔN

G QUAN VỀ CÁC KỸ THUẬT MÃ HÓA

1.3 Khái niệm cơ bản về mật mã

Kỹ thuật mật mã thông qua việc biến đổi hoặc mã hoá thông tin, biến đổinhững thông tin nhạy cảm, vấn đề cơ mật thành những văn tự mã hoá có dạnghỗn loạn, làm cho bọn tin tặc khó lòng mà đọc hiểu được, từ đó sẽ đạt được haimục đích: một là, làm cho bọn tin tặc không biết làm thế nào để giải mã nêncũng không thể thu được những thông tin có bất kỳ ý nghĩa nào trong chuỗi mật

mã hỗn loạn đó; hai là làm cho tin tặc không có khả năng làm giả thông tin vớichuỗi mật mã hỗn loạn như thế Khoa học nghiên cứu kỹ thuật mật mã gọi làmật mã học

Mật mã học bao gồm hai nhánh, là mật mã học lập mã và mật mã học phân tích.Mật mã học lập mã với ý là tiến hành mã hoá thông tin để thực hiện việc che giấuthông tin, còn mật mã học phân tích là ngành học nghiên cứu phân tích giải dịchmật mã Hai cái đối lập với nhau, nhưng lại thúc đẩy lẫn nhau

Dùng phương pháp mật mã có thể che dấu và bảo hộ những thông tin cơ mật, làmcho người chưa được uỷ quyền không thể lấy được thông tin, những thông tin đượcgiấu kín kia được gọi là văn bản rõ, mật mã có thể đem văn bản rõ biến đổi thànhmột loại hình khác, gọi là văn bản mật Sự biến đổi văn bản rõ thành văn bản mậtgọi là mã hoá bảo mật, quá trình người thu nhận hợp pháp khôi phục từ văn bản mậttrở thành văn bản rõ được gọi là quá trình giải mã (hoặc giải mật) Người thu nhậnphi pháp có ý đồ phân tích từ văn bản mật ra thành văn bản rõ, gọi là giải dịch

1.4 Phân loại các kỹ thuật mã hóa

Có rất nhiều các thuật toán mã hoá khác nhau Từ những thuật toán đượccông khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung choviệc mã hoá dữ liệu; đến những thuật toán mã hoá không được công bố Có thểphân loại các thuật toán mã hoá như sau:

Trang 9

- Phân loại theo các phương pháp:

 Mã hoá cổ điển (Classical cryptography)

 Mã hoá đối xứng (Symetric cryptography)

 Mã hoá bất đối xứng(Asymetric cryptography)

 Hàm băm (Hash function)

- Phân loại theo số lượng khoá:

 Mã hoá khoá bí mật (Private-key Cryptography)

 Mã hoá khoá công khai (Public-key Cryptography)

1.5 Kỹ thuật mã hóa cổ điển: Substitution

Xuất hiện trong lịch sử, các phương pháp này không dùng khoá Thuật toánđơn giản và dễ hiểu Những từ chính các phương pháp mã hoá này đã giúpchúng ta tiếp cận với các thuật toán mã hoá đối xứng được sử dụng ngày nay.Trong mã hoá cổ điển có 02 phương pháp nổi bật đó là:

- Mã hoá thay thế (Substitution Cipher):

Là phương pháp mà từng kí tự (hay từng nhóm kí tự) trong bản rõ (Plaintext)được thay thế bằng một kí tự (hay một nhóm kí tự) khác để tạo ra bản mờ(Ciphertext) Bên nhận chỉ cần đảo ngược trình tự thay thế trên Ciphertext để cóđược Plaintext ban đầu

- Mã hoá hoán vị (Transposition Cipher):

Bên cạnh phương pháp mã hoá thay thế thì trong mã hoá cổ điển có mộtphương pháp khác nữa cũng nổi tiếng không kém, đó chính là mã hoá hoán vị.Nếu như trong phương pháp mã hoá thay thế, các kí tự trong Plaintext được thaythế hoàn toàn bằng các kí tự trong Ciphertext, thì trong phương pháp mã hoáhoán vị, các kí tự trong Plaintext vẫn được giữ nguyên, chúng chỉ được sắp xếplại vị trí để tạo ra Ciphertext Tức là các kí tự trong Plaintext hoàn toàn không bịthay đổi bằng kí tự khác

Mã thay thế có thể được mô tả như sau:

Cho P = C = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu 0, 1, …,25 với mỗi hoán vị   K, ta định nghĩa

Trang 10

e(x) = (x) và

d(y) = -1(y)

trong đó -1 là hoán vị ngược của 

Nhận xét: với mã thay thế, ta có một không gian khoá tương đối lớn (mỗi

khoá là một hoán vị của 26 kí hiệu 0, 1, …, 25) do đó nó khó có thể bị thám theophương pháp tìm khóa vét cạn, thậm chí cả bằng máy tính

1.6 Kỹ thuật mã hóa hiện đại: DES

Mã DES có các tính chất sau:

- Là mã thuộc hệ mã Feistel gồm 16 vòng, ngoài ra DES có thêm mộthoán

- vị khởi tạo trước khi vào vòng 1 và một hoán vị khởi tạo sau vòng 16

- Kích thước của khối là 64 bít: ví dụ bản tin „meetmeafterthetogaparty‟

- biểu diễn theo mã ASCII thì mã DES sẽ mã hóa làm 3 lần, mỗi lần 8 chữ

- cái (64 bít): meetmeaf - tertheto - gaparty

- Kích thước khóa là 56 bít

- Mỗi vòng của DES dùng khóa con có kích thước 48 bít được trích ra từ

- khóa chính

Trang 11

Hình dưới đây minh họa các vòng của mã DES:

Hình 2- 1: Các vòng Feistel của mã DES [1]

Sơ đồ mã DES trên gồm ba phần, phần thứ nhất là các hoán vị khởi tạo vàhoán vị kết thúc Phần thứ hai là các vòng Feistel, phần thứ ba là thuật toán sinhkhóa con Chúng ta sẽ lần lượt đi vào chi tiết của từng phần

1.1.1 Hoán vị khởi tạo và hoán vị kết thúc

Ta đánh số các bít của khối 64 bít theo thứ tự từ trái sang phải là 0, 1, …,

62, 63: b0b1b2… b62b63

Trang 12

Hoán vị khởi tạo sẽ hoán đổi các bít theo quy tắc sau :

Trang 13

do yếu tố lịch sử.

Hình sau minh họa một vòng Feistel của DES:

Trang 14

Hình 2- 2: Cấu trúc một vòng của mã DES [2]

Trong DES, hàm F của Feistel là:

F(R i−1, K i) = P-box(S-boxes(Expand(R i−1,)ꜗ K i))Trong đó hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 32 bít lên 48 bít.Hàm Sboxes nén 48 bít lại còn 32 bít Hàm P-box là một hoán vị 32 bít Mô tảcủa các hàm trên là như sau:

Trang 15

- Expand: đánh số các bít của Ri-1 theo thứ tự từ trái sang phải là 0, 1, 2,

…, 31 Hàm Expand thực hiện vừa hoán vị vừa mở rộng 32 bít thành 48 bít theoquy tắc:

48 bit

- S-boxes:

Hàm S-boxes của DES biến đổi một số 48 bítthành một số 32 bít Tuy nhiên, nếu chỉ lập một bảngtra cứu như ở TinyDES thì bảng này phải có 216dòng và 232 cột, dẫn đến số phần tử của bảng rất lớn

Để giảm kích thước của bảng tra cứu, người ta chia hàm boxes thành 8 hàm box con, mỗi hàm biến đổi số 6 bít thành số 4 bít

Trang 16

1.1.3 Thuật toán sinh khóa con của DES

Khóa K 64 bít ban đầu được rút trích và hoán vị thành một khóa 56 bít (tứcchỉ sử dụng 56 bít) theo quy tắc:

56 bit

Khóa 56 bít này được chia thành 2 nửa trái phải KL0 và KR0 , mỗi nửa cókích thước 28 bít Tại vòng thứ i (i = 1, 2, 3,…,16), KL i−1KR i−1được dịchvòng trái r i bít để có được KL iKR i, với r i được định nghĩa:

Trang 17

Cuối cùng khóa K i của mỗi vòng được tạo ra bằng cách hoán vị và nén 56bít của KL iKR i thành 48 bít theo quy tắc:

48 bit

1.1.4 Hiệu ứng lan truyền (Avalanche Effect)

Một tính chất quan trọng cần thiết của mọi thuật toán mã hóa là chỉ cầnmột thay đổi nhỏ trong bản rõ hay trong khóa sẽ dẫn đến thay đổi lớn trong bản

mã Cụ thể, chỉ cần thay đổi một bít trong bản rõ hay khóa thì dẫn đến sự thayđổi của nhiều bít bản mã Tính chất này được gọi là hiệu ứng lan truyền Nhờ cótính chất này mà người phá mã không thể giới hạn miền tìm kiếm của bản rõ haycủa khóa (dù phá mã theo known-plaintext hay chosen-plaintext) nên phải thựchiện vét cạn khóa DES là một phương pháp mã hóa có hiệu ứng lan truyền này.Xét hai bản rõ sau (64bít):

P1:00000000 00000000 00000000 00000000 00000000 00000000 0000000000000000

P2:10000000 00000000 00000000 00000000 00000000 00000000 0000000000000000

Hai bản rõ trên được mã hóa bằng DES với khóa:

Trang 18

Bảng 2- 1: Hiệu ứng lan truyền [1]

Vòng thứ Số bit khác nhau Vòng thứ Số bit khác nhau

Trang 19

Chỉ cần đến vòng thứ 2, số bít khác nhau giữa hai bản mã đã là 21 bít, sau

16 vòng số bít khác nhau là 34 bít (khoảng 1/2 tổng số bít của bản rõ)

Xét bản rõ sau (64 bít):

P: 01101000 10000101 00101111 01111010 00010011 01110110 1110101110100100

Trang 20

Dùng hai khóa sau đây để mã hóa bản rõ trên (hai khóa này chỉ khác nhau

1 bít):

K1: 1110010 1111011 1101111 0011000 0011101 0000100 0110001 11011100K2: 0110010 1111011 1101111 0011000 0011101 0000100 0110001 11011100

Bảng 2-4.b cho biết số bít khác nhau của bản mã tương ứng với K1 và K2qua các vòng của DES Sau 16 vòng, số bít khác nhau là 35 bít, cũng khoảng 1/2tổng số bít của bản rõ

1.1.5 Độ an toàn của DES

Ta hãy xem xét tính an toàn của DES trước một vài phương pháp tấn côngphá mã:

- Tấn công vét cạn khóa (Brute Force Attack):

Vì khóa của mã DES có chiều dài là 56 bít nên để tiến hành brute-forceattack, cần kiểm tra 256 khóa khác nhau Hiện nay với những thiết bị phổ dụng,thời gian để thử khóa là rất lớn nên việc phá mã là không khả thi (xem bảng).Tuy nhiên vào năm 1998, tổ chức Electronic Frontier Foundation (EFF) thôngbáo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy songsong, trị giá khoảng 250.000$ Thời gian thử khóa là 3 ngày Hiện nay mã DESvẫn còn được sử dụng trong thương mại, tuy nhiên người ta đã bắt đầu áp dụngnhững phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256bít) như TripleDES hoặc AES.49

- Phá mã DES theo phương pháp vi sai (differential cryptanalysis):

Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai.Phương pháp vi sai tìm khóa ít tốn thời gian hơn brute-force Tuy nhiên phươngpháp phá mã này lại đòi hỏi phải có 247 cặp bản rõ - bản mã được lựa chọn(chosen-plaintext) Vì vậy phương pháp này là bất khả thi dù rằng số lần thử cóthể ít hơn phương pháp brute-force

Trang 21

- Phá mã DES theo phương pháp thử tuyến tính (linear cryptanalysis)Năm 1997 Matsui đưa ra phương pháp phá mã tuyến tính Trong phươngpháp này, cần phải biết trước 243 cặp bản rõ-bản mã (known-plaintext) Tuynhiên 243 cũng là một con số lớn nên phá mã tuyến tính cũng không phải là mộtphương pháp khả thi.

1.7 Một số ứng dụng của mã hóa trong Security

Một số ứng dụng của mã hoá trong đời sống hằng ngày nói chung và tronglĩnh vực bảo mật nói riêng Đó là:

Trang 22

CHƯƠNG 2 KH

ẢO SÁT VÀ THIẾT KẾ

1.8 Khảo sát tính toán các kỹ thuật mã hóa

Chúng ta sẽ đi vào thiết kế một ví dụ cho mã Substitution và mã DES đểthấy được sự chính xác trong thuật toán

1.1.6 Kỹ thuật mã hóa Substitution

Mã hoá bản rõ: cụm từ “ illustrate “ sử dụng mã thay thế với khoá là 1 hoán

vị bất kì sau:

Với khoá là một hoán vị bất kì ở trên thì bản rõ: “illustrate” sẽ tương ứngvới bản mã sau (sử dụng hàm mã hoá e(x) = (x)): “ ZBBUVMCXMH ”

1.1.7 Kỹ thuật mã hóa DES

Chọn thông điệp mã hóa: ‘AF88888888555456’.Chuyển sang mã nhị phânvới block 64 bit:

b=[ 1 0 1 0 1 1 1 1

1 0 0 0 1 0 0 0

1 0 0 0 1 0 0 0

1 0 0 0 1 0 0 0

Trang 23

Lấy key chuyển qua bộ PC-1.

Chuyển qua bộ PC-1 ta được C và D:

KPC1= C and D

PC1=[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];

Trang 24

K_LS(PC-2)=[ 1 0 1 0 0 0 0 0 0 0 1 1 0 0

0 0 0 0 1 1 0 1 1 0 0 0 0 1 01

0 0 1 0 1 0 1 0 1 1 0 0 1 10

1 1 0]

Chọn chuỗi mã hóa input vào lấy từ kí tự 3364 cho qua hàm E để mở rộng

từ 3248 bit:

Trang 25

E=[32, 1, 2, 3, 4, 5; 4, 5, 6, 7, 8, 9; 8, 9,10,11,12,13; 12,13,14,15,16,17;16,17,18,19,20,21; 20,21,22,23,24,25; 24,25,26,27,28,29; 28,29,30,31,32,1];R1=b(33:64)

Trang 26

Chuyển R qua mã DEC và HEX ta được kết quả mã hóa:

‘90953B49584B65CD’

1.9 Thiết kế giao diện hiển thị

Thiết kế giao diện Guide để có thể tiện dụng sử dụng mã hóa thông tin qua

mã hóa DES và mã hóa Substitution với ô nhập input và key riêng rõ ràng cùngvới nút Push 1 cho mã hóa DES và Push 2 cho mã hóa Substitution để mã hóa:

Hình 3- 1: Giao diện guide mô phỏng

Trang 27

CHƯƠNG 3 KẾT QUẢ THỰC HIỆN

1.1 Kết quả mô phỏng với mã DES

Với input vào là: ‘AF88888888555456’

Và key là: ‘AF88888888555456’

Ta được kết quả mã hóa như hình:

Hình 4- 1: Giao diện guide cho kết quả mã hóa DES

Trang 28

1.2 Kết quả mô phỏng với mã hóa Substitution

Với input vào ta được kết quả mã hóa với giao diện:

Hình 4- 2: Giao diện guide cho kết quả mã hóa Substitution

Trang 29

CHƯƠNG 4 KẾT

LUẬN

1.10 KẾT LUẬN :

 Đã hoàn thành nhiệm vụ được giao

 Giao diện guide chạy đúng với các công thức mô phỏng

1.11 HƯỚNG PHÁT TRIỂN

 Phát triển giao diện mã hóa với nhiều loại mã hóa phức tạp hơn như:AES,triple DES,…

Trang 30

TÀI LIỆU THAM KHẢO

https://www.mathworks.com/matlabcentral/answers/330213-can-i-get-a-des-algorithm-source-code-in-matlab

Trang 31

PHỤ LỤC A

% TEST2 MATLAB code for test2.fig

% TEST2, by itself, creates a new TEST2 or raises the existing

% singleton*.

%

% H = TEST2 returns the handle to a new TEST2 or the handle to

% the existing singleton*.

%

% TEST2('CALLBACK',hObject,eventData,handles, ) calls the local

% function named CALLBACK in TEST2.M with the given input arguments.

%

% TEST2('Property','Value', ) creates a new TEST2 or raises the

% existing singleton* Starting from the left, property value pairs are

% applied to the GUI before test2_OpeningFcn gets called An

% unrecognized property name or invalid value makes property

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help test2

% Last Modified by GUIDE v2.5 27-Oct-2017 23:00:32

% Begin initialization code - DO NOT EDIT

% End initialization code - DO NOT EDIT

% - Executes just before test2 is made visible.

Ngày đăng: 09/03/2018, 19:29

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