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

tìm hiểu và cài đặt thuật toán mã hoá aes 256

16 307 2

Đ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 16
Dung lượng 1,64 MB

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

Nội dung

Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hoá và giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau ví dụ như chứng thực nguồn gốc nội dung thông tin kỹ thuật chữ ký đi

Trang 1

TRƯỜNG HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA MẬT MÃ - -

BÁO CÁO

TÌM HIỂU VÀ CÀI ĐẶT THUẬT

TOÁN MÃ HOÁ AES 256

Giáo viên hướng dẫn : Phạm Thị Hiên

Lớp : H25 Nhóm sinh viên thực hiện : Nguyễn Quang Vinh

Phan Văn Vương Phạm Thị Hải Yến

Hà Nội, 2017

Trang 2

Mục lục

LỜI NÓI ĐẦU 2

Phần 1: Tổng quan về AES 3

1 Giới thiệu AES 3

2 Quy trình mã hoá AES 4

Phần 2: Các vòng AES 6

1 Biến đổi SubBytes trong AES 6

2 Phép biến đổi ShiftRows trong AES 7

3 Phép biến đổi MixColumns trong AES 7

4 Phép biến đổi AddRoundKey trong AES 8

5 Mở rộng khoá 9

Phần 3: Độ an toàn của AES 10

1 Đánh giá chung 10

2 Các tiêu chuẩn thiết kế an toàn trong AES 10

a Tiêu chuẩn thiết kế Rijndael nêu trong đề nghị AES 10

b Tiêu chuẩn thiết kế S-hộp 10

c Tiêu chuẩn thiết kế cho số các bước dịch 10

d Tiêu chuẩn thiết kế phép biến đổi MixColumns 11

e Tiêu chuẩn lựa chọn số vòng lặp 11

f Tiêu chuẩn mở rộng khoá 11

Phần 4: Chế độ hoạt động OFB 12

1 Giới thiệu các chế độ hoạt động của AES 12

2 Chế độ mã OFB 12

3 Độ an toàn của chế độ OFB 14

Trang 3

LỜI NÓI ĐẦU

Cùng với sự phát triển của khoa học kỹ thuật và ứng dụng tin học trong mọi lĩnh vực của đời sống như an ninh quân sự quốc phòng và trong các giao dịch thương mại điện tử,…nhu cầu bảo

vệ thông tin trong các hệ thống và ứng dụng ngày càng được chú trọng Vì vậy mà khoa học mật mã được được ứng dụng rộng rãi với mong muốn bảo vệ được những thông tin cơ sở dữ liệu quan trọng Ứng dụng của khoa học mật mã không chỉ đơn thuần là mã hoá và giải mã thông tin mà còn bao gồm nhiều vấn đề khác nhau

ví dụ như chứng thực nguồn gốc nội dung thông tin (kỹ thuật chữ

ký điện tử), chứng nhận tính xác thực về người sở hữu mã khoá, các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện tử

an toàn

Trong chương trình học tập về an toàn thông tin của sinh viên hiện nay thì việc tự mã và giải mã dữ liệu là khá quan trọng

Nó sẽ giúp sinh viên tìm hiểu sâu hơn về các thuật toán mã và giải

mã cũng như cung cấp cách cài đặt các thuật toán trên hệ điều hành Với những lý do trên, nhóm sinh viên chúng em chọn đề tài Tìm hiểu và cài đặt thuật toán mã hoá AES 256

Trang 4

Phần 1: Tổng quan về AES

1 Chuẩn mã hóa dữ liệu tiên tiến AES

Standard) là một hệ mã khóa bí mật có tên là Rijdael (do hai nhà

các khóa và các khối dữ liệu có độ dài lớn hơn tuy nhiên khi được

2001, nó được qui đi ̣nh chỉ làm việc với các khối dữ liệu 128 bit và các khóa có độ dài 128, 192 hoặc 256 bit (do đó còn đặt cho các

dụng)

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ã

AES có độ dài khóa là 128 bit (một chữ số nhị phân có giá trị

0 hoặc 1), 192 bít và 256 bít tương ứng gọi là AES-128, AES-192

và AES-256

2 Cơ sở toán học của AES:

a Các biểu diễn Byte

Byte là đơn vị xử lý cơ bản trong hệ mật AES, đó là 1 dãy 8 bit

được viết thành {63}

Trang 5

Phép nhân

3 Ký hiệu và quy ước

Độ dài

Độ dài khối

Số vòng (Nr)

Bảng 1: Tổ hợp Khóa-khối-vòng

k 0,0 k 0,1 k 0,2 k 0,3 k 0,4 k 0,5 k 0,6 k 0,7

k 1,0 k 1,1 k 1,2 k 1,3 k 1,4 k 1,5 k 1,6 k 1,7

k 2,0 k 2,1 k 2,2 k 2,3 k 2,4 k 2,5 k 2,6 k 2,7

k 3,0 k 3,1 k 3,2 k 3,3 k 3,4 k 3,5 k 3,6 k 3,7

Bảng 2: Biểu diễn trạng thái khoá N k = 8

Vòng lặp chính của AES thực hiện các hàm sau: SubBytes(), ShiftRows(), MixColumns() và AddRoundKey() Ba hàm đầu của một vòng AES được thiết kế để ngăn chặn phân tích mã bằng phương thức “mập mờ“ (confusion) và phương thức “khuếch tán“ (diffusion), còn hàm thứ tư được thiết kế để mã hóa dữ liệu

4 Quy trình mã hoá AES

Trang 6

 Thực hiện vòng lặp: Thực hiện (Nr – 1) chu kỳ mã hoá sử dụng cùng thủ tục mã hoá Mỗi chu kỳ mã hoá gồm 4 thao tác biến đổi: SubBytes, ShiftRows, MixColumns và AddRoundKey

qua thao tác MixColumns

Trang 7

Phần 2: Các vòng AES

1 Biến đổi SubBytes trong AES

Phép biến đổi SubBytes là phép thay thế phi tuyến được thực hiện độc lập trên mỗi byte của trạng thái sử dụng một bảng thay thế hộp S-hộp này có tính khả nghịch được tạo bởi 2 phép biến đổi:

xạ affine

byte với giá trị {63} hay {01100011}

[

𝑏0′

𝑏1′

𝑏2′

𝑏3′

𝑏4′

𝑏5′

𝑏6′

𝑏7′ ]

=

[

𝑏0

𝑏1

𝑏2

𝑏3

𝑏4

𝑏5

𝑏6

𝑏7]

+

[

1 1 0 0 0 1 1 0]

y

x

0 63 7c 77 7b f2 6b 6f c5 30 01 67 ab fe d7 ab 76

1 ca 82 c9 7d fa 59 47 f0 ad d4 a2 af 9c a4 72 c0

2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15

3 04 c7 23 c3 18 96 05 9a 07 12 80 e2 eb 27 b2 75

4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84

6 d0 ef aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8

8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73

9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db

a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79

b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 ea 65 7a ae 08

c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a

d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e

e e1 s8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df

f 8c a1 89 0d bf e6 42 68 41 99 2d 0f b0 54 bb 16

Bảng 2: S-hộp, thay thế các giá trị theo byte {xy} (dạng

hexa)

Trang 8

2 Phép biến đổi ShiftRows trong AES

Phép biến đổi ShiftRows thực hiện biến đổi trên các hàng của mảng trạng thái Hàng đầu tiên r = 0 không dịch chuyển, tấy cả các hàng khác được dịch vòng trái theo số lượng byte khác nhau Cụ thể:

𝑠𝑟,𝑐′ = 𝑠𝑟,(𝑐+𝑠ℎ𝑖𝑓𝑡(𝑟,𝑁𝑏))𝑚𝑜𝑑𝑁𝑏 𝑣ớ𝑖 0 < 𝑟 < 4 𝑣à 0 ≤ 𝑐 < 𝑁𝑏

shift (2,4) = 2, shift (3,4) = 3

Hàm ShiftRows() dịch vòng 3 hàng cuối của mạng trạng thái

3 Phép biến đổi MixColumns trong AES

Phép biến đổi MixColumn thực hiện biến đổi theo từng cột Mỗi cột được xem như là một đa thức 4 hạng tử, các cột được

Điều này có thể biểu diễn dưới dạng 1 phép nhân ma trận:

Trang 9

Phép MixColumns() thao tác trên mảng trạng thái theo cách cột – cột

[

𝑠0,𝑐′

𝑠1,𝑐′

𝑠2,𝑐′

𝑠3,𝑐′ ]

= [

02𝐻 03𝐻

01𝐻 02𝐻

01𝐻 01𝐻

03𝐻 01𝐻

01𝐻 01𝐻

03𝐻 01𝐻

02𝐻 03𝐻

01𝐻 02𝐻

] [

𝑆0,𝐶

𝑆1,𝐶

𝑆2,𝐶

𝑆3,𝐶] với 0 ≤ 𝑐 < 𝑁𝑏

4 Phép biến đổi AddRoundKey trong AES

Phép biến đổi AddRoundKey() được gọi là phép cộng khoá Trong phép biến đổi này, một khoá vòng được cộng với trạng thái bằng 1 phép toán XOR đơn giản trên bit Mỗi khoá vòng

cộng với các cột của trạng thái sao cho:

[𝑠0,𝑐′ , 𝑠1,𝑐′ , 𝑠2,𝑐′ , 𝑠3,𝑐′ ] = [𝑠0,𝑐, 𝑠1,𝑐, 𝑠2,𝑐, 𝑠3,𝑐]⨁[𝑤𝑟𝑜𝑢𝑛𝑑 + 𝑁𝑏 + 𝑐]

Thao tác AddRoundKey tác động lên mỗi cột của trạng thái

Trang 10

5 Mở rộng khoá

Thuật toán AES nhận vào khoá mã K và thực hiện phép mở rộng khoá để tạo ra 1 lược đồ khoá Phép mở rộng khoá tạo ra

Hàm SubWord(): là hàm nhận từ 4 byte làm đầu vào và áp dụng S-Hộp đối với mỗi byte để tạo thành đầu ra là một từ

thực hiện phép hoán vị tuần hoàn và cho kết quả đầu ra là một từ [𝑎1, 𝑎2, 𝑎3, 𝑎0]

SubWord() được áp dụng cho w[i – 1] trước khi áp dụng XOR

Phép tạo các hằng: Rcon[i]

Rcon[i]=(Rc[1],’00’,’00’,’00’) với Rc[1]=01, Rc[i]={02}.Rc[1-1];(i ≥ 2)

Trang 11

Phần 3: Độ an toàn của AES

1 Đánh giá chung

AES sử dụng các phép biến đổi là các phép thay thế và hoán vị nên dễ hiểu và dễ cài đặt Do sử dụng phép tra bảng nên AES có tốc độ tính toán rất nhanh

Thiết kế và độ dài khoá của thuật toán AES (128, 192 và 256 bít) là đủ an toàn để bảo vệ các thông tin được xếp vào loại tối mật Các thông tin tuyệt mật sẽ phải dùng khóa 192 hoặc 256 bít AES dường như thách thức các kiểu tấn công hiện nay Ví dụ như tấn công bằng phương pháp vét cạn, ta phải mất 2128 phép tính toán mới có thể tìm ra được khoá Đối với tốc độ máy tính hiện nay thì điều này được cho là an toàn

Vào thời điểm năm 2006, dạng tấn công lên AES duy nhất thành công là tấn công kênh bên Tấn công kênh bên không tấn công trực tiếp vào thuật toán mã hóa mà thay vào đó, tấn công lên các hệ thống thực hiện thuật toán có sơ hở làm lộ dữ liệu

2 Các tiêu chuẩn thiết kế an toàn trong AES

a Tiêu chuẩn thiết kế Rijndael nêu trong đề nghị AES

 Kháng cự chống lại tất cả các tấn công đã biết

 Tốc độ và tính gọn của mã lệnh trên một miền rộng của các kiến trúc phần cứng khác nhau

 Tính đơn giản của thiết kế

b Tiêu chuẩn thiết kế S-hộp

 Tính phi tuyến:

- Độ lớn tương quan đầu vào – đầu ra tối đa càng nhỏ càng tốt để chống lại tấn công tuyến tính

- Xác suất lan truyền sai khác cực đại càng nhỏ càng tốt để chống lại tấn công vi sai

 Độ phức tạp đại số: biểu diễn đại số của S-Hộp trong GF(28) cần phải phức tạp để chống lại tấn công nội suy

c Tiêu chuẩn thiết kế cho số các bước dịch

 Tối ưu tính khuếch tán: để đảm bảo tính kháng cự chống lại các tấn công vi sai và tuyến tính

 Tính kháng cự chống lại các tấn công vi sai chặt cụt và các tấn công bão hoà cần phải được cực đại

Trang 12

d Tiêu chuẩn thiết kế phép biến đổi MixColumns

 Kích thước: Phép biến đổi là một biến đổi xếp gạch thao tác trên các cột gồm 4-byte

 Tính tuyến tính

 Khuếch tán

 Hiệu suất trên các bộ xử lý 8-bit: hiệu suất xử lý trên các bộ

xử lý 8-bit cần phải cao Điều kiệ này cần bởi vì MixColumns

là bước duy nhất mà việc đạt được hiệu suất tốt trên các bộ

xử lý 8-bit là không

e Tiêu chuẩn lựa chọn số vòng lặp

Phân tích mã khối chỉ ra rằng sức kháng cự của các mã khối nhièu vòng chống lại các tấn công mã thám tăng lên cùng với số vòng của mã khối

Số vòng lặp của mã khối được xác định bằng cách xem xét số tối

đa các vòng mà đối với chúng còn tìm được các tấn công đường tắt hiệu quả hơn đáng kể so với duyệt khoá vét cạn Sau đó thêm một số dư an toàn đáng kể Đối với AES có độ dài khối và độ dài khoá bằng 128 bit, không có tấn công đường tắt đã được tìm thấy cho các phiên bản rút gọn nhiều hơn 6 vòng Người ta thêm vào 4 vòng như 1 độ dư an toàn

Đối với các phiên bản AES có khoá dài hơn, các vòng được tăng thêm 1 cho mỗi 32 bit được thêm vào trong khoá mã

f Tiêu chuẩn mở rộng khoá

 Tính hiệu quả:

sử dụng ít lượng bộ nhớ làm việc

xử lý

 Loại bỏ tính đối xứng: Tính phi đối xứng trong lược đồ khoá chống lại tính đối xứng trong các biến đổi vòng và giữa các vòng dẫn tới các điểm yếu hoặc cho phép các tấn công Ví dụ: các khoá yếu trong DES, tấn công trượt khối

 Khuếch tán: Cần có độ khuếch tán hiệu quả các sai khác khoá mã vào các khoá được mở rộng

 Phi tuyến: Cần đảm bảo đủ tính phi tuyến để ngăn cản việc xác định hoàn toàn các sai khác trong khoá mở rộng chỉ từ các sai khác của khoá mã

Trang 13

Phần 4: Chế độ hoạt động OFB

1 Giới thiệu các chế độ hoạt động của AES

Mật mã khối xử lý các thông báo có cỡ bằng cỡ khối dữ liệu của nó Thông thường, độ dài của thông báo lớn hơn cỡ của khối

dữ liệu, khó đó thông báo được chia thành các khối dữ liệu liên tiếp nhau và mã khối tuần tự xử lý lần lượt từng khối một

Có nhiều chế độ hoạt động khác nhau cho mã khối Sau khi AES ra đời, NIST đã định nghĩa 5 chế độ hoạt động:

Ký hiệu:

khoá K

các khối n-bit cho các chế độ ECB và CBC và các khối r-bit cho các chế độ CFB và OFB với 𝑟 ≤ 𝑛 cố định thích hợp

IV: vecto khởi tạo n-bit

2 Chế độ mã OFB

Chế độ mã dòng OFB có thể được sử dụng cho những ứng dụng trong đó tấn công lan sai cần phải tránh Chế độ này cho phép mã hoá các khối có kích thước khác nhau và đầu ra của hàm

mã E được phản hồi

Có hai phiên bản của OFB sử dụng mã khối n-bit: Chế độ OFB phản hồi đầy đủ và Chế độ OFB phản hồi r-bit

Trang 14

Chế độ phản hồi đầu ra OFB

Thuật toán 1: Chế độ OFB phản hồi đầy đủ

Mã hoá

Đầu vào: Khoá K có k-bit, n-bit IV, các khối bản rõ r-bit

a) 𝑂𝑗 ← 𝐸𝐾(𝐼𝑗)

được định danh như là bit thứ nhất)

sau)

Giải mã

khối có r-bit

Đầu ra: các khối rõ, mỗi khối có r-bit

Trang 15

Thuật toán 2: Chế độ OFB phản hồi đầu ra r-bit

Mã hoá

Đầu vào: Khoá K có k-bit, n-bit IV, các khối bản rõ r-bit

a) 𝑂𝑗 ← 𝐸𝐾(𝐼𝑗)

được định danh như là bit thứ nhất)

trái của thanh ghi)

Giải mã

khối có r-bit

Đầu ra: các khối rõ, mỗi khối có r-bit

Các tính chất:

1 bản rõ được mã thành đầu ra khác nhau

được khôi phục tương ứng bị đảo ngược

các lỗi bit bản mã, nhưng không thể tự đồng bộ sau khi

mất các bit bản mã

3 Độ an toàn của chế độ OFB

Trang 16

- Nhiều thông báo được mã hoá với cùng một khoá với điều kiện IV khác nhau được sử dụng

trong bản mã sẽ ảnh hưởng trực tiếp đến bản rõ

Ngày đăng: 19/05/2019, 20:59

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

TÀI LIỆU LIÊN QUAN

w