Upload
nhu-my
View
124
Download
4
Embed Size (px)
DESCRIPTION
đồ án tốt nghiệp
Citation preview
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
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
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
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
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’
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
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
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
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
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
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
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
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
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
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
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
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