Nghiên cứu khoa học công nghệ<br />
<br />
PH©N TÝCH TIªU thô ®IÖN N¨NG<br />
cña THIÕT BÞ MËT M·<br />
NGUYỄN HỒNG QUANG<br />
Tóm tắt: Tiêu thụ điện năng của thiết bị mật mã kèm theo nhiều thông tin về<br />
hoạt động và dữ liệu đang được xử lý. Tấn công bằng cách phân tích điện năng<br />
tiêu thụ nhằm trích xuất khóa mã của thuật toán mật mã là chủ đề rất sôi động<br />
hiện nay. Đã có nhiều bài báo về vấn đề này nhưng các nghiên cứu không bắt<br />
đầu từ nền tảng lý thuyết mà DPA dựa vào nên người đọc nhiều khi bối rối. Bài<br />
báo này lý giải những cơ sở lý thuyết đó, có minh họa bằng thực nghiệm và cuối<br />
cùng là mô tả một tấn công DPA lên AES-128.<br />
Từ khóa: Phân tích năng lượng vi sai, Tấn công phân tích năng lượng,<br />
Tấn công side-channel, DPA.<br />
1. GIỚI THIỆU<br />
Tiêu thụ điện năng EPC (electrical power consumption) của một mạch điện<br />
phụ thuộc vào dữ liệu mạch đang xử lý, nó cung cấp nhiều thông tin về hoạt động<br />
và các thông số của mạch[2]. Đối với thiết bị mật mã, EPC mang theo thông tin về<br />
hoạt động hay thông số của thuật toán mật mã. Tấn công bằng cách đo và phân tích<br />
EPC được coi là tấn công không cần chi phí lớn nhưng đặc biệt hiệu quả [9].<br />
Người tấn công sử dụng sự biến động trong tiêu thụ điện năng EPC hay phát xạ RF<br />
của thiết bị để tìm ra khóa của thuật toán mật mã [1]. Năm 1999, Kocher và các<br />
cộng sự đã lần đầu tiên thông báo khóa mã của smartcard có thể được tìm thấy<br />
theo phương pháp này [20]. Kể từ bài báo đầu tiên của Kocher rồi sau đó được mô<br />
hình hóa trong [18], đã có rất nhiều nghiên cứu tiếp theo và vấn đề ngày càng trở<br />
thành lĩnh vực nghiên cứu sôi động. Kris Tiri và các đồng nghiệp [12] tuyên bố có<br />
thể tìm ra khóa của vi xử lý thực hiện AES-128 bằng tấn công DPA trong thời gian<br />
ít hơn ba phút;Eric Brier nghiên cứu phương pháp tấn công dựa theo hệ số tương<br />
quan CPA giữa mẫu EPC thu được với khoảng cách Hamming của dữ<br />
liệu[14].Daisuke Suzuki nghiên cứu mô hình rò rỉcủa mạch CMOS phục vụ tấn<br />
công DPA[11].Benedikt Gierlichs nghiên cứu về mối quan hệ giữa DPA dựa theo<br />
giải pháp thống kê và DPA dựa theo mẫu [10].Larry Thomas McDaniel III nghiên<br />
cứu tấn công DPA lên hệ thống mật mã sử dụng FPGA [16].Marc Joye nghiên cứu<br />
về tấn công DPA bậc hai [13].Huiyun Li và đồng nghiệp nghiên cứu đánh giá an<br />
toàn không xâm phạm vật lý [6].William Hnath đưa nghiên cứu về tấn công phân<br />
tích EPC vào trường đại học [7]. Télécom ParisTech và AIST tổ chức thi tấn công<br />
DPA [5], gồm bốn cuộc thi, v1 khởi đầu trong thời gian CHES’08, v2 từ 2009, v3<br />
trong thời gian COSADE’11, v4 từ 2013 và hiện vẫn đang tiếp diễn. Năm 2014<br />
Ban nghiên cứu mật mã của công ty Rambus, do nhà mật mã học nổi tiếng Paul<br />
Kocher sáng lập, giới thiệu họ các nhân mật mã có khả năng kháng lại DPA cho<br />
phép tích hợp vào các SoC [1]. Ngoài ra, còn rất nhiều nghiên cứu khác liên quan<br />
đến EPC [3], [4],[8]…<br />
Tấn công phân tích EPC gồm hai loại SPA và DPA [2]. Trong tấn công SPA,<br />
người tấn công khai thác mối quan hệ giữa lệnh được thực hiện và hình dáng vết<br />
EPC. Việc phân tích thực hiện trên trục thời gian. DPA khai thác mối quan hệ giữa<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 87<br />
Kỹ thuật điện tử & Khoa học máy tính<br />
<br />
dữ liệu được xử lý và EPC. SPA đòi hỏi phải biết cấu trúc thiết bị và trình tự thực<br />
hiện thuật toán mật mã. DPA chỉ cần biết thiết bị sử dụng thuật toán gì là đủ. Phân<br />
tích DPA dựa vào số lượng lớn phép đo và dùng thống kê để lọc bỏ nhiễu, còn<br />
SPA chỉ dựa vào một hoặc số lượng nhỏ vết tiêu thụ điện năng nên đòi hỏi phép đo<br />
sạch [4]. Phân tích DPA cho kết quả là khóa, còn phân tích SPA chỉ cho sự suy<br />
đoán về hoạt động hiện tại của thuật toán [9]. Do tính hiệu quả của nó mà DPA<br />
được rất nhiều người nghiên cứu, tuy nhiên, các nghiên cứu đó thường chấp nhận<br />
phương pháp tấn công do Paul Kocher giới thiệu mà thiếu tìm hiểu sâu về cơ sở lý<br />
thuyết của tấn công. Mục đích của bài báo là lý giải cơ sở lý thuyết mà DPA dựa<br />
vào, kèm theo thực nghiệm minh họa. Tiếp theo, chúng tôi mô tả các bước tấn<br />
công DPA lên thuật toán thuật toán AES.<br />
2. CƠ SỞ LÝ THUYẾT<br />
EPC của mạch điện phụ thuộc vào dữ liệu nó xử lý [2]. Trong trường hợp thuật<br />
toán mật mã thì đó là dữ liệu rõ và dữ liệu khóa. Ta có quan hệ = ( , ), trong<br />
đó, P phụ thuộc vào bản rõ C và khóa K. P, C là các dữ kiện đã biết, suy ra có thể<br />
tìm được K. Đây là cơ sở của tấn công phân tích EPC. Để thấy EPC phụ thuộc vào<br />
dữ liệu đang được xử lý như thế nào, cần đi sâu vào kỹ thuật điện tử. Bài báo<br />
sẽ tập trung vào công nghệ CMOS vì điện tử hiện đại đa phần đều sử dụng<br />
công nghệ này.<br />
Đặc điểm của CMOS là trong chế độ tĩnh nó hầu như không tiêu thụ điện năng<br />
mà chỉ có trong chế độ động tức là khi có sự chuyển trạng thái [15]. EPC tổng<br />
cộng của mạch CMOS là tổng tiêu thụ EPC của các logic phần tử tạo thành mạch<br />
đó, do đó, EPC tổng phụ thuộc vào số lượng các phần tử logic, đường nối giữa<br />
chúng và cấu trúc của các phần tử. Các phần tử CMOS làm việc theo tín hiệu vào<br />
và tiêu thụ điện năng từ nguồn . Gọi dòng tổng tức thời là ( ), EPC tức thời<br />
là ( ), thì EPC trung bình của mạch điện trong thời gian T được tính theo công<br />
thức (1)[15]:<br />
<br />
1 (1)<br />
( ) = ( )<br />
<br />
Do các CMOS đều được xây dựng dựa trên mạch bù [15] với các phần tử kéo<br />
lên và kéo xuống nên ta sẽ sử dụng mạch đảo, là mạch phổ biến, để phân tích khi<br />
nào và vì sao mạch tiêu thụ điện năng. Về bản chất EPC của mạch đảo gồm hai<br />
phần: phần tĩnh , là EPC khi phần tử không hoạt động,và phần động , là<br />
EPC khi phần tử chuyển mạch bởi tín hiệu trong hoặc ngoài gây ra.<br />
EPC tĩnh<br />
Cấu trúc bù của các phần tử CMOS khiến các transistor không bao giờ dẫn<br />
điện đồng thời. Trong hình 1, khi đầu vào a có mức logic 0 thì P1 dẫn và N1 ngắt,<br />
ngược lại khi a bằng ‘1’ thì P1 ngắt và N1 dẫn. Trong cả hai trường hợp đều không<br />
có thông mạch trực tiếp từ đến GND, chỉ có dòng rò rất nhỏ cỡ<br />
10 = 1 [15][15] chảy qua transistor cắt dòng, do đó, EPC tĩnh<br />
= . rất nhỏ.<br />
<br />
<br />
<br />
<br />
88 Nguyễn Hồng Quang, “Phân tích tiêu thụ điện năng thiết bị mật mã”.<br />
Nghiên cứu khoa học công nghệ<br />
<br />
<br />
<br />
<br />
Hình 1. Mạch đảo CMOS kiểu bù.<br />
EPC động<br />
Tại mỗi thời điểm chuyển mạch, tín hiệu ra của đảo CMOS thực hiện một trong<br />
bốn chuyển mạch (Bảng 1). ở hai trường hợp 0 0 và 1 1, mạch đảo tiêu thụ<br />
điện năng tĩnh, hai trường hợp còn lại, mạch tiêu thụ điện năng động. Rõ ràng<br />
, ≫ » . Lý do khiến EPC động lớn là do dòng điện cần để nạp cho<br />
và do dòng ngắn mạch trong khoảng thời gian khi phần tử chuyển mạch.<br />
Bảng 1. EPC các trạng thái chuyển mạch của mạch đảo CMOS.<br />
Chuyển mạch EPC Loại EPC<br />
00 tĩnh<br />
01 tĩnh + động<br />
10 tĩnh + động<br />
11 tĩnh<br />
Dòng nạp<br />
Khi chuyển mạch, CMOS tiêu thụ dòng từ nguồn nuôi để nạp cho tụ tải .<br />
gồm tụ trong và tụ ngoài. Tụ trong là tụ của mạch CMOS. Tụ ngoài là tụ của<br />
đường mạch nối đến các phần tử tiếp theo và tụ vào của chúng. Độ lớn của phụ<br />
thuộc nhiều vào tính chất vật lý của công nghệ chế tạo CMOS, vào chiều dài dây<br />
nối đến các phần tử tiếp theo và vào số lượng các phần tử đó. Thường thì trong<br />
khoảng 10 Farad đến 10 Farad [15]. Hình 1cho thấy được nạp qua<br />
PMOS transistor P1. Việc nạp xảy ra khi đầu vào a chuyển từ 1 0 gây ra sự<br />
chuyển 0 1 của q ở đầu ra. Khi ấy được nạp và tiêu thụ dòng từ nguồn nuôi.<br />
Khi a chuyển từ 0 lên 1, q thay đổi từ 1 xuống 0 gây ra sự phóng của qua<br />
NMOS transistor N1. Khi này không có sự tiêu thụ điện năng từ nguồn.<br />
EPC cần thiết để nạp trong khoảng thời gian T được tính theo (2)[15], ở đó<br />
( ) là điện năng nạp tức thời, f là tần số clock, a là hệ số hoạt động của phần<br />
tử. Hệ số này tương đương với trung bình số lần chuyển 0 1 tại đầu ra của phần<br />
tử trong mỗi chu kỳ clock.<br />
1<br />
= ( ) = a× × × (2)<br />
Dòng ngắn mạch<br />
Phần thứ hai của EPC động do dòng ngắn mạch [15] xảy ra trong đảo CMOS<br />
tại thời điểm chuyển mạch (Hình 2), đó là khoảng thời gian ngắn cả hai transistor<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 89<br />
Kỹ thuật điện tử & Khoa học máy tính<br />
<br />
P1 và N1 cùng dẫn khi có sự chuyển 0 1 và 1 0. EPC ngắn mạch trong<br />
trường hợp này được tính như (3). Trong đó ( ) là EPC ngắn mạch tức thời của<br />
phần tử. là dòng đỉnh do ngắn mạch gây nên, là thời gian ngắn mạch tồn<br />
tại.<br />
1 (3)<br />
= ( ) = a× × × ×<br />
<br />
<br />
<br />
<br />
Hình 2. Các thành phần của dòng ngắn mạch.<br />
phụ thuộc vào hoạt động của mạch, nói cách khác phụ thuộc vào a. Ta sẽ<br />
thực nghiệm kiểm chứng điều này trên mạch cụ thể chạy thuật toán mật mã. Cho<br />
một vi xử lý thực hiện AES-128. Gọi d là bit MSB của byte ra của S-box vòng thứ<br />
nhất. Thực hiện mã hóa 500 lần sao cho d = 0 và 500 lần d = 1. Lấy trung bình các<br />
vết EPC ứng với mỗi tậpvà vẽ đồ thị như Hình 3. Sự khác biệt trên biểu đồ cho<br />
thấy EPC phụ thuộc vào giá trị của dữ liệu được xử lý. Sai lệch rất nhỏ, có thể<br />
không phân biệt được trong nền nhiễu và các vết EPC của các phần khác, nhưng<br />
khi tăng số lượng mẫu lên thật nhiều, cỡ hàng ngàn, thì có thể quan sát được sự sai<br />
lệch này nhờ thống kê toán học.<br />
<br />
<br />
<br />
<br />
Hình 3. Các vết EPC đối với d = 1 và d = 0.<br />
Việc tiếp theo là chọn điểm tấn công. Điểm tấn công phải là nơi mạch điện xử<br />
lý dữ liệu liên quan rõ và khóa. Phân tích thuật toán AES [17] ta thấy điểm tấn<br />
công thỏa mãn là đầu ra của S-box. Gọi , là giá trị trung gian sau phép Sub-<br />
Bytes của vòng thứ nhất, ở đây i là số lần lấy mẫu, n là thứ tự byte của giá trị trung<br />
gian ( Î{0, … ,15}); là byte thứ n của khóa vòng đầu tiên; , là byte thứ n<br />
củabản rõ thứ i. Ta có quan hệ , = ( , Å ). Trong quan hệ này, , là cái<br />
đã biết, là khóa cần tìm. S là SubBytes của AES. , là giá trị trung gian phụ<br />
<br />
<br />
90 Nguyễn Hồng Quang, “Phân tích tiêu thụ điện năng thiết bị mật mã”.<br />
Nghiên cứu khoa học công nghệ<br />
<br />
thuộc vào . Các biến này đều có giá trị 1 byte. có 256 giá trị có thể nên có<br />
thể thử với từng giá trị giả thiết. Với mỗi giả thiết và , ta tính ra giá trị , .<br />
Mỗi lần mã hóa sử dụng bit MSB của , để chia vết EPC thu được vào các tập<br />
con tương ứng với giá trị 0 hay 1. Sau đó tính giá trị trung bình của các tập con và<br />
trừ chúng cho nhau. Trường hợp đúng, hiệu số có giá trị và trên biểu đồ vi sai<br />
xuất hiện gai nhọn. Gai càng rõ khi số lượng mẫu i càng tăng. Trường hợp sai<br />
thì , không liên quan đến dữ liệu được xử lý và trên biểu đồ không có gai nhọn.<br />
Sau khi đã tìm ra byte khóa đầu tiên, bằng cách tương tự sẽ tìm ra từng byte khóa<br />
còn lại cho đến khi được 16 byte khóa.<br />
<br />
3. QUÁ TRÌNH TẤN CÔNG DPA<br />
Gọi T là tập các vết EPC được, là vết thứ i, [ ] là trích mẫu EPC tại thời<br />
điểm thứ j trong vết ; C là tập các bản rõ ngẫu nhiên, là bản rõ thứ i tương ứng<br />
với vết . Ta thiết lập hàm lựa chọn ( , )[2][2] với đầu vào và khóa giả<br />
thiết . Vi sai ∆ tại mỗi điểm j đối với khóa giả thiết bằng:<br />
∑ ( , ) [ ] ∑ (1 − ( , )) [ ]<br />
∆ [ ]= − (4)<br />
∑ ( , ) ∑ (1 − ( , ))<br />
Trước tiên, mã hóa m bản rõ, = (1000 ÷ 10000) tùy thuộc vào mức độ<br />
nhiễu của mạch điện. Đồng thời ghi lại EPC mỗi lần mã hóa tại khoảng thời<br />
gian ứng với hoạt động của SubByte vòng thứ nhất. Tính hàm lựa chọn với byte rõ<br />
đầu tiên C của state và 256 giả thiết của khóa . Phân các vết EPC thành hai tập<br />
ứng với kết quả 0 và 1 của hàm lựa chọn. Tính trung bình EPC của hai tập đó, trừ<br />
hai giá trị cho nhau và vẽ biểu đồ vi sai. Xét kết quả 256 biểu đồ, biểu đồ nào có<br />
gai nhọn rõ rệt nhất cho kết quả khóa. Hình 4 biểu diễn các đồ thị ứng với các khóa<br />
giả thiết = 118, 119và 120. Có thể thấy có các đỉnh nhọn rất phân biệt trong<br />
biểu đồ vi sai khóa k = 119, đó chính là byte khóa cần tìm. Sau khi tìm được byte<br />
khóa đầu tiên, lặp lại các bước để tìm ra 15 byte khóa còn lại.<br />
<br />
<br />
<br />
<br />
Hình 4. Biểu đồ vi sai ứng với ba khóa giả thiết 118, 119 và 120.<br />
<br />
4. KẾT LUẬN<br />
Bài báo đã làm sáng tỏ về tấn công DPA khi nghiên cứu sâu, cả về cơ sở lý<br />
thuyết lẫn thực nghiệm. DPA thuộc loại thụ động, không xâm phạm, không cần<br />
biết cấu trúc thiết bị và cách thực hiện thuật toán [19], có thể tách được tín hiệu có<br />
ích trong nền nhiễu bằng cách tăng số lần lấy mẫu đủ lớn, không cần thiết bị phân<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 91<br />
Kỹ thuật điện tử & Khoa học máy tính<br />
<br />
tích đắt tiền. Điều kiện cần thiết cho tấn công loại này là người tấn công phải có<br />
thiết bị cần tấn công và biết thuật toán mật mã sử dụng. Các kiến thức cần thiết là<br />
điện tử, thống kê toán học và tin học. Khi đã hiểu rõ cơ chế tấn công thì việc tiếp<br />
theo cần nghiên cứu là chống tấn công. Như kết quả đã chỉ ra, nếu chỉ gây nhiễu để<br />
che đi vết EPC của phần mạch điện xử lý kết quả trung gian, thì bằng cách tăng số<br />
lần lấy mẫu đủ lớn kết hợp thống kê toán học vẫn có thể khử được nhiễu và tách<br />
được khóa. Bởi vậy nhiệm vụ chống DPA là tìm cách che dấu kết quả trung gian,<br />
hoặc phá vỡ mối liên quan giữa giá trị trung gian với EPC, hoặc cơ chế phát nhiễu<br />
phải đồng bộ với quá trình xử lý kết quả trung gian đó.<br />
<br />
TÀI LIỆU THAM KHẢO<br />
[1] http://www.cryptography.com/newsevents/press_releases/2014/09/30/rambus-<br />
cryptography-research-division-launches-suite-of-dpa-resistant-cores-addressing-<br />
the-continuin.html<br />
[2] P. Kocher, J. Jaffe, B. Jun, Introduction to differential power analysis, J Cryptogr<br />
Eng 2011.<br />
[3] Dr. Sergei Skorobogatov, “Side-channel attacks: new directions and horizons”,<br />
Design and Security of Cryptographic Algorithms and Devices (ECRYPT II),<br />
2011.<br />
[4] E. Steinkasserer, “Comparison of Classical Power Analysis Attacks and a Sto-<br />
chastic Approach for Differential Side-Channel Cryptanalysis”, thesis, Tech-<br />
nische Universitọt München, 2011.<br />
[5] http://www.dpacontest.org/home/<br />
[6] Huiyun Li, Keke Wu, Fengqi Yu, Hai Yuan. Evaluation Metrics of Physical Non-<br />
invasive Security.Security and Privacy of Pervasive Systems and Smart Devices,<br />
2010.<br />
[7] W. Hnath, J. Pettengill, Differential Power Analysis Side-Channel Attacks in<br />
Cryptography, Worcester Polytechnic Institute 2010.<br />
[8] F. Amiel, K. Villegas, Passive and Active Combined Attacks – Combining Fault<br />
Attacks and Side Channel Analysis, Workshop on Fault Diagnosis and Tolerance<br />
in Cryptography, 2007.<br />
[9] Stefan Mangard, Elisabeth Oswald, Thomas Popp, Power Analysis Attacks Re-<br />
vealing the Secrets of Smart Cards, Springer Science+Business Media, LLC,<br />
2007.<br />
[10] Benedikt Gierlichs, Kerstin Lemke-Rust, và Christof Paar. Templates vs. Stochas-<br />
tic Methods, Cryptographic Hardware and Embedded Systems - CHES 2006.<br />
[11] D. Suzuki, DPA Leakage Models for CMOS Logic Circuits, CHES ’05, Springer-<br />
Verlag, 2005.<br />
[12] K. Tiri at al, A Side-Channel Leakage Free Coprocessor IC in 0.18m CMOS for<br />
Embedded AES-based Cryptographic and Biometric Processing, DAC, June<br />
2005.<br />
[13] Marc Joye, Pascal Paillier, và Berry Schoenmakers, On Second-Order Differen-<br />
tial Power Analysis, Cryptographic Hardware and Embedded Systems (CHES),<br />
Springer-Verlag, 2005,<br />
<br />
<br />
<br />
92 Nguyễn Hồng Quang, “Phân tích tiêu thụ điện năng thiết bị mật mã”.<br />
Nghiên cứu khoa học công nghệ<br />
<br />
[14] E. Brier, C. Clavier và F. Olivier. Correlation Power Analysis with a Leakage<br />
Model, Cryptographic Hardware and Embedded Systems - CHES 2004: 6th In-<br />
ternational Workshop. 2004.<br />
[15] Jaume Secura, Charles F. Hawkins, CMOS Electronics, John Wiley & Sons, Inc.,<br />
2004.<br />
[16] L. McDaniel III, An Investigation of Differential Power Analysis Attacks on<br />
FPGA-based Encryption Systems, Blacksburg, Virginia, 2003.<br />
[17] NIST. FIPS-197: Advanced Encryption Standard, November 2001.<br />
[18] T. Messerges, E. Dabbish, và R. Sloan. Investigation of power analysis attacks on<br />
smartcards. In Usenix Workshop on Smartcard Technology 1999.<br />
[19] L. Goubin, J. Patarin, DES and Differential Power Analysis, CHES’99, Springer-<br />
Verlag, 1999.<br />
[20] Paul C. Kocher, J. Jaffe, và Benjamin Jun. Differential Power Analysis, CRYPTO<br />
'99, 1999.<br />
<br />
<br />
ABSTRACT<br />
POWER COMSUMPTION ANALYSES FOR CRYTOGRAPHIC DEVICE<br />
<br />
Electrical power comsumption of cryptographic devices contains in-<br />
formation about the operations being performed and the data being<br />
processed. So attack by analysing the electrical power comsumption to de-<br />
rive secret key from crypto algorithms is currently taken a great interest.<br />
There are a lot of papers in this topic, however they haven’t shown base<br />
theories which DPA stems from therefore it is really difficult to under-<br />
stand it for many readers. This paper tries to comprehend the theories,<br />
with illustrating by experiment and in the final, describes steps of DPA to<br />
the AES-128.<br />
Key words: Differential Power Analysis, Oower analysis attacks, Side-channel attacks, DPA.<br />
<br />
<br />
<br />
Nhận bài ngày 13 tháng 09 năm 2014.<br />
Hoàn thiện ngày 24 tháng 10 năm 2014.<br />
Chấp nhận đăng ngày 05 tháng 12 năm 2014.<br />
<br />
<br />
<br />
<br />
Địa chỉ : Học viện Kỹ thuật Mật mã - Ban Cơ Yếu Chính phủ.<br />
<br />
<br />
<br />
<br />
Tạp chí Nghiên cứu KH&CN quân sự, Số 34, 12 - 2014 93<br />