NGHIÊN CỨU VÀ TRIỂN KHAI PHƯƠNG PHÁP TẤN CÔNG PHÂN TÍCH NĂNG LƯỢNG ĐƠN GIẢN (SPA) LÊN PHÉP NHÂN ĐIỂM HỆ MẬT ĐƯỜNG CONG ELLIPTIC (ECC) TRÊN KIT ARDUINO Ngày nay với sự phát triển mạnh mẽ của công nghệ và khoa học hiện đại, việc trao đổi thông tin trở nên dễ dàng hơn bao giờ hết, con người không chỉ trao đổi thông tin qua trò chuyện trực tiếp, thư giấy mà còn qua các hệ thống truyền thông. Do đó vấn đề bảo đảm an toàn bí mật thông tin là một yêu cầu vô cùng quan trọng, không chỉ vậy còn tồn tại một số vấn đề phát sinh: thông tin có bị trộm cắp hay không? Hay thông tin có bị sai lệch hay bị giả mạo không? Điều này có thể ảnh hưởng đến một cá nhân, tổ chức, các công ty hay cả một quốc gia. Những bí mật cá nhân hay thậm chí là những bí mật về kinh doanh, tài chính luôn là mục tiêu của những kẻ tấn công hay các tổ chức tình báo trong và ngoài nước. Từ những tình hình trên, vần đề an toàn thông tin được đặt ra cấp thiết. Và kỹ thuật mật mã là một trong những giải pháp của an toàn truyền thông. Kỹ thuật này đã xuất hiện từ rất lâu nhưng nó đơn giản, ngày nay khi có mạng máy tính người ta dùng mật mã hiện đại. Các nhà khoa học đã phát minh ra các hệ mật mã nhằm che dấu thông tin cũng như làm rõ chúng để tránh sự giòm ngó của những kẻ cố tình phá hoại như các hệ mật: RSA, Elgamal,… mặc dù các hệ mật kể trên cũng rất an toàn xong vì có độ dài khóa lớn nên một số lĩnh vực không thể sử dụng được. Chính vì vậy, các nhà khoa học đã phát minh ra hệ mật đường cong Elliptic (ECC), hệ mật này được đánh giá là hệ mật có độ bảo mật an toàn cao và hiệu quả hơn nhiều so với hệ mật khóa công khai khác, nó được ứng dụng trên nhiều lĩnh vực và tại nhiều quốc gia trên thế giới tuy nhiên vẫn còn khá mới mẻ ở Việt Nam. Mật mã ECC cung cấp tính an toàn tương đương với các hệ mật khóa công khai truyền thống, trong khi đó độ dài khóa của nó lại nhỏ hơn nhiều lần. Điều này có nghĩa là việc cài đặt ECC sử dụng tài nguyên hệ thống ít hơn và năng lượng tiêu thụ cũng nhỏ hơn…. Với những ưu thế này thì mật mã ECC ngày càng được ưa chuộng và được sử dụng rộng rãi. Trong vài thập kỷ gần đây, đường cong Elliptic đóng vai trò rất quan trọng đối với lý thuyết số và mật mã. Mật mã đường cong Elliptic được giới thiệu lần đầu vào năm 1985 bởi các công trình nghiên cứu độc lập của Neals Koblitz và Victor Miller. 2 Từ những năm 2000, các nước Mỹ, Nga, Nhật Bản, Hàn Quốc và một số nước Châu Âu đã đầu tư nghiên cứu về hệ mật ECC và đưa vào các hệ thống tiêu chuẩn như ISO, ANSI, IEEE, SECG, FIPS. Một trong những quốc gia sử dụng mật mã elliptic nhiều nhất là Liên bang Nga. Với hiệu quả và an toàn của hệ mật đường cong Elliptic, hiện nay hệ mật này được ứng dụng phổ biến và dần thay thế các hệ mật yếu hơn trước đó, đặc biệt hệ mật đường cong Elliptic được sử dụng trong các thiết bị mật mã có tài nguyên hạn chế. Tuy nhiên, việc hệ mật đường cong Elliptic được sử dụng rộng rãi khiến cho hệ mật này bị khai thác bởi các kẻ tấn công trong đó đặc biệt nguy hiểm là các tấn công phân tích kênh kề SCA (Side Channel Attacks) ví dụ như: tấn công phân tích năng lượng đơn giản SPA (Simple Power Analysis), tấn công phân tích năng lượng vi sai DPA (Diffirential Power Analysis). Chính vì những lý do trên, em lựa chọn đề tài: “Nghiên cứu nguyên lý và triển khai phương pháp tấn công phân tích năng lượng đơn giản (SPA) lên phép nhân điểm hệ mật đường cong eliptic (ECC) trên Arduino” để tìm hiểu kỹ hơn về hệ mật đường cong Elliptic và tìm hiểu về cách tấn công phân tích năng lượng đơn giản lên phép nhân điểm của hệ mật để từ đó tìm ra giải pháp phòng chống tấn công SPA lên hệ mật đường cong Elliptic có hiệu quả. 2. MỤC TIÊU CỦA ĐỂ TÀI Nghiên cứu và triển khai phương pháp tấn công phân tích năng lượng đơn giản SPA. Triển khai phương pháp tấn công phân tích năng lượng đơn giản SPA lên phép nhân điểm đường cong Elliptic (ECC) và giải pháp chống tấn công SPA trên kit Arduino. 3. NỘI DUNG Đồ án của em gồm có 3 chương với các nội dung như sau: Chương I: Tổng quan về hệ mật đường cong Elliptic Chương này của đồ án trình bày tổng quan về hệ mật đường cong Elliptic, về các khái niệm cơ bản, phép nhân điểm, cộng điểm trên đường cong và các tính chất của hệ mật đường cong Elliptic. 3 Chương II: Kit Arduino và nguyên lý tấn công phân tích năng lượng đơn giản lên phép nhân điểm đường cong elliptic. Trong chương này, em trình bày về kit Arduino, tìm hiều về tấn công phân tích năng lượng đơn giản SPA là gì và tấn công SPA lên hệ mật đường cong Elliptic. Đồng thời tìm hiểu giải pháp chống lại tấn công SPA lên hệ mật đường cong Elliptic. Chương III: Triển khai tấn công phân tích năng lượng đơn giản SPA lên phép nhân điểm đường cong elliptic và các giải pháp. Chương này em xây dựng và thử nghiệm tấn công SPA đối với phép nhân điểm của hệ mật đường cong Elliptic. Sau đó thực hiện triển khai giải pháp chống tấn công SPA đối với phép nhân điểm của ECC. Tất cả các thực nghiệm đều được tiến hành trên kit Arduino. Về mặt lý thuyết, đồ án đã trình bày được các nội dung như sau: • Tổng quan về hệ mật đường cong Elliptic • Làm quen với kit Arduino • Khái niệm tấn công phân tích năng lượng đơn giản SPA. Về mặt thực nghiệm, đồ án đã thu được các kết quả như sau: • Thực hiện thành công tấn công SPA lên phép nhân điểm hệ mật đường cong Elliptic trên kit Arduino. • Thực hiện thành công giải pháp chống tấn công SPA lên phép nhân điểm hệ mật đường cong Elliptic trên kit Arduino. Hướng phát triển Vì thời gian nghiên cứu còn hạn chế, nên đồ án của em mới chỉ dừng lại ở việc tìm và triển khai các giải pháp chống tấn công phân tích năng lượng đơn giản SPA trên hệ mật đường cong Elliptic. Sau khi hoàn thành đồ án, em sẽ tiếp tục đi sâu và nghiên cứu thêm về các cuộc tấn công có hiệu quả cao hơn như CPA, DPA… và tìm hiểu cũng như triển khai các giải pháp chống lại các cuộc tấn công đó.
ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ NGHIÊN CỨU VÀ TRIỂN KHAI PHƯƠNG PHÁP TẤN CÔNG PHÂN TÍCH NĂNG LƯỢNG ĐƠN GIẢN (SPA) LÊN PHÉP NHÂN ĐIỂM HỆ MẬT ĐƯỜNG CONG ELLIPTIC (ECC) TRÊN KIT ARDUINO Nguyen Thanh Long Hà Nội - 2023 i 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……………………………………………………………………………ii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT………………………………v DANH MỤC CÁC HÌNH VẼ………………………………… vii DANH MỤC BẢNG BIỂU …………………………………………………………… ix LỜI NÓI ĐẦU………………………………………………………………………… CHƯƠNG I………………………………………………………………………… TỔNG QUAN VỀ HỆ MẬT ĐƯỜNG CONG ELLIPTIC……………… ……… 1.1 Các khái niệm .4 1.1.1 Phương trình đồng dư bậc hai thặng dư bậc hai .5 1.1.2 Định nghĩa 1.2 Cơ sở toán học .6 1.2.1 Phương trình Weierstrass đường cong Elliptic .6 1.2.2 Cộng điểm đường cong Elliptic 1.2.3 Nhân vô hướng điểm đường cong Elliptic 10 1.2.4 Logarit rời rạc đường cong Elliptic (Discrete logarithm on Elliptic) 11 1.3 Tính chất ứng dụng ECC 12 1.3.1 Tính chất bản: 12 ii 1.3.2 Ứng dụng ECC 13 1.3.3 Một số tiêu chuẩn liên quan đến đường cong Elliptic: 14 1.4 Kết luận chương 16 CHƯƠNG II……………………………………………………………………… 17 KIT ARDUINO VÀ NGUYÊN LÝ TẤN CÔNG PHÂN TÍCH NĂNG LƯỢNG ĐƠN GIẢN LÊN PHÉP NHÂN ĐIỂM ĐƯỜNG CONG ELLIPTIC………… 17 2.1 Kit Arduino 17 2.1.1 Khái niệm Arduino 17 2.1.2 Các phiên Arduino lịch sử phát triển chúng 20 2.2 Tấn cơng phân tích lượng đơn giản (Simple Power Analysis – SPA) 23 2.2.1 Giới thiệu chung dạng cơng phân tích lượng 23 2.2.2 Tấn cơng phân tích lượng đơn giản SPA 28 2.3 Tấn cơng phân tích lượng phép nhân điểm ECC kit Arduino 38 2.3.1 Đối với phép nhân điểm ECC 38 2.3.2 Phần cứng kit Arduino 40 2.4 Giải pháp chống cơng phân tích lượng đơn giản SPA lên phép nhân điểm đường cong ECC 41 2.5 Kết luận chương 42 CHƯƠNG III……………………………………………………………………… 44 TRIỂN KHAI TẤN CƠNG PHÂN TÍCH NĂNG LƯỢNG ĐƠN GIẢN SPA LÊN PHÉP NHÂN ĐIỂM ĐƯỜNG CONG ELLIPTIC VÀ CÁC GIẢI PHÁP…… 44 3.1 Xây dựng thử nghiệm công SPA phép nhân điểm ECC kit Arduino 44 3.1.1 Kịch công SPA lên phép nhân điểm ECC kit Arduino 44 iii 3.1.2 Xây dựng module chương trình thực cơng SPA 44 3.1.3 Thử nghiệm module chương trình thực công SPA phép nhân điểm đường cong Elliptic kit Arduino 50 3.2 Thực triển khai giải pháp chống công SPA phép nhân điểm ECC kit Arduino 55 3.2.1 Kịch giải pháp chống công phân tích lượng SPA phép nhân điểm ECC kit Arduino 55 3.2.2 Triển khai firmware thực thi giải pháp chống công SPA lên kit Arduino 55 3.2.3 Thử nghiệm, đánh giá tính khả thi giải pháp chống cơng phân tích lượng phép nhân điểm ECC kit 59 3.3 Kết luận chương 63 KẾT LUẬN………………………………………………………………………….64 TÀI LIỆU THAM KHẢO………………………………………………………….65 iv DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt ECDLP Elliptic Curve Logarithm Problem Bài toán Logarit đường cong Elliptic ECDH Elliptic Curve Diffie-Hellman Trao đổi khóa Diffie – Hellman mật mã Elliptic ECDSA The Elliptic Curve Digital Signature Algorithm Thuật toán chữ ký số mật mã đường cong Elliptic ECIES The Elliptic Curve Intergrated Encryption System Hệ thống mã hóa tích hợp đường cong Elliptic ECMQV Elliptic Curve Menezes – Qu – Giao thức Menezes – Qu – Vanstone protocol Vanstone mật mã Elliptic ECC Elliptic Curve Cryptography Mật mã đường cong Elliptic RSA Rivest Shamir Adleman Thuật toán mã hóa công khai RSA ATM Asynchronous Transfer Mode Chế độ truyền không đồng FSTC Financial Services Technology Hiệp hội Công nghệ Dịch vụ Consortium Tài IETF Internet Engineering Task Force Nhóm đặc nhiệm kỹ thuật Internet NIST National Institute of Standards Viện nghiên cứu chuẩn quốc tế v SET Secure Electronic Transactions Giao dịch điện tử an toàn CMS Cryptographic Message Syntax Cú pháp thông điệp mật mã WAP WTLS Wireless Transport Layer Security Bảo mật lớp truyền tải không dây TLS Transport Layer Security Bảo mật tầng giao vận SSL Sercure Socket Layer Tầng socket bảo mật ECDHE Elliptic Curve Diffie – Hellman Ephemeral Cơ chế trao đổi khóa DiffieHellman đường cong Elliptic DSA Digital Signature Alacticm Chữ ký kỹ thuật số DNS Domain Name System Hệ thống phân giải tên miền vi DANH MỤC CÁC HÌNH VẼ Hình 1.1: Phép cộng đường cong Elliptic Hình 2.1: DES inner function f 27 Hình 2.2: Mơ hình q trình đo dấu vết lượng SPA 30 Hình 2.3: Sự khác lượng tiêu thụ phép tính ECC [3] 35 Hình 2.4: Vết lượng công Kocher: 36 Hình 2.5: Lưu đồ thuật tốn firmware tính phép nhân điểm chạy kit Arduino 40 Hình 2.6: Kit Arduino Mega 2560 Arduino Uno 41 Hình 3.1: Sơ đồ kết nối thiết bị dùng phép đo vết lượng công SPA 45 Hình 3.2: Vị trí kết nối điện trở với chân nguồn đất vi điều khiển Mega2560 ATmega328p 47 Hình 3.3: Vị trí đo đầu dị điện trở dùng phép đo 48 Hình 3.4: Sơ đồ nguyên lý mạch Mega 2560 vị trí đo nguồn 48 Hình 3.5: Sơ đồ nguyên lý kit Arduino Uno vị trí đo nguồn 49 Hình 3.6: Kết phép đo lượng tiêu thụ tần số 47.9 MHz 49 Hình 3.7: Quá trình thực phép nhân đơi cộng điểm vết lượng 51 Hình 3.8: Kết tìm khung liệu tương ứng với phép nhân điểm 52 Hình 3.9: Đáp ứng tần số lọc 53 Hình 3.10: Kết lọc tìm đường bao tín hiệu đoạn tín hiệu 53 Hình 3.11: Kết phân tích khóa chương trình SPA 54 Hình 3.12: Lưu đồ thuật toán firmware thực thi phép nhân điểm ECC P-256 phương pháp chống SPA Coron 56 Hình 3.13: Lưu đồ thuật tốn phép nhân điểm P-256 phương pháp chống SPA Coron 57 Hình 3.14: Lưu đồ thuật tốn phép nhân điểm P-256 với Montgomery ladder 58 Hình 3.15: Kết tính tốn phép nhân điểm ECC với phương pháp Montgomery Ladder Coron 59 vii Hình 3.16: Kết đo vết lượng với phương pháp Montgomery ladder 60 Hình 3.17: Kết chương trình cơng SPA lên phép nhân điểm ECC với phương pháp Coron 61 viii DANH MỤC BẢNG BIỂU Bảng 2.1 Thông số kỹ thuật kit 41 Bảng 3.1: Thời gian thực thi các phép tính ECC 51 Bảng 3.2: Phương pháp thực thi phép nhân điểm chống SPA 56 Bảng 3.3: Tổng hợp các kết tấn công chống tấn cơng 62 ix LỜI NĨI ĐẦU TÍNH CẤP THIẾT CỦA ĐỀ TÀI Ngày với phát triển mạnh mẽ công nghệ khoa học đại, việc trao đổi thông tin trở nên dễ dàng hết, người không trao đổi thơng tin qua trị chuyện trực tiếp, thư giấy mà cịn qua các hệ thống truyền thơng Do vấn đề bảo đảm an tồn bí mật thông tin yêu cầu vô quan trọng, khơng cịn tồn số vấn đề phát sinh: thơng tin có bị trộm cắp hay khơng? Hay thơng tin có bị sai lệch hay bị giả mạo khơng? Điều ảnh hưởng đến cá nhân, tổ chức, các công ty hay quốc gia Những bí mật cá nhân hay chí bí mật kinh doanh, tài ln mục tiêu kẻ tấn công hay các tổ chức tình báo ngồi nước Từ tình hình trên, vần đề an tồn thơng tin được đặt cấp thiết Và kỹ thuật mật mã giải pháp an tồn truyền thơng Kỹ thuật xuất từ rất lâu đơn giản, ngày có mạng máy tính người ta dùng mật mã đại Các nhà khoa học phát minh các hệ mật mã nhằm che dấu thông tin làm rõ chúng để tránh giịm ngó kẻ cố tình phá hoại các hệ mật: RSA, Elgamal,… các hệ mật kể rất an tồn xong có độ dài khóa lớn nên số lĩnh vực khơng thể sử dụng được Chính vậy, các nhà khoa học phát minh hệ mật đường cong Elliptic (ECC), hệ mật được đánh giá hệ mật có độ bảo mật an tồn cao hiệu nhiều so với hệ mật khóa cơng khai khác, được ứng dụng nhiều lĩnh vực nhiều quốc gia giới nhiên khá mẻ Việt Nam Mật mã ECC cung cấp tính an tồn tương đương với các hệ mật khóa cơng khai truyền thống, độ dài khóa lại nhỏ nhiều lần Điều có nghĩa việc cài đặt ECC sử dụng tài nguyên hệ thống lượng tiêu thụ nhỏ hơn… Với ưu mật mã ECC ngày được ưa chuộng được sử dụng rộng rãi Trong vài thập kỷ gần đây, đường cong Elliptic đóng vai trị rất quan trọng lý thuyết số mật mã Mật mã đường cong Elliptic được giới thiệu lần đầu vào năm 1985 các cơng trình nghiên cứu độc lập Neals Koblitz Victor Miller Qua quan sát thấy vết lượng có tương đồng với cách thực thi phép nhân điểm Cần biết phép nhân điểm kết chuỗi các phép cộng điểm nhân đôi điểm Khi thực thi kit phép tính gồm các cần các tiêu tốn khoảng thời gian khác Như phép tính có đặc điểm (mẫu) khác vết lượng, điều được thể rõ hình 3.7 Để tìm tồn chuỗi khóa cần nhận dạng mẫu phép cộng điểm phép nhân điểm tồn vết lượng thu được * Chương trình phân tích dấu vết lượng SPA sau: • Bước 1: Đọc liệu đo lượng tiêu thụ máy thu ESR gửi • Bước 2: Tìm vị trí thực phép nhân điểm vết lượng thu được Một khung trượt kích thước W = 100 mẫu được sử dụng để tìm vị trí bắt đầu kết thúc phép nhân điểm, xem hình 3.8 Kích thước khung trượt được chọn dựa thực nghiệm Tùy thuộc vào trường hợp mà lựa chọn phương pháp phù hợp để tìm vị trí bắt đầu kết thúc phép nhân điểm • Bước 3: Nếu tìm được vị trí bắt đầu chuyển sang lọc liệu Nếu khơng tìm kết thúc chương trình Hình 8: Kết tìm khung liệu tương ứng với phép nhân điểm • Bước 4: Lọc liệu tìm nhiễu với lọc MA (Moving Average) với độ rộng WMA = 10001 mẫu có đáp ứng tần số hình 3.9 Độ rộng MA lớn để tìm được đường bao nhiễu tần số thấp 52 Hình 9: Đáp ứng tần số lọc • Bước 5: Từ kết bước 4, thực loại bỏ bớt nhiễu tìm đường bao tín hiệu, xem hình 3.10: Hình 10: Kết lọc tìm đường bao tín hiệu đoạn tín hiệu • Bước 6: Dựa biên độ độ rộng xung tín hiệu, tìm vị trí phép nhân đơi điểm cộng điểm Giá trị độ rộng các xung phụ thuộc vào nhiều yếu tố 53 tốc độ clock, cách lập trình module mật mã Qua thực nghiệm thấy với kit Arduino Uno, độ rộng xung D (phép nhân đôi điểm) ~ 8.5 ms, độ rộng xung A (phép cộng điểm) ~ ms • Bước 7: Kết hợp kết nhận dạng bước suy khóa được sử dụng phép nhân điểm Nguyên tắc sau: + Nếu có phép nhân đơi điểm => bit khóa + Nếu có phép nhân đơi kèm với phép cộng điểm => bit khóa • Bước 8: Hiển thị kết kết thúc chương trình Kết phân tích chương trình toàn vết lượng được biểu diễn hình 3.11.a dưới: a/ b/ Hình 11: Kết phân tích khóa chương trình SPA a/ khóa lưu kit Arduino b/ 54 So sánh khóa phân tích SPA (hình 3.11.a) với khóa lưu kit (hình 3.11.b) thấy chương trình phân tích khóa dùng phép nhân điểm phương pháp Double and Add ECC Kết phân tích chứng minh mất an toàn phép nhân điểm Double and Add ECC tấn cơng phân tích lượng SPA Thực nghiệm được thực đường cong NIST P-256 nhiên tấn cơng mở rộng cho đường cong bất kì Có nhiều biện pháp để chống lại tấn cơng SPA Một các cách sử dụng thuật toán cho cân lượng các quá trình tính toán kit Tuy nhiên cần lưu ý các biện pháp bảo vệ ECC trước tấn cơng SPA khơng bảo vệ trước các tấn cơng phân tích lượng dạng khác Trên thực tế khơng có biện pháp bảo vệ tồn vẹn trước tất các loại tấn cơng kênh kề Vì cần tính đến các yếu tố thiết kế sử dụng các module mật mã 3.2 Thực triển khai giải pháp chống công SPA phép nhân điểm ECC kit Arduino 3.2.1 Kịch giải pháp chống cơng phân tích lượng SPA phép nhân điểm ECC kit Arduino Tương tự triển khai tấn công SPA lên phép nhân điểm hệ mật đường cong Elliptic, ta cần có kit Arduino có cài đặt thuật toán nhân điểm đường cong Elliptic phần mềm chống tấn công SPA để phục vụ cho việc thực triển khai chống tấn công SPA Lựa chọn giải pháp chống tấn công phù hợp, phần em lựa chọn giải pháp che dấu các vết lượng phần mềm: phương pháp Montgomery ladder Phương pháp chống SPA Coron Phần mềm chống tấn công được triển khai đồng thời với việc chạy thuật toán nhân điểm nhằm mục đích che dấu các vết lượng khác Từ chống lại tấn cơng phân tích lượng SPA 3.2.2 Triển khai firmware thực thi giải pháp chống công SPA lên kit Arduino ✓ Triển khai giải pháp chống cơng SPA 55 Như phân tích phần 1.3, có nhiều giải pháp chống tấn cơng phân tích lượng Đối với các thiết bị mật mã được thiết kế từ đầu tích hợp các giải pháp phần cứng Nếu muốn bảo vệ thiết bị mật mã có sẵn sử dụng các giải pháp phần mềm Để chống tấn công SPA lên phép nhân điểm kit Arduino lựa chọn giải pháp che dấu phần mềm Một số phương pháp thực thi phép nhân điểm được có khả thực che dấu làm cân lượng các phép tính Trong phương pháp Montgomery ladder triển khai phép nhân cho cân lượng các quá trình tính toán kit Một cách khác sử dụng phép tính phụ nhằm che khác biệt lượng tiêu thụ nhân đôi cộng điểm, phương pháp chống SPA Coron [1] Montgomery ladder Phương pháp chống SPA Coron input : k = (kn −1 , , k0 ) , P E ( Fp ), kn −1 = output : Q = KP −−−−−−−−−−−−−−−−−−−−−−− R0 R1 P for i = n − downto if (ki = 0) then 3.1 R1 R0 + R1 3.2 R0 R0 else 3.3 R0 R0 + R1 3.4 R1 R1 return( R0 ) input : k = (kn −1 , , k0 ) , P E ( Fp ), kn −1 = output : Q = KP −−−−−−−−−−−−−−−−−−−−−−− Q[0] P for i = n − downto 2.1 Q[0] 2Q[0] 2.2 Q[1] Q[0] + P 2.3 Q[0] Q[k i ] return(Q) Bảng 12: Phương pháp thực thi phép nhân điểm chống SPA 56 Lưu đồ thuật toán firmware thực thi phép nhân điểm ECC P-256 phương pháp chống SPA Coron có dạng hình 3.13: Bắt đầu Load khóa điểm gốc Khởi tạo no yes yes no Kết thúc Hình 13: Lưu đồ thuật toán phép nhân điểm P-256 phương pháp chống SPA Coron 57 Lưu đồ thuật toán firware thực thi phép nhân điểm ECC P-256 phương pháp Montgomery ladder có dạng hình 3.14 : Bắt đầu Load khóa điểm gốc Khởi tạo yes no yes no Kết thúc Hình 14: Lưu đồ thuật toán phép nhân điểm P-256 với Montgomery ladder Qua hai lưu đồ thấy số lượng phép tính không phụ thuộc vào giá trị bit ki khóa Với trường hợp phương pháp Montgomery ladder, với bất kì giá trị ki ln có phép cộng điểm phép nhân đôi Như 58 lượng tiêu thụ quá trình giống miền thời gian Với phương pháp Coron, lượng quá trình tính phép cộng điểm nhân đôi điểm không phụ thuộc vào giá trị ki , tương tự lưu giá trị vào các ghi để dùng vịng tính toán tới Với cách thực thi lượng tiêu thụ vịng tính toán giống miền thời gian biên độ Kết tính toán phép nhân điểm ECC kit với hai phương pháp chống tấn cơng SPA sau: Hình 15: Kết tính tốn phép nhân điểm ECC với phương pháp Montgomery Ladder Coron Qua hình 3.15 thấy kết tính phép nhân điểm kit Arduino khơng đổi áp dụng các phương pháp chống tấn công SPA 3.2.3 Thử nghiệm, đánh giá tính khả thi giải pháp chống cơng phân tích lượng phép nhân điểm ECC kit ✓ Thử nghiệm giải pháp chống công SPA Kết đo lượng tiêu thụ kit chạy phép nhân điểm ECC phương pháp Montgomery ladder hình 3.6.a Kết đo lượng tiêu thụ với phương pháp Coron có dạng hình 3.16.b Để tiện cho quan sát vết lượng được cho qua lọc thơng thấp nhằm tìm đường bao tín hiệu: 59 a/ b/ c/ Hình 16: Kết đo vết lượng với phương pháp Montgomery ladder (a), phương pháp Coron (b) phương pháp Double and Add (c) 60 Có thể thấy vết lượng tiêu thụ hình 3.16.a 3.16.b khác so với hình 3.16.c Điểm khác biệt lớn nhất thời gian biên độ tín hiệu sau lọc Ở hình 3.16.a b lượng kit dùng để tính phép nhân điểm với bit ‘0’ bit ‘1’ khóa tương đương thời gian biên độ Cịn hình 3.16.c thấy rõ khác biệt tính bit ‘0’ bit ‘1’ Điều được dự đoán từ cách triển khai thuật toán được chứng minh thông qua kết đo lượng tiêu thụ Nhờ đặc trưng mà ECC với phương pháp Montgomery ladder Coron chống được tấn công SPA Kết thực tấn công SPA lên vết lượng thu được kit thực thi phép nhân với phương pháp Montgomery ladder phương pháp Coron hình 3.17 dưới: a/ b/ Hình 17: Kết chương trình cơng SPA lên phép nhân điểm ECC với phương pháp Coron a/ Montegomery Ladder b/ So sánh kết hình 3.17 kết chương thấy các phương pháp bảo vệ phép nhân điểm ECC có hiệu Thay phân tích được xác giá trị khóa, dùng giải pháp bảo vệ chương trình phân tích được 61 chuỗi giá trị F '11111111' Điều thấy được từ thuật toán bảng 3.2, lượng được cân quá trình tính phép cộng điểm nhân đơi điểm nên giá trị phân tích các bit khóa ln Trừ số điểm có nhiễu cao nên giá trị phân tích sai khác giá trị F , xem hình 3.17.a Cần lưu ý các biện pháp bảo vệ ECC trước tấn cơng SPA khơng hiệu trước các tấn cơng phân tích lượng dạng khác DPA, High-order DPA, các dạng tấn công chủ động ✓ Đánh giá kết Tổng hợp các kết thử nghiệm tấn cơng chống tấn cơng phân tích lượng với phép nhân điểm với đường cong P-256 kit Arduino có dạng bảng 3.3 Phép nhân điểm SPA Trên P-256 Phương pháp Double and Add Tìm được tồn khóa Phương pháp Montgomery Ladder Khơng tìm được khóa Phương pháp Coron Khơng tìm được khóa Double and Add kết hợp Masking khóa Tìm được khóa sau masking Montgomery Ladder Coron kết Khơng tìm được khóa hợp masking khóa Bảng 3.2: Tổng hợp kết công chống công 62 3.3 Kết luận chương Trong chương 3, em tiến hành triển khai hệ thống tấn công kênh kề lên thuật toán mã hóa ECC khơng được bảo vệ tiến hành khơi phục lại được khóa Từ việc tấn công thành công em thực lựa chọn triển khai giải pháp bảo vệ chống tấn cơng phân tích lượng cho firmware phép nhân điểm kit Arduino Đối với tấn công SPA, sử dụng các phương pháp Montgomery Ladder phương pháp Coron Sau thử nghiệm chương trình tấn cơng SPA lên kit Arduino rút được các giải pháp chống tấn cơng nêu có hiệu rõ rệt 63 KẾT LUẬN Về mặt lý thuyết, đồ án trình bày được các nội dung sau: • Tổng quan hệ mật đường cong Elliptic • Làm quen với kit Arduino • Khái niệm tấn cơng phân tích lượng đơn giản SPA Về mặt thực nghiệm, đồ án thu được các kết sau: • Thực thành công tấn công SPA lên phép nhân điểm hệ mật đường cong Elliptic kit Arduino • Thực thành công giải pháp chống tấn công SPA lên phép nhân điểm hệ mật đường cong Elliptic kit Arduino Hướng phát triển Vì thời gian nghiên cứu hạn chế, nên đồ án em dừng lại việc tìm triển khai các giải pháp chống tấn cơng phân tích lượng đơn giản SPA hệ mật đường cong Elliptic Sau hoàn thành đồ án, em tiếp tục sâu nghiên cứu thêm các tấn cơng có hiệu cao CPA, DPA… tìm hiểu triển khai các giải pháp chống lại các tấn cơng 64 TÀI LIỆU THAM KHẢO [1] P C Kocher, J Jaffe, B Jun, “Differential Power Analysis”, Advances in Cryptology – CRYPTO, 1999 [2] Coron J S., “Resistance against Diffrential Power Analysis for Elliptic Curve Cryptosystems”, In Proceedings of CHES, 1999 [3] Walter C.D., “Simple Power Analysis of Unified Code for ECC Double and Add”, International Association for Cryptologic Research, 2004 [4] Stefan M., Elisabeth O., “Power Analysis Attacks: Revealing the Secrets of Smart Cards”, Springer, 2007 [5] Jaffe J., “Introduction to differential power analysis In: Summer School on Cryptographic Hardware, Side-Channel and Fault Attacks”, ECRYPT, 2006 [6] Simon C K Ho, “EM Analysis of ECC Computations on Mobile Devices”, University of Waterloo, 2005 [7] Jaffe J., “DPA - what’s now possible”, CHES 2010 rump session presentation, 2010 [8] Miller V S., “Use of Elliptic Curves in Cryptography”, Proceedings of Crypto 85, LNCS 218, Berlin, 1986 [9] Junfeng Fan, Xu Guo, Mulder E.D., “State-of-the-art of secure ECC implementations: a survey on known side-channel attacks and countermeasures”, IEEE, 2010 [10] Krasovsky A.V., Maro E.A., “Actual and Historical State of Side Channel Attacks Theory”, The 12th International Conference on Security of Information and Networks, 2019 [11] “FIPS PUB 186-4-federal information processing standards publication digital signature standard (DSS)”, The National Institute of Standards and Technology (NIST), 2013 [12] Koblitz N., “Elliptic Curve Cryptosystems, Mathematics of Computation”, 1987 [13] Keke Wu, , Huiyun Li, Tingding Chen, “Simple Power Analysis on Elliptic Curve Cryptosystems and Countermeasures: Practical Work”, Technical Report, 2003 65 [14] Raphael Spreitzer, Veelasha Moonsamy, “Systematic Classification of SideChannel Attacks: A Case Study for Mobile Devices”, IEEE, 2017 [15] Cockrum C.K., “Implementation of an Elliptic Curve Cryptosystem on an 8-bit Microcontroller”, 2009 [16] Mustafa M.S., Iman S.A., “Attacking Misaligned Power Tracks Using Fourth Order Cumulant”, IJACSA, 2013 66