(123doc) - Mat-Ma-Khoi-Cau-Truc-Mat-Ma-Khoi-Feistel-Va-Cac-Qua-Trinh-Ma-Hoa-Giai-Ma-Trong-Giai-Thuat-Mat-Ma-Khoi-Feistel

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

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

KHOA VIỄN THÔNG I

TIỂU LUẬN KẾT THÚC HỌC PHẦN


AN NINH MẠNG THÔNG TIN

Đề tài: “Mật mã khối: cấu trúc mật mã khối Feistel và các quá trình mã hóa, giải mã
trong giải thuật mật mã khối Feistel.”
Bài tập tiểu luận môn ANM

Nhiệm vụ Nhiệm vụ
STT Họ và tên Mã sinh viên Ghi chú
chung riêng
Nhóm trưởng
Quá trình
Phân chia công
mã hóa và
việc, tổng hợp bài
giải mã của
1 làm, chỉnh sửa và
hệ thống
chịu trách nhiệm
mật mã
cuối cùng cho bài
Feistel
tiểu luận.
Tổng quan
Tìm hiểu về mật mã
tài liệu, Feistel. Chỉ ra phương
2 đóng góp Ưu nhược pháp và cách giải
và chia sẻ điểm và các quyết vấn đề
ý kiến mật mã
xây dựng thông dụng
bài tiểu Tổng quan
luận về mật mã
khối, quá
trình mã
Viết lời mở đầu
hóa, giải mã
3 và lý do chọn đề
của mật mã
tài cho tiểu luận.
khối và các
mật mã
khối thông
dụng.

2
Bài tập tiểu luận môn ANM

MỤC LỤC
DANH MỤC HÌNH ........................................................................................................4
DANH MỤC BẢNG .......................................................................................................4
DANH MỤC THUẬT NGỮ VIẾT TẮT ........................................................................5
LỜI MỞ ĐẦU .................................................................................................................6
Lý do chọn đề tài: ............................................................................................................6
Mục đích và phạm vi của tiểu luận ..................................................................................7
Phương pháp nghiên cứu và giải quyết vấn đề:...............................................................7
I. TỔNG QUAN VỀ MẬT MÃ KHỐI ...........................................................................8
1. Khái niệm về mã khối..............................................................................................8
2. Xây dựng hệ mã hoá khối ........................................................................................8
3. Quá trình mã hoá và giải mã chung của mật mã khối ...........................................10
3.1 Mã hoá và giải mã trong mã khối ....................................................................10
3.2 Khái niệm vòng lặp trong mã khối ..................................................................10
4. Các chế độ hoạt động trong mã khối .....................................................................11
4.1. Chế độ bảng tra mã điện tử ( Electronic code book – ECB ) .........................12
4.2. Chế độ mã móc xích (Cipher Block Chaining -CBC) ....................................13
4.3. Chế độ mật mã con đếm (Counter mode –CTR ) ...........................................15
4.4. Chế độ mật mã phản hồi kết quả ( OFB – Output Feedback ) .......................16
4.5. Chế độ mã phản hồi k-bit (k-bit Cipher Feedback Mode -CFB) ...................17
5. Các hệ mật mã khối thông dụng ............................................................................19
II. TỔNG QUAN VỀ MẬT MÃ KHỐI FEISTEL .......................................................20
1. Khái niệm về mã khối Feistel ................................................................................20
2. Ưu nhược điểm của mã khối Feistel ......................................................................21
3. Quá trình mã hóa trong mô hình mã Feistel ..........................................................22
4. Quá trình giải mã trong mô hình mã Feistel ..........................................................23
5. Các mật mã triển khai dựa trên cấu trúc mật mã Feistel .......................................25
III. KẾT LUẬN .............................................................................................................26
TÀI LIỆU THAM KHẢO .............................................................................................27

3
Bài tập tiểu luận môn ANM

DANH MỤC HÌNH


Hình 1. 1. Cách thức hoạt động trong mật mã khối ........................................................8
Hình 1. 2. Ý tưởng xây dựng mã hóa khối ......................................................................9
Hình 1. 3. Quá trình mã hóa và giải mã chung của mật mã khối ..................................10
Hình 1. 4. Sơ đồ minh họa cấu trúc 16 vòng lặp. với đầu vào và ra đều có kích thước
64 bits ............................................................................................................................11
Hình 1. 5. Sơ đồ chế độ mật mã ECB............................................................................12
Hình 1. 6. Sơ đồ mã hóa và giải mã trong ECB ............................................................13
Hình 1. 7. Sơ đồ chế độ mật mã CBC ...........................................................................14
Hình 1. 8. Sơ đồ quá trình mã hóa và giải mã trong CBC.............................................14
Hình 1. 9. Sơ đồ chế độ CTR ........................................................................................15
Hình 1. 10. Mô hình OFB của mã hóa khối ..................................................................16
Hình 1. 11. Quá trình mã hóa và giải mã trong OFB ....................................................17
Hình 1. 12. Sơ đồ mật mã CFB .....................................................................................18
Hình 1. 13. Quá trình mã hóa và giải mã trong CFB ....................................................19
Hình 2. 1. Mô hình mã khối Feistel .............................................................................. 23
Hình 2. 2. Quá trình mã hóa và giải mã trong bộ mã Feistel ........................................24
Hình 2. 3. Minh họa về quá trình mã hóa và giải mã theo Feistel.................................25

DANH MỤC BẢNG


Bảng 2. 1. Ví dụ về phép biển đổi thuận nghịch ........................................................... 21

4
Bài tập tiểu luận môn ANM

DANH MỤC THUẬT NGỮ VIẾT TẮT

Viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt

AES Advanced Encryption


Tiêu chuẩn mã hóa tiên tiến
Standard

CBC Cipher Block Chaining Mã móc xích

CFB Cipher Feedback Mã phản hồi

CTR Counter Con đếm

DES Data Encryption Standard Tiêu chuẩn mã hóa dữ liệu

ECB Electronic Code Book Bảng tra mã điện tử

IV Initialization Vector Vector khởi đầu

OFB Output Feedback Phản hồi kết quả

TDES (3DES) Triple Data encryption Tiêu chuẩn mã hóa dữ liệu ba


Standard lần

TEA Tiny Encryption Algorithm Thuật toán mã hóa tí hon

5
Bài tập tiểu luận môn ANM

LỜI MỞ ĐẦU
Ngày nay, với sự phát triển của công nghệ thông tin và truyền thông, Interet là
một phần không thể thiếu trong việc điều hành các lĩnh vực của xã hội. Việc số hoá dữ
liệu để phục vụ trao đổi đang trở nên rất hữu ích và cần thiết. Khi thông tin trao đổi giữa
các tổ chức ngày càng nhiều thì việc bảo mật thông tin là một vấn đề được đặt ra cho
nhiều ngành, nhiều lĩnh vực và nhiều quốc gia. Để đạt được mục đích đó, các nhà khoa
học đã đưa ra các hệ mã khoá giúp mã hoá và giải mã sử dụng khoá mà chỉ người có
quyền mới biết, đảm bảo giữ kín thông tin với những kẻ muốn xâm nhập.
Hiện nay trên thế giới có rất nhiều hệ mã khoá. Các hệ khoá chia theo nhiều
cách khác nhau. Dựa trên tính chất của khoá, các hệ mã hoá chia làm hai loại: hệ mã hoá
khoá đối xứng (hệ mã hoá khoá riêng) và hệ mã hoá khoá bất đối xứng (hệ mã hoá khoá
công khai). Dựa theo đặc trưng của bản rõ, các hệ mã hoá chia thành hai loại: mã hoá
khối và mã hoá dòng. Mã hóa khối và mã hoá dòng là các phương thức được sử dụng
để chuyển đổi văn bản đơn giản thành văn bản mã hóa trực tiếp và thuộc họ mật mã
khóa đối xứng. Sự khác biệt chính giữa mật mã khối và mật mã dòng là mật mã khối mã
hóa và giải mã một khối văn bản tại một thời điểm. Mặt khác, mã hóa dòng mã hóa và
giải mã văn bản bằng cách lấy một byte của văn bản tại một thời điểm.

Lý do chọn đề tài:
Trong phạm vi tiểu luận lần này, chúng em sẽ trình bày về mã hoá khối và mật
mã khối Feistel. Dựa vào thiết kế của mật mã Feistel, rất nhiều hệ mã khối đối xứng
hiện đại được sinh ra. Tiêu biểu là mã DES, 3DES, TEA,… Đây cũng chính là tiền đề
để xây dựng lên các thuật toán như: hàm băm, mã hoá xác thực, mã xác thực thông báo.
Do tầm quan trọng của mã hoá khối, chúng em đã chọn đề tài : “ Mã hoá khối và mật
mã Feistel ” để làm tiểu luận kết thúc môn học.

6
Bài tập tiểu luận môn ANM

Mục đích và phạm vi của tiểu luận


Mục đích của bài tiểu luận là tìm hiểu về cấu trúc tổng quan và các kỹ thuật mã hóa, giải
mã trong mật mã khối và tiêu chuẩn mật mã Feistel.
Phạm vi của bài tiểu luận bao gồm 2 chương:
Chương 1: Giới thiệu tổng quan về mật mã khối. Chương này giới thiệu về khái niệm,
cấu trúc của mật mã khối. Cùng với đó mà các phương pháp mã hóa, giải mã và các chế
độ của mật mã khối.
Chương 2: Giới thiệu tổng quan về mật mã Feistel. Chương này giới thiệu về khái
niệm, cấu trúc của mật mã Feistel và đưa ra các phương pháp mã hóa, giải mã cùng với
các khối mật mã triển khai theo tiêu chuẩn mật mã Feistel.

Phương pháp nghiên cứu và giải quyết vấn đề:


- Phân tích các nguồn tài liệu: thu thập thông tin, kiến thức từ các tạp chí khoa
học, báo cáo, bài giảng,.. rồi tổng hợp lại
- Tổng hợp tài liệu:
• Bổ túc tài liệu, sau khi phân tích phát hiện thiếu, sai lệch.
• Lựa chọn tài liệu, chỉ chọn những thứ cần đủ để xây dựng luận cứ.
• Sắp xếp tài liệu.

7
Bài tập tiểu luận môn ANM

I. TỔNG QUAN VỀ MẬT MÃ KHỐI


1. Khái niệm về mã khối
Mã khối là thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ
dài xác định với những chuyển đổi xác định.Ví dụ trong một thuật toán mã hoá khối nó
có thể xử lý 128 bit đầu vào và cho ra 128 bit đầu ra. Trong kiểu mã hóa này các tham
số quan trọng nhất là độ dài khối và độ dài mã.
Khác với một mã cùng họ là mã hoá dòng thì mã khối mã hoá các khối bit có độ
dài cố định, trong khi mã hoá dòng kết hợp kết hợp các bit của bản rõ với một dòng bit
giả ngẫu nhiên với phép XOR.
Điều kiện để mã khối an toàn:
- Độ dài khối (n-bit) phải đủ lớn để chống lại phương phấn công thống kê, tuy nhiên
điều này dẫn đến thời gian mã hóa sẽ tăng lên.
- Không gian khóa, tức độ dài khóa (k-bit ) phải đủ lớn để chống lại phương pháp tấn
công vét cạn. Tuy nhiên, lưu ý rằng khóa phải đủ ngắn để việc tạo khóa, phân phối khóa
được dễ dàng.

Hình 1. 1. Cách thức hoạt động trong mật mã khối


2. Xây dựng hệ mã hoá khối
Về ý tưởng xây dựng hệ mã khoá khối:

8
Bài tập tiểu luận môn ANM

• Ban đầu chúng ta có trong tay một khoá K, chúng ta sử dụng một hàm mở rộng
khoá (key expansion) – thường là một hàm sinh số giả ngẫu nhiên. Từ đó sẽ sinh
ra n khoá k là k1,k2,…,kn.
• Sau đó sử dụng hàm trộn R(k,m) đưa vào các giá trị k1,k2,…,kn .
• Thông điệp m được đưa vào hàm trộn lần đầu tiên với hàm trộn mang khoá k1.
Tiếp đó đầu ra của hàm trộn mang khoá k1 sẽ được đưa làm đầu vào của khoá k2
với thông điệp m đã được biến đổi.
• Tiếp tục với lòng lặp như vậy ta sẽ được đầu ra của hàm trộn mang mã kn. Đó
chính là bản mã C.

Hình 1. 2. Ý tưởng xây dựng mã hóa khối


Về nguyên lý xây dựng mật mã khối, có 2 cơ sở để mã khối có tính bảo mật cao,
đó là việc tạo ra tính hỗn loạn (confusion) và tính khuếch tán (diffusion).

• Tính hỗn loạn: Sự phụ thuộc của bản mã đối với bản rõ phải thực phức tạp để gây
rắc rối, cảm giác hỗn loạn đối với kẻ tấn công có ý định phân tích tìm ra qui luật
thuật toán để phá mã. Quan hệ hàm số của mã-tin là phi tuyến (non-linear).
• Tính khuếch tán: Làm khuếch tán những mẫu văn bản mang đặc tính thống kê,
tạo ra bằng việc làm tăng độ dư thừa văn bản lẫn vào toàn bộ văn bản. Nhờ đó
tạo ra khó khăn cho kẻ tấn công trong việc dò phá mã trên cơ sở thống kê các
mẫu lặp lại cao.
• Trong khi tính hỗn loạn được thực hiện bằng phép thay thế (substitution) thì tính
khuếch tán được tạo ra bằng các phép chuyển đổi chỗ (tranposition) hay hoán vị.

9
Bài tập tiểu luận môn ANM

3. Quá trình mã hoá và giải mã chung của mật mã khối


3.1 Mã hoá và giải mã trong mã khối
Quá trình mã hóa khối bao gồm 2 thuật toán:
Mã hóa – (ký hiệu E) và Giải mã – (ký hiệu D=E-1)
Cả hai thuật toán đều tác động lên một khối đầu vào n bít sử dụng một khóa k bít để cho
ra một khối đầu ra n bít. Đối với bất kỳ mã khóa nào, giải mã là hàm ngược lại của mã
hóa, ta sẽ có:
DK = ( EK (M)) = M
trong đó M là khối thông tin và K là khoá bất kỳ.
Với mỗi khóa K, EK là một hoán vị (song ánh) của khối thông tin đầu vào. Mỗi khóa sẽ
xác định một hoán vị trong tổng số 2n! khả năng.

Hình 1. 3. Quá trình mã hóa và giải mã chung của mật mã khối


Độ dài của khối tin (n) ,thường là cố định ở 64 hoặc 128 bít. Một số thuật toán có độ dài
khối thay đổi nhưng không phổ biến. Trong các chế độ mã hóa khối, nếu như độ dài
khối chưa đủ ta thường phải thêm một số bit cho văn bản (padding) để văn bản chứa số
nguyên lần các khối. Mỗi chế độ mã hóa có đặc tính khác nhau về việc lan truyền lỗi
(lỗi mã hóa trong khối này ảnh hưởng tới khối khác), khả năng truy xuất ngẫu nhiên và
khả năng chống lại các kiểu tấn công khác nhau. Thông thường độ dài của khóa K là:
40, 56, 64, 80, 128, 192 và 256 bit.
3.2 Khái niệm vòng lặp trong mã khối
Trong các mã phổ biến hiện nay, các hệ mã khối thường được thiết kế theo cấu trúc
nhiều vòng lặp và với mỗi vòng lặp lại ta thực hiện một hàm f cơ sở với các tham số
khác nhau. Theo đó, đầu ra của vòng lặp trước sẽ là đầu vào của vòng lặp tiếp theo và
một khóa con phát sinh từ khóa đầy đủ dựa trên một thuật toán lập lịch khóa (key
scheduler), hay cũng gọi là thuật toán sinh khóa con.

10
Bài tập tiểu luận môn ANM

Giải mã sẽ là một quá trình ngược lại, trong đó các khóa con sử dụng tại mỗi vòng lặp
sẽ được lập lịch để sử dụng theo thứ tự ngược lại.

Hình 1. 4. Sơ đồ minh họa với cấu trúc 16 vòng lặp. Trong đó đầu vào và ra đều có
kích thước 64 bits
Có hai khối hoán vị ở đầu và cuối (IP và FP). Hàm F cơ sở nhận đầu vào 32 bits, nhưng
tác động của nó sẽ lan khắp qua chỉ 2 vòng nhờ sự hoán vị 2 nửa trái và phải.
Thông thường, hàm vòng lặp f được thiết kế có một tính chất đặc biệt là tính đối hợp
hàm (involution), tức là nó bằng hàm ngược của nó: f = f-1 hay là f (f(x)) = x.
4. Các chế độ hoạt động trong mã khối
Với các thuật toán mã khối thông dụng thì độ dài khối được xác định, như ở DES
là 64 bit, AES là 128 bit,… Khi mã hoá các tin có độ dài quá độ dài của khối, thuật toán
11
Bài tập tiểu luận môn ANM

được sử dụng theo một chế độ mã hoá khối. Có 5 chế độ hoạt động mã hoá khối là: ECB,
CBC, CFB, OFB và CTR.
4.1. Chế độ bảng tra mã điện tử ECB ( Electronic code book )
4.1.1. Sơ đồ mật mã ECB
Trong chế độ này, văn bản được chia thành các khối, mỗi khối có 64 bit sau đó các
khối được tạo mật mã riêng biệt. Vì thế, các khối tin giống nhau sẽ được mã hoá thành
những khối mã như nhau. Chế độ này thường được sử dụng trong mã hóa thông tin lưu
trữ.

Hình 1. 5. Sơ đồ chế độ mật mã ECB


4.1.2. Quá trình mã hoá và giải mã trong EBC.
Mã hoá : Cj=Ek(Pj) với j=1,2,3,…,n-1
Giải mã: Pj=Dk(Pj) với j=1,2,3,…,n. Với Cj là các bản mã và Pj là các bản rõ.

12
Bài tập tiểu luận môn ANM

Hình 1. 6. Sơ đồ mã hóa và giải mã trong ECB


4.1.3. Nhận xét:

• Thiết kế phần cứng đơn giản. Vấn đề cần quan tâm chính là thiết kế logic cho
thuật toán mã hóa.
• Lỗi bit không bị lan truyền
• Có thể thực hiện mã hóa/giải mã song song (parallel) nhiều khối dữ liệu cùng lúc
• Khả năng bảo mật kém.
4.2. Chế độ mã móc xích (Cipher Block Chaining -CBC)
4.2.1. Sơ đồ mã móc xích CBC.
Trong chế độ này, mỗi khối tin trước khi được mã hóa thì sẽ được XOR với khối
mã sinh ra trước nó.

13
Bài tập tiểu luận môn ANM

Như vậy các khối mã đều phụ thuộc rất chặt vào nhau theo kiểu “móc xích”. Cũng
qua đó có thể thấy rằng chế độ CBC sẽ tạo ra các khối bản mã khác nhau khi các khối
tin đầu vào giống nhau khi đó ta sẽ che giấu được các mẫu tin-mã phổ biến khỏi sự theo
dõi của kẻ tấn công, chặn đứng khả năng phá hoại bằng tấn công lặp lại và biên tập nói
trên. Tại bước đầu tiên, khi chưa có khối mã sinh ra từ bước trước, khối tin đầu tiên sẽ
được XOR với một vecto khỏi đầu, chọn ngẫu nhiên, ký hiệu là IV (initial vector).

Hình 1. 7. Sơ đồ chế độ mật mã CBC


4.2.2. Quá trình mã hoá và giải mã trong CBC

Hình 1. 8. Sơ đồ quá trình mã hóa và giải mã trong CBC

Mã hoá: Cj = Ek(Pj XOR Cj-1, K )

14
Bài tập tiểu luận môn ANM

Giải mã: Pj = Cj-1 XOR Dk(Cj, K) với j=1,2,3,…,n-1

Cả hai phía mã hóa và giải mã đều dùng chung vector IV để sử dụng trên khối dữ
liệu đầu.
Chú ý với khối đầu tiên: C0=Ek(IV XOR Pj) và P0=IV XOR Dk(C1).
4.2.3. Nhận xét

• CBC có tính bảo mật cao hơn ECB


• Chỉ có thể thực hiện giải mã song song nhiều khối dữ liệu chứ không thể mã hoá
song song.
• Thiết kế phần cứng phức tạp hơn ECB
• Lỗi bit bị lan truyền
4.3. Chế độ mật mã con đếm CTR (Counter mode )
CTR là chế độ mã hóa sử dụng một tập các khối ngõ vào, gọi là các counter, để
sinh ra một tập các giá trị ngõ ra thông qua một thuật toán mã hóa. Sau đó, giá trị ngõ ra
sẽ được XOR với bản rõ để tạo ra bản mã trong quá trình mã hóa, hoặc XOR với bản
mã để tạo ra bản mã trong quá trình giải mã.

Hình 1. 9. Sơ đồ chế độ CTR


CTR thực ra là một phương pháp mã hóa thuộc loại mật mã dòng, tuy nhiên trong
bộ sinh khóa ngẫu nhiên có dùng đến mã khối để sinh số. Kích thước của đơn vị mã hóa
sẽ là kích thước mã khối (ví dụ khi dùng mã DES thì đơn vị mã hóa là 64 bit).
Nhận xét:

• Thuật toán mã hóa không áp dụng trực tiếp trên plaintext mà dùng để biển đổi
một khối dữ liệu sinh ra từ các bộ đếm (counter).
• Quá trình mã hóa/giải mã của mỗi khối dữ liệu là độc lập.

15
Bài tập tiểu luận môn ANM

• Khả năng bảo mật cao hơn ECB. Tuy quá trình mã hóa/giải mã của mỗi khối dữ
liệu là độc lập nhưng mỗi plaintext có thể ảnh xạ đến nhiều ciphertext tùy vào giá trị bộ
đếm của các lần mã hóa.
• Có thể mã hóa/giải mã song song nhiều khối dữ liệu.
• Phần cứng cần thiết kế thêm các bộ đếm counter hoặc giải thuật tạo các giá trị
counter không lặp lại.
4.4. Chế độ mật mã phản hồi kết quả OFB ( Output Feedback )
4.4.1 Mô hình chế độ OFB
Nếu như mô hình CTR là một mật mã dòng trong đó đơn vị mã hóa có kích thước
cố định là b bit, với b là kích thước khối. Để mã hóa với đơn vị mã hóa có kích thước
bất kỳ, mô hình OFB đã được đề xuất. Mô hình này có hai điểm khác so với mô hình
CTR:

• Chỉ dùng s bít đầu tiên của khóa sinh ra bởi bộ sinh khóa, với s là kích thước
đơn vị mã hóa dùng trong phép XOR.
• Để tăng thêm tính ngẫu nhiên của bộ sinh khóa, s bít này của khóa được ghép
vào vector khởi tạo IV cho lần mã hóa tiếp theo. Phép ghép được thực hiện bằng
cách đẩy trái IV s bít và đưa s bít của khóa vào s bít thấp của IV.

Hình 1. 10. Mô hình OFB của mã hóa khối


4.4.2 Quá trình mã hoá và giải mã trong OFB

16
Bài tập tiểu luận môn ANM

Hình 1. 11. Quá trình mã hóa và giải mã trong OFB


Do có tính đối xứng nên việc mã hoá và giải mã hoàn toàn giống nhau:
Cj=Pj XOR Oj
Pj= Cj XOR Oj
Oj=Ek(Ij)
Ij=Oj-1
I0= IV
4.4.3 Nhận xét

• Khả năng bảo mật cao hơn ECB. Bản mã của một khối dữ liệu bản rõ có thể
khác nhau cho mỗi lần mã hóa vì nó phụ thuộc vào IV hoặc khối ngõ ra của lần
mã hóa trước đó.
• Lỗi bit không bị lan truyền
• Thiết kế phần cứng đơn giản hơn CFB.
• Không thể thực hiện mã hóa/giải mã song song nhiều khối dữ liệu vì lần mã
hóa/giải mã sau phụ thuộc vào khối ngõ ra của lần mã hóa/giải mã liền trước
nó.
4.5. Chế độ mã phản hồi CFB ( Cipher Feedback Mode )
4.5.1 Sơ đồ chế độ mật mã CFB

NHÓM 19 17
Bài tập tiểu luận môn ANM

CFB là chế độ mã hóa mà bản mã của lần mã hóa hiện tại sẽ được phản hồi
(feedback) đến đầu vào của lần mã hóa tiếp theo. Nghĩa là, bản mã của lần mã hóa hiện
tại sẽ được sử dụng để tính toán bản mã của lần mã hóa kế tiếp. Mô hình CFB dùng s
bit của bản mã để ghép với IV.

Hình 1. 12. Sơ đồ mật mã CFB


Do giống như mô hình CBC, có thể thấy rằng nội dung của bản mã Cj không chỉ
phụ thuộc vào bản rõ Pj mà còn phụ thuộc vào tất cả các bản rõ đứng trước và IV. Ngược
lại, đối với việc giải mã, bản rõ Pj không chỉ phụ thuộc vào bản mã Cj mà còn phụ thuộc
vào bản mã Cj-1 đứng trước.
4.5.2 Quá trình mã hoá và giải mã trong CFB.

NHÓM 19 18
Bài tập tiểu luận môn ANM

Hình 1. 13. Quá trình mã hóa và giải mã trong CFB


4.5.3 Nhận xét

• Khả năng bảo mật cao hơn ECB


• Lỗi bit không bị lan truyền.
• Thiết kế phần cứng đơn giản hơn CFB.
• Không thể thực hiện mã hóa/giải mã song song nhiều khối dữ liệu vì lần mã
hóa/giải mã sau phụ thuộc vào khối ngõ ra của lần mã hóa/giải mã liền trước
nó.
5. Các hệ mật mã khối thông dụng

• Blowfish
Blowfish là một thuật toán mã hóa đối xứng (64 bit cipher) do Bruce Schneier
thiết kế năm 1993. Blowfish có các độ dài khóa từ 32 đến 448 bit. Người ta đã
nghiên cứu phân tích khá kỹ về các thuộc tính của Blowfish và nó cũng được
đánh giá là một thuật toán mã hóa mạnh.
• RC2

NHÓM 19 19
Bài tập tiểu luận môn ANM

RC2 là một mật mã khối đối xứng hoạt động trên 64 bit (8 byte) số lượng. Nó sử
dụng khóa có kích thước thay đổi, nhưng 128 bit (16 byte) khóa thường được coi
là tốt. Nó có thể được sử dụng trong tất cả các chế độ mà DES có thể được sử
dụng. Thuật toán mở rộng một tin nhắn lên tới 8 byte. RC2 là một mật mã khối
mã hóa dữ liệu trong các khối 64 bit
• AES
Tiêu chuẩn mã hóa nâng cao, là một mật mã khối đối xứng với khối dữ liệu 128
bit bằng cách sử dụng các khóa đối xứng 128, 192 hoặc 256. AES mã hóa dữ liệu
khối 128 bit trong vòng 10, 12 và 14 tùy thuộc vào kích thước chính. Tấn công
vét cạn là tấn công duy nhất hiệu quả được biết đến chống lại thuật toán này trên
lý thuyết. Mã hóa AES là được đánh giá nhanh chóng và linh hoạt.

II. TỔNG QUAN VỀ MẬT MÃ KHỐI FEISTEL


1. Khái niệm về mã khối Feistel
Feistel đã đề nghị về việc xây dựng một loại mật mã khối, trong đó đồng thời sử
dụng liên tiếp toán tử chuyển vị và toán tử thay thế, để nhận được độ an toàn cao hơn so
với bất kỳ loại mật mã nào chỉ ứng dụng riêng biệt các toán tử. Trên thực tế, cấu trúc do
Horst Feistel đề xuất dựa trên cấu trúc Shannon được đề xuất vào năm 1945.
Các điều kiện tạo ra mật mã Feistel:

• Giả thiết mật mã khối biến đổi n bit văn bản rõ thành khối văn bản mã có cùng
độ dài → Số lượng các khối khác nhau sẽ là 2n.
• Một phép biến đổi như vậy, để đảm bảo khả năng giải mã phải là phép biến đổi
thuận nghịch.
Bảng: ví dụ về phép biến đổi thuận nghịch

NHÓM 19 20
Bài tập tiểu luận môn ANM

Bảng 2. 1. Ví dụ về phép biển đổi thuận nghịch


Feistel đã đề xuất rằng chúng ta có thể tính gần đúng “idea block cipher” bằng
cách sử dụng khái niệm về “product cipher”, đó là việc thực hiện hai hoặc nhiều loại mã
hoá đơn giản theo cách sao cho kết quả cuối cùng hoặc sản phẩm được mã hóa mạnh
hơn bất kỳ mã hoá thành phần nào. Bản chất của phương pháp này là phát triển một mật
mã khối với độ dài khóa là k bit và chiều dài khối là n bit, cho phép tổng cộng 2k biến
đổi có thể, thay vì (2n)! biến đổi có sẵn với “idea block cipher”.
Mật mã Feistel đề xuất cấu trúc thực hiện xen kẽ thay thế và hoán vị, trong đó:

• Permutation (Hoán vị): Hoán vị được thực hiện bằng cách thay đổi thứ tự của
các phần tử của bản rõ. Không có phần tử nào ở đây bị thay thế bởi bất kỳ phần
tử nào khác, chỉ có thứ tự của các phần tử được thay đổi.
• Substitution (Thay thế): Thay thế được thực hiện bằng cách thay thế các phần
tử của bản rõ hoặc tập hợp các phần tử của bản rõ bằng phần tử của bản mã hoặc
tập hợp các phần tử của bản mã.
Số vòng: Số vòng được sử dụng trong Mật mã Feistel phụ thuộc vào độ bảo mật
mong muốn từ hệ thống. Số lượng vòng nhiều hơn cung cấp hệ thống an toàn hơn.
Nhưng đồng thời, nhiều vòng hơn có nghĩa là quá trình mã hóa và giải mã chậm không
hiệu quả. Do đó, số vòng trong hệ thống phụ thuộc vào sự cân bằng giữa hiệu quả và
bảo mật.
2. Ưu nhược điểm của mã khối Feistel
Ưu điểm:
▪ Quá trình mã hóa và giải mã trùng nhau, chỉ khác nhau ở thứ tự khóa con, điều
này sẽ tiết kiệm được nữa tài nguyên khi thực hiện thuật toán trên phần cứng.
▪ Hàm F có thể chọn với độ khó bất kỳ, vì không phải tìm hàm nghịch.

NHÓM 19 21
Bài tập tiểu luận môn ANM

Nhược điểm:
▪ Vì mỗi vòng mã chỉ thực hiện biến đổi nữa khối dữ liệu, nên cần số vòng mã
hóa lớn để đảm bảo độ an toàn của hệ mật, điều này làm giảm đáng kể tốc độ
mã.
▪ Ngoài ra xây dựng trên cơ sở mạng Feistel tồn tại lớp khóa tương đương, nên
làm không gian khóa giảm đi một nữa.

3. Quá trình mã hóa trong mô hình mã Feistel


Trong hệ mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã
cuối cùng:

K1 K2 K1 Kn-1
P C1 C2 …. Cn
Trong đó bản rõ P và các bản mã Ci được chia thành nửa trái và nửa phải:
P = (L0, R0)
Ci = (Li, Ri) với i = 1, 2, 3,…n
Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như sau:
Li = Ri-1
Ri = Li-1 ⊕F(Ri-1, Ki)
Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K ban đầu
theo một thuật toán sinh khóa con (Key Schedule):
K → K1 → K2 → … → Kn
F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò như là
phép thay thế của việc hoán đổi các nửa trái phải có vai trò hoán vị.
Bản mã C được tính từ kết xuất của vòng cuối cùng được hoán vị:
C = Cn = (Rn, Ln) = (REn, LEn)
Sơ đồ tính toán của hệ mã Feistel được thể hình trong hình bên dưới:

NHÓM 19 22
Bài tập tiểu luận môn ANM

Hình 2. 1. Mô hình mã khối Feistel


4. Quá trình giải mã trong mô hình mã Feistel
Quá trình giải mã được thực hiện qua các vòng theo thứ tự ngược lại và lúc ấy bản
mã ban đầu có giá trị như sau
R0 = LEn
L0 = REn
Qua các vòng, các bản mã được giải mã như sau:
Li = Ri-1
Ri = Li-1 ⊕F(Ri-1, Ki)
Sau vòng cuối cùng, bản rõ thu được là P = (Rn, Ln) = (RDn, LDn) = (L0, R0)

NHÓM 19 23
Bài tập tiểu luận môn ANM

Hình 2. 2. Quá trình mã hóa và giải mã trong bộ mã Feistel


Tính chính xác của hệ thống mật mã Feistel phụ thuộc vào việc lựa chọn các thông
số cũng như các tính năng thiết kế khi triển khai:
➢ Kích thước khối: Khối mật mã sẽ an toàn hơn nếu kích thước khối lớn hơn,
nhưng kích thước khối lớn hơn sẽ làm giảm tốc độ mã hóa và giải mã. Kích
thước khối của mật mã khối thường là 64 bit.Tuy nhiên, mật mã khối ngày nay
như AES có kích thước khối là 128 bit.
➢ Kích thước khóa: Bảo mật của mã khối sẽ tăng lên khi kích thước khóa ngày
càng tăng. Nhưng kích thước khóa lớn cũng làm giảm tốc độ mã hóa và giải mã.
Trước đó, khóa 64 bit được coi là đủ, nhưng do tính bảo mật cũng như sự phát
triển hiện nay thì 64 bit là không đủ và khóa 128 bit được sử dụng phổ biến
ngày nay.
➢ Số vòng: Số vòng cũng làm tăng tính bảo mật của mật mã khối. Kích thước phổ
biến là 16 vòng.
➢ Thuật toán tạo khóa con: Chức năng tạo khóa rất phức tạo sẽ rất khó cho kẻ tấn
công muốn bẻ khóa nó.
➢ Hàm F: tương tự như thuật toán tạo khóa con, hàm F càng phức tạp thì độ bảo
mật của mã càng cao.

NHÓM 19 24
Bài tập tiểu luận môn ANM

Minh họa về quá trình mã hóa và giải mã theo Feistel

Hình 2. 3. Minh họa về quá trình mã hóa và giải mã theo Feistel


5. Các mật mã triển khai dựa trên cấu trúc mật mã Feistel
Rất nhiều thuật toán của mật mã khối đối xứng, được sử dụng ngày nay, được dựa
trên cấu trúc mật mã khối Feistel (Feistel block cipher), ví dụ như: DES, 3DES, Twofish,
TEA, … trong đó DES, 3DES và Twofish là ba thuật toán mã hóa phổ biến mà chúng
ta nên biết.
DES: là một triển khai của Mật mã Feistel. Nó sử dụng cấu trúc Feistel 16
vòng. Kích thước khối là 64 bit. Mặc dù, độ dài khóa là 64 bit, DES có độ dài khóa hiệu
dụng là 56 bit, vì 8 trong số 64 bit của khóa không được sử dụng bởi thuật toán mã hóa
(chỉ có chức năng như các bit kiểm tra). Sử dụng hoán vị trước khi mã hóa.
Triple DES (hay gọi là 3DES hoặc TDES): là một phiên bản điều chỉnh của DES,
sử dụng cùng một thuật toán để tạo ra một mã hóa an toàn hơn. Sử dụng cấu trúc Feistel
48 vòng, kích thước khối 64 bit, độ dài khóa là 168 bit với biến thể TDES 3 khóa
(3TDES), 112 bit với biến thể TDES 2 khóa (2TDES). Hệ thống Triple DES an toàn
hơn đáng kể so với DES đơn lẻ, nhưng là một quá trình chậm hơn nhiều so với mã hóa
sử dụng DES đơn lẻ.
Twofish: là một mật mã khối khóa đối xứng được đánh giá cao có sẵn trong phạm
vi công cộng, với kích thước khối 128 bit và độ dài khóa lên đến 256 bit. Sử dụng cấu
trúc Feistel 16 vòng. Trong số các thuộc tính tích cực của nó là việc sử dụng box thay
thế (S-box) để làm xáo trộn mối quan hệ giữa khóa và bản mã, và một lịch khóa tương
đối phức tạp.

NHÓM 19 25
Bài tập tiểu luận môn ANM

III. KẾT LUẬN


Một trong những vấn đề nghiên cứu đáng quan tâm hiện nay là các vấn đề về bảo
mật trong an ninh mạng. Do đó, các nghiên cứu về bảo mật, mật mã là vô cùng cần thiết;
nhằm trau dồi cho sinh viên các kiến thức cơ bản về mật mã và bảo mật trong an ninh
mạng.
Nghiên cứu đã tìm hiểu và dưa ra tổng quan về mật mã khối, mật mã khối Feistel
cũng như các giải pháp mã hóa, giải mã trong mật mã khối Feistel. Bên cạnh đó, nhóm
cũng chỉ ra các chế độ hoạt động trong mật mã khối cùng với các mật mã khối thông
dụng hiện nay.
Qua thời gian nghiên cứu, nhóm em thấy vấn đề mật mã hóa là rất quan trọng trong
lĩnh vực an ninh mạng của các nhà mạng hiện nay ở Việt Nam để chống lại các kẻ tấn
công mạng trong và ngoài nước. Khả năng ứng dụng của đề tài giúp cho những người
làm công tác trực tiếp liên quan đến vấn đề an ninh mạng có cơ sở lý thuyết để phân tích
các loại mã hóa và giải mã. Từ đó giúp an ninh mạng của chúng ta ngày càng phát triển
hơn.
Do thời gian nghiên cứu, tìm hiểu có hạn và những hạn chế không tránh khỏi về
các vấn đề dựa trên lý thuyết nên bài nghiên cứu của nhóm chắc chắn không tránh khỏi
những thiếu sót. Nhóm rất mong có được ý kiến đánh giá, góp ý của thầy đề bài nghiên
cứu của nhóm được hoàn thiện hơn.

NHÓM 19 26
Bài tập tiểu luận môn ANM

TÀI LIỆU THAM KHẢO

[1] P. Hall, "Cryptography and Network Security Principles and Practices, 4 th


Edition," 2005.

[2] T. M. Văn, "An toàn và bảo mật thông tin," 2008.

[3] T. N. K. Văn, "Giáo trình an toàn và bảo mật thông tin," 2012.

[4] A. Kak, "Lecture 3: Block Ciphers and the Data Encryption," 2021.

[5] F. Mirza, "Block Ciphers and Cryptanalysis," 1999.

[6] N. T, "Feistel Block Cipher," 2020.

[7] Bruce Schneier, John Kelsey, "Unbalanced Feistel Networks and Block Cipher".

NHÓM 19 27

You might also like