Tải bản đầy đủ (.pdf) (26 trang)

Ứ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)

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 (663.16 KB, 26 trang )

i

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


ii




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


Người hướng dẫn khoa học: TS. Ngô Đức Thiện
(Ghi rõ học hàm, học vị)


Phản biện 1: PGS.TS. Trần Hồng Quân


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

1

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
sự.
Ngày nay, ứng dụng của chuẩn mật mã nâng cao đang được sử dụng
ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới. Chuẩn mật
mã nâng cao không chỉ đơn thuần là mã hóa và giải mã thông tin mà còn
bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và giải quyết như
ứng dụng trong các giao thức bảo mật dữ liệu truyền đi trên mạng Internet.
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


2


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:

 
 
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
A a a a a a a a a
B b b b b b b b b



là C = A + B với
 
1 2 3 4 5 6 7 8
C c c c c c c c c

trong đó
i i i
C a b mod2
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
H
A 73


H
B 4E
(viết dưới dạng cơ số 16 - hexa) là:

H H H
73 4E 3D

3

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

01110011 01001110 00111101

Viết dưới dạng đa thức:
     
6 5 4 6 3 2 5 4 3 2
x x x x 1 x x x x x x x x 1            


Phép nhân:
Phép nhân được thực hiện trên GF




bằng cách nhân hai đa thức
rút gọn theo modulo của một đa thức bất khả quy m(x).
Trong AES đa thức bất khả quy này là


 
8 4 3
m x x x x x 1    

Ví dụ:
HH
A C3 , B 85
tương ứng với:

 
76
a x x x x 1   

 
72
b x x x 1  

Khi đó C = A. B

     
 
 
8 4 3
7 5 3 2
c x a x .b x mod x x x x 1
c x x x x x x
    
    

hay

H
C AE 10101110

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 N
b
và bằng độ dài khối chia
cho 32 (đối với AES thì N
b
bằng 4). Độ dài khóa thì được ký hiệu bởi N
k

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

ký hiệu bởi N
r
và phụ thuộc vào độ dài khối và độ dài khóa, với N
r
= 10

khi N
k
= 4, N
r
= 12 khi N
k
= 6, N
r
= 14 khi N
k
= 8.

Bảng 1.1: Bảng kết hợp độ dài khóa- kích thƣớc khối- số vòng
1.3.2. Cấu trúc AES
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.
1.3.3. Quy trình mã hóa và giải mã
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
5


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, N
r
=10)
[1]
:

Hình 1.2: Quy trình mã hóa và giải mã AES
1.3.3.1. Quy trình mã hóa
Toàn bộ của phép mã hóa có thể mô tả như sau:
(1) S = AddRoundKey (P,W
0
)
(2) For i = 1 to N
r
-1
S = SubBytes (S)
S = ShiftRows (S)
S = MixColumns (S)
S = AddRoundKey (S, W)
(3) S = SubBytes (S), S = ShiftRows (S)

6

(4) C = AddRoundKey (S, W
Nr
)
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 → N
r-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. Các phép biến đổi trong mã hóa và giải mã AES
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()
7


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
= s
r(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(2
8
) và nhân với một đa thức a(x)
theo modulo (x

4
+1), với
[1]

a(x) = (03)x
3
+(01)x
2
+(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(2
8
):
s’(x) = a(x)  s(x):
Vì kết quả của phép nhân này, bốn byte trong một cột được thay thế
như sau:
S’
0,c
= ({02}  s
0,c
)  ({03}  s
1,c
)  s
2,c
 s
3,c
S’
1,c
= s
0,c

 ({02}  s
1,c
)  ({03}  s
2,c
)  s
3,c
S’
2,c
= s
0,c
 s
1,c
 ({02}  s
2,c
)  ({03}  s
3,c
)
S’
3,c
= ({03}  s
0,c
)  s
1,c
 s
2,c
 ({02}  s
3,c
)
Phép  trong biểu thức này ký hiệu phép cộng trong GF(2
8

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


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
] = [s
0,c,
s
1,c
, s
2,c
, s
3,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
w
i
= [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.
1.3.5. Biến đổi vòng và số các vòng
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 N
b
và bằng độ dài khối chia cho 32 (đối với AES thì N
b
bằng 4).
Số vòng biến đổi, ký hiệu là N
r
theo công thức: N
r
= max {N
b
, N
k
} +
6.
1.3.6. Lịch trình khóa
Lịch trình khóa bao gồm 2 thành phần: mở rộng khóa (Key
Expansion) và chọn khóa vòng (Round Key Selection). Mở rộng khóa chỉ
ra các ExpandedKey nhận được từ khóa mã. Để có tính hiệu quả đối với
các bộ xử lý 8 bit, lược đồ kéo dài đơn giản, định hướng byte đã được chấp
9

nhận. Việc áp dụng phép thế S
RD

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.
1.3.7. Kéo dài khóa
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à N
b
(N
r
+ 1) cột. Mảng này được ký hiệu bởi
W[4][N
b
(N
r
+1)]. Hàm kéo dài khóa phụ thuộc vào giá trị của N
k
: Có một
phiên bản cho N
k
 6, và một phiên bản cho N
k
> 6.
1.4. Phạm vi, ý nghĩa và ứng dụng của AES
1.4.1. Phạm vi và ý nghĩa 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.
1.4.2.2. Nhược điểm
+) AES không đủ an toàn đối với dạng tấn công (side channel
attack).
+) Cấu trúc toán học của AES có mô tả toán học khá đơn giản. Tuy
điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu
sợ rằng sẽ có người lợi dụng được cấu trúc này trong tương lai.
10

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ã.












11

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à
12

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à
13

đượ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.
14

2.2.5. Pad Length
Trường độ dài đệm cho biết số byte đệm ngay trước nó trong trường
đệm. Phạm vi của các giá trị hợp lệ là từ 0 đến 255, trong đó giá trị 0 chỉ ra
rằng không có byte đệm nào. Như đã nói ở trên, trường này không bao
gồm bất kỳ byte đệm TFC nào. Trường độ dài đệm là bắt buộc.
2.2.6. Next Header
Trường Next Header là một trường bắt buộc, có độ dài 8 bits để xác
định các loại dữ liệu chứa trong trường Payload Data, ví dụ, một gói tin
IPv4 hay IPv6, hoặc một tiêu đề lớp tiếp theo và dữ liệu. Giá trị của trường
này được chọn từ tập các số giao thức IP được xác định trên trang web của
IANA, ví dụ, một giá trị của 4 cho biết IPv4, giá trị 41 cho biết IPv6, và
giá trị 6 cho biết là giao thức TCP.
2.2.7. Bảo mật luồng lưu lượng (TFC) đệm
Về nguyên tắc, việc triển khai IPsec hiện tại có thể đã sử dụng năng
lực này trước đây một cách rõ ràng. Tuy nhiên, do phía thu có thể không
được chuẩn bị để đối phó với lớp đệm này, giao thức quản lý SA phải đàm
phán dịch vụ này trước khi phía phát sử dụng nó, để đảm bảo tính tương
thích ngược. Kết hợp với các thỏa thuận được mô tả trong phần trên, về

việc sử dụng giao thức ID 59, việc triển khai ESP là khả năng tạo ra các
gói tin giả và thực sự thể hiện chiều dài biến đổi lớn hơn nhiều, trong hỗ
trợ của TFC.
2.2.8. Giá trị kiểm tra tính toàn vẹn (ICV)
Giá trị kiểm tra tính toàn vẹn là một trường có chiều dài thay đổi tính
trên các trường tiêu đề ESP, tải trọng, và ESP Trailer. Trường ESP Trailer
ngầm định (tính toàn vẹn đệm và ESN bits bậc cao, nếu có) được bao gồm
trong các tính toán ICV. Trường ICV là tùy chọn. Nó chỉ có mặt nếu các
dịch vụ toàn vẹn được chọn và được cung cấp bởi một thuật toán toàn vẹn
riêng biệt hoặc một thuật toán chế độ kết hợp sử dụng một ICV. Chiều dài
của trường này được xác định bởi thuật toán toàn vẹn lựa chọn và kết hợp
với SA.
15

2.3. Quá trình đóng gói bảo mật dữ liệu
2.3.1. Chế độ xử lý
ESP có thể được sử dụng trong hai phương thức xử lý: chế độ vận
chuyển hoặc chế độ đường hầm
[6]
.
2.3.1.1. Xử lý chế độ vận chuyển
2.3.1.2. Xử lý chế độ đường hầm
2.3.2. Các thuật toán
Các thuật toán bắt buộc thực hiện để sử dụng với ESP, để tạo điều
kiện cập nhật các yêu cầu thuật toán độc lập với các giao thức cho mỗi gia
nhập. Các thuật toán bổ sung, ngoài những thuật toán bắt buộc cho ESP, có
thể cũng được hỗ trợ. Mặc dù cả tính bảo mật và tính toàn vẹn là tùy chọn,
ít nhất một trong các dịch vụ này phải được lựa chọn, do đó cả hai thuật
toán không thể không thực hiện cùng một lúc.
2.3.2.1. Thuật toán mã hóa

2.3.2.2. Thuật toán toàn vẹn
2.3.2.3. Chế độ kết hợp thuật toán
2.3.3. Quá trình xử lý gói tin đi
Trong chế độ vận chuyển, người gửi đóng gói thông tin giao thức lớp
tiếp theo giữa các tiêu đề ESP và các trường ESP Trailer, và giữ lại tiêu đề
IP được chỉ định (và bất kỳ tiêu đề IP mở rộng trong trường hợp IPv6).
Trong chế độ đường hầm, bên ngoài và bên trong tiêu đề IP / phần mở
rộng có thể liên hệ với nhau bằng nhiều cách khác nhau.
2.3.3.1. Tra cứu bảo mật liên quan
ESP được áp dụng cho một gói tin đi chỉ sau một thực hiện IPsec xác
định rằng các gói dữ liệu có liên quan đến SA mà các cuộc gọi cho quá
trình ESP. Quá trình xác định những gì, nếu có, xử lý IPsec được áp dụng
cho lưu lượng đi được mô tả trong kiến trúc bảo mật.
2.3.3.2. Tính toán mã hóa gói tin và giá trị kiểm tra tính toàn vẹn (ICV)
Trong phần này, ta nói về mã hóa luôn luôn được áp dụng vì những
tác động định dạng. Điều này được thực hiện biết rằng "không có bảo mật"
16

được cung cấp bằng cách sử dụng thuật toán mã hóa NULL (là thuật toán
cung cấp tính xác thực và toàn vẹn mà không cần bảo mật). Có nhiều lựa
chọn thuật toán.
2.3.3.2.1. Thuật toán bảo mật và toàn vẹn riêng biệt
2.3.3.2.2. Thuật toán kết hợp bảo mật và toàn vẹn
2.3.3.3. Khởi tạo Sequence Number
Bộ đếm của người gửi được khởi tạo bằng 0 khi SA được thành lập.
Người gửi gia tăng chuỗi số (hoặc ESN) bộ đếm cho SA này và chèn 32
bit bậc thấp của giá trị vào trường Sequence Number. Do đó, các gói tin
đầu tiên được gửi bằng cách sử dụng SA cho sẽ có một số thứ tự là 1.
Nếu chống phát lại được kích hoạt (mặc định), người gửi sẽ kiểm tra
để đảm bảo rằng các truy cập đã không quay vòng trước khi chèn các giá

trị mới trong trường Sequence Number. Nói cách khác, người gửi không
phải gửi một gói tin trên một SA nếu làm như vậy sẽ gây ra các chuỗi số
theo chu kỳ. Một nỗ lực để truyền tải một gói tin sẽ cho kết quả trong
chuỗi số tràn là một sự kiện có thể kiểm tra.
2.3.3.4. Phân mảnh
Nếu cần thiết, phân mảnh được thực hiện sau khi ESP xử lý trong
một thực hiện IPsec. Vì vậy, chế độ vận chuyển ESP chỉ được áp dụng cho
toàn bộ các gói tin IP (không phân mảnh IP). Một gói tin IP mà ESP đã
được áp dụng chính nó có thể được phân mảnh bởi các router trên đường
đi, và những phần đó phải được tập hợp lại trước khi xử lý ESP ở người
nhận. Trong chế độ đường hầm, ESP được áp dụng cho một gói tin IP, có
thể là một mảnh của một gói tin IP.
2.3.4. Quá trình xử lý gói tin đến
2.3.4.1. Tái hợp
Nếu cần thiết, tái hợp được thực hiện trước quá trình ESP. Nếu một
gói cung cấp cho ESP để xử lý dường như là một phân mảnh IP, ví dụ,
trường OFFSET là khác 0 hoặc cờ MORE FRAGMENTS được thiết lập,
người nhận phải loại bỏ các gói, đây là một sự kiện có thể kiểm tra. Phần
17

nhật ký kiểm tra cho sự kiện này nên bao gồm giá trị SPI, ngày / giờ nhận
được, theo địa chỉ nguồn, địa chỉ đích, chuỗi số, và Flow ID (trong IPv6).
Đối với gói hợp lại, các thông số IPv4 hiện tại không yêu cầu hoặc là
quy về 0 của trường OFFSET hoặc bù trừ của cờ MORE FRAGMENTS.
Để cho một gói tái hợp lại được xử lý bởi IPsec (trái ngược với loại bỏ như
một phân mảnh rõ ràng), mã IP phải làm hai điều này sau khi nó hợp lại
thành một gói.
2.3.4.2. Tra cứu bảo mật liên quan
Sau khi nhận được một gói có chứa một tiêu đề ESP, người nhận xác
định SA thích hợp (một chiều) thông qua tra cứu trong SAD. Đối với một

unicast SA, xác định này được dựa trên SPI hoặc SPI cộng với trường
giao thức. Nếu thực hiện hỗ trợ lưu lượng multicast, địa chỉ đích cũng
được sử dụng trong tra cứu (ngoài các SPI), và địa chỉ người gửi cũng có
thể được sử dụng. Danh mục SAD cho SA cũng chỉ ra cho trường chuỗi số
sẽ được kiểm tra, có 32 hoặc 64 bit chuỗi số được sử dụng cho SA, và
trường ICV(rõ ràng) nên có. Ngoài ra, SAD sẽ xác định các thuật toán và
các khóa được sử dụng để giải mã và tính toán ICV (nếu có).
2.3.4.3. Xác minh chuỗi số
Tất cả việc triển khai ESP phải hỗ trợ dịch vụ chống phát lại, mặc dù
việc sử dụng nó có thể được kích hoạt hoặc vô hiệu hóa bởi người nhận
trên một cơ sở cho mỗi SA. Dịch vụ này không phải được kích hoạt trừ khi
dịch vụ toàn vẹn ESP cũng được kích hoạt cho SA, bởi vì nếu không
trường chuỗi số sẽ không được bảo vệ toàn vẹn. Chống phát lại được áp
dụng cho SA unicast cũng như multicast. Tuy nhiên, tiêu chuẩn này quy
định không có cơ chế để cung cấp chống phát lại cho nhiều người gửi SA
(unicast hoặc multicast). Trong trường hợp không có thỏa thuận (hoặc cấu
hình bằng tay) của một cơ chế chống lại như vậy cho một SA, khuyến nghị
người gửi và người nhận kiểm tra chuỗi số với các SA bị vô hiệu hóa
(thông qua đàm phán hoặc cấu hình bằng tay).
2.3.4.4. Xác minh giá trị kiểm tra tính toàn vẹn
18

Như với xử lý gói tin đi, bao gồm một số tùy chọn cho xử lý gói tin
đến, dựa trên tính năng của các thuật toán được sử dụng.
2.3.4.4.1. Thuật toán bảo mật và toàn vẹn riêng biệt
2.3.4.4.2. Thuật toán kết hợp bảo mật và toàn vẹn
Kết luận chƣơng II
Chương II phân tích định dạng gói tin ESP và các chế độ xử lý đóng
gói bảo mật dữ liệu. Giao thức ESP cung cấp xác thực, độ toàn vẹn, đảm
bảo tính bảo mật cho gói tin. ESP cũng hỗ trợ tính năng cấu hình sử dụng

trong tình huống chỉ cần mã hóa hay xác thực.

















19

CHƢƠNG III: Ứ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
3.1. Giới thiệu
Viện Tiêu chuẩn và Công nghệ (NIST ) chọn Advanced Encryption
Standard (AES), còn được gọi là Rijndael. AES là một thuật toán mã hóa
khối, và nó có thể được sử dụng trong nhiều chế độ khác nhau. Luận văn
này mô tả việc sử dụng AES chế độ truy cập (AES- CTR), với một vector
khởi tạo rõ ràng ( IV ), như một cơ chế bảo mật trong IPsec Encapsulating
Security Payload (ESP ).
3.2. Mã hóa khối AES

Phần này bao gồm một mô tả ngắn gọn về các đặc tính liên quan của
thuật toán mã hóa khối AES.
3.2.1. Chế độ đếm
NIST đã xác định năm phương thức hoạt động cho AES, mỗi phương
thức có những đặc điểm khác nhau. Năm phương thức là: ECB (Electronic
Code Book), CBC (Cipher Block Chaining), CFB (Cipher Feedback), OFB
(Output Feedback), và CTR (Couter Mode).
[11]

Trong luận văn này ta chỉ nghiên cứu chế độ đếm AES (AES- CTR).
AES- CTR yêu cầu mã hóa để tạo ra một giá trị cho mỗi gói tin duy nhất,
và truyền giá trị này vào để giải mã. Đặc tính này gọi là giá trị mỗi gói tin
của một vector khởi tạo (IV). Cùng một IV và tổ hợp khóa phải không
được sử dụng nhiều hơn một lần. Mã hóa có thể tạo ra IV trong bất cứ cách
thức nào để đảm bảo tính duy nhất. Phương pháp tiếp cận chung để tạo ra
IV bao gồm tăng một lượt đếm cho mỗi gói tin và hồi tiếp tuyến tính (
LFSRs).
3.2.2. Kích thước và các vòng khóa
AES hỗ trợ ba kích thước khóa: 128 bit, 192 bit và 256 bit. Kích
thước khóa mặc định là 128 bit, và tất cả các triển khai thực hiện phải hỗ
trợ kích thước khóa này. Triển khai thực hiện cũng có thể hỗ trợ kích
thước khóa 192 bit và 256 bit.
20

AES sử dụng một số lượng vòng khác nhau cho mỗi kích thước khóa
xác định. Khi một khóa 128-bit được sử dụng, triển khai thực hiện phải sử
dụng 10 vòng. Khi một khóa 192 -bit được sử dụng, triển khai thực hiện
phải sử dụng 12 vòng. Khi một khóa 256-bit được sử dụng, triển khai thực
hiện phải sử dụng 14 vòng.
3.2.3. Kích thước khối

AES có kích thước khối 128 bit (16 octet). Như vậy, khi sử dụng mã
hóa AES- CTR, mỗi hoạt động mã hóa AES tạo ra khóa dòng 128 bit. Mã
hóa AES - CTR là phép XOR của khóa dòng với bản rõ. Giải mã AES-
CTR là phép XOR của khóa dòng với các bản mã.
3.3. Tải trọng ESP
Tải trọng ESP bao gồm các IV theo sau bản mã. Trường tải trọng,
như định nghĩa trong ESP, được cấu trúc như thể hiện trong hình 3.1.

Hình 3.1: Tải trọng ESP đƣợc mã hóa với AES- CTR
3.3.1. Vector khởi tạo
Trường IV trong AES- CTR phải gồm 8 octet. IV phải được lựa chọn
bởi mã hóa theo phương pháp để đảm bảo rằng giá trị IV tương tự được sử
dụng một lần cho một khóa nhất định. Các mã hóa có thể tạo ra IV trong
bất cứ cách nào để đảm bảo tính duy nhất.
3.3.2. Mã hóa tải trọng
Chế độ mã hóa AES- CTR không yêu cầu đệm của bản rõ. Tuy
nhiên, ESP yêu cầu đệm cho từ 32 bit - sắp xếp các dữ liệu xác thực.
Padding, Pad Length, và Next Header phải được nối với bản rõ trước khi
thực hiện mã hóa, như được mô tả trong ESP.
21

3.3.3. Xác thực dữ liệu
Vì nó là không đáng kể để xây dựng một bản mã AES- CTR giả mạo
từ một bản mã AES- CTR hợp lệ, triển khai thực hiện mã hóa AES- CTR
phải sử dụng một phương thức xác thực ESP không NULL.
3.4. Định dạng khối đếm
Mỗi gói tin truyền tải IV là cần thiết để xây dựng chuỗi các khối đếm
được sử dụng để tạo ra các khóa dòng cần thiết để giải mã tải trọng. Khối
đếm của thuật toán mã hóa khối AES là 128 bit. Hình sau cho thấy định
dạng của khối đếm.


Hình 3.2: Định dạng khối đếm
Các thành phần của khối đếm như sau:
Nonce
Trường Nonce gồm 32 bit. Như tên của nó, giá trị nonce là một giá
trị sử dụng duy nhất. Đó là một giá trị nonce mới phải được gán cho mỗi
liên kết bảo mật. Nó phải được gán vào đầu của liên kết bảo mật. Giá trị
nonce cần phải là bí mật cũng như không thể dự đoán trước khi bắt đầu
của liên kết bảo mật.
Vector khởi tạo
Trường IV gồm 64 bit. Như mô tả ở trên, IV phải được lựa chọn bởi
người thực hiện mã hóa một cách để đảm bảo rằng giá trị IV tương tự được
sử dụng một lần cho một khóa nhất định.
Khối đếm
Trường khối đếm gồm 32 bit có ít ý nghĩa nhất của khối đếm. Khối
đếm bắt đầu với giá trị 1, và nó được tăng lên để tạo ra các phần tiếp theo
của khóa dòng. Khối đếm là một số nguyên lớn về cuối 32-bit.
22

3.5. Quy ƣớc IKE
Phần này mô tả các quy ước được sử dụng để tạo ra khóa cần thiết và
các giá trị nonce để cho mã hóa AES- CTR sử dụng giao thức Internet Key
Exchange (IKE). Các định nghĩa và các thuộc tính cần thiết để đàm phán
một liên kết bảo mật trong đó sử dụng mã hóa AES- CTR cũng được xác
định.
Khóa cần thiết và giá trị Nonce
IKE sử dụng một hàm giả ngẫu nhiên (PRF) để lấy được khóa cần
thiết. PRF được sử dụng lặp đi lặp lại để lấy được khóa cần thiết có kích
thước tùy ý, được gọi là KEYMAT. Khóa cần thiết được lấy ra từ chuỗi
đầu ra không phụ thuộc vào giới hạn biên.

Kích thước của KEYMAT yêu cầu phải có 4 octet dài hơn là cần
thiết cho các khóa AES liên quan.
Giai đoạn 1
Đối với AES- CTR được sử dụng theo cách này, một đặc tính riêng
biệt là cần thiết, và một thuật toán mã hóa định danh cần phải được gán.
Giai đoạn 2
Đối với cuộc đàm phán IKE giai đoạn 2, IANA đã gán cho một ESP
chuyển đổi định danh của 13 cho AES- CTR với một IV rõ ràng.
3.5.4. Thuộc tính độ dài khóa
Khi AES hỗ trợ ba loại chiều dài khóa, các thuộc tính độ dài khóa
phải được quy định trong trao đổi IKE giai đoạn 2. Thuộc tính độ dài khóa
phải có một giá trị của 128, 192, hoặc 256.
3.6. Các Vector thử nghiệm
Phần này bao gồm 9 vector thử nghiệm, có thể được sử dụng để xác
nhận rằng một quá trình triển khai đã thực hiện một cách chính xác AES-
CTR. 3 vector thử nghiệm đầu tiên sử dụng AES với khóa 128 bit, 3 vector
thử nghiệm tiếp theo sử dụng AES với khóa 192 bit, và 3 vector thử
nghiệm cuối cùng sử dụng AES với khóa 256 bit
[11]
.
23

3.7. Xem xét bảo mật
Khi sử dụng đúng cách, chế độ mã hóa AES- CTR cung cấp bảo mật
mạnh mẽ. Bellare, Desai, Jokipii, Rogaway thể hiện trong [ BDJR ] rằng
đảm bảo sự riêng tư được cung cấp bởi chế độ đếm ít nhất là mạnh mẽ như
đối với chế độ CBC khi cùng sử dụng thuật toán mã hóa khối.
Tuy nhiên, nó là rất hay bị sử dụng sai chế độ đếm này. Nếu giá trị
khối đếm được sử dụng cho nhiều hơn một gói tin với cùng một khóa, sau
đó các khóa dòng tương tự sẽ được sử dụng để mã hóa cả hai gói tin, và

tính đảm bảo vấn đề bảo mật bị hủy bỏ.
Do đó, thuật toán mã hóa dòng, bao gồm AES- CTR, không nên sử
dụng với các khóa tĩnh. Để được an toàn, triển khai ESP phải sử dụng các
khóa mới cho AES - CTR. Giao thức Internet Key Exchange ( IKE ) có thể
được sử dụng để thiết lập khóa mới. IKE cũng có thể được sử dụng để thiết
lập các giá trị nonce vào đầu của liên kết bảo mật.
3.8. Cơ sở thiết kế
Trong sự phát triển của kỹ thuật này, việc sử dụng của trường chuỗi
số ESP thay vì một trường IV rõ ràng đã được xem xét. Lựa chọn này
không phải là một vấn đề an toàn mật mã, là một trong hai phương pháp
tiếp cận sẽ ngăn xung đột khối đếm
[11]
.
Trong một mô hình rất bảo thủ của mã hóa bảo mật, nhiều nhất là 2
64

khối phải được mã hóa với mã hóa AES- CTR theo một khóa. Theo ràng
buộc này, không quá 64 bit là cần thiết để xác định mỗi gói trong một liên
kết bảo mật. Khi chuỗi số ESP mở rộng là 64 bit, nó là một ứng viên hiển
nhiên để sử dụng như một IV ngầm định. Điều này sẽ mang lại một
phương pháp duy nhất cho sự phân bổ giá trị mỗi gói tin trong khối đếm.
Việc sử dụng một IV rõ ràng không mang lại một phương pháp như vậy,
đó là mong muốn vì nhiều lý do.



×