Các thuộc tính phần cứng trong xây dựng thiết kế mật mã khối

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế một số thuật toán mật mã hạng nhẹ luận văn ths toán học 604601 (Trang 27 - 31)

11 Bảng so sánh thời gian thực hiện của thuật toán PRESENT với AES và

1.4 Các thuộc tính phần cứng trong xây dựng thiết kế mật mã khối

1.4.1 Trạng thái lưu trữ bên trong

Chúng ta gọi trạng thái mật mã và trạng thái khoá là trạng thái bên trong của mật mã. Khi sử dụng một mật mã khối, trạng thái mật mã được khởi tạo bởi bản rõ (plaintex) hoặc bản mã (ciphertex) và được thay đổi theo hoạt động của khóa (và vì thế gọi là trạng thái khóa). Khi một mật mã dịng được sử dụng, trạng thái mật mã được khởi tạo bởi giá trị khởi tạo và khóa, sau đó sử dụng trạng thái mật mã khởi tạo để sinh ra khóa dịng (key stream). Trong mật mã khối có một số vịng cố định và trạng thái cuối cùng đóng vai trị là bản mã và tại mỗi vịng sẽ có một trạng thái mật mã được lưu.

Trong các môi trường phần mềm tốc độ của RAM và ROM có thể có vài kilobyte. Hơn nữa, việc đọc và ghi truy cập vào các mô-đun bộ nhớ (thường là EEPROM) thì rất tiêu tốn năng lượng. Do đó, nên lưu trữ tất cả các giá trị trung gian và các biến trong các thanh ghi hơn là trong bộ nhớ ngồi [8].

Standard cell Process Library Cell name Area inµm2 GE

NOT 0.18µm UMCL18G212T3 HDINVBD1 6.451 0.67

NAND 0.18µm UMCL18G212T3 HDNAN2D1 9.677 1

NOR 0.18µm UMCL18G212T3 HDNOR2D1 9.677 1

AND 0.18µm UMCL18G212T3 HDAND2D1 12.902 1.33

OR 0.18µm UMCL18G212T3 HDOR2D1 12.902 1.33

MUX 0.18µm UMCL18G212T3 HDMUX2D1 22.579 2.33

XOR (2) 0.18µm UMCL18G212T3 HDEXOR2D1 25.805 2.67

XOR (3) 0.18µm UMCL18G212T3 HDEXOR3D1 45.158 4.67

D Flip flop 0.18µm UMCL18G212T3 HĐFFPB1 51.61 5.33

Scan D Flip-flop 0.18µm UMCL18G212T3 HDSDFPQ1 58.061 6 /w enable

Scan flip-flop 0.18µm UMCL18G212T3 HDSDEPQ1 83.866 8.67 complex 0.18µm UMCL18G212T3 HDSDERSPB1 119.347 12.33 Scan flip-flop

Bảng 2: Yêu cầu về diện tích và số lượng cổng tương ứng từ các thành phần tiêu chuẩn đã chọn của thư viện UMCL18G212T3

Thanh ghi thường bao gồm flip-flops. So với các chuẩn máy tính khác, flip-flops có u cầu về diện tích và điện năng khá cao. Ví dụ, khi sử dụng thư viện standard cells Virtual Silicon(VST)dựa trênUMC L180 0.18µ1P6M logic process(UMCL18G212T3, [30]), flip-flops yêu cầu5.33 GE đến12.33 GE để lưu trữ một bít (bảng 1) [8].

1.4.2 Gây lẫn và khuếch tán (Confusion and diffusion)

Shannon là người đầu tiên thực hiện hóa các ý tưởng về gây lẫn và khuếch tán, đây là hai tính chất cần thiết trong việc thiết kế một mật mã an toàn. Trên thực tế, gần như tất cả các mật mã khối đều là mã sản phẩm (product ciphers), nghĩa là chúng dựa trên các hoạt động của "gây lẫn" và "khuếch tán". Trong một mật mã khối, "gây lẫn" thường được xác định bởi một lớp thay thế, trong khi "khuếch tán" thường được xác định bởi một lớp hốn vị hay "trộn". Trong thực tế khơng phải lúc nào cũng dễ dàng phân biệt và xác định các thành phần góp phần gây ra "khuếch tán" hoặc "gây lẫn".

Một số thuật toán mật mã sử dụng các phép toán số học như một kỹ thuật khuếch tán và gây lẫn, nhưng điều này có thể làm tăng đáng kể diện tích và điện năng tiêu thụ. Có thể cho rằng phương pháp phổ biến gây lẫn nhất là dựa trên hộp-S. Một sự thay đổi nhỏ trong đầu vào cho hộp-S dẫn đến sự thay đổi phức hợp ở đầu ra. Để lan truyền những thay đổi này ra toàn bộ trạng thái một cách nhanh chóng, cần sử dụng một lớp khuếch tán riêng biệt. Cách cổ điển để làm điều này là sử dụng hốn vị bít. Trong phần cứng, hốn vị bít có thể được thực hiện bằng cách nối dây và khơng có (transistors) liên quan. Do đó, được coi là một thành phần rất hiệu quả. Lứu ý rằng, các kỹ thuật khuếch tán phức tạp hơn ví dụ như lớp mix-column sử dụng trong AES.

Nhiều mật mã khối và mật mã dòng, sử dụng các hộp-S để giới thiệu phi tuyến tính. Trong phần mềm, hộp-S thường được thực hiện như bảng tra cứu (LUT - Lookup Table). Trong phần cứng các bảng tra cứu này có thể có một vùng diện tích rộng lớn hoặc có thể gây ra các vấn đề về cơng nghệ vì sự kết hợp của logic tổ hợp và ROM không phải lúc nào cũng dễ dàng đạt được với một tiêu chuẩn thiết kế phần cứng. Do đó một thực hiện tổ hợp hoàn toàn thường là hiệu quả nhiều hơn.

Nếu việc triển khai tổ hợp không khai thác bất kỳ cấu trúc trong hộp-S, thì u cầu về diện tích sẽ tăng nhanh với số bít đầu vào và đầu ra. Các bít đầu ra có nhiều hơn một hộp-S, sự cân bằng luận lý sẽ được yêu cầu hơn. Và các bít đầu vào có nhiều hơn một hộp-S, sự cân bằng có thể phức tạp hơn. Một sự tương tác thú vị giữa mật mã và việc

triển khai phần cứng có thể được xem xét ở đây: để có thể chống lại sự vi sai và tuyến tính [9, 25], yêu cầu phi tuyến tính của hộp-S phải mạnh, ngay sau khi chuyển thành một số cổng cao. Để có một cái nhìn rõ hơn về hiệu suất phần cứng của các hộp-S hãy xem trong AES [28], DES [8], và PRESENT [8] sẽ minh họa điều này.

• AES sử dụng hộp-S song ánh 8 bít, nghĩa là 8 bít đầu vào đươc ánh xạ tới 8 bít đầu ra. Trong các tính chất phần cứng của thực hiện một số hộp-S của AES được minh họa và so sánh trong các mục tiêu thiết kế khác nhau. Nó chỉ ra rằng hộp-S AES thực hiện như Boolean logic địi hỏi khoảng 1000 GE, trong khi khơng có u cầu thực hiện địi hỏi ít hơn 300 GE. Những con số này bao gồm cả hộp-S nghịch đảo.

• DES sử dụng tám hộp-S khác nhau mà ánh xạ sáu bít đầu vào cho bốn bít đầu ra. Trong [8] đã chỉ ra rằng trong thiết kế ASIC của DES, các hộp-S u cầu tổng cộng 742GE. Tuy nhiên, có tính đến các lợi ích Boolean có thể được chia sẻ giữa 8 hộp-S

khác nhau, và khơng gì đáng ngạc nhiên khi các yêu cầu về diện tích cho một hộp-S 6 bít đến 4 bít chỉ khoảng 120 GE. Điều này cũng được đưa ra trong việc thực hiện

DESXL và DESL và cũng được đưa ra trong [8]. Cả hai thuật tốn đều sử dụng các hộp-S6×4bít, nhưng trái ngược với DES, một hơp-S đơn được lặp lại 8 lần. Do đó, trong một thiết kế nối tiếp chỉ có một hơp-S được thực hiện, và địi hỏi phải có 128

GE.

Trong [20] yêu cầu về diện tích cho hộp-S 4×4đáp ứng các tiêu chí nhất định, thay đổi giữa 21 GE và 39 GE, Ví dụ: PRESENT sử dụng hộp-S 4× 4, có thể được

thực hiện với 21GE. Tuy nhiên, trong chương 3, khi triển khai PRESENT với thự viện UMCL18G212D3 thì là 28 GE. Điều này cho thấy thực tế kết quả phụ thuộc nhiều vào

công nghệ của các tiêu chuẩn thư viện được sử dụng và cụ thể kết quả này sẽ được xem xét trong chương 3.

Với những tìm hiểu sơ lược về mật mã hạng nhẹ, một số mật mã hạng nhẹ mới hiện nay như: mã khối DESL và DESXL (một mã pháp được sửa đổi từ DES), mã khối HIGHT, mã khối mCrypton, SEA, TEA, ICEBERG, PRINCE..., đặc biệt là một số chuẩn mã khối như chuẩn mã khối hạng nhẹ ISO/IEC 29192-2 PRESENT [18], CLEFIA [18], SPECK [31] và SIMON [31]. Chính vì vậy mật mã khối hạng nhẹ PRESENT được lựa chọn làm đối tượng nghiên cứu trong luận văn này. Trong đó, mã khối PRESENT được đánh giá rất cao trên phương diện cài đặt cứng hóa. Thiết kế của PRESENT cũng như đánh giá độ bảo mật của thuật tốn sẽ được trình bày chi tiết trong chương 2 dưới đây.

Chương 2 Thuật toán mật mã khối hạng nhẹ PRESENT

2.1 Giới thiệu về mật mã khối PRESENT

Mã hóa PRESENT là một mã hóa theo khối 64 bít, khơng sử dụng ngun tắc của mơ hình mạng Feistel mà sử dụng mơ hình mạng SPN (Substitution-permutation network). PRESENT dùng 3 phép biến đổi chính để mã hóa một khối: Phép tốn trộn khóa (AddRoundKey), phép tốn thay thế (SBoxlayer), phép toán hoán vị (PLayer). Mỗi phép biến đổi nhận tham số đầu vào có kích thước 64 bít và cho kết quả cũng có kích thước 64 bít. Kết quả trung gian giữa các bước biến đổi được gọi là trạng thái(STATE),

một trạng thái có thể được biểu diễn dưới dạng mảng một chiều bao gồm 16 đoạn con, mỗi đoạn con có độ dài 4 bít gọi là mảng trạng thái. PRESENT thực hiện 3 phép biến đổi trên nhiều lần tạo thành 31 vòng. Cuối cùng là một phép cộng⊕(XOR) với khóaK32 cho việc làm "trắng sau" (post-whitening). Phép tốn giải mã sử dụng các biến đổi ngược của các thành phần mật mã trên, cũng gồm 31 vòng thực hiện theo chiều ngược lại. Lược đồ khóa của PRESENT có hai phiên bản khóa là 80 bít và 128 bít có thể được thực hiện dưới dạng tính tốn trên đường truyền trên một thanh ghi dịch nhằm tiết kiệm tài nguyên sử dụng. Khóa và q trình sinh khóa đươc sử dụng trong q trình mã hóa và giải mã là bí mật chỉ có hai bên tham gia vào q trình được biết. Trong chương này, sẽ tập trung trình bày việc thực hiện thuật tốn mã hóa và giải mã sử dụng phiên bản khóa 80 bít.

Mạng thay thế - hốn vị có các giá trị đầu vào là một khối bản rõ và khóa. Áp dụng một số "vịng" hoặc "lớp" kết hợp với các hộp thế (hộp-S) và hộp hoán vị (hộp-P) để tạo ra một khối bản mã. Tại mỗi vòng, sau mỗi phép biến đổi thì kết quả thu được

STATE của mỗi phép biến đổi sẽ trở thành đầu vào của phép biến đổi kế tiếp trong quy trình mã hóa. Vì thiết kế thuật tốn PRESENT dựa trên mơ hình mạng SPN, nên thuật tốn PRESENT có 3 phép biến đổi chính là phép tốn trộn khóa, phép tốn thay thế và phép toán hoán vị.

Thuật tốn PRESENT dùng ba phép biến đổi chính để mã hóa một khối và ba phép biến đổi chính được mơ tả dưới đây:

Phép tốn trộn khóa : Là phép tốn, trong đó một khóa vịng (gọi là khóa con) được cộng thêm vào trạng thái dữ liệu ban đầu bằng phép toán⊕(XOR) (phép toán hoặc và loại trừ). Như vậy một khóa con sẽ được gắn vào sau vòng cuối cùng để đảm bảo rằng tầng cuối cùng của phép tốn hốn vị khơng bị loại bỏ dễ dàng bởi thám mã.

Thơng thường trong một mật mã, khóa con cho một vịng được lấy ra từ khóa chính của mật mã đó thơng qua một tiến trình được gọi là sinh khóa và giả sử rằng tất cả các bít của các khóa con là được sinh độc lập và khơng quan hệ với nhau. Độ dài của khóa con bằng kích thước của trạng thái dữ liệu được đưa vào mã hóa.

Phép tốn thay thế : Là phép biến đổi dùng trong phép mã hóa áp dụng lên trạng thái dữ liệu (kết quả mã hóa trung gian, được mơ tả dưới dạng một mảng một chiều của các bít) sử dụng một "bảng thay thế phi tuyến" (hộp-S), và sử dụng trong một số phép thay thế khác như trong q trình sinh khóa, nhằm thực hiện một phép thay thế 1-1 (đối với mỗi giá trị) trên mỗi bít trạng thái một cách độc lập.

Phép toán hoán vị : Là hốn đổi vị trí các bít của trạng thái (STATE), mỗi bít đầu ra của một vịng hốn vị sẽ là các bít đầu vào của vịng mã hóa tiếp theo. Việc hốn đổi được thực hiện dựa vào hộp hoán vị (hộp-P).

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu thiết kế một số thuật toán mật mã hạng nhẹ luận văn ths toán học 604601 (Trang 27 - 31)

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

(76 trang)