Tải bản đầy đủ (.docx) (86 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.23 MB, 86 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA
HỌC TỰ NHIÊN —————————

Vũ Thị Ngân

NGHIÊN CỨU THIẾT KẾ MỘT SỐ THUẬT TOÁN
MẬT MÃ HẠNG NHẸ

LUẬN VĂN THẠC SĨ KHOA HỌC

Hà Nội - 2017


ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA
HỌC TỰ NHIÊN —————————

Vũ Thị Ngân

NGHIÊN CỨU THIẾT KẾ MỘT SỐ THUẬT TOÁN
MẬT MÃ HẠNG NHẸ

Chuyên ngành: Cơ sở toán cho tin học
Mã số
: 60460110

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Nguyễn Hải Vinh

Hà Nội - 2017



LỜI CẢM ƠN
Được sự phân công của khoa Toán - Cơ - Tin học, Trường Đại học Khoa
Học Tự Nhiên, Đại Học Quốc Gia Hà Nội, được sự đồng ý của Thầy giáo
hướng dẫn TS. Nguyễn Hải Vinh, tôi đã thực hiện đề tài "Nghiên cứu thiết kế
một số thuật toán mật mã hạng nhẹ".
Để hoàn thành luận văn này, tôi xin bày tỏ lòng biết ơn sâu sắc tới TS.
Nguyễn Hải Vinh - người Thầy đã trực tiếp hướng dẫn và chỉ bảo giúp tôi hoàn
thành luận văn thạc sĩ.
Tôi cũng xin chân thành cảm ơn các Thầy, Cô giáo đã tận tình hướng
dẫn, giảng dạy trong suốt quá trình tôi học tập và rèn luyện tại trường.
Qua đây, tôi xin gửi lời cảm ơn tới gia đình, bạn bè, đồng nghiệp những người đã luôn bên cạnh cổ vũ, động viên, giúp đỡ tôi trong suốt quá
trình học tập và thực hiện luận văn này.
Mặc dù tôi đã vô cùng cố gắng thực hiện luận văn nhưng chắc rằng
không thể tránh khỏi những thiếu sót nhất định. Tôi rất mong được sự góp ý
của quý Thầy, Cô giáo và các bạn.
Tôi xin chân thành cảm ơn!.
Hà Nội, ngày..... tháng .....
Học viên

Vũ Thị Ngân


BẢNG KÍ HIỆU, CHỮ VIẾT TẮT
STT
1
2

Kí hiệu
AES

ASIC

3

CMOS

4
5
6
7
8

DES
FF
FSM
GE
RFID

9

SPN

2


Danh sách hình vẽ
1

Sự thỏa hiệp trong thiết kế mật mã hạng nhẹ . . . . . . . . . . . . . . . .
2


12

Mô hình mạng Feistel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Mô hình mạng SPN (Substitution and Permutation Network) . . . . . . . 18 4
Sơ đồ thuật toán mã hóa của PRESENT . . . . . . . . . . . . . . . . . . . 31 5 Sơ
đồ thuật toán giải mã của PRESENT . . . . . . . . . . . . . . . . . . . 35 6 Quá trình
sinh khóa của PRESENT - 80 . . . . . . . . . . . . . . . . . . . 39 7 Phân nhóm các
hộp-S trong PRESENT cho mục đích thám mã . . . . . . 41 8 Datapath của
kiến trúc PRESENT dựa trên vòng . . . . . . . . . . . . . . 50
9
Datapath của kiến trúc PRESENT nối tiếp
...............
52
10
53

..

Datapath của kiến trúc PRESENT song song . . . . . . . . . . . . . . . .

11
Hộp-S sử dụng trong mã hóa và giải mã của chương
trình . . . . . . . . . 61

12

Văn bản cần mã hóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62


13

Bản mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

14

Bản kết quả giải mã . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62


3


Danh sách 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
. . . . . . . . . . . . . . . 25

3
32
4

Bảng thay thế hộp-S của PRESENT . . . . . . . . . . . . . . . . . . . . .

Bảng lớp hoán vị của PRESENT . . . . . . . . . . . . . . . . . . . . . . . 33

5
Bảng phân phối vi sai của hôp-S PRESENT
..............

43
6
51
7

..

Yêu cầu diện tích bề mặt của PRESENT [8] . . . . . . . . . . . . . . . . .

Bảng tóm tắt kết quả thực hiện của PRESENT dựa trên ba kiến trúc . . .
54

8
Bảng so sánh kết quả thực hiện của PRESENT dựa trên ba kiến trúc .
. . 55

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


4


Mục lục
Phần mở đầu
Chương 1 Tổng quan về mật mã hạng nhẹ

1.1 Sơ lược về mật mã hạng nhẹ (light


1.2 Chiến lược thiết kế cho mật mã hạ
1.2.1
1.2.2
1.3 Giới thiệu về thiết kế ASIC . . . . . .
1.3.1
1.3.2
1.3.3
1.4 Các thuộc tính phần cứng trong xây
1.4.1
1.4.2
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 PRESEN

2.2 Các vấn đề thiết kế cho PRESENT

2.3 Mô tả thuật toán mã hóa của PRES
2.3.1
2.3.2
2.3.3
2.3.4

2.4 Mô tả thuật toán giải mã của PRES
2.4.1
2.4.2
2.4.3
5



2.5

Sinh khóa của mật mã khối P

2.6

Đánh giá bảo mật của mật m
2.6.1
2.6.2

2.7

Thực hiện cứng hóa trên AS
2.7.1
2.7.2
2.7.3
2.7.4

Chương 3 Xây dựng chương trình thực hiện thuật toán mật mã khối hạng nhẹ
PRESENT
3.1

Sơ đồ thuật toán và xây dựn
3.1.1
3.1.2

3.2

Kết quả thực hiện chương tr
3.2.1

3.2.2

3.3

Đánh giá kết quả . . . . . . . . .

Kết luận
Tài liệu tham khảo
Phụ lục

6


PHẦN MỞ ĐẦU
Trước đây khi công nghệ máy tính chưa phát triển, nói đến vấn đề an toàn bảo
mật thông tin (Information Security), chúng ta thường hay nghĩ đến các biện pháp nhằm
đảm bảo cho thông tin được trao đổi hay cất giữ một cách an toàn và bí mật. Với việc sử
dụng một số các biện pháp như đóng dấu, ký niêm phong hay lưu trữ trong các tủ hồ sơ,
két sắt, thậm trí trong lĩnh vực quân sự còn sử dụng mật mã hóa thông điệp.
Tuy nhiên, ngày nay với sự phát triển của công nghệ máy tính, thì việc lưu trữ và
bảo mật thông tin được thực hiện một cách phổ biến trên máy vi tính. Với sự phát triển
mạnh mẽ của công nghệ điện tử bán dẫn, các công nghệ mạng không dây thì ngày càng
có nhiều thông tin được lưu trữ và gửi đi trên mạng Internet. Đa số các thiết bị công nghệ
đều có cấu hình khá cao, điều này dẫn đến việc cho phép triển khai dễ dàng các thuật
toán mã hóa truyền thống như DES, hay Tiêu chuẩn mã hóa nâng cao AES.
Ngoài ra, khi mà máy tính đã trở nên phổ biến, cùng với xu hướng phát triển của hệ
thống nhúng. "Hệ thống nhúng là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được
nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp (cả phần
cứng và phần mềm) được triển khai trong nhiều lĩnh vực như công nghiệp, tự động hóa điều
khiển, quan trắc và truyền tin" [6]. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và

có tính năng tự động hóa cao. Một phần chức năng không thể tách rời của các hệ thống
nhúng này là lưu trữ, truy cập và truyền tải thông tin cá nhân. Do đó, tính bảo mật và tính
nhất quán của các nguồn lực và dịch vụ trong các thiết bị ở các lĩnh vực nói trên là một vấn
đề đáng chú ý, cần được xem xét trong quá trình thiết kế. Có rất nhiều kỹ thuật mã hóa như
mã hóa khóa đối xứng và mã hóa khóa công khai có thể được sử dụng để bảo vệ tính bảo
mật và tính nhất quán của thông tin được lưu trữ và truyền đi. Tuy nhiên, trong bối cảnh của
các hệ thống nhúng, vấn đề đang gặp phải là hạn chế về nguồn tài nguyên của thiết bị, kết
hợp với nhu cầu cần thiết về kích thước nhỏ và chi phí sản xuất thấp hơn để phục vụ các
công việc và giải quyết bài toán chuyên dụng, đơn giản, như: Các thẻ thông minh
(smartcard), vi điều khiển (microcontroller) thì ngày càng tăng. Trong khi đó, các mã khối
truyền thống hiện có như DES hay tiêu chuẩn mã hóa nâng cao AES khó có thể thực hiện
được cho mọi kiểu thiết bị (bộ vi xử lý), do sự phức tạp, sử dụng nhiều tài nguyên, năng
lượng. Một mật mã an toàn truyền thống khác cũng khó có thể cài đặt hiệu quả trên các thiết
bị có năng lực tài nguyên hạn chế như các bộ vi điều khiển 4 bít, 8 bít, hay 16 bít có kích cỡ
RAM nhỏ, tần số thấp. Vì vậy, nhu

7


cầu cần có các hệ mật mã (mã khóa công khai, mã khối, mã dòng, hàm băm...) riêng,
áp dụng cho các thiết bị/hệ thống bị hạn chế đã và đang được đặt ra trong những
năm qua. Một trong những lĩnh vực nghiên cứu mới nổi của mật mã từ vài năm gần
đây để đáp ứng các yêu cầu hạn chế đó là mật mã hạng nhẹ (lightweight
cryptography). Trong phần tổng quan chung của tiêu chuẩn ISO/IEC 29192-1 đã đưa
ra khái niệm: Mật mã hạng nhẹ là mật mã phù hợp với các cài đặt trong những môi
trường bị hạn chế và cụ thể trong tiêu chuẩn ISO/IEC 29192-2 đã đưa ra mật mã tiêu
biểu cho các tài nguyên hạn chế là chuẩn mã khối hạng nhẹ PRESENT. [1].
Những hạn chế đó dựa trên các đánh giá về diện tích chíp (chip area), năng
lượng tiêu thụ (energy consumption), kích cỡ mã nguồn chương trình (program code
size), kích cỡ RAM, băng thông (communication bandwidth) và thời gian thực hiện

(execution time) tham khảo trong. Trong những trường hợp này, sử dụng các thuật
toán mã khối hạng nhẹ là phù hợp và cần được quan tâm nghiên cứu [1].

Từ nhu cầu cần có các mật mã phù hợp với các cài đặt trong những môi
trường bị hạn chế và theo tiêu chuẩn ISO/IEC 29192-1 đã đưa ra khái niệm về
mật mã hạng nhẹ phù hợp với những môi trường đó, tôi quyết định chọn đề
tài: "Nghiên cứu thiết kế một số thuật toán mật mã hạng nhẹ".
Mục đích: Nghiên cứu việc thiết kế một thuật toán mật mã hạng nhẹ
mới, có thể thực hiện trên các thiết bị có tài nguyên hạn chế.
Đối tượng nghiên cứu của luận văn: bao gồm mật mã hạng nhẹ, thuật toán
mật mã khối PRESENT, thực hiện thuật toán mã khối PRESENT trên ASIC.
Nội dung nghiên cứu của luận văn: Nghiên cứu tổng quan mật mã hạng nhẹ.
Nghiên cứu thiết kế mật mã khối hạng nhẹ mới PRESENT dành cho các thiết bị có môi
trường hạn chế như thẻ RFID, các hệ thống nhúng và mạng cảm biến. Nghiên cứu việc
đánh giá về độ bảo mật và hiệu suất phần cứng trong thiết kế thuật toán, các yêu cầu
phần cứng cho PRESENT đang được so sánh với các mật mã dòng tốt nhất hiện nay.
Xây dựng chương trình thực hiện thuật toán và đánh giá kết quả chạy chương trình.

Dựa vào mục đích, đối tượng và nội dung nghiên cứu, luận văn được
trình bày bao gồm 3 chương chính cùng với phần mở đầu, kết luận và phụ lục:
Chương 1: Tổng quan về mật mã hạng nhẹ
Chương 2: Thuật toán mật mã khối hạng nhẹ PRESENT
8


Chương 3: Xây dựng chương trình thực hiện thuật toán mật mã khối hạng nhẹ
PRESENT

9



Chương 1 Tổng quan về mật mã hạng nhẹ
1.1 Sơ lược về mật mã hạng nhẹ (lightweight cryptograhy)
Một xu hướng phát triển mới của ngành CNTT ngày nay là việc triển
khai rộng rãi các thiết bị tính toán nhỏ. Các thiết bị này không chỉ thường
xuyên được sử dụng trong các mặt hàng tiêu dùng mà còn tạo thành một phần
không thể thiếu của cơ sở hạ tầng truyền thông phổ biến. Tuy nhiên, việc triển
khai như vậy rõ ràng sẽ mang lại một loạt các nguy cơ bảo mật. Vì vậy, cần có
các giải pháp mật mã cho việc triển khai trên các thiết bị tính toán nhỏ.
Ngoài ra, ngày càng nhiều các sản phẩm được nâng cấp thành các thiết
bị thâm nhập khắp nơi nhờ năng lực tính toán nhúng. Quan hệ mật thiết giữa
các thiết bị này dẫn đến triển vọng rằng "tính toán khắp nơi" (ubiquitous
computing) sẽ là mô hình tiếp theo trong công nghệ thông tin.
Tính toán khắp nơi (ubiquitous computing): Là một khái niệm kỹ thuật để chỉ một
xu hướng trong việc phát triển các phương pháp tính toán. Thay vì chúng ta tính toán xử
lý trong một chiếc máy tính để bàn hay máy tính xách tay của mình, thì kỹ thuật này sẽ
cho phép chúng ta đưa việc tính toán vào chính môi trường sống của mình, hay nói một
cách đơn giản là việc tính toán xử lý sẽ được thực hiện mọi lúc mọi nơi [4].

Các thiết bị thâm nhập khắp nơi đã phát triển bao gồm không chỉ máy
tính xách tay, notebooks và điện thoại thông minh (smartphones) mà còn bao
gồm máy tính bảng, "thiết bị có thể mang theo" (wearable devices), hệ thống
chiếu sáng, dụng cụ và cảm biến, vv [4].
Việc triển khai hàng loạt của các thiết bị thâm nhập khắp nơi hứa hẹn đem đến nhiều
lợi ích như chi phí “hậu cần” thấp hơn, các chuỗi cung cấp được tối ưu hoặc có thêm các
dịch vụ dựa trên xác định vị trí. Ví dụ, công nghệ RFID có thể là công nghệ cho phép đối với
liên mạng của các vật dụng (IOT - internet of things). Về cơ bản, các thẻ RFID bao gồm một
hệ thống phát nhận tín hiệu và một anten có khả năng nhận dữ liệu từ xa, từ một máy chủ
RFID hoặc thiết bị đọc. Nhìn chung, các thẻ RFID có thể được chia thành các thiết bị chủ
động và bị động: các thẻ chủ động được trang bị nguồn cung cấp năng lượng riêng (ví dụ ở

dạng pin), trong khi các thẻ bị động chỉ dựa vào năng lượng của tín hiệu mạng được truyền
đi bởi thiết bị đọc. Do vậy, các thiết bị RFID bị động không chỉ rẻ hơn, mà còn có kích thước
chíp nhỏ hơn và có chu kỳ sống lâu hơn so với các thẻ

10


RFID chủ động. Tính thâm nhập khắp nơi của thiết bị RFID dẫn đến việc triển khai hàng loạt
và việc triển khai hàng loạt lại kéo theo các ràng buộc giảm giá thành đối với công nghệ
được sử dụng. Các cài đặt phần mềm thông thường bị ràng buộc về dung lượng của bộ xử
lý, bộ nhớ và năng lượng. Vấn đề năng lượng có thể được giải quyết trong quá trình thiết kế
bằng cách tránh các truy cập tiêu thụ năng lượng tới bộ nhớ EEPROM hoặc bộ nhớ Flash và
bằng cách giảm các chu kỳ đồng hồ được yêu cầu. Các đòi hỏi giảm chi phí đưa đến các yêu
cầu năng lực, năng lượng và diện tích cần phải giữ cực tiểu đối với ASIC. Một thẻ RFID giá
thành thấp, đầy đủ tính năng, có thể có từ 1.000 đến 10.000 GE (Gate Equivalent), trong đó,
các thành phần an toàn chỉ có khoảng 200 - 2.000 GE [8].
Bên cạnh những lợi ích ở trên, tính toán khắp nơi cũng chứa đựng nhiều hiểm họa.
Nhiều ứng dụng yêu cầu cao về độ an toàn, chẳng hạn như các mạng cảm biến không dây
cho các ứng dụng quân sự, tài chính hoặc tự động hóa. Một nhân tố làm tăng nguy cơ mất
an toàn là các thiết bị thâm nhập khắp nơi thường triển khai trong một môi trường không
được kiểm soát, là một môi trường mà đối phương có thể truy cập vật lý tới thiết bị hoặc điều
khiển thiết bị. Điều đó làm tăng thêm khả năng tấn công vật lý vào các kịch bản tấn công tiềm
năng, nhất là các tấn công kênh kề, chẳng hạn như phân tích năng lượng

vi sai/phân tích năng lượng tương quan hoặc các tấn công bức xạ điện từ.
Thực tế đã chỉ ra rằng, các giải pháp an toàn có sử dụng một thuật toán an
toàn về mặt mật mã, nhưng được cài đặt không có các biện pháp chống tấn
công kênh kề thì có thể dễ dàng bị phá bởi các tấn công như vậy. Vì thế, khả
năng an toàn của bản thân việc cài đặt cần được hết sức chú trọng [8].
Chính sự phát triển của tính toán khắp nơi, mà người ta cần những thuật toán

hạng nhẹ để có thể cài đặt trong các thiết bị thâm nhập khắp nơi với kích thước nhỏ
và năng lực tính toán ở mức độ thích hợp. Mật mã hạng nhẹ hướng tới việc tạo ra
các giải pháp cài đặt rất gọn nhẹ nhưng không làm giảm quá nhiều về tính an toàn.
Thực tế, vấn đề chính của mật mã hạng nhẹ là “thỏa hiệp” giữa độ an toàn và tính
hiệu quả trong cài đặt của các thuật toán mật mã và được thể hiện trong hình 1 [1].
Về độ an toàn, mục tiêu xây dựng các hệ mã hạng nhẹ là thiết kế một hệ mật
không quá yếu (và không với mục đích thay thế các thuật toán mã truyền thống khác),
nhưng phải đủ an toàn (tất nhiên không thể kháng lại được các đối phương có đủ mọi
điều kiện), chi phí (cài đặt, sản xuất) thấp và một yêu cầu quan trọng đối với các thiết bị
kiểu này là tính gọn nhẹ. Tóm lại, cần xây dựng một hệ mật không phải tốt nhất, mà phải
cân bằng giữa giá thành, hiệu suất và độ an toàn. Tuy nhiên, rất khó để có thể tối ưu hóa
11


Hình 1: Sự thỏa hiệp trong thiết kế mật mã hạng nhẹ
cả 3 khía cạnh trên [1].
Về hiệu quả trong cài đặt, thường được đánh giá qua các độ đo sau: diện
tích bề mặt (Area), điện năng tiêu thụ và thông lượng. Trong đó, tỷ lệ thông lượng
với diện tích, được dùng làm độ đo cho tính hiệu quả phần cứng [1].
Có rất nhiều thuật toán mật mã hạng nhẹ đã được đề xuất trong thời gian gần
đây. Thay vì thiết kế ra một mật mã hoàn toàn mới thì hầu hết các thiết kế được lấy ra từ
các mật mã truyền thống nhưng với một vài thay đổi nhỏ. Thuật toán mật mã hạng nhẹ
(giống như bất kỳ mật mã nguyên thủy khác) có thể được chia thành các loại như sau:

1. Mật mã khóa đối xứng hạng nhẹ
2. Mật mã khóa công khai hạng nhẹ
3. Hàm băm hạng nhẹ
Một nhược điểm đã được biết đến của các nguyên thủy mật mã khóa công khai là
chúng đòi hỏi chi phí tính toán lớn hơn so với các nguyên thủy mật mã khóa đối xứng.
Việc thiết kế được một thuật toán mật mã khóa công khai thuộc hạng nhẹ khó hơn so với

việc thiết kế ra một thuật toán mật mã khóa đối xứng hạng nhẹ. Với nhu cầu ứng dụng
cho các thiết bị có tài nguyên hạn chế thì việc triển khai một thuật toán khóa đối xứng
được coi là phù hợp hơn. Mật mã khóa đối xứng hạng nhẹ gồm có Mã khối hạng nhẹ và
Mã dòng hạng nhẹ. Trong luận văn này chúng ta sẽ tập trung vào mật mã khối hạng nhẹ.
12


Liên quan đến mật mã khối, chúng ta biết rằng thiết kế DES được chú ý với hiệu
suất phần cứng tốt. Với tình trạng giới hạn của các mạch bán dẫn vào đầu những năm
1970, thì không có gì đáng ngạc nhiên khi DES có được tính chất thực hiện rất cạnh
tranh. Thực hiện của DES đòi hỏi khoảng 3000 GE, trong khi triển khai nối tiếp có thể
được thực hiện khoảng 2310 GE [4] và thực hiện mã hóa một bản rõ trong vòng 144 chu
kỳ đồng hồ. Đây được coi là một kết quả thực hiện phần cứng tốt nhất của DES. Hơn
nữa, để giảm độ phức tạp của DES, bằng cách thay thế 8 hộp-S ban đầu bởi một cái mới
duy nhất, với việc loại bỏ 7 hộp-S và bộ ghép kênh (multiplexer) ta có được một biến thể
mới của DES là DESL [8] và kết quả thu được có kích thước chíp giảm 20% so với DES
(1850 GE so với 2310 GE). Việc lựa chọn hộp-S một cách cẩn thận và được tối ưu hóa
cao để DESL có thể chống lại các cuộc tấn công thông thường như thám mã vi sai và
tuyến tính và tấn công Davies-Murphy. Tuy nhiên, vấn đề bảo mật của DES [8] và DESL
[8] bị hạn chế bởi kích thước khóa là 56 bít, mặc dù có thể phù hợp cho các ứng dụng
hạn chế. Trong trường hợp cần có mức bảo mật cao hơn thì có thể áp dụng phương
pháp làm trắng khóa (key whitening) ta có mật mã DESXL [8] với mức bảo mật tốt.
Nhưng DESXL [8] yêu cầu 2170 GE và mã hóa một bản rõ trong 144 chu kỳ đồng hồ. Với
yêu cầu diện tích đó của DESXL không phù hợp với các thiết bị hạn chế [8].

Trong một bài báo mang tính bước ngoặt của mật mã khối hiện đại [10] đã
đưa ra một phân tích rất chi tiết về việc thực hiện AES với chi phí thấp [26]. Tuy
nhiên, các nguồn lực cần thiết cho mật mã này là khoảng 3600 GE. Thêm nữa ta có
các yêu cầu thực hiện cho Tiny Encryption Algorithm TEA [34, 35] vẫn chưa được
biết, nhưng có một ước tính sơ bộ là TEA cần ít nhất 2100 GE và XTEA cần ít nhất là

2000 GE. Ngoài ra, có bốn đề xuất dành riêng cho việc thực hiện chi phí thấp là
mCRYPTON [21], HIGHT [17], SEA [33] và CGEN [31], mặc dù những đề xuất này
không phải là dự định chủ yếu như mật mã khối. MCRYPTON có một đánh giá phần
cứng chính xác và yêu cầu khoảng 2949 GE, trong khi SEA cần khoảng 2280 GE.
Tuy nhiên, theo một số chuẩn mã khối như chuẩn mã khối hạng nhẹ ISO/IEC
29192-2 đã đưa ra thuật toán mã khối PRESENT được đánh giá rất cao trên phương tiện
cài đặt cứng hóa [18]. Thiết kế PRESENT là một cách tiếp cận cho mật mã hạng nhẹ với
thực hiện kiến trúc dựa theo vòng PRESENT yêu cầu khoảng 1570 GE. Thuật toán mã
khối PRESENT sẽ được nghiên cứu và tìm hiểu chi tiết trong chương 2.

13


1.2 Chiến lược thiết kế cho mật mã hạng nhẹ
Sự lựa chọn cho kích thước khối, kích thước khóa, hàm vòng và kích thước bản
mã phụ thuộc vào đặc điểm kỹ thuật của mãy móc, độ an toàn và mục đích của việc triển
khai. Để tìm hiểu sâu hơn về các khía cạnh kỹ thuật của thiết kế, thì trước tiên chúng ta
nên có một cái nhìn ngắn gọn về các khía cạnh khác của thiết kế bảo mật hay nói một
cách khác, đó là mục đích và chi phí bảo mật. Một vấn đề lâu nay mà các nhà thiết kế
cần phải giải quyết trong khi thiết kế bất kỳ một mật mã nào là "bảo mật như thế nào
được cho là bảo mật tốt". Nó cũng là một nguyên tắc mà ta cần phải chấp nhận vì rằng
chúng ta không nên lạm dụng bảo mật vì nó làm tăng thêm giá cả. Vì vậy, nếu một cơ
chế an ninh được triển khai mà không được sử dụng hết khả năng đầy đủ của nó, thì đó
là một sự lãng phí tài nguyên. Ví dụ, tất cả chúng ta đều biết rằng AES (tiêu chuẩn mã
hóa tiên tiến) [26] là một thuật toán mã hóa khối được áp dụng làm tiêu chuẩn mã hóa.
Cho đến bây giờ, nó đã chống lại một số các cuộc tấn công khác nhau. Vì vậy, các nhà
sản xuất thiết bị đã áp dụng và triển khai AES trong các thiết bị của họ. Nhưng vấn đề đặt
ra là AES rất cồng kềnh và đòi hỏi nhiều tài nguyên. Ngoài ra nó bảo mật hơn so với
những yêu cầu cần thiết để sử dụng. Do đó, cần phải có một sự thiết kế phù hợp với
những thiết bị có tài nguyên hạn chế và đồng thời nên cung cấp một sự bảo mật phù hợp

cho người sử dụng. Đây cũng chính là lý do để hướng tới một mật mã hạng nhẹ .

Có 3 cách tiếp cận để cung cấp nguyên thủy mật mã cho các ứng dụng
hạng nhẹ như các thẻ RFID thụ động... [8]
1. Thực hiện tối ưu hóa các cài đặt cho các thuật toán được tin cậy và đã
được chuẩn hóa (như AES, ECC...).
2. Thay đổi một phần trong một thuật toán mã hóa đã được tin cậy và đã
được nghiên cứu.
3. Thiết kế thuật toán mã hóa mới với mục tiêu của việc thực hiện chi phí
phần cứng thấp
Với cách tiếp cận thứ nhất thì hầu hết là các thuật toán mật mã khối hiện đại được
thiết kế chủ yếu với các tính chất thực hiện tập trung vào phần mềm mà không nhất thiết
thực hiện trên phần cứng. Đây là cách tiếp cận đúng cho mật mã khối hiện nay, bởi vì
một mặt phần lớn các thuật toán chạy trên phần mềm trong các máy tính cá nhân hoặc
trong các thiết bị nhúng, và mặt khác diện tích silicon trở nên quá đắt đối với việc triển
14


khai trên phần cứng với điện năng tiêu thụ rất cao (đạt được với thông lượng diện tích chip
lớn) không còn là vấn đề. Tuy nhiên, nếu mục tiêu là cung cấp bảo mật trên các thiết bị có chi
phí cực kỳ thấp mà cả hai giả định thiết kế này không được chú ý thì có nghĩa là nhiều mã
hóa hiện đại này không hoạt động tốt. Với cách tiếp cận thứ hai, có một mật mã được tìm
hiểu và thiết kế của nó được thực hiện phần cứng với chi phí thấp, mật mã rất nổi tiếng này
là Tiêu chuẩn mã hóa dữ liệu, DES [27] được thiết kế trong nửa đầu năm 1970 và mục tiêu
thực hiện nền tảng là phần cứng. Tuy nhiên, theo tiêu chuẩn ngày nay công nghệ kỹ thuật số
đã bị hạn chế rất nhiều. Do đó, việc thực hiện trên phần cứng của DES là hạn chế và phức
tạp. Với cách tiếp cận thứ hai bằng cách thay đổi một chút DES để đạt được mục tiêu là
giảm yêu cầu về phần cứng ta có mật mã mới DESL [8]. Mặc dù, các kết quả thực hiện của
DESL rất đáng khích lệ nhưng nó cũng cho thấy cần có một tiềm năng tối ưu hơn nữa. Do
đó, để đạt yêu cầu tốt nhất về cài đặt phần cứng, chúng ta sẽ theo phương pháp tiếp cận thứ

ba, đó là thiết kế một thuật toán mật mã hạng nhẹ phù hợp cho các yêu cầu cụ thể của phần
cứng và thuật toán phù hợp mà chúng ta sẽ tìm hiểu là thuật toán mật mã khối PRESENT,
mật mã này sẽ được trình bày chi tiết trong chương

2. Tiếp theo chúng ta sẽ đi tìm hiểu một số yêu cầu đối với thiết kế một mật mã
khối hạng nhẹ [8].
1.2.1 Thiết kế thuật toán mật mã khối
Trong phần này chúng ta sẽ tìm hiểu về các khía cạnh thiết kế của mật mã khối,
sau khi quyết định phương pháp tiếp cận thiết kế và các thông số đầu vào thì điều tiếp
của thiết kế là hàm vòng. Đặc biệt đối với mật mã khối hạng nhẹ, hàm vòng phải đơn
giản để thực hiện trong phần cứng vì những mật mã này được ghi trực tiếp vào thiết bị.
Môt hàm vòng bao gồm một hàm phi tuyến tính và một hàm tuyến tính. Hàm phi tuyến
tính được gọi là lớp "gây lẫn" và hàm tuyến tính được gọi là lớp "khuếch tán" do Claude
Shannon giới thiệu vào năm 1946. Mục đích của hai hàm này có thể được nêu như sau:

Gây lẫn (Confusion) : Đây là một hàm phi tuyến tính phức tạp, bởi hàm phi tuyến là
hàm mà từ sự khác biệt của đầu vào chúng ta không có thể có được sự khác
biệt về đầu ra với xác suất xảy ra là một và ngược lại. Một hàm gây lẫn sẽ làm
phức tạp hóa mối liên quan giữa bản mã và khóa. Do đó cũng ngăn chặn việc
suy ra lại khóa. Tính chất này có được dựa vào sử dụng hộp thế (S-box).
Khuếch tán (Diffusion) : Đây là một hàm tuyến tính. Theo hàm tuyến tính thì một bít
15


của bản rõ tác động đến tất cả các bít của bản mã, hay nói cách khác, một bít
của bản mã chịu tác động của tất cả các bít trong bản rõ. Việc làm như vậy
nhằm làm giảm tối đa mối liên quan giữa bản rõ và bản mã, ngăn chặn việc
suy ra lại khóa. Hàm tuyến tính thường được thực hiện bởi các hoán vị bít.
Ngoài ra, việc thiết kế mật mã khối được dựa trên hai mô hình đó là mô hình mã


Feistel và mô hình mạng SPN (Substitution Permutation Network):
Mạng Feistel: Trong mạng Feistel, đầu vào được chia thành nửa trái ( Li) và nửa
phải (Ri) với chiều dài bằng nhau. Tại mỗi vòng, chỉ có một nửa của dữ liệu
được thực hiện theo hàm vòng, sau đó sử dụng phép hoán vị trao đổi hai
nửa. Sơ đồ tính toán của hệ mã Feistel được thể hiện trong hình dưới đây.

Hình 2: Mô hình mạng Feistel

Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như sau:
Li = R i 1
Ri = L i 1
F (Ri 1; Ki)
Ki là một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóa K ban đầu

theo một thuật toán sinh khóa con (key schedule): K ! K1 ! K2 ! ::: ! Kn F là một
hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò như là phép
16


thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị. Bản mã C
được tính từ kết xuất của vòng cuối cùng:
C

= Cn = (Ln; Rn)

Mạng SPN (Substitution and Permutation Network): Năm 1949, Shannon đưa ra ý
tưởng mạng thay thế và hoán vị (SPN) là sự kết hợp giữa phép thế và hoán vị hiện
đại với mục đích là cản trở việc thám mã dựa vào các phân tích thống kê. Giả sử kẻ
thám mã biết một số tính chất thống kê của bản rõ như bảng phân bố tần suất của
các chữ cái, bộ các chữ cái. Nếu các đặc trưng thống kê này được phản ánh trong

bản mã, thì kẻ thám mã sẽ tìm cách tìm được khóa hoặc một phần khóa hoặc tìm
mò ra bản rõ. Với một bản mã lý tưởng đó thì mọi đặc trưng thống kê đều độc lập
với khóa riêng được dùng, như vậy kẻ thám mã sẽ không có cơ sở để tìm khóa.

Mạng SPN hoạt động trên toàn bộ trạng thái dữ liệu. Thực hiện chuyển đổi
trạng thái bằng cách sử dụng một lớp thay thế và theo sau là một lớp hoán vị.

Lớp thay thế: là một lớp phi tuyến gồm có các hộp-S với các hàm logic
vector thay thế cho một vector nhỏ (thường là 6 8 bít) của các bít đầu vào
với một vector nhỏ của các bít đầu ra khác (thường là 6 8 bít).
Lớp hoán vị: (P) là một sự chuyển đổi tuyến tính đến đầu ra của lớp thay thế (gọi là
lớp tuyến tính). Lớp tuyến tính đơn giản nhất là thực hiện hoán vị bít cho các bít của
trạng thái. Tuy nhiên có các lớp tuyến tính phức tạp thực hiện phép nhân ma trận.

Tại mỗi vòng, khóa vòng K (thu được từ khóa ban đầu với một số thao tác
đơn giản) được kết hợp bằng cách sử dụng một số thao tác tính toán đặc
trưng, thường là phép cộng (XOR).
Sơ đồ tính toán của mạng SPN được thể hiện trong hình dưới đây.

17


Hình 3: Mô hình mạng SPN (Substitution and Permutation Network)

1.2.2 Yêu cầu thiết kế cho thuật toán mã khối hạng nhẹ
Từ các vấn đề thiết kế cho mật mã khối nói chung thì đối với việc thiết kế và
đánh giá một hệ mật hạng nhẹ, chúng ta cần phải xem xét hai yêu cầu quan trọng.
Thứ nhất là về độ an toàn mục tiêu trong xây dựng các hệ mật mã hạng nhẹ theo
nghĩa: Thiết kế một hệ mật không quá yếu (không với mục đích thay thế các thuật
toán mã truyền thống khác), nhưng phải đủ an toàn (tất nhiên, không thể kháng lại

được các đối phương có đủ mọi điều kiện). Thứ hai là về hiệu quả trong cài đặt
thường được đánh giá qua các độ đo tài nguyên được sử dụng bởi thuật toán, yêu
cầu này phản ánh chi phí cài đặt cũng như hiệu suất. Người thiết kế mật mã hạng
nhẹ phải thỏa hiệp giữa độ an toàn, chi phí cài đặt và hiệu suất. Một yêu cầu quan
trọng đối với các thiết bị này là có khả năng tính toán trên đường truyền "on-the-fly".
Tức là cần có một hệ mật không phải tốt nhất, mà phải thỏa hiệp giữa giá thành, hiệu
suất và độ an toàn. Tuy nhiên, rất khó để có thể tối ưu hóa ba khía cạnh trên [1].
18


Với các mã khối hạng nhẹ, độ dài khóa là sự thỏa hiệp giữa độ an toàn và
giá thành, trong đó, số vòng là sự cân bằng giữa hiệu suất và độ an toàn. Bên
cạnh đó, thực hiện cài đặt bằng phần cứng có hiệu suất cao cũng cần tính tới giải
pháp tránh các tấn công kênh kề. Điều này thường dẫn tới các yêu cầu cao về
diện tích, đồng nghĩa với giá thành cao. Mặt khác, ta cũng có thể thiết kế các mã
pháp an toàn và có cài đặt phần cứng thấp nhưng hiệu suất sẽ rất thấp.
Sau khi tìm hiểu ngắn gọn về các phương pháp tiếp cận và yêu cầu đối với thiết
kế thuật toán mã hóa khối, ta sẽ đi chi tiết các lựa chọn cũng như yêu cầu trong thiết kế
của mật mã khối hạng nhẹ. Các câu hỏi đầu tiên mà các nhà thiết kế cần phải cân nhắc
là phải chọn một trong hai mô hình thiết kế là Feistel hoặc SPN. Đưa ra được lợi thế và
không lợi thể của hai mô hình. Với hai mô hình đã được trình bày ở trên ta thấy ưu điểm
chính của Feistel là thiết kế cho quá trình giải mã là gần như miễn phí. Nhưng chúng ta
cần nhiều hơn số lượng vòng để làm giảm thông lượng của mật mã. SPN có ít số hàm
vòng vì hàm vòng hơi phức tạp, nhưng giải mã thì không phải là mục tiêu trong SPN, vì
vậy mô hình này đòi hỏi nhiều diện tích hơn. Nhưng một vài đặc điểm giống nhau cho cả
hai mô hình đó là kích thước khối, kích thước khóa vv. Kể từ khi có sự hạn chế về bộ
nhớ và kích thước dữ liệu, để kích thước khối nhỏ có thể được phù hợp thì việc lựa chọn
64 bít nói chung là sự lựa chọn phù hợp cho các kích thước khối. Vì các thuật toán mã
hóa được thiết kế cho nhu cầu bảo mật vừa phải nên việc lựa chọn kích thước khóa thay
đổi từ 80 hoặc 128 bít. Các hàm vòng được thiết kế đơn giản để nó không chiếm nhiều

không gian. Sự lựa chọn chung của lớp "gây lẫn" (confusion) cho cả hai mô hình thiết kế
là 4 4 bít hộp-S. Các hoán vị bít dễ dàng đạt được trong phần cứng. Vì vậy, sự lựa chọn
cho lớp "khuếch tán" là hoán vị bít.
Mục tiêu của mật mã hạng nhẹ là thực hiện tốt trong phần cứng với các ứng dụng
có yêu cầu bảo mật ở mức vừa phải, thực hiện mã hóa một số lượng dữ liệu nhỏ ví dụ
như các thiết bị thông minh. Nhưng các thiết bị đó lại rất hạn chế về chi phí. Nếu khối lưu
trữ dữ liệu đủ lớn và điều này được chỉ ra bởi thuật ngữ phổ biến một mạch tích hợp đặc
biệt ứng dụng (ASIC) sẽ gần như luôn giảm giá hơn so với việc lập trình được một "máy
vi tính cực nhỏ" (microcomputer). Trong phần cứng giá của một ASIC tương đương với
2

khoảng diện tích đòi hỏi trong silicon. Diện tích này được đo bởi m , nhưng giá trị này phụ
thuộc vào công nghệ chế tạo và thư viện máy tính chuẩn. Hơn nữa, một vấn đề đặc biệt của
tất cả các thiết bị thông minh thụ động như thẻ RFID và thẻ thông minh không tiếp xúc là hạn
chế về điện năng. Vì vậy, ASIC và tất cả các thành phần của nó phải được

19


thiết kế cẩn thận cho tổng điện năng tiêu thụ. Các thiết bị thông minh có nguồn
cung cấp điện riêng, nghĩa là pin hoặc được cung cấp bởi thiết bị đọc thông qua
tiếp xúc vật lý. Do đó, các rằng buộc điện năng cho các thiết bị này không bị hạn
chế. Mục tiêu thiết kế là giảm thiểu tổng tiêu thụ điện năng và tổng thời gian thực
hiện. Để thực hiện được điều này, chúng ta phải hiểu được một số vấn đề thiết kế
trên ASIC, một số độ đo được thể hiện trong thiết kế và các kiến trúc thực hiện
thiết kế. Tất cả các vấn đề này sẽ được trình bày trong phần 1.3.

20



1.3 Giới thiệu về thiết kế ASIC
ASIC viết tắt của Application-Specific Integrat ed Circuit trong tiếng Anh, là
một thuật ngữ chỉ các vi mạch tích hợp chuyên dụng trong điện tử học. ASIC là một vi
mạch IC được thiết kế dành cho một ứng dụng cụ thể. ASIC ngày nay được ứng
dụng hầu như khắp mọi nơi, ví dụ như vi xử lý của điện thoại di động, vi xử lý trong
các máy móc tự động, các phương tiện truyền thông, xe cộ, tàu vũ trụ, các hệ thống
xử lý, các dây chuyền công nghiệp, vv. Trong luận văn này thì việc thiết kế ASIC trên
cơ sở thư viện phần tử logic chuẩn, và thay vì mã viết bằng C, Pascal thì vi mạch
được viết bằng VHDL (là ngôn ngữ mô tả phần cứng cho các mạch tích hợp tốc độ
rất cao), còn thư viện phần tử logic đóng vai trò như tập lệnh của bộ vi xử lý, thư viện
được sử dụng trong phần thiết kế này là UMCL18G212D3 được dựa trên thư viện
phần tử logic chuẩn UMC L180 0:18 m 1P6M có điện áp tiêu biểu là 1.8 volt [8].

1.3.1 Điện năng tiêu thụ
Một vấn đề cụ thể của các ứng dụng thẻ RFID thụ động là các thẻ hạn chế về
tiêu thụ điện năng, nguyên tắc chung là mức tiêu thụ điện năng nên nhỏ hơn 15 A [8].

Công thức sau đây tóm tắt điện năng tiêu thụ P trong thiết bị CMOS [11].
P

1

2

= ( 2 C Vdd + Qsc Vdd) f N + Ileak Vdd

Trong đó: C biểu thị điện dung mạch, Vdd là điện áp cung cấp, Qsc là short-circuit
charge, f là tần số hoạt động, N là số hoạt động chuyển mạch, Ileak là dòng điện rò rỉ. Tần số
đầu tiên thể hiện mức tiêu thụ năng lượng động và thứ hai là điện năng tiêu thụ tĩnh. Ở tần
số cao hơn, phần năng lượng trở thành yếu tố chi phối của tổng năng lượng tiêu thụ. Nó có

thể được giảm tuyến tính bằng cách giảm tần số hoạt động f, làm giảm hoạt động chuyển
mạch N và làm giảm điện áp cung cấp Vdd. Các điều kiện còn lại của phần năng lượng C và
Qsc phụ thuộc vào công nghệ và không thể bị ảnh hưởng bởi một nhà thiết kế thuật toán.

Tiêu thụ điện tĩnh có thể được giảm tuyến tính bằng cách áp dụng điện áp cung cấp Vdd thấp
hơn. Hơn nữa, vì sự rò rỉ dòng hiện hành (current) Ileak là tỷ lệ thuận với số lượng các GE
cần thiết, giảm số cổng sẽ giảm trực tiếp điện năng tiêu thụ của mạch. Để giảm tiêu thụ điện
năng, các ứng dụng thẻ RFID thường có tốc độ ở tần số thấp ví dụ 100KHz hoặc 500KHz.
Trong dải tần số này thì tiêu thụ điện năng tĩnh là chiếm ưu

21


×