DPA—Measurement with an Oscilloscope
First we will set up a basic measurement of the smart card consumption. We will use JSmartCard Explorer to communicate with the card, and PicoScope 6 GUI to establish basic parameters of the measurement. Then, we will switch to a separate program that will control both the card and the oscilloscope and will perform a series of measurements needed for the DPA attack.
Preparation of the Measurement
- 1. Connect the card reader to your computer and insert the SmartCard into the reader, as shown in Fig.4.2.
- 2. Run JSmartCard Explorer from Primiano Tucci . (In Java. Compiled JAR file you find either on web  or in file JSmartCardExplorer.jar in downloaded archive).
- • Press the Connect button to connect to the SmartCard. (Status should be green.)
- • Fill-in the fields Class (80), INS (60), P1 (00), P2 (00), Data IN, and Le (10) as shown in Fig. 4.3 (all in HEX).
- • Press Send. The card should run AES encryption over the entered data and return the ciphertext, as shown in Fig. 4.3.
Fig. 4.2 Connect the card reader to your computer and insert the SmartCard into the reader
Fig. 4.3 Fill-in proper fields and press Send
Fig. 4.4 Insert card into the measuring adaptor (green PCB), then insert the measuring adaptor into the reader
- 3. To measure the card power consumption, we will be using Picoscope 5204 (and 5203) and two oscilloscope probes. Connect the probes to channels A (blue, trigger), and B (red, trace measurement).
- 4. Remove the card from the reader and insert it into the measuring adaptor (green PCB), then insert the measuring adaptor into the reader. See Fig. 4.4
- 5. Connect the Picoscope probes to the measuring adaptor. Unlike to Fig. 4.5, set the trigger probe (channel A, blue) to the X10 position and the measurement probe (channel B, red) to the X1 position.
- 6. Connect the Picoscope to a free USB port of your computer (if not already connected).
- 7. For the measurement you need the following software:
- • PicoScope 6 software with drivers. You can download it from . You can find it also in downloaded materials as a file PicoScope6_r6_8_11.exe.
Fig. 4.5 Connect the Picoscope probes to the measuring adaptor. Set the trigger probe (channel A, blue) to the X10 position and the measurement probe (channel B, red) to the X1 position
- • Software Development Kit. The relevant files should be included in the Visual Studio project below. If not, you can download the SDK from the web  or you may find it in downloaded materials as a file PS5000sdk_rI0_5_0_32.zip.
- • Library for working with smart cards (WINSCard.lib). This should be included in the installation of Visual Studio. (It is a part of Microsoft Windows SDK.)
- 8. Run the PicoScope 6 program
- 9. You should make the following settings:
- • Timebase: 500us/Div, x1 (zoom), 1 MS (samples)
- • Channel A: +-1V DC
- • Channel B: +-1V DC
- • Trigger: Auto (after tuning the settings, switch to Repeat)
- • Trigger Event: Simple Edge, Rising
- • Trigger Channel: A
- • Trigger Threshold: 200 mV
Warning: These settings may need to be adjusted according to the particular card and other circumstances.
10. Set the Single measurement at the oscilloscope, and send data to the card using JSmartCard Explorer from Primiano Tucci. You should see a waveform like in Fig.4.6.
Fig. 4.6 Powertrace of one encryption
Fig. 4.7 Menu Properties of PicoScope program
- 11. Display the Properties panel by right-clicking somewhere in the window and selecting View Properties (see Fig. 4.7).
- 12. From the Properties panel remember the following values:
- • Sample interval,
- • Sample rate,
- • No. samples.
We will need these values later, when setting the measurement program.