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

Mã hóa văn bản XM

17 5 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

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) Sinh viên : Hoàng Văn Đạt 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, 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 hồ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 Sinh viên : Hồng Văn Đạt 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 tốn Đối với thuật tố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 q trình thực thi thuật tố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 Sinh viên : Hoàng Văn Đạt 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 q trình phi tuyến thuật tố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 Sinh viên : Hoàng Văn Đạt 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   ,c    s3,c   03 01 01 02  s3,c  với ≤ c < Nb 4.Phép AddRoundKey() Sinh viên : Hoàng Văn Đạt 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 mã 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 Sinh viên : Hoàng Văn Đạt 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 Sinh viên : Hoàng Văn Đạt 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 0b 0d 09  s 0,c       09 e b d s ' s , c  , c          s'  0d 09 0e 0b s 2,c     2,c    s3,c   0b 0d 09 0e   s3,c  với ≤ c < Nb 4.Phép biến đổi nghịch AddRoundKey() Sinh viên : Hoàng Văn Đạt 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 Sinh viên : Hoàng Văn Đạt 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ể Sinh viên : Hoàng Văn Đạt 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 tố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 Sinh viên : Hồng Văn Đạt 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 Sinh viên : Hoàng Văn Đạt 12 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 2.Open file Sinh viên : Hoàng Văn Đạt 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 Sinh viên : Hoàng Văn Đạt 14 Giáo viên HD: Phạm Tuấn Đạt Mã hóa văn bản XML 4.Form mã hóa 5.Form giải mã Sinh viên : Hoàng Văn Đạt 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 Sinh viên : Hoàng Văn Đạt 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 hồ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 hồn thành đề tài Sinh viên : Hoàng Văn Đạt 17

Ngày đăng: 27/09/2023, 16:20

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w