1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU TẤN CÔNG DPA VÀO THUẬT TOÁN AEGIS TRONG JAVACARD

58 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 1,65 MB

Nội dung

NGHIÊN CỨU TẤN CÔNG DPA VÀO THUẬT TOÁN AEGIS TRONG JAVACARD Nghiên cứu tấn công DPA vào thuật toán AEGIS trong JavaCard” làm đồ án của mình với mục đích phân tích và đánh giá tính an toàn của thuật toán này trong JavaCard, từ đó đề xuất biện pháp bảo vệ giúp triển khai ứng dụng hiệu quả thuật toán hạng nhẹ AEGIS. Nội dung của đồ án tốt nghiệp gồm có 3 chương: Chương 1: Thực thi thuật toán AEGIS vào JavaCard Chương này trình bày những kiến thức khái quát về JavaCard và kỹ thuật lập trình Applet, từ đó thực thi thuật toán AEGIS vào JavaCard. Chương 2: Nghiên cứu xây dựng module phân tích tấn công DPA vào thuật toán AEGIS trong JavaCard Chương này trình bày về tấn công DPA, trong đó nêu rõ định nghĩa, mục tiêu, các bước thao tác tấn công và xây dựng module phân tích tấn công DPA để thực hiện tấn công vào thuật toán chạy trong JavaCard ở chương 3. Chương 3: Thực hiện tấn công DPA vào thuật taons AEGIS trong JavaCard Chương này sẽ trình bày cách thiết lập phép đo, biên dịch chương trình đo các vệt năng lượng để thu được các tập dữ liệu và phân tích tập dữ liệu này để tìm ra khóa bí mật của thuật toán, sau đó đề xuất một số biện pháp bảo vệ phù hợp cho thuật toán chạy trong thẻ. 1. Tìm hiểu JavaCard, kỹ thuật lập trình Applet; 2. Thực thi thuật toán AEGIS vào JavaCard; 3. Tìm hiểu về kỹ thuật tấn công DPA, từ đó đã xây dựng module phân tích tấn công DPA; 4. Thực hiện tấn công DPA vào thuật toán AEGIS trong JavaCard; 5. Và đề xuất biện pháp bảo vệ. Ứng dụng các thuật toán mã hóa có xác thực trên nền tảng thẻ thông minh đang được quan tâm trong nhiều lĩnh vực ứng dụng rất phong phú và đa dạng. Vì vậy, song song với việc nghiên cứu an toàn lý thuyết của các thuật toán mã hóa có xác thì vấn đề cài đặt, thực thi an toàn chúng vào hệ thống dùng thẻ thông minh cũng là bài toán mang tính khoa học công nghệ. Tuy nhiên, đây là vấn đề lớn và phức tạp, liên quan đến nhiều kiến thức chuyên sâu: lập trình tối ưu, thiết kế an toàn phần cứng, an toàn nghiệp vụ,… điều này đòi hỏi mất nhiều thời gian và trí tuệ hơn. Định hướng tiếp theo em mong muốn tìm hiểu về các dạng tấn công khác vào JavaCard và thực thi nhúng các biện pháp bảo vệ đã đề xuất.

ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU TẤN CƠNG DPA VÀO THUẬT TỐN AEGIS TRONG JAVACARD Nguyen Thanh Long Hà Nội - 2023 MỤC LỤC 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 MỤC LỤC i DANH MỤC TỪ VIẾT TẮT iii DANH MỤC HÌNH VẼ iv LỜI MỞ ĐẦU CHƯƠNG 1: THỰC THI THUẬT TOÁN AEGIS VÀO JAVACARD 1.1 Khái quát JavaCard kỹ thuật lập trình Applet 1.1.1 Khái quát JavaCard 1.1.2 Kỹ thuật lập trình Applet 1.2 Thực thi thuật toán AEGIS vào JavaCard 1.2.1 Lập trình thuật tốn AEGIS 10 1.2.2 Biên dịch nhúng thuật toán AEGIS vào JavaCard 17 1.2.3 Xây dựng giao diện mã hóa giải mã 18 1.3 Kết luận chương 19 CHƯƠNG 2: NGHIÊN CỨU XÂY DỰNG MODULE PHÂN TÍCH TẤN CƠNG DPA 20 2.1 Kỹ thuật công DPA 20 2.1.1 Định nghĩa công DPA 21 2.1.2 Mục tiêu công DPA 22 2.1.2 Các bước công 23 2.2 Mơ hình hóa tiến trình phân tích vệt lượng tiêu thụ MATLAB 28 2.2.1 Tập huấn luyện ứng với khóa xác định 30 2.2.2 Tập huấn luyện ứng với khóa chưa xác định 30 2.3 Xây dựng module phân tích cơng DPA 31 i 2.4 Kết luận chương 35 CHƯƠNG 3: THỰC HIỆN TẤN CÔNG DPA VÀO THUẬT TOÁN AEGIS TRONG JAVACARD 36 3.1 Phân tích tập liệu cơng DPA vào thuật tốn AEGIS JavaCard 36 3.1.1 Thiết lập phép đo 36 3.1.2 Biên dịch chương trình đo vệt lượng 38 3.1.3 Phân tích liệu công 41 3.2 Đề xuất biện pháp bảo vệ 43 3.2.1 Biện pháp ẩn 44 3.2.2 Biện pháp mặt nạ 46 3.3 Kết luận chương 50 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 ii DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Cụm từ tiếng Anh Tiếng Việt AD Associated Data Dữ liệu liên kết AEGIS A Fast Authenticated Encryption Algorithm Thuật tốn mã hóa xác thực nhanh AES Advanced Encryption Standard Chuẩn mã hóa liệu tiên tiến APDU Application Protocol Data Khối liệu giao thức Unit ứng dụng ATM Automated Teller Machine Máy rút tiền tự động Competition for Authenticated Encryption: Security, Applicability, and Robustness CAESAR CPU Central Processing Unit DPA Differential Power Analysis Electrically-Erasable EEPROM Programmable Read-Only Memory Cuộc thi mã hóa có xác thực: Bảo mật, khả ứng dụng, độ mạnh Khối điều khiển trung tâm Tấn cơng phân tích lượng vi sai Bộ nhớ đọc lập trình xóa Global System for Mobile Hệ thống thơng tin di Communications động toàn cầu Integrated Circuit Card Thẻ mạch tích hợp National Institute of Viện Tiêu chuẩn Cơng Standards and Technology nghệ Quốc gia Mỹ PC Personal Computer Máy tính cá nhân 14 RAM Random Acces Memory Bộ nhớ truy cập tạm thời 15 ROM Read Only Memory Bộ nhớ đọc 16 SCA Side Channel Attack Tấn công kênh kề 17 SIM Subscriber Identity Module 18 SNR Signal-to-Noise Ratio 10 GSM 11 ICC 12 NIST 13 iii Module nhận dạng thuê bao Tỷ lệ tín hiệu nhiễu DANH MỤC HÌNH VẼ Hình 1.1 Mơ tả bề mặt thẻ thông minh Hình 1.2 Mã hóa AEGIS Hình 1.3 Hàm cập nhật trạng thái AEGIS 10 Hình 1.4 Định nghĩa hàm mã hóa 12 Hình 1.5 Định nghĩa hàm giải mã 12 Hình 1.6 Cài đặt hàm cập nhật trạng thái theo thuật tốn AEGIS-128 13 Hình 1.7 Cài đặt q trình khởi tạo thuật toán AEGIS-128 14 Hình 1.8 Cài đặt trình xử lý liệu liên kết thuật tốn AEGIS-128 14 Hình 1.9 Cài đặt q trình mã hóa thuật tốn AEGIS-128 15 Hình 1.10 Cài đặt trình tạo thẻ xác thực thuật tốn AEGIS-128 15 Hình 1.11 Cài đặt trình giải mã xác thực thuật tốn AEGIS-128 16 Hình 1.12 Chọn đầu đọc kết nối đến thẻ 17 Hình 1.13 Tải file CAP lên thẻ 17 Hình 1.14 Kiểm tra Applet tải lên thẻ 18 Hình 1.15 Giao diện mã hóa, giải mã 18 Hình 1.16 Thực mã hóa 18 Hình 1.17 Thực giải mã 19 Hình 1.18 Trường hợp giải mã thất bại 19 Hình 2.1 Minh họa mối tương quan thay đổi tín hiệu dòng điện thay đổi liệu xử lý 23 Hình 2.2 Các bước thực thi công DPA 27 Hình 2.3 Mã lệnh gọi nội dung tệp 28 Hình 2.4 Mã lệnh nạp liệu 28 Hình 2.5 Mã lệnh tính hệ số tương quan 29 Hình 2.6 Mã lệnh xử lý file liệu để xác định khóa 30 Hình 2.7 Cài đặt tiến trình AsciiToHex 31 Hình 2.8 Cài đặt trình Power Model 33 Hình 2.9 Cài đặt q trình tính hệ số tương quan 34 Hình 2.10 Cài đặt trình xử lý file đầu vào, đầu 35 Hình 2.11 Giao diện chương trình phân tích cơng 35 Hình 3.1 Kết nối thẻ JavaCard vào đầu đọc 36 Hình 3.2 Thực mã hóa 36 Hình 3.3 Các bước lắp thẻ vào đo vào đầu đọc 37 iv Hình 3.4 Kết nối đầu dò PicoScope với đo 37 Hình 3.5 Kết vệt lượng thu 38 Hình 3.6 Thiết lập đường dẫn thư mục Project 39 Hình 3.7 Thiết lập đường dẫn phụ thuộc Project 40 Hình 3.8 Các thiếp lập mã nguồn main.cpp 40 Hình 3.9 Các tập liệu thu 41 Hình 3.10: Thực nghiệm 200 rõ plaintext.txt 42 Hình 3.11: Thực nghiệm 200 mã ciphertext.txt 42 Hình 3.12 Xử lý đưa kết 43 v LỜI MỞ ĐẦU Ngày nay, giao dịch điện tử ngày trở nên phổ biến đồng thời kéo theo vấn đề bảo đảm an toàn thông tin cá nhân trở nên cấp thiết Một lĩnh vực mật mã ứng dụng tập trung phát triển gần thuật tốn nhằm tăng tính an tồn chạy chip hạn chế tài nguyên Viện tiêu chuẩn NIST (national institute of standards and technology) tổ chức thi CAESAR (competition for authenticated encryption: security, applicability, and robustness) để chọn thuật tốn mã hóa có xác thực phù hợp Thuật tốn mã hóa có xác thực AEGIS hai thuật tốn chiến thắng vịng chung kết thi, đảm bảo tính bí mật, tính xác thực có khả ứng dụng rộng rãi cho hệ thống tài nguyên hạn chế, đặc biệt hệ giao dịch dùng thẻ Tuy nhiên, triển khai ứng dụng hệ thống dùng thẻ lại tiềm ẩn nguy rị rỉ thơng tin, công kênh kề Trong nhiều năm qua, số cơng kênh kề hữu hiệu kể đến: cơng phân tích thời gian, cơng gây lỗi, cơng phân tích lượng tiêu thụ Xuất phát từ thực tiễn trên, em chọn đề tài “Nghiên cứu tấn công DPA vào thuật toán AEGIS JavaCard” làm đồ án với mục đích phân tích đánh giá tính an tồn thuật tốn JavaCard, từ đề xuất biện pháp bảo vệ giúp triển khai ứng dụng hiệu thuật toán hạng nhẹ AEGIS Nội dung đồ án tốt nghiệp gồm có chương: Chương 1: Thực thi thuật toán AEGIS vào JavaCard Chương trình bày kiến thức khái quát JavaCard kỹ thuật lập trình Applet, từ thực thi thuật toán AEGIS vào JavaCard Chương 2: Nghiên cứu xây dựng module phân tích tấn cơng DPA vào thuật toán AEGIS JavaCard Chương trình bày cơng DPA, nêu rõ định nghĩa, mục tiêu, bước thao tác công xây dựng module phân tích cơng DPA để thực cơng vào thuật tốn chạy JavaCard chương Chương 3: Thực tấn công DPA vào thuật taons AEGIS JavaCard Chương trình bày cách thiết lập phép đo, biên dịch chương trình đo vệt lượng để thu tập liệu phân tích tập liệu để tìm khóa bí mật thuật tốn, sau đề xuất số biện pháp bảo vệ phù hợp cho thuật toán chạy thẻ CHƯƠNG 1: THỰC THI THUẬT TOÁN AEGIS VÀO JAVACARD Hiện nay, trước phát triển hệ nhúng xu ngân hàng dần chuyển từ thẻ từ sang thẻ chip việc nghiên cứu, tích hợp thuật tốn mật mã hạng nhẹ cho phép cài đặt thiết bị hạn chế tài nguyên yêu cầu thực tế Dựa vào tài liệu công bố [2, 5], em nhận thấy AEGIS thuật tốn mã hóa có xác thực hạng nhẹ phù hợp để xử lý nhanh thông tin người dùng, hoạt động ổn định linh kiện nhúng AEGIS đảm bảo tính bí mật xác thực, đồng thời đạt hiệu suất cao thời gian xử lý Trong chương này, với việc tìm hiểu JavaCard, kỹ thuật lập trình Applet, em tiến hành thực thi thuật toán kiểm tra tiến trình mã hóa/giải mã tảng JavaCard 1.1 Khái quát JavaCard kỹ thuật lập trình Applet 1.1.1 Khái quát JavaCard 1.1.1.1 Tổng quan SmartCard SmartCard hay thẻ thông minh, thẻ chip, thích hợp thẻ mạch (ICC – Integrated Circuit Card), loại thẻ bỏ túi (thường có kích thước thẻ tín dụng), bên mạch tích hợp có khả lưu trữ xử lý liệu [3] • Cấu tạo SmartCard SmartCard coi máy tính thu nhỏ Các thành phần gồm có: Hình 1.1 Mô tả bề mặt thẻ thông minh - CPU CPU (Central Processing Unit – Khối điều khiển trung tâm) khối thực nhiệm vụ điều khiển khối khác, xử lý thông tin thực phép tính - Comprocessor Là vi mạch điện tử thiết kế cách đặc biệt để thực tối ưu phép tính xử lý số lớn Chức vi mạch chuyên dụng thường thực thi hàm mã hóa/giải mã (cryptographic operations) giao thức dùng thẻ thông minh - ROM Được dùng để lưu trữ mã máy, liệu đọc Thơng tin ROM lưu trữ không cấp nguồn nuôi ROM thẻ thông minh chứa hệ điều hành liệu mã nguồn chương trình cố định [1] - EEPROM Đây loại nhớ đọc cho phép nạp/xóa điện, thơng tin nhớ lưu trữ ngắt nguồn [1] - RAM Dùng để lưu trữ thông tin cần xử lý nhanh có tính tạm thời, khơng lưu lại nguồn nuôi bị tắt RAM phục vụ cho vi xử lý, u cầu bên ngồi khơng thể truy cập trực tiếp vào RAM [1] • Ưu, nhược điểm SmartCard - Ưu điểm: + SmartCard ứng dụng tiện lợi nhiều lĩnh vực [1], như: thẻ công dân, hộ chiếu điện tử, thẻ y tế, tốn lương qua thẻ tín dụng (ATM), + Tính bảo mật cao: có khả chống lại cơng vật lý, kiểm sốn trước cơng phần mềm, có chế chống nhân thẻ bảo vệ trình trao đổi liệu đáp ứng trả lời theo chuẩn EMV giúp ngăn ngừa giả mạo + Khả lưu trữ thông tin lớn, việc quản lý thông tin thuận lợi, khơng phải tích hợp thêm phần mềm khác, thông tin lưu SmartCard cho phép thay đổi, xóa, thêm bớt cần + Khả xử lý thông tin nhanh: Nhờ công nghệ vi chip, SmartCard xử lý thơng tin nhanh - Nhược điểm: + Vì khơng có giao diện ứng dụng tiêu chuẩn bậc cao cho thẻ thông minh nên nhà phát triển ứng dụng cần phải xử lý giao thức giao tiếp mức thấp, quản lý nhớ chi tiết khác theo thời gian phần cứng thẻ thông minh cụ thể + Hầu hết ứng dụng thẻ thông minh sử dụng ngày phát triển từ đầu, nhiều thời gian SmartCard có nhiều ưu điểm ứng dụng thẻ thông minh lại thường phát triển để chạy tảng độc quyền từ nhà cung cấp dịch vụ khác nhau, tồn thống thẻ Đây trở ngại nhóm phát triển ứng dụng SmartCard Rất may, công nghệ JavaCard đời phát triển để khắc phục nhược điểm Nó cho phép thẻ thơng minh thiết bị hạn chế tài nguyên chạy ứng dụng (được gọi Applet) viết ngôn ngữ lập trình Java 1.1.1.2 Giới thiệu JavaCard JavaCard [4] cơng nghệ cho phép mang đến cho trình ứng dụng Java Applet hoạt động cách an tồn bảo mật thẻ thơng minh tương tự với nhớ nhỏ thiết bị lưu vết Nó tảng Java nhỏ hướng tới thiết bị nhúng JavaCard phần nhỏ Java phát triển Sun, tích hợp bên thiết bị, đơn giản hố việc lập trình thẻ thơng minh tính hướng đối tượng JavaCard mang đến cho người dùng khả lập trình cho thiết bị mà tạo trình ứng dụng chun biệt Nó sử dụng rộng rãi SIM card (trong GSM điện thoại di động) thẻ ATM Ngơn ngữ lập trình Java có nhiều ưu điểm tính đơn giản, tính di động, mơ hình bảo mật tính hướng đối tượng Đó đặc tính mà JavaCard hướng tới khả tương thích bảo mật Tính tương thích thể việc JavaCard nhắm tới mục tiêu tạo mơi trường chuẩn • Bước 7: Chạy phần mềm Picoscope6, thực cài đặt: + Timebase: 500 us / Div, x1 (thu phóng), MS (mega mẫu) + Channel A: +-1V DC + Channel B: +-1V DC + Kích hoạt: tự động (sau điểu cài đặt, chuyển sang lặp lại) + Kênh kích hoạt: A + Ngưỡng kích hoạt: 200 mV • Bước 8: Đặt phép đo máy sóng gửi liệu vào thẻ cách sử dụng chương trình mã hóa, giải mã Sau đó, thấy dạng sóng hình sau PicoScope 6: Hình 3.5 Kết vệt lượng thu 3.1.2 Biên dịch chương trình đo vệt lượng Để đo vệt lượng cần phải điều chỉnh biên dịch chương trình C++ lưu file nén “Pico.zip” File nén chứa file mã nguồn 38 Project Micorosoft Studio Sau giải nén mở Project Micorosoft Studio, phải kiểm tra thiết lập tính chất Project, gồm: Các đường dẫn đến thư mục Include Library: Hình 3.6 Thiết lập đường dẫn thư mục Project Thiết lập đường dẫn đến bổ sung khác: 39 Hình 3.7 Thiết lập đường dẫn phụ thuộc Project Trong file mã nguồn, thiết lập kênh đo, mức điện áp kích thích số phép đo: Hình 3.8 Các thiếp lập mã nguồn main.cpp 40 Thực biên dịch chương trình (Build → Build Solution) Dữ liệu đo đặt file “traces.bin”; rõ mã nằm file: “plaintext.txt” “ciphertext.txt”; độ dài phép đo lưu file “traceLength.txt” Do vậy, đo liệu dùng để phân tích cơng DPA 3.1.3 Phân tích liệu công Sau thực đo ta thu tập liệu: tập hợp cặp rõ/bản mã nằm file “plaintext.txt” “ciphertext.txt”, vệt lượng lưu file “traces.bin” Hình 3.9 Các tập liệu thu 41 Hình 3.10: Thực nghiệm 200 rõ plaintext.txt Hình 3.11: Thực nghiệm 200 mã ciphertext.txt Tiếp đến, dùng module chương trình phân tích DPA (Hình 2.10) xử lý liệu đầu vào, thu khóa dự kiến hệ mật: 42 Hình 3.12 Xử lý đưa kết Như vậy, dựa vào file liệu thu thập tìm phần khóa bí mật thuật tốn AEGIS chạy thẻ JavaCard tiện ích phân tích cơng DPA Do vậy, để bảo đảm an tồn cho thuật tốn AEGIS nói riêng thuật tốn bảo mật khác nhúng vào thẻ cần tích hợp biện pháp bảo vệ thích hợp Nội dung đồ án, em cố gắng tổng hợp đề xuất giải pháp bảo vệ cho hệ thống dùng thẻ thông minh 3.2 Đề xuất biện pháp bảo vệ Để thực cơng phân tích lượng kẻ cơng phải tìm cách thu mẫu lượng thiết bị mật mã, đặc biệt mẫu lượng có liên quan đến khóa bí mật hay giá trị trung gian sinh q trình thực thi thuật tốn mật mã Vì vậy, chống lại cơng phân tích lượng biện pháp nhằm giảm bớt, xóa bỏ phụ thuộc liệu mã hóa vào lượng tiêu thụ che đậy giá trị trung gian sinh thực thi thuật toán mật mã Dựa vào mục tiêu chia làm biện pháp chống cơng phân tích lượng: - Biện pháp ẩn, 43 - Biện pháp mặt nạ 3.2.1 Biện pháp ẩn Mục tiêu kỹ thuật ẩn làm cho lượng tiêu thụ trở nên độc lập với giá trị trung gian độc lập với hoạt động mà thực Có hai cách để thực điều này: - Ngẫu nhiên hóa lượng tiêu thụ chu kỳ hoạt động thiết bị mật mã - San mức lượng tiêu thụ cho hoạt động thuật toán cho giá trị liệu chu thiết bị mật mã Tuy nhiên, để làm cho lượng tiêu thụ trở nên hoàn tồn ngẫu nhiêu đồng điều khó khả thi mơi trường thực tế Vì vậy, mục tiêu kỹ thuật ẩn làm để lượng tiêu thụ tiến gần tới việc trở nên ngẫu nhiên đồng Từ phân làm nhóm: Nhóm thứ tác động vào miền thời gian biểu diễn hoạt động thiết bị nhóm thứ tác động vào miền biên độ biểu diễn hoạt động thiết bị [8] • Tác động vào miền thời gian: Tác động vào miền thời gian nhằm ngẫu nhiên hóa lượng tiêu thụ thiết bị cách biểu diễn tiêu thụ lượng thiết bị hoạt động thời điểm khác trình xử lý Có thể thực cách chèn vào ngẫu nhiên hoạt động giả (các lệnh nop) xáo trộn (lệnh swap) + Chèn ngẫu nhiên hoạt động giả: chèn vào ngẫu nhiên hoạt động giả trước, trong, sau q trình hoạt động thuật tốn mã hóa Trong tiến trình hoạt động thuật tốn mã hóa, sinh số ngẫu nhiên định có hoạt động giả chèn vào vị trí khác Điều quan trọng tổng số hoạt động giả chèn vào phải cân với tất hoạt động thuật toán Trong thực biện pháp này, thấy vị trí hoạt động phụ thuộc vào số lượng hoạt động giả chèn vào phía trước Các hoạt động ngẫu nhiên chèn từ phép biến đổi tới phép 44 biến đổi khác Càng chèn vào nhiều vị trí khác mức độ ngẫu nhiên lượng tiêu thụ cao Tuy nhiên, nhiều giá trị ngẫu nhiên giả chèn kéo theo thời gian xử lý thuật tốn chậm Vì vậy, thực tế cần có điều chỉnh phù hợp để áp dụng biện pháp - Xáo trộn hoạt động thuật tốn mã hóa biện pháp ẩn Ý tưởng xáo trộn thay đổi trình tự thực thi thuật tốn mã hóa Xáo trộn gây ngẫu nhiên hóa lượng tiêu thụ tạo hiệu ứng giống với biện pháp chèn hoạt động giả Song, xáo trộn không gây ảnh hưởng nhiều đến thời gian thực phép chèn lệnh hoạt động giả Nhược điểm biện pháp áp dụng vùng thiết kế định Số lệnh gây xáo trộn thuật toán mật mã bị giới hạn, lượng lệnh phụ thuộc vào thuật toán kiến trúc phần mềm thực thi Vì vậy, thực tiễn thường kết hợp cách chèn hoạt động giả biện pháp xáo trộn • Tác động vào miền biên độ: Thiết bị mật mã phịng chống cơng phân tích lượng cách làm cho lượng tiêu thụ điểm thiết bị trở nên đồng với trở nên ngẫu nhiên chu kỳ hoạt động Tỷ lệ rị rỉ thơng tin xác định theo biểu thức sau [8]: SNR = Var ( Pexp ) Var ( Psw.noise + Pel noise ) Từ cơng thức thấy để giảm mức độ rị rỉ thơng tin thiết bị mật mã cần giảm tỷ lệ SNR lệnh thực thi Lý tưởng giá trị SNR = cách thiết lập cho: Var ( Pexxp ) = , tăng giá trị Var( Psw noise + Pel noise ) →  (tiến tới vô cùng) Khi giảm Var ( Pexxp ) 0, lượng tiêu thụ cần phải hoàn toàn cân tất hoạt động giá trị liệu Tăng giá trị Var( Psw.noise + Pel noise ) tới vô đồng nghĩa với việc tăng biên độ nhiễu lên tương ứng Trong thực tế hai cách thực mức độ định, có nghĩa khó để khiến giá trị 45 SNR = Do vậy, để giảm thiểu lộ lọt thông tin thiết bị mật mã cần thực hiện: - Tăng lượng nhiễu: để tăng lượng nhiễu cần thực song song số lệnh xử lý độc lập dùng phương tiện gây nhiễu chuyên dụng, biện pháp làm tăng Var( Psw.noise ) đó, SNR giảm - Giảm thiểu tín hiệu: mục đích làm cho tất hoạt động thuật toán tiêu hao mức lượng với liệu đầu vào 3.2.2 Biện pháp mặt nạ Mục tiêu biện pháp mặt nạ làm cho lượng tiêu thụ thiết bị mật mã trở nên độc lập với giá trị trung gian thực thuật toán mã hóa [8] Trong biện pháp này, giá trị trung gian v che đậy giá trị ngẫu nhiên m gọi mặt nạ: vm = v  m Mặt nạ m tạo hoạt động bên thiết bị mật mã từ hoạt động sang hoạt động khác, đó, kẻ cơng khơng thể biết Ký hiệu “  ” thường xác định tùy theo phép tốn sử dụng thuật tốn mã hóa Ví dụ, ký hiệu “  ”được sử dụng mặt nạ Boolean thường phép XOR , phép cộng phép nhân modulo Thông thường, mặt nạ áp trực tiếp vào rõ khóa Hoạt động thuật tốn mã hóa thay đổi phù hợp để che đậy giá trị trung gian theo dõi mặt nạ Khi kết thúc q trình tính tốn mặt nạ cần gỡ để thu mã Một lược đồ mặt nạ cách giá trị trung gian che đậy, cách áp dụn, loại bỏ thay đổi mặt nạ q trình hoạt đơng thuật tốn Điểm quan trọng giá trị trung gian cần che giấu thời điểm Ngoài cần đảm bảo giá trị trung gian che đậy cách chắn Vì thơng thường sử dụng vài mặt nạ để giá trị trung gian khác dùng loại mặt nạ khác • Mặt nạ Boolean mặt nạ Arithmetic Có hai dạng mặt nạ số học (Arithmetic) Boolean Trong mặt nạ Boolean, giá trị trung gian gắn với mặt nạ phép XOR : 46 vm = v  m Trong mặt nạ số học giá trị trung gian gắn với mặt nạ dùng phép tốn số học (nhân cộng) Thơng thường sử dụng phép cộng môđun: vm = v + m(mod n) Giá trị mô-đun n định nghĩa theo thuật toán mật mã Một phép toán số học khác sử dụng phép nhân mô-đun: vm = v  m(mod n) Hơn nữa, thuật toán mật mã cịn sử dụng hàm tuyến tính phi tuyến, vậy, cần có cách xử lý mặt nạ tương ứng Một hàm tuyến tính f có tính chất f ( x  y ) = f ( x)  f ( y ) Ví dụ phép tốn  XOR , hàm tuyến tính có tính chất f ( x  y ) = f ( x)  f ( y ) Có thể thấy lược đồ mặt nạ Boolean làm thay đổi mặt nạ m thực đơn giản Do đó, phép tốn tuyến tính sử dụng dễ dàng mặt nạ Boolean Tuy nhiên, trường hợp mặt nạ nhân có nhược điểm lớn trước kịch cơng Zero [8] 3.2.2.1 Cấp độ kiến trúc • Phần mềm Triển khai mặt nạ Boolean phần mềm hoạt động đơn giản Sử dụng mặt nạ với rõ (hoặc khóa), cần đảm bảo tất giá trị trung gian che giấu suốt q trình tính toán, theo dõi thay đổi mặt nạ, kết thúc, gỡ mặt nạ khỏi đầu - Tra bảng mặt nạ: Ngồi phép tốn đơn giản, thuật tốn mật mã cịn sử dụng phép tốn phức tạp phép tốn phi tuyến tính Những hoạt động phức tạp yêu cầu cao so với mặt nạ Boolean đơn Do đó, phải trả phí cho việc triển khai an tồn, hiệu Hầu hết hệ mã khối đại cho phép thực thao tác phi dòng việc tra cứu bảng Với đầu vào v dạng dòng, đầu lưu trữ mục tương ứng bảng T Bảng lưu trữ nhớ nơi truy cập nhanh Trong biện pháp này, bảng cần che giấu Để thực hiện, tạo bảng Tm với Tm (v  m) = T (v)  m Tạo bảng trình đơn giản Tuy nhiên, để tạo bảng che giấu vậy, yêu cầu phải chạy qua tất đầu vào v , tra cứu 47 T (v ) lưu trữ T (v)  m với tất giá trị m bảng mặt nạ Quá trình thực cho tất mặt nạ m Do đó, thời gian tính tốn dung lượng nhớ tăng theo số lượng mặt nạ sử dụng để che giấu bảng tra cứu - Nạp trước ngẫu nhiên (random precharging): Đây biện pháp phù hợp với trường hợp bị rò rỉ giá trị trung gian qua khoảng cách Hamming Giả sử mức tiêu thụ lượng có liên quan đến khoảng cách Hamming giá trị trung gian truyền qua bus lưu trữ liên tiếp ghi Biện pháp đơn giản cần tải lưu trữ giá trị m ngẫu nhiên trước giá trị trung gian thực tế v xử lý Lúc đó, thiết bị rò rỉ HD(v, m) = HW (v  m) Vì thế, bảo vệ thiết bị khỏi cơng DPA kẻ cơng khơng thể dự đoán khoảng cách Hamming giá trị trung gian giá trị ngẫu nhiên 48 • Phần cứng Trong phần này, đưa biện pháp nạp trước ngẫu nhiên mặt nạ cho bus - Nạp trước ngẫu nhiên: Với biện pháp này, giá trị ngẫu nhiên gửi qua mạch để nạp ngẫu nhiên tất cổng tổ hợp mạch Trong triển khai, việc nạp trước ngẫu nhiên yêu cầu chép cổng tuần tự, tức số lượng ghi chép Các ghi chèn vào ghi gốc tổ hợp cổng mạch Nạp trước ngẫu nhiên thực sau: Trong chu kỳ clock đầu tiên, giá trị ngẫu nhiên đẩy vào ghi Khi ghi kết nối với cổng tổ hợp, đầu cổng nạp ngẫu nhiên Khi chuyển từ chu kỳ clock thứ sang chu kỳ thứ hai, kết cổng tổ hợp (là kết ngẫu nhiên) lưu ghi gốc có chứa giá trị trung gian thuật toán thực Đồng thời, giá trị trung gian chuyển từ ghi gốc sang ghi Vai trò ghi chuyển đổi Khi chuyển từ chu kỳ clock thứ hai sang chu kỳ thứ ba, vài trò ghi lại chuyển đổi lần cổng tổ hợp nạp lại lần Khi thực nạp trước ngẫu nhiên này, tất cổng tổ hợp cổng xử lý liệu ngẫu nhiên chu kỳ giá trị trung gian chu kỳ - Mặt nạ cho bus: Mặt nạ cho bus đề cập đến việc mã hóa liệu địa bus kết nối comprocessor thẻ đến nhớ đồng xử lý mật mã Mục đích mặt nạ cho bus ngăn chặn việc nghe qua bus Bus dễ bị cơng phân tích lượng chúng có điện dung lớn Các thuật toán mật mã sử dụng dể mã hóa cho bus thường đơn giản Khóa ngẫu nhiên tạo sử dụng hoạt động đơn giản thuật toán 3.2.2.2 Cấp độ logic Những biện pháp cấp độ logic chống công DPA đề xuất để chống lại cơng phân tích lượng vi sai 49 Áp dụng mặt nạ cho cấp độ logic làm cho cổng logic mạch hoạt động giá trị bị ẩn mặt nạ tương ứng Các cổng sử dụng mạch gọi cổng có mặt nạ Các mạch gọi mạch mặt nạ Do giá trị bị che giấu độc lập với giá trị không che giấu nên mức tiêu thụ lượng cổng che giấu không phụ thuộc vào giá trị khơng che giấu Vì vậy, tổng mức tiêu thụ lượng thiết bị mật mã độc lập với liệu xử lý hoạt động thực Thông thường, mặt nạ Boolean sử dụng cho mạch mặt nạ Có ba cách tiếp cận để xây dựng mạch mặt nạ: - Cách thứ nhất, sử dụng mặt nạ riêng biệt cho tín hiệu mạch Do đó, tất giá trị che giấu độc lập với nhau, giá trị không che giấu tương ứng có độc lập hay khơng Nhưng sử dụng biện pháp này, chức cổng logic trở nên phức tạp, tín hiệu đầu vào đầu che giấu Hơn nữa, số lượng mặt nạ cần thiết cho mạch lớn Do đó, cách tiếp cận khơng thực tế - Cách thứ hai phân vùng tín hiệu mạch theo nhiều nhóm sử dụng mặt nạ cho nhóm Việc làm giảm số lượng mặt nạ đáng kể, phức tạp cổng làm việc tín hiệu đầu vào giảm - Cách thứ ba sử dụng mặt nạ tín hiệu tương tự mạch Vì thế, khơng cần chi phí để xử lý mặt nạ khác Nếu giá trị sau bỏ mặt nạ phụ thuộc nhau, giá trị mặt nạ tương ứng phụ thuộc Hạn chế biện pháp việc thay đổi mặt nạ đơn bị phát thông qua mức lượng tiêu thụ toàn mạng mặt nạ 3.3 Kết luận chương Chương thiết lập phép đo sử dụng tiện ích mà em xây dựng để phân tích cơng DPA vào thuật tốn AEGIS chạy thẻ JavaCard xác định giá trị khóa tìm thấy Đồng thời, em tổng hợp đề xuất biện pháp bảo vệ nhằm bảo đảm an tồn cho thuật tốn AEGIS (hoặc thuật tốn bảo mật khác) chạy hệ thống giao dịch dùng thẻ 50 KẾT LUẬN Tìm hiểu JavaCard, kỹ thuật lập trình Applet; Thực thi thuật tốn AEGIS vào JavaCard; Tìm hiểu kỹ thuật cơng DPA, từ xây dựng module phân tích cơng DPA; Thực cơng DPA vào thuật tốn AEGIS JavaCard; Và đề xuất biện pháp bảo vệ Ứng dụng thuật tốn mã hóa có xác thực tảng thẻ thông minh quan tâm nhiều lĩnh vực ứng dụng phong phú đa dạng Vì vậy, song song với việc nghiên cứu an tồn lý thuyết thuật tốn mã hóa có xác vấn đề cài đặt, thực thi an tồn chúng vào hệ thống dùng thẻ thơng minh tốn mang tính khoa học cơng nghệ Tuy nhiên, vấn đề lớn phức tạp, liên quan đến nhiều kiến thức chuyên sâu: lập trình tối ưu, thiết kế an toàn phần cứng, an toàn nghiệp vụ,… điều đòi hỏi nhiều thời gian trí tuệ Định hướng em mong muốn tìm hiểu dạng cơng khác vào JavaCard thực thi nhúng biện pháp bảo vệ đề xuất 51 TÀI LIỆU THAM KHẢO [2] Rajesh Kumar Pal, “Implementation and Evaluation of Authenticated Encryption Algorithms on Java Card Platform”, 2017 [3] Zhiqun Chen, “Java Card Technology for Smart Cards”, 2000 [4] Sun Microsystems “Java Card Applet Developer’s Guide”, 1998 [5] Hongjun Wu, Bart Preneel, “AEGIS: A Fast Authenticated Encryption [6] Algorithm”, 2016 Nicolas Sklavos, Ricardo Chaves, Giorgio Di Natale, Francesco Regazzoni, “Hardware Security and Trust – Design and Deployment of Integrated Circuits in a Threatened Environment”, Springer [7] [8] International Publishing Switzerland - 2017 Onur Acicmez, Cetin Kaya Koc, and Jean-Pierre Seifert, “Predicting secret keys via branch prediction” In 2007 CT - RSA Mangard Stefan, Oswald Elisabeth, Popp Thomas, "Power Analysis Attacks Revealing the Secrets of Smart Cards", Springer, 2007 52

Ngày đăng: 22/08/2023, 09:48

w