Analisis Daya Sederhana

Serangan SPA dicirikan oleh Kocher et al. [11] pada pernyataan berikut: “SPA adalah sebuah teknik yang melibatkan secara langsung penafsiran pengukuran konsumsi daya yang dikumpulkan selama operasi kriptografi”. Dengan kata lain, penyerang mencoba untuk mendapatkan kunci langsung dari jejak/trace yang ada. Hal ini dapat membuat serangan SPA cukup menantang pada praktiknya. Seringkali, mereka membutuhkan pengetahuan rinci tentang implementasi algoritma kriptografi yang dijalankan oleh perangkat yang diserang. Selanjutnya, jika hanya satu trace daya yang ada, seringkali metode statistik kompleks harus digunakan untuk mengekstrak sinyal.

Serangan SPA berguna dalam praktik jika hanya satu atau sangat sedikit trace tersedia untuk satu set input. Tinjau misalnya sebuah skenario di mana konsumen menggunakan smart card untuk membayar gas di sebuah pompa bensin. Pelanggan harus mengisi ulang tangki bensin mobil secara reguler dan selalu membeli jumlah yang sama dari gas. Sebuah malicious smart card reader dapat mencatat konsumsi daya dari kartu. Dengan cara ini, penyerang dapat mengumpulkan beberapa trace untuk plainteks yang sama.

Tujuan Serangan Analisis Daya Sederhana #

Tujuan serangan SPA adalah untuk mengungkapkan kunci ketika diberikan hanya sejumlah kecil trace daya (untuk sejumlah kecil plainteks). Dalam kasus yang paling ekstrim, hal ini berarti bahwa penyerang mencoba untuk mengungkapkan kunci berdasarkan trace daya tunggal, untuk membedakan antara asumsi SPA normal dan ekstrim, kita bedakan antara serangan SPA single-shot dan multiple-shot. Dalam serangan SPA single-shot, hanya sebuah trace daya yang dapat dicatat, dalam serangan SPA multiple-shot, banyak trace daya dapat dicatat.

Dalam serangan SPA multiple-shot, kita bisa mengukur konsumsi daya beberapa kali untuk plainteks yang sama, atau kita bahkan dapat mensuplai plainteks yang berbeda. Keuntungan memiliki beberapa trace untuk satu plainteks adalah bahwa kita dapat menggunakannya untuk mengurangi noise dengan menghitung rerata trace. Kendati perbedaan dalam mengambil pengukuran tunggal atau beberapa pengukuran, prinsip serangan SPA selalu sama. Penyerang harus mampu memantau konsumsi daya dari perangkat yang diserang. Dalam perangkat yang diserang/target, kuncinya harus memiliki (langsung atau tidak langsung) dampak signifikan terhadap konsumsi daya.

Penafsiran Konsumsi Daya #

SPA merupakan penafsiran konsumsi daya dari perangkat dan penyimpulan informasi terhadap proses yang dilakukan. Contoh hasil pengamatan SPA adalah seperti pada Gambar 5.

Gambar 5. Pengamatan SPA dari sebuah enkripsi AES yang dilakukan oleh smart card [2]

Hasil pengamatan tersebut berisi jejak konsumsi daya perangkat yang melakukan enkripsi AES. Gambar tersebut jelas menunjukkan pola yang diulang 10 kali dan sesuai dengan 10 putaran AES ketika diimplementasikan pada versi 128-bit. Tentu saja, informasi tersebut bukan serangan itu sendiri. Semua orang tahu bahwa AES128 memiliki 10 putaran dan mengetahui bahwa perangkat tersebut sedang melakukan enkripsi AES.

Pemeriksaan Visual Trace Daya pada Analisis Daya Sederhana
Algoritma

Setiap algoritma yang berjalan pada perangkat kriptografi dijalankan secara sekuensial. Operasi yang didefinisikan oleh algoritma dijabarkan ke dalam instruksi yang didukung oleh perangkat. Misalnya, AES terdiri dari sepuluh langkah yang berbeda, yang disebut round. Setiap round terdiri dari transformasi empat round yang disebut AddRoundKey, SubBytes, ShiftRows, dan MixColumns. Setiap transformasi round bekerja pada satu atau beberapa byte dari state AES.

AES #

Misalkan AES diimplementasikan dalam perangkat lunak pada sebuah mikrokontroler. Dalam hal ini, fungsi round diimplementasikan menggunakan instruksi dari mikrokontroler. Mikrokontroler memiliki set instruksi yang biasanya terdiri instruksi aritmatika (seperti penambahan), instruksi logik (seperti XOR), instruksi transfer data (seperti move), dan instruksi bercabang (seperti jump). Setiap instruksi bekerja pada jumlah byte dan melibatkan komponen yang berbeda dari mikrokontroler, seperti ALU, memori (eksternal maupun internal RAM atau ROM), atau periferal (seperti port komunikasi). Hal-hal tersebut adalah komponen yang terpisah secara fisik dari mikrokontroler dan mereka berbeda dalam fungsi dan implementasi. Oleh karena itu, mereka memiliki konsumsi daya karakteristik, yang mengarah ke pola karakteristik konsumsi daya. Misalnya, instruksi move yang beroperasi pada data yang disimpan dalam memori internal perlu clock cycle yang lebih sedikit dari instruksi move yang beroperasi pada nilai-nilai yang terletak di memori eksternal. Selain itu, bus eksternal sering menyebabkan konsumsi konsumsi daya yang lebih tinggi daripada bus internal.

Membedakan Instruksi #

Fakta-fakta ini memberikan kemungkinan untuk membedakan instruksi dalam sebuah trace daya. Kemungkinan untuk membedakan instruksi dalam sebuah trace dapat menyebabkan masalah keamanan yang serius jika urutan instruksi secara langsung bergantung kepada kunci.

Gambar 6. Dua round AES. Trace daya tidak di-compress
Gambar 7. Satu round AES. Trace daya di-compress
Gambar 8. Tahapan operasi AddRoundKey, SubBytes, dan ShiftRows.
Gambar 9. Tahapan operasi AddRoundKey,
SubBytes, dan ShiftRows dengan

Oleh karena itu, jika instruksi tertentu hanya terjadi jika bit kunci adalah 1 dan jika instruksi lain hanya terjadi jika bit kunci adalah 0, maka dimungkinkan untuk mendapatkan kunci dari trace daya dengan melihat urutan instruksi dalam trace daya.

Khusus untuk implementasi kriptografi kunci publik, hal ini menjadi masalah yang ditemukan dalam percobaannya.

Serangan Template #

Serangan template mengeksploitasi keterangan bahwa konsumsi daya juga tergantung pada data yang sedang diproses. Dalam serangan template, kita mencirikan trace daya dengan sebuah distribusi normal multivariat. Berbeda dengan jenis serangan analisis daya lainnya, serangan template biasanya terdiri dari dua fase: Fase pertama, di mana karakterisasi ada, dan tahap kedua, dimana karakterisasi digunakan untuk melakukan serangan.

Trace Daya #

Trace daya dapat dicirikan dengan sebuah distribusi normal multivariat, yang sepenuhnya ditentukan oleh vektor mean dan matriks kovariansi (m, C). Kita menyebut pasangan ini (m, C) sebagai template. Dalam sebuah serangan template, kita asumsikan bahwa kita dapat mencirikan perangkat yang sedang diserang. Hal ini berarti kita dapat menentukan template untuk urutan instruksi tertentu. Sebagai contoh, kita mungkin memiliki perangkat lain dari jenis yang sama dengan perangkat yang diserang dapat sepenuhnya kita kontrol. Pada perangkat ini, kita melaksanakan urutan instruksi dari data di dan kunci kj yang berbeda dengan tujuan untuk merekam hasil konsumsi daya. Kemudian, kita kelompokkan trace yang berkorespondensi dengan pasangan (di, kj), dan memperkirakan vektor mean dan matriks kovarians dari distribusi normal multivariat. Hasilnya, kita memperoleh template untuk setiap pasang data dan kunci (di, kj): hdi,kj = (m, C)di,kj.

Sebuah template h adalah sebuah pasangan yang terdiri dari sebuah vektor mean dan sebuah matriks kovarians C (m, C).

Karakterisasi #

Kemudian, kita menggunakan karakterisasi bersama dengan trace daya dari perangkat yang diserang untuk menentukan kunci. Ini berarti, kita mengevaluasi probabilitas fungsi densitas dari distribusi normal multivariat dengan (m, C)di,kj dan trace daya perangkat yang diserang. Dengan kata lain, diberikan trace daya perangkat yang diserang t, dan sebuah template hdi,kj = (m, C)di,kj, kita menghitung probabilitas:

Hal ini dilakukan untuk tiap template. Hasilnya, didapatkan probabilitas seperti pada persamaan berikut.

Probabilitas tersebut mengukur seberapa bagus template cocok untuk trace yang diberikan. Secara intuitif, probabilitas tertinggi harusnya menunjukkan template yang sesuai. Karena setiap template dikaitkan dengan kunci, kita juga mendapatkan indikasi untuk kunci yang benar. Intuisi ini juga didukung oleh literatur statistik, lihat [Kay98]. Jika semua kunci yang sama dimungkinkan, maka decision rule yang meminimalkan probabilitas untuk decision yang salah adalah memutuskan untuk  jika

Hal ini juga disebut sebuah maximum-likelihood (ML) decision rule.

Referensi #

  1. T. S. Messerges, E. A. Dabbish, and R. H. Sloan, “Examining Smart-Card Security Under The Threat of Power Analysis Attacks,” Computers, IEEE Transactions on, vol. 51, no. 5, pp. 541–552, 2002.
  2. F.-X. Standaert, “Introduction to Side-Channel Attacks,” pp. 27–42, 2010.
  3. S. Mangard, E. Oswald, and T. Popp, Power Analysis Attack: Revealing the Secrets of Smart Cards. 2007.
  4. S. Sun, Z. Yan, and J. Zambreno, “Experiments in attacking FPGA-based embedded systems using differential power analysis,” 2008 IEEE International Conference on Electro/Information Technology, pp. 7–12, 2008.
  5. R. Velegalati and P. S. V. V. K. Yalla, “Differential Power Analysis Attack on FPGA Implementation of AES,” pp. 1–5, 2008.
  6. H. Li, K. Wu, B. Peng, Y. Zhang, X. Zheng, and F. Yu, “Enhanced correlation power analysis attack on smart card,” Proceedings of the 9th International Conference for Young Computer Scientists, ICYCS 2008, pp. 2143–2148, 2008.
  7. H. Bar-El, “Introduction to Side Channel Attacks,” Secure Integrated Circuits and Systems, 2010.
  8. Messerges and T. S., “Power analysis attacks and countermeasures for cryptographic algorithms,” 2000.

Since you've made it this far, sharing this article on your favorite social media network would be highly appreciated 💖! For feedback, please ping me on Twitter.

Published