1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Chủ đề 4: Data Encryption Standard và Advanced Encryption Standard

55 7 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 55
Dung lượng 3,65 MB

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

Nội dung

Quy trình mã hóa theo khối Thông thường, quy trình mã hóa bao gồm nhiều chu kỳ mã hóa round liên tiếp nhau; mỗi chu kỳ gồm nhiều thao tác mã hóa  Từ khóa gốc secret key, phát sinh có q

Trang 1

Chủ đề 4:

Data Encryption Standard và Advanced Encryption Standard

PGS.TS Trần Minh Triết

Trang 2

Nội dung

Data Encryption Standard

Advanced Encryption Standard

Trang 3

Mã hóa tích (Product Cipher)

của ngôn ngữ)

Substitution kết hợp với Substitution an toàn hơn 1 phép

hiện đại

Trang 4

Quy trình mã hóa theo khối

Trang 5

Quy trình mã hóa theo khối

 Thông thường, quy trình mã hóa bao gồm nhiều chu kỳ mã hóa (round) liên tiếp nhau; mỗi chu kỳ gồm nhiều thao tác mã hóa

 Từ khóa gốc (secret key), phát sinh (có quy luật) các giá trị khóa

sẽ được sử dụng trong mỗi chu kỳ mã hóa (round key)

Trang 6

Kiến trúc chu kỳ mã hóa

 Kiến trúc Fiestel

 Ví dụ: Blowfish, Camellia, CAST-128, DES, FEAL, KASUMI, LOKI97, Lucifer, MARS, MAGENTA, MISTY1, RC5, TEA, Triple DES, Twofish, XTEA

 Kiến trúc SPN

 Ví dụ: Rijndael – AES, Anubis…

Trang 7

Data Encryption Standard

Trang 8

Data Encryption Standard

 Key: 56 bit

 Block: 64 bit

Trang 12

Ví dụ: Bit thứ 58 của x trở thành bit đầu tiên của IP(x)

Bit thứ 50 của x trở thành bit thứ hai của IP(x)

Trang 13

Final Permutation

Ví dụ: Bit thứ 58 của x trở thành bit đầu tiên của IP(x)

Bit thứ 50 của x trở thành bit thứ hai của IP(x)

Trang 15

48 bit

Trang 21

Key Schedule

xoay vòng 1 vị trí

vị trí

Trang 22

Các hoán vị trong Key Schedule

40, 48, 56, 64

Chọn 48 bit (bỏ bit 9, 18, 22, 25,

35, 38, 43, 54)

Trang 23

Một số nhận xét

 Gồm toàn bit 0

 Gồm toàn bit 1

 Gồm ½ là bit 0 (liên tiếp), ½ là bit 1 (liên tiếp)

 Tính chất: Encryptk (P) = P

 Khóa có dạng: 7 bit 0 (liên tiếp), 7 bit 1 (liên tiếp)

 Encryptk (P) = C ➔ Encrypt k* (P*) = C*

Với x* được tạo bằng cách đảo ngược các bit của x

Trang 24

Advanced Encryption Standard

Trang 25

Phương pháp mã hóa Rijndael

Trang 26

Phương pháp mã hóa Rijndael

thước khối và mã khóa thay đổi linh hoạt với các giá trị

128, 192 hay 256 bit

thống khác nhau từ các thẻ thông minh cho đến các máytính cá nhân

Trang 27

Một số khái niệm Toán học

byte

Trang 29

Đa thức với hệ số trên GF(28)

) ( )

(

i

i i

i b x a

x b x

a

) 2 (

GF 8

i

b

Trang 30

Đa thức với hệ số trên GF(28)

0 1

2 3

3 0

1 2

2 3

0 1

1 2

3 0

a a

a a

a a

a a

a a

a a

a a

a a

Trang 31

Phương pháp Rijndael

trạng thái (state)

chia cho 32

Trang 32

Biểu diễn khối dữ liệu và mã khóa

Trang 33

Chu kỳ mã hóa bình thường

Chu kỳ 1

Mix Columns

Chu kỳ i

Mix Columns

Chu kỳ Nr-1

Mix Columns

Chu kỳ Nr

Mix Columns

Mix Columns

Add Round Key

Sub

Trang 34

Chu kỳ mã hóa cuối

Chu kỳ 1

Mix Columns

Chu kỳ i

Mix Columns

Chu kỳ Nr-1

Mix Columns

Round Key

Sub

Trang 35

Kiến trúc Substitution-Permutation

Network

Add Round Key

32-bit LT 32-bit LT 32-bit LT 32-bit LT

Mix Columns

Add Round Key Sub

Trang 36

Quy trình mã hóa của thuật toán

Trang 37

S' 00 S' 01 S' 02 S' 03 S' 10 S' 11 S' 12 S' 13 S' 20 S' 22 S' 23 S' 30 S' 31 S' 32 S' 33

Phép biến đổi SubBytes

Sij

S-Box

S’ij

SubBytes

Trang 38

Phép biến đổi SubBytes

(S-box)

hành

Trang 39

Phép biến đổi SubBytes

Xác định phần tử nghịch đảo x-1 (có biểu diễn nhị phân

{x7x6x5x4x3x2x1x0}) Quy ước {00} -1 = {00}

 Phép biến đổi affine:

y i =x i x (i+4)mod8 x (i+5)mod8 x (i+6)mod8 x (i+7)mod8 c i với {c7c6c5c4c3c2c1c0} = {63}

Trang 40

Phép biến đổi SubBytes

1 1

1 1

1 0

0 0

0 1

1 1

1 1

0 0

0 0

1 1

1 1

1 0

0 0

0 1

1 1

1 1

1 0

0 0

1 1

1 1

1 1

0 0

0 1

1 1

1 1

1 0

0 0

1 1

1 1

1 1

0 0

0 1

7 6 5 4 3 2 1 0

Trang 41

Phép biến đổi ngược

InvSubBytes

Trang 42

Phép biến đổi ngược

0 1

0 1

0 0

1 0

0 0

1 0

1 0

0 1

1 0

0 1

0 1

0 0

0 1

0 0

1 0

1 0

0 0

1 0

0 1

0 1

1 0

0 1

0 0

1 0

0 1

0 0

1 0

0 1

1 0

1 0

0 1

0 0

7 6 5 4 3 2 1 0

Trang 43

Phép biến đổi ShiftRows

ShiftRows

Trang 44

Phép biến đổi ShiftRows

(c + shift(r, Nb)) mod Nb

cột c sẽ dịch chuyển đến cột (c- shift(r, Nb)) mod Nb

Trang 45

W l WW l+c l+1 W l+2 W l+3

AddRoundKey

Trang 46

Phép biến đổi AddRoundKey

ứng trong mã khóa của chu kỳ hiện hành

AddRoundKey.

Trang 47

Phép biến đổi MixColumns

S' 21

a(x)

MixColumns

Trang 48

Phép biến đổi MixColumns

c c c c

s s s s

s s s s

, 3

, 2

, 1

, 0

' , 3

' , 2

' , 1

' , 0

02 01

01 03

03 02

01 01

01 03

02 01

01 01

03 02

Trang 49

Phép biến đổi ngược

c c c c

s s s s

s s s s

, 3

, 2

, 1

, 0

' , 3

' , 2

' , 1

' , 0

0e 09

0d 0b

0b 0e

09 0d

0d 0b

0e 09

09 0d

0b 0e

Trang 50

Phát sinh mã khóa mỗi chu kỳ

độ dài 4 byte)

trị Nk, tức là phụ thuộc vào độ dài của mã khóa chính

Trang 51

Phát sinh mã khóa mỗi chu kỳ

Trang 52

Phát sinh mã khóa mỗi chu kỳ

KeyExpansion(byte key[4 * Nk], word w[Nb * (Nr + 1)], Nk)

if (Nk = 8) and (i mod Nk = 4) then

temp = SubWord (temp)

Trang 53

Phát sinh mã khóa mỗi chu kỳ

Ngày đăng: 07/05/2021, 17:31

TỪ KHÓA LIÊN QUAN

w