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

Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)

85 438 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 85
Dung lượng 1,64 MB

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

Nội dung

Xây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạcXây dựng một hệ mật mã lai ghép dựa trên bài toán Logarit rời rạc

Trang 1

-

NGUYỄN THỊ THÙY DƯƠNG

XÂY DỰNG MỘT HỆ MẬT LAI GHÉP DỰA TRÊN BÀI TOÁN LOGARIT RỜI RẠC

LUẬN VĂN THẠC SĨ KỸ THUẬT

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan nội dung luận văn của tôi là do sự tìm hiểu và nghiên cứu của bản thân Các kết quả nghiên cứu cũng như ý tưởng của các tác giả khác đều được trích dẫn cụ thể

Tác giả

Nguyễn Thị Thùy Dương

Trang 3

LỜI CẢM ƠN

Đầu tiên em đặc biệt gửi lời cảm ơn đến TS Ngô Đức Thiện đã có những định hướng quan trọng giúp em lựa chọn hướng thực hiện luận văn và trực tiếp hướng dẫn, kiểm chứng kết quả của luận văn và đã giúp đỡ em rất nhiều trong suốt quá trình thực hiện luận văn Em cũng xin gửi lời cảm ơn đến PGS.TS Bùi Trung Hiếu

đã cho những ý kiến góp ý quý báu giúp em hoàn thành luận văn này

Trong quá trình học tập và thực hiện luận văn, em đã nhận được sự chỉ bảo nhiệt tình của các thầy các cô và sự giúp đỡ của ban lãnh đạo Học viện Công nghệ Bưu chính Viễn thông, các cán bộ khoa đào tạo sau đại học đã tạo điều kiện thuận lợi cho em trong suốt quá trình học tập cũng như thực hiện luận văn này Với lòng biết ơn sâu xắc của mình, em xin gửi đến ban lãnh đạo Học viện Công nghệ Bưu chính Viễn thông cùng toàn thể các thầy các cô, các cán bộ khoa sau đại học lời cảm ơn chân thành nhất

Cuối cùng em xin gửi lời cảm ơn đến toàn thể gia đình, bạn bè đã ủng hộ và giúp đỡ nhiệt tình trong quá trình thực hiện luận văn này

Hà Nội, ngày tháng năm 2016

Học viên

Nguyễn Thị Thùy Dương

Trang 4

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT vi

DANH MỤC BẢNG BIỂU vii

DANH MỤC HÌNH VẼ viii

MỞ ĐẦU 2

CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC 4

1.1 GIỚI THIỆU CHƯƠNG 4

1.2 LỊCH SỬ RA ĐỜI 4

1.3 CÁC KHÁI NIỆM CƠ BẢN VỀ MẬT MÃ HỌC 5

1.4 CÁC YÊU CẦU CHÍNH CỦA MẬT MÃ HIỆN ĐẠI 8

1.5 CÁC HỆ MẬT KHÓA BÍ MẬT 8

1.5.1 Nguyên tắc xây dựng hệ mật khóa bí mật 8

1.5.2 Các hệ mật thay thế 10

1.5.3 Các hệ mật hoán vị 16

1.5.4 Hệ mật mã tích 17

1.5.5 Hệ mã dòng 18

1.5.6 Chuẩn mã dữ liệu DES 21

1.5.7 Ưu nhược điểm của mật mã khóa bí mật 22

1.6 HỆ MẬT KHÓA CÔNG KHAI 23

1.6.1 Sơ đồ chức năng 23

Trang 5

1.6.2 Các bài toán một chiều và các hệ mật khóa công khai liên quan 24

1.6.3 Đường cong Elliptic 28

1.6.4 Ưu và nhược điểm của hệ mật mã khoá công khai 30

1.7 HÀM BĂM 30

1.7.1 Định nghĩa và các tính chất của hàm băm 30

1.7.2 Tính chất và phân loại hàm băm 31

1.8 CHỮ KÝ SỐ 33

1.9 KẾT LUẬN CHƯƠNG 35

CHƯƠNG 2 BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ HỆ MẬT LIÊN QUAN 36

2.1 GIỚI THIỆU CHƯƠNG 36

2.2 CƠ SỞ TOÁN HỌC 36

2.2.1 Số nguyên 36

2.2.2 Các số nguyên MODULO N 37

2.2.3 Nhóm nhân 38

2.2.4 Vành 39

2.2.5 Trường 40

2.3 BÀI TOÁN LOGARIT RỜI RẠC VÀ MỘT SỐ PHƯƠNG PHÁP GIẢI 40

2.3.1 Bài toán logarit trên trường số thực R 40

2.3.2 Bài toán logarit rời rạc 41

2.3.3 Một số thuật toán giải bài toán logarit rời rạc 43

2.4 MỘT SỐ HỆ MẬT XÂY DỰNG TRÊN BÀI TOÁN LOGARIT RỜI RẠC 48

2.4.1 Hệ mật Pohlig-Hellman 48

Trang 6

2.4.2 Hệ mật Omura-Massey 49

2.4.3 Hệ mật ElGamal 50

2.5 KẾT LUẬN CHƯƠNG 52

CHƯƠNG 3 XÂY DỰNG MỘT HỆ MẬT LAI GHÉP 53

3.1 GIỚI THIỆU CHƯƠNG 53

3.2 LƯỢC ĐỒ FEISTEL 53

3.2.1 Mô hình mã Feistel 53

3.2.2 Ưu và nhược điểm của mật mã Feistel 57

3.3 XÂY DỰNG MỘT HỆ MẬT MÃ KHỐI LAI GHÉP 58

3.4 ĐÁNH GIÁ TÍNH KHUẾCH TÁN CỦA HỆ MẬT LAI GHÉP 62

3.5 KẾT LUẬN CHƯƠNG 64

TÀI LIỆU THAM KHẢO 66

PHỤ LỤC 67

Trang 7

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

MAC Hàm băm có khóa (Message Authentication Code).

MDC Hàm băm không khóa (Modification Detection Code)

NP Tập hợp các bài toán quyết định giải đƣợc trong thời gian đa

thức bởi máy Turing bất định (Nondeterministic Polynomial time).

NP - Đầy đủ NP- độ khó và nằm trong NP Đây là những bài toán khó

nhất trong NP

Ord Cấp của đa thức (Order)

Sig Chữ ký (Signature)

UCLN Ƣớc chung lớn nhất

Trang 8

DANH MỤC BẢNG BIỂU

Bảng 1.1: Bảng mã dịch vòng 10Bảng 3.1 Hoán vị ban đầu (IP) 59Bảng 3.2 Hoán vị đảo (IP-1) 59Bảng A-1: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M 67Bảng A-2: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M 69Bảng A-3: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K 71Bảng A-4: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K 74

Trang 9

DANH MỤC HÌNH VẼ

Hình 1.1 Các lĩnh vực của khoa học mật mã 6

Hình 1.2 Sơ đồ khối chức năng hệ mật khoá bí mật 9

Hình 1.3 Sơ đồ khối chức năng hệ mật khóa công khai 23

Hình 1.4 Cách đi đúng của thông tin 31

Hình 1.5 Hình Thông tin bị lấy trộm và bị thay đổi trên đường truyền 32

Hình 1.6 Phân loại hàm băm 33

Hình 2.1 Hàm logarit trên trường số thực 41

Hình 3.1 Một vòng mã hóa theo sơ đồ Feistel 54

Hình 3.2 Mã hóa (a) và giải mã (b) Feistel 16 vòng 55

Hình 3.3 Sơ đồ khối của hệ mật 58

Hình 3.4 Thuật toán mã hóa trong một vòng 59

Hình 3.5 Sơ đồ mã hóa của hệ mật 60 Hình 3.6 Tách các khóa con e cho các vòng mã hóa 61 i

Trang 10

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Cùng với sự phát triển của xã hội loài người, mật mã là một trong những nghệ thuật cổ xưa có lịch sử hàng nghìn năm phát triển, kể từ khi có sự trao đổi thông tin, thì truyền thông tin an toàn trở thành một nhu cầu không thể thiếu Từ xa xưa, lịch sử mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển, các phương pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng

cụ cơ khí đơn giản, mang tính nghệ thuật hơn là khoa học Với sự phát triển mạnh

mẽ của khoa học kỹ thuật công nghệ và internet, cùng với các nhu cầu đặc biệt có liên quan tới an toàn thông tin, ngày nay cần có các yêu cầu kỹ thuật đặc biệt trong việc đảm bảo an toàn thông tin

Hệ thống khoá bí mật hay mật mã cổ điển là phương pháp mã hoá đơn giản nhất xuất hiện đầu tiên trong lịch sử ngành mã hoá Phương pháp này sử dụng các thuật toán đơn giản, dễ hiểu nhưng khó khăn trong việc quản lý lưu trữ và thiết lập phân phối khoá, với các hệ mật như: DES, AES, Từ năm 1976 mật mã hiện đại hay hệ thống mật mã công khai ra đời đã khắc phục được những nhược điểm này Các nhà khoa học đã phát minh ra những hệ mật mã nhằm che dấu thông tin cũng như làm rõ chúng để tránh những kẻ cố tình phá hoại với các hệ mật như: RSA, ElGamal, Pohlig-Hellman…[6], [7] Nhận thấy tính thiết thực của bài toán này và

được sự gợi ý của giảng viên hướng dẫn, tôi đã chọn đề tài:Xây dựng một hệ mật

mã lai ghép dựa trên bài toán Logarit rời rạc” để làm đề tài cho luận văn tốt

nghiệp của mình

2 Tổng quan về vấn đề nghiên cứu:

Mật mã khóa công khai (hay khóa không đối xứng) là phương pháp mã hóa bảo mật thông tin số với khóa mã hóa được công khai trên mạng Hệ mật này ra đời

đã đáp ứng được nhiều dịch vụ bảo mật hiện đại như thương mại điện tử, chữ ký số Hiện nay trên thế giới có khá nhiều hệ mật mã khối khóa công khai, tuy nhiên các thuật toán mã hóa công khai cho đến nay thường được xây dựng theo một trong các

Trang 11

bài toán một chiều cơ bản [1], [6], [8] đó là: Bài toán logarit rời rạc; Bài toán phân

tích thừa số; Bài toán xếp ba lô; Bài toán mã sửa sai; Bài toán trên đường cong

elliptic; Bài toán hàm cửa sập…

Bài toán logarit rời rạc và bài toán phân tích thừa số, là hai bài toán được sử

dụng nhiều trong thực tế Trong đó, một số thủ tục trao đổi khóa như thủ tục Diffie

– Hellman, các hệ mật như Omura – Massey, ElGamal, Pohlig-Hellman đều sử

dụng bài toán logarit rời rạc Và hệ mật nổi tiếng RSA xây dựng trên bài toán phân

tích thừa số

Cho đến nay, mặc dù đã có một số thuật toán giải bài toán logarit rời rạc [6],

[7], [8], tuy nhiên các thuật giải này chỉ hiệu quả với một số trường hợp nhất định,

chưa có thuật giải tổng quát hiệu quả nào Do đó, có thể nói cho đến nay độ khó của

bài toán logarit rời rạc vẫn có thể được sử dụng cho các hệ mật khóa công khai

Ở Việt Nam cũng có các nghiên cứu xây dựng các hệ mật và cũng có những

kết quả đáng quan tâm [3] [4], [5] Các nghiên cứu này đề cập đến lý thuyết và

từng khía cạnh riêng lẻ của chủ đề này Việc nghiên cứu áp dụng các thuật toán sẵn

có để phát triển các hệ mật lai ghép cũng là một hướng nghiên cứu góp phần vào

quá trình phát triển của ngành mật mã Việt Nam nói chung

3 Mục đích nghiên cứu:

Mục đích nghiên cứu của luận văn đó là nghiên cứu các hệ mật, nghiên cứu

bài toán Logarit rời rạc và các hệ mật trên bài toán này Trên cơ sở đó xây dựng một

hệ mật khóa bí mật lai ghép sử dụng hai phương pháp xử lý là mũ hóa rời rạc (phép

toán logarith rời rạc là phép toán ngược) và phép hoán vị

4 Đối tượng và phạm vi nghiên cứu:

 Đối tượng nghiên cứu: Mật mã khóa bí mật và khóa công khai

 Phạm vi nghiên cứu: Áp dụng hệ mật Pohlig – Hellman làm hàm mã hóa

và sơ đồ Feisteltrong một hệ mật lai ghép

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

Phương pháp nghiên cứu của đề tài là tổng hợp các kiến thức về mật mã học, lý

thuyết số, số học modulo; kết hợp với việc tính toán và mô phỏng trên máy tính

Trang 12

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

1.1 GIỚI THIỆU CHƯƠNG

Chương 1 sẽ giới thiệu tổng quan về lịch sử ra đời và quá trình phát triển của của mật mã gắn liền với quá trình phát triển của khoa học kỹ thuật, công nghệ Từ các kỹ thuật che dấu thông tin đơn giản đến việc xây dựng nên các hệ mật khóa bí mật, các hệ mật khóa công khai

1.2 LỊCH SỬ RA ĐỜI

Cùng với sự phát triển không ngừng nghỉ của khoa học kỹ thuật và xã hội, nhu cầu về đảm bảo an toàn thông tin liên lạc áp dụng ngày càng nhiều và được nâng cao trong mọi hoạt động của xã hội: trong công tác tình báo, quân sự, ngoại giao, kinh tế, thương mại, hay được thiết kế và tạo lập sẵn trong các cơ sở hạ tầng của công nghệ tính toán và liên lạc viễn thông

Mật mã học có lịch sử lâu dài, những dạng sớm nhất của mật mã hóa cổ điển

là cách viết bí mật chỉ cần bút và giấy Hai phương pháp chính thực hiện mật mã cổ điển là phương pháp: hoán vị, thay thế Với phương pháp hoán vị người ta sắp xếp lại trật tự các chữ cái của thông điệp; còn với phương pháp thay thế người ta thay thế có hệ thống các chữ cái hay các nhóm chữ cái bằng các chữ cái hay các nhóm chữ cái khác Văn bản được mật mã hóa bằng mật mã cổ điển có xu hướng lộ ra các thông tin thống kê nhất định về văn bản thường Bằng cách sử dụng các thông tin này, mật mã cổ điển rất dễ bị dò ra (ví dụ bằng phân tích tần suất) Mật mã cổ điển vẫn còn được phổ biến tới ngày nay, chủ yếu thông qua việc giải các ô đố chữ

Với sự ra đời của máy tính kỹ thuật số và điện tử học thì các mật mã cực kỳ phức tạp đã có thể được thực hiện Đặc trưng của mật mã máy tính là chúng thực hiện trên các chuỗi nhị phân, khác với các mô hình mật mã hóa cổ điển và cơ học (chỉ sử dụng bảng chữ cái với khoảng 26 ký tự, phụ thuộc vào từng ngôn ngữ) Mật

mã sử dụng máy tính có khả năng chịu đựng việc phân tích mật mã tốt hơn

Trang 13

Các nghiên cứu rộng rãi có tính học thuật về mật mã hóa hiện đại chỉ được bắt đầu trong cộng đồng mở kể từ những năm thập niên 1970 với các chi tiết kỹ

thuật của DES (viết tắt trong tiếng Anh của Data Encryption Standard tức Tiêu chuẩn Mật mã hóa Dữ liệu) và sự phát minh ra RSA Kể từ đó, mật mã hóa đã trở

thành công cụ được sử dụng rộng rãi trong liên lạc và bảo mật máy tính

Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật

mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa công khai Công trình này chịu sự ảnh hưởng từ xuất bản trước đó của Ralph Merkle về phân phối khóa công khai Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không

an toàn Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle

Kể từ thập kỷ 1970, đã có rất nhiều thuật toán mã hóa, tạo chữ ký số, thỏa thuận khóa… được phát triển Các thuật toán như ElGamal (mật mã do Netscapephát triển) hay DSA do NSA và NIST cũng dựa trên các bài toán lôgarit rời rạctương tự như RSA Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dòng thuật toán mới: mật mã đường cong elliptic và cũng tạo ra nhiều thuật toán tương

tự Mặc dù cơ sở toán học của dòng thuật toán này phức tạp hơn nhưng lại giúp làm giảm khối lượng tính toán đặc biệt khi khóa có độ dài lớn

1.3 CÁC KHÁI NIỆM CƠ BẢN VỀ MẬT MÃ HỌC

Mật mã học là một bộ phận của khoa học mật mã (Cryptology), được chia thành 2 bộ phận chính [1]:

+ Mật mã học (Cryptography): là một lĩnh vực liên quan với các kỹ thuật ngôn ngữ và toán học để đảm bảo an toàn thông tin, cụ thể là trong thông tin liên lạc, chia ra 3 nội dung:

Mật mã khóa bí mật (Khóa đối xứng): (Private-key Cryptography)

Mật mã khóa công khai (Khóa bất đối xứng): (Public-key

Cryptography)

 Hàm băm, xác thực và chữ ký số

Trang 14

+ Phân tích mật mã (Cryptonalys): là khoa học nghiên cứu cách phá các hệ mật nhằm phục hồi bản rõ ban đầu từ bản mã, dành riêng cho các nhà nghiên cứu chuyên sâu về mật mã, chuyên nghiên cứu tìm hiểu các phương pháp thám mã, một

số phương pháp tấn công điển hình như:

 Phương pháp tấn công tổng lực (tìm khóa vét cạn)

 Phương pháp thống kê

 Phương pháp phân tích cấu trúc…

Hình 1.1 Các lĩnh vực của khoa học mật mã

Các phương pháp xử lý thông tin số trong các hệ thống mật mã bao gồm:

- Mật mã khóa bí mật (khóa đối xứng)

Với hệ mật này, việc mã hóa và giải mã sử dụng chung một khóa, do đó hai bên liên lạc phải thống nhất và bảo mật khóa trước khi truyền tin Các thuật toán mã hóa trong hệ mật khóa bí mật thường sử dụng các phương pháp sau:

 Hoán vị

 Thay thế

 Xử lý bit (chủ yếu trong các ngôn ngữ lập trình)

 Phương pháp hỗn hợp (điển hình là chuẩn mã hóa dữ liệu – DES)

- Mật mã khóa công khai (khóa không đối xứng)

Hàm băm, xác thực, chữ ký số

Trang 15

Thông thường mỗi bên liên lạc tự tạo cho mình một cặp khóa công khai và bí mật, khóa công khai dùng để mã hóa bản tin và khóa này được công khai trên mạng, còn khóa bí mật dùng để giải mã (chỉ có bên nhận tin lưu trữ) Các thuật toán mã hóa công khai cho đến nay được xây dựng theo một trong các bài toán một chiều cơ bản sau:

 Bài toán logarit rời rạc

 Bài toán phân tích thừa số

 Bài toán xếp ba lô

 Bài toán mã sửa sai

 Bài toán trên đường cong elliptic

Độ phức tạp tính toán P (theo thời gian đa thức) các bài toán này là khả thi

và khá đơn giản; Độ phức tạp NP: NP là ký hiệu lớp các bài toán giải được bằng thuật toán không tất định (NonDeterminal) trong thời gian đa thức (Polynomial) Bài toán thuộc lớp NP thường khó giải và khá phức tạp

- Thám mã

Trước tiên mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc được (cipher text) Chỉ có những người giữ chìa khóa (key) bí mật mới có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu được (plain text) Thông tin đôi khi bị giải mã mà không cần biết khóa bí mật

Trang 16

1.4 CÁC YÊU CẦU CHÍNH CỦA MẬT MÃ HIỆN ĐẠI

Tính bí mật (confidentiality): Tài sản của hệ thống chỉ được truy cập bởi

những người có thẩm quyền Các loại truy cập gồm: đọc (reading), xem (viewing), in ấn (printing), sử dụng chương trình, hoặc hiểu biết về sự tồn tại của một đối tượng trong tổ chức Tính bí mật có thể được bảo vệ nhờ việc kiểm soát truy nhập (theo nhiều kiểu khác nhau) hoặc nhờ các thuật toán mã hóa dữ liệu Kiểm soát truy nhập chỉ có thể được thực hiện với các hệ thống phần cứng vật lý Còn đối với các dữ liệu công cộng thì thường phương pháp hiệu quả là các phương pháp của mật mã học

Tính toàn v n dữ liệu (data integrity): đảm bảo khả năng phát hiện sự sửa

đổi trái phép thông tin, thông tin của hệ thống chỉ được thay đổi bởi những người có thẩm quyền

Xác thực (authentication): có mối liên hệ với định danh (identification) Nên

nó được thực hiện xác thực trên cả thực thể (hai đối tượng trong một phiên liên lạc sẽ định danh lẫn nhau) và bản thân thông tin (thông tin được truyền trên kênh truyền sẽ được xác thực về nguồn gốc, nội dung, thời gian gửi, …)

Đảm bảo chống sự từ chối (non-repudiation): ngăn ngừa một thực thể từ

chối (phủ nhận) một cam kết hay hành động trước đó

1.5 CÁC HỆ MẬT KHÓA BÍ MẬT

1.5.1 Nguyên tắc xây dựng hệ mật khóa bí mật

Khi thiết kế mật mã thì vấn đề đảm bảo độ vững chắc của thuật toán là một vấn đề quan trọng nhất Đánh giá độ bền vững của thuật toán là một trong các vấn

Trang 17

Các sơ đồ mật mã nguyên thủy:

Sơ đồ Feistel

Mạng hoán vị - thay thế (SPN)

Sơ đồ kết hợp

Sơ đồ chức năng hệ mật khoá bí mật

Hình 1.2 Sơ đồ khối chức năng hệ mật khoá bí mật

Hệ mật mã đƣợc định nghĩa là một bộ năm (P, C, K, E, D), trong đó:

Bản mã C Bản rõ M

Nguồn tin Bộ mã hoá Kênh mở

Trang 18

Nội dung cần mã hóa thể hiện dưới dạng bản rõ ( ) Người gửi sử dụng qui tắc mã hóa ( ) và khóa ( ) mã hoá bản rõ ( ), kết quả thu được gọi là bản mã ( ( ) ) Bản mã này được gửi đi trên một đường truyền tới người nhận, sau khi nhận được bản mã ( ) người nhận sử dụng qui tắc ( ) và khóa ( ) giải mã nó

để hiểu được nội dung thông điệp gốc ( ( ) )

1.5.2 Các hệ mật thay thế

1.5.2.1 Các hệ mật thay thế đơn biểu

Khi khoá đã được chọn thì mỗi ký tự của bản rõ được ánh xạ đến một kí tự duy nhất của bản mã Do mỗi cách mã hoá như vậy sẽ tương ứng với một hoán vị của bảng chữ và hoán vị đó chính là khoá của mã đã cho Như vậy độ dài khoá ở đây là 26 và số khoá có thể có là 26!

 Mã dịch vòng:

Giả sử với , ta định nghĩa [1] [8]:

Mã hóa:

Giải mã:

Ví dụ 1.1:Với văn bản tiếng Anh, = 26 hoặc 27, như vậy ∈ hoặc

Ta sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thông thường 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

Trang 19

 Khi k = 3, hệ mật này thường được gọi là mã Caesar đã từng được Hoàng đế Caesar sử dụng

 MDV (theo mod 26) là không an toàn vì nó có thể bị thám theo phương pháp tìm khoá vét cạn (thám mã có thể dễ dàng thử mọi khoá đến khi tìm được bản rõ có nghĩa)

 Từ ví dụ trên ta thấy rằng, điều kiện cần để một hệ mật an toàn là phép tìm khoá vét cạn phải không thể thực hiện được Tuy nhiên, một không gian khoá lớn vẫn chưa đủ để đảm bảm độ mật

 Hệ mã này có thể tạo 26 khóa khác nhau Trung bình có thể tính được bản rõ sau khi thử 26/2 = 13 quy tắc giải mã

 Mã thay thế

Cho chứa mọi hoán vị có thể của 26 kí hiệu 0, 1, …, 25 Mỗi khóa là một phép hoán vị , ta định nghĩa [1]:

Mã hóa: ( ) ( )

Giải mã: ( ) ( ) trong đó là hoán vị ngược của

Thay thế một ký tự bằng một ký tự khác trong bảng ký tự Số khoá có thể có là: 26! với các máy tính hiện nay thì nó chưa đủ an toàn

Khi độ dài bản rõ đủ lớn, có thể sử dụng phương pháp thống kê để thám mã

Nó là hệ mã đơn biểu và ghi nhớ khóa khó khăn

 Mã Affine

Trường hợp đặc biệt của mã thay thế là mã Affine được mô tả [1] [8]:

Mã hóa: đây là một phương trình tuyến tính

Giải mã: ( )

Điều kiện tồn tại: để có thì ( )

Nhận xét: Do khoảng trống xuất hiện nhiều trong văn bản, nên khi mã hóa

Trang 20

nên mã hóa cả khoảng trống để giảm số lần xuất hiện

 Mật mã cũi lợn

Sử dụng các hình tượng khác nhau không nằm trong bảng ký tự thay thế cho các ký tự

1.5.2.2 Hệ mật mã thay thế đa biểu

Yếu điểm của các mã phương pháp đơn biểu là phân bố tần suất của chúng phản ánh phân bố của bảng chữ cái cơ sở Một mã pháp an toàn hơn về mặt mật

mã sẽ thể hiện phân bố bằng phẳng hơn, điều này sẽ không cho kẻ thám mã chút thông tin nào

Một hướng khác làm tăng độ an toàn cho mã trên bảng chữ là sử dụng nhiều bảng chữ để mã hoá Mỗi chữ sẽ được mã bằng bất kỳ chữ nào trong bản mã tuỳ thuộc vào ngữ cảnh khi mã hoá Làm như vậy để trải băng tần suất các chữ xuất hiện trong bản mã Do đó làm mất bớt cấu trúc của bản rõ được thể hiện trên bản

mã và làm cho mã thám đa bảng khó hơn

Ta sử dụng khoá để chỉ rõ chọn bảng nào được dùng cho từng chữ trong bản tin Độ dài khoá là chu kỳ lặp của bảng chữ Độ dài càng lớn và nhiều chữ khác nhau được sử dụng trong từ khoá thì càng khó thám mã [1]

mã Với một khoá ta xác định:

( )

Trang 21

( )

Trong đó hay là những ma trận cấp 1 m ; là ma trận nghịch đảo của trong Tất cả các phép toán trên được thực hiện trong

 Hệ mật Vigenère

Sử dụng phép tương ứng mô tả ở trên, ta gắn

cho mỗi khoá K một chuỗi ký tự có độ dài gọi là từ khoá Mật mã Vigenère sẽ mã

hoá đồng thời ký tự: mỗi phần tử của bản rõ tương đương với ký tự [1] [8]

Ví dụ 1.2: Giả sử bản tin = 6 và từ khoá là = CIPHER Từ khoá này tương ứng với dãy số = (2, 8, 15, 7, 4, 17) Giả sử bản rõ là:

OMTA QV CB HBRJGB

Ta có thể mô tả mật mã Vigenère như sau:

Cho là một số nguyên dương cố định nào đó

Ta định nghĩa: ( )

Với khoá ( ), ta xác định:

( ) ( ) ( ) ( )

Chú ý: Để giải mã, ta có thể dùng cùng từ khoá nhưng thay cho cộng, ta trừ nó

Trang 22

theo modulo 26

Nhận xét: Ta thấy rằng, số các từ khoá có thể với độ dài trong mật mã Vigenere là 26 Bởi vậy, thậm chí với 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 Ví dụ, với = 6 thì không gian khoá cũng có kích thước lớn hơn 3.108

khoá

1.5.2.3 Các hệ mật thay thế không tuần hoàn

Phép thế lý tưởng sẽ dùng nhiều bảng chữ cái để không nhận diện được phân

bố và không có mẫu trong suốt đối với việc lựa chọn một bảng chữ cái tại một điểm

cụ thể Điều gì sẽ xảy ra nếu một văn bản được mã bằng số bảng không hạn chế

Một dãy vô hạn không lặp lại sẽ làm hỏng phương pháp Kasiski

- Thứ nhất: một xâu bản rõ lặp lại sẽ không được mã theo cùng cách hai lần

vì không có sự lặp lại mẫu trong việc chọn các bảng chữ cái

- Thứ hai: giả sử một đoạn bản mã nào đó là đoạn lặp lại của đoạn trước đó, đoạn lặp hầu như chắc chắn là tình cờ Khoảng cách giữa hai đoạn đúp rõ sẽ không chỉ rõ chu kỳ trong mẫu mã hoá vì không có mẫu nào và vì thế không có chu kỳ

Như vậy việc lựa chọn không lặp các bảng chữ cái mã gây khó khăn cho phân tích mã

 Hệ mật khoá chạy

Lý tưởng nhất là ta có khoá dài như bản tin

Vigenere đề xuất khoá tự động sinh cho bằng độ dài bản tin như sau:

 Từ khoá được nối tiếp bằng chính bản rõ để tạo thành khoá Sau đó mã Vigenere để mã bản rõ đã cho

 Khi đó biết từ khoá có thể khôi phục được một số chữ ban đầu của bản rõ Sau đó tiếp tục sử dụng chúng để giải mã cho văn bản còn lại

 Sự cải tiến này làm mất khái niệm chu kỳ, gây khó khăn cho việc thám mã, nhưng vẫn còn đặc trưng tần suất để tấn công

Trang 23

 Hệ mật Vernam (OTP)

One-Time Pad (OTP), được phát minh năm 1917 bởi Gilbert Vernam, một

kỹ sư làm việc ở Bell Labs thuộc AT&T Dẫu vậy, trong nhiều năm liền, không một

ai biết OTP thực sự an toàn đến mức nào, cho đến năm 1949, khi công trình Communication Theory of Secrecy Systems của Claude Shannon được công

bố rộng rãi Trong bài báo đó, Claude Shannon đã đặt nền móng cho lý thuyết mật

mã hiện đại khi lần đầu tiên đưa ra định nghĩa toán học của khái niệm an toàn và chứng minh được OTP an toàn theo định nghĩa đó

Vernam tạo ra mã OTP khi tìm cách cải tiến mã Vigenère, nên ý tưởng của OTP khá giống với ý tưởng của Vigenère, cụ thể như sau:

M  C K  0,1 nOTP xem bản rõ là một chuỗi bit “0101010101…” và mỗi khóa là một chuỗi bit ngẫu nhiên có chiều dài bằng với bản rõ

 Lập mã:CE k m ,  k m; phép XOR thực chất là phép cộng modulo 2 khi thực hiện trên các chuỗi bit

 Giải mã:DD k c ,  k c

Ví dụ 1.3:Bản rõ:10110010010, Khóa:01101010101; Bản mã: 11011000111

Chúng ta có thể dễ dàng kiểm chứng rằng OTP thỏa mãn yêu cầu nhất quán của một mã Một trong những lợi thế của OTP là tốc độ thực thi rất nhanh, còn bất lợi duy nhất là chiều dài khóa phải bằng chiều dài của bản rõ Bất lợi này làm cho OTP gần như trở thành vô dụng, bởi vì nếu như Alice và Bob đã có một cách để trao đổi khóa an toàn, thì họ đã có thể dùng ngay cách đó để trao đổi bản rõ luôn Tuy vậy OTP vẫn được sử dụng trong thực tế

Như đã nói ở trên, trong nhiều năm liền không ai phá được mã OTP nhưng cũng không ai chứng minh được rằng OTP là an toàn

Mật mã học có mật mã với kiểm chứng mạnh của độ an toàn là mật mã Vernam Tuy nhiên, nó yêu cầu các khóa (ít nhất) là có độ dài bằng độ dài văn bản

Trang 24

thường, vì thế nói chung người ta cho rằng chúng là quá cồng kềnh để có thể áp dụng trong thực tế

1.5.3 Các hệ mật hoán vị

Trước đó ta đã xét MTT, ở đó các chữ của bản rõ được thay thế bằng bảng chữ các chữ khác của bản mã

Bây giờ chúng ta xét đến loại mã khác, mã hoán vị (MHV), các chữ trong bản rõ không được thay thế bằng các chữ khác mã chỉ thay đổi vị trí, tức là việc mã hoá chỉ dịch chuyển vị trí tương đối giữa các chữ trong bản rõ

Như vậy, nó dấu bản rõ bằng cách thay đổi thứ tự các chữ, nó không thay đổi các chữ thực tế được dùng Do đó bản mã có cùng phân bố tần suất xuất hiện các chữ như bản gốc Như vậy có thể thám mã để phát hiện được

Khác với MTT, ý tưởng của MHV là giữ các ký tự của bản rõ không thay đổi 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 Ở đây không

có một phép toán đại số nào cần thực hiện khi mã hoá và giải mã

Ví dụ 1.4: Giả sử  6 và khoá là phép hoán vị sau:

EOANCSLSDSACRICARAOTGHNERIENAT

Trang 25

Khi sử dụng phép hoán vị ngược  trên dãy bản mã (sau khi đã nhóm lại theo các nhóm 6 ký tự), ta sẽ nhận lại được bản rõ ban đầu

Từ ví dụ trên, ta có thể định nghĩa MHV như sau [1]:

Cho là một số nguyên dương xác định nào đó

Cho    và cho là tất cả các hoán vị có thể có của:   Đối với một khoá (tức là một phép hoán vị nào đó), ta xác định:

 ( )  (    

 ( )  (    ) trong đó  là phép hoán vị ngược của

1.5.4 Hệ mật mã tích

Một phát minh khác do Shannon đưa ra trong bài báo của mình năm 1949 là

ý tưởng kết 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 quan trọng to lớn trong việc thiết kế các hệ mật hiện nay (chuẩn mã dữ liệu - DES) Để đơn giản, chỉ hạn chế xét các hệ mật trong đó CPcác hệ mật loại này được gọi là

tự đồng cấu Giả sử S1 ( , , P P K E D1, 1, 1)và S2  ( , , P P K E D2, 2, 2)là hai hệ mật tự đồng cấu có cùng các không gian bản mã và rõ Khi đó, tích của và (kí hiệu: ) được xác định là hệ mật sau: ( , , P P K1 K E D2, , )

Khoá của hệ mật tích có dạng ( ) trong đó và Các quy tắc mã và giải mã của hệ mật tích được xác định như sau: Với mỗi ( )

ta có một quy tắc mã xác định theo công thức:

( )( ) ( )/

và quy tắc giải mã:

( )( ) ( )/

Trang 26

Một hệ mật S được gọi là luỹ đẳng nếu Có nhiều hệ mật đã nghiên cứu trong chương này là hệ mật luỹ đẳng Chẳng hạn các hệ MDV, MTT, Affine,

Hill, Vigenère và hoán vị đều là luỹ đẳng Hiển nhiên là nếu hệ mật S là luỹ đẳng thì

không nên sử dụng hệ mật tích vì nó yêu cầu lượng khoá cực 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 độ mật bằng cách lặp nhiều lần Ý tưởng này đã được dùng trong chuẩn mã dữ liệu (DES) Trong DES dùng 16 phép lặp, tất nhiên hệ mật ban đầu phải là hệ mật không luỹ đẳng Một phương pháp có thể xây dựng các hệ mật không luỹ đẳng đơn giản là lấy tích của hai hệ mật đơn giản khác nhau

Nhận xét: Có thể dễ dàng chứng tỏ rằng, nếu cả hai hệ mật và là luỹ đẳng và giao hoán thì cũng là luỹ đẳng Điều này rút ra từ các phép toán đại

số sau:

( ) ( ) ( ) ( ) ( ) ( )

Bởi vậy, nếu cả và đều là luỹ đẳng và ta muốn  là không luỹ đẳng thì điều kiện cần là và không giao hoán

Rất may mắn là nhiều hệ mật đơn giản thoả mãn điều kiện trên Kỹ thuật thường được sử dụng trong thực tế là lấy tích các hệ mã kiểu thay thế và các hệ mã kiểu hoán vị

1.5.5 Hệ mã dòng

Trong các hệ mật nghiên cứu ở 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á Tức xâu bản mã nhận được có dạng [1]:

( ) ( )

Trang 27

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

Một quan điểm sử dụng khác là mật mã dòng Ý tưởng cơ bản ở đây là tạo ra một dòng khoá và dùng nó để mã hoá một xâu bản rõ theo quy tắc:

để mã hóa xâu bản rõ ta phải tính liên tiếp

Việc giải mã xâu bản mã tiếp có thể được thực hiện bằng cách tính liên tiếp

Sau đây là định nghĩa dưới dạng toán học:

Mật mã dòng là một bộ ( ) thoả mãn các điều kiện sau:

1) là một tập hữu hạn các bản rõ có thể

2) là tập hữu hạn các bản mã có thể

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

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

5) ( ) là bộ tạo dòng khoá Với

6) Với mỗi ∈ có một quy tắc mã tương ứng ∈ và

là các hàm thoả mãn ( ( )) với mọi bản rõ ∈

Ta có thể coi mã khối là một trường hợp đặc biệt của mã dòng, trong đó

Trang 28

dùng khoá không đổi: với mọi

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á Khi đó, ta coi là một

"mầm" để mở rộng thành dòng khoá

Một hệ mã dòng được gọi là tuần hoàn với chu kỳ nếu với mọi

số nguyên Mã Vigenère với độ dài từ khoá có thể coi là mã dòng tuần hoàn với chu kỳ Trong trường hợp này, khoá là ( ) Bản thân

sẽ tạo phần tử đầu tiên của dòng khoá: Sau đó, dòng khoá sẽ

tự lặp lại Nhận 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 giống như các hàm mã và giải mã được dùng trong MDV:

Ta xem xét một phương pháp tạo một dòng khoá (đồng bộ) khác Giả sử bắt đầu với ( ) và (cũng giống như trước đây), tuy nhiên bây giờ ta tạo dòng khoá theo một quan hệ đệ quy tuyến tính cấp :

Trang 29

đứng trước Phép đệ quy này là tuyến tính bởi vì là một hàm tuyến tính của các số hạng đứng trước Chú ý ta có thể lấy mà không làm mất tính tổng quát Trong trường hợp ngược lại, phép đệ quy sẽ có bậc

Ở đây khoá gồm giá trị Nếu ( ) ( ) thì dòng khoá sẽ chứa toàn các số 0 Dĩ nhiên phải tránh điều này vì khi đó bản mã sẽ đồng nhất với bản rõ Tuy nhiên, nếu chọn thích hợp các hằng số thì một vector khởi đầu bất kì khác ( ) sẽ tạo nên một dòng khoá có chu kỳ

Việc mã hóa và giải mã hệ mật mã dòng mô tả như dưới đây

+ Mã hóa:

+ Giải mã:

 Để hệ thống an toàn, dãy bit khoá ngẫu nhiên phải dài hơn bản tin:

(dãy ngẫu nhiên có ( ) ( ) )

 Việc tạo dãy ngẫu nhiên tốn kém và việc lưu trữ không hiệu quả, do đó phải tạo dãy giả ngẫu nhiên (có tính tiền định và được xây dựng từ các bit mầm)

1.5.6 Chuẩn mã dữ liệu DES

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 15.1.1977 DES mã hoá một xâu bit của bản rõ độ

Trang 30

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 [1] Ta mô tả ở mức cao về hệ thống

Thuật toán tiến hành theo 3 giai đoạn:

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

( ) trong đó là 32 bit đầu và là 32 bit cuối

2) Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính theo quy tắc sau:

3) Áp dụng phép hoán vị ngược cho xâu bit , ta thu được bản mã , tức

là ( ) Có cách chọn các bảng hoán vị, DES chọn các bảng hoán vị và hoán vị đảo

1.5.7 Ưu nhược điểm của mật mã khóa bí mật

Từ các ưu điểm này cho thấy mật mã cổ điển dễ sử dụng cho các dịch vụ nhạy cảm với độ trễ và các dịch vụ di động

Trang 31

1.5.7.2 Nhược điểm

 Với mật mã khóa bí mật phải dùng kênh an toàn để truyền khóa, việc tạo khóa và giữ bí mật khóa phức tạp Khi làm việc trên mạng nếu dùng mật mã khóa bí mật sẽ phải tạo và lưu trữ số lượng khóa nhiều, điều này dẫn đến việc thiết lập kênh an toàn khó khăn hơn và chi phí sẽ cao hơn

 Do các thuật toán là song ánh (dùng chung) nên thám mã có thể suy luận và suy ra bản mã ban đầu

 Nếu sử dụng mật mã khóa bí mật sẽ khó xây dựng các dịch vụ an toàn khác như các dịch vụ: đảm bảo tính toàn v n của dữ liệu, xác thực và chữ ký số

 Việc gửi thông tin cùng khóa với số lượng lớn là khó khăn

Các nhược điểm này sẽ được khắc phục bằng cách sử dụng cả các hệ mật khóa công khai

1.6 HỆ MẬT KHÓA CÔNG KHAI

1.6.1 Sơ đồ chức năng

Hình 1.3 Sơ đồ khối chức năng hệ mật khóa công khai

- Khoá công khai của B (Lấy trên kênh mở)

Trang 32

Giải mã: ( ) ( )

Mật mã khóa công khai, sử dụng một cặp chìa khóa có liên quan với nhau về mặt toán học, một khóa công khai dùng để mã hoá (public key) và một khóa riêng dùng để giải mã (private key) Một thông điệp sau khi được mã hóa bởi khóa công khai sẽ chỉ có thể được giải mã với khóa riêng tương ứng Do các thuật toán loại này sử dụng một khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai) Một số thuật toán bất đối xứng thông dụng là: RSA, ElGamal, Diffie Hellman

1.6.2 Các bài toán một chiều và các hệ mật khóa công khai liên quan

Các hệ mật khóa công khai thường được xây dựng trên các bài toán một chiều Việc mã hóa và giải mã là thực hiện phép tính thuận của bài toán một chiều thường rất dễ dàng, còn việc thám mã phải thực hiện phép tính ngược là công việc rất khó Với yêu cầu với hệ mật khóa công khai: dễ mã hóa, khó giải mã, các hướng nghiên cứu từ năm 1976 cho đến nay đã tìm được một số hàm một chiều, tương ứng với các bài toán sau [1] [6] [8]

1.6.2.1 Bài toán logarit rời rạc

Bài toán này xây dựng trên các hàm mũ của các phần tử trong trường hữu hạn với là số nguyên tố lớn Bài toán ngược là phép logarit nhưng trên trường hữu hạn và đây là bài toán khó giải khi lớn (Bài toán này sẽ được trình bày cụ thể hơn trong chương 2)

Các hệ mật liên quan xây dựng bài toán logarit rời rạc bao gồm:

 Thủ tục trao đổi và thỏa thuận khóa Diffie-Hellman

 Hệ mật Omura – Massey

 Hệ mật Pohlig - Hellman

 Hệ mật Elgamal…

Trang 33

1.6.2.2 Bài toán phân tích thừa số

Với mỗi số nguyên dương ta luôn phân tích được dưới dạng tích của luỹ thừa của các số nguyên tố và phân tích này là duy nhất như sau [8]:

Trong đó: – là các số nguyên tố khác nhau

– là các số nguyên dương

Nếu là tích của hai số nguyên tố , trong đó là hai số nguyên tố lớn có

độ lớn xấp xỉ nhau, thì việc phân tích thành tích của và là bài toán khó Hay là: nếu ta biết thì tính rất đơn giản, nhưng ngược lại biết thì khó tìm và

Có thể kể đến một số hệ mật liên quan đến bài toán này bao gồm: RSA (do

ba nhà khoa học Rivest, Shamir, Adieman sáng lập), hệ mật Rabin…

Mô tả tóm tắt hệ mật RSA như sau:

Bước 4: Tính số nguyên duy nhất, ( ) thỏa mãn ( )

(Có thể sử dụng thuật toán Euclide mở rộng để tìm )

Bước 5: + Khóa công khai của A là cặp số:( )

+ Khóa bí mật của A là số

Trang 34

Chú ý: Các số nguyên và trong thuật toán tạo khoá RSA được gọi là số

mũ mã hoá và số mũ giải mã còn số được gọi là modulus Ta thấy và là hai số nghịch đảo nên vai trò của chúng là giống nhau, tức là nếu khóa công khai là ( ) thì khóa bí mật là , ngược lại nếu khóa công khai là ( ) thì khóa bí mật sẽ là

b) Mã hóa

Giả sử B cần gửi bản tin M cho A (với ), B thực hiện các bước sau [6]:

Bước 1: B nhận khóa công khai của A ( )

- Hiệu quả truyền tin của RSA cao ( )

- Thuật toán RSA có tính bền vững, vì các lý do trên mà RSA là một trong các hệ mật được sử dụng rộng rãi trong vòng hơn 30 năm qua

1.6.2.3 Bài toán xếp ba lô

Cho một đống các gói có các trọng lượng khác nhau, liệu có thể xếp một số gói này vào ba lô để ba lô có một trọng lượng cho trước hay không Về mặt hình thức ta có thể phát biểu bài toán trên như sau:

Cho một tập các giá trị và một tổng Hãy tính các giá trị sao cho :

Trang 35

Với ∈ * + :

+ : Có nghĩa là gói được xếp vào ba lô

+ : Có nghĩa là gói không được xếp vào ba lô

Bài toán có phương án ( vectơ nhị phân ), với lớn (vài trăm) thì không thể giải ở thời gian thực, hay đây là bài toán khó

Hệ mật Merkle - Hellman và các hệ liên quan dựa trên tính khó giải của bài toán tổng các tập con Tuy nhiên tất cả các hệ mật xếp ba lô khác nhau đều đã bị chứng tỏ là không mật (ngoại trừ hệ mật Chor-Rivest)

1.6.2.4 Bài toán mã sửa sai

Ý tưởng của các hệ mật [1] sử dụng bài toàn mã sửa sai là dựa trên một bộ

mã sửa sai tuyến tính ( ), với ma trận sinh: và bộ mã có thuật toán giải

mã hiệu quả Có thể lấy ví dụ về hệ mật Mc Eliece để mô tả bài toán này như sau:

a) Tạo khóa

Mỗi bên liên lạc tạo cho mình một cặp khóa công khai - bí mật theo các bước:

Bước 1: Chọn một mã tuyến tính sửa sai ( ) (khuyến nghị ) với

ma trận sinh , bộ mã có một thuật toán giải mã hiệu quả

Bước 2:

 Chọn ma trận hoán vị cấp , sao cho tồn tại ma trận nghịch đảo với: (với là ma trận đơn vị) Mỗi hàng và mỗi cột của chỉ có duy nhất một con số 1

 Chọn một ma trận khả nghịch ( )

Bước 3: Tính

Bước 4: + Khóa công khai: ( )

+ Khóa bí mật: ( )

Trang 36

Chú ý: Các tham số của mã Goppa có dạng

Để áp dụng trong thực tế cho một hệ mật khoá công khai, McEliece đề nghị chọn

và Điều này ứng với mã Goppa ( ) Mỗi bản rõ là một véctơ nhị phân cấp 524 và mỗi bản mã là một véctơ nhị phân cấp 1024 Khoá công khai là một ma trận nhị phân cấp

b) Mã hóa

Giả sử B cần gửi bản tin cho A, B thực hiện các bước sau:

Bước 1: B nhận khóa công khai của A:( )

Bước 2: B tính ( )

Bước 3: B chọn ∈ ( ) thỏa mãn ( )

Bước 4: B tính (Chèn thêm véctơ sai)

Bước 5: B gửi bản mã cho A

Trong đó: là một véctơ sai nào đó

Bước 2: A giải mã sửa sai từ mã để tìm

Bước 3: A tính để lấy lại bản tin rõ

1.6.3 Đường cong Elliptic

Trang 37

Định nghĩa 1.1 [1]: Đường cong Elliptic trên trường số thực được mô tả

dưới dạng phương trình sau: ( là các số thực)

Định nghĩa 1.2 [1]: Đường cong Elliptic trên trường hữu hạn là số nguyên tố (dạng Weiestrass): với ∈

Điều kiện tồn tại:

Ý tưởng của các hệ mật trên đường cong elliptic là sử dụng nhóm cộng các điểm là tọa độ ( ) tương ứng trên đường cong Mỗi giá trị của sẽ có nhiều giá trị , cụ thể ta phải tính các căn bậc hai của trên trường hữu hạn Đây cũng là một bài toán khó vì một thặng dư bậc hai trên trường hữu hạn có nhiều căn bậc hai

Ví dụ về một cách xây dựng nhóm cộng trên đường cong Elliptic (dạng Weiestrass): như sau:

Các phép toán cộng và nhân các điểm trên đường cong Elliptic

Giả sử ( ) ( ), là các điểm trong nhóm ( ), 0 là điểm vô cực Các quy tắc đối với phép cộng trên nhóm con ( )như sau:

(1)

(2) Nếu và tức là ( ) và ( ) ( ) thì

(3) Nếu thì tổng ( ) với tọa độ của xác định như sau:

( )

Trong đó:

{

Trên đường cong Elliptic cũng xây dựng các hệ mật Omura – Massey, hệ mật Elgamal tương tự như hai hệ mật này nhưng xây dựng trên bài toán logarit rời rạc

Trang 38

1.6.4 Ưu và nhược điểm của hệ mật mã khoá công khai

1.6.4.1 Ưu điểm:

 Đơn giản trong việc bảo vệ, lưu trữ và sinh khóa Chỉ cần đăng ký một khóa công khai và lấy khóa này để trao đổi thông tin mà không cần kênh bí mật để truyền khóa

 Mỗi người chỉ cần một cặp khóa công khai - khóa bí mật là có thể trao đổi thông tin với tất cả mọi người

 Dễ tạo các dịch vụ an toàn khác, là tiền đề cho sự ra đời của chữ ký điện tử

và các phương pháp chứng thực điện tử

1.6.4.2 Nhược điểm:

 Do bản thân các hệ mật mã khoá công khai đều dựa vào các giả thiết liên quan đến các bài toán khó, phức tạp (với trường số lớn thì phần cứng phức tạp) nên đa số các hệ mật mã này đều có tốc độ mã dịch không nhanh Chính nhược điểm này làm cho các hệ mật mã khoá công khai khó được dùng một cách độc lập

 Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc xác thực, do các khoá mã công khai được công bố một cách công khai trên mạng (không sử dụng kênh an toàn) cho nên việc đảm bảo rằng “khoá được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể bị lợi dụng

 Hiệu quả không cao, do đó khó thực hiện các dịch vụ nhạy cảm đối với độ trễ và dịch vụ di động

1.7 HÀM BĂM

1.7.1 Định nghĩa và các tính chất của hàm băm

Hàm băm [1] là các thuật toán không sử dụng khóa để mã hóa (ở đây ta dùng thuật ngữ “băm” thay cho “mã hóa”), nó có nhiệm vụ “lọc” (băm) thông điệp được đưa vào theo một thuật toán một chiều nào đó, rồi đưa ra một bản băm – văn bản

Trang 39

đại diện – có kích thước cố định Do đó người nhận không biết được nội dung hay

độ dài ban đầu của thông điệp đã được băm bằng hàm băm Giá trị của hàm băm là duy nhất, và không thể suy ngược lại được nội dung thông điệp từ giá trị băm này Các đặc trưng hàm băm là hàm băm một chiều (one-way hash) với đặc tính sau:

- Với thông điệp đầu vào thu được bản băm ( ) là duy nhất

- Nếu dữ liệu trong thông điệp thay đổi hay bị xóa để thành thông điệp thì ( )= ( ) Cho dù chỉ là một sự thay đổi nhỏ hay chỉ là xóa đi 1 bit dữ liệu của thông điệp thì giá trị băm cũng vẫn thay đổi Điều này có nghĩa là: hai thông điệp hoàn toàn khác nhau thì giá trị hàm băm cũng khác nhau

- Nội dung của thông điệp gốc không thể bị suy ra từ giá trị hàm băm Nghĩa là: với thông điệp thì dễ dàng tính được ( ), nhưng lại không thể (thực chất là khó) suy ngược lại được nếu chỉ biết giá trị hàm băm

1.7.2 Tính chất và phân loại hàm băm

1.7.2.1 Tính chất của hàm băm

Việc đưa hàm băm vào dùng trong sơ đồ chữ ký số không làm giảm sự an toàn của sơ đồ chữ ký số vì nó là bản tóm lược thông báo – bản đại diện cho thông điệp - được ký chứ không phải là thông điệp gốc Điều cần thiết đối với là cần thỏa mãn một số tính chất sau để tránh bị giả mạo

Tính chất 1: Hàm băm là không va chạm yếu

Xét một kiểu tấn công như sau:

Đáng lẽ: thông tin phải được truyền đúng từ đến

Hình 1.4 Cách đi đúng của thông tin

Nhưng: trên đường truyền, thông tin bị lấy trộm và bị thay đổi

Trang 40

Hình 1.5 Hình Thông tin bị lấy trộm và bị thay đổi trên đường truyền

Người gửi cho ( ) với ( ( ) Nhưng trên đường truyền, tin bị lấy trộm Tên trộm, bằng cách nào đó tìm được một bản thông điệp có ( ) ( ) mà Sau đó, hắn đưa thay thế rồi truyền tiếp cho người Người nhận được và vẫn xác thực được thông tin đúng đắn

Do đó, để tránh kiểu tấn công như vậy, hàm phải thỏa mãn tính không va chạm yếu: Hàm băm là không va chạm yếu nếu khi cho trước một bức điện , không thể tiến hành về mặt tính toán để tìm ra một bức điện mà ( ) ( )

Tính chất 2: Hàm băm là không va chạm mạnh

Xét một kiểu tấn công như sau: Đầu tiên, tên giả mạo tìm ra được hai bức thông điệp và ( ) mà có ( ) ( ) (ta coi bức thông điệp là hợp lệ, còn là giả mạo) Tiếp theo, hắn đưa cho ông và thuyết phục ông này kí vào bản tóm lược ( ) để nhận được Khi đó ( ) là bức điện giả mạo nhưng hợp lệ

Để tránh kiểu tấn công này, hàm phải thỏa mãn tính không va chạm mạnh Hàm băm là không va chạm mạnh nếu không có khả năng tính toán để tìm ra hai bức thông điệp và mà và ( ) ( )

( ( ( ))

( ( ( ))

Ngày đăng: 02/12/2016, 03:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. Nguyễn Bình (2008), Giáo trình Lý thuyết thông tin, Học viện Công nghệ Bưu chính Viễn thông, Nxb Bưu điện, 2008 Sách, tạp chí
Tiêu đề: Giáo trình Lý thuyết thông tin
Tác giả: Nguyễn Bình
Nhà XB: Nxb Bưu điện
Năm: 2008
[3]. Ngô Đức Thiện, Nguyễn Toàn Thắng, (2013), Một phương pháp xây dựng hệ mật mã khối theo sơ đồ Lai-Massey và khả năng ứng dụng vào các hàm băm, Tạp chí KH&CN, Viện Hàn lâm Khoa học và Công nghệ Việt Nam, tập 51, số 4A-2013 Sách, tạp chí
Tiêu đề: Một phương pháp xây dựng hệ mật mã khối theo sơ đồ Lai-Massey và khả năng ứng dụng vào các hàm băm
Tác giả: Ngô Đức Thiện, Nguyễn Toàn Thắng
Năm: 2013
[4]. Ngô Đức Thiện, Đặng Hoài Bắc, A method of building a crypto system based on unbalanced Feistel network and its application in hash functions, Tạp chí Nghiên cứu khoa học và công nghệ quân sự, ISSN 1859-1043, 2014 Sách, tạp chí
Tiêu đề: A method of building a crypto system based on unbalanced Feistel network and its application in hash functions
[5]. Nguyễn Toàn Thắng, Ngô Đức Thiện (2015), Về Một Phương Pháp Xây Dựng Hệ Mật Mã Lai Ghép, Hội thảo Quốc Gia về Điện tử, Truyền thông và Công nghệ thông tin (ECIT-2015), tp. Hồ Chí Minh, 12/2015.Tiếng Anh Sách, tạp chí
Tiêu đề: Về Một Phương Pháp Xây Dựng Hệ Mật Mã Lai Ghép, "Hội thảo Quốc Gia về Điện tử, Truyền thông và Công nghệ thông tin (ECIT-2015), tp. Hồ Chí Minh, 12/2015
Tác giả: Nguyễn Toàn Thắng, Ngô Đức Thiện
Năm: 2015
[6]. Menezes A. J, Van Oorchot P. C. (1998), Handbook of Applied Cryptography, CRC Press, (1998) Sách, tạp chí
Tiêu đề: Handbook of Applied Cryptography
Tác giả: Menezes A. J, Van Oorchot P. C
Năm: 1998
[7]. Schneier B. (1996), Applied Cryptography, JohnWileyPress, 1996 Sách, tạp chí
Tiêu đề: Applied Cryptography
Tác giả: Schneier B
Năm: 1996
[8]. Stinson D. R. (1995), Cryptography: Theory and Practice, CRC Press, 1995 Sách, tạp chí
Tiêu đề: Cryptography: Theory and Practice
Tác giả: Stinson D. R
Năm: 1995
[9]. Pascal JUNOD. (2005), Statistical Cryptanalysis of Block Ciphers, Thèse N0 3179, Insitute de systèmes de communication, Ècole Polytechnique Fédérale de Lausanne, 2005 Sách, tạp chí
Tiêu đề: Statistical Cryptanalysis of Block Ciphers
Tác giả: Pascal JUNOD
Năm: 2005
[1]. Nguyễn Bình (2004), Giáo trình Mật mã học, Học viện Công nghệ Bưu chính Viễn thông, Nxb Bưu điện, 2004 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Các lĩnh vực của khoa học mật mã - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 1.1. Các lĩnh vực của khoa học mật mã (Trang 14)
Sơ đồ chức năng hệ mật khoá bí mật - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Sơ đồ ch ức năng hệ mật khoá bí mật (Trang 17)
1.6.1. Sơ đồ chức năng - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
1.6.1. Sơ đồ chức năng (Trang 31)
Hình 1.5. Hình Thông tin bị lấy trộm và bị thay đổi trên đường truyền. - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 1.5. Hình Thông tin bị lấy trộm và bị thay đổi trên đường truyền (Trang 40)
Hình 1.6. Phân loại hàm băm - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 1.6. Phân loại hàm băm (Trang 41)
Hình 2.1. Hàm logarit trên trường số thực - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 2.1. Hàm logarit trên trường số thực (Trang 49)
Hình 3.1. Một vòng mã hóa theo sơ đồ Feistel - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 3.1. Một vòng mã hóa theo sơ đồ Feistel (Trang 62)
Hình 3.2. Mã hóa (a) và giải mã (b) Feistel 16 vòng - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 3.2. Mã hóa (a) và giải mã (b) Feistel 16 vòng (Trang 63)
Hình 3.4. Thuật toán mã hóa trong một vòng - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 3.4. Thuật toán mã hóa trong một vòng (Trang 67)
Bảng 3.1:  Hoán vị ban đầu (IP) - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Bảng 3.1 Hoán vị ban đầu (IP) (Trang 67)
Hình 3.5. Sơ đồ mã hóa của hệ mật - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
Hình 3.5. Sơ đồ mã hóa của hệ mật (Trang 68)
Bảng A-1: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
ng A-1: Khoảng cách Hamming giữa các cặp bản mã khi thay đổi 1 bit bản rõ M (Trang 75)
Bảng A-3: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K - Xây dựng một hệ mật mã lai ghép dựa trên bài toán logarit rời rạc (LV thạc sĩ)
ng A-3: Khoảng cách Hamming của các cặp bản mã khi thay đổi khóa bí mật K (Trang 79)

TỪ KHÓA LIÊN QUAN

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