Cơ sở toán học của mã đối xứng

45 386 0
Cơ sở toán học của mã đối xứng

Đ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

1 Khóa luận tốt nghiệp Trƣờng Đại Học Sƣ phạm Hà Nội Khoa toán == o0o== đỗ ngọc sở toán học mã đối xứng khoá luận tốt nghiệp đại học Chuyên ngành: ứng dụng Người hướng dẫn khoa học ts Trần minh tƣớc hà nội – 2010 Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp MỤC LỤC Lời cảm ơn ………………….……………………………………………… Lời cam đoan ……………………………………………………………… Mở đầu ……………………………………………………………………… CHƢƠNG CÁC KIẾN THỨC CHUẨN BỊ 1.1 Phép đồng dư vấn đề liên quan ……………………………………… 1.2 Trường hữu hạn ………………………………………………………… 1.3 Trường số (mở rộng đại số) …………………………………………… 11 CHƢƠNG MÃ ĐỐI XỨNG 2.1 Một số thuật ngữ khái niệm ………………………………………… 14 2.2 Một số hệ mã đối xứng 2.2.1 Khái niệm chung ……………………………………………………… 15 2.2.2 Hệ mã liệu tiêu chuẩn DES ……………………………………… 15 2.2.3.Tiêu chuẩn mã nâng cao AES thuật toán Rijndael ………………… 21 Kết luận …………………………………………………………………… 42 Tài liệu tham khảo ………………………………………………………… 43 Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp LỜI CẢM ƠN Để hoàn thành Khóa luận tốt nghiệp em nhận hướng dẫn, bảo tận tình TS.Trần Minh Tƣớc, giúp đỡ, động viên thầy cô tổ toán ứng dụng, tất thầy cô bạn sinh viên khoa toán Trường Đại học sư phạm Hà Nội Em xin chân thành cảm ơn giúp đỡ quý báu, đạo tận tình thầy Trần Minh Tƣớc Em xin nói lời cảm ơn tới thầy cô bạn sinh viên Hà nội, tháng năm 2010 Sinh viên thực Đỗ Ngọc Tấn Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp LỜI CAM ĐOAN Tôi xin cam đoan nội dung khóa luận hoàn toàn kết nghiên cứu riêng dẫn khoa học thầy Trần Minh Tước Tôi xin chịu trách nhiệm lời cam đoan Tác giả Đỗ Ngọc Tấn Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp MỞ ĐẦU Lý chọn đề tài Có thể nói, mật mã xuất từ thời cổ đại Người ta cho rằng, người áp dụng mật mã cách có hệ thống để đảm bảo bí mật thông tin quân nhà quân thiên tài La mã cổ đại Julius Caesar Ngày mật mã không dùng quân ngoại giao mà dùng nhiều lĩnh vực khác kinh tế, thương mại, truyền thông… Thừa nhận ý nghĩa quan trọng mang tính sống mật mã thời đại ngày nay, đông đảo chuyên gia đầu tư công sức để nghiên cứu, tìm tòi điều mẻ hiệu mật mã Trong công nghệ mã hóa thông tin phương diện nghiên cứu ứng dụng, Mã đối xứng có vai trò quan trọng Mã đối xứng hệ mã mà việc lập mã giải mã sử dụng chung chìa khóa mã Các loại mã đối xứng điển hình lý thuyết mật mã như: Hệ mã liệu tiêu chuẩn (DES), Mã hoá liệu quốc tế (IDEA), Hệ mã SAFER, gần đời loại mật mã có tính bảo mật cao mã AES Rijndael nghiên cứu Trong đề tài đặt vấn đề nghiên cứu vai trò toán học lý thuyết mật mã nói chung thể số hệ mã đối xứng DES, AES lấy tên đề tài “Cơ sở toán học mã đối xứng” Mục tiêu đề tài Tìm hiểu sơ qua công nghệ mã hóa thông tin cụ thể số hệ mã đối xứng điển hình *Đối tƣợng, phạm vi phƣơng pháp nghiên cứu + Đối tượng: Một số hệ mã đối xứng Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp + Phạm vi: Tìm hiểu hệ mã đối xứng trọng đến sở toán học hệ mã đối xứng + Phương pháp nghiên cứu: Nghiên cứu tư liệu, phân tích, tổng hợp dựa kết số học lý thuyết số Ý nghĩa lý luận thực tiễn đề tài Trên giới nói đến thuật ngữ “Lý thuyết mật mã” hay “Công nghệ mã hóa thông tin” thuật ngữ xa lạ Nhưng Việt Nam nói đến thuật ngữ nói đến vấn đề mẻ sinh viên ngành khoa học Là sinh viên ngành Toán, thực đề tài “Cơ sở toán học mã đối xứng” tiếp cận với lĩnh vực mẻ toán học có ứng dụng hiệu thực tế Việc thực đề tài lần tập dượt nghiên cứu khoa học nhằm nâng cao tri thức thân đồng thời để hiểu thêm hoạt động nghiên cứu khoa học nói chung nghiên cứu toán nói riêng Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp CHƢƠNG CÁC KIẾN THỨC CHUẨN BỊ 1.1 Phép đồng dƣ vấn đề liên quan 1.1.1 Số nguyên tố * Ký hiệu Z tập số nguyên …,  2,1,0,1,2 N tập số tự nhiên (tức số nguyên không âm 0,1,2,3 ) * Với a, bZ ta nói b chia hết cho a b viết thành tích a với số nguyên khác ; ta nói a chia hết b , hay a ước số b , ký hiệu a | b Ta có số tính chất sau: + Nếu a, b, cZ a | b a | bc + Nếu a | b b | c a | c + Nếu a | b a | c a | b  c + Nếu a | b a không chia hết c a không chia hết b  c b c * Số tự nhiên lớn mà không chia hết cho số tự nhiên khác gọi số nguyên tố * Ước chung lớn số tự nhiên a b số lớn tập ước chung số đó, ký hiệu gcd (a, b) hay đơn giản  a, b  Như vậy, d | a d | b d | gcd  a, b  * Khi số tự nhiên có ước chung lớn ta nói chúng nguyên tố 1.1.2 Phi hàm EULER Với nN số lượng số tự nhiên bé n nguyên tố với n kí hiệu  (n) Hàm  (n) gọi phi hàm Euler Ví dụ:  (5)  ,  (6)  ,  (7)  Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp 1.1.3 Phép tính đồng dƣ phƣơng trình đồng dƣ 1.1.3.1 Phép tính đồng dƣ Ta ký hiệu a  b (mod m) a b sai khác bội m , nói cách khác a  b (mod m) a  b chia hết cho m Quan hệ đồng dư modulo m dẫn đến việc phân hoạch tập số nguyên thành m lớp, lớp chứa số nguyên đồng dư với theo modulo m tập lớp kí hiệu Zm chứa m phần tử Mỗi lớp tập Zm có số nằm 0,1, , m  1 số nguyên đoạn xem đại diện cho lớp tập Zm Một số tính chất phép đồng dư  a  a (mod m) ;  Nếu a  b (mod m) b  a (mod m) ;  Nếu a  b (mod m) b  c (mod m) a  c (mod m) ;  Nếu a  b (mod m) , c  d (mod m) a  c  b  d (mod m) , a.c  b.d (mod m) Như ta tự thực phép tính số học thông thường tập Zm Nếu x phần tử Zm gcd ( x, m)  tồn số u, v cho u.x  v.m  1, tức u.x  1(mod m) , nên người ta nói x có nghịch đảo ( Zm ) u thường ký hiệu phần tử nghịch đảo x 1 hay x Tập phần tử Zm mà có nghịch đảo thường ký hiệu Z*m rõ ràng tập có số phần tử nghịch đảo  (m) , tập phép cộng, trừ, nhân ta đưa vào phép chia Nếu a  b (mod m) , c  d (mod m) với gcd (c, m)  a.c 1  b.d 1 (mod m) Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp Ví dụ: Với Z9  0,1,2,3, ,8  , Z*9  1,2,4,5,7,8 ta có 1  4(mod 9) cho phép chia cho (trong Z*9 ) thực sau:  2.7 1  4.2  8(mod9) Ta đương nhiên có  7.8(mod9) 7.8  56  6.9  1.1.3.2 Phƣơng trình đồng dƣ tuyến tính ax  b (mod m) Khi gcd (a, m)  (tức a phần tử Z*m ) ta có nghiệm x  a 1b (mod m) Khi gcd (a, m)  g có khả xảy ra: + phương trình có nghiệm g chia hết b , phương trình cho tương đương với phương trình (a / g ) x  b / g (mod m / g ) hệ số a / g số nguyên tố với m / g + phương trình vô nghiệm g không chia hết b , hiệu số chia hết cho g số không chia hết cho g 1.2 TRƢỜNG HỮU HẠN 1.2.1 Trƣờng Fp Với p số nguyên bất kì, tập lớp đồng dư modulo p tức Z p ta thực phép tính cộng, trừ, nhân Khi p số nguyên tố với phần tử khác không  Z p ta tìm phần tử nghịch đảo  1  Z p theo nghĩa   1  1(mod p) thực phép chia (cho phần tử khác ), theo nghĩa sau:  :     1 Khi Z p có cấu trúc trường ta kí hiệu trường trường Fp Tập phần tử khác trường lập thành nhóm phép nhân kí hiệu F p* Như vậy: Đỗ Ngọc Tấn K32 CN Toán 10 Khóa luận tốt nghiệp Fp*  Fp \ 0  1,2, , p  1 Từ nay, nói đến trường Fp hay nhóm F p* ta hiểu p số nguyên tố Chú ý : Nếu p không nguyên tố định nghĩa tập bao gồm phần tử khả nghịch Z p ký hiệu Z *p Một phần tử g  Fp* gọi phần tử sinh nhóm F p* tập lũy thừa g nhóm này, tức tập sau trùng g , g  , , g p1  1,2, , p  1 (không tính đến thứ tự) Rõ ràng, phần tử phần tử sinh lũy thừa với bậc nhỏ ( p  1) , bậc nhóm, đơn vị Ngược lại, phần tử mà có lũy thừa bậc (nhỏ hẳn ( p  1) ) đơn vị phần tử sinh Dễ thấy phần tử mà không sinh nhóm lũy thừa sinh nhóm và, theo Định lý Lagrange, ta biết bậc nhóm phải ước số lượng phần tử có nhóm chứa (tức ước ( p  1) ) Như muốn kiểm tra xem phần tử có phải phần tử sinh hay không cần nâng lên lũy thừa với bậc ước ( p  1) xem xét: tất lũy thừa khác phần tử sinh (ngược lại không phải) Người ta chứng minh g phần tử sinh nhóm F p* b số nguyên tố với ( p  1) g b phần tử sinh nhóm F p* Cho nên, số phần tử sinh nhóm F p* số số nguyên tố với ( p  1) tức  ( p  1) Đỗ Ngọc Tấn K32 CN Toán 31 Khóa luận tốt nghiệp Khóa mã (Cipher Key): mô tả tương tự mảng hình chữ nhật với dòng số lượng cột độ dài khóa chia cho 32, ký hiệu Nk Do độ dài khối độc lập với độ dài khóa Nb Nk khác Dưới minh họa mảng trạng thái (với Nb=6) mảng khóa mã (với Nk=4) a00 a01 a02 a03 a04 a05 k00 k01 k02 k03 a10 a11 a12 a13 a14 a15 k10 k11 k12 k13 a20 a21 a22 a23 a24 a25 k20 k21 k22 k23 a30 a31 a32 a33 a34 a35 k30 k31 k32 k33 Hình 1: Ví dụ mảng trạng thái (với Nb=6) mảng khóa mã (với Nk=4) Trong số trường hợp người ta biểu diễn khối dạng mảng chiều, phần tử mảng byte mà từ Để thuận tiện cho việc đánh số, byte mảng chiều đánh liên tiếp từ đến (  Nb-1) mảng trạng thái, từ đến (  Nk-1) mảng khóa mã Đầu vào (input) đầu (output) “cửa giao tiếp” thuật toán mảng chiều tương ứng với khối, với byte đánh thứ tự từ đến (4  Nb-1) Các khối có độ dài 16,24 hay 32 byte (tuỳ theo việc lấy độ dài khối 128,192 hay 256 bit), số cho phần tử đánh tương ứng, dải 15,0 23 hay 31 Khoá mã xem xét mảng chiều với phần tử byte đánh số từ đến (4  Nk-1), có độ dài 16,24 Đỗ Ngọc Tấn K32 CN Toán 32 Khóa luận tốt nghiệp hay 32 byte, phần tử mảng đánh số tương ứng, dải 15,0 23 hay 31 Từng khối liệu đầu vào xếp thành mảng hình chữ nhật (hình vẽ 1) theo thứ tự xếp đầy cột (từ xuống) từ trái qua phải, nghĩa ánh xạ vào vị trí: a0,0, a1,0,a2,0,a3,0,a0,1,a1,1,a2,1,a3,1, k0,0, k1,0,k2,0,k3,0,k0,1,k1,1,k 2,1,k3,1, (tuỳ thuộc vào văn hay khoá mã) Và sau trình mã hóa khối liệu đầu lấy từ mảng theo thể thức tương ứng Như vậy, byte có số mảng chiều n số mảng chữ nhật (2 chiều) (i, j ) số thoả mãn quan hệ sau đây: i  n mod ; n  i  j ; j  n / 4 Rõ ràng, số i số byte từ (vectơ 4-byte), j số từ lòng khối Số lượng vòng thuật toán Rijndael, ký hiệu Nr, xác định khối tương quan khăng khít với độ dài khối độ dài khoá, tức với giá trị Nb Nk theo bảng tương quan sau đây: Nr Nb=4 Nb=6 Nb=8 Nk=4 10 12 14 Nk=6 12 12 14 Nk=8 14 14 14 Hình 2: Tƣơng quan số lƣợng vòng với độ dài khối độ dài khoá Đỗ Ngọc Tấn K32 CN Toán 33 Khóa luận tốt nghiệp Ta thu gọn bảng công thức Nr=  maxNk, Nb, số lượng vòng hàm theo độ dài khối độ dài khoá 2.2.3.3.2 Các phép biến đổi vòng Trước hết ta đưa phép biến đổi sau đó, sở phép biến đổi , ta trình bày thuật toán biến đổi vòng  Phép byte (Bytesub transformation) Đây phép phi tuyến thực cách độc lập byte trạng thái Hộp thay (hay gọi S-box) khả nghịch thiết lập sở tích phép toán sau:  Phép lấy byte ngược thay byte nghịch đảo (theo phép nhân trường byte GF (28 ) );  Phép biến đổi affine, theo byte ' x '  " x0 x1 x2 x3 x4 x5 x6 x7 " (kết có sau phép lấy byte ngược nêu trên), chuyển thành byte ' y '  " y1 y2 y3 y4 y5 y6 y7 " xác định theo công thức sau:  y0  1 y     1  y2       y3   1  y  1  4   y5  0  y  0  6   y7  0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1   x0  1      x1  1       x  0         x3  0     x4  0         x5  1    x6  1         x7  0  Như vậy, phép byte biến byte , j (trong mảng trạng thái chữ nhật) thành byte bi , j (trong mảng trạng thái mới, hình chữ nhật) cách độc lập với Sơ đồ thực sau: Đỗ Ngọc Tấn K32 CN Toán 34 Khóa luận tốt nghiệp a00 a01 a02 a03 a04 a05 b00 b01 b02 b03 b04 b05 a10 a11 a12 a13 a14 a15 b10 b11 b12 b13 b14 b15 S-box a20 a21 a22 a23 a24 a25 b20 b21 b22 b23 b24 b25 a30 a31 a32 a33 a34 a35 b30 b31 b32 b33 b34 b35 Do phép biến đổi affine với ma trận khả nghịch, phép thay byte khả nghịch (phép toán ngược tích phép biến đổi affine với ma trận ngược phép lấy byte nghịch đảo theo phép nhân trường byte GF (28 ) ) Phép byte viết thành hàm lệnh với tên sau đây: Bytesub (State)  Phép dịch hàng (ShiftRow transformation) Trong phép biến đổi này, hàng mảng trạng thái dịch xoay vòng sang phía trái, số lượng vị trí dịch chuyển hàng không dịch chuyển giống Hàng (trên mảng) đứng yên không dịch chuyển Các hàng thứ 1, thứ thứ dịch vòng sang phía trái theo số lượng byte tương ứng C1,C2,C3 xác định mối tương quan với độ dài khối theo bảng sau đây: Nb C1 C2 C3 Phép dịch hàng thực hàm ShiftRow (State) Rõ ràng hàm khả nghịch nghịch đảo phép biến đổi (tác động lên mảng trạng thái) có chất giống nó, ngược hướng dịch chuyển Đỗ Ngọc Tấn K32 CN Toán 35 Khóa luận tốt nghiệp  Phép trộn cột (MixColumn transformatinon) Ta xem cột mảng trạng thái từ, phần tử vành đa thức mà ta xét phần Như ta đưa phép biến đổi cột thông qua phép nhân đa thức biểu diễn cột với đa thức cố định sau: c( x)  '03' x3  '01' x2  '01' x  '02' Ta biết phép nhân phép biến đổi vectơ cột phép nhân với ma trận cố định, có hàng sinh từ vectơ hệ số đa thức c ( x ) sau phép xoay vòng sang trái cụ thể 02  01 c  01   03 03 02 01 01 01 03 02 01 01 01  03  02  Xét chất phép nhân vectơ (có hướng) cột mảng trạng thái với cột hệ số đa thức c ( x ) Cho nên phép biến đổi gọi phép trộn cột thực lệnh có tên MixColumn (State) Tác động cột mảng trạng thái minh họa hình vẽ sau: a00 a01 a02 a03 a04 a05 a10 a11 a12 a13 a14 a15 b00 b01 b02 b03 b04 b05 C ( x) b10 b11 b12 b13 b14 b15 a20 a21 a22 a23 a24 a25 b20 b21 b22 b23 b24 b25 a30 a31 a32 a33 a34 a35 b30 b31 b32 b33 b34 b35 Ta biết phép nhân vành từ phép nhân đa thức theo modulo x  1, đa thức c ( x ) nguyên tố với đa thức x  nên phép nhân với c ( x ) (cũng tức phép trộn cột) toán tử khả nghịch Đỗ Ngọc Tấn K32 CN Toán 36 Khóa luận tốt nghiệp Rõ ràng, nghịch đảo phép trộn cột phép biến đổi tương tự nó, phép nhân với đa thức cố định d (x ) Đa thức phần tử nghịch đảo đa thức c (x ) theo phép nhân đa thức modulo x  (phần tử nghịch đảo tồn tính nguyên tố c (x ) x  1) Có thể tính d ( x) '0 B' x '0 D' x '09' x '0 E '  Cộng với khoá vòng (Round Key addition) Trong phép biến đổi mảng trạng thái cộng với khoá vòng phép loại bit Khoá vòng sinh từ khoá mã theo quy trình riêng Mặc dù khoá mã có độ dài khác với độ dài khối, quy trình sinh khoá vòng đảm bảo cho độ dài khoá vòng phù hợp với độ dài khối, phép loại bit thực Phép cộng khoá vòng hàm biến thực lệnh có tên AddRoundKey (state, RoundKey) 2.2.3.3.3 Thuật toán biến đổi vòng Các phép biến đổi vòng thông thường môt tả sau: Round ( State, RoundKey )  Bytesub ( State); shiftRow ( State); Mixcolumn ( State); AddRoundKey ( State, RoundKey );  Riêng vòng kết thúc (Final Round) ta không sử dụng phép trộn cột, mô tả sau đây: Đỗ Ngọc Tấn K32 CN Toán 37 Khóa luận tốt nghiệp FinalRound ( State, RoundKey)  Bytesub ( State); ShifRow ( State); AddRound ( State, RoundKey);  2.2.3.3.4 Quy trình sinh khoá Đây quy trình xuất chìa khoá cho vòng từ chìa khoá mã ban đầu Gồm công đoạn: Mở rộng chìa khoá chọn chìa khoá cho vòng  Mở rộng chìa khoá (Expanded Key) Chìa khoá mở rộng mảng tuyến tính từ, Nk từ chìa khoá mã, từ xác định truy hồi thay đổi theo từ phía trước Quy tắc truy hồi thay đổi theo độ dài chìa khoá mã, xác phụ thuộc vào việc giá trị Nk lớn hay bé Trước vào trình bày quy trình mở rộng khoá cụ thể, ta đưa số hàm bổ trợ sau : + SuByte(W) hàm byte, biến từ thành từ cách áp dụng hộp thay (S-box) lên byte từ + RotByte(W) hàm xoay byte, biến từ thành từ mới, cách cho byte từ xoay vòng sang trái vị trí, tức biến (a, b, c, d ) thành (b, c, d , a) Theo ngôn ngữ vành từ hàm phép nhân với x + Rconi  vòng cho dạng từ, xác định theo công thức Rconi  ( RCi, '00' , '00' , '00' ) RCi  byte xác định theo quy tắc truy hồi sau: RC1 '01' Đỗ Ngọc Tấn K32 CN Toán 38 Khóa luận tốt nghiệp RCi  '02' RCi  1 , với i từ trở lên, Trong phép nhân byte () định nghĩa trường byte Lưu ý '02' phần tử ứng với đa thức x , thực tế ta có RCi   x i 1  Quy trình mở rộng chìa khoá cho trường hợp Nk  Trong trường hợp này, Nk từ khoá mở rộng lấy khoá mã Các từ W i  , với i>Nk xác định sau: Khi i bội NK Wi  Wi - Nk   Wi - 1 ,  ký hiệu phép XOR (phép loại bit ) Khi i bội Nk Wi  Wi - NK  SubByte( RconByte(Wi - 1))  Rconi / Nk   Quy trình mở rộng chìa khoá cho trường hợp Nk>6 So với quy trình trên, có thay đổi nhỏ xét thêm trường hợp (i  4) bội Nk Trong trường hợp lấy Wi  Wi - NK  SubByte(Wi - 1) Nhận xét : Cả quy trình cho phép sinh dải khoá mở rộng gồm từ W i, i  1,2,3,  nguyên tắc kéo dài vô Quy trình mở rộng khoá gọi hàm ; KeyExpansion(CipherKey,Expandedkey),  Chọn chìa khoá cho vòng (Round Key Selection) Chìa khoá cho vòng chọn cho độ dài phải phù hợp với độ dài mảng trạng thái (tức độ dài khối) Nếu tính theo số lượng từ độ dài Nb Cho nên cách lấy khoá tự nhiên, cho vòng thứ i chọn từ dải từ W Nb * i  đến W  Nb * (i  1) Đỗ Ngọc Tấn K32 CN Toán 39 Khóa luận tốt nghiệp 2.2.3.3.5 Thuật toán lập mã Thuật toán mã hóa Rijndael bao gồm :  Khởi tạo việc cộng với khóa vòng;  Thực (Nr-1) vòng biến đổi thông thường;  Thực vòng kết thúc ; Trong Nr xác định mối tương quan với độ dài khối độ dài khóa hình Với hàm KeyExpansion (), AddRoundKey (), Round (), finalRound () đưa phần trên, ta mô tả thuận toán Rijndael sau: Rijndael ( State, CipherKey )  KeyExpansion (CipherKey, ExpandedKey ); AddRoundKey ( State, ExpandedKey ); For (i  1; i  Nr; i  ) Round ( State, ExpandedKey  Nb * i ); Finalround ( State, EXpandedKey  Nb * Nr );  Nếu trình mở rộng chìa khóa thực trước định rõ thông qua biến ExpandedKey, thuật toán Rijndael mô tả gọn sau : Rijndael ( State, CipherKey )  AddRoundKey ( State, ExpandedKey ); For (i  1; i  Nr; i  ) Round ( State, ExpandedKey  Nb * i ); Finalround ( State, EXpandedKey  Nb * Nr );  Đỗ Ngọc Tấn K32 CN Toán 40 Khóa luận tốt nghiệp 2.2.3.3.6 Thuật toán giải mã Ta biết tất phép biến đổi sử dụng trình lập mã khả nghịch, nên vấn đề giải mã không gặp khó khăn nguyên tắc Thêm nữa, phép biến đổi nghịch đảo có chất tương tự phép biến đổi gốc (chỉ khác tham số), tốc độ lập mã giải mã Thông thường, nghịch đảo vòng biến đổi dãy phép biến đổi ngược phép biến đổi vòng, theo thứ tự ngược với thứ tự thực phép lập mã Theo đó, trình nghịch đảo, phép biến đổi phi tuyến Bytesub phải thực sau cùng, phép dịch hàng phải thực sau phép trộn cột Như vậy, triển khai thuật toán theo hình thức “bảng tra” (table-lookup) phép giải mã mô hình bảng tra giống phép lập mã Đây điều mà người sáng lập Rijndael tạo cấu trúc khéo léo giống trình lập mã, thân phép biến đổi thay nghịch đảo nó, với thay đổi phù hợp trình sinh khóa Đây điều làm sang tỏ phần Nghịch đảo phương án Rijndael với vòng Đây phương án rút gọn, gồm có vòng: vòng thông thường vòng kết thúc Nếu ký hiệu InvA nghịch đảo phép biến đổi A nghịch đảo vòng thông thường mô tả sau: Đỗ Ngọc Tấn K32 CN Toán 41 Khóa luận tốt nghiệp InvRound  State, RoundKey   AddRoundKey  State, RoundKey  ; InvMixColumn  State  ; InvShiftRow  state  ; InvBytesub  State  ;  Và nghịch đảo vòng kết thúc là: InvRound  State, RoundKey   AddRoundKey  State, RoundKey  ; InvShiftRow  State  ; InvBytesub  State  ;  Nếu hợp lại ta có nghịch đảo phương án Rijndael vòng AddRoundKey  State, ExpandedKey  * Nb  ; InvShiftRow  State  ; InvBytesub  State  ; AddRoundKey  State, ExpandedKey  Nb  ; InvMixColumn  State  ; InvShiftRow  State  ; InvBytesub  State  ; AddRoundKey  State, ExpandedKey  ; Chú ý phép byte ( ByteSub ) thực biến đổi byte cách độc lập (không phụ thuộc vào vị trí byte), phép dịch hàng (ShiftRow) không làm thay đổi giá trị byte Cho nên phép biến đổi Đỗ Ngọc Tấn K32 CN Toán 42 Khóa luận tốt nghiệp hoán vị cho mà không làm ảnh hưởng đến trình biến đổi chung Tiếp theo, lưu ý K , S tương ứng từ khóa trạng thái, C ma trận tương ứng với phép trộn cột,  ký hiệu phép loại bit ,  ký hiệu phép nhân từ với ma trận (theo phép trộn cột), ta dễ dàng thấy  K  S   C   K  C    S  C    S  C   Kˆ , Kˆ  K  C Đẳng thức cho thấy thay việc cộng với khóa trộn với cột C việc trộn với cột C cộng với khóa Kˆ , khóa Kˆ biến đổi khóa K sau phép trộn cột Vì phép trộn cột ngược ( InvMixColumn) lại phép trộn cột, coi C phép trộn cột ngược đặt InvRoundKey  InvMixColumn ( RoundKey ), từ lập luận ta suy thay AddRoundKey  State, RoundKey  ; InvMixColumn  State  ; bằng: InvMixColumn  State  ; AddRoundKey  State, InvRoundKey  ; Suy nghịch đảo phương án Rijndael vòng tương đương với dãy phép biến đổi sau: Đỗ Ngọc Tấn K32 CN Toán 43 Khóa luận tốt nghiệp AddRoundKey  State, ExpandedKey  * Nb  ; InvBytesub  State  ; InvShiftRow  State  ; InvMixColumn  State  ; AddRoundKey  State, I _ ExpandedKey  Nb  ; InvBytesub  State  ; InvShiftRow  State  ; AddRoundKey  State, ExpandedKey  ; Trong I _ ExpandedKey khóa giả mã, tính cách lấy InveMixColumn chìa khóa cho vòng quy trình lập mã Như vậy, mặt cấu trúc, trình giải mã hoàn toàn tương tự trình lập mã Khác biệt chỗ phép toán thay ngịch đảo Đỗ Ngọc Tấn K32 CN Toán 44 Khóa luận tốt nghiệp KẾT LUẬN Qua đề tài “Cơ sở toán học mã đối xứng”, tìm hiểu số hệ mã đối xứng điển DES, AES Thể qua: - Mô tả phép biến đổi, quy trình sinh khóa, mô tả ánh xạ, quy trình hoạt động hệ mã DES rút gọn đầy đủ - Các công cụ chuẩn bị (Trường byte, Đa thức với hệ số byte), thuật toán biến đổi, quy trình sinh khóa, thuật toán lập mã thuật toán giải mã hệ mã AES Và đặc biệt thấy rõ vai trò sở toán học xây dựng hệ mật mã Đề xuất: Trong phạm vi nghiên cứu cho sinh viên, tiếp tục triển khai lập trình cho hệ mã với ngôn ngữ lập trình bậc cao để ứng dụng thuật toán thực tế bảo mật thông tin sinh viên, bảo mật đề thi … khoảng thời gian không cho phép Do thời gian nghiên cứu hạn chế nên chưa nghiên cứu vấn đề Sau đề tài tiếp tục thực vấn đề đặt Đỗ Ngọc Tấn K32 CN Toán 45 Khóa luận tốt nghiệp TÀI LIỆU THAM KHẢO 1 Phạm Huy Điển, Hà Huy Khoái, Mã hóa thông tin : Cở sở Toán học ứng dụng, Viện Toán học Viện Khoa học Công nghệ Việt Nam  2 Hà Huy Khoái, Phạm Huy Điển, Số học Thuật toán : Cơ sở lý thuyết Tính toán thực hành, Nhà xuất ĐHQG Hà Nội, 2002 3 M MATSUI, Linear Cryptanalysis Method for DES Cipher, Advances in Cryptology – EUROCRYPT ‟93 Proceedings, Springer-Verlag, 1994, pp.383397  4 B SCHINELER, Applied Cryptography, New York : John Wiley $ Sons, Inc, 1996 Đỗ Ngọc Tấn K32 CN Toán [...]... là mã hóa chúng bằng một hệ mã trước khi truyền tải đi Dĩ nhiên, việc mã hóa thông tin trước khi truyền đi và và việc giải mã các thông tin nhận được sẽ tạo nên một số khó khăn: giảm tốc độ đường truyền tin, tăng chi phí… Một hệ mã lý tưởng là một hệ mã đảm bảo được các yêu cầu thời gian mã hóa và giải mã nhanh, độ bảo mật cao 2.2 Một số hệ mã đối xứng 2.2.1 Khái niệm chung  Mã đối xứng: là hệ mã. .. dựng và sử dụng các hệ mã có thể gọi là mật mã học (Cryptography) - Phân tích mã (Cryptanalysis), hay thám mã, là nghệ thuật phá các hệ mã (nhìn xuyên qua các phương pháp ngụy trang) - Công nghệ mã (Crytology) là viêc nghiên cứu tổng hợp cả Cryptography và Cryptanalysis - Lập mã (Encrypt) là việc biến văn bản nguồn thành văn bản mã; - Giải mã (Decrypt) là việc đưa văn bản đã mã hóa trở về dạng văn... mà trong đó việc lập mã và giải mã cùng sử dụng chung một chìa khóa mã  Một đặc điểm chung của các hệ mã đối xứng là quá trình biến đổi được thực hiện trên các khối dữ liệu có độ dài đủ lớn và được thông qua nhiều vòng lặp tương tự nhau 2.2.2 Hệ mã dữ liệu tiêu chuẩn – DES 2.2.2.1 Phƣơng án thu gọn của DES Trong mô hình này ta định ra độ dài của khối dữ liệu là 8 bit, độ dài của chìa khóa là 10 bit... sách về bản quyền của viện tiêu chuẩn quốc gia hoa kì + Các thuật toán thỏa mãn các điều kiện trên sẽ được xét trên cơ sở các phương diện sau đây: - Tính bảo mật; - Tính hiệu quả về thuật toán; - Nhu cầu đòi hỏi về bộ nhớ; - Tính đơn giản; - Tính mềm dẻo, linh động; - Các yêu cầu về phương diện bản quyền * Thuật toán Rijndael mang đậm màu sắc Toán học Trong thuật toán này, ngoài các tính toán đồng dư và... biến đổi cơ bản và sau đó, trên cơ sở các phép biến đổi này , ta trình bày thuật toán biến đổi của mỗi vòng  Phép thế byte (Bytesub transformation) Đây là phép phi tuyến được thực hiện một cách độc lập trên từng byte của trạng thái Hộp thay thế (hay còn gọi là S-box) là khả nghịch và được thiết lập trên cơ sở tích của 2 phép toán sau:  Phép lấy byte ngược thay thế mỗi byte bằng nghịch đảo của nó (theo... Chìa khóa mã (Cipher key) là bí quyết lập mã và giải mã 2.1.2 Vì sao cần mã hóa? Đó là một câu hỏi dễ trả lời, vì trong hoạt động của con người, nhu cầu bảo mật khi trao đổi thông tin giữa các thành viên trong nhóm nào đó với nhau có thể là hết sức cần thiết Tuy nhiên, để thực sự thấy rõ yêu cầu cấp bách của mã hóa trong thời đại ngày nay, cần nhấn mạnh rằng với các phương Đỗ Ngọc Tấn K32 CN Toán 17... vậy chú ý rằng trong các S  boxes của DES thực sự thì mỗi hàng là một vectơ 16 thành phần, nhận giá trị nguyên từ 0 đến 15 và không có 2 thành phần nào giống nhau 2.2.3.Tiêu chuẩn mã nâng cao và thuật toán Rijndael (AES – Advanced Encryption Stanraed) 2.2.3.1 Khái quát * Tiêu chí của AES + AES được xác lập công khai + AES là hệ mã khối đối xứng Đỗ Ngọc Tấn K32 CN Toán 24 Khóa luận tốt nghiệp + AES... vectơ 2.2.3.3 Thuật toán 2.2.3.3.1 Trạng thái, khóa mã và số lƣợng vòng Trạng thái (State): Là kết quả mã hóa trung gian (chưa phải là văn bản mã) , được mô tả bằng một mảng hình chữ nhật, có 4 dòng và số lượng cột thay đổi theo độ dài khối sử dụng Ta ký hiệu số lượng cột của mảng trạng thái là Nb, và như vậy 32Nb chính là độ dài khối Đỗ Ngọc Tấn K32 CN Toán 31 Khóa luận tốt nghiệp Khóa mã (Cipher Key):... thiết lập những phép toán khá đặc biệt trong trường hữu hạn và trong vành đa thức trên trường hữu hạn 2.2.3.2 Công cụ chuẩn bị Ta xây dựng 2 loại phép toán mới: loại phép toán trên tập các byte (8 bit) và loại phép toán trên các vectơ gồm 4 byte, hay còn gọi là từ Các phép toán ở mức byte: Trong thuật toán Rijndael sẽ được Định nghĩa thông qua phép biểu diễn mỗi byte như một phần tử của trường hữu hạn... động của DES thu gọn Một chu trình tác động lên một khối dữ liệu (8 bit ) của DES thu gọn là tổ hợp của các phép biến đổi sau IP 1 T2 T1  IP , Đỗ Ngọc Tấn K32 CN Toán 22 Khóa luận tốt nghiệp Trong đó IP là phép hoán vị ban đầu được cho bởi vectơ P8  (1,5,2,0,3,7,4,6) , các toán tử tác động lần lượt theo thứ tự từ phải qua trái, dễ dàng tính ra IP1  (3,0,2,4,6,1,7,5) Từ chu trình lập mã như ... toán học lý thuyết mật mã nói chung thể số hệ mã đối xứng DES, AES lấy tên đề tài Cơ sở toán học mã đối xứng Mục tiêu đề tài Tìm hiểu sơ qua công nghệ mã hóa thông tin cụ thể số hệ mã đối xứng. .. mật mã Trong công nghệ mã hóa thông tin phương diện nghiên cứu ứng dụng, Mã đối xứng có vai trò quan trọng Mã đối xứng hệ mã mà việc lập mã giải mã sử dụng chung chìa khóa mã Các loại mã đối xứng. .. *Đối tƣợng, phạm vi phƣơng pháp nghiên cứu + Đối tượng: Một số hệ mã đối xứng Đỗ Ngọc Tấn K32 CN Toán Khóa luận tốt nghiệp + Phạm vi: Tìm hiểu hệ mã đối xứng trọng đến sở toán học hệ mã đối xứng

Ngày đăng: 31/10/2015, 08:05

Từ khóa liên quan

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

Tài liệu liên quan