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

xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn

147 595 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 147
Dung lượng 1,43 MB

Nội dung

Thực tế trờn đó đặt ra một yêu cầu cấp bách là phải xây dựng những hệthống bảo vệ các chương trình và dữ liệu của chúng ta trên môi trường không antoàn, có khả năng phát hiện sớm sự tấn

Trang 1

Lời nói đầu

Sự phát triển nhanh chóng của công nghệ thông tin hiện nay đã mang lạinhững lợi Ých to lớn cho chóng ta Nhờ có mạng máy tính mà chúng ta có thểkhai thác, truyền, nhận thông tin một cách rất nhanh chóng Tuy nhiên, cùng vớinhững lợi Ých trên, mạng máy tính cũng đã tạo ra một môi trường không an toàn.Khi đã kết nối vào mạng, chúng ta có thể bị tấn công bất kỳ lúc nào Những dữliệu và thông tin quan trọng bị các hacker lấy cắp, chương trình bị virus lâynhiễm… Sự phổ biến của mạng Internet nh hiện nay đã làm môi trường này trởnên phổ biến Mặc dù những công cụ nhằm bảo vệ chương trình và dữ liệu liêntục được phát triển: Những chương trình diệt virus liên tục được cập nhật, các hệthống bảo mật của hệ điều hành cũng liên tục được cải tiến Tuy nhiên, việc pháttriển các hệ thống trên vẫn không thể theo kịp được với nhu cầu thực tế Do vậy,đối với công nghệ thông tin hiện nay, làm việc trên môi trường không an toàn làđiều tất yếu

Thực tế trờn đó đặt ra một yêu cầu cấp bách là phải xây dựng những hệthống bảo vệ các chương trình và dữ liệu của chúng ta trên môi trường không antoàn, có khả năng phát hiện sớm sự tấn công của virus, tránh được việc lấy cắpnhững thông tin quan trọng

Xuất phát từ yêu cầu này, đề tài tốt nghiệp của chúng em đã nghiên cứu vàứng dụng những lý thuyết về mã hóa và chữ ký số hiện đại để xây dựng chươngtrình bảo vệ dữ liệu trên môi trường không an toàn Cụ thể, đề tài đã xây dựng

thành công một cấu trúc dữ liệu đặc biệt gọi là “volume ảo” Cấu trúc này có khả

năng lưu trữ dữ liệu dưới dạng các file có phân cấp theo thư mục tương tù nh các

hệ thống file trờn cỏc hệ điều hành hiện nay Tuy nhiên, không chỉ có chức nănglưu trữ file thông thường, nú cũn cú khả năng bảo vệ được dữ liệu bên trongbằng việc sử dụng những thuật toán mã hóa phức tạp với khóa động được sinh từnhững thông tin xác thực người dùng Vì lý do bảo mật, volume ảo không tíchhợp với hệ thống vào ra file của hệ điều hành Do vậy, đÒ tài đã xây dựng những

Trang 2

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàncông cụ riêng cung cấp các dịch vụ vào ra trờn bao gồm trình quản lý volume ảo

và công cụ tìm kiếm mờ trên môi trường này

Với mục đích nh trên, đề tài được chia làm 3 phần:

- Phần 1: Trình bày cơ sở lý thuyết mã hóa và chữ ký sè

- Phần 2: Trình bày cấu trúc của volume ảo và xây dựng trình điều khiểnvolume ảo

- Phân 3: Trình bày chi tiết về công cụ tìm kiếm mờ trên môi trườngvolume ảo này

Để hoàn thành được đề tài này, chúng em đã phân công nhau thực hiện cácphần việc của đề tài nh sau:

- Ngô Thế Trung:

+ Nghiên cứu lý thuyết mã hóa và chữ ký sè

+ Xây dựng các modul mã hóa cơ bản ứng dụng trong hệ thống

- Phạm Quang Huy:

+ Xây dựng cấu trúc volume ảo và trình quản lý volume ảo

+ Xậy dựng công cụ tìm kiếm mờ trên môi trường volume ảo

được

Mặc dù hết sức cố gắng trong quá trình làm đồ án Tuy nhiên chúng em vẫnkhông thể tránh khỏi những thiếu sót Em rất mong nhận được những ý kiến đónggóp của các thầy cô và các bạn để hệ thống được hoàn thiện hơn

Trang 3

Chóng em còng xin được cảm ơn tất cả các thầy cô giáo trong khoa Toán –Tin ứng dụng Các thày cô đã truyền đạt cho chóng em những kiến thức nền tảngtrong quá trình học tập tại khoa.

Chóng con xin cảm ơn bố, mẹ Bố mẹ đã tạo mọi điều kiện tốt nhất chochóng con cả về chất lẫn tinh thần trong suốt quá trình học tập cũng như làm đồ

án tốt nghiệp, giỳp chóng con có được kết quả như ngày hôm nay

Trang 4

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

Mục lục

Phần 1 Mã hóa và chữ ký sè 8

Chương 1 Một số kiến thức toán học cơ sở 9

1.1 Thuật toán và độ phức tạp 9

1.1.1 Thuật toán 9

1.1.2 Độ phức tạp của thuật toán 9

1.2 Phép tính đồng dư và các vấn đề liên quan 10

1.2.1 Số nguyên tố và định lý cơ bản của số học: 10

1.2.2 Thuật toán Euclid và mở rộng 11

1.2.2.1 Thuật toán Euclid: 11

1.2.2.2 Thuật toán Euclid mở rộng 12

1.2.3 Phi hàm Euler 12

1.2.4 Định lý Fermat và các mở rộng 13

1.2.5 Thuật toán bình phương nhân liên tiếp 13

1.2.6 Định lý Trung quốc về phần dư 14

1.3 Trường hữu hạn 14

1.3.1 Trường Fp 14

1.3.2 Trường F2r 15

Chương 2 Các khái niệm cơ bản về mã hoá 17

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

2.2 Định nghĩa và các tích chất của hệ mật 18

Chương 3 Các hệ mã hoá cổ điển 20

3.1 Mã dịch vòng ( shift cipher) 20

3.2 Mã thay thế 20

3.3 Mã Affine 21

3.4 Mã Vigenère 22

3.5 Mật mã Hill 23

3.6 Các hệ mã dòng khoá 24

Chương 4 Các hệ mã hóa hiện đại 28

4.1 Hệ mã hoá khoá đối xứng 28

4.1.1 Giới thiệu chung 28

4.1.2 AES 29

4.1.2.3 Quá trình hình thành 29

4.1.2.4 Công cụ chuẩn bị 31

4.1.2.5 Trường các byte 31

Trang 5

4.1.2.7 Phép nhân 32

4.1.2.8 Nhân với x 33

4.1.2.9 Đa thức với hệ số byte ( trong trường GF(28)) 34

4.1.2.10 Thuật toán 36

4.1.2.11 Trạng thái, khoá mã và số lượng vòng 37

4.1.2.12 Các phép biến đổi trong một vòng 39

4.1.2.13 Phép thế byte ( subbyte transformation) 39

4.1.2.14 Phép dịch hàng( ShiftRows Transformation) 40

4.1.2.15 Phép trộn cột (MixColumn Transformation) 41

4.1.2.16 Cộng với khoá của vòng ( Round Key addition) 41

4.1.2.17 Thuật toán mã hoá 42

4.1.2.18 Quy trình sinh khoá 42

4.1.2.19 Thuật toán giải mã 43

4.2 Hệ mã hoá khoá công khai 45

4.2.1 Nguyên tắc chung 45

4.2.2 Hệ mã RSA 45

4.2.2.20 Thuật toán 45

4.2.2.21 Các phương pháp tấn công hệ mật RSA 47

4.2.2.22 Phương pháp p-1: 47

4.2.2.23 Phương pháp tấn công liên tiếp 48

4.2.2.24 Sù che dấu thông tin trong hệ thống RSA 49

4.2.2.25 Bình luận về RSA 49

Chương 5 Chữ ký sè - hệ hàm băm mật mã 51

5.1 Sơ lược về hàm băm mật mã 51

5.2 Thuật toán MD5 52

Phần 2 Bảo vệ dữ liệu trên môi trường không an toàn 60

Chương 1 Khảo sát và xác lập giải pháp thiết kết cấu trúc volume ảo 61

1.1 Những yêu cầu đặt ra đối với đối với cấu trúc volume ảo 61

1.2 Khảo sát một số hệ thống quản lý và lưu trữ file 61

1.2.1 Hệ thống FAT, FAT32 61

1.2.2 Hệ thống NTFS 62

1.2.3 Hệ thống Extfs và Ext2fs 64

1.2.4 Nhận xét chung 66

1.3 Giải pháp thiết kế cấu trúc volume ảo 66

Chương 2 Cấu trúc volume ảo 67

2.2 Bảng thông tin volume 67

2.3 Phân vùng dữ liệu 69

2.4 Lưu trữ file trên volume ảo 70

Trang 6

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

2.5 Lưu trữ thư mục trên volume ảo 72

2.5.1 Cấu trúc thư mục 72

2.5.2 Nội dung Entry của thư mục 73

2.6 Các dạng volume ảo 74

2.6.1 Volume ảo lưu trên 1 file 74

2.6.2 Volume ảo lưu trên nhiều file 75

2.6.3 Volume ảo lưu trên phân vùng của ổ cứng 77

2.6.3.1 Sơ lược về phân vùng trên ổ cứng 77

2.6.3.2 Cấu trúc của volume ảo lưu trên phân vùng của ổ cứng 78

2.7 Bảo mật dữ liệu trên volume ảo 78

2.8 Bảo đảm an toàn dữ liệu trên volume ảo 79

Chương 3 Trình điều khiển vào ra trên volume ảo 81

3.1 Chức năng tự kiểm tra 82

3.2 Tạo và định dạng cho volume ảo 83

3.3 Thao tác cơ bản trên volume ảo 83

3.3.1 Xây dựng tầng truy cập mức thấp 84

3.3.2 Quản lý block và phân vùng 86

3.3.2.3 Địa chỉ các đối tượng của volume ảo 87

3.3.2.4 Cấp phát phân vùng mới cho volume 89

3.3.2.5 Cấp phát block 90

3.3.2.6 Nạp thông tin block 93

3.3.3 Tầng truy cập file cơ bản 94

3.3.4 Tầng dịch vụ 96

3.3.4.7 Định vị, tìm kiếm file và thư mục – Quy tắc đặt tên file 96

3.3.4.8 Quản lý khóa file 97

3.3.4.9 Bảo mật dữ liệu 97

3.3.4.10 Vào ra file 98

3.3.4.11 Tạo file, thư mục mới 99

3.3.4.12 Mở, đóng, đọc và ghi file 100

3.3.4.13 Copy, di chuyển, đổi tên, xoá các file và thư mục 101

Phần 3 Công cụ tìm kiếm mờ trên môi trường volume ảo 103

Chương 1 khảo sát một số hệ thống tìm kiếm hiện nay 104

1.1 Google 105

1.1.1 Giới thiệu chung về Google 105

1.1.2 Cấu trúc và hoạt động của hệ thống Google 105

1.1.3 Phương pháp đánh hạng kết quả trong Google 107

1.1.4 Phương pháp đánh giá thông tin 107

Trang 7

1.1.6 Hỗ trợ tiếng Việt và một số tính năng khác của Google 109

1.1.7 Nhận xét chung về ưu, nhược điểm của google: 112

1.2 Altavista 112

1.2.1 Cấu trúc của altavista 113

1.2.2 Hỗ trợ tìm kiếm trên altavista 113

1.3 Nhận xét chung 113

Chương 2 Cơ sở lý thuyết của thuật toán tìm kiếm mờ 114

2.1 Ôtômat mờ tổng quát 115

2.2 Thuật toán so mẫu tìm xâu con sử dụng ôtômat mờ 115

2.2.1 Đặt bài toán 115

2.2.2 Trạng thái có nghĩa 116

2.2.3 Xây dựng luật chuyển trạng thái của ôtômat 116

2.2.3.1 Định nghĩa 116

2.2.3.2 Tính chất của hàm TFuzz 117

2.2.4 Phương pháp tính TFuzz 121

2.3 Ôtômat sánh tìm xâu con 123

2.3.1 Định nghĩa 123

2.3.2 Cơ sở toán học của ôtômát tìm xâu con của mẫu 124

2.3.3 Hoạt động của ôtômát 124

2.4 Tìm kiếm tựa ngữ nghĩa với tiếp cận mờ 125

2.4.1 Độ tương tự giữa hai từ 125

2.4.2 Đặt bài toán 126

2.4.3 Thuận thế 126

2.4.3.3 Khái niệm thuận thế 126

2.4.3.4 Mét sè tính chÊt của thuận thÕ 128

2.4.3.5 Thuật toán đếm số thuận thế 130

2.5 Kết luận 132

Chương 3 Xây dựng modul tìm kiếm mờ 133

3.1 Cải tiến thuật toán tìm kiếm mờ 133

3.1.1 Tìm kiếm trên văn bản tiếng Việt 133

3.1.2 Thay đổi trọng số giữa các ký tù trong từ 134

3.2 Xây dựng thuật toán tìm kiếm mờ 136

3.2.1 Xây dựng thuật toán LCS 136

3.2.2 Xây dựng thuật toán đếm số thuận thế 139

3.2.3 Trình diễn kết quả 142

Trang 8

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

PhÇn 1 Mã hóa và chữ ký sè

Các hệ mật mã đóng một vai trò rất quan trọng trong quá trình phát triểncông nghệ thông tin Các hệ mật riêng lẻ nh hệ mó hoỏ khoỏ đối xứng, hệ móhoỏ khoỏ công khai, các hệ hàm băm mật mã đều có những đặc trưng nhất định.Ngoài việc sử dụng riêng lẻ các hệ mật trên theo đúng tư tưởng thiết kế củachúng thì việc kết hợp chúng với nhau để tạo thành các giao thức hoặc các ứngdụng trong những trường hợp đặc biệt có thể nói là một nghệ thuật

Để trình bày cơ sở của hệ thống này, sau đây ta điểm qua một số vấn đề của

lý thuyết mã hóa và chữ ký số hiện đại, phục vụ cho việc bảo vệ chương trình và

dữ liệu

Trang 9

Ch¬ng 1 Một số kiến thức toán học cơ sở

1.1.1 Thuật toán

§Þnh nghÜa 1.1: Thuật toán bao gồm một quy tắc để với những dữ liệu ban đầu đã cho ta tìm được lời giải của bài toán được xét sau một khoảng thời gian hữu hạn.

Nh vậy, thuật toán phải thoả mãn 2 yêu cầu:

1) Tính hữu hạn: Thuật toán cần phải kết thúc sau một số hữu hạn bước.Khi thuật toán ngừng làm việc, ta phải thu được câu trả lời cho vấn đềđặt ra

2) Tính xác định: Ở mỗi bước, thuật toán cần phải xác định, nghĩa là chỉ rõviệc cần làm Nếu đối với người đọc, nếu chưa thoả món trờn chưa thoảmãn điều kiện này thì đó là lỗi của người viết

Ngoài ra, ta còn phải xét đến tính hiệu quả của thuật toán, có nhiều thuật toán về

lý thuyết là kết thúc sau hữu hạn bước, tuy nhiên thời gian hữu hạn đó vượt quákhả năng làm việc của chúng ta ( Ví dụ: 100 năm) Các thuật toán loại này khôngđược xét đến ở đây

1.1.2 Độ phức tạp của thuật toán

Thời gian làm việc của máy tính khi chạy một thuật toán không chỉ phụthuộc vào thuật toán mà còn phụ thuộc vào máy tính được sử dụng Do đó, xétmột tiêu chuẩn chung để đo độ phức tạp của thuật toán đó là dùa vào số thao tác

cơ sở phải làm khi thực hiện thuật toán

Giả sử f(n) và g(n) là hai hàm xác định trên tập hợp các số nguyên dương

Ta nói f(n) có bậc O-lớn của g(n), và viết f(n)=O(g(n)) hoặc f=O(g), nếu tồn tạimột số C > 0 sao cho với n đủ lớn, các hàm f(n) và g(n) đều dương, đồng thờif(n) <= Cg(n)

Trang 10

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

§Þnh nghÜa 1.2: Một thuật toán được gọi là có độ phức tạp đa thức theo cỡ (dữ liệu) n , hoặc có thời gian đa thức, nếu số các phép tính cần thiết khi thực hiện thuật toán không vượt quá O(n d ), trong đó n là độ lớn của đầu vào,

và d là số nguyên dương nào đó.

Nh vậy, nếu đầu vào là các số k-bit thì thời gian thực hiện thuật toán là đa thứcbậc d theo k nghĩa là là O(kd), tức là tương đương với một đa thức của k (bậc d)

Các thuật toán với thời gian O(αn), α >1 , được gọi là các thuật toán với độ phứctạp mũ, hoặc thời gian mò

Các thuật toán có độ phức tạp trung gian giữa đa thức và mũ được gọi là thuậttoán dưới mũ

1.2.1 Số nguyên tố và định lý cơ bản của số học:

Ký hiệu Z là tập các số nguyên: …,-2,-1,0,1,2,… và N là tập các số tự nhiên (tức

là các số nguyên dương: 1,2,3…)

Với a, b  Z ta nói rằng b chia hết cho a nếu như b có thể viết thành tích của avới một số nguyờn khỏc; khi Êy ta cũng có thể nói rằng a chia hết b, hay a là mộtước số của b, và ký hiệu a | b Ta có một số tính chất:

1) Nếu a, b, c  Z và a | b thì a | bc;

2) Nếu a | b và b | c thì a | c;

3) Nếu a | b và a | c thì a | b ± c;

4) Nếu a | b và a không chia hết c thì a không chia hết b ± c;

§Þnh nghÜa 1.3: Sè tự nhiên lớn hơn 1 mà không chia hết cho số tự nhiên nào khác, trừ chính nó và 1, thì được gọi là số nguyên tè

Trang 11

p α| b nhưng p α+1 không chia hết b.

§Þnh lý 1.1 Mọi số nguyên lớn hơn 1 đều có thể phân tích một cách duy nhất dưới dạng tớch cỏc luỹ thừa của các số nguyên tố khác nhau Nếu p là một số nguyên tố và p | ab thì Ýt nhất một trong 2 sè a,b phải chia hết cho p.

Ước chung lớn nhất của hai số tự nhiên a,b là số lớn nhất trong tập các ướcchung của 2 số đó, được ký hiệu là gcd( a, b) hay đơn giản là (a,b)

Nh vậy, nếu d | a và d | b thì d | gcd(a,b)

Khi hai số tự nhiên có ước chung lớn nhất là 1 thỡ chỳng được gọi là nguyên tốcùng nhau

1.2.2 Thuật toán Euclid và mở rộng

Giả sử m là một số nguyên dương ta nói hai số nguyên a và b đồng dư vớinhau modulo m nếu m chia hết hiệu a-b ( Tức là m | gcd(a,b)) Ký hiệu là ab(mod m)

Nh vậy, ab(mod m) khi và chỉ khi tồn tại số nguyên k sao cho a=b+km

để tìm gcd( a,b) có một thuật toán nổi tiếng đó là thuật toán Euclid

1.2.2.1 Thuật toán Euclid:

B0: Nếu a<b đổi chỗ a cho b ( khẳng định a≥b)

B1: Nếu b=0, in ra a và kết thóc

B2: Đặt r = a mod b, a=b, b= r quay về B1

§Þnh lý 1.2 (Lamộ): Số phép chia cần thiết để tìm gcd (a,b) bằng thuật toán Euclid không vượt quá 5 lần số chữ số thập phân của số bé trong hai

số đã cho.

Trang 12

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

Hệ quả: Giả sử a< b, khi đó số các phép tính bit cần thiết để thực hiện thuậttoán Euclid là O(log2a)3)

Ngoài thuật toán Euclid nói trên, trong nhiều trường hợp, ta cần đến thuậttoán Euclid mở rộng Thuật toán này không những cho ta tìm gcd(a,b), mà cònbiểu diễn d=gdc( a,b)=ma+nb, trong đó m,n là các số nguyên

Bổ đề: gdc(a,b) là số d dương nhỏ nhất biểu diễn được dưới dạng tổ hợptuyến tính của a và b

d=gcd(a,b)=ma+nb

1.2.2.2 Thuật toán Euclid mở rộng

Cho hai số nguyên khụng õm u,v, tìm (x, y, z) sao cho

gcd(u,v)=z=ux+vy

Trong tính toán, thêm vào các Èn phô (p, q, r), (m, n, t) với

um+vn=t, up+vq=r, ux+vy=z

Trang 13

Tính chất:

 là hàm nhân tính :  (mn)= (m) (n)

p là số nguyên tố thì  (p )=p-1

1.2.4 Định lý Fermat và các mở rộng

§Þnh lý 1.3 (Định lý Fermat (bé)): Nếu p là một số nguyên tố và a là một số

nguyờn thỡ ap a (mod p) Nếu p không chia hết a ( tức là a mod p #

NÕu e,d là các số nguyên thoả mãn ed  1 (mod  (m)) thì, với mọi số c

nguyên tố cùng nhau với m, ta có (ce)d

m)mod

2(mmod021

222

121

a

k k a

k k

k k

Trang 14

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

1.2.6 Định lý Trung quốc về phần dư

§Þnh lý 1.5 Cho tập số nguyên tố cùng nhau từng đôi một: m1, m2,…, mr Với mỗi bộ số nguyên bất kỳ a1, a2,…, ar, hệ phương trình đồng dư

x a i (mod m i ) i=1 r, luụn có nghiệm và là duy nhất theo modulo m= m 1 m 2 …m r Nghiệm này

có thể tính được trực tiếp theo công thức:

x = a1m2…mr b1+ m1 a2…mr b2+ + arm1m2…mr-1br (mod m1m2… mr) trong đó bi=(( m1m2…mr)/mi)-1(mod mi) i=1 r

1.3.1 Trường Fp

Với p là một số nguyên bất kỳ, trên tập cỏc lớp đồng dư theo modulo p, tức

là Z/ pZ, ta có thể thực hiện được các phép tính +, - , x như đã biết ở phần trên.Khi p là một số nguyên tố thì với mỗi phần tử khỏc khụng α  Z/ pZ ta luôn tìmđược phần tử nghịch đảo α-1  Z / pZ theo nghĩa αxα -1 1 (mod p) và do đó cóthể thực hiện phép chia ( cho các phần tử khác 0) theo nghĩa α /  = α x  -1

Nh vậy, Z/ Zp có cấu trúc của một trường và ta ký hiệu trường này là Fp* Nh vậy

Fp*= Fp \ {0}={1,2, ,p-1}

Ở các phần tiếp thep khi nói đến Fp hay Fp là ta đề cập đến p nguyên tố

Một phần tử g  Fp*được gọi là phần tử sinh (hay căn nguyên thuỷ ) của nhóm

Fp* nếu tập các luỹ thừa của g cũng chính là nhóm này, tức là 2 tập sau trùngnhau:

Trang 15

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

Cho phần tử sinh g  Fp* Khi đó mọi phần tử h  Fp* có thể được biểu diễndưới dạng một luỹ thừa nào đó của g Vấn đề là tìm x để h=gx Đây là một việcrất khó và độ khó của nó được dùng làm độ an toàn cho một vài hệ mã liên quanđến logarit rời rạc

1.3.2 Trường F2r

Đây cũng là một trường hữu hạn phần tử, nhưng có bản chất khác biệt so với loạitrường hữu hạn đã xét đến ở trên

Ta ký hiệu F2[x] là tập các đa thức với hệ số nằm trong trường F2 Có thể liệt kê

ra rằng tập này có 2 đa thức bậc 0 (là 2 hằng số 0, 1), 2 đa thức bậc 1( là x vàx+1), tức là có 4 đa thức bậc không vượt quá 1, và không khó khăn lắm ta có thểnhận ra rằng, với mỗi số tự nhiên n, có cả thảy 2n+1 đa thức với bậc không vượtquá n, với dạng tổng quát là:

Hai đa thức được cộng hoặc nhân với nhau theo quy tắc thông thường, chỉ lưu ý

là các hệ số là những phần tử của trường F2, trong đó 1+1=0

Đa thức gọi là bất khả quy( trên một trường nào đó) nếu nó không thể phân tíchthành tích của các đa thức bậc nhỏ hơn (với các hệ số trên trường đã nói)

Tương tự trên Z, trên F2[x] ta cũng đưa vào phép tính đồng dư theo modulo mộtphần tử (tức là một đa thức) nào đó, và khi Êy F2[x] sẽ được phân tích thành cỏclớp với các đại diện là đa thức bậc thấp hơn đa thức ta đã lấy làm modulo

Trong trường hợp chung, người ta chứng minh được rằng, với mỗi đa thức bấtkhả quy Pd(x) với bậc d, tập hợp F2[x]/Pd(x) là một trường chứa đúng 2d phần tử,

ký hiệu là F2d; mỗi phần tử của nó được đại diện bởi một đa thức với bậc khôngvượt quá d-1

Trang 16

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toànNgười ta cũng chứng minh được rằng tập hợp các phần tử khác 0 của trường F2d,được ký hiệu là F2d*, còng lập thành một nhóm và được sinh bởi một phần tử nào

đó, tức là cũng có cấu trúc tương tự như nhóm Fp đã được xét ở trên Phần tửsinh của nó cũng phải cú cỏc luỹ thừa bậc là ước của (2d-1) khác đơn vị, và sốlượng phần tử sinh là  (2d-1)

Trang 17

Ch¬ng 2 Các khái niệm cơ bản về mó hoá

- 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ụ, tathường xem các văn bản được viết bằng chữ viết, hoặc bằng chữ số Tuynhiên, ngày nay mọi tín hiệu đề có thể được số hoá, cho nên việc nghiêncứu trờn cỏc văn bản số không hạn chế các ứng dụng của nó

- Mó hoá (encryption) 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 cuộc giaodịch tài chính, thương mại… Quá trình “nguỵ trang” văn bản gọi là quátrình lập mó, cũn quá trình “khụi phục” lại văn bản được gọi là quá trìnhgiải mã Nguyên tắc chung của mó hoỏ là việc giải mã phải rất dễ dàngvới “người trong cuộc” nhưng rất khó khăn với “người ngoài cuộc” Vănbản gốc (trước khi mó hoỏ) thường được ký hiệu là PT, hay đơn giản là P.Văn bản mó (đó được “nguỵ trang”)thường ký hiệu là CT, hay C

- Hệ mã( Cryptosystem) là một phương pháp nguỵ trang văn bản Nghệ

thuật tao ra và sử dụng các hệ mã là thuật mó hoỏ 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ệ

- 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ó hoỏ 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 trong một thời gian ngắn

- Mó dòng( stream cipher) là việc tiến hành mó hoỏ 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ó hoỏ 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ự gọi là digraph, còn khi nó là bộ 3 chữthì gọi là trigraph);

Trang 18

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

- 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ã 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 khoỏ mó (cipher key) là bí quyết lập mã và giải mã Nếu như quy

trình mó hỏo được xem như một hàm y=f(x,k), trong đó x là đầu vào (vănbản nguồn), y là đầu ra ( văn bản mã), f là phương pháp ( hay thuật toán)

mó hoỏ, cũn k lf mét tham số điều khiển, thì bí quyết trước đây thườngbao gồm cả phương pháp f, và tham sè k (nếu có) Nhu cầu của thực tiễnhiện nay đã khiến công nghệ mó hoỏ hiện đại phải thay đổi quan điểmnày Phương pháp f là cái thường do không chỉ một người nắm , nênkhô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ó hoỏ (tuỳ thuộcvào giá trị của nó), được xem là chỡa khoỏ mó Thông thường, nó là mộtxâu bit ( hay mét con số nào đó) mà người ta có thể giữ cho riêng mình

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

(non symmetric cryptosystem) là hệ mã mà trong đó việc lập mã và giải

mã sử dụng 2 chỡa khoỏ mó riêng biệt, từ chỡa khoỏ này không thể tìm rachỡa khoỏ kia một cách dễ dàng; chỡa dựng để lập mã thường được thôngbá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 khoỏ riờng

Đối tượng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh chohai người sử dụng (tạm gọi là A và B) sao cho người thứ ba (O) không thể hiểuđược thông tin được truyền đi trờn kờnh Kờnh này có thể là một đường dây điệnthoại hoặc một mạng máy tính Thông tin mà A muốn gửi cho B có thể là mộtvăn bản tiếng Anh, các dữ liệu bằng số hoặc bất cứ tài liệu nào có cấu trúc tuỳ ýgọi là bản rõ A sẽ mó hoỏ bản rõ bằng một khoỏ đó được xác định trước và gửibản mã kết quả trờn kờnh O có bản mã thu trộm được trờn kờnh song không thểxác định nội dung của bản rõ, nhưng B (người đã biết khoỏ mó) có thể giải mã vàthu được bản rõ

Trang 19

§Þnh nghÜa 1.4: Một hệ mật là một bộ 5 (P,C,K,E,D) thoả món cỏc điều

kiện sau:

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

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

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

4) Đối với mỗi k K có một quy tắc mã  K có một quy tắc mã ek: P C và một quy tắc giải mã C và một quy tắc giải mãtương ứng dk D Cặp  K có một quy tắc mã ek: P C và  C và một quy tắc giải mã dk: C P là những hàm thoả mãn: C và một quy tắc giải mã

dk(ek (x)) = x với mọi bản rõ x P. K có một quy tắc mã

Tính chất:

Hàm mó hoỏ và hàm giải mã là một hàm đơn ánh

Chứng minh:

Giả sử e k : P C  C không phải là hàm đơn ánh Nghĩa là,  x1  x2 sao

cho e k (x1) =e k (x2) suy ra d k (e k (x1))= d k (e k (x2)) tương đương x1 = x2 vô lý

Nhận xét:

- NÕu | P |=| C | thì hàm mó hoỏ là một song ánh

- Nếu P=C thỡ phộp mó hoỏ là một phộp hoán vị.

Trang 20

Xõy dựng chương trỡnh bảo vệ dữ liệu trờn mụi trường khụng an toàn

Chơng 3 Cỏc hệ mú hoỏ cổ điển

Xột vành Zm là một vành số nguyờn hữu hạn m phần tử được trang bị hai phộptoỏn + và * trờn modulo m

Hệ mó dịch vũng được xỏc định trờn Zm và mụ tả trong bảng sau:

Giả sử P = C = K = Zm với 0  k  m-1 , định nghĩa:

eK(x) = x +K mod m

và dK(x) = y -K mod m

(x,y  Z26)

Hình 1.1 Thuật toỏn thể hiện mó dịch vũng

Chú ý là một hệ mật dựng được trong thực tế thỡ phải thoả món rất nhiều tớnhchất mà hai trong số đú thể hiện nh sau:

+ Mỗi hàm mú hoỏ eK và mỗi hàm giải mó dK phải cú khả năng tớnhtoỏn được một cỏch hiệu quả

+ Đối phương dựa trờn xừu bản mó phải khụng cú khả năng xỏc địnhkhoỏ K đú dựng hoặc khụng cú khả năng xỏc định được xõu bản rừ x

Hệ mó dịch vũng cú khụng gian khoỏ K với độ lớn là m vỡ vậy, bằng phương

phỏp thử giải mó với nhiều nhất m khoỏ khỏc nhau ta cú sẽ thu được bản rừ Nhvậy, hệ mó dịch vũng khụng đỏp ứng được yờu cầu nờu trờn

Mó thay thế là một hệ mật nổi tiếng, tồn tại hàng trăm năm Trờn thực tế mó

Trang 21

trong mó thay thế, thớch hợp hơn là xem phộp mú và giải mó nh cỏc hoỏn vị củacỏc kớ tự.

Mó thay thế được mụ tả trong hỡnh sau:

Hình 1.2 Thuật toỏn thể hiện mó thay thế

Khoỏ của mó thay thế được lấy trong tập hoỏn vị của 26 Vậy, số khoỏ của

mó thay thế là : 26! > 4 x 1026 dẫn đến việc vột cạn khoỏ của mó thay thế là mộtđiều hết sức khú khăn Tuy nhiờn, với phương phỏp tấn cụng theo xỏc suất móthay thế vẫn khụng đủ đảm bảo an toàn

Giống nh mó dịch vũng mú Affine cũng là trường hợp đặc biệt của mó thay thế.Hàm giải mó của hệ mó Affine nh sau:

e(x) = ax + b mod 26Nếu a= 1 hệ mó Anffine chớnh là hệ mó dịch vũng

Để cú thể giải mó thành cụng cỏc hệ số a,b của hệ Affine phải thoả món yờucầu sau:  y  Z26 luụn  x để ax+b  y (mod 26)

Cho P =C = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu 0,1, ,25

Với mỗi phép hoán vị  K , ta định nghĩa:

e(x) = (x)và

d(y) =  -1(y)trong đó  -1 là hoán vị ngợc của 

Trang 22

Xõy dựng chương trỡnh bảo vệ dữ liệu trờn mụi trường khụng an toàntương đương: ax  y-b (mod 26).

Do y-b  Z26 nờn đặt y-b=Y ta cú đồng nhất thức:

ax  Y (mod 26)

Xột x là biến thỡ phương trỡnh đồng dư trờn cỳ nghiệm duy nhất x phụ thuộc

Y khi và chỉ khi gcd(a,26) = 1

mó Vigenốre nổi tiếng Mật mó này lấy tờn của Blaise de Vigenốre sống vào thế

kỷ XVI

Cho m là một số nguyên dơng cố định nào đó Định nghĩa P = C = K = (Z26)m Vớikhoá K = (k1, k2, ,km) ta xác định :

eK(x1, x2, ,xm) = (x1+k1, x2+k2, , xm+km)và

dK(y1, y2, ,ym) = (y1-k1, y2-k2, , ym-km)trong đó tất cả các phép toán đợc thực hiện trong Z26

Trang 23

Ta thấy rằng các từ khoá có thể với số độ dài m trong mật mã Vigenốre là

26m, bởi vậy, thậm chí với các giá trị m khá nhỏ, phương pháp tìm kiếm vét cạncũng yêu cầu thời gian khá lớn Ví dụ, nếu m = 5 thì không gian khoá cũng cókích thước lớn hơn 1,1 10 10 7 Lượng khoá này đã đủ lớn để ngăn ngõa việc tỡmkhoỏ bằng tay

Trong hệ mật Vigenốre cú từ khoá độ dài m, mỗi ký tự có thể được ánh xạvào trong m ký tự có thể có (giả sử rằng từ khoá chứa m ký tự phân biệt) Một hệmật nh vậy được gọi là hệ mật thay thế đa biểu (polyalphabetic) Nói chung, việcthỏm mó hệ thay thế đa biểu sẽ khó khăn hơn so việc thỏm mó hệ đơn biểu

Trong phần này sẽ mô tả một hệ mật thay thế đa biểu khác được gọi là mật

mã Hill Mật mã này do Lester S.Hill đưa ra năm 1929 Giả sử m là một số

nguyên dương, đặt P = C = (Z26)m í tưởng ở đây là lấy m tổ hợp tuyến tính

của m ký tù trong một phần tử của bản rõ để tạo ra m ký tự ở một phần tử củabản mã

Nói chung, có thể lấy một ma trận K kích thước m m làm khoá Nếu một 10phần tử ở hàng i và cột j của K là ki,,j thì có thể viết K = (ki,,j), với x = (x1,x2, ,xm)  K có một quy tắc mã P và K  K có một quy tắc mã K , ta tính y = eK(x) = (y1, y2, ,ym) như sau:

Trang 24

Xõy dựng chương trỡnh bảo vệ dữ liệu trờn mụi trường khụng an toàn

Nh vậy, khụng gian khoỏ chớnh là cỏc ma trận cấp m cú ma trận nghịch đảo.Sau đõy là mụ tả của hệ mật Hill:

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ỏ K Tức xõu bản mó y nhạn được cú dạng:

y = y1y2 = eK(x1) eK(x2 )

Cho m là một số nguyên dơng có định Cho P = C = (Z26 )m và cho

K = { các ma trận khả nghịch cấp m  m trên Z26}Với một khoá K K ta xác định

eK(x) = xK

Tất cả các phép toán đợc thực hiện trong Z26

Trang 25

Các hệ mật thuộc dạng này thường được gọi là cỏc mó khối khoá Một quanđiểm sử dụng khác là mật mã dũng khoỏ Ý tưởng cơ bản ở đây là tạo ra mộtdũng khoỏ z = z1z2 và dựng nú để mó hoỏ một xâu bản rõ x = x1x2 theoquy tắc:

y = y1y2 = ez1(x1) ez2(x1)

Mó dũng khoỏ hoạt động nh sau Giả sử K  K có một quy tắc mã K là khoá và x = x1x2 là xâu bản

rõ Hàm fi được dùng để tạo zi (zi là phần tử thứ i của dũng khoỏ) trong đó fi làmột hàm của khoá K và i-1 là ký tự đầu tiên của bản rõ:

zi = fi (K, x1 , , xi -1 )Phần tử zi của dũng khoỏ được dùng để mã xi tạo ra yi = eiz(xi) Bởi vậy, để móhoỏ xõu bản rõ x1 x2 ta phải tính liên tiếp: z1, y1, z2 , y2

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

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

§Þnh nghÜa 1.5: Mật mã dũng khoỏ là một bộ (P,C,K,L,F,E,D) thoả mãn

dược các điều kiện sau:

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

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

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

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

5) F = (f1 f2 ) là bộ tạo dũng khoỏ Với i 1 1

Trang 26

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn6) fi : K P 10 i -1 L  C và một quy tắc giải mã

7) Với mỗi z L có một quy tắc mã  K có một quy tắc mã ez E và mét quy tắc giải mã tương K có một quy tắc mã ứng dz D  K có một quy tắc mã ez : P C và  C và một quy tắc giải mã dz : C P là các hàm thoả mãn  C và một quy tắc giải mã dz(ez(x))= x vớimọi bản rõ x P. K có một quy tắc mã

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

đó dựng khoỏ không đổi: Zi = K với mọi i 1. 1

Một hệ mó dũng khoỏ được gọi là tuần hoàn với chu kỳ d nếu zi+d= zi với sốnguyên i 1 Mó Vigenốre với độ dài từ khoá m có thể coi là mó dũng khoỏ tuần 1hoàn với chu kỳ m Trong trường hợp này, khoá là K = (k1, km ) Bản thân K

sẽ tạo m phần tử đầu tiên của dũng khoỏ: zi = ki, 1 i m Sau đó dũng khoỏ sẽ j  m) sao cho y  j  m) sao cho y

j

j i

j z c

trong đó c0, , cm-1  K có một quy tắc mã Z2 là các hằng số cho trước

Trang 27

c0, , cm-1 thì một véc tơ khởi đầu bất kỡ khỏc (k1, , km) sẽ tạo nên mộtdũng khoỏ cú chu kỳ 2m -1 Bởi vậy một khoá ngắn sẽ tạo nên một dũng khoỏ cúchu kỳ rất lớn.

Kết luận:

Các hệ mó hoỏ cổ điển không thể đáp ứng được nhu cầu bảo mật dữ liệutrờn cỏc phương tiện công nghệ thông tin hiện nay, nhưng các tư tưởng củachúng vẫn còn nguyên giá trị Các hệ mó hoỏ mạnh nhất bõy giờ vẫn luụn cúbóng dáng của các hệ mó hoỏ cổ điển kèm theo Các hệ này được chia làm haidòng chính là các hệ mó hoỏ khoỏ đối xứng và các hệ mó hoỏ khoỏ công khai

Trang 28

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

Ch¬ng 4 Các hệ mã hóa hiện đại

4.1.1 Giới thiệu chung

Thuật toán mó hoỏ đối xứng là thuật toán cú khoỏ dựng để giải mã có thểtính toán được từ khoỏ dựng để mó hoỏ Trong nhiều hệ thống khoỏ dựng để móhoỏ và khoỏ dựng để giải mã là giống nhau Những thuật toán mó hoỏ này đượcgọi là thuật toán mó hoỏ bí mật, khoá đơn, hay một khoá (secret-key algorithms,single-key algorithms, one-key algorithms) Thuật toán mó hoỏ này cần ngườigửi và người nhận thống nhất một khoá trước khi trao đổi thông tin Khoá nàycần phải được cả hai giữ bí mật

Sự bảo mật của một thuật toán đối xứng dựa trờn khoỏ Tiết lộ khoỏ có nghĩarằng bất cứ ai biết khoá đều có thể mó hoỏ và giải mã thông tin trên hệ thốngnày

Nhúm mó hoỏ và giải mã bằng thuật toán đối xứng được thể hiện bằng côngthức:

Ek(P)=C

Dk(C)=P

Dk(Ek(P))=P

Thuật toán đối xứng lại được chia làm hai loại Một loại thực hiện trên bản

rõ từng bít một, gọi là thuật toán mó hoỏ dũng (stream algorithms, streamciphers) Còn một loại thực hiện trên bản rõ theo từng nhúm bớt một, và thuật

toán này được gọi là thuật toán mó hoỏ khối (block algorithms, block ciphers).

Những thuật toán mó hoá khối thường được thực hiện trên máy tính, thôngthường cỡ của một khối là 64 bít - đây là khối đủ lớn để ngăn ngõa sự phân tíchcủa các nhà thỏm mó và cũng đủ nhỏ để nó làm việc một cách hiệu quả Trước

Trang 29

tù Ta có thể xem nh là thuật toán mó hoỏ dũng thực hiện trên một dũng cỏc ký

tự còn thuật toán mó hoỏ khối thực hiện trờn cỏc khối 8 bít

Hai thuật toán mó hoỏ khúa đỗi xứng nổi tiếng là DES và AES Cho đến thờiđiểm này DES với số lượng khoá tối đa là 256 đã không còn được coi là an toàn.Giải pháp thay thế cho DES chính là AES Sau đây là các trình bày về AES

4.1.2 AES

4.1.2.1 Quá trình hình thành

Trước nguy cơ sụp đổ của DES trước các cuộc tấn công của các siêu máy tínhđương thời, ngày 2/1/1997 Viện tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ(NIST) đã chính thức đưa ra đề nghị cộng đồng tham gia vào việc xây dựng mộtchuẩn mó hoỏ nâng cao( Advanced Encryption Standard-AES) Các tiêu chí củaviệc xây dựng này có một số điểm đáng chú ý nh sau:

+ AES được xác lập công khai

+ AES là hệ mã khối đối xứng

+ AES được thiết kế sao cho có độ dài khoá có thể mở rộng theo yêu cầu.+ AES có thể triển khai được trên cả phần cứng và phần mềm

+ AES cần phải là sản phẩm miễn phí hoặc được cho dưới các điều kiệnphù hợp với chính sách về bản quyền của Viện tiêu chuẩn quốc gia HoaKỳ

+ Các thuật toán thoả món cỏc điều kiện trên được xem xét trên cơ sở cácphương diện sau:

 Tính bảo mật;

 Tính hiệu quả về mặt tính toán;

 Nhu cầu đòi hỏi về bộ nhớ;

 Tính đơn giản;

 Tính mềm dẻo, linh động;

 Các yêu cầu về phương diện bản quyền

Trang 30

Xõy dựng chương trỡnh bảo vệ dữ liệu trờn mụi trường khụng an toànSau một thời gian xem xột và thảo luận thờm, thỏng 9/1997 NIST chớnhthức đưa ra lời kờu gọi hưởng ứng cuộc thi xõy dựng thuật toỏn cho AES.

Trong vũng I, từ thỏng 8/98 đến 4/99, sau khi loại bỏ cỏc phương ỏn khụngthoả mún cỏc tiờu chớ đề ra, người ta chớnh thức đưa vào xem xột 15 phương ỏn(gửi đến từ khắp nơi trờn thế giới: Đức, Bỉ, ỏo, Phỏp, Nhật…)

Trong vũng 2, từ 8/1999 đến 5/2000, từ 15 phương ỏn xem xột người ta lọc

ra được 5 phương ỏn để đưa vào vũng chung kết, đú là:

Trong vũng chung kết, diễn ra trong 90 ngày từ đầu thỏng 3 đến cuối thỏng5/2001, với sự xem xột tỷ mỷ cả 5 thuật toỏn từ mọi phương diện, người ta đóchọn Rijndael làm thuật toỏn cho AES NIST tổng hợp cỏc thụng tin về Rijndael

và tiếp tục đưa ra cho cộng đồng xem xột và bỡnh luận lần cuối, trước khi đến kếtluận cuối cựng vào cuối mựa hố năm 2001

Thuật toỏn Rijdael mang đậm màu sắc toỏn học Trong thuật toỏn này,ngoài cỏc tớnh toỏn đồng dư và cỏc phộp tớnh bit (thường gặp trong cỏc thuật toỏnkhỏc), người ta đó thiết lập những phộp toỏn khỏ đặc biệt trong trường hữu hạn

và trong vành đa thức trờn trường hữu hạn

Tên thuật toán Những ngời sáng chế

RC6 RSA Laboratories (đại diện bởi Burt Kaliski)

Serpent Ross Anderson, Eli Biham, Lars Knudsen

Towfish Burce Schneier, John Kelsey, Doug Whiting,

David Wagner, Chirs Hall, Niels Ferguson

Trang 31

AES sử dụng khối đầu vào, khối đầu ra và khối trung gian State có chiềudài 128 bit Khoá được sử dụng có chiều dài 128, 192 hoặc 256 bit tuỳ chọn.Tương ứng với khoá ta có 3 phiên bản AES là AES-128, AES-192, AES-256 Sau đây là các thông số tương ứng với 3 phiên bản AES:

Chiều dài khoá Nk

(Đơn vị 32 bit)

Cỡ khối Nb(Đơn vị 32 bit)

Số vòng Nr

H×nh 1.5 Bảng mô tả các thông số của 3 phiên bản AES

Các thông số ở bảng này sẽ được mô tả kỹ hơn trong các mục tiếp theo

Vì thuật toán Rijndael có những phương pháp tiếp cận tương đối mới nên nhữngkiến thức cơ sở hầu nh khụng đáp ứng được do đó trong phần này cơ sở toán họccủa thuật toán được đề cập tới trong phần công cụ chuẩn bị

Trang 32

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàntrương các byte) như tập các hệ số của một đa thức (cú cỏc hệ số là byte và cóbậc kém số chiều của không gian vộctơ một đơn vị) Nh vậy, các phép toán trờncỏc từ có thể được định nghĩa thông qua các phép toán trờn cỏc đa thức (với các

hệ số là byte)

4.1.2.3 Trường các byte

Ta biết rằng mỗi byte (chứa 8 bit) biểu diễn một số trong khoảng từ 0 đến

255 Tên của byte được đặt theo giá trị mà nó biểu diễn: có thể được viết trong hệ

cơ số 16 với dấu nháy đơn ‘…’, hoặc trong hệ nhị phân( cơ số 2) với dấu nhỏykép ”…”

Mỗi byte b chứa các bit “b7 b6 b5 b4 b3 b2 b1 b0” được biểu diễn nh mét đa thức bậckhông quá 7 với các hệ số trong trường {0, 1}, xác định nh sau:

b7x7 +b6x6 +b5x5 +b4x4 +b3x3 +b2x2 +b1x +b0.Trong trường hợp này ta cũng nói b là byte biểu diễn các hệ số của đa thức nêutrên

4.1.2.4 Phép cộng

Trong phép biểu diễn dạng đa thức, tổng của 2 phần tử ( byte) sẽ là một đathức bằng tổng của 2 đa thức biểu diễn các phần tử đó, trong đó các hệ số đượccộng theo modulo 2 (tức là theo nguyên tắc 1+1=0)

Nh vậy, có thể thấy phép cộng trong trường hợp này chính là phép loại bit ở mứcbyte (8 bit) cho nên sẽ được ký hiệu là ).)

Dễ nhận thấy phép cộng trên thoả mãn đầy đủ các yêu cầu đối với một nhómAbel (với phần tử trung hoà là ‘00’, và mọi phần tử đều là ngược của chớnh nó

Nh vậy phép trừ cũng chính là phép cộng

4.1.2.5 Phép nhân

Trang 33

Một cách tự nhiên là định nghĩa tích của 2 byte thông qua tích của hai đathức biểu diễn các byte đó Tuy nhiên, tích của 2 đa thức bậc nhỏ hơn 7 có khảnăng có bậc lớn hơn 7, cho nên để có được một đa thức bậc không quá 7 người tatiến hành rút gọn theo modulo một đa thức bậc 8 Chớnh vỡ lý do này, để địnhnghĩa phép nhân trên tập các byte, người ta lấy một đa thức bất khả quy bậc 8 sauđây:

Tóm lại, tập hợp 256 phần tử byte với phép cộng là và phép nhân định nghĩa ở).trên cú cựng cấu trúc của một trường Đây cũng chính là trường Galois GF(28)

Để tiến hành nhân nhanh trong trường các byte ta để ý như sau:

Bản thân phép nhân 2 byte nêu trên không được ứng với một phép toán đơn giảnnào ở mức byte Nhưng một tính chất đáng lưu ý của phép nhân này là nó có thểquy về các phép nhân đơn giản hơn, vì phép nhân với một đa thức có thể xem làtổng của vài phép nhân với biến x Như vậy, phép nhân ( với một phần tử bất kỳ)

sẽ trở nên dễ dàng nếu như phép nhân với x được thực thi dễ dàng

Chó ý:

Đa thức x biểu diễn một phần tử byte ‘02’ ( ”00000010”), cho nên phép nhân với

x sẽ được triển khai tương đối thuận lợi

4.1.2.6 Nhân với x

Trang 34

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toànVới byte b= “b7 b6 b5 b4 b3 b2 b1 b0”, ta có

0, 7 b khi xb(x),

Khi b7=0, biểu thức xb(x) là một đa thức bậc không quá 7 và byte biểu diễn hệ sốcủa nó thu được từ byte b bằng cách cho các bit dịch trái (shift left) Khi b7 =1 thìxb(x) là một đa thức bậc 8 và do m(x) cũng là một đa thức bậc 8 nên ta có:

xb(x)-m(x)=(xb(x)-x8)-(m(x)-x8),Nhân với x là một hàm cơ bản trong thuật toán được ký hiệu là xtime và chỉ tốn 4phép loại bit trong các phần cứng có tính “chuyờn nghiệp”

4.1.2.7 Đa thức với hệ số byte ( trong trường GF(28))

Ta biết rằng trên một trường hữu hạn bất kỳ có thể xây dựng các không gianvecto, hoặc các vành đa thức, và điều này không là ngoại lệ đối với trường cácbyte, GF(28), mà ta đã thiết lập ở trên Luôn tồn tại mối quan hệ tương ứng giữacỏc vộctơ và đa thức xác định trên cùng một trường, trong đó các toạ độ của mộtvộctơ k chiều được ứng với các hệ số của một đa thức bậc không vượt quá k-1.Sau này ta sẽ xem xét các bộ 4 byte và các đa thức ( hay cỏc vộctơ tương ứng)được thực hiện theo thông lệ quen biết Phép cộng này được quy về phép cộng ()).các byte trong trường GF(28)

Phép nhân hai đa thức có phần phức tạp hơn, do 2 yếu tố:

Các hệ số của đa thức tích phải được tính theo quy tắc nhân ( ) và cộng () các) và cộng () các ) các

hệ số trong trường GF(28)

Trang 35

Đa thức tích phải có bậc nhỏ hơn 4 cho nên sau các tính toán “thụng thường”phải tiến hành rút gọn theo modulo một đa thức tối giản bậc 4 nào đó Trongthuật toán Rijndael đa thức này là M(x)=x4 + 1.

Xét hai đa thức với hệ số byte:

Trang 36

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

a a a a

a a a a

a a a a

3

1

0 1 2 3

3 0 1 2

2 3 0 1

1 2 3 0

b b d

Vài nét đặc trưng về thiết kế

Ba tiêu chí được quán triệt trong quá trình thiết kế là:

+ Có khả năng chống được các phương pháp thám mó đã biết;

+ Chương trình gọn, tốc độ nhanh và đa nền( platforms);

+ Thiết kế sáng sủa;

Trong hầu hết các hệ mã đối xứng, phép biến đổi các dữ liệu tại mỗi vòngthường có cấu trúc feistel, nghĩa là ở đó một phần các bit ( của trạng thái trunggian) được chuyển sang một vị trí mới mà không thay đổi gì Trong Rijndael thìđiều này không xảy ra Thay vào đó, tại mỗi vòng, sự biến đổi dữ liệu được cấuthành từ 3 phép biến đổi khả nghịch, gọi là các tầng( layer), tuy độc lập với nhaunhưng tương tù nh nhau Mỗi tầng có hàm của riêng mình Trong đó:

Trang 37

Tầng trộn tuyến tính (linear mixing) mang lại tính khuếch tán cao độ qua cỏcvũng (nghĩa là sự thay đổi ở một vị trí sẽ kéo theo sù thay đổi ở nhiều vị trí trongcỏc vũng tiếp theo).

Tầng phi tuyến sử dụng cỏc phộp thay thế song song (thông qua các S-box) manglại các tính chất phi tuyến tối ưu

Tầng cộng với khoá thực hiện phép loại bit giữa trạng thái dữ liệu trung gian vớikhoá của vòng

Trước khi tiến hành vòng đầu tiên, tầng cộng với khoá được sử dụng để chống lạicác khả năng phát hiện các tầng khác (thực hiện trước hoặc sau tầng này)

Tầng trộn tuyến tính của vòng cuối cùng được thiết kế khác với cỏc vũng khỏcchỉ để nhằm mục đích làm cho tiến trình mó hoỏ và giải mã được giống nhau hơn( còng như việc vỏ đi phép “ tráo đổi các vế dữ liệu” tại vòng cuối cùng trongDES) Có thể chứng minh được rằng điều này không làm tăng hoặc giảm độ antoàn của thuật toán Một điều đáng lưu ý là độ dài khoá và độ dài khối trongRijndael có thể thay đổi ( hoàn toàn độc lập với nhau) trong tập các giá trị 128,

192 hoặc 256 bit

4.1.2.9 Trạng thái, khoỏ mó và số lượng vòng

Trạng thái ( state) là kết quả mó hoỏ trung gian ( chưa phải là văn bản mó) Núđược mô tả bằng một mảng chữ nhật ( với phần tử là các byte), có 4 dòng và ssốlượng cột thay đổi theo độ dài khối sử dụng( bằng độ dài khối chia cho 32) Trênthực tế, mỗi phần tử của mảng là 1 byte ( 8 bit), và mỗi cột của mảng là mộtvectơ 4- byte ( hay cũng chính là một từ theo cách gọi ở trên) Người ta ký hiệu

số lượng cột của mảng trạng thái Nb, và nh vậy 32 Nb chính là độ dài khối

Khoỏ mã ( cipher key) cũng được mô tả tương tự bởi một mảng chữ nhật với 4dòng và số lượng cột bằng độ dài khoá chia cho 32, ký hiệu là Nk (hay nói cỏch:khoỏ cú độ dài là 32Nk)

Trang 38

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

Do độ dài khối là độc lập với độ dài khóa cho nên Nb và Nk nói chung là khácnhau

Trong một số trường hợp người ta cũng biểu diễn các khối state dưới dạng cácmảng 1 chiều, trong đó mỗi phàn tử của mảng không phải là một byte mà là một

từ ( tức là một vectơ 4 – byte, và cũng là một cột trong mảng chữ nhậtt nêu trên)

Để thuận tiện cho việc đánh chỉ số, các byte trong mảng một chiều được đánhliên tiếp nhau (từ 0 đến (4 x Nb -1) trong mảng trạng thái, và từ 0 đến ( 4x Nk -1)trong mảng khoỏ mó ), để không phải ding tới 2 chỉ số

Đầu vào (input) và đầu ra (output) tại các “ cửa giao tiếp” của thuật toán sẽ lànhững mảng một chiều tương ứng với khối, với các byte được đánh thứ tự từ 0đến (4x Nb-1) Các khối này sẽ có độ dài là 16, 24 hay 32 byte ( tuỳ theo việcthuộc vào việc lấy độ dài khối là 128, 192 hay 256 bit), và chỉ số cho các phần tửđược đánh, tương ứng, trờn cỏc dải 0….15, 0… 23 hay 0…… 31

Khoỏ mã cũng được xem cột như các mảng một chiều với phần tử là các byte ( 8bit) được đánh chỉ số từ 0 đến ( 4x Nk -1), và do đó cũng có độ dài là 16, 24, hay

32 byte, cũn cỏc phần tử của mảng cũng được đánh chỉ số, tương ứng, trờn cỏcdải 0…15, 0…23 hay 0…31

Từng khối dữ liệu đầu vào được xếp thành mảng chữ nhật theo thứ tự xếp đầytừng cột ( từ trên xuống dưới và từ trái qua phải) nghĩa là được ánh xạ lần lượtvào các vị trí:

Trang 39

Sau quá trình mó hoỏ thỡ trong khối dữ liệu đầu ra cũng được lấy ra từ mảngtheo thể thức tương ứng

Nh vậy, nếu một byte có chỉ số trong mảng một chiều là n và chỉ số trong mảngchữ nhật ( 2 chiều) là ( i, j ) thỡ cỏc chỉ số này sẽ thoả mãn quan hệ sau đây:n= i+ 4.j ; i = n mod 4 ; j =| n / 4 |

Rõ ràng, chỉ số i cũng cớnh là chỉ số của byte trong từ ( vectơ 4-byte), và j cũngchính là chỉ số của từ trong lòng một khối

Số lượng vòng trong thuật toán Rijndael, ký hiệu là Nr, được xác định trong mốitương quan khăng khít với độ dài khối và độ dài khoá, tức là với các giá trị Nb và

Nk xem hình phía trên

4.1.2.10 Các phép biến đổi trong một vòng

Trước hết ta đưa ra 4 phép biến đổi cơ bản và sau đó, trên cơ sở các phép biếnđổi này, ta trình bày thuật toán biến đổi của mỗi vòng

4.1.2.11 Phép thế byte ( subbyte transformation)

Đây là phép biến đổi phi tuyến được thực hiện một cách độc lập trên trong bytecủa trạng thái Hộp thay thế ( hay còn gọi là S- box) là “ khả nghịch “ và đượcthiết lập trên cơ sở tích của 2 phép toán sau:

Phép lấy byte ngược thay thế mỗi byte bằng nghịch đảo của nó (theo phép nhântrong trường các byte GF (28)

Phép biến đổi affine, theo đó byte ‘x’=” x0 x1 x2 x3 x4 x5 x6 x7” ( kết quả có đượcsau phép lấy byte ngược đó nờu ở trên), được chuyển thành byte ‘y’=” y0 y1 y2 y3

y4 y5 y6 y7” xác định theo công thức sau:

Trang 40

Xây dùng chương trình bảo vệ dữ liệu trên môi trường không an toàn

y y y y

1 1

1 0

0 0

0 1

1 1

1 1

0 0

0 0

1 1

1 1

1 0

0 0

0 1

1 1

1 1

1 0

0 0

1 1

1 1

1 1

0 0

0 1

1 1

1 1

1 0

0 0

1 1

1 1

1 1

0 0

0 1

x x x x

Nh vậy, phép thế byte biến từng byte aij ( trong mảng trạng thái chữ nhật) thành

trong byte bij ( trong mảng trạng thái mới, cũng hình chữ nhật ) một cỏch độc lập

với nhau Xét về mặt bản chất, nó hoạt động giống nh mét hộp thay thế ( S- box)

thường gặp trong một số hệ mã đối xứng quen biết

Do phép biến đổi affine với ma trận như trên là khả nghịch, cho nên phép thay

thế byte cũng là khả nghịch( phép toán ngược của nó cũng là tích cảu một phép

biến đổi affine với mà trận ngược một phép lấy byte nghịch đảo theo phép nhân

trng trường các byte GF (28)

Phép thế byte có thể được viết thành một hàm ( lệnh) với tên sau đây:

SubBytes (state) 4.1.2.12 Phép dịch hàng( ShiftRows Transformation)

Trong phép biến đổi này, các hàng trong mảng trạng thái được dịch xoay vòng

sang phớa trỏi, nhưng số lượng vị trí dịch chuyển của các hàng là không giống

nhau Hàng 0 ( trên cùng trong mảng ) là đứng yên khong dịch chuyển Các hàng

thứ 1 thứ 2, thứ 3 được dịch vòng sang phớa trỏi theo các số lượng byte tương

ứng là C1, C2, C3 xác định trong mối tương quan với độ dài khối theo bảng sau

Ngày đăng: 22/11/2014, 08:41

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Thuật toỏn thể hiện mó thay thế - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Thuật toỏn thể hiện mó thay thế (Trang 18)
Hình 1.1 Mật mó Vigenố - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Mật mó Vigenố (Trang 19)
Hình 1.1 Hệ mật Hill - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Hệ mật Hill (Trang 21)
Hình 1.1 Bảng mụ tả cỏc thụng số của 3 phiờn bản AES - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Bảng mụ tả cỏc thụng số của 3 phiờn bản AES (Trang 28)
Hình 1.1 Thuật toỏn mở rộng khoỏ của chuẩn AES - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Thuật toỏn mở rộng khoỏ của chuẩn AES (Trang 40)
Hình 1.1 Thuật toỏn tớnh thụng tin băm bằng MD5 - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Thuật toỏn tớnh thụng tin băm bằng MD5 (Trang 51)
Hình 1.2 Tạo thụng điệp băm cho MD5 - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.2 Tạo thụng điệp băm cho MD5 (Trang 52)
Hình 1.3 Xử lý khối đơn 512 bit (HDMD5) - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.3 Xử lý khối đơn 512 bit (HDMD5) (Trang 53)
Hình 1.4 Tỏc vụ MD5: [abcd k s i] - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.4 Tỏc vụ MD5: [abcd k s i] (Trang 54)
Bảng 1.5 Cỏc kiểu thuộc tớnh của tập tin và thư mục của NTFS - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.5 Cỏc kiểu thuộc tớnh của tập tin và thư mục của NTFS (Trang 61)
Hình 1.1 Mụ hỡnh volume ảo - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Mụ hỡnh volume ảo (Trang 64)
Hình 1.1 Bảng thụng tin volume - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Bảng thụng tin volume (Trang 65)
Bảng 1.6 Cỏc trạng thỏi của block - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.6 Cỏc trạng thỏi của block (Trang 67)
Hình 1.1 Lưu trữ file trong volume ảo - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Lưu trữ file trong volume ảo (Trang 68)
Hình 1.1 Cấu trỳc thư mục - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Cấu trỳc thư mục (Trang 69)
Bảng 1.8 Nội dung Entry - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.8 Nội dung Entry (Trang 70)
Bảng 1.9 Thuộc tớnh file - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.9 Thuộc tớnh file (Trang 71)
Bảng 1.10 Bảng thụng tin mở rộng volume ảo lưu trờn 1 file - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.10 Bảng thụng tin mở rộng volume ảo lưu trờn 1 file (Trang 72)
Hình 1.1 Cấu trúc volume ảo lưu trữ trờn nhiều file - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Cấu trúc volume ảo lưu trữ trờn nhiều file (Trang 73)
Bảng 1.12 Thụng tin liờn kết của volume ảo lưu trờn nhiều file - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.12 Thụng tin liờn kết của volume ảo lưu trờn nhiều file (Trang 74)
Bảng 1.13 Cỏc hàm vào ra volume ảo mức thấp - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.13 Cỏc hàm vào ra volume ảo mức thấp (Trang 83)
Bảng 1.14 Cỏc hàm vào ra volume ảo mức block - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng 1.14 Cỏc hàm vào ra volume ảo mức block (Trang 84)
Hình 1.1 thuật toỏn cấp phỏt block - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 thuật toỏn cấp phỏt block (Trang 88)
Hình 1.1 Kết quả tỡm kiếm từ  khoỏ “hệ thống bảo mật” trờn trang 1 của google - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Kết quả tỡm kiếm từ khoỏ “hệ thống bảo mật” trờn trang 1 của google (Trang 105)
Hình 1.3 Minh hoạ việc khụng hỗ trợ tỡm kiếm tiếng Việt của google bằng cách tìm  từ khoá thiếu dấu “hờ thụng bảo mật” - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.3 Minh hoạ việc khụng hỗ trợ tỡm kiếm tiếng Việt của google bằng cách tìm từ khoá thiếu dấu “hờ thụng bảo mật” (Trang 106)
Hình 1.2 Minh hoạ việc đồng nhất chữ hoa và chữ thường kể cả đối với tiếng Viẹt trong việc tìm kiếm của google - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.2 Minh hoạ việc đồng nhất chữ hoa và chữ thường kể cả đối với tiếng Viẹt trong việc tìm kiếm của google (Trang 106)
Hình 1.4 Minh hoạ chức năng trợ giỳp chớnh tả tiếng Anh của google khi đưa vào từ khoá sai “new technlogy” - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.4 Minh hoạ chức năng trợ giỳp chớnh tả tiếng Anh của google khi đưa vào từ khoá sai “new technlogy” (Trang 107)
Hình 1.1 Cấu trỳc của altavista - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Cấu trỳc của altavista (Trang 108)
Bảng chuyển trạng thái của ụtụmat đếm số thuận thế cấp 1 là: - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Bảng chuy ển trạng thái của ụtụmat đếm số thuận thế cấp 1 là: (Trang 126)
Hình 1.1 Giao diện của chương trỡnh quản lý volume ảo Hình 1.2 Giao diện chương trình demo thuật toán tìm kiếm mờ - xây dựng chương trình bảo vệ dữ liệu trên môi trường không an toàn
Hình 1.1 Giao diện của chương trỡnh quản lý volume ảo Hình 1.2 Giao diện chương trình demo thuật toán tìm kiếm mờ (Trang 140)

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