Professional Documents
Culture Documents
(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
(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
(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
Đề 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
4
Bài tập tiểu luận môn ANM
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
7
Bài tập tiểu luận môn ANM
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.
• 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
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ữ.
12
Bài tập tiểu luận môn ANM
• 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).
14
Bài tập tiểu luận môn ANM
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
• 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.
16
Bài tập tiểu luận môn ANM
• 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.
NHÓM 19 18
Bài tập tiểu luận môn ANM
• 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.
• 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
• 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.
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
NHÓM 19 23
Bài tập tiểu luận môn ANM
NHÓM 19 24
Bài tập tiểu luận môn ANM
NHÓM 19 25
Bài tập tiểu luận môn ANM
NHÓM 19 26
Bài tập tiểu luận môn ANM
[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.
[7] Bruce Schneier, John Kelsey, "Unbalanced Feistel Networks and Block Cipher".
NHÓM 19 27