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

Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)

26 1,5K 1

Đ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 26
Dung lượng 663,16 KB

Nội dung

Đề tài : ỨNG DỤNG CHUẨN MÃ HÓA NÂNG CAO (AES) TRONG GIAO THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP) Ngoài phần mở đầu, kết luận và mục tài liệu tham khảo luận văn gồm 3 chương: Chương 1: Tổng quan về chuẩn mã hóa nâng cao (AES) Chương 2: Giao thức đóng gói bảo mật dữ liệu (ESP) Chương 3: Ứng dụng của chuẩn mã hóa nâng cao trong giao thức đóng gói bảo mật dữ liệu

Trang 1

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

-

ĐẶNG VĂN TUẤN

ỨNG DỤNG CHUẨN MÃ HÓA NÂNG CAO (AES) TRONG GIAO

THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP)

CHUYÊN NGÀNH : KỸ THUẬT VIỄN THÔNG

MÃ SỐ: 60.52.02.08

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT

HÀ NỘI – NĂM 2014

Trang 2

Luận văn được hoàn thành tại:

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

Phản biện 2: PGS.TS Trương Vũ Bằng Giang

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông

Vào lúc: 8 giờ 30 ngày 15 tháng 02 năm 2014

Có thể tìm hiểu luận văn tại:

- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

Trang 3

MỞ ĐẦU

Với sự phát triển nhanh chóng của khoa hoc và công nghệ, tốc độ xử

lý của các bộ vi xử lý ngày càng cao, phương pháp mã hóa tiêu chuẩn (DES - Data Encryption Standard) đã trở nên không an toàn trong bảo mật thông tin do độ dài khóa mã ngắn (56 bits) Thuật toán Rijndael của hai tác giả Vincent Rijmen và Joan Daeman đã được Viện tiêu chuẩn và công nghệ Hoa kỳ (NIST - National Institute Standards of Technology) chính thức chọn trở thành chuẩn mã hóa nâng cao (AES - Advanced Encryption Standard) từ ngày 02 tháng 10 năm 2000 nhằm phục vụ nhu cầu bảo mật thông tin liên lạc của Chính phủ Hoa Kỳ cũng như trong các ứng dụng dân

Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng Vì thế việc nghiên cứu về chuẩn mật mã nâng cao và ứng dụng

nó trong các trường bảo mật thông tin là rất cần thiết

Ngoài phần mở đầu, kết luận và mục tài liệu tham khảo luận văn gồm 3 chương:

Chương 1: Tổng quan về chuẩn mã hóa nâng cao (AES)

Chương 2: Giao thức đóng gói bảo mật dữ liệu (ESP)

Chương 3: Ứng dụng của chuẩn mã hóa nâng cao trong giao thức

đóng gói bảo mật dữ liệu

Trang 4

CHƯƠNG 1: TỔNG QUAN VỀ CHUẨN MÃ HÓA NÂNG CAO

(AES) 1.1 Đặt vấn đề

Với tốc độ và khả năng xử lý của các bộ vi xử lý ngày càng được nâng cao, phương pháp mã hóa chuẩn DES, Tri DES đã trở nên không an toàn trong bảo mật thông tin Vì thế cần nghiên cứu chuẩn mật mã đáp ứng được nhu cầu bảo mật thông tin, và chuẩn mã hóa nâng cao AES ra đời

Có năm thuật toán được vào vòng chung kết, gồm có: Mars, RC6, Serpent, Twofish và Rijndael Các thuật toán này đều đạt các yêu cầu của AES nên được gọi chung là các thuật toán ứng viên AES Các thuật toán ứng viên AES có độ an toàn cao, chi phí thực hiện thấp Tuy nhiên với thiết kế đẹp và đơn giản thuật toán Rijndael do hai nhà mật mã học người

Bỉ là Joan Deamen và Vincent Rijmen thiết kế đã được chọn là thuật toán của AES

1.2 Thuật toán AES

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

Trong AES các phép toán cộng và nhân được thực hiện trên các byte trong trường hữu hạn Galois GF( ) Các phần tử của trường GF( ) được xem như là các đa thức [1]

Phép cộng:

Phép cộng giữa hai phần tử (các byte) trong trường hữu hạn được thực hiện bằng cách cộng theo modulo 2 các bít tương ứng trong biểu diễn của các byte này Phép cộng các byte A và B với:

trong đó Ci  ai b mod 2i với i 1,8 

Các phần tử của trường hữu hạn còn có thể được biểu diễn dưới dạng

đa thức Ví dụ tổng của A  73H và B 4E  H (viết dưới dạng cơ số 16 - hexa) là:

73  4E  3D

Trang 5

Viết dưới dạng nhị phân:

1.3 Mô tả AES theo Rijndael

1.3.1 Đầu vào và đầu ra của phép mã và giải mã

AES mã hóa một khối bản rõ M 128 bít thành một khối bản mã C

128 bít bằng cách dùng một khóa mã K có độ dài 128 bít (hoặc 192 hoặc

256 bít) tương ứng với AES-128 (hoặc AES-192 hoặc AES-256) Thuật toán thực hiện trên các byte và kích thước khối đối với đầu vào đầu ra và khóa được biểu thị bằng các từ 32 bít (4 byte) Đối với phép mã hóa, đầu vào là khối rõ và khóa, đầu ra là bản mã Đối với phép giải mã, đầu vào là khối mã và khóa, đầu ra là khối rõ Biến đổi vòng của Rijndael và các bước của nó, thao tác trên một kết quả trung gian, được gọi là trạng thái Trạng thái có thể được vẽ như là một mảng chữ nhật các byte với 4 dòng

Số các cột trong trạng thái được ký hiệu bởi Nb và bằng độ dài khối chia cho 32 (đối với AES thì Nb bằng 4) Độ dài khóa thì được ký hiệu bởi Nk

=4, 6, hoặc 8 (bằng độ dài khóa chia cho 32 bit word) Số các vòng được

Trang 6

ký hiệu bởi Nr và phụ thuộc vào độ dài khối và độ dài khóa, với Nr = 10 khi Nk = 4, Nr = 12 khi Nk = 6, Nr = 14 khi Nk = 8

Bảng 1.1: Bảng kết hợp độ dài khóa- kích thước khối- số vòng

Rijndael là một mã khối khóa - lặp: nó bao gồm việc áp dụng lặp một ánh xạ vòng trên trạng thái Hình vẽ 1.1 sau minh họa cấu trúc cơ sở của thuật toán AES

Hình 1.1: Cấu trúc cơ sở của thuật toán AES

Tầng phi tuyến: Áp dụng song song của các S - box mà có các tính

chất phi tuyến trong trường hợp tối ưu nhất

Tầng trộn tuyến tính: Đảm bảo khuếch tán cao qua nhiều vòng

Tầng cộng khóa: Là phép XOR từng bit của Round key và trạng thái

trung gian

Trong thực tế, tầng trộn tuyến tính của Rijndael lại bao gồm hai tầng con, đó là ShiftRows và MixColumns

Quy trình mã hóa và giải mã AES sử dụng một hàm lặp là kết hợp

Trang 7

của bốn hàm biến đổi sau (đơn vị xử lý là byte):

+ Mỗi byte trong trạng thái sẽ được thay thế bằng một byte khác sử dụng theo bảng thế (S-box)

+ Dịch chuyển, các hàng trong trạng thái được dịch vòng theo số bước khác nhau

+ Quá trình trộn làm việc theo các cột trong khối theo một phép biến đổi tuyến tính

+ Cộng một khóa RoundKey vào trạng thái

Giải mã AES bằng cách biến đổi ngược của các biến đổi ở phép mã hóa AES hoặc bằng cách biến đổi tương đương Các biến đổi này được minh họa qua hình 1.2 dưới đây (với độ dài khóa 128bits, Nr =10) [1]:

Hình 1.2: Quy trình mã hóa và giải mã AES

Trang 8

(4) C = AddRoundKey (S, WNr)

1.3.3.2 Quy trình giải mã

Giải mã Rijndael có 2 cách giải mã đó là: giải mã trực tiếp và giải mã bằng thuật toán giải mã tương đương

Giải mã trực tiếp: Mọi biến đổi được dùng trong các phép tính mã

hóa là khả nghịch Cài đặt phép tính giải mã là giữ nguyên các thứ tự các

biến đổi đã dùng trong phép mã hóa, chỉ thay các phép biến đổi bằng các biến đổi ngược của chúng

Giải mã tương đương: được thực hiện bằng cách đảo ngược thứ tự

của hàm SubByte-1() và ShiftRows-1(), thay đổi thứ tự của AddRoundKey(), MixColumns-1 () trong các lần lặp sau khi thay đổi khóa cho giá trị Round = 1 → Nr-1 bằng cách sử dụng biến đổi MixColumns() Các từ đầu tiên và cuối cùng của danh sách khóa không bị thay đổi khi ta

áp dụng phương pháp này

1.3.4.1 Biến đổi SubBytes()

Biến đổi SubBytes() thay thế mỗi byte riêng rẽ của state s r,c bằng một giá trị mới s’r,c sử dụng bảng thay thế (S - box), nó là bảng có ngược Hình

1.3 chỉ ra ảnh hưởng của biến đổi SubBytes() trên state [1]

Hình 1.3: SubBytes() áp dụng S - box cho mỗi byte của state

1.3.4.2 Biến đổi ShiftRows()

Hình 1.4 chỉ ra biến đổi ShiftRows()

Trang 9

Hình 1.4: Dịch vòng ShiftRows() ba hàng cuối cùng trong state

Trong biến đổi ShiftRows(), các byte trong ba hàng cuối cùng của

trạng thái được dịch vòng đi các số byte khác nhau (độ lệch) Cụ thể, biến

đổi ShiftRows(), xử lý như sau:

s’rc = sr(c+r) mod 4, với 0 < r < 4 và 0 c <4 (trong đó r là số hàng)

1.3.4.3 Biến đổi MixColumns()

Biến đổi MixColumns() tính toán trên từng cột của state Các cột

được coi như là đa thức trong trường GF(28) và nhân với một đa thức a(x) theo modulo (x4+1), với [1]

a(x) = (03)x3 +(01)x2 +(01)x + (02) Biến đổi này có thể được trình bày như phép nhân một ma trận, mà mỗi byte được hiểu như là một phần tử trong trường GF(28

tương ứng với phép XOR từng bit Hình 1.5 chỉ ra biến đổi MixColumns ()

Trang 10

Hình 1.5: MixColumns() tính toán trên từng cột của state

1.3.4.4 Biến đổi Addroundkey()

Trong biến đổi Addroundkey(), một khóa vòng được cộng với state

bằng một phép XOR theo từng bit đơn giản Mỗi khóa vòng gồm có 4 từ (128 bit) được lấy từ lịch trình khóa 4 từ đó được cộng vào mỗi cột của

state, sao cho:

[s’0,c, s’1,c, s’2,c, s’3,c ] = [s0,c, s1,c, s2,c, s3,c ]  [w(4*i + c)] với 0  c < 4 Trong đó w(4*i + c) là các từ thứ c của khóa vòng thứ i

wi = [w(4*i), w(4*i + 1), w(4*i + 2), w(4*i + 3) ]

của lịch trình khóa và i là một giá trị nằm trong khoảng 0 i N r Trong

phép mã hóa, phép cộng khóa vòng khởi đầu thực hiện với i = 0, trước khi

áp dụng đầu tiên của hàm vòng Việc áp dụng biến đổi Addroundkey() vào

N r vòng của phép mã hóa xày ra khi 1 i N r

Biến đổi vòng của Rijndael và các bước của nó, thao tác trên một kết quả trung gian, được gọi là byte với 4 dòng Số các cột trong trạng thái ký hiệu bởi Nb và bằng độ dài khối chia cho 32 (đối với AES thì Nb bằng 4)

Số vòng biến đổi, ký hiệu là Nr theo công thức: Nr = max {Nb, Nk} +

Trang 11

nhận Việc áp dụng phép thế SRD phi tuyến đảm bảo tính phi tuyến của lược đồ, không cần phải thêm nhiều các yêu cầu lưu trữ tạm thời trên bộ

xử lý 8 bit

Trong khi kéo dài khóa, khóa mã được kéo dài thành mảng khóa kéo dài, bao gồm 4 dòng và Nb(Nr + 1) cột Mảng này được ký hiệu bởi W[4][Nb (Nr +1)] Hàm kéo dài khóa phụ thuộc vào giá trị của Nk: Có một phiên bản cho Nk  6, và một phiên bản cho Nk > 6

1.4 Phạm vi, ý nghĩa và ứng dụng của AES

Phạm vi chính thức của một chuẩn FIPS là tương đối hạn chế: FIPS chỉ áp dụng cho hành chính liên bang Hơn thế nữa, AES mới chỉ được sử dụng cho các tài liệu chứa thông tin nhạy cảm nhưng không mật AES từ khi được chấp nhận đã được sử dụng như một chuẩn mật mã ngầm định trên toàn thế giới Việc chấp nhận Rijndael như một chuẩn chính phủ đã đem đến cho nó một số sự chứng thực về chất lượng

Các nhân tố chính làm cho sự chấp nhận nhanh chóng đối với Rijndael là việc nó không có bản quyền, có thể cài đặt dễ dàng

1.4.2 Ưu, nhược điểm của AES

1.4.2.1 Ưu điểm

+) AES đã được chính phủ Hoa kỳ tuyến bố là có độ an toàn cao, và

đã được sử dụng thông tin mật;

+) AES có mô tả toán học đơn giản;

+) Cấu trúc rõ ràng đơn giản

Trang 12

1.4.3 Ứng dụng của AES

+) Hiện nay, AES được sử dụng phổ biến trên toàn thế giới để bảo vệ

dữ liệu ở các tổ chức ngân hàng, tài chính, chính phủ, thương mại điện tử, chữ ký điện tử;…

+) Mã hóa AES được ứng dụng nhanh đối với cả phần cứng và phần mềm, và chỉ yêu cầu một không gian lưu trữ nhỏ, lý tưởng để sử dụng cho việc mã hóa những thiết bị cầm tay nhỏ như ổ USB flash, ổ đĩa CD;…

+) Sử dụng trong đóng gói bảo mật dữ liệu;

+) Sử dụng trong các giao thức mạng như VPN-IPsec, wifi

Kết luận chương I

Chương I đã đưa ra được cấu trúc của AES, các bước mã hóa và giải

mã của thuật toán AES Ngoài ra, tất cả các bước của việc mã hóa và giải

mã đều được thiết kế thích hợp với cơ chế xử lý song song nên AES càng chứng tỏ thế mạnh của mình trên các hệ thống thiết bị mới Tuy nhiên, vẫn tồn tại một số hạn chế mà hầu hết liên quan đến quá trình giải mã

Trang 13

CHƯƠNG II: GIAO THỨC ĐÓNG GÓI BẢO MẬT DỮ LIỆU (ESP) 2.1 Giới thiệu về giao thức ESP

Tiêu đề ESP được thiết kế để cung cấp một kết hợp các dịch vụ bảo mật trong IPv4 và IPv6 ESP có thể được áp dụng một mình, hoặc kết hợp với AH, hoặc trong dạng kết hợp cả ESP và AH Dịch vụ bảo mật có thể được cung cấp giữa một cặp giao tiếp máy chủ, giữa một cặp giao tiếp cổng an ninh, hoặc giữa một cổng an ninh và một máy chủ Tiêu đề ESP được chèn vào sau tiêu đề IP và trước tiêu đề giao thức lớp kế tiếp (chế độ vận chuyển) hoặc trước một tiêu đề IP đóng gói (chế độ đường hầm) [10]

Mặc dù bảo mật và toàn vẹn có thể được cung cấp một cách độc lập, ESP thường sẽ sử dụng cả hai dịch vụ, tức là, các gói dữ liệu sẽ được bảo

vệ liên quan đến bảo mật và tính toàn vẹn Do đó, có ba kết hợp dịch vụ bảo mật ESP có thể liên quan đến các dịch vụ:

- Chỉ có bảo mật (có thể được hỗ trợ)

- Chỉ có tính toàn vẹn (phải được hỗ trợ)

- Kết hợp cả bảo mật và tính toàn vẹn (phải được hỗ trợ)

2.2 Định dạng gói tin của ESP

Hình 2.1: Định dạng Top-Level của một gói ESP

Hình 2.1 minh họa định dạng Top-Level của một gói ESP [10]

Gói tin bắt đầu với hai trường 4-byte (Security parameters index (SPI) và Sequence Number) Sau các trường này là Payload Data, mà cấu trúc của

nó phụ thuộc vào sự lựa chọn chế độ và thuật toán mã hóa, và việc sử dụng TFC (Traffic Flow Confidentiality) đệm Sau trường Payload Data là

Trang 14

các trường Padding và Pad Length, và trường Next Header Trường Integrity Check Value (ICV) là cuối cùng của gói

Payload Data có thể có cấu trúc con Một thuật toán mã hóa đòi hỏi một Vector khởi tạo rõ ràng (IV), ví dụ như, chế độ chuỗi khối mã (CBC), thường thì tiền tố Payload Data được bảo vệ với giá trị đó Một số thuật toán kết hợp chế độ bảo mật và toàn vẹn vào một hoạt động đơn lẻ, chế độ thuật toán như vậy là "thuật toán chế độ kết hợp" Sự thuận tiện của thuật toán chế độ kết hợp đòi hỏi rằng thuật toán mô tả một cách rõ ràng cấu trúc con của tải trọng được sử dụng để truyền tải toàn vẹn dữ liệu

Hình 2.2: Cấu trúc con của Payload Data

2.2.1 Chỉ số các tham số bảo mật ( SPI )

SPI là một giá trị 32-bit tùy ý được sử dụng bởi phía thu để xác định

SA mà một gói tin đến được ràng buộc Trường SPI là bắt buộc

2.2.2 Chuỗi số

Trường 32- bit này chứa một giá trị đếm mà sẽ tăng một cho mỗi gói tin gửi đi, tức là, một số thứ tự trên mỗi gói SA Đối với một SA unicast hoặc một người gửi đơn lẻ SA multicast, người gửi phải tăng trường này cho mỗi gói tin truyền đi

Chuỗi số mở rộng ( 64-bit)

Cơ sở ESN cho phép sử dụng một chuỗi số 64-bit cho một SA Chỉ

có 32 bits bậc thấp của chuỗi số được truyền đi trong bản rõ ESP header của mỗi gói tin, do đó giảm thiểu chi phí gói Các 32 bits bậc cao được duy trì như một phần của bộ đếm chuỗi số bởi cả hai bộ truyền và nhận và

Trang 15

được bao gồm trong các tính toán của ICV (nếu dịch vụ toàn vẹn được chọn) Nếu một thuật toán toàn vẹn riêng biệt được sử dụng, các bits bậc cao có trong ESP trailer ngầm định, nhưng không truyền đi, tương tự như thuật toán toàn vẹn bits đệm Nếu một thuật toán chế độ kết hợp được sử dụng, sự lựa chọn thuật toán xác định xem ESN bits bậc cao được truyền hoặc được bao gồm ngầm định trong tính toán

2.2.3 Tải trọng dữ liệu

Tải trọng dữ liệu là một trường có chiều dài thay đổi chứa dữ liệu (

từ các gói tin IP ban đầu ) được mô tả bởi trường Next Header Trường Payload Data là bắt buộc và có chiều dài là một số nguyên byte Nếu thuật toán được sử dụng để mã hóa tải trọng yêu cầu đồng bộ hóa dữ liệu mã hóa, ví dụ như, một vector khởi tạo (IV), sau đó dữ liệu này được thực hiện một cách rõ ràng trong trường Payload, nhưng nó không được gọi ra như là một trường riêng biệt trong ESP, tức là, việc truyền tải của một IV

rõ ràng là vô hình đối với ESP

2.2.4 Đệm ( cho mã hóa )

Hai yếu tố chính yêu cầu hoặc khuyến khích sử dụng trường đệm

- Nếu một thuật toán mã hóa được sử dụng yêu cầu phải có bản rõ là một bội số của một số của byte, ví dụ, kích thước khối của một khối mã, trường đệm được sử dụng để điền vào bản rõ (bao gồm các trường Payload Data, Padding, Pad Length, và Next Header) với kích thước theo yêu cầu của thuật toán

- Đệm cũng có thể được yêu cầu, không phân biệt các yêu cầu về thuật toán mã hóa, để đảm bảo rằng kết quả bản mã kết thúc trong một giới hạn 4 bytes Cụ thể, các trường Pad Length và Next Header phải được phải liên kết trong một từ 4 bytes, như minh họa trong định dạng gói tin ESP phía trên, để đảm bảo rằng trường ICV (nếu có) được xếp trên một giới hạn 4 bytes

Ngày đăng: 26/06/2014, 21:17

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Cấu trúc cơ sở của thuật toán AES - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 1.1 Cấu trúc cơ sở của thuật toán AES (Trang 6)
Hình 1.2: Quy trình mã hóa và giải mã AES - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 1.2 Quy trình mã hóa và giải mã AES (Trang 7)
Hình 1.3: SubBytes() áp dụng S - box cho mỗi byte của state - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 1.3 SubBytes() áp dụng S - box cho mỗi byte của state (Trang 8)
Hình 1.4: Dịch vòng ShiftRows() ba hàng cuối cùng trong state - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 1.4 Dịch vòng ShiftRows() ba hàng cuối cùng trong state (Trang 9)
Hình 1.5: MixColumns() tính toán trên từng cột của state - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 1.5 MixColumns() tính toán trên từng cột của state (Trang 10)
Hình 2.1: Định dạng Top-Level của một gói ESP - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 2.1 Định dạng Top-Level của một gói ESP (Trang 13)
Hình 2.2: Cấu trúc con của Payload Data - Ứng dụng chuẩn mã hóa nâng cao (AES) trong giao thức đóng gói bảo mật dữ liệu (ESP)
Hình 2.2 Cấu trúc con của Payload Data (Trang 14)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w