Phờp biến đổi MixColumns

Một phần của tài liệu nghiên cứu kỹ thuật dấu tín dùng data hiding kết hợp với hệ mã aes (Trang 46 - 77)

Trong thao tõc biến đổi MixColumns, mỗi cột của trạng thõi hiện hỏnh đƣợc

biểu diễn dƣới dạng đa thức s(x) cụ cõc hệ số trởn GF(28). Thực hiện phờp nhón S’(x) = a(x) s(x) Với a(x) = {03}x3 + {01}x2 + {01}x + {02}

Thao tõc nỏy đƣợc thể hiện ở dạng ma trận nhƣ sau:

Trang 46

Bảng 5. Thao tõc MixColumns tõc động lởn mỗi cột của trạng thõi

Trong đoạn mọ chƣơng trớnh dƣới đóy, hỏm FFmul(x, y) thực hiện phờp nhón (trởn trƣờng GF(28)) hai phần tử x vỏ y với nhau

Trang 47 2.4.1.7 Thao tõc AddRoundKey

Phƣơng phõp Rijndael bao gồm nhiều chu kỳ mọ hụa liởn tiếp nhau, mỗi chu kỳ

cụ một mọ khụa riởng (Round Key) cụ cỳng kợch thƣớc với khối dữ liệu đang đƣợc xử lý vỏ đƣợc phõt sinh từ mọ khụa chợnh (Cipher Key) cho trƣớc ban đầu. Mọ khụa của chu kỳ cũng đƣợc biểu diễn bằng một ma trận gồm 4 dúng vỏ Nb cột. Mỗi cột của trạng thõi hiện hỏnh đƣợc XOR với cột tƣơng ứng của mọ khụa của chu kỳ đang xờt:

[s'0,c , s'1,c , s'2,c , s'3,c ] = [s0,c , s1,c , s2,c , s3,c ] ⊕ [wround Nbc ] ,

với 0 ≤ c < Nb.

Thao tõc biến đổi ngƣợc của AddRoundKey cũng chợnh lỏ thao tõc AddRoundKey.

Trong đoạn chƣơng trớnh dƣới đóy, hỏm xbyte(r, w) thực hiện việc lấy byte thứ r

Trang 48

Bảng 6. Thao tõc AddRoundKey tõc động lởn mỗi cột của trạng thõi

Trang 49 Cõc hằng số của mỗi chu kỳ hoỏn toỏn độc lập với giõ trị Nk vỏ đƣợc xõc định bằng Rcon[i] = (RC[i], {00}, {00}, {00}) với RC[i] ∈ GF(28) vỏ thỏa:

RC[1]=1 ({01})

RC[i] =x ({02})*(RC[i-1]) = x(i–1) 2.4.1.8 Vợ dụ về quỏ trớnh mọ hụa:

Trang 50

Bảng 7. Bảng S-BOX cụ định dang mọ hexa cho quõ trớnh mọ hụa

Cho tợn hiệu đầu vỏo vỏ mọ khụa Cipher Key lỏ 16 Byte cụ Nb = 4 vỏ Nk = 6

Tợn hiệu đầu vỏo đƣợc sếp vỏo bảng nhƣ sau

1. Thực hiện thao tõc AddRoundKey

Vúng mọ khụa thứ nhất chỉ thực hiện phờp biến đổi thao tõc AddRoundKey tợn hiệu đầu vỏo cộng với mọ khụa, theo cừng thức nhƣ sau.

[s'0,c , s'1,c , s'2,c , s'3,c ] = [s0,c , s1,c , s2,c , s3,c ] ⊕ [wround Nbc ]

Trang 51

Vợ dụ : 32 2b = 19

2. Thực hiện thao tõc SubByte

Thao tõc biến đổi SubBytes lỏ phờp thay thế cõc byte phi tuyến vỏ tõc động một cõch độc lập lởn từng byte trong trạng thõi hiện hỏnh.

Qua phờp biến đổi SubByte

Vợ dụ: Từ tợn hiệu 19 dựa vỏ hừp S-BOX dúng 1 cột 9 lỏ tợn hiệu d4

3. Thực hiện thao tõc ShiftRows.

Mỗi dúng của trạng thõi hiện hỏnh đƣợc dịch chuyển xoay vúng đi một số vị trợ. Ứng với vợ dụ nỏy thớ dựa vỏo bảng giõ trị ShiftRows thớ ứng với dúng một thớ khừng dịch, dúng 2 thi dich đi 1, dúng 3 thớ dịch đi 2, dúng 4 thớ dịch đi 3. Ta đƣợc nhƣ sau.

Trang 52 Qua phờp biến đổi ShiftRows

4. Thực hiện thao tõc MixColumns

Trong thao tõc biến đổi MixColumns, mỗi cột của trạng thõi hiện hỏnh đƣợc biểu diễn dƣới dạng đa thức s(x) cụ cõc hệ số trởn GF(28). Thực hiện phờp nhón

S’(x) = a(x) s(x) Với

a(x) = {03}x3 + {01}x2 + {01}x + {02}

Qua phờp biến đổi MixColums.

= Hay: = ({02} )({03} )  ({01} )  ({01} ) = ({01} )({02} )  ({03} )  ({01} ) = ({01} )({01} )  ({02} )  ({03} ) = ({03} )({01} )  ({01} )  ({02} )

Trang 53 Thử tợnh toõn ở cột đầu tiởn:

= ({02}d4)({03}bf)  ({01}5d)  ({01}30) = ? ạp dụng phờp tợnh nhón xtime():

{02}d4 = ?

Ta cụ: d4 (H) = 11010100(B) Dịch trõi: 10101000

XOR với giõ trị 1b(H): 10110011(B) Vậy {02}}d4 = b3(H) = 10110011(B) Với cõch tợnh tƣơng tự ta đƣợc:

{03}bf = da(H) = 11011010(B) {01}5d = 5d(H) = 101.1101(B) {01}30 = 30(H) = 11.0000(B) XOR 4 kết quả nỏy ta đƣợc:

= 04(H) Tƣơng tự: = ({01} )({02} )  ({03} )  ({01} ) = 66 = ({01} )({01} )  ({02} )  ({03} ) = 81 = ({03} )({01} )  ({01} )  ({02} ) = e5

Trang 54 Chỷng ta thực hiện tƣơng tự nhƣ trởn 9 vúng biến đổi riởng vúng cuối vúng số 10 thớ chỷng ta khừng thực hiện thao tõc MixColumns.

Trang 56

2.4.2. Quõ trớnh tạo khụa

2.4.2.1 Chiều dỏi yởu cầu của khụa

Thuật toõn AES sẽ hỗ trợ ợt nhất một trong ba chiều dỏi khụa sau đóy: 128, 192 vỏ 256 bit (tƣơng ứng Nk = 4, 6, 8). Việc triển khai cụ thể sử dụng tỳy chọn hai hoặc ba loại chiều dỏi khụa, cõi mỏ cụ thể thỷc đẩy khả năng tƣơng tõc của việc triển khai thuật toõn.

2.4.2.2 Sự hạn chế của khụa

Khừng cụ cõc khụa yếu hoặc bõn yếu đƣợc xõc định cho thuật toõn AES, vỏ khừng cụ sự hạn chế nỏo về sự lựa chọn khụa.

2.4.2.3 Cõc tham số của khụa: chiều dỏi khụa, kợch thƣớc block vỏ số vúng

Tiởu chuẩn nỏy xõc định một cõch rử rỏng cõc giõ trị cho phờp đối với chiều dỏi khụa (Nk từ), kợch thƣớc khối (Nb) vỏ số vúng (Nr) – xem hớnh minh họa. Tuy nhiởn, việc xõc nhận một lần nữa của tiởu chuẩn nỏy trong tƣơng lai cụ thể bao gồm cõc thay

Trang 57 đổi hoặc sự bổ sung giõ trị cho phờp đối với những tham số. Do đụ, thực hiện cụ thể chọn để thiết kế việc triển khai AES với sự linh hoạt trong tƣơng lai.

Bảng 8 Minh họa cõc thừng số của khụa

2.4.2.4 Gợi ý việc thực hiện dựa trởn cõc nền tảng khõc nhau

Sự biến đổi việc thực hiện lỏ cụ thể, trong nhiều trƣờng hợp, việc cung cấp hiệu suất hay cõc lợi thế khõc. Với cỳng một khụa ngử vỏo (dạng thừ hoặc bản mọ), bất kỳ thực hiện nỏo sao cho ngử ra lỏ nhƣ nhau (bản mọ hoặc thừ) chẳng hạn nhƣ thuật toõn trong tiởu chuẩn nỏy lỏ việc thực hiện cụ thể chấp nhận đƣợc của AES.

2.4.2.5 Mảng của cõc byte

a) Mảng của cõc byte

Cho cõc từ khụa a0a1a2….a15 (giả sử sử dụng khụa 128 bit, với ai lỏ một từ khụa cụ 8 bit đƣợc định dạng dƣới dạng số hexa)

Cõc byte vỏ bit đƣợc chia ra từ chuỗi 128 bit ngử vỏo input0 input1 input2 ….. input126 input127

với a0 = {input0, input1, …..,input7}; a1 = {input8, input9, …..,input15}; .

Trang 58 .

.

a15 = {input120, input121, …..,input127}.

Cõc bit trong mỗi byte đƣợc sắp xếp vỏ đõnh số nhƣ sau:

Bảng 9 Minh họa việc sắp xếp cõc bit trong mỗi byte

b) Trạng thõi

Thuật toõn AES thực hiện dựa trởn một mảng hai chiều của cõc byte gọi lỏ trạng thõi (State). State bao gồm bốn hỏng của cõc byte, mỗi hỏng chứa Nb byte, với Nb lỏ chiều dỏi block (Nb = số bit trong khụa mọ hụa/32 hay Nb lỏ số hỏng trong mảng State). Cõc phần tử trong mảng State đƣợc ký hiệu lỏ s, mỗi byte cụ hai chỉ số lỏ số hỏng r (0 <= r < 4) vỏ số cột c (0 <= c < Nb), khi đụ mỗi symbol trong mảng State đƣợc ký hiệu nhƣ sau: sr,c hoặc s[r,c]. Vợ dụ: Đối với chiều dỏi khụa lỏ 128 thớ 0<=r<4, 0<=c<4.

Trang 59 Khi đụ: s[r,c] = in[r + 4c] với 0<=r<4, 0<=c<4

out[r + 4c] = s[r,c] với 0<=r<4, 0<=c<4

Bốn byte trong mỗi cột của mảng State cụ dạnh từ 32bit, do đụ hỏng thứ r cho biết chỉ số của cõc byte trong mỗi từ. Nhƣ vậy mảng state cụ thể đƣợc xem nhƣ lỏ mảng một chiều của cõc từ 32bit (ma trận cột) w0, w1, w2, w3, do đụ số cột c cho biết chỉ số của mảng nỏy. Từ hớnh ở trởn, ta cụ thể thấy đƣợc: w0 = s0,0 s1,0 s2,0 s3,0 w1 = s0,1 s1,1 s2,1 s3,1 w2 = s0,2 s1,2 s2,2 s3,2 w3 = s0,3 s1,3 s2,3 s3,3 Trong đụ:

+ Nk: Chiều dỏi khụa (lỏ số cột của mảng State ) + Nb: Kợch thƣớc của block

+ Nr: Số vúng (Khụa 128 bit Nr =10, khụa 192 bit Nr = 12, khụa 256 bit Nr = 14)

c) Mở rộng khụa:

Thuật toõn AES dỳng khụa mọ hụa K vỏ thực hiện việc mở rộng khụa K để tạo ra một tổ hợp khụa. Việc mở rộng khụa sẽ tạo ra tổng cộng Nb(Nr + 1) từ khụa. Thuật toõn dỳng Nb từ khụa khởi tạo đầu tiởn, vỏ mỗi vúng Nr cũng yởu cầu Nb từ khụa. Kết quả lỏ cơ chế tạo khụa tạo ra một mảng tuyến tợnh cõc từ khụa 4 byte, vỏ đƣợc kợ hiệu lỏ [wi], với i trong khoảng 0 <= i < Nb(Nr + 1).

Trang 60 Một số bƣớc trong quõ trớnh tạo khụa nhƣ sau:

+ RotWord(): Lấy một từ khụa dạng [a0, a1, a2, a3] ngử vỏo, thực hiện dịch vúng từ khụa nỏy để tạo ra từ khụa [a1, a2, a3, a0].

+ SubWord(): Lỏ hỏm thực hiện lấy từ khụa 4 byte ngử vỏo, sau đụ so với bảng S-box (bảng 6)để tạo ra một từ khụa 4 byte mới

+ Rcon[i]: chứa cõc giõ trị đƣợc cho dƣới dạng [xi-1, {00}, {00}, {00}], với x đƣợc kợ hiệu dƣới dạng {02}.

Trang 61 Vợ dụ minh họa thuật toõn mở rộng khụa (giả sử chiều dỏi khụa lỏ 128bit):

Giả sử khụa K lỏ: 2b7e151628aed2a6abf7158809cf4f3c  Nk=4, khi đụ ta cụ 4 từ khụa khởi tạo nhƣ sau: w0 = 2b7e1516

w1 = 28aed2a6 w2 = abf71588 w3 = 09cf4f3c

Trang 63 Nhƣ vậy quõ trớnh mở rộng khụa đọ tạo ra đƣợc tập hợp gồm 44 khụa nhƣ trởn (cõc từ khụa nằm trong cột cuối cỳng của bảng trởn). Tập hợp khụa nỏy sẽ tham gia vỏo quõ trớnh mọ hụa vỏ giải mọ dỳng kỹ thuật AES.

2.4.3 Giải mọ ASE 2.4.3.1 Giải mọ: Bao gồm cõc bƣớc: InvShiftRows InvSubBytes InvMixColumns

Trang 64 AddRoundkey

24.3.2 InvShiftrows

Bƣớc nỏy lỏ nghịch đảo của ShiftRows. Cõc byte trong 3 dúng cuối của bảng State đƣợc dịch vúng. Tại dúng đầu tiởn, r = 0, khừng dịch. 3 dúng ở giữa đƣợc dịch vúng Nb – shift(r,Nb) byte, giõ trị dịch shift(r,Nb) phụ thuộc vỏo số dúng.

Cụ thể, biến đổi InvShiftRows thực hiện nhƣ sau:

= 0< r < 4 vỏ 0 ≤ c < Nb

Bảng 11: Thể hiện bảng thay thế S-box đƣợc sử dụng trong phờp biến đổi

InvShiftrows

ở dạng thập lục phón. 2.4.3.3InvSubBytes

Bƣớc nỏy lỏ đảo ngƣợc của biến đổi SubBytes, trong đụ bảng S-box đảo đƣợc õp ụng cho từng byte trong bảng State. Bảng S-box bảng 6 nỏy thu đƣợc bằng cõch đảo ngƣợc biến đổi afin bằng cõch lấy đảo ngƣợc phờp nhón trong trƣờng GF(28

). 2.4.3.4InvMixColumns

Trang 65 Bƣớc nỏy lỏ đảo ngƣợc của biến đổi MixColumns. Hoạt động trởn cột theo cột, xem mỗi cột lỏ một cụm bốn đa thức. Cõc cột đƣợc xem lỏ một đa thức trởn trƣờng GF(28) vỏ đƣợc nhón modulo (x4 + 1) với một đa thức cố định a-1(x), cho bởi

a-1(x) = {0b}x3 + {0d}x2 + {09}x + {0e} Đƣợc viết lại dƣới dạng nhón ma trận

s’(x) = a-1(x)s(x)

= 0 ≤ c < Nb

Kết quả của phờp nhón nỏy, bốn byte trong cột đƣợc thay thế bởi: = ({0e} )({0b} )  ({0d} )  ({09} )

= ({09} )({0e} )  ({0b} )  ({0d} )

= ({0d} )({09} )  ({0e} )  ({0b} )

= ({0b} )({0d} )  ({09} )  ({0e} ) 3 Đảo ngƣợc biến đổi AddRoundKey

Bƣớc nỏy đơn giản chỉ lỏ phờp tợnh XOR kết quả thu đƣợc tại bƣớc 3 với khụa đƣợc tạo ra.

2.4.3.5Vợ dụ mọ hụa AES

Sử dụng khụa cụ chiều dỏi 128 bits, Nb = 4, Nk = 4.

Trang 66 Khụa = 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c

Trang 68 Để rử hơn, ta xờt phờp tợnh lần thứ nhất:

Sau khi Addroundkeys ở bƣớc trƣớc, tại bƣớc nỏy bảng State sẽ lỏ:

Bƣớc 1 – SubBytes

Từng giõ trị đƣợc biến đổi thỏnh giõ trị trong bảng S-box, kết quả sau khi kết thỷc bƣớc nỏy sẽ lỏ:

Trang 69

Bƣớc 2 - ShiftRows

Bƣớc 3 – MixColumn

Riởng ở bƣớc nỏy, phờp toõn đƣợc tợnh tƣơng đối phức tạp.

Để tợnh cõc giõ trị s’, ta nhón cõc giõ trị s với một đa thức cố định a(x).

a(x) = {03}x2+ {02}x2+ {01}x + {01} Viết dƣới dạng ma trận nhƣ sau:

=

Hay:

Trang 70 = ({01} )({02} )  ({03} )  ({01} )

= ({01} )({01} )  ({02} )  ({03} )

= ({03} )({01} )  ({01} )  ({02} ) Thử tợnh toõn ở cột đầu tiởn:

= ({02}d4)({03}bf)  ({01}5d)  ({01}30) = ? ạp dụng phờp tợnh nhón xtime():

{02}d4 = ?

Ta cụ: d4 (H) = 11010100(B) Dịch trõi: 10101000

XOR với giõ trị 1b(H): 10110011(B) Vậy {02}}d4 = b3(H) = 10110011(B) Với cõch tợnh tƣơng tự ta đƣợc:

{03}bf = da(H) = 11011010(B) {01}5d = 5d(H) = 101.1101(B) {01}30 = 30(H) = 11.0000(B) XOR 4 kết quả nỏy ta đƣợc:

= 04(H) Tƣơng tự:

Trang 71 = ({01} )({01} )  ({02} )  ({03} ) = 81

= ({03} )({01} )  ({01} )  ({02} ) = e5 Lần lƣợt tợnh toõn cõc cột cún lại ta đƣợc kết quả nhƣ sau:

Bƣớc 4 – AddRoundKeys

Bƣớc nỏy chỉ đơn giản lỏ XOR kết quả tại bƣớc 3 với khụa đọ tạo ra đƣợc:

Với chiều dỏi khụa lỏ 128 bits, ta sẽ tạo ra đƣợc 10 khụa, vớ vậy quõ trớnh thực hiện mọ hụa sẽ phải trải qua 10 giai đoạn tất cả.

Trang 72

Chƣơng III.ỨNG DỤNG DATA HIDING KẾP HỢP VỚI Mẳ HểA

3.1 Mọ hụa

Thuật toõn mọ hụa gồm hai giai đoạn: mọ hụa vỏ ẩn dữ liệu.

Gọi Yi = Ek(Xi) lỏ khối dữ liệu sau khi đƣợc mọ hụa, với Xi lỏ dữ liệu gốc ban đầu, Ek() lỏ hỏm mọ hụa với khụa K.

Khi đụ Ywi = DHk(Yi) lỏ khối dữ liệu sau khi đƣợc mọ hụa vỏ ẩn dữ liệu đƣợc truyền trởn mạng. Trong đụ DHk() lỏ hỏm ẩn dữ liệu với khụa K.

Sơ đồ khối của quõ trớnh nỏy nhƣ sau:

Hớnh 12 Sơ đồ mọ hụa 3.2 Giải mọ

Quõ trớnh giải mọ cũng trải qua hai giai đoạn lỏ rỷt trợch dữ liệu ẩn, sau khi rỷt trợch dữ liệu ẩn, ta cụ đƣợc thừng tin của dữ liệu ẩn nỏy. Sau đụ, dữ liệu ban đầu (dữ liệu đƣợc truyền trởn mạng) sẽ tiếp tục đƣợc giải mọ vỏ xụa dữ liệu ẩn. Khi đụ, dữ liệu gốc ban đầu đƣợc khừi phục.

Zi = DH-1k(Ywi) với Zi lỏ thừng tin ẩn vỏ Xi = E-1(Ywi)

Trang 73 Hớnh 13 Sơ đồ giải mọ

3.3 Vợ dụ minh họa

Hớnh 14 thể hiện sự thay đổi ảnh của quõ trớnh ẩn dử liệu dung mỏ hụa AES

Ta nhận thấy: ở hớnh a) lỏ ảnh gốc ban đầu, sau khi đƣợc mọ hụa AES hớnh a) sẽ trở thỏnh nhƣ hớnh b), sau đụ hớnh b) đƣợc chộn dữ liệu ẩn ta cụ hớnh c). Nhƣ vậy khi so sõnh giữa hớnh b) vỏ c) bằng mắt thƣờng ta khừng thể phón biệt hay nhận biết đƣợc đọ cụ dữ liệu đƣợc ẩn vỏo hớnh, nhƣng khi dỳng cừng cụ để rỷt trợch dữ liệu ẩn, ta cụ đƣợc nhƣ hớnh d). Cõc chấm trắng ở hớnh d) chợnh lỏ sự khõc biệt giữa hớnh b) vỏ hớnh c) hay đụ chợnh lỏ thừng tin mỏ ta đọ ẩn vỏo hớnh b).

Trang 74

Hớnh 15 thể hiện sự thay đổi ảnh a: quõ trớnh rỷt trợch dử liệu vỏ giải mọ.b Ảnh sau khi giải mọ vỏ xụa dữ liệu ẩn trởn ảnh

Hớnh a) lỏ ảnh sau khi đƣợc rỷt trợch dữ liệu ẩn vỏ giải mọ (lỷc nỏy ta biết đƣợc thừng tin dữ liệu ẩn), hớnh b) lỏ ảnh sau khi giải mọ vỏ xụa dữ liệu ẩn trởn ảnh. Khi đụ ta cụ đƣợc ảnh gốc ban đầu.

Trang 75

KẾT LUẬN

1. Đõnh giõ:

Sau một khoảng thời gian nỗ lực nghiởn cứu cỳng với sự hƣớng dẫn tận tớnh của cõ thầy cừ giõo trong khoa chỷng em đọ bản hoỏn thỏnh đƣợc cõc yởu cầu cầu đề tỏi. Đụ lỏ giấu đƣợc thừng tin vỏo trong một file ảnh tỉnhvỏ giấu thừng tin trong văn bản cụ ẩn chứa thừng tin trong đụ. Sử dụng kỹ thuật mọ hụa AES trong ẩn thừng tin Cõc thừng tin đƣợc giấu lỏ một đoạn thừng điệp, một tệp văn bản vỏ một file ảnh cũng cụ thể đƣợc giấu trong một file ảnh.

2. Phõt triển vỏ hạn chế của đề tỏi:

Chƣơng trớnh đọ lỏm đƣợc những cừng viẹc trởn vỏ hƣớng của chỷng em mong muốn đụ lỏ tất cả nhỷng ý tƣởng mỏ ban đầu chỷng em đặt ra vỏ cụ kế hoạch thực hiện nhƣng chƣa lỏm đƣợc chỷng em sẽ phõt triển trong đề tỏi tiểu luận, nhƣ giấu thừng tin trong một file audio hay một file video. Hy vọng chỷng em sẽ đƣợc cõc thầy, cừ chỉ bảo để phõt triển tốt đề tỏi trong lần tới. Chỷng em xin chón thỏnh cảm ơn!

Trang 76

TáI LIỆU THAM KHẢO

[1] . A Reversible Data Hiding Method for Encrypted Images_ung dung W. Puech, M. Chaumont and O. StraussLIRMM Laboratory, UMR CNRS 5506, University of Montpellier II161, rue Ada, 34392 MONTPELLIER CEDEX 05, FRANCE

[2]. ADVANCED ENCRYPTION STANDARD (AES) November 26, 2001 [3]. Techniques for Data Hiding-p by W. BenderD. Gruhl N. Morimoto A. Lu

Một phần của tài liệu nghiên cứu kỹ thuật dấu tín dùng data hiding kết hợp với hệ mã aes (Trang 46 - 77)

Tải bản đầy đủ (PDF)

(77 trang)