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

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

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 (1.64 MB, 16 trang )

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


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

1


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.

2


Phần 1: Tổng quan về AES
1. Chuẩn mã hóa dữ liệ u tiên tiến AES
Chuẩ n mã hóa dữ liệu tiên tiế n AES (Advanced Encryption
Standard) là một hệ mã khóa bí mật có tên là Rijdael (do hai nhà
mật mã học ngư ời Bỉ là Joan Daemen và Vincent Rijmen đư a ra và
trở thành chuẩ n từ năm 2002) cho phép xử lý các khố i dữ liệu
input có kích thước 128 bit sử dụng các khóa có độ dài 128, 192
hoặc 256 bit. Hệ mã Rijdael đư ợ c thiế t kế để có thể làm việc với
các khóa và các khố i dữ liệu có độ dài lớn hơn tuy nhiên khi được
chọn là một chuẩn do Ủy ban tiêu chuẩn của Hoa Kỳ đư a ra năm
2001, nó đư ợ c qui đinh
̣ 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
tên AES-128, AES-192, AES-256 tư ơng ứng với độ dài khóa sử
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:
Trong AES các phép toán cộng và nhân đươ ̣c thực hiện trên các byte
8
trong trường hữu ha ̣n GF(2 )
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
{𝑏7 𝑏6 … 𝑏1 𝑏0 }. Các byte có thể biểu diễn theo 3 cách:
- Một byte là xâu bit có độ dài 8, ví dụ dãy bit {01100011}
- Một byte được viết như 2 ký tự hexa, ví dụ phần tử {01100011}
được viết thành {63}
- Một byte có thể được viết thành một đa thức trên GF(28)

3


Phép nhân

3. Ký hiệu và quy ước
Ký hiệu: Nb là độ dài khối tính theo từ
Nk là độ dài khoá tính theo từ
Nr là số vòng lặp

Độ dài
khóa(Nk từ)

Độ dài khối Số vòng

(Nb từ)

(Nr)

AES-128

4

4

10

AES-196
AES-256

6
8

4
4

12
14

Bảng 1: Tổ hợp Khóa-khối-vòng
k0,0
k1,0
k2,0
k3,0


k0,1
k1,1
k2,1
k3,1

k0,2
k1,2
k2,2
k3,2

k0,3
k1,3
k2,3
k3,3

k0,4
k1,4
k2,4
k3,4

k0,5
k1,5
k2,5
k3,5

k0,6
k1,6
k2,6
k3,6


k0,7
k1,7
k2,7
k3,7

Bảng 2: Biểu diễn trạng thái khoá Nk = 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
 Khởi động vòng lặp: thực hiện thao tác cộng khoá đầu tiên
4


 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
 Thực hiện chu kỳ mã hóa cuối cùng. Trong chu kỳ này bỏ
qua thao tác MixColumns

5


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ế S-hộp. Shộp này có tính khả nghịch được tạo bởi 2 phép biến đổi:
 Lấy nghịch đảo b  a l  GF28  với quy ước 0–l = 0.
 Cho b0 , bl,, b7  là biểu diễn nhị phân của s. Thực hiện ánh
xạ affine

𝑏𝑖 = 𝑏𝑖 ⨁𝑏(𝑖+4)𝑚𝑜𝑑 8 ⨁𝑏(𝑖+5)𝑚𝑜𝑑8 ⨁𝑏(𝑖+6)𝑚𝑜𝑑 8 ⨁𝑏(𝑖+7)𝑚𝑜𝑑 8 ⨁𝑐𝑖 với
0 ≤ 𝑖 < 8, trong đó bi là bit thứ I trong byte b và ci là bit thứ i của một
byte với giá trị {63} hay {01100011}
𝑏0′
𝑏1′
𝑏2′
𝑏3′
=
𝑏4′
𝑏5′
𝑏6′
[𝑏7′ ]

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 𝑏0
1 𝑏1
1
𝑏
1 2
0
1 𝑏3
0

+
0 𝑏4
0
0 𝑏5
1
0 𝑏6
1
1] [𝑏 ] [0]
7

y

x

0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f


0
63
ca
b7
04
09
53
d0
51
cd
60
e0
e7
ba
70
e1
8c

1
7c
82
fd
c7
83
d1
ef
a3
0c
81

32
c8
78
3e
s8
a1

2
77
c9
93
23
2c
00
aa
40
13
4f
3a
37
25
b5
98
89

3
7b
7d
26
c3

1a
ed
fb
8f
ec
dc
0a
6d
2e
66
11
0d

4
f2
fa
36
18
1b
20
43
92
5f
22
49
8d
1c
48
69
bf


5
6b
59
3f
96
6e
fc
4d
9d
97
2a
06
d5
a6
03
d9
e6

6
6f
47
f7
05
5a
b1
33
38
44
90

24
4e
b4
f6
8e
42

7
c5
f0
cc
9a
a0
5b
85
f5
17
88
5c
a9
c6
0e
94
68

8
30
ad
34
07

52
6a
45
bc
c4
46
c2
6c
e8
61
9b
41

9
01
d4
a5
12
3b
cb
f9
b6
a7
ee
d3
56
dd
35
1e
99


a
67
a2
e5
80
d6
de
02
da
7e
b8
ac
f4
74
57
87
2d

b
ab
af
f1
e2
b3
39
7f
21
3d
14

62
ea
1f
b9
e9
0f

c
fe
9c
71
eb
29
4a
50
10
64
de
91
65
4b
86
ce
b0

d
d7
a4
d8
27

e3
4c
3c
ff
5d
5e
95
7a
bd
c1
55
54

e
ab
72
31
b2
2f
58
9f
f3
19
0b
e4
ae
8b
1d
28
bb


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

f
76
c0
15
75
84
cf
a8
d2
73
db
79
08
8a
9e
df
16


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 ≤ 𝑐 < 𝑁𝑏
Trong đó 𝑠ℎ𝑖𝑓𝑡(𝑟, 𝑁𝑏) phụ thuộc vào số hàng r: shift(1,4) = 1,
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
xem như là các đa thức trên trường GF(28) và được nhân theo
modulo (x4 + 1) với 1 đa thức cố định a(x) sau:
𝑎 (𝑥) = {03}𝑥 3 + {01}𝑥 2 + {01}𝑥 + {02}
Điều này có thể biểu diễn dưới dạng 1 phép nhân ma trận:
𝑠 ′ (𝑥) = 𝑎(𝑥) 𝑠(𝑥) 𝑚𝑜𝑑(𝑥 4 + 1)

7


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

𝑠0,𝑐
02𝐻

𝑠1,𝑐
01
=[ 𝐻

01𝐻
𝑠2,𝑐


03𝐻
[𝑠3,𝑐
]

03𝐻
02𝐻
01𝐻
01𝐻

01𝐻
03𝐻
02𝐻
01𝐻

01𝐻 𝑆0,𝐶
01𝐻 𝑆1,𝐶
]
với 0 ≤ 𝑐 < 𝑁𝑏
03𝐻 𝑆2,𝐶
02𝐻 [𝑆3,𝐶 ]

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
bao gồm Nb từ nhận được từ lược đồ khoá. Nb từ này được
cộng với các cột của trạng thái sao cho:





, 𝑠1,𝑐
, 𝑠2,𝑐
, 𝑠3,𝑐
[𝑠0,𝑐
] = [𝑠0,𝑐 , 𝑠1,𝑐 , 𝑠2,𝑐 , 𝑠3,𝑐 ]⨁[𝑤𝑟𝑜𝑢𝑛𝑑 + 𝑁𝑏 + 𝑐]
với 0 ≤ 𝑐 < 𝑁𝑏

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

8


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
tổng số 𝑁𝑏 (𝑁𝑟 + 1) từ. Lược đồ khoá cuối cùng là một mảng tuyến
tính các từ 4 byte ký hiệu là [𝑊𝑖 ], với 0 ≤ 𝑖 < 𝑁𝑏 (𝑁𝑟 + 1)
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ừ.
Hàm RotWord() nhận một từ [𝑎0 , 𝑎1 , 𝑎2 , 𝑎3 ] làm đầu vào,
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 ].
Với AES-256, Nk = 8 và (i – 4) là bội số của Nk thì hàm
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)

9



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.

10


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ã.
Do đó, phiên bản AES có Nk = 4 thì số vòng là Nr = 10, với Nk = 6
thì số vòng là Nr = 12 và với Nk = 8 thì số vòng là Nr = 14.
f. Tiêu chuẩn mở rộng khoá
 Tính hiệu quả:
- Bộ nhớ làm việc: Có thể thực hiện được lược đồ khoá mà
sử dụng ít lượng bộ nhớ làm việc.
- Hiệu suất: Cần có hiệu suất cao trên một diên rộng các bộ
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ã.

11


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:
- Chế độ sách mã điện tử (EBC)
- Chế độ xích khối mã (CBC)
- Chế độ phản hồi đầu ra (OFB)
- Chế độ phản hồi mã (CFB)
- Chế độ bộ đếm (CTR)
Ký hiệu:
EK: hàm mã của mã khối E được tham số hoá bởi
khoá K
𝐸𝐾−1 ( hoặc DK): hàm giải mã
Thông báo rõ 𝑥 = 𝑥1 , 𝑥2 , … 𝑥𝑡 được giả thiết là chứa
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.

12


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

𝑥1 , … 𝑥𝑢 (1 ≤ 𝑟 ≤ 𝑛)
Đầu ra: Các khối mã 𝑐1 , … 𝑐𝑢 mỗi khối có r-bit
𝐼1 ← 𝐼𝑉 (𝐼1 𝑙à 𝑔𝑖á 𝑡𝑟ị đầ𝑢 𝑣à𝑜 𝑐ủ𝑎 𝑡ℎ𝑎𝑛ℎ 𝑔ℎ𝑖 𝑑ị𝑐ℎ), 𝑣ớ𝑖 1 ≤ 𝑗 ≤ 𝑢:
a) 𝑂𝑗 ← 𝐸𝐾 (𝐼𝑗 )
b) 𝑡𝑗 ← 𝑟 bit bên trái nhất của 𝑂𝑗 ( giả sử bit bên trái nhất
được định danh như là bit thứ nhất)
c) 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 ( truyền khối mã r-bit 𝑐𝑗 )
d) 𝐼𝑗+1 ← 𝑂𝑗 (cập nhật đầu vào của mã khối cho khối tiếp
sau)
Giải mã
Đầu vào: Khoá K có k-bit, n-bit IV, các khối mã 𝑐1 , … 𝑐𝑢 mỗi
khối có r-bit
Đầu ra: các khối rõ, mỗi khối có r-bit
𝐼1 ← 𝐼𝑉, 𝑣ớ𝑖 1 ≤ 𝑗 ≤ 𝑢:
𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 trong đó 𝑡𝑗 , 𝑂𝑗 , 𝐼𝑗 được tính như trên.
13


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
𝑥1 , … 𝑥𝑢 (1 ≤ 𝑟 ≤ 𝑛)
a) 𝑂𝑗 ← 𝐸𝐾 (𝐼𝑗 )
b) 𝑡𝑗 ← 𝑟 bit bên trái nhất của 𝑂𝑗 ( giả sử bit bên trái nhất
được định danh như là bit thứ nhất)
c) 𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 ( truyền khối mã r-bit 𝑐𝑗 )
d) 𝐼𝑗+1 ← (2𝑟 ∗ 𝐼𝑗 + 𝑡𝑗 )𝑚𝑜𝑑2𝑛,, ( dịch đầu ra 𝑡𝑗 về đầu cuối bên
trái của thanh ghi)
Đầu ra: Các khối mã 𝑐1 , … 𝑐𝑢
Giải mã

Đầu vào: Khoá K có k-bit, n-bit IV, các khối mã 𝑐1 , … 𝑐𝑢 mỗi
khối có r-bit
Đầu ra: các khối rõ, mỗi khối có r-bit
𝐼1 ← 𝐼𝑉, 𝑣ớ𝑖 1 ≤ 𝑗 ≤ 𝑢:
𝑐𝑗 ← 𝑥𝑗 ⨁𝑡𝑗 trong đó 𝑡𝑗 , 𝑂𝑗 , 𝐼𝑗 được tính như trên.
Các tính chất:
- Các bản rõ giống nhau, việc thay đổi IV làm cho cùng
1 bản rõ được mã thành đầu ra khác nhau.
- Dòng khoá không phụ thuộc vào bản rõ
- Lan sai: một hay nhiều lỗi bit trong ký tự bản mã bất kỳ
𝑐𝑗 sẽ chỉ ảnh hưởng tới việc giải mã của ký tự đó, tại
chính xác vị trí mà 𝑐𝑗 có lỗi, làm cho các bit bản rõ
được khôi phục tương ứng bị đảo ngược.
- Khôi phục sau lỗi: chế độ OFB khôi phục lại được từ
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
- Các mẫu bản rõ được che dấu.
- Đầu vào của mã pháp khối là ngẫu nhiên.

14


- 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.
- Bản rõ được xử lý dễ dàng, bất kỳ sự thay đổi nàp
trong bản mã sẽ ảnh hưởng trực tiếp đến bản rõ.

15




×