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

an toàn và bảo mật httt nhóm 03 đề tài tìm hiểu về giải thuật mã hóa khóa bí mật aes

26 1 0
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 đề An Toàn Và Bảo Mật HTTT - Tìm Hiểu Về Giải Thuật Mã Hóa Khóa Bí Mật AES
Tác giả Hà Quang Minh, Nguyễn Khánh An, Vũ Trung Lập, Phạm Thanh Sơn, Nguyễn Xuân Tùng
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành CNTT
Thể loại Đề Tài
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 26
Dung lượng 5,19 MB

Nội dung

Giới thiệuTiêu chuẩn Advanced Encryption Standard AES - Tiêu chuẩn mã hóa tiêntiến là một thuật toán tiêu chuẩn của chính phủ Hoa Kỳ nhằm mã hóa và giải mãdữ liệu do Viện Tiêu chuẩn và C

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

1 Tổng quát 4

2 Chi tiết 6

2.1 Mở rộng khóa (Sinh khóa phụ) 6

2.2 Các hàm xử lý chính 11

III Quy trình giải mã AES 16

1 Tổng quát 16

2 Các bước giải mã 17

3 Ví dụ chi tiết 18

3.1 Hàm AddRoundKey 19

3.2 Hàm InvShiftRows 19

3.3 Hàm InvSubBytes 20

3.4 Hàm InvMixColumns 21

IV Đánh giá giải thuật AES 23

V Các dạng tấn công và cách phòng chống 24

1 Các dạng tấn công 24

2 Cách phòng chống: 25

VI Demo mã hóa và giải mã AES 26

VII Kết luận 27

Tài liệu tham khảo 29

Trang 3

AES là một thuật toán “mã hóa khối” (block cipher) ban đầu được tạo ra bởihai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen Kể từ khi đượccông bố là một tiêu chuẩn, AES trở thành một trong những thuật toán mã hóa phổbiến nhất sử dụng khóa mã đối xứng để mã hóa và giải mã (một số được giữ bímật dùng cho quy trình mở rộng khóa nhằm tạo ra một tập các khóa vòng) Ở ViệtNam, thuật toán AES đã được công bố thành tiêu chuẩn quốc gia TCVN7816:2007 năm 2007 về Thuật toán mã hóa dữ liệu AES

AES là phương pháp mã hoá theo khối, với khối dữ liệu vào có kích thước 128bit và khoá bí mật với kích thước có thể là 128, 192, hoặc 256 bit (là bội của 32 vàlớn nhất là 256 bit) AES được thiết kế dựa trên mạng hoán vị-thay thế(Substitution-permutation network) và nó có thể cho tốc độ thực thi cao khi cài đặttrên cả phần cứng và phần mềm Đặc biệt, giải thuật AES đã được tích hợp vàocác bộ vi xử lý gần đây của hãng Intel dưới dạng tập lệnh AES-NI, giúp tăng đáng

kể tốc độ thực thi các thao tác mã hoá và giải mã dựa trên AES

AES vận hành dựa trên một ma trận vuông 4x4, được gọi là state (trạng thái)

Ma trận này gồm 16 phần tử, mỗi phần tử là 1 byte dữ liệu State được khởi trị làkhối 128 bit bản rõ và qua quá trình biến đổi sẽ chứa khối 128 bit bản mã ở đầu ra.Như đã đề cập, AES hỗ trợ 3 kích thước khoá và kích thước của khoá quyết định

Trang 4

số vòng lặp cần thực hiện để chuyển đổi bản rõ thành bản mã Số vòng lặp AEScần thực hiện theo kích thước khoá như sau:

 10 vòng lặp với khoá 128 bit;

 12 vòng lặp với khoá 192 bit;

 14 vòng lặp với khoá 256 bit

Mỗi vòng bao gồm một số bước xử lý, trong đó có một bước phụ thuộc vào chínhkhoá mã hoá Một tập hợp các vòng đảo ngược được áp dụng để biến đổi bản mãtrở lại bản rõ ban đầu bằng cách sử dụng cùng một khoá mã hoá

II Quy trình mã hóa AES

Bước 3: Các vòng lặp chính (Rounds): Có 4 hàm biến đổi dữ liệu được thực hiện trong mỗi vòng, bao gồm:

Trang 5

+ SubBytes: Hàm thay thế phi tuyến tính, trong đó mỗi byte trong state được thaythế bằng một byte khác sử dụng bảng tham chiếu S-box.

+ ShiftRows: Hàm đổi chỗ, trong đó mỗi dòng trong state được dịch một số bước theo chu kỳ

+ MixColumns: Trộn các cột trong state, kết hợp 4 bytes trong mỗi cột

Trang 6

2 Chi tiết

2.1.Mở rộng khóa (Sinh khóa phụ)

2.1.1 Các bước sinh khoá phụ:

B1: Rotword: quay trái 8 bitB2: Subbytes: đối chiếu trong bảng Sbox B3: Rcon: tính Rcon(i) trong đó

Rcon(i) = x(i-1) mod (x8+x4+x2+x +1)B4: Shiftrow

Lặp 10 vòng thì sinh ra 10 khoá con đối với khoá đầu vào là 128, 12 vòng đối với khoá đầu vào là 192, 14 vòng đối với khoá đầu vào 256

Khoá chính (Đầu vào)

Rotword

Subbyte s Rcon

Khoá vòng (Đầu

ra) Shifrow

10 Khoá vòng

Trang 7

094f

Trang 8

2.1.5 Shiftrow

Các dòng của ma trận state được dịch theo chu kỳ sang trái theo nguyên tắc:

Hàng số 0 giữ nguyên

Hàng số 1 dịch 1 byte sang trái

Hàng số 2 dịch 2 byte sang trái

Hàng số 3 dịch 3 byte sang trái

2.1.6 Ví dụ thực hiện sinh khoá:

Thực hiện Rotword W(i-1)

Tham chiếu trên bảng S-box

Trang 9

W[i-1] XOR với Rcon[1] và W[i-4] thì ta được W[i]

W[i-4] XOR với W[i-1] ta vừa tính ở trên ta được W[i] tiếp theo và làm tiếp tục 2 lần nữa

Trang 10

Và ta thu được Round key 1 chưa Shifrow

Sau khi shifrow ta được Round key 1

Trang 12

2.2.2 Hàm ShiftRows

Các dòng của ma trận state được dịch theo chu kỳ sang trái theo nguyêntắc[ CITATION Hoà21 \l 1033 ]:

- Hàng số 0 giữ nguyên

- Hàng số 1 dịch 1 byte sang trái

- Hàng số 2 dịch 2 byte sang trái

- Hàng số 3 dịch 3 byte sang trái

Ví dụ:

2.2.3 Hàm MixColumns

Mỗi cột trong ma trận state được nhân với một đa thức c(x) = 3x3 + x2 + x + 2

1033 ]

Ta có thể biểu diễn kết quả 1 cột sau khi nhân như sau [CITATION Wik24 \l

1033 ]:

ShiftRows

Trang 13

Ví dụ với ma trận sau:

- Để biến đổi cột đầu tiên, ta thực hiện như sau:

- Các phần tử của kết quả của phép nhân ma trận trên là:

 {02}*{d4} = X * (X7 + X6 + X4 + X2) mod (X8 + X4 + X3 + X + 1) = X7 + X5 + X4 + X + 1

= 1011 0011

+ Tương tự:

{03}*{bf} = 1101 1010{01}*{5d} = 0101 1101{01}*{30} = 0011 0000

Trang 14

- Sau khi biến đổi cột đầu tiên ta được:

- Tương tự với các cột còn lại ta có kết quả là:

Trang 15

Trong quá trình giải mã, ma trận ciphertext sẽ bị biến đổi bởi các hàm

AddRoundKey, InvSubBytes, InvShiftRows và InvMixColumns để tạo ra các dữ

liệu trung gian gọi là ma trận trạng thái Ma trận khóa mã sẽ bị biến đổi bởi chức

năng KeyExpansion như trong quá trình mã hóa Tuy nhiên, thứ tự sử dụng các khóa

vòng trong quá trình giải mã ngược với quá trình mã hóa, nghĩa là khóa vòng số 10 sẽđược sử dụng đầu tiên Tiếp theo đó là khóa vòng số 9, số 8, , cuối cùng là khóa mãgốc

3 Các bước giải mã

AddRoundKey

Trang 16

Quá trình giải mã được thực hiện qua 4 hàm cơ bản là AddRoundKey,

InvSubBytes, InvShiftRows, InvMixColumns.

Bước 1 Bước khởi tạo: Dữ liệu cần được mã hóa cipher_text kết hợp với khóa vòng thứ 10, round_key_10 bằng chức năng AddRoundKey

Bước 2 Bước lặp giải mã: kết quả bước 1 được sử dụng để thực hiện tuần tự các chức năng InvShiftRows, InvSubBytes, AddRoundKey và InvMixColumns Bước này được lặp lại 9 lần

Bước 3 Bước tạo ngõ ra: Sau 9 lần lặp ở bước 2, kết quả được sử dụng để thực hiện tuần tự các chức năng InvShiftRows, InvSubBytes và AddRoundKey với khóa mã ban đầu để khôi phục lại plain_text

4 Ví dụ chi tiết

Giả sử chuỗi dữ liệu cần giải mã cipher_text[127:0] và khóa vòng cuối cùng lấy từ quá trình mã hóa round_key_10[127:0] có giá trị như sau:

cipher_text[127:0] = 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a

Trang 17

round_key_10[127:0] = 13 11 1d 7f e3 94 4a 17 f3 07 a7 8b 4d 2b 30 c5

4.1.Hàm AddRoundKey

Hàm AddRoundKey được sử dụng trong quá trình giải mã chính là hàm

AddRoundKey sử dụng trong quá trình mã hóa

Trang 18

Hàng thứ ba quay hai byte và hàng thứ tư quay ba byte.

4.3.Hàm InvSubBytes

Nhiệm vụ của InvSubBytes là thực hiện thay thế từng byte của ma trận trạng thái, bằng một giá trị đã quy định trong chuẩn AES Bảng quy định giá trị thay thế cho InvSubBytes gọi là S-box đảo (Inverse S-box)

Trang 19

Ví dụ, byte cần thay thế là Ha7 thì dò ở hàng “a” và cột 7 trong bảng S-box dảo

sẽ được kết quả là H89

4.4.Hàm InvMixColumns

Trang 20

InvMixColumns của quá trình giả mã là đảo của MixColumns trong quá trình mã hóa Từng cột của ma trận trạng thái sẽ được nhân với ma trận chuyển đổi sau đây.

Trang 21

Tương tự với cách nhân của phần mã hóa, ta được một ma trận mới

IV Đánh giá giải thuật AES

Kể từ khi được công nhận là giải thuật mã hóa tiên tiến, AES ngày càng được

xã hội chấp nhận Ban đầu AES chỉ được sử dụng để mã hóa các dữ liệu nhạycảm Về sau này, người ta đã dùng nó để mã hóa các thông tin bí mật Giải thuậtAES-192/256 được sử dụng để bảo vệ các thông tin mật và tối mật Nó được đưavào các tiêu chuẩn ISO, IETF, IEEE Cho đến nay, hàng trăm sản phẩm ứng dụngdựa theo tiêu chuẩn mã hóa AES đã được NIST cấp chứng chỉ Ở Việt Nam,Thông tư số 01/2011/TT-BTTTT ban hành ngày 04 tháng 01 năm 2011 của Bộthông tin truyền thông đã khuyến nghị sử dụng AES là giải thuật mã hóa sử dụngcho các thông tin, văn bản trong các cơ quan Nhà nước

Trang 22

Ưu điểm của AES:

Kỳ tuyên bố là có độ an toàn cao, được sử dụng làm tiêu chuẩn mã hóamới thay thế cho tiêu chuẩn DES đã lỗi thời AES được sử dụng để mãhóa các thông tin mật đến tuyệt mật

 AES có cấu trúc đơn giản, rõ ràng và có mô tả toán học rất đơn giản

Nhược điểm của AES:

công kênh bên” thì nó chưa thực sự an toàn

dẫn tới một số mối nguy hiểm trong tương lai

Giải thuật AES thực hiện hiệu quả cả bằng phần mềm và phần cứng Thôngthường với những ứng dụng không yêu cầu cao về hiệu năng và tốc độ thì AESđược thực hiện ở dạng phần mềm Với việc thực hiện trên phần mềm, thuật toánAES có thể được viết bằng nhiều ngôn ngữ lập trình phổ biến hiện nay như C/C++, VB.NET, Java, C# và có thể vận hành trên nhiều hệ điều hành như Windows,Linux… Khi thực hiện trên phần cứng, thuật toán AES hỗ trợ thực hiện trên haidòng thiết bị: dòng thiết bị thứ nhất dựa vào một hệ vi xử lý phụ kết hợp với hệ vi

xử lý của máy tính, dòng thiết bị thứ hai thường được thiết kế ở dạng thẻ thôngminh hoặc các thiết bị giao tiếp thông qua cổng USB

V Các dạng tấn công và cách phòng chống

1 Các dạng tấn công

Side-channel attack (tấn công kênh bên):

Side Channels (Kênh bên) là các kênh đầu ra không mong muốn từ một hệ thống.Tấn công kênh bên (hay còn gọi là tấn công kênh kề) là loại tấn công dễ thực hiệntrong các loại tấn công mạnh chống lại quá trình triển khai mã hóa, và mục tiêu củaloại tấn công này là phân tích các nguyên tố, các giao thức, modul, và các thiết bịtrong mỗi hệ thống

Phân loại :

- Tấn công thời gian:

o Kẻ tấn công đo thời gian thực hiện các hoạt động mật mã để suy rathông tin về khóa bí mật hoặc dữ liệu được mã hóa

o Ví dụ: Kẻ tấn công có thể đo thời gian cần thiết để giải mã một đoạn vănbản bằng các khóa khác nhau để tìm ra khóa chính xác

- Tấn công dựa vào lỗi:

o Kẻ tấn công cố ý gây lỗi cho thiết bị điện toán để thu thập thông tin vềkhóa bí mật hoặc dữ liệu được mã hóa

Trang 23

o Ví dụ: Kẻ tấn công có thể gây lỗi cho một chip xử lý để buộc nó tiết lộthông tin về khóa bí mật.

- Tấn công phân tích năng lượng:

o Kẻ tấn công đo mức tiêu thụ điện năng của thiết bị điện toán trong quátrình thực hiện các hoạt động mật mã để suy ra thông tin về khóa bí mậthoặc dữ liệu được mã hóa

o Ví dụ: Kẻ tấn công có thể đo mức tiêu thụ điện năng của một chip xử lý

để phân biệt giữa các thao tác mã hóa với các thao tác khác

- Tấn công phân tích điện từ:

o Kẻ tấn công thu thập các tín hiệu điện từ được phát ra từ thiết bị điệntoán trong quá trình thực hiện các hoạt động mật mã để suy ra thông tin

về khóa bí mật hoặc dữ liệu được mã hóa

o Ví dụ: Kẻ tấn công có thể thu thập tín hiệu điện từ từ một card smartcard

để suy ra thông tin về khóa bí mật được lưu trữ trên card

Known attacks:

Vào năm 2002, Nicolas Courtois và Josef Pieprzyk phát hiện một tấn công trên lýthuyết gọi là tấn công XSL và chỉ ra điểm yếu tiềm tàng của AES

Tuy nhiên, một vài chuyên gia về mật mã học khác cũng chỉ ra một số vấn đề trong

cơ sở toán học của tấn công này và cho rằng các tác giả đã có sai lầm trong tính toán.Việc tấn công dạng này có thực sự trở thành hiện thực hay không vẫn còn để ngỏ vàcho tới nay thì tấn công XSL vẫn chỉ là suy đoán

5 Cách phòng chống:

Phương pháp 1: Mã hóa cực mạnh

- Sử dụng các biện pháp để tăng tính bảo mật của thuật toán mã hóa AES:

o Sử dụng khóa dài

o Cần bảo vệ khóa bí mật cẩn thận, tránh tiết lộ cho bất kỳ ai

o Sử dụng các kỹ thuật chống tấn công kênh bên: che chắn phần cứng,cân bằng tiêu thụ điện năng, sử dụng thuật toán mã hóa chống SCA

Phương pháp 2: Bảo vệ dữ liệu theo phương pháp vật lý

- Nếu một kẻ tấn công không thể tiếp cận vật lý với dữ liệu, dĩ nhiên khả năngđánh cắp khóa mã hóa sẽ khó khăn hơn Vì vậy, trước những cuộc tấn công qua âmthanh tiềm tàng, bạn có thể sử dụng các giải pháp bảo vệ vật lý như đặt laptop vàocác hộp cách ly âm thanh, không để ai lại gần máy tính khi đang giải mã dữ liệu hoặc

sử dụng các nguồn âm thanh băng rộng tần số đủ cao để gây nhiễu

Phương pháp 3: Kết hợp cả 2 cách trên

Trang 24

VI Demo mã hóa và giải mã AES

VII Kết luận

Bảo mật thông tin là một vấn đề lớn được quan tâm không chỉ trong lĩnh vực quân

sự mà còn trong lĩnh vực kinh doanh cũng như giữ bí mật các thông tin cá nhân Với

Trang 25

sự phát triển mạnh mẽ về khoa học công nghệ và các hệ thống không dây thì vấn đề bảo mật ngày càng được chú trọng và phát triển Bảo đảm bí mật thông tin trở thành một vấn đề không thể thiếu khi nói đến giao dịch trên Internet.

Đối với người nghiên cứu về bảo mật thì quá trình chứng thực và trao đổi khóa trong mạng là vô cùng quan trọng Thông qua tìm hiểu cấu trúc khung của các bản tingiúp cho người làm bảo mật có thể phát hiện các tấn công từ bên ngoài hay là các sự

cố xảy ra trong mạng Từ đó có thể đảm bảo cho hệ thống an toàn hơn

Với các ưu điểm nổi bật, tiêu chuẩn mã hóa tiên tiến (AES) đã chứng tỏ đây chính là một tiêu chuẩn đáp ứng được các yêu cầu mật mã dữ liệu của thời đại mới Việc tấn công để phá thuật toán này chỉ được các nhà khoa học đưa ra trên lý thuyết

và đang còn nhiều vấn đề gây tranh cãi Tuy hiện nay thuật toán AES được coi là an toàn nhưng với sự phát triển mạnh mẽ trong lĩnh vực công nghệ thông tin và viễn thông như hiện nay thì không có một thuật toán nào đảm bảo an toàn trong tương lai.Vì vậy vấn đề bảo mật còn rất nhiều điều cần phải tìm hiểu

Tài liệu tham khảo

[1] H X Dậu, An toàn và bảo mật hệ thống thông tin, Hà Nội, 2021

[2] Wikipedia, “Rijndael S-box,” 5 7 2023 [Trực tuyến] Available:

https://en.wikipedia.org/wiki/Rijndael_S-box [Đã truy cập 22 3 2024].

[3] Wikipedia, “Rijndael MixColumns,” 6 2 2024 [Trực tuyến] Available:

https://en.wikipedia.org/wiki/Rijndael_MixColumns [Đã truy cập 22 3 2024].

Ngày đăng: 23/05/2024, 06:10

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w