Tiểu luận về mã hóa AES

26 1.2K 30
Tiểu luận về mã hóa AES

Đ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

Tiêu chuẩn mã hóa nâng cao (AES – Advance Encrypto Standard) là khối mã hóa đối xứng được xuất bản bởi Viện tiêu chuẩn và Công nghệ (NIST) vào tháng 12 năm 2001. Tháng 2 năm 2001, NIST đã thông báo rằng một bản dự thảo tiêu chuẩn xử lý thông tin Liên bang (FIPS) đã sẵn có cho công chúng xem xét và bình luận. Cuối cùng, AES được xuất bản như FIPS 197 trong sổ đăng kí Liên bang trong tháng 12 năm 2001.

MỤC LỤC PHẦN 1: CƠ SỞ LÝ THUYẾT 1.1 Lý thuyết mã hóa liệu .2 1.1.1 Hệ thống mã hóa đối xứng (Symmetric Cryptosystems) 1.1.2 Hệ thống mã hóa bất đối xứng (Asymmetric Cryptosystems) 1.2 Lịch sử phát triển AES 1.3 Lý thuyết chuẩn mã hóa nâng cao 11 1.3.1 Cơ sở toán học AES .11 1.3.2 Chuẩn mã nâng cao AES – Rijndael 13 1.3.3 Thuật toán AES 13 1.3.4 Mở rộng khóa AES .18 PHẦN 2: XÂY DỰNG ỨNG DỤNG 21 2.1 Cài đặt thuật toán .21 2.2 Kết đạt 23 TÀI LIỆU THAM KHẢO 26 An toàn bảo mật công nghệ thông tin PHẦN 1: CƠ SỞ LÝ THUYẾT 1.1 Lý thuyết mã hóa liệu Mã hóa mật mã hóa liệu chế chuyển đổi liệu sang định dạng khác đọc được, vi dụ ciphertext (văn viết thành mật mã), để ngăn cản truy cập bất hợp pháp liệu trao đổi môi trường mạng không an toàn Mã hóa liệu ngăn chặn việc sau : • Nghe trộm xem liệu • Chỉnh sữa đánh cắp liệu • Giả mạo thông tin • Data non-repudiation • Sự gián đoạn dịch vụ mạng Khi nhận gói tin, người nhận giải mã liệu lại dạng ban đầu Cho dù liệu có bị chặn suốt trình trao đổi liệu Người gởi người nhận, phụ thuộc vào trình mã hóa,dưới hình thức hệ thống mã hóa Hệ thống mã hoá (Cryptosystems) có loại sau: • Đối xứng (Symmetric) • Bất đối xứng (Asymmetric) Trang An toàn bảo mật công nghệ thông tin Một hệ thống mã hóa phân loại dựa vào số khoá mà dùng Một khoá số, từ, cụm từ dùng vào mục đích mã hóa giải mã liệu 1.1.1 Hệ thống mã hóa đối xứng (Symmetric Cryptosystems) Symmetric cryptosystems dựa khóa đơn, chuỗi ngắn với chiều dài không thay đổi Do đó, phương pháp mã hóa xem single-key encryption Khoá thường khóa riêng (hoặc bảo mật) dùng để mã hóa giải mã Ghi : Trong số tài liệu, symmetric cryptosystem xem khóa scryptosystems riêng bí mật kỹ thuật xem khóa mật mã riêng khóa mật mã bí mật Trước hai bên trao đổi liệu, khóa phải chia dùng chung cho bên Người gửi mã hóa thông tin khóa riêng gửi thông tin đến người Trong trình nhận thông tin, người nhận sử dụng khóa để giải mã thông điệp Tiêu chuẩn mã hóa liệu (Data Encryption Standard (DES)) Nguyên DES đề giải pháp cho khóa có chiều dài lên đến 128 bit Tuy nhiên, kích thước khóa giảm xuống 56 bit phủ Hoa Kỳ việc nổ lực tìm thuật giải nhanh Việc giảm chiều dài khóa xuống, phụ thuộc vào tốc độ xử lý vi xử lý Trong phương pháp công Brute Force, khóa phát sinh ngẩu nhiên gửi đến đoạn văn nguyên mẩu xác định từ khóa xác Với khóa có kích thước nhỏ, dễ dàng để phát sinh xác từ khóa phá hệ thống mật mã Trang An toàn bảo mật công nghệ thông tin Chú ý : Tên thức DES Federal Information Processing Standard (FISP) (Tiêu chuẩn xứ lý thông tin liên bang (Hoa kỳ) Bội ba tiêu chuẩn mã hóa liệu (Triple Data Encryption Standard (3DES)): giống DES, 3DES sử dụng khóa 56 bit Tuy nhiên, an toàn nhiều dùng khóa khác để mã hóa dử liệu Bộ xử lý thực bước sau : khóa dùng để mã hóa liệu Sau đó, khóa thứ hai dùng để giải mã liệu vừa mã hóa Cuối cùng, khóa thứ ba mã hóa lần thứ hai Toàn trình xử lý 3DES tạo thành thuật giải có độ an toàn cao Nhưng thuật giải phức tạp nên thời gian thực lâu hơn, gấp lần so với phương pháp DES Ron's Code (RC4): phát triển Ron Rivest, thuật giải sử dụng từ khóa với chiều dài biến đổi lên đến 256 bytes Bởi chiều dài khóa, RC4 phân loại chế mã hóa mạnh Nó tương đối nhanh RC4 tạo dòng bytes ngẩu nhiên XORs chúng với văn nguyên mẩu Bởi bytes phát sinh ngẩu nhiên, RC4 đòi hỏi khóa cho mổi lần gởi thông tin Hệ thống mã hóa đồng đưa vấn đề Đầu tiên, khóa vừa dùng để mã hóa vừa dùng để giả mã, bắt đầu trở thành kẻ xâm nhập, tất thông tin sữ dụng khóa bị huỷ Vì thế, khóa nên thường xuyên thay đổi theo định kỳ Một vấn đề khác hệ thống mã hóa đồng xữ lý lượng thông tin lớn, việc lý khóa trở thành công việc vô khó khăn Kết hợp với việc thiết lặp cặp khóa, phân phối, thay đổi theo định kỳ đòi hỏi thời gian tiền bạc Hệ hống mã hóa đối xứng giải vấn đề việc đưa hệ thống mã hóa đối xứng Đồng thời, họ tăng tính bảo mật suốt trình chuyển vận Chúng ta tham khảo thêm hệ thống mã hóa bất đối xứng phần sau 1.1.2 Hệ thống mã hóa bất đối xứng (Asymmetric Cryptosystems) Thay sử dụng khóa đơn hệ thống mã hóa đối xứng, hệ thống mã hóa bất đối xứng sử dụng cặp khóa có quan hệ toán học Một khóa riêng tư, chủ nhân Khóa thứ hai phổ biến, công cộng phân phối tự Khóa công cộng Trang dùng để mã hóa ngược lại khóa riêng dùng để giải thông tin An toàn bảo mật công nghệ thông tin Trong VPN, hệ thống mã hóa bất đối xứng dùng phổ biến thuật toán DiffieHellman (DH) thuật toán Rivest Shamir Adleman (RSA) Thuật toán Diffie-Hellman Trong thuật toán DH, mổi thực thể giao tiếp nhận cặp khóa, phân phối tới thực thể thông tin khác giữ lại riêng Thuật toán DH làm việc theo vấn đề sau : Người gửi nhận khóa công cộng người nhận, khóa khóa công cộng nên người biết Người gửi thực thao tác gộp khóa riêng khóa công công người nhận, kết cho khóa chung bảo mật (shared secret key) Thông điệp mã hóa khóa vừa nhận Sau thông điệp mã hóa gửi đến người nhận Trong qua trình nhận thông điệp mã hóa, bên nhận phát sinh khóa chung mật khác thao tác tương tự gộp khóa riêng với khóa chung bên gửi Giả định thuật toán bắt thông điệp mã hóa, người giải mã anh cô ta không xữ lý khóa riêng bên nhận (khóa riêng anh cô ta) Dữ liệu trao đổi dựa thuật toán Diffie-Hellman mô tả hình: Trang An toàn bảo mật công nghệ thông tin Mặc dù thuật toán DH có độ an toàn cao so với hệ thống mã hóa đối xứng, gặp số vấn đề khó khăn Phải đảm bảo chắn khóa công cộng phải trao đổi trước trình trao đổi liệu thực xác định Cho ví dụ : bên trao đổi khóa công cộng cho qua môi trường không an toàn, Internet, điều làm cho khóa công cộng bị bắt giữ trước người xâm phạm đó, sau người gửi khóa công cộng cho hai bên đầu cuối thực trao đổi Trong trường hợp này, người xâm nhập dễ dàng mắc vào nghe thông tin hai bên đầu cuối hai bên đầu cuối trao đổi liệu thông qua khóa công cộng người xâm phạm Đây dạng xâm nhập biết kiểu công Man-in-theMiddle Thuật toán Rivest Shamir Adleman (RSA), tham khảo sau giải hiệu phương pháp công Man-in-the-Middle mà nảy thuật toán DH Thuật toán RSA lên chế mã hóa bất đối xứng mạnh Thuật toán Rivest Shamir Adleman (RSA) Thuật toán RSA triển khai trình xác nhận cách sử dụng chữ ký điện tử theo bước sau : Khóa công cộng người gửi yêu cầu dùng cho người nhận sau chuyễn hướng phía trước (forward) Trang An toàn bảo mật công nghệ thông tin Người gửi sử dụng hàm băm để làm giảm kích thước mẩu tin gốc Thông điệp tổng hợp hiểu thông điệp phân loại (message digest (MD)) Người gửi mã hóa thông điệp phân loại khóa riêng rút từ phát sinh chữ ký điện tử độc Thông điệp chữ ký điện tử kết hợp chuyễn hướng đến người nhận Trong lúc nhận thông điệp mã hóa, người nhận phục hồi lại thông điệp phân loại cách sử dụng hàm băm người gửi Người nhận sau giải mã chữ ký điện tử cách sử dụng khóa công cộng người gửi Người nhận sau so sánh thông điệp phân loại vừa phục hồi (bước 5) thông điệp phân loại nhận từ chữ ký điện tử (bước 6) Nếu hai đồng nhất, tức liệu không bị chặn đứng, giả mạo chỉnh sửa suốt trình trao đổi Ngược lại, liệu không chấp nhận, bị từ chối RSA bảo đảm an toàn bảo mật chuyến liệu người nhận kiểm tra đắn liệu qua lần (bước 5, 7) RSA làm đơn giản hóa công việc quản lý khóa Trong cách mã hóa đối xứng, n2 khóa yêu cầu trình trao đổi có n thực thể Bằng cách so sánh, cách mã hóa bất đối xứng đòi hỏi 2*n khóa Trang An toàn bảo mật công nghệ thông tin 1.2 Lịch sử phát triển AES Tiêu chuẩn mã hóa nâng cao (AES – Advance Encrypto Standard) khối mã hóa đối xứng xuất Viện tiêu chuẩn Công nghệ (NIST) vào tháng 12 năm 2001 Tháng năm 2001, NIST thông báo dự thảo tiêu chuẩn xử lý thông tin Liên bang (FIPS) sẵn có cho công chúng xem xét bình luận Cuối cùng, AES xuất FIPS 197 sổ đăng kí Liên bang tháng 12 năm 2001 Tiêu chí Các tiêu chí xác định NIST lựa chọn AES rơi vào ba lĩnh vực: An ninh Chi phí Thực Các vòng AES thuật toán mã hóa không Feistel giải mã khối liệu 128 bit Nó sử dụng 10, 12, 14 vòng Kích thước quan trọng có thẻ 128 192 256 bit phụ thuộc vào số vòng Chú ý: AES xác định ba phiên với 10, 12 14 vòng Mỗi phiên ban sử dụng khóa mật mã kích thước khác nhua (128, 192 256) khóa vòng thường 128 bit Thiết kế chung mật mã mã hóa AES Trang An toàn bảo mật công nghệ thông tin Các đơn vị liệu Khối trạng thái trạng thái khôi chuyển đổi Trang An toàn bảo mật công nghệ thông tin Ví dụ 1: Chuyển đổi văn rõ sang trạng thái Cấu trúc vòng Trang 10 An toàn bảo mật công nghệ thông tin A = ( a1 a B = ( b1 b C = A + B với C = ( c1 a3 a4 a5 a a7 b3 b5 b7 c2 b4 c3 c b6 c5 c a8 ) b8 ) c7 c8 ) Ci = a i + bi mod với i = 1,8 Các phần tử trường hữu hạn biểu diễn dạng đa thức Ví dụ tổng A = 73H B = 4E H (viết dạng số 16 - hexa) là: 73H + 4E H = 3DH Viết dạng nhị phân: 01110011 + 01001110 = 00111101 Viết dạng đa thức: (x ) ( ) ( ) + x5 + x + x + + x6 + x3 + x + x = x5 + x + x3 + x + Phép nhân: ( ) Phép nhân thực GF cách nhân hai đa thức rút gọn theo mođulo đa thức bất khả quy m ( x ) Trong AES đa thức bất khả quy m ( x ) = x + x + x + x + Ví dụ: A = C3H , B = 85H tương ứng với: a ( x ) = x + x + x + b ( x ) = x + x + Khi C = A.B Trang 12 An toàn bảo mật công nghệ thông tin ( ) c ( x ) = a ( x ) b ( x ) mod x + x + x + x + c ( x ) = x + x5 + x3 + x + x hay C = AE H = 10101110 1.3.2 Chuẩn mã nâng cao AES – Rijndael Có đặc trưng sau:  Có 128/192/256 bit khoá 128 bit khối liệu  Lặp khác với Fiestel  Chia liệu thành nhóm – byte  Thao tác khối vòng  Thiết kế để: o Chống lại công biết o Tốc độ nhanh nén mã nhiều CPU o Đơn giản thiết kế 1.3.3 Thuật toán AES AES mã hóa khối rõ M 128 bít thành khối mã C 128 bít cách dùng khóa mã K có độ dài 128 bít (hoặc 192 256 bít) tương ứng với AES − 128 (hoặc AES − 192 AES − 256 ) Thuật toán thực byte kích thước khối đầu vào đầu khóa biểu thị từ 32 bít (4 byte) AES thực số vòng mã hóa N r phụ thuộc vào độ dài khóa sử dụng (Xem bảng 1) Thuật toán Độ dài đầu Độ dài Số Trang 13 An toàn bảo mật công nghệ thông tin AES vào/đầu khóa N k AES − 128 từ từ AES − 192 từ từ AES − 256 từ từ vòng N r 10 vòng 12 vòng 14 vòng Bảng 1: Số vòng mã hóa AES Mã hóa AES: Mỗi vòng gồm phép biến đổi mật mã theo byte - Thay byte Dịch hàng mảng trạng thái (State Array) - Trộn liệu cột State Array - Cộng khóa vòng vào State Array Phép thay byte: SubBytes( ) Phép biến đổi AES phép thay byte phi tuyến gọi phép biến đổi SubBytes( ), hoạt động độc lập byte Trước tiên tính nghịch đảo phép ( ) nhân GF , sau sử dụng phép biến đổi afin nghịch đảo Trang 14 An toàn bảo mật công nghệ thông tin  b'0    1  b1'    '  1  b  1  '   b3  = 1  b'  1  4   b'  0   0  b'6    '  0  b7  1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1   b0  1    b1  1       b  0        b3  0  +   b  0        b5  1    b6  1        b7  0  bi biểu thị bít thứ i byte b Dịch hàng State Array; Phép biến đổi ShiftRows( ) Phép biến đổi AES dịch hàng State Array Lượng dịch Shift ( r, N b ) phụ thuộc vào số hàng r Các khối đầu vào (bản rõ) vào khối đầu (bản mã) khối 128 bít gồm N b = từ 32 bít Phép biến đổi ShiftRows( ) biểu thị sau: s 'r,c =s r ( c+shift ( r, N b ) ) mod N b ≤ c ≤ N b Hàng không dịch, tức shift ( 0, N b = ) = Với hàng lại lượng dịch tùy theo số hàng shift ( 0,4 ) = shift ( 1,4 ) = shift ( 2,4 ) = shift ( 3,4 ) = Trang 15 An toàn bảo mật công nghệ thông tin Trộn liệu cột State Array: Phép biến đổi Mixcolumns( ) Phép biến đổi Mixcolumns( ) dùng để trộn liệu cột ma trận ( ) trạng thái Các cột xem đa thức GF Đầu Mixcolumns( ) s ' ( x ) tạo cách nhân cột với s ( x ) với đa thức a ( x ) rút gọn theo ( ) mod X + ( ) s ' ( x ) = a ( x ) s ( x ) mod X + đó: a ( x ) = 03H x + 01H x + 02H Ở dạng ma trận phép biến đổi viết sau: s'0,c  02    H '  s1,c   01H  ' = s 2,c   01H  '   03H  s3,c  03H 02H 01H 01H 01H 03H 02H 01H 01H  s 0,c    01H   s1,c   03H  s 2,c    02H   s3,c  Ở ≤ c < N b Mở rộng khóa AES: KeyExpansion( ) Thuật toán AES tạo từ khóa mã 128 bít (hoặc 192 256 bít) tập khởi tạo N b từ 32 bít N b từ 32 bít cho vòng bao gồm N b ( N r + 1) từ 32 bít Chương trình giải mã KeyExpansion( ) chứa SubWord( ) RotWord( ) Hàm SubWord( ) phép thay (hộp S) từ vào byte từ byte Hàm RotWord( ) thực phép hoán vị vòng byte từ byte (32 bít) Wi : Trang 16 An toàn bảo mật công nghệ thông tin RotWord ( a ,a1,a ,a ) = ( a1,a ,a ,a ) ( KeyExpansion byte key [ 4* N k ] , word w  N b* ( N r + 1)  , N k ) Begin i=0 while ( i < N k ) w [ i ] = word  key [ 4*i ] ,key [ 4*i + 1] ,key [ 4* i + ] ,key [ 4*i + 3]  i = i +1 end while i ; Nk while ( i < N b* ( N r + 1) ) word temp = w [ i − 1] if ( i mod N k = ) temp = SubWord ( RotWord ( temp ) ) xor Rconw [ i N k ] else if ( N k = and i mod N k = ) temp = SubWord ( temp ) end if w [ i ] ; w [ i − N k ] = xor temp Trang 17 An toàn bảo mật công nghệ thông tin i = i +1 end while end (nguồn trích dẫn: Đặc tả thô AES: http://csrc.nist.gov/encryption/aes/ ) Chương trình giải mã AES: ( Cipher bytein [ 4* N b ] ,byteout [ 4* N b ] , word w  N b* ( N r + 1)  ) Begin byte state [ 4, N b ] state = in AddRoundKey(state,w) for round = step to N r − SubBytes (state), ShifRows (state), Mixcolumns(state), AddRoundKey(state,w+round * N b ) end for SubBytes (state), ShifRows (state) AddRoundKey(state,w+N r*N b ) out = state end 1.3.4 Mở rộng khóa AES Dùng khoá 128 bit (16 byte) mở rộng thành mảng gồm 44/52/60 từ 32 bit Bắt đầu việc copy khoá vào từ đầu Trang 18 An toàn bảo mật công nghệ thông tin Sau tạo quay vòng từ mà phụ thuộc vào giá trị vị trí trước vị trí sau  trường hợp XOR chúng  Mỗi thứ có S box kết hợp quay XOR với số trước đó, trước XOR  Thiết kế chống công biết Giải mã AES Giải mã ngược lại không bước thực theo thứ tự ngược lại Nhưng xác định mã ngược tương đương với bước làm mã • Nhưng sử dụng ngược lại với bước • Với khoá khác Thực kết không thay đổi • Đổi lại phép byte dịch hàng • Đổi lại việc trộn cột bổ sung khoá vòng Lý mở rộng khoá: tiêu chuẩn thiết kế bao gồm • Giả sử biết phần khoá, không đủ để biết nhiều hơn, tức khoá khác khoá nói chung • Phép biến đổi nghịch đảo • Nhanh nhiều kiểu CPU • Sử dụng số vòng để làm tính đối xứng • Khuếch tán bit khoá thành khoá cho vòng • Có đủ tính phi đối xứng để chống thám mã • Đơn giản việc giải mã Trang 19 An toàn bảo mật công nghệ thông tin Các khía cạnh cài đặt: • Có thể cài đặt hiệu CPU bit • Phép byte làm việc byte sử dụng bảng với 256 đầu vào • Dịch hàng phép dịch byte đơn giản • Cộng khoá vòng làm việc byte XOR • Các cột hỗn hợp yêu cầu nhân ma trận GF(28) mà làm việc giá trị byte, đơn giản cách tra bảng • cài đặt hiệu CPU 32 bit • Xác định lại bước để sử dụng từ 32 bit • Có thể tính trước bảng với 256 đầu vào • Sau cột vòng tính cách tra bảng XOR • Cần 16 Kb để lưu bảng • Những nhà thiết kế tin tưởng việc cài đặt hiệu yếu tố việc chọn mã AES Trang 20 An toàn bảo mật công nghệ thông tin PHẦN 2: XÂY DỰNG ỨNG DỤNG Với lý thuyết tìm hiểu nhóm chúng em tiến hành cài đặt xây dựng chương trình mã hóa giải mã sử dụng AES, sử dụng ngôn ngữ C#, NET 2.1 Cài đặt thuật toán Dưới thuật toán mã hóa liệu giải mã liệu:  Thuật toán mã hóa liệu: public string Encrypt(string Data,string Password , int Bits) { //string Password = aeskey192; byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(Data); PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] { 0x00, 0x01, 0x02, 0x1C, 0x1D, 0x1E, 0x03, 0x04, 0x05, 0x0F, 0x20, 0x21, 0xAD, 0xAF, 0xA4 }); if (Bits == 128) { byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(16), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else if (Bits == 192) { byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(24), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else if (Bits == 256) { Trang 21 An toàn bảo mật công nghệ thông tin byte[] encryptedData = Encrypt(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16)); return Convert.ToBase64String(encryptedData); } else { return string.Concat(Bits); } }  Thuật toán mã hóa liệu: private byte[] Decrypt(byte[] cipherData, byte[] Key, byte[] IV) { MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = Key; alg.IV = IV; CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(cipherData, 0, cipherData.Length); cs.Close(); byte[] decryptedData = ms.ToArray(); return decryptedData; } Trang 22 An toàn bảo mật công nghệ thông tin 2.2 Kết đạt Dưới giao diện chương trình thực mã hóa giải mã thành công sử dụng AES Quá trình mã hóa: Bản rõ (plan text) Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam Khóa (Key) CAO HỌC HƯNG YÊN Kết (Result) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Quá trình giải mã: Bản rõ cần giải mã chuỗi mã hóa trình Trường hợp 1: Khóa đưa vào với khóa ban đầu (Key= CAO HỌC HƯNG YÊN), ta nhận kết xâu ban đầu chưa bị mã hóa (Result=Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam) Bản rõ (plan text) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Khóa (Key) Cao Học Hưng Yên Kết (Result) Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam Kết chạy ứng dụng: Trang 23 An toàn bảo mật công nghệ thông tin Trường hợp 2: Khóa đưa vào không với khóa ban đầu (Key= CAO HỌC HƯNG YÊN), ta nhận kết xâu ban đầu chưa bị mã hóa (Result=Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam) Bản rõ (plan text) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Khóa (Key) CAO HỌC HƯNG YÊN Kết (Result) Không nhận chuỗi giả mã (Hiển thị message) Hình minh họa kết chạy ứng dụng: Trang 24 An toàn bảo mật công nghệ thông tin Trang 25 An toàn bảo mật công nghệ thông tin TÀI LIỆU THAM KHẢO [1] Bài giảng thầy TS Nguyễn Khánh Văn [2] Chapter7, Behrour Forouzan, Cryptography and Network Security [3] Chapter 4- The Advance Encryption Standard (AES), Understanding Crytography, by Christof Paar and Jan Pelzl [4] Lập trình Window Form với C#, Phạm Hữu Khang, NXB [5] Các tài liệu Wikipedia.com [6] Google.com Trang 26 [...]... AES sẽ thực hiện một số vòng mã hóa N r phụ thuộc vào độ dài khóa được sử dụng (Xem bảng 1) Thuật toán Độ dài đầu Độ dài Số Trang 13 An toàn bảo mật trong công nghệ thông tin AES vào/đầu ra khóa N k AES − 128 4 từ 4 từ AES − 192 4 từ 6 từ AES − 256 4 từ 8 từ vòng N r 10 vòng 12 vòng 14 vòng Bảng 1: Số các vòng mã hóa của AES Mã hóa AES: Mỗi vòng gồm 4 phép biến đổi mật mã theo byte - Thay thế byte... và nén mã trên nhiều CPU o Đơn giản trong thiết kế 1.3.3 Thuật toán AES AES mã hóa một khối bản rõ M 128 bít thành một khối bản mã C 128 bít bằng cách dùng một khóa mã K có độ dài 128 bít (hoặc 192 hoặc 256 bít) tương ứng với AES − 128 (hoặc AES − 192 hoặc AES − 256 ) Thuật toán thực hiện trên các byte và kích thước khối đối với đầu vào đầu ra và khóa được biểu thị bằng các từ 32 bít (4 byte) AES sẽ... được mã hóa và giải mã thành công sử dụng AES Quá trình mã hóa: Bản rõ (plan text) Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam Khóa (Key) CAO HỌC HƯNG YÊN Kết quả (Result) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Quá trình giải mã: Bản rõ cần giải mã chính là chuỗi đã được mã hóa ở quá trình trên Trường hợp 1: Khóa... yếu tố cơ bản trong việc chọn nó là mã AES Trang 20 An toàn bảo mật trong công nghệ thông tin PHẦN 2: XÂY DỰNG ỨNG DỤNG Với lý thuyết tìm hiểu được ở trên nhóm chúng em đã tiến hành cài đặt và xây dựng chương trình mã hóa và giải mã sử dụng AES, sử dụng ngôn ngữ C#, NET 2.1 Cài đặt thuật toán Dưới đây là thuật toán mã hóa dữ liệu và giải mã dữ liệu:  Thuật toán mã hóa dữ liệu: public string Encrypt(string...An toàn bảo mật trong công nghệ thông tin 1.3 Lý thuyết về chuẩn mã hóa nâng cao Để cung cấp an ninh, AES sử dụng bốn lại biến đổi: thay thế, hoán vị, trộn và thêm khóa 1.3.1 Cơ sở toán học của AES Trong AES các phép toán cộng và nhân được thực hiện trên các byte trong trường hữu ( ) 8 hạn GF 2 Phép cộng: Phép cộng giữa hai phần... 01H 01H  s 0,c    01H   s1,c   03H  s 2,c    02H   s3,c  Ở đây 0 ≤ c < N b Mở rộng khóa AES: KeyExpansion( ) Thuật toán AES sẽ tạo từ khóa mã 128 bít (hoặc 192 hoặc 256 bít) một tập khởi tạo N b từ 32 bít và N b từ 32 bít cho mỗi vòng bao gồm N b ( N r + 1) từ 32 bít Chương trình giải mã KeyExpansion( ) chứa các SubWord( ) và RotWord( ) Hàm SubWord( ) là một phép thay thế (hộp S) một... 2: Khóa đưa vào là không đúng với khóa ban đầu (Key= CAO HỌC HƯNG YÊN), ta nhận được kết quả xâu như ban đầu chưa bị mã hóa (Result=Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam) Bản rõ (plan text) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Khóa (Key) CAO HỌC HƯNG YÊN Kết quả (Result) Không nhận được chuỗi giả mã. .. thứ 4 có S box kết hợp quay và XOR với hằng số trước đó, trước khi XOR cùng nhau  Thiết kế chống các tấn công đã biết Giải mã AES Giải mã ngược lại không duy nhất vì các bước thực hiện theo thứ tự ngược lại Nhưng có thể xác định mã ngược tương đương với các bước đã làm đối với mã • Nhưng sử dụng ngược lại với từng bước • Với khoá con khác nhau Thực hiện được vì kết quả không thay đổi khi • Đổi lại... quá trình trên Trường hợp 1: Khóa đưa vào là đúng với khóa ban đầu (Key= CAO HỌC HƯNG YÊN), ta nhận được kết quả xâu như ban đầu chưa bị mã hóa (Result=Thu Hương – Văn Quyết – Quốc Việt – Hoài Nam) Bản rõ (plan text) LQN51atMq95AOYybpKCYoDurjkk6eB/d3uP9WxizdwxwoeM wK4opRRHTZqZOepkxdlQNy4jjZta8+foovsFr9+XR2EDTzggzy wCzqvUTd985/Q57xVt5BI5sDL3lvPVC Khóa (Key) Cao Học Hưng Yên Kết quả (Result) Thu Hương... temp = SubWord ( temp ) end if w [ i ] ; w [ i − N k ] = xor temp Trang 17 An toàn bảo mật trong công nghệ thông tin i = i +1 end while end (nguồn trích dẫn: Đặc tả thô AES: http://csrc.nist.gov/encryption /aes/ ) Chương trình giải mã của AES: ( Cipher bytein [ 4* N b ] ,byteout [ 4* N b ] , word w  N b* ( N r + 1)  ) Begin byte state [ 4, N b ] state = in AddRoundKey(state,w) for round = 1 step 1 ... kế 1.3.3 Thuật toán AES AES mã hóa khối rõ M 128 bít thành khối mã C 128 bít cách dùng khóa mã K có độ dài 128 bít (hoặc 192 256 bít) tương ứng với AES − 128 (hoặc AES − 192 AES − 256 ) Thuật toán... người xâm phạm Đây dạng xâm nhập biết kiểu công Man-in-theMiddle Thuật toán Rivest Shamir Adleman (RSA), tham khảo sau giải hiệu phương pháp công Man-in-the-Middle mà nảy thuật toán DH Thuật toán... thống mã hóa bất đối xứng dùng phổ biến thuật toán DiffieHellman (DH) thuật toán Rivest Shamir Adleman (RSA) Thuật toán Diffie-Hellman Trong thuật toán DH, mổi thực thể giao tiếp nhận cặp khóa,

Ngày đăng: 07/04/2016, 12:21

Từ khóa liên quan

Mục lục

  • PHẦN 1: CƠ SỞ LÝ THUYẾT

    • 1.1. Lý thuyết về mã hóa dữ liệu

      • 1.1.1. Hệ thống mã hóa đối xứng (Symmetric Cryptosystems)

      • 1.1.2. Hệ thống mã hóa bất đối xứng (Asymmetric Cryptosystems)

      • 1.2. Lịch sử phát triển của AES

      • 1.3. Lý thuyết về chuẩn mã hóa nâng cao

        • 1.3.1. Cơ sở toán học của AES

        • 1.3.2. Chuẩn mã nâng cao AES – Rijndael

        • 1.3.3. Thuật toán AES

        • 1.3.4. Mở rộng khóa AES

        • PHẦN 2: XÂY DỰNG ỨNG DỤNG

          • 2.1. Cài đặt thuật toán

          • 2.2. Kết quả đạt được

          • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan