mã hóa văn bản xml

23
Gio viên HD: Phm Tun Đt M ha văn bn XML LỜI NÓI ĐẦU Với sự phát triển mnh mẽ của Internet và nhu cầu chia sẽ thông tin ở mọi nơi, tư nhiều nền khác nhau thì XML ngày càng được phát triển và đng một vai trò rt quan trọng trong việc tổ chức và chia thông tin. C rt nhiều hệ thống qun trị CSDL cỡ lớn đang hỗ trợ CSDL XML như: Oracle, IBM, MS SQL, v.v… Tuy nhiên một nhược điểm dễ thy của CSDL XML đ là tính bo mật. Hầu hết các dữ liệu được tổ chức, lưu trữ và truyền ti trên nền XML đều ở dưới dng văn bn thuần túy (text base) nên rt dễ bị rò rỉ thông tin nếu ta dùng XML để tổ chức và truyền ti cho những dữ liệu nhy cm. Một yêu cầu được đặt ra là làm sao c thể bo mật được thông tin khi lưu trữ và truyền ti trền nền CSDL XML nhưng vẫn giữ được điểm mnh truyền thống vốn c của CSDL XML là dữ liệu vẫn được tổ chức dưới dng văn bn thuần túy (text base). Trên tinh thần đ, các tổ chức và công ty lớn trong lĩnh vực nghiên cứu và xây dựng các hệ QT CSDL, bo mật và các chuẩn chung về Internet như: W3C, IBM, Sinh viên : Hoàng Văn Đt 1

Upload: nhu-my

Post on 30-Oct-2014

124 views

Category:

Documents


4 download

DESCRIPTION

đồ án tốt nghiệp

TRANSCRIPT

Page 1: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

LỜI NÓI ĐẦU

Với sự phát triển manh mẽ của Internet và nhu cầu chia sẽ thông tin ở

mọi nơi, tư nhiều nền khác nhau thì XML ngày càng được phát triển và đong

một vai trò rât quan trọng trong việc tổ chức và chia thông tin. Co rât nhiều hệ

thống quan trị CSDL cỡ lớn đang hỗ trợ CSDL XML như: Oracle, IBM, MS

SQL, v.v…

Tuy nhiên một nhược điểm dễ thây của CSDL XML đo là tính bao mật.

Hầu hết các dữ liệu được tổ chức, lưu trữ và truyền tai trên nền XML đều ở

dưới dang văn ban thuần túy (text base) nên rât dễ bị rò rỉ thông tin nếu ta

dùng XML để tổ chức và truyền tai cho những dữ liệu nhay cam.

Một yêu cầu được đặt ra là làm sao co thể bao mật được thông tin khi

lưu trữ và truyền tai trền nền CSDL XML nhưng vẫn giữ được điểm manh

truyền thống vốn co của CSDL XML là dữ liệu vẫn được tổ chức dưới dang

văn ban thuần túy (text base). Trên tinh thần đo, các tổ chức và công ty lớn

trong lĩnh vực nghiên cứu và xây dựng các hệ QT CSDL, bao mật và các

chuẩn chung về Internet như: W3C, IBM, Oracle,v.v…đa kết hợp với nhau để

xây dựng một chuẩn công nghệ cho việc ma hoa thông tin và bao mật dữ liệu

trên nền CSDL XML. Công nghệ này tam gọi chung là ma hoa và bao mật

trền CSDL XML (XML Encryption & Security).

Sinh viên : Hoàng Văn Đat

1

Page 2: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Chương I : Tông quan

I.PHẠM VI ĐỀ TÀI

1.Tên đề tài:

“Xây dựng chương trình ma hoa văn ban xml

theo giai thuật AES”

2.Mục đích, yêu cầu

-Tìm hiểu giai thuật ma hoa khối AES

-Tìm hiểu về văn ban XML và ứng dung

-Tìm hiểu bộ công cu lập trình Dotnet 2005

-Xây dựng và hoàn thiện chương trình

II. CẤU TRÚC CHUNG CỦA BÁO CÁO

Câu trúc của báo cáo gôm 4 chương:

Chương I : Tổng quan

Chương II: Thuật toán AES

Chương III: XML

Chương IV: Xây dựng chương trình

Sinh viên : Hoàng Văn Đat

2

Page 3: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Chương II: Thuật toán AES

Trong mật ma học, AES (viết tắt của từ tiếng Anh: Advanced

Encryption Standard) là thuật toán được thiết kế bởi hai nhà mật ma học

người Bỉ: Joan Daemen và Vincent Rijmen

I.Mô tả thuật toán

Đối với thuật toán AES, độ dài của khối đầu vào, đầu ra và Trang thái

đều là 128 bít. Như vậy Nb=4 là số lượng các từ 32 bít (số cột) của Trang

thái.

Trong thuật toán AES, độ dài Khoa ma K co thể là 128, 192 hoặc 256

bít. Độ dài khoa được biểu diễn bằng một số Nk = 4, 6, hoặc 8 thể hiện số

lượng các từ 32 bít (số cột) của Khoa ma.

Số vòng được thay đổi trong quá trình thực thi thuật toán phu thuộc vào

kích cỡ khoa. Số vòng này được ký hiệu là Nr, trong AES, Nr = 10 khi Nk =

4, Nr = 12 khi Nk = 6 và Nr = 14 khi Nk = 8.

Thuật toan:

Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

begin

byte state[4,Nb]

state = in

AddRoundKey(state, w[0,Nb-1])

for round = 1 step 1 to Nr–1

SubBytes(state)

ShiftRows(state)

MixColumns(state)

AddRoundKey(state, w[round*Nb, (round+1)*Nb-1])

end for

SubBytes(state)

ShiftRows(state)

AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

out = state

end

Sinh viên : Hoàng Văn Đat

3

Page 4: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Các phép toán của thuật toán AES được thực hiện trên một mang byte

hai chiều gọi là Trạng thái. Trang thái bao gôm 4 hàng byte, mỗi hàng chứa

Nb byte, trong đo Nb bằng số lượng từ trong một khối.

1.Phep SubBytes()

Các byte được thế thông qua bang tra S-box. Đây chính là quá trình phi

tuyến của thuật toán

Hộp-S được trình bày ở dang thập luc phân như trong hình sau:

y

0 1 2 3 4 5 6 7 8 9 a B c d e f

x

0 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76

1 ca 82 c9 7d Fa 59 47 f0 ad d4 a2 Af 9c a4 72 c0

2 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15

3 04 c7 23 C3 18 96 05 9a 07 12 80 e2 eb 27 b2 75

4 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84

5 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf

6 d0 ef Aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8

7 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2

8 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73

9 60 81 4f dc 22 2a 90 88 46 ee b8 14 de 5e 0b db

a e0 32 3a 0a 49 06 24 5c c2 d3 ac 62 91 95 e4 79

b e7 c8 37 6d 8d d5 4e a9 6c 56 f4 Ea 65 7a ae 08

c ba 78 25 2e 1c a6 b4 c6 e8 dd 74 1f 4b bd 8b 8a

d 70 3e b5 66 48 03 f6 0e 61 35 57 b9 86 c1 1d 9e

e e1 f8 98 11 69 d9 8e 94 9b 1e 87 e9 ce 55 28 df

f 8c a1 89 0d Bf e6 42 68 41 99 2d 0f b0 54 bb 16

Ví du, nếu s1,1= {53}, thì giá trị thay thế được xác định bởi vị trí giao của hàng

số “5” và cột số “3” trong hình trên. Điều này cho kết qua s’1,1 là {ed}.

2.Phep ShiftRows()

Trong phép biến đổi ShiftRows(), các byte ở ba hàng cuối của Trang

thái được dịch vòng theo số lượng byte khác nhau (các offset). Hàng đầu tiên,

r=0, không được dịch chuyển

Sinh viên : Hoàng Văn Đat

4

Page 5: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Cu thể, Phép biến đổi ShiftRows() thực hiện như sau:

s’r,c = sr, (c + shift(r,Nb)) mod Nb với 0 < r < 4 và 0 ≤ c < Nb

trong đo giá trị dịch chuyển shift(r,Nb) phu thuộc vào số lượng hàng r, như

sau (chú ý rằng Nb = 4):

shift (1,4) = 1 ; shift (2,4) = 2 ; shift (3,4) = 3

Phép ShiftRow() được mô ta như hình sau:

3.Phep MixColumns()

Phép biến đổi MixColumns() trên Trang thái được thực hiện theo từng cột,

nghĩa là mỗi cột được xem như là một đa thức 4 hang tử. Các cột được coi là

các đa thức trên trường GF(28) và được nhân theo modulo x4 + 1 với một đa

thức cố định a(x) sau đây:

a(x) = {03}x3 + {01}x2 + {01}x + {02}

Điều này co thể biểu diễn dưới dang một phép nhân ma trận.

Gia sử s’( x) = a( x) • s( x) :

c

c

c

c

c

c

c

c

s

s

s

s

s

s

s

s

,3

,2

,1

,0

,3

,2

,1

,0

02010103

03020101

01030201

01010302

'

'

'

với 0 ≤ c < Nb.

Sinh viên : Hoàng Văn Đat

5

ShiftRow()

sr,0 sr,1 sr,2 sr,3 s’r,0 s’r,1 s’r,2 s’r,3

s0,0 s0,1 s0,2 s0,3

s1,0 s1,1 s1,2 s1,3

s2,0 s2,1 s2,2 s2,3

s3,0 s3,1 s3,2 s3,3

s0,0 s0,1 s0,2 s0,3

s1,1 s1,2 s1,3 s1,0

s2,2 s2,3 s2,0 s2,1

s3,3 s3,0 s3,1 s3,2

s s’

Page 6: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

4.Phep AddRoundKey()

Trong Phép biến đổi AddRoundKey(), một Khoa vòng được cộng với Trang

thái bằng một phép toán XOR đơn gian trên bít. Mỗi Khoa vòng bao gôm Nb

từ nhận được từ lược đô khoa. Nb từ này được cộng với các cột của Trang

thái sao cho:

[s'0,c , s'1,c , s'2,c s'3,c ] =[s0,c , s1,c , s2,c , s3,c ] [wround Nb c ] với 0 c < Nb

Trong đo, [wi] là các từ của lược đô khoa, round là một giá trị nằm

trong 0≤round ≤ Nr.

Các thao tác của Phép biến đổi này được minh họa trong hình sau:

II.Giải ma

Các phép biến đổi trong Phép ma hoa co thể được đao ngược và sau đo

thực thi theo chiều ngược lai nhằm tao ra Phép giai ma trực tiếp của thuật toán

AES. Các phép biến đổi sử dung trong Phép giai ma là InvShiftRows(),

InvSubBytes(), InvMixColumns()và AddRoundKey().

Thuật toan:

InvCipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)])

begin

byte state[4,Nb]

state = in

AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1])

Sinh viên : Hoàng Văn Đat

s’0,0s0,1s’0,2s’0,3s’1,0s1,1s’1,2s’1,3s’2,0s2,1s’2,2s’2,3s’3,0s3,1s’3,2s’3,3

s’0,cs’1

,cs’2,cs

’3,cs0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3

s0,cs1,cs2,cs3,c

l round * Nb

6

wl+1 wl+2 wl+3

wl+c

Page 7: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

for round = Nr-1 step -1 downto 1

InvShiftRows(state)

InvSubBytes(state)

AddRoundKey(state,w[round*Nb,(round+1)*Nb-1])

InvMixColumns(state)

end for

InvShiftRows(state)

InvSubBytes(state)

AddRoundKey(state, w[0, Nb-1])

out = state

end

1.Phep InvShiftRows()

Phép biến đổi InvShiftRows() là phép biến đổi ngược của ShiftRows(). Các

byte trong ba từ cuối của Trang thái được dịch vòng theo số byte khác nhau

(offset). Ở hàng đầu tiên (r =0) không thực hiện phép chuyển dịch. Ba hàng

dưới cùng được dịch vòng Nb shift (r, Nb) byte.

Cu thể, phép biến đổi InvShiftRows() được thực hiện như sau:

sr, (c + shift(r,Nb)) mod Nb = s’r,c với 0 < r < 4 và 0 ≤ c < Nb

Phép InvShiftRows() được mô ta như hình sau:

Sinh viên : Hoàng Văn Đat

InvShiftRow()

sr,0sr,1sr,2sr,3 s’r,0s’r,1s’r,2s’r,3

s0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0s2,1s2,2s2,3s3,0s3,1s3,2s3,3

s0,0s0,1s0,2s0,3s1,3s1,0s1,1s1,2s2,2s2,3s2,0s2,1s3,1s3,2s3,3s3,0

s s’

7

Page 8: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

2.Phep InvSubBytes()

Phép biến đổi InvSubBytes() là nghịch đao của phép thay thế theo byte

SubBytes(), trong đo sử dung một Hộp-S nghịch áp dung cho mỗi byte của

Trang thái. Hộp-S nghịch như sau:

y

0 1 2 3 4 5 6 7 8 9 a b c d e f

x

0 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb

1 7c e3 39 82 9b 2f Ff 87 34 8e 43 44 c4 de e9 cb

2 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e

3 08 2e A1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25

4 72 f8 F6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92

5 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84

6 90 d8 Ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06

7 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b

8 3a 91 11 41 4f 67 Dc ea 97 f2 cf ce f0 b4 e6 73

9 96 ac 74 22 e7 ad 35 85 e2 f9 37 e8 1c 75 df 6e

a 47 f1 1a 71 1d 29 c5 89 6f b7 62 0e aa 18 be 1b

b fc 56 3e 4b c6 d2 79 20 9a db c0 fe 78 cd 5a f4

c 1f dd A8 33 88 07 c7 31 b1 12 10 59 27 80 ec 5f

d 60 51 7f a9 19 b5 4a 0d 2d E5 7a 9f 93 c9 9c ef

e a0 e0 3b 4d ae 2a f5 b0 c8 eb bb 3c 83 53 99 61

f 17 2b 04 7e ba 77 d6 26 e1 69 14 63 55 21 0c 7d

3.Phep biến đổi InvMixcolumns()

Phép biến đổi InvMixColumns() là phép biến đổi ngược của

MixColumns().No co thể được biểu diễn như một phép nhân ma trận s( x)

a 1 ( x) s( x) như sau:

c

c

c

c

c

c

c

c

s

s

s

s

edb

bed

dbe

dbe

s

s

s

s

,3

,2

,1

,0

,3

,2

,1

,0

00900

00090

00009

09000

'

'

'

với 0 ≤ c < Nb.

4.Phep biến đổi nghịch của AddRoundKey()

Sinh viên : Hoàng Văn Đat

8

Page 9: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Phép biến đổi AddRoundKey() là một phép biến đổi thuận nghịch vì

no chỉ áp dung một phép toán XOR nên no được thực hiện như nhau ở Phép

ma hoa và Phép giai ma.

Chương III: XML

Sinh viên : Hoàng Văn Đat

9

Page 10: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

1.XML là gì ?

XML viết tắt của chữ eXtensible Markup Language (ngôn ngữ nâng

câp co thể mở rộng) là một bộ qui luật về cách chia một tài liệu ra làm nhiều

phần, rôi đánh dâu và ráp các phần khác nhau lai để dễ nhận diện chúng.

Ðược chỉ đao bởi Tổ hợp Web toàn cầu (W3C), XML trở thành một đặc điểm

kỹ thuật chính thức. Tổ hợp Web toàn cầu W3C gọi XML là "một cú pháp

thông dung cho việc biểu thị câu trúc trong dữ liệu".

2.Câu truc cua môt tài liêu XML

Một tài liệu XML phai theo đúng các luật sau đây:

Phai co một root (gốc) Element duy nhât, gọi là Document

Element, no chứa tât ca các Elements khác trong tài liệu.

Mỗi opening Tag phai co một closing Tag giống như no.

Tags trong XML thì case sensitive, tức là opening Tag và closing

Tag phai được đánh vần y như nhau, chữ hoa hay chữ thường.

Mỗi Child Element phai nằm trọn bên trong Element cha của no.

Attribute value trong XML phai được goi giữa một cặp ngoặc kép

hay một cặp apostrophe.

3.Xml đê làm gì?

XML được sinh ra nhằm những muc đích chính sau:

-Tao ra một tiêu chuẩn thống nhât để truyền và trao đổi thông tin với

nhau qua Internet bởi các web services ( tuy nhiên không han chế chỉ qua

Internet mà còn co thể qua những phương tiện khác). Trong tương lai, co lẽ

mọi thông tin sẽ đều được biểu diễn dưới dang XML. Thông tin XML được

truyền qua Internet bằng các protocol như HTTP hay SOAP.

- XML hỗ trợ hầu hết các application. Chẳng han HTML chỉ được dùng

han chế trên trang web mà thôi, không dùng được bởi các ứng dung.

- Tao thuận lợi cho các trình ứng dung đọc và xử lý thông tin dưới dang

XML, bởi vì thật chât XML chỉ là một file text đơn thuần. XML co thể được

Sinh viên : Hoàng Văn Đat

10

Page 11: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

soan thao bằng bât kỳ text-editor nào như Notepad chẳng han.

-Các thông tin dưới dang XML là human-legible và self-describing

nghĩa là con người co thể đọc và hiểu được thông tin đo là về cái gì một cách

dễ dàng.

4.Những ứng dụng cua XML

Hiện nay trên thế giới, người ta vẫn còn đang tiếp tuc nghiên cứu để

phát triển các ứng dung của XML. Tuy nhiên, co một số ứng dung đa được

phát triển rộng rai như sau:

+Web Service : Các dịch vu trên web

+ XHTML: XHTML = XML + HTML = eXtensible Hypertext Markup

Language. Muc đích của XHTML là dùng để thống nhât và chuẩn hoa ngôn

ngữ HTML, vốn rât là loosely-defined, nghĩa là không quy định chặt chẽ câu

trúc.

+ MathML (Mathematics Markup Language): dùng để biểu diễn các

thông tin toán học bằng ngôn ngữ và cú pháp của XML. Hiện nay co một

browser co kha năng hiển thị MathML là Amaya.

+ VML (Vector Markup Language): đây là một kỹ thuật mới do

Microsoft phát triển. VML dùng để vẽ các hình vector trên trang web chỉ

bằng các đoan văn ban XML (text đơn thuần) mà không cần phai lưu dưới

dang binary.

Chương IV: Xây dưng chương trình

I.MÔ TẢ CHƯƠNG TRÌNH

Sinh viên : Hoàng Văn Đat

11

Page 12: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

1.Tổng quan

Chương trình gôm các chức năng cơ ban sau:

Load file các file XML

Chuyển dữ liêu vào Datagridview ( hỗ trợ các file xml co câu

trúc cơ sở dữ liệu).

Edit các dữ liệu trong file XML thông qua Datagridview.

Ma hoa văn ban XML bằng thuật toán AES.

Giai ma.

Convert các file định dang XML (co câu trúc cơ sở dữ liệu ) sang

định dang MDB.

2.Giải pháp thực hiện

-Tìm hiểu cách sử dung các giai thuật ma hoa trên nền DOTNET(AES,

RSA, …).

-Tìm hiểu phương thức xử lý văn ban XML trên nền DOTNET:

Ma hoa

Giai ma

Xử lý dữ liệu

- Sử dung bộ công cu phát triển Microsoft Visual Studio 2005 trên nền

tang .NET Frame Work 2.0.

II.MÔT SÔ FORM CỦA CHƯƠNG TRÌNH1.Giao diên chinh

Sinh viên : Hoàng Văn Đat

12

Page 13: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

2.Open file

Sinh viên : Hoàng Văn Đat

13

Page 14: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Với những file xml co câu trúc cơ sở dữ liệu ta co thể view no trong một Datagridview

3.Form tạo khoa RSA

Sinh viên : Hoàng Văn Đat

14

Page 15: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

4.Form ma hoa

5.Form giải ma

Sinh viên : Hoàng Văn Đat

15

Page 16: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

6.Form convert xml to mdb

KÊT LUÂN

Sinh viên : Hoàng Văn Đat

16

Page 17: mã hóa văn bản XML

Giao viên HD: Pham Tuân Đat Ma hoa văn ban XML

Sau thời gian thực tập, nghiên cứu và xây dựng đề tài cùng sự giúp đỡ

nhiệt tình của các thầy cô giáo trong khoa đa tao điều kiện cho em hoàn

thành đề tài của mình một cách tốt nhât.

Do điều kiện về thời gian cũng như kinh nghiệm làm việc nên không

tránh khỏi những thiếu sot trong báo cáo cũng như trong chương trình. Em rât

mong nhận được sự quan tâm, chỉ bao của các thầy cô giáo, ban bè để đề tài

của em được hoàn thiện và sinh động hơn.

Cuối cùng em xin chân thành cam ơn các thầy cô giáo trong khoa và đặc

biệt là thầy giáo Thac sỹ Phạm Tuấn Đạt đa tận tình giúp đỡ em trong suốt

quá trình xây dựng và hoàn thành đề tài.

Sinh viên : Hoàng Văn Đat

17