ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ THỊ LEN
MẬT MÃ DÒNG TRONG MẬT MÃ NHẸ
VÀ TRIỂN VỌNG TRONG IoT
LUẬN VĂN THẠC SĨ
Ngành: Hệ thống thông tin
HÀ NỘI – 2017
ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LÊ THỊ LEN
MẬT MÃ DÒNG TRONG MẬT MÃ NHẸ
VÀ TRIỂN VỌNG TRONG IoT
Ngành: Hệ thống thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60480104
LUẬN VĂN THẠC SĨ
Ngành: Hệ thống thông tin
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Lê Phê Đô
TS. Phùng Văn Ổn
HÀ NỘI – 2017
TÓM TẮT
Tóm tắt: Cùng với sự phát triển của tính toán khắp nơi, các hệ thống vạn vật kết nối (Internet
of Things – IoT) ngày càng thu hút được sự quan tâm của các chuyên gia cũng như các nhà
ứng dụng. Vấn đề an ninh an toàn thông tin trong các hệ thống IoT với các thiết bị nhỏ gọn,
năng lực tính toán thấp, trở thành một chủ đề nóng hiện nay. Với khả năng tính toán nhanh, an
toàn và chi phí thực hiện thấp, mật mã nhẹ, tiêu biểu là mật mã dòng, là sự lựa chọn tối ưu
cho những thiết bị chuyên dụng của IoT. Luận văn nghiên cứu khả năng ứng dụng, điều kiện
áp dụng cũng như yêu cầu của một số giải thuật mật mã nhẹ, đề xuất phương án sử dụng mật
mã dòng trong mật mã nhẹ phù hợp với từng lớp bài toán cụ thể. Đi vào thực nghiệm luận văn
đề xuất sử dụng mã hóa đầu cuối với mật mã dòng Grain trong mật mã nhẹ và mã xác thực
thông báo với hàm băm nhẹ Keccak trên thiết bị Raspberry Pi để thu thập, điều khiển nhiệt
độ, độ ẩm, cửa ra vào trong một ngôi nhà – tiền đề cho những nghiên cứu về bảo mật trong
mô hình smart home nói riêng và các mô hình IoT nói chung.
Từ khóa: vạn vật kết nối, mật mã dòng, Grain, mật mã nhẹ, mã xác thực thông báo, mã hóa
đầu cuối, hàm băm Keccak.
ii
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn Khoa Công nghệ thông tin, Trường Đại học Công
nghệ đã tạo điều kiện, môi trường thuận lợi cho học viên trong quá trình học tập,
nghiên cứu và hoàn thành luận văn thạc sĩ.
Với lòng biết ơn sâu sắc nhất, tôi xin gửi đến tiến sĩ Lê Phê Đô, Trường Đại học
Công nghệ, ĐHQG Hà Nội, cùng tiến sĩ Phùng Văn Ổn, Văn phòng Chính phủ đã tận
tâm hướng dẫn tôi qua từng buổi học trên lớp cũng như các buổi nói chuyện, thảo luận
về đề tài nghiên cứu. Nếu không có sự định hướng, những lời dạy bảo của thầy thì luận
văn này của tôi rất khó có thể hoàn thiện được. Một lần nữa, tôi xin chân thành cảm ơn
thầy.
Tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới gia đình và các thầy, cô
trong Trường Đại học Công nghệ, ĐHQG Hà Nội, các anh chị trong nhóm Nghiên cứu
KH & CN Mật Mã UET-CRYPT, Trường Đại học Công nghệ – ĐHQG HN và bạn Đỗ
Công Thành – học viên cao học Trường Đại học Công nghệ khóa K23, những người
đã dạy dỗ, 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.
Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực chuyên sâu trong An toàn thông
tin, kiến thức của tôi còn hạn chế và còn nhiều bỡ ngỡ. Do vậy, không tránh khỏi
những thiếu sót trong luận văn. Tôi rất mong nhận được những ý kiến đóng góp quý
báu của thầy cô và các bạn để hoàn thiện luận văn hơn nữa.
Tôi xin chân thành cảm ơn.
iii
LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả đạt được trong luận văn này do tôi thực hiện dưới
sự hướng dẫn của Tiến sĩ Lê Phê Đô và Tiến sĩ Phùng Văn Ổn.
Tất cả các tham khảo từ những nghiên cứu liên quan đều được trích dẫn nguồn
gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong luận văn. Luận văn không
sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về mặt tài liệu
tham khảo. Các kết quả thực tế của luận văn đều được tiến hành thực nghiệm.
Nếu phát hiện có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm trước
hội đồng, cũng như kết quả luận văn tốt nghiệp của mình.
Hà Nội, ngày tháng năm ,
Học viên thực hiện
Lê Thị Len
iv
MỤC LỤC
LỜI CẢM ƠN
………………………………………………………………………………………………….. ii
LỜI CAM ĐOAN
……………………………………………………………………………………………. iii
MỤC LỤC ……………………………………………………………………………………………………… iv
DANH MỤC HÌNH VẼ ………………………………………………………………………………….. vii
DANH MỤC BẢNG BIỂU
………………………………………………………………………………. ix
DANH MỤC TỪ VIẾT TẮT ………………………………………………………………………………
x
MỞ ĐẦU ………………………………………………………………………………………………………….
1
Chương 1. MẬT MÃ DÒNG TRONG MẬT MÃ NHẸ ……………………………………….
4
1.1. Tổng quan về mật mã nhẹ ……………………………………………………………………….
4
1.1.1.
Một số khái niệm cơ bản …………………………………………………………………..
4
1.1.2.
Quá trình hình thành và phát triển của mật mã nhẹ ………………………………
6
1.1.3.
Nguyên lý thiết kế thuật toán mật mã nhẹ……………………………………………
6
1.1.4.
Các mật mã nhẹ nguyên thủy …………………………………………………………….
8
1.1.5.
Ứng dụng mật mã nhẹ trong IoT
………………………………………………………
13
1.2. Mật mã dòng trong mật mã nhẹ ……………………………………………………………..
14
1.2.1.
Khái niệm ……………………………………………………………………………………..
14
1.2.2.
Các thuật toán đặc trưng
………………………………………………………………….
17
1.2.3.
Triển vọng của mật mã dòng trong mật mã nhẹ trong IoT …………………..
20
Chương 2. HỌ GRAIN …………………………………………………………………………………..
22
2.1. Lịch sử
………………………………………………………………………………………………..
22
2.2. Mô tả Grain …………………………………………………………………………………………
22
2.2.1.
Grain V0
……………………………………………………………………………………….
22
2.2.2.
Grain V1
……………………………………………………………………………………….
24
2.2.3.
Grain 128
………………………………………………………………………………………
25
2.2.4.
Grain-128a
…………………………………………………………………………………….
26
2.2.5.
Tạo khóa
……………………………………………………………………………………….
27
v
2.3. Nguyên lý thiết kế ………………………………………………………………………………..
28
2.3.1.
Tiêu chuẩn thiết kế …………………………………………………………………………
28
2.3.2.
Tốc độ thực hiện
…………………………………………………………………………….
29
2.3.3.
Phức tạp phần cứng ………………………………………………………………………..
30
2.4. Một số cải tiến hệ mật Grain
………………………………………………………………….
30
2.5. Phân tích Grain…………………………………………………………………………………….
31
2.5.1.
So sánh các phiên bản trong họ Grain
……………………………………………….
31
2.5.2.
So sánh Grain với một số hệ mã hóa nhẹ khác …………………………………..
34
2.5.3.
Điểm yếu ………………………………………………………………………………………
37
Chương 3. MÃ HÓA GRAIN TRÊN THIẾT BỊ RASPBERRY
…………………………..
40
3.1. Mô tả bài toán ……………………………………………………………………………………..
40
3.2. Giải quyết bài toán ……………………………………………………………………………….
40
3.1.1.
Mã hóa đầu cuối …………………………………………………………………………….
41
3.1.2.
Mã xác thực thông báo ……………………………………………………………………
41
3.1.3.
Hàm băm Keccak …………………………………………………………………………..
43
3.1.4.
Tạo và trao đổi khóa
……………………………………………………………………….
46
3.1.5.
Mô hình mã hóa và xác thực ……………………………………………………………
47
3.3. Môi trường và dữ liệu thực nghiệm ………………………………………………………..
50
3.3.1.
Môi trường lập trình ……………………………………………………………………….
50
3.3.2.
Môi trường thực nghiệm …………………………………………………………………
50
3.3.3.
Thiết lập phần cứng
………………………………………………………………………..
50
3.4. Ứng dụng mã hóa đầu cuối và mã xác thực trong giải quyết bài toán
………….
53
3.5. Kịch bản thực nghiệm …………………………………………………………………………..
54
3.5.1.
Raspberry lấy dữ liệu từ các sensor và gửi đến client
………………………….
54
3.5.2.
Client gửi thông tin điều khiển đến Server ………………………………………..
54
3.5.3.
Tạo và trao đổi khóa giữa Server và Client
………………………………………..
55
3.6. Kết quả thu được
………………………………………………………………………………….
56
vi
3.7. Đánh giá ……………………………………………………………………………………………..
59
3.7.1.
Đánh giá an toàn
…………………………………………………………………………….
59
3.7.2.
Đánh giá hiệu năng
…………………………………………………………………………
60
3.7.3.
So sánh với các giải thuật khác ứng dụng trên Raspberry ……………………
61
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……………………………………………………………
62
TÀI LIỆU THAM KHẢO …………………………………………………………………………………
64
PHỤ LỤC ……………………………………………………………………………………………………….
67
A. RASPBERRY Pi …………………………………………………………………………………….
67
A.1. Raspberry là gì? ………………………………………………………………………………….
67
A.2. Phần cứng
…………………………………………………………………………………………..
68
A.3. Hệ điều hành và phần mềm
…………………………………………………………………..
69
A.4. Ưu nhược điểm của Raspbery
……………………………………………………………….
69
A5. Thông số kỹ thuật của thiết bị Raspberry được thực nghiệm trong luận văn
..
69
B. SHT11……………………………………………………………………………………………………
70
C. TIÊU CHUẨN CỦA MẬT MÃ NHẸ
………………………………………………………..
70
C.1. Tiêu chuẩn mã hóa ISO/IEC …………………………………………………………………
71
C.2. Tiêu chuẩn mã hóa khu vực ………………………………………………………………….
72
C.3. Giao thức truyền thông…………………………………………………………………………
72
C.4. Thư viện định hướng IoT ……………………………………………………………………..
72
D. MÃ NGUỒN ………………………………………………………………………………………….
73
D.1. Grain128.c
………………………………………………………………………………………….
73
D.2. ecrypt-sync.c ………………………………………………………………………………………
76
D.3. Ví dụ kết quả mã hóa và giải mã với Grain-128
………………………………………
76
vii
DANH MỤC HÌNH VẼ
Hình 1-1: Sơ đồ hệ mật mã
………………………………………………………………………………….
4
Hình 1-2: Mã hoá với hệ mật mã khóa đối xứng
…………………………………………………….
5
Hình 1-3: Mã hoá với hệ mật mã bất đối xứng ………………………………………………………
5
Hình 1-4: Số lượng mật mã nhẹ được phát triển bởi các nhà khoa học ……………………..
6
Hình 1-5: Ba nguyên lý thiết kế thuật toán mật mã nhẹ
…………………………………………..
6
Hình 1-6: Các nguyên thủy mật mã nhẹ
………………………………………………………………..
8
Hình 1-7: Ví dụ về FCSR ………………………………………………………………………………….
18
Hình 1-8: Kiến trúc của MICKEY ……………………………………………………………………..
19
Hình 1-9: Kiến trúc của SNOW 3G ……………………………………………………………………
20
Hình 1-10: Thiết kế của Trivium
………………………………………………………………………..
20
Hình 2-1: Kiến trúc của Grain ……………………………………………………………………………
23
Hình 2-2: Cơ chế xác thực của Grain-128a ………………………………………………………….
27
Hình 2-3: Quá trình tạo khóa của Grain ………………………………………………………………
28
Hình 2-4: Thuật toán Grain với tốc độ tăng gấp đôi ……………………………………………..
29
Hình 2-5: Lưu lượng tối đa của các mật mã dòng nhẹ với thiết kế 0.13 m Standard
Cell CMOS ……………………………………………………………………………………………………..
35
Hình 2-6: Hiệu suất của các giải thuật mật mã dòng nhẹ đối với mạng Wireless-LAN
10Mbps …………………………………………………………………………………………………………..
36
Hình 2-7: Hiệu suất cho ứng dụng RFID / WSN cấp thấp đồng hồ 100kHz …………….
36
Hình 2-8: Điểm yếu của giá trị IV trong Grain …………………………………………………….
38
Hình 3-1: Sơ đồ CBC-MAC [32] ……………………………………………………………………….
42
Hình 3-2: Sơ đồ HMAC [32]
……………………………………………………………………………..
42
Hình 3-3: Kiến trúc Keccak nối tiếp
……………………………………………………………………
45
Hình 3-4: Các vòng xử lý dữ liệu Keccak tuần tự
…………………………………………………
45
Hình 3-5: So sánh hiệu suất của Keccak triển khai song song và nối tiếp
………………..
46
Hình 3-6: So sánh hiệu suất giữa Keccak, MAME và SHA-1 ………………………………..
46
viii
Hình 3-7: Mô hình mã hóa và xác thực ……………………………………………………………….
48
Hình 3-8: Quá trình thực hiện
…………………………………………………………………………….
49
Hình 3-9: Thiết kế của SHT11 …………………………………………………………………………..
51
Hình 3-10: Kết nối của SHT11 và Raspberry ………………………………………………………
51
Hình 3-11: Kết nối giữa công tắc từ (magnetic switch) giả lập cửa ra vào và Raspberry
………………………………………………………………………………………………………………………
52
Hình 3-12: Kết nối giữa Raspberry và hệ thống đèn LED ……………………………………..
52
Hình 3-13: Mô hình ứng dụng
……………………………………………………………………………
53
Hình 3-14: Hình ảnh thực tế của Raspberry Pi cùng các cảm biến và đèn LED ……….
56
Hình 3-15: Giao diện chính của client
…………………………………………………………………
56
Hình 3-16: Màn hình tăng nhiệt độ …………………………………………………………………….
57
Hình 3-17: Giả lập Raspberry điều khiển tăng nhiệt độ qua đèn LED đỏ ………………..
57
Hình 3-18: Màn hình giảm nhiệt độ ……………………………………………………………………
58
Hình 3-19: Giả lập Raspberry điều khiển giảm nhiệt độ qua đèn LED xanh ……………
58
Hình 3-20: Màn hình mở cửa …………………………………………………………………………….
59
Hình 3-21: Giả lập Raspberry điều khiển mở cửa qua đèn LED vàng
……………………..
59
Hình 3-22: Hiệu năng thực hiện mã hóa ……………………………………………………………..
60
Hình 3-23: Hiệu năng thực hiện giải mã ……………………………………………………………..
60
ix
DANH MỤC BẢNG BIỂU
Bảng 1-1: Hiệu quả phần cứng của một số giải thuật mật mã nhẹ
…………………………….
7
Bảng 1-2: Một số thông số của một số hệ mật mã nhẹ trong triển khai
……………………
13
Bảng 1-3: Kết quả triển khai các thuật toán mã hóa nhẹ trên phần cứng (1) [17] ……..
15
Bảng 1-4: Kết quả triển khai các thuật toán mã hóa nhẹ trên phần cứng (2) …………….
16
Bảng 2-1: Số cổng của Grain đối với các chức năng khác nhau ……………………………..
30
Bảng 2-2: Số cổng và tốc độ của Grain với các giá trị t khá nhau …………………………..
30
Bảng 2-3: Độ dài khóa và IV của họ Grain ………………………………………………………….
31
Bảng 2-4: Hàm cập nhật của họ Grain ………………………………………………………………..
31
Bảng 2-5: Số cổng của họ Grain khi thực hiện với phần cứng ……………………………….
33
Bảng 2-6: Hiệu suất của họ Grain ………………………………………………………………………
33
Bảng 2-7: Khả năng ứng dụng của mật mã dòng nhẹ ……………………………………………
37
Bảng 3-1: So sánh Keccak với một vài ứng viên của SHA-3 …………………………………
44
Bảng 3-2: Đặc điểm kỹ thuật của SHT11
…………………………………………………………….
50
Bảng 3-3: So sánh Grain và một số hệ mã hóa nhẹ khác trên Raspberry …………………
61
x
DANH MỤC TỪ VIẾT TẮT
Ký hiệu
Dạng đầy đủ
IoT
Internet of Things – Vạn vật kết nối – Một kịch bản của thế
giới, khi mà mỗi đồ vật, con người được cung cấp một định
danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi
thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự
tương tác trực tiếp giữa người với người, hay người với máy
tính
NIST
(National Institute of Standards and Technology) Viện tiêu
chuẩn và Công nghệ của Mỹ
RFID
Radio Frequency Identification – Hệ thống nhận dạng bằng tần
số của sóng vô tuyến
SHT11
Cảm biến đo nhiệt độ và độ ẩm. Đây là dòng cảm biến (SHT10,
SHT11, SHT15, SHT75) chuyên dùng, có độ chính xác cao. Nó
được sử dụng rộng dãi trong công nghiệp và dân dụng.
HTML5
Một chuẩn mới và là thế hệ tiếp theo của ngôn ngữ đánh dấu
siêu văn bản – HyperText Markup Language explained (gọi tắt
là HTML)
NFSR
Nonlinear feedback shift register – Thanh ghi dịch hồi phi
tuyến – một thanh ghi dịch hồi với bit đầu vào là một hàm phi
tuyến tính của trạng thái trước đó của nó.
𝑟
𝑖+1(𝑏0, 𝑏1, 𝑏2, … , 𝑏𝑛−1) = 𝑟
𝑖(𝑏1, 𝑏2, … , 𝑓(𝑏0, 𝑏1, 𝑏2, … , 𝑏𝑛−1))
LFSR
Linear feedback shift register – Thanh ghi dịch hồi tuyến tính –
một thanh ghi dịch hồi với bit đầu vào là một hàm tuyến tính
của trạng thái trước đó của nó. Hàm tuyến tính được dùng phổ
biến nhất là XOR.
MAC
(Message authentication code) Mã xác thực thông báo
HMAC
(Hash Messasge Authentication Code) Mã xác thực thông báo
sử dụng hàm băm
CMAC
(Cipher Message Authentication Code) Mã xác thực thông báo
dựa trên mã hóa
GE
(Gate equivalence) Cổng tương đương – một đơn vị đo lường
cho phép xác định độ phức tạp độc lập về công nghệ sản xuất
của các mạch điện tử kỹ thuật số
1
MỞ ĐẦU
1.
Cơ sở khoa học và thực tiễn của đề tài:
Cùng với sự phát triển theo hàm số mũ của cuộc cách mạng công nghiệp lần thứ
4, vấn đề an ninh an toàn thông tin ngày càng được quan tâm và trở thành một trong
những ưu tiên hàng đầu trong nghiên cứu cũng như ứng dụng. Để đảm bảo sự an toàn,
bí mật cho thông tin, đa số các thiết bị thông tin hiện nay đã trang bị những phương
pháp phòng ngừa, bảo vệ hiệu quả. Tiêu biểu như các phương pháp mã hóa truyền
thống được triển khai phổ biến trên các thiết bị có cấu hình cao. Tuy nhiên, với những
thiết bị nhỏ, kích thước, năng lượng và khả năng tính toán hạn chế, việc sử dụng các
mã hóa truyền thống là không khả thi, cần có một giải thuật khác phù hợp hơn. Đây
chính là vùng đất vàng cho mật mã nhẹ phát triển.
Tùy từng yêu cầu bảo mật cụ thể của từng thiết bị mà chúng ta có thể áp dụng
các giải thuật mã hóa khác nhau để có thể cân đối giữa ba tiêu chí quan trọng của mật
mã nhẹ: độ an toàn, hiệu suất và giá thành. Luận văn nghiên cứu khả năng ứng dụng,
điều kiện áp dụng cũng như yêu cầu của một số giải thuật mã hóa nhẹ cụ thể, đề xuất
phương án sử dụng mật mã nhẹ, tiêu biểu là mật mã dòng phù hợp cho những thiết bị
nhỏ gọn, năng lực tính toán thấp, nhất là trong môi trường Internet of Thing (IoT).
Một trong những thiết bị nhỏ gọn có khả năng tính toán thấp nhưng lại có vai trò
quan trọng trong nhiều hệ thống IoT đó là Raspberry Pi [Phụ lục A]. Raspberry Pi là
một vi máy tính được phát triển bởi Raspberry Pi Foundation tại Anh. Phần cứng
Raspberry Pi có nhiều cấu hình khác nhau, dung lượng bộ nhớ và các thiết bị ngoại vi
khác nhau tùy từng phiên bản. Hiện nay, Raspberry Pi đang được sử dụng một cách
rộng rãi trong các ứng dụng IoT. Theo đánh giá từ các nhà nghiên cứu, Raspberry Pi là
một nền tảng phần cứng quan trọng để thực nghiệm cũng như ứng dụng cho các dự án
IoT.
Với các thiết bị IoT này, có một vài mối nguy hiểm cần được quan tâm như vấn
đề bảo mật. Vấn đề bảo mật trong một hệ thống IoT tiêu biểu hiện nay như smart
home cũng có nhiều tầng, nhiều mức độ. Kẻ tấn công có thể đánh cắp thông tin cũng
như chiếm quyền điều khiển đối với các sensor bằng việc can thiệp trực tiếp vào
đường truyền vật lý giữa các sensor với các thiết bị thu nhận, phân tích, điều khiển dữ
liệu như Raspberry Pi. Một cách tấn công khác, kẻ tấn công có thể tìm cách truy cập
trực tiếp vào thiết bị máy chủ, ra lệnh giả điều khiển các thiết bị cảm biến, các đồ
dùng, vật dụng trong nhà. Việc giao tiếp giữa các thiết bị giữa Raspberry và client side
(điện thoại di động, máy tính bảng, laptop…) sẽ không còn là an toàn khi một ai đó
xâm nhập vào hệ thống và lấy được các dữ liệu trên đường truyền dùng cho mục đích
xấu. Ở mức cao hơn một chút, kẻ tấn công có thể chiếm quyền kiểm soát client side để
trực tiếp điều khiển hệ thống smart home. Trong phạm vi nghiên cứu, luận văn chỉ tập
trung vào bài toán an toàn thông tin trong quá trình giao tiếp giữa thiết bị Raspberry Pi
2
với các client side. Luận văn nghiên cứu và đề xuất sử dụng mã hóa đầu cuối với mật
mã dòng trong mật mã nhẹ và mã xác thực thông báo trên thiết bị Raspberry Pi để thu
thập, điều khiển nhiệt độ, độ ẩm, cửa ra vào trong một ngôi nhà – tiền đề cho những
nghiên cứu về bảo mật trong mô hình smart home nói riêng và các mô hình IoT nói
chung.
2.
Nội dung của đề tài và các vấn đề cần giải quyết
2.1. Hướng nghiên cứu:
Nghiên cứu mật mã nhẹ, mật mã dòng trong mật mã nhẹ.
Khả năng ứng dụng mật mã dòng trong mật mã nhẹ trong IoT.
Đề xuất xây dựng kênh truyền tin an toàn bằng phương pháp mã hóa đầu cuối
sử dụng kỹ thuật mã hóa dòng Grain và xác thực thông báo với hàm băm
Keccak trên Raspberry PI để điều khiển nhiệt độ, độ ẩm, cửa ra vào trong một
ngôi nhà.
Đánh giá hiệu quả của việc sử dụng mật mã dòng trong mật mã nhẹ trên
Raspberry so với một số giải thuật mã hóa khác.
2.2. Nội dung nghiên cứu:
Ngoài phần mở đầu và kết luận, nội dung của luận văn được trình bày trong ba
chương:
Chương 1: Giới thiệu tổng quan về mật mã nhẹ, mật mã dòng trong mật mã nhẹ,
một số khái niệm quan trọng, tìm hiểu một số hệ mật mã dòng trong mật mã nhẹ phổ
biến hiện nay và lợi ích cũng như vấn đề gặp phải khi ứng dụng mật mã dòng trong
mật mã nhẹ trong thực tế mà tiêu biểu IoT.
Chương 2: Nghiên cứu và đánh giá về một họ hệ mật mã dòng tiêu biểu trong
mật mã nhẹ – Grain và khả năng ứng dụng mật mã dòng nhẹ Grain trong IoT.
Chương 3: Thực nghiệm áp dụng mã hóa đầu cuối với mật mã Grain và mã xác
thực thông báo với hàm băm nhẹ Keccak trong việc sử dụng thiết bị Rasberry để thu
thập dữ liệu từ cảm biến SHT11 dùng để đo nhiệt độ, độ ẩm của phòng làm việc; qua
đó trả lại thông tin cho người dùng thông qua giao diện Web HTML5. Người dùng có
thể điều khiển các thiết bị trong phòng để thay đổi nhiệt độ, độ ẩm. Đồng thời đánh giá
hiệu quả của việc sử dụng mật mã dòng trong mật mã nhẹ trên Raspberry so với một
số giải thuật mã hóa khác.
3
3.
Kết quả đạt được
Sau 6 tháng nghiên cứu, về lý thuyết, luận văn đã nghiên cứu, đánh giá được độ
an toàn, hiệu suất sử dụng của hệ mật mã Grain nói riêng và hệ mật mã dòng trong mật
mã nhẹ nói chung trong môi trường IoT. Về thực nghiệm, luận văn đã xây dựng thành
công kênh truyền tin an toàn bằng phương pháp mã hóa đầu cuối sử dụng kỹ thuật mã
hóa dòng Grain và xác thực thông báo với hàm băm Keccak trên Raspberry PI để điều
khiển nhiệt độ, độ ẩm, cửa ra vào trong một ngôi nhà. Từ đó có những số liệu thực tế
đánh giá hiệu quả, độ an toàn của mật mã dòng nhẹ Grain so với một số hệ mật mã nhẹ
khác.
4
Chương 1.
MẬT MÃ DÒNG TRONG MẬT MÃ NHẸ
1.1.
Tổng quan về mật mã nhẹ
1.1.1. Một số khái niệm cơ bản
1.1.1.1. Hệ mật mã
Hệ mật mã [17]: là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn các tính
chất sau:
• P (Plaintext) là tập hợp hữu hạn các bản rõ có thể.
• C (Ciphertext) là tập hợp hữu hạn các bản mã có thể.
• K (Key) là tập hợp các bản khoá có thể.
• E (Encrytion) là tập hợp các qui tắc mã hoá có thể.
• D (Decrytion) là tập hợp các qui tắc giải mã có thể.
EK(P) = C và DK(C) = P
Hình 1-1: Sơ đồ hệ mật mã
Những yêu cầu đối với hệ mật mã [18]
• Độ tin cậy: bằng việc sử dụng các kỹ thuật mã hóa khác nhau, hệ mật giúp che
giấu thông tin, đảm bảo sự bí mật cho các thông báo và dữ liệu được lưu trữ.
• Tính toàn vẹn: cung cấp cơ chế đảm bảo thông báo không bị thay đổi trong quá
trình truyền nhận.
• Tính không thể chối bỏ: có thể cung cấp một cách xác nhận rằng tài liệu đã đến
từ ai đó ngay cả khi họ cố gắng từ chối nó.
• Tính xác thực: xác thực nguồn gốc của một thông báo và của người đang đăng
nhập một hệ thống.
Ta có thể phân hệ mật mã thành hai loại dựa vào khóa:
• Hệ mật mã khóa đối xứng (Symmetric cryptosystem): là một hệ mật mã khá lâu
đời với khoá mã hoá có thể tính ra được khoá giải mã, hoặc khoá mã hoá và
khoá giải mã là giống nhau. Với hệ mật mã khóa đối xứng, người gửi và người
nhận phải thỏa thuận khóa bí mật trước khi thực hiện mã hóa. Độ an toàn của
Thuật toán
Mã hoá
Thuật toán
Giải mã
Bản mã
Bản rõ
Bản rõ
Khóa mã hóa
Khóa giải mã
Người gửi
Người nhận
5
thuật toán này phụ thuộc vào khoá. Nếu khóa bí mật bị tiết lộ thì bất kỳ ai cũng
có thể giải mã thông báo trong hệ thống mã hoá.
Hình 1-2: Mã hoá với hệ mật mã khóa đối xứng
• Hệ mật mã bất đối xứng (Asymmetric cryptosystem): Diffie và Hellman đã phát
minh ra hệ mã hoá công khai hay hệ mã hoá phi đối xứng từ những năm 1970.
Hệ mã hoá công khai khác biệt so với hệ mật mã đối xứng ở khóa mã hóa và
khóa giải mã. Khoá mã hoá (khóa công khai) hoàn toàn khác với khoá giải mã
(khóa bí mật). Đặc biệt, kẻ tấn công không thể tính toán được khóa giải mã kể
cả khi biết khóa mã hóa. Khóa mã hóa có thể công khai. Bất kỳ ai cũng có thể
sử dụng khoá công khai để mã hoá thông báo, nhưng chỉ người có khoá bí mật
thì mới có khả năng giải mã được thông điệp. Khoá công khai và bản mã đều có
thể gửi trên một kênh truyền không an toàn mà không làm mất độ an toàn của
hệ mật.
Hình 1-3: Mã hoá với hệ mật mã bất đối xứng
1.1.1.2. Khái niệm mật mã nhẹ
Hiện nay, chưa có một tổ chức nào đưa ra khái niệm chính xác hay định lượng cụ
thể về mật mã nhẹ. Vì vậy có rất nhiều phiên bản để định nghĩa mật mã nhẹ. Một trong
số đó là tiêu chuẩn ISO/IEC 29192-1 [1] đã đưa ra khái niệm cơ bản về mật mã nhẹ
trong phần tổng quan của tiêu chuẩn. Mật mã nhẹ là mật mã được 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
tài nguyên hạn chế. Trong ISO / IEC 29192, tính chất nhẹ được mô tả dựa trên nền
tảng cài đặt. Trong triển khai phần cứng, diện tích chip và năng lượng tiêu thụ là
những biện pháp quan trọng để đánh giá tính nhẹ của hệ mật. Trong triển khai phần
mềm thì kích thước mã nguồn, kích thước RAM lại là tiêu chí cho một hệ mật được
coi là nhẹ.
Bản rõ
Mã hoá
Giải mã
Bản rõ
Khoá
Bản mã
Bản rõ
Mã hoá
Giải mã
Bản rõ
Bản mã
Khoá giải
Khoá mã
6
1.1.2. Quá trình hình thành và phát triển của mật mã nhẹ
Mật mã nhẹ đã được nhiều nhà nghiên cứu tìm hiểu từ rất lâu, nhưng mãi đến
cách đây 13 năm mới có sự ra đời và áp dụng chính thức của những giải thuật mật mã
nhẹ đầu tiên: Grain và Trivium (2005), Present, DESL, DESXL (2007), KATAN
(2009) và Sprout (2015) … Ngày càng nhiều thuật toán mã hóa nhẹ được ra đời với
nhiều ứng dụng hữu ích [30].
Hình 1-4: Số lượng mật mã nhẹ được phát triển bởi các nhà khoa học
Bên cạnh đó mạng lưới vạn vật kết nối cũng chứa đựng nhiều yếu điểm – cơ hội
cho những kẻ tấn công thực hiện những hành động xấu. Nhất là trong những ứng dụng
yêu cầu độ an toàn cao như các ứng dụng quân sự, ngân hàng hay tự động hóa. Ngoài
những tấn công vào đường truyền vật lý, tính toán khắp nơi còn bị đe dọa bởi những
cuộc tấn công chiếm quyền kiểm soát, tấn công lấy dữ liệu trên đường truyền, …
Chính vì thế trong hệ thống tính toán khắp nơi, độ an toàn của hệ mật cần được quan
tâm xem xét.
1.1.3. Nguyên lý thiết kế thuật toán mật mã nhẹ
Nguyên lý thiết kế các thuật toán mật mã nhẹ là một bài toán chưa có lời giải
chính xác cho các thiết bị có tài nguyên hạn chế. Mật mã nhẹ cần đáp ứng được yêu
cầu “nhẹ” trong cài đặt nhưng mặt khác nó vẫn phải đảm bảo mức độ an toàn cần thiết
cho ứng dụng/phần cứng. Người thiết kế mật mã nhẹ phải thỏa hiệp, cân đối giữa ba
tiêu chí: độ an toàn, hiệu suất và chi phí cài đặt (Hình 1-5).
Hình 1-5: Ba nguyên lý thiết kế thuật toán mật mã nhẹ
7
Độ an toàn: Khi thiết kế bất kỳ một hệ mật nào, điều đầu tiên người thiết kế cần
quan tâm là độ an toàn của hệ mật. Độ an toàn có thể coi là một yếu tố sống còn của
một hệ mật. Với mật mã nhẹ, người thiết kế cần thiết kế một hệ mật “đủ an toàn” trong
điều kiện cho phép về chi phí và hiệu quả cài đặt. Dĩ nhiên độ an toàn của mật mã nhẹ
chỉ đạt đến một ngưỡng an toàn chấp nhận được nào đó trong một điều kiện cụ thể.
Hiệu quả 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 như: diện tích bề mặt, số chu kỳ xung nhịp, thời gian thực thi, thông
lượng, nguồn cung cấp, năng lượng, điện tích… Yêu cầu này liên quan mật thiết đến
chi phí cài đặt, hiệu suất và khả năng tính toán trên đường truyền. Độ đo cho tính hiệu
quả của phần cứng chính bằng tỷ lệ thông lượng và điện tích sử dụng của hệ mật mã
đó (Bảng 1-1)
Bảng 1-1: Hiệu quả phần cứng của một số giải thuật mật mã nhẹ
Mã pháp Số bits
khóa
Số bits
khối
Chu kỳ xung
nhịp trên một
khối
Thông lượng
ở 100MHz
(Kbps)
Xử lý
logic
(m)
Điện
tích
(GEs)
Mã khối
Present
80
64
32
200
0.18
1570
Hight
128
64
34
188
0.18
3048
mCrypton
96
64
13
492
0.13
2681
Mã dòng
Trivium
80
1
1
100
0.13
2599
Grain
80
1
1
100
0.13
1294
Giá thành của thuật toán: Thông thường các hệ mật mã nhẹ thường được áp
dụng trên một số lượng lớn các thiết bị như hệ thống IoT. Chính vì vậy giá thành của
thuật toán cũng đóng ý nghĩa quan trọng trong việc triển khai.
Một hệ mật tốt cần phải cân bằng giữa giá thành, hiệu suất và độ an toàn. Tuy
nhiên việc cân bằng cả 3 yếu tố này là một bài toán khó. Tùy từng điều kiện, yêu cầu
cụ thể, người thiết kế có thể cân đối nên ưu tiên khía cạnh nào hơn. Ví dụ như khi thực
hiện cài đặt bằng phần cứng có hiệu suất cao thì thường dẫn tới các yêu cầu cao về
điện tích, giá thành cao. Mặt khác, khi thiết kế các hệ mã ưu tiên độ an toàn trên một
thiết bị có phần cứng thấp thì hiệu suất có thể sẽ rất thấp.
8
1.1.4. Các mật mã nhẹ nguyên thủy
Theo nghiên cứu của ECRYPT1, mật mã nhẹ cũng có 4 loại mật mã nguyên thủy
tương tự với 4 loại của mật mã truyền thống. Đó là mã khối, mã dòng, mã xác thực
thông báo và hàm băm. Qua các hội nghị ECRYPT đã đề cập đến nhiều hệ mật như:
• Mã khối: HIGHT, KATAN/KTANTAN, DESL/DESX/DESXL, PRESENT,
PRINTCIHER, SEA, XTEA, LBlock, …
• Mã dòng: Grain, MICKER, TRIVIUM, F-FCSR-H, WG-7
• Mã xác thực thông báo: SQUASH
• Hàm băm: MAME, H-PRESENT / DM-PRESENT, Keccak, PHOTON,
QUARK hay Spongent …
Hình 1-6: Các nguyên thủy mật mã nhẹ
Bảng dưới mô tả một số thông số/ đặc điểm cũng như ưu, nhược điểm và ứng
dụng của một số hệ mật mã nhẹ nguyên thủy đã được ECRYPT đề cập.
1 ERCYPT là một mạng lưới nghiên cứu về mật mã nổi tiếng ở Châu Âu và được IST (Information
Societies Technology) tài trợ từ năm 2004. Mục tiêu của nó là tăng cường sự hợp tác của các nhà
nghiên cứu Châu Âu về an ninh thông tin, đặc biệt là trong kỹ thuật mật mã và kỹ thuật số.
Mật mã nhẹ
(Lightweight
cryptography)
Mã khối (Block
Cipher)
Mã dòng
(Stream Cipher)
Hàm băm
(Hash function)
Mã xác thực
thông báo
(MAC)
9
Loại mật
mã nhẹ
Hệ mật mã
Người thiết kế
Key
(bits)
Block /
IV (bits)
Đặc điểm
Ứng dụng
Mã khối
HIGHT
128
64
– 32 vòng lặp
– Sử dụng phép toán đơn giản như
XOR, mod 28 và dịch bits
– Có thể thực hiện với 3048 cổng,
công nghệ 0.25 m
Triển khai trên các
thiết bị hạn chế như
RFID hay các thiết
bị phổ biến khắp nơi
KATAN
/
KTANTAN
Chrstophe de Canniere,
Orr
Dunkelman
và
Miroslav Knezevic
80
32 / 48 /
64
– Kiến
trúc
của
KATAN
/
KTANTAN rất đơn giản. Bản rõ
được lưu bởi 2 thanh ghi. Trong
mỗi vòng, một số bit được lấy ra
và đưa vào hàm phi tuyến
Boolean, và LFRS 8 bits để mã
hóa.
DES,
DESL,
DESX
and
DESXL
56 / 184
64
– 16 vòng lặp
– DES sử dụng lặp lại một S-box
(6*4 bits) 8 lần
PRESENT
80 / 128
64
– Cấu trúc SPN với 31 vòng
– Mỗi vòng thực hiện phép cộng
XOR để đưa vào khóa vòng
– Tầng phi tuyến sử dụng một S-box
4 bits duy nhất được áp dụng 16
lần song song trong mỗi vòng
10
PRINTCIPHER
48 / 96
– PRINTCIPHER 48 sử dụng 48 bits
khóa bí mật và cộng thêm 32 bits
được sinh ra từ thuật toán mã hóa
sử dụng 16 S-box 3 bits
Sử dụng trong mạch
tích
hợp
in
ấn
(Integrated circuit –
IC-printing)
SEA
–
Scalable
Encryption
Algorithm
F.-X. Standaert, G. Piret,
N.
Gershenfeld,
J.-J.
Quisquater
8
48 / 96 /
144
– Thiết kế của SEA dựa trên một số
phép toán cơ bản: XOR, thay thế,
dịch trái, đảo bit, cộng mod 2b
phần mềm trong bộ
điều khiển, thẻ thông
minh hoặc bộ vi xử
lý
XTEA
David Wheeler và Roger
Needham
128
64
– Sử dụng 64 vòng lặp
LBlock
Wenling Wu and Lei
Zhang
80
64
– Nó sử dụng một cấu trúc Feistel
biến thể với 32 vòng lặp sử dụng 8
S-box 4 bits
Áp dụng trong các
nền tảng phần mềm
như vi điều khiển 8
bits
Mã dòng
Grain
Martin
Hell,
Thomas
Johansson
và
Willi
Meier năm 2004
64 / 80 /
128
64 / 96
– Mã dòng đồng bộ
– Dựa trên LFSR và NFSR
– Có thể triển khai song song
– Ưu việt cho phần cứng nhẹ
Ứng dụng sử dụng
WLAN, RFID/WSN
MICKEY v2
Steve
Babbage
và
Matthew
Dodd
năm
2005
80/ 128
0-80/ 0-
128
– MICKEY 2.0 có kích thước mạch
là 3,188 GE, hoạt động tối đa với
tần số 454,5 MHz, và thông lượng
454,5 Mbps
Sử dụng cho nền
tảng phần cứng với
tài nguyên giới hạn
Trivium
Christophe De Cannière
80
80
– Sử dụng 3 thanh ghi LFSR với
11
and Bart Preneel
thanh ghi đầu tiên sử dụng các “S-
box” (1×1) để tạo ra các bit của
keystream, sau đó ADD với hai
LFSR còn lại
F-FCSR-H
Thierry Berger, François
Arnault,
and
Cédric
Lauradoux
80/ 128
80/ 128
– Chu kỳ của thuật toán là log(n) – n
là tổng chiều dài thanh ghi
Mật mã dòng đầu
tiên sử dụng các
component FCSR
WG-7
Y. Luo, Q. Chai, G.
Gong và X. Lai năm
2010
80
81
– Thuật toán mã hóa dòng dựa trên
WG Stream Cipher
Ứng dụng trong thẻ
RFID và điện thoại
di động
Hàm
băm
MAME
Hirotaka Yoshida, Dai
Watanabe,
Katsuyuki
Okeya,
Jun
Kitahara,
Hongjun
Wu,
Ozgul
Kucuk, Bart Preneel năm
2007
96
256
– Các thao tác lôgic đơn giản và S-
box đã đem lại hiệu quả phần cứng
cho MAME: chỉ cần 8,1 Kgates
cho công nghệ 0,18 μm
Ứng dụng yêu cầu
phần cứng hạn chế
H-PRESENT /
DM-
PRESENT
Poschmann, Alex
80 / 128 – Hàm nén sử dụng mã khối
PRESENT
Sử dụng trong những
ứng dụng yêu cầu
hàm một chiều và 64
bits bảo mật
Keccak
Guido
Bertoni,
Joan
Daemen, Michaël Peeters
and Gilles Van Assche
256
– Với hiệu suất cao và sức đề kháng
tốt, Keccak đã được Viện Tiêu
chuẩn và Công nghệ (NIST) chọn
12
như một tiêu chuẩn mới của SHA-
3 vào tháng 10/2012
PHOTON
Jian
Guo,
Thomas
Peyrin,
and
Axel
Poschmann
– Một cách hoán vị ngẫu nhiên dựa
trên AES, sử dụng 12 lần lặp cho
mỗi chuỗi sự biến đổi thực hiện
trên một hình vuông Nibbles (4
bits)
QUARK
Jean-Philippe Aumasson,
Luca
Henzen,
Willi
Meier,
Maria
Naya-
Plasencia
136 /
176 /
256
– Một hoán vị phần cứng P-Sponge
sử dụng mã hóa KTANTAN và
KATAN cùng với phần cứng theo
định hướng của mã dòng Grain
Mã xác thực thông
báo (MAC), sinh số
giả ngẫu nhiên, mã
hóa dòng…
Spongent
Bogdanov, A., Knežević,
M., Leander, G., Toz, D.,
Varıcı,
K.,
&
Verbauwhede
88 / 128
/ 160 /
224 /
256
– Họ các hàm băm nhẹ
– Linh hoạt về mức độ tuần tự và tốc
độ, là một hàm băm với footprint
nhỏ nhất trong phần cứng được
công bố từ trước đến nay
Mã
xác
thực
thông
báo
SQUASH
Adi
Shamir
(RFID
Security
Workshop
2007)
– Sử dụng hàm tuyến tính dựa trên
thuật toán mã hóa khóa công khai
Rabin
Những báo cáo liên quan tới thuật toán mật mã đối xứng nhẹ cũng đã được trình bày trong hội nghị ECRYPT 2011 như: Mã khối
(PUFFIN, PUFFIN2, LBlock, Piccolo, TWINE) và Hàm băm (SPONGENT).
13
1.1.5. Ứng dụng mật mã nhẹ trong IoT
Các thuật toán mật mã nhẹ ra đời và phát triển nhằm đáp ứng một nhu cầu cụ thể
của một thiết bị hay một lớp bài toán nào đó. Chúng phù hợp với những ứng dụng,
thiết bị có cấu hình nhỏ gọn, tốc độ xử lý nhanh và nhiều phép tính trong một khoảng
thời gian cố định, yêu cầu bảo mật không quá cao. Bảng dưới mô tả một số thông số
của một số hệ mật mã nhẹ trong quá trình triển khai.
Bảng 1-2: Một số thông số của một số hệ mật mã nhẹ trong triển khai
Hệ mật
GE
Throughput 100KHz (Kbit/s)
Logic (m)
AES
2400
56.6
0.13
DES
2309
44.4
0.18
DESL
1848
44.4
0.18
DESXL
2168
44.4
0.18
PRESENT
1570
200
0.18
KATAN64
1054
25.1
0.13
Grain
1294
100
0.13
Trivium
2599
100
0.13
Sprout
813
100
0.18
Ta có thể thấy, hệ mật mã dòng trong mật mã nhẹ có thể thiết kế nhỏ gọn, yêu
cầu phần cứng ít hơn và tốc độ nhanh hơn hệ mật mã khối.
Với những thiết kế riêng của mình, mật mã nhẹ đem lại nhiều lợi ích đặc trưng
như:
Yêu cầu nguồn tài nguyên thấp, năng lượng tiêu thụ nhỏ, phù hợp với những
trang thiết bị cấu hình nhỏ. Vì các giải pháp trong mật mã nhẹ đều hướng
đến việc cài đặt gọn nhẹ trên những thiết bị có năng lực tính toán thấp hay
tài nguyên hạn chế.
Giá thành rẻ. Mật mã nhẹ thường được ứng dụng trong những thiết bị có
tính thâm nhập khắp nơi, cần phải triển khai hàng loạt trên hàng trăm, hàng
nghìn, thậm chí hàng tỉ thiết bị. Chính vì thế việc giảm giá thành của công
nghệ sử dụng được quan tâm hàng đầu.
Hoạt động rất nhanh, thực hiện đầy đủ và hiệu quả chức năng của nó.
Bên cạnh những lợi ích rất thực tế, mật mã nhẹ còn chứa đựng nhiều hiểm họa và
khó khăn trong quá trình áp dụng.
Độ an toàn của mật mã nhẹ không cao như những mật mã thông thường
khác, vì nó phải cân đối giữa hai yếu tố là tính an toàn và tính gọn nhẹ. Về
cơ bản mật mã nhẹ không phù hợp với những ứng dụng yêu cầu độ an toàn
cao như các ứng dụng quân sự, tài chính, …