Xây dựng chương trình mã hóa văn bản xml
Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML LỜI NÓI ĐẦU Với phát triển mạnh mẽ Internet nhu cầu chia thông tin nơi, tư nhiều khác XML ngày phát triển đóng vai trò rất quan trọng việc tổ chức chia thông tin Có rất nhiều hệ thống quản trị CSDL cỡ lớn hỗ trợ CSDL XML như: Oracle, IBM, MS SQL, v.v… Tuy nhiên nhược điểm dễ thấy CSDL XML đó tính bảo mật Hầu hết liệu tổ chức, lưu trữ truyền tải XML dạng văn bản túy (text base) nên rất dễ bị rò rỉ thông tin ta dùng XML để tổ chức truyền tải cho liệu nhạy cảm Một yêu cầu đặt có thể bảo mật thông tin lưu trữ truyền tải trền CSDL XML giữ điểm mạnh truyền thống vốn có CSDL XML liệu tổ chức dạng văn bản túy (text base) Trên tinh thần đó, tổ chức công ty lớn lĩnh vực nghiên cứu xây dựng hệ QT CSDL, bảo mật chuẩn chung Internet như: W3C, IBM, Oracle,v.v…đã kết hợp với để xây dựng chuẩn công nghệ cho việc mã hóa thông tin bảo mật liệu CSDL XML Công nghệ tạm gọi chung mã hóa bảo mật trền CSDL XML (XML Encryption & Security) Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản 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 mã hóa văn bản xml theo giải thuật AES” 2.Mục đích, yêu cầu -Tìm hiểu giải thuật mã hóa khối AES -Tìm hiểu văn bản XML ứng dụng -Tìm hiểu công cụ lập trình Dotnet 2005 -Xây dựng hoàn thiện chương trình II CẤU TRÚC CHUNG CỦA BÁO CÁO Cấu trúc báo cáo gồm 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 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Chương II: Thuật toán AES Trong mật mã học, AES (viết tắt từ tiếng Anh: Advanced Encryption Standard) thuật toán thiết kế hai nhà mật mã học người Bỉ: Joan Daemen Vincent Rijmen I.Mô tả thuật toán Đối với thuật toán AES, độ dài khối đầu vào, đầu Trạng thái 128 bít Như Nb=4 số lượng từ 32 bít (số cột) Trạng thái Trong thuật toán AES, độ dài Khóa mã K có thể 128, 192 256 bít Độ dài khóa biểu diễn số Nk = 4, 6, thể số lượng từ 32 bít (số cột) Khóa mã Số vòng thay đổi trình thực thi thuật toán phụ thuộc vào kích cỡ khóa Số vòng ký hiệu Nr, AES, Nr = 10 Nk = 4, Nr = 12 Nk = Nr = 14 Nk = Thuật toán: 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 = step 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 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Các phép toán thuật toán AES thực mảng byte hai chiều gọi Trạng thái Trạng thái bao gồm hàng byte, hàng chứa Nb byte, đó Nb số lượng từ khối 1.Phép SubBytes() Các byte thông qua bảng tra S-box Đây trình phi tuyến thuật toán Hộp-S trình bày dạng thập lục phân hình sau: y x a B c d e f 63 7c 77 7b f2 6b 6f c5 30 01 67 2b fe d7 ab 76 ca 82 c9 7d Fa 59 47 f0 ad d4 a2 Af 9c a4 72 c0 b7 fd 93 26 36 3f f7 cc 34 a5 e5 f1 71 d8 31 15 04 c7 23 C3 18 96 05 9a 07 12 80 e2 eb 27 b2 75 09 83 2c 1a 1b 6e 5a a0 52 3b d6 b3 29 e3 2f 84 53 d1 00 ed 20 fc b1 5b 6a cb be 39 4a 4c 58 cf d0 ef Aa fb 43 4d 33 85 45 f9 02 7f 50 3c 9f a8 51 a3 40 8f 92 9d 38 f5 bc b6 da 21 10 ff f3 d2 cd 0c 13 ec 5f 97 44 17 c4 a7 7e 3d 64 5d 19 73 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í dụ, s1,1= {53}, giá trị thay xác định vị trí giao hàng số “5” cột số “3” hình Điều cho kết quả s’1,1 {ed} 2.Phép ShiftRows() Trong phép biến đổi ShiftRows(), byte ba hàng cuối Trạng thái dịch vòng theo số lượng byte khác (các offset) Hàng đầu tiên, r=0, không dịch chuyển Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Cụ thể, Phép biến đổi ShiftRows() thực sau: s’r,c = sr, (c + shift(r,Nb)) mod Nb với < r < ≤ c < Nb đó giá trị dịch chuyển shift(r,Nb) phụ thuộc vào số lượng hàng r, sau (chú ý Nb = 4): shift (1,4) = ; shift (2,4) = ; shift (3,4) = Phép ShiftRow() mô tả hình sau: ShiftRow() sr,0 sr,1 sr,2 s’r,0 sr,3 s’r,1 s’r,2 s’r,3 s’ s s0,0 s0,1 s0,2 s0,3 s0,0 s0,1 s0,2 s0,3 s1,0 s1,1 s1,2 s1,3 s1,1 s1,2 s1,3 s1,0 s2,0 s2,1 s2,2 s2,3 s2,2 s2,3 s2,0 s2,1 s3,0 s3,1 s3,2 s3,3 s3,3 s3,0 s3,1 s3,2 3.Phép MixColumns() Phép biến đổi MixColumns() Trạng thái thực theo cột, nghĩa cột xem đa thức hạng tử Các cột coi đa thức trường GF(28) nhân theo modulo x4 + với đa thức cố định a(x) sau đây: a(x) = {03}x3 + {01}x2 + {01}x + {02} Điều có thể biểu diễn dạng phép nhân ma trận Giả sử s’( x) = a( x) • s( x) : s'0,c 02 03 01 01 s0,c s'1,c = 01 02 03 01 s1,c s' 01 01 02 03 s 2,c 2,c s3,c 03 01 01 02 s3,c với ≤ c < Nb 4.Phép AddRoundKey() Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Trong Phép biến đổi AddRoundKey(), Khóa vòng cộng với Trạng thái phép toán XOR đơn giản bít Mỗi Khóa vòng bao gồm Nb từ nhận từ lược đồ khóa Nb từ cộng với cột Trạng thái 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 ≤ c < Nb Trong đó, [wi] từ lược đồ khóa, round giá trị nằm 0≤round ≤ Nr Các thao tác Phép biến đổi minh họa hình sau: l = round * Nb s0,cs1,c s0,0s0,1s0,2 s s1,0s1,1s1,2s1,3s2,0 s2,cs0,3 3,c s2,1s2,2s2,3 s3,0s3,1s3,2s3,3 ⊕ wl+c wl+1 wl+2 wl+3 s’ s’1 s’0,0s0,1s’0,c s’ s’ s s’ s’ 0,2 0,3 1,0 1,1 1,2 1,3 s’ s s’2,0s2,1,cs’2,22,cs’2,3s’3,0s3,1s’3,2s’3,3 ’3,c II.Giải ma Các phép biến đổi Phép mã hóa có thể đảo ngược sau đó thực thi theo chiều ngược lại nhằm tạo Phép giải mã trực tiếp thuật toán AES Các phép biến đổi sử dụng Phép giải mã InvShiftRows(), InvSubBytes(), InvMixColumns()và AddRoundKey() Thuật toán: 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]) for round = Nr-1 step -1 downto Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 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.Phép InvShiftRows() Phép biến đổi InvShiftRows() phép biến đổi ngược ShiftRows() Các byte ba từ cuối Trạng thái dịch vòng theo số byte khác (offset) Ở hàng (r =0) không thực phép chuyển dịch Ba hàng dịch vòng Nb shift (r, Nb) byte Cụ thể, phép biến đổi InvShiftRows() thực sau: sr, (c + shift(r,Nb)) mod Nb = s’r,c với < r < ≤ c < Nb Phép InvShiftRows() mô tả hình sau: InvShiftRow() sr,0sr,1sr,2sr,3 s s’r,0s’r,1s’r,2s’r,3 s’ s0,0s0,1s0,2s0,3s1,0s1,1s1,2s1,3s2,0 s0,0s0,1s0,2s0,3s1,3s1,0s1,1s1,2s2,2 s2,1s2,2s2,3s3,0s3,1s3,2s3,3 s2,3s2,0s2,1s3,1s3,2s3,3s3,0 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 2.Phép InvSubBytes() Phép biến đổi InvSubBytes() nghịch đảo phép thay theo byte SubBytes(), đó sử dụng Hộp-S nghịch áp dụng cho byte Trạng thái Hộp-S nghịch sau: y x a b c d e f 52 09 6a d5 30 36 a5 38 bf 40 a3 9e 81 f3 d7 fb 7c e3 39 82 9b 2f Ff 87 34 8e 43 44 c4 de e9 cb 54 7b 94 32 a6 c2 23 3d ee 4c 95 0b 42 fa c3 4e 08 2e A1 66 28 d9 24 b2 76 5b a2 49 6d 8b d1 25 72 f8 F6 64 86 68 98 16 d4 a4 5c cc 5d 65 b6 92 6c 70 48 50 fd ed b9 da 5e 15 46 57 a7 8d 9d 84 90 d8 Ab 00 8c bc d3 0a f7 e4 58 05 b8 b3 45 06 d0 2c 1e 8f ca 3f 0f 02 c1 af bd 03 01 13 8a 6b 3a 91 11 41 4f 67 Dc ea 97 f2 cf ce f0 b4 e6 73 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.Phép biến đổi InvMixcolumns() Phép biến đổi InvMixColumns() phép biến đổi ngược MixColumns().Nó có thể biểu diễn phép nhân ma trận s′( x) = a −1 ( x) ⊗ s( x) sau: s' 0,c 0e s'1,c = 09 s' 0d 2,c s3,c 0b 0b 0d 09 s 0,c 0e 0b 0d s1,c 09 0e 0b s 2,c 0d 09 0e s3,c với ≤ c < Nb 4.Phép biến đổi nghịch AddRoundKey() Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Phép biến đổi AddRoundKey() phép biến đổi thuận nghịch nó áp dụng phép toán XOR nên nó thực Phép mã hóa Phép giải mã Chương III: XML Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 1.XML ? XML viết tắt chữ eXtensible Markup Language (ngôn ngữ nâng cấp có thể mở rộng) qui luật cách chia tài liệu làm nhiều phần, rồi đánh dấu ráp phần khác lại để dễ nhận diện chúng Ðược đạo Tổ hợp Web toàn cầu (W3C), XML trở thành đặc điểm kỹ thuật thức Tổ hợp Web toàn cầu W3C gọi XML "một cú pháp thông dụng cho việc biểu thị cấu trúc liệu" 2.Cấu trúc của một tài liệu XML Một tài liệu XML phải theo luật sau đây: • Phải có root (gốc) Element nhất, gọi Document Element, nó chứa tất cả Elements khác tài liệu • Mỗi opening Tag phải có closing Tag giống nó • Tags XML case sensitive, tức opening Tag closing Tag phải đánh vần y nhau, chữ hoa hay chữ thường • Mỗi Child Element phải nằm trọn bên Element cha nó • Attribute value XML phải gói cặp ngoặc kép hay cặp apostrophe 3.Xml để làm gì? XML sinh nhằm mục đích sau: -Tạo tiêu chuẩn thống nhất để truyền trao đổi thông tin với qua Internet web services ( nhiên không hạn chế qua Internet mà có thể qua phương tiện khác) Trong tương lai, có lẽ thông tin biểu diễn dạng XML Thông tin XML truyền qua Internet protocol HTTP hay SOAP - XML hỗ trợ hầu hết application Chẳng hạn HTML dùng hạn chế trang web mà thôi, không dùng ứng dụng - Tạo thuận lợi cho trình ứng dụng đọc xử lý thông tin dạng XML, thật chất XML file text đơn XML có thể 10 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML soạn thảo bất kỳ text-editor Notepad chẳng hạn -Các thông tin dạng XML human-legible self-describing nghĩa người có thể đọc hiểu thông tin đó cách dễ dàng 4.Những ứng dụng của XML Hiện giới, người ta tiếp tục nghiên cứu để phát triển ứng dụng XML Tuy nhiên, có số ứng dụng đã phát triển rộng rãi sau: +Web Service : Các dịch vụ web + XHTML: XHTML = XML + HTML = eXtensible Hypertext Markup Language Mục đích XHTML dùng để thống nhất chuẩn hóa ngôn ngữ HTML, vốn rất loosely-defined, nghĩa không quy định chặt chẽ cấu trúc + MathML (Mathematics Markup Language): dùng để biểu diễn thông tin toán học ngôn ngữ cú pháp XML Hiện có browser có khả hiển thị MathML Amaya + VML (Vector Markup Language): kỹ thuật Microsoft phát triển VML dùng để vẽ hình vector trang web đoạn văn bản XML (text đơn thuần) mà không cần phải lưu dạng binary Chương IV: Xây dựng chương trình I.MÔ TẢ CHƯƠNG TRÌNH 11 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 1.Tổng quan Chương trình gồm chức bản sau: • Load file file XML • Chuyển liêu vào Datagridview ( hỗ trợ file xml có cấu trúc sở liệu) • Edit liệu file XML thông qua Datagridview • Mã hóa văn bản XML thuật toán AES • Giải mã • Convert file định dạng XML (có cấu trúc sở liệu ) sang định dạng MDB 2.Giải pháp thực -Tìm hiểu cách sử dụng giải thuật mã hóa DOTNET(AES, RSA, …) -Tìm hiểu phương thức xử lý văn bản XML DOTNET: • Mã hóa • Giải mã • Xử lý liệu - Sử dụng công cụ phát triển Microsoft Visual Studio 2005 tảng NET Frame Work 2.0 II.MỘT SỐ FORM CỦA CHƯƠNG TRÌNH 1.Giao diện chính 12 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 2.Open file 13 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Với file xml có cấu trúc sở liệu ta có thể view nó Datagridview 3.Form tạo khóa RSA 14 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 4.Form ma hóa 5.Form giải ma 15 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 6.Form convert xml to mdb KẾT LUẬN 16 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Sau thời gian thực tập, nghiên cứu xây dựng đề tài giúp đỡ nhiệt tình thầy cô giáo khoa đã tạo điều kiện cho em hoàn thành đề tài cách tốt nhất Do điều kiện thời gian kinh nghiệm làm việc nên không tránh khỏi thiếu sót báo cáo chương trình Em rất mong nhận quan tâm, bảo thầy cô giáo, bạn bè để đề tài em hoàn thiện sinh động Cuối em xin chân thành cảm ơn thầy cô giáo khoa đặc biệt thầy giáo Thạc sỹ Phạm Tuấn Đạt đã tận tình giúp đỡ em suốt trình xây dựng hoàn thành đề tài 17 [...]... CỦA CHƯƠNG TRÌNH 1.Giao diện chính 12 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 2.Open file 13 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML Với những file xml có cấu trúc cơ sở dữ liệu ta có thể view nó trong một Datagridview 3.Form tạo khóa RSA 14 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 4.Form ma hóa 5.Form giải ma 15 Giáo viên HD: Phạm Tuấn Đạt Mã hóa. .. các đoạn văn bản XML (text đơn thuần) mà không cần phải lưu dưới dạng binary Chương IV: Xây dựng chương trình I.MÔ TẢ CHƯƠNG TRÌNH 11 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 1.Tổng quan Chương trình gồm các chức năng cơ bản sau: • Load file các file XML • Chuyển dữ liêu vào Datagridview ( hỗ trợ các file xml có cấu trúc cơ sở dữ liệu) • Edit các dữ liệu trong file XML thông qua... liệu trong file XML thông qua Datagridview • Mã hóa văn bản XML bằng thuật toán AES • Giải mã • Convert các file định dạng XML (có cấu trúc cơ sở dữ liệu ) sang định dạng MDB 2.Giải pháp thực hiện -Tìm hiểu cách sử dụng các giải thuật mã hóa trên nền DOTNET(AES, RSA, …) -Tìm hiểu phương thức xử lý văn bản XML trên nền DOTNET: • Mã hóa • Giải mã • Xử lý dữ liệu - Sử dụng bộ công cụ... Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 4.Form ma hóa 5.Form giải ma 15 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 6.Form convert xml to mdb KẾT LUẬN 16 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản 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 đã tạo điều kiện cho em hoàn thành đề tài của mình một... HD: Phạm Tuấn Đạt Mã hóa văn bản XML soạn thảo bằng bất kỳ text-editor nào như Notepad chẳng hạn -Các thông tin dưới dạng XML là human-legible và self-describing nghĩa là con người có thể đọc và hiểu được thông tin đó là về cái gì một cách dễ dàng 4.Những ứng dụng của XML Hiện nay trên thế giới, người ta vẫn còn đang tiếp tục nghiên cứu để phát triển các ứng dụng của XML Tuy nhiên, có... khỏi những thiếu sót 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ỉ bảo của các thầy cô giáo, bạn 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 cảm ơn các thầy cô giáo trong khoa và đặc biệt là thầy giáo Thạc sỹ Phạm Tuấn Đạt đã tận tình giúp đỡ em trong suốt quá trình xây dựng và hoàn thành đề tài 17 ... Service : Các dịch vụ trên web + XHTML: XHTML = XML + HTML = eXtensible Hypertext Markup Language Mục đích của XHTML là dùng để thống nhất và chuẩn hóa 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 có một browser có khả năng hiển thị ... Đạt Mã hóa văn bản 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 mã hóa văn bản xml theo giải thuật AES” 2.Mục đích, yêu cầu -Tìm hiểu giải thuật mã hóa. .. văn bản XML (text đơn thuần) mà không cần phải lưu dạng binary Chương IV: Xây dựng chương trình I.MÔ TẢ CHƯƠNG TRÌNH 11 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 1.Tổng quan Chương. .. Mã hóa văn bản XML 4.Form ma hóa 5.Form giải ma 15 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 6.Form convert xml to mdb KẾT LUẬN 16 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn