Tải bản đầy đủ (.pdf) (67 trang)

NGHIÊN CỨU THUẬT TOÁN MẬT MÃ HẠNG NHẸ PRESENT VÀ ĐỀ XUẤT ỨNG DỤNG BẢO MẬT DỮ LIỆU TRONG HỆ THỐNG NHÚNG

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.33 MB, 67 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SĨ

NGHIÊN CỨU THUẬT TOÁN MẬT MÃ HẠNG NHẸ
PRESENT VÀ ĐỀ XUẤT ỨNG DỤNG BẢO MẬT DỮ
LIỆU TRONG HỆ THỐNG NHÚNG

Nguyen Thanh Long

Hà Nội - 2023


MỤC LỤC
MỤC LỤC .......................................................................................................... i
LỜI CẢM ƠN .................................. Lỗi! Thẻ đánh dấu không được xác định.
LỜI CAM ĐOAN ............................ Lỗi! Thẻ đánh dấu không được xác định.
DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT .......................................................... iii
DANH MỤC BẢNG BIỂU ............................................................................... iv
DANH MỤC HÌNH VẼ ..................................................................................... v
LỜI NĨI ĐẦU ................................................................................................... 1
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG NHÚNG .................................... 2
1.1. Khái quát về hệ thống nhúng ..................................................................... 2
1.1.1. Khái niệm về hệ thống nhúng .............................................................. 2
1.1.2. Lịch sử phát triển của hệ thống nhúng ................................................. 3
1.2.3. Đặc điểm của hệ thống nhúng .............................................................. 5
1.2.4. Các thành phần cơ bản trong cấu trúc phần cứng hệ thống nhúng ........ 5
1.2.5. Mơ hình tổng quát của một hệ thống nhúng ......................................... 9
1.2. An toàn cho hệ thống nhúng .................................................................... 10
1.2.1. Cách tiếp cận phần mềm nhúng an toàn ............................................. 10
1.2.2. Cách tiếp cận phần cứng nhúng an toàn ............................................. 12


1.3. Kết luận chương 1 ................................................................................... 18
CHƯƠNG 2: THUẬT TOÁN MẬT MÃ HẠNG NHẸ .................................... 19
2.1. Khái quát về mật mã hạng nhẹ ................................................................ 19
2.1.1. Một số khái niệm cơ bản .................................................................... 19
2.1.2. Đặc điểm của mật mã hạng nhẹ ......................................................... 19
2.1.3. Phân loại của mật mã hạng nhẹ .......................................................... 20
2.1.4. Nguyên lý thiết kế thuật toán mật mã hạng nhẹ.................................. 26
2.1.5. Các nguyên thủy mật mã hạng nhẹ .................................................... 29
i


2.1.6. Ứng dụng mật mã hạng nhẹ ............................................................... 30
2.2. Mật mã khối hạng nhẹ ............................................................................. 33
2.2.1. Ý tưởng thiết kế thuật toán mã khối hạng nhẹ .................................... 33
2.2.2. Một số hệ mật mã khối hạng nhẹ ....................................................... 34
2.3. Thuật toán PRESENT ............................................................................. 37
2.3.1. Vấn đề thiết kế cho PRESENT .......................................................... 42
2.3.2. Mơ tả sơ đồ thuật tốn mã hóa của PRESENT ................................... 43
2.3.3. Mơ tả sơ đồ thuật tốn giải mã của PRESENT ................................... 46
2.4. Kết luận chương 2 ................................................................................... 49
CHƯƠNG 3: THỰC HIỆN MƠ PHỎNG THUẬT TỐN PRESENT BẢO MẬT
DỮ LIỆU TRONG HỆ THỐNG NHÚNG ....................................................... 50
3.1. Mô tả yêu cầu của bài toán ...................................................................... 50
3.2. Phương pháp thực hiện và kết quả ........................................................... 51
3.2.1. Giới thiệu GCC .................................................................................. 51
3.2.2. Giới thiệu Vim ................................................................................... 52
3.2.3. Cài đặt gói make trong ubuntu ........................................................... 54
3.2.4. Thực hiện biên dịch mã nguồn PRESENT ......................................... 54
3.3. Đánh giá và nhận xét ............................................................................... 58
KẾT LUẬN ...................................................................................................... 59

TÀI LIỆU THAM KHẢO ................................................................................ 60

ii


DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT
STT

Viết tắt

Tiếng Anh

1

AES

Advanced Encryption Standard

2

ALU

3

ASIC

Application-Specific Integrated Circuit

4


BSD

Berkeley Software Distribution

5

DSP

Digital Signal Processing

6

ECU

Electronic Control Unit

7

FMEDA

Failure Mode, Effects and Criticality Analysis

8

FPD

Field Programmable Device

9


FPGA

Field-Programmable Gate Array

10

IEC

International Electrotechnical Commission

11

ISO

International Organization for Standardization

12

LED

Light Emitting Diode

13

LWC

Loop Wiring Concentrator

14


MAC

Message Authencation Code

15

MDS

Management Data System

16

NIST

National Institute of Standards and Technology

17

PKI

Public Key Infrastructure

18

RFID

Radio Frequency Identification

19


SCSI

Small Computer System Interface

20

SES

Safely Embedded Sofware

21

SPN

Substitution Permutation Network

22

TTL

Transistor- Transistor Logic

23

VoIP

Voice over Internet Protocol

Arthimetic Logic Unit


iii


DANH MỤC BẢNG BIỂU
Bảng 1.1: Các thị trường ứng dụng hệ thống nhúng ............................................ 3
Bảng 2. 1: Thiết bị mục tiêu .............................................................................. 20
Bảng 2. 2: Hiệu quả phần cứng của một số giải thuật mật mã hạng nhẹ............. 27
Bảng 2. 3: Một số thông số của một số hệ mật mã nhẹ trong triển khai ............. 32
Bảng 2. 4: Một số hệ mật mã khối hạng nhẹ ...................................................... 34
Bảng 2. 5: Thay thế s-hộp của PRESENT ......................................................... 44
Bảng 2. 6: Bảng lớp hoán vị của PRESENT ...................................................... 45

iv


DANH MỤC HÌNH VẼ
Hình 1.1: Các ứng dụng của hệ thống nhúng ....................................................... 2
Hình 1.2: Lịch sử phát triển của hệ thống nhúng ................................................. 3
Hình 1.3: Cấu trúc nguyên lý của vi xử lý / vi điều khiển nhúng ......................... 6
Hình 1.4: Cấu trúc bộ nhớ Von Neumann và Havard .......................................... 7
Hình 1.5: Sơ đồ nguyên lý điển hình của một cổng I/O ....................................... 8
Hình 1.6: Mơ hình tổng qt hệ thống nhúng ...................................................... 9
Hình 1.7: Cách tiếp cận phần mềm nhúng an tồn ............................................. 10
Hình 1.8: Phương pháp đệm mã an tồn ............................................................ 11
Hình 1.9: Mơ hình kiến trúc máy tính tổng quát. Khả năng xảy ra lỗi được đánh
dấu bằng nhãn ................................................................................................... 12
Hình 2.1: Thuật tốn mã hóa đối xứng .............................................................. 21
Hình 2.2: Trao đổi khóa cơng khai .................................................................... 25
Hình 2.3: Ba ngun lý thiết kế thuật tốn mật mã hạng nhẹ ............................. 27
Hình 2.4: Các nguyên thủy mật mã hạng nhẹ .................................................... 29

Hình 2.5: Mơ hình mạng Feistel ........................................................................ 35
Hình 2.6: Mơ hình mạng Substitution -Permutation Network (SPN) ................. 37
Hình 2.7: Mơ tả sơ đồ thuật tốn mã hóa trong thuật tốn Present ..................... 38
Hình 2.8: Mơ tả sơ đồ thuật toán giải mã trong thuật toán Present ..................... 39
Hình 2.9: Sơ đồ thuật tốn mã hóa của PRESENT ............................................ 43
Hình 2.10: Sơ đồ thuật tốn giải mã của PRESENT .......................................... 47
Hình 3.1: Cài đặt gcc trong ubuntu .................................................................... 52
Hình 3.2: Kết quả cài đặt gcc trong ubuntu........................................................ 52
Hình 3.3: Các lệnh của vim ............................................................................... 53
Hình 3.4: Các cài đặt vim trong ubuntu ............................................................. 53
Hình 3.5: Kết quả cài đặt vim ............................................................................ 53
Hình 3.6: Cách cài đặt và kết quả cài đặt Make trong ubuntu ............................ 54
Hình 3.7: Cách chạy make................................................................................. 57
Hình 3.8: Kết quả chạy chương trình mã hóa/giải mã thuật tốn Present ........... 58

v


LỜI NĨI ĐẦU
Trong thế giới cơng nghệ hiện nay, sau trào lưu phát triển từ sau máy
tính lớn, PC và Internet thì hệ thống nhúng là làn sóng đổi mới thứ ba trong
công nghệ thông tin và truyền thông. Hệ thống nhúng ngày càng trở nên phức
tạp đáp ứng các yêu cầu khắt khe về thời gian thực, tiêu tốn ít năng lượng và
hoạt động với độ tin cậy và ổn định hơn. Mặc dù đã có những cải tiến mạnh mẽ
về công nghệ thiết kế cũng như kiến trúc tuy nhiên để giải quyết triệt để các
vấn đề mà hệ thống nhúng đang đối mặt về ràng buộc tài ngun như: khả năng
tính tốn, năng lượng tiêu hao, dung lượng bộ nhớ… đồng thời thỏa mãn yêu
cầu về bảo mật dữ liệu của hệ thống đang đặt ra một thách thức đối với các nhà
nghiên cứu cũng như thiết kế.
Mật mã hạng nhẹ nổi lên là một ứng viên phù hợp với các cài đặt trong

môi trường bị hạn chế này và cụ thể trong tiêu chuẩn ISO/IEC 29192-2 đã đưa
ra mật mã tiêu biểu cho các thiết bị có tài nguyên hạn chế là chuẩn mã khối
hạng nhẹ PRESENT.
Xuất phát từ thực tiễn, em chọn đề tài “Nghiên cứu thuật toán mật mã
hạng nhẹ PRESENT và để xuất ứng dụng bảo mật dữ liệu trong các hệ
thống nhúng ” làm đồ án tốt nghiệp.
Nội dung của đồ án sẽ được làm 03 chương như sau:
Chương 1: Tổng quan về hệ thống nhúng
Khái niệm về hệ thống nhúng, lịch sử phát triển, đặc điểm của hệ thống
nhúng, các thành phần cơ bản trong cấu trúc phần cứng hệ thống nhúng, mơ
hình tổng qt của một hệ thống nhúng, cách tiếp cận phần mềm và phần cứng
nhúng an toàn.
Chương 2: Thuật toán mật mã hạng nhẹ
Khái niệm cơ bản của mật mã hạng nhẹ, đặc điểm của mật mã hạng nhẹ,
phân loại của mật mã hạng nhẹ, nguyên lý thiết kế thuật toán mật mã hạng nhẹ,
các nguyên thủy mật mã hạng nhẹ, ứng dụng mật mã hạng nhẹ, ý tưởng thiết
kế thuật toán mã khối hạng nhẹ, một số hệ mật mã khối hạng nhẹ, vấn đề thiết
kế cho PRESENT, mơ tả thuật tốn mã hóa và giải mã của PRESENT.
Chương 3: Thực hiện mô phỏng thuật toán Present bảo mật dữ liệu
trong hệ thống nhúng
Trong chương này trình bày mơ tả u cầu của bài tốn, phương pháp
thực hiện và kết quả mã hóa và giải mã, các đánh giá và đề xuất.
1


CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG NHÚNG
1.1. Khái quát về hệ thống nhúng
1.1.1. Khái niệm về hệ thống nhúng
Hệ thống nhúng (Embedded System) là thuật ngữ chỉ một hệ thống có
khả năng tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên

dụng trong nhiều lĩnh vực cơng nghiệp, tự động hố điều khiển quan trọng và
truyền tin, hoạt động tự trị được nhúng vào trong một môi trường hay một hệ
thống khác quy mô phức tạp hơn.

Hình 1.1: Các ứng dụng của hệ thống nhúng
Vì hệ thống nhúng được thiết kế cho một số nhiệm vụ nhất định nên các
nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản
xuất, do đó các hệ thống nhúng thường được sản xuất hàng loạt với số lượng
lớn, đa dạng, phong phú về chủng loại. Xét về độ phức tạp, hệ thống nhúng có
thể đơn giản chỉ với một vi điều khiển hoặc rất phức tạp được cấu thành từ
nhiều đơn vị, các thiết bị ngoại vi và mạng lưới được thiết kế nằm trong một
lớp vỏ máy lớn.

2


Phân bố rộng rãi các ứng dụng của hệ thống nhúng trên thị trường được
mô tả trong bảng 1.1 sau đây:
Bảng 1.1: Các thị trường ứng dụng hệ thống nhúng
Điện tử tiêu dùng

Consumer Electronics
Control Systems
Automation

and

Industrial Hệ thống điều khiển và tự động
hóa cơng nghiệp


Bio-medical Systems

Hệ thống y tế sinh học

Field Instrumentation

Thiết bị đo lường

Handheld Computers

Máy tính cầm tay

Data Communication

Truyền thơng dữ liệu

Network Information Appliances

Thiết bị thông tin mạng

Telecommunications

Viễn thông

Wireless Communications

Truyền thông không dây

1.1.2. Lịch sử phát triển của hệ thống nhúng


1960: Máy tính dẫn đường
Apollo phát triển bởi Charles
Stark Draper có khả năng xử lý
mạnh mẽ

1970: bộ xử lý 8 bit
cho các chip nhớ
ngoài và hỗ trợ khác

1961: máy dẫn đường
Autonetics D-17 cho tên
lửa quân sự

Cuối 1980: Các hệ
thống nhúng trở nên phổ
biến trong hầu hết thiết
bị điện tử

Giữa 1980: sản xuất các
vi điều khiển và được
chấp nhận rộng rãi

1996: Minuteman II
dạng máy tính mới sử
dụng mạch tích hợp

Hình 1.2: Lịch sử phát triển của hệ thống nhúng
Hệ thống nhúng đầu tiên là Apollo Guidance Computer (Máy tính dẫn
đường Apollo) được phát triển bởi Charles Stark Draper tại phịng thí nghiệm
của trường đại học MIT. Hệ thống nhúng được sản xuất hàng loạt đầu tiên là

máy dẫn đường cho tên lửa quân sự Autonetics D-17 vào năm 1961, được xây
dựng sử dụng những bóng bán dẫn và một đĩa cứng để duy trì bộ nhớ. Khi
Minuteman II được đưa vào sản xuất năm 1996, D-17 đã được thay thế với một
máy tính mới sử dụng mạch tích hợp. Tính năng thiết kế chủ yếu của máy tính
Minuteman là đưa ra thuật tốn có thể lập trình lại sau đó hỗ trợ làm cho tên
3


lửa xác định mục tiêu chính xác hơn, và máy tính có thể kiểm tra tên lửa, giảm
trọng lượng của cáp điện và đầu nối điện.
Từ những ứng dụng đầu tiên vào những năm 1960, các hệ thống nhúng
đã giảm giá và phát triển mạnh mẽ về khả năng xử lý. Bộ vi xử lý đầu tiên
hướng đến người dùng là Intel 4004, được phát minh phục vụ máy tính điện tử
và những hệ thống nhỏ khác, tuy nhiên vẫn cần sử dụng các chip nhớ ngoài và
những hỗ trợ khác.
Vào những năm cuối 1970, những bộ xử lý 8 bit đã được sản xuất, tuy
nhiên nhìn chung chúng vẫn cần đến những chip nhớ bên ngoài.
Vào giữa thập niên 80, kỹ thuật mạch tích hợp đã đạt trình độ cao dẫn
đến nhiều thành phần có thể đưa vào một chip xử lý. Các bộ vi xử lý được gọi
là các vi điều khiển và được chấp nhận rộng rãi. Với giá thành thấp, các vi điều
khiển này trở nên hấp dẫn để xây dựng các hệ thống chuyên dụng. Đã có một
sự bùng nổ về số lượng các hệ thống nhúng trong tất cả các lĩnh vực thị trường
và số các nhà đầu tư sản xuất theo hướng này. Ví dụ, một số lượng lớn các chip
xử lý đặc biệt xuất hiện với nhiều giao diện lập trình hơn là kiểu song song
truyền thống để kết nối các vi xử lý.
Vào cuối những năm 80, các hệ thống nhúng đã trở nên phổ biến trong
hầu hết các thiết bị điện tử và khuynh hướng này vẫn còn tiếp tục cho đến nay.
Hiện nay hệ thống nhúng đã và đang từng bước phát triển ở Việt nam
thay cho các hệ thống vi xử lý trước đây. Hệ thống nhúng được ứng dụng rộng
rãi trong ngành điện tử, máy tính và viễn thông như các hệ thống điện thoại,

các máy đo, các hệ thống điều khiển tự động trong công nghiệp, thương mại và
ngân hàng. Có thể kể tới ứng dụng của hệ thống nhúng trong nhiều sản phẩm
gần gũi với cuộc sống con người như:
✓ Các hệ thống dẫn đường trong khơng lưu, hệ thống định vị tồn cầu, vệ
tinh.
✓ Các thiết bị gia dụng: tủ lạnh, lị vi sóng, lò nướng…
✓ Các thiết bị kết nối mạng: router, hub, gateway…
✓ Các thiết bị văn phòng: máy photocopy, máy fax, máy in, máy scan…
✓ Các thiết bị y tế: máy thẩm thấu, máy điều hòa nhịp tim…
✓ Các máy trả lời tự động
✓ Dây chuyền sản xuất tự động trong công nghiệp, robots.

4


1.2.3. Đặc điểm của hệ thống nhúng
Đặc điểm của các hệ thống nhúng là hoạt động ổn định và khả năng tự
động hố cao. Hệ thống nhúng thường có một số đặc điểm chung như sau:
• Được thiết kế thực hiện một số nhiệm vụ chun dụng chứ khơng phải
đóng vai trị là các hệ thống máy tính đa chức năng. Một số hệ thống đòi hỏi
ràng buộc về hoạt động trong thời gian thực để đảm bảo độ an tồn và tính ứng
dụng; một số hệ thống khơng địi hỏi hoặc ràng buộc chặt chẽ, cho phép đơn
giản hóa hệ thống phần cứng để giảm thiểu chi phí sản xuất.
• Một hệ thống nhúng thường khơng phải là một khối riêng biệt mà là một
hệ thống phức tạp nằm trong thiết bị mà nó điều khiển.
• Phần mềm được viết cho các hệ thống nhúng được gọi là firmware và
được lưu trữ trong các chip bộ nhớ ROM hoặc bộ nhớ flash. Phần mềm thường
chạy với tài nguyên phần cứng hạn chế: khơng có bàn phím, màn hình hoặc có
nhưng với kích thước nhỏ, dung lượng bộ nhớ thấp...
1.2.4. Các thành phần cơ bản trong cấu trúc phần cứng hệ thống nhúng

➢ Kiến trúc vi xử lý
Trong mục này giới thiệu ngắn gọn cấu trúc nguyên lý của các chip xử
lý nhúng ứng dụng trong các hệ thống nhúng hiện nay.
Sự phát triển nhanh chóng các chủng loại chip khả trình với mật độ tích
hợp cao đã và đang tác động đáng kể đến sự thay đổi trong thiết kế các nền tảng
phần cứng.
Thiết bị xử lý và điều khiển số trong thập kỷ gần đây đều có những đặc
điểm và phạm vi đối tượng ứng dụng và luôn không ngừng phát triển để đáp
ứng một cách tốt nhất cho các yêu cầu công nghệ. Chúng đang hướng tới tập
trung cho một thị trường công nghệ tiềm năng rộng lớn đó là các thiết bị xử lý
và điền khiển nhúng.
Có thể kể ra hàng loại các chip khả trình có thể sử dụng cho các bài tốn
thiết kế hệ thống nhúng như các họ vi xử lý/vi điều khiển nhúng
(Microprocessor/ Microcontroller), chip DSP (Digital Signal Processing), các
chip khả trình theo trường (FPD – Field Programmable Device). Khơng dễ
dàng tìm kiếm một chip xử lý điều khiển phù hợp cho ứng dụng khi bắt đầu
cơng việc thiết kế. Vì vậy cần phải có sự hiểu biết và phân biệt rõ về đặc điểm
và ứng dụng của chúng khi lựa chọn và thiết kế. Các thông tin liên quan như
nhà sản xuất cung cấp Chip, các kiến thức và công cụ phát triển kèm theo.
5


Hình 1.3: Cấu trúc nguyên lý của vi xử lý / vi điều khiển nhúng
Chip vi xử lý/vi điều khiển nhúng là một chủng loại điển hình và đang
được sử dụng phổ biến hiện này. Chúng được ra đời và sử dụng theo sự phát
triển của các chip xử lý ứng dụng cho máy tính.Vì đối tượng áp dụng là các
thiết bị nhúng nên cấu trúc cũng được thay đổi theo để đáp ứng các ứng dụng.
Hiện nay, các họ vi xử lý điều khiển của nhiều các nhà chế tạo cung cấp như
Intel, Atmel, Motorola, Infineon.... Về cấu trúc, chúng cũng tương tự như các
chip xử lý phát triển cho PC nhưng ở mức độ đơn giản hơn nhiều về công năng

và tài nguyên. Phổ biến vẫn là các chip có độ rộng bus dữ liệu là 8 bit, 16bit,
32bit. Về bản chất cấu trúc, chip vi điều khiển là chip vi xử lý được tích hợp
thêm các ngoại vi. Các ngoại vi thường là các khối chức năng ngoại vi thông
dụng như bộ định thời gian, bộ đếm, bộ chuyển đổi A/D, giao diện song song,
nối tiếp…Mức độ tích hợp ngoại vi cũng khác nhau tuỳ thuộc vào mục đích
ứng dụng sẽ có thể tìm được chip phù hợp. Thực tế với các ứng dụng yêu cầu
độ tích hợp cao thì sẽ sử dụng giải pháp tích hợp trên chip như NoC (Network
on Chip) hoặc SoC (System on Chip), nếu khơng thì hầu hết các chip đều cung
cấp giải pháp để mở rộng ngoại vi đáp ứng cho một số lượng ứng dụng rộng và
mềm dẻo.

6


✓ Bộ nhớ
• Kiến trúc bộ nhớ
Kiến trúc bộ nhớ hệ thống nhúng thường chia ra làm hai loại chính và
được áp dụng rộng rãi trong hầu hết các chip xử lý nhúng hiện nay là Von
Neumann và Havard. Trong kiến trúc Von Neumann không phân biệt vùng chứa
dữ liệu và mã chương trình. Cả chương trình và dữ liệu đều được truy nhập
theo cùng một đường. Điều này cho phép đưa dữ liệu vào vùng mã chương
trình ROM, và cũng có thể lưu mã chương trình vào vùng dữ liệu RAM và thực
thi trên đó.

Hình 1.4: Cấu trúc bộ nhớ Von Neumann và Havard
• Kiến trúc Havard
Kiến trúc Havard phân biệt vùng lưu mã chương trình và dữ liệu. Mã
chương trình chỉ có thể được lưu và thực hiện trong vùng chứa ROM và dữ liệu
cũng chỉ có thể lưu và trao đổi trong vùng RAM. Hầu hết các vi xử lý nhúng
ngày nay sử dụng kiến trúc bộ nhớ Havard hoặc kiến trúc Havard mở rộng (tức

là bộ nhớ chương trình và dữ liệu tách biệt nhưng vẫn cho phép khả năng hạn
chế để lấy dữ liệu ra từ vùng mã chương trình). Trong kiến trúc bộ nhớ Havard
mở rộng thường sử dụng một số lượng nhỏ các con trỏ để lấy dữ liệu từ vùng
mã chương trình theo cách nhúng vào trong các lệnh tức thời.
Ưu điểm nổi bật của cấu trúc bộ nhớ Havard so với kiến trúc Von
Neumann là có hai kênh tách biệt để truy nhập vào vùng bộ nhớ mã chương
7


trình và dữ liệu nhờ vậy mà mã chương trình và dữ liệu có thể được truy nhập
đồng thời và làm tăng tốc độ luồng trao đổi với bộ xử lý.
✓ Giao tiếp ngoại vi
Các cổng song song là một dạng giao diện vào ra đơn giản và phổ biến
nhất để kết nối thơng tin với ngoại vi. Có nhiều loại cấu trúc giao diện vật lý
điện tử từ dạng cổng vào ra đơn giản cực Collector TTL mở trong các ứng dụng
cổng máy in đến các loại cấu trúc giao diện cổng tốc độ cao như các chuẩn bus
IEEE-488 hay SCSI. Hầu hết các chip điều kiển nhúng có một vài cổng vào ra
song song khả trình (có thể cấu hình). Các giao diện đó phù hợp với các cổng
vào ra đơn giản như các khóa chuyển. Chúng cũng phù hợp trong các bài toán
phục vụ giao diện kết nối điều khiển và giám sát theo các giao diện như kiểu
rơ-le bán dẫn.
+v

I OH

Reslstor
Sources
Current

I OL


Output
Sinks
Current

In
Port
Pin
Out
NOMS FET

Hình 1.5: Sơ đồ nguyên lý điển hình của một cổng I/O

8


1.2.5. Mơ hình tổng qt của một hệ thống nhúng

Hình 1.6: Mơ hình tổng qt hệ thống nhúng


Các khối chức năng:
➢ Môi trường hoạt động: nơi sử dụng hệ thống nhúng.
➢ Chấp hành: là phân tích từ khóa các thiết bị như ghép nối ngoại vi tác
động lên chấp hành và tác động lên mơi trường hoạt động, sau đó


mơi trường hoạt động có quan hệ trở lại về chấp hành.
Cảm biến: thiết bị đặc biệt ghi nhận thông tin cơng nghệ (vị trí, vịng




quay, tốc độ, nhiệt độ, áp suất, kích thước (cao, dài, sâu…).
Ghép nối: là các thiết bị phối hợp, chuyển hóa các thơng tin từ cảm




biến thành tín hiệu điện để số hóa.
Các bộ chuyển đổi tương tự/số (A/D) và số/tương tự (D/A).
Ghép nối với các hệ thống khác: liên kết các hệ thống nhúng khác,
mạng dữ liệu, Trung tâm điều khiển SCADA, …



Ghép nối BUS hệ thống.



CPU: xử lý và phân tích dữ liệu, điều khiển các u cầu tính tốn từ
người dùng máy tính, tác động với RAM, NVM Anbedded Software.
RAM, ROM là bộ nhớ, lưu giữ các thông tin động và tĩnh cần thiết



cho quá trình CPU thực hiện điều khiển, xử lý dữ liệu.
9


1.2. An toàn cho hệ thống nhúng

1.2.1. Cách tiếp cận phần mềm nhúng an toàn
Phần mềm nhúng là một chương trình được viết, biên dịch trên máy tính
và nạp vào một hệ thống khác bao gồm một hoặc nhiều bộ vi xử lý đã được cài
sẵn một hệ điều hành, bộ nhớ ghi chép được, các cổng giao tiếp với các phần
cứng khác.... Phần mềm tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng.
Phần mềm nhúng ngày càng có tỷ lệ giá trị cao trong giá trị của các sản phẩm
nhúng.
Phần mềm nhúng an toàn SES (Safely Embedded Software) có thể thiết
lập an tồn độc lập của một đơn vị xử lý hoặc bộ nhớ cụ thể. Nó có thể phát
hiện ra các lỗi cố định, ví dụ, các lỗi trong đơn vị logic số học ALU (Arthimetic
Logic Unit) như lỗi lật bit và ảnh hưởng của lỗi lên dữ liệu và luồng dữ liệu.
SES chạy trên lớp phần mềm ứng dụng như được mô tả trong hình 1.7. Một số
nhiệm vụ ứng dụng phải được bảo vệ như ví dụ đánh giá dữ liệu chẩn đốn và
kiểm tra dữ liệu từ các cảm biến. Do các nguyên tắc cơ bản, SES không chỉ độc
lập với phần cứng mà còn của hệ điều hành.
Safely embedded software

Consistency check of
data from sensors

application

buffer/ cache/ registers
Memory (RAM, ROM, Flash,...)
.

A/D

.
memory areas

mapped with I/O

Sensors
other components.
e.g. microcontroller

A/D

Actuatore
other components.
e.g. microcontroller

Hình 1.7: Cách tiếp cận phần mềm nhúng an tồn
Hình 1.8 mơ tả phương pháp đệm mã an toàn như là một nguyên tắc cơ
bản của SES. Đệm mã an toàn là một thủ tục bổ sung một kênh phần mềm thứ
hai vào kênh phần mềm đã có.

10


Theo cách này, SES thêm kênh thứ hai của miền được chuyển đổi vào
kênh phần mềm của miền ban đầu. Trong các nút chuyên dụng của biểu đồ
luồng điều khiển, bổ sung vào chức năng so sánh. Mặc dù, kênh thứ hai bao
gồm dữ liệu, các tập lệnh khác nhau, bộ so sánh và chức năng giám sát. Bộ so
sánh hoặc bộ lựa chọn, tương ứng, trên cùng một ECU (Electronic Control
Unit) phải được bảo vệ với nhiều lựa chọn hoặc các kiểm tra khác nhau.
Không thể phát hiện lỗi về đặc tả phần mềm, thiết kế và thực thi phần
mềm bởi SES. Thông thường, loại lỗi này phải được phát hiện bằng phương
pháp đảm bảo chất lượng phần mềm trong quy trình phát triển phần mềm. Ngồi
ra, các kỹ thuật từ động phát hiện lỗi như lập trình phiên bản N có thể được sử

dụng với SES để phát hiện lỗi thiết kế phần mềm trong thời gian chạy hệ thống.
1st software channel (original domain)

memory
OP 1

OP 2

Variables
cóntants

Coded
Variables
memory

Coded
constants
memory

OP n

Comparator
units

Transform
(edit time)

OP 3

Coded

OP 1

Transform (runtime)
optional
Comp
Unit 1

Coded
OP 2

optional

optional

mandatory

Comp
Unit 2

Comp
Unit 3

Comp
Unit n

Coded
OP 3

Coded
OP n


2st software channel (original domain)

Hình 1.8: Phương pháp đệm mã an toàn
SES cũng là một cách tiếp cận độc lập với ngơn ngữ lập trình. Nó có thể
thực hiện bằng ngơn ngữ lập trình cấp thấp (assembler) cũng như ngơn ngữ lập
trình bậc trung hoặc cao như C. Khi thực thi ngơn ngữ bậc trung hoặc cao, trình
biên dịch phải được sử dụng mà khơng cần tối ưu hóa code. Một đánh giá mã
phải đảm bảo rằng hoặc không tối ưu trình biên dịch code cũng như loại bỏ các
tập lệnh khác nhau đã xảy ra. Về cơ bản, quy trình kiểm chứng dựa trên ngơn
ngữ lập trình assembler hoặc ngơn ngữ máy tương tự.

11


Các lỗi có thể phát hiện được bằng phần mềm nhúng an tồn

Hình 1.9: Mơ hình kiến trúc máy tính tổng quát. Khả năng xảy ra lỗi được
đánh dấu bằng nhãn
Trong hình 1.8, chức năng so sánh SES được giới thiệu. Có hai lựa chọn
thay thế cho vị trí của bộ so sánh SES. Nếu bộ so sánh cục bộ được sử dụng
trên cùng một ECU, bản thân bộ so sánh cũng phải được bảo vệ. Nếu một bộ
so sánh bổ sung trên một ECU từ xa được áp dụng, dự phịng phần cứng được
sử dụng hồn tồn, nhưng truyền thông bên trong ECU phải được bảo vệ bởi
một giao thức an toàn. Trong hệ thống FMEDA sau này, bổ sung thêm phản
ứng lỗi tích hợp có liên quan đến SES đang làm việc trên lớp phần mềm ứng
dụng.
Phản ứng lỗi trên lớp phần mềm ứng dụng phụ thuộc vào chức năng và
ràng buộc về mặt vật lý của hệ thống và ứng dụng được xét tới. Có nhiều lựa
chọn khác nhau để chọn một lỗi phản ứng. Chẳng hạn, các chiến lược phục hồi

lỗi, đạt được các chế độ giảm cấp, tắt các đường dẫn trong trường hợp hệ thống
khơng an tồn hoặc kích hoạt dự phịng lạnh trong trường hợp các kiến trúc
khơng hoạt động là có thể.
1.2.2. Cách tiếp cận phần cứng nhúng an toàn
Thiết bị nhúng an toàn ứng dụng cho thị trường di động, tài chính và máy
móc tự động… địi hỏi ngày càng nhiều tính năng bảo mật để chống lại các
12


cuộc tấn công hiện nay. Ở cấp độ phần mềm, các cuộc tấn công kênh kề như
tấn công thời gian (timing attack), tấn công năng lượng (Power Attacks), tấn
công điện từ trường (Electro-Magnetic Attacks) và tấn công tần số vô tuyến
(Radio Frequency Attacks) trên các thiết bị nhúng đã được mô tả trong vài năm
trước đây và nhiều biện pháp đối phó tồn diện đã được cơng bố và thực thi bởi
hầu hết các nhà sản xuất. Ở cấp độ phần cứng, vấn đề này lại hoàn toàn khác.
Các nhà sản xuất đã nhận thức được các vấn đề an tồn vật lý và tấn cơng xâm
lấn/kênh kề khá lâu, nhưng để bảo vệ các chip nhúng chống lại các cuộc tấn
cơng như vậy địi hỏi khá nhiều kiến thức kiến trúc và cần được giải quyết ở
cấp độ thiết kế.
Trong mục này, đồ án giới thiệu tổng quan về các tính năng bảo mật phần
cứng cho các thiết bị nhúng an tồn như thẻ thơng minh. Đầu tiên, mơ tả các
kỹ thuật và thiết bị tấn công phần cứng điển hình cần thiết cho kỹ thuật đảo
ngược bố trí chip và trích xuất bí mật nằm trên chip. Các bước chính trong các
cuộc tấn cơng xâm lấn là giải mã chip bằng cách khắc, thăm dị, tấn cơng sử
dụng chùm tia điện tử và tấn công chùm ion tập trung.
Một thực tế phổ biến khác giữa các nhà sản xuất chip là hướng tới các
giải pháp an toàn của hệ thống trên chip SoC (System on Chip) bằng cách thực
hiện các thuật tốn mã hóa trong phần cứng. Tất nhiên, một máy tăng tốc mật
mã với bộ nhớ nhúng lưu trữ và xử lý các khóa bí mật làm tăng mức độ bảo
mật của thiết bị bằng cách thực hiện các cuộc tấn cơng khó khăn hơn nhiều.

Tuy nhiên,"Giữ bí mật trong phần cứng" vẫn khơng đảm bảo rằng chúng được
an tồn! Ở giai đoạn nào đó đồng xử lý vẫn sẽ phải xử lý thơng tin bí mật "rõ
ràng". Nếu thơng tin này có thể được theo dõi một cách khơng xâm lấn sau đó
khả năng phục hồi chìa khóa vẫn có thể xảy ra.
1.2.2.1. Tấn cơng vật lý lên phần cứng an toàn
Các kỹ thuật xâm lấn
Các kỹ thuật chính được sử dụng cho các cuộc tấn cơng xâm lấn bao
gồm: khắc, thăm dị, tấn cơng sử dụng chùm tia điện tử và chùm ion tập trung.
• Loại bỏ chip bằng phương pháp khắc cho phép hiển thị logic và bộ nhớ
cứng của Chip. Phương pháp khắc khô liên quan tới loại bỏ vật liệu bán dẫn
bằng cách cho các ion bắn phá làm lộ ra một phần của bề mặt vật liệu. Khắc
ướt là phương pháp loại bỏ bề mặt vật liệu bằng cách ngâm wafer vào bồn nước

13


lỏng có chứa các chất hóa học. Cả hai kỹ thuật có thể được áp dụng để đạt được
độ phơi sáng cần thiết.
• Phương pháp thăm dị u cầu thiết lập với các đầu dò siêu nhỏ hoặc
đầu kim siêu mỏng được gắn vào một ô nhớ hoặc đường bus mục tiêu và cho
phép đọc các chuyển đổi trên bus hoặc nội dung của vị trí bộ nhớ cụ thể trên
chip. Thơng thường có 5 hoặc 7 đầu dị được vận hành đồng thời trên cùng một
chip mà không làm phá hủy chức năng của chip. Một cách khác để thăm dò là
sử dụng chùm tia điện tử kết hợp với máy dò đo các electron thứ cấp phản xạ
khi chip bị bắn phá bằng electron và do đó cho phép đo đạc nếu bus mang theo
giá trị 1 hoặc 0.
• Các chùm ion tập trung thường bắn phá một chip bị phơi sáng và được
sử dụng để khoan lỗ vào một số vị trí cụ thể để cắt các rãnh hoặc ngắt kết nối
các dây dẫn cứng. Cách này cho phép vơ hiệu hóa các phần chức năng của chip,
chẳng hạn như bộ tạo số ngẫu nhiên hoặc cảm biến an ninh làm cho chúng

ngừng hoạt động. Các chùm ion tập trung cũng có thể chèn vật liệu mới để kết
nối các rãnh và tạo ra các liên kết mới chưa có trước đây.
Một kiểu tấn cơng khác bao gồm các cuộc tấn công xâm lấn nhằm tạo ra
lỗi tính tốn nhất thời trong thời gian thực thi. Những lỗi này sau đó cho phép
khơi phục bí mật bằng các phương pháp phân tích mật mã ngoại tuyến. Các
thiết bị điển hình cho các cuộc tấn cơng lỗi như vậy bao gồm laser, máy Xquang hoặc các tia sáng trắng đơn với các bước sóng khác nhau chiếu lên bề
mặt chip và đôi khi tạo ra hiệu quả mong muốn. Lỗi cũng có thể là hậu quả của
sự tăng vọt điện áp cung cấp hoặc áp lực môi trường khác lên trên chip.
Biện pháp đối phó
Khi các cuộc tấn công và các mối đe dọa đang được công bố, các nhà sản
xuất liên tục bổ sung các tính năng bảo mật phần cứng mới trên các sản phẩm
của mình. Mặc dù hầu hết các nhà sản xuất không công bố thiết kế của họ và
giữ các tính năng bảo mật ở chế độ riêng tư, phần này sẽ cung cấp một số thông
tin cơ bản về phương pháp đối phó và nguyên tắc thiết kế silicon bảo mật.
- Cảm biến bảo mật phần cứng phát hiện các điều kiện môi trường bất
thường như nhiệt độ vượt trội, tăng đột ngột tần số xung nhịp hoặc điện áp cung
cấp từ bên ngoài. Cảm biến này đồng thời cũng phát hiện khi chip được chiếu
sáng bằng ánh sáng trắng, tia cực tím hoặc tia X và thực thi các hành động đối

14


phó như tắt chip hoặc buộc nó phải khởi động lại và xóa tất cả dữ liệu nhạy
cảm. Điều này đặc biệt phù hợp với các cuộc tấn công lỗi do áp lực bên ngoài.
- Cách ly xung nhịp bên trong khỏi nguồn cung cấp xung nhịp từ bên ngoài
để không cho phép sự thay đổi đột ngột xung một cách ngẫu nhiên, do đó ngăn
chặn các cuộc tấn cơng lỗi trên bản thân xung nhịp.
- Sử dụng tấm chắn hoặc lưới điện bảo vệ được đặt trên đỉnh của chip để
bảo vệ chống lại khả năng loại bỏ vật lý lớp thụ động nhằm chống lại các cuộc
tấn công xâm lấn

- Trải đều các khối bộ nhớ và các khối chức năng logic khác nhau trên khắp
bề mặt chip dán sao cho không thể dễ dàng thiết kế ngược lại cách bố trí chip.
- Bảo vệ dữ liệu động và xáo trộn địa chỉ bảo vệ chống lại tấn cơng thăm dị
tới từng ROM, RAM hoặc các ơ nhớ EEPROM hoặc các bus dữ liệu ngoài.
Thực tế là, ngay cả khi thăm dị thành cơng, kẻ tấn cơng khơng biết anh ta đang
nhìn thấy gì. Thuật tốn xáo trộn vẫn đang sử dụng hầu hết các hoạt động tuyến
tính, vì chúng cần được gắn chặt vào chip, nhưng có rất ít cặp đầu vào-đầu ra
của văn bản có sẵn cho kẻ tấn cơng theo khía cạnh phân tích mật mã do đó vẫn
có thể vẫn thích hợp để bảo vệ cho các thế hệ chip hiện tại.
- Để bảo vệ tốt hơn nữa trước các cuộc tấn công thăm dò, các bus dữ liệu
tốt nhất được giấu dưới một số các lớp kim loại độc lập và thang đo Subicron
được sử dụng bất cứ khi nào có thể.
- Bộ nhớ flash mới nhất cung cấp rào cản công nghệ bổ sung theo nghĩa là
chặt chẽ hơn (từ công nghệ 90 nm xuống tới 65nm) so với các loại bộ nhớ khác
và do đó khó có khả năng đọc ra dữ liệu. Đánh giá sơ bộ về những bộ nhớ flash
như vậy cho thấy các cuộc tấn công xâm lấn đang ngày càng khó thiết lập và
các phương pháp tấn công hiện tại về cơ bản vẫn không hiệu quả.
1.2.2.2. Bộ đồng xử lý mật mã và hệ thống trên chip SoC
Thực hiện thuật tốn mã hóa trên SoC dẫn đến kết quả là một hộp đen có
một số tính chất vật lý có thể quan sát được như năng lượng tiêu thụ, bức xạ
điện từ, thời gian cần thiết để hồn thành một phép tính tốn ... Thơng tin kênh
kề này có thể được đo khi thiết bị xử lý thơng tin bí mật và các phép đo có thể
được sử dụng để tấn cơng khóa bí mật.
Tấn cơng vào bộ đồng xử lý khóa cơng khai
Cơng bố của Paul Kocher [18] có sức ảnh hưởng lớn vì lần đầu tiên trình
bày một cuộc tấn cơng thực tế sử dụng thông tin kênh kề nhằm xác định một
15


phần của khóa mật mã. Trong tấn cơng này "bằng cách cẩn thận đo lượng thời

gian cần thiết cho các phép tính tốn riêng rẽ", các bit của khóa được khám phá
bằng thực nghiệm. Cuộc tấn công dựa trên thực tế là ALU trong bộ vi điều
khiển hiện đại được tối ưu hóa cho các phép tính bình phương và phép nhân,
do đó các phép tính bình phương mất ít thời gian hơn nhiều so với các hoạt
động nhân. Hầu hết các sơ đồ mật mã khóa cơng khai dựa trên phép lũy thừa
mô đun và lũy thừa mô đun thơng thường sẽ sử dụng thuật tốn nhị phân qt
từng bit một và nếu bit được thiết lập bằng 0 sau đó chỉ thực hiện bình phương
mơ-đun, ngược lại thì phép bình phương được sinh ra bởi phép nhân. Vì phép
nhân tốn nhiều thời gian hơn phép bình phương, sai lệch thời gian quan sát cho
thấy các bit của khóa.
Các cuộc tấn cơng phân tích năng lượng vi sai DPA (Differential Power
Analysis) nhắm vào thời điểm thực hiện thuật toán cụ thể. Tất nhiên, chỉ có một
một phần nhỏ của khóa đang bị tấn cơng cùng một lúc, độ dài của khóa con bị
tấn cơng được chọn sao cho tồn tại số K có thể quản lý của các giá trị có thể
(hốn vị). Sử dụng mơ hình đơn giản của mạch (ví dụ: các mơ hình dựa trên
trọng số Hamming hoặc khoảng cách Hamming), cho mọi giá trị có thể có từ
các mẫu K, S được xử lý (mơ phỏng) và tiêu thụ năng lượng giả thuyết được
tính tốn.
Tấn cơng vào bộ tăng tốc khóa bí mật
Vào năm 2004, một công bố học thuật đã mô tả một cuộc tấn công thực
nghiệm trên một thực thi ASIC của chuẩn mã hóa nâng cao AES được thiết kế
bởi các sinh viên tốt nghiệp. Cuộc tấn công đã khai thác một tính năng cụ thể
của bản thân đường dẫn dữ liệu, đây là nơi tối ưu hóa hiệu suất, kết quả của
phép khởi tạo mà 128 bit bản rõ XOR 128 bit khóa bí mật, sau đó được ghi vào
một thanh ghi tại sườn lên thứ hai của chu kỳ xung nhịp. Do đó, mức tiêu thụ
năng lượng của lõi AES trong thời gian hai chu kỳ đồng hồ đầu tiên được đo
đầy đủ vì những dữ liệu này chứa thơng tin liên quan trực tiếp đến khóa bị tấn
cơng. Ngay cả với đường dẫn dữ liệu -128 bit, kẻ tấn cơng có thể sử dụng thành
cơng các kỹ thuật "chia và xâm chiếm" bằng cách chỉ nhắm 8 bit mục tiêu đầu
tiên của khóa và giảm thiểu tác động của tín hiệu nguồn khơng liên quan đến 8

bit đầu tiên đó bằng cách chọn cẩn thận dữ liệu đầu vào và coi tín hiệu khơng
liên quan là nhiễu.

16


Tuy nhiên, một năm sau, một cuộc tấn công mạnh mẽ mới nhắm vào các
kết quả trung gian chỉ xuất hiện ở các đầu ra của cổng logic [20]. Phép thay thế
Byte (còn gọi là S-hộp) trong vòng đầu tiên của AES đã được chọn làm mục
tiêu lý tưởng của cuộc tấn cơng. Kết quả của S-hộp được tính tốn dựa trên một
byte của bản rõ (được điều khiển bởi kẻ tấn cơng) và một byte là khóa mật mã
và phép thay thế có một thuộc tính thú vị giúp thực hiện các cuộc tấn công
thống kê, cụ thể là thay đổi 1 bit trong đầu vào S-hộp dẫn đến các thay đổi xấp
xỉ một nửa số bit của đầu ra S-hộp. Tuy nhiên, bộ đồng xử lý AES bị tấn công
đã không ghi đầu ra lên các thanh ghi mà sử dụng trực tiếp làm đầu vào trong
các hoạt động tiếp theo. Vì thế, kết quả trung gian chỉ xuất hiện ở đầu ra của
cổng logic trong quá trình thực hiện S-hộp.
Các chuyển đổi xảy ra tại các cổng logic rất khó dự đốn bởi các cổng
logic có khả năng chuyển đổi nhiều lần đầu ra trong mỗi chu kỳ xung. Để đánh
giá mức tiêu thụ năng lượng của mạch tổ hợp, mô phỏng "hộp thủy tinh – glass
box" hoàn chỉnh dựa trên netlist dịch ngược của khu vực bị tấn công trên mạch
AES đã được tiến hành cho tất cả các chuyển tiếp đầu vào có thể có và với mỗi
mô phỏng, số lần chuyển đổi xuất hiện tại khu vực quan tâm được thực hiện
bằng một công cụ được phát triển đặc biệt. Số liệu thống kê tính trên các kết
quả này đã được sử dụng để dự đoán đầu ra các cổng logic của một mạch thực.
Mặc dù, giai đoạn tiền xử lý bao gồm thu nhận hàng triệu vết năng lượng để
thu thập số liệu thống kê, cuộc tấn công cuối cùng đã tiết lộ 8 bit của khóa chỉ
với 25.000 phép đo.
Biện pháp đối phó
Mặc dù các cuộc tấn cơng được mơ tả trong cả hai ví dụ trên khơng có

khả năng xảy ra trên thực địa, họ vẫn minh họa một nguyên lý quan trọng: các
biện pháp đối phó với mật mã khóa bí mật phải được tích hợp sẵn, khơng phải
tiện ích bổ sung. Danh sách đầy đủ bao gồm:
• Các biện pháp đối phó nhằm ngăn chặn kẻ tấn cơng dự đốn chính xác
thời gian khi dữ liệu nhất định được xử lý theo một cách nhất định. Chúng bao
gồm ngẫu nhiên hóa xung nhịp bên ngồi bằng cách bỏ qua hoặc thay thế bằng
cách sử dụng xung nhịp tự kích hoạt bên trong với điều chế tần số ngẫu nhiên
hoặc jitter xung nhịp. Ở cấp độ kiến trúc hệ thống, các mạch không tự đồng bộ
về thời gian được đề xuất cũng như các kỹ thuật tương tự như đọc đa luồng với
các chủ đề được chọn ngẫu nhiên.
17


• Các biện pháp đối phó làm tăng tỷ lệ nhiễu trên tín hiệu của các phép
đo bởi sử dụng thanh ghi ngẫu nhiên và sạc trước mạng, đặt lại tên thanh ghi
ngẫu nhiên, chèn các thao tác trên dữ liệu ngẫu nhiên xen kẽ với các hoạt động
thực tế có hoặc khơng trùng lặp phần cứng và chỉ cần thêm một nguồn tiếng ồn
như LFSR
• Các biện pháp đối phó làm mất tín hiệu nguồn và dữ liệu được xử lý
bằng cách che giấu tất cả dữ liệu với các giá trị ngẫu nhiên. Một số phương án
mặt nạ thay thế đã được đề xuất cho AES, từ mặt nạ nhân cấp thuật toán đến
thay thế cấp độ cổng của mỗi cổng trong đường dẫn dữ liệu với "mặt nạ tương
đương", như trong lõi AES công nghiệp được công bố đầu tiên với mặt nạ cấp
cổng [21].
• Các biện pháp đối phó nhằm giảm tín hiệu xuống tỷ lệ nhiễu bằng cách
cân bằng công suất động tiêu tan trong khi xử lý số không và những người.
Những điều này thường dựa trên phi tiêu chuẩn các kiểu logic, như logic kép
hoặc động, và yêu cầu thiết kế tùy chỉnh đầy đủ.
1.3. Kết luận chương 1
Nghiên cứu tìm hiểu về hệ thống nhúng lên phần mềm và phần cứng an

toán cần thiết đối với trong lĩnh vực bảo mật và an tồn thơng tin. Trên thế giới
đã có nhiều trường đại học và tổ chức nghiên cứu và đưa ra các giải pháp cũng
như thiết bị cho lĩnh vực này. Tại Việt Nam đây là một lĩnh vực tương đối mới
và cần được sự quan tâm, đầu tư nghiên cứu trong thời gian tới.
Sau khi đã hiểu về hệ thống nhúng an toàn, trong chương tiếp theo của
đồ án sẽ đi sâu vào nghiên cứu với thuật toán mật mã hạng nhẹ, mật mã khối
hạng nhẹ, thuật toán PRESENT

18


CHƯƠNG 2: THUẬT TOÁN MẬT MÃ HẠNG NHẸ
Một xu hướng phát triển mới của ngành công nghệ thông tin ngày nay
là triển khai mở rộng các thiết bị tính tố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,
q trình triển khai như vậy rõ ràng sẽ mang lại một loạt các nguy cơ mất an
tồn. Vì vậy, cần có các giải pháp mật mã khi triển khai trên các thiết bị này.
Chính sự phát triển của tính tốn khắp nơi mà người ta cần những thuật
tố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à và năng lực tính tốn ở mức độ thích hợp. Mật mã hạng nhẹ
hướng tới mục tiêu tạo ra các giải pháp cài đặt gọn nhẹ nhưng khơng làm giảm
q nhiều về tính an tồn.
2.1. Khái quát về mật mã hạng nhẹ
2.1.1. Một số khái niệm cơ bản
Trong phần tổng quan chung của tiêu chuẩn ISO/IEC 29192 đã đưa ra
khái niệm cơ bản về mật mã hạng nhẹ. Mật mã hạng nhẹ là một loại mật mã
dùng cho mục đích bảo mật, xác thực, nhận dạng và trao đổi khóa, phù hợp cài
đặt cho những mơi trường hạn chế về tài nguyên. Những hạn chế đó dựa trên
các đánh giá về diện tích chip (Chip Area), năng lượng tiêu thụ (Energy

Consumpiton), kích cỡ mã nguồn chương trình (Program Code Size) kích cỡ
RAM, băng thơng (Bandwidth) và thời gian thực thi (Execution Time). Như
vậy, sử dụng các thuật toán mã khối hạng nhẹ nhằm thỏa mãn phần nào những
hạn chế nêu trên là phù hợp và cần được quan tâm nghiên cứu. Mật mã hạng
nhẹ là một nhánh nghiên cứu con của mật mã, hướng tới mục tiêu tối ưu sự tinh
gọn của hệ mật để có thể cài đặt và chạy hiệu quả trên các thiết bị vô cùng nhỏ
bé và bị giới hạn bởi năng lượng tiêu thụ và khả năng lưu trữ. Ví dụ như các
thẻ chip, thẻ từ dùng gắn trên các bao bì sản phẩm hay có thể gắn vào bất cứ
vật nào muốn theo dõi.
Hiện nay, các hệ thống đánh giá mật mã hạng nhẹ vẫn đang trong q
trình hồn thiện. Năm 2015, Viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ
NIST đã bắt tay vào đánh giá và chuẩn hóa kỹ thuật mật mã hạng nhẹ.
2.1.2. Đặc điểm của mật mã hạng nhẹ
Thiết bị mục tiêu: Mật mã hạng nhẹ hướng đến một loạt các thiết bị khác
nhau có thể được thực hiện trên nhiều loại phần cứng và phần mềm. Trên những
19


×