Tóm tắt. Phép nhân điểm là thủ tục thường xuyên phải thực hiện trong hệ mật
Elliptic. Nó đặc biệt nhạy cảm khi thực hiện phép nhân giữa khóa bí mật với một
điểm công khai. Các phương pháp tấn công phân tích năng lượng có thể khám phá
khóa bí mật nếu sử dụng phép nhân điểm thông thường (như nhị phân). Bài báo
này sẽ giới thiệu, phân tích các thuật toán nhân điểm đã biết và đề xuất một thuật
toán an toàn và hiệu quả, có khả năng chống lại các tấn công phân tích năng lượng.
9 trang |
Chia sẻ: thanhle95 | Lượt xem: 324 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Về một thuật toán nhân điểm an toàn của hệ mật Elliptic, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
JOURNAL OF SCIENCE OF HNUE
FIT., 2013, Vol. 58, pp. 131-139
This paper is available online at
VỀ MỘT THUẬT TOÁN NHÂN ĐIỂM AN TOÀN
CỦA HỆMẬT ELLIPTIC
Nguyễn Hữu Hùng
Ban Cơ yếu Chính phủ
Email: nhhung@ca.gov.vn
Tóm tắt. Phép nhân điểm là thủ tục thường xuyên phải thực hiện trong hệ mật
Elliptic. Nó đặc biệt nhạy cảm khi thực hiện phép nhân giữa khóa bí mật với một
điểm công khai. Các phương pháp tấn công phân tích năng lượng có thể khám phá
khóa bí mật nếu sử dụng phép nhân điểm thông thường (như nhị phân). Bài báo
này sẽ giới thiệu, phân tích các thuật toán nhân điểm đã biết và đề xuất một thuật
toán an toàn và hiệu quả, có khả năng chống lại các tấn công phân tích năng lượng.
Từ khóa: Phép nhân điểm, hệ mật Elliptic, khóa bí mật, phân tích năng lượng.
1. Giới thiệu
Hệ mật Elliptic đã trở thành một phần quan trọng của mật mã khóa công khai do
thực tế là người ta có thể đạt được cùng một mức độ bảo mật như RSA nhưng với độ dài
khóa ngắn hơn, dung lượng lưu trữ ít hơn. Điều này làm cho hệ mật dễ dàng sử dụng trong
các hệ thống thiết bị nhỏ gọn, bộ nhớ hạn chế như điện thoại di động, thiết bị cầm tay. Đây
là lí do tại sao các đường cong elliptic là một chủ đề nghiên cứu quan trọng trong mật mã.
Các cuộc tấn công kênh kề [2] dựa trên việc tiêu thụ năng lượng và thời gian như
đã chỉ ra bởi độ phức tạp tính toán cần thiết để thực hiện phép nhân điểm khi cài đặt hệ
mật Elliptic. Phép nhân điểm ở đây có dạng:
Q = dP
trong đó, P là một điểm công khai trên đường cong và d thường là khóa bí mật. Nếu sử
dụng các phép nhân điểm thông thường, nhị phân chẳng hạn, các tấn công phân tích năng
lượng sẽ phân biệt được các bít 0 và 1 của khóa bí mật d khi thực hiện phép nhân điểm.
Để chống lại kiểu tấn công này, nhiều phép nhân điểm an toàn đã được đưa ra [4]. Sau
đây, chúng tôi sẽ giới thiệu một thuật toán nhân điểm an toàn và phân tích tính hiệu quả
cùng khả năng cài đặt thực hành của thuật toán này.
131
Nguyễn Hữu Hùng
2. Nội dung nghiên cứu
2.1. Một số phương pháp nhân điểm
2.1.1. Phép cộng điểm
Xét dạng Weierstrass của một đường cong elliptic trên trường hữu hạn Fp với p > 3
nguyên tố:
E : y2 = x3 + ax+ b với a, b ∈ Fp; 4a3 + 27b2 6= 0(mod p)
Tập tất cả các điểm P (x, y) thoả mãn E, cùng với điểm vô cực∞, được kí hiệu là
E(Fp), tạo nên một nhóm Abelian. Gọi #E là cấp của E(Fp). Để cho hệ mật elliptic an
toàn, thường chọn #E là số nguyên tố. Bài báo này chỉ xét đến các trường hợp cấp của
đường cong là nguyên tố.
Ta kí hiệu x(P ) và y(P ) tương ứng là toạ độ x và toạ độ y của điểm P . Giả sử
P1 = (x1, y1) và P2 = (x2, y2) là hai điểm trên E(Fp) khác∞.
Tổng P3 = P1 + P2 = (x3, y3) có thể được tính bởi
x3 = λ(P1, P2)2− x1 − x2, y3 = λ(P1, P2)(x1 − x2)− y1,
trong đó λ(P1, P2) = (3x21+a)/(2y1) khi P1 = P2 (phép nhân đôi điểm - ECDBL)
và λ(P1, P2) = (y2 − y1)/(x2 − x1) khi P1 /∈ ±P2 (phép cộng điểm - ECADD). Cả
hai công thức đều cần một phép tính nghịch đảo trong Fp, nó cần nhiều thời gian hơn
so với phép nhân trong Fp. Người ta thường chuyển toạ độ affine (x, y) thành các toạ độ
khác mà ở đó phép cộng không cần nghịch đảo, tọa độ Jacobian là một ví dụ. Trong toạ độ
Jacobian, đặt x = X/Z2 và y = Y/Z3 cho ta phương trìnhEJ = Y 2 = X3+aXZ4+bZ6.
Khi đó, hai điểm (X : Y : Z) và (r2X : r3Y : rZ) được coi như là cùng một điểm với
r ∈ F ∗p . Đặt P1 = (X1 : Y1 : Z1), P2 = (X2 : Y2 : Z2) và P3 = P1+P2 = (X3 : Y3 : Z3).
Phép cộng và phép nhân đôi có thể được biểu diễn như sau:
Bảng 1. Phép cộng điểm trong toạ độ Jacobian
ECDBLJ
X3 = T, Y3 = −8Y
4
1 +M(S − T ), Z3 = 2Y1Z1
S = 4X1Y
2
1 ,M = 3X
2
1 + aZ
4
1 , T = −2S +M
2
ECADDJ
X3 = −H
3 − 3U1H2 +R
2, Y3 = −S1H
3 +R(U1H
2 −X3), Z3 = Z1Z2H
U1 = X1Z
2
2 , U2 = X2Z
2
1 , S1 = Y1Z
3
2 , S2 = Y2Z
3
1 ,H = U2 − U1, R = S2 − S1
2.1.2. Phép nhân điểm
Trong hệ mật Elliptic cần phải tính dP , với P ∈ E(Fp) và d là số nguyên n-bít. Các
phương pháp để thực hiện phép nhân được mô tả trong [5]. Đơn giản nhất để tính dP là
phương pháp nhị phân.
Thuật toán 1: Nhân điểm theo phương pháp nhị phân
Input: d = (dn−1. . . d1d0)2, P ∈ E(Fp), (dn−1 = 1).
Output: dP .
132
Về một thuật toán nhân điểm an toàn của hệ mật elliptic
1. Q← P
2. Cho i = (n− 2) giảm đến 0 thực hiện:
2.1. Q← ECDBL(Q)
2.2. Nếu (di == 1) thì Q← ECADD(Q,P )
3. Trả về Q.
Phương pháp cửa sổ: Trong phương pháp này, ta lựa chọn một độ lớn của cửa sổ là
w và tính trước 2w giá trị kP với k = 0, 1, 2, ..., 2w − 1. Thuật toán sử dụng biểu diễn của
khóa bí mật dưới dạng d = d0 + 2wd1 + 2wd2 + ... + 2mwdm:
Thuật toán 2: Nhân điểm sử dụng phương pháp cửa sổ
Input: w, P ∈ E(Fp), d = d0 + 2wd1 + 2wd2 + ... + 2mwdm.
Output: dP .
1. Q←∞
2. Cho i = 0 đếnm thực hiện:
2.1. Q← 2wQ (sử dụng lặp lại các phép toán nhân đổi điểm ECDBL).
2.2. Nếu di > 0 thì Q← ECADD(Q, diP ). 3. Trả về Q[0].
Thuật toán này có lợi thế hơn so với phương pháp nhị phân là sử dụng ít phép cộng
điểm hơn. Thông thường, như được đề nghị bởi NIST, giá trị tốt nhất cho độ lớn của cửa
sổ là w = 4. Độ phức tạp tổng thể của thuật toán này với d là một số n-bít là (n+1) phép
ECDBL và 2w − 2 +
n
w
phép ECADD.
Phương pháp cửa sổ NAF: Phương pháp này dựa vào biểu diễn NAF - Non-Adjacent
Form của một số nguyên. Một số nguyên d có thể biểu diễn dưới dạng NAF trong cửa sổ
có độ lớn w theo thuật toán sau:
Thuật toán 3: Biểu diễn wNAF của một số nguyên
Input: Độ lớn của cửa sổ w, số nguyên d độ dài n-bít.
Output: Biểu diễn wNAF của d : (di−1, di−2, ..., d0).
1. i← 0
2. Trong khi (d > 0) thực hiện:
2.1. Nếu (d mod 2) == 1 thì (di ← d mods 2w; d← d− di);
Còn không thì di ← 0
2.2. d← d/2; i← i+ 1
3. Trả về (di−1, di−2, ..., d0).
Trong đó hàm mods được định nghĩa là:
- Nếu d > 2w−1 thì trả về (dmod 2w)− 2w còn không thì trả về (dmod 2w).
Thuật toán nhân điểm kiểu cửa sổ NAF yêu cầu tính trước dãy các điểm
{1, 3, 5, ..., 2w−1− 1}P và các điểm đối của chúng (điểm đối của P (x, y) là −P (x,−y)).
Thuật toán nhân điểm sẽ như sau:
Thuật toán 4: Nhân điểm theo phương pháp cửa sổ NAF
133
Nguyễn Hữu Hùng
Input: (di−1, di−2, ..., d0), P ∈ E(Fp).
Output: dP .
1. Q←∞
2. Cho j = (i− 1) giảm đến 0 thực hiện:
2.1. Q← ECDBL(Q)
2.2. Nếu (dj! = 0) thì Q← ECADD(Q, djP )
3. Trả về Q.
Phương pháp này yêu cầu tính trước 1 phép ECDBL và w−1 phép ECADD. Sau đó
thuật toán yêu cầu n phép ECDBL và
n
w + 1
phép ECADD. Như vậy, độ phức tạp tổng thể
của thuật toán, không kể phép biểu diễn NAF, là (n+1) phép ECDBL và w− 1+
n
w + 1
phép ECADD.
Phương pháp luôn-cộng và nhân đôi:
Thuật toán 5: Nhân điểm sử dụng phương pháp luôn-cộng và nhân đôi
Input: d = (dn−1. . . d1d0)2, P ∈ E(Fp), (dn−1 = 1).
Output: dP .
1. Q[0]← P
2. Cho i = (n− 2) giảm đến 0 thực hiện:
2.1. Q[0]← ECDBL(Q[0])
2.2. Q[1− di]← ECADD(Q[0], P )
3. Trả về Q[0].
Độ phức tạp của thuật toán này là (n− 1) phép ECDBL và (n− 1) phép ECADD.
Rõ ràng thuật toán này không để lộ bít thông tin của khóa bí mật khi thực hiện phép nhân.
Thuật toán Montgomery-bậc thang:
Thuật toán 6: Nhân điểm sử dụng phương pháp Montgomery-bậc thang
Input: P ∈ E(Fp), d = d0 + 21d1 + 22d2 + ...+ 2ndn.
Output: dP .
1. R0 ←∞, R1 ← P
2. Cho i = 0 đến n thực hiện:
2.1. Nếu (di == 0) thì:
- R1 ← ECADD(R0, R1)
- R0 ← ECDBL(R0)
2.2. Còn không thì:
- R0 ← ECADD(R0, R1)
- R1 ← ECDBL(R1)
3. Trả về R0.
Độ phức tạp và thời gian chạy của thuật toán này tương đương với phương pháp
134
Về một thuật toán nhân điểm an toàn của hệ mật elliptic
nhân điểm luôn-cộng và nhân đôi. Phương pháp này tiếp cận cách nhân điểm theo các
khoảng thời gian cố định. Điều này có hiệu quả trong việc chống lại các tấn công kênh
kề, ở đó kẻ tấn công sẽ khám phá từng bít khóa bí mật bằng cách đo sự chênh lệch năng
lượng và thời gian thực hiện của các bước trong thuật toán.
2.2. Các tấn công phân tích năng lượng đối với hệ mật Elliptic
2.2.1. SPA và các phương pháp kháng SPA
SPA theo dõi việc tiêu thụ năng lượng của các thiết bị, và phát hiện sự khác nhau
giữa các thao tác sử dụng khoá bí mật. Các Thuật toán 1, 2 và 4 ở trên đều bị tấn công bởi
SPA. Phép nhân vô hướng được tính bởi công thức cộng, cụ thể là ECDBL và ECADD,
dựa trên các bít của khoá bí mật vô hướng. Thao tác ECADD trong các thuật toán này
được tính khi và chỉ khi bít cơ sở là 1, trong khi đó ECDBL luôn luôn được tính. Công
thức cộng là một tập hợp các phép toán của một trường xác định. Có nhiều điều khác nhau
giữa các phép toán cơ sở của phép ECDBL và phép ECADD. Vì vậy, SPA có thể phát hiện
bít bí mật.
Phương pháp kháng SPA: Với mục đích kháng lại SPA, phải loại bỏ mối liên
quan giữa thông tin bít và phép cộng chúng. Phương pháp đơn giản được đề xuất bởi
Coron [1] thể hiện trong Thuật toán 5 và 6. Trong các thuật toán này, luôn luôn thực hiện
tính ECADD bất kể bít khóa bí mật là 0 hay 1. Như vậy, kẻ tấn công không thể đoán các
bít thông tin của khóa bí mật bằng phương pháp SPA.
2.2.2. DPA và các phương pháp kháng DPA
Tấn công phân tích năng lượng vi sai theo dõi việc tiêu thụ năng lượng và phân tích
thông tin này cùng với các công cụ thống kê tinh vi hơn. Một phương pháp là an toàn
chống lại SPA nhưng có thể không an toàn dưới DPA. Kẻ tấn công DPA cố gắng đoán
phép tính cP với số nguyên c được thực hiện trong phép nhân vô hướng. Anh ta nhận
được các năng lượng tiêu thụ cho việc tính cPi với i = 1, 2, 3. . . , và phát hiện ra đỉnh xuất
hiện từ hàm tương quan dựa trên bít cụ thể của cPi. DPA có thể áp dụng với các Thuật
toán 5 và 6 bởi vì dãy các điểm được tạo ra từ các thuật toán này là tất định và DPA có thể
tìm ra mối tương quan đối với một bít cụ thể.
Phương pháp kháng DPA của Coron: Coron [1] chỉ ra rằng nó cần thiết để chèn
các số ngẫu nhiên trong quá trình tính dP để chống lại DPA. Dựa trên sự ngẫu nhiên hoá
các toạ độ Jacobian (hoặc toạ độ xạ ảnh). Để chống lại DPA, chuyển P = (x, y) trong
hệ toạ độ affine thành P = (r2x : r3y : r) trong hệ toạ độ Jacobian với một giá trị ngẫu
nhiên r ∈ K∗. Giá trị ngẫu nhiên này sẽ tạo ra tính ngẫu nhiên trong mỗi biểu diễn của
điểm và làm ngẫu nhiên việc tiêu thụ năng lượng trong phép nhân vô hướng dP .
2.2.3. ZVP và các phương pháp kháng ZVP
Tấn công phân tích năng lượng của Goubin: Goubin [3] đã đề xuất một phương
pháp phân tích năng lượng mới sử dụng một điểm mà có thể đã không được ngẫu nhiên
135
Nguyễn Hữu Hùng
bởi phương pháp kháng DPA như mô tả ở trên. Goubin tập trung vào các điểm (x, 0) và
(0, y). Các điểm này được biểu diễn tương ứng là (X : 0 : Z) và (0 : Y : Z) trong toạ
độ Jacobian. Ngay cả khi các điểm đó được ngẫu nhiên hoá thì một trong các toạ độ của
nó vẫn bằng không, cụ thể là (r2X : 0 : rZ) và (0 : r3Y : rZ) đối với số nguyên ngẫu
nhiên nào đó r ∈ K∗. Như vậy, kẻ tấn công có thể phát hiện điểm (x, 0) hoặc (0, y) được
sử dụng trong phép nhân vô hướng sử dụng DPA.
Kẻ tấn công có thể khám phá khoá bí mật sử dụng các điểm đó như sau: Đối với một
giá trị vô hướng c đã cho, luôn có thể tạo ra một điểm P thoả mãn P = (c−1#E)(0, y),
bởi vì ta xét với bậc của đường cong #E là nguyên tố. Nếu như kẻ tấn công chọn P như
là điểm cơ sở cho phép nhân vô hướng, DPA có thể phát hiện được là cP có được tính hay
không trong quá trình nhân vô hướng. Khi đó kẻ tấn công có thể nhận được toàn bộ khoá
bí mật bằng cách áp dụng đệ quy quá trình này từ bit cao nhất.
Tấn công điểm giá trị-không [2] (ZPA - Zero-value Point Attack): Tấn công của
Goubin được mô tả ở trên chỉ là một trường hợp riêng ở đây. Mục đích của tấn công điểm
giá trị-không (Zero-Point Attack - ZPA) là khám phá khoá bí mật bằng việc chọn thích
ứng điểm cơ sở P . Ta giả sử rằng phép nhân vô hướng được tính theo Thuật toán 5. Kẻ tấn
công có thể khám phá khoá bí mật từ bít cao nhất. Bít có ý nghĩa thứ hai dn−2 có thể được
khám phá bằng cách kiểm tra khi một trong các phép tính ECDBL(2Q), ECADD(2Q,Q),
ECDBL(3Q) và ECADD(3Q,Q) được thực hiện. Rõ ràng rằng, bít dn−2 = 0 thì Thuật
toán 5 sẽ thực hiện hai phép tính là ECDBL(2Q) và ECADD(2Q,Q). Bít dn−2 = 1 thì
Thuật toán 2 sẽ thực hiện phép tính ECDBL(3Q) và ECADD(3Q,Q). Nếu tồn tại các
thanh ghi giá trị-không trong khi thực hiện các phép tính này thì kẻ tấn công có thể phát
hiện ra phép tính bằng cách đo năng lượng tiêu thụ sụt giảm. Tương tự như vậy cho các
bít tiếp theo.
Như vậy, nếu muốn tìm một điểm P mà nhận thanh ghi giá trị-không tại ECDBL, ta
có thể sử dụng điểm cơ sởQ = (c−1 mod#E)P với số nguyên c nào đó cho tấn công này.
Đối với phép cộng ECADD, phải tìm điểm cơ sở Q sao cho tạo ra thanh ghi giá trị-không
khi thực hiện ECADD(cQ,Q). Tóm lại, kẻ tấn công phải tìm điểm Q mà tạo ra thanh ghi
giá trị-không tại ECDBL(cQ) hoặc ECADD(cQ,Q) đối với một số c đã cho. Ta gọi các
điểm đó là điểm giá trị-không (Zero-Value Point - ZVP).
Phương pháp kháng ZPA: Điểm cơ sở P (x0, y0) của đường cong elliptic E trên
trường hữu hạn FP xác định bởi y2 = x3 + ax + b phải thỏa mãn một số tính chất như
x0 6= 0, 3x20 + a 6= 0 và 5x40 + 2ax20 − 4bx0 + a2 6= 0.
2.3. Đề xuất thuật toán an toàn và hiệu quả
2.3.1. Thuật toán kết hợp giữa phương pháp cửa sổ và phương pháp luôn-cộng và
nhân đôi
Từ những phân tích về các tấn công SPA, DPA và ZPA ở trên, chúng tôi kết hợp
giữa Thuật toán 4 và Thuật toán 5 để đưa ra một thuật toán đảm bảo an toàn kháng lại các
136
Về một thuật toán nhân điểm an toàn của hệ mật elliptic
tấn công phân tích năng lượng đã biết, đồng thời mang tính hiệu quả trong thực tế.
Trong thuật toán này, giống như phương pháp đã mô tả ở Thuật toán 4, yêu cầu
tính trước dãy các điểm {1, 3, 5, ..., 2w−1− 1}P và các điểm đối của chúng (điểm đối của
P (x, y) là −P (x,−y)), trong đó biểu diễn wNAF của d là di−1, di−2,...,d0.
Thuật toán 7: Nhân điểm sử dụng kết hợp hai phương pháp cửa sổ và wNAF
Input: biểu diễn wNAF của khóa bí mật d = (di−1, di−2, ..., d0), P ∈ E(Fp).
Output: dP.
1. Q←∞
2. Cho j = (i− 1) giảm đến 0 thực hiện:
2.1. Q← ECDBL(Q)
2.2. Nếu (dj > 0) thì: Q← Q + djP và Q[1]← Q+ (−|dj |P );
Còn không thì: Q← Q+ (−|dj |P ) và Q[1]← Q + (|dj|P )
3. Trả về Q.
Phân tích tính đúng đắn và độ phức tạp của thuật toán:
Rõ ràng thuật toán này tương đương với Thuật toán 4 - phương pháp cửa sổ NAF
nếu như trong bước 2.2 bỏ đi bước tínhQ[1], việc thực hiện thêm bước tính này không làm
ảnh hưởng hay thay đổi đầu ra của thuật toán, mà nó chính là ý tưởng của Thuật toán 5 -
phương pháp luôn-cộng và nhân đôi để làm cho không có sự khác biệt về thời gian cũng
như năng lượng tiêu thụ trong mỗi vòng lặp. Như vậy, độ phức tạp tổng thể của thuật toán
này sẽ là (n+ 1) phép ECDBL và w− 1 +
2n
w + 1
phép ECADD, tức là nhiều hơn
n
w + 1
phép ECADD so với Thuật toán 4. So với Thuật toán 5 và 6, số phép cộng ECADD là
(n − 1) thì thuật toán này ít hơn cỡ
3n
5
− 4 phép toán ECADD nếu chọn độ lớn cửa sổ
w = 4.
2.3.2. Một số kết quả thực nghiệm
Dựa trên thư viện tính toán Elliptic Miracl [6], chúng tôi đã thực hiện việc cài đặt
các Thuật toán 1, 4, 5 và 7 để thực hiện việc so sánh tốc độ tính toán cũng như kiểm tra
tính đúng đắn của thuật toán đã đề xuất. Kết quả như sau:
Cài đặt Thuật toán 1 - Phép nhân theo kiểu nhị phân (Ngôn ngữ C++):
void PhepNhan_NhiPhan(Big *d, ECn *P, ECn *Q){
int i, n;
n = logb2(d->getbig()); /* Ham lay so bit cua khoa bi mat*/
*Q = *P;
for(i=n-2; i>=0; i–){
*Q+=*Q;
if (mr_testbit(d->getbig(),i)==1) *Q+=*P; /* Ham kiem tra bit */
}
}
137
Nguyễn Hữu Hùng
Thuật toán 4 - Mã nguồn có sẵn của Phương pháp cửa sổ NAF (Ngôn ngữ C):
void ecurve_mult(_MIPD_ big e,epoint *pa,epoint *pt){
. . . . . . . . . . . . . . . . . . . . .
nb=logb2(d); /*So bit cua khoa bi mat */
for (i=nb-2;i>=1;) { /* Tinh windows naf */
n=mr_naf_window(h, d, i, &nbs, &nzs, WINDOWS_SZ); // h = 3d
for (j=0;j<nbs;j++) ecurve_double(pt);
if (n>0) ecurve_add(table[n/2],pt);
if (n<0) ecurve_sub(table[(-n)/2],pt);
i-=nbs;
. . . . . . . . . . . . . . . . . . . . .
}
Cài đặt Thuật toán 5 - Phương pháp luôn cộng và nhân đôi (Ngôn ngữ C++):
void PhepNhan_LuonCongvaNhan(Big *d, ECn *P, ECn *Q){
int i, n;
ECn Q0, Q1;
n = logb2(d->getbig());
Q0 = *P;
for(i=n-2; i>=0; i–){
Q0+=Q0;
if (mr_testbit(d->getbig(),i)==1) Q0+=*P;
else {Q1=Q0; Q1+=*P;}
}
*Q=Q0;
}
Cài đặt Thuật toán 7 - Phương pháp kết hợp (Ngôn ngữ C):
void PhepNhan_Kethop(Big *d, ECn *P, ECn *Q){
. . . . . . . . . . . . . . . . . . . . .
epoint_copy(pa,pt);
nb=logb2(d);
for (i=nb-2;i>=1;) {
n=mr_naf_window(h, d, i, &nbs, &nzs, WINDOWS_SZ);
for (j=0;j<nbs;j++) ecurve_double(pt);
if (n>0) {ecurve_add(table[n/2],pt);
epoint_copy(pt,Q1); ecurve_sub(table[n/2],Q1);}
if (n<0) { ecurve_sub(table[(-n)/2],pt);
epoint_copy(pt,Q1); ecurve_add(table[-n/2],Q1);} i-=nbs;
. . . . . . . . . . . . . . . . . . . . .
}
138
Về một thuật toán nhân điểm an toàn của hệ mật elliptic
So sánh thời gian tính của các thuật toán:
Số lần thực hiện Thời gian tính (giây) Ghi chú
TT 2 1000 15 C++, CPU 2GHZ, RAM 3GB
TT 4 1000 11 C++, CPU 2GHZ, RAM 3GB
TT 5 1000 18 C++, CPU 2GHZ, RAM 3GB
TT 7 1000 14 C++, CPU 2GHZ, RAM 3GB
3. Kết luận
Việc nghiên cứu các thuật toán nhân điểm an toàn và hiệu quả được ứng dụng rất
nhiều trong việc cài đặt hệ mật Elliptic bằng phần mềm cũng như phần cứng. Kết hợp với
các thuật toán nhân điểm đã biết, chúng tôi đã đề xuất ra được một thuật toán nhân điểm
hiệu quả và an toàn chống lại kiểu tấn công phân tích năng lượng SPA/DPA. Chúng tôi
cũng đã cài đặt thành công thuật toán đã đề xuất, đồng thời đưa ra một số kết quả thực
nghiệm để so sánh tính hiệu quả của chúng.
TÀI LIỆU THAM KHẢO
[1] J.S. Coron, 1999. Resistance against Differential Power Analysis for Elliptic Curve
Cryptosystems. CHES ’99 Proceedings of the First International Workshop on
Cryptographic Hardware and Embedded Systems, pp. 292-302 Springer, Verlag
London, UK.
[2] Toru Akishita and Tsuyoshi Takagi, 2003. Zero-Value Point Attacks on Elliptic Curve
Cryptosystem. Lecture Notes in Computer Science, Vol. 2851, pp. 218-233.
[3] Louis Goubin, 2003. A Refined Power-Analysis Attack on Elliptic Curve
Cryptosystems. PKC ’03 Proceedings of the 6th International Workshop on Theory
and Practice in Public Key Cryptography, Public Key Cryptography, Springer-Verlag
London, pp. 199-210.
[4] Bodo Muller, 2001. Securing Elliptic Curve Point Multiplication against
Side-Channel Attacks. Springer, Verlag LNCS 2200, pp. 324-334.
[5]
[6] Miracl,
ABSTRACT
A secure point multiplication algorithm in elliptic cryptosystems
Point multiplication is a procedure frequently performed in elliptic cryptosystems.
It is particularly sensitive when performing multiplications between a secret key and a
public point. The power analysis attack method can discover the secret key when using
conventional point multiplication, such as the binary. This paper will introduce and
analyze known algorithms and propose a secure and effective algorithm that will be able
to resist a power analysis attack.
139