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

Nghiên cứu mở rộng phương pháp mã hóa số học ứng dụng trong bảo mật dữ liệu

65 748 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 65
Dung lượng 1,42 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN THANH BÌNH NGHIÊN CỨU MỞ RỘNG PHƯƠNG PHÁP MÃ HÓA SỐ HỌC ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU Ngành: Công nghệ thông tin Chuyên ngành:

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THANH BÌNH

NGHIÊN CỨU MỞ RỘNG PHƯƠNG PHÁP MÃ HÓA SỐ HỌC ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU

Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin

Mã số: 60 48 05

LUẬN VĂN THẠC SĨ

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS LÊ HỒNG LAN

Hà Nội – 2010

Trang 2

MỤC LỤC

LỜI CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined

MỤC LỤC 2

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

DANH MỤC CÁC BẢNG 5

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

Chương 1 GIỚI THIỆU CHUNG VỀ MÃ HÓA THÔNG TIN 8

1.1 Một số thuật ngữ và khái niệm 8

1.1.1 Một số thuật ngữ 8

1.1.2 Vì sao cần mã hóa 10

1.2 Vài nét về lịch sử 10

1.3 Khái niệm hệ mã hóa 14

1.4 Phân loại hệ mã hóa 15

1.4.1 Hệ mã hóa khóa đối xứng 15

1.4.1.1 Đặc điểm của hệ mã hóa khóa đối xứng 16

1.4.1.2 Nơi sử dụng hệ mã hóa khóa đối xứng 16

1.4.2 Hệ mã hóa khóa công khai 16

1.4.2.1 Đặc điểm của Hệ mã hóa khóa công khai 17

1.4.2.2 Nơi sử dụng Hệ mã hóa khóa đối xứng 17

1.5 Một số hệ mã hóa khóa đối xứng và mã hóa khóa công khai 18

1.5.1 Hệ mã hóa đối xứng cổ điển 18

1.5.1.1 Hệ mã hóa dịch chuyển 19

1.5.1.2 Hệ mã hóa thay thế (Hoán vị toàn cục) 19

1.5.1.3 Hệ mã Affine 20

1.5.2 Hệ mã hóa khóa công khai 21

1.5.2.1 Sơ đồ chung hệ mã hóa khóa công khai 21

1.5.2.2 Hệ mã hóa RSA (Rivest - Shamir - Adleman) 21

1.6 Các bài toán về an toàn thông tin 22

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

1.7.1 Vấn đề thám mã 23

1.7.2 Tính an toàn của một hệ mật mã 24

Chương 2 CƠ SỞ TOÁN HỌC CỦA PHƯƠNG PHÁP MÃ HÓA SỐ HỌC 26

2.1 Phép chiếu một điểm lên đoạn thẳng 26

2.1.1 Phép chiếu thu nhỏ đồng dạng 26

2.1.2 Phép biến đổi ngược 26

2.2 Phép chiếu một đoạn thẳng lên một đoạn thẳng 27

2.2.1 Phép chiếu thu nhỏ đồng dạng 27

2.2.1 Phép biến đổi ngược 27

2.2.3 Định lý 1 27

2.3 Một số tính chất của phép chiếu 29

2.3.1 Tính chất kết hợp 29

2.3.2 Tính chất chứa trong 30

2.3.3 Tính chất chứa trong của phép chiếu ngược 30

Chương 3 CẢI TIẾN PHƯƠNG PHÁP MÃ HÓA SỐ HỌC 31

3.1 Giới thiệu phương pháp mã hóa số học 31

3.2 Thuật toán mã hóa số học truyền thống 32

3.2.1 Thuật toán mã hóa 32

3.2.1.1 Thống kê tần suất và xác định miền phân bố của các ký tự trong bản rõ 32

Trang 3

3.2.1.2 Ý tưởng của thuật toán mã hóa 33

3.2.1.3 Thuật toán mã hóa 33

3.2.2 Thuật toán giải mã 34

3.2.2.1 Hàm g(x) trên [0,D) 34

3.2.2.2 Ý tưởng của thuật toán giải mã 34

3.2.2.3 Thuật toán giải mã 35

3.2.2.4 Chứng minh tính đúng đắn của thuật toán 35

3.2.2.5 Nhận xét về thuật toán giải mã 36

3.2.3 Ví dụ 37

3.3 Thuật toán mã hóa số học cải tiến 39

3.3.1 Thuật toán mã hóa cải tiến 39

3.3.2 Thuật toán giải mã cải tiến 41

3.4 So sánh độ phức tạp 42

3.4.1 Thuật toán mã hóa số học truyền thống 42

3.4.1.1 Thuật toán mã hóa 42

3.4.1.2 Thuật toán giải mã 42

3.4.2 Thuật toán mã hóa số học cải tiến 42

3.4.2.1 Thuật toán mã hóa 42

3.4.2.2 Thuật toán giải mã 42

3.4.3 So sánh độ phức tạp của 2 phương pháp 42

3.6 Một thuật toán cải tiến khác 43

3.6.1 Xác định miền phân bố 43

3.6.2 Thuật toán mã hóa cải tiến 44

3.6.3 Thuật toán giải mã cải tiến 45

3.7 Nghiên cứu tính bảo mật của phương pháp mã hóa số học 45

Chương 4 CÀI ĐẶT VÀ THỬ NGHIỆM 53

4.1 Giới thiệu thư viện xử lý số nguyên lớn 53

4.1.1 Cấu trúc của các lớp 53

4.1.2 Bảng luỹ thừa 2 (bảng h) 54

4.2 Thuật toán chuyển đổi 55

4.2.1 Thuật toán từ hệ thập phân sang hệ nhị phân 55

4.2.2 Thuật toán từ hệ nhị phân sang hệ thập phân 56

4.3 Thuât toán chia (div, mod) 56

4.4 Thuật toán phân rã nhị phân tính luỹ thừa mod 57

4.5 Phương pháp tính logarit 59

4.6 Phương pháp tính căn bậc hai 60

4.7 Kết quả thử nghiệm 61

KẾT LUẬN 63

TÀI LIỆU THAM KHẢO 64

Trang 4

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

1 DES Data Encryption Standard

2 PKC Public Key Cryptosystem

3 RAC Randomized Arithmetic Coding

4 RSA Rivest - Shamir – Adleman

5 SKC Secret Key Ctyptosystem

6 UCLN Ƣớc chung lớn nhất

Trang 5

DANH MỤC CÁC BẢNG

Bảng 3.1 Bảng tần suất của các ký tự 32

Bảng 3.2 Bảng phân bố với D = 1000 và dựa theo tần suất 32

Bảng 3.3 Miền phân bố của các ký tự với bản rõ CABAB 38

Bảng 3.4 Miền phân bố của các ký tự với bản rõ BAABB 46

Bảng 3.5 Miền phân bố với bản rõ CABAB 49

Bảng 4.1 Dùng để lưu trữ giá trị thập phân của 2i 54

Bảng 4.2 Kết quả thử nghiệm 62

DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mô tả phép mã chuyển vị 11

Hình 1.2 Bảng đĩa chữ cái 11

Hình 1.3 Minh họa mã khối 12

Hình 1.4 Hệ mã tích hợp 13

Hình 1.5 Ví dụ hệ mã tích hợp 13

Hình 2.1 Phép chiếu 1 điểm lên 1 đoạn thẳng 26

Hình 2.2 Phép chiếu 1 đoạn thẳng lên 1 đoạn thẳng 27

Hình 2.3 Chiếu B1B2 lên A1A2 28

Hình 2.4 Chiếu C1C2 lên X1X2 28

Hình 2.5 Chiếu Z1Z2 lên A1A2 28

Hình 3.1 Minh họa cách phân tách miền phân bố 47

Hình 3.2 Sơ đồ khối hệ thống kết hợp hoán vị và mã hóa số học phân tách khoảng 47

Trang 6

MỞ ĐẦU

Mã hóa là một trong các phương pháp 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, nhưng tất cả các phương pháp đó chỉ mang tính nghệ thuật hơn là khoa học Ban đầu, mã hóa được sử dụng phổ biến cho quân đội, qua nhiều cuộc chiến tranh, vai trò của mã hóa ngày càng quan trọng và mang lại nhiều thành quả không nhỏ như các hệ mã cổ điển Caesar, Playfair…chúng đều là nền tảng cho mật mã học ngày nay

Khi toán học được áp dụng cho mã hóa thì lịch sử của mã hóa đã sang trang mới Việc ra đời các hệ mã hóa đối xứng không làm mất đi vai trò của các hệ mã cổ điển mà còn bổ sung cho ngành mật mã nhiều phương pháp mã hóa mới

Từ năm 1976, khi hệ mã phi đối xứng ra đời, nhiều khái niệm mới gắn với mật mã học xuất hiện: chữ ký số, hàm băm, mã đại diện, chứng chỉ số vv Mật mã học không chỉ

áp dụng cho quân sự mà còn cho các lĩnh vực kinh tế xã hội khác

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í

Trong lĩnh vực bảo mật dữ liệu, phương pháp mã hóa số học được xem là một trong những phương pháp hay Tuy nhiên, việc ứng dụng phương pháp này vào thực tế gặp phải những khó khăn nhất định, bởi tốc độ thực hiện của thuật toán mã hóa và giải mã chậm, đồng thời độ bảo mật của phương pháp chưa cao Luận văn này tập trung đi sâu

vào nghiên cứu phương pháp mã hóa số học và các vấn đề liên quan Luận văn đưa ra một

số cải tiến trong thuật toán mã hóa và giải mã nhằm tăng tốc độ thực hiện và xây dựng mô hình mã hóa dựa trên ý tưởng của lược đồ RAC (do Marco Grangetto đề xuất) để nâng cao độ bảo mật của phương pháp

Ngoài phần mở đầu và kết luận, kết cấu của luận văn gồm 4 chương:

 Chương 1 “Giới thiệu chung về mã hóa thông tin” trình bày những khái

niệm cơ bản về mã hóa thông tin

Trang 7

 Chương 2 “Cơ sở toán học của phương pháp mã hóa số học” trình bày cơ

sở toán học cho phương pháp mã hóa số học

 Chương 3 “Cải tiến phương pháp mã hóa số học” trình bày lịch sử ra đời

của phương pháp, thuật toán mã hóa số học truyền thống Đặc biệt trong chương này đề xuất một số cải tiến nhằm tăng tốc độ thực hiện của thuật toán bằng việc thay thế các phép nhân, chia bởi các phép dịch chuyển bít và đưa ra một số nhận xét về độ an toàn của phương pháp Dựa vào mô hình RAC của Grangetto [15] đưa ra một mô hình cải tiến nhằm nâng cao tính bảo mật của phương pháp mã hóa số học

 Chương 4 “Cài đặt và thử nghiệm” giới thiệu thư viện xử lý số nguyên lớn,

một số kết quả thử nghiệm trên máy của chương trình mã hóa số học truyền thống và cải tiến

Trang 8

Chương 1 GIỚI THIỆU CHUNG VỀ MÃ HÓA THÔNG TIN

Tóm tắt chương: Trong chương này luận văn giới thiệu chung về mã hóa thông tin, lịch

sử mật mã, các hệ mã, các bài toàn an toàn thông tin và bài toán thám mã Đưa ra được một số khái niệm cơ bản nhất của mã hóa như: bản rõ, bản mã, hệ mã hóa thám mã, khóa

mã, mã hóa khóa công khai, mã hóa khóa đối xứng, mã theo khối, mã theo dòng.v.v… Các nội dung của chương này được tổng hợp từ các tài liệu [5]-[9]

1.1 Một số thuật ngữ và khái niệm

1.1.1 Một số thuật ngữ

Văn bản (plaintext) là một thông báo gốc cần chuyển, được ghi bằng hình ảnh, âm

thanh, chữ số, chữ viết, Về sau, khi đưa ra các ví dụ, ta thường xem các văn bản được viết bằng chữ viết, hoặc bằng chữ số Tuy nhiên, ngày nay mọi tín hiệu (âm thanh, hình

ảnh ) đều có thể được số hóa (thành các xâu ký tự số), cho nên việc nghiên cứu trên các

văn bản số không hạn chế các ứng dụng đa dạng của nó

Mã hóa (encrytion) là việc "ngụy trang" văn bản (thông tin nói chung) sang một

dạng khác để cho những người "ngoài cuộc" không thể đọc được, phục vụ cho nhu cầu trao đổi thông tin, dữ liệu và các giao dịch tài chính, thương mại, Quá trình "ngụy trang"

văn bản gọi là lập mã còn quá trình "khôi phục" lại văn bản nguồn (từ văn bản ngụy trang) gọi là giải mã Nguyên tắc chung của mã hóa là việc giải mã phải rất dễ dàng với

"người trong cuộc", nhưng rất khó khăn (thậm chí là không thực hiện được) đối với

"người ngoài cuộc" Văn bản gốc (trước khi mã hóa) thường được ký hiệu là PT (Plain Text), hay đơn giản là P Văn bản mã (đã được cải trang) thường được ký hiệu là CT

(Ciphertext), hay đơn giản là C

Hệ mã (Cryptosystem) là một phương pháp ngụy trang văn bản Nghệ thuật tạo ra

và sử dụng các hệ mã là thuật mã hóa hay mật mã học (Cryptography)

Phân tích mã (Cryptanalysis), hay thám mã, là nghệ thuật phá các hệ mã (nhìn

xuyên qua các phương pháp ngụy trang)

Trang 9

Công nghệ mã (Cryptology) là việc nghiên cứu tổng hợp cả cryptography và cryptanalysis

Lập mã (encrypt) là việc biến văn bản nguồn thành văn bản mã

Giải mã (decrypt) là việc đưa văn bản đã mã hóa trở về dạng văn bản nguồn

Định mã (encode/decode) là việc định ra phép tương ứng giữa các chữ và số (việc

này không bao giờ được xem là bí mật, vì máy tính ngày nay dễ dàng tìm ra phép tương ứng này trong một thời gian ngắn)

Mã dòng (stream cipher) là việc tiến hành mã hóa liên tục trên từng ký tự (hay

từng bit)

Mã khối (block cipher) là việc tiến hành mã hóa trên từng khối văn bản (khi khối

văn bản là một cặp 2 ký tự thì gọi là digraph, còn khi nó là bộ 3 chữ thì gọi là trigraph)

Phép mã chuyển vị (transposition cipher) là việc tráo đổi vị trí giữa các ký tự (các

bit) trong văn bản

Phép mã thay thế (substitution) là việc thay thế một ký tự này bằng một ký tự khác

(mà không thay đổi vị trí)

Phép mã tích hợp (product cipher) là việc tiến hành xen kẽ 2 phép mã chuyển vị và thay thế

Chìa khóa mã (cipher key) là bí quyết lập mã và giải mã Nếu như quy trình mã

hóa được xem như một hàm y = f(x,k), trong đó x là đầu vào (văn bản nguồn), y là đầu ra (văn bản mã), f là phương pháp (hay thuật toán) mã hóa, còn k là một tham số điều khiển, thì bí quyết trước đây thường bao gồm cả phương pháp f, và tham số k Nhu cầu của thực tiễn hiện nay đã khiến công nghệ mã hóa hiện đại phải thay đổi quan điểm này Phương

pháp f là cái thường do không chỉ một người nắm, nên không thể giữ được bí mật lâu, và

do đó phải được xem là công khai Tham số điều khiển k, có tác dụng làm thay đổi kết quả

mã hóa (tùy thuộc vào giá trị của nó), được xem là chìa khóa mã Thông thường, nó là một xâu bit (hay một con số nào đó) mà người ta có thể giữ riêng cho mình

Trang 10

Hệ mã bí mật (secret key cryptosystem - SKC) hay hệ mã đối xứng (symmetric

cryptosystem) là hệ mã mà trong đó việc lập mã và giải mã cùng sử dụng chung một chìa

khóa mã (bí mật)

Hệ mã công khai (public key cryptosystem - PKC) hay hệ mã phi đối xứng

(asymmetric cryptosystem) là hệ mã mà trong đó việc lập mã và giải mã sử dụng 2 chìa

khóa mã riêng biệt, từ chìa này không thể tìm ra chìa kia một cách dễ dàng, chìa dùng để

lập mã thường được thông báo công khai, còn chìa dành cho việc giải mã phải luôn giữ bí

mật, thường được gọi là chìa khóa riêng

1.1.2 Vì sao cần mã hóa

Đó là một câu hỏi dễ trả lời, bởi vì trong mọi hoạt động của con người, nhu cầu trao đổi thông tin mật giữa những thành viên thuộc một nhóm nào đó với nhau là hết sức cần thiết Tuy nhiên, để thực sự thấy rõ yêu cầu cấp bách của mã hóa trong thời đại ngày nay, cần nhấn mạnh rằng với các phương tiện kỹ thuật hiện đại việc giữ giữ gìn bí mật ngày càng trở nên hết sức khó khăn Các hình ảnh trên mặt đất, các cuộc đàm thoại hữu tuyến và vô tuyến, các thông tin được truyền qua mạng internet, tất cả đều có thể dễ dàng thu được nhờ các thiết bị điện tử trên mặt đất hoặc từ vệ tinh Vì thế, phương pháp thông dụng nhất để giữ gìn bí mật thông tin là mã hóa chúng bằng một hệ mã nào đó trước khi truyền đi

Dĩ nhiên, việc mã hóa thông tin trước khi truyền đi và việc giải mã các thông tin nhận được sẽ tạo nên một số khó khăn: giảm tốc độ truyền tin, tăng chi phí Một hệ mã

lý tưởng là một hệ mã bảo đảm được các yêu câu: thời gian mã hóa và giải mã nhanh, độ bảo mật cao (gây khó khăn tối đa cho người thám mã) Các yêu cầu đó luôn mâu thuẫn nhau, và người sử dụng cần hiểu rõ công nghệ mã hóa để có thể lựa chọn hệ mã thích hợp cho từng việc và mục đích

1.2 Vài nét về lịch sử

Người Hi Lạp đã sử dụng phép mã chuyển vị từ 400 năm trước công nguyên

Người ta dùng một dải băng dài và mảnh quấn quanh một khối hình trụ tròn xoay rồi viết chữ lên đó theo cách thức thông thường (từ trái sang phải và từ trên xuống dưới) Mẩu tin

Trang 11

được chuyển đi dưới dạng dải băng và chỉ có thể đọc ra được khi biết được bán kính của thiết diện khối trụ (và quấn lại dải băng quanh khối trụ như khi đã viết lên - hình 1.1)

Hoàng đế Caesar đã từng sử dụng phép mã thay thế trong quân sự, trong đó mỗi ký

tự được thay thế bởi ký tự đứng sau nó 3 vị trí trong bảng chữ cái alphabet, nghĩa là chữ

A được thay thế bởi chữ D, chữ B được thay bởi chữ E, Trong thực tế, việc triển khai một hệ mã như vậy là khá đơn giản (và cũng rất thuận tiện cho việc sử dụng), với việc dùng hai chiếc đĩa đồng tâm có bán kính khác nhau và có các bảng chữ cái alphabet rải đều trên mỗi vành đĩa (hình 1.2)

Hình 1.2 Bảng đĩa chữ cái

N G A Y M A I

T I E N V E

P H I A T A Y Hình 1.1 Mô tả phép mã chuyển vị

Trang 12

Mã khối được xem là xuất hiện vào những năm đầu thế kỷ XX, với sự ra đời của

hệ mã British Playfair vào năm 1910, trong đó mỗi khối là một cặp 2 chữ (digraph) Phép

mã ở đây là thay thế theo chìa Người ta viết 26 chữ cái (của tiếng Anh) vào một bảng

hình vuông (5 cột, 5 dòng), trong đó 2 chữ I và J được viết vào cùng một chỗ Hai dòng

đầu tiên dành cho chìa khóa (gồm 10 ký tự không trùng lặp), 3 dòng dưới viết 16 chữ cái còn lại (không có trong chìa khóa) theo thứ tự thông thường (từ trái sang phải và từ trên

xuống dưới) Thí dụ, với chìa khóa là PALMERSTON thì bảng được xếp như sau:

Muốn mã hóa cặp 2 chữ trên cùng một dòng thì thay thế mỗi chữ bằng chữ kế tiếp bên phải nó trên cùng dòng đó (nếu là chữ cuối dòng thì thay bằng chữ đầu dòng) Thí dụ, cặp chữ SO sẽ được mã hóa thành TN, còn cặp CG sẽ biến thành cặp DB

Muốn mã hóa cặp 2 chữ nằm trên cùng một cột, ta thay mỗi chữ bằng chữ ngay bên dưới nó (nếu chữ nằm ở đáy cột thì được thay bằng chữ ở đỉnh cột) Thí dụ, SI sẽ biến thành CW Các chữ đúp sẽ được tách ra bằng chữ X trước khi cho mã hóa, thí dụ chữ BALLOON sẽ được xử lý thành BALXLOXON

Hệ mã tích hợp (product cipher) được sử dụng sớm nhất là của quân đội Đức trong

Đại chiến Thế giới lần thứ I, mang tên là ADFGVX Cho trước một bảng như hình 1.4

A D F G V X

A K Z W R 1 F

D 9 B 6 C L 5 Hình 1.3 Minh họa mã khối

Trang 13

F Q 7 J P G X

G E V Y 3 A N

V 8 O D H 0 2

X U 4 I S T M

Phần thay thế cho phép thay mỗi ký tự bằng một cặp 2 ký tự ứng với "tung độ" và

"hoành độ" của chữ đó trong bảng Thí dụ chữ P sẽ biến thành cặp FG, chữ R biến thành

AG, và PRODUCTCIPHERS sẽ biến thành

FGAGVVDVFXADGXVDGXFFGVGGAAGXG

Phần chuyển vị được tiến hành tiếp theo sau và phụ thuộc vào chìa (với các chữ

không trùng lặp), thí dụ là DEUTSCH Hãy đánh số các chữ trong chìa theo thứ tự như

trong bảng chữ cái alphabet (thí dụ: chữ C sẽ được đánh số 1, chữ D sẽ được đánh số 2, ) Hãy đặt kết quả "mã hóa nửa vời" thu được ở trên theo từng dòng (nằm dưới chìa, nghĩa là

Trang 14

thay thế lại không có chìa điều khiển Chính vì vậy, một hệ mã tích hợp khác, phức tạp

hơn, đã được sử dụng trong Thế chiến thứ II, đó là ENIGMA

Tuy nhiên, từ những năm cuối của thập kỷ 60, mối đe dọa về vấn đề "an toàn máy tính" đã trở thành hiện thực Người ta cần đến các chương trình mã hóa mạnh hơn để chống lại khả năng phá mã của các siêu máy tính với tốc độ ngày càng lớn Vấn đề này đã được quan tâm nghiên cứu tích cực trong các năm 1968-1975 và được đánh dấu bằng sự

ra đời của hệ mã Lucifer (1974) và sau đó được cải tiến thành hệ mã dữ liệu tiêu chuẩn DES (1975), một hệ mã khối đối xứng với chìa khóa dài 56 bits, kết hợp luân phiên 16 phép thay thế với 15 phép hoán vị Tiếp sau đó, sự ra đời của hệ mã hóa với kháo công

khai, vào cuối những năm 70 của thế kỷ vừa qua, đã khẳng định vai trò then chốt của các

phương pháp Toán học trong lĩnh vực mã hóa hiện đại

1.3 Khái niệm hệ mã hóa

Để bảo đảm an toàn thông tin lưu trữ trong máy tính (giữ gìn thông tin cố định) hay bảo đảm an toàn thông tin trên đường truyền tin (ví dụ trên mạng máy tính), người ta phải “Che Giấu” các thông tin này

“Che” thông tin (dữ liệu) hay “Mã hóa” thông tin là thay đổi hình dạng thông tin gốc, và người khác “khó” nhận ra

Nói cách khác “Mã hóa” thông tin là “che” đi “Ý nghĩa” của thông tin, và người khác “khó” hiểu được (“khó” đọc được) thông tin đã mã hoá

“Giấu” thông tin (dữ liệu) là cất giấu thông tin trong bản tin khác, và người khác cũng “khó” nhận ra

Việc mã hoá phải theo quy tắc nhất định, quy tắc đó gọi là Hệ mã hóa

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

Trang 15

Với khóa lập mã ke  K, có hàm lập mã eke  E, eke: P C

Với khóa giải mã kd  K, có hàm giải mã dkd  D, dkd: C P

sao cho dkd (eke (T)) = T,  T  P

Ở đây T được gọi là bản rõ, eke (T) được gọi là bản mã

Người gửi G   eke(T)   Người nhận N

(có khóa lập mã ke) (có khóa giải mã kd)

1.4 Phân loại hệ mã hóa

Hiện có hai loại mã hóa chính: mã hóa khóa đối xứng và mã hóa khoá công khai

Hệ mã hóa khóa đối xứng có khóa lập mã và khóa giải mã “giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia Vì vậy phải giữ bí mật cả 2 khóa

Hệ mã hóa khóa công khai có khóa lập mã khác khóa giải mã (ke  kd), biết được khóa này cũng “khó” tính được khóa kia Vì vậy chỉ cần bí mật khóa giải mã, còn công khai khóa lập mã

1.4.1 Hệ mã hóa khóa đối xứng

Mã hóa khóa đối xứng là Hệ mã hóa mà biết được khóa lập mã thì có thể "dễ" tính được khóa giải mã và ngược lại Đặc biệt một số Hệ mã hóa có khóa lập mã và khóa giải

mã trùng nhau (ke = kd), như Hệ mã hóa "dịch chuyển" hay DES (Data Encryption Standard)

Hệ mã hóa khóa đối xứng còn có tên gọi là Hệ mã hóa khoá bí mật hay khóa riêng,

vì phải giữ bí mật cả 2 khóa Trước khi dùng Hệ mã hóa khóa đối xứng, người gửi và

Trang 16

người nhận phải thoả thuận thuật toán mã hóa và một khoá chung (lập mã hay giải mã), khoá này phải được giữ bí mật Độ an toàn của Hệ mã hóa loại này phụ thuộc vào khoá

1.4.1.1 Đặc điểm của hệ mã hóa khóa đối xứng

- Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp Người gửi và người nhận phải luôn thống nhất với nhau về khóa Việc thay đổi khóa là rất khó

và dễ bị lộ Khóa chung phải được gửi cho nhau trên kênh an toàn Mặt khác khi hai người (lập mã, giải mã) cùng biết "chung" một bí mật, thì càng khó giữ bí mật

1.4.1.2 Nơi sử dụng hệ mã hóa khóa đối xứng

Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khoá chung

có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ Hệ mã hóa khóa đối xứng thường dùng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn Hệ mã hóa khóa công khai

1.4.2 Hệ mã hóa khóa công khai

Hệ mã hóa khóa phi đối xứng là Hệ mã hóa có khóa lập mã và khóa giải mã khác nhau (ke ≠ kd), biết được khóa này cũng "khó" tính được khóa kia Hệ mã hóa này còn được gọi là Hệ mã hóa khóa công khai vì: khóa lập mã cho công khai (gọi là khóa công khai - public key), khóa giải mã giữ bí mật còn gọi là khóa riêng (private key) hay khóa bí mật Một người bất kỳ có thể dùng khóa công khai để mã hóa bản tin, nhưng chỉ người nào có đúng khóa giải mã thì mới có khả năng đọc được bản rõ Hệ mã hóa khóa công khai hay Hệ mã hóa phi đối xứng do Diffie và Hellman phát minh vào những năm 1970

Trang 17

1.4.2.1 Đặc điểm của Hệ mã hóa khóa công khai

- Người mã hóa dùng khóa công khai, người giải mã giữ khóa bí mật Khả năng lộ khóa bí mật khó hơn vì chỉ có một người giữ gìn Nếu thám mã biết khóa công khai, cố gắng tìm khóa bí mật, thì chúng phải đương đầu với bài toán "khó", số phép thử là vô cùng lớn, không khả thi

Hạn chế: Tốc độ mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng

1.4.2.2 Nơi sử dụng Hệ mã hóa khóa đối xứng

Hệ mã hóa khóa công khai thường được sử dụng chủ yếu trên các mạng công khai như internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn Đặc trưng nổi bật của hệ mã hóa khóa công khai là khóa công khai và bản mã đều có thể gửi đi trên một kênh truyền tin không an toàn Có biết cả khóa công khai và bản mã thì thám mã cũng không dễ khám phá được bản rõ Nhưng vì có tốc độ mã hóa và giải mã chậm, nên hệ mã hóa khóa công khai chỉ dùng để mã hóa những bản tin ngắn, ví dụ như mã hóa khóa bí mật gửi đi Hệ mã hóa khóa công khai thường được sử dụng cho cặp người dùng thỏa thuận khóa bí mật của Hệ mã hóa khóa riêng

Trang 18

1.5 Một số hệ mã hóa khóa đối xứng và mã hóa khóa công

khai

1.5.1 Hệ mã hóa đối xứng cổ điển

Khái niệm: Hệ mã hóa đối xứng đã đƣợc dùng từ rất sớm, nên còn gọi là Hệ mã

hóa đối xứng - cổ điển (gọi ngắn gọn là Hệ mã hóa đối xứng cổ điển) Bản mã và bản rõ

Mã hóa cổ điển gồm nhiều hệ, ví dụ:

Hệ mã hóa dịch chuyển: Khóa có 1 “chìa” (Thể hiện bằng 1 giá trị)

Hệ mã Affine: Khóa có 2 “chìa” (Thể hiện bằng 2 giá trị)

Hệ mã hóa thay thế: Khóa có 26 “chìa” (Thể hiện bằng 26 giá trị)

Hệ mã hóa VIGENERE: Khóa có m “chìa” (Thể hiện bằng m giá trị)

Trang 19

Hệ mã hóa HILL: Khóa có ma trận “chìa” (chùm chìa khóa)

1.5.1.1 Hệ mã hóa dịch chuyển

Sơ đồ:

Đặt P = C = K = Z26 Bản mã y và bản rõ x  Z26 Với khóa k  K, ta định nghĩa:

Hàm mã hóa: y = ek(x) = (x+k) mod 26 Hàm giải mã : x = dk(y) = (y-k) mod 26

Ví dụ:

Bản rõ chữ: DAIHOCCONGNGHE Chọn khóa k = 3

Bản rõ số: 3 0 8 7 14 2 2 14 13 6 7 4 Với phép mã hóa y = ek(x) = (x+k) mod 26 = (x+3) mod 26, ta nhận đƣợc:

Bản mã số: 6 3 11 10 17 5 5 17 16 9 10 7 Bản mã chữ: GDLKRFFRQJKH

Giải mã: từ bản mã chữ ở trên ta chuyển về bản mã số và với phép giải mã x =

dk(y) = (y-k) mod 26 = (y-3) mod 26, ta nhận đƣợc lại bản rõ số, sau đó chuyển bản rõ số trở về bản rõ chữ ban đầu

Độ an toàn: Độ an toàn của mã dịch chuyển rất thấp Tập khóa K chỉ có 26 khóa nên việc

phá khóa có thể thực hiện dễ dàng bằng cách thử kiểm tra từng khóa k = 1,2,…,26

1.5.1.2 Hệ mã hóa thay thế (Hoán vị toàn cục)

Sơ đồ:

Đặt P = C = Z26 Bản mã y và bản rõ x  Z26 Tập khóa K là tập mọi hoán vị trên Z26

Với khóa k = п K, tức là một hoán vị trên Z26 ta định nghĩa Hàm mã hóa: y = eп(x) = п(x)

Hàm giải mã : x = dп(y) = п-1(y)

Ví dụ:

Bản rõ chữ: DAIHOCCONGNGHE Chọn khóa k = п là hoán vị sau:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

X N Y A H P O G Z Q W B T S F L R C V M U E K J D I

Trang 20

Mã hóa theo công thức y = eп(x) = п(x) ta được bản mã chữ Bản mã chữ: AXZGFYYFSOSOGH

Giải mã theo công thức x = dп(y) = п-1

(y) ta nhận lại được bản rõ ban đầu

Độ an toàn: Hệ mã hóa thay thế có số khóa có thể bằng số các phép hoán vị trên tập Z26, tức là 26! khóa, đó là một số rất lớn Do đó, việc duyệt lần lượt tất cả các khóa có thể để thám mã

là không thực tế, ngay cả dùng máy tính Tuy vậy, có những phương pháp thám mã khác hiệu quả hơn, làm cho hệ mã hóa thay thế không thể được xem là an toàn

1.5.1.3 Hệ mã Affine

Sơ đồ:

Đặt P = C = Z26 Bản mã y và bản rõ x  Z26 Tập khóa K = {(a,b) với a,b  Z26, UCLN(a,26) = 1}

Với khóa k = (a,b)  K ta định nghĩa:

Hàm mã hóa: y = ek(x) = (ax+b) mod 26 Hàm giải mã : x = dk(y) = a-1(y-b) mod 26

Có điều kiện UCLN(a,26) =1 là để bảo đảm có phần tử nghịch đảo a-1

mod 26 của a, làm cho thuật toán giải mã dk luôn thực hiện được Có tất cả (26) = 12 số a  Z26 nguyên tố với 26,

đó là các số: 1,3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 và các số nghịch đảo theo mod26 tương ứng của chúng là: 1, 9, 21, 15, 3, 19, 7, 23, 11, 5, 17, 25

Ví dụ:

Bản rõ chữ: DAIHOCCONGNGHE Chọn khóa k = (a,b) = (3,6)

Bản rõ số: x = 3 0 8 7 14 2 2 14 13 6 7 4

Mã hóa theo công thức y = ek(x) = (ax + b) mod 26 = (3x+6) mod 26 Bản mã số: 14 6 4 1 22 12 12 22 19 24 1 18

Bản mã chữ: OGEBWMMWTYBS Giải mã theo công thức: x = dk(y) = a-1(y-b) mod 26

= 3-1(y-6) mod 26 = 9(y-6) mod 26

Độ an toàn: Vì có 12 số thuộc Z26 nguyên tố với 26, nên số các khóa có thể có (do đó, số các hệ mật mã affine) bằng 12×26 = 312, một con số không lớn lắm nếu ta sử dụng máy tính để thực hiện việc thám mã bằng cách duyệt lần lượt tất cả các khóa có thể, như vậy, mã affine cũng không được xem là mã an toàn

Trang 21

1.5.2 Hệ mã hóa khóa công khai

1.5.2.1 Sơ đồ chung hệ mã hóa khóa công khai

y = E(K', x) - phép biến đổi x P thành y C, dùng để tạo mã

x = D(K", y) - phép biến đổi y C thành x P, dùng để giải mã

1.5.2.2 Hệ mã hóa RSA (Rivest - Shamir - Adleman)

a Ý tưởng và dữ liệu dùng trong hệ mật mã RSA

Ý tưởng dựa vào phép biến đổi thuận và ngược như sau:

y = xe (mod n)

x = yd (mod n)

d = e-1 (mod (n))

Dữ liệu gốc:

p, q: hai số nguyên tố lẻ khác nhau

Dữ liệu suy diễn: Từ p và q lần lượt tính

Mã hoá (lập mã):

y = E(K', x) = xe (mod n), x P Giải mã:

Trang 22

x = D(K", y) = yd (mod n), y C

c Ví dụ về hệ RSA

Chọn hai số nguyên tố :

p = 3, q= 11 Tính:

y = 213 (mod 33) = 26 * 27 (mod 33) = 64*128 (mod 33) = 31*29 (mod 33) = 899 (mod 33) = 8

x = (17*17)*(17*17)*(17*31)

do

17*17 (mod 33) = 289 (mod 33) = 25 17*31 (mod 33) = 527 (mod 33) = 32 nên

x = 25*25*32 (mod 33) = 625*32 (mod 33)

= (625 mod 33)*32 (mod 33)

= 31*32 (mod 33) = 992 mod 33 = 2 Vậy:

x = 2

1.6 Các bài toán về an toàn thông tin

Có nhiều bài toán khác nhau về yêu cầu an toàn thông tin tùy theo những tình huống cụ khác nhau, nhưng tựu trung có một số bài toán chung nhất mà ta thường gặp trong thực tiễn là những bài toán sau đây:

Trang 23

- Bảo mật: giữ thông tin được bí mật đối với tất cả mọi người, trừ một ít người có thẩm quyền được đọc, biết thông tin

- Toàn vẹn thông tin: bảo đảm thông tin không bị thay đổi hay xuyên tạc bởi những

kẻ không có thẩm quyền hoặc bằng những phương tiện không được phép

- Nhận thực một thực thể: xác nhận danh tính của một thực thể chẳng hạn một người, một máy tính cuối trong mạng, một thẻ tín dụng…

- Nhận thực một thông báo: xác nhận nguồn gốc của một thông báo được gửi đến

- Chữ ký: một cách để gắn kết một thông tin với một thực thể, thường dùng trong bài toán nhận thực một thông báo cũng như trong nhiều bài toán nhận thực khác

- Ủy quyển: chuyển cho một thực thể khác quyền được đại diện hoặc được làm một việc gì đó

- Cấp chứng chỉ: cấp một sự xác nhận thông tin bởi một thực thể được tín nhiệm

- Báo nhận: xác nhận một thông báo đã được nhận hay một dịch vụ đã được thực hiện

- Làm chứng: kiểm thử việc tồn tại một thông tin ở một thực thể khác với người chủ sở hữu thông tin đó

- Không chối bỏ được: ngăn ngừa việc chối bỏ trách nhiệm đối với một cam kết đã

có (thí dụ đã ký vào một văn bản)

- Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến trình nào

đó (thường dùng trong gia dịch điện tử)

- Thu hồi: rút lại một giấy chứng chỉ hay ủy quyền dã cấp

Trang 24

mà tốt nhất là tìm ra được bản rõ gốc của bản mật mã đó Tình huống thường gặp là bản

thân sơ đồ hệ thống mật mã, kể cả các phép lập mã và giải mã (tức các thuật toán E và D), không nhất thiết là bí mật, do đó bài toán quy về việc tìm chìa khóa mật mã K, hay chìa khóa giải mã K’’, nếu hệ mật mã có khóa phi đối xứng Như vậy, ta có thể quy ước xem

bài toán thám mã cơ bản là bài toán tìm khóa mật mã K (hay khóa giải mã K‟‟) Để giải bài toán đó, giả thiết người thám mã biết thông tin về sơ đồ hệ mật mã được dùng, kể cả các phép lập mã và giải mã tổng quát E và D ngoài ra, người thám mã có thể biết thêm một số thông tin khác, tùy theo những thông tin được biết thêm này mà ta có thể phân loại bài toán thám mã thành các bài toán cụ thể như sau:

- 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 một bản mật 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ật mã Y cùng với bản rõ tương ứng X;

- 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ật mã tương ứng Y Điều này có thể xảy ra khi người thám mã chiế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ật mã là an toàn vô điều kiện, hay theo

thuật ngữ của C.Shannon, hệ là bí mật hoàn toàn Như vậy, hệ là an toàn vô điều kiện,

nếu độ bất định về bản rõ sau khi người thám mã có được các thông tin (về bản mã) bằng

Trang 25

độ bất định về bản rõ trước đó Tính an toàn vô điều kiện đã được nghiên cứu cho một số

hệ mật mã khóa đối xứng mà ta sẽ trình bày trong chương 3

- An toàn được chứng minh: một hệ thống mật mã đượ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, thí dụ bài toán phân tích một số nguyên thành tích các thừa số nguyên tố, bài toán tìm lôgarit rời rạc theo một mô đun nguyên tố, v.v

(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ật mã được xem là an toàn (về mặt) tính toán, nếu 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 toán của một kẻ thù giả định An toàn theo nghĩa này, nói theo ngôn ngữ của lý thuyết về độ phức tạp tính toán, là bao hàm cả khái niệm an toàn theo nghĩa “được chứng minh” nói trên

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à các hệ thống mật mã khóa công khai, ta sẽ trình bày riêng cho từng hệ mật mã được trình bày trong các chương về sau Ở mục 1.4 ta đã giới thiệu một số bài toán về an toàn thông tin nói chung Các bài toán đó đều có hạt nhân là tính an toàn của một hệ mật mã nào đó, cho nên việc nghiên cứu tính

an toàn của các hệ mật mã cũng góp phần giải quyết các vấn đề an toàn thông tin kể trên

Trang 26

Chương 2 CƠ SỞ TOÁN HỌC CỦA PHƯƠNG PHÁP MÃ HÓA

SỐ HỌC

Tóm tắt chương: Trong chương này luận văn trình bày một số khái niệm toán học cho

phương pháp mã hóa số học như: phép chiếu thu nhỏ đồng dạng, phép biến đổi ngược và một số tính chất của phép chiếu Trong chương 3 sẽ dùng phép biến đổi thu nhỏ đồng dạng để trình bày thuật toán mã hóa số học và dùng phép biến đổi ngược để mô tả quá trình giải mã Việc sử dụng các phép biến đổi này sẽ cho một cái nhìn khái quát và bản chất về phương pháp mã hóa số học, giúp cho việc tìm hiểu và nghiên cứu về phương pháp này trở nên đơn giản và thuận lợi hơn

2.1 Phép chiếu một điểm lên đoạn thẳng

Trong suốt chương này ta xem đoạn [0,D] là miền không gian và mọi điểm, mọi đoạn thẳng đều nằm trong miền này

Ta gọi y là ảnh của x lên [a,b] và ký hiệu:

y = [a,b]  x hoặc y = f[a,b]x (2.2)

Trang 27

2.2 Phép chiếu một đoạn thẳng lên một đoạn thẳng

2.2.1 Phép biến đổi ngược

Tương tự nếu:

x1 = [a,b]  y1

x2 = [a,b]  y2 thì ta nói:

[x1,x2] là nghịch ảnh của [y1,y2] theo [a,b]

và ký hiệu:

[x1,x2] = [a,b] [y1,y2] (2.6) hoặc:

[x1,x2] = [ y1,y2]

Nhận xét: Trong chương 3 sẽ dùng phép chiếu thu nhỏ đồng dạng để diễn đạt

thuật toán mã hóa và phép biến đổi ngược để trình bày thuật toán giải mã

2.2.3 Định lý 1

Cho đoạn [0,D] và các đoạn con A = [A1,A2], B = [B1,B2], C = [C1,C2]

Chiếu B lên A được X (hình 2.3): X = fAB (2.7) Chiếu C lên X được Y (hình 2.4): Y = fXC (2.8)

Trang 28

= fBC Chứng minh:

B 2

B 1

Hình 2.3 Chiếu B1B2 lên A1A2

C 2

C 1

Hình 2.4 Chiếu C1C2 lên X1X2

Trang 29

 Z1 = B1 + C1(B2-B1)/D (2.17) Tuơng tự, thay Y2 trong (2.13) vào (2.16) ta đƣợc:

2.3.1 Tính chất kết hợp

Đối với 2 phép chiếu ta có:

Đối với n phép chiếu (n2) ta có:

((A1  A2)  …An-1)An = A1 (A2  …(An-1An)) (2.21) Chứng minh tính chất kết hợp đối với 2 phép chiếu:

Theo định lý 1 ta có:

Chiếu B lên A đƣợc X: X = fAB Chiếu C lên X đƣợc Y: Y = fXC

Trang 30

Tính chất kết hợp của n phép chiếu (n2) ta chứng minh bằng cách tương tự

2.3.2 Tính chất chứa trong

Ảnh của [x1,x2] lên [a,b] luôn luôn thuộc [a,b] hay nói cách khác:

Nếu: [y1,y2] = [a,b]  [x1,x2] thì [y1,y2]  [a,b] (2.27)

2.3.3 Tính chất chứa trong của phép chiếu ngược

Nếu

y Y

X = BY (X là nghịch ảnh của Y theo B) thì

By X (nghịch ảnh của y theo B thuộc X)

Trang 31

Chương 3 CẢI TIẾN PHƯƠNG PHÁP MÃ HÓA SỐ HỌC

Tóm tắt chương :

Chương 3 trình bày các kết quả chính của luận văn, gồm các nội dung sau : Mô tả thuật toán giải mã và mã hóa số học thông qua các phép chiếu thu nhỏ đồng dạng và phép biến đổi ngược Sử dụng các tính chất của phép chiếu để chứng minh tính đúng đắn của thuật toán giải mã So với cách trình bày về mã hóa số học truyền thống trong các tài liệu trước đây [14] [19] [20], cách trình bày và cách chứng minh trong chương này tỏ ra ngắn gọn và dễ hiểu hơn Hơn nữa trong chương này còn đề xuất một số cải tiến nhằm tăng tốc độ thực hiện của thuật toán bằng việc thay thế các phép nhân, chia bởi các phép dịch chuyển bít và đề xuất một mô hình mã hóa số học mới dựa trên ý tưởng của mô hình RAC [15] nhằm nâng cao khả năng bảo mật cho phương pháp

3.1 Giới thiệu phương pháp mã hóa số học

Phương pháp mã hóa số học được đề xuất bởi Shannon vào năm 1948, sau đó được tiếp tục phát triển bởi Elias nhưng không công bố kết quả nghiên cứu của mình Năm

1963 Abramson đã đưa vấn đề này trong bài viết của ông về lý thuyết thông tin Về mặt toán học phương pháp này khá đơn giản nhưng khi thực hiện lại đòi hỏi độ chính xác tuyệt đối cho nên nó chỉ được nghiên cứu về mặt lý thuyết chứ chưa được cài đặt trên máy tính [12] Việc cài đặt phương pháp mã hóa số học gặp phải vấn đề là tốc độ thực hiện của thuật toán mã hóa và giải mã chậm vì phải tính toán các phép nhân, chia trên các

số nguyên lớn có độ dài hàng trăm chữ số Tuy nhiên trong những năm gần đây mã hóa số học được nhiều người nghiên cứu nhằm ứng dụng vào thực tế

Trong chương này sẽ dùng phép chiếu thu nhỏ đồng dạng để mô tả thuật toán mã hóa số học, dùng phép biến đổi ngược để diễn đạt thuật toán giải mã và sử dụng các tính chất của phép chiếu để chứng minh tính đúng đắn của thuật toán giải mã So với cách trình bày về mã hóa số học truyền thống trong các tài liệu trước đây [14] [19] [20], cách trình bày và cách chứng minh trong chương này tỏ ra ngắn gọn và dễ hiểu hơn Hơn nữa còn đề xuất một số cải tiến nhằm tăng tốc độ thực hiện của thuật toán bằng việc thay thế các phép nhân, chia bởi các phép dịch chuyển bít Ngoài ra luận văn còn trình bày một mô

Trang 32

hình mã hóa số học mới dựa trên ý tưởng của mô hình RAC [15] nhằm nâng cao khả năng bảo mật

3.2 Thuật toán mã hóa số học truyền thống

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

Để thực hiện thuật toán mã hóa số học, trước tiên cần xác định miền phân bố của tập ký tự khác nhau của bản rõ

3.2.1.1 Thống kê tần suất và xác định miền phân bố của các ký tự trong bản

Vấn đề này được trình bày thông qua một ví dụ Giả sử bản rõ là một chuỗi ký tự:

"CABAB" thì kết quả thống kê tần suất như sau:

ch[i] là ký tự thứ i trong bảng tần suất (ở ví dụ trên: ch[1] = „A‟, ch[3] = „C‟)

P(ch[i]) = [low_range(ch[i]), hi_range(ch[i])) là miền phân bố của ký tự ch[i]

Để xác định miền phân bố, đầu tiên chọn đoạn cơ sở [0,D] Sau đó chia [0,D] thành m đoạn con dựa theo tần suất của các ký tự Với bản rõ như trên và D =1000 thì miền phân bố của các ký tự như sau:

STT Ký tự Miền phân bố low_range hi_range

Bảng 3.2 Bảng phân bố với D = 1000 và dựa theo tần suất

Nhận xét: các miền phân bố không nhất thiết phải tính theo tần suất mà chỉ cần

xác định sao cho không giao nhau và thuộc [0,D] Trong mục 3.3 sẽ đề xuất các cách chọn miền phân bố hợp lý để cải tiến thuật toán mã hóa số học nhằm nâng cao tốc độ tính toán

Ngày đăng: 25/03/2015, 09:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
2. Phạm Văn Ất (1999), Kỹ thuật lập trình C, NXB Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: Kỹ thuật lập trình C
Tác giả: Phạm Văn Ất
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 1999
3. Phạm Văn Ất (2000), C++ & lập trình hướng đối tượng, NXB Khoa học và Kỹ thuật Sách, tạp chí
Tiêu đề: C++ & lập trình hướng đối tượng
Tác giả: Phạm Văn Ất
Nhà XB: NXB Khoa học và Kỹ thuật
Năm: 2000
4. Phạm Văn Ất (2005), Lập trình Windows dùng ngôn ngữ C và các hàm API của Windows, NXB GTVT Sách, tạp chí
Tiêu đề: Lập trình Windows dùng ngôn ngữ C và các hàm API của Windows
Tác giả: Phạm Văn Ất
Nhà XB: NXB GTVT
Năm: 2005
5. Phan Đình Diệu (2006), Lý thuyết mật mã và An toàn thông tin, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Lý thuyết mật mã và An toàn thông tin
Tác giả: Phan Đình Diệu
Nhà XB: NXB ĐHQG HN
Năm: 2006
6. Hà Huy Khoái, Phạm Huy Điển (2003), Số học thuật toán: Cở sở lý thuyết và tính toán thực hành, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Số học thuật toán: Cở sở lý thuyết và tính toán thực hành
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB ĐHQG HN
Năm: 2003
7. Hà Huy Khoái, Phạm Huy Điển (2004), Mã hoã thông tin: Cơ sở toán học và ứng dụng, NXB ĐHQG HN Sách, tạp chí
Tiêu đề: Mã hoã thông tin: Cơ sở toán học và ứng dụng
Tác giả: Hà Huy Khoái, Phạm Huy Điển
Nhà XB: NXB ĐHQG HN
Năm: 2004
8. PGS. TS. Trịnh Nhật Tiến (2009), Bài giảng cao học: An ninh Cơ sở dữ liệu, ĐH Công nghệ, ĐHQG HN Sách, tạp chí
Tiêu đề: Bài giảng cao học: An ninh Cơ sở dữ liệu
Tác giả: PGS. TS. Trịnh Nhật Tiến
Năm: 2009
9. PGS. TS. Trịnh Nhật Tiến (2008), Giáo trình: An toàn dữ liệu, ĐH Công nghê, ĐHQG HN.Tiếng Anh Sách, tạp chí
Tiêu đề: Giáo trình: An toàn dữ liệu
Tác giả: PGS. TS. Trịnh Nhật Tiến
Năm: 2008
10. Bo Mi, Xiaofeng Liao, Yong Chen (2008), “A novel chaotic encryption scheme based on arithmetic coding”, Chaos, Solitions and Fractals – ScienceDirect Sách, tạp chí
Tiêu đề: A novel chaotic encryption scheme based on arithmetic coding”
Tác giả: Bo Mi, Xiaofeng Liao, Yong Chen
Năm: 2008
11. Hyungjin Kim, Jiangtao Wen, John D. Villasenor (2007), “Secure Arithmetic Coding”, IEEE Transactions on signal processing vol. 55 Sách, tạp chí
Tiêu đề: Secure Arithmetic Coding”
Tác giả: Hyungjin Kim, Jiangtao Wen, John D. Villasenor
Năm: 2007
12. Hai Mei, Zhang Jian-jun, NI Xing-fang (2004), "An improved Arithmetic Coding Algorithm" Journal of Shanhai University Sách, tạp chí
Tiêu đề: An improved Arithmetic Coding Algorithm
Tác giả: Hai Mei, Zhang Jian-jun, NI Xing-fang
Năm: 2004
13. Howard, P.G and Jeffrey Scott Vitter (1991), "Practical Implementations of Arithmetic Coding", International Conference on Advances in Communication and Control (Comcon 3), Victoria, British Columbia, Canada Sách, tạp chí
Tiêu đề: Practical Implementations of Arithmetic Coding
Tác giả: Howard, P.G and Jeffrey Scott Vitter
Năm: 1991
14. Howard, P.G and Jeffrey Scott Vitter (1992), "Arithmetic coding for data compression", IEEE Sách, tạp chí
Tiêu đề: Arithmetic coding for data compression
Tác giả: Howard, P.G and Jeffrey Scott Vitter
Năm: 1992
15. Marco Grangetto, Enrico Magli, Gabriella Olmo (2006), “Multimedia Selective Encryption by Means of Randomized Arithmetic Coding”, IEEE Transactions on multimedia, vol. 8 Sách, tạp chí
Tiêu đề: Multimedia Selective Encryption by Means of Randomized Arithmetic Coding”
Tác giả: Marco Grangetto, Enrico Magli, Gabriella Olmo
Năm: 2006
16. Ranjan Bose, Saumitr Pathak (2006), “A novel Compression and Encryption Scheme using variable Model Arithmetic Coding and Coupled Chaotic System”, IEEE Transtactions on circuits and systems Sách, tạp chí
Tiêu đề: A novel Compression and Encryption Scheme using variable Model Arithmetic Coding and Coupled Chaotic System”
Tác giả: Ranjan Bose, Saumitr Pathak
Năm: 2006
17. Rissanen J.J (1976), "Generalized kraft inequality and arithmetic coding", IBM J. Res. Develop Sách, tạp chí
Tiêu đề: Generalized kraft inequality and arithmetic coding
Tác giả: Rissanen J.J
Năm: 1976
18. Rissanen J.J (1979), "Arithmetic codings as number representations", Acta Polytech. Scand. Math Sách, tạp chí
Tiêu đề: Arithmetic codings as number representations
Tác giả: Rissanen J.J
Năm: 1979
19. Rissanen J.J and Langdon G.G, (1979) "Arithmetic coding", IBM J. Res. Dev Sách, tạp chí
Tiêu đề: Arithmetic coding
20. Witten I.H, Radford M. Neal, and John G. Cleary, (1987) "Arithmetic coding for data compression", Communications of the ACM, No.6, Vol.30 Sách, tạp chí
Tiêu đề: Arithmetic coding for data compression

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w