intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Thực hiện thuật toán ChaCha20 - Poly1305 trên phần cứng ứng dụng bảo mật hệ thống IoT

Chia sẻ: Liễu Yêu Yêu | Ngày: | Loại File: PDF | Số trang:7

19
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài viết "Thực hiện thuật toán ChaCha20 - Poly1305 trên phần cứng ứng dụng bảo mật hệ thống IoT" thực hiện thuật toán ChaCha20 – Poly1305 trên phần cứng tăng cường ứng dụng bảo mật cho hệ thống IoT (Internet of Thing). Thuật toán này là một hệ mã xác thực dữ liệu liên kết (AEAD – Authenticated Encryption with Associated Data). Trong đó dữ liệu được mã hóa qua thuật toán ChaCha20 là một dạng mã hóa dòng, thuật toán này có nhiều hạn chế về yếu tố bảo mật và xác thực. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Thực hiện thuật toán ChaCha20 - Poly1305 trên phần cứng ứng dụng bảo mật hệ thống IoT

  1. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) Thực hiện thuật toán ChaCha20 - Poly1305 trên phần cứng ứng dụng bảo mật hệ thống IoT Nguyễn Tiến Đạt, Nguyễn Vũ Minh Thành, Đỗ Đức Phú, Nguyễn Văn Nhị, Lê Đức Hùng(*) Phòng thí nghiệm DESLAB Khoa Điện tử - Viễn Thông Trường Đại học Khoa học Tự nhiên – ĐHQG TP.HCM (*) Email: ldhung@hcmus.edu.vn Abstract— Trong bài báo này, nhóm tác giả thực hiện liệu gửi đến máy chủ bao gồm thông tin được mã hóa và thuật toán ChaCha20 – Poly1305 trên phần cứng tăng mã xác thực (MAC). Máy chủ nhận dữ liệu sẽ tiến hành cường ứng dụng bảo mật cho hệ thống IoT (Internet of xác thực thông tin, khi quá trình xác thực thành công Thing). Thuật toán này là một hệ mã xác thực dữ liệu liên máy chủ sẽ tiến hành mã hóa dữ liệu nhận được từ các kết (AEAD – Authenticated Encryption with Associated Data). Trong đó dữ liệu được mã hóa qua thuật toán node. Mô hình ứng dụng của thuật toán Chacha20- ChaCha20 là một dạng mã hóa dòng, thuật toán này có Poly1305 đề xuất được trình bày trong Hình 1. nhiều hạn chế về yếu tố bảo mật và xác thực. Thuật toán Poly1305 được dùng để tạo mã xác thực một lần, thuật toán này được tích hợp vào với mục đích khắc phục các điểm yếu về tính bảo mật và xác thực của thuật toán ChaCha20. Bài báo này trình bày quá trình hoạt động và kết quả của thuật toán ChaCha20 – Poly1305 tại các thiết bị mã hóa dữ liệu và các node trong hệ thống IoT trên vi điều khiển và ESP32. Máy chủ của hệ thống IoT sẽ xác thực dữ liệu và giải mã dữ liệu khi quá trình xác thực hoàn tất. Hình 1: Mô hình ứng dụng của thuật toán trong hệ thống IoT. Keywords- AEAD, ChaCha20, ChaCha20 – Poly1305, MQTT, Poly1305. II. THUẬT TOÁN CHACHA20 Thuật toán ChaCha20 là một thuật toán mã hóa dòng I. GIỚI THIỆU (stream cipher). Mô hình hoạt động của thuật toán này Trong những năm gần đây, các mô hình Internet of bao gồm bộ KSG – Key stream Generator) với ba ngõ Things (IoTs) đang trở nên phổ biến trong nhiều lĩnh vực vào là key (256-bit), “number used one” (192-bit) hay khác nhau tại Việt Nam. Vì thế các nhu cầu về bảo mật còn gọi là “nonce number” (192-bit) bao gồm các dữ dữ liệu cho các hệ thống IoT trở thành một đối tượng liệu ngẫu nhiên và “block number” (64-bit) được khởi nghiên cứu và phát triển, do các node trong hệ thống IoT tạo có dữ liệu là “00000001”. Ngoài ra có các hằng số được xây dựng trên các vi điều khiển vẫn còn nhiều hạn cố định (Cons) cùng với các dữ liệu trên được sắp xếp chế về hiệu năng nên các thuật toán được sử dụng trên theo bảng bên dưới, bảng này được gọi là “Cell”. các node phải phù hợp với hiệu năng của vi điều khiển. Bảng 1. Định dạng của một “Cell” Các node trong hệ thống IoT chưa được kết hợp các thuật toán bảo mật dữ liệu, hoặc các dữ liệu được mã hóa 61707865 3320646e 79622d32 6b206574 vẫn có thể bị tấn công xen giữa do chưa có xác thực trong key key key key quá trình trao đổi dữ liệu. Thuật toán ChaCha20- key key key key Poly1305 cung cấp tính năng mã hóa xác thực dữ liệu block nonce nonce nonce (AEAD) bằng cách sử dụng thuật toán mã hóa dòng Bộ KSG sẽ tạo ra các output key có 512-bit (k1, k2, (stream cipher) của thuật toán ChaCha20 để mã hóa dữ k3,…) để tiến hành mã hóa dữ liệu. Quá trình này là một liệu và kết hợp với thuật toán Poly1305 tạo mã xác thực vòng lặp 20 vòng thực hiện phép toán “Quarter Round”, cho tin nhắn (Authentication Message) [1, 2]. Thuật toán phép toán này được thực hiện như sau. này phù hợp khi được xây dựng trên vi điều khiển vì cơ QUARTERROUND(a, b, c, d) = bản cả hai thuật toán là ChaCha20 và Poly1305 là các += ; ^ = ; ≪ = 16 thuật toán mã hóa nhẹ. Nhận thấy điều này nhóm nghiên += ; ^ = ; ≪= 12 (1) cứu đã nghiên cứu và ứng dụng trên một hệ thống IoT += ; ^ = ; ≪ = 8 thực tế bao gồm các node và máy chủ (Server). Các node += ; ^ = ; ≪ = 7 trong hệ thống IoT giữ vai trò là bên gửi (Trasmitter), dữ ISBN 978-604-80-7468-5 453
  2. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) Trong đó, “+ ”là phép cộng các số theo modulo cụ thể hơn ta sẽ dựa vào Bảng 1 để thực hiện phép toán 2^32, “^” là phép XOR, “≪” là phép dịch trái. Các tham QUARTERROUND(0, 4, 8, 12) khi đó ta sẽ thực hiện số “a, b, c, d” là các vị trí của dữ liệu trong một “Cell”, phép toán nêu trên với các tham số là các giá trị tại các vị trí được đánh dấu “*” như Bảng 2 bên dưới: III. THUẬT TOÁN CHACHA20-POLY1305 Bảng 2. Đánh dấu số thứ tự trong phép toán Thuật toán Poly1305 được dùng tạo mã xác thực một QUARTERROUND lần, thuật toán lấy một khóa một lần duy nhất (One-time *Cons Cons Cons Cons key) có độ dài 32-bit và dữ liệu của một tin nhắn để tạo *key key key key mã xác thực cho tin nhắn đó. Chức năng này của *key key key key Poly1305 đã khắc phục được các hạn chế về tính bảo *block nonce nonce nonce mật và xác thực của thuật toán mã hóa dòng đơn giản là ChaCha20. Mô hình hoạt động của thuật toán Mỗi vòng thực hiện phép toán “Quarter Round” bao ChaCha20-Poly1305 được mô tả trong Hình 4 bên dưới gồm 4 vòng thực hiện theo cột và 4 vòng thực hiện theo như sau. đường chéo. Hình 2 định nghĩa các vị trí theo cột (bên trái) và đường chéo (bên phải), đồng thời là các bộ tham số đầu vào (a1, b1, c1, d1), (a2, b2, c2, d2), (a3, b3, c3, d3), (a4, b4, c4, d4) cho phép toán QUARTERROUND. Hình 2. Định nghĩa vị trí theo cột (bên trái) và đường chéo (bên phải). Từ phương trình (1), phép toán QUARTERROUND, và định nghĩa các cột như trong Hình 2, thì mỗi vòng trong quá trình tạo keystream có 8 bước sau đây: Hình 4. Mô hình hoạt động thuật toán ChaCha20- - QUARTERROUND(0, 4 , 8, 12) Poly1305. Dữ liệu đầu vào cho thuật toán Poly1305 gồm có - QUARTERROUND(1, 5 , 9, 13) One-time key (256-bit) được tách ra từ thuật toán - QUARTERROUND(2, 6 , 10, 14) ChaCha20, một chuỗi dữ liệu (Msg) được kết hợp từ dữ - QUARTERROUND(3, 7 , 11, 15) liệu liên kết (Associated Data) và dữ liệu mã hóa - QUARTERROUND(0, 5 , 10, 15) (Ciphertext) từ thuật toán ChaCha20. Chuỗi dữ liệu này - QUARTERROUND(1, 6 , 11, 12) có định dạng như sau: - QUARTERROUND(2, 7 , 8, 13) Bảng 3. Định dạng chuỗi dữ liệu đầu vào cho thuật - QUARTERROUND(3, 4 , 9, 14) toán Poly1305 Sau 20 vòng, ta có được một chuỗi output key 512- Associated Chuỗi dữ liệu liên kết được bit (k0, k1, k2…), khi nhận các dữ liệu đầu vào (m0, Data - AD thêm vào cho quá trình tạo mã m1, m2…) và để tạo ra các dữ liệu mã hóa (c0, c1, xác thực c2…), các output key được xor từng byte một với dữ pad(AD) Nếu độ dài chuỗi AD không là liệu ban đầu theo mô hình trong Hình 3 bên dưới. bội số của 16 thì sẽ thêm kí tư ‘0’ vào đuôi để độ dài là bội số của 16. Chuỗi pad sẽ chứa các kí tự ‘0’ Ciphertext - C Chuỗi dữ liệu đã được mã hóa bằng thuật toán ChaCha20 pad(C) Nếu độ dài chuỗi Ciphertext không là bội số của 16 thì sẽ thêm kí tư ‘0’ vào đuôi để độ dài là bội số của 16. Chuỗi pad sẽ chứa các kí tự ‘0’ len(AD) Độ dài của chuỗi AD Hình 3. Mô hình hoạt động thuật toán ChaCha20. len(C) Độ dài của chuỗi Ciphertext ISBN 978-604-80-7468-5 454
  3. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) Bên cạnh đó One-time Key (r,s) sẽ bao gồm 2 phần dữ liệu được tách ra đó sẽ được lưu vào chuỗi Block có là ‘r’ và ‘s’. Trong đó: định dạng như trong Hình 6. - s[0..15]: Là chuỗi khóa chứa 16-byte cuối của chuỗi khóa từ thuật toán ChaCha20. - r[0..15]: Là chuỗi khóa chứa 16-byte đầu của chuỗi khóa từ thuật toán ChaCha20. Khác với “s”, “r” phải sửa đổi hay được gọi là “kẹp” (clamp) theo định dạng như sau: Hình 6. Định dạng chuỗi Block. o 4-bit đầu của r[3], r[7], r[11] và r[15] phải Sau khi dùng chuỗi Block thực hiện các phép toán được xóa ( các phần tử “r” này sẽ thực hiện như Hình 5 với số vòng lặp tương ứng, ta sẽ cộng kết phép toán AND với chuỗi nhị phân quả của phép toán (2) cuối cùng được lưu tại “acc” với “1111”) khóa “s”. o 2-bit cuối của r[4], r[8] và r[12] phải được acc = acc + s (2) xóa ( các phần tử “r” này sẽ thực hiện phép Sau đó dữ liệu đầu ra Tag của thuật toán sẽ là 16- toán AND với chuỗi nhị phân “1111 byte cuối cùng được lưu tại “acc”. Từ các kết quả trên 1100”) MCU-ESP32 có một gói dữ liệu có định dạng dữ liệu Ngoài ra, trong thuật toán Poly1305 cần một hằng đầu ra củ thuật toán Chacha20-Poly1305 được trình bày số cố định trong quá trình thực hiện thuật toán là: như trong Hình 7 bên dưới. Ngõ ra hệ thống bao gồm =2 −5 dữ liệu đã được mã hóa (Cipher text), mã xác thực (Tag) =3 và header (giá trị có thể tùy chọn). và biến “acc” sẽ lưu lại kết quả của phép toán các dữ liệu khác modulo với P. Tổng quát quá trình tạo mã xác thực của thuật toán Poly1305 được biều diễn trong Hình 5 như sau: Hình 7. Định dạng dữ liệu đầu ra của thuật toán ChaCha20 – Poly1305. IV. KẾT QUẢ Trong phần này, nhóm nghiên cứu tiến hành thực Hình 5. Quá trình tạo mã xác thực Tag. hiện thuật toán ChaCha20-Poly1305 trên một hệ thống IoT dùng vi điều khiển ESP32. Hệ thống IoT được xây Sau khi chuẩn bị chuỗi dữ liệu đầu vào (Msg) từ dữ dựng điều khiển hệ thống làm mát tự động tại các trạm liệu mã hóa thông qua thuật toán ChaCha20 và BTS (Base Tranceiver Station) [3, 4]. Các node tại trạm Associated Data, thuật toán sẽ tiến hành khởi tạo các dữ BTS sẽ trực tiếp điều khiển quá trình bật/tắt hệ thống liệu cần thiết sau: làm mát, bên cạnh đó đo các thông số nhiệt độ phòng, - r = clamp(ChaCha20_key[0..15]) dòng điện và điện thế hệ thống làm mát đang sử dụng. - s = ChaCha20_key[16..31] Sau đó, các node sẽ tiến hành mã hóa dữ liệu và tạo mã xác thực gửi đến máy chủ để xác thực và giải mã dữ liệu. - P= Nhóm nghiên cứu thực hiện thuật toán trên các gói 3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB dữ liệu thực tế có độ dài 130-byte với dữ liệu “Cell” và - acc = 0 “Keystream”. Các dữ liệu của “Cell” và “Keystream” Do dữ liệu đầu ra Tag là một chuỗi dữ liệu 16-byte, được trình bày trong Bảng 4. Kết quả thực hiện thuật ngắn hơn so với chuỗi dữ liệu đầu vào nên thuật toán sẽ toán ChaCha20-Poly1305 được thể hiện trong Bảng 5 thực hiện vòng lặp để tách dữ liệu từ chuỗi đầu, ở mỗi bao gồm Cipher text và Tag. Thời gian thực thi trên hệ vòng lặp sẽ tách 16-byte để thực hiện tính toán cho đến thống là 1865ms, đây là thời gian chấp nhận được khi byte cuối cùng. Khi tách ra khỏi chuỗi đầu vào, 16-byte thực hiện trên vi điều khiển và ESP32. ISBN 978-604-80-7468-5 455
  4. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) Bảng 4. Dữ liệu “Cell” và “Keystream” Cell: Cell: 61707865 3320646e 79622d32 6b206574 61707865 3320646e 79622d32 6b206574 564e5054 20506861 73652033 20536563 564e5054 20506861 73652033 20536563 72657420 6b657920 62792054 68616e68 72657420 6b657920 62792054 68616e68 00000001 63727965 7766656e 79622d32 00000001 63727965 7766656e 79622d32 Keystream: Keystream: 3dae9a13 eadae4d0 d60f0527 51c754fd 3dae9a13 eadae4d0 d60f0527 51c754fd e1858ae1 e313d7e9 35e55756 05a81e55 e1858ae1 e313d7e9 35e55756 05a81e55 46922cd2 455fd242 78b72f95 38717cc2 46922cd2 455fd242 78b72f95 38717cc2 8ee238c2 35204d4d 321e352a b4862c85 8ee238c2 35204d4d 321e352a b4862c85 Ciphertext: 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, Bảng 5. Bảng kết quả mã hóa dữ liệu thực tế 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, Plaintext: 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, {"devID":333,"voltage1":18,"voltage2":227,"curren 0x66, 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, t1":3840,"current2":22018,"temperature":6493, 0xb5, 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, "temperature_warning":0,"status":74} 0xf6, 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, Ciphertext: 0x2, 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, · ]¬LÓ¬w~
  5. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) 0x6c, 0x74, 0x61, 0x67, 0x65, 0x31, 0x22, 0x3a, 0xa9, 0x20, 0x55, 0x47, 0xd, 0x3d, 0xf7, 0x26, 0x30, 0x2c, 0x22, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x58, 0x9d, 0x3d, 0xa4, 0xd8, 0x1, 0x90, 0x65 0x67, 0x65, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, Running Time: 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x31, MCU – ESP32 = 3256 ms 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x63, 0x75, 0x72, Server = 145.82530212402344 ms 0x72, 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, Bảng 8: Kết quả từng bước thực hiện thuật toán 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x30, cho dữ liệu có độ dài 512-byte 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, Plaintext: 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x49, 0x44, 0x22, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x36, 0x3a, 0x33, 0x33, 0x33, 0x2c, 0x22, 0x76, 0x6f, 0x34, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x31, 0x22, 0x3a, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x32, 0x7d, 0x20, 0x30, 0x2c, 0x22, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 0x67, 0x65, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, Cell: 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x31, 61707865 3320646e 79622d32 6b206574 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x63, 0x75, 0x72, 564e5054 20506861 73652033 20536563 0x72, 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3a, 0x30, 72657420 6b657920 62792054 68616e68 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 00000001 63727965 7766656e 79622d32 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x30, Keystream: 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 3dae9a13 eadae4d0 d60f0527 51c754fd 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x61, e1858ae1 e313d7e9 35e55756 05a81e55 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x36, 46922cd2 455fd242 78b72f95 38717cc2 0x34, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 8ee238c2 35204d4d 321e352a b4862c85 0x73, 0x22, 0x3a, 0x32, 0x30, 0x32, 0x7d, 0x20, Ciphertext: 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x49, 0x44, 0x22, 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, 0x3a, 0x33, 0x33, 0x33, 0x2c, 0x22, 0x76, 0x6f, 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x31, 0x22, 0x3a, 0x66, 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, 0x30, 0x2c, 0x22, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0xb5, 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, 0x67, 0x65, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0xf6, 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x31, 0x2, 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x63, 0x75, 0x72, 0x50, 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x84, 0x3f, 0x72, 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3a, 0x30, 0xb8, 0xda, 0x58, 0xbd, 0x94, 0xbf, 0x98, 0x46, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x71, 0x7a, 0xa4, 0x98, 0x76, 0xfd, 0x61, 0xcd, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x30, 0xa8, 0xf1, 0x84, 0x84, 0xa7, 0x76, 0x91, 0x37, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x23, 0x90, 0x47, 0x30, 0x41, 0xdf, 0x64, 0xa0, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x42, 0xfb, 0x28, 0x25, 0xf0, 0x65, 0x73, 0xa1, 0x3, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x36, 0x95, 0xb, 0xb6, 0x1d, 0x5, 0x4d, 0xb1, 0x1a, 0xd8, 0x34, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0xbc, 0x7d, 0x7f, 0x5d, 0x15, 0xa, 0x15, 0x3e, 0x12, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x32, 0x7d, 0x20, 0xa5, 0xc, 0xa6, 0x94, 0x68, 0xb8, 0xca, 0x58, 0xa6, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xad, 0x9e, 0xc8, 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x7b, 0x22, 0x64, 0x65, 0x76, 0x49, 0x44, 0x22, 0x76, 0xb1, 0x3e, 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0x3a, 0x33, 0x33, 0x33, 0x2c, 0x22, 0x76, 0x6f, 0xe6, 0x31, 0xd9, 0x66, 0x7b, 0xc7, 0x43, 0x3a, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x31, 0x22, 0x3a, 0x72, 0xdc, 0x64, 0xb5, 0x49, 0xa0, 0x64, 0x78, 0x30, 0x2c, 0x22, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0xe2, 0x73, 0x67, 0xf6, 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x67, 0x65, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x5, 0x9, 0xe0, 0x2, 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x31, 0x47, 0x58, 0x50, 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x63, 0x75, 0x72, 0x84, 0x3f, 0xb8, 0xda, 0x58, 0xbd, 0x94, 0xbf, 0x72, 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3a, 0x30, 0x98, 0x46, 0x71, 0x7a, 0xa4, 0x98, 0x76, 0xfd, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0xcd, 0xa8, 0xf1, 0x84, 0x84, 0xa7, 0x76, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x30, 0x91, 0x37, 0x23, 0x90, 0x47, 0x30, 0x41, 0xdf, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x64, 0xa0, 0x42, 0xfb, 0x28, 0x25, 0xf0, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x73, 0xa1, 0x3, 0x95, 0xb, 0xb6, 0x1d, 0x5, 0x4d, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x36, 0xb1, 0x1a, 0xd8, 0xbc, 0x7d, 0x7f, 0x5d, 0x15, 0xa, 0x34, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x15, 0x3e, 0x12, 0xa5, 0xc, 0xa6, 0x94 0x73, 0x22, 0x3a, 0x32, 0x30, 0x32, 0x7d, 0x20, Tag: 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, ISBN 978-604-80-7468-5 457
  6. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) 0x7b, 0x22, 0x64, 0x65, 0x76, 0x49, 0x44, 0x22, 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, 0x3a, 0x33, 0x33, 0x33, 0x2c, 0x22, 0x76, 0x6f, 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x31, 0x22, 0x3a, 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, 0x66, 0x30, 0x2c, 0x22, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, 0xb5, 0x67, 0x65, 0x32, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, 0xf6, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x31, 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, 0x2, 0x22, 0x3a, 0x30, 0x2c, 0x22, 0x63, 0x75, 0x72, 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, 0x50, 0x72, 0x65, 0x6e, 0x74, 0x32, 0x22, 0x3a, 0x30, 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x84, 0x3f, 0xb8, 0xda, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x58, 0xbd, 0x94, 0xbf, 0x98, 0x46, 0x71, 0x7a, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3a, 0x30, 0xa4, 0x98, 0x76, 0xfd, 0x61, 0xcd, 0xa8, 0xf1, 0x84, 0x2c, 0x22, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x84, 0xa7, 0x76, 0x91, 0x37, 0x23, 0x90, 0x47, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x30, 0x41, 0xdf, 0x64, 0xa0, 0x42, 0xfb, 0x28, 0x25, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x3a, 0x36, 0xf0, 0x65, 0x73, 0xa1, 0x3, 0x95, 0xb, 0xb6, 0x1d, 0x34, 0x2c, 0x22, 0x73, 0x74, 0x61, 0x74, 0x75, 0x5, 0x4d, 0xb1, 0x1a, 0xd8, 0xbc, 0x7d, 0x7f, 0x5d, 0x73, 0x22, 0x3a, 0x32, 0x30, 0x32, 0x7d, 0x20, 0x15, 0xa, 0x15, 0x3e, 0x12, 0xa5, 0xc, 0xa6, 0x94, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, Cell: 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, 61707865 3320646e 79622d32 6b206574 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, 0x66, 564e5054 20506861 73652033 20536563 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, 0xb5, 72657420 6b657920 62792054 68616e68 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, 0xf6, 00000001 63727965 7766656e 79622d32 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, 0x2, Keystream: 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, 0x50, 3dae9a13 eadae4d0 d60f0527 51c754fd 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x84, 0x3f, 0xb8, 0xda, e1858ae1 e313d7e9 35e55756 05a81e55 0x58, 0xbd, 0x94, 0xbf, 0x98, 0x46, 0x71, 0x7a, 46922cd2 455fd242 78b72f95 38717cc2 0xa4, 0x98, 0x76, 0xfd, 0x61, 0xcd, 0xa8, 0xf1, 0x84, 8ee238c2 35204d4d 321e352a b4862c85 0x84, 0xa7, 0x76, 0x91, 0x37, 0x23, 0x90, 0x47, Ciphertext: 0x30, 0x41, 0xdf, 0x64, 0xa0, 0x42, 0xfb, 0x28, 0x25, 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, 0xf0, 0x65, 0x73, 0xa1, 0x3, 0x95, 0xb, 0xb6, 0x1d, 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, 0x5, 0x4d, 0xb1, 0x1a, 0xd8, 0xbc, 0x7d, 0x7f, 0x5d, 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, 0x66, 0x15, 0xa, 0x15, 0x3e, 0x12, 0xa5, 0xc, 0xa6, 0x94 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, 0xb5, Tag: 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, 0xf6, 0x47, 0xfd, 0x92, 0xd, 0x93, 0x88, 0x3b, 0x1c, 0xe, 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, 0x2, 0xaa, 0x4f, 0x4a, 0xaa, 0x4, 0xee, 0xe9 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, 0x50, Running Time: 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x84, 0x3f, 0xb8, 0xda, MCU – ESP32 = 6505 ms 0x58, 0xbd, 0x94, 0xbf, 0x98, 0x46, 0x71, 0x7a, Server = 200.0712661743164 ms 0xa4, 0x98, 0x76, 0xfd, 0x61, 0xcd, 0xa8, 0xf1, 0x84, Dựa vào các kết quả thu được như trên, trong quá 0x84, 0xa7, 0x76, 0x91, 0x37, 0x23, 0x90, 0x47, trình triển khai thực tế trên hệ thống IoT. Nhóm nghiên 0x30, 0x41, 0xdf, 0x64, 0xa0, 0x42, 0xfb, 0x28, 0x25, cứu đã thu được thực tế các gói dữ liệu được mã hóa tại 0xf0, 0x65, 0x73, 0xa1, 0x3, 0x95, 0xb, 0xb6, 0x1d, các node có độ dài trong khoảng 128-byte đến 512-byte. 0x5, 0x4d, 0xb1, 0x1a, 0xd8, 0xbc, 0x7d, 0x7f, 0x5d, Kết quả thời gian thực hiện thuật toán cho các gói dữ 0x15, 0xa, 0x15, 0x3e, 0x12, 0xa5, 0xc, 0xa6, 0x94, liệu này được thể hiện trong Bảng 9. 0x68, 0xb8, 0xca, 0x58, 0xa6, 0xad, 0x9e, 0xc8, 0x1d, 0x36, 0x3c, 0xe5, 0xd1, 0x76, 0xb1, 0x3e, Bảng 9. Kết quả thời gian thực hiện thuật toán 0x8d, 0xfe, 0xe4, 0x86, 0x8c, 0xe6, 0x31, 0xd9, 0x66, Độ dài Thời gian 0x7b, 0xc7, 0x43, 0x3a, 0x72, 0xdc, 0x64, 0xb5, MCU – ESP32 128-byte 1661 ms 0x49, 0xa0, 0x64, 0x78, 0xe2, 0x73, 0x67, 0xf6, Server 128-byte 49.92 ms 0x5a, 0xc5, 0xa, 0xa7, 0x12, 0x5, 0x9, 0xe0, 0x2, MCU – ESP32 256-byte 3250 ms 0xd2, 0xa2, 0x6f, 0x2e, 0x55, 0x47, 0x58, 0x50, Server 256-byte 119.14 ms 0x70, 0x46, 0xb7, 0xe, 0xbc, 0x84, 0x3f, 0xb8, 0xda, MCU – ESP32 512-byte 6410 ms 0x58, 0xbd, 0x94, 0xbf, 0x98, 0x46, 0x71, 0x7a, Server 512-byte 206.71 ms 0xa4, 0x98, 0x76, 0xfd, 0x61, 0xcd, 0xa8, 0xf1, 0x84, 0x84, 0xa7, 0x76, 0x91, 0x37, 0x23, 0x90, 0x47, Quá trình mã hóa dữ liệu và tạo mã xác thực tại vi 0x30, 0x41, 0xdf, 0x64, 0xa0, 0x42, 0xfb, 0x28, 0x25, điều khiển và ESP32 với các dữ liệu có có độ dài càng 0xf0, 0x65, 0x73, 0xa1, 0x3, 0x95, 0xb, 0xb6, 0x1d, lớn thì sẽ mất nhiều thời gian hơn để thực thi. Chẳng 0x5, 0x4d, 0xb1, 0x1a, 0xd8, 0xbc, 0x7d, 0x7f, 0x5d, hạn như kết quả được trình bày trong Bảng 6, với dữ 0x15, 0xa, 0x15, 0x3e, 0x12, 0xa5, 0xc, 0xa6, 0x94, liệu có độ dài 128-byte thì thời gian thực thi là khoảng ISBN 978-604-80-7468-5 458
  7. Hội nghị Quốc gia lần thứ 25 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2022) 1,6 giây; trong khi đó với dữ liệu có độ dài 512-byte thì TÀI LIỆU THAM KHẢO thời gian thực thi là khoảng 6,5 giây. [1] Adam Langley, Yoav Nir, “ChaCha20 and Poly1305 for IETF V. KẾT LUẬN Protocols”, pp. 1-45, May, 2015. Nghiên cứu đã hoàn thành việc xây dựng được thuận [2] Phillip Rogaway, "Authenticated-encryption with Associated- toán ChaCha20-Poly1305 và tiến hành thực hiện thực data", Proceedings of the 9th ACM conference on Computer and Communications Security (CCS '02), pp. 98–107, Nov, tế trên một hệ thống IoT hoàn chỉnh bao gồm các thiết 2002. bị (node), hệ thống Server trên vi điều khiển và ESP32. [3] A. Jothivelu and S. P. Simon, "A Smart BTS/Node B Network Quá trình nghiên cứu với mục đích nâng cao tính bảo Monitoring and Control using IoT," 2019 Fifteenth mật cho thông tin trong hệ thống IoT. Kết quả thu được International Conference on Information Processing (ICINPRO), pp. 1-5, 2019. đạt được các mục tiêu cơ bản đề ra cho đề tài nghiên [4] P. A. M. Hambali, Syamsuddin, M. R. Effendi and E. A. Z. cứu. Ngoài ra, nhóm sẽ tiếp tục nghiên cứu về thuật toán Hamidi, "Prototype Design of Monitoring System Base với hai mục tiêu. Mục tiêu thứ nhất, nghiên cứu thêm Tranceiver Station (BTS) Base on Internet of Things," 2020 6th về “nonce number” để nâng cao tính phức tạp cho dữ International Conference on Wireless and Telematics (ICWT), liệu đầu vào từ đó làm cơ sở nâng cao tính bảo mật của pp. 1-6, 2020. thuật toán. Mục tiêu thứ hai, nghiên cứu về quá trình [5] F. De Santis, A. Schauer and G. Sigl, "ChaCha20-Poly1305 authenticated encryption for high-speed embedded IoT thực hiện các phép toán với số rất lớn thuật toán cụ thể applications," Design, Automation & Test in Europe là các phép toán thực hiện trong quá trình tạo mã xác Conference & Exhibition (DATE 2017), pp. 692-697, 2017. thực với mục tiêu giảm thiểu được thời gian thực hiện thuật toán và tối ưu các tài nguyên hạn chế tại vi điều khiển và nâng cấp hệ thống Server cho hệ thống. ISBN 978-604-80-7468-5 459
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2