1. Trang chủ
  2. » Công Nghệ Thông Tin

Quy trình mở rộng khóa AES

16 1,1K 2

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 378,96 KB

Nội dung

Quy trình mở rộng khóa của thuật toán AESCách thực hoạt động của SboxCách sinh SboxVí dụ về mở rộng khóa AES.....................................................................................................................................

Chương 1: HỆ MẬT MÃ ĐỐI XỨNG TIÊN TIẾN Chương cung cấp kiến thức mở rộng nâng cao liên quan đến hệ mật mã hóa đối xứng bao gồm: vấn đề mở rộng khóa cho thuật tốn mã hóa AES; đánh giá mức độ an tồn hệ mật; số kỹ thuật công lên hệ mật Bên cạnh đó, chương trình bày nguyên tắc làm việc số giải thuật mã hóa hệ mật mã đối xứng tiên tiến điển hình ứng dụng nhiều như: IDEA; Twofish; RC6 VẤN ĐỀ MỞ RỘNG KHÓA CHO GIẢI THUẬT AES Ưu điểm nhược điểm AES AES (Advanced Encryption Standard) chuẩn mã hóa tiên tiến ứng dụng rộng rãi Về AES xây dựng sở thuật toán Rijndael (hai nhà mật mã học người Bỉ Joan Deamen Vincent Rijmen) mạng thay hoán vị Tuy nhiên, ngày thói quen lên người dùng thường gọi AES thuật toán hay giải thuật Trong giảng, thống gọi chuẩn mã hóa tiên tiến AES giải thuật mã hóa AES AES đời nhằm giải nhược điểm mà giải thuật mã hóa DES gặp phải Tuy nhiên, triển khai sử dụng AES thực tế giải thuật gặp phải số vấn đề định Để hiểu rõ vấn đề mà AES gặp phải, giảng trình bày ưu điểm nhược điểm giải thuật mã hóa a - Ưu điểm giải thuật mã hóa AES: Mức độ an tồn: trình bày trên, AES chọn để thay cho giải thuật mã hóa DES AES mang chế mã hóa an tồn Tính an tồn AES thể [6, 7]: o AES mạnh nhanh Triple DES: AES thiết kế với sở lý thuyết rõ ràng, mạch lạc, yêu cầu thời gian sống khoảng 20-30 năm (cộng thêm thời gian lưu trữ) Algorithm MiB/Second Cycles Per Byte Microsecond to Setup Key and IV Cycles to Setup Key and IV AES/CBC(192-bit 753 4.0 0.216 679 key) DES-XEX3/CTR 59 51.1 2.465 7759 (192-bit key) Điểm benchmarks thuật tốn AES mã hóa chế độ CBC với độ dài khóa 192 DES độ dài khóa 192 Hai thuật tốn chạy hệ điều hành Fedora reease 25 (x86_64) sử dụng CPU hệ thứ Skylake, 3.14713e+09 Hz[1] o Chống lại kỹ thuật công: AES sử dụng bảng tra phép có tính chất phi tuyến mạnh dẫn đến mức độ phân tán thông tin phức tạp Chính kỹ thuật làm cho giải thuật mã hóa AES an tồn trước kỹ thuật cơng vi sai tuyến tính o AES tả tốn học, cấu trúc đơn giản, tính mềm dẻo, tính tương thích với phần cứng phần mềm AES thể mền dẻo chỗ [6]: Hỗ trợ việc xử lý khố khối có kích thước nhỏ kích thước tối thiểu; Có khả thực cách an toàn hiệu nhiều mơi trường khác nhau; Có thể thực mã hố dòng, hàm băm cung cấp dịch vụ mã hố khác; dễ dàng mở rộng khóa để phù hợp với nhu cầu thực tế o AES cung cấp nhiều thư viện: C/ASM, C++, C#/.NET, Java, Python, Javascript, LabVIEW, JavaScript o Tốc độ mã hóa giải mã nhanh Algorithm Rijndael Twofish RC6 Encrypt by Pentium Pro C (clocks) 850 8600 1700 Bảng so sánh tốc độ mã hóa Rijndael, Twofish, RC6[2] - Khả ứng dụng: o Hiện nay, AES sử dụng phổ biến toàn giới để bảo vệ liệu tổ chức ngân hàng, tài chính, phủ, thương mại điện tử, chữ ký điện tử;…  Thiết kế độ dài khóa thuật tốn AES (128, 192 256 bít) đủ an tồn để bảo vệ thông tin xếp vào loại TỐI MẬT (secret) Các thông tin TUYỆT MẬT (top secret) phải dùng khóa 192 256 bít [3] o Mã hóa AES ứng dụng nhanh phần cứng phần mềm, yêu cầu không gian lưu trữ nhỏ, lý tưởng để sử dụng cho việc mã o o o o o o o hóa thiết bị cầm tay nhỏ ổ USB flash, ổ đĩa CD;… Sử dụng đóng gói bảo mật liệu; Sử dụng giao thức mạng VPN-IPsec, Wifi Lưu trữ nén: RAR, WinZip, UltraISO [3] Mã hóa File: Gpg4win, Ncrypt [3] Mã hóa hệ thống File: NTFS [3] Mã hóa đĩa, phân vùng: BitLocker, CipherShed, DiskCryptor, FileVault [3] An ninh truyền thông mạng nội bộ: IEEE 802.11i( mở rộng 802.11 dùng WPA2), ITU-T G.hn.(tạo đường truyền tốc độ cao – 1Gb/s mạng LAN sử dụng đường truyền nhà – dây điện, dây điện thoại, sử dụng AES-128 để mã hóa) [3] o Tích hợp vào phần cứng: [3]  Tháng 3, 2008 AES tích hợp vào tiện ích mở rộng kiến trúc x86 (x86 instruction set architecture) cho vi xử lý hãng Intel AMD  AES tích hợp vào vi xử lý lõi SPARC S3 (do Sun Microsystems phát triển) sử dụng hệ thống SPARC T4 SPARC T5 b Nhược điểm giải thuật mã hóa AES: o Cũng giống giải thuật mã hóa DES, giải thuật mã hóa AES từ lúc đời có nhiều ý kiến trái chiều mức độ an toàn giải thuật Độ an tồn tổng thể Độ khó thực Hiệu suất phần mềm Rijndael Serpent Twofish MARS RC6 3 1 1 2 Hiệu suất thẻ thông minh Hiệu suất phần cứng Những tính thiết kế Tổng 3 1 3 2 16 14 13 10 Chấm điểm thuật toán dự thi tuyển chọn AES o AES chống lại số kỹ thuật cơng vét cạn (brute-force), vi sai, tuyến tính lại khơng an tồn với kỹ thuật cơng kên bên hay gọi kênh kề (side channel attacks) o Năm 2006 nhà mật mã công vòng với khóa 128 bit; vòng với khóa 192 bit vòng với khóa 256 bit[4] o 03-08-2009, nhà mật mã học Alex Biryukov, Orr Dunkelman, Nathan Keller, Dmitry Khovratovich, and Adi Shamir tìm cách cơng nhằm vào AES-256 cách sử dụng khóa liên quan đến sử dụng thuật tóan brute-force, sau chạy 239 phép thử cơng đến vòng thứ 9, 245 phép thử cơng đến vòng thứ 10, 270 phép thử cơng đến vòng thứ 11 Nhưng o chưa cơng đến vòng thứ 14 AES-256 11-2009, vòng thứ AES-128 bị công bới cách công known-key distinguishing attack ( hình cơng chống lại mã hóa khóa đối xứng, mà người cơng biết trước khóa từ khóa để tìm cấu trúc mã hóa cho việc mã hóa từ rõ sang mã ngẫu nhiên ) o Chi phí phát triển chuẩn mã hóa mới: Để xây dựng chuẩn mã hóa tốn nhiều chi phí bao gồm: chi phí quyền, chi phí xây dựng, thay ứng dụng cũ… Trên đây, giảng trình bày nhu cầu mở rộng khóa cho AES Từ phân tích trình bày thấy việc lựa chọn mở rộng khóa cho giải thuật mã hóa thay lựa chọn phương pháp mã hóa thay phụ thuộc vào nhiều yếu tố, bật lên yếu tố bản: mức độ an tồn chi phí thay Tiếp theo, giảng trình bày phương pháp mở rộng khóa cho AES mà thuật tốn Rijindael cung cấp Giải pháp mở rộng khóa cho AES Trong phần trước, giảng trình bày ưu điểm nhược điểm giải thuật mã hóa AES nhu cầu cấp thiết cần phải mở rộng khóa cho giải thuật mã hóa Tiếp theo, giảng tả phương pháp mở rộng khóa AES Để hiểu rõ phương pháp mở rộng khóa AES, trước tiên xem xét vấn đề giải thuật mã hóa AES Chi tiết tả q trình mã hóa giải mã giải thuật mã hóa AES trình bày tài liệu tham khảo [1÷6] Trong giảng, tả lại vấn đề cần thiết phục vụ cho q trình mở rộng khóa AES Các vấn đề giải thuật mã hóa AES sau: a) Đặc trưng bản: - Đầu vào đầu khối liệu 128 bít Khóa dùng để mã hóa giải mã bắt buộc giải thuật 128 ,192 256 bít AES thiết kế dựa mạng thay hoán vị SPN (substitution-permutation - network) AES vận hành dựa ma trận 4×4, gọi state (trạng thái) Kích thước khóa định số vòng lặp mã hóa giải mã: 10 vòng lặp với khóa 128 bít; 12 vòng lặp với khóa 192 bít; 14 vòng lặp với khóa 256 bít b) Cơ sở tốn học: phép cộng phép nhân trường GF(28)  Phép cộng trường GF(28): Là phép XOR hay phép cộng theo modulo bit tương ứng byte Giả sử:  Ví dụ: Tính tổng 73H 4EH là:   Phép nhân trường GF(28): Phép nhân thực trường GF(28) cách nhân đa thức rút gọn theo modulo đa thức bất khả quy Giả sử:  Ví dụ: Tính tích 53H CAH là:  c) Sơ lược trình mã hóa/giải mã Thuật tốn mã hóa AES tả khái qt bước sau: Vòng khởi tạo gồm bước AddRoundKey Vòng lặp gồm phép biến đổi: • SubBytes • ShiftRows • Mix Columns • Add RoundKey Vòng cuối gồm phép biến đổi giống vòng lặp khơng có Mix Columns Tương tự với thuật tốn mã hóa, thuật tốn giải mã AES gồm bước ngược lại so với mã hóa: Vòng khởi tạo gồm bước AddRoundKey Vòng lặp gồm phép biến đổi: • InvSubBytes • InvShiftRows • InvMixColumns • AddRoundKey Vòng cuối gồm phép biến đổi giống vòng lặp khơng có InvMixColumns d) Q trình sinh khóa ( Mở rộng khóa – KeyExpandsions) Sơ lược q trình sinh khóa Q trình sinh khóa (KeyExpandsions) thao tác tạo lược đồ khóa hay mở rộng khóa, tạo Nr+1 khóa vòng từ khóa K, khóa vòng gồm Nb từ 32 bit (Nb = 4) Các phép biến đổi để tạo khóa vòng có điểm khác giá trị khác kích thước khóa K Trong q trình sinh khóa, khóa vòng hoạt động mảng ma trận có kích thước 4xNk với Nk tương ứng độ dài khóa • Với khóa 128 bit : Nk = k00 k10 k20 k30 w0 k01 k11 k21 k31 w1 • k00 k10 k20 k30 w0 k00 k10 k20 k30 w0 k01 k11 k21 k31 w1 k03 k13 k23 k33 w3 Với khóa 192 bit: Nk = k01 k11 k21 k31 w1 • k02 k12 k22 k32 w2 k02 k12 k22 k32 w2 k03 k13 k23 k33 w3 k04 k14 k24 k34 w4 k05 k15 k25 k35 w5 Với khóa 256 bit: Nk = k02 k12 k22 k32 w2 k03 k13 k23 k33 w3 k04 k14 k24 k34 w4 k05 k15 k25 k35 w5 k06 k16 k26 k36 w6 k07 k17 k27 k37 w7 Ghi chú: wi: từ thứ i – từ có kích cỡ 32bit kij : có kích thước bit Các bước thực sinh khóa 2.1: Khởi tạo Ban đầu, khóa chuyển thành dạng hex đưa vào ma trận x Nk Ví dụ với khóa 128 bit: (Nb = 4, Nk = 4, Nr = 10) => có: Nb x (Nr+1) = 44 từ Dạng rõ (Nếu độ dài khóa khơng đủ 128 bit chèn thêm bit cho đủ kích cỡ khóa ): M A T M A H O C N A Chuyển đổi từ dạng rõ sang dạng hex: N G C A O ! 4d 43 47 43 41 4f 21 41 54 4d 41 48 4f 43 4e 41 2.2: Đưa vào mảng 4d 41 54 4d W0 41 48 41 48 W1 4e 41 43 47 W2 2.3: Các vòng lặp Tính từ lại: w4 -> w43 Trong vòng lặp, từ sinh theo quy tắc: Từ đầu tiên: wi = wi-4 g Với g = Ba từ lại: 2.3.1: RotWord Dịch trái bit từ Ví dụ: 43 41 4f 21 41 4f 21 43 43 41 4f W3 21 Sau RotWord: 2.3.2: SubWord So sánh sánh kij sau RotWord với bảng S-box ki tương ứng với hàng bảng S-box kj tương ứng với cột bảng S-box 41 4f 21 43 Ví dụ: 83 84 fd 1a Sau SubWord: 2.3.3: Rcon Với Round tương ứng ta so với bảng Sbox để lấy giá trị 2.3.4: Tính g g= Ví dụ: tính W4 41 4f 21 43 83 = 84 fd 1a 01 00 00 00 cf c5 a9 57 2.3.5: Tính từ lại vòng lặp Tính theo cơng thức: Ví dụ: Tính w5 vòng lặp 41 48 4f 43 8d = 8e e6 14 cf c5 a9 57 Kết thu sau sinh khóa: e) Cách sinh bảng S-box Rcon[5] Bảng S-box: • Bảng tra cứu S-box AES ma trận vuông 16 x 16 phục vụ cho việc thực phép thay phi tuyến tính xây dựng từ thuật tốn mã hóa Rijndael • Gồm loại: o Bảng S-box thuận (Forward S-box): dùng mã hóa o Bảng S-box đảo (Inverse S-box): dùng giải mã • Tuy vậy, trình sinh khóa việc mã hóa giải mã thuật toán AES sử dụng bảng S-box thuận • Cách xây dựng: o Khởi tạo: tạo ma trận vng 16 x 16 có hàng cột đánh thứ tự từ đến f Điền giá trị ô tương ứng hàng cột (từ {00} đến {ff}) Như vậy, hàng x cột y có giá trị {xy} o Thay giá trị bảng giá trị nghịch đảo chúng trường GF(28) Giá trị nghịch đảo s t thỏa mãn: hay Ví dụ: => nghịch đảo CA 53 ngược lại o Những giá trị nghịch đảo biến đổi thông qua phép biến đổi affine: Phép biến đổi thực cách: - Thực phép toán XOR giá trị giá trị sau quay trái bit, bit, bit bit Ví dụ: Kết thu đem XOR với 63H (0110 00112) hay 74H  Giá trị hàng C cột A 74 - • Cuối cùng, ta thu bảng: Bảng S-box • Bảng Rcon: Bảng Rcon thực chất loạt phần tử Rcon[i] sử dụng vòng lặp q trình sinh khóa thuật tốn Rijndael, với: Rcon[i] = (RC[i], 0x00, 0x00, 0x00) RC[i] số tương ứng vòng hồn tồn độc lập (khơng phụ thuộc biến nào) • Các giá trị RC[i] tính theo cơng thức (trên trường GF[2 8]): RC[1] = 0x01 RC[j] = 0x02 x RC[j-1] Bảng Rcon Chú ý bảng Rcon có 10 phần tử, nhiên thực tế bảng Rcon có phần tử nằm sau tiếp tục sinh theo quy tắc để phục vụ thuật tốn Rijndael, ví dụ Rcon [29] dùng cho khóa 128 bit ứng với đầu vào 256 bit f) Khác biệt trình sinh khóa loại khóa 128 bit, 192 bit 256 bit Khóa 128 bit Khóa 192 bit Khóa 256 bit Số Số từ khóa tạo Số từ khóa tạo ra: Số từ khóa tạo ra: vòng ra: x (Nr +1)= x (12+1) x (Nr + 1)=4x(14 + 1) = lặp x (Nr + 1) = = 52 từ 60 từ sinh 4x(10+1) = 44 từ khóa Số từ sinh sau Số từ sinh sau Số từ sinh sau vòng lặp sinh khóa vòng lặp sinh khóa con: vòng lặp sinh khóa con: con: từ từ từ Số vòng lặp: Số vòng lặp: Số vòng lặp: =>sử dụng đến Rcon[10], khơng thừa từ =>sử dụng đến Rcon[8], thừa từ w52 w53 =>sử dụng đến Rcon[7], thừa từ w60 đến w63 Ngồi khóa 256 bit, với từ vị trí có thứ tự i thỏa mãn i chia dư sử dụng thêm hàm SubWord trước tính từ tiếp theo: wi = Subword(wi-8 wi-1) 1.1.3 Mở rộng khóa AES-512 AES-1024 Mặc dù từ lúc thuật tốn Rijandael đời tác giả đặt giới hạn độ dài khóa 256 bit theo tài liệu cơng bố AES - FIPS PUB 197 Viện tiêu chuẩn quốc gia Hoa Kỳ (NIST) kích cỡ khóa tối đa AES 256 bit Nhưng đến ngày phát triển nhanh mạnh mẽ máy tính với vòng khóa AES bị cơng nên có số tác giả cho mở rộng khóa AES lên 512 bit 1024 bit Năm 2014, tác giả Rishabh Jain , Rahul Jejurkar2 , Shrikrishna Chopade3 , Someshwar Vaidya , Mahesh Sanap cơng bố thuật tốn AES với độ dài khóa 512 bit Tạp chí Quốc tế Nghiên cứu Đổi Máy tính kỹ thuật truyền thông (International Journal of Innovative Research in Computer and Communication Engineering) Khác với AES nguyên AES-512 có độ dài khối 512 bit thay 128 bit[6] Bảng so sánh AES 128/256 bits AES 512 bits Năm 2015, tác giả Ramya, Anita Madona cơng bố báo mở rộng khóa AES lên 1024 bit Tạo chí Quốc tế Nghiên cứu Đổi Máy tính Kỹ thuật truyền thơng Cũng giống AES-512, AES-1024 sử dụng độ dài khối đầu 512 bit thay 128 bit AES mà NIST công bố[7] 1.1.4 Kết luận Với tả thuật toán đơn giản – bao gồm phép XOR phép hoán vị AES áp dụng rộng rãi thực tế dễ dàng tích hợp với phần cứng Nhưng sợ đơn giản mà AES lại đem đến nhiều tranh cãi mức độ an tồn Mặc dù chưa có cách thức công thành công vào AES ngoại trừ công kênh bên với phát triển nhanh chóng tốc độ tính tốn máy tính việc phá vỡ AES có lẽ xảy tương lai khơng xa Gần đây, có nhà mật mã học cơng bố thuật tốn để mở rộng độ dài khóa AES lên 512 bit 1024 bit NIST giữ chuẩn độ dài khóa 128 bit, 192 bit 256 bit Tài liệu tham khảo: [1] https://www.cryptopp.com/benchmarks.html [2] Bruce Schneier, Counterpane Systems John Kelsey, Counterpane Systems Doug Whiting, Hi/fn David W agner, UC Berkeley, “AES Performance Comparisons“ [3] https://en.wikipedia.org/wiki/AES_implementations [4] https://en.wikipedia.org/wiki/Advanced_Encryption_Standard [5] NIST-FIPS-197 [6] Rishabh Jain, Rahul Jejurkar, Shrikrishna Chopade, Someshwar Vaidya, Mahesh Sanap, “AES Algorithm Using 512 Bit Key Implementation for Secure Communication” [7] Ms Ramya G, Ms Anita Madona M, “ENHANCING DES AND AES WITH 1024 BITS KEY” ... d) Q trình sinh khóa ( Mở rộng khóa – KeyExpandsions) Sơ lược q trình sinh khóa Q trình sinh khóa (KeyExpandsions) thao tác tạo lược đồ khóa hay mở rộng khóa, tạo Nr+1 khóa vòng từ khóa K, khóa. .. cần phải mở rộng khóa cho giải thuật mã hóa Tiếp theo, giảng mơ tả phương pháp mở rộng khóa AES Để hiểu rõ phương pháp mở rộng khóa AES, trước tiên xem xét vấn đề giải thuật mã hóa AES Chi tiết... theo, giảng trình bày phương pháp mở rộng khóa cho AES mà thuật tốn Rijindael cung cấp Giải pháp mở rộng khóa cho AES Trong phần trước, giảng trình bày ưu điểm nhược điểm giải thuật mã hóa AES nhu

Ngày đăng: 19/12/2017, 11:29

TỪ KHÓA LIÊN QUAN

w