You are on page 1of 11

MÃ HÓA ĐƯỜNG CONG ELLIPTIC SỬ DỤNG CURVE25519

TRÊN CÁC THIẾT BỊ CÓ THỂ CẤU HÌNH LẠI


Pascal Sasdrich, Tim G¨uneysu Horst G¨ortz Institute for IT-Security Ruhr-Universit¨at
Bochum Bochum, Germany
Tóm tắt: Trong nhiều năm gần đây, Mã hóa đường cong Elliptic(ECC: Elliptic Curves
Cryptography) đã trở thành một hệ thống mã hóa bất đối xứng nổi bật được tìm thấy
trong hầu hết các thiết bị đầu cuối. Mặc dù đã có nhiều tiến bộ trong quá trình triển khai
nhưng tính toán trên các đường cong elliptic tiêu chuẩn vẫn có độ phức tạp rất lớn, đặc
biệt khi triển khai trên các thiết bị nhúng nhỏ.
Trong bối cảnh này, Bernstein đã đề xuất một phiên bản ECC có hiệu quả cao,
Curve25519 được đưa ra để đạt được các bản ghi tốc độ ECC mới trong phần mền cung
cấp mức bảo mật cao và có thể so sanh với tiêu chuẫn mã hóa tiên tiên- AES(Advanced
Encryption Standard) với 128 bit
Curve25519 được áp dụng vào một số ứng dụng liên quan đến bảo mật, ví dụ như thư
viện mã hóa NaCl hoặc các mạng định tuyến ẩn danh(nTor). Trong tài liệu này sẽ chứng
minh hiệu quả tốt hơn của Curve25519 có thể được thức hiện trong những phần cứng có
thể cấu hình lại, đặc biệt bằng cách sử dụng các khối xử lý tín hiệu số- DSP(Digital
Singal Processor).
Chương 1- Giới thiệu.
Với sự ra đời của ubiquitous computing(ubicom), rất nhiều ứng dụng yêu cầu một mức
độ bảo mật thích hợp, bao gồm cả mã hóa phức tạp. Ngoài ra để tránh sự tác nghẽn do
nhiều yêu cầu bảo mật, những thiết bị đó thường cần phải cung cấp một lượng đáng kể
các phép toán mã hóa mỗi giây bất kể những ràng buộc về tính toán của thiết bị. Đặc biệt,
trong các hệ thống mã hóa công khai hiện đại, như RSA, sử dụng các phép tính phức tạp
và có tính toán chuyên sâu thường quá chậm trên các phần cứng được nhúng.
Năm 1985 Neal Koblitz và Victor Miller đã đề xuất việc sử dụng mã hóa đường con
Elliptic(ECC) để cung cấp bảo mật tương tự với RSA nhưng sử dụng khóa có kích thước
nhỏ hơn. Ưu điểm này cho hiệu quả cao hơn khi sử dụng ECC(160-256 bit) so với RSA
hoặc giải thuật logarit rời rạc trên các trường hữu hạn(1024-4096 bit) trong khi cung cấp
mức độ bảo mật tương đương. Trong những năm gần đây, ECC đã trở thành tiêu chuẩn
cho những hệ mã hóa bất đối xứng hiệu suất cao mặc dù nó vẫn yêu cầu cao về bộ vi xử
lý và vi điều khiển nhỏ. Do đó, phần cứng mã hóa chuyên dụng như FPGA vẫn là lựa
chon ưu tiên khi mà mã hóa với hiệu suất cao là một yêu cầu nghiêm ngắt đối với một
ứng dụng nhúng.
Tài liệu này sẽ trình bày việc triển khai có hiệu quả của một hệ mã hóa đường cong
Elliptic đặc biệt với việc sử dụng Curve25519 trên phần cứng có thể cấu hình lại để cung
cấp một thỏa thuận trao đổi khóa Diffie- Hellman phù hợp để sử dụng trong một ứng
dụng hiệu suất cao. Nó cung cấp khả năng kháng đinh thì vốn có trước các đòn tấn công
đơn giản- SPA( Simple Power Attacks) và mức bảo mật tương đương với NIST P-256
ECC hoặc AES với khóa 128 bit. Đặc biệt thiết kế này tận dụng lợi thế của các lớp DSP
có mục đích đặc biệt của các thiết bị có thể cấu hình lại để tăng hiệu quả và hiệu suất.
Mặc dù ECC sử dụng Curve25519 cho thuật toán trao đổi khóa Diffie- Hellman ban đầu
được đề xuất để đẩy nhanh tiến độ thực hiện phần mền, nhưng chúng ta chỉ ra những đặc
điểm tương tự của nó có thể khai thác được trong phần cứng để đạt được bộ xử lý ECC
hiệu suất cao và tiết kiệm không gian trong các thiết bị có thể cấu hình lại. Việc triển khai
Curve25519 đã lõi trên Xilinx Zynq 7020 FPGA đạt được trên 32000 phép nhân điểm
trên giây.
Tài liệu được tổ chức như sau: Phần 2 cung cấp những công việc có liên quan trước đó,
phần 3 phác thảo hàm Curve25519 cho thỏa thuận khóa dựa trên Diffiee- Hellman và các
điểm đặc biệt của nó. Phần 4 mô tả các cân nhắc và quyết định thiết kế, đặc biệt đối với
các đơn vị số học, Phần 5 mô tả hai kiến trúc khác nhau cho trung bình và hiệu suất cao
được đánh giá và so sánh trong Phần 6. Cuối cùng, kết luận công trong Phần 7.
Chương 3- Lý thuyết cơ bản
Đối tượng của tài liệu này là hệ thống mã hóa Elliptic(ECC) được xét trong trường GF(p)
Gọi p là số nguyên tố vơi p>3 và Fp=GF(p) là trường Galois hay trường hữu hạn trên p.
Khi đó, phương trình Weierstrass của đường cong Elliptic là:
E : y 2=x 3 +ax +b

Với a,b ∈ GF(p) và 4 a3 +27 b 2 ≠ 0, điêm Pi ∈ E, chúng ta có thể tính toán cặp (x,y) thuộc
đường cong E. Dựa trên tập hợp các điểm được xác định trên đường cong E này, thuật
toán ECC xác định phép cộng P3=P1+P2 của hai điểm P1, P2 sử dụng quy tắc tiếp tuyến-
dây cung làm phép toán chính.
Hơn nưa, công thức cho các phép tính này khác nhau đối với biểu diễn tọa độ trong
không gian afin và tọa độ ánh xạ, tức là phương trình đường cong cho các tọa độ ánh xạ
sẽ được giải phóng bằng cách đưa ra một biến Z. Việc sử dụng tọa độ ánh xạ cho phép
tránh sự nghịch đảo module gây tốn kém cho một phép toán trên điểm với chi phí của
phép nhân module bổ sung.
Hầu hết các hệ thống mã hóa dựa trên ECC dựa vào bài toán logarit rời rác trên đường
cong Elliptic- ECDLP( Elliptic Curve Discrete Logarithm Problem ) và như vậy việc
dùng phép nhân điểm k.P như nguyên hàm mã hóa nghĩa là k lần lặp lại phép cộng một
điểm gốc P. ECDPL là bài toán mã hóa cơ bản được sử dụng trong các giao thức và các
chương trình mã hóa như trao đổi khóa Diffie- Hellman, lược đồ mã hóa ElGamal và
thuật toán chữ kí số Elliptic Curve- ECDSA(Elliptic Curve Digital Signature Algorithm).
Lưu ý rằng tất cả các hệ thống mật mã này chỉ sử dụng tạo độ Afin để đảm bảo các giải
pháp duy nhất, tức là trong các trường hợp sử dụng tọa độ ánh xạ nhanh hơn được sử
dụng cho các phép tính trung gian, cần phải thực hiện nghịch đảo module cuối cùng để
chuyển đổi từ tọa độ ánh xạ về tọa độ Afin
Ta sẽ tập trung vào trao đổi khóa Diffie-Hellman dựa trên đường cong elip đặc biệt
Curve25519 mà các đặc điểm được đưa ra trong phần sau.

3.1 Curve25519 function


Curve25519 có thể được coi là một function được thiết kế để đơn giản hóa và tăng tốc độ
của thỏa thuận khóa Diffie-Hellmann qua các đường cong elliptic. Nó định nghĩa một
phép nhân điểm cung cấp khả năng kháng thời gian tấn công vốn có và mức độ bảo mật
được phỏng đoán có thể so sánh với NIST P-256 hoặc AES-128. Việc sử dụng function
này, hai bên có thể lấy được một thông tin mật được chia sẻ với sự trợ giúp của khóa bí
mật 32-byte và khóa công khai của họ

Curve25519 được dựa trên một trường nguyên tố với số nguyên tố gần với lũy thừa của 2
(số nguyên tố Pseudo Mersenne ) và được định nghĩa như sau:
E : y 2=x 3 +486662 x 2+ x mod 2255 −19
Giả sử một điểm P gốc với Q=(Xi,Yi,,Zi). Theo dõi 2 điểm trung gian Q , Q’ và sai số Q-
Q’ dựa trên P, Curve25519 định nghĩa một điểm kép liên hợp và hàm cộng điểm như một
bước của thang Montgomery với 4 phép lấy căn, 5 phép nân chung, 1 phép nhân (A-2)/4
và 8 phép cộng hoặc trừ. Thêm một lợi ích của hàm Curve25519 đó là chỉ cần có tọa độ
x của các điểm trong tính toán sao cho tọa độ y có thể bỏ qua hoàn toàn trong các công
thức. Do đó, phép nhân điểm chỉ dựa vào tọa độ x và z của hai điểm Q và Q0. Cuối
cùng, một bước liên hợp được tính bằng:
2
x 1=( x 2−z 2 ) =( x−z )2 ( x + z )2
z 2=4 xz (u ¿ ¿ 2+ Axz + z 2) ¿
x 3=4(xx ¿ ¿ ' −z z ' ) ¿
z 3=4(xz ¿ ¿ ' −z x ' ) x 1 ¿

3.2 Phép tính Curve25519

Đối với phép


Hình nhân vô hướng
1. Công toàn bộ, phép tính
thức Double-and-Add theokxP là tổng
thang của của 255 lần gọi hàm(phép
Montgomery
liên hợp điểm kép và phép cộng) được thực hiện theo sau bằng nghịch đảo cuối cùng và
phép nhân đơn XxZ-1
Hình 1 cho thấy sơ đồ giải thuật cho 3 điểm Q, Q0, Q1 được biểu diễn dưới dạng tọa độ
ánh xạ và Q1=Q-Q0. Lưu ý rằng mọi phép cộng hay phép trừ sẽ được theo sau bởi một
phép nhân và hầu hết các phép nhân được theo sau bởi phép cộng hoặc phép trừ. Điều
này rất hưu ích cho việc thiêt kế kiến trúc phần cứng một cách hiệu quả.
Ngoài ra, luôn có một số các phép tính được thực hiện mà độc lập với dữ liệu đã được xử
lý. Do đó, việc tính toán có thể thực hiện trong thời gian liên tục nhằm ngăn chặn các
cuộc tấn cộng dựa trên định thời.
Chương 4- Xem xét thiết kế.
Đối với hầu hêt các đường cong Elliptic chuẩn hiện đại, ví dụ chuẩn NIST P-256, trường
số nguyên tố cơ bản dựa trên số nguyên tố Mersenne tổng quát cho phép rút gọn với vài
phép cộng và phép trừ. Đối với Curve25519, trường dựa trên số nguyên tố Pseudo
Mersenne 2n-c, tương tự với số nguyên tố Mersenne nhưng hơi khác một chút. Đối với
đường cong Curve25519, phép rút gọn có thể được tính bằng phép nhân với hằng số nhỏ,
trong trường hợp này hằng số c=19.
Tuy nhiên số nguyên tố có tổng số 255bit này có một đặc tính thú vị đó là tất cả các phần
tử trong trường số có thể được chia thanh 15 word, mỗi word 17 bit. Mà việc xử lý các
khối này thường không hiệu quả với các vi xử lí 8 bit, 16 bit, 32 bit hoặc 64 bit. Tuy
nhiên, các thiết bị FPGA gần đây cung cấp vô số lớp DSP chuyên dụng và hoàn toàn có
thể tùy chỉnh được trang bị với một phép cộng, một phép nhân và một phép lũy thừa cấp
số nguyên với thanh ghi bổ sung để có thể hoạt động tối đa tốc độ của thiết bị. Vì phép
nhân các khối DSP nguyên bản hỗ trợ các toán hạng có dấu 25x18 bit, điều nàu hoàn toàn
phù hợp với yêu cầu xử lý các word dữ liệu 17 bit không dấu. Bằng một danh sách phép
nhân xen kẽ, nhân hai phần tử 255 bit có thể được sắp xép trên một số khối DSP hoạt
động song song sao cho mỗi khối phải tính toán một phép nhân 17x17 bit tại một thời
điểm và cho ra cùng một kết quả. Sau đó phép nhân đầy đủ có thể được thực hiện bằng
cách sử dụng 15 DSP slice. Ngoài ra, chúng ra có thể sử dụng lũy thừa bậc tổng quát cho
mỗi khối DSP để thêm các kết quả trung gian. Cuối cùng, chúng ta sẽ tạo ra một kêt quả
trung gian với bậc lũy thừa khá lơn nhưng có thể được giảm trong bước tái tổ hợp tiêp
theo. Bản thân bước tái tổ hợp có thể được thực hiện bởi một hệ số không đổi với c=19,
logic sắp xếp lại để tái tổ hợp các phần tử của một phần sản phẩm cũng như một phep trừ
đế swar kêt quả bằng cách giảm nó bằng phép modulo P trong trường hợp nó quá lơn.
Bên cạnh phép nhân modul các phép nhân đổi điểm và phép cộng điểm yêu cầu sự tính
toán của các phép cộng và phép trừ modul. Để trả về một kết quả duy nhất, cần có một
phép nghịch đảo ở cuối để chuyển từ các tọa độ ánh xạ về tọa độ afin. Các đơn vị trừ
tương ứng có thể được thực hiện nhưng là tầng của hai khối DSP, một cho phép tính
chính và một cho phép giảm tiếp theo. Đối với phiên bản nghịch đảo cơ bản, chúng ta có
thể sử đụng định lý Fermant’s Little. Cách tiếp cận này chỉ đòi hỏi một hệ số module đã
được cung cấp bởi lõi có một máy trạng thái bổ sung nhỏ. Mặc dù nghịch đảo dựa trên
các tiếp cận này hầu như không yêu cầu thêm phần cứng nhưng hiệu suất nghịch đảo lại
tương đối chậm. Một cách tiếp cận khác là triển khai một đơn vị nghịch đảo chuyên dụng
dựa trên thuật toán Euclid mở rộng nhị phân. Điều này rõ rang yêu cầu một số lượng
đáng kể các tài nguyên bổ sung nhưng việc tính toán nghịch đảo sẽ nhanh hơn đáng kể.
Trong một công nghệ đa lõi, một chuyển đổi chuyên dụng có thể được chia sẻ giữa các
lõi nhân số điểm, giảm chi phí đầu vào bằng cách chia sẻ tài nguyên. Cuối cung, chúng ta
có thể sử dụng hai khối RAM với 36k cổng kép thực(BRAM) để lưu trữ các giá trị trung
gian trong một luồng dữ liệu van bướm. Vì giá đầu vào và đầu ra 17 bit hay 34 bit cần
phải xử lý bởi các đơn vị số học, ta sẽ chỉ định các cổng có độ rộng 34 bit của BRAM.
Chương 5- Thực hiện.
Trong phần này sẽ trình bày chi tiết về kiến trúc lõi đơn Curve25519 để có hiệu suất vừa
phải với chi phí tài nguyên thấp. Thứ hai, ta sẽ mở rộng thiêt kế thành kiến trúc đa lõi
nhằm mục tiêu sử dụng tất cả các tài nguyên có sẵn của Xilinx Zynq7020 nhưng có khả
năng cung cấp thông lượng tối đa.

5.1 Kiến trúc đơn lõi

Hình 2. Tổng quan về lõi Curve25519

Việc triển khai lõi đơn Curve25519 được thiết kế để hỗ trợ mã hóa không đối xứng, như
một hàm bổ sung và tiết kiệm hầu hết các logic FPGA cho ứng dụng chính. Lõi mã hóa
có khả năng thực hiện phép nhân điểm đối với tọa độ ánh xạ. Để có thể sử dụng với các
giao thức mã hóa thì lõi này phải thực hiện một phép nghịch đảo ở cuối để chuyển đổi
đầu ra có tọa độ ánh xạ thành tọa độ afin. Do đó, bộ vi xử lý số học hỗ trợ hai chế độ hoạt
động cơ bản: hàm nhân đôi và cộng liên hợp hoặc phép nhân modul đơn. Việc truy cập
vào lệnh nhân mô-đun được yêu cầu cho nghịch đảo cuối cùng dựa trên định lý nhỏ
Fermat, tức là, nghịch đảo một phần tử a∈Fp bằng cách tính p − 2 mod p. Để ngăn chặn
các cuộc tấn công timing attack, giải thuật số học thực hiện phép nhân điểm chạy tổng
cộng 255 phép tính đôi và cộng và 266 phép nhân lặp cho nghịch đảo cả trong thời gian
liên tục.
Mỗi phép cộng hoặc trừ luôn được theo sau bởi một phép nhân và tiếp theo là lặp lai một
phép cộng hoặc trừ khác. Điều này dẫn đến thiết kế được trình bày trong Hình 2 sử dụng
hai BRAM hai cổng trong cấu hình bướm. Chính xác hơn, lần đầu tiên BRAM chỉ nhận
được kết quả của phép cộng hoặc trừ và cung cấp đầu vào cho phép nhân trong khi
BRAM thứ hai lưu trữ kết quả phép nhân và cấp đầu vào cho đơn vị cộng. Bằng cách
này, sự cân bằng song song được kích hoạt và các hệ thống đường ống thông qua tải và
ghi lại có thể tránh được với chỉ một ít chi phí.
Khối cộng module: Trung tâm của khối cộng và trừ mô-đun c = a ± b mod p là hai khối
DSP hỗ trợ phép nhân 25x18-bit và phép cộng, trừ hoặc tích lũy 48 bit. Khối DSP đầu
tiên luôn thực hiện phép toán chính (nghĩa là phép trừ hoặc cộng c’ = a ± b) trong khi
khối DSP thứ hai tính dự đoán cho kết quả giảm xuống bằng c’’ = c’ ∓p. Cả hai, c’ và c’’
được lưu trữ trong BRAM đầu tiên và được phân biệt bằng một cờ có được từ lần mang /
mượn trước đó trong các hoạt động dự đoán cho biết trong đó đăng ký kết quả chính xác
được lưu trữ. Tổng cộng lại phép cộng hoặc trừ mô-đun có 10 chu kỳ clock có thể được
thực thi song song với bất kỳ phép nhân nào. Do đó, khai thác luồng vận hành xen kẽ như
trên thì độ trễ của phép cộng hoặc trừ module được hấp thụ hoàn toàn trong độ trễ của
phép nhân module hoạt động động thời.
Khối nhân module: Thành phần lớn nhất của giải thuật là khối nhân và dựa trên 18 khối
DSP, 15 khối được sử dụng để tính toán từng phần, tiền giảm phân và hai khôi cho việc
giảm module cuối cùng. Một phép nhân modul có thể được tính toán trong 55 chu kỳ
clock, trong đó có 34 chu kỳ để thực hiện phép nhân thực tế và các chu kì còn lại để tải
và lưu trữ dữ liệu. Do thiết kế mô-đun thể hiện trong hình 3, tính toán của một phần sản
phẩm (giai đoạn 1) có thể được xen kẽ với bước giảm (giai đoạn 2) trong kiểu đường ống.
Vì vậy, phép toán nhân tiếp theo có thể đã được khởi động lại ngay khi giai đoạn đầu tiên
(một phần sản phẩm) đã hoàn thành phép nhân trước đó, chỉ có phép nhân đầu tiên có chu
kỳ 55 đồng hồ đầy đủ, mỗi phép nhân tiếp theo sẽ có sẵn với độ trễ 17 chu kỳ clock. Vì
các phụ thuộc dữ liệu cũng cần phải được tính đến, bước nhân đôi và cộng liên hợp cho
Curve25519 cuối cùng có tổng cộng 255 chu kỳ.
1Hình 3. Kiến trúc của khối nhân
5.2. Kiên trúc đa lõi
Một cảnh báo chính với kiến trúc lõi đơn là nghịch đảo chậm. Trong đề tài nay, ta tăng
cường thiết kế lõi được mô tả trước đó với một mạch chuyển đổi chuyên dụng và chia sẻ
nó giữa một số lõi để tạo ra sự cân bằng hiệu suất chi phí tối ưu. Số lõi trên mỗi chuyển
đổi được giới hạn trên bởi các tài nguyên có sẵn trên thiết bị tương ứng cũng như mối
quan hệ của số chu kỳ của mỗi phép nhân điểm với một nghịch đảo cuối cùng. Vì số này
trực tiếp tương ứng với các tài nguyên có sẵn trên một FPGA nhất định, chúng tôi đã
triển khai thiết kế một cách tổng quát để cho phép khả năng mở rộng và linh hoạt tối đa
đối với các thiết bị khác. Hình 4 cho thấy giao diện giao tiếp và bộ điều khiển bổ sung để
phân phối các gói dữ liệu đến giữa các lõi Curve25519. Không giống như phần cứng
được giới thiệu ở trên, tất cả các lõi của kiến trúc này chỉ hỗ trợ chức năng bước (phép
nhân đôi và cộng) nhưng không còn nghịch đảo module nữa. Nghịch đảo cuối cùng được
thực hiện bởi một khối nghịch đảo chuyên dụng được chia sẻ bởi tất cả các lõi trong bước
tiếp theo.
Khối nghịch đảo chuyên dụng: Trong nhiều trường hợp, phép chia module là phép tính
tốn kém nhất đòi hỏi một phép nghịch đảo modlue và ít nhất một phép nhân. Trong
phương pháp tiếp cận đơn lõi, chúng tôi nhận thấy phép nghịch đảo dựa trên Định lý nhỏ
Fermat là không hiệu quả vì phép nghịch đảo yêu cầu khoảng 20% toàn bộ thời gian tính
toán Curve25519. Do đó, ta đã triển khai module chuyển đổi dựa trên Thuật toán Euclide
mở rộng nhị phân dưới dạng phần mở rộng cho các lõi hiện có. Đối với phương pháp tiếp
cận thiết kế đa lõi, bộ chuyển đổi nhận X và Z làm đầu vào, và tính kết quả cuối cùng X /
Z trong một thời gian không đổi. Vì bộ chuyển đổi này nhanh hơn đáng kể so với phép
nhân điểm. Khối chuyển đổi có thể phục vụ như là đơn vị đảo ngược tiếp theo cho một
số nhân nhân điểm (xem Phần 6)
Cân bằng tải: Do hoạt động đồng thời của từng lõi, chúng tôi đã triển khai một lược đồ
phân phối dữ liệu đến các lõi khả dụng khi chúng có sẵn. Sơ đồ này về cơ bản là một sơ
đồ tải dựa trên vòng xoay nơi mà khối điều khiển theo dõi hoạt động gần nhất và lõi sẵn
có tiếp theo. Quá trình tải tiếp tục cho đến khi tất cả các lõi bận. Ngay sau khi một lõi
báo cáo kết quả, nó được chuyển đến khối nghịch đảo và lõi được đánh dấu đã sẵn sàng
và có thể được nạp với một bộ tham số tiếp theo.
Phân tách trên miền clock: lõi thực hiện phép nhân điểm có thể hoạt động ở tần số xung
nhịp 200MHz. Tuy nhiên, vì bộ nghịc đảo chuyên dụng thực hiện các bộ cộng và bộ trừ
rộng 256-bit logic nên nó chỉ hỗ trợ tần số xung nhịp tối đa khoảng 130MHz. Để duy trì
hoạt động ở tốc độ tối đa, ta sử dụng các miền clock khác nhau cho lõi nhân điểm trên
một mặt (200 MHz) và bộ điều khiển và bộ đảo ngược mặt khác (100 MHz).

Chương 6- Kết quả


Tất cả các kết quả thu được sau khi place-and-routedựa trên Xilinx Zynq XC7Z020 sử
dụng Xilinx ISE 14.5.

6.1. So sánh kiến trúc đơn lõi và đa lõi.


Thành phần Sử dụng khả dụng
Number of Slice Registers 3592 106400 3%
Number of Slice LUTs 2783 53200 5%
Single-Core

Number of occupied Slices 1029 13300 7%


Number of DSP48E1 20 220 9%
Number of RAMB36E1 2 140 1%
Cycles per Step Function 64770@200MH
Cycles per Inversion 14630@200MHz
Total Clock Cycles 79400@200MHz

Number of Slice Registers 43875 106400 41%


Number of Slice LUTs 34009 53200 63%
Single-Core

Number of occupied Slices 11277 13300 84%


Number of DSP48E1 220 220 100%
Number of RAMB36E1 22 140 15%
Cycles per Step Function 64770@200MH
Cycles per Inversion 1667@200MHz
Total Clock Cycles 34052@200MHz

Bảng 1. Tóm tắt về việc sử dụng thiết bị và hiệu suất

Trong Bảng 1 cung cấp mức tiêu thụ tài nguyên cho thiết kế lõi đơn và đa lõi thiết kế
Cách tiếp cận đơn lõi chỉ sử dụng một phần nhỏ của thiết bị Xilinx nhỏ (tương đối), tức là
7% của Slices và 9% của DSP slice. Các thành phần thiết bị còn lại có sẵn cho bất kỳ
chức năng hoặc ứng dụng nào khác cần được triển khai.
Kiến trúc đơn lõi của thiết kế này có tần số hoạt động tối đa 200MHz và cần khoảng
80.000 chu kỳ clock để thực hiện thao tác Curve25519 trong đó khoảng 20% chu kỳ
clock để tính toán nghịch đảo cuối cùng. Tất cả trong tất cả, lõi có thể thực hiện khoảng
2500 điểm nhân trên giây. Lõi có thể thực hiện 2500 phép nhân điểm mỗi giây.
Kịch bản đa lõi của chúng tôi rõ ràng cắt giảm cho hiệu suất cao nhất bằng cách sử dụng
một FPGA lớn vừa phải. Do sự phân tách miền clock, kiến trúc đa lõi có thể tính toán
một phép nhân điểm trong khoảng 34.000 chu kỳ ở tần số 100MHz. Ngoài ra, có thể thực
hiện tối đa 11 phép tính trong song song với độ trễ ban đầu là 1667 chu kỳ đồng hồ, đó là
thời gian cần thiết cho phép nghịch đảo. Điều này dẫn đến một thông lượng cuối cùng
của hơn 32.000 phép tính Curve25519 mỗi giây.

6.2 So sánh với các thiết kế khác


Scheme Device Implementation Logic Clock OP/s
Single-Core XC7Z020 255-bit GF(2255 − 19) 1029 LS/20 DSP 200 MHz 2531
Multi-Core XC7Z020 255-bit GF(2255 − 19 11277 LS/220 DSP 100 MHz 21686
ECC [7] XC4VFX12-12 256-bit GF(p), NIST 1715 LS/32 DSP 490 MHz 2020
ECC [10] XC2VP125-7 256-bit GF(p), any 15755 LS/256 MUL 39.5 MHz 260
ECC [5] Intel Core i3 255-bit GF(2255 – 19) 64 bit 2.1 GHz 10810
ECC [5] AMD FX-4170 255-bit GF(2255 – 19) 64 bit 4.2 GHz 14285
RSA[17] XC4VFX12-10 1024-bit with DSP 3937 LS/17 DSP 400 MHz 584
RSA[16] 0.5 µm CMOS 1024-bit, unified 28,000 GE 64 MHz 21

Trong Bảng 2 một số kết quả triển khai khác thực hiện ECC trên một mức độ bảo mật
tương đương với Curve25519. Tuy nhiên, lưu ý rằng do công nghệ thay đổi của các thế
hệ FPGA khác nhau nên việc so sánh công bằng thực sự là không chính xác. Đường cong
chuẩn NIST P-256 được thực hiện bằng cách sử dụng phương pháp tương tự trên Virtex
Xilinx 4. Các tác giả báo cáo rằng thiết kế để thực hiện các phép tính điểm đòi hỏi nhiều
tài nguyên hơn với hiệu suất khoảng 2.000 phép nhân điểm trên giây. Chúng tôi cũng
muốn làm nổi bật kết quả phần mềm mà chúng tôi thu được, ví dụ: từ dự án eBATS của
ECRYPT. Theo kết quả được báo cáo, Intel Core i3 có thể thực hiện khoảng 10.810 phép
nhân điểm mỗi giây sử dụng chức năng Curve25519 và bộ xử lý AMD Bulldozer FX-
4170, chạy ở tốc độ 4,2 GHz có thể tính 14,285 hoạt động Curve25519 mỗi giây.
Mặc dù so sánh phần mềm và phần cứng có thể gây hiểu lầm, nhưng chúng tôi vẫn muốn
nhấn mạnh rằng Zynq 7020 FPGA lớn vừa phải và khá rẻ có thể hoạt động tốt hơn một số
bộ vi xử lý hiệu suất cao gần đây như AMD Bulldozer và Intels Core i3. Điều này hơi
ngạc nhiên vì mã hóa đường cong elip trên các trường nguyên tố thường được coi là một
lĩnh vực bị chi phối bởi việc triển khai phần mềm liên quan đến hiệu năng thuần túy.
Chương 7- Kết luận
Trong bài báo này, chúng tôi đề xuất hai kiến trúc mới cho Elliptic Curve Cryptography
sử dụng Curve25519 hỗ trợ thỏa thuận khóa Diffie-Hellman và các hệ mã hóa cơ bản
khác. Cả hai kiến trúc cung cấp một mức độ bảo mật có thể so sánh với AES-128 và xử
lý dữ liệu ở thời gian không đổi. Chúng tôi đã chỉ ra rằng thiết kế có thể hoạt động tốt
hơn nhiều sản phẩm được trình bày gần đây trong phần cứng và phần mềm chỉ sử dụng
các yêu cầu tài nguyên vừa phải.

You might also like