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

Sử dụng thuật toán hạng nhẹ AEGIS, CLOC có xác thực để bảo mật dữ liệu camera trong điện thoại Android

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 (551.52 KB, 5 trang )

Thơng tin khoa học cơng nghệ

SỬ DỤNG THUẬT TỐN HẠNG NHẸ AEGIS, CLOC CÓ XÁC THỰC
ĐỂ BẢO MẬT DỮ LIỆU CAMERA TRONG ĐIỆN THOẠI ANDROID
Nguyễn Như Chiến*, Nguyễn Đức Công, Cầm Văn Dũng
Tóm tắt: Trong bài báo này, nhóm tác giả giới thiệu về ứng dụng camera trong điện
thoại android và hai thuật tốn có xác thực hạng nhẹ. Sau đó, nhóm tác giả xây dựng trình
ứng dụng bảo mật dữ liệu camera bằng việc thực thi thuật toán hạng nhẹ trên điện thoại
android từ việc định nghĩa hàm cập nhật trạng thái, quá trình khởi tạo, xử lý dữ liệu liên
kết, hàm mã hóa, q trình tạo thẻ xác thực, q trình mã hóa và xác thực tiếp theo là việc
thực hiện cài đặt thuật toán và tạo project, cuối cùng đưa ra kết quả minh chứng. Công bố
này hỗ trợ sử dụng thuật toán hạng nhẹ aegis, cloc có xác thực để bảo mật dữ liệu camera
trong điện thoại android.
Từ khóa: Hệ thống nhúng; Hệ mã có xác thực; AEGIS; CLOC.

1. GIỚI THIỆU
Trong thời đại công nghệ thông tin bùng nổ như hiện nay, bài toán bảo mật thông tin dữ liệu
người dùng ngày càng trở nên cần thiết và cấp bách. Bảo mật thơng tin thường địi hỏi đảm bảo
cả tính bí mật và xác thực. Có 2 cách tiếp cận để thực hiện điều này. Cách thứ nhất là mã hóa với
các thuật tốn mã khối hoặc mã dịng để đảm bảo tính bí mật và sử dụng các thuật tốn mã xác
thực thơng báo MAC (Message Authentication Code) để thực hiện xác thực. Cách tiếp cận thứ
hai là xây dựng các thuật tốn mã hóa có xác thực nhằm cung cấp tính bí mật, xác thực và tồn
vẹn cho thơng báo trong một bước duy nhất [1]. Cách tiếp cận này đang là hướng đi mới trong
khoa học mật mã.
Cùng với nhu cầu kết nối và trao đổi thông tin mạnh mẽ trên điện thoai thông minh, kéo theo
các hiểm họa về mất mát và rị rỉ thơng tin của người dùng. Đặc biệt, đối với các hệ điều hành
mã nguồn mở như Android [2], cho phép bên thứ ba có quyền sửa đổi mã nguồn theo yêu cầu
của họ. Bên cạnh đó, các ứng dụng di động (Apps) trao đổi dữ liệu nhạy cảm (thông tin cá nhân,
tài khoản email,…) với nhau ngày càng tăng, đã đặt ra yêu cầu phải bảo vệ những dữ liệu này
tránh các truy cập trái phép. Một trong số các giải pháp được sử dụng phổ biến nhất là mã hóa dữ
liệu. Hơn nữa, điện thoại thơng minh cũng phải đáp ứng được nhu cầu trao đổi thông tin với


những thiết bị IoT khác có tài nguyên hạn chế, đồng thời vẫn đảm bảo được độ an toàn cần thiết
cho kênh truyền [3]. Chính vì vậy, các thuật tốn mật mã hạng nhẹ có xác thực [4] là giải pháp
hợp lý cho yêu cầu này. Mật mã có xác thực (AE - authenticated encryption) hay hệ mật xác thực
kèm dữ liệu liên kết (AEAD - authenticated encryption with associated data) [6] là một dạng của
hệ mật khóa đối xứng đảm bảo tính bí mật, tồn vẹn và xác thực dữ liệu theo từng bước. Nhãn
xác thực này cho phép phát hiện các nỗ lực tấn công giả mạo. Trong bài báo này, sẽ thực hiện
nhúng và đánh giá hiệu suất của hệ mật AEGIS [5] và CLOC [7] thơng qua trình ứng dụng bảo
mật dữ liệu camera chạy trên điện thoại Android. Vì những lý do nêu trên mục đích của bài báo
này là đưa ra “sử dụng thuật tốn hạng nhẹ Aegis, Cloc có xác thực để bảo mật dữ liệu camera
trong điện thoại android”.
2. CAMERA TRONG ĐIỆN THOẠI ANDROID VÀ HỆ MÃ CÓ XÁC THỰC
Ứng dụng camera trong điện thoại Android
Hệ điều hành Android [10] bao gồm có các thành phần như hình dưới đây:
Các Apps (Facebook, Zalo,…) chạy trên hệ điều hành Android được cài đặt trên tầng ứng
dụng. Tầng này cung cấp các phần mềm có các chức năng mặc định của thiết bị Mobile, hỗ trợ
phát triển ứng dụng trên Eclipse IDE hoặc Android Studio IDE, và sử dụng ARM Emulator trên
QEMU (Quick EMUlator). Ứng dụng camera trong điện thoại Android có thể được hiểu là các

168

N. N. Chiến, N. Đ. Công, C. V. Dũng, “Sử dụng thuật toán … trong điện thoại Android.”


Thông tin khoa học công nghệ

ứng dụng liên quan đến chức năng camera của thiết bị Android, gồm cả ứng dụng máy ảnh được
tích hợp sẵn. Các ứng dụng camera trong điện thoại ngồi tính năng như lưu trữ dữ liệu, cịn có
chức năng trao đổi trực tiếp giữa các người dùng đảm bảo tính bí mật, xác thực và toàn vẹn là
chức năng cần thiết và chủ đạo của các ứng dụng camera.


Hình 1. Kiến trúc của hệ điều hành Android.
Hệ mã có xác thực Aegis và Cloc
Là hệ mật khóa đối xứng bảo đảm tính bí mật, tính tồn vẹn, và tính xác thực dữ liệu theo
từng bước. Trong đó, phép mã hóa sẽ được kết hợp với khối tạo nhãn, còn ở phép giải mã sẽ tiến
hành kiểm tra nhãn nhận được. Hệ mã có xác thực hạng nhẹ Aegis và Cloc được trình bày [8, 9].
3. THỰC NGHIỆM VÀ KIỂM CHỨNG KẾT QUẢ
3.1. Xây dựng trình ứng dụng bảo mật dữ liệu camera
Sử dụng Android Studio làm công cụ xây dựng ứng dụng. Android Studio là mơi trường phát
triển tích hợp (IDE) chính thức để phát triển ứng dụng Android, dựa trên IntelliJ IDEA. Android
Studio còn cung cấp nhiều tính năng hơn nữa để nâng cao năng suất của người lập trình khi xây
dựng các ứng dụng Android [2].
❖ Chuẩn bị cấu hình cài đặt:
- Phần cứng được thực thi trên điện thoại Huawei Nova 2i; Chip HiSilicon Kirin 659; Ram
4GB với hệ điều hành Android 8.0; Ngơn ngữ lập trình: Kotlin. Trong bài viết này nhóm tác giả
mơ tả AEGIS-128, với khóa 128 bit.
Định nghĩa hàm cập nhật trạng thái: Cập nhật 80 byte trạng thái 𝑆𝑖 với một khối thông báo
16 byte (mi) [5, 7]:
Thuật toán 1 (Hàm cập nhật trạng thái): - Input: S (State); - Ouput: S (New state)
Begin
1. S4  AESRound (S3 , S4 ); S3  AESRound (S2 , S3 ); S2  AESRound (S1 , S2 );

S1  AESRound (S0 , S1 ); S0  AESRound (S4 , S0 );
End

2. Return S

❖ Quá trình khởi tạo: Việc khởi tạo AEGIS-128 bao gồm nạp khóa và Nonce vào trạng thái S,
các bước được thực hiện như sau [5, 7]:
Thuật toán 2 (Quá trình khởi tạo): - Input: K (Key), N (Nonce); - Ouput: S
Tạp chí Nghiên cứu KH&CN quân sự, Số 75, 10 - 2021


169


Thông tin khoa học công nghệ

1. S  ( K , N , const );
2. for (i= 0; i<10; i++)
{StateUpdate (); K  K  N ; S0  K ; }
End
3. Return S
❖ Hàm mã hóa: Sau khi xử lý dữ liệu liên kết, tại mỗi bước của quá trình mã hóa, một khối
bản rõ 16 byte Pi được sử dụng để cập nhật trạng thái, và Pi được mã hóa thành Ci [5, 7].
Thuật tốn 3 (Hàm mã hóa): - Input: S, P (Plaintext); - Ouput: C
Begin

Begin

1. for (i=0; i+16<= Plen; i+=16){
2. Ci = S1  S4  (S2 & S3 ); S0  Pi  S0 ;
StateUpdate();}

End
3. Return C
❖ Quá trình tạo thẻ xác thực: Sau khi mã hóa tất cả các khối bản rõ, chúng ta tạo thẻ xác thực
bằng bảy bước khác. Độ dài của dữ liệu liên quan và độ dài của thông báo được sử dụng để
cập nhật trạng thái [5, 7].
Thuật toán 4 (Hàm tạo thẻ xác thực): - Input: S, ADlen, Plen; - Ouput: T
Begin


1. tmp  S3  ( ADlen || Plen); for (i=0;i<7;i++) {StateUpdate();

S0  tmp  S0 ; } S4  S4  S3  S2  S1  S0 ;
End

2. Return T

❖ Quá trình giải mã và xác thực: Quá trình giải mã, một khối bản mã 16 byte Ci được sử
dụng để cập nhật trạng thái, và Ci được giải mã thành Pi [5, 7].
Thuật toán 5 (Hàm giải mã): - Input: S, C (Ciphertext); - Ouput: P
Begin
1. for (i=0;i+16<=Plen;i+=16){
Pi  Ci  S1  S4  (S2 & S3 ); StateUpdate(); S0  S0  Pi ; }
End
2. Return P
3.2. Quá trình thực thi thuật toán
❖ Thực thi thuật toán trên điện thoại Android: Để phục vụ lệnh mã hóa, phương thức mã
hóa đã khai báo (AEGISEncryption) phải được tạo các như sau:
Thuật toán 6 (Mã hóa ảnh): - Input: K, N, AD, file.jpg; - Ouput: file.dat
Begin

1. P  File.dat (tobyte.array); Initialization(K, N);

ProcessAD(AD); C  Encryp ( P );
End
2. Return File.dat  C.
- Việc giải mã bắt đầu với việc khởi tạo và xử lý dữ liệu đã được xác thực. Q trình giải mã
hồn tất, khối 16 byte cuối cùng sẽ được cộng xor với nhãn xác thực T, quá trình diễn ra như sau:
Thuật toán 7 (Giải mã ảnh): - Input: K, N, AD, file.dat; - Ouput: file.jpg or False
Begin


1. C  File.dat (tobyte.array); Initialization(K,N);
ProcessAD(AD); P  Decryp (C );
T  Tag _ genration; Check  T  CPlen ;

End

170

2. If (Check == 0) Return File. jpg  P; Else Return False;

N. N. Chiến, N. Đ. Công, C. V. Dũng, “Sử dụng thuật toán … trong điện thoại Android.”


Thông tin khoa học công nghệ

Kết quả được hiển thị như hình 2. Hình 2 thể hiện dữ liệu sau khi qua giao diện app (hình 2a);
chọn camera API ứng dụng từ việc chấp nhận cấp quyền người dùng (hình 2b); khi chụp hình thu
được từ camera và mã hóa, sau đó file mã được lưu vào bộ nhớ dưới dạng file.dat (hình 2c); bản
mã thu được sau khi mã (hình 2d); quá trình giải mã sẽ được hiển thị trên ImageView và được
lưu lại trong đường dẫn lưu mặc định của ứng dụng (hình 2e). Tên các file mã/rõ được gắn thêm
tem thời gian để đảm bảo tính duy nhất cho mỗi tên file.

a)

c)
b)

d)
e)

Hình 2. Các trạng thái xử lý bảo mật dữ liệu camera trên điện thoại Android.
Dưới đây là bảng thống kê kết quả dung lượng bộ nhớ bị chiếm dụng của từng thuật toán khi
nhúng vào Javacard bảng 1 và bảng thời gian mã hóa các khối dữ liệu của Aegis và Cloc đo được
trên thiết bị Android bảng 2 và bảng 3.
Bảng 1. Thống kê kết quả dung lượng bộ nhớ bị chiếm dụng của từng thuật tốn.
Hệ mật
RAM (Byte)
EEPROM (Byte)
Kích thước hệ mật (Byte)
AEGIS
468
4176
12623
CLOC
832
1247
10149
Bảng 2. Thời gian mã hóa các khối dữ liệu của AEGIS.
Size (KB)
10
15
20
25
30
Time (ms)
37
60
71
77
108

Bảng 3. Thời gian mã hóa các dữ liệu của CLOC
Size (KB)
10
15
20
25
30
Time (ms)
47
72
88
118
126

Tạp chí Nghiên cứu KH&CN quân sự, Số 75, 10 - 2021

171


Thông tin khoa học công nghệ

4. KẾT LUẬN
Trong bối cảnh nhu cầu về mật mã hạng nhẹ ngày càng trở nên cần thiết cho sự phát triển của
IoT, cùng với việc xuất hiện những điểm yếu trong thuật toán AES-GCM, đòi hỏi sự ra đời của
các hệ mật mới nhằm giải quyết vấn đề này. Thông qua nghiên cứu và thực thi nhúng hai hệ mật
mã hạng nhẹ có xác thực: AEGIS và CLOC trong App bảo mật dữ liệu camera chạy trong điện
thoại Andoroi. Kết quả ban đầu cho thấy, App nhúng hai hệ mật này chạy thông suốt trong điều
kiện tuân thủ các cấu hình cài đặt.
Tiến hành đo và đánh giá hiệu quả của 2 thuật toán dựa vào thời gian thực thi, AEGIS vượt
trội về mặt tốc độ so với CLOC. Tuy nhiên, các thiết bị điện thoại thơng minh có cấu hình phần

cứng như hiện nay, các hệ mã xác thực hạng nhẹ chưa thực sự có nhiều ý nghĩa trong việc tối ưu
bộ nhớ, do kích thước bộ nhớ mà các thuật tốn sử dụng là không đáng kể so với tài nguyên của
thiết bị.
Trong tương lai, nhóm hướng đến xây dựng ứng dụng mã/giải mã thơng tin video chạy trên
nền tảng Android, đóng gói chương trình thành file *.apk cho phép cài đặt và bảo mật truyền
video theo thời gian thực giữa các điện thoại Android.
TÀI LIỆU THAM KHẢO
[1]. CAESAR: “Competition for Authenticated Encryption: Security, Applicability, and Robustness”.
/>[2]. John Wiley & Sons, “Java Programming for Android Developers for Dummies”, 2014.
[3]. Masanobu Katagi and Shiho Moriai, “Lightweight Cryptography for the Internet of Things”.
[4]. “Lightweight
Cryptography
Program
of
NIST”,
[Online].
Available:
/>[5]. Hongjun Wu, Bart Preneel, “AEGIS: A Fast Authenticated Encryption Algorithm”, 2016.
[6]. D. Bhattacharjee and A. Chattopadhyay, “Efficient Hardware Accelerator for AEGIS-128
Authenticated Encryption. International Conference on Information Security and Cryptology”, 2015.
[7]. Tetsu Iwata, Kazuhiko Minematsu, Jian Guo, and Sumio Morioka, “CLOC: Authenticated Encryption
for Short Input”, The Pre-proceedings of FSE 2014.
[8]. Đinh Tiến Thành, Nguyễn Đức Công, Nguyễn Như Chiến, “Một phương pháp tuyển chọn hệ mã có
xác thực hạng nhẹ dùng cho thẻ thơng minh”, Tạp chí nghiên cứu Khoa học và Công nghệ Quân sự,
Số 59 02/2019.
[9]. Nguyễn Như Chiến, “Hệ mật AEGIS, CLOC và thực thi hệ mật trên thẻ thơng minh”, Tạp chí An tồn
Thơng tin – Ban Cơ yếu Chính phủ, Tạp chí in số 2 Quý 3/2021.
[10]. a/p/kien-truc-cua-he-dieu-hanh-android-PaLGDYdaelX

ABSTRACT

USING LIGHTWEIGHT AUTHENTICATED ENCRYPTION ALGORITHM AEGIS, CLOC
TO ENCRYPT CAMERA DATA ON ANDROID PHONES
This paper addresses the camera application on Android phones and two lightweight
authenticated encryption algorithms. We construct an application to encrypt camera data
by implementing a lightweight algorithm on Android phones, includes the state update
function, the initialization, the authenticated data processing, the encryption, the
generation of the authentication tag and the decryption and verification. Then, we install
the algorithm and create a project, finally we present the experimental results. Our
contribution supports using the lightweight authenticated encryption algorithm AEGIS,
CLOC for the secure protection of camera data on Android phones.
Keywords: Embedded systems; Authenticated encryption algorithm; AEGIS; CLOC.

Nhận bài ngày 22 tháng 7 năm 2021
Hoàn thiện ngày 26 tháng 8 năm 2021
Chấp nhận đăng ngày 10 tháng 10 năm 2021

Địa chỉ: Học viện Kỹ thuật Mật mã – Ban Cơ yếu Chính phủ.
*Email:

172

N. N. Chiến, N. Đ. Công, C. V. Dũng, “Sử dụng thuật toán … trong điện thoại Android.”



×