1. Trang chủ
  2. » Thể loại khác

Hệ mã hóa đối xứng và ứng dụng trong vấn đề bảo mật tài liệu tại trung tâm kỹ thuật tài liệu nghiệp vụ

67 306 2

Đ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 67
Dung lượng 2,23 MB

Nội dung

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

Trang 1

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN QUANG TRUNG

HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG

TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU

TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN, 2017

Trang 2

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN QUANG TRUNG

HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG

TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU

TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: TS VŨ VINH QUANG

THÁI NGUYÊN, 2017

Trang 3

LỜI CAM ĐOAN

Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền thông,

với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận dụng các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời

có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình

Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên cứu

và hoàn thành dưới sự hướng dẫn của thầy giáo TS Vũ Vinh Quang

Thái Nguyên, tháng 5 năm 2017

Học viên

Nguyễn Quang Trung

Trang 4

MỤC LỤC

LỜI CAM ĐOAN ii

MỤC LỤC iii

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

DANH MỤC CÁC BẢNG BIỂU vi

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

LỜI NÓI ĐẦU 1

CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT THÔNG TIN 2 1.1 Tổng quan về an toàn và bảo mật thông tin 2

1.1.1 Khái niệm chung 2

1.1.2 Mục tiêu của an toàn bảo mật thông tin 3

1.1.3 Các chiến lược an toàn hệ thống 4

1.2 Các kiến thức cơ bản về hệ mật mã 5

1.2.1 Khái niệm chung 5

1.2.2 Các thành phần của một hệ mật mã 6

1.2.3 Quy trình mã hóa và giải mã 7

1.2.4 Phân loại hệ thống mã hóa 8

1.2.5 Các đặc trưng của hệ thống mã hoá 12

1.2.6 Thám mã và tính an toàn của các hệ mã 13

1.3 Cơ sở toán học về mã hóa 16

1.3.1 Các thuật toán trong Z 17

1.3.2 Thuật toán Euclide 17

1.3.3 Khái niệm về hàm Euler 18

1.3.4 Khái niệm về đồng dư thức 19

1.3.5 Khái niệm về số nghịch đảo 21

1.3.6 Định lý phần dư China CRT (Chinese Remainder Theorem) 21

1.3.7 Các thuật toán trong Zn 22

1.3.8 Thuật toán 22

CHƯƠNG 2: MỘT SỐ HỆ MÃ HÓA ĐỐI XỨNG 23

2.1 Giới thiệu 23

2.2 Quá trình mã hóa và giải mã 25

Trang 5

2.3 Một số hệ mã hóa đối xứng 25

2.3.1 Hệ mã Caesar 25

2.3.2 Hệ mã mật Hill 25

2.3.3 Hệ mã Affine 26

2.3.4 Hệ mã Vigenère 28

2.3.5 Phương pháp mã hóa khối 29

2.4 Hệ mã DES 30

2.4.1 Sơ đồ mã hóa 30

2.4.2 Thuật toán mã hóa Triple DES 34

2.4.3 Thuật toán mã hóa AES 36

2.5 Mật mã dòng 43

CHƯƠNG 3: MỘT SỐ KẾT QUẢ ỨNG DỤNG 46

3.1 Vấn đề bảo mật tài liệu tại trung tâm kỹ thuật tài liệu nghiệp vụ 46

3.2 Mô tả dữ liệu thử nghiệm 47

3.3 Môi trường thử nghiệm và một số giao diện 47

3.3.1 Môi trường thử nghiệm 47

3.4 Kịch bản thử nghiệm và kết quả 48

3.4.1 Tốc độ mã hóa theo số lượng dữ liệu 48

3.4.2 Tốc độ giải mã theo số lượng dữ liệu 49

3.4.3 Tốc độ mã hóa theo các chế độ mã hóa 50

3.4.4 Tốc độ mã hóa theo kích thước khóa 51

KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU 52

TÀI LIỆU THAM KHẢO 53

PHỤ LỤC 54

Trang 6

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

1 AES Advanced Encryption

Chế độ mã hóa của AES khi mã hóa

sử dụng cả key và kết quả của block trước làm tham số

3 DES Data Encryption

Standard

Chuẩn mã hóa dữ liệu

ECB Electronic Code

Triple DES DES bội ba

7 TTP Trusted Third Party Đơn vị thứ ba tin cậy

8 UCLN Ước Chung Lớn Nhất

Trang 7

DANH MỤC CÁC BẢNG BIỂU

Bảng 1 1 Quan hệ giữa độ dài khoá và thời gian dò khoá 15

Bảng 2 1 Các thông số chính của AES 36

Bảng 3 1 Bộ dữ liệu thử nghiệm thuật toán AES 47

Bảng 3 2 Bảng kết quả đo tốc độ mã hóa theo số lượng dữ liệu (giây) 48

Bảng 3 3 Bảng kết quả đo tốc độ giải mã theo số lượng dữ liệu (giây) 49

Bảng 3 4 Bảng kết quả đo tốc độ mã hóa theo chế độ mã hóa (giây) 50

Bảng 3 5 Bảng kết quả đo tốc độ mã hóa theo kích thước khóa (giây) 51

Trang 8

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

Hình 1 1 Mã hoá với khoá mã và khoá giải giống nhau 7

Hình 1 2 Quy trình mã hóa và giải mã 7

Hình 1 3 Sơ đồ mã hóa và giải mã 8

Hình 1 4 Sơ đồ mã hóa và giải mã bằng khóa riêng 9

Hình 1 5 Sơ đồ mã hóa và giải mã bằng khóa công khai 10

Hình 2 1 Mô hình hệ thống mã hóa đối xứng 24

Hình 2 2 Hình vuông vigenère 29

Hình 2 3 Sơ đồ hệ mã des 31

Hình 2 4 DES bội hai (double des) 34

Hình 2 5 DES bội ba (triple des) dùng 2 khoá 35

Hình 2 6 Thuật toán mã aes 37

Hình 2 7 Quá trình biến đổi mảng trạng thái trong thuật toán aes 37

Hình 2 8 Ma trận thay thế byte (s-box) 39

Hình 2 9 Thao tác dịch dòng 40

Hình 2 10 Thuật toán mở rộng khoá của AES 42

Hình 3 1 Biểu đồ tốc độ mã hóa theo số lượng dữ liệu 48

Hình 3 2 Biểu đồ tốc độ tốc độ giải mã theo số lượng dữ liệu 49

Hình 3 3 Biểu đồ tốc độ mã hóa theo chế độ mã hóa 50

Hình 3 4 Biểu đồ tốc độ mã hóa theo kích thước khóa 51

Trang 9

LỜI NÓI ĐẦU

Mã hóa là công cụ cơ bản của việc đảm bảo an toàn dữ liệu Thời kỳ sơ khai, con người đã sử dụng nhiều phương pháp để bảo vệ các thông tin bí mật Ban đầu, mật mã học được sử dụng phổ biến trong quân đội, qua nhiều cuộc chiến tranh, vai trò của mật

mã ngày càng quan trọng và mang lại nhiều thành quả không nhỏ, chúng là nền tảng cho mật mã học ngày nay

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… 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ùng với sự phát triển của khoa học máy tính, các nghiên cứu và ứng dụng của các chuẩn mã hóa ngày càng trở nên đa dạng hơn Hiện nay, có nhiều phương pháp mã hóa, mỗi phương pháp có ưu, nhược điểm riêng Tùy theo yêu cầu của môi trường ứng dụng mà người ta có thể dùng phương pháp này hay phương pháp kia Có những môi trường cần phải an toàn tuyệt đối bất kể thời gian

và chi phí Có những môi trường lại cần giải pháp “dung hòa” giữa bảo mật và chi phí Vấn đề bảo đảm an toàn cho các hệ thống thông tin là một trong những vấn đề quan trọng cần cân nhắc trong suốt quá trình thiết kế, thi công, vận hành và bảo dưỡng hệ thống thông tin

Các hệ thống mã hóa được chia thành hai loại: hệ mã hóa khóa đối xứng (việc giải

mã và mã hóa sử dụng chung một khóa) và hệ mã hóa công khai (mã hóa và giải mã dùng khóa khác nhau) Trong phạm vi luận văn của mình, tác giả tập trung vào nghiên cứu hệ mã hóa khoá đối xứng (mã hóa khóa bí mật), tập trung vào các thuật toán mã hóa

cổ điển, chuẩn mã hóa dữ liệu DES và chuẩn mã hoá nâng cao AES

Hệ mã hóa công khai có nhược điểm là tốc độ mã hóa và giải mã rất chậm, do vậy chỉ phù hợp sử dụng trong trao đổi khóa, trong khi đó hệ mã hóa đối xứng có tốc độ xử

lý nhanh hơn rất nhiều và phù hợp với nhu cầu xử lý số lượng lớn tài liệu Dựa trên thực

tế về yêu cầu mã hóa tại trung tâm kỹ thuật tài liệu nghiệp vụ có đặc điểm đa dạng về thể loại và số lượng Chính vì vậy tác giả đã lựa chọn nghiên cứu và ứng dụng giải pháp

mã hóa đối xứng cho bài toán thực tế nơi tác giả đang công tác

Trang 10

CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT

THÔNG TIN

Nội dung chính của chương 1 trình bày một số khái niệm cơ bản về vấn đề an toàn và bảo mật thông tin, khái niệm về hệ mật mã và cơ sở toán học về lý thuyết đồng dư Các yêu cầu chính của một hệ thống mã hóa, khái niệm về thám mã làm cơ

sở cho việc nghiên cứu các hệ mã hóa trong chương 2 Các kiến thức này được tham khảo trong các tài liệu [1, 2, 3, 4]

1.1 Tổng quan về an toàn và bảo mật thông tin

1.1.1 Khái niệm chung

Từ xưa đến nay thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con người Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa dạng và phát triển Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin

đã trở lên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn Nhưng kèm theo đó là các nguy

cơ xâm phạm thông tin cũng ngày càng tăng

Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện

tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được tổng kết vào ba nhóm sau:

- Bảo vệ an toàn thông tin bằng các biện pháp hành chính

- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng)

- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)

Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp Môi trường khó bảo

vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó là môi trường mạng và truyền tin Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán

An toàn thông tin bao gồm các nội dung sau:

- Tính bí mật: tính kín đáo riêng tư của thông tin

Trang 11

- Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác thực thông tin trao đổi

- Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm

về thông tin mà mình đã gửi

Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính

có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu các thiệt hại

Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin) Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể

dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần đầu các gói tin Người xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao đổi Vì vậy vi pham thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ liệu được trao đổi Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu quả Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiều

Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là an toàn tuyệt đối Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm bảo là an toàn tuyệt đối

1.1.2 Mục tiêu của an toàn bảo mật thông tin

Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục tiêu sau:

Tính bí mật (Confjdentialy): Đảm bảo dữ liệu được truyền đi một cách an toàn và

không thể bị lộ thông tin nếu như có ai đó cố tình muốn có được nội dung của dữ liệu

Trang 12

gốc ban đầu Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu

Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định được chắc

chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu Người giả mạo không thể có khả năng

để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được

Tính toàn vẹn (Integrity): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu

không bị thay đổi trong quá trình truyền đi Người giả mạo không thể có khả năng thay thế dữ liệu ban đầu bằng dữ liệu giả mạo

Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận không thể chối

bỏ sau khi đã gửi hoặc nhận thông tin

1.1.3 Các chiến lược an toàn hệ thống

Giới hạn quyền hạn tối thiểu (Last Privilege):

Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cùng chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ được sử dụng một số tài nguyên nhất định

Bảo vệ theo chiều sâu (Defence In Depth):

Nguyên tắc này nhắc nhở chúng ta : Không nên dựa vào một chế độ an toàn nào dù cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau

Nút thắt (Choke Point) :

Tạo ra một “cửa khẩu” hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình bằng con đường duy nhất chính là “cửa khẩu” này => phải tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi qua cửa này

Điểm nối yếu nhất (Weakest Link) :

Chiến lược này dựa trên nguyên tắc: “ Một dây xích chỉ chắc tại mắt duy nhất, một bức tường chỉ cứng tại điểm yếu nhất”

Người tấn công thường tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta cần phải gia cố các yếu điểm của hệ thống Thông thường chúng ta chỉ quan tâm đến

Trang 13

người tấn công trên mạng hơn là người tiếp cận hệ thống, do đó an toàn vật lý được coi

là yếu điểm nhất trong hệ thống của chúng ta

Tính toàn cục:

Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ Nếu có một người nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong

Tính đa dạng bảo vệ :

Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu không có người tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các hệ thống khác

1.2 Các kiến thức cơ bản về hệ mật mã

1.2.1 Khái niệm chung

Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật Mật mã bao gồm : Lập mã và phá mã Lập mã bao gồm hai quá trình: mã hóa và giải mã

Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được

mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng

Để bảo vệ thông tin bằng mật mã người ta thường tiếp cận theo hai hướng:

- Theo đường truyền (Link_Oriented_Security)

- Từ nút đến nút (End_to_End)

Theo cách thứ nhất thông tin được mã hoá để bảo vệ trên đường truyền giữa hai nút

mà không quan tâm đến nguồn và đích của thông tin đó Ở đây ta lưu ý rằng thông tin chỉ được bảo vệ trên đường truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó mã hoá để truyền đi tiếp, do đó các nút cần phải được bảo vệ tốt

Trang 14

Ngược lại theo cách thứ hai thông tin trên mạng được bảo vệ trên toàn đường truyền

từ nguồn đến đích Thông tin sẽ được mã hoá ngay sau khi mới tạo ra và chỉ được giải

mã khi về đến đích Cách này mắc phải nhược điểm là chỉ có dữ liệu của người ung thì mới có thể mã hóa được còn dữ liệu điều khiển thì giữ nguyên để có thể xử lý tại các nút

Các hệ mật mã phải thực hiện được các nhiệm vụ sau đây:

- Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText) để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin (Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn

- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity)

- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng

Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu

đã được mã hoá Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn

1.2.2 Các thành phần của một hệ mật mã

Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

- P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ

- C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của

P, với k  K

- K: Là tập hữu hạn các khoá hay còn gọi là không gian khoá Đối với mỗi phần

tử k của K được gọi là một khoá Số lượng của không gian khoá phải đủ lớn để

“kẻ địch” không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn) Đối với mỗi k  K có một quy tắc mã ek: PC và một quy tắc giải mã tương ứng dk D Mỗi ek: P C và dk: CP là những hàm mà: Dk (ek(x))=x với mọi bản rõ x P

Trang 15

Hình 1 1 Mã hoá với khoá mã và khoá giải giống nhau

1.2.3 Quy trình mã hóa và giải mã

Mã hóa dữ liệu là sử dụng một phương pháp biến đổi dữ liệu từ dạng bình thường sang một dạng khác mà một người không có thẩm quyền, không có phương tiện giải mã thì không thể đọc hiểu được Giải mã dữ liệu là quá trình ngược lại, là sử dụng một phương pháp biến đổi dữ liệu đã được mã hóa về dạng thông tin ban đầu

Hình 1 2 Quy trình mã hóa và giải mã

Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao cho người khác không thể đọc hiểu được

Giải mã: Là quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành dạng gốc ban đầu

Bản mã: Tệp dữ liệu đã được mã hóa

Một hệ thống mã hóa bao gồm các thành phần sau:

- PlainText : Bản tin sẽ được mã hóa hay bản tin gốc

- CipherText : Bản tin đã được mã hóa hay bản tin mã

Trang 16

Thuật toán mã hóa và giải mã :

- Encryption : quá trình chuyển bản tin gốc sang dạng mật mã

- Decryption : quá trình giải bản tin dạng mật mã trở về bản tin gốc

- Cách chọn khóa : giá trị toán học dùng để thực hiện mã hóa

Nhiều phương pháp mã hóa đã được đưa ra dựa trên những giải thuật toán phức tạp,

để tạo khó khăn cho những ai đó muốn phá mật mã mà không cần được ai trao chìa khóa Nói tạo khó khăn là vì trên lý thuyết ta không thể nói việc tìm chìa khóa là vô phương Nhưng nếu trở ngại đủ lớn để làm nản lòng người muốn phá khóa thì đã là một mức độ an toàn tốt

Quá trình mã hóa và giải mã có thể được minh họa theo sơ đồ sau :

-Quá trình truyền

dữ liệu

Quá trình

mã hóa

Quá trình giải mã

Bản tin gốc

Bản tin gốc

Bản tin mã

Bản tin mã

```

```

```

```

```

```

Hình 1 3 Sơ đồ mã hóa và giải mã

1.2.4 Phân loại hệ thống mã hóa

Để phân loại hệ thống mã hóa, người ta phân loại dựa trên khóa như sau

1.2.4.1 Mã hóa bằng khóa bí mật

Các hệ thống mã hóa với khóa bí mật còn được gọi là mã hóa bằng khóa riêng, mã hóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn quá trình giải mã

Có hai loại thuật toán mã hóa bí mật :

Trang 17

- Stream Algorithms/Stream Ciphers : các thuật toán hoạt động trên văn bản bình thường theo từng bit một

- Block Algorithms/Block Ciphers : các thuật toán hoạt động trên văn bản theo

các khối (32 bit, 64 bit, 128 bit, )

Một số thuật toán đang được sử dụng rộng rãi hiện nay : DES, Triple-DES, RC5, RC6, Rijndael

Quá trình mã hóa và giải mã bằng cách sử dụng khóa bí mật được minh họa như hình sau :

-Quá trình truyền

dữ liệu

Khóa bí mật(chỉ

Có người mã hóa và

người giải mã biết)

Quá trình

mã hóa

Quá trình giải mã

Bản tin gốc

Bản tin gốc

Bản tin mã

Bản tin mã

```

```

```

```

```

```

Hình 1 4 Sơ đồ mã hóa và giải mã bằng khóa riêng 1.2.4.2 Mã hóa bằng khóa công khai

Mã hóa bằng khóa công khai còn gọi là mã hóa bất đối xứng hay mã hóa bằng khóa chung Sự khác biệt cơ bản giữa một hệ thống mã hóa bằng khóa bí mật với hệ thống

mã hóa bằng khóa công khai là hệ thống mã hóa khóa công khai dùng hai khóa khác nhau để mã hóa và giải mã Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa dành cho người mã hóa thường được công khai, và khóa còn lại dùng cho người giải mã thường được giữ bí mật Như vậy, hệ thống mã hóa với khóa công khai cần có một quá

Trang 18

trình sinh ra hai khóa để mã hóa và giải mã thông điệp Các khóa này được xem như là một đôi :

Public-key (khóa công khai): được phép công khai mà không phải chịu rủi ro về an toàn Khóa này được dùng để mã hóa thông điệp

Private-key (khóa bí mật): không được để lộ Mỗi thông điệp được mã hóa bằng public-key chỉ có thể giải mã bằng một khóa mật thích hợp

Một số thuật toán mã hóa công khai phổ biến : RSA, Diffie-Hellman Key-Exchange Algorithm (dùng cho việc phân phối và trao đổi khóa)

Quá trình mã hóa và giải mã bằng cách sử dụng khóa công khai được minh họa như hình sau :

-Quá trình truyền

dữ liệu

Khóa công khai, chỉ dùng để mã hóa (có thể cho mọi người biết) Khóa mật, chỉ dùng để giải mã (cần

được giữ bí mật)

Quá trình

mã hóa

Quá trình giải mã

Bản tin gốc

Bản tin gốc

Bản tin mã

Bản tin mã

```

```

```

```

```

```

Hình 1 5 Sơ đồ mã hóa và giải mã bằng khóa công khai

Trang 19

Có thể thấy rằng các phương pháp có những ưu khuyết điểm chính như sau:

a) Phương pháp mã hóa khóa bí mật

+ Có thể được thiết kế để đạt tốc độ cao

Các thiết bị phần cứng hỗ trợ có thể đạt

tốc độ hàng trăm megabytes mỗi giây

trong khi việc thực thi bằng phần mềm

chỉ đạt được khoảng vài megabytes mỗi

giây

+ Khóa dùng cho mã hóa khóa đối xứng

tương đối ngắn

+ Được xem như thành phần cơ bản có

thể triển khai để xây dựng các kỹ thuật

mã hóa khác bao gồm khởi tạo các số

ngẫu nhiên, các hàm băm, các kỹ thuật

tính toán

+ Có thể được kết hợp để tạo ra các thuật

toán mã hóa mạnh hơn

+ Trong quá trình truyền thông giữa hai người, khóa phải được giữ bí mật cho cả hai phía

+ Trong một hệ thống mạng lớn, số lượng khóa cần được quản lý rất nhiều

Do vậy việc quản lý khóa một cách hiệu quả đòi hỏi sử dụng một bộ phận tin cậy thứ ba (TTP :Trusted Third Party) + Khóa bí mật cần được thay đổi thường xuyên

+ Kỹ thuật chữ ký số được phát triển từ

cơ chế mã hóa khóa đối xứng đòi hỏi sử dụng các khóa lớn cho các hàm xác nhận công khai hoặc là sử dụng một TTP

b) Phương pháp mã hóa khóa công khai

+ Chỉ có khóa riêng thì cần được giữ bí

mật (tuy nhiên việc xác nhận của các

khóa công khai cần được đảm bảo)

+ Việc quản trị các khóa trên mạng đòi

hỏi sự tồn tại duy nhất một thành phần

tin cậy TTP

+ Cặp khóa riêng và công khai có thể

được sử dụng trong thời gian dài

+ Tốc độ cho các phương thức mã hóa công khai thì chậm hơn rất nhiều so với các mô hình khóa đối xứng

+ Kích thước khóa lớn hơn rất nhiều so với cơ chế mã hóa khóa đối xứng

+ Không có mô hình khóa công khai nào được chứng minh là an toàn Phần lớn các mô hình mã hóa hiệu quả ngày nay

có sự an toàn dựa trên các giả thuyết của

Trang 20

+ Nhiều mô hình khóa công cộng được

phát triển hình thành nên các kỹ thuật

chữ ký số hiệu quả Khóa được sử dụng

cho hàm kiểu công khai thì nhỏ hơn rất

nhiều so với dùng khóa đối xứng

+ Trong một mạng lớn, số lượng các

khóa cần thiết được quan tâm ít hơn so

với việc dùng khóa đối xứng

một tập nhỏ của các vấn đề lý thuyết số học

+ Hệ thống mã hóa công khai không có

bề dày lâu đời như hệ thống mã hóa khóa đối xứng, nó chỉ được tìm ra vào giữa khoảng những năm 1970

1.2.5 Các đặc trưng của hệ thống mã hoá

Một hệ thống mã hóa bất kỳ được đặc trưng bởi 3 tiêu chí sau đây:

- Phương pháp mã (operation): có hai phương pháp mật mã bao gồm thay thế

(substitution) và chuyển vị (transposition) Trong phương pháp mã thay thế, các đơn vị thông tin (bit, ký tự, byte hoặc khối) trong thông tin gốc được thay thế bằng các đơn vị thông tin khác theo một quan hệ nào đó Trong phương pháp mã chuyển vị, các đơn vị thông tin trong thông gốc được đổi chỗ cho nhau để tạo thành thông tin mã hóa Các hệ thống mã hoá hiện đại thường kết hợp cả hai phương pháp thay thế và chuyển vị

- Số khóa sử dụng (number of keys): nếu phía mã hóa (phía gửi) và phía giải mã (phía

nhận) sử dụng chung một khóa, ta có hệ thống mã dùng khoá đối xứng (symmetric key) gọi tắt là mã đối xứng hay còn có các tên gọi khác như mã một khóa (single-key), mã khóa bí mật (secret key) hoặc mã quy ước (conventional cryptosystem) Nếu phía mã hóa

và phía giải mã dùng 2 khóa khác nhau, hệ thống này được gọi là mã bất đối xứng (asymmetric key), mã hai khóa (two key) hoặc mã khóa công khai (public key)

- Cách xử lý thông tin gốc (mode of cipher): thông tin gốc có thể được xử lý liên tục

theo từng phần tử , khi đó ta có hệ thống mã dòng (stream cipher) Ngược lại, nếu thông tin gốc được xử lý theo từng khối, ta có hệ thống mã khối (block cipher) Các hệ thống

mã dòng thường phức tạp và không được phổ biến công khai, do đó chỉ được dùng trong một số ứng dụng nhất định (ví dụ trong thông tin di động GSM) Các thuật toán mật mã được giới thiệu trong tài liệu này chỉ tập trung vào cơ chế mã khối

Trang 21

Có nhiều cách để phân loại hệ mật mã Dựa vào cách truyền khóa có thể phân các

hệ mật mã thành hai loại:

- Hệ mật đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật dùng chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu Do đó khoá phải được giữ bí mật tuyệt đối

- Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai) : Hay còn gọi

là hệ mật mã công khai, các hệ mật này dùng một khoá để mã hoá sau đó dùng một khoá khác để giải mã, nghĩa là khoá để mã hoá và giải mã là khác nhau Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá kia Khoá dùng để mã hoá có thể công khai nhưng khoá dùng

để giải mã phải giữ bí mật

Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại: Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau năm 1970) Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau)

1.2.6 Thám mã và tính an toàn của các hệ mã

1.2.6.1 Thám mã

Mật mã được sử dụng trước hết là để đảm bảo tính bí mật cho các thông tin được trao đổi, và do đó bài toán quan trọng hất của thám mã cũng là bài toán phá bỏ tính bí mật đó, tức là từ bản mật mã có thể thu được dễ dàng các thông tin bị che dấu trong đó Như vậy bài toán thám mã cơ bản có thể xem là bài toán tìm khóa bí mật K Giả thiết người thám mã biết thông tin về sơ đồ hệ mã được dùng hoặc có thể biết thêm một vài thông tin khác mà ta có thể phân ra thành các bài toán:

- Bài toán thám mã chỉ biết bản mã: là bài toán phổ biến nhất, khi người thám mã chỉ biết bản mã Y

- Bài toán thám mã khi biết cả bản rõ: người thám mã biết một bản mã Y cùng với bản rõ tương ứng X

Trang 22

- Bài toán thám mã khi có bản rõ được chọn: người thám mã có thể chọn một bản

rõ X, và biết bản mã Y tương ứng Điều này có thể xảy ra khi người thám mã chiếm được (tạm thời) máy lập mã

- Bài toán thám mã khi có bản mã được chọn: người thám mã có thể chọn một bản mật mã Y, và biết được bản rõ X tương ứng Xảy ra khi người thám mã chiếm được máy giải mã

1.2.6.2 Phương pháp thám mã (tấn công hệ mã)

Phương pháp phân tích mã (cryptanalysis): dựa vào bản chất của thuật toán mã hóa,

cùng với một đoạn thông tin gốc hoặc thông tin mật có được, người tấn công tìm cách phân tích để tìm ra toàn bộ thông tin gốc hoặc tìm ra khóa, rồi sau đó thực hiện việc giải

mã toàn bộ thông tin mật

Phương pháp thử tuần tự (brute-force): bằng cách thử tất cả các khóa có thể, người

tấn công có khả năng tìm được khóa đúng và do đó giải mã được thông tin mật

Thông thường, để tìm được khóa đúng thì cần phải thử một số lượng khóa bằng khoảng một nửa số khóa có thể có của hệ thống mã Ví dụ, nếu khoá có chiều dài là 8 bit thì sẽ có tất cả 28 = 256 khóa khác nhau Để chọn được khóa đúng thì người tấn công phải thử trung bình khoảng 256 / 2 = 128 lần Việc thử này thường được trợ giúp bởi

các máy tính và phần mềm chuyên nghiệp

Hai thành phần đảm bảo sự an toàn của một hệ thống mật mã là thuật toán mã (bao gồm thuật toán mã hoá và thuật toán giải mã) và khoá

Trong thực tế, thuật toán mã không được xem như một thông tin bí mật, bởi vì mục đích xây dựng một thuật toán mã là để phổ biến cho nhiều người dùng và cho nhiều ứng dụng khác nhau, hơn nữa việc che giấu chi tiết của một thuật toán chỉ có thể tồn tại trong một thời gian ngắn, sẽ có một lúc nào đó, thuật toán này sẽ được tiết lộ ra, khi đó toàn

bộ hệ thống mã hóa trở nên vô dụng Do vậy, tất cả các tình huống đều giả thiết rằng người tấn công đã biết trước thuật toán mã

Như vậy, thành phần quan trọng cuối cùng của một hệ thống mã là khóa của hệ

thống, khóa này phải được giữ bí mật giữa các thực thể tham gia nên được gọi là khóa

bí mật Một cách tổng quát, chiều dài khóa càng lớn thì thời gian cần thiết để dò ra khóa

Trang 23

bằng cách thử càng lớn, do vậy khả năng phát hiện khóa càng thấp Bảng sau đây liệt kê một số khóa với độ dài khác nhau và thời gian cần thiết để dò ra khóa

Bảng 1 1 Quan hệ giữa độ dài khoá và thời gian dò khoá

1.2.6.3 Tiêu chuẩn đánh giá hệ mật mã

Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tiêu chí sau:

Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an toàn cao

Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an toàn tính toán

mà không cần phải cài đặt Một hệ mật được coi là an toàn nếu để phá hệ mật mã này

phải dùng n phép toán Mà để giải quyết n phép toán cần thời gian vô cùng lớn, không

thể chấp nhận được

Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:

- Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khoá, công khai thuật toán

- Khi cho khoá công khai eK và bản rõ P thì chúng ta dễ dàng tính được eK(P) =

C Ngược lại khi cho dK và bản mã C thì dễ dàng tính được dK(M)=P Khi không biết dK thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm

Trang 24

f: X Y thì việc tính y=f(x) với mọi x thuộc X là dễ còn việc tìm x khi biết y lại

là vấn đề khó và nó được gọi là hàm một chiều

- Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ

Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ mã

và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh

Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền công

khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã

Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó của bài toán thám mã khi sử dụng hệ mã hóa đó Người ta đã đề xuất một số khái niệm về tính an toàn của hệ thống mật mã

- An toàn vô điều kiện: giả thiết người thám mã có được thông tin về bản mã Theo quan niệm lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp được

độ bất định về bản rõ đối với người thám mã thì hệ mã hóa đó là an toàn vô điều kiện, hay theo Shannon đó là hệ bí mật hoàn toàn

- An toàn được chứng minh: một hệ thống mã hóa được xem là có độ an toàn được chứng minh nếu ta có thể chứng minh được là bài toán thám mã đối với hệ thống

đó khó tương đương với một bài toán khó đã biết Ví dụ như bài toán phân tích một số nguyên thành các thừa số nguyên tố, bài toán tìm logarit rời rạc theo một modul nguyên tố…(Khó tương đương có nghĩa là nếu bài toán này giải được thì bài toán kia cũng giải được với cùng một độ phức tạp như nhau)

- An toàn tính toán: hệ mã được xem là an toàn về mặt tính toán nếu với mọi phương pháp thám mã đã biết đều đòi hỏi một nguồn năng lực tính toán vượt mọi khả năng (kể cả phương tiện thiết bị)

Tính an toàn theo nghĩa được chứng minh hay tính toán được sử dụng nhiều trong việc nghiên cứu các hệ thống mật mã hiện đại, đặc biệt là hệ mã hóa công khai

1.3 Cơ sở toán học về mã hóa

Định nghĩa 1.1:

+ Ước số của a và b là c nếu a và b cùng chia hết cho c, kí hiệu a|c, b|c

+ Ước số chung lớn nhất : Là số lớn nhất mà a và b cùng chia hết

Trang 25

Ký hiệu : c = gcd (a,b) ;

+ Bội số chung nhỏ nhất : d là BCNN của a và b nếu mọi c mà a|c , b|c → d|c

Ký hiệu : d = lcm (a,b) ;

Tính chất: lcm (a,b) = a.b/gcd(a,b)

Định nghĩa 1.2: Số n là số nguyên tố nếu n chỉ chia hết cho 1 và chính nó

Hệ mật thường sử dụng số nguyên tố lớn cỡ 512 bits và thậm chí còn lớn hơn nữa

Định nghĩa 1.3: Hai số m và n gọi là hai số nguyên tố cùng nhau khi ước số chung

lớn nhất của chúng bằng 1 Chúng ta có thể viết như sau: UCLN(m,n) = 1

1.3.1 Các thuật toán trong Z

Cho a và b là các số nguyên không âm và nhỏ hơn hoặc bằng n Cần chú ý rằng số các bit trong biểu diễn nhị phân của n là [lgn] + 1 và số này xấp xỉ bằng lgn Số các phép toán bit đối với bốn phép toán cơ bản trên các số là cộng, trừ, nhân và chia sử dụng các thuật toán kinh điển được tóm lược trên bảng sau Các kỹ thuật tinh tế hơn đối với các phép toán nhân và chia sẽ có độ phức tạp nhỏ hơn

Phép toán Độ phức tạp bit Cộng a + b

Trừ a – b Nhân a * b Chia a = qb + r

0(lga + lgb) = 0 (lgn) 0(lga + lgb) = 0 (lgn) 0((lga)*(lgb)) = 0((lgn)) 0((lga)*(lgb)) = 0((lgn))

1.3.2 Thuật toán Euclide

Trong lý thuyết mật mã, người ta thường dùng thuật toán Euclide để xác định UCLN của 2 số nguyên bất kì Thuật toán được mô tả như sau:

Thuật toán gốc

Input : Hai số nguyên không âm a và b với a > b

Output : UCLN của a và b

(1) while b ≠ 0 do

Trang 26

R ← a mod b, a ← b, b ← r

(2) Return (a)

Thuật toán mở rộng

Input : Hai số nguyên không âm a và b với a > b

Output : d = UCLN (a, b) và các số nguyên x và y thỏa mãn ax + by = d

1.3.3 Khái niệm về hàm Euler

Định nghĩa 1.4: Cho n là số nguyên dương, hàm Φ-Euler của n, ký hiệu Φ(n), là số

các số nguyên dương nhỏ hơn hoặc bằng n và nguyên tố cùng nhau với n

Công thức tính tổng quát hàm Φ-Euler như sau: Giả sử n được phân tích thành các thừa

Trang 27

Định nghĩa 1.5: Một trường hữu hạn là một trường F chứa một số hữu hạn các phần

tử Bậc của nhóm F là số các phần tử tồn tại trong F

Định nghĩa 1.6: Cho Fq làmột trường hữu hạn, và một phần tử g Fq, định nghĩa bậc (order) của g là số nguyên dương m nhỏ nhất sao cho : gm  1 (mod q), và ký hiệu là: Ordq(g) = m

Định nghĩa 1.7: Số g được gọi là phần tử sinh của trường hữu hạn Fq, nếu g có bậc

q – 1 ; Nói cách khác : g là phần tử sinh (chính), nếu lũy thừa của g có thể sinh ra tất cả các phần tử khác 0 của Fq Nghĩa là: {gx : 0 ≤ x ≤ q – 2} = Fq

Định lý 1.3: Mỗi trường hữu hạn đều có phần tử sinh Nếu g là một phần tử sinh

của Fq thì gj cũng là phần tử sinh nếu và chỉ nếu gcd(j, q – 1) = 1 Vậy có tổng cộng Φ(q – 1) phần tử sinh khác nhau của Fq* (gcd: greatest common divisor)

1.3.4 Khái niệm về đồng dư thức

Lý thuyết đồng dư là cơ sở để hiểu được các phương pháp, kỹ thuật tính toán trong các thuật toán mã hóa và giải mã của hệ mật mã khóa công khai

Định nghĩa 1.8: Cho các số nguyên tố a,b và n ta nói hai số nguyên a và b đồng dư

với nhau theo modulo n, nếu trong các phép chia a và b cho n có cùng số dư (nghĩa là:

a mod n = b mod n) và được kí hiệu hay a ≡ b (mod n)

Các phát biểu sau đây là tương đương:

- a và b đồng dư với nhau theo mod n (a ≡ b mod n)

- n chia hết a − b, nghĩa là n ước của (a – b), kí hiệu là n|(a-b)

- Tồn tại số nguyên t sao cho a = t* n + b

Một số các tính chất của đồng dư thức:

- Có thể cộng, trừ hoặc nhân từng vế của nhiều đồng dư thức theo cùng một modulo n Cụ thể nếu ai  bi (mod n) với i= 1,2,…,k thì ta có:

a1  a2   ak  b1  b2   bk (mod n) a1 * a2 * * ak  b1 * b2 * * bk (mod n)

- Nếu a * c  b * c (mod n) và USCLN(c, n) = 1 => a ≡ b (mod n)

- Nếu a ≡ b (mod ni) thì a ≡ b (mod n), với n = BSCNN(ni, n2,…, nk)

- Nếu a ≡ b (mod n) và c|n, c > 0 thì ta có a ≡ b (mod c)

Trang 28

Chú ý: Phép cộng trong số học modulo n cũng có phần tử nghịch đảo cộng (hay

số âm) được định nghĩa như sau: với bất kì số x  Zn   y  Zn: (x + y) mod n = 0

Chú ý: Tương tự như phép cộng, phép nhân modulo n cũng có phần tử nghịch đảo

được định nghĩa như sau: cho a  Zn nếu ! x  Zn sao cho:

a * x  1 (mod n) thì x gọi là phần tử nghịch đảo nhân của a mod n, ký hiệu x = a-1

mod n

Ví dụ: 1.4:

2 là phần tử nghịch đảo của 3 mod 5 vì ta có: (3* 2) mod 5 = 1

Các tính chất của các phép toán số học modulo:

- Nghịch đảo của a  Zn trong phép cộng modulo là: (n – a) với a  Zn

(a + (n – a)) mod n = ((n – a) + a) mod n = 0

Trang 29

- Nghịch đảo của a  Zn trong các phép nhân modulo là a-1 với a  Zn

(a * a-1) mod n = (a-1

* a) mod n = 1

- Có tính giao hoán với a, b  Zn ta có:

(a+b) mod n = (b+a) mod n (a * b) mod n = b * a mod n

- Có tính kết hợp với a, b, c  Zn ta có:

[(a+b) * c] mod n = [(a * c) + (b * c)] mod n [a * (b+c)] mod n = [(a * b) + (b * c)] mod n

1.3.5 Khái niệm về số nghịch đảo

Định nghĩa 1.9: Cho aZ n Một số nguyên xZ n gọi là nghịch đảo của a theo mod n nếu a.x ≡ 1mod n Nếu có số x như vậy thì nó là duy nhất và ta nói a là khả nghịch Ký hiệu là a-1 Có thể suy ra rằng a khả nghịch theo mod n khi và chỉ khi gcd (a,n)=1

1.3.6 Định lý phần dư China CRT (Chinese Remainder Theorem)

Nếu các số nguyên n1, n2, …, nk là nguyên tố cùng nhau từng thì hệ các phương trình đồng dư:

Ví dụ 1.5:

Cặp phương trình đồng dư

Trang 30

x ≡ 5 (mod 9)

x ≡ 19 (mod 23) có nghiệm duy nhất x ≡ 203 (mod 207)

Tính chất: Nếu (n1, n2) = 1 thì cặp phương trình đồng dư x ≡ a (mod n1), x ≡ a

(mod n2) có một nghiệm duy nhất x ≡ a (mod n1, n2)

1.3.7 Các thuật toán trong Zn

Cho n là một số nguyên dương Các phần tử của Zn sẽ được biểu thị bởi các số nguyên {0, 1, 2, … n-1}

1.3.8 Thuật toán

Input : aZ n

Output : a-1mod n (nếu tồn tại)

1 Dùng thuật toán Euclide mở rộng để tìm các số nguyên x và y sao cho ax + ny = d trong đó d = (a, n)

2 Nếu d >1 thì a-1mod n không tồn tại Ngược lại return (x) Phép lũy thừa theo modulo có thể được thực hiện có hiệu quả bằng thuật toán nhân

và bình phương có lặp Đây là một thuật toán rất quan trọng trong nhiều thủ tục mật mã Cho biểu diễn nhị phân của a là :

0

2

t

i i

Trang 31

CHƯƠNG 2: MỘT SỐ HỆ MÃ HÓA ĐỐI XỨNG

Nội dung chính của chương 2 trình bày các kiến thức cơ bản nhất về một số hệ mã hóa đối xứng nổi tiếng trên thế giới đã và đang được sử dụng bao gồm cơ chế mã hóa, thuật toán, độ phức tạp thám mã, độ an toàn của hệ mã Đây chính là nội dung chính của luận văn, làm cơ sở cho việc cài đặt chi tiết các thuật toán được đưa ra trong chương 3 Các kiến thức cơ bản được tham khảo trong các tài liệu [5, 6, 7, 8, 9]

2.1 Giới thiệu

Kỹ thuật mật mã đối xứng được đặc trưng bởi việc sử dụng một khóa duy nhất cho

cả quá trình mã hóa và giải mã thông tin Bằng một cách an toàn nào đó, khóa chung này phải được trao đổi thống nhất giữa bên gửi và bên nhận (tức bên mã hóa và bên giải mã), đồng thời được giữ bí mật trong suốt thời gian sử dụng Kỹ thuật mật mã đối xứng còn được gọi là mật mã quy ước (conventional encryption) hoặc mật mã dùng khóa bí mật (secret key encryption) Cấu trúc chung của một hệ thống mật mã hóa quy ước như trình bày ở hình 2.1 trong đó, kênh thông tin dùng để trao đổi khóa bí mật phải là một kênh an toàn Có thể thực hiện việc trao đổi khóa bí mật giữa hai thực thể A và B theo những cách sau đây:

- A chọn ra một khóa bí mật và chuyển trực tiếp cho B (chuyển bằng phương tiện vật lý như ghi lên đĩa, nói trực tiếp, ghi ra giấy, …)

- Một thực thể thứ 3 chọn ra khóa bí mật và thông báo khóa này cho cả A và B (bằng phương tiện vật lý như trên)

- Nếu A và B trước đó đã dùng một khóa nào đó để thông tin với nhau, thì một trong hai thực thể sẽ tiếp tục dùng khóa cũ để gửi thông báo về khóa mới cho thực thể kia

- Nếu A và B có các kết nối an toàn đến một thực thể thứ 3 là C, thì C có thể gửi thông báo về khóa cho cả hai thực thể A và B thông qua kết nối an toàn này

Mã hóa đối xứng dựa chủ yếu trên hai thao tác: thay thế và chuyển vị Thao tác thay thế sẽ thay từng từ mã bởi một từ mã khác theo một quy ước nào đó, và quy ước này chính là khóa của hệ thống mã Ví dụ: thay thế từng ký tự trong một thông điệp bằng một ký tự đứng cách nó 3 vị trí trong bảng chữ cái la tinh, thông điệp “HELLO WORLD”

sẽ được mã hóa thành “KHOOR ZRUOG” Thao tác chuyển vị thực hiện việc thay thế

vị trí của các từ mã trong thông tin gốc theo một quy ước nào đó và quy ước này cũng

Trang 32

trở thành khóa của hệ thống Ví dụ: dịch từng ký tự trong một thống điệp qua phải một

ví trí có xoay vòng, thông điệp “HELLO WORLD” sẽ được mã hóa thành “DHELLO WORL”

Hình 2 1 Mô hình hệ thống mã hóa đối xứng Nguồn thông tin:

- Tập hợp thông điệp của nguồn: Các xâu ký tự X={X1, X2, , XM}

- Thông điệp: xâu ký tự độ dài m: Xi=[xi1, xi2, , xim] với xi∈A, A- bảng ký tự nguồn, thông thường A={0,1}

- Mỗi một thông điệp Xi có một xác suất xuất hiện P(X=Xi)

Khóa mật mã:

- Tập hợp khóa K= {K1, K2, , KL}

- Khóa độ dài l: Ki=[ki1, , kil] kij∈ C, C- bảng ký tự khóa, thông thường C={0,1}

Mã mật:

- Tập hợp thông điệp mã mật Y=[Y1, , Yn]

- Thông điệp mã mật: Yj=[yj1, , yjn] yjp ∈ B, B- bảng ký tự mã mật, thông thường B={0,1}

- Số lượng khóa được dùng trong thuật toán: Hệ thống mã hóa đối xứng, hệ thống

mã hóa không đối xứng

- Phương thức mà văn bản đầu được xử lý: mã hóa khối, mã hóa dòng

Trang 33

2.2 Quá trình mã hóa và giải mã

Quá trình mã hóa: Y=Ek(X)

Quá trình giải mã:

- Bên nhận giải mã thông điệp bằng khóa được phân phối: X=DK(Y)=DK(EK,R(X))

- Phía tấn công: đối phương nhận được thông điệp Y, nhưng không có được khóa K Dựa vào thông điệp Y, đối phương phải khôi phục lại hoặc K hoặc X hoặc cả hai

- Thuật toán mã hóa và giải mã đã biết trước

- Không gian khóa nhỏ: chỉ có 25 khóa

- Khi thám mã bằng phương pháp vét cạn: chỉ cần thử với 25 khóa

- Ngôn ngữ trong bản gốc đã biết trước và dễ dàng nhận biết

2.3.2 Hệ mã mật Hill

Thuật toán mã hóa:

- Mỗi ký tự được gán giá trị số: a=0, b=1, , z=25

- Lựa chọn m ký tự liên tiếp của văn bản gốc

- Thay thế các ký tự đã lựa chọn bằng m ký tự mã mật, được tính bằng m phương trình tuyến tính

- Hệ phương trình mã hóa:

C = K*P mod 26

K – là ma trận khóa

Ngày đăng: 06/10/2017, 16:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Hà Huy Khoái, Nhập môn số học và thuật toán, Nhà xuất bản khoa học, 1997 [2] Phạm Huy Điển - Hà Huy Khoái, Mã hóa thông tin - Cơ sở toán học và ứng dụng, Viện Toán học, 2004 Sách, tạp chí
Tiêu đề: Nhập môn số học và thuật toán, "Nhà xuất bản khoa học, 1997 [2] Phạm Huy Điển - Hà Huy Khoái, "Mã hóa thông tin - Cơ sở toán học và ứng dụng
Nhà XB: Nhà xuất bản khoa học
[3] Nguyễn Xuân Dũng, Bảo mật thông tin mô hình và ứng dụng, NXB Thống kê, 2012 Sách, tạp chí
Tiêu đề: Bảo mật thông tin mô hình và ứng dụng
Nhà XB: NXB Thống kê
[4] Phan Đình Diệu, Giáo trình lý thuyết mật mã và an toàn thông tin, Nhà xuất bản Đại học Quốc gia Hà Nội, 1999 Sách, tạp chí
Tiêu đề: Giáo trình lý thuyết mật mã và an toàn thông tin
Nhà XB: Nhà xuất bản Đại học Quốc gia Hà Nội
[5] Vũ Vinh Quang, Giáo trình lý thuyết thông tin, Nhà xuất bản Khoa học và Kỹ thuật, năm 2010.Tiếng Anh Sách, tạp chí
Tiêu đề: Giáo trình lý thuyết thông tin, "Nhà xuất bản Khoa học và Kỹ thuật, năm 2010
Nhà XB: Nhà xuất bản Khoa học và Kỹ thuật
[6] William Stallings, Cryptography and Network Security: Principles and Practice, Fourth Edition, Prentice Hall, 2006 Sách, tạp chí
Tiêu đề: Cryptography and Network Security
[7] Cyber Vote, Report on Review of Cryptographic Protocols and Security, Techniques for Electronic Voting, 2002 Sách, tạp chí
Tiêu đề: Report on Review of Cryptographic Protocols and Security
[8] Fagen Li, Yupu Hu, and Shuanggen Liu, Efficient and provably secure multi-recipient signcryption from bilinear pairings, Cryptology ePrint Archive, Report 2006/238 – 250 Sách, tạp chí
Tiêu đề: Efficient and provably secure multi-recipient signcryption from bilinear pairings
[9] Josh Cohen Benaloh, Secret Sharing Homomorphisms: Keeping Shares of a Secret Secret (Extended Abstract) Khác

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

TÀI LIỆU LIÊN QUAN

w