Chương 1 - Giới thiệu đề tài: nhằm giới thiệu tổng quan về bài toán mã hóa đường cong và mục đích hướng đến của đề tài. • Chương 2 - Cơ sở lý thuyết và các công trình nghiên cứu liên quan: trình bày những cơ sở lý thuyết liên quan đến đề tài được sử dụng và các nghiên cứu mang tính ứng dụng lẫn phát triển liên quan đến đề tài. • Chương 3 - Giới thiệu về phần cứng FPGA và sản phẩm Kria KV260 vision AI thực hiện trong luận văn. • Chương 4 - Phương pháp giải quyết vấn đề: Trình bày các dạng giải thuật mã hóa đường cong, đặc điểm, thuật toán và phân tích các bước tính toán có thể gây hao tổn tài nguyên và đề xuất hướng giải quyết.
3 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình • Chương 5 - Hiện thực hệ thống trên công cụ Vivado - Giải thích sơ đồ, nguyên lý hoạt động của hệ thống và cách thiết lập, xây dựng một chương trình hoàn chỉnh • Chương 6 - Đánh giá và phân tích kết quả: Diễn giải kết quả đánh giá của phương pháp và so sánh với các nghiên cứu liên quan. • Chương 7 - Kết luận: Nêu kết luận đúc kết được trong quá trình nghiên cứu và mở rộng hướng phát triển đề tài. 4 CHƯƠNG 2 Cơ sở lý thuyết 2.1 Khái quát về mã hóa và giải thuật mã hóa đường cong Elliptic Curve 2.1 Giới thiệu về mã hóa Mã hóa là một phương pháp quan trọng trong bảo mật thông tin, giúp biến đổi dữ liệu từ dạng rõ ràng thành dạng không rõ ràng bằng cách sử dụng các thuật toán và khóa. Có nhiều hình thức mã hóa, bao gồm mã hóa đối xứng và bất đối xứng, với mục tiêu chung là đảm bảo tính bí mật và toàn vẹn của dữ liệu [6].
Một hệ thống mã hóa và giải mã bao gồm các thành phần: Hình 2.1: Mô hình mã hóa, giải mã cơ bản Quá trình mã hóa được tiến hành bằng cách áp dụng hàm toán học (E) lên thông tin P, vốn được biểu diễn dưới dạng số, để trở thành thông tin đã mã hóa C. Quá trình giải mã được tiến hành ngược lại: áp dụng hàm D lên thông tin C để được thông tin đã giải mã P. Yêu cầu của mã hóa /giải mã bao gồm: Tính bảo mật (confidentiality), Tính toàn vẹn (integrity), Tính xác thực(authentication), không thể chối bỏ (non- repudiation) [7]. 5 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình Các loại mã hóa chính hiện nay: mã hóa đối xứng, mã hóa bất đối xứng.
Mã hóa đối xứng: là loại mã hoá mà khoá mã hoá và khoá giải mã là một (sử dụng cùng một khoá mật mã). Đây là loại mã hoá thông dụng nhất hiện nay dùng để trao đổi dữ liệu. Nhược điểm của phương pháp này là làm thế nào để thống nhất được khoá mật mã giữa bên gửi và bên nhận. Nếu truyền khoá mật mà không dùng bất cứ phương pháp bảo vệ nào thì bên thứ ba cũng có khả năng lấy được khoá mật mã này một cách dễ dàng.
Thuật toán mã hoá đối xứng thường gặp nhất hiện nay đó là DES và AES,. [8] Mã hóa bất đối xứng: là mã hóa mà trong đó khoá mã hoá và khoá giải mã khác nhau. Mọi người đều có thể biết được khoá mã hoá và có thể dùng để mã hoá thông tin. Tuy nhiên, chỉ có người nhận mới nắm giữ khoá giải mã, vì vậy chỉ người nhận mới giải mã được thông tin, dữ liệu.
Nhược điểm lớn nhất của phương pháp này đó là tốc độ mã hóa và giải mã diễn ra rất chậm so với phương pháp mã hoá đối xứng. Nếu dùng mã hoá bất đối xứng để truyền – nhận dữ liệu thì sẽ tốn khá nhiều chi phí. Thuật toán phổ biến là RSA, ECC[8].2 Hệ mật mã đường cong ECC Mật mã đường cong Elliptic (Elliptic Curve Cryptography - ECC) là một hệ thống mã hóa khóa công cộng bất đối xứng bên cạnh hệ thống RSA. ECC được giới thiệu lần đầu vào năm 1991 bởi các công trình nghiên cứu độc lập của Neals Koblitz và Victor Miller [9].
Độ an toàn của ECC dựa vào bài toán logarit rời rạc trên nhóm các điểm của đường cong elliptic (ECDLP). Những ưu điểm mà ECC mang lại bao gồm: yêu cầu bộ nhớ thấp, khả năng xử lý thấp, độ an toàn cao và thích hợp với các ứng dụng smart card, PDA, cellular phone, v. 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 nhỏ hơn nhiều lần. Người ta đã ước lượng rằng cỡ khoá 3248 bit của hệ mật RSA cho cùng một độ an toàn như 256 bit của hệ mật ECC, kết quả so sánh được thống kê ở bảng 2.
Điều đó có nghĩa là việc cài đặt ECC sử dụng tài nguyên hệ thống ít hơn, năng lượng tiêu thụ nhỏ hơn. Với ưu thế về độ dài khóa nhỏ, ECC đang được ứng dụng rộng rãi trong nhiều lĩnh vực. Đường cong elliptic là tập hợp các điểm thỏa mãn một phương trình toán học cụ thể. Phương trình cho một đường cong elliptic: y 2 = x3 + ax + b (2.1) 6 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình Tính chất của ECC là đối xứng qua trục x.
Bất kỳ điểm nào trên đường cong đều được phản ánh qua trục x và vẫn giữ nguyên đường cong. Một đặc tính nữa của đường cong này là bất kỳ đường không thẳng đứng nào cũng sẽ cắt đường cong ở nhiều nhất là ba điểm như hình: 2.2: Đường cong ECC đối xứng qua trục X và cắt đường cong ở nhiều nhất 3 điểm Bảng 2.1: Thời gian phá khóa ứng với chiều dài của khóa ở mã hóa RSA và ECC, nguồn:[11] Thời gian phá khóa (năm) khóa RSA (bit) khóa ECC (bit) 104 512 106 8 10 768 132 1011 1,024 160 20 10 2,048 210 1078 210,000 600 Trong lĩnh vực mã hóa bất đối xứng, nhiều nghiên cứu và đề xuất được đề ra để giải quyết việc số lượng phép tính cần thiết để tìm ra cách mã hóa an toàn nhất. Trong đó, hai trong số các đề xuất vẫn còn tồn tại đến hiện nay bao gồm: bài toán logarit rời rạc (discrete logarithm problem) và bài toán phân tích thừa số nguyên tố (prime finite field). Từ những giải pháp trên, một số bài toán được công bố dựa trên các đề xuất hệ thống mật mã được liệt kê như sau: Khởi đầu nền móng của đường cong Elliptic là công thức Weierstrasse.
Đặt K là một trường hữu hạn hoặc vô hạn. Một đường cong được định nghĩa bằng 7 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình công thức Weierstrasse như sau: y 2 + a1 xy + a3 y = x3 + a2 x2 + a4 x + a6 (2.2) trong đó, a1 , a2 , a3 , a4 , a6 ∈ K Đường cong elliptic trên trường K được ký hiệu E(K). Số lượng các điểm nguyên trên E được thể hiện dưới dạng #E(K). Đối với từng trường khác nhau, công thức 2.2 có thể được biến đổi thành các dạng khác nhau.
Và một đường cong elliptic là tập hợp các điểm thỏa công thức trên.1 Đường cong elliptic trên trường nguyên tố hữu hạn Đường cong elliptic được xây dựng trên các trường hữu hạn E(Fq ) được biểu diễn dưới dạng: y 2 = x3 + ax + b (2.3) Với P là điểm thuộc đường cong trên, được biểu diễn P(x,y) và ∀ P ∈ E. (x, -y) kí hiệu là -P, gọi là điểm âm của P. Các phép toán được sử dụng trên trường này: 2.1 Phép cộng điểm điểm được định nghĩa trên tập đường cong Phép cộng E(R) của các điểm có tọa độ (x,y). Theo quy ước, điểm tại vô cực O là điểm cộng với bất kỳ điểm nào cũng sẽ thành chính điểm đó.5) Với 1 giá trị x, ta sẽ có 2 giá trị tọa độ y.6) Ở phương diện hình học, giả sử ta có 2 điểm phân biệt P và Q, P, Q ∈ E(R), ta có phép cộng điểm trên đường cong elliptic là: P + Q = R; Ở phương diện đại số, ta có: P = (x1 , y1 ), Q = (x2 , y2 ); R = P + Q = (x3 , y3 ) (2.7) 8 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình Trong đó, P, Q, R ∈ E(R) và: x3 = θ 2 − x1 − x2 (2.10) x2 − x1 Hoặc nếu P = Q, thì 3x2 1 + a4 θ= (2.2 Phép nhân Phép nhân được định nghĩa như một dãy các phép cộng: Q = mP = P + P + .2 Đường cong elliptic trên trường nhị phân E(F2m ) Đường cong elliptic trong trường nhị phân được biểu diễn dưới dạng: y 2 + xy = x3 + ax2 + b (2.13) Với P là điểm thuộc đường cong trên, được biểu diễn P(x,y) và ∀ P ∈ E(F2m ).
Điểm (x, x+y) kí hiệu là -P, gọi là điểm âm của P. Các phép toán được sử dụng trên trường này: 2.1 Giả sử: P = (x1 , y1 ) ∈ E(F2m ); Q = (x2 , y2 ) ∈ E(F2m ) và Phép cộng P̸=±Q thì P + Q = (x3 , y3 ) với: x3 = λ2 + λ + x1 + x2 + a (2.16) x1 + x2 9 Hệ thống tăng tốc phần cứng cho giải thuật mã hóa dựa trên tính toán tái cấu hình 2.2 Phép nhân Giả sử: P = (x1, y1) ∈ E(F2m ), và P ̸= ¬P , thì 2P = (x3, y3), với: b x3 = λ2 + λ + a = x21 + (2.2 Biểu diễn tọa độ trên trường hữu hạn Có ba dạng tọa độ cơ bản thường được sử dụng. Đó là tọa độ quan hệ (Affine Coordinate), tọa độ chiếu (Projective Coordinate) [13].1 Tọa độ quan hệ - tọa độ Affine Một điểm hữu hạn P trên (E) được xác định bởi hai phần tử x, y trong GF(p) thỏa mã phương trình đường cong: (E) : Y 2 = X 3 + aX + b; a, b ∈ Fq ; 4a3 + 27b2 ̸= 0( mod p) (2.20) Chúng được gọi là tọa độ quan hệ của điểm P. Điểm ở vô cực ∞ không có tọa độ Affine.
Để phục vụ cho mục đích tính toán, người ta thường biểu diễn ∞ bởi một cặp các hệ số (x,y) không nằm trên (E). QUY LUẬT: Gọi E là đường cong elliptic được định nghĩa trên trường hữu hạn P bởi phương trình (E) : Y 2 = X 3 + aX + b; a, b ∈ Fq ; 4a3 + 27b2 ̸= 0( mod p).