1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu các phương pháp mật mã và ứng dụng trong các hệ thống thông tin thế hệ tiếp theo

126 47 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 2,09 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghiên cứu các phương pháp mật mã và ứng dụng trong các hệ thống thông tin thế hệ tiếp theo Nghiên cứu các phương pháp mật mã và ứng dụng trong các hệ thống thông tin thế hệ tiếp theo Nghiên cứu các phương pháp mật mã và ứng dụng trong các hệ thống thông tin thế hệ tiếp theo luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

B Ộ GIÁO DỤC VÀ ĐÀO TẠO

-

NGUYỄN THỊ THU HẰNG

NGHIÊN CỨU CÁC PHƯƠNG PHÁP MẬT MÃ VÀ ỨNG DỤNG TRONG

CÁC HỆ THỐNG THÔNG TIN THẾ HỆ TIẾP THEO

LU ẬN VĂN THẠC SỸ KHOA HỌC

NGÀNH: KỸ THUẬT ĐIỆN TỬ

HÀ NỘI – 2007

Trang 2

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 5

DANH MỤC CÁC HÌNH VẼ 6

PHẦN MỞ ĐẦU 8

1 Lý do chọn đề tài: 8

2 Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu 8

3 Tóm tắt nội dung luận văn: 8

4 Phương pháp nghiên cứu 8

NỘI DUNG LUẬN VĂN 9

Lời giới thiệu 9

CHƯƠNG I: TỔNG QUAN VỀ MẬT MÃ HỌC 10

1.1 Mật mã học: 10

1.2 Một số kiến thức toán học phụ trợ: 11

1.3 Hệ thống mật mã (Cryptosystem) 13

1.4 Hệ thống mã hóa quy ước (Mã hóa đối xứng) 13

1.5 Hệ thống mã hóa khóa công cộng (Mã hóa bất đối xứng) 14

1.6 Kết hợp mã hóa quy ước và mã hóa khóa công cộng 14

CHƯƠNG II: MỘT SỐ PHƯƠNG PHÁP MÃ HÓA QUY ƯỚC 16

2.1 Hệ thống mã hóa quy ước 16

2.2 Mật mã thay thế 16

2.2.1.Phương pháp mã hóa dịch chuyển (Mật mã dịch vòng) 16

2.2.2 Phương pháp mã hóa thay thế 18

2.2.3 Phương pháp mật mã Vigenère 19

2.3 Phương pháp mật mã hoán vị: 21

2.4 Phương pháp mật mã Hill 22

2.5 Phương pháp Affine 25

2.6 Các hệ mật mã tích: 28

2.7 Các hệ mã dòng: 31

2.8 Chuẩn mã dữ liệu-Phương pháp DES 34

(Data Encryption Standard) 34

2.8.1 Giới thiệu về DES: 34

2 8.2 Ví dụ về DES: 44

2.8.3 Một số thảo luận về DES: 48

Trang 3

2.8.4 DES trong thực tế: 49

2.8.5 Phương pháp chuẩn mã hóa nâng cao AES 52

CHƯƠNG III: MẬT MÃ KHOÁ CÔNG CỘNG 55

3.1 GIỚI THIỆU: 55

3.2 HỆ MẬT RSA: 57

3.2.1 Thuật toán 1: Tạo khoá 57

3.2.2 Định nghĩa: 57

3.2.3 Thuật toán 2: Mã hoá công khai RSA: 58

3.2.4 Một số phương pháp tấn công giải thuật RSA 59

3.2.5 Sự che giấu thông tin trong hệ thống RSA 63

3.2.6 Vấn đề số nguyên tố 64

3.3 HỆ MẬT RABIN 64

3.3.1 Thuật toán 1: Tạo khoá 64

3.3.2 Thuật toán 2: Mã hoá công khai Rabin 65

3.3.3 Chú ý: 65

3.3.4 Ví dụ: 65

3.4 HỆ MẬT Elgamal: 66

3.4.1 Thuật toán tạo khoá: 66

3.4.2 Thuật toán mã hoá công khai ElGamal: 67

3.4.3 Ví dụ: 67

3.5 HỆ MẬT MERKLE – HELLMAN 68

3.5.1 Định nghĩa dãy siêu tăng: 68

3.5.2 Bài toán xếp balô 68

3.5.3 Giải bài toán xếp ba lô trong trường hợp dãy siêu tăng 68

3.5.4 Thuật toán tạo khoá 69

3.5.5 Thuật toán mã công khai Merkle-Hellman 69

3.5.6 Ví dụ: 70

3.6 HỆ MẬT CHOR-RIVEST (CR) 70

3.6.1 Thuật toán tạo khoá: 70

3.6.2 Thuật toán mã hoá 71

3.6.3 Ví dụ: 73

3.6.4 Chú ý: 74

3.7 HỆ MẬT MCELICE 75

3.7.1 Định nghĩa 1: 75

3.7.2 Định lý 2: 76

Trang 4

3.8 HỆ MẬT DỰA TRÊN ĐỊNH DANH 79

3.8.1 Ý tưởng cơ bản: 79

3.8.2 Sơ đồ trao đổi khóa Okamoto –Tanaka 80

CHƯƠNG IV: 82

MÃ HÓA KHÓA QUY ƯỚC VÀ MÃ HÓA KHÓA CÔNG CỘNG 82

CHƯƠNG V 85

CÁC HÀM BĂM VÀ TÍNH TOÀN VẸN CỦA DỮ LIỆU 85

5.1 ĐẶT VẤN ĐỀ 85

5.2.HÀM BĂM MẬT MÃ 85

5.3 CÁC ĐỊNH NGHĨA VÀ TÍNH CHẤT CƠ BẢN 87

5.3.1 Định nghĩa hàm băm 87

5.3.2 Một số tính chất của các hàm băm không có khoá 87

5.3.3 Định nghĩa hàm băm một chiều (OWHF- Oneway hash function) 88

5.3.4 Định nghĩa hàm băm khó va chạm (CRHF: Collision Resistant HF) 88

5.3.5 Chú ý về các thuật ngữ: 88

5.3.6 Ví dụ: 88

5.3.7 Định nghĩa thuật toán mã xác thực thông báo (MAC) 88

5.3.8 Phân loại các hàm băm mật mã và ứng dụng 89

5.4 CẤU TRÚC CỦA HÀM BĂM- TÍNH AN TOÀN CỦA HÀM BĂM 89

5.4.1 Cấu trúc của hàm băm 89

5.4.2 Tính an toàn của hàm băm: 89

5.5 TÍNH TOÀN VẸN CỦA DỮ LIỆU VÀ XÁC THỰC THÔNG BÁO 90

5.5.1 Định nghĩa 1: 90

5.5.2 Định nghĩa 2: 90

5.5.3 Các phương pháp đảm bảo xác thực tính nguyên vẹn của dữ liệu: 92

5.6 TRAO ĐỔI VÀ THỎA THUẬN KHÓA 92

5.7 CHỮ KÝ SỐ 92

5.7.1 Phương pháp chữ ký điện tử RSA: 94

5.7.2 Phương pháp chữ ký điện tử ElGamal 96

5.7.3 Phương pháp Digital Signature Standard (DSS) 96

CHƯƠNG VI 98

CHỨNG NHẬN KHÓA CÔNG CỘNG 98

6.1.Giới thiệu: 98

6.2 Các loại giấy chứng nhận khóa công cộng 100

6.2.1 Chứng nhận X.509 100

Trang 5

6.2.2 Chứng nhận chất lượng: 102

6.2.3 Chứng nhận PGP: 103

6.2.4 Chứng nhận thuộc tính: 103

6.3 Sự chứng nhận và kiểm tra chữ ký 104

6.4 Các thành phần của một cơ sở hạ tầng khóa công cộng 105

6.4.1 Tổ chức chứng nhận – Certificate Authority (CA) 106

6.4.2 Tổ chức đăng ký chứng nhận – Registration Authority (RA) 106

6.4.3 Kho lưu trữ chứng nhận – Certificate Repository (CR) 107

6.5 Chu trình quản lý giấy chứng nhận: 107

6.5.1 Khởi tạo: 107

6.5.2 Yêu cầu về giấy chứng nhận: 107

6.5.3 Tạo lại chứng nhận: 109

6.5.4 Hủy bỏ chứng nhận: 109

6.5.5 Lưu trữ và khôi phục khóa: 110

6.6 Các mô hình CA 111

6.6.1 Mô hình tập trung 111

6.6.2 Mô hình phân cấp 111

6.6.3 Mô hình “Web of Trust” 112

6.7.Ứng dụng “Hệ thống bảo vệ thư điện tử” 113

6.7.1 Đặt vấn đề: 113

6.7.2 Quy trình mã hóa thư điện tử: 114

6.7.3 Quy trình giải mã thư điện tử 114

CHƯƠNG VII 116

MẠNG NGN VÀ VẤN ĐỀ BẢO MẬT TRONG MẠNG NGN 116

7.1 GIỚI THIỆU CHUNG VỀ MẠNG NGN: 116

7.2 VẤN ĐỀ BẢO MẬT TRONG MẠNG NGN: 120

7.2 1 Những vấn đề bảo mật khi triển khai NGN: 120

7.2.2 Nguyên tắc bảo mật: 120

7.2.3 Một số biện pháp hỗ trợ bảo mật: 121

PHẦN KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU 123

1 Kết luận: 123

2 Định hướng nghiên cứu 124

TÀI LIỆU THAM KHẢO 125

Trang 6

DANH M ỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

AES Advanced Encryption Standard Chuẩn mã hóa nâng cao

CBC Cipher-Block Chaining Chế độ liên kết khối mã

CFB Cipher Feedback Chế độ phản hồi đầu mã

CRHF Collision Resistant HF Hàm băm khó va chạm

DES Data Encryption Standard Chuẩn mã hóa

DSS Digital Signature Standard Chuẩn chữ ký số

ECB Electronic Code-Book Chế độ chuyển mã điện tử LFSR Linear Feedback Shift Register Bộ ghi dịch hồi tiếp tuyến tính MAC Message Authentication Code Mã xác thực bản tin

MD4 Message Digest 4 Hàm băm MD4

MD5 Message Digest 5 Hàm băm MD5

MDC Manipulation Detection Codes Mã phát hiện sự sửa đổi

NBS National bureau of standards Uỷ ban Tiêu chuẩn Quốc gia Mỹ

NIST National Institute of Standards and

Technology

Viện Tiêu chuẩn và Công nghệ

Quốc gia Hoa Kỳ NSA National Security Agency Cục An ninh Quốc gia Mỹ OFB Output Feedback Chế độ phản hồi đầu ra

OWHF Oneway hash function Hàm băm một chiều

PIN Personal Identification Number Số định danh cá nhân

SHS Secure Hash Standard Phương pháp SHS

Trang 7

DANH M ỤC CÁC HÌNH VẼ

Hình 2.1: Mô hình hệ thống mã hóa quy ước……….… 16

Hình 2.2: Thanh ghi dịch hồi tiếp tuyến tính (LFSR)……… 33

Hình 2.3: Biểu diễn dãy 64 bit x thành 2 thành phần L và R………35

Hình 2.4: Một vòng của DES………36

Hình 2.5: Hàm f của DES……… 37

Hình 2.6: Tính bảng khóa DES……… 40

Hình 2.7: Chế độ CBC……… 50

Hình 2.8: Chế độ CFB……… 51

Hình 3.1: Hệ mật McElice………77

Hình 3.2: Sơ đồ trao đổi khóa Okamoto – Tanaka……… 80

Hình 4.1: Bảng so sánh độ an toàn giữa khóa bí mật và khóa công cộng…………82

Hình 4.2: Đồ thị so sánh ch phí công phá khóa bí mật và khóa công cộng……….83

Hình 5.1: Bảng phân loại các hàm băm mật mã và ứng dụng……… 89

Hình 5.2: Dùng MAC bảo đảm tính toàn vẹn của dữ liệu………91

Hình 5.3: Dùng MDC và mã hóa bảo đảm tính toàn vẹn của dữ liệu……… 91

Hình 5.4: Dùng MDC và kênh tin cậy bảo đảm tính toàn vẹn của dữ liệu……… 91

Hình 5.5: Tạo một thông báo có ký bằng chữ ký số……….93

Hình 5.6: Các bước kiểm tra một thông báo đã ký……… 93

Hình 5.7: Sơ đồ chữ ký số RSA (không bí mật bản tin)……… 95

Hình 5.8: Sơ đồ chữ ký số RSA (có bí mật bản tin)………95

Hình 6.1: Vấn đề chủ sở hữu khóa công cộng……….98

Hình 6.2: Các thành phần của một chứng nhận khóa công cộng………99

Hình 6.3: Mô hình Certification Authority đơn giản……… 100

Hình 6.4: Phiên bản 3 của chuẩn chứng nhận X.509……… 101

Hình 6.5: Phiên bản 2 của cấu trúc chứng nhận thuộc tính………103

Hình 6.6 Quá trình ký giấy chứng nhận……….104

Hình 6.7: Quá trình kiểm tra chứng nhận………105

Hình 6.8: Mô hình PKI cơ bản………105

Hình 6.9: Mẫu yêu cầu chứng nhận theo chuẩn PKCS#10……….107

Trang 8

Hình 6.10: Định dạng thông điệp yêu cầu chứng nhận theo RFC 2511……… 108

Hình 6.11: Phiên bản 2 của định dạng danh sách chứng nhận bị hủy………… 110

Hình 6.12: Mô hình CA tập trung……… 111

Hình 6.13: Mô hình CA phân cấp……… 112

Hình 6.14: Mô hình “Web of trust”……… 112

Hình 6.15: Quy trình mã hóa thư điện tử……… 114

Hình 6.16: Quy trình giải mã thư điện tử……… 115

Trang 9

sử dụng trong lĩnh vực quân sự, chính trị, ngoại giao Ngày nay, các ứng dụng

mãhóa và bảo mật thông tin đ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, từ các lĩnh vực an ninh, quân sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…

Nghiên cứu về các phương pháp mật mã, các phương thức áp dụng mật

mã vào việc bảo mật thông tin, ứng dụng mật mã trong các lĩnh vực của đời sống trở thành một yêu cầu cấp thiết, có ý nghĩa quan trọng

2 M ục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu

Mục đích của luận văn là nghiên cứu các phương pháp mật mã , các quy trình mã hóa và giải mã thông tin, các ưu điểm và nhược điểm của từng phương pháp Đồng thời tìm hiểu một số ứng dụng của mã hóa trong bảo mật thông tin, chữ ký điện tử, bảo mật thư điện tử,…

3 Tóm t ắt nội dung luận văn:

- Chương I: Tổng quan về mật mã học

- Chương II: Một số phương pháp mã hóa quy ước:

- Chương III: Hệ mật khóa công cộng

- Chương IV: Hệ mật khóa quy ước và hệ mật khóa công cộng

- Chương V: Hàm băm và tính toàn vẹn dữ liệu

- Chương VI: Mạng NGN và vấn đề bảo mật trong mạng NGN

4 Phương pháp nghiên cứu

Để hiểu về mật mã, trước hết luận văn nghiên cứu về khái niệm mật mã, quá trình

mã hóa và giải mã của các phương pháp mã hóa quy ước, các phương pháp mã hóa khóa công cộng Qua đó thấy được ưu điểm và nhược điểm của từng phương pháp

Áp dụng vào thực tế, căn cứ vào các ưu điểm và nhược điểm của các phương pháp

mã hóa đã phân tích, tìm hiểu một số ứng dụng của một số phương pháp mật mã vào mục đích bảo mật thông tin, đảm bảo toàn vẹn và chính xác của dữ liệu như chữ ký điện tử, hệ thống bảo vệ thư điện tử,…

Trang 10

N ỘI DUNG LUẬN VĂN

L ời giới thiệu

M ật mã (Cryptography) là một lĩnh vực khoa học rộng lớn, là ngành khoa

học nghiên cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo vệ thông tin Đây là ngành khoa học quan trọng, có nhiều ứng dụng trong đời sống – xã hội

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 Các kết quả của khoa học mật mã ngày càng được triển khai trong nhiều lĩnh vực khác nhau của đời

sống – xã hội, trong đó phải kể đến rất nhiều những ứng dụng đa dạng trong lĩnh

vực dân sự, thương mại Các ứng dụng mã hóa thông tin cá nhân, trao đổi thông tin kinh doanh, thực hiện các giao dịch điện tử qua mạng đã trở nên gần gũi và quen

thuộc với mọi người

Cùng với sự phát triển của khoa học máy tính và Internet, các nghiên cứu và ứng dụng của mật mã học ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiên

cứu chuyên sâu vào từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng

Mã hóa tuy không phải là một lĩnh vực mới mẻ, song để có thể hiểu thật kỹ, thật sâu về nó cần phải có một quá trình nghiên cứu lâu dài và chi tiết Do vậy, mặc dù đã rất

cố gắng nhưng những nội dung em trình bày trong đồ án này chắc hẳn vẫn không tránh khỏi những thiếu sót Em rất mong sự quan tâm chỉ bảo của thầy cô giáo và sự góp ý của các bạn

Em xin gửi lời cảm ơn chân thành đến các thầy cô giáo trong Khoa Điện tử

viễn thông trường Đại học Bách Khoa Hà Nội Đặc biệt, em xin chân thành cảm ơn

tình giúp đỡ cho em hoàn thành đồ án này

Trang 11

CHƯƠNG I: TỔNG QUAN VỀ MẬT MÃ HỌC

Nội dung của chương I giới thiệu tổng quan các khái niệm cơ bản về mật mã học, một

số ứng dụng của mật mã trong thực tế, các dịch vụ an toàn cơ bản mà mật mã đảm bảo Trong chương này cũng giới thiệu một số kiến thức toán học phụ trợ cho việc nghiên cứu

về mật mã, đồng thời giới thiệu sơ lược về hệ thống mã hóa, hệ thống mã hóa quy ước, hệ thống mã hóa khóa công cộng và sự kết hợp mã hóa quy ước và mã hóa khóa công cộng

1.1 M ật mã học:

Mật mã học là ngành khoa học ứng dụng toán học vào việc biến đổi thông tin thành một dạng khác với mục đích che dấu nội dung, ý nghĩa thông tin cần mã hóa Đây là một ngành quan trọng và có nhiều ứng dụng trong đời sống xã hội

Ứng dụng của khoa học mật mã 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ư 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ã khóa (chứng nhận khóa công cộng), 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 trên

mạng Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ

thống phức tạp hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng

của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu

bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị

với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ multimedia trên

mạng với yêu cầu cung cấp dịch vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thông tin số

Các ứng dụng của mật mã học và khoa học bảo vệ thông tin rất đa dạng và phong phú; tùy vào tính đặc thù của mỗi hệ thống bảo vệ thông tin mà ứng dụng

sẽ có các tính năng với đặc trưng riêng Nhưng, nói một cách tổng quát, kỹ thuật mật mã nhằm đảm bảo ba dịch vụ an toàn cơ bản sau:

 Tính bảo mật thông tin: hệ thống đảm bảo thông tin được giữ bí mật

Thông tin có thể bị phát hiện, ví dụ như trong quá trình truyền nhận, nhưng người tấn công không thể hiểu được nội dung thông tin bị đánh cắp này

 Tính toàn vẹn thông tin: hệ thống bảo đảm tính toàn vẹn thông tin trong

liên lạc hoặc giúp phát hiện rằng thông tin đã bị sửa đổi

 Tính xác thực: Xác thực các đối tác trong liên lạc và xác thực nội dung

thông tin trong liên lạc

Trang 12

Ngoài ra, kỹ thuật mật mã còn đảm bảo chống lại sự thoái thác trách nhiệm Hệ thống đảm bảo một đối tác bất kỳ trong hệ thống không thể từ chối trách nhiệm về hành động mà mình đã thực hiện

Những kết quả nghiên cứu về mật mã cũng đã được đưa vào trong các hệ

thống phức tạp hơn, kết hợp với những kỹ thuật khác để đáp ứng yêu cầu đa dạng

của các hệ thống ứng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu

bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống quản lý an ninh của các đơn vị

với hướng tiếp cận sinh trắc học, hệ thống cung cấp dịch vụ đa phương tiện trên

mạng với yêu cầu cung cấpdịch vụ và bảo vệ bản quyền sở hữu trí tuệ đối với thông tin số

1.2 M ột số kiến thức toán học phụ trợ:

Định nghĩa 1.1: Zm được định nghĩa là tập hợp{0,1, , m-1}, được trang bị

phép c ộng (ký hiệu +) và phép nhân (ký hiệu là x) Phép cộng và phép nhân trong Z m được thực hiện tương tự trong Z , ngoại trừ kết quả tính theo modulo

4 Zm có phần tử trung hòa là 0, ∀a, b ∈Zm, a +0 = 0 +a = a

5 Mọi phần tử a trong Zm đều có phần tử đối là m − a

6 Phép nhân đóng trong Zm , ∀a, b ∈Zm , a x b ∈Zm

7 Tính giao hoán của phép nhân trong Zm

∀a, b ∈ Zm , a x b = b x a

8 Tính kết hợp của phép nhân trong Zm

Trang 13

m là ước của (a-b)

Số nguyên m được gọi là modulo đồng dư

Phần dư của phép chia a và b được ký hiệu là a mod b= r

 Các tính chất: Với a, a1,b,b1, c ∈Z ta có:

• a ≡ b (mod m) nếu và chỉ nếu a và b cũng có phần dư khi chia cho m

• Tính phản xạ: a ≡ a (mod m)

• Tính đối xứng:

Nếu a ≡ b (mod m) thì b ≡ a (mod m)

• Tính bắc cầu: Nếu a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m)

• Nếu a ≡ a1 (mod m) và b ≡ b1 (mod m) thì a+b ≡ a1+b1 (mod m) và a.b ≡

a1.b1 (mod m)

Định thức của ma trận:

Định thức của ma trận vuông cấp n là tổng đại số của n! (n giai thừa) số

hạng, mỗi số hạng là tích của n phần tử lấy trên các hàng và các cột khác nhau của

ma trận A, mỗi tích được nhân với phần tử dấu là +1 hoặc -1 theo phép thế tạo bởi các chỉ số hàng và chỉ số cột của các phần tử trong tích Gọi Sn là nhóm các hoán vị

của n phần tử 1,2, ,n ta có:

(Công thức Leibniz)

Định thức của ma trận A = (ai,j) cấp 2x2 là giá trị:

det A = a1,1a2,2 – a1,2a2,1

Hai tính chất quan trọng của định thức là: det Im =1 và

det (AB) = detA x detB

Nếu det A=0 thì A không có ma trận nghịch đảo A-1

Nếu det A ≠ 0 thì A có ma trận nghịch đảo A-1

Trang 14

Với aij = (-1)i+j .det(Mij) Trong đó: Mij là ma trận con được tạo thành bằng cách xóa

bỏ hàng thứ i và cột thứ j của ma trận A

1.3 H ệ thống mật mã (Cryptosystem)

Định nghĩa 1.1 : Hệ thống mật mã (cryptosystem) là một bộ năm (P, C, K, E, D)

th ỏa mãn các điều kiện sau:

1 T ập nguồn P là tập hữu hạn tất cả các mẩu tin nguồn cần mã hóa có thể có

2 T ập đích C là tập hữu hạn tất cả các mẩu tin có thể có sau khi mã hóa

3 T ập khóa K là tập hữu hạn các khóa có thể được sử dụng

1.4 H ệ thống mã hóa quy ước (Mã hóa đối xứng)

Trong hệ thống mã hóa quy ước, quá trình mã hóa và giải mã một thông điệp

sử dụng cùng một mã khóa gọi là khóa bí mật (secret key) hay khóa đối xứng

(symmetric key) Do đó, vấn đề bảo mật thông tin đã mã hóa hoàn toàn phụ thuộc vào

việc giữ bí mật nội dung của mã khóa đã được sử dụng

Với tốc độ và khả năng xử lý ngày càng được nâng cao của các bộ vi xử lý

Trang 15

hiện nay, phương pháp mã hóa chuẩn (Data Encryption Standard – DES) đã trở nên không an toàn trong bảo mật thông tin Do đó, Viện Tiêu chuẩn và Công nghệ

Quốc gia Hoa Kỳ (National Institute of Standards and Technology – NIST) đã quyết định chọn một chuẩn mã hóa mới với độ an toàn cao 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ự Thuật toán Rijndael do Vincent Rijmen và Joan Daeman đã được chính thức chọn

trở thành chuẩn mã hóa nâng cao (Advanced Encryption Standard - AES) từ 02 tháng 10 năm 2000

1.5 H ệ thống mã hóa khóa công cộng (Mã hóa bất đối xứng)

Nếu như vấn đề khó khăn đặt ra đối với các phương pháp mã hóa quy ước chính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp mã hóa khóa công cộng giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn Nội dung của

khóa công c ộng (public key) không cần phải giữ bí mật như đối với khóa bí mật

trong các phương pháp mã hóa quy ước Sử dụng khóa công cộng, chúng ta có thể thiết lập một quy trình an toàn để truy đổi khóa bí mật được sử dụng trong hệ

thống mã hóa quy ước

Trong những năm gần đây, các phương pháp mã hóa khóa công cộng, đặc

biệt là phương pháp RSA [45], được sử dụng ngày càng nhiều trong các ứng dụng

mã hóa trên thế giới và có thể xem như đây là phương pháp chuẩn được sử dụng

phổ biến nhất trên Internet, ứng dụng trong việc bảo mật thông tin liên lạc cũng

như trong lĩnh vực thương mại điện tử

1.6 K ết hợp mã hóa quy ước và mã hóa khóa công cộng

Các phương pháp mã hóa quy ước có ưu điểm xử lý rất nhanh và khả năng

bảo mật cao so với các phương pháp mã hóa khóa công cộng nhưng lại gặp phải

vấn đề khó khăn trong việc trao đổi mã khóa

Ngược lại, các phương pháp mã hóa khóa công cộng tuy xử lý thông tin ơchậm hn nhưng lại cho phép người sử dụng trao đổi mã khóa dễ dàng hơn

Do đó, trong các ứng dụng thực tế, chúng ta cần phối hợp được ưu điểm của

mỗi phương pháp mã hóa để xây dựng hệ thống mã hóa và bảo mật thông tin hiệu

quả và an toàn

Trang 16

Kết luận: Mật mã học là ngành khoa học ứng dụng toán học vào việc biến đổi

thông tin thành một dạng khác với mục đích che dấu nội dung thông tin cần mã hoá Kỹ thuật này nhằm đảm bảo 3 dịch vụ an toàn cơ bản là: tính bảo mật thông tin, tính toàn vẹn thông tin và tính xác thực Ngoài ra kỹ thuật mật mã còn đảm bảo chống lại sự thoái thác trách nhiệm Có hai hệ thống mã hoá cơ bản là hệ thống mã hoá quy ước và hệ thống mã hoá khoá công cộng Với phương pháp mã hoá quy ước (mã hoá đối xứng), quá trình mã hoá và giải mã một thông điệp sử dụng cùng một khoá (gọi là khoá bí mật) Hệ thống mã hoá khoá công cộng (mã hoá bất đối xứng) sử dụng khoá công cộng, không cần phải giữ bí mật khoá như đối với khoá bí mật

Trang 17

CHƯƠNG II: MỘT SỐ PHƯƠNG PHÁP MÃ HÓA QUY ƯỚC

Trong chương I, chúng ta đã tìm hiểu tổng quan về mật mã học và các hệ thống mã hóa N ội dung của chương II sẽ giới thiệu chi tiết hơn về hệ thống mã hóa quy ước (hay

phương pháp mật mã hoán vị, phương pháp mật mã Hill, phương pháp mật mã Affine, các

trong nh ững thập niên gần đây như DES, AES

2.1 H ệ thống mã hóa quy ước

Trong hệ thống mã hóa quy ước, thông điệp nguồn được mã hóa với mã

khóa k được thống nhất trước giữa người gửi A và người nhận B Người A sẽ sử

dụng mã khóa k để mã hóa thông điệp x thành thông điệp y và gửi y cho người

B; người B sẽ sử dụng mã khóa k để giải mã thông điệp y này

Vấn đề an toàn bảo mật thông tin được mã hóa phụ thuộc vào việc giữ bí

mật nội dung mã khóa k Nếu người C biết được mã khóa k thì C có thể “mở khóa”

thông điệp đã được mã hóa mà người A gửi cho người B

Hình 2.1 Mô hình h ệ thống mã hóa quy ước

2.2 M ật mã thay thế

2.2.1.Phương pháp mã hóa dịch chuyển (Mật mã dịch vòng)

Phương pháp mã hóa dịch chuyển là một trong những phương pháp lâu đời

nhất được sử dụng để mã hóa Thông điệp được mã hóa bằng cách dịch chuyển xoay vòng từng ký tự đi k vị trí trong bảng chữ cái

Trang 18

Thuật toán 2.2.1 Phương pháp mã hóa dịch chuyển Cho P = C = K = Zn

Với mỗi khóa k ∈ K , định nghĩa:

ek ( x) = ( x +k ) mod n và dk ( y) = ( y - k ) mod n với x, y ∈Zn

E = {ek , k ∈ K} và D = {dk , k ∈ K }

Ví d ụ: Để mã hóa một thông điệp được biểu diễn bằng các chữ cái từ A đến Z (26

ch ữ cái), ta sử dụng P = C = K =Z 26 Khi đó, thông điệp được mã hóa sẽ không an toàn

và có th ể dễ dàng bị giải mã bằng cách thử lần lượt 26 giá trị khóa k ∈ K Tính trung bình, thông điệp đã được mã hóa có thể bị giải mã sau khoảng n / 2 lần thử khóa k ∈ K

C ụ thể, ta sử dụng mã dịch vòng (với modulo 26) để mã hóa thông điệp trên bằng cách thi ết lập sự tương ứng giữa các ký tự và các thặng dư theo mod 26 như sau:

Ký tự A B C D E F G H I J K L M

Mã tương ứng

0 1 2 3 4 5 6 7 8 9 10 11 12

Ký tự N O P Q R S T U V W X Y Z

Mã tương ứng

13 14 15 16 17 18 19 20 21 22 23 24 25

Gi ả sử chọn khóa dịch vòng là k=5 và thông tin cần mã hóa (bản rõ) là meetmeat Trước tiên ta biến đổi bản rõ thành dãy các số nguyên theo bảng trên: 12.4.4.19.12.4.0.19

Sau đó, ta cộng 5 vào mỗi giá trị ở trên và rút gọn tổng theo mod 26, ta được dãy s ố: 17.9.9.24.17.9.5.24

Cu ối cùng ta biến đổi dãy số nguyên trên thành các ký tự tươngứng, ta có

b ản mã: RJJYRJFY

Để giải mã cho bản này, ta lần lượt thực hiện các thao tác: biến bản mã thành dãy s ố nguyên rồi trừ các giá trị cho 5 (rút gọn theo modulo 26), cuối cùng là

bi ến đổi lại dãy số nhận được này thành các ký tự

Trong trường hợp đặc biệt , k = 3 , phương pháp mã hóa bằng dịch chuyển

Trang 19

được gọi là phương pháp mã hóa Caesar

Mã hóa dịch chuyển là một phương pháp mã hóa đơn giản, thao tác xử lý mã hóa và giải mã được thực hiện nhanh chóng Tuy nhiên, trên thực tế, phương pháp này có thể dễ dàng bị phá vỡ bằng cách tìm khóa vét cạn (thử mọi khả năng khóa k

∈K) Điều này hoàn toàn có thể thực hiện được do không gian khóa K chỉ có n phần

tử để chọn lựa

Vậy điều kiện cần để có một hệ mật an toàn là phép tìm khóa vét cạn phải không thể thực hiện được Tuy nhiên, một không gian khóa lớn vẫn chưa đủ để đảm

bảo độ mật của thông tin

2.2.2 Phương pháp mã hóa thay thế

Phương pháp mã hóa thay thế (Substitution Cipher) là một trong những

phương pháp mã hóa nổi tiếng và đã được sử dụng từ hàng trăm năm nay Phương pháp này thực hiện việc mã hóa thông điệp bằng cách hoán vị các phần tử trong

bảng chữ cái Tổng quát là hoán vị các phần tử trong tập nguồn P

Thuật toán 2.2.2 Phương pháp mã hóa bằng thay thế

Cho P = C = Zn

K là t ập hợp tất cả các hoán vị của n phần tử 0,1, , n -1

Như vậy, mỗi khóa π ∈ K là một hoán vị của n phần tử 0,1, , n - 1

Với mỗi khóa π ∈ K , định nghĩa:

eπ (x) = π(x) và dπ(y) = π-1(y) với x,y ∈ Zn

Trong đó, π-1 là hoán vị ngược của π

E = {e π , π ∈ K} và D ={Dπ , π ∈ K }

Ví d ụ: sử dụng phép hoán vị ngẫu nhiên π t ạo nên một hàm mã hóa, các ký tự của

b ản rõ được viết bằng chữ thường, các ký tự của bản mã hóa được viết bằng chữ in hoa

Ký tự bản rõ a b c d e f g h i j k l m

Ký tự bản mã X N Y A H P O G Z Q W B T

Ký tự bản rõ n o p q r s t u v w x y z

Ký tự bản mã S F L R C V M U E K J D I

Trang 20

Như vậy, eπ (a)=X, eπ (b) = N, …

Hàm gi ải mã là phép hoán vị ngược Điều này được thực hiện bằng cách viết hàng

th ứ 2 (Ký tự bản mã) lên trước rồi sắp xếp theo thứ tự chữ cái Ta có:

M ỗi khóa của mã thay thế là một hoán vị của 26 ký tự Số các hoán vị này là 26!

>4.10 26 Đây là một số rất lớn nên khó có thể tìm được khóa bằng phép tìm khóa vét

c ạn

Đây là một phương pháp đơn giản, thao tác mã hóa và giải mã được thực

hiện nhanh chóng Phương pháp này khắc phục điểm hạn chế của phương pháp

mã hóa bằng dịch chuyển là có không gian khóa K nhỏ nên dễ dàng bị giải mã

bằng cách thử nghiệm lần lượt n giá trị khóa k ∈K

Trong phương pháp mã hóa thay thế có không gian khóa K rất lớn với n!

phần tử nên không thể bị giải mã bằng cách “vét cạn” mọi trường hợp khóa k

Tuy nhiên, trên thực tế thông điệp được mã hóa bằng phương pháp này vẫn có

thể bị giải mã nếu như có thể thiết lập được bảng tần số xuất hiện của các ký tự trong thông điệp (phương pháp thống kê) hay nắm được một số từ, ngữ trong thông điệp nguồn ban đầu

2.2.3 Phương pháp mật mã Vigenère

Trong hai phương pháp mã hóa bằng dịch chuyển (mã dịch vòng) và phương pháp mã hóa thay thế, ứng với một khóa k được chọn, mỗi phần tử x∈ P được ánh

xạ duy nhất vào một phần tử y ∈ C Nói cách k ∈ K , một song ánh được thiết lập

từ P vào C Vì vậy các hệ trên còn được gọi là các hệ thay thế đơn biểu

Khác với hướng tiếp cận này, phương pháp Vigenere sử dụng một từ khóa có

độ dài m Có thể xem như phương pháp mã hóa Vigenere Cipher bao gồm m phép

Trang 21

n

mã hóa bằng dịch chuyển được áp dụng luân phiên nhau theo chu kỳ Hệ mật Vigenère là một hệ thay thế đa biểu

Thuật toán 2.2.3 Phương pháp mã hóa Vigenere

Chọn số nguyên dương m Định nghĩa P = C = K = (Zn)m

Với mối khóa k={k1, k2, km}, ta định nghĩa:

ek (x1, x2, … xm} = (x1+k1) mod n, (x2+k2) mod n, …(xm+km) mod n

dk (y1, y2, … ym} = (y1- k1) mod n, (y2- k2) mod n, …(ym- km) mod n

T ừ khóa tương ứng với dãy số k=(2, 8, 15, 7, 4, 17)

Ta bi ến đổi bản rõ thành các thặng dư theo mod 26, viết chúng thành các nhóm 6 rồi

c ộng với khóa theo modulo 26 như sau:

Trang 22

Dãy ký t ự tương ứng với bản mã là OMTAQVCB

Để giải mã, ta có thể dùng cùng từ khóa nhưng thay vì thực hiện phép cộng,

ta trừ nó theo modulo n

Không gian khóa K c ủa phương pháp Vigenere Cipher có số phần tử là nm ,

lớn hơn hẳn phương pháp số lượng phần tử của không gian khóa K trong

phương pháp mã hóa bằng dịch chuyển Thậm chí với m khá nhỏ, phương pháp tìm kiếm vét cạn cũng yêu cầu thời gian khá lớn Do đó, việc tìm ra mã khóa k

để giải mã thông điệp đã được mã hóa sẽ khó khăn hơn đối với phương pháp mã hóa bằng dịch chuyển

2.3 Phương pháp mật mã hoán vị:

Các phương pháp mật mã thay thế nêu trên đều dựa trên ý tưởng chung: thay thế mỗi ký tự trong thông điệp nguồn bằng một ký tự khác để tạo thành thông điệp đã được mã hóa

Ý tưởng chính của phương pháp mật mã hoán vị (Permutation Cipher) là

vẫn giữ nguyên các ký tự trong thông điệp nguồn (bản rõ) nhưng sẽ thay đổi vị trí

của chúng bằng cách sắp xếp lại các ký tự này Nói cách khác thông điệp nguồn được mã hóa bằng cách sắp xếp lại các ký tự trong đó Ở đây không có một phép toán đại số nào cần thực hiện khi mã hóa và giải mã

Trang 23

n

Thuật toán 2.3 Phương pháp mã hóa bằng hoán vị

Chọn số nguyên dương m Định nghĩa:

Trong đó, π-1 là phép hoán vị ngược của π

Ví d ụ: Giả sử m=6 và khóa là phép hoán vị sau:

Mỗi phần tử x ∈ P là một bộ m thành phần, mỗi thành phần thuộc Zn

Ý tưởng của phương pháp này là sử dụng m tổ hợp tuyến tính của m thành

Trang 24

phần trong mỗi phần tử x∈P để phát sinh ra m thành phần tạp thành phần tử y∈C

Thuật toán 2.4 Phương pháp mã hóa Hill

Chọn số nguyên dương m Định nghĩa:

P=C=(Zn)m và K là tập hợp các ma trận m x m khả nghịch

Với mỗi khóa k = �

𝑘𝑘1,1 𝑘𝑘1,2 … 𝑘𝑘1, 𝑚𝑚𝑘𝑘2,1 𝑘𝑘2,2 … 𝑘𝑘2, 𝑚𝑚

𝑘𝑘𝑚𝑚, 1 𝑘𝑘𝑚𝑚, 2 … 𝑘𝑘𝑚𝑚, 𝑚𝑚

với x = (x1, x2, … xm) ∈P

dk(y) = y.k-1 với y∈C

Mọi phép toán số học đều được thực hiện trên Zn

Ví d ụ: Nếu m=2, ta có thể viết một phần tử của bản rõ là x = (x 1 , x 2 ) và m ột

ph ần tử của bản mã là y = (y 1 , y 2 ) Ở đây, y 1 cũng như y 2 đều là một tổ hợp tuyến tính c ủa x 1 và x 2 Ch ẳng hạn, có thể lấy y 1 =a.x 1 + b.x 2

y 2 = c.x 1 + d.x 2

ho ặc có thể viết:

(y 1 , y 2 ) = (x 1 , x 2 ) �𝑎𝑎 𝑐𝑐𝑏𝑏 𝑑𝑑�

Tóm lại, trong phương pháp này, ta có thể lấy một ma trận k kích thước m x

m làm khóa , với ki,j là ký hiệu của phần tử ở hàng thứ i và cột thứ j của k

Ta thấy rằng: bản mã nhận được từ bản rõ nhờ phép biến đổi tuyến tính Do

đó, để giải mã, ta phải dùng ma trận nghịch đảo k-1 Bản mã được giải mã bằng công

thức: x=y.k-1

Gọi Im là ký hiệu của ma trận đơn vị m x m, là ma trận có các số 1 nẳm trên đường chéo chính và các số 0 ở những vị trí còn lại

Trang 26

Nh ận xét:

Ta có thể thực hiện phép giải mã nếu k có một nghịch đảo Trên thực tế, để phép

giải mã là có thể thực hiện được, điều kiện cần là k phải có nghịch đảo

Tính khả nghịch của một ma trận vuông phụ thuộc vào giá trị định thức của nó Một

ma trận thực k là có nghịch đảo khi và chỉ khi định thức của nó khác 0

Trong Zn, kết quả tương ứng là ma trận k có nghịch đảo theo modulo n khi và chỉ khi ƯCLN(detk, n) =1

Ch ứng minh:

• Giả sử ƯCLN(detk,n) =1 Khi đó det k có nghịch đảo trong Zn Với 1≤ i≤ m,

Với 1≤ j≤ m Ta định nghĩa kij là ma trận từ k bằng cách loại bỏ hàng thứ i và

cột thứ j; ma trận k* có phần tử (i,j) của nó nhận giá trị (-1)i+j detkij (k* được

gọi là ma trận bù đại số của k)

Khi đó ta có: k-1 = (det k)-1 k* = 1

det 𝑘𝑘 k

*

Vậy k là khả nghịch

• Ngược lại: khi k có nghịch đảo k-1 Theo quy tắc nhân định thức ta có:

1 = det I =det(kk-1) =det k.det k-1

Vậy det k có nghịch đảo trong Zn

2.5 Phương pháp Affine

Phương pháp mật mã dịch vòng là một trường hợp đặc biệt của phương pháp

mật mã thay thế, trong đó chỉ sử dụng n giá trị khóa k trong số n! phần tử, thì

phương pháp Affine lại là một trường hợp đặc biệt khác của mật mã thay thế Trong mã Affine, ta giới hạn chỉ xét các hàm mã có dạng:

e(x) = ax + b mod 26 (a,b ∈Z26)

Các hàm này được gọi là các hàm Affine ( khi a=1 ta có mã dịch vòng)

Thuật toán 2.5 Phương pháp Affine

Trang 27

Để có thể giải mã chính xác thông tin đã được mã hóa bằng hàm ek ∈E , yêu

cầu cần thiết là hàm Affine phải là đơn ánh Như vậy, với mỗi giá trị y ∈Zn, ta có: ax + b ≡ y (mod n) phải có nghiệm x duy nhất x ∈Zn

Tức là: ax ≡ y - b (mod n)

Vì y thay đổi trên Zn nên (y – b) cũng thay đổi trên Zn Vậy ta chỉ cần nghiên

cứu phương trình đồng dư ax ≡ y (mod n)

Định lý 2.1: Phương trình ax + b y (mod n) có nghi ệm duy nhất x Z n v ới mỗi giá

tr ị bZ n khi và ch ỉ khi a và n nguyên tố cùng nhau, tức là ƯCLN (a,n) =1

Ch ứng minh:

Giả sử ƯCLN (a,n) = d >1 Khi đó, đồng dư thức ax ≡ 0(mod n) sẽ có ít nhất hai nghiệm phân biệt trong Zn là x=0 và x=n/d Trong trường hợp này, e(x) = ax+b mod n không phải là một hàm đơn ánh và bởi vậy nó không thể là một hàm mã hóa

Vậy, điều kiện a và n nguyên tố cùng nhau bảo đảm thông tin được mã hóa

bằng hàm ek có thể được giải mã và giải mã một cách chính xác

Định lý 2.2: Gọi φ(n) là s ố lượng các phần tử thuộc Z n và nguyên t ố cùng nhau với n

Gi ả sử : n là tích c ủa các phần tử p i ei v ới i chạy từ 1 tới m, p i là các s ố nguyên tố khác nhau và e iZ + ,1≤i≤m, ta có:φ(n) là tích c ủa các phần tử (p i ei –p i e(i-1) ) v ới i chạy từ 1

t ới m

Định lý trên cho thấy, trong phương pháp mã hóa Affine, ta có n khả năng

chọn giá trị b, φ(n) khả năng chọn giá trị a Vậy không gian khóa K có tất cả n.φ(n)

phần tử

Vấn đề đặt ra cho phương pháp mã hóa Affine là để có thể giải mã được thông

Trang 28

tin đã được mã hóa cần phải tính giá trị phần tử nghịch đảo a-1∈Zn

Định nghĩa:

Gi ả sử a∈Zn Phần tử nghịch đảo (theo phép nhân) của a là phần tử a-1∈Zn sao cho a.a-1 = a-1.a = 1 (mod n)

Chứng minh tương tự như ở trên, ta có kết luận: a có nghịch đảo theo modulo n khi

và chỉ khi ƯCLN(a,n) =1, và nếu tồn tại a-1 thì nó phải là giá trị duy nhất

Ta cũng có các kết luận sau:

- Nếu b= a-1 thì a=b-1

- Nếu p là số nguyên tố thì mọi phần tử khác 0 của Zp đều có nghịch đảo

- Mọi số nguyên n>1 có thể phân tích được thành tích của các lũy thừa các số nguyên tố theo cách duy nhất

- Một vành trong đó mọi phần tử khác 0 đều có nghịch đảo được gọi là một trường

Xây d ựng công thức tính d(y):

Xét phương trình đồng dư y≡ ax + b (mod n)

Phương trình này tương đương với phương trình :

a.x=y-b (mod n)

Vì ƯCLN (a,n) =1 nên a có nghịch đảo a-1 theo modulo n

Nhân cả 2 vế với a-1 ta có: a-1.(ax)=(a-1.a).x=1.x=x

Như vậy : x≡ a-1(y-b) modn

Vậy hàm giải mã là: d(y) = a-1(y-b) modn

Ta có b ản mã là 0,23,6 tương ứng với các ký tự AXG

Trang 29

Gi ải mã: Từ các xâu ký tự bản mã AXG, ta biến đổi thành các thặng dư theo modulo

26, ta được các số tương ứng là 0,23,6

15.0-19 mod26=7 15.23-19 mod 26 =14 15.6-19 mod 26=19

Ta có b ản rõ là 7,14,19 tương ứng với các ký tự “h,o,t”

2.6 Các h ệ mật mã tích:

Năm 1949, Shannon đưa ra ý tưởng keets hợp các hệ mật bằng cách tạo tích của chúng Ý tưởng này có tầm ảnh hưởng quan trọng trong việc thiết kế các hệ mật hiện nay (ví dụ chuẩn mã dữ liệu - DES)

Phương pháp mã hóa bằng phép nhân (Multiplicative Cipher) là một phương pháp mã hóa đơn giản Không gian khóa K có tất cả ∅n phần tử Tuy nhiên, việc chọn khóa k=1∈K sẽ không có ý nghĩa trong việc mã hóa thông tin nên số lượng phần tử khóa thật sự được sử dụng trong K là ∅n-1

Vấn đề được đặt ra ở đây là độ an toàn của phương pháp này phụ thuộc vào

số lượng phần tử trong tập khóa K Nếu giá trị ∅n-1 không đủ lớn thì thông tin được mã hóa có thể bị giải mã bằng cách thử toàn bộ các khóa k∈K Để nâng cao

độ an toàn của phương pháp này, giá trị ∅n phải đủ lớn hay giá trị n phải đủ lớn Khi đó, vấn đề còn lại là làm thế nào thực hiện được một cách nhanh chóng các phép toán trên tập số nguyên lớn

Trang 30

cấu có cùng các không gian bản mã và bản rõ Tích của S1 và S2 (kí hiệu là S1 x S2)

là hệ mật (P, P, K1 x K2, E, D)

Khoá của hệ mật tích có dạng: k=(k1, k2) trong đó k1 ∈K1, k2 ∈ K2

Các quy tắc mã hoá và giải mã của hệ mật tích được tính như sau Với mỗi khoá k=(k1, k2) ta có một quy tắc mã hoá ekxác định bởi: e(k1, k2)(x) = ek2(ek1(x))

Quy tắc giải mã: d(k1, k2)(y) = dk1(dk2(y))

Nghĩa là, trước tiên ta mã hoá x bằng quy tắc ek1, kết quả thu được ta tiếp tục

Ta chọn k1 có phân bố xác suất pK1(k1) và k2 có phân bố xác xuất pK2(k2)

Như vậy, phân bố xác suất ứng với không gian khoá của hệ mật mã tích sẽ là:

pK1(k1) x pK2(k2)

Ví d ụ : Cho M là một hệ mã nhân (các khoá được chọn đồng xác suất), S là hệ mã

dịch vòng (với các khoá chọn đồng xác suất) Khi đó, ta thấy rằng MxS chính là hệ

mã Affine (cùng với các khoá được chọn đồng xác suất)

Chứng minh:

Khoá dịch vòng là phần tử k∈Zn và quy tắc mã hoá tương ứng là ek(x)=x+k mod n, xác suất của khoá k là 1/26

Khoá trong hệ mã nhân là phần tử a∈Zn sao cho ƯCLN(a,n)=1, quy tắc mã hoá

tương ứng là ea(x)=a mod n, xác suất của khoá a là 1/12

Khoá trong mã tích M x S có dạng (a,k) Trong đó:

e(a,k) (x) = ax + k mod n

Đây chính là định nghĩa khoá trong mã Affine, xác suất của một khoá trong

hệ mã Affine là (1/26) x (1/12)=1/312, cũng là tích của xác suất tương ứng của các khoá a và k

Vậy hệ mã MxS là hệ mã Affine

Ta xét hệ mã S x M Khoá trong hệ mã này có dạng (k,a)

Khi đó: E(k,a)(x) = a (x+k) = ax+ak mod n

Trang 31

Vậy khoá (k,a) của hệ mã tích SxM đồng nhất với khoá (a, ak) của hệ mã Affine

Trong mã tích SxM Ta có: ak=k1 khi và chỉ khi k=a-1k1 Do ƯCLN (a,n) = 1 nên a có phần tử nghịch đảo Nói cách khác khoá (a,k1) của hệ mã Affine tương đương với khoá (a-1k1, a) của mã tích SxM Vậy ta có một song ánh giữa hai không gian khoá Vì mỗi khoá là đồng xác suất nên môỗi khoá của mã Affine xuất hiện

với cùng xác suất 1/312 Như vậy có thể thấy rằng hệ mã SxM chính là hệ mã Affine

Ta thấy rằng hệ mã MxS=SxM Hai hệ mật là giao hoán

Tuy nhiên, không phải mọi cặp hệ mật đều giao hoán Mặt khác, ta thấy rằng phép tính luôn kết hợp: (S1xS2)xS3 = S1x(S2xS3)

Nếu lấy tích của một hệ mật tự đồng cấu với chính nó thì ta thu được hệ mật SxS (ký hiệu là S2) Nếu lấy tích n lần thì ta thu được hệ mật là Sn Ta gọi Sn là hệ

mật lặp

Một hệ mật S được gọi là luỹ đẳng nếu S2=S Các hệ mật mã dịch vòng, hệ

mật mã thay thế, hệ mật Affine, hệ mật mã Hill, Hệ mật mã Vigenère và hệ mật hoán vị đều là các hệ mật luỹ đẳng Nếu hệ mật S là luỹ đẳng thì không nên sử dụng

hệ mật tích S2 vì nó yêu cầu lượng khoá lớn mà không có độ bảo mật cao hơn

Nếu một hệ mật không phải là luỹ đẳng thì có thể làm tăng độ bảo mật bằng cách lặp nhiều lần hệ mật đó Ý tưởng này được dùng trong chuẩn mã dữ liệu DES Trong DES dùng 16 phép lặp với hệ mật ban đầu không luỹ đẳng

Để xây dựng các hệ mật không luỹ đẳng, có một phương pháp đơn giản là

lấy tích của hai hệ mật đơn giản khác nhau

Do đó, nếu cả S1 và S2 đều luỹ đẳng, muốn S1xS2 không luỹ đẳng thì điều kiện cần

là S1 và S2 không giao hoán

- Kỹ thuật thường được sử dụng trong thực tế là lấy tích các hệ mật mã thay thế và các hệ mật mã hoán vị

Trang 32

2.7 Các h ệ mã dòng:

Trong các hệ mật ở trên, các phần tử liên tiếp của bản rõ đều được mã hoá

bằng cùng một khoá k Nói cách khác, xâu bản mã y nhận được có dạng:

y = y1y2………….=ek(x1)ek(x2)………

Các hệ mật dạng này thường được gọi là các mã khối

Có một dạng mật mã khác được sử dụng là mật mã dòng Ý tưởng của dạng

mật mã này là tạo ra một dòng khoá z=z1z2 và dùng nó để mã hoá một xâu bản

rõ x=x1x2 theo quy tắc: y = y1y2………….=ez1(x1)ez2(x2)………

Mã dòng hoạt động như sau:

Giả sử k∈K là khoá, xâu bản rõ là x=x1x2 Hàm fi dùng để tạo ra khoá zi

(zi là phần tử thứ i của dòng khoá) Phần tử zi của dòng khoá được dùng để mã hoá

xi, tạo ra yi=ezi(xi) Như vậy, để mã hoá xâu bản rõ x=x1x2 ta phải tính liên tiếp

3 K là tập hữu hạn các khoá có thể (Không gian khoá)

4 L là tập hữu hạn các bộ chữ của dòng khoá

5 F=(F1f2…) là bộ tạo dòng khoá Với i ≥ 1

Mã dòng được gọi là đồng bộ nếu dòng khoá không phụ thuộc vào xâu bản

rõ, tức là nếu dòng khoá được tạo ra chỉ là hàm của khoá k Khi đó ta coi k là

“mầm” để mở rộng thành dòng khoá z1z2

Một hệ mã dòng được gọi là tuần hoàn với chu kỳ d nếu zi+d = zi với mọi số nguyên i≥1 Mã Vigenère với độ dài từ khoá n có thể coi là mã dòng tuần hoàn với

Trang 33

chu kỳ n Trong trường hợp này, khoá là k=(k1, …km) Khoá k sẽ tạo ra n phần tử đầu tiên của dòng khoá : zi=ki, 1≤i≤m Sau đó dòng khoá sẽ tự lặp lại

Ta thấy rằng, trong mã dòng tương đương với mật mã Vigenère, các hàm mã

và giải mã được dùng trong mã dịch vòng

ez(x) = x+z mod 2 và dz(y) = y-z mod 2

Nếu ta coi “0” biểu thị giá trị “sai”, và “1” biểu thị giá trị “đúng” trong đại số Boolean thì phép mã hoá và giải mã dễ dàng thực hiện bằng mạch cứng

Ta xét một phương pháp tạo ra dòng khoá đồng bộ khác Giả sử ta tạo dòng khoá theo một quan hệ đệ quy tuyến tính cấp m

Trong đó: c0, , cm-1 ∈ Z2 là các hằng số cho trước Khoá k gồm 2m giá trị

Nếu (k1, , km) = (0, 0) thì dòng khoá sẽ chứa toàn các số 0, bản mã sẽ đồng nhất với bản rõ Nếu chọn thích hợp các hằng số c0, , cm-1 thì với một véctơ

khởi đầu bất kỳ khác(k1, , km) sẽ tạo nên một dòng khoá cho chu kỳ 2m-1 Do

vậy, một khoá ngắn sẽ tạo nên một dòng khoá có chu kỳ rất lớn

Phép đệ quy được gọi là bậc m vì mỗi số hạng phụ thuộc vào m số hạng đứng trước Phép đệ quy trên là tuyến tính vì zi+m là một hàm tuyến tính của các số

hạng đứng trước Ta có thể lấy c0 = 1 mà không làm mất tính tổng quát

Ví d ụ: m =4 và dòng khoá được tạo bằng quy tắc: z i+4 =z i + z i+1 mod 2

N ếu dòng khoá bắt đầu bằng một vectơ bất kỳ khác với véc tơ (0,0,0,0) thì ta thu được dòng khoá có chu kỳ 15

Ví d ụ bắt đầu bằng véctơ (1,0,0,0), dòng khoá sẽ là: 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0,

1, 1, 1

Trang 34

Hình 2.2: Thanh ghi d ịch hồi tiếp tuyến tính (LFSR)

Một véc tơ khởi đầu khác 0 bất kỳ khác sẽ tạo ra một hoán vị vòng (cyclic)

của cùng dòng khoá

Một phương pháp tạo dòng khoá hiệu quả bằng phần cứng khác là sử dụng

bộ ghi dịch hồi tiếp tuyến tính (LFSR) Ta sử dụng bộ ghi dịch có m tầng Véctơ (k1, , km) sẽ được dùng để khởi tạo các giá trị ban đầu cho thanh ghi dịch Ở mỗi đơn vị thời gian, các phép toán sau sẽ được sử dụng đồng thời

- k1được tính dùng làm bit tiếp theo của dòng khoá

- k2, km sẽ được dịch 1 tầng về phía trái

- Giá trị mới của km sẽ được tính bằng ∑−

cjkj+1 (hồi tiếp tuyến tính)

Ta lấy tín hiệu ra từ một số tầng nhất định của thanh ghi (được xác định bởi các hằng số cj có giá trị “1”) và tính tổng theo modulo 2 (phép hoặc)

Một ví dụ về mã dòng không đồng bộ là mã khoá tự sinh

Cho P=C=K=L=Zn

Cho z1=k và zi=xi-1(i≥2)

Với 0 ≤ z ≤n-1, ta xác định ez(x)=x+z mod n dz(y) = y-z mod n (x,y) ∈ Zn

Trong trường hợp này, bản rõ được dùng làm khoá (ngoài “khoá khởi thuỷ”

k ban đầu)

Ví d ụ: Giả sử khoá k=8 và bản rõ là rendezvous

Tr ước tiên, ta đổi bản rõ thành dãy các số nguyên: 17, 4, 13, 3, 4, 25, 21, 14,

20, 18

Trang 35

Mã dùng trong khoá tự sinh không an toàn do chỉ có số lượng khoá là 26 (ký tự)

2.8 Chu ẩn mã dữ liệu-Phương pháp DES

(Data Encryption Standard)

Khoảng những năm 1970, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên chuẩn mã hóa dữ liệu DES với phương pháp mã hóa Fiestel Cipher

Chuẩn mã dữ liệu DES được IBM phát triển, đã trở thành một hệ mật được

sử dụng rộng rãi nhất trên thế giới

DES được công bố lần đầu tiên trong hồ sơ liên bang ngày 17/03/1975 Sau nhiều cuộc tranh luận công khai, DES được chấp nhận chọn làm chuẩn cho các ứng

dụng không được coi là mật ngày 05/01/0977 Kể từ đó, cứ 5 năm một lần, DES lại được Uỷ ban tiêu chuẩn Quốc gia xem xét lại Lần đổi mới gần đây nhất của DES là

năm 1988 Năm 2001, chuẩn mã tiên tiến AES đã được chấp nhận thay thế cho DES

Kích thước khóa của DES ban đầu là 128 bit, nhưng tại bản công bố FIPS, kích thước khóa được rút xuống còn 56 bit

Mô tả đầy đủ của DES được nêu trong công bố số 46 về các chuẩn xử lý thông tin Liên bang (Mỹ) vào ngày 15/01/1977 DES mã hoá một xâu bit x của bản

rõ độ dài 64 bằng một khoá 54 bit Bản mã nhận được cũng là một xâu bit có độ dài

64

Trang 36

DES thực hiện mã hóa dữ liệu qua 16 vòng lặp mã hóa, mỗi vòng sử dụng một khóa chu kỳ 48 bit được tạo ra từ khóa ban đầu có độ dài 56 bit DES sử dụng 8 bảng hằng số S-box để thao tác

Trước hết ta mô tả ở mức cao về hệ thống Thuật toán tiến hành theo 3 giai đoạn:

1 Tạo dãy 64 bit x0:

Với bản rõ cho trước x, một xâu bit x0 sẽ được xây dựng bằng cách hoán vị các bit của x theo phép hoán vị cố định ban đầu IP

x0 = IP(x)=L0R0 Trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối

Hình 2.3: Biểu diễn dãy 64 bit x thành 2 thành phần L và R

2 Tính toán 16 lần lặp theo một hàm xác định từ 64 bit thu được và 56 bit của khóa k (chỉ sử dụng 48 bit của khóa k trong mỗi vòng lặp) 64 bit kết quả thu được qua mỗi vòng lặp sẽ là đầu vào cho vòng lặp sau Ta tính LiRi, 1≤i≤16 theo quy tắc:

Li=Ri-1

Ri=Li-1⊕f(Ri-1, ki) Trong đó ⊕ là ký hiệu phép hoặc loại trừ của hai xâu bit (cộng theo modulo 2)

Trang 37

 Biến A (32 bit) được mở rộng thành một xâu bit độ dài 48 theo một hàm mở

rộng cố định E E(A) gồm 48 bit được phát sinh từ A bằng cách hoán vị theo cách cố định 32 bit của A, trong đó có 16 bit của A xuất hiện 2 lần trong E(A)

 Tính E(A) ⊕ J ta thu được 1 dãy 48 bit B B được biểu diễn thành một chuỗi

8 xâu, mỗi xâu là 6 bit : B1B2B3B4B5B6B7B8

 Dùng 8 bảng S1, S2, ….S8 (được gọi là các hộp S) Với mỗi Si là một bảng 4x16 cố định có các hàng là các số nguyên từ 1 đến 15 Với xâu bit có độ dài

6 (ký hiệu Bi=b1b2b3b4b5b6) ta tính Sj(Bj) như sau:

- Hai bit b1b6 biểu diễn nhị phân của hàng r của Sj(0≤ r ≤3)

- Bốn bit b2b3b4b5 biểu diễn nhị phân của cột c của Sj(0≤ c ≤15)

Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c), phần tử này viết dưới dạng nhị phân

là một xâu bit có độ dài 4 Bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bit có độ dài 2 và một xâu bit có độ dài 4, còn đầu ra là

một xâu bit có độ dài 4

Tương tự, ta tính được các Cj =Sj(Bj), 1≤j≤8

 Xâu bit C=C1C2… C8 có độ dài 32 được hoán vị theo phép hoán vị cố định

P Xâu kết quả là P(C) được xác định là f(A,J)

Trang 38

Hình 2.5 : Hàm f của DES

Quy trình giải mã thực hiện theo thứ tự đảo ngược các thao tác của quy trình

mã hóa

Hàm f được mô tả trên hình vẽ chủ yếu gồm một phép thế (sử dụng hộp S),

tiếp sau đó là phép hoán vị P, 16 phép lặp của f sẽ tạo nên một hệ mật tích

Ta mô tả một hàm cụ thể được dùng trong DES Phép hoán vị ban đầu IP

Bảng trên có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x), bít thứ 50 của

x là bít thứ hai của IP(x),…

Phép hoán vị ngược IP-1 là:

Ngày đăng: 14/02/2021, 10:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w