Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh bùng nổ của công nghệ thông tin và truyền thông kỹ thuật số, việc bảo vệ dữ liệu truyền tải, chống can thiệp trái phép, bảo đảm tính toàn vẹn và xác thực danh tính trở thành yêu cầu thiết yếu. Mật mã học bất đối xứng đóng vai trò cốt lõi trong việc cung cấp cơ chế chữ ký số và trao đổi khóa an toàn. Thuật toán chữ ký số trên đường cong Elliptic (ECDSA) được xem là giải pháp thay thế ưu việt cho hệ thống RSA truyền thống nhờ khả năng cung cấp mức độ an toàn tương đương nhưng với kích thước khóa nhỏ hơn đáng kể (khóa ECDSA 256-bit có độ an toàn tương đương RSA 2048-bit), giúp tiết kiệm tài nguyên tính toán, rút ngắn thời gian xử lý và giảm băng thông truyền tải.

Để đáp ứng nhu cầu bảo mật hiệu năng cao trong các hệ thống nhúng, thiết bị IoT và các ứng dụng chuỗi khối (blockchain), việc hiện thực phần cứng cho ECDSA trên nền tảng FPGA là hướng tiếp cận hiệu quả nhằm tăng tốc xử lý và tối ưu hóa tài nguyên phần cứng. Khóa luận tập trung vào việc nghiên cứu, thiết kế và hiện thực lõi IP (Intellectual Property core) thuật toán chữ ký số ECDSA tích hợp hàm băm SHA-256 trên nền tảng FPGA Xilinx Virtex-7.

Mục tiêu cụ thể của đề tài bao gồm 5 nhiệm vụ chính:

  1. Nghiên cứu và hiện thực các thuật toán số học modulo trên trường hữu hạn bao gồm: cộng modulo, trừ modulo, nhân modulo và nghịch đảo modulo, với tần số hoạt động mong muốn tối thiểu đạt 100 MHz.
  2. Nghiên cứu và hiện thực hai phép toán chính trên đường cong Elliptic là phép cộng hai điểm khác nhau (Point Addition - PA) và phép nhân đôi điểm (Point Doubling - PD), từ đó xây dựng phép nhân vô hướng điểm (Scalar Multiplication) sử dụng các khối modulo đã thiết kế.
  3. Nghiên cứu và hiện thực thuật toán băm an toàn SHA-256 với tần số hoạt động tối thiểu đạt 50 MHz.
  4. Hiện thực thiết kế phần cứng hoàn chỉnh hỗ trợ cả hai quá trình sinh chữ ký và xác thực chữ ký của thuật toán ECDSA kết hợp với SHA-256.
  5. Xây dựng và tích hợp lõi IP ECDSA vào hệ thống trên chip (SoC) trên kit FPGA, hướng tới tần số hoạt động tối thiểu 50 MHz và tối ưu hóa tài nguyên sử dụng.

Đối tượng và phạm vi nghiên cứu của đề tài được xác định như sau:

  • Đối tượng nghiên cứu: Kiến trúc phần cứng cho thuật toán chữ ký số ECDSA, thuật toán băm SHA-256 và các phép toán số học trường hữu hạn $F_p$.
  • Phạm vi kỹ thuật: Đề tài áp dụng chuẩn đường cong Elliptic secp256k1 256-bit theo tiêu chuẩn FIPS của Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST); sử dụng hệ tọa độ quan hệ Affine trên trường nguyên tố $F_p$; thuật toán băm SHA-256 thuộc họ SHA-2 theo chuẩn FIPS PUB 180-2.
  • Phạm vi triển khai và thực nghiệm: Hệ thống được thiết kế bằng ngôn ngữ mô tả phần cứng, kiểm tra chức năng bằng mô phỏng trên phần mềm Vivado và kiểm chứng phần cứng trên kit phát triển Xilinx Virtex-7 FPGA VC707 kết hợp môi trường Vitis.

Cơ sở lý thuyết và phương pháp

Khóa luận được xây dựng dựa trên các nền tảng lý thuyết toán học mật mã và các tiêu chuẩn quốc tế:

  • Bài toán Logarithm rời rạc (DLP): Độ an toàn của hệ mật ECC dựa trên độ khó của bài toán logarithm rời rạc trong nhóm cyclic các điểm trên đường cong Elliptic qua trường hữu hạn. Không tồn tại thuật toán đa thức hiệu quả để giải bài toán tìm số nguyên $k$ từ phương trình $Q = kP$.
  • Trường hữu hạn và tham số đường cong: Hệ mật mã hoạt động trên trường hữu hạn nguyên tố $F_p$ với phương trình tổng quát dạng Weierstrass rút gọn $y^2 = x^3 + ax + b$. Đường cong secp256k1 sử dụng các tham số chuẩn hóa:
    • $p = 2^{256} - 2^{32} - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1$
    • Hệ số $a = 0$, hệ số $b = 7$
    • Điểm cơ sở $G = (x_G, y_G)$ và bậc nguyên tố $n$.
  • Thuật toán chữ ký số ECDSA: Bao gồm quy trình tạo cặp khóa (khóa bí mật $d$, khóa công khai $Q = dP$), quy trình sinh chữ ký tạo ra cặp số $(r, s)$ từ thông điệp $m$ và số ngẫu nhiên $k$, cùng quy trình xác thực chữ ký kiểm tra tính hợp lệ của $r' = r$.
  • Thuật toán băm SHA-256: Chuẩn FIPS PUB 180-2 thực hiện biến đổi thông điệp đầu vào có độ dài bất kỳ thành chuỗi tóm lược cố định 256-bit qua 4 giai đoạn: đệm dữ liệu (padding 512-bit block), khởi tạo giá trị băm ban đầu ($h_0 - h_7$), mở rộng từ ($W_0 - W_{63}$) và thực hiện hàm nén 64 vòng lặp.

Phương pháp nghiên cứu và thiết kế phần cứng được triển khai theo mô hình phân tầng từ dưới lên (Bottom-Up Approach):

  • Tầng thấp nhất (Lower Layer): Thiết kế bộ xử lý số học trường nguyên tố ($F_p$-ALU) bao gồm khối cộng/trừ modulo tổ hợp, khối nhân modulo theo giải thuật Hossain và khối nghịch đảo modulo nhị phân (Binary Inversion Algorithm).
  • Tầng trung gian (Middle Layer): Thiết kế khối tính toán đường cong Elliptic (EC_Unit) thực hiện lập lịch cho các phép tính PA (Point Addition) và PD (Point Doubling) trên hệ tọa độ Affine.
  • Tầng trên cùng (Upper Layer): Thực hiện phép nhân vô hướng $k \cdot P$ bằng thuật toán Double-and-Add, tích hợp cùng khối SHA-256 để tạo thành bộ điều khiển ký và xác thực ECDSA hoàn chỉnh.

Nguồn dữ liệu và kiểm chứng: Các bộ vector kiểm thử (test vectors) ngẫu nhiên được sinh bằng mã nguồn Python, đối chiếu trực tiếp với các công cụ tính toán mật mã trực tuyến và kết quả mô phỏng dạng sóng trên phần mềm Vivado trước khi tổng hợp và thực thi trên kit phần cứng.


Thiết kế và triển khai hệ thống phần cứng

Hệ thống phần cứng lõi IP ECDSA được tổ chức thành các khối chức năng chính với kiến trúc đường dữ liệu (Datapath) và máy trạng thái hữu hạn (FSM) điều khiển chuyên biệt:

+---------------------------------------------------------------+
|                       Hệ thống SoC                            |
|  +-------------------+        +----------------------------+  |
|  |   Bộ xử lý /      |        |        Lõi IP ECDSA        |  |
|  |   Vitis Console   |<======>| +------------------------+ |  |
|  |                   | Bus HT | | Khối SHA-256           | |  |
|  +-------------------+        | +------------------------+ |  |
|                               | | Khối EC_Unit (Affine)  | |  |
|                               | | +--------------------+ | |  |
|                               | | | Bộ Fp-ALU (256-bit)| | |  |
|                               | | +--------------------+ | |  |
|                               | +------------------------+ |  |
|                               +----------------------------+  |
+---------------------------------------------------------------+

1. Kiến trúc bộ xử lý số học Fp-ALU (256-bit)

Khối $F_p$-ALU là thành phần cốt lõi ở tầng thấp nhất, hỗ trợ độ rộng dữ liệu 256 bit cho mọi phép toán:

  • Khối cộng/trừ modulo: Tích hợp cả hai phép tính cộng và trừ modulo trên cùng một khối phần cứng nhằm tiết kiệm tài nguyên. Khối sử dụng 2 bộ cộng 256-bit, các cổng logic và bộ ghép kênh (multiplexer) được điều khiển bởi tín hiệu Sel_Op. Phép toán hoàn thành trong đúng 1 chu kỳ xung clock.
  • Khối nhân modulo (Hossain Algorithm): Kiến trúc bao gồm các cổng AND, 3 bộ cộng, 2 bộ so sánh, thanh ghi dịch và một bộ đếm xuống từ $n-1$ về 0. Khối được điều khiển bởi máy trạng thái FSM 4 trạng thái ($S_0, S_1, S_2, S_3$), hoàn thành phép nhân 256-bit trong $n + 1$ (257) chu kỳ xung clock.
  • Khối nghịch đảo modulo nhị phân: Thực hiện tìm nghịch đảo phần tử $x^{-1} \pmod p$ thông qua thuật toán dịch bit và trừ liên tiếp. Khối Datapath tích hợp các bộ so sánh, bộ dịch phải và các bộ cộng/trừ, được điều khiển bởi FSM gồm 8 trạng thái ($S_0, S_7, S_1, S_2, S_3, S_4, S_5, S_6$).

2. Khối tính toán điểm trên đường cong Elliptic (EC_Unit)

Khối EC_Unit sử dụng kiến trúc ghép nối linh hoạt với 4 đầu vào, 4 đầu ra và 6 thanh ghi 256-bit trung gian, cho phép kích hoạt song song các bộ toán hạng độc lập trong $F_p$-ALU:

  • Phép cộng hai điểm khác nhau (PA): Triển khai qua 5 bước tuần tự:
    1. $t_1 = y_2 - y_1$
    2. $t_2 = x_2 - x_1$
    3. $t_2 = t_1 / t_2 \pmod p$ (tính độ dốc $\lambda$)
    4. $t_1 = t_2 \cdot t_1$
    5. Tính toán tọa độ điểm kết quả $P_3(x_3, y_3)$.
  • Phép nhân đôi điểm (PD): Triển khai qua 12 bước tính toán với các phép nhân, bình phương và trừ modulo để xác định tiếp tuyến và tọa độ điểm $P_4(x_4, y_4)$.
  • Phép nhân vô hướng điểm: Thực hiện thuật toán Double-and-Add quét từng bit của số nguyên $k$ từ trọng số cao đến trọng số thấp để gọi luân phiên phép tính PD và PA.

3. Khối băm an toàn SHA-256

Khối SHA-256 được thiết kế độc lập gồm:

  • Datapath: Module mở rộng từ tính toán các giá trị $W_i$ ($i = 16 \dots 63$) từ 16 từ đầu vào thông qua các hàm xoay bit logic ($\sigma_0, \sigma_1$), module nén dữ liệu 64 vòng với các hàm lựa chọn ($Ch$), hàm đa số ($Maj$) và các hằng số vòng $K_t$.
  • FSM điều khiển: Quản lý nạp khối dữ liệu 512-bit, khởi tạo vector ban đầu ($h_0 - h_7$), điều khiển 64 vòng lặp nén và xuất giá trị băm 256-bit cuối cùng.

4. Tích hợp lõi IP ECDSA và Hệ thống trên chip (SoC)

Lõi IP ECDSA liên kết khối SHA-256 và EC_Unit dưới sự điều phối của một máy trạng thái trung tâm. Hệ thống được tích hợp vào nền tảng SoC trên phần mềm Vivado, kết nối với bộ xử lý nhúng qua hệ thống bus, cho phép nhận thông điệp, khóa bí mật/công khai từ máy tính qua giao diện Vitis Console và trả về kết quả ký hoặc xác thực.


Nội dung chính theo từng chương

Chương Tên chương Luận điểm, nội dung kỹ thuật và phát hiện chính
Chương 1 Tổng quan đề tài Trình bày tính cấp thiết của an toàn thông tin trong truyền tải dữ liệu; phân tích ưu thế vượt trội của hệ mật mã đường cong Elliptic (ECC) so với RSA về kích thước khóa và tốc độ; xác định 5 mục tiêu cụ thể và phạm vi giới hạn của đề tài (chuẩn secp256k1, SHA-256, nền tảng FPGA Xilinx Virtex-7 VC707).
Chương 2 Cơ sở lý thuyết Hệ thống hóa lý thuyết mật mã học (mã hóa đối xứng, bất đối xứng, hàm băm); giải thích toán học bài toán logarithm rời rạc trên trường hữu hạn $F_p$; định nghĩa đường cong Elliptic, các phép toán nhóm điểm (PA, PD, phép nhân vô hướng); chi tiết hóa tham số hệ mật secp256k1; phân tích thuật toán ký/xác thực DSA và ECDSA; mô tả chi tiết 4 quá trình hoạt động của thuật toán băm SHA-256.
Chương 3 Hiện thực thuật toán Thiết kế chi tiết kiến trúc phần cứng 3 tầng của lõi IP ECC: tầng cơ sở ($F_p$-ALU 256-bit với cộng/trừ 1 chu kỳ, nhân modulo Hossain $n+1$ chu kỳ, nghịch đảo modulo 8 trạng thái); tầng trung gian (lập lịch PA 5 bước, PD 12 bước); tầng trên cùng (nhân vô hướng Double-and-Add); thiết kế khối Datapath/FSM cho SHA-256 và ECDSA; xây dựng mô hình kết nối SoC hoàn chỉnh trên phần mềm Vivado.
Chương 4 Kết quả hiện thực và đánh giá Trình bày kết quả kiểm tra chức năng thông qua mô phỏng trên Vivado với nhiều bộ testcase đối sánh cùng Python và công cụ trực tuyến; tổng hợp và đánh giá các thông số phần cứng sau khi nạp lên kit FPGA Virtex-7 VC707 (tài nguyên logic LUT, FF, BRAM, DSP, tần số cực đại, công suất tiêu thụ và thời gian thực thi); so sánh hiệu năng thiết kế với các công trình nghiên cứu trước đây.

Kết quả và đóng góp

1. Kết quả kiểm tra chức năng và mô phỏng

Các khối chức năng trong thiết kế đều vượt qua các bài kiểm tra mô phỏng dạng sóng trên phần mềm Vivado và cho kết quả khớp chính xác 100% với các phép tính mẫu từ Python và công cụ mật mã trực tuyến:

  • Khối cộng/trừ modulo, nhân modulo và nghịch đảo modulo tính toán chính xác trên các số nguyên lớn 256-bit ngẫu nhiên.
  • Khối PA và PD thực thi chính xác trên 5 bộ testcase mẫu với các tọa độ điểm trên đường cong secp256k1.
  • Khối SHA-256 tạo giá trị băm chính xác tuyệt đối trên các chuỗi văn bản thử nghiệm khác nhau.
  • Khối ECDSA thực hiện thành công toàn bộ chu trình sinh chữ ký $(r, s)$ và xác thực chữ ký ($r' = r$) trên phần mềm mô phỏng và phần cứng thực tế qua cửa sổ Vitis Console.

2. Kết quả tổng hợp phần cứng trên kit Xilinx Virtex-7 VC707

Thiết kế đã được tổng hợp, thực thi (Place & Route) thành công trên kit FPGA Xilinx Virtex-7 VC707 với các chỉ số tài nguyên, tần số và thời gian thực thi cụ thể:

Thành phần thiết kế Tần số hoạt động Thời gian / Chu kỳ thực thi Tài nguyên sử dụng & Đánh giá
Khối cộng/trừ modulo $\ge 100\text{ MHz}$ 1 chu kỳ xung clock Mạch tổ hợp, sử dụng tài nguyên LUTs tối thiểu
Khối nhân modulo $\ge 100\text{ MHz}$ 257 chu kỳ xung clock Tối ưu đường trễ, điều khiển qua FSM 4 trạng thái
Khối nghịch đảo modulo $\ge 100\text{ MHz}$ Biến thiên theo dữ liệu Thuật toán nhị phân, FSM 8 trạng thái
Khối SHA-256 $\ge 50\text{ MHz}$ 64 chu kỳ nén / block Băm hoàn chỉnh khối 512-bit, tiêu thụ năng lượng thấp
Lõi IP ECDSA hoàn chỉnh $\ge 50\text{ MHz}$ Đáp ứng yêu cầu thời gian thực Tích hợp toàn diện trên hệ thống SoC của kit Virtex-7

3. Đóng góp của đề tài

  • Xây dựng thành công lõi IP phần cứng độc lập cho thuật toán ECDSA 256-bit kết hợp SHA-256 có cấu trúc phân tầng rõ ràng, dễ bảo trì và tái sử dụng.
  • Tối ưu hóa kiến trúc khối cộng/trừ modulo dùng chung tài nguyên tổ hợp và triển khai thành công bộ nhân modulo hiệu năng cao theo giải thuật Hossain.
  • Thiết kế hệ thống Datapath linh hoạt trong bộ $F_p$-ALU, cho phép thực thi song song các toán hạng độc lập, giảm thiểu tổng chu kỳ thực thi cho các phép toán điểm trên đường cong Elliptic.
  • Triển khai và kiểm chứng thành công toàn bộ thiết kế trên kit phần cứng thực tế Virtex-7 FPGA VC707 thông qua mô hình SoC.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung được tác giả trình bày trong văn bản:

  • Hạn chế:
    • Thiết kế chỉ tập trung triển khai trên một loại đường cong duy nhất là secp256k1 trên trường nguyên tố $F_p$, chưa hỗ trợ đa đường cong hoặc trường nhị phân $GF(2^m)$.
    • Phép toán trên đường cong Elliptic hiện thực trên hệ tọa độ quan hệ Affine, đòi hỏi phải thực hiện phép chia (nghịch đảo modulo) ở mỗi phép cộng điểm, làm tăng số chu kỳ thực thi so với các hệ tọa độ chiếu (Projective hoặc Jacobian Coordinates).
    • Thuật toán nhân vô hướng sử dụng phương pháp Double-and-Add cơ bản, chưa áp dụng các kỹ thuật nâng cao như Montgomery Ladder hay Sliding Window để tăng tốc và kháng tấn công kênh kề (Side-Channel Attacks).
  • Hướng nghiên cứu tiếp:
    • Nghiên cứu và hiện thực các hệ tọa độ chiếu (Projective, Jacobian) nhằm loại bỏ phép nghịch đảo modulo trong các bước tính trung gian của phép nhân điểm.
    • Áp dụng các thuật toán nhân vô hướng tối ưu hơn như Montgomery Ladder hoặc biểu diễn NAF (Non-Adjacent Form) để tăng tốc độ ký số và nâng cao khả năng bảo mật phần cứng.
    • Mở rộng lõi IP hỗ trợ đa chuẩn đường cong theo chuẩn NIST (như secp384r1, secp521r1).

Giá trị tham khảo

Khóa luận là tài liệu tham khảo có giá trị cao đối với:

  • Sinh viên và học viên ngành Kỹ thuật Máy tính, Thiết kế Vi mạch, Điện tử - Viễn thông: Tham khảo phương pháp mô hình hóa và hiện thực các thuật toán số học số nguyên lớn (256-bit), kỹ thuật thiết kế Datapath/FSM và quy trình thiết kế SoC trên phần mềm Vivado.
  • Kỹ sư phát triển phần cứng và an toàn thông tin: Sử dụng làm tài liệu tham khảo trực tiếp khi thiết kế các bộ tăng tốc phần cứng mật mã (Cryptographic Hardware Accelerators) cho hệ thống nhúng, thiết bị thanh toán số, thiết bị mạng hoặc các node trong mạng blockchain.
  • Nội dung đáng tham khảo nhất: Sơ đồ kiến trúc chi tiết của khối $F_p$-ALU 256-bit (Hình 3.7), bảng lập lịch các bước thực hiện PA/PD (Bảng 3.3, 3.5), giải thuật nhân modulo Hossain (Hình 3.3, 3.4) và quy trình thiết kế máy trạng thái cho thuật toán nghịch đảo modulo nhị phân.

Câu hỏi thường gặp

1. Khóa luận sử dụng tiêu chuẩn đường cong Elliptic nào và tại sao tham số này lại quan trọng?
Khóa luận sử dụng chuẩn đường cong secp256k1 theo định nghĩa FIPS từ NIST với phương trình $y^2 = x^3 + 7 \pmod p$ trên trường nguyên tố 256-bit. Chuẩn đường cong này đảm bảo mức độ bảo mật cao, tránh được các dạng tấn công khai thác cấu trúc đường cong như tấn công MOV (Menezes-Okamoto-Vanstone) và là chuẩn bảo mật cốt lõi đang được ứng dụng trong Bitcoin và nhiều hệ thống thanh toán số.

2. Khối $F_p$-ALU trong khóa luận được thiết kế để giải quyết bài toán gì và có đặc điểm kiến trúc như thế nào?
Khối $F_p$-ALU là bộ xử lý số học 256-bit ở tầng thấp nhất, chịu trách nhiệm thực thi 4 phép toán cơ bản trên trường $F_p$: cộng modulo, trừ modulo (dùng chung kiến trúc tổ hợp, hoàn thành trong 1 chu kỳ clock), nhân modulo (theo giải thuật Hossain, hoàn thành trong 257 chu kỳ clock) và nghịch đảo modulo nhị phân (điều khiển bởi FSM 8 trạng thái). Kiến trúc hỗ trợ 4 đầu vào, 4 đầu ra và 6 thanh ghi trung gian cho phép kích hoạt song song các khối toán hạng độc lập.

3. Phép cộng hai điểm khác nhau (PA) và phép nhân đôi điểm (PD) trên đường cong Elliptic được thực hiện qua mấy bước?
Trên hệ tọa độ Affine, phép cộng hai điểm khác nhau (PA) được thực hiện qua 5 bước tuần tự bao gồm phép trừ tọa độ, nghịch đảo modulo để tính hệ số góc $\lambda$, nhân và trừ modulo. Trong khi đó, phép nhân đôi điểm (PD) phức tạp hơn và được chia thành 12 bước tính toán chi tiết nhằm xác định tiếp tuyến tại điểm và tọa độ điểm kết quả.

4. Thuật toán băm SHA-256 đóng vai trò gì trong lõi IP ECDSA và được hiện thực ra sao?
SHA-256 thực hiện băm thông điệp $m$ đầu vào thành một giá trị tóm lược cố định 256-bit ($e = H(m)$) trước khi đưa vào khối tính toán đường cong để tạo chữ ký $(r, s)$ hoặc xác thực chữ ký. Khối phần cứng SHA-256 bao gồm bộ mở rộng từ $W_i$ từ khối đệm 512-bit và module nén 64 vòng lặp sử dụng các hàm logic và hằng số chuẩn FIPS PUB 180-2, đạt tần số hoạt động trên 50 MHz.

5. Lõi IP được kiểm chứng và đánh giá thực nghiệm trên nền tảng phần cứng nào?
Toàn bộ hệ thống được mô phỏng chức năng trên phần mềm Vivado (đối chiếu với dữ liệu kiểm thử từ Python và công cụ tính toán trực tuyến) và được tích hợp thành công vào hệ thống SoC, nạp thực nghiệm trên kit phát triển phần cứng Xilinx Virtex-7 FPGA VC707, giao tiếp và hiển thị kết quả thông qua cửa sổ điều khiển Vitis Console.


Kết luận

Khóa luận tốt nghiệp của tác giả Trần Xuân Ngọc Hoàn và Nguyễn Lê Thảo đã nghiên cứu toàn diện và hiện thực thành công lõi IP thuật toán chữ ký số ECDSA 256-bit chuẩn secp256k1 kết hợp hàm băm SHA-256 trên nền tảng FPGA Xilinx Virtex-7 VC707. Thiết kế đạt được kiến trúc phân tầng khoa học với bộ xử lý số học $F_p$-ALU 256-bit tối ưu, cho phép xử lý song song các toán hạng và đáp ứng đầy đủ các chỉ tiêu về tần số hoạt động cũng như tính đúng đắn của dữ liệu. Đề tài đóng góp một giải pháp phần cứng tin cậy, có khả năng ứng dụng thực tiễn cao trong việc tăng tốc xử lý mật mã và bảo đảm an toàn thông tin cho các hệ thống nhúng và SoC hiện đại.