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 F
Trang 1KHOA 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.”
Trang 2
2
STT Họ và tên Mã sinh viên Nhiệm vụ
chung
Nhiệm vụ riêng Ghi chú
1
Tìm hiểu tài liệu, đóng góp
và chia sẻ
ý kiến xây dựng bài tiểu luận
Quá trình
mã hóa và giải mã của
hệ thống mật mã Feistel
Nhóm trưởng Phân chia công việc, tổng hợp bài làm, chỉnh sửa và chịu trách nhiệm cuối cùng cho bài tiểu luận
2
Tổng quan
về mật mã Feistel
Ưu nhược điểm và các mật mã thông dụng
Chỉ ra phương pháp và cách giải quyết vấn đề
3
Tổng quan
về mật mã khối, quá trình mã hóa, giải mã của mật mã khối và các mật mã khối thông dụng
Viết lời mở đầu
và lý do chọn đề tài cho tiểu luận
Trang 33
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
Trang 44
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
Trang 55
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
Standard Tiêu chuẩn mã hóa tiên tiến
CBC Cipher Block Chaining Mã móc xích
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
TDES (3DES) Triple Data encryption
Trang 66
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
Trang 77
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
Trang 88
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:
Trang 99
• 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ị
Trang 1010
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
Trang 1111
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ó
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
Trang 12Hì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õ
Trang 13• 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
Trang 1414
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
Mã hoá: Cj = Ek(Pj XOR Cj-1, K )
Hình 1 8 Sơ đồ quá trình mã hóa và giải mã trong CBC
Trang 1515
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)
Trang 1616
• 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
Trang 17NHÓM 19 17
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:
• 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
Trang 18NHÓM 19 18
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
Trang 19NHÓM 19 19
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