Tải bản đầy đủ (.docx) (37 trang)

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)

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 (428.44 KB, 37 trang )

ĐỒ ÁN 3

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


MỤC L
DANH MỤC CÁC HÌNH VẼ..............................................................................................V
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


CHƯƠNG 5. KẾT LUẬN..................................................................................................23
5.1


KẾT LUẬN.................................................................................................................23

5.2

HƯỚNG PHÁT TRIỂN.................................................................................................23

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


DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: CÁC VÒNG FEISTEL CỦA MÃ DES...........................................................5
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


DANH MỤC CÁC BẢNG BIỂU
BẢNG 2-1:

HIỆU ỨNG LAN TRUYỀN…………………………………………….13.


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

DES


Data Encryption Sandard

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 1/32

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 tin
giữ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 đã mang
lạ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ách nhanh chóng và chính xác. Chính từ những thuận lợi này đã đặt ra cho
chúng ta mộ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 an toà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ông tin đượ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ất không thể lường được. Đặc biệt là đối với những số liệu của hệ thống ngân
hà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ực
quâ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ợi
dụ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ư khi
thô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.

CHƯƠNG 1. TỔN
G QUAN VỀ

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 2/32

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 đổi
những thông tin nhạy cảm, vấn đề cơ mật thành những văn tự mã hoá có dạng
hỗn loạn, làm cho bọn tin tặc khó lòng mà đọc hiểu được, từ đó sẽ đạt được hai
mụ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ên
cũ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ới
chuỗ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ấu
thô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ịch
mậ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àm
cho người chưa được uỷ quyền không thể lấy được thông tin, những thông tin được
giấ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ành
mộ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ật
gọ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ật
trở 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ận
phi 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 được
công khai để mọi người cùng sử dụng và áp dụng như là một chuẩn chung cho
việ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:
-

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

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 3/32

-

 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úp
chú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ột
phươ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 thay
thế 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ếp
lạ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.
e(x) = (x) và

d(y) = -1(y)
trong đó -1 là hoán vị ngược của 

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 4/32

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 theo
phươ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ột

-

hoá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.


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

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 5/32

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 sinh
khó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:

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

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 6/32

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
56 48 40 32 24 16 8 0
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
(

Hoán vị kết thúc hoán đổi các bít theo quy tắc sau:

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 7/32

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

Hoán vị kết thúc chính là hoán vị nghịch đảo của hoán vị khởi tạo. Đối với
known plaintext hay chosen-plaintext attack, hoán vị khởi tạo và hoán vị kết
thúc không có ý nghĩa bảo mật, sự tồn tại của hai hoán vị trên được nhận định là
do yếu tố lịch sử.


1.1.2

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

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 8/32

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(, ) = P-box(S-boxes(Expand(,)ꜗ ))
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:

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 9/32

-

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 theo

quy tắc:
31 0 1 2 3 4
3

4 5 6 7 8

7

8 9 10 11 12

48 bit

11 12 13 14 15 16
15 16 17 18 19 20

- S-boxes:

19 20 21 22 23 24
23 24 25 26 27 28
27 28 29 30 31 0

Hàm S-boxes của DES biến đổi một số 48 bít
thành một số 32 bít. Tuy nhiên, nếu chỉ lập một bảng
tra cứu như ở TinyDES thì bảng này phải có 216
dò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 S-boxes thành 8 hàm Sbox con, mỗi hàm biến đổi số 6 bít thành số 4 bít

Hình 2-3: Sơ đồ S boxes [3]


-

P-box: hàm P-box cũng thực hiện hoán vị 32 bít đầu vào theo quy tắc:

15 6 19 20 28 11 27 16
0 14 22 25 4 17 30 9
1

7 23 13

31 26 2 8

Tìm12
hiểu
phỏng
kỹ thuật mã hóa Substitution và DES
18
29 và5mô21
10 các
3 24


ĐỒ ÁN 3
Trang 10/32

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ức
chỉ sử dụng 56 bít) theo quy tắc:
56 48 40 32 24 16 8
0


57 49 41 33 25 17

9

1

56 bit

58 50 42 34 26

18 10 2 59 51 43 35
62 54 46 38 30 22 14
6

61 53 45 37 29 21

13 5 60 52 44 36 28
20 12 4 27 19 11 3
Khóa 56 bít này được chia thành 2 nửa
trái phải và , mỗi nửa có kích thước 28 bít. Tại vòng thứ i (i = 1, 2, 3,…,16),
và được dịch vòng trái bít để có được và , với được định nghĩa:
=
Cuối cùng khóa của mỗi vòng được tạo ra bằng cách hoán vị và nén 56 bít
13 16 10 23

0 4 2 27

14 5


20 9

22 18 11 3

25 7

15 6

26 19 12 1

của và thành 48 bít theo quy tắc:

48 bit

40 51 30 36 46 54 29 39
Tìm 44
hiểu32và 47
mô phỏng
kỹ thuật mã hóa Substitution và DES
50
43 48 các
38 55

33 52 45 41 49 35 28 31


ĐỒ ÁN 3
Trang 11/32

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ần
mộ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õ hay
của khóa (dù phá mã theo known-plaintext hay chosen-plaintext) nên phải thực
hiệ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 00000000
00000000
P2:10000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
Hai bản rõ trên được mã hóa bằng DES với khóa:
K: 0000001 1001011 0100100 1100010 0011100 0011000 0011100 0110010

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 12/32

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


0

1

0

0

1

6

1

2

2

21

2

14

3

35

3


28

4

39

4

32

5

34

5

30

6

32

6

32

7

31


7

35

8

29

8

34

9

42

9

40

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 13/32

10

44


10

38

11

32

11

31

12

30

12

33

13

30

13

28

14


26

14

26

15

29

15

34

16

34

16

35

a)

b)

Bảng 2-1.a cho biết số bít khác nhau của bản mã tương ứng với P1 và P2
qua các vòng của DES:
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 11101011
10100100
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 11011100
K2: 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à K2
qua 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/2
tổng số bít của bản rõ.

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 14/32

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ông
phá 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-force
attack, 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ông
báo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy song
song, trị giá khoảng 250.000$. Thời gian thử khóa là 3 ngày. Hiện nay mã DES

vẫn còn được sử dụng trong thương mại, tuy nhiên người ta đã bắt đầu áp dụng
nhữ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 256
bí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ương
phá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.
-

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ương
pháp này, cần phải biết trước 243 cặp bản rõ-bản mã (known-plaintext). Tuy
nhiê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ột
phươ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à trong
lĩnh vực bảo mật nói riêng. Đó là:

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 15/32


-

Securing Email
Authentication System
Secure E-commerce
Virtual Private Network
Wireless Encryption

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 16/32

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 ứng
vớ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ân
với block 64 bit:

b=[

10101111

10001000
10001000
10001000

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 17/32

10001000
01010101
01010100
0 1 0 1 0 1 1 0]
Chọn Key mã hóa: ‘1256984563214569’
Chuyển sang mã nhị phân với block 64 bit:
k=[

00010010

01010110
10011000
01000101
01100011
00100001
00100101

0 1 1 0 1 0 0 1]
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,1
3,5,28,20,12,4];

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES


ĐỒ ÁN 3
Trang 18/32

K(PC1)=[ 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1
0 1 0 0 0 0 1 0 0 0 1 1 1]
C=K_PC1(1:28)=[ 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1
0 1 1 0 0 0 0 0 0 0 0 0]
D=K_PC1(29:56)=[ 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1
0 0 0 0 1 0 0 0 1 1 1]
Cho C và D vào bộ dịch chuyển trái xoay vồng ta được
K_LS=[Cs,Ds]=[ 0 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0
1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1
0 1 0 1 0 0 0 0 1 0 0 0 1 1 1]
Tiếp tục qua PC-2 ta được K_LS(PC-2):
PC2=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52
,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32]

K_LS(PC-2)=[ 1

0

0
0

1
0

0
0

0
1

0
1

0
0

0
1

0
1

0

0
0


1

1

0

0

0

0

1

0

1

1

1
0

0

1

1


1

0]

0

1

0

1

0

1

1

0

0

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:

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES



ĐỒ ÁN 3
Trang 19/32

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)
R_E=R1(E)=[ 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 0
1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 1
0 1 1 0 1 0]
Tiếp tục lấy R_E và K_LS(PC-2) mod với nhau ta được:
R_Ki=[1 1 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 1 0 1 0
0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1
0 1 1 1]
Chia R_Ki thành 8 mảng với mỗi mảng 6 phần tử theo thứ tự chõ qua bộ SBOX với 6 S-box ta được:
C=[C1,C2,C3,C4,C5,C6,C7,C8]=[ 0
1

0

0 1

0

0

0

1

1


1

0

1

0

0

0

1

1

1

0

0

0

0

1

0


1

0

0

1

1

1

1]

Cho C qua bộ hoán vị P ta được:
P=[16,7,20,21,29,12,28,17,1,15,23,26,5,18,31,10,2,8,24,14,32,27,3,9,19,13,3
0,6,22,11,4,25]
R_P=C(P)=[ 1

1 1 0 1 0 1 1 0 0 0 0 1 1 1 0 0 0 1

0 1 1 0 0 0 0 0 1 1 1 0 0]
Tiếp tục lấy R_P và R2=b(1:32) mod với nhau ta được:
R=[ 0 1 0 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1
0 1 1 1 0 0 1 1 0 1]

Tìm hiểu và mô phỏng các kỹ thuật mã hóa Substitution và DES



×